�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`� 0x0x
PHP 8.1.31
Preview: a2enconf Size: 15.89 KB
//sbin/a2enconf
#!/usr/bin/perl -w
#
# a2enmod by Stefan Fritsch <sf@debian.org>
# Licensed under Apache License 2.0
#
# The coding style is "perltidy -pbp"

use strict;
use Cwd 'realpath';
use File::Spec;
use File::Basename;
use File::Path;
use Getopt::Long;
use 5.014;
no if $] >= 5.017011, warnings => 'experimental::smartmatch';

my $quiet;
my $force;
my $maintmode;
my $purge;

Getopt::Long::Configure('bundling');
GetOptions(
    'quiet|q'     => \$quiet,
    'force|f'     => \$force,
    'maintmode|m' => \$maintmode,
    'purge|p'     => \$purge
) or exit 2;

my $basename = basename($0);
$basename =~ /^a2(en|dis)(mod|site|conf)((?:-.+)?)$/
    or die "$basename call name unknown\n";
my $act        = $1;
my $obj        = $2;
my $dir_suffix = $3;

my @essential_module_list = qw(alias auth_basic authn_file authz_host
    authz_user autoindex deflate dir env filter logio mime negotiation
    setenvif unixd version watchdog);
my $env_file = $ENV{APACHE_ENVVARS};
if (! $env_file) {
    if ($ENV{APACHE_CONFDIR}) {
        $env_file = "$ENV{APACHE_CONFDIR}/envvars";
    }
    else {
        $env_file = "/etc/apache2$dir_suffix/envvars";
    }
}
$ENV{LANG} = 'C';
read_env_file($env_file);

$act .= 'able';
my ( $name, $dir, $sffx, $reload );
if ( $obj eq 'mod' ) {
    $obj    = 'module';
    $dir    = 'mods';
    $sffx   = '.load';
    $reload = 'restart';
}
elsif ( $obj eq 'conf' ) {
    $obj    = 'conf';
    $dir    = 'conf';
    $sffx   = '.conf';
    $reload = 'reload';
}
else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}
$name = ucfirst($obj);

my $confdir = $ENV{APACHE_CONFDIR} || "/etc/apache2$dir_suffix";
my $availdir = $ENV{ uc("APACHE_${dir}_AVAILABLE") }
    || "$confdir/$dir-available";
my $enabldir = $ENV{ uc("APACHE_${dir}_ENABLED") } || "$confdir/$dir-enabled";
my $statedir = $ENV{ uc("APACHE_STATE_DIRECTORY") } || "/var/lib/apache2";

$statedir .= "/$obj";

my $choicedir = $act eq 'enable' ? $availdir : $enabldir;
my $linkdir = File::Spec->abs2rel( $availdir, $enabldir );

my $request_reload = 0;
my $request_htcacheclean;
my $htc = "apache-htcacheclean$dir_suffix";
my $htc_service = "apache-htcacheclean";  # Service name for systemd
my $apache_service = "apache2";
if (defined($dir_suffix) and $dir_suffix ne '') {
    # Uses '@instance.service' suffix instead of '-instance' suffix
    my $service_suffix = '@' . substr($dir_suffix, 1) . '.service';
    $htc_service .= $service_suffix;
    $apache_service .= $service_suffix;
}
my $rc = 0;

if ( !scalar @ARGV ) {
    my @choices = myglob('*');
    print "Your choices are: @choices\n";
    print "Which ${obj}(s) do you want to $act (wildcards ok)?\n";
    my $input = <>;
    @ARGV = split /\s+/, $input;

}

my @objs;
foreach my $arg (@ARGV) {
    $arg =~ s/${sffx}$//;
    my @glob = myglob($arg);
    if ( !@glob ) {
        error("No $obj found matching $arg!\n");
        $rc = 1;
    }
    else {
        push @objs, @glob;
    }
}

foreach my $acton (@objs) {
    doit($acton) or $rc = 1;
}

my $htcstart = "";
my $apache_reload = "";
my $cmd = ($act eq "enable") ? "start" : "stop";
if (is_systemd()) {
    $htcstart = "  systemctl $cmd $htc_service\n";
    $apache_reload = "  systemctl $reload $apache_service\n";
} else {
    $htcstart = "  service $htc $cmd\n";
    $apache_reload = "  service apache2$dir_suffix $reload\n";
}
info(  "To activate the new configuration, you need to run:\n"
     . $apache_reload
     . ($request_htcacheclean ? $htcstart : "")
) if $request_reload;

exit($rc);

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

sub myglob {
    my $arg = shift;

    my @glob = map {
        s{^$choicedir/}{};
        s{$sffx$}{};
        $_
    } glob("$choicedir/$arg$sffx");

    return @glob;
}

sub doit {
    my $acton = shift;

    my ( $conftgt, $conflink );
    if ( $obj eq 'module' ) {
        if ( $act eq 'enable' && $acton eq 'cgi' && threaded() ) {
            print
                "Your MPM seems to be threaded. Selecting cgid instead of cgi.\n";
            $acton = 'cgid';
        }

        $conftgt = "$availdir/$acton.conf";
        if ( -e $conftgt ) {
            $conflink = "$enabldir/$acton.conf";
        }
    }

    my $tgt  = "$availdir/$acton$sffx";
    my $link = "$enabldir/$acton$sffx";

    if ( !-e $tgt ) {
        if ( -l $link && !-e $link ) {
            if ( $act eq 'disable' ) {
                info("removing dangling symlink $link\n");
                unlink($link);

                # force a .conf path. It may exist as dangling link, too
                $conflink = "$enabldir/$acton.conf";

                if ( -l $conflink && !-e $conflink ) {
                    info("removing dangling symlink $conflink\n");
                    unlink($conflink);
                }

                return 1;
            }
            else {
                error("$link is a dangling symlink!\n");
            }
        }

        if ( $purge ) {
            switch_marker( $obj, $act, $acton );
            # exit silently, we are purging anyway
            return 1;
        }

        error("$name $acton does not exist!\n");
        return 0;
    }

    # handle module dependencies
    if ( $obj eq 'module' ) {
        if ( $act eq 'enable' ) {
            my @depends = get_deps("$availdir/$acton.load");
            do_deps( $acton, @depends ) or return 0;

            my @conflicts = get_deps( "$availdir/$acton.load", "Conflicts" );
            check_conflicts( $acton, @conflicts ) or return 0;
        }
        else {
            my @depending;
            foreach my $d ( glob("$enabldir/*.load") ) {
                my @deps = get_deps($d);
                if ( is_in( $acton, @deps ) ) {
                    $d =~ m,/([^/]+).load$,;
                    push @depending, $1;
                }
            }
            if ( scalar @depending ) {
                if ($force) {
                    do_deps( $acton, @depending ) or return 0;
                }
                else {
                    error(
                        "The following modules depend on $acton ",
                        "and need to be disabled first: @depending\n"
                    );
                    return 0;
                }
            }
        }
    }
    elsif ( $act eq 'enable' ) {
        my @depends = get_deps("$availdir/$acton$sffx");
        warn_deps( $acton, @depends ) or return 0;
    }

    if ( $act eq 'enable' ) {
        my $check = check_link( $tgt, $link );
        if ( $check eq 'ok' ) {
            if ($conflink) {

                # handle .conf file
                my $confcheck = check_link( $conftgt, $conflink );
                if ( $confcheck eq 'ok' ) {
                    info("$name $acton already enabled\n");
                    return 1;
                }
                elsif ( $confcheck eq 'missing' ) {
                    print "Enabling config file $acton.conf.\n";
                    add_link( $conftgt, $conflink ) or return 0;
                }
                else {
                    error(
                        "Config file $acton.conf not properly enabled: $confcheck\n"
                    );
                    return 0;
                }
            }
            else {
                info("$name $acton already enabled\n");
                return 1;
            }
        }
        elsif ( $check eq 'missing' ) {
            if ($conflink) {

                # handle .conf file
                my $confcheck = check_link( $conftgt, $conflink );
                if ( $confcheck eq 'missing' ) {
                    add_link( $conftgt, $conflink ) or return 0;
                }
                elsif ( $confcheck ne 'ok' ) {
                    error(
                        "Config file $acton.conf not properly enabled: $confcheck\n"
                    );
                    return 0;
                }
            }

            print "Enabling $obj $acton.\n";
            special_module_handling($acton);
            return add_link( $tgt, $link )
                && switch_marker( $obj, $act, $acton );
        }
        else {
            error("$name $acton not properly enabled: $check\n");
            return 0;
        }
    }
    else {
        if ( -e $link || -l $link ) {
            special_module_handling($acton);
            if ($obj eq 'module' && grep {$_ eq $acton} @essential_module_list) {
                  $force || essential_module_handling($acton);
            }
            remove_link($link);
            if ( $conflink && -e $conflink ) {
                remove_link($conflink);
            }
            switch_marker( $obj, $act, $acton );
            print "$name $acton disabled.\n";
        }
        elsif ( $conflink && -e $conflink ) {
            print "Disabling stale config file $acton.conf.\n";
            remove_link($conflink);
        }
        else {
            info("$name $acton already disabled\n");
            if ( $purge ) {
                switch_marker( $obj, $act, $acton );
            }
            return 1;
        }
    }

    return 1;
}

sub get_deps {
    my $file = shift;
    my $type = shift || "Depends";

    my $fd;
    if ( !open( $fd, '<', $file ) ) {
        error("Can't open $file: $!");
        return;
    }
    my $line;
    while ( defined( $line = <$fd> ) ) {
        chomp $line;
        if ( $line =~ /^# $type:\s+(.*?)\s*$/ ) {
            my $deps = $1;
            return split( /[\n\s]+/, $deps );
        }

        # only check until the first non-empty non-comment line
        last if ( $line !~ /^\s*(?:#.*)?$/ );
    }
    return;
}

sub do_deps {
    my $acton = shift;
    foreach my $d (@_) {
        info("Considering dependency $d for $acton:\n");
        if ( !doit($d) ) {
            error("Could not $act dependency $d for $acton, aborting\n");
            return 0;
        }
    }
    return 1;
}

sub warn_deps {
    my $acton = shift;
    my $modsenabldir = $ENV{APACHE_MODS_ENABLED} || "$confdir/mods-enabled";
    foreach my $d (@_) {
        info("Checking dependency $d for $acton:\n");
        if ( !-e "$modsenabldir/$d.load" ) {
            warning(
                "Module $d is not enabled, but $acton depends on it, aborting\n"
            );
            return 0;
        }
    }
    return 1;
}

sub check_conflicts {
    my $acton    = shift;
    my $haderror = 0;
    foreach my $d (@_) {
        info("Considering conflict $d for $acton:\n");

        my $tgt  = "$availdir/$d$sffx";
        my $link = "$enabldir/$d$sffx";

        my $confcheck = check_link( $tgt, $link );
        if ( $confcheck eq 'ok' ) {
            error(
                "Module $d is enabled - cannot proceed due to conflicts. It needs to be disabled first!\n"
            );

            # Don't return immediately, there could be several conflicts
            $haderror++;
        }
    }

    if ($haderror) {
        return 0;
    }

    return 1;
}

sub add_link {
    my ( $tgt, $link ) = @_;

    # create relative link
    if ( !symlink( File::Spec->abs2rel( $tgt, dirname($link) ), $link ) ) {
        die("Could not create $link: $!\n");
    }
    $request_reload = 1;
    return 1;
}

sub check_link {
    my ( $tgt, $link ) = @_;

    if ( !-e $link ) {
        if ( -l $link ) {

            # points to nowhere
            info("Removing dangling link $link");
            unlink($link) or die "Could not remove $link\n";
        }
        return 'missing';
    }

    if ( -e $link && !-l $link ) {
        return "$link is a real file, not touching it";
    }
    if ( realpath($link) ne realpath($tgt) ) {
        return "$link exists but does not point to $tgt, not touching it";
    }
    return 'ok';
}

sub remove_link {
    my ($link) = @_;

    if ( -l $link ) {
        unlink($link) or die "Could not remove $link: $!\n";
    }
    elsif ( -e $link ) {
        error("$link is not a symbolic link, not deleting\n");
        return 0;
    }
    $request_reload = 1;
    return 1;
}

sub threaded {
    my $result = "";
    $result = qx{/usr/sbin/apache2ctl -V | grep 'threaded'}
        if -x '/usr/sbin/apache2ctl';
    if ( $? != 0 ) {

        # config doesn't work
        if ( -e "$enabldir/mpm_prefork.load" )
        {
            return 0;
        }
        elsif (-e "$enabldir/mpm_worker.load"
            || -e "$enabldir/mpm_event.load" )
        {
            return 1;
        }
        else {
            error("Can't determine enabled MPM");

            # do what user requested
            return 0;
        }
    }
    if ( $result =~ / no/ ) {
        return 0;
    }
    elsif ( $result =~ / yes/ ) {
        return 1;
    }
    else {
        die("Can't parse output from apache2ctl -V:\n$result\n");
    }
}

sub info {
    print @_ if !$quiet;
}

sub error {
    print STDERR 'ERROR: ', @_;
}

sub warning {
    print STDERR 'WARNING: ', @_;
}

sub is_in {
    my $needle = shift;
    foreach my $e (@_) {
        return 1 if $needle eq $e;
    }
    return 0;
}

sub read_env_file {
    my $file = shift;

    -r $file or return;
    my @lines = qx{env - sh -c '. $file && env'};
    if ($?) {
        die "Could not read $file\n";
    }

    foreach my $l (@lines) {
        chomp $l;
        $l =~ /^(.*)?=(.*)$/ or die "Could not parse $file\n";
        $ENV{$1} = $2;
    }
}

sub switch_marker {
    die('usage: switch_marker([module|site|conf], [enable|disable], $name)')
        if @_ != 3;
    my $which = shift;
    my $what  = shift;
    my $name  = shift;

    my $mode = "admin";
    $mode = "maint" if $maintmode;

    #print("switch_marker $which $what $name\n");
    # TODO: get rid of the magic string(s)
    my $state_marker_dir = "$statedir/$what" . "d" . "_by_$mode";
    my $state_marker     = "$state_marker_dir/$name";
    if ( !-d $state_marker_dir ) {
        File::Path::mkpath("$state_marker_dir")
            || error(
            "Failed to create marker directory: '$state_marker_dir'\n");
    }

    # XXX: swap find with perl alternative
    my @markers = qx{find "$statedir" -type f -a -name "$name"};
    chomp(@markers);
    foreach (@markers) {
        unless ( unlink $_ ) {
            error("Failed to remove old marker '$_'!\n") && return 0;
        }
    }
    unless ($purge) {
        qx{touch "$state_marker"};
        if ( $? != 0 ) {
            error("Failed to create marker '$state_marker'!\n") && return 0;
        }
        return 1;
    }
}

sub essential_module_handling {
    my $module = shift;

    print "WARNING: The following essential module will be disabled.\n";
    print "This might result in unexpected behavior and should NOT be done\n";
    print "unless you know exactly what you are doing!\n $module\n\n";
    print "To continue type in the phrase 'Yes, do as I say!' or retry by passing '-f': ";
    my $input = <STDIN>;
    chomp($input);
    if ($input ne 'Yes, do as I say!') {
        print("Aborting\n");
        exit(1)
    }
}

sub special_module_handling {
    my $acton = shift;

    if ($obj ne 'module') {
        return;
    }

    given ($acton) {
        when ('ssl') {
            if ( $act eq 'enable' ) {
                info(  "See /usr/share/doc/apache2/README.Debian.gz on "
                     . "how to configure SSL and create self-signed "
                     . "certificates.\n"
                );
            }
        }
        when ('cache_disk') {
            $request_htcacheclean = 1;
            my $verb = "\u$act";
            my $command;
            $verb =~ s/e$/ing/;
            if (-d "/run/systemd" and -x "/bin/systemctl") {
                info("$verb external service $htc_service\n");
                $command = "systemctl $act $htc_service";
            } else {
                info("$verb external service $htc\n");
                $command = "update-rc.d $htc $act";
            }
            my $res = system($command);
            if ($res == 0) {
                info("The service will be started on next reboot.\n")
                    if $act eq 'enable';
            }
            else {
                warning("'$command' failed\n");
            }

        }
    }
}

sub is_systemd
{
    my $init = readlink("/proc/1/exe") || "";
    return scalar $init =~ /systemd/;
}

# vim: syntax=perl sw=4 sts=4 sr et

Directory Contents

Dirs: 0 × Files: 473
Name Size Perms Modified Actions
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
15.89 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
9.64 KB lrwxr-xr-x 2025-04-02 18:34:29
Edit Download
3.00 KB lrwxr-xr-x 2024-03-06 18:40:00
Edit Download
8.63 KB lrwxr-xr-x 2024-03-06 18:40:00
Edit Download
139 B lrwxr-xr-x 2019-06-17 23:55:38
Edit Download
14.38 KB lrwxr-xr-x 2020-02-25 17:13:45
Edit Download
860 B lrwxr-xr-x 2019-12-07 02:13:44
Edit Download
3.00 KB lrwxr-xr-x 2025-06-26 16:57:26
Edit Download
36.90 KB lrwxr-xr-x 2020-04-16 14:12:53
Edit Download
36.90 KB lrwxr-xr-x 2020-04-16 14:12:53
Edit Download
67.38 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
692.07 KB lrwxr-xr-x 2025-04-02 18:34:29
Edit Download
7.06 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
7.06 KB lrwxr-xr-x 2024-03-18 13:42:39
Edit Download
1.46 MB lrwxr-xr-x 2024-03-06 18:40:00
Edit Download
8.63 KB lrwxr-xr-x 2024-03-06 18:40:00
Edit Download
2.17 KB lrwxr-xr-x 2025-06-26 16:57:26
Edit Download
78.27 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
13.22 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
30.01 KB lrwxr-xr-x 2018-11-12 17:11:53
Edit Download
38.38 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
34.32 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
14.15 KB lrwxr-xr-x 2020-07-23 00:33:50
Edit Download
27.20 KB lrwxr-xr-x 2019-12-23 17:56:41
Edit Download
14.49 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
34.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
118.26 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
70.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
66.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
102.30 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
30.30 KB lrwxr-xr-x 2025-02-20 16:01:08
Edit Download
102.59 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
206.48 KB lrwxr-xr-x 2020-02-20 09:44:58
Edit Download
46.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
952 B lrwxr-xr-x 2011-04-26 15:10:00
Edit Download
66.20 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
62.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
58.20 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
42.34 KB lrwxr-xr-x 2019-09-05 10:38:40
Edit Download
60.34 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
60.34 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
54.63 KB lrwxr-xr-x 2020-02-13 20:44:42
Edit Download
1.51 KB lrwxr-xr-x 2020-02-04 13:11:12
Edit Download
844 B lrwxr-xr-x 2020-02-04 13:11:12
Edit Download
135.54 KB lrwxr-xr-x 2022-01-18 17:36:47
Edit Download
105.32 KB lrwxr-xr-x 2022-01-18 17:36:47
Edit Download
38.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
225.80 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
16.11 KB lrwxr-xr-x 2020-04-16 14:12:53
Edit Download
16.11 KB lrwxr-xr-x 2020-04-16 14:12:53
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
150.47 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
508.98 KB lrwxr-xr-x 2023-01-31 22:10:35
Edit Download
15.92 KB lrwxr-xr-x 2023-01-31 22:10:35
Edit Download
50.23 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
119.00 KB lrwxr-xr-x 2019-12-23 17:56:41
Edit Download
171.02 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
171.02 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
58.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
54.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
98.40 KB lrwxr-xr-x 2024-09-11 12:08:49
Edit Download
3.58 KB lrwxr-xr-x 2019-08-03 10:51:13
Edit Download
4.34 KB lrwxr-xr-x 2019-08-03 10:51:13
Edit Download
30.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
18.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
327.21 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
42.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
106.55 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
30.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
7.13 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
5.27 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
22.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
30.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
34.30 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
375.05 KB lrwxr-xr-x 2020-01-30 16:25:08
Edit Download
11.03 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
10.28 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
148.03 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
4.74 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
72.76 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
18.31 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
26.33 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
34.33 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
18.30 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
26.33 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
8.08 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
59.25 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
5.19 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
5.04 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
4.34 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
14.15 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
54.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
34.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
150.27 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
18.33 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
74.48 KB lrwxr-xr-x 2020-02-20 09:44:58
Edit Download
23.54 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
54.27 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
1.16 KB lrwxr-xr-x 2020-02-15 15:52:17
Edit Download
38.26 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
327.21 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
327.21 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
327.21 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
58.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
122.25 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
58.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
58.08 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
1.92 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
14.30 KB lrwxr-xr-x 2020-02-13 18:38:21
Edit Download
70.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
34.67 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
32.20 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
23.45 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
14.15 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
12.15 KB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
210.48 KB lrwxr-xr-x 2020-02-20 09:44:58
Edit Download
82.29 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
14.30 KB lrwxr-xr-x 2025-02-20 16:01:08
Edit Download
14.30 KB lrwxr-xr-x 2025-02-20 16:01:08
Edit Download
67.38 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
90.95 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
86.77 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
62.24 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
94.86 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
62.18 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
58.05 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
58.05 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
909.34 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
1.11 MB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
897.03 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
8.54 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
215.70 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
905.28 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
4.73 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
3.47 KB lrwxr-xr-x 2022-12-18 21:29:03
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
140.34 KB lrwxr-xr-x 2019-08-21 12:36:14
Edit Download
14.15 KB lrwxr-xr-x 2025-04-02 18:34:29
Edit Download
102.35 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
30.40 KB lrwxr-xr-x 2025-05-26 08:09:37
Edit Download
1.02 MB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
1.55 MB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
2.58 KB lrwxr-xr-x 2019-12-07 02:13:44
Edit Download
60.23 KB lrwxr-xr-x 2022-01-18 17:36:47
Edit Download
16.64 KB lrwxr-xr-x 2019-06-21 18:56:55
Edit Download
597.62 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
6.89 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
6.89 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
62.92 KB lrwxr-xr-x 2020-02-13 19:39:57
Edit Download
34.38 KB lrwxr-xr-x 2020-02-13 19:39:57
Edit Download
18.15 KB lrwxr-xr-x 2023-07-25 14:33:19
Edit Download
394.10 KB lrwxr-xr-x 2023-07-25 14:33:19
Edit Download
410.30 KB lrwxr-xr-x 2023-07-25 14:33:19
Edit Download
366.29 KB lrwxr-xr-x 2023-07-25 14:33:19
Edit Download
5.16 KB lrwxr-xr-x 2016-09-29 18:33:24
Edit Download
30.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
15.39 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
13.99 KB lrwxr-xr-x 2019-05-09 15:22:51
Edit Download
26.38 KB lrwxr-xr-x 2020-02-13 18:38:21
Edit Download
46.16 KB lrwxr-xr-x 2023-11-07 21:20:27
Edit Download
34.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
387 B lrwxr-xr-x 2025-05-26 08:09:37
Edit Download
1.00 MB lrwxr-xr-x 2025-05-26 08:09:37
Edit Download
4.30 KB lrwxr-xr-x 2023-07-26 07:44:39
Edit Download
82.09 KB lrwxr-xr-x 2019-01-21 10:11:39
Edit Download
14.16 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
110.34 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
3.32 KB lrwxr-xr-x 2020-02-04 13:11:12
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
10.07 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
232.05 KB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
78.19 KB lrwxr-xr-x 2020-03-20 14:12:10
Edit Download
22.23 KB lrwxr-xr-x 2020-07-23 00:33:50
Edit Download
3.78 KB lrwxr-xr-x 2017-04-28 19:58:22
Edit Download
589.65 KB lrwxr-xr-x 2020-09-28 16:29:11
Edit Download
325.49 KB lrwxr-xr-x 2020-09-28 16:29:11
Edit Download
34.50 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
134.62 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
34.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
451.53 KB lrwxr-xr-x 2020-02-15 15:52:17
Edit Download
42.16 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
134.62 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
134.62 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
134.62 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
34.50 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
106.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
34.50 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
86.27 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
34.50 KB lrwxr-xr-x 2018-05-12 22:59:39
Edit Download
366.24 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
22.17 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
11.55 KB lrwxr-xr-x 2022-01-26 17:11:24
Edit Download
14.30 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
86.27 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
106.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
1.83 MB lrwxr-xr-x 2022-04-08 09:37:10
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
14.15 KB lrwxr-xr-x 2020-03-07 11:09:49
Edit Download
118.86 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
158.89 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
158.89 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
46.48 KB lrwxr-xr-x 2025-05-06 13:36:15
Edit Download
31.05 KB lrwxr-xr-x 2023-11-07 21:20:27
Edit Download
34.15 KB lrwxr-xr-x 2023-11-07 21:20:27
Edit Download
126.20 KB lrwxr-xr-x 2023-11-07 21:20:27
Edit Download
69.27 MB lrwxr-xr-x 2024-03-27 20:24:33
Edit Download
1.04 KB lrwxr-xr-x 2021-12-10 12:55:20
Edit Download
798 B lrwxr-xr-x 2024-06-28 16:59:34
Edit Download
98.80 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
18.30 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
1.50 MB lrwxr-xr-x 2024-04-23 15:42:29
Edit Download
1.67 MB lrwxr-xr-x 2024-04-23 15:42:29
Edit Download
14.30 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
58.27 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
42.26 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
34.26 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
78.27 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
54.26 KB lrwxr-xr-x 2022-11-01 11:56:50
Edit Download
2.18 KB lrwxr-xr-x 2019-07-20 15:43:51
Edit Download
2.45 KB lrwxr-xr-x 2021-11-02 14:33:46
Edit Download
14.45 KB lrwxr-xr-x 2019-12-23 17:56:41
Edit Download
19.86 KB lrwxr-xr-x 2021-09-17 06:05:34
Edit Download
42.16 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
42.16 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
2.82 KB lrwxr-xr-x 2020-08-12 00:15:04
Edit Download
14.16 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
18.16 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
14.15 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
4.07 KB lrwxr-xr-x 2019-06-25 22:04:32
Edit Download
86.25 KB lrwxr-xr-x 2020-12-01 15:18:05
Edit Download
14.23 KB lrwxr-xr-x 2020-12-01 15:18:05
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
4.55 MB lrwxr-xr-x 2025-03-25 18:57:03
Edit Download
5.41 MB lrwxr-xr-x 2025-03-13 18:12:52
Edit Download
7.11 KB lrwxr-xr-x 2020-03-27 07:44:39
Edit Download
7.11 KB lrwxr-xr-x 2020-03-27 07:44:39
Edit Download
6.24 KB lrwxr-xr-x 2020-03-27 07:44:39
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
146.41 KB lrwxr-xr-x 2020-11-02 10:02:17
Edit Download
543 B lrwxr-xr-x 2020-02-13 23:04:46
Edit Download
5.23 KB lrwxr-xr-x 2020-02-13 23:04:46
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
1.02 MB lrwxr-xr-x 2025-02-05 10:43:43
Edit Download
1.64 KB lrwxr-xr-x 2020-02-27 19:30:14
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
58.17 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
54.05 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
54.05 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
22.26 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
2.86 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
2.86 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
904 B lrwxr-xr-x 2019-12-07 02:13:44
Edit Download
66.38 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
170.34 KB lrwxr-xr-x 2022-01-28 14:49:50
Edit Download
58.55 KB lrwxr-xr-x 2023-12-05 05:16:50
Edit Download
58.55 KB lrwxr-xr-x 2023-12-05 05:16:50
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
710.20 KB lrwxr-xr-x 2022-05-03 08:48:35
Edit Download
48.29 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
46.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
78.24 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
66.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
3.23 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
3.21 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
1.41 MB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
9.04 KB lrwxr-xr-x 2019-06-21 18:56:55
Edit Download
14.30 KB lrwxr-xr-x 2025-02-20 16:01:08
Edit Download
14.07 KB lrwxr-xr-x 2019-05-09 15:22:51
Edit Download
14.13 KB lrwxr-xr-x 2019-05-09 15:22:51
Edit Download
138.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
190.48 KB lrwxr-xr-x 2020-02-20 09:44:58
Edit Download
885 B lrwxr-xr-x 2021-07-14 22:08:18
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
2.36 KB lrwxr-xr-x 2025-04-02 18:34:29
Edit Download
863.79 KB lrwxr-xr-x 2025-04-11 12:16:08
Edit Download
47.32 KB lrwxr-xr-x 2022-05-25 11:14:20
Edit Download
50.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
18.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
22.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
50.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
14.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
30.23 KB lrwxr-xr-x 2023-10-31 11:35:56
Edit Download
1.41 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
936 B lrwxr-xr-x 2023-12-05 05:16:50
Edit Download
529.45 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
1,019.76 KB lrwxr-xr-x 2024-02-08 13:08:41
Edit Download
973.23 KB lrwxr-xr-x 2023-11-21 21:10:21
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
1.29 MB lrwxr-xr-x 2020-02-08 11:20:35
Edit Download
126.23 KB lrwxr-xr-x 2020-02-13 17:21:59
Edit Download
106.55 KB lrwxr-xr-x 2022-06-02 00:59:32
Edit Download
106 B lrwxr-xr-x 2025-04-22 10:15:47
Edit Download
4.82 KB lrwxr-xr-x 2023-07-17 14:14:04
Edit Download
14.30 KB lrwxr-xr-x 2021-09-06 03:01:13
Edit Download
42.15 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
42.15 KB lrwxr-xr-x 2024-01-10 13:55:08
Edit Download
5.29 KB lrwxr-xr-x 2024-09-24 17:46:09
Edit Download
1.00 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
9.68 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
7.50 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
1.00 KB lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
782 B lrwxr-xr-x 2018-11-15 15:24:46
Edit Download
14.72 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
3.33 KB lrwxr-xr-x 2020-03-27 23:00:03
Edit Download
8.20 KB lrwxr-xr-x 2024-07-30 19:25:41
Edit Download
5.71 KB lrwxr-xr-x 2016-08-21 16:54:00
Edit Download
3.98 KB lrwxr-xr-x 2016-08-21 16:54:11
Edit Download
6.10 KB lrwxr-xr-x 2016-08-21 16:54:20
Edit Download
64 B lrwxr-xr-x 2022-12-02 15:20:54
Edit Download
301 B lrwxr-xr-x 2015-03-27 17:50:35
Edit Download
64 B lrwxr-xr-x 2022-12-02 15:20:54
Edit Download
470 B lrwxr-xr-x 2025-03-25 19:38:31
Edit Download
1.66 KB lrwxr-xr-x 2019-10-10 22:32:01
Edit Download
7.25 KB lrwxr-xr-x 2021-03-18 18:48:17
Edit Download
2.99 KB lrwxr-xr-x 2023-06-16 10:22:06
Edit Download
9.18 KB lrwxr-xr-x 2019-10-18 23:05:50
Edit Download
34.56 KB lrwxr-xr-x 2019-12-16 23:51:51
Edit Download
1.71 KB lrwxr-xr-x 2021-03-31 22:55:11
Edit Download
16.76 KB lrwxr-xr-x 2019-06-21 18:56:55
Edit Download
7.43 KB lrwxr-xr-x 2024-01-24 09:14:48
Edit Download
1.49 KB lrwxr-xr-x 2022-12-02 15:20:54
Edit Download
59.66 KB lrwxr-xr-x 2020-02-10 07:23:53
Edit Download
54.32 KB lrwxr-xr-x 2020-02-10 07:23:53
Edit Download
143.71 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
98.89 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
139.49 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
42.30 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
1.73 KB lrwxr-xr-x 2022-08-02 15:34:43
Edit Download
13.99 KB lrwxr-xr-x 2019-05-09 15:22:51
Edit Download
51.82 KB lrwxr-xr-x 2022-01-18 17:36:47
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
2.73 MB lrwxr-xr-x 2020-02-13 21:21:51
Edit Download
68.55 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
68.55 KB lrwxr-xr-x 2024-02-06 12:49:54
Edit Download
218.20 KB lrwxr-xr-x 2023-04-04 11:56:28
Edit Download
18.58 KB lrwxr-xr-x 2019-12-23 17:56:41
Edit Download
46.23 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
1.38 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
695 B lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
90.28 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
620.09 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
14.01 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
800 B lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
42.02 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
34.14 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
1.26 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
187.34 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
74.15 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
30.02 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
782 B lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
1.02 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
685 B lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
86.01 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
563.15 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
17.99 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
102.11 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
5.86 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
42.15 KB lrwxr-xr-x 2020-03-03 20:42:53
Edit Download
96.97 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
215.32 KB lrwxr-xr-x 2023-05-09 18:39:57
Edit Download
9.99 KB lrwxr-xr-x 2018-03-15 11:50:56
Edit Download
62.29 KB lrwxr-xr-x 2025-05-26 08:09:37
Edit Download
114.34 KB lrwxr-xr-x 2024-04-09 15:34:13
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 0xNothings — Secure File Manager. All rights reserved. Built with ❤️ & Tailwind x Dark UI
Upload
React Archives - Weelorum https://weelorum.com/technology/react/ Full Cycle Mobile App Development Services For Startups Sun, 01 Mar 2026 20:04:38 +0000 en-US hourly 1 https://wordpress.org/?v=7.0 LearnPath https://weelorum.com/portfolio-projects/learnpath/ Sun, 01 Mar 2026 20:04:38 +0000 https://weelorum.com/success-stories/learnpath/ LearnPath uses machine learning to create personalized learning paths for professionals. The platform analyzes user performance, adjusts difficulty levels in real-time, and recommends relevant courses. Features include video lessons, interactive quizzes, and certification tracking.

Сообщение LearnPath появились сначала на Weelorum.

]]>
LearnPath uses machine learning to create personalized learning paths for professionals. The platform analyzes user performance, adjusts difficulty levels in real-time, and recommends relevant courses. Features include video lessons, interactive quizzes, and certification tracking.

Сообщение LearnPath появились сначала на Weelorum.

]]>
FleetTrack https://weelorum.com/portfolio-projects/fleettrack/ Sun, 01 Mar 2026 20:04:38 +0000 https://weelorum.com/success-stories/fleettrack/ FleetTrack provides comprehensive fleet management for logistics companies. Features include GPS tracking, route optimization, driver behavior monitoring, fuel consumption analytics, and maintenance scheduling. The dashboard offers real-time visibility across the entire fleet.

Сообщение FleetTrack появились сначала на Weelorum.

]]>
FleetTrack provides comprehensive fleet management for logistics companies. Features include GPS tracking, route optimization, driver behavior monitoring, fuel consumption analytics, and maintenance scheduling. The dashboard offers real-time visibility across the entire fleet.

Сообщение FleetTrack появились сначала на Weelorum.

]]>