REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 76.11 KB
Close
//opt/alt/python33/lib64/python3.3/http/__pycache__/cookiejar.cpython-33.pyc
Text
Base64
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ICAgXAogICAgICAgICAgICBGaWxlQ29va2llSmFyICAgICAgXCAgICAgIFwKICAgICAgICAgICAgIC8gICAgfCAgIFwgICAgICAgICBcICAgICAgXAogTW96aWxsYUNvb2tpZUphciB8IExXUENvb2tpZUphciBcICAgICAgXAogICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgIFwKICAgICAgICAgICAgICAgICAgfCAgIC0tLU1TSUVCYXNlIHwgICAgICAgXAogICAgICAgICAgICAgICAgICB8ICAvICAgICAgfCAgICAgfCAgICAgICAgXAogICAgICAgICAgICAgICAgICB8IC8gICBNU0lFREJDb29raWVKYXIgQlNEREJDb29raWVKYXIKICAgICAgICAgICAgICAgICAgfC8KICAgICAgICAgICAgICAgTVNJRUNvb2tpZUphcgoKdQYAAABDb29raWV1CQAAAENvb2tpZUphcnUMAAAAQ29va2llUG9saWN5dRMAAABEZWZhdWx0Q29va2llUG9saWN5dQ0AAABGaWxlQ29va2llSmFydQwAAABMV1BDb29raWVKYXJ1CQAAAExvYWRFcnJvcnUQAAAATW96aWxsYUNvb2tpZUphcmkAAAAATigBAAAAdQYAAAB0aW1lZ21jAAAAAAAAAAACAAAAAgAAAEcAAABzOwAAAHQAAHMKAGQAAFN0AQBzLgBkAQBkAABsAgB9AQB8AQBqAwBkAgCDAQBhAQBuAAB0AQBqAAB8AACMAABTKAMAAABOaQAAAAB1DgAAAGh0dHAuY29va2llamFyKAQAAAB1BQAAAGRlYnVndQYAAABsb2dnZXJ1BwAAAGxvZ2dpbmd1CQAAAGdldExvZ2dlcigCAAAAdQQAAABhcmdzdQcAAABsb2dnaW5nKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQYAAABfZGVidWcuAAAAcwwAAAAAAQYBBAIGAQwBEgF1BgAAAF9kZWJ1Z3VRAAAAYSBmaWxlbmFtZSB3YXMgbm90IHN1cHBsaWVkIChub3Igd2FzIHRoZSBDb29raWVKYXIgaW5zdGFuY2UgaW5pdGlhbGlz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bnRhaW5zIG5vIHRpbWV6b25lLCBVVEMgaXMgYXNzdW1lZC4KCiAgICBUaGUgdGltZXpvbmUgaW4gdGhlIHN0cmluZyBtYXkgYmUgbnVtZXJpY2FsIChsaWtlICItMDgwMCIgb3IgIiswMTAwIikgb3IgYQogICAgc3RyaW5nIHRpbWV6b25lIChsaWtlICJVVEMiLCAiR01UIiwgIkJTVCIgb3IgIkVTVCIpLiAgQ3VycmVudGx5LCBvbmx5IHRoZQogICAgdGltZXpvbmUgc3RyaW5ncyBlcXVpdmFsZW50IHRvIFVUQyAoemVybyBvZmZzZXQpIGFyZSBrbm93biB0byB0aGUgZnVuY3Rpb24uCgogICAgVGhlIGZ1bmN0aW9uIGxvb3NlbHkgcGFyc2VzIHRoZSBmb2xsb3dpbmcgZm9ybWF0czoKCiAgICBXZWQsIDA5IEZlYiAxOTk0IDIyOjIzOjMyIEdNVCAgICAgICAtLSBIVFRQIGZvcm1hdAogICAgVHVlc2RheSwgMDgtRmViLTk0IDE0OjE1OjI5IEdNVCAgICAgLS0gb2xkIHJmYzg1MCBIVFRQIGZvcm1hdAogICAgVHVlc2RheSwgMDgtRmViLTE5OTQgMTQ6MTU6MjkgR01UICAgLS0gYnJva2VuIHJmYzg1MCBIVFRQIGZvcm1hdAogICAgMDkgRmViIDE5OTQgMjI6MjM6MzIgR01UICAgICAgICAgICAgLS0gSFRUUCBmb3JtYXQgKG5vIHdlZWtkYXkpCiAgICAwOC1GZWItOTQgMTQ6MTU6MjkgR01UICAgICAgICAgICAgICAtLSByZmM4NTAgZm9ybWF0IChubyB3ZWVrZGF5KQogICAgMDgtRmViLTE5OTQgMTQ6MTU6MjkgR01UICAgICAgICAgICAgLS0gYnJva2VuIHJmYzg1MCBmb3JtYXQgKG5vIHdlZWtkYXkpCgogICAgVGhlIHBhcnNlciBpZ25vcmVzIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuICBUaGUgdGltZSBtYXkgYmUKICAgIGFic2VudC4KCiAgICBJZiB0aGUgeWVhciBpcyBnaXZlbiB3aXRoIG9ubHkgMiBkaWdpdHMsIHRoZSBmdW5jdGlvbiB3aWxsIHNlbGVjdCB0aGUKICAg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ciB2YWx1ZXMgaW50byBhIGxpc3Qgb2YgbGlzdHMgY29udGFpbmluZyBrZXksdmFsdWUgcGFpcnMuCgogICAgVGhlIGZ1bmN0aW9uIGtub3dzIGhvdyB0byBkZWFsIHdpdGggIiwiLCAiOyIgYW5kICI9IiBhcyB3ZWxsIGFzIHF1b3RlZAogICAgdmFsdWVzIGFmdGVyICI9Ii4gIEEgbGlzdCBvZiBzcGFjZSBzZXBhcmF0ZWQgdG9rZW5zIGFyZSBwYXJzZWQgYXMgaWYgdGhleQogICAgd2VyZSBzZXBhcmF0ZWQgYnkgIjsiLgoKICAgIElmIHRoZSBoZWFkZXJfdmFsdWVzIHBhc3NlZCBhcyBhcmd1bWVudCBjb250YWlucyBtdWx0aXBsZSB2YWx1ZXMsIHRoZW4gdGhleQogICAgYXJlIHRyZWF0ZWQgYXMgaWYgdGhleSB3ZXJlIGEgc2luZ2xlIHZhbHVlIHNlcGFyYXRlZCBieSBjb21tYSAiLCIuCgogICAgVGhpcyBtZWFucyB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgdXNlZnVsIGZvciBwYXJzaW5nIGhlYWRlciBmaWVsZHMgdGhhdAogICAgZm9sbG93IHRoaXMgc3ludGF4IChCTkYgYXMgZnJvbSB0aGUgSFRUUC8xLjEgc3BlY2lmaWNhdGlvbiwgYnV0IHdlIHJlbGF4CiAgICB0aGUgcmVxdWlyZW1lbnQgZm9yIHRva2VucykuCgogICAgICBoZWFkZXJzICAgICAgICAgICA9ICNoZWFkZXIKICAgICAgaGVhZGVyICAgICAgICAgICAgPSAodG9rZW4gfCBwYXJhbWV0ZXIpICooIFsiOyJdICh0b2tlbiB8IHBhcmFtZXRlcikpCgogICAgICB0b2tlbiAgICAgICAgICAgICA9IDEqPGFueSBDSEFSIGV4Y2VwdCBDVExzIG9yIHNlcGFyYXRvcnM+CiAgICAgIHNlcGFyYXRvcnMgICAgICAgID0gIigiIHwgIikiIHwgIjwiIHwgIj4iIHwgIkAiCiAgICAgICAgICAgICAgICAgICAgICAgIHwgIiwiIHwgIjsiIHwgIjoiIHwgIlwiIHwgPCI+CiAgICAgICAgICAgICAgICAgICAgICAgIHwgIi8iIHwgIlsiIHwgIl0iIHwgIj8iIHwgIj0iCiAgICAgICAgICAgICAgICAgICAgICAgIHwgInsiIHwgIn0iIHwgU1AgfCBIVAoKICAgICAgcXVvdGVkLXN0cmluZyAgICAgPSAoIDwiPiAqKHFkdGV4dCB8IHF1b3RlZC1wYWlyICkgPCI+ICkKICAgICAgcWR0ZXh0ICAgICAgICAgICAgPSA8YW55IFRFWFQgZXhjZXB0IDwiPj4KICAgICAgcXVvdGVkLXBhaXIgICAgICAgPSAiXCIgQ0hBUgoKICAgICAgcGFyYW1ldGVyICAgICAgICAgPSBhdHRyaWJ1dGUgIj0iIHZhbHVlCiAgICAgIGF0dHJpYnV0ZSAgICAgICAgID0gdG9rZW4KICAgICAgdmFsdWUgICAgICAgICAgICAgPSB0b2tlbiB8IHF1b3RlZC1zdHJpbmcKCiAgICBFYWNoIGhlYWRlciBpcyByZXByZXNlbnRlZCBieSBhIGxpc3Qgb2Yga2V5L3ZhbHVlIHBhaXJzLiAgVGhlIHZhbHVlIGZvciBhCiAgICBzaW1wbGUgdG9rZW4gKG5vdCBwYXJ0IG9mIGEgcGFyYW1ldGVyKSBpcyBOb25lLiAgU3ludGFjdGljYWxseSBpbmNvcnJlY3QKICAgIGhlYWRlcnMgd2lsbCBub3QgbmVjZXNzYXJpbHkgYmUgcGFyc2VkIGFzIHlvdSB3b3VsZCB3YW50LgoKICAgIFRoaXMgaXMgZWFzaWVyIHRvIGRlc2NyaWJlIHdpdGggc29tZSBleGFtcGxlczoKCiAgICA+Pj4gc3BsaXRfaGVhZGVyX3dvcmRzKFsnZm9vPSJiYXIiOyBwb3J0PSI4MCw4MSI7IGRpc2NhcmQsIGJhcj1iYXonXSkKICAgIFtbKCdmb28nLCAnYmFyJyksICgncG9ydCcsICc4MCw4MScpLCAoJ2Rpc2NhcmQnLCBOb25lKV0sIFsoJ2JhcicsICdiYXonKV1dCiAgICA+Pj4gc3BsaXRfaGVhZGVyX3dvcmRzKFsndGV4dC9odG1sOyBjaGFyc2V0PSJpc28tODg1OS0xIiddKQogICAgW1soJ3RleHQvaHRtbCcsIE5vbmUpLCAoJ2NoYXJzZXQnLCAnaXNvLTg4NTktMScpXV0KICAgID4+PiBzcGxpdF9oZWFkZXJf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aGlzIG1heSBub3QgbWFrZSB0aGUgYmVzdCBwb3NzaWJsZSBlZmZvcnQgdG8gcGFyc2UgYWxsIHRoZSBjcmFwCiAgICB0aGF0IE5ldHNjYXBlIENvb2tpZSBoZWFkZXJzIGNvbnRhaW4uICBSb25hbGQgVHNjaGFsYXIncyBIVFRQQ2xpZW50CiAgICBwYXJzZXIgaXMgcHJvYmFibHkgYmV0dGVyLCBzbyBjb3VsZCBkbyB3b3JzZSB0aGFuIGZvbGxvd2luZyB0aGF0IGlmCiAgICB0aGlzIGV2ZXIgZ2l2ZXMgYW55IHRyb3VibGUuCgogICAgQ3VycmVudGx5LCB0aGlzIGlzIGFsc28gdXNlZCBmb3IgcGFyc2luZyBSRkMgMjEwOSBjb29raWVzLgoKICAgIHUHAAAAZXhwaXJlc3UGAAAAZG9tYWludQQAAABwYXRodQYAAABzZWN1cmV1BwAAAHZlcnNpb251BAAAAHBvcnR1BwAAAG1heC1hZ2V1BAAAADtccyp1AAAAAHUBAAAAPXUHAAAAXHMqPVxzKmkBAAAAaQAAAAB1AQAAADAoBwAAAHUHAAAAZXhwaXJlc3UGAAAAZG9tYWludQQAAABwYXRodQYAAABzZWN1cmV1BwAAAHZlcnNpb251BAAAAHBvcnR1BwAAAG1heC1hZ2VGTlQoAgAAAHUHAAAAdmVyc2lvbnUBAAAAMCgMAAAAdQUAAABGYWxzZXUJAAAAZW51bWVyYXRldQIAAAByZXUFAAAAc3BsaXR1BgAAAHJzdHJpcHUEAAAATm9uZXUGAAAAbHN0cmlwdQUAAABsb3dlcnUMAAAAc3RyaXBfcXVvdGVzdQQAAABUcnVldQkAAABodHRwMnRpbWV1BgAAAGFwcGVuZCgLAAAAdQoAAABuc19oZWFkZXJzdQsAAABrbm93bl9hdHRyc3UGAAAAcmVzdWx0dQkAAABuc19oZWFkZXJ1BQAAAHBhaXJzdQsAAAB2ZXJzaW9uX3NldHUCAAAAaWl1BQAAAHBhcmFtdQEAAABrdQEAAAB2dQIAAABsYygAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUQAAAAcGFyc2VfbnNfaGVhZGVyc8QBAABzOgAAAAAP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ICAgICAgb3JpZ2luIHRyYW5zYWN0aW9uLgoKICAgIE5URigGAAAAdQwAAAByZXF1ZXN0X2hvc3R1DAAAAGRvbWFpbl9tYXRjaHUFAAAAcmVhY2h1DwAAAG9yaWdpbl9yZXFfaG9zdHUEAAAAVHJ1ZXUFAAAARmFsc2UoAgAAAHUHAAAAcmVxdWVzdHUIAAAAcmVxX2hvc3QoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1DgAAAGlzX3RoaXJkX3BhcnR5uAIAAHMIAAAAAAoMARgBBAJ1DgAAAGlzX3RoaXJkX3BhcnR5YwEAAAAAAAAAAQAAAAMAAABCAAAAc3cAAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZBEAZAIAZAMAhAEAWgUAZAQAZAUAhAAAWgYAZBAAZAYAZAcAhAEAWggAZAgAZAkAhAAAWgkAZBAAZAoAZAsAhAEAWgoAZAwAZA0AhAAAWgsAZA4AZA8AhAAAWgwAZBAAUygSAAAAdQYAAABDb29raWV10AIAAEhUVFAgQ29va2llLgoKICAgIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBib3RoIE5ldHNjYXBlIGFuZCBSRkMgMjk2NSBjb29raWVzLgoKICAgIFRoaXMgaXMgZGVsaWJlcmF0ZWx5IGEgdmVyeSBzaW1wbGUgY2xhc3MuICBJdCBqdXN0IGhvbGRzIGF0dHJpYnV0ZXMuICBJdCdzCiAgICBwb3NzaWJsZSB0byBjb25zdHJ1Y3QgQ29va2llIGluc3RhbmNlcyB0aGF0IGRvbid0IGNvbXBseSB3aXRoIHRoZSBjb29raWUKICAgIHN0YW5kYXJkcy4gIENvb2tpZUphci5tYWtlX2Nvb2tpZXMgaXMgdGhlIGZhY3RvcnkgZnVuY3Rpb24gZm9yIENvb2tpZQogICAgb2JqZWN0cyAtLSBpdCBkZWFscyB3aXRoIGNvb2tpZSBwYXJzaW5nLCBzdXBwbHlpbmcgZGVmYXVsdHMsIGFuZAogICAgbm9ybWFsaXNpbmcgdG8gdGhlIHJlcHJlc2VudGF0aW9uIHVzZWQgaW4gdGhpcyBjbGFzcy4gIENvb2tpZVBvbGljeSBpcwogICAgcmVzcG9uc2libGUgZm9yIGNoZWNraW5nIHRoZW0gdG8gc2VlIHdoZXRoZXIgdGhleSBzaG91bGQgYmUgYWNjZXB0ZWQgZnJvbQogICAgYW5kIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIuCgogICAgTm90ZSB0aGF0IHRoZSBwb3J0IG1heSBiZSBwcmVzZW50IGluIHRoZSBoZWFkZXJzLCBidXQgdW5zcGVjaWZpZWQgKCJQb3J0IgogICAgcmF0aGVyIHRoYW4iUG9ydD04MCIsIGZvciBleGFtcGxlKTsgaWYgdGhpcyBpcyB0aGUgY2FzZSwgcG9ydCBpcyBOb25lLgoKICAgIGMSAAAAAAAAABIAAAADAAAAQwAAAHMJAQAAfAEAZAAAawkAchsAdAEAfAEAgwEAfQEAbgAAfAwAZAAAawkAcjYAdAEAfAwAgwEAfQwAbgAAfAQAZAAAawgAcl0AfAUAZAIAawgAcl0AdAMAZAEAgwEAggEAbgAAfAEAfAAAXwQAfAIAfAAAXwUAfAMAfAAAXwYAfAQAfAAAXwcAfAUAfAAAXwgAfAYAagkAgwAAfAAAXwoAfAcAfAAAXwsAfAgAfAAAXwwAfAkAfAAAXw0AfAoAfAAAXw4AfAsAfAAAXw8AfAwAfAAAXxAAfA0AfAAAXxEAfA4AfAAAXxIAfA8AfAAAXxMAfBEAfAAAXxQAdBUAahUAfBAAgwEAfAAAXxYAZAAAUygDAAAATnUtAAAAaWYgcG9ydCBpcyBOb25lLCBwb3J0X3NwZWNpZmllZCBtdXN0IGJlIGZhbHNlVCgXAAAAdQQAAABOb25ldQMAAABpbnR1BAAAAFRydWV1CgAAAFZhbHVlRXJyb3J1BwAAAHZlcnNpb251BAAAAG5hbWV1BQAAAHZhbHVldQQAAABwb3J0dQ4AAABwb3J0X3NwZWNpZmllZHUFAAAAbG93ZXJ1BgAAAGRvbWFpbnUQAAAAZG9tYWluX3NwZWNpZmllZHUSAAAAZG9tYWluX2luaXRpYWxfZG90dQQAAABwYXRodQ4AAABwYXRoX3NwZWNpZmllZHUGAAAAc2VjdXJldQcAAABleHBpcmVzdQcAAABkaXNjYXJkdQcAAABjb21tZW50dQsAAABjb21tZW50X3VybHUHAAAAcmZjMjEwOXUEAAAAY29weXUFAAAAX3Jlc3QoEgAAAHUEAAAAc2VsZnUHAAAAdmVyc2lvbnUEAAAAbmFtZXUFAAAAdmFsdWV1BAAAAHBvcnR1DgAAAHBvcnRfc3BlY2lmaWVkdQYAAABkb21haW51EAAAAGRvbWFpbl9zcGVjaWZpZWR1EgAAAGRvbWFpbl9pbml0aWFsX2RvdHUEAAAAcGF0aHUOAAAAcGF0aF9zcGVjaWZpZWR1BgAAAHNlY3VyZXUHAAAAZXhwaXJlc3UHAAAAZGlzY2FyZHUHAAAAY29tbWVudHULAAAAY29tbWVudF91cmx1BAAAAHJlc3R1BwAAAHJmYzIxMDkoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1CAAAAF9faW5pdF9f2wIAAHMuAAAAAA0MAA8BDAAPARgBDwIJAQkBCQEJAQkCDwEJBQkBCQEJAQkBCQEJAQkBCQEJAnUPAAAAQ29va2llLl9faW5pdF9fYwIAAAAAAAAAAgAAAAIAAABDAAAAcw0AAAB8AQB8AABqAABrBgBTKAEAAABOKAEAAAB1BQAAAF9yZXN0KAIAAAB1BAAAAHNlbGZ1BAAAAG5hbWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1FAAAAGhhc19ub25zdGFuZGFyZF9hdHRyBQMAAHMCAAAAAAF1GwAAAENvb2tpZS5oYXNfbm9uc3RhbmRhcmRfYXR0cmMDAAAAAAAAAAMAAAADAAAAQwAAAHMTAAAAfAAAagAAagEAfAEAfAIAgwIAUygBAAAATigCAAAAdQUAAABfcmVzdHUDAAAAZ2V0KAMAAAB1BAAAAHNlbGZ1BAAAAG5hbWV1BwAAAGRlZmF1bHQoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1FAAAAGdldF9ub25zdGFuZGFyZF9hdHRyBwMAAHMCAAAAAAF1GwAAAENvb2tpZS5nZXRfbm9uc3RhbmRhcmRfYXR0cmMDAAAAAAAAAAMAAAADAAAAQwAAAHMRAAAAfAIAfAAAagAAfAEAPGQAAFMoAQAA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bmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191BQAAAEZhbHNldQgAAABfX2luaXRfX3UUAAAAaGFzX25vbnN0YW5kYXJkX2F0dHJ1BAAAAE5vbmV1FAAAAGdldF9ub25zdGFuZGFyZF9hdHRydRQAAABzZXRfbm9uc3RhbmRhcmRfYXR0cnUKAAAAaXNfZXhwaXJlZHUHAAAAX19zdHJfX3UIAAAAX19yZXByX18oAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUGAAAAQ29va2llyQIAAHMQAAAAEBAGDA8gDAIPAgwDDwYMCmMBAAAAAAAAAAEAAAACAAAAQgAAAHNKAAAAfAAARWUAAFoBAGQAAFoCAGQBAFoDAGQCAGQDAIQAAFoEAGQEAGQFAIQAAFoFAGQGAGQHAIQAAFoGAGQIAGQJAIQAAFoHAGQKAFMoCwAAAHUMAAAAQ29va2llUG9saWN5dSABAABEZWZpbmVzIHdoaWNoIGNvb2tpZXMgZ2V0IGFjY2VwdGVkIGZyb20gYW5kIHJldHVybmVkIHRvIHNlcnZlci4KCiAgICBNYXkgYWxzbyBtb2RpZnkgY29va2llcywgdGhvdWdoIHRoaXMgaXMgcHJvYmFibHkgYSBiYWQgaWRlYS4KCiAgICBUaGUgc3ViY2xhc3MgRGVmYXVsdENvb2tpZVBvbGljeSBkZWZpbmVzIHRoZSBzdGFuZGFyZCBydWxlcyBmb3IgTmV0c2NhcGUKICAgIGFuZCBSRkMgMjk2NSBjb29raWVzIC0tIG92ZXJyaWRlIHRoYXQgaWYgeW91IHdhbnQgYSBjdXN0b21pc2VkIHBvbGljeS4KCiAgICBjAwAAAAAAAAADAAAAAQAAAEMAAABzDQAAAHQAAIMAAIIBAGQBAFMoAgAAAHXEAAAAUmV0dXJuIHRydWUgaWYgKGFuZCBvbmx5IGlmKSBjb29raWUgc2hvdWxkIGJlIGFjY2VwdGVkIGZyb20gc2VydmVyLgoKICAgICAgICBDdXJyZW50bHksIHByZS1leHBpcmVkIGNvb2tpZXMgbmV2ZXIgZ2V0IHRoaXMgZmFyIC0tIHRoZSBDb29raWVKYXIKICAgICAgICBjbGFzcyBkZWxldGVzIHN1Y2ggY29va2llcyBpdHNlbGYuCgogICAgICAgIE4oAQAAAHUTAAAATm90SW1wbGVtZW50ZWRFcnJvcigDAAAAdQQAAABzZWxmdQYAAABjb29raWV1BwAAAHJlcXVlc3QoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1BgAAAHNldF9vazQDAABzAgAAAAAHdRMAAABDb29raWVQb2xpY3kuc2V0X29rYwMAAAAAAAAAAwAAAAEAAABDAAAAcw0AAAB0AACDAACCAQBkAQBTKAIAAAB1QQAAAFJldHVybiB0cnVlIGlmIChhbmQgb25seSBpZikgY29va2llIHNob3VsZCBiZSByZXR1cm5lZCB0byBzZXJ2ZXIuTigBAAAAdRMAAABOb3RJbXBsZW1lbnRlZEVycm9yKAMAAAB1BAAAAHNlbGZ1BgAAAGNvb2tpZXUHAAAAcmVxdWVzdCgAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUJAAAAcmV0dXJuX29rPQMAAHMCAAAAAAJ1FgAAAENvb2tpZVBvbGljeS5yZXR1cm5fb2tjAwAAAAAAAAADAAAAAQAAAEMAAABzBAAAAGQBAFMoAgAAAHVNAAAAUmV0dXJuIGZhbHNlIGlmIGNvb2tpZXMgc2hvdWxkIG5vdCBiZSByZXR1cm5lZCwgZ2l2ZW4gY29va2llIGRvbWFpbi4KICAgICAgICBUKAEAAAB1BAAAAFRydWUoAwAAAHUEAAAAc2VsZnUGAAAAZG9tYWludQcAAAByZXF1ZXN0KAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dRAAAABkb21haW5fcmV0dXJuX29rQQMAAHMCAAAAAAN1HQAAAENvb2tpZVBvbGljeS5kb21haW5fcmV0dXJuX29rYwMAAAAAAAAAAwAAAAEAAABDAAAAcwQAAABkAQBTKAIAAAB1SwAAAFJldHVybiBmYWxzZSBpZiBjb29raWVzIHNob3VsZCBub3QgYmUgcmV0dXJuZWQsIGdpdmVuIGNvb2tpZSBwYXRoLgogICAgICAgIFQoAQAAAHUEAAAAVHJ1ZSgDAAAAdQQAAABzZWxmdQQAAABwYXRodQcAAAByZXF1ZXN0KAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQ4AAABwYXRoX3JldHVybl9va0YDAABzAgAAAAADdRsAAABDb29raWVQb2xpY3kucGF0aF9yZXR1cm5fb2tOKAgAAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191BgAAAHNldF9va3UJAAAAcmV0dXJuX29rdRAAAABkb21haW5fcmV0dXJuX29rdQ4AAABwYXRoX3JldHVybl9vaygBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQwAAABDb29raWVQb2xpY3krAwAAcwoAAAAQCAYBDAkMBAwFYwEAAAAAAAAAAQAAAA4AAABCAAAAc3QBAAB8AABFZQAAWgEAZAAAWgIAZAEAWgMAZAIAWgQAZAMAWgUAZAQAWgYAZAUAWgcAZQQAZQUAQloIAGQ0AGQ0AGQ1AGQ2AGQ0AGQ2AGQ2AGQ1AGQ2AGUHAGQ2AGQ2AGQGAGQHAIQMAFoMAGQIAGQJAIQAAFoNAGQKAGQLAIQAAFoOAGQMAGQNAIQAAFoPAGQOAGQPAIQAAFoQAGQQAGQRAIQAAFoRAGQSAGQTAIQAAFoSAGQUAGQVAIQAAFoTAGQWAGQXAIQAAFoUAGQYAGQZAIQAAFoVAGQaAGQbAIQAAFoWAGQcAGQdAIQAAFoXAGQeAGQfAIQAAFoYAGQgAGQhAIQAAFoZAGQiAGQjAIQAAFoaAGQkAGQlAIQAAFobAGQmAGQnAIQAAFocAGQoAGQpAIQAAFodAGQqAGQrAIQAAFoeAGQsAGQtAIQAAFofAGQuAGQvAIQAAFogAGQwAGQxAIQAAFohAGQyAGQzAIQAAFoiAGQ0AFMoNwAAAHUTAAAARGVmYXVsdENvb2tpZVBvbGljeXVCAAAASW1wbGVtZW50cyB0aGUgc3RhbmRhcmQgcnVsZXMgZm9yIGFjY2VwdGluZyBhbmQgcmV0dXJuaW5nIGNvb2tpZXMuaQEAAABpAgAAAGkEAAAAaQAAAABjDQAAAAAAAAANAAAAAgAAAEMAAABzqQAAAHwDAHwAAF8AAHwEAHwAAF8BAHwFAHwAAF8CAHwGAHwAAF8DAHwHAHwAAF8EAHwIAHwAAF8FAHwJAHwAAF8GAHwKAHwAAF8HAHwLAHwAAF8IAHwMAHwAAF8JAHwBAGQBAGsJAHJ4AHQLAHwBAIMBAHwAAF8MAG4JAGYAAHwAAF8MAHwCAGQBAGsJAHKcAHQLAHwCAIMBAH0CAG4AAHwCAHwAAF8NAGQBAFMoAgAAAHVBAAAAQ29uc3RydWN0b3IgYXJndW1lbnRzIHNob3VsZCBiZSBwYXNzZWQgYXMga2V5d29yZCBhcmd1bWVudHMgb25seS5OKA4AAAB1CAAAAG5ldHNjYXBldQcAAAByZmMyOTY1dRMAAAByZmMyMTA5X2FzX25ldHNjYXBldQwAAABoaWRlX2Nvb2tpZTJ1DQAAAHN0cmljdF9kb21haW51GwAAAHN0cmljdF9yZmMyOTY1X3VudmVyaWZpYWJsZXUWAAAAc3RyaWN0X25zX3VudmVyaWZpYWJsZXUQAAAAc3RyaWN0X25zX2RvbWFpbnUcAAAAc3RyaWN0X25zX3NldF9pbml0aWFsX2RvbGxhcnUSAAAAc3RyaWN0X25zX3NldF9wYXRodQQAAABOb25ldQUAAAB0dXBsZXUQAAAAX2Jsb2NrZWRfZG9tYWluc3UQAAAAX2FsbG93ZWRfZG9tYWlucygNAAAAdQQAAABzZWxmdQ8AAABibG9ja2VkX2RvbWFpbnN1DwAAAGFsbG93ZWRfZG9tYWluc3UIAAAAbmV0c2NhcGV1BwAAAHJmYzI5NjV1EwAAAHJmYzIxMDlfYXNfbmV0c2NhcGV1DAAAAGhpZGVfY29va2llMnUNAAAAc3RyaWN0X2RvbWFpbnUbAAAAc3RyaWN0X3JmYzI5NjVfdW52ZXJpZmlhYmxldRYAAABzdHJpY3RfbnNfdW52ZXJpZmlhYmxldRAAAABzdHJpY3RfbnNfZG9tYWludRwAAABzdHJpY3RfbnNfc2V0X2luaXRpYWxfZG9sbGFydRIAAABzdHJpY3RfbnNfc2V0X3BhdGgoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1CAAAAF9faW5pdF9fVgMAAHMgAAAAAA0JAQkBCQEJAQkBCQEJAQkBCQEJAgwBEgIJAgwBDwF1HAAAAERlZmF1bHRDb29raWVQb2xpY3kuX19pbml0X19jAQAAAAAAAAABAAAAAQAAAEMAAABzBwAAAHwAAGoAAFMoAQAAAHU0AAAAUmV0dXJuIHRoZSBzZXF1ZW5jZSBvZiBibG9ja2VkIGRvbWFpbnMgKGFzIGEgdHVwbGUpLigBAAAAdRAAAABfYmxvY2tlZF9kb21haW5zKAEAAAB1BAAAAHNlbGYoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1DwAAAGJsb2NrZWRfZG9tYWluc3cDAABzAgAAAAACdSMAAABEZWZhdWx0Q29va2llUG9saWN5LmJsb2NrZWRfZG9tYWluc2MCAAAAAAAAAAIAAAACAAAAQwAAAHMTAAAAdAAAfAEAgwEAfAAAXwEAZAEAUygCAAAAdSQAAABTZXQgdGhlIHNlcXVlbmNlIG9mIGJsb2NrZWQgZG9tYWlucy5OKAIAAAB1BQAAAHR1cGxldRAAAABfYmxvY2tlZF9kb21haW5zKAIAAAB1BAAAAHNlbGZ1DwAAAGJsb2NrZWRfZG9tYWlucygAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUTAAAAc2V0X2Jsb2NrZWRfZG9tYWluc3oDAABzAgAAAAACdScAAABEZWZhdWx0Q29va2llUG9saWN5LnNldF9ibG9ja2VkX2RvbWFpbnNjAgAAAAAAAAADAAAABAAAAEMAAABzKwAAAHgkAHwAAGoAAERdGQB9AgB0AQB8AQB8AgCDAgByCgBkAQBTcQoAV2QCAFMoAwAAAE5URigEAAAAdRAAAABfYmxvY2tlZF9kb21haW5zdREAAAB1c2VyX2RvbWFpbl9tYXRjaHUEAAAAVHJ1ZXUFAAAARmFsc2UoAwAAAHUEAAAAc2VsZnUGAAAAZG9tYWludQ4AAABibG9ja2VkX2RvbWFpbigAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUKAAAAaXNfYmxvY2tlZH4DAABzCAAAAAABEAEPAQgBdR4AAABEZWZhdWx0Q29va2llUG9saWN5LmlzX2Jsb2NrZWRjAQAAAAAAAAABAAAAAQAAAEMAAABzBwAAAHwAAGoAAFMoAQAAAHU9AAAAUmV0dXJuIE5vbmUsIG9yIHRoZSBzZXF1ZW5jZSBvZiBhbGxvd2VkIGRvbWFpbnMgKGFzIGEgdHVwbGUpLigBAAAAdRAAAABfYWxsb3dlZF9kb21haW5zKAEAAAB1BAAAAHNlbGYoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1DwAAAGFsbG93ZWRfZG9tYWluc4QDAABzAgAAAAACdSMAAABEZWZhdWx0Q29va2llUG9saWN5LmFsbG93ZWRfZG9tYWluc2MCAAAAAAAAAAIAAAACAAAAQwAAAHMoAAAAfAEAZAEAawkAchsAdAEAfAEAgwEAfQEAbgAAfAEAfAAAXwIAZAEAUygCAAAAdS0AAABTZXQgdGhlIHNlcXVlbmNlIG9mIGFsbG93ZWQgZG9tYWlucywgb3IgTm9uZS5OKAMAAAB1BAAAAE5vbmV1BQAAAHR1cGxldRAAAABfYWxsb3dlZF9kb21haW5zKAIAAAB1BAAAAHNlbGZ1DwAAAGFsbG93ZWRfZG9tYWlucygAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUTAAAAc2V0X2FsbG93ZWRfZG9tYWluc4cDAABzBgAAAAACDAEPAXUnAAAARGVmYXVsdENvb2tpZVBvbGljeS5zZXRfYWxsb3dlZF9kb21haW5zYwIAAAAAAAAAAwAAAAQAAABDAAAAcz4AAAB8AABqAABkAABrCAByEwBkAQBTeCQAfAAAagAARF0ZAH0CAHQDAHwBAHwCAIMCAHIdAGQBAFNxHQBXZAIAUygDAAAATkZUKAUAAAB1EAAAAF9hbGxvd2VkX2RvbWFpbnN1BAAAAE5vbmV1BQAAAEZhbHNldREAAAB1c2VyX2RvbWFpbl9tYXRjaHUEAAAAVHJ1ZSgDAAAAdQQAAABzZWxmdQYAAABkb21haW51DgAAAGFsbG93ZWRfZG9tYWluKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQ4AAABpc19ub3RfYWxsb3dlZI0DAABzDAAAAAABDwEEARABDwEIAXUiAAAARGVmYXVsdENvb2tpZVBvbGljeS5pc19ub3RfYWxsb3dlZGMDAAAAAAAAAAYAAAAGAAAAQwAAAHNsAAAAdAAAZAEAfAEAagEAfAEAagIAgwMAAXwBAGoBAGQJAGsJAHMrAHQEAIIBAHg6AGQKAERdMgB9AwBkCAB8AwAXfQQAdAUAfAAAfAQAgwIAfQUAfAUAfAEAfAIAgwIAczIAZAsAU3EyAFdkDABTKA0AAAB12AAAAAogICAgICAgIElmIHlvdSBvdmVycmlkZSAuc2V0X29rKCksIGJlIHN1cmUgdG8gY2FsbCB0aGlzIG1ldGhvZC4gIElmIGl0IHJldHVybnMKICAgICAgICBmYWxzZSwgc28gc2hvdWxkIHlvdXIgc3ViY2xhc3MgKGFzc3VtaW5nIHlvdXIgc3ViY2xhc3Mgd2FudHMgdG8gYmUgbW9yZQogICAgICAgIHN0cmljdCBhYm91dCB3aGljaCBjb29raWVzIHRvIGFjY2VwdCkuCgogICAgICAgIHUYAAAAIC0gY2hlY2tpbmcgY29va2llICVzPSVzdQcAAAB2ZXJzaW9udQ0AAAB2ZXJpZmlhYmlsaXR5dQQAAABuYW1ldQQAAABwYXRodQYAAABkb21haW51BAAAAHBvcnR1BwAAAHNldF9va19OKAYAAAB1BwAAAHZlcnNpb251DQAAAHZlcmlmaWFiaWxpdHl1BAAAAG5hbWV1BAAAAHBhdGh1BgAAAGRvbWFpbnUEAAAAcG9ydEZUKAgAAAB1BgAAAF9kZWJ1Z3UEAAAAbmFtZXUFAAAAdmFsdWV1BAAAAE5vbmV1DgAAAEFzc2VydGlvbkVycm9ydQcAAABnZXRhdHRydQUAAABGYWxzZXUEAAAAVHJ1ZSgGAAAAdQQAAABzZWxmdQYAAABjb29raWV1BwAAAHJlcXVlc3R1AQAAAG51BwAAAGZuX25hbWV1AgAAAGZuKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQYAAABzZXRfb2uVAwAAcxAAAAAABxYCFQINAQoBDwEPAQgCdRoAAABEZWZhdWx0Q29va2llUG9saWN5LnNldF9va2MDAAAAAAAAAAMAAAAEAAAAQwAAAHN7AAAAfAEAagAAZAAAawgAcikAdAIAZAEAfAEAagMAfAEAagQAgwMAAWQFAFN8AQBqAABkAgBrBAByUAB8AABqBgAMclAAdAIAZAMAgwEAAWQFAFN8AQBqAABkAgBrAgBydwB8AABqBwAMcncAdAIAZAQAgwEAAWQFAFNkBgBTKAcAAABOdTAAAAAgICBTZXQtQ29va2llMiB3aXRob3V0IHZlcnNpb24gYXR0cmlidXRlICglcz0lcylpAAAAAHUkAAAAICAgUkZDIDI5NjUgY29va2llcyBhcmUgc3dpdGNoZWQgb2ZmdSQAAAAgICBOZXRzY2FwZSBjb29raWVzIGFyZSBzd2l0Y2hlZCBvZmZGVCgJAAAAdQcAAAB2ZXJzaW9udQQAAABOb25ldQYAAABfZGVidWd1BAAAAG5hbWV1BQAAAHZhbHVldQUAAABGYWxzZXUHAAAAcmZjMjk2NXUIAAAAbmV0c2NhcGV1BAAAAFRydWUoAwAAAHUEAAAAc2VsZnUGAAAAY29va2lldQcAAAByZXF1ZXN0KAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQ4AAABzZXRfb2tfdmVyc2lvbqgDAABzFgAAAAABDwMGARABBAEZAQoBBAEZAQoBBAF1IgAAAERlZmF1bHRDb29raWVQb2xpY3kuc2V0X29rX3ZlcnNpb25jAwAAAAAAAAADAAAABQAAAEMAAABzaAAAAHwCAGoAAHJkAHQBAHwCAIMBAHJkAHwBAGoCAGQBAGsEAHI7AHwAAGoDAHI7AHQEAGQCAIMBAAFkBABTfAEAagIAZAEAawIAcmQAfAAAagYAcmQAdAQAZAMAgwEAAWQEAFNuAABkBQBTKAYAAABOaQAAAAB1PgAAACAgIHRoaXJkLXBhcnR5IFJGQyAyOTY1IGNvb2tpZSBkdXJpbmcgdW52ZXJpZmlhYmxlIHRyYW5zYWN0aW9udT4AAAAgICB0aGlyZC1wYXJ0eSBOZXRzY2FwZSBjb29raWUgZHVyaW5nIHVudmVyaWZpYWJsZSB0cmFuc2FjdGlvbkZUKAgAAAB1DAAAAHVudmVyaWZpYWJsZXUOAAAAaXNfdGhpcmRfcGFydHl1BwAAAHZlcnNpb251GwAAAHN0cmljdF9yZmMyOTY1X3VudmVyaWZpYWJsZXUGAAAAX2RlYnVndQUAAABGYWxzZXUWAAAAc3RyaWN0X25zX3VudmVyaWZpYWJsZXUEAAAAVHJ1ZSgDAAAAdQQAAABzZWxmdQYAAABjb29raWV1BwAAAHJlcXVlc3QoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1FAAAAHNldF9va192ZXJpZmlhYmlsaXR5twMAAHMQAAAAAAEVARgBCgIEARgBCgIHAXUoAAAARGVmYXVsdENvb2tpZVBvbGljeS5zZXRfb2tfdmVyaWZpYWJpbGl0eWMDAAAAAAAAAAMAAAAFAAAAQwAAAHNCAAAAfAEAagAAZAEAawIAcj4AfAAAagEAcj4AfAEAagIAagMAZAIAgwEAcj4AdAQAZAMAfAEAagIAgwIAAWQEAFNkBQBTKAYAAABOaQAAAAB1AQAAACR1JwAAACAgIGlsbGVnYWwgbmFtZSAoc3RhcnRzIHdpdGggJyQnKTogJyVzJ0ZUKAcAAAB1BwAAAHZlcnNpb251HAAAAHN0cmljdF9uc19zZXRfaW5pdGlhbF9kb2xsYXJ1BAAAAG5hbWV1CgAAAHN0YXJ0c3dpdGh1BgAAAF9kZWJ1Z3UFAAAARmFsc2V1BAAAAFRydWUoAwAAAHUEAAAAc2VsZnUGAAAAY29va2lldQcAAAByZXF1ZXN0KAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQsA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JXMgZG9lcyBub3QgZG9tYWluLW1hdGNoICVzdS4AAAAgICBob3N0IHByZWZpeCAlcyBmb3IgZG9tYWluICVzIGNvbnRhaW5zIGEgZG90RigVAAAAdQIAAABjb3UCAAAAYWN1AwAAAGNvbXUDAAAAZWR1dQMAAABvcmd1AwAAAG5ldHUDAAAAZ292dQMAAABtaWx1AwAAAGludHUEAAAAYWVyb3UDAAAAYml6dQMAAABjYXR1BAAAAGNvb3B1BAAAAGluZm91BAAAAGpvYnN1BAAAAG1vYml1BgAAAG11c2V1bXUEAAAAbmFtZXUDAAAAcHJvdQYAAAB0cmF2ZWx1AgAAAGV1VCgXAAAAdQoAAABpc19ibG9ja2VkdQYAAABkb21haW51BgAAAF9kZWJ1Z3UFAAAARmFsc2V1DgAAAGlzX25vdF9hbGxvd2VkdRAAAABkb21haW5fc3BlY2lmaWVkdRAAAABlZmZfcmVxdWVzdF9ob3N0dQ0AAABzdHJpY3RfZG9tYWludQUAAABjb3VudHUFAAAAcmZpbmR1BQAAAGxvd2VydQMAAABsZW51CgAAAHN0YXJ0c3dpdGh1BAAAAGZpbmR1BwAAAHZlcnNpb251CAAAAGVuZHN3aXRodRAAAABzdHJpY3RfbnNfZG9tYWludRIAAABEb21haW5SRkMyOTY1TWF0Y2h1DAAAAGRvbWFpbl9tYXRjaHUSAAAARG9tYWluU3RyaWN0Tm9Eb3RzdQcAAABJUFY0X1JFdQYAAABzZWFyY2h1BAAAAFRydWUoDQAAAHUEAAAAc2VsZnUGAAAAY29va2lldQcAAAByZXF1ZXN0dQgAAAByZXFfaG9zdHUEAAAAZXJobnUGAAAAZG9tYWludQEAAABpdQEAAABqdQMAAAB0bGR1AwAAAHNsZHUPAAAAdW5kb3R0ZWRfZG9tYWludQ0AAABlbWJlZGRlZF9kb3RzdQsAAABob3N0X3ByZWZpeCgAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUNAAAAc2V0X29rX2RvbWFpbtcDAABzZgAAAAABEgEQAQQBEgEQAQQBCQESAQkBHgQPARUBDAEUARQBCQEAAQABGwINAQoBDwETAgYBFQETAQYBBwEEAQ8BEAEQARQBBgIKAQcBDwEQAQ8BBgEKAQcBDwEQARcBFQEQAQYBCgEKAXUhAAAARGVmYXVsdENvb2tpZVBvbGljeS5zZXRfb2tfZG9tYWluYwMAAAAAAAAABQAAAAwAAABDAAAAc7UAAAB8AQBqAABysQB0AQB8AgCDAQB9AwB8AwBkAABrCAByKgBkAQB9AwBuDAB0AwB8AwCDAQB9AwB4eAB8AQBqBABqBQBkAgCDAQBEXUoAfQQAeQ4AdAYAfAQAgwEAAVduIwAEdAcAawoAcoIAAQEBdAgAZAMAfAQAgwIAAWQFAFNZbgEAWHwEAHwDAGsCAHJJAFBxSQBxSQBXdAgAZAQAfAMAfAEAagQAgwMAAWQFAFNuAABkBgBTKAcAAABOdQIAAAA4MHUBAAAALHUcAAAAICAgYmFkIHBvcnQgJXMgKG5vdCBudW1lcmljKXUkAAAAICAgcmVxdWVzdCBwb3J0ICglcykgbm90IGZvdW5kIGluICVzRlQoCwAAAHUOAAAAcG9ydF9zcGVjaWZpZWR1DAAAAHJlcXVlc3RfcG9ydHUEAAAATm9uZXUDAAAAc3RydQQAAABwb3J0dQUAAABzcGxpdHUDAAAAaW50dQoAAABWYWx1ZUVycm9ydQYAAABfZGVidWd1BQAAAEZhbHNldQQAAABUcnVlKAUAAAB1BAAAAHNlbGZ1BgAAAGNvb2tpZXUHAAAAcmVxdWVzdHUIAAAAcmVxX3BvcnR1AQAAAHAoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1CwAAAHNldF9va19wb3J0EgQAAHMiAAAAAAEJAQwBDAEJAgwBGQEDAQ4BDQENAQkBDAEIAgYBDQEHAXUfAAAARGVmYXVsdENvb2tpZVBvbGljeS5zZXRfb2tfcG9ydGMDAAAAAAAAAAYAAAAGAAAAQwAAAHNXAAAAdAAAZAEAfAEAagEAfAEAagIAgwMAAXg6AGQJAERdMgB9AwBkCAB8AwAXfQQAdAMAfAAAfAQAgwIAfQUAfAUAfAEAfAIAgwIAcx0AZAoAU3EdAFdkCwBTKAwAAAB12wAAAAogICAgICAgIElmIHlvdSBvdmVycmlkZSAucmV0dXJuX29rKCksIGJlIHN1cmUgdG8gY2FsbCB0aGlzIG1ldGhvZC4gIElmIGl0CiAgICAgICAgcmV0dXJucyBmYWxzZSwgc28gc2hvdWxkIHlvdXIgc3ViY2xhc3MgKGFzc3VtaW5nIHlvdXIgc3ViY2xhc3Mgd2FudHMgdG8KICAgICAgICBiZSBtb3JlIHN0cmljdCBhYm91dCB3aGljaCBjb29raWVzIHRvIHJldHVybikuCgogICAgICAgIHUYAAAAIC0gY2hlY2tpbmcgY29va2llICVzPSVzdQcAAAB2ZXJzaW9udQ0AAAB2ZXJpZmlhYmlsaXR5dQYAAABzZWN1cmV1BwAAAGV4cGlyZXN1BAAAAHBvcnR1BgAAAGRvbWFpbnUKAAAAcmV0dXJuX29rXygGAAAAdQcAAAB2ZXJzaW9udQ0AAAB2ZXJpZmlhYmlsaXR5dQYAAABzZWN1cmV1BwAAAGV4cGlyZXN1BAAAAHBvcnR1BgAAAGRvbWFpbkZUKAYAAAB1BgAAAF9kZWJ1Z3UEAAAAbmFtZXUFAAAAdmFsdWV1BwAAAGdldGF0dHJ1BQAAAEZhbHNldQQAAABUcnVlKAYAAAB1BAAAAHNlbGZ1BgAAAGNvb2tpZXUHAAAAcmVxdWVzdHUBAAAAbnUHAAAAZm5fbmFtZXUCAAAAZm4oAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1CQAAAHJldHVybl9vaycEAABzDgAAAAAJFgINAQoBDwEPAQgBdR0AAABEZWZhdWx0Q29va2llUG9saWN5LnJldHVybl9va2MDAAAAAAAAAAMAAAAEAAAAQwAAAHNSAAAAfAEAagAAZAEAawQAcicAfAAAagEADHInAHQCAGQCAIMBAAFkBABTfAEAagAAZAEAawIAck4AfAAAagQADHJOAHQCAGQDAIMBAAFkBABTZAUAUygGAAAATmkAAAAAdSQAAAAgICBSRkMgMjk2NSBjb29raWVzIGFyZSBzd2l0Y2hlZCBvZmZ1JAAAACAgIE5ldHNjYXBlIGNvb2tpZXMgYXJlIHN3aXRjaGVkIG9mZkZUKAYAAAB1BwAAAHZlcnNpb251BwAAAHJmYzI5NjV1BgAAAF9kZWJ1Z3UFAAAARmFsc2V1CAAAAG5ldHNjYXBldQQAAABUcnVlKAMAAAB1BAAAAHNlbGZ1BgAAAGNvb2tpZXUHAAAAcmVxdWVzdCgAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXURAAAAcmV0dXJuX29rX3ZlcnNpb245BAAAcw4AAAAAARkBCgEEARkBCgEEAXUlAAAARGVmYXVsdENvb2tpZVBvbGljeS5yZXR1cm5fb2tfdmVyc2lvbmMDAAAAAAAAAAMAAAAFAAAAQwAAAHNoAAAAfAIAagAAcmQAdAEAfAIAgwEAcmQAfAEAagIAZAEAawQAcjsAfAAAagMAcjsAdAQAZAIAgwEAAWQEAFN8AQBqAgBkAQBrAgByZAB8AABqBgByZAB0BABkAwCDAQABZAQAU24AAGQFAFMoBgAAAE5pAAAAAHU+AAAAICAgdGhpcmQtcGFydHkgUkZDIDI5NjUgY29va2llIGR1cmluZyB1bnZlcmlmaWFibGUgdHJhbnNhY3Rpb251PgAAACAgIHRoaXJkLXBhcnR5IE5ldHNjYXBlIGNvb2tpZSBkdXJpbmcgdW52ZXJpZmlhYmxlIHRyYW5zYWN0aW9uRlQoCAAAAHUMAAAAdW52ZXJpZmlhYmxldQ4AAABpc190aGlyZF9wYXJ0eXUHAAAAdmVyc2lvbnUbAAAAc3RyaWN0X3JmYzI5NjVfdW52ZXJpZmlhYmxldQYAAABfZGVidWd1BQAAAEZhbHNldRYAAABzdHJpY3RfbnNfdW52ZXJpZmlhYmxldQQAAABUcnVlKAMAAAB1BAAAAHNlbGZ1BgAAAGNvb2tpZXUHAAAAcmVxdWVzdCgAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUXAAAAcmV0dXJuX29rX3ZlcmlmaWFiaWxpdHlCBAAAcxAAAAAAARUBGAEKAgQBGAEKAgcBdSsAAABEZWZhdWx0Q29va2llUG9saWN5LnJldHVybl9va192ZXJpZmlhYmlsaXR5YwMAAAAAAAAAAwAAAAMAAABDAAAAcyoAAAB8AQBqAAByJgB8AgBqAQBkAQBrAwByJgB0AgBkAgCDAQABZAMAU2QEAFMoBQAAAE51BQAA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dAAAZAEAfAEAgwIAAXQBAHwCAIMBAH0DAHwDAGoCAHwBAIMBAHM8AHQAAGQCAHwDAHwBAIMDAAFkAwBTZAQAUygFAAAATnUZAAAALSBjaGVja2luZyBjb29raWUgcGF0aD0lc3UbAAAAICAlcyBkb2VzIG5vdCBwYXRoLW1hdGNoICVzRlQoBQAAAHUGAAAAX2RlYnVndQwAAAByZXF1ZXN0X3BhdGh1CgAAAHN0YXJ0c3dpdGh1BQAAAEZhbHNldQQAAABUcnVlKAQAAAB1BAAAAHNlbGZ1BAAAAHBhdGh1BwAAAHJlcXVlc3R1CAAAAHJlcV9wYXRoKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQ4AAABwYXRoX3JldHVybl9va5QEAABzDAAAAAABDQEMAQ8BEAEEAXUiAAAARGVmYXVsdENvb2tpZVBvbGljeS5wYXRoX3JldHVybl9va05URigjAAAAdQgAAABfX25hbWVfX3UKAAAAX19tb2R1bGVfX3UMAAAAX19xdWFsbmFtZV9fdQcAAABfX2RvY19fdRIAAABEb21haW5TdHJpY3ROb0RvdHN1FQAAAERvbWFpblN0cmljdE5vbkRvbWFpbnUSAAAARG9tYWluUkZDMjk2NU1hdGNodQ0AAABEb21haW5MaWJlcmFsdQwAAABEb21haW5TdHJpY3R1BAAAAE5vbmV1BAAAAFRydWV1BQAAAEZhbHNldQgAAABfX2luaXRfX3UPAAAAYmxvY2tlZF9kb21haW5zdRMAAABzZXRfYmxvY2tlZF9kb21haW5zdQoAAABpc19ibG9ja2VkdQ8AAABhbGxvd2VkX2RvbWFpbnN1EwAAAHNldF9hbGxvd2VkX2RvbWFpbnN1DgAAAGlzX25vdF9hbGxvd2VkdQYAAABzZXRfb2t1DgAAAHNldF9va192ZXJzaW9udRQAAABzZXRfb2tfdmVyaWZpYWJpbGl0eXULAAAAc2V0X29rX25hbWV1CwAAAHNldF9va19wYXRodQ0AAABzZXRfb2tfZG9tYWludQsAAABzZXRfb2tfcG9ydHUJAAAAcmV0dXJuX29rdREAAAByZXR1cm5fb2tfdmVyc2lvbnUXAAAAcmV0dXJuX29r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AgBzqQB0AgBkAgCDAQABcX4AbgAAdAIAZAMAgwEAAXwDAGoIAHwHAIMBAAFxfgBXcUYAV3wDAFMoBAAAAE51IQAAAENoZWNraW5nICVzIGZvciBjb29raWVzIHRvIHJldHVybnUXAAAAICAgbm90IHJldHVybmluZyBjb29raWV1DwAAACAgIGl0J3MgYSBtYXRjaCgJAAAAdQcAAABfcG9saWN5dRAAAABkb21haW5fcmV0dXJuX29rdQYAAABfZGVidWd1CAAAAF9jb29raWVzdQQAAABrZXlzdQ4AAABwYXRoX3JldHVybl9va3UGAAAAdmFsdWVzdQkAAAByZXR1cm5fb2t1BgAAAGFwcGVuZCgIAAAAdQQAAABzZWxmdQYAAABkb21haW51BwAAAHJlcXVlc3R1BwAAAGNvb2tpZXN1DwAAAGNvb2tpZXNfYnlfcGF0aHUEAAAAcGF0aHUPAAAAY29va2llc19ieV9uYW1ldQYAAABjb29raWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1EwAAAF9jb29raWVzX2Zvcl9kb21haW7QBAAAcyAAAAAAAQYBFQEEAQ0BDQETARUBBgEKARMBFQEKAQYBCgEVAXUdAAAAQ29va2llSmFyLl9jb29raWVzX2Zvcl9kb21haW5jAgAAAAAAAAAEAAAABQAAAEMAAABzPQAAAGcAAH0CAHgwAHwAAGoAAGoBAIMAAERdHwB9AwB8AgBqAgB8AABqAwB8AwB8AQCDAgCDAQABcRYAV3wCAFMoAQAAAHUyAAAAUmV0dXJuIGEgbGlzdCBvZiBjb29raWVzIHRvIGJlIHJldHVybmVkIHRvIHNlcnZlci4oBAAAAHUIAAAAX2Nvb2tpZXN1BAAAAGtleXN1BgAAAGV4dGVuZHUTAAAAX2Nvb2tpZXNfZm9yX2RvbWFpbigEAAAAdQQAAABzZWxmdQcAAAByZXF1ZXN0dQcAAABjb29raWVzdQYAAABkb21haW4oAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1FAAAAF9jb29raWVzX2Zvcl9yZXF1ZXN04gQA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AGoMAHLrAHwAAGoFAGoNAAxy6wB8AQBqCQBkBACDAQAMcusAeDQAfAIARF0pAH0EAHwEAGoOAGQFAGsDAHK7AHwBAGoKAGQEAGQGAIMCAAFQcbsAcbsAV24AAFdkBwB8AABqAQBqDwCDAAABWHwAAGoQAIMAAAFkBwBTKAgAAAB1ngAAAEFkZCBjb3JyZWN0IENvb2tpZTogaGVhZGVyIHRvIHJlcXVlc3QgKHVybGxpYi5yZXF1ZXN0LlJlcXVlc3Qgb2JqZWN0KS4KCiAgICAgICAgVGhlIENvb2tpZTIgaGVhZGVyIGlzIGFsc28gYWRkZWQgdW5sZXNzIHBvbGljeS5oaWRlX2Nvb2tpZTIgaXMgdHJ1ZS4KCiAgICAgICAgdREAAABhZGRfY29va2llX2hlYWRlcnUGAAAAQ29va2lldQIAAAA7IHUHAAAAQ29va2llMmkBAAAAdQwAAAAkVmVyc2lvbj0iMSJOKBEAAAB1BgAAAF9kZWJ1Z3UNAAAAX2Nvb2tpZXNfbG9ja3UHAAAAYWNxdWlyZXUDAAAAaW50dQQAAAB0aW1ldQcAAABfcG9saWN5dQQAAABfbm93dRQAAABfY29va2llc19mb3JfcmVxdWVzdHUNAAAAX2Nvb2tpZV9hdHRyc3UKAAAAaGFzX2hlYWRlcnUXAAAAYWRkX3VucmVkaXJlY3RlZF9oZWFkZXJ1BAAAAGpvaW51BwAAAHJmYzI5NjV1DAAAAGhpZGVfY29va2llMnUHAAAAdmVyc2lvbnUHAAAAcmVsZWFzZXUVAAAAY2xlYXJfZXhwaXJlZF9jb29raWVzKAUAAAB1BAAAAHNlbGZ1BwAAAHJlcXVlc3R1BwAAAGNvb2tpZXN1BQAAAGF0dHJzdQYAAABjb29raWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1EQAAAGFkZF9jb29raWVfaGVhZGVyJAUAAHMkAAAAAAYKAQ0BAwIfAg8CDwEGAQ8BBgEZAxkBEAENAQ8BEAEPAw4CdRsAAABDb29raWVKYXIuYWRkX2Nvb2tpZV9oZWFkZXJjAgAAAAAAAAAPAAAAEgAAAEMAAABzJAIAAGcAAH0CAGQSAH0DAGQTAH0EAHgLAnwBAERdAwJ9BQB8BQBkCwAZXAIAfQYAfQcAZBQAfQgAZBQAfQkAaQAAfQoAaQAAfQsAeK0BfAUAZAwAZA0AhQIAGURdmwFcAgB9DAB9DQB8DABqAQCDAAB9DgB8DgB8BABrBgBziAB8DgB8AwBrBgBykQB8DgB9DABuAAB8DAB8AwBrBgBysgB8DQBkDQBrCABysgBkFQB9DQBuAAB8DAB8CgBrBgByxABxWABuAAB8DABkBgBrAgBy/wB8DQBkDQBrCABy8AB0BABkDgCDAQABZBUAfQkAUG4AAHwNAGoBAIMAAH0NAG4AAHwMAGQEAGsCAHI2AXwIAHIXAXFYAG4AAHwNAGQNAGsIAHI2AXQEAGQPAIMBAAFxWABxNgFuAAB8DABkBQBrAgBylAFkFQB9CAB5EAB0BQB8DQCDAQB9DQBXbiMABHQGAGsKAHJ9AQEBAXQEAGQQAIMBAAFkFQB9CQBQWW4BAFhkBAB9DAB8AABqBwB8DQAXfQ0AbgAAfAwAfAQAawYAc6wBfAwAfAMAawYAcukBfA0AZA0AawgActwBfAwAZBYAawcActwBdAQAZBEAfAwAFoMBAAFkFQB9CQBQbgAAfA0AfAoAfAwAPHFYAHwNAHwLAHwMADxxWABXfAkAcgMCcRkAbgAAfAIAaggAfAYAfAcAfAoAfAsAZgQAgwEAAXEZAFd8AgBTKBcAAAB1FwIAAFJldHVybiBsaXN0IG9mIHR1cGxlcyBjb250YWluaW5nIG5vcm1hbGlzZWQgY29va2llIGluZm9ybWF0aW9uLgoKICAgICAgICBhdHRyc19zZXQgaXMgdGhlIGxpc3Qgb2YgbGlzdHMgb2Yga2V5LHZhbHVlIHBhaXJzIGV4dHJhY3RlZCBmcm9tCiAgICAgICAgdGhlIFNldC1Db29raWUgb3IgU2V0LUNvb2tpZTIgaGVhZGVycy4KCiAgICAgICAgVHVwbGVzIGFyZSBuYW1lLCB2YWx1ZSwgc3RhbmRhcmQsIHJlc3QsIHdoZXJlIG5hbWUgYW5kIHZhbHVlIGFyZSB0aGUKICAgICAgICBjb29raWUgbmFtZSBhbmQgdmFsdWUsIHN0YW5kYXJkIGlzIGEgZGljdGlvbmFyeSBjb250YWluaW5nIHRoZSBzdGFuZGFyZAogICAgICAgIGNvb2tpZS1hdHRyaWJ1dGVzIChkaXNjYXJkLCBzZWN1cmUsIHZlcnNpb24sIGV4cGlyZXMgb3IgbWF4LWFnZSwKICAgICAgICBkb21haW4sIHBhdGggYW5kIHBvcnQpIGFuZCByZXN0IGlzIGEgZGljdGlvbmFyeSBjb250YWluaW5nIHRoZSByZXN0IG9mCiAgICAgICAgdGhlIGNvb2tpZS1hdHRyaWJ1dGVzLgoKICAgICAgICB1BwAAAGRpc2NhcmR1BgAAAHNlY3VyZXUHAAAAdmVyc2lvbnUHAAAAZXhwaXJlc3UHAAAAbWF4LWFnZXUGAAAAZG9tYWludQQAAABwYXRodQQAAABwb3J0dQcAAABjb21tZW50dQoAAABjb21tZW50dXJsaQAAAABpAQAAAE51JQAAACAgIG1pc3NpbmcgdmFsdWUgZm9yIGRvbWFpbiBhdHRyaWJ1dGV1TQAAACAgIG1pc3Npbmcgb3IgaW52YWxpZCB2YWx1ZSBmb3IgZXhwaXJlcyBhdHRyaWJ1dGU6IHRyZWF0aW5nIGFzIHNlc3Npb24gY29va2lldT8AAAAgICBtaXNzaW5nIG9yIGludmFsaWQgKG5vbi1udW1lcmljKSB2YWx1ZSBmb3IgbWF4LWFnZSBhdHRyaWJ1dGV1IQAAACAgIG1pc3NpbmcgdmFsdWUgZm9yICVzIGF0dHJpYnV0ZSgCAAAAdQcAAABkaXNjYXJkdQYAAABzZWN1cmUoCAAAAHUHAAAAdmVyc2lvbnUHAAAAZXhwaXJlc3UHAAAAbWF4LWFnZXUGAAAAZG9tYWludQQAAABwYXRodQQAAABwb3J0dQcAAABjb21tZW50dQoAAABjb21tZW50dXJsRlQoAwAAAHUEAAAAcG9ydHUHAAAAY29tbWVudHUKAAAAY29tbWVudHVybCgJAAAAdQUAAABGYWxzZXUFAAAAbG93ZXJ1BAAAAE5vbmV1BAAAAFRydWV1BgAAAF9kZWJ1Z3UDAAAAaW50dQoAAABWYWx1ZUVycm9ydQQAAABfbm93dQYAAABhcHBlbmQoDwAAAHUEAAAAc2VsZnUJAAAAYXR0cnNfc2V0dQ0AAABjb29raWVfdHVwbGVzdQ0AAABib29sZWFuX2F0dHJzdQsAAAB2YWx1ZV9hdHRyc3UMAAAAY29va2llX2F0dHJzdQQAAABuYW1ldQUAAAB2YWx1ZXULAAAAbWF4X2FnZV9zZXR1CgAAAGJhZF9jb29raWV1CAAAAHN0YW5kYXJkdQQAAAByZXN0dQEAAABrdQEAAAB2dQIAAABsYygAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUZAAAAX25vcm1hbGl6ZWRfY29va2llX3R1cGxlc0UFAABzbAAAAAANBgIGAQABAAEAAQYCDQEQCgYCBgIGAQYBHQEMAhgBCQEYAwkBDAIGAQwBDAEKAQYBBAIPAQwBBgIGAQwBCgIJAQwBBgEDARABDQEKAgYBBgUGARABGAEMAQwBDgEGAQQBDQIOAgYBBgIdAnUjAAAAQ29va2llSmFyLl9ub3JtYWxpemVkX2Nvb2tpZV90dXBsZXNjAwAAAAAAAAAXAAAAIgAAAEMAAABz/wIAAHwBAFwEAH0DAH0EAH0FAH0GAHwFAGoAAGQBAHQBAIMCAH0HAHwFAGoAAGQCAHQBAIMCAH0IAHwFAGoAAGQDAHQBAIMCAH0JAHwFAGoAAGQEAHQBAIMCAH0KAHwFAGoAAGQFAGQAAIMCAH0LAHwLAGQAAGsJAHKkAHkQAHQDAHwLAIMBAH0LAFdxpAAEdAQAawoAcqAAAQEBZAAAU1lxpABYbgAAfAUAagAAZAYAZBEAgwIAfQwAfAUAagAAZAcAZBEAgwIAfQ0AfAUAagAAZAgAZAAAgwIAfQ4AfAUAagAAZAkAZAAAgwIAfQ8AfAgAdAEAawkAchkBfAgAZAoAawMAchkBZBIAfRAAdAcAfAgAgwEAfQgAbn4AZBEAfRAAdAgAfAIAgwEAfQgAfAgAagkAZAsAgwEAfREAfBEAZBMAawMAcnwBfAsAZA0AawIAcmUBfAgAZAAAfBEAhQIAGX0IAHF8AXwIAGQAAHwRAGQMABeFAgAZfQgAbgAAdAoAfAgAgwEAZA0AawIAcpcBZAsAfQgAbgAAfAcAdAEAawkAfRIAZBEAfRMAfBIAcscBdAsAfAcAagwAZA4AgwEAgwEAfRMAbgAAfAcAdAEAawgAcu4BdA0AfAIAgwEAXAIAfRQAfRUAfBUAfQcAbhwAfAcAagwAZA4AgwEAcwoCZA4AfAcAF30HAG4AAGQRAH0WAHwJAHQBAGsJAHJVAnwJAGQAAGsIAHI3AnQOAHwCAIMBAH0JAHFbAmQSAH0WAHQPAGoQAGQPAGQKAHwJAIMDAH0JAG4GAGQAAH0JAHwKAHQBAGsIAHJ2AmQAAH0KAGQSAH0NAG5SAHwKAHwAAGoRAGsBAHLIAnkXAHwAAGoSAHwHAHwIAHwDAIMDAAFXbhIABHQTAGsKAHKwAgEBAVluAQBYdBQAZBAAfAcAfAgAfAMAgwQAAWQAAFN0FQB8CwB8AwB8BAB8CQB8FgB8BwB8EgB8EwB8CAB8EAB8DAB8CgB8DQB8DgB8DwB8BgCDEABTKBQAAABOdQYAAABkb21haW51BAAAAHBhdGh1BAAAAHBvcnR1BwAAAGV4cGlyZXN1BwAAAHZlcnNpb251BgAAAHNlY3VyZXUHAAAAZGlzY2FyZHUHAAAAY29tbWVudHUKAAAAY29tbWVudHVybHUAAAAAdQEAAAAvaQEAAABpAAAAAHUBAAAALnUDAAAAXHMrdTIAAABFeHBpcmluZyBjb29raWUsIGRvbWFpbj0nJXMnLCBwYXRoPSclcycsIG5hbWU9JyVzJ0ZUaf////8oFgAAAHUDAAAAZ2V0dQYAAABBYnNlbnR1BAAAAE5vbmV1AwAAAGludHUKAAAAVmFsdWVFcnJvcnUFAAAARmFsc2V1BAAAAFRydWV1CwAAAGVzY2FwZV9wYXRodQwAAAByZXF1ZXN0X3BhdGh1BQAAAHJmaW5kdQMAAABsZW51BAAAAGJvb2x1CgAAAHN0YXJ0c3dpdGh1EAAAAGVmZl9yZXF1ZXN0X2hvc3R1DAAAAHJlcXVlc3RfcG9ydHUCAAAAcmV1AwAAAHN1YnUEAAAAX25vd3UFAAAAY2xlYXJ1CAAAAEtleUVycm9ydQYAAABfZGVidWd1BgAAAENvb2tpZSgXAAAAdQQAAABzZWxmdQMAAAB0dXB1BwAAAHJlcXVlc3R1BAAAAG5hbWV1BQAAAHZhbHVldQgAAABzdGFuZGFyZHUEAAAAcmVzdHUGAAAAZG9tYWludQQAAABwYXRodQQAAABwb3J0dQcAAABleHBpcmVzdQcAAAB2ZXJzaW9udQYAAABzZWN1cmV1BwAAAGRpc2NhcmR1BwAAAGNvbW1lbnR1CwAAAGNvbW1lbnRfdXJsdQ4AAABwYXRoX3NwZWNpZmllZHUBAAAAaXUQAAAAZG9tYWluX3NwZWNpZmllZHUSAAAAZG9tYWluX2luaXRpYWxfZG90dQgAAAByZXFfaG9zdHUEAAAAZXJobnUOAAAAcG9ydF9zcGVjaWZpZWQoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1GQAAAF9jb29raWVfZnJvbV9jb29raWVfdHVwbGWmBQAAc4IAAAAAAxICEgESARIBEgMSAQwBAwEQAQ0BDAESAhIBEgESAxgBBgEPAgYBDAEPAQwBDAITAhcBEgAJAwwCBgEGARgBDAESAQkBDwENAwYBDAEMAw8CBgEYAwYDDAEGAQkBDwMDARcBDQEFAQYBDQEEAgYBBgEGAQkBBgEDAQMBAwEDAQMBdSMAAABDb29raWVKYXIuX2Nvb2tpZV9mcm9tX2Nvb2tpZV90dXBsZWMDAAAAAAAAAAcAAAAEAAAAQwAAAHNSAAAAfAAAagAAfAEAgwEAfQMAZwAAfQQAeDYAfAMARF0uAH0FAHwAAGoBAHwFAHwCAIMCAH0GAHwGAHIcAHwEAGoCAHwGAIMBAAFxHABxHABXfAQAUygBAAAATigDAAAAdRkAAABfbm9ybWFsaXplZF9jb29raWVfdHVwbGVzdRkAAABfY29va2llX2Zyb21fY29va2llX3R1cGxldQYAAABhcHBlbmQoBwAAAHUEAAAAc2VsZnUJAAAAYXR0cnNfc2V0dQcAAAByZXF1ZXN0dQ0AAABjb29raWVfdHVwbGVzdQcAAABjb29raWVzdQMAAAB0dXB1BgAAAGNvb2tpZSgAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUXAAAAX2Nvb2tpZXNfZnJvbV9hdHRyc19zZXQCBgAAcw4AAAAAAQ8CBgENARIBBgAUAXUhAAAAQ29va2llSmFyLl9jb29raWVzX2Zyb21fYXR0cnNfc2V0YwIAAAAAAAAABAAAAAQAAABDAAAAc3MAAAB0AAB8AABqAQBkAQBkAACDAwB9AgB8AgBkAABrCAByMQB8AABqAQBqAwAMfQIAbgAAeDsAfAEARF0zAH0DAHwDAGoEAGQCAGsCAHI4AGQEAHwDAF8GAHwCAHJrAGQDAHwDAF8EAHFrAHE4AHE4AFdkAABTKAUAAABOdRMAAAByZmMyMTA5X2FzX25ldHNjYXBlaQEAAABpAAAAAFQoBwAAAHUHAAAAZ2V0YXR0cnUHAAAAX3BvbGljeXUEAAAATm9uZXUHAAAAcmZjMjk2NXUHAAAAdmVyc2lvbnUEAAAAVHJ1ZXUHAAAAcmZjMjEwOSgEAAAAdQQAAABzZWxmdQcAAABjb29raWVzdQ0AAAByZmMyMTA5X2FzX25zdQYAAABjb29raWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1GAAAAF9wcm9jZXNzX3JmYzIxMDlfY29va2llcwsGAABzEAAAAAABFQEMARABDQEPAQkBBgN1IgAAAENvb2tpZUphci5fcHJvY2Vzc19yZmMyMTA5X2Nvb2tpZXNjAwAAAAAAAAANAAAAHgAAAEMAAABzkAEAAHwBAGoAAIMAAH0DAHwDAGoBAGQBAGcAAIMCAH0EAHwDAGoBAGQCAGcAAIMCAH0FAHwAAGoCAGoDAH0GAHwAAGoCAGoEAH0HAHwEAAxyVgB8BQAMc4AAfAUADHJkAHwGAAxzgAB8BAAMcnIAfAcADHOAAHwHAAxyhAB8BgAMcoQAZwAAU3kcAHwAAGoFAHQGAHwEAIMBAHwCAIMCAH0IAFduHwAEdAcAawoAcsEAAQEBdAgAgwAAAWcAAH0IAFluAQBYfAUAcowBfAcAcowBeRwAfAAAagUAdAkAfAUAgwEAfAIAgwIAfQkAV24fAAR0BwBrCgByCwEBAQF0CACDAAABZwAAfQkAWW4BAFh8AABqCgB8CQCDAQABfAYAcnMBaQAAfQoAeCoAfAgARF0iAH0LAGQFAHwKAHwLAGoMAHwLAGoNAHwLAGoOAGYDADxxLAFXfAoAZAMAZAQAhAEAfQwAdA8AfAwAfAkAgwIAfQkAbgAAfAkAcowBfAgAahAAfAkAgwEAAXGMAW4AAHwIAFMoBgAAAHVBAAAAUmV0dXJuIHNlcXVlbmNlIG9mIENvb2tpZSBvYmplY3RzIGV4dHJhY3RlZCBmcm9tIHJlc3BvbnNlIG9iamVjdC51CwAAAFNldC1Db29raWUydQoAAABTZXQtQ29va2llYwIAAAAAAAAAAwAAAAMAAABTAAAAcyIAAAB8AABqAAB8AABqAQB8AABqAgBmAwB9AgB8AgB8AQBrBwBTKAEAAABOKAMAAAB1BgAAAGRvbWFpbnUEAAAAcGF0aHUEAAAAbmFtZSgDAAAAdQkAAABuc19jb29raWV1BgAAAGxvb2t1cHUDAAAAa2V5KAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dRMAAABub19tYXRjaGluZ19yZmMyOTY1QwYAAHMEAAAAAAEYAXUzAAAAQ29va2llSmFyLm1ha2VfY29va2llcy48bG9jYWxzPi5ub19tYXRjaGluZ19yZmMyOTY1TigRAAAAdQQAAABpbmZvdQcAAABnZXRfYWxsdQcAAABfcG9saWN5dQcAAAByZmMyOTY1dQgAAABuZXRzY2FwZXUXAAAAX2Nvb2tpZXNfZnJvbV9hdHRyc19zZXR1EgAAAHNwbGl0X2hlYWRlcl93b3Jkc3UJAAAARXhjZXB0aW9udRkAAABfd2Fybl91bmhhbmRsZWRfZXhjZXB0aW9udRAAAABwYXJzZV9uc19oZWFkZXJzdRgAAABfcHJvY2Vzc19yZmMyMTA5X2Nvb2tpZXN1BAAAAE5vbmV1BgAAAGRvbWFpbnUEAAAAcGF0aHUEAAAAbmFtZXUGAAAAZmlsdGVydQYAAABleHRlbmQoDQAAAHUEAAAAc2VsZnUIAAAAcmVzcG9uc2V1BwAAAHJlcXVlc3R1BwAAAGhlYWRlcnN1DAAAAHJmYzI5NjVfaGRyc3UHAAAAbnNfaGRyc3UHAAAAcmZjMjk2NXUIAAAAbmV0c2NhcGV1BwAAAGNvb2tpZXN1CgAAAG5zX2Nvb2tpZXN1BgAAAGxvb2t1cHUGAAAAY29va2lldRMAAABub19tYXRjaGluZ19yZmMyOTY1KAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQwAAABtYWtlX2Nvb2tpZXMXBgAAc0IAAAAAAwwBEgESAgwBDAIOAQ4BDgEOAQQCAwEGARYBDQEHAQsCDAEDAgYBFgENAQcBCwENCAYBBgENASACDwMSAgYBEwJ1FgAA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ZAIAgwEAggEAbgAAfAAAagIAfAEAGXwCAD1uIgB8AQBkAwBrCQBymQB8AABqAgB8AQA9bgkAaQAAfAAAXwIAZAMAUygEAAAAddEBAABDbGVhciBzb21lIGNvb2tpZXMuCgogICAgICAgIEludm9raW5nIHRoaXMgbWV0aG9kIHdpdGhvdXQgYXJndW1lbnRzIHdpbGwgY2xlYXIgYWxsIGNvb2tpZXMuICBJZgogICAgICAgIGdpdmVuIGEgc2luZ2xlIGFyZ3VtZW50LCBvbmx5IGNvb2tpZXMgYmVsb25naW5nIHRvIHRoYXQgZG9tYWluIHdpbGwgYmUKICAgICAgICByZW1vdmVkLiAgSWYgZ2l2ZW4gdHdvIGFyZ3VtZW50cywgY29va2llcyBiZWxvbmdpbmcgdG8gdGhlIHNwZWNpZmllZAogICAgICAgIHBhdGggd2l0aGluIHRoYXQgZG9tYWluIGFyZSByZW1vdmVkLiAgSWYgZ2l2ZW4gdGhyZWUgYXJndW1lbnRzLCB0aGVuCiAgICAgICAgdGhlIGNvb2tpZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwgcGF0aCBhbmQgZG9tYWluIGlzIHJlbW92ZWQuCgogICAgICAgIFJhaXNlcyBLZXlFcnJvciBpZiBubyBtYXRjaGluZyBjb29raWUgZXhpc3RzLgoKICAgICAgICB1OAAAAGRvbWFpbiBhbmQgcGF0aCBtdXN0IGJlIGdpdmVuIHRvIHJlbW92ZSBhIGNvb2tpZSBieSBuYW1ldS4AAABkb21haW4gbXVzdCBiZSBnaXZlbiB0byByZW1vdmUgY29va2llcyBieSBwYXRoTigDAAAAdQQAAABOb25ldQoAAABWYWx1ZUVycm9ydQgAAABfY29va2llcygEAAAAdQQAAABzZWxmdQYAAABkb21haW51BAAAAHBhdGh1BAAAAG5hbWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1BQAAAGNsZWFydQYAAHMaAAAAAAwMARgBAwEMARUBDAEMAQMBDAERAQwBDQJ1DwAAAENvb2tpZUphci5jbGVhcmMBAAAAAAAAAAIAAAALAAAAQwAAAHNfAAAAfAAAagAAagEAgwAAAXo9AHg2AHwAAERdLgB9AQB8AQBqAgByFwB8AABqAwB8AQBqBAB8AQBqBQB8AQBqBgCDAwABcRcAcRcAV1dkAQB8AABqAABqBwCDAAABWGQBAFMoAgAAAHW7AAAARGlzY2FyZCBhbGwgc2Vzc2lvbiBjb29raWVzLgoKICAgICAgICBOb3RlIHRoYXQgdGhlIC5zYXZlKCkgbWV0aG9kIHdvbid0IHNhdmUgc2Vzc2lvbiBjb29raWVzIGFueXdheSwgdW5sZXNzCiAgICAgICAgeW91IGFzayBvdGhlcndpc2UgYnkgcGFzc2luZyBhIHRydWUgaWdub3JlX2Rpc2NhcmQgYXJndW1lbnQuCgogICAgICAgIE4oCAAAAHUNAAAAX2Nvb2tpZXNfbG9ja3UHAAAAYWNxdWlyZXUHAAAAZGlzY2FyZHUFAAAAY2xlYXJ1BgAAAGRvbWFpbnUEAAAAcGF0aHUEAAAAbmFtZXUHAAAAcmVsZWFzZSgCAAAAdQQAAABzZWxmdQYAAABjb29raWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1FQAAAGNsZWFyX3Nlc3Npb25fY29va2llc5AGAABzDAAAAAAHDQEDAQ0BCQEnAnUfAAAAQ29va2llSmFyLmNsZWFyX3Nlc3Npb25fY29va2llc2MBAAAAAAAAAAMAAAALAAAAQwAAAHNxAAAAfAAAagAAagEAgwAAAXpPAHQCAGoCAIMAAH0BAHg8AHwAAERdNAB9AgB8AgBqAwB8AQCDAQByIwB8AABqBAB8AgBqBQB8AgBqBgB8AgBqBwCDAwABcSMAcSMAV1dkAQB8AABqAABqCACDAAABWGQBAFMoAgAAAHWUAQAARGlzY2FyZCBhbGwgZXhwaXJlZCBjb29raWVzLgoKICAgICAgICBZb3UgcHJvYmFibHkgZG9uJ3QgbmVlZCB0byBjYWxsIHRoaXMgbWV0aG9kOiBleHBpcmVkIGNvb2tpZXMgYXJlIG5ldmVyCiAgICAgICAgc2VudCBiYWNrIHRvIHRoZSBzZXJ2ZXIgKHByb3ZpZGVkIHlvdSdyZSB1c2luZyBEZWZhdWx0Q29va2llUG9saWN5KSwKICAgICAgICB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgQ29va2llSmFyIGl0c2VsZiBldmVyeSBzbyBvZnRlbiwgYW5kIHRoZQogICAgICAgIC5zYXZlKCkgbWV0aG9kIHdvbid0IHNhdmUgZXhwaXJlZCBjb29raWVzIGFueXdheSAodW5sZXNzIHlvdSBhc2sKICAgICAgICBvdGhlcndpc2UgYnkgcGFzc2luZyBhIHRydWUgaWdub3JlX2V4cGlyZXMgYXJndW1lbnQpLgoKICAgICAgICBOKAkAAAB1DQAAAF9jb29raWVzX2xvY2t1BwAAAGFjcXVpcmV1BAAAAHRpbWV1CgAAAGlzX2V4cGlyZWR1BQAAAGNsZWFydQYAAABkb21haW51BAAAAHBhdGh1BAAAAG5hbWV1BwAAAHJlbGVhc2UoAwAAAHUEAAAAc2VsZnUDAAAAbm93dQYAAABjb29raWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1FQAAAGNsZWFyX2V4cGlyZWRfY29va2llc58GAABzDgAAAAAKDQEDAQwBDQEPAScCdR8AAABDb29raWVKYXIuY2xlYXJfZXhwaXJlZF9jb29raWVzYwEAAAAAAAAAAQAAAAIAAABDAAAAcw0AAAB0AAB8AABqAQCDAQBTKAEAAABOKAIAAAB1CgAAAGRlZXB2YWx1ZXN1CAAAAF9jb29raWVzKAEAAAB1BAAAAHNlbGYoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1CAAAAF9faXRlcl9fsgYAAHMCAAAAAAF1EgAAAENvb2tpZUphci5fX2l0ZXJfX2MBAAAAAAAAAAMAAAADAAAAQwAAAHMlAAAAZAEAfQEAeBgAfAAARF0QAH0CAHwBAGQCABd9AQBxDQBXfAEAUygDAAAAdSMAAABSZXR1cm4gbnVtYmVyIG9mIGNvbnRhaW5lZCBjb29raWVzLmkAAAAAaQEAAAAoAAAAACgDAAAAdQQAAABzZWxmdQEAAABpdQYAAABjb29raWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1BwAAAF9fbGVuX1+1BgAAcwgAAAAAAgYBDQAOAXURAAAAQ29va2llSmFyLl9fbGVuX19jAQAAAAAAAAADAAAABAAAAEMAAABzRAAAAGcAAH0BAHghAHwAAERdGQB9AgB8AQBqAAB0AQB8AgCDAQCDAQABcQ0AV2QBAHwAAGoCAGQCAGoDAHwBAIMBAGYCABZTKAMAAABOdQgAAAA8JXNbJXNdPnUCAAAALCAoBAAAAHUGAAAAYXBwZW5kdQQAAAByZXBydQkAAABfX2NsYXNzX191BAAAAGpvaW4oAwAAAHUEAAAAc2VsZnUBAAAAcnUGAAAAY29va2llKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQgAAABfX3JlcHJfX7sGAABzCAAAAAABBgENABcBdRIAAABDb29raWVKYXIuX19yZXByX19jAQAAAAAAAAADAAAABAAAAEMAAABzRAAAAGcAAH0BAHghAHwAAERdGQB9AgB8AQBqAAB0AQB8AgCDAQCDAQABcQ0AV2QBAHwAAGoCAGQCAGoDAHwBAIMBAGYCABZTKAMAAABOdQgAAAA8JXNbJXNdPnUCAAAALCAoBAAAAHUGAAAAYXBwZW5kdQMAAABzdHJ1CQAAAF9fY2xhc3NfX3UEAAAAam9pbigDAAAAdQQAAABzZWxmdQEAAABydQYAAABjb29raWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1BwAAAF9fc3RyX1/ABgAAcwgAAAAAAQYBDQAXAXURAAAAQ29va2llSmFyLl9fc3RyX19OKCMAAAB1CAAAAF9fbmFtZV9fdQoAAABfX21vZHVsZV9fdQwAAABfX3F1YWxuYW1lX191BwAAAF9fZG9jX191AgAAAHJldQcAAABjb21waWxldQsAAABub25fd29yZF9yZXUIAAAAcXVvdGVfcmV1EAAAAHN0cmljdF9kb21haW5fcmV1CQAAAGRvbWFpbl9yZXUHAAAAZG90c19yZXUFAAAAQVNDSUl1CAAAAG1hZ2ljX3JldQQAAABOb25ldQgAAABfX2luaXRfX3UKAAAAc2V0X3BvbGljeXUTAAAAX2Nvb2tpZXNfZm9yX2RvbWFpbnUUAAAAX2Nvb2tpZXNfZm9yX3JlcXVlc3R1DQAAAF9jb29raWVfYXR0cnN1EQAAAGFkZF9jb29raWVfaGVhZGVydRkAAABfbm9ybWFsaXplZF9jb29raWVfdHVwbGVzdRkAAABfY29va2llX2Zyb21fY29va2llX3R1cGxldRcAAABfY29va2llc19mcm9tX2F0dHJzX3NldHUYAAAAX3Byb2Nlc3NfcmZjMjEwOV9jb29raWVzdQwAAABtYWtlX2Nvb2tpZXN1EAAAAHNldF9jb29raWVfaWZfb2t1CgAAAHNldF9jb29raWV1DwAAAGV4dHJhY3RfY29va2llc3UFAAAAY2xlYXJ1FQAAAGNsZWFyX3Nlc3Npb25fY29va2llc3UVAAAAY2xlYXJfZXhwaXJlZF9jb29raWVzdQgAAABfX2l0ZXJfX3UHAAAAX19sZW5fX3UIAAAAX19yZXByX191BwAAAF9fc3RyX18oAQAAAHUKAAAAX19sb2NhbHNfXygAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUJAAAAQ29va2llSmFytgQAAHM4AAAAEAUGAg8BDwEPAQ8BDwIVAg8IDAMMEgwHDDsMIQxhDFwMCQwMDDYMDQwNDA4VGwwPDBMMAwwGDAVjAQAAAAAAAAABAAAAAQAAAEIAAABzFAAAAHwAAEVlAABaAQBkAABaAgBkAQBTKAIAAAB1CQAAAExvYWRFcnJvck4oAwAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfXygBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQkAAABMb2FkRXJyb3LHBgAAcwIAAAAQAGMBAAAAAAAAAAEAAAAFAAAAQgAAAHNuAAAAfAAARWUAAFoBAGQAAFoCAGQBAFoDAGQKAGQLAGQKAGQCAGQDAIQDAFoGAGQKAGQLAGQLAGQE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AFluAQBYZAAAUygYAAAATnU1AAAAJXIgZG9lcyBub3QgbG9vayBsaWtlIGEgU2V0LUNvb2tpZTMgKExXUCkgZm9ybWF0IGZpbGV1DAAAAFNldC1Db29raWUzOnUJAAAAcG9ydF9zcGVjdQkAAABwYXRoX3NwZWN1CgAAAGRvbWFpbl9kb3R1BgAAAHNlY3VyZXUHAAAAZGlzY2FyZHUHAAAAdmVyc2lvbnUEAAAAcG9ydHUEAAAAcGF0aHUGAAAAZG9tYWludQcAAABleHBpcmVzdQcAAABjb21tZW50dQoAAABjb21tZW50dXJsdQAAAABpAAAAAGkBAAAAdQEAAAAudSYAAABpbnZhbGlkIFNldC1Db29raWUzIGZvcm1hdCBmaWxlICVyOiAlcigFAAAAdQkAAABwb3J0X3NwZWN1CQAAAHBhdGhfc3BlY3UKAAAAZG9tYWluX2RvdHUGAAAAc2VjdXJldQcAAABkaXNjYXJkKAcAAAB1BwAAAHZlcnNpb251BAAAAHBvcnR1BAAAAHBhdGh1BgAAAGRvbWFpbnUHAAAAZXhwaXJlc3UHAAAAY29tbWVudHUKAAAAY29tbWVudHVybEZUKBYAAAB1CAAAAHJlYWRsaW5ldQgAAABtYWdpY19yZXUGAAAAc2VhcmNodQkAAABMb2FkRXJyb3J1BAAAAHRpbWV1CgAAAHN0YXJ0c3dpdGh1AwAAAGxlbnUFAAAAc3RyaXB1EgAAAHNwbGl0X2hlYWRlcl93b3Jkc3UFAAAARmFsc2V1BAAAAE5vbmV1BQAAAGxvd2VydQQAAABUcnVldQMAAABnZXR1CAAAAGlzbzJ0aW1ldQYAAABDb29raWV1BwAAAGRpc2NhcmR1CgAAAGlzX2V4cGlyZWR1CgAAAHNldF9jb29raWV1BwAAAElPRXJyb3J1CQAAAEV4Y2VwdGlvbnUZAAAAX3dhcm5fdW5oYW5kbGVkX2V4Y2VwdGlvbigaAAAAdQQAAABzZWxmdQEAAABmdQgAAABmaWxlbmFtZXUOAAAAaWdub3JlX2Rpc2NhcmR1DgAAAGlnbm9yZV9leHBpcmVzdQUAAABtYWdpY3UDAAAAbXNndQMAAABub3d1BgAAAGhlYWRlcnUNAAAAYm9vbGVhbl9hdHRyc3ULAAAAdmFsdWVfYXR0cnN1BAAAAGxpbmV1BAAAAGRhdGF1BAAAAG5hbWV1BQAAAHZhbHVldQgAAABzdGFuZGFyZHUEAAAAcmVzdHUBAAAAa3UBAAAAdnUCAAAAbGN1AQAAAGh1BwAAAGV4cGlyZXN1BwAAAGRpc2NhcmR1BgAAAGRvbWFpbnUQAAAAZG9tYWluX3NwZWNpZmllZHUBAAAAYygAAAAAKAAAAAB1MwAAAC9vcHQvYWx0L3B5dGhvbjMzL2xpYjY0L3B5dGhvbjMuMy9odHRwL2Nvb2tpZWphci5weXUMAAAAX3JlYWxseV9sb2FkTgcAAHOMAAAAAAEMARIBAwEHAQ8CDAIGAQABBgEAAQABAAEGAgMBAwEMAQwABAEPAQYBHAIWARABBgEGAQ0BDgEdAQwBDwIGAhgBCQEMAQwACQENAQwBDQIOAgkBDAEMAQwBDwEMAQkBDAEPARIBEgEPARIBCQEDAQMBCQEJAQkBEAEGARYBBgEYAg0BBwENAQcBBgF1GQAAAExXUENvb2tpZUphci5fcmVhbGx5X2xvYWROVEYoCgAAAHUIAAAAX19uYW1lX191CgAAAF9fbW9kdWxlX191DAAAAF9fcXVhbG5hbWVfX3UHAAAAX19kb2NfX3UEAAAAVHJ1ZXUKAAAAYXNfbHdwX3N0cnUEAAAATm9uZXUFAAAARmFsc2V1BAAAAHNhdmV1DAAAAF9yZWFsbHlfbG9hZCgBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQwAAABMV1BDb29raWVKYXIiBwAAcwgAAAAQCwYCEhAVD2MBAAAAAAAAAAEAAAAFAAAAQgAAAHNQAAAAfAAARWUAAFoBAGQAAFoCAGQBAFoDAGUEAGoFAGQCAIMBAFoGAGQDAFoHAGQEAGQFAIQAAFoIAGQIAGQJAGQJAGQGAGQHAIQDAFoLAGQIAFMoCgAAAHUQAAAATW96aWxsYUNvb2tpZUphcnWSBQAACgogICAgV0FSTklORzogeW91IG1heSB3YW50IHRvIGJhY2t1cCB5b3VyIGJyb3dzZXIncyBjb29raWVzIGZpbGUgaWYgeW91IHVzZQogICAgdGhpcyBjbGFzcyB0byBzYXZlIGNvb2tpZXMuICBJICp0aGluayogaXQgd29ya3MsIGJ1dCB0aGVyZSBoYXZlIGJlZW4KICAgIGJ1Z3MgaW4gdGhlIHBhc3QhCgogICAgVGhpcyBjbGFzcyBkaWZmZXJzIGZyb20gQ29va2llSmFyIG9ubHkgaW4gdGhlIGZvcm1hdCBpdCB1c2VzIHRvIHNhdmUgYW5kCiAgICBsb2FkIGNvb2tpZXMgdG8gYW5kIGZyb20gYSBmaWxlLiAgVGhpcyBjbGFzcyB1c2VzIHRoZSBNb3ppbGxhL05ldHNjYXBlCiAgICBgY29va2llcy50eHQnIGZvcm1hdC4gIGx5bnggdXNlcyB0aGlzIGZpbGUgZm9ybWF0LCB0b28uCgogICAgRG9uJ3QgZXhwZWN0IGNvb2tpZXMgc2F2ZWQgd2hpbGUgdGhlIGJyb3dzZXIgaXMgcnVubmluZyB0byBiZSBub3RpY2VkIGJ5CiAgICB0aGUgYnJvd3NlciAoaW4gZmFjdCwgTW96aWxsYSBvbiB1bml4IHdpbGwgb3ZlcndyaXRlIHlvdXIgc2F2ZWQgY29va2llcyBpZgogICAgeW91IGNoYW5nZSB0aGVtIG9uIGRpc2sgd2hpbGUgaXQncyBydW5uaW5nOyBvbiBXaW5kb3dzLCB5b3UgcHJvYmFibHkgY2FuJ3QKICAgIHNhdmUgYXQgYWxsIHdoaWxlIHRoZSBicm93c2VyIGlzIHJ1bm5pbmcpLgoKICAgIE5vdGUgdGhhdCB0aGUgTW96aWxsYS9OZXRzY2FwZSBmb3JtYXQgd2lsbCBkb3duZ3JhZGUgUkZDMjk2NSBjb29raWVzIHRvCiAgICBOZXRzY2FwZSBjb29raWVzIG9uIHNhdmluZy4KCiAgICBJbiBwYXJ0aWN1bGFyLCB0aGUgY29va2llIHZlcnNpb24gYW5kIHBvcnQgbnVtYmVyIGluZm9ybWF0aW9uIGlzIGxvc3QsCiAgICB0b2dldGhlciB3aXRoIGluZm9ybWF0aW9uIGFib3V0IHdoZXRoZXIgb3Igbm90IFBhdGgsIFBvcnQgYW5kIERpc2NhcmQgd2VyZQogICAgc3BlY2lmaWVkIGJ5IHRoZSBTZXQtQ29va2llMiAob3IgU2V0LUNvb2tpZSkgaGVhZGVyLCBhbmQgd2hldGhlciBvciBub3QgdGhl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AHZhbHVldQQAAABuYW1ldQQAAABqb2ludQQAAABwYXRodQUAAABjbG9zZSgMAAAAdQQAAABzZWxmdQgAAABmaWxlbmFtZXUOAAAAaWdub3JlX2Rpc2NhcmR1DgAAAGlnbm9yZV9leHBpcmVzdQEAAABmdQMAAABub3d1BgAAAGNvb2tpZXUGAAAAc2VjdXJldQsAAABpbml0aWFsX2RvdHUHAAAAZXhwaXJlc3UEAAAAbmFtZXUFAAAAdmFsdWUoAAAAACgAAAAAdTMAAAAvb3B0L2FsdC9weXRob24zMy9saWI2NC9weXRob24zLjMvaHR0cC9jb29raWVqYXIucHl1BAAAAHNhdmUHCAAAc0AAAAAAAQwBDwAMAQ8CDwEDARABDAENARABBgEWAQYBCQAJAQYBEgAJAQYBDwESAgYBDwQGAQwCCQEJAQYBFQESARACdRUAAABNb3ppbGxhQ29va2llSmFyLnNhdmVORigMAAAAdQgAAABfX25hbWVfX3UKAAAAX19tb2R1bGVfX3UMAAAAX19xdWFsbmFtZV9fdQcAAABfX2RvY19fdQIAAAByZXUHAAAAY29tcGlsZXUIAAAAbWFnaWNfcmV1BgAAAGhlYWRlcnUMAAAAX3JlYWxseV9sb2FkdQQAAABOb25ldQUAAABGYWxzZXUEAAAAc2F2ZSgBAAAAdQoAAABfX2xvY2Fsc19fKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dRAAAABNb3ppbGxhQ29va2llSmFyngcAAHMKAAAAEB4GAQ8GBgIMQihbAAAAdQcAAABfX2RvY19fdQcAAABfX2FsbF9fdQQAAABjb3B5dQgAAABkYXRldGltZXUCAAAAcmV1BAAAAHRpbWV1DAAAAHVybGxpYi5wYXJzZXUGAAAAdXJsbGlidQ4AAAB1cmxsaWIucmVxdWVzdHUJAAAAdGhyZWFkaW5ndQoAAABfdGhyZWFkaW5ndQsAAABJbXBvcnRFcnJvcnUPAAAAZHVtbXlfdGhyZWFkaW5ndQsAAABodHRwLmNsaWVudHUEAAAAaHR0cHUIAAAAY2FsZW5kYXJ1BgAAAHRpbWVnbXUFAAAARmFsc2V1BQAAAGRlYnVndQQAAABOb25ldQYAAABsb2dnZXJ1BgAAAF9kZWJ1Z3UDAAAAc3RydQYAAABjbGllbnR1CQAAAEhUVFBfUE9SVHURAAAAREVGQVVMVF9IVFRQX1BPUlR1FQAAAE1JU1NJTkdfRklMRU5BTUVfVEVYVHUZAAAAX3dhcm5fdW5oYW5kbGVkX2V4Y2VwdGlvbnUKAAAARVBPQ0hfWUVBUnUHAAAAX3RpbWVnbXUEAAAAREFZU3UGAAAATU9OVEhTdQwAAABNT05USFNfTE9XRVJ1BQAAAG1vbnRodQYAAABhcHBlbmR1BQAAAGxvd2VydQkAAAB0aW1lMmlzb3p1DQAAAHRpbWUybmV0c2NhcGV1CQAAAFVUQ19aT05FU3UHAAAAY29tcGlsZXUFAAAAQVNDSUl1CwAAAFRJTUVaT05FX1JFdRUAAABvZmZzZXRfZnJvbV90el9zdHJpbmd1CQAAAF9zdHIydGltZXUOAAAAU1RSSUNUX0RBVEVfUkV1AQAAAEl1CgAAAFdFRUtEQVlfUkV1AQAAAFh1EgAAAExPT1NFX0hUVFBfREFURV9SRXUJAAAAaHR0cDJ0aW1ldQsAAABJU09fREFURV9SRXUIAAAAaXNvMnRpbWV1CQAAAHVubWF0Y2hlZHUPAAAASEVBREVSX1RPS0VOX1JFdRYAAABIRUFERVJfUVVPVEVEX1ZBTFVFX1JFdQ8AAABIRUFERVJfVkFMVUVfUkV1EAAAAEhFQURFUl9FU0NBUEVfUkV1EgAAAHNwbGl0X2hlYWRlcl93b3Jkc3UVAAAASEVBREVSX0pPSU5fRVNDQVBFX1JFdREAAABqb2luX2hlYWRlcl93b3Jkc3UMAAAAc3RyaXBfcXVvdGVzdRAAAABwYXJzZV9uc19oZWFkZXJzdQcAAABJUFY0X1JFdQYAAABpc19IRE51DAAAAGRvbWFpbl9tYXRjaHUOAAAAbGliZXJhbF9pc19IRE51EQAAAHVzZXJfZG9tYWluX21hdGNodQsAAABjdXRfcG9ydF9yZXUMAAAAcmVxdWVzdF9ob3N0dRAAAABlZmZfcmVxdWVzdF9ob3N0dQwAAAByZXF1ZXN0X3BhdGh1DAAAAHJlcXVlc3RfcG9ydHUOAAAASFRUUF9QQVRIX1NBRkV1DwAAAEVTQ0FQRURfQ0hBUl9SRXUWAAAAdXBwZXJjYXNlX2VzY2FwZWRfY2hhcnULAAAAZXNjYXBlX3BhdGh1BQAAAHJlYWNodQ4AAABpc190aGlyZF9wYXJ0eXUGAAAAQ29va2lldQwAAABDb29raWVQb2xpY3l1EwAAAERlZmF1bHRDb29raWVQb2xpY3l1EgAAAHZhbHNfc29ydGVkX2J5X2tleXUKAAAAZGVlcHZhbHVlc3UGAAAAQWJzZW50dQkAAABDb29raWVKYXJ1BwAAAElPRXJyb3J1CQAAAExvYWRFcnJvcnUNAAAARmlsZUNvb2tpZUphcnUOAAAAbHdwX2Nvb2tpZV9zdHJ1DAAAAExXUENvb2tpZUphcnUQAAAATW96aWxsYUNvb2tpZUphcigAAAAAKAAAAAAoAAAAAHUzAAAAL29wdC9hbHQvcHl0aG9uMzMvbGliNjQvcHl0aG9uMy4zL2h0dHAvY29va2llamFyLnB5dQgAAAA8bW9kdWxlPhoAAABzqgAAAAYCDAESAgwBDAEMAQwBGAEDARABDQERAQwBEAIGAQYCDAoSAQYDDA4GAQwIGwESARgBBgENABcCDxMPFCICFQEMDgw1BgEDAQwBBgEWAQYQFgEMOAYPFgEMIQwFDwEPAQ8BDwEMVQ8BDBkMBww0FQEMDwwnDAoMFBUBDBAMCwwKDBAGAQ8BDAIMDgwjDBETYhMhFv8AUgwEDBMTAhP/AP8AExYCFj0MHBZ8
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 10
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
client.cpython-33.pyc
43.45 KB
lrw-r--r--
2024-04-17 16:58:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
client.cpython-33.pyo
43.26 KB
lrw-r--r--
2024-04-17 16:58:22
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cookiejar.cpython-33.pyc
76.11 KB
lrw-r--r--
2024-04-17 16:58:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cookiejar.cpython-33.pyo
75.87 KB
lrw-r--r--
2024-04-17 16:58:22
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cookies.cpython-33.pyc
21.56 KB
lrw-r--r--
2024-04-17 16:58:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cookies.cpython-33.pyo
21.56 KB
lrw-r--r--
2024-04-17 16:58:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
server.cpython-33.pyc
46.48 KB
lrw-r--r--
2024-04-17 16:58:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
server.cpython-33.pyo
46.48 KB
lrw-r--r--
2024-04-17 16:58:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-33.pyc
145 B
lrw-r--r--
2024-04-17 16:58:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-33.pyo
145 B
lrw-r--r--
2024-04-17 16:58:25
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).