ZGlmZiAtLWdpdCBhL3N0ZC9wbGF5ZXIvaW52bWFzdGVyL2ludm1hc3Rlci5jIGIvc3RkL3BsYXllci9pbnZtYXN0ZXIvaW52bWFzdGVyLmMKaW5kZXggNmVjYWM5MS4uYjc2OTgyMiAxMDA2NDQKLS0tIGEvc3RkL3BsYXllci9pbnZtYXN0ZXIvaW52bWFzdGVyLmMKKysrIGIvc3RkL3BsYXllci9pbnZtYXN0ZXIvaW52bWFzdGVyLmMKQEAgLTEsNSArMSw1IEBACiAvLyBpbnZtYXN0ZXIuYyBieSBOYWNodHdpbmRATUcgVjEuMSAoNS4zLjIwMDEpCi0vLyBBIHNtYWxsIG1hc3RlciB0aGF0IHByb3ZpZGVzIGEgZ3JhcGhpY2FsIGRpc3BsYXkgb2YgdGhlIHBsYXllcrRzCisvLyBBIHNtYWxsIG1hc3RlciB0aGF0IHByb3ZpZGVzIGEgZ3JhcGhpY2FsIGRpc3BsYXkgb2YgdGhlIHBsYXllcsK0cwogLy8gZXF1aXBtZW50LiAKICNwcmFnbWEgc3Ryb25nX3R5cGVzCiAjcHJhZ21hIHNhdmVfdHlwZXMscnR0X2NoZWNrcwpAQCAtNjcsNyArNjcsNyBAQAogCiB2b2lkIFNob3dJbnYob2JqZWN0IHBsYXllciwgc3RyaW5nIGFyZyk7CiAKLS8vIG9rLCBsZXS0cyBqdXN0IHJlYWQgaW4gdGhlIGdyYXBoaWNzLi4uCisvLyBvaywgbGV0wrRzIGp1c3QgcmVhZCBpbiB0aGUgZ3JhcGhpY3MuLi4KIC8vIHJlYWxseSB0YWtlcyBzb21lIHRpbWUgKH4yNTAgZXZhbCB0aWNrcykgYnV0IGlzIG9ubHkgZG9uZQogLy8gb25jZSBpbiBhbiB1cHRpbWUKIHZvaWQgY3JlYXRlKCkKZGlmZiAtLWdpdCBhL3N0ZC9wbGF5ZXIvc2hhZG93cy9tb3JwaF9zaGFkb3cuYyBiL3N0ZC9wbGF5ZXIvc2hhZG93cy9tb3JwaF9zaGFkb3cuYwppbmRleCBhZmM5N2M0Li5mMWZmMDFmIDEwMDY0NAotLS0gYS9zdGQvcGxheWVyL3NoYWRvd3MvbW9ycGhfc2hhZG93LmMKKysrIGIvc3RkL3BsYXllci9zaGFkb3dzL21vcnBoX3NoYWRvdy5jCkBAIC0xMCw4ICsxMCw4IEBACiAvLyAgIE9iamVrdCBlcnN0ZWxsdDogMTQuMDguMDEsIFRyb3kKIC8vCiAvLyAgIERpZXNlciBzaGFkb3cgaW1wbGVtZW50aWVydCBnZW5lcmlzY2hlIFZlcndhbmRsdW5nZW4uIEltIEdlZ2Vuc2F0eiBvZGVyCi0vLyAgIGluIEVyZ+RuenVuZyB6dW0gVGFybmhlbG0gc2luZCBkaWVzZSBuaWNodCBhdWYgZGllIEJlc2NocmVpYnVuZwotLy8gICBiZXNjaHLkbmt0LCBzb25kZXJuIHNjaGxhZ2VuIHNpY2ggYXVjaCBpbiBhbmRlcmVuIFByb3BlcnRpZXMgbmllZGVyLgorLy8gICBpbiBFcmfDpG56dW5nIHp1bSBUYXJuaGVsbSBzaW5kIGRpZXNlIG5pY2h0IGF1ZiBkaWUgQmVzY2hyZWlidW5nCisvLyAgIGJlc2NocsOkbmt0LCBzb25kZXJuIHNjaGxhZ2VuIHNpY2ggYXVjaCBpbiBhbmRlcmVuIFByb3BlcnRpZXMgbmllZGVyLgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtNDIsMTMgKzQyLDEzIEBACiAvLyAgIHN0YXJ0X3NoYWRvdyggU3BpZWxlciwgUHJvcGVydGllcyApCiAvLwogLy8gICBTdGFydGV0IGRhcyBTaGFkb3dpbmcgdm9uIFNwaWVsZXIuIFByb3BlcnRpZXMgaXN0IGVpbiBNYXBwaW5nIG1pdAotLy8gICBkZW4genUg5G5kZXJuZGVuIFByb3BlcnRpZXMuIERvcnQgbmljaHQgdm9yaGFuZGVuZSBQcm9wZXJ0aWVzIHdlcmRlbgorLy8gICBkZW4genUgw6RuZGVybmRlbiBQcm9wZXJ0aWVzLiBEb3J0IG5pY2h0IHZvcmhhbmRlbmUgUHJvcGVydGllcyB3ZXJkZW4KIC8vICAgenVtIFNwaWVsZXIgZHVyY2hnZXJlaWNodC4gRXMgd2VyZGVuIGRvcnQgZW50d2VkZXIgZWluemVsbmUgV2VydGUKLS8vICAgZXJ3YXJ0ZXQgKEJlaXNwaWVsOiAoWyBQX0dFTkRFUjogTUFMRSBdKSksIGRpZSBkYW5uIGb8ciBhbGxlIFJhc3NlbgotLy8gICBnZWx0ZW4sIG9kZXIgY2xvc3VyZXMsIGRpZSBkYW5uIGF1c2dlZvxocnQgd2VyZGVuIHVudGVyINxiZXJnYWJlIGRlcgorLy8gICBlcndhcnRldCAoQmVpc3BpZWw6IChbIFBfR0VOREVSOiBNQUxFIF0pKSwgZGllIGRhbm4gZsO8ciBhbGxlIFJhc3NlbgorLy8gICBnZWx0ZW4sIG9kZXIgY2xvc3VyZXMsIGRpZSBkYW5uIGF1c2dlZsO8aHJ0IHdlcmRlbiB1bnRlciDDnGJlcmdhYmUgZGVyCiAvLyAgIFNwaWVsZXJyYXNzZSBhbHMgUGFyYW1ldGVyIG9kZXIgYWJlciBNYXBwaW5ncyBtaXQgZGVuIFJhc3Nlbm5hbWVuCiAvLyAgIChCZWlzcGllbDogKFsgUF9HRU5ERVI6IChbICJNZW5zY2giOiBORVVURVIsICJFbGYiOiBGRU1BTEUsCi0vLyAgICJad2VyZyI6IE1BTEUsIC4uLiBdKaBdKSkuIElzdCBlaW5lIFJhc3NlIGluIGRlbSBSYXNzZW5tYXBwaW5nIG5pY2h0CisvLyAgICJad2VyZyI6IE1BTEUsIC4uLiBdKcKgXSkpLiBJc3QgZWluZSBSYXNzZSBpbiBkZW0gUmFzc2VubWFwcGluZyBuaWNodAogLy8gICB2b3JoYW5kZW4sIHNvIHdpcmQgZGFzIFByb3BlcnR5IHp1bSBTcGllbGVyIGR1cmNoZ2VyZWljaHQuIFNwZXppZWxsCiAvLyAgIGJlaGFuZGVsdCB3ZXJkZW4gUF9JRFMgKHNpZWhlIF9xdWVyeV9pZHMoKSkgdW5kIFBfTkFNRSAoc2llaGUKIC8vICAgX3F1ZXJ5X25hbWUoKSkuIApAQCAtNzAsNyArNzAsNyBAQAogLy8KIC8vICAgc3RvcF9zaGFkb3coKQogLy8KLS8vICAgQmVlbmRldCBkYXMgU2hhZG93aW5nIHVuZCB6ZXJzdPZydCBkaWVzZXMgT2JqZWt0CisvLyAgIEJlZW5kZXQgZGFzIFNoYWRvd2luZyB1bmQgemVyc3TDtnJ0IGRpZXNlcyBPYmpla3QKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbnQgc3RvcF9zaGFkb3coIC8qIHZvaWQgKi8gKQpAQCAtODYsNyArODYsNyBAQAogLy8gICBfcXVlcnlfcHJvcGVydHkoIFByb3BlcnR5ICkKIC8vCiAvLyAgIEdlbmVyaXNjaGUgUHJvcGVydHktTWFza2llcnVuZy4gbGllZmVydCBhdXMgbW9ycGhfcHJvcGVydGllcyBkZW4genVyCi0vLyAgIFJhc3NlIGRlcyBUcuRnZXJzIHBhc3NlbmRlbiBFaW50cmFnLgorLy8gICBSYXNzZSBkZXMgVHLDpGdlcnMgcGFzc2VuZGVuIEVpbnRyYWcuCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbm9tYXNrIHN0YXRpYyBtaXhlZCBfcXVlcnlfcHJvcGVydHkoIHN0cmluZyBwcm9wICkKQEAgLTExOSw3ICsxMTksNyBAQAogLy8KIC8vICAgX3F1ZXJ5X2FydGljbGUoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9BUlRJQ0xFCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX0FSVElDTEUKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbnQgX3F1ZXJ5X2FydGljbGUoIC8qIHZvaWQgKi8gKQpAQCAtMTMxLDcgKzEzMSw3IEBACiAvLwogLy8gICBfcXVlcnlfYXZlcmFnZV9zaXplKCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfQVZFUkFHRV9TSVpFCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX0FWRVJBR0VfU0laRQogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfYXZlcmFnZV9zaXplKCAvKiB2b2lkICovICkKQEAgLTE0Myw3ICsxNDMsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X2F2ZXJhZ2Vfd2VpZ2h0KCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfQVZFUkFHRV9XRUlHSFQKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfQVZFUkFHRV9XRUlHSFQKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbnQgX3F1ZXJ5X2F2ZXJhZ2Vfd2VpZ2h0KCAvKiB2b2lkICovICkKQEAgLTE1NSw3ICsxNTUsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X2JvZHkoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9CT0RZCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX0JPRFkKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbnQgX3F1ZXJ5X2JvZHkoIC8qIHZvaWQgKi8gKQpAQCAtMTY3LDcgKzE2Nyw3IEBACiAvLwogLy8gICBfcXVlcnlfZ2VuZGVyKCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfR0VOREVSCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX0dFTkRFUgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfZ2VuZGVyKCAvKiB2b2lkICovICkKQEAgLTE3OSw3ICsxNzksNyBAQAogLy8KIC8vICAgX3F1ZXJ5X2hhbmRzKCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfSEFORFMKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfSEFORFMKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBtaXhlZCBfcXVlcnlfaGFuZHMoIC8qIHZvaWQgKi8gKQpAQCAtMTkxLDQ0ICsxOTEsNDQgQEAKIC8vCiAvLyAgIF9xdWVyeV9pZHMoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9JRFMgLSBOaWNodC1TdGFuZGFyZCwgZGEgamUgbmFjaCBVcnNwcnVuZ3MtCi0vLyAgIGdlc2NobGVjaHQgZGVzIFNwaWVsZXJzIHp1c+R0emxpY2hlIGlkcyBm5GxsaWcgd2VyZGVuLiBBYmxhdWY6IEVzIGdpYnQKKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfSURTIC0gTmljaHQtU3RhbmRhcmQsIGRhIGplIG5hY2ggVXJzcHJ1bmdzLQorLy8gICBnZXNjaGxlY2h0IGRlcyBTcGllbGVycyB6dXPDpHR6bGljaGUgaWRzIGbDpGxsaWcgd2VyZGVuLiBBYmxhdWY6IEVzIGdpYnQKIC8vICAgNSBTY2hyaXR0ZSwgYmVpIGRlcmVuIGpld2VpbGlnZW0gVmVyc2FnZW4gZGllIGlkcyBkZXMgU3BpZWxlcnMgZHVyY2gtCiAvLyAgIGdlcmVpY2h0IHdlcmRlbjoKIC8vICAgMS4gUF9JRFMgaXN0IGltIHByb3BlcnR5LW1hcHBpbmcgdm9yaGFuZGVuCiAvLyAgIDIuIGEpIGVzIGlzdCBlaW4gc3RyaW5nIG9kZXIgZWluIGFycmF5OiBlcyB3aXJkIGFuIGRpZSBpZHMgZGVzIFNwaWVsZXJzCi0vLyAgICAgICAgIGFuZ2Vo5G5ndCB1bmQgenVy/GNrZ2VnZWJlbi4KLS8vICAgICAgYikgZXMgaXN0IGVpbmUgY2xvc3VyZS4gRGllc2Ugd2lyZCBhdXNnZWb8aHJ0IHVudGVyINxiZXJnYWJlIGRlcgorLy8gICAgICAgICBhbmdlaMOkbmd0IHVuZCB6dXLDvGNrZ2VnZWJlbi4KKy8vICAgICAgYikgZXMgaXN0IGVpbmUgY2xvc3VyZS4gRGllc2Ugd2lyZCBhdXNnZWbDvGhydCB1bnRlciDDnGJlcmdhYmUgZGVyCiAvLyAgICAgICAgIFNwaWVsZXItaWRzLCBkZXIgUmFzc2UgZGVzIFNwaWVsZXJzIHVuZCBkZXIgR2VzY2hsZWNodGVyCiAvLyAgICAgICAgIChkaWVzZXMgT2JqZWt0cyB1bmQgZGVzIFNwaWVsZXJzKS4gRGVyIEVyZ2Vibmlzd2VydCBkZXIgY2xvc3VyZQotLy8gICAgICAgICB3aXJkIGRpcmVrdCB6dXL8Y2tnZWdlYmVuLgotLy8gICAgICBjKSBlcyBpc3QgZWluIG1hcHBpbmcuIEhpZXIgbmVobWVuIHdpciBudW4gZGFzIPxibGljaGUgUmFzc2VubmFtZW4tCisvLyAgICAgICAgIHdpcmQgZGlyZWt0IHp1csO8Y2tnZWdlYmVuLgorLy8gICAgICBjKSBlcyBpc3QgZWluIG1hcHBpbmcuIEhpZXIgbmVobWVuIHdpciBudW4gZGFzIMO8YmxpY2hlIFJhc3Nlbm5hbWVuLQogLy8gICAgICAgICBtYXBwaW5nIGFuIC0+IDMuKQotLy8gICAzLiBG/HIgZGllIFJhc3NlIGRlcyBTcGllbGVycyB3aXJkIGVpbiBFaW50cmFnIGdlc3VjaHQKKy8vICAgMy4gRsO8ciBkaWUgUmFzc2UgZGVzIFNwaWVsZXJzIHdpcmQgZWluIEVpbnRyYWcgZ2VzdWNodAogLy8gICAgICBhKSBlciBpc3QgZWluIHN0cmluZyBvZGVyIGVpbiBhcnJheTogZXIgd2lyZCBhbiBkaWUgaWRzIGRlcyBTcGllbGVycwotLy8gICAgICAgICBhbmdlaORuZ3QgdW5kIHp1cvxja2dlZ2ViZW4uCi0vLyAgICAgIGIpIGVyIGlzdCBlaW5lIGNsb3N1cmUuIERpZXNlIHdpcmQgYXVzZ2Vm/GhydCB1bnRlciDcYmVyZ2FiZSBkZXIKKy8vICAgICAgICAgYW5nZWjDpG5ndCB1bmQgenVyw7xja2dlZ2ViZW4uCisvLyAgICAgIGIpIGVyIGlzdCBlaW5lIGNsb3N1cmUuIERpZXNlIHdpcmQgYXVzZ2Vmw7xocnQgdW50ZXIgw5xiZXJnYWJlIGRlcgogLy8gICAgICAgICBTcGllbGVyLWlkcywgZGVyIFJhc3NlIGRlcyBTcGllbGVycyB1bmQgZGVyIEdlc2NobGVjaHRlcgogLy8gICAgICAgICAoZGllc2VzIE9iamVrdHMgdW5kIGRlcyBTcGllbGVycykuIERlciBFcmdlYm5pc3dlcnQgZGVyIGNsb3N1cmUKLS8vICAgICAgICAgd2lyZCBkaXJla3QgenVy/GNrZ2VnZWJlbi4KKy8vICAgICAgICAgd2lyZCBkaXJla3QgenVyw7xja2dlZ2ViZW4uCiAvLyAgICAgIGMpIGVyIGlzdCBlaW4gbWFwcGluZy4gRXMgd2lyZCBhbmdlbm9tbWVuLCBkYXNzIGplIEdlc2NobGVjaHQgRElFU0VTCiAvLyAgICAgICAgIE9iamVrdHMgZWluIEVpbnRyYWcgdm9yaGFuZGVuIGlzdC4gLT4gNC4pCi0vLyAgIDQuIEb8ciBkYXMgR2VzY2hsZWNodCBkaWVzZXMgT2JqZWt0cyB3aXJkIGVpbiBFaW50cmFnIGdlc3VjaHQKKy8vICAgNC4gRsO8ciBkYXMgR2VzY2hsZWNodCBkaWVzZXMgT2JqZWt0cyB3aXJkIGVpbiBFaW50cmFnIGdlc3VjaHQKIC8vICAgICAgYSkgZXIgaXN0IGVpbiBzdHJpbmcgb2RlciBlaW4gYXJyYXk6IGVyIHdpcmQgYW4gZGllIGlkcyBkZXMgU3BpZWxlcnMKLS8vICAgICAgICAgYW5nZWjkbmd0IHVuZCB6dXL8Y2tnZWdlYmVuLgotLy8gICAgICBiKSBlciBpc3QgZWluZSBjbG9zdXJlLiBEaWVzZSB3aXJkIGF1c2dlZvxocnQgdW50ZXIg3GJlcmdhYmUgZGVyCisvLyAgICAgICAgIGFuZ2Vow6RuZ3QgdW5kIHp1csO8Y2tnZWdlYmVuLgorLy8gICAgICBiKSBlciBpc3QgZWluZSBjbG9zdXJlLiBEaWVzZSB3aXJkIGF1c2dlZsO8aHJ0IHVudGVyIMOcYmVyZ2FiZSBkZXIKIC8vICAgICAgICAgU3BpZWxlci1pZHMsIGRlciBSYXNzZSBkZXMgU3BpZWxlcnMgdW5kIGRlciBHZXNjaGxlY2h0ZXIKIC8vICAgICAgICAgKGRpZXNlcyBPYmpla3RzIHVuZCBkZXMgU3BpZWxlcnMpLiBEZXIgRXJnZWJuaXN3ZXJ0IGRlciBjbG9zdXJlCi0vLyAgICAgICAgIHdpcmQgZGlyZWt0IHp1cvxja2dlZ2ViZW4uCisvLyAgICAgICAgIHdpcmQgZGlyZWt0IHp1csO8Y2tnZWdlYmVuLgogLy8gICAgICBjKSBlciBpc3QgZWluIG1hcHBpbmcuIEVzIHdpcmQgYW5nZW5vbW1lbiwgZGFzcyBqZSBHZXNjaGxlY2h0IERFUwogLy8gICAgICAgICBTcGllbGVycyBlaW4gRWludHJhZyB2b3JoYW5kZW4gaXN0LiAtPiA1LikKLS8vICAgNS4gRvxyIGRhcyBHZXNjaGxlY2h0IGRlcyBTcGllbGVycyB3aXJkIGVpbiBFaW50cmFnIGdlc3VjaHQKKy8vICAgNS4gRsO8ciBkYXMgR2VzY2hsZWNodCBkZXMgU3BpZWxlcnMgd2lyZCBlaW4gRWludHJhZyBnZXN1Y2h0CiAvLyAgICAgIGEpIGVyIGlzdCBlaW4gc3RyaW5nIG9kZXIgZWluIGFycmF5OiBlciB3aXJkIGFuIGRpZSBpZHMgZGVzIFNwaWVsZXJzCi0vLyAgICAgICAgIGFuZ2Vo5G5ndCB1bmQgenVy/GNrZ2VnZWJlbi4KLS8vICAgICAgYikgZXIgaXN0IGVpbmUgY2xvc3VyZS4gRGllc2Ugd2lyZCBhdXNnZWb8aHJ0IHVudGVyINxiZXJnYWJlIGRlcgorLy8gICAgICAgICBhbmdlaMOkbmd0IHVuZCB6dXLDvGNrZ2VnZWJlbi4KKy8vICAgICAgYikgZXIgaXN0IGVpbmUgY2xvc3VyZS4gRGllc2Ugd2lyZCBhdXNnZWbDvGhydCB1bnRlciDDnGJlcmdhYmUgZGVyCiAvLyAgICAgICAgIFNwaWVsZXItaWRzLCBkZXIgUmFzc2UgZGVzIFNwaWVsZXJzIHVuZCBkZXIgR2VzY2hsZWNodGVyCiAvLyAgICAgICAgIChkaWVzZXMgT2JqZWt0cyB1bmQgZGVzIFNwaWVsZXJzKS4gRGVyIEVyZ2Vibmlzd2VydCBkZXIgY2xvc3VyZQotLy8gICAgICAgICB3aXJkIGRpcmVrdCB6dXL8Y2tnZWdlYmVuLgorLy8gICAgICAgICB3aXJkIGRpcmVrdCB6dXLDvGNrZ2VnZWJlbi4KIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBtaXhlZCBfcXVlcnlfaWRzKCAvKiB2b2lkICovICkKQEAgLTMwOSw3ICszMDksNyBAQAogLy8KIC8vICAgX3F1ZXJ5X2lzX21vcnBoZWQoKQogLy8KLS8vICAgUHJvcGVydHktTWV0aG9kZSBm/HIgImlzX21vcnBoZWQiCisvLyAgIFByb3BlcnR5LU1ldGhvZGUgZsO8ciAiaXNfbW9ycGhlZCIKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbnQgX3F1ZXJ5X2lzX21vcnBoZWQoIC8qIHZvaWQgKi8gKQpAQCAtMzIxLDcgKzMyMSw3IEBACiAvLwogLy8gICBfcXVlcnlfbWF4X2hhbmRzKCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfTUFYX0hBTkRTCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX01BWF9IQU5EUwogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfbWF4X2hhbmRzKCAvKiB2b2lkICovICkKQEAgLTMzMyw3ICszMzMsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X21tc2dpbigpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX01NU0dJTgorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9NTVNHSU4KIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzdHJpbmcgX3F1ZXJ5X21tc2dpbiggLyogdm9pZCAqLyApCkBAIC0zNDUsNyArMzQ1LDcgQEAKIC8vCiAvLyAgIF9xdWVyeV9tbXNnb3V0KCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfTU1TR09VVAorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9NTVNHT1VUCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3RyaW5nIF9xdWVyeV9tbXNnb3V0KCAvKiB2b2lkICovICkKQEAgLTM1Nyw3ICszNTcsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X21zZ2luKCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfTVNHSU4KKy8vICAgUHJvcGVydHktTWFza2llcnVuZyBmw7xyIFBfTVNHSU4KIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzdHJpbmcgX3F1ZXJ5X21zZ2luKCAvKiB2b2lkICovICkKQEAgLTM2OSw3ICszNjksNyBAQAogLy8KIC8vICAgX3F1ZXJ5X21zZ291dCgpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX01TR09VVAorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9NU0dPVVQKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzdHJpbmcgX3F1ZXJ5X21zZ291dCggLyogdm9pZCAqLyApCkBAIC0zODEsOSArMzgxLDkgQEAKIC8vCiAvLyAgIF9xdWVyeV9uYW1lKCkKIC8vCi0vLyAgIFByb3BlcnR5LU1ldGhvZGUgZvxyIFBfTkFNRS4gTGVpZGVyIGlzdCBkaWUgcGxheWVyLXNoZWxsIHNvIGdyb3R0aWcsCi0vLyAgIGRhc3Mg/GJlcmFsbCBhbmdlbm9tbWVuIHdpcmQsIFF1ZXJ5UHJvcChQX05BTUUpIGxpZWZlcmUgZWluZW4gU3RyaW5nIDotfAotLy8gICBWb2xsc3TkbmRpZ2VzIFByb3BlcnR5IGRhaGVyIHVudGVyIF9xdWVyeV9uYW1lX2Z1bGwoKS4KKy8vICAgUHJvcGVydHktTWV0aG9kZSBmw7xyIFBfTkFNRS4gTGVpZGVyIGlzdCBkaWUgcGxheWVyLXNoZWxsIHNvIGdyb3R0aWcsCisvLyAgIGRhc3Mgw7xiZXJhbGwgYW5nZW5vbW1lbiB3aXJkLCBRdWVyeVByb3AoUF9OQU1FKSBsaWVmZXJlIGVpbmVuIFN0cmluZyA6LXwKKy8vICAgVm9sbHN0w6RuZGlnZXMgUHJvcGVydHkgZGFoZXIgdW50ZXIgX3F1ZXJ5X25hbWVfZnVsbCgpLgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHN0cmluZyBfcXVlcnlfbmFtZSggLyogdm9pZCAqLyApCkBAIC00MDQsNyArNDA0LDcgQEAKIC8vCiAvLyAgIF9xdWVyeV9uYW1lX2Z1bGwoKQogLy8KLS8vICAgUHJvcGVydHktTWV0aG9kZSBm/HIgIm5hbWVfZnVsbCIuCisvLyAgIFByb3BlcnR5LU1ldGhvZGUgZsO8ciAibmFtZV9mdWxsIi4KIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBtaXhlZCBfcXVlcnlfbmFtZV9mdWxsKCAvKiB2b2lkICovICkKQEAgLTQyNSw3ICs0MjUsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X3ByZXNheSgpCiAvLwotLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGb8ciBQX1BSRVNBWQorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9QUkVTQVkKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzdHJpbmcgX3F1ZXJ5X3ByZXNheSggLyogdm9pZCAqLyApCkBAIC00MzcsNyArNDM3LDcgQEAKIC8vCiAvLyAgIF9xdWVyeV9yYWNlKCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfUkFDRQorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9SQUNFCiAvLwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3RyaW5nIF9xdWVyeV9yYWNlKCAvKiB2b2lkICovICkKQEAgLTQ0OSw3ICs0NDksNyBAQAogLy8KIC8vICAgX3F1ZXJ5X3JhY2VzdHJpbmcoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9SQUNFU1RSSU5HCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX1JBQ0VTVFJJTkcKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzdHJpbmcqIF9xdWVyeV9yYWNlc3RyaW5nKCAvKiB2b2lkICovICkKQEAgLTQ2MSw3ICs0NjEsNyBAQAogLy8KIC8vICAgX3F1ZXJ5X3NpemUoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9TSVpFCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX1NJWkUKIC8vCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbnQgX3F1ZXJ5X3NpemUoIC8qIHZvaWQgKi8gKQpAQCAtNDczLDcgKzQ3Myw3IEBACiAvLwogLy8gICBfcXVlcnlfdGl0bGUoKQogLy8KLS8vICAgUHJvcGVydHktTWFza2llcnVuZyBm/HIgUF9USVRMRQorLy8gICBQcm9wZXJ0eS1NYXNraWVydW5nIGbDvHIgUF9USVRMRQogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHN0cmluZyBfcXVlcnlfdGl0bGUoIC8qIHZvaWQgKi8gKQpAQCAtNDg1LDcgKzQ4NSw3IEBACiAvLwogLy8gICBfcXVlcnlfd2VpZ2h0KCkKIC8vCi0vLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZvxyIFBfV0VJR0hUCisvLyAgIFByb3BlcnR5LU1hc2tpZXJ1bmcgZsO8ciBQX1dFSUdIVAogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGludCBfcXVlcnlfd2VpZ2h0KCAvKiB2b2lkICovICkKQEAgLTU4NSw3ICs1ODUsNyBAQAogLy8KIC8vICAgcmVtb3ZlKCBTY2huYXV6ZSApCiAvLwotLy8gICBhdWZy5HVtZW4KKy8vICAgYXVmcsOkdW1lbgogLy8KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHZhcmFyZ3MgaW50IHJlbW92ZSggaW50IHNpbGVudCApCmRpZmYgLS1naXQgYS9zdGQvcm9vbS9rcmFldXRlcmxhZGVuLmMgYi9zdGQvcm9vbS9rcmFldXRlcmxhZGVuLmMKaW5kZXggY2Y5OTc5My4uZWRmMzRiYiAxMDA2NDQKLS0tIGEvc3RkL3Jvb20va3JhZXV0ZXJsYWRlbi5jCisrKyBiL3N0ZC9yb29tL2tyYWV1dGVybGFkZW4uYwpAQCAtNDEsNyArNDEsNyBAQAogCiAgIFNldFByb3AoUF9CVVlfT05MWV9QTEFOVFMsMSk7CiAgIC8qCi0gIHNldGV1aWQoZ2V0dWlkKCkpOyAvLyB3aXJkIHp1bSBzcGVpY2hlcm4gYmVu9nRpZ3QKKyAgc2V0ZXVpZChnZXR1aWQoKSk7IC8vIHdpcmQgenVtIHNwZWljaGVybiBiZW7DtnRpZ3QKICAgaW50IHNpPXNpemVvZihjb3VudCk7CiAgIC8vIGZ1ZXIgamVkZSBQbGFudElEIGVpbmVuIEVpbnRyYWcgYW5sZWdlbiwgZC5oLiB3ZW5uIGluIGNvdW50IG5vY2gKICAgLy8gbmljaHQgZ2VudWcgdm9yaGFuZGVuIHNpbmQsIHdlcmRlbiBmZWhsZW5kZSBFaW50cmFlZ2UgZXJnYWVuenQuCkBAIC0xNTAsNyArMTUwLDcgQEAKICAgIHJldHVybiB2YWwtdmFsJTEwOyAKIH0KIAotLy8gZ2lidCBkZW4gUHJlaXMgenVy/GNrLCBkZXIgenVtIEFua2F1ZiBkZXMgT2JqZWt0ZXMgdmVyd2VuZGV0IHdlcmRlbiBzb2xsCisvLyBnaWJ0IGRlbiBQcmVpcyB6dXLDvGNrLCBkZXIgenVtIEFua2F1ZiBkZXMgT2JqZWt0ZXMgdmVyd2VuZGV0IHdlcmRlbiBzb2xsCiBzdGF0aWMgdmFyYXJncyBpbnQgUXVlcnlWYWx1ZShvYmplY3Qgb2IsIGludCB2YWx1ZSwgb2JqZWN0IHBsYXllcikKIHsKICAgIHJldHVybiA6OlF1ZXJ5VmFsdWUob2IsIHJlYWxWYWx1ZShvYiwgcGxheWVyKSwgcGxheWVyKTsK