ZGlmZiAtLWdpdCBhL0NvbnZlcnNhdGlvbi5oIGIvQ29udmVyc2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcxNzMzMAotLS0gL2Rldi9udWxsCisrKyBiL0NvbnZlcnNhdGlvbi5oCkBAIC0wLDAgKzEsNDkgQEAKKyNwcmFnbWEgb25jZQ0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogQ29weXJpZ2h0IChDKSAyMDE2IGJ5IFNhdm9pci1mYWlyZSBMaW51eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyogQXV0aG9yOiBK5GdlciBOaWNvbGFzIDxuaWNvbGFzLmphZ2VyQHNhdm9pcmZhaXJlbGludXguY29tPiAgICAgICAgICAgICAgKg0KKyogQXV0aG9yOiBUcmFjenlrIEFuZHJlYXMgPHRyYWN6eWsuYW5kcmVhc0BzYXZvaXJmYWlyZWxpbnV4LmNvbT4gICAgICAgICAgKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgICAgKg0KKyogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgICAgKg0KKyogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgICAgICAgKg0KKyogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICAgICAgICAgKg0KKyogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgICAgICAgICAgKg0KKyogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAgICAgICAgICAgKg0KKyogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgICAgICAgKg0KKyogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAgKg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3VzaW5nIG5hbWVzcGFjZSBQbGF0Zm9ybTsNCit1c2luZyBuYW1lc3BhY2UgV2luZG93czo6VUk6OlhhbWw6OkRhdGE7DQorDQorbmFtZXNwYWNlIFJpbmdDbGllbnRVV1ANCit7DQorcHVibGljIHJlZiBjbGFzcyBDb252ZXJzYXRpb25NZXNzYWdlIHNlYWxlZA0KK3sNCitwdWJsaWM6DQorICAgIHByb3BlcnR5IFN0cmluZ14gRGF0ZTsNCisgICAgcHJvcGVydHkgYm9vbCBGcm9tQ29udGFjdDsNCisgICAgcHJvcGVydHkgU3RyaW5nXiBQYXlsb2FkOw0KK307DQorDQorcHVibGljIHJlZiBjbGFzcyBDb252ZXJzYXRpb24gc2VhbGVkDQorew0KK3ByaXZhdGU6DQorDQorDQorcHVibGljOg0KKyAgICBDb252ZXJzYXRpb24oKTsNCisgICAgdm9pZCBhZGRNZXNzYWdlKFN0cmluZ14gZGF0ZSwgYm9vbCBmcm9tQ29udGFjdCwgU3RyaW5nXiBwYXlsb2FkKTsNCisNCitwcml2YXRlOg0KKyAgICBWZWN0b3I8Q29udmVyc2F0aW9uTWVzc2FnZV4+IG1lc3NhZ2VzOw0KKw0KK307DQorI2RlZmluZSBNU0dfRlJPTV9DT05UQUNUIHRydWUNCisjZGVmaW5lIE1TR19GUk9NX01FIGZhbHNlDQorfQ0KKw0K