I2lmbmRlZiBaU1BUUkFDRV9IXw0KI2RlZmluZSBaU1BUUkFDRV9IXw0KDQojZGVmaW5lIFpDQVRfWlBTX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgICgweDAwMDEwMDAwVUw+PkNQVV9TSElGVCkNCg0KI2lmbmRlZiBERFJfQkFTRV9BRERSX1RPT0xfSUNQDQpleHRlcm4gdW5zaWduZWQgbG9uZyBaQ0FUX1BTXzJfUEhZX0JVRkZFUl9CQVNFOw0KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgWkNBVF9QSFlfMl9QU19CVUZGRVJfQkFTRTsNCiNlbmRpZg0KDQovLy8vUEhZLVpDQVQNCiNkZWZpbmUgWkNBVF9QSFlfMl9QU19CVUZGRVJfU0laRSAgICAgICAgICAgKDB4MDAwNjAwMDBVTD4+Q1BVX1NISUZUKQ0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9PUkRFUiAgICAgICAgICAgICAoMTQgLSBDUFVfU0hJRlQpICAgICAgICAgICAgICAvKiAxNktCICovDQojZGVmaW5lIFpDQVRfUEhZX0xPR19VTklUX1NJWkUgICAgICAgICAgICAgICgxVUw8PFpDQVRfUEhZX0xPR19VTklUX09SREVSKQ0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9OVU0gICAgICAgICAgICAgICAoWkNBVF9QSFlfMl9QU19CVUZGRVJfU0laRSA+PiBaQ0FUX1BIWV9MT0dfVU5JVF9PUkRFUikNCg0KI2RlZmluZSBaQ0FUX1BIWV9TVERfTE9HX09GRlNFVCAgICAgICAgICAgICAoMjhVTD4+Q1BVX1NISUZUKSAvKiBzaXplb2YoVF9DT01NX1RZUEUgKyBUX1pDQVRfSEVBREVSKSAqLw0KI2RlZmluZSBaQ0FUX1BIWV9QUlRfTE9HX09GRlNFVCAgICAgICAgICAgICAoNDBVTD4+Q1BVX1NISUZUKSAvKiBzaXplb2YoVF9DT01NX1RZUEUgKyBUX1pDQVRfSEVBREVSICsgVF9aQ0FUX0RCR19IRUFERVIpICovDQoNCiNkZWZpbmUgTE9HX1REICAoMSkNCiNkZWZpbmUgTE9HX0xURSAoMikNCiNkZWZpbmUgTE9HX1cgICAoMykNCiNkZWZpbmUgTE9HX1NJRyAoNCkNCg0KdHlwZWRlZiBzdHJ1Y3QNCnsNCiAgICB1bnNpZ25lZCBsb25nIHR5cGU7DQogICAgdW5zaWduZWQgbG9uZyBsZW47DQp9IFRfWkNBVF9QaHlfTG9nX1VuaXRfSGVhZGVyOw0KDQojZGVmaW5lIFpDQVRfUEhZX0xPR19VTklUX0hFQUQgICAgICAgICAgICAgKElSQU1fQkFTRV9BRERSX1pDQVRfUEhZX0xPRykNCiNkZWZpbmUgWkNBVF9QSFlfTE9HX1VOSVRfVEFJTCAgICAgICAgICAgICAoWkNBVF9QSFlfTE9HX1VOSVRfSEVBRCArICg0Pj5DUFVfU0hJRlQpKQ0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfRnJlZV9VTklUX0JVRiAgICAgICAgIChaQ0FUX1BIWV9MT0dfVU5JVF9UQUlMICsgKDQ+PkNQVV9TSElGVCkpDQojZGVmaW5lIFpDQVRfUEhZX0xPR19GcmVlX1VOSVRfTEVOICAgICAgICAgKDk2Pj5DUFVfU0hJRlQpIC8qICgyNCAqIDQpQiA9IDM4NEsqLyANCiNkZWZpbmUgWkNBVF9QSFlfTE9HX09GRiAgICAgICAgICAgICAgICAgICAoWkNBVF9QSFlfTE9HX1VOSVRfSEVBRCArICgxNj4+Q1BVX1NISUZUKSArIFpDQVRfUEhZX0xPR19GcmVlX1VOSVRfTEVOKSAvKiC24NSkwfTByzjX1r3aICovDQoNCi8vLy9QSFk8LT5QUyByaW5nYnVmZmVyKFREKQ0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFICAgICAgICAgICAoMHgyMDBVTD4+Q1BVX1NISUZUKQ0KI2RlZmluZSBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9MRU4gICAgICAgICAgICAoWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSAtICg0ID4+IENQVV9TSElGVCkpDQoNCiNkZWZpbmUgWkNBVF9URF9MT0dfQ09OVFJPTF9CQVNFX0FERFIgICAgICAoWkNBVF9QU18yX1BIWV9CVUZGRVJfQkFTRSkNCiNkZWZpbmUgWkNBVF9URF9MT0dfQ09OVFJPTF9XUE9JTlRFUiAgICAgICAoWkNBVF9URF9MT0dfQ09OVFJPTF9CQVNFX0FERFIpIA0KI2RlZmluZSBaQ0FUX1REX0xPR19DT05UUk9MX1JQT0lOVEVSICAgICAgIChaQ0FUX1REX0xPR19DT05UUk9MX1dQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCiNkZWZpbmUgWkNBVF9URF9MT0dfQ09OVFJPTF9DT05URU5UICAgICAgICAoWkNBVF9URF9MT0dfQ09OVFJPTF9SUE9JTlRFUiArICgyID4+IENQVV9TSElGVCkpDQoNCi8vLy9QSFk8LT5QUyByaW5nYnVmZmVyKExURSkNCiNkZWZpbmUgWkNBVF9MVEVfTE9HX0NPTlRST0xfQkFTRV9BRERSICAgICAgKFpDQVRfVERfTE9HX0NPTlRST0xfQkFTRV9BRERSICsgWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSkNCiNkZWZpbmUgWkNBVF9MVEVfTE9HX0NPTlRST0xfV1BPSU5URVIgICAgICAgKFpDQVRfTFRFX0xPR19DT05UUk9MX0JBU0VfQUREUikgDQojZGVmaW5lIFpDQVRfTFRFX0xPR19DT05UUk9MX1JQT0lOVEVSICAgICAgIChaQ0FUX0xURV9MT0dfQ09OVFJPTF9XUE9JTlRFUiArICgyID4+IENQVV9TSElGVCkpDQojZGVmaW5lIFpDQVRfTFRFX0xPR19DT05UUk9MX0NPTlRFTlQgICAgICAgIChaQ0FUX0xURV9MT0dfQ09OVFJPTF9SUE9JTlRFUiArICgyID4+IENQVV9TSElGVCkpDQoNCi8vLy9QSFk8LT5QUyByaW5nYnVmZmVyKFcpDQojZGVmaW5lIFpDQVRfV19MT0dfQ09OVFJPTF9CQVNFX0FERFIgICAgICAoWkNBVF9MVEVfTE9HX0NPTlRST0xfQkFTRV9BRERSICsgWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSkNCiNkZWZpbmUgWkNBVF9XX0xPR19DT05UUk9MX1dQT0lOVEVSICAgICAgIChaQ0FUX1dfTE9HX0NPTlRST0xfQkFTRV9BRERSKSANCiNkZWZpbmUgWkNBVF9XX0xPR19DT05UUk9MX1JQT0lOVEVSICAgICAgIChaQ0FUX1dfTE9HX0NPTlRST0xfV1BPSU5URVIgKyAoMiA+PiBDUFVfU0hJRlQpKQ0KI2RlZmluZSBaQ0FUX1dfTE9HX0NPTlRST0xfQ09OVEVOVCAgICAgICAgKFpDQVRfV19MT0dfQ09OVFJPTF9SUE9JTlRFUiArICgyID4+IENQVV9TSElGVCkpDQoNCi8vLy9QSFk8LT5QUyByaW5nYnVmZmVyKFNJRykNCiNkZWZpbmUgWkNBVF9TSUdfTE9HX0NPTlRST0xfQkFTRV9BRERSICAgICAgKFpDQVRfV19MT0dfQ09OVFJPTF9CQVNFX0FERFIgKyBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFKQ0KI2RlZmluZSBaQ0FUX1NJR19MT0dfQ09OVFJPTF9XUE9JTlRFUiAgICAgICAoWkNBVF9TSUdfTE9HX0NPTlRST0xfQkFTRV9BRERSKSANCiNkZWZpbmUgWkNBVF9TSUdfTE9HX0NPTlRST0xfUlBPSU5URVIgICAgICAgKFpDQVRfU0lHX0xPR19DT05UUk9MX1dQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCiNkZWZpbmUgWkNBVF9TSUdfTE9HX0NPTlRST0xfQ09OVEVOVCAgICAgICAgKFpDQVRfU0lHX0xPR19DT05UUk9MX1JQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCg0KLy8vL1pDQVQtVEQNCiNkZWZpbmUgWkNBVF9URF9QU19UT19QSFlfQlVGRkVSX0JBU0VfQUREUiAgKFpDQVRfU0lHX0xPR19DT05UUk9MX0JBU0VfQUREUiArIFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUpDQojZGVmaW5lIFpDQVRfVERfUFNfVE9fUEhZX0JVRkZFUl9TSVpFICAgICAgICgweDAwMDAwMjAwVUw+PkNQVV9TSElGVCkNCg0KLy8vL1pDQVQtTFRFDQojZGVmaW5lIFpDQVRfTFRFX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSIChaQ0FUX1REX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSICsgWkNBVF9URF9QU19UT19QSFlfQlVGRkVSX1NJWkUpDQojZGVmaW5lIFpDQVRfTFRFX1BTX1RPX1BIWV9CVUZGRVJfU0laRSAgICAgICgweDAwMDAwMjAwVUw+PkNQVV9TSElGVCkNCg0KLy8vL1pDQVQtV0NETUENCiNkZWZpbmUgWkNBVF9XX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSICAgKFpDQVRfTFRFX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSICsgWkNBVF9MVEVfUFNfVE9fUEhZX0JVRkZFUl9TSVpFKQ0KI2RlZmluZSBaQ0FUX1dfUFNfVE9fUEhZX0JVRkZFUl9TSVpFICAgICAgICAoMHgwMDAwMDIwMFVMPj5DUFVfU0hJRlQpDQoNCi8vLy9aQ0FULVNJRw0KI2RlZmluZSBaQ0FUX1NJR19QU19UT19QSFlfQlVGRkVSX0JBU0VfQUREUiAoWkNBVF9XX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSICsgWkNBVF9XX1BTX1RPX1BIWV9CVUZGRVJfU0laRSkNCiNkZWZpbmUgWkNBVF9TSUdfUFNfVE9fUEhZX0JVRkZFUl9TSVpFICAgICAgKDB4MDAwMDAyMDBVTD4+Q1BVX1NISUZUKQ0KDQojZGVmaW5lIFpDQVRfUFNfMl9QSFlfQlVGRkVSX1NJWkUgICAgICAgICAgIChaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFICsgWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSArIFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUgKyBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFICsgXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWkNBVF9URF9QU19UT19QSFlfQlVGRkVSX1NJWkUgKyBaQ0FUX0xURV9QU19UT19QSFlfQlVGRkVSX1NJWkUgKyBaQ0FUX1dfUFNfVE9fUEhZX0JVRkZFUl9TSVpFICsgWkNBVF9TSUdfUFNfVE9fUEhZX0JVRkZFUl9TSVpFKQ0KI2VuZGlmDQoNCg==