LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogc21jOTAwMC5oCiAqCiAqIENvcHlyaWdodCAoQykgMTk5OCBieSBEYW5pZWwgRW5nc3Ry9m0KICogQ29weXJpZ2h0IChDKSAxOTk2IGJ5IEVyaWsgU3RhaGxtYW4KICoKICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgdXNlZCBhbmQgZGlzdHJpYnV0ZWQgYWNjb3JkaW5nIHRvIHRoZSB0ZXJtcwogKiBvZiB0aGUgR05VIFB1YmxpYyBMaWNlbnNlLCBpbmNvcnBvcmF0ZWQgaGVyZWluIGJ5IHJlZmVyZW5jZS4KICoKICogVGhpcyBmaWxlIGNvbnRhaW5zIHJlZ2lzdGVyIGluZm9ybWF0aW9uIGFuZCBhY2Nlc3MgbWFjcm9zIGZvcgogKiB0aGUgU01DOTF4eHggY2hpcHNldC4KICoKICogSW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoaXMgZmlsZSB3YXMgb2J0YWluZWQgZnJvbSB0aGUgU01DOTFDOTQKICogbWFudWFsIGZyb20gU01DLiAgVG8gZ2V0IGEgY29weSwgaWYgeW91IHJlYWxseSB3YW50IG9uZSwgeW91IGNhbiBmaW5kCiAqIGluZm9ybWF0aW9uIHVuZGVyIHd3dy5zbXNjLmNvbSBpbiB0aGUgY29tcG9uZW50cyBkaXZpc2lvbi4KICogKCB0aGlzIHRoYW5rcyB0byBhZHZpY2UgZnJvbSBEb25hbGQgQmVja2VyICkuCiAqCiAqIEF1dGhvcnMKICogICAgICBEYW5pZWwgRW5nc3Ry9m0gICAgICAgICAgICAgICAgICAgICAgICAgPGRhbmllbC5lbmdzdHJvbUByaWtzbmV0dC5ubz4KICoJRXJpayBTdGFobG1hbgkJCQk8ZXJpa0B2dC5lZHU+CiAqCiAqIEhpc3RvcnkKICogOTYtMDEtMDYJCSBFcmlrIFN0YWhsbWFuICAgbW92ZWQgZGVmaW5pdGlvbnMgaGVyZSBmcm9tIG1haW4gLmMKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlCiAqIDk2LTAxLTE5CQkgRXJpayBTdGFobG1hbgkgcG9saXNoZWQgdGhpcyB1cCBzb21lLCBhbmQgYWRkZWQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXR0ZXIgZXJyb3IgaGFuZGxpbmcKICogOTgtMDktMjUgICAgICAgICAgICAgIERhbmllbCBFbmdzdHL2bSBhZGp1c3RlZCBmb3IgRXRoZXJib290CiAqIDk4LTA5LTI3ICAgICAgICAgICAgICBEYW5pZWwgRW5nc3Ry9m0gbW92ZWQgc29tZSBzdGF0aWMgc3RyaW5ncyBiYWNrIHRvIHRoZQogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1haW4gLmMgZmlsZQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpGSUxFX0xJQ0VOQ0UgKCBHUExfQU5ZICk7CgojaWZuZGVmCV9TTUM5MDAwX0hfCiMgZGVmaW5lIF9TTUM5MDAwX0hfCgovKiBJIHdhbnQgc29tZSBzaW1wbGUgdHlwZXMgKi8KdHlwZWRlZiB1bnNpZ25lZCBjaGFyCQkJYnl0ZTsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydAkJCXdvcmQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQJCWR3b3JkOwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICoKICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgU01DIHJlZ2lzdGVycyBpcyBwcm9iYWJseSBpbiBvcmRlciBoZXJlLAogKiBhbHRob3VnaCBmb3IgZGV0YWlscywgdGhlIFNNQyBkYXRhc2hlZXQgaXMgaW52YWx1YWJsZS4KICoKICogQmFzaWNhbGx5LCB0aGUgY2hpcCBoYXMgNCBiYW5rcyBvZiByZWdpc3RlcnMgKCAwIHRvIDMgKSwgd2hpY2gKICogYXJlIGFjY2Vzc2VkIGJ5IHdyaXRpbmcgYSBudW1iZXIgaW50byB0aGUgQkFOS19TRUxFQ1QgcmVnaXN0ZXIKICogKCBJIGFsc28gdXNlIGEgU01DX1NFTEVDVF9CQU5LIG1hY3JvIGZvciB0aGlzICkuCiAqCiAqIFRoZSBiYW5rcyBhcmUgY29uZmlndXJlZCBzbyB0aGF0IGZvciBtb3N0IHB1cnBvc2VzLCBiYW5rIDIgaXMgYWxsCiAqIHRoYXQgaXMgbmVlZGVkIGZvciBzaW1wbGUgcnVuIHRpbWUgdGFza3MuCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyoKICogQmFuayBTZWxlY3QgUmVnaXN0ZXI6CiAqCiAqCQl5eXl5IHl5eXkgMDAwMCAwMHh4CiAqCQl4eAkJPSBiYW5rIG51bWJlcgogKgkJeXl5eSB5eXl5CT0gMHgzMywgZm9yIGlkZW50aWZpY2F0aW9uIHB1cnBvc2VzLgogKi8KI2RlZmluZQlCQU5LX1NFTEVDVAkJMTQKCi8qIEJBTksgMCAgKi8KCiNkZWZpbmUJVENSCQkwCS8qIHRyYW5zbWl0IGNvbnRyb2wgcmVnaXN0ZXIgKi8KI2RlZmluZSBUQ1JfRU5BQkxFCTB4MDAwMQkvKiBpZiB0aGlzIGlzIDEsIHdlIGNhbiB0cmFuc21pdCAqLwojZGVmaW5lIFRDUl9GRFVQTFgJMHgwODAwCS8qIHJlY2VpdmUgcGFja2V0cyBzZW50IG91dCAqLwojZGVmaW5lIFRDUl9TVFBfU1FFVAkweDEwMDAJLyogc3RvcCB0cmFuc21pdHRpbmcgaWYgU2lnbmFsIHF1YWxpdHkgZXJyb3IgKi8KI2RlZmluZQlUQ1JfTU9OX0NOUwkweDA0MDAJLyogbW9uaXRvcnMgdGhlIGNhcnJpZXIgc3RhdHVzICovCiNkZWZpbmUJVENSX1BBRF9FTkFCTEUJMHgwMDgwCS8qIHBhZHMgc2hvcnQgcGFja2V0cyB0byA2NCBieXRlcyAqLwoKI2RlZmluZQlUQ1JfQ0xFQVIJMAkvKiBkbyBOT1RISU5HICovCi8qIHRoZSBub3JtYWwgc2V0dGluZ3MgZm9yIHRoZSBUQ1IgcmVnaXN0ZXIgOiAqLwojZGVmaW5lCVRDUl9OT1JNQUwJKFRDUl9FTkFCTEUgfCBUQ1JfUEFEX0VOQUJMRSkKCgojZGVmaW5lIEVQSF9TVEFUVVMJMgojZGVmaW5lIEVTX0xJTktfT0sJMHg0MDAwCS8qIGlzIHRoZSBsaW5rIGludGVncml0eSBvayA/ICovCgojZGVmaW5lCVJDUgkJNAojZGVmaW5lIFJDUl9TT0ZUUkVTRVQJMHg4MDAwCS8qIHJlc2V0cyB0aGUgY2hpcCAqLwojZGVmaW5lCVJDUl9TVFJJUF9DUkMJMHgyMDAJLyogc3RyaXBzIENSQyAqLwojZGVmaW5lIFJDUl9FTkFCTEUJMHgxMDAJLyogSUZGIHRoaXMgaXMgc2V0LCB3ZSBjYW4gcmVjZWl2ZSBwYWNrZXRzICovCiNkZWZpbmUgUkNSX0FMTVVMCTB4NAkvKiByZWNlaXZlIGFsbCBtdWx0aWNhc3QgcGFja2V0cyAqLwojZGVmaW5lCVJDUl9QUk9NSVNDCTB4MgkvKiBlbmFibGUgcHJvbWlzY3VvdXMgbW9kZSAqLwoKLyogdGhlIG5vcm1hbCBzZXR0aW5ncyBmb3IgdGhlIFJDUiByZWdpc3RlciA6ICovCiNkZWZpbmUJUkNSX05PUk1BTAkoUkNSX1NUUklQX0NSQyB8IFJDUl9FTkFCTEUpCiNkZWZpbmUgUkNSX0NMRUFSCTB4MAkJLyogc2V0IGl0IHRvIGEgYmFzZSBzdGF0ZSAqLwoKI2RlZmluZQlDT1VOVEVSCQk2CiNkZWZpbmUJTUlSCQk4CiNkZWZpbmUJTUNSCQkxMAovKiAxMiBpcyByZXNlcnZlZCAqLwoKLy8gUmVjZWl2ZS9QaHkgQ29udHJvbCBSZWdpc3RlcgovKiBCQU5LIDAgICovCiNkZWZpbmUgUlBDX1JFRyAgICAgICAgIDB4MDAwQQojZGVmaW5lIFJQQ19TUEVFRCAgICAgICAweDIwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gMTAwTWJwcyBtb2RlLgojZGVmaW5lIFJQQ19EUExYICAgICAgICAweDEwMDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gRnVsbC1EdXBsZXggTW9kZQojZGVmaW5lIFJQQ19BTkVHICAgICAgICAweDA4MDAgIC8vIFdoZW4gMSBQSFkgaXMgaW4gQXV0by1OZWdvdGlhdGUgTW9kZQojZGVmaW5lIFJQQ19MU1hBX1NIRlQgICA1ICAgICAgIC8vIEJpdHMgdG8gc2hpZnQgTFMyQSxMUzFBLExTMEEgdG8gbHNiCiNkZWZpbmUgUlBDX0xTWEJfU0hGVCAgIDIgICAgICAgLy8gQml0cyB0byBnZXQgTFMyQixMUzFCLExTMEIgdG8gbHNiCiNkZWZpbmUgUlBDX0xFRF8xMDBfMTAgICgweDAwKSAgLy8gTEVEID0gMTAwTWJwcyBPUidzIHdpdGggMTBNYnBzIGxpbmsgZGV0ZWN0CiNkZWZpbmUgUlBDX0xFRF9SRVMgICAgICgweDAxKSAgLy8gTEVEID0gUmVzZXJ2ZWQKI2RlZmluZSBSUENfTEVEXzEwICAgICAgKDB4MDIpICAvLyBMRUQgPSAxME1icHMgbGluayBkZXRlY3QKI2RlZmluZSBSUENfTEVEX0ZEICAgICAgKDB4MDMpICAvLyBMRUQgPSBGdWxsIER1cGxleCBNb2RlCiNkZWZpbmUgUlBDX0xFRF9UWF9SWCAgICgweDA0KSAgLy8gTEVEID0gVFggb3IgUlggcGFja2V0IG9jY3VycmVkCiNkZWZpbmUgUlBDX0xFRF8xMDAgICAgICgweDA1KSAgLy8gTEVEID0gMTAwTWJwcyBsaW5rIGRldGVjdAojZGVmaW5lIFJQQ19MRURfVFggICAgICAoMHgwNikgIC8vIExFRCA9IFRYIHBhY2tldCBvY2N1cnJlZAojZGVmaW5lIFJQQ19MRURfUlggICAgICAoMHgwNykgIC8vIExFRCA9IFJYIHBhY2tldCBvY2N1cnJlZAojZGVmaW5lIFJQQ19ERUZBVUxUIChSUENfQU5FRyB8IChSUENfTEVEXzEwMCA8PCBSUENfTFNYQV9TSEZUKSB8IChSUENfTEVEX0ZEIDw8IFJQQ19MU1hCX1NIRlQpIHwgUlBDX1NQRUVEIHwgUlBDX0RQTFgpCgovLyBSZWNlaXZlL1BoeSBDb250cm9sIFJlZ2lzdGVyCi8qIEJBTksgMCAgKi8KI2RlZmluZSBSUENfUkVHICAgICAgICAgMHgwMDBBCiNkZWZpbmUgUlBDX1NQRUVEICAgICAgIDB4MjAwMCAgLy8gV2hlbiAxIFBIWSBpcyBpbiAxMDBNYnBzIG1vZGUuCiNkZWZpbmUgUlBDX0RQTFggICAgICAgIDB4MTAwMCAgLy8gV2hlbiAxIFBIWSBpcyBpbiBGdWxsLUR1cGxleCBNb2RlCiNkZWZpbmUgUlBDX0FORUcgICAgICAgIDB4MDgwMCAgLy8gV2hlbiAxIFBIWSBpcyBpbiBBdXRvLU5lZ290aWF0ZSBNb2RlCiNkZWZpbmUgUlBDX0xTWEFfU0hGVCAgIDUgICAgICAgLy8gQml0cyB0byBzaGlmdCBMUzJBLExTMUEsTFMwQSB0byBsc2IKI2RlZmluZSBSUENfTFNYQl9TSEZUICAgMiAgICAgICAvLyBCaXRzIHRvIGdldCBMUzJCLExTMUIsTFMwQiB0byBsc2IKI2RlZmluZSBSUENfTEVEXzEwMF8xMCAgKDB4MDApICAvLyBMRUQgPSAxMDBNYnBzIE9SJ3Mgd2l0aCAxME1icHMgbGluayBkZXRlY3QKI2RlZmluZSBSUENfTEVEX1JFUyAgICAgKDB4MDEpICAvLyBMRUQgPSBSZXNlcnZlZAojZGVmaW5lIFJQQ19MRURfMTAgICAgICAoMHgwMikgIC8vIExFRCA9IDEwTWJwcyBsaW5rIGRldGVjdAojZGVmaW5lIFJQQ19MRURfRkQgICAgICAoMHgwMykgIC8vIExFRCA9IEZ1bGwgRHVwbGV4IE1vZGUKI2RlZmluZSBSUENfTEVEX1RYX1JYICAgKDB4MDQpICAvLyBMRUQgPSBUWCBvciBSWCBwYWNrZXQgb2NjdXJyZWQKI2RlZmluZSBSUENfTEVEXzEwMCAgICAgKDB4MDUpICAvLyBMRUQgPSAxMDBNYnBzIGxpbmsgZGV0ZWN0CiNkZWZpbmUgUlBDX0xFRF9UWCAgICAgICgweDA2KSAgLy8gTEVEID0gVFggcGFja2V0IG9jY3VycmVkCiNkZWZpbmUgUlBDX0xFRF9SWCAgICAgICgweDA3KSAgLy8gTEVEID0gUlggcGFja2V0IG9jY3VycmVkCiNkZWZpbmUgUlBDX0RFRkFVTFQgKFJQQ19BTkVHIHwgKFJQQ19MRURfMTAwIDw8IFJQQ19MU1hBX1NIRlQpIHwgKFJQQ19MRURfRkQgPDwgUlBDX0xTWEJfU0hGVCkgfCBSUENfU1BFRUQgfCBSUENfRFBMWCkKCi8qIEJBTksgMSAqLwojZGVmaW5lIENGRwkJCTAKI2RlZmluZSBDRkdfQVVJX1NFTEVDVAkJMHgxMDAKI2RlZmluZQlCQVNFCQkJMgojZGVmaW5lCUFERFIwCQkJNAojZGVmaW5lCUFERFIxCQkJNgojZGVmaW5lCUFERFIyCQkJOAojZGVmaW5lCUdFTkVSQUwJCQkxMAojZGVmaW5lCUNPTlRST0wJCQkxMgojZGVmaW5lCUNUTF9QT1dFUkRPV04JCTB4MjAwMAojZGVmaW5lCUNUTF9MRV9FTkFCTEUJCTB4ODAKI2RlZmluZQlDVExfQ1JfRU5BQkxFCQkweDQwCiNkZWZpbmUJQ1RMX1RFX0VOQUJMRQkJMHgwMDIwCiNkZWZpbmUgQ1RMX0FVVE9fUkVMRUFTRQkweDA4MDAKI2RlZmluZQlDVExfRVBST01fQUNDRVNTCTB4MDAwMyAvKiBoaWdoIGlmIEVwcm9tIGlzIGJlaW5nIHJlYWQgKi8KCi8qIEJBTksgMiAqLwojZGVmaW5lIE1NVV9DTUQJCTAKI2RlZmluZSBNQ19CVVNZCQkxCS8qIG9ubHkgcmVhZGFibGUgYml0IGluIHRoZSByZWdpc3RlciAqLwojZGVmaW5lIE1DX05PUAkJMAojZGVmaW5lCU1DX0FMTE9DCTB4MjAJLyogb3Igd2l0aCBudW1iZXIgb2YgMjU2IGJ5dGUgcGFja2V0cyAqLwojZGVmaW5lCU1DX1JFU0VUCTB4NDAKI2RlZmluZQlNQ19SRU1PVkUJMHg2MAkvKiByZW1vdmUgdGhlIGN1cnJlbnQgcnggcGFja2V0ICovCiNkZWZpbmUgTUNfUkVMRUFTRQkweDgwCS8qIHJlbW92ZSBhbmQgcmVsZWFzZSB0aGUgY3VycmVudCByeCBwYWNrZXQgKi8KI2RlZmluZSBNQ19GUkVFUEtUCTB4QTAJLyogUmVsZWFzZSBwYWNrZXQgaW4gUE5SIHJlZ2lzdGVyICovCiNkZWZpbmUgTUNfRU5RVUVVRQkweEMwCS8qIEVucXVldWUgdGhlIHBhY2tldCBmb3IgdHJhbnNtaXQgKi8KCiNkZWZpbmUJUE5SX0FSUgkJMgojZGVmaW5lIEZJRk9fUE9SVFMJNAoKI2RlZmluZSBGUF9SWEVNUFRZCTB4ODAwMAojZGVmaW5lIEZQX1RYRU1QVFkJMHg4MAoKI2RlZmluZQlQT0lOVEVSCQk2CiNkZWZpbmUgUFRSX1JFQUQJMHgyMDAwCiNkZWZpbmUJUFRSX1JDVgkJMHg4MDAwCiNkZWZpbmUJUFRSX0FVVE9JTkMJMHg0MDAwCiNkZWZpbmUgUFRSX0FVVE9fSU5DCTB4MDA0MAoKI2RlZmluZQlEQVRBXzEJCTgKI2RlZmluZQlEQVRBXzIJCTEwCiNkZWZpbmUJSU5URVJSVVBUCTEyCgojZGVmaW5lIElOVF9NQVNLCTEzCiNkZWZpbmUgSU1fUkNWX0lOVAkweDEKI2RlZmluZQlJTV9UWF9JTlQJMHgyCiNkZWZpbmUJSU1fVFhfRU1QVFlfSU5UCTB4NAojZGVmaW5lCUlNX0FMTE9DX0lOVAkweDgKI2RlZmluZQlJTV9SWF9PVlJOX0lOVAkweDEwCiNkZWZpbmUJSU1fRVBIX0lOVAkweDIwCiNkZWZpbmUJSU1fRVJDVl9JTlQJMHg0MCAvKiBub3Qgb24gU01DOTE5MiAqLwoKLyogQkFOSyAzICovCiNkZWZpbmUJTVVMVElDQVNUMQkwCiNkZWZpbmUJTVVMVElDQVNUMgkyCiNkZWZpbmUJTVVMVElDQVNUMwk0CiNkZWZpbmUJTVVMVElDQVNUNAk2CiNkZWZpbmUJTUdNVAkJOAojZGVmaW5lCVJFVklTSU9OCTEwIC8qICggaGk6IGNoaXAgaWQgICBsb3c6IHJldiAjICkgKi8KCi8vIE1hbmFnZW1lbnQgSW50ZXJmYWNlIFJlZ2lzdGVyIChNSUkpCiNkZWZpbmUgTUlJX1JFRyAgICAgICAgIDB4MDAwOAojZGVmaW5lIE1JSV9NU0tfQ1JTMTAwICAweDQwMDAgLy8gRGlzYWJsZXMgQ1JTMTAwIGRldGVjdGlvbiBkdXJpbmcgdHggaGFsZiBkdXAKI2RlZmluZSBNSUlfTURPRSAgICAgICAgMHgwMDA4IC8vIE1JSSBPdXRwdXQgRW5hYmxlCiNkZWZpbmUgTUlJX01DTEsgICAgICAgIDB4MDAwNCAvLyBNSUkgQ2xvY2ssIHBpbiBNRENMSwojZGVmaW5lIE1JSV9NREkgICAgICAgICAweDAwMDIgLy8gTUlJIElucHV0LCBwaW4gTURJCiNkZWZpbmUgTUlJX01ETyAgICAgICAgIDB4MDAwMSAvLyBNSUkgT3V0cHV0LCBwaW4gTURPCgovKiB0aGlzIGlzIE5PVCBvbiBTTUM5MTkyICovCiNkZWZpbmUJRVJDVgkJMTIKCi8qIE5vdGUgdGhhdCA5MTk0IGFuZCA5MTk2IGhhdmUgdGhlIHNtYW1lIGNoaXAgaWQsCiAqIHRoZSA5MTk2IHdpbGwgaGF2ZSByZXZpc2lvbnMgc3RhcnRpbmcgYXQgNiAqLwojZGVmaW5lIENISVBfOTE5MAkzCiNkZWZpbmUgQ0hJUF85MTk0CTQKI2RlZmluZSBDSElQXzkxOTUJNQojZGVmaW5lIENISVBfOTE5Ngk0CiNkZWZpbmUgQ0hJUF85MTEwMAk3CiNkZWZpbmUgQ0hJUF85MTEwMEZECTgKCiNkZWZpbmUgUkVWXzkxOTYJNgoKLyoKICogVHJhbnNtaXQgc3RhdHVzIGJpdHMKICovCiNkZWZpbmUgVFNfU1VDQ0VTUwkweDAwMDEKI2RlZmluZSBUU19MT1NUQ0FSCTB4MDQwMAojZGVmaW5lIFRTX0xBVENPTAkweDAyMDAKI2RlZmluZSBUU18xNkNPTAkweDAwMTAKCi8qCiAqIFJlY2VpdmUgc3RhdHVzIGJpdHMKICovCiNkZWZpbmUgUlNfQUxHTkVSUgkweDgwMDAKI2RlZmluZSBSU19CQURDUkMJMHgyMDAwCiNkZWZpbmUgUlNfT0RERlJBTUUJMHgxMDAwCiNkZWZpbmUgUlNfVE9PTE9ORwkweDA4MDAKI2RlZmluZSBSU19UT09TSE9SVAkweDA0MDAKI2RlZmluZSBSU19NVUxUSUNBU1QJMHgwMDAxCiNkZWZpbmUgUlNfRVJST1JTCShSU19BTEdORVJSIHwgUlNfQkFEQ1JDIHwgUlNfVE9PTE9ORyB8IFJTX1RPT1NIT1JUKQoKLy8gUEhZIFJlZ2lzdGVyIEFkZHJlc3NlcyAoTEFOOTFDMTExIEludGVybmFsIFBIWSkKCi8vIFBIWSBDb250cm9sIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0NOVExfUkVHICAgICAgICAgICAgMHgwMAojZGVmaW5lIFBIWV9DTlRMX1JTVCAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1QSFkgUmVzZXQKI2RlZmluZSBQSFlfQ05UTF9MUEJLICAgICAgICAgICAweDQwMDAgIC8vIDE9UEhZIExvb3BiYWNrCiNkZWZpbmUgUEhZX0NOVExfU1BFRUQgICAgICAgICAgMHgyMDAwICAvLyAxPTEwME1icHMsIDA9MTBNcGJzCiNkZWZpbmUgUEhZX0NOVExfQU5FR19FTiAgICAgICAgMHgxMDAwIC8vIDE9RW5hYmxlIEF1dG8gbmVnb3RpYXRpb24KI2RlZmluZSBQSFlfQ05UTF9QRE4gICAgICAgICAgICAweDA4MDAgIC8vIDE9UEhZIFBvd2VyIERvd24gbW9kZQojZGVmaW5lIFBIWV9DTlRMX01JSV9ESVMgICAgICAgIDB4MDQwMCAgLy8gMT1NSUkgNCBiaXQgaW50ZXJmYWNlIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NOVExfQU5FR19SU1QgICAgICAgMHgwMjAwIC8vIDE9UmVzZXQgQXV0byBuZWdvdGlhdGUKI2RlZmluZSBQSFlfQ05UTF9EUExYICAgICAgICAgICAweDAxMDAgIC8vIDE9RnVsbCBEdXBsZXgsIDA9SGFsZiBEdXBsZXgKI2RlZmluZSBQSFlfQ05UTF9DT0xUU1QgICAgICAgICAweDAwODAgIC8vIDE9IE1JSSBDb2xpc2lvbiBUZXN0CgovLyBQSFkgU3RhdHVzIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX1NUQVRfUkVHICAgICAgICAgICAgMHgwMQojZGVmaW5lIFBIWV9TVEFUX0NBUF9UNCAgICAgICAgIDB4ODAwMCAgLy8gMT0xMDBCYXNlLVQ0IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVFhGICAgICAgICAweDQwMDAgIC8vIDE9MTAwQmFzZS1YIGZ1bGwgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVFhIICAgICAgICAweDIwMDAgIC8vIDE9MTAwQmFzZS1YIGhhbGYgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVEYgICAgICAgICAweDEwMDAgIC8vIDE9MTBNYnBzIGZ1bGwgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVEggICAgICAgICAweDA4MDAgIC8vIDE9MTBNYnBzIGhhbGYgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfU1VQUiAgICAgICAweDAwNDAgIC8vIDE9cmVjdiBtZ210IGZyYW1lcyB3aXRoIG5vdCBwcmVhbWJsZQojZGVmaW5lIFBIWV9TVEFUX0FORUdfQUNLICAgICAgIDB4MDAyMCAgLy8gMT1BTkVHIGhhcyBjb21wbGV0ZWQKI2RlZmluZSBQSFlfU1RBVF9SRU1fRkxUICAgICAgICAweDAwMTAgIC8vIDE9UmVtb3RlIEZhdWx0IGRldGVjdGVkCiNkZWZpbmUgUEhZX1NUQVRfQ0FQX0FORUcgICAgICAgMHgwMDA4ICAvLyAxPUF1dG8gbmVnb3RpYXRlIGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9MSU5LICAgICAgICAgICAweDAwMDQgIC8vIDE9dmFsaWQgbGluawojZGVmaW5lIFBIWV9TVEFUX0pBQiAgICAgICAgICAgIDB4MDAwMiAgLy8gMT0xME1icHMgamFiYmVyIGNvbmRpdGlvbgojZGVmaW5lIFBIWV9TVEFUX0VYUkVHICAgICAgICAgIDB4MDAwMSAgLy8gMT1leHRlbmRlZCByZWdpc3RlcnMgaW1wbGVtZW50ZWQKCi8vIFBIWSBJZGVudGlmaWVyIFJlZ2lzdGVycwojZGVmaW5lIFBIWV9JRDFfUkVHICAgICAgICAgICAgIDB4MDIgICAgLy8gUEhZIElkZW50aWZpZXIgMQojZGVmaW5lIFBIWV9JRDJfUkVHICAgICAgICAgICAgIDB4MDMgICAgLy8gUEhZIElkZW50aWZpZXIgMgoKLy8gUEhZIEF1dG8tTmVnb3RpYXRpb24gQWR2ZXJ0aXNlbWVudCBSZWdpc3RlcgojZGVmaW5lIFBIWV9BRF9SRUcgICAgICAgICAgICAgIDB4MDQKI2RlZmluZSBQSFlfQURfTlAgICAgICAgICAgICAgICAweDgwMDAgIC8vIDE9UEhZIHJlcXVlc3RzIGV4Y2hhbmdlIG9mIE5leHQgUGFnZQojZGVmaW5lIFBIWV9BRF9BQ0sgICAgICAgICAgICAgIDB4NDAwMCAgLy8gMT1nb3QgbGluayBjb2RlIHdvcmQgZnJvbSByZW1vdGUKI2RlZmluZSBQSFlfQURfUkYgICAgICAgICAgICAgICAweDIwMDAgIC8vIDE9YWR2ZXJ0aXNlIHJlbW90ZSBmYXVsdAojZGVmaW5lIFBIWV9BRF9UNCAgICAgICAgICAgICAgIDB4MDIwMCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMDBCYXNlLVQ0CiNkZWZpbmUgUEhZX0FEX1RYX0ZEWCAgICAgICAgICAgMHgwMTAwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwMEJhc2UtVFggRkRQTFgKI2RlZmluZSBQSFlfQURfVFhfSERYICAgICAgICAgICAweDAwODAgIC8vIDE9UEhZIGlzIGNhcGFibGUgb2YgMTAwQmFzZS1UWCBIRFBMWAojZGVmaW5lIFBIWV9BRF8xMF9GRFggICAgICAgICAgIDB4MDA0MCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMEJhc2UtVCBGRFBMWAojZGVmaW5lIFBIWV9BRF8xMF9IRFggICAgICAgICAgIDB4MDAyMCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMEJhc2UtVCBIRFBMWAojZGVmaW5lIFBIWV9BRF9DU01BICAgICAgICAgICAgIDB4MDAwMSAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiA4MDIuMyBDTVNBCgovLyBQSFkgQXV0by1uZWdvdGlhdGlvbiBSZW1vdGUgRW5kIENhcGFiaWxpdHkgUmVnaXN0ZXIKI2RlZmluZSBQSFlfUk1UX1JFRyAgICAgICAgICAgICAweDA1Ci8vIFVzZXMgc2FtZSBiaXQgZGVmaW5pdGlvbnMgYXMgUEhZX0FEX1JFRwoKLy8gUEhZIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMQojZGVmaW5lIFBIWV9DRkcxX1JFRyAgICAgICAgICAgIDB4MTAKI2RlZmluZSBQSFlfQ0ZHMV9MTktESVMgICAgICAgICAweDgwMDAgIC8vIDE9UnggTGluayBEZXRlY3QgRnVuY3Rpb24gZGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMV9YTVRESVMgICAgICAgICAweDQwMDAgIC8vIDE9VFAgVHJhbnNtaXR0ZXIgRGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMV9YTVRQRE4gICAgICAgICAweDIwMDAgIC8vIDE9VFAgVHJhbnNtaXR0ZXIgUG93ZXJlZCBEb3duCiNkZWZpbmUgUEhZX0NGRzFfQllQU0NSICAgICAgICAgMHgwNDAwICAvLyAxPUJ5cGFzcyBzY3JhbWJsZXIvZGVzY3JhbWJsZXIKI2RlZmluZSBQSFlfQ0ZHMV9VTlNDRFMgICAgICAgICAweDAyMDAgIC8vIDE9VW5zY3JhbWJsZSBJZGxlIFJlY2VwdGlvbiBEaXNhYmxlCiNkZWZpbmUgUEhZX0NGRzFfRVFMWlIgICAgICAgICAgMHgwMTAwICAvLyAxPVJ4IEVxdWFsaXplciBEaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcxX0NBQkxFICAgICAgICAgIDB4MDA4MCAgLy8gMT1TVFAoMTUwb2htKSwgMD1VVFAoMTAwb2htKQojZGVmaW5lIFBIWV9DRkcxX1JMVkwwICAgICAgICAgIDB4MDA0MCAgLy8gMT1SeCBTcXVlbGNoIGxldmVsIHJlZHVjZWQgYnkgNC41ZGIKI2RlZmluZSBQSFlfQ0ZHMV9UTFZMX1NISUZUICAgICAyICAgICAgIC8vIFRyYW5zbWl0IE91dHB1dCBMZXZlbCBBZGp1c3QKI2RlZmluZSBQSFlfQ0ZHMV9UTFZMX01BU0sgICAgICAweDAwM0MKI2RlZmluZSBQSFlfQ0ZHMV9UUkZfTUFTSyAgICAgICAweDAwMDMgIC8vIFRyYW5zbWl0dGVyIFJpc2UvRmFsbCB0aW1lCgoKLy8gUEhZIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMgojZGVmaW5lIFBIWV9DRkcyX1JFRyAgICAgICAgICAgIDB4MTEKI2RlZmluZSBQSFlfQ0ZHMl9BUE9MRElTICAgICAgICAweDAwMjAgIC8vIDE9QXV0byBQb2xhcml0eSBDb3JyZWN0aW9uIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NGRzJfSkFCRElTICAgICAgICAgMHgwMDEwICAvLyAxPUphYmJlciBkaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcyX01SRUcgICAgICAgICAgIDB4MDAwOCAgLy8gMT1NdWx0aXBsZSByZWdpc3RlciBhY2Nlc3MgKE1JSSBtZ3QpCiNkZWZpbmUgUEhZX0NGRzJfSU5UTURJTyAgICAgICAgMHgwMDA0ICAvLyAxPUludGVycnVwdCBzaWduYWxlZCB3aXRoIE1ESU8gcHVsc2VvCgovLyBQSFkgU3RhdHVzIE91dHB1dCAoYW5kIEludGVycnVwdCBzdGF0dXMpIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0lOVF9SRUcgICAgICAgICAgICAgMHgxMiAgICAvLyBTdGF0dXMgT3V0cHV0IChJbnRlcnJ1cHQgU3RhdHVzKQojZGVmaW5lIFBIWV9JTlRfSU5UICAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1iaXRzIGhhdmUgY2hhbmdlZCBzaW5jZSBsYXN0IHJlYWQKI2RlZmluZSBQSFlfSU5UX0xOS0ZBSUwgICAgICAgICAweDQwMDAgIC8vIDE9TGluayBOb3QgZGV0ZWN0ZWQKI2RlZmluZSBQSFlfSU5UX0xPU1NTWU5DICAgICAgICAweDIwMDAgIC8vIDE9RGVzY3JhbWJsZXIgaGFzIGxvc3Qgc3luYwojZGVmaW5lIFBIWV9JTlRfQ1dSRCAgICAgICAgICAgIDB4MTAwMCAgLy8gMT1JbnZhbGlkIDRCNUIgY29kZSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfU1NEICAgICAgICAgICAgIDB4MDgwMCAgLy8gMT1ObyBTdGFydCBPZiBTdHJlYW0gZGV0ZWN0ZWQgb24gcngKI2RlZmluZSBQSFlfSU5UX0VTRCAgICAgICAgICAgICAweDA0MDAgIC8vIDE9Tm8gRW5kIE9mIFN0cmVhbSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfUlBPTCAgICAgICAgICAgIDB4MDIwMCAgLy8gMT1SZXZlcnNlIFBvbGFyaXR5IGRldGVjdGVkCiNkZWZpbmUgUEhZX0lOVF9KQUIgICAgICAgICAgICAgMHgwMTAwICAvLyAxPUphYmJlciBkZXRlY3RlZAojZGVmaW5lIFBIWV9JTlRfU1BEREVUICAgICAgICAgIDB4MDA4MCAgLy8gMT0xMDBCYXNlLVRYIG1vZGUsIDA9MTBCYXNlLVQgbW9kZQojZGVmaW5lIFBIWV9JTlRfRFBMWERFVCAgICAgICAgIDB4MDA0MCAgLy8gMT1EZXZpY2UgaW4gRnVsbCBEdXBsZXgKCi8vIFBIWSBJbnRlcnJ1cHQvU3RhdHVzIE1hc2sgUmVnaXN0ZXIKI2RlZmluZSBQSFlfTUFTS19SRUcgICAgICAgICAgICAweDEzICAgIC8vIEludGVycnVwdCBNYXNrCi8vIFVzZXMgdGhlIHNhbWUgYml0IGRlZmluaXRpb25zIGFzIFBIWV9JTlRfUkVHCgoKLy8gUEhZIFJlZ2lzdGVyIEFkZHJlc3NlcyAoTEFOOTFDMTExIEludGVybmFsIFBIWSkKCi8vIFBIWSBDb250cm9sIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0NOVExfUkVHICAgICAgICAgICAgMHgwMAojZGVmaW5lIFBIWV9DTlRMX1JTVCAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1QSFkgUmVzZXQKI2RlZmluZSBQSFlfQ05UTF9MUEJLICAgICAgICAgICAweDQwMDAgIC8vIDE9UEhZIExvb3BiYWNrCiNkZWZpbmUgUEhZX0NOVExfU1BFRUQgICAgICAgICAgMHgyMDAwICAvLyAxPTEwME1icHMsIDA9MTBNcGJzCiNkZWZpbmUgUEhZX0NOVExfQU5FR19FTiAgICAgICAgMHgxMDAwIC8vIDE9RW5hYmxlIEF1dG8gbmVnb3RpYXRpb24KI2RlZmluZSBQSFlfQ05UTF9QRE4gICAgICAgICAgICAweDA4MDAgIC8vIDE9UEhZIFBvd2VyIERvd24gbW9kZQojZGVmaW5lIFBIWV9DTlRMX01JSV9ESVMgICAgICAgIDB4MDQwMCAgLy8gMT1NSUkgNCBiaXQgaW50ZXJmYWNlIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NOVExfQU5FR19SU1QgICAgICAgMHgwMjAwIC8vIDE9UmVzZXQgQXV0byBuZWdvdGlhdGUKI2RlZmluZSBQSFlfQ05UTF9EUExYICAgICAgICAgICAweDAxMDAgIC8vIDE9RnVsbCBEdXBsZXgsIDA9SGFsZiBEdXBsZXgKI2RlZmluZSBQSFlfQ05UTF9DT0xUU1QgICAgICAgICAweDAwODAgIC8vIDE9IE1JSSBDb2xpc2lvbiBUZXN0CgovLyBQSFkgU3RhdHVzIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX1NUQVRfUkVHICAgICAgICAgICAgMHgwMQojZGVmaW5lIFBIWV9TVEFUX0NBUF9UNCAgICAgICAgIDB4ODAwMCAgLy8gMT0xMDBCYXNlLVQ0IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVFhGICAgICAgICAweDQwMDAgIC8vIDE9MTAwQmFzZS1YIGZ1bGwgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVFhIICAgICAgICAweDIwMDAgIC8vIDE9MTAwQmFzZS1YIGhhbGYgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVEYgICAgICAgICAweDEwMDAgIC8vIDE9MTBNYnBzIGZ1bGwgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfVEggICAgICAgICAweDA4MDAgIC8vIDE9MTBNYnBzIGhhbGYgZHVwbGV4IGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9DQVBfU1VQUiAgICAgICAweDAwNDAgIC8vIDE9cmVjdiBtZ210IGZyYW1lcyB3aXRoIG5vdCBwcmVhbWJsZQojZGVmaW5lIFBIWV9TVEFUX0FORUdfQUNLICAgICAgIDB4MDAyMCAgLy8gMT1BTkVHIGhhcyBjb21wbGV0ZWQKI2RlZmluZSBQSFlfU1RBVF9SRU1fRkxUICAgICAgICAweDAwMTAgIC8vIDE9UmVtb3RlIEZhdWx0IGRldGVjdGVkCiNkZWZpbmUgUEhZX1NUQVRfQ0FQX0FORUcgICAgICAgMHgwMDA4ICAvLyAxPUF1dG8gbmVnb3RpYXRlIGNhcGFibGUKI2RlZmluZSBQSFlfU1RBVF9MSU5LICAgICAgICAgICAweDAwMDQgIC8vIDE9dmFsaWQgbGluawojZGVmaW5lIFBIWV9TVEFUX0pBQiAgICAgICAgICAgIDB4MDAwMiAgLy8gMT0xME1icHMgamFiYmVyIGNvbmRpdGlvbgojZGVmaW5lIFBIWV9TVEFUX0VYUkVHICAgICAgICAgIDB4MDAwMSAgLy8gMT1leHRlbmRlZCByZWdpc3RlcnMgaW1wbGVtZW50ZWQKCi8vIFBIWSBJZGVudGlmaWVyIFJlZ2lzdGVycwojZGVmaW5lIFBIWV9JRDFfUkVHICAgICAgICAgICAgIDB4MDIgICAgLy8gUEhZIElkZW50aWZpZXIgMQojZGVmaW5lIFBIWV9JRDJfUkVHICAgICAgICAgICAgIDB4MDMgICAgLy8gUEhZIElkZW50aWZpZXIgMgoKLy8gUEhZIEF1dG8tTmVnb3RpYXRpb24gQWR2ZXJ0aXNlbWVudCBSZWdpc3RlcgojZGVmaW5lIFBIWV9BRF9SRUcgICAgICAgICAgICAgIDB4MDQKI2RlZmluZSBQSFlfQURfTlAgICAgICAgICAgICAgICAweDgwMDAgIC8vIDE9UEhZIHJlcXVlc3RzIGV4Y2hhbmdlIG9mIE5leHQgUGFnZQojZGVmaW5lIFBIWV9BRF9BQ0sgICAgICAgICAgICAgIDB4NDAwMCAgLy8gMT1nb3QgbGluayBjb2RlIHdvcmQgZnJvbSByZW1vdGUKI2RlZmluZSBQSFlfQURfUkYgICAgICAgICAgICAgICAweDIwMDAgIC8vIDE9YWR2ZXJ0aXNlIHJlbW90ZSBmYXVsdAojZGVmaW5lIFBIWV9BRF9UNCAgICAgICAgICAgICAgIDB4MDIwMCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMDBCYXNlLVQ0CiNkZWZpbmUgUEhZX0FEX1RYX0ZEWCAgICAgICAgICAgMHgwMTAwICAvLyAxPVBIWSBpcyBjYXBhYmxlIG9mIDEwMEJhc2UtVFggRkRQTFgKI2RlZmluZSBQSFlfQURfVFhfSERYICAgICAgICAgICAweDAwODAgIC8vIDE9UEhZIGlzIGNhcGFibGUgb2YgMTAwQmFzZS1UWCBIRFBMWAojZGVmaW5lIFBIWV9BRF8xMF9GRFggICAgICAgICAgIDB4MDA0MCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMEJhc2UtVCBGRFBMWAojZGVmaW5lIFBIWV9BRF8xMF9IRFggICAgICAgICAgIDB4MDAyMCAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiAxMEJhc2UtVCBIRFBMWAojZGVmaW5lIFBIWV9BRF9DU01BICAgICAgICAgICAgIDB4MDAwMSAgLy8gMT1QSFkgaXMgY2FwYWJsZSBvZiA4MDIuMyBDTVNBCgovLyBQSFkgQXV0by1uZWdvdGlhdGlvbiBSZW1vdGUgRW5kIENhcGFiaWxpdHkgUmVnaXN0ZXIKI2RlZmluZSBQSFlfUk1UX1JFRyAgICAgICAgICAgICAweDA1Ci8vIFVzZXMgc2FtZSBiaXQgZGVmaW5pdGlvbnMgYXMgUEhZX0FEX1JFRwoKLy8gUEhZIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMQojZGVmaW5lIFBIWV9DRkcxX1JFRyAgICAgICAgICAgIDB4MTAKI2RlZmluZSBQSFlfQ0ZHMV9MTktESVMgICAgICAgICAweDgwMDAgIC8vIDE9UnggTGluayBEZXRlY3QgRnVuY3Rpb24gZGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMV9YTVRESVMgICAgICAgICAweDQwMDAgIC8vIDE9VFAgVHJhbnNtaXR0ZXIgRGlzYWJsZWQKI2RlZmluZSBQSFlfQ0ZHMV9YTVRQRE4gICAgICAgICAweDIwMDAgIC8vIDE9VFAgVHJhbnNtaXR0ZXIgUG93ZXJlZCBEb3duCiNkZWZpbmUgUEhZX0NGRzFfQllQU0NSICAgICAgICAgMHgwNDAwICAvLyAxPUJ5cGFzcyBzY3JhbWJsZXIvZGVzY3JhbWJsZXIKI2RlZmluZSBQSFlfQ0ZHMV9VTlNDRFMgICAgICAgICAweDAyMDAgIC8vIDE9VW5zY3JhbWJsZSBJZGxlIFJlY2VwdGlvbiBEaXNhYmxlCiNkZWZpbmUgUEhZX0NGRzFfRVFMWlIgICAgICAgICAgMHgwMTAwICAvLyAxPVJ4IEVxdWFsaXplciBEaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcxX0NBQkxFICAgICAgICAgIDB4MDA4MCAgLy8gMT1TVFAoMTUwb2htKSwgMD1VVFAoMTAwb2htKQojZGVmaW5lIFBIWV9DRkcxX1JMVkwwICAgICAgICAgIDB4MDA0MCAgLy8gMT1SeCBTcXVlbGNoIGxldmVsIHJlZHVjZWQgYnkgNC41ZGIKI2RlZmluZSBQSFlfQ0ZHMV9UTFZMX1NISUZUICAgICAyICAgICAgIC8vIFRyYW5zbWl0IE91dHB1dCBMZXZlbCBBZGp1c3QKI2RlZmluZSBQSFlfQ0ZHMV9UTFZMX01BU0sgICAgICAweDAwM0MKI2RlZmluZSBQSFlfQ0ZHMV9UUkZfTUFTSyAgICAgICAweDAwMDMgIC8vIFRyYW5zbWl0dGVyIFJpc2UvRmFsbCB0aW1lCgoKLy8gUEhZIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMgojZGVmaW5lIFBIWV9DRkcyX1JFRyAgICAgICAgICAgIDB4MTEKI2RlZmluZSBQSFlfQ0ZHMl9BUE9MRElTICAgICAgICAweDAwMjAgIC8vIDE9QXV0byBQb2xhcml0eSBDb3JyZWN0aW9uIGRpc2FibGVkCiNkZWZpbmUgUEhZX0NGRzJfSkFCRElTICAgICAgICAgMHgwMDEwICAvLyAxPUphYmJlciBkaXNhYmxlZAojZGVmaW5lIFBIWV9DRkcyX01SRUcgICAgICAgICAgIDB4MDAwOCAgLy8gMT1NdWx0aXBsZSByZWdpc3RlciBhY2Nlc3MgKE1JSSBtZ3QpCiNkZWZpbmUgUEhZX0NGRzJfSU5UTURJTyAgICAgICAgMHgwMDA0ICAvLyAxPUludGVycnVwdCBzaWduYWxlZCB3aXRoIE1ESU8gcHVsc2VvCgovLyBQSFkgU3RhdHVzIE91dHB1dCAoYW5kIEludGVycnVwdCBzdGF0dXMpIFJlZ2lzdGVyCiNkZWZpbmUgUEhZX0lOVF9SRUcgICAgICAgICAgICAgMHgxMiAgICAvLyBTdGF0dXMgT3V0cHV0IChJbnRlcnJ1cHQgU3RhdHVzKQojZGVmaW5lIFBIWV9JTlRfSU5UICAgICAgICAgICAgIDB4ODAwMCAgLy8gMT1iaXRzIGhhdmUgY2hhbmdlZCBzaW5jZSBsYXN0IHJlYWQKI2RlZmluZSBQSFlfSU5UX0xOS0ZBSUwgICAgICAgICAweDQwMDAgIC8vIDE9TGluayBOb3QgZGV0ZWN0ZWQKI2RlZmluZSBQSFlfSU5UX0xPU1NTWU5DICAgICAgICAweDIwMDAgIC8vIDE9RGVzY3JhbWJsZXIgaGFzIGxvc3Qgc3luYwojZGVmaW5lIFBIWV9JTlRfQ1dSRCAgICAgICAgICAgIDB4MTAwMCAgLy8gMT1JbnZhbGlkIDRCNUIgY29kZSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfU1NEICAgICAgICAgICAgIDB4MDgwMCAgLy8gMT1ObyBTdGFydCBPZiBTdHJlYW0gZGV0ZWN0ZWQgb24gcngKI2RlZmluZSBQSFlfSU5UX0VTRCAgICAgICAgICAgICAweDA0MDAgIC8vIDE9Tm8gRW5kIE9mIFN0cmVhbSBkZXRlY3RlZCBvbiByeAojZGVmaW5lIFBIWV9JTlRfUlBPTCAgICAgICAgICAgIDB4MDIwMCAgLy8gMT1SZXZlcnNlIFBvbGFyaXR5IGRldGVjdGVkCiNkZWZpbmUgUEhZX0lOVF9KQUIgICAgICAgICAgICAgMHgwMTAwICAvLyAxPUphYmJlciBkZXRlY3RlZAojZGVmaW5lIFBIWV9JTlRfU1BEREVUICAgICAgICAgIDB4MDA4MCAgLy8gMT0xMDBCYXNlLVRYIG1vZGUsIDA9MTBCYXNlLVQgbW9kZQojZGVmaW5lIFBIWV9JTlRfRFBMWERFVCAgICAgICAgIDB4MDA0MCAgLy8gMT1EZXZpY2UgaW4gRnVsbCBEdXBsZXgKCi8vIFBIWSBJbnRlcnJ1cHQvU3RhdHVzIE1hc2sgUmVnaXN0ZXIKI2RlZmluZSBQSFlfTUFTS19SRUcgICAgICAgICAgICAweDEzICAgIC8vIEludGVycnVwdCBNYXNrCi8vIFVzZXMgdGhlIHNhbWUgYml0IGRlZmluaXRpb25zIGFzIFBIWV9JTlRfUkVHCgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqICBJIGRlZmluZSBzb21lIG1hY3JvcyB0byBtYWtlIGl0IGVhc2llciB0byBkbyBzb21ld2hhdCBjb21tb24KICogb3Igc2xpZ2h0bHkgY29tcGxpY2F0ZWQsIHJlcGVhdGVkIHRhc2tzLgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyogc2VsZWN0IGEgcmVnaXN0ZXIgYmFuaywgMCB0byAzICAqLwoKI2RlZmluZSBTTUNfU0VMRUNUX0JBTksoeCwgeSkgeyBfb3V0dyggeSwgeCArIEJBTktfU0VMRUNUICk7IH0KCi8qIGRlZmluZSBhIHNtYWxsIGRlbGF5IGZvciB0aGUgcmVzZXQgKi8KI2RlZmluZSBTTUNfREVMQVkoeCkgeyBpbncoIHggKyBSQ1IgKTtcCgkJCWludyggeCArIFJDUiApO1wKCQkJaW53KCB4ICsgUkNSICk7IH0KCgojZW5kaWYJLyogX1NNQ185MDAwX0hfICovCgo=