REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 53.68 KB
Close
/opt/alt/python37/lib/python3.7/site-packages/future/backports/test/__pycache__/support.cpython-37.opt-1.pyc
Text
Base64
Qg0NCgAAAADNQdJb4RQBAOMAAAAAAAAAAAAAAABKAAAAQAAAAHNcCAAAZABaAGQBZAJsAW0CWgJtA1oDbQRaBG0FWgUBAGQBZANsBm0HWgcBAGQBZARsCG0JWgltCloKbQtaC20MWgxtDVoNbQ5aDgEAZAFkBWwPWg9kAWQFbBBaEGQBZAVsEVoRZAFkBWwSWhJkAWQFbBNaE2QBZAVsFFoUZAFkBWwVWhVkAWQFbBZaFmQBZAVsF1oXZAFkBWwYWhhkAWQFbBlaGWUaZRlkBoMCc7JkAWQFbBtaGWQBZAVsHFocZAFkBWwdWh1kAWQFbB5aHmQBZAVsH1ofZAFkBWwgWiB5DGQBZAVsIVohVwBuIgQAZSJrCpABcggBAAEAAQBkAWQHbCNtIVohAQBZAG4CWABkAWQFbCRaJGQBZAVsJVomZAFkBWwnWidkAWQFbChaKHkuZQdqKZABckZkAWQFbCpaKmQBZAVsK1orbhBkAWQFbCxaKmQBZAVsK1orVwBuHgQAZSJrCpABcnYBAAEAAQBkBVoqZAVaK1kAbgJYAHkMZAFkBWwtWi5XAG4aBABlImsKkAFyngEAAQABAGQFWi5ZAG4CWAB5DGQBZAVsL1ovVwBuGgQAZSJrCpABcsYBAAEAAQBkBVovWQBuAlgAeQxkAWQFbDBaMFcAbhoEAGUiawqQAXLuAQABAAEAZAVaMFkAbgJYAHkMZAFkBWwxWjFXAG4aBABlImsKkAJyFgEAAQABAGQFWjFZAG4CWAB5DGQBZAVsMloyVwBuGgQAZSJrCpACcj4BAAEAAQBkBVoyWQBuAlgAZAhkCWQKZAtkDGQNZA5kD2QQZBFkEmQTZBRkFWQWZBdkGGQZZBpkG2QcZB1kHmQfZCBkIWQiZCNkJGQlZCZkJ2QoZClkKmQrZCxkLWQuZC9kMGQxZDJkM2Q0ZDVkNmQ3ZDhkOWQ6ZDtkPGQ9ZD5kP2RAZEFkQmRDZERkRWRGZEdkSGRJZEpkS2RMZE1kTmRPZFBkUWdKWjNHAGRSZAiEAGQIZTSDA1o1RwBkU2QJhABkCWU1gwNaNkcAZFRkCoQAZAplGWo3gwNaOGUPajlk+mRWZFeEAYMBWjpk+2RZZAuEAVo7ZFpkW4QAWjxkXGRdhABaPWReZEyEAFo+ZPxkYGRIhAFaP2RhZD+EAFpAZGJaQWQFWkJkAWFDZAFhRGRYWkVkBVpGZAVhR2RjZA+EAFpIZGRkEIQAWklkZWQRhABaSmUUahagS2RmoQGQA3K0ZP1kZ2RohAFaTGRpZGqEAFpNZGtkbIQAWk5kbWRuhABaT24SZRVqUFpNZRVqUVpOZRdqUlpPZG9kEoQAWlBkcGRxhABaUWRyZBOEAFpSZHNkdIQAWlNkdWQUhABaVGUUahagS2RmoQGQBHIWZAFkBWxVWlVkAWQFbFZaVWR2ZHeEAFpXbghkeGR3hABaV2R5ZBWEAFpYZP5kemQWhAFaWWR7ZHyEAFpaZH1kF4QAWltkfmQYhABaXGR/ZBmEAFpdZIBaXmSBWl9lE2pgZRNqYWYCZIJkGoQBWmJlXmYBZINkG4QBWmNkhGSFhABaZGVkgwBaZWSGWmZkh1pnZRmgaGUvZIihAlppZRmgaGUxZImhAlpqZRmgaGUyZIqhAlprZRRqFqBLZIuhAVpsZRVqbWSLawKQBHLOZIxabm4EZI1abmSOoG9lbmUVoHChAKECWm5lFaBxoQBacmUPajlk/2SQZCGEAYMBWnNlGmUVZJGDApAFchRlD2o5ZJJkMoQAgwFadGV1ZAVmAmSTZCKEAVp2ZJRkI4QAWndklWQkhABaeGSWZJeEAFp5ZJhkJYQAWnpkmWQmhABae0cAZJpkm4QAZJtlfIMDWn2QAWQAZJxknYQBWn5lD2o5ZJ5kJ4QAgwFaf0cAZJ9kKIQAZChlfIMDWoBlB2opkAVynmQBZAVsgVqCZYJqg2qEWoVuDmQBZAVshlqGZYZqh1qFRwBkoGQphABkKWWFgwNaiEcAZKFkooQAZKJlfIMDWolHAGSjZCqEAGQqZXyDA1qKZYpli2UQaoxkpI0CWo1limUTao5lEGqPZKSNAlqQZYpli2UQao9kpI0CWpFlD2o5kAFkAWSmZDOEAYMBWpJlD2o5ZKdkqIQAgwFak2SpZCuEAFqUZKpkLYQAWpVkq2QshABalmSsZK2EAFqXZQ9qOWSuZK+EAIMBWphksGSxhABamWSyWppks1qbZRplFGS0gwKQBnJ+ZLVlmhcAWppktlqbZZpktxcAWpxkuGS5hABanWS6ZLuEAFqeZLxan2S9WqBkvmS/hABaoWTAZDGEAFqiZMFkTYQAWqNkwlqkZMNlpBQAWqVkxGWlFABapmTFZaUUAFqnZRRqqFqpZMZkNIQAWqpHAGTHZMiEAGTIZXyDA1qrkAFkAmTJZDWEAVqsZMpkNoQAWq1HAGTLZDeEAGQ3ZXyDA1quZMxkzYQAWq9kzmTPhABasGTQZD2EAFqxkAFkA2TRZNKEAVqyZNNk1IQAWrNk1WQ+hABatGTWZNeEAFq1ZNhk2YQAWrZk2mTbhABat2TcZN2EAFq4ZN5kOIQAWrmQAWQEZN9kOYQBWrpk4GThhABau2TiZOOEAFq8ZORkOoQAWr1k5WQ7hABavmTmZOeEAFq/ZOhkPIQAWsBlD2o5ZOlkQYQAgwFawWUPajlk6mRAhACDAVrCZOtk7IQAWsNk7WTuhABaxEcAZO9kQ4QAZENlJmrFasaDA1rHRwBk8GREhABkRGV8gwNayGQFYclk8WRFhABaymTyZEaEAFrLZAVhzGTzZPSEAFrNZPVkR4QAWs5lFGoWoEtkZqEBkAhyQmUPajlk9mRRhACDAVrPbg5lD2o5ZPdkUYQAgwFaz2T4ZPmEAFrQZAVTACgFAQAAendTdXBwb3J0aW5nIGRlZmluaXRpb25zIGZvciB0aGUgUHl0aG9uIHJlZ3Jlc3Npb24gdGVzdHMuCgpCYWNrcG9ydGVkIGZvciBweXRob24tZnV0dXJlIGZyb20gUHl0aG9uIDMuMyB0ZXN0L3N1cHBvcnQucHkuCukAAAAAKQTaD2Fic29sdXRlX2ltcG9ydNoIZGl2aXNpb27aDnByaW50X2Z1bmN0aW9u2hB1bmljb2RlX2xpdGVyYWxzKQHaBXV0aWxzKQbaA3N0ctoFcmFuZ2XaBG9wZW7aA2ludNoDbWFw2gRsaXN0TtoEc2tpcCkB2glzeXNjb25maWfaBUVycm9y2gpUZXN0RmFpbGVk2g5SZXNvdXJjZURlbmllZNoNaW1wb3J0X21vZHVsZdoHdmVyYm9zZdoNdXNlX3Jlc291cmNlc9oKbWF4X21lbXVzZdoWcmVjb3JkX29yaWdpbmFsX3N0ZG91dNoTZ2V0X29yaWdpbmFsX3N0ZG91dNoGdW5sb2Fk2gZ1bmxpbmvaBnJtdHJlZdoGZm9yZ2V02hNpc19yZXNvdXJjZV9lbmFibGVk2ghyZXF1aXJlc9oYcmVxdWlyZXNfZnJlZWJzZF92ZXJzaW9u2hZyZXF1aXJlc19saW51eF92ZXJzaW9u2hByZXF1aXJlc19tYWNfdmVy2hBmaW5kX3VudXNlZF9wb3J02gliaW5kX3BvcnTaDElQVjZfRU5BQkxFRNoJaXNfanl0aG9u2gZURVNURk7aBEhPU1TaCFNBVkVEQ1dE2gh0ZW1wX2N3ZNoIZmluZGZpbGXaEWNyZWF0ZV9lbXB0eV9maWxl2ghzb3J0ZGljdNoSY2hlY2tfc3ludGF4X2Vycm9y2hBvcGVuX3VybHJlc291cmNl2g5jaGVja193YXJuaW5nc9oLQ2xlYW5JbXBvcnTaE0Vudmlyb25tZW50VmFyR3VhcmTaEVRyYW5zaWVudFJlc291cmNl2g9jYXB0dXJlZF9zdGRvdXTaDmNhcHR1cmVkX3N0ZGlu2g9jYXB0dXJlZF9zdGRlcnLaCHRpbWVfb3V02hFzb2NrZXRfcGVlcl9yZXNldNoSaW9lcnJvcl9wZWVyX3Jlc2V02g9ydW5fd2l0aF9sb2NhbGXaCnRlbXBfdW1hc2vaEnRyYW5zaWVudF9pbnRlcm5ldNoMc2V0X21lbWxpbWl02gpiaWdtZW10ZXN02hBiaWdhZGRyc3BhY2V0ZXN02g9CYXNpY1Rlc3RSdW5uZXLaDHJ1bl91bml0dGVzdNoLcnVuX2RvY3Rlc3TaD3RocmVhZGluZ19zZXR1cNoRdGhyZWFkaW5nX2NsZWFudXDaDXJlYXBfY2hpbGRyZW7aDGNweXRob25fb25sedoRY2hlY2tfaW1wbF9kZXRhaWzaDWdldF9hdHRyaWJ1dGXaCXN3YXBfaXRlbdoJc3dhcF9hdHRyWhFyZXF1aXJlc19JRUVFXzc1NNoLVGVzdEhhbmRsZXLaB01hdGNoZXLaC2Nhbl9zeW1saW5r2hNza2lwX3VubGVzc19zeW1saW5r2hFza2lwX3VubGVzc194YXR0ctoTaW1wb3J0X2ZyZXNoX21vZHVsZdoNcmVxdWlyZXNfemxpYtoNUElQRV9NQVhfU0laRdoIZmFpbGZhc3TaEmFudGljaXBhdGVfZmFpbHVyZdoLcnVuX3dpdGhfdHpaDXJlcXVpcmVzX2d6aXDaDHJlcXVpcmVzX2J6MtoNcmVxdWlyZXNfbHptYdoUc3VwcHJlc3NfY3Jhc2hfcG9wdXBjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3IPAAAAeipC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gwIBAHEmVwB4IHwCRABdGH0HdAJ8B3wEgwJzPnwFoAN8B6EBAQBxPlcAdASgBXwAoQF9CFcAbhgEAHQGawpyfgEAAQABAGQBfQhZAG4CWABXAGQBeB58BKAHoQBEAF0SXAJ9CX0KfAp0CGoJfAk8AHGOVwB4FHwFRABdDH0LdAhqCXwLPQBxqlcAWAB8CFMAUQBSAFgAZAFTACkCYVYEAABJbXBvcnQgYW5kIHJldHVybiBhIG1vZHVsZSwgZGVsaWJlcmF0ZWx5IGJ5cGFzc2luZyBzeXMubW9kdWxlcy4KICAgIFRoaXMgZnVuY3Rpb24gaW1wb3J0cyBhbmQgcmV0dXJucyBhIGZyZXNoIGNvcHkgb2YgdGhlIG5hbWVkIFB5dGhvbiBtb2R1bGUKICAgIGJ5IHJlbW92aW5nIHRoZSBuYW1lZCBtb2R1bGUgZnJvbSBzeXMubW9kdWxlcyBiZWZvcmUgZG9pbmcgdGhlIGltcG9ydC4KICAgIE5vdGUgdGhhdCB1bmxpa2UgcmVsb2FkLCB0aGUgb3JpZ2luYWwgbW9kdWxlIGlzIG5vdCBhZmZlY3RlZCBieQogICAgdGhpcyBvcGVyYXRpb24uCgogICAgKmZyZXNoKiBpcyBhbiBpdGVyYWJsZSBvZiBhZGRpdGlvbmFsIG1vZHVsZSBuYW1lcyB0aGF0IGFyZSBhbHNvIHJlbW92ZWQKICAgIGZyb20gdGhlIHN5cy5tb2R1bGVzIGNhY2hlIGJlZm9yZSBkb2luZyB0aGUgaW1wb3J0LgoKICAgICpibG9ja2VkKiBpcyBhbiBpdGVyYWJsZSBvZiBtb2R1bGUgbmFtZXMgdGhhdCBhcmUgcmVwbGFjZWQgd2l0aCBOb25lCiAgICBpbiB0aGUgbW9kdWxlIGNhY2hlIGR1cmluZyB0aGUgaW1wb3J0IHRvIGVuc3VyZSB0aGF0IGF0dGVtcHRzIHRvIGltcG9ydAogICAgdGhlbSByYWlzZSBJbXBvcnRFcnJvci4KCiAgICBUaGUgbmFtZWQgbW9kdWxlIGFuZCBhbnkgbW9kdWxlcyBuYW1lZCBpbiB0aGUgKmZyZXNoKiBhbmQgKmJsb2NrZWQqCiAgICBwYXJhbWV0ZXJzIGFyZSBzYXZlZCBiZWZvcmUgc3RhcnRpbmcgdGhlIGltcG9ydCBhbmQgdGhlbiByZWluc2VydGVkIGludG8KICAgIHN5cy5tb2R1bGVzIHdoZW4gdGhlIGZyZXNoIGltcG9ydCBpcyBjb21wbGV0ZS4KCiAgICBNb2R1bGUgYW5kIHBhY2thZ2UgZGVwcmVjYXRpb24gbWVzc2FnZXMgYXJlIHN1cHByZXNzZWQgZHVyaW5nIHRoaXMgaW1wb3J0CiAgICBpZiAqZGVwcmVjYXRlZCogaXMgVHJ1ZS4KCiAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmFpc2UgSW1wb3J0RXJyb3IgaWYgdGhlIG5hbWVkIG1vZHVsZSBjYW5ub3QgYmUKICAgIGltcG9ydGVkLgoKICAgIElmIGRlcHJlY2F0ZWQgaXMgVHJ1ZSwgYW55IG1vZHVsZSBvciBwYWNrYWdlIGRlcHJlY2F0aW9uIG1lc3NhZ2VzCiAgICB3aWxsIGJlIHN1cHByZXNzZWQuCiAgICBOKQpyYgAAAHJxAAAAcnMAAADaBmFwcGVuZHJjAAAAchIAAAByZAAAANoFaXRlbXNyawAAAHJsAAAAKQxyZwAAAFoFZnJlc2haB2Jsb2NrZWRyaAAAAHJvAAAAWg9uYW1lc190b19yZW1vdmVaCmZyZXNoX25hbWVaDGJsb2NrZWRfbmFtZVoMZnJlc2hfbW9kdWxlWglvcmlnX25hbWXaBm1vZHVsZVoObmFtZV90b19yZW1vdmVyWwAAAHJbAAAAclwAAAByTgAAALMAAABzJAAAAAAdCgMEAQQBCgEEAQoBDgEKAQoBDgEOAQ4BDgISAQ4BCgEOAWMCAAAAAAAAAAMAAAAIAAAAQwAAAHM+AAAAeQ50AHwAfAGDAn0CVwBuJgQAdAFrCnI0AQABAAEAdAKgA2QBfAB8AWYCFgChAYIBWQBuBlgAfAJTAGQCUwApA3o/R2V0IGFuIGF0dHJpYnV0ZSwgcmFpc2luZyBTa2lwVGVzdCBpZiBBdHRyaWJ1dGVFcnJvciBpcyByYWlzZWQueh1vYmplY3QgJXIgaGFzIG5vIGF0dHJpYnV0ZSAlck4pBNoHZ2V0YXR0ctoOQXR0cmlidXRlRXJyb3JyZQAAAHJmAAAAKQPaA29ianJnAAAAWglhdHRyaWJ1dGVyWwAAAHJbAAAAclwAAAByRgAAAOcAAABzCgAAAAACAgEO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YWJsZSBmb3IgYmluZGluZy4gIFRoaXMgaXMKICAgIGFjaGlldmVkIGJ5IGNyZWF0aW5nIGEgdGVtcG9yYXJ5IHNvY2tldCB3aXRoIHRoZSBzYW1lIGZhbWlseSBhbmQgdHlwZSBhcwogICAgdGhlICdzb2NrJyBwYXJhbWV0ZXIgKGRlZmF1bHQgaXMgQUZfSU5FVCwgU09DS19TVFJFQU0pLCBhbmQgYmluZGluZyBpdCB0bwogICAgdGhlIHNwZWNpZmllZCBob3N0IGFkZHJlc3MgKGRlZmF1bHRzIHRvIDAuMC4wLjApIHdpdGggdGhlIHBvcnQgc2V0IHRvIDAsCiAgICBlbGljaXRpbmcgYW4gdW51c2VkIGVwaGVtZXJhbCBwb3J0IGZyb20gdGhlIE9TLiAgVGhlIHRlbXBvcmFyeSBzb2NrZXQgaXMKICAgIHRoZW4gY2xvc2VkIGFuZCBkZWxldGVkLCBhbmQgdGhlIGVwaGVtZXJhbCBwb3J0IGlzIHJldHVybmVkLgoKICAgIEVpdGhlciB0aGlzIG1ldGhvZCBvciBiaW5kX3BvcnQoKSBzaG91bGQgYmUgdXNlZCBmb3IgYW55IHRlc3RzIHdoZXJlIGEKICAgIHNlcnZlciBzb2NrZXQgbmVlZHMgdG8gYmUgYm91bmQgdG8gYSBwYXJ0aWN1bGFyIHBvcnQgZm9yIHRoZSBkdXJhdGlvbiBvZgogICAgdGhlIHRlc3QuICBXaGljaCBvbmUgdG8gdXNlIGRlcGVuZHMgb24gd2hldGhlciB0aGUgY2FsbGluZyBjb2RlIGlzIGNyZWF0aW5nCiAgICBhIHB5dGhvbiBzb2NrZXQsIG9yIGlmIGFuIHVudXNlZCBwb3J0IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIGEgY29uc3RydWN0b3IKICAgIG9yIHBhc3NlZCB0byBhbiBleHRlcm5hbCBwcm9ncmFtIChpLmUuIHRoZSAtYWNjZXB0IGFyZ3VtZW50IHRvIG9wZW5zc2wncwogICAgc19zZXJ2ZXIgbW9kZSkuICBBbHdheXMgcHJlZmVyIGJpbmRfcG9ydCgpIG92ZXIgZmluZF91bnVzZWRfcG9ydCgpIHdoZXJlCiAgICBwb3NzaWJsZS4gIEhhcmQgY29kZWQgcG9ydHMgc2hvdWxkICpORVZFUiogYmUgdXNlZC4gIEFzIHNvb24gYXMgYSBzZXJ2ZXIKICAgIHNvY2tldCBpcyBib3VuZCB0byBhIGhhcmQgY29kZWQgcG9ydCwgdGhlIGFiaWxpdHkgdG8gcnVuIG11bHRpcGxlIGluc3RhbmNlcwogICAgb2YgdGhlIHRlc3Qgc2ltdWx0YW5lb3VzbHkgb24gdGhlIHNhbWUgaG9zdCBpcyBjb21wcm9taXNlZCwgd2hpY2ggbWFrZXMgdGhlCiAgICB0ZXN0IGEgdGlja2luZyB0aW1lIGJvbWIgaW4gYSBidWlsZGJvdCBlbnZpcm9ubWVudC4gT24gVW5peCBidWlsZGJvdHMsIHRoaXMKICAgIG1heSBzaW1wbHkgbWFuaWZlc3QgYXMgYSBmYWlsZWQgdGVzdCwgd2hpY2ggY2FuIGJlIHJlY292ZXJlZCBmcm9tIHdpdGhvdXQKICAgIGludGVydmVudGlvbiBpbiBtb3N0IGNhc2VzLCBidXQgb24gV2luZG93cywgdGhlIGVudGlyZSBweXRob24gcHJvY2VzcyBjYW4KICAgIGNvbXBsZXRlbHkgYW5kIHV0dGVybHkgd2VkZ2UsIHJlcXVpcmluZyBzb21lb25lIHRvIGxvZyBpbiB0byB0aGUgYnVpbGRib3QKICAgIGFuZCBtYW51YWxseSBraWxsIHRoZSBhZmZlY3RlZCBwcm9jZXNzLgoKICAgIChUaGlzIGlzIGVhc3kgdG8gcmVwcm9kdWNlIG9uIFdpbmRvd3MsIHVuZm9ydHVuYXRlbHksIGFuZCBjYW4gYmUgdHJhY2VkIHRvCiAgICB0aGUgU09fUkVVU0VBRERSIHNvY2tldCBvcHRpb24gaGF2aW5nIGRpZmZlcmVudCBzZW1hbnRpY3Mgb24gV2luZG93cyB2ZXJzdXMKICAgIFVuaXgvTGludXguICBPbiBVbml4LCB5b3UgY2FuJ3QgaGF2ZSB0d28gQUZfSU5FVCBTT0NLX1NUUkVBTSBzb2NrZXRzIGJpbmQsCiAgICBsaXN0ZW4gYW5kIHRoZW4gYWNjZXB0IGNvbm5lY3Rpb25zIG9uIGlkZW50aWNhbCBob3N0L3BvcnRzLiAgQW4gRUFERFJJTlVTRQogICAgc29ja2V0LmVycm9yIHdpbGwgYmUgcmFpc2VkIGF0IHNvbWUgcG9pbnQgKGRlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm0gYW5kCiAgICB0aGUgb3JkZXIgYmluZCBhbmQgbGlzdGVuIHdlcmUgY2FsbGVkIG9uIGVhY2ggc29ja2V0KS4KCiAgICBIb3dldmVyLCBvbiBXaW5kb3dzLCBpZiBTT19SRVVTRUFERFIgaXMgc2V0IG9uIHRoZSBzb2NrZXRzLCBubyBFQUREUklOVVNFCiAgICB3aWxsIGV2ZXIgYmUgcmFpc2VkIHdoZW4gYXR0ZW1wdGluZyB0byBiaW5kIHR3byBpZGVudGljYWwgaG9zdC9wb3J0cy4gV2hlbgogICAgYWNjZXB0KCkgaXMgY2FsbGVkIG9uIGVhY2ggc29ja2V0LCB0aGUgc2Vjb25kIGNhbGxlcidzIHByb2Nlc3Mgd2lsbCBzdGVhbAogICAgdGhlIHBvcnQgZnJvbSB0aGUgZmlyc3QgY2FsbGVyLCBsZWF2aW5nIHRoZW0gYm90aCBpbiBhbiBhd2t3YXJkbHkgd2VkZ2VkCiAgICBzdGF0ZSB3aGVyZSB0aGV5J2xsIG5vIGxvbmdlciByZXNwb25kIHRvIGFueSBzaWduYWxzIG9yIGdyYWNlZnVsIGtpbGxzLCBhbmQKICAgIG11c3QgYmUgZm9yY2libHkga2lsbGVkIHZpYSBPcGVuUHJvY2VzcygpL1Rlcm1pbmF0ZVByb2Nlc3MoKS4KCiAgICBUaGUgc29sdXRpb24gb24gV2luZG93cyBpcyB0byB1c2UgdGhlIFNPX0VYQ0xVU0lWRUFERFJVU0Ugc29ja2V0IG9wdGlvbgogICAgaW5zdGVhZCBvZiBTT19SRVVTRUFERFIsIHdoaWNoIGVmZmVjdGl2ZWx5IGFmZm9yZHMgdGhlIHNhbWUgc2VtYW50aWNzIGFzCiAgICBTT19SRVVTRUFERFIgb24gVW5peC4gIEdpdmVuIHRoZSBwcm9wZW5zaXR5IG9mIFVuaXggZGV2ZWxvcGVycyBpbiB0aGUgT3BlbgogICAgU291cmNlIHdvcmxkIGNvbXBhcmVkIHRvIFdpbmRvd3Mgb25lcywgdGhpcyBpcyBhIGNvbW1vbiBtaXN0YWtlLiAgQSBxdWljawogICAgbG9vayBvdmVyIE9wZW5TU0wncyAwLjkuOGcgc291cmNlIHNob3dzIHRoYXQgdGhleSB1c2UgU09fUkVVU0VBRERSIHdoZW4KICAgIG9wZW5zc2wuZXhlIGlzIGNhbGxlZCB3aXRoIHRoZSAnc19zZXJ2ZXInIG9wdGlvbiwgZm9yIGV4YW1wbGUuIFNlZQogICAgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTI1NTAgZm9yIG1vcmUgaW5mby4gIFRoZSBmb2xsb3dpbmcgc2l0ZSBhbHNvCiAgICBoYXMgYSB2ZXJ5IHRob3JvdWdoIGRlc2NyaXB0aW9uIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMgb2YgYm90aCBSRVVTRUFERFIKICAgIGFuZCBFWENMVVNJVkVBRERSVVNFIG9uIFdpbmRvd3M6CiAgICBodHRwOi8vbXNkbjIubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zNzQwNjIxKFZTLjg1KS5hc3B4KQoKICAgIFhYWDogYWx0aG91Z2ggdGhpcyBhcHByb2FjaCBpcyBhIHZhc3QgaW1wcm92ZW1lbnQgb24gcHJldmlvdXMgYXR0ZW1wdHMgdG8KICAgIGVsaWNpdCB1bnVzZWQgcG9ydHMsIGl0IHJlc3RzIGhlYXZpbHkgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgZXBoZW1lcmFsCiAgICBwb3J0IHJldHVybmVkIHRvIHVzIGJ5IHRoZSBPUyB3b24ndCBpbW1lZGlhdGVseSBiZSBkaXNoZWQgYmFjayBvdXQgdG8gc29tZQogICAgb3RoZXIgcHJvY2VzcyB3aGVuIHdlIGNsb3NlIGFuZCBkZWxldGUgb3VyIHRlbXBvcmFyeSBzb2NrZXQgYnV0IGJlZm9yZSBvdXIKICAgIGNhbGxpbmcgY29kZSBoYXMgYSBjaGFuY2UgdG8gYmluZCB0aGUgcmV0dXJuZWQgcG9ydC4gIFdlIGNhbiBkZWFsIHdpdGggdGhpcwogICAgaXNzdWUgaWYvd2hlbiB3ZSBjb21lIGFjcm9zcyBpdC4KICAgICkD2gZzb2NrZXRyIgAAANoFY2xvc2UpBNoGZmFtaWx5Wghzb2NrdHlwZVoIdGVtcHNvY2vaBHBvcnRyWwAAAHJbAAAAclwAAAByIQAAAPsBAABzCgAAAAA4DAEIAQgBAgFjAgAAAAAAAAADAAAACAAAAEMAAABzugAAAHwAagB0AWoCawJynHwAagN0AWoEawJynHQFdAFkAYMCcj58AKAGdAFqB3QBagihAmQCawJyPnQJZAODAYIBdAV0AWQEgwJygHkgfACgBnQBagd0AWoKoQJkAmsCcmZ0CWQFgwGCAVcAbhYEAHQBagtrCnJ+AQABAAEAWQBuAlgAdAV0AWQGgwJynHwAoAx0AWoHdAFqDWQCoQMBAHwAoA58AWQHZgKhAQEAfACgD6EAZAIZAH0CfAJTACkIYSUDAABCaW5kIHRoZSBzb2NrZXQgdG8gYSBmcmVlIHBvcnQgYW5kIHJldHVybiB0aGUgcG9ydCBudW1iZXIuICBSZWxpZXMgb24KICAgIGVwaGVtZXJhbCBwb3J0cyBpbiBvcmRlciB0byBlbnN1cmUgd2UgYXJlIHVzaW5nIGFuIHVuYm91bmQgcG9ydC4gIFRoaXMgaXMKICAgIGltcG9ydGFudCBhcyBtYW55IHRlc3RzIG1heSBiZSBydW5uaW5nIHNpbXVsdGFuZW91c2x5LCBlc3BlY2lhbGx5IGluIGEKICAgIGJ1aWxkYm90IGVudmlyb25tZW50LiAgVGhpcyBtZXRob2QgcmFpc2VzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgc29jay5mYW1pbHkKICAgIGlzIEFGX0lORVQgYW5kIHNvY2sudHlwZSBpcyBTT0NLX1NUUkVBTSwgKmFuZCogdGhlIHNvY2tldCBoYXMgU09fUkVVU0VBRERSCiAgICBvciBTT19SRVVTRVBPUlQgc2V0IG9uIGl0LiAgVGVzdHMgc2hvdWxkICpuZXZlciogc2V0IHRoZXNlIHNvY2tldCBvcHRpb25zCiAgICBmb3IgVENQL0lQIHNvY2tldHMuICBUaGUgb25seSBjYXNlIGZvciBzZXR0aW5nIHRoZXNlIG9wdGlvbnMgaXMgdGVzdGluZwogICAgbXVsdGljYXN0aW5nIHZpYSBtdWx0aXBsZSBVRFAgc29ja2V0cy4KCiAgICBBZGRpdGlvbmFsbHksIGlmIHRoZSBTT19FWENMVVNJVkVBRERSVVNFIHNvY2tldCBvcHRpb24gaXMgYXZhaWxhYmxlIChpLmUuCiAgICBvbiBXaW5kb3dzKSwgaXQgd2lsbCBiZSBzZXQgb24gdGhlIHNvY2tldC4gIFRoaXMgd2lsbCBwcmV2ZW50IGFueW9uZSBlbHNlCiAgICBmcm9tIGJpbmQoKSdpbmcgdG8gb3VyIGhvc3QvcG9ydCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSB0ZXN0LgogICAg2gxTT19SRVVTRUFERFJyfQAAAHpIdGVzdHMgc2hvdWxkIG5ldmVyIHNldCB0aGUgU09fUkVVU0VBRERSIHNvY2tldCBvcHRpb24gb24gVENQL0lQIHNvY2tldHMh2gxTT19SRVVTRVBPUlR6SHRlc3RzIHNob3VsZCBuZXZlciBzZXQgdGhlIFNPX1JFVVNFUE9SVCBzb2NrZXQgb3B0aW9uIG9uIFRDUC9JUCBzb2NrZXRzIdoTU09fRVhDTFVTSVZFQUREUlVTRXIBAAAAKRByzgAAAHLMAAAA2gdBRl9JTkVU2gR0eXBl2gtTT0NLX1NUUkVBTdoHaGFzYXR0cloKZ2V0c29ja29wdFoKU09MX1NPQ0tFVHLQAAAAchAAAABy0QAAAHKfAAAAWgpzZXRzb2Nrb3B0ctIAAADaBGJpbmRaC2dldHNvY2tuYW1lKQPaBHNvY2vaBGhvc3RyzwAAAHJbAAAAclsAAAByXAAAAHIiAAAAOQIAAHMeAAAAAA8YAQoBFAEIAgoBAgEUAQwCEAQGAQoBEgIOAQwBYwAAAAAAAAAAAQAAAAkAAABDAAAAc14AAAB0AGoBclpkAX0AekB5HnQAoAB0AGoCdABqA6ECfQB8AKAEZAKhAQEAZANTAAQAdABqBXQAagZmAmsKckYBAAEAAQBZAG4CWABXAGQBfAByWHwAoAehAAEAWABkBFMAKQV6K0NoZWNrIHdoZXRoZXIgSVB2NiBpcyBlbmFibGVkIG9uIHRoaXMgaG9zdC5OKQJ6Azo6MXIBAAAAVEYpCHLMAAAAWghoYXNfaXB2NloIQUZfSU5FVDZy1QAAAHLXAAAAcp8AAADaCGdhaWVycm9ycs0AAAApAXLYAAAAclsAAAByWwAAAHJcAAAA2hBfaXNfaXB2Nl9lbmFibGVkXgIAAHMWAAAAAAIGAQQBBAEQAQoBBAEWAQoCBAEKAXLbAAAAaQEAQABpAQAAAXoNcmVxdWlyZXMgemxpYnoMcmVxdWlyZXMgYnoyeg1yZXF1aXJlcyBsem1h2gRqYXZhegUkdGVzdHoFQHRlc3R6C3swfV97MX1fdG1w2gd0ZW1wY3dkYwMAAAAAAAAABQAAAAkAAABjAAAAc8QAAAB0AKABoQB9A2QBfQR8AmQCawhyWnwAfQJ5EnQAoAJ8AKEBAQBkA30EVwBuLgQAdANrCnJYAQABAAEAfAFzQIIAdARqBWQEfAAXAHQGZAVkBo0DAQBZAG4CWAB5DnQAoAd8AqEBAQBXAG4uBAB0A2sKcpYBAAEAAQB8AXN+ggB0BGoFZAd8AhcAdAZkBWQGjQMBAFkAbgJYAHoOdACgAaEAVgABAFcAZAJ0AKAHfAOhAQEAfARyvnQIfACDAQEAWABkAlMAKQhhvwEAAAogICAgQ29udGV4dCBtYW5hZ2VyIHRoYXQgdGVtcG9yYXJpbHkgY2hhbmdlcyB0aGUgQ1dELgoKICAgIEFuIGV4aXN0aW5nIHBhdGggbWF5IGJlIHByb3ZpZGVkIGFzICpwYXRoKiwgaW4gd2hpY2ggY2FzZSB0aGlzCiAgICBmdW5jdGlvbiBtYWtlcyBubyBjaGFuZ2VzIHRvIHRoZSBmaWxlIHN5c3RlbS4KCiAgICBPdGhlcndpc2UsIHRoZSBuZXcgQ1dEIGlzIGNyZWF0ZWQgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBpdCdzCiAgICBuYW1lZCAqbmFtZSouIElmICpxdWlldCogaXMgRmFsc2UgKGRlZmF1bHQpIGFuZCBpdCdzIG5vdCBwb3NzaWJsZSB0bwogICAgY3JlYXRlIG9yIGNoYW5nZSB0aGUgQ1dELCBhbiBlcnJvciBpcyByYWlzZWQuICBJZiBpdCdzIFRydWUsIG9ubHkgYQogICAgd2FybmluZyBpcyByYWlzZWQgYW5kIHRoZSBvcmlnaW5hbCBDV0QgaXMgdXNlZC4KICAgIEZOVHoqdGVzdHMgbWF5IGZhaWwsIHVuYWJsZSB0byBjcmVhdGUgdGVtcCBDV0Qg6QMAAAApAXKDAAAAeix0ZXN0cyBtYXkgZmFpbCwgdW5hYmxlIHRvIGNoYW5nZSB0aGUgQ1dEIHRvICkJcoQAAADaBmdldGN3ZNoFbWtkaXJynAAAAHJeAAAAcooAAAByiwAAANoFY2hkaXJyGgAAACkFcmcAAADaBXF1aWV0coUAAABaCXNhdmVkX2RpcloMaXNfdGVtcG9yYXJ5clsAAAByWwAAAHJcAAAAcigAAAATAwAAczAAAAAADQgBBAEIAQQBAgEKAQgBDgEEAQIBCgEQAQIBDgEOAQQBAgEKARABAgEOAgoBBAHaBXVtYXNrYwEAAAAAAAAAAgAAAAkAAABjAAAAcyYAAAB0AKABfAChAX0BegpkAVYAAQBXAGQBdACgAXwBoQEBAFgAZAFTACkCejhDb250ZXh0IG1hbmFnZXIgdGhhdCB0ZW1wb3JhcmlseSBzZXRzIHRoZSBwcm9jZXNzIHVtYXNrLk4pAnKEAAAAcuMAAAApAnLjAAAAWgdvbGRtYXNrclsAAAByWwAAAHJcAAAAcjkAAAA8AwAAcwgAAAAAAwoBAgEKAmMDAAAAAAAAAAYAAAAFAAAAQwAAAHNuAAAAdABqAaACfAChAXIQfABTAHwCZAFrCXImdABqAaADfAJ8AKECfQB0BGoBfQN0AGoBoAV8AaEBZwF8AxcAfQN4KnwDRABdIn0EdABqAaADfAR8AKECfQV0AGoBoAZ8BaEBckR8BVMAcURXAHwAUwApAnrVVHJ5IHRvIGZpbmQgYSBmaWxlIG9uIHN5cy5wYXRoIGFuZCB0aGUgd29ya2luZyBkaXJlY3RvcnkuICBJZiBpdCBpcyBub3QKICAgIGZvdW5kIHRoZSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGlzIHJldHVybmVkICh0aGlzIGRvZXMgbm90CiAgICBuZWNlc3NhcmlseSBzaWduYWwgZmFpbHVyZTsgY291bGQgc3RpbGwgYmUgdGhlIGxlZ2l0aW1hdGUgcGF0aCkuTikHcoQAAAByhQAAANoFaXNhYnNylwAAAHJrAAAAco8AAADaBmV4aXN0cykG2gRmaWxl2gRoZXJlWgZzdWJkaXJyhQAAAFoCZG7aAmZuclsAAAByWwAAAHJcAAAAcikAAABGAwAAcxYAAAAABAwBBAEIAQ4BBgESAQoBDgEMAAgBYwEAAAAAAAAAAgAAAAUAAABDAAAAcygAAAB0AKABfAB0AGoCdABqA0IAdABqBEIAoQJ9AXQAoAV8AaEBAQBkAVMAKQJ6PkNyZWF0ZSBhbiBlbXB0eSBmaWxlLiBJZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cywgdHJ1bmNhdGUgaXQuTikGcoQAAAByCQAAANoIT19XUk9OTFnaB09fQ1JFQVTaB09fVFJVTkNyzQAAACkCcpMAAADaAmZkclsAAAByWwAAAHJcAAAAcioAAABVAwAAcwQAAAAAAhoBYwEAAAAAAAAABAAAAAMAAABDAAAAcywAAAB0AHwAoAGhAIMBfQFkAWQChAB8AUQAgwF9AmQDoAJ8AqEBfQNkBHwDFgBTACkFeiVMaWtlIHJlcHIoZGljdCksIGJ1dCBpbiBzb3J0ZWQgb3JkZXIuYwEAAAAAAAAAAgAAAAQAAABTAAAAcxQAAABnAHwAXQx9AWQAfAEWAJECcQRTACkBegYlcjogJXJyWwAAACkC2gIuMFoEcGFpcnJbAAAAclsAAAByXAAAAPoKPGxpc3Rjb21wPl0DAABzAgAAAAYAehxzb3J0ZGljdC48bG9jYWxzPi48bGlzdGNvbXA+egIsIHoEeyVzfSkD2gZzb3J0ZWRyeAAAAHKXAAAAKQTaBGRpY3RyeAAAAFoJcmVwcnBhaXJzWgp3aXRoY29tbWFzclsAAAByWwAAAHJcAAAAcisAAABaAwAAcwgAAAAAAgwBDgEKAWMAAAAAAAAAAAEAAAAIAAAAQwAAAHMqAAAAdAB0AWQBgwJ9AHoIfACgAqEAUwB8AKADoQABAHQEdAGDAQEAWABkAlMAKQN6YAogICAgQ3JlYXRlIGFuIGludmFsaWQgZmlsZSBkZXNjcmlwdG9yIGJ5IG9wZW5pbmcgYW5kIGNsb3NpbmcgYSBmaWxlIGFuZCByZXR1cm4KICAgIGl0cyBmZC4KICAgINoCd2JOKQVyCQAAAHIlAAAA2gZmaWxlbm9yzQAAAHIZAAAAKQFy5gAAAHJbAAAAclsAAAByXAAAANoLbWFrZV9iYWRfZmRhAwAAcwoAAAAABQoBAgEIAggBcvMAAABjAgAAAAAAAAACAAAABwAAAEMAAABzFgAAAHwAoAB0AXQCfAFkAWQCoQUBAGQAUwApA056DTx0ZXN0IHN0cmluZz7aBGV4ZWMpA1oMYXNzZXJ0UmFpc2Vz2gtTeW50YXhFcnJvctoHY29tcGlsZSkCWgh0ZXN0Y2FzZVoJc3RhdGVtZW50clsAAAByWwAAAHJcAAAAciwAAABtAwAAcwQAAAAAAQoBYwEAAAAAAAAACwAAAAkAAAAPAAAAcxwBAABkAWQCbABtAX0DbQJ9BAEAiAKgA2QDZAChAokBfASgBHwAoQFkBBkAoAVkBaEBZAYZAH0FdAZqB6AIdAZqB6AJdAqhAWQHfAWhA30GhwCHAYcCZgNkCGQJhAh9B3QGagegC3wGoQFyhHwHfAaDAX0IfAhkAGsJcnx8CFMAdAx8BoMBAQB0DWQKgwEBAHQOZAt8ABYAdA+DAGQMjQIBAHwDahB8AGQNZA6NAn0Iej50EXwGZA+DAo8qfQl8CKASoQB9CngafApy3HwJoBN8CqEBAQB8CKASoQB9CnHEVwBXAGQAUQBSAFgAVwBkAHwIoBShAAEAWAB8B3wGgwF9CHwIZABrCZABcgx8CFMAdBVkEHwGFgCDAYIBZABTACkRTnIBAAAAKQLaB3JlcXVlc3TaBXBhcnNl2gVjaGVja3KBAAAA+gEv6f/////aBGRhdGFjAQAAAAAAAAACAAAAAwAAABMAAABzPgAAAHQAfABmAYgAngKIAo4BfQGIAWQAawhyHHwBUwCIAXwBgwFyMnwBoAFkAaEBAQB8AVMAfAGgAqEAAQBkAFMAKQJOcgEAAAApA3IJAAAA2gRzZWVrcs0AAAApAnLoAAAAcnQAAAApA3K/AAAAcvkAAABywAAAAHJbAAAAclwAAADaEGNoZWNrX3ZhbGlkX2ZpbGV7AwAAcw4AAAAAARABCAEEAQgBCgEEAXoqb3Blbl91cmxyZXNvdXJjZS48bG9jYWxzPi5jaGVja192YWxpZF9maWxlWgh1cmxmZXRjaHoQCWZldGNoaW5nICVzIC4uLikBcuYAAADpDwAAACkBcpAAAABy8QAAAHoTaW52YWxpZCByZXNvdXJjZSAlcikWWhdmdXR1cmUuYmFja3BvcnRzLnVybGxpYnL3AAAAcvgAAADaA3BvcFoIdXJscGFyc2VyhgAAAHKEAAAAcoUAAABylwAAAHKPAAAA2ghfX2ZpbGVfX3LlAAAAchkAAAByHQAAANoFcHJpbnRyFwAAAFoHdXJsb3BlbnIJAAAA2gRyZWFk2gV3cml0ZXLNAAAAchAAAAApC1oDdXJscr8AAABywAAAAFoOdXJsbGliX3JlcXVlc3RaDHVybGxpYl9wYXJzZXKTAAAAcugAAABy/gAAAHJ0AAAA2gNvdXTaAXNyWwAAACkDcr8AAABy+QAAAHLAAAAAclwAAAByLQAAAHEDAABzMAAAAAABEAMMAhgCGAIQCQwBCAEIAQQBCAMIAhIBDgECAQwBCAEGAQoBGgIKAggBCgEEAWMAAAAAAAAAAAAAAAADAAAAQAAAAHM0AAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBGQFhABaBWUGZAZkB4QAgwFaB2QIZAmEAFoIZApTACkL2hBXYXJuaW5nc1JlY29yZGVyenlDb252ZW5pZW5jZSB3cmFwcGVyIGZvciB0aGUgd2FybmluZ3MgbGlzdCByZXR1cm5lZCBvbgogICAgICAgZW50cnkgdG8gdGhlIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCkgY29udGV4dCBtYW5hZ2VyLgogICAgYwIAAAAAAAAAAgAAAAIAAABDAAAAcxAAAAB8AXwAXwBkAXwAXwFkAFMAKQJOcgEAAAApAtoJX3dhcm5pbmdz2gVfbGFzdCkC2gRzZWxmWg13YXJuaW5nc19saXN0clsAAAByWwAAAHJcAAAA2ghfX2luaXRfX6IDAABzBAAAAAABBgF6GVdhcm5pbmdzUmVjb3JkZXIuX19pbml0X19jAgAAAAAAAAACAAAABAAAAEMAAABzRAAAAHQAfABqAYMBfABqAmsEciB0A3wAagFkARkAfAGDAlMAfAF0BGoFagZrBnIwZABTAHQHZAJ8AHwBZgIWAIMBggFkAFMAKQNOcvsAAAB6FiVyIGhhcyBubyBhdHRyaWJ1dGUgJXIpCNoDbGVucggBAAByCQEAAHJ6AAAAcl4AAADaDldhcm5pbmdNZXNzYWdl2hBfV0FSTklOR19ERVRBSUxTcnsAAAApAnIKAQAA2gRhdHRyclsAAAByWwAAAHJcAAAA2gtfX2dldGF0dHJfX6YDAABzCgAAAAABEAEQAQwBBAF6HFdhcm5pbmdzUmVjb3JkZXIuX19nZXRhdHRyX19jAQAAAAAAAAABAAAAAwAAAEMAAABzEAAAAHwAagB8AGoBZACFAhkAUwApAU4pAnIIAQAAcgkBAAApAXIKAQAAclsAAAByWwAAAHJcAAAAcl4AAACtAwAAcwIAAAAAAnoZV2FybmluZ3NSZWNvcmRlci53YXJuaW5nc2MBAAAAAAAAAAEAAAACAAAAQwAAAHMQAAAAdAB8AGoBgwF8AF8CZABTACkBTikDcgwBAAByCAEAAHIJAQAAKQFyCgEAAHJbAAAAclsAAAByXAAAANoFcmVzZXSxAwAAcwIAAAAAAXoWV2FybmluZ3NSZWNvcmRlci5yZXNldE4pCXJXAAAAclgAAAByWQAAAHJaAAAAcgsBAAByEAEAANoIcHJvcGVydHlyXgAAAHIRAQAAclsAAAByWwAAAHJbAAAAclwAAAByBwEAAJ4DAABzCgAAAAgDBAEIBAgHDARyBwEAAGMCAAAAAAAAAAwAAAAJAAAAYwAAAHMuAQAAdACgAWQBoQF9AnwCagKgA2QCoQF9A3wDckh0BGoFcip8A6AGoQABAG4eeBx0B3QIfAODAYMBRABdDH0EfAOgCaEAAQBxOFcAdApqC2QDZASNAY8gfQV0AGoMZAUZAKANZAahAQEAdA58BYMBVgABAFcAZAdRAFIAWAB0D3wFgwF9BmcAfQd4dnwARABdblwCfQh9CWQIfQp4SHwGZAdkB4UCGQBEAF04fQV8BWoQfQt0EaASfAh0E3wLgwF0EWoUoQNypnQVfAtqFnwJgwJypmQDfQp8BqAXfAWhAQEAcaZXAHwKc4x8AXOMfAegGHwIfAlqGWYCoQEBAHGMVwB8BpABchR0GmQJfAZkChkAFgCDAYIBfAeQAXIqdBpkC3wHZAoZABYAgwGCAWQHUwApDHq2Q2F0Y2ggdGhlIHdhcm5pbmdzLCB0aGVuIGNoZWNrIGlmIGFsbCB0aGUgZXhwZWN0ZWQKICAgIHdhcm5pbmdzIGhhdmUgYmVlbiByYWlzZWQgYW5kIHJlLXJhaXNlIHVuZXhwZWN0ZWQgd2FybmluZ3MuCiAgICBJZiAncXVpZXQnIGlzIFRydWUsIG9ubHkgcmUtcmFpc2UgdGhlIHVuZXhwZWN0ZWQgd2FybmluZ3MuCiAgICBygQAAAFoTX193YXJuaW5ncmVnaXN0cnlfX1QpAdoGcmVjb3Jkcl4AAADaBmFsd2F5c05GehR1bmhhbmRsZWQgd2FybmluZyAlc3IBAAAAeilmaWx0ZXIgKCVyLCAlcykgZGlkIG5vdCBjYXRjaCBhbnkgd2FybmluZykbcmsAAABytgAAAHK3AAAAcrgAAAByBgAAANoDUFkz2gVjbGVhcnIIAAAAcgwBAAByAAEAAHJeAAAAcl8AAABybAAAANoMc2ltcGxlZmlsdGVycgcBAAByDAAAANoHbWVzc2FnZdoCcmXaBW1hdGNocgcAAADaAUnaCmlzc3ViY2xhc3PaCV9fY2xhc3NfX9oGcmVtb3ZlcncAAAByVwAAANoOQXNzZXJ0aW9uRXJyb3IpDNoHZmlsdGVyc3LiAAAA2gVmcmFtZdoIcmVnaXN0cnnaAWnaAXdaB3JlcmFpc2XaB21pc3NpbmdyaQAAANoDY2F02gRzZWVuWgd3YXJuaW5nclsAAAByWwAAAHJcAAAA2g9fZmlsdGVyd2FybmluZ3O1AwAAczYAAAAABwoBDAEEAQYBCgMSAQwBDgQQARQCCAEEAQ4BBAESAQYCFAEMAQQBDgEIAhQBBgEQAQYBBAFyKAEAAGMAAAAAAAAAAAMAAAADAAAATwAAAHMuAAAAfAGgAGQBoQF9AnwAcyRkAnQBZgJmAX0AfAJkA2sIciRkBH0CdAJ8AHwCgwJTACkFYZgBAABDb250ZXh0IG1hbmFnZXIgdG8gc2lsZW5jZSB3YXJuaW5ncy4KCiAgICBBY2NlcHQgMi10dXBsZXMgYXMgcG9zaXRpb25hbCBhcmd1bWVudHM6CiAgICAgICAgKCJtZXNzYWdlIHJlZ2V4cCIsIFdhcm5pbmdDYXRlZ29yeSkKCiAgICBPcHRpb25hbCBhcmd1bWVudDoKICAgICAtIGlmICdxdWlldCcgaXMgVHJ1ZSwgaXQgZG9lcyBub3QgZmFpbCBpZiBhIGZpbHRlciBjYXRjaGVzIG5vdGhpbmcKICAgICAgICAoZGVmYXVsdCBUcnVlIHdpdGhvdXQgYXJndW1lbnQsCiAgICAgICAgIGRlZmF1bHQgRmFsc2UgaWYgc29tZSBmaWx0ZXJzIGFyZSBkZWZpbmVkKQoKICAgIFdpdGhvdXQgYXJndW1lbnQsIGl0IGRlZmF1bHRzIHRvOgogICAgICAgIGNoZWNrX3dhcm5pbmdzKCgiIiwgV2FybmluZyksIHF1aWV0PVRydWUpCiAgICBy4gAAANoATlQpA3K4AAAA2gdXYXJuaW5ncigBAAApA3IgAQAA2gZrd2FyZ3Ny4gAAAHJbAAAAclsAAAByXAAAAHIuAAAA4QMAAHMMAAAAAA8KAQQBCgIIAQQBYwAAAAAAAAAAAAAAAAIAAABAAAAAcygAAABlAFoBZABaAmQBWgNkAmQDhABaBGQEZAWEAFoFZAZkB4QAWgZkCFMAKQlyLwAAAGEsAQAAQ29udGV4dCBtYW5hZ2VyIHRvIGZvcmNlIGltcG9ydCB0byByZXR1cm4gYSBuZXcgbW9kdWxlIHJlZmVyZW5jZS4KCiAgICBUaGlzIGlzIHVzZWZ1bCBmb3IgdGVzdGluZyBtb2R1bGUtbGV2ZWwgYmVoYXZpb3Vycywgc3VjaCBhcwogICAgdGhlIGVtaXNzaW9uIG9mIGEgRGVwcmVjYXRpb25XYXJuaW5nIG9uIGltcG9ydC4KCiAgICBVc2UgbGlrZSB0aGlzOgoKICAgICAgICB3aXRoIENsZWFuSW1wb3J0KCJmb28iKToKICAgICAgICAgICAgaW1wb3J0bGliLmltcG9ydF9tb2R1bGUoImZvbyIpICMgbmV3IHJlZmVyZW5jZQogICAgYwEAAAAAAAAABAAAAAMAAABHAAAAc04AAAB0AGoBoAKhAHwAXwN4PHwBRABdNH0CfAJ0AGoBawZyEnQAagF8AhkAfQN8A2oEfAJrA3I+dABqAXwDagQ9AHQAagF8Aj0AcRJXAGQAUwApAU4pBXJrAAAAcmwAAADaBGNvcHnaEG9yaWdpbmFsX21vZHVsZXNyVwAAACkEcgoBAABaDG1vZHVsZV9uYW1lc1oLbW9kdWxlX25hbWVyeQAAAHJbAAAAclsAAAByXAAAAHILAQAABQQAAHMOAAAAAAEMAQoBCgEKBQoBCgF6FENsZWFuSW1wb3J0Ll9faW5pdF9fYwEAAAAAAAAAAQAAAAEAAABDAAAAcwQAAAB8AFMAKQFOclsAAAApAXIKAQAAclsAAAByWwAAAHJcAAAA2glfX2VudGVyX18SBAAAcwIAAAAAAXoVQ2xlYW5JbXBvcnQuX19lbnRlcl9fYwEAAAAAAAAAAgAAAAMAAABHAAAAcxIAAAB0AGoBoAJ8AGoDoQEBAGQAUwApAU4pBHJrAAAAcmwAAADaBnVwZGF0ZXItAQAAKQJyCgEAANoKaWdub3JlX2V4Y3JbAAAAclsAAAByXAAAANoIX19leGl0X18VBAAAcwIAAAAAAXoUQ2xlYW5JbXBvcnQuX19leGl0X19OKQdyVwAAAHJYAAAAclkAAAByWgAAAHILAQAAci4BAAByMQEAAHJbAAAAclsAAAByWwAAAHJcAAAAci8AAAD5AwAAcwgAAAAICgQCCA0IA2MAAAAAAAAAAAAAAAACAAAAQAAAAHNoAAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBGQFhABaBWQGZAeEAFoGZAhkCYQAWgdkCmQLhABaCGQMZA2EAFoJZA5kD4QAWgpkEGQRhABaC2QSZBOEAFoMZBRkFYQAWg1kFmQXhABaDmQYUwApGXIwAAAAel9DbGFzcyB0byBoZWxwIHByb3RlY3QgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHByb3Blcmx5LiAgQ2FuIGJlIHVzZWQgYXMKICAgIGEgY29udGV4dCBtYW5hZ2VyLmMBAAAAAAAAAAEAAAACAAAAQwAAAHMSAAAAdABqAXwAXwJpAHwAXwNkAFMAKQFOKQRyhAAAANoHZW52aXJvbtoIX2Vudmlyb27aCF9jaGFuZ2VkKQFyCgEAAHJbAAAAclsAAAByXAAAAHILAQAAJgQAAHMEAAAAAAEIAXocRW52aXJvbm1lbnRWYXJHdWFyZC5fX2luaXRfX2MCAAAAAAAAAAIAAAACAAAAQwAAAHMKAAAAfABqAHwBGQBTACkBTikBcjMBAAApAnIKAQAA2gZlbnZ2YXJyWwAAAHJbAAAAclwAAADaC19fZ2V0aXRlbV9fKgQAAHMCAAAAAAF6H0Vudmlyb25tZW50VmFyR3VhcmQuX19nZXRpdGVtX19jAwAAAAAAAAADAAAAAwAAAEMAAABzKgAAAHwBfABqAGsHchx8AGoBoAJ8AaEBfABqAHwBPAB8AnwAagF8ATwAZABTACkBTikDcjQBAAByMwEAAHK4AAAAKQNyCgEAAHI1AQAA2gV2YWx1ZXJbAAAAclsAAAByXAAAANoLX19zZXRpdGVtX18tBAAAcwYAAAAAAgoBEgF6H0Vudmlyb25tZW50VmFyR3VhcmQuX19zZXRpdGVtX19jAgAAAAAAAAACAAAAAwAAAEMAAABzMgAAAHwBfABqAGsHchx8AGoBoAJ8AaEBfABqAHwBPAB8AXwAagFrBnIufABqAXwBPQBkAFMAKQFOKQNyNAEAAHIzAQAAcrgAAAApAnIKAQAAcjUBAAByWwAAAHJbAAAAclwAAADaC19fZGVsaXRlbV9fMwQAAHMIAAAAAAIKARIBCgF6H0Vudmlyb25tZW50VmFyR3VhcmQuX19kZWxpdGVtX19jAQAAAAAAAAABAAAAAgAAAEMAAABzCgAAAHwAagCgAaEAUwApAU4pAnIzAQAA2gRrZXlzKQFyCgEAAHJbAAAAclsAAAByXAAAAHI6AQAAOgQAAHMCAAAAAAF6GEVudmlyb25tZW50VmFyR3VhcmQua2V5c2MBAAAAAAAAAAEAAAACAAAAQwAAAHMKAAAAdAB8AGoBgwFTACkBTikC2gRpdGVycjMBAAApAXIKAQAAclsAAAByWwAAAHJcAAAA2ghfX2l0ZXJfXz0EAABzAgAAAAABehxFbnZpcm9ubWVudFZhckd1YXJkLl9faXRlcl9fYwEAAAAAAAAAAQAAAAIAAABDAAAAcwoAAAB0AHwAagGDAVMAKQFOKQJyDAEAAHIzAQAAKQFyCgEAAHJbAAAAclsAAAByXAAAANoHX19sZW5fX0AEAABzAgAAAAABehtFbnZpcm9ubWVudFZhckd1YXJkLl9fbGVuX19jAwAAAAAAAAADAAAAAwAAAEMAAABzDAAAAHwCfAB8ATwAZABTACkBTnJbAAAAKQNyCgEAAHI1AQAAcjcBAAByWwAAAHJbAAAAclwAAADaA3NldEMEAABzAgAAAAABehdFbnZpcm9ubWVudFZhckd1YXJkLnNldGMCAAAAAAAAAAIAAAACAAAAQwAAAHMKAAAAfAB8AT0AZABTACkBTnJbAAAAKQJyCgEAAHI1AQAAclsAAAByWwAAAHJcAAAA2gV1bnNldEYEAABzAgAAAAABehlFbnZpcm9ubWVudFZhckd1YXJkLnVuc2V0YwEAAAAAAAAAAQAAAAEAAABDAAAAcwQAAAB8AFMAKQFOclsAAAApAXIKAQAAclsAAAByWwAAAHJcAAAAci4BAABJBAAAcwIAAAAAAXodRW52aXJvbm1lbnRWYXJHdWFyZC5fX2VudGVyX19jAQAAAAAAAAAEAAAABAAAAEcAAABzSgAAAHg8fABqAKABoQBEAF0uXAJ9An0DfANkAGsIcjB8AnwAagJrBnI6fABqAnwCPQBxDHwDfABqAnwCPABxDFcAfABqAnQDXwRkAFMAKQFOKQVyNAEAAHJ4AAAAcjMBAAByhAAAAHIyAQAAKQRyCgEAAHIwAQAA2gFr2gF2clsAAAByWwAAAHJcAAAAcjEBAABMBAAAcwwAAAAAARQBCAEKAQoCDgF6HEVudmlyb25tZW50VmFyR3VhcmQuX19leGl0X19OKQ9yVwAAAHJYAAAAclkAAAByWgAAAHILAQAAcjYBAAByOAEAAHI5AQAAcjoBAAByPAEAAHI9AQAAcj4BAAByPwEAAHIuAQAAcjEBAAByWwAAAHJbAAAAclsAAAByXAAAAHIwAAAAIQQAAHMYAAAACAMEAggECAMIBggHCAMIAwgDCAMIAwgDYwAAAAAAAAAAAAAAAAIAAABAAAAAcygAAABlAFoBZABaAmQBWgNkAmQDhABaBGQEZAWEAFoFZAZkB4QAWgZkCFMAKQnaDURpcnNPblN5c1BhdGhhjgEAAENvbnRleHQgbWFuYWdlciB0byB0ZW1wb3JhcmlseSBhZGQgZGlyZWN0b3JpZXMgdG8gc3lzLnBhdGguCgogICAgVGhpcyBtYWtlcyBhIGNvcHkgb2Ygc3lzLnBhdGgsIGFwcGVuZHMgYW55IGRpcmVjdG9yaWVzIGdpdmVuCiAgICBhcyBwb3NpdGlvbmFsIGFyZ3VtZW50cywgdGhlbiByZXZlcnRzIHN5cy5wYXRoIHRvIHRoZSBjb3BpZWQKICAgIHNldHRpbmdzIHdoZW4gdGhlIGNvbnRleHQgZW5kcy4KCiAgICBOb3RlIHRoYXQgKmFsbCogc3lzLnBhdGggbW9kaWZpY2F0aW9ucyBpbiB0aGUgYm9keSBvZiB0aGUKICAgIGNvbnRleHQgbWFuYWdlciwgaW5jbHVkaW5nIHJlcGxhY2VtZW50IG9mIHRoZSBvYmplY3QsCiAgICB3aWxsIGJlIHJldmVydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGJsb2NrLgogICAgYwEAAAAAAAAAAgAAAAMAAABHAAAAcygAAAB0AGoBZABkAIUCGQB8AF8CdABqAXwAXwN0AGoBoAR8AaEBAQBkAFMAKQFOKQVyawAAAHKFAAAA2g5vcmlnaW5hbF92YWx1ZdoPb3JpZ2luYWxfb2JqZWN02gZleHRlbmQpAnIKAQAA2gVwYXRoc3JbAAAAclsAAAByXAAAAHILAQAAYgQAAHMGAAAAAAEQAQgBehZEaXJzT25TeXNQYXRoLl9faW5pdF9fYwEAAAAAAAAAAQAAAAEAAABDAAAAcwQAAAB8AFMAKQFOclsAAAApAXIKAQAAclsAAAByWwAAAHJcAAAAci4BAABnBAAAcwIAAAAAAXoXRGlyc09uU3lzUGF0aC5fX2VudGVyX19jAQAAAAAAAAACAAAABAAAAEcAAABzHAAAAHwAagB0AV8CfABqA3QBagJkAGQAhQI8AGQAUwApAU4pBHJEAQAAcmsAAAByhQAAAHJDAQAAKQJyCgEAAHIwAQAAclsAAAByWwAAAHJcAAAAcjEBAABqBAAAcwQAAAAAAQgBehZEaXJzT25TeXNQYXRoLl9fZXhpdF9fTikHclcAAAByWAAAAHJZAAAAcloAAAByCwEAAHIuAQAAcjEBAAByWwAAAHJbAAAAclsAAAByXAAAAHJCAQAAVgQAAHMIAAAACAoEAggFCANyQgEAAGMAAAAAAAAAAAAAAAADAAAAQAAAAHMqAAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBGQFhABaBWQJZAdkCIQBWgZkBlMAKQpyMQAAAHqOUmFpc2UgUmVzb3VyY2VEZW5pZWQgaWYgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZCB3aGlsZSB0aGUgY29udGV4dCBtYW5hZ2VyCiAgICBpcyBpbiBlZmZlY3QgdGhhdCBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGFuZCBhdHRyaWJ1dGVzLmMCAAAAAAAAAAMAAAACAAAASwAAAHMQAAAAfAF8AF8AfAJ8AF8BZABTACkBTikC2gNleGPaBWF0dHJzKQNyCgEAAHJHAQAAcisBAAByWwAAAHJbAAAAclwAAAByCwEAAHQEAABzBAAAAAABBgF6GlRyYW5zaWVudFJlc291cmNlLl9faW5pdF9fYwEAAAAAAAAAAQAAAAEAAABDAAAAcwQAAAB8AFMAKQFOclsAAAApAXIKAQAAclsAAAByWwAAAHJcAAAAci4BAAB4BAAAcwIAAAAAAXobVHJhbnNpZW50UmVzb3VyY2UuX19lbnRlcl9fTmMEAAAAAAAAAAYAAAAEAAAAQwAAAHNUAAAAfAFkAWsJclB0AHwAagF8AYMCclB4OnwAagKgA6EARABdJFwCfQR9BXQEfAJ8BIMCczRQAHQFfAJ8BIMCfAVrA3IgUABxIFcAdAZkAoMBggFkAVMAKQN6p0lmIHR5cGVfIGlzIGEgc3ViY2xhc3Mgb2Ygc2VsZi5leGMgYW5kIHZhbHVlIGhhcyBhdHRyaWJ1dGVzIG1hdGNoaW5nCiAgICAgICAgc2VsZi5hdHRycywgcmFpc2UgUmVzb3VyY2VEZW5pZWQuICBPdGhlcndpc2UgbGV0IHRoZSBleGNlcHRpb24KICAgICAgICBwcm9wYWdhdGUgKGlmIGFueSkuTnolYW4gb3B0aW9uYWwgcmVzb3VyY2UgaXMgbm90IGF2YWlsYWJsZSkHchwBAAByRwEAAHJIAQAAcngAAABy1gAAAHJ6AAAAchEAAAApBnIKAQAAWgV0eXBlX3I3AQAA2gl0cmFjZWJhY2tyDwEAAFoKYXR0cl92YWx1ZXJbAAAAclsAAAByXAAAAHIxAQAAewQAAHMOAAAAAAQUARQBCgECAQ4BBgJ6GlRyYW5zaWVudFJlc291cmNlLl9fZXhpdF9fKQNOTk4pB3JXAAAAclgAAAByWQAAAHJaAAAAcgsBAAByLgEAAHIxAQAAclsAAAByWwAAAHJbAAAAclwAAAByMQAAAG8EAABzCAAAAAgDBAIIBAgDKQFynQAAAOcAAAAAAAA+QGMDAAAAAAAAAAkAAAAKAAAAIwAAAHMgAQAAZAFkAmQDZARkBWcFfQNkBmQHZAhkCWQKZwV9BHQAZAt8ABYAgwGJAXwCiQBnAIkCiABzUGQMZA2EAHwDRACDAYkAZA5kDYQAfAREAIMBiQKHAIcBhwJmA2QPZBCECH0FdAGgAqEAfQZ6pnkcfAFkEWsJcn50AaADfAGhAQEAZBFWAAEAVwBuhAQAdARrCpABcgoBAH0HAQB6ZHhUfAdqBX0IdAZ8CIMBZBJrBXLGdAd8CGQTGQB0BIMCcsZ8CGQTGQB9B3GcdAZ8CIMBZBRrBXLqdAd8CGQSGQB0BIMCcup8CGQSGQB9B3GcUABxnFcAfAV8B4MBAQCCAFcAZBFkEX0HfgdYAFkAbgJYAFcAZBF0AaADfAahAQEAWABkEVMAKRV6i1JldHVybiBhIGNvbnRleHQgbWFuYWdlciB0aGF0IHJhaXNlcyBSZXNvdXJjZURlbmllZCB3aGVuIHZhcmlvdXMgaXNzdWVzCiAgICB3aXRoIHRoZSBJbnRlcm5ldCBjb25uZWN0aW9uIG1hbmlmZXN0IHRoZW1zZWx2ZXMgYXMgZXhjZXB0aW9ucy4pAloMRUNPTk5SRUZVU0VE6W8AAAApAtoKRUNPTk5SRVNFVOloAAAAKQJaDEVIT1NUVU5SRUFDSOlxAAAAKQJaC0VORVRVTlJFQUNI6WUAAAApAtoJRVRJTUVET1VU6W4AAAApAloJRUFJX0FHQUlO6f3///8pAloIRUFJX0ZBSUzp/P///ykCWgpFQUlfTk9OQU1F6f7///8pAloKRUFJX05PREFUQen7////KQJaCldTQU5PX0RBVEFp/CoAAHocUmVzb3VyY2UgJXIgaXMgbm90IGF2YWlsYWJsZWMBAAAAAAAAAAMAAAAGAAAAUwAAAHMcAAAAZwB8AF0UXAJ9AX0CdAB0AXwBfAKDA5ECcQRTAHJbAAAAKQJyegAAAHKdAAAAKQNy7QAAAHJnAAAA2gNudW1yWwAAAHJbAAAAclwAAABy7gAAAKgEAABzAgAAAAYBeiZ0cmFuc2llbnRfaW50ZXJuZXQuPGxvY2Fscz4uPGxpc3Rjb21wPmMBAAAAAAAAAAMAAAAGAAAAUwAAAHMcAAAAZwB8AF0UXAJ9AX0CdAB0AXwBfAKDA5ECcQRTAHJbAAAAKQJyegAAAHLMAAAAKQNy7QAAAHJnAAAAclYBAAByWwAAAHJbAAAAclwAAABy7gAAAKoEAABzAgAAAAYBYwEAAAAAAAAAAwAAAAQAAAATAAAAc2AAAAB0AHwAZAFkAIMDfQF0AXwAdAJqA4MCczR0AXwAdAJqBIMCcix8AYgCawZzNHwBiABrBnJcdAVzTnQGagegCIgBaglkAhkAZAMXAKEBAQCIAX0CfAB8Al8KfAKCAWQAUwApBE5ynQAAAHIBAAAA2gEKKQtyegAAANoKaXNpbnN0YW5jZXLMAAAAcpAAAABy2gAAAHITAAAAcmsAAADaBnN0ZGVycnIEAQAAcr8AAADaCV9fY2F1c2VfXykD2gNlcnLaAW5yRwEAACkD2g9jYXB0dXJlZF9lcnJub3PaBmRlbmllZNoKZ2FpX2Vycm5vc3JbAAAAclwAAADaDGZpbHRlcl9lcnJvcq0EAABzEgAAAAABDAEMARQBCAEEARYDBAEGAXoodHJhbnNpZW50X2ludGVybmV0Ljxsb2NhbHM+LmZpbHRlcl9lcnJvck5yfQAAAHIBAAAAcoEAAAApCHIRAAAAcswAAABaEWdldGRlZmF1bHR0aW1lb3V0WhFzZXRkZWZhdWx0dGltZW91dNoHSU9FcnJvcnK/AAAAcgwBAAByWAEAACkJWg1yZXNvdXJjZV9uYW1lcpAAAABaBmVycm5vc1oOZGVmYXVsdF9lcnJub3NaEmRlZmF1bHRfZ2FpX2Vycm5vc3JgAQAAWgtvbGRfdGltZW91dHJbAQAA2gFhclsAAAApA3JdAQAAcl4BAAByXwEAAHJcAAAAcjoAAACQBAAAc0YAAAAABQIBAgECAQIBBgMCAQIBAgECAgYDDAEEAQQBBAEGAQgBBgEIAhANCAEEAQgBCgEKARIDAgEGARoBCgQaAQoCBgEIARgEYwEAAAAAAAAAAwAAAAoAAABjAAAAc0YAAABkAWQCbAB9AXQBdAJ8AIMCfQJ0A3QCfAB8AaAEoQCDAwEAehB0AXQCfACDAlYAAQBXAGQCdAN0AnwAfAKDAwEAWABkAlMAKQN6iVJldHVybiBhIGNvbnRleHQgbWFuYWdlciB1c2VkIGJ5IGNhcHR1cmVkX3N0ZG91dC9zdGRpbi9zdGRlcnIKICAgIHRoYXQgdGVtcG9yYXJpbHkgcmVwbGFjZXMgdGhlIHN5cyBzdHJlYW0gKnN0cmVhbV9uYW1lKiB3aXRoIGEgU3RyaW5nSU8ucgEAAABOKQXaAmlvcnoAAAByawAAANoHc2V0YXR0ctoIU3RyaW5nSU8pA1oLc3RyZWFtX25hbWVyYwEAAFoLb3JpZ19zdGRvdXRyWwAAAHJbAAAAclwAAADaD2NhcHR1cmVkX291dHB1dNUEAABzDAAAAAAECAEKARABAgEQAnJmAQAAYwAAAAAAAAAAAAAAAAIAAABDAAAAcwgAAAB0AGQBgwFTACkCepRDYXB0dXJlIHRoZSBvdXRwdXQgb2Ygc3lzLnN0ZG91dDoKCiAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIHM6CiAgICAgICAgICAgcHJpbnQoImhlbGxvIikKICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCAiaGVsbG8iKQogICAgcn8AAAApAXJmAQAAclsAAAByWwAAAHJbAAAAclwAAAByMgAAAOEEAABzAgAAAAAHYwAAAAAAAAAAAAAAAAIAAABDAAAAcwgAAAB0AGQBgwFTACkCTnJZAQAAKQFyZgEAAHJbAAAAclsAAAByWwAAAHJcAAAAcjQAAADqBAAAcwIAAAAAAWMAAAAAAAAAAAAAAAACAAAAQwAAAHMIAAAAdABkAYMBUwApAk7aBXN0ZGluKQFyZgEAAHJbAAAAclsAAAByWwAAAHJcAAAAcjMAAADtBAAAcwIAAAAAAWMAAAAAAAAAAAAAAAADAAAAQwAAAHMqAAAAdACgAaEAAQB0AnIWdAOgBGQBoQEBAHQAoAGhAAEAdACgAaEAAQBkAlMAKQNh2gEAAEZvcmNlIGFzIG1hbnkgb2JqZWN0cyBhcyBwb3NzaWJsZSB0byBiZSBjb2xsZWN0ZWQuCgogICAgSW4gbm9uLUNQeXRob24gaW1wbGVtZW50YXRpb25zIG9mIFB5dGhvbiwgdGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0aW1lbHkKICAgIGRlYWxsb2NhdGlvbiBpcyBub3QgZ3VhcmFudGVlZCBieSB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IuICAoRXZlbiBpbiBDUHl0aG9uCiAgICB0aGlzIGNhbiBiZSB0aGUgY2FzZSBpbiBjYXNlIG9mIHJlZmVyZW5jZSBjeWNsZXMuKSAgVGhpcyBtZWFucyB0aGF0IF9fZGVsX18KICAgIG1ldGhvZHMgbWF5IGJlIGNhbGxlZCBsYXRlciB0aGFuIGV4cGVjdGVkIGFuZCB3ZWFrcmVmcyBtYXkgcmVtYWluIGFsaXZlIGZvcgogICAgbG9uZ2VyIHRoYW4gZXhwZWN0ZWQuICBUaGlzIGZ1bmN0aW9uIHRyaWVzIGl0cyBiZXN0IHRvIGZvcmNlIGFsbCBnYXJiYWdlCiAgICBvYmplY3RzIHRvIGRpc2FwcGVhci4KICAgIGeamZmZmZm5P04pBdoCZ2NaB2NvbGxlY3RyJAAAAHKIAAAAcokAAAByWwAAAHJbAAAAclsAAAByXAAAANoKZ2NfY29sbGVjdPEEAABzCgAAAAAKCAEEAQoBCAFyaQEAAGMAAAAAAAAAAAEAAAAIAAAAYwAAAHMuAAAAdACgAaEAfQB0AKACoQABAHoKZABWAAEAVwBkAHwAcih0AKADoQABAFgAZABTACkBTikEcmgBAABaCWlzZW5hYmxlZFoHZGlzYWJsZVoGZW5hYmxlKQFaB2hhdmVfZ2NyWwAAAHJbAAAAclwAAADaCmRpc2FibGVfZ2MBBQAAcwwAAAAAAggBCAECAQoCBAFyagEAAGMAAAAAAAAAAAQAAAAEAAAAQwAAAHNKAAAAZAFkAmwAfQB8AKABZAOhAXAUZAR9AWQEfQJ4HnwBoAKhAEQAXRJ9A3wDoANkBaEBciR8A30CcSRXAHwCZARrA29IfAJkBmsDUwApB3osRmluZCBpZiBQeXRob24gd2FzIGJ1aWx0IHdpdGggb3B0aW1pemF0aW9ucy5yAQAAAE5aCVBZX0NGTEFHU3IpAQAAegItT3oDLU8wKQRyDgAAANoOZ2V0X2NvbmZpZ192YXJyhgAAAHJuAAAAKQRyDgAAAFoGY2ZsYWdzWglmaW5hbF9vcHTaA29wdHJbAAAAclsAAAByXAAAANoTcHl0aG9uX2lzX29wdGltaXplZAwFAABzDgAAAAADCAEOAQQBDgEKAQgBcm0BAABaAm5QWgIwbloQZ2V0dG90YWxyZWZjb3VudFoCMlBaAjBQclwBAABjAQAAAAAAAAABAAAABAAAAEMAAABzEgAAAHQAoAF0AnwAFwB0AxcAoQFTACkBTikE2gZzdHJ1Y3TaCGNhbGNzaXpl2gdfaGVhZGVy2gZfYWxpZ24pAdoDZm10clsAAAByWwAAAHJcAAAA2gtjYWxjb2Jqc2l6ZR8FAABzAgAAAAABcnMBAABjAQAAAAAAAAABAAAABAAAAEMAAABzEgAAAHQAoAF0AnwAFwB0AxcAoQFTACkBTikEcm4BAABybwEAANoIX3ZoZWFkZXJycQEAACkBcnIBAAByWwAAAHJbAAAAclwAAADaDGNhbGN2b2Jqc2l6ZSIFAABzAgAAAAABcnUBAABpAEAAAGkAAgAAYwMAAAAAAAAABQAAAAUAAABDAAAAc2gAAAB0AKABfAGhAX0DdAJ8AYMBdAJrAnIgfAFqA3QEQABzOnQCfAGDAXQCawNyRHQCfAGDAWoDdAVAAHJEfAJ0BmoHNwB9AmQBdAJ8AYMBfAN8AmYDFgB9BHwAoAh8A3wCfAShAwEAZABTACkCTnomd3Jvbmcgc2l6ZSBmb3IgJXM6IGdvdCAlZCwgZXhwZWN0ZWQgJWQpCXJrAAAA2glnZXRzaXplb2Zy1AAAANoJX19mbGFnc19f2hFfVFBGTEFHU19IRUFQVFlQRdoQX1RQRkxBR1NfSEFWRV9HQ1oJX3Rlc3RjYXBpWhBTSVpFT0ZfUFlHQ19IRUFEWgthc3NlcnRFcXVhbCkF2gR0ZXN0cqEAAADaBHNpemXaBnJlc3VsdHJpAAAAclsAAAByWwAAAHJcAAAA2gxjaGVja19zaXplb2YpBQAAcw4AAAAAAQoCFgEaAQoBAgEQAXJ9AQAAYwEAAAAAAAAAAwAAAAMAAAAHAAAAcxIAAACHAIcBZgJkAWQChAh9AnwCUwApA05jAQAAAAAAAAACAAAAAwAAABMAAABzJAAAAIcBhwCHAmYDZAFkAoQIfQGIAGoAfAFfAIgAagF8AV8BfAFTACkDTmMAAAAAAAAAAAYAAAAKAAAAHwAAAHOeAAAAeSBkAWQAbAB9AnQBfAKIAIMCfQN8AqACfAOhAX0EVwBuKAQAdANrCnI2AQABAAEAggBZAG5CAQABAAEAZAAEAH0CfQRZAG4wWAB4LIgCRABdJH0FeRJ8AqACfAN8BaECAQBQAFcAcVABAAEAAQBZAHFQWABxUFcAegqIAXwAfAGOAVMAfAJymHwEcph8AqACfAN8BKECAQBYAGQAUwApAk5yAQAAACkE2gZsb2NhbGVyegAAANoJc2V0bG9jYWxlcnsAAAApBnK/AAAA2gRrd2Rzcn4BAADaCGNhdGVnb3J5WgtvcmlnX2xvY2FsZVoDbG9jKQPaBmNhdHN0cnKMAAAA2gdsb2NhbGVzclsAAAByXAAAANoFaW5uZXI5BQAAcyQAAAAAAQIBCAEKAQ4BDgIGAQYCDgIKAQIBDAEGAQYBCgMCAQoCCAF6MXJ1bl93aXRoX2xvY2FsZS48bG9jYWxzPi5kZWNvcmF0b3IuPGxvY2Fscz4uaW5uZXIpAnJXAAAAcloAAAApAnKMAAAAcoQBAAApAnKCAQAAcoMBAAApAXKMAAAAclwAAAByyQAAADgFAABzCAAAAAABEBkIAQgBeiJydW5fd2l0aF9sb2NhbGUuPGxvY2Fscz4uZGVjb3JhdG9yclsAAAApA3KCAQAAcoMBAAByyQAAAHJbAAAAKQJyggEAAHKDAQAAclwAAAByOAAAADcFAABzBAAAAAABDh1jAQAAAAAAAAACAAAAAwAAAAMAAABzEAAAAIcAZgFkAWQChAh9AXwBUwApA05jAQAAAAAAAAACAAAAAwAAABMAAABzIgAAAIcAhwFmAmQBZAKECH0BiABqAHwBXwCIAGoBfAFfAXwBUwApA05jAAAAAAAAAAAEAAAACQAAAB8AAABzigAAAHkKdABqAX0CVwBuHgQAdAJrCnIoAQABAAEAdAOgBGQBoQGCAVkAbgJYAGQCdAVqBmsGckB0BWoGZAIZAH0DbgRkAH0DiAF0BWoGZAI8AHwCgwABAHoKiAB8AHwBjgFTAHwDZABrCHJydAVqBmQCPQBuCnwDdAVqBmQCPAB0AKABoQABAFgAZABTACkDTnoOdHpzZXQgcmVxdWlyZWRaAlRaKQdyiAAAANoFdHpzZXRyewAAAHJlAAAAcmYAAAByhAAAAHIyAQAAKQRyvwAAAHKAAQAAcoUBAABaB29yaWdfdHopAnKMAAAA2gJ0enJbAAAAclwAAAByhAEAAF0FAABzHgAAAAABAgEKAQ4BEAEKAQwCBAEKAQYDAgEKAggBCgIKAXotcnVuX3dpdGhfdHouPGxvY2Fscz4uZGVjb3JhdG9yLjxsb2NhbHM+LmlubmVyKQJyVwAAAHJaAAAAKQJyjAAAAHKEAQAAKQFyhgEAACkBcowAAAByXAAAAHLJAAAAXAUAAHMIAAAAAAEOFggBCAF6HnJ1bl93aXRoX3R6Ljxsb2NhbHM+LmRlY29yYXRvcnJbAAAAKQJyhgEAAHLJAAAAclsAAAApAXKGAQAAclwAAAByUwAAAFsFAABzBAAAAAABDBppAAAQAGkABAAAcoEAAAByggAAAGMBAAAAAAAAAAQAAAAGAAAAQwAAAHOUAAAAZAF0AHQBZAF0ARQAZAKcBH0BdAKgA2QDfAB0AmoEdAJqBUIAoQN9AnwCZABrCHI+dAZkBHwAZgEWAIMBggF0B3QIfAKgCWQFoQGDAXwBfAKgCWQGoQGgCqEAGQAUAIMBfQN8A2ELfAN0DGsEcnJ0DH0DfAN0DWQFGABrAHKMdAZkB3wAZgEWAIMBggF8A2EOZABTACkITmkABAAAKQRyQAEAANoBbdoBZ9oBdHoaKFxkKyhcLlxkKyk/KSAoS3xNfEd8VCliPyR6F0ludmFsaWQgbWVtb3J5IGxpbWl0ICVycn0AAABy3gAAAHokTWVtb3J5IGxpbWl0ICVyIHRvbyBsb3cgdG8gYmUgdXNlZnVsKQ/aA18xTdoDXzFHchkBAAByGgEAANoKSUdOT1JFQ0FTRdoHVkVSQk9TRXK+AAAAcgoAAADaBWZsb2F02gVncm91cNoFbG93ZXLaD3JlYWxfbWF4X21lbXVzZdoOTUFYX1B5X3NzaXplX3TaA18yR3IVAAAAKQTaBWxpbWl0WgVzaXplc3KHAQAAWghtZW1saW1pdHJbAAAAclsAAAByXAAAAHI7AAAAhQUAAHMeAAAAAAQCAQIBAgEMAggBDgEIAQ4BJAEEAQgBBAEMAQ4BYwAAAAAAAAAAAAAAAAIAAABAAAAAcygAAABlAFoBZABaAmQBWgNkAmQDhABaBGQEZAWEAFoFZAZkB4QAWgZkCFMAKQnaD19NZW1vcnlXYXRjaGRvZ3pgQW4gb2JqZWN0IHdoaWNoIHBlcmlvZGljYWxseSB3YXRjaGVzIHRoZSBwcm9jZXNzJyBtZW1vcnkgY29uc3VtcHRpb24KICAgIGFuZCBwcmludHMgaXQgb3V0LgogICAgYwEAAAAAAAAAAQAAAAMAAABDAAAAcxwAAABkAWoAdAGgAqEAZAKNAXwAXwNkA3wAXwRkAFMAKQROehEvcHJvYy97cGlkfS9zdGF0bSkB2gNwaWRGKQXaBmZvcm1hdHKEAAAA2gZnZXRwaWTaCHByb2NmaWxl2gdzdGFydGVkKQFyCgEAAHJbAAAAclsAAAByXAAAAHILAQAAnwUAAHMEAAAAAAESAXoYX01lbW9yeVdhdGNoZG9nLl9faW5pdF9fYwEAAAAAAAAABAAAAAoAAABDAAAAc4QAAAB5EHQAfABqAWQBgwJ9AVcAbj4EAHQCawpyTgEAfQIBAHogdAOgBGQCoAV8AqEBdAahAgEAdAdqCKAJoQABAGQAUwBkAH0CfgJYAFkAbgJYAHQKZAODAX0DdAtqDHQHag18A2cCfAF0C2oOZASNA3wAXw98AaAQoQABAGQFfABfEWQAUwApBk7aAXJ6Ii9wcm9jIG5vdCBhdmFpbGFibGUgZm9yIHN0YXRzOiB7MH16Em1lbW9yeV93YXRjaGRvZy5weSkCcmcBAAByWQEAAFQpEnIJAAAAcpkBAABynAAAAHJeAAAAcooAAABylwEAAHKLAAAAcmsAAAByWQEAANoFZmx1c2hyKQAAANoKc3VicHJvY2Vzc9oFUG9wZW7aCmV4ZWN1dGFibGXaB0RFVk5VTEzaDG1lbV93YXRjaGRvZ3LNAAAAcpoBAAApBHIKAQAAcnQAAADaAWVaD3dhdGNoZG9nX3NjcmlwdHJbAAAAclsAAAByXAAAANoFc3RhcnSjBQAAcxgAAAAAAQIBEAEQAQwBBgEKARICCAEMAQ4BCAF6FV9NZW1vcnlXYXRjaGRvZy5zdGFydGMBAAAAAAAAAAEAAAACAAAAQwAAAHMeAAAAfABqAHIafABqAaACoQABAHwAagGgA6EAAQBkAFMAKQFOKQRymgEAAHKhAQAA2gl0ZXJtaW5hdGXaBHdhaXQpAXIKAQAAclsAAAByWwAAAHJcAAAA2gRzdG9wsgUAAHMGAAAAAAEGAQoBehRfTWVtb3J5V2F0Y2hkb2cuc3RvcE4pB3JXAAAAclgAAAByWQAAAHJaAAAAcgsBAAByowEAAHKmAQAAclsAAAByWwAAAHJbAAAAclwAAABylQEAAJoFAABzCAAAAAgDBAIIBAgPcpUBAABjAwAAAAAAAAAEAAAAAwAAAAMAAABzFAAAAIcAhwGHAmYDZAFkAoQIfQN8A1MAKQNhQQEAAERlY29yYXRvciBmb3IgYmlnbWVtIHRlc3RzLgoKICAgICdtaW5zaXplJyBpcyB0aGUgbWluaW11bSB1c2VmdWwgc2l6ZSBmb3IgdGhlIHRlc3QgKGluIGFyYml0cmFyeSwKICAgIHRlc3QtaW50ZXJwcmV0ZWQgdW5pdHMuKSAnbWVtdXNlJyBpcyB0aGUgbnVtYmVyIG9mICdieXRlcyBwZXIgc2l6ZScgZm9yCiAgICB0aGUgdGVzdCwgb3IgYSBnb29kIGVzdGltYXRlIG9mIGl0LgoKICAgIGlmICdkcnlfcnVuJyBpcyBGYWxzZSwgaXQgbWVhbnMgdGhlIHRlc3QgZG9lc24ndCBzdXBwb3J0IGR1bW15IHJ1bnMKICAgIHdoZW4gLU0gaXMgbm90IHNwZWNpZmllZC4KICAgIGMBAAAAAAAAAAEAAAADAAAAEwAAAHMgAAAAhwKHAIcBZgNkAWQChAiJAYgEiAFfAIgDiAFfAYgBUwApA05jAQAAAAAAAAAFAAAACAAAABMAAABznAAAAIgCagB9AYgCagF9AnQCcxZkAX0DbgR8AX0DdAJzIogAc0R0AnwDfAIUAGsAckR0A6AEZAJ8AXwCFABkAxsAFgChAYIBdAJyenQFcnp0BoMAAQB0BmQEagd8AXwCFABkAxsAZAWNAYMBAQB0CIMAfQR8BKAJoQABAG4EZAB9BHoKiAF8AHwDgwJTAHwEcpZ8BKAKoQABAFgAZABTACkGTmkbFAAAeidub3QgZW5vdWdoIG1lbW9yeTogJS4xZkcgbWluaW11bSBuZWVkZWRpAAAAQHoqIC4uLiBleHBlY3RlZCBwZWFrIG1lbW9yeSB1c2U6IHtwZWFrOi4xZn1HKQFaBHBlYWspC3J7AQAA2gZtZW11c2VykQEAAHJlAAAAcmYAAAByEwAAAHICAQAAcpcBAABylQEAAHKjAQAAcqYBAAApBXIKAQAAcnsBAABypwEAANoHbWF4c2l6ZVoId2F0Y2hkb2cpA9oHZHJ5X3J1bnJ0AAAAcsYAAAByWwAAAHJcAAAAcsYAAADDBQAAcyoAAAAAAQYBBgEEAQYCBAIIAQwBBAECARACCAEGAQYBEgEGAQoCBAICAQoCBAF6LmJpZ21lbXRlc3QuPGxvY2Fscz4uZGVjb3JhdG9yLjxsb2NhbHM+LndyYXBwZXIpAnJ7AQAAcqcBAAApAXJ0AAAAKQNyqQEAAHKnAQAAcnsBAAApAnJ0AAAAcsYAAAByXAAAAHLJAAAAwgUAAHMIAAAAAAEQHQYBBgF6HWJpZ21lbXRlc3QuPGxvY2Fscz4uZGVjb3JhdG9yclsAAAApBHJ7AQAAcqcBAAByqQEAAHLJAAAAclsAAAApA3KpAQAAcqcBAAByewEAAHJcAAAAcjwAAAC4BQAAcwQAAAAAChAhYwEAAAAAAAAAAgAAAAMAAAADAAAAcxAAAACHAGYBZAFkAoQIfQF8AVMAKQN6MERlY29yYXRvciBmb3IgdGVzdHMgdGhhdCBmaWxsIHRoZSBhZGRyZXNzIHNwYWNlLmMBAAAAAAAAAAEAAAAFAAAAEwAAAHNEAAAAdAB0AWsAcjh0AWQBawVyJHQAZAJrBXIkdAKgA2QDoQGCAXFAdAKgA2QEdAFkBRsAFgChAYIBbgiIAHwAgwFTAGQAUwApBk5sBQAAAP9//3//f/9/BwBsAwAAAAAAAAACAHotbm90IGVub3VnaCBtZW1vcnk6IHRyeSBhIDMyLWJpdCBidWlsZCBpbnN0ZWFkeidub3QgZW5vdWdoIG1lbW9yeTogJS4xZkcgbWluaW11bSBuZWVkZWRpAAAAQCkEchUAAABykgEAAHJlAAAAcmYAAAApAXIKAQAAKQFydAAAAHJbAAAAclwAAAByxgAAAOcFAABzEAAAAAABCAEQAQQBCAIEAQIBDgJ6IWJpZ2FkZHJzcGFjZXRlc3QuPGxvY2Fscz4ud3JhcHBlcnJbAAAAKQJydAAAAHLGAAAAclsAAAApAXJ0AAAAclwAAAByPQAAAOUFAABzBAAAAAACDAtjAAAAAAAAAAAAAAAAAgAAAEAAAABzFAAAAGUAWgFkAFoCZAFkAoQAWgNkA1MAKQRyPgAAAGMCAAAAAAAAAAMAAAACAAAAQwAAAHMUAAAAdACgAaEAfQJ8AXwCgwEBAHwCUwApAU4pAnJlAAAAWgpUZXN0UmVzdWx0KQNyCgEAAHJ6AQAAcnwBAAByWwAAAHJbAAAAclwAAADaA3J1bvgFAABzBgAAAAABCAEIAXoTQmFzaWNUZXN0UnVubmVyLnJ1bk4pBHJXAAAAclgAAAByWQAAAHKqAQAAclsAAAByWwAAAHJbAAAAclwAAAByPgAAAPcFAABzAgAAAAgBYwEAAAAAAAAAAQAAAAEAAABDAAAAcwQAAAB8AFMAKQFOclsAAAApAXJ8AAAAclsAAAByWwAAAHJcAAAA2gNfaWT9BQAAcwIAAAAAAXKrAQAAYwEAAAAAAAAAAQAAAAUAAABDAAAAczgAAAB8AGQBawJyGHQAgwBzGHQBoAJkAqEBUwB0A3wAgwFyJHQEUwB0AaACZAOgBXwAoQGhAVMAZABTACkETnK0AAAAeh9yZXNvdXJjZSAnZ3VpJyBpcyBub3QgYXZhaWxhYmxleh1yZXNvdXJjZSB7MCFyfSBpcyBub3QgZW5hYmxlZCkGcrIAAAByZQAAAHINAAAAchwAAAByqwEAAHKXAQAAKQFyswAAAHJbAAAAclsAAAByXAAAANoRcmVxdWlyZXNfcmVzb3VyY2UABgAAcwoAAAAAAQ4BCgEIAQQCcqwBAABjAQAAAAAAAAABAAAAAwAAAEMAAABzDgAAAHQAZAFkAo0BfACDAVMAKQN6OQogICAgRGVjb3JhdG9yIGZvciB0ZXN0cyBvbmx5IGFwcGxpY2FibGUgb24gQ1B5dGhvbi4KICAgIFQpAdoHY3B5dGhvbikB2gtpbXBsX2RldGFpbCkBcnoBAAByWwAAAHJbAAAAclwAAAByRAAAAAgGAABzAgAAAAAEYwEAAAAAAAAABAAAAAUAAABLAAAAc1YAAAB0AGYAfAGOAXIOdAFTAHwAZABrCHJMdAJ8AYMBXAJ9An0DfANyLGQBfQBuBGQCfQB0A3wCoAShAIMBfQJ8AKAFZAOgBnwCoQGhAX0AdAegCHwAoQFTACkETnoqaW1wbGVtZW50YXRpb24gZGV0YWlsIG5vdCBhdmFpbGFibGUgb24gezB9eiVpbXBsZW1lbnRhdGlvbiBkZXRhaWwgc3BlY2lmaWMgdG8gezB9egQgb3IgKQlyRQAAAHKrAQAA2g1fcGFyc2VfZ3VhcmRzcu8AAAByOgEAAHKXAQAAcpcAAAByZQAAAHINAAAAKQRyaQAAANoGZ3VhcmRzWgpndWFyZG5hbWVz2gdkZWZhdWx0clsAAAByWwAAAHJcAAAAcq4BAAAOBgAAcxQAAAAAAQoBBAEIAQwBBAEGAgQBDAEQAXKuAQAAYwEAAAAAAAAAAgAAAAQAAABDAAAAc0gAAAB8AHMQZAFkAmkBZANmAlMAdAB8AKABoQCDAWQEGQB9AXQAfACgAaEAgwF8AWcBdAJ8AIMBFABrAnM+dAOCAXwAfAEMAGYCUwApBU5yrQEAAFRGcgEAAAApBHIMAAAA2gZ2YWx1ZXNyDAEAAHIfAQAAKQJysAEAAFoHaXNfdHJ1ZXJbAAAAclsAAAByXAAAAHKvAQAAGwYAAHMKAAAAAAIEAQwBEAEeAXKvAQAAYwAAAAAAAAAAAgAAAAQAAABLAAAAcyAAAAB0AHwAgwFcAn0AfQF8AKABdAKgA6EAoAShAHwBoQJTACkBYTUBAABUaGlzIGZ1bmN0aW9uIHJldHVybnMgVHJ1ZSBvciBGYWxzZSBkZXBlbmRpbmcgb24gdGhlIGhvc3QgcGxhdGZvcm0uCiAgICAgICBFeGFtcGxlczoKICAgICAgICAgIGlmIGNoZWNrX2ltcGxfZGV0YWlsKCk6ICAgICAgICAgICAgICAgIyBvbmx5IG9uIENQeXRob24gKGRlZmF1bHQpCiAgICAgICAgICBpZiBjaGVja19pbXBsX2RldGFpbChqeXRob249VHJ1ZSk6ICAgICMgb25seSBvbiBKeXRob24KICAgICAgICAgIGlmIGNoZWNrX2ltcGxfZGV0YWlsKGNweXRob249RmFsc2UpOiAgIyBldmVyeXdoZXJlIGV4Y2VwdCBvbiBDUHl0aG9uCiAgICApBXKvAQAAcrgAAAByugAAAFoVcHl0aG9uX2ltcGxlbWVudGF0aW9ucpABAAApAnKwAQAAcrEBAAByWwAAAHJbAAAAclwAAAByRQAAACUGAABzBAAAAAAHDAFjAQAAAAAAAAACAAAABAAAAAMAAABzLAAAAHQAdAFkAYMCcw6IAFMAdAKgA4gAoQGHAGYBZAJkA4QIgwF9AXwBUwBkBFMAKQV6RURlY29yYXRvciB0byB0ZW1wb3JhcmlseSB0dXJuIG9mZiB0cmFjaW5nIGZvciB0aGUgZHVyYXRpb24gb2YgYSB0ZXN0LtoIZ2V0dHJhY2VjAAAAAAAAAAADAAAACQAAAB8AAABzLgAAAHQAoAGhAH0CehR0AKACZAChAQEAiAB8AHwBjgFTAHQAoAJ8AqEBAQBYAGQAUwApAU4pA3JrAAAAcrMBAADaCHNldHRyYWNlKQNyvwAAAHIrAQAAWg5vcmlnaW5hbF90cmFjZSkBcowAAAByWwAAAHJcAAAAcsYAAAA1BgAAcwoAAAAAAggBAgEKAQoCehtub190cmFjaW5nLjxsb2NhbHM+LndyYXBwZXJOKQRy1gAAAHJrAAAAcscAAAByyAAAACkCcowAAAByxgAAAHJbAAAAKQFyjAAAAHJcAAAA2gpub190cmFjaW5nMAYAAHMIAAAAAAIKAQQCFghytQEAAGMBAAAAAAAAAAEAAAADAAAAQwAAAHMMAAAAdAB0AXwAgwGDAVMAKQFhBgEAAERlY29yYXRvciBmb3IgdGVzdHMgd2hpY2ggaW52b2x2ZSByZWZlcmVuY2UgY291bnRpbmcuCgogICAgVG8gc3RhcnQsIHRoZSBkZWNvcmF0b3IgZG9lcyBub3QgcnVuIHRoZSB0ZXN0IGlmIGlzIG5vdCBydW4gYnkgQ1B5dGhvbi4KICAgIEFmdGVyIHRoYXQsIGFueSB0cmFjZSBmdW5jdGlvbiBpcyB1bnNldCBkdXJpbmcgdGhlIHRlc3QgdG8gcHJldmVudAogICAgdW5leHBlY3RlZCByZWZjb3VudHMgY2F1c2VkIGJ5IHRoZSB0cmFjZSBmdW5jdGlvbi4KCiAgICApAnK1AQAAckQAAAApAXJ6AQAAclsAAAByWwAAAHJcAAAA2g1yZWZjb3VudF90ZXN0QAYAAHMCAAAAAAhytgEAAGMCAAAAAAAAAAQAAAAEAAAAQwAAAHNSAAAAZwB9AnhCfABqAEQAXTh9A3QBfAN0AmoDgwJyMnQEfAN8AYMCAQB8AqAFfAOhAQEAcQx8AXwDgwFyDHwCoAV8A6EBAQBxDFcAfAJ8AF8AZAFTACkCej5SZWN1cnNpdmVseSBmaWx0ZXIgdGVzdCBjYXNlcyBpbiBhIHN1aXRlIGJhc2VkIG9uIGEgcHJlZGljYXRlLk4pBloGX3Rlc3RzclgBAAByZQAAANoJVGVzdFN1aXRl2g1fZmlsdGVyX3N1aXRlcncAAAApBNoFc3VpdGVaBHByZWRaCG5ld3Rlc3RzcnoBAAByWwAAAHJbAAAAclwAAAByuAEAAEsGAABzEAAAAAACBAEMAQwBCgEMAggBDgFyuAEAAGMBAAAAAAAAAAQAAAAFAAAAQwAAAHOUAAAAdAByGHQBagJ0A2oEZAF0BWQCjQN9AW4GdAaDAH0BfAGgB3wAoQF9AnwCoAihAHOQdAl8AmoKgwFkA2sCclR8AmoLc1R8AmoKZAQZAGQDGQB9A240dAl8AmoLgwFkA2sCcnh8AmoKc3h8AmoLZAQZAGQDGQB9A24QZAV9A3QAc4h8A2QGNwB9A3QMfAODAYIBZAdTACkIejJSdW4gdGVzdHMgZnJvbSBhIHVuaXR0ZXN0LlRlc3RTdWl0ZS1kZXJpdmVkIGNsYXNzLnKBAAAAKQLaCXZlcmJvc2l0eXJRAAAAcn0AAAByAQAAAHoYbXVsdGlwbGUgZXJyb3JzIG9jY3VycmVkeiE7IHJ1biBpbiB2ZXJib3NlIG1vZGUgZm9yIGRldGFpbHNOKQ1yEwAAAHJlAAAAWg5UZXh0VGVzdFJ1bm5lcnJrAAAAcn8AAAByUQAAAHI+AAAAcqoBAABaDXdhc1N1Y2Nlc3NmdWxyDAEAANoGZXJyb3JzWghmYWlsdXJlc3IQAAAAKQRyuQEAAFoGcnVubmVycnwBAAByWwEAAHJbAAAAclsAAAByXAAAANoKX3J1bl9zdWl0ZVcGAABzHAAAAAACBAEKAQoCBgIKAQgBFAEQARQBEAIEAQQACAFyvAEAAGMAAAAAAAAAAAUAAAAHAAAARwAAAHOcAAAAdABqAXQAagJmAn0BdACgAaEAfQJ4aHwARABdYH0DdAN8A3QEgwJyVHwDdAVqBmsGckp8AqAHdACgCHQFagZ8AxkAoQGhAQEAcXp0CWQBgwGCAXEadAN8A3wBgwJyanwCoAd8A6EBAQBxGnwCoAd0AKAKfAOhAaEBAQBxGlcAZAJkA4QAfQR0C3wCfASDAgEAdAx8AoMBAQBkBFMAKQV6MVJ1biB0ZXN0cyBmcm9tIHVuaXR0ZXN0LlRlc3RDYXNlLWRlcml2ZWQgY2xhc3Nlcy56KXN0ciBhcmd1bWVudHMgbXVzdCBiZSBrZXlzIGluIHN5cy5tb2R1bGVzYwEAAAAAAAAAAgAAAAUAAABTAAAAczgAAAB0AGQAawhyDGQBUwB4JnwAoAGhAKACZAKhAUQAXRR9AXQDoAR8AXQAoQJyHGQBUwBxHFcAZANTACkETlRyagAAAEYpBdoLbWF0Y2hfdGVzdHPaAmlkcoYAAADaB2ZubWF0Y2haC2ZubWF0Y2hjYXNlKQJyegEAAHJnAAAAclsAAAByWwAAAHJcAAAA2gljYXNlX3ByZWR5BgAAcwwAAAAAAQgBBAEUAQwBCAF6H3J1bl91bml0dGVzdC48bG9jYWxzPi5jYXNlX3ByZWROKQ1yZQAAAHK3AQAAWghUZXN0Q2FzZXJYAQAAcgcAAAByawAAAHJsAAAAWgdhZGRUZXN0Wg1maW5kVGVzdENhc2Vzcr4AAABaCW1ha2VTdWl0ZXK4AQAAcrwBAAApBdoHY2xhc3Nlc1oLdmFsaWRfdHlwZXNyuQEAANoDY2xzcsABAAByWwAAAHJbAAAAclwAAAByPwAAAGsGAABzGgAAAAACDAEIAQoBCgEKARgCCgEKAQwCFAEIBwoBYwMAAAAAAAAABgAAAAUAAABDAAAAc2AAAABkAWQCbAB9A3wBZAJrCHIWdAF9AW4EZAJ9AXwDagJ8AHwBfAJkA40DXAJ9BH0FfARyQnQDZAR8BHwFZgIWAIMBggF0AXJYdARkBXwAagV8BWYCFgCDAQEAfAR8BWYCUwApBmEIAQAAUnVuIGRvY3Rlc3Qgb24gdGhlIGdpdmVuIG1vZHVsZS4gIFJldHVybiAoI2ZhaWx1cmVzLCAjdGVzdHMpLgoKICAgIElmIG9wdGlvbmFsIGFyZ3VtZW50IHZlcmJvc2l0eSBpcyBub3Qgc3BlY2lmaWVkIChvciBpcyBOb25lKSwgcGFzcwogICAgc3VwcG9ydCdzIGJlbGllZiBhYm91dCB2ZXJib3NpdHkgb24gdG8gZG9jdGVzdC4gIEVsc2UgZG9jdGVzdCdzCiAgICB1c3VhbCBiZWhhdmlvciBpcyB1c2VkIChpdCBzZWFyY2hlcyBzeXMuYXJndiBmb3IgLXYpLgogICAgcgEAAABOKQJyEwAAANoLb3B0aW9uZmxhZ3N6GCVkIG9mICVkIGRvY3Rlc3RzIGZhaWxlZHosZG9jdGVzdCAoJXMpIC4uLiAlZCB0ZXN0cyB3aXRoIHplcm8gZmFpbHVyZXMpBtoHZG9jdGVzdHITAAAAWgd0ZXN0bW9kchAAAAByAgEAAHJXAAAAKQZyeQAAAHK6AQAAcsMBAAByxAEAAHJ0AAAAcokBAAByWwAAAHJbAAAAclwAAAByQAAAAJIGAABzFgAAAAAICAIIAQYCBAIUAQQBEAEEAQQBDgFjAAAAAAAAAAAAAAAAAgAAAEMAAABzDAAAAHQAagGgAqEAZgFTACkBTikDcmsAAABybAAAAHIsAQAAclsAAAByWwAAAHJbAAAAclwAAADaDW1vZHVsZXNfc2V0dXCtBgAAcwIAAAAAAXLFAQAAYwEAAAAAAAAAAwAAAAMAAABDAAAAc1IAAABkAWQChAB0AGoBoAKhAEQAgwF9AXggdAN0BHQAagGDAYMBRABdDn0CdABqAaAFoQABAHEkVwB0AGoBoAZ8AaEBAQB0AGoBoAZ8AKEBAQBkAFMAKQNOYwEAAAAAAAAAAwAAAAUAAABTAAAAcyIAAABnAHwAXRpcAn0BfQJ8AaAAZAChAXIEfAF8AmYCkQJxBFMAKQF6CmVuY29kaW5ncy4pAXJuAAAAKQNy7QAAAHJAAQAAckEBAAByWwAAAHJbAAAAclwAAABy7gAAALQGAABzBAAAAAYABgF6I21vZHVsZXNfY2xlYW51cC48bG9jYWxzPi48bGlzdGNvbXA+KQdyawAAAHJsAAAAcngAAAByCAAAAHIMAQAAcgABAAByLwEAACkDWgpvbGRtb2R1bGVzWgllbmNvZGluZ3NyIwEAAHJbAAAAclsAAAByXAAAANoPbW9kdWxlc19jbGVhbnVwsAYAAHMKAAAAAAQUBRQBDgIMB3LGAQAAYwAAAAAAAAAAAAAAAAIAAABDAAAAcxYAAAB0AHIOdACgAaEAZgFTAGQBUwBkAFMAKQJOKQFyfQAAACkC2gdfdGhyZWFk2gZfY291bnRyWwAAAHJbAAAAclsAAAByXAAAAHJBAAAA0wYAAHMGAAAAAAEEAQoCYwEAAAAAAAAABAAAAAQAAABDAAAAcz4AAAB0AHMIZABTAGQBfQF4LHQBfAGDAUQAXSB9AnQAoAKhAH0DfAN8AGsCcixQAHQDoARkAqEBAQBxFlcAZABTACkDTukKAAAAZ5qZmZmZmbk/KQVyxwEAAHIIAAAAcsgBAAByiAAAAHKJAAAAKQRaCm5iX3RocmVhZHNaCl9NQVhfQ09VTlTaBWNvdW50clwBAAByWwAAAHJbAAAAclwAAAByQgAAANkGAABzEAAAAAABBAEEAgQBDgEIAQgBAgFjAQAAAAAAAAACAAAABAAAAAMAAABzIgAAAHQAcwiIAFMAdAGgAogAoQGHAGYBZAFkAoQIgwF9AXwBUwApA3q/VXNlIHRoaXMgZnVuY3Rpb24gd2hlbiB0aHJlYWRzIGFyZSBiZWluZyB1c2VkLiAgVGhpcyB3aWxsCiAgICBlbnN1cmUgdGhhdCB0aGUgdGhyZWFkcyBhcmUgY2xlYW5lZCB1cCBldmVuIHdoZW4gdGhlIHRlc3QgZmFpbHMuCiAgICBJZiB0aHJlYWRpbmcgaXMgdW5hdmFpbGFibGUgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuCiAgICBjAAAAAAAAAAACAAAACAAAABcAAABzHgAAAHQAgwB9AXoIiAB8AI4AUwB0AXwBjgABAFgAZABTACkBTikCckEAAAByQgAAACkCcr8AAADaA2tleSkBcowAAAByWwAAAHJcAAAAcskAAADtBgAAcwgAAAAAAgYBAgEIAnofcmVhcF90aHJlYWRzLjxsb2NhbHM+LmRlY29yYXRvcikDcscBAAByxwAAAHLIAAAAKQJyjAAAAHLJAAAAclsAAAApAXKMAAAAclwAAADaDHJlYXBfdGhyZWFkc+UGAABzCAAAAAAFBAEEAhYHcswBAABjAAAAAAAAAAADAAAABgAAAEMAAABzSAAAAHQAdAFkAYMCckRkAn0AeDR5IHQBoAJ8AHQBagOhAlwCfQF9AnwBZANrAnIuUABXAHEQAQABAAEAUABZAHEQWABxEFcAZARTACkFeuVVc2UgdGhpcyBmdW5jdGlvbiBhdCB0aGUgZW5kIG9mIHRlc3RfbWFpbigpIHdoZW5ldmVyIHN1Yi1wcm9jZXNzZXMKICAgIGFyZSBzdGFydGVkLiAgVGhpcyB3aWxsIGhlbHAgZW5zdXJlIHRoYXQgbm8gZXh0cmEgY2hpbGRyZW4gKHpvbWJpZXMpCiAgICBzdGljayBhcm91bmQgdG8gaG9nIHJlc291cmNlcyBhbmQgY3JlYXRlIHByb2JsZW1zIHdoZW4gbG9va2luZwogICAgZm9yIHJlZmxlYWtzLgogICAg2gd3YWl0cGlkcvsAAAByAQAAAE4pBHLWAAAAcoQAAAByzQEAANoHV05PSEFORykDWgthbnlfcHJvY2Vzc3KWAQAA2gZzdGF0dXNyWwAAAHJbAAAAclwAAAByQwAAAPYGAABzEgAAAAAJCgEEAQIBAgISAQgBBgEGAWMDAAAAAAAAAAQAAAAKAAAAYwAAAHNkAAAAdAB8AHwBgwJyPHQBfAB8AYMCfQN0AnwAfAF8AoMDAQB6CmQBVgABAFcAZAF0AnwAfAF8A4MDAQBYAG4kdAJ8AHwBfAKDAwEAegpkAVYAAQBXAGQBdAN8AHwBgwIBAFgAZAFTACkCYW0BAABUZW1wb3Jhcnkgc3dhcCBvdXQgYW4gYXR0cmlidXRlIHdpdGggYSBuZXcgb2JqZWN0LgoKICAgIFVzYWdlOgogICAgICAgIHdpdGggc3dhcF9hdHRyKG9iaiwgImF0dHIiLCA1KToKICAgICAgICAgICAgLi4uCgogICAgICAgIFRoaXMgd2lsbCBzZXQgb2JqLmF0dHIgdG8gNSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSB3aXRoOiBibG9jaywKICAgICAgICByZXN0b3JpbmcgdGhlIG9sZCB2YWx1ZSBhdCB0aGUgZW5kIG9mIHRoZSBibG9jay4gSWYgYGF0dHJgIGRvZXNuJ3QKICAgICAgICBleGlzdCBvbiBgb2JqYCwgaXQgd2lsbCBiZSBjcmVhdGVkIGFuZCB0aGVuIGRlbGV0ZWQgYXQgdGhlIGVuZCBvZiB0aGUKICAgICAgICBibG9jay4KICAgIE4pBHLWAAAAcnoAAAByZAEAANoHZGVsYXR0cikEcnwAAAByDwEAANoHbmV3X3ZhbNoIcmVhbF92YWxyWwAAAHJbAAAAclwAAABySAAAAAoHAABzFAAAAAANCgEKAQwBAgEKAhACDAECAQoCYwMAAAAAAAAABAAAAAkAAABjAAAAc1AAAAB8AXwAawZyMHwAfAEZAH0DfAJ8AHwBPAB6CmQBVgABAFcAZAF8A3wAfAE8AFgAbhx8AnwAfAE8AHoKZAFWAAEAVwBkAXwAfAE9AFgAZAFTACkCYWsBAABUZW1wb3Jhcnkgc3dhcCBvdXQgYW4gaXRlbSB3aXRoIGEgbmV3IG9iamVjdC4KCiAgICBVc2FnZToKICAgICAgICB3aXRoIHN3YXBfaXRlbShvYmosICJpdGVtIiwgNSk6CiAgICAgICAgICAgIC4uLgoKICAgICAgICBUaGlzIHdpbGwgc2V0IG9ialsiaXRlbSJdIHRvIDUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgd2l0aDogYmxvY2ssCiAgICAgICAgcmVzdG9yaW5nIHRoZSBvbGQgdmFsdWUgYXQgdGhlIGVuZCBvZiB0aGUgYmxvY2suIElmIGBpdGVtYCBkb2Vzbid0CiAgICAgICAgZXhpc3Qgb24gYG9iamAsIGl0IHdpbGwgYmUgY3JlYXRlZCBhbmQgdGhlbiBkZWxldGVkIGF0IHRoZSBlbmQgb2YgdGhlCiAgICAgICAgYmxvY2suCiAgICBOclsAAAApBHJ8AAAA2gRpdGVtctEBAABy0gEAAHJbAAAAclsAAAByXAAAAHJHAAAAJQcAAHMUAAAAAA0IAQgBCAECAQoCDAIIAQIBCgJjAQAAAAAAAAABAAAABQAAAEMAAABzFgAAAHQAoAFkAWQCfAChA6ACoQB9AHwAUwApA3rRU3RyaXAgdGhlIHN0ZGVyciBvZiBhIFB5dGhvbiBwcm9jZXNzIGZyb20gcG90ZW50aWFsIGRlYnVnIG91dHB1dAogICAgZW1pdHRlZCBieSB0aGUgaW50ZXJwcmV0ZXIuCgogICAgVGhpcyB3aWxsIHR5cGljYWxseSBiZSBydW4gb24gdGhlIHJlc3VsdCBvZiB0aGUgY29tbXVuaWNhdGUoKSBtZXRob2QKICAgIG9mIGEgc3VicHJvY2Vzcy5Qb3BlbiBvYmplY3QuCiAgICBzEgAAAFxbXGQrIHJlZnNcXVxyP1xuP3J2AAAAKQNyGQEAANoDc3Vi2gVzdHJpcCkBclkBAAByWwAAAHJbAAAAclwAAADaE3N0cmlwX3B5dGhvbl9zdGRlcnJABwAAcwQAAAAABxIBctYBAABjAAAAAAAAAAAAAAAAAgAAAEMAAABzCAAAAHQAoAGhAFMAKQF6blJldHVybiBhIGxpc3Qgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyByZXByb2R1Y2luZyB0aGUgY3VycmVudAogICAgc2V0dGluZ3MgaW4gc3lzLmZsYWdzIGFuZCBzeXMud2Fybm9wdGlvbnMuKQJynQEAANocX2FyZ3NfZnJvbV9pbnRlcnByZXRlcl9mbGFnc3JbAAAAclsAAAByWwAAAHJcAAAA2hthcmdzX2Zyb21faW50ZXJwcmV0ZXJfZmxhZ3NKBwAAcwIAAAAAA3LYAQAAYwAAAAAAAAAAAAAAAAIAAABAAAAAcywAAABlAFoBZABaAmQBZAKEAFoDZANkBIQAWgRkBWQGhABaBWQHZAiEAFoGZAlTACkKckkAAABjAgAAAAAAAAACAAAABAAAAEMAAABzGgAAAHQAagFqAqADfABkAaECAQB8AXwAXwRkAFMAKQJOcgEAAAApBdoHbG9nZ2luZ9oIaGFuZGxlcnPaEEJ1ZmZlcmluZ0hhbmRsZXJyCwEAANoHbWF0Y2hlcikCcgoBAABy3AEAAHJbAAAAclsAAAByXAAAAHILAQAAVAcAAHMEAAAAAAYQAXoUVGVzdEhhbmRsZXIuX19pbml0X19jAQAAAAAAAAABAAAAAQAAAEMAAABzBAAAAGQBUwApAk5GclsAAAApAXIKAQAAclsAAAByWwAAAHJcAAAA2gtzaG91bGRGbHVzaF0HAABzAgAAAAABehdUZXN0SGFuZGxlci5zaG91bGRGbHVzaGMCAAAAAAAAAAIAAAADAAAAQwAAAHMcAAAAfACgAHwBoQEBAHwAagGgAnwBagOhAQEAZABTACkBTikEcpcBAADaBmJ1ZmZlcnJ3AAAA2ghfX2RpY3RfXykCcgoBAAByEwEAAHJbAAAAclsAAAByXAAAANoEZW1pdGAHAABzBAAAAAABCgF6EFRlc3RIYW5kbGVyLmVtaXRjAQAAAAAAAAAEAAAABAAAAEsAAABzLgAAAGQBfQJ4JHwAagBEAF0afQN8AGoBagJ8A2YBfAGOAXIMZAJ9AlAAcQxXAHwCUwApA3pXCiAgICAgICAgTG9vayBmb3IgYSBzYXZlZCBkaWN0IHdob3NlIGtleXMvdmFsdWVzIG1hdGNoIHRoZSBzdXBwbGllZCBhcmd1bWVudHMuCiAgICAgICAgRlQpA3LeAQAActwBAADaB21hdGNoZXMpBHIKAQAAcisBAAByfAEAANoBZHJbAAAAclsAAAByXAAAAHLhAQAAZAcAAHMMAAAAAAQEAQwBEAEEAQYBehNUZXN0SGFuZGxlci5tYXRjaGVzTikHclcAAAByWAAAAHJZAAAAcgsBAABy3QEAAHLgAQAAcuEBAAByWwAAAHJbAAAAclsAAAByXAAAAHJJAAAAUwcAAHMIAAAACAEICQgDCARjAAAAAAAAAAAAAAAAAgAAAEAAAABzIAAAAGUAWgFkAFoCZAFaA2QCZAOEAFoEZARkBYQAWgVkBlMAKQdySgAAACkCcmkAAAByGAEAAGMCAAAAAAAAAAcAAAAGAAAASwAAAHM8AAAAZAF9A3gyfAJEAF0qfQR8AnwEGQB9BXwBoAB8BKEBfQZ8AKABfAR8BnwFoQNzCmQCfQNQAHEKVwB8A1MAKQNhLgEAAAogICAgICAgIFRyeSB0byBtYXRjaCBhIHNpbmdsZSBkaWN0IHdpdGggdGhlIHN1cHBsaWVkIGFyZ3VtZW50cy4KCiAgICAgICAgS2V5cyB3aG9zZSB2YWx1ZXMgYXJlIHN0cmluZ3MgYW5kIHdoaWNoIGFyZSBpbiBzZWxmLl9wYXJ0aWFsX21hdGNoZXMKICAgICAgICB3aWxsIGJlIGNoZWNrZWQgZm9yIHBhcnRpYWwgKGkuZS4gc3Vic3RyaW5nKSBtYXRjaGVzLiBZb3UgY2FuIGV4dGVuZAogICAgICAgIHRoaXMgc2NoZW1lIHRvIChmb3IgZXhhbXBsZSkgZG8gcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nLCBldGMuCiAgICAgICAgVEYpAnK4AAAA2gttYXRjaF92YWx1ZSkHcgoBAABy4gEAAHIrAQAAcnwBAAByQAEAAHJBAQAA2gJkdnJbAAAAclsAAAByXAAAAHLhAQAAcwcAAHMQAAAAAAgEAQoBCAEKAQ4BBAEGAXoPTWF0Y2hlci5tYXRjaGVzYwQAAAAAAAAABQAAAAMAAABDAAAAc0gAAAB0AHwDgwF0AHwCgwFrA3IWZAF9BG4udAB8AoMBdAFrCXMsfAF8AGoCawdyNnwDfAJrAn0Ebg58AqADfAOhAWQCawV9BHwEUwApA3pUCiAgICAgICAgVHJ5IHRvIG1hdGNoIGEgc2luZ2xlIHN0b3JlZCB2YWx1ZSAoZHYpIHdpdGggYSBzdXBwbGllZCB2YWx1ZSAodikuCiAgICAgICAgRnIBAAAAKQRy1AAAAHIHAAAA2hBfcGFydGlhbF9tYXRjaGVz2gRmaW5kKQVyCgEAAHJAAQAAcuQBAAByQQEAAHJ8AQAAclsAAAByWwAAAHJcAAAAcuMBAACEBwAAcwwAAAAABBABBgEWAQoCDgF6E01hdGNoZXIubWF0Y2hfdmFsdWVOKQZyVwAAAHJYAAAAclkAAABy5QEAAHLhAQAAcuMBAAByWwAAAHJbAAAAclsAAAByXAAAAHJKAAAAbwcAAHMGAAAACAIEAggRYwAAAAAAAAAAAgAAAAoAAABDAAAAc1oAAAB0AGQAawlyDHQAUwB0AWQBFwB9AHkUdAKgA3QBfAChAgEAZAJ9AVcAbh4EAHQEdAV0BmYDawpyRgEAAQABAGQDfQFZAG4MWAB0AqAHfAChAQEAfAFhAHwBUwApBE5ySwAAAFRGKQjaDF9jYW5fc3ltbGlua3IlAAAAcoQAAADaB3N5bWxpbmtynAAAANoTTm90SW1wbGVtZW50ZWRFcnJvcnJ7AAAAch4BAAApAloMc3ltbGlua19wYXRo2gNjYW5yWwAAAHJbAAAAclwAAABySwAAAJIHAABzFgAAAAACCAEEAQgBAgEMAQgBFAEKAgoBBAFjAQAAAAAAAAADAAAAAwAAAEMAAABzIAAAAHQAgwB9AWQBfQJ8AXISfABTAHQBoAJ8AqEBfACDAVMAKQJ6OFNraXAgZGVjb3JhdG9yIGZvciB0ZXN0cyB0aGF0IHJlcXVpcmUgZnVuY3Rpb25hbCBzeW1saW5reipSZXF1aXJlcyBmdW5jdGlvbmFsIHN5bWxpbmsgaW1wbGVtZW50YXRpb24pA3JLAAAAcmUAAAByDQAAACkDcnoBAADaAm9rcmkAAAByWwAAAHJbAAAAclwAAAByTAAAAKEHAABzBgAAAAACBgEEAWMAAAAAAAAAAAYAAAAJAAAAQwAAAHPKAAAAdABkAGsJcgx0AFMAdAF0AmQBgwJzHGQCfQBupnQDoAShAFwCfQF9AnqGdAV0BmQDgwKPcn0DeVJ0AqAHfAFkBGQFoQMBAHQCoAd8A6AIoQBkBGQFoQMBAHQJoAqhAH0EdAugDGQGfAShAn0FfAVkAGsIcIR0DXwFoA5kB6EBgwFkCGsFfQBXAG4YBAB0D2sKcqABAAEAAQBkAn0AWQBuAlgAVwBkAFEAUgBYAFcAZAB0EHQGgwEBAHQQfAKDAQEAWAB8AGEAfABTACkJTtoIc2V0eGF0dHJGcvEAAABzCQAAAHVzZXIudGVzdHJ2AAAAeg0yLjYuKFxkezEsMn0pcn0AAADpJwAAACkR2gpfY2FuX3hhdHRyctYAAAByhAAAANoIdGVtcGZpbGXaB21rc3RlbXByCQAAAHIlAAAAcuwBAABy8gAAAHK6AAAAcrwAAAByGQEAAHIaAQAAcgoAAAByjwEAAHKcAAAAchkAAAApBnLqAQAAWgZ0bXBfZnBaCHRtcF9uYW1l2gJmcFoOa2VybmVsX3ZlcnNpb25yhwEAAHJbAAAAclsAAAByXAAAANoJY2FuX3hhdHRyqAcAAHMmAAAAAAIIAQQBCgEGAgwBAgEMAQIDDgESAggBDAEeAQ4BGAIIAQoBBAFy8gEAAGMBAAAAAAAAAAMAAAADAAAAQwAAAHMgAAAAdACDAH0BZAF9AnwBchJ8AFMAdAGgAnwCoQF8AIMBUwApAnpEU2tpcCBkZWNvcmF0b3IgZm9yIHRlc3RzIHRoYXQgcmVxdWlyZSBmdW5jdGlvbmFsIGV4dGVuZGVkIGF0dHJpYnV0ZXN6KG5vIG5vbi1icm9rZW4gZXh0ZW5kZWQgYXR0cmlidXRlIHN1cHBvcnQpA3LyAQAAcmUAAAByDQAAACkDcnoBAABy6wEAAHJpAAAAclsAAAByWwAAAHJcAAAAck0AAADDBwAAcwYAAAAAAgYBBAFjAAAAAAAAAAAEAAAACQAAAGMAAABzSAAAAGQBZAJsAH0AfABqAWoCfQFkA30CfAGgA3wCoQF9A3wBoAN8A3wCQgChAQEAegpkAlYAAQBXAGQCfAGgA3wDoQEBAFgAZAJTACkEejtEaXNhYmxlIFdpbmRvd3MgRXJyb3IgUmVwb3J0aW5nIGRpYWxvZ3MgdXNpbmcgU2V0RXJyb3JNb2RlLnIBAAAATnKBAAAAKQRyqgAAAHKuAAAAWghrZXJuZWwzMloMU2V0RXJyb3JNb2RlKQRyqgAAAFoDazMyWhVTRU1fTk9HUEZBVUxURVJST1JCT1haDm9sZF9lcnJvcl9tb2RlclsAAAByWwAAAHJcAAAAclYAAADLBwAAcxAAAAAABggBCAEEAQoBDgECAQoCYwAAAAAAAAAAAAAAAAEAAABjAAAAcwoAAABkAFYAAQBkAFMAKQFOclsAAAByWwAAAHJbAAAAclsAAAByXAAAAHJWAAAA3AcAAHMCAAAAAAJjBAAAAAAAAAAFAAAACQAAAAMAAABzcgAAAHQAiAKIAYMCAQBkAYkAeQ6IAmoBiAEZAIkDVwBuJAQAdAJ0A2YCawpyQAEAAQABAHQAiAKIAWQCgwOJA1kAbgZYAGQDiQCHAIcBhwKHA2YEZARkBYQIfQR8AKAEfAShAQEAdAWIAogBfAODAwEAZAJTACkGevNPdmVycmlkZSAnb2JqZWN0X3RvX3BhdGNoJy4nYXR0cl9uYW1lJyB3aXRoICduZXdfdmFsdWUnLgoKICAgIEFsc28sIGFkZCBhIGNsZWFudXAgcHJvY2VkdXJlIHRvICd0ZXN0X2luc3RhbmNlJyB0byByZXN0b3JlCiAgICAnb2JqZWN0X3RvX3BhdGNoJyB2YWx1ZSBmb3IgJ2F0dHJfbmFtZScuCiAgICBUaGUgJ2F0dHJfbmFtZScgc2hvdWxkIGJlIGEgdmFsaWQgYXR0cmlidXRlIGZvciAnb2JqZWN0X3RvX3BhdGNoJy4KCiAgICBGTlRjAAAAAAAAAAAAAAAABAAAABMAAABzIAAAAIgAchJ0AIgCiAGIA4MDAQBuCnQBiAKIAYMCAQBkAFMAKQFOKQJyZAEAAHLQAQAAclsAAAApBNoNYXR0cl9pc19sb2NhbNoJYXR0cl9uYW1l2g9vYmplY3RfdG9fcGF0Y2jaCW9sZF92YWx1ZXJbAAAAclwAAADaB2NsZWFudXD3BwAAcwYAAAAAAQQBDgJ6FnBhdGNoLjxsb2NhbHM+LmNsZWFudXApBnJ6AAAAct8BAAByewAAAHJyAAAAWgphZGRDbGVhbnVwcmQBAAApBVoNdGVzdF9pbnN0YW5jZXL1AQAAcvQBAABaCW5ld192YWx1ZXL3AQAAclsAAAApBHLzAQAAcvQBAABy9QEAAHL2AQAAclwAAADaBXBhdGNo4QcAAHMUAAAAAAoKAwQBAgEOARIBEgIEAxIGCgNy+AEAACkBVCkBRikDclsAAAByWwAAAEYpAUYpAU4pA3LdAAAARk4pAUYpAnJKAQAAclsAAAApAVQpAU4pAk5yAQAAACnRcloAAABaCl9fZnV0dXJlX19yAgAAAHIDAAAAcgQAAAByBQAAAFoGZnV0dXJlcgYAAABaD2Z1dHVyZS5idWlsdGluc3IHAAAAcggAAAByCQAAAHIKAAAAcgsAAAByDAAAANoKY29udGV4dGxpYnKdAAAAcscAAAByaAEAAHLMAAAAcmsAAAByhAAAAHK6AAAAWgZzaHV0aWxyXgAAAHJlAAAActYAAABaCXVuaXR0ZXN0MnJjAAAAchkBAABynQEAAHKiAAAAcogAAAByDgAAAHJkAAAA2glkaXN0dXRpbHNyvwEAAFoQbG9nZ2luZy5oYW5kbGVyc3LZAQAAcm4BAABy7wEAAHIVAQAAcscBAADaCXRocmVhZGluZ9oGdGhyZWFkWhdtdWx0aXByb2Nlc3NpbmcucHJvY2Vzc1oPbXVsdGlwcm9jZXNzaW5n2gR6bGliWgRnemlw2gNiejJaBGx6bWHaB19fYWxsX1/aCUV4Y2VwdGlvbnIPAAAAchAAAAByZgAAAHIRAAAA2g5jb250ZXh0bWFuYWdlcnJiAAAAchIAAABycQAAAHJzAAAAclIAAAByTgAAAHJGAAAAchMAAAByFAAAAHIVAAAAcpEBAAByUQAAAHK9AQAAcn4AAAByFgAAAHIXAAAAchgAAABybgAAAHKSAAAAcpQAAABylgAAAHKbAAAAchkAAABylQAAAHIaAAAAcqcAAAByGwAAAHKqAAAAWg9jdHlwZXMud2ludHlwZXNysgAAAHIcAAAAch0AAAByygAAAHIeAAAAch8AAAByIAAAAHImAAAAWgZIT1NUdjZy0wAAAHLVAAAAciEAAAByIgAAAHLbAAAAciMAAAByUAAAAFoNU09DS19NQVhfU0laRVoKc2tpcFVubGVzc3JPAAAAclQAAAByVQAAAHIkAAAAcmcAAAByJQAAAHKXAQAAcpgBAABy3wAAAHInAAAAcigAAAByOQAAAHIBAQAAcikAAAByKgAAAHIrAAAAcvMAAAByLAAAAHItAAAA2gZvYmplY3RyBwEAAHIoAQAAci4AAAByLwAAANoPY29sbGVjdGlvbnMuYWJj2gtjb2xsZWN0aW9uc9oDYWJj2g5NdXRhYmxlTWFwcGluZ1oGbXliYXNl2ghVc2VyRGljdFoJRGljdE1peGlucjAAAAByQgEAAHIxAAAAcmEBAAByUAEAAHI1AAAAcp8AAAByTAEAAHI2AAAAcjcAAAByOgAAAHJmAQAAcjIAAAByNAAAAHIzAAAAcmkBAAByagEAAHJtAQAAcnABAABycQEAAHJ0AQAAcnMBAABydQEAAHJ5AQAAcngBAAByfQEAAHI4AAAAclMAAAByigEAAHKLAQAAcpMBAABaA180R3KoAQAAcpIBAAByOwAAAHKVAQAAcjwAAAByPQAAAHI+AAAAcqsBAAByrAEAAHJEAAAAcq4BAAByrwEAAHJFAAAAcrUBAABytgEAAHK4AQAAcrwBAAByPwAAAHJAAAAAcsUBAAByxgEAAHJBAAAAckIAAAByzAEAAHJDAAAAckgAAAByRwAAAHLWAQAActgBAABy2gEAAHLbAQAAckkAAABySgAAAHLnAQAAcksAAAByTAAAAHLuAQAAcvIBAAByTQAAAHJWAAAAcvgBAAByWwAAAHJbAAAAclsAAAByXAAAANoIPG1vZHVsZT4FAAAAc8gBAAAEAhgCDAEgAggBCAEIAQgBCAEIAQgBCAEIAQgBCAIKAQgCCAIIAQgBCAEIAQIBDAEQAhIBCAEIAQgBCAICAQgBEgIUARABBAEKAQIBDAEQAQoCAgEMARABCgICAQwBEAEKAgIBDAEQAQoCAgEMARABCgMKAQYBCgEGAQYBDAEIAQgBBgEIAQYBCAEIAQgBCAEIAQYBCAEMAxADEAMSCAQBDA4KDQgOCA4ICwo0CAkEAQQBBAIEAQQBBAUEAQgECAMIBg4BCiEIAwgDCgwGAQYBBgIICAgICAcIEAgSDgEIAQgBChYIAwgFChIIGwgJCAkIHQQBBAMSPgwlCA8GCAQHBAcMAgwCDAIMAwwCBgIEBBB9CAIEAQwnDAEOCg4PCAUIBwgMCAQILRAXDCwOGBAgCAEIAQoCCAEGAxA1EBkQHA4BEAEOAwQBDkQODAgJCAMIBAgQDgsIDAQBBAEMAQgBBAEIAggDCAQEAQQCCA4IJAgjBAEIAQgBCAIGAggVEB4MLQgSEAYIAwgICAYMDQgKCAsIEAgLCAwIFAgnDBsIAwgjCAYIDAgRCBQOGw4bCAoICRQcECIEAQgPCAYEAQgbCAcOARARDgU=
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 8
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
pystone.cpython-37.opt-1.pyc
6.53 KB
lrw-r--r--
2023-11-14 12:35:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pystone.cpython-37.pyc
6.53 KB
lrw-r--r--
2023-11-14 12:35:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ssl_servers.cpython-37.opt-1.pyc
6.82 KB
lrw-r--r--
2023-11-14 12:35:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ssl_servers.cpython-37.pyc
6.82 KB
lrw-r--r--
2023-11-14 12:35:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
support.cpython-37.opt-1.pyc
53.68 KB
lrw-r--r--
2023-11-14 12:35:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
support.cpython-37.pyc
53.68 KB
lrw-r--r--
2023-11-14 12:35:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.opt-1.pyc
438 B
lrw-r--r--
2023-11-14 12:35:07
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
438 B
lrw-r--r--
2023-11-14 12:35:07
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).