V2FudCB0byBjb250cmlidXRlPyBHcmVhdCEgRmlyc3QsIHJlYWQgdGhpcyBwYWdlIChpbmNsdWRpbmcgdGhlIHNtYWxsIHByaW50IGF0IHRoZSBlbmQpLg0KDQojIyMgQmVmb3JlIHlvdSBjb250cmlidXRlDQpCZWZvcmUgd2UgY2FuIHVzZSB5b3VyIGNvZGUsIHlvdSBtdXN0IHNpZ24gdGhlDQpbR29vZ2xlIEluZGl2aWR1YWwgQ29udHJpYnV0b3IgTGljZW5zZSBBZ3JlZW1lbnRdDQooaHR0cHM6Ly9jbGEuZGV2ZWxvcGVycy5nb29nbGUuY29tL2Fib3V0L2dvb2dsZS1pbmRpdmlkdWFsKQ0KKENMQSksIHdoaWNoIHlvdSBjYW4gZG8gb25saW5lLiBUaGUgQ0xBIGlzIG5lY2Vzc2FyeSBtYWlubHkgYmVjYXVzZSB5b3Ugb3duIHRoZQ0KY29weXJpZ2h0IHRvIHlvdXIgY2hhbmdlcywgZXZlbiBhZnRlciB5b3VyIGNvbnRyaWJ1dGlvbiBiZWNvbWVzIHBhcnQgb2Ygb3VyDQpjb2RlYmFzZSwgc28gd2UgbmVlZCB5b3VyIHBlcm1pc3Npb24gdG8gdXNlIGFuZCBkaXN0cmlidXRlIHlvdXIgY29kZS4gV2UgYWxzbw0KbmVlZCB0byBiZSBzdXJlIG9mIHZhcmlvdXMgb3RoZXIgdGhpbmdzl2ZvciBpbnN0YW5jZSB0aGF0IHlvdSdsbCB0ZWxsIHVzIGlmIHlvdQ0Ka25vdyB0aGF0IHlvdXIgY29kZSBpbmZyaW5nZXMgb24gb3RoZXIgcGVvcGxlJ3MgcGF0ZW50cy4gWW91IGRvbid0IGhhdmUgdG8gc2lnbg0KdGhlIENMQSB1bnRpbCBhZnRlciB5b3UndmUgc3VibWl0dGVkIHlvdXIgY29kZSBmb3IgcmV2aWV3IGFuZCBhIG1lbWJlciBoYXMNCmFwcHJvdmVkIGl0LCBidXQgeW91IG11c3QgZG8gaXQgYmVmb3JlIHdlIGNhbiBwdXQgeW91ciBjb2RlIGludG8gb3VyIGNvZGViYXNlLg0KQmVmb3JlIHlvdSBzdGFydCB3b3JraW5nIG9uIGEgbGFyZ2VyIGNvbnRyaWJ1dGlvbiwgeW91IHNob3VsZCBnZXQgaW4gdG91Y2ggd2l0aA0KdXMgZmlyc3QgdGhyb3VnaCB0aGUgaXNzdWUgdHJhY2tlciB3aXRoIHlvdXIgaWRlYSBzbyB0aGF0IHdlIGNhbiBoZWxwIG91dCBhbmQNCnBvc3NpYmx5IGd1aWRlIHlvdS4gQ29vcmRpbmF0aW5nIHVwIGZyb250IG1ha2VzIGl0IG11Y2ggZWFzaWVyIHRvIGF2b2lkDQpmcnVzdHJhdGlvbiBsYXRlciBvbi4NCg0KIyMjIENvZGUgcmV2aWV3cw0KQWxsIHN1Ym1pc3Npb25zLCBpbmNsdWRpbmcgc3VibWlzc2lvbnMgYnkgcHJvamVjdCBtZW1iZXJzLCByZXF1aXJlIHJldmlldy4NCg0KIyMjIFRoZSBzbWFsbCBwcmludA0KQ29udHJpYnV0aW9ucyBtYWRlIGJ5IGNvcnBvcmF0aW9ucyBhcmUgY292ZXJlZCBieSBhIGRpZmZlcmVudCBhZ3JlZW1lbnQgdGhhbg0KdGhlIG9uZSBhYm92ZSwgdGhlDQpbU29mdHdhcmUgR3JhbnQgYW5kIENvcnBvcmF0ZSBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudF0NCihodHRwczovL2NsYS5kZXZlbG9wZXJzLmdvb2dsZS5jb20vYWJvdXQvZ29vZ2xlLWNvcnBvcmF0ZSku