From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp43.i.mail.ru ([94.100.177.103]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gbJfz-00069A-6S for barebox@lists.infradead.org; Mon, 24 Dec 2018 06:25:23 +0000 From: Alexander Shiyan Date: Mon, 24 Dec 2018 09:24:57 +0300 Message-Id: <20181224062457.10318-2-shc_work@mail.ru> In-Reply-To: <20181224062457.10318-1-shc_work@mail.ru> References: <20181224062457.10318-1-shc_work@mail.ru> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH V3 2/2] ARM: CCMX51: Switch to multiimage support To: barebox@lists.infradead.org VGhpcyBpcyBhIGN1bXVsYXRpdmUgcGF0Y2ggZm9yIHRoZSBEaWdpIENvbm5lY3RDb3JlIENDTVg1 MSBTT00uCkl0IGluY2x1ZGVzOgotIFN3aXRjaCBib2FyZCB0byBkZXZpY2V0cmVlIHByb2JlLgot IEFkZCBNTUMgdXBkYXRlIGhhbmRsZXIuCi0gU3dpdGNoIHRvIG11bHRpaW1hZ2Ugc3VwcG9ydC4K LSBDbGVhbnVwIGFuZCBvcHRpbWl6ZSBib2FyZCBjb2RlLgoKU2lnbmVkLW9mZi1ieTogQWxleGFu ZGVyIFNoaXlhbiA8c2hjX3dvcmtAbWFpbC5ydT4KLS0tCiBhcmNoL2FybS9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBhcmNoL2FybS9ib2FyZHMvY2N4 bXg1MS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogYXJjaC9hcm0vYm9hcmRz L2NjeG14NTEvY2N4bXg1MS5jICAgICAgICAgICAgICAgICAgfCA2MjYgKysrKysrKy0tLS0tLS0t LS0tLS0tCiBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmggICAgICAgICAgICAgICAg ICB8ICAzNSAtLQogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MWpzLmMgICAgICAgICAg ICAgICAgfCAxMDMgLS0tLQogLi4uL2NjeG14NTEve2VudiA9PiBkZWZhdWx0ZW52LWNjeG14NTF9 L2Jvb3QvbmFuZCAgfCAgIDAKIC4uLi97ZW52ID0+IGRlZmF1bHRlbnYtY2N4bXg1MX0vbnYvYm9v dC5kZWZhdWx0ICAgIHwgICAwCiBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9lbnYvaW5pdC9tdGRw YXJ0cy1uYW5kICAgICB8ICAgNiAtCiBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9lbnYvbnYvYXV0 b2Jvb3RfdGltZW91dCAgICB8ICAgMSAtCiBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9sb3dsZXZl bC5jICAgICAgICAgICAgICAgICB8ICAxNSArLQogYXJjaC9hcm0vY29uZmlncy9jY214NTFfZGVm Y29uZmlnICAgICAgICAgICAgICAgICAgfCAgNjAgLS0KIGFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y3 X2RlZmNvbmZpZyAgICAgICAgICAgICAgICAgIHwgICAyICstCiBhcmNoL2FybS9kdHMvTWFrZWZp bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBhcmNoL2FybS9kdHMvaW14 NTEtY2N4bXg1MS5kdHMgICAgICAgICAgICAgICAgICAgICB8ICA0MSArKwogYXJjaC9hcm0vbWFj aC1pbXgvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzEgKy0KIGltYWdlcy9N YWtlZmlsZS5pbXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIDE2IGZp bGVzIGNoYW5nZWQsIDI4OCBpbnNlcnRpb25zKCspLCA2NDMgZGVsZXRpb25zKC0pCiBkZWxldGUg bW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5oCiBkZWxldGUgbW9k ZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MWpzLmMKIHJlbmFtZSBhcmNo L2FybS9ib2FyZHMvY2N4bXg1MS97ZW52ID0+IGRlZmF1bHRlbnYtY2N4bXg1MX0vYm9vdC9uYW5k ICgxMDAlKQogcmVuYW1lIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL3tlbnYgPT4gZGVmYXVsdGVu di1jY3hteDUxfS9udi9ib290LmRlZmF1bHQgKDEwMCUpCiBkZWxldGUgbW9kZSAxMDA2NDQgYXJj aC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2luaXQvbXRkcGFydHMtbmFuZAogZGVsZXRlIG1vZGUg MTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9udi9hdXRvYm9vdF90aW1lb3V0CiBk ZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vY29uZmlncy9jY214NTFfZGVmY29uZmlnCiBjcmVh dGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vZHRzL2lteDUxLWNjeG14NTEuZHRzCgpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vTWFrZWZpbGUgYi9hcmNoL2FybS9NYWtlZmlsZQppbmRleCA1ZGI2N2I5ZGIu LjJkNTViYzY5YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0v TWFrZWZpbGUKQEAgLTI0Niw3ICsyNDYsNiBAQCBiYXJlYm94LmlteGltZzogJChLQlVJTERfQklO QVJZKSBGT1JDRQogCiBib2FyZGRpciA9ICQoc3JjdHJlZSkvYXJjaC9hcm0vYm9hcmRzCiBpbXhj ZmctJChDT05GSUdfTUFDSF9GUkVFU0NBTEVfTVg1M19TTUQpICs9ICQoYm9hcmRkaXIpL2ZyZWVz Y2FsZS1teDUzLXNtZC9mbGFzaC1oZWFkZXIuaW14Y2ZnCi1pbXhjZmctJChDT05GSUdfTUFDSF9D Q01YNTEpICs9ICQoYm9hcmRkaXIpL2NjeG14NTEvZmxhc2gtaGVhZGVyLmlteGNmZwogaW14Y2Zn LSQoQ09ORklHX01BQ0hfVFg1MSkgKz0gJChib2FyZGRpcikva2Fyby10eDUxL2ZsYXNoLWhlYWRl ci1rYXJvLXR4NTEuaW14Y2ZnCiBpbXhjZmctJChDT05GSUdfTUFDSF9HVUZfVklOQ0VMTCkgKz0g JChib2FyZGRpcikvZ3VmLXZpbmNlbGwvZmxhc2gtaGVhZGVyLmlteGNmZwogaW14Y2ZnLSQoQ09O RklHX01BQ0hfRVVLUkVBX0NQVUlNWDUxU0QpICs9ICQoYm9hcmRkaXIpL2V1a3JlYV9jcHVpbXg1 MS9mbGFzaC1oZWFkZXIuaW14Y2ZnCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1 MS9NYWtlZmlsZSBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL01ha2VmaWxlCmluZGV4IDZiYTk4 YjEyZC4uNTBjZjkyOWM1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9NYWtl ZmlsZQorKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9NYWtlZmlsZQpAQCAtMSwzICsxLDMg QEAKIG9iai15CQkJCQkrPSBjY3hteDUxLm8KLWx3bC15CQkJCSs9IGxvd2xldmVsLm8KLW9iai0k KENPTkZJR19NQUNIX0NDTVg1MV9CQVNFQk9BUkQpCSs9IGNjeG14NTFqcy5vCitsd2wteQkJCQkJ Kz0gbG93bGV2ZWwubworYmJlbnYtJChDT05GSUdfREVGQVVMVF9FTlZJUk9OTUVOVCkJKz0gZGVm YXVsdGVudi1jY3hteDUxCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3ht eDUxLmMgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmMKaW5kZXggNzFhNTFlMTky Li4xM2ZiYTUxZmUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTEu YworKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmMKQEAgLTEsNDc3ICsxLDI3 OSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArICovCiAvKgogICogKEMp IENvcHlyaWdodCAyMDA5LTIwMTAgRGlnaSBJbnRlcm5hdGlvbmFsLCBJbmMuCiAgKiBDb3B5cmln aHQgKEMpIDIwMDcgU2FzY2hhIEhhdWVyLCBQZW5ndXRyb25peAogICogKGMpIDIwMTEgRXVrcmVh IEVsZWN0cm9tYXRpcXVlLCBFcmljIELDqW5hcmQgPGVyaWNAZXVrcmVhLmNvbT4KLSAqCi0gKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YKLSAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK LSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgorICog TW9kaWZpZWQgZm9yIGJhcmVib3ggYnkgQWxleGFuZGVyIFNoaXlhbiA8c2hjX3dvcmtAbWFpbC5y dT4KICAqLwogCiAjaW5jbHVkZSA8Y29tbW9uLmg+Ci0jaW5jbHVkZSA8bmV0Lmg+CisjaW5jbHVk ZSA8ZW52ZnMuaD4KICNpbmNsdWRlIDxpbml0Lmg+Ci0jaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4K LSNpbmNsdWRlIDxtYWNoL2lteDUxLXJlZ3MuaD4KLSNpbmNsdWRlIDxwbGF0Zm9ybV9kYXRhL2V0 aC1mZWMuaD4KKyNpbmNsdWRlIDxuZXQuaD4KKyNpbmNsdWRlIDxub3RpZmllci5oPgogI2luY2x1 ZGUgPGFzbS9hcm1saW51eC5oPgotI2luY2x1ZGUgPGdlbmVyYXRlZC9tYWNoLXR5cGVzLmg+Ci0j aW5jbHVkZSA8cGFydGl0aW9uLmg+Ci0jaW5jbHVkZSA8ZnMuaD4KLSNpbmNsdWRlIDxmY250bC5o PgogI2luY2x1ZGUgPGxpbnV4L3NpemVzLmg+Ci0jaW5jbHVkZSA8bmFuZC5oPgotI2luY2x1ZGUg PG5vdGlmaWVyLmg+Ci0jaW5jbHVkZSA8c3BpL3NwaS5oPgogI2luY2x1ZGUgPG1mZC9tYzEzeHh4 Lmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8bWFjaC9pbXgtbmFuZC5oPgotI2lu Y2x1ZGUgPG1hY2gvc3BpLmg+Ci0jaW5jbHVkZSA8bWFjaC9nZW5lcmljLmg+Ci0jaW5jbHVkZSA8 bWFjaC9pb211eC1teDUxLmg+Ci0jaW5jbHVkZSA8bWFjaC9kZXZpY2VzLWlteDUxLmg+CisjaW5j bHVkZSA8bWZkL21jMTM4OTIuaD4KKworI2luY2x1ZGUgPG1hY2gvYmJ1Lmg+CisjaW5jbHVkZSA8 bWFjaC9lc2RjdGwuaD4KICNpbmNsdWRlIDxtYWNoL2lpbS5oPgotI2luY2x1ZGUgPG1hY2gvY2xv Y2staW14NTFfNTMuaD4KICNpbmNsdWRlIDxtYWNoL2lteDUuaD4KKyNpbmNsdWRlIDxtYWNoL2lt eDUxLXJlZ3MuaD4KICNpbmNsdWRlIDxtYWNoL3JldmlzaW9uLmg+Ci0jaW5jbHVkZSA8bWFjaC9l c2RjdGwuaD4KLQotI2luY2x1ZGUgImNjeG14NTEuaCIKLQotc3RhdGljIHN0cnVjdCBjY3hteDUx X2lkZW50IGNjeG14NTFfaWRzW10gPSB7Ci0vKiAweDAwICovCXsgIlVua25vd24iLAkJCQkJCTAs ICAgICAgIDAsIDAsIDAsIDAgfSwKLS8qIDB4MDEgKi8JeyAiTm90IHN1cHBvcnRlZCIsCQkJCQkw LCAgICAgICAwLCAwLCAwLCAwIH0sCi0vKiAweDAyICovCXsgImkuTVg1MTVAODAwTUh6LCBXaXJl bGVzcywgUEhZLCBFeHQuIEV0aCwgQWNjZWwiLAlTWl81MTJNLCAwLCAxLCAxLCAxIH0sCi0vKiAw eDAzICovCXsgImkuTVg1MTVAODAwTUh6LCBQSFksIEV4dC4gRXRoLCBBY2NlbCIsCQlTWl81MTJN LCAwLCAxLCAxLCAwIH0sCi0vKiAweDA0ICovCXsgImkuTVg1MTVANjAwTUh6LCBXaXJlbGVzcywg UEhZLCBFeHQuIEV0aCwgQWNjZWwiLAlTWl81MTJNLCAxLCAxLCAxLCAxIH0sCi0vKiAweDA1ICov CXsgImkuTVg1MTVANjAwTUh6LCBQSFksIEV4dC4gRXRoLCBBY2NlbCIsCQlTWl81MTJNLCAxLCAx LCAxLCAwIH0sCi0vKiAweDA2ICovCXsgImkuTVg1MTVAODAwTUh6LCBXaXJlbGVzcywgUEhZLCBB Y2NlbCIsCQlTWl81MTJNLCAwLCAxLCAwLCAxIH0sCi0vKiAweDA3ICovCXsgImkuTVg1MTVAODAw TUh6LCBQSFksIEFjY2VsIiwJCQkJU1pfNTEyTSwgMCwgMSwgMCwgMCB9LAotLyogMHgwOCAqLwl7 ICJpLk1YNTE1QDgwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfMjU2TSwgMCwgMSwg MCwgMSB9LAotLyogMHgwOSAqLwl7ICJpLk1YNTE1QDgwME1IeiwgUEhZLCBBY2NlbCIsCQkJCVNa XzI1Nk0sIDAsIDEsIDAsIDAgfSwKLS8qIDB4MGEgKi8JeyAiaS5NWDUxNUA2MDBNSHosIFdpcmVs ZXNzLCBQSFksIEFjY2VsIiwJCVNaXzI1Nk0sIDEsIDEsIDAsIDEgfSwKLS8qIDB4MGIgKi8JeyAi aS5NWDUxNUA2MDBNSHosIFBIWSwgQWNjZWwiLAkJCQlTWl8yNTZNLCAxLCAxLCAwLCAwIH0sCi0v KiAweDBjICovCXsgImkuTVg1MTVAODAwTUh6LCBXaXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl8x MjhNLCAwLCAxLCAwLCAxIH0sCi0vKiAweDBkICovCXsgImkuTVg1MTJAODAwTUh6IiwJCQkJCVNa XzEyOE0sIDAsIDAsIDAsIDAgfSwKLS8qIDB4MGUgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFdpcmVs ZXNzLCBQSFksIEFjY2VsIiwJCVNaXzUxMk0sIDAsIDEsIDAsIDEgfSwKLS8qIDB4MGYgKi8JeyAi aS5NWDUxNUA2MDBNSHosIFBIWSwgQWNjZWwiLAkJCQlTWl8xMjhNLCAxLCAxLCAwLCAwIH0sCi0v KiAweDEwICovCXsgImkuTVg1MTVANjAwTUh6LCBXaXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl8x MjhNLCAxLCAxLCAwLCAxIH0sCi0vKiAweDExICovCXsgImkuTVg1MTVAODAwTUh6LCBQSFksIEFj Y2VsIiwJCQkJU1pfMTI4TSwgMCwgMSwgMCwgMCB9LAotLyogMHgxMiAqLwl7ICJpLk1YNTE1QDYw ME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfNTEyTSwgMSwgMSwgMCwgMSB9LAotLyog MHgxMyAqLwl7ICJpLk1YNTE1QDgwME1IeiwgUEhZLCBBY2NlbCIsCQkJCVNaXzUxMk0sIDAsIDEs IDAsIDAgfSwKLX07Ci0KLXN0cnVjdCBjY3hteDUxX2lkZW50ICpjY3hteDUxX2lkOwotCi1zdHJ1 Y3QgaW14X25hbmRfcGxhdGZvcm1fZGF0YSBuYW5kX2luZm8gPSB7Ci0JLndpZHRoCQk9IDEsCi0J Lmh3X2VjYwkJPSAxLAotCS5mbGFzaF9iYnQJPSAxLAotfTsKLQotc3RhdGljIHN0cnVjdCBmZWNf cGxhdGZvcm1fZGF0YSBmZWNfaW5mbyA9IHsKLQkueGN2X3R5cGUJPSBQSFlfSU5URVJGQUNFX01P REVfTUlJLAotCS5waHlfYWRkcgk9IDcsCi19OwogCi1zdGF0aWMgaW9tdXhfdjNfY2ZnX3QgY2N4 bXg1MV9wYWRzW10gPSB7Ci0JLyogVUFSVDEgKi8KLQlNWDUxX1BBRF9VQVJUMV9SWERfX1VBUlQx X1JYRCwKLQlNWDUxX1BBRF9VQVJUMV9UWERfX1VBUlQxX1RYRCwKLQkvKiBVQVJUMiAqLwotCU1Y NTFfUEFEX1VBUlQyX1JYRF9fVUFSVDJfUlhELAotCU1YNTFfUEFEX1VBUlQyX1RYRF9fVUFSVDJf VFhELAotCS8qIFVBUlQzICovCi0JTVg1MV9QQURfVUFSVDNfUlhEX19VQVJUM19SWEQsCi0JTVg1 MV9QQURfVUFSVDNfVFhEX19VQVJUM19UWEQsCi0JLyogSTJDMiAqLwotCU1YNTFfUEFEX0dQSU8x XzJfX0kyQzJfU0NMLAotCU1YNTFfUEFEX0dQSU8xXzNfX0kyQzJfU0RBLAotCS8qIGVDU1BJMSAq LwotCU1YNTFfUEFEX0NTUEkxX01PU0lfX0VDU1BJMV9NT1NJLAotCU1YNTFfUEFEX0NTUEkxX01J U09fX0VDU1BJMV9NSVNPLAotCU1YNTFfUEFEX0NTUEkxX1NDTEtfX0VDU1BJMV9TQ0xLLAotCU1Y NTFfUEFEX0NTUEkxX1JEWV9fRUNTUEkxX1JEWSwKLQlNWDUxX1BBRF9DU1BJMV9TUzBfX0VDU1BJ MV9TUzAsCi0JTVg1MV9QQURfQ1NQSTFfU1MxX19FQ1NQSTFfU1MxLAotCS8qIEZFQyAqLwotCU1Y NTFfUEFEX0RJU1AyX0RBVDE0X19GRUNfUkRBVEEwLAotCU1YNTFfUEFEX0RJMl9ESVNQX0NMS19f RkVDX1JEQVRBMSwKLQlNWDUxX1BBRF9ESV9HUDRfX0ZFQ19SREFUQTIsCi0JTVg1MV9QQURfRElT UDJfREFUMF9fRkVDX1JEQVRBMywKLQlNWDUxX1BBRF9ESVNQMl9EQVQxNV9fRkVDX1REQVRBMCwK LQlNWDUxX1BBRF9ESVNQMl9EQVQ2X19GRUNfVERBVEExLAotCU1YNTFfUEFEX0RJU1AyX0RBVDdf X0ZFQ19UREFUQTIsCi0JTVg1MV9QQURfRElTUDJfREFUOF9fRkVDX1REQVRBMywKLQlNWDUxX1BB RF9ESVNQMl9EQVQ5X19GRUNfVFhfRU4sCi0JTVg1MV9QQURfRElTUDJfREFUMTBfX0ZFQ19DT0ws Ci0JTVg1MV9QQURfRElTUDJfREFUMTFfX0ZFQ19SWF9DTEssCi0JTVg1MV9QQURfRElTUDJfREFU MTJfX0ZFQ19SWF9EViwKLQlNWDUxX1BBRF9ESVNQMl9EQVQxM19fRkVDX1RYX0NMSywKLQlNWDUx X1BBRF9ESTJfUElOMl9fRkVDX01EQywKLQlNWDUxX1BBRF9ESTJfUElONF9fRkVDX0NSUywKLQlN WDUxX1BBRF9ESTJfUElOM19fRkVDX01ESU8sCi0JTVg1MV9QQURfRElfR1AzX19GRUNfVFhfRVIs Ci0JTVg1MV9QQURfRElTUDJfREFUMV9fRkVDX1JYX0VSLAotCS8qIFdFSU0gKi8KLQlNWDUxX1BB RF9FSU1fREEwX19FSU1fREEwLAotCU1YNTFfUEFEX0VJTV9EQTFfX0VJTV9EQTEsCi0JTVg1MV9Q QURfRUlNX0RBMl9fRUlNX0RBMiwKLQlNWDUxX1BBRF9FSU1fREEzX19FSU1fREEzLAotCU1YNTFf UEFEX0VJTV9EQTRfX0VJTV9EQTQsCi0JTVg1MV9QQURfRUlNX0RBNV9fRUlNX0RBNSwKLQlNWDUx X1BBRF9FSU1fREE2X19FSU1fREE2LAotCU1YNTFfUEFEX0VJTV9EQTdfX0VJTV9EQTcsCi0JTVg1 MV9QQURfRUlNX0QxNl9fRUlNX0QxNiwKLQlNWDUxX1BBRF9FSU1fRDE3X19FSU1fRDE3LAotCU1Y NTFfUEFEX0VJTV9EMThfX0VJTV9EMTgsCi0JTVg1MV9QQURfRUlNX0QxOV9fRUlNX0QxOSwKLQlN WDUxX1BBRF9FSU1fRDIwX19FSU1fRDIwLAotCU1YNTFfUEFEX0VJTV9EMjFfX0VJTV9EMjEsCi0J TVg1MV9QQURfRUlNX0QyMl9fRUlNX0QyMiwKLQlNWDUxX1BBRF9FSU1fRDIzX19FSU1fRDIzLAot CU1YNTFfUEFEX0VJTV9EMjRfX0VJTV9EMjQsCi0JTVg1MV9QQURfRUlNX0QyNV9fRUlNX0QyNSwK LQlNWDUxX1BBRF9FSU1fRDI2X19FSU1fRDI2LAotCU1YNTFfUEFEX0VJTV9EMjdfX0VJTV9EMjcs Ci0JTVg1MV9QQURfRUlNX0QyOF9fRUlNX0QyOCwKLQlNWDUxX1BBRF9FSU1fRDI5X19FSU1fRDI5 LAotCU1YNTFfUEFEX0VJTV9EMzBfX0VJTV9EMzAsCi0JTVg1MV9QQURfRUlNX0QzMV9fRUlNX0Qz MSwKLQlNWDUxX1BBRF9FSU1fT0VfX0VJTV9PRSwKLQlNWDUxX1BBRF9FSU1fQ1M1X19FSU1fQ1M1 LAotCS8qIE5BTkQgKi8KLQlNWDUxX1BBRF9OQU5ERl9EMF9fTkFOREZfRDAsCi0JTVg1MV9QQURf TkFOREZfRDFfX05BTkRGX0QxLAotCU1YNTFfUEFEX05BTkRGX0QyX19OQU5ERl9EMiwKLQlNWDUx X1BBRF9OQU5ERl9EM19fTkFOREZfRDMsCi0JTVg1MV9QQURfTkFOREZfRDRfX05BTkRGX0Q0LAot CU1YNTFfUEFEX05BTkRGX0Q1X19OQU5ERl9ENSwKLQlNWDUxX1BBRF9OQU5ERl9ENl9fTkFOREZf RDYsCi0JTVg1MV9QQURfTkFOREZfRDdfX05BTkRGX0Q3LAotCU1YNTFfUEFEX05BTkRGX0FMRV9f TkFOREZfQUxFLAotCU1YNTFfUEFEX05BTkRGX0NMRV9fTkFOREZfQ0xFLAotCU1YNTFfUEFEX05B TkRGX1JFX0JfX05BTkRGX1JFX0IsCi0JTVg1MV9QQURfTkFOREZfV0VfQl9fTkFOREZfV0VfQiwK LQlNWDUxX1BBRF9OQU5ERl9XUF9CX19OQU5ERl9XUF9CLAotCU1YNTFfUEFEX05BTkRGX0NTMF9f TkFOREZfQ1MwLAotCU1YNTFfUEFEX05BTkRGX1JCMF9fTkFOREZfUkIwLAotCS8qIExBTjkyMjEg SVJRIChHUElPMS45KSAqLwotCU1YNTFfUEFEX0dQSU8xXzlfX0dQSU8xXzksCi0JLyogTUMxMzg5 MiBJUlEgKEdQSU8xLjUpICovCi0JTVg1MV9QQURfR1BJTzFfNV9fR1BJTzFfNSwKLQkvKiBNTUE3 NDU1TFIgSVJRMSAoR1BJTzEuNykgKi8KLQlNWDUxX1BBRF9HUElPMV83X19HUElPMV83LAotCS8q IE1NQTc0NTVMUiBJUlEyIChHUElPMS42KSAqLwotCU1YNTFfUEFEX0dQSU8xXzZfX0dQSU8xXzYs Ci0JLyogVXNlciBHUElPcyAqLwotCU1YNTFfUEFEX0dQSU8xXzBfX0dQSU8xXzAsCi0JTVg1MV9Q QURfR1BJTzFfMV9fR1BJTzFfMSwKLQlNWDUxX1BBRF9HUElPMV84X19HUElPMV84LAotCU1YNTFf UEFEX0RJMV9QSU4xMV9fR1BJTzNfMCwKLQlNWDUxX1BBRF9ESTFfUElOMTJfX0dQSU8zXzEsCi0J TVg1MV9QQURfREkxX1BJTjEzX19HUElPM18yLAotCU1YNTFfUEFEX0RJMV9EMF9DU19fR1BJTzNf MywKLQlNWDUxX1BBRF9ESTFfRDFfQ1NfX0dQSU8zXzQsCi0JTVg1MV9QQURfRElTUEIyX1NFUl9E SU5fX0dQSU8zXzUsCi0JTVg1MV9QQURfRElTUEIyX1NFUl9ESU9fX0dQSU8zXzYsCi0JTVg1MV9Q QURfRElTUEIyX1NFUl9DTEtfX0dQSU8zXzcsCi0JTVg1MV9QQURfRElTUEIyX1NFUl9SU19fR1BJ TzNfOCwKLQlNWDUxX1BBRF9OQU5ERl9SQjFfX0dQSU8zXzksCi0JTVg1MV9QQURfTkFOREZfUkIy X19HUElPM18xMCwKLQlNWDUxX1BBRF9OQU5ERl9SQjNfX0dQSU8zXzExLAotCU1YNTFfUEFEX0NT STFfRDhfX0dQSU8zXzEyLAotCU1YNTFfUEFEX0NTSTFfRDlfX0dQSU8zXzEzLAotCU1YNTFfUEFE X05BTkRGX0NTMV9fR1BJTzNfMTcsCi0JTVg1MV9QQURfTkFOREZfQ1MyX19HUElPM18xOCwKLQlN WDUxX1BBRF9OQU5ERl9DUzNfX0dQSU8zXzE5LAotCU1YNTFfUEFEX05BTkRGX0NTNF9fR1BJTzNf MjAsCi0JTVg1MV9QQURfTkFOREZfQ1M1X19HUElPM18yMSwKLQlNWDUxX1BBRF9OQU5ERl9DUzZf X0dQSU8zXzIyLAorc3RhdGljIGNvbnN0IHN0cnVjdCBjY3hteF9pZGVudCB7CisJY2hhcgkJKmlk X3N0cmluZzsKKwl1bnNpZ25lZCBpbnQJbWVtX3N6OworCXVuc2lnbmVkIGludAljcHVfbWh6Owor CXVuc2lnbmVkIGNoYXIJZXRoMDoxOworCXVuc2lnbmVkIGNoYXIJZXRoMToxOworCXVuc2lnbmVk IGNoYXIJd2xlc3M6MTsKKwl1bnNpZ25lZCBjaGFyCWFjY2VsOjE7Cit9ICpjY3hteF9pZCwgY2N4 bXg1MV9pZHNbXSA9IHsKKwlbMHgwMF0gPSB7IE5VTEwgLyogVW5rbm93biAqLywJCQkJCTAsICAg ICAgIDAsICAgMCwgMCwgMCwgMCB9LAorCVsweDAxXSA9IHsgTlVMTCAvKiBOb3Qgc3VwcG9ydGVk ICovLAkJCQkwLCAgICAgICAwLCAgIDAsIDAsIDAsIDAgfSwKKwlbMHgwMl0gPSB7ICJpLk1YNTE1 QDgwME1IeiwgV2lyZWxlc3MsIFBIWSwgRXh0LiBFdGgsIEFjY2VsIiwJU1pfNTEyTSwgODAwLCAx LCAxLCAxLCAxIH0sCisJWzB4MDNdID0geyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgRXh0LiBFdGgs IEFjY2VsIiwJCVNaXzUxMk0sIDgwMCwgMSwgMSwgMCwgMSB9LAorCVsweDA0XSA9IHsgImkuTVg1 MTVANjAwTUh6LCBXaXJlbGVzcywgUEhZLCBFeHQuIEV0aCwgQWNjZWwiLAlTWl81MTJNLCA2MDAs IDEsIDEsIDEsIDEgfSwKKwlbMHgwNV0gPSB7ICJpLk1YNTE1QDYwME1IeiwgUEhZLCBFeHQuIEV0 aCwgQWNjZWwiLAkJU1pfNTEyTSwgNjAwLCAxLCAxLCAwLCAxIH0sCisJWzB4MDZdID0geyAiaS5N WDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzUxMk0sIDgwMCwgMSwgMCwg MSwgMSB9LAorCVsweDA3XSA9IHsgImkuTVg1MTVAODAwTUh6LCBQSFksIEFjY2VsIiwJCQlTWl81 MTJNLCA4MDAsIDEsIDAsIDAsIDEgfSwKKwlbMHgwOF0gPSB7ICJpLk1YNTE1QDgwME1IeiwgV2ly ZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfMjU2TSwgODAwLCAxLCAwLCAxLCAxIH0sCisJWzB4MDld ID0geyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgQWNjZWwiLAkJCVNaXzI1Nk0sIDgwMCwgMSwgMCwg MCwgMSB9LAorCVsweDBhXSA9IHsgImkuTVg1MTVANjAwTUh6LCBXaXJlbGVzcywgUEhZLCBBY2Nl bCIsCQlTWl8yNTZNLCA2MDAsIDEsIDAsIDEsIDEgfSwKKwlbMHgwYl0gPSB7ICJpLk1YNTE1QDYw ME1IeiwgUEhZLCBBY2NlbCIsCQkJU1pfMjU2TSwgNjAwLCAxLCAwLCAwLCAxIH0sCisJWzB4MGNd ID0geyAiaS5NWDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzEyOE0sIDgw MCwgMSwgMCwgMSwgMSB9LAorCVsweDBkXSA9IHsgImkuTVg1MTJAODAwTUh6IiwJCQkJCVNaXzEy OE0sIDgwMCwgMCwgMCwgMCwgMCB9LAorCVsweDBlXSA9IHsgImkuTVg1MTVAODAwTUh6LCBXaXJl bGVzcywgUEhZLCBBY2NlbCIsCQlTWl81MTJNLCA4MDAsIDEsIDAsIDEsIDEgfSwKKwlbMHgwZl0g PSB7ICJpLk1YNTE1QDYwME1IeiwgUEhZLCBBY2NlbCIsCQkJU1pfMTI4TSwgNjAwLCAxLCAwLCAw LCAxIH0sCisJWzB4MTBdID0geyAiaS5NWDUxNUA2MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2Vs IiwJCVNaXzEyOE0sIDYwMCwgMSwgMCwgMSwgMSB9LAorCVsweDExXSA9IHsgImkuTVg1MTVAODAw TUh6LCBQSFksIEFjY2VsIiwJCQlTWl8xMjhNLCA4MDAsIDEsIDAsIDAsIDEgfSwKKwlbMHgxMl0g PSB7ICJpLk1YNTE1QDYwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfNTEyTSwgNjAw LCAxLCAwLCAxLCAxIH0sCisJWzB4MTNdID0geyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgQWNjZWwi LAkJCVNaXzUxMk0sIDgwMCwgMSwgMCwgMCwgMSB9LAogfTsKIAotI2RlZmluZSBDQ1hNWDUxX0VD U1BJMV9DUzAJSU1YX0dQSU9fTlIoNCwgMjQpCi0jZGVmaW5lIENDWE1YNTFfRUNTUEkxX0NTMQlJ TVhfR1BJT19OUig0LCAyNSkKK3N0YXRpYyB1MzIgYm9hcmRzZXJpYWw7CiAKLXN0YXRpYyBpbnQg ZWNzcGlfMF9jc1tdID0geyBDQ1hNWDUxX0VDU1BJMV9DUzAsIENDWE1YNTFfRUNTUEkxX0NTMSwg fTsKLQotc3RhdGljIHN0cnVjdCBzcGlfaW14X21hc3RlciBlY3NwaV8wX2RhdGEgPSB7Ci0JLmNo aXBzZWxlY3QJPSBlY3NwaV8wX2NzLAotCS5udW1fY2hpcHNlbGVjdAk9IEFSUkFZX1NJWkUoZWNz cGlfMF9jcyksCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9ib2FyZF9pbmZvIGNjeG14 NTFfc3BpX2JvYXJkX2luZm9bXSA9IHsKLQl7Ci0JCS5uYW1lCQk9ICJtYzEzODkyIiwKLQkJLmJ1 c19udW0JPSAwLAotCQkuY2hpcF9zZWxlY3QJPSAwLAotCX0sCi19OwotCi1zdGF0aWMgc3RydWN0 IGlteHVzYl9wbGF0Zm9ybWRhdGEgY2N4bXg1MV9vdGdfcGRhdGEgPSB7Ci0JLmZsYWdzCT0gTVhD X0VIQ0lfTU9ERV9VVE1JXzE2X0JJVCB8IE1YQ19FSENJX1BPV0VSX1BJTlNfRU5BQkxFRCwKLQku bW9kZQk9IElNWF9VU0JfTU9ERV9IT1NULAotfTsKLQotc3RhdGljIGludCBjY3hteDUxX3Bvd2Vy X2luaXQodm9pZCkKK3N0YXRpYyB2b2lkIGNjeG14NTFfcG93ZXJfaW5pdChzdHJ1Y3QgbWMxM3h4 eCAqbWMxM3h4eCkKIHsKLQlzdHJ1Y3QgbWMxM3h4eCAqbWMxM3h4eF9kZXY7CiAJdTMyIHZhbDsK IAotCW1jMTN4eHhfZGV2ID0gbWMxM3h4eF9nZXQoKTsKLQlpZiAoIW1jMTN4eHhfZGV2KQotCQly ZXR1cm4gLUVOT0RFVjsKLQotCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJf UkVHX1BPV0VSX01JU0MsICZ2YWwpOwotCS8qIFJlc2V0IGRldmljZXMgYnkgY2xlYXJpbmcgR1Aw MS1HUE80ICovCi0JdmFsICY9IH4oKDEgPDwgMjEpIHwgKDMgPDwgMTIpIHwgKDMgPDwgMTApIHwg KDMgPDwgOCkgfCAoMyA8PCA2KSk7Ci0JLyogU3dpdGNoaW5nIG9mZiB0aGUgUFdHVDFTUElFTiAq LwotCXZhbCB8PSAoMSA8PCAxNSk7Ci0JLyogU3dpdGNoaW5nIG9uIHRoZSBQV0dUMlNQSUVOICov Ci0JdmFsICY9IH4oMSA8PCAxNik7Ci0JLyogRW5hYmxlIHNob3J0IGNpcmN1aXQgcHJvdGVjdGlv biAqLwotCXZhbCB8PSAoMSA8PCAwKTsKLQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2Rldiwg TUMxMzg5Ml9SRUdfUE9XRVJfTUlTQywgdmFsKTsKLQotCS8qIEFsbG93IGNoYXJnZXIgdG8gY2hh cmdlICg0LjJWIGFuZCA1NjBtQSkgKi8KLQl2YWwgPSAweDIzODAzMzsKLQltYzEzeHh4X3JlZ193 cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfQ0hBUkdFLCB2YWwpOwotCi0JaWYgKGlteF9z aWxpY29uX3JldmlzaW9uKCkgPCBJTVhfQ0hJUF9SRVZfM18wKSB7Ci0JCS8qIFNldCBjb3JlIHZv bHRhZ2UgKFNXMSkgdG8gMS4xViAqLwotCQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBN QzEzODkyX1JFR19TV18wLCAmdmFsKTsKLQkJdmFsICY9IH4weDAwMDAxZjsKLQkJdmFsIHw9ICAw eDAwMDAxNDsKLQkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NX XzAsIHZhbCk7Ci0KLQkJLyogU2V0dXAgVkNDIChTVzIpIHRvIDEuMjUgKi8KLQkJbWMxM3h4eF9y ZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMSwgJnZhbCk7Ci0JCXZhbCAmPSB+ MHgwMDAwMWY7Ci0JCXZhbCB8PSAgMHgwMDAwMWE7Ci0JCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4 eHhfZGV2LCBNQzEzODkyX1JFR19TV18xLCB2YWwpOwotCi0JCS8qIFNldHVwIDFWMl9ESUcxIChT VzMpIHRvIDEuMjUgKi8KLQkJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9S RUdfU1dfMiwgJnZhbCk7Ci0JCXZhbCAmPSB+MHgwMDAwMWY7Ci0JCXZhbCB8PSAgMHgwMDAwMWE7 Ci0JCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV18yLCB2YWwp OwotCX0gZWxzZSB7Ci0JCS8qIFNldHVwIFZDQyAoU1cyKSB0byAxLjIyNSAqLwotCQltYzEzeHh4 X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV18xLCAmdmFsKTsKLQkJdmFsICY9 IH4weDAwMDAxZjsKLQkJdmFsIHw9ICAweDAwMDAxOTsKLQkJbWMxM3h4eF9yZWdfd3JpdGUobWMx M3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzEsIHZhbCk7Ci0KLQkJLyogU2V0dXAgMVYyX0RJRzEg KFNXMykgdG8gMS4yICovCi0JCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJf UkVHX1NXXzIsICZ2YWwpOwotCQl2YWwgJj0gfjB4MDAwMDFmOwotCQl2YWwgfD0gIDB4MDAwMDE4 OwotCQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMiwgdmFs KTsKLQl9Ci0KLQlpZiAobWMxM3h4eF9yZXZpc2lvbihtYzEzeHh4X2RldikgPD0gTUMxMzg5Ml9S RVZJU0lPTl8yXzApIHsKLQkJLyogU2V0IHN3aXRjaGVycyBpbiBQV00gbW9kZSBmb3IgQXRsYXMg Mi4wIGFuZCBsb3dlciAqLwotCQkvKiBTZXR1cCB0aGUgc3dpdGNoZXIgbW9kZSBmb3IgU1cxICYg U1cyKi8KLQkJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfNCwg JnZhbCk7Ci0JCXZhbCAmPSB+MHgwMDNjMGY7Ci0JCXZhbCB8PSAgMHgwMDE0MDU7Ci0JCW1jMTN4 eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV180LCB2YWwpOwotCi0JCS8q IFNldHVwIHRoZSBzd2l0Y2hlciBtb2RlIGZvciBTVzMgJiBTVzQgKi8KLQkJbWMxM3h4eF9yZWdf cmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfNSwgJnZhbCk7Ci0JCXZhbCAmPSB+MHgw MDBmMGY7Ci0JCXZhbCB8PSAgMHgwMDA1MDU7Ci0JCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhf ZGV2LCBNQzEzODkyX1JFR19TV181LCB2YWwpOwotCX0gZWxzZSB7Ci0JCS8qIFNldCBzd2l0Y2hl cnMgaW4gQXV0byBpbiBOT1JNQUwgbW9kZSAmIFNUQU5EQlkgbW9kZSBmb3IgQXRsYXMgMi4wYSAq LwotCQkvKiBTZXR1cCB0aGUgc3dpdGNoZXIgbW9kZSBmb3IgU1cxICYgU1cyKi8KLQkJbWMxM3h4 eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfNCwgJnZhbCk7Ci0JCXZhbCAm PSB+MHgwMDNjMGY7Ci0JCXZhbCB8PSAgMHgwMDIwMDg7Ci0JCW1jMTN4eHhfcmVnX3dyaXRlKG1j MTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV180LCB2YWwpOwotCi0JCS8qIFNldHVwIHRoZSBzd2l0 Y2hlciBtb2RlIGZvciBTVzMgJiBTVzQgKi8KLQkJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2Rl diwgTUMxMzg5Ml9SRUdfU1dfNSwgJnZhbCk7Ci0JCXZhbCAmPSB+MHgwMDBmMGY7Ci0JCXZhbCB8 PSAgMHgwMDA4MDg7Ci0JCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JF R19TV181LCB2YWwpOwotCX0KLQotCS8qIFNldCBWVklERU8gdG8gMi43NzVWLCBWQVVESU8gdG8g M1YsIFZTRCB0byAzLjE1ViAqLwotCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4 OTJfUkVHX1NFVFRJTkdfMSwgJnZhbCk7Ci0JdmFsICY9IH4weDAwMDFmYzsKLQl2YWwgfD0gIDB4 MDAwMWY0OwotCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TRVRU SU5HXzEsIHZhbCk7CisJLyogQ2xlYXIgR1AwMS1HUE80LCBlbmFibGUgc2hvcnQgY2lyY3VpdCBw cm90ZWN0aW9uLCAgUFdHVDFTUElFTiBvZmYgKi8KKwl2YWwgPSBNQzEzODkyX1BPV0VSX01JU0Nf UkVHU0NQRU4gfCBNQzEzODkyX1BPV0VSX01JU0NfUFdHVDFTUElFTjsKKwl2YWwgfD0gTUMxMzg5 Ml9QT1dFUl9NSVNDX0dQTzRBRElOOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4 OTJfUkVHX1BPV0VSX01JU0MsIHZhbCk7CisKKwkvKiBTZXQgSUNIUkcgaW4gZXh0ZXJuYWxseSBw b3dlcmVkIG1vZGUsIDQuMlYsIERpc2FibGUgdGhlcm1pc3RvciAqLworCW1jMTN4eHhfcmVnX3dy aXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVHX0NIQVJHRSwgMHhhMzgyN2IpOworCisJLyogU2V0IGNv cmUgdm9sdGFnZSAoU1cxKSB0byAxLjFWIE5PUk1BTCwgMS4wNVYgU1RBTkRCWSAqLworCW1jMTN4 eHhfcmVnX3JlYWQobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU1dfMCwgJnZhbCk7CisJdmFsICY9IH4o TUMxMzg5Ml9TV3hfU1d4X1ZPTFRfTUFTSyA8PCBNQzEzODkyX1NXTU9ERTFfU0hJRlQpOworCXZh bCB8PSBNQzEzODkyX1NXeF9TV3hfMV8xMDBWIDw8IE1DMTM4OTJfU1dNT0RFMV9TSElGVDsKKwl2 YWwgJj0gfihNQzEzODkyX1NXeF9TV3hfVk9MVF9NQVNLIDw8IE1DMTM4OTJfU1dNT0RFMl9TSElG VCk7CisJdmFsIHw9IE1DMTM4OTJfU1d4X1NXeF8xXzA1MFYgPDwgTUMxMzg5Ml9TV01PREUyX1NI SUZUOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NXXzAsIHZhbCk7 CisKKwkvKiBTZXR1cCBWQ0MgKFNXMikgdG8gMS4yMjUgTk9STUFMLCAxLjE3NVYgU1RBTkRCWSAq LworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU1dfMSwgJnZhbCk7CisJ dmFsICY9IH4oTUMxMzg5Ml9TV3hfU1d4X1ZPTFRfTUFTSyA8PCBNQzEzODkyX1NXTU9ERTFfU0hJ RlQpOworCXZhbCB8PSBNQzEzODkyX1NXeF9TV3hfMV8yMjVWIDw8IE1DMTM4OTJfU1dNT0RFMV9T SElGVDsKKwl2YWwgJj0gfihNQzEzODkyX1NXeF9TV3hfVk9MVF9NQVNLIDw8IE1DMTM4OTJfU1dN T0RFMl9TSElGVCk7CisJdmFsIHw9IE1DMTM4OTJfU1d4X1NXeF8xXzE3NVYgPDwgTUMxMzg5Ml9T V01PREUyX1NISUZUOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NX XzEsIHZhbCk7CisKKwkvKiBTZXR1cCAxVjJfRElHMSAoU1czKSB0byAxLjIgTk9STUFMLCAxLjE1 ViBTVEFOREJZICovCisJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4LCBNQzEzODkyX1JFR19TV18y LCAmdmFsKTsKKwl2YWwgJj0gfihNQzEzODkyX1NXeF9TV3hfVk9MVF9NQVNLIDw8IE1DMTM4OTJf U1dNT0RFMV9TSElGVCk7CisJdmFsIHw9IE1DMTM4OTJfU1d4X1NXeF8xXzIwMFYgPDwgTUMxMzg5 Ml9TV01PREUxX1NISUZUOworCXZhbCAmPSB+KE1DMTM4OTJfU1d4X1NXeF9WT0xUX01BU0sgPDwg TUMxMzg5Ml9TV01PREUyX1NISUZUKTsKKwl2YWwgfD0gTUMxMzg5Ml9TV3hfU1d4XzFfMTUwViA8 PCBNQzEzODkyX1NXTU9ERTJfU0hJRlQ7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMx Mzg5Ml9SRUdfU1dfMiwgdmFsKTsKKworCS8qIFNldCBTVzEtU1c0IHN3aXRjaGVyIGluIEF1dG8g aW4gTk9STUFMICYgU1RBTkRCWSBtb2RlICovCisJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4LCBN QzEzODkyX1JFR19TV180LCAmdmFsKTsKKwl2YWwgJj0gfihNQzEzODkyX1NXTU9ERV9NQVNLIDw8 IE1DMTM4OTJfU1dNT0RFMV9TSElGVCk7CisJdmFsIHw9IE1DMTM4OTJfU1dNT0RFX0FVVE9fQVVU TyA8PCBNQzEzODkyX1NXTU9ERTFfU0hJRlQ7CisJdmFsICY9IH4oTUMxMzg5Ml9TV01PREVfTUFT SyA8PCBNQzEzODkyX1NXTU9ERTJfU0hJRlQpOworCXZhbCB8PSBNQzEzODkyX1NXTU9ERV9BVVRP X0FVVE8gPDwgTUMxMzg5Ml9TV01PREUyX1NISUZUOworCS8qIERpc2FibGUgY3VycmVudCBsaW1p dCAqLworCXZhbCB8PSAxIDw8IDIyOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4 OTJfUkVHX1NXXzQsIHZhbCk7CisKKwltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHgsIE1DMTM4OTJf UkVHX1NXXzUsICZ2YWwpOworCXZhbCAmPSB+KE1DMTM4OTJfU1dNT0RFX01BU0sgPDwgTUMxMzg5 Ml9TV01PREUzX1NISUZUKTsKKwl2YWwgfD0gTUMxMzg5Ml9TV01PREVfQVVUT19BVVRPIDw8IE1D MTM4OTJfU1dNT0RFM19TSElGVDsKKwl2YWwgJj0gfihNQzEzODkyX1NXTU9ERV9NQVNLIDw8IE1D MTM4OTJfU1dNT0RFNF9TSElGVCk7CisJdmFsIHw9IE1DMTM4OTJfU1dNT0RFX0FVVE9fQVVUTyA8 PCBNQzEzODkyX1NXTU9ERTRfU0hJRlQ7CisJLyogRW5hYmxlIFNXQlNUICovCisJdmFsIHw9IDEg PDwgMjA7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfU1dfNSwgdmFs KTsKKworCS8qIFNldCBWVklERU89Mi43NzVWLCBWQVVESU89M1YsIFZTRD0zLjE1ViAqLworCXZh bCA9IE1DMTM4OTJfU0VUVElOR18xX1ZWSURFT18yXzc3NSB8IE1DMTM4OTJfU0VUVElOR18xX1ZB VURJT18zXzA7CisJdmFsIHw9IE1DMTM4OTJfU0VUVElOR18xX1ZTRF8zXzE1OworCW1jMTN4eHhf cmVnX3dyaXRlKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NFVFRJTkdfMSwgdmFsKTsKIAogCS8qIENv bmZpZ3VyZSBWR0VOMyBhbmQgVkNBTSByZWd1bGF0b3JzIHRvIHVzZSBleHRlcm5hbCBQTlAgKi8K LQl2YWwgPSAweDAwMDIwODsKLQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5 Ml9SRUdfTU9ERV8xLCB2YWwpOworCXZhbCA9IE1DMTM4OTJfTU9ERV8xX1ZHRU4zQ09ORklHIHwg TUMxMzg5Ml9NT0RFXzFfVkNBTUNPTkZJRzsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBN QzEzODkyX1JFR19NT0RFXzEsIHZhbCk7CiAJdWRlbGF5KDIwMCk7CiAKLQkvKiBTZXQgVkdFTjMg dG8gMS44ViAqLwotCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NF VFRJTkdfMCwgJnZhbCk7Ci0JdmFsICY9IH4oMSA8PCAxNCk7Ci0JbWMxM3h4eF9yZWdfd3JpdGUo bWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NFVFRJTkdfMCwgdmFsKTsKKwkvKiBTZXQgVkdFTjI9 My4xNVYsIFZHRU4zPTEuOFYsIFZESUc9MS4yNVYsIFZDQU09Mi43NVYgKi8KKwltYzEzeHh4X3Jl Z19yZWFkKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1NFVFRJTkdfMCwgJnZhbCk7CisJdmFsICY9IH4o TUMxMzg5Ml9TRVRUSU5HXzBfVkdFTjJfTUFTSyB8IE1DMTM4OTJfU0VUVElOR18wX1ZHRU4zX01B U0spOworCXZhbCB8PSBNQzEzODkyX1NFVFRJTkdfMF9WR0VOMl8zXzE1IHwgTUMxMzg5Ml9TRVRU SU5HXzBfVkdFTjNfMV84OworCXZhbCAmPSB+KE1DMTM4OTJfU0VUVElOR18wX1ZESUdfTUFTSyB8 IE1DMTM4OTJfU0VUVElOR18wX1ZDQU1fTUFTSyk7CisJdmFsIHw9IE1DMTM4OTJfU0VUVElOR18w X1ZESUdfMV8yNSB8IE1DMTM4OTJfU0VUVElOR18wX1ZDQU1fMl83NTsKKwltYzEzeHh4X3JlZ193 cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19TRVRUSU5HXzAsIHZhbCk7CiAKLQkvKiBFbmFibGUg VkdFTjMsIFZDQU0sIFZBVURJTywgVlZJREVPLCBWU0QgcmVndWxhdG9ycyAqLwotCXZhbCA9IDB4 MDQ5MjQ5OwotCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19NT0RF XzEsIHZhbCk7CisJLyogRW5hYmxlIE9URyBmdW5jdGlvbiAqLworCW1jMTN4eHhfcmVnX3dyaXRl KG1jMTN4eHgsIE1DMTM4OTJfUkVHX1VTQjEsIDB4NDA5KTsKIAotCS8qIEVuYWJsZSBVU0IxIGNo YXJnZXIgKi8KLQl2YWwgPSAweDAwMDQwOTsKLQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2Rl diwgTUMxMzg5Ml9SRUdfVVNCMSwgdmFsKTsKLQotCS8qIFNldCBWQ09JTiB0byAzLjBWIGFuZCBF bmFibGUgSXQgKi8KLQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19Q T1dFUl9DVEwwLCAmdmFsKTsKKwkvKiBFbmFibGUgVkdFTjMsIFZDQU0sIFZBVURJTywgVlZJREVP LCBWU0QgcmVndWxhdG9ycyAqLworCXZhbCA9IE1DMTM4OTJfTU9ERV8xX1ZHRU4zRU4gfCBNQzEz ODkyX01PREVfMV9WR0VOM0NPTkZJRzsKKwl2YWwgfD0gTUMxMzg5Ml9NT0RFXzFfVkNBTUVOIHwg TUMxMzg5Ml9NT0RFXzFfVkNBTUNPTkZJRzsKKwl2YWwgfD0gTUMxMzg5Ml9NT0RFXzFfVlZJREVP RU4gfCBNQzEzODkyX01PREVfMV9WQVVESU9FTjsKKwl2YWwgfD0gTUMxMzg5Ml9NT0RFXzFfVlNE RU47CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfTU9ERV8xLCB2YWwp OworCisJLyogU2V0IFZDT0lOPTMuMFYsIEtlZXBzIFZTUlRDIGFuZCBDTEszMktNQ1UgKi8KKwlt YzEzeHh4X3JlZ19yZWFkKG1jMTN4eHgsIE1DMTM4OTJfUkVHX1BPV0VSX0NUTDAsICZ2YWwpOwog CXZhbCAmPSB+KDcgPDwgMjApOwotCXZhbCB8PSAoNCA8PCAyMCkgfCAoMSA8PCAyMyk7Ci0JbWMx M3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1BPV0VSX0NUTDAsIHZhbCk7 Ci0JLyogS2VlcHMgVlNSVEMgYW5kIENMSzMyS01DVSAqLwotCXZhbCB8PSAoMSA8PCA0KTsKLQlt YzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfUE9XRVJfQ1RMMCwgdmFs KTsKLQotCS8qIERlLWFzc2VydCByZXNldCBvZiBleHRlcm5hbCBkZXZpY2VzIG9uIEdQMDEsIEdQ TzIsIEdQTzMgYW5kIEdQTzQgKi8KLQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEz ODkyX1JFR19QT1dFUl9NSVNDLCAmdmFsKTsKKwl2YWwgfD0gKDEgPDwgNCkgfCAoNCA8PCAyMCkg fCAoMSA8PCAyMyk7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eCwgTUMxMzg5Ml9SRUdfUE9X RVJfQ1RMMCwgdmFsKTsKKworCS8qIERlLWFzc2VydCByZXNldCBvZiBleHRlcm5hbCBkZXZpY2Vz IG9uIEdQMDEtR1BPNCAqLworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eCwgTUMxMzg5Ml9SRUdf UE9XRVJfTUlTQywgJnZhbCk7CiAJLyogR1BPMSAtIEV4dGVybmFsICovCiAJLyogR1AwMiAtIExB TjkyMjEgUG93ZXIgKi8KIAkvKiBHUDAzIC0gRkVDIFJlc2V0ICovCiAJLyogR1AwNCAtIFdpcmVs ZXNzIFBvd2VyICovCi0JaWYgKElTX0VOQUJMRUQoQ09ORklHX0RSSVZFUl9ORVRfU01DOTExWCkg JiYgY2N4bXg1MV9pZC0+ZXRoMSkgewotCQl2YWwgfD0gKDEgPDwgOCk7Ci0JCW1kZWxheSg1MCk7 CisJaWYgKGNjeG14X2lkLT5ldGgxKSB7CisJCXZhbCB8PSBNQzEzODkyX1BPV0VSX01JU0NfR1BP MkVOOworCQltZGVsYXkoMTAwKTsKIAl9Ci0JaWYgKElTX0VOQUJMRUQoQ09ORklHX0RSSVZFUl9O RVRfRkVDX0lNWCkgJiYgY2N4bXg1MV9pZC0+ZXRoMCkKLQkJdmFsIHw9ICgxIDw8IDEwKTsKLQlp ZiAoY2N4bXg1MV9pZC0+d2xlc3MpCi0JCXZhbCB8PSAoMSA8PCAxMik7Ci0JbWMxM3h4eF9yZWdf d3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1BPV0VSX01JU0MsIHZhbCk7CisJaWYgKGNj eG14X2lkLT5ldGgwKQorCQl2YWwgfD0gTUMxMzg5Ml9QT1dFUl9NSVNDX0dQTzNFTjsKKwlpZiAo Y2N4bXhfaWQtPndsZXNzKQorCQl2YWwgfD0gTUMxMzg5Ml9QT1dFUl9NSVNDX0dQTzRFTjsKKwlt YzEzeHh4X3JlZ193cml0ZShtYzEzeHh4LCBNQzEzODkyX1JFR19QT1dFUl9NSVNDLCB2YWwpOwog CiAJdWRlbGF5KDEwMCk7CiAKLQlyZXR1cm4gMDsKKwljb25zb2xlX2ZsdXNoKCk7CisJaW14NTFf aW5pdF9sb3dsZXZlbChjY3hteF9pZC0+Y3B1X21oeik7CisJY2xvY2tfbm90aWZpZXJfY2FsbF9j aGFpbigpOworCisJcHJpbnRmKCJNQzEzODkyIFBNSUMgaW5pdGlhbGl6ZWQuXG4iKTsKIH0KIAot LyoKLSAqIE9uIHRoaXMgYm9hcmQgdGhlIFNEUkFNIGlzIGFsd2F5cyBjb25maWd1cmVkIGZvciA1 MTJNaWIuIFRoZSByZWFsCi0gKiBzaXplIGlzIGRldGVybWluZWQgYnkgdGhlIGJvYXJkIGlkIHJl YWQgZnJvbSB0aGUgSUlNIG1vZHVsZS4KLSAqLwotc3RhdGljIGludCBjY3hteDUxX3NkcmFtX2Zp eHVwKHZvaWQpCitzdGF0aWMgdm9pZCBjY3hteDUxX2Rpc2FibGVfZGV2aWNlKHN0cnVjdCBkZXZp Y2Vfbm9kZSAqcm9vdCwgY29uc3QgY2hhciAqbGFiZWwpCiB7Ci0JaW14X2VzZGN0bF9kaXNhYmxl KCk7CisJc3RydWN0IGRldmljZV9ub2RlICpucCA9IG9mX2ZpbmRfbm9kZV9ieV9uYW1lKHJvb3Qs IGxhYmVsKTsKKwlpZiAobnApCisJCW9mX2RldmljZV9kaXNhYmxlKG5wKTsKK30KKworc3RhdGlj IGludCBjY3hteDUxX2JvYXJkX2ZpeHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqcm9vdCwgdm9pZCAq dW51c2VkKQoreworCWNoYXIgKnNlcmlhbDsKKworCWlmICghY2N4bXhfaWQtPmFjY2VsKQorCQlj Y3hteDUxX2Rpc2FibGVfZGV2aWNlKHJvb3QsICJtbWE3NDU1bEAxZCIpOworCisJaWYgKCFjY3ht eF9pZC0+ZXRoMCkKKwkJY2N4bXg1MV9kaXNhYmxlX2RldmljZShyb290LCAiZXRoZXJuZXRAODNm ZWMwMDAiKTsKKworCWlmICghY2N4bXhfaWQtPmV0aDEpCisJCWNjeG14NTFfZGlzYWJsZV9kZXZp Y2Uocm9vdCwgImxhbjkyMjFANSwwIik7CisKKwlpZiAoIWNjeG14X2lkLT53bGVzcykKKwkJY2N4 bXg1MV9kaXNhYmxlX2RldmljZShyb290LCAiZXNkaGNANzAwMDgwMDAiKTsKKworCXNlcmlhbCA9 IGJhc3ByaW50ZigiJTA4eCUwOHgiLCAwLCBib2FyZHNlcmlhbCk7CisJb2Zfc2V0X3Byb3BlcnR5 KHJvb3QsICJzZXJpYWwtbnVtYmVyIiwgc2VyaWFsLCBzdHJsZW4oc2VyaWFsKSArIDEsIDEpOwor CWZyZWUoc2VyaWFsKTsKIAogCXJldHVybiAwOwogfQotcG9zdGNvcmVfaW5pdGNhbGwoY2N4bXg1 MV9zZHJhbV9maXh1cCk7CiAKLXN0YXRpYyBpbnQgY2N4bXg1MV9tZW1vcnlfaW5pdCh2b2lkKQor c3RhdGljIF9faW5pdCBpbnQgY2N4bXg1MV9pc19jb21wYXRpYmxlKHZvaWQpCiB7CisJcmV0dXJu IG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgiZGlnaSxjb25uZWN0Y29yZS1jY3hteDUxLXNvbSIp OworfQorCitzdGF0aWMgX19pbml0IGludCBjY3hteDUxX3NkcmFtX2ZpeHVwKHZvaWQpCit7CisJ aWYgKCFjY3hteDUxX2lzX2NvbXBhdGlibGUoKSkKKwkJcmV0dXJuIDA7CisKIAlhcm1fYWRkX21l bV9kZXZpY2UoInJhbTAiLCBNWDUxX0NTRDBfQkFTRV9BRERSLCBTWl8xMjhNKTsKIAorCS8qCisJ ICogT24gdGhpcyBib2FyZCB0aGUgU0RSQU0gaXMgYWx3YXlzIGNvbmZpZ3VyZWQgZm9yIDUxMk1p Yi4gVGhlIHJlYWwKKwkgKiBzaXplIGlzIGRldGVybWluZWQgYnkgdGhlIGJvYXJkIGlkIHJlYWQg ZnJvbSB0aGUgSUlNIG1vZHVsZS4KKwkgKi8KKwlpbXhfZXNkY3RsX2Rpc2FibGUoKTsKKworCW9m X3JlZ2lzdGVyX2ZpeHVwKGNjeG14NTFfYm9hcmRfZml4dXAsIE5VTEwpOworCiAJcmV0dXJuIDA7 CiB9Ci1tZW1faW5pdGNhbGwoY2N4bXg1MV9tZW1vcnlfaW5pdCk7Citwb3N0Y29yZV9pbml0Y2Fs bChjY3hteDUxX3NkcmFtX2ZpeHVwKTsKIAotc3RhdGljIGludCBjY3hteDUxX2RldmljZXNfaW5p dCh2b2lkKQorc3RhdGljIF9faW5pdCBpbnQgY2N4bXg1MV9pbml0KHZvaWQpCiB7CisJY2hhciBt YW5sb2MgPSAnTic7CiAJdTggaHdpZFs2XTsKLQlpbnQgcHdyOwotCWNoYXIgbWFubG9jOwotCi0J aWYgKChpbXhfaWltX3JlYWQoMSwgOSwgaHdpZCwgc2l6ZW9mKGh3aWQpKSAhPSBzaXplb2YoaHdp ZCkpIHx8IChod2lkWzBdIDwgMHgwMikgfHwgKGh3aWRbMF0gPj0gQVJSQVlfU0laRShjY3hteDUx X2lkcykpKQotCQltZW1zZXQoaHdpZCwgMHgwMCwgc2l6ZW9mKGh3aWQpKTsKLQotCWNjeG14NTFf aWQgPSAmY2N4bXg1MV9pZHNbaHdpZFswXV07Ci0JcHJpbnRmKCJNb2R1bGUgVmFyaWFudDogJXMg KDB4JTAyeClcbiIsIGNjeG14NTFfaWQtPmlkX3N0cmluZywgaHdpZFswXSk7Ci0KLQlpZiAoaHdp ZFswXSkgewotCQlwcmludGYoIk1vZHVsZSBIVyBSZXYgOiAlMDJ4XG4iLCBod2lkWzFdICsgMSk7 Ci0JCXN3aXRjaCAoaHdpZFsyXSAmIDB4YzApIHsKLQkJY2FzZSAweDAwOgotCQkJbWFubG9jID0g J0InOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHg0MDoKLQkJCW1hbmxvYyA9ICdXJzsKLQkJCWJyZWFr OwotCQljYXNlIDB4ODA6Ci0JCQltYW5sb2MgPSAnUyc7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoK LQkJCW1hbmxvYyA9ICdOJzsKLQkJCWJyZWFrOwotCQl9Ci0JCXByaW50ZigiTW9kdWxlIFNlcmlh bCA6ICVjJWRcbiIsIG1hbmxvYywgKChod2lkWzJdICYgMHgzZikgPDwgMjQpIHwgKGh3aWRbM10g PDwgMTYpIHwgKGh3aWRbNF0gPDwgOCkgfCBod2lkWzVdKTsKLQkJaWYgKChjY3hteDUxX2lkLT5t ZW1fc3ogLSBTWl8xMjhNKSA+IDApCi0JCQlhcm1fYWRkX21lbV9kZXZpY2UoInJhbTEiLCBNWDUx X0NTRDBfQkFTRV9BRERSICsgU1pfMTI4TSwgY2N4bXg1MV9pZC0+bWVtX3N6IC0gU1pfMTI4TSk7 Ci0JfSBlbHNlCi0JCXJldHVybiAtRU5PU1lTOwotCi0JaW14NTFfYWRkX3VhcnQxKCk7Ci0JaW14 NTFfYWRkX3VhcnQyKCk7Ci0KLQlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhjY3hteDUxX3NwaV9i b2FyZF9pbmZvLCBBUlJBWV9TSVpFKGNjeG14NTFfc3BpX2JvYXJkX2luZm8pKTsKLQlpbXg1MV9h ZGRfc3BpMCgmZWNzcGlfMF9kYXRhKTsKLQotCXB3ciA9IGNjeG14NTFfcG93ZXJfaW5pdCgpOwot CWNvbnNvbGVfZmx1c2goKTsKLQlpbXg1MV9pbml0X2xvd2xldmVsKChjY3hteDUxX2lkLT5pbmR1 c3RyaWFsIHx8IHB3cikgPyA2MDAgOiA4MDApOwotCWNsb2NrX25vdGlmaWVyX2NhbGxfY2hhaW4o KTsKLQlpZiAocHdyKQotCQlwcmludGYoIkNvdWxkIG5vdCBzZXR1cCBQTUlDLiBDbG9ja3Mgbm90 IGFkanVzdGVkLlxuIik7CiAKLQlpbXg1MV9hZGRfaTJjMShOVUxMKTsKKwlpZiAoIWNjeG14NTFf aXNfY29tcGF0aWJsZSgpKQorCQlyZXR1cm4gMDsKIAotCWlteDUxX2FkZF9uYW5kKCZuYW5kX2lu Zm8pOwotCWRldmZzX2FkZF9wYXJ0aXRpb24oIm5hbmQwIiwgMHgwMDAwMCwgMHg4MDAwMCwgREVW RlNfUEFSVElUSU9OX0ZJWEVELCAic2VsZl9yYXciKTsKLQlkZXZfYWRkX2JiX2Rldigic2VsZl9y YXciLCAic2VsZjAiKTsKLQlkZXZmc19hZGRfcGFydGl0aW9uKCJuYW5kMCIsIDB4ODAwMDAsIDB4 NDAwMDAsIERFVkZTX1BBUlRJVElPTl9GSVhFRCwgImVudl9yYXciKTsKLQlkZXZfYWRkX2JiX2Rl digiZW52X3JhdyIsICJlbnYwIik7Ci0KLQlpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJJVkVSX05F VF9GRUNfSU1YKSAmJiBjY3hteDUxX2lkLT5ldGgwICYmICFwd3IpIHsKLQkJZXRoX3JlZ2lzdGVy X2V0aGFkZHIoMCwgaHdpZCk7Ci0JCWlteDUxX2FkZF9mZWMoJmZlY19pbmZvKTsKKwlpZiAoKGlt eF9paW1fcmVhZCgxLCA5LCBod2lkLCBzaXplb2YoaHdpZCkpICE9IHNpemVvZihod2lkKSkgfHwK KwkgICAgKGh3aWRbMF0gPCAweDAyKSB8fCAoaHdpZFswXSA+PSBBUlJBWV9TSVpFKGNjeG14NTFf aWRzKSkpIHsKKwkJcHJpbnRmKCJVbmtub3duIGJvYXJkIHZhcmlhbnQgKDB4JTAyeCkuIFN5c3Rl bSBoYWx0ZWQuXG4iLCBod2lkWzBdKTsKKwkJaGFuZygpOwogCX0KIAotCWlmIChJU19FTkFCTEVE KENPTkZJR19EUklWRVJfTkVUX1NNQzkxMVgpICYmIGNjeG14NTFfaWQtPmV0aDEgJiYgIXB3cikg ewotCQkvKiBDb25maWd1cmUgdGhlIFdFSU0gQ1M1IHRpbW1pbmcsIGJ1cyB3aWR0aCwgZXRjICov Ci0JCS8qIDE2IGJpdCBvbiBEQVRBWzMxLi4xNl0sIG5vdCBtdWx0aXBsZXhlZCwgYXN5bmMgKi8K LQkJd3JpdGVsKDB4MDA0MjAwODEsIE1YNTFfV0VJTV9CQVNFX0FERFIgKyBXRUlNX0NTeEdDUjEo NSkpOwotCQkvKiBBREggaGFzIG5vdCBlZmZlY3Qgb24gbm9uIG11eGVkIGJ1cyAqLwotCQl3cml0 ZWwoMCwgTVg1MV9XRUlNX0JBU0VfQUREUiArIFdFSU1fQ1N4R0NSMig1KSk7Ci0JCS8qIFJXU0M9 NTAsIFJBRFZBPTIsIFJBRFZOPTYsIE9FQT0wLCBPRU49MCwgUkNTQT0wLCBSQ1NOPTAgKi8KLQkJ d3JpdGVsKDB4MzIyNjAwMDAsIE1YNTFfV0VJTV9CQVNFX0FERFIgKyBXRUlNX0NTeFJDUjEoNSkp OwotCQkvKiBBUFI9MCAqLwotCQl3cml0ZWwoMCwgTVg1MV9XRUlNX0JBU0VfQUREUiArIFdFSU1f Q1N4UkNSMig1KSk7Ci0JCS8qIFdBTD0wLCBXQkVEPTEsIFdXU0M9NTAsIFdBRFZBPTIsIFdBRFZO PTYsIFdFQT0wLCBXRU49MCwgV0NTQT0wICovCi0JCXdyaXRlbCgweDcyMDgwZjAwLCBNWDUxX1dF SU1fQkFTRV9BRERSICsgV0VJTV9DU3hXQ1IxKDUpKTsKLQotCQkvKiBMQU45MjIxIG5ldHdvcmsg Y29udHJvbGxlciAqLwotCQlhZGRfZ2VuZXJpY19kZXZpY2UoInNtYzkxMXgiLCAxLCBOVUxMLCBN WDUxX0NTNV9CQVNFX0FERFIsIFNaXzRLLCBJT1JFU09VUkNFX01FTSwgTlVMTCk7CisJY2N4bXhf aWQgPSAmY2N4bXg1MV9pZHNbaHdpZFswXV07CisKKwlzd2l0Y2ggKGh3aWRbMl0gJiAweGMwKSB7 CisJY2FzZSAweDAwOgorCQltYW5sb2MgPSAnQic7CisJCWJyZWFrOworCWNhc2UgMHg0MDoKKwkJ bWFubG9jID0gJ1cnOworCQlicmVhazsKKwljYXNlIDB4ODA6CisJCW1hbmxvYyA9ICdTJzsKKwkJ YnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CiAJfQogCi0JaW14NTFfYWRkX3VzYm90ZygmY2N4 bXg1MV9vdGdfcGRhdGEpOworCWV0aF9yZWdpc3Rlcl9ldGhhZGRyKDAsIGh3aWQpOwogCi0JYXJt bGludXhfc2V0X2FyY2hpdGVjdHVyZShjY3hteDUxX2lkLT53bGVzcyA/IE1BQ0hfVFlQRV9DQ1dN WDUxIDogTUFDSF9UWVBFX0NDTVg1MSk7CisJYm9hcmRzZXJpYWwgPSAoKGh3aWRbMl0gJiAweDNm KSA8PCAyNCkgfCAoaHdpZFszXSA8PCAxNikgfCAoaHdpZFs0XSA8PCA4KSB8IGh3aWRbNV07CiAK LQlyZXR1cm4gMDsKLX0KLWRldmljZV9pbml0Y2FsbChjY3hteDUxX2RldmljZXNfaW5pdCk7CisJ cHJpbnRmKCJNb2R1bGUgVmFyaWFudDogJXMgKDB4JTAyeClcbiIsIGNjeG14X2lkLT5pZF9zdHJp bmcsIGh3aWRbMF0pOworCXByaW50ZigiTW9kdWxlIEhXIFJldiA6ICUwMnhcbiIsIGh3aWRbMV0g KyAxKTsKKwlwcmludGYoIk1vZHVsZSBTZXJpYWwgOiAlYyVkXG4iLCBtYW5sb2MsIGJvYXJkc2Vy aWFsKTsKIAotc3RhdGljIGludCBjY3hteDUxX2NvbnNvbGVfaW5pdCh2b2lkKQotewotCW14Y19p b211eF92M19zZXR1cF9tdWx0aXBsZV9wYWRzKGNjeG14NTFfcGFkcywgQVJSQVlfU0laRShjY3ht eDUxX3BhZHMpKTsKKwlpZiAoKGNjeG14X2lkLT5tZW1fc3ogLSBTWl8xMjhNKSA+IDApCisJCWFy bV9hZGRfbWVtX2RldmljZSgicmFtMSIsIE1YNTFfQ1NEMF9CQVNFX0FERFIgKyBTWl8xMjhNLAor CQkJCSAgIGNjeG14X2lkLT5tZW1fc3ogLSBTWl8xMjhNKTsKKworCW1jMTN4eHhfcmVnaXN0ZXJf aW5pdF9jYWxsYmFjayhjY3hteDUxX3Bvd2VyX2luaXQpOwogCi0JYmFyZWJveF9zZXRfbW9kZWwo IkRpZ2kgQ29ubmVjdENvcmUgaS5NWDUxIik7Ci0JYmFyZWJveF9zZXRfaG9zdG5hbWUoImNjbXg1 MSIpOworCWlteDUxX2JidV9pbnRlcm5hbF9tbWNfcmVnaXN0ZXJfaGFuZGxlcigibW1jIiwgIi9k ZXYvbW1jMCIsCisJCQkJCQlCQlVfSEFORExFUl9GTEFHX0RFRkFVTFQpOwogCi0JaW14NTFfYWRk X3VhcnQwKCk7CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RFRkFVTFRfRU5WSVJPTk1FTlQpKQor CQlkZWZhdWx0ZW52X2FwcGVuZF9kaXJlY3RvcnkoZGVmYXVsdGVudl9jY3hteDUxKTsKIAogCXJl dHVybiAwOwogfQotY29uc29sZV9pbml0Y2FsbChjY3hteDUxX2NvbnNvbGVfaW5pdCk7Citmc19p bml0Y2FsbChjY3hteDUxX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14 NTEvY2N4bXg1MS5oIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5oCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmVhY2FjMDMuLjAwMDAwMDAwMAotLS0gYS9hcmNoL2Fy bS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBA Ci0vKgotICogQ29weXJpZ2h0IDIwMTAgRGlnaSBJbnRlcm5hdGlvbmFsIEluYy4gQWxsIFJpZ2h0 cyBSZXNlcnZlZC4KLSAqLwotCi0vKgotICogVGhlIGNvZGUgY29udGFpbmVkIGhlcmVpbiBpcyBs aWNlbnNlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlLiBZb3UgbWF5 IG9idGFpbiBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBWZXJz aW9uIDIgb3IgbGF0ZXIgYXQgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6Ci0gKgotICogaHR0cDov L3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5odG1sCi0gKiBodHRwOi8v d3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwKLSAqLwotCi0jaWZuZGVmIF9DQ1hNWDUxX0hf Ci0jZGVmaW5lIF9DQ1hNWDUxX0hfCi0KLXN0cnVjdCBjY3hteDUxX2h3aWQgewotCXU4CQl2YXJp YW50OwotCXU4CQl2ZXJzaW9uOwotCXUzMgkJc247Ci0JY2hhcgkJbWxvYzsKLX07Ci0KLXN0cnVj dCBjY3hteDUxX2lkZW50IHsKLQljb25zdCBjaGFyCSppZF9zdHJpbmc7Ci0JY29uc3QgaW50CW1l bV9zejsKLQljb25zdCBjaGFyCWluZHVzdHJpYWw7Ci0JY29uc3QgY2hhcglldGgwOwotCWNvbnN0 IGNoYXIJZXRoMTsKLQljb25zdCBjaGFyCXdsZXNzOwotfTsKLQotZXh0ZXJuIHN0cnVjdCBjY3ht eDUxX2lkZW50ICpjY3hteDUxX2lkOwotCi0jZW5kaWYJLyogX0NDWE1YNTFfSF8gKi8KZGlmZiAt LWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTFqcy5jIGIvYXJjaC9hcm0vYm9h cmRzL2NjeG14NTEvY2N4bXg1MWpzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdm MDY4ZTIzOS4uMDAwMDAwMDAwCi0tLSBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTFq cy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDIgb2YKLSAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICovCi0KLSNpbmNsdWRl IDxjb21tb24uaD4KLSNpbmNsdWRlIDxpby5oPgotI2luY2x1ZGUgPGluaXQuaD4KLSNpbmNsdWRl IDxncGlvLmg+Ci0jaW5jbHVkZSA8bWNpLmg+Ci0jaW5jbHVkZSA8YXNtL2FybWxpbnV4Lmg+Ci0j aW5jbHVkZSA8bWFjaC9nZW5lcmljLmg+Ci0jaW5jbHVkZSA8bWFjaC9pbXg1MS1yZWdzLmg+Ci0j aW5jbHVkZSA8bWFjaC9pb211eC1teDUxLmg+Ci0jaW5jbHVkZSA8bWFjaC9kZXZpY2VzLWlteDUx Lmg+Ci0jaW5jbHVkZSA8Z2VuZXJhdGVkL21hY2gtdHlwZXMuaD4KLQotI2luY2x1ZGUgImNjeG14 NTEuaCIKLQotI2RlZmluZSBDQ1hNWDUxSlNfVVNCSDFfUkVTRVQJSU1YX0dQSU9fTlIoMywgOCkK LSNkZWZpbmUgQ0NYTVg1MUpTX1NEM19XUAlJTVhfR1BJT19OUigzLCAxNykKLQotc3RhdGljIGlv bXV4X3YzX2NmZ190IGNjeG14NTFqc19wYWRzW10gPSB7Ci0JLyogU0QxICovCi0JTVg1MV9QQURf U0QxX0NMS19fU0QxX0NMSywKLQlNWDUxX1BBRF9TRDFfQ01EX19TRDFfQ01ELAotCU1YNTFfUEFE X1NEMV9EQVRBMF9fU0QxX0RBVEEwLAotCU1YNTFfUEFEX1NEMV9EQVRBMV9fU0QxX0RBVEExLAot CU1YNTFfUEFEX1NEMV9EQVRBMl9fU0QxX0RBVEEyLAotCU1YNTFfUEFEX1NEMV9EQVRBM19fU0Qx X0RBVEEzLAotCS8qIFNEMyAqLwotCU1YNTFfUEFEX05BTkRGX0NTN19fU0QzX0NMSywKLQlNWDUx X1BBRF9OQU5ERl9SRFlfSU5UX19TRDNfQ01ELAotCU1YNTFfUEFEX05BTkRGX0Q4X19TRDNfREFU QTAsCi0JTVg1MV9QQURfTkFOREZfRDlfX1NEM19EQVRBMSwKLQlNWDUxX1BBRF9OQU5ERl9EMTBf X1NEM19EQVRBMiwKLQlNWDUxX1BBRF9OQU5ERl9EMTFfX1NEM19EQVRBMywKLQlNWDUxX1BBRF9O QU5ERl9EMTJfX1NEM19EQVQ0LAotCU1YNTFfUEFEX05BTkRGX0QxM19fU0QzX0RBVDUsCi0JTVg1 MV9QQURfTkFOREZfRDE0X19TRDNfREFUNiwKLQlNWDUxX1BBRF9OQU5ERl9EMTVfX1NEM19EQVQ3 LAotCS8qIFVTQiBIT1NUMSAqLwotCU1YNTFfUEFEX1VTQkgxX0NMS19fVVNCSDFfQ0xLLAotCU1Y NTFfUEFEX1VTQkgxX0RJUl9fVVNCSDFfRElSLAotCU1YNTFfUEFEX1VTQkgxX05YVF9fVVNCSDFf TlhULAotCU1YNTFfUEFEX1VTQkgxX1NUUF9fVVNCSDFfU1RQLAotCU1YNTFfUEFEX1VTQkgxX0RB VEEwX19VU0JIMV9EQVRBMCwKLQlNWDUxX1BBRF9VU0JIMV9EQVRBMV9fVVNCSDFfREFUQTEsCi0J TVg1MV9QQURfVVNCSDFfREFUQTJfX1VTQkgxX0RBVEEyLAotCU1YNTFfUEFEX1VTQkgxX0RBVEEz X19VU0JIMV9EQVRBMywKLQlNWDUxX1BBRF9VU0JIMV9EQVRBNF9fVVNCSDFfREFUQTQsCi0JTVg1 MV9QQURfVVNCSDFfREFUQTVfX1VTQkgxX0RBVEE1LAotCU1YNTFfUEFEX1VTQkgxX0RBVEE2X19V U0JIMV9EQVRBNiwKLQlNWDUxX1BBRF9VU0JIMV9EQVRBN19fVVNCSDFfREFUQTcsCi19OwotCi1z dGF0aWMgc3RydWN0IGVzZGhjX3BsYXRmb3JtX2RhdGEgc2RoYzFfcGRhdGEgPSB7Ci0JLmNkX3R5 cGUJPSBFU0RIQ19DRF9OT05FLAotCS53cF90eXBlCT0gRVNESENfV1BfTk9ORSwKLQkuY2FwcwkJ PSBNTUNfQ0FQXzRfQklUX0RBVEEsCi19OwotCi1zdGF0aWMgc3RydWN0IGVzZGhjX3BsYXRmb3Jt X2RhdGEgc2RoYzNfcGRhdGEgPSB7Ci0JLmNkX3R5cGUJPSBFU0RIQ19DRF9OT05FLAotCS53cF90 eXBlCT0gRVNESENfV1BfR1BJTywKLQkud3BfZ3Bpbwk9IENDWE1YNTFKU19TRDNfV1AsCi0JLmNh cHMJCT0gTU1DX0NBUF80X0JJVF9EQVRBIHwgTU1DX0NBUF84X0JJVF9EQVRBLAotfTsKLQotc3Rh dGljIHN0cnVjdCBpbXh1c2JfcGxhdGZvcm1kYXRhIGNjeG14NTFqc191c2Job3N0MV9wZGF0YSA9 IHsKLQkuZmxhZ3MJPSBNWENfRUhDSV9NT0RFX1VMUEkgfCBNWENfRUhDSV9JVENfTk9fVEhSRVNI T0xELAotCS5tb2RlCT0gSU1YX1VTQl9NT0RFX0hPU1QsCi19OwotCi1zdGF0aWMgaW50IGNjeG14 NTFqc19pbml0KHZvaWQpCi17Ci0JbXhjX2lvbXV4X3YzX3NldHVwX211bHRpcGxlX3BhZHMoY2N4 bXg1MWpzX3BhZHMsIEFSUkFZX1NJWkUoY2N4bXg1MWpzX3BhZHMpKTsKLQotCWlmIChJU19FTkFC TEVEKENPTkZJR19NQ0lfSU1YX0VTREhDKSkgewotCQlpbXg1MV9hZGRfbW1jMCgmc2RoYzFfcGRh dGEpOwotCQlpbXg1MV9hZGRfbW1jMigmc2RoYzNfcGRhdGEpOwotCX0KLQotCWdwaW9fZGlyZWN0 aW9uX291dHB1dChDQ1hNWDUxSlNfVVNCSDFfUkVTRVQsIDApOwotCW1kZWxheSgxMCk7Ci0JZ3Bp b19zZXRfdmFsdWUoQ0NYTVg1MUpTX1VTQkgxX1JFU0VULCAxKTsKLQltZGVsYXkoMTApOwotCWlt eDUxX2FkZF91c2JoMSgmY2N4bXg1MWpzX3VzYmhvc3QxX3BkYXRhKTsKLQotCWFybWxpbnV4X3Nl dF9hcmNoaXRlY3R1cmUoY2N4bXg1MV9pZC0+d2xlc3MgPyBNQUNIX1RZUEVfQ0NXTVg1MUpTIDog TUFDSF9UWVBFX0NDTVg1MUpTKTsKLQotCXJldHVybiAwOwotfQotCi1sYXRlX2luaXRjYWxsKGNj eG14NTFqc19pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9i b290L25hbmQgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9kZWZhdWx0ZW52LWNjeG14NTEvYm9v dC9uYW5kCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBhcmNoL2FybS9ib2FyZHMv Y2N4bXg1MS9lbnYvYm9vdC9uYW5kCnJlbmFtZSB0byBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9k ZWZhdWx0ZW52LWNjeG14NTEvYm9vdC9uYW5kCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMv Y2N4bXg1MS9lbnYvbnYvYm9vdC5kZWZhdWx0IGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZGVm YXVsdGVudi1jY3hteDUxL252L2Jvb3QuZGVmYXVsdApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVu YW1lIGZyb20gYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L252L2Jvb3QuZGVmYXVsdApyZW5h bWUgdG8gYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZGVmYXVsdGVudi1jY3hteDUxL252L2Jvb3Qu ZGVmYXVsdApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2luaXQvbXRk cGFydHMtbmFuZCBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9pbml0L210ZHBhcnRzLW5h bmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3ZWQzOGE4OC4uMDAwMDAwMDAwCi0t LSBhL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9pbml0L210ZHBhcnRzLW5hbmQKKysrIC9k ZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLSMhL2Jpbi9zaAotCi1tdGRwYXJ0cz0iNTEyayhiYXJl Ym94KXJvLDI1NmsoYmFyZWJveGVudiksMzMyOGsoa2VybmVsKSwtKHJvb3QpIgota2VybmVsbmFt ZT0ibXhjX25hbmQiCi0KLW10ZHBhcnRzLWFkZCAtYiAtZCBuYW5kMCAtayAke2tlcm5lbG5hbWV9 IC1wICR7bXRkcGFydHN9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9lbnYv bnYvYXV0b2Jvb3RfdGltZW91dCBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9udi9hdXRv Ym9vdF90aW1lb3V0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2ZiZjA4ODguLjAw MDAwMDAwMAotLS0gYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9lbnYvbnYvYXV0b2Jvb3RfdGlt ZW91dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTIKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L2JvYXJkcy9jY3hteDUxL2xvd2xldmVsLmMgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9sb3ds ZXZlbC5jCmluZGV4IDJiM2RjNDJlOC4uNDYyYzIyZTI4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9i b2FyZHMvY2N4bXg1MS9sb3dsZXZlbC5jCisrKyBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2xv d2xldmVsLmMKQEAgLTEsMyArMSw2IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BM LTIuMCsgKi8KKy8qIEF1dGhvcjogQWxleGFuZGVyIFNoaXlhbiA8c2hjX3dvcmtAbWFpbC5ydT4g Ki8KKwogI2luY2x1ZGUgPGNvbW1vbi5oPgogI2luY2x1ZGUgPG1hY2gvZXNkY3RsLmg+CiAjaW5j bHVkZSA8bWFjaC9nZW5lcmljLmg+CkBAIC01LDggKzgsMTYgQEAKICNpbmNsdWRlIDxhc20vYmFy ZWJveC1hcm0taGVhZC5oPgogI2luY2x1ZGUgPG1hY2gvaW14NTEtcmVncy5oPgogCi12b2lkIF9f bmFrZWQgYmFyZWJveF9hcm1fcmVzZXRfdmVjdG9yKHZvaWQpCitFTlRSWV9GVU5DVElPTihzdGFy dF9jY3hteDUxLCByMCwgcjEsIHIyKQogeworCWV4dGVybiBjaGFyIF9fZHRiX2lteDUxX2NjeG14 NTFfc3RhcnRbXTsKKwl2b2lkICpmZHQ7CisKIAlpbXg1X2NwdV9sb3dsZXZlbF9pbml0KCk7Ci0J YmFyZWJveF9hcm1fZW50cnkoTVg1MV9DU0QwX0JBU0VfQUREUiwgU1pfMTI4TSwgTlVMTCk7CisK Kwlhcm1fc2V0dXBfc3RhY2soMHgyMDAwMDAwMCAtIDE2KTsKKworCWZkdCA9IF9fZHRiX2lteDUx X2NjeG14NTFfc3RhcnQgKyBnZXRfcnVudGltZV9vZmZzZXQoKTsKKworCWJhcmVib3hfYXJtX2Vu dHJ5KE1YNTFfQ1NEMF9CQVNFX0FERFIsIFNaXzEyOE0sIGZkdCk7CiB9CmRpZmYgLS1naXQgYS9h cmNoL2FybS9jb25maWdzL2NjbXg1MV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2NjbXg1 MV9kZWZjb25maWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxNmY3M2Y3Yi4uMDAw MDAwMDAwCi0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvY2NteDUxX2RlZmNvbmZpZworKysgL2Rldi9u dWxsCkBAIC0xLDYwICswLDAgQEAKLUNPTkZJR19BUkNIX0lNWD15Ci1DT05GSUdfTUFDSF9DQ01Y NTE9eQotQ09ORklHX0FFQUJJPXkKLUNPTkZJR19BUk1fT1BUSU1aRURfU1RSSU5HX0ZVTkNUSU9O Uz15Ci1DT05GSUdfTU1VPXkKLUNPTkZJR19NQUxMT0NfU0laRT0weDIwMDAwMDAKLUNPTkZJR19I VVNIX0ZBTkNZX1BST01QVD15Ci1DT05GSUdfQ01ETElORV9FRElUSU5HPXkKLUNPTkZJR19BVVRP X0NPTVBMRVRFPXkKLUNPTkZJR19CT09UTV9TSE9XX1RZUEU9eQotQ09ORklHX0RFRkFVTFRfRU5W SVJPTk1FTlRfR0VORVJJQ19ORVc9eQotQ09ORklHX0RFRkFVTFRfRU5WSVJPTk1FTlRfUEFUSD0i YXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52IgotQ09ORklHX0xPTkdIRUxQPXkKLUNPTkZJR19D TURfTUVNSU5GTz15Ci1DT05GSUdfQ01EX0FSTV9NTVVJTkZPPXkKLUNPTkZJR19DTURfQk9PVFo9 eQotQ09ORklHX0NNRF9HTz15Ci1DT05GSUdfQ01EX1JFU0VUPXkKLUNPTkZJR19DTURfUEFSVElU SU9OPXkKLUNPTkZJR19DTURfRVhQT1JUPXkKLUNPTkZJR19DTURfUFJJTlRFTlY9eQotQ09ORklH X0NNRF9NQUdJQ1ZBUj15Ci1DT05GSUdfQ01EX01BR0lDVkFSX0hFTFA9eQotQ09ORklHX0NNRF9T QVZFRU5WPXkKLUNPTkZJR19DTURfU0xFRVA9eQotQ09ORklHX0NNRF9ESENQPXkKLUNPTkZJR19D TURfUElORz15Ci1DT05GSUdfQ01EX0VDSE9fRT15Ci1DT05GSUdfQ01EX0VESVQ9eQotQ09ORklH X0NNRF9SRUFETElORT15Ci1DT05GSUdfQ01EX1RJTUVPVVQ9eQotQ09ORklHX0NNRF9DUkM9eQot Q09ORklHX0NNRF9DUkNfQ01QPXkKLUNPTkZJR19DTURfQ0xLPXkKLUNPTkZJR19DTURfRkxBU0g9 eQotQ09ORklHX0NNRF9HUElPPXkKLUNPTkZJR19DTURfSTJDPXkKLUNPTkZJR19DTURfTkFORFRF U1Q9eQotQ09ORklHX0NNRF9TUEk9eQotQ09ORklHX0NNRF9PRlRSRUU9eQotQ09ORklHX05FVD15 Ci1DT05GSUdfRFJJVkVSX05FVF9GRUNfSU1YPXkKLUNPTkZJR19EUklWRVJfTkVUX1NNQzkxMVg9 eQotQ09ORklHX0kyQz15Ci1DT05GSUdfSTJDX0lNWD15Ci1DT05GSUdfTVREPXkKLUNPTkZJR19O QU5EPXkKLUNPTkZJR19OQU5EX0lNWD15Ci1DT05GSUdfVVNCX0hPU1Q9eQotQ09ORklHX1VTQl9J TVhfQ0hJUElERUE9eQotQ09ORklHX1VTQl9FSENJPXkKLUNPTkZJR19VU0JfVUxQST15Ci1DT05G SUdfVVNCX1NUT1JBR0U9eQotQ09ORklHX01DST15Ci1DT05GSUdfTUNJX0lNWF9FU0RIQz15Ci1D T05GSUdfRlNfQ1JBTUZTPXkKLUNPTkZJR19GU19GQVQ9eQotQ09ORklHX0ZTX0ZBVF9XUklURT15 Ci1DT05GSUdfRlNfRkFUX0xGTj15Ci1DT05GSUdfTFpPX0RFQ09NUFJFU1M9eQpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm0vY29uZmlncy9pbXhfdjdfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9p bXhfdjdfZGVmY29uZmlnCmluZGV4IDY0YjIwMmI5ZC4uMjA2OGE2Y2VlIDEwMDY0NAotLS0gYS9h cmNoL2FybS9jb25maWdzL2lteF92N19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9p bXhfdjdfZGVmY29uZmlnCkBAIC0xLDYgKzEsNyBAQAogQ09ORklHX0FSQ0hfSU1YPXkKIENPTkZJ R19JTVhfTVVMVElfQk9BUkRTPXkKIENPTkZJR19NQUNIX0tJTkRMRV9NWDUwPXkKK0NPTkZJR19N QUNIX0NDTVg1MT15CiBDT05GSUdfTUFDSF9FRklLQV9NWF9TTUFSVEJPT0s9eQogQ09ORklHX01B Q0hfRU1CRURTS1lfRTk9eQogQ09ORklHX01BQ0hfRlJFRVNDQUxFX01YNTFfUERLPXkKQEAgLTQx LDcgKzQyLDYgQEAgQ09ORklHX01BQ0hfUEhZVEVDX1BIWUNPUkVfSU1YNz15CiBDT05GSUdfTUFD SF9GUkVFU0NBTEVfTVg3X1NBQlJFU0Q9eQogQ09ORklHX01BQ0hfTlhQX0lNWDZVTExfRVZLPXkK IENPTkZJR19NQUNIX0dSSU5OX0xJVEVCT0FSRD15Ci1DT05GSUdfSU1YX0lJTT15CiBDT05GSUdf SU1YX0lJTV9GVVNFX0JMT1c9eQogQ09ORklHX1RIVU1CMl9CQVJFQk9YPXkKIENPTkZJR19BUk1f T1BUSU1aRURfU1RSSU5HX0ZVTkNUSU9OUz15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9kdHMvTWFr ZWZpbGUgYi9hcmNoL2FybS9kdHMvTWFrZWZpbGUKaW5kZXggYzA4YjM1YTEwLi40YWYyODZhMTEg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2R0cy9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9kdHMvTWFr ZWZpbGUKQEAgLTIxLDYgKzIxLDcgQEAgcGJsLWR0Yi0kKENPTkZJR19NQUNIX0VNQkVEU0tZX0U5 KSArPSBpbXg2cS1lbWJlZHNreS1lOS5kdGIubwogcGJsLWR0Yi0kKENPTkZJR19NQUNIX0ZSRUVT Q0FMRV9NWDUxX1BESykgKz0gaW14NTEtYmFiYmFnZS5kdGIubwogcGJsLWR0Yi0kKENPTkZJR19N QUNIX0ZSRUVTQ0FMRV9NWDUzX0xPQ08pICs9IGlteDUzLXFzYi5kdGIubyBpbXg1My1xc3JiLmR0 Yi5vCiBwYmwtZHRiLSQoQ09ORklHX01BQ0hfVFg1MykgKz0gaW14NTMtdHg1My14eDMwLmR0Yi5v IGlteDUzLXR4NTMtMTAxMS5kdGIubworcGJsLWR0Yi0kKENPTkZJR19NQUNIX0NDTVg1MSkgKz0g aW14NTEtY2N4bXg1MS5kdGIubwogcGJsLWR0Yi0kKENPTkZJR19NQUNIX0NDTVg1MykgKz0gaW14 NTMtY2N4bXg1My5kdGIubwogcGJsLWR0Yi0kKENPTkZJR19NQUNIX0ZSRUVTQ0FMRV9NWDUzX1ZN WDUzKSArPSBpbXg1My12b2lwYWMtYnNiLmR0Yi5vCiBwYmwtZHRiLSQoQ09ORklHX01BQ0hfRlJF RVNDQUxFX01YN19TQUJSRVNEKSArPSBpbXg3ZC1zZGIuZHRiLm8KZGlmZiAtLWdpdCBhL2FyY2gv YXJtL2R0cy9pbXg1MS1jY3hteDUxLmR0cyBiL2FyY2gvYXJtL2R0cy9pbXg1MS1jY3hteDUxLmR0 cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmVmZTVkYmY2MwotLS0gL2Rl di9udWxsCisrKyBiL2FyY2gvYXJtL2R0cy9pbXg1MS1jY3hteDUxLmR0cwpAQCAtMCwwICsxLDQx IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsgKi8KKy8qIEF1dGhvcjog QWxleGFuZGVyIFNoaXlhbiA8c2hjX3dvcmtAbWFpbC5ydT4gKi8KKworI2luY2x1ZGUgPGFybS9p bXg1MS1kaWdpLWNvbm5lY3Rjb3JlLWpzay5kdHM+CisKKy8geworCWNob3NlbiB7CisJCXN0ZG91 dC1wYXRoID0gJnVhcnQxOworCisJCWVudmlyb25tZW50IHsKKwkJCWNvbXBhdGlibGUgPSAiYmFy ZWJveCxlbnZpcm9ubWVudCI7CisJCQlkZXZpY2UtcGF0aCA9ICZuZmMsICJwYXJ0bmFtZTplbnYi OworCQl9OworCX07Cit9OworCismaWltIHsKKwliYXJlYm94LHByb3ZpZGUtbWFjLWFkZHJlc3Mg PSA8JmZlYyAxIDk+OworfTsKKworJm5mYyB7CisJcGFydGl0aW9uQDAgeworCQlsYWJlbCA9ICJi b290IjsKKwkJcmVnID0gPDB4MDAwMDAgMHg4MDAwMD47CisJfTsKKworCXBhcnRpdGlvbkA4MDAw MCB7CisJCWxhYmVsID0gImVudiI7CisJCXJlZyA9IDwweDgwMDAwIDB4NDAwMDA+OworCX07CisK KwlwYXJ0aXRpb25AYzAwMDAgeworCQlsYWJlbCA9ICJrZXJuZWwiOworCQlyZWcgPSA8MHhjMDAw MCAweDM0MDAwMD47CisJfTsKKworCXBhcnRpdGlvbkA0MDAwMDAgeworCQlsYWJlbCA9ICJyb290 IjsKKwkJcmVnID0gPDB4NDAwMDAwIDA+OworCX07Cit9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v bWFjaC1pbXgvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtaW14L0tjb25maWcKaW5kZXggZDliNjAw NTNkLi4yZWVmZjViNmIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L0tjb25maWcKKysr IGIvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZwpAQCAtMjYsNyArMjYsNiBAQCBjb25maWcgQVJD SF9URVhUX0JBU0UKIAlkZWZhdWx0IDB4OTNkMDAwMDAgaWYgTUFDSF9UWDI1CiAJZGVmYXVsdCAw eDdmZjAwMDAwIGlmIE1BQ0hfVFFNQTUzCiAJZGVmYXVsdCAweDk3ZjAwMDAwIGlmIE1BQ0hfVFg1 MQotCWRlZmF1bHQgMHg5N2YwMDAwMCBpZiBNQUNIX0NDTVg1MQogCWRlZmF1bHQgMHg0ZmMwMDAw MCBpZiBNQUNIX1NBQlJFTElURQogCWRlZmF1bHQgMHg4ZmUwMDAwMCBpZiBNQUNIX1RYNTMKIAlk ZWZhdWx0IDB4OTdmMDAwMDAgaWYgTUFDSF9FRklLQV9NWF9TTUFSVEJPT0sKQEAgLTI0Niw2ICsy NDUsMTcgQEAgY29uZmlnIE1BQ0hfS0lORExFX01YNTAKIAkgIEtpbmRsZSBNb2RlbCBOby4gRDAx MTAwIChLaW5kbGUgV2ktRmkpLCBEMDEyMDAgKEtpbmRsZSBUb3VjaCkgb3IKIAkgIEVZMjEgKEtp bmRsZSBQYXBlcndoaXRlKS4KIAorY29uZmlnIE1BQ0hfQ0NNWDUxCisJYm9vbCAiQ29ubmVjdENv cmUgaS5NWDUxIgorCXNlbGVjdCBBUkNIX0lNWDUxCisJc2VsZWN0IElNWF9JSU0KKwlzZWxlY3Qg U1BJCisJc2VsZWN0IERSSVZFUl9TUElfSU1YCisJc2VsZWN0IE1GRF9NQzEzWFhYCisJc2VsZWN0 IFJFTE9DQVRBQkxFCisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIERpZ2kg Q29ubmVjdENvcmUgKFcpaS1pLk1YNTEKKwkgIGVxdWlwcGVkIHdpdGggYSBGcmVlc2NhbGUgaS5N WDUxIFByb2Nlc3NvcgorCiBjb25maWcgTUFDSF9FRklLQV9NWF9TTUFSVEJPT0sKIAlib29sICJF ZmlrYSBNWCBzbWFydGJvb2siCiAJc2VsZWN0IEFSQ0hfSU1YNTEKQEAgLTYyMiwyNSArNjMyLDYg QEAgY29uZmlnIE1BQ0hfVFg1MQogCWhlbHAKIAkgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2lu ZyB0aGUgS2EtUm8gdHg1MSBib2FyZAogCi1jb25maWcgTUFDSF9DQ01YNTEKLQlib29sICJDb25u ZWN0Q29yZSBpLk1YNTEiCi0Jc2VsZWN0IEFSQ0hfSU1YNTEKLQlzZWxlY3QgSU1YX0lJTQotCXNl bGVjdCBTUEkKLQlzZWxlY3QgRFJJVkVSX1NQSV9JTVgKLQlzZWxlY3QgTUZEX01DMTNYWFgKLQlo ZWxwCi0JICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgRGlnaSBDb25uZWN0Q29yZSAoVylp LWkuTVg1MQotCSAgZXF1aXBwZWQgd2l0aCBhIEZyZWVzY2FsZSBpLk1YNTEgUHJvY2Vzc29yCi0K LWNvbmZpZyBNQUNIX0NDTVg1MV9CQVNFQk9BUkQKLQlib29sICJEaWdpIGRldmVsb3BtZW50IGJv YXJkIGZvciBDQ01YNTEgbW9kdWxlIgotCWRlcGVuZHMgb24gTUFDSF9DQ01YNTEKLQlkZWZhdWx0 IHkKLQloZWxwCi0JICBUaGlzIGFkZHMgYm9hcmQgc3BlY2lmaWMgZGV2aWNlcyB0aGF0IGNhbiBi ZSBmb3VuZCBvbiBEaWdpCi0JICBldmFsdWF0aW9uIGJvYXJkIGZvciBDQ01YNTEgbW9kdWxlLgot CiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIAogY29tbWVudCAiaS5NWDUzIEJvYXJkcyIKZGlmZiAtLWdpdCBhL2ltYWdlcy9NYWtl ZmlsZS5pbXggYi9pbWFnZXMvTWFrZWZpbGUuaW14CmluZGV4IDhiOGE1NDUyYi4uNmFhNDZiODM1 IDEwMDY0NAotLS0gYS9pbWFnZXMvTWFrZWZpbGUuaW14CisrKyBiL2ltYWdlcy9NYWtlZmlsZS5p bXgKQEAgLTU3LDYgKzU3LDExIEBAIEZJTEVfYmFyZWJveC1raW5kbGUtZXkyMS5pbWcgPSBzdGFy dF9pbXg1MF9raW5kbGVfZXkyMS5wYmxiLmlteGltZwogaW1hZ2UtJChDT05GSUdfTUFDSF9LSU5E TEVfTVg1MCkgKz0gYmFyZWJveC1raW5kbGUtZXkyMS5pbWcKIAogIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSBpLk1YNTEgYmFzZWQgYm9hcmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor cGJsYi0kKENPTkZJR19NQUNIX0NDTVg1MSkgKz0gc3RhcnRfY2N4bXg1MQorQ0ZHX3N0YXJ0X2Nj eG14NTEucGJsYi5pbXhpbWcgPSAkKGJvYXJkKS9jY3hteDUxL2ZsYXNoLWhlYWRlci5pbXhjZmcK K0ZJTEVfYmFyZWJveC1pbXg1MS1jY3hteDUxLmltZyA9IHN0YXJ0X2NjeG14NTEucGJsYi5pbXhp bWcKK2ltYWdlLSQoQ09ORklHX01BQ0hfQ0NNWDUxKSArPSBiYXJlYm94LWlteDUxLWNjeG14NTEu aW1nCisKIHBibGItJChDT05GSUdfTUFDSF9GUkVFU0NBTEVfTVg1MV9QREspICs9IHN0YXJ0X2lt eDUxX2JhYmJhZ2UKIENGR19zdGFydF9pbXg1MV9iYWJiYWdlLnBibGIuaW14aW1nID0gJChib2Fy ZCkvZnJlZXNjYWxlLW14NTEtYmFiYmFnZS9mbGFzaC1oZWFkZXItaW14NTEtYmFiYmFnZS5pbXhj ZmcKIEZJTEVfYmFyZWJveC1mcmVlc2NhbGUtaW14NTEtYmFiYmFnZS5pbWcgPSBzdGFydF9pbXg1 MV9iYWJiYWdlLnBibGIuaW14aW1nCi0tIAoyLjEzLjAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpiYXJlYm94IG1haWxpbmcgbGlzdApiYXJlYm94QGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9iYXJlYm94Cg==