dHJlZSBjOTNiNDc5YTY5OTE1ZjBjNjdiMTE3YjM4OTlkMmRhNWJlYmMxOGFlCnBhcmVudCA0YTM3NjhiYmJiMDk0YWUxNDU2Zjk0NjBiZGRhZmVmODQzMjM4YWIzCmF1dGhvciBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4gMTU4ODMzMTEyOSArMDIwMApjb21taXR0ZXIgV2lsbHkgVGFycmVhdSA8d0Axd3QuZXU+IDE1ODg4Njk1ODggKzAyMDAKZW5jb2RpbmcgbGF0aW4xCgpCVUcvTUVESVVNOiBzaGN0eDogcmVhbGx5IGNoZWNrIHRoZSBsb2NrJ3MgdmFsdWUgd2hpbGUgd2FpdGluZwoKSuly9G1lIHJlcG9ydGVkIGFuIGFtYXppbmcgY3Jhc2ggaW4gdGhlIHNwaW5sb2NrIHZlcnNpb24gb2YKX3NoY3R4X3dhaXQ0bG9jaygpIHdpdGggYW4gZXh0cmVtZWx5IGhpZ2ggPGNvdW50PiB2YWx1ZSBvZiAzMk0hIFRoZQpyb290IGNhdXNlIGlzIHRoYXQgdGhlIGZ1bmN0aW9uIGNhbm5vdCBkZWFsIHdpdGggY29udGVudGlvbiBvbiB0aGUgbG9jawphdCBhbGwgYmVjYXVzZSBpdCBmb3JnZXRzIHRvIGNoZWNrIGlmIHRoZSBsb2NrJ3MgdmFsdWUgaGFzIGNoYW5nZWQhIEFzCnN1Y2gsIGV2ZXJ5IHRpbWUgaXQncyBjYWxsZWQgZHVlIHRvIGEgY29udGVudGlvbiwgaXQgd2FpdHMgdHdpY2UgYXMKbG9uZyBiZWZvcmUgdHJ5aW5nIGFnYWluIGFuZCBsZXRzIHRoZSBjYWxsZXIgY2hlY2sgZm9yIHRoZSBjb250ZW50aW9uCmJ5IGl0c2VsZi4KClRoZSBjb3JyZWN0IHRoaW5nIHRvIGRvIGlzIHRvIGNvbXBhcmUgdGhlIHZhbHVlIGFnYWluIGF0IGVhY2ggbG9vcC4KVGhpcyB3YXkgaXQgbWFrZXMgc3VyZSB0byBtb3N0bHkgcGVyZm9ybSByZWFkIGFjY2Vzc2VzIG9uIHRoZSBzaGFyZWQKY2FjaGUgbGluZSB3aXRob3V0IHdyaXRpbmcgdG9vIG9mdGVuLCBhbmQgdG8gYmUgcmVhZHkgZmFzdCBlbm91Z2ggdG8KdHJ5IHRvIGdyYWIgdGhlIGxvY2suIEFuZCB3ZSBtdXN0IG5vdCBpbmNyZWFzZSB0aGUgY291bnQgb24gc3VjY2VzcwplaXRoZXIhCgpVbmZvcnR1bmF0ZWx5IEknZCBoYXZlIGV4cGVjdGVkIHRvIHNlZSBhIHBlcmZvcm1hbmNlIGJvb3N0IG9uIHRoZSBjYWNoZQp3aXRoIHRoaXMgYnV0IHRoZXJlIHdhcyBhYnNvbHV0ZWx5IG5vIGNoYW5nZSwgc28gaXQncyB2ZXJ5IGxpa2VseSB0aGF0CnRoZXNlIGlzc3VlcyBvbmx5IGhhcHBlbiBvbmNlIGluIGEgd2hpbGUgYW5kIGFyZSBzdWZmaWNpZW50IHRvIGRlcmFpbAp0aGUgcHJvY2VzcyB3aGVuIHRoZXkgc3RyaWtlLCBidXQgbm90IHRvIGhhdmUgYSBwZXJtYW5lbnQgcGVyZm9ybWFuY2UKaW1wYWN0LgoKVGhlIGJ1ZyB3YXMgaW50cm9kdWNlZCB3aXRoIHRoZSBzaGN0eCBlbnRyaWVzIGluIDEuNSBzbyB0aGUgZml4IG11c3QKYmUgYmFja3BvcnRlZCB0byBhbGwgdmVyc2lvbnMuIEJlZm9yZSAxLjggdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQKX3NoYXJlZF9jb250ZXh0X3dhaXQ0bG9jaygpIGFuZCB3YXMgaW4gc2hjdHguYy4KCihjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDM4MDFiZGMzZmMxYzJjNmQ1OTZiNGM0ZWUzNDQ5YTc2ZjJkYTg2NTQpClNpZ25lZC1vZmYtYnk6IFdpbGx5IFRhcnJlYXUgPHdAMXd0LmV1PgooY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBkZWY0MjcxYmIyMjIwNzk4M2QwZDE3YThmMDJlOTlkY2I2YjYwZmE3KQpTaWduZWQtb2ZmLWJ5OiBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4K