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: =?utf-8?b?RGFuIEhvcsOhayA8ZGFuQGRhbm55LmN6Pg==?= To: git-commits@fedoraproject.org Subject: [rpms/s390utils] rawhide: - include zpcimon feature Date: Tue, 28 Jul 2026 09:37:36 GMT Message-ID: <178523145619.1.14802920710269703868.rpms-s390utils-aef14f49a019@fedoraproject.org> List-ID: X-Git-Repo: rpms/s390utils X-Git-Branch: rawhide X-Git-Rev: aef14f49a0191f513073108840969270d29b204b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvczM5MHV0aWxzCkJy YW5jaCA6IHJhd2hpZGUKQ29tbWl0IDogYWVmMTRmNDlhMDE5MWY1MTMwNzMxMDg4NDA5NjkyNzBk MjliMjA0YgpBdXRob3IgOiBEYW4gSG9yw6FrIDxkYW5AZGFubnkuY3o+CkRhdGUgICA6IDIwMjYt MDctMjhUMDk6MzU6MjkrMDA6MDAKU3RhdHMgIDogKzMzODUvLTMgaW4gMiBmaWxlKHMpClVSTCAg ICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvczM5MHV0aWxzL2MvYWVmMTRm NDlhMDE5MWY1MTMwNzMxMDg4NDA5NjkyNzBkMjliMjA0Yj9icmFuY2g9cmF3aGlkZQoKTG9nOgot IGluY2x1ZGUgenBjaW1vbiBmZWF0dXJlCgotLS0KZGlmZiAtLWdpdCBhL3MzOTB1dGlscy0yLjQz LjEtZmVkb3JhLnBhdGNoIGIvczM5MHV0aWxzLTIuNDMuMS1mZWRvcmEucGF0Y2gKaW5kZXggZTY5 ZGUyOS4uNWM3NTQ0YiAxMDA2NDQKLS0tIGEvczM5MHV0aWxzLTIuNDMuMS1mZWRvcmEucGF0Y2gK KysrIGIvczM5MHV0aWxzLTIuNDMuMS1mZWRvcmEucGF0Y2gKQEAgLTAsMCArMSwzMzc0IEBACitG cm9tIDlkOWZjYTZlNzIzMjFmYTgzZTI5MDhmMjllYmUxOTIyNTcwODU4MzMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/SmFuPTIwSD1DMz1CNnBwbmVyPz0gPGhvZXBw bmVyQGxpbnV4LmlibS5jb20+CitEYXRlOiBXZWQsIDIyIEp1bCAyMDI2IDE4OjMzOjUzICswMjAw CitTdWJqZWN0OiBbUEFUQ0ggMDEvMjNdIFByZXBhcmUgZm9yIG5leHQgcmVsZWFzZQorTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitTaWduZWQtb2ZmLWJ5OiBKYW4gSMO2cHBu ZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBDSEFOR0VMT0cubWQgfCAxMCArKysr KysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBh L0NIQU5HRUxPRy5tZCBiL0NIQU5HRUxPRy5tZAoraW5kZXggOGRhODBkZDAuLjk3ZmEzNDU3IDEw MDY0NAorLS0tIGEvQ0hBTkdFTE9HLm1kCisrKysgYi9DSEFOR0VMT0cubWQKK0BAIC0xLDYgKzEs MTYgQEAKKyBSZWxlYXNlIGhpc3RvcnkgZm9yIHMzOTAtdG9vbHMgKE1JVCB2ZXJzaW9uKQorIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisrKiBfX3YyLnh4 LnggKDIweHgteHgteHgpX18KKysKKysgIEZvciBMaW51eCBrZXJuZWwgdmVyc2lvbjogNy54Cisr CisrICBBZGQgbmV3IHRvb2xzIC8gbGlicmFyaWVzOgorKworKyAgQ2hhbmdlcyBvZiBleGlzdGlu ZyB0b29sczoKKysKKysgIEJ1ZyBGaXhlczoKKysKKyAqIF9fdjIuNDMuMSAoMjAyNi0wNy0yMilf XworIAorICAgRm9yIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiA3LjEKKy0tIAorMi41NS4wCisKKwor RnJvbSBlNTVlMGU0NzBhMjdjYzIyNDUwMmZkMzk2OWZjOTlkZTY3N2ZjMTNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0u Y29tPgorRGF0ZTogVGh1LCAxNiBBcHIgMjAyNiAxNDowNTozNyArMDIwMAorU3ViamVjdDogW1BB VENIIDAyLzIzXSBvcHRpY3Ntb246IEZpeCB3cm9uZyBKU09OIHByaW50IGZvciB0eF9mYXVsdAor TUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGUgInR4X2ZhdWx0IiBmaWVs ZCBpbiB0aGUgSlNPTiBvdXRwdXQgYWNjaWRlbnRhbGx5IGNvbnRhaW5lZCB0aGUKK3J4X2xvcyB2 YWx1ZSBpbnN0ZWFkIG9mIHRoZSB0eF9mYXVsdCBvbmUuIENoYW5nZSBpdCB0byB0aGUgY29ycmVj dAordmFsdWUuIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGltcGFjdCB0aGUgZGF0YSByZWxheWVk IHRvIGZpcm13YXJlIGFzCit0aGF0IHVzZXMgdGhlIHJhdyBtb2R1bGUgZGF0YS4KKworRml4ZXM6 IGMzNGFkYjljYWJlZSAoIm9wdGljc21vbjogSW50cm9kdWNlIG9wdGljc21vbiB0b29sIikKK1Jl dmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQt b2ZmLWJ5OiBOaWtsYXMgU2NobmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQt b2ZmLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBvcHRp Y3Ntb24vb3B0aWNzbW9uLmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9vcHRpY3Ntb24vb3B0aWNzbW9uLmMgYi9v cHRpY3Ntb24vb3B0aWNzbW9uLmMKK2luZGV4IGViYWU3NWFkLi41YTUyZjhhOCAxMDA2NDQKKy0t LSBhL29wdGljc21vbi9vcHRpY3Ntb24uYworKysrIGIvb3B0aWNzbW9uL29wdGljc21vbi5jCitA QCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyB2b2lkIG9wdGljc19qc29uX3ByaW50KHN0cnVjdCBv cHRpY3Ntb25fY3R4ICpjdHgsIHN0cnVjdCB6cGNpX25ldGRldiAqbmQsCisgCXV0aWxfZm10X3Bh aXIoRk1UX1FVT1RFLCAidHlwZSIsIG9wdGljc190eXBlX3N0cihvcHRpY3NfdHlwZShvaSkpKTsK KyAJdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUsICJyeF9sb3MiLCBvcHRpY3NfbG9zX3N0cihvcHRp Y3NfcnhfbG9zKG9pKSkpOworIAl1dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgInR4X2xvcyIsIG9w dGljc19sb3Nfc3RyKG9wdGljc190eF9sb3Mob2kpKSk7CistCXV0aWxfZm10X3BhaXIoRk1UX1FV T1RFLCAidHhfZmF1bHQiLCBvcHRpY3NfbG9zX3N0cihvcHRpY3NfcnhfbG9zKG9pKSkpOworKwl1 dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgInR4X2ZhdWx0Iiwgb3B0aWNzX2xvc19zdHIob3B0aWNz X3R4X2ZhdWx0KG9pKSkpOworIAlpZiAoY3R4LT5vcHRzLm1vZHVsZV9pbmZvKQorIAkJbW9kdWxl X2luZm9fcGFpcihvaSk7CisgCXV0aWxfZm10X29ial9lbmQoKTsKKy0tIAorMi41NS4wCisKKwor RnJvbSA5MDVjMzkyMWFmMzFiMDk2MTQ5NzM4YTQ0OGU1ZTAxMjBmNTM4ZmIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0u Y29tPgorRGF0ZTogVGh1LCAxNiBBcHIgMjAyNiAxMzo0Nzo1OCArMDIwMAorU3ViamVjdDogW1BB VENIIDAzLzIzXSBvcHRpY3Ntb246IENsb3NlIGVwb2xsIGZkIGluIG1vbml0b3Jfd2FpdF9sb29w KCkKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVGhlIGVwb2xsIGZkIChl cGZkKSBpbiBtb25pdG9yX3dhaXRfbG9vcCgpIGlzIG5ldmVyIGNsb3NlZC4gQ2xvc2UgaXQgaW4K K2FsbCByZXR1cm4gcGF0aHMuIEFsc28gdGhlcmUgaXMgbm8gZXhwbGljaXQgY2hlY2sgZm9yIGFu IGVycm9yIHJldHVybiBvZgorZXBvbGxfY3JlYXRlMSgpIGFkZCB0aGF0IHRvby4KKworRml4ZXM6 IGMzNGFkYjljYWJlZSAoIm9wdGljc21vbjogSW50cm9kdWNlIG9wdGljc21vbiB0b29sIikKK1Jl dmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQt b2ZmLWJ5OiBOaWtsYXMgU2NobmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQt b2ZmLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBvcHRp Y3Ntb24vb3B0aWNzbW9uLmMgfCAyNSArKysrKysrKysrKysrKystLS0tLS0tLS0tCisgMSBmaWxl IGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvb3B0aWNzbW9uL29wdGljc21vbi5jIGIvb3B0aWNzbW9uL29wdGljc21vbi5jCitpbmRleCA1 YTUyZjhhOC4uYTdmYTlmYzIgMTAwNjQ0CistLS0gYS9vcHRpY3Ntb24vb3B0aWNzbW9uLmMKKysr KyBiL29wdGljc21vbi9vcHRpY3Ntb24uYworQEAgLTI3MSw1NCArMjcxLDU3IEBAIHZvaWQgb25f bGlua19jaGFuZ2Uoc3RydWN0IHpwY2lfbmV0ZGV2ICpuZXRkZXYsIHZvaWQgKmFyZykKKyBzdGF0 aWMgaW50IG1vbml0b3Jfd2FpdF9sb29wKHN0cnVjdCBvcHRpY3Ntb25fY3R4ICpjdHgsIGludCBz aWdmZCwgaW50IHRpbWVyZmQpCisgeworIAlzdHJ1Y3QgZXBvbGxfZXZlbnQgZXZlbnRzW01BWF9F VkVOVFNdOworKwlpbnQgaSwgbmxmZCwgZXBmZCwgbmZkcywgcmV0ID0gLUVJTzsKKyAJc3RydWN0 IHNpZ25hbGZkX3NpZ2luZm8gZmRzaTsKKy0JaW50IGksIG5sZmQsIGVwZmQsIG5mZHM7CisgCXN0 cnVjdCBlcG9sbF9ldmVudCBldjsKKyAJdWludDY0X3QgZXhwaXJhdGlvbnM7CisgCXNzaXplX3Qg c3JlYWQ7CisgCisgCWVwZmQgPSBlcG9sbF9jcmVhdGUxKEVQT0xMX0NMT0VYRUMpOworKwlpZiAo ZXBmZCA8IDApCisrCQlyZXR1cm4gLUVJTzsKKyAKKyAJZXYuZXZlbnRzID0gRVBPTExJTjsKKyAJ ZXYuZGF0YS5mZCA9IHNpZ2ZkOworIAlpZiAoZXBvbGxfY3RsKGVwZmQsIEVQT0xMX0NUTF9BREQs IHNpZ2ZkLCAmZXYpID09IC0xKQorLQkJcmV0dXJuIC1FSU87CisrCQlnb3RvIG91dF9jbG9zZTsK KyAKKyAJZXYuZXZlbnRzID0gRVBPTExJTjsKKyAJZXYuZGF0YS5mZCA9IHRpbWVyZmQ7CisgCWlm IChlcG9sbF9jdGwoZXBmZCwgRVBPTExfQ1RMX0FERCwgdGltZXJmZCwgJmV2KSA9PSAtMSkKKy0J CXJldHVybiAtRUlPOworKwkJZ290byBvdXRfY2xvc2U7CisgCisgCW5sZmQgPSBsaW5rX21vbl9u bF93YWl0ZmRfZ2V0ZmQoJmN0eC0+bGN0eCk7CisgCWV2LmV2ZW50cyA9IEVQT0xMSU47CisgCWV2 LmRhdGEuZmQgPSBubGZkOworIAlpZiAoZXBvbGxfY3RsKGVwZmQsIEVQT0xMX0NUTF9BREQsIG5s ZmQsICZldikgPT0gLTEpCistCQlyZXR1cm4gLUVJTzsKKysJCWdvdG8gb3V0X2Nsb3NlOworIAor IAl3aGlsZSAoMSkgeworIAkJbmZkcyA9IGVwb2xsX3dhaXQoZXBmZCwgZXZlbnRzLCBNQVhfRVZF TlRTLCAtMSk7CisgCQlpZiAobmZkcyA8IDApCistCQkJcmV0dXJuIG5mZHM7CisrCQkJZ290byBv dXRfY2xvc2U7CisgCQlmb3IgKGkgPSAwOyBpIDwgbmZkczsgaSsrKSB7CisgCQkJLyogc2lnbmFs IGZkICovCisgCQkJaWYgKGV2ZW50c1tpXS5kYXRhLmZkID09IHNpZ2ZkKSB7CisgCQkJCXNyZWFk ID0gcmVhZChzaWdmZCwgJmZkc2ksIHNpemVvZihmZHNpKSk7CisgCQkJCWlmIChzcmVhZCAhPSBz aXplb2YoZmRzaSkpCistCQkJCQlyZXR1cm4gLUVJTzsKKysJCQkJCWdvdG8gb3V0X2Nsb3NlOwor IAkJCQlzd2l0Y2ggKGZkc2kuc3NpX3NpZ25vKSB7CisgCQkJCWNhc2UgU0lHSU5UOgorIAkJCQlj YXNlIFNJR1RFUk06CisgCQkJCWNhc2UgU0lHUVVJVDoKKy0JCQkJCXJldHVybiAwOworKwkJCQkJ cmV0ID0gMDsKKysJCQkJCWdvdG8gb3V0X2Nsb3NlOworIAkJCQkvKiBVbmV4cGVjdGVkIHNpZ25h bCAqLworIAkJCQlkZWZhdWx0OgorLQkJCQkJcmV0dXJuIC1FSU87CisrCQkJCQlnb3RvIG91dF9j bG9zZTsKKyAJCQkJfQorIAkJCQkvKiB0aW1lciBmZCAqLworIAkJCX0gZWxzZSBpZiAoZXZlbnRz W2ldLmRhdGEuZmQgPT0gdGltZXJmZCkgeworIAkJCQlzcmVhZCA9IHJlYWQodGltZXJmZCwgJmV4 cGlyYXRpb25zLCBzaXplb2YodWludDY0X3QpKTsKKyAJCQkJaWYgKHNyZWFkICE9IHNpemVvZih1 aW50NjRfdCkpCistCQkJCQlyZXR1cm4gLUVJTzsKKysJCQkJCWdvdG8gb3V0X2Nsb3NlOworIAkJ CQlpZiAoIWV4cGlyYXRpb25zKQorIAkJCQkJY29udGludWU7CisgCQkJCWR1bXBfYWxsX2FkYXB0 ZXJfZGF0YShjdHgpOworQEAgLTMyOCw3ICszMzEsOSBAQCBzdGF0aWMgaW50IG1vbml0b3Jfd2Fp dF9sb29wKHN0cnVjdCBvcHRpY3Ntb25fY3R4ICpjdHgsIGludCBzaWdmZCwgaW50IHRpbWVyZmQp CisgCQkJfQorIAkJfQorIAl9CistCXJldHVybiAwOworK291dF9jbG9zZToKKysJY2xvc2UoZXBm ZCk7CisrCXJldHVybiByZXQ7CisgfQorIAorIHN0YXRpYyBpbnQgbW9uaXRvcl9tb2RlKHN0cnVj dCBvcHRpY3Ntb25fY3R4ICpjdHgpCistLSAKKzIuNTUuMAorCisKK0Zyb20gMWYzMzlhOWU3ZWU2 MDYxMWI1MDU1NzM1YTAyOTYzMjZjNzkyYjcwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IE5pa2xhcyBTY2huZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK0RhdGU6IFRodSwg MTYgQXByIDIwMjYgMTM6MDg6MjcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAwNC8yM10gb3B0aWNz bW9uOiBSZXR1cm4gZXJyb3JzIGZyb20gbW9uaXRvcl93YWl0X2xvb3AoKSBpbgorIG1vbml0b3Jf bW9kZSgpCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0Rvbid0IGlnbm9y ZSB0aGUgcmV0dXJuIHZhbHVlIG9mIG1vbml0b3Jfd2FpdF9sb29wKCkgYnV0IGluc3RlYWQgZm9y d2FyZAoraXQgdG8gdGhlIGNhbGxlci4KKworRml4ZXM6IGMzNGFkYjljYWJlZSAoIm9wdGljc21v bjogSW50cm9kdWNlIG9wdGljc21vbiB0b29sIikKK1Jldmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIg PGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOaWtsYXMgU2NobmVsbGUg PHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4gSMO2cHBuZXIgPGhv ZXBwbmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBvcHRpY3Ntb24vb3B0aWNzbW9uLmMgfCAyICst CisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYg LS1naXQgYS9vcHRpY3Ntb24vb3B0aWNzbW9uLmMgYi9vcHRpY3Ntb24vb3B0aWNzbW9uLmMKK2lu ZGV4IGE3ZmE5ZmMyLi42ZDc1OTViMSAxMDA2NDQKKy0tLSBhL29wdGljc21vbi9vcHRpY3Ntb24u YworKysrIGIvb3B0aWNzbW9uL29wdGljc21vbi5jCitAQCAtMzgxLDcgKzM4MSw3IEBAIHN0YXRp YyBpbnQgbW9uaXRvcl9tb2RlKHN0cnVjdCBvcHRpY3Ntb25fY3R4ICpjdHgpCisgCQlnb3RvIGNs b3NlX3RpbWVyZmQ7CisgCX0KKyAKKy0JbW9uaXRvcl93YWl0X2xvb3AoY3R4LCBzaWdmZCwgdGlt ZXJmZCk7CisrCXJldCA9IG1vbml0b3Jfd2FpdF9sb29wKGN0eCwgc2lnZmQsIHRpbWVyZmQpOwor IAorIAlsaW5rX21vbl9ubF93YWl0ZmRfZGVzdHJveSgmY3R4LT5sY3R4KTsKKyAJdXRpbF9mbXRf ZXhpdCgpOworLS0gCisyLjU1LjAKKworCitGcm9tIDY4NDdiNmE4Y2Y2MDUxMGE2M2M1ZTRmMzJj YTQyOWNhOWY1ZDI0YTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOaWtsYXMgU2No bmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitEYXRlOiBUaHUsIDE2IEFwciAyMDI2IDEx OjQ2OjU5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDUvMjNdIG9wdGljc21vbjogRml4IGVycm9y IHBhdGggZnJlZSBvZiBzdHJ1Y3Qgb3B0aWNzIGluCisgZXRodG9vbF9ubF9nZXRfb3B0aWNzKCkK K01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworV2hlbiBldGh0b29sX25sX2dl dF9vcHRpY3MoKSBmYWlscyBhZnRlciBldGh0b29sX25sX2NiKCkgaGFzIGFsbG9jYXRlZAorb2kt PnJhdyB0aGlzIG1lbW9yeSB3b3VsZCBsZWFrIGJlY2F1c2Ugb25seSB0aGUgc3RydWN0IG9wdGlj cyogaXRzZWxmCit3YXMgZnJlZWQuIEZpeCB0aGlzIGJ5IHVzaW5nIG9wdGljc19mcmVlKCkgYW5k IHJlbHlpbmcgb24gZnJlZShvaS0+cmF3KQorYmVpbmcgYSBuby1vcCBmb3IgTlVMTCBwb2ludGVy cyBpbiBjb21iaW5hdGlvbiB3aXRoIHVzaW5nIHV0aWxfemFsbG9jKCkKK3RvIGhhbmRsZSBlcnJv cnMgYm90aCBiZWZvcmUgYW5kIGFmdGVyIG9pLT5yYXcgd2FzIGFsbG9jYXRlZC4KKworRml4ZXM6 IGMzNGFkYjljYWJlZSAoIm9wdGljc21vbjogSW50cm9kdWNlIG9wdGljc21vbiB0b29sIikKK1Jl dmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQt b2ZmLWJ5OiBOaWtsYXMgU2NobmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQt b2ZmLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBvcHRp Y3Ntb24vZXRodG9vbC5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvb3B0aWNzbW9uL2V0aHRvb2wuYyBiL29wdGlj c21vbi9ldGh0b29sLmMKK2luZGV4IDEwMzY0NGExLi5hNDQ4ZWIyNSAxMDA2NDQKKy0tLSBhL29w dGljc21vbi9ldGh0b29sLmMKKysrKyBiL29wdGljc21vbi9ldGh0b29sLmMKK0BAIC0yNzIsNyAr MjcyLDcgQEAgaW50IGV0aHRvb2xfbmxfZ2V0X29wdGljcyhzdHJ1Y3QgZXRodG9vbF9ubF9jdHgg KmN0eCwgY29uc3QgY2hhciAqbmV0ZGV2LCBzdHJ1Y3QKKyAJcmV0dXJuIHJjOworIAorIG91dF9l cnJfZnJlZV9vaToKKy0JZnJlZSgqb2kpOworKwlvcHRpY3NfZnJlZSgqb2kpOworIAkqb2kgPSBO VUxMOworIAlyZXR1cm4gcmM7CisgfQorLS0gCisyLjU1LjAKKworCitGcm9tIDM2OTZkNmJkMDg1 ODAwNmJhY2UxODE5YzNiYTQzNjQ5MWY3NTBjN2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBOaWtsYXMgU2NobmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitEYXRlOiBUaHUs IDE2IEFwciAyMDI2IDE0OjQwOjQ3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDYvMjNdIG9wdGlj c21vbjogSGFuZGxlIGVycm9yIHJldHVybiBvZiBldGh0b29sX25sX2Nvbm5lY3QoKQorTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitEb24ndCBqdXN0IGlnbm9yZSB0aGUgcmV0 dXJuIG9mIGV0aHRvb2xfbmxfY29ubmVjdCgpLiBUaGlzIHdvdWxkIGFsc28KK290aGVyd2lzZSBs ZWFkIHRvIGludmFsaWQgc29ja2V0IGFjY2Vzc2VzIGxhdGVyLiBBbHNvIG1ha2UKK2V0aHRvb2xf bmxfY29ubmVjdCgpIHJldHVybiBuZWdhdGl2ZSBlcnJvciB2YWx1ZXMgaW5zdGVhZCBvZgorRVhJ VF9GQUlMVVJFLgorCitSZXZpZXdlZC1ieTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5p Ym0uY29tPgorU2lnbmVkLW9mZi1ieTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5p Ym0uY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0u Y29tPgorLS0tCisgb3B0aWNzbW9uL2V0aHRvb2wuYyAgIHwgNiArKystLS0KKyBvcHRpY3Ntb24v b3B0aWNzbW9uLmMgfCA0ICsrKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL29wdGljc21vbi9ldGh0b29sLmMgYi9vcHRp Y3Ntb24vZXRodG9vbC5jCitpbmRleCBhNDQ4ZWIyNS4uYWMxYTA3ZmIgMTAwNjQ0CistLS0gYS9v cHRpY3Ntb24vZXRodG9vbC5jCisrKysgYi9vcHRpY3Ntb24vZXRodG9vbC5jCitAQCAtNTYsMTMg KzU2LDEzIEBAIGludCBldGh0b29sX25sX2Nvbm5lY3Qoc3RydWN0IGV0aHRvb2xfbmxfY3R4ICpj dHgpCisgCXNrID0gbmxfc29ja2V0X2FsbG9jKCk7CisgCWlmICghc2spIHsKKyAJCW5sX3BlcnJv cihOTEVfTk9NRU0sICJhbGxvYyIpOworLQkJcmV0dXJuIEVYSVRfRkFJTFVSRTsKKysJCXJldHVy biAtRU5PTUVNOworIAl9CisgCisgCXJjID0gZ2VubF9jb25uZWN0KHNrKTsKKyAJaWYgKHJjKSB7 CisgCQlubF9wZXJyb3IocmMsICJjb25uZWN0Iik7CistCQlyYyA9IEVYSVRfRkFJTFVSRTsKKysJ CXJjID0gLUVJTzsKKyAJCWdvdG8gZXJyX2ZyZWU7CisgCX0KKyAKK0BAIC03Miw3ICs3Miw3IEBA IGludCBldGh0b29sX25sX2Nvbm5lY3Qoc3RydWN0IGV0aHRvb2xfbmxfY3R4ICpjdHgpCisgCQkJ ZnByaW50ZihzdGRlcnIsICJFdGh0b29sIG5ldGxpbmsgZmFtaWx5IG5vdCBmb3VuZFxuIik7Cisg CQllbHNlCisgCQkJbmxfcGVycm9yKGV0aHRvb2xfaWQsICJjdHJsIHJlc29sdmUiKTsKKy0JCXJj ID0gRVhJVF9GQUlMVVJFOworKwkJcmMgPSAtRUlPOworIAkJZ290byBlcnJfY2xvc2U7CisgCX0K KyAJY3R4LT5zayA9IHNrOworZGlmZiAtLWdpdCBhL29wdGljc21vbi9vcHRpY3Ntb24uYyBiL29w dGljc21vbi9vcHRpY3Ntb24uYworaW5kZXggNmQ3NTk1YjEuLmM1MDI3NWQ0IDEwMDY0NAorLS0t IGEvb3B0aWNzbW9uL29wdGljc21vbi5jCisrKysgYi9vcHRpY3Ntb24vb3B0aWNzbW9uLmMKK0BA IC0zOTgsNyArMzk4LDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorIAlpbnQg cmV0OworIAorIAlwYXJzZV9jbWRsaW5lKGFyZ2MsIGFyZ3YsICZjdHgub3B0cyk7CistCWV0aHRv b2xfbmxfY29ubmVjdCgmY3R4LmV0aHRvb2xfY3R4KTsKKysJcmV0ID0gZXRodG9vbF9ubF9jb25u ZWN0KCZjdHguZXRodG9vbF9jdHgpOworKwlpZiAocmV0KQorKwkJcmV0dXJuIHJldDsKKyAJaWYg KGN0eC5vcHRzLm1vbml0b3IpCisgCQlyZXQgPSBtb25pdG9yX21vZGUoJmN0eCk7CisgCWVsc2UK Ky0tIAorMi41NS4wCisKKworRnJvbSA4YjM4YmYzN2IwNmFkODFkOTMyZjM1NDUzMzBjM2RhYTY0 Njk1YmJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmlrbGFzIFNjaG5lbGxlIDxz Y2huZWxsZUBsaW51eC5pYm0uY29tPgorRGF0ZTogVGh1LCAzMCBBcHIgMjAyNiAxNzoxMzoxNiAr MDIwMAorU3ViamVjdDogW1BBVENIIDA3LzIzXSBvcHRpY3Ntb246IEZpeCB3cm9uZyBzaXplIGNo ZWNrIGZvcgorIE9QVElDU19RU0ZQMjhfTE9TX0lNUExFTUVOVEVEX09GRlNFVAorTUlNRS1WZXJz aW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGUgY29kZSBhY2Nlc3NlcyBPUFRJQ1NfUVNG UDI4X0xPU19JTVBMRU1FTlRFRF9PRkZTRVQgc28gdGhlIHNpemUgbmVlZHMKK3RvIGJlIG9uZSBs YXJnZXIgZm9yIHRoZSBMT1MgdG8gYmUgYWNjZXNzaWJsZS4KKworRml4ZXM6IGMzNGFkYjljYWJl ZSAoIm9wdGljc21vbjogSW50cm9kdWNlIG9wdGljc21vbiB0b29sIikKK1Jldmlld2VkLWJ5OiBK YW4gSMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOaWts YXMgU2NobmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4g SMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBvcHRpY3Ntb24vb3B0aWNz X2luZm8uYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKKworZGlmZiAtLWdpdCBhL29wdGljc21vbi9vcHRpY3NfaW5mby5jIGIvb3B0aWNzbW9u L29wdGljc19pbmZvLmMKK2luZGV4IGZjMDQxZGEzLi4wMGQ4ZDcyMyAxMDA2NDQKKy0tLSBhL29w dGljc21vbi9vcHRpY3NfaW5mby5jCisrKysgYi9vcHRpY3Ntb24vb3B0aWNzX2luZm8uYworQEAg LTY2LDcgKzY2LDcgQEAgYm9vbCBvcHRpY3NfbG9zX2ltcGxlbWVudGVkKHN0cnVjdCBvcHRpY3Mg Km9pKQorIAl9IGVsc2UgaWYgKHR5cGUgPT0gT1BUSUNTX1RZUEVfUVNGUDI4KSB7CisgCQlpZiAo b2ktPnNpemUgPCBPUFRJQ1NfUVNGUDI4X0xPU19PRkZTRVQgKyAxKQorIAkJCXJldHVybiBmYWxz ZTsKKy0JCWlmIChvaS0+c2l6ZSA8IE9QVElDU19RU0ZQMjhfTE9TX0lNUExFTUVOVEVEX09GRlNF VCkKKysJCWlmIChvaS0+c2l6ZSA8IE9QVElDU19RU0ZQMjhfTE9TX0lNUExFTUVOVEVEX09GRlNF VCArIDEpCisgCQkJcmV0dXJuIGZhbHNlOworIAkJaW1wbGVtZW50ZWQgPSBvaS0+cmF3W09QVElD U19RU0ZQMjhfTE9TX0lNUExFTUVOVEVEX09GRlNFVF07CisgCQkvKgorLS0gCisyLjU1LjAKKwor CitGcm9tIGU3YmM0YTVkMzEwM2Y3NDVjYWQ1NzVhM2FjZjQ4YmFmMjdhNGQ3NjIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBOaWtsYXMgU2NobmVsbGUgPHNjaG5lbGxlQGxpbnV4Lmli bS5jb20+CitEYXRlOiBNb24sIDQgTWF5IDIwMjYgMTM6NDE6MzQgKzAyMDAKK1N1YmplY3Q6IFtQ QVRDSCAwOC8yM10gb3B0aWNzbW9uOiBFbmZvcmNlIDEgc2Vjb25kIGFzIG1pbmltYWwgaW50ZXJ2 YWwKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworU28gZmFyIGl0IHdhcyBw b3NzaWJsZSBmb3IgdGhlIHVzZXIgdG8gc3BlY2lmeSBhbiBpbnRlcnZhbCBvZiAwIHdoaWNoCit3 b3VsZCByZXN1bHQgaW4gbm90IHJlLWFybWluZyB0aGUgdGltZXIgYXQgYWxsIHRodXMgZGlzYWJs aW5nIGludGVydmFsCitiYXNlZCBkYXRhIGNvbGxlY3Rpb24uIFdoaWxlIHRoaXMgd291bGQgc3Rp bGwgZG8gb3B0aWNzIGRhdGEgY29sbGVjdGlvbgorb24gc3RhcnR1cCBhbmQgbGluayBjaGFuZ2Vz IHRoZSBpbnRlbnRpb24gaXMgdG8gY29sbGVjdCBkYXRhIGF0IGxlYXN0CitldmVyeSAyNCBob3Vy cy4gSWYgaW50ZXJ2YWwgaXMgZ2l2ZW4gYXMgMCB0cmVhdCB0aGlzIGFzIG1pbmltdW0gdXBkYXRl CitpbnRlcnZhbCBvZiAxIHNlY29uZC4KKworRml4ZXM6IGMzNGFkYjljYWJlZSAoIm9wdGljc21v bjogSW50cm9kdWNlIG9wdGljc21vbiB0b29sIikKK1Jldmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIg PGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOaWtsYXMgU2NobmVsbGUg PHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4gSMO2cHBuZXIgPGhv ZXBwbmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBvcHRpY3Ntb24vb3B0aWNzbW9uLmMgfCAyICsr CisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvb3B0aWNz bW9uL29wdGljc21vbi5jIGIvb3B0aWNzbW9uL29wdGljc21vbi5jCitpbmRleCBjNTAyNzVkNC4u Zjg2MDU2ZDQgMTAwNjQ0CistLS0gYS9vcHRpY3Ntb24vb3B0aWNzbW9uLmMKKysrKyBiL29wdGlj c21vbi9vcHRpY3Ntb24uYworQEAgLTk2LDYgKzk2LDggQEAgc3RhdGljIHZvaWQgcGFyc2VfY21k bGluZShpbnQgYXJnYywgY2hhciAqYXJndltdLCBzdHJ1Y3Qgb3B0aW9ucyAqb3B0cykKKyAJCQl9 CisgCQkJaWYgKHNlY29uZHMgPCA4NjQwMCkKKyAJCQkJb3B0cy0+aW50ZXJ2YWxfc2Vjb25kcyA9 IHNlY29uZHM7CisrCQkJaWYgKHNlY29uZHMgPCAxKQorKwkJCQlvcHRzLT5pbnRlcnZhbF9zZWNv bmRzID0gMTsKKyAJCQlicmVhazsKKyAJCWNhc2UgJ2gnOgorIAkJCXV0aWxfcHJnX3ByaW50X2hl bHAoKTsKKy0tIAorMi41NS4wCisKKworRnJvbSBlODU1MGE0ZjhkYzYxODIyYzE4MTZkYTViMTdk MTg1NDQ4NjhlZTA2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmlrbGFzIFNjaG5l bGxlIDxzY2huZWxsZUBsaW51eC5pYm0uY29tPgorRGF0ZTogVHVlLCA5IERlYyAyMDI1IDE3OjUz OjU3ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMDkvMjNdIG9wdGljc21vbjogenBjaW1vbjogUmVu YW1lIG9wdGljc21vbiB0byB6cGNpbW9uCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4 Yml0CisKK1RoZSBvcHRpY3Ntb24gdG9vbCBzdGFydGVkIG91dCBhcyBhIHRvb2wgZm9yIG1vbml0 b3JpbmcgdGhlIGhlYWx0aCBvZgorb3B0aWNhbCBtb2R1bGVzIGluIGRpcmVjdGx5IGF0dGFjaGVk IFBDSSBOSUNzLiBJbiB0aGUgZnV0dXJlIGhvd2V2ZXIgaXQKK3dpbGwgYWxzbyBtb25pdG9yIHRo ZSBoZWFsdGggb2Ygb3RoZXIgUENJIGRldmljZXMuIEluIHBhcnRpY3VsYXIgaW4KK2EgZmlyc3Qg c3RlcCBpdCB3aWxsIG1vbml0b3IgdGhlIGhlYWx0aCBvZiBkaXJlY3RseSBhdHRhY2hlZCBOVk1l CitkZXZpY2VzLgorCitUbyByZWZsZWN0IHRoaXMgYnJvYWRlbmluZyBvZiBpdHMgc2NvcGUgcmVu YW1lIG9wdGljc21vbiB0byB6cGNpbW9uLiBBZGQKK3pwY2ltb24uc2VydmljZSBhbmQgaW5zdGFs bCBpdCBib3RoIHVuZGVyIHRoZSBuZXcgbmFtZSBhbmQgc3ltbGlua2VkIGFzCitvcHRpY3Ntb24u c2VydmljZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuIFNpbmNlIHVzZXJzIGFyZSBleHBl Y3RlZAordG8gbW9zdGx5IGp1c3QgZW5hYmxlIHRoZSBzZXJ2aWNlIHRoaXMga2VlcHMgb2xkIGlu c3RydWN0aW9ucyBqdXN0Cit3b3JraW5nLgorCitSZXZpZXdlZC1ieTogSmFuIEjDtnBwbmVyIDxo b2VwcG5lckBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTogTmlrbGFzIFNjaG5lbGxlIDxz Y2huZWxsZUBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEjDtnBwbmVyIDxob2Vw cG5lckBsaW51eC5pYm0uY29tPgorLS0tCisgLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDggKysrKystLS0KKyBNYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQorIFJFQURNRS5tZCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0KKyBzY3JpcHRzL2RiZ2luZm8uc2gg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQorIHN5c3RlbWQvTWFrZWZpbGUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrKystCisgLi4ucHRpY3Ntb24uc2Vydmlj ZS5pbiA9PiB6cGNpbW9uLnNlcnZpY2UuaW59IHwgIDYgKysrLS0tCisge29wdGljc21vbiA9PiB6 cGNpbW9ufS9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLQor IC4uLi9hdXRvY29tcGxldGlvbl9nZW5lcmF0b3JfaG9zdC5jICAgICAgICAgICB8ICAzICsrLQor IHtvcHRpY3Ntb24gPT4genBjaW1vbn0vZXRodG9vbC5jICAgICAgICAgICAgICB8ICAwCisge29w dGljc21vbiA9PiB6cGNpbW9ufS9ldGh0b29sLmggICAgICAgICAgICAgIHwgIDAKKyB7b3B0aWNz bW9uID0+IHpwY2ltb259L2xpbmtfbW9uLmMgICAgICAgICAgICAgfCAgMAorIHtvcHRpY3Ntb24g PT4genBjaW1vbn0vbGlua19tb24uaCAgICAgICAgICAgICB8ICAwCisge29wdGljc21vbiA9PiB6 cGNpbW9ufS9vcHRpY3NfaW5mby5jICAgICAgICAgIHwgIDAKKyB7b3B0aWNzbW9uID0+IHpwY2lt b259L29wdGljc19pbmZvLmggICAgICAgICAgfCAgMAorIHtvcHRpY3Ntb24gPT4genBjaW1vbn0v b3B0aWNzX3NjbHAuYyAgICAgICAgICB8ICAwCisge29wdGljc21vbiA9PiB6cGNpbW9ufS9vcHRp Y3Nfc2NscC5oICAgICAgICAgIHwgIDAKKyBvcHRpY3Ntb24vb3B0aWNzbW9uLjggPT4genBjaW1v bi96cGNpbW9uLjggICAgfCAxMCArKysrKy0tLS0tCisgb3B0aWNzbW9uL29wdGljc21vbi5jID0+ IHpwY2ltb24venBjaW1vbi5jICAgIHwgIDUgKystLS0KKyAuLi4vb3B0aWNzbW9uX2NsaS5oID0+ IHpwY2ltb24venBjaW1vbl9jbGkuaCAgfCAgMAorIDE5IGZpbGVzIGNoYW5nZWQsIDM5IGluc2Vy dGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQorIHJlbmFtZSBzeXN0ZW1kL3tvcHRpY3Ntb24uc2Vy dmljZS5pbiA9PiB6cGNpbW9uLnNlcnZpY2UuaW59ICg2NiUpCisgcmVuYW1lIHtvcHRpY3Ntb24g PT4genBjaW1vbn0vTWFrZWZpbGUgKDc5JSkKKyByZW5hbWUge29wdGljc21vbiA9PiB6cGNpbW9u fS9hdXRvY29tcGxldGlvbl9nZW5lcmF0b3JfaG9zdC5jICg3MiUpCisgcmVuYW1lIHtvcHRpY3Nt b24gPT4genBjaW1vbn0vZXRodG9vbC5jICgxMDAlKQorIHJlbmFtZSB7b3B0aWNzbW9uID0+IHpw Y2ltb259L2V0aHRvb2wuaCAoMTAwJSkKKyByZW5hbWUge29wdGljc21vbiA9PiB6cGNpbW9ufS9s aW5rX21vbi5jICgxMDAlKQorIHJlbmFtZSB7b3B0aWNzbW9uID0+IHpwY2ltb259L2xpbmtfbW9u LmggKDEwMCUpCisgcmVuYW1lIHtvcHRpY3Ntb24gPT4genBjaW1vbn0vb3B0aWNzX2luZm8uYyAo MTAwJSkKKyByZW5hbWUge29wdGljc21vbiA9PiB6cGNpbW9ufS9vcHRpY3NfaW5mby5oICgxMDAl KQorIHJlbmFtZSB7b3B0aWNzbW9uID0+IHpwY2ltb259L29wdGljc19zY2xwLmMgKDEwMCUpCisg cmVuYW1lIHtvcHRpY3Ntb24gPT4genBjaW1vbn0vb3B0aWNzX3NjbHAuaCAoMTAwJSkKKyByZW5h bWUgb3B0aWNzbW9uL29wdGljc21vbi44ID0+IHpwY2ltb24venBjaW1vbi44ICg4OCUpCisgcmVu YW1lIG9wdGljc21vbi9vcHRpY3Ntb24uYyA9PiB6cGNpbW9uL3pwY2ltb24uYyAoOTglKQorIHJl bmFtZSBvcHRpY3Ntb24vb3B0aWNzbW9uX2NsaS5oID0+IHpwY2ltb24venBjaW1vbl9jbGkuaCAo MTAwJSkKKworZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCitpbmRleCAzNmEy Yzg1MS4uMzdlYzRkOGIgMTAwNjQ0CistLS0gYS8uZ2l0aWdub3JlCisrKysgYi8uZ2l0aWdub3Jl CitAQCAtMTAyLDkgKzEwMiwxMSBAQCBsc3N0cC9fbHNzdHAKKyBsc3N0cC9sc3N0cC5iYXNoCisg bW9uX3Rvb2xzL21vbl9mc3N0YXRkCisgbW9uX3Rvb2xzL21vbl9wcm9jZAorLW9wdGljc21vbi9v cHRpY3Ntb24KKy1vcHRpY3Ntb24vX29wdGljc21vbgorLW9wdGljc21vbi9vcHRpY3Ntb24uYmFz aAorK3pwY2ltb24venBjaW1vbgorK3pwY2ltb24venBjaW1vbi5iYXNoCisrenBjaW1vbi9fenBj aW1vbgorK3pwY2ltb24vb3B0aWNzbW9uLmJhc2gKKyt6cGNpbW9uL19vcHRpY3Ntb24KKyBvc2Fz bm1wZC9vc2Fzbm1wZAorIHFldGhhcnAvcWV0aGFycAorIHFldGhxb2F0L3FldGhxb2F0CitkaWZm IC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQoraW5kZXggNGRiY2U4Y2MuLjVhYWZiNTZjIDEw MDY0NAorLS0tIGEvTWFrZWZpbGUKKysrKyBiL01ha2VmaWxlCitAQCAtMTUsNyArMTUsNyBAQCBU T09MX0RJUlMgPSB6aXBsIHpkdW1wIGZkYXNkIGRhc2RmbXQgZGFzZHZpZXcgdHVuZWRhc2QgXAor IAkgICB2bWNwIG1hbiBtb25fdG9vbHMgZGFzZGluZm8gdm11ciBjcHVwbHVnZCBpcGxfdG9vbHMg XAorIAkgICB6aW9tb24gaXVjdnRlcm0gaHlwdG9wIGNtc2ZzLWZ1c2UgcWV0aHFvYXQgemZjcGR1 bXAgemRzZnMgY3B1bWYgXAorIAkgICBzeXN0ZW1kIGhtY2RydmZzIGNwYWNmc3RhdHMgemRldiBk dW1wMnRhciB6a2V5IG5ldGJvb3QgZXRjIHpwY2ljdGwgXAorLQkgICBsc3N0cCBoc2NpIGhzYXZt Y29yZSBjaHJlaXBsLWZjcC1tcGF0aCBhcF90b29scyBydXN0IG9wdGljc21vbiBcCisrCSAgIGxz c3RwIGhzY2kgaHNhdm1jb3JlIGNocmVpcGwtZmNwLW1wYXRoIGFwX3Rvb2xzIHJ1c3QgenBjaW1v biBcCisgCSAgIHpwd3Igem1lbXRvcG8KKyAKKyBlbHNlCitkaWZmIC0tZ2l0IGEvUkVBRE1FLm1k IGIvUkVBRE1FLm1kCitpbmRleCA5MWQ2MWM1YS4uNDA0NWIwZjggMTAwNjQ0CistLS0gYS9SRUFE TUUubWQKKysrKyBiL1JFQURNRS5tZAorQEAgLTMxNiw3ICszMTYsNyBAQCBidWlsZCBvcHRpb25z OgorIHwgZ2xpYmMtc3RhdGljIHwgYEhBVkVfTElCQ19TVEFUSUNgIHwgemZjcGR1bXAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorIHwgb3BlbnNzbCAgICAgIHwgYEhBVkVfT1BFTlNT TGAgICAgIHwgemtleSwgbGliZWttZndlYiwgbGlia21pcGNsaWVudCwgICAgICAgfAorIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgemdldGR1bXAsIHJ1c3QvcHZhdHRlc3Qs IHJ1c3QvcHZpbWcsICAgfAorLXwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg emdldGR1bXAvcHZzZWNyZXQsIG9wdGljc21vbiAgICAgICAgICAgfAorK3wgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgemdldGR1bXAvcHZzZWNyZXQsIHpwY2ltb24gICAgICAg ICAgICAgfAorIHwgY3J5cHRzZXR1cCAgIHwgYEhBVkVfQ1JZUFRTRVRVUDJgIHwgemtleS1jcnlw dHNldHVwICAgICAgICAgICAgICAgICAgICAgICAgfAorIHwganNvbi1jICAgICAgIHwgYEhBVkVf SlNPTkNgICAgICAgIHwgemtleS1jcnlwdHNldHVwLCBsaWJla21md2ViLCAgICAgICAgICAgfAor IHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgbGlia21pcGNsaWVudCAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorQEAgLTMyNiw3ICszMjYsNyBAQCBidWlsZCBvcHRpb25z OgorIHwgbGlieG1sMiAgICAgIHwgYEhBVkVfTElCWE1MMmAgICAgIHwgbGlia21pcGNsaWVudCAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorIHwgc3lzdGVtZCAgICAgIHwgYEhBVkVfU1lTVEVN RGAgICAgIHwgaHNhdm1jb3JlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorIHwgbGli dWRldiAgICAgIHwgYEhBVkVfTElCVURFVmAgICAgIHwgY3BhY2ZzdGF0c2QgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorLXwgbGlibmwzICAgICAgIHwgYEhBVkVfTElCTkwzYCAgICAgIHwg b3B0aWNzbW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorK3wgbGlibmwzICAgICAg IHwgYEhBVkVfTElCTkwzYCAgICAgIHwgenBjaW1vbiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAorIAorIFRoaXMgdGFibGUgbGlzdHMgYWRkaXRpb25hbCBidWlsZCBvciBpbnN0YWxs IG9wdGlvbnM6CisgCitAQCAtMzc0LDEwICszNzQsMTAgQEAgdGhlIGRpZmZlcmVudCB0b29scyBh cmUgcHJvdmlkZWQ6CisgCisgICBUaGUgcnVudGltZSByZXF1aXJlbWVudHMgYXJlOiBvcGVuc3Ns LWxpYnMgKD49IDEuMS4xKSBhbmQgbGliY3VybC4KKyAKKy0qIG9wdGljc21vbjoKKy0gIEZvciBi dWlsZGluZyBvcHRpY3Ntb24gT3BlblNTTCBhbmQgdGhlIE5ldGxpbmsgTGlicmFyeSBTdWl0ZSAo bGlibmwzKSBhcmUKKysqIHpwY2ltb246CisrICBGb3IgYnVpbGRpbmcgenBjaW1vbiBPcGVuU1NM IGFuZCB0aGUgTmV0bGluayBMaWJyYXJ5IFN1aXRlIChsaWJubDMpIGFyZQorICAgcmVxdWlyZWQu CistICBUaXA6IHlvdSBtYXkgc2tpcCB0aGUgb3B0aWNzbW9uIGJ1aWxkIGJ5IGFkZGluZworKyAg VGlwOiB5b3UgbWF5IHNraXAgdGhlIHpwY2ltb24gYnVpbGQgYnkgYWRkaW5nCisgICBgSEFWRV9P UEVOU1NMPTBgIG9yIGBIQVZFX0xJQk5MMz0wYAorIAorICogb3Nhc25tcGQ6CitkaWZmIC0tZ2l0 IGEvc2NyaXB0cy9kYmdpbmZvLnNoIGIvc2NyaXB0cy9kYmdpbmZvLnNoCitpbmRleCBlNWMzNWJi Zi4uZWM2MjI3ZjEgMTAwNzU1CistLS0gYS9zY3JpcHRzL2RiZ2luZm8uc2gKKysrKyBiL3Njcmlw dHMvZGJnaW5mby5zaAorQEAgLTYyOSw3ICs2MjksNyBAQCBORVRXT1JLX0NNRFM9ImlwIC1iciBh XAorICAgOm5zdGF0IC1helwKKyAgIDpvcGVuc3NsIGVuZ2luZSAjIGRlcHJlY2F0ZWQgaW4gT3Bl blNTTCAzLm5cCisgICA6b3BlbnNzbCBsaXN0IC0tcHJvdmlkZXJzIDI+L2Rldi9udWxsICMgcmVk aXJlY3QgaGVscCBvbiBvbGRlciBzeXN0ZW1zXAorLSAgOm9wdGljc21vbiAtLW1vZHVsZS1pbmZv XAorKyAgOm9wdGljc21vbiAtLW1vZHVsZS1pbmZvXCAjIE5vdyBjYWxsZWQgenBjaW1vbiBidXQg a2VwdCBmb3IgY29tcGF0aWJpbGl0eQorICAgOnJvdXRlIC1uXAorICAgIgorIAorZGlmZiAtLWdp dCBhL3N5c3RlbWQvTWFrZWZpbGUgYi9zeXN0ZW1kL01ha2VmaWxlCitpbmRleCA5Mzg4ZmQ5Yy4u MjllMjliNjMgMTAwNjQ0CistLS0gYS9zeXN0ZW1kL01ha2VmaWxlCisrKysgYi9zeXN0ZW1kL01h a2VmaWxlCitAQCAtNCw3ICs0LDcgQEAgU1lTVEVNX1VOSVRTID0gdHR5cnVuLWdldHR5QC5zZXJ2 aWNlIGl1Y3Z0dHktbG9naW5ALnNlcnZpY2UgXAorICAgICAgICAgICAgICAgIGNwYWNmc3RhdHNk LnNlcnZpY2UgY3B1cGx1Z2Quc2VydmljZSBcCisgICAgICAgICAgICAgICAgZHVtcGNvbmYuc2Vy dmljZSBjcGkuc2VydmljZSBcCisgICAgICAgICAgICAgICAgbW9uX2Zzc3RhdGQuc2VydmljZSBt b25fcHJvY2Quc2VydmljZSBcCistICAgICAgICAgICAgICAgb3B0aWNzbW9uLnNlcnZpY2UKKysg ICAgICAgICAgICAgICB6cGNpbW9uLnNlcnZpY2UKKyAKKyBhbGw6CisgCitAQCAtMTksNiArMTks OSBAQCBpbnN0YWxsOiBzeXN0ZW1fdW5pdHMKKyAJICAkKElOU1RBTEwpIC1nICQoR1JPVVApIC1v ICQoT1dORVIpIFwKKyAJICAgICAgICAgICAgIC1tIDY0NCAkJHVuaXQgJChERVNURElSKSQoU1lT VEVNRFNZU1RFTVVOSVRESVIpIDsgXAorIAlkb25lCisrCSMgTWFrZSB0aGUgbGVnYWN5IG9wdGlj c21vbi5zZXJ2aWNlIGEgbGluayB0byB6cGNpbW9uLnNlcnZpY2UKKysJbG4gLXNmIHpwY2ltb24u c2VydmljZSBcCisrCQkkKERFU1RESVIpJChTWVNURU1EU1lTVEVNVU5JVERJUikvb3B0aWNzbW9u LnNlcnZpY2UKKyAKKyBlbHNlCisgCitkaWZmIC0tZ2l0IGEvc3lzdGVtZC9vcHRpY3Ntb24uc2Vy dmljZS5pbiBiL3N5c3RlbWQvenBjaW1vbi5zZXJ2aWNlLmluCitzaW1pbGFyaXR5IGluZGV4IDY2 JQorcmVuYW1lIGZyb20gc3lzdGVtZC9vcHRpY3Ntb24uc2VydmljZS5pbgorcmVuYW1lIHRvIHN5 c3RlbWQvenBjaW1vbi5zZXJ2aWNlLmluCitpbmRleCAzMzVkOTE2NS4uY2YxZWExMjIgMTAwNjQ0 CistLS0gYS9zeXN0ZW1kL29wdGljc21vbi5zZXJ2aWNlLmluCisrKysgYi9zeXN0ZW1kL3pwY2lt b24uc2VydmljZS5pbgorQEAgLTEsNSArMSw1IEBACisgIworLSMgU3lzdGVtZCB1bml0IGZvciBt b25fZnNzdGF0ZCAobW9uaXRvciB6L1ZNIGd1ZXN0IGZpbGUgc3lzdGVtcykKKysjIFN5c3RlbWQg dW5pdCBmb3IgenBjaW1vbiBQQ0kgTklDIG9wdGljYWwgbW9kdWxlIG1vbml0b3JpbmcKKyAjCisg IyBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMjQKKyAjCitAQCAtOSwxMSArOSwxMSBAQAorIAorIFtV bml0XQorIERlc2NyaXB0aW9uPU1vbml0b3IgaGVhbHRoIG9mIGRpcmVjdGx5IGF0dGFjaGVkIFBD SSBOSUMgb3B0aWNhbCBtb2R1bGVzCistIyBEb2N1bWVudGF0aW9uPW1hbjpvcHRpY3Ntb24KKysj IERvY3VtZW50YXRpb249bWFuOnpwY2ltb24KKyAKKyBbU2VydmljZV0KKyBUeXBlPWV4ZWMKKy1F eGVjU3RhcnQ9QHVzcnNiaW5fcGF0aEAvb3B0aWNzbW9uIC0tc2VuZC1yZXBvcnQgLS1tb25pdG9y IC0taW50ZXJ2YWwgODY0MDAKKytFeGVjU3RhcnQ9QHVzcnNiaW5fcGF0aEAvenBjaW1vbiAtLXNl bmQtcmVwb3J0IC0tbW9uaXRvciAtLWludGVydmFsIDg2NDAwCisgS2lsbE1vZGU9Y29udHJvbC1n cm91cAorIAorIFtJbnN0YWxsXQorZGlmZiAtLWdpdCBhL29wdGljc21vbi9NYWtlZmlsZSBiL3pw Y2ltb24vTWFrZWZpbGUKK3NpbWlsYXJpdHkgaW5kZXggNzklCityZW5hbWUgZnJvbSBvcHRpY3Nt b24vTWFrZWZpbGUKK3JlbmFtZSB0byB6cGNpbW9uL01ha2VmaWxlCitpbmRleCBlNDJiNjMyOS4u NDNmYzJhMDQgMTAwNjQ0CistLS0gYS9vcHRpY3Ntb24vTWFrZWZpbGUKKysrKyBiL3pwY2ltb24v TWFrZWZpbGUKK0BAIC0yLDggKzIsOCBAQCBpbmNsdWRlIC4uL2NvbW1vbi5tYWsKKyAKKyBURVNU UyA6PSB0ZXN0cy8KKyAKKy16c2gtY29tcGxldGlvbnMgPSBfb3B0aWNzbW9uCistYmFzaC1jb21w bGV0aW9ucyA9IG9wdGljc21vbi5iYXNoCisrenNoLWNvbXBsZXRpb25zID0gX3pwY2ltb24KKyti YXNoLWNvbXBsZXRpb25zID0genBjaW1vbi5iYXNoCisgCisgaW5jbHVkZSAuLi9jb21tb25fYXV0 b2NvbXAubWFrCisgCitAQCAtMTIsNyArMTIsNyBAQCBsaWJzID0kKHJvb3RkaXIpL2xpYnpwY2kv bGlienBjaS5hICQocm9vdGRpcikvbGlidXRpbC9saWJ1dGlsLmEKKyBpZm5lcSAoJHtIQVZFX09Q RU5TU0x9LDApCisgY2hlY2tfZGVwX29wZW5zc2w6CisgCSQoY2FsbCBjaGVja19kZXAsIFwKKy0J CSJvcHRpY3Ntb24iLCBcCisrCQkienBjaW1vbiIsIFwKKyAJCSJvcGVuc3NsL2V2cC5oIiwgXAor IAkJIm9wZW5zc2wtZGV2ZWwiLCBcCisgCQkiSEFWRV9PUEVOU1NMPTAiKQorQEAgLTIyLDcgKzIy LDcgQEAgZW5kaWYgIyBIQVZFX09QRU5TU0wKKyBpZm5lcSAoJHtIQVZFX0xJQk5MM30sMCkKKyBj aGVja19kZXBfbGlibmwzOgorIAkkKGNhbGwgY2hlY2tfZGVwLCBcCistCQkib3B0aWNzbW9uIiwg XAorKwkJInpwY2ltb24iLCBcCisgCQkibmV0bGluay9zb2NrZXQuaCIsIFwKKyAJCSJsaWJubDMt ZGV2ZWwiLCBcCisgCQkiSEFWRV9MSUJOTDM9MCIpCitAQCAtNjksMjAgKzY5LDIyIEBAIGVuZGlm CisgQUxMX0NQUEZMQUdTICs9ICQoTElCX0NGTEFHUykKKyBMRExJQlMgKz0gJChMSUJfTEZMQUdT KQorIAorLUJVSUxEVEFSR0VUICs9IG9wdGljc21vbgorK0JVSUxEVEFSR0VUICs9IHpwY2ltb24K KyAKKyBhbGw6ICR7QlVJTERUQVJHRVR9CisgCistb3B0aWNzbW9uOiBvcHRpY3Ntb24ubyBvcHRp Y3NfaW5mby5vIG9wdGljc19zY2xwLm8gZXRodG9vbC5vIGxpbmtfbW9uLm8gJChsaWJzKQorK3pw Y2ltb246IHpwY2ltb24ubyBvcHRpY3NfaW5mby5vIG9wdGljc19zY2xwLm8gZXRodG9vbC5vIGxp bmtfbW9uLm8gJChsaWJzKQorIAorIGluc3RhbGw6IGFsbAorIAkkKElOU1RBTEwpIC1kIC1tIDc1 NSAkKERFU1RESVIpJChCSU5ESVIpICQoREVTVERJUikkKE1BTkRJUikvbWFuOAorLQkkKElOU1RB TEwpIC1nICQoR1JPVVApIC1vICQoT1dORVIpIC1tIDc1NSBvcHRpY3Ntb24gJChERVNURElSKSQo QklORElSKQorLQkkKElOU1RBTEwpIC1nICQoR1JPVVApIC1vICQoT1dORVIpIC1tIDY0NCBvcHRp Y3Ntb24uOCBcCisrCSQoSU5TVEFMTCkgLWcgJChHUk9VUCkgLW8gJChPV05FUikgLW0gNzU1IHpw Y2ltb24gJChERVNURElSKSQoQklORElSKQorKwkkKElOU1RBTEwpIC1nICQoR1JPVVApIC1vICQo T1dORVIpIC1tIDY0NCB6cGNpbW9uLjggXAorIAkJJChERVNURElSKSQoTUFORElSKS9tYW44Cisr CWxuIC1zZiB6cGNpbW9uICQoREVTVERJUikkKEJJTkRJUikvb3B0aWNzbW9uCisrCWxuIC1zZiB6 cGNpbW9uLjggJChERVNURElSKSQoTUFORElSKS9tYW44L29wdGljc21vbi44CisgZW5kaWYgIyBI QVZFX09QRU5TU0wzPTAgb3IgSEFWRV9MSUJOTDM9MAorIAorIGNsZWFuOgorLQlybSAtZiAqLm8g Kn4gb3B0aWNzbW9uIGNvcmUKKysJcm0gLWYgKi5vICp+IHpwY2ltb24gY29yZQorIAorIC5QSE9O WTogYWxsIGluc3RhbGwgY2xlYW4KK2RpZmYgLS1naXQgYS9vcHRpY3Ntb24vYXV0b2NvbXBsZXRp b25fZ2VuZXJhdG9yX2hvc3QuYyBiL3pwY2ltb24vYXV0b2NvbXBsZXRpb25fZ2VuZXJhdG9yX2hv c3QuYworc2ltaWxhcml0eSBpbmRleCA3MiUKK3JlbmFtZSBmcm9tIG9wdGljc21vbi9hdXRvY29t cGxldGlvbl9nZW5lcmF0b3JfaG9zdC5jCityZW5hbWUgdG8genBjaW1vbi9hdXRvY29tcGxldGlv bl9nZW5lcmF0b3JfaG9zdC5jCitpbmRleCA0Y2U5ZmRmMS4uYWVlZmFiMmYgMTAwNjQ0CistLS0g YS9vcHRpY3Ntb24vYXV0b2NvbXBsZXRpb25fZ2VuZXJhdG9yX2hvc3QuYworKysrIGIvenBjaW1v bi9hdXRvY29tcGxldGlvbl9nZW5lcmF0b3JfaG9zdC5jCitAQCAtNiwxMCArNiwxMSBAQAorIAor ICNpbmNsdWRlICJsaWIvdXRpbF9hdXRvY29tcC5oIgorIAorLSNpbmNsdWRlICJvcHRpY3Ntb25f Y2xpLmgiCisrI2luY2x1ZGUgInpwY2ltb25fY2xpLmgiCisgCisgaW50IG1haW4odm9pZCkKKyB7 CisrCWdlbmVyYXRlX2F1dG9jb21wKG9wdF92ZWMsICJ6cGNpbW9uIik7CisgCWdlbmVyYXRlX2F1 dG9jb21wKG9wdF92ZWMsICJvcHRpY3Ntb24iKTsKKyAKKyAJcmV0dXJuIDA7CitkaWZmIC0tZ2l0 IGEvb3B0aWNzbW9uL2V0aHRvb2wuYyBiL3pwY2ltb24vZXRodG9vbC5jCitzaW1pbGFyaXR5IGlu ZGV4IDEwMCUKK3JlbmFtZSBmcm9tIG9wdGljc21vbi9ldGh0b29sLmMKK3JlbmFtZSB0byB6cGNp bW9uL2V0aHRvb2wuYworZGlmZiAtLWdpdCBhL29wdGljc21vbi9ldGh0b29sLmggYi96cGNpbW9u L2V0aHRvb2wuaAorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSBvcHRpY3Ntb24v ZXRodG9vbC5oCityZW5hbWUgdG8genBjaW1vbi9ldGh0b29sLmgKK2RpZmYgLS1naXQgYS9vcHRp Y3Ntb24vbGlua19tb24uYyBiL3pwY2ltb24vbGlua19tb24uYworc2ltaWxhcml0eSBpbmRleCAx MDAlCityZW5hbWUgZnJvbSBvcHRpY3Ntb24vbGlua19tb24uYworcmVuYW1lIHRvIHpwY2ltb24v bGlua19tb24uYworZGlmZiAtLWdpdCBhL29wdGljc21vbi9saW5rX21vbi5oIGIvenBjaW1vbi9s aW5rX21vbi5oCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIG9wdGljc21vbi9s aW5rX21vbi5oCityZW5hbWUgdG8genBjaW1vbi9saW5rX21vbi5oCitkaWZmIC0tZ2l0IGEvb3B0 aWNzbW9uL29wdGljc19pbmZvLmMgYi96cGNpbW9uL29wdGljc19pbmZvLmMKK3NpbWlsYXJpdHkg aW5kZXggMTAwJQorcmVuYW1lIGZyb20gb3B0aWNzbW9uL29wdGljc19pbmZvLmMKK3JlbmFtZSB0 byB6cGNpbW9uL29wdGljc19pbmZvLmMKK2RpZmYgLS1naXQgYS9vcHRpY3Ntb24vb3B0aWNzX2lu Zm8uaCBiL3pwY2ltb24vb3B0aWNzX2luZm8uaAorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5h bWUgZnJvbSBvcHRpY3Ntb24vb3B0aWNzX2luZm8uaAorcmVuYW1lIHRvIHpwY2ltb24vb3B0aWNz X2luZm8uaAorZGlmZiAtLWdpdCBhL29wdGljc21vbi9vcHRpY3Nfc2NscC5jIGIvenBjaW1vbi9v cHRpY3Nfc2NscC5jCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIG9wdGljc21v bi9vcHRpY3Nfc2NscC5jCityZW5hbWUgdG8genBjaW1vbi9vcHRpY3Nfc2NscC5jCitkaWZmIC0t Z2l0IGEvb3B0aWNzbW9uL29wdGljc19zY2xwLmggYi96cGNpbW9uL29wdGljc19zY2xwLmgKK3Np bWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gb3B0aWNzbW9uL29wdGljc19zY2xwLmgK K3JlbmFtZSB0byB6cGNpbW9uL29wdGljc19zY2xwLmgKK2RpZmYgLS1naXQgYS9vcHRpY3Ntb24v b3B0aWNzbW9uLjggYi96cGNpbW9uL3pwY2ltb24uOAorc2ltaWxhcml0eSBpbmRleCA4OCUKK3Jl bmFtZSBmcm9tIG9wdGljc21vbi9vcHRpY3Ntb24uOAorcmVuYW1lIHRvIHpwY2ltb24venBjaW1v bi44CitpbmRleCBhODEwNzkyZC4uM2MyNzRiNDUgMTAwNjQ0CistLS0gYS9vcHRpY3Ntb24vb3B0 aWNzbW9uLjgKKysrKyBiL3pwY2ltb24venBjaW1vbi44CitAQCAtMzAsMjAgKzMwLDIwIEBACisg LiAgYnIKKyAuLgorIC4KKy0uVEggb3B0aWNzbW9uIDggIk9jdCAyMDI0IiBzMzkwLXRvb2xzIHpw Y2ljdGwKKysuVEggenBjaW1vbiA4ICJPY3QgMjAyNCIgczM5MC10b29scyB6cGNpY3RsCisgLgor IC5TSCBOQU1FCistb3B0aWNzbW9uIC0gTW9uaXRvciBvcHRpY2FsIG1vZHVsZXMgZm9yIGRpcmVj dGx5IGF0dGFjaGVkIFBDSSBiYXNlZCBOSUNzCisrenBjaW1vbiAtIE1vbml0b3Igb3B0aWNhbCBt b2R1bGVzIGZvciBkaXJlY3RseSBhdHRhY2hlZCBQQ0kgYmFzZWQgTklDcworIC4KKyAuCisgLlNI IFNZTk9QU0lTCistLkIgIm9wdGljc21vbiIKKysuQiAienBjaW1vbiIKKyAuSSAiT1BUSU9OUyIK KyAuCisgLgorIC5TSCBERVNDUklQVElPTgorIFVzZQorLS5CIG9wdGljc21vbgorKy5CIHpwY2lt b24KKyB0byBtb25pdG9yIHRoZSBoZWFsdGggb2YgdGhlIG9wdGljYWwgbW9kdWxlcyBvZiBkaXJl Y3RseSBhdHRhY2hlZCBQQ0kgYmFzZWQKKyBOSUNzLiBXaGVuIGV4ZWN1dGVkIHdpdGhvdXQgdGhl IFxmQi0tbW9uaXRvclxmUiBvcHRpb24gaXQgd2lsbCBjb2xsZWN0IG9wdGljYWwKKyBtb2R1bGUg ZGF0YSBmcm9tIGFsbCBhdmFpbGFibGUgUENJIG5ldHdvcmsgaW50ZXJmYWNlIHBoeXNpY2FsIGZ1 bmN0aW9ucyBhbmQKK0BAIC04MCw3ICs4MCw3IEBAIG9uIi4KKyAKKyAuQiBFeGFtcGxlOiBFeHRy YWN0IG1vZHVsZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGZpcnN0IGFkYXB0ZXIKKyAKKy0uQ0wgb3B0 aWNzbW9uIC0tbW9kdWxlLWluZm8gfCBqcSAtciAnLmFkYXB0ZXJzWzBdLm5ldGRldnNbMF0ub3B0 aWNzLm1vZHVsZV9pbmZvJyB8IGJhc2U2NCAtZCB8IGhleGR1bXAgLUMKKysuQ0wgenBjaW1vbiAt LW1vZHVsZS1pbmZvIHwganEgLXIgJy5hZGFwdGVyc1swXS5uZXRkZXZzWzBdLm9wdGljcy5tb2R1 bGVfaW5mbycgfCBiYXNlNjQgLWQgfCBoZXhkdW1wIC1DCisgLlBQCisgLlBQCisgLgorZGlmZiAt LWdpdCBhL29wdGljc21vbi9vcHRpY3Ntb24uYyBiL3pwY2ltb24venBjaW1vbi5jCitzaW1pbGFy aXR5IGluZGV4IDk4JQorcmVuYW1lIGZyb20gb3B0aWNzbW9uL29wdGljc21vbi5jCityZW5hbWUg dG8genBjaW1vbi96cGNpbW9uLmMKK2luZGV4IGY4NjA1NmQ0Li43ZGY4N2U4MSAxMDA2NDQKKy0t LSBhL29wdGljc21vbi9vcHRpY3Ntb24uYworKysrIGIvenBjaW1vbi96cGNpbW9uLmMKK0BAIC0z MSw3ICszMSw3IEBACisgI2luY2x1ZGUgImxpbmtfbW9uLmgiCisgI2luY2x1ZGUgIm9wdGljc19p bmZvLmgiCisgI2luY2x1ZGUgIm9wdGljc19zY2xwLmgiCistI2luY2x1ZGUgIm9wdGljc21vbl9j bGkuaCIKKysjaW5jbHVkZSAienBjaW1vbl9jbGkuaCIKKyAKKyAjZGVmaW5lIEFQSV9MRVZFTCAx CisgCitAQCAtNTIsOCArNTIsNyBAQCBzdHJ1Y3Qgb3B0aWNzbW9uX2N0eCB7CisgfTsKKyAKKyBz dGF0aWMgY29uc3Qgc3RydWN0IHV0aWxfcHJnIHByZyA9IHsKKy0JLmRlc2MgPSAiVXNlIG9wdGlj c21vbiB0byBtb25pdG9yIHRoZSBoZWFsdGggb2YgdGhlIG9wdGljYWwgbW9kdWxlc1xuIgorLQkJ Im9mIGRpcmVjdGx5IGF0dGFjaGVkIFBDSSBiYXNlZCBOSUNzIiwKKysJLmRlc2MgPSAiVXNlIHpw Y2ltb24gdG8gbW9uaXRvciB0aGUgaGVhbHRoIG9mIFBDSSBkZXZpY2VzIiwKKyAJLmNvcHlyaWdo dF92ZWMgPSB7IHsKKyAJCQkJICAgLm93bmVyID0gIklCTSBDb3JwLiIsCisgCQkJCSAgIC5wdWJf Zmlyc3QgPSAyMDI0LAorZGlmZiAtLWdpdCBhL29wdGljc21vbi9vcHRpY3Ntb25fY2xpLmggYi96 cGNpbW9uL3pwY2ltb25fY2xpLmgKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20g b3B0aWNzbW9uL29wdGljc21vbl9jbGkuaAorcmVuYW1lIHRvIHpwY2ltb24venBjaW1vbl9jbGku aAorLS0gCisyLjU1LjAKKworCitGcm9tIDhhNGE0ZTA1NTc5ZWI2OTc3MjFiNTliOGU3MThjZGIx ZDk2YWViNWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBOaWtsYXMgU2NobmVsbGUg PHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitEYXRlOiBXZWQsIDE3IEp1biAyMDI2IDIxOjQ1OjM1 ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMTAvMjNdIGxpYnV0aWwvdXRpbF9mbXQ6IEFkZCB1dGls X2ZtdF90eXBlX3RvX25hbWUoKQorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAor CitBZGQgYSBmdW5jdGlvbiB0byBnZXQgdGhlIHRleHR1YWwgbmFtZSBvZiBhbiBlbnVtIHV0aWxf Zm10X3QgdmFsdWUuIFRvCittYWtlIHRoaXMgcm9idXN0IHRvIGNoYW5nZXMgaW4gdGhlIG9yZGVy IG9mIGVsZW1lbnRzIGluIHRoZSBmb3JtYXQgYXJyYXkKK2luaXRpYWxpemUgdGhpcyB1c2luZyBu YW1lZCBpbmRpY2VzLgorCitSZXZpZXdlZC1ieTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51 eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51 eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5p Ym0uY29tPgorLS0tCisgaW5jbHVkZS9saWIvdXRpbF9mbXQuaCB8IDEwICsrKysrKysrKysKKyBs aWJ1dGlsL3V0aWxfZm10LmMgICAgIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t CisgMiBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saWIvdXRpbF9mbXQuaCBiL2luY2x1ZGUvbGliL3V0aWxfZm10 LmgKK2luZGV4IDFkM2I5YWY5Li5hYzU3Y2Q0ZiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvbGliL3V0 aWxfZm10LmgKKysrKyBiL2luY2x1ZGUvbGliL3V0aWxfZm10LmgKK0BAIC0xNTcsNiArMTU3LDE2 IEBAIHZvaWQgdXRpbF9mbXRfZXhpdCh2b2lkKTsKKyAgKi8KKyBib29sIHV0aWxfZm10X25hbWVf dG9fdHlwZShjb25zdCBjaGFyICpuYW1lLCBlbnVtIHV0aWxfZm10X3QgKnR5cGUpOworIAorKy8q KgorKyAqIHV0aWxfZm10X3R5cGVfdG9fbmFtZSgpIC0gR2V0IG5hbWUgb2YgZ2l2ZW4gZm9ybWF0 IHR5cGUgaWRlbnRpZmllci4KKysgKiBAdHlwZTogRm9ybWF0IHR5cGUgaWRlbnRpZmllcgorKyAq CisrICogR2V0IHRoZSBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGZvcm1hdCB0eXBl IGlkZW50aWZpZXIuCisrICoKKysgKiBSZXR1cm46IG5hbWUgb2YgdGhlIGZvcm1hdCB0eXBlCisr ICovCisrY29uc3QgY2hhciAqdXRpbF9mbXRfdHlwZV90b19uYW1lKGVudW0gdXRpbF9mbXRfdCB0 eXBlKTsKKysKKyAvKioKKyAgKiB1dGlsX2ZtdF9zZXRfaW5kZW50KCkgLSBTZXQgaW5kZW50YXRp b24gcGFyYW1ldGVycy4KKyAgKiBAYmFzZSAgICA6IEJhc2UgaW5kZW50YXRpb24gbGV2ZWwgdG8g YXBwbHkgdG8gYWxsIG91dHB1dCBsaW5lcyAoZGVmYXVsdCAwKQorZGlmZiAtLWdpdCBhL2xpYnV0 aWwvdXRpbF9mbXQuYyBiL2xpYnV0aWwvdXRpbF9mbXQuYworaW5kZXggMzFiYmU3MDQuLmY0ZTA1 ZmFlIDEwMDY0NAorLS0tIGEvbGlidXRpbC91dGlsX2ZtdC5jCisrKysgYi9saWJ1dGlsL3V0aWxf Zm10LmMKK0BAIC04OSwxMSArODksMjYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CisgCWNvbnN0 IGNoYXIgKm5hbWU7CisgCWVudW0gdXRpbF9mbXRfdCBmbXQ7CisgfSBmb3JtYXRzW10gPSB7Cist CXsgImpzb24iLCBGTVRfSlNPTiB9LAorLQl7ICJqc29uLXNlcSIsIEZNVF9KU09OU0VRIH0sCist CXsgImpzb25sIiwgRk1UX0pTT05MIH0sCistCXsgInBhaXJzIiwgRk1UX1BBSVJTIH0sCistCXsg ImNzdiIsICBGTVRfQ1NWIH0sCisrCVtGTVRfSlNPTl0gPSB7CisrCQkubmFtZSA9ICJqc29uIiwK KysJCS5mbXQgPSBGTVRfSlNPTgorKwl9LAorKwlbRk1UX0pTT05TRVFdID0geworKwkJLm5hbWUg PSAianNvbi1zZXEiLAorKwkJLmZtdCA9IEZNVF9KU09OU0VRCisrCX0sCisrCVtGTVRfSlNPTkxd ID0geworKwkJLm5hbWUgPSAianNvbmwiLAorKwkJLmZtdCA9IEZNVF9KU09OTAorKwl9LAorKwlb Rk1UX1BBSVJTXSA9IHsKKysJCS5uYW1lID0gInBhaXJzIiwKKysJCS5mbXQgPSBGTVRfUEFJUlMK KysJfSwKKysJW0ZNVF9DU1ZdID0geworKwkJLm5hbWUgPSAiY3N2IiwKKysJCS5mbXQgPSBGTVRf Q1NWCisrCX0sCisgfTsKKyAKKyAvKiBTaWduYWwgbWFzayBmb3IgYmxvY2tpbmcgSU5UIGFuZCBU RVJNIHNpZ25hbHMuICovCitAQCAtMTEyLDYgKzEyNywxMSBAQCBib29sIHV0aWxfZm10X25hbWVf dG9fdHlwZShjb25zdCBjaGFyICpuYW1lLCBlbnVtIHV0aWxfZm10X3QgKnR5cGUpCisgCXJldHVy biBmYWxzZTsKKyB9CisgCisrY29uc3QgY2hhciAqdXRpbF9mbXRfdHlwZV90b19uYW1lKGVudW0g dXRpbF9mbXRfdCB0eXBlKQorK3sKKysJcmV0dXJuIGZvcm1hdHNbdHlwZV0ubmFtZTsKKyt9Cisr CisgYm9vbCB1dGlsX2ZtdF9pc19qc29uKGVudW0gdXRpbF9mbXRfdCB0eXBlKQorIHsKKyAJc3dp dGNoICh0eXBlKSB7CistLSAKKzIuNTUuMAorCisKK0Zyb20gMmM2M2M2OWFmNDQ4ZmQ4NDIyMjY0 NWY1M2FhOThjZGZkNTRjNzEzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pa2xh cyBTY2huZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK0RhdGU6IFdlZCwgMTcgSnVuIDIw MjYgMjE6NDg6NDcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxMS8yM10genBjaW1vbjogQWxsb3cg c2V0dGluZyBvdXRwdXQgZm9ybWF0IGFuZCB1c2UgSlNPTiBMaW5lcworIGluIHN5c3RlbWQgdW5p dAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitJbnRyb2R1Y2Ugc2VwYXJh dGUgJy0tZm9ybWF0JyBvcHRpb24gdG8gc2V0IG91dHB1dCBmb3JtYXQuIFVzZSB0aGUgbmV3CitK U09OIExpbmVzIGZvcm1hdCBleHBsaWNpdGx5IGluIHRoZSBzeXN0ZW1kIHVuaXQuIFNpbmNlIEpT T04gTGluZXMKK2Zvcm1hdCBvbmx5IHVzZXMgcHJpbnRhYmxlIGNoYXJhY3RlcnMgdGhpcyByZW1v dmVzIHRoZSBuZWVkIGZvciBwYXNzaW5nCisnLWEnIHRvIHN5c3RlbWN0bCBzdGF0dXMuIEF0IHRo ZSBzYW1lIHRpbWUgSlNPTi1TRVEgaXMgbW9yZSBlYXNpbHkKK3BhcnNhYmxlIHVzaW5nICdqcSAt LXNlcScgc28ga2VlcCBpdCB0aGUgZGVmYXVsdCBmb3IgZWFzaWVyIHNjcmlwdGluZy4KKworUmV2 aWV3ZWQtYnk6IEphbiBIw7ZwcG5lciA8aG9lcHBuZXJAbGludXguaWJtLmNvbT4KK1NpZ25lZC1v ZmYtYnk6IE5pa2xhcyBTY2huZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK1NpZ25lZC1v ZmYtYnk6IEphbiBIw7ZwcG5lciA8aG9lcHBuZXJAbGludXguaWJtLmNvbT4KKy0tLQorIHN5c3Rl bWQvenBjaW1vbi5zZXJ2aWNlLmluIHwgIDIgKy0KKyB6cGNpbW9uL3pwY2ltb24uOCAgICAgICAg ICB8ICA4ICsrKysrKysKKyB6cGNpbW9uL3pwY2ltb24uYyAgICAgICAgICB8IDQzICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCisgenBjaW1vbi96cGNpbW9uX2NsaS5oICAg ICAgfCAgOSArKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3N5c3RlbWQvenBjaW1vbi5zZXJ2aWNlLmluIGIv c3lzdGVtZC96cGNpbW9uLnNlcnZpY2UuaW4KK2luZGV4IGNmMWVhMTIyLi45YmUwY2FhNCAxMDA2 NDQKKy0tLSBhL3N5c3RlbWQvenBjaW1vbi5zZXJ2aWNlLmluCisrKysgYi9zeXN0ZW1kL3pwY2lt b24uc2VydmljZS5pbgorQEAgLTEzLDcgKzEzLDcgQEAgRGVzY3JpcHRpb249TW9uaXRvciBoZWFs dGggb2YgZGlyZWN0bHkgYXR0YWNoZWQgUENJIE5JQyBvcHRpY2FsIG1vZHVsZXMKKyAKKyBbU2Vy dmljZV0KKyBUeXBlPWV4ZWMKKy1FeGVjU3RhcnQ9QHVzcnNiaW5fcGF0aEAvenBjaW1vbiAtLXNl bmQtcmVwb3J0IC0tbW9uaXRvciAtLWludGVydmFsIDg2NDAwCisrRXhlY1N0YXJ0PUB1c3JzYmlu X3BhdGhAL3pwY2ltb24gLS1zZW5kLXJlcG9ydCAtLW1vbml0b3IgLS1mb3JtYXQganNvbmwgLS1p bnRlcnZhbCA4NjQwMAorIEtpbGxNb2RlPWNvbnRyb2wtZ3JvdXAKKyAKKyBbSW5zdGFsbF0KK2Rp ZmYgLS1naXQgYS96cGNpbW9uL3pwY2ltb24uOCBiL3pwY2ltb24venBjaW1vbi44CitpbmRleCAz YzI3NGI0NS4uOWIxNmZhOTEgMTAwNjQ0CistLS0gYS96cGNpbW9uL3pwY2ltb24uOAorKysrIGIv enBjaW1vbi96cGNpbW9uLjgKK0BAIC04NCw2ICs4NCwxNCBAQCBvbiIuCisgLlBQCisgLlBQCisg LgorKy5TUyBPdXRwdXQgRm9ybWF0IE9wdGlvbnMKKysuT0QgZm9ybWF0ICIiIDxGT1JNQVQ+Cisr U2V0IHRoZSBvdXRwdXQgZm9ybWF0IG91dCBvZiBqc29uLCBqc29uLXNlcSwganNvbmwsIHBhaXJz LCBhbmQgY3N2LiBOb3RlIHRoYXQKKytvbmx5IGpzb24tc2VxIGFuZCBqc29ubCBzZXF1ZW5jZSBm b3JtYXRzIGFyZSBzdXBwb3J0ZWQgZm9yIG1vbml0b3JpbmcgbW9kZSBhcworK3RoZXkgaGFuZGxl IGEgY29udGludW91cyBzdHJlYW0gb2YgdXBkYXRlcyB3ZWxsLiBXaGlsZSB0aGV5IGFyZSBub3Qg c3VwcG9ydGVkCisraW4gcXVlcnkgbW9kZS4KKysuUFAKKysuCisgLlNTIEdlbmVyYWwgT3B0aW9u cworIC5PRCBoZWxwICJoIiAiIgorIFByaW50IHVzYWdlIGluZm9ybWF0aW9uLCB0aGVuIGV4aXQu CitkaWZmIC0tZ2l0IGEvenBjaW1vbi96cGNpbW9uLmMgYi96cGNpbW9uL3pwY2ltb24uYworaW5k ZXggN2RmODdlODEuLjk4YTI4NzFhIDEwMDY0NAorLS0tIGEvenBjaW1vbi96cGNpbW9uLmMKKysr KyBiL3pwY2ltb24venBjaW1vbi5jCitAQCAtNDAsNiArNDAsOCBAQCBzdHJ1Y3Qgb3B0aW9ucyB7 CisgCWJvb2wgcmVwb3J0OworIAlib29sIG1vZHVsZV9pbmZvOworIAlib29sIHF1aWV0OworKwll bnVtIHV0aWxfZm10X3QgZm9ybWF0OworKwlib29sIGV4cGxpY2l0X2Zvcm1hdDsKKyAKKyAJdWlu dDMyX3QgaW50ZXJ2YWxfc2Vjb25kczsKKyB9OworQEAgLTYzLDYgKzY1LDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB1dGlsX3ByZyBwcmcgPSB7CisgCisgc3RhdGljIHZvaWQgcGFyc2VfY21kbGlu ZShpbnQgYXJnYywgY2hhciAqYXJndltdLCBzdHJ1Y3Qgb3B0aW9ucyAqb3B0cykKKyB7CisrCWVu dW0gdXRpbF9mbXRfdCBmbXQ7CisgCXVpbnQzMl90IHNlY29uZHM7CisgCWludCBjbWQsIHJldDsK KyAKK0BAIC04NSw2ICs4OCwxMiBAQCBzdGF0aWMgdm9pZCBwYXJzZV9jbWRsaW5lKGludCBhcmdj LCBjaGFyICphcmd2W10sIHN0cnVjdCBvcHRpb25zICpvcHRzKQorIAkJY2FzZSBPUFRfRFVNUDoK KyAJCQlvcHRzLT5tb2R1bGVfaW5mbyA9IHRydWU7CisgCQkJYnJlYWs7CisrCQljYXNlIE9QVF9G T1JNQVQ6CisrCQkJaWYgKCF1dGlsX2ZtdF9uYW1lX3RvX3R5cGUob3B0YXJnLCAmZm10KSkKKysJ CQkJZXJyeChFWElUX0ZBSUxVUkUsICJVbmtub3duIGZvcm1hdCAlcyIsIG9wdGFyZyk7CisrCQkJ b3B0cy0+Zm9ybWF0ID0gZm10OworKwkJCW9wdHMtPmV4cGxpY2l0X2Zvcm1hdCA9IHRydWU7Cisr CQkJYnJlYWs7CisgCQljYXNlICdpJzoKKyAJCQlyZXQgPSBzc2NhbmYob3B0YXJnLCAiJXUiLCAm c2Vjb25kcyk7CisgCQkJaWYgKHJldCAhPSAxKSB7CitAQCAtMjI0LDcgKzIzMyw3IEBAIHN0YXRp YyB2b2lkIGR1bXBfYWxsX2FkYXB0ZXJfZGF0YShzdHJ1Y3Qgb3B0aWNzbW9uX2N0eCAqY3R4KQor IAorIHN0YXRpYyBpbnQgb25lc2hvdF9tb2RlKHN0cnVjdCBvcHRpY3Ntb25fY3R4ICpjdHgpCisg eworLQl1dGlsX2ZtdF9pbml0KHN0ZG91dCwgRk1UX0pTT04sIEZNVF9ERUZBVUxULCBBUElfTEVW RUwpOworKwl1dGlsX2ZtdF9pbml0KHN0ZG91dCwgY3R4LT5vcHRzLmZvcm1hdCwgRk1UX0RFRkFV TFQsIEFQSV9MRVZFTCk7CisgCWlmICghY3R4LT5vcHRzLnF1aWV0KQorIAkJdXRpbF9mbXRfb2Jq X3N0YXJ0KEZNVF9MSVNULCAiYWRhcHRlcnMiKTsKKyAJZHVtcF9hbGxfYWRhcHRlcl9kYXRhKGN0 eCk7CitAQCAtMzc1LDcgKzM4NCw3IEBAIHN0YXRpYyBpbnQgbW9uaXRvcl9tb2RlKHN0cnVjdCBv cHRpY3Ntb25fY3R4ICpjdHgpCisgCQlnb3RvIGNsb3NlX3RpbWVyZmQ7CisgCX0KKyAKKy0JdXRp bF9mbXRfaW5pdChzdGRvdXQsIEZNVF9KU09OU0VRLCBGTVRfREVGQVVMVCwgQVBJX0xFVkVMKTsK KysJdXRpbF9mbXRfaW5pdChzdGRvdXQsIGN0eC0+b3B0cy5mb3JtYXQsIEZNVF9ERUZBVUxULCBB UElfTEVWRUwpOworIAlyZXQgPSBsaW5rX21vbl9ubF93YWl0ZmRfY3JlYXRlKCZjdHgtPmxjdHgs IG9uX2xpbmtfY2hhbmdlLCBjdHgpOworIAlpZiAocmV0KSB7CisgCQlmcHJpbnRmKHN0ZGVyciwg IkZhaWxlZCB0byBjcmVhdGUgbGluayBtb25pdG9yaW5nIHNvY2tldFxuIik7CitAQCAtMzkzLDEy ICs0MDIsNDIgQEAgY2xvc2VfdGltZXJmZDoKKyAJcmV0dXJuIHJldDsKKyB9CisgCisrc3RhdGlj IGJvb2wgaXNfc3VwcG9ydGVkX2ZtdChlbnVtIHV0aWxfZm10X3QgZm10LCBib29sIG1vbml0b3Ip CisreworKwlzd2l0Y2ggKGZtdCkgeworKwljYXNlIEZNVF9KU09OOgorKwljYXNlIEZNVF9QQUlS UzoKKysJCXJldHVybiBtb25pdG9yID8gZmFsc2UgOiB0cnVlOworKwljYXNlIEZNVF9KU09OTDoK KysJY2FzZSBGTVRfSlNPTlNFUToKKysJCXJldHVybiBtb25pdG9yID8gdHJ1ZSA6IGZhbHNlOwor KwlkZWZhdWx0OgorKwkJcmV0dXJuIGZhbHNlOworKwl9CisrfQorKworK3N0YXRpYyBpbnQgc2V0 X2Zvcm1hdChzdHJ1Y3Qgb3B0aW9ucyAqb3B0cykKKyt7CisrCWlmICghb3B0cy0+ZXhwbGljaXRf Zm9ybWF0KQorKwkJb3B0cy0+Zm9ybWF0ID0gKG9wdHMtPm1vbml0b3IpID8gRk1UX0pTT05TRVEg OiBGTVRfSlNPTjsKKysKKysJaWYgKCFpc19zdXBwb3J0ZWRfZm10KG9wdHMtPmZvcm1hdCwgb3B0 cy0+bW9uaXRvcikpIHsKKysJCXdhcm54KCJGb3JtYXQgJXMgaXMgbm90IHN1cHBvcnRlZCBpbiAl cyBtb2RlIiwKKysJCSAgICAgIHV0aWxfZm10X3R5cGVfdG9fbmFtZShvcHRzLT5mb3JtYXQpLCAo b3B0cy0+bW9uaXRvcikgPyAibW9uaXRvciIgOiAicXVlcnkiKTsKKysJCXJldHVybiAtRUlOVkFM OworKwl9CisrCXJldHVybiAwOworK30KKysKKyBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCisgeworIAlzdHJ1Y3Qgb3B0aWNzbW9uX2N0eCBjdHggPSB7IC5vcHRzID0geyAuaW50ZXJ2 YWxfc2Vjb25kcyA9IDg2NDAwIH0gfTsKKyAJaW50IHJldDsKKyAKKyAJcGFyc2VfY21kbGluZShh cmdjLCBhcmd2LCAmY3R4Lm9wdHMpOworKwlyZXQgPSBzZXRfZm9ybWF0KCZjdHgub3B0cyk7Cisr CWlmIChyZXQpCisrCQlyZXR1cm4gcmV0OworIAlyZXQgPSBldGh0b29sX25sX2Nvbm5lY3QoJmN0 eC5ldGh0b29sX2N0eCk7CisgCWlmIChyZXQpCisgCQlyZXR1cm4gcmV0OworZGlmZiAtLWdpdCBh L3pwY2ltb24venBjaW1vbl9jbGkuaCBiL3pwY2ltb24venBjaW1vbl9jbGkuaAoraW5kZXggYzY5 ZjM0OWEuLmY1YTBkYzNlIDEwMDY0NAorLS0tIGEvenBjaW1vbi96cGNpbW9uX2NsaS5oCisrKysg Yi96cGNpbW9uL3pwY2ltb25fY2xpLmgKK0BAIC03LDkgKzcsMTEgQEAKKyAjaWZuZGVmIE9QVElD U01PTl9DTElfSAorICNkZWZpbmUgT1BUSUNTTU9OX0NMSV9ICisgCisrI2luY2x1ZGUgImxpYi91 dGlsX2ZtdC5oIgorICNpbmNsdWRlICJsaWIvdXRpbF9vcHQuaCIKKyAKKyAjZGVmaW5lIE9QVF9E VU1QIDEyOAorKyNkZWZpbmUgT1BUX0ZPUk1BVCAxMjkKKyAKKyBzdGF0aWMgc3RydWN0IHV0aWxf b3B0IG9wdF92ZWNbXSA9IHsKKyAJVVRJTF9PUFRfU0VDVElPTigiT1BFUkFUSU9OIE9QVElPTlMi KSwKK0BAIC00MSw2ICs0MywxMyBAQCBzdGF0aWMgc3RydWN0IHV0aWxfb3B0IG9wdF92ZWNbXSA9 IHsKKyAJCQkiaW4gdGhlIGFic2VuY2Ugb2YgbGluayBzdGF0ZSBjaGFuZ2VzLiBBIHZhbHVlIGxh cmdlciB0aGFuICIKKyAJCQkiMjQgaG91cnMgKDg2NDAwIHNlY29uZHMpIGlzIGNsYW1wZWQgZG93 biB0byAyNCBob3Vycy4iLAorIAl9LAorKwlVVElMX09QVF9TRUNUSU9OKCJPVVRQVVQgRk9STUFU IE9QVElPTlMiKSwKKysJeworKwkJLm9wdGlvbiA9IHsgImZvcm1hdCIsIHJlcXVpcmVkX2FyZ3Vt ZW50LCBOVUxMLCBPUFRfRk9STUFUIH0sCisrCQkuYXJndW1lbnQgPSAiRk9STUFUIiwKKysJCS5m bGFncyA9IFVUSUxfT1BUX0ZMQUdfTk9TSE9SVCwKKysJCS5kZXNjID0gIk91dHB1dCBmb3JtYXQg KCIgRk1UX1RZUEVfTkFNRVMgIikiLAorKwl9LAorIAlVVElMX09QVF9TRUNUSU9OKCJHRU5FUkFM IE9QVElPTlMiKSwKKyAJVVRJTF9PUFRfSEVMUCwKKyAJVVRJTF9PUFRfVkVSU0lPTiwKKy0tIAor Mi41NS4wCisKKworRnJvbSBmOWVmOGEwMTA2NjllNjUxZDczNmUyM2ExZGQ3NmUxMjQ0ODM2Nzdh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxs ZUBsaW51eC5pYm0uY29tPgorRGF0ZTogTW9uLCAxMyBBcHIgMjAyNiAxMzo1MjozNyArMDIwMAor U3ViamVjdDogW1BBVENIIDEyLzIzXSB1dGlsX3RpbWU6IHpwY2ltb246IFVzZSBhIGNvbnN0YW50 IGZvciBzZWNvbmRzIHBlciBkYXkKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK KworUmVwbGFjZSB0aGUgbWFnaWMgdmFsdWUgODY0MDAgd2l0aCBhIG5ldyB1dGlsX3RpbWUuaCBj b25zdGFudAorU0VDX1BFUl9EQVkuCisKK1Jldmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBw bmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOaWtsYXMgU2NobmVsbGUgPHNjaG5l bGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBwbmVy QGxpbnV4LmlibS5jb20+CistLS0KKyBpbmNsdWRlL2xpYi91dGlsX3RpbWUuaCB8IDIgKysKKyB6 cGNpbW9uL3pwY2ltb24uYyAgICAgICB8IDMgKystCisgMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGliL3V0aWxf dGltZS5oIGIvaW5jbHVkZS9saWIvdXRpbF90aW1lLmgKK2luZGV4IDQyYjk3NDFhLi4yMWUyZDc4 ZSAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvbGliL3V0aWxfdGltZS5oCisrKysgYi9pbmNsdWRlL2xp Yi91dGlsX3RpbWUuaAorQEAgLTE5LDYgKzE5LDggQEAKKyAKKyAjZGVmaW5lIE1TRUNfUEVSX1NF QwkxMDAwTAorIAorKyNkZWZpbmUgU0VDX1BFUl9EQVkJKDI0ICogNjAgKiA2MCkKKysKKyAvKioK KyAgKiBDb252ZXJ0IG5hbm9zZWNvbmRzIHRvIG1pY3Jvc2Vjb25kcworICAqCitkaWZmIC0tZ2l0 IGEvenBjaW1vbi96cGNpbW9uLmMgYi96cGNpbW9uL3pwY2ltb24uYworaW5kZXggOThhMjg3MWEu LjQwYjZlZGQ3IDEwMDY0NAorLS0tIGEvenBjaW1vbi96cGNpbW9uLmMKKysrKyBiL3pwY2ltb24v enBjaW1vbi5jCitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNsdWRlICJsaWIvdXRpbF9vcHQuaCIK KyAjaW5jbHVkZSAibGliL3V0aWxfZm10LmgiCisgI2luY2x1ZGUgImxpYi91dGlsX2xpYmMuaCIK KysjaW5jbHVkZSAibGliL3V0aWxfdGltZS5oIgorIAorICNpbmNsdWRlIDxvcGVuc3NsL2V2cC5o PgorIAorQEAgLTEwMiw3ICsxMDMsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9jbWRsaW5lKGludCBh cmdjLCBjaGFyICphcmd2W10sIHN0cnVjdCBvcHRpb25zICpvcHRzKQorIAkJCQkJb3B0YXJnKTsK KyAJCQkJZXhpdChFWElUX0ZBSUxVUkUpOworIAkJCX0KKy0JCQlpZiAoc2Vjb25kcyA8IDg2NDAw KQorKwkJCWlmIChzZWNvbmRzIDwgU0VDX1BFUl9EQVkpCisgCQkJCW9wdHMtPmludGVydmFsX3Nl Y29uZHMgPSBzZWNvbmRzOworIAkJCWlmIChzZWNvbmRzIDwgMSkKKyAJCQkJb3B0cy0+aW50ZXJ2 YWxfc2Vjb25kcyA9IDE7CistLSAKKzIuNTUuMAorCisKK0Zyb20gMTEzZTllYmZlZjY3MjUzZjRm YWVlNzk4ZDJmZTc4NWYxODJmOWVlYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5p a2xhcyBTY2huZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK0RhdGU6IFRodSwgOSBBcHIg MjAyNiAxNTozMjo0NyArMDIwMAorU3ViamVjdDogW1BBVENIIDEzLzIzXSB6cGNpbW9uOiBTcGxp dCBvcHRpY3MgbW9uaXRvcmluZyBvdXQgaW50byBzZXBhcmF0ZQorIG1vbml0b3IKK01JTUUtVmVy c2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworSW50cm9kdWNlIHRoZSBjb25jZXB0IG9mIGEg Z2VuZXJpYyB6UENJIGRldmljZSBtb25pdG9yIGJ5IGNyZWF0aW5nIHRoZQorenBjaW1vbl9vcHMg b3BlcmF0aW9ucyBzdHJ1Y3QgdHVybmluZyBhbGwgb3B0aWNzIHNwZWNpZmljIGNhbGxzIGludG8K K2Fic3RyYWN0IG1vbml0b3IgY2FsbHMuIEhhbmRsZSBtb25pdG9ycyBhcyBhIHN0YXRpYyBhcnJh eSBvZiB6cGNpbW9uX29wcworYmFzZWQgbW9uaXRvcnMgb2Ygd2hpY2ggdGhlIG5vdyBzcGxpdCBv dXQgb3B0aWNzIG1vbml0b3IgaXMgY3VycmVudGx5Cit0aGUgb25seSBvbmUuIEFsbCBvcGVyYXRp b25zIGFyZSBpbiBwcmluY2lwbGUgb3B0aW9uYWwgdGhvdWdoIGEgbW9uaXRvcgord2hpY2ggcHJv dmlkZXMgYW4gaW5pdCBvcGVyYXRpb24gbXVzdCBhbHNvIHByb3ZpZGUgdGhlIGNvcnJlc3BvbmRp bmcKK2Rlc3Ryb3kgb3BlcmF0aW9uLgorCitLZWVwIHRoZSBiYXNlNjQgYmFzZWQgSlNPTiBwYWly IGFzIG5vbiBvcHRpY3Mgc3BlY2lmaWMgZm9yIGxhdGVyIHJlLXVzZQorYW5kIG1ha2UgaXQganVz dCBza2lwIHRoZSBvdXRwdXQgaW4gdGhlIHZlcnkgdW5saWtlbHkgY2FzZSB0aGF0IGVuY29kaW5n CitmYWlscy4gSW4gZm9sbG93IG9uIGNvbW1pdHMgYSBtb25pdG9yIGZvciBOVk1lIGRldmljZXMg Y29sbGVjdGluZyBTTUFSVAorZGF0YSB3aWxsIGJlIGFkZGVkLgorCitSZXZpZXdlZC1ieTogSmFu IEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTogTmlrbGFz IFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEjD tnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorLS0tCisgenBjaW1vbi9NYWtlZmlsZSAg ICB8ICAgMiArLQorIHpwY2ltb24vb3B0aWNzbW9uLmMgfCAxNzcgKysrKysrKysrKysrKysrKysr KworIHpwY2ltb24vb3B0aWNzbW9uLmggfCAgMjAgKysrCisgenBjaW1vbi96cGNpbW9uLmMgICB8 IDQwNiArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHpwY2lt b24venBjaW1vbi5oICAgfCAgNTIgKysrKysrCisgNSBmaWxlcyBjaGFuZ2VkLCA0NTQgaW5zZXJ0 aW9ucygrKSwgMjAzIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB6cGNpbW9uL29w dGljc21vbi5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHpwY2ltb24vb3B0aWNzbW9uLmgKKyBjcmVh dGUgbW9kZSAxMDA2NDQgenBjaW1vbi96cGNpbW9uLmgKKworZGlmZiAtLWdpdCBhL3pwY2ltb24v TWFrZWZpbGUgYi96cGNpbW9uL01ha2VmaWxlCitpbmRleCA0M2ZjMmEwNC4uY2MwYThhZjAgMTAw NjQ0CistLS0gYS96cGNpbW9uL01ha2VmaWxlCisrKysgYi96cGNpbW9uL01ha2VmaWxlCitAQCAt NzMsNyArNzMsNyBAQCBCVUlMRFRBUkdFVCArPSB6cGNpbW9uCisgCisgYWxsOiAke0JVSUxEVEFS R0VUfQorIAorLXpwY2ltb246IHpwY2ltb24ubyBvcHRpY3NfaW5mby5vIG9wdGljc19zY2xwLm8g ZXRodG9vbC5vIGxpbmtfbW9uLm8gJChsaWJzKQorK3pwY2ltb246IHpwY2ltb24ubyBvcHRpY3Nt b24ubyBvcHRpY3NfaW5mby5vIG9wdGljc19zY2xwLm8gZXRodG9vbC5vIGxpbmtfbW9uLm8gJChs aWJzKQorIAorIGluc3RhbGw6IGFsbAorIAkkKElOU1RBTEwpIC1kIC1tIDc1NSAkKERFU1RESVIp JChCSU5ESVIpICQoREVTVERJUikkKE1BTkRJUikvbWFuOAorZGlmZiAtLWdpdCBhL3pwY2ltb24v b3B0aWNzbW9uLmMgYi96cGNpbW9uL29wdGljc21vbi5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAuLjRkYTQ1NmYxCistLS0gL2Rldi9udWxsCisrKysgYi96cGNpbW9uL29w dGljc21vbi5jCitAQCAtMCwwICsxLDE3NyBAQAorKy8qCisrICogenBjaW1vbiAtIFJlcG9ydCBt b25pdG9yaW5nIGRhdGEgdG8gZmlybXdhcmUKKysgKgorKyAqIENvcHlyaWdodCBJQk0gQ29ycC4g MjAyNAorKyAqCisrICogczM5MC10b29scyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBN SVQgbGljZW5zZS4gU2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCisrICovCisrI2luY2x1ZGUgPGVy cm5vLmg+CisrI2luY2x1ZGUgPGxpbnV4L2lmLmg+CisrI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKysj aW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHN0cmlu Zy5oPgorKworKyNpbmNsdWRlICJsaWIvcGNpX2xpc3QuaCIKKysjaW5jbHVkZSAibGliL3V0aWxf Zm10LmgiCisrI2luY2x1ZGUgImxpYi91dGlsX2xpYmMuaCIKKysKKysjaW5jbHVkZSAiZXRodG9v bC5oIgorKyNpbmNsdWRlICJsaW5rX21vbi5oIgorKyNpbmNsdWRlICJvcHRpY3NfaW5mby5oIgor KyNpbmNsdWRlICJvcHRpY3Nfc2NscC5oIgorKyNpbmNsdWRlICJvcHRpY3Ntb24uaCIKKysjaW5j bHVkZSAienBjaW1vbi5oIgorKworK3N0YXRpYyB2b2lkIG9wdGljc19qc29uX3ByaW50KHN0cnVj dCBvcHRpb25zICpvcHRzLCBzdHJ1Y3QgenBjaV9uZXRkZXYgKm5kLCBzdHJ1Y3Qgb3B0aWNzICpv aSkKKyt7CisrCXV0aWxfZm10X29ial9zdGFydChGTVRfREVGQVVMVCwgIm5ldGRldiIpOworKwl1 dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgIm5hbWUiLCBuZC0+bmFtZSk7CisrCXV0aWxfZm10X3Bh aXIoRk1UX1FVT1RFLCAib3BlcnN0YXRlIiwgenBjaV9vcGVyc3RhdGVfc3RyKG5kLT5vcGVyc3Rh dGUpKTsKKysJdXRpbF9mbXRfb2JqX3N0YXJ0KEZNVF9ERUZBVUxULCAib3B0aWNzIik7CisrCXV0 aWxfZm10X3BhaXIoRk1UX1FVT1RFLCAidHlwZSIsIG9wdGljc190eXBlX3N0cihvcHRpY3NfdHlw ZShvaSkpKTsKKysJdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUsICJyeF9sb3MiLCBvcHRpY3NfbG9z X3N0cihvcHRpY3NfcnhfbG9zKG9pKSkpOworKwl1dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgInR4 X2xvcyIsIG9wdGljc19sb3Nfc3RyKG9wdGljc190eF9sb3Mob2kpKSk7CisrCXV0aWxfZm10X3Bh aXIoRk1UX1FVT1RFLCAidHhfZmF1bHQiLCBvcHRpY3NfbG9zX3N0cihvcHRpY3NfdHhfZmF1bHQo b2kpKSk7CisrCWlmIChvcHRzLT5tb2R1bGVfaW5mbykKKysJCXpwY2ltb25fanNvbl9iYXNlNjRf cGFpcigibW9kdWxlX2luZm8iLCBvaS0+cmF3LCAoaW50KW9pLT5zaXplKTsKKysJdXRpbF9mbXRf b2JqX2VuZCgpOworKwl1dGlsX2ZtdF9vYmpfZW5kKCk7CisrfQorKworK3N0YXRpYyBpbnQgb3B0 aWNzbW9uX2NvbGxlY3RfYWRhcHRlcl9kYXRhKHN0cnVjdCB6cGNpbW9uX2N0eCAqY3R4LCBzdHJ1 Y3QgenBjaV9kZXYgKnpkZXYpCisreworKwlzdHJ1Y3Qgb3B0aW9ucyAqb3B0cyA9ICZjdHgtPm9w dHM7CisrCXN0cnVjdCBvcHRpY3MgKipvaXM7CisrCWludCBudW1fb2lzID0gMDsKKysJY2hhciAq cGNpX2FkZHI7CisrCWludCBpLCByYzsKKysKKysJLyogRmlsdGVyIG5vbi1OSUMgZGV2aWNlcyBh bmQgVkZzICovCisrCWlmICh6cGNpX2lzX3ZmKHpkZXYpIHx8ICF6ZGV2LT5udW1fbmV0ZGV2cykK KysJCXJldHVybiAtRU5PREVWOworKwlvaXMgPSAoc3RydWN0IG9wdGljcyAqKil1dGlsX3phbGxv YyhzaXplb2Yob2lzWzBdKSAqIHpkZXYtPm51bV9uZXRkZXZzKTsKKysJZm9yIChpID0gMDsgaSA8 IHpkZXYtPm51bV9uZXRkZXZzOyBpKyspIHsKKysJCXJjID0gZXRodG9vbF9ubF9nZXRfb3B0aWNz KCZjdHgtPm9wdGljc21vbl9jdHguZXRodG9vbF9jdHgsIHpkZXYtPm5ldGRldnNbaV0ubmFtZSwK KysJCQkJCSAgICZvaXNbaV0pOworKwkJaWYgKHJjKQorKwkJCWdvdG8gZnJlZV9vaXM7CisrCQlu dW1fb2lzKys7CisrCX0KKysJaWYgKCFvcHRzLT5xdWlldCkgeworKwkJdXRpbF9mbXRfb2JqX3N0 YXJ0KEZNVF9ERUZBVUxULCAiYWRhcHRlciIpOworKwkJdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUs ICJwZnQiLCB6cGNpX3BmdF9zdHIoemRldikpOworKwkJdXRpbF9mbXRfb2JqX3N0YXJ0KEZNVF9E RUZBVUxULCAiaWRzIik7CisrCQl1dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgImZpZCIsICIweCUw eCIsIHpkZXYtPmZpZCk7CisrCQlpZiAoemRldi0+dWlkX2lzX3VuaXF1ZSkKKysJCQl1dGlsX2Zt dF9wYWlyKEZNVF9RVU9URSwgInVpZCIsICIweCUweCIsIHpkZXYtPnVpZCk7CisrCQlwY2lfYWRk ciA9IHpwY2lfcGNpX2FkZHIoemRldik7CisrCQl1dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgInBj aV9hZGRyZXNzIiwgcGNpX2FkZHIpOworKwkJZnJlZShwY2lfYWRkcik7CisrCQl1dGlsX2ZtdF9v YmpfZW5kKCk7CisrCQl1dGlsX2ZtdF9vYmpfc3RhcnQoRk1UX0xJU1QsICJuZXRkZXZzIik7Cisr CQlmb3IgKGkgPSAwOyBpIDwgemRldi0+bnVtX25ldGRldnM7IGkrKykKKysJCQlvcHRpY3NfanNv bl9wcmludChvcHRzLCAmemRldi0+bmV0ZGV2c1tpXSwgb2lzW2ldKTsKKysJCXV0aWxfZm10X29i al9lbmQoKTsgLyogbmV0ZGV2cyBsaXN0ICovCisrCQl1dGlsX2ZtdF9vYmpfZW5kKCk7IC8qIGFk YXB0ZXIgKi8KKysJCWZmbHVzaChzdGRvdXQpOworKwl9CisrCWlmIChvcHRzLT5yZXBvcnQpIHsK KysJCWZvciAoaSA9IDA7IGkgPCB6ZGV2LT5udW1fbmV0ZGV2czsgaSsrKSB7CisrCQkJcmMgPSBz Y2xwX2lzc3VlX29wdGljc19yZXBvcnQoemRldiwgb2lzW2ldKTsKKysJCQlpZiAocmMgPT0gLUVO T1RTVVApIHsKKysJCQkJZnByaW50ZihzdGRlcnIsICJTa2lwcGluZyAlcyB3aGljaCBkb2VzIG5v dCBzdXBwb3J0IHJlcG9ydGluZ1xuIiwKKysJCQkJCXpkZXYtPm5ldGRldnNbaV0ubmFtZSk7Cisr CQkJfSBlbHNlIGlmIChyYyA8IDApIHsKKysJCQkJZnByaW50ZihzdGRlcnIsICJFcnJvciBpc3N1 aW5nIFNDTFAgZm9yIG9wdGljcyBkYXRhIGZhaWxlZDogJXNcbiIsCisrCQkJCQlzdHJlcnJvcigt cmMpKTsKKysJCQl9CisrCQl9CisrCX0KKytmcmVlX29pczoKKysJZm9yIChpID0gMDsgaSA8IG51 bV9vaXM7IGkrKykKKysJCW9wdGljc19mcmVlKG9pc1tpXSk7CisrCWZyZWUoKHZvaWQgKilvaXMp OworKwlyZXR1cm4gcmM7CisrfQorKworK3N0YXRpYyB2b2lkIG9uX2xpbmtfY2hhbmdlKHN0cnVj dCB6cGNpX25ldGRldiAqY2hhbmdlX25ldGRldiwgdm9pZCAqYXJnKQorK3sKKysJc3RydWN0IHpw Y2ltb25fY3R4ICpjdHggPSBhcmc7CisrCXN0cnVjdCB6cGNpX2RldiAqemRldiA9IE5VTEw7Cisr CXN0cnVjdCB6cGNpX25ldGRldiAqbmV0ZGV2OworKwlpbnQgcmVsb2FkcyA9IDE7CisrCisrCWRv IHsKKysJCWlmIChjdHgtPnpwY2lfbGlzdCkgeworKwkJCXpkZXYgPSB6cGNpX2ZpbmRfYnlfbmV0 ZGV2KGN0eC0+enBjaV9saXN0LCBjaGFuZ2VfbmV0ZGV2LT5uYW1lLAorKwkJCQkJCSAgICZuZXRk ZXYpOworKwkJCWlmICh6ZGV2KSB7CisrCQkJCS8qIFNraXAgZGF0YSBjb2xsZWN0aW9uIGlmIG9w ZXJhdGlvbmFsIHN0YXRlIGlzCisrCQkJCSAqIHVuY2hhbmdlZAorKwkJCQkgKi8KKysJCQkJaWYg KG5ldGRldi0+b3BlcnN0YXRlID09IGNoYW5nZV9uZXRkZXYtPm9wZXJzdGF0ZSkKKysJCQkJCXJl dHVybjsKKysJCQkJLyogVXBkYXRlIG9wZXJhdGlvbiBzdGF0ZSBmb3IgVkZzIGV2ZW4gdGhvdWdo CisrCQkJCSAqIHRoZXkgYXJlIHNraXBwZWQganVzdCBmb3IgYSBjb25zaXN0ZW50IHZpZXcKKysJ CQkJICovCisrCQkJCW5ldGRldi0+b3BlcnN0YXRlID0gY2hhbmdlX25ldGRldi0+b3BlcnN0YXRl OworKwkJCQkvKiBPbmx5IGNvbGxlY3Qgb3B0aWNzIGRhdGEgZm9yIFBGcyAqLworKwkJCQlpZiAo IXpwY2lfaXNfdmYoemRldikpCisrCQkJCQlvcHRpY3Ntb25fY29sbGVjdF9hZGFwdGVyX2RhdGEo Y3R4LCB6ZGV2KTsKKysJCQkJcmV0dXJuOworKwkJCX0KKysJCX0KKysJCS8qIENvdWxkIGJlIHVu aW5pdGFsaXplZCBsaXN0IG9yIGEgbmV3IGRldmljZSwgcmV0cnkgYWZ0ZXIgcmVsb2FkICAqLwor KwkJenBjaV9saXN0X3JlbG9hZCgmY3R4LT56cGNpX2xpc3QpOworKwkJcmVsb2Fkcy0tOworKwl9 IHdoaWxlIChyZWxvYWRzID4gMCk7CisrfQorKworK3N0YXRpYyBpbnQgb3B0aWNzbW9uX29wZW5f bW9uaXRvcihzdHJ1Y3QgenBjaW1vbl9jdHggKmN0eCkKKyt7CisrCWludCByZXQ7CisrCisrCXJl dCA9IGxpbmtfbW9uX25sX3dhaXRmZF9jcmVhdGUoJmN0eC0+b3B0aWNzbW9uX2N0eC5sY3R4LCBv bl9saW5rX2NoYW5nZSwgY3R4KTsKKysJaWYgKHJldCkgeworKwkJZnByaW50ZihzdGRlcnIsICJG YWlsZWQgdG8gY3JlYXRlIGxpbmsgbW9uaXRvcmluZyBzb2NrZXRcbiIpOworKwkJcmV0ID0gLUVJ TzsKKysJfQorKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IG9wdGljc21vbl9nZXRf bW9uaXRvcl9mZChzdHJ1Y3QgenBjaW1vbl9jdHggKmN0eCkKKyt7CisrCXJldHVybiBsaW5rX21v bl9ubF93YWl0ZmRfZ2V0ZmQoJmN0eC0+b3B0aWNzbW9uX2N0eC5sY3R4KTsKKyt9CisrCisrc3Rh dGljIHZvaWQgb3B0aWNzbW9uX21vbml0b3JfZmRfaGFuZGxlKHN0cnVjdCB6cGNpbW9uX2N0eCAq Y3R4KQorK3sKKysJbGlua19tb25fbmxfd2FpdGZkX3JlYWQoJmN0eC0+b3B0aWNzbW9uX2N0eC5s Y3R4KTsKKyt9CisrCisrc3RhdGljIHZvaWQgb3B0aWNzbW9uX2Nsb3NlX21vbml0b3Ioc3RydWN0 IHpwY2ltb25fY3R4ICpjdHgpCisreworKwlsaW5rX21vbl9ubF93YWl0ZmRfZGVzdHJveSgmY3R4 LT5vcHRpY3Ntb25fY3R4LmxjdHgpOworK30KKysKKytzdGF0aWMgaW50IG9wdGljc21vbl9pbml0 KHN0cnVjdCB6cGNpbW9uX2N0eCAqY3R4KQorK3sKKysJcmV0dXJuIGV0aHRvb2xfbmxfY29ubmVj dCgmY3R4LT5vcHRpY3Ntb25fY3R4LmV0aHRvb2xfY3R4KTsKKyt9CisrCisrc3RhdGljIHZvaWQg b3B0aWNzbW9uX2Rlc3Ryb3koc3RydWN0IHpwY2ltb25fY3R4ICpjdHgpCisreworKwlldGh0b29s X25sX2Nsb3NlKCZjdHgtPm9wdGljc21vbl9jdHguZXRodG9vbF9jdHgpOworK30KKysKKytjb25z dCBzdHJ1Y3QgenBjaW1vbl9vcHMgb3B0aWNzbW9uX29wcyA9IHsKKysJLmNvbGxlY3RfYWRhcHRl cl9kYXRhID0gb3B0aWNzbW9uX2NvbGxlY3RfYWRhcHRlcl9kYXRhLAorKwkub3Blbl9tb25pdG9y ID0gb3B0aWNzbW9uX29wZW5fbW9uaXRvciwKKysJLmdldF9tb25pdG9yX2ZkID0gb3B0aWNzbW9u X2dldF9tb25pdG9yX2ZkLAorKwkubW9uaXRvcl9mZF9oYW5kbGUgPSBvcHRpY3Ntb25fbW9uaXRv cl9mZF9oYW5kbGUsCisrCS5jbG9zZV9tb25pdG9yID0gb3B0aWNzbW9uX2Nsb3NlX21vbml0b3Is CisrCS5pbml0ID0gb3B0aWNzbW9uX2luaXQsCisrCS5kZXN0cm95ID0gb3B0aWNzbW9uX2Rlc3Ry b3ksCisrfTsKK2RpZmYgLS1naXQgYS96cGNpbW9uL29wdGljc21vbi5oIGIvenBjaW1vbi9vcHRp Y3Ntb24uaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4wNDc5ODIwMQor LS0tIC9kZXYvbnVsbAorKysrIGIvenBjaW1vbi9vcHRpY3Ntb24uaAorQEAgLTAsMCArMSwyMCBA QAorKy8qCisrICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDI1CisrICoKKysgKiBzMzkwLXRvb2xz IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KysgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBm b3IgZGV0YWlscy4KKysgKi8KKysjaWZuZGVmIFpQQ0lNT05fT1BUSUNTTU9OX0gKKysjZGVmaW5l IFpQQ0lNT05fT1BUSUNTTU9OX0gKKysjaW5jbHVkZSAiZXRodG9vbC5oIgorKyNpbmNsdWRlICJs aW5rX21vbi5oIgorKworK3N0cnVjdCBvcHRpb25zOworKworK3N0cnVjdCBvcHRpY3Ntb25fY3R4 IHsKKysJc3RydWN0IGV0aHRvb2xfbmxfY3R4IGV0aHRvb2xfY3R4OworKwlzdHJ1Y3QgbGlua19t b25fbmxfY3R4IGxjdHg7CisrfTsKKysKKytleHRlcm4gY29uc3Qgc3RydWN0IHpwY2ltb25fb3Bz IG9wdGljc21vbl9vcHM7CisrI2VuZGlmIC8qIFpQQ0lNT05fT1BUSUNTTU9OX0ggKi8KK2RpZmYg LS1naXQgYS96cGNpbW9uL3pwY2ltb24uYyBiL3pwY2ltb24venBjaW1vbi5jCitpbmRleCA0MGI2 ZWRkNy4uMzI1NTBmZjAgMTAwNjQ0CistLS0gYS96cGNpbW9uL3pwY2ltb24uYworKysrIGIvenBj aW1vbi96cGNpbW9uLmMKK0BAIC0xLDU3ICsxLDQ3IEBACisgLyoKKy0gKiBvcHRpY3Ntb24gLSBS ZXBvcnQgb3B0aWNzIG1vbml0b3JpbmcgZGF0YSB0byBmaXJtd2FyZQorKyAqIHpwY2ltb24gLSBS ZXBvcnQgbW9uaXRvcmluZyBkYXRhIHRvIGZpcm13YXJlCisgICoKKyAgKiBDb3B5cmlnaHQgSUJN IENvcnAuIDIwMjQKKyAgKgorICAqIHMzOTAtdG9vbHMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgTUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorICAqLworKyNpbmNs dWRlIDxlcnJuby5oPgorKyNpbmNsdWRlIDxzaWduYWwuaD4KKysjaW5jbHVkZSA8c3RkYm9vbC5o PgorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAjaW5jbHVkZSA8 c3RkbGliLmg+CistI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKy0jaW5jbHVkZSA8ZXJybm8uaD4KKyAK KysjaW5jbHVkZSA8bGludXgvaWYuaD4KKyAjaW5jbHVkZSA8c3lzL2Vwb2xsLmg+CisgI2luY2x1 ZGUgPHN5cy9zaWduYWxmZC5oPgorLSNpbmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3lz L3RpbWVyZmQuaD4KKy0jaW5jbHVkZSA8dGltZS5oPgorLSNpbmNsdWRlIDxsaW51eC9pZi5oPgor IAorLSNpbmNsdWRlICJsaWIvdXRpbF9saXN0LmgiCisrI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+ CisrCisgI2luY2x1ZGUgImxpYi9wY2lfbGlzdC5oIgorLSNpbmNsdWRlICJsaWIvdXRpbF9wcmcu aCIKKy0jaW5jbHVkZSAibGliL3V0aWxfb3B0LmgiCisgI2luY2x1ZGUgImxpYi91dGlsX2ZtdC5o IgorICNpbmNsdWRlICJsaWIvdXRpbF9saWJjLmgiCisrI2luY2x1ZGUgImxpYi91dGlsX29wdC5o IgorKyNpbmNsdWRlICJsaWIvdXRpbF9wcmcuaCIKKyAjaW5jbHVkZSAibGliL3V0aWxfdGltZS5o IgorKyNpbmNsdWRlICJsaWIvenRfY29tbW9uLmgiCisgCistI2luY2x1ZGUgPG9wZW5zc2wvZXZw Lmg+CistCistI2luY2x1ZGUgImV0aHRvb2wuaCIKKy0jaW5jbHVkZSAibGlua19tb24uaCIKKy0j aW5jbHVkZSAib3B0aWNzX2luZm8uaCIKKy0jaW5jbHVkZSAib3B0aWNzX3NjbHAuaCIKKysjaW5j bHVkZSAib3B0aWNzbW9uLmgiCisrI2luY2x1ZGUgInpwY2ltb24uaCIKKyAjaW5jbHVkZSAienBj aW1vbl9jbGkuaCIKKyAKKyAjZGVmaW5lIEFQSV9MRVZFTCAxCisgCistc3RydWN0IG9wdGlvbnMg eworLQlib29sIG1vbml0b3I7CistCWJvb2wgcmVwb3J0OworLQlib29sIG1vZHVsZV9pbmZvOwor LQlib29sIHF1aWV0OworLQllbnVtIHV0aWxfZm10X3QgZm9ybWF0OworLQlib29sIGV4cGxpY2l0 X2Zvcm1hdDsKKy0KKy0JdWludDMyX3QgaW50ZXJ2YWxfc2Vjb25kczsKKytzdHJ1Y3QgenBjaW1v bl9tb25pdG9yIHsKKysJY29uc3Qgc3RydWN0IHpwY2ltb25fb3BzICpvcHM7CisrCXVpbnQzMl90 IGluaXRpYWxpemVkIDogMTsKKysJdWludDMyX3Qgb3BlbmVkIDogMTsKKyB9OworIAorLXN0cnVj dCBvcHRpY3Ntb25fY3R4IHsKKy0Jc3RydWN0IG9wdGlvbnMgb3B0czsKKy0Jc3RydWN0IGV0aHRv b2xfbmxfY3R4IGV0aHRvb2xfY3R4OworLQlzdHJ1Y3QgbGlua19tb25fbmxfY3R4IGxjdHg7Cist CXN0cnVjdCB1dGlsX2xpc3QgKnpwY2lfbGlzdDsKKytzdGF0aWMgc3RydWN0IHpwY2ltb25fbW9u aXRvciBtb25pdG9yc1tdID0geworKwl7Lm9wcyA9ICZvcHRpY3Ntb25fb3BzLCAuaW5pdGlhbGl6 ZWQgPSAwLCAub3BlbmVkID0gMH0sCisgfTsKKyAKKyBzdGF0aWMgY29uc3Qgc3RydWN0IHV0aWxf cHJnIHByZyA9IHsKK0BAIC0xMjIsMTcxICsxMTIsMTMxIEBAIHN0YXRpYyB2b2lkIHBhcnNlX2Nt ZGxpbmUoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgc3RydWN0IG9wdGlvbnMgKm9wdHMpCisgCX0g d2hpbGUgKGNtZCAhPSAtMSk7CisgfQorIAorLXN0YXRpYyBpbnQgbW9kdWxlX2luZm9fcGFpcihz dHJ1Y3Qgb3B0aWNzICpvaSkKKyt2b2lkIHpwY2ltb25fanNvbl9iYXNlNjRfcGFpcihjaGFyICpu YW1lLCB1aW50OF90ICpidWYsIGludCBsZW4pCisgeworLQlzaXplX3QgYjY0X2NhbGNsZW4sIGI2 NGxlbjsKKy0JaW50IHJjID0gRVhJVF9TVUNDRVNTOworKwlpbnQgYjY0X2NhbGNsZW4sIGI2NGxl bjsKKyAJY2hhciAqYjY0OworIAorLQliNjRfY2FsY2xlbiA9IChvaS0+c2l6ZSAvIDMpICogNDsK Ky0JaWYgKG9pLT5zaXplICUgMyA+IDApCisrCWI2NF9jYWxjbGVuID0gKGxlbiAvIDMpICogNDsK KysJaWYgKGxlbiAlIDMgPiAwKQorIAkJYjY0X2NhbGNsZW4gKz0gNDsKKyAKKyAJYjY0ID0gdXRp bF96YWxsb2MoYjY0X2NhbGNsZW4gKyAxKTsgLyogYWRkcyBOVUwgYnl0ZSAqLworLQliNjRsZW4g PSBFVlBfRW5jb2RlQmxvY2soKHVuc2lnbmVkIGNoYXIgKiliNjQsIG9pLT5yYXcsIG9pLT5zaXpl KTsKKysJYjY0bGVuID0gRVZQX0VuY29kZUJsb2NrKCh1bnNpZ25lZCBjaGFyICopYjY0LCAodW5z aWduZWQgY2hhciAqKWJ1ZiwgbGVuKTsKKyAJaWYgKGI2NGxlbiAhPSBiNjRfY2FsY2xlbikgewor LQkJZnByaW50ZihzdGRlcnIsICJlbmNvZGluZyBiYXNlNjQgdmlhIG9wZW5zc2wgZmFpbGVkXG4i KTsKKy0JCXJjID0gRVhJVF9GQUlMVVJFOworKwkJd2FybngoImVuY29kaW5nIGJhc2U2NCB2aWEg b3BlbnNzbCBmYWlsZWRcbiIpOworIAkJZ290byBvdXQ7CisgCX0KKy0JdXRpbF9mbXRfcGFpcihG TVRfUVVPVEUsICJtb2R1bGVfaW5mbyIsIGI2NCk7CisrCXV0aWxfZm10X3BhaXIoRk1UX1FVT1RF LCBuYW1lLCBiNjQpOworIG91dDoKKyAJZnJlZShiNjQpOworLQlyZXR1cm4gcmM7CistfQorLQor LXN0YXRpYyB2b2lkIG9wdGljc19qc29uX3ByaW50KHN0cnVjdCBvcHRpY3Ntb25fY3R4ICpjdHgs IHN0cnVjdCB6cGNpX25ldGRldiAqbmQsIHN0cnVjdCBvcHRpY3MgKm9pKQorLXsKKy0JdXRpbF9m bXRfb2JqX3N0YXJ0KEZNVF9ERUZBVUxULCAibmV0ZGV2Iik7CistCXV0aWxfZm10X3BhaXIoRk1U X1FVT1RFLCAibmFtZSIsIG5kLT5uYW1lKTsKKy0JdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUsICJv cGVyc3RhdGUiLCB6cGNpX29wZXJzdGF0ZV9zdHIobmQtPm9wZXJzdGF0ZSkpOworLQl1dGlsX2Zt dF9vYmpfc3RhcnQoRk1UX0RFRkFVTFQsICJvcHRpY3MiKTsKKy0JdXRpbF9mbXRfcGFpcihGTVRf UVVPVEUsICJ0eXBlIiwgb3B0aWNzX3R5cGVfc3RyKG9wdGljc190eXBlKG9pKSkpOworLQl1dGls X2ZtdF9wYWlyKEZNVF9RVU9URSwgInJ4X2xvcyIsIG9wdGljc19sb3Nfc3RyKG9wdGljc19yeF9s b3Mob2kpKSk7CistCXV0aWxfZm10X3BhaXIoRk1UX1FVT1RFLCAidHhfbG9zIiwgb3B0aWNzX2xv c19zdHIob3B0aWNzX3R4X2xvcyhvaSkpKTsKKy0JdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUsICJ0 eF9mYXVsdCIsIG9wdGljc19sb3Nfc3RyKG9wdGljc190eF9mYXVsdChvaSkpKTsKKy0JaWYgKGN0 eC0+b3B0cy5tb2R1bGVfaW5mbykKKy0JCW1vZHVsZV9pbmZvX3BhaXIob2kpOworLQl1dGlsX2Zt dF9vYmpfZW5kKCk7CistCXV0aWxfZm10X29ial9lbmQoKTsKKy19CistCistc3RhdGljIGludCBk dW1wX2FkYXB0ZXJfZGF0YShzdHJ1Y3Qgb3B0aWNzbW9uX2N0eCAqY3R4LCBzdHJ1Y3QgenBjaV9k ZXYgKnpkZXYpCisteworLQlzdHJ1Y3Qgb3B0aWNzICoqb2lzOworLQlpbnQgbnVtX29pcyA9IDA7 CistCWNoYXIgKnBjaV9hZGRyOworLQlpbnQgaSwgcmM7CistCistCW9pcyA9IHV0aWxfemFsbG9j KHNpemVvZihvaXNbMF0pICogemRldi0+bnVtX25ldGRldnMpOworLQlmb3IgKGkgPSAwOyBpIDwg emRldi0+bnVtX25ldGRldnM7IGkrKykgeworLQkJcmMgPSBldGh0b29sX25sX2dldF9vcHRpY3Mo JmN0eC0+ZXRodG9vbF9jdHgsIHpkZXYtPm5ldGRldnNbaV0ubmFtZSwgJm9pc1tpXSk7CistCQlp ZiAocmMpCistCQkJZ290byBmcmVlX29pczsKKy0JCW51bV9vaXMrKzsKKy0JfQorLQlpZiAoIWN0 eC0+b3B0cy5xdWlldCkgeworLQkJdXRpbF9mbXRfb2JqX3N0YXJ0KEZNVF9ERUZBVUxULCAiYWRh cHRlciIpOworLQkJdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUsICJwZnQiLCB6cGNpX3BmdF9zdHIo emRldikpOworLQkJdXRpbF9mbXRfb2JqX3N0YXJ0KEZNVF9ERUZBVUxULCAiaWRzIik7CistCQl1 dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgImZpZCIsICIweCUweCIsIHpkZXYtPmZpZCk7CistCQlp ZiAoemRldi0+dWlkX2lzX3VuaXF1ZSkKKy0JCQl1dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgInVp ZCIsICIweCUweCIsIHpkZXYtPnVpZCk7CistCQlwY2lfYWRkciA9IHpwY2lfcGNpX2FkZHIoemRl dik7CistCQl1dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgInBjaV9hZGRyZXNzIiwgcGNpX2FkZHIp OworLQkJZnJlZShwY2lfYWRkcik7CistCQl1dGlsX2ZtdF9vYmpfZW5kKCk7CistCQl1dGlsX2Zt dF9vYmpfc3RhcnQoRk1UX0xJU1QsICJuZXRkZXZzIik7CistCQlmb3IgKGkgPSAwOyBpIDwgemRl di0+bnVtX25ldGRldnM7IGkrKykKKy0JCQlvcHRpY3NfanNvbl9wcmludChjdHgsICZ6ZGV2LT5u ZXRkZXZzW2ldLCBvaXNbaV0pOworLQkJdXRpbF9mbXRfb2JqX2VuZCgpOyAvKiBuZXRkZXZzIGxp c3QgKi8KKy0JCXV0aWxfZm10X29ial9lbmQoKTsgLyogYWRhcHRlciAqLworLQkJZmZsdXNoKHN0 ZG91dCk7CistCX0KKy0JaWYgKGN0eC0+b3B0cy5yZXBvcnQpIHsKKy0JCWZvciAoaSA9IDA7IGkg PCB6ZGV2LT5udW1fbmV0ZGV2czsgaSsrKSB7CistCQkJcmMgPSBzY2xwX2lzc3VlX29wdGljc19y ZXBvcnQoemRldiwgb2lzW2ldKTsKKy0JCQlpZiAocmMgPT0gLUVOT1RTVVApIHsKKy0JCQkJZnBy aW50ZihzdGRlcnIsICJTa2lwcGluZyAlcyB3aGljaCBkb2VzIG5vdCBzdXBwb3J0IHJlcG9ydGlu Z1xuIiwKKy0JCQkJCXpkZXYtPm5ldGRldnNbaV0ubmFtZSk7CistCQkJfSBlbHNlIGlmIChyYyA8 IDApIHsKKy0JCQkJZnByaW50ZihzdGRlcnIsICJFcnJvciBpc3N1aW5nIFNDTFAgZm9yIG9wdGlj cyBkYXRhIGZhaWxlZDogJXNcbiIsCistCQkJCQlzdHJlcnJvcigtcmMpKTsKKy0JCQl9CistCQl9 CistCX0KKy1mcmVlX29pczoKKy0JZm9yIChpID0gMDsgaSA8IG51bV9vaXM7IGkrKykKKy0JCW9w dGljc19mcmVlKG9pc1tpXSk7CistCWZyZWUob2lzKTsKKy0JcmV0dXJuIHJjOworIH0KKyAKKy1z dGF0aWMgdm9pZCB6cGNpX2xpc3RfcmVsb2FkKHN0cnVjdCB1dGlsX2xpc3QgKip6cGNpX2xpc3Qp Cisrdm9pZCB6cGNpX2xpc3RfcmVsb2FkKHN0cnVjdCB1dGlsX2xpc3QgKip6cGNpX2xpc3QpCisg eworIAlpZiAoKnpwY2lfbGlzdCkKKyAJCXpwY2lfZnJlZV9kZXZfbGlzdCgqenBjaV9saXN0KTsK KyAJKnpwY2lfbGlzdCA9IHpwY2lfZGV2X2xpc3QoKTsKKyB9CisgCistc3RhdGljIHZvaWQgZHVt cF9hbGxfYWRhcHRlcl9kYXRhKHN0cnVjdCBvcHRpY3Ntb25fY3R4ICpjdHgpCisrc3RhdGljIHZv aWQgY29sbGVjdF9hbGxfYWRhcHRlcl9kYXRhKHN0cnVjdCB6cGNpbW9uX2N0eCAqY3R4KQorIHsK KyAJc3RydWN0IHpwY2lfZGV2ICp6ZGV2OworKwlpbnQgaTsKKyAKKyAJenBjaV9saXN0X3JlbG9h ZCgmY3R4LT56cGNpX2xpc3QpOworIAl1dGlsX2xpc3RfaXRlcmF0ZShjdHgtPnpwY2lfbGlzdCwg emRldikgeworLQkJLyogRmlsdGVyIG5vbi1OSUMgZGV2aWNlcyBhbmQgVkZzICovCistCQlpZiAo enBjaV9pc192Zih6ZGV2KSB8fCAhemRldi0+bnVtX25ldGRldnMpCistCQkJY29udGludWU7Cist CQlkdW1wX2FkYXB0ZXJfZGF0YShjdHgsIHpkZXYpOworKwkJZm9yIChpID0gMDsgaSA8IChpbnQp QVJSQVlfU0laRShtb25pdG9ycyk7IGkrKykKKysJCQlpZiAobW9uaXRvcnNbaV0ub3BzLT5jb2xs ZWN0X2FkYXB0ZXJfZGF0YSkKKysJCQkJbW9uaXRvcnNbaV0ub3BzLT5jb2xsZWN0X2FkYXB0ZXJf ZGF0YShjdHgsIHpkZXYpOworIAl9CisgfQorIAorLXN0YXRpYyBpbnQgb25lc2hvdF9tb2RlKHN0 cnVjdCBvcHRpY3Ntb25fY3R4ICpjdHgpCisrI2RlZmluZSBNQVhfRVZFTlRTIDgKKysKKytzdGF0 aWMgaW50IG1vbml0b3JfZXBvbGxfbW9uX2Zkc19wcmVwYXJlKHN0cnVjdCB6cGNpbW9uX2N0eCAq Y3R4LCBpbnQgZXBmZCwgaW50IG1vbl9mZHNbXSkKKyB7CistCXV0aWxfZm10X2luaXQoc3Rkb3V0 LCBjdHgtPm9wdHMuZm9ybWF0LCBGTVRfREVGQVVMVCwgQVBJX0xFVkVMKTsKKy0JaWYgKCFjdHgt Pm9wdHMucXVpZXQpCistCQl1dGlsX2ZtdF9vYmpfc3RhcnQoRk1UX0xJU1QsICJhZGFwdGVycyIp OworLQlkdW1wX2FsbF9hZGFwdGVyX2RhdGEoY3R4KTsKKy0JaWYgKCFjdHgtPm9wdHMucXVpZXQp CistCQl1dGlsX2ZtdF9vYmpfZW5kKCk7CistCXV0aWxfZm10X2V4aXQoKTsKKysJc3RydWN0IGVw b2xsX2V2ZW50IGV2OworKwlpbnQgbW9uX2lkeDsKKyAKKy0JcmV0dXJuIEVYSVRfU1VDQ0VTUzsK KysJZm9yIChtb25faWR4ID0gMDsgbW9uX2lkeCA8IChpbnQpQVJSQVlfU0laRShtb25pdG9ycyk7 IG1vbl9pZHgrKykgeworKwkJaWYgKCFtb25pdG9yc1ttb25faWR4XS5vcHMtPmdldF9tb25pdG9y X2ZkKSB7CisrCQkJbW9uX2Zkc1ttb25faWR4XSA9IC0xOworKwkJCWNvbnRpbnVlOworKwkJfQor KwkJbW9uX2Zkc1ttb25faWR4XSA9IG1vbml0b3JzW21vbl9pZHhdLm9wcy0+Z2V0X21vbml0b3Jf ZmQoY3R4KTsKKysJCWlmIChtb25fZmRzW21vbl9pZHhdIDwgMCkKKysJCQlyZXR1cm4gLUVJTzsK KysJCWV2LmV2ZW50cyA9IEVQT0xMSU47CisrCQlldi5kYXRhLmZkID0gbW9uX2Zkc1ttb25faWR4 XTsKKysJCWlmIChlcG9sbF9jdGwoZXBmZCwgRVBPTExfQ1RMX0FERCwgbW9uX2Zkc1ttb25faWR4 XSwgJmV2KSA9PSAtMSkKKysJCQlyZXR1cm4gLUVJTzsKKysJfQorKwlyZXR1cm4gMDsKKyB9Cisg Cistdm9pZCBvbl9saW5rX2NoYW5nZShzdHJ1Y3QgenBjaV9uZXRkZXYgKm5ldGRldiwgdm9pZCAq YXJnKQorK3N0YXRpYyB2b2lkIG1vbml0b3JfZXBvbGxfbW9uX2ZkcyhzdHJ1Y3QgenBjaW1vbl9j dHggKmN0eCwgc3RydWN0IGVwb2xsX2V2ZW50IGV2ZW50LAorKwkJCQkgIGNvbnN0IGludCBtb25f ZmRzW10pCisgeworLQlzdHJ1Y3Qgb3B0aWNzbW9uX2N0eCAqY3R4ID0gYXJnOworLQlzdHJ1Y3Qg enBjaV9uZXRkZXYgKmZvdW5kX25ldGRldjsKKy0Jc3RydWN0IHpwY2lfZGV2ICp6ZGV2ID0gTlVM TDsKKy0JaW50IHJlbG9hZHMgPSAxOworKwlpbnQgbW9uX2lkeDsKKyAKKy0JZG8geworLQkJaWYg KGN0eC0+enBjaV9saXN0KSB7CistCQkJemRldiA9IHpwY2lfZmluZF9ieV9uZXRkZXYoY3R4LT56 cGNpX2xpc3QsIG5ldGRldi0+bmFtZSwgJmZvdW5kX25ldGRldik7CistCQkJaWYgKHpkZXYpIHsK Ky0JCQkJLyogU2tpcCBkYXRhIGNvbGxlY3Rpb24gaWYgb3BlcmF0aW9uYWwgc3RhdGUgaXMKKy0J CQkJICogdW5jaGFuZ2VkCistCQkJCSAqLworLQkJCQlpZiAoZm91bmRfbmV0ZGV2LT5vcGVyc3Rh dGUgPT0gbmV0ZGV2LT5vcGVyc3RhdGUpCistCQkJCQlyZXR1cm47CistCQkJCS8qIFVwZGF0ZSBv cGVyYXRpb24gc3RhdGUgZm9yIFZGcyBldmVuIHRob3VnaAorLQkJCQkgKiB0aGV5IGFyZSBza2lw cGVkIGp1c3QgZm9yIGEgY29uc2lzdGVudCB2aWV3CistCQkJCSAqLworLQkJCQlmb3VuZF9uZXRk ZXYtPm9wZXJzdGF0ZSA9IG5ldGRldi0+b3BlcnN0YXRlOworLQkJCQkvKiBPbmx5IGNvbGxlY3Qg b3B0aWNzIGRhdGEgZm9yIFBGcyAqLworLQkJCQlpZiAoIXpwY2lfaXNfdmYoemRldikpCistCQkJ CQlkdW1wX2FkYXB0ZXJfZGF0YShjdHgsIHpkZXYpOworLQkJCQlyZXR1cm47CistCQkJfQorLQkJ fQorLQkJLyogQ291bGQgYmUgdW5pbml0YWxpemVkIGxpc3Qgb3IgYSBuZXcgZGV2aWNlLCByZXRy eSBhZnRlciByZWxvYWQgICovCistCQl6cGNpX2xpc3RfcmVsb2FkKCZjdHgtPnpwY2lfbGlzdCk7 CistCQlyZWxvYWRzLS07CistCX0gd2hpbGUgKHJlbG9hZHMgPiAwKTsKKysJZm9yIChtb25faWR4 ID0gMDsgbW9uX2lkeCA8IChpbnQpQVJSQVlfU0laRShtb25pdG9ycyk7IG1vbl9pZHgrKykgewor KwkJaWYgKGV2ZW50LmRhdGEuZmQgIT0gbW9uX2Zkc1ttb25faWR4XSkKKysJCQljb250aW51ZTsK KysJCWlmICghbW9uaXRvcnNbbW9uX2lkeF0ub3BzLT5tb25pdG9yX2ZkX2hhbmRsZSkKKysJCQlj b250aW51ZTsKKysJCW1vbml0b3JzW21vbl9pZHhdLm9wcy0+bW9uaXRvcl9mZF9oYW5kbGUoY3R4 KTsKKysJfQorIH0KKyAKKy0jZGVmaW5lIE1BWF9FVkVOVFMgOAorLQorLXN0YXRpYyBpbnQgbW9u aXRvcl93YWl0X2xvb3Aoc3RydWN0IG9wdGljc21vbl9jdHggKmN0eCwgaW50IHNpZ2ZkLCBpbnQg dGltZXJmZCkKKytzdGF0aWMgaW50IG1vbml0b3JfZXBvbGwoc3RydWN0IHpwY2ltb25fY3R4ICpj dHgsIGNvbnN0IGludCBtb25fZmRzW10sIGludCBlcGZkLCBpbnQgc2lnZmQsCisrCQkJIGludCB0 aW1lcmZkKQorIHsKKyAJc3RydWN0IGVwb2xsX2V2ZW50IGV2ZW50c1tNQVhfRVZFTlRTXTsKKy0J aW50IGksIG5sZmQsIGVwZmQsIG5mZHMsIHJldCA9IC1FSU87CisgCXN0cnVjdCBzaWduYWxmZF9z aWdpbmZvIGZkc2k7CistCXN0cnVjdCBlcG9sbF9ldmVudCBldjsKKyAJdWludDY0X3QgZXhwaXJh dGlvbnM7CisgCXNzaXplX3Qgc3JlYWQ7CisrCWludCBpLCBuZmRzOworKworKwluZmRzID0gZXBv bGxfd2FpdChlcGZkLCBldmVudHMsIE1BWF9FVkVOVFMsIC0xKTsKKysJaWYgKG5mZHMgPCAwKQor KwkJcmV0dXJuIG5mZHM7CisrCWZvciAoaSA9IDA7IGkgPCBuZmRzOyBpKyspIHsKKysJCS8qIHNp Z25hbCBmZCAqLworKwkJaWYgKGV2ZW50c1tpXS5kYXRhLmZkID09IHNpZ2ZkKSB7CisrCQkJc3Jl YWQgPSByZWFkKHNpZ2ZkLCAmZmRzaSwgc2l6ZW9mKGZkc2kpKTsKKysJCQlpZiAoc3JlYWQgIT0g c2l6ZW9mKGZkc2kpKQorKwkJCQlyZXR1cm4gLUVJTzsKKysJCQlzd2l0Y2ggKGZkc2kuc3NpX3Np Z25vKSB7CisrCQkJY2FzZSBTSUdJTlQ6CisrCQkJY2FzZSBTSUdURVJNOgorKwkJCWNhc2UgU0lH UVVJVDoKKysJCQkJcmV0dXJuIC1FSU5UUjsKKysJCQkvKiBVbmV4cGVjdGVkIHNpZ25hbCAqLwor KwkJCWRlZmF1bHQ6CisrCQkJCXJldHVybiAtRUlPOworKwkJCX0KKysJCQkvKiB0aW1lciBmZCAq LworKwkJfSBlbHNlIGlmIChldmVudHNbaV0uZGF0YS5mZCA9PSB0aW1lcmZkKSB7CisrCQkJc3Jl YWQgPSByZWFkKHRpbWVyZmQsICZleHBpcmF0aW9ucywgc2l6ZW9mKHVpbnQ2NF90KSk7CisrCQkJ aWYgKHNyZWFkICE9IHNpemVvZih1aW50NjRfdCkpCisrCQkJCXJldHVybiAtRUlPOworKwkJCWlm ICghZXhwaXJhdGlvbnMpCisrCQkJCWNvbnRpbnVlOworKwkJCWNvbGxlY3RfYWxsX2FkYXB0ZXJf ZGF0YShjdHgpOworKwkJCS8qIG5ldGxpbmsgZmQgKi8KKysJCX0gZWxzZSB7CisrCQkJbW9uaXRv cl9lcG9sbF9tb25fZmRzKGN0eCwgZXZlbnRzW2ldLCBtb25fZmRzKTsKKysJCX0KKysJfQorKwly ZXR1cm4gMDsKKyt9CisrCisrc3RhdGljIGludCBtb25pdG9yX3dhaXRfbG9vcChzdHJ1Y3QgenBj aW1vbl9jdHggKmN0eCwgaW50IHNpZ2ZkLCBpbnQgdGltZXJmZCkKKyt7CisrCWludCBtb25fZmRz W0FSUkFZX1NJWkUobW9uaXRvcnMpXTsKKysJc3RydWN0IGVwb2xsX2V2ZW50IGV2OworKwlpbnQg ZXBmZCwgcmV0ID0gLUVJTzsKKyAKKyAJZXBmZCA9IGVwb2xsX2NyZWF0ZTEoRVBPTExfQ0xPRVhF Qyk7CisgCWlmIChlcGZkIDwgMCkKK0BAIC0zMDIsNTIgKzI1Miw1NyBAQCBzdGF0aWMgaW50IG1v bml0b3Jfd2FpdF9sb29wKHN0cnVjdCBvcHRpY3Ntb25fY3R4ICpjdHgsIGludCBzaWdmZCwgaW50 IHRpbWVyZmQpCisgCWlmIChlcG9sbF9jdGwoZXBmZCwgRVBPTExfQ1RMX0FERCwgdGltZXJmZCwg JmV2KSA9PSAtMSkKKyAJCWdvdG8gb3V0X2Nsb3NlOworIAorLQlubGZkID0gbGlua19tb25fbmxf d2FpdGZkX2dldGZkKCZjdHgtPmxjdHgpOworLQlldi5ldmVudHMgPSBFUE9MTElOOworLQlldi5k YXRhLmZkID0gbmxmZDsKKy0JaWYgKGVwb2xsX2N0bChlcGZkLCBFUE9MTF9DVExfQURELCBubGZk LCAmZXYpID09IC0xKQorKwlyZXQgPSBtb25pdG9yX2Vwb2xsX21vbl9mZHNfcHJlcGFyZShjdHgs IGVwZmQsIG1vbl9mZHMpOworKwlpZiAocmV0KQorIAkJZ290byBvdXRfY2xvc2U7CisgCisgCXdo aWxlICgxKSB7CistCQluZmRzID0gZXBvbGxfd2FpdChlcGZkLCBldmVudHMsIE1BWF9FVkVOVFMs IC0xKTsKKy0JCWlmIChuZmRzIDwgMCkKKy0JCQlnb3RvIG91dF9jbG9zZTsKKy0JCWZvciAoaSA9 IDA7IGkgPCBuZmRzOyBpKyspIHsKKy0JCQkvKiBzaWduYWwgZmQgKi8KKy0JCQlpZiAoZXZlbnRz W2ldLmRhdGEuZmQgPT0gc2lnZmQpIHsKKy0JCQkJc3JlYWQgPSByZWFkKHNpZ2ZkLCAmZmRzaSwg c2l6ZW9mKGZkc2kpKTsKKy0JCQkJaWYgKHNyZWFkICE9IHNpemVvZihmZHNpKSkKKy0JCQkJCWdv dG8gb3V0X2Nsb3NlOworLQkJCQlzd2l0Y2ggKGZkc2kuc3NpX3NpZ25vKSB7CistCQkJCWNhc2Ug U0lHSU5UOgorLQkJCQljYXNlIFNJR1RFUk06CistCQkJCWNhc2UgU0lHUVVJVDoKKy0JCQkJCXJl dCA9IDA7CistCQkJCQlnb3RvIG91dF9jbG9zZTsKKy0JCQkJLyogVW5leHBlY3RlZCBzaWduYWwg Ki8KKy0JCQkJZGVmYXVsdDoKKy0JCQkJCWdvdG8gb3V0X2Nsb3NlOworLQkJCQl9CistCQkJCS8q IHRpbWVyIGZkICovCistCQkJfSBlbHNlIGlmIChldmVudHNbaV0uZGF0YS5mZCA9PSB0aW1lcmZk KSB7CistCQkJCXNyZWFkID0gcmVhZCh0aW1lcmZkLCAmZXhwaXJhdGlvbnMsIHNpemVvZih1aW50 NjRfdCkpOworLQkJCQlpZiAoc3JlYWQgIT0gc2l6ZW9mKHVpbnQ2NF90KSkKKy0JCQkJCWdvdG8g b3V0X2Nsb3NlOworLQkJCQlpZiAoIWV4cGlyYXRpb25zKQorLQkJCQkJY29udGludWU7CistCQkJ CWR1bXBfYWxsX2FkYXB0ZXJfZGF0YShjdHgpOworLQkJCQkvKiBuZXRsaW5rIGZkICovCistCQkJ fSBlbHNlIGlmIChldmVudHNbaV0uZGF0YS5mZCA9PSBubGZkKSB7CistCQkJCWxpbmtfbW9uX25s X3dhaXRmZF9yZWFkKCZjdHgtPmxjdHgpOworLQkJCX0KKy0JCX0KKysJCXJldCA9IG1vbml0b3Jf ZXBvbGwoY3R4LCBtb25fZmRzLCBlcGZkLCBzaWdmZCwgdGltZXJmZCk7CisrCQlpZiAocmV0KQor KwkJCWJyZWFrOworIAl9Cisgb3V0X2Nsb3NlOgorKwkvKiBHZXR0aW5nIGludGVycnVwdGVkIGJ5 IGEgc2lnbmFsIGlzIG5vdCBhbiBlcnJvciAqLworKwlpZiAocmV0ID09IC1FSU5UUikKKysJCXJl dCA9IDA7CisgCWNsb3NlKGVwZmQpOworIAlyZXR1cm4gcmV0OworIH0KKyAKKy1zdGF0aWMgaW50 IG1vbml0b3JfbW9kZShzdHJ1Y3Qgb3B0aWNzbW9uX2N0eCAqY3R4KQorK3N0YXRpYyB2b2lkIHpw Y2ltb25fY2xvc2VfbW9uaXRvcihzdHJ1Y3QgenBjaW1vbl9jdHggKmN0eCkKKyt7CisrCWludCBp OworKworKwlmb3IgKGkgPSAwOyBpIDwgKGludClBUlJBWV9TSVpFKG1vbml0b3JzKTsgaSsrKSB7 CisrCQlpZiAoIW1vbml0b3JzW2ldLm9wcy0+Y2xvc2VfbW9uaXRvciB8fCAhbW9uaXRvcnNbaV0u b3BlbmVkKQorKwkJCWNvbnRpbnVlOworKwkJbW9uaXRvcnNbaV0ub3BzLT5jbG9zZV9tb25pdG9y KGN0eCk7CisrCQltb25pdG9yc1tpXS5vcGVuZWQgPSAwOworKwl9CisrfQorKworK3N0YXRpYyBp bnQgenBjaW1vbl9vcGVuX21vbml0b3Ioc3RydWN0IHpwY2ltb25fY3R4ICpjdHgpCisreworKwlp bnQgaSwgcmV0ID0gLUVOWElPOworKworKwlmb3IgKGkgPSAwOyBpIDwgKGludClBUlJBWV9TSVpF KG1vbml0b3JzKTsgaSsrKSB7CisrCQlpZiAoIW1vbml0b3JzW2ldLm9wcy0+b3Blbl9tb25pdG9y IHx8IG1vbml0b3JzW2ldLm9wZW5lZCkKKysJCQljb250aW51ZTsKKysJCWlmIChtb25pdG9yc1tp XS5vcGVuZWQpCisrCQkJZ290byBlcnJvcjsKKysJCXJldCA9IG1vbml0b3JzW2ldLm9wcy0+b3Bl bl9tb25pdG9yKGN0eCk7CisrCQlpZiAocmV0KQorKwkJCWdvdG8gZXJyb3I7CisrCQltb25pdG9y c1tpXS5vcGVuZWQgPSAxOworKwl9CisrCXJldHVybiAwOworKworK2Vycm9yOgorKwl6cGNpbW9u X2Nsb3NlX21vbml0b3IoY3R4KTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisrc3RhdGljIGludCBt b25pdG9yX21vZGUoc3RydWN0IHpwY2ltb25fY3R4ICpjdHgpCisgeworIAlzdHJ1Y3QgaXRpbWVy c3BlYyB0aW1lcnNwZWM7CisgCWludCBzaWdmZCwgdGltZXJmZCwgcmV0OworQEAgLTM4NiwyMCAr MzQxLDY3IEBAIHN0YXRpYyBpbnQgbW9uaXRvcl9tb2RlKHN0cnVjdCBvcHRpY3Ntb25fY3R4ICpj dHgpCisgCX0KKyAKKyAJdXRpbF9mbXRfaW5pdChzdGRvdXQsIGN0eC0+b3B0cy5mb3JtYXQsIEZN VF9ERUZBVUxULCBBUElfTEVWRUwpOworLQlyZXQgPSBsaW5rX21vbl9ubF93YWl0ZmRfY3JlYXRl KCZjdHgtPmxjdHgsIG9uX2xpbmtfY2hhbmdlLCBjdHgpOworLQlpZiAocmV0KSB7CistCQlmcHJp bnRmKHN0ZGVyciwgIkZhaWxlZCB0byBjcmVhdGUgbGluayBtb25pdG9yaW5nIHNvY2tldFxuIik7 CistCQlnb3RvIGNsb3NlX3RpbWVyZmQ7CistCX0KKysJcmV0ID0genBjaW1vbl9vcGVuX21vbml0 b3IoY3R4KTsKKysJaWYgKHJldCA8IDApCisrCQlnb3RvIGNsZWFudXBfZm10OworIAorIAlyZXQg PSBtb25pdG9yX3dhaXRfbG9vcChjdHgsIHNpZ2ZkLCB0aW1lcmZkKTsKKyAKKy0JbGlua19tb25f bmxfd2FpdGZkX2Rlc3Ryb3koJmN0eC0+bGN0eCk7CisrCXpwY2ltb25fY2xvc2VfbW9uaXRvcihj dHgpOworK2NsZWFudXBfZm10OgorIAl1dGlsX2ZtdF9leGl0KCk7CistY2xvc2Vfc2lnbmFsZmQ6 CistCWNsb3NlKHNpZ2ZkKTsKKyBjbG9zZV90aW1lcmZkOgorIAljbG9zZSh0aW1lcmZkKTsKKytj bG9zZV9zaWduYWxmZDoKKysJY2xvc2Uoc2lnZmQpOworKwlyZXR1cm4gcmV0OworK30KKysKKytz dGF0aWMgaW50IG9uZXNob3RfbW9kZShzdHJ1Y3QgenBjaW1vbl9jdHggKmN0eCkKKyt7CisrCXV0 aWxfZm10X2luaXQoc3Rkb3V0LCBjdHgtPm9wdHMuZm9ybWF0LCBGTVRfREVGQVVMVCwgQVBJX0xF VkVMKTsKKysJaWYgKCFjdHgtPm9wdHMucXVpZXQpCisrCQl1dGlsX2ZtdF9vYmpfc3RhcnQoRk1U X0xJU1QsICJhZGFwdGVycyIpOworKworKwljb2xsZWN0X2FsbF9hZGFwdGVyX2RhdGEoY3R4KTsK KysKKysJaWYgKCFjdHgtPm9wdHMucXVpZXQpCisrCQl1dGlsX2ZtdF9vYmpfZW5kKCk7CisrCXV0 aWxfZm10X2V4aXQoKTsKKysKKysJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKKyt9CisrCisrc3RhdGlj IHZvaWQgenBjaW1vbl9kZXN0cm95KHN0cnVjdCB6cGNpbW9uX2N0eCAqY3R4KQorK3sKKysJaW50 IGk7CisrCisrCWZvciAoaSA9IDA7IGkgPCAoaW50KUFSUkFZX1NJWkUobW9uaXRvcnMpOyBpKysp IHsKKysJCWlmICghbW9uaXRvcnNbaV0ub3BzLT5kZXN0cm95IHx8ICFtb25pdG9yc1tpXS5pbml0 aWFsaXplZCkKKysJCQljb250aW51ZTsKKysJCW1vbml0b3JzW2ldLm9wcy0+ZGVzdHJveShjdHgp OworKwkJbW9uaXRvcnNbaV0uaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysJfQorK30KKysKKytzdGF0 aWMgaW50IHpwY2ltb25faW5pdChzdHJ1Y3QgenBjaW1vbl9jdHggKmN0eCkKKyt7CisrCWludCBp LCByZXQgPSAtRU5YSU87CisrCisrCWZvciAoaSA9IDA7IGkgPCAoaW50KUFSUkFZX1NJWkUobW9u aXRvcnMpOyBpKyspIHsKKysJCWlmICghbW9uaXRvcnNbaV0ub3BzLT5pbml0KQorKwkJCWNvbnRp bnVlOworKwkJaWYgKG1vbml0b3JzW2ldLmluaXRpYWxpemVkKQorKwkJCWdvdG8gZXJyb3I7Cisr CQlyZXQgPSBtb25pdG9yc1tpXS5vcHMtPmluaXQoY3R4KTsKKysJCWlmIChyZXQpCisrCQkJZ290 byBlcnJvcjsKKysJCW1vbml0b3JzW2ldLmluaXRpYWxpemVkID0gMTsKKysJfQorKwlyZXR1cm4g MDsKKysKKytlcnJvcjoKKysJenBjaW1vbl9kZXN0cm95KGN0eCk7CisgCXJldHVybiByZXQ7Cisg fQorIAorQEAgLTQzMiwyMSArNDM0LDIxIEBAIHN0YXRpYyBpbnQgc2V0X2Zvcm1hdChzdHJ1Y3Qg b3B0aW9ucyAqb3B0cykKKyAKKyBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgewor LQlzdHJ1Y3Qgb3B0aWNzbW9uX2N0eCBjdHggPSB7IC5vcHRzID0geyAuaW50ZXJ2YWxfc2Vjb25k cyA9IDg2NDAwIH0gfTsKKysJc3RydWN0IHpwY2ltb25fY3R4IGN0eCA9IHsgLm9wdHMgPSB7IC5p bnRlcnZhbF9zZWNvbmRzID0gU0VDX1BFUl9EQVkgfSB9OworIAlpbnQgcmV0OworIAorIAlwYXJz ZV9jbWRsaW5lKGFyZ2MsIGFyZ3YsICZjdHgub3B0cyk7CisgCXJldCA9IHNldF9mb3JtYXQoJmN0 eC5vcHRzKTsKKyAJaWYgKHJldCkKKyAJCXJldHVybiByZXQ7CistCXJldCA9IGV0aHRvb2xfbmxf Y29ubmVjdCgmY3R4LmV0aHRvb2xfY3R4KTsKKysJcmV0ID0genBjaW1vbl9pbml0KCZjdHgpOwor IAlpZiAocmV0KQorIAkJcmV0dXJuIHJldDsKKyAJaWYgKGN0eC5vcHRzLm1vbml0b3IpCisgCQly ZXQgPSBtb25pdG9yX21vZGUoJmN0eCk7CisgCWVsc2UKKyAJCXJldCA9IG9uZXNob3RfbW9kZSgm Y3R4KTsKKy0JZXRodG9vbF9ubF9jbG9zZSgmY3R4LmV0aHRvb2xfY3R4KTsKKysJenBjaW1vbl9k ZXN0cm95KCZjdHgpOworIAorIAlpZiAoY3R4LnpwY2lfbGlzdCkKKyAJCXpwY2lfZnJlZV9kZXZf bGlzdChjdHguenBjaV9saXN0KTsKK2RpZmYgLS1naXQgYS96cGNpbW9uL3pwY2ltb24uaCBiL3pw Y2ltb24venBjaW1vbi5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjc2 OGQ1OTIxCistLS0gL2Rldi9udWxsCisrKysgYi96cGNpbW9uL3pwY2ltb24uaAorQEAgLTAsMCAr MSw1MiBAQAorKy8qCisrICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDI0CisrICoKKysgKiBzMzkw LXRvb2xzIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElD RU5TRSBmb3IgZGV0YWlscy4KKysgKi8KKysjaWZuZGVmIFpQQ0lNT05fWlBDSU1PTl9ICisrI2Rl ZmluZSBaUENJTU9OX1pQQ0lNT05fSAorKyNpbmNsdWRlIDxzdGRib29sLmg+CisrI2luY2x1ZGUg PHN0ZGludC5oPgorKworKyNpbmNsdWRlICJsaWIvdXRpbF9mbXQuaCIKKysKKysjaW5jbHVkZSAi b3B0aWNzbW9uLmgiCisrCisrI2RlZmluZSBBUElfTEVWRUwgMQorKworK3N0cnVjdCBvcHRpb25z IHsKKysJdWludDMyX3QgaW50ZXJ2YWxfc2Vjb25kczsKKysKKysJYm9vbCBtb25pdG9yOworKwli b29sIHJlcG9ydDsKKysJYm9vbCBxdWlldDsKKysJZW51bSB1dGlsX2ZtdF90IGZvcm1hdDsKKysJ Ym9vbCBleHBsaWNpdF9mb3JtYXQ7CisrCisrCS8qIE9wdGljcyBNb25pdG9yaW5nIFNwZWNpZmlj ICovCisrCWJvb2wgbW9kdWxlX2luZm87CisrfTsKKysKKytzdHJ1Y3QgenBjaW1vbl9jdHggewor KwlzdHJ1Y3Qgb3B0aW9ucyBvcHRzOworKwlzdHJ1Y3QgdXRpbF9saXN0ICp6cGNpX2xpc3Q7Cisr CXN0cnVjdCBvcHRpY3Ntb25fY3R4IG9wdGljc21vbl9jdHg7CisrfTsKKysKKytzdHJ1Y3QgenBj aW1vbl9vcHMgeworKwlpbnQgKCpjb2xsZWN0X2FkYXB0ZXJfZGF0YSkoc3RydWN0IHpwY2ltb25f Y3R4ICpjdHgsIHN0cnVjdCB6cGNpX2RldiAqemRldik7CisrCisrCWludCAoKm9wZW5fbW9uaXRv cikoc3RydWN0IHpwY2ltb25fY3R4ICpjdHgpOworKwlpbnQgKCpnZXRfbW9uaXRvcl9mZCkoc3Ry dWN0IHpwY2ltb25fY3R4ICpjdHgpOworKwl2b2lkICgqbW9uaXRvcl9mZF9oYW5kbGUpKHN0cnVj dCB6cGNpbW9uX2N0eCAqY3R4KTsKKysJdm9pZCAoKmNsb3NlX21vbml0b3IpKHN0cnVjdCB6cGNp bW9uX2N0eCAqY3R4KTsKKysKKysJaW50ICgqaW5pdCkoc3RydWN0IHpwY2ltb25fY3R4ICpjdHgp OworKwl2b2lkICgqZGVzdHJveSkoc3RydWN0IHpwY2ltb25fY3R4ICpjdHgpOworK307CisrCisr dm9pZCB6cGNpX2xpc3RfcmVsb2FkKHN0cnVjdCB1dGlsX2xpc3QgKip6cGNpX2xpc3QpOworKwor K3ZvaWQgenBjaW1vbl9qc29uX2Jhc2U2NF9wYWlyKGNoYXIgKm5hbWUsIHVpbnQ4X3QgKmJ1Ziwg aW50IGxlbik7CisrI2VuZGlmIC8qIFpQQ0lNT05fWlBDSU1PTl9IICovCistLSAKKzIuNTUuMAor CisKK0Zyb20gNzhkZDgyZDEyOWM5ZWYwMzM4NjE5ZGZhMzA2MWM2ZGI5Y2VjM2Y5ZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pa2xhcyBTY2huZWxsZSA8c2NobmVsbGVAbGludXgu aWJtLmNvbT4KK0RhdGU6IFRodSwgMTggSnVuIDIwMjYgMTY6NDA6MDkgKzAyMDAKK1N1YmplY3Q6 IFtQQVRDSCAxNC8yM10gbGlienBjaTogRXh0cmFjdCBnZXRfZGV2aWNlX25vZGUoKSBmcm9tIHpw Y2ljdGwgdG8KKyBsaWJ6cGNpCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisK K1RoZSBnZXRfZGV2aWNlX25vZGUoKSBmdW5jdGlvbiBmb3IgZ2V0dGluZyB0aGUgbmFtZSBvZiBh biBOVk1lJ3MKK2NvbnRyb2xsZXIgZGV2aWNlIGUuZy4gIm52bWUwIiBhcyBpbXBsZW1lbnRlZCBp biB6cGNpY3RsIGlzIGdlbmVyYWxseQordXNlZnVsIGFuZCB3aWxsIGJlIG5lZWRlZCBmb3IgTlZN ZSBTTUFSVCBkYXRhIGNvbGxlY3Rpb24gaW4genBjaW1vbiBhcword2VsbC4gTW92ZSBpdCB0byBs aWJ6cGNpIGFuZCByZW5hbWUgaXQgdG8genBjaV9nZXRfbnZtZV9kZXZpY2Vfbm9kZSgpIHRvCith Y2NvdW50IGZvciB0aGUgY2hhbmdlIGluIG5hbWVzcGFjZS4KKworSXQgd291bGQgYmUgdGVtcHRp bmcgdG8gcGFzcyBhIHN0cnVjdCB6cGNpX2RldiogaW5zdGVhZCBvZiBhIGNvbnN0IGNoYXIqCiti dXQgYXMgenBjaWN0bCB1c2VzIGFuIGluY29tcGF0aWJsZSBzdHJ1Y3QgenBjaV9kZXZpY2UqIHRo aXMgd2lsbAorcmVxdWlyZSBhIGxhcmdlciByZXdvcmsuIFByaW9yaXRpemUgbWluaW1pemluZyBj b2RlIGR1cGxpY2F0aW9uIGZvciBub3cuCisKK1Jldmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIgPGhv ZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOaWtsYXMgU2NobmVsbGUgPHNj aG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBw bmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBpbmNsdWRlL2xpYi9wY2lfbGlzdC5oIHwgIDQgKysr KworIGxpYnpwY2kvcGNpX2xpc3QuYyAgICAgfCA0NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KKyB6cGNpY3RsL3pwY2ljdGwuYyAgICAgIHwgMzMgKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCsp LCAzMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGliL3BjaV9saXN0Lmgg Yi9pbmNsdWRlL2xpYi9wY2lfbGlzdC5oCitpbmRleCA1YjI5MThiYy4uMjI2YTgyZDkgMTAwNjQ0 CistLS0gYS9pbmNsdWRlL2xpYi9wY2lfbGlzdC5oCisrKysgYi9pbmNsdWRlL2xpYi9wY2lfbGlz dC5oCitAQCAtMTcsNiArMTcsOCBAQAorIAorICNpbmNsdWRlICJ1dGlsX2xpc3QuaCIKKyAKKysj ZGVmaW5lIFBDSV9CREZfTEVOIDEzIC8qIEREREQ6QkI6ZGQuZlwwICovCisrCisgZW51bSB6cGNp X3BmdCB7CisgCVpQQ0lfUEZUX1VOQ0xBU1NJRklFRCA9IDB4MDAsCisgCitAQCAtOTYsNCArOTgs NiBAQCBvcGVyc3RhdGVfdCB6cGNpX29wZXJzdGF0ZV9mcm9tX3N0cihjb25zdCBjaGFyICpvcGVy X3N0cik7Cisgc3RydWN0IHpwY2lfZGV2ICp6cGNpX2ZpbmRfYnlfbmV0ZGV2KHN0cnVjdCB1dGls X2xpc3QgKnpwY2lfbGlzdCwgY2hhciAqbmV0ZGV2X25hbWUsCisgCQkJCSAgICAgc3RydWN0IHpw Y2lfbmV0ZGV2ICoqbmV0ZGV2KTsKKyAKKytjaGFyICp6cGNpX2dldF9udm1lX2RldmljZV9ub2Rl KGNvbnN0IGNoYXIgKnBjaV9hZGRyKTsKKysKKyAjZW5kaWYgLyogTElCX1pQQ0lfUENJX0xJU1Rf SCAqLworZGlmZiAtLWdpdCBhL2xpYnpwY2kvcGNpX2xpc3QuYyBiL2xpYnpwY2kvcGNpX2xpc3Qu YworaW5kZXggZTBkNTZlNDQuLmU4MWJiNGI4IDEwMDY0NAorLS0tIGEvbGlienBjaS9wY2lfbGlz dC5jCisrKysgYi9saWJ6cGNpL3BjaV9saXN0LmMKK0BAIC0yMCw2ICsyMCw3IEBACisgI2luY2x1 ZGUgImxpYi91dGlsX2xpc3QuaCIKKyAjaW5jbHVkZSAibGliL3V0aWxfcGF0aC5oIgorICNpbmNs dWRlICJsaWIvdXRpbF9zY2FuZGlyLmgiCisrI2luY2x1ZGUgImxpYi91dGlsX3N5cy5oIgorIAor IC8qKgorICAqIEdldCB0aGUgZnVuY3Rpb24gdHlwZSBuYW1lIGZvciB0aGUgZ2l2ZW4gZGV2aWNl CitAQCAtMTM3LDcgKzEzOCw3IEBAIGNvbnN0IGNoYXIgKnpwY2lfb3BlcnN0YXRlX3N0cihvcGVy c3RhdGVfdCBzdGF0ZSkKKyBzdGF0aWMgaW50IHpwY2lfcG9wdWxhdGVfZnJvbV9zbG90X2Rpcihz dHJ1Y3QgenBjaV9kZXYgKnpkZXYsIGNvbnN0IGNoYXIgKnNsb3RfZGlyLAorIAkJCQkgICAgICAg Y29uc3QgY2hhciAqc2xvdF9uYW1lKQorIHsKKy0JY2hhciBidWZfYWRkclsxMV07IC8qICJkZGRk OmJiOmRkXDAiICovCisrCWNoYXIgYnVmX2FkZHJbUENJX0JERl9MRU5dOworIAl1aW50OF90IGJ1 cywgZGY7CisgCXVpbnQzMl90IGRvbWFpbjsKKyAJaW50IHZhbCwgcmM7CitAQCAtMzg3LDMgKzM4 OCw0NiBAQCBzdHJ1Y3QgenBjaV9kZXYgKnpwY2lfZmluZF9ieV9uZXRkZXYoc3RydWN0IHV0aWxf bGlzdCAqenBjaV9saXN0LCBjaGFyICpuZXRkZXZfbgorIAl9CisgCXJldHVybiBOVUxMOworIH0K KysKKysvKioKKysgKiBHZXQgdGhlIE5WTWUgZGV2aWNlIGZpbGUgbmFtZSBnaXZlbiBhIFBDSSBh ZGRyZXNzCisrICoKKysgKiBUaGlzIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgTlZNZSBkZXZpY2Ug ZmlsZSAiL2Rldi9udm1lWCIKKysgKiBmb3IgYSBnaXZlbiBQQ0kgYWRkcmVzcy4gVGhlIGRldmlj ZSBuYW1lIGNhbiBiZSB1c2VkIHRvIGNvbnN0cnVjdAorKyAqIHRoZSBwYXRoIC9kZXYvbnZtZVgg d2hpY2ggaXMgdGhlIE5WTWUncyBjb250cm9sbGVyJ3MgY2hhcmFjdGVyCisrICogZGV2aWNlIHVz ZWQgZm9yIGV4YW1wbGUgdG8gcmV0cmlldmUgUy5NLkEuUi5ULiBkYXRhLgorKyAqCisrICogQHBh cmFtW2luXQlwY2lfYWRkcglUaGUgIkREREQ6YmI6ZGQuZiIgZm9ybWF0IFBDSSBhZGRyZXNzCisr ICoKKysgKiBAcmV0dXJuIFRoZSBOVk1lIGRldmljZSBmaWxlIG5hbWUgaWYgb25lIGlzIGZvdW5k IE5VTEwgb3RoZXJ3aXNlCisrICovCisrY2hhciAqenBjaV9nZXRfbnZtZV9kZXZpY2Vfbm9kZShj b25zdCBjaGFyICpwY2lfYWRkcikKKyt7CisrCWNoYXIgKnBhdGgsICpkZXYgPSBOVUxMOworKwlj aGFyIGRldl9hZGRyW1BDSV9CREZfTEVOXTsKKysJc3RydWN0IGRpcmVudCAqKmRlX3ZlYzsKKysJ aW50IGNvdW50LCBpOworKworKwlwYXRoID0gdXRpbF9wYXRoX3N5c2ZzKCJidXMvcGNpL2Rldmlj ZXMvJXMvbnZtZSIsIHBjaV9hZGRyKTsKKysJY291bnQgPSB1dGlsX3NjYW5kaXIoJmRlX3ZlYywg YWxwaGFzb3J0LCBwYXRoLCAibnZtZSoiKTsKKysJaWYgKGNvdW50ID09IC0xKSB7CisrCQl3YXJu eCgiQ291bGQgbm90IHJlYWQgZGlyZWN0b3J5ICVzOiAlcyIsIHBhdGgsIHN0cmVycm9yKGVycm5v KSk7CisrCQlnb3RvIGV4aXRfcGF0aDsKKysJfQorKworKwlmb3IgKGkgPSAwOyBpIDwgY291bnQ7 IGkrKykgeworKwkJdXRpbF9hc3ByaW50ZigmZGV2LCAiL2Rldi8lcyIsIGRlX3ZlY1tpXS0+ZF9u YW1lKTsKKysJCWlmICh1dGlsX3N5c19nZXRfZGV2X2FkZHIoZGV2LCBkZXZfYWRkcikgIT0gMCkK KysJCQlnb3RvIGZyZWVfY29udGludWU7CisrCQlpZiAoc3RyY21wKGRldl9hZGRyLCBwY2lfYWRk cikgPT0gMCkKKysJCQlicmVhazsKKytmcmVlX2NvbnRpbnVlOgorKwkJZnJlZShkZXYpOworKwkJ ZGV2ID0gTlVMTDsKKysJfQorKworKwl1dGlsX3NjYW5kaXJfZnJlZShkZV92ZWMsIGNvdW50KTsK KytleGl0X3BhdGg6CisrCWZyZWUocGF0aCk7CisrCXJldHVybiBkZXY7CisrfQorZGlmZiAtLWdp dCBhL3pwY2ljdGwvenBjaWN0bC5jIGIvenBjaWN0bC96cGNpY3RsLmMKK2luZGV4IDQyMTQwM2Fj Li44YzhjZTQ4MiAxMDA2NDQKKy0tLSBhL3pwY2ljdGwvenBjaWN0bC5jCisrKysgYi96cGNpY3Rs L3pwY2ljdGwuYworQEAgLTE4LDggKzE4LDggQEAKKyAjaW5jbHVkZSAibGliL3V0aWxfb3B0Lmgi CisgI2luY2x1ZGUgImxpYi91dGlsX3BhdGguaCIKKyAjaW5jbHVkZSAibGliL3V0aWxfcHJnLmgi CistI2luY2x1ZGUgImxpYi91dGlsX3NjYW5kaXIuaCIKKyAjaW5jbHVkZSAibGliL3V0aWxfc3lz LmgiCisrI2luY2x1ZGUgImxpYi9wY2lfbGlzdC5oIgorICNpbmNsdWRlICJsaWIvcGNpX3NjbHAu aCIKKyAKKyAjaW5jbHVkZSAienBjaWN0bC5oIgorQEAgLTE4NywzNSArMTg3LDYgQEAgc3RhdGlj IHZvaWQgc3lzZnNfd3JpdGVfdmFsdWUoc3RydWN0IHpwY2lfZGV2aWNlICpwZGV2LCBjb25zdCBj aGFyICphdHRyLAorIAlmcmVlKHBhdGgpOworIH0KKyAKKy1zdGF0aWMgdm9pZCBnZXRfZGV2aWNl X25vZGUoc3RydWN0IHpwY2lfZGV2aWNlICpwZGV2KQorLXsKKy0Jc3RydWN0IGRpcmVudCAqKmRl X3ZlYzsKKy0JY2hhciAqcGF0aCwgKmRldjsKKy0JY2hhciBzbG90WzEzXTsKKy0JaW50IGNvdW50 LCBpOworLQorLQlwYXRoID0gdXRpbF9wYXRoX3N5c2ZzKCJidXMvcGNpL2RldmljZXMvJXMvbnZt ZSIsIHBkZXYtPnNsb3QpOworLQljb3VudCA9IHV0aWxfc2NhbmRpcigmZGVfdmVjLCBhbHBoYXNv cnQsIHBhdGgsICJudm1lKiIpOworLQlpZiAoY291bnQgPT0gLTEpIHsKKy0JCXdhcm54KCJDb3Vs ZCBub3QgcmVhZCBkaXJlY3RvcnkgJXM6ICVzIiwgcGF0aCwgc3RyZXJyb3IoZXJybm8pKTsKKy0J CWZyZWUocGF0aCk7CistCQlyZXR1cm47CistCX0KKy0KKy0JZm9yIChpID0gMDsgaSA8IGNvdW50 OyBpKyspIHsKKy0JCXV0aWxfYXNwcmludGYoJmRldiwgIi9kZXYvJXMiLCBkZV92ZWNbaV0tPmRf bmFtZSk7CistCQlpZiAodXRpbF9zeXNfZ2V0X2Rldl9hZGRyKGRldiwgc2xvdCkgIT0gMCkKKy0J CQljb250aW51ZTsKKy0JCWlmIChzdHJjbXAoc2xvdCwgcGRldi0+c2xvdCkgPT0gMCkgeworLQkJ CXBkZXYtPmRldmljZSA9IGRldjsKKy0JCQlicmVhazsKKy0JCX0KKy0JfQorLQorLQl1dGlsX3Nj YW5kaXJfZnJlZShkZV92ZWMsIGNvdW50KTsKKy0JZnJlZShwYXRoKTsKKy19CistCisgc3RhdGlj IGludCBkZXZpY2VfZXhpc3RzKGNoYXIgKmRldikKKyB7CisgCWNoYXIgKnBhdGg7CitAQCAtMjU4 LDcgKzIyOSw3IEBAIHN0YXRpYyB2b2lkIGdldF9kZXZpY2VfaW5mbyhzdHJ1Y3QgenBjaV9kZXZp Y2UgKnBkZXYsIGNoYXIgKmRldikKKyAJICogUy5NLkEuUi5ULiBkYXRhIGF0IGEgbGF0ZXIgcG9p bnQuCisgCSAqLworIAlpZiAoIXBkZXYtPmRldmljZSAmJiBwZGV2LT5jbGFzcyA9PSBQQ0lfQ0xB U1NfTlZNRSkKKy0JCWdldF9kZXZpY2Vfbm9kZShwZGV2KTsKKysJCXBkZXYtPmRldmljZSA9IHpw Y2lfZ2V0X252bWVfZGV2aWNlX25vZGUocGRldi0+c2xvdCk7CisgfQorIAorIC8qCistLSAKKzIu NTUuMAorCisKK0Zyb20gYTlkYmI4YTFhMmJjZmVmZWZmZWUwYzgwZWM3M2E4MDFjNTQzYzdlNyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pa2xhcyBTY2huZWxsZSA8c2NobmVsbGVA bGludXguaWJtLmNvbT4KK0RhdGU6IE1vbiwgMjIgSnVuIDIwMjYgMTI6MzY6MzAgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSCAxNS8yM10genBjaW1vbjogRmFjdG9yIG91dCBKU09OIHByaW50aW5nIG9m IGNvbW1vbiBQQ0kgYWRhcHRlcgorIGF0dHJpYnV0ZXMKK01JTUUtVmVyc2lvbjogMS4wCitDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKKworU29tZSBvZiB0aGUgYXR0cmlidXRlcyBwcmludGVkIGFzIEpTT04gYnkg b3B0aWNzbW9uIGFyZSBjb21tb24gdG8gYWxsCitQQ0kgYWRhcHRlcnMgZmFjdG9yIHRoZXNlIG91 dCBpbnRvIHJldXNhYmxlIGhlbHBlciBmdW5jdGlvbnMKK3pwY2lfYWRhcHRlcl9qc29uX3ByaW50 X3N0YXJ0KCkgYW5kIHpwY2lfYWRhcHRlcl9qc29uX3ByaW50X2VuZCgpLgorCitSZXZpZXdlZC1i eTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTog TmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTog SmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorLS0tCisgenBjaW1vbi9vcHRp Y3Ntb24uYyB8IDE0ICsrLS0tLS0tLS0tLS0tCisgenBjaW1vbi96cGNpbW9uLmMgICB8IDIxICsr KysrKysrKysrKysrKysrKysrKworIHpwY2ltb24venBjaW1vbi5oICAgfCAgMiArKworIDMgZmls ZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1n aXQgYS96cGNpbW9uL29wdGljc21vbi5jIGIvenBjaW1vbi9vcHRpY3Ntb24uYworaW5kZXggNGRh NDU2ZjEuLjJmYWEyMWQwIDEwMDY0NAorLS0tIGEvenBjaW1vbi9vcHRpY3Ntb24uYworKysrIGIv enBjaW1vbi9vcHRpY3Ntb24uYworQEAgLTQ1LDcgKzQ1LDYgQEAgc3RhdGljIGludCBvcHRpY3Nt b25fY29sbGVjdF9hZGFwdGVyX2RhdGEoc3RydWN0IHpwY2ltb25fY3R4ICpjdHgsIHN0cnVjdCB6 cGNpX2QKKyAJc3RydWN0IG9wdGlvbnMgKm9wdHMgPSAmY3R4LT5vcHRzOworIAlzdHJ1Y3Qgb3B0 aWNzICoqb2lzOworIAlpbnQgbnVtX29pcyA9IDA7CistCWNoYXIgKnBjaV9hZGRyOworIAlpbnQg aSwgcmM7CisgCisgCS8qIEZpbHRlciBub24tTklDIGRldmljZXMgYW5kIFZGcyAqLworQEAgLTYw LDIxICs1OSwxMiBAQCBzdGF0aWMgaW50IG9wdGljc21vbl9jb2xsZWN0X2FkYXB0ZXJfZGF0YShz dHJ1Y3QgenBjaW1vbl9jdHggKmN0eCwgc3RydWN0IHpwY2lfZAorIAkJbnVtX29pcysrOworIAl9 CisgCWlmICghb3B0cy0+cXVpZXQpIHsKKy0JCXV0aWxfZm10X29ial9zdGFydChGTVRfREVGQVVM VCwgImFkYXB0ZXIiKTsKKy0JCXV0aWxfZm10X3BhaXIoRk1UX1FVT1RFLCAicGZ0IiwgenBjaV9w ZnRfc3RyKHpkZXYpKTsKKy0JCXV0aWxfZm10X29ial9zdGFydChGTVRfREVGQVVMVCwgImlkcyIp OworLQkJdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUsICJmaWQiLCAiMHglMHgiLCB6ZGV2LT5maWQp OworLQkJaWYgKHpkZXYtPnVpZF9pc191bmlxdWUpCistCQkJdXRpbF9mbXRfcGFpcihGTVRfUVVP VEUsICJ1aWQiLCAiMHglMHgiLCB6ZGV2LT51aWQpOworLQkJcGNpX2FkZHIgPSB6cGNpX3BjaV9h ZGRyKHpkZXYpOworLQkJdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUsICJwY2lfYWRkcmVzcyIsIHBj aV9hZGRyKTsKKy0JCWZyZWUocGNpX2FkZHIpOworLQkJdXRpbF9mbXRfb2JqX2VuZCgpOworKwkJ enBjaV9hZGFwdGVyX2pzb25fcHJpbnRfc3RhcnQoemRldik7CisgCQl1dGlsX2ZtdF9vYmpfc3Rh cnQoRk1UX0xJU1QsICJuZXRkZXZzIik7CisgCQlmb3IgKGkgPSAwOyBpIDwgemRldi0+bnVtX25l dGRldnM7IGkrKykKKyAJCQlvcHRpY3NfanNvbl9wcmludChvcHRzLCAmemRldi0+bmV0ZGV2c1tp XSwgb2lzW2ldKTsKKyAJCXV0aWxfZm10X29ial9lbmQoKTsgLyogbmV0ZGV2cyBsaXN0ICovCist CQl1dGlsX2ZtdF9vYmpfZW5kKCk7IC8qIGFkYXB0ZXIgKi8KKysJCXpwY2lfYWRhcHRlcl9qc29u X3ByaW50X2VuZCgpOworIAkJZmZsdXNoKHN0ZG91dCk7CisgCX0KKyAJaWYgKG9wdHMtPnJlcG9y dCkgeworZGlmZiAtLWdpdCBhL3pwY2ltb24venBjaW1vbi5jIGIvenBjaW1vbi96cGNpbW9uLmMK K2luZGV4IDMyNTUwZmYwLi5lMzBmMjUxZSAxMDA2NDQKKy0tLSBhL3pwY2ltb24venBjaW1vbi5j CisrKysgYi96cGNpbW9uL3pwY2ltb24uYworQEAgLTExMiw2ICsxMTIsMjcgQEAgc3RhdGljIHZv aWQgcGFyc2VfY21kbGluZShpbnQgYXJnYywgY2hhciAqYXJndltdLCBzdHJ1Y3Qgb3B0aW9ucyAq b3B0cykKKyAJfSB3aGlsZSAoY21kICE9IC0xKTsKKyB9CisgCisrdm9pZCB6cGNpX2FkYXB0ZXJf anNvbl9wcmludF9zdGFydChzdHJ1Y3QgenBjaV9kZXYgKnpkZXYpCisreworKwljaGFyICpwY2lf YWRkcjsKKysKKysJdXRpbF9mbXRfb2JqX3N0YXJ0KEZNVF9ERUZBVUxULCAiYWRhcHRlciIpOwor Kwl1dGlsX2ZtdF9wYWlyKEZNVF9RVU9URSwgInBmdCIsIHpwY2lfcGZ0X3N0cih6ZGV2KSk7Cisr CXV0aWxfZm10X29ial9zdGFydChGTVRfREVGQVVMVCwgImlkcyIpOworKwl1dGlsX2ZtdF9wYWly KEZNVF9RVU9URSwgImZpZCIsICIweCUweCIsIHpkZXYtPmZpZCk7CisrCWlmICh6ZGV2LT51aWRf aXNfdW5pcXVlKQorKwkJdXRpbF9mbXRfcGFpcihGTVRfUVVPVEUsICJ1aWQiLCAiMHglMHgiLCB6 ZGV2LT51aWQpOworKwlwY2lfYWRkciA9IHpwY2lfcGNpX2FkZHIoemRldik7CisrCXV0aWxfZm10 X3BhaXIoRk1UX1FVT1RFLCAicGNpX2FkZHJlc3MiLCBwY2lfYWRkcik7CisrCWZyZWUocGNpX2Fk ZHIpOworKwl1dGlsX2ZtdF9vYmpfZW5kKCk7CisrfQorKworK3ZvaWQgenBjaV9hZGFwdGVyX2pz b25fcHJpbnRfZW5kKHZvaWQpCisreworKwl1dGlsX2ZtdF9vYmpfZW5kKCk7IC8qIGFkYXB0ZXIg Ki8KKyt9CisrCisgdm9pZCB6cGNpbW9uX2pzb25fYmFzZTY0X3BhaXIoY2hhciAqbmFtZSwgdWlu dDhfdCAqYnVmLCBpbnQgbGVuKQorIHsKKyAJaW50IGI2NF9jYWxjbGVuLCBiNjRsZW47CitkaWZm IC0tZ2l0IGEvenBjaW1vbi96cGNpbW9uLmggYi96cGNpbW9uL3pwY2ltb24uaAoraW5kZXggNzY4 ZDU5MjEuLmNiMTI0MDU2IDEwMDY0NAorLS0tIGEvenBjaW1vbi96cGNpbW9uLmgKKysrKyBiL3pw Y2ltb24venBjaW1vbi5oCitAQCAtNDgsNSArNDgsNyBAQCBzdHJ1Y3QgenBjaW1vbl9vcHMgewor IAorIHZvaWQgenBjaV9saXN0X3JlbG9hZChzdHJ1Y3QgdXRpbF9saXN0ICoqenBjaV9saXN0KTsK KyAKKyt2b2lkIHpwY2lfYWRhcHRlcl9qc29uX3ByaW50X3N0YXJ0KHN0cnVjdCB6cGNpX2RldiAq emRldik7Cisrdm9pZCB6cGNpX2FkYXB0ZXJfanNvbl9wcmludF9lbmQodm9pZCk7Cisgdm9pZCB6 cGNpbW9uX2pzb25fYmFzZTY0X3BhaXIoY2hhciAqbmFtZSwgdWludDhfdCAqYnVmLCBpbnQgbGVu KTsKKyAjZW5kaWYgLyogWlBDSU1PTl9aUENJTU9OX0ggKi8KKy0tIAorMi41NS4wCisKKworRnJv bSAyZWNlZWRlYjExMTQ1Mzk0OWFjNzg2ODVjMjFjMGY2YTA1ZjAyYmNkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0uY29t PgorRGF0ZTogTW9uLCAyMiBKdW4gMjAyNiAxMjo0MzowNyArMDIwMAorU3ViamVjdDogW1BBVENI IDE2LzIzXSB6cGNpbW9uOiBBZGQgTlZNZSBTTUFSVCBkYXRhIG1vbml0b3IKK01JTUUtVmVyc2lv bjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworQWRkIGEgbmV3IG1vbml0b3Igd2hpY2ggdXNlcyBs aWJudm1lIHRvIGNvbGxlY3QgU01BUlQgZGF0YSBmcm9tIE5WTWVzLgorVGhpcyBtb25pdG9yIG9u bHkgaW1wbGVtZW50cyB0aGUgLmNvbGxlY3RfYWRhcHRlcl9kYXRhIG9wZXJhdGlvbiBzaW5jZQor aXQgY2FycmllcyBubyBzdGF0ZSBhY3Jvc3MgZGF0YSBjb2xsZWN0aW9ucy4gTmV2ZXJ0aGVsZXNz IGZvciBmdXR1cmUKK3N5bW1ldHJ5IGFuZCBwb3NzaWJsZSBmdXR1cmUgZXhwYW5zaW9uIGFsc28g YWRkIGFuIGVtcHR5IHN0cnVjdAorbnZtZW1vbl9jdHguCisKK1Jldmlld2VkLWJ5OiBKYW4gSMO2 cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOaWtsYXMgU2No bmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4gSMO2cHBu ZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5jb20+CistLS0KKyBSRUFETUUubWQgICAgICAgICAgICAg IHwgIDcgKy0tCisgaW5jbHVkZS9saWIvcGNpX3NjbHAuaCB8ICAyICsKKyB6cGNpbW9uL01ha2Vm aWxlICAgICAgIHwgMjIgKysrKysrKysrLQorIHpwY2ltb24vbnZtZW1vbi5jICAgICAgfCA5OCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyB6cGNpbW9uL252bWVt b24uaCAgICAgIHwgMTMgKysrKysrCisgenBjaW1vbi96cGNpbW9uLjggICAgICB8IDI2ICsrKysr KystLS0tCisgenBjaW1vbi96cGNpbW9uLmMgICAgICB8ICA1ICsrKworIHpwY2ltb24venBjaW1v bi5oICAgICAgfCAgNCArKworIHpwY2ltb24venBjaW1vbl9jbGkuaCAgfCAgOCArKysrCisgOSBm aWxlcyBjaGFuZ2VkLCAxNzIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCisgY3JlYXRl IG1vZGUgMTAwNjQ0IHpwY2ltb24vbnZtZW1vbi5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHpwY2lt b24vbnZtZW1vbi5oCisKK2RpZmYgLS1naXQgYS9SRUFETUUubWQgYi9SRUFETUUubWQKK2luZGV4 IDQwNDViMGY4Li5hYjNkY2Q0ZSAxMDA2NDQKKy0tLSBhL1JFQURNRS5tZAorKysrIGIvUkVBRE1F Lm1kCitAQCAtMzI3LDYgKzMyNyw3IEBAIGJ1aWxkIG9wdGlvbnM6CisgfCBzeXN0ZW1kICAgICAg fCBgSEFWRV9TWVNURU1EYCAgICAgfCBoc2F2bWNvcmUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8CisgfCBsaWJ1ZGV2ICAgICAgfCBgSEFWRV9MSUJVREVWYCAgICAgfCBjcGFjZnN0YXRz ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgfCBsaWJubDMgICAgICAgfCBgSEFWRV9M SUJOTDNgICAgICAgfCB6cGNpbW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisr fCBsaWJudm1lICAgICAgfCBgSEFWRV9MSUJOVk1FYCAgICAgfCB6cGNpbW9uICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8CisgCisgVGhpcyB0YWJsZSBsaXN0cyBhZGRpdGlvbmFsIGJ1 aWxkIG9yIGluc3RhbGwgb3B0aW9uczoKKyAKK0BAIC0zNzUsMTAgKzM3NiwxMCBAQCB0aGUgZGlm ZmVyZW50IHRvb2xzIGFyZSBwcm92aWRlZDoKKyAgIFRoZSBydW50aW1lIHJlcXVpcmVtZW50cyBh cmU6IG9wZW5zc2wtbGlicyAoPj0gMS4xLjEpIGFuZCBsaWJjdXJsLgorIAorICogenBjaW1vbjoK Ky0gIEZvciBidWlsZGluZyB6cGNpbW9uIE9wZW5TU0wgYW5kIHRoZSBOZXRsaW5rIExpYnJhcnkg U3VpdGUgKGxpYm5sMykgYXJlCistICByZXF1aXJlZC4KKysgIEZvciBidWlsZGluZyB6cGNpbW9u IE9wZW5TU0wsIHRoZSBOZXRsaW5rIExpYnJhcnkgU3VpdGUgKGxpYm5sMyksCisrICBhbmQgbGli bnZtZSBhcmUgcmVxdWlyZWQuCisgICBUaXA6IHlvdSBtYXkgc2tpcCB0aGUgenBjaW1vbiBidWls ZCBieSBhZGRpbmcKKy0gIGBIQVZFX09QRU5TU0w9MGAgb3IgYEhBVkVfTElCTkwzPTBgCisrICBg SEFWRV9PUEVOU1NMPTBgIG9yIGBIQVZFX0xJQk5MMz0wYCBvciBgSEFWRV9MSUJOVk1FPTBgLgor IAorICogb3Nhc25tcGQ6CisgICBZb3UgbmVlZCBhdCBsZWFzdCB0aGUgTkVULVNOTVAgNS4xLngg cGFja2FnZSAobmV0LXNubXAtZGV2ZWwucnBtKQorZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGliL3Bj aV9zY2xwLmggYi9pbmNsdWRlL2xpYi9wY2lfc2NscC5oCitpbmRleCA2ODhhN2I3Ni4uYzA3NWIy NjQgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2xpYi9wY2lfc2NscC5oCisrKysgYi9pbmNsdWRlL2xp Yi9wY2lfc2NscC5oCitAQCAtMjEsOSArMjEsMTEgQEAKKyAjZGVmaW5lIFNDTFBfRVJSTk9USUZZ X0FRX0RFQ09ORgkJMQorICNkZWZpbmUgU0NMUF9FUlJOT1RJRllfQVFfUkVQT1JUX0VSUgkJMgor ICNkZWZpbmUgU0NMUF9FUlJOT1RJRllfQVFfT1BUSUNTX0RBVEEJCTMKKysjZGVmaW5lIFNDTFBf RVJSTk9USUZZX0FRX05WTUVfU01BUlRfREFUQQk0CisgCisgI2RlZmluZSBTQ0xQX0VSUk5PVElG WV9JRF9aUENJQ1RMCQkweDQ3MTMKKyAjZGVmaW5lIFNDTFBfRVJSTk9USUZZX0lEX09QVElDU01P TgkJMHg0NzE0CisrI2RlZmluZSBTQ0xQX0VSUk5PVElGWV9JRF9OVk1FTU9OCQkweDQ3MTUKKyAK KyAjZGVmaW5lIFNDTFBfRVJSTk9USUZZX0RBVEFfU0laRQkJNDA1NAorIAorZGlmZiAtLWdpdCBh L3pwY2ltb24vTWFrZWZpbGUgYi96cGNpbW9uL01ha2VmaWxlCitpbmRleCBjYzBhOGFmMC4uY2U4 MTVhMzEgMTAwNjQ0CistLS0gYS96cGNpbW9uL01ha2VmaWxlCisrKysgYi96cGNpbW9uL01ha2Vm aWxlCitAQCAtMjksNiArMjksMTYgQEAgY2hlY2tfZGVwX2xpYm5sMzoKKyBCVUlMRFRBUkdFVCAr PSBjaGVja19kZXBfbGlibmwzCisgZW5kaWYgIyBIQVZFX0xJQk5MMworIAorK2lmbmVxICgke0hB VkVfTElCTlZNRX0sMCkKKytjaGVja19kZXBfbGlibnZtZToKKysJJChjYWxsIGNoZWNrX2RlcCwg XAorKwkJInpwY2ltb24iLCBcCisrCQkibGlibnZtZS5oIiwgXAorKwkJImxpYm52bWUtZGV2ZWwi LCBcCisrCQkiSEFWRV9MSUJOVk1FPTAiKQorK0JVSUxEVEFSR0VUICs9IGNoZWNrX2RlcF9saWJu dm1lCisrZW5kaWYgIyBIQVZFX0xJQk5WTUUKKysKKyBpZmVxICgke0hBVkVfT1BFTlNTTH0sMCkK KyAKKyBhbGw6CitAQCAtNDQsNiArNTQsMTMgQEAgYWxsOgorIGluc3RhbGw6CisgCSQoU0tJUCkg SEFWRV9MSUJOTDM9MAorIAorK2Vsc2UgaWZlcSAoJHtIQVZFX0xJQk5WTUV9LDApCisrYWxsOgor KwkkKFNLSVApIEhBVkVfTElCTlZNRT0wCisrCisraW5zdGFsbDoKKysJJChTS0lQKSBIQVZFX0xJ Qk5WTUU9MAorKworIGVsc2UKKyAKKyBpZm5lcSAoJChzaGVsbCBzaCAtYyAnY29tbWFuZCAtdiBw a2ctY29uZmlnJyksKQorQEAgLTU4LDEyICs3NSwxNSBAQCBMSUJfTEZMQUdTICs9ICQoc2hlbGwg JChQS0dfQ09ORklHKSAtLXNpbGVuY2UtZXJyb3JzIC0tbGlicyBsaWJubC1nZW5sLTMuMCkKKyBM SUJfTEZMQUdTICs9ICQoc2hlbGwgJChQS0dfQ09ORklHKSAtLXNpbGVuY2UtZXJyb3JzIC0tbGli cyBsaWJubC1yb3V0ZS0zLjApCisgCisgTElCX0xGTEFHUyArPSAkKHNoZWxsICQoUEtHX0NPTkZJ RykgLS1zaWxlbmNlLWVycm9ycyAtLWxpYnMgbGliY3J5cHRvKQorK0xJQl9MRkxBR1MgKz0gJChz aGVsbCAkKFBLR19DT05GSUcpIC0tc2lsZW5jZS1lcnJvcnMgLS1saWJzIGxpYm52bWUpCisgZWxz ZQorIExJQl9DRkxBR1MgKz0gLUkgL3Vzci9pbmNsdWRlL2xpYm5sMy8KKyBMSUJfTEZMQUdTICs9 IC1sbmwtcm91dGUtMyAtbG5sLWdlbmwtMyAtbG5sLTMKKyAKKyBMSUJfQ0ZMQUdTICs9IC1JIC91 c3IvaW5jbHVkZS9vcGVuc3NsLworIExJQl9MRkxBR1MgKz0gLWxjcnlwdG8KKysKKytMSUJfTEZM QUdTICs9IC1sbnZtZQorIGVuZGlmCisgCisgQUxMX0NQUEZMQUdTICs9ICQoTElCX0NGTEFHUykK K0BAIC03Myw3ICs5Myw3IEBAIEJVSUxEVEFSR0VUICs9IHpwY2ltb24KKyAKKyBhbGw6ICR7QlVJ TERUQVJHRVR9CisgCistenBjaW1vbjogenBjaW1vbi5vIG9wdGljc21vbi5vIG9wdGljc19pbmZv Lm8gb3B0aWNzX3NjbHAubyBldGh0b29sLm8gbGlua19tb24ubyAkKGxpYnMpCisrenBjaW1vbjog enBjaW1vbi5vIG52bWVtb24ubyBvcHRpY3Ntb24ubyBvcHRpY3NfaW5mby5vIG9wdGljc19zY2xw Lm8gZXRodG9vbC5vIGxpbmtfbW9uLm8gJChsaWJzKQorIAorIGluc3RhbGw6IGFsbAorIAkkKElO U1RBTEwpIC1kIC1tIDc1NSAkKERFU1RESVIpJChCSU5ESVIpICQoREVTVERJUikkKE1BTkRJUikv bWFuOAorZGlmZiAtLWdpdCBhL3pwY2ltb24vbnZtZW1vbi5jIGIvenBjaW1vbi9udm1lbW9uLmMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uODVhNWQwYWQKKy0tLSAvZGV2 L251bGwKKysrKyBiL3pwY2ltb24vbnZtZW1vbi5jCitAQCAtMCwwICsxLDk4IEBACisrLyoKKysg KiB6cGNpbW9uIC0gUmVwb3J0IG1vbml0b3JpbmcgZGF0YSB0byBmaXJtd2FyZQorKyAqCisrICog Q29weXJpZ2h0IElCTSBDb3JwLiAyMDI1CisrICoKKysgKiBzMzkwLXRvb2xzIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgTElDRU5TRSBmb3IgZGV0YWlscy4K KysgKi8KKysjaW5jbHVkZSA8ZXJyLmg+CisrI2luY2x1ZGUgPGVycm5vLmg+CisrI2luY2x1ZGUg PGZjbnRsLmg+CisrI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKysjaW5jbHVkZSA8c3RkaW8uaD4KKysj aW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPHN0cmluZy5oPgorKyNpbmNsdWRlIDx1bmlz dGQuaD4KKysjaW5jbHVkZSA8bGlibnZtZS5oPgorKworKyNpbmNsdWRlICJsaWIvcGNpX2xpc3Qu aCIKKysjaW5jbHVkZSAibGliL3BjaV9zY2xwLmgiCisrI2luY2x1ZGUgImxpYi91dGlsX2ZtdC5o IgorKworKyNpbmNsdWRlICJudm1lbW9uLmgiCisrI2luY2x1ZGUgInpwY2ltb24uaCIKKysKKytz dGF0aWMgdm9pZCBudm1lX2pzb25fcHJpbnQoc3RydWN0IHpwY2ltb25fY3R4ICpjdHgsIHN0cnVj dCB6cGNpX2RldiAqemRldiwgY29uc3QgY2hhciAqbmFtZSwKKysJCQkgICAgc3RydWN0IG52bWVf c21hcnRfbG9nICpsb2cpCisreworKwl6cGNpX2FkYXB0ZXJfanNvbl9wcmludF9zdGFydCh6ZGV2 KTsKKysJdXRpbF9mbXRfb2JqX3N0YXJ0KEZNVF9ERUZBVUxULCAibnZtZWRldiIpOworKwl1dGls X2ZtdF9wYWlyKEZNVF9RVU9URSwgImRldiIsIG5hbWUpOworKwlpZiAoY3R4LT5vcHRzLnNtYXJ0 X2Jsb2IpCisrCQl6cGNpbW9uX2pzb25fYmFzZTY0X3BhaXIoInNtYXJ0LWxvZy1yYXciLCAodWlu dDhfdCAqKWxvZywgc2l6ZW9mKCpsb2cpKTsKKysJdXRpbF9mbXRfb2JqX2VuZCgpOworKwl6cGNp X2FkYXB0ZXJfanNvbl9wcmludF9lbmQoKTsKKysJZmZsdXNoKHN0ZG91dCk7CisrfQorKworK3N0 YXRpYyBpbnQgc2NscF9pc3N1ZV9udm1lX3NtYXJ0X3JlcG9ydChzdHJ1Y3QgenBjaV9kZXYgKnpk ZXYsIGNvbnN0IHVpbnQ4X3QgKnNtYXJ0LCBpbnQgc21hcnRfbGVuKQorK3sKKysJY2hhciAqcGNp X2FkZHI7CisrCWludCByYzsKKysKKysJaWYgKHpkZXYtPnBmdCAhPSBaUENJX1BGVF9OVk1FKQor KwkJcmV0dXJuIC1FTk9UU1VQOworKwlwY2lfYWRkciA9IHpwY2lfcGNpX2FkZHIoemRldik7Cisr CXJjID0genBjaV9zY2xwX2lzc3VlX2FjdGlvbihwY2lfYWRkciwgU0NMUF9FUlJOT1RJRllfQVFf TlZNRV9TTUFSVF9EQVRBLAorKwkJCQkgICAgKGNoYXIgKilzbWFydCwgc21hcnRfbGVuLCBTQ0xQ X0VSUk5PVElGWV9JRF9OVk1FTU9OKTsKKysJZnJlZShwY2lfYWRkcik7CisrCXJldHVybiByYzsK Kyt9CisrCisrc3RhdGljIGludCBudm1lbW9uX2NvbGxlY3RfYWRhcHRlcl9kYXRhKHN0cnVjdCB6 cGNpbW9uX2N0eCAqY3R4LCBzdHJ1Y3QgenBjaV9kZXYgKnpkZXYpCisreworKwlzdHJ1Y3QgbnZt ZV9zbWFydF9sb2cgbG9nID0ge307CisrCWludCBudm1lX2ZkLCByYyA9IC1FTk9ERVY7CisrCWNo YXIgKmRldiwgKnBjaV9hZGRyOworKworKwlpZiAoemRldi0+cGZ0ICE9IFpQQ0lfUEZUX05WTUUp CisrCQlyZXR1cm4gLUVOT0RFVjsKKysKKysJcGNpX2FkZHIgPSB6cGNpX3BjaV9hZGRyKHpkZXYp OworKwlkZXYgPSB6cGNpX2dldF9udm1lX2RldmljZV9ub2RlKHBjaV9hZGRyKTsKKysJaWYgKCFk ZXYpCisrCQlnb3RvIGV4aXRfZnJlZV9hZGRyOworKworKwludm1lX2ZkID0gb3BlbmF0KEFUX0ZE Q1dELCBkZXYsIE9fUkRPTkxZKTsKKysJaWYgKG52bWVfZmQgPCAwKSB7CisrCQl3YXJuKCJGYWls ZWQgdG8gb3BlbiAlcyIsIGRldik7CisrCQlyYyA9IC1lcnJubzsKKysJCWdvdG8gZXhpdF9mcmVl X2RldjsKKysJfQorKworKwlyYyA9IG52bWVfZ2V0X2xvZ19zbWFydChudm1lX2ZkLCBOVk1FX05T SURfQUxMLCBmYWxzZSwgJmxvZyk7CisrCWlmIChyYykgeworKwkJd2FybngoIkdldHRpbmcgTlZN ZSBTTUFSVCBsb2cgZmFpbGVkICVkIiwgcmMpOworKwkJZ290byBleGl0X2Nsb3NlOworKwl9Cisr CWlmICghY3R4LT5vcHRzLnF1aWV0KQorKwkJbnZtZV9qc29uX3ByaW50KGN0eCwgemRldiwgZGV2 LCAmbG9nKTsKKysJaWYgKGN0eC0+b3B0cy5yZXBvcnQpIHsKKysJCXJjID0gc2NscF9pc3N1ZV9u dm1lX3NtYXJ0X3JlcG9ydCh6ZGV2LCAodWludDhfdCAqKSZsb2csIHNpemVvZihsb2cpKTsKKysJ CWlmIChyYyA8IDAgJiYgcmMgIT0gLUVOT1RTVVApCisrCQkJd2FybngoIkVycm9yIGlzc3Vpbmcg U0NMUCBmb3IgTlZNZSBTTUFSVCBsb2cgZmFpbGVkIik7CisrCX0KKysKKytleGl0X2Nsb3NlOgor KwljbG9zZShudm1lX2ZkKTsKKytleGl0X2ZyZWVfZGV2OgorKwlmcmVlKGRldik7CisrZXhpdF9m cmVlX2FkZHI6CisrCWZyZWUocGNpX2FkZHIpOworKwlyZXR1cm4gcmM7CisrfQorKworK2NvbnN0 IHN0cnVjdCB6cGNpbW9uX29wcyBudm1lbW9uX29wcyA9IHsKKysJLmNvbGxlY3RfYWRhcHRlcl9k YXRhID0gbnZtZW1vbl9jb2xsZWN0X2FkYXB0ZXJfZGF0YSwKKyt9OworZGlmZiAtLWdpdCBhL3pw Y2ltb24vbnZtZW1vbi5oIGIvenBjaW1vbi9udm1lbW9uLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMC4uMDY1OGJjYWEKKy0tLSAvZGV2L251bGwKKysrKyBiL3pwY2ltb24v bnZtZW1vbi5oCitAQCAtMCwwICsxLDEzIEBACisrLyoKKysgKiBDb3B5cmlnaHQgSUJNIENvcnAu IDIwMjUKKysgKgorKyAqIHMzOTAtdG9vbHMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg TUlUIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgorKyAqLworKyNpZm5kZWYgWlBD SU1PTl9OVk1FTU9OX0gKKysjZGVmaW5lIFpQQ0lNT05fTlZNRU1PTl9ICisrCisrc3RydWN0IG52 bWVtb25fY3R4IHt9OworKworK2V4dGVybiBjb25zdCBzdHJ1Y3QgenBjaW1vbl9vcHMgbnZtZW1v bl9vcHM7CisrI2VuZGlmIC8qIFpQQ0lNT05fTlZNRU1PTl9IICovCitkaWZmIC0tZ2l0IGEvenBj aW1vbi96cGNpbW9uLjggYi96cGNpbW9uL3pwY2ltb24uOAoraW5kZXggOWIxNmZhOTEuLjZjYzZh YjI5IDEwMDY0NAorLS0tIGEvenBjaW1vbi96cGNpbW9uLjgKKysrKyBiL3pwY2ltb24venBjaW1v bi44CitAQCAtMzMsNyArMzMsNyBAQAorIC5USCB6cGNpbW9uIDggIk9jdCAyMDI0IiBzMzkwLXRv b2xzIHpwY2ljdGwKKyAuCisgLlNIIE5BTUUKKy16cGNpbW9uIC0gTW9uaXRvciBvcHRpY2FsIG1v ZHVsZXMgZm9yIGRpcmVjdGx5IGF0dGFjaGVkIFBDSSBiYXNlZCBOSUNzCisrenBjaW1vbiAtIE1v bml0b3IgaGVhbHRoIG9mIGRpcmVjdGx5IGF0dGFjaGVkIFBDSSBkZXZpY2VzIGluY2x1ZGluZyBO Vk1lcyBhbmQgTklDcy4KKyAuCisgLgorIC5TSCBTWU5PUFNJUworQEAgLTQ1LDI2ICs0NSwyOSBA QCB6cGNpbW9uIC0gTW9uaXRvciBvcHRpY2FsIG1vZHVsZXMgZm9yIGRpcmVjdGx5IGF0dGFjaGVk IFBDSSBiYXNlZCBOSUNzCisgVXNlCisgLkIgenBjaW1vbgorIHRvIG1vbml0b3IgdGhlIGhlYWx0 aCBvZiB0aGUgb3B0aWNhbCBtb2R1bGVzIG9mIGRpcmVjdGx5IGF0dGFjaGVkIFBDSSBiYXNlZAor LU5JQ3MuIFdoZW4gZXhlY3V0ZWQgd2l0aG91dCB0aGUgXGZCLS1tb25pdG9yXGZSIG9wdGlvbiBp dCB3aWxsIGNvbGxlY3Qgb3B0aWNhbAorLW1vZHVsZSBkYXRhIGZyb20gYWxsIGF2YWlsYWJsZSBQ Q0kgbmV0d29yayBpbnRlcmZhY2UgcGh5c2ljYWwgZnVuY3Rpb25zIGFuZAorLXByaW50IGEgc3Vt bWFyeSBpbiBKU09OIGZvcm1hdC4gQWRkIHRoZSBcZkItLXNlbmQtcmVwb3J0XGZSIG9wdGlvbiB0 byByZXBvcnQKKy10aGlzIGRhdGEgdG8gdGhlIHN1cHBvcnQgZWxlbWVudC4KKy0KKytOSUNzIGFz IHdlbGwgYXMgdGhlIGhlYWx0aCBvZiBOVk1lIGRldmljZXMgdXNpbmcgdGhlaXIgU01BUlQgZGF0 YS4gV2hlbgorK2V4ZWN1dGVkIHdpdGhvdXQgdGhlIFxmQi0tbW9uaXRvclxmUiBvcHRpb24gaXQg d2lsbCBjb2xsZWN0IGhlYWx0aCBkYXRhIGZyb20KKythbGwgYXZhaWxhYmxlIGFuZCByZWxldmFu dCBQQ0kgZGV2aWNlcyBhbmQgcHJpbnQgYSBzdW1tYXJ5IGluIEpTT04gZm9ybWF0LiBBZGQKKyt0 aGUgXGZCLS1zZW5kLXJlcG9ydFxmUiBvcHRpb24gdG8gcmVwb3J0IHRoaXMgZGF0YSB0byB0aGUg c3VwcG9ydCBlbGVtZW50LgorIAorIC4KKyAuCisgLlNIIE9QVElPTlMKKyAuU1MgT3BlcmF0aW9u IE9wdGlvbnMKKyAuT0QgbW9uaXRvciAibSIKKy1SdW4gY29udGludW91c2x5IGFuZCByZXBvcnQg b24gbGluayBzdGF0ZSBjaGFuZ2VzIGFuZCBwZXJpb2RpY2FsbHkKKytSdW4gY29udGludW91c2x5 IGFuZCBtb25pdG9yIGFsbCBzdXBwb3J0ZWQgZGV2aWNlcy4gT24gbGluayBzdGF0ZSBjaGFuZ2Vz Cisrb3B0aWNhbCBtb2R1bGUgZGF0YSBpcyBjb2xsZWN0ZWQgYW5kIE5WTWUgU01BUlQgZGF0YSBp cyBjb2xsZWN0ZWQgb24gaG90cGx1Zy4KKytNb3Jlb3ZlciBldmVyeQorKy5CIC0taW50ZXJ2YWwK KytzZWNvbmRzIGRhdGEgZnJvbSBhbGwgYWRhcHRlcnMgaXMgY29sbGVjdGVkIGFzIGEgd2hvbGUg c3lzdGVtIHNuYXBzaG90LgorIC5QUAorIC4KKyAuT0Qgc2VuZC1yZXBvcnQgInIiCistUmVwb3J0 IHRoZSBvcHRpY3MgaGVhbHRoIGRhdGEgdG8gdGhlIFN1cHBvcnQgRWxlbWVudCAoU0UpCisrUmVw b3J0IHRoZSBvcHRpY3MgYW5kIE5WTWUgaGVhbHRoIGRhdGEgdG8gdGhlIFN1cHBvcnQgRWxlbWVu dCAoU0UpCisgLlBQCisgLgorIC5PRCBxdWlldCAicSIKKy1CZSBxdWlldCBhbmQgZG9uJ3QgcHJp bnQgb3B0aWNzIGhlYWx0aCBzdW1tYXJ5CisrQmUgcXVpZXQgYW5kIGRvbid0IHByaW50IGhlYWx0 aCBzdW1tYXJpZXMuCisgLlBQCisgLgorIC5PRCBpbnRlcnZhbCAiaSIgInNlY29uZHMiCitAQCAt ODQsNiArODcsMTEgQEAgb24iLgorIC5QUAorIC5QUAorIC4KKysuT0Qgc21hcnQtbG9nLXJhdyAi IgorK0luY2x1ZGUgYSBiYXNlNjQgZW5jb2RlZCBiaW5hcnkgZHVtcCBvZiBlYWNoIE5WTWUncyBT TUFSVCBkYXRhLiBUaGlzIG1hdGNoZXMKKysibnZtZSBzbWFydC1sb2cgLS1vdXRwdXQtZm9ybWF0 PWJpbmFyeSAvZGV2L252bWVYIi4KKysuUFAKKysuCisgLlNTIE91dHB1dCBGb3JtYXQgT3B0aW9u cworIC5PRCBmb3JtYXQgIiIgPEZPUk1BVD4KKyBTZXQgdGhlIG91dHB1dCBmb3JtYXQgb3V0IG9m IGpzb24sIGpzb24tc2VxLCBqc29ubCwgcGFpcnMsIGFuZCBjc3YuIE5vdGUgdGhhdAorZGlmZiAt LWdpdCBhL3pwY2ltb24venBjaW1vbi5jIGIvenBjaW1vbi96cGNpbW9uLmMKK2luZGV4IGUzMGYy NTFlLi42MjVhMTM2MyAxMDA2NDQKKy0tLSBhL3pwY2ltb24venBjaW1vbi5jCisrKysgYi96cGNp bW9uL3pwY2ltb24uYworQEAgLTI4LDYgKzI4LDcgQEAKKyAjaW5jbHVkZSAibGliL3V0aWxfdGlt ZS5oIgorICNpbmNsdWRlICJsaWIvenRfY29tbW9uLmgiCisgCisrI2luY2x1ZGUgIm52bWVtb24u aCIKKyAjaW5jbHVkZSAib3B0aWNzbW9uLmgiCisgI2luY2x1ZGUgInpwY2ltb24uaCIKKyAjaW5j bHVkZSAienBjaW1vbl9jbGkuaCIKK0BAIC00Miw2ICs0Myw3IEBAIHN0cnVjdCB6cGNpbW9uX21v bml0b3IgeworIAorIHN0YXRpYyBzdHJ1Y3QgenBjaW1vbl9tb25pdG9yIG1vbml0b3JzW10gPSB7 CisgCXsub3BzID0gJm9wdGljc21vbl9vcHMsIC5pbml0aWFsaXplZCA9IDAsIC5vcGVuZWQgPSAw fSwKKysJey5vcHMgPSAmbnZtZW1vbl9vcHMsIC5pbml0aWFsaXplZCAgPSAwLCAub3BlbmVkID0g MH0sCisgfTsKKyAKKyBzdGF0aWMgY29uc3Qgc3RydWN0IHV0aWxfcHJnIHByZyA9IHsKK0BAIC03 OSw2ICs4MSw5IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2NtZGxpbmUoaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSwgc3RydWN0IG9wdGlvbnMgKm9wdHMpCisgCQljYXNlIE9QVF9EVU1QOgorIAkJCW9wdHMt Pm1vZHVsZV9pbmZvID0gdHJ1ZTsKKyAJCQlicmVhazsKKysJCWNhc2UgT1BUX1NNQVJUX0RVTVA6 CisrCQkJb3B0cy0+c21hcnRfYmxvYiA9IHRydWU7CisrCQkJYnJlYWs7CisgCQljYXNlIE9QVF9G T1JNQVQ6CisgCQkJaWYgKCF1dGlsX2ZtdF9uYW1lX3RvX3R5cGUob3B0YXJnLCAmZm10KSkKKyAJ CQkJZXJyeChFWElUX0ZBSUxVUkUsICJVbmtub3duIGZvcm1hdCAlcyIsIG9wdGFyZyk7CitkaWZm IC0tZ2l0IGEvenBjaW1vbi96cGNpbW9uLmggYi96cGNpbW9uL3pwY2ltb24uaAoraW5kZXggY2Ix MjQwNTYuLmRhMjJlYWJlIDEwMDY0NAorLS0tIGEvenBjaW1vbi96cGNpbW9uLmgKKysrKyBiL3pw Y2ltb24venBjaW1vbi5oCitAQCAtMTEsNiArMTEsNyBAQAorIAorICNpbmNsdWRlICJsaWIvdXRp bF9mbXQuaCIKKyAKKysjaW5jbHVkZSAibnZtZW1vbi5oIgorICNpbmNsdWRlICJvcHRpY3Ntb24u aCIKKyAKKyAjZGVmaW5lIEFQSV9MRVZFTCAxCitAQCAtMjYsMTIgKzI3LDE1IEBAIHN0cnVjdCBv cHRpb25zIHsKKyAKKyAJLyogT3B0aWNzIE1vbml0b3JpbmcgU3BlY2lmaWMgKi8KKyAJYm9vbCBt b2R1bGVfaW5mbzsKKysJLyogTlZNZSBNb25pdG9yaW5nIFNwZWNpZmljICovCisrCWJvb2wgc21h cnRfYmxvYjsKKyB9OworIAorIHN0cnVjdCB6cGNpbW9uX2N0eCB7CisgCXN0cnVjdCBvcHRpb25z IG9wdHM7CisgCXN0cnVjdCB1dGlsX2xpc3QgKnpwY2lfbGlzdDsKKyAJc3RydWN0IG9wdGljc21v bl9jdHggb3B0aWNzbW9uX2N0eDsKKysJc3RydWN0IG52bWVtb25fY3R4IG52bWVtb25fY3R4Owor IH07CisgCisgc3RydWN0IHpwY2ltb25fb3BzIHsKK2RpZmYgLS1naXQgYS96cGNpbW9uL3pwY2lt b25fY2xpLmggYi96cGNpbW9uL3pwY2ltb25fY2xpLmgKK2luZGV4IGY1YTBkYzNlLi4zYTBmMjFh MSAxMDA2NDQKKy0tLSBhL3pwY2ltb24venBjaW1vbl9jbGkuaAorKysrIGIvenBjaW1vbi96cGNp bW9uX2NsaS5oCitAQCAtMTIsNiArMTIsNyBAQAorIAorICNkZWZpbmUgT1BUX0RVTVAgMTI4Cisg I2RlZmluZSBPUFRfRk9STUFUIDEyOQorKyNkZWZpbmUgT1BUX1NNQVJUX0RVTVAgMTMwCisgCisg c3RhdGljIHN0cnVjdCB1dGlsX29wdCBvcHRfdmVjW10gPSB7CisgCVVUSUxfT1BUX1NFQ1RJT04o Ik9QRVJBVElPTiBPUFRJT05TIiksCitAQCAtMzUsNiArMzYsMTMgQEAgc3RhdGljIHN0cnVjdCB1 dGlsX29wdCBvcHRfdmVjW10gPSB7CisgCQkJIlRoaXMgbWF0Y2hlcyAnZXRodG9vbCAtLW1vZHVs ZS1pbmZvIDxuZXRkZXY+IHJhdyBvbiciLAorIAkJLmZsYWdzID0gVVRJTF9PUFRfRkxBR19OT1NI T1JULAorIAl9LAorKwl7CisrCQkub3B0aW9uID0geyAic21hcnQtbG9nLXJhdyIsIG5vX2FyZ3Vt ZW50LCBOVUxMLCBPUFRfU01BUlRfRFVNUCB9LAorKwkJLmRlc2MgPSAiSW5jbHVkZSBhIGJhc2U2 NCBlbmNvZGVkIGJpbmFyeSBkdW1wIG9mIHRoZSAiCisrCQkJIlNNQVJUIGxvZyBkYXRhIGZvciBl YWNoIE5WTWUuICIKKysJCQkiVGhpcyBtYXRjaGVzICdudm1lIHNtYXJ0LWxvZyAtLXJhdy1iaW5h cnkgPGRldj4nIiwKKysJCS5mbGFncyA9IFVUSUxfT1BUX0ZMQUdfTk9TSE9SVCwKKysJfSwKKyAJ VVRJTF9PUFRfU0VDVElPTigiT1BUSU9OUyBXSVRIIEFSR1VNRU5UUyIpLAorIAl7CisgCQkub3B0 aW9uID0geyAiaW50ZXJ2YWwiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2knIH0sCistLSAK KzIuNTUuMAorCisKK0Zyb20gZjFhMTFhMDFkZmY5NjMyYzA3YmE5ZWMzYzAwMWJlZDFiMGVmMmZm ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pa2xhcyBTY2huZWxsZSA8c2NobmVs bGVAbGludXguaWJtLmNvbT4KK0RhdGU6IFR1ZSwgMjEgQXByIDIwMjYgMTE6NDQ6MDkgKzAyMDAK K1N1YmplY3Q6IFtQQVRDSCAxNy8yM10genBjaW1vbjogQWRkIEpTT04gb3V0cHV0IGZvciBTTUFS VCBkYXRhIGRldGFpbHMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVGhp cyB1c2VzIHRoZSBzYW1lIGZvcm1hdCBhczoKKworICAgbnZtZSBzbWFydC1sb2cgLS1vdXRwdXQt Zm9ybWF0PWpzb24gL2Rldi9udm1lWAorCitPbmUgY29tcGxpY2F0aW9uIGJlaW5nIHRoYXQgc2V2 ZXJhbCB2YWx1ZXMgaW4gdGhlIFNNQVJUIGRhdGEgdXNlCit1bnNpZ25lZCAxMjggYml0IGludGVn ZXJzLiBCb3RoIEdDQyBhbmQgQ2xhbmcgc3VwcG9ydCBfX3VpbnQxMjhfdCBhcworYSBDIGV4dGVu c2lvbiBidXQgZG9uJ3Qgb2ZmZXIgcHJpbnRmKCkgc3VwcG9ydCBmb3IgaXQuIEp1c3QgbGlrZQor bnZtZS1jbGkgYWRkIGEgY3VzdG9tIHVpbnQxMjhfdCB0byBzdHJpbmcgZnVuY3Rpb24uLgorCitS ZXZpZXdlZC1ieTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorU2lnbmVk LW9mZi1ieTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0uY29tPgorU2lnbmVk LW9mZi1ieTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorLS0tCisgenBj aW1vbi9udm1lbW9uLmMgfCAxMDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL3pwY2ltb24vbnZtZW1vbi5jIGIvenBjaW1vbi9udm1lbW9u LmMKK2luZGV4IDg1YTVkMGFkLi5hNTE2YjRhYSAxMDA2NDQKKy0tLSBhL3pwY2ltb24vbnZtZW1v bi5jCisrKysgYi96cGNpbW9uL252bWVtb24uYworQEAgLTIzLDE0ICsyMywxMTYgQEAKKyAjaW5j bHVkZSAibnZtZW1vbi5oIgorICNpbmNsdWRlICJ6cGNpbW9uLmgiCisgCisrLyoqCisrICogUmVh ZHMgYSBDUFUgbmF0aXZlIDEyOCBiaXQgdW5zaWduZWQgaW50ZWdlciBmcm9tIHRoZSBiaW5hcnkg YnVmZmVyIEBkYXRhCisrICogY29udGFpbmluZyB0aGUgdmFsdWUgaW4gdGhlIDEyOCBiaXQgbGl0 dGxlIGVuZGlhbiBmb3JtYXQgdXNlZCBieSB0aGUKKysgKiBOVk1lIHN0YW5kYXJkLgorKyAqCisr ICogQHJldHVybiB0aGUgMTI4IGJpdCB2YWx1ZSBlbmNvZGVkIGluIHRoZSBkYXRhIGJ1ZmZlci4K KysgKi8KKytzdGF0aWMgX191aW50MTI4X3QgbnZtZV9sZTEyOF90b19jcHUoY29uc3QgX191OCBk YXRhWzE2XSkKKyt7CisrCV9fdWludDEyOF90IHU7CisrCWludCBpOworKworKwl1ID0gZGF0YVsw XTsKKysJZm9yIChpID0gMTsgaSA8IChpbnQpc2l6ZW9mKHUpOyBpKyspCisrCQl1IHw9IChfX3Vp bnQxMjhfdClkYXRhW2ldIDw8ICg4ICogaSk7CisrCXJldHVybiB1OworK30KKysKKysjZGVmaW5l IE1BWF9VSU5UMTI4X0RFQ0lNQUxfTEVOICg0MSkgLyogbGVuZ3RoIG9mIDJeMTI4LTEgaW4gZGVj aW1hbCArIDAgYnl0ZSAqLworKworKy8qKgorKyAqIFdyaXRlIHRoZSBkZWNpbWFsIHN0cmluZyBy ZXByZXNlbnRhdGlvbiBvZiB0aGUgcGFzc2VkIHVuc2lnbmVkIDEyOCBiaXQgdmFsdWUgQHZhbCBp bnRvCisrICogdGhlIGJ1ZmZlciBAYnVmIGZvciBvdXRwdXQgaW4gSlNPTi4gVGhlIHJlcHJlc2Vu dGF0aW9uIGRvZXMgbm90IGluY2x1ZGUKKysgKiBxdW90ZXMuCisrICovCisrc3RhdGljIHZvaWQg bnZtZV91MTI4X3RvX2pzb25fdmFsKF9fdWludDEyOF90IHZhbCwgY2hhciBidWZbTUFYX1VJTlQx MjhfREVDSU1BTF9MRU5dKQorK3sKKysJY29uc3QgY2hhciAqZGlnaXRfYXNjaWkgPSAiMDEyMzQ1 Njc4OSI7CisrCWludCBwb3MgPSBNQVhfVUlOVDEyOF9ERUNJTUFMX0xFTiAtIDE7CisrCWludCBt b2RfdGVuOworKwlpbnQgbGVuOworKworKwkvKiBXcml0ZSBkaWdpdHMgcmlnaHQgdG8gbGVmdCBh dCB0aGUgZW5kIG9mIHJlcyAqLworKwlkbyB7CisrCQltb2RfdGVuID0gdmFsICUgMTA7CisrCQl2 YWwgLz0gMTA7CisrCQlidWZbcG9zLS1dID0gZGlnaXRfYXNjaWlbbW9kX3Rlbl07CisrCX0gd2hp bGUgKHZhbCk7CisrCS8qIE1vdmUgZGlnaXRzIHRvIHRoZSBmcm9udCAqLworKwlsZW4gPSBNQVhf VUlOVDEyOF9ERUNJTUFMX0xFTiAtIDEgLSBwb3M7CisrCW1lbW1vdmUoYnVmLCAmYnVmW3BvcyAr IDFdLCBsZW4pOworKwlidWZbbGVuXSA9ICdcMCc7CisrfQorKworK3N0YXRpYyB2b2lkIG52bWVf anNvbl9wcmludF9zbWFydF9sb2coc3RydWN0IHpwY2ltb25fY3R4ICpjdHgsIHN0cnVjdCBudm1l X3NtYXJ0X2xvZyAqbG9nKQorK3sKKysJY2hhciB1MTI4X251bV9idWZbTUFYX1VJTlQxMjhfREVD SU1BTF9MRU5dOworKwl1bnNpZ25lZCBpbnQgdGVtcGVyYXR1cmU7CisrCisrCS8qIFdoaWxlIHNv bWUgZmllbGRzIGluIHN0cnVjdCBudm1lX3NtYXJ0X2xvZyBhcmUgX19sZVhYCisrCSAqIHRlbXBl cmF0dXJlIGlzIGFuIGFycmF5IG9mIHR3byB1OCBvZiB0aGUgbGl0dGxlIGVuZGlhbiBkYXRhCisr CSAqIGluIEtlbHZpbi4KKysJICovCisrCXRlbXBlcmF0dXJlID0gbG9nLT50ZW1wZXJhdHVyZVsx XSA8PCA4IHwgbG9nLT50ZW1wZXJhdHVyZVswXTsKKysKKysJdXRpbF9mbXRfb2JqX3N0YXJ0KEZN VF9ERUZBVUxULCAic21hcnQtbG9nIik7CisrCXV0aWxfZm10X3BhaXIoRk1UX0RFRkFVTFQsICJj cml0aWNhbF93YXJuaW5nIiwgIiVkIiwgbG9nLT5jcml0aWNhbF93YXJuaW5nKTsKKysJdXRpbF9m bXRfcGFpcihGTVRfREVGQVVMVCwgInRlbXBlcmF0dXJlIiwgIiVkIiwgdGVtcGVyYXR1cmUpOwor Kwl1dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxULCAiYXZhaWxfc3BhcmUiLCAiJWQiLCBsb2ctPmF2 YWlsX3NwYXJlKTsKKysJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgInNwYXJlX3RocmVzaCIs ICIlZCIsIGxvZy0+c3BhcmVfdGhyZXNoKTsKKysJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwg InBlcmNlbnRfdXNlZCIsICIlZCIsIGxvZy0+cGVyY2VudF91c2VkKTsKKysJdXRpbF9mbXRfcGFp cihGTVRfREVGQVVMVCwgImVuZHVyYW5jZV9ncnBfY3JpdGljYWxfd2FybmluZ19zdW1tYXJ5Iiwg IiVkIiwKKysJCSAgICAgIGxvZy0+ZW5kdV9ncnBfY3JpdF93YXJuX3N1bXJ5KTsKKysJbnZtZV91 MTI4X3RvX2pzb25fdmFsKG52bWVfbGUxMjhfdG9fY3B1KGxvZy0+ZGF0YV91bml0c19yZWFkKSwg dTEyOF9udW1fYnVmKTsKKysJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgImRhdGFfdW5pdHNf cmVhZCIsICIlcyIsIHUxMjhfbnVtX2J1Zik7CisrCW52bWVfdTEyOF90b19qc29uX3ZhbChudm1l X2xlMTI4X3RvX2NwdShsb2ctPmRhdGFfdW5pdHNfd3JpdHRlbiksIHUxMjhfbnVtX2J1Zik7Cisr CXV0aWxfZm10X3BhaXIoRk1UX0RFRkFVTFQsICJkYXRhX3VuaXRzX3dyaXR0ZW4iLCAiJXMiLCB1 MTI4X251bV9idWYpOworKwludm1lX3UxMjhfdG9fanNvbl92YWwobnZtZV9sZTEyOF90b19jcHUo bG9nLT5ob3N0X3JlYWRzKSwgdTEyOF9udW1fYnVmKTsKKysJdXRpbF9mbXRfcGFpcihGTVRfREVG QVVMVCwgImhvc3RfcmVhZF9jb21tYW5kcyIsICIlcyIsIHUxMjhfbnVtX2J1Zik7CisrCW52bWVf dTEyOF90b19qc29uX3ZhbChudm1lX2xlMTI4X3RvX2NwdShsb2ctPmhvc3Rfd3JpdGVzKSwgdTEy OF9udW1fYnVmKTsKKysJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgImhvc3Rfd3JpdGVfY29t bWFuZHMiLCAiJXMiLCB1MTI4X251bV9idWYpOworKwludm1lX3UxMjhfdG9fanNvbl92YWwobnZt ZV9sZTEyOF90b19jcHUobG9nLT5jdHJsX2J1c3lfdGltZSksIHUxMjhfbnVtX2J1Zik7CisrCXV0 aWxfZm10X3BhaXIoRk1UX0RFRkFVTFQsICJjb250cm9sbGVyX2J1c3lfdGltZSIsICIlcyIsIHUx MjhfbnVtX2J1Zik7CisrCW52bWVfdTEyOF90b19qc29uX3ZhbChudm1lX2xlMTI4X3RvX2NwdShs b2ctPnBvd2VyX2N5Y2xlcyksIHUxMjhfbnVtX2J1Zik7CisrCXV0aWxfZm10X3BhaXIoRk1UX0RF RkFVTFQsICJwb3dlcl9jeWNsZXMiLCAiJXMiLCB1MTI4X251bV9idWYpOworKwkvKiAyXjEyOCBo b3VycyBpcyAyLjgqMTBeMjQgdGltZXMgdGhlIGFnZSBvZiB0aGUgdW5pdmVyc2UgOykgKi8KKysJ bnZtZV91MTI4X3RvX2pzb25fdmFsKG52bWVfbGUxMjhfdG9fY3B1KGxvZy0+cG93ZXJfb25faG91 cnMpLCB1MTI4X251bV9idWYpOworKwl1dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxULCAicG93ZXJf b25faG91cnMiLCAiJXMiLCB1MTI4X251bV9idWYpOworKwludm1lX3UxMjhfdG9fanNvbl92YWwo bnZtZV9sZTEyOF90b19jcHUobG9nLT51bnNhZmVfc2h1dGRvd25zKSwgdTEyOF9udW1fYnVmKTsK KysJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgInVuc2FmZV9zaHV0ZG93bnMiLCAiJXMiLCB1 MTI4X251bV9idWYpOworKwludm1lX3UxMjhfdG9fanNvbl92YWwobnZtZV9sZTEyOF90b19jcHUo bG9nLT5tZWRpYV9lcnJvcnMpLCB1MTI4X251bV9idWYpOworKwl1dGlsX2ZtdF9wYWlyKEZNVF9E RUZBVUxULCAibWVkaWFfZXJyb3JzIiwgIiVzIiwgdTEyOF9udW1fYnVmKTsKKysJbnZtZV91MTI4 X3RvX2pzb25fdmFsKG52bWVfbGUxMjhfdG9fY3B1KGxvZy0+bnVtX2Vycl9sb2dfZW50cmllcyks IHUxMjhfbnVtX2J1Zik7CisrCXV0aWxfZm10X3BhaXIoRk1UX0RFRkFVTFQsICJudW1fZXJyX2xv Z19lbnRyaWVzIiwgIiVzIiwgdTEyOF9udW1fYnVmKTsKKysJdXRpbF9mbXRfcGFpcihGTVRfREVG QVVMVCwgIndhcm5pbmdfdGVtcF90aW1lIiwgIiVkIiwgbGUzMnRvaChsb2ctPndhcm5pbmdfdGVt cF90aW1lKSk7CisrCXV0aWxfZm10X3BhaXIoRk1UX0RFRkFVTFQsICJjcml0aWNhbF9jb21wX3Rp bWUiLCAiJWQiLCBsZTMydG9oKGxvZy0+Y3JpdGljYWxfY29tcF90aW1lKSk7CisrCXV0aWxfZm10 X3BhaXIoRk1UX0RFRkFVTFQsICJ0ZW1wZXJhdHVyZV9zZW5zb3JfMSIsICIlZCIsIGxlMTZ0b2go bG9nLT50ZW1wX3NlbnNvclswXSkpOworKwl1dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxULCAidGVt cGVyYXR1cmVfc2Vuc29yXzIiLCAiJWQiLCBsZTE2dG9oKGxvZy0+dGVtcF9zZW5zb3JbMV0pKTsK KysJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgInRlbXBlcmF0dXJlX3NlbnNvcl8zIiwgIiVk IiwgbGUxNnRvaChsb2ctPnRlbXBfc2Vuc29yWzJdKSk7CisrCXV0aWxfZm10X3BhaXIoRk1UX0RF RkFVTFQsICJ0aG1fdGVtcDFfdHJhbnNfY291bnQiLCAiJWQiLAorKwkJICAgICAgbGUzMnRvaChs b2ctPnRobV90ZW1wMV90cmFuc19jb3VudCkpOworKwl1dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxU LCAidGhtX3RlbXAyX3RyYW5zX2NvdW50IiwgIiVkIiwKKysJCSAgICAgIGxlMzJ0b2gobG9nLT50 aG1fdGVtcDJfdHJhbnNfY291bnQpKTsKKysJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgInRo bV90ZW1wMV90b3RhbF90aW1lIiwgIiVkIiwKKysJCSAgICAgIGxlMzJ0b2gobG9nLT50aG1fdGVt cDFfdG90YWxfdGltZSkpOworKwl1dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxULCAidGhtX3RlbXAy X3RvdGFsX3RpbWUiLCAiJWQiLAorKwkJICAgICAgbGUzMnRvaChsb2ctPnRobV90ZW1wMl90b3Rh bF90aW1lKSk7CisrCXV0aWxfZm10X29ial9lbmQoKTsgLyogc21hcnQtbG9nICovCisrCisrCWlm IChjdHgtPm9wdHMuc21hcnRfYmxvYikKKysJCXpwY2ltb25fanNvbl9iYXNlNjRfcGFpcigic21h cnQtbG9nLXJhdyIsICh1aW50OF90ICopbG9nLCBzaXplb2YoKmxvZykpOworK30KKysKKyBzdGF0 aWMgdm9pZCBudm1lX2pzb25fcHJpbnQoc3RydWN0IHpwY2ltb25fY3R4ICpjdHgsIHN0cnVjdCB6 cGNpX2RldiAqemRldiwgY29uc3QgY2hhciAqbmFtZSwKKyAJCQkgICAgc3RydWN0IG52bWVfc21h cnRfbG9nICpsb2cpCisgeworIAl6cGNpX2FkYXB0ZXJfanNvbl9wcmludF9zdGFydCh6ZGV2KTsK KyAJdXRpbF9mbXRfb2JqX3N0YXJ0KEZNVF9ERUZBVUxULCAibnZtZWRldiIpOworIAl1dGlsX2Zt dF9wYWlyKEZNVF9RVU9URSwgImRldiIsIG5hbWUpOworLQlpZiAoY3R4LT5vcHRzLnNtYXJ0X2Js b2IpCistCQl6cGNpbW9uX2pzb25fYmFzZTY0X3BhaXIoInNtYXJ0LWxvZy1yYXciLCAodWludDhf dCAqKWxvZywgc2l6ZW9mKCpsb2cpKTsKKysJbnZtZV9qc29uX3ByaW50X3NtYXJ0X2xvZyhjdHgs IGxvZyk7CisgCXV0aWxfZm10X29ial9lbmQoKTsKKyAJenBjaV9hZGFwdGVyX2pzb25fcHJpbnRf ZW5kKCk7CisgCWZmbHVzaChzdGRvdXQpOworLS0gCisyLjU1LjAKKworCitGcm9tIDRmZDYwN2Fl NWNhOWVjMzcxNGNhMjM1NDQ3NWY5YThiOGNhYWNlMDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBOaWtsYXMgU2NobmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitEYXRlOiBU aHUsIDIzIEFwciAyMDI2IDE0OjIwOjQ3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMTgvMjNdIHpw Y2ltb246IE1vbml0b3IgZm9yIGhvdHBsdWcgb2YgTlZNZXMgdG8gdHJpZ2dlciBTTUFSVAorIGNv bGxlY3Rpb24KK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworVXNlIGxpYnVk ZXYgdG8gbW9uaXRvciBmb3IgImNoYW5nZSIgZXZlbnRzIGluIHRoZSAibnZtZSIgc3Vic3lzdGVt IHRoYXQKK3VzZSB0aGUgInBjaWUiIHRyYW5zcG9ydCB0byB0cmlnZ2VyIE5WTWUgU01BUlQgZGF0 YSBjb2xsZWN0aW9uLiBPbmx5Citjb2xsZWN0IGRhdGEgZnJvbSB0aGUgTlZNZSByZWZlcmVuY2Vk IGJ5IHRoZSB1ZGV2IGV2ZW50LgorCitBc3Npc3RlZC1ieTogSUJNIEJvYjoxLjAuMQorUmV2aWV3 ZWQtYnk6IEphbiBIw7ZwcG5lciA8aG9lcHBuZXJAbGludXguaWJtLmNvbT4KK1NpZ25lZC1vZmYt Ynk6IE5pa2xhcyBTY2huZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK1NpZ25lZC1vZmYt Ynk6IEphbiBIw7ZwcG5lciA8aG9lcHBuZXJAbGludXguaWJtLmNvbT4KKy0tLQorIFJFQURNRS5t ZCAgICAgICAgIHwgICAyICstCisgenBjaW1vbi9NYWtlZmlsZSAgfCAgMTggKysrKysrKysKKyB6 cGNpbW9uL252bWVtb24uYyB8IDExMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCisgenBjaW1vbi9udm1lbW9uLmggfCAgIDcgKystCisgNCBmaWxlcyBjaGFu Z2VkLCAxMzUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL1JF QURNRS5tZCBiL1JFQURNRS5tZAoraW5kZXggYWIzZGNkNGUuLjM1YmI3YWRhIDEwMDY0NAorLS0t IGEvUkVBRE1FLm1kCisrKysgYi9SRUFETUUubWQKK0BAIC0zMjUsNyArMzI1LDcgQEAgYnVpbGQg b3B0aW9uczoKKyB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJ1c3QvcHZh dHRlc3QsIHJ1c3QvcHZzZWNyZXQsICAgICAgICAgIHwKKyB8IGxpYnhtbDIgICAgICB8IGBIQVZF X0xJQlhNTDJgICAgICB8IGxpYmttaXBjbGllbnQgICAgICAgICAgICAgICAgICAgICAgICAgIHwK KyB8IHN5c3RlbWQgICAgICB8IGBIQVZFX1NZU1RFTURgICAgICB8IGhzYXZtY29yZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKKy18IGxpYnVkZXYgICAgICB8IGBIQVZFX0xJQlVERVZg ICAgICB8IGNwYWNmc3RhdHNkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyt8IGxpYnVk ZXYgICAgICB8IGBIQVZFX0xJQlVERVZgICAgICB8IGNwYWNmc3RhdHNkLCB6cGNpbW9uICAgICAg ICAgICAgICAgICAgIHwKKyB8IGxpYm5sMyAgICAgICB8IGBIQVZFX0xJQk5MM2AgICAgICB8IHpw Y2ltb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyB8IGxpYm52bWUgICAgICB8 IGBIQVZFX0xJQk5WTUVgICAgICB8IHpwY2ltb24gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKKyAKK2RpZmYgLS1naXQgYS96cGNpbW9uL01ha2VmaWxlIGIvenBjaW1vbi9NYWtlZmls ZQoraW5kZXggY2U4MTVhMzEuLmE5NzkyMTY0IDEwMDY0NAorLS0tIGEvenBjaW1vbi9NYWtlZmls ZQorKysrIGIvenBjaW1vbi9NYWtlZmlsZQorQEAgLTM5LDYgKzM5LDE2IEBAIGNoZWNrX2RlcF9s aWJudm1lOgorIEJVSUxEVEFSR0VUICs9IGNoZWNrX2RlcF9saWJudm1lCisgZW5kaWYgIyBIQVZF X0xJQk5WTUUKKyAKKytpZm5lcSAoJHtIQVZFX0xJQlVERVZ9LDApCisrY2hlY2tfZGVwX2xpYnVk ZXY6CisrCSQoY2FsbCBjaGVja19kZXAsIFwKKysJCSJ6cGNpbW9uIiwgXAorKwkJImxpYnVkZXYu aCIsIFwKKysJCSJzeXN0ZW1kLWRldmVsIiwgXAorKwkJIkhBVkVfTElCTlZNRT0wIikKKytCVUlM RFRBUkdFVCArPSBjaGVja19kZXBfbGlidWRldgorK2VuZGlmICMgSEFWRV9MSUJVREVWCisrCisg aWZlcSAoJHtIQVZFX09QRU5TU0x9LDApCisgCisgYWxsOgorQEAgLTYxLDYgKzcxLDEyIEBAIGFs bDoKKyBpbnN0YWxsOgorIAkkKFNLSVApIEhBVkVfTElCTlZNRT0wCisgCisrZWxzZSBpZmVxICgk e0hBVkVfTElCVURFVn0sMCkKKythbGw6CisrCSQoU0tJUCkgSEFWRV9MSUJVREVWPTAKKysKKytp bnN0YWxsOgorKwkkKFNLSVApIEhBVkVfTElCVURFVj0wCisgZWxzZQorIAorIGlmbmVxICgkKHNo ZWxsIHNoIC1jICdjb21tYW5kIC12IHBrZy1jb25maWcnKSwpCitAQCAtNzYsNiArOTIsNyBAQCBM SUJfTEZMQUdTICs9ICQoc2hlbGwgJChQS0dfQ09ORklHKSAtLXNpbGVuY2UtZXJyb3JzIC0tbGli cyBsaWJubC1yb3V0ZS0zLjApCisgCisgTElCX0xGTEFHUyArPSAkKHNoZWxsICQoUEtHX0NPTkZJ RykgLS1zaWxlbmNlLWVycm9ycyAtLWxpYnMgbGliY3J5cHRvKQorIExJQl9MRkxBR1MgKz0gJChz aGVsbCAkKFBLR19DT05GSUcpIC0tc2lsZW5jZS1lcnJvcnMgLS1saWJzIGxpYm52bWUpCisrTElC X0xGTEFHUyArPSAkKHNoZWxsICQoUEtHX0NPTkZJRykgLS1zaWxlbmNlLWVycm9ycyAtLWxpYnMg bGlidWRldikKKyBlbHNlCisgTElCX0NGTEFHUyArPSAtSSAvdXNyL2luY2x1ZGUvbGlibmwzLwor IExJQl9MRkxBR1MgKz0gLWxubC1yb3V0ZS0zIC1sbmwtZ2VubC0zIC1sbmwtMworQEAgLTg0LDYg KzEwMSw3IEBAIExJQl9DRkxBR1MgKz0gLUkgL3Vzci9pbmNsdWRlL29wZW5zc2wvCisgTElCX0xG TEFHUyArPSAtbGNyeXB0bworIAorIExJQl9MRkxBR1MgKz0gLWxudm1lCisrTElCX0xGTEFHUyAr PSAtbHVkZXYKKyBlbmRpZgorIAorIEFMTF9DUFBGTEFHUyArPSAkKExJQl9DRkxBR1MpCitkaWZm IC0tZ2l0IGEvenBjaW1vbi9udm1lbW9uLmMgYi96cGNpbW9uL252bWVtb24uYworaW5kZXggYTUx NmI0YWEuLjE0ZjA4OGMwIDEwMDY0NAorLS0tIGEvenBjaW1vbi9udm1lbW9uLmMKKysrKyBiL3pw Y2ltb24vbnZtZW1vbi5jCitAQCAtMTUsNiArMTUsNyBAQAorICNpbmNsdWRlIDxzdHJpbmcuaD4K KyAjaW5jbHVkZSA8dW5pc3RkLmg+CisgI2luY2x1ZGUgPGxpYm52bWUuaD4KKysjaW5jbHVkZSA8 bGlidWRldi5oPgorIAorICNpbmNsdWRlICJsaWIvcGNpX2xpc3QuaCIKKyAjaW5jbHVkZSAibGli L3BjaV9zY2xwLmgiCitAQCAtMTk1LDYgKzE5NiwxMTUgQEAgZXhpdF9mcmVlX2FkZHI6CisgCXJl dHVybiByYzsKKyB9CisgCisrc3RhdGljIGludCBudm1lbW9uX29wZW5fbW9uaXRvcihzdHJ1Y3Qg enBjaW1vbl9jdHggKmN0eCkKKyt7CisrCXN0cnVjdCBudm1lbW9uX2N0eCAqbmN0eCA9ICZjdHgt Pm52bWVtb25fY3R4OworKwlpbnQgcmV0ID0gLUVJTlZBTDsKKysKKysJbmN0eC0+dWRldiA9IHVk ZXZfbmV3KCk7CisrCWlmICghbmN0eC0+dWRldikKKysJCXJldHVybiAtRU5PTUVNOworKworKwlu Y3R4LT5tb24gPSB1ZGV2X21vbml0b3JfbmV3X2Zyb21fbmV0bGluayhuY3R4LT51ZGV2LCAia2Vy bmVsIik7CisrCWlmICghbmN0eC0+bW9uKSB7CisrCQlyZXQgPSAtRU5PTUVNOworKwkJZ290byBl cnJvcl91ZGV2OworKwl9CisrCisrCWlmICh1ZGV2X21vbml0b3JfZmlsdGVyX2FkZF9tYXRjaF9z dWJzeXN0ZW1fZGV2dHlwZShuY3R4LT5tb24sICJudm1lIiwgTlVMTCkgPCAwKQorKwkJZ290byBl cnJvcl9tb247CisrCisrCS8qIE5vdGU6IFRoaXMgZXhwbGljaXQgdWRldl9tb25pdG9yX2VuYWJs ZV9yZWNlaXZpbmcoKSBpcyBkZXByZWNhdGVkIGFuZCBub3QgbmVlZGVkIGFueW1vcmUKKysJICog aW4gdWRldiB2MjU3Ky4gSXQncyBoYXJtbGVzcyB0aG91Z2ggc28gd2UgZG8gaXQgZm9yIGVhc2ll ciBiYWNrcG9ydGluZy4KKysJICovCisrCWlmICh1ZGV2X21vbml0b3JfZW5hYmxlX3JlY2Vpdmlu ZyhuY3R4LT5tb24pIDwgMCkKKysJCWdvdG8gZXJyb3JfbW9uOworKworKwlyZXR1cm4gMDsKKysK KytlcnJvcl9tb246CisrCXVkZXZfbW9uaXRvcl91bnJlZihuY3R4LT5tb24pOworKwluY3R4LT5t b24gPSBOVUxMOworK2Vycm9yX3VkZXY6CisrCXVkZXZfdW5yZWYobmN0eC0+dWRldik7CisrCW5j dHgtPnVkZXYgPSBOVUxMOworKwlyZXR1cm4gcmV0OworK30KKysKKytzdGF0aWMgaW50IG52bWVt b25fZ2V0X21vbml0b3JfZmQoc3RydWN0IHpwY2ltb25fY3R4ICpjdHgpCisreworKwlzdHJ1Y3Qg bnZtZW1vbl9jdHggKm5jdHggPSAmY3R4LT5udm1lbW9uX2N0eDsKKysKKysJaWYgKCFuY3R4LT5t b24pCisrCQlyZXR1cm4gLTE7CisrCXJldHVybiB1ZGV2X21vbml0b3JfZ2V0X2ZkKG5jdHgtPm1v bik7CisrfQorKworK3N0YXRpYyB2b2lkIG52bWVtb25fbW9uaXRvcl9mZF9oYW5kbGUoc3RydWN0 IHpwY2ltb25fY3R4ICpjdHgpCisreworKwljb25zdCBjaGFyICphY3Rpb24sICp0cmFuc3BvcnQs ICpldmVudF9wY2lfYWRkcjsKKysJc3RydWN0IG52bWVtb25fY3R4ICpuY3R4ID0gJmN0eC0+bnZt ZW1vbl9jdHg7CisrCXN0cnVjdCB1ZGV2X2RldmljZSAqZGV2LCAqcGNpX2RldjsKKysJc3RydWN0 IHpwY2lfZGV2ICp6ZGV2OworKwljaGFyICp6ZGV2X3BjaV9hZGRyOworKworKwlkZXYgPSB1ZGV2 X21vbml0b3JfcmVjZWl2ZV9kZXZpY2UobmN0eC0+bW9uKTsKKysJaWYgKCFkZXYpCisrCQlyZXR1 cm47CisrCisrCWFjdGlvbiA9IHVkZXZfZGV2aWNlX2dldF9hY3Rpb24oZGV2KTsKKysJdHJhbnNw b3J0ID0gdWRldl9kZXZpY2VfZ2V0X3Byb3BlcnR5X3ZhbHVlKGRldiwgIk5WTUVfVFJUWVBFIik7 CisrCisrCS8qIENoYW5nZSBldmVudHMgYXJlIGxhdGUgZW5vdWdoIHRoYXQgdGhlIC9kZXYvbnZt ZVggaXMgcmVhZHkgZm9yCisrCSAqIHJlYWRpbmcgU01BUlQgZGF0YSBhbmQgd2UncmUgb25seSBp bnRlcmVzdGVkIGluIGRpcmVjdGx5IFBDSWUKKysJICogYXR0YWNoZWQgTlZNZXMKKysJICovCisr CWlmIChhY3Rpb24gJiYgc3RyY21wKGFjdGlvbiwgImNoYW5nZSIpID09IDAgJiYgdHJhbnNwb3J0 ICYmCisrCSAgICBzdHJjbXAodHJhbnNwb3J0LCAicGNpZSIpID09IDApIHsKKysJCXBjaV9kZXYg PSB1ZGV2X2RldmljZV9nZXRfcGFyZW50X3dpdGhfc3Vic3lzdGVtX2RldnR5cGUoZGV2LCAicGNp IiwgTlVMTCk7CisrCQlpZiAoIXBjaV9kZXYpCisrCQkJZ290byBvdXQ7CisrCQlldmVudF9wY2lf YWRkciA9IHVkZXZfZGV2aWNlX2dldF9zeXNuYW1lKHBjaV9kZXYpOworKwkJaWYgKCFldmVudF9w Y2lfYWRkcikKKysJCQlnb3RvIG91dDsKKysKKysJCXpwY2lfbGlzdF9yZWxvYWQoJmN0eC0+enBj aV9saXN0KTsKKysJCWlmIChjdHgtPnpwY2lfbGlzdCkgeworKwkJCXV0aWxfbGlzdF9pdGVyYXRl KGN0eC0+enBjaV9saXN0LCB6ZGV2KSB7CisrCQkJCWlmICh6ZGV2LT5wZnQgIT0gWlBDSV9QRlRf TlZNRSkKKysJCQkJCWNvbnRpbnVlOworKwkJCQl6ZGV2X3BjaV9hZGRyID0genBjaV9wY2lfYWRk cih6ZGV2KTsKKysJCQkJaWYgKHN0cmNtcCh6ZGV2X3BjaV9hZGRyLCBldmVudF9wY2lfYWRkcikg PT0gMCkgeworKwkJCQkJZnJlZSh6ZGV2X3BjaV9hZGRyKTsKKysJCQkJCW52bWVtb25fY29sbGVj dF9hZGFwdGVyX2RhdGEoY3R4LCB6ZGV2KTsKKysJCQkJCWJyZWFrOworKwkJCQl9CisrCQkJCWZy ZWUoemRldl9wY2lfYWRkcik7CisrCQkJfQorKwkJfQorKwl9Cisrb3V0OgorKwl1ZGV2X2Rldmlj ZV91bnJlZihkZXYpOworK30KKysKKytzdGF0aWMgdm9pZCBudm1lbW9uX2Nsb3NlX21vbml0b3Io c3RydWN0IHpwY2ltb25fY3R4ICpjdHgpCisreworKwlzdHJ1Y3QgbnZtZW1vbl9jdHggKm5jdHgg PSAmY3R4LT5udm1lbW9uX2N0eDsKKysKKysJaWYgKG5jdHgtPm1vbikgeworKwkJdWRldl9tb25p dG9yX3VucmVmKG5jdHgtPm1vbik7CisrCQluY3R4LT5tb24gPSBOVUxMOworKwl9CisrCWlmIChu Y3R4LT51ZGV2KSB7CisrCQl1ZGV2X3VucmVmKG5jdHgtPnVkZXYpOworKwkJbmN0eC0+dWRldiA9 IE5VTEw7CisrCX0KKyt9CisrCisgY29uc3Qgc3RydWN0IHpwY2ltb25fb3BzIG52bWVtb25fb3Bz ID0geworIAkuY29sbGVjdF9hZGFwdGVyX2RhdGEgPSBudm1lbW9uX2NvbGxlY3RfYWRhcHRlcl9k YXRhLAorKwkub3Blbl9tb25pdG9yID0gbnZtZW1vbl9vcGVuX21vbml0b3IsCisrCS5nZXRfbW9u aXRvcl9mZCA9IG52bWVtb25fZ2V0X21vbml0b3JfZmQsCisrCS5tb25pdG9yX2ZkX2hhbmRsZSA9 IG52bWVtb25fbW9uaXRvcl9mZF9oYW5kbGUsCisrCS5jbG9zZV9tb25pdG9yID0gbnZtZW1vbl9j bG9zZV9tb25pdG9yLAorIH07CitkaWZmIC0tZ2l0IGEvenBjaW1vbi9udm1lbW9uLmggYi96cGNp bW9uL252bWVtb24uaAoraW5kZXggMDY1OGJjYWEuLmI1YTMxMTkzIDEwMDY0NAorLS0tIGEvenBj aW1vbi9udm1lbW9uLmgKKysrKyBiL3pwY2ltb24vbnZtZW1vbi5oCitAQCAtNyw3ICs3LDEyIEBA CisgI2lmbmRlZiBaUENJTU9OX05WTUVNT05fSAorICNkZWZpbmUgWlBDSU1PTl9OVk1FTU9OX0gK KyAKKy1zdHJ1Y3QgbnZtZW1vbl9jdHgge307CisrI2luY2x1ZGUgPGxpYnVkZXYuaD4KKysKKytz dHJ1Y3QgbnZtZW1vbl9jdHggeworKwlzdHJ1Y3QgdWRldiAqdWRldjsKKysJc3RydWN0IHVkZXZf bW9uaXRvciAqbW9uOworK307CisgCisgZXh0ZXJuIGNvbnN0IHN0cnVjdCB6cGNpbW9uX29wcyBu dm1lbW9uX29wczsKKyAjZW5kaWYgLyogWlBDSU1PTl9OVk1FTU9OX0ggKi8KKy0tIAorMi41NS4w CisKKworRnJvbSBmOTZmMDlhNWM5YzdiYTgxMTMyYWE2YmMyNWRmN2FiZjNlOTAzMWY0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51 eC5pYm0uY29tPgorRGF0ZTogVGh1LCAzMCBBcHIgMjAyNiAxNTozMzo0MyArMDIwMAorU3ViamVj dDogW1BBVENIIDE5LzIzXSBudm1lbW9uOiBsaWJ6cGNpOiBTa2lwIFNDTFAgb24gTlZNZXMgd2l0 aCBub24tSUJNCisgc3Vic3lzdGVtIHZlbmRvciBJRAorTUlNRS1WZXJzaW9uOiAxLjAKK0NvbnRl bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogOGJpdAorCitUaGUgU0NMUCBXcml0ZSBFdmVudCBEYXRhIEFjdGlvbiBRdWFsaWZpZXIg NCBpcyBvbmx5IGF2YWlsYWJsZSBmb3IKK05WTWVzIHdpdGggc3Vic3lzdGVtIHZlbmRvciBJRCBt YXRjaGluZyBJQk0uIEFkZCBib3RoIElEcyB0byBzdHJ1Y3QKK3pwY2lfZGV2IGluIGxpYnpwY2ku IEFsc28gYWRkIHRoZW0gdG8gdGhlIGxpYnpwY2lfZXhhbXBsZSBvdXRwdXQKK2FuZCBhZGp1c3Qg aXRzIG91dHB1dCB0byBtdWx0aWxpbmUgdG8gaGFuZGxlIG1vcmUgZGF0YS4KKworUmV2aWV3ZWQt Ynk6IEphbiBIw7ZwcG5lciA8aG9lcHBuZXJAbGludXguaWJtLmNvbT4KK1NpZ25lZC1vZmYtYnk6 IE5pa2xhcyBTY2huZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK1NpZ25lZC1vZmYtYnk6 IEphbiBIw7ZwcG5lciA8aG9lcHBuZXJAbGludXguaWJtLmNvbT4KKy0tLQorIGluY2x1ZGUvbGli L3BjaV9saXN0LmggICAgfCAgNCArKysrCisgbGlienBjaS9saWJ6cGNpX2V4YW1wbGUuYyB8IDEy ICsrKysrKysrLS0tLQorIGxpYnpwY2kvcGNpX2xpc3QuYyAgICAgICAgfCAxMCArKysrKysrKysr CisgenBjaW1vbi9udm1lbW9uLmMgICAgICAgICB8ICAyICstCisgNCBmaWxlcyBjaGFuZ2VkLCAy MyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aWIvcGNpX2xpc3QuaCBiL2luY2x1ZGUvbGliL3BjaV9saXN0LmgKK2luZGV4IDIyNmE4MmQ5Li4y MDRiNzEwZCAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvbGliL3BjaV9saXN0LmgKKysrKyBiL2luY2x1 ZGUvbGliL3BjaV9saXN0LmgKK0BAIC0xOCw2ICsxOCw3IEBACisgI2luY2x1ZGUgInV0aWxfbGlz dC5oIgorIAorICNkZWZpbmUgUENJX0JERl9MRU4gMTMgLyogRERERDpCQjpkZC5mXDAgKi8KKysj ZGVmaW5lIFBDSV9WRU5ET1JfSURfSUJNIDB4MTAxNAorIAorIGVudW0genBjaV9wZnQgeworIAla UENJX1BGVF9VTkNMQVNTSUZJRUQgPSAweDAwLAorQEAgLTY3LDYgKzY4LDkgQEAgc3RydWN0IHpw Y2lfZGV2IHsKKyAJYm9vbCB1aWRfaXNfdW5pcXVlOworIAkvKiBDb25maWd1cmF0aW9uIHN0YXRl IDAgLSBTdGFuZGJ5LCAxIENvbmZpZ3VyZWQgKi8KKyAJYm9vbCBjb25mOworKwkvKiBDb21tb24g UENJIGF0dHJpYnV0ZXMgKi8KKysJdWludDE2X3Qgc3Vic3lzdGVtX3ZlbmRvcjsKKysJdWludDE2 X3Qgc3Vic3lzdGVtX2RldmljZTsKKyAKKyAJLyogQXNzb2NpYXRlZCBuZXRkZXZzIGlmIGFueSAq LworIAlpbnQgbnVtX25ldGRldnM7CitkaWZmIC0tZ2l0IGEvbGlienBjaS9saWJ6cGNpX2V4YW1w bGUuYyBiL2xpYnpwY2kvbGlienBjaV9leGFtcGxlLmMKK2luZGV4IDU4Mzg0NmI0Li5hOWI4NTA5 ZSAxMDA2NDQKKy0tLSBhL2xpYnpwY2kvbGlienBjaV9leGFtcGxlLmMKKysrKyBiL2xpYnpwY2kv bGlienBjaV9leGFtcGxlLmMKK0BAIC0xMiwxMyArMTIsMTcgQEAgc3RhdGljIHZvaWQgenBjaV9w cmludChzdHJ1Y3QgenBjaV9kZXYgKnpkZXYpCisgCWludCBpOworIAorIAlpZiAoIXpkZXYtPmNv bmYpIHsKKy0JCXByaW50ZigiZmlkOiAlOHggYWRkcmVzczogJXNcbiIsIHpkZXYtPmZpZCwgcGNp X2FkZHIpOworKwkJcHJpbnRmKCJmaWQ6XHQlNHggYWRkcmVzczogJXNcbiIsIHpkZXYtPmZpZCwg cGNpX2FkZHIpOworIAl9IGVsc2UgeworLQkJcHJpbnRmKCJmaWQ6ICU4eCBhZGRyZXNzOiAlcyB1 aWQ6ICU0eCVzIHBjaGlkOiAlNHggdmZuOiAlNGQgcG9ydDogJTFkIHBmdDogJXMgIiwKKysJCXBy aW50ZigiZmlkOlx0JTR4IGFkZHJlc3M6ICVzIHVpZDogJTR4JXMgcGNoaWQ6ICU0eCB2Zm46ICU0 ZFxuIiwKKyAJCSAgICAgICB6ZGV2LT5maWQsIHBjaV9hZGRyLCB6ZGV2LT51aWQsICh6ZGV2LT51 aWRfaXNfdW5pcXVlKSA/ICIgKHVuaXF1ZSkiIDogIiIsCistCQkgICAgICAgemRldi0+cGNoaWQs IHpkZXYtPnZmbiwgemRldi0+cG9ydCwgenBjaV9wZnRfc3RyKHpkZXYpKTsKKysJCSAgICAgICB6 ZGV2LT5wY2hpZCwgemRldi0+dmZuKTsKKysJCXByaW50ZigiXG4iKTsKKysJCXByaW50ZigiXHRw b3J0OiAlMWQgcGZ0OiAlcyBzdWJzeXN0ZW1fZGV2aWNlOiAlNHggc3Vic3lzdGVtX3ZlbmRvcjog JTR4XG4iLAorKwkJICAgICAgIHpkZXYtPnBvcnQsIHpwY2lfcGZ0X3N0cih6ZGV2KSwgemRldi0+ c3Vic3lzdGVtX2RldmljZSwKKysJCSAgICAgICB6ZGV2LT5zdWJzeXN0ZW1fdmVuZG9yKTsKKyAJ CWlmICh6ZGV2LT5udW1fbmV0ZGV2cykgeworLQkJCXByaW50ZigibmV0ZGV2czogIik7CisrCQkJ cHJpbnRmKCJcdG5ldGRldnM6ICIpOworIAkJCWZvciAoaSA9IDA7IGkgPCB6ZGV2LT5udW1fbmV0 ZGV2czsgaSsrKSB7CisgCQkJCXByaW50ZigiJXMgKCVzKSIsIHpkZXYtPm5ldGRldnNbaV0ubmFt ZSwKKyAJCQkJICAgICAgIHpwY2lfb3BlcnN0YXRlX3N0cih6ZGV2LT5uZXRkZXZzW2ldLm9wZXJz dGF0ZSkpOworZGlmZiAtLWdpdCBhL2xpYnpwY2kvcGNpX2xpc3QuYyBiL2xpYnpwY2kvcGNpX2xp c3QuYworaW5kZXggZTgxYmI0YjguLmExMjViZjcxIDEwMDY0NAorLS0tIGEvbGlienBjaS9wY2lf bGlzdC5jCisrKysgYi9saWJ6cGNpL3BjaV9saXN0LmMKK0BAIC0yNjIsNiArMjYyLDE2IEBAIHN0 YXRpYyBpbnQgenBjaV9wb3B1bGF0ZV9mcm9tX2Rldl9kaXIoc3RydWN0IHpwY2lfZGV2ICp6ZGV2 KQorIAkJZ290byBvdXRfcGF0aDsKKyAJemRldi0+cGZ0ID0gdmFsOworIAorKwlyYyA9IHV0aWxf ZmlsZV9yZWFkX2koJnZhbCwgMTYsICIlcy9zdWJzeXN0ZW1fZGV2aWNlIiwgcGF0aCk7CisrCWlm IChyYykKKysJCWdvdG8gb3V0X3BhdGg7CisrCXpkZXYtPnN1YnN5c3RlbV9kZXZpY2UgPSB2YWw7 CisrCisrCXJjID0gdXRpbF9maWxlX3JlYWRfaSgmdmFsLCAxNiwgIiVzL3N1YnN5c3RlbV92ZW5k b3IiLCBwYXRoKTsKKysJaWYgKHJjKQorKwkJZ290byBvdXRfcGF0aDsKKysJemRldi0+c3Vic3lz dGVtX3ZlbmRvciA9IHZhbDsKKysKKyAJaWYgKHV0aWxfcGF0aF9pc19yZWFkYWJsZSgiJXMvbmV0 IiwgcGF0aCkpIHsKKyAJCXJjID0genBjaV9wb3B1bGF0ZV9uZXRkZXZpY2VzKHpkZXYsIHBhdGgp OworIAkJaWYgKHJjKQorZGlmZiAtLWdpdCBhL3pwY2ltb24vbnZtZW1vbi5jIGIvenBjaW1vbi9u dm1lbW9uLmMKK2luZGV4IDE0ZjA4OGMwLi5iZDVlZjFhNyAxMDA2NDQKKy0tLSBhL3pwY2ltb24v bnZtZW1vbi5jCisrKysgYi96cGNpbW9uL252bWVtb24uYworQEAgLTE0NCw3ICsxNDQsNyBAQCBz dGF0aWMgaW50IHNjbHBfaXNzdWVfbnZtZV9zbWFydF9yZXBvcnQoc3RydWN0IHpwY2lfZGV2ICp6 ZGV2LCBjb25zdCB1aW50OF90ICpzbQorIAljaGFyICpwY2lfYWRkcjsKKyAJaW50IHJjOworIAor LQlpZiAoemRldi0+cGZ0ICE9IFpQQ0lfUEZUX05WTUUpCisrCWlmICh6ZGV2LT5wZnQgIT0gWlBD SV9QRlRfTlZNRSB8fCB6ZGV2LT5zdWJzeXN0ZW1fdmVuZG9yICE9IFBDSV9WRU5ET1JfSURfSUJN KQorIAkJcmV0dXJuIC1FTk9UU1VQOworIAlwY2lfYWRkciA9IHpwY2lfcGNpX2FkZHIoemRldik7 CisgCXJjID0genBjaV9zY2xwX2lzc3VlX2FjdGlvbihwY2lfYWRkciwgU0NMUF9FUlJOT1RJRllf QVFfTlZNRV9TTUFSVF9EQVRBLAorLS0gCisyLjU1LjAKKworCitGcm9tIDFkYTMyODkyMWI0MTk0 NDVkMjRmNTY5ZTdjZjg1MDgyYmVjOWM2ODggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBOaWtsYXMgU2NobmVsbGUgPHNjaG5lbGxlQGxpbnV4LmlibS5jb20+CitEYXRlOiBGcmksIDI2 IEp1biAyMDI2IDE1OjEzOjIyICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMjAvMjNdIGRiZ2luZm8u c2g6IExldCB6cGNpbW9uIGxvZyBib3RoIG9wdGljYWwgbW9kdWxlIGFuZAorIFNNQVJUIGRhdGEK K01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworQWRkIHpwY2ltb24gZGF0YSBj b2xsZWN0aW9uIHdpdGggYm90aCBTTUFSVCBsb2cgYW5kIG9wdGljYWwgbW9kdWxlIGRhdGEuCitE byBzbyBpbiB0aGUgWiBkZXZpY2Ugc3Vic3lzdGVtIGNvbW1hbmRzIHNlY3Rpb24gdG8gYWNjb3Vu dCBmb3IgdGhlIGZhY3QKK3RoYXQgenBjaW1vbiBpcyBubyBsb25nZXIgbmV0d29yayBzcGVjaWZp Yy4gQXQgdGhlIHNhbWUgdGltZSBrZWVwIHRoZQorZXhpc3Rpbmcgb3B0aWNzbW9uIGludm9jYXRp b24gZm9yIGNvbXBhdGliaWxpdHkgd2hlbiBleGVjdXRlZCBvbiBzeXN0ZW1zCit3aXRob3V0IHpw Y2ltb24uCisKK1Jldmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBwbmVyQGxpbnV4LmlibS5j b20+CitSZXZpZXdlZC1ieTogSsO2cm4gU2lnbGVuIDxzaWdsZW5AZGUuaWJtLmNvbT4KK1NpZ25l ZC1vZmYtYnk6IE5pa2xhcyBTY2huZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK1NpZ25l ZC1vZmYtYnk6IEphbiBIw7ZwcG5lciA8aG9lcHBuZXJAbGludXguaWJtLmNvbT4KKy0tLQorIHNj cmlwdHMvZGJnaW5mby5zaCB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQor CitkaWZmIC0tZ2l0IGEvc2NyaXB0cy9kYmdpbmZvLnNoIGIvc2NyaXB0cy9kYmdpbmZvLnNoCitp bmRleCBlYzYyMjdmMS4uYTVlMzg2NmUgMTAwNzU1CistLS0gYS9zY3JpcHRzL2RiZ2luZm8uc2gK KysrKyBiL3NjcmlwdHMvZGJnaW5mby5zaAorQEAgLTUxNSw2ICs1MTUsNyBAQCBDTURTPSIke0NN RFN9XAorICAgOmxzcGNpIC12dnZcCisgICA6bHN0YXBlXAorICAgOnNtY19kYmdcCisrICA6enBj aW1vbiAtLW1vZHVsZS1pbmZvIC0tc21hcnQtbG9nLXJhd1wKKyAgICIKKyAKKyAjIGJsb2NrIGRl dmljZSBhbmQgb3RoZXIgc2NzaSBkZXZpY2UgY29tbWFuZHMgKGluIG5vbiBhbHBoYWJldGljYWwg b3JkZXIpCistLSAKKzIuNTUuMAorCisKK0Zyb20gNzU4NmExYWQ1OTNmOTliZDdlYjJkYWVjMzlm MDFkNGFlZWUzY2YwOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pa2xhcyBTY2hu ZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK0RhdGU6IFRodSwgMjMgSnVsIDIwMjYgMTY6 NTU6NTAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyMS8yM10genBjaW1vbjogQWRkIG1pc3Npbmcg aW5jbHVkZSBmb3IgX19wYWNrZWQgYXR0cmlidXRlCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29k aW5nOiA4Yml0CisKK1RoZSBfX3BhY2tlZCBhdHRyaWJ1dGUgaXMgdXNlZCB3aXRob3V0IGluY2x1 ZGluZyB0aGUgbmVjZXNzYXJ5Cit6dF9jb21tb24uaCBoZWFkZXIsIGFkZCBpdC4gTm90ZSB0aGF0 IGx1Y2tpbHkgdGhlIHN0cnVjdCBhcyBpdCBjdXJyZW50bHkKK2V4aXN0cyBkb2Vzbid0IGFjdHVh bGx5IHJlcXVpcmVkIF9fcGFja2VkIGFzIHRoZSBuYXR1cmFsIGFsaWdubWVudAorbGVhdmVzIG5v IGhvbGVzLiBTdGlsbCBpZiBpbiB0aGUgZnV0dXJlIHRoZSByZXNlcnZlZCBmaWVsZCBpcyBzcGxp dCB1cAoraXQgd291bGQgbmVlZCBpdCBhbmQgdGhpcyBrZWVwcyBpdCBjb25zaXN0ZW50IHdpdGgg dGhlIGtlcm5lbAorZGVjbGFyYXRpb24uCisKK1Jldmlld2VkLWJ5OiBKYW4gSMO2cHBuZXIgPGhv ZXBwbmVyQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBOaWtsYXMgU2NobmVsbGUgPHNj aG5lbGxlQGxpbnV4LmlibS5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4gSMO2cHBuZXIgPGhvZXBw bmVyQGxpbnV4LmlibS5jb20+CistLS0KKyB6cGNpbW9uL29wdGljc19zY2xwLmggfCAxICsKKyAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworZGlmZiAtLWdpdCBhL3pwY2ltb24vb3B0 aWNzX3NjbHAuaCBiL3pwY2ltb24vb3B0aWNzX3NjbHAuaAoraW5kZXggYjIxMWU5YWMuLjRiMjk1 YmM1IDEwMDY0NAorLS0tIGEvenBjaW1vbi9vcHRpY3Nfc2NscC5oCisrKysgYi96cGNpbW9uL29w dGljc19zY2xwLmgKK0BAIC0xLDYgKzEsNyBAQAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAj aW5jbHVkZSAibGliL3BjaV9saXN0LmgiCisrI2luY2x1ZGUgImxpYi96dF9jb21tb24uaCIKKyAK KyAjaW5jbHVkZSAib3B0aWNzX2luZm8uaCIKKyAKKy0tIAorMi41NS4wCisKKworRnJvbSAwZjBl OGNmMzNiODA3Y2FlYmI5ZDhlOGE2NTJjMGU3MzI2ZWE0OGQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0uY29tPgorRGF0 ZTogVGh1LCAyMyBKdWwgMjAyNiAxNjo1NTo1MyArMDIwMAorU3ViamVjdDogW1BBVENIIDIyLzIz XSB6cGNpbW9uOiBNYWtlIG9wdGljc19sb3NfaW1wbGVtZW50ZSgpIHN0YXRpYworTUlNRS1WZXJz aW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitTcGFyc2Ugbm90ZWQgdGhhdCBvcHRpY3NfbG9z X2ltcGxlbWVudGUoKSBjYW4gYmUgc3RhdGljLiBNYWtlIGl0IHNvLgorCitSZXZpZXdlZC1ieTog SmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTogTmlr bGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9mZi1ieTogSmFu IEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorLS0tCisgenBjaW1vbi9vcHRpY3Nf aW5mby5jIHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQorCitkaWZmIC0tZ2l0IGEvenBjaW1vbi9vcHRpY3NfaW5mby5jIGIvenBjaW1vbi9vcHRp Y3NfaW5mby5jCitpbmRleCAwMGQ4ZDcyMy4uYjNiYzM1MzUgMTAwNjQ0CistLS0gYS96cGNpbW9u L29wdGljc19pbmZvLmMKKysrKyBiL3pwY2ltb24vb3B0aWNzX2luZm8uYworQEAgLTUzLDcgKzUz LDcgQEAgZW51bSBvcHRpY3NfdHlwZSBvcHRpY3NfdHlwZShzdHJ1Y3Qgb3B0aWNzICpvaSkKKyAJ fTsKKyB9CisgCistYm9vbCBvcHRpY3NfbG9zX2ltcGxlbWVudGVkKHN0cnVjdCBvcHRpY3MgKm9p KQorK3N0YXRpYyBib29sIG9wdGljc19sb3NfaW1wbGVtZW50ZWQoc3RydWN0IG9wdGljcyAqb2kp CisgeworIAllbnVtIG9wdGljc190eXBlIHR5cGUgPSBvcHRpY3NfdHlwZShvaSk7CisgCXVpbnQ4 X3QgaW1wbGVtZW50ZWQ7CistLSAKKzIuNTUuMAorCisKK0Zyb20gOTExMjNlNWQ0NWVkOWZkMjI3 ZDZlOWM1OTBlYzgyNDg0ZGJiN2JjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5p a2xhcyBTY2huZWxsZSA8c2NobmVsbGVAbGludXguaWJtLmNvbT4KK0RhdGU6IFRodSwgMjMgSnVs IDIwMjYgMTY6NTU6NTQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyMy8yM10gbGliL3p0X2NvbW1v bi5oOiB6cGNpbW9uOiBBZGQgX19mb3JjZSBhbmQgdXNlIGl0IHRvCisgYW5ub3RhdGUgbGUzMnRv aCgpIGNvbnZlcnNpb25zCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1do ZW4gdXNpbmcgc3BhcnNlIG9uIHpwY2ltb24gc2V2ZXJhbCB3YXJuaW5ncyBsaWtlIHRoZSBvbmUg YmVsb3cgYXJlCitnZW5lcmF0ZWQ6CisKKyAgd2FybmluZzogaW5jb3JyZWN0IHR5cGUgaW4gYXJn dW1lbnQgMSAoZGlmZmVyZW50IGJhc2UgdHlwZXMpCisgICAgIGV4cGVjdGVkIHVuc2lnbmVkIGlu dCBbdXNlcnR5cGVdIF9fYnN4CisgICAgIGdvdCByZXN0cmljdGVkIF9fbGUzMiBbdXNlcnR5cGVd IHdhcm5pbmdfdGVtcF90aW1lCisKK1RoaXMgaXMgYmVjYXVzZSBzZXZlcmFsIG1lbWJlcnMgaW4g c3RydWN0IG52bWVfc21hcnRfbG9nIGFyZSBtYXJrZWQgYXMKK19fbGUzMi4gVGhlc2UgbWVtYmVy cyBhcmUgY29ycmVjdGx5IGNvbnZlcnRlZCB0byBob3N0IGVuZGlhbm5lc3MgYmVmb3JlCit1c2Ug dmlhIGxlMzJ0b2goKSByZXNwZWN0aXZlbHkgbGUxNnRvaCgpLiBTaW5jZSB0aGVzZSBmdW5jdGlv bnMgdGFrZQordGhlaXIgcGFyYW1ldGVycyBhcyBwbGFpbiB1aW50MzJfdCBvciB1aW50MTZfdCBo b3dldmVyIHRoZSBpbXBsaWNpdAorY29udmVyc2lvbiB0cmlnZ2VycyB0aGUgYWJvdmUgd2Fybmlu Zy4gRml4IHRoaXMgYnkgYWRkaW5nIHRoZSBfX2ZvcmNlCithdHRyaWJ1dGUgYW5kIHVzaW5nIGl0 IHRvIG1hcmsgdHlwZSBjb252ZXJzaW9ucyBpbiB0aGUgbGVYWHRvaCgpIGNhbGxzLgorCitSZXZp ZXdlZC1ieTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9m Zi1ieTogTmlrbGFzIFNjaG5lbGxlIDxzY2huZWxsZUBsaW51eC5pYm0uY29tPgorU2lnbmVkLW9m Zi1ieTogSmFuIEjDtnBwbmVyIDxob2VwcG5lckBsaW51eC5pYm0uY29tPgorLS0tCisgaW5jbHVk ZS9saWIvenRfY29tbW9uLmggfCAgNSArKysrKworIHpwY2ltb24vbnZtZW1vbi5jICAgICAgIHwg MjQgKysrKysrKysrKysrKysrLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saWIvenRfY29t bW9uLmggYi9pbmNsdWRlL2xpYi96dF9jb21tb24uaAoraW5kZXggYzUzNjNmZTIuLjc4ZjJhOWI4 IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9saWIvenRfY29tbW9uLmgKKysrKyBiL2luY2x1ZGUvbGli L3p0X2NvbW1vbi5oCitAQCAtNzIsNiArNzIsMTEgQEAKKyAjZGVmaW5lIF9fc2VjdGlvbih4KSBf X2F0dHJpYnV0ZV9fKChfX3NlY3Rpb25fXygjeCkpKQorICNkZWZpbmUgX19ub2lubGluZSBfX2F0 dHJpYnV0ZV9fKChfX25vaW5saW5lX18pKQorICNkZWZpbmUgX19iaWdfZW5kaWFuCisrI2lmZGVm IF9fQ0hFQ0tFUl9fCisrIyBkZWZpbmUgX19mb3JjZSBfX2F0dHJpYnV0ZV9fKChmb3JjZSkpCisr I2Vsc2UKKysjIGRlZmluZSBfX2ZvcmNlCisrI2VuZGlmCisgLyogVGhlIExpbnV4IGtlcm5lbCAo aW4gc3RkZGVmLmgpIGFuZCBnbGliYyAoc3lzL2NkZWZzLmgpIGRlZmluZQorICAqIF9fYWx3YXlz X2lubGluZS4gVGhlcmVmb3JlIHVuZGVmaW5lIGl0IGZpcnN0IHRvIGFsbG93IHRoZSBoZWFkZXJz CisgICogdG8gYmUgaW5jbHVkZWQgZmlyc3QuCitkaWZmIC0tZ2l0IGEvenBjaW1vbi9udm1lbW9u LmMgYi96cGNpbW9uL252bWVtb24uYworaW5kZXggYmQ1ZWYxYTcuLjFlNGMxYWE4IDEwMDY0NAor LS0tIGEvenBjaW1vbi9udm1lbW9uLmMKKysrKyBiL3pwY2ltb24vbnZtZW1vbi5jCitAQCAtMjAs NiArMjAsNyBAQAorICNpbmNsdWRlICJsaWIvcGNpX2xpc3QuaCIKKyAjaW5jbHVkZSAibGliL3Bj aV9zY2xwLmgiCisgI2luY2x1ZGUgImxpYi91dGlsX2ZtdC5oIgorKyNpbmNsdWRlICJsaWIvenRf Y29tbW9uLmgiCisgCisgI2luY2x1ZGUgIm52bWVtb24uaCIKKyAjaW5jbHVkZSAienBjaW1vbi5o IgorQEAgLTEwOCwxOSArMTA5LDI0IEBAIHN0YXRpYyB2b2lkIG52bWVfanNvbl9wcmludF9zbWFy dF9sb2coc3RydWN0IHpwY2ltb25fY3R4ICpjdHgsIHN0cnVjdCBudm1lX3NtYXJ0CisgCXV0aWxf Zm10X3BhaXIoRk1UX0RFRkFVTFQsICJtZWRpYV9lcnJvcnMiLCAiJXMiLCB1MTI4X251bV9idWYp OworIAludm1lX3UxMjhfdG9fanNvbl92YWwobnZtZV9sZTEyOF90b19jcHUobG9nLT5udW1fZXJy X2xvZ19lbnRyaWVzKSwgdTEyOF9udW1fYnVmKTsKKyAJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVM VCwgIm51bV9lcnJfbG9nX2VudHJpZXMiLCAiJXMiLCB1MTI4X251bV9idWYpOworLQl1dGlsX2Zt dF9wYWlyKEZNVF9ERUZBVUxULCAid2FybmluZ190ZW1wX3RpbWUiLCAiJWQiLCBsZTMydG9oKGxv Zy0+d2FybmluZ190ZW1wX3RpbWUpKTsKKy0JdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgImNy aXRpY2FsX2NvbXBfdGltZSIsICIlZCIsIGxlMzJ0b2gobG9nLT5jcml0aWNhbF9jb21wX3RpbWUp KTsKKy0JdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgInRlbXBlcmF0dXJlX3NlbnNvcl8xIiwg IiVkIiwgbGUxNnRvaChsb2ctPnRlbXBfc2Vuc29yWzBdKSk7CistCXV0aWxfZm10X3BhaXIoRk1U X0RFRkFVTFQsICJ0ZW1wZXJhdHVyZV9zZW5zb3JfMiIsICIlZCIsIGxlMTZ0b2gobG9nLT50ZW1w X3NlbnNvclsxXSkpOworLQl1dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxULCAidGVtcGVyYXR1cmVf c2Vuc29yXzMiLCAiJWQiLCBsZTE2dG9oKGxvZy0+dGVtcF9zZW5zb3JbMl0pKTsKKysJdXRpbF9m bXRfcGFpcihGTVRfREVGQVVMVCwgIndhcm5pbmdfdGVtcF90aW1lIiwgIiVkIiwKKysJCSAgICAg IGxlMzJ0b2goKF9fZm9yY2UgdWludDMyX3QpbG9nLT53YXJuaW5nX3RlbXBfdGltZSkpOworKwl1 dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxULCAiY3JpdGljYWxfY29tcF90aW1lIiwgIiVkIiwKKysJ CSAgICAgIGxlMzJ0b2goKF9fZm9yY2UgdWludDMyX3QpbG9nLT5jcml0aWNhbF9jb21wX3RpbWUp KTsKKysJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgInRlbXBlcmF0dXJlX3NlbnNvcl8xIiwg IiVkIiwKKysJCSAgICAgIGxlMTZ0b2goKF9fZm9yY2UgdWludDE2X3QpbG9nLT50ZW1wX3NlbnNv clswXSkpOworKwl1dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxULCAidGVtcGVyYXR1cmVfc2Vuc29y XzIiLCAiJWQiLAorKwkJICAgICAgbGUxNnRvaCgoX19mb3JjZSB1aW50MTZfdClsb2ctPnRlbXBf c2Vuc29yWzFdKSk7CisrCXV0aWxfZm10X3BhaXIoRk1UX0RFRkFVTFQsICJ0ZW1wZXJhdHVyZV9z ZW5zb3JfMyIsICIlZCIsCisrCQkgICAgICBsZTE2dG9oKChfX2ZvcmNlIHVpbnQxNl90KWxvZy0+ dGVtcF9zZW5zb3JbMl0pKTsKKyAJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwgInRobV90ZW1w MV90cmFuc19jb3VudCIsICIlZCIsCistCQkgICAgICBsZTMydG9oKGxvZy0+dGhtX3RlbXAxX3Ry YW5zX2NvdW50KSk7CisrCQkgICAgICBsZTMydG9oKChfX2ZvcmNlIHVpbnQzMl90KWxvZy0+dGht X3RlbXAxX3RyYW5zX2NvdW50KSk7CisgCXV0aWxfZm10X3BhaXIoRk1UX0RFRkFVTFQsICJ0aG1f dGVtcDJfdHJhbnNfY291bnQiLCAiJWQiLAorLQkJICAgICAgbGUzMnRvaChsb2ctPnRobV90ZW1w Ml90cmFuc19jb3VudCkpOworKwkJICAgICAgbGUzMnRvaCgoX19mb3JjZSB1aW50MzJfdClsb2ct PnRobV90ZW1wMl90cmFuc19jb3VudCkpOworIAl1dGlsX2ZtdF9wYWlyKEZNVF9ERUZBVUxULCAi dGhtX3RlbXAxX3RvdGFsX3RpbWUiLCAiJWQiLAorLQkJICAgICAgbGUzMnRvaChsb2ctPnRobV90 ZW1wMV90b3RhbF90aW1lKSk7CisrCQkgICAgICBsZTMydG9oKChfX2ZvcmNlIHVpbnQzMl90KWxv Zy0+dGhtX3RlbXAxX3RvdGFsX3RpbWUpKTsKKyAJdXRpbF9mbXRfcGFpcihGTVRfREVGQVVMVCwg InRobV90ZW1wMl90b3RhbF90aW1lIiwgIiVkIiwKKy0JCSAgICAgIGxlMzJ0b2gobG9nLT50aG1f dGVtcDJfdG90YWxfdGltZSkpOworKwkJICAgICAgbGUzMnRvaCgoX19mb3JjZSB1aW50MzJfdCls b2ctPnRobV90ZW1wMl90b3RhbF90aW1lKSk7CisgCXV0aWxfZm10X29ial9lbmQoKTsgLyogc21h cnQtbG9nICovCisgCisgCWlmIChjdHgtPm9wdHMuc21hcnRfYmxvYikKKy0tIAorMi41NS4wCisK CmRpZmYgLS1naXQgYS9zMzkwdXRpbHMuc3BlYyBiL3MzOTB1dGlscy5zcGVjCmluZGV4IDUyZTky OTguLmNhYzhlN2IgMTAwNjQ0Ci0tLSBhL3MzOTB1dGlscy5zcGVjCisrKyBiL3MzOTB1dGlscy5z cGVjCkBAIC0xNyw3ICsxNyw3IEBACiBOYW1lOiAgICAgICAgICAgczM5MHV0aWxzCiBTdW1tYXJ5 OiAgICAgICAgVXRpbGl0aWVzIGFuZCBkYWVtb25zIGZvciBJQk0geiBTeXN0ZW1zCiBWZXJzaW9u OiAgICAgICAgMi40My4xCi1SZWxlYXNlOiAgICAgICAgMSV7P2Rpc3R9CitSZWxlYXNlOiAgICAg ICAgMiV7P2Rpc3R9CiBFcG9jaDogICAgICAgICAgMgogIyBNSVQgY292ZXJzIG5lYXJseSBhbGwg dGhlIGZpbGVzLCBleGNlcHQgaW5pdCBmaWxlcyAoTEdQTC0yLjEtb3ItbGF0ZXIpCiAjCkBAIC03 OCw3ICs3OCw3IEBAIFBhdGNoMDogICAgICAgICBzMzkwLXRvb2xzLXppcGwtaW52ZXJ0LXNjcmlw dC1vcHRpb25zLnBhdGNoCiBQYXRjaDE6ICAgICAgICAgczM5MC10b29scy16aXBsLWJsc2NmZy1y cG0tbnZyLXNvcnQucGF0Y2gKIAogIyB1cHN0cmVhbSBmaXhlcy91cGRhdGVzCi0jUGF0Y2gxMDA6 ICAgICAgIHMzOTB1dGlscy0lJXt2ZXJzaW9ufS1mZWRvcmEucGF0Y2gKK1BhdGNoMTAwOiAgICAg ICBzMzkwdXRpbHMtJXt2ZXJzaW9ufS1mZWRvcmEucGF0Y2gKIAogIyBodHRwczovL2ZlZG9yYXBy b2plY3Qub3JnL3dpa2kvQ2hhbmdlcy9FbmNvdXJhZ2VJNjg2TGVhZlJlbW92YWwKIEV4Y2x1ZGVB cmNoOiAgICAle2l4ODZ9CkBAIC0xMjQsNyArMTI0LDggQEAgVGhlIHMzOTB1dGlscyBwYWNrYWdl cyBjb250YWluIGEgc2V0IG9mIHVzZXIgc3BhY2UgdXRpbGl0aWVzIHRoYXQgc2hvdWxkIHRvCiBi ZSB1c2VkIHRvZ2V0aGVyIHdpdGggdGhlIHpTZXJpZXMgKHMzOTApIExpbnV4IGtlcm5lbCBhbmQg ZGV2aWNlIGRyaXZlcnMuCiAKICVwcmVwCi0lYXV0b3NldHVwIC1uIHMzOTAtdG9vbHMtJXt2ZXJz aW9ufSAtcDEKKyMgZ2l0X2FtIG1ldGhvZCBuZWVkZWQgZm9yIHRoZSBwYXRjaHNldCB3aXRoIGZp bGUgcmVuYW1pbmdzCislYXV0b3NldHVwIC1uIHMzOTAtdG9vbHMtJXt2ZXJzaW9ufSAtcDEgLVMg Z2l0X2FtCiAKICVpZiAwJXs/cmhlbH0KIHB1c2hkIHJ1c3QKQEAgLTQ2Miw2ICs0NjMsNyBAQCBC dWlsZFJlcXVpcmVzOiAganNvbi1jLWRldmVsCiBCdWlsZFJlcXVpcmVzOiAgcnBtLWRldmVsCiBC dWlsZFJlcXVpcmVzOiAgbGlieG1sMi1kZXZlbAogQnVpbGRSZXF1aXJlczogIGxpYm5sMy1kZXZl bAorQnVpbGRSZXF1aXJlczogIGxpYm52bWUtZGV2ZWwKIAogCiAlZGVzY3JpcHRpb24gYmFzZQpA QCAtNjQ1LDYgKzY0Nyw3IEBAIEZvciBtb3JlIGluZm9ybWF0aW9uIHJlZmVyIHRvIHRoZSBmb2xs b3dpbmcgcHVibGljYXRpb25zOgogJXtfc2JpbmRpcn0vem1lbXRvcG8KICV7X3NiaW5kaXJ9L3pu ZXRjb25mCiAle19zYmluZGlyfS96cGNpY3RsCisle19zYmluZGlyfS96cGNpbW9uCiAle19iaW5k aXJ9L2NwYWNmaW5mbwogJXtfYmluZGlyfS9kdW1wMnRhcgogJXtfYmluZGlyfS9nZW5wcm90aW1n CkBAIC02NjMsNiArNjY2LDcgQEAgRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVmZXIgdG8gdGhlIGZv bGxvd2luZyBwdWJsaWNhdGlvbnM6CiAle19iaW5kaXJ9L3pwd3IKICV7X3VuaXRkaXJ9L2R1bXBj b25mLnNlcnZpY2UKICV7X3VuaXRkaXJ9L29wdGljc21vbi5zZXJ2aWNlCisle191bml0ZGlyfS96 cGNpbW9uLnNlcnZpY2UKICVnaG9zdCAlY29uZmlnKG5vcmVwbGFjZSkgJXtfc3lzY29uZmRpcn0v emlwbC5jb25mCiAlY29uZmlnKG5vcmVwbGFjZSkgJXtfc3lzY29uZmRpcn0vc3lzY29uZmlnL2R1 bXBjb25mCiAle19zeXNjb25mZGlyfS9tZGV2Y3RsLmQvKgpAQCAtNzY0LDYgKzc2OCw3IEBAIEZv ciBtb3JlIGluZm9ybWF0aW9uIHJlZmVyIHRvIHRoZSBmb2xsb3dpbmcgcHVibGljYXRpb25zOgog JXtfbWFuZGlyfS9tYW44L3ptZW10b3BvLjgqCiAle19tYW5kaXJ9L21hbjgvem5ldGNvbmYuOCoK ICV7X21hbmRpcn0vbWFuOC96cGNpY3RsLjgqCisle19tYW5kaXJ9L21hbjgvenBjaW1vbi44Kgog JWRpciAle19kYXRhZGlyfS9zMzkwLXRvb2xzCiAle19kYXRhZGlyfS9zMzkwLXRvb2xzL25ldGJv b3QvCiAle2Jhc2hfY29tcGxldGlvbnNfZGlyfS8qLmJhc2gKQEAgLTExNDEsNiArMTE0Niw5IEBA IFVzZXItc3BhY2UgZGV2ZWxvcG1lbnQgZmlsZXMgZm9yIHRoZSBzMzkwL3MzOTB4IGFyY2hpdGVj dHVyZS4KIAogCiAlY2hhbmdlbG9nCisqIE1vbiBKdWwgMjcgMjAyNiBEYW4gSG9yw6FrIDxkYW5b YXRdZGFubnkuY3o+IC0gMjoyLjQzLjEtMgorLSBpbmNsdWRlIHpwY2ltb24gZmVhdHVyZQorCiAq IFRodSBKdWwgMjMgMjAyNiBEYW4gSG9yw6FrIDxkYW5bYXRdZGFubnkuY3o+IC0gMjoyLjQzLjEt MQogLSByZWJhc2VkIHRvIDIuNDMuMSAocmhieiMyNTA2MzQzKQogCg==