dHJlZSBiYTY4NmFkMDY1MGFhMDk3ZTExNDRlOWI5ZTcxZTYyMjE4NTM0NDlkCnBhcmVudCBmMGU1ZGEyMGUxYTZlOWI1MzJmN2RlNjYwNzlkYTVmYTUzZTlkMDFjCmF1dGhvciBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4gMTU4ODMzMTEyOSArMDIwMApjb21taXR0ZXIgV2lsbHkgVGFycmVhdSA8d0Axd3QuZXU+IDE1ODgzMzI1NTQgKzAyMDAKZW5jb2RpbmcgbGF0aW4xCgpCVUcvTUVESVVNOiBzaGN0eDogcmVhbGx5IGNoZWNrIHRoZSBsb2NrJ3MgdmFsdWUgd2hpbGUgd2FpdGluZwoKSuly9G1lIHJlcG9ydGVkIGFuIGFtYXppbmcgY3Jhc2ggaW4gdGhlIHNwaW5sb2NrIHZlcnNpb24gb2YKX3NoY3R4X3dhaXQ0bG9jaygpIHdpdGggYW4gZXh0cmVtZWx5IGhpZ2ggPGNvdW50PiB2YWx1ZSBvZiAzMk0hIFRoZQpyb290IGNhdXNlIGlzIHRoYXQgdGhlIGZ1bmN0aW9uIGNhbm5vdCBkZWFsIHdpdGggY29udGVudGlvbiBvbiB0aGUgbG9jawphdCBhbGwgYmVjYXVzZSBpdCBmb3JnZXRzIHRvIGNoZWNrIGlmIHRoZSBsb2NrJ3MgdmFsdWUgaGFzIGNoYW5nZWQhIEFzCnN1Y2gsIGV2ZXJ5IHRpbWUgaXQncyBjYWxsZWQgZHVlIHRvIGEgY29udGVudGlvbiwgaXQgd2FpdHMgdHdpY2UgYXMKbG9uZyBiZWZvcmUgdHJ5aW5nIGFnYWluIGFuZCBsZXRzIHRoZSBjYWxsZXIgY2hlY2sgZm9yIHRoZSBjb250ZW50aW9uCmJ5IGl0c2VsZi4KClRoZSBjb3JyZWN0IHRoaW5nIHRvIGRvIGlzIHRvIGNvbXBhcmUgdGhlIHZhbHVlIGFnYWluIGF0IGVhY2ggbG9vcC4KVGhpcyB3YXkgaXQgbWFrZXMgc3VyZSB0byBtb3N0bHkgcGVyZm9ybSByZWFkIGFjY2Vzc2VzIG9uIHRoZSBzaGFyZWQKY2FjaGUgbGluZSB3aXRob3V0IHdyaXRpbmcgdG9vIG9mdGVuLCBhbmQgdG8gYmUgcmVhZHkgZmFzdCBlbm91Z2ggdG8KdHJ5IHRvIGdyYWIgdGhlIGxvY2suIEFuZCB3ZSBtdXN0IG5vdCBpbmNyZWFzZSB0aGUgY291bnQgb24gc3VjY2VzcwplaXRoZXIhCgpVbmZvcnR1bmF0ZWx5IEknZCBoYXZlIGV4cGVjdGVkIHRvIHNlZSBhIHBlcmZvcm1hbmNlIGJvb3N0IG9uIHRoZSBjYWNoZQp3aXRoIHRoaXMgYnV0IHRoZXJlIHdhcyBhYnNvbHV0ZWx5IG5vIGNoYW5nZSwgc28gaXQncyB2ZXJ5IGxpa2VseSB0aGF0CnRoZXNlIGlzc3VlcyBvbmx5IGhhcHBlbiBvbmNlIGluIGEgd2hpbGUgYW5kIGFyZSBzdWZmaWNpZW50IHRvIGRlcmFpbAp0aGUgcHJvY2VzcyB3aGVuIHRoZXkgc3RyaWtlLCBidXQgbm90IHRvIGhhdmUgYSBwZXJtYW5lbnQgcGVyZm9ybWFuY2UKaW1wYWN0LgoKVGhlIGJ1ZyB3YXMgaW50cm9kdWNlZCB3aXRoIHRoZSBzaGN0eCBlbnRyaWVzIGluIDEuNSBzbyB0aGUgZml4IG11c3QKYmUgYmFja3BvcnRlZCB0byBhbGwgdmVyc2lvbnMuIEJlZm9yZSAxLjggdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQKX3NoYXJlZF9jb250ZXh0X3dhaXQ0bG9jaygpIGFuZCB3YXMgaW4gc2hjdHguYy4K