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AABtYWNyb3N0DAAAAGluY2x1ZGVfZGlyc3QJAAAAbGlicmFyaWVzdAwAAABsaWJyYXJ5X2RpcnN0FAAAAHJ1bnRpbWVfbGlicmFyeV9kaXJzdAcAAABvYmplY3RzdAsAAABleGVjdXRhYmxlc3QEAAAAa2V5c3QOAAAAc2V0X2V4ZWN1dGFibGUoBQAAAHQEAAAAc2VsZlISAAAAUhAAAABSEQAAAHQDAAAAa2V5KAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQIAAAAX19pbml0X19dAAAAcxgAAAAAAQkBCQEJBAkGCQMJBAkDCQQJBAkCFgFjAQAAAAMAAAAFAAAASwAAAHNaAAAAeFMAfAEAagAAgwAARF1FAH0CAHwCAHwAAGoBAGsHAHI+AHQCAGQBAHwCAHwAAGoDAGoEAGYCABaCAgBuAAB8AABqBQB8AgB8AQB8AgAZgwIAAXENAFdkAgBTKAMAAABziwMAAERlZmluZSB0aGUgZXhlY3V0YWJsZXMgKGFuZCBvcHRpb25zIGZvciB0aGVtKSB0aGF0IHdpbGwgYmUgcnVuCiAgICAgICAgdG8gcGVyZm9ybSB0aGUgdmFyaW91cyBzdGFnZXMgb2YgY29tcGlsYXRpb24uICBUaGUgZXhhY3Qgc2V0IG9mCiAgICAgICAgZXhlY3V0YWJsZXMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGhlcmUgZGVwZW5kcyBvbiB0aGUgY29tcGlsZXIKICAgICAgICBjbGFzcyAodmlhIHRoZSAnZXhlY3V0YWJsZXMnIGNsYXNzIGF0dHJpYnV0ZSksIGJ1dCBtb3N0IHdpbGwgaGF2ZToKICAgICAgICAgIGNvbXBpbGVyICAgICAgdGhlIEMvQysrIGNvbXBpbGVyCiAgICAgICAgICBsaW5rZXJfc28gICAgIGxpbmtlciB1c2VkIHRvIGNyZWF0ZSBzaGFyZWQgb2JqZWN0cyBhbmQgbGlicmFyaWVzCiAgICAgICAgICBsaW5rZXJfZXhlICAgIGxpbmtlciB1c2VkIHRvIGNyZWF0ZSBiaW5hcnkgZXhlY3V0YWJsZXMKICAgICAgICAgIGFyY2hpdmVyICAgICAgc3RhdGljIGxpYnJhcnkgY3JlYXRvcgoKICAgICAgICBPbiBwbGF0Zm9ybXMgd2l0aCBhIGNvbW1hbmQtbGluZSAoVW5peCwgRE9TL1dpbmRvd3MpLCBlYWNoIG9mIHRoZXNlCiAgICAgICAgaXMgYSBzdHJpbmcgdGhhdCB3aWxsIGJlIHNwbGl0IGludG8gZXhlY3V0YWJsZSBuYW1lIGFuZCAob3B0aW9uYWwpCiAgICAgICAgbGlzdCBvZiBhcmd1bWVudHMuICAoU3BsaXR0aW5nIHRoZSBzdHJpbmcgaXMgZG9uZSBzaW1pbGFybHkgdG8gaG93CiAgICAgICAgVW5peCBzaGVsbHMgb3BlcmF0ZTogd29yZHMgYXJlIGRlbGltaXRlZCBieSBzcGFjZXMsIGJ1dCBxdW90ZXMgYW5kCiAgICAgICAgYmFja3NsYXNoZXMgY2FuIG92ZXJyaWRlIHRoaXMuICBTZWUKICAgICAgICAnZGlzdHV0aWxzLnV0aWwuc3BsaXRfcXVvdGVkKCknLikKICAgICAgICBzJAAAAHVua25vd24gZXhlY3V0YWJsZSAnJXMnIGZvciBjbGFzcyAlc04oBgAAAFIcAAAAUhsAAAB0CgAAAFZhbHVlRXJyb3J0CQAAAF9fY2xhc3NfX3QIAAAAX19uYW1lX19SHQAAACgDAAAAUh4AAAB0BAAAAGFyZ3NSHwAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0DwAAAHNldF9leGVjdXRhYmxlc4EAAABzDAAAAAAaEwEPAQMBAwEWAWMDAAAAAwAAAAUAAABDAAAAczwAAAB0AAB8AgB0AQCDAgByKAB0AgB8AAB8AQB0AwB8AgCDAQCDAwABbhAAdAIAfAAAfAEAfAIAgwMAAWQAAFMoAQAAAE4oBAAAAHQKAAAAaXNpbnN0YW5jZXQDAAAAc3RydAcAAABzZXRhdHRyUgkAAAAoAwAAAFIeAAAAUh8AAAB0BQAAAHZhbHVlKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weVIdAAAAogAAAHMGAAAAAAEPARkCYwIAAAAEAAAAAwAAAEMAAABzPAAAAGQBAH0CAHgvAHwAAGoAAERdJAB9AwB8AwBkAQAZfAEAawIAcioAfAIAU3wCAGQCABd9AgBxEABXZAAAUygDAAAATmkAAAAAaQEAAAAoAgAAAFIVAAAAUhMAAAAoBAAAAFIeAAAAdAQAAABuYW1ldAEAAABpdAQAAABkZWZuKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQLAAAAX2ZpbmRfbWFjcm+oAAAAcwwAAAAAAQYBEAEQAQQBDgFjAgAAAAMAAAAJAAAAQwAAAHOWAAAAeI8AfAEARF2HAH0CAHQAAHwCAHQBAIMCAG9zAHQCAHwCAIMBAGQBAGsCAHNjAHQCAHwCAIMBAGQCAGsCAG9zAHQAAHwCAGQBABl0AwCDAgBzYwB8AgBkAQAZZAcAawgAb3MAdAAAfAIAZAMAGXQDAIMCAHMHAHQFAGQEAHwCABZkBQAXZAYAF4ICAHEHAHEHAFdkBwBTKAgAAABz1wAAAEVuc3VyZXMgdGhhdCBldmVyeSBlbGVtZW50IG9mICdkZWZpbml0aW9ucycgaXMgYSB2YWxpZCBtYWNybwogICAgICAgIGRlZmluaXRpb24sIGllLiBlaXRoZXIgKG5hbWUsdmFsdWUpIDItdHVwbGUgb3IgYSAobmFtZSwpIHR1cGxlLiAgRG8KICAgICAgICBub3RoaW5nIGlmIGFsbCBkZWZpbml0aW9ucyBhcmUgT0ssIHJhaXNlIFR5cGVFcnJvciBvdGhlcndpc2UuCiAgICAgICAgaQEAAABpAgAAAGkAAAAAcx8AAABpbnZhbGlkIG1hY3JvIGRlZmluaXRpb24gJyVzJzogcy4AAABtdXN0IGJlIHR1cGxlIChzdHJpbmcsKSwgKHN0cmluZywgc3RyaW5nKSwgb3Igcw4AAAAoc3RyaW5nLCBOb25lKU4oBgAAAFImAAAAdAUAAAB0dXBsZXQDAAAAbGVuUicAAABSEwAAAHQJAAAAVHlwZUVycm9yKAMAAABSHgAAAHQLAAAAZGVmaW5pdGlvbnNSLAAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0GAAAAF9jaGVja19tYWNyb19kZWZpbml0aW9uc7AAAABzEgAAAAAFDQEPARIBEgEjARMBAwILAWMDAAAABQAAAAIAAABDAAAAc0gAAAB8AABqAAB8AQCDAQB9AwB8AwBkAQBrCQByKAB8AABqAgB8AwA9bgAAfAEAfAIAZgIAfQQAfAAAagIAagMAfAQAgwEAAWQBAFMoAgAAAHNfAQAARGVmaW5lIGEgcHJlcHJvY2Vzc29yIG1hY3JvIGZvciBhbGwgY29tcGlsYXRpb25zIGRyaXZlbiBieSB0aGlzCiAgICAgICAgY29tcGlsZXIgb2JqZWN0LiAgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciAndmFsdWUnIHNob3VsZCBiZSBhCiAgICAgICAgc3RyaW5nOyBpZiBpdCBpcyBub3Qgc3VwcGxpZWQsIHRoZW4gdGhlIG1hY3JvIHdpbGwgYmUgZGVmaW5lZAogICAgICAgIHdpdGhvdXQgYW4gZXhwbGljaXQgdmFsdWUgYW5kIHRoZSBleGFjdCBvdXRjb21lIGRlcGVuZHMgb24gdGhlCiAgICAgICAgY29tcGlsZXIgdXNlZCAoWFhYIHRydWU/IGRvZXMgQU5TSSBzYXkgYW55dGhpbmcgYWJvdXQgdGhpcz8pCiAgICAgICAgTigEAAAAUi0AAABSEwAAAFIVAAAAdAYAAABhcHBlbmQoBQAAAFIeAAAAUioAAABSKQAAAFIrAAAAUiwAAAAoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAwAAABkZWZpbmVfbWFjcm/DAAAAcwoAAAAACQ8BDAENAgwBYwIAAAAEAAAAAgAAAEMAAABzRQAAAHwAAGoAAHwBAIMBAH0CAHwCAGQBAGsJAHIoAHwAAGoCAHwCAD1uAAB8AQBmAQB9AwB8AABqAgBqAwB8AwCDAQABZAEAUygCAAAAc7MBAABVbmRlZmluZSBhIHByZXByb2Nlc3NvciBtYWNybyBmb3IgYWxsIGNvbXBpbGF0aW9ucyBkcml2ZW4gYnkKICAgICAgICB0aGlzIGNvbXBpbGVyIG9iamVjdC4gIElmIHRoZSBzYW1lIG1hY3JvIGlzIGRlZmluZWQgYnkKICAgICAgICAnZGVmaW5lX21hY3JvKCknIGFuZCB1bmRlZmluZWQgYnkgJ3VuZGVmaW5lX21hY3JvKCknIHRoZSBsYXN0IGNhbGwKICAgICAgICB0YWtlcyBwcmVjZWRlbmNlIChpbmNsdWRpbmcgbXVsdGlwbGUgcmVkZWZpbml0aW9ucyBvcgogICAgICAgIHVuZGVmaW5pdGlvbnMpLiAgSWYgdGhlIG1hY3JvIGlzIHJlZGVmaW5lZC91bmRlZmluZWQgb24gYQogICAgICAgIHBlci1jb21waWxhdGlvbiBiYXNpcyAoaWUuIGluIHRoZSBjYWxsIHRvICdjb21waWxlKCknKSwgdGhlbiB0aGF0CiAgICAgICAgdGFrZXMgcHJlY2VkZW5jZS4KICAgICAgICBOKAQAAABSLQAAAFITAAAAUhUAAABSMwAAACgEAAAAUh4AAABSKgAAAFIrAAAAdAYAAAB1bmRlZm4oAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA4AAAB1bmRlZmluZV9tYWNyb9MAAABzCgAAAAALDwEMAQ0CCQFjAgAAAAIAAAACAAAAQwAAAHMUAAAAfAAAagAAagEAfAEAgwEAAWQBAFMoAgAAAHPzAAAAQWRkICdkaXInIHRvIHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRoYXQgd2lsbCBiZSBzZWFyY2hlZCBmb3IKICAgICAgICBoZWFkZXIgZmlsZXMuICBUaGUgY29tcGlsZXIgaXMgaW5zdHJ1Y3RlZCB0byBzZWFyY2ggZGlyZWN0b3JpZXMgaW4KICAgICAgICB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBhcmUgc3VwcGxpZWQgYnkgc3VjY2Vzc2l2ZSBjYWxscyB0bwogICAgICAgICdhZGRfaW5jbHVkZV9kaXIoKScuCiAgICAgICAgTigCAAAAUhYAAABSMwAAACgCAAAAUh4AAAB0AwAAAGRpcigAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0DwAAAGFkZF9pbmNsdWRlX2RpcuUAAABzAgAAAAAGYwIAAAACAAAAAgAAAEMAAABzDgAAAHwBAB58AABfAABkAQBTKAIAAABzeQEAAFNldCB0aGUgbGlzdCBvZiBkaXJlY3RvcmllcyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQgdG8gJ2RpcnMnIChhCiAgICAgICAgbGlzdCBvZiBzdHJpbmdzKS4gIE92ZXJyaWRlcyBhbnkgcHJlY2VkaW5nIGNhbGxzIHRvCiAgICAgICAgJ2FkZF9pbmNsdWRlX2RpcigpJzsgc3Vic2VxdWVuY2UgY2FsbHMgdG8gJ2FkZF9pbmNsdWRlX2RpcigpJyBhZGQKICAgICAgICB0byB0aGUgbGlzdCBwYXNzZWQgdG8gJ3NldF9pbmNsdWRlX2RpcnMoKScuICBUaGlzIGRvZXMgbm90IGFmZmVjdAogICAgICAgIGFueSBsaXN0IG9mIHN0YW5kYXJkIGluY2x1ZGUgZGlyZWN0b3JpZXMgdGhhdCB0aGUgY29tcGlsZXIgbWF5CiAgICAgICAgc2VhcmNoIGJ5IGRlZmF1bHQuCiAgICAgICAgTigBAAAAUhYAAAAoAgAAAFIeAAAAdAQAAABkaXJzKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQQAAAAc2V0X2luY2x1ZGVfZGlyc+0AAABzAgAAAAAIYwIAAAACAAAAAgAAAEMAAABzFAAAAHwAAGoAAGoBAHwBAIMBAAFkAQBTKAIAAABzvwIAAEFkZCAnbGlibmFtZScgdG8gdGhlIGxpc3Qgb2YgbGlicmFyaWVzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbgogICAgICAgIGFsbCBsaW5rcyBkcml2ZW4gYnkgdGhpcyBjb21waWxlciBvYmplY3QuICBOb3RlIHRoYXQgJ2xpYm5hbWUnCiAgICAgICAgc2hvdWxkICpub3QqIGJlIHRoZSBuYW1lIG9mIGEgZmlsZSBjb250YWluaW5nIGEgbGlicmFyeSwgYnV0IHRoZQogICAgICAgIG5hbWUgb2YgdGhlIGxpYnJhcnkgaXRzZWxmOiB0aGUgYWN0dWFsIGZpbGVuYW1lIHdpbGwgYmUgaW5mZXJyZWQgYnkKICAgICAgICB0aGUgbGlua2VyLCB0aGUgY29tcGlsZXIsIG9yIHRoZSBjb21waWxlciBjbGFzcyAoZGVwZW5kaW5nIG9uIHRoZQogICAgICAgIHBsYXRmb3JtKS4KCiAgICAgICAgVGhlIGxpbmtlciB3aWxsIGJlIGluc3RydWN0ZWQgdG8gbGluayBhZ2FpbnN0IGxpYnJhcmllcyBpbiB0aGUKICAgICAgICBvcmRlciB0aGV5IHdlcmUgc3VwcGxpZWQgdG8gJ2FkZF9saWJyYXJ5KCknIGFuZC9vcgogICAgICAgICdzZXRfbGlicmFyaWVzKCknLiAgSXQgaXMgcGVyZmVjdGx5IHZhbGlkIHRvIGR1cGxpY2F0ZSBsaWJyYXJ5CiAgICAgICAgbmFtZXM7IHRoZSBsaW5rZXIgd2lsbCBiZSBpbnN0cnVjdGVkIHRvIGxpbmsgYWdhaW5zdCBsaWJyYXJpZXMgYXMKICAgICAgICBtYW55IHRpbWVzIGFzIHRoZXkgYXJlIG1lbnRpb25lZC4KICAgICAgICBOKAIAAABSFwAAAFIzAAAAKAIAAABSHgAAAHQHAAAAbGlibmFtZSgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0CwAAAGFkZF9saWJyYXJ59wAAAHMCAAAAAA5jAgAAAAIAAAACAAAAQwAAAHMOAAAAfAEAHnwAAF8AAGQBAFMoAgAAAHP0AAAAU2V0IHRoZSBsaXN0IG9mIGxpYnJhcmllcyB0byBiZSBpbmNsdWRlZCBpbiBhbGwgbGlua3MgZHJpdmVuIGJ5CiAgICAgICAgdGhpcyBjb21waWxlciBvYmplY3QgdG8gJ2xpYm5hbWVzJyAoYSBsaXN0IG9mIHN0cmluZ3MpLiAgVGhpcyBkb2VzCiAgICAgICAgbm90IGFmZmVjdCBhbnkgc3RhbmRhcmQgc3lzdGVtIGxpYnJhcmllcyB0aGF0IHRoZSBsaW5rZXIgbWF5CiAgICAgICAgaW5jbHVkZSBieSBkZWZhdWx0LgogICAgICAgIE4oAQAAAFIXAAAAKAIAAABSHgAAAHQIAAAAbGlibmFtZXMoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA0AAABzZXRfbGlicmFyaWVzBwEAAHMCAAAAAAZjAgAAAAIAAAACAAAAQwAAAHMUAAAAfAAAagAAagEAfAEAgwEAAWQBAFMoAgAAAHMnAQAAQWRkICdkaXInIHRvIHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRoYXQgd2lsbCBiZSBzZWFyY2hlZCBmb3IKICAgICAgICBsaWJyYXJpZXMgc3BlY2lmaWVkIHRvICdhZGRfbGlicmFyeSgpJyBhbmQgJ3NldF9saWJyYXJpZXMoKScuICBUaGUKICAgICAgICBsaW5rZXIgd2lsbCBiZSBpbnN0cnVjdGVkIHRvIHNlYXJjaCBmb3IgbGlicmFyaWVzIGluIHRoZSBvcmRlciB0aGV5CiAgICAgICAgYXJlIHN1cHBsaWVkIHRvICdhZGRfbGlicmFyeV9kaXIoKScgYW5kL29yICdzZXRfbGlicmFyeV9kaXJzKCknLgogICAgICAgIE4oAgAAAFIYAAAAUjMAAAAoAgAAAFIeAAAAUjcAAAAoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA8AAABhZGRfbGlicmFyeV9kaXIQAQAAcwIAAAAABmMCAAAAAgAAAAIAAABDAAAAcw4AAAB8AQAefAAAXwAAZAEAUygCAAAAc8AAAABTZXQgdGhlIGxpc3Qgb2YgbGlicmFyeSBzZWFyY2ggZGlyZWN0b3JpZXMgdG8gJ2RpcnMnIChhIGxpc3Qgb2YKICAgICAgICBzdHJpbmdzKS4gIFRoaXMgZG9lcyBub3QgYWZmZWN0IGFueSBzdGFuZGFyZCBsaWJyYXJ5IHNlYXJjaCBwYXRoCiAgICAgICAgdGhhdCB0aGUgbGlua2VyIG1heSBzZWFyY2ggYnkgZGVmYXVsdC4KICAgICAgICBOKAEAAABSGAAAACgCAAAAUh4AAABSOQAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0EAAAAHNldF9saWJyYXJ5X2RpcnMYAQAAcwIAAAAABWMCAAAAAgAAAAIAAABDAAAAcxQAAAB8AABqAABqAQB8AQCDAQABZAEAUygCAAAAc2wAAABBZGQgJ2RpcicgdG8gdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdGhhdCB3aWxsIGJlIHNlYXJjaGVkIGZvcgogICAgICAgIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KICAgICAgICBOKAIAAABSGQAAAFIzAAAAKAIAAABSHgAAAFI3AAAAKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQXAAAAYWRkX3J1bnRpbWVfbGlicmFyeV9kaXIfAQAAcwIAAAAABGMCAAAAAgAAAAIAAABDAAAAcw4AAAB8AQAefAAAXwAAZAEAUygCAAAAc+MAAABTZXQgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gc2VhcmNoIGZvciBzaGFyZWQgbGlicmFyaWVzIGF0CiAgICAgICAgcnVudGltZSB0byAnZGlycycgKGEgbGlzdCBvZiBzdHJpbmdzKS4gIFRoaXMgZG9lcyBub3QgYWZmZWN0IGFueQogICAgICAgIHN0YW5kYXJkIHNlYXJjaCBwYXRoIHRoYXQgdGhlIHJ1bnRpbWUgbGlua2VyIG1heSBzZWFyY2ggYnkKICAgICAgICBkZWZhdWx0LgogICAgICAgIE4oAQAAAFIZAAAAKAIAAABSHgAAAFI5AAAAKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQYAAAAc2V0X3J1bnRpbWVfbGlicmFyeV9kaXJzJQEAAHMCAAAAAAZjAgAAAAIAAAACAAAAQwAAAHMUAAAAfAAAagAAagEAfAEAgwEAAWQBAFMoAgAAAHPjAAAAQWRkICdvYmplY3QnIHRvIHRoZSBsaXN0IG9mIG9iamVjdCBmaWxlcyAob3IgYW5hbG9ndWVzLCBzdWNoIGFzCiAgICAgICAgZXhwbGljaXRseSBuYW1lZCBsaWJyYXJ5IGZpbGVzIG9yIHRoZSBvdXRwdXQgb2YgInJlc291cmNlCiAgICAgICAgY29tcGlsZXJzIikgdG8gYmUgaW5jbHVkZWQgaW4gZXZlcnkgbGluayBkcml2ZW4gYnkgdGhpcyBjb21waWxlcgogICAgICAgIG9iamVjdC4KICAgICAgICBOKAIAAABSGgAAAFIzAAAAKAIAAABSHgAAAHQGAAAAb2JqZWN0KAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQPAAAAYWRkX2xpbmtfb2JqZWN0LQEAAHMCAAAAAAZjAgAAAAIAAAACAAAAQwAAAHMOAAAAfAEAHnwAAF8AAGQBAFMoAgAAAHPq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aWxlbmFtZSBpbiAnc291cmNlcycuICBEZXBlbmRpbmcgb24KICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24sIG5vdCBhbGwgc291cmNlIGZpbGVzIHdpbGwgbmVjZXNzYXJpbHkgYmUKICAgICAgICBjb21waWxlZCwgYnV0IGFsbCBjb3JyZXNwb25kaW5nIG9iamVjdCBmaWxlbmFtZXMgd2lsbCBiZQogICAgICAgIHJldHVybmVkLgoKICAgICAgICBJZiAnb3V0cHV0X2RpcicgaXMgZ2l2ZW4sIG9iamVjdCBmaWxlcyB3aWxsIGJlIHB1dCB1bmRlciBpdCwgd2hpbGUKICAgICAgICByZXRhaW5pbmcgdGhlaXIgb3JpZ2luYWwgcGF0aCBjb21wb25lbnQuICBUaGF0IGlzLCAiZm9vL2Jhci5jIgogICAgICAgIG5vcm1hbGx5IGNvbXBpbGVzIHRvICJmb28vYmFyLm8iIChmb3IgYSBVbml4IGltcGxlbWVudGF0aW9uKTsgaWYKICAgICAgICAnb3V0cHV0X2RpcicgaXMgImJ1aWxkIiwgdGhlbiBpdCB3b3VsZCBjb21waWxlIHRvCiAgICAgICAgImJ1aWxkL2Zvby9iYXIubyIuCgogICAgICAgICdtYWNyb3MnLCBpZiBnaXZlbiwgbXVzdCBiZSBhIGxpc3Qgb2YgbWFjcm8gZGVmaW5pdGlvbnMuICBBIG1hY3JvCiAgICAgICAgZGVmaW5pdGlvbiBpcyBlaXRoZXIgYSAobmFtZSwgdmFsdWUpIDItdHVwbGUgb3IgYSAobmFtZSwpIDEtdHVwbGUuCiAgICAgICAgVGhlIGZvcm1lciBkZWZpbmVzIGEgbWFjcm87IGlmIHRoZSB2YWx1ZSBpcyBOb25lLCB0aGUgbWFjcm8gaXMKICAgICAgICBkZWZpbmVkIHdpdGhvdXQgYW4gZXhwbGljaXQgdmFsdWUuICBUaGUgMS10dXBsZSBjYXNlIHVuZGVmaW5lcyBhCiAgICAgICAgbWFjcm8uICBMYXRlciBkZWZpbml0aW9ucy9yZWRlZmluaXRpb25zLyB1bmRlZmluaXRpb25zIHRha2UKICAgICAgICBwcmVjZWRlbmNlLgoKICAgICAgICAnaW5jbHVkZV9kaXJzJywgaWYgZ2l2ZW4sIG11c3QgYmUgYSBsaXN0IG9mIHN0cmluZ3MsIHRoZQogICAgICAgIGRpcmVjdG9yaWVzIHRvIGFkZCB0byB0aGUgZGVmYXVsdCBpbmNsdWRlIGZpbGUgc2VhcmNoIHBhdGggZm9yIHRoaXMKICAgICAgICBjb21waWxhdGlvbiBvbmx5LgoKICAgICAgICAnZGVidWcnIGlzIGEgYm9vbGVhbjsgaWYgdHJ1ZSwgdGhlIGNvbXBpbGVyIHdpbGwgYmUgaW5zdHJ1Y3RlZCB0bwogICAgICAgIG91dHB1dCBkZWJ1ZyBzeW1ib2xzIGluIChvciBhbG9uZ3NpZGUpIHRoZSBvYmplY3QgZmlsZShzKS4KCiAgICAgICAgJ2V4dHJhX3ByZWFyZ3MnIGFuZCAnZXh0cmFfcG9zdGFyZ3MnIGFyZSBpbXBsZW1lbnRhdGlvbi0gZGVwZW5kZW50LgogICAgICAgIE9uIHBsYXRmb3JtcyB0aGF0IGhhdmUgdGhlIG5vdGlvbiBvZiBhIGNvbW1hbmQtbGluZSAoZS5nLiBVbml4LAogICAgICAgIERPUy9XaW5kb3dzKSwgdGhleSBhcmUgbW9zdCBsaWtlbHkgbGlzdHMgb2Ygc3RyaW5nczogZXh0cmEKICAgICAgICBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRvIHByZXBhbmQvYXBwZW5kIHRvIHRoZSBjb21waWxlciBjb21tYW5kCiAgICAgICAgbGluZS4gIE9uIG90aGVyIHBsYXRmb3JtcywgY29uc3VsdCB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MKICAgICAgICBkb2N1bWVudGF0aW9uLiAgSW4gYW55IGV2ZW50LCB0aGV5IGFyZSBpbnRlbmRlZCBhcyBhbiBlc2NhcGUgaGF0Y2gKICAgICAgICBmb3IgdGhvc2Ugb2NjYXNpb25zIHdoZW4gdGhlIGFic3RyYWN0IGNvbXBpbGVyIGZyYW1ld29yayBkb2Vzbid0CiAgICAgICAgY3V0IHRoZSBtdXN0YXJkLgoKICAgICAgICAnZGVwZW5kcycsIGlmIGdpdmVuLCBpcyBhIGxpc3Qgb2YgZmlsZW5hbWVzIHRoYXQgYWxsIHRhcmdldHMKICAgICAgICBkZXBlbmQgb24uICBJZiBhIHNvdXJjZSBmaWxlIGlzIG9sZGVyIHRoYW4gYW55IGZpbGUgaW4KICAgICAgICBkZXBlbmRzLCB0aGVuIHRoZSBzb3VyY2UgZmlsZSB3aWxsIGJlIHJlY29tcGlsZWQuICBUaGlzCiAgICAgICAgc3VwcG9ydHMgZGVwZW5kZW5jeSB0cmFja2luZywgYnV0IG9ubHkgYXQgYSBjb2Fyc2UKICAgICAgICBncmFudWxhcml0eS4KCiAgICAgICAgUmFpc2VzIENvbXBpbGVFcnJvciBvbiBmYWlsdXJlLgogICAgICAgICgEAAAAUloAAABSXgAAAHQIAAAAS2V5RXJyb3J0CAAAAF9jb21waWxlKBAAAABSHgAAAFJSAAAAUhQAAABSFQAAAFIWAAAAUlsAAABScAAAAFJxAAAAUlMAAABSGgAAAFJVAAAAUlYAAABSXQAAAFJYAAAAUlcAAABSWQAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0BwAAAGNvbXBpbGX+AQAAcxQAAAAANxIBGwEVAg0BAwEUAQ0BBwEgA2MHAAAABwAAAAEAAABDAAAAcwQAAABkAQBTKAIAAABzHwAAAENvbXBpbGUgJ3NyYycgdG8gcHJvZHVjdCAnb2JqJy5OKAAAAAAoBwAAAFIeAAAAUlgAAABSVwAAAFJZAAAAUl0AAABScQAAAFJVAAAAKAAAAAAoAAAAAHNbAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weVJ0AAAAQwIAAHMCAAAAAAVjBgAAAAYAAAABAAAAQwAAAHMEAAAAZAEAUygCAAAAcyYEAABMaW5rIGEgYnVuY2ggb2Ygc3R1ZmYgdG9nZXRoZXIgdG8gY3JlYXRlIGEgc3RhdGljIGxpYnJhcnkgZmlsZS4KICAgICAgICBUaGUgImJ1bmNoIG9mIHN0dWZmIiBjb25zaXN0cyBvZiB0aGUgbGlzdCBvZiBvYmplY3QgZmlsZXMgc3VwcGxpZWQKICAgICAgICBhcyAnb2JqZWN0cycsIHRoZSBleHRyYSBvYmplY3QgZmlsZXMgc3VwcGxpZWQgdG8KICAgICAgICAnYWRkX2xpbmtfb2JqZWN0KCknIGFuZC9vciAnc2V0X2xpbmtfb2JqZWN0cygpJywgdGhlIGxpYnJhcmllcwogICAgICAgIHN1cHBsaWVkIHRvICdhZGRfbGlicmFyeSgpJyBhbmQvb3IgJ3NldF9saWJyYXJpZXMoKScsIGFuZCB0aGUKICAgICAgICBsaWJyYXJpZXMgc3VwcGxpZWQgYXMgJ2xpYnJhcmllcycgKGlmIGFueSkuCgogICAgICAgICdvdXRwdXRfbGlibmFtZScgc2hvdWxkIGJlIGEgbGlicmFyeSBuYW1lLCBub3QgYSBmaWxlbmFtZTsgdGhlCiAgICAgICAgZmlsZW5hbWUgd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoZSBsaWJyYXJ5IG5hbWUuICAnb3V0cHV0X2RpcicgaXMKICAgICAgICB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBsaWJyYXJ5IGZpbGUgd2lsbCBiZSBwdXQuCgogICAgICAgICdkZWJ1ZycgaXMgYSBib29sZWFuOyBpZiB0cnVlLCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gd2lsbCBiZQogICAgICAgIGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5IChub3RlIHRoYXQgb24gbW9zdCBwbGF0Zm9ybXMsIGl0IGlzIHRoZQogICAgICAgIGNvbXBpbGUgc3RlcCB3aGVyZSB0aGlzIG1hdHRlcnM6IHRoZSAnZGVidWcnIGZsYWcgaXMgaW5jbHVkZWQgaGVyZQogICAgICAgIGp1c3QgZm9yIGNvbnNpc3RlbmN5KS4KCiAgICAgICAgJ3RhcmdldF9sYW5nJyBpcyB0aGUgdGFyZ2V0IGxhbmd1YWdlIGZvciB3aGljaCB0aGUgZ2l2ZW4gb2JqZWN0cwogICAgICAgIGFyZSBiZWluZyBjb21waWxlZC4gVGhpcyBhbGxvd3Mgc3BlY2lmaWMgbGlua2FnZSB0aW1lIHRyZWF0bWVudCBvZgogICAgICAgIGNlcnRhaW4gbGFuZ3VhZ2VzLgoKICAgICAgICBSYWlzZXMgTGliRXJyb3Igb24gZmFpbHVyZS4KICAgICAgICBOKAAAAAAoBgAAAFIeAAAAUhoAAAB0DgAAAG91dHB1dF9saWJuYW1lUhQAAABSWwAAAHQLAAAAdGFyZ2V0X2xhbmcoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dBEAAABjcmVhdGVfc3RhdGljX2xpYkoCAABzAgAAAAAYdA0AAABzaGFyZWRfb2JqZWN0dA4AAABzaGFyZWRfbGlicmFyeXQKAAAAZXhlY3V0YWJsZWMOAAAADgAAAAEAAABDAAAAcwoAAAB0AACCAQBkAQBTKAIAAABzdQgAAExpbmsgYSBidW5jaCBvZiBzdHVmZiB0b2dldGhlciB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZSBvcgogICAgICAgIHNoYXJlZCBsaWJyYXJ5IGZpbGUuCgogICAgICAgIFRoZSAiYnVuY2ggb2Ygc3R1ZmYiIGNvbnNpc3RzIG9mIHRoZSBsaXN0IG9mIG9iamVjdCBmaWxlcyBzdXBwbGllZAogICAgICAgIGFzICdvYmplY3RzJy4gICdvdXRwdXRfZmlsZW5hbWUnIHNob3VsZCBiZSBhIGZpbGVuYW1lLiAgSWYKICAgICAgICAnb3V0cHV0X2RpcicgaXMgc3VwcGxpZWQsICdvdXRwdXRfZmlsZW5hbWUnIGlzIHJlbGF0aXZlIHRvIGl0CiAgICAgICAgKGkuZS4gJ291dHB1dF9maWxlbmFtZScgY2FuIHByb3ZpZGUgZGlyZWN0b3J5IGNvbXBvbmVudHMgaWYKICAgICAgICBuZWVkZWQpLgoKICAgICAgICAnbGlicmFyaWVzJyBpcyBhIGxpc3Qgb2YgbGlicmFyaWVzIHRvIGxpbmsgYWdhaW5zdC4gIFRoZXNlIGFyZQogICAgICAgIGxpYnJhcnkgbmFtZXMsIG5vdCBmaWxlbmFtZXMsIHNpbmNlIHRoZXkncmUgdHJhbnNsYXRlZCBpbnRvCiAgICAgICAgZmlsZW5hbWVzIGluIGEgcGxhdGZvcm0tc3BlY2lmaWMgd2F5IChlZy4gImZvbyIgYmVjb21lcyAibGliZm9vLmEiCiAgICAgICAgb24gVW5peCBhbmQgImZvby5saWIiIG9uIERPUy9XaW5kb3dzKS4gIEhvd2V2ZXIsIHRoZXkgY2FuIGluY2x1ZGUgYQogICAgICAgIGRpcmVjdG9yeSBjb21wb25lbnQsIHdoaWNoIG1lYW5zIHRoZSBsaW5rZXIgd2lsbCBsb29rIGluIHRoYXQKICAgICAgICBzcGVjaWZpYyBkaXJlY3RvcnkgcmF0aGVyIHRoYW4gc2VhcmNoaW5nIGFsbCB0aGUgbm9ybWFsIGxvY2F0aW9ucy4KCiAgICAgICAgJ2xpYnJhcnlfZGlycycsIGlmIHN1cHBsaWVkLCBzaG91bGQgYmUgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvCiAgICAgICAgc2VhcmNoIGZvciBsaWJyYXJpZXMgdGhhdCB3ZXJlIHNwZWNpZmllZCBhcyBiYXJlIGxpYnJhcnkgbmFtZXMKICAgICAgICAoaWUuIG5vIGRpcmVjdG9yeSBjb21wb25lbnQpLiAgVGhlc2UgYXJlIG9uIHRvcCBvZiB0aGUgc3lzdGVtCiAgICAgICAgZGVmYXVsdCBhbmQgdGhvc2Ugc3VwcGxpZWQgdG8gJ2FkZF9saWJyYXJ5X2RpcigpJyBhbmQvb3IKICAgICAgICAnc2V0X2xpYnJhcnlfZGlycygpJy4gICdydW50aW1lX2xpYnJhcnlfZGlycycgaXMgYSBsaXN0IG9mCiAgICAgICAgZGlyZWN0b3JpZXMgdGhhdCB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCB1c2VkCiAgICAgICAgdG8gc2VhcmNoIGZvciBvdGhlciBzaGFyZWQgbGlicmFyaWVzIHRoYXQgKml0KiBkZXBlbmRzIG9uIGF0CiAgICAgICAgcnVuLXRpbWUuICAoVGhpcyBtYXkgb25seSBiZSByZWxldmFudCBvbiBVbml4LikKCiAgICAgICAgJ2V4cG9ydF9zeW1ib2xzJyBpcyBhIGxpc3Qgb2Ygc3ltYm9scyB0aGF0IHRoZSBzaGFyZWQgbGlicmFyeSB3aWxsCiAgICAgICAgZXhwb3J0LiAgKFRoaXMgYXBwZWFycyB0byBiZSByZWxldmFudCBvbmx5IG9uIFdpbmRvd3MuKQoKICAgICAgICAnZGVidWcnIGlzIGFzIGZvciAnY29tcGlsZSgpJyBhbmQgJ2NyZWF0ZV9zdGF0aWNfbGliKCknLCB3aXRoIHRoZQogICAgICAgIHNsaWdodCBkaXN0aW5jdGlvbiB0aGF0IGl0IGFjdHVhbGx5IG1hdHRlcnMgb24gbW9zdCBwbGF0Zm9ybXMgKGFzCiAgICAgICAgb3Bwb3NlZCB0byAnY3JlYXRlX3N0YXRpY19saWIoKScsIHdoaWNoIGluY2x1ZGVzIGEgJ2RlYnVnJyBmbGFnCiAgICAgICAgbW9zdGx5IGZvciBmb3JtJ3Mgc2FrZSkuCgogICAgICAgICdleHRyYV9wcmVhcmdzJyBhbmQgJ2V4dHJhX3Bvc3RhcmdzJyBhcmUgYXMgZm9yICdjb21waWxlKCknIChleGNlcHQKICAgICAgICBvZiBjb3Vyc2UgdGhhdCB0aGV5IHN1cHBseSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGZvciB0aGUKICAgICAgICBwYXJ0aWN1bGFyIGxpbmtlciBiZWluZyB1c2VkKS4KCiAgICAgICAgJ3RhcmdldF9sYW5nJyBpcyB0aGUgdGFyZ2V0IGxhbmd1YWdlIGZvciB3aGljaCB0aGUgZ2l2ZW4gb2JqZWN0cwogICAgICAgIGFyZSBiZWluZyBjb21waWxlZC4gVGhpcyBhbGxvd3Mgc3BlY2lmaWMgbGlua2FnZSB0aW1lIHRyZWF0bWVudCBvZgogICAgICAgIGNlcnRhaW4gbGFuZ3VhZ2VzLgoKICAgICAgICBSYWlzZXMgTGlua0Vycm9yIG9uIGZhaWx1cmUuCiAgICAgICAgTigBAAAAdBMAAABOb3RJbXBsZW1lbnRlZEVycm9yKA4AAABSHgAAAHQLAAAAdGFyZ2V0X2Rlc2NSGgAAAHQPAAAAb3V0cHV0X2ZpbGVuYW1lUhQAAABSFwAAAFIYAAAAUhkAAAB0DgAAAGV4cG9ydF9zeW1ib2xzUlsAAABScAAAAFJxAAAAdAoAAABidWlsZF90ZW1wUncAAAAoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAQAAABsaW5raQIAAHMCAAAAAC9jDQAAAA0AAAAOAAAAQwAAAHNHAAAAfAAAagAAdAEAagIAfAEAfAAAagMAfAIAZAEAZAIAgwEBfAMAfAQAfAUAfAYAfAcAfAgAfAkAfAoAfAsAfAwAgw0AAWQAAFMoAwAAAE50CAAAAGxpYl90eXBldAYAAABzaGFyZWQoBAAAAFKBAAAAUg0AAAB0DgAAAFNIQVJFRF9MSUJSQVJZdBAAAABsaWJyYXJ5X2ZpbGVuYW1lKA0AAABSHgAAAFIaAAAAUnYAAABSFAAAAFIXAAAAUhgAAABSGQAAAFJ/AAAAUlsAAABScAAAAFJxAAAAUoAAAABSdwAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0DwAAAGxpbmtfc2hhcmVkX2xpYp0CAABzDAAAAAAFDwESAQMBCQEGAWMNAAAADQAAAA4AAABDAAAAczgAAAB8AABqAAB0AQBqAgB8AQB8AgB8AwB8BAB8BQB8BgB8BwB8CAB8CQB8CgB8CwB8DACDDQABZAAAUygBAAAATigDAAAAUoEAAABSDQAAAHQNAAAAU0hBUkVEX09CSkVDVCgNAAAAUh4AAABSGgAAAFJ+AAAAUhQAAABSFwAAAFIYAAAAUhkAAABSfwAAAFJbAAAAUnAAAABScQAAAFKAAAAAUncAAAAoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dBIAAABsaW5rX3NoYXJlZF9vYmplY3SqAgAAcwoAAAAABQ8BBgEJAQYBYwsAAAALAAAADgAAAEMAAABzQQAAAHwAAGoAAHQBAGoCAHwBAHwAAGoDAHwCAIMBAHwDAHwEAHwFAHwGAGQAAHwHAHwIAHwJAGQAAHwKAIMNAAFkAABTKAEAAABOKAUAAABSgQAAAFINAAAAdAoAAABFWEVDVVRBQkxFdBMAAABleGVjdXRhYmxlX2ZpbGVuYW1lUhMAAAAoCwAAAFIeAAAAUhoAAAB0DwAAAG91dHB1dF9wcm9nbmFtZVIUAAAAUhcAAABSGAAAAFIZAAAAUlsAAABScAAAAFJxAAAAUncAAAAoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA8AAABsaW5rX2V4ZWN1dGFibGW1AgAAcwgAAAAABA8BDwEMAWMCAAAAAgAAAAEAAABDAAAAcwoAAAB0AACCAQBkAQBTKAIAAABzawAAAFJldHVybiB0aGUgY29tcGlsZXIgb3B0aW9uIHRvIGFkZCAnZGlyJyB0byB0aGUgbGlzdCBvZgogICAgICAgIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGZvciBsaWJyYXJpZXMuCiAgICAgICAgTigBAAAAUnwAAAAoAgAAAFIeAAAAUjcAAAAoAAAAACgAAAAAc1sAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dBIAAABsaWJyYXJ5X2Rpcl9vcHRpb27EAgAAcwIAAAAABGMCAAAAAgAAAAEAAABDAAAAcwoAAAB0AACCAQBkAQBTKAIAAABzcwAAAFJldHVybiB0aGUgY29tcGlsZXIgb3B0aW9uIHRvIGFkZCAnZGlyJyB0byB0aGUgbGlzdCBvZgogICAgICAgIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGZvciBydW50aW1lIGxpYnJhcmllcy4KICAgICAgICBOKAEAAABSfAAAACgCAAAAUh4AAABSNwAAACgAAAAAKAAAAABzWwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0GgAA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HAAAAHN0YW5kYXJkIFVOSVgtc3R5bGUgY29tcGlsZXJ0DAAAAG1zdmNjb21waWxlcnQMAAAATVNWQ0NvbXBpbGVycxQAAABNaWNyb3NvZnQgVmlzdWFsIEMrK3QPAAAAY3lnd2luY2NvbXBpbGVydA8AAABDeWd3aW5DQ29tcGlsZXJzJwAAAEN5Z3dpbiBwb3J0IG9mIEdOVSBDIENvbXBpbGVyIGZvciBXaW4zMnQGAAAAY3lnd2ludBAAAABNaW5ndzMyQ0NvbXBpbGVycygAAABNaW5ndzMyIHBvcnQgb2YgR05VIEMgQ29tcGlsZXIgZm9yIFdpbjMyUtEAAAB0DAAAAGJjcHBjb21waWxlcnQMAAAAQkNQUENvbXBpbGVycxQAAABCb3JsYW5kIEMrKyBDb21waWxlcnQEAAAAYmNwcHQMAAAAZW14Y2NvbXBpbGVydAwAAABFTVhDQ29tcGlsZXJzIwAAAEVNWCBwb3J0IG9mIEdOVSBDIENvbXBpbGVyIGZvciBPUy8yYwAAAAAEAAAABgAAAEMAAABzdgAAAGQBAGQCAGwAAG0BAH0AAAFnAAB9AQB4NgB0AgBqAwCDAABEXSgAfQIAfAEAagQAZAMAfAIAF2QGAHQCAHwCABlkBAAZZgMAgwEAAXEjAFd8AQBqBgCDAAABfAAAfAEAgwEAfQMAfAMAagcAZAUAgwEAAWQGAFMoBwAAAHN5AAAAUHJpbnQgbGlzdCBvZiBhdmFpbGFibGUgY29tcGlsZXJzICh1c2VkIGJ5IHRoZSAiLS1oZWxwLWNvbXBpbGVyIgogICAgb3B0aW9ucyB0byAiYnVpbGQiLCAiYnVpbGRfZXh0IiwgImJ1aWxkX2NsaWIiKS4KICAgIGn/////KAEAAAB0CwAAAEZhbmN5R2V0b3B0cwkAAABjb21waWxlcj1pAgAAAHMcAAAATGlzdCBvZiBhdmFpbGFibGUgY29tcGlsZXJzOk4oCAAAAHQWAAAAZGlzdHV0aWxzLmZhbmN5X2dldG9wdFLpAAAAdA4AAABjb21waWxlcl9jbGFzc1IcAAAAUjMAAABSEwAAAHQEAAAAc29ydHQKAAAAcHJpbnRfaGVscCgEAAAAUukAAAB0CQAAAGNvbXBpbGVyc1LaAAAAdA4AAABwcmV0dHlfcHJpbnRlcigAAAAAKAAA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