I2lmbmRlZiBfTElORV9UU0VUX0gNCiNkZWZpbmUgX0xJTkVfVFNFVF9IDQoNCi8qKioqKioqKioqKioqKioqKioqKrLiytTP7rao0uUqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiNkZWZpbmUgVElfQmF0dGVyeVZvbHQJICAgICAgMHgxICAvKrLiytRTTEMgsOW21NPDu6fP37XEwKG157Xn0bm089Cht7S8q9DUKi8NCiNkZWZpbmUgVElfUmluZ1ZvbHQJICAgICAgICAgIDB4MiAgLyqy4srUU0xDILDlttTTw7uny83B5cH3yse38dX9s6O8sMHlwfe159G5tPPQoaOoILfl1rWhsyovDQojZGVmaW5lIFRJX1B1bHNlUmVjdiAgICAgICAgICAweDMgIC8qsuLK1FNMQyCw5b3TytXC9rPlu7C7+ijEo8TiKbeiusW1xMfpv/YqLw0KI2RlZmluZSBUSV9EVE1GUmVjdiAgICAgICAgICAgMHg0ICAvKrLiytRTTEMgsOW908rVRFRNRruwu/ooxKPE4im3orrFtcTH6b/2Ki8NCiNkZWZpbmUgVElfU2VuZFRvbmUJICAgICAgICAgIDB4NSAgLyqyprrF0vSjrLvYweXS9KOs07XI+9L0vLDDptL0vOyy4iovDQojZGVmaW5lIFRJX1NlbmRIb3dsCSAgICAgICAgICAweDYgIC8qttTTw7uny82037nS0vQqLw0KI2RlZmluZSBUSV9Mb29wQ2lyY3VpdEFuZFJlcyAgMHg3ICAvKs3iz9+7t8K3tefB97ywu7fCt7Xn1+iy4srUKi8NCiNkZWZpbmUgVElfUHVsc2VEaWFsCSAgICAgIDB4OCAgLyqy4srU08O7p7uwu/rC9rPlt6K6xbXExNzBpiovDQojZGVmaW5lIFRJX0RUTUZEaWFsCSAgICAgICAgICAweDkgIC8qsuLK1NPDu6e7sLv6tcREVE1Gt6K6xdLUvLDC9rPlt6K6xbXEx+m/9iovDQojZGVmaW5lIFRJX1Jpbmd0b1VzZXIJICAgICAgMHhBICAvKrbU08O7p7uwu/rLzcHlwfcqLw0KI2RlZmluZSBUSV9MaW5lVm9sdAkgICAgICAgICAgMHhCICAvKs3iz9/Iq7Xn0bmy4srUKi8NCiNkZWZpbmUgVElfTGluZVJlcwkgICAgICAgICAgMHhDICAvKs3iz9/Iq7741LW159fosuLK1CovDQojZGVmaW5lIFRJX0xpbmVDYXAJICAgICAgICAgIDB4RCAgLyrN4s/fyKu158jdsuLK1CovDQoNCiNkZWZpbmUgVElfSW5zZXJ0CSAgICAgICAgICAweEYgICAvKtPr08O7p82ou7AqLw0KDQovKklOVkFMSUQgVEVTVCBJVEVNKi8NCiNkZWZpbmUgVElfSG9vawkJCQkgMHgxMCAgLyqy4srU08O7p9WqudK7+te0zKwqLw0KDQojZGVmaW5lIFRJX1ZBQgkJCQkgMHgxMSAgIC8qzeLP30EtQrzktefRubLiytQqLw0KI2RlZmluZSBUSV9WQUcJCQkJIDB4MTIgICAvKs3iz99BLUdORCC85LXn0bmy4srUKi8NCiNkZWZpbmUgVElfVkJHCQkJCSAweDEzICAgLyrN4s/fQi1HTkS85LXn0bmy4srUKi8NCiNkZWZpbmUgVElfUkFCCQkJCSAweDE0ICAgLyrN4s/fQS1CILzkvvjUtbXn1+iy4srUKi8NCiNkZWZpbmUgVElfUkFHCQkJCSAweDE1ICAgLyrN4s/fQS1HTkS85L741LW159fosuLK1CovDQojZGVmaW5lIFRJX1JCRwkJCQkgMHgxNiAgIC8qzeLP30ItR05EILzkvvjUtbXn1+iy4srUKi8NCiNkZWZpbmUgVElfQ0FCCQkJCSAweDE3ICAgLyrN4s/fQS1CvOS158jdsuLK1CovDQojZGVmaW5lIFRJX0NBRwkJCQkgMHgxOCAgIC8qzeLP30EtR05EvOS158jdsuLK1CovDQojZGVmaW5lIFRJX0NCRwkJCQkgMHgxOSAgIC8qzeLP30ItR05EvOS158jdsuLK1CovDQojZGVmaW5lIFRJX0ludmVyc2VCYXR0ICAgICAgIDB4MWEgICAvKiDOxLW11tDKx7LixNrP37vYwre158H3suLK1CCjv6O/o7+jvyovDQojZGVmaW5lIFRJX0luTG9vcEN1cnJlbnQgICAgIDB4MUIgICAvKiDE2s/fu9jCt7Xnwfey4srUKi8NCiNkZWZpbmUgVElfSVNETkxvb3AJICAgICAgICAgMHgxQyAgIC8qIGlzZG4gbG9vcCBUZXN0Ki8NCiNkZWZpbmUgVElfT3V0c2lkZTEyCSAgICAgMHgxRCAgIC8qIM3iz98xMs/usuLK1CovDQojZGVmaW5lIFRJX1JFTiAgICAgIAkgICAgIDB4MWUgICAvKiAgweXB98r9ICovDQojZGVmaW5lIFRJX0xpbmVDb25uZWN0ICAgIDB4MWYgICAvKiAgz9/Ct8GsvdPQ1LLiytQqLw0KDQojZGVmaW5lIFRJX0xpbmVSZXNfcmV2ZXJzZSAgIDB4MjAgICAvKre0vKvQ1L741LW159fosuLK1CovDQoNCiNkZWZpbmUgVElfU2ltQ2FsbGVyICAgICAgICAgMHgyNyAgIC8qxKPE4tb3vdAqLw0KI2RlZmluZSBUSV9TaW1DYWxsZWUgICAgICAgICAweDI4ICAgLyrEo8Tisbu90CovDQojZGVmaW5lIFRJX0R1YWwgICAgICAgICAgICAgIDB4MjkgICAvKjQxOsurz/LCt9PJICovDQoNCiNkZWZpbmUgVElfTGVha0N1cnJlbnQgICAgICAgMHgzMCAvKjQ4OsKptee158H3Ki8gDQojZGVmaW5lIFRJX091dHNpZGVOb2lzZSAgICAgIDB4MzEgLyo0OTrN4s/f1OvJ+SAqLw0KI2RlZmluZSBUSV9TaW11bGF0ZURpYWwgICAgICAweDMzIC8qNTE6xKPE4rKmyOsqLw0KI2RlZmluZSBUSV9Nb25pdG9yICAgICAgICAgICAweDM0IC8qNTI6uN/X6LzgzP0qLw0KI2RlZmluZSBUSV9UYWxrV2l0aFVzZXIgICAgICAweDM1IC8qNTM60+vTw7unzai7sCovDQojZGVmaW5lIFRJX1BvbGFyaXR5UmV2ZXJzYWwgIDB4MzYgLyo1NDq3tLyr0NSy4srUKi8NCg0KI2RlZmluZSBST0hfVEVTVCAgICAgICAgICAgICAweDM3ICAvKjU1IDogUmVjZWl2ZXIgT2ZmLUhvb2sgaW5kaWNhdGlvbiAqLw0KDQojZGVmaW5lIFRJX0NoZWNrQm9hcmQJICAgICAweEZGICAgLyqw5c67vOyy6cP8we4qLw0KI2RlZmluZSBUSV9TZWxmVGVzdCAgICAgICAgICAweEZFICAgLyrX1LLiKi8NCg0KLyoqKioqKioqKioqKioqKioqKioqKioqKsP8we7X1ioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KI2RlZmluZSAgICAgICAgIENNRF9XUklURV9TVEFSVCAgICAgICAgICAgMHgwMQ0KI2RlZmluZSAgICAgICAgIENNRF9SRUFEX1NUQVRFICAgICAgICAgICAgMHgwMg0KI2RlZmluZSAgICAgICAgIENNRF9XUklURV9BQk9SVCAgICAgICAgICAgMHgwMw0KI2RlZmluZSAgICAgICAgIENNRF9SRUFEX1JFU1VMVCAgICAgICAgICAgMHgwNA0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKrLiytTXtMysKioqKioqKioqKioqKioqKioqKioqKioqKiovDQojZGVmaW5lICAgICAgICAgVEVTVElORyAgICAgICAgICAgICAgICAgICAweDAxDQojZGVmaW5lICAgICAgICAgVEVTVF9TVUNDICAgICAgICAgICAgICAgICAweDAyDQojZGVmaW5lICAgICAgICAgVEVTVF9FUlJPUiAgICAgICAgICAgICAgICAweDAzDQoNCiNkZWZpbmUgICAgICAgICBOT1RfVEVTVCAgICAgICAgICAgICAgICAgIDB4RkYNCg0KI2RlZmluZSAgICAgICAgIE1BWF9USU1PVVQgICAgICAgICAgICAgICAgMTIwMDAgICAgIC8qIDIgbWluICovDQovKioqKioqKioqKioqKioqKioqKioqKioqtO3O87HgusUqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQp0eXBlZGVmIGVudW17DQogICAgTk9fRVJST1IgPSAwLA0KICAgIEVSUl9VTktPTlcgLA0KICAgIFRFU1RJVEVNX1RJTUVPVkVSLCAgICAgICAgIC8qIFRpbWUgb3V0ISovDQogICAgQ09NTUFORF9FUlJfTk9UTElORSwgICAgICAgLyogTm8gYXZhaWxhYmxlIHRlc3RpbmcgbGluZSEgKi8gIA0KICAgIENPTU1BTkRfRVJSX05PVEVTVF9VTklULCAgIC8qIE5vIGF2YWlsYWJsZSB0ZXN0aW5nIGRhdGEgYnVmZmVyISAqLw0KICAgIEFTU0lHTl9EQVRBX0VSUiwgICAgICAgICAgIC8qIERhdGEgYXNzaWdubWVudCBmYWlsZWQhKi8gICAgICAgIA0KICAgIFRFU1RJVEVNX0ZBSUwsICAgICAgICAgICAgIC8qIFRlc3RpbmcgZmFpbGVkISovICAgICAgICAgIA0KICAgIENPTU1BTkRfRVJSX1VTRVJfVVNFRCwgICAgIC8qIFRoZSB1c2VyIGNhcmQgaXMgaW4gdGVzdGluZyBwcm9jZXNzISovICANCiAgICBVTkZJTkRfVEVTVF9SRUNPUkQsICAgICAgICAvKiBObyBhdmFpbGFibGUgdGVzdGluZyBjYXJkISovICAgICANCiAgICBEQVRBQkFTRV9GQUlMLCAgICAgICAgICAgICAvKiBEYXRhYmFzZSBhY2Nlc3NpbmcgZmFpbGVkISovICAgICAgICAgIA0KICAgIEFMQ19PRkZMSU5FLCAgICAgICAgICAgICAgIC8qIFRoZSB1c2VyIGNhcmQgaXMgb2ZmbGluZSEqLyAgICAgICAgICAgIA0KICAgIFVTRVJfQlVTWSwgICAgICAgICAgICAgICAgIC8qIFVzZXIgaXMgYnVzeSEqLwkJCQkNCiAgICBCT0FSRF9BQk5PUk1BTCwgICAgICAgICAgICAvKiBCb2FyZCBpcyBhYm5vcm1hbCEqLw0KICAgIFRFU1RfVVNFUl9CVVNZLCAgICAgICAgICAgIC8qIFVzZXIgaXMgYnVzeSEqLw0KICAgIFVTRVJfSVNfT05IT09LLCAgICAgICAgICAgIC8qIFVzZXIgaXMgb25ob29rIHN0YXRlISovDQogICAgVVNFUl9JU19PRkZIT09LLCAgICAgICAgICAgLyogVXNlciBpcyBvZmZob29rIHN0YXRlISovDQogICAgQVJHU19FUlJPUiAgICAsICAgICAgICAgICAgLyogVGVzdGluZyBlcnJvciwgcGxlYXNlIGNoZWNrIHRoZSB1c2VyIGxpbmUgc3RhdGUhKi8NCiAgICBVU0VSX0xJTkVfUkVTLCAgICAgICAgICAgICAvKiBVc2VyIGxpbmUgaXMgcmVzaXN0aXZlIGxvb3AsIG1heWJlIHNob3J0IGNpcmN1aXQhKi8NCiAgICBSRU5fR1JFQVRFUiwgICAgICAgICAgICAgICAvKiBSRU4gaXMgZ3JlYXRlciB0aGFuIDUwMDAgbWlsbGksY2hlY2sgdGhlIHVzZXIgbGluZS4qLw0KICAgIFJFTl9MT1dFUiwgICAgICAgICAgICAgICAgIC8qIFJFTiBpcyBsb3dlciB0aGFuIDE3NSBtaWxsaSxjaGVjayB0aGUgdXNlciBsaW5lLiovDQogICAgUkVTX0xPV0VSLCAgICAgICAgICAgICAgICAgLyogVGhlIERDIHJlc2lzdGFuY2UgbWVhc3VyZWQgZnJvbSB0aGUgcnRnL3JyZy9ycnQgbGVhZCB0byBncm91bmQgaXMgbGVzcyB0aGFuIDE1MGsuKi8NCiAgICBSRVNVTFRfT0MsICAgICAgICAgICAgICAgICAvKiBUaGUgcmVzdWx0IGlzIG92ZXIgdGhlIG91c2lkZSB0aGUgdGhlIHNwZWNpZmllZCBjcml0ZXJpYS5DaGVjayB0aGUgdXNlciBsaW5lLiovDQogICAgTk9fUEhPTkUsICAgICAgICAgICAgICAgICAgLyogTm8gc2lnbmFsIGJldHdlZW4gdGlwIGFuZCByaW5nLCBtYXliZSB0aGVyZSBpcyBubyBwaG9uZSEqLyAgIA0KICAgIE5PVF9TVVJQUE9SVCAgICAgICAgICAgICAgIC8qIFRoZSB0ZXN0IGl0ZW0gaXMgbm90IHN1cnBwb3J0ZWQgISovIA0KfUVyck1zZ190Ow0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICB1bnNpZ25lZCBjaGFyIHBvcnQ7ICAgICAgICAgICAgIC8qILbLv9qx4LrFICovDQogICAgdW5zaWduZWQgY2hhciBwb3J0X3R5cGU7ICAgICAgICAvKiC2y7/awODQzSAqLw0KICAgIHVuc2lnbmVkIGNoYXIgaXRlbTsgICAgICAgICAgICAgLyogsuLK1M/useC6xaOsvPvJz8PmsuLK1M/utqjS5SAqLw0KICAgIHVuc2lnbmVkIGNoYXIgb2JsaWdhdGU7ICAgICAgICAgLyogyse38ce/1say4srUIDCjurK7x7/WxqO7MaO6x7/WxiovDQogICAgbG9uZyAgICBudW07ICAgICAgICAgICAgICAgICAgICAvKiCy4srU0PK6xSAqLw0KICAgIHVuc2lnbmVkIGNoYXIgb21jaV9pdGVtOyAgICAgICAvKiDTw9PatuDP7rLiytTW0LzHwrxvbWNpsuLK1M/useC6xSAqLw0KICAgIHVuc2lnbmVkIGNoYXIgY21kOyAgICAgICAgICAgICAgLyogsuLK1Mb0tq+6zbbB17TMrDoxLHdyaXRlOzIscmVhZDszLGFib3J0LiAqLw0KICAgIHVuc2lnbmVkIGNoYXIgZmxnOyAgICAgICAgICAgICAgLyogsuLK1M3qs8mx6rzHOrPJuaa78tXfyqew3CAqLyAgICANCn1Xcml0ZUNtZF90Ow0KDQp0eXBlZGVmIHN0cnVjdHsNCiAgICB1bnNpZ25lZCBjaGFyIHBvcnQ7ICAgICAgICAgICAgIC8qILbLv9qx4LrFICovDQogICAgdW5zaWduZWQgY2hhciBwb3J0X3R5cGU7ICAgICAgICAvKiC2y7/awODQzSAqLw0KICAgIHVuc2lnbmVkIGNoYXIgaXRlbTsgICAgICAgICAgICAgLyogsuLK1M/useC6xSAqLw0KICAgIHVuc2lnbmVkIGNoYXIgb2JsaWdhdGU7ICAgICAgICAgLyogyse38ce/1say4srUICovDQogICAgbG9uZyAgICBudW07ICAgICAgICAgICAgICAgICAgICAvKiCy4srU0PK6xSAqLw0KICAgIHVuc2lnbmVkIGNoYXIgb21jaV9pdGVtOyAgICAgICAvKiDTw9PatuDP7rLiytTW0LzHwrxvbWNpsuLK1M/useC6xSAqLw0KICAgIHVuc2lnbmVkIGNoYXIgZmxnOyAgICAgICAgICAgICAgLyogsuLK1M3qs8mx6rzHOrPJuaa78tXfyqew3CAqLw0KICAgIHVuc2lnbmVkIGNoYXIgdXNlcl9mbGc7ICAgICAgICAgLyog08O7p8rHt/HU2s/fICovDQogICAgRXJyTXNnX3QgICAgIGVycl9udW07ICAgICAgICAgICAvKiCy4srUyqew3LrztcS07c7zseC6xSyy4srUs8m5ptTyzt7S4tLlICovDQogICAgDQogICAgLyogVElfTGluZVZvbHQgKi8NCiAgICBzaWduZWQgbG9uZyAgIHZhY190cjsgICAgICAgICAgICAgICAgIC8qIL27wfe159G5o7pUaXAtUmluZyAqLw0KICAgIHNpZ25lZCBsb25nICAgdmFjX3RnOyAgICAgICAgICAgICAgICAgLyogvbvB97Xn0bmjulRpcC1HbmQgKi8NCiAgICBzaWduZWQgbG9uZyAgIHZhY19yZzsgICAgICAgICAgICAgICAgIC8qIL27wfe159G5o7pSaW5nLUduZCAqLw0KICAgIHNpZ25lZCBsb25nICAgdmRjX3RyOyAgICAgICAgICAgICAgICAgLyog1rHB97Xn0bmjulRpcC1SaW5nICovDQogICAgc2lnbmVkIGxvbmcgICB2ZGNfdGc7ICAgICAgICAgICAgICAgICAvKiDWscH3tefRuaO6VGlwLUduZCAqLw0KICAgIHNpZ25lZCBsb25nICAgdmRjX3JnOyAgICAgICAgICAgICAgICAgLyog1rHB97Xn0bmjulJpbmctR25kICovICANCiAgICANCiAgICAvKiBUSV9MaW5lUmVzICovDQogICAgc2lnbmVkIGxvbmcgICByZXNfdHI7ICAgICAgICAgICAgICAgICAvKiC159foo7pUaXAtUmluZyAqLw0KICAgIHNpZ25lZCBsb25nICAgcmVzX3RnOyAgICAgICAgICAgICAgICAgLyogtefX6KO6VGlwLUduZCAqLw0KICAgIHNpZ25lZCBsb25nICAgcmVzX3JnOyAgICAgICAgICAgICAgICAgLyogtefX6KO6UmluZy1HbmQgKi8NCiAgICANCiAgICAvKiBUSV9MaW5lQ2FwICovDQogICAgc2lnbmVkIGxvbmcgICBjYXBfdHI7ICAgICAgICAgICAgICAgICAvKiC158jdo7pUaXAtUmluZyAqLw0KICAgIHNpZ25lZCBsb25nICAgY2FwX3RnOyAgICAgICAgICAgICAgICAgLyogtefI3aO6VGlwLUduZCAqLw0KICAgIHNpZ25lZCBsb25nICAgY2FwX3JnOyAgICAgICAgICAgICAgICAgLyogtefI3aO6UmluZy1HbmQgKi8gICANCiAgICANCiAgICAvKiBUSV9SaW5nVm9sdCAqLw0KICAgIHNpZ25lZCBsb25nICAgcmluZ192b2w7ICAgICAgICAgICAgICAgLyog1fHB5bXn0bkgKi8NCiAgICBzaWduZWQgbG9uZyAgIEh6OyAgICAgICAgICAgICAgICAgICAgIC8qINXxweXGtcLKICovDQogICAgDQogICAgLyogVElfUkVOICovDQogICAgc2lnbmVkIGxvbmcgICByZW47ICAgICAgICAgICAgICAgICAgICAvKiDB5cH3yv0gKi8gDQogICAgDQogICAgLyogVElfSW5Mb29wQ3VycmVudCAqLw0KICAgIHNpZ25lZCBsb25nICAgbG9vcF9jdXJlbnQ7ICAgICAgICAgICAgLyogu9jCt7XnwfcgKi8gDQogICAgc2lnbmVkIGxvbmcgICBsb29wX3JlczsgICAgICAgICAgICAgICAvKiC72MK3tefX6CAqLyANCiAgICANCiAgICAvKiBUSV9CYXR0ZXJ5Vm9sdCAqLw0KICAgIHNpZ25lZCBsb25nICAgYmF0dGFyeTsgICAgICAgICAgICAgICAgLyogwKG157Xn0bkgKi8NCn1UZXN0UmVzdWx0X3Q7DQoNCiNlbmRpZg0K