ZGlmZiAtLWdpdCBhL2RvYy9oYXByb3h5LWVuLnR4dCBiL2RvYy9oYXByb3h5LWVuLnR4dAppbmRleCA3NmQ1NGM0Li4xMzQxYWVhIDEwMDY0NAotLS0gYS9kb2MvaGFwcm94eS1lbi50eHQKKysrIGIvZG9jL2hhcHJveHktZW4udHh0CkBAIC0xMDM0LDYgKzEwMzQsMTMgQEAKIHdoZW4gaXQgcmVjZWl2ZXMgb25seSBhbiBIRUxMTyBtZXNzYWdlLCB3aGljaCBtYWtlcyB0aGlzIHR5cGUgb2YgbWVzc2FnZQogcGVyZmVjdGx5IHN1aXQgdGhpcyBuZWVkLgogCitWZXJzaW9uIDEuMy4xMCBpbnRyb2R1Y2VkIHRoZSBTTVRQIGhlYWx0aCBjaGVjay4gQnkgZGVmYXVsdCwgaXQgc2VuZHMKKyJIRUxPIGxvY2FsaG9zdCIgdG8gdGhlIHNlcnZlcnMsIGFuZCB3YWl0cyBmb3IgdGhlIDI1MCBtZXNzYWdlLiBOb3RlIHRoYXQgaXQKK2NhbiBhbHNvIHNlbmQgYSBzcGVjaWZpYyByZXF1ZXN0IDoKKworICAtIG9wdGlvbiBzbXRwY2hrICAgICAgICAgICAgICAgICAgICAgICAgIC0+IHNlbmRzICJIRUxPIGxvY2FsaG9zdCIKKyAgLSBvcHRpb24gc210cGNoayBFSExPIG1haWwubXlkb21haW4uY29tICAtPiBzZW5kcyB0aGlzIEVTTVRQIGdyZWV0aW5nCisKIFNlZSBleGFtcGxlcyBiZWxvdy4KIAogU2luY2UgdmVyc2lvbiAxLjEuMTcsIGl0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgYmFja3VwIHNlcnZlcnMuIFRoZXNlIHNlcnZlcnMKZGlmZiAtLWdpdCBhL2RvYy9oYXByb3h5LWZyLnR4dCBiL2RvYy9oYXByb3h5LWZyLnR4dAppbmRleCA4ZTgzZWFiLi43OTViNjdiIDEwMDY0NAotLS0gYS9kb2MvaGFwcm94eS1mci50eHQKKysrIGIvZG9jL2hhcHJveHktZnIudHh0CkBAIC0xMDQ0LDYgKzEwNDQsMTQgQEAKIGxvcnNxdSdpbCByZedvaXQgZGVzIG1lc3NhZ2VzIEhFTExPLCBjZSBxdWkgZW4gZmFpdCB1biB0eXBlIGRlIG1lc3NhZ2UKIHBhcmZhaXRlbWVudCBhZGFwdOkg4CBjZSBiZXNvaW4uCiAKK0xhIHZlcnNpb24gMS4zLjEwIGVzdCBhY2NvbXBhZ27pZSBkJ3VuIG5vdXZlYXUgdGVzdCBkJ+l0YXQgcG91ciBsZSBTTVRQLiBQYXIKK2TpZmF1dCwgaWwgY29uc2lzdGUg4CBlbnZveWVyICJIRUxPIGxvY2FsaG9zdCIgYXV4IHNlcnZldXJzLCBldCDgIGF0dGVuZHJlIGxlCittZXNzYWdlICIyNTAiIGVuIHJldG91ci4gTm90ZXogcXUnaWwgcGV1dCBhdXNzaSBlbnZveWVyIHVuZSByZXF16nRlIHBsdXMKK3Nw6WNpZmlxdWUgOgorCisgIC0gb3B0aW9uIHNtdHBjaGsgICAgICAgICAgICAgICAgICAgICAgICAgLT4gZW52b2llICJIRUxPIGxvY2FsaG9zdCIKKyAgLSBvcHRpb24gc210cGNoayBFSExPIG1haWwubXlkb21haW4uY29tICAtPiBlbnZvaWUgY2UgbWVzc2FnZSBFU01UUAorCiBWb2lyIGxlcyBleGVtcGxlcyBjaS1hcHLocy4gICAgICAgIAogCiBEZXB1aXMgbGEgdmVyc2lvbiAxLjEuMTcsIGlsIGVzdCBwb3NzaWJsZSBkZSBk6WZpbmlyIGRlcyBzZXJ2ZXVycyBkZSBzZWNvdXJzLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21tb24vZGVmYXVsdHMuaCBiL2luY2x1ZGUvY29tbW9uL2RlZmF1bHRzLmgKaW5kZXggYzk5YWFmZS4uY2ZlNjBlOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jb21tb24vZGVmYXVsdHMuaAorKysgYi9pbmNsdWRlL2NvbW1vbi9kZWZhdWx0cy5oCkBAIC05Miw2ICs5Miw3IEBACiAjZGVmaW5lIERFRl9GQUxMVElNRSAgICAzCiAjZGVmaW5lIERFRl9SSVNFVElNRSAgICAyCiAjZGVmaW5lIERFRl9DSEVDS19SRVEgICAiT1BUSU9OUyAvIEhUVFAvMS4wXHJcblxyXG4iCisjZGVmaW5lIERFRl9TTVRQX0NIRUNLX1JFUSAgICJIRUxPIGxvY2FsaG9zdFxyXG4iCiAKIC8qIERlZmF1bHQgY29ubmVjdGlvbnMgbGltaXQuCiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS90eXBlcy9iYWNrZW5kLmggYi9pbmNsdWRlL3R5cGVzL2JhY2tlbmQuaAppbmRleCBlMmQ0ZWZjLi41N2E4Y2IwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3R5cGVzL2JhY2tlbmQuaAorKysgYi9pbmNsdWRlL3R5cGVzL2JhY2tlbmQuaApAQCAtNTksNiArNTksNyBAQAogI2RlZmluZQlQUl9PX1RDUFNQTElDRQkweDA4MDAwMDAwICAgICAgLyogZGVsZWdhdGUgZGF0YSB0cmFuc2ZlciB0byBsaW51eCBrZXJuZWwncyB0Y3Bfc3BsaWNlICovCiAjZGVmaW5lIFBSX09fQkFMQU5DRV9VSCAweDEwMDAwMDAwICAgICAgLyogYmFsYW5jZSBvbiBVUkkgaGFzaCAqLwogI2RlZmluZSBQUl9PX0JBTEFOQ0UgICAgKFBSX09fQkFMQU5DRV9SUiB8IFBSX09fQkFMQU5DRV9TSCB8IFBSX09fQkFMQU5DRV9VSCkKKyNkZWZpbmUgUFJfT19TTVRQX0NISyAgIDB4MjAwMDAwMDAgICAgICAvKiB1c2UgU01UUCBFSExPIGNoZWNrIGZvciBzZXJ2ZXIgaGVhbHRoIC0gcHZhbmRpamtAdmlzaW9uNi5jb20uYXUgKi8KIAogCiAjZW5kaWYgLyogX1RZUEVTX0JBQ0tFTkRfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2NmZ3BhcnNlLmMgYi9zcmMvY2ZncGFyc2UuYwppbmRleCA0MWQ3MDY2Li5iMmU3NmIzIDEwMDY0NAotLS0gYS9zcmMvY2ZncGFyc2UuYworKysgYi9zcmMvY2ZncGFyc2UuYwpAQCAtMTAyOSwxMyArMTAyOSwxNCBAQAogCQkJaWYgKGN1cnByb3h5LT5jaGVja19yZXEgIT0gTlVMTCkgewogCQkJCWZyZWUoY3VycHJveHktPmNoZWNrX3JlcSk7CiAJCQl9Ci0JCQljdXJwcm94eS0+b3B0aW9ucyB8PSBQUl9PX0hUVFBfQ0hLOwogCQkJY3VycHJveHktPm9wdGlvbnMgJj0gflBSX09fU1NMM19DSEs7CisJCQljdXJwcm94eS0+b3B0aW9ucyAmPSB+UFJfT19TTVRQX0NISzsKKwkJCWN1cnByb3h5LT5vcHRpb25zIHw9IFBSX09fSFRUUF9DSEs7CiAJCQlpZiAoISphcmdzWzJdKSB7IC8qIG5vIGFyZ3VtZW50ICovCiAJCQkJY3VycHJveHktPmNoZWNrX3JlcSA9IHN0cmR1cChERUZfQ0hFQ0tfUkVRKTsgLyogZGVmYXVsdCByZXF1ZXN0ICovCiAJCQkJY3VycHJveHktPmNoZWNrX2xlbiA9IHN0cmxlbihERUZfQ0hFQ0tfUkVRKTsKIAkJCX0gZWxzZSBpZiAoISphcmdzWzNdKSB7IC8qIG9uZSBhcmd1bWVudCA6IFVSSSAqLwotCQkJCWludCByZXFsZW4gPSBzdHJsZW4oYXJnc1syXSkgKyBzdHJsZW4oIk9QVElPTlMgLyBIVFRQLzEuMFxyXG5cclxuIik7CisJCQkJaW50IHJlcWxlbiA9IHN0cmxlbihhcmdzWzJdKSArIHN0cmxlbigiT1BUSU9OUyAgSFRUUC8xLjBcclxuXHJcbiIpICsgMTsKIAkJCQljdXJwcm94eS0+Y2hlY2tfcmVxID0gKGNoYXIgKiltYWxsb2MocmVxbGVuKTsKIAkJCQljdXJwcm94eS0+Y2hlY2tfbGVuID0gc25wcmludGYoY3VycHJveHktPmNoZWNrX3JlcSwgcmVxbGVuLAogCQkJCQkJCSAgICAgICAiT1BUSU9OUyAlcyBIVFRQLzEuMFxyXG5cclxuIiwgYXJnc1syXSk7IC8qIFVSSSB0byB1c2UgKi8KQEAgLTEwNjAsOCArMTA2MSwzNSBAQAogCQkJCWZyZWUoY3VycHJveHktPmNoZWNrX3JlcSk7CiAJCQl9CiAJCQljdXJwcm94eS0+b3B0aW9ucyAmPSB+UFJfT19IVFRQX0NISzsKKwkJCWN1cnByb3h5LT5vcHRpb25zICY9IH5QUl9PX1NNVFBfQ0hLOwogCQkJY3VycHJveHktPm9wdGlvbnMgfD0gUFJfT19TU0wzX0NISzsKIAkJfQorCQllbHNlIGlmICghc3RyY21wKGFyZ3NbMV0sICJzbXRwY2hrIikpIHsKKwkJCS8qIHVzZSBTTVRQIHJlcXVlc3QgdG8gY2hlY2sgc2VydmVycycgaGVhbHRoICovCisJCQlpZiAoY3VycHJveHktPmNoZWNrX3JlcSAhPSBOVUxMKSB7CisJCQkJZnJlZShjdXJwcm94eS0+Y2hlY2tfcmVxKTsKKwkJCX0KKwkJCWN1cnByb3h5LT5vcHRpb25zICY9IH5QUl9PX0hUVFBfQ0hLOworCQkJY3VycHJveHktPm9wdGlvbnMgJj0gflBSX09fU1NMM19DSEs7CisJCQljdXJwcm94eS0+b3B0aW9ucyB8PSBQUl9PX1NNVFBfQ0hLOworCisJCQlpZiAoISphcmdzWzJdIHx8ICEqYXJnc1szXSkgeyAvKiBubyBhcmd1bWVudCBvciBpbmNvbXBsZXRlIEVITE8gaG9zdCAqLworCQkJCWN1cnByb3h5LT5jaGVja19yZXEgPSBzdHJkdXAoREVGX1NNVFBfQ0hFQ0tfUkVRKTsgLyogZGVmYXVsdCByZXF1ZXN0ICovCisJCQkJY3VycHJveHktPmNoZWNrX2xlbiA9IHN0cmxlbihERUZfU01UUF9DSEVDS19SRVEpOworCQkJfSBlbHNlIHsgLyogRVNNVFAgRUhMTywgb3IgU01UUCBIRUxPLCBhbmQgYSBob3N0bmFtZSAqLworCQkJCWlmICghc3RyY21wKGFyZ3NbMl0sICJFSExPIikgfHwgIXN0cmNtcChhcmdzWzJdLCAiSEVMTyIpKSB7CisJCQkJCWludCByZXFsZW4gPSBzdHJsZW4oYXJnc1syXSkgKyBzdHJsZW4oYXJnc1szXSkgKyBzdHJsZW4oIiBcclxuIikgKyAxOworCQkJCQljdXJwcm94eS0+Y2hlY2tfcmVxID0gKGNoYXIgKiltYWxsb2MocmVxbGVuKTsKKwkJCQkJY3VycHJveHktPmNoZWNrX2xlbiA9IHNucHJpbnRmKGN1cnByb3h5LT5jaGVja19yZXEsIHJlcWxlbiwKKwkJCQkJCQkJICAgICAgICIlcyAlc1xyXG4iLCBhcmdzWzJdLCBhcmdzWzNdKTsgLyogSEVMTyBob3N0bmFtZSAqLworCQkJCX0gZWxzZSB7CisJCQkJCS8qIHRoaXMganVzdCBoaXRzIHRoZSBkZWZhdWx0IGZvciBub3csIGJ1dCB5b3UgY291bGQgcG90ZW50aWFsbHkgZXhwYW5kIGl0IHRvIGFsbG93IGZvciBvdGhlciBzdHVmZgorCQkJCQkgICB0aG91Z2gsIGl0J3MgdW5saWtlbHkgeW91J2Qgd2FudCB0byBzZW5kIGFueXRoaW5nIG90aGVyIHRoYW4gYW4gRUhMTyBvciBIRUxPICovCisJCQkJCWN1cnByb3h5LT5jaGVja19yZXEgPSBzdHJkdXAoREVGX1NNVFBfQ0hFQ0tfUkVRKTsgLyogZGVmYXVsdCByZXF1ZXN0ICovCisJCQkJCWN1cnByb3h5LT5jaGVja19sZW4gPSBzdHJsZW4oREVGX1NNVFBfQ0hFQ0tfUkVRKTsKKwkJCQl9CisJCQl9CisJCX0KIAkJZWxzZSBpZiAoIXN0cmNtcChhcmdzWzFdLCAiZm9yd2FyZGZvciIpKSB7CiAJCQkvKiBpbnNlcnQgeC1mb3J3YXJkZWQtZm9yIGZpZWxkLCBidXQgbm90IGZvciB0aGUKIAkJCSAqIElQIGFkZHJlc3MgbGlzdGVkIGFzIGFuIGV4Y2VwdC4KZGlmZiAtLWdpdCBhL3NyYy9jaGVja3MuYyBiL3NyYy9jaGVja3MuYwppbmRleCAxNGYwYzhjLi5lYzU2NDUzIDEwMDY0NAotLS0gYS9zcmMvY2hlY2tzLmMKKysrIGIvc3JjL2NoZWNrcy5jCkBAIC0xMjIsNyArMTIyLDggQEAKIAlpZiAocy0+cmVzdWx0ICE9IC0xKSB7CiAJCS8qIHdlIGRvbid0IHdhbnQgdG8gbWFyayAnVVAnIGEgc2VydmVyIG9uIHdoaWNoIHdlIGRldGVjdGVkIGFuIGVycm9yIGVhcmxpZXIgKi8KIAkJaWYgKChzLT5wcm94eS0+b3B0aW9ucyAmIFBSX09fSFRUUF9DSEspIHx8Ci0JCSAgICAocy0+cHJveHktPm9wdGlvbnMgJiBQUl9PX1NTTDNfQ0hLKSkgeworCQkgICAgKHMtPnByb3h5LT5vcHRpb25zICYgUFJfT19TU0wzX0NISykgfHwKKwkJICAgIChzLT5wcm94eS0+b3B0aW9ucyAmIFBSX09fU01UUF9DSEspKSB7CiAJCQlpbnQgcmV0OwogCQkJLyogd2Ugd2FudCB0byBjaGVjayBpZiB0aGlzIGhvc3QgcmVwbGllcyB0byBIVFRQIG9yIFNTTHYzIHJlcXVlc3RzCiAJCQkgKiBzbyB3ZSdsbCBzZW5kIHRoZSByZXF1ZXN0LCBhbmQgd29uJ3Qgd2FrZSB0aGUgY2hlY2tlciB1cCBub3cuCkBAIC0yNTIsNiArMjUzLDEwIEBACiAJCS8qIFNTTHYzIGFsZXJ0IG9yIGhhbmRzaGFrZSAqLwogCQlyZXN1bHQgPSAxOwogCX0KKwllbHNlIGlmICgocy0+cHJveHktPm9wdGlvbnMgJiBQUl9PX1NNVFBfQ0hLKSAmJiAobGVuID49IDMpICYmCisJCSAgIChyZXBseVswXSA9PSAnMicpKSAvKiAyeHggKHNob3VsZCBiZSAyNTApICovIHsKKwkJcmVzdWx0ID0gMTsKKwl9CiAKIAlpZiAocmVzdWx0ID09IC0xKQogCQlmZHRhYltmZF0uc3RhdGUgPSBGRF9TVEVSUk9SOwo=