dHJlZSAwNjg4NzEzMGE0NGQ1MTJlOGNjM2U1ZDc0N2EyODBiZWQ5Njk5Nzk3CnBhcmVudCBmOTJkYTM4MjIyZTZhM2UxMDkzN2IwZDM2ZjVmNjA2MTA3ZGQwNTA2CmF1dGhvciBGculk6XJpYyBM6WNhaWxsZSA8ZmxlY2FpbGxlQGhhcHJveHkuY29tPiAxNTUyNTQzNjYxICswMTAwCmNvbW1pdHRlciBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4gMTU1NzIwNDg0NiArMDIwMAplbmNvZGluZyBsYXRpbjEKCk1FRElVTTogc3RpY2stdGFibGU6IFN0b3AgaGFuZGxpbmcgc3RpY2stdGFibGVzIGFzIHByb3hpZXMuCgpUaGlzIHBhdGNoIGFkZHMgdGhlIHN1cHBvcnQgZm9yIHRoZSAidGFibGUiIGxpbmUgcGFyc2luZyBpbiAicGVlcnMiIHNlY3Rpb25zCnRvIGRlY2xhcmUgc3RpY2stdGFibGUgaW4gc3VjaCBzZWN0aW9ucy4gVGhpcyBhbHNvIHByZXZlbnRzIHRoZSB1c2VyIGZyb20gaGF2aW5nCnRvIGRlY2xhcmUgZHVtbXkgYmFja2VuZHMgc2VjdGlvbnMgd2l0aCBhIHVuaXF1ZSBzdGljay10YWJsZSBpbnNpZGUuCkV2ZW4gaWYgc3RpbGwgc3VwcG9ydGVkLCB0aGlzIHVzYWdlIHdpbGwgYmVjb21lIGRlcHJlY2F0ZWQuCgpUbyBkbyBzbywgdGhlIC0+dGFibGUgbWVtYmVyIG9mIHByb3h5IHN0cnVjdCB3aGljaCBpcyBhIHN0a3RhYmxlIHN0cnVjdCBpcyByZXBsYWNlZApieSBhIHBvaW50ZXIgdG8gYSBzdGt0YWJsZSBzdHJ1Y3QgYWxsb2NhdGVkIGF0IHBhcnNpbmcgdGltZSBpbiBzcmMvY2ZncGFyc2UtbGlzdGVuLmMKZm9yIHRoZSBkdW1teSBzdGljay10YWJsZSBiYWNrZW5kcyBhbmQgaW4gc3JjL2NmZ3BhcnNlLmMgZm9yICJwZWVycyIgc2VjdGlvbnMuClRoaXMgaGFzIGFuIGltcGFjdCBvbiB0aGUgY29kZSBmb3Igc3RpY2stdGFibGUgc2FtcGxlIGNvbnZlcnRlcnMgYW5kIG9uIHRoZSBzdGlja2luZXNzCnJ1bGVzIHBhcnNlcnMgd2hpY2ggZmlyc3Qgc3RvcmUgdGhlIG5hbWUgb2YgdGhlIGR1bW15IGJlZm9yZSByZXNvbHZpbmcgdGhlIHJ1bGVzLgpUaGlzIHBhdGNoIHJlcGxhY2VzIHByb3h5X3RibF9ieV9uYW1lKCkgY2FsbHMgYnkgc3RrdGFibGVfZmluZF9ieV9uYW1lKCkgY2FsbHMKdG8gbG9va3VwIGZvciBzdGljay10YWJsZXMgc3RvcmVkIGluICJzdGt0YWJsZV9ieV9uYW1lIiBlYnRyZWUgYXQgcGFyc2luZyB0aW1lLgpUaGVyZSBpcyBvbmx5IG9uZSByZW1haW5pbmcgcGxhY2Ugd2hlcmUgcHJveHlfdGJsX2J5X25hbWUoKSBpcyB1c2VkOiBzcmMvaGx1YS5jLgoKQXQgc2V2ZXJhbCBwbGFjZXMgaW4gdGhlIGNvZGUgd2UgcmVsaWVkIG9uIHRoZSBmYWN0IHRoYXQgLT5zaXplIG1lbWJlciBvZiBzdGljay10YWJsZQp3YXMgZXF1YWwgdG8gemVybyB0byBjb25zaWRlciB0aGUgc3RpY2stdGFibGUgd2FzIHByZXNlbnQgYnkgbm90IGNvbmZpZ3VyZWQsCnRoaXMgZG8gbm90IG1ha2Ugc2Vuc2UgYW55bW9yZSBhcyAtPnRhYmxlIG1lbWJlciBvZiBzdHJ1Y3QgcHJveHlpcyBmb3cgbm93IG9uIGEgcG9pbnRlci4KVGhlc2UgdGVzdHMgYXJlIHJlcGxhY2VkIGJ5IGEgdGVzdCBvbiAtPnRhYmxlIHZhbHVlIGl0c2VsZi4KCkluICJwZWVycyIgc2VjdGlvbiB3ZSBkbyBub3QgaGF2ZSB0byB0ZW1wb3Jhcnkgc3RvcmUgdGhlIG5hbWUgb2YgdGhlIHNlY3Rpb24gdGhlCnN0aWNrLXRhYmxlIGFyZSBhdHRhY2hlZCB0byBiZWNhdXNlIHRoaXMgbmFtZSBpcyBvYnZpb3VzbHkgYWxyZWFkeSBrbm93biBqdXN0IGFmdGVyCmhhdmluZyBlbnRlcmVkIHRoaXMgInBlZXJzIiBzZWN0aW9uLgoKQWJvdXQgdGhlIENMSSBzdGljay10YWJsZSBJL08gaGFuZGxlciwgdGhlIHBvaW50ZXIgdG8gcHJveHkgc3RydWN0IGlzIHJlcGxhY2VkIGJ5CmEgcG9pbnRlciB0byBhIHN0a3RhYmxlIHN0cnVjdC4K