From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patchwork Subject: =?utf-8?q?=E2=9C=97_Fi=2ECI=2ECHECKPATCH=3A_warning_f?= =?utf-8?q?or_Introduce_memory_region_concept_=28including_device_local_me?= =?utf-8?b?bW9yeSkgKHJldjIp?= Date: Thu, 27 Jun 2019 21:36:59 -0000 Message-ID: <20190627213659.21378.43682@emeril.freedesktop.org> References: <20190627205633.1143-1-matthew.auld@intel.com> Reply-To: intel-gfx@lists.freedesktop.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190627205633.1143-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matthew Auld Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org PT0gU2VyaWVzIERldGFpbHMgPT0KClNlcmllczogSW50cm9kdWNlIG1lbW9yeSByZWdpb24gY29u Y2VwdCAoaW5jbHVkaW5nIGRldmljZSBsb2NhbCBtZW1vcnkpIChyZXYyKQpVUkwgICA6IGh0dHBz Oi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvNTY2ODMvClN0YXRlIDogd2Fybmlu ZwoKPT0gU3VtbWFyeSA9PQoKJCBkaW0gY2hlY2twYXRjaCBvcmlnaW4vZHJtLXRpcAo2ZjZlYjhh MjE0YTEgZHJtL2k5MTU6IGJ1ZGR5IGFsbG9jYXRvcgotOjI5OiBXQVJOSU5HOkZJTEVfUEFUSF9D SEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJT IG5lZWQgdXBkYXRpbmc/CiMyOTogCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgotOjI3ODogQ0hFQ0s6 UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50 aGVzaXMKIzI3ODogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9idWRkeS5jOjI0NToK K3ZvaWQgaTkxNV9idWRkeV9mcmVlX2xpc3Qoc3RydWN0IGk5MTVfYnVkZHlfbW0gKm1tLAorCQkJ ICAgICAgc3RydWN0IGxpc3RfaGVhZCAqb2JqZWN0cykKCi06NDM2OiBDSEVDSzpQQVJFTlRIRVNJ U19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojNDM2 OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2J1ZGR5LmM6NDAzOgorCWlmIChidWRk eSAmJiAoaTkxNV9idWRkeV9ibG9ja19mcmVlKGJsb2NrKSAmJgorCSAgICBpOTE1X2J1ZGR5X2Js b2NrX2ZyZWUoYnVkZHkpKSkKCi06NDY4OiBDSEVDSzpTUEFDSU5HOiBzcGFjZXMgcHJlZmVycmVk IGFyb3VuZCB0aGF0ICc8PCcgKGN0eDpWeFYpCiM0Njg6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfYnVkZHkuaDoxNjoKKyNkZWZpbmUgICBJOTE1X0JVRERZX0FMTE9DQVRFRCAoMTw8 MTApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgotOjQ2OTogQ0hFQ0s6U1BB Q0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnPDwnIChjdHg6VnhWKQojNDY5OiBG SUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2J1ZGR5Lmg6MTc6CisjZGVmaW5lICAgSTkx NV9CVUREWV9GUkVFCSAgICgyPDwxMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAJICAgICBe CgotOjQ3MDogQ0hFQ0s6U1BBQ0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnPDwn IChjdHg6VnhWKQojNDcwOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2J1ZGR5Lmg6 MTg6CisjZGVmaW5lICAgSTkxNV9CVUREWV9TUExJVAkgICAoMzw8MTApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIAkgICAgIF4KCnRvdGFsOiAwIGVycm9ycywgMSB3YXJuaW5ncywgNSBjaGVj a3MsIDEwMzAgbGluZXMgY2hlY2tlZAo5ZGQ0MzQzMzcxMGEgZHJtL2k5MTU6IGludHJvZHVjZSBp bnRlbF9tZW1vcnlfcmVnaW9uCi06NjU6IENIRUNLOkxJTkVfU1BBQ0lORzogUGxlYXNlIGRvbid0 IHVzZSBtdWx0aXBsZSBibGFuayBsaW5lcwojNjU6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jOjQ1MToKIAorCgotOjk1OiBFUlJPUjpDT0RFX0lO REVOVDogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiM5NTogRklM RTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmM6NDgxOgor XkleSSAgICAgICAgJm9iai0+bWVtb3J5X3JlZ2lvbi0+cmVnaW9uLnN0YXJ0KTskCgotOjE3OTog V0FSTklORzpGSUxFX1BBVEhfQ0hBTkdFUzogYWRkZWQsIG1vdmVkIG9yIGRlbGV0ZWQgZmlsZShz KSwgZG9lcyBNQUlOVEFJTkVSUyBuZWVkIHVwZGF0aW5nPwojMTc5OiAKbmV3IGZpbGUgbW9kZSAx MDA2NDQKCi06MTk2OiBDSEVDSzpCUkFDRVM6IEJsYW5rIGxpbmVzIGFyZW4ndCBuZWNlc3Nhcnkg YWZ0ZXIgYW4gb3BlbiBicmFjZSAneycKIzE5NjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbWVtb3J5X3JlZ2lvbi5jOjEzOgoreworCgotOjI3ODogV0FSTklORzpCTE9DS19DT01N RU5UX1NUWUxFOiBCbG9jayBjb21tZW50cyBzaG91bGQgYWxpZ24gdGhlICogb24gZWFjaCBsaW5l CiMyNzg6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYzo5 NToKKwkJICogY29hbGVzY2UgaWYgd2UgY2FuLgorCQkqLwoKLTo0Mzc6IFdBUk5JTkc6VFlQT19T UEVMTElORzogJ1VLTk9XTicgbWF5IGJlIG1pc3NwZWxsZWQgLSBwZXJoYXBzICdVTktOT1dOJz8K IzQzNzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oOjMz OgorCUlOVEVMX01FTU9SWV9VS05PV04sIC8qIFNob3VsZCBiZSBsYXN0ICovCgotOjQ0NjogQ0hF Q0s6TUFDUk9fQVJHX1BSRUNFREVOQ0U6IE1hY3JvIGFyZ3VtZW50ICdyJyBtYXkgYmUgYmV0dGVy IGFzICcociknIHRvIGF2b2lkIHByZWNlZGVuY2UgaXNzdWVzCiM0NDY6IEZJTEU6IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaDo0MjoKKyNkZWZpbmUgTUVNT1JZX1RZ UEVfRlJPTV9SRUdJT04ocikgKGlsb2cyKHIgPj4gSU5URUxfTUVNT1JZX1RZUEVfU0hJRlQpKQoK LTo0NDc6IENIRUNLOk1BQ1JPX0FSR19QUkVDRURFTkNFOiBNYWNybyBhcmd1bWVudCAncicgbWF5 IGJlIGJldHRlciBhcyAnKHIpJyB0byBhdm9pZCBwcmVjZWRlbmNlIGlzc3VlcwojNDQ3OiBGSUxF OiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmg6NDM6CisjZGVmaW5l IE1FTU9SWV9JTlNUQU5DRV9GUk9NX1JFR0lPTihyKSAoaWxvZzIociAmIDB4ZmZmZikpCgotOjQ2 MTogV0FSTklORzpGVU5DVElPTl9BUkdVTUVOVFM6IGZ1bmN0aW9uIGRlZmluaXRpb24gYXJndW1l bnQgJ3N0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uIConIHNob3VsZCBhbHNvIGhhdmUgYW4gaWRl bnRpZmllciBuYW1lCiM0NjE6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9y eV9yZWdpb24uaDo1NzoKKwlpbnQgKCppbml0KShzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAq KTsKCi06NDYyOiBXQVJOSU5HOkZVTkNUSU9OX0FSR1VNRU5UUzogZnVuY3Rpb24gZGVmaW5pdGlv biBhcmd1bWVudCAnc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKicgc2hvdWxkIGFsc28gaGF2 ZSBhbiBpZGVudGlmaWVyIG5hbWUKIzQ2MjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbWVtb3J5X3JlZ2lvbi5oOjU4OgorCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgaW50ZWxfbWVt b3J5X3JlZ2lvbiAqKTsKCi06NDY0OiBXQVJOSU5HOkZVTkNUSU9OX0FSR1VNRU5UUzogZnVuY3Rp b24gZGVmaW5pdGlvbiBhcmd1bWVudCAnc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKicgc2hv dWxkIGFsc28gaGF2ZSBhbiBpZGVudGlmaWVyIG5hbWUKIzQ2NDogRklMRTogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5oOjYwOgorCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICoKCi06NDY0OiBXQVJOSU5HOkZVTkNUSU9OX0FSR1VNRU5UUzogZnVuY3Rpb24gZGVm aW5pdGlvbiBhcmd1bWVudCAncmVzb3VyY2Vfc2l6ZV90JyBzaG91bGQgYWxzbyBoYXZlIGFuIGlk ZW50aWZpZXIgbmFtZQojNDY0OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1v cnlfcmVnaW9uLmg6NjA6CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgoKLTo0NjQ6IFdB Uk5JTkc6RlVOQ1RJT05fQVJHVU1FTlRTOiBmdW5jdGlvbiBkZWZpbml0aW9uIGFyZ3VtZW50ICd1 bnNpZ25lZCBpbnQnIHNob3VsZCBhbHNvIGhhdmUgYW4gaWRlbnRpZmllciBuYW1lCiM0NjQ6IEZJ TEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaDo2MDoKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCgotOjQ3OTogQ0hFQ0s6VU5DT01NRU5URURfREVGSU5J VElPTjogc3RydWN0IG11dGV4IGRlZmluaXRpb24gd2l0aG91dCBjb21tZW50CiM0Nzk6IEZJTEU6 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uaDo3NToKKwlzdHJ1Y3Qg bXV0ZXggbW1fbG9jazsKCi06NTkzOiBXQVJOSU5HOkVNQkVEREVEX0ZVTkNUSU9OX05BTUU6IFBy ZWZlciB1c2luZyAnIiVzLi4uIiwgX19mdW5jX18nIHRvIHVzaW5nICdpZ3RfbW9ja19maWxsJywg dGhpcyBmdW5jdGlvbidzIG5hbWUsIGluIGEgc3RyaW5nCiM1OTM6IEZJTEU6IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmM6Njc6CisJCQlwcl9lcnIo ImlndF9tb2NrX2ZpbGwgZmFpbGVkLCBzcGFjZSBzdGlsbCBsZWZ0IGluIHJlZ2lvblxuIik7Cgp0 b3RhbDogMSBlcnJvcnMsIDkgd2FybmluZ3MsIDUgY2hlY2tzLCA2NDkgbGluZXMgY2hlY2tlZApi MTk5MjM5NTA1ZTkgZHJtL2k5MTUvcmVnaW9uOiBzdXBwb3J0IGJhc2ljIGV2aWN0aW9uCjk3YzU2 MTk5Mjc5YSBkcm0vaTkxNS9yZWdpb246IHN1cHBvcnQgY29udGludW91cyBhbGxvY2F0aW9ucwot OjIyOiBDSEVDSzpTUEFDSU5HOiBzcGFjZXMgcHJlZmVycmVkIGFyb3VuZCB0aGF0ICc8PCcgKGN0 eDpWeFYpCiMyMjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dF90eXBlcy5oOjEzNzoKKyNkZWZpbmUgSTkxNV9CT19BTExPQ19DT05USUdVT1VTICgxPDwwKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCgp0b3RhbDogMCBlcnJvcnMsIDAg d2FybmluZ3MsIDEgY2hlY2tzLCAyMzggbGluZXMgY2hlY2tlZAo4OTZhYjZmOTUzYmIgZHJtL2k5 MTUvcmVnaW9uOiBzdXBwb3J0IHZvbGF0aWxlIG9iamVjdHMKLToyMzogQ0hFQ0s6U1BBQ0lORzog c3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnPDwnIChjdHg6VnhWKQojMjM6IEZJTEU6IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaDoxMzg6CisjZGVm aW5lIEk5MTVfQk9fQUxMT0NfVk9MQVRJTEUgICAoMTw8MSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgoKdG90YWw6IDAgZXJyb3JzLCAwIHdhcm5pbmdzLCAxIGNoZWNrcywg MTA4IGxpbmVzIGNoZWNrZWQKMTU4ZGNhYzk5ZDIzIGRybS9pOTE1OiBBZGQgbWVtb3J5IHJlZ2lv biBpbmZvcm1hdGlvbiB0byBkZXZpY2VfaW5mbwowNzMzNWM2Yzk2OGMgZHJtL2k5MTU6IHN1cHBv cnQgY3JlYXRpbmcgTE1FTSBvYmplY3RzCi06NTc6IFdBUk5JTkc6RklMRV9QQVRIX0NIQU5HRVM6 IGFkZGVkLCBtb3ZlZCBvciBkZWxldGVkIGZpbGUocyksIGRvZXMgTUFJTlRBSU5FUlMgbmVlZCB1 cGRhdGluZz8KIzU3OiAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKCnRvdGFsOiAwIGVycm9ycywgMSB3 YXJuaW5ncywgMCBjaGVja3MsIDE3MSBsaW5lcyBjaGVja2VkCjg5NGMyZGE5NDlhZCBkcm0vaTkx NTogc2V0dXAgaW8tbWFwcGluZyBmb3IgTE1FTQotOjc6IFdBUk5JTkc6Q09NTUlUX01FU1NBR0U6 IE1pc3NpbmcgY29tbWl0IGRlc2NyaXB0aW9uIC0gQWRkIGFuIGFwcHJvcHJpYXRlIG9uZQoKdG90 YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAwIGNoZWNrcywgMzUgbGluZXMgY2hlY2tlZAo4Nzg0 YmViOGQwY2QgZHJtL2k5MTUvbG1lbTogc3VwcG9ydCBrZXJuZWwgbWFwcGluZwotOjExMzogQ0hF Q0s6TElORV9TUEFDSU5HOiBQbGVhc2UgZG9uJ3QgdXNlIG11bHRpcGxlIGJsYW5rIGxpbmVzCiMx MTM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlZ2lvbl9sbWVtLmg6OToKIAor CgotOjE4NjogRVJST1I6Q09ERV9JTkRFTlQ6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3 aGVyZSBwb3NzaWJsZQojMTg2OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aW50ZWxfbWVtb3J5X3JlZ2lvbi5jOjQxNToKK15JXkleSSAgICAgICAgdmFsKTskCgotOjE4Njog Q0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4g cGFyZW50aGVzaXMKIzE4NjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lu dGVsX21lbW9yeV9yZWdpb24uYzo0MTU6CisJCQlwcl9lcnIoInZhZGRyWyV1XT0ldSwgdmFsPSV1 XG4iLCBkd29yZCwgdmFkZHJbZHdvcmRdLAorCQkJICAgICAgICB2YWwpOwoKLToxOTg6IEVSUk9S OkNPREVfSU5ERU5UOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUK IzE5ODogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9y ZWdpb24uYzo0Mjc6CiteSV5JXkkgICAgICAgIHZhbCBeIDB4ZGVhZGJlYWYpOyQKCi06MTk4OiBD SEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBw YXJlbnRoZXNpcwojMTk4OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50 ZWxfbWVtb3J5X3JlZ2lvbi5jOjQyNzoKKwkJCXByX2VycigidmFkZHJbJXVdPSV1LCB2YWw9JXVc biIsIGR3b3JkLCB2YWRkcltkd29yZF0sCisJCQkgICAgICAgIHZhbCBeIDB4ZGVhZGJlYWYpOwoK dG90YWw6IDIgZXJyb3JzLCAwIHdhcm5pbmdzLCAzIGNoZWNrcywgMTg3IGxpbmVzIGNoZWNrZWQK Y2FjMzFlZDBlZGRhIGRybS9pOTE1L2JsdDogc3VwcG9ydCBjb3B5aW5nIG9iamVjdHMKLToxNDog RVJST1I6QkFEX1NJR05fT0ZGOiBVbnJlY29nbml6ZWQgZW1haWwgYWRkcmVzczogJ0FiZGllbCBK YW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbScKIzE0OiAKQ2M6IEFiZGll bCBKYW51bGd1ZSA8YWJkaWVsLmphbnVsZ3VlQGxpbnV4LmludGVsLmNvbQoKLTozODogQ0hFQ0s6 U1BBQ0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnLScgKGN0eDpWeFYpCiMzODog RklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuYzoxMTk6 CisJCSpjcysrID0gR0VOOV9YWV9GQVNUX0NPUFlfQkxUX0NNRCB8ICgxMC0yKTsKIAkJICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKLTo0OTogQ0hFQ0s6U1BBQ0lORzog c3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAnLScgKGN0eDpWeFYpCiM0OTogRklMRTogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdF9ibHQuYzoxMzA6CisJCSpjcysr ID0gWFlfU1JDX0NPUFlfQkxUX0NNRCB8IEJMVF9XUklURV9SR0JBIHwgKDEwLTIpOwogCQkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KCi06NjA6IENI RUNLOlNQQUNJTkc6IHNwYWNlcyBwcmVmZXJyZWQgYXJvdW5kIHRoYXQgJy0nIChjdHg6VnhWKQoj NjA6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfYmx0LmM6 MTQxOgorCQkqY3MrKyA9IFhZX1NSQ19DT1BZX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSB8ICg4 LTIpOwogCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgoKLToxOTM6IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRl ciBkZWNsYXJhdGlvbnMKIzE5MzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0 ZXN0cy9pOTE1X2dlbV9vYmplY3RfYmx0LmM6MTAzOgorCXN0cnVjdCBybmRfc3RhdGUgcHJuZzsK KwlJR1RfVElNRU9VVChlbmQpOwoKLTozMDg6IENIRUNLOlNQQUNJTkc6IHNwYWNlcyBwcmVmZXJy ZWQgYXJvdW5kIHRoYXQgJzw8JyAoY3R4OlZ4VikKIzMwODogRklMRTogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmg6MTg1OgorI2RlZmluZSBHRU45X1hZX0ZBU1Rf Q09QWV9CTFRfQ01ECSgoMjw8MjkpfCgweDQyPDwyMikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAJICAgXgoKLTozMDg6IENIRUNLOlNQQUNJTkc6IHNwYWNlcyBwcmVmZXJyZWQg YXJvdW5kIHRoYXQgJ3wnIChjdHg6VnhWKQojMzA4OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaDoxODU6CisjZGVmaW5lIEdFTjlfWFlfRkFTVF9DT1BZ X0JMVF9DTUQJKCgyPDwyOSl8KDB4NDI8PDIyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAkgICAgICAgIF4KCi06MzA4OiBDSEVDSzpTUEFDSU5HOiBzcGFjZXMgcHJlZmVycmVk IGFyb3VuZCB0aGF0ICc8PCcgKGN0eDpWeFYpCiMzMDg6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2dwdV9jb21tYW5kcy5oOjE4NToKKyNkZWZpbmUgR0VOOV9YWV9GQVNUX0NP UFlfQkxUX0NNRAkoKDI8PDI5KXwoMHg0Mjw8MjIpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCSAgICAgICAgICAgICAgXgoKLTozMDk6IENIRUNLOlNQQUNJTkc6IHNwYWNlcyBw cmVmZXJyZWQgYXJvdW5kIHRoYXQgJzw8JyAoY3R4OlZ4VikKIzMwOTogRklMRTogZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmg6MTg2OgorI2RlZmluZSBYWV9TUkNf Q09QWV9CTFRfQ01ECQkoKDI8PDI5KXwoMHg1Mzw8MjIpKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgCQkgICBeCgotOjMwOTogQ0hFQ0s6U1BBQ0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91 bmQgdGhhdCAnfCcgKGN0eDpWeFYpCiMzMDk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2dwdV9jb21tYW5kcy5oOjE4NjoKKyNkZWZpbmUgWFlfU1JDX0NPUFlfQkxUX0NNRAkJ KCgyPDwyOSl8KDB4NTM8PDIyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkJICAgICAg ICBeCgotOjMwOTogQ0hFQ0s6U1BBQ0lORzogc3BhY2VzIHByZWZlcnJlZCBhcm91bmQgdGhhdCAn PDwnIChjdHg6VnhWKQojMzA5OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9n cHVfY29tbWFuZHMuaDoxODY6CisjZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9DTUQJCSgoMjw8Mjkp fCgweDUzPDwyMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCSAgICAgICAgICAgICAg XgoKdG90YWw6IDEgZXJyb3JzLCAxIHdhcm5pbmdzLCA5IGNoZWNrcywgMjc3IGxpbmVzIGNoZWNr ZWQKNGRlNThlYTk3NDM0IGRybS9pOTE1L3NlbGZ0ZXN0czogbW92ZSBncHUtd3JpdGUtZHcgaW50 byB1dGlscwpjYzMxNjk4YWJjMjYgZHJtL2k5MTUvc2VsZnRlc3RzOiBhZGQgd3JpdGUtZHdvcmQg dGVzdCBmb3IgTE1FTQotOjg3OiBXQVJOSU5HOkxJTkVfU1BBQ0lORzogTWlzc2luZyBhIGJsYW5r IGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zCiM4NzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYzo0MTE6CisJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOworCUlHVF9USU1FT1VUKGVuZF90aW1lKTsKCi06MTYwOiBXQVJOSU5HOkxJ TkVfU1BBQ0lORzogTWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zCiMxNjA6 IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9u LmM6NDk4OgorCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJSTkxNV9STkRfU1RB VEUocHJuZyk7Cgp0b3RhbDogMCBlcnJvcnMsIDIgd2FybmluZ3MsIDAgY2hlY2tzLCAxODUgbGlu ZXMgY2hlY2tlZAo4OGU5ZmNjYTQwNTQgZHJtL2k5MTUvc2VsZnRlc3RzOiBkb24ndCBqdXN0IHRl c3QgQ0FDSEVfTk9ORSBmb3IgaHVnZS1wYWdlcwo3ZTIxYTkwNGE1YWMgZHJtL2k5MTUvc2VsZnRl c3Q6IGV4dGVuZCBjb3ZlcmFnZSB0byBpbmNsdWRlIExNRU0gaHVnZS1wYWdlcwotOjc6IFdBUk5J Tkc6Q09NTUlUX01FU1NBR0U6IE1pc3NpbmcgY29tbWl0IGRlc2NyaXB0aW9uIC0gQWRkIGFuIGFw cHJvcHJpYXRlIG9uZQoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAwIGNoZWNrcywgMTQ2 IGxpbmVzIGNoZWNrZWQKNmJlZjczN2Y0NjU1IGRybS9pOTE1L2xtZW06IHN1cHBvcnQgQ1BVIHJl bG9jYXRpb25zCi06ODU6IENIRUNLOlNQQUNJTkc6IE5vIHNwYWNlIGlzIG5lY2Vzc2FyeSBhZnRl ciBhIGNhc3QKIzg1OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhl Y2J1ZmZlci5jOjEwOTE6CisJCWlvX21hcHBpbmdfdW5tYXBfYXRvbWljKCh2b2lkIF9fZm9yY2Ug X19pb21lbSAqKSB1bm1hc2tfcGFnZShjYWNoZS0+dmFkZHIpKTsKCnRvdGFsOiAwIGVycm9ycywg MCB3YXJuaW5ncywgMSBjaGVja3MsIDEwMCBsaW5lcyBjaGVja2VkCjFjNWRjZTJjMThkZSBkcm0v aTkxNS9sbWVtOiBzdXBwb3J0IHByZWFkCi06MjA6IFdBUk5JTkc6RlVOQ1RJT05fQVJHVU1FTlRT OiBmdW5jdGlvbiBkZWZpbml0aW9uIGFyZ3VtZW50ICdzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqJyBzaG91bGQgYWxzbyBoYXZlIGFuIGlkZW50aWZpZXIgbmFtZQojMjA6IEZJTEU6IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaDo1NToKKwlpbnQgKCpw cmVhZCkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKiwKCnRvdGFsOiAwIGVycm9ycywgMSB3 YXJuaW5ncywgMCBjaGVja3MsIDEwNiBsaW5lcyBjaGVja2VkCjI4MmM0MzE3ZWYxYSBkcm0vaTkx NS9sbWVtOiBzdXBwb3J0IHB3cml0ZQotOjcxOiBFUlJPUjpQT0lOVEVSX0xPQ0FUSU9OOiAiKGZv byopIiBzaG91bGQgYmUgIihmb28gKikiCiM3MTogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmVnaW9uX2xtZW0uYzoxMzU6CisJCXVud3JpdHRlbiA9IGNvcHlfZnJvbV91c2VyKCh2 b2lkIF9fZm9yY2UqKXZhZGRyICsgb2Zmc2V0LAoKdG90YWw6IDEgZXJyb3JzLCAwIHdhcm5pbmdz LCAwIGNoZWNrcywgODcgbGluZXMgY2hlY2tlZApjMDMzMmRiMjBlMTMgZHJtL2k5MTU6IGVudW1l cmF0ZSBhbmQgaW5pdCBlYWNoIHN1cHBvcnRlZCByZWdpb24KZWI5MTY2ZWRiYWFhIGRybS9pOTE1 OiB0cmVhdCBzaG1lbSBhcyBhIHJlZ2lvbgotOjc6IFdBUk5JTkc6Q09NTUlUX01FU1NBR0U6IE1p c3NpbmcgY29tbWl0IGRlc2NyaXB0aW9uIC0gQWRkIGFuIGFwcHJvcHJpYXRlIG9uZQoKLTo0OTog Q0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4g cGFyZW50aGVzaXMKIzQ5OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f c2htZW0uYzo0MzQ6CitzdGF0aWMgaW50IF9fY3JlYXRlX3NobWVtKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LAogCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosCgotOjYxOiBXQVJO SU5HOlVOU1BFQ0lGSUVEX0lOVDogUHJlZmVyICd1bnNpZ25lZCBpbnQnIHRvIGJhcmUgdXNlIG9m ICd1bnNpZ25lZCcKIzYxOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f c2htZW0uYzo0NTc6CisJICAgICB1bnNpZ25lZCBmbGFncykKCi06MTIzOiBXQVJOSU5HOlNVU1BF Q1RfQ09ERV9JTkRFTlQ6IHN1c3BlY3QgY29kZSBpbmRlbnQgZm9yIGNvbmRpdGlvbmFsIHN0YXRl bWVudHMgKDgsIDE3KQojMTIzOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fc2htZW0uYzo1Nzk6CisJaWYgKGVycikKKwkJIERSTV9OT1RFKCJVbmFibGUgdG8gY3JlYXRl IGEgcHJpdmF0ZSB0bXBmcyBtb3VudCwgaHVnZXBhZ2Ugc3VwcG9ydCB3aWxsIGJlIGRpc2FibGVk KCVkKS5cbiIsIGVycik7CgotOjEyNDogV0FSTklORzpMT05HX0xJTkU6IGxpbmUgb3ZlciAxMDAg Y2hhcmFjdGVycwojMTI0OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f c2htZW0uYzo1ODA6CisJCSBEUk1fTk9URSgiVW5hYmxlIHRvIGNyZWF0ZSBhIHByaXZhdGUgdG1w ZnMgbW91bnQsIGh1Z2VwYWdlIHN1cHBvcnQgd2lsbCBiZSBkaXNhYmxlZCglZCkuXG4iLCBlcnIp OwoKdG90YWw6IDAgZXJyb3JzLCA0IHdhcm5pbmdzLCAxIGNoZWNrcywgMjU0IGxpbmVzIGNoZWNr ZWQKM2ZmZjAwOTZlZGFiIGRybS9pOTE1OiB0cmVhdCBzdG9sZW4gYXMgYSByZWdpb24KMDg5YWM5 OTg2NGM2IGRybS9pOTE1OiBkZWZpbmUgSEFTX01BUFBBQkxFX0FQRVJUVVJFCi06MjA6IENIRUNL Ok1BQ1JPX0FSR19QUkVDRURFTkNFOiBNYWNybyBhcmd1bWVudCAnZGV2X3ByaXYnIG1heSBiZSBi ZXR0ZXIgYXMgJyhkZXZfcHJpdiknIHRvIGF2b2lkIHByZWNlZGVuY2UgaXNzdWVzCiMyMDogRklM RTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaDoyMjQ3OgorI2RlZmluZSBIQVNfTUFQ UEFCTEVfQVBFUlRVUkUoZGV2X3ByaXYpIChkZXZfcHJpdi0+Z2d0dC5tYXBwYWJsZV9lbmQgPiAw KQoKdG90YWw6IDAgZXJyb3JzLCAwIHdhcm5pbmdzLCAxIGNoZWNrcywgOCBsaW5lcyBjaGVja2Vk CjUwYTNlZWI4MTg5ZiBkcm0vaTkxNTogZG8gbm90IG1hcCBhcGVydHVyZSBpZiBpdCBpcyBub3Qg YXZhaWxhYmxlLgotOjQwOiBDSEVDSzpTUEFDSU5HOiBObyBzcGFjZSBpcyBuZWNlc3NhcnkgYWZ0 ZXIgYSBjYXN0CiM0MDogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmM6 MzM5NDoKKwkJCShzdHJ1Y3QgcmVzb3VyY2UpIERFRklORV9SRVNfTUVNKHBjaV9yZXNvdXJjZV9z dGFydChwZGV2LCAyKSwKCnRvdGFsOiAwIGVycm9ycywgMCB3YXJuaW5ncywgMSBjaGVja3MsIDU1 IGxpbmVzIGNoZWNrZWQKM2ZiMDA0ZTU3N2Q2IGRybS9pOTE1OiBleHBvc2UgbWlzc2luZyBtYXBf Z3R0IHN1cHBvcnQgdG8gdXNlcnMKNTY4MWVhNDk2ZjMxIGRybS9pOTE1OiBzZXQgbnVtX2ZlbmNl X3JlZ3MgdG8gMCBpZiB0aGVyZSBpcyBubyBhcGVydHVyZQpjM2ViZWYxNzdkN2QgZHJtL2k5MTUv c2VsZnRlc3RzOiBjaGVjayBmb3IgbWlzc2luZyBhcGVydHVyZQo2Y2VmNDIzODUzZWEgZHJtL2k5 MTU6IGVycm9yIGNhcHR1cmUgd2l0aCBubyBnZ3R0IHNsb3QKLToxNjI6IFdBUk5JTkc6TElORV9T UEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRlciBkZWNsYXJhdGlvbnMKIzE2MjogRklM RTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYzoxNzgyOgorCQljb25zdCB1 NjQgc2xvdCA9IGdndHQtPmVycm9yX2NhcHR1cmUuc3RhcnQ7CisJCWdndHQtPnZtLmNsZWFyX3Jh bmdlKCZnZ3R0LT52bSwgc2xvdCwgUEFHRV9TSVpFKTsKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJu aW5ncywgMCBjaGVja3MsIDEzOSBsaW5lcyBjaGVja2VkCmJmN2E3NWI0NmIyOCBkcm0vaTkxNTog RG9uJ3QgdHJ5IHRvIHBsYWNlIEhXUyBpbiBub24tZXhpc3RpbmcgbWFwcGFibGUgcmVnaW9uCmM1 MTI5ZGRjMDZhZCBkcm0vaTkxNTogQWxsb3cgaTkxNSB0byBtYW5hZ2UgdGhlIHZtYSBvZmZzZXQg bm9kZXMgaW5zdGVhZCBvZiBkcm0gY29yZQotOjIxODogRVJST1I6Q09ERV9JTkRFTlQ6IGNvZGUg aW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3NzaWJsZQojMjE4OiBGSUxFOiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jOjYwNToKK15JICAgICAgICBtbW8gPSBj b250YWluZXJfb2Yobm9kZSwgc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQsJAoKLTozNDk6IEVSUk9S OkNPREVfSU5ERU5UOiBjb2RlIGluZGVudCBzaG91bGQgdXNlIHRhYnMgd2hlcmUgcG9zc2libGUK IzM0OTogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oOjEz MToKK15JICAgICAgICBtbW8tPnZtYV9ub2RlLnJlYWRvbmx5ID0gdHJ1ZTskCgotOjM5MTogRVJS T1I6UE9JTlRFUl9MT0NBVElPTjogImZvbyogYmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojMzkx OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmg6 NzA6CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QqIG9iajsKCnRvdGFsOiAzIGVycm9ycywg MCB3YXJuaW5ncywgMCBjaGVja3MsIDUwMSBsaW5lcyBjaGVja2VkCjQ5ODFmZjM2OWFiZSBkcm0v aTkxNTogSW50cm9kdWNlIERSTV9JOTE1X0dFTV9NTUFQX09GRlNFVAotOjEyMDogV0FSTklORzpT UEFDRV9CRUZPUkVfVEFCOiBwbGVhc2UsIG5vIHNwYWNlIGJlZm9yZSB0YWJzCiMxMjA6IEZJTEU6 IGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaDozNjI6CisjZGVmaW5lIERSTV9JOTE1X0dFTV9N TUFQX09GRlNFVCAgIF5JRFJNX0k5MTVfR0VNX01NQVBfR1RUJAoKLToxMjg6IFdBUk5JTkc6TE9O R19MSU5FOiBsaW5lIG92ZXIgMTAwIGNoYXJhY3RlcnMKIzEyODogRklMRTogaW5jbHVkZS91YXBp L2RybS9pOTE1X2RybS5oOjQyNToKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX01NQVBfT0ZG U0VUCQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX01NQVBfT0ZGU0VU LCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21tYXBfb2Zmc2V0KQoKdG90YWw6IDAgZXJyb3JzLCAyIHdh cm5pbmdzLCAwIGNoZWNrcywgMTI5IGxpbmVzIGNoZWNrZWQKNWNkNWMyM2M3YWU4IGRybS9pOTE1 L2xtZW06IGFkZCBoZWxwZXIgdG8gZ2V0IENQVSBhY2Nlc3NpYmxlIG9mZnNldAozYTk0ZmE3OGYy MzcgZHJtL2k5MTU6IEFkZCBjcHUgYW5kIGxtZW0gZmF1bHQgaGFuZGxlcnMKLTo1MzogV0FSTklO RzpMSU5FX1NQQUNJTkc6IE1pc3NpbmcgYSBibGFuayBsaW5lIGFmdGVyIGRlY2xhcmF0aW9ucwoj NTM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmM6Mzk1Ogor CQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShvYmosIGkpOwor CQl2bWZfcmV0ID0gdm1mX2luc2VydF9wZm4oYXJlYSwKCnRvdGFsOiAwIGVycm9ycywgMSB3YXJu aW5ncywgMCBjaGVja3MsIDI4NSBsaW5lcyBjaGVja2VkCjhjMjFmZDZhNTBlOCBkcm0vaTkxNTog Y3B1LW1hcCBiYXNlZCBkdW1iIGJ1ZmZlcnMKLToyNTogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05N RU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzI1OiBGSUxFOiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jOjYwNDoKK2k5MTVfZ2VtX21t YXBfZHVtYihzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCisJCSAgc3RydWN0IGRybV9kZXZpY2UgKmRl diwKCi06OTA6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBt YXRjaCBvcGVuIHBhcmVudGhlc2lzCiM5MDogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaDoyNTE3OgoraW50IGk5MTVfZ2VtX21tYXBfZHVtYihzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdiwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICAgICAgdTMyIGhhbmRsZSwgdTY0 ICpvZmZzZXQpOwoKdG90YWw6IDAgZXJyb3JzLCAwIHdhcm5pbmdzLCAyIGNoZWNrcywgNTYgbGlu ZXMgY2hlY2tlZAo4MGMxOGJmZjhhNmYgZHJtL2k5MTU6IHN1cHBvcnQgYmFzaWMgb2JqZWN0IG1p Z3JhdGlvbgotOjc3OiBXQVJOSU5HOlRZUE9fU1BFTExJTkc6ICdVS05PV04nIG1heSBiZSBtaXNz cGVsbGVkIC0gcGVyaGFwcyAnVU5LTk9XTic/CiM3NzogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jOjIyMToKKwlHRU1fQlVHX09OKGlkID49IElOVEVMX01F TU9SWV9VS05PV04pOwoKLToyNjk6IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxh bmsgbGluZSBhZnRlciBkZWNsYXJhdGlvbnMKIzI2OTogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYzo2NjI6CisJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iajsKKwlJR1RfVElNRU9VVChlbmRfdGltZSk7Cgp0b3RhbDogMCBlcnJv cnMsIDIgd2FybmluZ3MsIDAgY2hlY2tzLCAzMTIgbGluZXMgY2hlY2tlZApkM2U2YzZjOWYyYTUg ZHJtL2k5MTU6IEludHJvZHVjZSBHRU1fT0JKRUNUX1NFVFBBUkFNIHdpdGggSTkxNV9QQVJBTV9N RU1PUllfUkVHSU9OCi06OTA6IFdBUk5JTkc6VFlQT19TUEVMTElORzogJ1VLTk9XTicgbWF5IGJl IG1pc3NwZWxsZWQgLSBwZXJoYXBzICdVTktOT1dOJz8KIzkwOiBGSUxFOiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmM6NTY0OgorCXJldHVybiBJTlRFTF9NRU1PUllf VUtOT1dOOwoKLToxMDA6IFdBUk5JTkc6VFlQT19TUEVMTElORzogJ1VLTk9XTicgbWF5IGJlIG1p c3NwZWxsZWQgLSBwZXJoYXBzICdVTktOT1dOJz8KIzEwMDogRklMRTogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jOjU3NDoKKwl1MzIgdXJlZ2lvbnNfY29weVtJTlRF TF9NRU1PUllfVUtOT1dOXTsKCi06MTIyOiBFUlJPUjpDT0RFX0lOREVOVDogY29kZSBpbmRlbnQg c2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxlCiMxMjI6IEZJTEU6IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYzo1OTY6CiteSSAgICAgICAgZ290byBlcnI7JAoK LToxMzI6IFdBUk5JTkc6VFlQT19TUEVMTElORzogJ1VLTk9XTicgbWF5IGJlIG1pc3NwZWxsZWQg LSBwZXJoYXBzICdVTktOT1dOJz8KIzEzMjogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdC5jOjYwNjoKKwkJaWYgKGlkID09IElOVEVMX01FTU9SWV9VS05PV04p IHsKCi06MTY4OiBDSEVDSzpCUkFDRVM6IEJsYW5rIGxpbmVzIGFyZW4ndCBuZWNlc3NhcnkgYWZ0 ZXIgYW4gb3BlbiBicmFjZSAneycKIzE2ODogRklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdC5jOjY0MjoKK3sKKwoKLToyMjk6IFdBUk5JTkc6TE9OR19MSU5FOiBs aW5lIG92ZXIgMTAwIGNoYXJhY3RlcnMKIzIyOTogRklMRTogaW5jbHVkZS91YXBpL2RybS9pOTE1 X2RybS5oOjQyNzoKKyNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX09CSkVDVF9TRVRQQVJBTQlE Uk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX09CSkVDVF9TRVRQQVJBTSwg c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3RfcGFyYW0pCgp0b3RhbDogMSBlcnJvcnMsIDQgd2Fy bmluZ3MsIDEgY2hlY2tzLCAyMjEgbGluZXMgY2hlY2tlZAo0NTc2MWNjNjJhZDggZHJtL2k5MTUv cXVlcnk6IEV4cG9zZSBtZW1vcnkgcmVnaW9ucyB0aHJvdWdoIHRoZSBxdWVyeSB1QVBJCi06MTAw OiBDSEVDSzpCUkFDRVM6IEJsYW5rIGxpbmVzIGFyZW4ndCBuZWNlc3NhcnkgYWZ0ZXIgYW4gb3Bl biBicmFjZSAneycKIzEwMDogRklMRTogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oOjIxODU6 CitzdHJ1Y3QgZHJtX2k5MTVfbWVtb3J5X3JlZ2lvbl9pbmZvIHsKKwoKLToxMjc6IENIRUNLOkJS QUNFUzogQmxhbmsgbGluZXMgYXJlbid0IG5lY2Vzc2FyeSBhZnRlciBhbiBvcGVuIGJyYWNlICd7 JwojMTI3OiBGSUxFOiBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmg6MjIxMjoKK3N0cnVjdCBk cm1faTkxNV9xdWVyeV9tZW1vcnlfcmVnaW9uX2luZm8geworCgp0b3RhbDogMCBlcnJvcnMsIDAg d2FybmluZ3MsIDIgY2hlY2tzLCAxMTggbGluZXMgY2hlY2tlZApmNWRlN2JiOGUyZDMgSEFYIGRy bS9pOTE1OiBhZGQgdGhlIGZha2UgbG1lbSByZWdpb24KLTo0NDogV0FSTklORzpMT05HX0xJTkVf Q09NTUVOVDogbGluZSBvdmVyIDEwMCBjaGFyYWN0ZXJzCiM0NDogRklMRTogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYzoxOTA0OgorCQlpbnRlbF9ncmFwaGljc19mYWtlX2xtZW1fcmVz LmVuZCA9IFNaXzJHOyAvKiBQbGFjZWhvbGRlcjsgZGVwZW5kcyBvbiBhcGVydHVyZSBzaXplICov CgotOjUwOiBXQVJOSU5HOkxPTkdfTElORTogbGluZSBvdmVyIDEwMCBjaGFyYWN0ZXJzCiM1MDog RklMRTogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYzoxOTEwOgorCQlwcl9pbmZvKCJJ bnRlbCBncmFwaGljcyBmYWtlIExNRU0gc3RhcnRzIGF0ICVwYVxuIiwgJmludGVsX2dyYXBoaWNz X2Zha2VfbG1lbV9yZXMuc3RhcnQpOwoKLTo5MDogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5U OiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzkwOiBGSUxFOiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jOjE2ODoKK2k5MTVfcGFyYW1fbmFtZWRfdW5z YWZlKGZha2VfbG1lbV9zdGFydCwgdWxvbmcsIDA2MDAsCisJIkZha2UgTE1FTSBzdGFydCBvZmZz ZXQgKGRlZmF1bHQ6IDApIik7Cgp0b3RhbDogMCBlcnJvcnMsIDIgd2FybmluZ3MsIDEgY2hlY2tz LCAxOTUgbGluZXMgY2hlY2tlZAoyYzUzMGMzOTE3OGQgSEFYIGRybS9pOTE1L2xtZW06IGRlZmF1 bHQgdXNlcnNwYWNlIGFsbG9jYXRpb25zIHRvIExNRU0KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeA==