REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 53.22 KB
Close
/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/sql/__pycache__/ddl.cpython-311.pyc
Text
Base64
pw0NCgAAAAC7fG9p06IAAOMAAAAAAAAAAAAAAAAGAAAAAAAAAPMSAwAAlwBkAFoAZAFkAmwBbQJaAgEAZAFkA2wBbQNaAwEAZAFkBGwBbQRaBAEAZAFkBWwBbQVaBQEAZAFkBmwGbQdaBwEAZAdkCGwIbQlaCQEAZAdkCWwIbQpaCgEAZAdkCmwIbQtaCwEAZAdkC2wLbQxaDAEAAgBHAGQMhABkDWUHpgMAAKsDAAAAAAAAAABaDQIARwBkDoQAZA9lBGUNpgQAAKsEAAAAAAAAAABaDgIARwBkEIQAZBFlDqYDAACrAwAAAAAAAAAAWg8CAEcAZBKEAGQTZQ6mAwAAqwMAAAAAAAAAAFoQAgBHAGQUhABkFWUQpgMAAKsDAAAAAAAAAABaEQIARwBkFoQAZBdlEKYDAACrAwAAAAAAAAAAWhICAEcAZBiEAGQZZRCmAwAAqwMAAAAAAAAAAFoTAgBHAGQahABkG2UQpgMAAKsDAAAAAAAAAABaFAIARwBkHIQAZB1lDaYDAACrAwAAAAAAAAAAWhUCAEcAZB6EAGQfZRCmAwAAqwMAAAAAAAAAAFoWAgBHAGQghABkIWUQpgMAAKsDAAAAAAAAAABaFwIARwBkIoQAZCNlEKYDAACrAwAAAAAAAAAAWhgCAEcAZCSEAGQlZRCmAwAAqwMAAAAAAAAAAFoZAgBHAGQmhABkJ2UQpgMAAKsDAAAAAAAAAABaGgIARwBkKIQAZCllEKYDAACrAwAAAAAAAAAAWhsCAEcAZCqEAGQrZRCmAwAAqwMAAAAAAAAAAFocAgBHAGQshABkLWUQpgMAAKsDAAAAAAAAAABaHQIARwBkLoQAZC9lEKYDAACrAwAAAAAAAAAAWh4CAEcAZDCEAGQxZRCmAwAAqwMAAAAAAAAAAFofAgBHAGQyhABkM2UQpgMAAKsDAAAAAAAAAABaIAIARwBkNIQAZDVlBaYDAACrAwAAAAAAAAAAWiECAEcAZDaEAGQ3ZSGmAwAAqwMAAAAAAAAAAFoiAgBHAGQ4hABkOWUhpgMAAKsDAAAAAAAAAABaIwkACQBkPmQ7hAFaJAkAZD9kPYQBWiVkOlMAKUB6cQpQcm92aWRlcyB0aGUgaGllcmFyY2h5IG9mIERETC1kZWZpbmluZyBzY2hlbWEgaXRlbXMgYXMgd2VsbCBhcyByb3V0aW5lcwp0byBpbnZva2UgdGhlbSBmb3IgYSBjcmVhdGUvZHJvcCBjYWxsLgoK6QEAAAApAdoOX2JpbmRfb3JfZXJyb3IpAdoLX2dlbmVyYXRpdmUpAdoKRXhlY3V0YWJsZSkB2g1TY2hlbWFWaXNpdG9yKQHaDUNsYXVzZUVsZW1lbnTpAgAAACkB2gVldmVudCkB2gNleGMpAdoEdXRpbCkB2gt0b3BvbG9naWNhbGMAAAAAAAAAAAAAAAABAAAAAAAAAPMUAAAAlwBlAFoBZABaAmQBhABaA2QCUwApA9oMX0RETENvbXBpbGVzYwIAAAAAAAAAAAAAAAUAAAALAAAA8yAAAACXAAIAfAFqAAAAAAAAAAAAfAF8AGYCaQB8AqQBjgFTACkBek5SZXR1cm4gYSBjb21waWxlciBhcHByb3ByaWF0ZSBmb3IgdGhpcyBDbGF1c2VFbGVtZW50LCBnaXZlbiBhCiAgICAgICAgRGlhbGVjdC4pAdoMZGRsX2NvbXBpbGVyKQPaBHNlbGbaB2RpYWxlY3TaAmt3cwMAAAAgICD6SS9vcHQvY2xvdWRsaW51eC92ZW52L2xpYjY0L3B5dGhvbjMuMTEvc2l0ZS1wYWNrYWdlcy9zcWxhbGNoZW15L3NxbC9kZGwucHnaCV9jb21waWxlcnoWX0RETENvbXBpbGVzLl9jb21waWxlchkAAABzIQAAAIAA8AgAECSId9QPI6BHqFTQDzjQDziwUtAPONAPONAIOPMAAAAATikE2ghfX25hbWVfX9oKX19tb2R1bGVfX9oMX19xdWFsbmFtZV9fchUAAACpAHIWAAAAchQAAAByDgAAAHIOAAAAGAAAAHMjAAAAgACAAIAAgACAAPACBAU58AAEBTnwAAQFOfAABAU58AAEBTlyFgAAAHIOAAAAYwAAAAAAAAAAAAAAAAQAAAAAAAAA8wwBAACXAGUAWgFkAFoCZAFaA2UEagUAAAAAAAAAAKAGAAAAAAAAAAAAAAAAAAAAAAAAAABkAmQDaQGmAQAAqwEAAAAAAAAAAFoFZARaB2QEWghkBFoJZARaCmQFhABaC2QTZAaEAVoMAgBlDWoOAAAAAAAAAABkB2QIpgIAAKsCAAAAAAAAAABkCYQApgAAAKsAAAAAAAAAAABaD2UQZAqEAKYAAACrAAAAAAAAAAAAWhFlEGQUZAuEAaYAAACrAAAAAAAAAAAAWhJkDIQAWhNkDYQAWhRkDoQAWhVkD4QAWhZkEIQAWhdkEYQAWhgCAGUZZRdlGKYCAACrAgAAAAAAAAAAWhdkEoQAWhpkBFMAKRXaCkRETEVsZW1lbnRh2gIAAEJhc2UgY2xhc3MgZm9yIERETCBleHByZXNzaW9uIGNvbnN0cnVjdHMuCgogICAgVGhpcyBjbGFzcyBpcyB0aGUgYmFzZSBmb3IgdGhlIGdlbmVyYWwgcHVycG9zZSA6Y2xhc3M6YC5ERExgIGNsYXNzLAogICAgYXMgd2VsbCBhcyB0aGUgdmFyaW91cyBjcmVhdGUvZHJvcCBjbGF1c2UgY29uc3RydWN0cyBzdWNoIGFzCiAgICA6Y2xhc3M6YC5DcmVhdGVUYWJsZWAsIDpjbGFzczpgLkRyb3BUYWJsZWAsIDpjbGFzczpgLkFkZENvbnN0cmFpbnRgLAogICAgZXRjLgoKICAgIDpjbGFzczpgLkRETEVsZW1lbnRgIGludGVncmF0ZXMgY2xvc2VseSB3aXRoIFNRTEFsY2hlbXkgZXZlbnRzLAogICAgaW50cm9kdWNlZCBpbiA6cmVmOmBldmVudF90b3BsZXZlbGAuICBBbiBpbnN0YW5jZSBvZiBvbmUgaXMKICAgIGl0c2VsZiBhbiBldmVudCByZWNlaXZpbmcgY2FsbGFibGU6OgoKICAgICAgICBldmVudC5saXN0ZW4oCiAgICAgICAgICAgIHVzZXJzLAogICAgICAgICAgICAnYWZ0ZXJfY3JlYXRlJywKICAgICAgICAgICAgQWRkQ29uc3RyYWludChjb25zdHJhaW50KS5leGVjdXRlX2lmKGRpYWxlY3Q9J3Bvc3RncmVzcWwnKQogICAgICAgICkKCiAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgOmNsYXNzOmAuRERMYAoKICAgICAgICA6Y2xhc3M6YC5ERExFdmVudHNgCgogICAgICAgIDpyZWY6YGV2ZW50X3RvcGxldmVsYAoKICAgICAgICA6cmVmOmBzY2hlbWFfZGRsX3NlcXVlbmNlc2AKCiAgICDaCmF1dG9jb21taXRUTmMEAAAAAAAAAAAAAAAFAAAAAwAAAPMwAAAAlwB8AaAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AHwCfAOmAwAAqwMAAAAAAAAAAFMAqQFOKQHaDF9leGVjdXRlX2RkbCkEchEAAADaCmNvbm5lY3Rpb27aC211bHRpcGFyYW1z2gZwYXJhbXNzBAAAACAgICByFAAAANoWX2V4ZWN1dGVfb25fY29ubmVjdGlvbnohRERMRWxlbWVudC5fZXhlY3V0ZV9vbl9jb25uZWN0aW9uRwAAAHMaAAAAgADYDxnXDybSDyagdKhbuCbRD0HUD0HQCEFyFgAAAGMDAAAAAAAAAAAAAAAFAAAAAwAAAPPiAAAAlwB8AYAPdAEAAAAAAAAAAAAAfACmAQAAqwEAAAAAAAAAAH0BfACgAQAAAAAAAAAAAAAAAAAAAAAAAAAAfAJ8AaYCAACrAgAAAAAAAAAAcih8AaACAAAAAAAAAAAAAAAAAAAAAAAAAAB8AKADAAAAAAAAAAAAAAAAAAAAAAAAAAB8AqYBAACrAQAAAAAAAAAApgEAAKsBAAAAAAAAAABTAHwBagQAAAAAAAAAAGoFAAAAAAAAAACgBgAAAAAAAAAAAAAAAAAAAAAAAAAAZAKmAQAAqwEAAAAAAAAAAAEAZAFTACkDYTEDAABFeGVjdXRlIHRoaXMgRERMIGltbWVkaWF0ZWx5LgoKICAgICAgICBFeGVjdXRlcyB0aGUgRERMIHN0YXRlbWVudCBpbiBpc29sYXRpb24gdXNpbmcgdGhlIHN1cHBsaWVkCiAgICAgICAgOmNsYXNzOmAuQ29ubmVjdGFibGVgIG9yCiAgICAgICAgOmNsYXNzOmAuQ29ubmVjdGFibGVgIGFzc2lnbmVkIHRvIHRoZSBgYC5iaW5kYGAKICAgICAgICBwcm9wZXJ0eSwgaWYgbm90IHN1cHBsaWVkLiBJZiB0aGUgRERMIGhhcyBhIGNvbmRpdGlvbmFsIGBgb25gYAogICAgICAgIGNyaXRlcmlhLCBpdCB3aWxsIGJlIGludm9rZWQgd2l0aCBOb25lIGFzIHRoZSBldmVudC4KCiAgICAgICAgOnBhcmFtIGJpbmQ6CiAgICAgICAgICBPcHRpb25hbCwgYW4gYGBFbmdpbmVgYCBvciBgYENvbm5lY3Rpb25gYC4gSWYgbm90IHN1cHBsaWVkLCBhIHZhbGlkCiAgICAgICAgICA6Y2xhc3M6YC5Db25uZWN0YWJsZWAgbXVzdCBiZSBwcmVzZW50IGluIHRoZQogICAgICAgICAgYGAuYmluZGBgIHByb3BlcnR5LgoKICAgICAgICA6cGFyYW0gdGFyZ2V0OgogICAgICAgICAgT3B0aW9uYWwsIGRlZmF1bHRzIHRvIE5vbmUuICBUaGUgdGFyZ2V0IDpjbGFzczpgX3NjaGVtYS5TY2hlbWFJdGVtYAogICAgICAgICAgZm9yIHRoZSBleGVjdXRlIGNhbGwuICBXaWxsIGJlIHBhc3NlZCB0byB0aGUgYGBvbmBgIGNhbGxhYmxlIGlmIGFueSwKICAgICAgICAgIGFuZCBtYXkgYWxzbyBwcm92aWRlIHN0cmluZyBleHBhbnNpb24gZGF0YSBmb3IgdGhlIHN0YXRlbWVudC4KICAgICAgICAgIFNlZSBgYGV4ZWN1dGVfYXRgYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KCiAgICAgICAgTnooRERMIGV4ZWN1dGlvbiBza2lwcGVkLCBjcml0ZXJpYSBub3QgbWV0LikHcgMAAADaD19zaG91bGRfZXhlY3V0ZdoHZXhlY3V0ZdoHYWdhaW5zdNoGZW5naW5l2gZsb2dnZXLaBGluZm8pA3IRAAAA2gRiaW5k2gZ0YXJnZXRzAwAAACAgIHIUAAAAcicAAAB6EkRETEVsZW1lbnQuZXhlY3V0ZUoAAABzbQAAAIAA8CwADBCIPN0TIaAk0RMn1BMniETgCw/XCx/SCx+gBqgE0Qst1Ast8AADCVAB2BMXlzySPKAEpwyiDKhW0SA01CA00RM11BM10Aw14AwQjEvUDB7XDCPSDCPQJE7RDE/UDE/QDE/QDE/QDE9yFgAAAPoDMC43etZUaGUgOm1ldGg6YC5ERExFbGVtZW50LmV4ZWN1dGVfYXRgIG1ldGhvZCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4gIFBsZWFzZSB1c2UgdGhlIDpjbGFzczpgLkRETEV2ZW50c2AgbGlzdGVuZXIgaW50ZXJmYWNlIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDptZXRoOmAuRERMRWxlbWVudC5leGVjdXRlX2lmYCBtZXRob2QuYwMAAAAAAAAAAAAAAAgAAAADAAAA83AAAACHAIcBlwCIAYgAZgJkAYQIfQN0AQAAAAAAAAAAAABqAQAAAAAAAAAAfAJkAokBoAIAAAAAAAAAAAAAAAAAAAAAAAAAAGQDZASmAgAAqwIAAAAAAAAAAHoAAAB8A6YDAACrAwAAAAAAAAAAAQBkBVMAKQZhXwQAAExpbmsgZXhlY3V0aW9uIG9mIHRoaXMgRERMIHRvIHRoZSBEREwgbGlmZWN5Y2xlIG9mIGEgU2NoZW1hSXRlbS4KCiAgICAgICAgTGlua3MgdGhpcyBgYERETEVsZW1lbnRgYCB0byBhIGBgVGFibGVgYCBvciBgYE1ldGFEYXRhYGAgaW5zdGFuY2UsCiAgICAgICAgZXhlY3V0aW5nIGl0IHdoZW4gdGhhdCBzY2hlbWEgaXRlbSBpcyBjcmVhdGVkIG9yIGRyb3BwZWQuIFRoZSBEREwKICAgICAgICBzdGF0ZW1lbnQgd2lsbCBiZSBleGVjdXRlZCB1c2luZyB0aGUgc2FtZSBDb25uZWN0aW9uIGFuZCB0cmFuc2FjdGlvbmFsCiAgICAgICAgY29udGV4dCBhcyB0aGUgVGFibGUgY3JlYXRlL2Ryb3AgaXRzZWxmLiBUaGUgYGAuYmluZGBgIHByb3BlcnR5IG9mCiAgICAgICAgdGhpcyBzdGF0ZW1lbnQgaXMgaWdub3JlZC4KCiAgICAgICAgOnBhcmFtIGV2ZW50OgogICAgICAgICAgT25lIG9mIHRoZSBldmVudHMgZGVmaW5lZCBpbiB0aGUgc2NoZW1hIGl0ZW0ncyBgYC5kZGxfZXZlbnRzYGA7CiAgICAgICAgICBlLmcuICdiZWZvcmUtY3JlYXRlJywgJ2FmdGVyLWNyZWF0ZScsICdiZWZvcmUtZHJvcCcgb3IgJ2FmdGVyLWRyb3AnCgogICAgICAgIDpwYXJhbSB0YXJnZXQ6CiAgICAgICAgICBUaGUgVGFibGUgb3IgTWV0YURhdGEgaW5zdGFuY2UgZm9yIHdoaWNoIHRoaXMgRERMRWxlbWVudCB3aWxsCiAgICAgICAgICBiZSBhc3NvY2lhdGVkIHdpdGguCgogICAgICAgIEEgRERMRWxlbWVudCBpbnN0YW5jZSBjYW4gYmUgbGlua2VkIHRvIGFueSBudW1iZXIgb2Ygc2NoZW1hIGl0ZW1zLgoKICAgICAgICBgYGV4ZWN1dGVfYXRgYCBidWlsZHMgb24gdGhlIGBgYXBwZW5kX2RkbF9saXN0ZW5lcmBgIGludGVyZmFjZSBvZgogICAgICAgIDpjbGFzczpgX3NjaGVtYS5NZXRhRGF0YWAgYW5kIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAgb2JqZWN0cy4KCiAgICAgICAgQ2F2ZWF0OiBDcmVhdGluZyBvciBkcm9wcGluZyBhIFRhYmxlIGluIGlzb2xhdGlvbiB3aWxsIGFsc28gdHJpZ2dlcgogICAgICAgIGFueSBEREwgc2V0IHRvIGBgZXhlY3V0ZV9hdGBgIHRoYXQgVGFibGUncyBNZXRhRGF0YS4gIFRoaXMgbWF5IGNoYW5nZQogICAgICAgIGluIGEgZnV0dXJlIHJlbGVhc2UuCgogICAgICAgIGMCAAAAAAAAAAAAAAAFAAAAGwAAAPN4AAAAlQKXAAIAiQRqAAAAAAAAAAAAiQN8AHwBZgNpAHwCpAGOAXIofAGgAQAAAAAAAAAAAAAAAAAAAAAAAAAAiQSgAgAAAAAAAAAAAAAAAAAAAAAAAAAAfACmAQAAqwEAAAAAAAAAAKYBAACrAQAAAAAAAAAAUwBkAFMAch8AAAApA9oaX3Nob3VsZF9leGVjdXRlX2RlcHJlY2F0ZWRyJwAAAHIoAAAAKQVyLQAAAHIhAAAAchMAAADaCmV2ZW50X25hbWVyEQAAAHMFAAAAICAggIByFAAAANoKY2FsbF9ldmVudHopRERMRWxlbWVudC5leGVjdXRlX2F0Ljxsb2NhbHM+LmNhbGxfZXZlbnSLAAAAc10AAAD4gADYDy6IdNQPLtgQGphGoErwAwIQDvAAAhAO2DI08AMCEA7wAAIQDvAAAw1AAfAGABgi1xcp0hcpqCSvLKossHbRKj7UKj7RFz/UFz/QED/wBwMNQAHwAAMNQAFyFgAAANoA+gEt2gFfTikDcgkAAADaBmxpc3RlbtoHcmVwbGFjZSkEchEAAAByMgAAAHItAAAAcjMAAABzBAAAAGBgICByFAAAANoKZXhlY3V0ZV9hdHoVRERMRWxlbWVudC5leGVjdXRlX2F0aAAAAHNaAAAA+PiAAPBGAQQJQAHwAAQJQAHwAAQJQAHwAAQJQAHwAAQJQAHwAAQJQAH1DAAJDowMkFaYUqAq1yI00iI0sFO4I9EiPtQiPtEdPsAK0QhL1AhL0AhL0AhL0AhLchYAAABjAgAAAAAAAAAAAAAAAgAAAAMAAADzFAAAAJcAfAF8AF8AAAAAAAAAAABkAVMAKQJ6OVJldHVybiBhIGNvcHkgb2YgdGhpcyBEREwgYWdhaW5zdCBhIHNwZWNpZmljIHNjaGVtYSBpdGVtLk4pAXItAAAAKQJyEQAAAHItAAAAcwIAAAAgIHIUAAAAcigAAAB6EkRETEVsZW1lbnQuYWdhaW5zdJMAAABzDwAAAIAA8AgAFx2IBIwLiAuIC3IWAAAAYwQAAAAAAAAAAAAAAAIAAAADAAAA8zAAAACXAHwBfABfAAAAAAAAAAAAfAJ8AF8BAAAAAAAAAAB8A3wAXwIAAAAAAAAAAGQBUwApAmEdCAAAUmV0dXJuIGEgY2FsbGFibGUgdGhhdCB3aWxsIGV4ZWN1dGUgdGhpcwogICAgICAgIERETEVsZW1lbnQgY29uZGl0aW9uYWxseS4KCiAgICAgICAgVXNlZCB0byBwcm92aWRlIGEgd3JhcHBlciBmb3IgZXZlbnQgbGlzdGVuaW5nOjoKCiAgICAgICAgICAgIGV2ZW50Lmxpc3RlbigKICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmVfY3JlYXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgRERMKCJteV9kZGwiKS5leGVjdXRlX2lmKGRpYWxlY3Q9J3Bvc3RncmVzcWwnKQogICAgICAgICAgICAgICAgICAgICkKCiAgICAgICAgOnBhcmFtIGRpYWxlY3Q6IE1heSBiZSBhIHN0cmluZywgdHVwbGUgb3IgYSBjYWxsYWJsZQogICAgICAgICAgcHJlZGljYXRlLiAgSWYgYSBzdHJpbmcsIGl0IHdpbGwgYmUgY29tcGFyZWQgdG8gdGhlIG5hbWUgb2YgdGhlCiAgICAgICAgICBleGVjdXRpbmcgZGF0YWJhc2UgZGlhbGVjdDo6CgogICAgICAgICAgICBEREwoJ3NvbWV0aGluZycpLmV4ZWN1dGVfaWYoZGlhbGVjdD0ncG9zdGdyZXNxbCcpCgogICAgICAgICAgSWYgYSB0dXBsZSwgc3BlY2lmaWVzIG11bHRpcGxlIGRpYWxlY3QgbmFtZXM6OgoKICAgICAgICAgICAgRERMKCdzb21ldGhpbmcnKS5leGVjdXRlX2lmKGRpYWxlY3Q9KCdwb3N0Z3Jlc3FsJywgJ215c3FsJykpCgogICAgICAgIDpwYXJhbSBjYWxsYWJsZVxfOiBBIGNhbGxhYmxlLCB3aGljaCB3aWxsIGJlIGludm9rZWQgd2l0aAogICAgICAgICAgZm91ciBwb3NpdGlvbmFsIGFyZ3VtZW50cyBhcyB3ZWxsIGFzIG9wdGlvbmFsIGtleXdvcmQKICAgICAgICAgIGFyZ3VtZW50czoKCiAgICAgICAgICAgIDpkZGw6CiAgICAgICAgICAgICAgVGhpcyBEREwgZWxlbWVudC4KCiAgICAgICAgICAgIDp0YXJnZXQ6CiAgICAgICAgICAgICAgVGhlIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAgb3IgOmNsYXNzOmBfc2NoZW1hLk1ldGFEYXRhYAogICAgICAgICAgICAgIG9iamVjdCB3aGljaCBpcyB0aGUKICAgICAgICAgICAgICB0YXJnZXQgb2YgdGhpcyBldmVudC4gTWF5IGJlIE5vbmUgaWYgdGhlIERETCBpcyBleGVjdXRlZAogICAgICAgICAgICAgIGV4cGxpY2l0bHkuCgogICAgICAgICAgICA6YmluZDoKICAgICAgICAgICAgICBUaGUgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIGJlaW5nIHVzZWQgZm9yIERETCBleGVjdXRpb24KCiAgICAgICAgICAgIDp0YWJsZXM6CiAgICAgICAgICAgICAgT3B0aW9uYWwga2V5d29yZCBhcmd1bWVudCAtIGEgbGlzdCBvZiBUYWJsZSBvYmplY3RzIHdoaWNoIGFyZSB0bwogICAgICAgICAgICAgIGJlIGNyZWF0ZWQvIGRyb3BwZWQgd2l0aGluIGEgTWV0YURhdGEuY3JlYXRlX2FsbCgpIG9yIGRyb3BfYWxsKCkKICAgICAgICAgICAgICBtZXRob2QgY2FsbC4KCiAgICAgICAgICAgIDpzdGF0ZToKICAgICAgICAgICAgICBPcHRp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IGJ5IHRoZSBkYXRhYmFzZS4gIERETCBvYmplY3RzCiAgICBmdW5jdGlvbiBhcyBEREwgZXZlbnQgbGlzdGVuZXJzLCBhbmQgY2FuIGJlIHN1YnNjcmliZWQgdG8gdGhvc2UgZXZlbnRzCiAgICBsaXN0ZWQgaW4gOmNsYXNzOmAuRERMRXZlbnRzYCwgdXNpbmcgZWl0aGVyIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAgb3IKICAgIDpjbGFzczpgX3NjaGVtYS5NZXRhRGF0YWAgb2JqZWN0cyBhcyB0YXJnZXRzLgogICAgQmFzaWMgdGVtcGxhdGluZyBzdXBwb3J0IGFsbG93cwogICAgYSBzaW5nbGUgRERMIGluc3RhbmNlIHRvIGhhbmRsZSByZXBldGl0aXZlIHRhc2tzIGZvciBtdWx0aXBsZSB0YWJsZXMuCgogICAgRXhhbXBsZXM6OgoKICAgICAgZnJvbSBzcWxhbGNoZW15IGltcG9ydCBldmVudCwgRERMCgogICAgICB0YmwgPSBUYWJsZSgndXNlcnMnLCBtZXRhZGF0YSwgQ29sdW1uKCd1aWQnLCBJbnRlZ2VyKSkKICAgICAgZXZlbnQubGlzdGVuKHRibCwgJ2JlZm9yZV9jcmVhdGUnLCBEREwoJ0RST1AgVFJJR0dFUiB1c2Vyc190cmlnZ2VyJykpCgogICAgICBzcG93ID0gRERMKCdBTFRFUiBUQUJMRSAlKHRhYmxlKXMgU0VUIHNlY3JldHBvd2VycyBUUlVFJykKICAgICAgZXZlbnQubGlzdGVuKHRibCwgJ2FmdGVyX2NyZWF0ZScsIHNwb3cuZXhlY3V0ZV9pZihkaWFsZWN0PSdzb21lZGInKSkKCiAgICAgIGRyb3Bfc3BvdyA9IERETCgnQUxURVIgVEFCTEUgdXNlcnMgU0VUIHNlY3JldHBvd2VycyBGQUxTRScpCiAgICAgIGNvbm5lY3Rpb24uZXhlY3V0ZShkcm9wX3Nwb3cpCgogICAgV2hlbiBvcGVyYXRpbmcgb24gVGFibGUgZXZlbnRzLCB0aGUgZm9sbG93aW5nIGBgc3RhdGVtZW50YGAKICAgIHN0cmluZyBzdWJzdGl0dXRpb25zIGFyZSBhdmFpbGFibGU6OgoKICAgICAgJSh0YWJsZSlzICAtIHRoZSBUYWJsZSBuYW1lLCB3aXRoIGFueSByZXF1aXJlZCBxdW90aW5nIGFwcGxpZWQKICAgICAgJShzY2hlbWEpcyAtIHRoZSBzY2hlbWEgbmFtZSwgd2l0aCBhbnkgcmVxdWlyZWQgcXVvdGluZyBhcHBsaWVkCiAgICAgICUoZnVsbG5hbWUpcyAtIHRoZSBUYWJsZSBuYW1lIGluY2x1ZGluZyBzY2hlbWEsIHF1b3RlZCBpZiBuZWVkZWQKCiAgICBUaGUgRERMJ3MgImNvbnRleHQiLCBpZiBhbnksIHdpbGwgYmUgY29tYmluZWQgd2l0aCB0aGUgc3RhbmRhcmQKICAgIHN1YnN0aXR1dGlvbnMgbm90ZWQgYWJvdmUuICBLZXlzIHByZXNlbnQgaW4gdGhlIGNvbnRleHQgd2lsbCBvdmVycmlkZQogICAgdGhlIHN0YW5kYXJkIHN1YnN0aXR1dGlvbnMuCgogICAg2gNkZGwpAnIuAAAAeolUaGUgOnBhcmFtcmVmOmAuRERMLm9uYCBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuICBQbGVhc2UgcmVmZXIgdG8gOm1ldGg6YC5ERExFbGVtZW50LmV4ZWN1dGVfaWZgLikBckAAAABOYwUAAAAAAAAAAAAAAAQAAAADAAAA884AAACXAHQBAAAAAAAAAAAAAHwBdAIAAAAAAAAAAAAAagIAAAAAAAAAAKYCAACrAgAAAAAAAAAAcxd0BwAAAAAAAAAAAABqBAAAAAAAAAAAZAF8AXoGAACmAQAAqwEAAAAAAAAAAIIBfAF8AF8FAAAAAAAAAAB8A3ABaQB8AF8GAAAAAAAAAAB8AKAHAAAAAAAAAAAAAAAAAAAAAAAAAAB8AqYBAACrAQAAAAAAAAAAAQB8AnwAXwgAAAAAAAAAAHwEfABfCQAAAAAAAAAAZAJTACkDYSkIAABDcmVhdGUgYSBEREwgc3RhdGVtZW50LgoKICAgICAgICA6cGFyYW0gc3RhdGVtZW50OgogICAgICAgICAgQSBzdHJpbmcgb3IgdW5pY29kZSBzdHJpbmcgdG8gYmUgZXhlY3V0ZWQuICBTdGF0ZW1lbnRzIHdpbGwgYmUKICAgICAgICAgIHByb2Nlc3NlZCB3aXRoIFB5dGhvbidzIHN0cmluZyBmb3JtYXR0aW5nIG9wZXJhdG9yLiAgU2VlIHRoZQogICAgICAgICAgYGBjb250ZXh0YGAgYXJndW1lbnQgYW5kIHRoZSBgYGV4ZWN1dGVfYXRgYCBtZXRob2QuCgogICAgICAgICAgQSBsaXRlcmFsICclJyBpbiBhIHN0YXRlbWVudCBtdXN0IGJlIGVzY2FwZWQgYXMgJyUlJy4KCiAgICAgICAgICBTUUwgYmluZCBwYXJhbWV0ZXJzIGFyZSBub3QgYXZhaWxhYmxlIGluIERETCBzdGF0ZW1lbnRzLgoKICAgICAgICA6cGFyYW0gb246CgogICAgICAgICAgT3B0aW9uYWwgZmlsdGVyaW5nIGNyaXRlcmlhLiAgTWF5IGJlIGEgc3RyaW5nLCB0dXBsZSBvciBhIGNhbGxhYmxlCiAgICAgICAgICBwcmVkaWNhdGUuICBJZiBhIHN0cmluZywgaXQgd2lsbCBiZSBjb21wYXJlZCB0byB0aGUgbmFtZSBvZiB0aGUKICAgICAgICAgIGV4ZWN1dGluZyBkYXRhYmFzZSBkaWFsZWN0OjoKCiAgICAgICAgICAgIERETCgnc29tZXRoaW5nJywgb249J3Bvc3RncmVzcWwnKQoKICAgICAgICAgIElmIGEgdHVwbGUsIHNwZWNpZmllcyBtdWx0aXBsZSBkaWFsZWN0IG5hbWVzOjoKCiAgICAgICAgICAgIERETCgnc29tZXRoaW5nJywgb249KCdwb3N0Z3Jlc3FsJywgJ215c3FsJykpCgogICAgICAgICAgSWYgYSBjYWxsYWJsZSwgaXQgd2lsbCBiZSBpbnZva2VkIHdpdGggZm91ciBwb3NpdGlvbmFsIGFyZ3VtZW50cwogICAgICAgICAgYXMgd2VsbCBhcyBvcHRpb25hbCBrZXl3b3JkIGFyZ3VtZW50czoKCiAgICAgICAgICAgIDpkZGw6CiAgICAgICAgICAgICAgVGhpcyBEREwgZWxlbWVudC4KCiAgICAgICAgICAgIDpldmVudDoKICAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgdGhhdCBoYXMgdHJpZ2dlcmVkIHRoaXMgRERMLCBzdWNoIGFzCiAgICAgICAgICAgICAgJ2FmdGVyLWNyZWF0ZScgV2lsbCBiZSBOb25lIGlmIHRoZSBEREwgaXMgZXhlY3V0ZWQgZXhwbGljaXRseS4KCiAgICAgICAgICAgIDp0YXJnZXQ6CiAgICAgICAgICAgICAgVGhlIGBgVGFibGVgYCBvciBgYE1ldGFEYXRhYGAgb2JqZWN0IHdoaWNoIGlzIHRoZSB0YXJnZXQgb2YKICAgICAgICAgICAgICB0aGlzIGV2ZW50LiBNYXkgYmUgTm9uZSBpZiB0aGUgRERMIGlzIGV4ZWN1dGVkIGV4cGxpY2l0bHkuCgogICAgICAgICAgICA6Y29ubmVjdGlvbjoKICAgICAgICAgICAgICBUaGUgYGBDb25uZWN0aW9uYGAgYmVpbmcgdXNlZCBmb3IgRERMIGV4ZWN1dGlvbgoKICAgICAgICAgICAgOnRhYmxlczoKICAgICAgICAgICAgICBPcHRpb25hbCBrZXl3b3JkIGFyZ3VtZW50IC0gYSBsaXN0IG9mIFRhYmxlIG9iamVjdHMgd2hpY2ggYXJlIHRvCiAgICAgICAgICAgICAgYmUgY3JlYXRlZC8gZHJvcHBlZCB3aXRoaW4gYSBNZXRhRGF0YS5jcmVhdGVfYWxsKCkgb3IgZHJvcF9hbGwoKQogICAgICAgICAgICAgIG1ldGhvZCBjYWxsLgoKCiAgICAgICAgICBJZiB0aGUgY2FsbGFibGUgcmV0dXJucyBhIHRydWUgdmFsdWUsIHRoZSBEREwgc3RhdGVtZW50IHdpbGwgYmUKICAgICAgICAgIGV4ZWN1dGVkLgoKICAgICAgICA6cGFyYW0gY29udGV4dDoKICAgICAgICAgIE9wdGlvbmFsIGRpY3Rpb25hcnksIGRlZmF1bHRzIHRvIE5vbmUuICBUaGVzZSB2YWx1ZXMgd2lsbCBiZQogICAgICAgICAgYXZhaWxhYmxlIGZvciB1c2UgaW4gc3RyaW5nIHN1YnN0aXR1dGlvbnMgb24gdGhlIERETCBzdGF0ZW1lbnQuCgogICAgICAgIDpwYXJhbSBiaW5kOgogICAgICAgICAgT3B0aW9uYWwuIEEgOmNsYXNzOmAuQ29ubmVjdGFibGVgLCB1c2VkIGJ5CiAgICAgICAgICBk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LkNvbHVtbmAKICAgIG9iamVjdCwgYW5kIHRvIHJlZGlyZWN0IGNvbXBpbGF0aW9uIGlmIGEgcGFydGljdWxhciBmbGFnIG9yIGNvbmRpdGlvbgogICAgaXMgZm91bmQ6OgoKICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IHNjaGVtYQogICAgICAgIGZyb20gc3FsYWxjaGVteS5leHQuY29tcGlsZXIgaW1wb3J0IGNvbXBpbGVzCgogICAgICAgIEBjb21waWxlcyhzY2hlbWEuQ3JlYXRlQ29sdW1uKQogICAgICAgIGRlZiBjb21waWxlKGVsZW1lbnQsIGNvbXBpbGVyLCAqKmt3KToKICAgICAgICAgICAgY29sdW1uID0gZWxlbWVudC5lbGVtZW50CgogICAgICAgICAgICBpZiAic3BlY2lhbCIgbm90IGluIGNvbHVtbi5pbmZvOgogICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBpbGVyLnZpc2l0X2NyZWF0ZV9jb2x1bW4oZWxlbWVudCwgKiprdykKCiAgICAgICAgICAgIHRleHQgPSAiJXMgU1BFQ0lBTCBESVJFQ1RJVkUgJXMiICUgKAogICAgICAgICAgICAgICAgICAgIGNvbHVtbi5uYW1lLAogICAgICAgICAgICAgICAgICAgIGNvbXBpbGVyLnR5cGVfY29tcGlsZXIucHJvY2Vzcyhjb2x1bW4udHlwZSkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgZGVmYXVsdCA9IGNvbXBpbGVyLmdldF9jb2x1bW5fZGVmYXVsdF9zdHJpbmcoY29sdW1uKQogICAgICAgICAgICBpZiBkZWZhdWx0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgdGV4dCArPSAiIERFRkFVTFQgIiArIGRlZmF1bHQKCiAgICAgICAgICAgIGlmIG5vdCBjb2x1bW4ubnVsbGFibGU6CiAgICAgICAgICAgICAgICB0ZXh0ICs9ICIgTk9UIE5VTEwiCgogICAgICAgICAgICBpZiBjb2x1bW4uY29uc3RyYWludHM6CiAgICAgICAgICAgICAgICB0ZXh0ICs9ICIgIi5qb2luKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZXIucHJvY2Vzcyhjb25zdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBjb25zdCBpbiBjb2x1bW4uY29uc3RyYWludHMpCiAgICAgICAgICAgIHJldHVybiB0ZXh0CgogICAgVGhlIGFib3ZlIGNvbnN0cnVjdCBjYW4gYmUgYXBwbGllZCB0byBhIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAKICAgIGFzIGZvbGxvd3M6OgoKICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IFRhYmxlLCBNZXRhZGF0YSwgQ29sdW1uLCBJbnRlZ2VyLCBTdHJpbmcKICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IHNjaGVtYQoKICAgICAgICBtZXRhZGF0YSA9IE1ldGFEYXRhKCkKCiAgICAgICAgdGFibGUgPSBUYWJsZSgnbXl0YWJsZScsIE1ldGFEYXRhKCksCiAgICAgICAgICAgICAgICBDb2x1bW4oJ3gnLCBJbnRlZ2VyLCBpbmZvPXsic3BlY2lhbCI6VHJ1ZX0sIHByaW1hcnlfa2V5PVRydWUpLAogICAgICAgICAgICAgICAgQ29sdW1uKCd5JywgU3RyaW5nKDUwKSksCiAgICAgICAgICAgICAgICBDb2x1bW4oJ3onLCBTdHJpbmcoMjApLCBpbmZvPXsic3BlY2lhbCI6VHJ1ZX0pCiAgICAgICAgICAgICkKCiAgICAgICAgbWV0YWRhdGEuY3JlYXRlX2FsbChjb25uKQoKICAgIEFib3ZlLCB0aGUgZGlyZWN0aXZlcyB3ZSd2ZSBhZGRlZCB0byB0aGUgOmF0dHI6YF9zY2hlbWEuQ29sdW1uLmluZm9gCiAgICBjb2xsZWN0aW9uCiAgICB3aWxsIGJlIGRldGVjdGVkIGJ5IG91ciBjdXN0b20gY29tcGlsYXRpb24gc2NoZW1lOjoKCiAgICAgICAgQ1JFQVRFIFRBQkxFIG15dGFibGUgKAogICAgICAgICAgICAgICAgeCBTUEVDSUFMIERJUkVDVElWRSBJTlRFR0VSIE5PVCBOVUxMLAogICAgICAgICAgICAgICAgeSBWQVJDSEFSKDUwKSwKICAgICAgICAgICAgICAgIHogU1BFQ0lBTCBESVJFQ1RJVkUgVkFSQ0hBUigyMCksCiAgICAgICAgICAgIFBSSU1BUlkgS0VZICh4KQogICAgICAgICkKCiAgICBUaGUgOmNsYXNzOmAuQ3JlYXRlQ29sdW1uYCBjb25zdHJ1Y3QgY2FuIGFsc28gYmUgdXNlZCB0byBza2lwIGNlcnRhaW4KICAgIGNvbHVtbnMgd2hlbiBwcm9kdWNpbmcgYSBgYENSRUFURSBUQUJMRWBgLiAgVGhpcyBpcyBhY2NvbXBsaXNoZWQgYnkKICAgIGNyZWF0aW5nIGEgY29tcGlsYXRpb24gcnVsZSB0aGF0IGNvbmRpdGlvbmFsbHkgcmV0dXJucyBgYE5vbmVgYC4KICAgIFRoaXMgaXMgZXNzZW50aWFsbHkgaG93IHRvIHByb2R1Y2UgdGhlIHNhbWUgZWZmZWN0IGFzIHVzaW5nIHRoZQogICAgYGBzeXN0ZW09VHJ1ZWBgIGFyZ3VtZW50IG9uIDpjbGFzczpgX3NjaGVtYS5Db2x1bW5gLCB3aGljaCBtYXJrcyBhIGNvbHVtbgogICAgYXMgYW4gaW1wbGljaXRseS1wcmVzZW50ICJzeXN0ZW0iIGNvbHVtbi4KCiAgICBGb3IgZXhhbXBsZSwgc3VwcG9zZSB3ZSB3aXNoIHRvIHByb2R1Y2UgYSA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgCiAgICB3aGljaCBza2lwcwogICAgcmVuZGVyaW5nIG9mIHRoZSBQb3N0Z3JlU1FMIGBgeG1pbmBgIGNvbHVtbiBhZ2FpbnN0IHRoZSBQb3N0Z3JlU1FMCiAgICBiYWNrZW5kLCBidXQgb24gb3RoZXIgYmFja2VuZHMgZG9lcyByZW5kZXIgaXQsIGluIGFudGljaXBhdGlvbiBvZiBhCiAgICB0cmlnZ2VyZWQgcnVsZS4gIEEgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gcnVsZSBjb3VsZCBza2lwIHRoaXMgbmFtZSBvbmx5CiAgICBvbiBQb3N0Z3JlU1FMOjoKCiAgICAgICAgZnJvbSBzcWxhbGNoZW15LnNjaGVtYSBpbXBvcnQgQ3JlYXRlQ29sdW1uCgogICAgICAgIEBjb21waWxlcyhDcmVhdGVDb2x1bW4sICJwb3N0Z3Jlc3FsIikKICAgICAgICBkZWYgc2tpcF94bWluKGVsZW1lbnQsIGNvbXBpbGVyLCAqKmt3KToKICAgICAgICAgICAgaWYgZWxlbWVudC5lbGVtZW50Lm5hbWUgPT0gJ3htaW4nOgogICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHJldHVybiBjb21waWxlci52aXNpdF9jcmVhdGVfY29sdW1uKGVsZW1lbnQsICoqa3cpCgoKICAgICAgICBteV90YWJsZSA9IFRhYmxlKCdteXRhYmxlJywgbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgQ29sdW1uKCdpZCcsIEludGVnZXIsIHByaW1hcnlfa2V5PVRydWUpLAogICAgICAgICAgICAgICAgICAgIENvbHVtbigneG1pbicsIEludGVnZXIpCiAgICAgICAgICAgICAgICApCgogICAgQWJvdmUsIGEgOmNsYXNzOmAuQ3JlYXRlVGFibGVgIGNvbnN0cnVjdCB3aWxsIGdlbmVyYXRlIGEgYGBDUkVBVEUgVEFCTEVgYAogICAgd2hpY2ggb25seSBpbmNsdWRlcyB0aGUgYGBpZGBgIGNvbHVtbiBpbiB0aGUgc3RyaW5nOyB0aGUgYGB4bWluYGAgY29sdW1uCiAgICB3aWxsIGJlIG9taXR0ZWQsIGJ1dCBvbmx5IGFnYWluc3QgdGhlIFBvc3RncmVTUUwgYmFja2VuZC4KCiAgICDaDWNyZWF0ZV9jb2x1bW5jAgAAAAAAAAAAAAAAAgAAAAMAAADzFAAAAJcAfAF8AF8AAAAAAAAAAABkAFMAch8AAAApAXKAAAAAKQJyEQAAAHKAAAAAcwIAAAAgIHIUAAAAcmsAAAB6FUNyZWF0ZUNvbHVtbi5fX2luaXRfX3QCAABzDQAAAIAA2BceiASMDIgMiAxyFgAAAE4pBnIXAAAAchgAAAByGQAAAHJgAAAAcnsAAAByawAAAHIaAAAAchYAAAByFAAAAHKYAAAAcpgAAAALAgAAczcAAACAAIAAgACAAIAA8AJkAQUI8ABkAQUI8EwDABYlgE7wBAEFH/AAAQUf8AABBR/wAAEFH/AAAQUfchYAAABymAAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMWAAAAlwBlAFoBZABaAmQBWgNkAloEZANTACkE2glEcm9wVGFibGV6IVJlcHJlc2VudCBhIERST1AgVEFCTEUgc3RhdGVtZW50LtoKZHJvcF90YWJsZU5ynwAAAHIaAAAAchYAAAByFAAAAHKkAAAAcqQAAAB4AgAA8xkAAACAAIAAgACAAIAA2AQr0AQr4BUhgE6AToBOchYAAABypAAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMWAAAAlwBlAFoBZABaAmQBWgNkAloEZANTACkE2g5DcmVhdGVTZXF1ZW5jZXomUmVwcmVzZW50IGEgQ1JFQVRFIFNFUVVFTkNFIHN0YXRlbWVudC7aD2NyZWF0ZV9zZXF1ZW5jZU5ynwAAAHIaAAAAchYAAAByFAAAAHKoAAAAcqgAAAB+AgAAcxkAAACAAIAAgACAAIAA2AQw0AQw4BUmgE6AToBOchYAAAByqAAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMWAAAAlwBlAFoBZABaAmQBWgNkAloEZANTACkE2gxEcm9wU2VxdWVuY2V6JFJlcHJlc2VudCBhIERST1AgU0VRVUVOQ0Ugc3RhdGVtZW50LtoNZHJvcF9zZXF1ZW5jZU5ynwAAAHIaAAAAchYAAAByFAAAAHKrAAAAcqsAAACEAgAAcxkAAACAAIAAgACAAIAA2AQu0AQu4BUkgE6AToBOchYAAAByqwAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMWAAAAlwBlAFoBZABaAmQBWgNkAloEZANTACkE2gtDcmVhdGVJbmRleHojUmVwcmVzZW50IGEgQ1JFQVRFIElOREVYIHN0YXRlbWVudC7aDGNyZWF0ZV9pbmRleE5ynwAAAHIaAAAAchYAAAByFAAAAHKuAAAAcq4AAACKAgAAcxkAAACAAIAAgACAAIAA2AQt0AQt4BUjgE6AToBOchYAAAByrgAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMWAAAAlwBlAFoBZABaAmQBWgNkAloEZANTACkE2glEcm9wSW5kZXh6IVJlcHJlc2VudCBhIERST1AgSU5ERVggc3RhdGVtZW50LtoKZHJvcF9pbmRleE5ynwAAAHIaAAAAchYAAAByFAAAAHKxAAAAcrEAAACQAgAAcqYAAAByFgAAAHKxAAAAYwAAAAAAAAAAAAAAAAIAAAAAAAAA8yYAAACHAJcAZQBaAWQAWgJkAVoDZAJaBIgAZgFkA4QIWgWIAHgBWgZTACkE2g1BZGRDb25zdHJhaW50ejJSZXByZXNlbnQgYW4gQUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQgc3RhdGVtZW50LtoOYWRkX2NvbnN0cmFpbnRjAgAAAAAAAAAAAAAABQAAAA8AAADzjAAAAJUBlwACAHQBAAAAAAAAAAAAAHQCAAAAAAAAAAAAAHwApgIAAKsCAAAAAAAAAABqAgAAAAAAAAAAfAFnAXwCogFSAGkAfAOkAY4BAQB0BwAAAAAAAAAAAABqBAAAAAAAAAAAfABqBQAAAAAAAAAApgEAAKsBAAAAAAAAAAB8AV8GAAAAAAAAAABkAFMAch8AAAApB3KJAAAAcrQAAAByawAAAHILAAAA2hdwb3J0YWJsZV9pbnN0YW5jZW1ldGhvZHKDAAAA2gxfY3JlYXRlX3J1bGUpBXIRAAAAcoAAAADaBGFyZ3NyEwAAAHJYAAAAcwUAAAAgICAggHIUAAAAcmsAAAB6FkFkZENvbnN0cmFpbnQuX19pbml0X1+bAgAAc1EAAAD4gADYCCuNBY1tmFTRCCLUCCLUCCuoR9AIQbBk0AhB0AhB0AhBuGLQCEHQCEHQCEHdHyPUHzvYDBDUDCXxAwIgCvQAAiAKiAfUCBzQCBzQCBxyFgAAAHKKAAAAcowAAABzAQAAAEByFAAAAHK0AAAAcrQAAACWAgAAc0MAAAD4gACAAIAAgACAANgEPNAEPOAVJYBO8AQEBQrwAAQFCvAABAUK8AAEBQrwAAQFCvAABAUK8AAEBQrwAAQFCvAABAUKchYAAABytAAAAGMAAAAAAAAAAAAAAAADAAAAAAAAAPMoAAAAhwCXAGUAWgFkAFoCZAFaA2QCWgRkBYgAZgFkBIQJWgWIAHgBWgZTACkG2g5Ecm9wQ29uc3RyYWludHozUmVwcmVzZW50IGFuIEFMVEVSIFRBQkxFIERST1AgQ09OU1RSQUlOVCBzdGF0ZW1lbnQu2g9kcm9wX2NvbnN0cmFpbnRGYwMAAAAAAAAAAAAAAAUAAAALAAAA85QAAACVAZcAfAJ8AF8AAAAAAAAAAAACAHQDAAAAAAAAAAAAAHQEAAAAAAAAAAAAAHwApgIAAKsCAAAAAAAAAABqAwAAAAAAAAAAfAFmAWkAfAOkAY4BAQB0CQAAAAAAAAAAAABqBQAAAAAAAAAAfABqBgAAAAAAAAAApgEAAKsBAAAAAAAAAAB8AV8HAAAAAAAAAABkAFMAch8AAAApCHKRAAAAcokAAAByuwAAAHJrAAAAcgsAAABytwAAAHKDAAAAcrgAAAApBXIRAAAAcoAAAABykQAAAHITAAAAclgAAABzBQAAACAgICCAchQAAAByawAAAHoXRHJvcENvbnN0cmFpbnQuX19pbml0X1+nAgAAc1AAAAD4gADYFx6IBIwM2AgsjQWNbphk0Qgj1Agj1AgsqFfQCDvQCDu4AtAIO9AIO9AIO90fI9QfO9gMENQMJfEDAiAK9AACIAqIB9QIHNAIHNAIHHIWAAAAqQFGcooAAAByjAAAAHMBAAAAQHIUAAAAcrsAAAByuwAAAKICAABzSAAAAPiAAIAAgACAAIAA2AQ90AQ94BUmgE7wBAUFCvAABQUK8AAFBQrwAAUFCvAABQUK8AAFBQrwAAUFCvAABQUK8AAFBQrwAAUFCnIWAAAAcrsAAABjAAAAAAAAAAAAAAAAAQAAAAAAAADzFgAAAJcAZQBaAWQAWgJkAVoDZAJaBGQDUwApBNoPU2V0VGFibGVDb21tZW50eipSZXByZXNlbnQgYSBDT01NRU5UIE9OIFRBQkxFIElTIHN0YXRlbWVudC7aEXNldF90YWJsZV9jb21tZW50TnKfAAAAchoAAAByFgAAAHIUAAAAcsAAAABywAAAAK8CAABzGQAAAIAAgACAAIAAgADYBDTQBDTgFSiAToBOgE5yFgAAAHLAAAAAYwAAAAAAAAAAAAAAAAEAAAAAAAAA8xYAAACXAGUAWgFkAFoCZAFaA2QCWgRkA1MAKQTaEERyb3BUYWJsZUNvbW1lbnR6ZlJlcHJlc2VudCBhIENPTU1FTlQgT04gVEFCTEUgJycgc3RhdGVtZW50LgoKICAgIE5vdGUgdGhpcyB2YXJpZXMgYSBsb3QgYWNyb3NzIGRhdGFiYXNlIGJhY2tlbmRzLgoKICAgINoSZHJvcF90YWJsZV9jb21tZW50TnKfAAAAchoAAAByFgAAAHIUAAAAcsMAAABywwAAALUCAABzHwAAAIAAgACAAIAAgADwAgQFCPAABAUI8AwAFiqAToBOgE5yFgAAAHLDAAAAYwAAAAAAAAAAAAAAAAEAAAAAAAAA8xYAAACXAGUAWgFkAFoCZAFaA2QCWgRkA1MAKQTaEFNldENvbHVtbkNvbW1lbnR6K1JlcHJlc2VudCBhIENPTU1FTlQgT04gQ09MVU1OIElTIHN0YXRlbWVudC7aEnNldF9jb2x1bW5fY29tbWVudE5ynwAAAHIaAAAAchYAAAByFAAAAHLGAAAAcsYAAAC/AgAAcxkAAACAAIAAgACAAIAA2AQ10AQ14BUpgE6AToBOchYAAAByxgAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMWAAAAlwBlAFoBZABaAmQBWgNkAloEZANTACkE2hFEcm9wQ29sdW1uQ29tbWVudHowUmVwcmVzZW50IGEgQ09NTUVOVCBPTiBDT0xVTU4gSVMgTlVMTCBzdGF0ZW1lbnQu2hNkcm9wX2NvbHVtbl9jb21tZW50TnKfAAAAchoAAAByFgAAAHIUAAAAcskAAAByyQAAAMUCAABzGQAAAIAAgACAAIAAgADYBDrQBDrgFSqAToBOgE5yFgAAAHLJAAAAYwAAAAAAAAAAAAAAAAEAAAAAAAAA8xQAAACXAGUAWgFkAFoCZAGEAFoDZAJTACkD2gdERExCYXNlYwIAAAAAAAAAAAAAAAIAAAADAAAA8xQAAACXAHwBfABfAAAAAAAAAAAAZABTAHIfAAAAKQFyIQAAACkCchEAAAByIQAAAHMCAAAAICByFAAAAHJrAAAAehBERExCYXNlLl9faW5pdF9fzAIAAHMNAAAAgADYGiSIBIwPiA+ID3IWAAAATikEchcAAAByGAAAAHIZAAAAcmsAAAByGgAAAHIWAAAAchQAAAByzAAAAHLMAAAAywIAAHMjAAAAgACAAIAAgACAAPACAQUl8AABBSXwAAEFJfAAAQUl8AABBSVyFgAAAHLMAAAAYwAAAAAAAAAAAAAAAAMAAAAAAAAA81YAAACHAJcAZQBaAWQAWgIJAGQLiABmAWQDhAlaA2QEhABaBGQFhABaBWQGhABaBgkACQAJAGQMZAeEAVoHZAiEAFoIZA1kCYQBWglkCoQAWgqIAHgBWgtTACkO2g9TY2hlbWFHZW5lcmF0b3JGTmMFAAAAAAAAAAAAAAAFAAAACwAAAPOaAAAAlQGXAAIAdAEAAAAAAAAAAAAAdAIAAAAAAAAAAAAAfACmAgAAqwIAAAAAAAAAAGoCAAAAAAAAAAB8AmYBaQB8BaQBjgEBAHwDfABfAwAAAAAAAAAAfAR8AF8EAAAAAAAAAAB8AWoFAAAAAAAAAAB8AF8GAAAAAAAAAAB8AXwAXwcAAAAAAAAAAGkAfABfCAAAAAAAAAAAZABTAHIfAAAAKQlyiQAAAHLPAAAAcmsAAADaCmNoZWNrZmlyc3TaBnRhYmxlc9oTaWRlbnRpZmllcl9wcmVwYXJlctoIcHJlcGFyZXJyEgAAANoEbWVtb6kHchEAAAByEgAAAHIhAAAActEAAABy0gAAANoGa3dhcmdzclgAAABzBwAAACAgICAgIIByFAAAAHJrAAAAehhTY2hlbWFHZW5lcmF0b3IuX19pbml0X1/RAgAAc1QAAAD4gADwBgAJLo0FjW+YdNEIJNQIJNQILahq0AhD0AhDuEbQCEPQCEPQCEPYGiSIBIwP2BYciASMC9gYH9QYM4gEjA3YFx6IBIwM2BQWiASMCYgJiAlyFgAAAGMCAAAAAAAAAAAAAAAFAAAAAwAAAPMMAQAAlwB8AGoAAAAAAAAAAACgAQAAAAAAAAAAAAAAAAAAAAAAAAAAfAFqAgAAAAAAAAAApgEAAKsBAAAAAAAAAAABAHwAagMAAAAAAAAAAKAEAAAAAAAAAAAAAAAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAAfQJ8AnIafABqAAAAAAAAAAAAoAEAAAAAAAAAAAAAAAAAAAAAAAAAAHwCpgEAAKsBAAAAAAAAAAABAHwAagUAAAAAAAAAAAwAcCd8AGoAAAAAAAAAAACgBgAAAAAAAAAAAAAAAAAAAAAAAAAAfABqAwAAAAAAAAAAfAFqAgAAAAAAAAAAfAKsAaYDAACrAwAAAAAAAAAADABTAKkCTikB2gZzY2hlbWGpB3ISAAAA2hN2YWxpZGF0ZV9pZGVudGlmaWVyckMAAAByIQAAANoRc2NoZW1hX2Zvcl9vYmplY3Ry0QAAANoJaGFzX3RhYmxlqQNyEQAAANoFdGFibGXaEGVmZmVjdGl2ZV9zY2hlbWFzAwAAACAgIHIUAAAA2hFfY2FuX2NyZWF0ZV90YWJsZXohU2NoZW1hR2VuZXJhdG9yLl9jYW5fY3JlYXRlX3RhYmxl2wIAAHOMAAAAgADYCAyMDNcIKNIIKKgVrBrRCDTUCDTQCDTYGx+cP9cbPNIbPLhV0RtD1BtD0AgY2Asb8AABCT/YDBCMTNcMLNIMLNAtPdEMPtQMPtAMPtgTF5Q/0A8i8AACEAqoJKws1ypA0ipA2AwQjE+YVZxa0DBA8AMAK0EB8QACKwr0AAIrCvAAAicK8AACCQpyFgAAAGMCAAAAAAAAAAAAAAAFAAAAAwAAAPPYAAAAlwB8AGoAAAAAAAAAAACgAQAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAH0CfABqAgAAAAAAAAAAagMAAAAAAAAAAG9EfABqAgAAAAAAAAAAagQAAAAAAAAAAAwAcwh8AWoFAAAAAAAAAAAMAG8vfABqBgAAAAAAAAAADABwJ3wAagIAAAAAAAAAAKAHAAAAAAAAAAAAAAAAAAAAAAAAAAB8AGoAAAAAAAAAAAB8AWoIAAAAAAAAAAB8AqwBpgMAAKsDAAAAAAAAAAAMAFMActkAAACpCXIhAAAAct0AAAByEgAAANoSc3VwcG9ydHNfc2VxdWVuY2Vz2hJzZXF1ZW5jZXNfb3B0aW9uYWzaCG9wdGlvbmFsctEAAADaDGhhc19zZXF1ZW5jZXJDAAAAqQNyEQAAANoIc2VxdWVuY2Vy4QAAAHMDAAAAICAgchQAAADaFF9jYW5fY3JlYXRlX3NlcXVlbmNleiRTY2hlbWFHZW5lcmF0b3IuX2Nhbl9jcmVhdGVfc2VxdWVuY2XkAgAAc30AAACAANgbH5w/1xs80hs8uFjRG0bUG0bQCBjgDxOMfNQPLvAACBAK2BEVlBzUETDQDTDQDUm4CNQ4SdA0SfAABg0O4BQYlE/QECPwAAMREtgXG5R81xcw0hcw2BQYlE+gWKRd0DtL8AMAGDHxAAIYEvQAAhgS8AACFBLwCQgJCnIWAAAAYwIAAAAAAAAAAAAAAAcAAAADAAAA82ICAACHAJcAiQBqAAAAAAAAAAAAgQiJAGoAAAAAAAAAAAB9Am4mdAMAAAAAAAAAAAAAfAFqAAAAAAAAAAAAoAIAAAAAAAAAAAAAAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAApgEAAKsBAAAAAAAAAAB9AnQHAAAAAAAAAAAAAIgAZgFkAYQIfAJEAKYAAACrAAAAAAAAAAAApgEAAKsBAAAAAAAAAAB9A4gAZgFkAoQIfAFqBAAAAAAAAAAAoAIAAAAAAAAAAAAAAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAARACmAAAAqwAAAAAAAAAAAH0EZAOEAHwDRACmAAAAqwAAAAAAAAAAAH0FfAFqBQAAAAAAAAAAoAYAAAAAAAAAAAAAAAAAAAAAAAAAAHwBiQBqBwAAAAAAAAAAfAWJAGoIAAAAAAAAAACJAKwEpgUAAKsFAAAAAAAAAAABAHwERABdGX0GiQCgCQAAAAAAAAAAAAAAAAAAAAAAAAAAfAZkBawGpgIAAKsCAAAAAAAAAAABAIwafANEAF07XAIAAH0HfQh8B4EaiQCgCQAAAAAAAAAAAAAAAAAAAAAAAAAAfAdkBXwIZAWsB6YEAACrBAAAAAAAAAAAAQCMIXwIRABdF30JiQCgCQAAAAAAAAAAAAAAAAAAAAAAAAAAfAmmAQAAqwEAAAAAAAAAAAEAjBiMPHwBagUAAAAAAAAAAKAKAAAAAAAAAAAAAAAAAAAAAAAAAAB8AYkAagcAAAAAAAAAAHwFiQBqCAAAAAAAAAAAiQCsBKYFAACrBQAAAAAAAAAAAQBkAFMAKQhOYwEAAAAAAAAAAAAAAAUAAAATAAAA8z4AAACVAZcAZwB8AF0ZfQGJAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAArxd8AZECjBpTAHIaAAAAKQFy4gAAAKkDcnMAAADaAXRyEQAAAHMDAAAAICCAchQAAABydQAAAHoyU2NoZW1hR2VuZXJhdG9yLnZpc2l0X21ldGFkYXRhLjxsb2NhbHM+LjxsaXN0Y29tcD74AgAAcywAAAD4gADQDDzQDDzQDDyQMaAk1yI40iI4uBHRIjvUIjvQDDyIUdAMPNAMPNAMPHIWAAAAYwEAAAAAAAAAAAAAAAUAAAATAAAA80wAAACVAZcAZwB8AF0gfQF8AWoAAAAAAAAAAACtCYkCoAEAAAAAAAAAAAAAAAAAAAAAAAAAAHwBpgEAAKsBAAAAAAAAAACvHnwBkQKMIVMAch8AAAApAnKZAAAAcusAAACpA3JzAAAAclwAAAByEQAAAHMDAAAAICCAchQAAABydQAAAHoyU2NoZW1hR2VuZXJhdG9yLnZpc2l0X21ldGFkYXRhLjxsb2NhbHM+LjxsaXN0Y29tcD77AgAAcz4AAAD4gADwAAQUCvAABBQK8AAEFArgEBHYDxCMeNAPH6BE1yQ90iQ9uGHRJEDUJEDQDx/wBQANDuAPH9APH9APH3IWAAAAYwEAAAAAAAAAAAAAAAQAAAATAAAA8xwAAACXAGcAfABdCVwCAAB9AX0CfAGuB3wBkQKMClMAch8AAAByGgAAAKkDcnMAAABy7wAAANoDZmtzcwMAAAAgICByFAAAAHJ1AAAAejJTY2hlbWFHZW5lcmF0b3IudmlzaXRfbWV0YWRhdGEuPGxvY2Fscz4uPGxpc3Rjb21wPgEDAADzHQAAAIAA0BtK0BtK0BtKoSigMaBjuEG4TZhBuE24TbhNchYAAACpA3LSAAAActEAAADaC19kZGxfcnVubmVyVCkB2gljcmVhdGVfb2spA3L4AAAAcpsAAADaFl9pc19tZXRhZGF0YV9vcGVyYXRpb24pC3LSAAAAckUAAADaBnZhbHVlc9obc29ydF90YWJsZXNfYW5kX2NvbnN0cmFpbnRz2gpfc2VxdWVuY2Vz2ghkaXNwYXRjaNoNYmVmb3JlX2NyZWF0ZXIhAAAActEAAADaD3RyYXZlcnNlX3NpbmdsZdoMYWZ0ZXJfY3JlYXRlKQpyEQAAANoIbWV0YWRhdGFy0gAAANoKY29sbGVjdGlvbtoIc2VxX2NvbGzaEGV2ZW50X2NvbGxlY3Rpb27aA3NlcXLgAAAA2gRma2Nz2gNma2NzCgAAAGAgICAgICAgICByFAAAANoOdmlzaXRfbWV0YWRhdGF6HlNjaGVtYUdlbmVyYXRvci52aXNpdF9tZXRhZGF0YfECAABztgEAAPiAANgLD4w70Asi2BUZlFuIRohG5RUZmCicL9caMNIaMNEaMtQaMtEVM9QVM4hG5RUw2Aw80Aw80Aw80Aw8mAbQDDzRDDzUDDzxAwIWCvQAAhYKiArwCAQUCvAABBQK8AAEFArwAAQUCuAVHdQVKNcVL9IVL9EVMdQVMfAFBBQK8QAEFAr0AAQUCogI8AwAHEsB0BtKqGrQG0rRG0rUG0rQCBjYCBDUCBnXCCfSCCfYDBTYDBCMT9gTI9gXG5R/2Bgc8AsACSjxAAYJCvQABgkK8AAGCQrwEAAUHPAAAQk28AABCTaIQ9gMENcMINIMIKATsATQDCDRDDXUDDXQDDXQDDXgGyXwAAoJLvAACgkuiUuIRZA02A8U0A8g2BAU1xAk0hAk2BQZ2B4i2DQ42Csv8AkAESXxAAUREvQABRES8AAFERLwAAUREvAOABwg8AABES7wAAERLpBD2BQY1xQo0hQoqBPRFC3UFC3QFC3QFC3wAwERLvAGAAkR1AgZ1wgm0ggm2AwU2AwQjE/YEyPYFxuUf9gYHPALAAkn8QAGCQr0AAYJCvAABgkK8AAGCQrwAAYJCnIWAAAAYwUAAAAAAAAAAAAAAAcAAAADAAAA8/oCAACXAHwCcxd8AKAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAAcwJkAFMAfAFqAQAAAAAAAAAAoAIAAAAAAAAAAAAAAAAAAAAAAAAAAHwBfABqAwAAAAAAAAAAfABqBAAAAAAAAAAAfAB8BKwBpgUAAKsFAAAAAAAAAAABAHwBagUAAAAAAAAAAEQAXSN9BXwFagYAAAAAAAAAAIEafACgBwAAAAAAAAAAAAAAAAAAAAAAAAAAfAVqBgAAAAAAAAAApgEAAKsBAAAAAAAAAAABAIwkfABqCAAAAAAAAAAAagkAAAAAAAAAAHMCZAB9A3wAagMAAAAAAAAAAKAKAAAAAAAAAAAAAAAAAAAAAAAAAAB0FwAAAAAAAAAAAAB8AXwDrAKmAgAAqwIAAAAAAAAAAKYBAACrAQAAAAAAAAAAAQB0GQAAAAAAAAAAAAB8AWQDpgIAAKsCAAAAAAAAAAByH3wBag0AAAAAAAAAAEQAXRd9BnwAoAcAAAAAAAAAAAAAAAAAAAAAAAAAAHwGpgEAAKsBAAAAAAAAAAABAIwYfABqCAAAAAAAAAAAag4AAAAAAAAAAHJyfABqCAAAAAAAAAAAag8AAAAAAAAAAHNmfAFqEAAAAAAAAAAAgSd8AGoDAAAAAAAAAACgCgAAAAAAAAAAAAAAAAAAAAAAAAAAdCMAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAKYBAACrAQAAAAAAAAAAAQB8AWoFAAAAAAAAAABEAF0wfQV8BWoQAAAAAAAAAACBJ3wAagMAAAAAAAAAAKAKAAAAAAAAAAAAAAAAAAAAAAAAAAB0JQAAAAAAAAAAAAB8BaYBAACrAQAAAAAAAAAApgEAAKsBAAAAAAAAAAABAIwxfAFqAQAAAAAAAAAAoBMAAAAAAAAAAAAAAAAAAAAAAAAAAHwBfABqAwAAAAAAAAAAfABqBAAAAAAAAAAAfAB8BKwBpgUAAKsFAAAAAAAAAAABAGQAUwApBE6pA3LRAAAAcvcAAABy+QAAACkBcpsAAADaB2luZGV4ZXMpFHLiAAAAcv0AAABy/gAAAHIhAAAActEAAABymgAAANoHZGVmYXVsdHL/AAAAchIAAADaDnN1cHBvcnRzX2FsdGVycicAAABylAAAANoHaGFzYXR0cnILAQAA2hFzdXBwb3J0c19jb21tZW50c9oPaW5saW5lX2NvbW1lbnRz2gdjb21tZW50csAAAAByxgAAAHIAAQAAKQdyEQAAAHLgAAAAcvgAAABymwAAAHL5AAAAcpkAAADaBWluZGV4cwcAAAAgICAgICAgchQAAADaC3Zpc2l0X3RhYmxlehtTY2hlbWFHZW5lcmF0b3IudmlzaXRfdGFibGUhAwAAc8MBAACAAPAOABAZ8AABCROgFNchN9IhN7gF0SE+1CE+8AABCRPYDBKIRuAIDYwO1wgk0ggk2AwR2AwQjE/YFxuUf9gYHNgjOfALAAkl8QAGCQr0AAYJCvAABgkK8BAAFxyUbfAAAgk18AACCTWIRtgPFYx+0A8p2BAU1xAk0hAkoFakXtEQNNQQNNAQNPjgDxOMfNQPKvAAAgkz4C4y0Awr4AgMjA/XCB/SCB/lDBfYEBXgFDPwBwQNDvEABA0O9AAEDQ7xBQgJCvQACAkK8AAICQr1FAAME5A1mCnRCyTUCyTwAAIJLNgZHpwd8AABDSzwAAENLJAF2BAU1xAk0hAkoFXRECvUECvQECvQECvgCw+MPNQLKfAABglGAbAktCzUMk7wAAYJRgHYDxSMfdAPKNgQFJQP1xAn0hAnrQ+4BdEoPtQoPtEQP9QQP9AQP+AaH5wt8AACDUYB8AACDUYBkAbYExmUPtATLdgUGJRP1xQr0hQr1Sw8uFbRLETULETRFEXUFEXQFEX44AgNjA7XCCPSCCPYDBHYDBCMT9gXG5R/2Bgc2CM58AsACSTxAAYJCvQABgkK8AAGCQrwAAYJCvAABgkKchYAAABjAgAAAAAAAAAAAAAABQAAAAMAAADzcAAAAJcAfABqAAAAAAAAAAAAagEAAAAAAAAAAHMCZABTAHwAagIAAAAAAAAAAKADAAAAAAAAAAAAAAAAAAAAAAAAAAB0CQAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAApgEAAKsBAAAAAAAAAAABAGQAUwByHwAAACkFchIAAAByDQEAAHIhAAAAcicAAABytAAAAKkCchEAAADaCmNvbnN0cmFpbnRzAgAAACAgchQAAADaHHZpc2l0X2ZvcmVpZ25fa2V5X2NvbnN0cmFpbnR6LFNjaGVtYUdlbmVyYXRvci52aXNpdF9mb3JlaWduX2tleV9jb25zdHJhaW50WQMAAHM4AAAAgADYDxOMfNQPKvAAAQkT2AwSiEbYCAyMD9cIH9IIH6UNqGrRIDnUIDnRCDrUCDrQCDrQCDrQCDpyFgAAAGMDAAAAAAAAAAAAAAAFAAAAAwAAAPOGAAAAlwB8AnMXfACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAHMCZABTAHwAagEAAAAAAAAAAKACAAAAAAAAAAAAAAAAAAAAAAAAAAB0BwAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAApgEAAKsBAAAAAAAAAAABAGQAUwByHwAAACkEcusAAAByIQAAAHInAAAAcqgAAAApA3IRAAAAcuoAAABy+AAAAHMDAAAAICAgchQAAADaDnZpc2l0X3NlcXVlbmNleh5TY2hlbWFHZW5lcmF0b3IudmlzaXRfc2VxdWVuY2VeAwAAc0gAAACAANgPGPAAAQkToBTXITrSITq4ONEhRNQhRPAAAQkT2AwSiEbYCAyMD9cIH9IIH6UOqHjRIDjUIDjRCDnUCDnQCDnQCDnQCDlyFgAAAGMCAAAAAAAAAAAAAAAFAAAAAwAAAPNUAAAAlwB8AGoAAAAAAAAAAACgAQAAAAAAAAAAAAAAAAAAAAAAAAAAdAUAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAKYBAACrAQAAAAAAAAAAAQBkAFMAch8AAAApA3IhAAAAcicAAAByrgAAAKkCchEAAAByEgEAAHMCAAAAICByFAAAANoLdmlzaXRfaW5kZXh6G1NjaGVtYUdlbmVyYXRvci52aXNpdF9pbmRleGMDAABzJgAAAIAA2AgMjA/XCB/SCB+lC6hF0SAy1CAy0Qgz1Agz0Agz0Agz0AgzchYAAACpAkZOKQNGTkZyvgAAACkMchcAAAByGAAAAHIZAAAAcmsAAABy4gAAAHLrAAAAcggBAAByEwEAAHIXAQAAchkBAAByHAEAAHKLAAAAcowAAABzAQAAAEByFAAAAHLPAAAAcs8AAADQAgAAc8AAAAD4gACAAIAAgACAAOA8QPADCAUX8AAIBRfwAAgFF/AACAUX8AAIBRfwAAgFF/AUBwUK8AAHBQrwAAcFCvASCwUK8AALBQrwAAsFCvAaLgUK8AAuBQrwAC4FCvBmAQATGNgoLNgfJPALNgUK8AA2BQrwADYFCvAANgUK8HABAwU78AADBTvwAAMFO/AKAwU68AADBTrwAAMFOvAAAwU68AoBBTTwAAEFNPAAAQU08AABBTTwAAEFNPAAAQU08AABBTRyFgAAAHLPAAAAYwAAAAAAAAAAAAAAAAMAAAAAAAAA81YAAACHAJcAZQBaAWQAWgIJAGQLiABmAWQDhAlaA2QEhABaBGQFhABaBWQGhABaBmQHhABaB2QBZAFnAGYDZAiEAVoIZAmEAFoJZAxkCoQBWgqIAHgBWgtTACkN2g1TY2hlbWFEcm9wcGVyRk5jBQAAAAAAAAAAAAAABQAAAAsAAADzmgAAAJUBlwACAHQBAAAAAAAAAAAAAHQCAAAAAAAAAAAAAHwApgIAAKsCAAAAAAAAAABqAgAAAAAAAAAAfAJmAWkAfAWkAY4BAQB8A3wAXwMAAAAAAAAAAHwEfABfBAAAAAAAAAAAfAFqBQAAAAAAAAAAfABfBgAAAAAAAAAAfAF8AF8HAAAAAAAAAABpAHwAXwgAAAAAAAAAAGQAUwByHwAAACkJcokAAAByHwEAAHJrAAAActEAAABy0gAAAHLTAAAActQAAAByEgAAAHLVAAAActYAAABzBwAAACAgICAgIIByFAAAAHJrAAAAehZTY2hlbWFEcm9wcGVyLl9faW5pdF9faAMAAHNUAAAA+IAA8AYACSyNBY1tmFTRCCLUCCLUCCuoStAIQdAIQbgm0AhB0AhB0AhB2BokiASMD9gWHIgEjAvYGB/UGDOIBIwN2BceiASMDNgUFogEjAmICYgJchYAAABjAgAAAAAAAAAAAAAADwAAAAMAAADzkgQAAIcAlwCJAGoAAAAAAAAAAACBCIkAagAAAAAAAAAAAH0CbiZ0AwAAAAAAAAAAAAB8AWoAAAAAAAAAAACgAgAAAAAAAAAAAAAAAAAAAAAAAAAApgAAAKsAAAAAAAAAAACmAQAAqwEAAAAAAAAAAH0CCQCIAGYBZAGECHwCRACmAAAAqwAAAAAAAAAAAH0DdAMAAAAAAAAAAAAAdAcAAAAAAAAAAAAAdAkAAAAAAAAAAAAAfAOIAGYBZAKECKwDpgIAAKsCAAAAAAAAAACmAQAAqwEAAAAAAAAAAKYBAACrAQAAAAAAAAAAfQRu7iMAdAoAAAAAAAAAAAAAagYAAAAAAAAAACQActx9BYkAagcAAAAAAAAAAGoIAAAAAAAAAABzU3QTAAAAAAAAAAAAAGoKAAAAAAAAAABkBGQFoAsAAAAAAAAAAAAAAAAAAAAAAAAAAHQZAAAAAAAAAAAAAGQGhAB8BWoNAAAAAAAAAABEAKYAAACrAAAAAAAAAAAApgEAAKsBAAAAAAAAAACmAQAAqwEAAAAAAAAAAHoGAACmAQAAqwEAAAAAAAAAAAEAZAeEAHwDRACmAAAAqwAAAAAAAAAAAH0EbnN0EwAAAAAAAAAAAABqDgAAAAAAAAAAdAsAAAAAAAAAAAAAagYAAAAAAAAAAHwFag8AAAAAAAAAAGQIGQAAAAAAAAAAAHwFag0AAAAAAAAAAHwFahAAAAAAAAAAAGQJZAWgCwAAAAAAAAAAAAAAAAAAAAAAAAAAdBkAAAAAAAAAAAAAZAqEAHwFag0AAAAAAAAAAEQApgAAAKsAAAAAAAAAAACmAQAAqwEAAAAAAAAAAKYBAACrAQAAAAAAAAAAegYAAKwLpgQAAKsEAAAAAAAAAAB8BawMpgIAAKsCAAAAAAAAAAABAFkAZAB9BX4FbghkAH0FfgV3AXcAeANZAHcBiABmAWQNhAh8AWoRAAAAAAAAAACgAgAAAAAAAAAAAAAAAAAAAAAAAAAApgAAAKsAAAAAAAAAAABEAKYAAACrAAAAAAAAAAAAfQZkDoQAfAREAKYAAACrAAAAAAAAAAAAfQd8AWoSAAAAAAAAAACgEwAAAAAAAAAAAAAAAAAAAAAAAAAAfAGJAGoUAAAAAAAAAAB8B4kAahUAAAAAAAAAAIkArA+mBQAAqwUAAAAAAAAAAAEAfAREAF07XAIAAH0IfQl8CIEaiQCgFgAAAAAAAAAAAAAAAAAAAAAAAAAAfAhkEGQQfAasEaYEAACrBAAAAAAAAAAAAQCMIXwJRABdF30KiQCgFgAAAAAAAAAAAAAAAAAAAAAAAAAAfAqmAQAAqwEAAAAAAAAAAAEAjBiMPHwGRABdIH0LiQCgFgAAAAAAAAAAAAAAAAAAAAAAAAAAfAt8C2oXAAAAAAAAAABkAHUArBKmAgAAqwIAAAAAAAAAAAEAjCF8AWoSAAAAAAAAAACgGAAAAAAAAAAAAAAAAAAAAAAAAAAAfAGJAGoUAAAAAAAAAAB8B4kAahUAAAAAAAAAAIkArA+mBQAAqwUAAAAAAAAAAAEAZABTACkTTmMBAAAAAAAAAAAAAAAFAAAAEwAAAPM+AAAAlQGXAGcAfABdGX0BiQKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAK8XfAGRAowaUwByGgAAACkB2g9fY2FuX2Ryb3BfdGFibGVy7gAAAHMDAAAAICCAchQAAABydQAAAHowU2NoZW1hRHJvcHBlci52aXNpdF9tZXRhZGF0YS48bG9jYWxzPi48bGlzdGNvbXA+eQMAAHMsAAAA+IAA0B5M0B5M0B5MoFGwRNc0SNI0SMgR0TRL1DRL0B5MmHHQHkzQHkzQHkxyFgAAAGMBAAAAAAAAAAAAAAABAAAAEwAAAPMyAAAAlQGXAIkBagAAAAAAAAAAAGoBAAAAAAAAAAByB3wAagIAAAAAAAAAAIACZAFuAWQAUwBykgAAACkDchIAAAByDQEAAHJDAAAAKQJyFgEAAHIRAAAAcwIAAAAggHIUAAAA+gg8bGFtYmRhPnouU2NoZW1hRHJvcHBlci52aXNpdF9tZXRhZGF0YS48bG9jYWxzPi48bGFtYmRhPn4DAABzKQAAAPiAANgfI5x81B868AMDNiLgGyWcP9AbMvAFADY7sFXwBgAeIvAHAAEBchYAAAApAdoJZmlsdGVyX2ZuYTQBAABDYW4ndCBzb3J0IHRhYmxlcyBmb3IgRFJPUDsgYW4gdW5yZXNvbHZhYmxlIGZvcmVpZ24ga2V5IGRlcGVuZGVuY3kgZXhpc3RzIGJldHdlZW4gdGFibGVzOiAlczsgYW5kIGJhY2tlbmQgZG9lcyBub3Qgc3VwcG9ydCBBTFRFUi4gIFRvIHJlc3RvcmUgYXQgbGVhc3QgYSBwYXJ0aWFsIHNvcnQsIGFwcGx5IHVzZV9hbHRlcj1UcnVlIHRvIEZvcmVpZ25LZXkgYW5kIEZvcmVpZ25LZXlDb25zdHJhaW50IG9iamVjdHMgaW52b2x2ZWQgaW4gdGhlIGN5Y2xlIHRvIG1hcmsgdGhlc2UgYXMga25vd24gY3ljbGVzIHRoYXQgd2lsbCBiZSBpZ25vcmVkLnJvAAAAYwEAAAAAAAAAAAAAAAMAAAATAAAA8xwAAACXAGcAfABdCX0BfAFqAAAAAAAAAAAAkQKMClMAchoAAACpAdoIZnVsbG5hbWWpAnJzAAAAcu8AAABzAgAAACAgchQAAABydQAAAHowU2NoZW1hRHJvcHBlci52aXNpdF9tZXRhZGF0YS48bG9jYWxzPi48bGlzdGNvbXA+kAMAAHMaAAAAgADQKEnQKEnQKEm4AagRrBrQKEnQKEnQKElyFgAAAGMBAAAAAAAAAAAAAAAEAAAAEwAAAPMWAAAAlwBnAHwAXQZ9AXwBZABmApECjAdTACkBchoAAAByGgAAAHIqAQAAcwIAAAAgIHIUAAAAcnUAAAB6MFNjaGVtYURyb3BwZXIudmlzaXRfbWV0YWRhdGEuPGxvY2Fscz4uPGxpc3Rjb21wPpIDAABzHAAAAIAA0B0/0B0/0B0/qCGYcaAimGfQHT/QHT/QHT9yFgAAAOkAAAAAevVDYW4ndCBzb3J0IHRhYmxlcyBmb3IgRFJPUDsgYW4gdW5yZXNvbHZhYmxlIGZvcmVpZ24ga2V5IGRlcGVuZGVuY3kgZXhpc3RzIGJldHdlZW4gdGFibGVzOiAlcy4gIFBsZWFzZSBlbnN1cmUgdGhhdCB0aGUgRm9yZWlnbktleSBhbmQgRm9yZWlnbktleUNvbnN0cmFpbnQgb2JqZWN0cyBpbnZvbHZlZCBpbiB0aGUgY3ljbGUgaGF2ZSBuYW1lcyBzbyB0aGF0IHRoZXkgY2FuIGJlIGRyb3BwZWQgdXNpbmcgRFJPUCBDT05TVFJBSU5ULmMBAAAAAAAAAAAAAAADAAAAEwAAAPMcAAAAlwBnAHwAXQl9AXwBagAAAAAAAAAAAJECjApTAHIaAAAAcigBAAByKgEAAHMCAAAAICByFAAAAHJ1AAAAejBTY2hlbWFEcm9wcGVyLnZpc2l0X21ldGFkYXRhLjxsb2NhbHM+LjxsaXN0Y29tcD6iAwAAcxoAAACAANAnSNAnSNAnSLBxqAGsCtAnSNAnSNAnSHIWAAAAKQHaA21zZykB2gVmcm9tX2MBAAAAAAAAAAAAAAAFAAAAEwAAAPM+AAAAlQGXAGcAfABdGX0BiQKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAK8XfAGRAowaUwByGgAAACkB2hJfY2FuX2Ryb3Bfc2VxdWVuY2Vy8QAAAHMDAAAAICCAchQAAABydQAAAHowU2NoZW1hRHJvcHBlci52aXNpdF9tZXRhZGF0YS48bG9jYWxzPi48bGlzdGNvbXA+qQMAAHM9AAAA+IAA8AAEFArwAAQUCvAABBQK4BAR2A8T1w8m0g8moHHRDynUDynwBwQUCtgMDfADBBQK8AAEFArwAAQUCnIWAAAAYwEAAAAAAAAAAAAAAAQAAAATAAAA8xwAAACXAGcAfABdCVwCAAB9AX0CfAGuB3wBkQKMClMAch8AAAByGgAAAHLzAAAAcwMAAAAgICByFAAAAHJ1AAAAejBTY2hlbWFEcm9wcGVyLnZpc2l0X21ldGFkYXRhLjxsb2NhbHM+LjxsaXN0Y29tcD6vAwAAcvUAAAByFgAAAHL2AAAAVCkD2gdkcm9wX29rcvkAAADaEV9pZ25vcmVfc2VxdWVuY2VzKQFyMwEAACkZctIAAAByRQAAAHL6AAAA2ghyZXZlcnNlZHL7AAAAcgoAAADaF0NpcmN1bGFyRGVwZW5kZW5jeUVycm9ychIAAAByDQEAAHILAAAA2gR3YXJucngAAADaBnNvcnRlZNoGY3ljbGVz2gZyYWlzZV9yuQAAANoFZWRnZXNy/AAAAHL9AAAA2gtiZWZvcmVfZHJvcHIhAAAActEAAABy/wAAAHKZAAAA2gphZnRlcl9kcm9wKQxyEQAAAHIBAQAActIAAADaD3Vuc29ydGVkX3RhYmxlc3ICAQAA2gRlcnIycgMBAAByBAEAAHLgAAAAcgYBAAByBwEAAHIFAQAAcwwAAABgICAgICAgICAgICByFAAAAHIIAQAAehxTY2hlbWFEcm9wcGVyLnZpc2l0X21ldGFkYXRhcgMAAHMVAwAA+IAA2AsPjDvQCyLYFRmUW4hGiEblFRmYKJwv1xow0how0Roy1Boy0RUz1BUziEbwBC8JEtgeTNAeTNAeTNAeTKgm0B5M0R5M1B5MiE/dGR3dEBjdFC/YGCfwAgMjIvAAAyMi8AADIyLwAAMjIvAFBhUW8QAGFRb0AAYVFvEDCBES9AAIERLxAwoaDvQAChoOiEqISvj1FgAQE9QPKvAAIgkS8AAiCRLwACIJEtgTF5Q81BMu8AAhDRLdEBSUCfACBxUz8BAAGByXeZJ5pRbQKEnQKEm4VLxb0ChJ0ShJ1ChJ0SFK1CFK0RdL1BdL8REIFU0B8QMKERL0AAoREvAAChES8BYAHkAB0B0/qH/QHT/RHT/UHT+QCpAK5RAUlAvdFBfUFC/YGBycCaAhnAzYGBycC9gYHJwK8AIGHSvwEAAdIZ9JmkndICbQJ0jQJ0i4RLxL0CdI0SdI1CdI0SBJ1CBJ8QMCHR70AAIdHvERCx0a8AkQFRbxABAVFvQAEBUW8CIAGx/wJRMREvEAExES9AATERLwABMREvj4+Pj4+Pj4+PAfIgkS+Pj48EgBBBQK8AAEFArwAAQUCvAABBQK4BUd1BUo1xUv0hUv0RUx1BUx8AUEFArxAAQUCvQABBQKiAjwDAAcSwHQG0qoatAbStEbStQbStAIGOAIENQIGdcIJdIIJdgMFNgMEIxP2BMj2BcblH/YGBzwCwAJJvEABgkK9AAGCQrwAAYJCvAQABwm8AAKCS7wAAoJLolLiEWQNNgPFNAPINgQFNcQJNIQJNgUGdgcINgrL9gmLvAJABEl8QAFERL0AAUREvAABRES8AAFERLwDgAcIPAAAREu8AABES6QQ9gUGNcUKNIUKKgT0RQt1BQt0BQt0BQt8AMBES7wBgAUHPAAAQlCAfAAAQlCAYhD2AwQ1wwg0gwgoBOoY6xquETQLkDQDCDRDEHUDEHQDEHQDEHgCBDUCBnXCCTSCCTYDBTYDBCMT9gTI9gXG5R/2Bgc8AsACSXxAAYJCvQABgkK8AAGCQrwAAYJCvAABgkKcxgAAAC4PEE1AME1D0UgA8IEQxJFGwPFGwVFIANjAgAAAAAAAAAAAAAABQAAAAMAAADzCgEAAJcAfABqAAAAAAAAAAAAoAEAAAAAAAAAAAAAAAAAAAAAAAAAAHwBagIAAAAAAAAAAKYBAACrAQAAAAAAAAAAAQB8AGoDAAAAAAAAAACgBAAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAH0CfAJyGnwAagAAAAAAAAAAAKABAAAAAAAAAAAAAAAAAAAAAAAAAAB8AqYBAACrAQAAAAAAAAAAAQB8AGoFAAAAAAAAAAAMAHAmfABqAAAAAAAAAAAAoAYAAAAAAAAAAAAAAAAAAAAAAAAAAHwAagMAAAAAAAAAAHwBagIAAAAAAAAAAHwCrAGmAwAAqwMAAAAAAAAAAFMActkAAABy2wAAAHLfAAAAcwMAAAAgICByFAAAAHIjAQAAeh1TY2hlbWFEcm9wcGVyLl9jYW5fZHJvcF90YWJsZdADAABzhgAAAIAA2AgMjAzXCCjSCCioFawa0Qg01Ag00Ag02BsfnD/XGzzSGzy4VdEbQ9QbQ9AIGNgLG/AAAQk/2AwQjEzXDCzSDCzQLT3RDD7UDD7QDD7YExeUP9APIvAAAhAKoGSkbNcmPNImPNgMEIxPmFWcWtAwQPADACc98QACJwr0AAInCvAAAgkKchYAAABjAgAAAAAAAAAAAAAABQAAAAMAAADz1gAAAJcAfABqAAAAAAAAAAAAoAEAAAAAAAAAAAAAAAAAAAAAAAAAAHwBpgEAAKsBAAAAAAAAAAB9AnwAagIAAAAAAAAAAGoDAAAAAAAAAABvQ3wAagIAAAAAAAAAAGoEAAAAAAAAAAAMAHMIfAFqBQAAAAAAAAAADABvLnwAagYAAAAAAAAAAAwAcCZ8AGoCAAAAAAAAAACgBwAAAAAAAAAAAAAAAAAAAAAAAAAAfABqAAAAAAAAAAAAfAFqCAAAAAAAAAAAfAKsAaYDAACrAwAAAAAAAAAAUwBy2QAAAHLkAAAAcukAAABzAwAAACAgIHIUAAAAcjEBAAB6IFNjaGVtYURyb3BwZXIuX2Nhbl9kcm9wX3NlcXVlbmNl2QMAAHN4AAAAgADYGx+cP9cbPNIbPLhY0RtG1BtG0AgY2A8TjHzUDy7wAAgQCtgRFZQc1BEw0A0w0A1JuAjUOEnQNEnwAAYNDuAUGJRP0BAj8AADERLYExeUPNcTLNITLNgUGJRPoFikXdA7S/ADABQt8QACFBL0AAIUEvAJCAkKchYAAABjAgAAAAAAAAAAAAAABQAAAAMAAADzVAAAAJcAfABqAAAAAAAAAAAAoAEAAAAAAAAAAAAAAAAAAAAAAAAAAHQFAAAAAAAAAAAAAHwBpgEAAKsBAAAAAAAAAACmAQAAqwEAAAAAAAAAAAEAZABTAHIfAAAAKQNyIQAAAHInAAAAcrEAAAByGwEAAHMCAAAAICByFAAAAHIcAQAAehlTY2hlbWFEcm9wcGVyLnZpc2l0X2luZGV45QMAAHMmAAAAgADYCAyMD9cIH9IIH6UJqCXRIDDUIDDRCDHUCDHQCDHQCDHQCDFyFgAAAGMFAAAAAAAAAAAAAAAHAAAAAwAAAPOSAQAAlwB8AnMXfACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAHMCZABTAHwBagEAAAAAAAAAAKACAAAAAAAAAAAAAAAAAAAAAAAAAAB8AXwAagMAAAAAAAAAAHwAagQAAAAAAAAAAHwAfAOsAaYFAACrBQAAAAAAAAAAAQB8AGoDAAAAAAAAAACgBQAAAAAAAAAAAAAAAAAAAAAAAAAAdA0AAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAKYBAACrAQAAAAAAAAAAAQB8AWoHAAAAAAAAAABEAF0sfQV8BWoIAAAAAAAAAACBI3wFaggAAAAAAAAAAHwEdgFyGnwAoAkAAAAAAAAAAAAAAAAAAAAAAAAAAHwFaggAAAAAAAAAAKYBAACrAQAAAAAAAAAAAQCMLXwBagEAAAAAAAAAAKAKAAAAAAAAAAAAAAAAAAAAAAAAAAB8AXwAagMAAAAAAAAAAHwAagQAAAAAAAAAAHwAfAOsAaYFAACrBQAAAAAAAAAAAQBkAFMAKQJOcgoBAAApC3IjAQAAcv0AAAByPAEAAHIhAAAActEAAAByJwAAAHKkAAAAcpoAAAByDAEAAHL/AAAAcj0BAAApBnIRAAAAcuAAAAByMwEAAHL5AAAAcjQBAABymQAAAHMGAAAAICAgICAgchQAAAByEwEAAHoZU2NoZW1hRHJvcHBlci52aXNpdF90YWJsZegDAABz9AAAAIAA8A4AEBfwAAEJE5h01x8z0h8zsEXRHzrUHzrwAAEJE9gMEohG4AgNjA7XCCLSCCLYDBHYDBCMT9gXG5R/2Bgc2CM58AsACSPxAAYJCvQABgkK8AAGCQrwEAAJDYwP1wgf0ggfpQmoJdEgMNQgMNEIMdQIMdAIMfAOABcclG3wAAUJNfAABQk1iEbgEBaUDtAQKtgUGpRO0Co70BQ70BQ74BAU1xAk0hAkoFakXtEQNNQQNNAQNPjgCA2MDtcIIdIIIdgMEdgMEIxP2BcblH/YGBzYIznwCwAJIvEABgkK9AAGCQrwAAYJCvAABgkK8AAGCQpyFgAAAGMCAAAAAAAAAAAAAAAFAAAAAwAAAPNwAAAAlwB8AGoAAAAAAAAAAABqAQAAAAAAAAAAcwJkAFMAfABqAgAAAAAAAAAAoAMAAAAAAAAAAAAAAAAAAAAAAAAAAHQJAAAAAAAAAAAAAHwBpgEAAKsBAAAAAAAAAACmAQAAqwEAAAAAAAAAAAEAZABTAHIfAAAAKQVyEgAAAHINAQAAciEAAAByJwAAAHK7AAAAchUBAABzAgAAACAgchQAAAByFwEAAHoqU2NoZW1hRHJvcHBlci52aXNpdF9mb3JlaWduX2tleV9jb25zdHJhaW50EAQAAHM4AAAAgADYDxOMfNQPKvAAAQkT2AwSiEbYCAyMD9cIH9IIH6UOqHrRIDrUIDrRCDvUCDvQCDvQCDvQCDtyFgAAAGMDAAAAAAAAAAAAAAAFAAAAAwAAAPOGAAAAlwB8AnMXfACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAGmAQAAqwEAAAAAAAAAAHMCZABTAHwAagEAAAAAAAAAAKACAAAAAAAAAAAAAAAAAAAAAAAAAAB0BwAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAApgEAAKsBAAAAAAAAAAABAGQAUwByHwAAACkEcjEBAAByIQAAAHInAAAAcqsAAAApA3IRAAAAcuoAAAByMwEAAHMDAAAAICAgchQAAAByGQEAAHocU2NoZW1hRHJvcHBlci52aXNpdF9zZXF1ZW5jZRUEAABzSAAAAIAA4A8W8AABCROYdNcfNtIfNrB40R9A1B9A8AABCRPYDBKIRtgIDIwP1wgf0ggfpQyoWNEgNtQgNtEIN9QIN9AIN9AIN9AIN3IWAAAAch0BAAByvgAAACkMchcAAAByGAAAAHIZAAAAcmsAAAByCAEAAHIjAQAAcjEBAAByHAEAAHITAQAAchcBAAByGQEAAHKLAAAAcowAAABzAQAAAEByFAAAAHIfAQAAch8BAABnAwAAc8MAAAD4gACAAIAAgACAAOA8QPADCAUX8AAIBRfwAAgFF/AACAUX8AAIBRfwAAgFF/AUXAEFCvAAXAEFCvAAXAEFCvB8AgcFCvAABwUK8AAHBQrwEgoFCvAACgUK8AAKBQrwGAEFMvAAAQUy8AABBTLwDAARFtgfJNgaHPALJgUK8AAmBQrwACYFCvAAJgUK8FABAwU88AADBTzwAAMFPPAKBAU48AAEBTjwAAQFOPAABAU48AAEBTjwAAQFOPAABAU48AAEBThyFgAAAHIfAQAATmMDAAAAAAAAAAAAAAAHAAAAAwAAAPNSAAAAhwGXAIkBgQaIAWYBZAKECH0DbgJkAX0DZAOEAHQBAAAAAAAAAAAAAHwAfAN8AmQErAWmBAAAqwQAAAAAAAAAAEQApgAAAKsAAAAAAAAAAABTACkGYQsKAABTb3J0IGEgY29sbGVjdGlvbiBvZiA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgIG9iamVjdHMgYmFzZWQgb24KICAgIGRlcGVuZGVuY3kuCgogICAgVGhpcyBpcyBhIGRlcGVuZGVuY3ktb3JkZXJlZCBzb3J0IHdoaWNoIHdpbGwgZW1pdCA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgCiAgICBvYmplY3RzIHN1Y2ggdGhhdCB0aGV5IHdpbGwgZm9sbG93IHRoZWlyIGRlcGVuZGVudCA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgCiAgICBvYmplY3RzLgogICAgVGFibGVzIGFyZSBkZXBlbmRlbnQgb24gYW5vdGhlciBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YKICAgIDpjbGFzczpgX3NjaGVtYS5Gb3JlaWduS2V5Q29uc3RyYWludGAKICAgIG9iamVjdHMgYXMgd2VsbCBhcyBleHBsaWNpdCBkZXBlbmRlbmNpZXMKICAgIGFkZGVkIGJ5IDptZXRoOmBfc2NoZW1hLlRhYmxlLmFkZF9pc19kZXBlbmRlbnRfb25gLgoKICAgIC4uIHdhcm5pbmc6OgoKICAgICAgICBUaGUgOmZ1bmM6YC5fc2NoZW1hLnNvcnRfdGFibGVzYCBmdW5jdGlvbiBjYW5ub3QgYnkgaXRzZWxmCiAgICAgICAgYWNjb21tb2RhdGUgYXV0b21hdGljIHJlc29sdXRpb24gb2YgZGVwZW5kZW5jeSBjeWNsZXMgYmV0d2VlbgogICAgICAgIHRhYmxlcywgd2hpY2ggYXJlIHVzdWFsbHkgY2F1c2VkIGJ5IG11dHVhbGx5IGRlcGVuZGVudCBmb3JlaWduIGtleQogICAgICAgIGNvbnN0cmFpbnRzLiBXaGVuIHRoZXNlIGN5Y2xlcyBhcmUgZGV0ZWN0ZWQsIHRoZSBmb3JlaWduIGtleXMKICAgICAgICBvZiB0aGVzZSB0YWJsZXMgYXJlIG9taXR0ZWQgZnJvbSBjb25zaWRlcmF0aW9uIGluIHRoZSBzb3J0LgogICAgICAgIEEgd2FybmluZyBpcyBlbWl0dGVkIHdoZW4gdGhpcyBjb25kaXRpb24gb2NjdXJzLCB3aGljaCB3aWxsIGJlIGFuCiAgICAgICAgZXhjZXB0aW9uIHJhaXNlIGluIGEgZnV0dXJlIHJlbGVhc2UuICAgVGFibGVzIHdoaWNoIGFyZSBub3QgcGFydAogICAgICAgIG9mIHRoZSBjeWNsZSB3aWxsIHN0aWxsIGJlIHJldHVybmVkIGluIGRlcGVuZGVuY3kgb3JkZXIuCgogICAgICAgIFRvIHJlc29sdmUgdGhlc2UgY3ljbGVzLCB0aGUKICAgICAgICA6cGFyYW1yZWY6YF9zY2hlbWEuRm9yZWlnbktleUNvbnN0cmFpbnQudXNlX2FsdGVyYCBwYXJhbWV0ZXIgbWF5IGJlCiAgICAgICAgYXBwbGllZCB0byB0aG9zZSBjb25zdHJhaW50cyB3aGljaCBjcmVhdGUgYSBjeWNsZS4gIEFsdGVybmF0aXZlbHksCiAgICAgICAgdGhlIDpmdW5jOmBfc2NoZW1hLnNvcnRfdGFibGVzX2FuZF9jb25zdHJhaW50c2AgZnVuY3Rpb24gd2lsbAogICAgICAgIGF1dG9tYXRpY2FsbHkgcmV0dXJuIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIGluIGEgc2VwYXJhdGUKICAgICAgICBjb2xsZWN0aW9uIHdoZW4gY3ljbGVzIGFyZSBkZXRlY3RlZCBzbyB0aGF0IHRoZXkgbWF5IGJlIGFwcGxpZWQKICAgICAgICB0byBhIHNjaGVtYSBzZXBhcmF0ZWx5LgoKICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMy4xNyAtIGEgd2FybmluZyBpcyBlbWl0dGVkIHdoZW4KICAgICAgICAgICA6ZnVuYzpgX3NjaGVtYS5zb3J0X3RhYmxlc2AgY2Fubm90IHBlcmZvcm0gYSBwcm9wZXIgc29ydCBkdWUgdG8KICAgICAgICAgICBjeWNsaWNhbCBkZXBlbmRlbmNpZXMuICBUaGlzIHdpbGwgYmUgYW4gZXhjZXB0aW9uIGluIGEgZnV0dXJlCiAgICAgICAgICAgcmVsZWFzZS4gIEFkZGl0aW9uYWxseSwgdGhlIHNvcnQgd2lsbCBjb250aW51ZSB0byByZXR1cm4KICAgICAgICAgICBvdGhlciB0YWJsZXMgbm90IGludm9sdmVkIGluIHRoZSBjeWNsZSBpbiBkZXBlbmRlbmN5IG9yZGVyCiAgICAgICAgICAgd2hpY2ggd2FzIG5vdCB0aGUgY2FzZSBwcmV2aW91c2x5LgoKICAgIDpwYXJhbSB0YWJsZXM6IGEgc2VxdWVuY2Ugb2YgOmNsYXNzOmBfc2NoZW1hLlRhYmxlYCBvYmplY3RzLgoKICAgIDpwYXJhbSBza2lwX2ZuOiBvcHRpb25hbCBjYWxsYWJsZSB3aGljaCB3aWxsIGJlIHBhc3NlZCBhCiAgICAgOmNsYXNzOmBfc2NoZW1hLkZvcmVpZ25LZXlgIG9iamVjdDsgaWYgaXQgcmV0dXJucyBUcnVlLCB0aGlzCiAgICAgY29uc3RyYWludCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGFzIGEgZGVwZW5kZW5jeS4gIE5vdGUgdGhpcyBpcwogICAgICoqZGlmZmVyZW50KiogZnJvbSB0aGUgc2FtZSBwYXJhbWV0ZXIgaW4KICAgICA6ZnVuYzpgLnNvcnRfdGFibGVzX2FuZF9jb25zdHJhaW50c2AsIHdoaWNoIGlzCiAgICAgaW5zdGVhZCBwYXNzZWQgdGhlIG93bmluZyA6Y2xhc3M6YF9zY2hlbWEuRm9yZWlnbktleUNvbnN0cmFpbnRgIG9iamVjdC4KCiAgICA6cGFyYW0gZXh0cmFfZGVwZW5kZW5jaWVzOiBhIHNlcXVlbmNlIG9mIDItdHVwbGVzIG9mIHRhYmxlcyB3aGljaCB3aWxsCiAgICAgYWxzbyBiZSBjb25zaWRlcmVkIGFzIGRlcGVuZGVudCBvbiBlYWNoIG90aGVyLgoKICAgIC4uIHNlZWFsc286OgoKICAgICAgICA6ZnVuYzpgLnNvcnRfdGFibGVzX2FuZF9jb25zdHJhaW50c2AKCiAgICAgICAgOmF0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AAB8AGQCrASmAwAAqwMAAAAAAAAAAKYBAACrAQAAAAAAAAAAfQlZAGQBfQp+Cm4IZAF9Cn4KdwF3AHgDWQB3AYgNZgFkC4QIfAlEAKYAAACrAAAAAAAAAAAAZAF0DwAAAAAAAAAAAACJDaYBAACrAQAAAAAAAAAAZgJnAXoAAABTACkMYe0GAABTb3J0IGEgY29sbGVjdGlvbiBvZiA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgICAvCiAgICA6Y2xhc3M6YF9zY2hlbWEuRm9yZWlnbktleUNvbnN0cmFpbnRgCiAgICBvYmplY3RzLgoKICAgIFRoaXMgaXMgYSBkZXBlbmRlbmN5LW9yZGVyZWQgc29ydCB3aGljaCB3aWxsIGVtaXQgdHVwbGVzIG9mCiAgICBgYChUYWJsZSwgW0ZvcmVpZ25LZXlDb25zdHJhaW50LCAuLi5dKWBgIHN1Y2ggdGhhdCBlYWNoCiAgICA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgIGZvbGxvd3MgaXRzIGRlcGVuZGVudCA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgCiAgICBvYmplY3RzLgogICAgUmVtYWluaW5nIDpjbGFzczpgX3NjaGVtYS5Gb3JlaWduS2V5Q29uc3RyYWludGAKICAgIG9iamVjdHMgdGhhdCBhcmUgc2VwYXJhdGUgZHVlIHRvCiAgICBkZXBlbmRlbmN5IHJ1bGVzIG5vdCBzYXRpc2ZpZWQgYnkgdGhlIHNvcnQgYXJlIGVtaXR0ZWQgYWZ0ZXJ3YXJkcwogICAgYXMgYGAoTm9uZSwgW0ZvcmVpZ25LZXlDb25zdHJhaW50IC4uLl0pYGAuCgogICAgVGFibGVzIGFyZSBkZXBlbmRlbnQgb24gYW5vdGhlciBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YKICAgIDpjbGFzczpgX3NjaGVtYS5Gb3JlaWduS2V5Q29uc3RyYWludGAgb2JqZWN0cywgZXhwbGljaXQgZGVwZW5kZW5jaWVzCiAgICBhZGRlZCBieSA6bWV0aDpgX3NjaGVtYS5UYWJsZS5hZGRfaXNfZGVwZW5kZW50X29uYCwKICAgIGFzIHdlbGwgYXMgZGVwZW5kZW5jaWVzCiAgICBzdGF0ZWQgaGVyZSB1c2luZyB0aGUgOnBhcmFtcmVmOmB+LnNvcnRfdGFibGVzX2FuZF9jb25zdHJhaW50cy5za2lwX2ZuYAogICAgYW5kL29yIDpwYXJhbXJlZjpgfi5zb3J0X3RhYmxlc19hbmRfY29uc3RyYWludHMuZXh0cmFfZGVwZW5kZW5jaWVzYAogICAgcGFyYW1ldGVycy4KCiAgICA6cGFyYW0gdGFibGVzOiBhIHNlcXVlbmNlIG9mIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAgb2JqZWN0cy4KCiAgICA6cGFyYW0gZmlsdGVyX2ZuOiBvcHRpb25hbCBjYWxsYWJsZSB3aGljaCB3aWxsIGJlIHBhc3NlZCBhCiAgICAgOmNsYXNzOmBfc2NoZW1hLkZvcmVpZ25LZXlDb25zdHJhaW50YCBvYmplY3QsCiAgICAgYW5kIHJldHVybnMgYSB2YWx1ZSBiYXNlZCBvbgogICAgIHdoZXRoZXIgdGhpcyBjb25zdHJhaW50IHNob3VsZCBkZWZpbml0ZWx5IGJlIGluY2x1ZGVkIG9yIGV4Y2x1ZGVkIGFzCiAgICAgYW4gaW5saW5lIGNvbnN0cmFpbnQsIG9yIG5laXRoZXIuICAgSWYgaXQgcmV0dXJucyBGYWxzZSwgdGhlIGNvbnN0cmFpbnQKICAgICB3aWxsIGRlZmluaXRlbHkgYmUgaW5jbHVkZWQgYXMgYSBkZXBlbmRlbmN5IHRoYXQgY2Fubm90IGJlIHN1YmplY3QKICAgICB0byBBTFRFUjsgaWYgVHJ1ZSwgaXQgd2lsbCAqKm9ubHkqKiBiZSBpbmNsdWRlZCBhcyBhbiBBTFRFUiByZXN1bHQgYXQKICAgICB0aGUgZW5kLiAgIFJldHVybmluZyBOb25lIG1lYW5zIHRoZSBjb25zdHJhaW50IGlzIGluY2x1ZGVkIGluIHRoZQogICAgIHRhYmxlLWJhc2VkIHJlc3VsdCB1bmxlc3MgaXQgaXMgZGV0ZWN0ZWQgYXMgcGFydCBvZiBhIGRlcGVuZGVuY3kgY3ljbGUuCgogICAgOnBhcmFtIGV4dHJhX2RlcGVuZGVuY2llczogYSBzZXF1ZW5jZSBvZiAyLXR1cGxlcyBvZiB0YWJsZXMgd2hpY2ggd2lsbAogICAgIGFsc28gYmUgY29uc2lkZXJlZCBh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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 19
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
annotation.cpython-311.pyc
8.78 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
base.cpython-311.pyc
33.95 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
compiler.cpython-311.pyc
156.80 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
crud.cpython-311.pyc
28.82 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ddl.cpython-311.pyc
53.22 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
default_comparator.cpython-311.pyc
13.43 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dml.cpython-311.pyc
39.22 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
elements.cpython-311.pyc
197.28 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
expression.cpython-311.pyc
9.42 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
functions.cpython-311.pyc
48.73 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
naming.cpython-311.pyc
8.92 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
operators.cpython-311.pyc
55.27 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
schema.cpython-311.pyc
210.17 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
selectable.cpython-311.pyc
171.80 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
sqltypes.cpython-311.pyc
124.29 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
type_api.cpython-311.pyc
59.47 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-311.pyc
41.21 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
visitors.cpython-311.pyc
20.17 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
4.79 KB
lrw-r--r--
2026-02-06 08:01:45
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).