ZGlmZiAtLWdpdCBhL2NhcC96eDI5NzUyMHYzL3p4aWNfY29kZS96eGljX3NvdXJjZS96eGljX2FwcF9vcGVuL3BsYXRmb3JtL2xpYnRpbnlhbHNhL2F1ZGlvX21peGVyX2N0cmwuYyBiL2NhcC96eDI5NzUyMHYzL3p4aWNfY29kZS96eGljX3NvdXJjZS96eGljX2FwcF9vcGVuL3BsYXRmb3JtL2xpYnRpbnlhbHNhL2F1ZGlvX21peGVyX2N0cmwuYwppbmRleCBjNmFlNDYzLi42NWM3ZTNjIDEwMDc1NQotLS0gYS9jYXAvengyOTc1MjB2My96eGljX2NvZGUvenhpY19zb3VyY2UvenhpY19hcHBfb3Blbi9wbGF0Zm9ybS9saWJ0aW55YWxzYS9hdWRpb19taXhlcl9jdHJsLmMKKysrIGIvY2FwL3p4Mjk3NTIwdjMvenhpY19jb2RlL3p4aWNfc291cmNlL3p4aWNfYXBwX29wZW4vcGxhdGZvcm0vbGlidGlueWFsc2EvYXVkaW9fbWl4ZXJfY3RybC5jCkBAIC05MTYsNiArOTE2LDE3NCBAQAogCiAvKiB5dS5kb25nQDIwMjQwNjI3IFtUMTA2QlVHLTYxNV1DT0RFQyA4MzExIHVzaW5nIHZvaWNlX2RlbW8gdG8gc2V0IGNvZGVjIHZvbHVtZSBoYXMgbm8gZWZmZWN0IGVuZCAqLwogCisvL2wueWFuZyBtb2RpZnkgZm9yIGJ1ZyBpZCBUMTA2QlVHLTMzNyAyMDIzLzExLzkgc3RhcnQKKyNlbGlmIGRlZmluZWQgX1VTRV9DT0RFQ19USTMxMDQKKworc3RhdGljIHN0cnVjdCBhdWRpb19wYXJhX2NvbmYgaW5pdF9kZWZhdWx0X3BhcmFbXSA9IHsgIC8vv7+/v7+/vworCit9OworCitzdGF0aWMgc3RydWN0IGF1ZGlvX3BhcmFfY29uZiAgY29tbW9uX291dF9wYXJhX2F1ZGlvW10gPSB7ICAvL7+/v7+/vworICAgIC8veyJEQUMgU29mdCBNdXRlIENvbnRyb2wiLCB7IjAifX0sCit9OworCisKK3N0YXRpYyBzdHJ1Y3QgYXVkaW9fcGFyYV9jb25mICBjb21tb25faW5fcGFyYV9hdWRpb1tdID0geyAgLy+/v7+/v78KKwkvL3siTWljIEdhaW4gQ29udHJvbCIsIHsiMCJ9fSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXVkaW9fcGFyYV9jb25mICBocF9vdXRwYXRoX3BhcmFfYXVkaW9bXSA9IHsgIC8vv7+/SHC/v7+/CisJeyJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIHsiMSIsIjEifX0sCisJeyJQQ00gUGxheWJhY2sgVm9sdW1lIiwgeyIxMTAiLCIxMTAifX0sCisJeyJMaW5lIFBsYXliYWNrIFZvbHVtZSIsIHsiOCIsIjgifX0sCisJeyJMaW5lIERBQyBQbGF5YmFjayBWb2x1bWUiLCB7IjExMCIsIjExMCJ9fSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXVkaW9fcGFyYV9jb25mICBzcGtfb3V0cGF0aF9wYXJhX2F1ZGlvW10gPSB7IC8vv7+/U3Brv7+/vworCXsiTGluZSBQbGF5YmFjayBTd2l0Y2giLCB7IjEiLCIxIn19LAorCXsiUENNIFBsYXliYWNrIFZvbHVtZSIsIHsiMTEwIiwiMTEwIn19LAorCXsiTGluZSBQbGF5YmFjayBWb2x1bWUiLCB7IjgiLCI4In19LAorCXsiTGluZSBEQUMgUGxheWJhY2sgVm9sdW1lIiwgeyIxMTAiLCIxMTAifX0sCit9OworCitzdGF0aWMgIHN0cnVjdCAgYXVkaW9fcGFyYV9jb25mICBtYWluX21pY19pbnBhdGhfcGFyYV9hdWRpb1tdID0geyAvL7+/v01pYzFscF9NaWMxbG2/v7+/CisJeyJNaWNCaWFzIFZHIiwgeyIxIn19LAorCXsiUEdBIENhcHR1cmUgVm9sdW1lIiwgeyI1MCIsIjUwIn19LCAvL3l1LmRvbmdAMjAyNDA4MjEgW0FVRElPXSBGaXggYXVkaW8gcmV0dXJuIHRvbmUgcHJvYmxlbSBvbiBzcGVha2VycGhvbmUKKwl7IlBHQSBDYXB0dXJlIFN3aXRjaCIsIHsiMSIsIjEifX0sCisJeyJBREMgSFBGIEN1dC1vZmYiLCB7IjEiLCIxIn19LAorCisJeyJMZWZ0IFBHQSBNaXhlciBNaWMyTCBTd2l0Y2giLHsiMSJ9fSwKKwl7IkxlZnQgUEdBIE1peGVyIE1pYzJSIFN3aXRjaCIseyIxIn19LAorCXsiUmlnaHQgUEdBIE1peGVyIE1pYzJMIFN3aXRjaCIseyIxIn19LAorCXsiUmlnaHQgUEdBIE1peGVyIE1pYzJSIFN3aXRjaCIseyIxIn19LAorfTsKKworc3RhdGljICBzdHJ1Y3QgIGF1ZGlvX3BhcmFfY29uZiAgYXV4X21pY19pbnBhdGhfcGFyYV9hdWRpb1tdID0gey8vv7+/TWljMXJwv7+/vworCXsiTWljQmlhcyBWRyIsIHsiMSJ9fSwKKwl7IlBHQSBDYXB0dXJlIFZvbHVtZSIsIHsiNTAiLCI1MCJ9fSwgLy95dS5kb25nQDIwMjQwODIxIFtBVURJT10gRml4IGF1ZGlvIHJldHVybiB0b25lIHByb2JsZW0gb24gc3BlYWtlcnBob25lCisJeyJQR0EgQ2FwdHVyZSBTd2l0Y2giLCB7IjEiLCIxIn19LAorCXsiQURDIEhQRiBDdXQtb2ZmIiwgeyIxIiwiMSJ9fSwKKworCXsiTGVmdCBQR0EgTWl4ZXIgTWljMkwgU3dpdGNoIix7IjEifX0sCisJeyJMZWZ0IFBHQSBNaXhlciBNaWMyUiBTd2l0Y2giLHsiMSJ9fSwKKwl7IlJpZ2h0IFBHQSBNaXhlciBNaWMyTCBTd2l0Y2giLHsiMSJ9fSwKKwl7IlJpZ2h0IFBHQSBNaXhlciBNaWMyUiBTd2l0Y2giLHsiMSJ9fSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXVkaW9fcGFyYV9jb25mICBoYW5kc2V0X2lub3V0cGF0aF9wYXJhX3ZvaWNlW10gPSB7ICAvL7+/v0hwv7+/v01pYzFscF9NaWMxbG2/v7+/CisJLy9pbgorCS8vIzB4MmQgYjYgcGdhIG11dGUKKwl7Ik1pY0JpYXMgVkciLCB7IjEifX0sCisJeyJQR0EgQ2FwdHVyZSBWb2x1bWUiLCB7IjUwIiwiNTAifX0sIC8veXUuZG9uZ0AyMDI0MDgyMSBbQVVESU9dIEZpeCBhdWRpbyByZXR1cm4gdG9uZSBwcm9ibGVtIG9uIHNwZWFrZXJwaG9uZQorCXsiUEdBIENhcHR1cmUgU3dpdGNoIiwgeyIxIiwiMSJ9fSwKKwl7IkFEQyBIUEYgQ3V0LW9mZiIsIHsiMSIsIjEifX0sCisKKwl7IkxlZnQgUEdBIE1peGVyIE1pYzJMIFN3aXRjaCIseyIxIn19LAorCXsiTGVmdCBQR0EgTWl4ZXIgTWljMlIgU3dpdGNoIix7IjEifX0sCisJeyJSaWdodCBQR0EgTWl4ZXIgTWljMkwgU3dpdGNoIix7IjEifX0sCisJeyJSaWdodCBQR0EgTWl4ZXIgTWljMlIgU3dpdGNoIix7IjEifX0sCisKKwkvL291dAorCXsiTGluZSBQbGF5YmFjayBTd2l0Y2giLCB7IjEiLCIxIn19LAorCXsiUENNIFBsYXliYWNrIFZvbHVtZSIsIHsiMTEwIiwiMTEwIn19LAorCXsiTGluZSBQbGF5YmFjayBWb2x1bWUiLCB7IjgiLCI4In19LAorCXsiTGluZSBEQUMgUGxheWJhY2sgVm9sdW1lIiwgeyIxMTAiLCIxMTAifX0sCisKKwkvL3ZvaWNlCisJI2lmbmRlZiBVU0VfQ0FQX1NVUFBPUlQKKwl7InZvaWNlIHByb2Nlc3NpbmcgcGF0aCBzZWxlY3QiLCB7ImhhbmRzZXQifX0sICAvLyBoYW5kc2V0IHNwZWFrIGhlYWRzZXQgYmx1ZXRvb3RoCisJI2VuZGlmCit9OworCitzdGF0aWMgc3RydWN0IGF1ZGlvX3BhcmFfY29uZiAgaGVhZHNldF9pbm91dHBhdGhfcGFyYV92b2ljZVtdID0geyAgLy+/v79IcL+/v78gTWljMXJwv7+/vworCS8vaW4KKwkvLyMweDJkIGI2IHBnYSBtdXRlCisJeyJNaWNCaWFzIFZHIiwgeyIxIn19LAorCXsiUEdBIENhcHR1cmUgVm9sdW1lIiwgeyI1MCIsIjUwIn19LCAvL3l1LmRvbmdAMjAyNDA4MjEgW0FVRElPXSBGaXggYXVkaW8gcmV0dXJuIHRvbmUgcHJvYmxlbSBvbiBzcGVha2VycGhvbmUKKwl7IlBHQSBDYXB0dXJlIFN3aXRjaCIsIHsiMSIsIjEifX0sCisJeyJBREMgSFBGIEN1dC1vZmYiLCB7IjEiLCIxIn19LAorCisJeyJMZWZ0IFBHQSBNaXhlciBNaWMyTCBTd2l0Y2giLHsiMSJ9fSwKKwl7IkxlZnQgUEdBIE1peGVyIE1pYzJSIFN3aXRjaCIseyIxIn19LAorCXsiUmlnaHQgUEdBIE1peGVyIE1pYzJMIFN3aXRjaCIseyIxIn19LAorCXsiUmlnaHQgUEdBIE1peGVyIE1pYzJSIFN3aXRjaCIseyIxIn19LAorCisJLy9vdXQKKwl7IkxpbmUgUGxheWJhY2sgU3dpdGNoIiwgeyIxIiwiMSJ9fSwKKwl7IlBDTSBQbGF5YmFjayBWb2x1bWUiLCB7IjExMCIsIjExMCJ9fSwKKwl7IkxpbmUgUGxheWJhY2sgVm9sdW1lIiwgeyI4IiwiOCJ9fSwKKwl7IkxpbmUgREFDIFBsYXliYWNrIFZvbHVtZSIsIHsiMTEwIiwiMTEwIn19LAorCisJLy92b2ljZQorCSNpZm5kZWYgVVNFX0NBUF9TVVBQT1JUCisJeyJ2b2ljZSBwcm9jZXNzaW5nIHNlbGVjdCIsIHsiaGVhZHNldCJ9fSwgLy8gaGFuZHNldCBzcGVhayBoZWFkc2V0IGJsdWV0b290aAorCSNlbmRpZgorfTsKKworc3RhdGljIHN0cnVjdCBhdWRpb19wYXJhX2NvbmYgIHNwa19pbm91dHBhdGhfcGFyYV92b2ljZVtdID0geyAvL7+/v1Nwa7+/v79NaWMxbHBfTWljMWxtv7+/vworCS8vaW4KKwkvLyMweDJkIGI2IHBnYSBtdXRlCisJeyJNaWNCaWFzIFZHIiwgeyIxIn19LAorCXsiUEdBIENhcHR1cmUgVm9sdW1lIiwgeyI1MCIsIjUwIn19LCAvL3l1LmRvbmdAMjAyNDA4MjEgW0FVRElPXSBGaXggYXVkaW8gcmV0dXJuIHRvbmUgcHJvYmxlbSBvbiBzcGVha2VycGhvbmUKKwl7IlBHQSBDYXB0dXJlIFN3aXRjaCIsIHsiMSIsIjEifX0sCisJeyJBREMgSFBGIEN1dC1vZmYiLCB7IjEiLCIxIn19LAorCisJeyJMZWZ0IFBHQSBNaXhlciBNaWMyTCBTd2l0Y2giLHsiMSJ9fSwKKwl7IkxlZnQgUEdBIE1peGVyIE1pYzJSIFN3aXRjaCIseyIxIn19LAorCXsiUmlnaHQgUEdBIE1peGVyIE1pYzJMIFN3aXRjaCIseyIxIn19LAorCXsiUmlnaHQgUEdBIE1peGVyIE1pYzJSIFN3aXRjaCIseyIxIn19LAorCisJLy9vdXQKKwl7IkxpbmUgUGxheWJhY2sgU3dpdGNoIiwgeyIxIiwiMSJ9fSwKKwl7IlBDTSBQbGF5YmFjayBWb2x1bWUiLCB7IjExMCIsIjExMCJ9fSwKKwl7IkxpbmUgUGxheWJhY2sgVm9sdW1lIiwgeyI4IiwiOCJ9fSwKKwl7IkxpbmUgREFDIFBsYXliYWNrIFZvbHVtZSIsIHsiMTEwIiwiMTEwIn19LAorCS8vdm9pY2UKKworCSNpZm5kZWYgVVNFX0NBUF9TVVBQT1JUCisJeyJ2b2ljZSBwcm9jZXNzaW5nIHBhdGggc2VsZWN0IiwgeyJzcGVhayJ9fSwgLy8gaGFuZHNldCBzcGVhayBoZWFkc2V0IGJsdWV0b290aAorCSNlbmRpZgorfTsKKworc3RhdGljIHN0cnVjdCBhdWRpb19wYXJhX2NvbmYgb3V0cHV0X2RhY192b2wgPSB7CisgICB7IlBDTSBQbGF5YmFjayBWb2x1bWUiLCB7IjExMCIsIjExMCJ9fSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXVkaW9fcGFyYV9jb25mIGlucHV0X2FkY192b2wgPSB7CisJeyJQR0EgQ2FwdHVyZSBWb2x1bWUiLCB7IjUwIiwiNTAifX0sIC8veXUuZG9uZ0AyMDI0MDgyMSBbQVVESU9dIEZpeCBhdWRpbyByZXR1cm4gdG9uZSBwcm9ibGVtIG9uIHNwZWFrZXJwaG9uZQorfTsKKworc3RhdGljIHN0cnVjdCBhdWRpb19wYXJhX2NvbmYgZGFjX211dGUgPSB7CisJIkxpbmUgUGxheWJhY2sgU3dpdGNoIiwgeyIwIiwiMCJ9Cit9OworCitzdGF0aWMgc3RydWN0IGF1ZGlvX3BhcmFfY29uZiBhZGNfbXV0ZSA9IHsKKyAgICAiTWljQmlhcyBWRyIsIHsiMCJ9Cit9OworCitzdGF0aWMgc3RydWN0IGF1ZGlvX3BhcmFfY29uZiBzcGtfcGF0aF9vbm9mZltdID0geworCXsiTW9ubyBNaXhlciBQQ00gUGxheWJhY2sgU3dpdGNoIiwgeyIwIn19LAorfTsKKworc3RhdGljIHN0cnVjdCBhdWRpb19wYXJhX2NvbmYgcmN2X3BhdGhfb25vZmZbXSA9IHsKKwl7Ik1vbm8gTWl4ZXIgUENNIFBsYXliYWNrIFN3aXRjaCIsIHsiMCJ9fSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXVkaW9fcGFyYV9jb25mIGVhcnBfcGF0aF9vbm9mZltdID0geworCXsiU3BlYWtlciBNaXhlciBQQ00gUGxheWJhY2sgU3dpdGNoIiwgeyIwIn19LAorfTsKKworc3RhdGljIGludCBvdXRwdXRfdm9sX2NvbnZlcnNpb24oaW50IHZvbCkKK3sKKwlyZXR1cm4gMTIwOworfQorCitzdGF0aWMgaW50IGlucHV0X3ZvbF9jb252ZXJzaW9uKGludCB2b2wpCit7CisJcmV0dXJuIDEwMDsKK30KKy8vbC55YW5nIG1vZGlmeSBmb3IgYnVnIGlkIFQxMDZCVUctMzM3IDIwMjMvMTEvOSBlbmQKKwogI2VsaWYgZGVmaW5lZCBfVVNFX0NPREVDX0VTODM3NAogCiAKQEAgLTE5NzYsNyArMjE0NCw3IEBACiB9CiAKIAotI2lmIChkZWZpbmVkIF9VU0VfQ09ERUNfVEkzMTAwKXx8KGRlZmluZWQgX1VTRV9DT0RFQ19BSzQ5NDApfHwoZGVmaW5lZCBfVVNFX0NPREVDX05BVTg4MTApfHwoZGVmaW5lZCBfVVNFX0NPREVDX0VTODMxMSkKKyNpZiAoZGVmaW5lZCBfVVNFX0NPREVDX1RJMzEwMCl8fChkZWZpbmVkIF9VU0VfQ09ERUNfQUs0OTQwKXx8KGRlZmluZWQgX1VTRV9DT0RFQ19OQVU4ODEwKXx8KGRlZmluZWQgX1VTRV9DT0RFQ19FUzgzMTEpfHwoZGVmaW5lZCBfVVNFX0NPREVDX1RJMzEwNCkKIC8qCiBpbnQgbWl4X3NldF9pbnB1dF92b2woc3RydWN0IG1peGVyICptaXhlciwgaW50IHZvbHVtZSkKIHsK