PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB` REDROOM
PHP 5.6.40
Preview: glob.py Size: 8.53 KB
//lib64/python3.12/glob.py

"""Filename globbing utility."""

import contextlib
import os
import re
import fnmatch
import itertools
import stat
import sys

__all__ = ["glob", "iglob", "escape"]

def glob(pathname, *, root_dir=None, dir_fd=None, recursive=False,
        include_hidden=False):
    """Return a list of paths matching a pathname pattern.

    The pattern may contain simple shell-style wildcards a la
    fnmatch. Unlike fnmatch, filenames starting with a
    dot are special cases that are not matched by '*' and '?'
    patterns by default.

    If `include_hidden` is true, the patterns '*', '?', '**'  will match hidden
    directories.

    If `recursive` is true, the pattern '**' will match any files and
    zero or more directories and subdirectories.
    """
    return list(iglob(pathname, root_dir=root_dir, dir_fd=dir_fd, recursive=recursive,
                      include_hidden=include_hidden))

def iglob(pathname, *, root_dir=None, dir_fd=None, recursive=False,
          include_hidden=False):
    """Return an iterator which yields the paths matching a pathname pattern.

    The pattern may contain simple shell-style wildcards a la
    fnmatch. However, unlike fnmatch, filenames starting with a
    dot are special cases that are not matched by '*' and '?'
    patterns.

    If recursive is true, the pattern '**' will match any files and
    zero or more directories and subdirectories.
    """
    sys.audit("glob.glob", pathname, recursive)
    sys.audit("glob.glob/2", pathname, recursive, root_dir, dir_fd)
    if root_dir is not None:
        root_dir = os.fspath(root_dir)
    else:
        root_dir = pathname[:0]
    it = _iglob(pathname, root_dir, dir_fd, recursive, False,
                include_hidden=include_hidden)
    if not pathname or recursive and _isrecursive(pathname[:2]):
        try:
            s = next(it)  # skip empty string
            if s:
                it = itertools.chain((s,), it)
        except StopIteration:
            pass
    return it

def _iglob(pathname, root_dir, dir_fd, recursive, dironly,
           include_hidden=False):
    dirname, basename = os.path.split(pathname)
    if not has_magic(pathname):
        assert not dironly
        if basename:
            if _lexists(_join(root_dir, pathname), dir_fd):
                yield pathname
        else:
            # Patterns ending with a slash should match only directories
            if _isdir(_join(root_dir, dirname), dir_fd):
                yield pathname
        return
    if not dirname:
        if recursive and _isrecursive(basename):
            yield from _glob2(root_dir, basename, dir_fd, dironly,
                             include_hidden=include_hidden)
        else:
            yield from _glob1(root_dir, basename, dir_fd, dironly,
                              include_hidden=include_hidden)
        return
    # `os.path.split()` returns the argument itself as a dirname if it is a
    # drive or UNC path.  Prevent an infinite recursion if a drive or UNC path
    # contains magic characters (i.e. r'\\?\C:').
    if dirname != pathname and has_magic(dirname):
        dirs = _iglob(dirname, root_dir, dir_fd, recursive, True,
                      include_hidden=include_hidden)
    else:
        dirs = [dirname]
    if has_magic(basename):
        if recursive and _isrecursive(basename):
            glob_in_dir = _glob2
        else:
            glob_in_dir = _glob1
    else:
        glob_in_dir = _glob0
    for dirname in dirs:
        for name in glob_in_dir(_join(root_dir, dirname), basename, dir_fd, dironly,
                               include_hidden=include_hidden):
            yield os.path.join(dirname, name)

# These 2 helper functions non-recursively glob inside a literal directory.
# They return a list of basenames.  _glob1 accepts a pattern while _glob0
# takes a literal basename (so it only has to check for its existence).

def _glob1(dirname, pattern, dir_fd, dironly, include_hidden=False):
    names = _listdir(dirname, dir_fd, dironly)
    if include_hidden or not _ishidden(pattern):
        names = (x for x in names if include_hidden or not _ishidden(x))
    return fnmatch.filter(names, pattern)

def _glob0(dirname, basename, dir_fd, dironly, include_hidden=False):
    if basename:
        if _lexists(_join(dirname, basename), dir_fd):
            return [basename]
    else:
        # `os.path.split()` returns an empty basename for paths ending with a
        # directory separator.  'q*x/' should match only directories.
        if _isdir(dirname, dir_fd):
            return [basename]
    return []

# Following functions are not public but can be used by third-party code.

def glob0(dirname, pattern):
    return _glob0(dirname, pattern, None, False)

def glob1(dirname, pattern):
    return _glob1(dirname, pattern, None, False)

# This helper function recursively yields relative pathnames inside a literal
# directory.

def _glob2(dirname, pattern, dir_fd, dironly, include_hidden=False):
    assert _isrecursive(pattern)
    if not dirname or _isdir(dirname, dir_fd):
        yield pattern[:0]
    yield from _rlistdir(dirname, dir_fd, dironly,
                         include_hidden=include_hidden)

# If dironly is false, yields all file names inside a directory.
# If dironly is true, yields only directory names.
def _iterdir(dirname, dir_fd, dironly):
    try:
        fd = None
        fsencode = None
        if dir_fd is not None:
            if dirname:
                fd = arg = os.open(dirname, _dir_open_flags, dir_fd=dir_fd)
            else:
                arg = dir_fd
            if isinstance(dirname, bytes):
                fsencode = os.fsencode
        elif dirname:
            arg = dirname
        elif isinstance(dirname, bytes):
            arg = bytes(os.curdir, 'ASCII')
        else:
            arg = os.curdir
        try:
            with os.scandir(arg) as it:
                for entry in it:
                    try:
                        if not dironly or entry.is_dir():
                            if fsencode is not None:
                                yield fsencode(entry.name)
                            else:
                                yield entry.name
                    except OSError:
                        pass
        finally:
            if fd is not None:
                os.close(fd)
    except OSError:
        return

def _listdir(dirname, dir_fd, dironly):
    with contextlib.closing(_iterdir(dirname, dir_fd, dironly)) as it:
        return list(it)

# Recursively yields relative pathnames inside a literal directory.
def _rlistdir(dirname, dir_fd, dironly, include_hidden=False):
    names = _listdir(dirname, dir_fd, dironly)
    for x in names:
        if include_hidden or not _ishidden(x):
            yield x
            path = _join(dirname, x) if dirname else x
            for y in _rlistdir(path, dir_fd, dironly,
                               include_hidden=include_hidden):
                yield _join(x, y)


def _lexists(pathname, dir_fd):
    # Same as os.path.lexists(), but with dir_fd
    if dir_fd is None:
        return os.path.lexists(pathname)
    try:
        os.lstat(pathname, dir_fd=dir_fd)
    except (OSError, ValueError):
        return False
    else:
        return True

def _isdir(pathname, dir_fd):
    # Same as os.path.isdir(), but with dir_fd
    if dir_fd is None:
        return os.path.isdir(pathname)
    try:
        st = os.stat(pathname, dir_fd=dir_fd)
    except (OSError, ValueError):
        return False
    else:
        return stat.S_ISDIR(st.st_mode)

def _join(dirname, basename):
    # It is common if dirname or basename is empty
    if not dirname or not basename:
        return dirname or basename
    return os.path.join(dirname, basename)

magic_check = re.compile('([*?[])')
magic_check_bytes = re.compile(b'([*?[])')

def has_magic(s):
    if isinstance(s, bytes):
        match = magic_check_bytes.search(s)
    else:
        match = magic_check.search(s)
    return match is not None

def _ishidden(path):
    return path[0] in ('.', b'.'[0])

def _isrecursive(pattern):
    if isinstance(pattern, bytes):
        return pattern == b'**'
    else:
        return pattern == '**'

def escape(pathname):
    """Escape all special characters.
    """
    # Escaping is done by wrapping any of "*?[" between square brackets.
    # Metacharacters do not work in the drive part and shouldn't be escaped.
    drive, pathname = os.path.splitdrive(pathname)
    if isinstance(pathname, bytes):
        pathname = magic_check_bytes.sub(br'[\1]', pathname)
    else:
        pathname = magic_check.sub(r'[\1]', pathname)
    return drive + pathname


_dir_open_flags = os.O_RDONLY | getattr(os, 'O_DIRECTORY', 0)

Directory Contents

Dirs: 32 × Files: 164

Name Size Perms Modified Actions
asyncio DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
ctypes DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
curses DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
dbm DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
email DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
encodings DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
ensurepip DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
html DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
http DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
importlib DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
json DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
lib2to3 DIR
- drwxr-xr-x 2026-01-08 23:02:25
Edit Download
logging DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
re DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
sqlite3 DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
tomllib DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
unittest DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
urllib DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
venv DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
wsgiref DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
xml DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
xmlrpc DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
zipfile DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
zoneinfo DIR
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
- drwxr-xr-x 2026-01-08 23:02:23
Edit Download
6.38 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
33.41 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
500 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
98.78 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
62.94 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
20.15 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
32.79 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.34 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
11.57 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
25.26 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
33.61 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
12.13 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.37 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
14.52 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
10.71 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
36.01 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.77 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.97 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
20.03 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
52.53 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
26.99 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
129 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
8.21 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
7.44 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.40 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
3.82 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
16.00 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
60.63 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
268 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.74 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
81.41 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
29.52 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
104.25 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
79.63 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
10.14 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
15.35 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.86 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
37.25 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
33.92 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
37.05 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.44 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
7.31 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.85 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
20.82 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
8.53 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
9.42 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
24.81 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
9.46 KB lrw-r--r-- 2026-01-06 19:56:39
Edit Download
22.48 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
7.85 KB lrw-r--r-- 2026-01-06 19:56:39
Edit Download
52.77 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
4.29 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
124.15 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.50 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
79.51 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.05 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
13.61 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.66 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
76.76 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
12.97 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
77.06 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
9.11 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
22.50 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
23.14 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.76 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
40.12 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
31.57 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.32 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
11.20 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
12.87 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
10.71 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
58.95 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
39.86 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
49.86 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
68.65 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
65.34 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
91.85 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
8.77 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
17.85 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
42.37 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
27.68 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
14.28 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
17.07 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
23.59 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
22.55 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
28.60 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.99 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
11.13 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
110.85 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
7.65 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
11.23 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
7.01 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
33.88 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.98 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
7.64 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
12.58 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.20 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.94 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
19.21 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
8.36 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
13.04 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
55.43 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
2.44 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
22.89 KB lrw-r--r-- 2026-01-06 19:56:39
Edit Download
42.51 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
7.27 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
36.93 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
27.41 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
231 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
232 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
229 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
49.71 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.36 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
49.05 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
11.51 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
12.61 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
257 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
86.67 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
18.04 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
12.18 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
32.98 KB lrw-r--r-- 2026-01-06 20:14:55
Edit Download
11.26 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
111.57 KB lrwxr-xr-x 2026-01-06 19:56:39
Edit Download
22.79 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
31.63 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
19.26 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1003 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download
58.34 KB lrw-r--r-- 2026-01-06 19:56:39
Edit Download
13.15 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
2.45 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
21.06 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
28.66 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
45.31 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
17.62 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
1.99 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
10.74 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
116.05 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
7.17 KB lrw-r--r-- 2026-01-06 20:14:56
Edit Download
28.96 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
21.40 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
22.24 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
21.01 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
23.18 KB lrwxr-xr-x 2025-10-09 11:07:00
Edit Download
5.80 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
7.37 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
27.19 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.93 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
31.34 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
8.56 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.55 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
14.31 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
21.51 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
89.93 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
221.96 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
91.40 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
10.54 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
6.04 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
3.05 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
27.73 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
70.44 KB lrw-r--r-- 2026-01-06 20:14:35
Edit Download
7.05 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.75 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
5.10 KB lrw-r--r-- 2025-10-09 11:07:00
Edit Download
227 B lrw-r--r-- 2025-10-09 11:07:00
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 REDROOM — Secure File Manager. All rights reserved. Built with ❤️ & Red Dark UI