REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 42.19 KB
Close
/lib64/python3.8/logging/__pycache__/handlers.cpython-38.pyc
Text
Base64
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ZA1kBWQGhAFaBGQHZAiEAFoFZAlkCoQAWgZkC2QMhABaB2QDUwApDtoSV2F0Y2hlZEZpbGVIYW5kbGVyYYIDAAAKICAgIEEgaGFuZGxlciBmb3IgbG9nZ2luZyB0byBhIGZpbGUsIHdoaWNoIHdhdGNoZXMgdGhlIGZpbGUKICAgIHRvIHNlZSBpZiBpdCBoYXMgY2hhbmdlZCB3aGlsZSBpbiB1c2UuIFRoaXMgY2FuIGhhcHBlbiBiZWNhdXNlIG9mCiAgICB1c2FnZSBvZiBwcm9ncmFtcyBzdWNoIGFzIG5ld3N5c2xvZyBhbmQgbG9ncm90YXRlIHdoaWNoIHBlcmZvcm0KICAgIGxvZyBmaWxlIHJvdGF0aW9uLiBUaGlzIGhhbmRsZXIsIGludGVuZGVkIGZvciB1c2UgdW5kZXIgVW5peCwKICAgIHdhdGNoZXMgdGhlIGZpbGUgdG8gc2VlIGlmIGl0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IGVtaXQuCiAgICAoQSBmaWxlIGhhcyBjaGFuZ2VkIGlmIGl0cyBkZXZpY2Ugb3IgaW5vZGUgaGF2ZSBjaGFuZ2VkLikKICAgIElmIGl0IGhhcyBjaGFuZ2VkLCB0aGUgb2xkIGZpbGUgc3RyZWFtIGlzIGNsb3NlZCwgYW5kIHRoZSBmaWxlCiAgICBvcGVuZWQgdG8gZ2V0IGEgbmV3IHN0cmVhbS4KCiAgICBUaGlzIGhhbmRsZXIgaXMgbm90IGFwcHJvcHJpYXRlIGZvciB1c2UgdW5kZXIgV2luZG93cywgYmVjYXVzZQogICAgdW5kZXIgV2luZG93cyBvcGVuIGZpbGVzIGNhbm5vdCBiZSBtb3ZlZCBvciByZW5hbWVkIC0gbG9nZ2luZwogICAgb3BlbnMgdGhlIGZpbGVzIHdpdGggZXhjbHVzaXZlIGxvY2tzIC0gYW5kIHNvIHRoZXJlIGlzIG5vIG5lZWQKICAgIGZvciBzdWNoIGEgaGFuZGxlci4gRnVydGhlcm1vcmUsIFNUX0lOTyBpcyBub3Qgc3VwcG9ydGVkIHVuZGVyCiAgICBXaW5kb3dzOyBzdGF0IGFsd2F5cyByZXR1cm5zIHplcm8gZm9yIHRoaXMgdmFsdWUuCgogICAgVGhpcyBoYW5kbGVyIGlz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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 9
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
config.cpython-38.opt-1.pyc
22.64 KB
lrw-r--r--
2023-10-17 18:13:03
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.cpython-38.opt-2.pyc
18.62 KB
lrw-r--r--
2023-10-17 18:13:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
config.cpython-38.pyc
22.68 KB
lrw-r--r--
2023-10-17 18:13:00
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-38.opt-1.pyc
42.19 KB
lrw-r--r--
2023-10-17 18:13:00
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-38.opt-2.pyc
23.92 KB
lrw-r--r--
2023-10-17 18:13:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
handlers.cpython-38.pyc
42.19 KB
lrw-r--r--
2023-10-17 18:13:00
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-38.opt-1.pyc
63.72 KB
lrw-r--r--
2023-10-17 18:13:03
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-38.opt-2.pyc
35.74 KB
lrw-r--r--
2023-10-17 18:13:05
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-38.pyc
63.75 KB
lrw-r--r--
2023-10-17 18:13:00
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).