REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 54.85 KB
Close
//opt/alt/python310/lib64/python3.10/xml/etree/__pycache__/ElementTree.cpython-310.opt-1.pyc
Text
Base64
bw0NCgAAAADP0+doTCIBAOMAAAAAAAAAAAAAAAAAAAAACAAAAEAAAABzigIAAGQAWgBnAGQBogFaAWQCWgJkA2QEbANaA2QDZARsBFoEZANkBGwFWgVkA2QEbAZaBmQDZARsB1oHZANkBGwIWgdkA2QEbAlaCWQFZAZsCm0LWgsBAEcAZAdkCIQAZAhlDIMDWg1kCWQKhABaDkcAZAtkDIQAZAyDAloPaQBmAWQNZA6EAVoQZF5kD2QQhAFaEWReZBFkEoQBWhJlEloTRwBkE2QUhABkFIMCWhRHAGQVZBaEAGQWgwJaFWUJahZkF2QYhACDAVoXZF5kGWQahAFaGGQbZByEAFoZZB1aGnoGZRtlGoMBWhpXAG4JBABlHHl+AQABAAEAWQBuAXcAZB5kH4QAWh1kIGQhhABaHmUZZR1lHmQinANaH2QjZCSEAFogZCVkJmQnZChkKWQqZCtkLJwHWiFlIWUgXyFkLWQuhABaImQvZDCEAFojZDFkMoQAWiRkM2Q0hABaJWRfZARkBGQ1ZDacA2Q3ZDiEA1omRwBkOWQ6hABkOmUGaieDA1ooZF9kBGQEZDVkNpwDZDtkPIQDWilkPWQ+hABaKmRgZEBkQYQBWitkXmRCZEOEAVosZF9kRGRFhAFaLUcAZEZkR4QAZEeDAlouZF5kSGRJhAFaL2ReZEpkS4QBWjBlL1oxZF5kTGRNhAFaMkcAZE5kT4QAZE+DAlozRwBkUGRRhABkUYMCWjRkXmQEZARkUpwCZFNkVIQDWjVlBKA2ZFVlBGo3oQJqOFo5RwBkVmRXhABkV4MCWjpkWGRZhABaO2RaZFuEAFo8eg5lD1o9ZANkXGw+VABkA2RdbD5tP1o/AQBXAG4LBABlQJABeT0BAAEAAQBZAGQEUwB3AGU/ZRFlEoMCAQBkBFMAKWFhBgUAAExpZ2h0d2VpZ2h0IFhNTCBzdXBwb3J0IGZvciBQeXRob24uCgogWE1MIGlzIGFuIGluaGVyZW50bHkgaGllcmFyY2hpY2FsIGRhdGEgZm9ybWF0LCBhbmQgdGhlIG1vc3QgbmF0dXJhbCB3YXkgdG8KIHJlcHJlc2VudCBpdCBpcyB3aXRoIGEgdHJlZS4gIFRoaXMgbW9kdWxlIGhhcyB0d28gY2xhc3NlcyBmb3IgdGhpcyBwdXJwb3NlOgoKICAgIDEuIEVsZW1lbnRUcmVlIHJlcHJlc2VudHMgdGhlIHdob2xlIFhNTCBkb2N1bWVudCBhcyBhIHRyZWUgYW5kCgogICAgMi4gRWxlbWVudCByZXByZXNlbnRzIGEgc2luZ2xlIG5vZGUgaW4gdGhpcyB0cmVlLgoKIEludGVyYWN0aW9ucyB3aXRoIHRoZSB3aG9sZSBkb2N1bWVudCAocmVhZGluZyBhbmQgd3JpdGluZyB0by9mcm9tIGZpbGVzKSBhcmUKIHVzdWFsbHkgZG9uZSBvbiB0aGUgRWxlbWVudFRyZWUgbGV2ZWwuICBJbnRlcmFjdGlvbnMgd2l0aCBhIHNpbmdsZSBYTUwgZWxlbWVudAogYW5kIGl0cyBzdWItZWxlbWVudHMgYXJlIGRvbmUgb24gdGhlIEVsZW1lbnQgbGV2ZWwuCgogRWxlbWVudCBpcyBhIGZsZXhpYmxlIGNvbnRhaW5lciBvYmplY3QgZGVzaWduZWQgdG8gc3RvcmUgaGllcmFyY2hpY2FsIGRhdGEKIHN0cnVjdHVyZXMgaW4gbWVtb3J5LiBJdCBjYW4gYmUgZGVzY3JpYmVkIGFzIGEgY3Jvc3MgYmV0d2VlbiBhIGxpc3QgYW5kIGEKIGRpY3Rpb25hcnkuICBFYWNoIEVsZW1lbnQgaGFzIGEgbnVtYmVyIG9mIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIGl0OgoKICAgICd0YWcnIC0gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgZWxlbWVudCdzIG5hbWUuCgogICAgJ2F0dHJpYnV0ZXMnIC0gYSBQeXRob24gZGljdGlvbmFyeSBzdG9yaW5nIHRoZSBlbGVtZW50J3MgYXR0cmlidXRlcy4KCiAgICAndGV4dCcgLSBhIHN0cmluZyBjb250YWluaW5nIHRoZSBlbGVtZW50J3MgdGV4dCBjb250ZW50LgoKICAgICd0YWlsJyAtIGFuIG9wdGlvbmFsIHN0cmluZyBjb250YWluaW5nIHRleHQgYWZ0ZXIgdGhlIGVsZW1lbnQncyBlbmQgdGFnLgoKICAgIEFuZCBhIG51bWJlciBvZiBjaGlsZCBlbGVtZW50cyBzdG9yZWQgaW4gYSBQeXRob24gc2VxdWVuY2UuCgogVG8gY3JlYXRlIGFuIGVsZW1lbnQgaW5zdGFuY2UsIHVzZSB0aGUgRWxlbWVudCBjb25zdHJ1Y3RvciwKIG9yIHRoZSBTdWJFbGVtZW50IGZhY3RvcnkgZnVuY3Rpb24uCgogWW91IGNhbiBhbHNvIHVzZSB0aGUgRWxlbWVudFRyZWUgY2xhc3MgdG8gd3JhcCBhbiBlbGVtZW50IHN0cnVjdHVyZQogYW5kIGNvbnZlcnQgaXQgdG8gYW5kIGZyb20gWE1MLgoKKRraB0NvbW1lbnTaBGR1bXDaB0VsZW1lbnTaC0VsZW1lbnRUcmVl2gpmcm9tc3RyaW5n2g5mcm9tc3RyaW5nbGlzdNoGaW5kZW502glpc2VsZW1lbnTaCWl0ZXJwYXJzZdoFcGFyc2XaClBhcnNlRXJyb3LaAlBJ2hVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb27aBVFOYW1l2gpTdWJFbGVtZW502gh0b3N0cmluZ9oMdG9zdHJpbmdsaXN02gtUcmVlQnVpbGRlctoHVkVSU0lPTtoDWE1M2gVYTUxJRNoJWE1MUGFyc2Vy2g1YTUxQdWxsUGFyc2Vy2hJyZWdpc3Rlcl9uYW1lc3BhY2XaDGNhbm9uaWNhbGl6ZdoQQzE0TldyaXRlclRhcmdldHoFMS4zLjDpAAAAAE7pAQAAACkB2gtFbGVtZW50UGF0aGMAAAAAAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3ILAAAAeuxBbiBlcnJvciB3aGVuIHBhcnNpbmcgYW4gWE1MIGRvY3VtZW50LgoKICAgIEluIGFkZGl0aW9uIHRvIGl0cyBleGNlcHRpb24gdmFsdWUsIGEgUGFyc2VFcnJvciBjb250YWlucwogICAgdHdvIGV4dHJhIGF0dHJpYnV0ZXM6CiAgICAgICAgJ2NvZGUnICAgICAtIHRoZSBzcGVjaWZpYyBleGNlcHRpb24gY29kZQogICAgICAgICdwb3NpdGlvbicgLSB0aGUgbGluZSBhbmQgY29sdW1uIG9mIHRoZSBlcnJvcgoKICAgIE4pBNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oHX19kb2NfX6kAciIAAAByIgAAAPo8L29wdC9hbHQvcHl0aG9uMzEwL2xpYjY0L3B5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sQEAAFJlbW92ZSBtYXRjaGluZyBzdWJlbGVtZW50LgoKICAgICAgICBVbmxpa2UgdGhlIGZpbmQgbWV0aG9kcywgdGhpcyBtZXRob2QgY29tcGFyZXMgZWxlbWVudHMgYmFzZWQgb24KICAgICAgICBpZGVudGl0eSwgTk9UIE9OIHRhZyB2YWx1ZSBvciBjb250ZW50cy4gIFRvIHJlbW92ZSBzdWJlbGVtZW50cyBieQogICAgICAgIG90aGVyIG1lYW5zLCB0aGUgZWFzaWVzdCB3YXkgaXMgdG8gdXNlIGEgbGlzdCBjb21wcmVoZW5zaW9uIHRvCiAgICAgICAgc2VsZWN0IHdoYXQgZWxlbWVudHMgdG8ga2VlcCwgYW5kIHRoZW4gdXNlIHNsaWNlIGFzc2lnbm1lbnQgdG8gdXBkYXRlCiAgICAgICAgdGhlIHBhcmVudCBlbGVtZW50LgoKICAgICAgICBWYWx1ZUVycm9yIGlzIHJhaXNlZCBpZiBhIG1hdGNoaW5nIGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLgoKICAgICAgICBOKQJyLAAAANoGcmVtb3ZlclIAAAByIgAAAHIiAAAAciMAAAByWwAAAAwBAABzAgAAABANeg5FbGVtZW50LnJlbW92ZWMDAAAAAAAAAAAAAAADAAAABQAAAEMAAADzDgAAAHQAoAF8AHwBfAKhA1MAKQFhHQEAAEZpbmQgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBieSB0YWcgbmFtZSBvciBwYXRoLgoKICAgICAgICAqcGF0aCogaXMgYSBzdHJpbmcgaGF2aW5nIGVpdGhlciBhbiBlbGVtZW50IHRhZyBvciBhbiBYUGF0aCwKICAgICAgICAqbmFtZXNwYWNlcyogaXMgYW4gb3B0aW9uYWwgbWFwcGluZyBmcm9tIG5hbWVzcGFjZSBwcmVmaXggdG8gZnVsbCBuYW1lLgoKICAgICAgICBSZXR1cm4gdGhlIGZpcnN0IG1hdGNoaW5nIGVsZW1lbnQsIG9yIE5vbmUgaWYgbm8gZWxlbWVudCB3YXMgZm91bmQuCgogICAgICAgICkCch0AAADaBGZpbmSpA3ItAAAA2gRwYXRo2gpuYW1lc3BhY2VzciIAAAByIgAAAHIjAAAAcl0AAAAb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ICAgICAgICpmaWxlX29yX2ZpbGVuYW1lKiAtLSBmaWxlIG5hbWUgb3IgYSBmaWxlIG9iamVjdCBvcGVuZWQgZm9yIHdyaXRpbmcKCiAgICAgICAgICAqZW5jb2RpbmcqIC0tIHRoZSBvdXRwdXQgZW5jb2RpbmcgKGRlZmF1bHQ6IFVTLUFTQ0lJKQoKICAgICAgICAgICp4bWxfZGVjbGFyYXRpb24qIC0tIGJvb2wgaW5kaWNhdGluZyBpZiBhbiBYTUwgZGVjbGFyYXRpb24gc2hvdWxkIGJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgb3V0cHV0LiBJZiBOb25lLCBhbiBYTUwgZGVjbGFyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIGFkZGVkIGlmIGVuY29kaW5nIElTIE5PVCBlaXRoZXIgb2Y6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUy1BU0NJSSwgVVRGLTgsIG9yIFVuaWNvZGUKCiAgICAgICAgICAqZGVmYXVsdF9uYW1lc3BhY2UqIC0tIHNldHMgdGhlIGRlZmF1bHQgWE1MIG5hbWVzcGFjZSAoZm9yICJ4bWxucyIpCgogICAgICAgICAgKm1ldGhvZCogLS0gZWl0aGVyICJ4bWwiIChkZWZhdWx0KSwgImh0bWwsICJ0ZXh0Iiwgb3IgImMxNG4iCgogICAgICAgICAgKnNob3J0X2VtcHR5X2VsZW1lbnRzKiAtLSBjb250cm9scyB0aGUgZm9ybWF0dGluZyBvZiBlbGVtZW50cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGNvbnRhaW4gbm8gY29udGVudC4gSWYgVHJ1ZSAoZGVmYXVsdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhleSBhcmUgZW1pdHRlZCBhcyBhIHNpbmdsZSBzZWxmLWNsb3NlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsIG90aGVyd2lzZSB0aGV5IGFyZSBlbWl0dGVkIGFzIGEgcGFpcgogICAgICAgICAgICAg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hABaCGQPZBCEAFoJZBFkEoQAWgpkF2QTZBSEAVoLZBVkFoQAWgxkAlMAKRhyEgAAAGE4AwAAR2VuZXJpYyBlbGVtZW50IHN0cnVjdHVyZSBidWlsZGVyLgoKICAgIFRoaXMgYnVpbGRlciBjb252ZXJ0cyBhIHNlcXVlbmNlIG9mIHN0YXJ0LCBkYXRhLCBhbmQgZW5kIG1ldGhvZAogICAgY2FsbHMgdG8gYSB3ZWxsLWZvcm1lZCBlbGVtZW50IHN0cnVjdHVyZS4KCiAgICBZb3UgY2FuIHVzZSB0aGlzIGNsYXNzIHRvIGJ1aWxkIGFuIGVsZW1lbnQgc3RydWN0dXJlIHVzaW5nIGEgY3VzdG9tIFhNTAogICAgcGFyc2VyLCBvciBhIHBhcnNlciBmb3Igc29tZSBvdGhlciBYTUwtbGlrZSBmb3JtYXQuCgogICAgKmVsZW1lbnRfZmFjdG9yeSogaXMgYW4gb3B0aW9uYWwgZWxlbWVudCBmYWN0b3J5IHdoaWNoIGlzIGNhbGxlZAogICAgdG8gY3JlYXRlIG5ldyBFbGVtZW50IGluc3RhbmNlcywgYXMgbmVjZXNzYXJ5LgoKICAgICpjb21tZW50X2ZhY3RvcnkqIGlzIGEgZmFjdG9yeSB0byBjcmVhdGUgY29tbWVudHMgdG8gYmUgdXNlZCBpbnN0ZWFkIG9mCiAgICB0aGUgc3RhbmRhcmQgZmFjdG9yeS4gIElmICppbnNlcnRfY29tbWVudHMqIGlzIGZhbHNlICh0aGUgZGVmYXVsdCksCiAgICBjb21tZW50cyB3aWxsIG5vdCBiZSBpbnNlcnRlZCBpbnRvIHRoZSB0cmVlLgoKICAgICpwaV9mYWN0b3J5KiBpcyBhIGZhY3RvcnkgdG8gY3JlYXRlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zIHRvIGJlIHVzZWQKICAgIGluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIGZhY3RvcnkuICBJZiAqaW5zZXJ0X3BpcyogaXMgZmFsc2UgKHRoZSBkZWZhdWx0KSwKICAgIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zIHdpbGwgbm90IGJlIGluc2VydGVkIGludG8gdGhlIHRyZWUuCiAgICBORikE2g9jb21tZW50X2ZhY3Rvcnna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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 15
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
cElementTree.cpython-310.opt-1.pyc
192 B
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-310.opt-2.pyc
192 B
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-310.pyc
192 B
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-310.opt-1.pyc
2.39 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-310.opt-2.pyc
2.39 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-310.pyc
2.39 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-310.opt-1.pyc
8.84 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-310.opt-2.pyc
8.84 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-310.pyc
8.84 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-310.opt-1.pyc
54.85 KB
lrw-r--r--
2026-01-09 14:06:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-310.opt-2.pyc
36.65 KB
lrw-r--r--
2026-01-09 14:06:37
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-310.pyc
55.13 KB
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-310.opt-1.pyc
150 B
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-310.opt-2.pyc
150 B
lrw-r--r--
2026-01-09 14:06:34
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-310.pyc
150 B
lrw-r--r--
2026-01-09 14:06:34
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).