LyoNCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQoqIKkgMjAxMyBNaWNyb2NoaXAgVGVjaG5vbG9neSBJbmMuIGFuZCBpdHMgc3Vic2lkaWFyaWVzLg0KKiBZb3UgbWF5IHVzZSB0aGlzIHNvZnR3YXJlIGFuZCBhbnkgZGVyaXZhdGl2ZXMgZXhjbHVzaXZlbHkgd2l0aA0KKiBNaWNyb2NoaXAgcHJvZHVjdHMuDQoqIFRISVMgU09GVFdBUkUgSVMgU1VQUExJRUQgQlkgTUlDUk9DSElQICJBUyBJUyIuDQoqIE5PIFdBUlJBTlRJRVMsIFdIRVRIRVIgRVhQUkVTUywgSU1QTElFRCBPUiBTVEFUVVRPUlksIEFQUExZIFRPIFRISVMgU09GVFdBUkUsDQoqIElOQ0xVRElORyBBTlkgSU1QTElFRCBXQVJSQU5USUVTIE9GIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwNCiogQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBPUiBJVFMgSU5URVJBQ1RJT04gV0lUSCBNSUNST0NISVANCiogUFJPRFVDVFMsIENPTUJJTkFUSU9OIFdJVEggQU5ZIE9USEVSIFBST0RVQ1RTLCBPUiBVU0UgSU4gQU5ZIEFQUExJQ0FUSU9OLg0KKiBJTiBOTyBFVkVOVCBXSUxMIE1JQ1JPQ0hJUCBCRSBMSUFCTEUgRk9SIEFOWSBJTkRJUkVDVCwgU1BFQ0lBTCwgUFVOSVRJVkUsDQoqIElOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElBTCBMT1NTLCBEQU1BR0UsIENPU1QgT1IgRVhQRU5TRSBPRiBBTlkgS0lORA0KKiBXSEFUU09FVkVSIFJFTEFURUQgVE8gVEhFIFNPRlRXQVJFLCBIT1dFVkVSIENBVVNFRCwgRVZFTiBJRiBNSUNST0NISVAgSEFTDQoqIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT1IgVEhFIERBTUFHRVMgQVJFIEZPUkVTRUVBQkxFLg0KKiBUTyBUSEUgRlVMTEVTVCBFWFRFTlQgQUxMT1dFRCBCWSBMQVcsIE1JQ1JPQ0hJUCdTIFRPVEFMIExJQUJJTElUWSBPTiBBTEwNCiogQ0xBSU1TIElOIEFOWSBXQVkgUkVMQVRFRCBUTyBUSElTIFNPRlRXQVJFIFdJTEwgTk9UIEVYQ0VFRCBUSEUgQU1PVU5UIE9GDQoqIEZFRVMsIElGIEFOWSwgVEhBVCBZT1UgSEFWRSBQQUlEIERJUkVDVExZIFRPIE1JQ1JPQ0hJUCBGT1IgVEhJUyBTT0ZUV0FSRS4NCiogTUlDUk9DSElQIFBST1ZJREVTIFRISVMgU09GVFdBUkUgQ09ORElUSU9OQUxMWSBVUE9OIFlPVVIgQUNDRVBUQU5DRQ0KKiBPRiBUSEVTRSBURVJNUy4NCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogKiAgY29tbW9uLmgNCiAqICAgICAgVGhpcyBpcyB0aGUgaGVhZGVyIGZpbGUgaW5jbHVkaW5nIGNvbW1vbiBoZWFkZXJzIGZyb20gdmFyaW91cyBtb2R1bGVzDQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogICRSZXZpc2lvbjogIzEgJCAgJERhdGVUaW1lOiAyMDE2LzA5LzIyIDA4OjAzOjQ5ICQgICQgICAgJA0KICogIERlc2NyaXB0aW9uOiBhZGRlZCBpY3QgbW9kdWxlDQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogICN4eA0KICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAqICRGaWxlOiAvL2RlcG90X3Bjcy9GV0VuZy9wcm9qZWN0cy9NRUMyMDE2L1BsYXlncm91bmQvcHJhbWFucy8xNjA2MjNfRnJlZVJUT1NfTWljcm9jaGlwX01FQzE3MHgvRGVtby9DT1JURVhfTVBVX01FQzE3MDFfS2VpbF9HQ0MvcGVyaXBoZXJhbF9saWJyYXJ5L2NvbW1vbi5oICQNCiAqLw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqIEBkZWZncm91cCBjb21tb24gY29tbW9uDQogKiAgQHsNCiAqLw0KDQovKiogQGZpbGUgY29tbW9uLmgNCiogXGJyaWVmIGhlYWRlciBmaWxlIGluY2x1ZGluZyBjb21tb24gaGVhZGVycyBmcm9tIHZhcmlvdXMgbW9kdWxlcw0KKiBcYXV0aG9yIEFwcCBGaXJtd2FyZSBUZWFtDQoqIA0KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiNpZm5kZWYgX0NPTU1PTl9IXw0KI2RlZmluZSBfQ09NTU9OX0hfDQoNCi8vIEluY2x1ZGUgY29tbW9uIGhlYWRlcnMgZnJvbSB2YXJpb3VzIG1vZHVsZXMNCi8vICEhISBUaGUgaW5jbHVkZSBvcmRlciBpcyBpbXBvcnRhbnQgISEhDQojaW5jbHVkZSAicGxhdGZvcm0uaCINCiNpbmNsdWRlICJNQ0hQX2RldmljZV9oZWFkZXIuaCINCi8qIENvcnRleC1NNCBwcm9jZXNzb3IgYW5kIGNvcmUgcGVyaXBoZXJhbHMgKi8NCiNpbmNsdWRlICJjb3JlX2NtNC5oIg0KDQojaW5jbHVkZSAiZGVmcy5oIg0KI2luY2x1ZGUgInN0cmluZy5oIg0KI2luY2x1ZGUgImludGVycnVwdC5oIg0KI2luY2x1ZGUgInN5c3RlbV9pbnRlcm5hbC5oIg0KDQoNCiNlbmRpZiAvKl9DT01NT05fSF8qLw0KDQovKiogICBAfQ0KICovDQoNCg0K