From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.3.1-8 Date: Mon, 29 Jun 2026 12:23:53 GMT Message-ID: <178273583328.1.11923203747508684455.rpms-gcc-66f35a6aae2d@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 66f35a6aae2defa42097e4cff7a4645a0896b744 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogNjZmMzVhNmFhZTJkZWZhNDIwOTdlNGNmZjdhNDY0NWEw ODk2Yjc0NApBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOC0wOC0yNVQxMjo1Njo0OCswMDowMApTdGF0cyAgOiArMTM0OC8tNjYgaW4g MTMgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dj Yy9jLzY2ZjM1YTZhYWUyZGVmYTQyMDk3ZTRjZmY3YTQ2NDVhMDg5NmI3NDQ/YnJhbmNoPXJoZWwt ZjQxLWJhc2UKCkxvZzoKNC4zLjEtOAoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdub3JlIGIvLmN2 c2lnbm9yZQppbmRleCA3ZTAyZGZiLi4yMTk2ZmYxIDEwMDY0NAotLS0gYS8uY3ZzaWdub3JlCisr KyBiLy5jdnNpZ25vcmUKQEAgLTEsMiArMSwyIEBACi1nY2MtNC4zLjEtMjAwODA4MTIudGFyLmJ6 MgorZ2NjLTQuMy4xLTIwMDgwODI1LnRhci5iejIKIGZhc3RqYXItMC45NS50YXIuZ3oKCmRpZmYg LS1naXQgYS9nY2M0My1mb3J0cmFuLWRlYnVnMS5wYXRjaCBiL2djYzQzLWZvcnRyYW4tZGVidWcx LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNzE4YTcKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2M0My1mb3J0cmFuLWRlYnVnMS5wYXRjaApAQCAtMCwwICsxLDczOSBA QAorMjAwOC0wNS0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisgCisJUFIg ZGVidWcvMzU4OTYKKwkqIGR3YXJmMm91dC5jIChkd19leHBhbmRfZXhwciwgY29tbW9uX2NoZWNr KTogUmVtb3ZlZC4KKwkoZm9ydHJhbl9jb21tb24pOiBOZXcgZnVuY3Rpb24uCisJKGdlbl92YXJp YWJsZV9kaWUpOiBDYWxsIGZvcnRyYW5fY29tbW9uIGluc3RlYWQgb2YgY29tbW9uX2NoZWNrLAor CWFkanVzdCBmb3IgaXQgcmV0dXJuaW5nIHRyZWUgaW5zdGVhZCBvZiBydHguICBGb3JtYXR0aW5n LgorCisyMDA4LTA0LTI2ICBHZW9yZ2UgSGVsZmZyaWNoICA8Z2VvcmdlQGdjYy5nbnUub3JnPgor CisJUFIgZm9ydHJhbi8zNTg5MgorCVBSIGZvcnRyYW4vMzUxNTQKKwkqIHRyYW5zLWNvbW1vbi5j IChjcmVhdGVfY29tbW9uKTogIEFkZCBkZWNsIHRvIGZ1bmN0aW9uCisJY2hhaW4gKGlmIGluc2lk ZSBvbmUpIHRvIHByZXNlcnZlIGlkZW50aWZpZXIgc2NvcGUgaW4gZGVidWcgb3V0cHV0LgorCisJ KiBnZm9ydHJhbi5kZy9kZWJ1Zy9wcjM1MTU0LXN0YWJzLmY6ICBOZXcgdGVzdCBjYXNlIGZvcgor CS5zdGFicyBmdW5jdGlvbmFsaXR5LgorCSogZ2ZvcnRyYW4uZGcvZGVidWcvcHIzNTE1NC1kd2Fy ZjIuZjogIE5ldyB0ZXN0IGNhc2UgZm9yCisJRFdBUkYgZnVuY3Rpb25hbGl0eS4KKworMjAwOC0w NC0xOCAgSmVycnkgRGVMaXNsZSAgPGp2ZGVsaXNsZUBnY2MuZ251Lm9yZz4KKworCVBSIGZvcnRy YW4vMzU3MjQKKwkqIHRyYW5zLWNvbW1vbi5jIChjcmVhdGVfY29tbW9uKTogUmV2ZXJ0IHBhdGNo IGNhdXNpbmcgcmVncmVzc2lvbi4KKworMjAwOC0wNC0wMSAgR2VvcmdlIEhlbGZmcmljaCAgPGdl b3JnZUBnY2MuZ251Lm9yZz4KKworCVBSIGZvcnRyYW4vUFIzNTE1NCwgZm9ydHJhbi9QUjIzMDU3 CisJKiBmb3J0cmFuL3RyYW5zLWNvbW1vbi5jIChjcmVhdGVfY29tbW9uKTogIEFkZCBkZWNsIHRv IGZ1bmN0aW9uCisJY2hhaW4gdG8gcHJlc2VydmUgaWRlbnRpZmllciBzY29wZSBpbiBkZWJ1ZyBv dXRwdXQuCisKKwkqIGRieG91dC5jOiBFbWl0IC5zdGFicyBkZWJ1ZyBpbmZvIGZvciBGb3J0cmFu IENPTU1PTiBibG9jaworCXZhcmlhYmxlcyBhcyBiYXNlIHN5bWJvbCBuYW1lICsgb2Zmc2V0IHVz aW5nIE5fQkNPTU0vTl9FQ09NTS4KKwkoaXNfZm9ydHJhbiwgZGJ4b3V0X2NvbW1vbl9uYW1lLCBk YnhvdXRfY29tbW9uX2NoZWNrKTogTmV3IGZ1bmN0aW9ucy4KKwkoZGJ4b3V0X3N5bWJvbF9sb2Nh dGlvbik6IFRyYW5zZm9ybSBOX0xDU1lNIHRvIE5fR1NZTSBmb3Igc3RvcmFnZQorCWluIGNvbW1v bi4KKwkoZGJ4b3V0X3N5bXMpOiBDaGVjayBmb3IgQ09NTU9OLWJhc2VkIHN5bWJvbCBhbmQgd3Jh cCBpbgorCU5fQkNPTU0vTl9FQ09NTSBzdGFiIGJyYWNrZXQsIGluY2x1ZGluZyBhcyBtYW55IHN5 bWJvbHMgYXMgcG9zc2libGUKKwlpbiBicmFja2V0IGZvciBlZmZpY2llbmN5LgorCisJKiBkd2Fy ZjJvdXQuYzogRW1pdCBEV0FSRiBkZWJ1ZyBpbmZvIGZvciBGb3J0cmFuIENPTU1PTiBibG9jawor CXVzaW5nIERXX1RBR19jb21tb25fYmxvY2sgKyBtZW1iZXIgb2Zmc2V0LgorCShhZGRfcHVibmFt ZV9zdHJpbmcpOiBOZXcgZnVuY3Rpb24uCisJKGR3X2V4cGFuZF9leHByKTogTmV3IGZ1bmN0aW9u IHRvIGZpbmQgYmxvY2sgbmFtZSBhbmQgb2Zmc2V0IGZvcgorCUNPTU1PTiB2YXIuCisJKGNvbW1v bl9jaGVjayk6IE5ldyBmdW5jdGlvbiB0byBjaGVjayB3aGV0aGVyIHN5bWJvbCBpbiBGb3J0cmFu IENPTU1PTi4KKwkoZ2VuX3ZhcmlhYmxlX2RpZSk6IElmIENPTU1PTiwgdXNlIERXX1RBR19jb21t b25fYmxvY2suCisKKwkqIHRlc3RzdWl0ZS9nY2MuZGcvZGVidWcvcHIzNTE1NC5jOiAgTmV3IHRl c3QgdG8gY2hlY2sgdGhhdCBub24tRm9ydHJhbgorCXVzZSBvZiBjb21tb24gaXMgdW5jaGFuZ2Vk LgorCisJKiB0ZXN0c3VpdGUvbGliL2dmb3J0cmFuLWRnLmV4cDogIE5ldyBoYXJuZXNzIHRvIGNv bXBpbGUgRm9ydHJhbiBwcm9ncworCXdpdGggYWxsIGNvbWJpbmF0aW9ucyBvZiBkZWJ1ZyBvcHRp b25zIGF2YWlsYWJsZSBvbiB0YXJnZXQuCisJKiB0ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVidWcv ZGVidWcuZXhwOiAgRGl0dG8uCisJKiB0ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVidWcvdHJpdmlh bC5mOiAgRGl0dG8uCisKKy0tLSBnY2MvZGJ4b3V0LmMJKHJldmlzaW9uIDEzMzgwMCkKKysrKyBn Y2MvZGJ4b3V0LmMJKHJldmlzaW9uIDEzMzgwMSkKK0BAIC0zMjIsMTAgKzMyMiwxMyBAQCBzdGF0 aWMgdm9pZCBkYnhvdXRfdHlwZV9tZXRob2RzICh0cmVlKTsKKyBzdGF0aWMgdm9pZCBkYnhvdXRf cmFuZ2VfdHlwZSAodHJlZSk7Cisgc3RhdGljIHZvaWQgZGJ4b3V0X3R5cGUgKHRyZWUsIGludCk7 Cisgc3RhdGljIGJvb2wgcHJpbnRfaW50X2NzdF9ib3VuZHNfaW5fb2N0YWxfcCAodHJlZSk7Cisr c3RhdGljIGJvb2wgaXNfZm9ydHJhbiAodm9pZCk7Cisgc3RhdGljIHZvaWQgZGJ4b3V0X3R5cGVf bmFtZSAodHJlZSk7Cisgc3RhdGljIHZvaWQgZGJ4b3V0X2NsYXNzX25hbWVfcXVhbGlmaWVycyAo dHJlZSk7Cisgc3RhdGljIGludCBkYnhvdXRfc3ltYm9sX2xvY2F0aW9uICh0cmVlLCB0cmVlLCBj b25zdCBjaGFyICosIHJ0eCk7Cisgc3RhdGljIHZvaWQgZGJ4b3V0X3N5bWJvbF9uYW1lICh0cmVl LCBjb25zdCBjaGFyICosIGludCk7Cisrc3RhdGljIHZvaWQgZGJ4b3V0X2NvbW1vbl9uYW1lICh0 cmVlLCBjb25zdCBjaGFyICosIFNUQUJfQ09ERV9UWVBFKTsKKytzdGF0aWMgY29uc3QgY2hhciAq ZGJ4b3V0X2NvbW1vbl9jaGVjayAodHJlZSwgaW50ICopOworIHN0YXRpYyB2b2lkIGRieG91dF9n bG9iYWxfZGVjbCAodHJlZSk7Cisgc3RhdGljIHZvaWQgZGJ4b3V0X3R5cGVfZGVjbCAodHJlZSwg aW50KTsKKyBzdGF0aWMgdm9pZCBkYnhvdXRfaGFuZGxlX3BjaCAodW5zaWduZWQpOworQEAgLTk3 Myw2ICs5NzYsMTQgQEAgZ2V0X2xhbmdfbnVtYmVyICh2b2lkKQorIAorIH0KKyAKKytzdGF0aWMg Ym9vbAorK2lzX2ZvcnRyYW4gKHZvaWQpCisreworKyAgIHVuc2lnbmVkIGludCBsYW5nID0gZ2V0 X2xhbmdfbnVtYmVyICgpOworKworKyAgIHJldHVybiAobGFuZyA9PSBOX1NPX0ZPUlRSQU4pIHx8 IChsYW5nID09IE5fU09fRk9SVFJBTjkwKTsKKyt9CisrCisgLyogQXQgdGhlIGJlZ2lubmluZyBv ZiBjb21waWxhdGlvbiwgc3RhcnQgd3JpdGluZyB0aGUgc3ltYm9sIHRhYmxlLgorICAgIEluaXRp YWxpemUgYHR5cGV2ZWMnIGFuZCBvdXRwdXQgdGhlIHN0YW5kYXJkIGRhdGEgdHlwZXMgb2YgQy4g ICovCisgCitAQCAtMjg2OCw4ICsyODc5LDE1IEBAIGRieG91dF9zeW1ib2xfbG9jYXRpb24gKHRy ZWUgZGVjbCwgdHJlZSAKKyAgICAgeworICAgICAgIGlmIChUUkVFX1BVQkxJQyAoZGVjbCkpCisg CXsKKysJICBpbnQgb2ZmczsKKyAJICBsZXR0ZXIgPSAnRyc7CisgCSAgY29kZSA9IE5fR1NZTTsK KysJICBpZiAoTlVMTCAhPSBkYnhvdXRfY29tbW9uX2NoZWNrIChkZWNsLCAmb2ZmcykpCisrCSAg ICB7CisrCSAgICAgIGxldHRlciA9ICdWJzsKKysJICAgICAgYWRkciA9IDA7CisrCSAgICAgIG51 bWJlciA9IG9mZnM7CisrCSAgICB9CisgCX0KKyAgICAgICBlbHNlCisgCXsKK0BAIC0yOTE1LDcg KzI5MzMsMTcgQEAgZGJ4b3V0X3N5bWJvbF9sb2NhdGlvbiAodHJlZSBkZWNsLCB0cmVlIAorIAkg IGlmIChERUNMX0lOSVRJQUwgKGRlY2wpID09IDAKKyAJICAgICAgfHwgKCFzdHJjbXAgKGxhbmdf aG9va3MubmFtZSwgIkdOVSBDKysiKQorIAkJICAmJiBERUNMX0lOSVRJQUwgKGRlY2wpID09IGVy cm9yX21hcmtfbm9kZSkpCistCSAgICBjb2RlID0gTl9MQ1NZTTsKKysJICAgIHsKKysJICAgICAg aW50IG9mZnM7CisrCSAgICAgIGNvZGUgPSBOX0xDU1lNOworKwkgICAgICBpZiAoTlVMTCAhPSBk YnhvdXRfY29tbW9uX2NoZWNrIChkZWNsLCAmb2ZmcykpCisrCSAgICAgICAgeworKwkJICBhZGRy ID0gMDsKKysJCSAgbnVtYmVyID0gb2ZmczsKKysJCSAgbGV0dGVyID0gJ1YnOworKwkJICBjb2Rl ID0gTl9HU1lNOworKwkJfQorKwkgICAgfQorIAkgIGVsc2UgaWYgKERFQ0xfSU5fVEVYVF9TRUNU SU9OIChkZWNsKSkKKyAJICAgIC8qIFRoaXMgaXMgbm90IHF1aXRlIHJpZ2h0LCBidXQgaXQncyB0 aGUgY2xvc2VzdAorIAkgICAgICAgb2YgYWxsIHRoZSBjb2RlcyB0aGF0IFVuaXggZGVmaW5lcy4g ICovCitAQCAtMzAwNCw5ICszMDMyLDE3IEBAIGRieG91dF9zeW1ib2xfbG9jYXRpb24gKHRyZWUg ZGVjbCwgdHJlZSAKKyAJIHZhcmlhYmxlLCB0aGVyZWJ5IGF2b2lkaW5nIHRoZSBuZWVkIGZvciBh IHJlZ2lzdGVyLiAgSW4gc3VjaAorIAkgY2FzZXMgd2UncmUgZm9yY2VkIHRvIGxpZSB0byBkZWJ1 Z2dlcnMgYW5kIHRlbGwgdGhlbSB0aGF0CisgCSB0aGlzIHZhcmlhYmxlIHdhcyBpdHNlbGYgYHN0 YXRpYycuICAqLworKyAgICAgIGludCBvZmZzOworICAgICAgIGNvZGUgPSBOX0xDU1lNOworICAg ICAgIGxldHRlciA9ICdWJzsKKy0gICAgICBhZGRyID0gWEVYUCAoWEVYUCAoaG9tZSwgMCksIDAp OworKyAgICAgIGlmIChOVUxMID09IGRieG91dF9jb21tb25fY2hlY2sgKGRlY2wsICZvZmZzKSkK KysgICAgICAgIGFkZHIgPSBYRVhQIChYRVhQIChob21lLCAwKSwgMCk7CisrICAgICAgZWxzZQor KyAgICAgICAgeworKwkgIGFkZHIgPSAwOworKwkgIG51bWJlciA9IG9mZnM7CisrCSAgY29kZSA9 IE5fR1NZTTsKKysJfQorICAgICB9CisgICBlbHNlIGlmIChHRVRfQ09ERSAoaG9tZSkgPT0gQ09O Q0FUKQorICAgICB7CitAQCAtMzA5MSw2ICszMTI3LDExNSBAQCBkYnhvdXRfc3ltYm9sX25hbWUg KHRyZWUgZGVjbCwgY29uc3QgY2hhCisgICAgIHN0YWJzdHJfQyAobGV0dGVyKTsKKyB9CisgCisr CisrLyogT3V0cHV0IHRoZSBjb21tb24gYmxvY2sgbmFtZSBmb3IgREVDTCBpbiBhIHN0YWJzLgor KworKyAgIFN5bWJvbHMgaW4gZ2xvYmFsIGNvbW1vbiAoLmNvbW0pIGdldCB3cmFwcGVkIHdpdGgg YW4gTl9CQ09NTS9OX0VDT01NIHBhaXIKKysgICBhcm91bmQgZWFjaCBncm91cCBvZiBzeW1ib2xz IGluIHRoZSBzYW1lIC5jb21tIGFyZWEuICBUaGUgTl9HU1lNIHN0YWJzCisrICAgdGhhdCBhcmUg ZW1pdHRlZCBvbmx5IGNvbnRhaW4gdGhlIG9mZnNldCBpbiB0aGUgY29tbW9uIGFyZWEuICBUaGlz IHJvdXRpbmUKKysgICBlbWl0cyB0aGUgTl9CQ09NTSBhbmQgTl9FQ09NTSBzdGFicy4gICovCisr Cisrc3RhdGljIHZvaWQKKytkYnhvdXRfY29tbW9uX25hbWUgKHRyZWUgZGVjbCwgY29uc3QgY2hh ciAqbmFtZSwgU1RBQl9DT0RFX1RZUEUgb3ApCisreworKyAgZGJ4b3V0X2JlZ2luX2NvbXBsZXhf c3RhYnMgKCk7CisrICBzdGFic3RyX1MgKG5hbWUpOworKyAgZGJ4b3V0X2ZpbmlzaF9jb21wbGV4 X3N0YWJzIChkZWNsLCBvcCwgTlVMTF9SVFgsIE5VTEwsIDApOworK30KKysKKysvKiBDaGVjayBk ZWNsIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IGlzIGEgVkFSX0RFQ0wgZGVzdGluZWQgZm9yIHN0 b3JhZ2UgaW4gYQorKyAgIGNvbW1vbiBhcmVhLiAgSWYgaXQgaXMsIHRoZSByZXR1cm4gdmFsdWUg d2lsbCBiZSBhIG5vbi1udWxsIHN0cmluZyBnaXZpbmcKKysgICB0aGUgbmFtZSBvZiB0aGUgY29t bW9uIHN0b3JhZ2UgYmxvY2sgaXQgd2lsbCBnbyBpbnRvLiAgSWYgbm9uLW51bGwsIHRoZQorKyAg IHZhbHVlIGlzIHRoZSBvZmZzZXQgaW50byB0aGUgY29tbW9uIGJsb2NrIGZvciB0aGF0IHN5bWJv bCdzIHN0b3JhZ2UuICAqLworKworK3N0YXRpYyBjb25zdCBjaGFyICoKKytkYnhvdXRfY29tbW9u X2NoZWNrICh0cmVlIGRlY2wsIGludCAqdmFsdWUpCisreworKyAgcnR4IGhvbWU7CisrICBydHgg c3ltX2FkZHI7CisrICBjb25zdCBjaGFyICpuYW1lID0gTlVMTDsKKysgIAorKyAgLyogSWYgdGhl IGRlY2wgaXNuJ3QgYSBWQVJfREVDTCwgb3IgaWYgaXQgaXNuJ3QgcHVibGljIG9yIHN0YXRpYywg b3IgaWYKKysgICAgIGl0IGRvZXMgbm90IGhhdmUgYSB2YWx1ZSAodGhlIG9mZnNldCBpbnRvIHRo ZSBjb21tb24gYXJlYSksIG9yIGlmIGl0CisrICAgICBpcyB0aHJlYWQgbG9jYWwgKGFzIG9wcG9z ZWQgdG8gZ2xvYmFsKSB0aGVuIGl0IGlzbid0IGNvbW1vbiwgYW5kIHNob3VsZG4ndAorKyAgICAg YmUgaGFuZGxlZCBhcyBzdWNoLgorKyAgICAgCisrICAgICA/Pz8gREVDTF9USFJFQURfTE9DQUxf UCBjaGVjayBwcmV2ZW50cyBwcm9ibGVtcyB3aXRoIGltcHJvcGVyIC5zdGFicworKyAgICAgZm9y IHRocmVhZC1sb2NhbCBzeW1ib2xzLiAgQ2FuIGJlIGhhbmRsZWQgdmlhIHNhbWUgbWVjaGFuaXNt IGFzIHVzZWQKKysgICAgIGluIGR3YXJmMm91dC5jLiAgKi8KKysgIGlmIChUUkVFX0NPREUgKGRl Y2wpICE9IFZBUl9ERUNMCisrICAgICAgfHwgIVRSRUVfUFVCTElDKGRlY2wpCisrICAgICAgfHwg IVRSRUVfU1RBVElDKGRlY2wpCisrICAgICAgfHwgIURFQ0xfSEFTX1ZBTFVFX0VYUFJfUChkZWNs KQorKyAgICAgIHx8IERFQ0xfVEhSRUFEX0xPQ0FMX1AgKGRlY2wpCisrICAgICAgfHwgIWlzX2Zv cnRyYW4gKCkpCisrICAgIHJldHVybiBOVUxMOworKworKyAgaG9tZSA9IERFQ0xfUlRMIChkZWNs KTsgCisrICBpZiAoaG9tZSA9PSBOVUxMX1JUWCB8fCBHRVRfQ09ERSAoaG9tZSkgIT0gTUVNKQor KyAgICByZXR1cm4gTlVMTDsKKysKKysgIHN5bV9hZGRyID0gZGJ4b3V0X2V4cGFuZF9leHByIChE RUNMX1ZBTFVFX0VYUFIgKGRlY2wpKTsKKysgIGlmIChzeW1fYWRkciA9PSBOVUxMX1JUWCB8fCBH RVRfQ09ERSAoc3ltX2FkZHIpICE9IE1FTSkKKysgICAgcmV0dXJuIE5VTEw7CisrCisrICBzeW1f YWRkciA9IFhFWFAgKHN5bV9hZGRyLCAwKTsKKysgIGlmIChHRVRfQ09ERSAoc3ltX2FkZHIpID09 IENPTlNUKQorKyAgICBzeW1fYWRkciA9IFhFWFAgKHN5bV9hZGRyLCAwKTsKKysgIGlmICgoR0VU X0NPREUgKHN5bV9hZGRyKSA9PSBTWU1CT0xfUkVGIHx8IEdFVF9DT0RFIChzeW1fYWRkcikgPT0g UExVUykKKysgICAgICAmJiBERUNMX0lOSVRJQUwgKGRlY2wpID09IDApCisrICAgIHsKKysKKysg ICAgICAvKiBXZSBoYXZlIGEgc3ltIHRoYXQgd2lsbCBnbyBpbnRvIGEgY29tbW9uIGFyZWEsIG1l YW5pbmcgdGhhdCBpdAorKyAgICAgICAgIHdpbGwgZ2V0IHN0b3JhZ2UgcmVzZXJ2ZWQgd2l0aCBh IC5jb21tLy5sY29tbSBhc3NlbWJsZXIgcHNldWRvLW9wLgorKworKyAgICAgICAgIERldGVybWlu ZSBuYW1lIG9mIGNvbW1vbiBhcmVhIHRoaXMgc3ltYm9sIHdpbGwgYmUgYW4gb2Zmc2V0IGludG8s CisrICAgICAgICAgYW5kIG9mZnNldCBpbnRvIHRoYXQgYXJlYS4gIEFsc28gcmV0cmlldmUgdGhl IGRlY2wgZm9yIHRoZSBhcmVhCisrICAgICAgICAgdGhhdCB0aGUgc3ltYm9sIGlzIG9mZnNldCBp bnRvLiAgKi8KKysgICAgICB0cmVlIGNkZWNsID0gTlVMTDsKKysKKysgICAgICBzd2l0Y2ggKEdF VF9DT0RFIChzeW1fYWRkcikpCisrICAgICAgICB7CisrICAgICAgICBjYXNlIFBMVVM6CisrICAg ICAgICAgIGlmIChHRVRfQ09ERSAoWEVYUCAoc3ltX2FkZHIsIDApKSA9PSBDT05TVF9JTlQpCisr ICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgbmFtZSA9CisrICAgICAgICAgICAgICAgIHRh cmdldG0uc3RyaXBfbmFtZV9lbmNvZGluZyhYU1RSIChYRVhQIChzeW1fYWRkciwgMSksIDApKTsK KysgICAgICAgICAgICAgICp2YWx1ZSA9IElOVFZBTCAoWEVYUCAoc3ltX2FkZHIsIDApKTsKKysg ICAgICAgICAgICAgIGNkZWNsID0gU1lNQk9MX1JFRl9ERUNMIChYRVhQIChzeW1fYWRkciwgMSkp OworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHsKKysgICAg ICAgICAgICAgIG5hbWUgPQorKyAgICAgICAgICAgICAgICB0YXJnZXRtLnN0cmlwX25hbWVfZW5j b2RpbmcoWFNUUiAoWEVYUCAoc3ltX2FkZHIsIDApLCAwKSk7CisrICAgICAgICAgICAgICAqdmFs dWUgPSBJTlRWQUwgKFhFWFAgKHN5bV9hZGRyLCAxKSk7CisrICAgICAgICAgICAgICBjZGVjbCA9 IFNZTUJPTF9SRUZfREVDTCAoWEVYUCAoc3ltX2FkZHIsIDApKTsKKysgICAgICAgICAgICB9Cisr ICAgICAgICAgIGJyZWFrOworKworKyAgICAgICAgY2FzZSBTWU1CT0xfUkVGOgorKyAgICAgICAg ICBuYW1lID0gdGFyZ2V0bS5zdHJpcF9uYW1lX2VuY29kaW5nKFhTVFIgKHN5bV9hZGRyLCAwKSk7 CisrICAgICAgICAgICp2YWx1ZSA9IDA7CisrICAgICAgICAgIGNkZWNsID0gU1lNQk9MX1JFRl9E RUNMIChzeW1fYWRkcik7CisrICAgICAgICAgIGJyZWFrOworKworKyAgICAgICAgZGVmYXVsdDoK KysgICAgICAgICAgZXJyb3IgKCJjb21tb24gc3ltYm9sIGRlYnVnIGluZm8gaXMgbm90IHN0cnVj dHVyZWQgYXMgIgorKyAgICAgICAgICAgICAgICAgInN5bWJvbCtvZmZzZXQiKTsKKysgICAgICAg IH0KKysKKysgICAgICAvKiBDaGVjayBhcmVhIGNvbW1vbiBzeW1ib2wgaXMgb2Zmc2V0IGludG8u ICBJZiB0aGlzIGlzIG5vdCBwdWJsaWMsIHRoZW4KKysgICAgICAgICBpdCBpcyBub3QgYSBzeW1i b2wgaW4gYSBjb21tb24gYmxvY2suICBJdCBtdXN0IGJlIGEgLmxjb21tIHN5bWJvbCwgbm90Cisr ICAgICAgICAgYSAuY29tbSBzeW1ib2wuICAqLworKyAgICAgIGlmIChjZGVjbCA9PSBOVUxMIHx8 ICFUUkVFX1BVQkxJQyhjZGVjbCkpCisrICAgICAgICBuYW1lID0gTlVMTDsKKysgICAgfQorKyAg ZWxzZQorKyAgICBuYW1lID0gTlVMTDsKKysKKysgIHJldHVybiBuYW1lOworK30KKysKKyAvKiBP dXRwdXQgZGVmaW5pdGlvbnMgb2YgYWxsIHRoZSBkZWNscyBpbiBhIGNoYWluLiBSZXR1cm4gbm9u emVybyBpZgorICAgIGFueXRoaW5nIHdhcyBvdXRwdXQgKi8KKyAKK0BAIC0zMDk4LDExICszMjQz LDM4IEBAIGludAorIGRieG91dF9zeW1zICh0cmVlIHN5bXMpCisgeworICAgaW50IHJlc3VsdCA9 IDA7CisrICBjb25zdCBjaGFyICpjb21tX3ByZXYgPSBOVUxMOworKyAgdHJlZSBzeW1zX3ByZXYg PSBOVUxMOworKworICAgd2hpbGUgKHN5bXMpCisgICAgIHsKKysgICAgICBpbnQgdGVtcCwgY29w ZW4sIGNjbG9zOworKyAgICAgIGNvbnN0IGNoYXIgKmNvbW1fbmV3OworKworKyAgICAgIC8qIENo ZWNrIGZvciBjb21tb24gc3ltYm9sLCBhbmQgdGhlbiBwcm9ncmVzc2lvbiBpbnRvIGEgbmV3L2Rp ZmZlcmVudAorKyAgICAgICAgIGJsb2NrIG9mIGNvbW1vbiBzeW1ib2xzLiAgRW1pdCBjbG9zaW5n L29wZW5pbmcgY29tbW9uIGJyYWNrZXQgaWYKKysgICAgICAgICBuZWNlc3NhcnkuICAqLworKyAg ICAgIGNvbW1fbmV3ID0gZGJ4b3V0X2NvbW1vbl9jaGVjayAoc3ltcywgJnRlbXApOworKyAgICAg IGNvcGVuID0gY29tbV9uZXcgIT0gTlVMTAorKyAgICAgICAgICAgICAgJiYgKGNvbW1fcHJldiA9 PSBOVUxMIHx8IHN0cmNtcCAoY29tbV9uZXcsIGNvbW1fcHJldikpOworKyAgICAgIGNjbG9zID0g Y29tbV9wcmV2ICE9IE5VTEwKKysgICAgICAgICAgICAgICYmIChjb21tX25ldyA9PSBOVUxMIHx8 IHN0cmNtcCAoY29tbV9uZXcsIGNvbW1fcHJldikpOworKyAgICAgIGlmIChjY2xvcykKKysgICAg ICAgIGRieG91dF9jb21tb25fbmFtZSAoc3ltc19wcmV2LCBjb21tX3ByZXYsIE5fRUNPTU0pOwor KyAgICAgIGlmIChjb3BlbikKKysgICAgICAgIHsKKysgICAgICAgICAgZGJ4b3V0X2NvbW1vbl9u YW1lIChzeW1zLCBjb21tX25ldywgTl9CQ09NTSk7CisrICAgICAgICAgIHN5bXNfcHJldiA9IHN5 bXM7CisrICAgICAgICB9CisrICAgICAgY29tbV9wcmV2ID0gY29tbV9uZXc7CisrCisgICAgICAg cmVzdWx0ICs9IGRieG91dF9zeW1ib2wgKHN5bXMsIDEpOworICAgICAgIHN5bXMgPSBUUkVFX0NI QUlOIChzeW1zKTsKKyAgICAgfQorKworKyAgaWYgKGNvbW1fcHJldiAhPSBOVUxMKQorKyAgICBk YnhvdXRfY29tbW9uX25hbWUgKHN5bXNfcHJldiwgY29tbV9wcmV2LCBOX0VDT01NKTsKKysKKyAg IHJldHVybiByZXN1bHQ7CisgfQorIAwKKy0tLSBnY2MvZHdhcmYyb3V0LmMJKHJldmlzaW9uIDEz MzgwMCkKKysrKyBnY2MvZHdhcmYyb3V0LmMJKHJldmlzaW9uIDEzMzgwMSkKK0BAIC00NDI5LDYg KzQ0MjksNyBAQCBzdGF0aWMgdm9pZCBvdXRwdXRfY29tcGlsYXRpb25fdW5pdF9oZWFkCisgc3Rh dGljIHZvaWQgb3V0cHV0X2NvbXBfdW5pdCAoZHdfZGllX3JlZiwgaW50KTsKKyBzdGF0aWMgY29u c3QgY2hhciAqZHdhcmYyX25hbWUgKHRyZWUsIGludCk7Cisgc3RhdGljIHZvaWQgYWRkX3B1Ym5h bWUgKHRyZWUsIGR3X2RpZV9yZWYpOworK3N0YXRpYyB2b2lkIGFkZF9wdWJuYW1lX3N0cmluZyAo Y29uc3QgY2hhciAqLCBkd19kaWVfcmVmKTsKKyBzdGF0aWMgdm9pZCBhZGRfcHVidHlwZSAodHJl ZSwgZHdfZGllX3JlZik7Cisgc3RhdGljIHZvaWQgb3V0cHV0X3B1Ym5hbWVzIChWRUMgKHB1Ym5h bWVfZW50cnksZ2MpICopOworIHN0YXRpYyB2b2lkIGFkZF9hcmFuZ2UgKHRyZWUsIGR3X2RpZV9y ZWYpOworQEAgLTc2NTksMTggKzc2NjAsMjMgQEAgZHdhcmYyX25hbWUgKHRyZWUgZGVjbCwgaW50 IHNjb3BlKQorIC8qIEFkZCBhIG5ldyBlbnRyeSB0byAuZGVidWdfcHVibmFtZXMgaWYgYXBwcm9w cmlhdGUuICAqLworIAorIHN0YXRpYyB2b2lkCistYWRkX3B1Ym5hbWUgKHRyZWUgZGVjbCwgZHdf ZGllX3JlZiBkaWUpCisrYWRkX3B1Ym5hbWVfc3RyaW5nIChjb25zdCBjaGFyICpzdHIsIGR3X2Rp ZV9yZWYgZGllKQorIHsKKyAgIHB1Ym5hbWVfZW50cnkgZTsKKyAKKy0gIGlmICghIFRSRUVfUFVC TElDIChkZWNsKSkKKy0gICAgcmV0dXJuOworLQorICAgZS5kaWUgPSBkaWU7CistICBlLm5hbWUg PSB4c3RyZHVwIChkd2FyZjJfbmFtZSAoZGVjbCwgMSkpOworKyAgZS5uYW1lID0geHN0cmR1cCAo c3RyKTsKKyAgIFZFQ19zYWZlX3B1c2ggKHB1Ym5hbWVfZW50cnksIGdjLCBwdWJuYW1lX3RhYmxl LCAmZSk7CisgfQorIAorK3N0YXRpYyB2b2lkCisrYWRkX3B1Ym5hbWUgKHRyZWUgZGVjbCwgZHdf ZGllX3JlZiBkaWUpCisreworKworKyAgaWYgKFRSRUVfUFVCTElDIChkZWNsKSkKKysgICAgYWRk X3B1Ym5hbWVfc3RyaW5nIChkd2FyZjJfbmFtZSAoZGVjbCwgMSksIGRpZSk7CisrfQorKworIC8q IEFkZCBhIG5ldyBlbnRyeSB0byAuZGVidWdfcHVidHlwZXMgaWYgYXBwcm9wcmlhdGUuICAqLwor IAorIHN0YXRpYyB2b2lkCitAQCAtMTA5MTQsNiArMTA5MjAsNTcgQEAgc2VjbmFtZV9mb3JfZGVj bCAoY29uc3RfdHJlZSBkZWNsKQorICAgcmV0dXJuIHNlY25hbWU7CisgfQorIAorKy8qIENoZWNr IHdoZXRoZXIgZGVjbCBpcyBhIEZvcnRyYW4gQ09NTU9OIHN5bWJvbC4gIElmIG5vdCwgTlVMTF9S VFggaXMgcmV0dXJuZWQuCisrICAgSWYgc28sIHRoZSBydHggZm9yIHRoZSBTWU1CT0xfUkVGIGZv ciB0aGUgQ09NTU9OIGJsb2NrIGlzIHJldHVybmVkLCBhbmQgdGhlCisrICAgdmFsdWUgaXMgdGhl IG9mZnNldCBpbnRvIHRoZSBjb21tb24gYmxvY2sgZm9yIHRoZSBzeW1ib2wuICAqLworKworK3N0 YXRpYyB0cmVlCisrZm9ydHJhbl9jb21tb24gKHRyZWUgZGVjbCwgSE9TVF9XSURFX0lOVCAqdmFs dWUpCisreworKyAgdHJlZSB2YWxfZXhwciwgY3ZhcjsKKysgIGVudW0gbWFjaGluZV9tb2RlIG1v ZGU7CisrICBIT1NUX1dJREVfSU5UIGJpdHNpemUsIGJpdHBvczsKKysgIHRyZWUgb2Zmc2V0Owor KyAgaW50IHZvbGF0aWxlcCA9IDAsIHVuc2lnbmVkcCA9IDA7CisrCisrICAvKiBJZiB0aGUgZGVj bCBpc24ndCBhIFZBUl9ERUNMLCBvciBpZiBpdCBpc24ndCBwdWJsaWMgb3Igc3RhdGljLCBvciBp ZgorKyAgICAgaXQgZG9lcyBub3QgaGF2ZSBhIHZhbHVlICh0aGUgb2Zmc2V0IGludG8gdGhlIGNv bW1vbiBhcmVhKSwgb3IgaWYgaXQKKysgICAgIGlzIHRocmVhZCBsb2NhbCAoYXMgb3Bwb3NlZCB0 byBnbG9iYWwpIHRoZW4gaXQgaXNuJ3QgY29tbW9uLCBhbmQgc2hvdWxkbid0CisrICAgICBiZSBo YW5kbGVkIGFzIHN1Y2guICAqLworKyAgaWYgKFRSRUVfQ09ERSAoZGVjbCkgIT0gVkFSX0RFQ0wK KysgICAgICB8fCAhVFJFRV9QVUJMSUMgKGRlY2wpCisrICAgICAgfHwgIVRSRUVfU1RBVElDIChk ZWNsKQorKyAgICAgIHx8ICFERUNMX0hBU19WQUxVRV9FWFBSX1AgKGRlY2wpCisrICAgICAgfHwg IWlzX2ZvcnRyYW4gKCkpCisrICAgIHJldHVybiBOVUxMX1RSRUU7CisrCisrICB2YWxfZXhwciA9 IERFQ0xfVkFMVUVfRVhQUiAoZGVjbCk7CisrICBpZiAoVFJFRV9DT0RFICh2YWxfZXhwcikgIT0g Q09NUE9ORU5UX1JFRikKKysgICAgcmV0dXJuIE5VTExfVFJFRTsKKysKKysgIGN2YXIgPSBnZXRf aW5uZXJfcmVmZXJlbmNlICh2YWxfZXhwciwgJmJpdHNpemUsICZiaXRwb3MsICZvZmZzZXQsCisr CQkJICAgICAgJm1vZGUsICZ1bnNpZ25lZHAsICZ2b2xhdGlsZXAsIHRydWUpOworKworKyAgaWYg KGN2YXIgPT0gTlVMTF9UUkVFCisrICAgICAgfHwgVFJFRV9DT0RFIChjdmFyKSAhPSBWQVJfREVD TAorKyAgICAgIHx8IERFQ0xfQVJUSUZJQ0lBTCAoY3ZhcikKKysgICAgICB8fCAhVFJFRV9QVUJM SUMgKGN2YXIpKQorKyAgICByZXR1cm4gTlVMTF9UUkVFOworKworKyAgKnZhbHVlID0gMDsKKysg IGlmIChvZmZzZXQgIT0gTlVMTCkKKysgICAgeworKyAgICAgIGlmICghaG9zdF9pbnRlZ2VycCAo b2Zmc2V0LCAwKSkKKysJcmV0dXJuIE5VTExfVFJFRTsKKysgICAgICAqdmFsdWUgPSB0cmVlX2xv d19jc3QgKG9mZnNldCwgMCk7CisrICAgIH0KKysgIGlmIChiaXRwb3MgIT0gMCkKKysgICAgKnZh bHVlICs9IGJpdHBvcyAvIEJJVFNfUEVSX1VOSVQ7CisrCisrICByZXR1cm4gY3ZhcjsKKyt9Cisr CisrCisgLyogR2VuZXJhdGUgKmVpdGhlciogYSBEV19BVF9sb2NhdGlvbiBhdHRyaWJ1dGUgb3Ig ZWxzZSBhIERXX0FUX2NvbnN0X3ZhbHVlCisgICAgZGF0YSBhdHRyaWJ1dGUgZm9yIGEgdmFyaWFi bGUgb3IgYSBwYXJhbWV0ZXIuICBXZSBnZW5lcmF0ZSB0aGUKKyAgICBEV19BVF9jb25zdF92YWx1 ZSBhdHRyaWJ1dGUgb25seSBpbiB0aG9zZSBjYXNlcyB3aGVyZSB0aGUgZ2l2ZW4gdmFyaWFibGUK K0BAIC0xMjgxMSw5ICsxMjg2OCwxMCBAQCBnZW5fc3VicHJvZ3JhbV9kaWUgKHRyZWUgZGVjbCwg ZHdfZGllX3JlCisgc3RhdGljIHZvaWQKKyBnZW5fdmFyaWFibGVfZGllICh0cmVlIGRlY2wsIGR3 X2RpZV9yZWYgY29udGV4dF9kaWUpCisgeworKyAgSE9TVF9XSURFX0lOVCBvZmY7CisrICB0cmVl IGNvbV9kZWNsOworKyAgZHdfZGllX3JlZiB2YXJfZGllOworICAgdHJlZSBvcmlnaW4gPSBkZWNs X3VsdGltYXRlX29yaWdpbiAoZGVjbCk7CistICBkd19kaWVfcmVmIHZhcl9kaWUgPSBuZXdfZGll IChEV19UQUdfdmFyaWFibGUsIGNvbnRleHRfZGllLCBkZWNsKTsKKy0KKyAgIGR3X2RpZV9yZWYg b2xkX2RpZSA9IGxvb2t1cF9kZWNsX2RpZSAoZGVjbCk7CisgICBpbnQgZGVjbGFyYXRpb24gPSAo REVDTF9FWFRFUk5BTCAoZGVjbCkKKyAJCSAgICAgLyogSWYgREVDTCBpcyBDT01EQVQgYW5kIGhh cyBub3QgYWN0dWFsbHkgYmVlbgorQEAgLTEyODM3LDYgKzEyODk1LDM3IEBAIGdlbl92YXJpYWJs ZV9kaWUgKHRyZWUgZGVjbCwgZHdfZGllX3JlZiAKKyAJCQkgJiYgREVDTF9DT01EQVQgKGRlY2wp ICYmICFUUkVFX0FTTV9XUklUVEVOIChkZWNsKSkKKyAJCSAgICAgfHwgY2xhc3Nfb3JfbmFtZXNw YWNlX3Njb3BlX3AgKGNvbnRleHRfZGllKSk7CisgCisrICBjb21fZGVjbCA9IGZvcnRyYW5fY29t bW9uIChkZWNsLCAmb2ZmKTsKKysKKysgIC8qIFN5bWJvbCBpbiBjb21tb24gZ2V0cyBlbWl0dGVk IGFzIGEgY2hpbGQgb2YgdGhlIGNvbW1vbiBibG9jaywgaW4gdGhlIGZvcm0KKysgICAgIG9mIGEg ZGF0YSBtZW1iZXIuCisrCisrICAgICA/Pz8gVGhpcyBjcmVhdGVzIGEgbmV3IGNvbW1vbiBibG9j ayBkaWUgZm9yIGV2ZXJ5IGNvbW1vbiBibG9jayBzeW1ib2wuCisrICAgICBCZXR0ZXIgdG8gc2hh cmUgc2FtZSBjb21tb24gYmxvY2sgZGllIGZvciBhbGwgc3ltYm9scyBpbiB0aGF0IGJsb2NrLiAg Ki8KKysgIGlmIChjb21fZGVjbCkKKysgICAgeworKyAgICAgIHRyZWUgZmllbGQ7CisrICAgICAg ZHdfZGllX3JlZiBjb21fZGllOworKyAgICAgIGNvbnN0IGNoYXIgKmNuYW0gPSBJREVOVElGSUVS X1BPSU5URVIgKERFQ0xfQVNTRU1CTEVSX05BTUUgKGNvbV9kZWNsKSk7CisrICAgICAgZHdfbG9j X2Rlc2NyX3JlZiBsb2MgPSBsb2NfZGVzY3JpcHRvcl9mcm9tX3RyZWUgKGNvbV9kZWNsKTsKKysK KysgICAgICBmaWVsZCA9IFRSRUVfT1BFUkFORCAoREVDTF9WQUxVRV9FWFBSIChkZWNsKSwgMCk7 CisrICAgICAgdmFyX2RpZSA9IG5ld19kaWUgKERXX1RBR19jb21tb25fYmxvY2ssIGNvbnRleHRf ZGllLCBkZWNsKTsKKysgICAgICBhZGRfbmFtZV9hbmRfc3JjX2Nvb3Jkc19hdHRyaWJ1dGVzICh2 YXJfZGllLCBmaWVsZCk7CisrICAgICAgYWRkX0FUX2ZsYWcgKHZhcl9kaWUsIERXX0FUX2V4dGVy bmFsLCAxKTsKKysgICAgICBhZGRfQVRfbG9jICh2YXJfZGllLCBEV19BVF9sb2NhdGlvbiwgbG9j KTsKKysgICAgICBjb21fZGllID0gbmV3X2RpZSAoRFdfVEFHX21lbWJlciwgdmFyX2RpZSwgZGVj bCk7CisrICAgICAgYWRkX25hbWVfYW5kX3NyY19jb29yZHNfYXR0cmlidXRlcyAoY29tX2RpZSwg ZGVjbCk7CisrICAgICAgYWRkX3R5cGVfYXR0cmlidXRlIChjb21fZGllLCBUUkVFX1RZUEUgKGRl Y2wpLCBUUkVFX1JFQURPTkxZIChkZWNsKSwKKysJCQkgIFRSRUVfVEhJU19WT0xBVElMRSAoZGVj bCksIGNvbnRleHRfZGllKTsKKysgICAgICBhZGRfQVRfbG9jIChjb21fZGllLCBEV19BVF9kYXRh X21lbWJlcl9sb2NhdGlvbiwKKysJCSAgaW50X2xvY19kZXNjcmlwdG9yIChvZmYpKTsKKysgICAg ICBhZGRfcHVibmFtZV9zdHJpbmcgKGNuYW0sIHZhcl9kaWUpOyAvKiA/Pz8gbmVlZGVkPyAqLwor KyAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgdmFyX2RpZSA9IG5ld19kaWUgKERXX1RBR192 YXJpYWJsZSwgY29udGV4dF9kaWUsIGRlY2wpOworKworICAgaWYgKG9yaWdpbiAhPSBOVUxMKQor ICAgICBhZGRfYWJzdHJhY3Rfb3JpZ2luX2F0dHJpYnV0ZSAodmFyX2RpZSwgb3JpZ2luKTsKKyAK K0BAIC0xMzgxMiw4ICsxMzkwMSwxMyBAQCBkZWNsc19mb3Jfc2NvcGUgKHRyZWUgc3RtdCwgZHdf ZGllX3JlZiBjCisgCSAgICBhZGRfY2hpbGRfZGllIChjb250ZXh0X2RpZSwgZGllKTsKKyAJICAv KiBEbyBub3QgcHJvZHVjZSBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3Igc3RhdGljIHZhcmlhYmxlcyBz aW5jZQorIAkgICAgIHRoZXNlIG1pZ2h0IGJlIG9wdGltaXplZCBvdXQuICBXZSBhcmUgY2FsbGVk IGZvciB0aGVzZSBsYXRlcgorLQkgICAgIGluIHZhcnBvb2xfYW5hbHl6ZV9wZW5kaW5nX2RlY2xz LiAqLworLQkgIGlmIChUUkVFX0NPREUgKGRlY2wpID09IFZBUl9ERUNMICYmIFRSRUVfU1RBVElD IChkZWNsKSkKKysJICAgICBpbiB2YXJwb29sX2FuYWx5emVfcGVuZGluZ19kZWNscy4KKysKKysJ ICAgICBCdXQgKmRvKiBwcm9kdWNlIGl0IGZvciBGb3J0cmFuIENPTU1PTiB2YXJpYWJsZXMgYmVj YXVzZSwKKysJICAgICBldmVuIHRob3VnaCB0aGV5IGFyZSBzdGF0aWMsIHRoZWlyIG5hbWVzIGNh biBkaWZmZXIgZGVwZW5kaW5nCisrCSAgICAgb24gdGhlIHNjb3BlLCB3aGljaCB3ZSBuZWVkIHRv IHByZXNlcnZlLiAgKi8KKysJICBpZiAoVFJFRV9DT0RFIChkZWNsKSA9PSBWQVJfREVDTCAmJiBU UkVFX1NUQVRJQyAoZGVjbCkKKysJICAgICAgJiYgIShpc19mb3J0cmFuICgpICYmIFRSRUVfUFVC TElDIChkZWNsKSkpCisgCSAgICA7CisgCSAgZWxzZQorIAkgICAgZ2VuX2RlY2xfZGllIChkZWNs LCBjb250ZXh0X2RpZSk7CitAQCAtMTQxMzcsNiArMTQyMzEsMTYgQEAgZ2VuX2RlY2xfZGllICh0 cmVlIGRlY2wsIGR3X2RpZV9yZWYgY29udAorICAgICAgIGlmIChkZWJ1Z19pbmZvX2xldmVsIDw9 IERJTkZPX0xFVkVMX1RFUlNFKQorIAlicmVhazsKKyAKKysgICAgICAvKiBJZiB0aGlzIGlzIHRo ZSBnbG9iYWwgZGVmaW5pdGlvbiBvZiB0aGUgRm9ydHJhbiBDT01NT04gYmxvY2ssIHdlIGRvbid0 CisrICAgICAgICAgbmVlZCB0byBkbyBhbnl0aGluZy4gIFN5bnRhY3RpY2FsbHksIHRoZSBibG9j ayBpdHNlbGYgaGFzIG5vIGlkZW50aXR5LAorKyAgICAgICAgIGp1c3QgaXRzIGNvbnN0aXR1ZW50 IGlkZW50aWZpZXJzLiAgKi8KKysgICAgICBpZiAoVFJFRV9DT0RFIChkZWNsKSA9PSBWQVJfREVD TAorKyAgICAgICAgICAmJiBUUkVFX1BVQkxJQyAoZGVjbCkKKysgICAgICAgICAgJiYgVFJFRV9T VEFUSUMgKGRlY2wpCisrICAgICAgICAgICYmIGlzX2ZvcnRyYW4gKCkKKysgICAgICAgICAgJiYg IURFQ0xfSEFTX1ZBTFVFX0VYUFJfUCAoZGVjbCkpCisrICAgICAgICBicmVhazsKKysKKyAgICAg ICAvKiBPdXRwdXQgYW55IERJRXMgdGhhdCBhcmUgbmVlZGVkIHRvIHNwZWNpZnkgdGhlIHR5cGUg b2YgdGhpcyBkYXRhCisgCSBvYmplY3QuICAqLworICAgICAgIGlmIChUUkVFX0NPREUgKGRlY2wp ID09IFJFU1VMVF9ERUNMICYmIERFQ0xfQllfUkVGRVJFTkNFIChkZWNsKSkKK0BAIC0xNDIwMyw3 ICsxNDMwNywxNSBAQCBkd2FyZjJvdXRfZ2xvYmFsX2RlY2wgKHRyZWUgZGVjbCkKKyAgIC8qIE91 dHB1dCBEV0FSRjIgaW5mb3JtYXRpb24gZm9yIGZpbGUtc2NvcGUgdGVudGF0aXZlIGRhdGEgb2Jq ZWN0CisgICAgICBkZWNsYXJhdGlvbnMsIGZpbGUtc2NvcGUgKGV4dGVybikgZnVuY3Rpb24gZGVj bGFyYXRpb25zICh3aGljaCBoYWQgbm8KKyAgICAgIGNvcnJlc3BvbmRpbmcgYm9keSkgYW5kIGZp bGUtc2NvcGUgdGFnZ2VkIHR5cGUgZGVjbGFyYXRpb25zIGFuZAorLSAgICAgZGVmaW5pdGlvbnMg d2hpY2ggaGF2ZSBub3QgeWV0IGJlZW4gZm9yY2VkIG91dC4gICovCisrICAgICBkZWZpbml0aW9u cyB3aGljaCBoYXZlIG5vdCB5ZXQgYmVlbiBmb3JjZWQgb3V0LgorKworKyAgICAgSWdub3JlIHRo ZSBnbG9iYWwgZGVjbCBvZiBhbnkgRm9ydHJhbiBDT01NT04gYmxvY2tzIHdoaWNoIGFsc28gd2lu ZCB1cCBoZXJlCisrICAgICB0aG91Z2ggdGhleSBoYXZlIGFscmVhZHkgYmVlbiBkZXNjcmliZWQg aW4gdGhlIGxvY2FsIHNjb3BlIGZvciB0aGUgCisrICAgICBwcm9jZWR1cmVzIHVzaW5nIHRoZW0u ICAqLworKyAgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gVkFSX0RFQ0wKKysgICAgICAmJiBUUkVF X1BVQkxJQyAoZGVjbCkgJiYgVFJFRV9TVEFUSUMgKGRlY2wpICYmIGlzX2ZvcnRyYW4gKCkpCisr ICAgIHJldHVybjsKKysKKyAgIGlmIChUUkVFX0NPREUgKGRlY2wpICE9IEZVTkNUSU9OX0RFQ0wg fHwgIURFQ0xfSU5JVElBTCAoZGVjbCkpCisgICAgIGR3YXJmMm91dF9kZWNsIChkZWNsKTsKKyB9 CistLS0gZ2NjL2ZvcnRyYW4vdHJhbnMtY29tbW9uLmMJKHJldmlzaW9uIDEzNDY5NSkKKysrKyBn Y2MvZm9ydHJhbi90cmFucy1jb21tb24uYwkocmV2aXNpb24gMTM0Njk2KQorQEAgLTY4Nyw3ICs2 ODcsMTEgQEAgY3JlYXRlX2NvbW1vbiAoZ2ZjX2NvbW1vbl9oZWFkICpjb20sIHNlZworICAgICAg IC8qIFRoaXMgaXMgYSBmYWtlIHZhcmlhYmxlIGp1c3QgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4g ICovCisgICAgICAgVFJFRV9BU01fV1JJVFRFTiAodmFyX2RlY2wpID0gMTsKKyAKKy0gICAgICBp ZiAoY29tKQorKyAgICAgIC8qIFRvIHByZXNlcnZlIGlkZW50aWZpZXIgbmFtZXMgaW4gQ09NTU9O LCBjaGFpbiB0byBwcm9jZWR1cmUKKysJIHNjb3BlIHVubGVzcyBhdCB0b3AgbGV2ZWwgaW4gYSBt b2R1bGUgZGVmaW5pdGlvbi4gICovCisrICAgICAgaWYgKGNvbQorKwkgICYmIHMtPnN5bS0+bnMt PnByb2NfbmFtZQorKwkgICYmIHMtPnN5bS0+bnMtPnByb2NfbmFtZS0+YXR0ci5mbGF2b3IgPT0g RkxfTU9EVUxFKQorIAl2YXJfZGVjbCA9IHB1c2hkZWNsX3RvcF9sZXZlbCAodmFyX2RlY2wpOwor ICAgICAgIGVsc2UKKyAJZ2ZjX2FkZF9kZWNsX3RvX2Z1bmN0aW9uICh2YXJfZGVjbCk7CistLS0g Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWJ1Zy9wcjM1MTU0LXN0YWJzLmYJKHJldmlzaW9u IDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWJ1Zy9wcjM1MTU0LXN0YWJzLmYJ KHJldmlzaW9uIDEzNDY5NikKK0BAIC0wLDAgKzEsMzUgQEAKKytDICAgICBUZXN0IHByb2dyYW0g Zm9yIGNvbW1vbiBibG9jayBkZWJ1Z2dpbmcuICBHLiBIZWxmZnJpY2ggMTEgSnVseSAyMDA0Lgor K0MgeyBkZy1kbyBjb21waWxlIH0KKytDIHsgZGctc2tpcC1pZiAiTm8gc3RhYnMiIHsgbW1peC0q LSogKi0qLW5ldHdhcmUqIGFscGhhKi0qLSogaHBwYSo2NCotKi0qIGlhNjQtKi0qICotKi1zeXN2 NSogKi0qLXZ4d29ya3MqIH0geyAiKiIgfSB7ICIiIH0gfQorK0MgeyBkZy1za2lwLWlmICJObyBz dGFicyIgeyotKi0qIH0geyAiKiIgfSB7ICItZ3N0YWJzIiB9IH0KKysgICAgICBjb21tb24gaSxq CisrICAgICAgY29tbW9uIC9sYWJlbC9sLG0KKysgICAgICBpID0gMQorKyAgICAgIGogPSAyCisr ICAgICAgayA9IDMKKysgICAgICBsID0gNAorKyAgICAgIG0gPSA1CisrICAgICAgY2FsbCBzdWIK KysgICAgICBlbmQKKysgICAgICBzdWJyb3V0aW5lIHN1YgorKyAgICAgIGNvbW1vbiAvbGFiZWwv bCxtCisrICAgICAgbG9naWNhbCBmaXJzdAorKyAgICAgIHNhdmUgbgorKyAgICAgIGRhdGEgZmly c3QgLy50cnVlLi8KKysgICAgICBpZiAoZmlyc3QpIHRoZW4KKysgICAgICAgICBuID0gMAorKwkg Zmlyc3QgPSAuZmFsc2UuCisrICAgICAgZW5kaWYKKysgICAgICBuID0gbiArIDEKKysgICAgICBs ID0gbCArIDEKKysgICAgICByZXR1cm4KKysgICAgICBlbmQKKysKKytDIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAiLnN0YWJzLipcIl9fQkxOS19fXCIsMjI2IiB9IH0KKytDIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAiLnN0YWJzLipcImk6Vi4qXCIsLiosMCIgfSB9CisrQyB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIi5zdGFicy4qXCJqOlYuKlwiLC4qLDQiIH0gfQorK0Mg eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICIuc3RhYnMuKlwiX19CTE5LX19cIiwyMjgiIH0g fQorK0MgeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICIuc3RhYnMuKlwibGFiZWxfXCIsMjI2 IiB9IH0KKytDIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiLnN0YWJzLipcImw6Vi4qXCIs LiosMCIgfSB9CisrQyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIi5zdGFicy4qXCJtOlYu KlwiLC4qLDQiIH0gfQorK0MgeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICIuc3RhYnMuKlwi bGFiZWxfXCIsMjI4IiB9IH0KKy0tLSBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlYnVnL3By MzUxNTQtZHdhcmYyLmYJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9kZWJ1Zy9wcjM1MTU0LWR3YXJmMi5mCShyZXZpc2lvbiAxMzQ2OTYpCitAQCAtMCwwICsxLDM3 IEBACisrQyAgICAgVGVzdCBwcm9ncmFtIGZvciBjb21tb24gYmxvY2sgZGVidWdnaW5nLiAgRy4g SGVsZmZyaWNoIDExIEp1bHkgMjAwNC4KKytDIHsgZGctZG8gY29tcGlsZSB9CisrQyB7IGRnLXNr aXAtaWYgIkRXQVJGLTIgb25seSIgeyAiKi0qLSoiIH0geyAiKiIgfSB7ICItZ2R3YXJmLTIiIH0g fQorK0MgeyBkZy1vcHRpb25zICItZEEiIH0KKysgICAgICBjb21tb24gaSxqCisrICAgICAgY29t bW9uIC9sYWJlbC9sLG0KKysgICAgICBpID0gMQorKyAgICAgIGogPSAyCisrICAgICAgayA9IDMK KysgICAgICBsID0gNAorKyAgICAgIG0gPSA1CisrICAgICAgY2FsbCBzdWIKKysgICAgICBlbmQK KysgICAgICBzdWJyb3V0aW5lIHN1YgorKyAgICAgIGNvbW1vbiAvbGFiZWwvbCxtCisrICAgICAg bG9naWNhbCBmaXJzdAorKyAgICAgIHNhdmUgbgorKyAgICAgIGRhdGEgZmlyc3QgLy50cnVlLi8K KysgICAgICBpZiAoZmlyc3QpIHRoZW4KKysgICAgICAgICBuID0gMAorKwkgZmlyc3QgPSAuZmFs c2UuCisrICAgICAgZW5kaWYKKysgICAgICBuID0gbiArIDEKKysgICAgICBsID0gbCArIDEKKysg ICAgICByZXR1cm4KKysgICAgICBlbmQKKysKKytDIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ciAiKERJRS4qRFdfVEFHX2NvbW1vbl9ibG9jaykiIH0gfQorK0MgeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJEV19BVF9uYW1lOiBcIl9fQkxOS19fXCIiIH0gfQorK0MgeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICIoRElFLipEV19UQUdfbWVtYmVyKSIgfSB9CisrQyB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIgIlwiaS4qXCIuKkRXX0FUX25hbWUiIH0gfQorK0MgeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJcImouKlwiLipEV19BVF9uYW1lIiB9IH0KKytDIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAiKERJRS4qRFdfVEFHX2NvbW1vbl9ibG9jaykiIH0gfQorK0Mg eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJEV19BVF9uYW1lOiBcImxhYmVsXCIiIH0gfQor K0MgeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICIoRElFLipEV19UQUdfbWVtYmVyKSIgfSB9 CisrQyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIlwibC4qXCIuKkRXX0FUX25hbWUiIH0g fQorK0MgeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJcIm0uKlwiLipEV19BVF9uYW1lIiB9 IH0KKy0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9kZWJ1Zy9wcjM1MTU0LmMJKHJldmlzaW9uIDAp CisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVidWcvcHIzNTE1NC5jCShyZXZpc2lvbiAxMzM4 MDEpCitAQCAtMCwwICsxLDM0IEBACisrLyogVGVzdCB0byBtYWtlIHN1cmUgdGhhdCBzdGFicyBm b3IgQyBzeW1ib2xzIHRoYXQgZ28gaW50byAuY29tbSBoYXZlIHRoZQorKyAgIHByb3BlciBzdHJ1 Y3R1cmUuICBUaGVzZSBzaG91bGQgYmUgbGV0dGVyZWQgRyBmb3IgdGhlIHN0cnVjdCB0aGF0IGdp dmVzCisrICAgdGhlIG5hbWUgdG8gdGhlIC5jb21tLCBhbmQgc2hvdWxkIGJlIFYgb3IgUyBmb3Ig Lmxjb21tIHN5bWJvbHMuICAqLworKworK3N0YXRpYyBjaGFyIGlfb3V0ZXI7Cisrc3RydWN0IHsK KysgICBjaGFyIGYxOworKyAgIGNoYXIgZjI7CisrfSBvcHRhOworK3N0cnVjdCB7CisrICAgY2hh ciBmMTsKKysgICBjaGFyIGYyOworK30gb3B0YjsKKysKKytpbnQKKyttYWluKCkKKyt7CisrICAg c3RhdGljIGNoYXIgaV9pbm5lclsyXTsKKysgICBpX2lubmVyWzBdID0gJ2EnOyBpX2lubmVyWzFd ID0gJ2InOworKyAgIG9wdGEuZjEgPSAnYyc7CisrICAgb3B0YS5mMiA9ICdkJzsKKysgICBvcHRi LmYxID0gJ0MnOworKyAgIG9wdGIuZjIgPSAnRCc7CisrICAgaV9vdXRlciA9ICdlJzsKKysvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworKy8qIHsgZGctc2tpcC1pZiAiTm8gc3RhYnMiIHsgbW1peC0q LSogKi0qLW5ldHdhcmUqIGFscGhhKi0qLSogaHBwYSo2NCotKi0qIGlhNjQtKi0qICotKi1zeXN2 NSogKi0qLXZ4d29ya3MqIH0geyAiKiIgfSB7ICIiIH0gfSAqLworKy8qIHsgZGctc2tpcC1pZiAi c3RhYnMgb25seSIgeyAqLSotKiB9IHsgIioiIH0geyAiLWdzdGFicyIgfSB9ICovCisrICAgcmV0 dXJuIDA7CisrfQorKworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiLnN0YWJzLipp X2lubmVyOlYiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiLnN0YWJz LippX291dGVyOlMiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiLnN0 YWJzLipvcHRhOkciIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiLnN0 YWJzLipvcHRiOkciIH0gfSAqLworLS0tIGdjYy90ZXN0c3VpdGUvbGliL2dmb3J0cmFuLWRnLmV4 cAkocmV2aXNpb24gMTMzODAwKQorKysrIGdjYy90ZXN0c3VpdGUvbGliL2dmb3J0cmFuLWRnLmV4 cAkocmV2aXNpb24gMTMzODAxKQorQEAgLTEsNCArMSw0IEBACistIyAgIENvcHlyaWdodCAoQykg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysj ICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorIAorICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAjIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CitA QCAtMTA3LDMgKzEwNyw1NyBAQCBwcm9jIGdmb3J0cmFuLWRnLXJ1bnRlc3QgeyB0ZXN0Y2FzZXMg ZGVmCisgCX0KKyAgICAgfQorIH0KKysKKytwcm9jIGdmb3J0cmFuLWRnLWRlYnVnLXJ1bnRlc3Qg eyB0YXJnZXRfY29tcGlsZSB0cml2aWFsIG9wdF9vcHRzIHRlc3RjYXNlcyB9IHsKKysgICAgZ2xv YmFsIHNyY2RpciBzdWJkaXIgREVCVUdfVE9SVFVSRV9PUFRJT05TCisrCisrICAgIGlmICFbaW5m byBleGlzdHMgREVCVUdfVE9SVFVSRV9PUFRJT05TXSB7CisrICAgICAgIHNldCBERUJVR19UT1JU VVJFX09QVElPTlMgIiIKKysgICAgICAgc2V0IHR5cGVfbGlzdCBbbGlzdCAiLWdzdGFicyIgIi1n c3RhYnMrIiAiLWd4Y29mZiIgIi1neGNvZmYrIiAiLWdjb2ZmIiAiLWdkd2FyZi0yIiBdCisrICAg ICAgIGZvcmVhY2ggdHlwZSAkdHlwZV9saXN0IHsKKysgICAgICAgICAgIHNldCBjb21wX291dHB1 dCBbJHRhcmdldF9jb21waWxlIFwKKysgICAgICAgICAgICAgICAgICAgIiRzcmNkaXIvJHN1YmRp ci8kdHJpdmlhbCIgInRyaXZpYWwuUyIgYXNzZW1ibHkgXAorKyAgICAgICAgICAgICAgICAgICAi YWRkaXRpb25hbF9mbGFncz0kdHlwZSJdCisrICAgICAgICAgICBpZiB7IFtzdHJpbmcgbWF0Y2gg ImV4aXQgc3RhdHVzICoiICRjb21wX291dHB1dF0gfSB7CisrICAgICAgICAgICAgICAgY29udGlu dWUKKysgICAgICAgICAgIH0KKysgICAgICAgICAgIGlmIHsgW3N0cmluZyBtYXRjaCBcCisrICAg ICAgICAgICAgICAgICAgICAgICAiKiB0YXJnZXQgc3lzdGVtIGRvZXMgbm90IHN1cHBvcnQgdGhl ICogZGVidWcgZm9ybWF0KiIgXAorKyAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBfb3V0cHV0 XQorKyAgICAgICAgICAgfSB7CisrICAgICAgICAgICAgICAgY29udGludWUKKysgICAgICAgICAg IH0KKysgICAgICAgICAgIGZvcmVhY2ggbGV2ZWwgezEgIiIgM30geworKyAgICAgICAgICAgICAg IGxhcHBlbmQgREVCVUdfVE9SVFVSRV9PUFRJT05TIFtsaXN0ICIke3R5cGV9JHtsZXZlbH0iXQor KyAgICAgICAgICAgICAgIGZvcmVhY2ggb3B0ICRvcHRfb3B0cyB7CisrICAgICAgICAgICAgICAg ICAgIGxhcHBlbmQgREVCVUdfVE9SVFVSRV9PUFRJT05TIFtsaXN0ICIke3R5cGV9JHtsZXZlbH0i IFwKKysgICAgICAgICAgICAgICAgICAgICAgIiRvcHQiIF0KKysgICAgICAgICAgICAgICB9Cisr ICAgICAgICAgICB9CisrICAgICAgIH0KKysgICAgfQorKworKyAgICB2ZXJib3NlIC1sb2cgIlVz aW5nIG9wdGlvbnMgJERFQlVHX1RPUlRVUkVfT1BUSU9OUyIKKysKKysgICAgZ2xvYmFsIHJ1bnRl c3RzCisrCisrICAgIGZvcmVhY2ggdGVzdCAkdGVzdGNhc2VzIHsKKysgICAgICAgIyBJZiB3ZSdy ZSBvbmx5IHRlc3Rpbmcgc3BlY2lmaWMgZmlsZXMgYW5kIHRoaXMgaXNuJ3Qgb25lIG9mIAorKyAg ICAgICAjIHRoZW0sIHNraXAgaXQuCisrICAgICAgIGlmICFbcnVudGVzdF9maWxlX3AgJHJ1bnRl c3RzICR0ZXN0XSB7CisrICAgICAgICAgICBjb250aW51ZQorKyAgICAgICB9CisrCisrICAgICAg IHNldCBuc2hvcnQgW2ZpbGUgdGFpbCBbZmlsZSBkaXJuYW1lICR0ZXN0XV0vW2ZpbGUgdGFpbCAk dGVzdF0KKysKKysgICAgICAgZm9yZWFjaCBmbGFncyAkREVCVUdfVE9SVFVSRV9PUFRJT05TIHsK KysgICAgICAgICAgIHNldCBkb2l0IDEKKysgICAgICAgICAgICMgZ2NjLXNwZWNpZmljIGNoZWNr aW5nIHJlbW92ZWQgaGVyZQorKworKyAgICAgICAgICAgaWYgeyAkZG9pdCB9IHsKKysgICAgICAg ICAgICAgICB2ZXJib3NlIC1sb2cgIlRlc3RpbmcgJG5zaG9ydCwgJGZsYWdzIiAxCisrICAgICAg ICAgICAgICAgZGctdGVzdCAkdGVzdCAkZmxhZ3MgIiIKKysgICAgICAgICAgIH0KKysgICAgICAg fQorKyAgICB9CisrfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVidWcvZGVidWcu ZXhwCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVidWcvZGVi dWcuZXhwCShyZXZpc2lvbiAxMzM4MDEpCitAQCAtMCwwICsxLDQxIEBACisrIyAgQ29weXJpZ2h0 IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdDQy4KKysjCisrIyAgR0NDIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKKysjICB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQor KyMgIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyCisrIyAgdmVyc2lvbi4KKysjCisrIyAgR0NDIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFOWQorKyMg IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB QklMSVRZIG9yCisrIyAgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyAgZm9yIG1vcmUgZGV0YWlscy4KKysjCisr IyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKysjICBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAg SWYgbm90IHNlZQorKyMgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIEdD QyB0ZXN0c3VpdGUgdGhhdCB1c2VzIHRoZSBgZGcuZXhwJyBkcml2ZXIuCisrCisrIyBMb2FkIHN1 cHBvcnQgcHJvY3MuCisrbG9hZF9saWIgZ2ZvcnRyYW4tZGcuZXhwCisrbG9hZF9saWIgZ2ZvcnRy YW4uZXhwCisrCisrIyBEZWJ1Z2dpbmcgdGVzdHN1aXRlIHByb2MKKytwcm9jIGdmb3J0cmFuLWRl YnVnLWRnLXRlc3QgeyBwcm9nIGRvX3doYXQgZXh0cmFfdG9vbF9mbGFncyB9IHsKKysgICByZXR1 cm4gW2dmb3J0cmFuLWRnLXRlc3QgJHByb2cgJGRvX3doYXQgJGV4dHJhX3Rvb2xfZmxhZ3NdCisr fQorKworKyMgSW5pdGlhbGl6ZSBgZGcnLgorK2RnLWluaXQKKysKKysjIE1haW4gbG9vcC4KKysK KytnZm9ydHJhbl9pbml0CisrCisrZ2ZvcnRyYW4tZGctZGVidWctcnVudGVzdCBnZm9ydHJhbl90 YXJnZXRfY29tcGlsZSB0cml2aWFsLmYgIiIgXAorKyAgICBbbHNvcnQgW2dsb2IgLW5vY29tcGxh aW4gJHNyY2Rpci8kc3ViZGlyLyouXFtmU1xdXV0KKysKKysjIEFsbCBkb25lLgorK2RnLWZpbmlz aAorLS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVidWcvdHJpdmlhbC5mCShyZXZpc2lv biAwKQorKysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVidWcvdHJpdmlhbC5mCShyZXZp c2lvbiAxMzM4MDEpCitAQCAtMCwwICsxLDIgQEAKKysgICAgICBwcm9ncmFtIHRyaXZpYWwKKysg ICAgICBlbmQKCmRpZmYgLS1naXQgYS9nY2M0My1mb3J0cmFuLWRlYnVnMi5wYXRjaCBiL2djYzQz LWZvcnRyYW4tZGVidWcyLnBhdGNoCmluZGV4IDllMDcwOGUuLmE3YmYxMmEgMTAwNjQ0Ci0tLSBh L2djYzQzLWZvcnRyYW4tZGVidWcyLnBhdGNoCisrKyBiL2djYzQzLWZvcnRyYW4tZGVidWcyLnBh dGNoCkBAIC0yOTMsMTQgKzI5MywxNCBAQAogIHN5bWJvbF9hdHRyaWJ1dGUgZ2ZjX3ZhcmlhYmxl X2F0dHIgKGdmY19leHByICosIGdmY190eXBlc3BlYyAqKTsKIC0tLSBnY2MvZm9ydHJhbi9zeW1i b2wuYy5qagkyMDA4LTA4LTIxIDEwOjE5OjQ5LjAwMDAwMDAwMCArMDIwMAogKysrIGdjYy9mb3J0 cmFuL3N5bWJvbC5jCTIwMDgtMDgtMjEgMTA6MjE6MzAuMDAwMDAwMDAwICswMjAwCi1AQCAtMzA0 Miw2ICszMDQyLDcgQEAgZ2ZjX2ZyZWVfbmFtZXNwYWNlIChnZmNfbmFtZXNwYWNlICpucykKK0BA IC0yOTAzLDYgKzI5MDMsNyBAQCBnZmNfZnJlZV9uYW1lc3BhY2UgKGdmY19uYW1lc3BhY2UgKm5z KQogIAogICAgZ2ZjX2ZyZWVfZXF1aXYgKG5zLT5lcXVpdik7CiAgICBnZmNfZnJlZV9lcXVpdl9s aXN0cyAobnMtPmVxdWl2X2xpc3RzKTsKICsgIGdmY19mcmVlX3VzZV9zdG10cyAobnMtPnVzZV9z dG10cyk7CiAgCiAgICBmb3IgKGkgPSBHRkNfSU5UUklOU0lDX0JFR0lOOyBpICE9IEdGQ19JTlRS SU5TSUNfRU5EOyBpKyspCi0gICAgIGdmY19mcmVlX2ludGVyZmFjZSAobnMtPm9wW2ldKTsKKyAg ICAgZ2ZjX2ZyZWVfaW50ZXJmYWNlIChucy0+b3BlcmF0b3JbaV0pOwogLS0tIGdjYy9mb3J0cmFu L3RyYW5zLXR5cGVzLmMuamoJMjAwOC0wOC0yMSAxMDoxOTo0OS4wMDAwMDAwMDAgKzAyMDAKICsr KyBnY2MvZm9ydHJhbi90cmFucy10eXBlcy5jCTIwMDgtMDgtMjEgMTA6MjE6MzAuMDAwMDAwMDAw ICswMjAwCiBAQCAtMTkzNCwxMiArMTkzNCwyMyBAQCBnZmNfZ2V0X2Rlcml2ZWRfdHlwZSAoZ2Zj X3N5bWJvbCAqIGRlcml2CgpkaWZmIC0tZ2l0IGEvZ2NjNDMtZm9ydHJhbi1kZWJ1ZzMucGF0Y2gg Yi9nY2M0My1mb3J0cmFuLWRlYnVnMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5lYTAxZjhhCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDMtZm9ydHJhbi1kZWJ1ZzMu cGF0Y2gKQEAgLTAsMCArMSw4MiBAQAorMjAwOC0wOC0yMSAgSmFrdWIgSmVsaW5layAgPGpha3Vi QHJlZGhhdC5jb20+CisKKwkqIHRyYW5zLWRlY2wuYyAoZ2ZjX2J1aWxkX3F1YWxpZmllZF9hcnJh eSk6IEJ1aWxkIG5vbi1mbGF0CisJYXJyYXkgdHlwZSBmb3IgZGVidWcgaW5mbyBwdXJwb3Nlcy4K KwkqIGR3YXJmMm91dC5jIChhZGRfYm91bmRfaW5mbyk6IElmIGxvb2t1cF9kZWNsX2RpZSBmYWls ZWQsIHRyeQorCWxvY19kZXNjcmlwdG9yX2Zyb21fdHJlZV8xLgorCistLS0gZ2NjL2ZvcnRyYW4v dHJhbnMtZGVjbC5jLmpqCTIwMDgtMDgtMjEgMTE6NTY6MDkuMDAwMDAwMDAwICswMjAwCisrKysg Z2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jCTIwMDgtMDgtMjEgMjM6MDc6MDEuMDAwMDAwMDAwICsw MjAwCitAQCAtNzAzLDYgKzcwMyw1MCBAQCBnZmNfYnVpbGRfcXVhbGlmaWVkX2FycmF5ICh0cmVl IGRlY2wsIGdmCisgICAgICAgVFlQRV9ET01BSU4gKHR5cGUpID0gcmFuZ2U7CisgICAgICAgbGF5 b3V0X3R5cGUgKHR5cGUpOworICAgICB9CisrCisrICBpZiAobmVzdCB8fCB3cml0ZV9zeW1ib2xz ID09IE5PX0RFQlVHKQorKyAgICByZXR1cm47CisrCisrICBpZiAoVFlQRV9OQU1FICh0eXBlKSAh PSBOVUxMX1RSRUUKKysgICAgICAmJiBHRkNfVFlQRV9BUlJBWV9VQk9VTkQgKHR5cGUsIHN5bS0+ YXMtPnJhbmsgLSAxKSAhPSBOVUxMX1RSRUUKKysgICAgICAmJiBUUkVFX0NPREUgKEdGQ19UWVBF X0FSUkFZX1VCT1VORCAodHlwZSwgc3ltLT5hcy0+cmFuayAtIDEpKSA9PSBWQVJfREVDTCkKKysg ICAgeworKyAgICAgIHRyZWUgZ3R5cGUgPSBERUNMX09SSUdJTkFMX1RZUEUgKFRZUEVfTkFNRSAo dHlwZSkpOworKworKyAgICAgIGZvciAoZGltID0gMDsgZGltIDwgc3ltLT5hcy0+cmFuayAtIDE7 IGRpbSsrKQorKwl7CisrCSAgZ2NjX2Fzc2VydCAoVFJFRV9DT0RFIChndHlwZSkgPT0gQVJSQVlf VFlQRSk7CisrCSAgZ3R5cGUgPSBUUkVFX1RZUEUgKGd0eXBlKTsKKysJfQorKyAgICAgIGdjY19h c3NlcnQgKFRSRUVfQ09ERSAoZ3R5cGUpID09IEFSUkFZX1RZUEUpOworKyAgICAgIGlmIChUWVBF X01BWF9WQUxVRSAoVFlQRV9ET01BSU4gKGd0eXBlKSkgPT0gTlVMTCkKKysJVFlQRV9OQU1FICh0 eXBlKSA9IE5VTExfVFJFRTsKKysgICAgfQorKworKyAgaWYgKFRZUEVfTkFNRSAodHlwZSkgPT0g TlVMTF9UUkVFKQorKyAgICB7CisrICAgICAgdHJlZSBndHlwZSA9IFRSRUVfVFlQRSAodHlwZSks IHJ0eXBlLCB0eXBlX2RlY2w7CisrCisrICAgICAgZm9yIChkaW0gPSBzeW0tPmFzLT5yYW5rIC0g MTsgZGltID49IDA7IGRpbS0tKQorKwl7CisrCSAgcnR5cGUgPSBidWlsZF9yYW5nZV90eXBlIChn ZmNfYXJyYXlfaW5kZXhfdHlwZSwKKysJCQkJICAgIEdGQ19UWVBFX0FSUkFZX0xCT1VORCAodHlw ZSwgZGltKSwKKysJCQkJICAgIEdGQ19UWVBFX0FSUkFZX1VCT1VORCAodHlwZSwgZGltKSk7Cisr CSAgZ3R5cGUgPSBidWlsZF9hcnJheV90eXBlIChndHlwZSwgcnR5cGUpOworKwkgIC8qIEVuc3Vy ZSB0aGUgYm91bmQgdmFyaWFibGVzIGFyZW4ndCBvcHRpbWl6ZWQgb3V0IGF0IC1PMC4gICovCisr CSAgaWYgKCFvcHRpbWl6ZSkKKysJICAgIHsKKysJICAgICAgaWYgKEdGQ19UWVBFX0FSUkFZX0xC T1VORCAodHlwZSwgZGltKQorKwkJICAmJiBUUkVFX0NPREUgKEdGQ19UWVBFX0FSUkFZX0xCT1VO RCAodHlwZSwgZGltKSkgPT0gVkFSX0RFQ0wpCisrCQlERUNMX0lHTk9SRURfUCAoR0ZDX1RZUEVf QVJSQVlfTEJPVU5EICh0eXBlLCBkaW0pKSA9IDA7CisrCSAgICAgIGlmIChHRkNfVFlQRV9BUlJB WV9VQk9VTkQgKHR5cGUsIGRpbSkKKysJCSAgJiYgVFJFRV9DT0RFIChHRkNfVFlQRV9BUlJBWV9V Qk9VTkQgKHR5cGUsIGRpbSkpID09IFZBUl9ERUNMKQorKwkJREVDTF9JR05PUkVEX1AgKEdGQ19U WVBFX0FSUkFZX1VCT1VORCAodHlwZSwgZGltKSkgPSAwOworKwkgICAgfQorKwl9CisrICAgICAg VFlQRV9OQU1FICh0eXBlKSA9IHR5cGVfZGVjbCA9IGJ1aWxkX2RlY2wgKFRZUEVfREVDTCwgTlVM TCwgZ3R5cGUpOworKyAgICAgIERFQ0xfT1JJR0lOQUxfVFlQRSAodHlwZV9kZWNsKSA9IGd0eXBl OworKyAgICB9CisgfQorIAorIAorLS0tIGdjYy9kd2FyZjJvdXQuYy5qagkyMDA4LTA4LTIxIDEz OjE1OjQxLjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9kd2FyZjJvdXQuYwkyMDA4LTA4LTIxIDE4 OjI3OjMwLjAwMDAwMDAwMCArMDIwMAorQEAgLTExOTQzLDYgKzExOTQzLDcgQEAgYWRkX2JvdW5k X2luZm8gKGR3X2RpZV9yZWYgc3VicmFuZ2VfZGllLAorICAgICBjYXNlIFJFU1VMVF9ERUNMOgor ICAgICAgIHsKKyAJZHdfZGllX3JlZiBkZWNsX2RpZSA9IGxvb2t1cF9kZWNsX2RpZSAoYm91bmQp OworKwlkd19sb2NfZGVzY3JfcmVmIGxvYzsKKyAKKyAJLyogPz8/IENhbiB0aGlzIGhhcHBlbiwg b3Igc2hvdWxkIHRoZSB2YXJpYWJsZSBoYXZlIGJlZW4gYm91bmQKKyAJICAgZmlyc3Q/ICBQcm9i YWJseSBpdCBjYW4sIHNpbmNlIEkgaW1hZ2luZSB0aGF0IHdlIHRyeSB0byBjcmVhdGUKK0BAIC0x MTk1MSw2ICsxMTk1MiwxMSBAQCBhZGRfYm91bmRfaW5mbyAoZHdfZGllX3JlZiBzdWJyYW5nZV9k aWUsCisgCSAgIGxhdGVyIHBhcmFtZXRlci4gICovCisgCWlmIChkZWNsX2RpZSAhPSBOVUxMKQor IAkgIGFkZF9BVF9kaWVfcmVmIChzdWJyYW5nZV9kaWUsIGJvdW5kX2F0dHIsIGRlY2xfZGllKTsK KysJZWxzZQorKwkgIHsKKysJICAgIGxvYyA9IGxvY19kZXNjcmlwdG9yX2Zyb21fdHJlZV8xIChi b3VuZCwgMCk7CisrCSAgICBhZGRfQVRfbG9jYXRpb25fZGVzY3JpcHRpb24gKHN1YnJhbmdlX2Rp ZSwgYm91bmRfYXR0ciwgbG9jKTsKKysJICB9CisgCWJyZWFrOworICAgICAgIH0KKyAKCmRpZmYg LS1naXQgYS9nY2M0My1mb3J0cmFuLWRlYnVnNC5wYXRjaCBiL2djYzQzLWZvcnRyYW4tZGVidWc0 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzZjgxY2YKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2M0My1mb3J0cmFuLWRlYnVnNC5wYXRjaApAQCAtMCwwICsxLDExMiBA QAorMjAwOC0wOC0yMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBm b3J0cmFuLzIzMDU3CisJKiBkd2FyZjJvdXQuYyAoZ2VuX3ZhcmlhYmxlX2RpZSk6IFJlcHJlc2Vu dCBGb3J0cmFuIENPTU1PTiB2YXJzCisJYXMgRFdfVEFHX3ZhcmlhYmxlIGNoaWxkcmVuIG9mIERX X1RBR19jb21tb25fYmxvY2sgcmF0aGVyIHRoYW4KKwlEV19UQUdfbWVtYmVyIGNoaWxkcmVuLiAg UHV0IERXX0FUX2V4dGVybmFsIHRvIGluZGl2aWR1YWwKKwlEV19UQUdfdmFyaWFibGUgRElFcywg bm90IHRvIERXX1RBR19jb21tb25fYmxvY2suCisKKwkqIGdmb3J0cmFuLmRnL2RlYnVnL3ByMzUx NTQtZHdhcmYyLmY6IEFkanVzdCBmb3IgcmVwbGFjZW1lbnQKKwlvZiBEV19UQUdfbWVtYmVyIHdp dGggRFdfVEFHX3ZhcmlhYmxlLgorCistLS0gZ2NjL2R3YXJmMm91dC5jLmpqCTIwMDgtMDgtMjEg MTg6Mjc6MzAuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2R3YXJmMm91dC5jCTIwMDgtMDgtMjIg MTI6MTI6NTYuMDAwMDAwMDAwICswMjAwCitAQCAtMTM1NDAsNDMgKzEzNTQwLDY2IEBAIGdlbl92 YXJpYWJsZV9kaWUgKHRyZWUgZGVjbCwgZHdfZGllX3JlZiAKKyAgICAgeworICAgICAgIHRyZWUg ZmllbGQ7CisgICAgICAgZHdfZGllX3JlZiBjb21fZGllOworKyAgICAgIGR3X2xvY19kZXNjcl9y ZWYgbG9jOworIAorLSAgICAgIGlmIChsb29rdXBfZGVjbF9kaWUgKGRlY2wpKQorLQlyZXR1cm47 CisrICAgICAgY29tX2RpZSA9IGxvb2t1cF9kZWNsX2RpZSAoZGVjbCk7CisrICAgICAgaWYgKGNv bV9kaWUpCisrCXsKKysJICBpZiAoZ2V0X0FUIChjb21fZGllLCBEV19BVF9sb2NhdGlvbikgPT0g TlVMTCkKKysJICAgIHsKKysJICAgICAgbG9jID0gbG9jX2Rlc2NyaXB0b3JfZnJvbV90cmVlIChj b21fZGVjbCk7CisrCSAgICAgIGlmIChsb2MpCisrCQl7CisrCQkgIGlmIChvZmYpCisrCQkgICAg YWRkX2xvY19kZXNjciAoJmxvYywgbmV3X2xvY19kZXNjciAoRFdfT1BfcGx1c191Y29uc3QsCisr CQkJCQkJCW9mZiwgMCkpOworKwkJICBhZGRfQVRfbG9jIChjb21fZGllLCBEV19BVF9sb2NhdGlv biwgbG9jKTsKKysJCSAgcmVtb3ZlX0FUIChjb21fZGllLCBEV19BVF9kZWNsYXJhdGlvbik7Cisr CQl9CisrCSAgICB9CisrCSAgcmV0dXJuOworKwl9CisgICAgICAgZmllbGQgPSBUUkVFX09QRVJB TkQgKERFQ0xfVkFMVUVfRVhQUiAoZGVjbCksIDApOworICAgICAgIHZhcl9kaWUgPSBsb29rdXBf ZGVjbF9kaWUgKGNvbV9kZWNsKTsKKysgICAgICBsb2MgPSBsb2NfZGVzY3JpcHRvcl9mcm9tX3Ry ZWUgKGNvbV9kZWNsKTsKKyAgICAgICBpZiAodmFyX2RpZSA9PSBOVUxMKQorIAl7CisgCSAgY29u c3QgY2hhciAqY25hbQorIAkgICAgPSBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfQVNTRU1CTEVS X05BTUUgKGNvbV9kZWNsKSk7CistCSAgZHdfbG9jX2Rlc2NyX3JlZiBsb2MgPSBsb2NfZGVzY3Jp cHRvcl9mcm9tX3RyZWUgKGNvbV9kZWNsKTsKKyAKKyAJICB2YXJfZGllID0gbmV3X2RpZSAoRFdf VEFHX2NvbW1vbl9ibG9jaywgY29udGV4dF9kaWUsIGRlY2wpOworIAkgIGFkZF9uYW1lX2FuZF9z cmNfY29vcmRzX2F0dHJpYnV0ZXMgKHZhcl9kaWUsIGNvbV9kZWNsKTsKKy0JICBhZGRfQVRfZmxh ZyAodmFyX2RpZSwgRFdfQVRfZXh0ZXJuYWwsIDEpOworIAkgIGlmIChsb2MpCistCSAgICBhZGRf QVRfbG9jICh2YXJfZGllLCBEV19BVF9sb2NhdGlvbiwgbG9jKTsKKysJICAgIHsKKysJICAgICAg YWRkX0FUX2xvYyAodmFyX2RpZSwgRFdfQVRfbG9jYXRpb24sIGxvYyk7CisrCSAgICAgIC8qIEF2 b2lkIHNoYXJpbmcgdGhlIHNhbWUgbG9jIGRlc2NyaXB0b3IgYmV0d2VlbgorKwkJIERXX1RBR19j b21tb25fYmxvY2sgYW5kIERXX1RBR192YXJpYWJsZS4gICovCisrCSAgICAgIGxvYyA9IGxvY19k ZXNjcmlwdG9yX2Zyb21fdHJlZSAoY29tX2RlY2wpOworKwkgICAgfQorICAgICAgICAgICBlbHNl IGlmIChERUNMX0VYVEVSTkFMIChkZWNsKSkKKyAJICAgIGFkZF9BVF9mbGFnICh2YXJfZGllLCBE V19BVF9kZWNsYXJhdGlvbiwgMSk7CisgCSAgYWRkX3B1Ym5hbWVfc3RyaW5nIChjbmFtLCB2YXJf ZGllKTsgLyogPz8/IG5lZWRlZD8gKi8KKyAJICBlcXVhdGVfZGVjbF9udW1iZXJfdG9fZGllIChj b21fZGVjbCwgdmFyX2RpZSk7CisgCX0KKy0gICAgICBlbHNlIGlmIChnZXRfQVQgKHZhcl9kaWUs IERXX0FUX2xvY2F0aW9uKSA9PSBOVUxMKQorKyAgICAgIGVsc2UgaWYgKGdldF9BVCAodmFyX2Rp ZSwgRFdfQVRfbG9jYXRpb24pID09IE5VTEwgJiYgbG9jKQorIAl7CistCSAgZHdfbG9jX2Rlc2Ny X3JlZiBsb2MgPSBsb2NfZGVzY3JpcHRvcl9mcm9tX3RyZWUgKGNvbV9kZWNsKTsKKy0KKy0JICBp ZiAobG9jKQorLQkgICAgeworLQkgICAgICBhZGRfQVRfbG9jICh2YXJfZGllLCBEV19BVF9sb2Nh dGlvbiwgbG9jKTsKKy0JICAgICAgcmVtb3ZlX0FUICh2YXJfZGllLCBEV19BVF9kZWNsYXJhdGlv bik7CistCSAgICB9CisrCSAgYWRkX0FUX2xvYyAodmFyX2RpZSwgRFdfQVRfbG9jYXRpb24sIGxv Yyk7CisrCSAgbG9jID0gbG9jX2Rlc2NyaXB0b3JfZnJvbV90cmVlIChjb21fZGVjbCk7CisrCSAg cmVtb3ZlX0FUICh2YXJfZGllLCBEV19BVF9kZWNsYXJhdGlvbik7CisgCX0KKy0gICAgICBjb21f ZGllID0gbmV3X2RpZSAoRFdfVEFHX21lbWJlciwgdmFyX2RpZSwgZGVjbCk7CisrICAgICAgY29t X2RpZSA9IG5ld19kaWUgKERXX1RBR192YXJpYWJsZSwgdmFyX2RpZSwgZGVjbCk7CisgICAgICAg YWRkX25hbWVfYW5kX3NyY19jb29yZHNfYXR0cmlidXRlcyAoY29tX2RpZSwgZGVjbCk7CisgICAg ICAgYWRkX3R5cGVfYXR0cmlidXRlIChjb21fZGllLCBUUkVFX1RZUEUgKGRlY2wpLCBUUkVFX1JF QURPTkxZIChkZWNsKSwKKyAJCQkgIFRSRUVfVEhJU19WT0xBVElMRSAoZGVjbCksIGNvbnRleHRf ZGllKTsKKy0gICAgICBhZGRfQVRfbG9jIChjb21fZGllLCBEV19BVF9kYXRhX21lbWJlcl9sb2Nh dGlvbiwKKy0JCSAgaW50X2xvY19kZXNjcmlwdG9yIChvZmYpKTsKKysgICAgICBhZGRfQVRfZmxh ZyAoY29tX2RpZSwgRFdfQVRfZXh0ZXJuYWwsIDEpOworKyAgICAgIGlmIChsb2MpCisrCXsKKysJ ICBpZiAob2ZmKQorKwkgICAgYWRkX2xvY19kZXNjciAoJmxvYywgbmV3X2xvY19kZXNjciAoRFdf T1BfcGx1c191Y29uc3QsIG9mZiwgMCkpOworKwkgIGFkZF9BVF9sb2MgKGNvbV9kaWUsIERXX0FU X2xvY2F0aW9uLCBsb2MpOworKwl9CisrICAgICAgZWxzZSBpZiAoREVDTF9FWFRFUk5BTCAoZGVj bCkpCisrCWFkZF9BVF9mbGFnIChjb21fZGllLCBEV19BVF9kZWNsYXJhdGlvbiwgMSk7CisgICAg ICAgZXF1YXRlX2RlY2xfbnVtYmVyX3RvX2RpZSAoZGVjbCwgY29tX2RpZSk7CisgICAgICAgcmV0 dXJuOworICAgICB9CistLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWJ1Zy9wcjM1MTU0 LWR3YXJmMi5mLmpqCTIwMDgtMDQtMjcgMTI6NDI6NDQuMDAwMDAwMDAwICswMjAwCisrKysgZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWJ1Zy9wcjM1MTU0LWR3YXJmMi5mCTIwMDgtMDgtMjIg MTA6NTY6NDQuMDAwMDAwMDAwICswMjAwCitAQCAtMjcsMTEgKzI3LDExIEBAIEMgeyBkZy1vcHRp b25zICItZEEiIH0KKyAKKyBDIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiKERJRS4qRFdf VEFHX2NvbW1vbl9ibG9jaykiIH0gfQorIEMgeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJE V19BVF9uYW1lOiBcIl9fQkxOS19fXCIiIH0gfQorLUMgeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyICIoRElFLipEV19UQUdfbWVtYmVyKSIgfSB9CisrQyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXIgIihESUUuKkRXX1RBR192YXJpYWJsZSkiIH0gfQorIEMgeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJcImkuKlwiLipEV19BVF9uYW1lIiB9IH0KKyBDIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAiXCJqLipcIi4qRFdfQVRfbmFtZSIgfSB9CisgQyB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgIihESUUuKkRXX1RBR19jb21tb25fYmxvY2spIiB9IH0KKyBDIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAiRFdfQVRfbmFtZTogXCJsYWJlbFwiIiB9IH0KKy1DIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiKERJRS4qRFdfVEFHX21lbWJlcikiIH0gfQorK0MgeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICIoRElFLipEV19UQUdfdmFyaWFibGUpIiB9IH0KKyBD IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiXCJsLipcIi4qRFdfQVRfbmFtZSIgfSB9Cisg QyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIlwibS4qXCIuKkRXX0FUX25hbWUiIH0gfQoK ZGlmZiAtLWdpdCBhL2djYzQzLWZvcnRyYW4tZGVidWc1LnBhdGNoIGIvZ2NjNDMtZm9ydHJhbi1k ZWJ1ZzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJmMjRkYwot LS0gL2Rldi9udWxsCisrKyBiL2djYzQzLWZvcnRyYW4tZGVidWc1LnBhdGNoCkBAIC0wLDAgKzEs OTEgQEAKKzIwMDgtMDgtMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJ KiBkd2FyZjJvdXQuYyAobG9jX2J5X3JlZmVyZW5jZSk6IE5ldyBmdW5jdGlvbi4KKwkoYWRkX2xv Y2F0aW9uX29yX2NvbnN0X3ZhbHVlX2F0dHJpYnV0ZSk6IFVzZSBpdC4KKworLS0tIGdjYy9kd2Fy ZjJvdXQuYy5qagkyMDA4LTA4LTIyIDEyOjEyOjU2LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9k d2FyZjJvdXQuYwkyMDA4LTA4LTIyIDEzOjM5OjIxLjAwMDAwMDAwMCArMDIwMAorQEAgLTEwOTcx LDYgKzEwOTcxLDMyIEBAIGZvcnRyYW5fY29tbW9uICh0cmVlIGRlY2wsIEhPU1RfV0lERV9JTlQK KyAgIHJldHVybiBjdmFyOworIH0KKyAKKysvKiBEZXJlZmVyZW5jZSBhIGxvY2F0aW9uIGV4cHJl c3Npb24gTE9DIGlmIERFQ0wgaXMgcGFzc2VkIGJ5IGludmlzaWJsZQorKyAgIHJlZmVyZW5jZS4g ICovCisrCisrc3RhdGljIGR3X2xvY19kZXNjcl9yZWYKKytsb2NfYnlfcmVmZXJlbmNlIChkd19s b2NfZGVzY3JfcmVmIGxvYywgdHJlZSBkZWNsKQorK3sKKysgIEhPU1RfV0lERV9JTlQgc2l6ZTsK KysgIGVudW0gZHdhcmZfbG9jYXRpb25fYXRvbSBvcDsKKysKKysgIGlmIChsb2MgPT0gTlVMTCkK KysgICAgcmV0dXJuIE5VTEw7CisrCisrICBpZiAoKFRSRUVfQ09ERSAoZGVjbCkgIT0gUEFSTV9E RUNMICYmIFRSRUVfQ09ERSAoZGVjbCkgIT0gUkVTVUxUX0RFQ0wpCisrICAgICAgfHwgIURFQ0xf QllfUkVGRVJFTkNFIChkZWNsKSkKKysgICAgcmV0dXJuIGxvYzsKKysKKysgIHNpemUgPSBpbnRf c2l6ZV9pbl9ieXRlcyAoVFJFRV9UWVBFIChkZWNsKSk7CisrICBpZiAoc2l6ZSA+IERXQVJGMl9B RERSX1NJWkUgfHwgc2l6ZSA9PSAtMSkKKysgICAgcmV0dXJuIDA7CisrICBlbHNlIGlmIChzaXpl ID09IERXQVJGMl9BRERSX1NJWkUpCisrICAgIG9wID0gRFdfT1BfZGVyZWY7CisrICBlbHNlCisr ICAgIG9wID0gRFdfT1BfZGVyZWZfc2l6ZTsKKysgIGFkZF9sb2NfZGVzY3IgKCZsb2MsIG5ld19s b2NfZGVzY3IgKG9wLCBzaXplLCAwKSk7CisrICByZXR1cm4gbG9jOworK30KKyAKKyAvKiBHZW5l cmF0ZSAqZWl0aGVyKiBhIERXX0FUX2xvY2F0aW9uIGF0dHJpYnV0ZSBvciBlbHNlIGEgRFdfQVRf Y29uc3RfdmFsdWUKKyAgICBkYXRhIGF0dHJpYnV0ZSBmb3IgYSB2YXJpYWJsZSBvciBhIHBhcmFt ZXRlci4gIFdlIGdlbmVyYXRlIHRoZQorQEAgLTExMDI5LDggKzExMDU1LDggQEAgYWRkX2xvY2F0 aW9uX29yX2NvbnN0X3ZhbHVlX2F0dHJpYnV0ZSAoZAorICAgICAgIGVsc2UKKyAJaW5pdGlhbGl6 ZWQgPSBWQVJfSU5JVF9TVEFUVVNfSU5JVElBTElaRUQ7CisgCistICAgICAgbGlzdCA9IG5ld19s b2NfbGlzdCAobG9jX2Rlc2NyaXB0b3IgKHZhcmxvYywgaW5pdGlhbGl6ZWQpLAorLQkJCSAgIG5v ZGUtPmxhYmVsLCBub2RlLT5uZXh0LT5sYWJlbCwgc2VjbmFtZSwgMSk7CisrICAgICAgZGVzY3Ig PSBsb2NfYnlfcmVmZXJlbmNlIChsb2NfZGVzY3JpcHRvciAodmFybG9jLCBpbml0aWFsaXplZCks IGRlY2wpOworKyAgICAgIGxpc3QgPSBuZXdfbG9jX2xpc3QgKGRlc2NyLCBub2RlLT5sYWJlbCwg bm9kZS0+bmV4dC0+bGFiZWwsIHNlY25hbWUsIDEpOworICAgICAgIG5vZGUgPSBub2RlLT5uZXh0 OworIAorICAgICAgIGZvciAoOyBub2RlLT5uZXh0OyBub2RlID0gbm9kZS0+bmV4dCkKK0BAIC0x MTA0MSw4ICsxMTA2Nyw5IEBAIGFkZF9sb2NhdGlvbl9vcl9jb25zdF92YWx1ZV9hdHRyaWJ1dGUg KGQKKyAJICAgIGVudW0gdmFyX2luaXRfc3RhdHVzIGluaXRpYWxpemVkID0KKyAJICAgICAgTk9U RV9WQVJfTE9DQVRJT05fU1RBVFVTIChub2RlLT52YXJfbG9jX25vdGUpOworIAkgICAgdmFybG9j ID0gTk9URV9WQVJfTE9DQVRJT04gKG5vZGUtPnZhcl9sb2Nfbm90ZSk7CistCSAgICBhZGRfbG9j X2Rlc2NyX3RvX2xvY19saXN0ICgmbGlzdCwgCistCQkJCSAgICAgICBsb2NfZGVzY3JpcHRvciAo dmFybG9jLCBpbml0aWFsaXplZCksCisrCSAgICBkZXNjciA9IGxvY19ieV9yZWZlcmVuY2UgKGxv Y19kZXNjcmlwdG9yICh2YXJsb2MsIGluaXRpYWxpemVkKSwKKysJCQkJICAgICAgZGVjbCk7Cisr CSAgICBhZGRfbG9jX2Rlc2NyX3RvX2xvY19saXN0ICgmbGlzdCwgZGVzY3IsCisgCQkJCSAgICAg ICBub2RlLT5sYWJlbCwgbm9kZS0+bmV4dC0+bGFiZWwsIHNlY25hbWUpOworIAkgIH0KKyAKK0BA IC0xMTA2Myw4ICsxMTA5MCw5IEBAIGFkZF9sb2NhdGlvbl9vcl9jb25zdF92YWx1ZV9hdHRyaWJ1 dGUgKGQKKyAJCQkJCSAgIGN1cnJlbnRfZnVuY3Rpb25fZnVuY2RlZl9ubyk7CisgCSAgICAgIGVu ZG5hbWUgPSBnZ2Nfc3RyZHVwIChsYWJlbF9pZCk7CisgCSAgICB9CistCSAgYWRkX2xvY19kZXNj cl90b19sb2NfbGlzdCAoJmxpc3QsIAorLQkJCQkgICAgIGxvY19kZXNjcmlwdG9yICh2YXJsb2Ms IGluaXRpYWxpemVkKSwKKysJICBkZXNjciA9IGxvY19ieV9yZWZlcmVuY2UgKGxvY19kZXNjcmlw dG9yICh2YXJsb2MsIGluaXRpYWxpemVkKSwKKysJCQkJICAgIGRlY2wpOworKwkgIGFkZF9sb2Nf ZGVzY3JfdG9fbG9jX2xpc3QgKCZsaXN0LCBkZXNjciwKKyAJCQkJICAgICBub2RlLT5sYWJlbCwg ZW5kbmFtZSwgc2VjbmFtZSk7CisgCX0KKyAKK0BAIC0xMTA5NCw2ICsxMTEyMiw3IEBAIGFkZF9s b2NhdGlvbl9vcl9jb25zdF92YWx1ZV9hdHRyaWJ1dGUgKGQKKyAgICAgICBkZXNjciA9IGxvY19k ZXNjcmlwdG9yIChOT1RFX1ZBUl9MT0NBVElPTiAobm9kZS0+dmFyX2xvY19ub3RlKSwgc3RhdHVz KTsKKyAgICAgICBpZiAoZGVzY3IpCisgCXsKKysJICBkZXNjciA9IGxvY19ieV9yZWZlcmVuY2Ug KGRlc2NyLCBkZWNsKTsKKyAJICBhZGRfQVRfbG9jYXRpb25fZGVzY3JpcHRpb24gKGRpZSwgYXR0 ciwgZGVzY3IpOworIAkgIHJldHVybjsKKyAJfQorQEAgLTExMTA0LDYgKzExMTMzLDcgQEAgYWRk X2xvY2F0aW9uX29yX2NvbnN0X3ZhbHVlX2F0dHJpYnV0ZSAoZAorICAgZGVzY3IgPSBsb2NfZGVz Y3JpcHRvcl9mcm9tX3RyZWUgKGRlY2wpOworICAgaWYgKGRlc2NyKQorICAgICB7CisrICAgICAg ZGVzY3IgPSBsb2NfYnlfcmVmZXJlbmNlIChkZXNjciwgZGVjbCk7CisgICAgICAgYWRkX0FUX2xv Y2F0aW9uX2Rlc2NyaXB0aW9uIChkaWUsIGF0dHIsIGRlc2NyKTsKKyAgICAgICByZXR1cm47Cisg ICAgIH0KCmRpZmYgLS1naXQgYS9nY2M0My1mb3J0cmFuLWRlYnVnNi5wYXRjaCBiL2djYzQzLWZv cnRyYW4tZGVidWc2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJj NjZmYzIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0My1mb3J0cmFuLWRlYnVnNi5wYXRjaApAQCAt MCwwICsxLDE3IEBACisyMDA4LTA4LTIyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNv bT4KKworCVBSIGZvcnRyYW4vMjQ3OTAKKwkqIHRyYW5zLWRlY2wuYyAoY3JlYXRlX2Z1bmN0aW9u X2FyZ2xpc3QpOiBTZXQgREVDTF9CWV9SRUZFUkVOQ0Ugb24KKwlQQVJNX0RFQ0xzIHdpdGggcG9p bnRlciBvciByZWZlcmVuY2UgdHlwZS4KKworLS0tIGdjYy9mb3J0cmFuL3RyYW5zLWRlY2wuYy5q agkyMDA4LTA4LTIxIDIzOjA3OjAxLjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9mb3J0cmFuL3Ry YW5zLWRlY2wuYwkyMDA4LTA4LTIyIDE0OjQ3OjU5LjAwMDAwMDAwMCArMDIwMAorQEAgLTE1ODgs NiArMTU4OCw4IEBAIGNyZWF0ZV9mdW5jdGlvbl9hcmdsaXN0IChnZmNfc3ltYm9sICogc3kKKyAg ICAgICBERUNMX0FSR19UWVBFIChwYXJtKSA9IFRSRUVfVkFMVUUgKHR5cGVsaXN0KTsKKyAgICAg ICAvKiBBbGwgaW1wbGVtZW50YXRpb24gYXJncyBhcmUgcmVhZC1vbmx5LiAgKi8KKyAgICAgICBU UkVFX1JFQURPTkxZIChwYXJtKSA9IDE7CisrICAgICAgaWYgKFBPSU5URVJfVFlQRV9QICh0eXBl KSAmJiBmLT5zeW0tPmF0dHIuZmxhdm9yICE9IEZMX1BST0NFRFVSRSkKKysJREVDTF9CWV9SRUZF UkVOQ0UgKHBhcm0pID0gMTsKKyAKKyAgICAgICBnZmNfZmluaXNoX2RlY2wgKHBhcm0pOworIAoK ZGlmZiAtLWdpdCBhL2djYzQzLWZvcnRyYW4tZGVidWc3LnBhdGNoIGIvZ2NjNDMtZm9ydHJhbi1k ZWJ1ZzcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkyNDhmMQot LS0gL2Rldi9udWxsCisrKyBiL2djYzQzLWZvcnRyYW4tZGVidWc3LnBhdGNoCkBAIC0wLDAgKzEs ODIgQEAKKzIwMDgtMDgtMjIgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJ KiBkd2FyZjJvdXQuYyAoYWRkX3N1YnNjcmlwdF9pbmZvKTogU3RvcCBvbiBGb3J0cmFuIFRZUEVf U1RSSU5HX0ZMQUcKKwl0eXBlcy4KKwkoZ2VuX2FycmF5X3R5cGVfZGllKTogRW1pdCBEV19UQUdf c3RyaW5nX3R5cGUgZm9yIEZvcnRyYW4gY2hhcmFjdGVyCisJdHlwZXMuCisKKy0tLSBnY2MvZHdh cmYyb3V0LmMuamoJMjAwOC0wOC0yMiAxMzozOToyMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2Mv ZHdhcmYyb3V0LmMJMjAwOC0wOC0yMiAxNzo0OToxMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMTQx OCw2ICsxMTQxOCw5IEBAIGFkZF9zdWJzY3JpcHRfaW5mbyAoZHdfZGllX3JlZiB0eXBlX2RpZSwK KyAgICAgeworICAgICAgIHRyZWUgZG9tYWluID0gVFlQRV9ET01BSU4gKHR5cGUpOworIAorKyAg ICAgIGlmIChUWVBFX1NUUklOR19GTEFHICh0eXBlKSAmJiBpc19mb3J0cmFuICgpICYmIGRpbWVu c2lvbl9udW1iZXIgPiAwKQorKwlicmVhazsKKysKKyAgICAgICAvKiBBcnJheXMgY29tZSBpbiB0 aHJlZSBmbGF2b3JzOiBVbnNwZWNpZmllZCBib3VuZHMsIGZpeGVkIGJvdW5kcywKKyAJIGFuZCAo aW4gR05VIEMgb25seSkgdmFyaWFibGUgYm91bmRzLiAgSGFuZGxlIGFsbCB0aHJlZSBmb3Jtcwor IAkgaGVyZS4gICovCitAQCAtMTE5NDAsNiArMTE5NDMsMzkgQEAgZ2VuX2FycmF5X3R5cGVfZGll ICh0cmVlIHR5cGUsIGR3X2RpZV9yZQorICAgZHdfZGllX3JlZiBhcnJheV9kaWU7CisgICB0cmVl IGVsZW1lbnRfdHlwZTsKKyAKKysgIC8qIEVtaXQgRFdfVEFHX3N0cmluZ190eXBlIGZvciBGb3J0 cmFuIGNoYXJhY3RlciB0eXBlcyAod2l0aCBraW5kIDEgb25seSwgYXMKKysgICAgIERXX1RBR19z dHJpbmdfdHlwZSBkb2Vzbid0IGhhdmUgRFdfQVRfdHlwZSBhdHRyaWJ1dGUpLiAgKi8KKysgIGlm IChUWVBFX1NUUklOR19GTEFHICh0eXBlKQorKyAgICAgICYmIFRSRUVfQ09ERSAodHlwZSkgPT0g QVJSQVlfVFlQRQorKyAgICAgICYmIGlzX2ZvcnRyYW4gKCkKKysgICAgICAmJiBUWVBFX01PREUg KFRSRUVfVFlQRSAodHlwZSkpID09IFRZUEVfTU9ERSAoY2hhcl90eXBlX25vZGUpKQorKyAgICB7 CisrICAgICAgSE9TVF9XSURFX0lOVCBzaXplOworKworKyAgICAgIGFycmF5X2RpZSA9IG5ld19k aWUgKERXX1RBR19zdHJpbmdfdHlwZSwgc2NvcGVfZGllLCB0eXBlKTsKKysgICAgICBhZGRfbmFt ZV9hdHRyaWJ1dGUgKGFycmF5X2RpZSwgdHlwZV90YWcgKHR5cGUpKTsKKysgICAgICBlcXVhdGVf dHlwZV9udW1iZXJfdG9fZGllICh0eXBlLCBhcnJheV9kaWUpOworKyAgICAgIHNpemUgPSBpbnRf c2l6ZV9pbl9ieXRlcyAodHlwZSk7CisrICAgICAgaWYgKHNpemUgPj0gMCkKKysJYWRkX0FUX3Vu c2lnbmVkIChhcnJheV9kaWUsIERXX0FUX2J5dGVfc2l6ZSwgc2l6ZSk7CisrICAgICAgZWxzZSBp ZiAoVFlQRV9ET01BSU4gKHR5cGUpICE9IE5VTExfVFJFRQorKwkgICAgICAgJiYgVFlQRV9NQVhf VkFMVUUgKFRZUEVfRE9NQUlOICh0eXBlKSkgIT0gTlVMTF9UUkVFCisrCSAgICAgICAmJiBERUNM X1AgKFRZUEVfTUFYX1ZBTFVFIChUWVBFX0RPTUFJTiAodHlwZSkpKSkKKysJeworKwkgIHRyZWUg c3pkZWNsID0gVFlQRV9NQVhfVkFMVUUgKFRZUEVfRE9NQUlOICh0eXBlKSk7CisrCSAgZHdfbG9j X2Rlc2NyX3JlZiBsb2MgPSBsb2NfZGVzY3JpcHRvcl9mcm9tX3RyZWUgKHN6ZGVjbCk7CisrCisr CSAgc2l6ZSA9IGludF9zaXplX2luX2J5dGVzIChUUkVFX1RZUEUgKHN6ZGVjbCkpOworKwkgIGlm IChsb2MgJiYgc2l6ZSA+IDApCisrCSAgICB7CisrCSAgICAgIGFkZF9BVF9sb2MgKGFycmF5X2Rp ZSwgRFdfQVRfc3RyaW5nX2xlbmd0aCwgbG9jKTsKKysJICAgICAgaWYgKHNpemUgIT0gRFdBUkYy X0FERFJfU0laRSkKKysJCWFkZF9BVF91bnNpZ25lZCAoYXJyYXlfZGllLCBEV19BVF9ieXRlX3Np emUsIHNpemUpOworKwkgICAgfQorKwl9CisrICAgICAgcmV0dXJuOworKyAgICB9CisrCisgICAv KiA/Pz8gVGhlIFNHSSBkd2FyZiByZWFkZXIgZmFpbHMgZm9yIGFycmF5IG9mIGFycmF5IG9mIGVu dW0gdHlwZXMgdW5sZXNzCisgICAgICB0aGUgaW5uZXIgYXJyYXkgdHlwZSBjb21lcyBiZWZvcmUg dGhlIG91dGVyIGFycmF5IHR5cGUuICBUaHVzIHdlIG11c3QKKyAgICAgIGNhbGwgZ2VuX3R5cGVf ZGllIGJlZm9yZSB3ZSBjYWxsIG5ld19kaWUuICBTZWUgYmVsb3cgYWxzby4gICovCitAQCAtMTE5 NjIsNyArMTE5OTgsOCBAQCBnZW5fYXJyYXlfdHlwZV9kaWUgKHRyZWUgdHlwZSwgZHdfZGllX3Jl CisgICAvKiBGb3IgRm9ydHJhbiBtdWx0aWRpbWVuc2lvbmFsIGFycmF5cyB1c2UgRFdfT1JEX2Nv bF9tYWpvciBvcmRlcmluZy4gICovCisgICBpZiAoaXNfZm9ydHJhbiAoKQorICAgICAgICYmIFRS RUVfQ09ERSAodHlwZSkgPT0gQVJSQVlfVFlQRQorLSAgICAgICYmIFRSRUVfQ09ERSAoVFJFRV9U WVBFICh0eXBlKSkgPT0gQVJSQVlfVFlQRSkKKysgICAgICAmJiBUUkVFX0NPREUgKFRSRUVfVFlQ RSAodHlwZSkpID09IEFSUkFZX1RZUEUKKysgICAgICAmJiAhVFlQRV9TVFJJTkdfRkxBRyAoVFJF RV9UWVBFICh0eXBlKSkpCisgICAgIGFkZF9BVF91bnNpZ25lZCAoYXJyYXlfZGllLCBEV19BVF9v cmRlcmluZywgRFdfT1JEX2NvbF9tYWpvcik7CisgCisgI2lmIDAKK0BAIC0xMTk5NCw3ICsxMjAz MSwxMSBAQCBnZW5fYXJyYXlfdHlwZV9kaWUgKHRyZWUgdHlwZSwgZHdfZGllX3JlCisgICAgICBh ZGRfc3Vic2NyaXB0X2luZm8uICAqLworICNpZm5kZWYgTUlQU19ERUJVR0dJTkdfSU5GTworICAg d2hpbGUgKFRSRUVfQ09ERSAoZWxlbWVudF90eXBlKSA9PSBBUlJBWV9UWVBFKQorLSAgICBlbGVt ZW50X3R5cGUgPSBUUkVFX1RZUEUgKGVsZW1lbnRfdHlwZSk7CisrICAgIHsKKysgICAgICBpZiAo VFlQRV9TVFJJTkdfRkxBRyAoZWxlbWVudF90eXBlKSAmJiBpc19mb3J0cmFuICgpKQorKwlicmVh azsKKysgICAgICBlbGVtZW50X3R5cGUgPSBUUkVFX1RZUEUgKGVsZW1lbnRfdHlwZSk7CisrICAg IH0KKyAKKyAgIGdlbl90eXBlX2RpZSAoZWxlbWVudF90eXBlLCBjb250ZXh0X2RpZSk7CisgI2Vu ZGlmCgpkaWZmIC0tZ2l0IGEvZ2NjNDMtZm9ydHJhbi1kZWJ1ZzgucGF0Y2ggYi9nY2M0My1mb3J0 cmFuLWRlYnVnOC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTFi ODU2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDMtZm9ydHJhbi1kZWJ1ZzgucGF0Y2gKQEAgLTAs MCArMSw0OCBAQAorMjAwOC0wOC0yMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+ CisKKwkqIGR3YXJmMm91dC5jIChnZW5fZm9ybWFsX3BhcmFtZXRlcl9kaWUsIGdlbl92YXJpYWJs ZV9kaWUpOiBGb3IKKwlERUNMX0JZX1JFRkVSRU5DRSBkZWNscyBkb24ndCBwYXNzIFRSRUVfUkVB RE9OTFkgYW5kCisJVFJFRV9USElTX1ZPTEFUSUxFIHRvIGFkZF90eXBlX2F0dHJpYnV0ZS4KKwor LS0tIGdjYy9kd2FyZjJvdXQuYy5qagkyMDA4LTA4LTIyIDE3OjQ5OjEwLjAwMDAwMDAwMCArMDIw MAorKysrIGdjYy9kd2FyZjJvdXQuYwkyMDA4LTA4LTIyIDE4OjA0OjE1LjAwMDAwMDAwMCArMDIw MAorQEAgLTEzMDMzLDExICsxMzAzMywxMyBAQCBnZW5fZm9ybWFsX3BhcmFtZXRlcl9kaWUgKHRy ZWUgbm9kZSwgZHdfCisgCSAgdHJlZSB0eXBlID0gVFJFRV9UWVBFIChub2RlKTsKKyAJICBhZGRf bmFtZV9hbmRfc3JjX2Nvb3Jkc19hdHRyaWJ1dGVzIChwYXJtX2RpZSwgbm9kZSk7CisgCSAgaWYg KERFQ0xfQllfUkVGRVJFTkNFIChub2RlKSkKKy0JICAgIHR5cGUgPSBUUkVFX1RZUEUgKHR5cGUp OworLQkgIGFkZF90eXBlX2F0dHJpYnV0ZSAocGFybV9kaWUsIHR5cGUsCistCQkJICAgICAgVFJF RV9SRUFET05MWSAobm9kZSksCistCQkJICAgICAgVFJFRV9USElTX1ZPTEFUSUxFIChub2RlKSwK Ky0JCQkgICAgICBjb250ZXh0X2RpZSk7CisrCSAgICBhZGRfdHlwZV9hdHRyaWJ1dGUgKHBhcm1f ZGllLCBUUkVFX1RZUEUgKHR5cGUpLCAwLCAwLAorKwkJCQljb250ZXh0X2RpZSk7CisrCSAgZWxz ZQorKwkgICAgYWRkX3R5cGVfYXR0cmlidXRlIChwYXJtX2RpZSwgdHlwZSwKKysJCQkJVFJFRV9S RUFET05MWSAobm9kZSksCisrCQkJCVRSRUVfVEhJU19WT0xBVElMRSAobm9kZSksCisrCQkJCWNv bnRleHRfZGllKTsKKyAJICBpZiAoREVDTF9BUlRJRklDSUFMIChub2RlKSkKKyAJICAgIGFkZF9B VF9mbGFnIChwYXJtX2RpZSwgRFdfQVRfYXJ0aWZpY2lhbCwgMSk7CisgCX0KK0BAIC0xMzcxNCwx NCArMTM3MTYsMTUgQEAgZ2VuX3ZhcmlhYmxlX2RpZSAodHJlZSBkZWNsLCBkd19kaWVfcmVmIAor ICAgZWxzZQorICAgICB7CisgICAgICAgdHJlZSB0eXBlID0gVFJFRV9UWVBFIChkZWNsKTsKKysK KysgICAgICBhZGRfbmFtZV9hbmRfc3JjX2Nvb3Jkc19hdHRyaWJ1dGVzICh2YXJfZGllLCBkZWNs KTsKKyAgICAgICBpZiAoKFRSRUVfQ09ERSAoZGVjbCkgPT0gUEFSTV9ERUNMCisgCSAgIHx8IFRS RUVfQ09ERSAoZGVjbCkgPT0gUkVTVUxUX0RFQ0wpCisgCSAgJiYgREVDTF9CWV9SRUZFUkVOQ0Ug KGRlY2wpKQorLQl0eXBlID0gVFJFRV9UWVBFICh0eXBlKTsKKy0KKy0gICAgICBhZGRfbmFtZV9h bmRfc3JjX2Nvb3Jkc19hdHRyaWJ1dGVzICh2YXJfZGllLCBkZWNsKTsKKy0gICAgICBhZGRfdHlw ZV9hdHRyaWJ1dGUgKHZhcl9kaWUsIHR5cGUsIFRSRUVfUkVBRE9OTFkgKGRlY2wpLAorLQkJCSAg VFJFRV9USElTX1ZPTEFUSUxFIChkZWNsKSwgY29udGV4dF9kaWUpOworKwlhZGRfdHlwZV9hdHRy aWJ1dGUgKHZhcl9kaWUsIFRSRUVfVFlQRSAodHlwZSksIDAsIDAsIGNvbnRleHRfZGllKTsKKysg ICAgICBlbHNlCisrCWFkZF90eXBlX2F0dHJpYnV0ZSAodmFyX2RpZSwgdHlwZSwgVFJFRV9SRUFE T05MWSAoZGVjbCksCisrCQkJICAgIFRSRUVfVEhJU19WT0xBVElMRSAoZGVjbCksIGNvbnRleHRf ZGllKTsKKyAKKyAgICAgICBpZiAoVFJFRV9QVUJMSUMgKGRlY2wpKQorIAlhZGRfQVRfZmxhZyAo dmFyX2RpZSwgRFdfQVRfZXh0ZXJuYWwsIDEpOwoKZGlmZiAtLWdpdCBhL2djYzQzLWZvcnRyYW4t ZGVidWc5LnBhdGNoIGIvZ2NjNDMtZm9ydHJhbi1kZWJ1ZzkucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNzE4MTM0ZgotLS0gL2Rldi9udWxsCisrKyBiL2djYzQzLWZv cnRyYW4tZGVidWc5LnBhdGNoCkBAIC0wLDAgKzEsMTQ0IEBACisyMDA4LTA4LTI1ICBKYWt1YiBK ZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCSogZ2ZvcnRyYW4uaCAoZ2ZjX3VzZV9saXN0 KTogQWRkIHdoZXJlIGZpZWxkLgorCSogbW9kdWxlLmMgKHVzZV9sb2N1cyk6IE5ldyBzdGF0aWMg dmFyaWFibGUuCisJKGdmY19tYXRjaF91c2UpOiBTZXQgaXQuCisJKGdmY191c2VfbW9kdWxlKTog Q29weSBpdCB0byBnZmNfdXNlX2xpc3QncyB3aGVyZSBmaWVsZC4KKwkqIHRyYW5zLWRlY2wuYyAo Z2ZjX2dlbmVyYXRlX21vZHVsZV92YXJzKTogQ2FsbCBnZmNfdHJhbnNfdXNlX3N0bXRzLgorCShn ZmNfdHJhbnNfdXNlX3N0bXRzKTogU2V0IGJhY2tlbmQgbG9jdXMgYmVmb3JlIGNhbGxpbmcgdGhl IGRlYnVnCisJaG9vay4gIEFsbG93IG5vbi1WQVJfREVDTHMgdG8gYmUgY3JlYXRlZCBldmVuIGZv ciBub24tZXh0ZXJuYWwKKwltb2R1bGUuICBEb24ndCBlbWl0IGFueXRoaW5nIHNvIGZhciBmb3Ig cmVuYW1lcyBmcm9tIGRpZmZlcmVudAorCW1vZHVsZXMuCisKKy0tLSBnY2MvZm9ydHJhbi9nZm9y dHJhbi5oLmpqCTIwMDgtMDgtMjIgMjA6MTE6MjIuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2Zv cnRyYW4vZ2ZvcnRyYW4uaAkyMDA4LTA4LTI1IDEzOjAzOjQyLjAwMDAwMDAwMCArMDIwMAorQEAg LTExMzEsNiArMTEzMSw3IEBAIHR5cGVkZWYgc3RydWN0IGdmY191c2VfbGlzdAorICAgY29uc3Qg Y2hhciAqbW9kdWxlX25hbWU7CisgICBpbnQgb25seV9mbGFnOworICAgc3RydWN0IGdmY191c2Vf cmVuYW1lICpyZW5hbWU7CisrICBsb2N1cyB3aGVyZTsKKyAgIC8qIE5leHQgVVNFIHN0YXRlbWVu dC4gICovCisgICBzdHJ1Y3QgZ2ZjX3VzZV9saXN0ICpuZXh0OworIH0KKy0tLSBnY2MvZm9ydHJh bi9tb2R1bGUuYy5qagkyMDA4LTA4LTIyIDIwOjExOjIyLjAwMDAwMDAwMCArMDIwMAorKysrIGdj Yy9mb3J0cmFuL21vZHVsZS5jCTIwMDgtMDgtMjUgMTM6MTA6NTcuMDAwMDAwMDAwICswMjAwCitA QCAtMTg4LDYgKzE4OCw4IEBAIHN0YXRpYyBpbnQgc3ltYm9sX251bWJlcjsJLyogQ291bnRlciBm b3IKKyAvKiBUZWxscyBtaW9fZXhwcl9yZWYgdG8gbWFrZSBzeW1ib2xzIGZvciB1bnVzZWQgZXF1 aXZhbGVuY2UgbWVtYmVycy4gICovCisgc3RhdGljIGJvb2wgaW5fbG9hZF9lcXVpdjsKKyAKKytz dGF0aWMgbG9jdXMgdXNlX2xvY3VzOworKworIAorIAorIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0BAIC01NDYsNiAr NTQ4LDggQEAgZ2ZjX21hdGNoX3VzZSAodm9pZCkKKyAJfQorICAgICB9CisgCisrICB1c2VfbG9j dXMgPSBnZmNfY3VycmVudF9sb2N1czsKKysKKyAgIG0gPSBnZmNfbWF0Y2hfbmFtZSAobW9kdWxl X25hbWUpOworICAgaWYgKG0gIT0gTUFUQ0hfWUVTKQorICAgICByZXR1cm4gbTsKK0BAIC01MDQ0 LDYgKzUwNDgsNyBAQCBnZmNfdXNlX21vZHVsZSAodm9pZCkKKyAgIHVzZV9zdG10LT5tb2R1bGVf bmFtZSA9IGdmY19nZXRfc3RyaW5nIChtb2R1bGVfbmFtZSk7CisgICB1c2Vfc3RtdC0+b25seV9m bGFnID0gb25seV9mbGFnOworICAgdXNlX3N0bXQtPnJlbmFtZSA9IGdmY19yZW5hbWVfbGlzdDsK KysgIHVzZV9zdG10LT53aGVyZSA9IHVzZV9sb2N1czsKKyAgIGdmY19yZW5hbWVfbGlzdCA9IE5V TEw7CisgICB1c2Vfc3RtdC0+bmV4dCA9IGdmY19jdXJyZW50X25zLT51c2Vfc3RtdHM7CisgICBn ZmNfY3VycmVudF9ucy0+dXNlX3N0bXRzID0gdXNlX3N0bXQ7CistLS0gZ2NjL2ZvcnRyYW4vdHJh bnMtZGVjbC5jLmpqCTIwMDgtMDgtMjUgMTI6NDQ6MDAuMDAwMDAwMDAwICswMjAwCisrKysgZ2Nj L2ZvcnRyYW4vdHJhbnMtZGVjbC5jCTIwMDgtMDgtMjUgMTM6MTY6MTcuMDAwMDAwMDAwICswMjAw CitAQCAtMzE1MSwyNiArMzE1MSw3IEBAIGdmY19jcmVhdGVfbW9kdWxlX3ZhcmlhYmxlIChnZmNf c3ltYm9sICoKKyAgICAgfQorIH0KKyAKKy0KKy0vKiBHZW5lcmF0ZSBhbGwgdGhlIHJlcXVpcmVk IGNvZGUgZm9yIG1vZHVsZSB2YXJpYWJsZXMuICAqLworLQorLXZvaWQKKy1nZmNfZ2VuZXJhdGVf bW9kdWxlX3ZhcnMgKGdmY19uYW1lc3BhY2UgKiBucykKKy17CistICBtb2R1bGVfbmFtZXNwYWNl ID0gbnM7CistICBjdXJfbW9kdWxlID0gZ2ZjX2ZpbmRfbW9kdWxlIChucy0+cHJvY19uYW1lLT5u YW1lKTsKKy0KKy0gIC8qIENoZWNrIGlmIHRoZSBmcm9udGVuZCBsZWZ0IHRoZSBuYW1lc3BhY2Ug aW4gYSByZWFzb25hYmxlIHN0YXRlLiAgKi8KKy0gIGdjY19hc3NlcnQgKG5zLT5wcm9jX25hbWUg JiYgIW5zLT5wcm9jX25hbWUtPnRsaW5rKTsKKy0KKy0gIC8qIEdlbmVyYXRlIENPTU1PTiBibG9j a3MuICAqLworLSAgZ2ZjX3RyYW5zX2NvbW1vbiAobnMpOworLQorLSAgLyogQ3JlYXRlIGRlY2xz IGZvciBhbGwgdGhlIG1vZHVsZSB2YXJpYWJsZXMuICAqLworLSAgZ2ZjX3RyYXZlcnNlX25zIChu cywgZ2ZjX2NyZWF0ZV9tb2R1bGVfdmFyaWFibGUpOworLQorLSAgY3VyX21vZHVsZSA9IE5VTEw7 CistfQorKy8qIEVtaXQgZGVidWcgaW5mb3JtYXRpb24gZm9yIFVTRSBzdGF0ZW1lbnRzLiAgKi8K KyAKKyBzdGF0aWMgdm9pZAorIGdmY190cmFuc191c2Vfc3RtdHMgKGdmY19uYW1lc3BhY2UgKiBu cykKK0BAIC0zMTkwLDYgKzMxNzEsNyBAQCBnZmNfdHJhbnNfdXNlX3N0bXRzIChnZmNfbmFtZXNw YWNlICogbnMpCisgCQkJICB2b2lkX3R5cGVfbm9kZSk7CisgCSAgREVDTF9FWFRFUk5BTCAoZW50 cnktPm5hbWVzcGFjZV9kZWNsKSA9IDE7CisgCX0KKysgICAgICBnZmNfc2V0X2JhY2tlbmRfbG9j dXMgKCZ1c2Vfc3RtdC0+d2hlcmUpOworICAgICAgIGlmICghdXNlX3N0bXQtPm9ubHlfZmxhZykK KyAJKCpkZWJ1Z19ob29rcy0+aW1wb3J0ZWRfbW9kdWxlX29yX2RlY2wpIChlbnRyeS0+bmFtZXNw YWNlX2RlY2wsCisgCQkJCQkJIE5VTExfVFJFRSwKK0BAIC0zMjE0LDkgKzMxOTYsMTQgQEAgZ2Zj X3RyYW5zX3VzZV9zdG10cyAoZ2ZjX25hbWVzcGFjZSAqIG5zKQorIAkJCQkgICAgIHJlbnQtPmxv Y2FsX25hbWVbMF0KKyAJCQkJICAgICA/IHJlbnQtPmxvY2FsX25hbWUgOiByZW50LT51c2VfbmFt ZSk7CisgCSAgICAgIGdjY19hc3NlcnQgKHN0ICYmIHN0LT5uLnN5bS0+YXR0ci51c2VfYXNzb2Mp OworLQkgICAgICBpZiAoc3QtPm4uc3ltLT5iYWNrZW5kX2RlY2wgJiYgREVDTF9QIChzdC0+bi5z eW0tPmJhY2tlbmRfZGVjbCkpCisrCSAgICAgIGlmIChzdC0+bi5zeW0tPmJhY2tlbmRfZGVjbAor KwkJICAmJiBERUNMX1AgKHN0LT5uLnN5bS0+YmFja2VuZF9kZWNsKQorKwkJICAmJiBzdC0+bi5z eW0tPm1vZHVsZQorKwkJICAmJiBzdHJjbXAgKHN0LT5uLnN5bS0+bW9kdWxlLCB1c2Vfc3RtdC0+ bW9kdWxlX25hbWUpID09IDApCisgCQl7CistCQkgIGdjY19hc3NlcnQgKERFQ0xfRVhURVJOQUwg KGVudHJ5LT5uYW1lc3BhY2VfZGVjbCkpOworKwkJICBnY2NfYXNzZXJ0IChERUNMX0VYVEVSTkFM IChlbnRyeS0+bmFtZXNwYWNlX2RlY2wpCisrCQkJICAgICAgfHwgKFRSRUVfQ09ERSAoc3QtPm4u c3ltLT5iYWNrZW5kX2RlY2wpCisrCQkJCSAgIT0gVkFSX0RFQ0wpKTsKKyAJCSAgZGVjbCA9IGNv cHlfbm9kZSAoc3QtPm4uc3ltLT5iYWNrZW5kX2RlY2wpOworIAkJICBERUNMX0NPTlRFWFQgKGRl Y2wpID0gZW50cnktPm5hbWVzcGFjZV9kZWNsOworIAkJICBERUNMX0VYVEVSTkFMIChkZWNsKSA9 IDE7CitAQCAtMzIzNiw2ICszMjIzLDcgQEAgZ2ZjX3RyYW5zX3VzZV9zdG10cyAoZ2ZjX25hbWVz cGFjZSAqIG5zKQorIAkgICAgbG9jYWxfbmFtZSA9IGdldF9pZGVudGlmaWVyIChyZW50LT5sb2Nh bF9uYW1lKTsKKyAJICBlbHNlCisgCSAgICBsb2NhbF9uYW1lID0gTlVMTF9UUkVFOworKwkgIGdm Y19zZXRfYmFja2VuZF9sb2N1cyAoJnJlbnQtPndoZXJlKTsKKyAJICAoKmRlYnVnX2hvb2tzLT5p bXBvcnRlZF9tb2R1bGVfb3JfZGVjbCkgKGRlY2wsIGxvY2FsX25hbWUsCisgCQkJCQkJICAgbnMt PnByb2NfbmFtZS0+YmFja2VuZF9kZWNsLAorIAkJCQkJCSAgICF1c2Vfc3RtdC0+b25seV9mbGFn KTsKK0BAIC0zMjQzLDYgKzMyMzEsMzAgQEAgZ2ZjX3RyYW5zX3VzZV9zdG10cyAoZ2ZjX25hbWVz cGFjZSAqIG5zKQorICAgICB9CisgfQorIAorKworKy8qIEdlbmVyYXRlIGFsbCB0aGUgcmVxdWly ZWQgY29kZSBmb3IgbW9kdWxlIHZhcmlhYmxlcy4gICovCisrCisrdm9pZAorK2dmY19nZW5lcmF0 ZV9tb2R1bGVfdmFycyAoZ2ZjX25hbWVzcGFjZSAqIG5zKQorK3sKKysgIG1vZHVsZV9uYW1lc3Bh Y2UgPSBuczsKKysgIGN1cl9tb2R1bGUgPSBnZmNfZmluZF9tb2R1bGUgKG5zLT5wcm9jX25hbWUt Pm5hbWUpOworKworKyAgLyogQ2hlY2sgaWYgdGhlIGZyb250ZW5kIGxlZnQgdGhlIG5hbWVzcGFj ZSBpbiBhIHJlYXNvbmFibGUgc3RhdGUuICAqLworKyAgZ2NjX2Fzc2VydCAobnMtPnByb2NfbmFt ZSAmJiAhbnMtPnByb2NfbmFtZS0+dGxpbmspOworKworKyAgLyogR2VuZXJhdGUgQ09NTU9OIGJs b2Nrcy4gICovCisrICBnZmNfdHJhbnNfY29tbW9uIChucyk7CisrCisrICAvKiBDcmVhdGUgZGVj bHMgZm9yIGFsbCB0aGUgbW9kdWxlIHZhcmlhYmxlcy4gICovCisrICBnZmNfdHJhdmVyc2VfbnMg KG5zLCBnZmNfY3JlYXRlX21vZHVsZV92YXJpYWJsZSk7CisrCisrICBjdXJfbW9kdWxlID0gTlVM TDsKKysKKysgIGdmY190cmFuc191c2Vfc3RtdHMgKG5zKTsKKyt9CisrCisrCisgc3RhdGljIHZv aWQKKyBnZmNfZ2VuZXJhdGVfY29udGFpbmVkX2Z1bmN0aW9ucyAoZ2ZjX25hbWVzcGFjZSAqIHBh cmVudCkKKyB7CgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHIzNzEwMy5wYXRjaCBiL2djYzQzLXByMzcx MDMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3YzMxOTUuLjAwMDAwMDAK LS0tIGEvZ2NjNDMtcHIzNzEwMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAK LTIwMDgtMDgtMTMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgbWlk ZGxlLWVuZC8zNzEwMwotCSogZm9sZC1jb25zdC5jIChmb2xkX3dpZGVuZWRfY29tcGFyaXNvbik6 IERvIG5vdCBhbGxvdwotCXNpZ24gY2hhbmdlcyB0aGF0IGNoYW5nZSB0aGUgcmVzdWx0IGV2ZW4g aWYgc2hvcnRlciB0eXBlCi0JaXMgd2lkZXIgdGhhbiBhcmcxX3VudydzIHR5cGUuCi0KLQkqIGdj Yy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA4MDgxMy0xLmM6IE5ldyB0ZXN0LgotCi0tLS0gZ2NjL2Zv bGQtY29uc3QuYy5qagkyMDA4LTA4LTEzIDE5OjQ2OjExLjAwMDAwMDAwMCArMDIwMAotKysrIGdj Yy9mb2xkLWNvbnN0LmMJMjAwOC0wOC0xMyAyMDoxODoyMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC02 NzMzLDEwICs2NzMzLDggQEAgZm9sZF93aWRlbmVkX2NvbXBhcmlzb24gKGVudW0gdHJlZV9jb2Rl IAotICAgaWYgKChjb2RlID09IEVRX0VYUFIgfHwgY29kZSA9PSBORV9FWFBSCi0gICAgICAgIHx8 IFRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAoYXJnMCkpID09IFRZUEVfVU5TSUdORUQgKHNob3J0 ZXJfdHlwZSkpCi0gICAgICAgJiYgKFRSRUVfVFlQRSAoYXJnMV91bncpID09IHNob3J0ZXJfdHlw ZQotLQkgIHx8IChUWVBFX1BSRUNJU0lPTiAoc2hvcnRlcl90eXBlKQotLQkgICAgICA+IFRZUEVf UFJFQ0lTSU9OIChUUkVFX1RZUEUgKGFyZzFfdW53KSkpCi0gCSAgfHwgKChUWVBFX1BSRUNJU0lP TiAoc2hvcnRlcl90eXBlKQotLQkgICAgICAgPT0gVFlQRV9QUkVDSVNJT04gKFRSRUVfVFlQRSAo YXJnMV91bncpKSkKLSsJICAgICAgID49IFRZUEVfUFJFQ0lTSU9OIChUUkVFX1RZUEUgKGFyZzFf dW53KSkpCi0gCSAgICAgICYmIChUWVBFX1VOU0lHTkVEIChzaG9ydGVyX3R5cGUpCi0gCQkgID09 IFRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAoYXJnMV91bncpKSkpCi0gCSAgfHwgKFRSRUVfQ09E RSAoYXJnMV91bncpID09IElOVEVHRVJfQ1NUCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0 dXJlL2V4ZWN1dGUvMjAwODA4MTMtMS5jLmpqCTIwMDgtMDgtMTMgMjA6MjI6NTYuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvMjAwODA4MTMt MS5jCTIwMDgtMDgtMTMgMjA6MjI6MTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMwIEBA Ci0rLyogUFIgbWlkZGxlLWVuZC8zNzEwMyAqLwotKwotK2V4dGVybiB2b2lkIGFib3J0ICh2b2lk KTsKLSsKLSt2b2lkCi0rZm9vICh1bnNpZ25lZCBzaG9ydCB4KQotK3sKLSsgIHNpZ25lZCBjaGFy IHkgPSAtMTsKLSsgIGlmICh4ID09IHkpCi0rICAgIGFib3J0ICgpOwotK30KLSsKLSt2b2lkCi0r YmFyICh1bnNpZ25lZCBzaG9ydCB4KQotK3sKLSsgIHVuc2lnbmVkIGNoYXIgeSA9IC0xOwotKyAg aWYgKHggPT0geSkKLSsgICAgYWJvcnQgKCk7Ci0rfQotKwotK2ludAotK21haW4gKHZvaWQpCi0r ewotKyAgaWYgKHNpemVvZiAoaW50KSA9PSBzaXplb2YgKHNob3J0KSkKLSsgICAgcmV0dXJuIDA7 Ci0rICBmb28gKC0xKTsKLSsgIGlmIChzaXplb2YgKHNob3J0KSA+IDEpCi0rICAgIGJhciAoLTEp OwotKyAgcmV0dXJuIDA7Ci0rfQoKZGlmZiAtLWdpdCBhL2djYzQzLnNwZWMgYi9nY2M0My5zcGVj CmluZGV4IDFmZmVlODEuLjhjOTlhODUgMTAwNjQ0Ci0tLSBhL2djYzQzLnNwZWMKKysrIGIvZ2Nj NDMuc3BlYwpAQCAtMSw2ICsxLDYgQEAKLSVkZWZpbmUgREFURSAyMDA4MDgxMgorJWRlZmluZSBE QVRFIDIwMDgwODI1CiAlZGVmaW5lIGdjY192ZXJzaW9uIDQuMy4xCi0lZGVmaW5lIGdjY19yZWxl YXNlIDcKKyVkZWZpbmUgZ2NjX3JlbGVhc2UgOAogJWRlZmluZSBfdW5wYWNrYWdlZF9maWxlc190 ZXJtaW5hdGVfYnVpbGQgMAogJWRlZmluZSBtdWx0aWxpYl82NF9hcmNocyBzcGFyYzY0IHBwYzY0 IHMzOTB4IHg4Nl82NAogJWRlZmluZSBpbmNsdWRlX2dhcHBsZXR2aWV3ZXIgMQpAQCAtMTQzLDcg KzE0MywxNSBAQCBQYXRjaDEzOiBnY2M0My1pMzg2LWxpYmdvbXAucGF0Y2gKIFBhdGNoMTQ6IGdj YzQzLXJoMjUxNjgyLnBhdGNoCiBQYXRjaDE1OiBnY2M0My1zcGFyYy1jb25maWctZGV0ZWN0aW9u LnBhdGNoCiBQYXRjaDE2OiBnY2M0My1saWJnb21wLW9tcF9oLW11bHRpbGliLnBhdGNoCi1QYXRj aDE3OiBnY2M0My1wcjM3MTAzLnBhdGNoCitQYXRjaDE3OiBnY2M0My1mb3J0cmFuLWRlYnVnMS5w YXRjaAorUGF0Y2gxODogZ2NjNDMtZm9ydHJhbi1kZWJ1ZzIucGF0Y2gKK1BhdGNoMTk6IGdjYzQz LWZvcnRyYW4tZGVidWczLnBhdGNoCitQYXRjaDIwOiBnY2M0My1mb3J0cmFuLWRlYnVnNC5wYXRj aAorUGF0Y2gyMTogZ2NjNDMtZm9ydHJhbi1kZWJ1ZzUucGF0Y2gKK1BhdGNoMjI6IGdjYzQzLWZv cnRyYW4tZGVidWc2LnBhdGNoCitQYXRjaDIzOiBnY2M0My1mb3J0cmFuLWRlYnVnNy5wYXRjaAor UGF0Y2gyNDogZ2NjNDMtZm9ydHJhbi1kZWJ1ZzgucGF0Y2gKK1BhdGNoMjU6IGdjYzQzLWZvcnRy YW4tZGVidWc5LnBhdGNoCiAKICMgT24gQVJNIEVBQkkgc3lzdGVtcywgd2UgZG8gd2FudCAtZ251 ZWFiaSB0byBiZSBwYXJ0IG9mIHRoZQogIyB0YXJnZXQgdHJpcGxlLgpAQCAtMjcyLDEzICsyODAs MTMgQEAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIEZvcnRyYW4gOTUgc2hhcmVkIGxpYnJhcnkgd2hp Y2ggaXMgbmVlZGVkIHRvIHJ1bgogRm9ydHJhbiA5NSBkeW5hbWljYWxseSBsaW5rZWQgcHJvZ3Jh bXMuCiAKICVwYWNrYWdlIC1uIGxpYmdvbXAKLVN1bW1hcnk6IEdDQyBPcGVuTVAgMi41IHNoYXJl ZCBzdXBwb3J0IGxpYnJhcnkKK1N1bW1hcnk6IEdDQyBPcGVuTVAgdjMuMCBzaGFyZWQgc3VwcG9y dCBsaWJyYXJ5CiBHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwogUHJlcmVxOiAv c2Jpbi9pbnN0YWxsLWluZm8KIAogJWRlc2NyaXB0aW9uIC1uIGxpYmdvbXAKIFRoaXMgcGFja2Fn ZSBjb250YWlucyBHQ0Mgc2hhcmVkIHN1cHBvcnQgbGlicmFyeSB3aGljaCBpcyBuZWVkZWQKLWZv ciBPcGVuTVAgMi41IHN1cHBvcnQuCitmb3IgT3Blbk1QIHYzLjAgc3VwcG9ydC4KIAogJXBhY2th Z2UgLW4gbGlibXVkZmxhcAogU3VtbWFyeTogR0NDIG11ZGZsYXAgc2hhcmVkIHN1cHBvcnQgbGli cmFyeQpAQCAtNDQ0LDcgKzQ1MiwxNSBAQCB3aGljaCBhcmUgcmVxdWlyZWQgdG8gcnVuIHByb2dy YW1zIGNvbXBpbGVkIHdpdGggdGhlIEdOQVQuCiAlcGF0Y2gxNCAtcDAgLWIgLnJoMjUxNjgyfgog JXBhdGNoMTUgLXAwIC1iIC5zcGFyYy1jb25maWctZGV0ZWN0aW9ufgogJXBhdGNoMTYgLXAwIC1i IC5saWJnb21wLW9tcF9oLW11bHRpbGlifgotJXBhdGNoMTcgLXAwIC1iIC5wcjM3MTAzfgorJXBh dGNoMTcgLXAwIC1iIC5mb3J0cmFuLWRlYnVnMX4KKyVwYXRjaDE4IC1wMCAtYiAuZm9ydHJhbi1k ZWJ1ZzJ+CislcGF0Y2gxOSAtcDAgLWIgLmZvcnRyYW4tZGVidWczfgorJXBhdGNoMjAgLXAwIC1i IC5mb3J0cmFuLWRlYnVnNH4KKyVwYXRjaDIxIC1wMCAtYiAuZm9ydHJhbi1kZWJ1ZzV+CislcGF0 Y2gyMiAtcDAgLWIgLmZvcnRyYW4tZGVidWc2fgorJXBhdGNoMjMgLXAwIC1iIC5mb3J0cmFuLWRl YnVnN34KKyVwYXRjaDI0IC1wMCAtYiAuZm9ydHJhbi1kZWJ1Zzh+CislcGF0Y2gyNSAtcDAgLWIg LmZvcnRyYW4tZGVidWc5fgogCiB0YXIgeHpmICV7U09VUkNFNH0KIApAQCAtMTY2Niw2ICsxNjgy LDEzIEBAIGZpCiAlZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9saWJtdWRmbGFwL0NoYW5nZUxvZyoK IAogJWNoYW5nZWxvZworKiBNb24gQXVnIDI1IDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC4zLjEtOAorLSB1cGRhdGUgZnJvbSBnY2MtNF8zLWJyYW5jaAorICAtIFBScyBk ZWJ1Zy8zNzE1NiwgbGliZ2NqLzg5OTUsIGxpYnN0ZGMrKy8zNzEwMCwgdGFyZ2V0LzM3MTAxCist IGJhY2twb3J0IEZvcnRyYW4gZGVidWdpbmZvIGltcHJvdmVtZW50cyAoUFJzIGRlYnVnLzM1ODk2 LCBmb3J0cmFuLzM1MTU0LAorICBmb3J0cmFuLzM1NzI0LCBmb3J0cmFuLzM1ODkyLCBmb3J0cmFu LzI5NjM1LCBmb3J0cmFuLzIzMDU3CisgIGZvcnRyYW4vMjQ3OTAsICM0NTc3OTIsICM0NTc3OTMs ICM0NTkzNzQsICM0NTkzNzYsICM0NTkzNzgpCisKICogVGh1IEF1ZyAxNCAyMDA4IEpha3ViIEpl bGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuMy4xLTcKIC0gdXBkYXRlIGZyb20gZ2NjLTRfMy1i cmFuY2gKICAgLSBQUnMgYm9vdHN0cmFwLzM1NzUyLCBjKysvMzY2ODgsIGMrKy8zNjk5OSwgYysr LzM3MDE2LCBjLzM1NzQ2LAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGIz ZGM3M2EuLjdmZjFiM2YgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwy ICsxLDIgQEAKLTkzMDFhZTdjYzIzMTZkYzgyNjMwYmM2M2E1NDNhMGY4ICBnY2MtNC4zLjEtMjAw ODA4MTIudGFyLmJ6MgorMTM1NTBlZWMwMGQyNTYzYzQyZDE4NzllMWY4ZjM0MDcgIGdjYy00LjMu MS0yMDA4MDgyNS50YXIuYnoyCiA5MmE3MGY5ZTU2MjIzYjY1M2JjZTBmNThmOTBjZjk1MCAgZmFz dGphci0wLjk1LnRhci5nego=