REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 57.38 KB
Close
/proc/self/root/opt/alt/python33/lib/python3.3/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-33.pyc
Text
Base64
ngwNCjeSUmXyvwAAYwAAAAAAAAAAAAAAAAcAAABAAAAAczYCAABkAABaAABkAQBkAgBsAQBtAgBaAgABZAEAZAMAbAMAWgMAZAEAZAMAbAQAWgQAZAEAZAMAbAUAWgUAZAEAZAMAbAYAWgYAZAEAZAMAbAcAWgcAZAEAZAMAbAgAWggAZAEAZAMAbAkAWgkAZAEAZAMAbAoAWgoAZAEAZAMAbAsAWgsAZAQAZAUAbAwAbQ0AWg0AbQ4AWg4AAWQEAGQGAGwPAG0QAFoQAAFkBABkBwBsEQBtEgBaEgBtEwBaEwABZAQAZAgAbBQAbRUAWhUAbRYAWhYAAWQEAGQJAGwXAG0YAFoYAG0ZAFoZAG0aAFoaAG0bAFobAG0cAFocAG0dAFodAG0eAFoeAAFkCgBkCwBkDABkDQBkDgBnBQBaHwBlBwBqIABlIQCDAQBaIgBkDwBaIwBkEABaJABkEQBlFgBkEgBkEwBkFABlIwBkFQBmBwBaJQBkFgBaJgBHZBcAZBgAhAAAZBgAZScAgwMAWigAR2QZAGQOAIQAAGQOAGUnAIMDAFopAEdkGgBkCgCEAABkCgBlJwCDAwBaKgBHZBsAZAsAhAAAZAsAZSoAgwMAWisAR2QcAGQMAIQAAGQMAGUrAIMDAFosAEdkHQBkDQCEAABkDQBlKwCDAwBaLQBlLABaLgBlLQBaLwBHZB4AZB8AhAAAZB8AZScAgwMAWjAAZCAAZCEAZCIAhAEAWjEAZCMAZCQAhAAAWjIAZCUAZCYAhAAAWjMAZCcAZCgAhAAAWjQAZAMAUygpAAAAdRcAAABQRVAgMzc2IGltcGxlbWVudGF0aW9uLmkAAAAAKAEAAAB1EAAAAHVuaWNvZGVfbGl0ZXJhbHNOaQEAAAAoAgAAAHUQAAAARGlzdGxpYkV4Y2VwdGlvbnUJAAAAcmVzb3VyY2VzKAEAAAB1CAAAAFN0cmluZ0lPKAIAAAB1CgAAAGdldF9zY2hlbWV1FwAAAFVuc3VwcG9ydGVkVmVyc2lvbkVycm9yKAIAAAB1CAAAAE1ldGFkYXRhdREAAABNRVRBREFUQV9GSUxFTkFNRSgHAAAAdREAAABwYXJzZV9yZXF1aXJlbWVudHUPAAAAY2FjaGVkX3Byb3BlcnR5dRYAAABwYXJzZV9uYW1lX2FuZF92ZXJzaW9udQwAAAByZWFkX2V4cG9ydHN1DQAAAHdyaXRlX2V4cG9ydHN1CQAAAENTVlJlYWRlcnUJAAAAQ1NWV3JpdGVydQwAAABEaXN0cmlidXRpb251GQAAAEJhc2VJbnN0YWxsZWREaXN0cmlidXRpb251FQAAAEluc3RhbGxlZERpc3RyaWJ1dGlvbnUTAAAARWdnSW5mb0Rpc3RyaWJ1dGlvbnUQAAAARGlzdHJpYnV0aW9uUGF0aHUTAAAAcHlkaXN0LWV4cG9ydHMuanNvbnUUAAAAcHlkaXN0LWNvbW1hbmRzLmpzb251CQAAAElOU1RBTExFUnUGAAAAUkVDT1JEdQkAAABSRVFVRVNURUR1CQAAAFJFU09VUkNFU3UGAAAAU0hBUkVEdQoAAAAuZGlzdC1pbmZvYwEAAAAAAAAAAQAAAAIAAABCAAAAcz4AAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZAIAZAMAhAAAWgQAZAQAZAUAhAAAWgUAZAYAZAcAhAAAWgYAZAgAUygJAAAAdQYAAABfQ2FjaGV1TAAAAAogICAgQSBzaW1wbGUgY2FjaGUgbWFwcGluZyBuYW1lcyBhbmQgLmRpc3QtaW5mbyBwYXRocyB0byBkaXN0cmlidXRpb25zCiAgICBjAQAAAAAAAAABAAAAAgAAAEMAAABzHwAAAGkAAHwAAF8AAGkAAHwAAF8BAGQCAHwAAF8DAGQBAFMoAwAAAHVaAAAACiAgICAgICAgSW5pdGlhbGlzZSBhbiBpbnN0YW5jZS4gVGhlcmUgaXMgbm9ybWFsbHkgb25lIGZvciBlYWNoIERpc3RyaWJ1dGlvblBhdGguCiAgICAgICAgTkYoBAAAAHUEAAAAbmFtZXUEAAAAcGF0aHUFAAAARmFsc2V1CQAAAGdlbmVyYXRlZCgBAAAAdQQAAABzZWxmKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1CAAAAF9faW5pdF9fMAAAAHMGAAAAAAQJAQkBdQ8AAABfQ2FjaGUuX19pbml0X19jAQAAAAAAAAABAAAAAgAAAEMAAABzJwAAAHwAAGoAAGoBAIMAAAF8AABqAgBqAQCDAAABZAIAfAAAXwQAZAEAUygDAAAAdUMAAAAK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AABwYXRodQQAAABUcnVldQ0AAABfaW5jbHVkZV9kaXN0dQwAAABfaW5jbHVkZV9lZ2d1BgAAAF9DYWNoZXUGAAAAX2NhY2hldQoAAABfY2FjaGVfZWdndQ4AAABfY2FjaGVfZW5hYmxlZHUKAAAAZ2V0X3NjaGVtZXUHAAAAX3NjaGVtZSgDAAAAdQQAAABzZWxmdQQAAABwYXRodQsAAABpbmNsdWRlX2VnZygAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQgAAABfX2luaXRfX04AAABzEgAAAAAJDAEMAQkBCQEJAgwBDAEJAXUZAAAARGlzdHJpYnV0aW9uUGF0aC5fX2luaXRfX2MBAAAAAAAAAAEAAAABAAAAQwAAAHMHAAAAfAAAagAAUygBAAAATigBAAAAdQ4AAABfY2FjaGVfZW5hYmxlZCgBAAAAdQQAAABzZWxmKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1EgAAAF9nZXRfY2FjaGVfZW5hYmxlZGIAAABzAgAAAAABdSMAAABEaXN0cmlidXRpb25QYXRoLl9nZXRfY2FjaGVfZW5hYmxlZGMCAAAAAAAAAAIAAAACAAAAQwAAAHMNAAAAfAEAfAAAXwAAZAAAUygBAAAATigBAAAAdQ4AAABfY2FjaGVfZW5hYmxlZCgCAAAAdQQAAABzZWxmdQUAAAB2YWx1ZSgAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dRIAAABfc2V0X2NhY2hlX2VuYWJsZWRlAAAAcwIAAAAAAXUjAAAARGlzdHJpYnV0aW9uUGF0aC5fc2V0X2NhY2hlX2VuYWJsZWRjAQAAAAAAAAABAAAAAQAAAEMAAABzHgAAAHwAAGoAAGoBAIMAAAF8AABqAgBqAQCDAAABZAEAUygCAAAAdSwAAAAKICAgICAgICBDbGVhcnMgdGhlIGludGVybmFsIGNhY2hlLgogICAgICAgIE4oAwAAAHUGAAAAX2NhY2hldQUAAABjbGVh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Z3UUAAAAX3lpZWxkX2Rpc3RyaWJ1dGlvbnN1CgAAAGlzaW5zdGFuY2V1FQAAAEluc3RhbGxlZERpc3RyaWJ1dGlvbnUDAAAAYWRkdQQAAABUcnVlKAQAAAB1BAAAAHNlbGZ1CAAAAGdlbl9kaXN0dQcAAABnZW5fZWdndQQAAABkaXN0KAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1DwAAAF9nZW5lcmF0ZV9jYWNoZZgAAABzFgAAAAAFDQEWAQwBEwEPARMCFAIGAQ8BBgF1IAAAAERpc3RyaWJ1dGlvblBhdGguX2dlbmVyYXRlX2NhY2hlYwMAAAAAAAAAAwAAAAMAAABDAAAAcykAAAB8AQBqAABkAQBkAgCDAgB9AQBkAQBqAQB8AQB8AgBnAgCDAQB0AgAXUygDAAAAdW8DAAAKICAgICAgICBUaGUgKm5hbWUqIGFuZCAqdmVyc2lvbiogcGFyYW1ldGVycyBhcmUgY29udmVydGVkIGludG8gdGhlaXIKICAgICAgICBmaWxlbmFtZS1lc2NhcGVkIGZvcm0sIGkuZS4gYW55IGBgJy0nYGAgY2hhcmFjdGVycyBhcmUgcmVwbGFjZWQKICAgICAgICB3aXRoIGBgJ18nYGAgb3RoZXIgdGhhbiB0aGUgb25lIGluIGBgJ2Rpc3QtaW5mbydgYCBhbmQgdGhlIG9uZQogICAgICAgIHNlcGFyYXRpbmcgdGhlIG5hbWUgZnJvbSB0aGUgdmVyc2lvbiBudW1iZXIuCgogICAgICAgIDpwYXJhbWV0ZXIgbmFtZTogaXMgY29udmVydGVkIHRvIGEgc3RhbmRhcmQgZGlzdHJpYnV0aW9uIG5hbWUgYnkgcmVwbGFjaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICBhbnkgcnVucyBvZiBub24tIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHdpdGggYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIGBgJy0nYGAuCiAgICAgICAgOnR5cGUgbmFtZTogc3RyaW5nCiAgICAgICAgOnBhcmFtZXRlciB2ZXJzaW9uOiBpcyBjb252ZXJ0ZWQgdG8g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ICAgVGhpcyBmdW5jdGlvbiBvbmx5IHJldHVybnMgdGhlIGZpcnN0IHJlc3VsdCBmb3VuZCwgc2luY2Ugbm8gbW9yZSB0aGFuCiAgICAgICAgb25lIHZhbHVlcyBhcmUgZXhwZWN0ZWQuIElmIHRoZSBkaXJlY3RvcnkgaXMgbm90IGZvdW5kLCByZXR1cm5zIGBgTm9uZWBgLgoKICAgICAgICA6cGFyYW1ldGVyIHZlcnNpb246IGEgdmVyc2lvbiBzcGVjaWZpZXIgdGhhdCBpbmRpY2F0ZXMgdGhlIHZlcnNpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkLCBjb25mb3JtaW5nIHRvIHRoZSBmb3JtYXQgaW4gYGBQRVAtMzQ1YGAKCiAgICAgICAgOnR5cGUgbmFtZTogc3RyaW5nCiAgICAgICAgOnR5cGUgdmVyc2lvbjogc3RyaW5nCiAgICAgICAgdQcAAAAlcyAoJXMpdR8AAABpbnZhbGlkIG5hbWUgb3IgdmVyc2lvbjogJXIsICVyTigJAAAAdQQAAABOb25ldQcAAABfc2NoZW1ldQcAAABtYXRjaGVydQoAAABWYWx1ZUVycm9ydRAAAABEaXN0bGliRXhjZXB0aW9udREAAABnZXRfZGlzdHJpYnV0aW9uc3UIAAAAcHJvdmlkZXN1FgAAAHBhcnNlX25hbWVfYW5kX3ZlcnNpb251BQAAAG1hdGNoKAkAAAB1BAAAAHNlbGZ1BAAAAG5hbWV1BwAAAHZlcnNpb251BwAAAG1hdGNoZXJ1BAAAAGRpc3R1CAAAAHByb3ZpZGVkdQEAAABwdQYAAABwX25hbWV1BQAAAHBfdmVyKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1FQAAAHByb3ZpZGVzX2Rpc3RyaWJ1dGlvbvEAAABzJAAAAAAOBgEMAQMBIAENAQYBGAITAQkCDQESAQwBDAEFAQcCGwEFAXUmAAAARGlzdHJpYnV0aW9uUGF0aC5wcm92aWRlc19kaXN0cmlidXRpb25jAwAAAAAAAAAEAAAAAwAAAEMAAABzOwAAAHwAAGoAAHwBAIMBAH0DAHwDAGQCAGsIAHIuAHQCAGQBAHwBABaDAQCCAQBuAAB8AwBqAwB8AgCDAQBTKAMAAAB1NQAAAAogICAgICAgIFJldHVybiB0aGUgcGF0aCB0byBhIHJlc291cmNlIGZpbGUuCiAgICAgICAgdR4AAABubyBkaXN0cmlidXRpb24gbmFtZWQgJXIgZm91bmROKAQAAAB1EAAAAGdldF9kaXN0cmlidXRpb251BAAAAE5vbmV1CwAAAExvb2t1cEVycm9ydREAAABnZXRfcmVzb3VyY2VfcGF0aCgEAAAAdQQAAABzZWxmdQQAAABuYW1ldQ0AAAByZWxhdGl2ZV9wYXRodQQAAABkaXN0KAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1DQAAAGdldF9maWxlX3BhdGgVAQAAcwgAAAAABA8BDAETAXUeAAAARGlzdHJpYnV0aW9uUGF0aC5nZXRfZmlsZV9wYXRoYwMAAAAAAAAABwAAAAMAAABjAAAAc4AAAAB4eQB8AABqAACDAABEXWsAfQMAfAMAagEAfQQAfAEAfAQAawYAcg0AfAQAfAEAGX0FAHwCAGQBAGsJAHJZAHwCAHwFAGsGAHJ1AHwFAHwCABlWAXF1AHF4AHgcAHwFAGoDAIMAAERdCwB9BgB8BgBWAXFmAFdxDQBxDQBXZAEAUygCAAAAddkAAAAKICAgICAgICBSZXR1cm4gYWxsIG9mIHRoZSBleHBvcnRlZCBlbnRyaWVzIGluIGEgcGFydGljdWxhciBjYXRlZ29yeS4KCiAgICAgICAgOnBhcmFtIGNhdGVnb3J5OiBUaGUgY2F0ZWdvcnkgdG8gc2VhcmNoIGZvciBlbnRyaWVzLgogICAgICAgIDpwYXJhbSBuYW1lOiBJZiBzcGVjaWZpZWQsIG9ubHkgZW50cmllcyB3aXRoIHRoYXQgbmFtZSBhcmUgcmV0dXJuZWQuCiAgICAgICAgTigEAAAAdREAAABnZXRfZGlzdHJpYnV0aW9uc3UHAAAAZXhwb3J0c3UEAAAATm9uZXUGAAAAdmFsdWVzKAcAAAB1BAAAAHNlbGZ1CAAAAGNhdGVnb3J5dQQAAABuYW1ldQQAAABkaXN0dQEAAABydQEAAABkdQEAAAB2KAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1FAAAAGdldF9leHBvcnRlZF9lbnRyaWVzHgEAAHMSAAAAAAcTAQkBDAEKAQwBDAEPAhMBdSUAAABEaXN0cmlidXRpb25QYXRoLmdldF9leHBvcnRlZF9lbnRyaWVzTkYoFQAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UHAAAAX19kb2NfX3UEAAAATm9uZXUFAAAARmFsc2V1CAAAAF9faW5pdF9fdRIAAABfZ2V0X2NhY2hlX2VuYWJsZWR1EgAAAF9zZXRfY2FjaGVfZW5hYmxlZHUIAAAAcHJvcGVydHl1DQAAAGNhY2hlX2VuYWJsZWR1CwAAAGNsZWFyX2NhY2hldRQAAABfeWllbGRfZGlzdHJpYnV0aW9uc3UPAAAAX2dlbmVyYXRlX2NhY2hldQsAAABjbGFzc21ldGhvZHUQAAAAZGlzdGluZm9fZGlybmFtZXURAAAAZ2V0X2Rpc3RyaWJ1dGlvbnN1EAAAAGdldF9kaXN0cmlidXRpb251FQAAAHByb3ZpZGVzX2Rpc3RyaWJ1dGlvbnUNAAAAZ2V0X2ZpbGVfcGF0aHUUAAAAZ2V0X2V4cG9ydGVkX2VudHJpZXMoAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dRAAAABEaXN0cmlidXRpb25QYXRoSgAAAHMcAAAAEAMGARIUDAMMAw8CDAgMJgwTEhYMFgwaDyQMCWMBAAAAAAAAAAEAAAADAAAAQgAAAHMEAQAAfAAARWUAAFoBAGQAAFoCAGQBAFoDAGQfAFoFAGQfAFoGAGQCAGQDAIQAAFoHAGUIAGQEAGQFAIQAAIMBAFoJAGUJAFoKAGUIAGQGAGQHAIQAAIMBAFoLAGUIAGQIAGQJAIQAAIMBAFoMAGQKAGQLAIQAAFoNAGUIAGQMAGQNAIQAAIMBAFoOAGUIAGQOAGQPAIQAAIMBAFoPAGUIAGQQAGQRAIQAAIMBAFoQAGUIAGQSAGQTAIQAAIMB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X3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1CAAAAHByb3ZpZGVzYgEAAHMKAAAAAAYMARYBDAEQAXUVAAAARGlzdHJpYnV0aW9uLnByb3ZpZGVzYwIAAAAAAAAAAwAAAAcAAABDAAAAczoAAAB0AAB8AABqAQB8AQCDAgB9AgB0AgB8AABqAQBqAwB8AgBkAQB8AABqBABkAgB8AABqBQCDAQKDAQBTKAMAAABOdQYAAABleHRyYXN1AwAAAGVudigGAAAAdQcAAABnZXRhdHRydQgAAABtZXRhZGF0YXUDAAAAc2V0dRAAAABnZXRfcmVxdWlyZW1lbnRzdQYAAABleHRyYXN1BwAAAGNvbnRleHQoAwAAAHUEAAAAc2VsZnUIAAAAcmVxX2F0dHJ1BQAAAHJlcXRzKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1EQAAAF9nZXRfcmVxdWlyZW1lbnRzbgEAAHMGAAAAAAESARsBdR4AAABEaXN0cmlidXRpb24uX2dldF9yZXF1aXJlbWVudHNjAQAAAAAAAAABAAAAAgAAAEMAAABzDQAAAHwAAGoAAGQBAIMBAFMoAgAAAE51DAAAAHJ1bl9yZXF1aXJlcygBAAAAdREAAABfZ2V0X3JlcXVpcmVtZW50cygBAAAAdQQAAABzZWxmKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1DAAAAHJ1bl9yZXF1aXJlc3MBAABzAgAAAAACdRkAAABEaXN0cmlidXRpb24ucnVuX3JlcXVpcmVzYwEAAAAAAAAAAQAAAAIAAABDAAAAcw0AAAB8AABqAABkAQCDAQBTKAIAAABOdQ0AAABtZXRhX3JlcXVpcmVzKAEAAAB1EQAAAF9nZXRfcmVxdWlyZW1lbnRzKAEAAAB1BAAAAHNlbGYoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUNAAAAbWV0YV9yZXF1aXJlc3cBAABzAgAAAAACdRoAAABEaXN0cmlidXRpb24ubWV0YV9yZXF1aXJlc2MBAAAAAAAAAAEAAAACAAAAQwAAAHMNAAAAfAAAagAAZAEAgwEAUygCAAAATnUOAAAAYnVpbGRfcmVxdWlyZXMoAQAAAHURAAAAX2dldF9yZXF1aXJlbWVudHMoAQAAAHUEAAAAc2VsZigAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQ4AAABidWlsZF9yZXF1aXJlc3sBAABzAgAAAAACdRsAAABEaXN0cmlidXRpb24uYnVpbGRfcmVxdWlyZXNjAQAAAAAAAAABAAAAAgAAAEMAAABzDQAAAHwAAGoAAGQBAIMBAFMoAgAAAE51DQAAAHRlc3RfcmVxdWlyZXMoAQAAAHURAAAAX2dldF9yZXF1aXJlbWVudHMoAQAAAHUEAAAAc2VsZigAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQ0AAAB0ZXN0X3JlcXVpcmVzfwEAAHMCAAAAAAJ1GgAAAERpc3RyaWJ1dGlvbi50ZXN0X3JlcXVpcmVzYwEAAAAAAAAAAQAAAAIAAABDAAAAcw0AAAB8AABqAABkAQCDAQBTKAIAAABOdQwAAABkZXZfcmVxdWlyZXMoAQAAAHURAAAAX2dldF9yZXF1aXJlbWVudHMoAQAAAHUEAAAAc2VsZigAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQwAAABkZXZfcmVxdWlyZXODAQAAcwIAAAAAAnUZAAAARGlzdHJpYnV0aW9uLmRldl9yZXF1aXJlc2MCAAAAAAAAAAoAAAAUAAAAQwAAAHPsAAAAdAAAfAEAgwEAfQIAdAEAfAAAagIAagMAgwEAfQMAeRYAfAMAagQAfAIAagUAgwEAfQQAV25BAAR0BgBrCgBydwABAQF0BwBqCABkAQB8AQCDAgABfAEAagkAgwAAZAIAGX0FAHwDAGoEAHwFAIMBAH0EAFluAQBYfAQAagoAfQUAZAMAfQYAeF4AfAAAagwARF1TAH0HAHQNAHwHAIMBAFwCAH0IAH0JAHwIAHwFAGsDAHK7AHGRAG4AAHkUAHwEAGoOAHwJAIMBAH0GAFBXcZEABHQGAGsKAHLjAAEBAVlxkQBYcZEAV3wGAFMoBAAAAHW/AAAACiAgICAgICAgU2F5IGlmIHRoaXMgaW5zdGFuY2UgbWF0Y2hlcyAoZnVsZmlsbHMpIGEgcmVxdWlyZW1lbnQuCiAgICAgICAgOnBhcmFtIHJlcTogVGhlIHJlcXVpcmVtZW50IHRvIG1hdGNoLgogICAgICAgIDpydHlwZSByZXE6IHN0cgogICAgICAgIDpyZXR1cm46IFRydWUgaWYgaXQgbWF0Y2hlcywgZWxzZSBGYWxzZS4KICAgICAgICB1KwAAAGNvdWxkIG5vdCByZWFkIHZlcnNpb24gJXIgLSB1c2luZyBuYW1lIG9ubHlpAAAAAEYoDwAAAHURAAAAcGFyc2VfcmVxdWlyZW1lbnR1CgAAAGdldF9zY2hlbWV1CAAAAG1ldGFkYXRhdQYAAABzY2hlbWV1BwAAAG1hdGNoZXJ1CwAAAHJlcXVpcmVtZW50dRcAAABVbnN1cHBvcnRlZFZlcnNpb25FcnJvcnUGAAAAbG9nZ2VydQcAAAB3YXJuaW5ndQUAAABzcGxpdHUDAAAAa2V5dQUAAABGYWxzZXUIAAAAcHJvdmlkZXN1FgAAAHBhcnNlX25hbWVfYW5kX3ZlcnNpb251BQAAAG1hdGNoKAoAAAB1BAAAAHNlbGZ1AwAAAHJlcXUBAAAAcnUGAAAAc2NoZW1ldQcAAABtYXRjaGVydQQAAABuYW1ldQYAAAByZXN1bHR1AQAAAHB1BgAAAHBfbmFtZXUFAAAAcF92ZXIoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUTAAAAbWF0Y2hlc19yZXF1aXJlbWVudIcBAABzKgAAAAAJDAESAQMBFgENAgkBBwEQARQCCQIGARABEgEMAQYBAwEPAQUBDQEJAXUgAAAARGlzdHJpYnV0aW9uLm1hdGNoZXNfcmVxdWlyZW1lbnRjAQAAAAAAAAACAAAABAAAAEMAAABzNgAAAHwAAGoAAHIZAGQBAHwAAGoAABZ9AQBuBgBkAgB9AQBkAwB8AABqAQB8AABqAgB8AQBmAwAWUygEAAAAdUMAAAAKICAgICAgICBSZXR1cm4gYSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgaW5zdGFuY2UsCiAgICAgICAgdQUAAAAgWyVzXXUAAAAAdRgAAAA8RGlzdHJpYnV0aW9uICVzICglcyklcz4oAwAAAHUKAAAAc291cmNlX3VybHUEAAAAbmFtZXUHAAAAdmVyc2lvbigCAAAAdQQAAABzZWxmdQYAAABzdWZmaXgoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUIAAAAX19yZXByX1+pAQAAcwgAAAAABAkBEAIGAXUVAAAARGlzdHJpYnV0aW9uLl9fcmVwcl9fYwIAAAAAAAAAAwAAAAQAAABDAAAAc1sAAAB0AAB8AQCDAQB0AAB8AACDAQBrCQByIQBkAQB9AgBuNgB8AABqAgB8AQBqAgBrAgBvVAB8AABqAwB8AQBqAwBrAgBvVAB8AABqBAB8AQBqBABrAgB9AgB8AgBTKAIAAAB1PAEAAAogICAgICAgIFNlZSBpZiB0aGlzIGRpc3RyaWJ1dGlvbiBpcyB0aGUgc2FtZSBhcyBhbm90aGVyLgogICAgICAgIDpwYXJhbSBvdGhlcjogVGhlIGRpc3RyaWJ1dGlvbiB0byBjb21wYXJlIHdpdGguIFRvIGJlIGVxdWFsIHRvIG9uZQogICAgICAgICAgICAgICAgICAgICAgYW5vdGhlci4gZGlzdHJpYnV0aW9ucyBtdXN0IGhhdmUgdGhlIHNhbWUgdHlwZSwgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gYW5kIHNvdXJjZV91cmwuCiAgICAgICAgOnJldHVybjogVHJ1ZSBpZiBpdCBpcyB0aGUgc2FtZSwgZWxzZSBGYWxzZS4KICAgICAgICBGKAUAAAB1BAAAAHR5cGV1BQAAAEZhbHNldQQAAABuYW1ldQcAAAB2ZXJzaW9udQoAAABzb3VyY2VfdXJsKAMAAAB1BAAAAHNlbGZ1BQAAAG90aGVydQYAAAByZXN1bHQoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUGAAAAX19lcV9fswEAAHMMAAAAAAgYAQkCEgESARIBdRMAAABEaXN0cmlidXRpb24uX19lcV9fYwEAAAAAAAAAAQAAAAMAAABDAAAAcycAAAB0AAB8AABqAQCDAQB0AAB8AABqAgCDAQAXdAAAfAAAagMAgwEAF1MoAQAAAHVIAAAACiAgICAgICAgQ29tcHV0ZSBoYXNoIGluIGEgd2F5IHdoaWNoIG1hdGNoZXMgdGhlIGVxdWFsaXR5IHRlc3QuCiAgICAgICAgKAQAAAB1BAAAAGhhc2h1BAAAAG5hbWV1BwAAAHZlcnNpb251CgAAAHNvdXJjZV91cmwoAQAAAHUEAAAAc2VsZigAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQgAAABfX2hhc2hfX8MBAABzAgAAAAAEdRUAAABEaXN0cmlidXRpb24uX19oYXNoX19ORigXAAAAdQgAAABfX25hbWVfX3UKAAAAX19tb2R1bGVfX3UMAAAAX19xdWFsbmFtZV9fdQcAAABfX2RvY19fdQUAAABGYWxzZXUVAAAAYnVpbGRfdGltZV9kZXBlbmRlbmN5dQkAAAByZXF1ZXN0ZWR1CAAAAF9faW5pdF9fdQgAAABwcm9wZXJ0eXUKAAAAc291cmNlX3VybHUMAAAAZG93bmxvYWRfdXJsdRAAAABuYW1lX2FuZF92ZXJzaW9udQgAAABwcm92aWRlc3URAAAAX2dldF9yZXF1aXJlbWVudHN1DAAAAHJ1bl9yZXF1aXJlc3UNAAAAbWV0YV9yZXF1aXJlc3UOAAAAYnVpbGRfcmVxdWlyZXN1DQAAAHRlc3RfcmVxdWlyZXN1DAAAAGRldl9yZXF1aXJlc3UTAAAAbWF0Y2hlc19yZXF1aXJlbWVudHUIAAAAX19yZXByX191BgAAAF9fZXFfX3UIAAAAX19oYXNoX18oAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQwAAABEaXN0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IGlzIHNwZWNpZmllZCwgdGhlIGBgaGFzaGVyYGAKICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgb2YgdGhlIDpjbGFzczpgSW5zdGFsbGVkRGlzdHJpYnV0aW9uYCBpbnN0YW5jZQogICAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWQuIElmIHRoZSBoYXNoZXIgaXMgZGV0ZXJtaW5lZCB0byBiZSBgYE5vbmVgYCwgTUQ1CiAgICAgICAgICAgICAgICAgICAgICAgaXMgdXNlZCBhcyB0aGUgaGFzaGluZyBhbGdvcml0aG0uCiAgICAgICAgOnJldHVybnM6IFRoZSBoYXNoIG9mIHRoZSBkYXRhLiBJZiBhIGhhc2hlciB3YXMgZXhwbGljaXRseSBzcGVjaWZpZWQsCiAgICAgICAgICAgICAgICAgIHRoZSByZXR1cm5lZCBoYXNoIHdpbGwgYmUgcHJlZml4ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGhhc2hlcgogICAgICAgICAgICAgICAgICBmb2xsb3dlZCBieSAnPScuCiAgICAgICAgOnJ0eXBlOiBzdHIKICAgICAgICB1AAAAAHUDAAAAJXM9cwEAAAA9dQUAAABhc2NpaXUEAAAAJXMlc04oCgAAAHUEAAAATm9uZXUGAAAAaGFzaGVydQcAAABoYXNobGlidQMAAABtZDV1BwAAAGdldGF0dHJ1BgAAAGRpZ2VzdHUGAAAAYmFzZTY0dREAAAB1cmxzYWZlX2I2NGVuY29kZXUGAAAAcnN0cmlwdQYAAABkZWNvZGUoBQAAAHUEAAAAc2VsZnUEAAAAZGF0YXUGAAAAaGFzaGVydQYAAABwcmVmaXh1BgAAAGRpZ2VzdCgAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQgAAABnZXRfaGFzaOEBAABzFAAAAAATDAEMAQwBCQEJAg8BDQESASEBdSIAAABCYXNlSW5zdGFsbGVkRGlzdHJpYnV0aW9uLmdldF9oYXNoTigIAAAAdQgAAABfX25hbWVfX3UKAAAAX19tb2R1bGVfX3UMAAAAX19xdWFsbmFtZV9fdQcAAABfX2RvY19fdQQA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ICA6cmV0dXJuOiBBIGxpc3Qgb2YgdHVwbGVzIG9mIHBhdGgsIGhhc2ggYW5kIHNpemUuIE5vdGUgdGhhdCBoYXNoIGFuZAogICAgICAgICAgICAgICAgIHNpemUgbWlnaHQgYmUgYGBOb25lYGAgZm9yIHNvbWUgZW50cmllcy4gVGhlIHBhdGggaXMgZXhhY3RseQogICAgICAgICAgICAgICAgIGFzIHN0b3JlZCBpbiB0aGUgZmlsZSAod2hpY2ggaXMgYXMgaW4gUEVQIDM3NikuCiAgICAgICAgdQYAAABSRUNPUkR1BgAAAHN0cmVhbWMBAAAAAAAAAAIAAAADAAAAUwAAAHMWAAAAZwAAfAAAXQwAfQEAZAAAkQIAcQYAUygBAAAATigBAAAAdQQAAABOb25lKAIAAAB1AgAAAC4wdQEAAABpKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1CgAAADxsaXN0Y29tcD49AgAAcwIAAAAJAHU2AAAASW5zdGFsbGVkRGlzdHJpYnV0aW9uLl9nZXRfcmVjb3Jkcy48bG9jYWxzPi48bGlzdGNvbXA+aQMAAABOKAgAAAB1FQAAAGdldF9kaXN0aW5mb19yZXNvdXJjZXUKAAAAY29udGV4dGxpYnUHAAAAY2xvc2luZ3UJAAAAYXNfc3RyZWFtdQkAAABDU1ZSZWFkZXJ1BQAAAHJhbmdldQMAAABsZW51BgAAAGFwcGVuZCgKAAAAdQQAAABzZWxmdQcAAAByZXN1bHRzdQEAAABydQYAAABzdHJlYW11DQAAAHJlY29yZF9yZWFkZXJ1AwAAAHJvd3UHAAAAbWlzc2luZ3UEAAAAcGF0aHUIAAAAY2hlY2tzdW11BAAAAHNpemUoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUMAAAAX2dldF9yZWNvcmRzLgIAAHMSAAAAAAcGAQ8BGAESBA0BIgETBCYBdSIAAABJbnN0YWxsZWREaXN0cmlidXRpb24uX2dldF9yZWNvcmRzYwEAAAAAAAAAAwAAAAIAAABDAAAAcy4AAABpAAB9AQB8AABqAAB0AQCDAQB9AgB8AgByKgB8AABqAgCDAAB9AQBuAAB8AQBTKAEAAAB1FwEAAAogICAgICAgIFJldHVybiB0aGUgaW5mb3JtYXRpb24gZXhwb3J0ZWQgYnkgdGhpcyBkaXN0cmlidXRpb24uCiAgICAgICAgOnJldHVybjogQSBkaWN0aW9uYXJ5IG9mIGV4cG9ydHMsIG1hcHBpbmcgYW4gZXhwb3J0IGNhdGVnb3J5IHRvIGEgZGljdAogICAgICAgICAgICAgICAgIG9mIDpjbGFzczpgRXhwb3J0RW50cnlgIGluc3RhbmNlcyBkZXNjcmliaW5nIHRoZSBpbmRpdmlkdWFsCiAgICAgICAgICAgICAgICAgZXhwb3J0IGVudHJpZXMsIGFuZCBrZXllZCBieSBuYW1lLgogICAgICAgICgDAAAAdRUAAABnZXRfZGlzdGluZm9fcmVzb3VyY2V1EAAAAEVYUE9SVFNfRklMRU5BTUV1DAAAAHJlYWRfZXhwb3J0cygDAAAAdQQAAABzZWxmdQYAAAByZXN1bHR1AQAAAHIoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUHAAAAZXhwb3J0c0UCAABzCgAAAAAIBgEPAQYBDwF1HQAAAEluc3RhbGxlZERpc3RyaWJ1dGlvbi5leHBvcnRzYwEAAAAAAAAABAAAAAkAAABDAAAAc0wAAABpAAB9AQB8AABqAAB0AQCDAQB9AgB8AgBySAB0AgBqAwB8AgBqBACDAACDAQCPEwB9AwB0BQB8AwCDAQB9AQBXZAEAUVhuAAB8AQBTKAIAAAB1/QAAAAogICAgICAgIFJlYWQgZXhwb3J0cyBkYXRhIGZyb20gYSBmaWxlIGluIC5pbmkgZm9ybWF0LgoKICAgICAgICA6cmV0dXJuOiBBIGRpY3Rpb25hcnkgb2YgZXhwb3J0cywgbWFwcGluZyBhbiBleHBvcnQgY2F0ZWdvcnkgdG8gYSBsaXN0CiAgICAgICAgICAgICAgICAgb2YgOmNsYXNzOmBFeHBvcnRFbnRyeWAgaW5zdGFuY2VzIGRlc2NyaWJpbmcgdGhlIGluZGl2aWR1YWwKICAgICAgICAgICAgICAgICBleHBvcnQgZW50cmllcy4KICAgICAgICBOKAYAAAB1FQAAAGdldF9kaXN0aW5mb19yZXNvdXJjZXUQAAAARVhQT1JUU19GSUxFTkFNRXUKAAAAY29udGV4dGxpYnUHAAAAY2xvc2luZ3UJAAAAYXNfc3RyZWFtdQwAAAByZWFkX2V4cG9ydHMoBAAAAHUEAAAAc2VsZnUGAAAAcmVzdWx0dQEAAABydQYAAABzdHJlYW0oAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUMAAAAcmVhZF9leHBvcnRzUwIAAHMMAAAAAAgGAQ8BBgEYARUBdSIAAABJbnN0YWxsZWREaXN0cmlidXRpb24ucmVhZF9leHBvcnRzYwIAAAAAAAAABAAAAAoAAABDAAAAczgAAAB8AABqAAB0AQCDAQB9AgB0AgB8AgBkAQCDAgCPFAB9AwB0AwB8AQB8AwCDAgABV2QCAFFYZAIAUygDAAAAdRsBAAAKICAgICAgICBXcml0ZSBhIGRpY3Rpb25hcnkgb2YgZXhwb3J0cyB0byBhIGZpbGUgaW4gLmluaSBmb3JtYXQuCiAgICAgICAgOnBhcmFtIGV4cG9ydHM6IEEgZGljdGlvbmFyeSBvZiBleHBvcnRzLCBtYXBwaW5nIGFuIGV4cG9ydCBjYXRlZ29yeSB0bwogICAgICAgICAgICAgICAgICAgICAgICBhIGxpc3Qgb2YgOmNsYXNzOmBFeHBvcnRFbnRyeWAgaW5zdGFuY2VzIGRlc2NyaWJpbmcgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgIGluZGl2aWR1YWwgZXhwb3J0IGVudHJpZXMuCiAgICAgICAgdQEAAAB3TigEAAAAdREAAABnZXRfZGlzdGluZm9fZmlsZXUQAAAARVhQT1JUU19GSUxFTkFNRXUEAAAAb3BlbnUNAAAAd3JpdGVfZXhwb3J0cygEAAAAdQQAAABzZWxmdQcAAABleHBvcnRzdQIAAAByZnUBAAAAZigAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQ0AAAB3cml0ZV9l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b25hcnkgb2Ygc2hhcmVkIGxvY2F0aW9ucyB3aG9zZSBrZXlzIGFyZSBpbiB0aGUgc2V0ICdwcmVmaXgnLAogICAgICAgICdwdXJlbGliJywgJ3BsYXRsaWInLCAnc2NyaXB0cycsICdoZWFkZXJzJywgJ2RhdGEnIGFuZCAnbmFtZXNwYWNlJy4KICAgICAgICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyB0aGUgYWJzb2x1dGUgcGF0aCBvZiB0aGF0IGNhdGVnb3J5IGZvcgogICAgICAgIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgdGFrZXMgaW50byBhY2NvdW50IGFueSBwYXRocyBzZWxlY3RlZCBieSB0aGUKICAgICAgICB1c2VyIGF0IGluc3RhbGxhdGlvbiB0aW1lIChlLmcuIHZpYSBjb21tYW5kLWxpbmUgYXJndW1lbnRzKS4gSW4gdGhlCiAgICAgICAgY2FzZSBvZiB0aGUgJ25hbWVzcGFjZScga2V5LCB0aGlzIHdvdWxkIGJlIGEgbGlzdCBvZiBhYnNvbHV0ZSBwYXRocwogICAgICAgIGZvciB0aGUgcm9vdHMgb2YgbmFtZXNwYWNlIHBhY2thZ2VzIGluIHRoaXMgZGlzdHJpYnV0aW9uLgoKICAgICAgICBUaGUgZmlyc3QgdGltZSB0aGlzIHByb3BlcnR5IGlzIGFjY2Vzc2VkLCB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gaXMKICAgICAgICByZWFkIGZyb20gdGhlIFNIQVJFRCBmaWxlIGluIHRoZSAuZGlzdC1pbmZvIGRpcmVjdG9yeS4KICAgICAgICB1BgAAAFNIQVJFRHUBAAAAcnUIAAAAZW5jb2Rpbmd1BQAAAHV0Zi04TnUBAAAAPWkBAAAAdQkAAABuYW1lc3BhY2UoCwAAAHUCAAAAb3N1BAAAAHBhdGh1BAAAAGpvaW51BgAAAGlzZmlsZXUGAAAAY29kZWNzdQQAAABvcGVudQQAAAByZWFkdQoAAABzcGxpdGxpbmVzdQUAAABzcGxpdHUKAAAAc2V0ZGVmYXVsdHUGAAAAYXBwZW5kKAgAAAB1BAAAAHNlbGZ1BgAAAHJlc3VsdHULAAAAc2hhcmVkX3BhdGh1AQAAAGZ1BQAAAGxpbmVz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b2ludQoAAABzdGFydHN3aXRoKAUAAAB1BAAAAHNlbGZ1BAAAAGJhc2V1BAAAAHBhdGh1CAAAAGNoZWNrc3VtdQQAAABzaXplKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1EwAAAGxpc3RfZGlzdGluZm9fZmlsZXMrAwAAcwwAAAAACBUBHAISARgBEgF1KQAAAEluc3RhbGxlZERpc3RyaWJ1dGlvbi5saXN0X2Rpc3RpbmZvX2ZpbGVzYwIAAAAAAAAAAgAAAAMAAABDAAAAcx8AAAB0AAB8AQB0AQCDAgBvHgB8AABqAgB8AQBqAgBrAgBTKAEAAABOKAMAAAB1CgAAAGlzaW5zdGFuY2V1FQAAAEluc3RhbGxlZERpc3RyaWJ1dGlvbnUEAAAAcGF0aCgCAAAAdQQAAABzZWxmdQUAAABvdGhlcigAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQYAAABfX2VxX187AwAAcwQAAAAAAQ8BdRwAAABJbnN0YWxsZWREaXN0cmlidXRpb24uX19lcV9fTkYoGwAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UHAAAAX19kb2NfX3UGAAAAaGFzaGVydQQAAABOb25ldQgAAABfX2luaXRfX3UIAAAAX19yZXByX191BwAAAF9fc3RyX191DAAAAF9nZXRfcmVjb3Jkc3UPAAAAY2FjaGVkX3Byb3BlcnR5dQcAAABleHBvcnRzdQwAAAByZWFkX2V4cG9ydHN1DQAAAHdyaXRlX2V4cG9ydHN1EQAAAGdldF9yZXNvdXJjZV9wYXRodRQAAABsaXN0X2luc3RhbGxlZF9maWxlc3UFAAAARmFsc2V1FQAAAHdyaXRlX2luc3RhbGxlZF9maWxlc3UVAAAAY2hlY2tfaW5zdGFsbGVkX2ZpbGVzdRAAAABzaGFyZWRfbG9jYXRpb25zdRYAAAB3cml0ZV9zaGFyZWRfbG9jYXRpb25zdRUAAABnZXRfZGlzdGluZm9fcmVzb3VyY2V1EQAAAGdldF9kaXN0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cXVpcmVzLnR4dCBhcmUgbm90IHN1cHBvcnRlZHUCAAAALCBjAQAAAAAAAAACAAAAAwAAAHMAAABzGQAAAHwAAF0PAH0BAGQAAHwBABZWAXEDAGQBAFMoAgAAAHUEAAAAJXMlc04oAAAAACgCAAAAdQIAAAAuMHUBAAAAYygAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQkAAAA8Z2VuZXhwcj57AwAAcwIAAAAGAHVRAAAARWdnSW5mb0Rpc3RyaWJ1dGlvbi5fZ2V0X21ldGFkYXRhLjxsb2NhbHM+LnBhcnNlX3JlcXVpcmVzX2RhdGEuPGxvY2Fscz4uPGdlbmV4cHI+dQcAAAAlcyAoJXMpKAsAAAB1CgAAAHNwbGl0bGluZXN1BQAAAHN0cmlwdQoAAABzdGFydHN3aXRodQYAAABsb2dnZXJ1BwAAAHdhcm5pbmd1EQAAAHBhcnNlX3JlcXVpcmVtZW50dQYAAABleHRyYXN1CwAAAGNvbnN0cmFpbnRzdQYAAABhcHBlbmR1BAAAAG5hbWV1BAAAAGpvaW4oBgAAAHUEAAAAZGF0YXUEAAAAcmVxc3UFAAAAbGluZXN1BAAAAGxpbmV1AQAAAHJ1BAAAAGNvbnMoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUTAAAAcGFyc2VfcmVxdWlyZXNfZGF0YWQDAABzJgAAAAAFBgEMAQ0BDAEPAQkBBwEEAQwBBgEQAQYBCQEQAgkBEwIfAR4BdT4AAABFZ2dJbmZvRGlzdHJpYnV0aW9uLl9nZXRfbWV0YWRhdGEuPGxvY2Fscz4ucGFyc2VfcmVxdWlyZXNfZGF0YWMBAAAAAAAAAAMAAAAPAAAAEwAAAHNTAAAAZwAAfQEAeTQAdAAAagEAfAAAZAEAZAIAgwMAjxkAfQIAiAAAfAIAagIAgwAAgwEAfQEAV2QDAFFYV24SAAR0AwBrCgByTgABAQFZbgEAWHwBAFMoBAAAAHWSAAAAQ3JlYXRlIGEgbGlzdCBvZiBkZXBlbmRlbmNpZXMgZnJvbSBhIHJlcXVpcmVzLnR4dCBmaWxlLgoKICAgICAgICAgICAgKnJlcV9wYXRoKjogdGhlIHBhdGggdG8gYSBzZXR1cHRvb2xzLXByb2R1Y2VkIHJlcXVpcmVzLnR4dCBmaWxlLgogICAgICAgICAgICB1AQAAAHJ1BQAAAHV0Zi04TigEAAAAdQYAAABjb2RlY3N1BAAAAG9wZW51BAAAAHJlYWR1BwAAAElPRXJyb3IoAwAAAHUIAAAAcmVxX3BhdGh1BAAAAHJlcXN1AgAAAGZwKAEAAAB1EwAAAHBhcnNlX3JlcXVpcmVzX2RhdGEoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1EwAAAHBhcnNlX3JlcXVpcmVzX3BhdGh/AwAAcw4AAAAABgYBAwEYARwBDQEFAXU+AAAARWdnSW5mb0Rpc3RyaWJ1dGlvbi5fZ2V0X21ldGFkYXRhLjxsb2NhbHM+LnBhcnNlX3JlcXVpcmVzX3BhdGh1BAAAAC5lZ2d1CAAAAEVHRy1JTkZPdQgAAABQS0ctSU5GT3UEAAAAcGF0aHUGAAAAc2NoZW1ldQYAAABsZWdhY3l1DAAAAHJlcXVpcmVzLnR4dHURAAAARUdHLUlORk8vUEtHLUlORk91BAAAAHV0Zjh1BwAAAGZpbGVvYmp1FQAAAEVHRy1JTkZPL3JlcXVpcmVzLnR4dHUFAAAAdXRmLTh1CQAAAC5lZ2ctaW5mb3UsAAAAcGF0aCBtdXN0IGVuZCB3aXRoIC5lZ2ctaW5mbyBvciAuZWdnLCBnb3QgJXIoDwAAAHUEAAAATm9uZXUIAAAAZW5kc3dpdGh1AgAAAG9zdQQAAABwYXRodQUAAABpc2RpcnUEAAAAam9pbnUIAAAATWV0YWRhdGF1CQAAAHppcGltcG9ydHULAAAAemlwaW1wb3J0ZXJ1CAAAAFN0cmluZ0lPdQgAAABnZXRfZGF0YXUGAAAAZGVjb2RldQcAAABJT0Vycm9ydRAAAABEaXN0bGliRXhjZXB0aW9udRAAAABhZGRfcmVxdWlyZW1lbnRzKAoAAAB1BAAAAHNlbGZ1BAAAAHBhdGh1CAAAAHJlcXVpcmVzdRMAAABwYXJzZV9yZXF1aXJlc19wYXRodQkAAABtZXRhX3BhdGh1CAAAAG1ldGFkYXRhdQgAAAByZXFfcGF0aHUEAAAAemlwZnUHAAAAZmlsZW9ianUEAAAAZGF0YSgAAAAAKAEAAAB1EwAAAHBhcnNlX3JlcXVpcmVzX2RhdGF1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQ0AAABfZ2V0X21ldGFkYXRhYQMAAHM6AAAAAAEGAgwbEg4PARIBGAEVARgBDwMPAQMBGwEVAQMBDwEZAQ0BDgEPARIBFQEVAQ8BGAIGAQoCBgEQAXUhAAAARWdnSW5mb0Rpc3RyaWJ1dGlvbi5fZ2V0X21ldGFkYXRhYwEAAAAAAAAAAQAAAAQAAABDAAAAcxoAAABkAQB8AABqAAB8AABqAQB8AABqAgBmAwAWUygCAAAATnUhAAAAPEVnZ0luZm9EaXN0cmlidXRpb24gJXIgJXMgYXQgJXI+KAMAAAB1BAAAAG5hbWV1BwAAAHZlcnNpb251BAAAAHBhdGgoAQAAAHUEAAAAc2VsZigAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dQgAAABfX3JlcHJfX6wDAABzBAAAAAABAwF1HAAAAEVnZ0luZm9EaXN0cmlidXRpb24uX19yZXByX19jAQAAAAAAAAABAAAAAwAAAEMAAABzFAAAAGQBAHwAAGoAAHwAAGoBAGYCABZTKAIAAABOdQUAAAAlcyAlcygCAAAAdQQAAABuYW1ldQcAAAB2ZXJzaW9uKAEAAAB1BAAAAHNlbGYoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUHAAAAX19zdHJfX7ADAABzAgAAAAABdRsAAABFZ2dJbmZvRGlzdHJpYnV0aW9uLl9fc3RyX19jAQAAAAAAAAAFAAAABgAAAEMAAABzlwAAAGcAAH0BAHQAAGoBAGoCAHwAAGoBAGQBAIMCAH0CAHQAAGoBAGoDAHwCAIMBAHKTAHhgAHwAAGoEAIMAAERdTwBcAwB9AwB9BAB9BAB8AwB8AgBrAgByXgBxPQBuAAB0AABqAQBqAwB8AwCDAQBzPQB8AQBqBQB8AwBkAgBkAwBkBABmBACDAQABcT0AcT0AV24AAHwBAFMoBQAAAHWoAQAACiAgICAgICAgQ2hlY2tzIHRoYXQgdGhlIGhhc2hlcyBhbmQgc2l6ZXMgb2YgdGhlIGZpbGVzIGluIGBgUkVDT1JEYGAgYXJlCiAgICAgICAgbWF0Y2hlZCBieSB0aGUgZmlsZXMgdGhlbXNlbHZlcy4gUmV0dXJucyBhIChwb3NzaWJseSBlbXB0eSkgbGlzdCBvZgogICAgICAgIG1pc21hdGNoZXMuIEVhY2ggZW50cnkgaW4gdGhlIG1pc21hdGNoIGxpc3Qgd2lsbCBiZSBhIHR1cGxlIGNvbnNpc3RpbmcKICAgICAgICBvZiB0aGUgcGF0aCwgJ2V4aXN0cycsICdzaXplJyBvciAnaGFzaCcgYWNjb3JkaW5nIHRvIHdoYXQgZGlkbid0IG1hdGNoCiAgICAgICAgKGV4aXN0ZW5jZSBpcyBjaGVja2VkIGZpcnN0LCB0aGVuIHNpemUsIHRoZW4gaGFzaCksIHRoZSBleHBlY3RlZAogICAgICAgIHZhbHVlIGFuZCB0aGUgYWN0dWFsIHZhbHVlLgogICAgICAgIHUTAAAAaW5zdGFsbGVkLWZpbGVzLnR4dHUGAAAAZXhpc3RzVEYoCAAAAHUCAAAAb3N1BAAAAHBhdGh1BAAAAGpvaW51BgAAAGV4aXN0c3UUAAAAbGlzdF9pbnN0YWxsZWRfZmlsZXN1BgAAAGFwcGVuZHUEAAAAVHJ1ZXUFAAAARmFsc2UoBQAAAHUEAAAAc2VsZnUKAAAAbWlzbWF0Y2hlc3ULAAAAcmVjb3JkX3BhdGh1BAAAAHBhdGh1AQAAAF8oAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUVAAAAY2hlY2tfaW5zdGFsbGVkX2ZpbGVzswMAAHMSAAAAAAkGARgBEgEcAQwBBgESASMBdSkAAABFZ2dJbmZvRGlzdHJpYnV0aW9uLmNoZWNrX2luc3RhbGxlZF9maWxlc2MBAAAAAAAAAAgAAAANAAAAQwAAAHM4AQAAZAEAZAIAhAAAfQEAZAMAZAQAhAAAfQIAdAAAagEAagIAfAAAagEAZAUAgwIAfQMA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cb8AcUAAcUAAV1dkBgBRWGQGAFMoCQAAAHULAgAACiAgICAgICAgSXRlcmF0ZXMgb3ZlciB0aGUgYGBpbnN0YWxsZWQtZmlsZXMudHh0YGAgZW50cmllcyBhbmQgcmV0dXJucyBwYXRocyBmb3IKICAgICAgICBlYWNoIGxpbmUgaWYgdGhlIHBhdGggaXMgcG9pbnRpbmcgdG8gYSBmaWxlIGxvY2F0ZWQgaW4gdGhlCiAgICAgICAgYGAuZWdnLWluZm9gYCBkaXJlY3Rvcnkgb3Igb25lIG9mIGl0cyBzdWJkaXJlY3Rvcmllcy4KCiAgICAgICAgOnBhcmFtZXRlciBhYnNvbHV0ZTogSWYgKmFic29sdXRlKiBpcyBgYFRydWVgYCwgZWFjaCByZXR1cm5lZCBwYXRoIGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWQgaW50byBhIGxvY2FsIGFic29sdXRlIHBhdGguIE90aGVyd2lzZSB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICByYXcgdmFsdWUgZnJvbSBgYGluc3RhbGxlZC1maWxlcy50eHRgYCBpcyByZXR1cm5lZC4KICAgICAgICA6dHlwZSBhYnNvbHV0ZTogYm9vbGVhbgogICAgICAgIDpyZXR1cm5zOiBpdGVyYXRvciBvZiBwYXRocwogICAgICAgIHUTAAAAaW5zdGFsbGVkLWZpbGVzLnR4dHUBAAAAcnUIAAAAZW5jb2Rpbmd1BQAAAHV0Zi04dQIAAAAuL05URigKAAAAdQIAAABvc3UEAAAAcGF0aHUEAAAAam9pbnUEAAAAVHJ1ZXUGAAAAY29kZWNzdQQAAABvcGVudQUAAABzdHJpcHUFAAAARmFsc2V1CAAAAG5vcm1wYXRodQoAAABzdGFydHN3aXRoKAcAAAB1BAAAAHNlbGZ1CAAAAGFic29sdXRldQsAAAByZWNvcmRfcGF0aHUEAAAAc2tpcHUBAAAAZnUEAAAAbGluZXUBAAAAcCgAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dRMAAABsaXN0X2Rpc3RpbmZvX2ZpbGVz7AMAAHMcAAAAAAwYAQYBGwENAQwBDAEGAQYBBgEkARIBBgEIAnUnAAAARWdnSW5mb0Rpc3RyaWJ1dGlvbi5saXN0X2Rpc3RpbmZvX2ZpbGVzYwIAAAAAAAAAAgAAAAMAAABDAAAAcx8AAAB0AAB8AQB0AQCDAgBvHgB8AABqAgB8AQBqAgBrAgBTKAEAAABOKAMAAAB1CgAAAGlzaW5zdGFuY2V1EwAAAEVnZ0luZm9EaXN0cmlidXRpb251BAAAAHBhdGgoAgAAAHUEAAAAc2VsZnUFAAAAb3RoZXIoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUGAAAAX19lcV9fCAQAAHMEAAAAAAEPAXUaAAAARWdnSW5mb0Rpc3RyaWJ1dGlvbi5fX2VxX19UTkYoEwAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UHAAAAX19kb2NfX3UEAAAAVHJ1ZXUJAAAAcmVxdWVzdGVkdRAAAABzaGFyZWRfbG9jYXRpb25zdQQAAABOb25ldQgAAABfX2luaXRfX3UNAAAAX2dldF9tZXRhZGF0YXUIAAAAX19yZXByX191BwAAAF9fc3RyX191FQAAAGNoZWNrX2luc3RhbGxlZF9maWxlc3UUAAAAbGlzdF9pbnN0YWxsZWRfZmlsZXN1BQAAAEZhbHNldRMAAABsaXN0X2Rpc3RpbmZvX2ZpbGVzdQYAAABfX2VxX191BgAAAG9iamVjdHUIAAAAX19oYXNoX18oAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAEAAAB1CQAAAF9fY2xhc3NfX3U1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1EwAAAEVnZ0luZm9EaXN0cmlidXRpb25DAwAAcxgAAAAQBAYCBgEGAhUVDEsMBAwDDBMMJg8cDAVjAQAAAAAAAAABAAAAAwAAAEIAAABzjwAAAHwAAEVlAABaAQBkAABaAgBkAQBaAwBkAgBkAwCEAABaBABkBABkBQCEAABaBQBkFQBkBgBkBwCEAQBaBwBkCABkCQCEAABaCABkCgBkCwCEAABaCQBkDABkDQBkDgCEAQBaCgBkFgBkDwBkEACEAQBaDABkEQBkEgCEAABaDQBkEwBkFACEAABaDgBkFQBTKBcAAAB1DwAAAERlcGVuZGVuY3lHcmFwaHX5AgAACiAgICBSZXByZXNlbnRzIGEgZGVwZW5kZW5jeSBncmFwaCBiZXR3ZWVuIGRpc3RyaWJ1dGlvbnMuCgogICAgVGhlIGRlcGVuZGVuY3kgcmVsYXRpb25zaGlwcyBhcmUgc3RvcmVkIGluIGFuIGBgYWRqYWNlbmN5X2xpc3RgYCB0aGF0IG1hcHMKICAgIGRpc3RyaWJ1dGlvbnMgdG8gYSBsaXN0IG9mIGBgKG90aGVyLCBsYWJlbClgYCB0dXBsZXMgd2hlcmUgIGBgb3RoZXJgYAogICAgaXMgYSBkaXN0cmlidXRpb24gYW5kIHRoZSBlZGdlIGlzIGxhYmVsZWQgd2l0aCBgYGxhYmVsYGAgKGkuZS4gdGhlIHZlcnNpb24KICAgIHNwZWNpZmllciwgaWYgc3VjaCB3YXMgcHJvdmlkZWQpLiBBbHNvLCBmb3IgbW9yZSBlZmZpY2llbnQgdHJhdmVyc2FsLCBmb3IKICAgIGV2ZXJ5IGRpc3RyaWJ1dGlvbiBgYHhgYCwgYSBsaXN0IG9mIHByZWRlY2Vzc29ycyBpcyBrZXB0IGluCiAgICBgYHJldmVyc2VfbGlzdFt4XWBgLiBBbiBlZGdlIGZyb20gZGlzdHJpYnV0aW9uIGBgYWBgIHRvCiAgICBkaXN0cmlidXRpb24gYGBiYGAgbWVhbnMgdGhhdCBgYGFgYCBkZXBlbmRzIG9uIGBgYmBgLiBJZiBhbnkgbWlzc2luZwogICAgZGVwZW5kZW5jaWVzIGFyZSBmb3VuZCwgdGhleSBhcmUgc3RvcmVkIGluIGBgbWlzc2luZ2BgLCB3aGljaCBpcyBhCiAgICBkaWN0aW9uYXJ5IHRoYXQgbWFwcyBkaXN0cmlidXRpb25zIHRvIGEgbGlzdCBvZiByZXF1aXJlbWVudHMgdGhhdCB3ZXJlIG5vdAogICAgcHJvdmlkZWQgYnkgYW55IG90aGVyIGRpc3RyaWJ1dGlvbnMuCiAgICBjAQAAAAAAAAABAAAAAgAAAEMAAABzHwAAAGkAAHwAAF8AAGkAAHwAAF8BAGkAAHwAAF8CAGQAAFMoAQAAAE4oAwAAAHUOAAAAYWRqYWNlbmN5X2xpc3R1DAAAAHJldmVyc2VfbGlzdHUHAAAAbWlzc2luZygBAAAAdQQAAABzZWxmKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1CAAAAF9faW5pdF9fIwQAAHMGAAAAAAEJAQkBdRgAAABEZXBlbmRlbmN5R3JhcGguX19pbml0X19jAgAAAAAAAAACAAAAAwAAAEMAAABzHgAAAGcAAHwAAGoAAHwBADxnAAB8AABqAQB8AQA8ZAEAUygCAAAAdc0AAABBZGQgdGhlICpkaXN0cmlidXRpb24qIHRvIHRoZSBncmFwaC4KCiAgICAgICAgOnR5cGUgZGlzdHJpYnV0aW9uOiA6Y2xhc3M6YGRpc3R1dGlsczIuZGF0YWJhc2UuSW5zdGFsbGVkRGlzdHJpYnV0aW9uYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgOmNsYXNzOmBkaXN0dXRpbHMyLmRhdGFiYXNlLkVnZ0luZm9EaXN0cmlidXRpb25gCiAgICAgICAgTigCAAAAdQ4AAABhZGphY2VuY3lfbGlzdHUMAAAAcmV2ZXJzZV9saXN0KAIAAAB1BAAAAHNlbGZ1DAAAAGRpc3RyaWJ1dGlvbigAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dRAAAABhZGRfZGlzdHJpYnV0aW9uKAQAAHMEAAAAAAYNAXUgAAAARGVwZW5kZW5jeUdyYXBoLmFkZF9kaXN0cmlidXRpb25jBAAAAAAAAAAEAAAAAwAAAEMAAABzSAAAAHwAAGoAAHwBABlqAQB8AgB8AwBmAgCDAQABfAEAfAAAagIAfAIAGWsHAHJEAHwAAGoCAHwCABlqAQB8AQCDAQABbgAAZAEAUygCAAAAdZoBAABBZGQgYW4gZWRnZSBmcm9tIGRpc3RyaWJ1dGlvbiAqeCogdG8gZGlzdHJpYnV0aW9uICp5KiB3aXRoIHRoZSBnaXZlbgogICAgICAgICpsYWJlbCouCgogICAgICAgIDp0eXBlIHg6IDpjbGFzczpgZGlzdHV0aWxzMi5kYXRhYmFzZS5JbnN0YWxsZWREaXN0cmlidXRpb25gIG9yCiAgICAgICAgICAgICAgICAgOmNsYXNzOmBkaXN0dXRpbHMyLmRhdGFiYXNlLkVnZ0luZm9EaXN0cmlidXRpb25gCiAgICAgICAgOnR5cGUgeTogOmNsYXNzOmBkaXN0dXRpbHMyLmRhdGFiYXNlLkluc3RhbGxlZERpc3RyaWJ1dGlvbmAgb3IKICAgICAgICAgICAgICAgICA6Y2xhc3M6YGRpc3R1dGlsczIuZGF0YWJhc2UuRWdnSW5mb0Rpc3RyaWJ1dGlvbmAKICAgICAgICA6dHlwZSBsYWJlbDogYGBzdHJgYCBvciBgYE5vbmVgYAogICAgICAgIE4oAwAAAHUOAAAAYWRqYWNlbmN5X2xpc3R1BgAAAGFwcGVuZHUMAAAAcmV2ZXJzZV9saXN0KAQAAAB1BAAAAHNlbGZ1AQAAAHh1AQAAAHl1BQAAAGxhYmVsKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1CAAAAGFkZF9lZGdlMgQAAHMGAAAAAAoaAhMBdRgAAABEZXBlbmRlbmN5R3JhcGguYWRkX2VkZ2VjAwAAAAAAAAADAAAABAAAAEMAAABzMwAAAHQAAGoBAGQBAHwBAHwCAIMDAAF8AABqAgBqAwB8AQBnAACDAgBqBAB8AgCDAQABZAIAUygDAAAAdQ4BAAAKICAgICAgICBBZGQgYSBtaXNzaW5nICpyZXF1aXJlbWVudCogZm9yIHRoZSBnaXZlbiAqZGlzdHJpYnV0aW9uKi4KCiAgICAgICAgOnR5cGUgZGlzdHJpYnV0aW9uOiA6Y2xhc3M6YGRpc3R1dGlsczIuZGF0YWJhc2UuSW5zdGFsbGVkRGlzdHJpYnV0aW9uYAogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgOmNsYXNzOmBkaXN0dXRpbHMyLmRhdGFiYXNlLkVnZ0luZm9EaXN0cmlidXRpb25gCiAgICAgICAgOnR5cGUgcmVxdWlyZW1lbnQ6IGBgc3RyYGAKICAgICAgICB1DQAAACVzIG1pc3NpbmcgJXJOKAUAAAB1BgAA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bHR1BQAAAGFsaXN0dQEAAABrdQEAAAB2KAAAAAAoAQAAAHUJAAAAdG9fcmVtb3ZldTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUQAAAAdG9wb2xvZ2ljYWxfc29ydHwEAABzJAAAAAAIBgIGARwBGAEDAgYBKQEGAQ0BDgEGAgQCGQEhAQkBFAEQAXUgAAAARGVwZW5kZW5jeUdyYXBoLnRvcG9sb2dpY2FsX3NvcnRjAQAAAAAAAAAEAAAABAAAAEMAAABzSQAAAGcAAH0BAHgzAHwAAGoAAGoBAIMAAERdIgBcAgB9AgB9AwB8AQBqAgB8AABqAwB8AgCDAQCDAQABcRYAV2QBAGoEAHwBAIMBAFMoAgAAAHUbAAAAUmVwcmVzZW50YXRpb24gb2YgdGhlIGdyYXBodQEAAAAKKAUAAAB1DgAAAGFkamFjZW5jeV9saXN0dQUAAABpdGVtc3UGAAAAYXBwZW5kdQkAAAByZXByX25vZGV1BAAAAGpvaW4oBAAAAHUEAAAAc2VsZnUGAAAAb3V0cHV0dQQAAABkaXN0dQQAAABhZGpzKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1CAAAAF9fcmVwcl9fmwQAAHMIAAAAAAIGARwBGgF1GAAAAERlcGVuZGVuY3lHcmFwaC5fX3JlcHJfX05UKA8AAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191CAAAAF9faW5pdF9fdRAAAABhZGRfZGlzdHJpYnV0aW9udQQAAABOb25ldQgAAABhZGRfZWRnZXULAAAAYWRkX21pc3Npbmd1CgAAAF9yZXByX2Rpc3R1CQAAAHJlcHJfbm9kZXUEAAAAVHJ1ZXUGAAAAdG9fZG90dRAAAAB0b3BvbG9naWNhbF9zb3J0dQgAAABfX3JlcHJfXygBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1DwAA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IHRoYXQgYXJlCiAgICByZXF1aXJlZCBieSAqZGlzdCouCgogICAgOnBhcmFtIGRpc3RzOiBhIGxpc3Qgb2YgZGlzdHJpYnV0aW9ucwogICAgOnBhcmFtIGRpc3Q6IGEgZGlzdHJpYnV0aW9uLCBtZW1iZXIgb2YgKmRpc3RzKiBmb3Igd2hpY2ggd2UgYXJlIGludGVyZXN0ZWQKICAgIHUxAAAAZ2l2ZW4gZGlzdHJpYnV0aW9uICVyIGlzIG5vdCBhIG1lbWJlciBvZiB0aGUgbGlzdGkAAAAAKAYAAAB1EAAAAERpc3RsaWJFeGNlcHRpb251BAAAAG5hbWV1CgAAAG1ha2VfZ3JhcGh1DgAAAGFkamFjZW5jeV9saXN0dQMAAABwb3B1BgAAAGFwcGVuZCgHAAAAdQUAAABkaXN0c3UEAAAAZGlzdHUFAAAAZ3JhcGh1AwAAAHJlcXUEAAAAdG9kb3UBAAAAZHUEAAAAcHJlZCgAAAAAKAAAAAB1NQAAAC90bXAvcGlwLXplal96aS1idWlsZC9waXAvX3ZlbmRvci9kaXN0bGliL2RhdGFiYXNlLnB5dRIAAABnZXRfcmVxdWlyZWRfZGlzdHPzBAAAcxoAAAAABwwBBgEQAQwCBgENAgkBEAENARQBDAEYAnUSAAAAZ2V0X3JlcXVpcmVkX2Rpc3RzYwIAAAAAAAAABQAAAAMAAABLAAAAc0kAAAB8AgBqAABkAQBkAgCDAgB9AwB0AQB8AgCNAAB9BAB8AAB8BABfAgB8AQB8BABfAwB8AwBwOQBkAwB8BABfBAB0BQB8BACDAQBTKAQAAAB1TwAAAAogICAgQSBjb252ZW5pZW5jZSBtZXRob2QgZm9yIG1ha2luZyBhIGRpc3QgZ2l2ZW4ganVzdCBhIG5hbWUgYW5kIHZlcnNpb24uCiAgICB1BwAAAHN1bW1hcnl1FwAAAFBsYWNlaG9sZGVyIGZvciBzdW1tYXJ5dRYAAABQbGFlaG9sZGVyIGZvciBzdW1tYXJ5KAYAAAB1AwAAAHBvcHUIAAAATWV0YWRhdGF1BAAAAG5hbWV1BwAAAHZlcnNpb251BwAAAHN1bW1hcnl1DAAAAERpc3RyaWJ1dGlvbigFAAAAdQQAAABuYW1ldQcAAAB2ZXJzaW9udQYAAABrd2FyZ3N1BwAAAHN1bW1hcnl1AgAAAG1kKAAAAAAoAAAAAHU1AAAAL3RtcC9waXAtemVqX3ppLWJ1aWxkL3BpcC9fdmVuZG9yL2Rpc3RsaWIvZGF0YWJhc2UucHl1CQAAAG1ha2VfZGlzdAwFAABzDAAAAAAEEgEMAQkBCQEPAXUJAAAAbWFrZV9kaXN0KDUAAAB1BwAAAF9fZG9jX191CgAAAF9fZnV0dXJlX191EAAAAHVuaWNvZGVfbGl0ZXJhbHN1BgAAAGJhc2U2NHUGAAAAY29kZWNzdQoAAABjb250ZXh0bGlidQcAAABoYXNobGlidQcAAABsb2dnaW5ndQIAAABvc3UJAAAAcG9zaXhwYXRodQMAAABzeXN1CQAAAHppcGltcG9ydHUAAAAAdRAAAABEaXN0bGliRXhjZXB0aW9udQkAAAByZXNvdXJjZXN1BgAAAGNvbXBhdHUIAAAAU3RyaW5nSU91BwAAAHZlcnNpb251CgAAAGdldF9zY2hlbWV1FwAAAFVuc3VwcG9ydGVkVmVyc2lvbkVycm9ydQgAAABtZXRhZGF0YXUIAAAATWV0YWRhdGF1EQAAAE1FVEFEQVRBX0ZJTEVOQU1FdQQAAAB1dGlsdREAAABwYXJzZV9yZXF1aXJlbWVudHUPAAAAY2FjaGVkX3Byb3BlcnR5dRYAAABwYXJzZV9uYW1lX2FuZF92ZXJzaW9udQwAAAByZWFkX2V4cG9ydHN1DQAAAHdyaXRlX2V4cG9ydHN1CQAAAENTVlJlYWRlcnUJAAAAQ1NWV3JpdGVydQcAAABfX2FsbF9fdQkAAABnZXRMb2dnZXJ1CAAAAF9fbmFtZV9fdQYAAABsb2dnZXJ1EAAAAEVYUE9SVFNfRklMRU5BTUV1EQAAAENPTU1BTkRTX0ZJTEVOQU1FdQoAAABESVNUX0ZJTEVTdQwAAABESVNUSU5GT19FWFR1BgAAAG9iamVjdHUGAAAAX0NhY2hldRAAAABEaXN0cmlidXRpb25QYXRodQwAAABEaXN0cmlidXRpb251GQAAAEJhc2VJbnN0YWxsZWREaXN0cmlidXRpb251FQAAAEluc3RhbGxlZERpc3RyaWJ1dGlvbnUTAAAARWdnSW5mb0Rpc3RyaWJ1dGlvbnUOAAAAbmV3X2Rpc3RfY2xhc3N1DgAAAG9sZF9kaXN0X2NsYXNzdQ8AAABEZXBlbmRlbmN5R3JhcGh1CgAAAG1ha2VfZ3JhcGh1EwAAAGdldF9kZXBlbmRlbnRfZGlzdHN1EgAAAGdldF9yZXF1aXJlZF9kaXN0c3UJAAAAbWFrZV9kaXN0KAAAAAAoAAAAACgAAAAAdTUAAAAvdG1wL3BpcC16ZWpfemktYnVpbGQvcGlwL192ZW5kb3IvZGlzdGxpYi9kYXRhYmFzZS5weXUIAAAAPG1vZHVsZT4GAAAAc0wAAAAGAhACDAEMAQwBDAEMAQwBDAEMAQwCFgEQARYBFgE0BAYBBgEJAw8CBgEGAgwBDwIGAxYeFucWmRY3Fv8AQxbMBgEGAxaQDzYMGgwZ
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 13
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
compat.cpython-33.pyc
46.60 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
database.cpython-33.pyc
57.38 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
index.cpython-33.pyc
20.79 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
locators.cpython-33.pyc
51.82 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
manifest.cpython-33.pyc
13.48 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
markers.cpython-33.pyc
9.14 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
metadata.cpython-33.pyc
41.29 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
resources.cpython-33.pyc
16.28 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
scripts.cpython-33.pyc
12.02 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-33.pyc
66.56 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
version.cpython-33.pyc
32.85 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
wheel.cpython-33.pyc
35.51 KB
lrw-r--r--
2023-11-13 21:16:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-33.pyc
1.60 KB
lrw-r--r--
2023-11-13 21:16:39
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).