A/MNCltcrFFjAAAAAAAAAAAIAAAAQAAAAHOdAgAAZAAAWgAAZAEAWgEAZAIAZAMAbAIAWgIAZAIAZAMAbAMAWgMAZAIAZAMAbAQAWgQAZAIAZAMAbAUAWgUAZAIAZAQAbAYAbQcAWgcAAWUCAGoIAGoJAGUFAGoKAIMBAFoLAGUCAGoIAGoJAGUFAGoMAIMBAFoNAGUCAGoIAGoOAGUCAGoIAGoPAGUFAGoQAIMBAIMBAFoRAGUCAGoSAGQFAGsCAHLmAGQGAGURAGQHAB9qEwCDAABrBgBy5gBlAgBqCABqDwBlAgBqCABqFABlEQBlAgBqCABqFQCDAgCDAQBaEQBuAABlAgBqEgBkBQBrAgByPgFkCABlEQBkCQAfahMAgwAAawYAcj4BZQIAaggAag8AZQIAaggAahQAZREAZQIAaggAahUAZQIAaggAahUAgwMAgwEAWhEAbgAAZQIAahIAZAUAawIAcpYBZAoAZREAZAsAH2oTAIMAAGsGAHKWAWUCAGoIAGoPAGUCAGoIAGoUAGURAGUCAGoIAGoVAGUCAGoIAGoVAIMDAIMBAFoRAG4AAGQMAGUCAGoWAGsGAHLBAWUCAGoIAGoJAGUCAGoWAGQMABmDAQBaEQBuAABkDQCEAABaFwBlFwCDAABaGABkDgCEAABaGQBkDwBkAwBkEACEAgBaGwBkDwBkDwBkAwBkEQCEAwBaHABkEgCEAABaHQBkEwCEAABaHgBkFACEAABaHwBkAwBkFQCEAQBaIABlAwBqIQBkFgCDAQBaIgBlAwBqIQBkFwCDAQBaIwBlAwBqIQBkGACDAQBaJABkAwBkGQCEAQBaJQBkGgCEAABaJgBkAwBhJwBkGwCEAABaKABkHACEAABaKQBkHQCEAABaKgBkHgCEAABaKwBkHwCEAABaLABkAwBTKCAAAABzjQEAAFByb3ZpZGUgYWNjZXNzIHRvIFB5dGhvbidzIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24uICBUaGUgc3BlY2lmaWMKY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgYXZhaWxhYmxlIGRlcGVuZCBoZWF2aWx5IG9uIHRoZSBwbGF0Zm9ybSBhbmQKY29uZmlndXJhdGlvbi4gIFRoZSB2YWx1ZXMgbWF5IGJlIHJldHJpZXZlZCB1c2luZwpnZXRfY29uZmlnX3ZhcihuYW1lKSwgYW5kIHRoZSBsaXN0IG9mIHZhcmlhYmxlcyBpcyBhdmFpbGFibGUgdmlhCmdldF9jb25maWdfdmFycygpLmtleXMoKS4gIEFkZGl0aW9uYWwgY29udmVuaWVuY2UgZnVuY3Rpb25zIGFyZSBhbHNvCmF2YWlsYWJsZS4KCldyaXR0ZW4gYnk6ICAgRnJlZCBMLiBEcmFrZSwgSnIuCkVtYWlsOiAgICAgICAgPGZkcmFrZUBhY20ub3JnPgpzBAAAACRJZCRp/////04oAQAAAHQWAAAARGlzdHV0aWxzUGxhdGZvcm1FcnJvcnQCAAAAbnR0BwAAAHBjYnVpbGRp+P///3MFAAAAXHBjXHZp9v///3MOAAAAXHBjYnVpbGRcYW1kNjRp8v///3QUAAAAX1BZVEhPTl9QUk9KRUNUX0JBU0VjAAAAAAEAAAAGAAAAQwAAAHM9AAAAeDYAZAQARF0uAH0AAHQAAGoBAGoCAHQAAGoBAGoDAHQEAGQDAHwAAIMDAIMBAHIHAHQFAFNxBwBXdAYAUygFAAAATnMKAAAAU2V0dXAuZGlzdHMLAAAAU2V0dXAubG9jYWx0BwAAAE1vZHVsZXMoAgAAAHMKAAAAU2V0dXAuZGlzdHMLAAAAU2V0dXAubG9jYWwoBwAAAHQCAAAAb3N0BAAAAHBhdGh0BgAAAGlzZmlsZXQEAAAAam9pbnQMAAAAcHJvamVjdF9iYXNldAQAAABUcnVldAUAAABGYWxzZSgBAAAAdAIAAABmbigAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9zeXNjb25maWcucHl0DQAAAF9weXRob25fYnVpbGQyAAAAcwgAAAAAAQ0BJAEIAWMAAAAAAAAAAAIAAABDAAAAcwsAAAB0AABqAQBkAQAgUygCAAAAc5YAAABSZXR1cm4gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFqb3IgYW5kIG1pbm9yIFB5dGhvbiB2ZXJzaW9uLAogICAgbGVhdmluZyBvZmYgdGhlIHBhdGNobGV2ZWwuICBTYW1wbGUgcmV0dXJuIHZhbHVlcyBj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BgCDAwBTbhMAdAsAZAsAdAMAagQAFoMBAIIBAGQMAFMoDQAAAHNJAgAAUmV0dXJuIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgUHl0aG9uIGxpYnJhcnkgKHN0YW5kYXJkIG9yCiAgICBzaXRlIGFkZGl0aW9ucykuCgogICAgSWYgJ3BsYXRfc3BlY2lmaWMnIGlzIHRydWUsIHJldHVybiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcKICAgIHBsYXRmb3JtLXNwZWNpZmljIG1vZHVsZXMsIGkuZS4gYW55IG1vZHVsZSBmcm9tIGEgbm9uLXB1cmUtUHl0aG9uCiAgICBtb2R1bGUgZGlzdHJpYnV0aW9uOyBvdGhlcndpc2UsIHJldHVybiB0aGUgcGxhdGZvcm0tc2hhcmVkIGxpYnJhcnkKICAgIGRpcmVjdG9yeS4gIElmICdzdGFuZGFyZF9saWInIGlzIHRydWUsIHJldHVybiB0aGUgZGlyZWN0b3J5CiAgICBjb250YWluaW5nIHN0YW5kYXJkIFB5dGhvbiBsaWJyYXJ5IG1vZHVsZXM7IG90aGVyd2lzZSwgcmV0dXJuIHRoZQogICAgZGlyZWN0b3J5IGZvciBzaXRlLXNwZWNpZmljIG1vZHVsZXMuCgogICAgSWYgJ3ByZWZpeCcgaXMgc3VwcGxpZWQsIHVzZSBpdCBpbnN0ZWFkIG9mIHN5cy5wcmVmaXggb3IKICAgIHN5cy5leGVjX3ByZWZpeCAtLSBpLmUuLCBpZ25vcmUgJ3BsYXRfc3BlY2lmaWMnLgogICAgUhEAAABSEgAAAGkAAAAAdAMAAABsaWJSFgAAAHMNAAAAc2l0ZS1wYWNrYWdlc1IBAAAAdAMAAABMaWJzAwAAADIuMlIXAAAAcz8AAABJIGRvbid0IGtub3cgd2hlcmUgUHl0aG9uIGluc3RhbGxzIGl0cyBsaWJyYXJ5IG9uIHBsYXRmb3JtICclcydOKAwAAABSGAAAAFIZAAAAUhoAAABSBQAAAFIbAAAAUg4AAABSDwAAAFIcAAAAUgYAAABSCAAAAFIQAAAAUgAAAAAoBAAAAFIjAAAAdAwAAABzdGFuZGFyZF9saWJSJAAAAHQJAAAAbGlicHl0aG9uKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL3N5c2NvbmZpZy5weXQOAAAAZ2V0X3B5dGhvbl9saWJqAAAAcyoAAAAADgwBFQInAQwBEwEGAQQCFgIPAQYBEwIPAQQCGQIPAQYBEwIZAwMBAwFjAQAAABAAAAAPAAAAQwAAAHPUAgAAZAkAfQEAfAAAagEAZAEAawIAch4AdAIAfQEAbjMAfAAAagEAZAIAawIAclEAdAMAagQAagUAZAMAgwEAZAQAawUAclEAdAIAfQEAcVEAbgAAfAEAdAIAawIActACdAMAagYAZAUAawIAcqcAdAcAaggAZAYAZAcAgwIAc6cAZAgAZAkAbAkAfQIAfAIAagoAdAcAgwEAAWQKAHQHAGQGADxxpwBuAAB0CwBkCwBkDABkDQBkDgBkDwBkEABkEQBkEgBkEwCDCQBcCQB9AwB9BAB9BQB9BgB9BwB9CAB9CQB9CgB9CwBkCQB9DABkCwB0DABqDQBrBgByCwF0DABqDQBkCwAZfQMAbgAAZAwAdAwAag0AawYAcioBdAwAag0AZAwAGX0EAG4AAGQQAHQMAGoNAGsGAHJJAXQMAGoNAGQQABl9CABuAABkFAB0DABqDQBrBgByaAF0DABqDQBkFAAZfQ0AbgoAfAMAZBUAF30NAGQWAHQMAGoNAGsGAHKZAXwIAGQXABd0DABqDQBkFgAZF30IAG4AAGQOAHQMAGoNAGsGAHLVAXwFAGQXABd0DABqDQBkDgAZF30GAHwIAGQXABd0DABqDQBkDgAZF30IAG4AAGQYAHQMAGoNAGsGAHImAnwNAGQXABd0DABqDQBkGAAZF30NAHwGAGQXABd0DABqDQBkGAAZF30GAHwIAGQXABd0DABqDQBkGAAZF30IAG4AAGQSAHQMAGoNAGsGAHJFAnQMAGoNAGQSABl9CgBuAABkEwB0DABqDQBrBgBybAJ8CgBkFwAXdAwAag0AZBMAGRd9DgBuDgB8CgBkFwAXfAsAF30OAHwDAGQXABd8BgAXfQ8AfAAAag4AZBkAfA0AZBoAfA8AZBsAfA8AZBcAF3wHABdkHAB8BABkHQB8CABkHgB8AwBkHwB8DgCDAAcBfAkAfAAAXw8AbgAAZAkAUyggAAAAc4QBAABEbyBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgY3VzdG9taXphdGlvbiBvZiBhIENDb21waWxlciBpbnN0YW5jZS4KCiAgICBNYWlubHkgbmVlZGVkIG9uIFVuaXgsIHNvIHdlIGNhbiBwbHVnIGluIHRoZSBpbmZvcm1hdGlvbiB0aGF0CiAgICB2YXJpZXMgYWNyb3NzIFVuaWNlcyBhbmQgaXMgc3RvcmVkIGluIFB5dGhvbidzIE1ha2VmaWxlLgoKICAgIE5PVEU6IChrbm93biBsaW1pdGF0aW9uIG9mIHB5dGhvbiBidWlsZC9pbnN0YWxsIHN5c3RlbSkKICAgIEluIGNyb3NzLWJ1aWxkIGVudmlyb25tZW50IG1ha2UgbWFjcm9zIGxpa2UgQ0MgYW5kIExEU0hBUkVECiAgICBjb250YWluIGNyb3NzLWNvbXBpbGVyL2xpbmtlciBpbnN0ZWFkIG9mIGhvc3QgY29tcGlsZXIvbGlua2VyLgogICAgdAQAAAB1bml4dAcAAABtaW5ndzMyUhIAAABpAAAAAHQGAAAAZGFyd2ludBcAAABDVVNUT01JWkVEX09TWF9DT01QSUxFUnQAAAAAaf////9OUgoAAAB0AgAAAENDdAMAAABDWFh0AwAAAE9QVHQGAAAAQ0ZMQUdTdAgAAABDQ1NIQVJFRHQIAAAATERTSEFSRUR0AgAAAFNPdAIAAABBUnQHAAAAQVJGTEFHU3QDAAAAQ1BQcwMAAAAgLUV0BwAAAExERkxBR1N0AQAAACB0CAAAAENQUEZMQUdTdAwAAABwcmVwcm9jZXNzb3J0CAAAAGNvbXBpbGVydAsAAABjb21waWxlcl9zb3QMAAAAY29tcGlsZXJfY3h4dAkAAABsaW5rZXJfc290CgAAAGxpbmtlcl9leGV0CAAAAGFyY2hpdmVyKBAAAABSGAAAAHQNAAAAY29tcGlsZXJfdHlwZVIKAAAAUg4AAABSDwAAAFIcAAAAdAgAAABwbGF0Zm9ybXQMAAAAX2NvbmZpZ192YXJzdAMAAABnZXR0DAAAAF9vc3hfc3VwcG9ydHQSAAAAY3VzdG9taXplX2NvbXBpbGVydA8AAABnZXRfY29uZmlnX3ZhcnNSBQAAAHQHAAAAZW52aXJvbnQPAAAAc2V0X2V4ZWN1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cjUAfAEAgwAAAW4GAGkAAGEAAHQGAHQAAGQCADx0BwB0AABkAwA8dAgAagkAZAQAawIAcn0AZAUAZAYAbAoAfQIAfAIAagsAdAAAgwEAAXF9AG4AAHwAAHK0AGcAAH0DAHgkAHwAAERdHAB9BAB8AwBqDAB0AABqAwB8BACDAQCDAQABcZAAV3wDAFN0AABTZAYAUygHAAAAc+oBAABXaXRoIG5vIGFyZ3VtZW50cywgcmV0dXJuIGEgZGljdGlvbmFyeSBvZiBhbGwgY29uZmlndXJhdGlvbgogICAgdmFyaWFibGVzIHJlbGV2YW50IGZvciB0aGUgY3VycmVudCBwbGF0Zm9ybS4gIEdlbmVyYWxseSB0aGlzIGluY2x1ZGVzCiAgICBldmVyeXRoaW5nIG5lZWRlZCB0byBidWlsZCBleHRlbnNpb25zIGFuZCBpbnN0YWxsIGJvdGggcHVyZSBtb2R1bGVzIGFuZAogICAgZXh0ZW5zaW9ucy4gIE9uIFVuaXgsIHRoaXMgbWVhbnMgZXZlcnkgdmFyaWFibGUgZGVmaW5lZCBpbiBQeXRob24ncwogICAgaW5zdGFsbGVkIE1ha2VmaWxlOyBvbiBXaW5kb3dzIGFuZCBNYWMgT1MgaXQncyBhIG11Y2ggc21hbGxlciBzZXQuCgogICAgV2l0aCBhcmd1bWVudHMsIHJldHVybiBhIGxpc3Qgb2YgdmFsdWVzIHRoYXQgcmVzdWx0IGZyb20gbG9va2luZyB1cAogICAgZWFjaCBhcmd1bWVudCBpbiB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBkaWN0aW9uYXJ5LgogICAgdAYAAABfaW5pdF9SJAAAAHQLAAAAZXhlY19wcmVmaXhSLwAAAGn/////TigNAAAAUkgAAABSGAAAAHQHAAAAZ2xvYmFsc1JJAAAAUgUAAABSGwAAAFIaAAAAUhkAAABSDgAAAFJHAAAAUkoAAAB0FQAAAGN1c3RvbWl6ZV9jb25maWdfdmFyc3QGAAAAYXBwZW5kKAUAAAB0BAAAAGFyZ3N0BAAAAGZ1bmNSSgAAAHQEAAAAdmFsc1IbAAAAKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL3N5c2NvbmZpZy5weVJMAAAAwwEAAHMgAAAAAAsMARkBBgEKAgYFCgEKBA8BDAETAgYBBgENARoBBAJjAQAAAAEAAAACAAAAQwAAAHMQAAAAdAAAgwAAagEAfAAAgwEAUygBAAAAc5MAAABSZXR1cm4gdGhlIHZhbHVlIG9mIGEgc2luZ2xlIHZhcmlhYmxlIHVzaW5nIHRoZSBkaWN0aW9uYXJ5CiAgICByZXR1cm5lZCBieSAnZ2V0X2NvbmZpZ192YXJzKCknLiAgRXF1aXZhbGVudCB0bwogICAgZ2V0X2NvbmZpZ192YXJzKCkuZ2V0KG5hbWUpCiAgICAoAgAAAFJMAAAAUkkAAAAoAQAAAFIbAAAAKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL3N5c2NvbmZpZy5weVIhAAAA6QEAAHMCAAAAAAUoLQAAAHQHAAAAX19kb2NfX3QMAAAAX19yZXZpc2lvbl9fUgUAAABSZQAAAHQGAAAAc3RyaW5nUg4AAAB0EAAAAGRpc3R1dGlscy5lcnJvcnNSAAAAAFIGAAAAUiIAAABSJAAAAFIaAAAAUqQAAABSGQAAAFIeAAAAUh8AAABSIAAAAFIJAAAAUhsAAAB0BQAAAGxvd2VyUggAAAB0BgAAAHBhcmRpclJNAAAAUg0AAABSHQAAAFIQAAAAUhgAAABSJwAAAFIsAAAAUksAAABSYAAAAFJkAAAAUnQAAABSZgAAAFJ7AAAAUn8AAABSgQAAAFKRAAAAUpYAAABSSAAAAFKZAAAAUqEAAABSogAAAFJMAAAAUiEAAAAoAAAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9zeXNjb25maWcucHl0CAAAADxtb2R1bGU+CgAAAHNOAAAABgIGAgwBDAEMAQwCEAMVARUFIQElASoCJQEeARUCJQEeARUDDwIcBwkFCQMJCA8oEi8JTQkSCQgMHw8BDwEPAgxTCRkGAgkJCRgJEQkm