REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 36.73 KB
Close
/opt/cloudlinux/venv/lib64/python3.11/site-packages/numpy/matrixlib/__pycache__/defmatrix.cpython-311.pyc
Text
Base64
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Tm9uZSwgY29weT1UcnVlKQoKICAgIC4uIG5vdGU6OiBJdCBpcyBubyBsb25nZXIgcmVjb21tZW5kZWQgdG8gdXNlIHRoaXMgY2xhc3MsIGV2ZW4gZm9yIGxpbmVhcgogICAgICAgICAgICAgIGFsZ2VicmEuIEluc3RlYWQgdXNlIHJlZ3VsYXIgYXJyYXlzLiBUaGUgY2xhc3MgbWF5IGJlIHJlbW92ZWQKICAgICAgICAgICAgICBpbiB0aGUgZnV0dXJlLgoKICAgIFJldHVybnMgYSBtYXRyaXggZnJvbSBhbiBhcnJheS1saWtlIG9iamVjdCwgb3IgZnJvbSBhIHN0cmluZyBvZiBkYXRhLgogICAgQSBtYXRyaXggaXMgYSBzcGVjaWFsaXplZCAyLUQgYXJyYXkgdGhhdCByZXRhaW5zIGl0cyAyLUQgbmF0dXJlCiAgICB0aHJvdWdoIG9wZXJhdGlvbnMuICBJdCBoYXMgY2VydGFpbiBzcGVjaWFsIG9wZXJhdG9ycywgc3VjaCBhcyBgYCpgYAogICAgKG1hdHJpeCBtdWx0aXBsaWNhdGlvbikgYW5kIGBgKipgYCAobWF0cml4IHBvd2VyKS4KCiAgICBQYXJhbWV0ZXJzCiAgICAtLS0tLS0tLS0tCiAgICBkYXRhIDogYXJyYXlfbGlrZSBvciBzdHJpbmcKICAgICAgIElmIGBkYXRhYCBpcyBhIHN0cmluZywgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgYSBtYXRyaXggd2l0aCBjb21tYXMKICAgICAgIG9yIHNwYWNlcyBzZXBhcmF0aW5nIGNvbHVtbnMsIGFuZCBzZW1pY29sb25zIHNlcGFyYXRpbmcgcm93cy4KICAgIGR0eXBlIDogZGF0YS10eXBlCiAgICAgICBEYXRhLXR5cGUgb2YgdGhlIG91dHB1dCBtYXRyaXguCiAgICBjb3B5IDogYm9vbAogICAgICAgSWYgYGRhdGFgIGlzIGFscmVhZHkgYW4gYG5kYXJyYXlgLCB0aGVuIHRoaXMgZmxhZyBkZXRlcm1pbmVzCiAgICAgICB3aGV0aGVyIHRoZSBkYXRhIGlzIGNvcGllZCAodGhlIGRlZmF1bHQpLCBvciB3aGV0aGVyIGEgdmlldyBpcwogICAgICAgY29u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IC0tLS0tLS0tLS0KICAgICAgICBheGlzIDogTm9uZSBvciBpbnQgb3IgdHVwbGUgb2YgaW50cywgb3B0aW9uYWwKICAgICAgICAgICAgU2VsZWN0cyBhIHN1YnNldCBvZiB0aGUgYXhlcyBvZiBsZW5ndGggb25lIGluIHRoZSBzaGFwZS4KICAgICAgICAgICAgSWYgYW4gYXhpcyBpcyBzZWxlY3RlZCB3aXRoIHNoYXBlIGVudHJ5IGdyZWF0ZXIgdGhhbiBvbmUsCiAgICAgICAgICAgIGFuIGVycm9yIGlzIHJhaXNlZC4KCiAgICAgICAgUmV0dXJucwogICAgICAgIC0tLS0tLS0KICAgICAgICBzcXVlZXplZCA6IG1hdHJpeAogICAgICAgICAgICBUaGUgbWF0cml4LCBidXQgYXMgYSAoMSwgTikgbWF0cml4IGlmIGl0IGhhZCBzaGFwZSAoTiwgMSkuCgogICAgICAgIFNlZSBBbHNvCiAgICAgICAgLS0tLS0tLS0KICAgICAgICBudW1weS5zcXVlZXplIDogcmVsYXRlZCBmdW5jdGlvbgoKICAgICAgICBOb3RlcwogICAgICAgIC0tLS0tCiAgICAgICAgSWYgYG1gIGhhcyBhIHNpbmdsZSBjb2x1bW4gdGhlbiB0aGF0IGNvbHVtbiBpcyByZXR1cm5lZAogICAgICAgIGFzIHRoZSBzaW5nbGUgcm93IG9mIGEgbWF0cml4LiAgT3RoZXJ3aXNlIGBtYCBpcyByZXR1cm5lZC4KICAgICAgICBUaGUgcmV0dXJuZWQgbWF0cml4IGlzIGFsd2F5cyBlaXRoZXIgYG1gIGl0c2VsZiBvciBhIHZpZXcgaW50byBgbWAuCiAgICAgICAgU3VwcGx5aW5nIGFuIGF4aXMga2V5d29yZCBhcmd1bWVudCB3aWxsIG5vdCBhZmZlY3QgdGhlIHJldHVybmVkIG1hdHJpeAogICAgICAgIGJ1dCBpdCBtYXkgY2F1c2UgYW4gZXJyb3IgdG8gYmUgcmFpc2VkLgoKICAgICAgICBFeGFtcGxlcwogICAgICAgIC0tLS0tLS0tCiAgICAgICAgPj4+IGMgPSBucC5tYXRyaXgoW1sxXSwgWzJdXSkKICAgICAgICA+Pj4gYwogICAgICAg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AAAAAAAAAAAAAAAAAAAAAAAAAAB8AHwBfAJ8A2QBrAKmBQAAqwUAAAAAAAAAAKADAAAAAAAAAAAAAAAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAAUwApA2HcAgAACiAgICAgICAgUmV0dXJucyB0aGUgYXZlcmFnZSBvZiB0aGUgbWF0cml4IGVsZW1lbnRzIGFsb25nIHRoZSBnaXZlbiBheGlzLgoKICAgICAgICBSZWZlciB0byBgbnVtcHkubWVhbmAgZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbi4KCiAgICAgICAgU2VlIEFsc28KICAgICAgICAtLS0tLS0tLQogICAgICAgIG51bXB5Lm1lYW4KCiAgICAgICAgTm90ZXMKICAgICAgICAtLS0tLQogICAgICAgIFNhbWUgYXMgYG5kYXJyYXkubWVhbmAgZXhjZXB0IHRoYXQsIHdoZXJlIHRoYXQgcmV0dXJucyBhbiBgbmRhcnJheWAsCiAgICAgICAgdGhpcyByZXR1cm5zIGEgYG1hdHJpeGAgb2JqZWN0LgoKICAgICAgICBFeGFtcGxlcwogICAgICAgIC0tLS0tLS0tCiAgICAgICAgPj4+IHggPSBucC5tYXRyaXgobnAuYXJhbmdlKDEyKS5yZXNoYXBlKCgzLCA0KSkpCiAgICAgICAgPj4+IHgKICAgICAgICBtYXRyaXgoW1sgMCwgIDEsICAyLCAgM10sCiAgICAgICAgICAgICAgICBbIDQsICA1LCAgNiwgIDddLAogICAgICAgICAgICAgICAgWyA4LCAgOSwgMTAsIDExXV0pCiAgICAgICAgPj4+IHgubWVhbigpCiAgICAgICAgNS41CiAgICAgICAgPj4+IHgubWVhbigwKQogICAgICAgIG1hdHJpeChbWzQuLCA1LiwgNi4sIDcuXV0pCiAgICAgICAgPj4+IHgubWVhbigxKQogICAgICAgIG1hdHJpeChbWyAxLjVdLAogICAgICAgICAgICAgICAgWyA1LjVdLAogICAgICAgICAgICAgICAgWyA5LjVdXSkKCiAgICAgICAgVHJ/AAAAKQRyOwAAAHI8AAAA2gRtZWFucnkAAAByggAAAHMEAAAAICAgIHImAAAAcosAAAB6C21hdHJpeC5tZWFungEAAHMxAAAA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AKACAAAAAAAAAAAAAAAAAAAAAAAAAAB8AHwBfAJkAawCpgQAAKsEAAAAAAAAAACgAwAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAFMAKQNh2gIAAAogICAgICAgIFJldHVybiB0aGUgbWF4aW11bSB2YWx1ZSBhbG9uZyBhbiBheGlzLgoKICAgICAgICBQYXJhbWV0ZXJzCiAgICAgICAgLS0tLS0tLS0tLQogICAgICAgIFNlZSBgYW1heGAgZm9yIGNvbXBsZXRlIGRlc2NyaXB0aW9ucwoKICAgICAgICBTZWUgQWxzbwogICAgICAgIC0tLS0tLS0tCiAgICAgICAgYW1heCwgbmRhcnJheS5tYXgKCiAgICAgICAgTm90ZXMKICAgICAgICAtLS0tLQogICAgICAgIFRoaXMgaXMgdGhlIHNhbWUgYXMgYG5kYXJyYXkubWF4YCwgYnV0IHJldHVybnMgYSBgbWF0cml4YCBvYmplY3QKICAgICAgICB3aGVyZSBgbmRhcnJheS5tYXhgIHdvdWxkIHJldHVybiBhbiBuZGFycmF5LgoKICAgICAgICBFeGFtcGxlcwogICAgICAgIC0tLS0tLS0tCiAgICAgICAgPj4+IHggPSBucC5tYXRyaXgobnAuYXJhbmdlKDEyKS5yZXNoYXBlKCgzLDQpKSk7IHgKICAgICAgICBtYXRyaXgoW1sgMCwgIDEsICAyLCAgM10sCiAgICAgICAgICAgICAgICBbIDQsICA1LCAgNiwgIDddLAogICAgICAgICAgICAgICAgWyA4LCAgOSwgMTAsIDExXV0pCiAgICAgICAgPj4+IHgubWF4KCkKICAgICAgICAxMQogICAgICAgID4+PiB4Lm1heCgwKQogICAgICAgIG1hdHJpeChbWyA4LCAgOSwgMTAsIDExXV0pCiAgICAgICAgPj4+IHgubWF4KDEpCiAgICAgICAgbWF0cml4KFtbIDNdLAogICAgICAgICAgICAgICAgWyA3XSwKICAgICAgICAgICAgICAgIFsxMV1dKQoKICAgICAgICBUcn8AAAApBHI7AAAAcjwAAADaA21heHJ5AAAAcpcAAABzAwAAACAgIHImAAAAcpsAAAB6Cm1hdHJpeC5tYXhkAgAA8y8AAACAAPVCAQAQEYx5j32KfZhUoDSoE7B0iH3RDzzUDzzXD0bSD0bAdNEPTNQPTNAITHIoAAAAYwMAAAAAAAAAAAAAAAUAAAADAAAA82oAAACXAHQAAAAAAAAAAAAAAGoBAAAAAAAAAACgAgAAAAAAAAAAAAAAAAAAAAAAAAAAfAB8AXwCpgMAAKsDAAAAAAAAAACgAwAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAFMAKQFhmgMAAAogICAgICAgIEluZGV4ZXMgb2YgdGhlIG1heGltdW0gdmFsdWVzIGFsb25nIGFuIGF4aXMuCgogICAgICAgIFJldHVybiB0aGUgaW5kZXhlcyBvZiB0aGUgZmlyc3Qgb2NjdXJyZW5jZXMgb2YgdGhlIG1heGltdW0gdmFsdWVzCiAgICAgICAgYWxvbmcgdGhlIHNwZWNpZmllZCBheGlzLiAgSWYgYXhpcyBpcyBOb25lLCB0aGUgaW5kZXggaXMgZm9yIHRoZQogICAgICAgIGZsYXR0ZW5lZCBtYXRyaXguCgogICAgICAgIFBhcmFtZXRlcnMKICAgICAgICAtLS0tLS0tLS0tCiAgICAgICAgU2VlIGBudW1weS5hcmdtYXhgIGZvciBjb21wbGV0ZSBkZXNjcmlwdGlvbnMKCiAgICAgICAgU2VlIEFsc28KICAgICAgICAtLS0tLS0tLQogICAgICAgIG51bXB5LmFyZ21heAoKICAgICAgICBOb3RlcwogICAgICAgIC0tLS0tCiAgICAgICAgVGhpcyBpcyB0aGUgc2FtZSBhcyBgbmRhcnJheS5hcmdtYXhgLCBidXQgcmV0dXJucyBhIGBtYXRyaXhgIG9iamVjdAogICAgICAgIHdoZXJlIGBuZGFycmF5LmFyZ21heGAgd291bGQgcmV0dXJuIGFuIGBuZGFycmF5YC4KCiAgICAgICAgRXhhbXBsZXMKICAgICAgICAtLS0tLS0tLQogICAgICAgID4+PiB4ID0gbnAubWF0cml4KG5wLmFyYW5nZSgxMikucmVzaGFwZSgoMyw0KSkpOyB4CiAgICAgICAgbWF0cml4KFtbIDAsICAxLCAgMiwgIDNdLAogICAgICAgICAgICAgICAgWyA0LCAgNSwgIDYsICA3XSwKICAgICAgICAgICAgICAgIFsgOCwgIDksIDEwLCAxMV1dKQogICAgICAgID4+PiB4LmFyZ21heCgpCiAgICAgICAgMTEKICAgICAgICA+Pj4geC5hcmdtYXgoMCkKICAgICAgICBtYXRyaXgoW1syLCAyLCAyLCAyXV0pCiAgICAgICAgPj4+IHguYXJnbWF4KDEpCiAgICAgICAgbWF0cml4KFtbM10sCiAgICAgICAgICAgICAgICBbM10sCiAgICAgICAgICAgICAgICBbM11dKQoKICAgICAgICApBHI7AAAAcjwAAADaBmFyZ21heHJ3AAAAcpcAAABzAwAAACAgIHImAAAAcp4AAAB6DW1hdHJpeC5hcmdtYXiHAgAA8y0AAACAAPVKAQAQEYx51w8f0g8foASgZKhD0Q8w1A8w1w830g83uATRDz3UDz3QCD1yKAAAAGMDAAAAAAAAAAAAAAAGAAAAAwAAAPNuAAAAlwB0AAAAAAAAAAAAAABqAQAAAAAAAAAAoAIAAAAAAAAAAAAAAAAAAAAAAAAAAHwAfAF8AmQBrAKmBAAAqwQAAAAAAAAAAKADAAAAAAAAAAAAAAAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAAUwApA2HwAgAACiAgICAgICAgUmV0dXJuIHRoZSBtaW5pbXVtIHZhbHVlIGFsb25nIGFuIGF4aXMuCgogICAgICAgIFBhcmFtZXRlcnMKICAgICAgICAtLS0tLS0tLS0tCiAgICAgICAgU2VlIGBhbWluYCBmb3IgY29tcGxldGUgZGVzY3JpcHRpb25zLgoKICAgICAgICBTZWUgQWxzbwogICAgICAgIC0tLS0tLS0tCiAgICAgICAgYW1pbiwgbmRhcnJheS5taW4KCiAgICAgICAgTm90ZXMKICAgICAgICAtLS0tLQogICAgICAgIFRoaXMgaXMgdGhlIHNhbWUgYXMgYG5kYXJyYXkubWluYCwgYnV0IHJldHVybnMgYSBgbWF0cml4YCBvYmplY3QKICAgICAgICB3aGVyZSBgbmRhcnJheS5taW5gIHdvdWxkIHJldHVybiBhbiBuZGFycmF5LgoKICAgICAgICBFeGFtcGxlcwogICAgICAgIC0tLS0tLS0tCiAgICAgICAgPj4+IHggPSAtbnAubWF0cml4KG5wLmFyYW5nZSgxMiku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bGwgZG9jdW1lbnRhdGlvbi4KCiAgICAgICAgU2VlIEFsc28KICAgICAgICAtLS0tLS0tLQogICAgICAgIG51bXB5LnB0cAoKICAgICAgICBOb3RlcwogICAgICAgIC0tLS0tCiAgICAgICAgU2FtZSBhcyBgbmRhcnJheS5wdHBgLCBleGNlcHQsIHdoZXJlIHRoYXQgd291bGQgcmV0dXJuIGFuIGBuZGFycmF5YCBvYmplY3QsCiAgICAgICAgdGhpcyByZXR1cm5zIGEgYG1hdHJpeGAgb2JqZWN0LgoKICAgICAgICBFeGFtcGxlcwogICAgICAgIC0tLS0tLS0tCiAgICAgICAgPj4+IHggPSBucC5tYXRyaXgobnAuYXJhbmdlKDEyKS5yZXNoYXBlKCgzLDQpKSk7IHgKICAgICAgICBtYXRyaXgoW1sgMCwgIDEsICAyLCAgM10sCiAgICAgICAgICAgICAgICBbIDQsICA1LCAgNiwgIDddLAogICAgICAgICAgICAgICAgWyA4LCAgOSwgMTAsIDExXV0pCiAgICAgICAgPj4+IHgucHRwKCkKICAgICAgICAxMQogICAgICAgID4+PiB4LnB0cCgwKQogICAgICAgIG1hdHJpeChbWzgsIDgsIDgsIDhdXSkKICAgICAgICA+Pj4geC5wdHAoMSkKICAgICAgICBtYXRyaXgoW1szXSwKICAgICAgICAgICAgICAgIFszXSwKICAgICAgICAgICAgICAgIFszXV0pCgogICAgICAgICkEcjsAAAByPAAAANoDcHRwcncAAABylwAAAHMDAAAAICAgciYAAABypQAAAHoKbWF0cml4LnB0cPgCAABzKgAAAIAA9T4AEBGMeY99in2YVKA0qBPRDy3UDy3XDzTSDzSwVNEPOtQPOtAIOnIoAAAAYwEAAAAAAAAAAAAAAAUAAAADAAAA82wAAACXAHwAagAAAAAAAAAAAFwCAAB9AX0CfAF8AmsCAAAAAHIHZAFkAmwBbQJ9AwEAbgZkAWQDbAFtA30DAQB0CQAAAAAAAAAAAAACAHwDfACmAQAAqwEAAAAAAAAAAKYBAACrAQAAAAAAAAAAUwApBGFJAwAACiAgICAgICAgUmV0dXJucyB0aGUgKG11bHRpcGxpY2F0aXZlKSBpbnZlcnNlIG9mIGludmVydGlibGUgYHNlbGZgLgoKICAgICAgICBQYXJhbWV0ZXJzCiAgICAgICAgLS0tLS0tLS0tLQogICAgICAgIE5vbmUKCiAgICAgICAgUmV0dXJucwogICAgICAgIC0tLS0tLS0KICAgICAgICByZXQgOiBtYXRyaXggb2JqZWN0CiAgICAgICAgICAgIElmIGBzZWxmYCBpcyBub24tc2luZ3VsYXIsIGByZXRgIGlzIHN1Y2ggdGhhdCBgYHJldCAqIHNlbGZgYCA9PQogICAgICAgICAgICBgYHNlbGYgKiByZXRgYCA9PSBgYG5wLm1hdHJpeChucC5leWUoc2VsZlswLDpdLnNpemUpKWBgIGFsbCByZXR1cm4KICAgICAgICAgICAgYGBUcnVlYGAuCgogICAgICAgIFJhaXNlcwogICAgICAgIC0tLS0tLQogICAgICAgIG51bXB5LmxpbmFsZy5MaW5BbGdFcnJvcjogU2luZ3VsYXIgbWF0cml4CiAgICAgICAgICAgIElmIGBzZWxmYCBpcyBzaW5ndWxhci4KCiAgICAgICAgU2VlIEFsc28KICAgICAgICAtLS0tLS0tLQogICAgICAgIGxpbmFsZy5pbnYKCiAgICAgICAgRXhhbXBsZXMKICAgICAgICAtLS0tLS0tLQogICAgICAgID4+PiBtID0gbnAubWF0cml4KCdbMSwgMjsgMywgNF0nKTsgbQogICAgICAgIG1hdHJpeChbWzEsIDJdLAogICAgICAgICAgICAgICAgWzMsIDRdXSkKICAgICAgICA+Pj4gbS5nZXRJKCkKICAgICAgICBtYXRyaXgoW1stMi4gLCAgMS4gXSwKICAgICAgICAgICAgICAgIFsgMS41LCAtMC41XV0pCiAgICAgICAgPj4+IG0uZ2V0SSgpICogbQogICAgICAgIG1hdHJpeChbWyAxLiwgIDAuXSwgIyBtYXkgdmFyeQogICAgICAgICAgICAgICAgWyAwLiwgIDEuXV0pCgogICAgICAgIHIGAAAAKQHaA2ludikB2gRwaW52KQVyQQAAANoMbnVtcHkubGluYWxncqcAAAByqAAAAHIFAAAAKQRyVAAAANoBTXI7AAAA2gRmdW5jcwQAAAAgICAgciYAAADaAUl6CG1hdHJpeC5JGQMAAHNWAAAAgADwTAEAEBSMeokEiAGIMdgLDJABijaINtgMMNAMMNAMMNAMMNAMMNAMMNAMMOAMMdAMMdAMMdAMMdAMMdAMMd0PF5gEmASYVJkKnArRDyPUDyPQCCNyKAAAAGMBAAAAAAAAAAAAAAACAAAAAwAAAPMqAAAAlwB8AKAAAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAFMAKQFhMQIAAAogICAgICAgIFJldHVybiBgc2VsZmAgYXMgYW4gYG5kYXJyYXlgIG9iamVjdC4KCiAgICAgICAgRXF1aXZhbGVudCB0byBgYG5wLmFzYXJyYXkoc2VsZilgYC4KCiAgICAgICAgUGFyYW1ldGVycwogICAgICAgIC0tLS0tLS0tLS0KICAgICAgICBOb25lCgogICAgICAgIFJldHVybnMKICAgICAgICAtLS0tLS0tCiAgICAgICAgcmV0IDogbmRhcnJheQogICAgICAgICAgICBgc2VsZmAgYXMgYW4gYG5kYXJyYXlgCgogICAgICAgIEV4YW1wbGVzCiAgICAgICAgLS0tLS0tLS0KICAgICAgICA+Pj4geCA9IG5wLm1hdHJpeChucC5hcmFuZ2UoMTIpLnJlc2hhcGUoKDMsNCkpKTsgeAogICAgICAgIG1hdHJpeChbWyAwLCAgMSwgIDIsICAzXSwKICAgICAgICAgICAgICAgIFsgNCwgIDUsICA2LCAgN10sCiAgICAgICAgICAgICAgICBbIDgsICA5LCAxMCwgMTFdXSkKICAgICAgICA+Pj4geC5nZXRBKCkKICAgICAgICBhcnJheShbWyAwLCAgMSwgIDIsICAzXSwKICAgICAgICAgICAgICAgWyA0LCAgNSwgIDYsICA3XSwKICAgICAgICAgICAgICAgWyA4LCAgOSwgMTAsIDExXV0pCgogICAgICAgICkBcnsAAAByfQAAAHMBAAAAIHImAAAA2gFBeghtYXRyaXguQUYDAABzFAAAAIAA8DgAEBSPfop+0Q8f1A8f0AgfcigAAABjAQAAAAAAAAAAAAAAAgAAAAMAAADzTgAAAJcAfACgAAAAAAAAAAAAAAAAAAAAAAAAAAAApgAAAKsAAAAAAAAAAACgAQAAAAAAAAAAAAAAAAAAAAAAAAAApgAAAKsAAAAAAAAAAABTACkBYQgCAAAKICAgICAgICBSZXR1cm4gYHNlbGZgIGFzIGEgZmxhdHRlbmVkIGBuZGFycmF5YC4KCiAgICAgICAgRXF1aXZhbGVudCB0byBgYG5wLmFzYXJyYXkoeCkucmF2ZWwoKWBgCgogICAgICAgIFBhcmFtZXRlcnMKICAgICAgICAtLS0tLS0tLS0tCiAgICAgICAgTm9uZQoKICAgICAgICBSZXR1cm5zCiAgICAgICAgLS0tLS0tLQogICAgICAgIHJldCA6IG5kYXJyYXkKICAgICAgICAgICAgYHNlbGZgLCAxLUQsIGFzIGFuIGBuZGFycmF5YAoKICAgICAgICBFeGFtcGxlcwogICAgICAgIC0tLS0tLS0tCiAgICAgICAgPj4+IHggPSBucC5tYXRyaXgobnAuYXJhbmdlKDEyKS5yZXNoYXBlKCgzLDQpKSk7IHgKICAgICAgICBtYXRyaXgoW1sgMCwgIDEsICAyLCAgM10sCiAgICAgICAgICAgICAgICBbIDQsICA1LCAgNiwgIDddLAogICAgICAgICAgICAgICAgWyA4LCAgOSwgMTAsIDExXV0pCiAgICAgICAgPj4+IHguZ2V0QTEoKQogICAgICAgIGFycmF5KFsgMCwgIDEsICAyLCAuLi4sICA5LCAxMCwgMTFdKQoKCiAgICAgICAgKQJyewAAANoFcmF2ZWxyfQAAAHMBAAAAIHImAAAA2gJBMXoJbWF0cml4LkExZAMAAHMgAAAAgADwNgAQFI9+in7RDx/UDx/XDyXSDyXRDyfUDyfQCCdyKAAAAGMCAAAAAAAAAAAAAAAEAAAAAwAAAPNEAAAAlwB0AAAAAAAAAAAAAABqAQAAAAAAAAAAoAIAAAAAAAAAAAAAAAAAAAAAAAAAAHwAfAGsAaYCAACrAgAAAAAAAAAAUwApAmEJBgAACiAgICAgICAgUmV0dXJuIGEgZmxhdHRlbmVkIG1hdHJpeC4KCiAgICAgICAgUmVmZXIgdG8gYG51bXB5LnJhdmVsYCBmb3IgbW9yZSBkb2N1bWVudGF0aW9uLgoKICAgICAgICBQYXJhbWV0ZXJzCiAgICAgICAgLS0tLS0tLS0tLQogICAgICAgIG9yZGVyIDogeydDJywgJ0YnLCAnQScsICdLJ30sIG9wdGlvbmFsCiAgICAgICAgICAgIFRoZSBlbGVtZW50cyBvZiBgbWAgYXJlIHJlYWQgdXNpbmcgdGhpcyBpbmRleCBvcmRlci4gJ0MnIG1lYW5zIHRvCiAgICAgICAgICAgIGluZGV4IHRoZSBlbGVtZW50cyBpbiBDLWxpa2Ugb3JkZXIsIHdpdGggdGhlIGxhc3QgYXhpcyBpbmRleAogICAgICAgICAgICBjaGFuZ2luZyBmYXN0ZXN0LCBiYWNrIHRvIHRoZSBmaXJzdCBheGlzIGluZGV4IGNoYW5naW5nIHNsb3dlc3QuCiAgICAgICAgICAgICdGJyBtZWFucyB0byBpbmRleCB0aGUgZWxlbWVudHMgaW4gRm9ydHJhbi1saWtlIGluZGV4IG9yZGVyLCB3aXRoCiAgICAgICAgICAgIHRoZSBmaXJzdCBpbmRleCBjaGFuZ2luZyBmYXN0ZXN0LCBhbmQgdGhlIGxhc3QgaW5kZXggY2hhbmdpbmcKICAgICAgICAgICAgc2xvd2VzdC4gTm90ZSB0aGF0IHRoZSAnQycgYW5kICdGJyBvcHRpb25zIHRha2Ugbm8gYWNjb3VudCBvZiB0aGUKICAgICAgICAgICAgbWVtb3J5IGxheW91dCBvZiB0aGUgdW5kZXJseWluZyBhcnJheSwgYW5kIG9ubHkgcmVmZXIgdG8gdGhlIG9yZGVyCiAgICAgICAgICAgIG9mIGF4aXMgaW5kZXhpbmcuICAnQScgbWVhbnMgdG8gcmVhZCB0aGUgZWxlbWVudHMgaW4gRm9ydHJhbi1saWtlCiAgICAgICAgICAgIGluZGV4IG9yZGVyIGlmIGBtYCBpcyBGb3J0cmFuICpjb250aWd1b3VzKiBpbiBtZW1vcnksIEMtbGlrZSBvcmRlcgogICAgICAgICAgICBvdGhlcndpc2UuICAnSycgbWVhbnMgdG8gcmVhZCB0aGUgZWxlbWVudHMgaW4gdGhlIG9yZGVyIHRoZXkgb2NjdXIKICAgICAgICAgICAgaW4gbWVtb3J5LCBleGNlcHQgZm9yIHJldmVyc2luZyB0aGUgZGF0YSB3aGVuIHN0cmlkZXMgYXJlIG5lZ2F0aXZlLgogICAgICAgICAgICBCeSBkZWZhdWx0LCAnQycgaW5kZXggb3JkZXIgaXMg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c2Ugb2YgYHNlbGZgCgogICAgICAgIEV4YW1wbGVzCiAgICAgICAgLS0tLS0tLS0KICAgICAgICA+Pj4geCA9IG5wLm1hdHJpeChucC5hcmFuZ2UoMTIpLnJlc2hhcGUoKDMsNCkpKQogICAgICAgID4+PiB6ID0geCAtIDFqKng7IHoKICAgICAgICBtYXRyaXgoW1sgIDAuICswLmosICAgMS4gLTEuaiwgICAyLiAtMi5qLCAgIDMuIC0zLmpdLAogICAgICAgICAgICAgICAgWyAgNC4gLTQuaiwgICA1LiAtNS5qLCAgIDYuIC02LmosICAgNy4gLTcual0sCiAgICAgICAgICAgICAgICBbICA4LiAtOC5qLCAgIDkuIC05LmosICAxMC4tMTAuaiwgIDExLi0xMS5qXV0pCiAgICAgICAgPj4+IHouZ2V0SCgpCiAgICAgICAgbWF0cml4KFtbIDAuIC0wLmosICA0LiArNC5qLCAgOC4gKzgual0sCiAgICAgICAgICAgICAgICBbIDEuICsxLmosICA1LiArNS5qLCAgOS4gKzkual0sCiAgICAgICAgICAgICAgICBbIDIuICsyLmosICA2LiArNi5qLCAxMC4rMTAual0sCiAgICAgICAgICAgICAgICBbIDMuICszLmosICA3LiArNy5qLCAxMS4rMTEual1dKQoKICAgICAgICApB9oKaXNzdWJjbGFzc3IsAAAA2gR0eXBlcjsAAADaD2NvbXBsZXhmbG9hdGluZ3J0AAAA2gljb25qdWdhdGVyfQAAAHMBAAAAIHImAAAA2gFIeghtYXRyaXguSMkDAABzSQAAAIAA9TwADBaQZJRqlG+lcdQnONELOdQLOfAAAwkk2BMXlz6SPtETI9QTI9cTLdITLdETL9QTL9AML+ATF5c+kj7REyPUEyPQDCNyKAAAACkCTlQpA05OTnJpAAAAKQFyMgAAACkETk5OcgYAAACpAk5OKSzaCF9fbmFtZV9f2gpfX21vZHVsZV9f2gxfX3F1YWxuYW1lX1/aB19fZG9jX1/aEl9fYXJyYXlfcHJpb3JpdHlfX3JFAAAAclcAAAByWQAAAHJnAAAAcmAAAAByawAAAHJtAAAAcm8AAABycQAAAHJ3AAAAcnkAAAByfAAAAHKBAAAAcoUAAAByiAAAAHKL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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 3
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
defmatrix.cpython-311.pyc
36.73 KB
lrw-r--r--
2026-02-06 08:07:28
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
setup.cpython-311.pyc
967 B
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
516 B
lrw-r--r--
2026-02-06 08:07:28
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).