Ly9NaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NyaXB0Lg0KLy8NCiNpbmNsdWRlICJyZXNvdXJjZS5oIg0KDQojZGVmaW5lIEFQU1RVRElPX1JFQURPTkxZX1NZTUJPTFMNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQovLw0KLy8gR2VuZXJhdGVkIGZyb20gdGhlIFRFWFRJTkNMVURFIDIgcmVzb3VyY2UuDQovLw0KI2luY2x1ZGUgImFmeHJlcy5oIg0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KI3VuZGVmIEFQU1RVRElPX1JFQURPTkxZX1NZTUJPTFMNCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vIEVuZ2xpc2ggKFUuUy4pIHJlc291cmNlcw0KDQojaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19FTlUpDQojaWZkZWYgX1dJTjMyDQpMQU5HVUFHRSBMQU5HX0VOR0xJU0gsIFNVQkxBTkdfRU5HTElTSF9VUw0KI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MikNCiNlbmRpZiAvL19XSU4zMg0KDQojaWZkZWYgQVBTVFVESU9fSU5WT0tFRA0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBURVhUSU5DTFVERQ0KLy8NCg0KMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRSANCkJFR0lODQogICAgInJlc291cmNlLmhcMCINCkVORA0KDQoyIFRFWFRJTkNMVURFIERJU0NBUkRBQkxFIA0KQkVHSU4NCiAgICAiI2luY2x1ZGUgIiJhZnhyZXMuaCIiXHJcbiINCiAgICAiXDAiDQpFTkQNCg0KMyBURVhUSU5DTFVERSBESVNDQVJEQUJMRSANCkJFR0lODQogICAgIlxyXG4iDQogICAgIlwwIg0KRU5EDQoNCiNlbmRpZiAgICAvLyBBUFNUVURJT19JTlZPS0VEDQoNCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBJY29uDQovLw0KDQovLyBJY29uIHdpdGggbG93ZXN0IElEIHZhbHVlIHBsYWNlZCBmaXJzdCB0byBlbnN1cmUgYXBwbGljYXRpb24gaWNvbg0KLy8gcmVtYWlucyBjb25zaXN0ZW50IG9uIGFsbCBzeXN0ZW1zLg0KMSAgICAgICAgICAgICAgICAgICAgICAgSUNPTiAgICBESVNDQVJEQUJMRSAgICAgIlNjcmljb24zLmljbyINCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBERVNJR05JTkZPDQovLw0KDQojaWZkZWYgQVBTVFVESU9fSU5WT0tFRA0KR1VJREVMSU5FUyBERVNJR05JTkZPIERJU0NBUkRBQkxFIA0KQkVHSU4NCiAgICBETEdfQ09ORklHLCBESUFMT0cNCiAgICBCRUdJTg0KICAgICAgICBMRUZUTUFSR0lOLCA3DQogICAgICAgIFJJR0hUTUFSR0lOLCAxNzkNCiAgICAgICAgVE9QTUFSR0lOLCA3DQogICAgICAgIEJPVFRPTU1BUkdJTiwgMTk0DQogICAgRU5EDQpFTkQNCiNlbmRpZiAgICAvLyBBUFNUVURJT19JTlZPS0VEDQoNCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBEaWFsb2cNCi8vDQoNCkRMR19DT05GSUcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAxODYsIDIwMQ0KU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUNCkNBUFRJT04gIkNvbmZpZ3VyYXRpb24gRGlhbG9nIg0KRk9OVCA4LCAiTVMgU2FucyBTZXJpZiINCkJFR0lODQogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywzNCw5Myw1MCwxNA0KICAgIFBVU0hCVVRUT04gICAgICAiQ2FuY2VsIixJRENBTkNFTCwxMDUsOTMsNTAsMTQNCiAgICBDT05UUk9MICAgICAgICAgIlJvdGF0ZSIsSURDX0ZMQVNILCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsDQogICAgICAgICAgICAgICAgICAgIDEwNCwyMCwzNywxMA0KICAgIENPTlRST0wgICAgICAgICAxMDgsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgfCBTU19TVU5LRU4gfCANCiAgICAgICAgICAgICAgICAgICAgV1NfQk9SREVSLDcsNyw4OSw4MQ0KICAgIExURVhUICAgICAgICAgICAiRGFuaWVsIExpZHN0cvZtIixJRENfU1RBVElDLDcsMTY4LDQ5LDgNCiAgICBMVEVYVCAgICAgICAgICAgImRhbmxpOTdAaXRlLm1oLnNlIixJRENfU1RBVElDLDcsMTc4LDU5LDgNCiAgICBMVEVYVCAgICAgICAgICAgInd3dy5pdGUubWguc2UvfmRhbmxpOTcvb3BlbmdsLyIsSURDX1NUQVRJQyw3LDE4NiwxMDYsOA0KICAgIEdST1VQQk9YICAgICAgICAiQ29uZmlndXJhdGlvbiBPcHRpb25zIixJRENfU1RBVElDLDk5LDcsODAsODANCiAgICBMVEVYVCAgICAgICAgICAgIk9yaWdpbmFsIFNjcmVlbnNhdmVyIEZyYW1ld29yayBieToiLElEQ19TVEFUSUMsNywxNTgsDQogICAgICAgICAgICAgICAgICAgIDExNCw4DQogICAgQ1RFWFQgICAgICAgICAgICJwcm9qZWN0TSBTY3JlZW5zYXZlclxuaHR0cDovL3htbXMtcHJvamVjdG0uc291cmNlZm9yZ2UubmV0XG4iLA0KICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDcsMTEzLDE3Miw0MyxXU19CT1JERVINCkVORA0KDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQovLw0KLy8gU3RyaW5nIFRhYmxlDQovLw0KDQpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRSANCkJFR0lODQogICAgMSAgICAgICAgICAgICAgICAgICAgICAgInByb2plY3RNIg0KICAgIElEU19BUFBOQU1FICAgICAgICAgICAgICJwcm9qZWN0TSINCkVORA0KDQojZW5kaWYgICAgLy8gRW5nbGlzaCAoVS5TLikgcmVzb3VyY2VzDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQovLyBFbmdsaXNoIChVLksuKSByZXNvdXJjZXMNCg0KI2lmICFkZWZpbmVkKEFGWF9SRVNPVVJDRV9ETEwpIHx8IGRlZmluZWQoQUZYX1RBUkdfRU5HKQ0KI2lmZGVmIF9XSU4zMg0KTEFOR1VBR0UgTEFOR19FTkdMSVNILCBTVUJMQU5HX0VOR0xJU0hfVUsNCiNwcmFnbWEgY29kZV9wYWdlKDEyNTIpDQojZW5kaWYgLy9fV0lOMzINCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBCaXRtYXANCi8vDQoNCi8vSURCX0JJVE1BUDEgICAgICAgICAgICAgQklUTUFQICBESVNDQVJEQUJMRSAgICAgImRic2xvZ28uYm1wIg0KI2VuZGlmICAgIC8vIEVuZ2xpc2ggKFUuSy4pIHJlc291cmNlcw0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCg0KDQoNCiNpZm5kZWYgQVBTVFVESU9fSU5WT0tFRA0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMyByZXNvdXJjZS4NCi8vDQoNCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiNlbmRpZiAgICAvLyBub3QgQVBTVFVESU9fSU5WT0tFRA0KDQo=