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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Merge Fedora packaging changes from Fedora 24 gdb-7.11.1-83.fc24: Date: Sat, 27 Jun 2026 23:57:47 GMT Message-ID: <178260466760.1.10431871033623995647.rpms-gdb-8cff818ba3b6@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 8cff818ba3b6b5a0e7f82f6da06b28a36cd6217f QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogOGNmZjgxOGJhM2I2YjVhMGU3ZjgyZjZkYTA2 YjI4YTM2Y2Q2MjE3ZgpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNi0wOC0yM1QyMTowNDoyNyswMjowMApTdGF0cyAgOiArNDQy OS8tNDg3MiBpbiA0MyBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qu b3JnL3JwbXMvZ2RiL2MvOGNmZjgxOGJhM2I2YjVhMGU3ZjgyZjZkYTA2YjI4YTM2Y2Q2MjE3Zj9i cmFuY2g9Z2RiLTE3LjItcmViYXNlLWY0NAoKTG9nOgpNZXJnZSBGZWRvcmEgcGFja2FnaW5nIGNo YW5nZXMgZnJvbSBGZWRvcmEgMjQgZ2RiLTcuMTEuMS04My5mYzI0OgoKLS0tCmRpZmYgLS1naXQg YS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCAyYzQ2MDBmLi45MDZhMWYzIDEwMDY0NAot LS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMiArMSwzIEBACi0vZ2RiLWxp YnN0ZGMrKy12My1weXRob24tcjIyNTUyMS50YXIueHoKKy9nZGItbGlic3RkYysrLXYzLXB5dGhv bi02LjEuMS0yMDE2MDgxNy50YXIueHoKKy92MS41LnRhci5negogL2dkYi03LjExLjkwLjIwMTYw ODA3LnRhci54egoKZGlmZiAtLWdpdCBhL2dkYi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaCBiL2dk Yi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jMjgwMjc5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBh dGNoCkBAIC0wLDAgKzEsMjIyIEBACitJbmRleDogZ2RiLTcuMTEuMS9nZGIvbmF0L2xpbnV4LWJ0 cmFjZS5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuMS5vcmlnL2dkYi9uYXQvbGludXgtYnRy YWNlLmgJMjAxNi0wMi0xMCAwNDoxOTozOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMS4x L2dkYi9uYXQvbGludXgtYnRyYWNlLmgJMjAxNi0wOC0xOSAyMDo0OToxOC43MzU0NzcyNTEgKzAy MDAKK0BAIC0yOCw2ICsyOCwxNzcgQEAKKyAjICBpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+ CisgI2VuZGlmCisgCisrI2lmZGVmIFBFUkZfQVRUUl9TSVpFX1ZFUjVfQlVORExFCisrI2lmbmRl ZiBIQVZFX0xJTlVYX1BFUkZfRVZFTlRfSAorKyMgZXJyb3IgIlBFUkZfQVRUUl9TSVpFX1ZFUjVf QlVORExFICYmICFIQVZFX0xJTlVYX1BFUkZfRVZFTlRfSCIKKysjZW5kaWYKKysjaWZuZGVmIFBF UkZfQVRUUl9TSVpFX1ZFUjUKKysjZGVmaW5lIFBFUkZfQVRUUl9TSVpFX1ZFUjUKKysjZGVmaW5l IHBlcmZfZXZlbnRfbW1hcF9wYWdlIHBlcmZfZXZlbnRfbW1hcF9wYWdlX2J1bmRsZQorKy8vIGtl cm5lbC1oZWFkZXJzLTMuMTAuMC00OTMuZWw3Lng4Nl82NC91c3IvaW5jbHVkZS9saW51eC9wZXJm X2V2ZW50LmgKKysvKgorKyAqIFN0cnVjdHVyZSBvZiB0aGUgcGFnZSB0aGF0IGNhbiBiZSBtYXBw ZWQgdmlhIG1tYXAKKysgKi8KKytzdHJ1Y3QgcGVyZl9ldmVudF9tbWFwX3BhZ2UgeworKwlfX3Uz Mgl2ZXJzaW9uOwkJLyogdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBzdHJ1Y3R1cmUgKi8KKysJX191 MzIJY29tcGF0X3ZlcnNpb247CQkvKiBsb3dlc3QgdmVyc2lvbiB0aGlzIGlzIGNvbXBhdCB3aXRo ICovCisrCisrCS8qCisrCSAqIEJpdHMgbmVlZGVkIHRvIHJlYWQgdGhlIGh3IGV2ZW50cyBpbiB1 c2VyLXNwYWNlLgorKwkgKgorKwkgKiAgIHUzMiBzZXEsIHRpbWVfbXVsdCwgdGltZV9zaGlmdCwg aW5kZXgsIHdpZHRoOworKwkgKiAgIHU2NCBjb3VudCwgZW5hYmxlZCwgcnVubmluZzsKKysJICog ICB1NjQgY3ljLCB0aW1lX29mZnNldDsKKysJICogICBzNjQgcG1jID0gMDsKKysJICoKKysJICog ICBkbyB7CisrCSAqICAgICBzZXEgPSBwYy0+bG9jazsKKysJICogICAgIGJhcnJpZXIoKQorKwkg KgorKwkgKiAgICAgZW5hYmxlZCA9IHBjLT50aW1lX2VuYWJsZWQ7CisrCSAqICAgICBydW5uaW5n ID0gcGMtPnRpbWVfcnVubmluZzsKKysJICoKKysJICogICAgIGlmIChwYy0+Y2FwX3Vzcl90aW1l ICYmIGVuYWJsZWQgIT0gcnVubmluZykgeworKwkgKiAgICAgICBjeWMgPSByZHRzYygpOworKwkg KiAgICAgICB0aW1lX29mZnNldCA9IHBjLT50aW1lX29mZnNldDsKKysJICogICAgICAgdGltZV9t dWx0ICAgPSBwYy0+dGltZV9tdWx0OworKwkgKiAgICAgICB0aW1lX3NoaWZ0ICA9IHBjLT50aW1l X3NoaWZ0OworKwkgKiAgICAgfQorKwkgKgorKwkgKiAgICAgaW5kZXggPSBwYy0+aW5kZXg7Cisr CSAqICAgICBjb3VudCA9IHBjLT5vZmZzZXQ7CisrCSAqICAgICBpZiAocGMtPmNhcF91c2VyX3Jk cG1jICYmIGluZGV4KSB7CisrCSAqICAgICAgIHdpZHRoID0gcGMtPnBtY193aWR0aDsKKysJICog ICAgICAgcG1jID0gcmRwbWMoaW5kZXggLSAxKTsKKysJICogICAgIH0KKysJICoKKysJICogICAg IGJhcnJpZXIoKTsKKysJICogICB9IHdoaWxlIChwYy0+bG9jayAhPSBzZXEpOworKwkgKgorKwkg KiBOT1RFOiBmb3Igb2J2aW91cyByZWFzb24gdGhpcyBvbmx5IHdvcmtzIG9uIHNlbGYtbW9uaXRv cmluZworKwkgKiAgICAgICBwcm9jZXNzZXMuCisrCSAqLworKwlfX3UzMglsb2NrOwkJCS8qIHNl cWxvY2sgZm9yIHN5bmNocm9uaXphdGlvbiAqLworKwlfX3UzMglpbmRleDsJCQkvKiBoYXJkd2Fy ZSBldmVudCBpZGVudGlmaWVyICovCisrCV9fczY0CW9mZnNldDsJCQkvKiBhZGQgdG8gaGFyZHdh cmUgZXZlbnQgdmFsdWUgKi8KKysJX191NjQJdGltZV9lbmFibGVkOwkJLyogdGltZSBldmVudCBh Y3RpdmUgKi8KKysJX191NjQJdGltZV9ydW5uaW5nOwkJLyogdGltZSBldmVudCBvbiBjcHUgKi8K KysJdW5pb24geworKwkJX191NjQJY2FwYWJpbGl0aWVzOworKwkJc3RydWN0IHsKKysJCQlfX3U2 NAljYXBfYml0MAkJOiAxLCAvKiBBbHdheXMgMCwgZGVwcmVjYXRlZCwgc2VlIGNvbW1pdCA4NjBm MDg1Yjc0ZTkgKi8KKysJCQkJY2FwX2JpdDBfaXNfZGVwcmVjYXRlZAk6IDEsIC8qIEFsd2F5cyAx LCBzaWduYWxzIHRoYXQgYml0IDAgaXMgemVybyAqLworKworKwkJCQljYXBfdXNlcl9yZHBtYwkJ OiAxLCAvKiBUaGUgUkRQTUMgaW5zdHJ1Y3Rpb24gY2FuIGJlIHVzZWQgdG8gcmVhZCBjb3VudHMg Ki8KKysJCQkJY2FwX3VzZXJfdGltZQkJOiAxLCAvKiBUaGUgdGltZV8qIGZpZWxkcyBhcmUgdXNl ZCAqLworKwkJCQljYXBfdXNlcl90aW1lX3plcm8JOiAxLCAvKiBUaGUgdGltZV96ZXJvIGZpZWxk IGlzIHVzZWQgKi8KKysJCQkJY2FwX19fX19yZXMJCTogNTk7CisrCQl9OworKwl9OworKworKwkv KgorKwkgKiBJZiBjYXBfdXNlcl9yZHBtYyB0aGlzIGZpZWxkIHByb3ZpZGVzIHRoZSBiaXQtd2lk dGggb2YgdGhlIHZhbHVlCisrCSAqIHJlYWQgdXNpbmcgdGhlIHJkcG1jKCkgb3IgZXF1aXZhbGVu dCBpbnN0cnVjdGlvbi4gVGhpcyBjYW4gYmUgdXNlZAorKwkgKiB0byBzaWduIGV4dGVuZCB0aGUg cmVzdWx0IGxpa2U6CisrCSAqCisrCSAqICAgcG1jIDw8PSA2NCAtIHdpZHRoOworKwkgKiAgIHBt YyA+Pj0gNjQgLSB3aWR0aDsgLy8gc2lnbmVkIHNoaWZ0IHJpZ2h0CisrCSAqICAgY291bnQgKz0g cG1jOworKwkgKi8KKysJX191MTYJcG1jX3dpZHRoOworKworKwkvKgorKwkgKiBJZiBjYXBfdXNy X3RpbWUgdGhlIGJlbG93IGZpZWxkcyBjYW4gYmUgdXNlZCB0byBjb21wdXRlIHRoZSB0aW1lCisr CSAqIGRlbHRhIHNpbmNlIHRpbWVfZW5hYmxlZCAoaW4gbnMpIHVzaW5nIHJkdHNjIG9yIHNpbWls YXIuCisrCSAqCisrCSAqICAgdTY0IHF1b3QsIHJlbTsKKysJICogICB1NjQgZGVsdGE7CisrCSAq CisrCSAqICAgcXVvdCA9IChjeWMgPj4gdGltZV9zaGlmdCk7CisrCSAqICAgcmVtID0gY3ljICYg KCgodTY0KTEgPDwgdGltZV9zaGlmdCkgLSAxKTsKKysJICogICBkZWx0YSA9IHRpbWVfb2Zmc2V0 ICsgcXVvdCAqIHRpbWVfbXVsdCArCisrCSAqICAgICAgICAgICAgICAoKHJlbSAqIHRpbWVfbXVs dCkgPj4gdGltZV9zaGlmdCk7CisrCSAqCisrCSAqIFdoZXJlIHRpbWVfb2Zmc2V0LHRpbWVfbXVs dCx0aW1lX3NoaWZ0IGFuZCBjeWMgYXJlIHJlYWQgaW4gdGhlCisrCSAqIHNlcWNvdW50IGxvb3Ag ZGVzY3JpYmVkIGFib3ZlLiBUaGlzIGRlbHRhIGNhbiB0aGVuIGJlIGFkZGVkIHRvCisrCSAqIGVu YWJsZWQgYW5kIHBvc3NpYmxlIHJ1bm5pbmcgKGlmIGluZGV4KSwgaW1wcm92aW5nIHRoZSBzY2Fs aW5nOgorKwkgKgorKwkgKiAgIGVuYWJsZWQgKz0gZGVsdGE7CisrCSAqICAgaWYgKGluZGV4KQor KwkgKiAgICAgcnVubmluZyArPSBkZWx0YTsKKysJICoKKysJICogICBxdW90ID0gY291bnQgLyBy dW5uaW5nOworKwkgKiAgIHJlbSAgPSBjb3VudCAlIHJ1bm5pbmc7CisrCSAqICAgY291bnQgPSBx dW90ICogZW5hYmxlZCArIChyZW0gKiBlbmFibGVkKSAvIHJ1bm5pbmc7CisrCSAqLworKwlfX3Ux Ngl0aW1lX3NoaWZ0OworKwlfX3UzMgl0aW1lX211bHQ7CisrCV9fdTY0CXRpbWVfb2Zmc2V0Owor KwkvKgorKwkgKiBJZiBjYXBfdXNyX3RpbWVfemVybywgdGhlIGhhcmR3YXJlIGNsb2NrIChlLmcu IFRTQykgY2FuIGJlIGNhbGN1bGF0ZWQKKysJICogZnJvbSBzYW1wbGUgdGltZXN0YW1wcy4KKysJ ICoKKysJICogICB0aW1lID0gdGltZXN0YW1wIC0gdGltZV96ZXJvOworKwkgKiAgIHF1b3QgPSB0 aW1lIC8gdGltZV9tdWx0OworKwkgKiAgIHJlbSAgPSB0aW1lICUgdGltZV9tdWx0OworKwkgKiAg IGN5YyA9IChxdW90IDw8IHRpbWVfc2hpZnQpICsgKHJlbSA8PCB0aW1lX3NoaWZ0KSAvIHRpbWVf bXVsdDsKKysJICoKKysJICogQW5kIHZpY2UgdmVyc2E6CisrCSAqCisrCSAqICAgcXVvdCA9IGN5 YyA+PiB0aW1lX3NoaWZ0OworKwkgKiAgIHJlbSAgPSBjeWMgJiAoKCh1NjQpMSA8PCB0aW1lX3No aWZ0KSAtIDEpOworKwkgKiAgIHRpbWVzdGFtcCA9IHRpbWVfemVybyArIHF1b3QgKiB0aW1lX211 bHQgKworKwkgKiAgICAgICAgICAgICAgICgocmVtICogdGltZV9tdWx0KSA+PiB0aW1lX3NoaWZ0 KTsKKysJICovCisrCV9fdTY0CXRpbWVfemVybzsKKysJX191MzIJc2l6ZTsJCQkvKiBIZWFkZXIg c2l6ZSB1cCB0byBfX3Jlc2VydmVkW10gZmllbGRzLiAqLworKworKwkJLyoKKysJCSAqIEhvbGUg Zm9yIGV4dGVuc2lvbiBvZiB0aGUgc2VsZiBtb25pdG9yIGNhcGFiaWxpdGllcworKwkJICovCisr CisrCV9fdTgJX19yZXNlcnZlZFsxMTgqOCs0XTsJLyogYWxpZ24gdG8gMWsuICovCisrCisrCS8q CisrCSAqIENvbnRyb2wgZGF0YSBmb3IgdGhlIG1tYXAoKSBkYXRhIGJ1ZmZlci4KKysJICoKKysJ ICogVXNlci1zcGFjZSByZWFkaW5nIHRoZSBAZGF0YV9oZWFkIHZhbHVlIHNob3VsZCBpc3N1ZSBh biBzbXBfcm1iKCksCisrCSAqIGFmdGVyIHJlYWRpbmcgdGhpcyB2YWx1ZS4KKysJICoKKysJICog V2hlbiB0aGUgbWFwcGluZyBpcyBQUk9UX1dSSVRFIHRoZSBAZGF0YV90YWlsIHZhbHVlIHNob3Vs ZCBiZQorKwkgKiB3cml0dGVuIGJ5IHVzZXJzcGFjZSB0byByZWZsZWN0IHRoZSBsYXN0IHJlYWQg ZGF0YSwgYWZ0ZXIgaXNzdWVpbmcKKysJICogYW4gc21wX21iKCkgdG8gc2VwYXJhdGUgdGhlIGRh dGEgcmVhZCBmcm9tIHRoZSAtPmRhdGFfdGFpbCBzdG9yZS4KKysJICogSW4gdGhpcyBjYXNlIHRo ZSBrZXJuZWwgd2lsbCBub3Qgb3Zlci13cml0ZSB1bnJlYWQgZGF0YS4KKysJICoKKysJICogU2Vl IHBlcmZfb3V0cHV0X3B1dF9oYW5kbGUoKSBmb3IgdGhlIGRhdGEgb3JkZXJpbmcuCisrCSAqCisr CSAqIGRhdGFfe29mZnNldCxzaXplfSBpbmRpY2F0ZSB0aGUgbG9jYXRpb24gYW5kIHNpemUgb2Yg dGhlIHBlcmYgcmVjb3JkCisrCSAqIGJ1ZmZlciB3aXRoaW4gdGhlIG1tYXBwZWQgYXJlYS4KKysJ ICovCisrCV9fdTY0ICAgZGF0YV9oZWFkOwkJLyogaGVhZCBpbiB0aGUgZGF0YSBzZWN0aW9uICov CisrCV9fdTY0CWRhdGFfdGFpbDsJCS8qIHVzZXItc3BhY2Ugd3JpdHRlbiB0YWlsICovCisrCV9f dTY0CWRhdGFfb2Zmc2V0OwkJLyogd2hlcmUgdGhlIGJ1ZmZlciBzdGFydHMgKi8KKysJX191NjQJ ZGF0YV9zaXplOwkJLyogZGF0YSBidWZmZXIgc2l6ZSAqLworKworKwkvKgorKwkgKiBBVVggYXJl YSBpcyBkZWZpbmVkIGJ5IGF1eF97b2Zmc2V0LHNpemV9IGZpZWxkcyB0aGF0IHNob3VsZCBiZSBz ZXQKKysJICogYnkgdGhlIHVzZXJzcGFjZSwgc28gdGhhdAorKwkgKgorKwkgKiAgIGF1eF9vZmZz ZXQgPj0gZGF0YV9vZmZzZXQgKyBkYXRhX3NpemUKKysJICoKKysJICogcHJpb3IgdG8gbW1hcCgp aW5nIGl0LiBTaXplIG9mIHRoZSBtbWFwKCllZCBhcmVhIHNob3VsZCBiZSBhdXhfc2l6ZS4KKysJ ICoKKysJICogUmluZyBidWZmZXIgcG9pbnRlcnMgYXV4X3toZWFkLHRhaWx9IGhhdmUgdGhlIHNh bWUgc2VtYW50aWNzIGFzCisrCSAqIGRhdGFfe2hlYWQsdGFpbH0gYW5kIHNhbWUgb3JkZXJpbmcg cnVsZXMgYXBwbHkuCisrCSAqLworKwlfX3U2NAlhdXhfaGVhZDsKKysJX191NjQJYXV4X3RhaWw7 CisrCV9fdTY0CWF1eF9vZmZzZXQ7CisrCV9fdTY0CWF1eF9zaXplOworK307CisrI2VuZGlmIC8v IFBFUkZfQVRUUl9TSVpFX1ZFUjUKKysjZW5kaWYgLy8gUEVSRl9BVFRSX1NJWkVfVkVSNV9CVU5E TEUKKysKKyBzdHJ1Y3QgdGFyZ2V0X29wczsKKyAKKyAjaWYgSEFWRV9MSU5VWF9QRVJGX0VWRU5U X0gKK0luZGV4OiBnZGItNy4xMS4xL2dkYi9jb25maWd1cmUKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny4xMS4xLm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA4LTE5IDIwOjQ3OjExLjQ4ODMyNTE0NCAr MDIwMAorKysrIGdkYi03LjExLjEvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA4LTE5IDIwOjQ3OjExLjY1 ODMyNjY4NCArMDIwMAorQEAgLTEwNjM1LDcgKzEwNjM1LDcgQEAKKyAKKyAjaW5jbHVkZSA8bGlu dXgvcGVyZl9ldmVudC5oPgorICNpZm5kZWYgUEVSRl9BVFRSX1NJWkVfVkVSNQorLSMgZXJyb3IK KysvLyBlcnJvciAvLyBQRVJGX0FUVFJfU0laRV9WRVI1X0JVTkRMRSBpcyBub3QgYXZhaWxhYmxl IGhlcmUgLSBGZWRvcmErUkhFTAorICNlbmRpZgorIAorIF9BQ0VPRgorSW5kZXg6IGdkYi03LjEx LjEvZ2RiL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjEub3JpZy9nZGIv Y29uZmlndXJlLmFjCTIwMTYtMDgtMTkgMjA6NDc6MTEuNDg5MzI1MTU0ICswMjAwCisrKysgZ2Ri LTcuMTEuMS9nZGIvY29uZmlndXJlLmFjCTIwMTYtMDgtMTkgMjA6NDc6MTEuNjU5MzI2NjkzICsw MjAwCitAQCAtMTQ1Miw3ICsxNDUyLDcgQEAKKyAgIEFDX1BSRVBST0NfSUZFTFNFKEFDX0xBTkdf U09VUkNFKFtbCisgI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4KKyAjaWZuZGVmIFBFUkZf QVRUUl9TSVpFX1ZFUjUKKy0jIGVycm9yCisrLy8gZXJyb3IgLy8gUEVSRl9BVFRSX1NJWkVfVkVS NV9CVU5ETEUgaXMgbm90IGF2YWlsYWJsZSBoZXJlIC0gRmVkb3JhK1JIRUwKKyAjZW5kaWYKKyAg IF1dKSwgW3BlcmZfZXZlbnQ9eWVzXSwgW3BlcmZfZXZlbnQ9bm9dKQorICAgaWYgdGVzdCAiJHBl cmZfZXZlbnQiICE9IHllczsgdGhlbgorLS0tIGdkYi03LjExLjEvZ2RiL2dkYi5jLW9yaWcJMjAx Ni0wMi0xMCAwNDoxOTozOS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xMS4xL2dkYi9nZGIu YwkyMDE2LTA4LTIzIDA5OjE1OjEzLjE2OTY1MDk1MyArMDIwMAorQEAgLTI1LDYgKzI1LDExIEBA IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKKyB7CisgICBzdHJ1Y3QgY2FwdHVyZWRfbWFp bl9hcmdzIGFyZ3M7CisgCisrI2lmZGVmIFBFUkZfQVRUUl9TSVpFX1ZFUjVfQlVORExFCisrICBl eHRlcm4gdm9pZCBfX2xpYmlwdF9pbml0KHZvaWQpOworKyAgX19saWJpcHRfaW5pdCgpOworKyNl bmRpZgorKworICAgbWVtc2V0ICgmYXJncywgMCwgc2l6ZW9mIGFyZ3MpOworICAgYXJncy5hcmdj ID0gYXJnYzsKKyAgIGFyZ3MuYXJndiA9IGFyZ3Y7CgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9n ZGIuc3BlYwppbmRleCAxNTUwNmJmLi4xOWQ2YTYzIDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysg Yi9nZGIuc3BlYwpAQCAtMjcsNyArMjcsNyBAQCBWZXJzaW9uOiA3LjExLjkwLjIwMTYwODA3CiAK ICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIs IHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8g c3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgot UmVsZWFzZTogNSV7P2Rpc3R9CitSZWxlYXNlOiA2JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMr IGFuZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4 Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbiBh bmQgR0ZETAogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtMTIyLDEyICsxMjIsMTcg QEAgU291cmNlMzogZ2RiLWdzdGFjay5tYW4KIFNvdXJjZTQ6IGdkYmluaXQKIAogIyBsaWJzdGRj KysgcHJldHR5IHByaW50ZXJzIGZyb20gR0NDIFNWTi4KLSVnbG9iYWwgbGlic3RkY3h4cHl0aG9u IGdkYi1saWJzdGRjKystdjMtcHl0aG9uLXIyMjU1MjEKKyVnbG9iYWwgbGlic3RkY3h4cHl0aG9u IGdkYi1saWJzdGRjKystdjMtcHl0aG9uLTYuMS4xLTIwMTYwODE3CiBTb3VyY2U1OiAle2xpYnN0 ZGN4eHB5dGhvbn0udGFyLnh6CiAKICMgUHJvdmlkZSBnZGJ0dWkgZm9yIFJIRUwtNSBhbmQgUkhF TC02IGFzIGl0IGlzIHJlbW92ZWQgdXBzdHJlYW0gKEJaIDc5NzY2NCkuCiBTb3VyY2U2OiBnZGJ0 dWkKIAorIyBsaWJpcHQ6IEludGVsIFByb2Nlc3NvciBUcmFjZSBEZWNvZGVyIExpYnJhcnkKKyVn bG9iYWwgbGliaXB0X3ZlcnNpb24gMS41CitTb3VyY2U3OiB2JXtsaWJpcHRfdmVyc2lvbn0udGFy Lmd6CitQYXRjaDExNDI6IHYxLjUtbGliaXB0LXN0YXRpYy5wYXRjaAorCiAjIFdvcmsgYXJvdW5k IG91dC1vZi1kYXRlIGRlamFnbnUgdGhhdCBkb2VzIG5vdCBoYXZlIEtGQUlMCiAjPWRyb3A6IFRo YXQgZGVqYWdudSBpcyB0b28gb2xkIHRvIGJlIHN1cHBvcnRlZC4KIFBhdGNoMTogZ2RiLTYuMy1y aC1kdW1teWtmYWlsLTIwMDQxMjAyLnBhdGNoCkBAIC01NzYsNiArNTgxLDkgQEAgUGF0Y2gxMTIw OiBnZGItdGVzdHN1aXRlLWR3Mi11bmRlZmluZWQtcmV0LWFkZHIucGF0Y2gKICMgTmV3IHRlc3Qg Zm9yIFB5dGhvbiAiQ2Fubm90IGxvY2F0ZSBvYmplY3QgZmlsZSBmb3IgYmxvY2siIChmb3IgUkgg QlogMTMyNTc5NSkuCiBQYXRjaDExMjM6IGdkYi1yaGJ6MTMyNTc5NS1mcmFtZWZpbHRlcnMtdGVz dC5wYXRjaAogCisjIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxpbnV4X3BlcmYuaCBmb3IgbGli aXB0IChSSCBCWiAxMjU2NTEzKS4KK1BhdGNoMTE0MzogZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBh dGNoCisKICVpZiAwJXshP3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNgogIyBSTF9TVEFURV9GRURP UkFfR0RCIHdvdWxkIG5vdCBiZSBmb3VuZCBmb3I6CiAjIFBhdGNoNjQyOiBnZGItcmVhZGxpbmU2 Mi1hc2stbW9yZS1yaC5wYXRjaApAQCAtNjE3LDEyICs2MjUsMTYgQEAgQnVpbGRSZXF1aXJlczog bGliYmFiZWx0cmFjZS1kZXZlbCV7YnVpbGRpc2F9CiBCdWlsZFJlcXVpcmVzOiBndWlsZS1kZXZl bCV7YnVpbGRpc2F9CiAlZW5kaWYKICVnbG9iYWwgaGF2ZV9saWJpcHQgMAotJWlmIDAleyE/cmhl bDoxfSB8fCAwJXs/cmhlbH0gPiA3CislaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDcg fHwgKDAlez9yaGVsfSA9PSA3ICYmIDAlez9zY2w6MX0pCiAlaWZhcmNoICV7aXg4Nn0geDg2XzY0 CiAlZ2xvYmFsIGhhdmVfbGliaXB0IDEKKyVpZiAwJXs/ZWw3OjF9ICYmIDAlez9zY2w6MX0KK0J1 aWxkUmVxdWlyZXM6IGNtYWtlCislZWxzZQogQnVpbGRSZXF1aXJlczogbGliaXB0LWRldmVsJXti dWlsZGlzYX0KICVlbmRpZgogJWVuZGlmCislZW5kaWYKIAogJWlmIDAlez9fd2l0aF90ZXN0c3Vp dGU6MX0KIApAQCAtNzUzLDYgKzc2NSwxNCBAQCBUaGlzIHBhY2thZ2UgcHJvdmlkZXMgSU5GTywg SFRNTCBhbmQgUERGIHVzZXIgbWFudWFsIGZvciBHREIuCiB0YXIgeEpmICV7U09VUkNFNX0KICVl bmRpZiAjIDAlez9yaGVsOjF9ICYmIDAlez9yaGVsfSA8PSA3CiAKKyVpZiAwJXtoYXZlX2xpYmlw dH0gJiYgMCV7P2VsNzoxfSAmJiAwJXs/c2NsOjF9Cit0YXIgeHpmICV7U09VUkNFN30KKygKKyBj ZCBwcm9jZXNzb3ItdHJhY2UtJXtsaWJpcHRfdmVyc2lvbn0KKyVwYXRjaDExNDIgLXAxCispCisl ZW5kaWYKKwogIyBGaWxlcyBoYXZlIGAjIDxudW1iZXI+IDxmaWxlPicgc3RhdGVtZW50cyBicmVh a2luZyBWUEFUSCAvIGZpbmQtZGVidWdpbmZvLnNoIC4KIChjZCBnZGI7cm0gLWZ2ICQocGVybCAt cGUgJ3MvXFxcbi8gLycgPE1ha2VmaWxlLmlufHNlZCAtbiAncy9eWVlGSUxFUyA9IC8vcCcpKQog CkBAIC05MDIsNiArOTIyLDcgQEAgZG9uZQogJXBhdGNoMTExOCAtcDEKICVwYXRjaDExMjAgLXAx CiAlcGF0Y2gxMTIzIC1wMQorJXBhdGNoMTE0MyAtcDEKIAogJXBhdGNoMTA3NSAtcDEKICVpZiAw JXs/cmhlbDoxfSAmJiAwJXs/cmhlbH0gPD0gNwpAQCAtOTY4LDYgKzk4OSwxMSBAQCBDRkxBR1M9 IiRDRkxBR1MgLURETkZfREVCVUdJTkZPX0lOU1RBTEwiCiBDRkxBR1M9IiRDRkxBR1MgLURHREJf SU5ERVhfVkVSSUZZX1ZFTkRPUiIKICVlbmRpZgogCisjIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxl IGxpbnV4X3BlcmYuaCBmb3IgbGliaXB0IChSSCBCWiAxMjU2NTEzKS4KKyVpZiAle2hhdmVfbGli aXB0fSAmJiAwJXs/ZWw3OjF9ICYmIDAlez9zY2w6MX0KK0NGTEFHUz0iJENGTEFHUyAtRFBFUkZf QVRUUl9TSVpFX1ZFUjVfQlVORExFIgorJWVuZGlmCisKICMgUGF0Y2g2NDI6IGdkYi1yZWFkbGlu ZTYyLWFzay1tb3JlLXJoLnBhdGNoCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYK IENGTEFHUz0iJENGTEFHUyAtRE5FRURfUkxfU1RBVEVfRkVET1JBX0dEQiIKQEAgLTk4MSw2ICsx MDA3LDI1IEBAIENGTEFHUz0iJENGTEFHUyAtRE5FRURfREVUQUNIX1NJR1NUT1AiCiAKIGV4cG9y dCBDWFhGTEFHUz0iJENGTEFHUyIKIAorJWlmIDAle2hhdmVfbGliaXB0fSAmJiAwJXs/ZWw3OjF9 ICYmIDAlez9zY2w6MX0KKygKKyBta2RpciBwcm9jZXNzb3ItdHJhY2UtJXtsaWJpcHRfdmVyc2lv bn0tcm9vdAorIG1rZGlyIHByb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1idWlsZAor IGNkICAgIHByb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1idWlsZAorICMgLURQVFVO SVQ6Qk9PTD1PTiBoYXMgbm8gZWZmZWN0IG9uIGN0ZXN0LgorICVjbWFrZSAtRENNQUtFX0JVSUxE X1RZUEU9UmVsV2l0aERlYkluZm8gXAorCS1EUFRVTklUOkJPT0w9T0ZGIFwKKwktRERFVkJVSUxE OkJPT0w9T04gXAorCS4uLy4uL3Byb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufQorIG1h a2UgVkVSQk9TRT0xICV7P19zbXBfbWZsYWdzfQorIGN0ZXN0IC1WICV7P19zbXBfbWZsYWdzfQor IG1ha2UgaW5zdGFsbCBERVNURElSPS4uL3Byb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9u fS1yb290CispCisjIFRoZXJlIGlzIGFsc286IC0td2l0aC1saWJpcHQtcHJlZml4CitDRkxBR1M9 IiRDRkxBR1MgLUkkUFdEL3Byb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1yb290JXtf aW5jbHVkZWRpcn0iCitMREZMQUdTPSIkTERGTEFHUyAtTCRQV0QvcHJvY2Vzc29yLXRyYWNlLSV7 bGliaXB0X3ZlcnNpb259LXJvb3Qle19saWJkaXJ9IgorJWVuZGlmCisKICMgLS1odG1sZGlyIGFu ZCAtLXBkZmRpciBhcmUgbm90IHVzZWQgYXMgdGhleSBhcmUgdXNlZCBmcm9tICV7Z2RiX2J1aWxk fS4KIC4uL2NvbmZpZ3VyZQkJCQkJCQlcCiAJLS1wcmVmaXg9JXtfcHJlZml4fQkJCQkJXApAQCAt MTQyNCw2ICsxNDY5LDI3IEBAIHRoZW4KIGZpCiAKICVjaGFuZ2Vsb2cKKyogVHVlIEF1ZyAyMyAy MDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuOTAu MjAxNjA4MDctNi5mYzI1CistIE1lcmdlIEZlZG9yYSBwYWNrYWdpbmcgY2hhbmdlcyBmcm9tIEZl ZG9yYSAyNCBnZGItNy4xMS4xLTgzLmZjMjQ6CisKKyogVHVlIEF1ZyAyMyAyMDE2IEphbiBLcmF0 b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS04My5mYzI0CistIFtk dHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxpYmlwdCAtIGZpeCMzIGl0cyBpbml0aWFsaXphdGlvbiAo UkggQlogMTI1NjUxMykuCisKKyogVHVlIEF1ZyAyMyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS04Mi5mYzI0CistIFtkdHMrZWw3XSBbeDg2 Kl0gQnVuZGxlIGxpYmlwdCAtIGZpeCMyIGl0cyBpbml0aWFsaXphdGlvbiAoUkggQlogMTI1NjUx MykuCisKKyogVHVlIEF1ZyAyMyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPiAtIDcuMTEuMS04MS5mYzI0CistIFtkdHMrZWw3XSBbeDg2Kl0gQnVuZGxlIGxp YmlwdCAtIGZpeCBpdHMgaW5pdGlhbGl6YXRpb24gKFJIIEJaIDEyNTY1MTMpLgorCisqIE1vbiBB dWcgMjIgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3 LjExLjEtODAuZmMyNAorLSBbZHRzXSBVcGdyYWRlIGxpYnN0ZGMrKy12My1weXRob24gdG8gNi4x LjEtMjAxNjA4MTcuCisKKyogRnJpIEF1ZyAxOSAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS03OS5mYzI0CistIFtkdHMrZWw3XSBbeDg2Kl0g QnVuZGxlIGxpbnV4X3BlcmYuaCBmb3IgbGliaXB0IChSSCBCWiAxMjU2NTEzKS4KKworKiBXZWQg QXVnIDE3IDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0g Ny4xMS4xLTc4LmZjMjQKKy0gW2R0cytlbDddIFt4ODYqXSBCdW5kbGUgbGliaXB0IChSSCBCWiAx MjU2NTEzKS4KKwogKiBTdW4gQXVnICA3IDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+IC0gNy4xMS45MC4yMDE2MDgwNy01LmZjMjUKIC0gUmViYXNlIHRvIEZT RiBHREIgNy4xMS45MC4yMDE2MDgwNyAocHJlLTcuMTIgYnJhbmNoIHNuYXBzaG90KS4KIAoKZGlm ZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGIzMGRjN2MuLjAwMWRhYjcgMTAwNjQ0 Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDMgQEAKLTdhZDMyZDM4OTRh YWY5MGQwMGE0MzQzYTczNWMzZTFjICBnZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMjI1NTIxLnRh ci54egorMTMxZDBkZmQyMGNkNjAxNGMxNjhmYmNhYjliZTJjNDMgIGdkYi1saWJzdGRjKystdjMt cHl0aG9uLTYuMS4xLTIwMTYwODE3LnRhci54egorMjllZmMwODIxOWQ5ZDZhMDUzNmQ1OGY5ODA3 Yzg3MjIgIHYxLjUudGFyLmd6CiAyZTUyZGQ4YjYzZWIwYTQ1OWZlYmJlZTAxMjIxZmIxMCAgZ2Ri LTcuMTEuOTAuMjAxNjA4MDcudGFyLnh6CgpkaWZmIC0tZ2l0IGEvdjEuNS1saWJpcHQtc3RhdGlj LnBhdGNoIGIvdjEuNS1saWJpcHQtc3RhdGljLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjQ3N2I2YzQKLS0tIC9kZXYvbnVsbAorKysgYi92MS41LWxpYmlwdC1zdGF0 aWMucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorLS0tIHByb2Nlc3Nvci10cmFjZS0xLjUvbGliaXB0 L0NNYWtlTGlzdHMudHh0LW9yaWcJMjAxNi0wNC0wNyAwODo1MjoxNC4wMDAwMDAwMDAgKzAyMDAK KysrKyBwcm9jZXNzb3ItdHJhY2UtMS41L2xpYmlwdC9DTWFrZUxpc3RzLnR4dAkyMDE2LTA4LTE3 IDIzOjEyOjIzLjI0MTEwOTI0NCArMDIwMAorQEAgLTgxLDcgKzgxLDcgQEAgZW5kaWYgKENNQUtF X0hPU1RfV0lOMzIpCisgCisgc2V0KExJQklQVF9GSUxFUyAke0xJQklQVF9GSUxFU30gJHtMSUJJ UFRfU0VDVElPTl9GSUxFU30pCisgCistYWRkX2xpYnJhcnkobGliaXB0IFNIQVJFRAorK2FkZF9s aWJyYXJ5KGxpYmlwdCBTVEFUSUMKKyAgICR7TElCSVBUX0ZJTEVTfQorICkKKyAKKy0tLSBwcm9j ZXNzb3ItdHJhY2UtMS41L2xpYmlwdC9zcmMvcG9zaXgvaW5pdC5jLW9yaWcJMjAxNi0wNC0wNyAw ODo1MjoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBwcm9jZXNzb3ItdHJhY2UtMS41L2xpYmlwdC9z cmMvcG9zaXgvaW5pdC5jCTIwMTYtMDgtMjMgMDk6MDQ6MTEuNTQwMTc2NjY4ICswMjAwCitAQCAt MjksNyArMjksNyBAQAorICNpbmNsdWRlICJwdF9pbGQuaCIKKyAKKyAKKy1zdGF0aWMgdm9pZCBf X2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIGluaXQodm9pZCkKKyt2b2lkIF9fbGliaXB0X2lu aXQodm9pZCkKKyB7CisgCS8qIEluaXRpYWxpemUgdGhlIEludGVsKFIpIFByb2Nlc3NvciBUcmFj ZSBpbnN0cnVjdGlvbiBkZWNvZGVyLiAqLworIAlwdF9pbGRfaW5pdCgpOwoKZGlmZiAtLWdpdCBh Ly5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDhiY2Q2ZjYuLjkwNmExZjMgMTAwNjQ0Ci0t LSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwzICsxLDMgQEAKIC9nZGItbGli c3RkYysrLXYzLXB5dGhvbi02LjEuMS0yMDE2MDgxNy50YXIueHoKIC92MS41LnRhci5negotL2dk Yi03LjExLjEudGFyLnh6CisvZ2RiLTcuMTEuOTAuMjAxNjA4MDcudGFyLnh6CgpkaWZmIC0tZ2l0 IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9j YXRlLXJwbS5wYXRjaAppbmRleCA1ZWZjYzVhLi41NmNlN2RiIDEwMDY0NAotLS0gYS9nZGItNi42 LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJw bS5wYXRjaApAQCAtMSwyNSArMSwxNiBAQAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9ldmVudC10b3AuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9ldmVudC10b3Au YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2V2ZW50LXRv cC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2ZW50LXRvcC5jCi1AQCAtMzcsNiAr MzcsNyBAQAotICNpbmNsdWRlICJnZGJjbWQuaCIJCS8qIGZvciBkb250X3JlcGVhdCgpICovCi0g I2luY2x1ZGUgImFubm90YXRlLmgiCi0gI2luY2x1ZGUgIm1haW50LmgiCistLS0gZ2RiLTcuMTEu NTAuMjAxNjA2MzAub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUy MTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZXZlbnQtdG9wLmMJMjAx Ni0wNy0wMyAxNDozNzoxMi41NzIxMzA3MzQgKzAyMDAKK0BAIC00MCw2ICs0MCw3IEBACisgI2lu Y2x1ZGUgImJ1ZmZlci5oIgorICNpbmNsdWRlICJzZXItZXZlbnQuaCIKKyAjaW5jbHVkZSAiZ2Ri X3NlbGVjdC5oIgogKyNpbmNsdWRlICJzeW1maWxlLmgiCiAgCiAgLyogcmVhZGxpbmUgaW5jbHVk ZSBmaWxlcy4gICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi1AQCAtMTgwLDYg KzE4MSw4IEBAIHJsX2NhbGxiYWNrX3JlYWRfY2hhcl93cmFwcGVyIChnZGJfY2xpZW4KLSB2b2lk Ci0gY2xpX2NvbW1hbmRfbG9vcCAodm9pZCAqZGF0YSkKLSB7Ci0rICBkZWJ1Z19mbHVzaF9taXNz aW5nICgpOwotKwotICAgZGlzcGxheV9nZGJfcHJvbXB0ICgwKTsKLSAKLSAgIC8qIE5vdyBpdCdz IHRpbWUgdG8gc3RhcnQgdGhlIGV2ZW50IGxvb3AuICAqLwotQEAgLTI5OCw2ICszMDEsOCBAQCBk aXNwbGF5X2dkYl9wcm9tcHQgKGNvbnN0IGNoYXIgKm5ld19wcm9tCitAQCAtMzQ3LDYgKzM0OCw4 IEBACiAgICAvKiBSZXNldCB0aGUgbmVzdGluZyBkZXB0aCB1c2VkIHdoZW4gdHJhY2UtY29tbWFu ZHMgaXMgc2V0LiAgKi8KICAgIHJlc2V0X2NvbW1hbmRfbmVzdF9kZXB0aCAoKTsKICAKQEAgLTI4 LDExICsxOSwyMyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2ZW50LXRvcC5j CiAgICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmFj dHVhbF9nZGJfcHJvbXB0KTsKICAKICAgIC8qIERvIG5vdCBjYWxsIHRoZSBweXRob24gaG9vayBv biBhbiBleHBsaWNpdCBwcm9tcHQgY2hhbmdlIGFzCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL3N5bWZpbGUuaAorQEAgLTc5NCw3ICs3OTcsMTAgQEAKKyAgICAgICBjb21tYW5kX2hh bmRsZXIgKGNtZCk7CisgCisgICAgICAgaWYgKHVpLT5wcm9tcHRfc3RhdGUgIT0gUFJPTVBURUQp CistCWRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7CisrCXsKKysJICBkZWJ1Z19mbHVzaF9taXNzaW5n ICgpOworKwkgIGRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7CisrCX0KKyAgICAgfQorIH0KKyAKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3ltZmlsZS5oCi0rKysgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAotQEAgLTU4Nyw2ICs1ODcsOCBAQCB2b2lkIG1hcF9zeW1i b2xfZmlsZW5hbWVzIChzeW1ib2xfZmlsZW5hCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3Jp Zy9nZGIvc3ltZmlsZS5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDMyNzUzNjY4ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3 MzEzMDc0MiArMDIwMAorQEAgLTU5Miw2ICs1OTIsOCBAQAogIC8qIGJ1aWxkLWlkIHN1cHBvcnQu ICAqLwogIGV4dGVybiBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZF9hZGRyX2dldCAoQ09S RV9BRERSIGFkZHIpOwogIGV4dGVybiB2b2lkIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNo YXIgKmJpbmFyeSwgY29uc3QgY2hhciAqZGVidWcpOwpAQCAtNDEsNDggKzQ0LDEwIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3ltZmlsZS5oCiAgCiAgLyogRnJvbSBkd2FyZjJy ZWFkLmMgKi8KICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIv dGVzdHN1aXRlL2xpYi9nZGIuZXhwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cAotQEAgLTE2NDIsNyArMTY0Miw3IEBAIHByb2MgZGVmYXVsdF9nZGJf c3RhcnQgeyB9IHsKLSAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4i Ci0gCX0KLSAgICAgfQotLSAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIHdhcm5pbmdzIGFzIHRo ZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhwZWN0IGl0LgotKyAgICAjIFR1cm4gb2ZmIHRoZSBtaXNz aW5nIFJQTXMgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCi0g ICAgIHNlbmRfZ2RiICJzZXQgYnVpbGQtaWQtdmVyYm9zZSAwXG4iCi0gICAgIGdkYl9leHBlY3Qg MTAgewotIAktcmUgIiRnZGJfcHJvbXB0ICQiIHsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLSsr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAot QEAgLTIwNCw3ICsyMDQsNyBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsK LSAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAg fQotLSAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUg ZG9lcyBub3QgZXhwZWN0IGl0LgotKyAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2Fy bmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2Ri ICIxOTAtZ2RiLXNldCBidWlsZC1pZC12ZXJib3NlIDBcbiIKLSAgICAgZ2RiX2V4cGVjdCAxMCB7 Ci0gCS1yZSAiLioxOTAtZ2RiLXNldCBidWlsZC1pZC12ZXJib3NlIDBcclxuMTkwXFxcXmRvbmVc clxuJG1pX2dkYl9wcm9tcHQkIiB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R1 aS90dWktaW50ZXJwLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi90dWkvdHVpLWludGVycC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R1aS90 dWktaW50ZXJwLmMKLUBAIC0zMSw2ICszMSw3IEBACi0gI2luY2x1ZGUgInR1aS90dWktaW8uaCIK LSAjaW5jbHVkZSAiaW5mcnVuLmgiCi0gI2luY2x1ZGUgIm9ic2VydmVyLmgiCi0rI2luY2x1ZGUg InN5bWZpbGUuaCIKLSAKLSBzdGF0aWMgc3RydWN0IHVpX291dCAqdHVpX3VpX291dCAoc3RydWN0 IGludGVycCAqc2VsZik7Ci0gCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FjbG9j YWwubTQKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYWNsb2NhbC5tNAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2FjbG9jYWwubTQKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYWNsb2NhbC5tNAorLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL2FjbG9jYWwubTQJMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYWNsb2NhbC5tNAkyMDE2LTA3LTAzIDE0 OjM3OjEyLjU3NjEzMDc2OCArMDIwMAogQEAgLTExLDYgKzExLDIyMSBAQAogICMgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQQogICMg UEFSVElDVUxBUiBQVVJQT1NFLgpAQCAtMzA1LDEwICsyNzAsMTAgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9hY2xvY2FsLm00CiAgIyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogIAogICMg Q29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlnLmluCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZy5pbgotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9jb25maWcuaW4KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9jb25m aWcuaW4JMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvY29uZmlnLmluCTIwMTYtMDctMDMgMTQ6Mzc6MTIuNTc2MTMwNzY4ICsw MjAwCiBAQCAtMzMsNiArMzMsOSBAQAogIC8qIERlZmluZSB0byBCRkQncyBkZWZhdWx0IHRhcmdl dCB2ZWN0b3IuICovCiAgI3VuZGVmIERFRkFVTFRfQkZEX1ZFQwpAQCAtMzE5LDcgKzI4NCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRv IDEgaWYgdHJhbnNsYXRpb24gb2YgcHJvZ3JhbSBtZXNzYWdlcyB0byB0aGUgdXNlcidzIG5hdGl2 ZQogICAgIGxhbmd1YWdlIGlzIHJlcXVlc3RlZC4gKi8KICAjdW5kZWYgRU5BQkxFX05MUwotQEAg LTI1OCw2ICsyNjEsOSBAQAorQEAgLTI2MSw2ICsyNjQsOSBAQAogIC8qIERlZmluZSBpZiBQeXRo b24gMi43IGlzIGJlaW5nIHVzZWQuICovCiAgI3VuZGVmIEhBVkVfTElCUFlUSE9OMl83CiAgCkBA IC0zMjksMTEgKzI5NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZp Zy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlidW53aW5kLWlhNjQuaD4g aGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhBVkVfTElCVU5XSU5EX0lBNjRfSAogIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAx MDYub3JpZy9nZGIvY29uZmlndXJlCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZp Z3VyZQotQEAgLTcwNSw2ICs3MDUsMTEgQEAgUEtHVkVSU0lPTgorLS0tIGdkYi03LjExLjUwLjIw MTYwNjMwLm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWd1cmUJMjAxNi0wNy0wMyAx NDozNzoxMi41ODExMzA4MTEgKzAyMDAKK0BAIC03MDUsNiArNzA1LDExIEBACiAgSEFWRV9OQVRJ VkVfR0NPUkVfVEFSR0VUCiAgVEFSR0VUX09CUwogIHN1YmRpcnMKQEAgLTM0NSw3ICszMTAsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogIEdEQl9EQVRBRElS CiAgREVCVUdESVIKICBNQUtFSU5GT19FWFRSQV9GTEFHUwotQEAgLTgxMyw2ICs4MTgsNyBAQCB3 aXRoX2dkYl9kYXRhZGlyCitAQCAtODE0LDYgKzgxOSw3IEBACiAgd2l0aF9yZWxvY2F0ZWRfc291 cmNlcwogIHdpdGhfYXV0b19sb2FkX2RpcgogIHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aApAQCAt MzUzLDcgKzMxOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJl CiAgZW5hYmxlX3RhcmdldHMKICBlbmFibGVfNjRfYml0X2JmZAogIGVuYWJsZV9nZGJjbGkKLUBA IC04NjksNiArODc1LDExIEBAIENDQworQEAgLTg3MCw2ICs4NzYsMTEgQEAKICBDUFAKICBNQUtF SU5GTwogIE1BS0VJTkZPRkxBR1MKQEAgLTM2NSw3ICszMzAsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogIFlBQ0MKICBZRkxBR1MKICBYTUtNRicKLUBAIC0x NTQwLDYgKzE1NTEsOCBAQCBPcHRpb25hbCBQYWNrYWdlczoKK0BAIC0xNTQxLDYgKzE1NTIsOCBA QAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWy0td2l0aC1hdXRvLWxvYWQtZGlyXQogICAg LS13aXRob3V0LWF1dG8tbG9hZC1zYWZlLXBhdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvIG5vdCByZXN0cmljdCBhdXRvLWxvYWRlZCBmaWxlcyBsb2NhdGlvbnMKQEAgLTM3NCw3ICsz MzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogICAgLS13 aXRoLWxpYnVud2luZC1pYTY0ICAgdXNlIGxpYnVud2luZCBmcmFtZSB1bndpbmRpbmcgZm9yIGlh NjQgdGFyZ2V0cwogICAgLS13aXRoLWN1cnNlcyAgICAgICAgICAgdXNlIHRoZSBjdXJzZXMgbGli cmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWJyYXJ5Ci1AQCAtMTU5NSw2ICsxNjA4LDEzIEBAIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1l bnQgdmFyaWFibGVzOgorQEAgLTE1OTUsNiArMTYwOCwxMyBAQAogICAgTUFLRUlORk8gICAgUGFy ZW50IGNvbmZpZ3VyZSBkZXRlY3RzIGlmIGl0IGlzIG9mIHN1ZmZpY2llbnQgdmVyc2lvbi4KICAg IE1BS0VJTkZPRkxBR1MKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgZm9yIE1BS0VJTkZPLgpA QCAtMzg4LDcgKzM1Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmln dXJlCiAgICBZQUNDICAgICAgICBUaGUgYFlldCBBbm90aGVyIEMgQ29tcGlsZXInIGltcGxlbWVu dGF0aW9uIHRvIHVzZS4gRGVmYXVsdHMgdG8KICAgICAgICAgICAgICAgIHRoZSBmaXJzdCBwcm9n cmFtIGZvdW5kIG91dCBvZjogYGJpc29uIC15JywgYGJ5YWNjJywgYHlhY2MnLgogICAgWUZMQUdT ICAgICAgVGhlIGxpc3Qgb2YgYXJndW1lbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgYnkgZGVmYXVs dCB0byAkWUFDQy4KLUBAIC01NjU1LDYgKzU2NzUsNDk0IEBAIF9BQ0VPRgorQEAgLTU2MTMsNiAr NTYzMyw0OTQgQEAKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aCIgPiY1CiAgJGFzX2VjaG8gIiR3aXRoX2F1 dG9fbG9hZF9zYWZlX3BhdGgiID4mNjsgfQogIApAQCAtODgzLDExICs4NDgsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUKICAKICAKICBzdWJkaXJzPSIkc3Vi ZGlycyB0ZXN0c3VpdGUiCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3Vy ZS5hYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWd1cmUuYWMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9jb25maWd1cmUuYWMKLSsr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCi1AQCAtMTc3LDYgKzE3Nywx OTkgQEAgQUNfREVGSU5FX0RJUihBVVRPX0xPQURfU0FGRV9QQVRILCBlc2NhcAorLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE2LTA3LTAyIDIzOjQzOjI0 LjA4NTIxNDE0NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWd1cmUu YWMJMjAxNi0wNy0wMyAxNDozNzoxMi41ODIxMzA4MTkgKzAyMDAKK0BAIC0xNzcsNiArMTc3LDE5 OSBAQAogIAkgICAgICBbRGlyZWN0b3JpZXMgc2FmZSB0byBob2xkIGF1dG8tbG9hZGVkIGZpbGVz Ll0pCiAgQUNfTVNHX1JFU1VMVChbJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aF0pCiAgCkBAIC0x MDg3LDExICsxMDUyLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmln dXJlLmFjCiAgQUNfQ09ORklHX1NVQkRJUlModGVzdHN1aXRlKQogIAogICMgQ2hlY2sgd2hldGhl ciB0byBzdXBwb3J0IGFsdGVybmF0aXZlIHRhcmdldCBjb25maWd1cmF0aW9ucwotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb3JlbG93LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvY29yZWxvdy5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvcmVsb3cu YwotQEAgLTMxMCw3ICszMTAsNyBAQCBidWlsZF9pZF9sb2NhdGVfZXhlYyAoaW50IGZyb21fdHR5 KQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAz IDE0OjM0OjMyLjAyMjc1MzU4MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9j b3JlbG93LmMJMjAxNi0wNy0wMyAxNDozNzoxMi41ODIxMzA4MTkgKzAyMDAKK0BAIC0zMTAsNyAr MzEwLDcgQEAKICAgICAgICAgIHN5bWZpbGVfb2JqZmlsZS0+ZmxhZ3MgfD0gT0JKRl9CVUlMRF9J RF9DT1JFX0xPQURFRDsKICAgICAgfQogICAgZWxzZQpAQCAtMTEwMCwxMCArMTA2NSwxMCBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvcmVsb3cuYwogIAogICAgZG9fY2xlYW51 cHMgKGJhY2tfdG8pOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1p ZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9idWlsZC1pZC5jCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlkLmMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYz MC5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTYtMDctMDMgMTQ6MzY6NTAuMTI0OTM4MTg3ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wNy0wMyAxNDo0 MjoyNS4xNzE4MTIxMzQgKzAyMDAKIEBAIC0zNSw2ICszNSw3IEBACiAgI2luY2x1ZGUgImVsZi9j b21tb24uaCIKICAjaW5jbHVkZSAiZWxmLWJmZC5oIgpAQCAtMTExMiw3ICsxMDc3LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgCiAgI2RlZmluZSBCVUlM RF9JRF9WRVJCT1NFX05PTkUgMAogICNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9GSUxFTkFNRVMg MQotQEAgLTY2NSw4ICs2NjYsMzY2IEBAIGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1 Y3QgYmZkX2IKK0BAIC02NjUsOCArNjY2LDM2NiBAQAogICAgcmV0dXJuIHJlc3VsdDsKICB9CiAg CkBAIC0xMjIxLDEzICsxMTg2LDEzIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv YnVpbGQtaWQuYwogKwkgICAgcmV0dXJuIDA7CiArCSAgfQogKwotKwlpZiAoISgoaGVhZGVyRm9y bWF0X3AgPSBkbHN5bSAoaCwgImhlYWRlckZvcm1hdCIpKQotKwkgICAgICAmJiAocnBtUmVhZENv bmZpZ0ZpbGVzX3AgPSBkbHN5bSAoaCwgInJwbVJlYWRDb25maWdGaWxlcyIpKQotKwkgICAgICAm JiAocnBtZGJGcmVlSXRlcmF0b3JfcCA9IGRsc3ltIChoLCAicnBtZGJGcmVlSXRlcmF0b3IiKSkK LSsJICAgICAgJiYgKHJwbWRiTmV4dEl0ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbWRiTmV4dEl0 ZXJhdG9yIikpCi0rCSAgICAgICYmIChycG10c0NyZWF0ZV9wID0gZGxzeW0gKGgsICJycG10c0Ny ZWF0ZSIpKQotKwkgICAgICAmJiAocnBtdHNGcmVlX3AgPSBkbHN5bSAoaCwgInJwbXRzRnJlZSIp KQotKwkgICAgICAmJiAocnBtdHNJbml0SXRlcmF0b3JfcCA9IGRsc3ltIChoLCAicnBtdHNJbml0 SXRlcmF0b3IiKSkpKQorKwlpZiAoISgoaGVhZGVyRm9ybWF0X3AgPSAoY2hhciAqKCopIChIZWFk ZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKmVycm1zZykpIGRsc3ltIChoLCAiaGVh ZGVyRm9ybWF0IikpCisrCSAgICAgICYmIChycG1SZWFkQ29uZmlnRmlsZXNfcCA9IChpbnQgKCop IChjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCkpIGRsc3ltIChoLCAicnBt UmVhZENvbmZpZ0ZpbGVzIikpCisrCSAgICAgICYmIChycG1kYkZyZWVJdGVyYXRvcl9wID0gKHJw bWRiTWF0Y2hJdGVyYXRvciAoKikgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSkpIGRsc3ltIChoLCAi cnBtZGJGcmVlSXRlcmF0b3IiKSkKKysJICAgICAgJiYgKHJwbWRiTmV4dEl0ZXJhdG9yX3AgPSAo SGVhZGVyICgqKSAocnBtZGJNYXRjaEl0ZXJhdG9yIG1pKSkgZGxzeW0gKGgsICJycG1kYk5leHRJ dGVyYXRvciIpKQorKwkgICAgICAmJiAocnBtdHNDcmVhdGVfcCA9IChycG10cyAoKikgKHZvaWQp KSBkbHN5bSAoaCwgInJwbXRzQ3JlYXRlIikpCisrCSAgICAgICYmIChycG10c0ZyZWVfcCA9IChy cG10cyAoKikgKHJwbXRzIHRzKSkgZGxzeW0gKGgsICJycG10c0ZyZWUiKSkKKysJICAgICAgJiYg KHJwbXRzSW5pdEl0ZXJhdG9yX3AgPSAocnBtZGJNYXRjaEl0ZXJhdG9yICgqKSAoY29uc3QgcnBt dHMgdHMsIHJwbVRhZyBycG10YWcsIGNvbnN0IHZvaWQgKmtleXAsIHNpemVfdCBrZXlsZW4pKSBk bHN5bSAoaCwgInJwbXRzSW5pdEl0ZXJhdG9yIikpKSkKICsJICB7CiArCSAgICB3YXJuaW5nIChf KCJPcGVuZWQgbGlicmFyeSBcIiVzXCIgaXMgaW5jb21wYXRpYmxlICglcyksICIKICsJCSAgICAg ICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQi KSwKQEAgLTEyODMsMTIgKzEyNDgsMTIgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9idWlsZC1pZC5jCiArCSAgaWYgKHMgPiBkZWJ1Z2luZm8gJiYgbWVtY21wIChzLCAiLnNyYy5y cG0iLCBzcmNycG1sZW4pID09IDApCiArCSAgICB7CiArCSAgICAgIC8qIHMyID0gYC0le3JlbGVh c2V9LnNyYy5ycG0tZGVidWdpbmZvLiV7YXJjaH0nICovCi0rCSAgICAgIHMyID0gbWVtcmNociAo ZGVidWdpbmZvLCAnLScsIHMgLSBkZWJ1Z2luZm8pOworKwkgICAgICBzMiA9IChjaGFyICopIG1l bXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzIC0gZGVidWdpbmZvKTsKICsJICAgIH0KICsJICBpZiAo czIpCiArCSAgICB7CiArCSAgICAgIC8qIHMyID0gYC0le3ZlcnNpb259LSV7cmVsZWFzZX0uc3Jj LnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KLSsJICAgICAgczIgPSBtZW1yY2hyIChkZWJ1Z2lu Zm8sICctJywgczIgLSBkZWJ1Z2luZm8pOworKwkgICAgICBzMiA9IChjaGFyICopIG1lbXJjaHIg KGRlYnVnaW5mbywgJy0nLCBzMiAtIGRlYnVnaW5mbyk7CiArCSAgICB9CiArCSAgaWYgKCFzMikK ICsJICAgIHsKQEAgLTEzMTEsNyArMTI3Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvYnVpbGQtaWQuYwogKwogKwkgIC8qIFJQTURCSV9QQUNLQUdFUyByZXF1aXJlcyBrZXls ZW4gPT0gc2l6ZW9mIChpbnQpLiAgKi8KICsJICAvKiBSUE1EQklfTEFCRUwgaXMgYW4gaW50ZXJm YWNlIGZvciBOVlItYmFzZWQgZGJpRmluZEJ5TGFiZWwoKS4gICovCi0rCSAgbWlfZGVidWdpbmZv ID0gcnBtdHNJbml0SXRlcmF0b3JfcCAodHMsIFJQTURCSV9MQUJFTCwgZGVidWdpbmZvLCAwKTsK KysJICBtaV9kZWJ1Z2luZm8gPSBycG10c0luaXRJdGVyYXRvcl9wICh0cywgKHJwbVRhZykgUlBN REJJX0xBQkVMLCBkZWJ1Z2luZm8sIDApOwogKwkgIHhmcmVlIChkZWJ1Z2luZm8pOwogKwkgIGlm IChtaV9kZWJ1Z2luZm8pCiArCSAgICB7CkBAIC0xMzYyLDcgKzEzMjcsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlkLmMKICsKICsJICAgICAgKnNsb3QgPSBkZWJ1 Z2luZm87CiArCi0rCSAgICAgIG1pc3NpbmdfcnBtID0geG1hbGxvYyAoc2l6ZW9mICgqbWlzc2lu Z19ycG0pICsgc3RybGVuIChkZWJ1Z2luZm8pKTsKKysJICAgICAgbWlzc2luZ19ycG0gPSAoc3Ry dWN0IG1pc3NpbmdfcnBtICopIHhtYWxsb2MgKHNpemVvZiAoKm1pc3NpbmdfcnBtKSArIHN0cmxl biAoZGVidWdpbmZvKSk7CiArCSAgICAgIHN0cmNweSAobWlzc2luZ19ycG0tPnJwbSwgZGVidWdp bmZvKTsKICsJICAgICAgbWlzc2luZ19ycG0tPm5leHQgPSBtaXNzaW5nX3JwbV9saXN0OwogKwkg ICAgICBtaXNzaW5nX3JwbV9saXN0ID0gbWlzc2luZ19ycG07CkBAIC0xNDAwLDcgKzEzNjUsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlkLmMKICsgIGlmIChtaXNz aW5nX3JwbV9saXN0X2VudHJpZXMgPT0gMCkKICsgICAgcmV0dXJuOwogKwotKyAgYXJyYXkgPSB4 bWFsbG9jIChzaXplb2YgKCphcnJheSkgKiBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMpOworKyAg YXJyYXkgPSAoY2hhciAqKikgeG1hbGxvYyAoc2l6ZW9mICgqYXJyYXkpICogbWlzc2luZ19ycG1f bGlzdF9lbnRyaWVzKTsKICsgIGNsZWFudXBzID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJyYXkp OwogKwogKyAgYXJyYXlfaXRlciA9IGFycmF5OwpAQCAtMTQ4MCw3ICsxNDQ1LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgICAgYXZvaWRhbmNlLiAgKi8K ICAKICBzdHJ1Y3QgbWlzc2luZ19maWxlcGFpcgotQEAgLTcyMCwxMSArMTA3OSwxNyBAQCBtaXNz aW5nX2ZpbGVwYWlyX2NoYW5nZSAodm9pZCkKK0BAIC03MjAsMTEgKzEwNzksMTcgQEAKICAgICAg ICAvKiBBbGwgdGhlaXIgbWVtb3J5IGNhbWUganVzdCBmcm9tIG1pc3NpbmdfZmlsZXBhaXJfT0JT VEFDSy4gICovCiAgICAgICAgbWlzc2luZ19maWxlcGFpcl9oYXNoID0gTlVMTDsKICAgICAgfQpA QCAtMTQ5OCw3ICsxNDYzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWls ZC1pZC5jCiAgICBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAoKTsKICB9CiAgCi1AQCAtNzkxLDE0 ICsxMTU2LDM5IEBAIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwKK0BA IC03OTEsMTQgKzExNTYsMzkgQEAKICAKICAgICpzbG90ID0gbWlzc2luZ19maWxlcGFpcjsKICAK CmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBh dGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaAppbmRl eCBhODk4OTNjLi5mNGRjY2M5IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNv bGliLW1pc3NpbmctaWRzLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtc29saWIt bWlzc2luZy1pZHMucGF0Y2gKQEAgLTEsMyArMSw2IEBACitnZGIgcmV0dXJucyBhbiBpbmNvcnJl Y3QgYmFjayB0cmFjZSB3aGVuIGFwcGx5aW5nIGEgZGVidWdpbmZvCitodHRwczovL2J1Z3ppbGxh LnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEzMzk4NjIKKwogSW5kZXg6IGdkYi03LjkuOTAu MjAxNTA3MDkvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGdkYi03LjkuOTAuMjAx NTA3MDkub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTUtMDctMDkgMTg6MTg6NTQuNTI2NDE3NzY2 ICswMjAwCkBAIC01NywzICs2MCwxNjMgQEAgSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2Ri L3NvbGliLXN2cjQuYwogIAogIAkgICAgeGZyZWUgKGJ1aWxkX2lkX2ZpbGVuYW1lKTsKICAJICAg IHhmcmVlIChidWlsZF9pZCk7CistLS0gL2Rldi9udWxsCTIwMTYtMDctMDIgMjA6Mjk6MDEuNjc5 NDA0OTQzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9nY29yZS1idWlsZGlkLWV4ZWMtYnV0LW5vdC1zb2xpYi5leHAJMjAxNi0wNy0zMSAyMzow NDo0OS4wNjI3NTM3MjIgKzAyMDAKK0BAIC0wLDAgKzEsMTA1IEBACisrIyBDb3B5cmlnaHQgMjAx NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisrCisraWYge1tza2lwX3NobGliX3Rlc3RzXX0geworKyAgICByZXR1cm4gMAor K30KKysKKytzZXQgdGVzdGZpbGUgImdjb3JlLWJ1aWxkaWQtZXhlYy1idXQtbm90LXNvbGliIgor K3NldCBzcmNtYWluZmlsZSAke3Rlc3RmaWxlfS1tYWluLmMKKytzZXQgc3JjbGliZmlsZSAke3Rl c3RmaWxlfS1saWIuYworK3NldCBsaWJmaWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3Rm aWxlfS1saWIuc29dCisrc2V0IG9iamZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR7dGVzdGZp bGV9LW1haW4ub10KKytzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfS1tYWluCisrc2V0IGJpbmZp bGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR7ZXhlY3V0YWJsZX1dCisrc2V0IGdjb3JlZmlsZSBb c3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfS5nY29yZV0KKytzZXQgb3V0ZGlyIFtm aWxlIGRpcm5hbWUgJGJpbmZpbGVdCisrCisraWYgeyBbZ2RiX2NvbXBpbGVfc2hsaWIgJHtzcmNk aXJ9LyR7c3ViZGlyfS8ke3NyY2xpYmZpbGV9ICR7bGliZmlsZX0gImRlYnVnIGFkZGl0aW9uYWxf ZmxhZ3M9LVdsLC0tYnVpbGQtaWQiXSAhPSAiIgorKyAgICAgfHwgW2dkYl9jb21waWxlICR7c3Jj ZGlyfS8ke3N1YmRpcn0vJHtzcmNtYWluZmlsZX0gJHtvYmpmaWxlfSBvYmplY3Qge2RlYnVnfV0g IT0gIiIgfSB7CisrICAgICB1bnN1cHBvcnRlZCAiLVdsLC0tYnVpbGQtaWQgY29tcGlsYXRpb24g ZmFpbGVkIgorKyAgICAgcmV0dXJuIC0xCisrfQorK3NldCBvcHRzIFtsaXN0IGRlYnVnIHNobGli PSR7bGliZmlsZX0gImFkZGl0aW9uYWxfZmxhZ3M9LVdsLC0tYnVpbGQtaWQiXQorK2lmIHsgW2dk Yl9jb21waWxlICR7b2JqZmlsZX0gJHtiaW5maWxlfSBleGVjdXRhYmxlICRvcHRzXSAhPSAiIiB9 IHsKKysgICAgIHVuc3VwcG9ydGVkICItV2wsLS1idWlsZC1pZCBjb21waWxhdGlvbiBmYWlsZWQi CisrICAgICByZXR1cm4gLTEKKyt9CisrCisrY2xlYW5fcmVzdGFydCAkZXhlY3V0YWJsZQorK2dk Yl9sb2FkX3NobGliICRsaWJmaWxlCisrCisrIyBEb2VzIHRoaXMgZ2RiIHN1cHBvcnQgZ2NvcmU/ Cisrc2V0IHRlc3QgImhlbHAgZ2NvcmUiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRlc3Qg eworKyAgICAtcmUgIlVuZGVmaW5lZCBjb21tYW5kOiAuZ2NvcmUuKlxyXG4kZ2RiX3Byb21wdCAk IiB7CisrCSMgZ2NvcmUgY29tbWFuZCBub3Qgc3VwcG9ydGVkIC0tIG5vdGhpbmcgdG8gdGVzdCBo ZXJlLgorKwl1bnN1cHBvcnRlZCAiZ2RiIGRvZXMgbm90IHN1cHBvcnQgZ2NvcmUgb24gdGhpcyB0 YXJnZXQiCisrCXJldHVybiAtMTsKKysgICAgfQorKyAgICAtcmUgIlNhdmUgYSBjb3JlIGZpbGUg LipcclxuJGdkYl9wcm9tcHQgJCIgeworKwlwYXNzICR0ZXN0CisrICAgIH0KKyt9CisrCisraWYg eyAhW3J1bnRvIGxpYl0gfSB0aGVuIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK3NldCBlc2Nh cGVkZmlsZW5hbWUgW3N0cmluZ190b19yZWdleHAgJHtnY29yZWZpbGV9XQorKworK3NldCB0ZXN0 ICJzYXZlIGEgY29yZWZpbGUiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgImdjb3JlICR7Z2NvcmVmaWxl fSIgJHRlc3QgeworKyAgICAtcmUgIlNhdmVkIGNvcmVmaWxlICR7ZXNjYXBlZGZpbGVuYW1lfVxy XG4kZ2RiX3Byb21wdCAkIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgIkNhbid0 IGNyZWF0ZSBhIGNvcmVmaWxlXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJdW5zdXBwb3J0ZWQgJHRl c3QKKysJcmV0dXJuIC0xCisrICAgIH0KKyt9CisrCisrIyBOb3cgcmVzdGFydCBnZGIgYW5kIGxv YWQgdGhlIGNvcmVmaWxlLgorKworK2NsZWFuX3Jlc3RhcnQgJGV4ZWN1dGFibGUKKytnZGJfbG9h ZF9zaGxpYiAkbGliZmlsZQorKworK3NldCBidWlsZGlkIFtidWlsZF9pZF9kZWJ1Z19maWxlbmFt ZV9nZXQgJGxpYmZpbGVdCisrCisrcmVnc3ViIHtcLmRlYnVnJH0gJGJ1aWxkaWQge30gYnVpbGRp ZAorKworK3NldCBkZWJ1Z2RpciBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHt0ZXN0ZmlsZX0tZGVi dWdkaXJdCisrZmlsZSBkZWxldGUgLWZvcmNlIC0tICRkZWJ1Z2RpcgorKworK2ZpbGUgbWtkaXIg JGRlYnVnZGlyL1tmaWxlIGRpcm5hbWUgJGxpYmZpbGVdCisrZmlsZSBjb3B5ICRsaWJmaWxlICRk ZWJ1Z2Rpci8ke2xpYmZpbGV9CisrCisrZmlsZSBta2RpciAkZGVidWdkaXIvW2ZpbGUgZGlybmFt ZSAkYnVpbGRpZF0KKytmaWxlIGNvcHkgJGxpYmZpbGUgJGRlYnVnZGlyLyR7YnVpbGRpZH0KKysK KytyZW1vdGVfZXhlYyBidWlsZCAibG4gLXMgL2xpYiAgICAgICAke2RlYnVnZGlyfS8iCisrcmVt b3RlX2V4ZWMgYnVpbGQgImxuIC1zIC9saWI2NCAgICAgJHtkZWJ1Z2Rpcn0vIgorKyMgL3VzciBp cyBub3QgbmVlZGVkLCBhbGwgdGhlIGxpYnMgYXJlIGluIC9saWI2NDogbGlibS5zby42IGxpYmMu c28uNiBsZC1saW51eC14ODYtNjQuc28uMgorKworK2dkYl90ZXN0ICJzZXQgc29saWItYWJzb2x1 dGUtcHJlZml4ICRkZWJ1Z2RpciIKKysKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCBkZWJ1Zy1m aWxlLWRpcmVjdG9yeSAkZGVidWdkaXIiICJzZXQgZGVidWctZmlsZS1kaXJlY3RvcnkiCisrCisr Z2RiX3Rlc3QgImNvcmUgJHtnY29yZWZpbGV9IiAiQ29yZSB3YXMgZ2VuZXJhdGVkIGJ5IC4qIiAi cmUtbG9hZCBnZW5lcmF0ZWQgY29yZWZpbGUiCisrCisrZ2RiX3Rlc3QgImZyYW1lIiAiIzAgXFte XHJcblxdKiBsaWIgLioiICJsaWJyYXJ5IGdvdCBsb2FkZWQiCisrCisrZ2RiX3Rlc3QgImJ0Igor K2dkYl90ZXN0ICJpbmZvIHNoYXJlZCIKKy0tLSAvZGV2L251bGwJMjAxNi0wNy0wMiAyMDoyOTow MS42Nzk0MDQ5NDMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcyMS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2djb3JlLWJ1aWxkaWQtZXhlYy1idXQtbm90LXNvbGliLW1haW4uYwkyMDE2LTA3 LTI4IDIxOjA2OjQwLjk3Nzc4NjkyMiArMDIwMAorQEAgLTAsMCArMSwyNSBAQAorKy8qIENvcHly aWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisr ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKwor KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisrCisrZXh0ZXJuIHZvaWQgbGliICh2b2lkKTsKKysKKytpbnQKKyttYWluICh2b2lk KQorK3sKKysgIGxpYiAoKTsKKysgIHJldHVybiAwOworK30KKy0tLSAvZGV2L251bGwJMjAxNi0w Ny0wMiAyMDoyOTowMS42Nzk0MDQ5NDMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcyMS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2djb3JlLWJ1aWxkaWQtZXhlYy1idXQtbm90LXNvbGliLWxp Yi5jCTIwMTYtMDctMjggMjE6MDY6NDAuOTc3Nzg2OTIyICswMjAwCitAQCAtMCwwICsxLDIxIEBA CisrLyogQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisr ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAg IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKysKKyt2b2lkCisrbGliICh2b2lkKQorK3sKKyt9CgpkaWZmIC0t Z2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2Nh dGUucGF0Y2gKaW5kZXggYjI1YWQ4ZS4uZmY3Nzc3NSAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWls ZGlkLWxvY2F0ZS5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBAIC0x LDcgKzEsNyBAQAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb3JlbG93LmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvY29yZWxvdy5jCTIwMTYtMDItMTUgMjM6MjU6 MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvcmVsb3cu YwkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAorLS0tIGdkYi03LjExLjUwLjIw MTYwNjMwLm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb3JlbG93LmMJMjAxNi0wNy0wMyAx NDozNDozMi4wMjI3NTM1ODIgKzAyMDAKIEBAIC00NSw2ICs0NSwxMCBAQAogICNpbmNsdWRlICJn ZGJfYmZkLmgiCiAgI2luY2x1ZGUgImNvbXBsZXRlci5oIgpAQCAtOTQsMTEgKzk0LDExIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29yZWxvdy5jCiArCQkJICAgTlVMTCwgTlVM TCwgTlVMTCwKICsJCQkgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICB9Ci1JbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4y MDE2MDIxMS5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNi0wMi0xNSAyMzoyNTozNi40NTU1 OTg5NTggKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMTYtMDItMTUgMjM6MjY6MDYuMzYyODExMzAyICswMTAwCi1AQCAtMTg2ODQsNiArMTg2ODQs MjcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8J MjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDMwNzUzNjUxICsw MjAwCitAQCAtMTg5MTYsNiArMTg5MTYsMjcgQEAKICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjYs MTAgKzEyNiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2RvYy9nZGIudGV4 aW5mbwogIEBjaW5kZXggQGNvZGV7LmdudV9kZWJ1Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBk ZWJ1ZyBsaW5rIHNlY3Rpb25zCiAgQSBkZWJ1ZyBsaW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9m IHRoZSBleGVjdXRhYmxlIGZpbGUgbmFtZWQKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvc29saWItc3ZyNC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3NvbGliLXN2 cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3NvbGli LXN2cjQuYwkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi9zb2xpYi1zdnI0LmMJMjAxNi0wMi0xNSAyMzoyNjo0Ni42MTMwOTcw ODMgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJ MjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvc29saWItc3ZyNC5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDMxNzUzNjU5ICswMjAw CiBAQCAtNDUsNiArNDUsNyBAQAogICNpbmNsdWRlICJhdXh2LmgiCiAgI2luY2x1ZGUgImdkYl9i ZmQuaCIKQEAgLTE5NCwxMCArMTk0LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvc29saWItc3ZyNC5jCiAgICAgICAgeGZyZWUgKGJ1ZmZlcik7CiAgCiAgICAgICAgLyogSWYg dGhpcyBlbnRyeSBoYXMgbm8gbmFtZSwgb3IgaXRzIG5hbWUgbWF0Y2hlcyB0aGUgbmFtZQotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvZWxmcmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAx NjAyMTEub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICsw MTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2VsZnJlYWQuYwkyMDE2LTAyLTE1IDIz OjI2OjA2LjM2NDgxMTMxNiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2Ri L2VsZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9lbGZyZWFkLmMJMjAxNi0wNy0wMyAxNDozNDozMi4wMzE3NTM2 NTkgKzAyMDAKIEBAIC0xMjU5LDkgKzEyNTksMTAgQEAKICAJICAgJiYgb2JqZmlsZS0+c2VwYXJh dGVfZGVidWdfb2JqZmlsZSA9PSBOVUxMCiAgCSAgICYmIG9iamZpbGUtPnNlcGFyYXRlX2RlYnVn X29iamZpbGVfYmFja2xpbmsgPT0gTlVMTCkKQEAgLTIyNCwxMSArMjI0LDExIEBAIEluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZWxmcmVhZC5jCiAgICAgIH0KICB9CiAgCi1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3N5bWZpbGUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9zeW1maWxlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIx MS5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAK LSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvc3ltZmlsZS5oCTIwMTYtMDItMTUgMjM6MjY6 NDYuNTE2MDk2Mzk1ICswMTAwCi1AQCAtNTg0LDYgKzU4NCwxMCBAQAorLS0tIGdkYi03LjExLjUw LjIwMTYwNjMwLm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUy OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zeW1maWxlLmgJMjAxNi0wNy0w MyAxNDozNDozMi4wMzI3NTM2NjggKzAyMDAKK0BAIC01ODksNiArNTg5LDEwIEBACiAgdm9pZCBt YXBfc3ltYm9sX2ZpbGVuYW1lcyAoc3ltYm9sX2ZpbGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRh dGEsCiAgCQkJICAgaW50IG5lZWRfZnVsbG5hbWUpOwogIApAQCAtMjM5LDExICsyMzksMTEgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9zeW1maWxlLmgKICAvKiBGcm9tIGR3YXJm MnJlYWQuYyAqLwogIAogIC8qIE5hbWVzIGZvciBhIGR3YXJmMiBkZWJ1Z2dpbmcgc2VjdGlvbi4g IFRoZSBmaWVsZCBOT1JNQUwgaXMgdGhlIG5vcm1hbAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAu MjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6MjU6 MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2RiLmV4cAkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAotQEAgLTE2 NDAsNiArMTY0MCwxNiBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wNy0w MyAxNDozNDozMi4wMzM3NTM2NzYgKzAyMDAKK0BAIC0xNjQxLDYgKzE2NDEsMTYgQEAKICAJICAg IHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAt MjYwLDExICsyNjAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvbGliL2dkYi5leHAKICAgICAgcmV0dXJuIDAKICB9CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3Vw cG9ydC5leHAJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE2LTAyLTE1 IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAotQEAgLTIwNCw2ICsyMDQsMTYgQEAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIw MTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4w MzM3NTM2NzYgKzAyMDAKK0BAIC0zMDksNiArMzA5LDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJf c3RhcnQgeyBhcmdzIH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0 byAwLiIKICAJfQogICAgICB9CkBAIC0yNzksMTIgKzI3OSwxMiBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICsJfQogKyAgICB9 CiAgCi0gICAgICMgQ3JlYXRlIHRoZSBuZXcgUFRZIGZvciB0aGUgaW5mZXJpb3IgcHJvY2Vzcy4K ICAgICAgaWYgeyAkc2VwYXJhdGVfaW5mZXJpb3JfcHR5IH0gewotSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9vYmpmaWxlcy5oCisgCW1pX2NyZWF0ZV9pbmZlcmlvcl9wdHkKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvb2JqZmlsZXMuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxNi0wMi0xNSAyMzoyNTow MC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvb2JqZmlsZXMu aAkyMDE2LTAyLTE1IDIzOjI2OjA2LjM2NjgxMTMzMCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIw MTYwNjMwLm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1Mjgg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvb2JqZmlsZXMuaAkyMDE2LTA3LTAz IDE0OjM0OjMyLjAzNDc1MzY4NSArMDIwMAogQEAgLTQ4OSw2ICs0ODksMTAgQEAKICAKICAjZGVm aW5lIE9CSkZfTk9UX0ZJTEVOQU1FICgxIDw8IDYpCkBAIC0yOTYsMTAgKzI5NiwxMCBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL29iamZpbGVzLmgKICAvKiBEZWNsYXJhdGlvbnMg Zm9yIGZ1bmN0aW9ucyBkZWZpbmVkIGluIG9iamZpbGVzLmMgKi8KICAKICBleHRlcm4gc3RydWN0 IG9iamZpbGUgKmFsbG9jYXRlX29iamZpbGUgKGJmZCAqLCBjb25zdCBjaGFyICpuYW1lLCBpbnQp OwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29y ZWZpbGUuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9jb3JlZmlsZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTYtMDItMTUgMjM6MjU6 MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0wMi0xNSAyMzoyNjo1NS4xNzgxNTc4OTYgKzAx MDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Y29yZWZpbGUuZXhwCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAx Ni0wNy0wMyAxNDozNDozMi4wMzQ3NTM2ODUgKzAyMDAKIEBAIC0yOTMsMyArMjkzLDMzIEBACiAg CXBhc3MgJHRlc3QKICAgICAgfQpAQCAtMzM0LDEwICszMzQsMTAgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCiArICAgIGdk Yl90ZXN0ICJpbmZvIGZpbGVzIiAiTG9jYWwgZXhlYyBmaWxlOlxyXG5cWyBcdFxdKmBbc3RyaW5n X3RvX3JlZ2V4cCAkZGVidWdkaXIvJGJ1aWxkaWRdJywgZmlsZSB0eXBlIC4qIgogKyAgICBwYXNz ICR3aG9sZXRlc3QKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlk LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wMi0x NSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv YnVpbGQtaWQuYwkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAorLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wNy0wMyAxNDozMzoyOC4x MzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwky MDE2LTA3LTAzIDE0OjM2OjUwLjEyNDkzODE4NyArMDIwMAogQEAgLTI2LDExICsyNiw2NyBAQAog ICNpbmNsdWRlICJvYmpmaWxlcy5oIgogICNpbmNsdWRlICJmaWxlbmFtZXMuaCIKQEAgLTM4NSwx MCArMzg1LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYwog KwkgICYmIG1lbWNtcCAoeG5wLT5uYW1lLCAiR05VIiwgc2l6ZW9mICJHTlUiKSA9PSAwKQogKwl7 CiArCSAgc2l6ZV90IHNpemUgPSBkZXNjc3o7Ci0rCSAgZ2RiX2J5dGUgKmRhdGEgPSAodm9pZCAq KSBkZXNjZGF0YTsKKysJICBnZGJfYnl0ZSAqZGF0YSA9IChnZGJfYnl0ZSAqKSBkZXNjZGF0YTsK ICsJICBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpyZXR2YWw7CiArCi0rCSAgcmV0dmFsID0geG1hbGxv YyAoc2l6ZW9mICpyZXR2YWwgLSAxICsgc2l6ZSk7CisrCSAgcmV0dmFsID0gKHN0cnVjdCBiZmRf YnVpbGRfaWQgKikgeG1hbGxvYyAoc2l6ZW9mICpyZXR2YWwgLSAxICsgc2l6ZSk7CiArCSAgcmV0 dmFsLT5zaXplID0gc2l6ZTsKICsJICBtZW1jcHkgKHJldHZhbC0+ZGF0YSwgZGF0YSwgc2l6ZSk7 CiArCkBAIC00MjksNyArNDI5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9i dWlsZC1pZC5jCiArCWdkYl9ieXRlICpidWY7CiArCWludCBlcnI7CiArCi0rCWJ1ZiA9IHhtYWxs b2MgKGhkci0+cF9maWxlc3opOworKwlidWYgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAoaGRyLT5w X2ZpbGVzeik7CiArCWVyciA9IHRhcmdldF9yZWFkX21lbW9yeSAobG9hZGJhc2UgKyBpX3BoZHJb aV0ucF92YWRkciwgYnVmLAogKwkJCQkgIGhkci0+cF9maWxlc3opOwogKwlpZiAoZXJyID09IDAp CkBAIC02MzMsOCArNjMzLDggQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWls ZC1pZC5jCiArICB4X3BoZHJzX3NpemUgPSAoYmZkX2dldF9hcmNoX3NpemUgKHRlbXBsKSA9PSA2 NCA/IHNpemVvZiAoRWxmNjRfRXh0ZXJuYWxfUGhkcikKICsJCQkJCQk6IHNpemVvZiAoRWxmMzJf RXh0ZXJuYWxfUGhkcikpOwogKwotKyAgaV9waGRycyA9IHhtYWxsb2MgKGlfZWhkci5lX3BobnVt ICogKHNpemVvZiAqaV9waGRycyArIHhfcGhkcnNfc2l6ZSkpOwotKyAgeF9waGRyc19wdHIgPSAo dm9pZCAqKSAmaV9waGRyc1tpX2VoZHIuZV9waG51bV07CisrICBpX3BoZHJzID0gKEVsZl9JbnRl cm5hbF9QaGRyICopIHhtYWxsb2MgKGlfZWhkci5lX3BobnVtICogKHNpemVvZiAqaV9waGRycyAr IHhfcGhkcnNfc2l6ZSkpOworKyAgeF9waGRyc19wdHIgPSAoZ2RiX2J5dGUgKikgJmlfcGhkcnNb aV9laGRyLmVfcGhudW1dOwogKyAgZXJyID0gdGFyZ2V0X3JlYWRfbWVtb3J5IChlaGRyX3ZtYSAr IGlfZWhkci5lX3Bob2ZmLCAoYmZkX2J5dGUgKikgeF9waGRyc19wdHIsCiArCQkJICAgIGlfZWhk ci5lX3BobnVtICogeF9waGRyc19zaXplKTsKICsgIGlmIChlcnIpCkBAIC03MDAsNyArNzAwLDcg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArICAgIHsKICsg ICAgICBzdHJ1Y3QgYnVpbGRfaWRfYWRkcl9zZWN0ICpjYW5kaWRhdGU7CiArCi0rICAgICAgY2Fu ZGlkYXRlID0geG1hbGxvYyAoc2l6ZW9mICpjYW5kaWRhdGUpOworKyAgICAgIGNhbmRpZGF0ZSA9 IChzdHJ1Y3QgYnVpbGRfaWRfYWRkcl9zZWN0ICopIHhtYWxsb2MgKHNpemVvZiAqY2FuZGlkYXRl KTsKICsgICAgICBjYW5kaWRhdGUtPm5leHQgPSBidWlsZF9pZF9hZGRyX3NlY3Q7CiArICAgICAg YnVpbGRfaWRfYWRkcl9zZWN0ID0gY2FuZGlkYXRlOwogKyAgICAgIGNhbmRpZGF0ZS0+c2VjdCA9 IHNlY3Q7CkBAIC04MjUsNyArODI1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9idWlsZC1pZC5jCiAtCSAgICAgICArIChzaXplb2YgIi8uYnVpbGQtaWQvIiAtIDEpICsgMQog LQkgICAgICAgKyAyICogYnVpbGRfaWRfbGVuICsgKHNpemVvZiAiLmRlYnVnIiAtIDEpICsgMSk7 CiAtICBsaW5rID0gKGNoYXIgKikgYWxsb2NhIChhbGxvY19sZW4pOwotKyAgbGluayA9IHhtYWxs b2MgKHN0cmxlbiAoZGVidWdfZmlsZV9kaXJlY3RvcnkpICsgMiAqIGJ1aWxkX2lkX2xlbiArIDUw KTsKKysgIGxpbmsgPSAoY2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0 b3J5KSArIDIgKiBidWlsZF9pZF9sZW4gKyA1MCk7CiAgCiAgICAvKiBLZWVwIGJhY2t3YXJkIGNv bXBhdGliaWxpdHkgc28gdGhhdCBERUJVR19GSUxFX0RJUkVDVE9SWSBiZWluZyAiIiB3aWxsCiAg ICAgICBjYXVzZSAiLy5idWlsZC1pZC8uLi4iIGxvb2t1cHMuICAqLwpAQCAtOTM3LDggKzkzNyw4 IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYwogKwl7CiArCSAg c2l6ZV90IGxlbl9vcmlnID0gc3RybGVuIChsaW5rX2FsbCk7CiArCi0rCSAgbGlua19hbGwgPSB4 cmVhbGxvYyAobGlua19hbGwsCi0rCQkJICAgICAgIGxlbl9vcmlnICsgMSArIHN0cmxlbiAobGlu azBfcmVzb2x2ZWQpICsgMSk7CisrCSAgbGlua19hbGwgPSAoY2hhciAqKSB4cmVhbGxvYyAobGlu a19hbGwsCisrCQkJCQlsZW5fb3JpZyArIDEgKyBzdHJsZW4gKGxpbmswX3Jlc29sdmVkKSArIDEp OwogKwogKwkgIC8qIFVzZSB3aGl0ZXNwYWNlIGluc3RlYWQgb2YgRElSTkFNRV9TRVBBUkFUT1Ig dG8gYmUgY29tcGF0aWJsZSB3aXRoCiArCSAgICAgaXRzIHBvc3NpYmxlIHVzZSBhcyBhbiBhcmd1 bWVudCBmb3IgaW5zdGFsbGF0aW9uIGNvbW1hbmQuICAqLwpAQCAtMTA5NSw5ICsxMDk1LDkgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArICBpZiAoKnNsb3Qg IT0gTlVMTCkKICsgICAgcmV0dXJuOwogKwotKyAgbWlzc2luZ19maWxlcGFpciA9IG9ic3RhY2tf YWxsb2MgKCZtaXNzaW5nX2ZpbGVwYWlyX29ic3RhY2ssCi0rCQkJCSAgICAgIHNpemVvZiAoKm1p c3NpbmdfZmlsZXBhaXIpIC0gMQotKwkJCQkgICAgICArIGJpbmFyeV9sZW4wICsgZGVidWdfbGVu MCk7CisrICBtaXNzaW5nX2ZpbGVwYWlyID0gKHN0cnVjdCBtaXNzaW5nX2ZpbGVwYWlyICopIG9i c3RhY2tfYWxsb2MgKCZtaXNzaW5nX2ZpbGVwYWlyX29ic3RhY2ssCisrCQkJCQkJCQlzaXplb2Yg KCptaXNzaW5nX2ZpbGVwYWlyKSAtIDEKKysJCQkJCQkJCSsgYmluYXJ5X2xlbjAgKyBkZWJ1Z19s ZW4wKTsKICsgIG1pc3NpbmdfZmlsZXBhaXItPmJpbmFyeSA9IG1pc3NpbmdfZmlsZXBhaXItPmRh dGE7CiArICBtZW1jcHkgKG1pc3NpbmdfZmlsZXBhaXItPmJpbmFyeSwgYmluYXJ5LCBiaW5hcnlf bGVuMCk7CiArICBpZiAoZGVidWcgIT0gTlVMTCkKQEAgLTExNjYsMTAgKzExNjYsMTAgQEAgSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArCiArICBvYnNlcnZlcl9h dHRhY2hfZXhlY3V0YWJsZV9jaGFuZ2VkIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQp OwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuaAorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE2LTAyLTE1IDIzOjI1OjAw Ljg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5o CTIwMTYtMDItMTUgMjM6MjY6MDYuMzY4ODExMzQ1ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA2MzAub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5oCTIwMTYtMDctMDMg MTQ6MzQ6MzIuMDM1NzUzNjk0ICswMjAwCiBAQCAtMjAsOSArMjAsMTAgQEAKICAjaWZuZGVmIEJV SUxEX0lEX0gKICAjZGVmaW5lIEJVSUxEX0lEX0gKQEAgLTEyMDQsMTEgKzEyMDQsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5oCiArCQkJCQkgICAgICAgY2hh ciAqKmJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybik7CiAgCiAgI2VuZGlmIC8qIEJVSUxEX0lEX0gg Ki8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZHdhcmYycmVhZC5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTAyLTE1IDIzOjI1 OjM2LjQ2MTU5OTAwMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9kd2FyZjJy ZWFkLmMJMjAxNi0wMi0xNSAyMzoyNjowNi4zNzM4MTEzODAgKzAxMDAKLUBAIC0yNTE2LDcgKzI1 MTYsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwky MDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wNy0wMyAxNDozNDozMi4wNDA3NTM3MzYgKzAyMDAK K0BAIC0yNTM1LDcgKzI1MzUsNyBAQAogICAgICB9CiAgCiAgICBpZiAoZHd6X2JmZCA9PSBOVUxM KQpAQCAtMTIxNywxMSArMTIxNywxMSBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L2R3YXJmMnJlYWQuYwogIAogICAgaWYgKGR3el9iZmQgPT0gTlVMTCkKICAgICAgZXJyb3IgKF8o ImNvdWxkIG5vdCBmaW5kICcuZ251X2RlYnVnYWx0bGluaycgZmlsZSBmb3IgJXMiKSwKLUluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHktb2JqZmlsZS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE2 LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYtMDItMTUgMjM6MjY6MDYuMzczODExMzgwICsw MTAwCi1AQCAtMTM5LDcgKzEzOSw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9n ZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYt MDctMDMgMTQ6MzQ6MzIuMDQwNzUzNzM2ICswMjAwCitAQCAtMTM2LDcgKzEzNiw3IEBACiAgCiAg ICBUUlkKICAgICAgewpAQCAtMTIzMCw3ICsxMjMwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi9weXRob24vcHktb2JqZmlsZS5jCiAgICAgIH0KICAgIENBVENIIChleGNlcHQs IFJFVFVSTl9NQVNLX0FMTCkKICAgICAgewotQEAgLTU0OCw3ICs1NDgsNyBAQAorQEAgLTU0Nyw3 ICs1NDcsNyBAQAogICAgICAgIC8qIERvbid0IHJldHVybiBzZXBhcmF0ZSBkZWJ1ZyBmaWxlcy4g ICovCiAgICAgICAgaWYgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsg IT0gTlVMTCkKICAJY29udGludWU7CkBAIC0xMjM5LDExICsxMjM5LDExIEBAIEluZGV4OiBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwogICAgICAgIGlmIChvYmZk X2J1aWxkX2lkID09IE5VTEwpCiAgCWNvbnRpbnVlOwogICAgICAgIGlmIChvYmpmcHlfYnVpbGRf aWRfbWF0Y2hlcyAob2JmZF9idWlsZF9pZCwgYnVpbGRfaWQpKQotSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9jb2ZmcmVhZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2NvZmZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dk Yi9jb2ZmcmVhZC5jCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvZmZyZWFkLmMJMjAxNi0wMi0xNSAyMzoyNjowNi4zNzQ4 MTEzODcgKzAxMDAKLUBAIC03MzksNyArNzM5LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYz MC5vcmlnL2dkYi9jb2ZmcmVhZC5jCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvZmZyZWFkLmMJMjAxNi0wNy0wMyAxNDoz NDozMi4wNDE3NTM3NDUgKzAyMDAKK0BAIC03MzcsNyArNzM3LDcgQEAKICAgICAgewogICAgICAg IGNoYXIgKmRlYnVnZmlsZTsKICAKCmRpZmYgLS1naXQgYS9nZGItNi44LWF0dGFjaC1zaWduYWxs ZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2ggYi9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNo LXN0b3BwZWQucGF0Y2gKaW5kZXggYTBjNDcyYi4uNDRiODMxMSAxMDA2NDQKLS0tIGEvZ2RiLTYu OC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoCisrKyBiL2dkYi02LjgtYXR0 YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaApAQCAtMSw3ICsxLDggQEAKLWRpZmYg LWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2luZnJ1bi5jIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9pbmZydW4uYwotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcv Z2RiL2luZnJ1bi5jCTIwMTYtMDEtMDkgMTU6MDU6MDYuMTI3NDgxNzU4ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2luZnJ1bi5jCTIwMTYtMDEtMDkgMTU6MDU6MjQuMDU0NTkz MDQ4ICswMTAwCi1AQCAtNjI2LDYgKzYyNiwxMyBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVk LiAgVHJ5IFwic2V0IGRlCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2luZnJ1bi5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaW5mcnVuLmMJ MjAxNi0wNy0xNiAxNDozNzowOS4zMTcxNzgxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvaW5mcnVuLmMJMjAxNi0wNy0xNiAxNDozNzoxMC42MzYxODg3NjUgKzAyMDAKK0BA IC02MjAsNiArNjIwLDEzIEBACiAgCQkJCXRhcmdldF9waWRfdG9fc3RyIChwcm9jZXNzX3B0aWQp KTsKICAJICAgIH0KICAKQEAgLTE1LDEwICsxNiwxMSBAQCBkaWZmIC1kdXAgLXJ1cCBnZGItNy4x MC41MC4yMDE2MDEwNi1vcmlnL2dkYi9pbmZydW4uYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv aQogIAkgIHRhcmdldF9kZXRhY2ggKE5VTEwsIDApOwogIAl9CiAgCi1kaWZmIC1kdXAgLXJ1cCBn ZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvbGludXgtbmF0LmMKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9s aW51eC1uYXQuYwkyMDE2LTAxLTA5IDE1OjA1OjA2LjIyNTQ4MjM2NiArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9saW51eC1uYXQuYwkyMDE2LTAxLTA5IDE1OjA1OjI0LjA1MDU5 MzAyMyArMDEwMAotQEAgLTE5NCw2ICsxOTQsMTEgQEAgZW51bSB0cmlib29sIGhhdmVfcHRyYWNl X2dldHJlZ3NldCA9IFRSSQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9saW51eC1u YXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2xpbnV4 LW5hdC5jCTIwMTYtMDctMTYgMTQ6Mzc6MDkuMzIwMTc4MTc0ICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6Mzg6MDkuNTc0NjYzMDk0 ICswMjAwCitAQCAtMTk0LDYgKzE5NCwxMSBAQAogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyAq bGludXhfb3BzOwogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyBsaW51eF9vcHNfc2F2ZWQ7CiAg CkBAIC0zMCw3ICszMiw3IEBAIGRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9y aWcvZ2RiL2xpbnV4LW5hdC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkCiAgLyogVGhlIG1ldGhv ZCB0byBjYWxsLCBpZiBhbnksIHdoZW4gYSBuZXcgdGhyZWFkIGlzIGF0dGFjaGVkLiAgKi8KICBz dGF0aWMgdm9pZCAoKmxpbnV4X25hdF9uZXdfdGhyZWFkKSAoc3RydWN0IGx3cF9pbmZvICopOwog IAotQEAgLTk2MSw2ICs5NjYsOSBAQCBsaW51eF9uYXRfcG9zdF9hdHRhY2hfd2FpdCAocHRpZF90 IHB0aWQsCitAQCAtMTA0Nyw2ICsxMDUyLDkgQEAKICAgICAgICBpZiAoZGVidWdfbGludXhfbmF0 KQogIAlmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAgCQkJICAgICJMTlBBVzogQXR0 YWNoaW5nIHRvIGEgc3RvcHBlZCBwcm9jZXNzXG4iKTsKQEAgLTQwLDggKzQyLDggQEAgZGlmZiAt ZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2QKICAKICAgICAgICAvKiBUaGUgcHJvY2VzcyBpcyBkZWZpbml0ZWx5 IHN0b3BwZWQuICBJdCBpcyBpbiBhIGpvYiBjb250cm9sCiAgCSBzdG9wLCB1bmxlc3MgdGhlIGtl cm5lbCBwcmVkYXRlcyB0aGUgVEFTS19TVE9QUEVEIC8KLUBAIC0xMzAzLDYgKzEzMTEsMjUgQEAg Z2V0X3BlbmRpbmdfc3RhdHVzIChzdHJ1Y3QgbHdwX2luZm8gKmxwLAotIAkJCSAgICBnZGJfc2ln bmFsX3RvX3N0cmluZyAoc2lnbm8pKTsKK0BAIC0xNDA0LDYgKzE0MTIsMjUgQEAKKyAgICAgICBy ZXR1cm4gZ2RiX3NpZ25hbF90b19ob3N0IChzaWdubyk7CiAgICAgIH0KICAKICsjaWZkZWYgTkVF RF9ERVRBQ0hfU0lHU1RPUApAQCAtNjYsMTggKzY4LDE4IEBAIGRpZmYgLWR1cCAtcnVwIGdkYi03 LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2xpbnV4LW5hdC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkCiAgICByZXR1cm4gMDsKICB9CiAgCi1AQCAtMTQxNiw2ICsxNDQzLDEwIEBAIGxpbnV4X25h dF9kZXRhY2ggKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKLSAgICAgfQotICAgZWxzZQotICAgICBs aW51eF9vcHMtPnRvX2RldGFjaCAob3BzLCBhcmdzLCBmcm9tX3R0eSk7Ci0rI2lmZGVmIE5FRURf REVUQUNIX1NJR1NUT1AKK0BAIC0xNTYyLDYgKzE1ODksMTAgQEAKKyAgICAgICBkZXRhY2hfb25l X2x3cCAobWFpbl9sd3AsICZzaWdubyk7CisgCisgICAgICAgaW5mX3B0cmFjZV9kZXRhY2hfc3Vj Y2VzcyAob3BzKTsKICsKLSsgIHBpZF93YXNfc3RvcHBlZCA9IDA7CisrI2lmZGVmIE5FRURfREVU QUNIX1NJR1NUT1AKKysgICAgICBwaWRfd2FzX3N0b3BwZWQgPSAwOwogKyNlbmRpZgorICAgICB9 CisgICBkZWxldGVfbHdwIChtYWluX2x3cC0+cHRpZCk7CiAgfQotIAotIC8qIFJlc3VtZSBleGVj dXRpb24gb2YgdGhlIGluZmVyaW9yIHByb2Nlc3MuICBJZiBTVEVQIGlzIG5vbnplcm8sCi1AQCAt MTY3NCw2ICsxNzA1LDE2IEBAIGxpbnV4X25hdF9yZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpv cHMKK0BAIC0xODIzLDYgKzE4NTQsMTYgQEAKICAgICAgICByZXR1cm47CiAgICAgIH0KICAKQEAg LTk0LDcgKzk2LDcgQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9n ZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICAgIGlmIChyZXN1bWVfbWFu eSkKICAgICAgaXRlcmF0ZV9vdmVyX2x3cHMgKHB0aWQsIGxpbnV4X25hdF9yZXN1bWVfY2FsbGJh Y2ssIGxwKTsKICAKLUBAIC0zNjE4LDYgKzM2NTksMTAgQEAgbGludXhfbmF0X21vdXJuX2luZmVy aW9yIChzdHJ1Y3QgdGFyZ2V0XworQEAgLTM4MTksNiArMzg2MCwxMCBAQAogIAogICAgLyogTGV0 IHRoZSBhcmNoLXNwZWNpZmljIG5hdGl2ZSBjb2RlIGtub3cgdGhpcyBwcm9jZXNzIGlzIGdvbmUu ICAqLwogICAgbGludXhfbmF0X2ZvcmdldF9wcm9jZXNzIChwaWQpOwpAQCAtMTA1LDEwICsxMDcs MTEgQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgt bmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICB9CiAgCiAgLyogQ29udmVydCBhIG5hdGl2 ZS9ob3N0IHNpZ2luZm8gb2JqZWN0LCBpbnRvL2Zyb20gdGhlIHNpZ2luZm8gaW4gdGhlCi1kaWZm IC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3Vp dGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAx MDYtb3JpZy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE2 LTAxLTA2IDAyOjQ4OjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTYtMDEtMDkg MTU6MDU6NDguOTE3NzQ3MTAxICswMTAwCi1AQCAtNTYsNyArNTYsNjUgQEAgcHJvYyBjb3JlZnVu YyB7IHRocmVhZHR5cGUgfSB7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0 b3BwZWQuZXhwCTIwMTYtMDctMTYgMTQ6Mzc6MDkuMzIxMTc4MTgyICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5l eHAJMjAxNi0wNy0xNiAxNDozNzoxMC42NDAxODg3OTcgKzAyMDAKK0BAIC01Niw3ICs1Niw2NSBA QAogICAgICBnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKICAgICAgZ2RiX2xv YWQgJHtiaW5maWxlfQogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMu cGF0Y2ggYi9nZGItNi44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoCmluZGV4IDQ3ZTFjNjQuLjU1 ZTcxNGUgMTAwNjQ0Ci0tLSBhL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gKKysrIGIv Z2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRjaApAQCAtNSwzOCArNSw0MiBAQCBTb21lIG9m IHRoZSB0aHJlYWRzIG1heSBub3QgYmUgcHJvcGVybHkgUFRSQUNFX0RFVEFDSGVkIHdoaWNoIGh1 cnRzIGlmIHRoZXkKIHNob3VsZCBoYXZlIGJlZW4gZGV0YWNoZWQgd2l0aCBTSUdTVE9QIChhcyB0 aGV5IGFyZSBhY2NpZGVudGFsbHkgbGVmdCBydW5uaW5nCiBvbiB0aGUgZGVidWdnZXIgdGVybWlu YXRpb24pLgogCi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9k ZWZzLmggZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2RlZnMuaAotLS0tIGdkYi03LjEwLjUwLjIw MTYwMTA2LW9yaWcvZ2RiL2RlZnMuaAkyMDE2LTAxLTA5IDE1OjA2OjU3LjY1ODE3Mjg3NSArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kZWZzLmgJMjAxNi0wMS0wOSAxNTowNzox Mi40MzEyNjQzNzggKzAxMDAKLUBAIC0xNDUsNiArMTQ1LDkgQEAgZXh0ZXJuIHZvaWQgc2V0X3F1 aXRfZmxhZyAodm9pZCk7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RlZnMuaAor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RlZnMuaAkyMDE2 LTA3LTAzIDE2OjQwOjQzLjQyMzA3ODkyNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9kZWZzLmgJMjAxNi0wNy0wMyAxNjo0MTowOC41NjgyNzE3NDEgKzAyMDAKK0BAIC0xNzUs NiArMTc1LDEwIEBACiAgLyogRmxhZyB0aGF0IGZ1bmN0aW9uIHF1aXQgc2hvdWxkIGNhbGwgcXVp dF9mb3JjZS4gICovCiAgZXh0ZXJuIHZvbGF0aWxlIGludCBzeW5jX3F1aXRfZm9yY2VfcnVuOwog IAogKyNpZmRlZiBORUVEX0RFVEFDSF9TSUdTVE9QCiArZXh0ZXJuIGludCBxdWl0X2ZsYWdfY2xl YW51cDsKICsjZW5kaWYKLSBleHRlcm4gaW50IGltbWVkaWF0ZV9xdWl0OwotIAorKwogIGV4dGVy biB2b2lkIHF1aXQgKHZvaWQpOwotZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYt b3JpZy9nZGIvZXh0ZW5zaW9uLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V4dGVuc2lvbi5j Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvZXh0ZW5zaW9uLmMJMjAxNi0wMS0w NiAwMjo0ODozNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv ZXh0ZW5zaW9uLmMJMjAxNi0wMS0wOSAxNTowNzoxMi40MzQyNjQzOTYgKzAxMDAKLUBAIC04MzMs NiArODMzLDExIEBAIGNoZWNrX3F1aXRfZmxhZyAodm9pZCkKKyAKKyAvKiBIZWxwZXIgZm9yIHRo ZSBRVUlUIG1hY3JvLiAgKi8KK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZXh0ZW5z aW9uLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9leHRl bnNpb24uYwkyMDE2LTA3LTAzIDE2OjQwOjQxLjcyMzA2NTg5MCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi9leHRlbnNpb24uYwkyMDE2LTA3LTAzIDE2OjQxOjQ0Ljg5NjU1MDMw OSArMDIwMAorQEAgLTgzMCw2ICs4MzAsMTEgQEAKICAgIGludCBpLCByZXN1bHQgPSAwOwogICAg Y29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRsYW5nOwogIAogKyNpZmRl ZiBORUVEX0RFVEFDSF9TSUdTVE9QCiArICBpZiAocXVpdF9mbGFnX2NsZWFudXApCiArICAgIHJl dHVybiAwOwotKwogKyNlbmRpZgorKwogICAgQUxMX0VOQUJMRURfRVhURU5TSU9OX0xBTkdVQUdF UyAoaSwgZXh0bGFuZykKICAgICAgewogICAgICAgIGlmIChleHRsYW5nLT5vcHMtPmNoZWNrX3F1 aXRfZmxhZyAhPSBOVUxMKQotZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3Jp Zy9nZGIvdG9wLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RvcC5jCi0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMJMjAxNi0wMS0wNiAwMjo0ODozOC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdG9wLmMJMjAxNi0wMS0wOSAxNTow NzoxMi40MzIyNjQzODQgKzAxMDAKLUBAIC0xNTU3LDcgKzE1NTcsMTMgQEAgcXVpdF9mb3JjZSAo Y2hhciAqYXJncywgaW50IGZyb21fdHR5KQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi90b3AuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rv cC5jCTIwMTYtMDctMDMgMTY6NDA6NDEuNzI0MDY1ODk4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL3RvcC5jCTIwMTYtMDctMDMgMTY6NDA6NDMuNDI0MDc4OTM0ICswMjAwCitA QCAtMTYxNyw3ICsxNjE3LDEzIEBACiAgICBxdC5hcmdzID0gYXJnczsKICAgIHF0LmZyb21fdHR5 ID0gZnJvbV90dHk7CiAgCkBAIC01MCwyMCArNTQsMjEgQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcu MTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rv cC4KICAKICAgIC8qIEdldCBvdXQgb2YgdGZpbmQgbW9kZSwgYW5kIGtpbGwgb3IgZGV0YWNoIGFs bCBpbmZlcmlvcnMuICAqLwogICAgVFJZCi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2 MDEwNi1vcmlnL2dkYi91dGlscy5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi91dGlscy5jCi0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdXRpbHMuYwkyMDE2LTAxLTA5IDE1OjA2 OjU3LjY1NDE3Mjg1MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi91dGlscy5j CTIwMTYtMDEtMDkgMTU6MDc6MTIuNDMzMjY0MzkwICswMTAwCi1AQCAtMTIyLDYgKzEyMiwxMyBA QCBpbnQgam9iX2NvbnRyb2w7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3V0aWxz LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi91dGlscy5j CTIwMTYtMDctMDMgMTY6NDA6NDEuNzI1MDY1OTA1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3V0aWxzLmMJMjAxNi0wNy0wMyAxNjo0MTozOC45NjE1MDQ3OTkgKzAyMDAKK0BA IC0xMDksNiArMTA5LDEzIEBACiAgCi0gaW50IGltbWVkaWF0ZV9xdWl0OworIGludCBqb2JfY29u dHJvbDsKICAKICsjaWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUAogKy8qIE5vbnplcm8gbWVhbnMg d2UgYXJlIGFscmVhZHkgcHJvY2Vzc2luZyB0aGUgcXVpdHRpbmcgY2xlYW51cHMgYW5kIHdlIHNo b3VsZAogKyAgIG5vIGxvbmdlciBnZXQgYWJvcnRlZC4gICovCiArCiAraW50IHF1aXRfZmxhZ19j bGVhbnVwOwotKwogKyNlbmRpZgorKwogIC8qIE5vbnplcm8gbWVhbnMgdGhhdCBzdHJpbmdzIHdp dGggY2hhcmFjdGVyIHZhbHVlcyA+MHg3RiBzaG91bGQgYmUgcHJpbnRlZAogICAgIGFzIG9jdGFs IGVzY2FwZXMuICBaZXJvIG1lYW5zIGp1c3QgcHJpbnQgdGhlIHZhbHVlIChlLmcuIGl0J3MgYW4K ICAgICBpbnRlcm5hdGlvbmFsIGNoYXJhY3RlciwgYW5kIHRoZSB0ZXJtaW5hbCBvciB3aW5kb3cg Y2FuIGNvcGUuKSAgKi8KCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaCBi L2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCmluZGV4IGZhNjAzODAuLjdmN2UxODQgMTAwNjQ0 Ci0tLSBhL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCisrKyBiL2dkYi1hcmNoZXItdmxhLXRl c3RzLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9w YWNrZWRfYXJyYXkuZXhwCTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5OTcyICswMTAwCi0rKysg Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5l eHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yODk5OTk4NDYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIwMTYt MDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wNy0xNiAxNjo1Mzoz My43MzYxNzI4ODkgKzAyMDAKIEBAIC01Niw1ICs1NiwxMSBAQAogICAgICAgICAgIyBhcmUuICBP YnNlcnZlZCB3aXRoIChGU0YgR05VIEFkYSA0LjUuMyAyMDExMDEyNCkuCiAgICAgICAgICB4ZmFp bCAkdGVzdApAQCAtMTQsMTAgKzE0LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAogKyAgICB9CiAgfQogIAotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZs YS10eXBlZGVmLWZvby5TCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28u UwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MDk5OTg1MyArMDEwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCTIw MTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDQ1NSBAQAogKwku ZmlsZQkieDg2XzY0LXZsYS10eXBlZGVmLmMiCiArCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIs QHByb2diaXRzCkBAIC00NzQsMTAgKzQ3NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKICsJLnN0 cmluZwkiR05VIEMgNC4zLjIgMjAwODExMDUgKFJlZCBIYXQgNC4zLjItNykiCiArCS5pZGVudAki R0NDOiAoR05VKSA0LjMuMiAyMDA4MTEwNSAoUmVkIEhhdCA0LjMuMi03KSIKICsJLnNlY3Rpb24J Lm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRl Zi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC94ODZfNjQtdmxhLXR5cGVkZWYuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MDk5OTg1MyArMDEw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0 LXZsYS10eXBlZGVmLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC0w LDAgKzEsNDUgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRl YnVnZ2VyLgogKwpAQCAtNTI0LDEwICs1MjQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKICt9CiArCiAr I2VuZGlmCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVk ZWYuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkwOTk5ODUzICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhw CTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDY0IEBACiAr IyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTU5 MywxMCArNTkzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKICtnZGJfdGVzdCAid2hhdGlzIGFycmF5 IiAidHlwZSA9IGFycmF5X3QiICJzZWNvbmQ6IHdoYXRpcyBhcnJheSIKICsKICtnZGJfdGVzdCAi cHR5cGUgYXJyYXkiICJ0eXBlID0gY2hhciBcXFxbNzhcXFxdIiAic2Vjb25kOiBwdHlwZSBhcnJh eSIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fy cmF5aWR4LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FycmF5aWR4LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwkyMDE2LTAyLTE1IDIzOjMzOjI5Ljgz MDk1OTk3MiArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXJyYXlpZHguYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MDk5OTg1MyArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlk eC5jCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDctMTYgMTY6 NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMTcsNiArMTcsMTMgQEAKICAKICBpbnQgYXJyYXlb XSA9IHsxLCAyLCAzLCA0fTsKQEAgLTYxMSwxMCArNjExLDEwIEBAIEluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMKICBpbnQKICBtYWlu ICh2b2lkKQogIHsKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2FycmF5aWR4LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAu MjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDE2LTAy LTE1IDIzOjMzOjI5LjgzMDk1OTk3MiArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkx OTk5ODYwICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDE2LTA3LTE2IDAzOjQ4OjU5LjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlp ZHguZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtNDksNCArNDks MTIgQEAKICAgICAgICAgICAiXFx7XFxcWzBcXFxdID0gMSwgXFxcWzFcXFxdID0gMiwgXFxcWzJc XFxdID0gMywgXFxcWzNcXFxdID0gNFxcfSIgXAogICAgICAgICAgICJQcmludCBhcnJheSB3aXRo IGFycmF5LWluZGV4ZXMgb24iCkBAIC02MjksMTAgKzYyOSwxMCBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKICsJdW5zdXBw b3J0ZWQgIiR0ZXN0IChubyBHQ0MpIgogKyAgICB9CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3Mu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50 ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE2 LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE2 LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwyMCBAQAogKy8qIFRo aXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC02NTQs MTAgKzY1NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCiArc3RydWN0IHsKICsgIGludCBm aWVsZDsKICt9IHN0YXRpY3N0cnVjdCA9IHsgMSB9OwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhw CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRl cm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAky MDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhw CTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDI2IEBACiAr IyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTY4 NSwxMCArNjg1LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4CiArCiArZ2RiX3Rlc3Qge3Nl dCAkdmFyc3RydWN0ID0gc3RhdGljc3RydWN0fQogK2dkYl90ZXN0IHtwICR2YXJzdHJ1Y3QuZmll bGR9ICIgPSAxIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvdmxhLWZyYW1lLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5 MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvdmxhLWZyYW1lLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKIEBA IC0wLDAgKzEsMzEgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05V IGRlYnVnZ2VyLgogKwpAQCAtNzIxLDEwICs3MjEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKICsgIGYgKHMpOwogKyAg cmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmxhLWZyYW1lLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAkyMDE2LTAyLTE1IDIz OjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5 NyArMDIwMAogQEAgLTAsMCArMSwzOCBAQAogKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtNzY0LDEwICs3NjQsMTAgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAogK30K ICsKICtnZGJfdGVzdCAiYnQgZnVsbCIgIlxyXG4gK3MgPSBcIlhcXFxcMDAwXCJcclxuLioiCi1J bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3Zl cmZsb3cuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLW92ZXJmbG93LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5 ODYwICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtb3ZlcmZsb3cuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAg LTAsMCArMSwzMCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUg ZGVidWdnZXIuCiArCkBAIC03OTksMTAgKzc5OSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwogKwogKyAgcmV0dXJu IDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLW92ZXJmbG93LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAkyMDE2LTAyLTE1 IDIzOjM1OjU2LjI5Mjk5OTg2NyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjcz NzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwxMDkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtOTEzLDEwICs5MTMsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93 LmV4cAogK2dkYl90ZXN0ICJidCIgImluIFxbXiBcXSphYm9ydCBcXCguKiBpbiBtYWluIFxcKC4q IiAiQmFja3RyYWNlIGFmdGVyIGFib3J0KCkiCiArCiArdmVyYm9zZSAtbG9nICJrYl9mb3VuZCBp biBidCBhZnRlciBhYm9ydCgpID0gW2V4cHIgW21lbW9yeV92X3BhZ2VzX2dldF0gKiAkcGFnZXNp emUgLyAxMDI0XSIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ZsYS5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS92bGEuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvdmxhLmMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCTIwMTYt MDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDU1IEBACiArLyogVGhp cyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTk3Mywx MCArOTczLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ZsYS5jCiArICBmb28gKDc4KTsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAJ MjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43 MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsNjIgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTA0MCwxMCArMTA0MCwxMCBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCiAr Z2RiX3Rlc3QgInAgdGVtcDEiICIgPSAnMScgPHJlcGVhdHMgNzggdGltZXM+IiAic2Vjb25kOiBw cmludCB0ZW1wMSIKICtnZGJfdGVzdCAicCB0ZW1wMiIgIiA9ICcyJyA8cmVwZWF0cyA3OCB0aW1l cz4iICJzZWNvbmQ6IHByaW50IHRlbXAyIgogK2dkYl90ZXN0ICJwIHRlbXAzIiAiID0gJzMnIDxy ZXBlYXRzIDQ4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDMiCi1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LWJvdW5kLWxvY2xpc3QuUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCTIwMTYtMDItMTUgMjM6MzU6NTYu MjkyOTk5ODY3ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5 MDYgKzAyMDAKIEBAIC0wLDAgKzEsMjQ2IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTEyOTEsMTAgKzEyOTEsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQt bG9jbGlzdC5TCiArCS5zdHJpbmcJCSJjaGFyIgogKy5MdWludF9zdHI6CiArCS5zdHJpbmcJCSJ1 bnNpZ25lZCBpbnQiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJv dW5kLWxvY2xpc3QuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkyOTk5ODY3ICswMTAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1s b2NsaXN0LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCAr MSw2NiBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiArCkBAIC0xMzYyLDEwICsxMzYyLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCiArCiArIyBUaGUg cmVnaXN0ZXIgY29udGFpbnMgdW5wcmVkaWN0YWJsZSB2YWx1ZSAtIHRoZSBhcnJheSBzaXplLgog K2dkYl90ZXN0ICJwdHlwZSByZWdfc3RyaW5nIiB7dHlwZSA9IGNoYXIgXFstP1swLTldK1xdfQot SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3RyaXBwZWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItc3RyaXBwZWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwkyMDE2LTAyLTE1IDIzOjM1OjU2 LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiAr MDIwMAogQEAgLTAsMCArMSw0MiBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIs IHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xNDA5LDEwICsxNDA5LDEwIEBAIEluZGV4OiBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMK ICsgIGZ1bmMxICgxLCAyKTsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBw ZWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTM5OTk4NzQgKzAx MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LXN0cmlwcGVkLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAs MCArMSw3OSBAQAogKyMgQ29weXJpZ2h0IDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArCkBAIC0xNDkzLDEwICsxNDkzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAogK2dkYl90ZXN0ICJz dGVwIiBcCiArICAgICAgICAgImZ1bmMuKiBcXCguKlxcKSBhdCAuKiIgXAogKyAgICAgICAgICJz dGVwIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1s b2NhdGlvbi5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uUwkyMDE2LTAyLTE1IDIz OjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMJMjAxNi0w Ny0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsODMgQEAKICsvKiBUaGlz IHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTU4MSwx MCArMTU4MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYQogKwogKwkuYnl0ZQkJMHgwCQkJ LyogVGVybWluYXRvciAqLwogKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLwotSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0 LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2 LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAkyMDE2LTA3LTE2 IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSwzNyBAQAogKyMgQ29weXJpZ2h0 IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNjIzLDEwICsxNjIz LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhCiArY2xlYW5fcmVzdGFydCAkYmluZmlsZQog KwogK2dkYl90ZXN0ICJwdHlwZSBzdHJ1Y3Qgc29tZV9zdHJ1Y3QiICJ0eXBlID0gc3RydWN0IHNv bWVfc3RydWN0IHtcW1xyXG4gXHRcXSp2b2lkIGZpZWxkO1xbXHJcbiBcdFxdKn0iCi1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5n ZS1uby10eXBlLlMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCTIw MTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMJMjAxNi0w Ny0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsMTIxIEBACiArLyogVGhp cyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE3NDks MTAgKzE3NDksMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCiArCS5ieXRlCQkweDAJCQkvKiBUZXJt aW5hdG9yICovCiArCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCi1JbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1u by10eXBlLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhw CTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAky MDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSwzOSBAQAogKyMg Q29weXJpZ2h0IDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNzkz LDEwICsxNzkzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCiArCiArZ2RiX3Rlc3QgInB0eXBl IG5vdHlwZV9zdHJpbmciIHt0eXBlID0gY2hhciBcWzEyOVxdfQogK2dkYl90ZXN0ICJwIG5vdHlw ZV9zdHJpbmciICIgPSAneCcgPHJlcGVhdHMgMTI5IHRpbWVzPiIKLUluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJm LXN0cmlkZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTQ5OTk4 ODEgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL2R3YXJmLXN0cmlkZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAK IEBAIC0wLDAgKzEsNDIgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKwpAQCAtMTg0MCwxMCArMTg0MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCiArZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImJyZWFrLWhlcmUiICIuKmJyZWFrLWhlcmUuKiIKICtn ZGJfdGVzdCAicCBjNDBwdCgxKSIgIiA9ICcwLWhlbGxvLioiCiArZ2RiX3Rlc3QgInAgYzQwcHQo MikiICIgPSAnMS1oZWxsby4qIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYt c3RyaWRlLmY5MAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NDk5OTg4MSArMDEwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5 MAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw0MCBAQAog KyEgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAt MTg4NSwxMCArMTg4NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCiArICBwcmludCAqLCBjNDBwdCAgISBi cmVhay1oZXJlCiArCiArZW5kIHByb2dyYW0gcmVwcm8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHlu YW1pYy5leHAJMjAxNi0wMi0xNSAyMzozNjozOS4zNTgzMDU2MzUgKzAxMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCTIwMTYt MDctMTYgMTc6MTk6MjQuMjU1MjAyMDEzICswMjAwCiBAQCAtMCwwICsxLDE1MSBAQAogKyMgQ29w eXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xOTM1LDcg KzE5MzUsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9keW5hbWljLmV4cAogK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJ2YXJ4LWluaXQiXQogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJ4LWluaXQiCiAr Z2RiX3Rlc3QgInAgdmFyeCIgIlxcJFxbMC05XF0qID0gPG5vdCBhbGxvY2F0ZWQ+IiAicCB2YXJ4 IHVuYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ4IiAidHlwZSA9IDxub3QgYWxsb2Nh dGVkPiIgInB0eXBlIHZhcnggdW5hbGxvY2F0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcngiIHt0 eXBlID0gcmVhbFwoa2luZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFyeCB1bmFsbG9jYXRlZCIK ICtnZGJfdGVzdCAicCB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVj dG9yIG5vdCBhbGxvY2F0ZWRcKX0gInAgdmFyeCgxLDUsMTcpIHVuYWxsb2NhdGVkIgogK2dkYl90 ZXN0ICJwIHZhcngoMSw1LDE3KT0xIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBu b3QgYWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KT0xIHVuYWxsb2NhdGVkIgogK2dkYl90ZXN0 ICJwdHlwZSB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5v dCBhbGxvY2F0ZWRcKX0gInB0eXBlIHZhcngoMSw1LDE3KSB1bmFsbG9jYXRlZCIKQEAgLTE5NTQs NyArMTk1NCw3IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX3Rlc3QgInAgdmFyeCgyLCA2LCAxOCkiICJcXCRc WzAtOVxdKiA9IDgiCiArZ2RiX3Rlc3QgInAgdmFyeCg2LCAxNSwgMjgpIiAiXFwkXFswLTlcXSog PSA5IgogK2dkYl90ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9IDxub3QgYXNzb2NpYXRlZD4i ICJwIHZhcnYgdW5hc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ2IiAidHlwZSA9IDxu b3QgYXNzb2NpYXRlZD4iICJwdHlwZSB2YXJ2IHVuYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5 cGUgdmFydiIge3R5cGUgPSByZWFsXChraW5kPTRcKSBcKDosOiw6XCl9ICJwdHlwZSB2YXJ2IHVu YXNzb2NpYXRlZCIKICsKICtzZXQgdGVzdCAib3V0cHV0IHZhcngiCiArZ2RiX3Rlc3RfbXVsdGlw bGUgJHRlc3QgJHRlc3QgewpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKICtnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAidmFydi1kZWFzc29jaWF0ZWQiCiArIyBUaGUgbGF0dGVyIG9u ZSBpcyBmb3IgdGhlIEludGVsIEZvcnRyYW4gQ29tcGlsZXIgMTAuMS4wMDggcG9pbnRlciB0eXBl LgogK2dkYl90ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9ICg8bm90IGFzc29jaWF0ZWQ+fC4q KENhbm5vdCBhY2Nlc3MgaXR8VW5hYmxlIHRvIGFjY2VzcyB0aGUgb2JqZWN0KSBiZWNhdXNlIHRo ZSBvYmplY3QgaXMgbm90IGFzc29jaWF0ZWQuKSIgInAgdmFydiBkZWFzc29jaWF0ZWQiCi0rZ2Ri X3Rlc3QgInB0eXBlIHZhcnYiICJ0eXBlID0gKDxub3QgYXNzb2NpYXRlZD58LiooQ2Fubm90IGFj Y2VzcyBpdHxVbmFibGUgdG8gYWNjZXNzIHRoZSBvYmplY3QpIGJlY2F1c2UgdGhlIG9iamVjdCBp cyBub3QgYXNzb2NpYXRlZC4pIiAicHR5cGUgdmFydiBkZWFzc29jaWF0ZWQiCisrZ2RiX3Rlc3Qg InB0eXBlIHZhcnYiIHt0eXBlID0gcmVhbFwoa2luZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFy diBkZWFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInAgbCIgIlxcJFxbMC05XF0qID0gXFwuRkFMU0Vc XC4iICJwIGwgaWYgdmFydiBkZWFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInAgdmFydigxLDUsMTcp IiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYXNzb2NpYXRlZFwpfQogK2dk Yl90ZXN0ICJwdHlwZSB2YXJ2KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVj dG9yIG5vdCBhc3NvY2lhdGVkXCl9CkBAIC0xOTkwLDcgKzE5OTAsNyBAQCBJbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJ4LWRlYWxsb2NhdGVkIl0KICtn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyeC1kZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAi cCB2YXJ4IiAiXFwkXFswLTlcXSogPSA8bm90IGFsbG9jYXRlZD4iICJwIHZhcnggZGVhbGxvY2F0 ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcngiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5 cGUgdmFyeCBkZWFsbG9jYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFyeCIge3R5cGUgPSByZWFs XChraW5kPTRcKSBcKDosOiw6XCl9ICJwdHlwZSB2YXJ4IGRlYWxsb2NhdGVkIgogK2dkYl90ZXN0 ICJwIGwiICJcXCRcWzAtOVxdKiA9IFxcLkZBTFNFXFwuIiAicCBsIGlmIHZhcnggZGVhbGxvY2F0 ZWQiCiArZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBc KHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KSBkZWFsbG9jYXRlZCIKICtn ZGJfdGVzdCAicHR5cGUgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZl Y3RvciBub3QgYWxsb2NhdGVkXCl9ICJwdHlwZSB2YXJ4KDEsNSwxNykgZGVhbGxvY2F0ZWQiCkBA IC0yMDQxLDEwICsyMDQxLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX3Rlc3QgInAgdmFydCgzLDgpIiAi XFwkXFswLTlcXSogPSA5IgogKyMgbWFwcyB0byBmb286OnZhcnkoMSwzKQogK2dkYl90ZXN0ICJw IHZhcnQoMiw5KSIgIlxcJFxbMC05XF0qID0gMTAiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAorSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFt aWMuZjkwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk0OTk5ODgxICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAkyMDE2LTA3 LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw5OCBAQAogKyEgQ29weXJp Z2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjE0NCwxMCAr MjE0NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9keW5hbWljLmY5MAogKyAgaWYgKHggKDEsIDEpIC5uZS4gOCAub3IuIHggKDIsIDIp IC5uZS4gOSAub3IuIHggKDEsIDIpIC5uZS4gNCkgY2FsbCBhYm9ydAogKyAgaWYgKHggKDMsIDEp IC5uZS4gMTApIGNhbGwgYWJvcnQKICtlbmQKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJ MjAxNi0wMi0xNSAyMzozNjozOS4zNTkzMDU2NDIgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJMjAxNi0wNy0xNiAxNjo1 MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsNTkgQEAKICsjIENvcHlyaWdodCAyMDA4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjIwOCwxMCArMjIwOCwxMCBA QCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9z dHJpbmcuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhci1maW5pc2giCiArZ2Ri X3Rlc3QgInAgZSIgIlxcJFxbMC05XF0qID0gJ2UgICAnIiAicCBlIHJlLXNldCIKICtnZGJfdGVz dCAicCBmIiAiXFwkXFswLTlcXSogPSBcXChcXCggJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2Yg ICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKCAnZjIgICcsICdmICAgJywgJ2YgICAn LCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICdcXCkgXFwoICdmICAgJywgJ2YgICAnLCAn ZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xcKSBcXCkiICJwICpmIHJlLXNl dCIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3N0cmluZy5mOTAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3N0cmluZy5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTU5 OTk4ODggKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3N0cmluZy5mOTAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBA IC0wLDAgKzEsMzcgQEAKICshIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKyEKQEAgLTIyNTAsMTAgKzIyNTAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAogKyAgaCA9ICdoJwog KyAgY2FsbCBmb28gKGcsIGgpCiArZW5kCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2Uu ZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAJMjAxNi0wNy0x NiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsNzIgQEAKICsjIENvcHlyaWdo dCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjMyNywxMCArMjMy NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9zdWJyYW5nZS5leHAKICtnZGJfdW5sb2FkCiArc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxh cmVncmVzc2lvbi85OTk5IgogK2dkYl90ZXN0IHtwICRhICgzLCAyOjIpfSB7ID0gXCgyM1wpfQot SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3Vi cmFuZ2UuZjkwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9zdWJyYW5nZS5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5 NTk5OTg4OCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vc3VicmFuZ2UuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAw CiBAQCAtMCwwICsxLDI4IEBACiArISBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICshCkBAIC0yMzYwLDEwICsyMzYwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAogKyAgcHRy ID0+IGEKICsgIHdyaXRlICgqLCopIGEgICAgICAgICAgICAgICAgICEgYnJlYWstc3RhdGljCiAr ZW5kCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWky LXZhci1zdGFsZS10eXBlLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCTIwMTYtMDIt MTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMJMjAxNi0wNy0xNiAxNjo1Mzoz My43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsMjYgQEAKICsvKiBDb3B5cmlnaHQgMjAxMSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIzOTEsMTAgKzIzOTEsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXIt c3RhbGUtdHlwZS5jCiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUt dHlwZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4 ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWky LXZhci1zdGFsZS10eXBlLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAog QEAgLTAsMCArMSw1NyBAQAogKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArIwpAQCAtMjQ1MywxMCArMjQ1MywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAogK21p X2NyZWF0ZV92YXJvYmogInZsYSIgInZsYSIgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSB2bGEiCiAr CiArbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiICJcXF5kb25lLGNoYW5nZWxpc3Q9LioiICIt dmFyLXVwZGF0ZSAqIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJh eS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NTk5OTg4OCArMDEw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1m cm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAog QEAgLTAsMCArMSwyMiBAQAogKy8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBk ZWJ1Z2dlci4KICsKQEAgLTI0ODAsMTAgKzI0ODAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwog K3sKICsgIHJldHVybiBhcnJbMF07CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2Fy cmF5LWZyb20tcmVnaXN0ZXIuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Njk5OTg5NSArMDEwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9t LXJlZ2lzdGVyLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAg KzEsMjggQEAKICsvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIu CiArCkBAIC0yNTEzLDEwICsyNTEzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5jCiArCiArICByZXR1cm4g MDsKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0 ZXIuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk2OTk5ODk1ICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhw CTIwMTYtMDctMTYgMTY6NTM6MzMuNzQwMTcyOTIyICswMjAwCiBAQCAtMCwwICsxLDMzIEBACiAr IyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0y NTUxLDEwICsyNTUxLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAKICsjIFNlZW4gcmVncmVzc2lvbjoK ICsjIEFkZHJlc3MgcmVxdWVzdGVkIGZvciBpZGVudGlmaWVyICJhcnIiIHdoaWNoIGlzIGluIHJl Z2lzdGVyICRyZGkKICtnZGJfdGVzdCAicCBhcnJcWzBcXSIgIlxcJFxbMC05XF0rID0gNDIiCi1J bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5 cy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNj YWwvYXJyYXlzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCTIwMTYtMDItMTUgMjM6MzY6MzkuMzU5MzA1NjQyICsw MTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2Fy cmF5cy5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAgKzEs MTA0IEBACiArIyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsjCkBAIC0yNjYwLDEwICsyNjYwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAogK30KICtnZGJfdGVzdCAi cHJpbnQgRHluQXJyQ2hhciIgIi4qID0gJ2FiY2RlZmdoaWprbG0nIiAiUHJpbnQgZHluYW1pYyBh cnJheSBvZiBjaGFyIgogKwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBhcwkyMDE2LTAyLTE1IDIz OjM1OjU2LjI5Njk5OTg5NSArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTYtMDctMTYgMTY6NTM6MzMuNzQwMTcyOTIy ICswMjAwCiBAQCAtMCwwICsxLDgyIEBACiArewogKyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTI3NDcsMTAgKzI3NDcsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFz CiArICBzIDo9ICd0ZXN0JyMwJ3N0cmluZyc7CiArICB3cml0ZWxuKHMpOyB7IHNldCBicmVha3Bv aW50IDIgaGVyZSB9CiArZW5kLgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3Jp Zy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTUuMzI2OTkzMDA4 ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Nzk5OTkwMyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMz LjA2MzE2NzMxNSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDExNzI5MzAgKzAyMDAKIEBAIC0xNzMs NiArMTczLDExIEBACiAgCSAgICBzZW5kX2dkYiAieVxuIgogIAkgICAgZXhwX2NvbnRpbnVlCkBA IC0yNzYzLDEwICsyNzYzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCiAgCS1yZSAiRGlzY2FyZCBzeW1ib2wgdGFibGUgZnJvbSAuKnkg b3Igbi4qJCIgewogIAkgICAgc2VuZF9nZGIgInlcbiIKICAJICAgIGV4cF9jb250aW51ZQotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xp Yi9wYXNjYWwuZXhwCTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5OTcyICswMTAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTAyLTE1 IDIzOjM1OjU2LjI5ODk5OTkxMCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTA3LTE2IDAzOjQ4OjU5LjAwMDAwMDAw MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2Nh bC5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDExNzI5MzAgKzAyMDAKIEBAIC0zNyw2ICszNyw5 IEBACiAgICAgIGdsb2JhbCBwYXNjYWxfY29tcGlsZXJfaXNfZnBjCiAgICAgIGdsb2JhbCBncGNf Y29tcGlsZXIKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIvZ2RiLWFyY2hlci5wYXRj aAppbmRleCA2MTdjYzBmLi44ZDkyNjVmIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLnBhdGNoCisr KyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsNyArMiw3IEBAIGh0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kv QXJjaGVyQnJhbmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgZjBlZTc4YzVj Y2VmZTM4OGE2NDI3MzM1M2VjZDVjOTlkYWU2MjU1OAorY29tbWl0IGNmZWU2NGVlODY5YTZhNmU0 YWIwYjY0YWYxNDlkNGNmNTk1MTdkODAKIAogdHJvbWV5L3B5dGhvbgogCkBAIC0xNiwxMCArMTYs MTAgQEAgaW5kZXggMDAwMDAwMC4uMTczYjhlYQogK1RoaXMgYnJhbmNoIG9yaWdpbmFsbHkgaGVs ZCB0aGUgUHl0aG9uIGNvZGUgZm9yIGdkYi4gIEl0IHN0aWxsIGV4aXN0cwogK2JlY2F1c2UgYSBz bWFsbCBhbW91bnQgb2YgY29kZSBoZXJlIGhhcyBub3QgeWV0IGJlZW4gbWVyZ2VkIHVwc3RyZWFt LgogZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXgg OTUxMDRlZi4uYTliMTk4YSAxMDA2NDQKK2luZGV4IDVhZjYxMDMuLjljNjljYjAgMTAwNjQ0CiAt LS0gYS9nZGIvTWFrZWZpbGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTE1MzQsNiAr MTUzNCwxMiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKK0BA IC0xNTUzLDYgKzE1NTMsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5pbiBjb25maWcu c3RhdHVzCiAgCSAgQ09ORklHX0xJTktTPSBcCiAgCSAgJChTSEVMTCkgY29uZmlnLnN0YXR1cwog IApAQCAtMzMsMTAgKzMzLDEwIEBAIGluZGV4IDk1MTA0ZWYuLmE5YjE5OGEgMTAwNjQ0CiAgCSQo U0hFTEwpIGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2RhdGEt ZGlyZWN0b3J5L01ha2VmaWxlLmluIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi1p bmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0NAoraW5kZXggM2YyMzUxNi4uYjVkNjM5MCAxMDA2 NDQKIC0tLSBhL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogKysrIGIvZ2RiL2RhdGEt ZGlyZWN0b3J5L01ha2VmaWxlLmluCi1AQCAtNjUsNyArNjUsMTAgQEAgUFlUSE9OX0ZJTEVfTElT VCA9IFwKK0BAIC02Niw3ICs2NiwxMCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAogIAlnZGIvdW53 aW5kZXIucHkgXAogIAlnZGIvcHJvbXB0LnB5IFwKICAJZ2RiL3htZXRob2QucHkgXApAQCAtNDcs OCArNDcsOCBAQCBpbmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0NAogIAlnZGIvY29tbWFuZC94 bWV0aG9kcy5weSBcCiAgCWdkYi9jb21tYW5kL2ZyYW1lX2ZpbHRlcnMucHkgXAogIAlnZGIvY29t bWFuZC91bndpbmRlcnMucHkgXAotQEAgLTc2LDYgKzc5LDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9 IFwKLSAJZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKK0BAIC03OCw2ICs4MSw4IEBAIFBZVEhP Tl9GSUxFX0xJU1QgPSBcCisgCWdkYi9mdW5jdGlvbi9hc19zdHJpbmcucHkgXAogIAlnZGIvZnVu Y3Rpb24vY2FsbGVyX2lzLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL3N0cmZucy5weSBcCiArCWdkYi9m dW5jdGlvbi9jYWxsZXJfaXMucHkgXApAQCAtNTcsNyArNTcsNyBAQCBpbmRleCAzMGNmZDE3Li5l OTc3YjMwIDEwMDY0NAogIAlnZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMucHkKICAKIGRpZmYg LS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXgg MTY2NTM3Mi4uYzRjYWZmYyAxMDA2NDQKK2luZGV4IGY1ZGRlNjEuLjFkOTJiZDYgMTAwNjQ0CiAt LS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAt MTIyNSw2ICsxMjI1LDE2IEBAIGZvciByZW1vdGUgZGVidWdnaW5nLgpAQCAtNzgsNyArNzgsNyBA QCBpbmRleCAxNjY1MzcyLi5jNGNhZmZjIDEwMDY0NAogIEBpdGVtIC10dWkKICBAY2luZGV4IEBj b2Rley0tdHVpfQogZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5 dGhvbi50ZXhpCi1pbmRleCA1N2VjMjJlLi4xM2JlYjA1IDEwMDY0NAoraW5kZXggYTE3ZTM3ZC4u YzU2MDY4YiAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvcHl0aG9uLnRleGkKICsrKyBiL2dkYi9kb2Mv cHl0aG9uLnRleGkKIEBAIC04OCw4ICs4OCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZv ciBleGFtcGxlOgpAQCAtMTExLDcgKzExMSw3IEBAIGluZGV4IDA1YTM4YjIuLjk4MDFmZGYgMTAw NjQ0CiAgICBzZXQgdmFyaWFibGUgJGdkYl9pbml0X2RvbmUgPSAxCiAgCiBkaWZmIC0tZ2l0IGEv Z2RiL21haW4uYyBiL2dkYi9tYWluLmMKLWluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0Citp bmRleCA1NDc3Mzc5Li5iN2U0MTNmIDEwMDY0NAogLS0tIGEvZ2RiL21haW4uYwogKysrIGIvZ2Ri L21haW4uYwogQEAgLTMzLDYgKzMzLDcgQEAKQEAgLTEyMiw3ICsxMjIsNyBAQCBpbmRleCBhZWNk NjBhLi5kMGY3ODM0IDEwMDY0NAogICNpbmNsdWRlICJzb3VyY2UuaCIKICAjaW5jbHVkZSAiY2xp L2NsaS1jbWRzLmgiCiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCi1AQCAtNDUzLDYgKzQ1NCw4IEBA IGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtNDU5LDYgKzQ2MCw4IEBAIGNhcHR1cmVk X21haW4gKHZvaWQgKmRhdGEpCiAgICBjaGFyICpjZGFyZyA9IE5VTEw7CiAgICBjaGFyICp0dHlh cmcgPSBOVUxMOwogIApAQCAtMTkwLDcgKzE5MCw3IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQg MTAwNjQ0CiAgICAgIHsKICAgICAgICAvKiBUaGUgcmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBj b21tYW5kLWxpbmUgb3B0aW9ucyBmb3IgdGhlCiAgCSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUg aXMgdGhlIHN5bS9leGVjIGZpbGUsIGFuZCB0aGUgcmVzdAotQEAgLTExMzcsNyArMTE3MSw4IEBA IGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtMTEyNyw3ICsxMTYxLDggQEAgY2FwdHVy ZWRfbWFpbiAodm9pZCAqZGF0YSkKICAKICAgIC8qIFJlYWQgaW4gdGhlIG9sZCBoaXN0b3J5IGFm dGVyIGFsbCB0aGUgY29tbWFuZCBmaWxlcyBoYXZlIGJlZW4KICAgICAgIHJlYWQuICAqLwpAQCAt MjAwLDcgKzIwMCw3IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CiAgCiAgICBpZiAo YmF0Y2hfZmxhZykKICAgICAgewotQEAgLTExNDgsMTMgKzExODMsMjUgQEAgY2FwdHVyZWRfbWFp biAodm9pZCAqZGF0YSkKK0BAIC0xMTM4LDEzICsxMTczLDI1IEBAIGNhcHR1cmVkX21haW4gKHZv aWQgKmRhdGEpCiAgICAvKiBTaG93IHRpbWUgYW5kL29yIHNwYWNlIHVzYWdlLiAgKi8KICAgIGRv X2NsZWFudXBzIChwcmVfc3RhdF9jaGFpbik7CiAgCkBAIC0yMzIsNyArMjMyLDcgQEAgaW5kZXgg YWVjZDYwYS4uZDBmNzgzNCAxMDA2NDQKICAgICAgfQogICAgLyogTm8gZXhpdCAtLSBleGl0IGlz IHRocm91Z2ggcXVpdF9jb21tYW5kLiAgKi8KICB9Ci1AQCAtMTE4OCw2ICsxMjM1LDEyIEBAIHBy aW50X2dkYl9oZWxwIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQorQEAgLTExODcsNiArMTIzNCwx MiBAQCBwcmludF9nZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICAgIGZwdXRzX3Vu ZmlsdGVyZWQgKF8oIlwKICBUaGlzIGlzIHRoZSBHTlUgZGVidWdnZXIuICBVc2FnZTpcblxuXAog ICAgICBnZGIgW29wdGlvbnNdIFtleGVjdXRhYmxlLWZpbGUgW2NvcmUtZmlsZSBvciBwcm9jZXNz LWlkXV1cblwKQEAgLTI0NSw3ICsyNDUsNyBAQCBpbmRleCBhZWNkNjBhLi5kMGY3ODM0IDEwMDY0 NAogICAgICBnZGIgW29wdGlvbnNdIC0tYXJncyBleGVjdXRhYmxlLWZpbGUgW2luZmVyaW9yLWFy Z3VtZW50cyAuLi5dXG5cblwKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8o IlwKLUBAIC0xMjMyLDYgKzEyODUsMTMgQEAgT3V0cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250 cm9sOlxuXG5cCitAQCAtMTIzMSw2ICsxMjg0LDEzIEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZh Y2UgY29udHJvbDpcblxuXAogICNlbmRpZgogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogICAg LS1kYnggICAgICAgICAgICAgIERCWCBjb21wYXRpYmlsaXR5IG1vZGUuXG5cCkBAIC00NDMsMTAg KzQ0MywxMCBAQCBpbmRleCAwMDAwMDAwLi44NzQyNjgwCiArCiArSW5TY29wZSAoKQogZGlmZiAt LWdpdCBhL2dkYi9weXRob24vcHl0aG9uLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCi1pbmRleCA0 Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAoraW5kZXggNjIxZTIwMS4uNzAzYTFhMCAxMDA2NDQKIC0t LSBhL2dkYi9weXRob24vcHl0aG9uLmMKICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKLUBAIC05 Myw2ICs5Myw4IEBAIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNp b25fbGFuZ3VhZ2VfcHl0aG9uID0KK0BAIC05NSw2ICs5NSw4IEBAIGNvbnN0IHN0cnVjdCBleHRl bnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2VfcHl0aG9uID0KICAjaW5jbHVk ZSAibGluZXNwZWMuaCIKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUgInZlcnNpb24u aCIKQEAgLTQ1NSw3ICs0NTUsNyBAQCBpbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAogICNp bmNsdWRlICJ0YXJnZXQuaCIKICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCiAgI2luY2x1ZGUgImlu dGVycHMuaCIKLUBAIC0xMjYyLDYgKzEyNjQsODMgQEAgZ2RicHlfcHJpbnRfc3RhY2sgKHZvaWQp CitAQCAtMTI2Myw2ICsxMjY1LDkyIEBAIGdkYnB5X3ByaW50X3N0YWNrICh2b2lkKQogIAogIC8q IFJldHVybiB0aGUgY3VycmVudCBQcm9nc3BhY2UuCiAgICAgVGhlcmUgYWx3YXlzIGlzIG9uZS4g ICovCkBAIC00NzcsNyArNDc3LDE0IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAr ICAgIHJldHVybiBQeUVycl9Gb3JtYXQgKFB5RXhjX1J1bnRpbWVFcnJvciwgXygiQ2Fubm90IGlu dm9rZSBDTEkgZnJvbSBNSS4iKSk7CiArCiArICBpbl9jbGkgPSAxOwotKyAgY3VycmVudF9pbnRl cnBfY29tbWFuZF9sb29wICgpOworKyAgLyogU2VlIGNhcHR1cmVkX2NvbW1hbmRfbG9vcC4gICov CisrCisrICAvKiBHaXZlIHRoZSBpbnRlcnByZXRlciBhIGNoYW5jZSB0byBwcmludCBhIHByb21w dC4gICovCisrICBpbnRlcnBfcHJlX2NvbW1hbmRfbG9vcCAodG9wX2xldmVsX2ludGVycHJldGVy ICgpKTsKKysKKysgIC8qIE5vdyBpdCdzIHRpbWUgdG8gc3RhcnQgdGhlIGV2ZW50IGxvb3AuICAq LworKyAgc3RhcnRfZXZlbnRfbG9vcCAoKTsKKysKICsgIGluX2NsaSA9IDA7CiArCiArICBQeV9S RVRVUk5fTk9ORTsKQEAgLTUwMCwxMyArNTA3LDE1IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEg MTAwNjQ0CiArICBQeVN5c19TZXRBcmd2IChhcmdjIC0gMSwgYXJndiArIDEpOwogKyNlbHNlCiAr ICB7Ci0rICAgIHdjaGFyX3QgKip3YXJndiA9IGFsbG9jYSAoc2l6ZW9mICgqd2FyZ3YpICogKGFy Z2MgKyAxKSk7CisrICAgIHdjaGFyX3QgKip3YXJndiA9ICh3Y2hhcl90ICoqKSBhbGxvY2EgKHNp emVvZiAoKndhcmd2KSAqIChhcmdjICsgMSkpOwogKyAgICBpbnQgaTsKICsKICsgICAgZm9yIChp ID0gMTsgaSA8IGFyZ2M7IGkrKykKICsgICAgICB7CiArCXNpemVfdCBsZW4gPSBtYnN0b3djcyAo TlVMTCwgYXJndltpXSwgMCk7Ci0rCXNpemVfdCBsZW4yOworKwkvKiBQeXRob24tcmVsYXRlZCBH REIgc291cmNlcyBhcmUgYnVpbHQgd2l0aCAtRE5ERUJVRworKwkgICBodHRwczovL3NvdXJjZXdh cmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NSAqLworKwlzaXplX3QgbGVuMiBB VFRSSUJVVEVfVU5VU0VEOwogKwogKwlpZiAobGVuID09IChzaXplX3QpIC0xKQogKwkgIHsKQEAg LTUxNCw3ICs1MjMsNyBAQCBpbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAogKwkJICAgICBp LCBhcmd2W2ldKTsKICsJICAgIGV4aXQgKDEpOwogKwkgIH0KLSsJd2FyZ3ZbaV0gPSBhbGxvY2Eg KHNpemVvZiAoKip3YXJndikgKiAobGVuICsgMSkpOworKwl3YXJndltpXSA9ICh3Y2hhcl90ICop IGFsbG9jYSAoc2l6ZW9mICgqKndhcmd2KSAqIChsZW4gKyAxKSk7CiArCWxlbjIgPSBtYnN0b3dj cyAod2FyZ3ZbaV0sIGFyZ3ZbaV0sIGxlbiArIDEpOwogKwlhc3NlcnQgKGxlbjIgPT0gbGVuKTsK ICsgICAgICB9CkBAIC01MzksNyArNTQ4LDcgQEAgaW5kZXggNGY4OGIwZS4uODcwYTFiYSAxMDA2 NDQKICAKICBzdGF0aWMgUHlPYmplY3QgKgogIGdkYnB5X2dldF9jdXJyZW50X3Byb2dzcGFjZSAo UHlPYmplY3QgKnVudXNlZDEsIFB5T2JqZWN0ICp1bnVzZWQyKQotQEAgLTE5ODIsNiArMjA2MSw4 IEBAIFB5TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQorQEAgLTE5ODEsNiArMjA2OSw4 IEBAIFB5TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQogIEV2YWx1YXRlIGNvbW1hbmQs IGEgc3RyaW5nLCBhcyBhIGdkYiBDTEkgY29tbWFuZC4gIE9wdGlvbmFsbHkgcmV0dXJuc1xuXAog IGEgUHl0aG9uIFN0cmluZyBjb250YWluaW5nIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgaWYg dG9fc3RyaW5nIGlzXG5cCiAgc2V0IHRvIFRydWUuIiB9LApAQCAtNTQ5LDcgKzU1OCw3IEBAIGlu ZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAgICAgICJSZXR1cm4gYSBnZGIgcGFyYW1ldGVy J3MgdmFsdWUiIH0sCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uaCBiL2dkYi9w eXRob24vcHl0aG9uLmgKLWluZGV4IGU2YmZjY2EuLjY4OGRhYTMgMTAwNjQ0CitpbmRleCBiODEw MTg3Li5hMzYyMGFiIDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uaAogKysrIGIvZ2Ri L3B5dGhvbi9weXRob24uaAogQEAgLTI1LDQgKzI1LDYgQEAKQEAgLTU2MCwxMCArNTY5LDEwIEBA IGluZGV4IGU2YmZjY2EuLjY4OGRhYTMgMTAwNjQ0CiArCiAgI2VuZGlmIC8qIEdEQl9QWVRIT05f SCAqLwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAgYi9n ZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCi1pbmRleCA5ZjI1YTQ4Li44OGIwODQy IDEwMDY0NAoraW5kZXggMmZkZDllMy4uMzkxOTAwZCAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxm dGVzdC5leHAKLUBAIC05Miw2ICs5MiwxMCBAQCBwcm9jIGRvX3N0ZXBzX2FuZF9uZXh0cyB7fSB7 CitAQCAtODcsNiArODcsMTAgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMge30gewogIAkJc2V0 IGRlc2NyaXB0aW9uICJzdGVwIG92ZXIgY21kYXJnX3ZlYyBpbml0aWFsaXphdGlvbiIKICAJCXNl dCBjb21tYW5kICJzdGVwIgogIAkgICAgfQpAQCAtNTc1LDcgKzU4NCw3IEBAIGluZGV4IDlmMjVh NDguLjg4YjA4NDIgMTAwNjQ0CiAgCQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBtYWtlX2Nv bW1hbmRfc3RhdHNfY2xlYW51cCBhbmQgZXZlcnl0aGluZyBpdCBjYWxscyIKICAJCXNldCBjb21t YW5kICJuZXh0IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCi1pbmRleCAzM2Zk YmU1Li4yNjRkMDBmIDEwMDY0NAoraW5kZXggYjVhNDY4Mi4uZDU0NTFhNiAxMDA2NDQKIC0tLSBh L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKICsrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKIEBAIC05NSw2ICs5NSw4IEBAIGdkYl90ZXN0ICJw eXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSBmMC5yZWFkX3ZhciAoJ2EnKSkiICIgPSAxIiAi dGVzdCBGcmFtZS5yCkBAIC01ODgsMTAgKzU5NywxMCBAQCBpbmRleCAzM2ZkYmU1Li4yNjRkMDBm IDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSAoZ2RiLnNl bGVjdGVkX2ZyYW1lICgpLnJlYWRfcmVnaXN0ZXIgKCdzcCcpID09IGdkYi5wYXJzZV9hbmRfZXZh bCAoJ1wkc3AnKSkpIiBcCiAgICAiID0gVHJ1ZSIgXAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt dmFsdWUuZXhwCi1pbmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAoraW5kZXggNTdhOWJhMS4u ZDkwZDg1YSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5l eHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKLUBAIC0zODgs NiArMzg4LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7CitAQCAtMzk3LDYg KzM5NywxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgge30gewogICAgICAicHJpbnQg dmFsdWUncyB0eXBlIgogIH0KICAKQEAgLTYwNyw3ICs2MTYsNyBAQCBpbmRleCBiYWExN2I3Li40 NWFkNjdlIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlwdCBv cGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhlIHR5cGUgb2YgdGhlIHZhbHVlIHdh cyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQogICMgc3Vic2NyaXB0IG9wZXJh dGlvbiB0byBwcm9jZWVkLgotQEAgLTUxNyw2ICs1MjYsNyBAQCB0ZXN0X3ZhbHVlX2luX2luZmVy aW9yCitAQCAtNTI2LDYgKzUzNSw3IEBAIHRlc3RfdmFsdWVfaW5faW5mZXJpb3IKICB0ZXN0X2lu ZmVyaW9yX2Z1bmN0aW9uX2NhbGwKICB0ZXN0X2xhenlfc3RyaW5ncwogIHRlc3RfdmFsdWVfYWZ0 ZXJfZGVhdGgKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNo IGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRleCA0OGQ3YWI0Li5mYjdk YjI1IDEwMDY0NAotLS0gYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCisrKyBi L2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTM3LDEzICszNywxMyBAQCBn ZGIvZ2Ric2VydmVyLwogCShsaW51eF9jcmVhdGVfaW5mZXJpb3IsIGxpbnV4X3RyYWNlZm9ya19j aGlsZCk6IENhbGwgaXQgaW5zdGVhZCBvZgogCWRpcmVjdCBwdHJhY2UuCiAKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCitJbmRleDogZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE2LTAxLTA4IDE5 OjE1OjU3LjU4MDcwNzk0NCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQv bGludXgtcHRyYWNlLmMJMjAxNi0wMS0wOCAxOToxNjowMi42NTQ3MzYyNDYgKzAxMDAKLUBAIC0y NCw2ICsyNCwxMCBAQAotICNpbmNsdWRlICJnZGJfd2FpdC5oIgorLS0tIGdkYi03LjExLjkwLjIw MTYwODA3Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0 NzgzMzAxNyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9uYXQvbGludXgtcHRy YWNlLmMJMjAxNi0wOC0wNyAyMToxOTozNy42NTA5MDQxNDIgKzAyMDAKK0BAIC0yNSw2ICsyNSwx MCBAQAogICNpbmNsdWRlICJnZGJfcHRyYWNlLmgiCisgI2luY2x1ZGUgImdyZWdzZXQuaCIKICAK ICsjaWZkZWYgSEFWRV9TRUxJTlVYX1NFTElOVVhfSAogKyMgaW5jbHVkZSA8c2VsaW51eC9zZWxp bnV4Lmg+CkBAIC01Miw3ICs1Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv bmF0L2xpbnV4LXB0cmFjZS5jCiAgLyogU3RvcmVzIHRoZSBwdHJhY2Ugb3B0aW9ucyBzdXBwb3J0 ZWQgYnkgdGhlIHJ1bm5pbmcga2VybmVsLgogICAgIEEgdmFsdWUgb2YgLTEgbWVhbnMgd2UgZGlk IG5vdCBjaGVjayBmb3IgZmVhdHVyZXMgeWV0LiAgQSB2YWx1ZQogICAgIG9mIDAgbWVhbnMgdGhl cmUgYXJlIG5vIHN1cHBvcnRlZCBmZWF0dXJlcy4gICovCi1AQCAtNDgsNiArNTIsOCBAQAorQEAg LTQ5LDYgKzUzLDggQEAKICAgICAgYnVmZmVyX3htbF9wcmludGYgKGJ1ZmZlciwgXygicHJvY2Vz cyAlZCBpcyBhIHpvbWJpZSAiCiAgCQkJCSAiLSB0aGUgcHJvY2VzcyBoYXMgYWxyZWFkeSB0ZXJt aW5hdGVkIiksCiAgCQkgICAgICAgKGludCkgcGlkKTsKQEAgLTYxLDcgKzYxLDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICB9CiAgCiAgLyog U2VlIGxpbnV4LXB0cmFjZS5oLiAgKi8KLUBAIC01OTQsNiArNjAwLDIyIEBACitAQCAtNTkyLDYg KzU5OCwyMiBAQAogICAgbGludXhfcHRyYWNlX3Rlc3RfcmV0X3RvX254ICgpOwogIH0KICAKQEAg LTg0LDExICs4NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL25hdC9saW51 eC1wdHJhY2UuYwogIC8qIEV4dHJhY3QgZXh0ZW5kZWQgcHRyYWNlIGV2ZW50IGZyb20gd2FpdCBz dGF0dXMuICAqLwogIAogIGludAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQv bGludXgtcHRyYWNlLmgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvbmF0L2xpbnV4 LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIv bmF0L2xpbnV4LXB0cmFjZS5oCTIwMTYtMDEtMDggMTk6MTU6NTcuNTgxNzA3OTUwICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE2LTAxLTA4 IDE5OjE2OjAyLjY1NTczNjI1MSArMDEwMAotQEAgLTE2NCw2ICsxNjQsNyBAQAorLS0tIGdkYi03 LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE2LTA4LTA3IDIx OjE5OjI5Ljk0NzgzMzAxNyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9uYXQv bGludXgtcHRyYWNlLmgJMjAxNi0wOC0wNyAyMToxOTozNy42NTA5MDQxNDIgKzAyMDAKK0BAIC0x ODUsNiArMTg1LDcgQEAKICBleHRlcm4gY2hhciAqbGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3Jl YXNvbl9zdHJpbmcgKHB0aWRfdCBwdGlkLCBpbnQgZXJyKTsKICAKICBleHRlcm4gdm9pZCBsaW51 eF9wdHJhY2VfaW5pdF93YXJuaW5ncyAodm9pZCk7CkBAIC05NiwxMSArOTYsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNlLmgKICBleHRlcm4gdm9p ZCBsaW51eF9jaGVja19wdHJhY2VfZmVhdHVyZXMgKHZvaWQpOwogIGV4dGVybiB2b2lkIGxpbnV4 X2VuYWJsZV9ldmVudF9yZXBvcnRpbmcgKHBpZF90IHBpZCwgaW50IGF0dGFjaGVkKTsKICBleHRl cm4gdm9pZCBsaW51eF9kaXNhYmxlX2V2ZW50X3JlcG9ydGluZyAocGlkX3QgcGlkKTsKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4Mjcw Nzk1NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUuYWMJMjAx Ni0wMS0wOCAxOToxNjowMi42NTY3MzYyNTcgKzAxMDAKLUBAIC0yMDc3LDYgKzIwNzcsMTAgQEAK Ky0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxNi0wOC0w NyAyMToxOToyOS45NDc4MzMwMTcgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIv Y29uZmlndXJlLmFjCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjUwOTA0MTQyICswMjAwCitAQCAtMjEw OCw2ICsyMTA4LDEwIEBACiAgZXNhYwogIEFDX0RFRklORV9VTlFVT1RFRChHREJJTklULCIkZ2Ri aW5pdCIsW1RoZSAuZ2RiaW5pdCBmaWxlbmFtZS5dKQogIApAQCAtMTExLDExICsxMTEsMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxl IG9wdGlvbmFsIGZlYXR1cmVzIHRoYXQgY2FuIGJlIGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZv ciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCitJbmRleDogZ2Ri LTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFj CTIwMTYtMDEtMDggMTk6MTU6NTcuNTgyNzA3OTU1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNi0wMS0wOCAxOToxNjowMi42NTY3 MzYyNTcgKzAxMDAKLUBAIC01MjQsNiArNTI0LDEwIEBACistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4 MDcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0 ODgzMzAyNyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29u ZmlndXJlLmFjCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjUxOTA0MTUxICswMjAwCitAQCAtNDU4LDYg KzQ1OCwxMCBAQAogICAgIGZpCiAgZmkKICAKQEAgLTEyNiwxMSArMTI2LDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwogIEFDX1NVQlNU KEdEQlNFUlZFUl9ERVBGSUxFUykKICBBQ19TVUJTVChHREJTRVJWRVJfTElCUykKICBBQ19TVUJT VChzcnZfeG1sYnVpbHRpbikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWxvdy5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2dkYnNlcnZl ci9saW51eC1sb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcv Z2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4NTcwNzk3MiAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJ MjAxNi0wMS0wOCAxOToxNjowMi42NTg3MzYyNjggKzAxMDAKLUBAIC04NTMsNiArODUzLDI5IEBA CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5j CTIwMTYtMDgtMDcgMjE6MTk6MjkuOTQ5ODMzMDM2ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE2LTA4LTA3IDIxOjE5OjM3LjY1Mjkw NDE2MSArMDIwMAorQEAgLTkzMyw2ICs5MzMsMjkgQEAKICAgIHJldHVybiBsd3A7CiAgfQogIApA QCAtMTYwLDcgKzE2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWxvdy5jCiAgLyogU3RhcnQgYW4gaW5mZXJpb3IgcHJvY2VzcyBhbmQgcmV0dXJu cyBpdHMgcGlkLgogICAgIEFMTEFSR1MgaXMgYSB2ZWN0b3Igb2YgcHJvZ3JhbS1uYW1lIGFuZCBh cmdzLiAqLwogIAotQEAgLTg3Niw3ICs4OTksNyBAQAorQEAgLTk1Niw3ICs5NzksNyBAQAogICAg aWYgKHBpZCA9PSAwKQogICAgICB7CiAgICAgICAgY2xvc2VfbW9zdF9mZHMgKCk7CkBAIC0xNjks MTAgKzE2OSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnNlcnZlci9s aW51eC1sb3cuYwogIAogICAgICAgIHNldHBnaWQgKDAsIDApOwogIAotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9pbmYtcHRyYWNlLmMKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvaW5mLXB0cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvaW5mLXB0cmFjZS5jCTIwMTYtMDEtMDggMTk6MTU6NTcuNTg2NzA3OTc3ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2luZi1wdHJhY2UuYwkyMDE2LTAxLTA4IDE5 OjE2OjAyLjY1OTczNjI3NCArMDEwMAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2Ri L2luZi1wdHJhY2UuYwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0OTgzMzAzNiArMDIwMAorKysrIGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi9pbmYtcHRyYWNlLmMJMjAxNi0wOC0wNyAyMToxOTozNy42 NTM5MDQxNzAgKzAyMDAKIEBAIC03OSw3ICs3OSwxNSBAQAogIGluZl9wdHJhY2VfbWUgKHZvaWQp CiAgewpAQCAtMTg5LDExICsxODksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9pbmYtcHRyYWNlLmMKICB9CiAgCiAgLyogU3RhcnQgYSBuZXcgaW5mZXJpb3IgVW5peCBjaGls ZCBwcm9jZXNzLiAgRVhFQ19GSUxFIGlzIHRoZSBmaWxlIHRvCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9n ZGIvbGludXgtbmF0LmMJMjAxNi0wMS0wOCAxOToxNTo1Ny41ODc3MDc5ODMgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbGludXgtbmF0LmMJMjAxNi0wMS0wOCAxOToxNjowMi42 NjA3MzYyNzkgKzAxMDAKLUBAIC0xMDE2LDYgKzEwMTYsNyBAQAorLS0tIGdkYi03LjExLjkwLjIw MTYwODA3Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDgtMDcgMjE6MTk6MjkuOTUwODMzMDQ1 ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDgt MDcgMjE6MTk6MzcuNjU0OTA0MTc5ICswMjAwCitAQCAtMTEwMiw2ICsxMTAyLDcgQEAKICB7CiAg ICBzdHJ1Y3QgY2xlYW51cCAqcmVzdG9yZV9wZXJzb25hbGl0eQogICAgICA9IG1heWJlX2Rpc2Fi bGVfYWRkcmVzc19zcGFjZV9yYW5kb21pemF0aW9uIChkaXNhYmxlX3JhbmRvbWl6YXRpb24pOwpA QCAtMjAxLDcgKzIwMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbGludXgt bmF0LmMKICAKICAgIC8qIFRoZSBmb3JrX2NoaWxkIG1lY2hhbmlzbSBpcyBzeW5jaHJvbm91cyBh bmQgY2FsbHMgdGFyZ2V0X3dhaXQsIHNvCiAgICAgICB3ZSBoYXZlIHRvIG1hc2sgdGhlIGFzeW5j IG1vZGUuICAqLwotQEAgLTEwMjMsNyArMTAyNCwyOCBAQAorQEAgLTExMDksNyArMTExMCwyOCBA QAogICAgLyogTWFrZSBzdXJlIHdlIHJlcG9ydCBhbGwgc2lnbmFscyBkdXJpbmcgc3RhcnR1cC4g ICovCiAgICBsaW51eF9uYXRfcGFzc19zaWduYWxzIChvcHMsIDAsIE5VTEwpOwogIApAQCAtMjMx LDExICsyMzEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9saW51eC1uYXQu YwogIAogICAgZG9fY2xlYW51cHMgKHJlc3RvcmVfcGVyc29uYWxpdHkpOwogIH0KLUluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlnLmluCitJbmRleDogZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2 Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4ODcwNzk4OSArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4JMjAxNi0wMS0wOCAxOToxNjow Mi42NjA3MzYyNzkgKzAxMDAKLUBAIC0yNjQsNiArMjY0LDkgQEAKKy0tLSBnZGItNy4xMS45MC4y MDE2MDgwNy5vcmlnL2dkYi9jb25maWcuaW4JMjAxNi0wOC0wNyAyMToxOToyOS45NTA4MzMwNDUg KzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlnLmluCTIwMTYtMDgtMDcg MjE6MTk6MzcuNjU0OTA0MTc5ICswMjAwCitAQCAtMjY3LDYgKzI2Nyw5IEBACiAgLyogRGVmaW5l IGlmIGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVzZWQuICovCiAgI3VuZGVmIEhBVkVfTElCUlBN CiAgCkBAIC0yNDUsNyArMjQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9j b25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnVud2luZC1pYTY0 Lmg+IGhlYWRlciBmaWxlLiAqLwogICN1bmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gKICAKLUBA IC0zOTYsNiArMzk5LDkgQEAKK0BAIC0zOTksNiArNDAyLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgYHNjbV9uZXdfc21vYicgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVf U0NNX05FV19TTU9CCiAgCkBAIC0yNTUsMTEgKzI1NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBg c2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TRVRMT0NBTEUKICAKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTAxLTA4IDE5OjE1OjU3LjU5MzcwODAxNyArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUJMjAxNi0wMS0wOCAxOTox NjowMi42NjU3MzYzMDcgKzAxMDAKLUBAIC0xNDY1Myw2ICsxNDY1Myw2NCBAQAorLS0tIGdkYi03 LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk1 MzgzMzA3MyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWd1cmUJMjAx Ni0wOC0wNyAyMToxOTozNy42NTg5MDQyMTYgKzAyMDAKK0BAIC0xNDY0Miw2ICsxNDY0Miw2NCBA QAogIF9BQ0VPRgogIAogIApAQCAtMzI0LDExICszMjQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9jb25maWd1cmUKICAKICAjIFN1cHBvcnQgZm9yIC0td2l0aC1zeXNyb290 IGlzIGEgY29weSBvZiBHREJfQUNfV0lUSF9ESVIsCiAgIyBleGNlcHQgdGhhdCB0aGUgYXJndW1l bnQgdG8gLS13aXRoLXN5c3Jvb3QgaXMgb3B0aW9uYWwuCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTYwMTA2Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNi0wMS0wOCAxOToxNTo1Ny41 OTU3MDgwMjggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2Nv bmZpZy5pbgkyMDE2LTAxLTA4IDE5OjE2OjAyLjY2NTczNjMwNyArMDEwMAotQEAgLTExNyw2ICsx MTcsOSBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25m aWcuaW4JMjAxNi0wOC0wNyAyMToxOToyOS45NTQ4MzMwODIgKzAyMDAKKysrKyBnZGItNy4xMS45 MC4yMDE2MDgwNy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE2LTA4LTA3IDIxOjE5OjM3LjY1 ODkwNDIxNiArMDIwMAorQEAgLTEyMCw2ICsxMjAsOSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSBgbWNoZWNrJyBsaWJyYXJ5ICgtbG1jaGVjaykuICovCiAgI3VuZGVmIEhBVkVf TElCTUNIRUNLCiAgCkBAIC0zMzgsNyArMzM4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIGlmIHRoZSB0YXJnZXQgc3Vw cG9ydHMgYnJhbmNoIHRyYWNpbmcuICovCiAgI3VuZGVmIEhBVkVfTElOVVhfQlRSQUNFCiAgCi1A QCAtMTkzLDYgKzE5Niw5IEBACitAQCAtMTk2LDYgKzE5OSw5IEBACiAgLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIGBwd3JpdGUnIGZ1bmN0aW9uLiAqLwogICN1bmRlZiBIQVZFX1BXUklU RQogIApAQCAtMzQ4LDExICszNDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBz ZXRucycgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0VUTlMKICAKLUluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjExLjkw LjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE2LTAxLTA4IDE5 OjE1OjU3LjU5NzcwODAzOSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJz ZXJ2ZXIvY29uZmlndXJlCTIwMTYtMDEtMDggMTk6MTY6MDIuNjY3NzM2MzE4ICswMTAwCi1AQCAt NzMxMSw2ICs3MzExLDY0IEBACistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2Ri c2VydmVyL2NvbmZpZ3VyZQkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk1NTgzMzA5MSArMDIwMAorKysr IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTYtMDgtMDcg MjE6MTk6MzcuNjYwOTA0MjM1ICswMjAwCitAQCAtNzUzMCw2ICs3NTMwLDY0IEBACiAgICAgZmkK ICBmaQogIAoKZGlmZiAtLWdpdCBhL2dkYi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIu cGF0Y2ggYi9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0xb2YyLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2ZhNWI4Li4wMDAwMDAwCi0tLSBhL2dkYi1iYXJlLURX X1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMzUgKzAs MCBAQAotRnJvbSAzYTJiNDM2YWU5OTU4YTEwMjk1NDVjMDMyMDFiNzIyM2ZmMzNjMTUwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDMwIE1heSAyMDE2IDE0OjExOjQzICswMjAwCi1TdWJq ZWN0OiBbUEFUQ0ggMS8yXSBDb2RlIGNsZWFudXA6IGR3YXJmMl9nZXRfcGNfYm91bmRzOiAtMS8w LysxIC0+IGVudW0KLQotTWFrZSB0aGUgY29kZSAobWF5YmUpIG1vcmUgcmVhZGFibGUgKyBwcmlt YXJpbHkgcHJlcGFyZSBpdCBmb3IgW3BhdGNoIDIvMl0KLWVudW0gZXh0ZW5zaW9uLgotCi1UaGlz IGNoYW5nZSBzaG91bGQgaGF2ZSBubyBjb2RlIGNoYW5nZSBpbXBhY3QuCi0KLWdkYi9DaGFuZ2VM b2cKLTIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KLQotCUNvZGUgY2xlYW51cDogZHdhcmYyX2dldF9wY19ib3VuZHM6IC0xLzAvKzEgLT4gZW51 bQotCSogZHdhcmYycmVhZC5jIChlbnVtIHBjX2JvdW5kc19raW5kKSBOZXcuCi0JKGR3YXJmMl9n ZXRfcGNfYm91bmRzKTogVXNlIGl0IGluIHRoZSBkZWNsYXJhdGlvbi4KLQkocHJvY2Vzc19wc3lt dGFiX2NvbXBfdW5pdF9yZWFkZXIpOiBBZGp1c3QgY2FsbGVyLiAgUmVuYW1lIGhhc19wY19pbmZv Ci0JdG8gY3VfYm91bmRzX2tpbmQuCi0JKHJlYWRfZnVuY19zY29wZSwgcmVhZF9sZXhpY2FsX2Js b2NrX3Njb3BlLCByZWFkX2NhbGxfc2l0ZV9zY29wZSk6Ci0JQWRqdXN0IGNhbGxlcnMuCi0JKGR3 YXJmMl9nZXRfcGNfYm91bmRzKTogVXNlIGVudW0gcGNfYm91bmRzX2tpbmQgaW4gdGhlIGRlZmlu aXRpb24uCi0JKGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMsIGdldF9zY29wZV9wY19i b3VuZHMpOiBBZGp1c3QgY2FsbGVycy4KLS0tLQotIGdkYi9DaGFuZ2VMb2cgICAgfCAxMiArKysr KysrKysrCi0gZ2RiL2R3YXJmMnJlYWQuYyB8IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNl cnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLQotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIv Z2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxNSBAQAotKzIwMTYtMDUtMzAgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJQ29kZSBjbGVhbnVwOiBkd2Fy ZjJfZ2V0X3BjX2JvdW5kczogLTEvMC8rMSAtPiBlbnVtCi0rCSogZHdhcmYycmVhZC5jIChlbnVt IHBjX2JvdW5kc19raW5kKSBOZXcuCi0rCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IFVzZSBpdCBp biB0aGUgZGVjbGFyYXRpb24uCi0rCShwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlcik6 IEFkanVzdCBjYWxsZXIuICBSZW5hbWUgaGFzX3BjX2luZm8KLSsJdG8gY3VfYm91bmRzX2tpbmQu Ci0rCShyZWFkX2Z1bmNfc2NvcGUsIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSwgcmVhZF9jYWxs X3NpdGVfc2NvcGUpOgotKwlBZGp1c3QgY2FsbGVycy4KLSsJKGR3YXJmMl9nZXRfcGNfYm91bmRz KTogVXNlIGVudW0gcGNfYm91bmRzX2tpbmQgaW4gdGhlIGRlZmluaXRpb24uCi0rCShkd2FyZjJf Z2V0X3N1YnByb2dyYW1fcGNfYm91bmRzLCBnZXRfc2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNh bGxlcnMuCi0rCi0gMjAxNi0wNS0yOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgotIAotIAkqIE5FV1MgKFFDYXRjaFN5c2NhbGxzKTogUmVtb3ZlIHRoZSBwYXJh bWV0ZXIuICBJbmNsdWRlIC4uLgotLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwotKysrIGIvZ2RiL2R3 YXJmMnJlYWQuYwotQEAgLTE2MDYsOSArMTYwNiwyNSBAQCBzdGF0aWMgdm9pZCByZWFkX2NhbGxf c2l0ZV9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsK LSBzdGF0aWMgaW50IGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQsIENPUkVfQUREUiAqLCBD T1JFX0FERFIgKiwKLSAJCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqLCBzdHJ1Y3QgcGFydGlh bF9zeW10YWIgKik7Ci0gCi0tc3RhdGljIGludCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0 IGRpZV9pbmZvICosCi0tCQkJCSBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosIHN0cnVjdCBkd2Fy ZjJfY3UgKiwKLS0JCQkJIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqKTsKLSsvKiBIb3cgZHdhcmYy X2dldF9wY19ib3VuZHMgY29uc3RydWN0ZWQgaXRzICpMT1dQQyBhbmQgKkhJR0hQQyByZXR1cm4K LSsgICB2YWx1ZXMuICAqLwotK2VudW0gcGNfYm91bmRzX2tpbmQKLSt7Ci0rICAvKiBObyB2YWxp ZCBjb21iaW5hdGlvbiBvZiBEV19BVF9sb3dfcGMsIERXX0FUX2hpZ2hfcGMgb3IgRFdfQVRfcmFu Z2VzCi0rICAgICB3YXMgZm91bmQuICAqLwotKyAgUENfQk9VTkRTX05PVF9QUkVTRU5ULAotKwot KyAgLyogRGlzY29udGlndW91cyByYW5nZSB3YXMgZm91bmQgLSB0aGF0IGlzIERXX0FUX3Jhbmdl cyB3YXMgZm91bmQuICAqLwotKyAgUENfQk9VTkRTX1JBTkdFUywKLSsKLSsgIC8qIENvbnRpZ3Vv dXMgcmFuZ2Ugd2FzIGZvdW5kIC0gRFdfQVRfbG93X3BjIGFuZCBEV19BVF9oaWdoX3BjIHdlcmUg Zm91bmQuICAqLwotKyAgUENfQk9VTkRTX0hJR0hfTE9XLAotK307Ci0rCi0rc3RhdGljIGVudW0g cGNfYm91bmRzX2tpbmQgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAot KwkJCQkJCSBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCi0rCQkJCQkJIHN0cnVjdCBkd2FyZjJf Y3UgKiwKLSsJCQkJCQkgc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwotIAotIHN0YXRpYyB2b2lk IGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAotIAkJCQkgQ09SRV9BRERS ICosIENPUkVfQUREUiAqLAotQEAgLTU5NDcsNyArNTk2Myw3IEBAIHByb2Nlc3NfcHN5bXRhYl9j b21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAot ICAgQ09SRV9BRERSIGJhc2VhZGRyOwotICAgQ09SRV9BRERSIGJlc3RfbG93cGMgPSAwLCBiZXN0 X2hpZ2hwYyA9IDA7Ci0gICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdDsKLS0gIGludCBoYXNf cGNfaW5mbzsKLSsgIGVudW0gcGNfYm91bmRzX2tpbmQgY3VfYm91bmRzX2tpbmQ7Ci0gICBjb25z dCBjaGFyICpmaWxlbmFtZTsKLSAgIHN0cnVjdCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X2Rh dGEgKmluZm8KLSAgICAgPSAoc3RydWN0IHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfZGF0YSAq KSBkYXRhOwotQEAgLTU5NzcsOSArNTk5Myw5IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRf cmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotIAotICAgLyog UG9zc2libHkgc2V0IHRoZSBkZWZhdWx0IHZhbHVlcyBvZiBMT1dQQyBhbmQgSElHSFBDIGZyb20K LSAgICAgIGBEV19BVF9yYW5nZXMnLiAgKi8KLS0gIGhhc19wY19pbmZvID0gZHdhcmYyX2dldF9w Y19ib3VuZHMgKGNvbXBfdW5pdF9kaWUsICZiZXN0X2xvd3BjLAotLQkJCQkgICAgICAmYmVzdF9o aWdocGMsIGN1LCBwc3QpOwotLSAgaWYgKGhhc19wY19pbmZvID09IDEgJiYgYmVzdF9sb3dwYyA8 IGJlc3RfaGlnaHBjKQotKyAgY3VfYm91bmRzX2tpbmQgPSBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAo Y29tcF91bml0X2RpZSwgJmJlc3RfbG93cGMsCi0rCQkJCQkgJmJlc3RfaGlnaHBjLCBjdSwgcHN0 KTsKLSsgIGlmIChjdV9ib3VuZHNfa2luZCA9PSBQQ19CT1VORFNfSElHSF9MT1cgJiYgYmVzdF9s b3dwYyA8IGJlc3RfaGlnaHBjKQotICAgICAvKiBTdG9yZSB0aGUgY29udGlndW91cyByYW5nZSBp ZiBpdCBpcyBub3QgZW1wdHk7IGl0IGNhbiBiZSBlbXB0eSBmb3IKLSAgICAgICAgQ1VzIHdpdGgg bm8gY29kZS4gICovCi0gICAgIGFkZHJtYXBfc2V0X2VtcHR5IChvYmpmaWxlLT5wc3ltdGFic19h ZGRybWFwLAotQEAgLTYwMDMsNyArNjAxOSw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRf cmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotICAgICAgIGZp cnN0X2RpZSA9IGxvYWRfcGFydGlhbF9kaWVzIChyZWFkZXIsIGluZm9fcHRyLCAxKTsKLSAKLSAg ICAgICBzY2FuX3BhcnRpYWxfc3ltYm9scyAoZmlyc3RfZGllLCAmbG93cGMsICZoaWdocGMsCi0t CQkJICAgICEgaGFzX3BjX2luZm8sIGN1KTsKLSsJCQkgICAgY3VfYm91bmRzX2tpbmQgPT0gUENf Qk9VTkRTX05PVF9QUkVTRU5ULCBjdSk7Ci0gCi0gICAgICAgLyogSWYgd2UgZGlkbid0IGZpbmQg YSBsb3dwYywgc2V0IGl0IHRvIGhpZ2hwYyB0byBhdm9pZAotIAkgY29tcGxhaW50cyBmcm9tIGBt YWludCBjaGVjaycuCSAqLwotQEAgLTYwMTIsNyArNjAyOCw3IEBAIHByb2Nlc3NfcHN5bXRhYl9j b21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAot IAotICAgICAgIC8qIElmIHRoZSBjb21waWxhdGlvbiB1bml0IGRpZG4ndCBoYXZlIGFuIGV4cGxp Y2l0IGFkZHJlc3MgcmFuZ2UsCi0gCSB0aGVuIHVzZSB0aGUgaW5mb3JtYXRpb24gZXh0cmFjdGVk IGZyb20gaXRzIGNoaWxkIGRpZXMuICAqLwotLSAgICAgIGlmICghIGhhc19wY19pbmZvKQotKyAg ICAgIGlmIChjdV9ib3VuZHNfa2luZCA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0gCXsKLSAJ ICBiZXN0X2xvd3BjID0gbG93cGM7Ci0gCSAgYmVzdF9oaWdocGMgPSBoaWdocGM7Ci1AQCAtMTEz NzMsNyArMTEzODksOCBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICAgfQotIAotICAgLyogSWdub3JlIGZ1bmN0aW9ucyB3 aXRoIG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRlcy4gICovCi0t ICBpZiAoIWR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5V TEwpKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywg Y3UsIE5VTEwpCi0rICAgICAgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotICAgICB7Ci0gICAg ICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2V4dGVybmFsLCBjdSk7Ci0gICAgICAg aWYgKCFhdHRyIHx8ICFEV19VTlNORCAoYXR0cikpCi1AQCAtMTE1MzUsNyArMTE1NTIsOCBAQCBy ZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKLSAgICAgIGFzIG11bHRpcGxlIGxleGljYWwgYmxvY2tzPyAgSGFuZGxpbmcg Y2hpbGRyZW4gaW4gYSBzYW5lIHdheSB3b3VsZAotICAgICAgYmUgbmFzdHkuICBNaWdodCBiZSBl YXNpZXIgdG8gcHJvcGVybHkgZXh0ZW5kIGdlbmVyaWMgYmxvY2tzIHRvCi0gICAgICBkZXNjcmli ZSByYW5nZXMuICAqLwotLSAgaWYgKCFkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMs ICZoaWdocGMsIGN1LCBOVUxMKSkKLSsgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAm bG93cGMsICZoaWdocGMsIGN1LCBOVUxMKQotKyAgICAgID09IFBDX0JPVU5EU19OT1RfUFJFU0VO VCkKLSAgICAgcmV0dXJuOwotICAgbG93cGMgPSBnZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAo Z2RiYXJjaCwgbG93cGMgKyBiYXNlYWRkcik7Ci0gICBoaWdocGMgPSBnZGJhcmNoX2FkanVzdF9k d2FyZjJfYWRkciAoZ2RiYXJjaCwgaGlnaHBjICsgYmFzZWFkZHIpOwotQEAgLTExNzQ1LDcgKzEx NzYzLDggQEAgcmVhZF9jYWxsX3NpdGVfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKLSAJICBDT1JFX0FERFIgbG93cGM7Ci0gCi0gCSAgLyogRFdfQVRf ZW50cnlfcGMgc2hvdWxkIGJlIHByZWZlcnJlZC4gICovCi0tCSAgaWYgKCFkd2FyZjJfZ2V0X3Bj X2JvdW5kcyAodGFyZ2V0X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJnZXRfY3UsIE5VTEwpKQotKwkg IGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFyZ2V0X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJn ZXRfY3UsIE5VTEwpCi0rCSAgICAgID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAJICAgIGNv bXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSAJCSAgICAgICBfKCJEV19BVF9HTlVfY2Fs bF9zaXRlX3RhcmdldCB0YXJnZXQgRElFIGhhcyBpbnZhbGlkICIKLSAJCSAgICAgICAgICJsb3cg cGMsIGZvciByZWZlcmVuY2luZyBESUUgMHgleCBbaW4gbW9kdWxlICVzXSIpLAotQEAgLTEyMDIw LDExICsxMjAzOSwxMSBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9mZnNldCwgQ09S RV9BRERSICpsb3dfcmV0dXJuLAotICAgcmV0dXJuIDE7Ci0gfQotIAotLS8qIEdldCBsb3cgYW5k IGhpZ2ggcGMgYXR0cmlidXRlcyBmcm9tIGEgZGllLiAgUmV0dXJuIDEgaWYgdGhlIGF0dHJpYnV0 ZXMKLS0gICBhcmUgcHJlc2VudCBhbmQgdmFsaWQsIG90aGVyd2lzZSwgcmV0dXJuIDAuICBSZXR1 cm4gLTEgaWYgdGhlIHJhbmdlIGlzCi0tICAgZGlzY29udGludW91cywgaS5lLiBkZXJpdmVkIGZy b20gRFdfQVRfcmFuZ2VzIGluZm9ybWF0aW9uLiAgKi8KLSsvKiBHZXQgbG93IGFuZCBoaWdoIHBj IGF0dHJpYnV0ZXMgZnJvbSBhIGRpZS4gIFNlZSBlbnVtIHBjX2JvdW5kc19raW5kCi0rICAgZGVm aW5pdGlvbiBmb3IgdGhlIHJldHVybiB2YWx1ZS4gICpMT1dQQyBhbmQgKkhJR0hQQyBhcmUgc2V0 IGlmZgotKyAgIFBDX0JPVU5EU19OT1RfUFJFU0VOVCBpcyBub3QgcmV0dXJuZWQuICAqLwotIAot LXN0YXRpYyBpbnQKLStzdGF0aWMgZW51bSBwY19ib3VuZHNfa2luZAotIGR3YXJmMl9nZXRfcGNf Ym91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAJCSAgICAg IENPUkVfQUREUiAqaGlnaHBjLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKLSAJCSAgICAgIHN0cnVj dCBwYXJ0aWFsX3N5bXRhYiAqcHN0KQotQEAgLTEyMDMzLDcgKzEyMDUyLDcgQEAgZHdhcmYyX2dl dF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLAotICAg c3RydWN0IGF0dHJpYnV0ZSAqYXR0cl9oaWdoOwotICAgQ09SRV9BRERSIGxvdyA9IDA7Ci0gICBD T1JFX0FERFIgaGlnaCA9IDA7Ci0tICBpbnQgcmV0ID0gMDsKLSsgIGVudW0gcGNfYm91bmRzX2tp bmQgcmV0ID0gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgYXR0cl9oaWdoID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfaGlnaF9wYywgY3UpOwotICAgaWYgKGF0dHJfaGlnaCkKLUBAIC0x MjA0OCwxMCArMTIwNjcsMTAgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBDT1JFX0FERFIgKmxvd3BjLAotIAl9Ci0gICAgICAgZWxzZQotIAkvKiBGb3VuZCBo aWdoIHcvbyBsb3cgYXR0cmlidXRlLiAgKi8KLS0JcmV0dXJuIDA7Ci0rCXJldHVybiBQQ19CT1VO RFNfTk9UX1BSRVNFTlQ7Ci0gCi0gICAgICAgLyogRm91bmQgY29uc2VjdXRpdmUgcmFuZ2Ugb2Yg YWRkcmVzc2VzLiAgKi8KLS0gICAgICByZXQgPSAxOwotKyAgICAgIHJldCA9IFBDX0JPVU5EU19I SUdIX0xPVzsKLSAgICAgfQotICAgZWxzZQotICAgICB7Ci1AQCAtMTIwNzAsMTUgKzEyMDg5LDE1 IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERS ICpsb3dwYywKLSAJICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0 aGUgb2Zmc2V0IGluIHRoZQotIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCi0gCSAg aWYgKCFkd2FyZjJfcmFuZ2VzX3JlYWQgKHJhbmdlc19vZmZzZXQsICZsb3csICZoaWdoLCBjdSwg cHN0KSkKLS0JICAgIHJldHVybiAwOwotKwkgICAgcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VO VDsKLSAJICAvKiBGb3VuZCBkaXNjb250aW51b3VzIHJhbmdlIG9mIGFkZHJlc3Nlcy4gICovCi0t CSAgcmV0ID0gLTE7Ci0rCSAgcmV0ID0gUENfQk9VTkRTX1JBTkdFUzsKLSAJfQotICAgICB9Ci0g Ci0gICAvKiByZWFkX3BhcnRpYWxfZGllIGhhcyBhbHNvIHRoZSBzdHJpY3QgTE9XIDwgSElHSCBy ZXF1aXJlbWVudC4gICovCi0gICBpZiAoaGlnaCA8PSBsb3cpCi0tICAgIHJldHVybiAwOwotKyAg ICByZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgLyogV2hlbiB1c2luZyB0aGUg R05VIGxpbmtlciwgLmdudS5saW5rb25jZS4gc2VjdGlvbnMgYXJlIHVzZWQgdG8KLSAgICAgIGVs aW1pbmF0ZSBkdXBsaWNhdGUgY29waWVzIG9mIGZ1bmN0aW9ucyBhbmQgdnRhYmxlcyBhbmQgc3Vj aC4KLUBAIC0xMjA4OSw3ICsxMjEwOCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAgICAgIElmIHRoaXMgaXMgYSBkaXNj YXJkZWQgZnVuY3Rpb24sIG1hcmsgdGhlIHBjIGJvdW5kcyBhcyBpbnZhbGlkLAotICAgICAgc28g dGhhdCBHREIgd2lsbCBpZ25vcmUgaXQuICAqLwotICAgaWYgKGxvdyA9PSAwICYmICFkd2FyZjJf cGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8pCi0tICAgIHJldHVybiAwOwotKyAgICBy ZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgKmxvd3BjID0gbG93OwotICAgaWYg KGhpZ2hwYykKLUBAIC0xMjExMCw3ICsxMjEyOSw4IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9w Y19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAotICAgQ09SRV9BRERSIGxvdywgaGlnaDsK LSAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGQgPSBkaWUtPmNoaWxkOwotIAotLSAgaWYgKGR3YXJm Ml9nZXRfcGNfYm91bmRzIChkaWUsICZsb3csICZoaWdoLCBjdSwgTlVMTCkpCi0rICBpZiAoZHdh cmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvdywgJmhpZ2gsIGN1LCBOVUxMKQotKyAgICAgICE9 IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAgICAgewotICAgICAgICpsb3dwYyA9IG1pbiAoKmxv d3BjLCBsb3cpOwotICAgICAgICpoaWdocGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTEy MTQ3LDcgKzEyMTY3LDggQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpk aWUsCi0gICBDT1JFX0FERFIgYmVzdF9oaWdoID0gKENPUkVfQUREUikgMDsKLSAgIENPUkVfQURE UiBjdXJyZW50X2xvdywgY3VycmVudF9oaWdoOwotIAotLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91 bmRzIChkaWUsICZjdXJyZW50X2xvdywgJmN1cnJlbnRfaGlnaCwgY3UsIE5VTEwpKQotKyAgaWYg KGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZjdXJyZW50X2xvdywgJmN1cnJlbnRfaGlnaCwg Y3UsIE5VTEwpCi0rICAgICAgIT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotICAgICB7Ci0gICAg ICAgYmVzdF9sb3cgPSBjdXJyZW50X2xvdzsKLSAgICAgICBiZXN0X2hpZ2ggPSBjdXJyZW50X2hp Z2g7Ci0tLSAKLTIuNS41Ci0KCmRpZmYgLS1naXQgYS9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9i bG9jay0yb2YyLnBhdGNoIGIvZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg4ZmRmMy4uMDAwMDAwMAotLS0gYS9n ZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0yb2YyLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzQzICswLDAgQEAKLUZyb20gZTM4NTU5M2VlZjk4YWM5MmJlNTcxNTllMTQxZjRiODA1ZGFk YmJiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAzMCBNYXkgMjAxNiAxNDoxNDo0MyAr MDIwMAotU3ViamVjdDogW1BBVENIIDIvMl0gUFIgMTUyMzE6IGltcG9ydCBiYXJlIERXX1RBR19s ZXhpY2FsX2Jsb2NrCi0KLUxvY2FsIHZhcmlhYmxlcyBpbiBsYW1iZGFzIGFyZSBub3QgYWNjZXNz aWJsZQotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTUy MzEKLQotR0RCOiByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUKLSAgLyogSWdub3JlIGJsb2NrcyB3 aXRoIG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRlcy4gICovCi1b Li4uXQotICBpZiAoIWR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywg Y3UsIE5VTEwpKQotICAgIHJldHVybjsKLQotQnV0IHNvbWV0aW1lcyB0aGVyZSBpczoKLQotRkFJ TDogZ2NjLTUuMy4xLTYuZmMyMy54ODZfNjQKLSA8Mj48OTI+OiBBYmJyZXYgTnVtYmVyOiAxMSAo RFdfVEFHX2xleGljYWxfYmxvY2spCi0gPDM+PDljPjogQWJicmV2IE51bWJlcjogMTMgKERXX1RB R19zdHJ1Y3R1cmVfdHlwZSkKLSAgICA8OWQ+ICAgRFdfQVRfbmFtZSAgICAgICAgOiAoaW5kaXJl Y3Qgc3RyaW5nLCBvZmZzZXQ6IDB4M2MpOiA8bGFtYmRhKCk+Ci0gICAgWy4uLl0KLQotV2hlcmUg RFdfVEFHX2xleGljYWxfYmxvY2sgaGFzIG5vIGF0dHJpYnV0ZXMuICBTdWNoIHdob2xlIHN1YnRy ZWUgaXMgY3VycmVudGx5Ci1kcm9wcGVkIGJ5IEdEQiB3aGlsZSBJIHRoaW5rIGl0IHNob3VsZCBq dXN0IGltcG9ydCBhbGwgaXRzIGNoaWxkcmVuIERJRXMuCi0KLUl0IGV2ZW4gWEZBSUwtPlhQQVNT ZXMgZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDoKLQljb21taXQgMGZhN2ZlNTA2 YzI0MmI0NTljNGMwNWQzMzFlN2M3ZDY2ZmI1MjM5MAotCUF1dGhvcjogSm9lbCBCcm9iZWNrZXIg PGJyb2JlY2tlckBhZGFjb3JlLmNvbT4KLQkgICAgb3V0IG9mIGxpbmUgZnVuY3Rpb25zIG5lc3Rl ZCBpbnNpZGUgaW5saW5lIGZ1bmN0aW9ucy4KLVNvIEkgaGF2ZSByZW1vdmVkIHRoYXQgeGZhaWwu Ci0KLWdkYi9DaGFuZ2VMb2cKLTIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLQotCVBSIGMrKy8xNTIzMQotCSogZHdhcmYycmVhZC5jIChlbnVt IHBjX2JvdW5kc19raW5kKTogQWRkIFBDX0JPVU5EU19JTlZBTElELgotCShwcm9jZXNzX3BzeW10 YWJfY29tcF91bml0X3JlYWRlciwgcmVhZF9mdW5jX3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0J KHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSk6IEltcG9ydCBESUVzIGZyb20gYmFyZSBEV19UQUdf bGV4aWNhbF9ibG9jay4KLQkocmVhZF9jYWxsX3NpdGVfc2NvcGUpOiBBZGp1c3QgY2FsbGVycy4K LQkoZHdhcmYyX2dldF9wY19ib3VuZHMpOiBJbXBsZW1lbnQgcGNfYm91bmRzX2ludmFsaWQuCi0J KGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMsIGdldF9zY29wZV9wY19ib3VuZHMpOiBB ZGp1c3QgY2FsbGVycy4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLTIwMTYtMDUtMzAgIEph biBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBSIGMrKy8xNTIz MQotCSogZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDogUmVtb3ZlIHhmYWlscy4K LQkqIGdkYi5kd2FyZjIvZHcyLWxleGljYWwtYmxvY2stYmFyZS5leHA6IE5ldyBmaWxlLgotLS0t Ci0gZ2RiL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx MCArKysrCi0gZ2RiL2R3YXJmMnJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA1MyArKysrKysrKysrLS0tLS0tCi0gZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwotIGdkYi90ZXN0c3VpdGUvZ2RiLmFkYS9vdXRf b2ZfbGluZV9pbl9pbmxpbmVkLmV4cCAgIHwgIDYgLS0KLSAuLi4vZ2RiLmR3YXJmMi9kdzItbGV4 aWNhbC1ibG9jay1iYXJlLmV4cCAgICAgICAgICB8IDcwICsrKysrKysrKysrKysrKysrKysrKysK LSA1IGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLSBj cmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1sZXhpY2FsLWJs b2NrLWJhcmUuZXhwCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cK LSMjIC0xLDUgKzEsMTUgQEAKLSAyMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+Ci0gCi0rCVBSIGMrKy8xNTIzMQotKwkqIGR3YXJmMnJlYWQuYyAo ZW51bSBwY19ib3VuZHNfa2luZCk6IEFkZCBQQ19CT1VORFNfSU5WQUxJRC4KLSsJKHByb2Nlc3Nf cHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyLCByZWFkX2Z1bmNfc2NvcGUpOiBBZGp1c3QgY2FsbGVy cy4KLSsJKHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSk6IEltcG9ydCBESUVzIGZyb20gYmFyZSBE V19UQUdfbGV4aWNhbF9ibG9jay4KLSsJKHJlYWRfY2FsbF9zaXRlX3Njb3BlKTogQWRqdXN0IGNh bGxlcnMuCi0rCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IEltcGxlbWVudCBwY19ib3VuZHNfaW52 YWxpZC4KLSsJKGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMsIGdldF9zY29wZV9wY19i b3VuZHMpOiBBZGp1c3QgY2FsbGVycy4KLSsKLSsyMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCi0gCUNvZGUgY2xlYW51cDogZHdhcmYyX2dl dF9wY19ib3VuZHM6IC0xLzAvKzEgLT4gZW51bQotIAkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19i b3VuZHNfa2luZCkgTmV3LgotIAkoZHdhcmYyX2dldF9wY19ib3VuZHMpOiBVc2UgaXQgaW4gdGhl IGRlY2xhcmF0aW9uLgotLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwotKysrIGIvZ2RiL2R3YXJmMnJl YWQuYwotQEAgLTE2MDcsMTMgKzE2MDcsMTYgQEAgc3RhdGljIGludCBkd2FyZjJfcmFuZ2VzX3Jl YWQgKHVuc2lnbmVkLCBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCi0gCQkJICAgICAgIHN0cnVj dCBkd2FyZjJfY3UgKiwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwotIAotIC8qIEhvdyBkd2Fy ZjJfZ2V0X3BjX2JvdW5kcyBjb25zdHJ1Y3RlZCBpdHMgKkxPV1BDIGFuZCAqSElHSFBDIHJldHVy bgotLSAgIHZhbHVlcy4gICovCi0rICAgdmFsdWVzLiAgS2VlcCB0aGUgaXRlbXMgb3JkZXJlZCB3 aXRoIGluY3JlYXNpbmcgY29uc3RyYWludHMgY29tcGxpYW5jZS4gICovCi0gZW51bSBwY19ib3Vu ZHNfa2luZAotIHsKLS0gIC8qIE5vIHZhbGlkIGNvbWJpbmF0aW9uIG9mIERXX0FUX2xvd19wYywg RFdfQVRfaGlnaF9wYyBvciBEV19BVF9yYW5nZXMKLS0gICAgIHdhcyBmb3VuZC4gICovCi0rICAv KiBObyBhdHRyaWJ1dGUgRFdfQVRfbG93X3BjLCBEV19BVF9oaWdoX3BjIG9yIERXX0FUX3Jhbmdl cyB3YXMgZm91bmQuICAqLwotICAgUENfQk9VTkRTX05PVF9QUkVTRU5ULAotIAotKyAgLyogU29t ZSBvZiB0aGUgYXR0cmlidXRlcyBEV19BVF9sb3dfcGMsIERXX0FUX2hpZ2hfcGMgb3IgRFdfQVRf cmFuZ2VzCi0rICAgICB3ZXJlIHByZXNlbnQgYnV0IHRoZXkgZG8gbm90IGZvcm0gYSB2YWxpZCBy YW5nZSBvZiBQQyBhZGRyZXNzZXMuICAqLwotKyAgUENfQk9VTkRTX0lOVkFMSUQsCi0rCi0gICAv KiBEaXNjb250aWd1b3VzIHJhbmdlIHdhcyBmb3VuZCAtIHRoYXQgaXMgRFdfQVRfcmFuZ2VzIHdh cyBmb3VuZC4gICovCi0gICBQQ19CT1VORFNfUkFOR0VTLAotIAotQEAgLTYwMTksNyArNjAyMiw3 IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3Jl YWRlcl9zcGVjcyAqcmVhZGVyLAotICAgICAgIGZpcnN0X2RpZSA9IGxvYWRfcGFydGlhbF9kaWVz IChyZWFkZXIsIGluZm9fcHRyLCAxKTsKLSAKLSAgICAgICBzY2FuX3BhcnRpYWxfc3ltYm9scyAo Zmlyc3RfZGllLCAmbG93cGMsICZoaWdocGMsCi0tCQkJICAgIGN1X2JvdW5kc19raW5kID09IFBD X0JPVU5EU19OT1RfUFJFU0VOVCwgY3UpOwotKwkJCSAgICBjdV9ib3VuZHNfa2luZCA8PSBQQ19C T1VORFNfSU5WQUxJRCwgY3UpOwotIAotICAgICAgIC8qIElmIHdlIGRpZG4ndCBmaW5kIGEgbG93 cGMsIHNldCBpdCB0byBoaWdocGMgdG8gYXZvaWQKLSAJIGNvbXBsYWludHMgZnJvbSBgbWFpbnQg Y2hlY2snLgkgKi8KLUBAIC02MDI4LDcgKzYwMzEsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91 bml0X3JlYWRlciAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAKLSAg ICAgICAvKiBJZiB0aGUgY29tcGlsYXRpb24gdW5pdCBkaWRuJ3QgaGF2ZSBhbiBleHBsaWNpdCBh ZGRyZXNzIHJhbmdlLAotIAkgdGhlbiB1c2UgdGhlIGluZm9ybWF0aW9uIGV4dHJhY3RlZCBmcm9t IGl0cyBjaGlsZCBkaWVzLiAgKi8KLS0gICAgICBpZiAoY3VfYm91bmRzX2tpbmQgPT0gUENfQk9V TkRTX05PVF9QUkVTRU5UKQotKyAgICAgIGlmIChjdV9ib3VuZHNfa2luZCA8PSBQQ19CT1VORFNf SU5WQUxJRCkKLSAJewotIAkgIGJlc3RfbG93cGMgPSBsb3dwYzsKLSAJICBiZXN0X2hpZ2hwYyA9 IGhpZ2hwYzsKLUBAIC0xMTM5MCw3ICsxMTM5Myw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotIAotICAgLyogSWdub3JlIGZ1 bmN0aW9ucyB3aXRoIG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRl cy4gICovCi0gICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvd3BjLCAmaGlnaHBj LCBjdSwgTlVMTCkKLS0gICAgICA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0rICAgICAgPD0g UENfQk9VTkRTX0lOVkFMSUQpCi0gICAgIHsKLSAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRp ZSwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKLSAgICAgICBpZiAoIWF0dHIgfHwgIURXX1VOU05EIChh dHRyKSkKLUBAIC0xMTU1Miw5ICsxMTU1NSwyMCBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICAgIGFzIG11 bHRpcGxlIGxleGljYWwgYmxvY2tzPyAgSGFuZGxpbmcgY2hpbGRyZW4gaW4gYSBzYW5lIHdheSB3 b3VsZAotICAgICAgYmUgbmFzdHkuICBNaWdodCBiZSBlYXNpZXIgdG8gcHJvcGVybHkgZXh0ZW5k IGdlbmVyaWMgYmxvY2tzIHRvCi0gICAgICBkZXNjcmliZSByYW5nZXMuICAqLwotLSAgaWYgKGR3 YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpCi0tICAg ICAgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotLSAgICByZXR1cm47Ci0rICBzd2l0Y2ggKGR3 YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpKQotKyAg ICB7Ci0rICAgIGNhc2UgUENfQk9VTkRTX05PVF9QUkVTRU5UOgotKyAgICAgIC8qIERXX1RBR19s ZXhpY2FsX2Jsb2NrIGhhcyBubyBhdHRyaWJ1dGVzLCBwcm9jZXNzIGl0cyBjaGlsZHJlbiBhcyBp ZgotKwkgdGhlcmUgd2FzIG5vIHdyYXBwaW5nIGJ5IHRoYXQgRFdfVEFHX2xleGljYWxfYmxvY2su Ci0rCSBHQ0MgZG9lcyBubyBsb25nZXIgcHJvZHVjZXMgc3VjaCBEV0FSRiBzaW5jZSBHQ0MgcjIy NDE2MS4gICovCi0rICAgICAgZm9yIChjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOwotKwkgICBjaGls ZF9kaWUgIT0gTlVMTCAmJiBjaGlsZF9kaWUtPnRhZzsKLSsJICAgY2hpbGRfZGllID0gc2libGlu Z19kaWUgKGNoaWxkX2RpZSkpCi0rCXByb2Nlc3NfZGllIChjaGlsZF9kaWUsIGN1KTsKLSsgICAg ICByZXR1cm47Ci0rICAgIGNhc2UgUENfQk9VTkRTX0lOVkFMSUQ6Ci0rICAgICAgcmV0dXJuOwot KyAgICB9Ci0gICBsb3dwYyA9IGdkYmFyY2hfYWRqdXN0X2R3YXJmMl9hZGRyIChnZGJhcmNoLCBs b3dwYyArIGJhc2VhZGRyKTsKLSAgIGhpZ2hwYyA9IGdkYmFyY2hfYWRqdXN0X2R3YXJmMl9hZGRy IChnZGJhcmNoLCBoaWdocGMgKyBiYXNlYWRkcik7Ci0gCi1AQCAtMTE3NjQsNyArMTE3NzgsNyBA QCByZWFkX2NhbGxfc2l0ZV9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQotIAotIAkgIC8qIERXX0FUX2VudHJ5X3BjIHNob3VsZCBiZSBwcmVmZXJyZWQu ICAqLwotIAkgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFyZ2V0X2RpZSwgJmxvd3BjLCBO VUxMLCB0YXJnZXRfY3UsIE5VTEwpCi0tCSAgICAgID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkK LSsJICAgICAgPD0gUENfQk9VTkRTX0lOVkFMSUQpCi0gCSAgICBjb21wbGFpbnQgKCZzeW1maWxl X2NvbXBsYWludHMsCi0gCQkgICAgICAgXygiRFdfQVRfR05VX2NhbGxfc2l0ZV90YXJnZXQgdGFy Z2V0IERJRSBoYXMgaW52YWxpZCAiCi0gCQkgICAgICAgICAibG93IHBjLCBmb3IgcmVmZXJlbmNp bmcgRElFIDB4JXggW2luIG1vZHVsZSAlc10iKSwKLUBAIC0xMjA0MSw3ICsxMjA1NSw3IEBAIGR3 YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQgb2Zmc2V0LCBDT1JFX0FERFIgKmxvd19yZXR1cm4s Ci0gCi0gLyogR2V0IGxvdyBhbmQgaGlnaCBwYyBhdHRyaWJ1dGVzIGZyb20gYSBkaWUuICBTZWUg ZW51bSBwY19ib3VuZHNfa2luZAotICAgIGRlZmluaXRpb24gZm9yIHRoZSByZXR1cm4gdmFsdWUu ICAqTE9XUEMgYW5kICpISUdIUEMgYXJlIHNldCBpZmYKLS0gICBQQ19CT1VORFNfTk9UX1BSRVNF TlQgaXMgbm90IHJldHVybmVkLiAgKi8KLSsgICBuZWl0aGVyIFBDX0JPVU5EU19OT1RfUFJFU0VO VCBub3IgUENfQk9VTkRTX0lOVkFMSUQgYXJlIHJldHVybmVkLiAgKi8KLSAKLSBzdGF0aWMgZW51 bSBwY19ib3VuZHNfa2luZAotIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgQ09SRV9BRERSICpsb3dwYywKLUBAIC0xMjA1Miw3ICsxMjA2Niw3IEBAIGR3YXJmMl9n ZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAg IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJfaGlnaDsKLSAgIENPUkVfQUREUiBsb3cgPSAwOwotICAg Q09SRV9BRERSIGhpZ2ggPSAwOwotLSAgZW51bSBwY19ib3VuZHNfa2luZCByZXQgPSBQQ19CT1VO RFNfTk9UX1BSRVNFTlQ7Ci0rICBlbnVtIHBjX2JvdW5kc19raW5kIHJldDsKLSAKLSAgIGF0dHJf aGlnaCA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2hpZ2hfcGMsIGN1KTsKLSAgIGlmIChhdHRy X2hpZ2gpCi1AQCAtMTIwNjcsNyArMTIwODEsNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gCX0KLSAgICAgICBlbHNlCi0g CS8qIEZvdW5kIGhpZ2ggdy9vIGxvdyBhdHRyaWJ1dGUuICAqLwotLQlyZXR1cm4gUENfQk9VTkRT X05PVF9QUkVTRU5UOwotKwlyZXR1cm4gUENfQk9VTkRTX0lOVkFMSUQ7Ci0gCi0gICAgICAgLyog Rm91bmQgY29uc2VjdXRpdmUgcmFuZ2Ugb2YgYWRkcmVzc2VzLiAgKi8KLSAgICAgICByZXQgPSBQ Q19CT1VORFNfSElHSF9MT1c7Ci1AQCAtMTIwODksMTUgKzEyMTAzLDE3IEBAIGR3YXJmMl9nZXRf cGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAJICAv KiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0IGluIHRo ZQotIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCi0gCSAgaWYgKCFkd2FyZjJfcmFu Z2VzX3JlYWQgKHJhbmdlc19vZmZzZXQsICZsb3csICZoaWdoLCBjdSwgcHN0KSkKLS0JICAgIHJl dHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0rCSAgICByZXR1cm4gUENfQk9VTkRTX0lOVkFM SUQ7Ci0gCSAgLyogRm91bmQgZGlzY29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwot IAkgIHJldCA9IFBDX0JPVU5EU19SQU5HRVM7Ci0gCX0KLSsgICAgICBlbHNlCi0rCXJldHVybiBQ Q19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0gICAgIH0KLSAKLSAgIC8qIHJlYWRfcGFydGlhbF9kaWUg aGFzIGFsc28gdGhlIHN0cmljdCBMT1cgPCBISUdIIHJlcXVpcmVtZW50LiAgKi8KLSAgIGlmICho aWdoIDw9IGxvdykKLS0gICAgcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsKLSsgICAgcmV0 dXJuIFBDX0JPVU5EU19JTlZBTElEOwotIAotICAgLyogV2hlbiB1c2luZyB0aGUgR05VIGxpbmtl ciwgLmdudS5saW5rb25jZS4gc2VjdGlvbnMgYXJlIHVzZWQgdG8KLSAgICAgIGVsaW1pbmF0ZSBk dXBsaWNhdGUgY29waWVzIG9mIGZ1bmN0aW9ucyBhbmQgdnRhYmxlcyBhbmQgc3VjaC4KLUBAIC0x MjEwOCw3ICsxMjEyNCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAgICAgIElmIHRoaXMgaXMgYSBkaXNjYXJkZWQgZnVu Y3Rpb24sIG1hcmsgdGhlIHBjIGJvdW5kcyBhcyBpbnZhbGlkLAotICAgICAgc28gdGhhdCBHREIg d2lsbCBpZ25vcmUgaXQuICAqLwotICAgaWYgKGxvdyA9PSAwICYmICFkd2FyZjJfcGVyX29iamZp bGUtPmhhc19zZWN0aW9uX2F0X3plcm8pCi0tICAgIHJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNF TlQ7Ci0rICAgIHJldHVybiBQQ19CT1VORFNfSU5WQUxJRDsKLSAKLSAgICpsb3dwYyA9IGxvdzsK LSAgIGlmIChoaWdocGMpCi1AQCAtMTIxMjksOCArMTIxNDUsNyBAQCBkd2FyZjJfZ2V0X3N1YnBy b2dyYW1fcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLSAgIENPUkVfQUREUiBsb3cs IGhpZ2g7Ci0gICBzdHJ1Y3QgZGllX2luZm8gKmNoaWxkID0gZGllLT5jaGlsZDsKLSAKLS0gIGlm IChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93LCAmaGlnaCwgY3UsIE5VTEwpCi0tICAg ICAgIT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRz IChkaWUsICZsb3csICZoaWdoLCBjdSwgTlVMTCkgPj0gUENfQk9VTkRTX1JBTkdFUykKLSAgICAg ewotICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwotICAgICAgICpoaWdocGMgPSBt YXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTEyMTY4LDcgKzEyMTgzLDcgQEAgZ2V0X3Njb3BlX3Bj X2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCi0gICBDT1JFX0FERFIgY3VycmVudF9sb3cs IGN1cnJlbnRfaGlnaDsKLSAKLSAgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmY3Vy cmVudF9sb3csICZjdXJyZW50X2hpZ2gsIGN1LCBOVUxMKQotLSAgICAgICE9IFBDX0JPVU5EU19O T1RfUFJFU0VOVCkKLSsgICAgICA+PSBQQ19CT1VORFNfUkFOR0VTKQotICAgICB7Ci0gICAgICAg YmVzdF9sb3cgPSBjdXJyZW50X2xvdzsKLSAgICAgICBiZXN0X2hpZ2ggPSBjdXJyZW50X2hpZ2g7 Ci0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFu Z2VMb2cKLSMjIC0xLDMgKzEsOSBAQAotKzIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJUFIgYysrLzE1MjMxCi0rCSogZ2RiLmFkYS9v dXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDogUmVtb3ZlIHhmYWlscy4KLSsJKiBnZGIuZHdhcmYy L2R3Mi1sZXhpY2FsLWJsb2NrLWJhcmUuZXhwOiBOZXcgZmlsZS4KLSsKLSAyMDE2LTA1LTI3ICBQ ZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotIAotIAkqIGdkYi50aHJlYWRzL2F0dGFj aC1tYW55LXNob3J0LWxpdmVkLXRocmVhZHMuZXhwIChiYWRfZGVqYWdudSk6Ci0tLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5hZGEvb3V0X29mX2xpbmVfaW5faW5saW5lZC5leHAKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cAotQEAgLTIzLDIwICsy MywxNCBAQCBpZiB7W2dkYl9jb21waWxlX2FkYSAiJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4 ZWN1dGFibGUge2RlYnVnIG9wdGltaXplPS1PMn1dCi0gCi0gY2xlYW5fcmVzdGFydCAke3Rlc3Rm aWxlfQotIAotLSMgR0NDIGN1cnJlbnRseSBpcyBtaXNzaW5nIGEgRFdfQVRfb3JpZ2luIGF0dHJp YnV0ZSBpbiBvbmUgb2YgdGhlCi0tIyBsZXhpY2FsIGJsb2NrcywgcHJldmVudGluZyBHREIgZnJv bSBjcmVhdGluZyBhIHN5bWJvbCBmb3IgdGhlCi0tIyBzdWJwcm9ncmFtIHdlIHdhbnQgdG8gYnJl YWsgb24uCi0tc2V0dXBfeGZhaWwgIiotKi0qIgotIGdkYl90ZXN0ICJicmVhayBmb29fbzIyNF8w MjEuY2hpbGQxLmNoaWxkMiIgXAotICAgICAgICAgICJCcmVha3BvaW50IFxbMC05XF0rIGF0Lio6 IGZpbGUgLipmb29fbzIyNF8wMjEuYWRiLCBsaW5lIFxbMC05XF0rLiIKLSAKLSBnZGJfcnVuX2Nt ZAotLXNldHVwX3hmYWlsICIqLSotKiIKLSBnZGJfdGVzdCAiIiBcCi0gICAgICAgICAgIkJyZWFr cG9pbnQgJGRlY2ltYWwsIGZvb19vMjI0XzAyMVxcLmNoaWxkMVxcLmNoaWxkMiBcXChzPVxcLlxc LlxcLlxcKS4qIgotIAotIHNldCBvcHRfYWRkcl9pbiAiKCRoZXggaW4pPyIKLS1zZXR1cF94ZmFp bCAiKi0qLSoiCi0gZ2RiX3Rlc3QgImJ0IiBcCi0gICAgIFttdWx0aV9saW5lICIjMCArJG9wdF9h ZGRyX2luICtmb29fbzIyNF8wMjFcXC5jaGlsZDFcXC5jaGlsZDIgXFwocz1cXC5cXC5cXC5cXCku KiIgXAotICAgICAgICAgICAgICAgICAiIzEgKyRvcHRfYWRkcl9pbiArZm9vX28yMjRfMDIxXFwu Y2hpbGQxIFxcKFxcKS4qIiBcCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLWxleGljYWwtYmxvY2stYmFyZS5leHAKLUBAIC0wLDAgKzEsNzAgQEAKLSsj IENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0r IyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLStsb2FkX2xpYiBkd2FyZi5leHAKLSsKLSsjIFRoaXMg dGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IERXQVJGLTIgYW5k IHVzZSBnYXMuCi0raWYgeyFbZHdhcmYyX3N1cHBvcnRdfSB7Ci0rICAgIHJldHVybiAwCi0rfQot KwotK3N0YW5kYXJkX3Rlc3RmaWxlIC5TIG1haW4uYwotKwotKyMgTWFrZSBzb21lIERXQVJGIGZv ciB0aGUgdGVzdC4KLStzZXQgYXNtX2ZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICRzcmNmaWxl XQotK0R3YXJmOjphc3NlbWJsZSAkYXNtX2ZpbGUgewotKyAgICBjdSB7fSB7Ci0rCWNvbXBpbGVf dW5pdCB7Ci0rCSAgICB7bG93X3BjIFtnZGJfdGFyZ2V0X3N5bWJvbCBtYWluXSBEV19GT1JNX2Fk ZHJ9Ci0rCSAgICB7aGlnaF9wYyBbZ2RiX3RhcmdldF9zeW1ib2wgbWFpbl0rMHgxMDAwMCBEV19G T1JNX2FkZHJ9Ci0rCX0gewotKwkgICAgZGVjbGFyZV9sYWJlbHMgaW50ZWdlcl9sYWJlbAotKwot KwkgICAgaW50ZWdlcl9sYWJlbDogRFdfVEFHX2Jhc2VfdHlwZSB7Ci0rCQl7RFdfQVRfYnl0ZV9z aXplIDQgRFdfRk9STV9zZGF0YX0KLSsJCXtEV19BVF9lbmNvZGluZyAgQERXX0FURV9zaWduZWR9 Ci0rCQl7RFdfQVRfbmFtZSAgICAgIGludGVnZXJ9Ci0rCSAgICB9Ci0rCi0rCSAgICBEV19UQUdf c3VicHJvZ3JhbSB7Ci0rCQl7bmFtZSBtYWlufQotKwkJe0RXX0FUX2V4dGVybmFsIDEgZmxhZ30K LSsJCXtsb3dfcGMgW2dkYl90YXJnZXRfc3ltYm9sIG1haW5dIERXX0ZPUk1fYWRkcn0KLSsJCXto aWdoX3BjIFtnZGJfdGFyZ2V0X3N5bWJvbCBtYWluXSsweDEwMDAwIERXX0ZPUk1fYWRkcn0KLSsJ ICAgIH0gewotKwkJRFdfVEFHX2xleGljYWxfYmxvY2sgewotKwkJfSB7Ci0rCQkgICAgRFdfVEFH X3ZhcmlhYmxlIHsKLSsJCQl7RFdfQVRfbmFtZSB0ZXN0dmFyfQotKwkJCSAgICB7RFdfQVRfdHlw ZSA6JGludGVnZXJfbGFiZWx9Ci0rCQkJICAgIHtEV19BVF9leHRlcm5hbCAxIGZsYWd9Ci0rCQkJ e0RXX0FUX2xvY2F0aW9uIHsKLSsJCQkgICAgRFdfT1BfYWRkciBbZ2RiX3RhcmdldF9zeW1ib2wg bWFpbl0KLSsJCQl9IFNQRUNJQUxfZXhwcn0KLSsJCSAgICB9Ci0rCQl9Ci0rCSAgICB9Ci0rCX0K LSsgICAgfQotK30KLSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4 cCAke3Rlc3RmaWxlfSBcCi0rCQkJICBbbGlzdCAkc3JjZmlsZTIgJGFzbV9maWxlXSB7bm9kZWJ1 Z31dIH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rcnVudG9fbWFpbgotKwotKyMgRkFJTGlu ZyBHREIgZGlkIHByaW50OiBObyBzeW1ib2wgInRlc3R2YXIiIGluIGN1cnJlbnQgY29udGV4dC4K LStnZGJfdGVzdCAicCB0ZXN0dmFyIiB7ID0gLT9bMC05XSt9Ci0tLSAKLTIuNS41Ci0KCmRpZmYg LS1naXQgYS9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4 NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKaW5kZXggYjY1N2JkNS4uYmEwNjIyYSAxMDA2NDQK LS0tIGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0 MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAorSW5kZXg6IGdkYi03 LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAky MDE2LTAyLTExIDIwOjU2OjMyLjQ3MDY3NDg3NyArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTYtMDItMTEgMjA6NTY6NTEuMTU4Nzk3 NzEyICswMTAwCistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvY29uZmlnL2kzODYv bGludXg2NC5taAkyMDE2LTA4LTA3IDIyOjI3OjEzLjg4OTI4NTI3NCArMDIwMAorKysrIGdkYi03 LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTYtMDgtMDcgMjI6 Mjk6MjAuNDUxMzExMTI0ICswMjAwCiBAQCAtNyw3ICs3LDcgQEAKICAJbGludXgtcHJvY2ZzLm8g bGludXgtcHRyYWNlLm8gbGludXgtYnRyYWNlLm8gXAogIAlsaW51eC13YWl0cGlkLm8gbGludXgt cGVyc29uYWxpdHkubyB4ODYtbGludXgubyBcCkBAIC0xMSwxMCArMTEsMTAgQEAgSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiAgTkFUX0NERVBT ID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CiAgCiAgIyBUaGUgZHluYW1pY2FsbHkgbG9h ZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKLUluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbGludXgubWgKK0luZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlnL2kzODYvbGludXgubWgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE2 LTAyLTExIDIwOjU2OjI2LjkyNTYzODQzMCArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE2LTAyLTExIDIwOjU2OjMyLjQ3MTY3NDg4NCAr MDEwMAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4 Lm1oCTIwMTYtMDgtMDcgMjI6Mjc6MTMuODg5Mjg1Mjc0ICswMjAwCisrKysgZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUx MzExMTI0ICswMjAwCiBAQCAtMSw2ICsxLDYgQEAKICAjIEhvc3Q6IEludGVsIDM4NiBydW5uaW5n IEdOVS9MaW51eC4KICAKQEAgLTIzLDEwICsyMywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCiAgTkFUREVQRklMRVM9IGluZi1wdHJhY2Uu byBmb3JrLWNoaWxkLm8gXAogIAl4ODYtbmF0Lm8geDg2LWRyZWdzLm8gaTM4Ni1saW51eC1uYXQu byB4ODYtbGludXgtbmF0Lm8gXAogIAlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBc Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgK K0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5o CTIwMTYtMDItMTEgMjA6NTY6MzIuNDcxNjc0ODg0ICswMTAwCisrKysgZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgJMjAxNi0wOC0wNyAyMjoyOToyMC40NTEz MTExMjQgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05V L0xpbnV4IGkzODYuCiArCkBAIC01NiwxMCArNTYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5oCiArI2RlZmluZSB0YXJnZXRfY2FuX3Vz ZV9oYXJkd2FyZV93YXRjaHBvaW50KHR5cGUsIGNudCwgb3QpIDEKICsKICsjZW5kaWYgLyogTk1f TElOVVg2NF9IICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2 L25tLWxpbnV4NjQuaAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4 Ni9ubS1saW51eDY0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmln L2kzODYvbm0tbGludXg2NC5oCTIwMTYtMDItMTEgMjA6NTY6MzIuNDcxNjc0ODg0ICswMTAwCisr KysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAkyMDE2 LTA4LTA3IDIyOjI5OjIwLjQ1MTMxMTEyNCArMDIwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIE5h dGl2ZSBzdXBwb3J0IGZvciBHTlUvTGludXggYW1kNjQuCiArCkBAIC04OSwxMyArODksMTMgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgK ICsjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQodHlwZSwgY250LCBv dCkgMQogKwogKyNlbmRpZiAvKiBOTV9MSU5VWDY0X0ggKi8KLUluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGFyZ2V0LmgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGFy Z2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90YXJn ZXQuaAkyMDE2LTAyLTExIDIwOjU2OjI2LjkyNjYzODQzNyArMDEwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90YXJnZXQuaAkyMDE2LTAyLTExIDIwOjU2OjMyLjQ3MjY3NDg5MCArMDEw MAotQEAgLTE5MjQsOSArMTkyNCwxMSBAQAotICAgIENOVCBpcyB0aGUgbnVtYmVyIG9mIHN1Y2gg d2F0Y2hwb2ludHMgdXNlZCBzbyBmYXIsIGluY2x1ZGluZyB0aGlzCi0gICAgb25lLiAgT1RIRVJU WVBFIGlzIHdobyBrbm93cyB3aGF0Li4uICAqLworLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9y aWcvZ2RiL3RhcmdldC5oCTIwMTYtMDgtMDcgMjI6Mjc6MTMuODg5Mjg1Mjc0ICswMjAwCisrKysg Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3RhcmdldC5oCTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUy MzExMTMyICswMjAwCitAQCAtMTkzOSw5ICsxOTM5LDExIEBACisgICAgb25lLiAgT1RIRVJUWVBF IGlzIHRoZSBudW1iZXIgb2Ygd2F0Y2hwb2ludHMgb2Ygb3RoZXIgdHlwZXMgdGhhbgorICAgIHRo aXMgb25lIHVzZWQgc28gZmFyLiAgKi8KICAKICsjaWZuZGVmIHRhcmdldF9jYW5fdXNlX2hhcmR3 YXJlX3dhdGNocG9pbnQKICAjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9p bnQoVFlQRSxDTlQsT1RIRVJUWVBFKSBcCkBAIC0xMDUsMTAgKzEwNSwxMCBAQCBJbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3RhcmdldC5oCiAgCiAgLyogUmV0dXJucyB0aGUgbnVtYmVy IG9mIGRlYnVnIHJlZ2lzdGVycyBuZWVkZWQgdG8gd2F0Y2ggdGhlIGdpdmVuCiAgICAgbWVtb3J5 IHJlZ2lvbiwgb3IgemVybyBpZiBub3Qgc3VwcG9ydGVkLiAgKi8KLUluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1 bi5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJ MjAxNi0wMi0xMSAyMDo1NjozMi40NzI2NzQ4OTAgKzAxMDAKKysrKyBnZGItNy4xMS45MC4yMDE2 MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJ MjAxNi0wOC0wNyAyMjoyOToyMC40NTIzMTExMzIgKzAyMDAKIEBAIC0wLDAgKzEsNDAgQEAKICsj IENvcHlyaWdodCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtMTUwLDMgKzE1MCwxNiBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCiArZ2RiX3Rlc3QgIiIg Im1haW4gLiogYXQgLioiICJzdGFydCIKICsKICtnZGJfdGVzdCAiY29udGludWUiICJDb250aW51 aW5nLlxyXG5cclxuSGFyZHdhcmUgcmVhZCB3YXRjaHBvaW50IFxbMC05XF0rOiB3YXRjaGVlXHJc blxyXG5WYWx1ZSA9IDBcclxuLioiCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2Jy ZWFrcG9pbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2Ri L2JyZWFrcG9pbnQuYwkyMDE2LTA4LTA3IDIyOjMzOjM4LjgzNTQwNTQ1OCArMDIwMAorKysrIGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi9icmVha3BvaW50LmMJMjAxNi0wOC0wNyAyMjozNDo0NS4w MjM5NDE5NTAgKzAyMDAKK0BAIC0xNDk1Myw3ICsxNDk1Myw3IEBACisgCisgICBpZiAoYnB0LT50 eXBlID09IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQpCisgICAgIHsKKy0gICAgICBpbnQgaTsKKysg ICAgICBpbnQgaSBBVFRSSUJVVEVfVU5VU0VEOworICAgICAgIGkgPSBod19icmVha3BvaW50X3Vz ZWRfY291bnQgKCk7CisgICAgICAgdGFyZ2V0X3Jlc291cmNlc19vayA9IAorIAl0YXJnZXRfY2Fu X3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChicF9oYXJkd2FyZV9icmVha3BvaW50LCAKCmRpZmYg LS1naXQgYS9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2ggYi9nZGItZHRzLXJoZWw2 LXB5dGhvbi1jb21wYXQucGF0Y2gKaW5kZXggODM4OGM4Ni4uY2JhMWE1YiAxMDA2NDQKLS0tIGEv Z2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNoCisrKyBiL2dkYi1kdHMtcmhlbDYtcHl0 aG9uLWNvbXBhdC5wYXRjaApAQCAtMSwxMCArMSwxMCBAQAogaHR0cHM6Ly9idWd6aWxsYS5yZWRo YXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMDIwMDA0CiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAx NS0wNS0zMSAxODowNTo0My4wNDY3NDYzNTEgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE1LTA1LTMxIDE4OjA1OjU4LjQ4Mzg0 MTY1NSArMDIwMAotQEAgLTYwLDYgKzYwLDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgky MDE2LTA3LTAzIDE2OjMyOjEzLjc4ODE2NDA0MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2 ODE5ODg1MCArMDIwMAorQEAgLTYxLDYgKzYxLDggQEAKICAJZ2RiL2ZyYW1lcy5weSBcCiAgCWdk Yi9GcmFtZUl0ZXJhdG9yLnB5IFwKICAJZ2RiL0ZyYW1lRGVjb3JhdG9yLnB5IFwKQEAgLTEzLDE4 ICsxMywxOCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZGF0YS1kaXJlY3Rvcnkv TWFrZWZpbGUuaW4KICAJZ2RiL3R5cGVzLnB5IFwKICAJZ2RiL3ByaW50aW5nLnB5IFwKICAJZ2Ri L3Vud2luZGVyLnB5IFwKLUBAIC03Niw2ICs3OCw3IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCitA QCAtNzcsNiArNzksNyBAQAogIAlnZGIvY29tbWFuZC9wcmV0dHlfcHJpbnRlcnMucHkgXAogIAln ZGIvY29tbWFuZC9wcm9tcHQucHkgXAogIAlnZGIvY29tbWFuZC9leHBsb3JlLnB5IFwKICsJZ2Ri L2NvbW1hbmQvYmFja3RyYWNlLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKKyAJ Z2RiL2Z1bmN0aW9uL2FzX3N0cmluZy5weSBcCiAgCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkg XAotIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5IFwKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CTIwMTUt MDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2 OTE5ODg1OSArMDIwMAogQEAgLTAsMCArMSwxMjIgQEAKICsjIFdyYXBwZXIgQVBJIGZvciBmcmFt ZXMuCiArCkBAIC0xNDgsMTAgKzE0OCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CiArCiArICAgIGRlZiBfX2dldGF0dHJf XyAoc2VsZiwgbmFtZSk6CiArICAgICAgICByZXR1cm4gZ2V0YXR0ciAoc2VsZi5mcmFtZSwgbmFt ZSkKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJh Y2UucHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFj a3RyYWNlLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9n ZGIvYmFja3RyYWNlLnB5CTIwMTUtMDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQkyMDE2 LTA3LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgRmls dGVyaW5nIGJhY2t0cmFjZS4KICsKQEAgLTE5NSwxMCArMTk1LDEwIEBAIEluZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKICsgICAgICAgIHJl dHVybiBpdGVyCiArICAgIHJldHVybiBvbGRfZnJhbWVfZmlsdGVyIChpdGVyKQogKwotSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNl LnB5CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1h bmQvYmFja3RyYWNlLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9u L2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNS0wNS0zMSAxODowNTo1OC40ODQ4NDE2 NjEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29t bWFuZC9iYWNrdHJhY2UucHkJMjAxNi0wNy0wMyAxNjozMjoxNy44NjkxOTg4NTkgKzAyMDAKIEBA IC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQuCiArCgpkaWZmIC0tZ2l0 IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTFvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJp ZGUtaW50ZWwtMW9mNi5wYXRjaAppbmRleCBiMWMxMzFkLi4yMTAxY2RkIDEwMDY0NAotLS0gYS9n ZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJp ZGUtaW50ZWwtMW9mNi5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0My5odG1sCi1TdWJqZWN0OiBbUEFUQ0gg djIgMS82XSBmb3J0cmFuOiBhbGxvdyBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMKK1JFOiBb cGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlz IHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2 LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSA5OTM4MzQ0NjlmMWU2NGU1NDYxZTFlMWJlZjkxN2Zk Mzg4ZmU0MjhlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5t YW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBUaHUsIDEyIE5vdiAy MDE1IDE1OjQ1OjUyICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMS82XSBmb3J0cmFuOiBhbGxvdyBt dWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMKIAogQWRkIGFuIGFyZ3VtZW50IGNvdW50IGZvciBz dWJyYW5nZSBleHByZXNzaW9ucyBpbiBGb3J0cmFuLgogQmFzZWQgb24gdGhlIGNvdW50ZWQgdmFs dWUgY2FsY3VsYXRlIGEgbmV3IGFycmF5IHdpdGggdGhlCkBAIC0zNiwxNyArMzksMTcgQEAgbmV3 PiAkMyA9ICggKCAyMSwgMzEsIDQxKSAoIDIyLCAzMiwgNDIpICggMjMsIDMzLCA0MykgKQogCiBT aWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGlu dGVsLmNvbT4KIC0tLQotIGdkYi9ldmFsLmMgICB8IDMwOSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIGdkYi9ldmFsLmMgICB8IDMx NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLQogIGdkYi9mLWV4cC55ICB8ICAgMiArCi0gZ2RiL3ZhbG9wcy5jIHwgMTU3ICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLQorIGdkYi92YWxvcHMuYyB8IDE1OSArKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0KICBnZGIvdmFsdWUuaCAgfCAgIDIgKwotIDQgZmlsZXMgY2hhbmdl ZCwgMzc1IGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQorIDQgZmlsZXMgY2hhbmdlZCwg MzgwIGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0IGEvZ2RiL2V2 YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0Ci0tLS0gYS9n ZGIvZXZhbC5jCi0rKysgYi9nZGIvZXZhbC5jCi1AQCAtMzk5LDI5ICszOTksMjUzIEBAIGluaXRf YXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVlICplbGVtZW50 LAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9ldmFsLmMKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9ldmFsLmMJMjAxNi0wOC0wNyAyMjowNjo0 NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZXZhbC5jCTIw MTYtMDgtMDcgMjI6MDg6MjEuNzA4Njg4MjU5ICswMjAwCitAQCAtMzk5LDI5ICszOTksMjU0IEBA CiAgICByZXR1cm4gaW5kZXg7CiAgfQogIApAQCAtNjYsNDEgKzY5LDQ0IEBAIGluZGV4IDc4YWQ5 NDYuLmM5ZjMyNWYgMTAwNjQ0CiAtICBpbnQgcGMgPSAoKnBvcykgKyAxOwogKyAgaW50IGksIGRp bV9jb3VudCA9IDA7CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKLSAgIHN0cnVj dCB0eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlw ZSAoYXJyYXkpKSk7Ci0tICBlbnVtIGY5MF9yYW5nZV90eXBlIHJhbmdlX3R5cGUKLS0gICAgPSAo ZW51bSBmOTBfcmFuZ2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2Nv bnN0KTsKKy0gIHN0cnVjdCB0eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhf VFlQRSAodmFsdWVfdHlwZSAoYXJyYXkpKSk7CistICBlbnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlw ZQorLSAgICA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNd Lmxvbmdjb25zdCk7CiAtIAogLSAgKnBvcyArPSAzOwogKyAgc3RydWN0IHZhbHVlICpuZXdfYXJy YXkgPSBhcnJheTsKICsgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAobmV3X2FycmF5KSk7Ci0rICBzdHJ1Y3QgdHlwZSAqdGVtcF90eXBlOworKyAg c3RydWN0IHR5cGUgKmVsdF90eXBlOworKworKyAgdHlwZWRlZiBzdHJ1Y3Qgc3Vic2NyaXB0X3Jh bmdlCisrICB7CisrICAgIGVudW0gcmFuZ2VfdHlwZSBmOTBfcmFuZ2VfdHlwZTsKKysgICAgTE9O R0VTVCBsb3csIGhpZ2g7CisrICB9IHN1YnNjcmlwdF9yYW5nZTsKKysKKysgIHR5cGVkZWYgZW51 bSBzdWJzY3JpcHRfa2luZAorKyAgeworKyAgICBTVUJTQ1JJUFRfUkFOR0UsICAgIC8qIGUuZy4g Iihsb3dib3VuZDpoaWdoYm91bmQpIiAgKi8KKysgICAgU1VCU0NSSVBUX0lOREVYICAgIC8qIGUu Zy4gIihsaXRlcmFsKSIgICovCisrICB9IGtpbmQ7CiArCiArICAvKiBMb2NhbCBzdHJ1Y3QgdG8g aG9sZCB1c2VyIGRhdGEgZm9yIEZvcnRyYW4gc3ViYXJyYXkgZGltZW5zaW9ucy4gICovCiArICBz dHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlCiArICB7CiArICAgIC8qIEZvciBldmVyeSBkaW1lbnNpb24s IHdlIGFyZSBlaXRoZXIgd29ya2luZyBvbiBhIHJhbmdlIG9yIGFuIGluZGV4CiArICAgICAgIGV4 cHJlc3Npb24sIHNvIHdlIHN0b3JlIHRoaXMgaW5mbyBzZXBhcmF0ZWx5IGZvciBsYXRlci4gICov Ci0rICAgIGVudW0KLSsgICAgewotKyAgICAgIFNVQlNDUklQVF9SQU5HRSwgICAgLyogZS5nLiAi KGxvd2JvdW5kOmhpZ2hib3VuZCkiICAqLwotKyAgICAgIFNVQlNDUklQVF9JTkRFWCAgICAvKiBl LmcuICIobGl0ZXJhbCkiICAqLwotKyAgICB9IGtpbmQ7CisrICAgIGVudW0gc3Vic2NyaXB0X2tp bmQga2luZDsKICsKICsgICAgLyogV2UgYWxzbyBzdG9yZSBlaXRoZXIgdGhlIGxvd2VyIGFuZCB1 cHBlciBib3VuZCBpbmZvLCBvciB0aGUgaW5kZXgKICsgICAgICAgbnVtYmVyLiAgQmVmb3JlIGV2 YWx1YXRpb24gb2YgdGhlIGlucHV0IHZhbHVlcywgd2UgZG8gbm90IGtub3cgaWYgd2UgYXJlCiAr ICAgICAgIGFjdHVhbGx5IHdvcmtpbmcgb24gYSByYW5nZSBvZiByYW5nZXMsIG9yIGFuIGluZGV4 IGluIGEgcmFuZ2UuICBTbyBhcyBhCiArICAgICAgIGZpcnN0IHN0ZXAgd2Ugc3RvcmUgYWxsIGlu cHV0IGluIGEgdW5pb24uICBUaGUgYXJyYXkgY2FsY3VsYXRpb24gaXRzZWxmCiArICAgICAgIGRl YWxzIHdpdGggdGhpcyBsYXRlciBvbi4gICovCi0rICAgIHVuaW9uCisrICAgIHVuaW9uIGVsZW1l bnRfcmFuZ2UKICsgICAgewotKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UKLSsgICAgICB7 Ci0rICAgICAgICBlbnVtIGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOwotKyAgICAgICAg TE9OR0VTVCBsb3csIGhpZ2g7Ci0rICAgICAgfQotKyAgICAgIHJhbmdlOworKyAgICAgIHN1YnNj cmlwdF9yYW5nZSByYW5nZTsKICsgICAgICBMT05HRVNUIG51bWJlcjsKLSsgICAgfTsKKysgICAg fSBVOwogKyAgfSAqc3Vic2NyaXB0X2FycmF5OwogKwogKyAgLyogQ2hlY2sgaWYgdGhlIG51bWJl ciBvZiBhcmd1bWVudHMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgbWF0Y2hlcwpAQCAtMTA5LDcgKzEx NSw3IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArICBpZiAobmFyZ3MgIT0gY2Fs Y19mNzdfYXJyYXlfZGltcyAodmFsdWVfdHlwZSAobmV3X2FycmF5KSkpCiArICAgIGVycm9yIChf KCJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIpKTsKICsKLSsgIHN1YnNjcmlwdF9hcnJheSA9 IGFsbG9jYSAoc2l6ZW9mICgqc3Vic2NyaXB0X2FycmF5KSAqIG5hcmdzKTsKKysgIHN1YnNjcmlw dF9hcnJheSA9IChzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlKikgYWxsb2NhIChzaXplb2YgKCpzdWJz Y3JpcHRfYXJyYXkpICogbmFyZ3MpOwogKwogKyAgLyogUGFyc2UgdGhlIHVzZXIgaW5wdXQgaW50 byB0aGUgU1VCU0NSSVBUX0FSUkFZIHRvIHN0b3JlIGl0LiAgV2UgbmVlZAogKyAgICAgdG8gZXZh bHVhdGUgaXQgZmlyc3QsIGFzIHRoZSBpbnB1dCBpcyBmcm9tIGxlZnQtdG8tcmlnaHQuICBUaGUK QEAgLTEyOCwxNiArMTM0LDIwIEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAtICAg IGxvd19ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBl eHAsIHBvcywgbm9zaWRlKSk7CiArICAgICAgLyogVGhlIHVzZXIgaW5wdXQgaXMgYSByYW5nZSwg d2l0aCBvciB3aXRob3V0IGxvd2VyIGFuZCB1cHBlciBib3VuZC4KICsJIEUuZy46ICJwIGFycnko Mjo1KSIsICJwIGFycnkoIDo1KSIsICJwIGFycnkoIDogKSIsIGV0Yy4gICovCi0rICAgICAgaWYg KGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JBTkdFKQorKyAgICAgIGlmIChleHAt PmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQogKwl7CiArCSAgaW50IHBjID0gKCpwb3Mp ICsgMTsKLSsJICBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlICpyYW5nZTsKLSsKKysJICBzdWJzY3Jp cHRfcmFuZ2UgKnJhbmdlOworIAorLSAgaWYgKHJhbmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZB VUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQorLSAgICBoaWdoX2JvdW5k ID0gVFlQRV9ISUdIX0JPVU5EIChyYW5nZSk7CistICBlbHNlCistICAgIGhpZ2hfYm91bmQgPSB2 YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lk ZSkpOwogKwkgIGluZGV4LT5raW5kID0gU1VCU0NSSVBUX1JBTkdFOwotKwkgIHJhbmdlID0gJmlu ZGV4LT5yYW5nZTsKKysJICByYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKICsKICsJICAqcG9zICs9 IDM7Ci0rCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0 c1twY10ubG9uZ2NvbnN0KTsKKysJICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSAoZW51bSByYW5n ZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwogKwogKwkg IC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0aGUgYml0IGhh cyBiZWVuCiArCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWduIHRoZSB2YWx1ZSBmcm9tIHRoZSBl bHQgc3RhY2suICBTYW1lIGZvcgpAQCAtMTU1LDE3ICsxNjUsMTMgQEAgaW5kZXggNzhhZDk0Ni4u YzlmMzI1ZiAxMDA2NDQKICsgICAgICBlbHNlCiArCXsKICsJICBzdHJ1Y3QgdmFsdWUgKnZhbDsK LSAKLS0gIGlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBl ID09IEJPVEhfQk9VTkRfREVGQVVMVCkKLS0gICAgaGlnaF9ib3VuZCA9IFRZUEVfSElHSF9CT1VO RCAocmFuZ2UpOwotLSAgZWxzZQotLSAgICBoaWdoX2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZh bHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpKTsKKysKICsJICBpbmRl eC0+a2luZCA9IFNVQlNDUklQVF9JTkRFWDsKICsKICsJICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNj cmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3LiAgVGhpcwogKwkgICAgIGVu c3VyZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBwcm92aWRlZCBpbmRleC4gICovCiArCSAgdmFsID0g ZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotKwkgIGlu ZGV4LT5udW1iZXIgPSB2YWx1ZV9hc19sb25nICh2YWwpOworKwkgIGluZGV4LT5VLm51bWJlciA9 IHZhbHVlX2FzX2xvbmcgKHZhbCk7CiArCX0KICsKICsgICAgfQpAQCAtMTg4LDcgKzE5NCw3IEBA IGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArCSAgICAgICB0cmVhdCBhbnkgc3Vic2Vx dWVudCB1c2VyIGVudHJ5IGFzIGEgcmFuZ2UuICBXZSBzaW1wbHkKICsJICAgICAgIGluY3JlbWVu dCBESU1fQ09VTlQgd2hpY2ggdGVsbHMgdXMgaG93IG1hbnkgdGltZXMgd2UgYXJlCiArCSAgICAg ICBjYWxsaW5nIFZBTFVFX1NMSUNFXzEuICAqLwotKwkgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5n ZSAqcmFuZ2UgPSAmaW5kZXgtPnJhbmdlOworKwkgICAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9 ICZpbmRleC0+VS5yYW5nZTsKICsKICsJICAgIC8qIElmIG5vIGxvd2VyIGJvdW5kIHdhcyBwcm92 aWRlZCBieSB0aGUgdXNlciwgd2UgdGFrZSB0aGUKICsJICAgICAgIGRlZmF1bHQgYm91bmRhcnku ICBTYW1lIGZvciB0aGUgaGlnaCBib3VuZC4gICovCkBAIC0yMzIsMTkgKzIzOCwxOSBAQCBpbmRl eCA3OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAogKwkgICAgICAgdG8gZ2V0IHRoZSB2YWx1ZSBvZmZz ZXQgcmlnaHQuICAqLwogKwkgICAgaWYgKGRpbV9jb3VudCA9PSAwKQogKwkgICAgICBuZXdfYXJy YXkKLSsJICAgICAgICA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAobmV3X2FycmF5LCBpbmRl eC0+bnVtYmVyLAorKwkgICAgICAgID0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChuZXdfYXJy YXksIGluZGV4LT5VLm51bWJlciwKICsJCQkJCSAgICBmNzdfZ2V0X2xvd2VyYm91bmQgKHZhbHVl X3R5cGUKICsJCQkJCQkJCSAgKG5ld19hcnJheSkpKTsKICsJICAgIGVsc2UKICsJICAgICAgewog KwkJLyogQ2hlY2sgZm9yIHZhbGlkIGluZGV4IGlucHV0LiAgKi8KLSsJCWlmIChpbmRleC0+bnVt YmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCi0rCQkgICAgfHwgaW5kZXgtPm51bWJl ciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCisrCQlpZiAoaW5kZXgtPlUubnVtYmVy IDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCisrCQkgICAgfHwgaW5kZXgtPlUubnVtYmVy ID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKICsJCSAgZXJyb3IgKF8oImVycm9yIG5v IHN1Y2ggdmVjdG9yIGVsZW1lbnQiKSk7CiArCiArCQlkaW1fY291bnQrKzsKICsJCW5ld19hcnJh eSA9IHZhbHVlX3NsaWNlXzEgKG5ld19hcnJheSwKLSsJCQkJCSAgIGxvbmdlc3RfdG9faW50IChp bmRleC0+bnVtYmVyKSwKKysJCQkJCSAgIGxvbmdlc3RfdG9faW50IChpbmRleC0+VS5udW1iZXIp LAogKwkJCQkJICAgMSwgLyogbGVuZ3RoIGlzICcxJyBlbGVtZW50ICAqLwogKwkJCQkJICAgZGlt X2NvdW50KTsKICsJICAgICAgfQpAQCAtMjcwLDkgKzI3Niw4IEBAIGluZGV4IDc4YWQ5NDYuLmM5 ZjMyNWYgMTAwNjQ0CiArICBpZiAoZGltX2NvdW50ID4gMSkKICsgICAgewogKyAgICAgIHN0cnVj dCB2YWx1ZSAqdiA9IE5VTEw7Ci0gCi0tICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3df Ym91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSsgICAgICB0ZW1wX3R5cGUgPSBU WVBFX1RBUkdFVF9UWVBFICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKKysKKysgICAgICBlbHRf dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOwogKwogKyAg ICAgIC8qIEV2ZXJ5IFNVQlNDUklQVF9SQU5HRSBpbiB0aGUgdXNlciBpbnB1dCBzaWduaWZpZXMg YW4gYWN0dWFsIHJhbmdlIGluCiArCSB0aGUgb3V0cHV0IGFycmF5LiAgU28gd2UgdHJhdmVyc2Ug dGhlIFNVQlNDUklQVF9BUlJBWSBhZ2FpbiwgbG9va2luZwpAQCAtMjg5LDI2ICsyOTQsMjYgQEAg aW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQKICsKICsJICAgICAgcmFuZ2VfdHlwZQogKwkJ PSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKE5VTEwsCi0rCQkJCSAgICAgdGVtcF90eXBlLAot KwkJCQkgICAgIDEsCi0rCQkJCSAgICAgaW5kZXgtPnJhbmdlLmhpZ2ggLSBpbmRleC0+cmFuZ2Uu bG93ICsgMSk7CisrCQkJCQkgICAgZWx0X3R5cGUsCisrCQkJCQkgICAgMSwKKysJCQkJCSAgICBp bmRleC0+VS5yYW5nZS5oaWdoCisrCQkJCQkgICAgICAtIGluZGV4LT5VLnJhbmdlLmxvdyArIDEp OwogKwogKwkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVM TCwKLSsJCQkJCQkgICAgICB0ZW1wX3R5cGUsCisrCQkJCQkJICAgICAgZWx0X3R5cGUsCiArCQkJ CQkJICAgICAgcmFuZ2VfdHlwZSk7CiArCi0rCSAgICAgIC8qIEZvciBzb21lIHJlYXNvbiB0aGUg dHlwZSBjb2RlIG9mIHRoZSBjb250ZW50cyBpcyBtaXNzaW5nLCBzbwotKwkJIHJlc2V0IGl0IGZy b20gdGhlIG9yaWdpbmFsIGFycmF5LiAgKi8KICsJICAgICAgVFlQRV9DT0RFIChpbnRlcmltX2Fy cmF5X3R5cGUpCiArCQk9IFRZUEVfQ09ERSAodmFsdWVfdHlwZSAobmV3X2FycmF5KSk7Ci0rCisg CistICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBs b3dfYm91bmQgKyAxKTsKICsJICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlIChpbnRlcmltX2FycmF5 X3R5cGUpOwogKwotKwkgICAgICB0ZW1wX3R5cGUgPSB2YWx1ZV90eXBlICh2KTsKKysJICAgICAg ZWx0X3R5cGUgPSB2YWx1ZV90eXBlICh2KTsKICsJICAgIH0KICsKICsJfQotKyAgICAgIHZhbHVl X2NvbnRlbnRzX2NvcHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQRV9MRU5HVEggKHRlbXBfdHlw ZSkpOworKyAgICAgIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQ RV9MRU5HVEggKGVsdF90eXBlKSk7CiArICAgICAgcmV0dXJuIHY7CiArICAgIH0KICsKQEAgLTMx NiwyNCArMzIxLDI0IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAgfQogIAogIAot QEAgLTE4MTAsMTQgKzIwMzQsMTEgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTgxMCwxNCArMjAzNSwxMSBAQAogICAgICAgIHN3aXRj aCAoY29kZSkKICAJewogIAljYXNlIFRZUEVfQ09ERV9BUlJBWToKLS0JICBpZiAoZXhwLT5lbHRz Wypwb3NdLm9wY29kZSA9PSBPUF9GOTBfUkFOR0UpCistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5v cGNvZGUgPT0gT1BfUkFOR0UpCiAtCSAgICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcx LCBleHAsIHBvcywgbm9zaWRlKTsKIC0JICBlbHNlCiAtCSAgICBnb3RvIG11bHRpX2Y3N19zdWJz Y3JpcHQ7CiArCSAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5h cmdzLCBub3NpZGUpOwogIAogIAljYXNlIFRZUEVfQ09ERV9TVFJJTkc6Ci0gCSAgaWYgKGV4cC0+ ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JBTkdFKQorIAkgIGlmIChleHAtPmVsdHNbKnBv c10ub3Bjb2RlID09IE9QX1JBTkdFKQogLQkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAo YXJnMSwgZXhwLCBwb3MsIG5vc2lkZSk7CiArCSAgICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5 IChhcmcxLCBleHAsIHBvcywgMSwgbm9zaWRlKTsKICAJICBlbHNlCiAgCSAgICB7CiAgCSAgICAg IGFyZzIgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7 Ci1AQCAtMjIyMiw0OSArMjQ0Myw2IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTIyMjMsNDkgKzI0NDUsNiBAQAogIAl9CiAgICAgICAg cmV0dXJuIChhcmcxKTsKICAKQEAgLTM4Myw3ICszODgsNyBAQCBpbmRleCA3OGFkOTQ2Li5jOWYz MjVmIDEwMDY0NAogICAgICBjYXNlIEJJTk9QX0xPR0lDQUxfQU5EOgogICAgICAgIGFyZzEgPSBl dmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSk7CiAgICAgICAgaWYg KG5vc2lkZSA9PSBFVkFMX1NLSVApCi1AQCAtMzEyMSw2ICszMjk5LDkgQEAgY2FsY19mNzdfYXJy YXlfZGltcyAoc3RydWN0IHR5cGUgKmFycmF5X3R5cGUpCitAQCAtMzEyMyw2ICszMzAyLDkgQEAK ICAgIGludCBuZGltZW4gPSAxOwogICAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwogIApAQCAtMzkz LDExICszOTgsMTEgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQKICAgIGlmICgoVFlQ RV9DT0RFIChhcnJheV90eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpKQogICAgICBlcnJvciAoXygi Q2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5IHR5cGUiKSk7CiAgCi1kaWZmIC0t Z2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggNGZhYWMzMi4uOTM0M2FiYiAx MDA2NDQKLS0tLSBhL2dkYi9mLWV4cC55Ci0rKysgYi9nZGIvZi1leHAueQotQEAgLTMwOCw2ICsz MDgsOCBAQCBhcmdsaXN0IDoJc3VicmFuZ2UKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9n ZGIvZi1leHAueQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2Ri L2YtZXhwLnkJMjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4x MS45MC4yMDE2MDgwNy9nZGIvZi1leHAueQkyMDE2LTA4LTA3IDIyOjA4OjIxLjcwOTY4ODI2OCAr MDIwMAorQEAgLTI1Myw2ICsyNTMsOCBAQAogICAgIAogIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBl eHAgICAlcHJlYyBBQk9WRV9DT01NQQogIAkJCXsgYXJnbGlzdF9sZW4rKzsgfQpAQCAtNDA2LDEx ICs0MTEsMTEgQEAgaW5kZXggNGZhYWMzMi4uOTM0M2FiYiAxMDA2NDQKICAJOwogIAogIC8qIFRo ZXJlIGFyZSBmb3VyIHNvcnRzIG9mIHN1YnJhbmdlIHR5cGVzIGluIEY5MC4gICovCi1kaWZmIC0t Z2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCi1pbmRleCA1YTI0NGE5Li4wOWVhODc3 IDEwMDY0NAotLS0tIGEvZ2RiL3ZhbG9wcy5jCi0rKysgYi9nZGIvdmFsb3BzLmMKLUBAIC0zNzU5 LDU2ICszNzU5LDE1MSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1 YWdlX2RlZm4gKmxhbmcpCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3ZhbG9wcy5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFsb3BzLmMJ MjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2 MDgwNy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAyMjoxMzoyMi4wODMzNDA3NTAgKzAyMDAKK0BA IC0zNzc1LDU2ICszNzc1LDE1NCBAQAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfc2xpY2UgKHN0 cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCkKICB7CkBAIC00MjAs NyArNDI1LDkgQEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQKICsgIHJldHVybiB2YWx1 ZV9zbGljZV8xIChhcnJheSwgbG93Ym91bmQsIGxlbmd0aCwgMSk7CiArfQogKwotKy8qIENBTExf Q09VTlQgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgd2UgYXJlIGNhbGxpbmcgdGhlIGZ1bmN0aW9u IG9uY2UsIGUuZy4KKysvKiBWQUxVRV9TTElDRV8xIGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBk aW1lbnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIKKysgICBvZiBlbGVtZW50cyBhcyBkZWZp bmVkIGJ5IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbi4KKysgICBDQUxMX0NPVU5UIGlzIHVzZWQg dG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBjYWxsaW5nIHRoZSBmdW5jdGlvbiBvbmNlLCBlLmcuCiAr ICAgd2UgYXJlIHdvcmtpbmcgb24gdGhlIGN1cnJlbnQgZGltZW5zaW9uIG9mIEFSUkFZLCBvciBp ZiB3ZSBhcmUgY2FsbGluZwogKyAgIHRoZSBmdW5jdGlvbiByZXBlYXRlZGx5LiAgSW4gdGhlIGxh dGVyIGNhc2Ugd2UgbmVlZCB0byB0YWtlIGVsZW1lbnRzCiArICAgZnJvbSB0aGUgVEFSR0VUX1RZ UEUgb2YgQVJSQVkuCkBAIC00NDAsNyArNDQ3LDggQEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAx MDA2NDQKICsgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoYXJyYXkpKTsKICsgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYg KFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKICsgIHVuc2lnbmVkIGludCBlbHRfc2l6 ZSwgZWx0X29mZnM7Ci0rICBMT05HRVNUIGVsdF9zdHJpZGUsIGFyeV9oaWdoX2JvdW5kLCBhcnlf bG93X2JvdW5kOworKyAgLyogQVRUUklCVVRFX1VOVVNFRDogVkxBIGJ1ZzogaHR0cHM6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA4L21zZzAwMDk5Lmh0bWwgKi8KKysgIExP TkdFU1QgZWx0X3N0cmlkZSBBVFRSSUJVVEVfVU5VU0VELCBhcnlfaGlnaF9ib3VuZCwgYXJ5X2xv d19ib3VuZDsKICsgIHN0cnVjdCB2YWx1ZSAqdjsKICsgIGludCBzbGljZV9yYW5nZV9zaXplLCBp ID0gMCwgcm93X2NvdW50ID0gMSwgZWxlbV9jb3VudCA9IDE7CiAgCkBAIC00NTQsNiArNDYyLDEw IEBAIGluZGV4IDVhMjQ0YTkuLjA5ZWE4NzcgMTAwNjQ0CiAtICByYW5nZV90eXBlID0gVFlQRV9J TkRFWF9UWVBFIChhcnJheV90eXBlKTsKIC0gIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5n ZV90eXBlLCAmbG93ZXJib3VuZCwgJnVwcGVyYm91bmQpIDwgMCkKIC0gICAgZXJyb3IgKF8oInNs aWNlIGZyb20gYmFkIGFycmF5IG9yIGJpdHN0cmluZyIpKTsKKy0KKy0gIGlmIChsb3dib3VuZCA8 IGxvd2VyYm91bmQgfHwgbGVuZ3RoIDwgMAorLSAgICAgIHx8IGxvd2JvdW5kICsgbGVuZ3RoIC0g MSA+IHVwcGVyYm91bmQpCistICAgIGVycm9yIChfKCJzbGljZSBvdXQgb2YgcmFuZ2UiKSk7CiAr ICBhcnlfbG93X2JvdW5kID0gVFlQRV9MT1dfQk9VTkQgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlf dHlwZSkpOwogKyAgYXJ5X2hpZ2hfYm91bmQgPSBUWVBFX0hJR0hfQk9VTkQgKFRZUEVfSU5ERVhf VFlQRSAoYXJyYXlfdHlwZSkpOwogKwpAQCAtNDc5LDEwICs0OTEsNyBAQCBpbmRleCA1YTI0NGE5 Li4wOWVhODc3IDEwMDY0NAogKwkmJiAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJ TkVEIChhcnJheV90eXBlKQogKwkgICAgICAmJiBlbHRfb2ZmcyA+PSBUWVBFX0xFTkdUSCAoYXJy YXlfdHlwZSkpKQogKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSAK LS0gIGlmIChsb3dib3VuZCA8IGxvd2VyYm91bmQgfHwgbGVuZ3RoIDwgMAotLSAgICAgIHx8IGxv d2JvdW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91bmQpCi0tICAgIGVycm9yIChfKCJzbGljZSBv dXQgb2YgcmFuZ2UiKSk7CisrCiArICAvKiBDQUxMX0NPVU5UIGlzIDEgd2hlbiB3ZSBhcmUgZGVh bGluZyBlaXRoZXIgd2l0aCB0aGUgaGlnaGVzdCBkaW1lbnNpb24KICsgICAgIG9mIHRoZSBhcnJh eSwgb3IgYSBvbmUgZGltZW5zaW9uYWwgYXJyYXkuICBTZXQgUkFOR0VfVFlQRSBhY2NvcmRpbmds eS4KICsgICAgIEluIGJvdGggY2FzZXMgd2UgY2FsY3VsYXRlIGhvdyBtYW55IHJvd3MvZWxlbWVu dHMgd2lsbCBiZSBpbiB0aGUgb3V0cHV0CkBAIC01MTUsMTEgKzUyNCwxNiBAQCBpbmRleCA1YTI0 NGE5Li4wOWVhODc3IDEwMDY0NAogKyAgICAgIGRvbmUgd2l0aCBpdC4gICovCiAgCiArICBzbGlj ZV9yYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLCBUWVBFX1RBUkdF VF9UWVBFIChyYW5nZV90eXBlKSwKLSsJCQkJCWFyeV9sb3dfYm91bmQsIHNsaWNlX3JhbmdlX3Np emUpOworKwkJCQkJICAgICAgIGFyeV9sb3dfYm91bmQsIHNsaWNlX3JhbmdlX3NpemUpOwogICAg ewogLSAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJy YXlfdHlwZSk7CiAtICAgIExPTkdFU1Qgb2Zmc2V0CiAtICAgICAgPSAobG93Ym91bmQgLSBsb3dl cmJvdW5kKSAqIFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKy0K Ky0gICAgc2xpY2VfdHlwZSA9IGNyZWF0ZV9hcnJheV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVM TCwKKy0JCQkJICAgIGVsZW1lbnRfdHlwZSwKKy0JCQkJICAgIHNsaWNlX3JhbmdlX3R5cGUpOwor LSAgICBUWVBFX0NPREUgKHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKICsg ICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZTsKICsKICsgICAgLyogV2hlbiBDQUxMX0NPVU5U IGVxdWFscyAxIHdlIGNhbiB1c2UgdGhlIGxlZ2FjeSBjb2RlIGZvciBzdWJhcnJheXMuICAqLwpA QCAtNTI3LDEwICs1NDEsOCBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAogKyAgICAg IHsKICsJZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAgCi0t ICAgIHNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoKHN0cnVjdCB0eXBlICopIE5VTEws Ci0tCQkJCSAgICBlbGVtZW50X3R5cGUsCi0tCQkJCSAgICBzbGljZV9yYW5nZV90eXBlKTsKLS0g ICAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CistICAg IGlmIChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJy YXkpKQorLSAgICAgIHNsaWNlID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7CiAr CXNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwgZWxlbWVudF90eXBlLCBzbGlj ZV9yYW5nZV90eXBlKTsKICsKICsJVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAo YXJyYXlfdHlwZSk7CkBAIC01NDYsOSArNTU4LDcgQEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAx MDA2NDQKICsJCQkJIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJyYXkpICsgZWx0X29mZnMsCiAr CQkJCSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9faW50IChsZW5ndGgpKTsKICsJICB9Ci0gCi0tICAg IGlmIChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJy YXkpKQotLSAgICAgIHNsaWNlID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7Cisr CiArICAgICAgfQogKyAgICAvKiBXaGVuIENBTExfQ09VTlQgaXMgbGFyZ2VyIHRoYW4gMSB3ZSBh cmUgd29ya2luZyBvbiBhIHJhbmdlIG9mIHJhbmdlcy4KICsgICAgICAgU28gd2UgY29weSB0aGUg cmVsZXZhbnQgZWxlbWVudHMgaW50byB0aGUgbmV3IGFycmF5IHdlIHJldHVybi4gICovCkBAIC01 OTMsMTEgKzYwMywxMSBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAogIH0KICAKICAv KiBDcmVhdGUgYSB2YWx1ZSBmb3IgYSBGT1JUUkFOIGNvbXBsZXggbnVtYmVyLiAgQ3VycmVudGx5 IG1vc3Qgb2YgdGhlCi1kaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmggYi9nZGIvdmFsdWUuaAotaW5k ZXggMmVhYzVlZi4uMzQwMDQ2MCAxMDA2NDQKLS0tLSBhL2dkYi92YWx1ZS5oCi0rKysgYi9nZGIv dmFsdWUuaAotQEAgLTEwNTYsNiArMTA1Niw4IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhcnlp bmdfdG9fc2xpY2UgKHN0cnVjdCB2YWx1ZSAqKTsKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdmFsdWUuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcv Z2RiL3ZhbHVlLmgJMjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvdmFsdWUuaAkyMDE2LTA4LTA3IDIyOjA4OjIxLjcxMDY4ODI3 NiArMDIwMAorQEAgLTEwNjQsNiArMTA2NCw4IEBACiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq dmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqLCBpbnQsIGludCk7CiAgCkBAIC02MDYsNiArNjE2 LDMgQEAgaW5kZXggMmVhYzVlZi4uMzQwMDQ2MCAxMDA2NDQKICBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9saXRlcmFsX2NvbXBsZXggKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdmFsdWUgKiwK ICAJCQkJCSAgICBzdHJ1Y3QgdHlwZSAqKTsKICAKLS0tIAotMi41LjAKLQoKZGlmZiAtLWdpdCBh L2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0yb2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRl LWludGVsLTJvZjYucGF0Y2gKaW5kZXggYmY0ODE0My4uYjQxMDBmZSAxMDA2NDQKLS0tIGEvZ2Ri LWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4tc3RyaWRl LWludGVsLTJvZjYucGF0Y2gKQEAgLTEsMTAgKzEsMTMgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAwODQxLmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2 MiAyLzZdIGZvcnRyYW46IGNvbWJpbmUgc3ViYXJyYXkgYW5kIHN0cmluZyBjb21wdXRhdGlvbgor UkU6IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0aS1kaW1lbnNpb25hbCBzdWJh cnJheXMgd2l0aCBzdHJpZGVzCitodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVz LzIwMTYtMDcvbXNnMDAwMDkuaHRtbAogCitGcm9tIDczM2IzYjYwYmU1YzhkMjNmYTdlNDc0OThk MzVlNDcwMTUyOGYzYWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBDaHJpc3RvcGgg V2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KK0RhdGU6IEZyaSwgMTMg Tm92IDIwMTUgMDk6MDA6MzMgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzZdIGZvcnRyYW46IGNv bWJpbmUgc3ViYXJyYXkgYW5kIHN0cmluZyBjb21wdXRhdGlvbgogCi1TdHJpbmdzIG9ubHkgaGF2 ZSBvbmUgZGltZW5zaW9uLCBidXQgdGhlIGVsZW1lbnQgY29tcHV0YXRpb24gaXMKLWlkZW50aWNh bCB0byB0aGUgc3ViYXJyYXkgY29tcHV0YXRpb24gZm9yIHJhbmdlcyBhbmQgaW5kaWNlcy4KK1N0 cmluZ3MgdHlwZXMgYXJlIGhhbmRsZWQgbGlrZSBhcnJheSB0eXBlcyB3aXRoIG9ubHkgb25lIGRp bWVuc2lvbi4KK1RoZXJlZm9yZSB0aGUgc2FtZSBhbGdvcml0aG0gdG8gY2FsY3VsYXRlIHN1YnNl dHMgaXMgdXNlZC4KIAogMjAxMy0xMS0yNiAgQ2hyaXN0b3BoIFdlaW5tYW5uICA8Y2hyaXN0b3Bo LnQud2Vpbm1hbm5AaW50ZWwuY29tPgogCkBAIC0xOSwyNyArMjIsMjcgQEAgU2lnbmVkLW9mZi1i eTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CiAg MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA5IGRlbGV0aW9ucygtKQogCiBkaWZmIC0t Z2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IGM5ZjMyNWYuLjE2NGQ3YWIgMTAw NjQ0CitpbmRleCAzNTgxNWE0Li41YzIwZmVlIDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysr IGIvZ2RiL2V2YWwuYwotQEAgLTIwMzQsMTYgKzIwMzQsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMDM1LDE2ICsyMDM1LDggQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAg ICAgc3dpdGNoIChjb2RlKQogIAl7CiAgCWNhc2UgVFlQRV9DT0RFX0FSUkFZOgogLQkgIHJldHVy biB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJncywgbm9zaWRlKTsKIC0K ICAJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2Rl ID09IE9QX0Y5MF9SQU5HRSkKKy0JICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9S QU5HRSkKIC0JICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCAx LCBub3NpZGUpOwogLQkgIGVsc2UKIC0JICAgIHsKIC0JICAgICAgYXJnMiA9IGV2YWx1YXRlX3N1 YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKIC0JICAgICAgcmV0dXJuIHZh bHVlX3N1YnNjcmlwdCAoYXJnMSwgdmFsdWVfYXNfbG9uZyAoYXJnMikpOwogLQkgICAgfQotKwkg IHJldHVybiAgdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lk ZSk7CisrCSAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdz LCBub3NpZGUpOwogIAogIAljYXNlIFRZUEVfQ09ERV9QVFI6CiAgCWNhc2UgVFlQRV9DT0RFX0ZV TkM6CiAtLSAKLTIuNS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRl LWludGVsLTNvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaApp bmRleCA1MGE2NTgyLi40ZTRkZTdkIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50 ZWwtM29mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaApA QCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAx Ni0wMi9tc2cwMDg0NS5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgMy82XSBmb3J0cmFuOiBjaGFu Z2Ugc3VicmFuZ2UgZW51bSB0byBiaXQgZmllbGQKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0g Zm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6 Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAor RnJvbSAwNThlZDllNTVkYjcyMjQ0ZmUxYzUzNDZhMTFmYTY3ZWZmNjFkMzE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlu bWFubkBpbnRlbC5jb20+CitEYXRlOiBNb24sIDIzIE5vdiAyMDE1IDEwOjMxOjQ0ICswMTAwCitT dWJqZWN0OiBbUEFUQ0ggMy82XSBmb3J0cmFuOiBjaGFuZ2Ugc3VicmFuZ2UgZW51bSB0byBiaXQg ZmllbGQKIAogQ2hhbmdlIEZvcnRyYW4gc3VicmFuZ2UgZW51bSBmb3Igc3VicmFuZ2UgZXhwcmVz c2lvbnMgdG8KIHJlcHJlc2VudCBhIGJpdGZpZWxkIGZvciBlYXNpZXIgbWFuaXB1bGF0aW9uLiAg Q29uc2VxdWVudGx5CkBAIC0xMiwzMSArMTUsNDEgQEAgYmVoYXZpb3VyIG9mIEdEQiBpcyB1bmNo YW5nZWQuCiAKIAkqIGV2YWwuYyAodmFsdWVfZjkwX3N1YmFycmF5KTogQ2hhbmdlIGV2YWx1YXRp b24gb2YgdGhlCiAJc3ViYXJyYXkgYm91bmRhcmllcy4gIFNldCBib3VuZGFyaWVzIHRvIGJlIGVp dGhlciB1c2VyCi0JcHJvdmlkZWQgKGJpdCBpbiBmOTBfcmFuZ2VfdHlwZSB3YXMgc2V0KSBvciB0 YWtlIHRoZQotCWRlZmF1bHQgdmFsdWUgaWYgdGhlIGJvdW5kYXJ5IHdhcyBub3QgcHJvdmlkZWQg YnkgdGhlIHVzZXIuCisJcHJvdmlkZWQgKGJpdCBpbiByYW5nZV90eXBlIHdhcyBzZXQpLCBvciB0 YWtlIHRoZSBkZWZhdWx0CisJdmFsdWUgaWYgdGhlIGJvdW5kYXJ5IHdhcyBub3QgcHJvdmlkZWQg YnkgdGhlIHVzZXIuCisJKiBleHBwcmludC5jIChwcmludF9zdWJleHBfc3RhbmRhcmQpOiBBbHRl ciBib3VuZGFyeSBjb20tCisJcHV0YXRpb25zIHRvIHVzZSB1cGRhdGVkIHJhbmdlX3R5cGUgZW51 bS4KKwkqIGV4cHByaW50LmggKGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQpOiBEaXRvLgorCSog ZXhwcmVzc2lvbi5oIChyYW5nZV90eXBlKTogQ2hhbmdlIHRoZSBlbnVtIHRvIHVzZSBiaXQKKwl2 YWx1ZXMgZm9yIGVhY2ggYm91bmRhcnksIGlmIHNldCBieSB0aGUgdXNlci4KIAkqIGYtZXhwLnkg KHN1YnJhbmdlKTogQ2hhbmdlIHJ1bGVzIGZvciBzdWJyYW5nZSBleHByZXNzaW9ucwogCXRvIHdy aXRlIHRoZSByZWxldmFudCBiaXQgc2VxdWVuY2Ugb250byB0aGUgZWx0IHN0YWNrLgotCSogZi1s YW5nLmggKGY5MF9yYW5nZV90eXBlKTogQ2hhbmdlIHRoZSBlbnVtIHRvIHVzZSBiaXQKLQl2YWx1 ZXMgZm9yIGVhY2ggYm91bmRhcnksIGlmIHNldCBieSB0aGUgdXNlci4KLQkqIHBhcnNlLmMgKG9w ZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCk6IEluIGNhc2Ugb2YKLQlPUF9GOTBfUkFOR0UgY2hhbmdl IHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgbnVtYmVyIG9mCi0JYXJndW1lbnRzIG9uIHRoZSBlbHQg c3RhY2ssIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mCi0JYm91bmRhcmllcyBwcm92aWRlZCBi eSB0aGUgdXNlci4KKwkqIHBhcnNlLmMgKG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCk6IEluIGNh c2Ugb2YgT1BfUkFOR0UKKwljaGFuZ2UgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBudW1iZXIgb2YJ YXJndW1lbnRzIG9uIHRoZQorCWVsdCBzdGFjaywgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2Yg Ym91bmRhcmllcyBwcm92aWRlZAorCWJ5IHRoZSB1c2VyLgorCSogcnVzdC1leHAueSAoY29udmVy dF9hc3RfdG9fZXhwcmVzc2lvbik6IE1vZGlmeSBjYWxjdWxhLQorCXRpb24gb2Ygc3Vic2NyaXB0 IGVsZW1lbnRzIHRvIHVzZSBhbHRlcmVkIHJhbmdlX3R5cGUuCisJKiBydXN0LWxhbmcuYyAocnVz dF9yYW5nZSk6IERpdG8uCisJKiBydXN0LWxhbmcuYyAocnVzdF9zdWJzY3JpcHQpOiBEaXRvLgog CiAKIFNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1h bm5AaW50ZWwuY29tPgogLS0tCi0gZ2RiL2V2YWwuYyAgIHwgMTQgKysrKysrLS0tLS0tLS0KLSBn ZGIvZi1leHAueSAgfCAxMSArKysrKystLS0tLQotIGdkYi9mLWxhbmcuaCB8ICA2ICsrLS0tLQot IGdkYi9wYXJzZS5jICB8IDIxICsrKysrKysrLS0tLS0tLS0tLS0tLQotIDQgZmlsZXMgY2hhbmdl ZCwgMjIgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCisgZ2RiL2V2YWwuYyAgICAgICB8 IDE0ICsrKysrKy0tLS0tLS0tCisgZ2RiL2V4cHByaW50LmMgICB8IDIwICsrKysrKysrLS0tLS0t LS0tLS0tCisgZ2RiL2V4cHJlc3Npb24uaCB8IDE1ICsrKysrKy0tLS0tLS0tLQorIGdkYi9mLWV4 cC55ICAgICAgfCAxMSArKysrKystLS0tLQorIGdkYi9wYXJzZS5jICAgICAgfCAyMSArKysrKysr Ky0tLS0tLS0tLS0tLS0KKyBnZGIvcnVzdC1leHAueSAgIHwgMTIgKysrLS0tLS0tLS0tCisgZ2Ri L3J1c3QtbGFuZy5jICB8IDE3ICsrKysrKysrLS0tLS0tLS0tCisgNyBmaWxlcyBjaGFuZ2VkLCA0 NSBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFs LmMgYi9nZGIvZXZhbC5jCi1pbmRleCAxNjRkN2FiLi45YjhiMDUxIDEwMDY0NAoraW5kZXggNWMy MGZlZS4uNDRlODYwMCAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMK LUBAIC00ODAsMTIgKzQ4MCwxMiBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAq YXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtNDgyLDEyICs0ODIsMTIgQEAgdmFs dWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLAogIAkgIC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0 aGUgYml0IGhhcyBiZWVuCiAgCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWduIHRoZSB2YWx1ZSBm cm9tIHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgogIAkgICAgIHVwcGVyIGJvdW5kLiAgKi8KQEAg LTUzLDcgKzY2LDcgQEAgaW5kZXggMTY0ZDdhYi4uOWI4YjA1MSAxMDA2NDQKICAJICAgIHJhbmdl LT5oaWdoID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwK ICAJCQkJCQkJICBwb3MsIG5vc2lkZSkpOwogIAl9Ci1AQCAtNTI2LDEyICs1MjYsMTAgQEAgdmFs dWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLAorQEAgLTUyOCwxMiArNTI4LDEwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAKICAJICAgIC8qIElmIG5vIGxv d2VyIGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgd2UgdGFrZSB0aGUKICAJICAgICAg IGRlZmF1bHQgYm91bmRhcnkuICBTYW1lIGZvciB0aGUgaGlnaCBib3VuZC4gICovCkBAIC02OCw3 MCArODEsMTM1IEBAIGluZGV4IDE2NGQ3YWIuLjliOGIwNTEgMTAwNjQ0CiAgCSAgICAgIHJhbmdl LT5oaWdoID0gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKTsKICAKICAJICAgIC8qIEJvdGgg dXNlciBwcm92aWRlZCBsb3cgYW5kIGhpZ2ggYm91bmQgaGF2ZSB0byBiZSBpbnNpZGUgdGhlCitk aWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYworaW5kZXggYzM3ZWNi MC4uMjE0ZDU4ZSAxMDA2NDQKKy0tLSBhL2dkYi9leHBwcmludC5jCisrKysgYi9nZGIvZXhwcHJp bnQuYworQEAgLTU2OCwxMiArNTY4LDEwIEBAIHByaW50X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCisgCSpwb3MgKz0gMjsKKyAKKyAJZnB1dHNfZmls dGVyZWQgKCJSQU5HRSgiLCBzdHJlYW0pOworLQlpZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5E X0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwlp ZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IFNVQkFSUkFZX0xPV19CT1VO RCkKKyAJICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBzdHJlYW0sIFBSRUNfQUJPVkVfQ09NTUEp OworIAlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKKy0JaWYgKHJhbmdlX3R5cGUgPT0g TE9XX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZB VUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJB WV9ISUdIX0JPVU5EKQorIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19B Qk9WRV9DT01NQSk7CisgCWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVhbSk7CisgCXJldHVybjsK K0BAIC0xMDU1LDE2ICsxMDUzLDE2IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVj dCBleHByZXNzaW9uICpleHAsCisgCisgCXN3aXRjaCAocmFuZ2VfdHlwZSkKKyAJICB7CistCSAg Y2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJBWV9OT05FX0JPVU5EOgor IAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFr OworLQkgIGNhc2UgTE9XX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJBWV9ISUdIX0JP VU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi5FWFAnIiwgc3RyZWFtKTsKKyAJ ICAgIGJyZWFrOworLQkgIGNhc2UgSElHSF9CT1VORF9ERUZBVUxUOgorKwkgIGNhc2UgU1VCQVJS QVlfTE9XX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi4nIiwgc3Ry ZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgTk9ORV9CT1VORF9ERUZBVUxUOgorKwkgIGNh c2UgKFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOgorIAkgICAgZnB1 dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi5FWFAnIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOwor IAkgIGRlZmF1bHQ6CitAQCAtMTA3MiwxMSArMTA3MCw5IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3Rh bmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCSAgICBicmVhazsKKyAJICB9CisgCist CWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVAorLQkgICAgfHwgcmFuZ2VfdHlw ZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlmICgocmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0xP V19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQorIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChl eHAsIHN0cmVhbSwgZWx0KTsKKy0JaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQK Ky0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAoKHJhbmdl X3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorIAkg IGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKKyAgICAgICB9CisgICAgICAg YnJlYWs7CitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dkYi9leHByZXNzaW9uLmgK K2luZGV4IDQ5NTJkODQuLjVhNmI3MjAgMTAwNjQ0CistLS0gYS9nZGIvZXhwcmVzc2lvbi5oCisr KysgYi9nZGIvZXhwcmVzc2lvbi5oCitAQCAtMTUyLDE3ICsxNTIsMTQgQEAgZXh0ZXJuIHZvaWQg ZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwKKyAJCQkJIHN0cnVjdCB1 aV9maWxlICosIGNoYXIgKik7CisgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lvbiAo c3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7CisgCistLyogSW4gYW4gT1Bf UkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNvdWxkIGJlIGVtcHR5LCBpbmRpY2F0aW5n CistICAgdGhhdCBpdHMgdmFsdWUgaXMgYnkgZGVmYXVsdCB0aGF0IG9mIHRoZSBjb3JyZXNwb25k aW5nIGJvdW5kIG9mIHRoZQorLSAgIGFycmF5IG9yIHN0cmluZy4gIFNvIHdlIGhhdmUgZm91ciBz b3J0cyBvZiBzdWJyYW5nZS4gIFRoaXMKKy0gICBlbnVtZXJhdGlvbiB0eXBlIGlzIHRvIGlkZW50 aWZ5IHRoaXMuICAqLworLSAgIAorKy8qIEluIGFuIE9QX1JBTkdFIGV4cHJlc3Npb24sIGVpdGhl ciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5vdC4KKysgICBUaGlzIGVu dW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkgdGhpcy4gICovCisrCisgZW51bSByYW5nZV90 eXBlCisgICB7CistICAgIEJPVEhfQk9VTkRfREVGQVVMVCwJCS8qICIoOikiICAqLworLSAgICBM T1dfQk9VTkRfREVGQVVMVCwJCS8qICIoOmhpZ2gpIiAgKi8KKy0gICAgSElHSF9CT1VORF9ERUZB VUxULAkJLyogIihsb3c6KSIgICovCistICAgIE5PTkVfQk9VTkRfREVGQVVMVAkJLyogIihsb3c6 aGlnaCkiICAqLworKyAgICBTVUJBUlJBWV9OT05FX0JPVU5EID0gMHgwLAkJLyogIiggOiApIiAg Ki8KKysgICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIgICovCisrICAg IFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIJCS8qICIoOmhpZ2gpIiAgKi8KKyAgIH07CisgCisg I2VuZGlmIC8qICFkZWZpbmVkIChFWFBSRVNTSU9OX0gpICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2Yt ZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggOTM0M2FiYi4uYjEyMDZkZSAxMDA2NDQKK2luZGV4 IGRjMTMxYzEuLmUyYzU0YjYgMTAwNjQ0CiAtLS0gYS9nZGIvZi1leHAueQogKysrIGIvZ2RiL2Yt ZXhwLnkKLUBAIC0zMTUsMjYgKzMxNSwyNyBAQCBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAg JXByZWMgQUJPVkVfQ09NTUEKK0BAIC0yNjAsMjYgKzI2MCwyNyBAQCBhcmdsaXN0CToJYXJnbGlz dCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKICAvKiBUaGVyZSBhcmUgZm91ciBzb3J0cyBv ZiBzdWJyYW5nZSB0eXBlcyBpbiBGOTAuICAqLwogIAogIHN1YnJhbmdlOglleHAgJzonIGV4cAkl cHJlYyBBQk9WRV9DT01NQQotLQkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf RjkwX1JBTkdFKTsgCistCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5H RSk7IAogLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIE5PTkVfQk9VTkRfREVG QVVMVCk7Ci0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0Up OworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogKwkJCSAg d3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsCiArCQkJCQkJIFNVQkFSUkFZX0xPV19CT1VO RCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBz dGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0 ZSwgT1BfUkFOR0UpOyB9CiAgCTsKICAKICBzdWJyYW5nZToJZXhwICc6JwklcHJlYyBBQk9WRV9D T01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsK KyAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKIC0JCQkgIHdy aXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBISUdIX0JPVU5EX0RFRkFVTFQpOwogKwkJCSAg d3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORCk7Ci0gCQkJ ICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisgCQkJICB3 cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KICAJOwogIAogIHN1YnJh bmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0ZV9leHBfZWx0X29wY29k ZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBz dGF0ZSwgT1BfUkFOR0UpOwogLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIExP V19CT1VORF9ERUZBVUxUKTsKICsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBT VUJBUlJBWV9ISUdIX0JPVU5EKTsKLSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUs IE9QX0Y5MF9SQU5HRSk7IH0KKyAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9Q X1JBTkdFKTsgfQogIAk7CiAgCiAgc3VicmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJ CXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsKKyAJCQl7IHdy aXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKIC0JCQkgIHdyaXRlX2V4cF9l bHRfbG9uZ2NzdCAocHN0YXRlLCBCT1RIX0JPVU5EX0RFRkFVTFQpOwogKwkJCSAgd3JpdGVfZXhw X2VsdF9sb25nY3N0IChwc3RhdGUsIDApOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBz dGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0 ZSwgT1BfUkFOR0UpOyB9CiAgCTsKICAKLWRpZmYgLS1naXQgYS9nZGIvZi1sYW5nLmggYi9nZGIv Zi1sYW5nLmgKLWluZGV4IGVlY2ExMDcuLjRkNTZiZjcgMTAwNjQ0Ci0tLS0gYS9nZGIvZi1sYW5n LmgKLSsrKyBiL2dkYi9mLWxhbmcuaAotQEAgLTQ0LDEwICs0NCw4IEBAIGV4dGVybiB2b2lkIGZf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQURE UiwKLSAgICAKLSBlbnVtIGY5MF9yYW5nZV90eXBlCi0gICB7Ci0tICAgIEJPVEhfQk9VTkRfREVG QVVMVCwJCS8qICIoOikiICAqLwotLSAgICBMT1dfQk9VTkRfREVGQVVMVCwJCS8qICIoOmhpZ2gp IiAgKi8KLS0gICAgSElHSF9CT1VORF9ERUZBVUxULAkJLyogIihsb3c6KSIgICovCi0tICAgIE5P TkVfQk9VTkRfREVGQVVMVAkJLyogIihsb3c6aGlnaCkiICAqLwotKyAgICBTVUJBUlJBWV9MT1df Qk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8KLSsgICAgU1VCQVJSQVlfSElHSF9CT1VORCA9 IDB4MgkJLyogIig6aGlnaCkiICAqLwotICAgfTsKLSAKLSAvKiBBIGNvbW1vbiBibG9jay4gICov CiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotaW5kZXggNDE5MWZjNi4u ZDUwMDI3OSAxMDA2NDQKK2luZGV4IDJiMDA3MDguLjZkNTRhNzcgMTAwNjQ0CiAtLS0gYS9nZGIv cGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKIEBAIC0xMDA2LDIyICsxMDA2LDE3IEBAIG9wZXJh dG9yX2xlbmd0aF9zdGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBl bmRwb3MsCiAgCi0gICAgIGNhc2UgT1BfRjkwX1JBTkdFOgorICAgICBjYXNlIE9QX1JBTkdFOgog ICAgICAgIG9wbGVuID0gMzsKICsgICAgICBhcmdzID0gMDsKLSAgICAgICByYW5nZV90eXBlID0g KGVudW0gZjkwX3JhbmdlX3R5cGUpCisgICAgICAgcmFuZ2VfdHlwZSA9IChlbnVtIHJhbmdlX3R5 cGUpCiAgCWxvbmdlc3RfdG9faW50IChleHByLT5lbHRzW2VuZHBvcyAtIDJdLmxvbmdjb25zdCk7 CiAgCiAtICAgICAgc3dpdGNoIChyYW5nZV90eXBlKQpAQCAtMTU3LDYgKzIzNSwxMDcgQEAgaW5k ZXggNDE5MWZjNi4uZDUwMDI3OSAxMDA2NDQKICAKICAgICAgICBicmVhazsKICAKK2RpZmYgLS1n aXQgYS9nZGIvcnVzdC1leHAueSBiL2dkYi9ydXN0LWV4cC55CitpbmRleCBjMWE4NjNjLi43NjA5 MjliNSAxMDA2NDQKKy0tLSBhL2dkYi9ydXN0LWV4cC55CisrKysgYi9nZGIvcnVzdC1leHAueQor QEAgLTI0MTgsMjMgKzI0MTgsMTcgQEAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoc3RydWN0 IHBhcnNlcl9zdGF0ZSAqc3RhdGUsCisgCisgICAgIGNhc2UgT1BfUkFOR0U6CisgICAgICAgewor LQllbnVtIHJhbmdlX3R5cGUga2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKKysJZW51bSByYW5n ZV90eXBlIGtpbmQgPSBTVUJBUlJBWV9OT05FX0JPVU5EOworIAorIAlpZiAob3BlcmF0aW9uLT5s ZWZ0Lm9wICE9IE5VTEwpCisgCSAgeworIAkgICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAo c3RhdGUsIG9wZXJhdGlvbi0+bGVmdC5vcCwgdG9wKTsKKy0JICAgIGtpbmQgPSBISUdIX0JPVU5E X0RFRkFVTFQ7CisrCSAgICBraW5kID0gU1VCQVJSQVlfTE9XX0JPVU5EOworIAkgIH0KKyAJaWYg KG9wZXJhdGlvbi0+cmlnaHQub3AgIT0gTlVMTCkKKyAJICB7CisgCSAgICBjb252ZXJ0X2FzdF90 b19leHByZXNzaW9uIChzdGF0ZSwgb3BlcmF0aW9uLT5yaWdodC5vcCwgdG9wKTsKKy0JICAgIGlm IChraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVCkKKy0JICAgICAga2luZCA9IExPV19CT1VORF9E RUZBVUxUOworLQkgICAgZWxzZQorLQkgICAgICB7CistCQlnZGJfYXNzZXJ0IChraW5kID09IEhJ R0hfQk9VTkRfREVGQVVMVCk7CistCQlraW5kID0gTk9ORV9CT1VORF9ERUZBVUxUOworLQkgICAg ICB9CisrCSAgICBraW5kID0gKHJhbmdlX3R5cGUpIChraW5kIHwgU1VCQVJSQVlfSElHSF9CT1VO RCk7CisgCSAgfQorIAl3cml0ZV9leHBfZWx0X29wY29kZSAoc3RhdGUsIE9QX1JBTkdFKTsKKyAJ d3JpdGVfZXhwX2VsdF9sb25nY3N0IChzdGF0ZSwga2luZCk7CitkaWZmIC0tZ2l0IGEvZ2RiL3J1 c3QtbGFuZy5jIGIvZ2RiL3J1c3QtbGFuZy5jCitpbmRleCA1ZGY5OWNlLi44ZDUzZTMxIDEwMDY0 NAorLS0tIGEvZ2RiL3J1c3QtbGFuZy5jCisrKysgYi9nZGIvcnVzdC1sYW5nLmMKK0BAIC0xMTg4 LDkgKzExODgsOSBAQCBydXN0X3JhbmdlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBv cywgZW51bSBub3NpZGUgbm9zaWRlKQorICAga2luZCA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdl c3RfdG9faW50IChleHAtPmVsdHNbKnBvcyArIDFdLmxvbmdjb25zdCk7CisgICAqcG9zICs9IDM7 CisgCistICBpZiAoa2luZCA9PSBISUdIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBOT05FX0JP VU5EX0RFRkFVTFQpCisrICBpZiAoKGtpbmQgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IFNVQkFS UkFZX0xPV19CT1VORCkKKyAgICAgbG93ID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4 cCwgcG9zLCBub3NpZGUpOworLSAgaWYgKGtpbmQgPT0gTE9XX0JPVU5EX0RFRkFVTFQgfHwga2lu ZCA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrICBpZiAoKGtpbmQgJiBTVUJBUlJBWV9ISUdIX0JP VU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorICAgICBoaWdoID0gZXZhbHVhdGVfc3ViZXhw IChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOworIAorICAgaWYgKG5vc2lkZSA9PSBFVkFM X1NLSVApCitAQCAtMTI3OSw3ICsxMjc5LDcgQEAgcnVzdF9jb21wdXRlX3JhbmdlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICpyYW5nZSwKKyAKKyAgICpsb3cgPSAwOworICAgKmhp Z2ggPSAwOworLSAgKmtpbmQgPSBCT1RIX0JPVU5EX0RFRkFVTFQ7CisrICAqa2luZCA9IFNVQkFS UkFZX05PTkVfQk9VTkQ7CisgCisgICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAwKQorICAg ICByZXR1cm47CitAQCAtMTI4NywxNSArMTI4NywxNCBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAorICAgaSA9IDA7CisgICBpZiAo c3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIDApLCAic3RhcnQiKSA9PSAwKQorICAgICB7 CistICAgICAgKmtpbmQgPSBISUdIX0JPVU5EX0RFRkFVTFQ7CisrICAgICAgKmtpbmQgPSBTVUJB UlJBWV9MT1dfQk9VTkQ7CisgICAgICAgKmxvdyA9IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxk IChyYW5nZSwgMCkpOworICAgICAgICsraTsKKyAgICAgfQorICAgaWYgKFRZUEVfTkZJRUxEUyAo dHlwZSkgPiBpCisgICAgICAgJiYgc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpLCAi ZW5kIikgPT0gMCkKKyAgICAgeworLSAgICAgICpraW5kID0gKCpraW5kID09IEJPVEhfQk9VTkRf REVGQVVMVAorLQkgICAgICAgPyBMT1dfQk9VTkRfREVGQVVMVCA6IE5PTkVfQk9VTkRfREVGQVVM VCk7CisrICAgICAgKmtpbmQgPSAocmFuZ2VfdHlwZSkgKCpraW5kIHwgU1VCQVJSQVlfSElHSF9C T1VORCk7CisgICAgICAgKmhpZ2ggPSB2YWx1ZV9hc19sb25nICh2YWx1ZV9maWVsZCAocmFuZ2Us IGkpKTsKKyAgICAgfQorIH0KK0BAIC0xMzEwLDcgKzEzMDksNyBAQCBydXN0X3N1YnNjcmlwdCAo c3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAg IHN0cnVjdCB0eXBlICpyaHN0eXBlOworICAgTE9OR0VTVCBsb3csIGhpZ2hfYm91bmQ7CisgICAv KiBJbml0aWFsaXplZCB0byBhcHBlYXNlIHRoZSBjb21waWxlci4gICovCistICBlbnVtIHJhbmdl X3R5cGUga2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKKysgIGVudW0gcmFuZ2VfdHlwZSBraW5k ID0gU1VCQVJSQVlfTk9ORV9CT1VORDsKKyAgIExPTkdFU1QgaGlnaCA9IDA7CisgICBpbnQgd2Fu dF9zbGljZSA9IDA7CisgCitAQCAtMTM2Niw3ICsxMzY1LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0 cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCisgCWVy cm9yIChfKCJDYW5ub3Qgc3Vic2NyaXB0IG5vbi1hcnJheSB0eXBlIikpOworIAorICAgICAgIGlm ICh3YW50X3NsaWNlCistCSAgJiYgKGtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUIHx8IGtpbmQg PT0gTE9XX0JPVU5EX0RFRkFVTFQpKQorKwkgICYmICgoa2luZCAmIFNVQkFSUkFZX0xPV19CT1VO RCkgIT0gU1VCQVJSQVlfTE9XX0JPVU5EKSkKKyAJbG93ID0gbG93X2JvdW5kOworICAgICAgIGlm IChsb3cgPCAwKQorIAllcnJvciAoXygiSW5kZXggbGVzcyB0aGFuIHplcm8iKSk7CitAQCAtMTM4 NCw3ICsxMzgzLDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGlu dCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCisgCSAgQ09SRV9BRERSIGFkZHI7CisgCSAgc3Ry dWN0IHZhbHVlICphZGRydmFsLCAqdGVtOworIAorLQkgIGlmIChraW5kID09IEJPVEhfQk9VTkRf REVGQVVMVCB8fCBraW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCkKKysJICBpZiAoKGtpbmQgJiBT VUJBUlJBWV9ISUdIX0JPVU5EKSAhPSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorIAkgICAgaGlnaCA9 IGhpZ2hfYm91bmQ7CisgCSAgaWYgKGhpZ2ggPCAwKQorIAkgICAgZXJyb3IgKF8oIkhpZ2ggaW5k ZXggbGVzcyB0aGFuIHplcm8iKSk7CiAtLSAKLTIuNS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEv Z2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTRvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUt aW50ZWwtNG9mNi5wYXRjaAppbmRleCA2NTYzZDcxLi4wZTA5NmUzIDEwMDY0NAotLS0gYS9nZGIt Zm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUt aW50ZWwtNG9mNi5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0Mi5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIg NC82XSBmb3J0cmFuOiBlbmFibGUgcGFyc2luZyBvZiBzdHJpZGUgcGFyYW1ldGVyIGZvciBzdWJy YW5nZXMKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9u YWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSAzMzhlNGM4NjBhZDIwNTg5NmI0 YTk1Yzc5ZjU0NDcwYzc5ZWViMzQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hy aXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBX ZWQsIDEgSnVuIDIwMTYgMTU6MTE6MjQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA0LzZdIGZvcnRy YW46IGVuYWJsZSBwYXJzaW5nIG9mIHN0cmlkZSBwYXJhbWV0ZXIgZm9yIHN1YnJhbmdlcwogCiBB bGxvdyB0aGUgdXNlciB0byBwcm92aWRlIGEgc3RyaWRlIHBhcmFtZXRlciBmb3IgRm9ydHJhbgog c3ViYXJyYXlzLiAgVGhlIHN0cmlkZSBwYXJhbWV0ZXIgY2FuIGJlIGFueSBpbnRlZ2VyIGV4Y2Vw dApAQCAtMTEsMTAgKzE0LDEwIEBAIHN1YmFycmF5cy4gIFRoZSBzdHJpZGUgcGFyYW1ldGVyIGNh biBiZSBhbnkgaW50ZWdlciBleGNlcHQKIAogCSogZXZhbC5jICh2YWx1ZV9mOTBfc3ViYXJyYXkp OiBBZGQgZXhwcmVzc2lvbiBldmFsdWF0aW9uCiAJZm9yIGEgc3RyaWRlIHBhcmFtZXRlciBpbiBh IEZvcnRyYW4gcmFuZ2UgZXhwcmVzc2lvbi4KKwkqIGV4cHJlc3Npb24uaCAocmFuZ2VfdHlwZSk6 IEFkZCBmaWVsZCB0byBlbnVtIHRvIHNob3cgd2hlbgorCWEgc3RyaWRlIHZhbHVlIHdhcyBwcm92 aWRlZCBieSB0aGUgdXNlci4KIAkqIGYtZXhwLnk6IEFkZCB5YWNjIHJ1bGVzIGZvciB3cml0aW5n IGluZm8gb24gdGhlIGVsdCBzdGFjawogCXdoZW4gdGhlIHVzZXIgcHJvdmlkZWQgYSBzdHJpZGUg YXJndW1lbnQuCi0JKiBmLWxhbmcuaCAoRjkwX1JBTkdFKTogQWRkIGZpZWxkIHRvIGVudW0gdG8g c2hvdyB3aGVuIGEKLQlzdHJpZGUgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLgogCSogcGFyc2Uu YyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkKTogQ2hlY2sgaWYgYSBzdHJpZGUKIAl2YWx1ZSB3 YXMgcHJvdmlkZWQsIGFuZCBpbmNyZW1lbnQgYXJndW1lbnQgY291bnRlcgogCWFjY29yZGluZ2x5 LgpAQCAtMjIsMjYgKzI1LDI3IEBAIHN1YmFycmF5cy4gIFRoZSBzdHJpZGUgcGFyYW1ldGVyIGNh biBiZSBhbnkgaW50ZWdlciBleGNlcHQKIAogU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5t YW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CiAtLS0KLSBnZGIvZXZhbC5jICAg fCAxMCArKysrKysrKystCi0gZ2RiL2YtZXhwLnkgIHwgMzMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tCi0gZ2RiL2YtbGFuZy5oIHwgIDUgKysrLS0KLSBnZGIvcGFyc2UuYyAgfCAg MyArKysKLSA0IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p CisgZ2RiL2V2YWwuYyAgICAgICB8IDExICsrKysrKysrKystCisgZ2RiL2V4cHJlc3Npb24uaCB8 ICA3ICsrKysrLS0KKyBnZGIvZi1leHAueSAgICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQorIGdkYi9wYXJzZS5jICAgICAgfCAgMyArKysKKyBnZGIvdmFsb3BzLmMgICAg IHwgIDQgKystLQorIDUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlv bnMoLSkKIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCA5Yjhi MDUxLi4zMDhhZGEzIDEwMDY0NAoraW5kZXggNDRlODYwMC4uYjVhYWYxYyAxMDA2NDQKIC0tLSBh L2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKLUBAIC00MzgsNyArNDM4LDcgQEAgdmFsdWVf ZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LAotICAgICAgIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UKLSAgICAgICB7Ci0gICAgICAgICBlbnVt IGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOwotLSAgICAgICAgTE9OR0VTVCBsb3csIGhp Z2g7Ci0rICAgICAgICBMT05HRVNUIGxvdywgaGlnaCwgc3RyaWRlOwotICAgICAgIH0KLSAgICAg ICByYW5nZTsKLSAgICAgICBMT05HRVNUIG51bWJlcjsKLUBAIC00ODgsNiArNDg4LDE0IEBAIHZh bHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKK0BAIC00MTksNyArNDE5LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFs dWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorICAgdHlwZWRlZiBzdHJ1Y3Qgc3Vi c2NyaXB0X3JhbmdlCisgICB7CisgICAgIGVudW0gcmFuZ2VfdHlwZSBmOTBfcmFuZ2VfdHlwZTsK Ky0gICAgTE9OR0VTVCBsb3csIGhpZ2g7CisrICAgIExPTkdFU1QgbG93LCBoaWdoLCBzdHJpZGU7 CisgICB9IHN1YnNjcmlwdF9yYW5nZTsKKyAKKyAgIHR5cGVkZWYgZW51bSBzdWJzY3JpcHRfa2lu ZAorQEAgLTQ5MCw2ICs0OTAsMTUgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgICAgICA9PSBTVUJBUlJBWV9ISUdI X0JPVU5EKQogIAkgICAgcmFuZ2UtPmhpZ2ggPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJl eHAgKE5VTExfVFlQRSwgZXhwLAogIAkJCQkJCQkgIHBvcywgbm9zaWRlKSk7CkBAIC00OSw4MiAr NTMsODEgQEAgaW5kZXggOWI4YjA1MS4uMzA4YWRhMyAxMDA2NDQKICsJICAvKiBBc3NpZ24gdGhl IHVzZXIncyBzdHJpZGUgdmFsdWUgaWYgcHJvdmlkZWQuICAqLwogKwkgIGlmICgocmFuZ2UtPmY5 MF9yYW5nZV90eXBlICYgU1VCQVJSQVlfU1RSSURFKSA9PSBTVUJBUlJBWV9TVFJJREUpCiArCSAg ICByYW5nZS0+c3RyaWRlID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZ UEUsIGV4cCwKLSsJCQkJCQkJICAgIHBvcywgbm9zaWRlKSk7CisrCQkJCQkJCSAgICAgcG9zLCBu b3NpZGUpKTsKKysKICsJICAvKiBBc3NpZ24gdGhlIGRlZmF1bHQgc3RyaWRlIHZhbHVlICcxJy4g ICovCiArCSAgZWxzZQogKwkgICAgcmFuZ2UtPnN0cmlkZSA9IDE7CiAgCX0KICAgICAgICAvKiBV c2VyIGlucHV0IGlzIGFuIGluZGV4LiAgRS5nLjogInAgYXJyeSg1KSIuICAqLwogICAgICAgIGVs c2UKK2RpZmYgLS1naXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Npb24uaAoraW5k ZXggNWE2YjcyMC4uMzRjYTU0YiAxMDA2NDQKKy0tLSBhL2dkYi9leHByZXNzaW9uLmgKKysrKyBi L2dkYi9leHByZXNzaW9uLmgKK0BAIC0xNTMsMTMgKzE1MywxNiBAQCBleHRlcm4gdm9pZCBkdW1w X3Jhd19leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLAorIGV4dGVybiB2b2lkIGR1bXBf cHJlZml4X2V4cHJlc3Npb24gKHN0cnVjdCBleHByZXNzaW9uICosIHN0cnVjdCB1aV9maWxlICop OworIAorIC8qIEluIGFuIE9QX1JBTkdFIGV4cHJlc3Npb24sIGVpdGhlciBib3VuZCBjYW4gYmUg cHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5vdC4KKy0gICBUaGlzIGVudW1lcmF0aW9uIHR5cGUg aXMgdG8gaWRlbnRpZnkgdGhpcy4gICovCisrICAgSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlIHVz ZXIgY2FuIGFsc28gc3BlY2lmeSBhIHN0cmlkZSB2YWx1ZSB0byBpbmRpY2F0ZWQKKysgICBvbmx5 IGNlcnRhaW4gZWxlbWVudHMgb2YgdGhlIGFycmF5LiAgVGhpcyBlbnVtZXJhdGlvbiB0eXBlIGlz IHRvIGlkZW50aWZ5CisrICAgdGhpcy4gICovCisgCisgZW51bSByYW5nZV90eXBlCisgICB7Cisg ICAgIFNVQkFSUkFZX05PTkVfQk9VTkQgPSAweDAsCQkvKiAiKCA6ICkiICAqLworICAgICBTVUJB UlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8KKy0gICAgU1VCQVJSQVlfSElH SF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAqLworKyAgICBTVUJBUlJBWV9ISUdIX0JPVU5E ID0gMHgyLAkJLyogIig6aGlnaCkiICAqLworKyAgICBTVUJBUlJBWV9TVFJJREUgPSAweDQJCS8q ICIoOjpzdHJpZGUpIiAgKi8KKyAgIH07CisgCisgI2VuZGlmIC8qICFkZWZpbmVkIChFWFBSRVNT SU9OX0gpICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXgg YjEyMDZkZS4uNTE1MWZlZSAxMDA2NDQKK2luZGV4IGUyYzU0YjYuLjcxZjE4MjMgMTAwNjQ0CiAt LS0gYS9nZGIvZi1leHAueQogKysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0zMTYsOCArMzE2LDggQEAg YXJnbGlzdAk6CWFyZ2xpc3QgJywnIGV4cCAgICVwcmVjIEFCT1ZFX0NPTU1BCi0gCi0gc3VicmFu Z2U6CWV4cCAnOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0ZV9leHBfZWx0X29w Y29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOwotLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0 IChwc3RhdGUsCi0tCQkJCQkJIFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9V TkQpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19C T1VORAotKwkJCQkJCSB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotIAkJCSAgd3JpdGVfZXhwX2Vs dF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQotIAk7Ci0gCi1AQCAtMzM5LDYgKzMz OSwzNSBAQCBzdWJyYW5nZToJJzonCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJICB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9Ci0gCTsKK0BAIC0yODAsNyArMjgw LDM2IEBAIHN1YnJhbmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCiAgCisgc3VicmFuZ2U6 CSc6JwklcHJlYyBBQk9WRV9DT01NQQorIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0 ZSwgT1BfUkFOR0UpOworLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIDApOwor KwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX05PTkVfQk9VTkQp OworKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisrCTsK KysKICsvKiBFYWNoIHN1YnJhbmdlIHR5cGUgY2FuIGhhdmUgYSBzdHJpZGUgYXJndW1lbnQuICAq LwogK3N1YnJhbmdlOglleHAgJzonIGV4cCAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCi0rCQkJ eyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3Jp dGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2Vs dF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAogKwkJCQkJCSB8IFNVQkFSUkFZ X0hJR0hfQk9VTkQKICsJCQkJCQkgfCBTVUJBUlJBWV9TVFJJREUpOwotKwkJCSAgd3JpdGVfZXhw X2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorKwkJCSAgd3JpdGVfZXhwX2Vs dF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CiArCTsKICsKICtzdWJyYW5nZToJZXhwICc6 JyAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAo cHN0YXRlLCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0 ZSwgT1BfUkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFS UkFZX0xPV19CT1VORAogKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9l eHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisrCQkJICB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KICsJOwogKwogK3N1YnJhbmdlOgknOicg ZXhwICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2Rl IChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7CisrCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0 YXRlLCBPUF9SQU5HRSk7CiArCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VC QVJSQVlfSElHSF9CT1VORAogKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0 ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisrCQkJICB3cml0ZV9l eHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KICsJOwogKwogK3N1YnJhbmdlOgkn OicgJzonIGV4cCAlcHJlYyBBQk9WRV9DT01NQQotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsKKysJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3Rh dGUsIE9QX1JBTkdFKTsKICsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJB UlJBWV9TVFJJREUpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkw X1JBTkdFKTsgfQotKwk7Ci0rCi0gY29tcGxleG51bTogICAgIGV4cCAnLCcgZXhwIAotICAgICAg ICAgICAgICAgICAJeyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgIDsKLWRp ZmYgLS1naXQgYS9nZGIvZi1sYW5nLmggYi9nZGIvZi1sYW5nLmgKLWluZGV4IDRkNTZiZjcuLjBh ZDU3YWYgMTAwNjQ0Ci0tLS0gYS9nZGIvZi1sYW5nLmgKLSsrKyBiL2dkYi9mLWxhbmcuaAotQEAg LTQ0LDggKzQ0LDkgQEAgZXh0ZXJuIHZvaWQgZl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNv bnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAotICAgIAotIGVudW0gZjkwX3JhbmdlX3R5 cGUKLSAgIHsKLS0gICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIgICov Ci0tICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIJCS8qICIoOmhpZ2gpIiAgKi8KLSsgICAg U1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIgb3IgIihsb3c6OikiICovCi0r ICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIsCQkvKiAiKDpoaWdoKSIgb3IgIig6aGlnaDop IiAgKi8KLSsgICAgU1VCQVJSQVlfU1RSSURFID0gMHg0CQkvKiAiKDo6c3RyaWRlKSIgICovCi0g ICB9OworIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9Cisg CTsKICAKLSAvKiBBIGNvbW1vbiBibG9jay4gICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMg Yi9nZGIvcGFyc2UuYwotaW5kZXggZDUwMDI3OS4uMDcyNDhjMyAxMDA2NDQKK2luZGV4IDZkNTRh NzcuLjk5MmFmODcgMTAwNjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMK IEBAIC0xMDE4LDYgKzEwMTgsOSBAQCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0 cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLApAQCAtMTM3LDYgKzE0MCwyOCBAQCBp bmRleCBkNTAwMjc5Li4wNzI0OGMzIDEwMDY0NAogICAgICAgIGJyZWFrOwogIAogICAgICBkZWZh dWx0OgorZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92YWxvcHMuYworaW5kZXggODE3 YTRjZi4uZmJjN2RjYiAxMDA2NDQKKy0tLSBhL2dkYi92YWxvcHMuYworKysrIGIvZ2RiL3ZhbG9w cy5jCitAQCAtMzgzNCw3ICszODM0LDcgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICph cnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKKyAgIGlmIChj YWxsX2NvdW50ID09IDEpCisgICAgIHsKKyAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9U WVBFIChhcnJheV90eXBlKTsKKy0gICAgICBzbGljZV9yYW5nZV9zaXplID0gZWxlbV9jb3VudDsK KysgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIGVsZW1fY291bnQgLSAx OworIAorICAgICAgIC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMgYXJlIHZhbGlkLiAgKi8K KyAgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmFyeV9sb3dfYm91 bmQsICZhcnlfaGlnaF9ib3VuZCkgPCAwKQorQEAgLTM4NDYsNyArMzg0Niw3IEBAIHZhbHVlX3Ns aWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50 IGNhbGxfY291bnQpCisgICBlbHNlCisgICAgIHsKKyAgICAgICByYW5nZV90eXBlID0gVFlQRV9J TkRFWF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7CistICAgICAgc2xpY2Vf cmFuZ2Vfc2l6ZSA9IChhcnlfbG93X2JvdW5kICsgcm93X2NvdW50IC0gMSkgKiAoZWxlbV9jb3Vu dCk7CisrICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50 ICogZWxlbV9jb3VudCkgLSAxOworICAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VO RCAocmFuZ2VfdHlwZSk7CisgICAgIH0KKyAKIC0tIAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1n aXQgYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNW9mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0 cmlkZS1pbnRlbC01b2Y2LnBhdGNoCmluZGV4IDlhN2RiYTMuLjJiOWE2NjIgMTAwNjQ0Ci0tLSBh L2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCisrKyBiL2dkYi1mb3J0cmFuLXN0 cmlkZS1pbnRlbC01b2Y2LnBhdGNoCkBAIC0xLDkgKzEsMTIgQEAKLWh0dHA6Ly9zb3VyY2V3YXJl Lm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAwODQ0Lmh0bWwKLVN1YmplY3Q6IFtQQVRD SCB2MiA1LzZdIGZvcnRyYW46IGNhbGN1bGF0ZSBzdWJhcnJheSB3aXRoIHN0cmlkZSB2YWx1ZXMu CitSRTogW3BpbmddIFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46IG11bHRpLWRpbWVuc2lvbmFsIHN1 YmFycmF5cyB3aXRoIHN0cmlkZXMKK2h0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNo ZXMvMjAxNi0wNy9tc2cwMDAwOS5odG1sCiAKK0Zyb20gMTE4OTA5OGMzY2FjYzJlZTY5MDIxZGUx YTgzYWQzMzI4ODIxZDc1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IENocmlzdG9w aCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgorRGF0ZTogV2VkLCAx IEp1biAyMDE2IDE1OjA0OjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNS82XSBmb3J0cmFuOiBj YWxjdWxhdGUgZWxlbWVudHMgb2YgYSBzdWJhcnJheSB1c2luZyBhCisgcHJvdmlkZWQgc3RyaWRl IHZhbHVlCiAKLUNhbGN1bGF0ZSBlbGVtZW50cyBvZiBhIHN1YmFycmF5IHVzaW5nIGEgcHJvdmlk ZWQgc3RyaWRlIHZhbHVlCiBUaGUgc3RyaWRlIHZhbHVlIGNhbiBiZSBhIHBvc2l0aXZlIG9yIG5l Z2F0aXZlIGludGVnZXIsIGJ1dCBtYXkKIG5vdCBiZSB6ZXJvLiAgSWYgbm8gc3RyaWRlIGlzIHBy b3ZpZGVkLCB1c2UgdGhlIGRlZmF1bHQgdmFsdWUKIDEgdG8gcHJpbnQgYWxsIGVsZW1lbnRzIGlu c2lkZSB0aGUgcmFuZ2UuCkBAIC0zMiw0NCArMzUsMjUgQEAgJDMgPSAoMSwgMywgNSwgNywgOSkK IAogU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFu bkBpbnRlbC5jb20+CiAtLS0KLSBnZGIvZXZhbC5jICAgfCAxMTEgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KLSBnZGIvdmFsb3BzLmMg fCAgODcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIGdk Yi9ldmFsLmMgICB8IDEwMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLQorIGdkYi92YWxvcHMuYyB8ICA4MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KICBnZGIvdmFsdWUuaCAgfCAgIDIgKy0K LSAzIGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMoLSkKKyAz IGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKIAogZGlm ZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCAzMDhhZGEzLi5kMDFiNTc5 IDEwMDY0NAoraW5kZXggYjVhYWYxYy4uMWYyN2I2ZiAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMK ICsrKyBiL2dkYi9ldmFsLmMKLUBAIC00MzcsOCArNDM3LDggQEAgdmFsdWVfZjkwX3N1YmFycmF5 IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICB7Ci0g ICAgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZQotICAgICAgIHsKLS0gICAgICAgIGVudW0gZjkw X3JhbmdlX3R5cGUgZjkwX3JhbmdlX3R5cGU7Ci0tICAgICAgICBMT05HRVNUIGxvdywgaGlnaCwg c3RyaWRlOwotKwllbnVtIGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOwotKwlMT05HRVNU IGxvdywgaGlnaCwgc3RyaWRlOwotICAgICAgIH0KLSAgICAgICByYW5nZTsKLSAgICAgICBMT05H RVNUIG51bWJlcjsKLUBAIC00NzUsNyArNDc1LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1 Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgIHJhbmdlID0gJmlu ZGV4LT5yYW5nZTsKK0BAIC00NzcsNyArNDc3LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1 Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorIAkgIHJhbmdlID0gJmlu ZGV4LT5VLnJhbmdlOwogIAogIAkgICpwb3MgKz0gMzsKLS0JICByYW5nZS0+ZjkwX3JhbmdlX3R5 cGUgPSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwotKwkgIHJhbmdl LT5mOTBfcmFuZ2VfdHlwZSA9IGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0OworLQkgIHJhbmdlLT5m OTBfcmFuZ2VfdHlwZSA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVs dHNbcGNdLmxvbmdjb25zdCk7CisrCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gKGVudW0gcmFu Z2VfdHlwZSkgZXhwLT5lbHRzW3BjXS5sb25nY29uc3Q7CiAgCiAgCSAgLyogSWYgYSBsb3dlciBi b3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIHRoZSBiaXQgaGFzIGJlZW4KICAJICAgICBz ZXQgYW5kIHdlIGNhbiBhc3NpZ24gdGhlIHZhbHVlIGZyb20gdGhlIGVsdCBzdGFjay4gIFNhbWUg Zm9yCi1AQCAtNDg0LDYgKzQ4NCw3IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVl ICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAgICAgPT0gU1VCQVJSQVlfTE9X X0JPVU5EKQotIAkgICAgcmFuZ2UtPmxvdyA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4 cCAoTlVMTF9UWVBFLCBleHAsCi0gCQkJCQkJCSBwb3MsIG5vc2lkZSkpOwotKwotIAkgIGlmICgo cmFuZ2UtPmY5MF9yYW5nZV90eXBlICYgU1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgICAgPT0g U1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgIHJhbmdlLT5oaWdoID0gdmFsdWVfYXNfbG9uZyAo ZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLUBAIC00OTYsNiArNDk3LDEwIEBAIHZh bHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKK0BAIC00OTksNiArNDk5LDEwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJICAvKiBBc3NpZ24gdGhlIGRl ZmF1bHQgc3RyaWRlIHZhbHVlICcxJy4gICovCiAgCSAgZWxzZQogIAkgICAgcmFuZ2UtPnN0cmlk ZSA9IDE7CkBAIC04MCw3ICs2NCw3IEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAg CX0KICAgICAgICAvKiBVc2VyIGlucHV0IGlzIGFuIGluZGV4LiAgRS5nLjogInAgYXJyeSg1KSIu ICAqLwogICAgICAgIGVsc2UKLUBAIC01MTIsMTAgKzUxNyw4IEBAIHZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01MTUs MTAgKzUxOSw4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKICAKICAgICAgfQogIApAQCAtOTMsNyArNzcsNyBAQCBpbmRl eCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAogICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7 IGktLSkKICAgICAgewogICAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1 YnNjcmlwdF9hcnJheVtpXTsKLUBAIC01NDgsNiArNTUxLDQ4IEBAIHZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01NTEs NiArNTUzLDQ4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKICAJCXx8IHJhbmdlLT5oaWdoID4gVFlQRV9ISUdIX0JPVU5E IChpbmRleF90eXBlKSkKICAJICAgICAgZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNp ZGUgYXJyYXkgYm91bmQocykiKSk7CiAgCkBAIC0xMTMsNyArOTcsNyBAQCBpbmRleCAzMDhhZGEz Li5kMDFiNTc5IDEwMDY0NAogKwogKwl9CiArCi0rICAgICAgYXJyYXlfdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKGFycmF5X3R5cGUpOworKyAgICAgICBhcnJheV90eXBlID0gVFlQRV9UQVJHRVRf VFlQRSAoYXJyYXlfdHlwZSk7CiArICAgIH0KICsKICsgIC8qIFJlc2V0IEFSUkFZX1RZUEUgYmVm b3JlIHNsaWNpbmcuKi8KQEAgLTEzNywxMiArMTIxLDEyIEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1 NzkgMTAwNjQ0CiArCSAgICAgICB0cmVhdCBhbnkgc3Vic2VxdWVudCB1c2VyIGVudHJ5IGFzIGEg cmFuZ2UuICBXZSBzaW1wbHkKICsJICAgICAgIGluY3JlbWVudCBESU1fQ09VTlQgd2hpY2ggdGVs bHMgdXMgaG93IG1hbnkgdGltZXMgd2UgYXJlCiArCSAgICAgICBjYWxsaW5nIFZBTFVFX1NMSUNF XzEuICAqLwotKwkgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPnJh bmdlOworKwkgICAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKICsK ICAJICAgIC8qIERJTV9DT1VOVCBjb3VudHMgZXZlcnkgdXNlciBhcmd1bWVudCB0aGF0IGlzIHRy ZWF0ZWQgYXMgYSByYW5nZS4KICAJICAgICAgIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBleHByZXNz aW9ucyBsaWtlICdwcmludCBhcnJheSg3LCA4OjkpLgogIAkgICAgICAgSGVyZSB0aGUgZmlyc3Qg YXJndW1lbnQgaXMgYSBsaXRlcmFsLCBidXQgbXVzdCBiZSB0cmVhdGVkIGFzIGEKLUBAIC01NTUs MTAgKzYwMCw5IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01NTgsMTAgKzYwMiw5IEBAIHZhbHVlX2Y5MF9zdWJh cnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJICAg IGRpbV9jb3VudCsrOwogIAogIAkgICAgbmV3X2FycmF5CkBAIC0xNTYsMTMgKzE0MCw3IEBAIGlu ZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAgCSAgfQogIAkgIGJyZWFrOwogIAotQEAgLTU3 MiwyNyArNjE2LDM4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwg c3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAgICAgIHRvIGdldCB0aGUgdmFsdWUgb2Zmc2V0 IHJpZ2h0LiAgKi8KLSAJICAgIGlmIChkaW1fY291bnQgPT0gMCkKLSAJICAgICAgbmV3X2FycmF5 Ci0tCSAgICAgICAgPSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKG5ld19hcnJheSwgaW5kZXgt Pm51bWJlciwKLSsJCT0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChuZXdfYXJyYXksIGluZGV4 LT5udW1iZXIsCi0gCQkJCQkgICAgZjc3X2dldF9sb3dlcmJvdW5kICh2YWx1ZV90eXBlCitAQCAt NTgwLDIxICs2MjMsMzIgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5 LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkJCQkJCQkJICAobmV3X2FycmF5KSkpOwogIAkg ICAgZWxzZQogIAkgICAgICB7CkBAIC0xNzQsMjEgKzE1MiwyMSBAQCBpbmRleCAzMDhhZGEzLi5k MDFiNTc5IDEwMDY0NAogKwkJICAgY2Fubm90IGRvIHRoZSByYW5nZSBjaGVja3MgZm9yIHVzLiBT byB3ZSBoYXZlIHRvIG1ha2Ugc3VyZQogKwkJICAgb3Vyc2VsdmVzIHRoYXQgdGhlIHVzZXIgcHJv dmlkZWQgaW5kZXggaXMgaW5zaWRlIHRoZQogKwkJICAgYXJyYXkgYm91bmRzLiAgVGhyb3cgYW4g ZXJyb3IgaWYgbm90LiAgKi8KLSAJCWlmIChpbmRleC0+bnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQg KGluZGV4X3R5cGUpCi0tCQkgICAgfHwgaW5kZXgtPm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAo aW5kZXhfdHlwZSkpCisgCQlpZiAoaW5kZXgtPlUubnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGlu ZGV4X3R5cGUpCistCQkgICAgfHwgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChp bmRleF90eXBlKSkKIC0JCSAgZXJyb3IgKF8oImVycm9yIG5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQi KSk7Ci0rCQkgICAgJiYgaW5kZXgtPm51bWJlciA8IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlw ZSkpCisrCQkgICAgJiYgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90 eXBlKSkKICsJCSAgZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91 bmQocykiKSk7CiArCi0rCQlpZiAoaW5kZXgtPm51bWJlciA+IFRZUEVfTE9XX0JPVU5EIChpbmRl eF90eXBlKQotKwkJICAgICYmIGluZGV4LT5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4 X3R5cGUpKQorKwkJaWYgKGluZGV4LT5VLm51bWJlciA+IFRZUEVfTE9XX0JPVU5EIChpbmRleF90 eXBlKQorKwkJICAgICYmIGluZGV4LT5VLm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhf dHlwZSkpCiArCQkgIGVycm9yIChfKCJwcm92aWRlZCBib3VuZChzKSBvdXRzaWRlIGFycmF5IGJv dW5kKHMpIikpOwogIAogLQkJZGltX2NvdW50Kys7CiAgCQluZXdfYXJyYXkgPSB2YWx1ZV9zbGlj ZV8xIChuZXdfYXJyYXksCi0tCQkJCQkgICBsb25nZXN0X3RvX2ludCAoaW5kZXgtPm51bWJlciks CistCQkJCQkgICBsb25nZXN0X3RvX2ludCAoaW5kZXgtPlUubnVtYmVyKSwKIC0JCQkJCSAgIDEs IC8qIGxlbmd0aCBpcyAnMScgZWxlbWVudCAgKi8KLSsJCQkJCSAgIGluZGV4LT5udW1iZXIsCisr CQkJCQkgICBpbmRleC0+VS5udW1iZXIsCiArCQkJCQkgICAxLCAvKiBDT1VOVCBpcyAnMScgZWxl bWVudCAgKi8KICsJCQkJCSAgIDEsIC8qIFNUUklERSBzZXQgdG8gJzEnICAqLwogIAkJCQkJICAg ZGltX2NvdW50KTsKQEAgLTE5NywxMyArMTc1LDExIEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1Nzkg MTAwNjQ0CiAgCSAgfQogIAkgIGJyZWFrOwogIAl9Ci0tICAgIH0KICsgICAgICBhcnJheV90eXBl ID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7Ci0rICB9CisgICAgIH0KICAKICAgIC8q IFdpdGggRElNX0NPVU5UID4gMSB3ZSBjdXJyZW50bHkgaGF2ZSBhIG9uZSBkaW1lbnNpb25hbCBh cnJheSwgYnV0IGV4cGVjdAotICAgICAgYW4gYXJyYXkgb2YgYXJyYXlzLCBkZXBlbmRpbmcgb24g aG93IG1hbnkgcmFuZ2VzIGhhdmUgYmVlbiBwcm92aWRlZCBieQotQEAgLTYxNyw3ICs2NzIsOSBA QCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNz aW9uICpleHAsCitAQCAtNjIwLDcgKzY3NCw5IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0 IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJIHRoZSBvdXRwdXQgYXJy YXkuICBTbyB3ZSB0cmF2ZXJzZSB0aGUgU1VCU0NSSVBUX0FSUkFZIGFnYWluLCBsb29raW5nCiAg CSBmb3IgYSByYW5nZSBlbnRyeS4gIFdoZW4gd2UgZmluZCBvbmUsIHdlIHVzZSB0aGUgcmFuZ2Ug aW5mbyB0byBjcmVhdGUKICAJIGFuIGFkZGl0aW9uYWwgcmFuZ2VfdHlwZSB0byBzZXQgdGhlIGNv cnJlY3QgYm91bmRzIGFuZCBkaW1lbnNpb25zIGZvcgpAQCAtMjE0LDM1ICsxOTAsMzUgQEAgaW5k ZXggMzA4YWRhMy4uZDAxYjU3OSAxMDA2NDQKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7 IGkrKykKICAJewogIAkgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlw dF9hcnJheVtpXTsKLUBAIC02MjUsMTIgKzY4MiwyMCBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0 cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgaWYgKGluZGV4 LT5raW5kID09IFNVQlNDUklQVF9SQU5HRSkKK0BAIC02MjksMTIgKzY4NSwyMCBAQCB2YWx1ZV9m OTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAs CiAgCSAgICB7CiAgCSAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlLCAqaW50ZXJpbV9hcnJh eV90eXBlOworIAogKwkgICAgICBpbnQgbmV3X2xlbmd0aDsKICsKICsJICAgICAgLyogVGhlIGxl bmd0aCBvZiBhIHN1Yi1kaW1lbnNpb24gd2l0aCBhbGwgZWxlbWVudHMgYmV0d2VlbiB0aGUKICsJ CSBib3VuZHMgcGx1cyB0aGUgc3RhcnQgZWxlbWVudCBpdHNlbGYuICBJdCBtYXkgYmUgbW9kaWZp ZWQgYnkKICsJCSBhIHVzZXIgcHJvdmlkZWQgc3RyaWRlIHZhbHVlLiAgKi8KLSsJICAgICAgbmV3 X2xlbmd0aCA9IGluZGV4LT5yYW5nZS5oaWdoIC0gaW5kZXgtPnJhbmdlLmxvdzsKKysJICAgICAg bmV3X2xlbmd0aCA9IGluZGV4LT5VLnJhbmdlLmhpZ2ggLSBpbmRleC0+VS5yYW5nZS5sb3c7Cisr CisrCSAgICAgIG5ld19sZW5ndGggLz0gaW5kZXgtPlUucmFuZ2Uuc3RyaWRlOwogKwotKwkgICAg ICBuZXdfbGVuZ3RoIC89IGluZGV4LT5yYW5nZS5zdHJpZGU7Ci0gCiAgCSAgICAgIHJhbmdlX3R5 cGUKICAJCT0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLAotLQkJCQkgICAgIHRlbXBf dHlwZSwKLS0JCQkJICAgICAxLAotLQkJCQkgICAgIGluZGV4LT5yYW5nZS5oaWdoIC0gaW5kZXgt PnJhbmdlLmxvdyArIDEpOwotKwkJCQkJICAgIHRlbXBfdHlwZSwKLSsJCQkJCSAgICBpbmRleC0+ cmFuZ2UubG93LAotKwkJCQkJICAgIGluZGV4LT5yYW5nZS5sb3cgKyBuZXdfbGVuZ3RoKTsKKyAJ CQkJCSAgICBlbHRfdHlwZSwKKy0JCQkJCSAgICAxLAorLQkJCQkJICAgIGluZGV4LT5VLnJhbmdl LmhpZ2gKKy0JCQkJCSAgICAgIC0gaW5kZXgtPlUucmFuZ2UubG93ICsgMSk7CisrCQkJCQkgICAg aW5kZXgtPlUucmFuZ2UubG93LAorKwkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmxvdyArIG5ld19s ZW5ndGgpOwogIAogIAkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlw ZSAoTlVMTCwKLSAJCQkJCQkgICAgICB0ZW1wX3R5cGUsCisgCQkJCQkJICAgICAgZWx0X3R5cGUs CiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCi1pbmRleCAwOWVhODc3 Li44M2M4NDYyIDEwMDY0NAoraW5kZXggZmJjN2RjYi4uZGVkOGVmYyAxMDA2NDQKIC0tLSBhL2dk Yi92YWxvcHMuYwogKysrIGIvZ2RiL3ZhbG9wcy5jCi1AQCAtMzc1OSwxMCArMzc1OSwxMyBAQCB2 YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCitA QCAtMzc2NiwxMCArMzc2NiwxMyBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0 IGxhbmd1YWdlX2RlZm4gKmxhbmcpCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9zbGljZSAoc3Ry dWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQogIHsKQEAgLTI1OSw4 ICsyMzUsOCBAQCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogKyAgcmV0dXJuIHZhbHVl X3NsaWNlXzEgKGFycmF5LCBsb3dib3VuZCwgbGVuZ3RoLCAxLCAxKTsKICB9CiAgCi0gLyogQ0FM TF9DT1VOVCBpcyB1c2VkIHRvIGRldGVybWluZSBpZiB3ZSBhcmUgY2FsbGluZyB0aGUgZnVuY3Rp b24gb25jZSwgZS5nLgotQEAgLTM3NzYsNyArMzc3OSw4IEBAIHZhbHVlX3NsaWNlIChzdHJ1Y3Qg dmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCisgLyogVkFMVUVfU0xJQ0Vf MSBpcyBjYWxsZWQgZm9yIGVhY2ggYXJyYXkgZGltZW5zaW9uIHRvIGNhbGN1bGF0ZSB0aGUgbnVt YmVyCitAQCAtMzc4NSw3ICszNzg4LDggQEAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJy YXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCkKICAgICByYW5nZXMgaW4gdGhlIGNhbGxpbmcg ZnVuY3Rpb24uICAqLwogIAogIHN0cnVjdCB2YWx1ZSAqCkBAIC0yNzAsNyArMjQ2LDcgQEAgaW5k ZXggMDllYTg3Ny4uODNjODQ2MiAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgdHlwZSAqc2xpY2VfcmFu Z2VfdHlwZSwgKnNsaWNlX3R5cGUsICpyYW5nZV90eXBlOwogICAgc3RydWN0IHR5cGUgKmFycmF5 X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwotQEAgLTM3OTksMTQg KzM4MDMsMjQgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2Jv dW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKK0BAIC0zODA4LDE0ICszODEyLDI0IEBA IHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxl bmd0aCwgaW50IGNhbGxfY291bnQpCiAgICAgICBhdHRyaWJ1dGVzIG9mIHRoZSB1bmRlcmx5aW5n IHR5cGUuICAqLwogICAgaWYgKGNhbGxfY291bnQgPiAxKQogICAgICB7CkBAIC0yOTcsMjUgKzI3 Myw3IEBAIGluZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiAgICBlbHRfc3RyaWRlID0gVFlQ RV9MRU5HVEggKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwogIAogICAgZWx0X29mZnMg Kj0gZWx0X3NpemU7Ci1AQCAtMzgyNSw3ICszODM5LDcgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0 IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkK LSAgIGlmIChjYWxsX2NvdW50ID09IDEpCi0gICAgIHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQ RV9JTkRFWF9UWVBFIChhcnJheV90eXBlKTsKLS0gICAgICBzbGljZV9yYW5nZV9zaXplID0gZWxl bV9jb3VudDsKLSsgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIGVsZW1f Y291bnQgLSAxOwotIAotICAgICAgIC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMgYXJlIHZh bGlkLiAgKi8KLSAgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmFy eV9sb3dfYm91bmQsICZhcnlfaGlnaF9ib3VuZCkgPCAwKQotQEAgLTM4MzcsNyArMzg1MSw3IEBA IHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxl bmd0aCwgaW50IGNhbGxfY291bnQpCi0gICBlbHNlCi0gICAgIHsKLSAgICAgICByYW5nZV90eXBl ID0gVFlQRV9JTkRFWF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7Ci0tICAg ICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IChhcnlfbG93X2JvdW5kICsgcm93X2NvdW50IC0gMSkgKiAo ZWxlbV9jb3VudCk7Ci0rICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAo cm93X2NvdW50ICogZWxlbV9jb3VudCkgLSAxOwotICAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBF X0xPV19CT1VORCAocmFuZ2VfdHlwZSk7Ci0gICAgIH0KLSAKLUBAIC0zODQ5LDggKzM4NjMsOSBA QCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBs ZW5ndGgsIGludCBjYWxsX2NvdW50KQorQEAgLTM4NTgsOCArMzg3Miw5IEBAIHZhbHVlX3NsaWNl XzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNh bGxfY291bnQpCiAgICB7CiAgICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGU7CiAgCkBAIC0z MjcsNyArMjg1LDcgQEAgaW5kZXggMDllYTg3Ny4uODNjODQ2MiAxMDA2NDQKICAgICAgICB7CiAg CWVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOwogIAotQEAgLTM4 NzEsMjkgKzM4ODYsNTMgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50 IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKK0BAIC0zODgwLDI5ICszODk1 LDUzIEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwg aW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCiAgCSAgfQogIAogICAgICAgIH0KQEAgLTM1OSw4 ICszMTcsOCBAQCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogIAlzbGljZV90eXBlID0g Y3JlYXRlX2FycmF5X3R5cGUgKE5VTEwsIGVsZW1lbnRfdHlwZSwgc2xpY2VfcmFuZ2VfdHlwZSk7 CiAgCiAtCVRZUEVfQ09ERSAoc2xpY2VfdHlwZSkgPSBUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZ UEUgKGFycmF5X3R5cGUpKTsKLSsJLyogSWYgd2UgaGF2ZSBhIG9uZSBkaW1lbnNpb25hbCBhcnJh eSwgd2UgY29weSBpdHMgVFlQRV9DT0RFLiAgRm9yIGEKLSsJICAgbXVsdGkgZGltZW5zaW9uYWwg YXJyYXkgd2UgY29weSB0aGUgZW1iZWRkZWQgdHlwZSdzIFRZUEVfQ09ERS4gICovCisrCSAvKiBJ ZiB3ZSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFycmF5LCB3ZSBjb3B5IGl0cyBUWVBFX0NPREUu ICBGb3IgYQorKwkgICAgbXVsdGkgZGltZW5zaW9uYWwgYXJyYXkgd2UgY29weSB0aGUgZW1iZWRk ZWQgdHlwZSdzIFRZUEVfQ09ERS4gICovCiArCWlmIChjYWxsX2NvdW50ID09IDEpCiArCSAgVFlQ RV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CiArCWVsc2UKQEAg LTM5NSw3ICszNTMsNyBAQCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogICAgICAgIH0K ICAKIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5oCi1pbmRleCAzNDAwNDYw Li5jMThlZjJlIDEwMDY0NAoraW5kZXggOTU1ODhhZi4uZTQxNzYzOSAxMDA2NDQKIC0tLSBhL2dk Yi92YWx1ZS5oCiArKysgYi9nZGIvdmFsdWUuaAogQEAgLTEwNTYsNyArMTA1Niw3IEBAIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xpY2UgKHN0cnVjdCB2YWx1ZSAqKTsKQEAgLTQw OCw1ICszNjYsNSBAQCBpbmRleCAzNDAwNDYwLi5jMThlZjJlIDEwMDY0NAogIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhbHVlX2xpdGVyYWxfY29tcGxleCAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB2 YWx1ZSAqLAogIAkJCQkJICAgIHN0cnVjdCB0eXBlICopOwogLS0gCi0yLjUuMAorMi41LjUKIAoK ZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LW5va2ZhaWwucGF0Y2gg Yi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9mNi1ub2tmYWlsLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA1YjYxZGUxLi4wMDAwMDAwCi0tLSBhL2dkYi1mb3J0cmFuLXN0 cmlkZS1pbnRlbC02b2Y2LW5va2ZhaWwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCww IEBACi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9z dWJyYW5nZS5leHAtb3JpZwkyMDE2LTAxLTA4IDIyOjQ1OjQ0Ljk1Njg0MjU1MyArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2Uu ZXhwCTIwMTYtMDEtMDggMjM6MjY6MDUuMDc4NTU0NjI5ICswMTAwCi1AQCAtMzksMjcgKzM5LDE2 IEBAIGZvcmVhY2ggdmFyIHthIGFsbG9jIHB0cn0gewotICAgICBzZXQgb2xkX3ByZWZpeCAkcGZf cHJlZml4Ci0gICAgIGxhcHBlbmQgcGZfcHJlZml4ICIkdmFyOiIKLSAKLS0gICAgc2V0dXBfa2Zh aWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgy LCAyOjMpIiB7ID0gXCgyMiwgMzJcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVn cmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgyOjMsIDMpIiB7ID0gXCgzMiwg MzNcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAg ICBnZGJfdGVzdCAicCAkdmFyICgxLCAyOikiIHsgPSBcKDIxLCAzMVwpfQotLSAgICBzZXR1cF9r ZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIg KDIsIDoyKSIgeyA9IFwoMTIsIDIyXCl9Ci0tICAgIHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJl Z3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoMywgMjoyKSIgeyA9IFwoMjNc KX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBn ZGJfdGVzdCAicHR5cGUgJHZhciAoMywgMjoyKSIgIiA9ICRpbnQ0IFxcKDI6MlxcKSIKLS0gICAg c2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAi cCAkdmFyICg0LCA6KSIgeyA9IFwoMTQsIDI0LCAzNFwpfQotLSAgICBzZXR1cF9rZmFpbCAiKi0q LSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDosIDopIiB7 ID0gXChcKCAqMTEsIDEyLCAxMywgMTRcKSBcKCAqMjEsIDIyLCAyMywgMjRcKSBcKCAqMzEsIDMy LCAzMywgMzRcKSAqXCl9Ci0tICAgIHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24v OTk5OSIKLSAgICAgZ2RiX3Rlc3QgInB0eXBlICR2YXIgKDosIDopIiAiID0gJGludDQgXFwoNCwz XFwpIgotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAg IGdkYl90ZXN0ICJwICR2YXIgKDopIiAiV3JvbmcgbnVtYmVyIG9mIHN1YnNjcmlwdHMiCi0tICAg IHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3Qg InAgJHZhciAoOiwgOiwgOikiICJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIKLSAKLSAgICAg c2V0IHBmX3ByZWZpeCAkb2xkX3ByZWZpeAotQEAgLTY4LDUgKzU3LDQgQEAgZm9yZWFjaCB2YXIg e2EgYWxsb2MgcHRyfSB7Ci0gZ2RiX3Rlc3Rfbm9fb3V0cHV0IHtzZXQgJGE9YX0KLSBkZWxldGVf YnJlYWtwb2ludHMKLSBnZGJfdW5sb2FkCi0tc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVz c2lvbi85OTk5IgotIGdkYl90ZXN0IHtwICRhICgzLCAyOjIpfSB7ID0gXCgyM1wpfQoKZGlmZiAt LWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4t c3RyaWRlLWludGVsLTZvZjYucGF0Y2gKaW5kZXggNDdmYWVmMi4uNzc3YmJjOSAxMDA2NDQKLS0t IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4t c3RyaWRlLWludGVsLTZvZjYucGF0Y2gKQEAgLTEsNyArMSwxMCBAQAotaHR0cDovL3NvdXJjZXdh cmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDIvbXNnMDA4NDcuaHRtbAotU3ViamVjdDogW1BB VENIIHYyIDYvNl0gZm9ydHJhbjogdGVzdCBjYXNlcyBmb3Igc3ViYXJyYXkgc3RyaWRlcyBhbmQg c2xpY2VzCitSRTogW3BpbmddIFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46IG11bHRpLWRpbWVuc2lv bmFsIHN1YmFycmF5cyB3aXRoIHN0cmlkZXMKK2h0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2Ri LXBhdGNoZXMvMjAxNi0wNy9tc2cwMDAwOS5odG1sCiAKK0Zyb20gOTgyZDU4MmVlNzM4Y2JjZjI1 MmJhOGVhYjU5YTk1MTRlZGRhNzViOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IENo cmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgorRGF0ZTog V2VkLCA0IERlYyAyMDEzIDExOjQ3OjE1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggNi82XSBmb3J0 cmFuOiB0ZXN0IGNhc2VzIGZvciBzdWJhcnJheSBzdHJpZGVzIGFuZCBzbGljZXMKIAogQWRkIHRl c3QgY2FzZXMgZm9yIHN1YmFycmF5IGNyZWF0aW9uIHdpdGggcmFuZ2UsIGxpdGVyYWwgYW5kCiBz dHJpZGUgdmFsdWUgcGVybXV0YXRpb25zIGZvciBvbmUsIHR3bywgYW5kIHRocmVlIGRpbWVuc2lv bmFsCkBAIC01MTEsNSArNTE0LDUgQEAgaW5kZXggMDAwMDAwMC4uZjIyZmNiZQogKyAgY2FsbCBz dWIKICtlbmQKIC0tIAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1naXQgYS9nZGItcHl0aG9uLWdp bC5wYXRjaCBiL2dkYi1weXRob24tZ2lsLnBhdGNoCmluZGV4IDFlM2IwYjkuLjVjZTEzYTggMTAw NjQ0Ci0tLSBhL2dkYi1weXRob24tZ2lsLnBhdGNoCisrKyBiL2dkYi1weXRob24tZ2lsLnBhdGNo CkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvYy9weXRo b24udGV4aQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvcHl0aG9uLnRleGkK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2RvYy9weXRob24u dGV4aQkyMDE1LTA1LTMxIDE3OjU3OjEyLjQzMTU5Mzk4MyArMDIwMAotKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2RvYy9weXRob24udGV4aQkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NDYwNzcw OCArMDIwMAotQEAgLTIyOSw2ICsyMjksMTQgQEAgcmV0dXJuZWQgYXMgYSBzdHJpbmcuICBUaGUg ZGVmYXVsdCBpcyBAYworLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2RvYy9weXRo b24udGV4aQkyMDE2LTA3LTAzIDE2OjMwOjM3LjAwOTMzODM1OCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi9kb2MvcHl0aG9uLnRleGkJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTIz ODc4NjcgKzAyMDAKK0BAIC0yMjksNiArMjI5LDE0IEBACiAgcmV0dXJuIHZhbHVlIGlzIEBjb2Rl e05vbmV9LiAgSWYgQHZhcnt0b19zdHJpbmd9IGlzIEBjb2Rle1RydWV9LCB0aGUKICBAdmFsdWV7 R0RCTn0gdmlydHVhbCB0ZXJtaW5hbCB3aWxsIGJlIHRlbXBvcmFyaWx5IHNldCB0byB1bmxpbWl0 ZWQgd2lkdGgKICBhbmQgaGVpZ2h0LCBhbmQgaXRzIHBhZ2luYXRpb24gd2lsbCBiZSBkaXNhYmxl ZDsgQHB4cmVme1NjcmVlbiBTaXplfS4KQEAgLTE3LDExICsxNywxMSBAQCBJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvZG9jL3B5dGhvbi50ZXhpCiAgQGVuZCBkZWZ1bgogIAogIEBmaW5k ZXggZ2RiLmJyZWFrcG9pbnRzCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9u L3B5dGhvbi1pbnRlcm5hbC5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhv bi9weXRob24taW50ZXJuYWwuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMDUtMzEgMTc6NTc6MTIuNDMy NTkzOTg5ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1p bnRlcm5hbC5oCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU0NjA3NzA4ICswMjAwCi1AQCAtMTQyLDYg KzE0Miw4IEBAIHR5cGVkZWYgaW50IFB5X3NzaXplX3Q7CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2 MzAub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTYtMDctMDMgMTY6MzA6Mzcu MDEwMzM4MzY2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRo b24taW50ZXJuYWwuaAkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMjM4Nzg2NyArMDIwMAorQEAgLTE0 MCw2ICsxNDAsOCBAQAogICNkZWZpbmUgUHlHSUxTdGF0ZV9SZWxlYXNlKEFSRykgKCh2b2lkKShB UkcpKQogICNkZWZpbmUgUHlFdmFsX0luaXRUaHJlYWRzKCkKICAjZGVmaW5lIFB5VGhyZWFkU3Rh dGVfU3dhcChBUkcpICgodm9pZCkoQVJHKSkKQEAgLTMwLDExICszMCwxMSBAQCBJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiAgI2RlZmluZSBQ eUV2YWxfUmVsZWFzZUxvY2soKQogICNlbmRpZgogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3B5dGhvbi9weXRob24uYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9w eXRob24vcHl0aG9uLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL3B5dGhvbi9weXRob24uYwkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NjYwNzcyMCArMDIwMAot KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE1LTA1LTMxIDE4 OjAyOjA4Ljg5MTQyNDIyNyArMDIwMAotQEAgLTYyNywxMyArNjI3LDE4IEBAIGV4ZWN1dGVfZ2Ri X2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi9weXRob24vcHl0aG9uLmMJMjAxNi0wNy0wMyAxNjozMDozNy4wMTEzMzgzNzUgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi5jCTIwMTYtMDct MDMgMTY6MzE6MTYuMzI0NjczNzgzICswMjAwCitAQCAtNjE5LDEzICs2MTksMTggQEAKICB7CiAg ICBjb25zdCBjaGFyICphcmc7CiAgICBQeU9iamVjdCAqZnJvbV90dHlfb2JqID0gTlVMTCwgKnRv X3N0cmluZ19vYmogPSBOVUxMOwpAQCAtNTcsNyArNTcsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAgIHJldHVybiBOVUxMOwogIAogICAgZnJv bV90dHkgPSAwOwotQEAgLTY1NCwxMiArNjU5LDI4IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5 T2JqZWN0ICpzZWxmLCBQeU8KK0BAIC02NDYsNiArNjUxLDE1IEBACiAgICAgICAgdG9fc3RyaW5n ID0gY21wOwogICAgICB9CiAgCkBAIC03Myw4ICs3Myw5IEBAIEluZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9weXRob24vcHl0aG9uLmMKICAgIFRSWQogICAgICB7CiAgICAgICAgLyogQ29w eSB0aGUgYXJndW1lbnQgdGV4dCBpbiBjYXNlIHRoZSBjb21tYW5kIG1vZGlmaWVzIGl0LiAgKi8K LSAgICAgICBjaGFyICpjb3B5ID0geHN0cmR1cCAoYXJnKTsKK0BAIC02NTMsNiArNjY3LDEzIEBA CiAgICAgICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBj b3B5KTsKKyAgICAgICBzdHJ1Y3QgaW50ZXJwICppbnRlcnA7CiAgCiArICAgICAgLyogSW4gdGhl IGNhc2Ugb2YgbG9uZyBydW5uaW5nIEdEQiBjb21tYW5kcywgYWxsb3cgdGhlIHVzZXIgdG8KICsJ IHJlbGVhc2UgdGhlIFB5dGhvbiBHSUwgYWNxdWlyZWQgYnkgUHl0aG9uLiAgUmVzdG9yZSB0aGUg R0lMCkBAIC04MywxMCArODQsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5 dGhvbi9weXRob24uYwogKyAgICAgIGlmIChyZWxlYXNlX2dpbCkKICsJc3RhdGUgPSBQeUV2YWxf U2F2ZVRocmVhZCgpOwogKwotICAgICAgIG1ha2VfY2xlYW51cF9yZXN0b3JlX2ludGVnZXIgKCZp bnRlcnByZXRlcl9hc3luYyk7Ci0gICAgICAgaW50ZXJwcmV0ZXJfYXN5bmMgPSAwOworICAgICAg IG1ha2VfY2xlYW51cF9yZXN0b3JlX2ludGVnZXIgKCZjdXJyZW50X3VpLT5hc3luYyk7CisgICAg ICAgY3VycmVudF91aS0+YXN5bmMgPSAwOwogIAotQEAgLTY3MiwxMSArNjkzLDIzIEBAIGV4ZWN1 dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KK0BAIC02NzEsMTEgKzY5MiwyMyBA QAogIAkgIGV4ZWN1dGVfY29tbWFuZCAoY29weSwgZnJvbV90dHkpOwogIAl9CiAgCkBAIC0xMTEs MTAgKzExMiwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhv bi5jCiAgICAgIH0KICAgIEVORF9DQVRDSAogIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWdpbC1tdGhyZWFkLmMJMjAxNS0wNS0zMSAxNzo1NzoxNC42NTY2MDc3MjAgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJl YWQuYwkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMzM4Nzg3NiArMDIwMAogQEAgLTAsMCArMSwxMiBA QAogKyNpbmNsdWRlIDxzdGRpby5oPgogKwpAQCAtMTI4LDEwICsxMjksMTAgQEAgSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFk LmMKICsgICAgICBwcmludGYgKCJTbGVlcGluZyAlZFxuIiwgaSk7CiArICAgIH0KICt9Ci1JbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10 aHJlYWQuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAkyMDE1LTA1LTMxIDE3 OjU3OjE0LjY1NzYwNzcyNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5leHAJMjAxNi0wNy0wMyAxNjozMDo0Mi44 MTMzODc4NzYgKzAyMDAKIEBAIC0wLDAgKzEsNjkgQEAKICsjIENvcHlyaWdodCAoQykgMjAxNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIwMiwxMCArMjAzLDEwIEBAIElu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwt bXRocmVhZC5leHAKICsJfQogKyAgICB9CiArfQotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5CitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5 CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktZ2lsLW10aHJlYWQucHkJMjAxNS0wNS0zMSAxNzo1NzoxNC42NTc2MDc3MjYgKzAyMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10 aHJlYWQucHkJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTQzODc4ODQgKzAyMDAKIEBAIC0wLDAgKzEs MjIgQEAKICtpbXBvcnQgdGhyZWFkCiAraW1wb3J0IHRpbWUKCmRpZmYgLS1naXQgYS9nZGItcmVh ZGxpbmU2Mi1hc2stbW9yZS1yaC5wYXRjaCBiL2dkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBh dGNoCmluZGV4IGFlNjg5NDYuLjQ2M2Q5ZDMgMTAwNjQ0Ci0tLSBhL2dkYi1yZWFkbGluZTYyLWFz ay1tb3JlLXJoLnBhdGNoCisrKyBiL2dkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBA IC0xLDE3ICsxLDE4IEBACi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmln L2dkYi9ldmVudC10b3AuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZXZlbnQtdG9wLmMKLS0t LSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9ldmVudC10b3AuYwkyMDE2LTAxLTA5IDE0 OjUxOjAyLjMyNDI0MzUwNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVu dC10b3AuYwkyMDE2LTAxLTA5IDE0OjUxOjMzLjAyOTQzNDEyMSArMDEwMAotQEAgLTEwMzMsNiAr MTAzMywxMyBAQCBzZXRfYXN5bmNfZWRpdGluZ19jb21tYW5kIChjaGFyICphcmdzLCBpCi0gdm9p ZAotIGdkYl9zZXR1cF9yZWFkbGluZSAodm9pZCkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvZXZlbnQtdG9wLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi9ldmVudC10b3AuYwkyMDE2LTA3LTAzIDE2OjMyOjM2LjEwODM0MjE1OSArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9ldmVudC10b3AuYwkyMDE2LTA3LTAzIDE2OjMy OjU5Ljc4NzUyMzczMyArMDIwMAorQEAgLTEyNTIsNiArMTI1MiwxMyBAQAogIHsKKyAgIHN0cnVj dCB1aSAqdWkgPSBjdXJyZW50X3VpOworIAogKyNpZmRlZiBORUVEX1JMX1NUQVRFX0ZFRE9SQV9H REIKICsgIC8qIDYuMiByZWdyZXNzaW9uOiBubyBsb25nZWQgYXNrcyBmb3IgLS1tb3JlLS0KICsg ICAgIGdkYi5iYXNlL3JlYWRsaW5lLWFzay5leHAKICsgICAgIGh0dHBzOi8vYnVnemlsbGEucmVk aGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NzAxMTMxICAqLwogKyAgUkxfU0VUU1RBVEUgKFJMX1NU QVRFX0ZFRE9SQV9HREIpOwotKwogKyNlbmRpZgorKwogICAgLyogVGhpcyBmdW5jdGlvbiBpcyBh IG5vb3AgZm9yIHRoZSBzeW5jIGNhc2UuICBUaGUgYXNzdW1wdGlvbiBpcwogICAgICAgdGhhdCB0 aGUgc3luYyBzZXR1cCBpcyBBTEwgZG9uZSBpbiBnZGJfaW5pdCwgYW5kIHdlIHdvdWxkIG9ubHkK ICAgICAgIG1lc3MgaXQgdXAgaGVyZS4gIFRoZSBzeW5jIHN0dWZmIHNob3VsZCByZWFsbHkgZ28g YXdheSBvdmVyCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMzYzNjM1LWFhcmNoNjQtYXJtdjgxODIu cGF0Y2ggYi9nZGItcmhiejEzNjM2MzUtYWFyY2g2NC1hcm12ODE4Mi5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggOGVlYTU2NS4uMDAwMDAwMAotLS0gYS9nZGItcmhiejEzNjM2 MzUtYWFyY2g2NC1hcm12ODE4Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAK LWNvbW1pdCA0OWVjZWYyYTdkYTJlZTlkZjRhZTY3NWY5OWI3MDUxOGZiZjFiYjIzCi1BdXRob3I6 IEFuZHJldyBQaW5za2kgPGFwaW5za2lAY2F2aXVtLmNvbT4KLURhdGU6ICAgU2F0IEp1bCAyMyAw OTo1Njo0NCAyMDE2IC0wNzAwCi0KLSAgICBGaXggQVJNdjguMS92OC4yIGZvciBodyB3YXRjaHBv aW50IGFuZCBicmVha3BvaW50Ci0gICAgCi0gICAgVGhlIHByb2JsZW0gaGVyZSBpcyBBUk12OC4x IChhbmQgQVJNdjguMikgZGVmaW5lIGEKLSAgICBkaWZmZXJlbnQgZGVidWcgdmVyc2lvbiB0aGFu IEFSTXY4ICg3IGFuZCA4IHJlc3BlY3RpdmVseSkuCi0gICAgVGhpcyBmaXhlcyBodyB3YXRjaHBv aW50cyBhbmQgYnJlYWtwb2ludHMgYnkgY2hlY2tpbmcKLSAgICBmb3IgdGhvc2UgZGVidWcgdmVy c2lvbnMgdG9vLgotICAgIAotICAgIENvbW1pdHRlZCBhcyBvYnZpb3VzIGFmdGVyIGEgdGVzdCBv biBhYXJjaDY0LWxpbnV4LWdudQotICAgIChvbiBhIFRodW5kZXJYIG1hY2hpbmUgd2hpY2ggaGFz IEFSTXY4LjEgc3VwcG9ydCBlbmFibGVkKS4KLSAgICAKLSAgICBDaGFuZ2VMb2c6Ci0gICAgCSog bmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwotICAgIAkoYWFyY2g2NF9saW51eF9nZXRfZGVi dWdfcmVnX2NhcGFjaXR5KTogSGFuZGxlCi0gICAgCUFSTXY4LjEgYW5kIEFSTXY4LjIgZGVidWcg dmVyc2lvbnMuCi0gICAgCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuaAotICAgIAkoQUFS Q0g2NF9ERUJVR19BUkNIX1Y4XzEpOiBOZXcgZGVmaW5lLgotICAgIAkoQUFSQ0g2NF9ERUJVR19B UkNIX1Y4XzIpOiBOZXcgZGVmaW5lLgotICAgIAotICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBQ aW5za2kgPGFwaW5za2lAY2F2aXVtLmNvbT4KLQotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIv Z2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMiBAQAotKzIwMTYtMDctMjMgIEFuZHJldyBQaW5z a2kgIDxhcGluc2tpQGNhdml1bS5jb20+Ci0rCi0rCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9p bnQuYwotKwkoYWFyY2g2NF9saW51eF9nZXRfZGVidWdfcmVnX2NhcGFjaXR5KTogSGFuZGxlCi0r CUFSTXY4LjEgYW5kIEFSTXY4LjIgZGVidWcgdmVyc2lvbnMuCi0rCSogbmF0L2FhcmNoNjQtbGlu dXgtaHctcG9pbnQuaAotKwkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzEpOiBOZXcgZGVmaW5lLgot KwkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzIpOiBOZXcgZGVmaW5lLgotKwotIDIwMTYtMDYtMzAg INCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgIDxscm4xOTg2QGdtYWlsLmNvbT4KLSAK LSAJUFIgZ2RiLzE0NTI5Ci0tLS0gYS9nZGIvbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwot KysrIGIvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmMKLUBAIC02MzAsNyArNjMwLDkg QEAgYWFyY2g2NF9saW51eF9nZXRfZGVidWdfcmVnX2NhcGFjaXR5IChpbnQgdGlkKQotIAotICAg LyogR2V0IGhhcmR3YXJlIHdhdGNocG9pbnQgcmVnaXN0ZXIgaW5mby4gICovCi0gICBpZiAocHRy YWNlIChQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIE5UX0FSTV9IV19XQVRDSCwgJmlvdikgPT0gMAot LSAgICAgICYmIEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFS Q0g2NF9ERUJVR19BUkNIX1Y4KQotKyAgICAgICYmIChBQVJDSDY0X0RFQlVHX0FSQ0ggKGRyZWdf c3RhdGUuZGJnX2luZm8pID09IEFBUkNINjRfREVCVUdfQVJDSF9WOAotKwkgIHx8IEFBUkNINjRf REVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4 XzEKLSsJICB8fCBBQVJDSDY0X0RFQlVHX0FSQ0ggKGRyZWdfc3RhdGUuZGJnX2luZm8pID09IEFB UkNINjRfREVCVUdfQVJDSF9WOF8yKSkKLSAgICAgewotICAgICAgIGFhcmNoNjRfbnVtX3dwX3Jl Z3MgPSBBQVJDSDY0X0RFQlVHX05VTV9TTE9UUyAoZHJlZ19zdGF0ZS5kYmdfaW5mbyk7Ci0gICAg ICAgaWYgKGFhcmNoNjRfbnVtX3dwX3JlZ3MgPiBBQVJDSDY0X0hXUF9NQVhfTlVNKQotQEAgLTY1 MCw3ICs2NTIsOSBAQCBhYXJjaDY0X2xpbnV4X2dldF9kZWJ1Z19yZWdfY2FwYWNpdHkgKGludCB0 aWQpCi0gCi0gICAvKiBHZXQgaGFyZHdhcmUgYnJlYWtwb2ludCByZWdpc3RlciBpbmZvLiAgKi8K LSAgIGlmIChwdHJhY2UgKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgTlRfQVJNX0hXX0JSRUFLLCAm aW92KSA9PSAwCi0tICAgICAgJiYgQUFSQ0g2NF9ERUJVR19BUkNIIChkcmVnX3N0YXRlLmRiZ19p bmZvKSA9PSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjgpCi0rICAgICAgJiYgKEFBUkNINjRfREVCVUdf QVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4Ci0rCSAg fHwgQUFSQ0g2NF9ERUJVR19BUkNIIChkcmVnX3N0YXRlLmRiZ19pbmZvKSA9PSBBQVJDSDY0X0RF QlVHX0FSQ0hfVjhfMQotKwkgIHx8IEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdf aW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzIpKQotICAgICB7Ci0gICAgICAgYWFyY2g2 NF9udW1fYnBfcmVncyA9IEFBUkNINjRfREVCVUdfTlVNX1NMT1RTIChkcmVnX3N0YXRlLmRiZ19p bmZvKTsKLSAgICAgICBpZiAoYWFyY2g2NF9udW1fYnBfcmVncyA+IEFBUkNINjRfSEJQX01BWF9O VU0pCi0tLS0gYS9nZGIvbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuaAotKysrIGIvZ2RiL25h dC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmgKLUBAIC02OCw2ICs2OCw4IEBACi0gCi0gLyogTWFj cm8gZm9yIHRoZSBleHBlY3RlZCB2ZXJzaW9uIG9mIHRoZSBBUk12OC1BIGRlYnVnIGFyY2hpdGVj dHVyZS4gICovCi0gI2RlZmluZSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjggMHg2Ci0rI2RlZmluZSBB QVJDSDY0X0RFQlVHX0FSQ0hfVjhfMSAweDcKLSsjZGVmaW5lIEFBUkNINjRfREVCVUdfQVJDSF9W OF8yIDB4OAotIAotIC8qIHB0cmFjZSBleHBlY3RzIGNvbnRyb2wgcmVnaXN0ZXJzIHRvIGJlIGZv cm1hdHRlZCBhcyBmb2xsb3dzOgotIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBv cy0yMG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCmluZGV4 IDYwMzdlMGUuLmIzN2M1YjkgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9m MjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaApAQCAtNDYz LDExICs0NjMsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJhbnNm ZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVu YW1lPWJpdHBvcy1tYWluLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YWRhLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYWRhLWxhbmcuYwky MDE1LTExLTAyIDIxOjIzOjExLjE3NTM1MTQxMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9hZGEtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMTk3MzY0NzE0ICswMTAwCi1A QCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKmRlc2NfYm91bmRzX3R5cGUgKHN0 CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxhbmcuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA1MzUxMDExNyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h ZGEtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI3NTMwMDI4ICswMjAwCitAQCAtNzUsNyAr NzUsNyBAQAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfYm91bmRzIChzdHJ1Y3QgdmFs dWUgKik7CiAgCkBAIC00NzYsNyArNDc2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGludCBmYXRfcG50cl9ib3VuZHNfYml0c2l6ZSAo c3RydWN0IHR5cGUgKik7CiAgCi1AQCAtODMsMTMgKzgzLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgdHlw ZSAqZGVzY19kYXRhX3RhcmdldF90eXAKK0BAIC04MywxMyArODMsMTMgQEAKICAKICBzdGF0aWMg c3RydWN0IHZhbHVlICpkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqKTsKICAKQEAgLTQ5Miw3ICs0 OTIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICBz dGF0aWMgaW50IGRlc2NfYm91bmRfYml0c2l6ZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwog IAotQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnN0YXRpY191bndyYXBf dHlwZSAoCitAQCAtMTcyLDcgKzE3Miw3IEBACiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdW53 cmFwX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC01MDEsNyArNTAxLDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB0 eXBlICpkZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICop OwogIAotQEAgLTE4Nyw3ICsxODcsOCBAQCBzdGF0aWMgaW50IGFkYV9pc191bmNvbnN0cmFpbmVk X3BhY2tlZF9hCitAQCAtMTg3LDcgKzE4Nyw4IEBACiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFs dWVfc3Vic2NyaXB0X3BhY2tlZCAoc3RydWN0IHZhbHVlICosIGludCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmFsdWUgKiopOwogIApAQCAt NTExLDcgKzUxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcu YwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUgKHN0 cnVjdCB2YWx1ZSAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB0eXBlICopOwotQEAgLTIxNSwxNCArMjE2LDE0IEBAIHN0YXRpYyBzdHJ1 Y3QgdmFsdWUgKnZhbHVlX3ZhbF9hdHIgKHN0cnUKK0BAIC0yMTUsMTQgKzIxNiwxNCBAQAogIHN0 YXRpYyBzdHJ1Y3Qgc3ltYm9sICpzdGFuZGFyZF9sb29rdXAgKGNvbnN0IGNoYXIgKiwgY29uc3Qg c3RydWN0IGJsb2NrICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG9tYWluX2VudW0pOwogIApAQCAtNTMwLDcgKzUzMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV90b19m aXhlZF92YWx1ZV9jcmVhdGUgKHN0cnVjdCB0eXBlICosIENPUkVfQUREUiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmFsdWUgKik7Ci1A QCAtMjM2LDcgKzIzNyw3IEBAIHN0YXRpYyBpbnQgYWRhX2lzX2RpcmVjdF9hcnJheV90eXBlIChz dHIKK0BAIC0yMzYsNyArMjM3LDcgQEAKICBzdGF0aWMgdm9pZCBhZGFfbGFuZ3VhZ2VfYXJjaF9p bmZvIChzdHJ1Y3QgZ2RiYXJjaCAqLAogIAkJCQkgICAgc3RydWN0IGxhbmd1YWdlX2FyY2hfaW5m byAqKTsKICAKQEAgLTUzOSw3ICs1MzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2FkYS1sYW5nLmMKICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqYXNzaWduX2FnZ3JlZ2F0ZSAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB2YWx1 ZSAqLCAKLUBAIC03MDAsNyArNzAxLDcgQEAgY29lcmNlX3Vuc3BlY192YWxfdG9fdHlwZSAoc3Ry dWN0IHZhbHVlCitAQCAtNzAwLDcgKzcwMSw3IEBACiAgfQogIAogIHN0YXRpYyBjb25zdCBnZGJf Ynl0ZSAqCkBAIC01NDgsNyArNTQ4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hZGEtbGFuZy5jCiAgewogICAgaWYgKHZhbGFkZHIgPT0gTlVMTCkKICAgICAgcmV0dXJuIE5V TEw7Ci1AQCAtNzA5LDcgKzcxMCw3IEBAIGNvbmRfb2Zmc2V0X2hvc3QgKGNvbnN0IGdkYl9ieXRl ICp2YWxhZGQKK0BAIC03MDksNyArNzEwLDcgQEAKICB9CiAgCiAgc3RhdGljIENPUkVfQUREUgpA QCAtNTU3LDcgKzU1Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxh bmcuYwogIHsKICAgIGlmIChhZGRyZXNzID09IDApCiAgICAgIHJldHVybiAwOwotQEAgLTE3MTcs NyArMTcxOCw3IEBAIGRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKmFycikKK0BAIC0xNzU2LDcg KzE3NTcsNyBAQAogIC8qIElmIFRZUEUgaXMgdGhlIHR5cGUgb2YgYW4gYXJyYXktZGVzY3JpcHRv ciAoZmF0IHBvaW50ZXIpLCAgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBjb250 YWluaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBib3VuZHMgZGF0YS4gICovCiAgCkBAIC01NjYsNyAr NTY2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgZmF0 X3BudHJfYm91bmRzX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIFRZ UEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDEpOwotQEAgLTE3ODMsNyAr MTc4NCw3IEBAIGRlc2NfZGF0YSAoc3RydWN0IHZhbHVlICphcnIpCitAQCAtMTgyMiw3ICsxODIz LDcgQEAKICAvKiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZh dCBwb2ludGVyKSwgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBjb250YWluaW5n IHRoZSBhZGRyZXNzIG9mIHRoZSBkYXRhLiAgKi8KICAKQEAgLTU3NSw3ICs1NzUsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICBmYXRfcG50cl9kYXRhX2Jp dHBvcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9T IChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDApOwotQEAgLTE4MTgsNyArMTgxOSw3IEBAIGRlc2Nf b25lX2JvdW5kIChzdHJ1Y3QgdmFsdWUgKmJvdW5kcywgaW4KK0BAIC0xODU3LDcgKzE4NTgsNyBA QAogICAgIG9mIHRoZSBJdGggbG93ZXIgYm91bmQgc3RvcmVkIGluIGl0LCBpZiBXSElDSCBpcyAw LCBhbmQgdGhlIEl0aCB1cHBlcgogICAgIGJvdW5kLCBpZiBXSElDSCBpcyAxLiAgVGhlIGZpcnN0 IGJvdW5kIGlzIEk9MS4gICovCiAgCkBAIC01ODQsNyArNTg0LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgZGVzY19ib3VuZF9iaXRwb3MgKHN0cnVjdCB0 eXBlICp0eXBlLCBpbnQgaSwgaW50IHdoaWNoKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJ VFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAyICogaSArIHdoaWNoIC0gMik7Ci1AQCAtMjAw OCw3ICsyMDA5LDcgQEAgYWRhX3R5cGVfb2ZfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyLCBpbgor QEAgLTIwNDcsNyArMjA0OCw3IEBACiAgCSAgICAgICAgIHplcm8sIGFuZCBkb2VzIG5vdCBuZWVk IHRvIGJlIHJlY29tcHV0ZWQuICAqLwogIAkgICAgICBpZiAobG8gPCBoaSkKICAJCXsKQEAgLTU5 Myw3ICs1OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMK ICAJCSAgICAgICAgKGhpIC0gbG8gKyAxKSAqIFRZUEVfRklFTERfQklUU0laRSAoZWx0X3R5cGUs IDApOwogIAogIAkJICBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6ZSAr IDcpIC8gODsKLUBAIC0yMTY4LDcgKzIxNjksNyBAQCBkZWNvZGVfcGFja2VkX2FycmF5X2JpdHNp emUgKHN0cnVjdCB0eXBlCitAQCAtMjIwNyw3ICsyMjA4LDcgQEAKICAgICB0aGUgbGVuZ3RoIGlz IGFyYml0cmFyeS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoKQEAgLTYwMiw3ICs2MDIs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICBz dHJ1Y3QgdHlwZSAqbmV3X2VsdF90eXBlOwogICAgc3RydWN0IHR5cGUgKm5ld190eXBlOwotQEAg LTIyMjIsNyArMjIyMyw3IEBAIGRlY29kZV9jb25zdHJhaW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAo c3QKK0BAIC0yMjYxLDcgKzIyNjIsNyBAQAogICAgY2hhciAqbmFtZTsKICAgIGNvbnN0IGNoYXIg KnRhaWw7CiAgICBzdHJ1Y3QgdHlwZSAqc2hhZG93X3R5cGU7CkBAIC02MTEsNyArNjExLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgICBpZiAoIXJh d19uYW1lKQogICAgICByYXdfbmFtZSA9IGFkYV90eXBlX25hbWUgKGRlc2NfYmFzZV90eXBlICh0 eXBlKSk7Ci1AQCAtMjI5Myw3ICsyMjk0LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9h cnJheSAoc3RydWN0CitAQCAtMjMzMiw3ICsyMzMzLDggQEAKICAgCSBhcnJheSB3aXRoIG5vIHdy YXBwZXIuICBJbiBvcmRlciB0byBpbnRlcnByZXQgdGhlIHZhbHVlIHRocm91Z2gKICAgCSB0aGUg KGxlZnQtanVzdGlmaWVkKSBwYWNrZWQgYXJyYXkgdHlwZSB3ZSBqdXN0IGJ1aWx0LCB3ZSBtdXN0 CiAgIAkgZmlyc3QgbGVmdC1qdXN0aWZ5IGl0LiAgKi8KQEAgLTYyMSw3ICs2MjEsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBVTE9OR0VTVCBt b2Q7CiAgCiAgICAgICAgbW9kID0gYWRhX21vZHVsdXMgKHZhbHVlX3R5cGUgKGFycikpIC0gMTsK LUBAIC0yNTIxLDcgKzI1MjMsNyBAQCBhZGFfdW5wYWNrX2Zyb21fY29udGVudHMgKGNvbnN0IGdk Yl9ieXRlCitAQCAtMjU2MCw3ICsyNTYyLDcgQEAKICAKICBzdHJ1Y3QgdmFsdWUgKgogIGFkYV92 YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHZhbHVlICpvYmosIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLApAQCAtNjMwLDcgKzYzMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUpCiAgewogICAgc3RydWN0IHZhbHVlICp2OwotQEAgLTI1OTQsNyArMjU5 Niw3IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKK0BAIC0yNjMz LDcgKzI2MzUsNyBAQAogIAogICAgaWYgKG9iaiAhPSBOVUxMKQogICAgICB7CkBAIC02MzksNyAr NjM5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAg ICAgICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgb2JqKTsKICAgICAgICBzZXRf dmFsdWVfYml0cG9zICh2LCBiaXRfb2Zmc2V0ICsgdmFsdWVfYml0cG9zIChvYmopKTsKLUBAIC0y NjQyLDcgKzI2NDQsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2 CitAQCAtMjY4MSw3ICsyNjgzLDcgQEAKICAgICBub3Qgb3ZlcmxhcC4gICovCiAgc3RhdGljIHZv aWQKICBtb3ZlX2JpdHMgKGdkYl9ieXRlICp0YXJnZXQsIGludCB0YXJnX29mZnNldCwgY29uc3Qg Z2RiX2J5dGUgKnNvdXJjZSwKQEAgLTY0OCw3ICs2NDgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICB1bnNpZ25lZCBpbnQgYWNjdW0sIG1hc2s7 CiAgICBpbnQgYWNjdW1fYml0cywgY2h1bmtfc2l6ZTsKLUBAIC0yNzMyLDcgKzI3MzQsNyBAQCBh ZGFfdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzCitAQCAtMjc3MSw3ICsyNzcz LDcgQEAKICAgICAgewogICAgICAgIGludCBsZW4gPSAodmFsdWVfYml0cG9zICh0b3ZhbCkKICAJ CSArIGJpdHMgKyBIT1NUX0NIQVJfQklUIC0gMSkgLyBIT1NUX0NIQVJfQklUOwpAQCAtNjU3LDcg KzY1Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAg ICAgIGdkYl9ieXRlICpidWZmZXIgPSAoZ2RiX2J5dGUgKikgYWxsb2NhIChsZW4pOwogICAgICAg IHN0cnVjdCB2YWx1ZSAqdmFsOwogICAgICAgIENPUkVfQUREUiB0b19hZGRyID0gdmFsdWVfYWRk cmVzcyAodG92YWwpOwotQEAgLTI3ODMsNyArMjc4NSw3IEBAIHZhbHVlX2Fzc2lnbl90b19jb21w b25lbnQgKHN0cnVjdCB2YWx1ZQorQEAgLTI4MjIsNyArMjgyNCw3IEBACiAgICAgIChMT05HRVNU KSAgKHZhbHVlX2FkZHJlc3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9hZGRyZXNzIChjb250YWluZXIp KTsKICAgIGludCBiaXRfb2Zmc2V0X2luX2NvbnRhaW5lciA9CiAgICAgIHZhbHVlX2JpdHBvcyAo Y29tcG9uZW50KSAtIHZhbHVlX2JpdHBvcyAoY29udGFpbmVyKTsKQEAgLTY2Niw3ICs2NjYsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAgIHZhbCA9 IHZhbHVlX2Nhc3QgKHZhbHVlX3R5cGUgKGNvbXBvbmVudCksIHZhbCk7CiAgCi1AQCAtNDM5Miw3 ICs0Mzk0LDcgQEAgZW5zdXJlX2x2YWwgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTQ0ODAsNyAr NDQ4Miw3IEBACiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBub3RfbHZhbAogICAgICAgIHx8 IFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9pbnRlcm5hbHZhcikKICAgICAgewpAQCAtNjc1LDcg KzY3NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAg ICAgIGNvbnN0IENPUkVfQUREUiBhZGRyID0KICAgICAgICAgIHZhbHVlX2FzX2xvbmcgKHZhbHVl X2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChsZW4pKTsKICAKLUBAIC00NDc2LDcgKzQ0Nzgs NyBAQCBzdGF0aWMgQ09SRV9BRERSCitAQCAtNDU2NCw3ICs0NTY2LDcgQEAKICB2YWx1ZV9wb2lu dGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwpAQCAtNjg0LDcgKzY4 NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgZ2Ri X2J5dGUgKmJ1ZiA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKGxlbik7CiAgICBDT1JFX0FERFIgYWRk cjsKICAKLUBAIC02NzExLDcgKzY3MTMsNyBAQCB2YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRf YWRkcmVzcyAoc3RyCitAQCAtNjc5OSw3ICs2ODAxLDcgQEAKICAJCQkJICAgICBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09S RV9BRERSIGFkZHJlc3MpCiAgewpAQCAtNjkzLDcgKzY5Myw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgc3RydWN0IHR5cGUgKnRhZ190eXBlOwogIAog ICAgaWYgKGZpbmRfc3RydWN0X2ZpZWxkICgiX3RhZyIsIHR5cGUsIDAsICZ0YWdfdHlwZSwgJnRh Z19ieXRlX29mZnNldCwKLUBAIC03MTgxLDcgKzcxODMsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9O R0VTVCB2YWwsIHN0cnVjdCB0eXBlCitAQCAtNzI4MCw3ICs3MjgyLDcgQEAKICAgICBvbmx5IGlu IHRoYXQgaXQgY2FuIGhhbmRsZSBwYWNrZWQgdmFsdWVzIG9mIGFyYml0cmFyeSB0eXBlLiAgKi8K ICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTcwMiw3ICs3MDIsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1A QCAtNzE5Myw3ICs3MTk1LDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZh bHVlCitAQCAtNzI5Miw3ICs3Mjk0LDcgQEAKICAKICAgIGlmIChUWVBFX0ZJRUxEX0JJVFNJWkUg KGFyZ190eXBlLCBmaWVsZG5vKSAhPSAwKQogICAgICB7CkBAIC03MTEsNyArNzExLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGJpdF9z aXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7CiAgCiAgICAgICAg cmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwgdmFsdWVfY29udGVu dHMgKGFyZzEpLAotQEAgLTcyMjAsOSArNzIyMiw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmll bGQgKHN0cnVjdCB2YWx1ZQorQEAgLTczMTksOSArNzMyMSw5IEBACiAgICAgUmV0dXJucyAxIGlm IGZvdW5kLCAwIG90aGVyd2lzZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNzIzLDcgKzcyMyw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50 ICppbmRleF9wKQogIHsKICAgIGludCBpOwotQEAgLTcyNDAsOCArNzI0Miw4IEBAIGZpbmRfc3Ry dWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHIKK0BAIC03MzM5LDggKzczNDEsOCBAQAog IAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGkgKz0gMSkKICAgICAg ewpAQCAtNzM0LDcgKzczNCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRh LWxhbmcuYwogICAgICAgIGNvbnN0IGNoYXIgKnRfZmllbGRfbmFtZSA9IFRZUEVfRklFTERfTkFN RSAodHlwZSwgaSk7CiAgCiAgICAgICAgaWYgKHRfZmllbGRfbmFtZSA9PSBOVUxMKQotQEAgLTcz MTEsNyArNzMxMyw3IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCitA QCAtNzQxMCw3ICs3NDEyLDcgQEAKICAgICBTZWFyY2hlcyByZWN1cnNpdmVseSB0aHJvdWdoIHdy YXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZh bHVlICoKQEAgLTc0Myw3ICs3NDMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUp CiAgewogICAgaW50IGk7Ci1AQCAtNzM0NCw3ICs3MzQ2LDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3Rf ZmllbGQgKGNvbnN0IGNoYXIgKm5hbQorQEAgLTc0NDMsNyArNzQ0NSw3IEBACiAgICAgICAgICAg IGludCBqOwogICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZSA9IGFkYV9jaGVja190 eXBlZGVmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsCiAgCQkJCQkJCQkJaSkpOwpAQCAtNzUyLDcg Kzc1Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAog ICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgVFlQRV9ORklFTERTIChmaWVsZF90eXBlKTsgaiAr PSAxKQogICAgICAgICAgICAgIHsKLUBAIC03MzYyLDggKzczNjQsOCBAQCBhZGFfc2VhcmNoX3N0 cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtCitAQCAtNzQ2MSw4ICs3NDYzLDggQEAKICAgIHJl dHVybiBOVUxMOwogIH0KICAKQEAgLTc2Myw3ICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAKICAvKiBSZXR1cm4gZmllbGQgI0lOREVYIGlu IEFSRywgd2hlcmUgdGhlIGluZGV4IGlzIHRoYXQgcmV0dXJuZWQgYnkKLUBAIC03MzcyLDcgKzcz NzQsNyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCitAQCAtNzQ3 MSw3ICs3NDczLDcgQEAKICAgKiBJZiBmb3VuZCwgcmV0dXJuIHZhbHVlLCBlbHNlIHJldHVybiBO VUxMLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc3Miw3ICs3NzIsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAJCQlzdHJ1Y3QgdHlw ZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRhX2luZGV4X3N0cnVjdF9maWVsZF8xICgmaW5kZXgs IGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC03Mzg0LDcgKzczODYsNyBAQCBhZGFfaW5kZXhfc3Ry dWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjCitAQCAtNzQ4Myw3ICs3NDg1LDcgQEAKICAgKiAq SU5ERVhfUC4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03ODEsNyArNzgxLDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCQkJICBzdHJ1 Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQgaTsKLUBAIC03NDc0LDcgKzc0NzYsOCBAQCBhZGFf dmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICphcmcsCitAQCAtNzU3Myw3ICs3NTc1LDgg QEAKICAgICAgdiA9IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwog ICAgZWxzZQogICAgICB7CkBAIC03OTEsNyArNzkxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CiAg ICAgICAgQ09SRV9BRERSIGFkZHJlc3M7CiAgCi1AQCAtNzc5MSw4ICs3Nzk0LDggQEAgYWRhX2Nv ZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqdmFsMCkKK0BAIC03OTA0LDggKzc5MDcsOCBAQAogIC8q IFJldHVybiBPRkYgcm91bmRlZCB1cHdhcmQgaWYgbmVjZXNzYXJ5IHRvIGEgbXVsdGlwbGUgb2YK ICAgICBBTElHTk1FTlQgKGEgcG93ZXIgb2YgMikuICAqLwogIApAQCAtODAyLDcgKzgwMiw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIHsKICAgIHJldHVy biAob2ZmICsgYWxpZ25tZW50IC0gMSkgJiB+KGFsaWdubWVudCAtIDEpOwogIH0KLUBAIC04MTg2 LDEwICs4MTg5LDkgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgor QEAgLTgyOTksMTAgKzgzMDIsOSBAQAogICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFy ayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0eXBlICpydHlwZTsKQEAg LTgxNSw3ICs4MTUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5n LmMKICAgIGludCBmOwogIAogICAgLyogQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0 aGlzIHJlY29yZCB0eXBlIHRoYXQgYXJlIGdvaW5nCi1AQCAtODI2Nyw3ICs4MjY5LDcgQEAgYWRh X3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorQEAgLTgzODAsNyArODM4Miw3 IEBACiAgCSAgICAgdGhhdCBmb2xsb3cgdGhpcyBvbmUuICAqLwogIAkgIGlmIChhZGFfaXNfYWxp Z25lcl90eXBlIChmaWVsZF90eXBlKSkKICAJICAgIHsKQEAgLTgyNCw3ICs4MjQsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmllbGRf dmFsYWRkciA9IGNvbmRfb2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7 CiAgCSAgICAgIGZpZWxkX2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJl c3MsIGZpZWxkX29mZnNldCk7Ci1AQCAtODQwMywxMSArODQwNSwxMSBAQCBhZGFfdGVtcGxhdGVf dG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAtODUxNiwxMSArODUxOCwxMSBAQAogICAg aWYgKFRZUEVfTEVOR1RIICh0eXBlKSA8PSAwKQogICAgICB7CiAgICAgICAgaWYgKFRZUEVfTkFN RSAocnR5cGUpKQpAQCAtODQwLDcgKzg0MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYWRhLWxhbmcuYwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKLUBAIC04ODc0LDcgKzg4 NzYsOCBAQCB0b19maXhlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsCitAQCAtODk4 Nyw3ICs4OTg5LDggQEAKICAJIHR5cGUgd2FzIGEgcmVndWxhciAobm9uLXBhY2tlZCkgYXJyYXkg dHlwZS4gIEFzIGEgcmVzdWx0LCB0aGUKICAJIGJpdHNpemUgb2YgdGhlIGFycmF5IGVsZW1lbnRz IG5lZWRzIHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJheQogIAkgbGVuZ3RoIG5lZWRzIHRv IGJlIHJlY29tcHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXplLiAgKi8KQEAgLTg1MCwxMSArODUw LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAg IGludCBlbHRfYml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZTAsIDApOwogIAogICAg ICAgIFRZUEVfRklFTERfQklUU0laRSAocmVzdWx0LCAwKSA9IFRZUEVfRklFTERfQklUU0laRSAo dHlwZTAsIDApOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hZGEtbGFuZy5oCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMTc3MzUxNDIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1s YW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTgzNjQ3MjEgKzAxMDAKLUBAIC0xNjgsNyArMTY4 LDcgQEAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlCistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1 NDUxMDEyNSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5oCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICswMjAwCitAQCAtMTY4LDcgKzE2OCw3IEBACiAg ZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg c3ltYm9sICpuZXdfc3ltYm9sLAogIAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsK ICAKQEAgLTg2Myw3ICs4NjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS1sYW5nLmgKICAJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICAgY29uc3Qgc3Ry dWN0IHZhbHVlICosCiAgCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7 Ci1AQCAtMTgzLDcgKzE4Myw3IEBAIGV4dGVybiB2b2lkIGFkYV9lbWl0X2NoYXIgKGludCwgc3Ry dWN0IHQKK0BAIC0xODMsNyArMTgzLDcgQEAKICBleHRlcm4gdm9pZCBhZGFfcHJpbnRjaGFyIChp bnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICopOwogIAogIGV4dGVybiB2b2lkIGFk YV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKiwgc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5 dGUgKiwKQEAgLTg3Miw3ICs4NzIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwog IAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZlcnRfYWN0dWFsIChzdHJ1Y3QgdmFsdWUgKmFjdHVh bCwKLUBAIC0yNTUsNyArMjU1LDcgQEAgZXh0ZXJuIGludCBhZGFfaXNfY29uc3RyYWluZWRfcGFj a2VkX2FycgorQEAgLTI1NSw3ICsyNTUsNyBAQAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFk YV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHZhbHVlICosCiAgCQkJCQkJICAg ICBjb25zdCBnZGJfYnl0ZSAqLApAQCAtODgxLDExICs4ODEsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKTsKICAKICBleHRlcm4gc3Ry dWN0IHR5cGUgKmFkYV9jb2VyY2VfdG9fc2ltcGxlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICop OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMTc3MzUxNDIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5ODM2NDcyMSArMDEwMAotQEAg LTg5MSw4ICs4OTEsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25z CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTYt MDctMTYgMTQ6MzM6NDIuMDU1NTEwMTMzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2FkYS10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyODUzMDAzNiArMDIwMAor QEAgLTg5MSw4ICs4OTEsOCBAQAogIAkgICAgY29uc3QgY2hhciAqbmFtZSA9IGFkYV90eXBlX25h bWUgKHR5cGUpOwogIAogIAkgICAgaWYgKCFhZGFfaXNfcmFuZ2VfdHlwZV9uYW1lIChuYW1lKSkK QEAgLTg5Niw3ICs4OTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS10 eXBlcHJpbnQuYwogIAkgICAgZWxzZQogIAkgICAgICB7CiAgCQlmcHJpbnRmX2ZpbHRlcmVkIChz dHJlYW0sICJyYW5nZSAiKTsKLUBAIC05MTMsNyArOTEzLDggQEAgYWRhX3ByaW50X3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlMCwgY29ucworQEAgLTkxMyw3ICs5MTMsOCBAQAogIAkgIH0KICAJYnJl YWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRkxUOgpAQCAtOTA2LDEwICs5MDYsMTAgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJlYWs7CiAg ICAgICAgY2FzZSBUWVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc5MzUx NDM2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCTIw MTUtMTEtMDIgMjE6MjM6MTMuMTk5MzY0NzI4ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvYWRhLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNTY1MTAxNDEg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXZhbHByaW50LmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKIEBAIC0zMywxMSArMzMsMTEgQEAKICAjaW5j bHVkZSAib2JqZmlsZXMuaCIKICAKQEAgLTkyNCw3ICs5MjQsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBs YW5ndWFnZV9kZWZuICopOwogIAwKICAKLUBAIC0yNzksNyArMjc5LDcgQEAgYWRhX2VtaXRfY2hh ciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTI3OSw3ICsyNzksNyBAQAogICAgIG9m IGEgY2hhcmFjdGVyLiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC05MzMsNyArOTMzLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXIpCiAgewogICAgaWYgKHR5cGVfbGVuID09IDEpCi1AQCAtNDQxLDEx ICs0NDEsMTEgQEAgYWRhX3ByaW50X3NjYWxhciAoc3RydWN0IHR5cGUgKnR5cGUsIExPTgorQEAg LTQ0MSwxMSArNDQxLDExIEBACiAgCiAgc3RhdGljIHZvaWQKICBwcmludHN0ciAoc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKmVsdHR5cGUsIGNvbnN0IGdkYl9ieXRlICpzdHJp bmcsCkBAIC05NDcsNyArOTQ3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtdmFscHJpbnQuYwogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIGlu dCBpbl9xdW90ZXMgPSAwOwogICAgaW50IG5lZWRfY29tbWEgPSAwOwotQEAgLTQ2MCw5ICs0NjAs OSBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CitAQCAtNDYwLDkg KzQ2MCw5IEBACiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdl IGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyByZXBlYXRlZC4g ICovCkBAIC05NTksNyArOTU5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtdmFscHJpbnQuYwogIAogICAgICAgIFFVSVQ7CiAgCi1AQCAtNDkzLDcgKzQ5Myw4IEBAIHBy aW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BAIC00OTMsNyArNDkzLDgg QEAKICAJICBhZGFfZW1pdF9jaGFyIChjaGFyX2F0IChzdHJpbmcsIGksIHR5cGVfbGVuLCBieXRl X29yZGVyKSwKICAJCQkgZWx0dHlwZSwgc3RyZWFtLCAnXCcnLCB0eXBlX2xlbik7CiAgCSAgZnB1 dHNfZmlsdGVyZWQgKCInIiwgc3RyZWFtKTsKQEAgLTk2OSw3ICs5NjksNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgaSA9IHJlcDEgLSAxOwog IAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAg CSAgbmVlZF9jb21tYSA9IDE7Ci1AQCAtNTIxLDcgKzUyMiw3IEBAIHByaW50c3RyIChzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BAIC01MjEsNyArNTIyLDcgQEAKICAKICB2b2lkCiAg YWRhX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwK QEAgLTk3OCw3ICs5NzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12 YWxwcmludC5jCiAgCSAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBz ZXMsCiAgCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQog IHsKLUBAIC01MzEsMTIgKzUzMiwxMiBAQCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIHN0CitAQCAtNTMxLDEyICs1MzIsMTIgQEAKICAKICBzdGF0aWMgaW50CiAgcHJpbnRf dmFyaWFudF9wYXJ0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkX251bSwKQEAgLTk5Myw3 ICs5OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5j CiAgCQkgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKQogIHsKICAgIHN0 cnVjdCB0eXBlICp2YXJfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwgZmllbGRfbnVtKTsK LUBAIC01NzIsMTEgKzU3MywxMSBAQCBwcmludF92YXJpYW50X3BhcnQgKHN0cnVjdCB0eXBlICp0 eXBlLCBpCitAQCAtNTcyLDExICs1NzMsMTEgQEAKICAKICBzdGF0aWMgaW50CiAgcHJpbnRfZmll bGRfdmFsdWVzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBA IC0xMDA3LDcgKzEwMDcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12 YWxwcmludC5jCiAgCQkgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKQog IHsKICAgIGludCBpLCBsZW47Ci1AQCAtNjQzLDcgKzY0NCw3IEBAIHByaW50X2ZpZWxkX3ZhbHVl cyAoc3RydWN0IHR5cGUgKnR5cGUsIGMKK0BAIC02NDMsNyArNjQ0LDcgQEAKICAJICAgIH0KICAJ ICBlbHNlCiAgCSAgICB7CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVf RklFTERfQklUU0laRSAodHlwZSwgaSk7CiAgCSAgICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zIG9wdHM7CiAgCi1AQCAtNjg5LDggKzY5MCw4IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChz dHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC02ODksOCArNjkwLDggQEAKICB7CiAgICBlbnVtIGJmZF9l bmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlw ZSkpOwogICAgc3RydWN0IHR5cGUgKmVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsK QEAgLTEwMjcsNyArMTAyNyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRh LXZhbHByaW50LmMKICAKICAgIC8qIFdlIGtub3cgdGhhdCBFTFRUWVBFIGNhbm5vdCBwb3NzaWJs eSBiZSBudWxsLCBiZWNhdXNlIHdlIGFzc3VtZQogICAgICAgdGhhdCB3ZSdyZSBjYWxsZWQgb25s eSB3aGVuIFRZUEUgaXMgYSBzdHJpbmctbGlrZSB0eXBlLgotQEAgLTcwOSw3ICs3MTAsNyBAQCBh ZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNzA5LDcgKzcxMCw3 IEBACiAgICAgICBlbGVtZW50cyB1cCB0byBpdC4gICovCiAgICBpZiAob3B0aW9ucy0+c3RvcF9w cmludF9hdF9udWxsKQogICAgICB7CkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAgICAgICAgLyogTG9vayBmb3Ig YSBOVUxMIGNoYXIuICAqLwogICAgICAgIGZvciAodGVtcF9sZW4gPSAwOwotQEAgLTEwNzQsNyAr MTA3NSw3IEBAIGFkYV92YWxfcHJpbnRfcmVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KK0BAIC0x MDc0LDcgKzEwNzUsNyBAQAogIAogIHN0YXRpYyB2b2lkCiAgYWRhX3ZhbF9wcmludF8xIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xMDQ1LDcgKzEwNDUs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgY29uc3Qgc3RydWN0IHZh bHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucywKLUBAIC0xMTU3LDcgKzExNTgsNyBAQCBhZGFfdmFsX3ByaW50XzEgKHN0cnVj dCB0eXBlICp0eXBlLCBjb25zCitAQCAtMTE1Nyw3ICsxMTU4LDcgQEAKICAKICB2b2lkCiAgYWRh X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApA QCAtMTA1NCwxMSArMTA1NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS12YWxwcmludC5jCiAgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkgICAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2Fubm90YXRlLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW5u b3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2Fu bm90YXRlLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xNzkzNTE0MzYgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYW5ub3RhdGUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5OTM2NDcy OCArMDEwMAotQEAgLTU0MiwyMSArNTQyLDIxIEBAIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbm5vdGF0ZS5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMDU3NTEwMTQ5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fu bm90YXRlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKK0BAIC01MzMsMjEg KzUzMywyMSBAQAogIH0KICAMCiAgdm9pZApAQCAtMTA4NCwxMSArMTA4NCwxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRlLmMKICB9CiAgCiAgdm9pZAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5vdGF0ZS5oCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2Fubm90YXRlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc5MzUxNDM2ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRlLmgJMjAxNS0xMS0wMiAy MToyMzoxMy4xOTkzNjQ3MjggKzAxMDAKLUBAIC05Miw4ICs5Miw4IEBAIGV4dGVybiB2b2lkIGFu bm90YXRlX2ZyYW1lX3NvdXJjZV9lbmQgKHYKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9hbm5vdGF0ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3NTEwMTQ5ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41 Mjg1MzAwMzYgKzAyMDAKK0BAIC05Miw4ICs5Miw4IEBACiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVf ZnJhbWVfd2hlcmUgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX2VuZCAodm9p ZCk7CiAgCkBAIC0xMDk5LDExICsxMDk5LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYW5ub3RhdGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lk KTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90 YXRlX2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYXJtLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fy bS1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2FybS1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE4MDM1MTQ0MyArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0xMS0wMiAy MToyMzoxMy4yMDAzNjQ3MzQgKzAxMDAKLUBAIC0xMDk5LDcgKzEwOTksNyBAQCBhcm1fbGludXhf cmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3NTEwMTQ5ICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAorQEAgLTEwNjMsNyArMTA2Myw3IEBACiAgICAg QUREUj8gICovCiAgc3RhdGljIGludAogIGFybV9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNo cG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMTExMiwxMSArMTExMiwxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FybS1saW51eC1uYXQuYwogIHsKICAgIGNv bnN0IHN0cnVjdCBhcm1fbGludXhfaHdicF9jYXAgKmNhcCA9IGFybV9saW51eF9nZXRfaHdicF9j YXAgKCk7CiAgICBDT1JFX0FERFIgbWF4X3dwX2xlbmd0aCwgYWxpZ25lZF9hZGRyOwotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9heC1nZGIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTgyMzUxNDU2ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjAxMzY0NzQxICswMTAwCi1AQCAtODMsMTIgKzgzLDEyIEBAIHN0YXRpYyB2b2lkIGdlbl90cmFj ZWRfcG9wIChzdHJ1Y3QgZ2RiYXIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9h eC1nZGIuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2MDUxMDE3MyArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9heC1nZGIuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCAr MDIwMAorQEAgLTgzLDEyICs4MywxMiBAQAogIHN0YXRpYyB2b2lkIGdlbl9zaWduX2V4dGVuZCAo c3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2V4 dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CiAgc3RhdGljIHZvaWQg Z2VuX2ZldGNoIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlwZSAqKTsKQEAgLTExMzEs NyArMTEzMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICBz dGF0aWMgdm9pZCBnZW5fc3ltX29mZnNldCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHN5 bWJvbCAqKTsKICBzdGF0aWMgdm9pZCBnZW5fdmFyX3JlZiAoc3RydWN0IGdkYmFyY2ggKiwgc3Ry dWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwgc3RydWN0 IHN5bWJvbCAqdmFyKTsKLUBAIC0xMzYsMTUgKzEzNiwxNiBAQCBzdGF0aWMgdm9pZCBnZW5fZGVy ZWYgKHN0cnVjdCBhZ2VudF9leHByCitAQCAtMTM2LDE1ICsxMzYsMTYgQEAKICBzdGF0aWMgdm9p ZCBnZW5fYWRkcmVzc19vZiAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IGF4c192YWx1ZSAq KTsKICBzdGF0aWMgdm9pZCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICAgICAgc3RydWN0IGF4c192YWx1ZSAqdmFs dWUsCkBAIC0xMTUxLDcgKzExNTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2F4LWdkYi5jCiAgCQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUpOwogIHN0YXRpYyB2b2lkIGdl bl9zdHJ1Y3RfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAq YXgsCiAgCQkJICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLAotQEAgLTUzOSw3ICs1NDAsNyBA QCBnZW5fZmV0Y2ggKHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0CitAQCAtNTM4LDcgKzUz OSw3IEBACiAgICAgcmlnaHQgc2hpZnQgaXQgYnkgLURJU1RBTkNFIGJpdHMgaWYgRElTVEFOQ0Ug PCAwLiAgVGhpcyBnZW5lcmF0ZXMKICAgICB1bnNpZ25lZCAobG9naWNhbCkgcmlnaHQgc2hpZnRz LiAgKi8KICBzdGF0aWMgdm9pZApAQCAtMTE2MCw3ICsxMTYwLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIHsKICAgIGlmIChkaXN0YW5jZSA+IDApCiAgICAg IHsKLUBAIC01OTMsNyArNTk0LDcgQEAgZ2VuX2ZyYW1lX2xvY2Fsc19hZGRyZXNzIChzdHJ1Y3Qg Z2RiYXJjaAorQEAgLTU5Miw3ICs1OTMsNyBAQAogICAgIHByb2dyYW1taW5nIGluIE1MLCBpdCB3 b3VsZCBiZSBjbGVhcmVyIHdoeSB0aGVzZSBhcmUgdGhlIHNhbWUKICAgICB0aGluZy4gICovCiAg c3RhdGljIHZvaWQKQEAgLTExNjksNyArMTE2OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJdCB3b3VsZCBzdWZmaWNlIHRvIHNpbXBseSBw dXNoIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCwgYnV0IHRoaXMKICAgICAgIG1ha2VzIGl0IGVhc2ll ciB0byByZWFkIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGluIHRoZQotQEAgLTEyNDks NyArMTI1MCw3IEBAIGdlbl9hZGRyZXNzX29mIChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIHMKK0BA IC0xMjQ4LDcgKzEyNDksNyBAQAogIHN0YXRpYyB2b2lkCiAgZ2VuX2JpdGZpZWxkX3JlZiAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJICBzdHJ1Y3Qg YXhzX3ZhbHVlICp2YWx1ZSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xMTc4LDcgKzExNzgsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgewogICAgLyogTm90 ZSB0aGF0IG9wc1tpXSBmZXRjaGVzIDggPDwgaSBiaXRzLiAgKi8KICAgIHN0YXRpYyBlbnVtIGFn ZW50X29wIG9wc1tdCi1AQCAtMTI4NCwxMyArMTI4NSwxMyBAQCBnZW5fYml0ZmllbGRfcmVmIChz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCitAQCAtMTI4MywxMyArMTI4NCwxMyBAQAogIAogICAgLyog VGhlIGZpcnN0IGFuZCBvbmUtYWZ0ZXItbGFzdCBiaXRzIGluIHRoZSBmaWVsZCwgYnV0IHJvdW5k ZWQgZG93bgogICAgICAgYW5kIHVwIHRvIGJ5dGUgYm91bmRhcmllcy4gICovCkBAIC0xMTk3LDcg KzExOTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgCiAg ICAvKiBUaGUgaW5kZXggaW4gb3BzIG9mIHRoZSBvcGNvZGUgd2UncmUgY29uc2lkZXJpbmcuICAq LwogICAgaW50IG9wOwotQEAgLTE0MDksNyArMTQxMCw3IEBAIGdlbl9iaXRmaWVsZF9yZWYgKHN0 cnVjdCBleHByZXNzaW9uICpleHAKK0BAIC0xNDA4LDcgKzE0MDksNyBAQAogIHN0YXRpYyB2b2lk CiAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJCSAgICAg c3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyMDYs NyArMTIwNiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICB7 CiAgICAvKiBJcyB0aGlzIGEgYml0ZmllbGQ/ICAqLwogICAgaWYgKFRZUEVfRklFTERfUEFDS0VE ICh0eXBlLCBmaWVsZG5vKSkKLUBAIC0xNDM0LDcgKzE0MzUsNyBAQCBnZW5fcHJpbWl0aXZlX2Zp ZWxkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqCitAQCAtMTQzMyw3ICsxNDM0LDcgQEAKICBzdGF0aWMg aW50CiAgZ2VuX3N0cnVjdF9yZWZfcmVjdXJzaXZlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBz dHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAg LTEyMTUsMTEgKzEyMTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1n ZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAgaW50IG5iYXNlcyA9IFRZUEVfTl9CQVNFQ0xB U1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdlbmVyYWwu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZW5lcmFsLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxNS0x MS0wMiAyMToyMzoxMS4xODIzNTE0NTYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYXgtZ2VuZXJhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICswMTAwCi1AQCAt MTkyLDcgKzE5Miw3IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqeCwgaW50IG4K Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxNi0wNy0x NiAxNDozMzo0Mi4wNjA1MTAxNzMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv YXgtZ2VuZXJhbC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI5NTMwMDQ0ICswMjAwCitAQCAtMTk5 LDcgKzE5OSw3IEBACiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8g RVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwogIHZvaWQKQEAgLTEyMjgsMTEgKzEyMjgsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZW5lcmFsLmMKICB7CiAgICAv KiBOIG11c3QgZml0IGluIGEgYnl0ZS4gICovCiAgICBpZiAobiA8IDAgfHwgbiA+IDI1NSkKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXguaAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9heC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvYXguaAkyMDE1LTExLTAyIDIxOjIzOjExLjE4MzM1MTQ2MyArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9heC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICsw MTAwCi1AQCAtMjA3LDcgKzIwNyw3IEBAIGV4dGVybiB2b2lkIGF4X2V4dCAoc3RydWN0IGFnZW50 X2V4cHIgKkUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC5oCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDYwNTEwMTczICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2F4LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjk1MzAwNDQgKzAyMDAKK0BAIC0yMTAsNyArMjEw LDcgQEAKICBleHRlcm4gdm9pZCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKkVYUFIs IGludCBOKTsKICAKICAvKiBBcHBlbmQgYSB0cmFjZV9xdWljayBpbnN0cnVjdGlvbiB0byBFWFBS LCB0byByZWNvcmQgTiBieXRlcy4gICovCkBAIC0xMjQxLDExICsxMjQxLDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXguaAogIAogIC8qIEFwcGVuZCBhIGdvdG8gb3AgdG8g RVhQUi4gIE9QIGlzIHRoZSBhY3R1YWwgb3AgKG11c3QgYmUgYW9wX2dvdG8gb3IKICAgICBhb3Bf aWZfZ290bykuICBXZSBhc3N1bWUgd2UgZG9uJ3Qga25vdyB0aGUgdGFyZ2V0IG9mZnNldCB5ZXQs Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNS0xMS0wMiAyMToyMzox MS4xODgzNTE0OTYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2lu dC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA1MzY0NzY3ICswMTAwCi1AQCAtMjIxNSw5ICsyMjE1 LDkgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9jYXRpb24gKgorLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA2NzUxMDIzMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9icmVha3BvaW50 LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzE1MzAwNjAgKzAyMDAKK0BAIC0yMjUxLDkgKzIyNTEs OSBAQAogIAl7CiAgCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogIAkJCSAgICAg ICJpbmZydW46IHN0ZXBwaW5nIHBhc3Qgbm9uLXN0ZXBwYWJsZSB3YXRjaHBvaW50LiAiCkBAIC0x MjU3LDcgKzEyNTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9p bnQuYwogIAl9CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0KLUBAIC03MDUzLDcgKzcwNTMsNyBA QCBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCitAQCAtNzE4MSw3ICs3 MTgxLDcgQEAKICAKICBzdGF0aWMgaW50CiAgYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoX3Jhbmdl IChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlMSwgQ09SRV9BRERSIGFkZHIxLApAQCAtMTI2 Niw3ICsxMjY2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50 LmMKICAJCQkJQ09SRV9BRERSIGFkZHIyKQogIHsKICAgIHJldHVybiAoKGdkYmFyY2hfaGFzX2ds b2JhbF9icmVha3BvaW50cyAodGFyZ2V0X2dkYmFyY2ggKCkpCi1AQCAtMTEzODcsNyArMTEzODcs NyBAQCBjYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQgKHN0cnVjdCB2YWx1CitAQCAtMTE1MzQs NyArMTE1MzQsNyBAQAogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlwZSkgIT0gVFlQRV9DT0RF X0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFsdWVfYWRkcmVzcyAodik7 CkBAIC0xMjc1LDExICsxMjc1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YnJlYWtwb2ludC5jCiAgCQkgIGludCBudW1fcmVnczsKICAKICAJCSAgbGVuID0gKHRhcmdldF9l eGFjdF93YXRjaHBvaW50cwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3Bv aW50LmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIw MTUtMTEtMDIgMjE6MjM6MTEuMTkwMzUxNTA5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNjM2NDc3MyArMDEwMAot QEAgLTIzNyw3ICsyMzcsNyBAQCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8KKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9icmVha3BvaW50LmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjg1 MTAyMzggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5oCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMjM3LDcgKzIzNyw3IEBACiAg CiAgICAvKiBJZiB0aGlzIGlzIGEgcmFuZ2VkIGJyZWFrcG9pbnQsIHRoZW4gdGhpcyBmaWVsZCBj b250YWlucyB0aGUKICAgICAgIGxlbmd0aCBvZiB0aGUgcmFuZ2UgdGhhdCB3aWxsIGJlIHdhdGNo ZWQgZm9yIGV4ZWN1dGlvbi4gICovCkBAIC0xMjg4LDcgKzEyODgsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuaAogIAogICAgLyogSWYgdGhlIGJyZWFrcG9p bnQgbGl2ZXMgaW4gbWVtb3J5IGFuZCByZWFkaW5nIHRoYXQgbWVtb3J5IHdvdWxkCiAgICAgICBn aXZlIGJhY2sgdGhlIGJyZWFrcG9pbnQsIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGNvbnRlbnRz LCB0aGVuCi1AQCAtNDEzLDcgKzQxMyw3IEBAIHN0cnVjdCBicF9sb2NhdGlvbgorQEAgLTQxMyw3 ICs0MTMsNyBAQAogICAgLyogRm9yIGhhcmR3YXJlIHdhdGNocG9pbnRzLCB0aGUgc2l6ZSBvZiB0 aGUgbWVtb3J5IHJlZ2lvbiBiZWluZwogICAgICAgd2F0Y2hlZC4gIEZvciBoYXJkd2FyZSByYW5n ZWQgYnJlYWtwb2ludHMsIHRoZSBzaXplIG9mIHRoZQogICAgICAgYnJlYWtwb2ludCByYW5nZS4g ICovCkBAIC0xMjk3LDExICsxMjk3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBUeXBlIG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAq LwogICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB3YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2MtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvYy1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTAzNTE1MDkgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDYz NjQ3NzMgKzAxMDAKLUBAIC0xODcsNyArMTg3LDcgQEAgY19wcmludGNoYXIgKGludCBjLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwgcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtbGFu Zy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY5NTEwMjQ2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2MtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAw CitAQCAtMTg2LDcgKzE4Niw3IEBACiAgCiAgdm9pZAogIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTEzMTAsNyArMTMxMCw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMKICAJICAgIGNvbnN0IGNoYXIg KnVzZXJfZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC02NzYsNyArNjc2LDcgQEAgZXZh bHVhdGVfc3ViZXhwX2MgKHN0cnVjdCB0eXBlICpleHBlY3RfdAorQEAgLTY3NSw3ICs2NzUsNyBA QAogIAkgIH0KICAJZWxzZQogIAkgIHsKQEAgLTEzMTksNyArMTMxOSw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMKICAKICAJICAgIC8qIFdyaXRlIHRoZSB0ZXJt aW5hdGluZyBjaGFyYWN0ZXIuICAqLwogIAkgICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTEVOR1RI ICh0eXBlKTsgKytpKQotQEAgLTY4NSw3ICs2ODUsNyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3Ry dWN0IHR5cGUgKmV4cGVjdF90CitAQCAtNjg0LDcgKzY4NCw3IEBACiAgCSAgICBpZiAoc2F0aXNm eV9leHBlY3RlZCkKICAJICAgICAgewogIAkJTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7 CkBAIC0xMzI4LDExICsxMzI4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Yy1sYW5nLmMKICAKICAJCWlmIChnZXRfZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUg KGV4cGVjdF90eXBlKSwKICAJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9jLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkxMzUxNTE1ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjA2MzY0NzczICswMTAwCi1AQCAtNzQsNyArNzQsNyBAQCBleHRlcm4gdm9pZCBjX3ByaW50 X3R5cGVkZWYgKHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv Yy1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjk1MTAyNDYgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvYy1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjgg KzAyMDAKK0BAIC03Nyw3ICs3Nyw3IEBACiAgCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAK ICBleHRlcm4gdm9pZCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUg KiwKQEAgLTEzNDEsNyArMTM0MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Yy1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3Qg dmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1AQCAt OTQsNyArOTQsNyBAQCBleHRlcm4gdm9pZCBjX3ByaW50Y2hhciAoaW50LCBzdHJ1Y3QgdHlwCitA QCAtOTcsNyArOTcsNyBAQAogIGV4dGVybiB2b2lkIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxl ICogc3RyZWFtLAogIAkJCXN0cnVjdCB0eXBlICplbHR0eXBlLAogIAkJCWNvbnN0IGdkYl9ieXRl ICpzdHJpbmcsCkBAIC0xMzUwLDI4ICsxMzUwLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYy1sYW5nLmgKICAJCQljb25zdCBjaGFyICp1c2VyX2VuY29kaW5nLAogIAkJCWlu dCBmb3JjZV9lbGxpcHNlcywKICAJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucyk7Ci1AQCAtMTIwLDE0ICsxMjAsMTQgQEAgZXh0ZXJuIHZvaWQgY3BfcHJpbnRfY2xh c3NfbWVtYmVyIChjb25zdAotIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqLCBjaGFyICopOwotIAot IGV4dGVybiB2b2lkIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHR5cGUgKiwKLS0JCQkJICAgY29uc3QgZ2RiX2J5dGUgKiwgaW50LCBDT1JFX0FERFIsCi0rCQkJ CSAgIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwKLSAJCQkJICAgc3RydWN0 IHVpX2ZpbGUgKiwgaW50LAotIAkJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKLSAJCQkJICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKLSAJCQkJICAgc3RydWN0IHR5cGUg KiosIGludCk7Ci0gCi0gZXh0ZXJuIHZvaWQgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0 cnVjdCB0eXBlICosCi0tCQkJCQljb25zdCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLSsJ CQkJCWNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwKLSAJCQkJCXN0cnVjdCB1 aV9maWxlICosIGludCwKLSAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotIAkJCQkJY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYy12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtdmFs cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2Mt dmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE5MTM1MTUxNSArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDcz NjQ3ODAgKzAxMDAKLUBAIC0yNDIsNyArMjQyLDcgQEAgY192YWxfcHJpbnRfYXJyYXkgKHN0cnVj dCB0eXBlICp0eXBlLCBjbworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtdmFs cHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9jLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAw NjggKzAyMDAKK0BAIC0yNDQsNyArMjQ0LDcgQEAKICAgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkg PiAwICYmIFRZUEVfTEVOR1RIICh1bnJlc29sdmVkX2VsdHR5cGUpID4gMCkKICAgICAgewogICAg ICAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwpAQCAtMTM4MCw3ICsxMzYzLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50LmMKICAgICAgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwogICAgICAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAg ICAgICB1bnNpZ25lZCBpbnQgaSA9IDA7CS8qIE51bWJlciBvZiBjaGFyYWN0ZXJzIHByaW50ZWQu ICAqLwotQEAgLTMxNiw4ICszMTYsOCBAQCBjX3ZhbF9wcmludF9hcnJheSAoc3RydWN0IHR5cGUg KnR5cGUsIGNvCitAQCAtMzE4LDggKzMxOCw4IEBACiAgCSAgaWYgKGNwX2lzX3Z0YmxfcHRyX3R5 cGUgKGVsdHR5cGUpKQogIAkgICAgewogIAkgICAgICBpID0gMTsKQEAgLTEzOTEsNyArMTM3NCw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5jCiAgCSAgICB9 CiAgCSAgZWxzZQogIAkgICAgewotQEAgLTM5NCw3ICszOTQsNyBAQCBjX3ZhbF9wcmludF9zdHJ1 Y3QgKHN0cnVjdCB0eXBlICp0eXBlLCBjCitAQCAtMzk2LDcgKzM5Niw3IEBACiAgCSAtZnZ0YWJs ZV90aHVua3MuICAoT3RoZXJ3aXNlLCBsb29rIHVuZGVyCiAgCSBUWVBFX0NPREVfUFRSLikgICov CiAgICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsK QEAgLTE0MDAsNyArMTM4Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12 YWxwcmludC5jCiAgCQkgICAgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwKICAJCQkJCSBWVEJM X0ZOQUREUl9PRkZTRVQpIC8gOCk7CiAgICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBU WVBFX0ZJRUxEX1RZUEUgKHR5cGUsIFZUQkxfRk5BRERSX09GRlNFVCk7Ci1AQCAtNDkzLDcgKzQ5 Myw3IEBAIGNfdmFsX3ByaW50X21lbWJlcnB0ciAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC00OTUs NyArNDk1LDcgQEAKICAKICB2b2lkCiAgY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTE0MDksMjkgKzEzOTIsMTggQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50LmMKICAJICAgICBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdp bmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQotQEAgLTU2NSw3ICs1NjUsOCBAQCBjX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZh bCwgc3RydWN0Ci0gCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucykKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJlYWxfdHlwZSwgKnZhbF90eXBlOwot LSAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOwotKyAgaW50IGZ1bGwsIHVzaW5nX2VuYzsKLSsg IExPTkdFU1QgdG9wOwotICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0cyA9ICpvcHRp b25zOwotIAotICAgb3B0cy5kZXJlZl9yZWYgPSAxOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9jcC1hYmkuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC1hYmku YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLWFiaS5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3MzY0NzgwICswMTAwCi1A QCAtNjQsMTIgKzY0LDEyIEBAIGlzX29wZXJhdG9yX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY3AtYWJpLmMJMjAxNi0wNy0xNiAxNDoz Mzo0Mi4wNzA1MTAyNTQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtYWJp LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BAIC02NCwxMiArNjQsMTIg QEAKICAgIHJldHVybiAoKmN1cnJlbnRfY3BfYWJpLmlzX29wZXJhdG9yX25hbWUpIChuYW1lKTsK ICB9CiAgCiAtaW50CiArTE9OR0VTVAogIGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0 eXBlLCBpbnQgaW5kZXgsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICBpbnQgZW1iZWRk ZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09S RV9BRERSIGFkZHJlc3MsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKIC0gIGlu dCByZXMgPSAwOwpAQCAtMTQzOSw3ICsxNDExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9jcC1hYmkuYwogIAogICAgZ2RiX2Fzc2VydCAoY3VycmVudF9jcF9hYmkuYmFzZWNs YXNzX29mZnNldCAhPSBOVUxMKTsKICAKLUBAIC05Niw3ICs5Niw3IEBAIGJhc2VjbGFzc19vZmZz ZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQKK0BAIC05Niw3ICs5Niw3IEBACiAgc3RydWN0IHZh bHVlICoKICB2YWx1ZV92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJ CQlzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLApAQCAtMTQ0OCwyMCArMTQyMCwxMSBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5jCiAgewogICAgaWYgKChjdXJyZW50 X2NwX2FiaS52aXJ0dWFsX2ZuX2ZpZWxkKSA9PSBOVUxMKQogICAgICByZXR1cm4gTlVMTDsKLUBA IC0xMDYsNyArMTA2LDcgQEAgdmFsdWVfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoq YQotIAotIHN0cnVjdCB0eXBlICoKLSB2YWx1ZV9ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwg aW50ICpmdWxsLAotLQkJIGludCAqdG9wLCBpbnQgKnVzaW5nX2VuYykKLSsJCSBMT05HRVNUICp0 b3AsIGludCAqdXNpbmdfZW5jKQotIHsKLSAgIHN0cnVjdCB0eXBlICpyZXQgPSBOVUxMOwotIAot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuaAorSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9jcC1hYmkuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIyICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6 MjM6MTMuMjA3MzY0NzgwICswMTAwCi1AQCAtMTA4LDcgKzEwOCw3IEBAIGV4dGVybiBzdHJ1Y3Qg dmFsdWUgKnZhbHVlX3ZpcnR1YWxfZm5fZmkKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9jcC1hYmkuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC1hYmkuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUz MDA2OCArMDIwMAorQEAgLTEwOCw3ICsxMDgsNyBAQAogIAkJCQkJICAgICBzdHJ1Y3QgZm5fZmll bGQgKmYsCiAgCQkJCQkgICAgIGludCBqLAogIAkJCQkJICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwK QEAgLTE0NzAsMjIgKzE0MzMsMTMgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9j cC1hYmkuaAogIAogIAogIC8qIFRyeSB0byBmaW5kIHRoZSBydW4tdGltZSB0eXBlIG9mIFZBTFVF LCB1c2luZyBDKysgcnVuLXRpbWUgdHlwZQotQEAgLTEzNSw3ICsxMzUsNyBAQCBleHRlcm4gc3Ry dWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCi0gICAgRlVMTCwgVE9QLCBhbmQgVVNJTkdf RU5DIGNhbiBlYWNoIGJlIHplcm8sIGluIHdoaWNoIGNhc2Ugd2UgZG9uJ3QKLSAgICBwcm92aWRl IHRoZSBjb3JyZXNwb25kaW5nIHBpZWNlIG9mIGluZm9ybWF0aW9uLiAgKi8KLSBleHRlcm4gc3Ry dWN0IHR5cGUgKnZhbHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBpbnQgKnRvcCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBMT05HRVNUICp0b3As Ci0gCQkJCSAgICAgaW50ICp1c2luZ19lbmMpOwotIAotIC8qIENvbXB1dGUgdGhlIG9mZnNldCBv ZiB0aGUgYmFzZWNsYXNzIHdoaWNoIGlzIHRoZSBJTkRFWHRoIGJhc2VjbGFzcwotQEAgLTE0NCwx MSArMTQ0LDExIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV90eXBlIChzdHIKK0BA IC0xNDQsMTEgKzE0NCwxMSBAQAogICAgIGNvbnRlbnRzIG9mIFZBTC4gIFRoZSByZXN1bHQgaXMg dGhlIG9mZnNldCBvZiB0aGUgYmFzZWNsYXNzIHZhbHVlCiAgICAgcmVsYXRpdmUgdG8gKHRoZSBh ZGRyZXNzIG9mKShBUkcpICsgT0ZGU0VULiAgKi8KICAKIC1leHRlcm4gaW50IGJhc2VjbGFzc19v ZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLAogLQkJCSAgICAgaW50IGluZGV4LCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKLS0JCQkgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsCistCQkJICAgICBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwKIC0JCQkgICAgIENPUkVfQUREUiBhZGRyZXNzLAogLQkJ CSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwogK2V4dGVybiBMT05HRVNUIGJhc2VjbGFz c19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTQ5Niw0OCArMTQ1MCwyOCBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5oCiAgCiAgLyogRGVzY3JpYmUgdGhl IHRhcmdldCBvZiBhIHBvaW50ZXIgdG8gbWV0aG9kLiAgQ09OVEVOVFMgaXMgdGhlIGJ5dGUKICAg ICBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgcG9pbnRlciB0byBtZXRob2QuICBUWVBFIGlzIHRo ZSBwb2ludGVyIHRvCi1AQCAtMjI3LDEyICsyMjcsMTMgQEAgc3RydWN0IGNwX2FiaV9vcHMKK0BA IC0yMjcsMTIgKzIyNywxMiBAQAogICAgc3RydWN0IHZhbHVlICooKnZpcnR1YWxfZm5fZmllbGQp IChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJCQkJICAgICBzdHJ1Y3QgZm5fZmllbGQgKiBmLAog IAkJCQkgICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAqIHR5cGUsCiAtCQkJCSAgICAgaW50IG9mZnNl dCk7CiArCQkJCSAgICAgTE9OR0VTVCBvZmZzZXQpOwogICAgc3RydWN0IHR5cGUgKigqcnR0aV90 eXBlKSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsCi0tCQkJICAgICBpbnQgKnRvcCwgaW50 ICp1c2luZ19lbmMpOworIAkJCSAgICAgTE9OR0VTVCAqdG9wLCBpbnQgKnVzaW5nX2VuYyk7CiAt ICBpbnQgKCpiYXNlY2xhc3Nfb2Zmc2V0KSAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwK LS0JCQkgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKKy0J CQkgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCiAt CQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSsJCQkg ICAgIExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpOwogKyAgTE9OR0VTVCAoKmJhc2VjbGFz c19vZmZzZXQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAotKwkJCSAgICAgICBjb25z dCBiZmRfYnl0ZSAqdmFsYWRkciwKLSsJCQkgICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQs IENPUkVfQUREUiBhZGRyZXNzLAotKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7 CisrCQkJICAgICAgIGNvbnN0IGJmZF9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwKKysJCQkgICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsKTsKICAgIHZvaWQgKCpwcmludF9tZXRob2RfcHRyKSAoY29uc3QgZ2RiX2J5dGUgKmNvbnRl bnRzLAogIAkJCSAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLXZhbHByaW50LmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0x MS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvY3AtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwODM2NDc4NyArMDEwMAotQEAg LTgwLDcgKzgwLDcgQEAgc3RhdGljIHZvaWQgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1Ywot IAkJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLSAKLSBzdGF0aWMg dm9pZCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLS0JCQkg ICAgY29uc3QgZ2RiX2J5dGUgKiwgaW50LAotKwkJCSAgICBjb25zdCBnZGJfYnl0ZSAqLCBMT05H RVNULAotIAkJCSAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICosCi0gCQkJICAgIGludCwg Y29uc3Qgc3RydWN0IHZhbHVlICosCi0gCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICosCi1AQCAtMTU0LDcgKzE1NCw3IEBAIGNwX2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3Qg dHlwZSAqdHlwZSkKLSAKLSB2b2lkCi0gY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IHR5cGUgKnJlYWxfdHlwZSwKLS0JCSAgICAgICBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwgaW50IG9mZnNldCwKLSsJCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwgTE9OR0VTVCBvZmZzZXQsCi0gCQkgICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sCi0gCQkgICAgICAgaW50IHJlY3Vyc2UsIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsLAotIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zLAotQEAgLTMzNCw3ICszMzQsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0 eXBlICp0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY3AtdmFscHJpbnQu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MTUxMDI2MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9jcC12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICsw MjAwCitAQCAtMzM0LDcgKzMzNCw3IEBACiAgCQl9CiAgCSAgICAgIGVsc2UgaWYgKGkgPT0gdnB0 cl9maWVsZG5vICYmIHR5cGUgPT0gdnB0cl9iYXNldHlwZSkKICAJCXsKQEAgLTE1NDYsNTcgKzE0 ODAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC12YWxwcmludC5jCiAg CQkgIHN0cnVjdCB0eXBlICppX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpOwogIAog IAkJICBpZiAodmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cmVhbSwgaV90eXBlLCBpX29mZnNl dCwgdmFsKSkKLUBAIC00MTcsNyArNDE3LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1 Y3QgdHlwZSAqdHlwZQotIAotIHZvaWQKLSBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3Ry dWN0IHR5cGUgKnR5cGUsCi0tCQkJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgb2Zm c2V0LAotKwkJCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZzZXQsCi0g CQkJICAgIENPUkVfQUREUiBhZGRyZXNzLAotIAkJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgcmVjdXJzZSwKLSAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNDM0 LDcgKzQzNCw4IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlwZQotIAkJ CQkgICAgIFRBUkdFVF9DSEFSX0JJVCAqIFRZUEVfTEVOR1RIICh0eXBlKSkpCi0gICAgIHsKLSAg ICAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlOwotLSAgICAgIGludCBmdWxsLCB0b3AsIHVzaW5nX2Vu YzsKLSsgICAgICBpbnQgZnVsbCwgdXNpbmdfZW5jOwotKyAgICAgIExPTkdFU1QgdG9wOwotIAot ICAgICAgIC8qIFVnaCwgd2UgaGF2ZSB0byBjb252ZXJ0IGJhY2sgdG8gYSB2YWx1ZSBoZXJlLiAg Ki8KLSAgICAgICB2YWx1ZSA9IHZhbHVlX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHR5cGUs IHZhbGFkZHIgKyBvZmZzZXQsCi1AQCAtNDU5LDcgKzQ2MCw3IEBAIGNwX3ByaW50X3ZhbHVlX2Zp ZWxkc19ydHRpIChzdHJ1Y3QgdHlwZQotIAotIHN0YXRpYyB2b2lkCi0gY3BfcHJpbnRfdmFsdWUg KHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLAotLQkJY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsIGludCBvZmZzZXQsCi0rCQljb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwg TE9OR0VTVCBvZmZzZXQsCi0gCQlDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwKLSAJCWludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCWNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTQ2OSw3ICs0NzAsNyBA QCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjCi0gICAgID0gKHN0cnVj dCB0eXBlICoqKSBvYnN0YWNrX25leHRfZnJlZSAoJmRvbnRfcHJpbnRfdmJfb2JzdGFjayk7Ci0g ICBzdHJ1Y3Qgb2JzdGFjayB0bXBfb2JzdGFjayA9IGRvbnRfcHJpbnRfdmJfb2JzdGFjazsKLSAg IGludCBpLCBuX2Jhc2VjbGFzc2VzID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsKLS0gIGlu dCB0aGlzb2Zmc2V0OwotKyAgTE9OR0VTVCB0aGlzb2Zmc2V0OwotICAgc3RydWN0IHR5cGUgKnRo aXN0eXBlOwotIAotICAgaWYgKGRvbnRfcHJpbnRfdmIgPT0gMCkKLUBAIC00ODMsNyArNDg0LDcg QEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1YwotIAotICAgZm9yIChp ID0gMDsgaSA8IG5fYmFzZWNsYXNzZXM7IGkrKykKLSAgICAgewotLSAgICAgIGludCBib2Zmc2V0 ID0gMDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQgPSAwOwotICAgICAgIGludCBza2lwID0gMDsK LSAgICAgICBzdHJ1Y3QgdHlwZSAqYmFzZWNsYXNzID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNF Q0xBU1MgKHR5cGUsIGkpKTsKLSAgICAgICBjb25zdCBjaGFyICpiYXNlbmFtZSA9IFRZUEVfTkFN RSAoYmFzZWNsYXNzKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC1sYW5nLmgK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZC1sYW5nLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIz OjExLjE5MzM1MTUyOSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kLWxhbmcu aAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwODM2NDc4NyArMDEwMAotQEAgLTgxLDcgKzgxLDcgQEAg ZXh0ZXJuIHN0cnVjdCBibG9ja19zeW1ib2wgZF9sb29rdXBfbmVzdAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcxNTEwMjYy ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2QtbGFuZy5oCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTMzNTMwMDc2ICswMjAwCitAQCAtODEsNyArODEsNyBAQAogIC8qIERlZmluZWQg aW4gZC12YWxwcmludC5jICAqLwogIAogIGV4dGVybiB2b2lkIGRfdmFsX3ByaW50IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xNjA1LDIwICsxNDkzLDEx IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC1sYW5nLmgKICAJCQkgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYworSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9kLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4x OTMzNTE1MjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC12YWxwcmludC5j CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA4MzY0Nzg3ICswMTAwCi1AQCAtMjksNyArMjksNyBAQAot IAotIHN0YXRpYyBpbnQKLSBkeW5hbWljX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JF X0FERFIgYWRkcmVzcywKLSsJCSAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERS IGFkZHJlc3MsCi0gCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0g CQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1AQCAtNzMsOSArNzMsOSBAQCBkeW5hbWljX2FycmF5 X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBjCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvZC12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcxNTEwMjYyICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2QtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjUzMzUzMDA3NiArMDIwMAorQEAgLTczLDkgKzczLDkgQEAKICAKICAvKiBJbXBsZW1lbnRz IHRoZSBsYV92YWxfcHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgRC4gICovCiAgdm9pZApAQCAt MTYzMSwxMSArMTUxMCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFs cHJpbnQuYwogICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucykKICB7CiAgICBpbnQgcmV0OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9kb3VibGVzdC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2RvdWJsZXN0LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kb3VibGVzdC5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMTk0MzUxNTM1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDgzNjQ3ODcgKzAxMDAK LUBAIC03NjUsNyArNzY1LDcgQEAgZmxvYXRmb3JtYXRfZnJvbV9kb3VibGVzdCAoY29uc3Qgc3Ry dWN0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZG91Ymxlc3QuYwkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA3MjUxMDI3MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9kb3VibGVzdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2ICswMjAwCitAQCAtNzg0 LDcgKzc4NCw3IEBACiAgICAgYnV0IG5vdCBwYXNzZWQgb24gYnkgR0RCLiAgVGhpcyBzaG91bGQg YmUgZml4ZWQuICAqLwogIAogIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKgpAQCAt MTY0NCw3ICsxNTIzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3VibGVz dC5jCiAgewogICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICpmb3JtYXQ7CiAgCi1AQCAtNzkz LDggKzc5Myw4IEBAIGZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1Y3QgZ2RiYXJjaAorQEAg LTgxMiw4ICs4MTIsOCBAQAogICAgZWxzZQogICAgICBmb3JtYXQgPSBOVUxMOwogICAgaWYgKGZv cm1hdCA9PSBOVUxMKQpAQCAtMTY1NSwxMSArMTUzNCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2RvdWJsZXN0LmMKICAgIHJldHVybiBmb3JtYXQ7CiAgfQogIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTk3MzUxNTU1 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjA5MzY0NzkzICswMTAwCi1AQCAtMTYzMiwxOSArMTYzMiwxOSBAQCBpbnNl cnRfYml0cyAodW5zaWduZWQgaW50IGRhdHVtLAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDc2NTEwMzAyICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2R3YXJmMmxvYy5jCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTMzNTMwMDc2ICswMjAwCitAQCAtMTYzOCwxOSArMTYzOCwxOSBAQAogICAgIEJJVFNfQklH X0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2guICAqLwogIAogIHN0YXRpYyB2 b2lkCkBAIC0xNjg1LDcgKzE1NjQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2R3YXJmMmxvYy5jCiAgCiAgICBkZXN0X2F2YWlsID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4 OwogIAotQEAgLTE2ODIsMTMgKzE2ODIsMTMgQEAgc3RhdGljIHZvaWQKK0BAIC0xNjg4LDEzICsx Njg4LDEzIEBACiAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKICB7CiAgICBp bnQgaTsKQEAgLTE3MDEsNyArMTU4MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZHdhcmYybG9jLmMKICAgIHNpemVfdCBidWZmZXJfc2l6ZSA9IDA7CiAgICBnZGJfYnl0ZSAq YnVmZmVyID0gTlVMTDsKICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotQEAgLTE3MTUsOCAr MTcxNSw4IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCitAQCAtMTcyMSw4 ICsxNzIxLDggQEAKICAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCB0 eXBlX2xlbjsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAg PSAmYy0+cGllY2VzW2ldOwpAQCAtMTcxMiw3ICsxNTkxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGNvbnN0IGdkYl9ieXRlICppbnRlcm1l ZGlhdGVfYnVmZmVyOwogIAogICAgICAgIC8qIENvbXB1dGUgc2l6ZSwgc291cmNlLCBhbmQgZGVz dGluYXRpb24gb2Zmc2V0cyBmb3IgY29weWluZywgaW4KLUBAIC0xODU2LDEzICsxODU2LDEzIEBA IHN0YXRpYyB2b2lkCitAQCAtMTg2MiwxMyArMTg2MiwxMyBAQAogIHdyaXRlX3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQogIHsKICAgIGludCBpOwpA QCAtMTcyOCw3ICsxNjA3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2Fy ZjJsb2MuYwogICAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdkYl9ieXRlICpidWZmZXIg PSBOVUxMOwogICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAtMTg5MCw4ICsxODkwLDgg QEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAorQEAgLTE4OTYsOCAr MTg5Niw4IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlw ZV9sZW47IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0g JmMtPnBpZWNlc1tpXTsKQEAgLTE3MzksMTggKzE2MTgsMTYgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGludCBuZWVkX2JpdHdpc2U7CiAgICAg ICAgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZV9idWZmZXI7CiAgCi1AQCAtMjAxMCw4ICsyMDEwLDgg QEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAotICAgIGEgc3ludGhl dGljIHBvaW50ZXIuICAqLworQEAgLTIwMTcsNyArMjAxNyw3IEBACiAgCiAgc3RhdGljIGludAot LWNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1 ZSwgaW50IGJpdF9vZmZzZXQsCisgY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyIChjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQsCiAtCQkJCWludCBiaXRf bGVuZ3RoKQotK2NoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZh bHVlICp2YWx1ZSwgTE9OR0VTVCBiaXRfb2Zmc2V0LAogKwkJCQlMT05HRVNUIGJpdF9sZW5ndGgp CiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAoc3RydWN0IHBpZWNlX2Ns b3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodmFsdWUpOwotQEAgLTIwMjQsNyArMjAy NCw3IEBAIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3QKK0BAIC0yMDMw LDcgKzIwMzAsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5n dGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9 ICZjLT5waWVjZXNbaV07CkBAIC0xNzU5LDIwICsxNjM2LDE4IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAKICAgICAgICBpZiAoYml0X29mZnNldCA+IDAp CiAgCXsKLUBAIC0yMDY2LDkgKzIwNjYsMTAgQEAgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1 Y3QgdmFsdWUgKnZhbAorQEAgLTIxMzIsOCArMjEzMiw4IEBACiAgICBzdHJ1Y3QgdHlwZSAqdHlw ZTsKICAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZTsKICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhw cl9iYXRvbiBiYXRvbjsKLS0gIGludCBpLCBiaXRfb2Zmc2V0LCBiaXRfbGVuZ3RoOworLSAgaW50 IGksIGJpdF9sZW5ndGg7CistICBMT05HRVNUIGJpdF9vZmZzZXQ7CiArICBpbnQgaTsKLSsgIExP TkdFU1QgYml0X2xlbmd0aDsKKysgIExPTkdFU1QgYml0X2xlbmd0aCwgYml0X29mZnNldDsKICAg IHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZSA9IE5VTEw7Ci0tICBMT05HRVNUIGJ5dGVf b2Zmc2V0OwotKyAgTE9OR0VTVCBieXRlX29mZnNldCwgYml0X29mZnNldDsKKyAgIExPTkdFU1Qg Ynl0ZV9vZmZzZXQ7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLSAKLSAgIHR5cGUg PSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpOwotQEAgLTIwODMsNyArMjA4NCw3 IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0yMTUwLDcg KzIxNTAsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGgg PiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZj LT5waWVjZXNbaV07CkBAIC0xNzgxLDcgKzE2NTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7 Ci1AQCAtMjM2Myw3ICsyMzY0LDcgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0 cnVjdCB0eQorQEAgLTI0NDQsNyArMjQ0NCw3IEBACiAgCSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVl ID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKICAJICAgIGdkYl9ieXRlICpjb250ZW50czsK ICAJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxfYnl0ZXM7CkBAIC0xNzkwLDExICsxNjY1LDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAKICAJICAgIGlm IChieXRlX29mZnNldCArIFRZUEVfTEVOR1RIICh0eXBlKSA+IG4pCiAgCSAgICAgIGludmFsaWRf c3ludGhldGljX3BvaW50ZXIgKCk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3 YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJyZWFkLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDQzNTE2MDEgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE1MzY0ODMzICsw MTAwCi1AQCAtMTkxNywxMiArMTkxNywxMiBAQCBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHBy X2NvbXBsYWludCAoCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZHdhcmYycmVh ZC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDgzNTEwMzU4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNjUzMDEwMCAr MDIwMAorQEAgLTE5MzUsMTIgKzE5MzUsMTIgQEAKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTE4 MTEsNyArMTY4Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYycmVh ZC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMTI1NTQsOCArMTI1NTQsOCBAQCBkd2FyZjJf YWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwCitAQCAtMTI1NzMsOCArMTI1NzMsOCBA QAogIAkgICAgICAgICBvYmplY3QsIGFuZCB0aGVuIHN1YnRyYWN0IG9mZiB0aGUgbnVtYmVyIG9m IGJpdHMgb2YKICAJICAgICAgICAgdGhlIGZpZWxkIGl0c2VsZi4gIFRoZSByZXN1bHQgaXMgdGhl IGJpdCBvZmZzZXQgb2YKICAJICAgICAgICAgdGhlIExTQiBvZiB0aGUgZmllbGQuICAqLwpAQCAt MTgyMiwxMSArMTY5NywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJm MnJlYWQuYwogIAogIAkgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9z aXplLCBjdSk7CiAgCSAgICAgIGlmIChhdHRyKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9ldmFsLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZXZhbC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZXZhbC5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjA2MzUxNjE0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2V2YWwuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNjM2NDgzOSArMDEwMAotQEAgLTMxNyw3ICsz MTcsOCBAQCBldmFsdWF0ZV9zdHJ1Y3RfdHVwbGUgKHN0cnVjdCB2YWx1ZSAqc3RyCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZXZhbC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg2 NTEwMzgzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2V2YWwuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjUzNzUzMDEwOCArMDIwMAorQEAgLTMxNyw3ICszMTcsOCBAQAogICAgd2hp bGUgKC0tbmFyZ3MgPj0gMCkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsID0gTlVM TDsKQEAgLTE4MzYsNyArMTcxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv ZXZhbC5jCiAgICAgICAgYmZkX2J5dGUgKmFkZHI7CiAgCiAgICAgICAgZmllbGRubysrOwotQEAg LTM3OCw3ICszNzksNyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXks CitAQCAtMzc4LDcgKzM3OSw3IEBACiAgCQkgICAgZW51bSBub3NpZGUgbm9zaWRlLCBMT05HRVNU IGxvd19ib3VuZCwgTE9OR0VTVCBoaWdoX2JvdW5kKQogIHsKICAgIExPTkdFU1QgaW5kZXg7CkBA IC0xODQ1LDcgKzE3MjAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwu YwogIAogICAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAg IHsKLUBAIC01MjYsMTEgKzUyNywxMSBAQCBiaW5vcF9wcm9tb3RlIChjb25zdCBzdHJ1Y3QgbGFu Z3VhZ2VfZGVmCitAQCAtODIyLDExICs4MjMsMTEgQEAKICAgICAgLyogRklYTUU6IEFsc28gbWl4 ZWQgaW50ZWdyYWwvYm9vbGVhbnMsIHdpdGggcmVzdWx0IGFuIGludGVnZXIuICAqLwogICAgICB7 CiAgICAgICAgY29uc3Qgc3RydWN0IGJ1aWx0aW5fdHlwZSAqYnVpbHRpbiA9IGJ1aWx0aW5fdHlw ZSAoZ2RiYXJjaCk7CkBAIC0xODYwLDcgKzE3MzUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2V2YWwuYwogICAgICAgIGludCB1bnNpZ25lZF9vcGVyYXRpb247CiAgCiAgICAg ICAgLyogRGV0ZXJtaW5lIHR5cGUgbGVuZ3RoIGFuZCBzaWduZWRuZXNzIGFmdGVyIHByb21vdGlv biBmb3IKLUBAIC03MTIsNyArNzEzLDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZQorQEAgLTEwMDgsNyArMTAwOSw3IEBACiAgICBzdHJ1Y3QgdmFsdWUgKiphcmd2 ZWM7CiAgICBpbnQgY29kZTsKICAgIGludCBpeDsKQEAgLTE4NjksNyArMTc0NCw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgICBzdHJ1Y3QgdHlwZSAqKmFyZ190 eXBlczsKICAgIGludCBzYXZlX3BvczE7CiAgICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiA9IE5V TEw7Ci1AQCAtODkxLDcgKzg5Miw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmUKK0BAIC0xMTg3LDcgKzExODgsNyBAQAogIAkgIHN0cnVjdCB0eXBlICpyYW5nZV90 eXBlID0gVFlQRV9JTkRFWF9UWVBFICh0eXBlKTsKICAJICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90 eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0IHZhbHVlICphcnJheSA9 IGFsbG9jYXRlX3ZhbHVlIChleHBlY3RfdHlwZSk7CkBAIC0xODc4LDIxICsxNzUzLDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgCSAgTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQsIGluZGV4OwogIAogIAkgIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChy YW5nZV90eXBlLCAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotQEAgLTE5MDAsNyArMTkw MSw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKLSAgICAgICB7 Ci0gICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZzEpOwotICAgICAg ICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLS0gICAgICAgIGludCBmdWxsLCB0b3AsIHVzaW5n X2VuYzsKLSsgICAgICAgIGludCBmdWxsLCB1c2luZ19lbmM7Ci0rCUxPTkdFU1QgdG9wOwotIAlz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwotIAotIAlnZXRfdXNlcl9wcmludF9vcHRp b25zICgmb3B0cyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5jCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMDYzNTE2MTQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmMJ MjAxNS0xMS0wMiAyMToyMzoxMy4yMTYzNjQ4MzkgKzAxMDAKLUBAIC0xMDMsNyArMTAzLDcgQEAg Zl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcworLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg3NTEwMzkx ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAwCitAQCAtMTAzLDcgKzEwMyw3IEBACiAgCiAgc3RhdGlj IHZvaWQKICBmX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTE5MDEsMTEgKzE3NjYsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuYwogIAkgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9l bmNvZGluZyA9IGZfZ2V0X2VuY29kaW5nICh0eXBlKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZi1sYW5n LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLWxhbmcu aAkyMDE1LTExLTAyIDIxOjIzOjExLjIwNzM1MTYyMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNjM2NDgzOSArMDEwMAot QEAgLTMwLDcgKzMwLDcgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAqKTsJLyogRGVmaW5l ZAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYg MTQ6MzM6NDIuMDg3NTEwMzkxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Yt bGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAwCitAQCAtMzAsNyArMzAs NyBAQAogIGV4dGVybiB2b2lkIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hh ciAqLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBpbnQsIGNvbnN0IHN0cnVjdCB0eXBl X3ByaW50X29wdGlvbnMgKik7CiAgCkBAIC0xOTE0LDExICsxNzc5LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50 LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJp bnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLXZhbHByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAx NS0xMS0wMiAyMToyMzoxMS4yMDczNTE2MjAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjQ6MzQuMTA4ODk3MDkwICswMTAwCi1A QCAtMzgsNyArMzgsNyBAQCBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lk CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDg3NTEwMzkxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNzUzMDEwOCArMDIwMAorQEAgLTM4 LDcgKzM4LDcgQEAKICBzdGF0aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGlu dCk7CiAgc3RhdGljIHZvaWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0 cnVjdCB0eXBlICopOwogIApAQCAtMTkyNyw3ICsxNzkyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAKICAvKiBBcnJheSB3aGljaCBob2xkcyBvZmZz ZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IGEgcm93J3MgZWxlbWVudHMKICAgICBmb3IgYSBnaXZl biBhcnJheS4gIEFycmF5IGFsc28gaG9sZHMgdGhlIHNpemUgb2YgZWFjaCBzdWJhcnJheS4gICov Ci1AQCAtNzMsOCArNzMsOCBAQCBmNzdfZ2V0X3VwcGVyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBl KQorQEAgLTczLDggKzczLDggQEAKICBzdGF0aWMgdm9pZAogIGY3N19nZXRfZHluYW1pY19sZW5n dGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CkBAIC0xOTM4LDcgKzE4MDMs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAogICAg LyogUmVjdXJzaXZlbHkgZ28gYWxsIHRoZSB3YXkgZG93biBpbnRvIGEgcG9zc2libHkgbXVsdGkt ZGltZW5zaW9uYWwKICAgICAgIEY3NyBhcnJheSBhbmQgZ2V0IHRoZSBib3VuZHMuICBGb3Igc2lt cGxlIGFycmF5cywgdGhpcyBpcyBwcmV0dHkKLUBAIC0xMDYsNyArMTA2LDcgQEAgZjc3X2dldF9k eW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cgorQEAgLTEwNiw3ICsxMDYsNyBAQAogIHN0 YXRpYyB2b2lkCiAgZjc3X3ByaW50X2FycmF5XzEgKGludCBuc3MsIGludCBuZGltZW5zaW9ucywg c3RydWN0IHR5cGUgKnR5cGUsCiAgCQkgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTE5 NDcsNyArMTgxMiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmlu dC5jCiAgCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMsCi1AQCAtMTE1LDcgKzExNSw3IEBAIGY3N19wcmludF9hcnJheV8xIChp bnQgbnNzLCBpbnQgbmRpbWVuc2kKK0BAIC0xMTUsNyArMTE1LDcgQEAKICAgIHN0cnVjdCB0eXBl ICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChjaGVja190eXBlZGVmICh0eXBlKSk7CiAg ICBDT1JFX0FERFIgYWRkciA9IGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQ7CiAgICBMT05HRVNU IGxvd2VyYm91bmQsIHVwcGVyYm91bmQ7CkBAIC0xOTU2LDcgKzE4MjEsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAogICAgZ2V0X2Rpc2NyZXRlX2Jv dW5kcyAocmFuZ2VfdHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5kKTsKICAKLUBAIC0xNzgs NyArMTc4LDcgQEAgZjc3X3ByaW50X2FycmF5XzEgKGludCBuc3MsIGludCBuZGltZW5zaQorQEAg LTE3Miw3ICsxNzIsNyBAQAogIAogIHN0YXRpYyB2b2lkCiAgZjc3X3ByaW50X2FycmF5IChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xOTY1LDcgKzE4MzAs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAkJIENP UkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJIGludCByZWN1cnNl LAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTIxNSw4ICsyMTUsOSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCitAQCAtMjExLDggKzIxMSw5IEBA CiAgICAgZnVuY3Rpb247IHRoZXkgYXJlIGlkZW50aWNhbC4gICovCiAgCiAgdm9pZApAQCAtMTk3 NywxMSArMTg0MiwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJp bnQuYwogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCSAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9maW5kdmFyLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvZmluZHZhci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvZmluZHZhci5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA4MzUxNjI3ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZpbmR2YXIuYwkyMDE1LTExLTAyIDIxOjIzOjEz LjIxNzM2NDg0NiArMDEwMAotQEAgLTgwMSw3ICs4MDEsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDE2LTA3LTE2IDE0OjMz OjQyLjA4ODUxMDM5OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9maW5kdmFy LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKK0BAIC04MDIsNyArODAyLDcg QEAKICBkZWZhdWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBy ZWdudW0sIHN0cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCkKICB7CkBAIC0xOTkwLDIxICsxODU1LDE2 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZmluZHZhci5jCiAgICBzdHJ1Y3Qg dmFsdWUgKnZhbHVlID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwogIAogICAgVkFMVUVfTFZBTCAo dmFsdWUpID0gbHZhbF9yZWdpc3RlcjsKLUBAIC04MzQsMTAgKzgzNCwxMCBAQCB2b2lkCi0gcmVh ZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lKQotIHsKLSAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1l X2FyY2ggKGZyYW1lKTsKLS0gIGludCBvZmZzZXQgPSAwOwotLSAgaW50IHJlZ19vZmZzZXQgPSB2 YWx1ZV9vZmZzZXQgKHZhbHVlKTsKLSsgIExPTkdFU1Qgb2Zmc2V0ID0gMDsKLSsgIExPTkdFU1Qg cmVnX29mZnNldCA9IHZhbHVlX29mZnNldCAodmFsdWUpOworQEAgLTgzOCw3ICs4MzgsNyBAQAor ICAgTE9OR0VTVCBvZmZzZXQgPSAwOworICAgTE9OR0VTVCByZWdfb2Zmc2V0ID0gdmFsdWVfb2Zm c2V0ICh2YWx1ZSk7CiAgICBpbnQgcmVnbnVtID0gVkFMVUVfUkVHTlVNICh2YWx1ZSk7CiAtICBp bnQgbGVuID0gdHlwZV9sZW5ndGhfdW5pdHMgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZh bHVlKSkpOwogKyAgTE9OR0VTVCBsZW4gPSB0eXBlX2xlbmd0aF91bml0cyAoY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAodmFsdWUpKSk7CiAgCiAgICBnZGJfYXNzZXJ0IChWQUxVRV9MVkFMICh2 YWx1ZSkgPT0gbHZhbF9yZWdpc3Rlcik7CiAgCi1AQCAtODUyLDcgKzg1Miw3IEBAIHJlYWRfZnJh bWVfcmVnaXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZQorQEAgLTg1Myw3ICs4NTMsNyBAQAogICAg d2hpbGUgKGxlbiA+IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnJlZ3ZhbCA9IGdl dF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoZnJhbWUsIHJlZ251bSk7CkBAIC0yMDEzLDExICsxODcz LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZmluZHZhci5jCiAgCiAgICAg ICAgLyogSWYgdGhlIHJlZ2lzdGVyIGxlbmd0aCBpcyBsYXJnZXIgdGhhbiB0aGUgbnVtYmVyIG9m IGJ5dGVzCiAgICAgICAgICAgcmVtYWluaW5nIHRvIGNvcHksIHRoZW4gb25seSBjb3B5IHRoZSBh cHByb3ByaWF0ZSBieXRlcy4gICovCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Zy YW1lLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNS0xMS0wMiAy MToyMzoxMS4yMDgzNTE2MjcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZnJh bWUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIxODM2NDg1MiArMDEwMAotQEAgLTEyNzIsNyArMTI3 Miw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGYKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9mcmFtZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg5 NTEwNDA3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41Mzg1MzAxMTYgKzAyMDAKK0BAIC0xMzIwLDcgKzEzMjAsNyBAQAogIAog IGludAogIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l LCBpbnQgcmVnbnVtLApAQCAtMjAyNiw3ICsxODg2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9mcmFtZS5jCiAgCQkJICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFi bGVwKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZy YW1lKTsKLUBAIC0xMzAxLDcgKzEzMDEsNyBAQCBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKHN0 cnVjdCBmcmFtZV9pCitAQCAtMTM0OSw3ICsxMzQ5LDcgQEAKICAgICAgfQogICAgaWYgKGxlbiA+ IG1heHNpemUpCiAgICAgIGVycm9yIChfKCJCYWQgZGVidWcgaW5mb3JtYXRpb24gZGV0ZWN0ZWQ6 ICIKQEAgLTIwMzUsMTEgKzE4OTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9mcmFtZS5jCiAgCiAgICAvKiBDb3B5IHRoZSBkYXRhLiAgKi8KICAgIHdoaWxlIChsZW4gPiAw KQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5oCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9mcmFtZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA5MzUxNjM0ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmgJMjAxNS0xMS0wMiAyMToy MzoxMy4yMTgzNjQ4NTIgKzAxMDAKLUBAIC01ODUsNyArNTg1LDcgQEAgZXh0ZXJuIHZvaWQgcHV0 X2ZyYW1lX3JlZ2lzdGVyIChzdHJ1Y3QgZgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL2ZyYW1lLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTA1MTA0MTUgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzODUzMDEx NiArMDIwMAorQEAgLTU4NSw3ICs1ODUsNyBAQAogICAgIGNvbnRlbnRzIGFyZSBvcHRpbWl6ZWQg b3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElNSVpFRFAsCiAgICAgKlVOQVZBSUxBQkxFUCBh Y2NvcmRpbmdseS4gICovCiAgZXh0ZXJuIGludCBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAgLTIwNDgsMTEgKzE5MDgsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5oCiAgCQkJCSAgICAgZ2Ri X2J5dGUgKm15YWRkciwKICAJCQkJICAgICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFi bGVwKTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYworSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTExLTAyIDIxOjIz OjExLjIxMjM1MTY1MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBl cy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIwMzY0ODY2ICswMTAwCi1AQCAtMjcxOSw3ICsyNzE5 LDcgQEAgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAorLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4w OTI1MTA0MzEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ2RidHlwZXMuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorQEAgLTI3MjIsNyArMjcyMiw3IEBA CiAgICAgbGVhc3QgYXMgbG9uZyBhcyBPQkpGSUxFLiAgKi8KICAKICBzdHJ1Y3QgdHlwZSAqCkBA IC0yMDYxLDcgKzE5MjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5 cGVzLmMKICAJICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAg ewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtMjk1OSw4ICsyOTU5LDggQEAgaXNfcHVibGlj X2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgcworQEAgLTI5NjIsOCArMjk2Miw4IEBACiAg CiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpi YXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAtMjA3Miw3ICsxOTMyLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5jCiAgCQkJICAgQ09SRV9BRERSIGFkZHJl c3MsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAgIGludCBpLCBjb3VudCA9IDA7Ci1AQCAtMjk3 MSw3ICsyOTcxLDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgor QEAgLTI5NzQsNyArMjk3NCw3IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFT U0VTIChkY2xhc3MpICYmIGNvdW50IDwgMjsgKytpKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5 cGUgKml0ZXI7CkBAIC0yMDgxLDcgKzE5NDEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2dkYnR5cGVzLmMKICAKICAgICAgICBpdGVyID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9C QVNFQ0xBU1MgKGRjbGFzcywgaSkpOwogIAotQEAgLTMwMTIsNyArMzAxMiw3IEBAIGlzX3VuaXF1 ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0zMDE1LDcgKzMwMTUsNyBAQAog IGludAogIGlzX3VuaXF1ZV9hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB2YWx1 ZSAqdmFsKQogIHsKQEAgLTIwOTAsNyArMTk1MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3Jr ZXIgKGJhc2UsIHZhbHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCiAgCQkJCSAgICB2YWx1ZV9jb250 ZW50c19mb3JfcHJpbnRpbmcgKHZhbCksCi1AQCAtNDIwMCw3ICs0MjAwLDcgQEAgcmVjdXJzaXZl X2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNDIwMyw3ICs0MjAzLDcgQEAKICAg ICAgICBicmVhazsKICAgICAgfQogICAgcHV0c19maWx0ZXJlZCAoIlxuIik7CkBAIC0yMDk5LDQw ICsxOTU5LDIwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwog ICAgaWYgKFRZUEVfT0JKRklMRV9PV05FRCAodHlwZSkpCiAgICAgIHsKICAgICAgICBwcmludGZp X2ZpbHRlcmVkIChzcGFjZXMsICJvYmpmaWxlICIpOwotQEAgLTQzMjgsOCArNDMyOCw4IEBAIHJl Y3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAotIAkJCSAgaWR4LCBwbG9uZ2Vz dCAoVFlQRV9GSUVMRF9FTlVNVkFMICh0eXBlLCBpZHgpKSk7Ci0gICAgICAgZWxzZQotIAlwcmlu dGZpX2ZpbHRlcmVkIChzcGFjZXMgKyAyLAotLQkJCSAgIlslZF0gYml0cG9zICVkIGJpdHNpemUg JWQgdHlwZSAiLAotLQkJCSAgaWR4LCBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaWR4KSwKLSsJ CQkgICJbJWRdIGJpdHBvcyAlcyBiaXRzaXplICVkIHR5cGUgIiwKLSsJCQkgIGlkeCwgcGxvbmdl c3QgKFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBpZHgpKSwKLSAJCQkgIFRZUEVfRklFTERfQklU U0laRSAodHlwZSwgaWR4KSk7Ci0gICAgICAgZ2RiX3ByaW50X2hvc3RfYWRkcmVzcyAoVFlQRV9G SUVMRF9UWVBFICh0eXBlLCBpZHgpLCBnZGJfc3Rkb3V0KTsKLSAgICAgICBwcmludGZfZmlsdGVy ZWQgKCIgbmFtZSAnJXMnICgiLAotQEAgLTQ2NzEsNyArNDY3MSw3IEBAIGNvcHlfdHlwZSAoY29u c3Qgc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNDY2Myw3ICs0NjYzLDcgQEAKICAKICBzdHJ1Y3Qg dHlwZSAqCiAgYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKLS0JICAgZW51bSB0 eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwgY2hhciAqbmFtZSkKLSsJICAgZW51bSB0eXBlX2Nv ZGUgY29kZSwgTE9OR0VTVCBsZW5ndGgsIGNoYXIgKm5hbWUpCistCSAgIGVudW0gdHlwZV9jb2Rl IGNvZGUsIGludCBsZW5ndGgsIGNvbnN0IGNoYXIgKm5hbWUpCisrCSAgIGVudW0gdHlwZV9jb2Rl IGNvZGUsIExPTkdFU1QgbGVuZ3RoLCBjb25zdCBjaGFyICpuYW1lKQogIHsKICAgIHN0cnVjdCB0 eXBlICp0eXBlOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5o CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjEzMzUxNjYwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dk YnR5cGVzLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjAzNjQ4NjYgKzAxMDAKLUBAIC01MTIsNyAr NTEyLDcgQEAgdW5pb24gZmllbGRfbG9jYXRpb24KLSAgICAgIGdkYmFyY2hfYml0c19iaWdfZW5k aWFuPTAgdGFyZ2V0cywgaXQgaXMgdGhlIGJpdCBvZmZzZXQgdG8KLSAgICAgIHRoZSBMU0IuICAq LwotIAotLSAgaW50IGJpdHBvczsKLSsgIExPTkdFU1QgYml0cG9zOwotIAotICAgLyogKiBFbnVt IHZhbHVlLiAgKi8KLSAgIExPTkdFU1QgZW51bXZhbDsKLUBAIC04MjIsNyArODIyLDcgQEAgc3Ry dWN0IHR5cGUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDkzNTEwNDM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2dkYnR5cGVzLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BA IC04MDYsNyArODA2LDcgQEAKICAgICAgIHR5cGVfbGVuZ3RoX3VuaXRzIGZ1bmN0aW9uIHNob3Vs ZCBiZSB1c2VkIGluIG9yZGVyIHRvIGdldCB0aGUgbGVuZ3RoCiAgICAgICBleHByZXNzZWQgaW4g dGFyZ2V0IGFkZHJlc3NhYmxlIG1lbW9yeSB1bml0cy4gICovCiAgCkBAIC0yMTQxLDcgKzE5ODEs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgKICAKICAgIC8q ICogQ29yZSB0eXBlLCBzaGFyZWQgYnkgYSBncm91cCBvZiBxdWFsaWZpZWQgdHlwZXMuICAqLwog IAotQEAgLTE3MTcsMTEgKzE3MTcsMTIgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCB0eXBlX2xlbmd0 aF91bml0cyAocworQEAgLTE2NzcsMTEgKzE2NzcsMTEgQEAKICAKICAvKiAqIEhlbHBlciBmdW5j dGlvbiB0byBjb25zdHJ1Y3Qgb2JqZmlsZS1vd25lZCB0eXBlcy4gICovCiAgCkBAIC0yMTUwLDE3 ICsxOTkwLDE2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuaAog IAkJCSAgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqKTsKICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIHRv IGNvbnN0cnVjdCBhcmNoaXRlY3R1cmUtb3duZWQgdHlwZXMuICAqLwotLWV4dGVybiBzdHJ1Y3Qg dHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgaW50LCBj aGFyICopOworLWV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAq LCBlbnVtIHR5cGVfY29kZSwgaW50LAogK2V4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgTE9OR0VTVCwKLSsJCQkgICAgICAgY2hh ciAqKTsKLSBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfaW50ZWdlcl90eXBlIChzdHJ1Y3QgZ2Ri YXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKLSBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfY2hh cmFjdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwotIGV4dGVy biBzdHJ1Y3QgdHlwZSAqYXJjaF9ib29sZWFuX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwg aW50LCBjaGFyICopOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjItYWJp LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nbnUtdjIt YWJpLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTMzNTE2NjAgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIxMzY0ODcy ICswMTAwCi1AQCAtODIsNyArODIsNyBAQCBnbnV2Ml9pc19vcGVyYXRvcl9uYW1lIChjb25zdCBj aGFyICpuYW1lCisgCQkJICAgICAgIGNvbnN0IGNoYXIgKik7CisgZXh0ZXJuIHN0cnVjdCB0eXBl ICphcmNoX2ludGVnZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsCisgCQkJCSAg ICAgICBjb25zdCBjaGFyICopOworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUt djItYWJpLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9n bnUtdjItYWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTM1MTA0MzkgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYyLWFiaS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5 NTMwMTI0ICswMjAwCitAQCAtODIsNyArODIsNyBAQAogICAgIFRZUEUgaXMgdGhlIHR5cGUgaW4g d2hpY2ggRiBpcyBsb2NhdGVkLiAgKi8KICBzdGF0aWMgc3RydWN0IHZhbHVlICoKICBnbnV2Ml92 aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3RydWN0IGZuX2ZpZWxkICog ZiwgaW50IGosCkBAIC0yMTY5LDQwICsyMDA4LDI2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZ251LXYyLWFiaS5jCiAgewogICAgc3RydWN0IHZhbHVlICphcmcxID0gKmFyZzFw OwogICAgc3RydWN0IHR5cGUgKnR5cGUxID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJn MSkpOwotQEAgLTE4Myw3ICsxODMsOCBAQCBnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3Qg dmFsdWUgKiphCi0gCi0gCi0gc3RhdGljIHN0cnVjdCB0eXBlICoKLS1nbnV2Ml92YWx1ZV9ydHRp X3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLCBpbnQgKnRvcCwgaW50ICp1c2luZ19l bmMpCi0rZ251djJfdmFsdWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwg TE9OR0VTVCAqdG9wLAotKwkJICAgICAgIGludCAqdXNpbmdfZW5jKQotIHsKLSAgIHN0cnVjdCB0 eXBlICprbm93bl90eXBlOwotICAgc3RydWN0IHR5cGUgKnJ0dGlfdHlwZTsKLUBAIC0zMzgsOSAr MzM5LDkgQEAgdmJfbWF0Y2ggKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsCitAQCAtMzM4 LDcgKzMzOCw3IEBACiAgICAgdGFyZ2V0KS4gIFRoZSByZXN1bHQgaXMgdGhlIG9mZnNldCBvZiB0 aGUgYmFzZWNsYXNzIHZhbHVlIHJlbGF0aXZlCiAgICAgdG8gKHRoZSBhZGRyZXNzIG9mKShBUkcp ICsgT0ZGU0VULiAgKi8KICAKIC1zdGF0aWMgaW50CiArc3RhdGljIExPTkdFU1QKICBnbnV2Ml9i YXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAotLQkJCWNvbnN0 IGJmZF9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJCWNvbnN0IGJmZF9i eXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJCQljb25zdCBiZmRfYnl0 ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCiAgCQkJQ09SRV9BRERSIGFkZHJl c3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIHN0cnVjdCB0eXBlICpiYXNldHlw ZSA9IFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpbmRleCk7Ci1AQCAtMzU4LDggKzM1OSw4IEBAIGdu dXYyX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC0zNTgsOCArMzU4LDcg QEAKICAJICBpZiAodmJfbWF0Y2ggKHR5cGUsIGksIGJhc2V0eXBlKSkKICAJICAgIHsKICAJICAg ICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7Ci0tCSAgICAgIGludCBmaWVsZF9vZmZzZXQ7Cist CSAgICAgIExPTkdFU1QgZmllbGRfb2Zmc2V0OwogLQkgICAgICBpbnQgZmllbGRfbGVuZ3RoOwot KwkgICAgICBMT05HRVNUIGZpZWxkX29mZnNldDsKLSsJICAgICAgTE9OR0VTVCBmaWVsZF9sZW5n dGg7CisrCSAgICAgIExPTkdFU1QgZmllbGRfb2Zmc2V0LCBmaWVsZF9sZW5ndGg7CiAgCSAgICAg IENPUkVfQUREUiBhZGRyOwogIAogIAkgICAgICBmaWVsZF90eXBlID0gY2hlY2tfdHlwZWRlZiAo VFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSk7Ci1AQCAtMzgzLDcgKzM4NCw3IEBAIGdudXYyX2Jh c2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC0zODMsNyArMzgyLDcgQEAKICAJ ICAvKiBEb24ndCBnbyB0aHJvdWdoIGJhc2VjbGFzc19vZmZzZXQsIGFzIHRoYXQgd3JhcHMKICAJ ICAgICBleGNlcHRpb25zLCB0aHVzLCBpbm5lciBleGNlcHRpb25zIHdvdWxkIGJlIHdyYXBwZWQg bW9yZQogIAkgICAgIHRoYW4gb25jZS4gICovCkBAIC0yMjExLDExICsyMDM2LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9iYXNl Y2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAgZW1iZWRkZWRfb2Zmc2V0 LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUt djMtYWJpLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYzLWFiaS5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ251LXYzLWFiaS5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE0MzUxNjY3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2dudS12My1hYmkuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEw MAotQEAgLTEwOCw3ICsxMDgsNyBAQCBidWlsZF9nZGJfdnRhYmxlX3R5cGUgKHN0cnVjdCBnZGJh cmNoICphCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2dudS12My1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAor QEAgLTEwOCw3ICsxMDgsNyBAQAogIHsKICAgIHN0cnVjdCB0eXBlICp0OwogICAgc3RydWN0IGZp ZWxkICpmaWVsZF9saXN0LCAqZmllbGQ7CkBAIC0yMjI0LDcgKzIwNDksNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12My1hYmkuYwogIAogICAgc3RydWN0IHR5cGUgKnZv aWRfcHRyX3R5cGUKICAgICAgPSBidWlsdGluX3R5cGUgKGFyY2gpLT5idWlsdGluX2RhdGFfcHRy OwotQEAgLTE4NCw3ICsxODQsNyBAQCB2dGFibGVfcHRyZGlmZl90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiCitAQCAtMTg0LDcgKzE4NCw3IEBACiAgLyogUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0 aGUgc3RhcnQgb2YgdGhlIGltYWdpbmFyeSBgc3RydWN0CiAgICAgZ2RiX2dudV92M19hYmlfdnRh YmxlJyBvYmplY3QgdG8gdGhlIHZ0YWJsZSdzICJhZGRyZXNzIHBvaW50IgogICAgIChpLmUuLCB3 aGVyZSBvYmplY3RzJyB2aXJ0dWFsIHRhYmxlIHBvaW50ZXJzIHBvaW50KS4gICovCkBAIC0yMjMz LDE2ICsyMDU4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJp LmMKICB2dGFibGVfYWRkcmVzc19wb2ludF9vZmZzZXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo KQogIHsKICAgIHN0cnVjdCB0eXBlICp2dGFibGVfdHlwZQotQEAgLTI4Niw3ICsyODYsNyBAQCBn bnV2M19nZXRfdnRhYmxlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCi0gCi0gc3RhdGljIHN0cnVj dCB0eXBlICoKLSBnbnV2M19ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tICAgICAg ICAgICAgICAgICBpbnQgKmZ1bGxfcCwgaW50ICp0b3BfcCwgaW50ICp1c2luZ19lbmNfcCkKLSsg ICAgICAgICAgICAgICAgIGludCAqZnVsbF9wLCBMT05HRVNUICp0b3BfcCwgaW50ICp1c2luZ19l bmNfcCkKLSB7Ci0gICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKLSAgIHN0cnVjdCB0eXBlICp2 YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSk7Ci1AQCAtNDEx LDcgKzQxMSw3IEBAIGdudXYzX2dldF92aXJ0dWFsX2ZuIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BA IC00MTEsNyArNDExLDcgQEAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKICBnbnV2M192aXJ0dWFs X2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKip2YWx1ZV9wLAogICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBmbl9maWVsZCAqZiwgaW50IGosCkBAIC0yMjUxLDE4ICsyMDY3LDE2IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgewogICAgc3RydWN0 IHR5cGUgKnZhbHVlc190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoKnZhbHVlX3Ap KTsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOwotQEAgLTQ0MSwxNiArNDQxLDE2IEBAIGdu dXYzX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKnYKK0BAIC00NDEsNyArNDQxLDcg QEAKICAKICAgICAtMSBpcyByZXR1cm5lZCBvbiBlcnJvci4gICovCiAgCiAtc3RhdGljIGludAog K3N0YXRpYyBMT05HRVNUCiAgZ251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5 cGUsIGludCBpbmRleCwKLS0JCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVk X29mZnNldCwKLSsJCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9v ZmZzZXQsCisgCQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zm c2V0LAogIAkJCUNPUkVfQUREUiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKLSB7 Ci0gICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKK0BAIC00NTAsNyArNDUwLDcgQEAKICAgIHN0 cnVjdCB0eXBlICpwdHJfdHlwZTsKICAgIHN0cnVjdCB2YWx1ZSAqdnRhYmxlOwogICAgc3RydWN0 IHZhbHVlICp2YmFzZV9hcnJheTsKQEAgLTIyNzEsNyArMjA4NSw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgCiAgICAvKiBEZXRlcm1pbmUgYXJjaGl0 ZWN0dXJlLiAgKi8KICAgIGdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKLUBAIC00NzQs NyArNDc0LDcgQEAgZ251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cAorQEAg LTQ3NCw3ICs0NzQsNyBAQAogICAgY3VyX2Jhc2Vfb2Zmc2V0ID0gY3VyX2Jhc2Vfb2Zmc2V0ICsg dnRhYmxlX2FkZHJlc3NfcG9pbnRfb2Zmc2V0IChnZGJhcmNoKTsKICAgIGlmICgoLSBjdXJfYmFz ZV9vZmZzZXQpICUgVFlQRV9MRU5HVEggKHB0cl90eXBlKSAhPSAwKQogICAgICBlcnJvciAoXygi TWlzYWxpZ25lZCB2YmFzZSBvZmZzZXQuIikpOwpAQCAtMjI4MCw3ICsyMDk0LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKICAKICAgIHZ0YWJsZSA9IGdu dXYzX2dldF92dGFibGUgKGdkYmFyY2gsIHR5cGUsIGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQp OwogICAgZ2RiX2Fzc2VydCAodnRhYmxlICE9IE5VTEwpOwotQEAgLTUxOCw3ICs1MTgsNyBAQCBn bnV2M19maW5kX21ldGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCitAQCAtNTE4LDcgKzUxOCw3 IEBACiAgICAgICB3ZSdyZSBvdXQgb2YgbHVjay4gICovCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQ RV9OX0JBU0VDTEFTU0VTIChkb21haW4pOyBpKyspCiAgICAgIHsKQEAgLTIyODksMTEgKzIxMDMs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKICAgICAg ICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGU7CiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJU VUFMIChkb21haW4sIGkpKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nby1sYW5n LmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28tbGFuZy5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ28tbGFuZy5oCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjE0MzUxNjY3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dv LWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEwMAotQEAgLTg1LDcgKzg1 LDcgQEAgZXh0ZXJuIHZvaWQgZ29fcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKgorLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5 NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nby1sYW5nLmgJMjAx Ni0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC04NSw3ICs4NSw3IEBACiAgLyog RGVmaW5lZCBpbiBnby12YWxwcmludC5jLiAgKi8KICAKICBleHRlcm4gdm9pZCBnb192YWxfcHJp bnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTIzMDIs MjAgKzIxMTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nby1sYW5nLmgK ICAJCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qg c3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dvLXZhbHByaW50 LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28tdmFscHJpbnQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAx NS0xMS0wMiAyMToyMzoxMS4yMTQzNTE2NjcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZ28tdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMjM2NDg3OSArMDEwMAot QEAgLTM3LDcgKzM3LDcgQEAKLSAKLSBzdGF0aWMgdm9pZAotIHByaW50X2dvX3N0cmluZyAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJIGludCBlbWJlZGRl ZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0 LCBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVj dXJzZSwKLSAJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUBAIC04Niw5ICs4Niw5IEBAIHByaW50X2dvX3N0 cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9nby12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dvLXZhbHByaW50LmMJMjAxNi0wNy0xNiAx NDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC04Niw5ICs4Niw5IEBACiAgLyogSW1wbGVtZW50 cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRpbmUgZm9yIGxhbmd1YWdlIEdvLiAgKi8KICAKICB2b2lk CkBAIC0yMzI4LDExICsyMTMzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Z28tdmFscHJpbnQuYwogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucykKICB7CiAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7Ci1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9qdi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9qdi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTUzNTE2NzMgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjIyMzY0ODc5ICswMTAwCi1AQCAtNDQwLDcgKzQ0MCw3IEBAIGphdmFfbGlua19jbGFzc190eXBl IChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9q di1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTQ1MTA0NDcgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMy ICswMjAwCitAQCAtNDQwLDcgKzQ0MCw3IEBACiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNT RVMgKHR5cGUpOyBpIDwgbmZpZWxkczsgaSsrKQogICAgICB7CiAgICAgICAgaW50IGFjY2ZsYWdz OwpAQCAtMjM0MSw3ICsyMTQ2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9q di1sYW5nLmMKICAKICAgICAgICBpZiAoZmllbGRzID09IE5VTEwpCiAgCXsKLUBAIC04OTAsNyAr ODkwLDcgQEAgamF2YV9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZQorQEAgLTg5 MCw3ICs4OTAsNyBAQAogIHN0YXRpYyB2b2lkCiAgamF2YV9wcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCiAgCSAgICAgICBjb25zdCBnZGJfYnl0ZSAq c3RyaW5nLApAQCAtMjM1MCwxMSArMjE1NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2p2LWxhbmcuYwogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0 X2VuY29kaW5nICh0eXBlKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFu Zy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2p2LWxhbmcuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTExLTAy IDIxOjIzOjExLjIxNTM1MTY3MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9q di1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjIzNjQ4NzkgKzAxMDAKLUBAIC00Myw4ICs0 Myw4IEBAIHN0cnVjdCBidWlsdGluX2phdmFfdHlwZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9qdi1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0 NC41NDA1MzAxMzIgKzAyMDAKK0BAIC00Myw4ICs0Myw4IEBACiAgCiAgZXh0ZXJuIGNvbnN0IHN0 cnVjdCBidWlsdGluX2phdmFfdHlwZSAqYnVpbHRpbl9qYXZhX3R5cGUgKHN0cnVjdCBnZGJhcmNo ICopOwogIApAQCAtMjM2NSwyMCArMjE3MCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2p2LWxhbmcuaAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2p2LXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvanYtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTUzNTE2NzMgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTExLTAy IDIxOjIzOjEzLjIyMjM2NDg3OSArMDEwMAotQEAgLTI2Niw3ICsyNjYsNyBAQCBqYXZhX3ZhbHVl X3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RyCi0gCi0gc3RhdGljIHZvaWQKLSBqYXZhX3By aW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLAotLQkJCSBpbnQgb2Zmc2V0LAotKwkJCSBMT05HRVNUIG9mZnNldCwKLSAJCQkgQ09SRV9B RERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkJIGludCByZWN1cnNlLAot IAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC00NTQsNyArNDU0LDcgQEAgamF2YV9w cmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eQorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTU1MTA0NTUg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFscHJpbnQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTQ1NCw3ICs0NTQsNyBAQAogIAogIHZv aWQKICBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLApAQCAtMjM4NywxMSArMjE4MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2p2LXZhbHByaW50LmMKICAJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAogIAkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv bGFuZ3VhZ2UuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9sYW5ndWFnZS5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbGFuZ3VhZ2UuYwky MDE1LTExLTAyIDIxOjIzOjExLjIxNjM1MTY4MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9sYW5ndWFnZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIzMzY0ODg1ICswMTAwCi1A QCAtNzM5LDcgKzczOSw3IEBAIHVua19sYW5nX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBl ICoKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDk1NTEwNDU1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2xhbmd1YWdlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC03NjYs NyArNzY2LDcgQEAKICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3ByaW50c3RyIChzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTI0MDAsNyArMjE5Niw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuYwogIAkJICAgY29uc3Qg Y2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCSAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC03NTgsNyArNzU4LDcgQEAgdW5r X2xhbmdfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNzg1LDcgKzc4NSw3IEBA CiAgCiAgc3RhdGljIHZvaWQKICB1bmtfbGFuZ192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI0MDksMTEgKzIyMDUsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5jCiAgCQkgICAgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWws CiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTYzNTE2ODAg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuaAkyMDE1LTExLTAy IDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAgLTE4OSw3ICsxODksNyBAQCBzdHJ1Y3QgbGFu Z3VhZ2VfZGVmbgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJ MjAxNi0wNy0xNiAxNDozMzo0Mi4wOTU1MTA0NTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvbGFuZ3VhZ2UuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAor QEAgLTE5Niw3ICsxOTYsNyBAQAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0pOwogIAog ICAgICB2b2lkICgqbGFfcHJpbnRzdHIpIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwgc3RydWN0 IHR5cGUgKmVsdHR5cGUsCkBAIC0yNDIyLDcgKzIyMTgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgKICAJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBm b3JjZV9lbGxpcHNlcywKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7 CiAgCi1AQCAtMjMxLDcgKzIzMSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCitAQCAtMjM4LDcg KzIzOCw3IEBACiAgCiAgICAgIHZvaWQgKCpsYV92YWxfcHJpbnQpIChzdHJ1Y3QgdHlwZSAqdHlw ZSwKICAJCQkgIGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKQEAgLTI0MzEsMTEgKzIyMjcsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5oCiAgCQkJICBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvbTItbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE3MzUx Njg2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAgLTEwNCwxMCArMTA0LDEwIEBAIG0yX3By aW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLAorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL20yLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmMJMjAxNi0wNy0xNiAxNDoz Mzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC0xMDQsMTAgKzEwNCwxMCBAQAogIAogIHN0YXRpYyB2 b2lkCiAgbTJfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAtMjQ0OCw3ICsyMjQ0LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMKICAgIHVuc2lnbmVkIGludCB0aGlu Z3NfcHJpbnRlZCA9IDA7CiAgICBpbnQgaW5fcXVvdGVzID0gMDsKICAgIGludCBuZWVkX2NvbW1h ID0gMDsKLUBAIC0xMjIsOSArMTIyLDkgQEAgbTJfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIHN0cgorQEAgLTEyMiw5ICsxMjIsOSBAQAogICAgICB7CiAgICAgICAgLyogUG9zaXRp b24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCiAgICAgICAgICAgdG8gc2VlIHdo ZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLwpAQCAtMjQ2MCw3ICsyMjU2LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMKICAKICAgICAgICBRVUlUOwogIAotQEAg LTE1MCw3ICsxNTAsNyBAQCBtMl9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3Ry CitAQCAtMTUwLDcgKzE1MCw3IEBACiAgCSAgICAgIGluX3F1b3RlcyA9IDA7CiAgCSAgICB9CiAg CSAgbTJfcHJpbnRjaGFyIChzdHJpbmdbaV0sIHR5cGUsIHN0cmVhbSk7CkBAIC0yNDY5LDExICsy MjY1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5jCiAgCSAg aSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3Vu dF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL20yLWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1s YW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tMi1s YW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTczNTE2ODYgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIzMzY0ODg1ICsw MTAwCi1AQCAtMzQsNyArMzQsNyBAQCBleHRlcm4gdm9pZCBtMl9wcmludF90eXBlZGVmIChzdHJ1 Y3QgdHlwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTItbGFuZy5oCTIwMTYt MDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL20yLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTM0 LDcgKzM0LDcgQEAKICBleHRlcm4gaW50IG0yX2lzX2xvbmdfc2V0IChzdHJ1Y3QgdHlwZSAqdHlw ZSk7CiAgZXh0ZXJuIGludCBtMl9pc191bmJvdW5kZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBl KTsKICAKQEAgLTI0ODIsMTEgKzIyNzgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9tMi1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Kik7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXR5cGVwcmludC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLXR5cGVwcmludC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0xMS0w MiAyMToyMzoxMS4yMTczNTE2ODYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv bTItdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjQzNjQ4OTIgKzAxMDAKLUBAIC0y MzQsOSArMjM0LDEyIEBAIHN0YXRpYyB2b2lkIG0yX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tMi10eXBlcHJpbnQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9tMi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCArMDIwMAorQEAg LTIzNCw5ICsyMzQsMTIgQEAKICAJICBtMl9wcmludF9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQRSAo dHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CiAgICAgICAgZWxzZQpAQCAtMjUwMiwx MSArMjI5OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXR5cGVwcmlu dC5jCiAgICAgIH0KICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIl0gT0YgIik7CiAgICBt Ml9wcmludF90eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgIiIsIHN0cmVhbSwgc2hvdywg bGV2ZWwsIGZsYWdzKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJp bnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxwcmludC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTItdmFscHJpbnQuYwky MDE1LTExLTAyIDIxOjIzOjExLjIxNzM1MTY4NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9tMi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI0MzY0ODkyICswMTAw Ci1AQCAtMzUsNyArMzUsNyBAQCBzdGF0aWMgaW50IHByaW50X3VucGFja2VkX3BvaW50ZXIgKHN0 cnVjCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9tMi12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzU6MTkuODMwMjk3MDEzICswMjAwCitA QCAtMzUsNyArMzUsNyBAQAogIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICBzdGF0 aWMgdm9pZAogIG0yX3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTE1LDcgKzIzMTEsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC02Nyw3ICs2Nyw3 IEBAIGdldF9sb25nX3NldF9ib3VuZHMgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTY3LDcgKzY3 LDcgQEAKICAKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50X2xvbmdfc2V0IChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTI0LDcgKzIzMjAsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAJCSAgIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0pCiAgewogICAgaW50IGVtcHR5X3NldCAgICAgICAgPSAxOwotQEAgLTE1 OCw3ICsxNTgsNyBAQCBtMl9wcmludF9sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitA QCAtMTU4LDcgKzE1OCw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBtMl9wcmludF91bmJvdW5kZWRf YXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI1 MzMsNyArMjMyOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJp bnQuYwogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtMjYyLDcg KzI2Miw3IEBAIHByaW50X3ZhcmlhYmxlX2F0X2FkZHJlc3MgKHN0cnVjdCB0eXBlICoKK0BAIC0y NjAsNyArMjYwLDcgQEAKICAKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50X2FycmF5X2NvbnRlbnRz IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTQyLDI3 ICsyMzM4LDIzIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJpbnQu YwogIAkJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgY29uc3Qg c3RydWN0IHZhbHVlICp2YWwsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zLAotQEAgLTMwOCwxNCArMzA4LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2Vu ZXJpY192YWxfcHJpbnRfZGUKK0BAIC0zMDgsMTMgKzMwOCwxMyBAQAogICAgIGZ1bmN0aW9uOyB0 aGV5IGFyZSBpZGVudGljYWwuICAqLwogIAogIHZvaWQKIC1tMl92YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwK LS0JICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAotK20yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLAotKwkgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCi0rCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorK20y X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBl X2FyY2ggKHR5cGUpOwotLSAgdW5zaWduZWQgaW50IGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFj dGVycyBwcmludGVkLiAgKi8KIC0gIHVuc2lnbmVkIGxlbjsKLSsgIFVMT05HRVNUIGkgPSAwOwkv KiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLiAgKi8KICsgIFVMT05HRVNUIGxlbjsKICAg IHN0cnVjdCB0eXBlICplbHR0eXBlOwogICAgQ09SRV9BRERSIGFkZHI7CiAgCi1AQCAtMzQwLDcg KzM0MSw3IEBAIG0yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGcKK0BAIC0z MzksNyArMzM5LDcgQEAKICAJICAgICAgICAgZWxlbWVudHMgdXAgdG8gaXQuICAqLwogIAkgICAg ICBpZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQogIAkJewpAQCAtMjU3MSwxMCArMjM2 MywxOSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAK ICAJCSAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogIAkJICBmb3IgKHRlbXBfbGVuID0g MDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuYworQEAgLTQxNSw3 ICs0MTUsNyBAQAorIAl7CisgCSAgc3RydWN0IHR5cGUgKnJhbmdlID0gZWx0dHlwZTsKKyAJICBM T05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKKy0JICBpbnQgaTsKKysJICBMT05HRVNUIGk7 CisgCSAgaW50IG5lZWRfY29tbWEgPSAwOworIAorIAkgIGZwdXRzX2ZpbHRlcmVkICgieyIsIHN0 cmVhbSk7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lbXJhbmdlLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjE4MzUxNjkzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL21lbXJhbmdlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjQzNjQ4OTIgKzAxMDAKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDk2NTEwNDYzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lbXJhbmdl LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKIEBAIC0yMSw4ICsyMSw4IEBA CiAgI2luY2x1ZGUgIm1lbXJhbmdlLmgiCiAgCkBAIC0yNTg2LDExICsyMzg3LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuYwogIHsKICAgIFVMT05HRVNUIGgs IGw7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdlLmgKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVtcmFuZ2UuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNS0xMS0wMiAyMToyMzox MS4yMTgzNTE2OTMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2Uu aAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNDM2NDg5MiArMDEwMAotQEAgLTMwLDcgKzMwLDcgQEAg c3RydWN0IG1lbV9yYW5nZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21lbXJh bmdlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTc1MTA0NzEgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvbWVtcmFuZ2UuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCAr MDIwMAorQEAgLTMwLDcgKzMwLDcgQEAKICAgIENPUkVfQUREUiBzdGFydDsKICAKICAgIC8qIExl bmd0aCBvZiB0aGUgcmFuZ2UuICAqLwpAQCAtMjU5OSw3ICsyNDAwLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9tZW1yYW5nZS5oCiAgfTsKICAKICB0eXBlZGVmIHN0cnVjdCBt ZW1fcmFuZ2UgbWVtX3JhbmdlX3M7Ci1AQCAtNDAsOCArNDAsOCBAQCBERUZfVkVDX08obWVtX3Jh bmdlX3MpOworQEAgLTQwLDggKzQwLDggQEAKICAvKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJhbmdl cyBkZWZpbmVkIGJ5IFtzdGFydDEsIHN0YXJ0MStsZW4xKSBhbmQKICAgICBbc3RhcnQyLCBzdGFy dDIrbGVuMikgb3ZlcmxhcC4gICovCiAgCkBAIC0yNjEwLDExICsyNDExLDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuaAogIAogIC8qIFJldHVybnMgdHJ1ZSBp ZiBBRERSIGlzIGluIFJBTkdFLiAgKi8KICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvbWlwcy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBz LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxODM1MTY5MyArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjI1MzY0ODk5ICswMTAwCi1AQCAtNTg3LDcgKzU4Nyw3IEBAIG1pcHNfbGludXhf c3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVjdAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTc1MTA0NzEgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCArMDIwMAorQEAgLTU4Nyw3ICs1ODcsNyBAQAogIAogIHN0 YXRpYyBpbnQKICBtaXBzX2xpbnV4X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0 IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0yNjIzLDExICsyNDI0LDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbWlwcy1saW51eC1uYXQuYwogIHsKICAgIHN0cnVjdCBwdF93YXRj aF9yZWdzIGR1bW15X3JlZ3M7CiAgICBpbnQgaTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvb3BlbmNsLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9vcGVu Y2wtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv b3BlbmNsLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxOTM1MTY5OSArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjI1MzY0ODk5ICswMTAwCi1AQCAtNzgsMTEgKzc4LDExIEBAIGJ1aWx0aW5fb3BlbmNsX3R5cGUg KHN0cnVjdCBnZGJhcmNoICpnZGIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9v cGVuY2wtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk3NTEwNDcxICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41 NDE1MzAxNDAgKzAyMDAKK0BAIC03OCwxMSArNzgsMTEgQEAKICAKICBzdGF0aWMgc3RydWN0IHR5 cGUgKgogIGxvb2t1cF9vcGVuY2xfdmVjdG9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCBlbnVtIHR5cGVfY29kZSBjb2RlLApAQCAtMjY0MSwzNyArMjQ0MiwyOSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL29wZW5jbC1sYW5nLmMKICAgIHN0cnVjdCB0eXBlICp0eXBl ID0gTlVMTDsKICAgIHN0cnVjdCB0eXBlICoqdHlwZXMgPSBidWlsdGluX29wZW5jbF90eXBlIChn ZGJhcmNoKTsKICAKLUBAIC0xNzIsOSArMTcyLDkgQEAgbHZhbF9mdW5jX3JlYWQgKHN0cnVjdCB2 YWx1ZSAqdikKLSAgIHN0cnVjdCBsdmFsX2Nsb3N1cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3Vy ZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsKLSAgIHN0cnVjdCB0eXBlICp0eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodikpOworQEAgLTE3NCw3ICsxNzQsNyBAQAogICAg c3RydWN0IHR5cGUgKmVsdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKGMtPnZhbCkpKTsKLS0gIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOwot LSAgaW50IGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOworICAgTE9OR0VTVCBvZmZzZXQg PSB2YWx1ZV9vZmZzZXQgKHYpOworICAgTE9OR0VTVCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0 eXBlKTsKIC0gIGludCBuLCBpLCBqID0gMDsKLSsgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zm c2V0ICh2KTsKLSsgIExPTkdFU1QgZWxzaXplID0gVFlQRV9MRU5HVEggKGVsdHlwZSk7CiArICBM T05HRVNUIG4sIGksIGogPSAwOwogICAgTE9OR0VTVCBsb3diID0gMDsKICAgIExPTkdFU1QgaGln aGIgPSAwOwogIAotQEAgLTIwMSw5ICsyMDEsOSBAQCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2 YWx1ZSAqdiwgc3RydWN0Ci0gICBzdHJ1Y3QgbHZhbF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFs X2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7Ci0gICBzdHJ1Y3QgdHlwZSAq dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHYpKTsKK0BAIC0yMDMsNyArMjAzLDcg QEAKICAgIHN0cnVjdCB0eXBlICplbHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSk7Ci0tICBpbnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0 ICh2KTsKLS0gIGludCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKKyAgIExPTkdFU1Qg b2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKKyAgIExPTkdFU1QgZWxzaXplID0gVFlQRV9MRU5H VEggKGVsdHlwZSk7CiAtICBpbnQgbiwgaSwgaiA9IDA7Ci0rICBMT05HRVNUIG9mZnNldCA9IHZh bHVlX29mZnNldCAodik7Ci0rICBMT05HRVNUIGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUp OwogKyAgTE9OR0VTVCBuLCBpLCBqID0gMDsKICAgIExPTkdFU1QgbG93YiA9IDA7CiAgICBMT05H RVNUIGhpZ2hiID0gMDsKICAKLUBAIC0yNDMsMTcgKzI0MywxNyBAQCBsdmFsX2Z1bmNfd3JpdGUg KHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0CitAQCAtMjQzLDE3ICsyNDMsMTcgQEAKICAKICBzdGF0 aWMgaW50CiAgbHZhbF9mdW5jX2NoZWNrX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3Qg dmFsdWUgKnYsCi0tCQkJCSAgIGludCBvZmZzZXQsIGludCBsZW5ndGgpCistCQkJCSAgIExPTkdF U1Qgb2Zmc2V0LCBpbnQgbGVuZ3RoKQogKwkJCQkgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBs ZW5ndGgpCiAgewogICAgc3RydWN0IGx2YWxfY2xvc3VyZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9z dXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHYpOwpAQCAtMjY5Miw3ICsyNDg1LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wtbGFuZy5jCiAgCiAgICBpZiAo ZW5kcmVzdCkKICAgICAgZW5kKys7Ci1AQCAtMjYzLDggKzI2Myw4IEBAIGx2YWxfZnVuY19jaGVj a19zeW50aGV0aWNfcG9pbnRlciAoY29uc3QKK0BAIC0yNjMsOCArMjYzLDggQEAKICAKICAgIGZv ciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspCiAgICAgIHsKQEAgLTI3MDMsMTEgKzI0OTYsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wtbGFuZy5jCiAgCiAgICAg ICAgaWYgKCF2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjLT52YWwsCiAgCQkJCQkgYy0+ aW5kaWNlc1tpXSAqIGVsc2l6ZSArIGNvbXBfb2Zmc2V0LAotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9wLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLWxh bmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3AtbGFu Zy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE5MzUxNjk5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3AtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI1MzY0ODk5ICswMTAw Ci1AQCAtOTUsOCArOTUsOCBAQCBwYXNjYWxfbWFpbl9uYW1lICh2b2lkKQorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk4NTEw NDc5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3AtbGFuZy5jCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTQyNTMwMTQ4ICswMjAwCitAQCAtOTUsOCArOTUsOCBAQAogICAgIGFyZSBu b3QgbXVsdGlwbGUgb2YgVEFSR0VUX0NIQVJfQklUIHRoZW4gdGhlIHJlc3VsdHMgYXJlIHdyb25n CiAgICAgYnV0IHRoaXMgZG9lcyBub3QgaGFwcGVuIGZvciBGcmVlIFBhc2NhbCBub3IgZm9yIEdQ Qy4gICovCiAgaW50CkBAIC0yNzE4LDcgKzI1MTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3AtbGFuZy5jCiAgCQkgICAgICAgc3RydWN0IHR5cGUgKipjaGFyX3R5cGUsCiAg CQkgICAgICAgY29uc3QgY2hhciAqKmFycmF5bmFtZSkKICB7Ci1AQCAtMjE2LDEyICsyMTYsMTIg QEAgcGFzY2FsX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eQorQEAgLTIxNiwxMiAr MjE2LDEyIEBACiAgCiAgdm9pZAogIHBhc2NhbF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0yNzMzLDcgKzI1MjYsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5jCiAgICB1bnNpZ25lZCBpbnQgdGhpbmdzX3By aW50ZWQgPSAwOwogICAgaW50IGluX3F1b3RlcyA9IDA7CiAgICBpbnQgbmVlZF9jb21tYSA9IDA7 Ci1AQCAtMjQ5LDkgKzI0OSw5IEBAIHBhc2NhbF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwKK0BAIC0yNDksOSArMjQ5LDkgQEAKICAgICAgewogICAgICAgIC8qIFBvc2l0aW9uIG9m IHRoZSBjaGFyYWN0ZXIgd2UgYXJlIGV4YW1pbmluZwogICAgICAgICAgIHRvIHNlZSB3aGV0aGVy IGl0IGlzIHJlcGVhdGVkLiAgKi8KQEAgLTI3NDUsNyArMjUzOCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmMKICAgICAgICB1bnNpZ25lZCBsb25nIGludCBjdXJy ZW50X2NoYXI7CiAgCiAgICAgICAgUVVJVDsKLUBAIC0yODMsNyArMjgzLDcgQEAgcGFzY2FsX3By aW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAgLTI4Myw3ICsyODMsNyBAQAogIAkg ICAgICBpbl9xdW90ZXMgPSAwOwogIAkgICAgfQogIAkgIHBhc2NhbF9wcmludGNoYXIgKGN1cnJl bnRfY2hhciwgdHlwZSwgc3RyZWFtKTsKQEAgLTI3NTQsMTEgKzI1NDcsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0 aGluZ3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5l ZWRfY29tbWEgPSAxOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuaAor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLWxhbmcuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMjE5MzUxNjk5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5o CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI2MzY0OTA1ICswMTAwCi1AQCAtMzYsNyArMzYsNyBAQCBl eHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZSAoc3RydWN0IHR5CistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTg1MTA0Nzkg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAx NDozMzo0NC41NDI1MzAxNDggKzAyMDAKK0BAIC0zNiw3ICszNiw3IEBACiAgZXh0ZXJuIHZvaWQg cGFzY2FsX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJ CQkJICBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKQEAgLTI3NjcsNyArMjU2MCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmgKICAJCQkgICAgICBDT1JFX0FERFIsIHN0 cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJ CQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLUBAIC01MCwxMyAr NTAsMTMgQEAgZXh0ZXJuIHZvaWQgcGFzY2FsX3R5cGVfcHJpbnRfbWV0aG9kX2FyZworQEAgLTUw LDEzICs1MCwxMyBAQAogIC8qIFRoZXNlIGFyZSBpbiBwLWxhbmcuYzogKi8KICAKICBleHRlcm4g aW50CkBAIC0yNzgzLDIwICsyNTc2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvcC1sYW5nLmgKICAJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICop OwogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqKmNvbnN0IChwYXNjYWxfYnVpbHRpbl90eXBlc1td KTsKLUBAIC03Miw3ICs3Miw3IEBAIGV4dGVybiB2b2lkCi0gCQkJCSAgICBjb25zdCBzdHJ1Y3Qg dHlwZV9wcmludF9vcHRpb25zICopOwotIAotIGV4dGVybiB2b2lkIHBhc2NhbF9vYmplY3RfcHJp bnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAotLQkJCQkJ ICAgICAgaW50LAotKwkJCQkJICAgICAgTE9OR0VTVCwKLSAJCQkJCSAgICAgIENPUkVfQUREUiwg c3RydWN0IHVpX2ZpbGUgKiwKLSAJCQkJCSAgICAgIGludCwKLSAJCQkJCSAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqLAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLXZhbHByaW50 LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC12YWxwcmludC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjIwMzUxNzA2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3AtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNjM2NDkwNSArMDEwMAotQEAg LTU3LDcgKzU3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZQor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA5ODUxMDQ3OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9w LXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKK0BAIC01OSw3 ICs1OSw3IEBACiAgCiAgdm9pZAogIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI4MDUsNyArMjU4OSw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxwcmludC5jCiAgCQkgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFs X3ZhbHVlLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykK LUBAIC02OCw4ICs2OCw4IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBj b24KK0BAIC03MCw4ICs3MCw4IEBACiAgICB1bnNpZ25lZCBsZW47CiAgICBMT05HRVNUIGxvd19i b3VuZCwgaGlnaF9ib3VuZDsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlOwpAQCAtMjgxNiw1MiAr MjYwMCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtdmFscHJpbnQuYwog ICAgc3RydWN0IHR5cGUgKmNoYXJfdHlwZTsKICAgIENPUkVfQUREUiBhZGRyOwogICAgaW50IHdh bnRfc3BhY2UgPSAwOwotQEAgLTQ2Nyw3ICs0NjcsNyBAQCBzdGF0aWMgdm9pZCBwYXNjYWxfb2Jq ZWN0X3ByaW50X3N0YXRpY19mCi0gCQkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqKTsKLSAKLSBzdGF0aWMgdm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlIChz dHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAotLQkJCQkgICAgICAgaW50LAotKwkJCQkg ICAgICAgTE9OR0VTVCwKLSAJCQkJICAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwg aW50LAotIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICosCi0gCQkJCSAgICAgICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAotQEAgLTUyNiw3ICs1MjYsNyBAQCBwYXNj YWxfb2JqZWN0X2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwCi0gCi0gdm9pZAotIHBhc2NhbF9v YmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5 dGUgKnZhbGFkZHIsCi0tCQkJCSAgaW50IG9mZnNldCwKLSsJCQkJICBMT05HRVNUIG9mZnNldCwK LSAJCQkJICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSAJCQkJ ICBpbnQgcmVjdXJzZSwKLSAJCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC02OTcs NyArNjk3LDcgQEAgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdAotIAot IHN0YXRpYyB2b2lkCi0gcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCSAgIGludCBvZmZzZXQsCi0rCQkJICAg TE9OR0VTVCBvZmZzZXQsCi0gCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sCi0gCQkJICAgaW50IHJlY3Vyc2UsCi0gCQkJICAgY29uc3Qgc3RydWN0IHZhbHVl ICp2YWwsCi1AQCAtNzIwLDExICs3MjAsMTEgQEAgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAo c3RydWN0IHR5cGUgKgotIAotICAgZm9yIChpID0gMDsgaSA8IG5fYmFzZWNsYXNzZXM7IGkrKykK LSAgICAgewotLSAgICAgIGludCBib2Zmc2V0ID0gMDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQg PSAwOwotICAgICAgIHN0cnVjdCB0eXBlICpiYXNlY2xhc3MgPSBjaGVja190eXBlZGVmIChUWVBF X0JBU0VDTEFTUyAodHlwZSwgaSkpOwotICAgICAgIGNvbnN0IGNoYXIgKmJhc2VuYW1lID0gdHlw ZV9uYW1lX25vX3RhZyAoYmFzZWNsYXNzKTsKLSAgICAgICBjb25zdCBnZGJfYnl0ZSAqYmFzZV92 YWxhZGRyID0gTlVMTDsKLS0gICAgICBpbnQgdGhpc29mZnNldDsKLSsgICAgICBMT05HRVNUIHRo aXNvZmZzZXQ7Ci0gICAgICAgaW50IHNraXAgPSAwOwotIAotICAgICAgIGlmIChCQVNFVFlQRV9W SUFfVklSVFVBTCAodHlwZSwgaSkpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Bw Yy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcGMtbGludXgt bmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wcGMt bGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjEzNTE3MTMgKzAxMDAKLSsrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjI3MzY0OTEyICswMTAwCi1AQCAtMTQ0OSw3ICsxNDQ5LDcgQEAgcHBjX2xpbnV4X2Nhbl91c2Vf aHdfYnJlYWtwb2ludCAoc3RydWN0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv cHBjLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk5NTEwNDg3ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjU0MjUzMDE0OCArMDIwMAorQEAgLTE0NDksNyArMTQ0OSw3IEBACiAgCiAgc3RhdGljIGlu dAogIHBwY19saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRf b3BzICpzZWxmLApAQCAtMjg3MCwxMSArMjYxMywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsKICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1 YW50aXRpZXMuICAqLwogICAgaWYgKGxlbiA8PSAwKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9wcmludGNtZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ByaW50 Y21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wcmlu dGNtZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIxMzUxNzEzICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3ByaW50Y21kLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjczNjQ5MTIg KzAxMDAKLUBAIC0yNzQsNyArMjc0LDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFsdWUg KnZhbCwgaW50CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcHJpbnRjbWQuYwky MDE2LTA3LTE2IDE0OjMzOjQyLjA5OTUxMDQ4NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9wcmludGNtZC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQzNTMwMTU2ICswMjAwCitA QCAtMjc5LDcgKzI3OSw3IEBACiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbCkpOwpAQCAt Mjg4Myw3ICsyNjI2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNt ZC5jCiAgCiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKICAgICAgbmV4 dF9hZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAodmFsKSArIGxlbjsKLUBAIC0zNTIsNyArMzUyLDcg QEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoY29uc3QgZ2RiX2J5dGUgKgorQEAgLTM1Nyw3ICsz NTcsNyBAQAogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAo dHlwZSk7CiAgICBMT05HRVNUIHZhbF9sb25nID0gMDsKQEAgLTI4OTIsMTEgKzI2MzUsMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNtZC5jCiAgICBlbnVtIGJmZF9l bmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgCiAgICAv KiBTdHJpbmcgcHJpbnRpbmcgc2hvdWxkIGdvIHRocm91Z2ggdmFsX3ByaW50X3NjYWxhcl9mb3Jt YXR0ZWQuICAqLwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcm9jZnMuYworSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcm9jZnMuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MjIzMzUxNzI2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Byb2Nmcy5jCTIw MTUtMTEtMDIgMjE6MjM6MTMuMjI4MzY0OTE4ICswMTAwCi1AQCAtNDg2Myw3ICs0ODYzLDcgQEAg cHJvY2ZzX3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XworLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTAwNTEwNDk1 ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTQzNTMwMTU2ICswMjAwCitAQCAtNDg2Myw3ICs0ODYzLDcgQEAKICAKICBzdGF0 aWMgaW50CiAgcHJvY2ZzX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdl dF9vcHMgKnNlbGYsCkBAIC0yOTA1LDI0ICsyNjQ4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvcHJvY2ZzLmMKICB7CiAgICAvKiBUaGUgbWFuIHBhZ2UgZm9yIHByb2MoNCkg b24gU29sYXJpcyAyLjYgYW5kIHVwIHNheXMgdGhhdCB0aGUKICAgICAgIHN5c3RlbSBjYW4gc3Vw cG9ydCAidGhvdXNhbmRzIiBvZiBoYXJkd2FyZSB3YXRjaHBvaW50cywgYnV0IGdpdmVzCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1 LTExLTAyIDIxOjIzOjExLjIyMzM1MTcyNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyOTM2NDky NSArMDEwMAotQEAgLTcwMyw3ICs3MDMsNyBAQCBwcmludF9jaGlsZHJlbiAoUHlPYmplY3QgKnBy aW50ZXIsIGNvbnN0Ci0gZW51bSBleHRfbGFuZ19yYwotIGdkYnB5X2FwcGx5X3ZhbF9wcmV0dHlf cHJpbnRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRsYW5nLAot IAkJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCWlu dCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJCQlMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkJCXN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAotIAkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCQkJY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjI0MzUxNzMy ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMjkzNjQ5MjUgKzAxMDAKLUBAIC05NTgsNyArOTU4LDcgQEAgdHlwZWRlZiB2 b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3JlZ2NhY2hlLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDE1MTA1MDMgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjU0NDUzMDE2NSArMDIwMAorQEAgLTk2Nyw3ICs5NjcsNyBAQAogIAogIHN0YXRpYyBlbnVt IHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hlX3hmZXJfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5MzEsNyArMjY2MSw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIAkJICAgIGVudW0gcmVnaXN0ZXJfc3RhdHVz ICgqcmVhZCkgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCiAgCQkJCQkJICBpbnQgcmVnbnVt LAogIAkJCQkJCSAgZ2RiX2J5dGUgKmJ1ZiksCi1AQCAtMTAwMiw3ICsxMDAyLDcgQEAgcmVnY2Fj aGVfeGZlcl9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZworQEAgLTEwMTEsNyArMTAxMSw3IEBA CiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk0MCw3ICsyNjcwLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0 IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsKICAKLUBAIC0xMDEzLDcg KzEwMTMsNyBAQCByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC0x MDIyLDcgKzEwMjIsNyBAQAogIAogIHZvaWQKICByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAoc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5NDksNyArMjY3OSw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVj dCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1AQCAtMTAyNCw3 ICsxMDI0LDcgQEAgcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZQorQEAg LTEwMzMsNyArMTAzMyw3IEBACiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9j b29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApA QCAtMjk1OCw3ICsyNjg4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdj YWNoZS5jCiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hlLT5k ZXNjcjsKICAKLUBAIC0xMDM1LDcgKzEwMzUsNyBAQCByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0 IChzdHJ1Y3QgcmVnY2FjCitAQCAtMTA0NCw3ICsxMDQ0LDcgQEAKICAKICB2b2lkCiAgcmVnY2Fj aGVfY29va2VkX3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdu dW0sCkBAIC0yOTY3LDExICsyNjk3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdj YWNoZS0+ZGVzY3I7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hl LmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0xMS0w MiAyMToyMzoxMS4yMjQzNTE3MzIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv cmVnY2FjaGUuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIzMDM2NDkzMSArMDEwMAotQEAgLTkyLDkg KzkyLDkgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfcmF3X3dyaXRlX3Vuc2lnbmVkCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE2LTA3LTE2IDE0OjMzOjQy LjEwMTUxMDUwMyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5o CTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ0NTMwMTY1ICswMjAwCitAQCAtODAsOSArODAsOSBAQAog IAogIGV4dGVybiBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogICAgcmVnY2FjaGVfcmF3X3JlYWRfcGFy dCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5ODMsNyArMjcx Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuaAogIAogIHZv aWQgcmVnY2FjaGVfaW52YWxpZGF0ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJl Z251bSk7CiAgCi1AQCAtMTMxLDEwICsxMzEsMTEgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfY29v a2VkX3dyaXRlX3Vuc2lnbgorQEAgLTExOSwxMCArMTE5LDExIEBACiAgICAgd3JpdGUgc3R5bGUg b3BlcmF0aW9ucy4gICovCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMgcmVnY2FjaGVfY29va2Vk X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKQEAgLTI5OTgsMTEgKzI3Mjgs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5oCiAgCiAgLyog U3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAgCi1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3JlbW90ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvcmVtb3RlLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjczNTE3NTIgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVtb3RlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzIz NjQ5NDUgKzAxMDAKLUBAIC05MTU3LDcgKzkxNTcsNyBAQCBpbnQgcmVtb3RlX2h3X2JyZWFrcG9p bnRfbGltaXQgPSAtMTsKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9yZW1vdGUu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNDUxMDUyNyArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9yZW1vdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NTUzMDE3MiArMDIwMAor QEAgLTk0NzMsNyArOTQ3Myw3IEBACiAgCiAgc3RhdGljIGludAogIHJlbW90ZV9yZWdpb25fb2tf Zm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMzAxMSwxMSAr Mjc0MSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlbW90ZS5jCiAgewog ICAgaWYgKHJlbW90ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1 cm4gMDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3B1LW11bHRpYXJjaC5jCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NwdS1tdWx0aWFyY2guYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE1 LTExLTAyIDIxOjIzOjExLjIyODM1MTc1OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzMzNjQ5NTEgKzAxMDAK LUBAIC0xMjcsNyArMTI3LDcgQEAgc3B1X3RocmVhZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJn ZXRfbworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwky MDE2LTA3LTE2IDE0OjMzOjQyLjEwNTUxMDUzNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDU1MzAxNzIgKzAy MDAKK0BAIC0xMjcsNyArMTI3LDcgQEAKICAvKiBPdmVycmlkZSB0aGUgdG9fcmVnaW9uX29rX2Zv cl9od193YXRjaHBvaW50IHJvdXRpbmUuICAqLwogIHN0YXRpYyBpbnQKICBzcHVfcmVnaW9uX29r X2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTMwMjQsMTEg KzI3NTQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zcHUtbXVsdGlhcmNo LmMKICB7CiAgICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzX2JlbmVhdGggPSBmaW5kX3RhcmdldF9i ZW5lYXRoIChzZWxmKTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2su YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zdGFjay5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvc3RhY2suYwkyMDE1LTExLTAyIDIxOjIz OjExLjIyOTM1MTc2NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5j CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjMzMzY0OTUxICswMTAwCi1AQCAtMTc2LDcgKzE3Niw3IEBA IHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9zdGFjay5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTA2NTEwNTQ0 ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N0YWNrLmMJMjAxNi0wNy0xNiAx NDozMzo0NC41NDY1MzAxODEgKzAyMDAKK0BAIC0xNzYsNyArMTc2LDcgQEAKICAgICBhcmd1bWVu dCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVsZXNzIGFyZ3VtZW50KS4gICovCiAgCiAgc3RhdGlj IHZvaWQKQEAgLTMwMzcsNyArMjc2Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvc3RhY2suYwogIAkJCSAgIGludCBmaXJzdCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7 CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1A QCAtNTM5LDcgKzUzOSw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMs IHMKK0BAIC01MzcsNyArNTM3LDcgQEAKICAgIC8qIE9mZnNldCBvZiBuZXh0IHN0YWNrIGFyZ3Vt ZW50IGJleW9uZCB0aGUgb25lIHdlIGhhdmUgc2VlbiB0aGF0IGlzCiAgICAgICBhdCB0aGUgaGln aGVzdCBvZmZzZXQsIG9yIC0xIGlmIHdlIGhhdmVuJ3QgY29tZSB0byBhIHN0YWNrCiAgICAgICBh cmd1bWVudCB5ZXQuICAqLwpAQCAtMzA0Niw3ICsyNzc2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9zdGFjay5jCiAgICAvKiBOdW1iZXIgb2YgaW50cyBvZiBhcmd1bWVudHMg dGhhdCB3ZSBoYXZlIHByaW50ZWQgc28gZmFyLiAgKi8KICAgIGludCBhcmdzX3ByaW50ZWQgPSAw OwogICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKLUBAIC01NzMsOCArNTczLDggQEAgcHJp bnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAgLTU3MSw4ICs1NzEsOCBA QAogIAkgICAgY2FzZSBMT0NfQVJHOgogIAkgICAgY2FzZSBMT0NfUkVGX0FSRzoKICAJICAgICAg ewpAQCAtMzA1Nyw3ICsyNzg3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9z dGFjay5jCiAgCiAgCQkvKiBDb21wdXRlIGFkZHJlc3Mgb2YgbmV4dCBhcmd1bWVudCBieSBhZGRp bmcgdGhlIHNpemUgb2YKICAJCSAgIHRoaXMgYXJndW1lbnQgYW5kIHJvdW5kaW5nIHRvIGFuIGlu dCBib3VuZGFyeS4gICovCi1AQCAtNzA5LDcgKzcwOSw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0 cnVjdCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC03MDcsNyArNzA3LDcgQEAKICAgICAgIGVub3VnaCBh Ym91dCB0aGUgc3RhY2sgdG8gZmluZCB0aGVtLiAgKi8KICAgIGlmIChudW0gIT0gLTEpCiAgICAg IHsKQEAgLTMwNjYsMTEgKzI3OTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9zdGFjay5jCiAgCiAgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09IC0xKQogIAlzdGFydCA9 IGdkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUpKTsKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3ltbWlzYy5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3N5bW1pc2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL3N5bW1pc2MuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyOTM1MTc2NSArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zeW1taXNjLmMJMjAxNS0xMS0wMiAyMToy MzoxMy4yMzQzNjQ5NTggKzAxMDAKLUBAIC01MzQsMTEgKzUzNCwxMSBAQCBwcmludF9zeW1ib2wg KHZvaWQgKmFyZ3MpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3ltbWlzYy5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMTA3NTEwNTUyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3N5bW1pc2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NjUzMDE4MSArMDIwMAor QEAgLTUzOCwxMSArNTM4LDExIEBACiAgCiAgCWNhc2UgTE9DX0NPTlNUX0JZVEVTOgogIAkgIHsK QEAgLTMwODUsMTEgKzI4MTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9z eW1taXNjLmMKICAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7IGkrKykK ICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAob3V0ZmlsZSwgIiAlMDJ4IiwKICAJCQkJKHVuc2ln bmVkKSBTWU1CT0xfVkFMVUVfQllURVMgKHN5bWJvbClbaV0pOwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi90YXJnZXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 YXJnZXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3Rh cmdldC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMwMzUxNzcyICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM0MzY0OTU4ICsw MTAwCi1AQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgaW50IGRlZmF1bHRfd2F0Y2hwb2ludF9hZGRy X3dpdGhpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNi0w Ny0xNiAxNDozMzo0Mi4xMDg1MTA1NjAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGFyZ2V0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDY1MzAxODEgKzAyMDAKK0BAIC01Niw3 ICs1Niw3IEBACiAgCQkJCQkJIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOwogIAogIHN0YXRp YyBpbnQgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRf b3BzICosCkBAIC0zMDk4LDcgKzI4MjgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3RhcmdldC5jCiAgCiAgc3RhdGljIHZvaWQgZGVmYXVsdF9yY21kIChzdHJ1Y3QgdGFyZ2V0 X29wcyAqLCBjb25zdCBjaGFyICosIHN0cnVjdCB1aV9maWxlICopOwogIAotQEAgLTMxMzIsNyAr MzEzMiw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoc3RydWN0IGluZmUKK0BAIC0z MTk2LDcgKzMxOTYsNyBAQAogIAogIHN0YXRpYyBpbnQKICBkZWZhdWx0X3JlZ2lvbl9va19mb3Jf aHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0zMTA3LDExICsyODM3 LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmMKICB7CiAgICBy ZXR1cm4gKGxlbiA8PSBnZGJhcmNoX3B0cl9iaXQgKHRhcmdldF9nZGJhcmNoICgpKSAvIFRBUkdF VF9DSEFSX0JJVCk7CiAgfQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQu aAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90YXJnZXQuaAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjMxMzUxNzc5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rhcmdl dC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM1MzY0OTY0ICswMTAwCi1AQCAtNTQ5LDcgKzU0OSw3 IEBAIHN0cnVjdCB0YXJnZXRfb3BzCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv dGFyZ2V0LmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDk1MTA1NjggKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDc1MzAxODkg KzAyMDAKK0BAIC01NTEsNyArNTUxLDcgQEAKICAgICAgLyogRG9jdW1lbnRhdGlvbiBvZiB0aGlz IHJvdXRpbmUgaXMgcHJvdmlkZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZwogICAgICAgICB0YXJn ZXRfKiBtYWNyby4gICovCiAgICAgIGludCAoKnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2lu dCkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0zMTIwLDExICsyODUwLDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmgKICAgICAgICBUQVJHRVRfREVGQVVMVF9G VU5DIChkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk7CiAgCiAgICAgIGludCAo KnRvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbikgKHN0cnVjdCB0YXJnZXRfb3BzICos Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90cmFjZXBvaW50LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMzMzNTE3OTIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2lu dC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM2MzY0OTcxICswMTAwCi1AQCAtOTMwLDEzICs5MzAs MTMgQEAgYWRkX3JlZ2lzdGVyIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICpjbworLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjExMjUxMDU5MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90cmFjZXBvaW50 LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDc1MzAxODkgKzAyMDAKK0BAIC05MzAsMTMgKzkzMCwx MyBAQAogIHN0YXRpYyB2b2lkCiAgYWRkX21lbXJhbmdlIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0 ICptZW1yYW5nZXMsIAogIAkgICAgICBpbnQgdHlwZSwgYmZkX3NpZ25lZF92bWEgYmFzZSwKQEAg LTMxNDAsNyArMjg3MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vw b2ludC5jCiAgICAgIH0KICAKICAgIC8qIHR5cGU6IG1lbXJhbmdlX2Fic29sdXRlID09IG1lbW9y eSwgb3RoZXIgbiA9PSBiYXNlcmVnICovCi1AQCAtOTY2LDcgKzk2Niw3IEBAIGNvbGxlY3Rfc3lt Ym9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC05NjYsNyArOTY2LDcgQEAKICAJCUNP UkVfQUREUiBzY29wZSwKICAJCWludCB0cmFjZV9zdHJpbmcpCiAgewpAQCAtMzE0OSw3ICsyODc5 LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90cmFjZXBvaW50LmMKICAgIHVu c2lnbmVkIGludCByZWc7CiAgICBiZmRfc2lnbmVkX3ZtYSBvZmZzZXQ7CiAgICBpbnQgdHJlYXRf YXNfZXhwciA9IDA7Ci1AQCAtOTkwLDggKzk5MCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qg Y29sbGVjdGlvbl9saXN0ICoKK0BAIC05OTAsOCArOTkwLDggQEAKICAJICBjaGFyIHRtcFs0MF07 CiAgCiAgCSAgc3ByaW50Zl92bWEgKHRtcCwgb2Zmc2V0KTsKQEAgLTMxNjAsNyArMjg5MCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgCQkJICAgdG1w IC8qIGFkZHJlc3MgKi8pOwogIAl9CiAgICAgICAgLyogQSBzdHJ1Y3QgbWF5IGJlIGEgQysrIGNs YXNzIHdpdGggc3RhdGljIGZpZWxkcywgZ28gdG8gZ2VuZXJhbAotQEAgLTEwMjMsOCArMTAyMyw4 IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDIzLDgg KzEwMjMsOCBAQAogICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCArIFNZTUJPTF9WQUxVRSAo c3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMTcxLDcgKzI5MDEsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogIAkgIHByaW50 Zl92bWEgKG9mZnNldCk7CiAgCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJl ZyAlZFxuIiwgcmVnKTsKICAJfQotQEAgLTEwMzUsOCArMTAzNSw4IEBAIGNvbGxlY3Rfc3ltYm9s IChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDM1LDggKzEwMzUsOCBAQAogICAgICAg IG9mZnNldCA9IDA7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzE4Miw3ICsy OTEyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90cmFjZXBvaW50LmMKICAJ ICBwcmludGZfdm1hIChvZmZzZXQpOwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIHJlZyAl ZFxuIiwgcmVnKTsKICAJfQotQEAgLTEwNDcsOCArMTA0Nyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChz dHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDQ3LDggKzEwNDcsOCBAQAogICAgICAgIG9m ZnNldCA9IGZyYW1lX29mZnNldCArIFNZTUJPTF9WQUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5m b192ZXJib3NlKQogIAl7CkBAIC0zMTkzLDcgKzI5MjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogIAkgIHByaW50Zl92bWEgKG9mZnNldCk7CiAgCSAg cHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAlZFxuIiwgcmVnKTsKICAJfQot QEAgLTI3MDgsNyArMjcwOCw4IEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0 eSkKK0BAIC0yNzAzLDcgKzI3MDMsOCBAQAogICAgY29uc3QgY2hhciAqc3ltbmFtZTsKICAgIGNo YXIgKnNhdmVfYXJncyA9IGFyZ3M7CiAgICBzdHJ1Y3QgYmxvY2tfaXRlcmF0b3IgaXRlcjsKQEAg LTMyMDMsNyArMjkzMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vw b2ludC5jCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKICAgIGludCByZWdubzsKICAgIHN0 cnVjdCBldmVudF9sb2NhdGlvbiAqbG9jYXRpb247Ci1AQCAtMjg1Miw4ICsyODUzLDExIEBAIHNj b3BlX2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0yODQ3LDggKzI4NDgsMTEg QEAKICAJCX0KICAJICAgIH0KICAJICBpZiAoU1lNQk9MX1RZUEUgKHN5bSkpCkBAIC0zMjE3LDI0 ICsyOTQ3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5j CiAgCX0KICAgICAgICBpZiAoQkxPQ0tfRlVOQ1RJT04gKGJsb2NrKSkKICAJYnJlYWs7Ci1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yMzQzNTE3OTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHlwZXBy aW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzYzNjQ5NzEgKzAxMDAKLUBAIC00MDYsNyArNDA2 LDcgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKLSAgIHN0cnVjdCB0eXBlICpy ZWFsX3R5cGUgPSBOVUxMOwotICAgc3RydWN0IHR5cGUgKnR5cGU7Ci0gICBpbnQgZnVsbCA9IDA7 Ci0tICBpbnQgdG9wID0gLTE7Ci0rICBMT05HRVNUIHRvcCA9IC0xOwotICAgaW50IHVzaW5nX2Vu YyA9IDA7Ci0gICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwotICAgc3RydWN0IHR5 cGVfcHJpbnRfb3B0aW9ucyBmbGFncyA9IGRlZmF1bHRfcHR5cGVfZmxhZ3M7Ci1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdmFsYXJpdGguYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzQzNTE3OTggKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwkyMDE1LTExLTAyIDIxOjIz OjU5LjgyMjY3MTQ5NiArMDEwMAotQEAgLTE4OCwxMiArMTg4LDEyIEBAIHZhbHVlX3N1YnNjcmlw dCAoc3RydWN0IHZhbHVlICphcnJheSwgTE8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi92YWxhcml0aC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE0NTEwNjA4ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbGFyaXRoLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41 NDg1MzAxOTcgKzAyMDAKK0BAIC0xODgsNyArMTg4LDcgQEAKICAgICB0byBkb3VibGVzLCBidXQg bm8gbG9uZ2VyIGRvZXMuICAqLwogIAogIHN0cnVjdCB2YWx1ZSAqCkBAIC0zMjQzLDE0ICsyOTYw LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxhcml0aC5jCiAgewogICAg c3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJh eSkpOwogICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJH RVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotLSAgdW5zaWduZWQgaW50IGVsdF9zaXplID0gdHlwZV9s ZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKLS0gIHVuc2lnbmVkIGludCBlbHRfb2ZmczsKLSsgIFVM T05HRVNUIGVsdF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKLSsgIFVMT05H RVNUIGVsdF9vZmZzOwotICAgTE9OR0VTVCBlbHRfc3RyaWRlID0gVFlQRV9CWVRFX1NUUklERSAo VFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7Ci0gICBzdHJ1Y3QgdmFsdWUgKnY7Ci0gCi1A QCAtNjc4LDcgKzY3OCw3IEBAIHZhbHVlX2NvbmNhdCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1 Y3QKK0BAIC02NzQsNyArNjc0LDcgQEAKICAgIHN0cnVjdCB2YWx1ZSAqaW52YWwxOwogICAgc3Ry dWN0IHZhbHVlICppbnZhbDI7CiAgICBzdHJ1Y3QgdmFsdWUgKm91dHZhbCA9IE5VTEw7CkBAIC0z MjU5LDcgKzI5NjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRo LmMKICAgIGludCBjb3VudCwgaWR4OwogICAgY2hhciAqcHRyOwogICAgY2hhciBpbmNoYXI7Ci1A QCAtMTUzMSw3ICsxNTMxLDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3Ry dWN0CitAQCAtMTUyNyw3ICsxNTI3LDcgQEAKICBpbnQKICB2YWx1ZV9sb2dpY2FsX25vdCAoc3Ry dWN0IHZhbHVlICphcmcxKQogIHsKQEAgLTMyNjgsNyArMjk3OCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwogICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZTE7CiAgCi1AQCAtMTU2MiwxMSArMTU2MiwxMSBAQCB2YWx1ZV9sb2dp Y2FsX25vdCAoc3RydWN0IHZhbHVlICphcmcxKQorQEAgLTE1NTgsMTEgKzE1NTgsMTEgQEAKICBz dGF0aWMgaW50CiAgdmFsdWVfc3RyY21wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1 ZSAqYXJnMikKICB7CkBAIC0zMjgzLDIwICsyOTkzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdmFsYXJpdGguYwogIAogICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQog ICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNDAz NTE4MzggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMJMjAxNS0x MS0wMiAyMToyMzoxMy4yMzgzNjQ5ODQgKzAxMDAKLUBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBz dHJ1Y3QgdmFsdWUgKnNlYXJjaF9zdHJ1Y3RfZmllbGQKLSAKLSBzdGF0aWMgc3RydWN0IHZhbHVl ICpzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAqLCBzdHJ1Y3QgdmFsdWUgKiosCi0g CQkJCQkgICBzdHJ1Y3QgdmFsdWUgKiosCi0tCQkJCQkgICBpbnQsIGludCAqLCBzdHJ1Y3QgdHlw ZSAqKTsKLSsJCQkJCSAgIExPTkdFU1QsIGludCAqLCBzdHJ1Y3QgdHlwZSAqKTsKLSAKLSBzdGF0 aWMgaW50IGZpbmRfb2xvYWRfY2hhbXBfbmFtZXNwYWNlIChzdHJ1Y3QgdmFsdWUgKiosIGludCwK LSAJCQkJICAgICAgIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLAotQEAgLTc5LDcgKzc5LDcg QEAgb2xvYWRfY2xhc3NpZmljYXRpb24gY2xhc3NpZnlfb2xvYWRfbWF0YworLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE3NTEw NjMyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbG9wcy5jCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTQ4NTMwMTk3ICswMjAwCitAQCAtNzksNyArNzksNyBAQAogIAkJCQkJICAg aW50LCBpbnQpOwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N0cnVjdF9lbHRfZm9y X3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKiwKQEAgLTMzMDUsMTkgKzMwMDYsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCQkJCQkJICAgICBjb25zdCBjaGFy ICosCiAgCQkJCQkJICAgICBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkJCSAgICAgaW50LCBlbnVtIG5v c2lkZSk7Ci1AQCAtOTYsOSArOTYsOSBAQCBzdGF0aWMgQ09SRV9BRERSIGFsbG9jYXRlX3NwYWNl X2luX2luZmVyCi0gc3RhdGljIHN0cnVjdCB2YWx1ZSAqY2FzdF9pbnRvX2NvbXBsZXggKHN0cnVj dCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqKTsKLSAKLSBzdGF0aWMgdm9pZCBmaW5kX21ldGhvZF9s aXN0IChzdHJ1Y3QgdmFsdWUgKiosIGNvbnN0IGNoYXIgKiwKLS0JCQkgICAgICBpbnQsIHN0cnVj dCB0eXBlICosIHN0cnVjdCBmbl9maWVsZCAqKiwgaW50ICosCi0rCQkJICAgICAgTE9OR0VTVCwg c3RydWN0IHR5cGUgKiwgc3RydWN0IGZuX2ZpZWxkICoqLCBpbnQgKiwKLSAJCQkgICAgICBWRUMg KHhtZXRob2Rfd29ya2VyX3B0cikgKiosCi0tCQkJICAgICAgc3RydWN0IHR5cGUgKiosIGludCAq KTsKLSsJCQkgICAgICBzdHJ1Y3QgdHlwZSAqKiwgTE9OR0VTVCAqKTsKLSAKLSB2b2lkIF9pbml0 aWFsaXplX3ZhbG9wcyAodm9pZCk7Ci0gCi1AQCAtMTgzLDcgKzE4Myw3IEBAIGZpbmRfZnVuY3Rp b25faW5faW5mZXJpb3IgKGNvbnN0IGNoYXIgKm4KK0BAIC0xODMsNyArMTgzLDcgQEAKICAgICBz cGFjZS4gICovCiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTMzMjYsMTcgKzMwMTUsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgewogICAgc3RydWN0IG9iamZp bGUgKm9iamY7CiAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IGZpbmRfZnVuY3Rpb25faW5faW5mZXJp b3IgKCJtYWxsb2MiLCAmb2JqZik7Ci1AQCAtMjU2LDcgKzI1Niw4IEBAIHZhbHVlX2Nhc3Rfc3Ry dWN0cyAoc3RydWN0IHR5cGUgKnR5cGUsIHMKLSAgIGlmIChUWVBFX05BTUUgKHQyKSAhPSBOVUxM KQotICAgICB7Ci0gICAgICAgLyogVHJ5IGRvd25jYXN0aW5nIHVzaW5nIHRoZSBydW4tdGltZSB0 eXBlIG9mIHRoZSB2YWx1ZS4gICovCi0tICAgICAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOwot KyAgICAgIGludCBmdWxsLCB1c2luZ19lbmM7Ci0rICAgICAgTE9OR0VTVCB0b3A7Ci0gICAgICAg c3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLSAKLSAgICAgICByZWFsX3R5cGUgPSB2YWx1ZV9ydHRp X3R5cGUgKHYyLCAmZnVsbCwgJnRvcCwgJnVzaW5nX2VuYyk7Ci1AQCAtMzk2LDEyICszOTcsMTIg QEAgdmFsdWVfY2FzdCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YQorQEAgLTM5NywxMiAr Mzk3LDEyIEBACiAgICBpZiAoY29kZTEgPT0gVFlQRV9DT0RFX0FSUkFZKQogICAgICB7CiAgICAg ICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwpA QCAtMzM1MSw2NCArMzAzMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFs b3BzLmMKICAJICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgbmV3X2xlbmd0aDsKICAK ICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhp Z2hfYm91bmQpIDwgMCkKLUBAIC02MzUsNyArNjM2LDcgQEAgdmFsdWVfcmVpbnRlcnByZXRfY2Fz dCAoc3RydWN0IHR5cGUgKnR5cAotIHN0YXRpYyBpbnQKLSBkeW5hbWljX2Nhc3RfY2hlY2tfMSAo c3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKLSAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLAotLQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCSAgICAgIExPTkdFU1QgZW1i ZWRkZWRfb2Zmc2V0LAotIAkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkgICAgICBzdHJ1 Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAgIHN0cnVjdCB0eXBlICpzZWFyY2hfdHlwZSwKLUBAIC02 NDcsOCArNjQ4LDggQEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgot IAotICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoc2VhcmNoX3R5cGUpICYm IHJlc3VsdF9jb3VudCA8IDI7ICsraSkKLSAgICAgewotLSAgICAgIGludCBvZmZzZXQgPSBiYXNl Y2xhc3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwgZW1iZWRkZWRfb2Zmc2V0LAot LQkJCQkgICAgIGFkZHJlc3MsIHZhbCk7Ci0rICAgICAgTE9OR0VTVCBvZmZzZXQgPSBiYXNlY2xh c3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwKLSsJCQkJCSBlbWJlZGRlZF9vZmZz ZXQsIGFkZHJlc3MsIHZhbCk7Ci0gCi0gICAgICAgaWYgKGNsYXNzX3R5cGVzX3NhbWVfcCAoZGVz aXJlZF90eXBlLCBUWVBFX0JBU0VDTEFTUyAoc2VhcmNoX3R5cGUsIGkpKSkKLSAJewotQEAgLTY4 Miw3ICs2ODMsNyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyCi0g c3RhdGljIGludAotIGR5bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3QgdHlwZSAqZGVzaXJlZF90 eXBlLAotIAkJICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgICAgICBpbnQgZW1i ZWRkZWRfb2Zmc2V0LAotKwkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkgICAg ICBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkJICAg ICAgc3RydWN0IHR5cGUgKnNlYXJjaF90eXBlLAotQEAgLTY5Miw3ICs2OTMsNyBAQCBkeW5hbWlj X2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCi0gCi0gICBmb3IgKGkgPSAwOyBpIDwg VFlQRV9OX0JBU0VDTEFTU0VTIChzZWFyY2hfdHlwZSkgJiYgcmVzdWx0X2NvdW50IDwgMjsgKytp KQotICAgICB7Ci0tICAgICAgaW50IG9mZnNldDsKLSsgICAgICBMT05HRVNUIG9mZnNldDsKLSAK LSAgICAgICBpZiAoISBCQVNFVFlQRV9WSUFfUFVCTElDIChzZWFyY2hfdHlwZSwgaSkpCi0gCWNv bnRpbnVlOwotQEAgLTcyMyw3ICs3MjQsOCBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0 IHR5cGUgKmRlc2lyCi0gc3RydWN0IHZhbHVlICoKLSB2YWx1ZV9keW5hbWljX2Nhc3QgKHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKmFyZykKLSB7Ci0tICBpbnQgZnVsbCwgdG9wLCB1 c2luZ19lbmM7Ci0rICBpbnQgZnVsbCwgdXNpbmdfZW5jOwotKyAgTE9OR0VTVCB0b3A7Ci0gICBz dHJ1Y3QgdHlwZSAqcmVzb2x2ZWRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOwotICAgc3Ry dWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7Ci0g ICBzdHJ1Y3QgdHlwZSAqY2xhc3NfdHlwZSwgKnJ0dGlfdHlwZTsKLUBAIC05NTQsNyArOTU2LDcg QEAgdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQQotIH0KLSAKLSB2b2lk Ci0tcmVhZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdmFsLCBpbnQgZW1iZWRkZWRfb2Zm c2V0LAotK3JlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsCi0gCQkgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1hZGRyLAotIAkJICAg Z2RiX2J5dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkKLSB7Ci1AQCAtMTA1Nyw3ICsxMDU5LDcg QEAgdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1YworQEAgLTEwNjMsNyAr MTA2Myw3IEBACiAgICAgICAgewogIAljb25zdCBnZGJfYnl0ZSAqZGVzdF9idWZmZXI7CiAgCUNP UkVfQUREUiBjaGFuZ2VkX2FkZHI7CkBAIC0zNDE3LDEzNCArMzAzOSw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAgICAgICAgIGdkYl9ieXRlIGJ1ZmZlcltz aXplb2YgKExPTkdFU1QpXTsKICAKICAJaWYgKHZhbHVlX2JpdHNpemUgKHRvdmFsKSkKLUBAIC0x MTI2LDcgKzExMjgsNyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVj Ci0gCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi0gCSAgewotIAkgICAgc3RydWN0IHZhbHVl ICpwYXJlbnQgPSB2YWx1ZV9wYXJlbnQgKHRvdmFsKTsKLS0JICAgIGludCBvZmZzZXQgPSB2YWx1 ZV9vZmZzZXQgKHBhcmVudCkgKyB2YWx1ZV9vZmZzZXQgKHRvdmFsKTsKLSsJICAgIExPTkdFU1Qg b2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChwYXJlbnQpICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7Ci0g CSAgICBpbnQgY2hhbmdlZF9sZW47Ci0gCSAgICBnZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05H RVNUKV07Ci0gCSAgICBpbnQgb3B0aW0sIHVuYXZhaWw7Ci1AQCAtMTU5MCw3ICsxNTkyLDcgQEAg dmFsdWVfYXJyYXkgKGludCBsb3dib3VuZCwgaW50IGhpZ2hib3VuZAotIHsKLSAgIGludCBuZWxl bTsKLSAgIGludCBpZHg7Ci0tICB1bnNpZ25lZCBpbnQgdHlwZWxlbmd0aDsKLSsgIFVMT05HRVNU IHR5cGVsZW5ndGg7Ci0gICBzdHJ1Y3QgdmFsdWUgKnZhbDsKLSAgIHN0cnVjdCB0eXBlICphcnJh eXR5cGU7Ci0gCi1AQCAtMTc2Niw3ICsxNzY4LDcgQEAgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGlu dCB2YXJhcmdzLCBpbnQgbgotIAotIHN0YXRpYyB2b2lkCi0gdXBkYXRlX3NlYXJjaF9yZXN1bHQg KHN0cnVjdCB2YWx1ZSAqKnJlc3VsdF9wdHIsIHN0cnVjdCB2YWx1ZSAqdiwKLS0JCSAgICAgIGlu dCAqbGFzdF9ib2Zmc2V0LCBpbnQgYm9mZnNldCwKLSsJCSAgICAgIExPTkdFU1QgKmxhc3RfYm9m ZnNldCwgTE9OR0VTVCBib2Zmc2V0LAotIAkJICAgICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0 IHR5cGUgKnR5cGUpCi0gewotICAgaWYgKHYgIT0gTlVMTCkKLUBAIC0xNzkwLDEwICsxNzkyLDEw IEBAIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipyZXMKLSAgICBsb29rdXAg aXMgYW1iaWd1b3VzLiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotLWRvX3NlYXJjaF9zdHJ1Y3RfZmll bGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKLStk b19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFy ZzEsIExPTkdFU1Qgb2Zmc2V0LAotIAkJCXN0cnVjdCB0eXBlICp0eXBlLCBpbnQgbG9va2luZ19m b3JfYmFzZWNsYXNzLAotIAkJCXN0cnVjdCB2YWx1ZSAqKnJlc3VsdF9wdHIsCi0tCQkJaW50ICps YXN0X2JvZmZzZXQsCi0rCQkJTE9OR0VTVCAqbGFzdF9ib2Zmc2V0LAotIAkJCXN0cnVjdCB0eXBl ICpvdXRlcm1vc3RfdHlwZSkKLSB7Ci0gICBpbnQgaTsKLUBAIC0xODQwLDcgKzE4NDIsNyBAQCBk b19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCi0gCQkgICA8dmFyaWFudCBm aWVsZD4uICAqLwotIAotIAkJc3RydWN0IHZhbHVlICp2ID0gTlVMTDsKLS0JCWludCBuZXdfb2Zm c2V0ID0gb2Zmc2V0OwotKwkJTE9OR0VTVCBuZXdfb2Zmc2V0ID0gb2Zmc2V0OwotIAotIAkJLyog VGhpcyBpcyBwcmV0dHkgZ3Jvc3MuICBJbiBHKyssIHRoZSBvZmZzZXQgaW4gYW4KLSAJCSAgIGFu b255bW91cyB1bmlvbiBpcyByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZQotQEAgLTE4 NzksNyArMTg4MSw3IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUK LSAJCQkgICAgICYmIChzdHJjbXBfaXcgKG5hbWUsIAotIAkJCQkJICAgIFRZUEVfQkFTRUNMQVNT X05BTUUgKHR5cGUsIAotIAkJCQkJCQkJIGkpKSA9PSAwKSk7Ci0tICAgICAgaW50IGJvZmZzZXQg PSB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0OwotKyAgICAgIExPTkdFU1Qg Ym9mZnNldCA9IHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkgKyBvZmZzZXQ7Ci0gCi0gICAg ICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKLSAJewotQEAgLTE5NTUsNyAr MTk1Nyw3IEBAIHNlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHMKLSAJCSAg ICAgc3RydWN0IHR5cGUgKnR5cGUsIGludCBsb29raW5nX2Zvcl9iYXNlY2xhc3MpCi0gewotICAg c3RydWN0IHZhbHVlICpyZXN1bHQgPSBOVUxMOwotLSAgaW50IGJvZmZzZXQgPSAwOwotKyAgTE9O R0VTVCBib2Zmc2V0ID0gMDsKLSAKLSAgIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKG5hbWUsIGFy ZzEsIDAsIHR5cGUsIGxvb2tpbmdfZm9yX2Jhc2VjbGFzcywKLSAJCQkgICZyZXN1bHQsICZib2Zm c2V0LCB0eXBlKTsKLUBAIC0xOTcyLDcgKzE5NzQsNyBAQCBzZWFyY2hfc3RydWN0X2ZpZWxkIChj b25zdCBjaGFyICpuYW1lLCBzCi0gCi0gc3RhdGljIHN0cnVjdCB2YWx1ZSAqCi0gc2VhcmNoX3N0 cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqKmFyZzFwLAotLQkJ ICAgICAgc3RydWN0IHZhbHVlICoqYXJncywgaW50IG9mZnNldCwKLSsJCSAgICAgIHN0cnVjdCB2 YWx1ZSAqKmFyZ3MsIExPTkdFU1Qgb2Zmc2V0LAotIAkJICAgICAgaW50ICpzdGF0aWNfbWVtZnVu Y3AsIHN0cnVjdCB0eXBlICp0eXBlKQotIHsKLSAgIGludCBpOwotQEAgLTIwMzYsOCArMjAzOCw4 IEBAIHNlYXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICpuYW1lLAotIAotICAgZm9yIChp ID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKSAtIDE7IGkgPj0gMDsgaS0tKQotICAgICB7Ci0t ICAgICAgaW50IGJhc2Vfb2Zmc2V0OwotLSAgICAgIGludCB0aGlzX29mZnNldDsKLSsgICAgICBM T05HRVNUIGJhc2Vfb2Zmc2V0OwotKyAgICAgIExPTkdFU1QgdGhpc19vZmZzZXQ7Ci0gCi0gICAg ICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKLSAJewotQEAgLTIyNzIsMTAg KzIyNzQsMTAgQEAgdmFsdWVfc3RydWN0X2VsdF9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKgotIAot IHN0YXRpYyB2b2lkCi0gZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqYXJncCwgY29u c3QgY2hhciAqbWV0aG9kLAotLQkJICBpbnQgb2Zmc2V0LCBzdHJ1Y3QgdHlwZSAqdHlwZSwKLSsJ CSAgTE9OR0VTVCBvZmZzZXQsIHN0cnVjdCB0eXBlICp0eXBlLAotIAkJICBzdHJ1Y3QgZm5fZmll bGQgKipmbl9saXN0LCBpbnQgKm51bV9mbnMsCi0gCQkgIFZFQyAoeG1ldGhvZF93b3JrZXJfcHRy KSAqKnhtX3dvcmtlcl92ZWMsCi0tCQkgIHN0cnVjdCB0eXBlICoqYmFzZXR5cGUsIGludCAqYm9m ZnNldCkKLSsJCSAgc3RydWN0IHR5cGUgKipiYXNldHlwZSwgTE9OR0VTVCAqYm9mZnNldCkKLSB7 Ci0gICBpbnQgaTsKLSAgIHN0cnVjdCBmbl9maWVsZCAqZiA9IE5VTEw7Ci1AQCAtMjMzMiw3ICsy MzM0LDcgQEAgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqYXJncCwgYwotICAgICAg ZXh0ZW5zaW9uIG1ldGhvZHMuICAqLwotICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0 eXBlKSAtIDE7IGkgPj0gMDsgaS0tKQotICAgICB7Ci0tICAgICAgaW50IGJhc2Vfb2Zmc2V0Owot KyAgICAgIExPTkdFU1QgYmFzZV9vZmZzZXQ7Ci0gCi0gICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9W SVJUVUFMICh0eXBlLCBpKSkKLSAJewotQEAgLTIzNzUsNyArMjM3Nyw3IEBAIHZhbHVlX2ZpbmRf b2xvYWRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgb2Zmc2V0LCBzdHJ1Y3QgZm5fZmllbGQgKipmbl9saXN0LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCAqbnVtX2ZucywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBWRUMgKHhtZXRob2Rfd29ya2VyX3B0cikgKip4bV93b3JrZXJfdmVjLAotLQkJCSAg ICAgIHN0cnVjdCB0eXBlICoqYmFzZXR5cGUsIGludCAqYm9mZnNldCkKLSsJCQkgICAgICBzdHJ1 Y3QgdHlwZSAqKmJhc2V0eXBlLCBMT05HRVNUICpib2Zmc2V0KQotIHsKLSAgIHN0cnVjdCB0eXBl ICp0OwotIAotQEAgLTI0ODYsNyArMjQ4OCw3IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVj dCB2YWx1ZSAqKmFyZ3MKLSAgIC8qIE51bWJlciBvZiBvdmVybG9hZGVkIGluc3RhbmNlcyBiZWlu ZyBjb25zaWRlcmVkLiAgKi8KLSAgIGludCBudW1fZm5zID0gMDsKLSAgIHN0cnVjdCB0eXBlICpi YXNldHlwZSA9IE5VTEw7Ci0tICBpbnQgYm9mZnNldDsKLSsgIExPTkdFU1QgYm9mZnNldDsKLSAK LSAgIHN0cnVjdCBjbGVhbnVwICphbGxfY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xl YW51cCwgTlVMTCk7Ci0gCi1AQCAtMzMwMCw3ICszMzAyLDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJz IChzdHJ1Y3QgdHlwZSAqdDEsIHN0cgorQEAgLTMzMjgsNyArMzMyOCw3IEBACiAgICAgdGhlIGZv cm0gIkRPTUFJTjo6TkFNRSIuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMzU1 Myw3ICszMDQ4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxvcHMuYwog IAkJCQlzdHJ1Y3QgdHlwZSAqY3VydHlwZSwgY29uc3QgY2hhciAqbmFtZSwKICAJCQkJc3RydWN0 IHR5cGUgKmludHlwZSwgCiAgCQkJCWludCB3YW50X2FkZHJlc3MsCi1AQCAtMzMzNCw3ICszMzM2 LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdAorQEAgLTMzNjIs NyArMzM2Miw3IEBACiAgCSAgaWYgKHdhbnRfYWRkcmVzcykKICAJICAgIHJldHVybiB2YWx1ZV9m cm9tX2xvbmdlc3QKICAJICAgICAgKGxvb2t1cF9tZW1iZXJwdHJfdHlwZSAoVFlQRV9GSUVMRF9U WVBFICh0LCBpKSwgZG9tYWluKSwKQEAgLTM1NjIsNyArMzA1Nyw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAJICBlbHNlIGlmIChub3NpZGUgIT0gRVZBTF9O T1JNQUwpCiAgCSAgICByZXR1cm4gYWxsb2NhdGVfdmFsdWUgKFRZUEVfRklFTERfVFlQRSAodCwg aSkpOwogIAkgIGVsc2UKLUBAIC0zNTAyLDcgKzM1MDQsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zv cl9yZWZlcmVuY2UgKHN0cnVjdCB0CitAQCAtMzUzMCw3ICszNTMwLDcgQEAKICAgIGZvciAoaSA9 IFRZUEVfTl9CQVNFQ0xBU1NFUyAodCkgLSAxOyBpID49IDA7IGktLSkKICAgICAgewogICAgICAg IHN0cnVjdCB2YWx1ZSAqdjsKQEAgLTM1NzEsMTYgKzMwNjYsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJU VUFMICh0LCBpKSkKICAJYmFzZV9vZmZzZXQgPSAwOwotQEAgLTM1ODMsNyArMzU4NSw3IEBAIHZh bHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdAotIAotIHN0cnVjdCB0eXBlICoK LSB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLCAK LS0JCQkgIGludCAqdG9wLCBpbnQgKnVzaW5nX2VuYykKLSsJCQkgIExPTkdFU1QgKnRvcCwgaW50 ICp1c2luZ19lbmMpCi0gewotICAgc3RydWN0IHZhbHVlICp0YXJnZXQgPSBOVUxMOwotICAgc3Ry dWN0IHR5cGUgKnR5cGUsICpyZWFsX3R5cGUsICp0YXJnZXRfdHlwZTsKLUBAIC0zNjUxLDEyICsz NjUzLDEyIEBAIHZhbHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICoKK0BAIC0z Njc5LDcgKzM2NzksNyBAQAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZnVsbF9vYmplY3QgKHN0 cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBzdHJ1Y3QgdHlwZSAqcnR5cGUsIApAQCAtMzU4OSwy NiArMzA3NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAg CQkgICBpbnQgeHVzaW5nX2VuYykKICB7CiAgICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlOwotICAg aW50IGZ1bGwgPSAwOwotLSAgaW50IHRvcCA9IC0xOwotKyAgTE9OR0VTVCB0b3AgPSAtMTsKLSAg IGludCB1c2luZ19lbmMgPSAwOwotICAgc3RydWN0IHZhbHVlICpuZXdfdmFsOwotIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3ZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjQyMzUxODUxICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMJMjAxNS0xMS0wMiAy MToyMzoxMy4yMzkzNjQ5OTEgKzAxMDAKLUBAIC0yOTksNyArMjk5LDcgQEAgdmFsX3ByaW50X3Nj YWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eQotIGludAotIHZhbHByaW50X2NoZWNrX3ZhbGlk aXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJCSBzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0J CQkgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0g CQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIHR5cGUgPSBjaGVja190eXBlZGVm ICh0eXBlKTsKLUBAIC04MzQsNyArODM0LDcgQEAgZ2VuZXJpY192YWxfcHJpbnRfY29tcGxleCAo c3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbHByaW50 LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMTg1MTA2NDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0OTUzMDIwNSArMDIw MAorQEAgLTkwNyw3ICs5MDcsNyBAQAogIAogIHZvaWQKICBnZW5lcmljX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzYxNywyNSArMzA4 OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuYwogIAkJICAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMsCi1AQCAtOTY5LDcgKzk2OSw3IEBAIGdlbmVyaWNfdmFsX3ByaW50IChz dHJ1Y3QgdHlwZSAqdHlwZSwgY28KLSAgICBSRUNVUlNFLiAgKi8KLSAKLSB2b2lkCi0tdmFsX3By aW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJl ZGRlZF9vZmZzZXQsCi0rdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5 dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkgICBDT1JFX0FERFIgYWRk cmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCSAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsLAotIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucywKLUBAIC0xMjIxLDcgKzEyMjEsNyBAQCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdz IChzdHJ1Y3QgdHlwZSAqCi0gCi0gdm9pZAotIHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkIChz dHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCQkgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBl bWJlZGRlZF9vZmZzZXQsCi0rCQkJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwKLSAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkJ ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotIAkJCSAgICBp bnQgc2l6ZSwKLUBAIC0xNzY2LDcgKzE3NjYsNyBAQCBwcmludF9kZWNpbWFsX2NoYXJzIChzdHJ1 Y3QgdWlfZmlsZSAqc3RyCitAQCAtMTg0Miw3ICsxODQyLDcgQEAKICAKICB2b2lkCiAgcHJpbnRf aGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKQEAgLTM2NDQsMTMgKzMwOTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3ZhbHByaW50LmMKICB7CiAgICBjb25zdCBnZGJfYnl0ZSAqcDsKICAKLUBAIC0xODgzLDIyICsx ODgzLDIyIEBAIG1heWJlX3ByaW50X2FycmF5X2luZGV4IChzdHJ1Y3QgdHlwZSAqaW4KLSAKLSB2 b2lkCi0gdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCQkg IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJCSAgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCSAgQ09S RV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMTk2NCwxNyArMTk2 NCwxNyBAQAogIAkJCSAgaW50IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLApAQCAt MzY3Myw3ICszMTIwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmlu dC5jCiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKICAgIExPTkdFU1QgbG93X3Bv cywgaGlnaF9wb3M7CiAgCi1AQCAtMTk4OCw3ICsxOTg4LDcgQEAgdmFsX3ByaW50X2FycmF5X2Vs ZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdAorQEAgLTIwNjQsNyArMjA2NCw3IEBACiAgCQkgICAgIGFk ZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSArIDEsIHZhbCwgb3B0aW9ucywKICAJCSAgICAgY3VycmVu dF9sYW5ndWFnZSk7CiAgCSAgYW5ub3RhdGVfZWx0X3JlcCAocmVwcyk7CkBAIC0zNjgyLDcgKzMx MjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMKICAJICBh bm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKICAKICAJICBpID0gcmVwMSAtIDE7Ci1AQCAtMjY0NCw3 ICsyNjQ0LDcgQEAgcHJpbnRfY29udmVydGVkX2NoYXJzX3RvX29ic3RhY2sgKHN0cnVjdAorQEAg LTI3MjAsNyArMjcyMCw3IEBACiAgCiAgdm9pZAogIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTM2OTEsMTYgKzMxMzgsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiAgCQkgIGNvbnN0 IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkgIGludCBxdW90ZV9jaGFy LCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJp bnQuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTEx LTAyIDIxOjIzOjExLjI0MjM1MTg1MSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi92YWxwcmludC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM5MzY0OTkxICswMTAwCi1AQCAtMTE1 LDExICsxMTUsMTEgQEAgZXh0ZXJuIHZvaWQgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLAotIAkJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotIAot LWV4dGVybiB2b2lkIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKiwgY29u c3QgZ2RiX2J5dGUgKiwgaW50LAotK2V4dGVybiB2b2lkIHZhbF9wcmludF9hcnJheV9lbGVtZW50 cyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxwcmludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE4 NTEwNjQwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHByaW50LmgJMjAx Ni0wNy0xNiAxNDozMzo0NC41NDk1MzAyMDUgKzAyMDAKK0BAIC0xMTksNyArMTE5LDcgQEAKICAJ CQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJCSAgICAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqLApAQCAtMzcwOSwxNiArMzE1MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdmFscHJpbnQuaAogIAogIGV4dGVybiB2b2lkIHZhbF9wcmludF90eXBlX2NvZGVf aW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAogIAkJCQkgICAgIHN0cnVjdCB1 aV9maWxlICopOwotQEAgLTEyOSw3ICsxMjksNyBAQCBleHRlcm4gdm9pZCB2YWxfcHJpbnRfdHlw ZV9jb2RlX2ZsYWdzIChzCi0gCQkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSAK LSBleHRlcm4gdm9pZCB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKiwK LS0JCQkJCWNvbnN0IGdkYl9ieXRlICosIGludCwKLSsJCQkJCWNvbnN0IGdkYl9ieXRlICosIExP TkdFU1QsCi0gCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKLSAJCQkJCWNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICosCi0gCQkJCQlpbnQsCi1AQCAtMTQ1LDcgKzE0NSw3IEBAIGV4 dGVybiB2b2lkIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdAorQEAgLTE0MSw3ICsxNDEsNyBA QAogIAkJCQkgdW5zaWduZWQgaW50LCBlbnVtIGJmZF9lbmRpYW4pOwogIAogIGV4dGVybiB2b2lk IHByaW50X2hleF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAg LTM3MjcsNyArMzE2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJp bnQuaAogIAogIGV4dGVybiB2b2lkIHByaW50X2NoYXJfY2hhcnMgKHN0cnVjdCB1aV9maWxlICos IHN0cnVjdCB0eXBlICosCiAgCQkJICAgICAgY29uc3QgZ2RiX2J5dGUgKiwgdW5zaWduZWQgaW50 LCBlbnVtIGJmZF9lbmRpYW4pOwotQEAgLTE5NCw3ICsxOTQsNyBAQCBzdHJ1Y3QgZ2VuZXJpY192 YWxfcHJpbnRfZGVjb3JhdGlvbnMKK0BAIC0xOTQsNyArMTk0LDcgQEAKICAKICAKICBleHRlcm4g dm9pZCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLApAQCAtMzczNiw3ICszMTY5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi92YWxwcmludC5oCiAgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVl LAogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywK LUBAIC0yMDQsNyArMjA0LDcgQEAgZXh0ZXJuIHZvaWQgZ2VuZXJpY19lbWl0X2NoYXIgKGludCBj LCBzdAorQEAgLTIwNCw3ICsyMDQsNyBAQAogIAkJCSAgICAgICBpbnQgcXVvdGVyLCBjb25zdCBj aGFyICplbmNvZGluZyk7CiAgCiAgZXh0ZXJuIHZvaWQgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAtMzc0NSw4MyArMzE3OCwx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAg ICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJCSAgICAgIGlu dCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJCSAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1 ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsdWUu YwkyMDE1LTExLTAyIDIxOjIzOjExLjI0ODM1MTg5MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi92YWx1ZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQxMzY1MDA0ICswMTAwCi1A QCAtNjYsMTAgKzY2LDEwIEBAIHN0cnVjdCBpbnRlcm5hbF9mdW5jdGlvbgotIHN0cnVjdCByYW5n ZQotIHsKLSAgIC8qIExvd2VzdCBvZmZzZXQgaW4gdGhlIHJhbmdlLiAgKi8KLS0gIGludCBvZmZz ZXQ7Ci0rICBMT05HRVNUIG9mZnNldDsKLSAKLSAgIC8qIExlbmd0aCBvZiB0aGUgcmFuZ2UuICAq LwotLSAgaW50IGxlbmd0aDsKLSsgIExPTkdFU1QgbGVuZ3RoOwotIH07Ci0gCi0gdHlwZWRlZiBz dHJ1Y3QgcmFuZ2UgcmFuZ2VfczsKLUBAIC04MCw4ICs4MCw4IEBAIERFRl9WRUNfTyhyYW5nZV9z KTsKLSAgICBbb2Zmc2V0Miwgb2Zmc2V0MitsZW4yKSBvdmVybGFwLiAgKi8KLSAKLSBzdGF0aWMg aW50Ci0tcmFuZ2VzX292ZXJsYXAgKGludCBvZmZzZXQxLCBpbnQgbGVuMSwKLS0JCWludCBvZmZz ZXQyLCBpbnQgbGVuMikKLStyYW5nZXNfb3ZlcmxhcCAoTE9OR0VTVCBvZmZzZXQxLCBMT05HRVNU IGxlbjEsCi0rCQlMT05HRVNUIG9mZnNldDIsIExPTkdFU1QgbGVuMikKLSB7Ci0gICBVTE9OR0VT VCBoLCBsOwotIAotQEAgLTEwNSw3ICsxMDUsNyBAQCByYW5nZV9sZXNzdGhhbiAoY29uc3QgcmFu Z2VfcyAqcjEsIGNvbnN0Ci0gICAgT0ZGU0VUK0xFTkdUSCkuICAqLwotIAotIHN0YXRpYyBpbnQK LS1yYW5nZXNfY29udGFpbiAoVkVDKHJhbmdlX3MpICpyYW5nZXMsIGludCBvZmZzZXQsIGludCBs ZW5ndGgpCi0rcmFuZ2VzX2NvbnRhaW4gKFZFQyhyYW5nZV9zKSAqcmFuZ2VzLCBMT05HRVNUIG9m ZnNldCwgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgcmFuZ2VfcyB3aGF0OwotICAgaW50IGk7Ci1A QCAtMjQwLDcgKzI0MCw3IEBAIHN0cnVjdCB2YWx1ZQotICAgICAgdGhlIGFkZHJlc3MuICBJZiBs dmFsID09IGx2YWxfcmVnaXN0ZXIsIHRoaXMgaXMgYSBmdXJ0aGVyIG9mZnNldCBmcm9tCi0gICAg ICBsb2NhdGlvbi5hZGRyZXNzIHdpdGhpbiB0aGUgcmVnaXN0ZXJzIHN0cnVjdHVyZS4gIE5vdGUg YWxzbyB0aGUgbWVtYmVyCi0gICAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwotLSAgaW50 IG9mZnNldDsKLSsgIExPTkdFU1Qgb2Zmc2V0OwotIAotICAgLyogT25seSB1c2VkIGZvciBiaXRm aWVsZHM7IG51bWJlciBvZiBiaXRzIGNvbnRhaW5lZCBpbiB0aGVtLiAgKi8KLSAgIGludCBiaXRz aXplOwotQEAgLTMxMCw4ICszMTAsOCBAQCBzdHJ1Y3QgdmFsdWUKLSAgICAgIGB0eXBlJywgYW5k IGBlbWJlZGRlZF9vZmZzZXQnIGlzIHplcm8sIHNvIGV2ZXJ5dGhpbmcgd29ya3MKLSAgICAgIG5v cm1hbGx5LiAgKi8KLSAgIHN0cnVjdCB0eXBlICplbmNsb3NpbmdfdHlwZTsKLS0gIGludCBlbWJl ZGRlZF9vZmZzZXQ7Ci0tICBpbnQgcG9pbnRlZF90b19vZmZzZXQ7Ci0rICBMT05HRVNUIGVtYmVk ZGVkX29mZnNldDsKLSsgIExPTkdFU1QgcG9pbnRlZF90b19vZmZzZXQ7Ci0gCi0gICAvKiBWYWx1 ZXMgYXJlIHN0b3JlZCBpbiBhIGNoYWluLCBzbyB0aGF0IHRoZXkgY2FuIGJlIGRlbGV0ZWQgZWFz aWx5Ci0gICAgICBvdmVyIGNhbGxzIHRvIHRoZSBpbmZlcmlvci4gIFZhbHVlcyBhc3NpZ25lZCB0 byBpbnRlcm5hbAotQEAgLTM1MCw3ICszNTAsNyBAQCBnZXRfdmFsdWVfYXJjaCAoY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWx1Ci0gfQotIAotIGludAotLXZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK3ZhbHVlX2Jp dHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwg TE9OR0VTVCBsZW5ndGgpCi0gewotICAgZ2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKLSAKLUBA IC0zNTgsNyArMzU4LDggQEAgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1 ZQotIH0KLSAKLSBpbnQKLS12YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rdmFsdWVfYnl0ZXNfYXZhaWxhYmxl IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwKLSsJCSAgICAgICBM T05HRVNUIGxlbmd0aCkKLSB7Ci0gICByZXR1cm4gdmFsdWVfYml0c19hdmFpbGFibGUgKHZhbHVl LAotIAkJCSAgICAgICBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtMzY2LDcgKzM2Nyw4 IEBAIHZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHUKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWx1ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE5NTEw NjQ4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHVlLmMJMjAxNi0wNy0x NiAxNDozMzo0NC41NDk1MzAyMDUgKzAyMDAKK0BAIC0zNjYsNyArMzY2LDggQEAKICB9CiAgCiAg aW50CkBAIC0zODMxLDM2ICszMTkyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi92YWx1ZS5jCiAgewogICAgZ2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5KTsKICAKLUBAIC00Mjgs NyArNDMwLDggQEAgdmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbAotICAg IE9GRlNFVCBiaXRzLCBhbmQgZXh0ZW5kaW5nIGZvciB0aGUgbmV4dCBMRU5HVEggYml0cy4gICov Ci0gCi0gc3RhdGljIHZvaWQKLS1pbnNlcnRfaW50b19iaXRfcmFuZ2VfdmVjdG9yIChWRUMocmFu Z2VfcykgKip2ZWN0b3JwLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK2luc2VydF9pbnRvX2Jp dF9yYW5nZV92ZWN0b3IgKFZFQyhyYW5nZV9zKSAqKnZlY3RvcnAsIExPTkdFU1Qgb2Zmc2V0LAot KwkJCSAgICAgIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIHJhbmdlX3MgbmV3cjsKLSAgIGludCBp OwotQEAgLTU5OSw3ICs2MDIsOCBAQCBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUgKHN0cnVj dCB2YWx1Ci0gfQotIAotIHZvaWQKLS1tYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1 Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK21hcmtfdmFsdWVfYnl0 ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zmc2V0LAotKwkJ CSAgICAgIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJs ZSAodmFsdWUsCi0gCQkJICAgICAgIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBAIC02MTMs NyArNjE3LDcgQEAgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbAotIAot IHN0YXRpYyBpbnQKLSBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAgKFZFQyhyYW5nZV9zKSAqcmFu Z2VzLCBpbnQgcG9zLAotLQkJCSAgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLSsJCQkgIExPTkdF U1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCkKLSB7Ci0gICByYW5nZV9zICpyOwotICAgaW50IGk7 Ci1AQCAtODA5LDkgKzgxMyw5IEBAIGZpbmRfZmlyc3RfcmFuZ2Vfb3ZlcmxhcF9hbmRfbWF0Y2gg KHN0cnUKK0BAIC04MTIsOSArODEzLDkgQEAKICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXZhaWxh YmxlIGJpdHMgbWF0Y2guICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTM4NzMsNTkgKzMyMDUsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmMKICB7CiAgICAvKiBFYWNo IGFycmF5IGVsZW1lbnQgY29ycmVzcG9uZHMgdG8gYSByYW5nZXMgc291cmNlICh1bmF2YWlsYWJs ZSwKICAgICAgIG9wdGltaXplZCBvdXQpLiAgJzEnIGlzIGZvciBWQUwxLCAnMicgZm9yIFZBTDIu ICAqLwotQEAgLTg3MSw5ICs4NzUsOSBAQCB2YWx1ZV9jb250ZW50c19iaXRzX2VxIChjb25zdCBz dHJ1Y3QgdmFsCi0gfQotIAotIGludAotLXZhbHVlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbDEsIGludCBvZmZzZXQxLAotLQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwy LCBpbnQgb2Zmc2V0MiwKLS0JCSAgIGludCBsZW5ndGgpCi0rdmFsdWVfY29udGVudHNfZXEgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgTE9OR0VTVCBvZmZzZXQxLAotKwkJICAgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwyLCBMT05HRVNUIG9mZnNldDIsCi0rCQkgICBMT05HRVNUIGxlbmd0aCkK LSB7Ci0gICByZXR1cm4gdmFsdWVfY29udGVudHNfYml0c19lcSAodmFsMSwgb2Zmc2V0MSAqIFRB UkdFVF9DSEFSX0JJVCwKLSAJCQkJIHZhbDIsIG9mZnNldDIgKiBUQVJHRVRfQ0hBUl9CSVQsCi1A QCAtMTAzNywxMyArMTA0MSwxMyBAQCBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChzdHJ1Y3Qg dmFsdWUKLSAgIHZhbHVlLT50eXBlID0gdHlwZTsKLSB9Ci0gCi0taW50Ci0rTE9OR0VTVAotIHZh bHVlX29mZnNldCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSkKLSB7Ci0gICByZXR1cm4gdmFs dWUtPm9mZnNldDsKLSB9Ci0gdm9pZAotLXNldF92YWx1ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsIGludCBvZmZzZXQpCi0rc2V0X3ZhbHVlX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1 ZSwgTE9OR0VTVCBvZmZzZXQpCi0gewotICAgdmFsdWUtPm9mZnNldCA9IG9mZnNldDsKLSB9Ci1A QCAtMTI1Nyw4ICsxMjYxLDkgQEAgdmFsdWVfcmFuZ2VzX2NvcHlfYWRqdXN0ZWQgKHN0cnVjdCB2 YWx1ZQotICAgIERTVF9PRkZTRVQrTEVOR1RIKSByYW5nZSBhcmUgd2hvbGx5IGF2YWlsYWJsZS4g ICovCi0gCi0gdm9pZAotLXZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmRz dCwgaW50IGRzdF9vZmZzZXQsCi0tCQkJIHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNl dCwgaW50IGxlbmd0aCkKLSt2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpk c3QsIHNzaXplX3QgZHN0X29mZnNldCwKLSsJCQkgc3RydWN0IHZhbHVlICpzcmMsIHNzaXplX3Qg c3JjX29mZnNldCwKLSsJCQkgc3NpemVfdCBsZW5ndGgpCi0gewotICAgcmFuZ2VfcyAqcjsKLSAg IGludCBzcmNfYml0X29mZnNldCwgZHN0X2JpdF9vZmZzZXQsIGJpdF9sZW5ndGg7Ci1AQCAtMTMw NSw4ICsxMzEwLDggQEAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0cnVjdCB2YWx1ZSAqZAot ICAgIERTVF9PRkZTRVQrTEVOR1RIKSByYW5nZSBhcmUgd2hvbGx5IGF2YWlsYWJsZS4gICovCi0g Ci0gdm9pZAotLXZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBpbnQgZHN0 X29mZnNldCwKLS0JCSAgICAgc3RydWN0IHZhbHVlICpzcmMsIGludCBzcmNfb2Zmc2V0LCBpbnQg bGVuZ3RoKQotK3ZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBzc2l6ZV90 IGRzdF9vZmZzZXQsCi0rCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBzc2l6ZV90IHNyY19vZmZz ZXQsIHNzaXplX3QgbGVuZ3RoKQotIHsKLSAgIGlmIChzcmMtPmxhenkpCi0gICAgIHZhbHVlX2Zl dGNoX2xhenkgKHNyYyk7Ci1AQCAtMTM3MCw3ICsxMzc1LDggQEAgdmFsdWVfb3B0aW1pemVkX291 dCAoc3RydWN0IHZhbHVlICp2YWx1ZQorQEAgLTE0NTYsNyArMTQ1Nyw4IEBACiAgICAgdGhlIGZv bGxvd2luZyBMRU5HVEggYnl0ZXMuICAqLwogIAogIHZvaWQKQEAgLTM5MzUsMTk5ICszMjE1LDIw IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYwogIHsKICAgIG1hcmtf dmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0ICh2YWx1ZSwKICAJCQkJIG9mZnNldCAqIFRBUkdFVF9D SEFSX0JJVCwKLUBAIC0xMzgwLDE0ICsxMzg2LDE1IEBAIG1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1p emVkX291dCAoc3RydWN0IHYKLSAvKiBTZWUgdmFsdWUuaC4gICovCi0gCi0gdm9pZAotLW1hcmtf dmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0 LCBpbnQgbGVuZ3RoKQotK21hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwKLSsJCQkgICAgICAgTE9OR0VTVCBsZW5ndGgpCi0g ewotICAgaW5zZXJ0X2ludG9fYml0X3JhbmdlX3ZlY3RvciAoJnZhbHVlLT5vcHRpbWl6ZWRfb3V0 LCBvZmZzZXQsIGxlbmd0aCk7Ci0gfQotIAotIGludAotIHZhbHVlX2JpdHNfc3ludGhldGljX3Bv aW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJICAgICAgaW50IG9mZnNldCwg aW50IGxlbmd0aCkKLSsJCQkgICAgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCi0g ewotICAgaWYgKHZhbHVlLT5sdmFsICE9IGx2YWxfY29tcHV0ZWQKLSAgICAgICB8fCAhdmFsdWUt PmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzLT5jaGVja19zeW50aGV0aWNfcG9pbnRlcikKLUBAIC0x Mzk3LDI2ICsxNDA0LDI2IEBAIHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0 cnUKLSAJCQkJCQkJCSAgbGVuZ3RoKTsKLSB9Ci0gCi0taW50Ci0rTE9OR0VTVAotIHZhbHVlX2Vt YmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSkKLSB7Ci0gICByZXR1cm4gdmFsdWUt PmVtYmVkZGVkX29mZnNldDsKLSB9Ci0gCi0gdm9pZAotLXNldF92YWx1ZV9lbWJlZGRlZF9vZmZz ZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCi0rc2V0X3ZhbHVlX2VtYmVkZGVkX29m ZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2YWwpCi0gewotICAgdmFsdWUtPmVt YmVkZGVkX29mZnNldCA9IHZhbDsKLSB9Ci0gCi0taW50Ci0rTE9OR0VTVAotIHZhbHVlX3BvaW50 ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQotIHsKLSAgIHJldHVybiB2YWx1ZS0+ cG9pbnRlZF90b19vZmZzZXQ7Ci0gfQotIAotIHZvaWQKLS1zZXRfdmFsdWVfcG9pbnRlZF90b19v ZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCi0rc2V0X3ZhbHVlX3BvaW50ZWRf dG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCkKLSB7Ci0gICB2YWx1 ZS0+cG9pbnRlZF90b19vZmZzZXQgPSB2YWw7Ci0gfQotQEAgLTIyOTUsNyArMjMwMiw3IEBAIGdl dF9pbnRlcm5hbHZhcl9mdW5jdGlvbiAoc3RydWN0IGludGVybmEKLSB9Ci0gCi0gdm9pZAotLXNl dF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBpbnQgb2Zm c2V0LCBpbnQgYml0cG9zLAotK3NldF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRl cm5hbHZhciAqdmFyLCBMT05HRVNUIG9mZnNldCwgaW50IGJpdHBvcywKLSAJCQkgICBpbnQgYml0 c2l6ZSwgc3RydWN0IHZhbHVlICpuZXd2YWwpCi0gewotICAgZ2RiX2J5dGUgKmFkZHI7Ci1AQCAt MzAyMCw3ICszMDI3LDcgQEAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlIChzdHJ1Y3QgdmFsdWUg KgotICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVsZC4gICovCi0gCi0gc3RydWN0IHZhbHVlICoK LS12YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwK LSt2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgTE9OR0VTVCBvZmZz ZXQsCi0gCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBlICphcmdfdHlwZSkKLSB7Ci0g ICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMzA3Miw3ICszMDc5LDcgQEAgdmFsdWVfcHJpbWl0aXZl X2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZwotICAgICAgIC8qIFRoaXMgZmllbGQgaXMgYWN0dWFs bHkgYSBiYXNlIHN1Ym9iamVjdCwgc28gcHJlc2VydmUgdGhlCi0gCSBlbnRpcmUgb2JqZWN0J3Mg Y29udGVudHMgZm9yIGxhdGVyIHJlZmVyZW5jZXMgdG8gdmlydHVhbAotIAkgYmFzZXMsIGV0Yy4g ICovCi0tICAgICAgaW50IGJvZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCBib2Zmc2V0OwotIAotICAg ICAgIC8qIExhenkgcmVnaXN0ZXIgdmFsdWVzIHdpdGggb2Zmc2V0cyBhcmUgbm90IHN1cHBvcnRl ZC4gICovCi0gICAgICAgaWYgKFZBTFVFX0xWQUwgKGFyZzEpID09IGx2YWxfcmVnaXN0ZXIgJiYg dmFsdWVfbGF6eSAoYXJnMSkpCi1AQCAtMzE1OSw3ICszMTY2LDcgQEAgdmFsdWVfZmllbGQgKHN0 cnVjdCB2YWx1ZSAqYXJnMSwgaW50IGZpZQotIHN0cnVjdCB2YWx1ZSAqCi0gdmFsdWVfZm5fZmll bGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQgKmYsCi0gCQlpbnQgaiwg c3RydWN0IHR5cGUgKnR5cGUsCi0tCQlpbnQgb2Zmc2V0KQotKwkJTE9OR0VTVCBvZmZzZXQpCi0g ewotICAgc3RydWN0IHZhbHVlICp2OwotICAgc3RydWN0IHR5cGUgKmZ0eXBlID0gVFlQRV9GTl9G SUVMRF9UWVBFIChmLCBqKTsKLUBAIC0zMjI5LDE0ICszMjM2LDE0IEBAIHZhbHVlX2ZuX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKLSAKLSBzdGF0aWMgTE9OR0VTVAotIHVucGFja19i aXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKLS0JCSAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUpCi0rCQkgICAgIExPTkdFU1Qg Yml0cG9zLCBpbnQgYml0c2l6ZSkKLSB7Ci0gICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9 IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAoZmllbGRfdHlwZSkpOwotICAgVUxP TkdFU1QgdmFsOwotICAgVUxPTkdFU1QgdmFsbWFzazsKLSAgIGludCBsc2Jjb3VudDsKLSAgIGlu dCBieXRlc19yZWFkOwotLSAgaW50IHJlYWRfb2Zmc2V0OwotKyAgTE9OR0VTVCByZWFkX29mZnNl dDsKLSAKLSAgIC8qIFJlYWQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkOyB0 aGVyZSBtYXkgbm90IGJlCi0gICAgICBlbm91Z2ggYnl0ZXMgdG8gcmVhZCBhbiBlbnRpcmUgVUxP TkdFU1QuICAqLwotQEAgLTMyODUsNyArMzI5Miw3IEBAIHVucGFja19iaXRzX2FzX2xvbmcgKHN0 cnVjdCB0eXBlICpmaWVsZF8KLSAKLSBpbnQKLSB1bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZyAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCSAgICBpbnQg ZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmllbGRubywKLSsJCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9v ZmZzZXQsIGludCBmaWVsZG5vLAotIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9O R0VTVCAqcmVzdWx0KQotIHsKLSAgIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlw ZSwgZmllbGRubyk7Ci1AQCAtMzMyOSw3ICszMzM2LDcgQEAgdW5wYWNrX2ZpZWxkX2FzX2xvbmcg KHN0cnVjdCB0eXBlICp0eXBlLAotIHZvaWQKLSB1bnBhY2tfdmFsdWVfYml0ZmllbGQgKHN0cnVj dCB2YWx1ZSAqZGVzdF92YWwsCi0gCQkgICAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0t CQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0r CQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0 LAotIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIGVudW0gYmZkX2Vu ZGlhbiBieXRlX29yZGVyOwotQEAgLTMzNjcsNyArMzM3NCw3IEBAIHVucGFja192YWx1ZV9iaXRm aWVsZCAoc3RydWN0IHZhbHVlICpkZXMKLSBzdHJ1Y3QgdmFsdWUgKgotIHZhbHVlX2ZpZWxkX2Jp dGZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkbm8sCi0gCQkgICAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsKQotKwkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBP UyAodHlwZSwgZmllbGRubyk7Ci0gICBpbnQgYml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAo dHlwZSwgZmllbGRubyk7Ci1AQCAtMzM4OCwxMiArMzM5NSwxMiBAQCB2YWx1ZV9maWVsZF9iaXRm aWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsCi0gCi0gdm9pZAotIG1vZGlmeV9maWVsZCAoc3RydWN0 IHR5cGUgKnR5cGUsIGdkYl9ieXRlICphZGRyLAotLQkgICAgICBMT05HRVNUIGZpZWxkdmFsLCBp bnQgYml0cG9zLCBpbnQgYml0c2l6ZSkKLSsJICAgICAgTE9OR0VTVCBmaWVsZHZhbCwgTE9OR0VT VCBiaXRwb3MsIGludCBiaXRzaXplKQotIHsKLSAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVy ID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7Ci0gICBVTE9OR0VT VCBvd29yZDsKLSAgIFVMT05HRVNUIG1hc2sgPSAoVUxPTkdFU1QpIC0xID4+ICg4ICogc2l6ZW9m IChVTE9OR0VTVCkgLSBiaXRzaXplKTsKLS0gIGludCBieXRlc2l6ZTsKLSsgIExPTkdFU1QgYnl0 ZXNpemU7Ci0gCi0gICAvKiBOb3JtYWxpemUgQklUUE9TLiAgKi8KLSAgIGFkZHIgKz0gYml0cG9z IC8gODsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsdWUuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkw NCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjQxMzY1MDA0ICswMTAwCi1AQCAtMTM1LDggKzEzNSw4IEBAIGV4dGVybiB2b2lk IHNldF92YWx1ZV9wYXJlbnQgKHN0cnVjdCB2YWwKLSAgICB3aXRoaW4gdGhlIHJlZ2lzdGVycyBz dHJ1Y3R1cmUuICBOb3RlIGFsc28gdGhlIG1lbWJlcgotICAgIGVtYmVkZGVkX29mZnNldCBiZWxv dy4gICovCi0gCi0tZXh0ZXJuIGludCB2YWx1ZV9vZmZzZXQgKGNvbnN0IHN0cnVjdCB2YWx1ZSAq KTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKiwgaW50IG9m ZnNldCk7Ci0rZXh0ZXJuIExPTkdFU1QgdmFsdWVfb2Zmc2V0IChjb25zdCBzdHJ1Y3QgdmFsdWUg Kik7Ci0rZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX29mZnNldCAoc3RydWN0IHZhbHVlICosIExPTkdF U1Qgb2Zmc2V0KTsKLSAKLSAvKiBUaGUgY29tbWVudCBmcm9tICJzdHJ1Y3QgdmFsdWUiIHJlYWRz OiBgYElzIGl0IG1vZGlmaWFibGU/ICBPbmx5Ci0gICAgcmVsZXZhbnQgaWYgbHZhbCAhPSBub3Rf bHZhbC4nJy4gIFNob3VsZG4ndCB0aGUgdmFsdWUgaW5zdGVhZCBiZQotQEAgLTIwNSwxMCArMjA1 LDEwIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfYWN0dWFsX3R5cGUgKHMKLSAJCQkJICAg ICAgIGludCByZXNvbHZlX3NpbXBsZV90eXBlcywKLSAJCQkJICAgICAgIGludCAqcmVhbF90eXBl X2ZvdW5kKTsKLSAKLS1leHRlcm4gaW50IHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3Qg dmFsdWUgKnZhbHVlKTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQg KHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpOwotLWV4dGVybiBpbnQgdmFsdWVfZW1iZWRk ZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVf ZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgdmFsKTsKLStleHRlcm4g TE9OR0VTVCB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSk7Ci0r ZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZh bHVlLCBMT05HRVNUIHZhbCk7Ci0rZXh0ZXJuIExPTkdFU1QgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0 IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKLStleHRlcm4gdm9pZCBzZXRfdmFsdWVfZW1iZWRkZWRf b2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCk7Ci0gCi0gLyogRm9yIGx2 YWxfY29tcHV0ZWQgdmFsdWVzLCB0aGlzIHN0cnVjdHVyZSBob2xkcyBmdW5jdGlvbnMgdXNlZCB0 bwotICAgIHJldHJpZXZlIGFuZCBzZXQgdGhlIHZhbHVlIChvciBwb3J0aW9ucyBvZiB0aGUgdmFs dWUpLgotQEAgLTI0Niw3ICsyNDYsNyBAQCBzdHJ1Y3QgbHZhbF9mdW5jcworLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjA1MTA2 NTYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsdWUuaAkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjU1MDUzMDIxMyArMDIwMAorQEAgLTI0Niw3ICsyNDYsNyBAQAogICAgLyogSWYg bm9uLU5VTEwsIHRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgaW5kaWNhdGVk IGJpdHMKICAgICAgIG9mIFZBTFVFIGFyZSBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KICAgIGlu dCAoKmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwK LS0JCQkJICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKKy0JCQkJICBMT05HRVNUIG9mZnNldCwg aW50IGxlbmd0aCk7CiArCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKICAK ICAgIC8qIFJldHVybiBhIGR1cGxpY2F0ZSBvZiBWQUxVRSdzIGNsb3N1cmUsIGZvciB1c2UgaW4g YSBuZXcgdmFsdWUuCiAgICAgICBUaGlzIG1heSBzaW1wbHkgcmV0dXJuIHRoZSBzYW1lIGNsb3N1 cmUsIGlmIFZBTFVFJ3MgaXMKLUBAIC0yODMsNyArMjgzLDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqYWxsb2NhdGVfY29tcHV0ZWRfdgotICAgIE90aGVyd2lzZSwgcmV0dXJuIDEuICAqLwotIAot IGV4dGVybiBpbnQgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIHN0cnVjdCB0eXBlICp0eXBlLAotLQkJCQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJ CQkJICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCQkgICAgY29uc3Qgc3RydWN0IHZh bHVlICp2YWwpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX29wdGltaXplZF9v dXRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlKTsKLUBAIC0zNzcsNyArMzc3LDggQEAgZXh0ZXJu IGludCB2YWx1ZV9vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdgorQEAgLTM3Nyw3ICszNzcsOCBAQAog ICAgIG90aGVyd2lzZS4gICovCiAgCiAgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX2FueV9vcHRpbWl6 ZWRfb3V0IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDEzNyw3ICszMjM4LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAgCiAgLyogTGlrZSB2YWx1 ZV9vcHRpbWl6ZWRfb3V0LCBidXQgcmV0dXJuIHRydWUgaWZmIHRoZSB3aG9sZSB2YWx1ZSBpcwog ICAgIG9wdGltaXplZCBvdXQuICAqLwotQEAgLTM4NywxMyArMzg4LDEzIEBAIGV4dGVybiBpbnQg dmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dAorQEAgLTM4Nyw3ICszODgsNyBAQAogICAgIExF TkdUSCBieXRlcyBhcyBvcHRpbWl6ZWQgb3V0LiAgKi8KICAKICBleHRlcm4gdm9pZCBtYXJrX3Zh bHVlX2J5dGVzX29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00MTQ2LDEy NCArMzI0NywxMiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmgKICAK ICAvKiBNYXJrIFZBTFVFJ3MgY29udGVudCBiaXRzIHN0YXJ0aW5nIGF0IE9GRlNFVCBhbmQgZXh0 ZW5kaW5nIGZvcgogICAgIExFTkdUSCBiaXRzIGFzIG9wdGltaXplZCBvdXQuICAqLwotIAotIGV4 dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZh bHVlLAotLQkJCQkJICAgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rCQkJCQkgICBMT05HRVNU IG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpOwotIAotIC8qIFNldCBvciByZXR1cm4gZmllbGQgaW5k aWNhdGluZyB3aGV0aGVyIGEgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQgb3IKLSAgICBub3QsIGJh c2VkIG9uIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBzdXBwbGllZCBieSB0aGUgY29tcGlsZXIuCi1A QCAtNDc2LDcgKzQ3Nyw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV9hcnJheSAoc3Ry dWMKLSAgICBleHRlbmRpbmcgZm9yIExFTkdUSCBiaXRzIGFyZSBhIHN5bnRoZXRpYyBwb2ludGVy LiAgKi8KLSAKLSBleHRlcm4gaW50IHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJCQkgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0r CQkJCQkgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBHaXZlbiBhIHZh bHVlLCBkZXRlcm1pbmUgd2hldGhlciB0aGUgY29udGVudHMgYnl0ZXMgc3RhcnRpbmcgYXQKLSAg ICBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJ5dGVzIGFyZSBhdmFpbGFibGUuICBU aGlzIHJldHVybnMKLUBAIC00ODQsNyArNDg1LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX3N5 bnRoZXRpY19wb2ludGVyCi0gICAgYnl0ZSBpcyB1bmF2YWlsYWJsZS4gICovCi0gCi0gZXh0ZXJu IGludCB2YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0t CQkJCSAgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExP TkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBHaXZlbiBhIHZhbHVlLCBkZXRlcm1pbmUgd2hldGhlciB0 aGUgY29udGVudHMgYml0cyBzdGFydGluZyBhdAotICAgIE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZv ciBMRU5HVEggYml0cyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1cm5zCi1AQCAtNDkyLDcgKzQ5 Myw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdAotICAgIGJpdCBp cyB1bmF2YWlsYWJsZS4gICovCi0gCi0gZXh0ZXJuIGludCB2YWx1ZV9iaXRzX2F2YWlsYWJsZSAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0JCQkJIGludCBvZmZzZXQsIGludCBsZW5ndGgp OwotKwkJCQkgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBMaWtlIHZh bHVlX2J5dGVzX2F2YWlsYWJsZSwgYnV0IHJldHVybiBmYWxzZSBpZiBhbnkgYnl0ZSBpbiB0aGUK LSAgICB3aG9sZSBvYmplY3QgaXMgdW5hdmFpbGFibGUuICAqLwotQEAgLTUwNiw3ICs1MDcsNyBA QCBleHRlcm4gaW50IHZhbHVlX2VudGlyZWx5X3VuYXZhaWxhYmxlIChzCi0gICAgTEVOR1RIIGJ5 dGVzIGFzIHVuYXZhaWxhYmxlLiAgKi8KLSAKLSBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVz X3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCQkJICBpbnQgb2Zmc2V0LCBp bnQgbGVuZ3RoKTsKLSsJCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAK LSAvKiBNYXJrIFZBTFVFJ3MgY29udGVudCBiaXRzIHN0YXJ0aW5nIGF0IE9GRlNFVCBhbmQgZXh0 ZW5kaW5nIGZvcgotICAgIExFTkdUSCBiaXRzIGFzIHVuYXZhaWxhYmxlLiAgKi8KLUBAIC01Njcs OSArNTY4LDkgQEAgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlCi0gICAg YWZ0ZXIgdGhlIGluZmVyaW9yIGlzIGdvbmUsIGl0IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAg VGhlcmVmb3JlLAotICAgIHRoaXMgcm91dGluZSBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCBsYXp5 IHZhbHVlcy4gICovCi0gCi0tZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zmc2V0MSwKLS0JCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbDIsIGludCBvZmZzZXQyLAotLQkJCSAgICAgIGludCBsZW5ndGgpOwotK2V4dGVybiBp bnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgTE9OR0VTVCBv ZmZzZXQxLAotKwkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBvZmZz ZXQyLAotKwkJCSAgICAgIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBSZWFkIExFTkdUSCBhZGRy ZXNzYWJsZSBtZW1vcnkgdW5pdHMgc3RhcnRpbmcgYXQgTUVNQUREUiBpbnRvIEJVRkZFUiwKLSAg ICB3aGljaCBpcyAob3Igd2lsbCBiZSBjb3BpZWQgdG8pIFZBTCdzIGNvbnRlbnRzIGJ1ZmZlciBv ZmZzZXQgYnkKLUBAIC01NzgsNyArNTc5LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19l cSAoY29uc3Qgc3RydQotICAgIG1lbW9yeSBpcyBsaWtld2lzZSB1bmF2YWlsYWJsZS4gIFNUQUNL IGluZGljYXRlcyB3aGV0aGVyIHRoZSBtZW1vcnkKLSAgICBpcyBrbm93biB0byBiZSBzdGFjayBt ZW1vcnkuICAqLwotIAotLWV4dGVybiB2b2lkIHJlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFs dWUgKnZhbCwgaW50IGVtYmVkZGVkX29mZnNldCwKLStleHRlcm4gdm9pZCByZWFkX3ZhbHVlX21l bW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCSAg ICAgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1hZGRyLAotIAkJCSAgICAgICBnZGJfYnl0ZSAq YnVmZmVyLCBzaXplX3QgbGVuZ3RoKTsKLSAKLUBAIC02MTQsMTcgKzYxNSwxOCBAQCBleHRlcm4g TE9OR0VTVCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RyCi0gCQkJCSAgICAgY29uc3QgZ2RiX2J5 dGUgKnZhbGFkZHIsCi0gCQkJCSAgICAgaW50IGZpZWxkbm8pOwotIGV4dGVybiBpbnQgdW5wYWNr X3ZhbHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKLS0JCQkJaW50IGVtYmVkZGVkX29mZnNldCwgaW50IGZpZWxkbm8sCi0rCQkJCUxP TkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmllbGRubywKLSAJCQkJY29uc3Qgc3RydWN0IHZh bHVlICp2YWwsIExPTkdFU1QgKnJlc3VsdCk7Ci0gCi0gZXh0ZXJuIHZvaWQgdW5wYWNrX3ZhbHVl X2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAotIAkJCQkgICBpbnQgYml0cG9zLCBp bnQgYml0c2l6ZSwKLS0JCQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRl ZF9vZmZzZXQsCi0rCQkJCSAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotKwkJCQkgICBMT05H RVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwot IAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZpZWxkX2JpdGZpZWxkIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgaW50IGZpZWxkbm8sCi0gCQkJCQkgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwK LS0JCQkJCSAgIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJCQkgICBMT05HRVNUIGVtYmVkZGVk X29mZnNldCwKLSAJCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSAKLSBleHRlcm4g dm9pZCBwYWNrX2xvbmcgKGdkYl9ieXRlICpidWYsIHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNU IG51bSk7Ci1AQCAtNjgzLDEyICs2ODUsMTIgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZGVmYXVs dF9yZWFkX3Zhcl92YQotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3ZhbHVlIChz dHJ1Y3QgdHlwZSAqdHlwZSk7Ci0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfdmFsdWVf bGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpOwotLWV4dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2Nv cHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBpbnQgZHN0X29mZnNldCwKLS0JCQkJIHN0cnVjdCB2YWx1 ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwKLS0JCQkJIGludCBsZW5ndGgpOwotLWV4dGVybiB2b2lk IHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZz ZXQsCi0tCQkJCSAgICAgc3RydWN0IHZhbHVlICpzcmMsIGludCBzcmNfb2Zmc2V0LAotLQkJCQkg ICAgIGludCBsZW5ndGgpOwotK2V4dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVj dCB2YWx1ZSAqZHN0LCBzc2l6ZV90IGRzdF9vZmZzZXQsCi0rCQkJCSBzdHJ1Y3QgdmFsdWUgKnNy Yywgc3NpemVfdCBzcmNfb2Zmc2V0LAotKwkJCQkgc3NpemVfdCBsZW5ndGgpOwotK2V4dGVybiB2 b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBk c3Rfb2Zmc2V0LAotKwkJCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBzc2l6ZV90IHNyY19vZmZz ZXQsCi0rCQkJCSAgICAgc3NpemVfdCBsZW5ndGgpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUg KmFsbG9jYXRlX3JlcGVhdF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBjb3VudCk7Ci0g Ci1AQCAtNzY2LDE2ICs3NjgsMTYgQEAgZXh0ZXJuIGludCBmaW5kX292ZXJsb2FkX21hdGNoIChz dHJ1Y3QgdgotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKmFyZzEsIGludCBmaWVsZG5vKTsKLSAKLS1leHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9w cmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKLStleHRlcm4g c3RydWN0IHZhbHVlICp2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwg TE9OR0VTVCBvZmZzZXQsCitAQCAtNzcxLDEyICs3NzIsMTEgQEAKICAJCQkJCSAgICBpbnQgZmll bGRubywKICAJCQkJCSAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpOwogIAotIAotLWV4dGVybiBz dHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKiwgaW50 ICosIGludCAqLAotK2V4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBl IChzdHJ1Y3QgdmFsdWUgKiwgaW50ICosIExPTkdFU1QgKiwKKy0KKyBleHRlcm4gc3RydWN0IHR5 cGUgKnZhbHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICosIGludCAqLCBMT05H RVNUICosCiAgCQkJCQkgICAgICBpbnQgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFs dWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdHlwZSAqLCBpbnQsCkBAIC00 MjcyLDQ0ICszMjYxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5o CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfY2FzdF9wb2ludGVycyAoc3RydWN0IHR5 cGUgKiwgc3RydWN0IHZhbHVlICosIGludCk7CiAgCi1AQCAtODcwLDcgKzg3Miw3IEBAIGV4dGVy biB2b2lkIHNldF9pbnRlcm5hbHZhcl9zdHJpbmcgKHN0cnUKLSBleHRlcm4gdm9pZCBjbGVhcl9p bnRlcm5hbHZhciAoc3RydWN0IGludGVybmFsdmFyICp2YXIpOwotIAotIGV4dGVybiB2b2lkIHNl dF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLAotLQkJCQkg ICAgICAgaW50IG9mZnNldCwKLSsJCQkJICAgICAgIExPTkdFU1Qgb2Zmc2V0LAotIAkJCQkgICAg ICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0gCQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKm5l d3ZhbHVlKTsKLSAKLUBAIC05NTEsNyArOTUzLDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFs dWVfeF91bm9wIChzdHJ1YwotIAkJCQkgICBlbnVtIG5vc2lkZSBub3NpZGUpOwotIAotIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3Ry dWN0IGZuX2ZpZWxkICpmLAotLQkJCQkgICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IG9mZnNldCk7Ci0rCQkJCSAgICAgaW50IGosIHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIG9m ZnNldCk7Ci0gCi0gZXh0ZXJuIGludCBiaW5vcF90eXBlc191c2VyX2RlZmluZWRfcCAoZW51bSBl eHBfb3Bjb2RlIG9wLAotIAkJCQkgICAgICAgc3RydWN0IHR5cGUgKnR5cGUxLAotQEAgLTk3OSw3 ICs5ODEsOCBAQCBleHRlcm4gdm9pZCByZWxlYXNlX3ZhbHVlX29yX2luY3JlZiAoc3RyCi0gZXh0 ZXJuIGludCByZWNvcmRfbGF0ZXN0X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbCk7Ci0gCi0gZXh0 ZXJuIHZvaWQgbW9kaWZ5X2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZ2RiX2J5dGUgKmFkZHIs Ci0tCQkJICBMT05HRVNUIGZpZWxkdmFsLCBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSk7Ci0rCQkJ ICBMT05HRVNUIGZpZWxkdmFsLCBMT05HRVNUIGJpdHBvcywKLSsJCQkgIGludCBiaXRzaXplKTsK LSAKLSBleHRlcm4gdm9pZCB0eXBlX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgY2hh ciAqdmFyc3RyaW5nLAotIAkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBzaG93KTsKLUBA IC0xMDA5LDcgKzEwMTIsNyBAQCBleHRlcm4gdm9pZCB2YWx1ZV9wcmludF9hcnJheV9lbGVtZW50 cyAoCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcmVsZWFzZV90b19tYXJrIChzdHJ1Y3Qg dmFsdWUgKm1hcmspOwotIAotIGV4dGVybiB2b2lkIHZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICAgICAgIGludCBlbWJlZGRlZF9vZmZz ZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJICAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0 LCBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgcmVjdXJzZSwKLSAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0xMDYyLDEw ICsxMDY1LDExIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2xpdGVyYWxfY29tcGwKK0BA IC0xMDY1LDEwICsxMDY1LDExIEBACiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZmluZF9mdW5jdGlv bl9pbl9pbmZlcmlvciAoY29uc3QgY2hhciAqLAogIAkJCQkJCXN0cnVjdCBvYmpmaWxlICoqKTsK ICAKQEAgLTQzMjMsMTEgKzMyNzUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi92YWx1ZS5oCiAgCiAgLyogVXNlciBmdW5jdGlvbiBoYW5kbGVyLiAgKi8KICAKLUluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvczM5MC1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIz OjExLjI1MDM1MTkwNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zMzkwLWxp bnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQyMzY1MDEwICswMTAwCi1AQCAtNjEyLDcg KzYxMiw3IEBAIHMzOTBfY2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1Y3QgdGFyZ2UKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Mz OTAtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTA1MzAyMTMgKzAyMDAKK0BAIC02 MTIsNyArNjEyLDcgQEAKICAKICBzdGF0aWMgaW50CiAgczM5MF9yZWdpb25fb2tfZm9yX2h3X3dh dGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDMzNiwzNyArMzI4OCwxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3MzOTAtbGludXgtbmF0LmMKICB7CiAg ICByZXR1cm4gMTsKICB9Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V4dGVuc2lv bi1wcml2LmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9l eHRlbnNpb24tcHJpdi5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUwMzUxOTA0ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0xMS0wMiAyMToy MzoxMy4yNDIzNjUwMTAgKzAxMDAKLUBAIC0xODEsNyArMTgxLDcgQEAgc3RydWN0IGV4dGVuc2lv bl9sYW5ndWFnZV9vcHMKLSAgIGVudW0gZXh0X2xhbmdfcmMgKCphcHBseV92YWxfcHJldHR5X3By aW50ZXIpCi0gICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKiwKLSAg ICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0gICAgIGlu dCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKyAgICAgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCi0gICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi0gICAgICBjb25zdCBzdHJ1Y3Qg bGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9weXRob24vcHl0aG9uLWludGVybmFsLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEu MjUwMzUxOTA0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3B5dGhvbi9weXRo b24taW50ZXJuYWwuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MjM2NTAxMCArMDEwMAotQEAgLTMx Niw3ICszMTYsNyBAQCBleHRlcm4gaW50IGdkYnB5X2F1dG9fbG9hZF9lbmFibGVkIChjb25zCi0g ZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMgZ2RicHlfYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyCi0g ICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCi0gICAgc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLSAgIGludCBlbWJlZGRlZF9vZmZz ZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKyAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JF X0FERFIgYWRkcmVzcywKLSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwK LSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFy Z2V0LWRlbGVnYXRlcy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUyMzUxOTE3ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjI0MzM2NTAxNyArMDEwMAotQEAgLTczNiwxNCArNzM2LDE0IEBAIGRl YnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnUKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4x MjE1MTA2NjQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LWRlbGVn YXRlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUwNTMwMjEzICswMjAwCitAQCAtNzM2LDE0ICs3 MzYsMTQgQEAKICB9CiAgCiAgc3RhdGljIGludApAQCAtNDM4Myw3ICszMzA5LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQg cmVzdWx0OwogICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3Jl Z2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0 bmFtZSk7Ci1AQCAtNzUzLDcgKzc1Myw3IEBAIGRlYnVnX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hw b2ludCAoc3RydWMKK0BAIC03NTMsNyArNzUzLDcgQEAKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIs ICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMSk7 CiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKQEAgLTQzOTIsMTEgKzMz MTgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQtZGVsZWdhdGVz LmMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIpID0gIiwgZ2RiX3N0ZGxvZyk7CiAgICB0YXJnZXRf ZGVidWdfcHJpbnRfaW50IChyZXN1bHQpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIlxuIiwgZ2Ri X3N0ZGxvZyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FhcmNoNjQtbGludXgt bmF0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWFyY2g2NC1saW51eC1uYXQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2FhcmNoNjQt bGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTIzNTE5MTcgKzAxMDAKLSsrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIz OjEzLjI0MzM2NTAxNyArMDEwMAotQEAgLTczNiw3ICs3MzYsNyBAQCBhYXJjaDY0X2xpbnV4X3Jl bW92ZV93YXRjaHBvaW50IChzdHJ1Y3QKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41NTE1MzAyMjEgKzAyMDAKK0BAIC03MzYsNyArNzM2LDcgQEAKICAKICBz dGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0 cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDQwNSwxMSArMzMzMSwxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4g YWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKGFkZHIsIGxlbik7CiAgfQot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdzLmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjUyMzUxOTE3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL25h dC94ODYtZHJlZ3MuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTM4 NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hwb2ludCAoc3RydWN0IHg4Cist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L25hdC94ODYtZHJlZ3MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIwMAorQEAg LTM4NCw3ICszODQsNyBAQAogIAogIHN0YXRpYyBpbnQKICB4ODZfaGFuZGxlX25vbmFsaWduZWRf d2F0Y2hwb2ludCAoc3RydWN0IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLApAQCAtNDQxOCw3 ICszMzQ0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdz LmMKICAJCQkJICBlbnVtIHRhcmdldF9od19icF90eXBlIHR5cGUpCiAgewogICAgaW50IHJldHZh bCA9IDA7Ci1AQCAtNTUyLDcgKzU1Miw3IEBAIHg4Nl9kcl9yZW1vdmVfd2F0Y2hwb2ludCAoc3Ry dWN0IHg4Nl9kZWIKK0BAIC01NTIsNyArNTUyLDcgQEAKICAKICBpbnQKICB4ODZfZHJfcmVnaW9u X29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCkBA IC00NDI3LDExICszMzUzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0 L3g4Ni1kcmVncy5jCiAgewogICAgaW50IG5yZWdzOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9y dC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE1LTExLTAyIDIxOjIz OjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTI5OSwxMSArMjk5LDExIEBAIGdlbmVyYXRlX3JlZ2lz dGVyX3N0cnVjdCAoc3RydWN0IHVpX2ZpbGUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjI1 MTA2NzIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY29tcGlsZS9jb21waWxl LWMtc3VwcG9ydC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIxICswMjAwCitAQCAtMjk5 LDExICsyOTksMTEgQEAKICAKICAJICAgICAgZGVmYXVsdDoKICAJCWZwcmludGZfdW5maWx0ZXJl ZCAoc3RyZWFtLApAQCAtNDQ0NSwxMSArMzM3MSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwogIAkgICAgICB9CiAgCSAgICBm cHV0c191bmZpbHRlcmVkICgiO1xuIiwgc3RyZWFtKTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL25hdC94ODYtZHJlZ3MuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI1MzM1MTkyMyAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0x MS0wMiAyMToyMzoxMy4yNDQzNjUwMjQgKzAxMDAKLUBAIC0xMTYsNyArMTE2LDcgQEAgZXh0ZXJu IGludCB4ODZfZHJfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cgorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMjUxMDY3 MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAx Ni0wNy0xNiAxNDozMzo0NC41NTE1MzAyMjEgKzAyMDAKK0BAIC0xMTYsNyArMTE2LDcgQEAKICAv KiBSZXR1cm4gbm9uLXplcm8gaWYgd2UgY2FuIHdhdGNoIGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHN0 YXJ0cyBhdAogICAgIGFkZHJlc3MgQUREUiBhbmQgd2hvc2UgbGVuZ3RoIGlzIExFTiBieXRlcy4g ICovCiAgZXh0ZXJuIGludCB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3Qg eDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCkBAIC00NDU4LDExICszMzg0LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCiAgCiAgLyogSWYgdGhl IGluZmVyaW9yIGhhcyBzb21lIGJyZWFrL3dhdGNocG9pbnQgdGhhdCB0cmlnZ2VyZWQsIHNldCB0 aGUKICAgICBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGJyZWFrL3dhdGNocG9pbnQgYW5k IHJldHVybiB0cnVlLgotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi94ODYtbmF0LmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveDg2LW5hdC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIveDg2LW5hdC5jCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjUzMzUxOTIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3g4Ni1u YXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTE3NCw3ICsxNzQs NyBAQCB4ODZfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzCistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIveDg2LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIz NTEwNjgwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3g4Ni1uYXQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIwMAorQEAgLTE3NCw3ICsxNzQsNyBAQAogIAog IHN0YXRpYyBpbnQKICB4ODZfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0 X29wcyAqc2VsZiwKQEAgLTQ0NzEsMjkgKzMzOTcsMjUgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi94ODYtbmF0LmMKICB7CiAgICBzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAq c3RhdGUKICAgICAgPSB4ODZfZGVidWdfcmVnX3N0YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9y X3B0aWQpKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ3VpbGUvZ3VpbGUtaW50 ZXJuYWwuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2d1 aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTMzNTE5MjMgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAkyMDE1 LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTYwNiw3ICs2MDYsNyBAQCBleHRl cm4gdm9pZCBnZGJzY21fcHJlc2VydmVfdmFsdWVzCi0gZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMg Z2Ric2NtX2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlcgotICAgKGNvbnN0IHN0cnVjdCBleHRlbnNp b25fbGFuZ3VhZ2VfZGVmbiAqLAotICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKLS0gICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywK LSsgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gICAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVl ICp2YWwsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ydXN0LWxhbmcuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQu YwkyMDE1LTExLTAyIDIxOjIzOjExLjI1NDM1MTkzMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9ndWlsZS9zY20tcHJldHR5LXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4y NDUzNjUwMzAgKzAxMDAKLUBAIC05NTgsNyArOTU4LDcgQEAgcHBzY21fcHJpbnRfY2hpbGRyZW4g KFNDTSBwcmludGVyLCBlbnVtCi0gZW51bSBleHRfbGFuZ19yYwotIGdkYnNjbV9hcHBseV92YWxf cHJldHR5X3ByaW50ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0 bGFuZywKLSAJCQkJIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwK LS0JCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJCQkgTE9O R0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotIAkJCQkgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwKLSAJCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3J1c3QtbGFuZy5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMTIzNTEwNjgwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3J1c3Qt bGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIxICswMjAwCitAQCAtNDEwLDcgKzQx MCw3IEBACisgCisgc3RhdGljIHZvaWQKKyBydXN0X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0JICAgICAgIGNvbnN0IGdkYl9ieXRlICpzdHJp bmcsIHVuc2lnbmVkIGludCBsZW5ndGgsCisrCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5n LCBVTE9OR0VTVCBsZW5ndGgsCisgCSAgICAgICBjb25zdCBjaGFyICp1c2VyX2VuY29kaW5nLCBp bnQgZm9yY2VfZWxsaXBzZXMsCisgCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKKyB7CitAQCAtNDU2LDcgKzQ1Niw3IEBACisgLyogbGFfdmFsX3ByaW50 IGltcGxlbWVudGF0aW9uIGZvciBSdXN0LiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorLXJ1c3RfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBl bWJlZGRlZF9vZmZzZXQsCisrcnVzdF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQlDT1JFX0FE RFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQljb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0 Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCmluZGV4IDFmNmQyMzcuLjg1 NzYwZGIgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKKysr IGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaApAQCAtMTM3LDEwICsxMzcsMTAg QEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy10 ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYWxwaGEtdGRlcC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE2LTAx LTA4IDE5OjE2OjE2LjU5MjgxMzk5MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9hbHBoYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMDg4MzQ3MTcgKzAxMDAKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0NS4zOTA1MDI3MTggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWxwaGEt dGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTExNTE5Nzg4ICswMjAwCiBAQCAtMjk5LDE3ICsy OTksMTcgQEAKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC0xODMsMTEgKzE4MywxMSBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2FscGhhLXRkZXAuYwogIAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVm ZmVyICsgb2Zmc2V0LCBjb250ZW50cywgdGxlbik7CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwog IAkgICAgICBjb250ZW50cyArPSB0bGVuOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9hbWQ2NC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW1kNjQtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvYW1kNjQt dGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNTk0ODE0MDAxICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMwOTgzNDcy MyArMDEwMAotQEAgLTY5OSw3ICs2OTksNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjM5MTUwMjcyNiArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0Ny41MTI1MTk3OTYgKzAyMDAKK0BAIC03MjksNyArNzI5LDcgQEAKICAJCSAgICBnZGJfYnl0 ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsKICAgIGVudW0gYW1kNjRf cmVnX2NsYXNzIHRoZWNsYXNzWzJdOwpAQCAtMTk2LDcgKzE5Niw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtdGRlcC5jCiAgICBzdGF0aWMgaW50IGludGVnZXJfcmVn bnVtW10gPSB7IEFNRDY0X1JBWF9SRUdOVU0sIEFNRDY0X1JEWF9SRUdOVU0gfTsKICAgIHN0YXRp YyBpbnQgc3NlX3JlZ251bVtdID0geyBBTUQ2NF9YTU0wX1JFR05VTSwgQU1ENjRfWE1NMV9SRUdO VU0gfTsKICAgIGludCBpbnRlZ2VyX3JlZyA9IDA7Ci1AQCAtODUwLDggKzg1MCw4IEBACitAQCAt ODgwLDggKzg4MCw4IEBACiAgICB9OwogICAgc3RydWN0IHZhbHVlICoqc3RhY2tfYXJncyA9IFhB TExPQ0FWRUMgKHN0cnVjdCB2YWx1ZSAqLCBuYXJncyk7CiAgICBpbnQgbnVtX3N0YWNrX2FyZ3Mg PSAwOwpAQCAtMjA3LDcgKzIwNyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv YW1kNjQtdGRlcC5jCiAgICBpbnQgaW50ZWdlcl9yZWcgPSAwOwogICAgaW50IHNzZV9yZWcgPSAw OwogICAgaW50IGk7Ci1AQCAtODYzLDcgKzg2Myw3IEBACitAQCAtODkzLDcgKzg5Myw3IEBACiAg ICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBl ICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0yMTYsMTAgKzIxNiwxMCBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRkZXAuYwogICAgICAgIGVudW0gYW1k NjRfcmVnX2NsYXNzIHRoZWNsYXNzWzJdOwogICAgICAgIGludCBuZWVkZWRfaW50ZWdlcl9yZWdz ID0gMDsKICAgICAgICBpbnQgbmVlZGVkX3NzZV9yZWdzID0gMDsKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE2MDEwNi5vcmlnL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjE2LjU5NTgxNDAwNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbWQ2 NC13aW5kb3dzLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxMDgzNDcyOCArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTYt MDctMTYgMTQ6MzU6NDUuMzkzNTAyNzQyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTEyNTE5Nzk2ICsw MjAwCiBAQCAtMjg4LDcgKzI4OCw3IEBACiAgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3Qg Z2RiX2J5dGUgKndyaXRlYnVmKQpAQCAtMjI5LDExICsyMjksMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwogICAgaW50IHJlZ251bSA9IC0x OwogIAogICAgLyogU2VlIGlmIG91ciB2YWx1ZSBpcyByZXR1cm5lZCB0aHJvdWdoIGEgcmVnaXN0 ZXIuICBJZiBpdCBpcywgdGhlbgotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0t dGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTYt MDEtMDggMTk6MTY6MTYuNjAzODE0MDUxICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2FybS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNzowNS43MzcwODgxMDcgKzAxMDAKLUBAIC0z MzQwLDcgKzMzNDAsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FybS10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDA1MDI3OTggKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYXJtLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM2OjMwLjMyODg2NDM3NiAr MDIwMAorQEAgLTM0NDMsNyArMzQ0Myw3IEBACiAgICAgYXJyYXkpLiAgVmVjdG9yIHR5cGVzIGFy ZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCwgbWF0Y2hpbmcgdGhlCiAgICAgZ2VuZXJpYyBBQVBD UyBzdXBwb3J0LiAgKi8KICAKQEAgLTI0Miw3ICsyNDIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3Ry dWN0IHR5cGUgKnQsCiAgCQkJICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSAqYmFzZV90 eXBlKQogIHsKLUBAIC0zNDIzLDcgKzM0MjMsNyBAQAorQEAgLTM1MjYsNyArMzUyNiw3IEBACiAg CSAgfQogIAllbHNlCiAgCSAgewpAQCAtMjUxLDcgKzI1MSw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvYXJtLXRkZXAuYwogIAkgICAgdW5zaWduZWQgdW5pdGxlbjsKICAKICAJ ICAgIGNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfVEFSR0VUX1RZUEUg KHQpLAotQEAgLTM0NDYsMTMgKzM0NDYsMTUgQEAKK0BAIC0zNTQ5LDEyICszNTQ5LDEyIEBACiAg CiAgICAgIGNhc2UgVFlQRV9DT0RFX1NUUlVDVDoKICAgICAgICB7CkBAIC0yNjEsMTYgKzI2MSwx MiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAJaW50IGk7 CiAgCWZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHQpOyBpKyspCiAgCSAgewotLQkgICAg aW50IHN1Yl9jb3VudCA9IGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChUWVBFX0ZJRUxEX1RZ UEUgKHQsIGkpLAotLQkJCQkJCQliYXNlX3R5cGUpOwotKwkgICAgTE9OR0VTVCBzdWJfY291bnQ7 Ci0rCi0rCSAgICBzdWJfY291bnQgPSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9G SUVMRF9UWVBFICh0LCBpKSwKLSsJCQkJCQkgICAgYmFzZV90eXBlKTsKLSAJICAgIGlmIChzdWJf Y291bnQgPT0gLTEpCi0gCSAgICAgIHJldHVybiAtMTsKLSAJICAgIGNvdW50ICs9IHN1Yl9jb3Vu dDsKLUBAIC0zNDcyLDEzICszNDc0LDE1IEBACistCSAgICBpbnQgc3ViX2NvdW50ID0gMDsKKysJ ICAgIExPTkdFU1Qgc3ViX2NvdW50ID0gMDsKKyAKKyAJICAgIGlmICghZmllbGRfaXNfc3RhdGlj ICgmVFlQRV9GSUVMRCAodCwgaSkpKQorIAkgICAgICBzdWJfY291bnQgPSBhcm1fdmZwX2NwcmNf c3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwKK0BAIC0zNTc4LDEzICszNTc4 LDE1IEBACiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9OOgogICAgICAgIHsKQEAgLTI4OSw3 ICsyODUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAJ ICAgIGlmIChzdWJfY291bnQgPT0gLTEpCiAgCSAgICAgIHJldHVybiAtMTsKICAJICAgIGNvdW50 ID0gKGNvdW50ID4gc3ViX2NvdW50ID8gY291bnQgOiBzdWJfY291bnQpOwotQEAgLTM1MTQsNyAr MzUxOCw3IEBACitAQCAtMzYyMCw3ICszNjIyLDcgQEAKICAJCQlpbnQgKmNvdW50KQogIHsKICAg IGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSBiID0gVkZQX0NQUkNfVU5LTk9XTjsKQEAgLTI5 OCw3ICsyOTQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMK ICAgIGlmIChjIDw9IDAgfHwgYyA+IDQpCiAgICAgIHJldHVybiAwOwogICAgKmJhc2VfdHlwZSA9 IGI7Ci1AQCAtMzU5NSw3ICszNTk5LDcgQEAKK0BAIC0zNzAxLDcgKzM3MDMsNyBAQAogIAogICAg Zm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAgLTMw NywxMSArMzAzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXJtLXRkZXAu YwogICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdGFy Z2V0X3R5cGU7CiAgICAgICAgZW51bSB0eXBlX2NvZGUgdHlwZWNvZGU7Ci1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2F2ci10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvYXZyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL2F2ci10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDQ4MTQwNTcgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXZyLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIw LjMxNDgzNDc1MCArMDEwMAotQEAgLTExOTYsMTMgKzExOTYsMTMgQEAKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAxNTAy ODA2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2ci10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0Ny41MTY1MTk4MjggKzAyMDAKK0BAIC0xMTk1LDEzICsxMTk1LDEzIEBACiAg CiAgc3RydWN0IHN0YWNrX2l0ZW0KICB7CkBAIC0zMjcsNyArMzIzLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9hdnItdGRlcC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0g KnNpOwogICAgc2kgPSBYTkVXIChzdHJ1Y3Qgc3RhY2tfaXRlbSk7Ci1AQCAtMTI5MSwxMiArMTI5 MSwxMiBAQAorQEAgLTEyODksMTIgKzEyODksMTIgQEAKICAKICAgIGZvciAoaSA9IDA7IGkgPCBu YXJnczsgaSsrKQogICAgICB7CkBAIC0zNDEsMjIgKzMzNywyMiBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2F2ci10ZGVwLmMKIC0gICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEgg KHR5cGUpOwogKyAgICAgIHNzaXplX3QgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogIAotICAg ICAgIC8qIENhbGN1bGF0ZSB0aGUgcG90ZW50aWFsIGxhc3QgcmVnaXN0ZXIgbmVlZGVkLiAgKi8K LSAgICAgICBsYXN0X3JlZ251bSA9IHJlZ251bSAtIChsZW4gKyAobGVuICYgMSkpOwotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9iZmluLXRkZXAuYworICAgICAgIC8qIENhbGN1bGF0 ZSB0aGUgcG90ZW50aWFsIGxhc3QgcmVnaXN0ZXIgbmVlZGVkLgorICAgICAgICAgIEUuZy4gRm9y IGxlbmd0aCAyLCByZWdpc3RlcnMgcmVnbnVtIGFuZCByZWdudW0tMSAoc2F5IDI1IGFuZCAyNCkK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYmZpbi10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE2LTAxLTA4 IDE5OjE2OjE2LjYwNTgxNDA2MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9i ZmluLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxNTgzNDc1NiArMDEwMAotQEAgLTUwNCw3 ICs1MDQsNyBAQAotICAgZ2RiX2J5dGUgYnVmWzRdOworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2JmaW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAxNTAyODA2ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JmaW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6 MzU6NDcuNTE2NTE5ODI4ICswMjAwCitAQCAtNTAyLDcgKzUwMiw3IEBACisgICBlbnVtIGJmZF9l bmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQg aTsKICAgIGxvbmcgcmVnX3IwLCByZWdfcjEsIHJlZ19yMjsKIC0gIGludCB0b3RhbF9sZW4gPSAw OwogKyAgc3NpemVfdCB0b3RhbF9sZW4gPSAwOwotICAgZW51bSBiZmluX2FiaSBhYmkgPSBiZmlu X2FiaSAoZ2RiYXJjaCk7Ci0gICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9h ZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgCi1AQCAtNTI4LDcgKzUyOCw3IEBACisgICBmb3IgKGkg PSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQorICAgICB7CitAQCAtNTI0LDcgKzUyNCw3IEBACiAg ICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlwZSA9IHZhbHVlX2VuY2xvc2luZ190 eXBlIChhcmdzW2ldKTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlKTsKQEAgLTM2NSwxMCArMzYxLDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvYmZpbi10ZGVwLmMKICAKICAgICAgICBzcCAtPSBjb250YWluZXJfbGVu OwogICAgICAgIHdyaXRlX21lbW9yeSAoc3AsIHZhbHVlX2NvbnRlbnRzIChhcmdzW2ldKSwgY29u dGFpbmVyX2xlbik7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NyaXMtdGRlcC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NyaXMtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoxNi42MDY4MTQwNjggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv Y3Jpcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMTY4MzQ3NjIgKzAxMDAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjQwMzUwMjgyMyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcmlzLXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNzUxOTgzNiArMDIwMAogQEAgLTY2MywxMyArNjYzLDEz IEBACiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KQEAgLTM4NSw3ICszODEsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NyaXMtdGRlcC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0 ZW0gKnNpID0gWE5FVyAoc3RydWN0IHN0YWNrX2l0ZW0pOwogICAgc2ktPmRhdGEgPSAoZ2RiX2J5 dGUgKikgeG1hbGxvYyAobGVuKTsKLUBAIC04NDEsMTMgKzg0MSwxMyBAQAorQEAgLTgzMywxMyAr ODMzLDEzIEBACiAgCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0r KykKICAgICAgewpAQCAtNDAzLDExICszOTksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9jcmlzLXRkZXAuYwogICAgICAgIAogICAgICAgIC8qIEhvdyBtYXkgcmVnaXN0ZXJz IHdvcnRoIG9mIHN0b3JhZ2UgZG8gd2UgbmVlZCBmb3IgdGhpcyBhcmd1bWVudD8gICovCiAgICAg ICAgcmVnX2RlbWFuZCA9IChsZW4gLyA0KSArIChsZW4gJSA0ICE9IDAgPyAxIDogMCk7Ci1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRkZXAuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9oODMwMC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE2MDEwNi5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDc4 MTQwNzMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaDgzMDAtdGRlcC5jCTIw MTYtMDEtMDggMTk6MTY6MjAuMzE2ODM0NzYyICswMTAwCi1AQCAtNjM5LDcgKzYzOSw3IEBACist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaDgzMDAtdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDUuNDAzNTAyODIzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2g4 MzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNzUxOTgzNiArMDIwMAorQEAgLTYzNyw3 ICs2MzcsNyBAQAogIAkJICAgICAgIGludCBzdHJ1Y3RfcmV0dXJuLCBDT1JFX0FERFIgc3RydWN0 X2FkZHIpCiAgewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVf b3JkZXIgKGdkYmFyY2gpOwpAQCAtNDE2LDcgKzQxMiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvaDgzMDAtdGRlcC5jCiAgICBpbnQgd29yZHNpemUgPSBCSU5XT1JEIChnZGJh cmNoKTsKICAgIGludCByZWcgPSBFX0FSRzBfUkVHTlVNOwogICAgaW50IGFyZ3VtZW50OwotQEAg LTY2NiwxMSArNjY2LDExIEBACitAQCAtNjY0LDExICs2NjQsMTEgQEAKICAgICAgewogICAgICAg IHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFs dWVfdHlwZSAoYXJnc1thcmd1bWVudF0pOwpAQCAtNDMwLDcgKzQyNiw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvaDgzMDAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUgKnBhZGRl ZCA9IChnZGJfYnl0ZSAqKSB4bWFsbG9jIChwYWRkZWRfbGVuKTsKICAgICAgICBiYWNrX3RvID0g bWFrZV9jbGVhbnVwICh4ZnJlZSwgcGFkZGVkKTsKICAKLUBAIC02OTksNyArNjk5LDcgQEAKK0BA IC02OTcsNyArNjk3LDcgQEAKICAJICAgICAgLyogSGVhdmVucyB0byBCZXRzeSAtLS0gaXQncyBy ZWFsbHkgZ29pbmcgaW4gcmVnaXN0ZXJzIQogIAkgICAgICAgICBOb3RlIHRoYXQgb24gdGhlIGg4 LzMwMHMsIHRoZXJlIGFyZSBnYXBzIGJldHdlZW4gdGhlCiAgCSAgICAgICAgIHJlZ2lzdGVycyBp biB0aGUgcmVnaXN0ZXIgZmlsZS4gICovCkBAIC00MzksMTEgKzQzNSwxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRkZXAuYwogIAogIAkgICAgICBmb3IgKG9mZnNl dCA9IDA7IG9mZnNldCA8IHBhZGRlZF9sZW47IG9mZnNldCArPSB3b3Jkc2l6ZSkKICAJCXsKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvaHBwYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE2MDEwNi5vcmlnL2dkYi9ocHBhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYwOTgx NDA4NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ocHBhLXRkZXAuYwkyMDE2 LTAxLTA4IDE5OjE2OjIwLjMxNzgzNDc2NyArMDEwMAotQEAgLTk5NSw3ICs5OTUsNyBAQAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2hwcGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6 MzU6NDUuNDA1NTAyODM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2hwcGEt dGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE4NTE5ODQ0ICswMjAwCitAQCAtOTkxLDcgKzk5 MSw3IEBACiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAg ICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmcpOwpAQCAtNDUyLDcgKzQ0OCw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMKICAgICAgICBj b25zdCBiZmRfYnl0ZSAqdmFsYnVmOwogICAgICAgIGJmZF9ieXRlIGZwdHJidWZbOF07CiAgICAg ICAgaW50IHJlZ251bTsKLUBAIC0xMTkwLDcgKzExOTAsNyBAQAorQEAgLTExODYsNyArMTE4Niw3 IEBACiAgCQkgICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hl LAogIAkJICAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQog IHsKQEAgLTQ2MSwxMCArNDU3LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv aHBwYS10ZGVwLmMKICAgIGludCByZWdudW0sIG9mZnNldDsKICAKICAgIGlmIChsZW4gPiAxNikK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjE2LjYwOTgxNDA4NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMTc4MzQ3Njcg KzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9pMzg2LWRhcndpbi10ZGVw LmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDU1MDI4MzkgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE4NTE5 ODQ0ICswMjAwCiBAQCAtMTYzLDcgKzE2Myw3IEBACiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAw OyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQpAQCAtNDc0LDExICs0NzAsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKICAgICAgICBp bnQgbnVtX20xMjggPSAwOwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9pMzg2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjE1ODE0MTE4ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtdGRlcC5jCTIwMTYtMDEtMDgg MTk6MTY6MjAuMzE5ODM0Nzc4ICswMTAwCi1AQCAtMjY2Myw3ICsyNjYzLDcgQEAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjQxMDUwMjg3OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUxOTg2MCArMDIwMAorQEAgLTI2NjQsNyArMjY2NCw3 IEBACiAgICBnZGJfYnl0ZSBidWZbNF07CiAgICBpbnQgaTsKICAgIGludCB3cml0ZV9wYXNzOwpA QCAtNDg3LDcgKzQ4Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10 ZGVwLmMKICAKICAgIC8qIERldGVybWluZSB0aGUgdG90YWwgc3BhY2UgcmVxdWlyZWQgZm9yIGFy Z3VtZW50cyBhbmQgc3RydWN0CiAgICAgICByZXR1cm4gYWRkcmVzcyBpbiBhIGZpcnN0IHBhc3Mg KGFsbG93aW5nIGZvciAxNi1ieXRlLWFsaWduZWQKLUBAIC0yNjcxLDcgKzI2NzEsNyBAQAorQEAg LTI2NzIsNyArMjY3Miw3IEBACiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNz IDwgMjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBAIC00OTYsNyArNDkyLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgICAgIGlmIChzdHJ1Y3Rf cmV0dXJuKQogIAl7Ci1AQCAtMjY4OCw3ICsyNjg4LDcgQEAKK0BAIC0yNjg5LDcgKzI2ODksNyBA QAogIAogICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogIAl7CkBAIC01MDUsNyAr NTAxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAog IAkgIGlmICh3cml0ZV9wYXNzKQogIAkgICAgewotQEAgLTI4OTUsNyArMjg5NSw3IEBACitAQCAt Mjg5Niw3ICsyODk2LDcgQEAKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2Ri YXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gdHlwZV9jb2RlIGNvZGUgPSBUWVBFX0NPREUg KHR5cGUpOwpAQCAtNTE0LDcgKzUxMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvaTM4Ni10ZGVwLmMKICAKICAgIGdkYl9hc3NlcnQgKGNvZGUgPT0gVFlQRV9DT0RFX1NUUlVD VAogICAgICAgICAgICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04KLUBAIC0zNjQxLDcg KzM2NDEsNyBAQAorQEAgLTM3MTgsNyArMzcxOCw3IEBACiAgaTM4Nl9jb252ZXJ0X3JlZ2lzdGVy X3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCSBpbnQgcmVnbnVtLCBzdHJ1Y3QgdHlw ZSAqdHlwZSkKICB7CkBAIC01MjMsNyArNTE5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgLyogVmFsdWVzIG1heSBiZSBzcHJlYWQgYWNyb3Nz IG11bHRpcGxlIHJlZ2lzdGVycy4gIE1vc3QgZGVidWdnaW5nCiAgICAgICBmb3JtYXRzIGFyZW4n dCBleHByZXNzaXZlIGVub3VnaCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbnMsIHNvCi1AQCAtMzY3 NCw3ICszNjc0LDcgQEAKK0BAIC0zNzUxLDcgKzM3NTEsNyBAQAogIAkJCWludCAqb3B0aW1pemVk cCwgaW50ICp1bmF2YWlsYWJsZXApCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwpAQCAtNTMyLDcgKzUyOCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9w IChnZGJhcmNoLCByZWdudW0pKQogICAgICByZXR1cm4gaTM4N19yZWdpc3Rlcl90b192YWx1ZSAo ZnJhbWUsIHJlZ251bSwgdHlwZSwgdG8sCi1AQCAtMzcxMCw3ICszNzEwLDcgQEAKK0BAIC0zNzg3 LDcgKzM3ODcsNyBAQAogIGkzODZfdmFsdWVfdG9fcmVnaXN0ZXIgKHN0cnVjdCBmcmFtZV9pbmZv ICpmcmFtZSwgaW50IHJlZ251bSwKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5 dGUgKmZyb20pCiAgewpAQCAtNTQxLDExICs1MzcsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgaWYgKGkzODZfZnBfcmVnbnVtX3AgKGdldF9m cmFtZV9hcmNoIChmcmFtZSksIHJlZ251bSkpCiAgICAgIHsKLUluZGV4OiBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvaXEyMDAwLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9pcTIwMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYxNjgxNDEyNCArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pcTIwMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6 MTY6MjAuMzIwODM0Nzg0ICswMTAwCi1AQCAtNjUxLDggKzY1MSw5IEBACistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQx MTUwMjg4NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pcTIwMDAtdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDcuNTIwNTE5ODYwICswMjAwCitAQCAtNjQ2LDggKzY0Niw5IEBA CiAgICBjb25zdCBiZmRfYnl0ZSAqdmFsOwogICAgYmZkX2J5dGUgYnVmWzRdOwogICAgc3RydWN0 IHR5cGUgKnR5cGU7CkBAIC01NTcsMTEgKzU1MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2lxMjAwMC10ZGVwLmMKICAgIC8qIFVzZWQgdG8gY29weSBzdHJ1Y3QgYXJndW1l bnRzIGludG8gdGhlIHN0YWNrLiAgKi8KICAgIENPUkVfQUREUiBzdHJ1Y3RfcHRyOwogIAotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tMzJyLXRkZXAuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9tMzJyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2Lm9yaWcvZ2RiL20zMnItdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjE2ODE0 MTI0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL20zMnItdGRlcC5jCTIwMTYt MDEtMDggMTk6MTY6MjAuMzIwODM0Nzg0ICswMTAwCi1AQCAtNjg3LDcgKzY4Nyw3IEBACistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0NS40MTE1MDI4ODcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTMyci10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKK0BAIC02ODUsNyArNjg1 LDcgQEAKICAgIENPUkVfQUREUiByZWd2YWw7CiAgICBnZGJfYnl0ZSAqdmFsOwogICAgZ2RiX2J5 dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsKQEAgLTU3MCwxMCArNTY2LDEwIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTMyci10ZGVwLmMKICAKICAgIC8qIEZpcnN0IGZv cmNlIHNwIHRvIGEgNC1ieXRlIGFsaWdubWVudC4gICovCiAgICBzcCA9IHNwICYgfjM7Ci1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL202OGstdGRlcC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL202OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNjAxMDYub3JpZy9nZGIvbTY4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MTc4MTQx MjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTY4ay10ZGVwLmMJMjAxNi0w MS0wOCAxOToxNjoyMC4zMjA4MzQ3ODQgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMjUwMjg5NSArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tNjhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ3LjUyMDUxOTg2MCArMDIwMAogQEAgLTM4Miw3ICszODIsNyBAQAogIHsKICAgIHN0cnVjdCBn ZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOwpAQCAtNTk2LDEwICs1 OTIsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tNjhrLXRkZXAuYwogIAog ICAgICAgIC8qIE5vbi1zY2FsYXJzIGJpZ2dlciB0aGFuIDQgYnl0ZXMgYXJlIGxlZnQgYWxpZ25l ZCwgb3RoZXJzIGFyZQogIAkgcmlnaHQgYWxpZ25lZC4gICovCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL204OGstdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L204OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9n ZGIvbTg4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MTc4MTQxMjkgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTg4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4z MjE4MzQ3OTAgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tODhrLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMjUwMjg5NSArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9tODhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMTUxOTg2OCAr MDIwMAogQEAgLTI1NywxMyArMjU3LDEzIEBACiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwpAQCAtNjI3LDEwICs2MjMsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tODhrLXRkZXAuYwogIAogICAgICAgIGlm IChtODhrX2luX3JlZ2lzdGVyX3AgKHR5cGUpKQogIAl7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL21lcC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVw LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL21l cC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MTg4MTQxMzUgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvbWVwLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyMTgzNDc5 MCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0NS40MTM1MDI5MDMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvbWVwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMTUxOTg2OCArMDIwMAogQEAg LTIyNzIsNyArMjI3Miw3IEBACiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKQpAQCAt NjQwLDEwICs2MzYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tZXAtdGRl cC5jCiAgCiAgICAgICAgaWYgKGFyZ19sZW4gPiBNRVBfR1BSX1NJWkUpCiAgICAgICAgICB7Ci1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvbWlwcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MjY4 MTQxNzkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMJMjAx Ni0wMS0wOCAxOToxNjoyMC4zMjQ4MzQ4MDYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyMTUwMjk2NyArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0 OjM1OjQ3LjUyMzUxOTg4NCArMDIwMAogQEAgLTQ1NSw3ICs0NTUsNyBAQAogIG1pcHNfeGZlcl9y ZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUsCiAgCQkgICAgaW50IHJlZ19udW0sIGludCBsZW5ndGgsCkBAIC02NjQsNyArNjYwLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwogICAgaWYgKG1pcHNf ZGVidWcgJiYgb3V0ICE9IE5VTEwpCiAgICAgIHsKICAgICAgICBpbnQgaTsKLUBAIC00NTU0LDEz ICs0NTU0LDEzIEBACitAQCAtNDUyOSwxMyArNDUyOSwxMyBAQAogICAgICAgIGdkYl9ieXRlIHZh bGJ1ZltNQVhfUkVHSVNURVJfU0laRV07CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdz W2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAoYXJnKSk7CkBAIC02ODEsNyArNjc3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwogIAogICAgICAgIC8qIFRoZSBFQUJJIHBhc3NlcyBz dHJ1Y3R1cmVzIHRoYXQgZG8gbm90IGZpdCBpbiBhIHJlZ2lzdGVyIGJ5CiAgICAgICAgICAgcmVm ZXJlbmNlLiAgKi8KLUBAIC00ODI5LDcgKzQ4MjksNyBAQAorQEAgLTQ4MDQsNyArNDgwNCw3IEBA CiAgCiAgc3RhdGljIGludAogIG1pcHNfbjMybjY0X2ZwX2FyZ19jaHVua19wIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKmFyZ190eXBlLApAQCAtNjkwLDcgKzY4Niw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICB7CiAgICBpbnQg aTsKICAKLUBAIC00ODQ0LDcgKzQ4NDQsNyBAQAorQEAgLTQ4MTksNyArNDgxOSw3IEBACiAgCiAg ICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERTIChhcmdfdHlwZSk7IGkrKykKICAgICAgewpA QCAtNjk5LDcgKzY5NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10 ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAKICAgICAgICAvKiBXZSdy ZSBvbmx5IGxvb2tpbmcgYXQgbm9ybWFsIGZpZWxkcy4gICovCi1AQCAtNDg4Niw3ICs0ODg2LDcg QEAKK0BAIC00ODYxLDcgKzQ4NjEsNyBAQAogICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9h cmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzA4LDcgKzcwNCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwog ICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFy Y2gpOwogICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rp b24sIE5VTEwpOwotQEAgLTUyMzcsMTEgKzUyMzcsMTEgQEAKK0BAIC01MjEyLDExICs1MjEyLDEx IEBACiAgCQkJCTogTUlQU19WMF9SRUdOVU0pOwogIAkgICBmaWVsZCA8IFRZUEVfTkZJRUxEUyAo dHlwZSk7IGZpZWxkKyssIHJlZ251bSArPSAyKQogIAl7CkBAIC03MjQsNyArNzIwLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwogIAkgIGlmIChUWVBFX0xF TkdUSCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZCkpID09IDE2KQogIAkgICAgewogIAkg ICAgICAvKiBBIDE2LWJ5dGUgbG9uZyBkb3VibGUgZmllbGQgZ29lcyBpbiB0d28gY29uc2VjdXRp dmUKLUBAIC01MjgzLDggKzUyODMsOCBAQAorQEAgLTUyNTgsOCArNTI1OCw4IEBACiAgCSAgaWYg KG9mZnNldCArIHhmZXIgPiBUWVBFX0xFTkdUSCAodHlwZSkpCiAgCSAgICB4ZmVyID0gVFlQRV9M RU5HVEggKHR5cGUpIC0gb2Zmc2V0OwogIAkgIGlmIChtaXBzX2RlYnVnKQpAQCAtNzM1LDcgKzcz MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAJICBt aXBzX3hmZXJfcmVnaXN0ZXIgKGdkYmFyY2gsIHJlZ2NhY2hlLAogIAkJCSAgICAgIGdkYmFyY2hf bnVtX3JlZ3MgKGdkYmFyY2gpICsgcmVnbnVtLAogIAkJCSAgICAgIHhmZXIsIEJGRF9FTkRJQU5f VU5LTk9XTiwgcmVhZGJ1Ziwgd3JpdGVidWYsCi1AQCAtNTM0Miw3ICs1MzQyLDcgQEAKK0BAIC01 MzE3LDcgKzUzMTcsNyBAQAogICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAg ICBpbnQgYXJnbnVtOwpAQCAtNzQ0LDcgKzc0MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgZW51bSBi ZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAg Q09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwp OwotQEAgLTU0MDYsMTMgKzU0MDYsMTMgQEAKK0BAIC01MzgxLDEzICs1MzgxLDEzIEBACiAgICAg ICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3Nb YXJnbnVtXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2 YWx1ZV90eXBlIChhcmcpKTsKQEAgLTc2MSw3ICs3NTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMg KGFyZyk7CiAgCi1AQCAtNTg3MCw4ICs1ODcwLDggQEAKK0BAIC01ODQyLDggKzU4NDIsOCBAQAog ICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAt NzcyLDcgKzc2OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVw LmMKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChn ZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1 bmN0aW9uLCBOVUxMKTsKICAKLUBAIC01OTMxLDEzICs1OTMxLDEzIEBACitAQCAtNTkwMywxMyAr NTkwMywxMyBAQAogICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZh bHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC03ODksMTEgKzc4NSwxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAgICAgdmFs ID0gdmFsdWVfY29udGVudHMgKGFyZyk7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL21uMTAzMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21uMTAz MDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIv bW4xMDMwMC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mjc4MTQxODUgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoy MC4zMjQ4MzQ4MDYgKzAxMDAKLUBAIC0xMjI3LDcgKzEyMjcsNyBAQAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDIy NTAyOTc2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21uMTAzMDAtdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICswMjAwCitAQCAtMTIyNSw3ICsxMjI1LDcg QEAKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChn ZGJhcmNoKTsKICAgIGNvbnN0IGludCBwdXNoX3NpemUgPSByZWdpc3Rlcl9zaXplIChnZGJhcmNo LCBFX1BDX1JFR05VTSk7CiAgICBpbnQgcmVnc191c2VkOwpAQCAtODAyLDExICs3OTgsMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tbjEwMzAwLXRkZXAuYwogICAgaW50IHN0 YWNrX29mZnNldCA9IDA7CiAgICBpbnQgYXJnbnVtOwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbXQtdGRlcC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL210LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2Lm9yaWcvZ2RiL210LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYyODgxNDE5 MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tdC10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoyMC4zMjQ4MzQ4MDYgKzAxMDAKLUBAIC03ODEsOSArNzgxLDkgQEAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tdC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40 MjM1MDI5ODQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbXQtdGRlcC5jCTIw MTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICswMjAwCitAQCAtNzgwLDkgKzc4MCw5IEBACiAg ICBnZGJfYnl0ZSBidWZbTVRfTUFYX1NUUlVDVF9TSVpFXTsKICAgIGludCBhcmdyZWcgPSBNVF8x U1RfQVJHUkVHOwogICAgaW50IHNwbGl0X3BhcmFtX2xlbiA9IDA7CkBAIC04MTgsMTAgKzgxNCwx MCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL210LXRkZXAuYwogICAgaW50IGks IGo7CiAgCiAgICAvKiBGaXJzdCBoYW5kbGUgaG93ZXZlciBtYW55IGFyZ3Mgd2UgY2FuIGZpdCBp bnRvIE1UXzFTVF9BUkdSRUcgdGhydQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9w cGMtc3lzdi10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLXN5c3Yt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvcHBj LXN5c3YtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjI5ODE0MTk2ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIw LjMyNTgzNDgxMiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3BwYy1z eXN2LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyNDUwMjk5MiArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41 MjQ1MTk4OTIgKzAyMDAKIEBAIC02Niw3ICs2Niw3IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgb3BlbmNsX2Fi aSA9IHBwY19zeXN2X3VzZV9vcGVuY2xfYWJpICh2YWx1ZV90eXBlIChmdW5jdGlvbikpOwpAQCAt ODY2LDEwICs4NjIsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9wcGMtc3lz di10ZGVwLmMKICAKICAgIC8qIEVuZm9yY2UgYWxpZ25tZW50IG9mIHN0YWNrIGxvY2F0aW9uLCBp ZiByZXF1ZXN0ZWQuICAqLwogICAgaWYgKGFsaWduID4gdGRlcC0+d29yZHNpemUpCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JsNzgtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3JsNzgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NjAxMDYub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mjk4MTQxOTYg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcmw3OC10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoyMC4zMjU4MzQ4MTIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9ybDc4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyNDUwMjk5MiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ybDc4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3 LjUyNTUxOTkwMCArMDIwMAogQEAgLTEzMzYsOCArMTMzNiw4IEBACiAgICBmb3IgKGkgPSBuYXJn cyAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7CkBAIC04ODEsMTAgKzg3NywxMCBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JsNzgtdGRlcC5jCiAgCiAgICAgICAgc3AgLT0gY29u dGFpbmVyX2xlbjsKICAgICAgICB3cml0ZV9tZW1vcnkgKHJsNzhfbWFrZV9kYXRhX2FkZHJlc3Mg KHNwKSwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9yczYwMDAtYWl4LXRkZXAu YwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzMDgxNDIwMiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyNjgzNDgx NyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3JzNjAwMC1haXgtdGRl cC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDI1NTAzMDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI1NTE5 OTAwICswMjAwCiBAQCAtMTg2LDkgKzE4Niw5IEBACiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAgLTg5Nyw3ICs4OTMsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiAgICBnZGJf Ynl0ZSB0bXBfYnVmZmVyWzUwXTsKICAgIGludCBmX2FyZ25vID0gMDsJCS8qIGN1cnJlbnQgZmxv YXRpbmcgcG9pbnQgYXJnbm8gKi8KICAgIGludCB3b3Jkc2l6ZSA9IGdkYmFyY2hfdGRlcCAoZ2Ri YXJjaCktPndvcmRzaXplOwotQEAgLTMyMSw3ICszMjEsNyBAQAorQEAgLTMxOSw3ICszMTksNyBA QAogIAogICAgaWYgKChhcmdubyA8IG5hcmdzKSB8fCBhcmdieXRlcykKICAgICAgewpAQCAtOTA2 LDExICs5MDIsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9yczYwMDAtYWl4 LXRkZXAuYwogIAogICAgICAgIGlmIChhcmdieXRlcykKICAJewotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTYwMTA2Lm9yaWcvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjMy ODE0MjEzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3MzOTAtbGludXgtdGRl cC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI4ODM0ODI5ICswMTAwCi1AQCAtMjk4MSw3ICsyOTgx LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyNzUwMzAxNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNjUxOTkw OCArMDIwMAorQEAgLTMxMjUsNyArMzEyNSw3IEBACiAgLyogRGV0ZXJtaW5lIHdoZXRoZXIgTiBp cyBhIHBvd2VyIG9mIHR3by4gICovCiAgCiAgc3RhdGljIGludApAQCAtOTE5LDcgKzkxNSw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvczM5MC1saW51eC10ZGVwLmMKICB7CiAg ICByZXR1cm4gbiAmJiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKICB9Ci1AQCAtMzAzOCw3ICszMDM4 LDcgQEAKK0BAIC0zMTgyLDcgKzMxODIsNyBAQAogIAkJIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyLCBpbnQgaXNfdW5uYW1lZCkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtOTI4LDEwICs5MjQsMTAgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwogICAgaW50IHdyaXRlX21v ZGUgPSBhcy0+cmVnY2FjaGUgIT0gTlVMTDsKICAKICAgIGlmIChzMzkwX2Z1bmN0aW9uX2FyZ19m bG9hdCAodHlwZSkpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Njb3JlLXRkZXAu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zY29yZS10ZGVwLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9zY29yZS10ZGVwLmMJMjAxNi0w MS0wOCAxOToxNjoxNi42MzM4MTQyMTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvc2NvcmUtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI4ODM0ODI5ICswMTAwCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTYtMDctMTYgMTQ6 MzU6NDUuNDI4NTAzMDI0ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Njb3Jl LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNzUxOTkxNiArMDIwMAogQEAgLTUxNCw3ICs1 MTQsNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3Jk ZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ251bTsKQEAgLTk0MSwxMCArOTM3LDEwIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2NvcmUtdGRlcC5jCiAgICBDT1JFX0FERFIgc3Rh Y2tfb2Zmc2V0ID0gMDsKICAgIENPUkVfQUREUiBhZGRyID0gMDsKICAKLUluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvc2gtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcv Z2RiL3NoLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzNTgxNDIzMCArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjk4 MzQ4MzQgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zaC10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0NS40Mjk1MDMwMzIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvc2gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI3NTE5OTE2ICswMjAwCiBA QCAtODA1LDcgKzgwNSw3IEBACiAgc3RhdGljIGludAogIHNoX3VzZV9zdHJ1Y3RfY29udmVudGlv biAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKQEAgLTk4MywyMCArOTc5LDIw IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2gtdGRlcC5jCiAgICBpbnQgcGFz c19vbl9zdGFjayA9IDA7CiAgICBpbnQgbGFzdF9yZWdfYXJnID0gSU5UX01BWDsKICAKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2g2NC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvc2g2NC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE2MDEwNi5vcmlnL2dkYi9zaDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzNTgxNDIz MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaDY0LXRkZXAuYwkyMDE2LTAx LTA4IDE5OjE2OjIwLjMyOTgzNDgzNCArMDEwMAotQEAgLTEwNTYsNyArMTA1Niw3IEBACistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc2g2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0NS40MzA1MDMwNDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2g2NC10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKK0BAIC0xMDYwLDcgKzEw NjAsNyBAQAogIAkJICAgICAgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKICAgIGVudW0gYmZk X2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKIC0gIGlu dCBzdGFja19vZmZzZXQsIHN0YWNrX2FsbG9jOwogKyAgTE9OR0VTVCBzdGFja19vZmZzZXQsIHN0 YWNrX2FsbG9jOwogICAgaW50IGludF9hcmdyZWc7Ci0gICBpbnQgZmxvYXRfYXJncmVnOwotICAg aW50IGRvdWJsZV9hcmdyZWc7Ci1AQCAtMTA2Nyw3ICsxMDY3LDcgQEAKKyAgIGludCBmbG9hdF9h cmdfaW5kZXggPSAwOworICAgaW50IGRvdWJsZV9hcmdfaW5kZXggPSAwOworQEAgLTEwNjksNyAr MTA2OSw3IEBACiAgICBDT1JFX0FERFIgcmVndmFsOwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsK ICAgIGdkYl9ieXRlIHZhbGJ1Zls4XTsKQEAgLTEwMDUsMTAgKzEwMDEsMTAgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaDY0LXRkZXAuYwogICAgaW50IGFyZ3JlZ19zaXplOwog ICAgaW50IGZwX2FyZ3NbMTJdOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9z cGFyYy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3BhcmMtdGRl cC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjM2ODE0MjM1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzMDgzNDg0MCAr MDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ1LjQzMTUwMzA0OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zcGFyYy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKIEBA IC01MjUsNyArNTI1LDcgQEAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7 CkBAIC0xMDE4LDEwICsxMDE0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv c3BhcmMtdGRlcC5jCiAgCiAgICAgICAgaWYgKHNwYXJjX3N0cnVjdHVyZV9vcl91bmlvbl9wICh0 eXBlKQogIAkgIHx8IChzcGFyY19mbG9hdGluZ19wICh0eXBlKSAmJiBsZW4gPT0gMTYpCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjNjQtdGRlcC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3NwYXJjNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjox Ni42Mzc4MTQyNDEgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3BhcmM2NC10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzA4MzQ4NDAgKzAxMDAKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQz MjUwMzA1NiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYzY0LXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyODUxOTkyNSArMDIwMAogQEAgLTYzNiw3ICs2MzYsOCBA QAogIAogIHN0YXRpYyB2b2lkCkBAIC0xMDc3LDEwICsxMDczLDEwIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvc3BhcmM2NC10ZGVwLmMKICAgICAgICBpbnQgcmVnbnVtID0gLTE7 CiAgICAgICAgZ2RiX2J5dGUgYnVmWzE2XTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvc3B1LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3B1LXRk ZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzODgxNDI0NiArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9zcHUtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzMxODM0ODQ1ICsw MTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3B1LXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ1LjQzMzUwMzA2NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9zcHUtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI5NTE5OTMyICswMjAwCiBAQCAtMTQy OSw3ICsxNDI5LDcgQEAKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAg ICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsK QEAgLTEwOTksMTEgKzEwOTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9z cHUtdGRlcC5jCiAgCSAgaW50IHByZWZlcnJlZF9zbG90OwogIAkgIAogIAkgIGlmIChzcHVfc2Nh bGFyX3ZhbHVlX3AgKHR5cGUpKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2 eC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGljNngtdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdGljNngtdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MTYuNjM5ODE0MjUyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzMjgzNDg1MSArMDEw MAotQEAgLTg5NSw3ICs4OTUsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L3RpYzZ4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMzUwMzA2NCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90aWM2eC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41 Mjk1MTk5MzIgKzAyMDAKK0BAIC04OTIsNyArODkyLDcgQEAKICAgIGludCBhcmdyZWcgPSAwOwog ICAgaW50IGFyZ251bTsKICAgIGludCBzdGFja19vZmZzZXQgPSA0OwpAQCAtMTExMiw3ICsxMTA4 LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2eC10ZGVwLmMKICAgIENP UkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsK ICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJh cmNoKTsKICAgIHN0cnVjdCB0eXBlICpmdW5jX3R5cGUgPSB2YWx1ZV90eXBlIChmdW5jdGlvbik7 Ci1AQCAtOTI5LDcgKzkyOSw3IEBACitAQCAtOTI2LDcgKzkyNiw3IEBACiAgICAvKiBOb3cgbWFr ZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRoZSBhcmdzLiAgKi8KICAgIGZvciAoYXJnbnVtID0g MDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQogICAgICB7CkBAIC0xMTIxLDcgKzExMTcsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRkZXAuYwogICAgICAgIGlm IChhcmdudW0gPj0gMTAgLSBhcmdyZWcpCiAgCXJlZmVyZW5jZXNfb2Zmc2V0ICs9IGxlbjsKICAg ICAgICBzdGFja19vZmZzZXQgKz0gbGVuOwotQEAgLTk0OCw3ICs5NDgsNyBAQAorQEAgLTk0NSw3 ICs5NDUsNyBAQAogICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZh bHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMTMwLDcgKzExMjYsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRkZXAuYwogICAgICAgIGVudW0g dHlwZV9jb2RlIHR5cGVjb2RlID0gVFlQRV9DT0RFIChhcmdfdHlwZSk7CiAgCiAgICAgICAgdmFs ID0gdmFsdWVfY29udGVudHMgKGFyZyk7Ci1AQCAtMTEwOCw3ICsxMTA4LDggQEAKK0BAIC0xMTA1 LDcgKzExMDUsOCBAQAogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIGludGVybmFsX2Vycm9yIChf X0ZJTEVfXywgX19MSU5FX18sCkBAIC0xMTQwLDIzICsxMTM2LDIzIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvdGljNngtdGRlcC5jCiAgCiAgCSAgYWRkciA9IHNwICsgc3RhY2tf b2Zmc2V0OwogIAkgIHdyaXRlX21lbW9yeSAoYWRkciwgdmFsLCBsZW4pOwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi90aWxlZ3gtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3RpbGVneC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2 MDEwNi5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjQwODE0MjU3 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNi0w MS0wOCAxOToxNjoyMC4zMzI4MzQ4NTEgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM0NTAzMDcyICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBAIC0yODgsNyArMjg4LDcgQEAKICAgIENPUkVfQURE UiBzdGFja19kZXN0ID0gc3A7CiAgICBpbnQgYXJncmVnID0gVElMRUdYX1IwX1JFR05VTTsKICAg IGludCBpLCBqOwotLSAgaW50IHR5cGVsZW4sIHNsYWNrbGVuLCBhbGlnbmxlbjsKLSsgIExPTkdF U1QgdHlwZWxlbiwgc2xhY2tsZW4sIGFsaWdubGVuOworLSAgaW50IHR5cGVsZW4sIHNsYWNrbGVu OworKyAgTE9OR0VTVCB0eXBlbGVuLCBzbGFja2xlbjsKICAgIHN0YXRpYyBjb25zdCBnZGJfYnl0 ZSBmb3VyX3plcm9fd29yZHNbMTZdID0geyAwIH07CiAgCiAgICAvKiBJZiBzdHJ1Y3RfcmV0dXJu IGlzIDEsIHRoZW4gdGhlIHN0cnVjdCByZXR1cm4gYWRkcmVzcyB3aWxsCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3Y4NTAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Y4NTAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42NDA4MTQyNTcgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoyMC4zMzI4MzQ4NTEgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92 ODUwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzNDUwMzA3MiArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi92ODUwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMDUx OTk0MSArMDIwMAogQEAgLTEwMTksNyArMTAxOSw3IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgYXJncmVnOwpA QCAtMTE3NSwxMCArMTE3MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Y4 NTAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBnZGJfYnl0ZSB2YWxidWZb djg1MF9yZWdfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZheC10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmF4LXRkZXAuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0w MS0wOCAxOToxNjoxNi42NDE4MTQyNjMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdmF4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzMzgzNDg1NiArMDEwMAorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0 NS40MzU1MDMwODAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmF4LXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMDUxOTk0MSArMDIwMAogQEAgLTExMSw3ICsxMTEsNyBA QAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2Fj aGUpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIg KGdkYmFyY2gpOwpAQCAtMTE5NywxMCArMTE5MywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3ZheC10ZGVwLmMKICAKICAgICAgICBzcCAtPSAobGVuICsgMykgJiB+MzsKICAg ICAgICBjb3VudCArPSAobGVuICsgMykgLyA0OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3hz dG9ybXkxNi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjQxODE0MjYzICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoyMC4zMzM4MzQ4NTYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM1NTAzMDgwICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBAIC0yMzMsOCArMjMzLDkgQEAKICAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAg IENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CkBAIC0xMjEzLDEwICsxMjA5LDEwIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIveHN0b3JteTE2LXRkZXAuYwogICAgY29uc3QgZ2Ri X2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIGJ1Zlt4c3Rvcm15MTZfcGNfc2l6ZV07CiAgCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3h0ZW5zYS10ZGVwLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42 NDM4MTQyNzQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIveHRlbnNhLXRkZXAu YwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzNDgzNDg2MiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mzc1MDMw OTYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ3LjUzMTUxOTk0OSArMDIwMAogQEAgLTE2MzgsOCArMTYzOCw3IEBACiAg CiAgICAgICAgaWYgKGxlbiA+IChjYWxsc2l6ZSA+IDggPyA4IDogMTYpKQoKZGlmZiAtLWdpdCBh L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRw b3MtMjVvZjI1LnBhdGNoCmluZGV4IDIwZGI5MTUuLmVmNWUwNDggMTAwNjQ0Ci0tLSBhL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9z LTI1b2YyNS5wYXRjaApAQCAtNDcsMTEgKzQ3LDExIEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBh dGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9u OiBhdHRhY2htZW50OyBmaWxlbmFtZT1mNzctYm91bmRzLnBhdGNoCiAKLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvZi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjI1OjE0LjIzMzE2MTA5NyArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjI1OjIyLjQwNDIxNDg2 MCArMDEwMAotQEAgLTYyLDkgKzYyLDkgQEAgc3RydWN0IGNvbW1vbl9ibG9jaworLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYgMTA6NTY6MTEuNjgy NzYyNzIyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2YtbGFuZy5oCTIwMTYt MDctMTYgMTA6NTY6MTUuNTU0NzkzNzA0ICswMjAwCitAQCAtNDksOSArNDksOSBAQAogICAgc3Ry dWN0IHN5bWJvbCAqY29udGVudHNbMV07CiAgfTsKICAKQEAgLTYzLDM4ICs2MywzOCBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5oCiAgCiAgZXh0ZXJuIHZvaWQgZjc3 X2dldF9keW5hbWljX2FycmF5X2xlbmd0aCAoc3RydWN0IHR5cGUgKik7CiAgCi1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvZi10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyNToxNC4yMzQxNjEx MDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1 LTExLTAyIDIxOjI1OjIyLjQwNDIxNDg2MCArMDEwMAotQEAgLTE3MSw3ICsxNzEsNyBAQCBmX3R5 cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA2MzAub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2OjExLjY4Mjc2Mjcy MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXR5cGVwcmludC5jCTIwMTYt MDctMTYgMTA6NTY6NDMuNzk1MDE5NjYwICswMjAwCitAQCAtMTQ3LDcgKzE0Nyw3IEBACiAgCQkJ ICAgICBpbnQgc2hvdywgaW50IHBhc3NlZF9hX3B0ciwgaW50IGRlbWFuZ2xlZF9hcmdzLAotIAkJ CSAgICAgaW50IGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCkKKyAJCQkgICAgIGludCBhcnJheXBy aW50X3JlY3Vyc2VfbGV2ZWwsIGludCBwcmludF9yYW5rX29ubHkpCiAgewogLSAgaW50IHVwcGVy X2JvdW5kLCBsb3dlcl9ib3VuZDsKICsgIExPTkdFU1QgdXBwZXJfYm91bmQsIGxvd2VyX2JvdW5k OwogIAogICAgLyogTm8gc3RhdGljIHZhcmlhYmxlcyBhcmUgcGVybWl0dGVkIGFzIGFuIGVycm9y IGNhbGwgbWF5IG9jY3VyIGR1cmluZwogICAgICAgZXhlY3V0aW9uIG9mIHRoaXMgZnVuY3Rpb24u ICAqLwotQEAgLTIwNCw3ICsyMDQsNyBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0 cnVjdCB0eXBlCi0gCi0gICAgICAgICAgIGxvd2VyX2JvdW5kID0gZjc3X2dldF9sb3dlcmJvdW5k ICh0eXBlKTsKLSAgICAgICAgICAgaWYgKGxvd2VyX2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVm YXVsdC4gICovCi0tICAgICAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQ6Iiwg bG93ZXJfYm91bmQpOwotKyAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVz OiIsIHBsb25nZXN0IChsb3dlcl9ib3VuZCkpOworQEAgLTE5NCw3ICsxOTQsNyBAQAorIAl7Cisg CSAgbG93ZXJfYm91bmQgPSBmNzdfZ2V0X2xvd2VyYm91bmQgKHR5cGUpOworIAkgIGlmIChsb3dl cl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLworLQkgICAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiJWQ6IiwgbG93ZXJfYm91bmQpOworKwkgICAgZnByaW50Zl9maWx0ZXJl ZCAoc3RyZWFtLCAiJXM6IiwgcGxvbmdlc3QgKGxvd2VyX2JvdW5kKSk7CiAgCi0gICAgICAgICAg IC8qIE1ha2Ugc3VyZSB0aGF0LCBpZiB3ZSBoYXZlIGFuIGFzc3VtZWQgc2l6ZSBhcnJheSwgd2UK LSAgICAgICAgICAgICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91 bmQgYXMgJyonLiAgKi8KLUBAIC0yMTQsNyArMjE0LDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNf c3VmZml4IChzdHJ1Y3QgdHlwZQotICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgdXBwZXJfYm91bmQgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHR5cGUpOwotLSAg ICAgICAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7 Ci0rICAgICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlcyIsIHBsb25nZXN0 ICh1cHBlcl9ib3VuZCkpOwotICAgICAgICAgICAgIH0KKyAJICAvKiBNYWtlIHN1cmUgdGhhdCwg aWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCisgCSAgICAgcHJpbnQgb3V0IGEg d2FybmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KK0BAIC0yMDQsNyAr MjA0LDcgQEAKKyAJICBlbHNlCisgCSAgICB7CisgCSAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dl dF91cHBlcmJvdW5kICh0eXBlKTsKKy0JICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAi JWQiLCB1cHBlcl9ib3VuZCk7CisrCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVz IiwgcGxvbmdlc3QgKHVwcGVyX2JvdW5kKSk7CisgCSAgICB9CisgCX0KICAKLSAgICAgICAgICAg aWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJB WSkKLUBAIC0yODMsNyArMjgzLDcgQEAgdm9pZAorQEAgLTI3Niw3ICsyNzYsNyBAQAogIGZfdHlw ZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHNob3csCiAgCQkgICBpbnQgbGV2ZWwpCiAgewpAQCAtMTAzLDcgKzEwMyw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi10eXBlcHJpbnQuYwogICAgaW50IGluZGV4Owog IAogICAgUVVJVDsKLUBAIC0zNjUsNyArMzY1LDcgQEAgZl90eXBlX3ByaW50X2Jhc2UgKHN0cnVj dCB0eXBlICp0eXBlLCBzdAorQEAgLTM1OCw3ICszNTgsNyBAQAogICAgICAgIGVsc2UKICAJewog IAkgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKQEAgLTExMiwxMSAr MTEyLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi10eXBlcHJpbnQuYwog IAl9CiAgICAgICAgYnJlYWs7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Yt dmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXZhbHByaW50LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLXZhbHByaW50 LmMJMjAxNS0xMS0wMiAyMToyNToxNC4yMzQxNjExMDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjU6MjIuNDA1MjE0ODY3ICsw MTAwCi1AQCAtNDMsNyArNDMsNyBAQCBMT05HRVNUIGY3N19hcnJheV9vZmZzZXRfdGJsW01BWF9G T1JUUkFOCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZi12YWxwcmludC5jCTIw MTYtMDctMTYgMTA6NTY6MTEuNjgyNzYyNzIyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2OjE1LjU1NDc5MzcwNCArMDIwMAor QEAgLTQzLDcgKzQzLDcgQEAKICAvKiBBcnJheSB3aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFw cGxpZWQgdG8gZ2V0IGEgcm93J3MgZWxlbWVudHMKICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFy cmF5IGFsc28gaG9sZHMgdGhlIHNpemUgb2YgZWFjaCBzdWJhcnJheS4gICovCiAgCkBAIC0xMjUs NyArMTI1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMK ICBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGlmIChUWVBF X0FSUkFZX0xPV0VSX0JPVU5EX0lTX1VOREVGSU5FRCAodHlwZSkpCi1AQCAtNTIsNyArNTIsNyBA QCBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTUyLDcgKzUyLDcg QEAKICAgIHJldHVybiBUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX1ZBTFVFICh0eXBlKTsKICB9CiAg CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaCBiL2dk Yi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKaW5kZXggMzE5NzhlYy4uODAyNWUy ZCAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaAorKysg Yi9nZGItcmhiejc5NTQyNC1iaXRwb3MtbGF6eXZhbHVlLnBhdGNoCkBAIC0xLDE5ICsxLDcgQEAK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYwotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0xMC0yNCAyMzoxNzow NC4wNDIxNDM2MjggKzAyMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYwky MDE1LTEwLTI0IDIzOjE3OjI3LjY4NzMwMDY4OSArMDIwMAotQEAgLTkzNCw3ICs5MzQsNiBAQCBh bGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSAgICAgIGRlc2NyaXB0aW9u IGNvcnJlY3RseS4gICovCi0gICBjaGVja190eXBlZGVmICh0eXBlKTsKLSAKLS0gIHVsb25nZXN0 X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9MRU5HVEggKHR5cGUpKTsKLSAgIHZhbCA9IFhDTkVX IChzdHJ1Y3QgdmFsdWUpOwotICAgdmFsLT5jb250ZW50cyA9IE5VTEw7Ci0gICB2YWwtPm5leHQg PSBhbGxfdmFsdWVzOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0 LXR5cGVzLTY0Yml0LmV4cAkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0MzYyOCArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBl cy02NGJpdC5leHAJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTczNDc4NTAgKzAyMDAKIEBAIC0wLDAg KzEsNTkgQEAKICsjIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdn ZXIuCiArCkBAIC00NSw4ICszMyw4IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCiArCiArIyBUZXN0IDY0 LWJpdCBmaWxlIGZpcnN0IGFzIGl0IGlzIG5vdCBjb21waWxlZCBzbyBpdHMgY29tcGlsYXRpb24g bmV2ZXIgZmFpbHMuCiArCi0rc2V0IGZpbGU2NGJpdGJ6MnV1ICR7c3JjZGlyfS8ke3N1YmRpcn0v JHt0ZXN0ZmlsZX0tNjRiaXQuYnoyLnV1Ci0rc2V0IGZpbGU2NGJpdCAke29iamRpcn0vJHtzdWJk aXJ9LyR7dGVzdGZpbGV9LTY0Yml0Cisrc2V0IGZpbGU2NGJpdGJ6MnV1ICR7c3JjZGlyfS8ke3N1 YmRpcn0vJHt0ZXN0ZmlsZX0uYnoyLnV1Cisrc2V0IGZpbGU2NGJpdCAke29iamRpcn0vJHtzdWJk aXJ9LyR7dGVzdGZpbGV9CiArCiAraWYge1tjYXRjaCAic3lzdGVtIFwidXVkZWNvZGUgLW8gLSAk e2ZpbGU2NGJpdGJ6MnV1fSB8IGJ6aXAyIC1kYyA+JHtmaWxlNjRiaXR9XCIiXSAhPSAwfSB7CiAr ICAgIHVudGVzdGVkICJmYWlsZWQgdXVkZWNvZGUgb3IgYnppcDIiCkBAIC02MCw3ICs0OCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdl c3QtdHlwZXMtNjRiaXQuZXhwCiArCiArY2xlYW5fcmVzdGFydCAke2ZpbGU2NGJpdH0KICsKLSsj aWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0tNjRi aXQgJHNyY2ZpbGUyIHtub2RlYnVnfV0gfSB7CisrI2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3Rpbmcg JHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICRzcmNmaWxlMiB7bm9kZWJ1Z31dIH0gewogKyMg ICAgcmV0dXJuIC0xCiArI30KICsKQEAgLTc0LDEwICs2MiwxMCBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4 cAogK30KICsKICt0ZXN0ICJuYXRpdmUiCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv bG9uZ2VzdC10eXBlcy02NGJpdC5jCTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0 LXR5cGVzLTY0Yml0LmMJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTgzNDc4NTkgKzAyMDAKIEBAIC0w LDAgKzEsMjggQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRl YnVnZ2VyLgogKwpAQCAtMTA3LDEwICs5NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMKICt7CiArICBy ZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuUwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBl cy02NGJpdC5TCTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0 LlMJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTgzNDc4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMjQ5IEBA CiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsK QEAgLTM2MSwxMCArMzQ5LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuUwogKwkuc3RyaW5nCSJjaGFyIgog KwkuaWRlbnQJIkdDQzogKEdOVSkgNC43LjMgMjAxMjExMDkgKHByZXJlbGVhc2UpIgogKwkuc2Vj dGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2Vz dC10eXBlcy02NGJpdC5iejIudXUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYnoyLnV1CTIwMTUtMTAtMjQg MjM6MTc6MDQuMDQyMTQzNjI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQkyMDE2LTA3LTAzIDE1 OjAwOjU3LjYxODM0Nzg1OSArMDIwMAogQEAgLTAsMCArMSw2NyBAQAogK2JlZ2luIDc1NSBnZGIu YmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6MgogK00wRUlILjMlITYyOTM2PCdOI09IYCJHL19f X19fX19fXl9fX19fXz9fWV9fX19fXy8vXTdTUUQ1J14vXyUKCmRpZmYgLS1naXQgYS9nZGItdmxh LWludGVsLTA0b2YyMy1maXgucGF0Y2ggYi9nZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiOGQ3N2EuLjAwMDAwMDAKLS0tIGEvZ2Ri LXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBA QAotUmU6IFtQQVRDSCAwNC8yM10gdmxhOiBtYWtlIGR5bmFtaWMgZm9ydHJhbiBhcnJheXMgZnVu Y3Rpb25hbC4KLWh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0wNi9t c2cwMDU3MC5odG1sCi0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGgu YwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbGFyaXRo LmMJMjAxNS0xMS0wMyAyMDo0MTo0OC41NDM1MDQ5OTkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdmFsYXJpdGguYwkyMDE1LTExLTAzIDIwOjQ2OjM2Ljk5NTIzODg4OCArMDEw MAotQEAgLTE5MywxMCArMTkzLDE3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0 IHZhbHVlICoKLSAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFs dWVfdHlwZSAoYXJyYXkpKTsKLSAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVk ZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSAgIHVuc2lnbmVkIGludCBlbHRf c2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0tICB1bnNpZ25lZCBpbnQgZWx0 X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKLSsgIHVuc2lnbmVk IGludCBlbHRfb2ZmczsKLSAgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJREUg KFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwotICAgc3RydWN0IHZhbHVlICp2OwotIAot KyAgaWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKGFycmF5X3R5cGUpKQotKyAgICBlcnJvciAoXygi bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhc3NvY2lhdGVkKSIpKTsKLSsgIGlm IChUWVBFX05PVF9BTExPQ0FURUQgKGFycmF5X3R5cGUpKQotKyAgICBlcnJvciAoXygibm8gc3Vj aCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhbGxvY2F0ZWQpIikpOwotKwotKyAgZWx0X29m ZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKLSsKLSAgIGlmIChlbHRf c3RyaWRlID4gMCkKLSAgICAgZWx0X29mZnMgKj0gZWx0X3N0cmlkZTsKLSAgIGVsc2UgaWYgKGVs dF9zdHJpZGUgPCAwKQotQEAgLTIxMCwxNCArMjE3LDcgQEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZh bHVlIChzdHJ1Y3QgdmFsdWUgKgotIAotICAgaWYgKGluZGV4IDwgbG93ZXJib3VuZCB8fCAoIVRZ UEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQotIAkJCSAgICAg JiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5cGUpKSkKLS0gICAgewot LSAgICAgIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkIChhcnJheV90eXBlKSkKLS0gICAgICAgIGVy cm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikp OwotLSAgICAgIGVsc2UgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAoYXJyYXlfdHlwZSkpCi0tICAg ICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhbGxvY2F0 ZWQpIikpOwotLSAgICAgIGVsc2UKLS0gICAgICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBl bGVtZW50IikpOwotLSAgICB9Ci0rICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50 IikpOwotIAotICAgaWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1 ZV9sYXp5IChhcnJheSkpCi0gICAgIHYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5IChlbHRfdHlwZSk7 CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0x b2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NzI5MjIKLS0t IC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVsLTFvZjcucGF0Y2gKQEAgLTAsMCArMSwxODAg QEAKK0Zyb20gMjZlMTU2ZDYyMjExY2E4NDU4ZmFhMzI2ZjIxOTQwZTlmYTE4YzhmZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJlcm5oYXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2Vs QGludGVsLmNvbT4KK0RhdGU6IFR1ZSwgMTIgSnVsIDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1Ympl Y3Q6IFtQQVRDSCAxLzddIEZvcnRyYW46IFRlc3RzdWl0ZSwgZml4IGRpZmZlcmVuY2VzIGluIHR5 cGUgbmFtaW5nLgorCitDb250aW51ZWQgb24gMGMxM2Y3ZTU1OWFmZTVmOTczYTU5MzExYjBlNDAx Mjk2YzQ4ZDk2YworKGZvcnRyYW46IFRlc3RzdWl0ZSwgZml4IGRpZmZlcmVudCB0eXBlIG5hbWlu ZyBhY3Jvc3MgY29tcGlsZXJzKS4KKworMjAxNi0wNi0wOCAgQmVybmhhcmQgSGVja2VsICA8YmVy bmhhcmQuaGVja2VsQGludGVsLmNvbT4KKworZ2RiL1Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiBn ZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwOiBVc2UgdHlwZSBuYW1lcyBkZWZpbmVkIGluIGxpYmZv cnRyYW4uCisJKiBnZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwOiBMaWtld2lzZS4KKwkqIGdkYi5t aS9taS12bGEtZm9ydHJhbi5leHA6IExpa2V3aXNlLgorCitDaGFuZ2UtSWQ6IEk3ZWU5NDU4N2E5 OTJhZGQyN2ZlYzc3Yzc3MjZmOWE2OWM4ZmRmMzczCistLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS12YWx1ZS5leHAgfCAxMiArKysrKysrKy0tLS0KKyBnZGIvdGVzdHN1aXRlL2dk Yi5taS9taS12YXItY2hpbGQtZi5leHAgfCAgNyArKystLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktdmxhLWZvcnRyYW4uZXhwIHwgMTggKysrKysrKysrKystLS0tLS0tCisgMyBmaWxlcyBj aGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAoraW5kZXggMDk0NTE4MS4uMjc1ZjczOCAxMDA2NDQK Ky0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAorKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCitAQCAtMTQsNiArMTQsNyBAQAor ICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisgCisgc3RhbmRhcmRfdGVzdGZpbGUgInZsYS5mOTAiCisrbG9hZF9s aWIgImZvcnRyYW4uZXhwIgorIAorIGlmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0Zmls ZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorICAgICAge2RlYnVnIGY5MCBxdWlldH1d IH0geworQEAgLTI1LDEyICsyNiwxNSBAQCBpZiAhW3J1bnRvX21haW5dIHsKKyAgICAgcmV0dXJu IC0xCisgfQorIAorKyMgRGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciBiZWluZyB1c2VkLCB0aGUg dHlwZSBuYW1lcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJlbnRseS4KKytzZXQgcmVhbCBbZm9ydHJh bl9yZWFsNF0KKysKKyAjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIG5vbiBhbGxvY2F0ZWQgVkxB CisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtaW5pdCJdCisgZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtaW5pdCIKKyBnZGJfdGVzdCAicHJpbnQgdmxh MSIgIiA9IDxub3QgYWxsb2NhdGVkPiIgInByaW50IG5vbi1hbGxvY2F0ZWQgdmxhMSIKKyBnZGJf dGVzdCAicHJpbnQgJnZsYTEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChr aW5kPTRcXFwpIFxcXCg8bm90IGFsbG9jYXRlZD5cXFwpXFxcKVxcXCkgJGhleCIgXAorKyAgIiA9 IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoPG5vdCBhbGxvY2F0ZWQ+XFxcKVxcXClcXFwp ICRoZXgiIFwKKyAgICJwcmludCBub24tYWxsb2NhdGVkICZ2bGExIgorIGdkYl90ZXN0ICJwcmlu dCB2bGExKDEsMSwxKSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYWxs b2NhdGVkXFxcKSIgXAorICAgInByaW50IG1lbWJlciBpbiBub24tYWxsb2NhdGVkIHZsYTEgKDEp IgorQEAgLTUxLDcgKzU1LDcgQEAgd2l0aF90aW1lb3V0X2ZhY3RvciAxNSB7CisgCSJzdGVwIG92 ZXIgdmFsdWUgYXNzaWdubWVudCBvZiB2bGExIgorIH0KKyBnZGJfdGVzdCAicHJpbnQgJnZsYTEi IFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxcXCgxMCwx MCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFs IFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJpbnQgYWxsb2NhdGVkICZ2 bGExIgorIGdkYl90ZXN0ICJwcmludCB2bGExKDMsIDYsIDkpIiAiID0gMTMxMSIgInByaW50IGFs bG9jYXRlZCB2bGExKDMsNiw5KSIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSgxLCAzLCA4KSIgIiA9 IDEzMTEiICJwcmludCBhbGxvY2F0ZWQgdmxhMSgxLDMsOCkiCitAQCAtNzEsNyArNzUsNyBAQCBn ZGJfdGVzdCAicHJpbnQgdmxhMSg5LCA5LCA5KSIgIiA9IDk5OSIgXAorICMgVHJ5IHRvIGFjY2Vz cyB2YWx1ZXMgaW4gdW5kZWZpbmVkIHBvaW50ZXIgdG8gVkxBIChkYW5nbGluZykKKyBnZGJfdGVz dCAicHJpbnQgcHZsYSIgIiA9IDxub3QgYXNzb2NpYXRlZD4iICJwcmludCB1bmRlZmluZWQgcHZs YSIKKyBnZGJfdGVzdCAicHJpbnQgJnB2bGEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCgg cmVhbFxcXChraW5kPTRcXFwpIFxcXCg8bm90IGFzc29jaWF0ZWQ+XFxcKVxcXClcXFwpICRoZXgi IFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDxub3QgYXNzb2NpYXRlZD5c XFwpXFxcKVxcXCkgJGhleCIgXAorICAgInByaW50IG5vbi1hc3NvY2lhdGVkICZwdmxhIgorIGdk Yl90ZXN0ICJwcmludCBwdmxhKDEsIDMsIDgpIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwo dmVjdG9yIG5vdCBhc3NvY2lhdGVkXFxcKSIgXAorICAgInByaW50IHVuZGVmaW5lZCBwdmxhKDEs Myw4KSIKK0BAIC04MCw3ICs4NCw3IEBAIGdkYl90ZXN0ICJwcmludCBwdmxhKDEsIDMsIDgpIiAi bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkCisgZ2RiX2Jy ZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJdCisgZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKKyBnZGJfdGVzdCAicHJpbnQg JnB2bGEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxc XCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBUUiBUTyAtPiBcXFwo ICRyZWFsIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJpbnQgYXNzb2Np YXRlZCAmcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSgzLCA2LCA5KSIgIiA9IDQyIiAicHJp bnQgYXNzb2NpYXRlZCBwdmxhKDMsNiw5KSIKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4 KSIgIiA9IDEwMDEiICJwcmludCBhc3NvY2lhdGVkIHB2bGEoMSwzLDgpIgorZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cAoraW5kZXggZjNlZDdjMi4uYmM0NGM2YiAxMDA2NDQK Ky0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cAorKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwCitAQCAtMTcsNiArMTcsNyBAQAor IAorIGxvYWRfbGliIG1pLXN1cHBvcnQuZXhwCisgc2V0IE1JRkxBR1MgIi1pPW1pIgorK2xvYWRf bGliICJmb3J0cmFuLmV4cCIKKyAKKyBpZiB7IFtza2lwX2ZvcnRyYW5fdGVzdHNdIH0geyByZXR1 cm4gLTEgfQorIAorQEAgLTQwLDEwICs0MSw4IEBAIG1pX3J1bnRvIE1BSU5fXworIG1pX2NyZWF0 ZV92YXJvYmogImFycmF5IiAiYXJyYXkiICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgYXJyYXkiCisg CisgCistIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIHZlcnNpb24gYmVpbmcgdXNlZCwgdGhl IG5hbWUgb2YgdGhlIDQtYnl0ZSBpbnRlZ2VyCistIyBhbmQgcmVhbCB0eXBlcyBjYW4gYmUgcHJp bnRlZCBkaWZmZXJlbnRseS4gIEZvciBpbnN0YW5jZSwgZ2ZvcnRyYW4tNC4xIHVzZXMKKy0jICJp bnQ0IiB3aGVyZWFzIGdmb3J0cmFuLTQuMyB1c2VzICJpbnRlZ2VyKGtpbmQ9NCkiLgorLXNldCBp bnQ0ICIoaW50NHxpbnRlZ2VyXFwoa2luZD00XFwpKSIKKysjIERlcGVuZGluZyBvbiB0aGUgY29t cGlsZXIgYmVpbmcgdXNlZCwgdGhlIHR5cGUgbmFtZXMgY2FuIGJlIHByaW50ZWQgZGlmZmVyZW50 bHkuCisrc2V0IGludDQgW2ZvcnRyYW5faW50NF0KKyAKKyBzZXQgY2hpbGRyZW4gW2xpc3QgW2xp c3QgImFycmF5Li0xIiAiLTEiIDIgIiRpbnQ0IFxcKDJcXCkiXSBcCisgCQkgIFtsaXN0ICJhcnJh eS4wIiAiMCIgMiAiJGludDQgXFwoMlxcKSJdIFwKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEt Zm9ydHJhbi5leHAKK2luZGV4IDMzM2I3MWEuLjE3NzllYzAgMTAwNjQ0CistLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pLXZsYS1mb3J0cmFuLmV4cAorQEAgLTE4LDYgKzE4LDcgQEAKKyAKKyBsb2FkX2xpYiBt aS1zdXBwb3J0LmV4cAorIHNldCBNSUZMQUdTICItaT1taSIKKytsb2FkX2xpYiAiZm9ydHJhbi5l eHAiCisgCisgZ2RiX2V4aXQKKyBpZiBbbWlfZ2RiX3N0YXJ0XSB7CitAQCAtMzIsNiArMzMsOSBA QCBpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHti aW5maWxlfSIgZXhlY3V0YWJsZSBcCisgICAgICByZXR1cm4gLTEKKyB9CisgCisrIyBEZXBlbmRp bmcgb24gdGhlIGNvbXBpbGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmlu dGVkIGRpZmZlcmVudGx5LgorK3NldCByZWFsIFtmb3J0cmFuX3JlYWw0XQorKworIG1pX2RlbGV0 ZV9icmVha3BvaW50cworIG1pX2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgor IG1pX2dkYl9sb2FkICR7YmluZmlsZX0KK0BAIC01OCw3ICs2Miw3IEBAIG1pX2dkYl90ZXN0ICI1 MDMtdmFyLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMV9ub3RfYWxsb2NhdGVkIiBcCisgICAiNTAz XFxeZG9uZSx2YWx1ZT1cIlxcXFswXFxcXVwiIiBcCisgICAiZXZhbCB2YXJpYWJsZSB2bGExX25v dF9hbGxvY2F0ZWQiCisgbWlfbGlzdF9hcnJheV92YXJvYmpfY2hpbGRyZW5fd2l0aF9pbmRleCAi dmxhMV9ub3RfYWxsb2NhdGVkIiAiMCIgIjEiIFwKKy0gICAgInJlYWxcXFwoa2luZD00XFxcKSIg ImdldCBjaGlsZHJlbiBvZiB2bGExX25vdF9hbGxvY2F0ZWQiCisrICAgICIkcmVhbCIgImdldCBj aGlsZHJlbiBvZiB2bGExX25vdF9hbGxvY2F0ZWQiCisgCisgCisgCitAQCAtNzEsMTAgKzc1LDEw IEBAIG1pX2V4cGVjdF9zdG9wICJicmVha3BvaW50LWhpdCIgInZsYSIgIiIgIi4qdmxhLmY5MCIg IiRicF9saW5lbm8iIFwKKyBtaV9nZGJfdGVzdCAiNTEwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lv biB2bGExIiBcCisgICAiNTEwXFxeZG9uZSx2YWx1ZT1cIlxcKC4qXFwpXCIiICJldmFsdWF0ZSBh bGxvY2F0ZWQgdmxhIgorIAorLW1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX2FsbG9jYXRl ZCB2bGExICJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpIiBcCisrbWlfY3JlYXRlX3Zhcm9i al9jaGVja2VkIHZsYTFfYWxsb2NhdGVkIHZsYTEgIiRyZWFsIFxcXCg1XFxcKSIgXAorICAgImNy ZWF0ZSBsb2NhbCB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKKyBtaV9nZGJfdGVzdCAiNTExLXZh ci1pbmZvLXR5cGUgdmxhMV9hbGxvY2F0ZWQiIFwKKy0gICI1MTFcXF5kb25lLHR5cGU9XCJyZWFs XFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpXCIiIFwKKysgICI1MTFcXF5kb25lLHR5cGU9XCIkcmVh bCBcXFwoNVxcXClcIiIgXAorICAgImluZm8gdHlwZSB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIK KyBtaV9nZGJfdGVzdCAiNTEyLXZhci1zaG93LWZvcm1hdCB2bGExX2FsbG9jYXRlZCIgXAorICAg IjUxMlxcXmRvbmUsZm9ybWF0PVwibmF0dXJhbFwiIiBcCitAQCAtODMsNyArODcsNyBAQCBtaV9n ZGJfdGVzdCAiNTEzLXZhci1ldmFsdWF0ZS1leHByZXNzaW9uIHZsYTFfYWxsb2NhdGVkIiBcCisg ICAiNTEzXFxeZG9uZSx2YWx1ZT1cIlxcXFs1XFxcXVwiIiBcCisgICAiZXZhbCB2YXJpYWJsZSB2 bGExX2FsbG9jYXRlZCIKKyBtaV9saXN0X2FycmF5X3Zhcm9ial9jaGlsZHJlbl93aXRoX2luZGV4 ICJ2bGExX2FsbG9jYXRlZCIgIjUiICIxIiBcCistICAgICJyZWFsXFxcKGtpbmQ9NFxcXCkiICJn ZXQgY2hpbGRyZW4gb2YgdmxhMV9hbGxvY2F0ZWQiCisrICAgICIkcmVhbCIgImdldCBjaGlsZHJl biBvZiB2bGExX2FsbG9jYXRlZCIKKyAKKyAKKyBzZXQgYnBfbGluZW5vIFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJ2bGExLWZpbGxlZCJdCitAQCAtMTQ4LDcgKzE1Miw3IEBAIGdkYl9leHBlY3Qgewor IAkgICAgIjU4M1xcXmRvbmUsdmFsdWU9XCJcXFxbMFxcXF1cIiIgXAorIAkgICAgImV2YWwgdmFy aWFibGUgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCisgCW1pX2xpc3RfYXJyYXlfdmFyb2JqX2NoaWxk cmVuX3dpdGhfaW5kZXggInB2bGEyX25vdF9hc3NvY2lhdGVkIiAiMCIgIjEiIFwKKy0JICAgICJy ZWFsXFxcKGtpbmQ9NFxcXCkiICJnZXQgY2hpbGRyZW4gb2YgcHZsYTJfbm90X2Fzc29jaWF0ZWQi CisrCSAgICAiJHJlYWwiICJnZXQgY2hpbGRyZW4gb2YgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCisg ICAgIH0KKyAgICAgLXJlICI1ODBcXF5lcnJvcixtc2c9XCJ2YWx1ZSBjb250ZW50cyB0b28gbGFy Z2UgXFwoXFswLTlcXSsgYnl0ZXNcXCkuKiR7bWlfZ2RiX3Byb21wdH0kIiB7CisgCSMgVW5kZWZp bmVkIGJlaGF2aW91ciBpbiBnZm9ydHJhbi4KK0BAIC0xNzMsOSArMTc3LDkgQEAgbWlfZ2RiX3Rl c3QgIjU5MC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gcHZsYTIiIFwKKyAgICJldmFsdWF0ZSBh c3NvY2lhdGVkIHZsYSIKKyAKKyBtaV9jcmVhdGVfdmFyb2JqX2NoZWNrZWQgcHZsYTJfYXNzb2Np YXRlZCBwdmxhMiBcCistICAicmVhbFxcXChraW5kPTRcXFwpIFxcXCg1LDJcXFwpIiAiY3JlYXRl IGxvY2FsIHZhcmlhYmxlIHB2bGEyX2Fzc29jaWF0ZWQiCisrICAiJHJlYWwgXFxcKDUsMlxcXCki ICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIKKyBtaV9nZGJfdGVzdCAi NTkxLXZhci1pbmZvLXR5cGUgcHZsYTJfYXNzb2NpYXRlZCIgXAorLSAgIjU5MVxcXmRvbmUsdHlw ZT1cInJlYWxcXFwoa2luZD00XFxcKSBcXFwoNSwyXFxcKVwiIiBcCisrICAiNTkxXFxeZG9uZSx0 eXBlPVwiJHJlYWwgXFxcKDUsMlxcXClcIiIgXAorICAgImluZm8gdHlwZSB2YXJpYWJsZSBwdmxh Ml9hc3NvY2lhdGVkIgorIG1pX2dkYl90ZXN0ICI1OTItdmFyLXNob3ctZm9ybWF0IHB2bGEyX2Fz c29jaWF0ZWQiIFwKKyAgICI1OTJcXF5kb25lLGZvcm1hdD1cIm5hdHVyYWxcIiIgXAorLS0gCisy LjcuNAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0yb2Y3LnBhdGNoIGIvZ2RiLXZsYS1p bnRlbC0yb2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYTE3 N2EKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVsLTJvZjcucGF0Y2gKQEAgLTAsMCAr MSw3NSBAQAorRnJvbSBhODc5YjI1MDFlNjFlZTNkM2VmYWRiZGI2YjMzMjEyYjU3ZDNhMmUxIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5o ZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAor U3ViamVjdDogW1BBVENIIDIvN10gRm9ydHJhbjogUmVzb2x2ZSBkeW5hbWljIHByb3BlcnRpZXMg b2YgcG9pbnRlciB0eXBlcy4KKworSW4gRm9ydHJhbiBhIHBvaW50ZXIgbWF5IGhhdmUgYSBkeW5h bWljIGFzc29jaWF0ZWQgcHJvcGVydHkuCisKKzIwMTYtMDctMDggIEJlcm5oYXJkIEhlY2tlbCAg PGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CisKK2dkYi9DaGFuZ2Vsb2c6CisJKiBnZGJ0eXBl cy5jIChyZXNvbHZlX2R5bmFtaWNfdHlwZXNfaW50ZXJuYWwpOiBSZXNvbHZlIHBvaW50ZXIgdHlw ZXMuCisJICAocmVzb2x2ZV9keW5hbWljX3BvaW50ZXIpOiBOZXcuCisKK0NoYW5nZS1JZDogSWU0 YjlkNjM5N2NmYTA4OWVlMmUwZGIwMmJlYjE4NDE1YTc1MWMxYzAKKy0tLQorIGdkYi9nZGJ0eXBl cy5jIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwg MjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5 cGVzLmMgYi9nZGIvZ2RidHlwZXMuYworaW5kZXggZWM1YzE3YS4uYjUzZTY0OSAxMDA2NDQKKy0t LSBhL2dkYi9nZGJ0eXBlcy5jCisrKysgYi9nZGIvZ2RidHlwZXMuYworQEAgLTE4MDYsNyArMTgw Niw4IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0 b3BfbGV2ZWwpCisgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7CisgCisgICAvKiBXZSBv bmx5IHdhbnQgdG8gcmVjb2duaXplIHJlZmVyZW5jZXMgYXQgdGhlIG91dGVybW9zdCBsZXZlbC4g ICovCistICBpZiAodG9wX2xldmVsICYmIFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1JF RikKKysgIGlmICh0b3BfbGV2ZWwgJiYKKysgICAgICAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBF X0NPREVfUkVGIHx8IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1BUUikpCisgICAgIHR5 cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7CisgCisgICAvKiBU eXBlcyB0aGF0IGhhdmUgYSBkeW5hbWljIFRZUEVfREFUQV9MT0NBVElPTiBhcmUgY29uc2lkZXJl ZAorQEAgLTIxMDUsNiArMjEwNiwyOCBAQCByZXNvbHZlX2R5bmFtaWNfc3RydWN0IChzdHJ1Y3Qg dHlwZSAqdHlwZSwKKyAgIHJldHVybiByZXNvbHZlZF90eXBlOworIH0KKyAKKysvKiBXb3JrZXIg Zm9yIHBvaW50ZXIgdHlwZXMuICAqLworKworK3N0YXRpYyBzdHJ1Y3QgdHlwZSAqCisrcmVzb2x2 ZV9keW5hbWljX3BvaW50ZXIgKHN0cnVjdCB0eXBlICp0eXBlLAorKwkJCSBzdHJ1Y3QgcHJvcGVy dHlfYWRkcl9pbmZvICphZGRyX3N0YWNrKQorK3sKKysgIHN0cnVjdCBkeW5hbWljX3Byb3AgKnBy b3A7CisrICBDT1JFX0FERFIgdmFsdWU7CisrCisrICB0eXBlID0gY29weV90eXBlICh0eXBlKTsK KysKKysgIC8qIFJlc29sdmUgYXNzb2NpYXRlZCBwcm9wZXJ0eS4gICovCisrICBwcm9wID0gVFlQ RV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpOworKyAgaWYgKHByb3AgIT0gTlVMTCAmJiBkd2FyZjJf ZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIE5VTEwsIGFkZHJfc3RhY2ssICZ2YWx1ZSkpCisrICAg IHsKKysgICAgICBUWVBFX0RZTl9QUk9QX0FERFIgKHByb3ApID0gdmFsdWU7CisrICAgICAgVFlQ RV9EWU5fUFJPUF9LSU5EIChwcm9wKSA9IFBST1BfQ09OU1Q7CisrICAgIH0KKysKKysgIHJldHVy biB0eXBlOworK30KKysKKyAvKiBXb3JrZXIgZm9yIHJlc29sdmVkX2R5bmFtaWNfdHlwZS4gICov CisgCisgc3RhdGljIHN0cnVjdCB0eXBlICoKK0BAIC0yMTUzLDYgKzIxNzYsMTAgQEAgcmVzb2x2 ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAorIAkgICAgYnJlYWs7 CisgCSAgfQorIAorKyAgICAgICAgY2FzZSBUWVBFX0NPREVfUFRSOgorKyAJICByZXNvbHZlZF90 eXBlID0gcmVzb2x2ZV9keW5hbWljX3BvaW50ZXIgKHR5cGUsIGFkZHJfc3RhY2spOworKyAJICBi cmVhazsKKysKKyAJY2FzZSBUWVBFX0NPREVfQVJSQVk6CisgCSAgcmVzb2x2ZWRfdHlwZSA9IHJl c29sdmVfZHluYW1pY19hcnJheSAodHlwZSwgYWRkcl9zdGFjayk7CisgCSAgYnJlYWs7CistLSAK KzIuNy40CisKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTNvZjcucGF0Y2ggYi9nZGItdmxh LWludGVsLTNvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA5 NTQwNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtM29mNy5wYXRjaApAQCAtMCww ICsxLDExMyBAQAorRnJvbSBkMmZkNWZlYTJjMDYwNTJjNTNkOTliZmEyNWZkYWVkOWNmNWRkMjE3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFy ZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIw MAorU3ViamVjdDogW1BBVENIIDMvN10gVHlwZXByaW50OiBSZXNvbHZlIGFueSBkeW5hbWljIHRh cmdldCB0eXBlIG9mIGEgcG9pbnRlci4KKworQmVmb3JlIGNvbnRpbnVpbmcgd2l0aCBsYW5ndWFn ZSBzcGVjaWZpYyB0eXBlIHByaW50aW5nCit3ZSBoYXZlIHRvIHJlc29sdmUgdGhlIHRhcmdldCB0 eXBlIG9mIGEgcG9pbnRlcgorYXMgd2UgbWlnaHQgd2FubmEgcHJpbnQgbW9yZSBkZXRhaWxzIG9m IHRoZSB0YXJnZXQKK2xpa2UgdGhlIGRpbWVuc2lvbiBvZiBhbiBhcnJheS4gV2UgaGF2ZSB0byBy ZXNvbHZlIGl0IGhlcmUKK2FzIHdlIGRvbid0IGhhdmUgYW55IGFkZHJlc3MgaW5mb3JtYXRpb24g bGF0ZXIgb24uCisKKzIwMTYtMDctMDggIEJlcm5oYXJkIEhlY2tlbCAgPGJlcm5oYXJkLmhlY2tl bEBpbnRlbC5jb20+CisKK2dkYi9DaGFuZ2Vsb2c6CisJKiB0eXBlcHJpbnQuYyAod2hhdGlzX2V4 cCk6IFJlc29sdmUgZHluYW1pYyB0YXJnZXQgdHlwZQorCSAgb2YgcG9pbnRlcnMuCisKK2dkYi9U ZXN0c3VpdGUvQ2hhbmdlbG9nOgorCSogZ2RiLmNwL3ZsYS1jeHguY2M6IEFkZGVkIHBvaW50ZXIg dG8gZHluYW1pYyB0eXBlLgorCSogZ2RiLmNwL3ZsYS1jeHguZXhwOiBUZXN0IHBvaW50ZXIgdG8g ZHluYW1pYyB0eXBlLgorCitDaGFuZ2UtSWQ6IElkZmYwZDZkZDBlYWIzMTI1YjQ1ZDQ3MGExMmI1 ZTY2YjM5MmU0MmMzCistLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmNjICB8ICA5 ICsrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguZXhwIHwgIDUgKysrKysK KyBnZGIvdHlwZXByaW50LmMgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysrKysr KysKKyAzIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEt Y3h4LmNjCitpbmRleCBhMWZkNTEwLi41ZjhmOGFiIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3AvdmxhLWN4eC5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5j YworQEAgLTE1LDYgKzE1LDEwIEBACisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov CisgCisrZXh0ZXJuICJDIiB7CisrI2luY2x1ZGUgPHN0ZGRlZi5oPgorK30KKysKKyBzdHJ1Y3Qg Y29udGFpbmVyOworIAorIHN0cnVjdCBlbGVtZW50CitAQCAtNDAsMTEgKzQ0LDE2IEBAIGludCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyAgIHR5cGVkZWYgdHlwZW9mICh2bGEpICZ2bGFy ZWZ0eXBlZGVmOworICAgdmxhcmVmdHlwZWRlZiB2bGFyZWYyICh2bGEpOworICAgY29udGFpbmVy IGM7CisrICB0eXBlb2YgKHZsYSkgKnB0ciA9IE5VTEw7CisrCisrICAvLyBCZWZvcmUgcG9pbnRl ciBhc3NpZ25tZW50CisrICBwdHIgPSAmdmxhOworIAorICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6 OyArK2kpCisgICAgIHZsYVtpXSA9IDUgKyAyICogaTsKKyAKKyAgIC8vIHZsYXNfZmlsbGVkCisg ICB2bGFbMF0gPSAyICogdmxhWzBdOworKworICAgcmV0dXJuIHZsYVsyXTsKKyB9CitkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5jcC92bGEtY3h4LmV4cAoraW5kZXggZjYyMjRkYy4uYmFiZGZiNyAxMDA2NDQKKy0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5j cC92bGEtY3h4LmV4cAorQEAgLTIzLDYgKzIzLDEwIEBAIGlmICFbcnVudG9fbWFpbl0geworICAg ICByZXR1cm4gLTEKKyB9CisgCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg IkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJwdHlwZSBwdHIiICJpbnQg XFwoXFwqXFwpXFxcW3ZhcmlhYmxlIGxlbmd0aFxcXF0iICJwdHlwZSBwdHIsIEJlZm9yZSBwb2lu dGVyIGFzc2lnbm1lbnQiCisrCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InZsYXNfZmlsbGVkIl0KKyBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhc19maWxsZWQi CisgCitAQCAtMzMsMyArMzcsNCBAQCBnZGJfdGVzdCAicHJpbnQgdmxhcmVmIiAiID0gXFwoaW50 IFxcKCZcXClcXFxbM1xcXF1cXCkgQCRoZXg6IFxcezUsIDcsIDlcXH0iCisgIyBidWcgYmVpbmcg dGVzdGVkLCBpdCdzIGJldHRlciBub3QgdG8gZGVwZW5kIG9uIHRoZSBleGFjdCBzcGVsbGluZy4K KyBnZGJfdGVzdCAicHJpbnQgdmxhcmVmMiIgIiA9IFxcKC4qXFwpIEAkaGV4OiBcXHs1LCA3LCA5 XFx9IgorIGdkYl90ZXN0ICJwcmludCBjIiAiID0gXFx7ZSA9IFxce2MgPSBAJGhleFxcfVxcfSIK KytnZGJfdGVzdCAicHR5cGUgcHRyIiAiaW50IFxcKFxcKlxcKVxcXFszXFxcXSIKK2RpZmYgLS1n aXQgYS9nZGIvdHlwZXByaW50LmMgYi9nZGIvdHlwZXByaW50LmMKK2luZGV4IGU3NzUxM2UuLmUz ZDg0YzcgMTAwNjQ0CistLS0gYS9nZGIvdHlwZXByaW50LmMKKysrKyBiL2dkYi90eXBlcHJpbnQu YworQEAgLTQ4NSw2ICs0ODUsMjUgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykK KyAgICAgICBwcmludGZfZmlsdGVyZWQgKCIgKi9cbiIpOyAgICAKKyAgICAgfQorIAorKyAgLyog UmVzb2x2ZSBhbnkgZHluYW1pYyB0YXJnZXQgdHlwZSwgYXMgd2UgbWlnaHQgcHJpbnQKKysgICAg IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhcmdldC4KKysgICAgIEZvciBleGFt cGxlLCBpbiBGb3J0cmFuIGFuZCBDIHdlIGFyZSBwcmludGluZyB0aGUgZGltZW5zaW9uIG9mIHRo ZQorKyAgICAgZHluYW1pYyBhcnJheSB0aGUgcG9pbnRlciBpcyBwb2ludGluZyB0by4gICovCisr ICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSCisrICAgICAgJiYgaXNfZHlu YW1pY190eXBlICh0eXBlKSA9PSAxKQorKyAgICB7CisrICAgICAgQ09SRV9BRERSIGFkZHI7Cisr ICAgICAgaWYgKE5VTEwgIT0gVFlQRV9EQVRBX0xPQ0FUSU9OIChUWVBFX1RBUkdFVF9UWVBFKHR5 cGUpKSkKKysJYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7CisrICAgICAgZWxzZQorKwlhZGRy ID0gdmFsdWVfYXNfYWRkcmVzcyAodmFsKTsKKysKKysgICAgICBpZiAoYWRkciAhPSAwCisrCSAg JiYgdHlwZV9ub3RfYXNzb2NpYXRlZCAodHlwZSkgPT0gMCkKKysJVFlQRV9UQVJHRVRfVFlQRSAo dHlwZSkgPSByZXNvbHZlX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksCisr CQkJCQkJCU5VTEwsIGFkZHIpOworKyAgICB9CisrCisgICBMQV9QUklOVF9UWVBFICh0eXBlLCAi IiwgZ2RiX3N0ZG91dCwgc2hvdywgMCwgJmZsYWdzKTsKKyAgIHByaW50Zl9maWx0ZXJlZCAoIlxu Iik7CisgCistLSAKKzIuNy40CisKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTRvZjcucGF0 Y2ggYi9nZGItdmxhLWludGVsLTRvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNjJkY2EzNQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtNG9mNy5w YXRjaApAQCAtMCwwICsxLDUwOCBAQAorRnJvbSBmNjM3ODJkMjVlYmQ1OTNjNGM0NjY5ZDRjMzk0 YTI3MDZmMTVlNjYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVj a2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAw ODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDQvN10gRm9ydHJhbjogVHlwZXByaW50LCBm aXggZGFuZ2xpbmcgdHlwZXMuCisKK1Nob3cgdGhlIHR5cGUgb2Ygbm90LWFsbG9jYXRlZCBhbmQv b3Igbm90LWFzc29jaWF0ZWQgdHlwZXMKK2FzIHRoaXMgaXMga25vd24uICBGb3IgYXJyYXkgdHlw ZXMgYW5kIHBvaW50ZXIgdG8gYXJyYXkgdHlwZXMKK3dlIGFyZSBnb2luZyB0byBwcmludCB0aGUg bnVtYmVyIG9mIHJhbmtzLgorCisyMDE2LTA2LTMwICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFy ZC5oZWNrZWxAaW50ZWwuY29tPgorCitnZGIvQ2hhbmdlTG9nOgorCSogZi10eXBlcHJpbnQuYyAo Zl9wcmludF90eXBlKTogRG9uJ3QgYnlwYXNzIGRhbmdsaW5nIHR5cGVzLgorCSAgKGZfdHlwZV9w cmludF92YXJzcGVjX3N1ZmZpeCk6IEFkZCBwcmludF9yYW5rIHBhcmFtZXRlci4KKwkgIChmX3R5 cGVfcHJpbnRfdmFyc3BlY19zdWZmaXgpOiBQcmludCByYW5rcyBvZiBhcnJheSB0eXBlcworCSAg aW4gY2FzZSB0aGV5IGRhbmdsaW5nLgorCSAgKGZfdHlwZV9wcmludF9iYXNlKTogQWRkIHByaW50 X3JhbmsgcGFyYW1ldGVyLgorCitnZGIvVGVzdHN1aXRlL0NoYW5nZUxvZzoKKwkqIGdkYi5mb3J0 cmFuL3BvaW50ZXJzLmY5MDogTmV3LgorCSogZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHA6IE5l dy4KKwkqIGdkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHA6IEFkYXB0IGV4cGVjdGVkIHJlc3VsdHMu CisJKiBnZGIuZm9ydHJhbi92bGEtdHlwZS5leHA6IExpa2V3aXNlLgorCSogZ2RiLmZvcnRyYW4v dmxhLXZhbHVlLmV4cDogTGlrZXdpc2UuCisJKiBnZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwOiBM aWtld2lzZS4KKworQ2hhbmdlLUlkOiBJYjU1ZjI4YjQwOTJjZjg4ZTM0OTE4NDQ5YTJlYmI2ZTVk YWFmZTUxMgorLS0tCisgZ2RiL2YtdHlwZXByaW50LmMgICAgICAgICAgICAgICAgICAgICAgICB8 ICA5NSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vcG9pbnRlcnMuZjkwICAgfCAgODAgKysrKysrKysrKysrKysrKysrKysrKysrKworIGdk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHAgfCAxMDAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBl LmV4cCAgfCAgMTIgKystLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhw ICAgfCAgIDcgKystCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwICB8 ICAgNCArLQorIGdkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cCAgfCAgIDkg Ky0tCisgNyBmaWxlcyBjaGFuZ2VkLCAyNDggaW5zZXJ0aW9ucygrKSwgNTkgZGVsZXRpb25zKC0p CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMu ZjkwCisgY3JlYXRlIG1vZGUgMTAwNzU1IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRf dHlwZS5leHAKKworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXR5cGVwcmludC5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZi10eXBlcHJp bnQuYwkyMDE2LTA3LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9mLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTA6NTU6NTkuNzYzNjY3MzU1 ICswMjAwCitAQCAtMzcsNyArMzcsNyBAQAorICNlbmRpZgorIAorIHN0YXRpYyB2b2lkIGZfdHlw ZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKiwg aW50LAorLQkJCQkJIGludCwgaW50LCBpbnQpOworKwkJCQkJIGludCwgaW50LCBpbnQsIGludCk7 CisgCisgdm9pZCBmX3R5cGVfcHJpbnRfdmFyc3BlY19wcmVmaXggKHN0cnVjdCB0eXBlICosIHN0 cnVjdCB1aV9maWxlICosCisgCQkJCSAgaW50LCBpbnQpOworQEAgLTU0LDE4ICs1NCw2IEBACisg ICBlbnVtIHR5cGVfY29kZSBjb2RlOworICAgaW50IGRlbWFuZ2xlZF9hcmdzOworIAorLSAgaWYg KHR5cGVfbm90X2Fzc29jaWF0ZWQgKHR5cGUpKQorLSAgICB7CistICAgICAgdmFsX3ByaW50X25v dF9hc3NvY2lhdGVkIChzdHJlYW0pOworLSAgICAgIHJldHVybjsKKy0gICAgfQorLQorLSAgaWYg KHR5cGVfbm90X2FsbG9jYXRlZCAodHlwZSkpCistICAgIHsKKy0gICAgICB2YWxfcHJpbnRfbm90 X2FsbG9jYXRlZCAoc3RyZWFtKTsKKy0gICAgICByZXR1cm47CistICAgIH0KKy0KKyAgIGZfdHlw ZV9wcmludF9iYXNlICh0eXBlLCBzdHJlYW0sIHNob3csIGxldmVsKTsKKyAgIGNvZGUgPSBUWVBF X0NPREUgKHR5cGUpOworICAgaWYgKCh2YXJzdHJpbmcgIT0gTlVMTCAmJiAqdmFyc3RyaW5nICE9 ICdcMCcpCitAQCAtODcsNyArNzUsNyBAQAorICAgICAgICAgIHNvIGRvbid0IHByaW50IGFuIGFk ZGl0aW9uYWwgcGFpciBvZiAoKSdzLiAgKi8KKyAKKyAgICAgICBkZW1hbmdsZWRfYXJncyA9IHZh cnN0cmluZ1tzdHJsZW4gKHZhcnN0cmluZykgLSAxXSA9PSAnKSc7IAorLSAgICAgIGZfdHlwZV9w cmludF92YXJzcGVjX3N1ZmZpeCAodHlwZSwgc3RyZWFtLCBzaG93LCAwLCBkZW1hbmdsZWRfYXJn cywgMCk7CisrICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4ICh0eXBlLCBzdHJlYW0s IHNob3csIDAsIGRlbWFuZ2xlZF9hcmdzLCAwLCAwKTsKKyAgICB9CisgfQorIAorQEAgLTE1Nyw3 ICsxNDUsNyBAQAorIHN0YXRpYyB2b2lkCisgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAJCQkgICAgIGludCBz aG93LCBpbnQgcGFzc2VkX2FfcHRyLCBpbnQgZGVtYW5nbGVkX2FyZ3MsCistCQkJICAgICBpbnQg YXJyYXlwcmludF9yZWN1cnNlX2xldmVsKQorKwkJCSAgICAgaW50IGFycmF5cHJpbnRfcmVjdXJz ZV9sZXZlbCwgaW50IHByaW50X3Jhbmtfb25seSkKKyB7CisgICBpbnQgdXBwZXJfYm91bmQsIGxv d2VyX2JvdW5kOworIAorQEAgLTE4MSwzNCArMTY5LDUwIEBACisgCWZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgIigiKTsKKyAKKyAgICAgICBpZiAodHlwZV9ub3RfYXNzb2NpYXRlZCAodHlwZSkp CistICAgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7CisrCXByaW50X3Jh bmtfb25seSA9IDE7CisgICAgICAgZWxzZSBpZiAodHlwZV9ub3RfYWxsb2NhdGVkICh0eXBlKSkK Ky0gICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOworKwlwcmludF9yYW5r X29ubHkgPSAxOworKyAgICAgIGVsc2UgaWYgKChUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSkK KysJCSYmIFBST1BfQ09OU1QgIT0gVFlQRV9EWU5fUFJPUF9LSU5EIChUWVBFX0FTU09DSUFURURf UFJPUCAodHlwZSkpKQorKwkgICAgICB8fCAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkKKysJ CSYmIFBST1BfQ09OU1QgIT0gVFlQRV9EWU5fUFJPUF9LSU5EIChUWVBFX0FMTE9DQVRFRF9QUk9Q ICh0eXBlKSkpCisrCSAgICAgIHx8IChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCisrCQkgICYm IFBST1BfQ09OU1QgIT0gVFlQRV9EWU5fUFJPUF9LSU5EIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5 cGUpKSkpCisrCS8qIFRoaXMgY2FzZSBleGlzdCB3aGVuIHdlIHB0eXBlIGEgdHlwZW5hbWUgd2hp Y2ggaGFzIHRoZQorKwkgICBkeW5hbWljIHByb3BlcnRpZXMgYnV0IGNhbm5vdCBiZSByZXNvbHZl ZCBhcyB0aGVyZSBpcworKwkgICBubyBvYmplY3QuICAqLworKwlwcmludF9yYW5rX29ubHkgPSAx OworKworKyAgICAgIGlmIChUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSA9PSBU WVBFX0NPREVfQVJSQVkpCisrCWZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoVFlQRV9UQVJH RVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwKKysJCQkJICAgICAwLCAwLCBhcnJheXByaW50X3Jl Y3Vyc2VfbGV2ZWwsCisrCQkJCSAgICAgcHJpbnRfcmFua19vbmx5KTsKKysKKysgICAgICBpZiAo cHJpbnRfcmFua19vbmx5ID09IDEpCisrCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIjoiKTsK KyAgICAgICBlbHNlCistICAgICAgICB7CistICAgICAgICAgIGlmIChUWVBFX0NPREUgKFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpKSA9PSBUWVBFX0NPREVfQVJSQVkpCistICAgICAgICAgICAgZl90 eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFt LCAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBhcnJh eXByaW50X3JlY3Vyc2VfbGV2ZWwpOworLQorLSAgICAgICAgICBsb3dlcl9ib3VuZCA9IGY3N19n ZXRfbG93ZXJib3VuZCAodHlwZSk7CistICAgICAgICAgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkv KiBOb3QgdGhlIGRlZmF1bHQuICAqLworLSAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsKKy0KKy0gICAgICAgICAgLyogTWFrZSBzdXJlIHRo YXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1lZCBzaXplIGFycmF5LCB3ZQorLSAgICAgICAgICAgICBw cmludCBvdXQgYSB3YXJuaW5nIGFuZCBwcmludCB0aGUgdXBwZXJib3VuZCBhcyAnKicuICAqLwor LQorLSAgICAgICAgICBpZiAoVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKHR5 cGUpKQorLSAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIioiKTsKKy0gICAg ICAgICAgZWxzZQorLSAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgIHVwcGVyX2JvdW5kID0g Zjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKy0gICAgICAgICAgICAgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91bmQpOworLSAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09E RV9BUlJBWSkKKy0gICAgICAgICAgICBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDAsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCk7CistICAgICAg ICB9CisrCXsKKysJICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7Cisr CSAgaWYgKGxvd2VyX2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVsdC4gICovCisrCSAgICBm cHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZDoiLCBsb3dlcl9ib3VuZCk7CisrCisrCSAgLyog TWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1lZCBzaXplIGFycmF5LCB3ZQorKwkg ICAgIHByaW50IG91dCBhIHdhcm5pbmcgYW5kIHByaW50IHRoZSB1cHBlcmJvdW5kIGFzICcqJy4g ICovCisrCisrCSAgaWYgKFRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBl KSkKKysJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIioiKTsKKysJICBlbHNlCisrCSAg ICB7CisrCSAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKysJ ICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7CisrCSAg ICB9CisrCX0KKysKKysgICAgICBpZiAoVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSkgIT0gVFlQRV9DT0RFX0FSUkFZKQorKwlmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZ UEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsCisrCQkJCSAgICAgMCwgMCwgYXJyYXlw cmludF9yZWN1cnNlX2xldmVsLAorKwkJCQkgICAgIHByaW50X3Jhbmtfb25seSk7CisrCisgICAg ICAgaWYgKGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCA9PSAxKQorIAlmcHJpbnRmX2ZpbHRlcmVk IChzdHJlYW0sICIpIik7CisgICAgICAgZWxzZQorQEAgLTIxOSwxMyArMjIzLDE0IEBACisgICAg IGNhc2UgVFlQRV9DT0RFX1BUUjoKKyAgICAgY2FzZSBUWVBFX0NPREVfUkVGOgorICAgICAgIGZf dHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVh bSwgMCwgMSwgMCwKKy0JCQkJICAgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsKTsKKysJCQkJICAg YXJyYXlwcmludF9yZWN1cnNlX2xldmVsLCAwKTsKKyAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChz dHJlYW0sICIpIik7CisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgVFlQRV9DT0RFX0ZVTkM6 CisgICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0 eXBlKSwgc3RyZWFtLCAwLAorLQkJCQkgICBwYXNzZWRfYV9wdHIsIDAsIGFycmF5cHJpbnRfcmVj dXJzZV9sZXZlbCk7CisrCQkJCSAgIHBhc3NlZF9hX3B0ciwgMCwgYXJyYXlwcmludF9yZWN1cnNl X2xldmVsLAorKwkJCQkgICAwKTsKKyAgICAgICBpZiAocGFzc2VkX2FfcHRyKQorIAlmcHJpbnRm X2ZpbHRlcmVkIChzdHJlYW0sICIpIik7CisgCitAQCAtMzc2LDcgKzM4MSw3IEBACisgCSAgICAg IGZwdXRzX2ZpbHRlcmVkICgiIDo6ICIsIHN0cmVhbSk7CisgCSAgICAgIGZwdXRzX2ZpbHRlcmVk IChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGluZGV4KSwgc3RyZWFtKTsKKyAJICAgICAgZl90eXBl X3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGluZGV4KSwKKy0J CQkJCSAgIHN0cmVhbSwgc2hvdyAtIDEsIDAsIDAsIDApOworKwkJCQkJICAgc3RyZWFtLCBzaG93 IC0gMSwgMCwgMCwgMCwgMCk7CisgCSAgICAgIGZwdXRzX2ZpbHRlcmVkICgiXG4iLCBzdHJlYW0p OworIAkgICAgfQorIAkgIGZwcmludGZpX2ZpbHRlcmVkIChsZXZlbCwgc3RyZWFtLCAiRW5kIFR5 cGUgIik7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9wb2ludGVycy5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA3OTUy NTg2MCArMDIwMAorQEAgLTAsMCArMSw4MCBAQAorKyEgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysh CisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KysKKytwcm9ncmFtIHBvaW50ZXJzCisrCisrICB0eXBlIDo6IHR3bworKyAgICBpbnRlZ2VyLCBh bGxvY2F0YWJsZSA6OiBpdmxhMSAoOikKKysgICAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogaXZs YTIgKDosIDopCisrICBlbmQgdHlwZSB0d28KKysKKysgIGxvZ2ljYWwsIHRhcmdldCA6OiBsb2d2 CisrICBjb21wbGV4LCB0YXJnZXQgOjogY29tdgorKyAgY2hhcmFjdGVyLCB0YXJnZXQgOjogY2hh cnYKKysgIGNoYXJhY3RlciAobGVuPTMpLCB0YXJnZXQgOjogY2hhcmEKKysgIGludGVnZXIsIHRh cmdldCA6OiBpbnR2CisrICBpbnRlZ2VyLCB0YXJnZXQsIGRpbWVuc2lvbiAoMTAsMikgOjogaW50 YQorKyAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJlYWx2CisrICB0eXBlKHR3byksIHRhcmdldCAgOjog dHdvdgorKworKyAgbG9naWNhbCwgcG9pbnRlciA6OiBsb2dwCisrICBjb21wbGV4LCBwb2ludGVy IDo6IGNvbXAKKysgIGNoYXJhY3RlciwgcG9pbnRlcjo6IGNoYXJwCisrICBjaGFyYWN0ZXIgKGxl bj0zKSwgcG9pbnRlcjo6IGNoYXJhcAorKyAgaW50ZWdlciwgcG9pbnRlciA6OiBpbnRwCisrICBp bnRlZ2VyLCBwb2ludGVyLCBkaW1lbnNpb24gKDosOikgOjogaW50YXAKKysgIHJlYWwsIHBvaW50 ZXIgOjogcmVhbHAKKysgIHR5cGUodHdvKSwgcG9pbnRlciA6OiB0d29wCisrCisrICBudWxsaWZ5 IChsb2dwKQorKyAgbnVsbGlmeSAoY29tcCkKKysgIG51bGxpZnkgKGNoYXJwKQorKyAgbnVsbGlm eSAoY2hhcmFwKQorKyAgbnVsbGlmeSAoaW50cCkKKysgIG51bGxpZnkgKGludGFwKQorKyAgbnVs bGlmeSAocmVhbHApCisrICBudWxsaWZ5ICh0d29wKQorKworKyAgbG9ncCA9PiBsb2d2ICAgICEg QmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorKyAgY29tcCA9PiBjb212CisrICBjaGFycCA9PiBj aGFydgorKyAgY2hhcmFwID0+IGNoYXJhCisrICBpbnRwID0+IGludHYKKysgIGludGFwID0+IGlu dGEKKysgIHJlYWxwID0+IHJlYWx2CisrICB0d29wID0+IHR3b3YKKysKKysgIGxvZ3YgPSBhc3Nv Y2lhdGVkKGxvZ3ApICAgICAhIEJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50CisrICBjb212ID0gY21w bHgoMSwyKQorKyAgY2hhcnYgPSAiYSIKKysgIGNoYXJhID0gImFiYyIKKysgIGludHYgPSAxMAor KyAgaW50YSg6LDopID0gMQorKyAgaW50YSgzLDEpID0gMworKyAgcmVhbHYgPSAzLjE0CisrCisr ICBhbGxvY2F0ZSAodHdvdiVpdmxhMSgzKSkKKysgIGFsbG9jYXRlICh0d292JWl2bGEyKDIsMikp CisrICB0d292JWl2bGExKDEpID0gMTEKKysgIHR3b3YlaXZsYTEoMikgPSAxMgorKyAgdHdvdiVp dmxhMSgzKSA9IDEzCisrICB0d292JWl2bGEyKDEsMSkgPSAyMTEKKysgIHR3b3YlaXZsYTIoMiwx KSA9IDIyMQorKyAgdHdvdiVpdmxhMigxLDIpID0gMjEyCisrICB0d292JWl2bGEyKDIsMikgPSAy MjIKKysKKysgIGludHYgPSBpbnR2ICsgMSAhIEFmdGVyIHZhbHVlIGFzc2lnbm1lbnQKKysKKytl bmQgcHJvZ3JhbSBwb2ludGVycworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwCTIwMTYtMDct MTYgMTA6NTU6NDIuMDc5NTI1ODYwICswMjAwCitAQCAtMCwwICsxLDEwMCBAQAorKyMgQ29weXJp Z2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICJwb2ludGVycy5mOTAiCisr bG9hZF9saWIgZm9ydHJhbi5leHAKKysKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVz dGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKKysgICAge2RlYnVnIGY5MCBxdWll dH1dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrCisraWYgIVtydW50b19tYWluXSB7Cisr ICAgIHVudGVzdGVkICJjb3VsZCBub3QgcnVuIHRvIG1haW4iCisrICAgIHJldHVybiAtMQorK30K KysKKysjIERlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcgdXNlZCwgdGhlIHR5cGUgbmFt ZXMgY2FuIGJlIHByaW50ZWQgZGlmZmVyZW50bHkuCisrc2V0IGxvZ2ljYWwgW2ZvcnRyYW5fbG9n aWNhbDRdCisrc2V0IHJlYWwgW2ZvcnRyYW5fcmVhbDRdCisrc2V0IGludCBbZm9ydHJhbl9pbnQ0 XQorK3NldCBjb21wbGV4IFtmb3J0cmFuX2NvbXBsZXg0XQorKworK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50Il0KKytnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVz dCAicHR5cGUgbG9ncCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRsb2dpY2FsIFxcKSIgInB0eXBl IGxvZ3AsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBjb21wIiAidHlwZSA9IFBU UiBUTyAtPiBcXCggJGNvbXBsZXggXFwpIiAicHR5cGUgY29tcCwgbm90IGFzc29jaWF0ZWQiCisr Z2RiX3Rlc3QgInB0eXBlIGNoYXJwIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq MSBcXCkiICJwdHlwZSBjaGFycCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIGNo YXJhcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiAicHR5cGUgY2hh cmFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgaW50cCIgInR5cGUgPSBQVFIg VE8gLT4gXFwoICRpbnQgXFwpIiAicHR5cGUgaW50cCwgbm90IGFzc29jaWF0ZWQiCisrc2V0IHRl c3QgInB0eXBlIGludGFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHR5 cGUgaW50YXAiICR0ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50IFxc KDosOlxcKVxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAgICBwYXNzICR0ZXN0CisrICAg IH0KKysgICAgLXJlICJ0eXBlID0gJGludCBcXCg6LDpcXClcclxuJGdkYl9wcm9tcHQgJCIgewor KyAgICAgICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQorK2dkYl90ZXN0ICJwdHlwZSByZWFscCIg InR5cGUgPSBQVFIgVE8gLT4gXFwoICRyZWFsIFxcKSIgInB0eXBlIHJlYWxwLCBub3QgYXNzb2Np YXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdHdvcCIgXAorKyAgICBbbXVsdGlfbGluZSAidHlwZSA9 IFBUUiBUTyAtPiBcXCggVHlwZSB0d28iIFwKKysgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6 IGl2bGExXFwoOlxcKSIgXAorKyAgICAgICAgICAgICAgICAiICAgICRpbnQgOjogaXZsYTJcXCg6 LDpcXCkiIFwKKysgICAgICAgICAgICAgICAgIkVuZCBUeXBlIHR3byBcXCkiXSBcCisrICAgICJw dHlwZSB0d29wLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdHdvIiBcCisrICAg IFttdWx0aV9saW5lICJ0eXBlID0gVHlwZSB0d28iIFwKKysgICAgICAgICAgICAgICAgIiAgICAk aW50IDo6IGl2bGExXFwoOlxcKSIgXAorKyAgICAgICAgICAgICAgICAiICAgICRpbnQgOjogaXZs YTJcXCg6LDpcXCkiIFwKKysgICAgICAgICAgICAgICAgIkVuZCBUeXBlIHR3byJdCisrCisrCisr Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJlZm9yZSB2YWx1ZSBhc3NpZ25t ZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHZhbHVlIGFzc2lnbm1l bnQiCisrZ2RiX3Rlc3QgInB0eXBlIHR3b3AiIFwKKysgICAgW211bHRpX2xpbmUgInR5cGUgPSBQ VFIgVE8gLT4gXFwoIFR5cGUgdHdvIiBcCisrICAgICAgICAgICAgICAgICIgICAgJGludCA6OiBp dmxhMVxcKDpcXCkiIFwKKysgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGEyXFwoOiw6 XFwpIiBcCisrICAgICAgICAgICAgICAgICJFbmQgVHlwZSB0d28gXFwpIl0KKysKKysKKytnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQWZ0ZXIgdmFsdWUgYXNzaWdubWVudCJd CisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiCisr Z2RiX3Rlc3QgInB0eXBlIGxvZ3YiICJ0eXBlID0gJGxvZ2ljYWwiCisrZ2RiX3Rlc3QgInB0eXBl IGNvbXYiICJ0eXBlID0gJGNvbXBsZXgiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJ2IiAidHlwZSA9 IGNoYXJhY3RlclxcKjEiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJhIiAidHlwZSA9IGNoYXJhY3Rl clxcKjMiCisrZ2RiX3Rlc3QgInB0eXBlIGludHYiICJ0eXBlID0gJGludCIKKytnZGJfdGVzdCAi cHR5cGUgaW50YSIgInR5cGUgPSAkaW50IFxcKDEwLDJcXCkiCisrZ2RiX3Rlc3QgInB0eXBlIHJl YWx2IiAidHlwZSA9ICRyZWFsIgorKworKworK2dkYl90ZXN0ICJwdHlwZSBsb2dwIiAidHlwZSA9 IFBUUiBUTyAtPiBcXCggJGxvZ2ljYWwgXFwpIgorK2dkYl90ZXN0ICJwdHlwZSBjb21wIiAidHlw ZSA9IFBUUiBUTyAtPiBcXCggJGNvbXBsZXggXFwpIgorK2dkYl90ZXN0ICJwdHlwZSBjaGFycCIg InR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEgXFwpIgorK2dkYl90ZXN0ICJwdHlw ZSBjaGFyYXAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKSIKKytnZGJf dGVzdCAicHR5cGUgaW50cCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRpbnQgXFwpIgorK3NldCB0 ZXN0ICJwdHlwZSBpbnRhcCIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAg IC1yZSAidHlwZSA9ICRpbnQgXFwoMTAsMlxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAg ICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50 IFxcKDEwLDJcXClcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICAgICAgcGFzcyAkdGVzdAor KyAgICB9CisrfQorK2dkYl90ZXN0ICJwdHlwZSByZWFscCIgInR5cGUgPSBQVFIgVE8gLT4gXFwo ICRyZWFsIFxcKSIKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2 MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE2LTA3 LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQy LjA3OTUyNTg2MCArMDIwMAorQEAgLTMyLDkgKzMyLDkgQEAKKyAjIENoZWNrIHRoZSBwdHlwZSBv ZiB2YXJpb3VzIFZMQSBzdGF0ZXMgYW5kIHBvaW50ZXIgdG8gVkxBJ3MuCisgZ2RiX2JyZWFrcG9p bnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtaW5pdCJdCisgZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInZsYTEtaW5pdCIKKy1nZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5cGUgPSA8bm90 IGFsbG9jYXRlZD4iICJwdHlwZSB2bGExIG5vdCBpbml0aWFsaXplZCIKKy1nZGJfdGVzdCAicHR5 cGUgdmxhMiIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2bGEyIG5vdCBpbml0aWFs aXplZCIKKy1nZGJfdGVzdCAicHR5cGUgcHZsYSIgInR5cGUgPSA8bm90IGFzc29jaWF0ZWQ+IiAi cHR5cGUgcHZsYSBub3QgaW5pdGlhbGl6ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYTEiICJ0eXBl ID0gJHJlYWwgXFwoOiw6LDpcXCkiICJwdHlwZSB2bGExIG5vdCBpbml0aWFsaXplZCIKKytnZGJf dGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBlIHZsYTIg bm90IGluaXRpYWxpemVkIgorK2dkYl90ZXN0ICJwdHlwZSBwdmxhIiAidHlwZSA9ICRyZWFsIFxc KDosOiw6XFwpIiAicHR5cGUgcHZsYSBub3QgaW5pdGlhbGl6ZWQiCisgZ2RiX3Rlc3QgInB0eXBl IHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFs bG9jYXRlZFxcXCkiIFwKKyAgICJwdHlwZSB2bGExKDMsIDYsIDkpIG5vdCBpbml0aWFsaXplZCIK KyBnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiBcCitAQCAtODEsMjAgKzgxLDIwIEBA CisgCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtZGVhc3NvY2lh dGVkIl0KKyBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicHZsYS1kZWFzc29jaWF0ZWQiCist Z2RiX3Rlc3QgInB0eXBlIHB2bGEiICJ0eXBlID0gPG5vdCBhc3NvY2lhdGVkPiIgInB0eXBlIHB2 bGEgZGVhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBwdmxhIiAidHlwZSA9ICRyZWFsIFxc KDosOiw6XFwpIiAicHR5cGUgcHZsYSBkZWFzc29jaWF0ZWQiCisgZ2RiX3Rlc3QgInB0eXBlIHB2 bGEoNSwgNDUsIDIwKSIgXAorICAgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBu b3QgYXNzb2NpYXRlZFxcXCkiIFwKKyAgICJwdHlwZSBwdmxhKDUsIDQ1LCAyMCkgbm90IGFzc29j aWF0ZWQiCisgCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtZGVh bGxvY2F0ZWQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWRlYWxsb2NhdGVk IgorLWdkYl90ZXN0ICJwdHlwZSB2bGExIiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIgInB0eXBl IHZsYTEgbm90IGFsbG9jYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5cGUgPSAkcmVh bCBcXCg6LDosOlxcKSIgInB0eXBlIHZsYTEgbm90IGFsbG9jYXRlZCIKKyBnZGJfdGVzdCAicHR5 cGUgdmxhMSgzLCA2LCA5KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3Qg YWxsb2NhdGVkXFxcKSIgXAorICAgInB0eXBlIHZsYTEoMywgNiwgOSkgbm90IGFsbG9jYXRlZCIK KyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMi1kZWFsbG9jYXRl ZCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTItZGVhbGxvY2F0ZWQiCistZ2Ri X3Rlc3QgInB0eXBlIHZsYTIiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmxhMiBu b3QgYWxsb2NhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSB2bGEyIiAidHlwZSA9ICRyZWFsIFxcKDos Oiw6XFwpIiAicHR5cGUgdmxhMiBub3QgYWxsb2NhdGVkIgorIGdkYl90ZXN0ICJwdHlwZSB2bGEy KDUsIDQ1LCAyMCkiIFwKKyAgICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90 IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkgbm90IGFsbG9jYXRl ZCIKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS10eXBlLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAJMjAxNi0wNy0xNiAxMDo1NDo0 OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA4MDUyNTg2OCAr MDIwMAorQEAgLTEzMiw3ICsxMzIsMTAgQEAKKyAgICAgICAgICAgICAgICAgICAgICAiRW5kIFR5 cGUgb25lIiBdCisgCisgIyBDaGVjayBhbGxvY2F0aW9uIHN0YXR1cyBvZiBkeW5hbWljIGFycmF5 IGFuZCBpdCdzIGR5bmFtaWMgbWVtYmVycworLWdkYl90ZXN0ICJwdHlwZSBmaXZlZHluYXJyIiAi dHlwZSA9IDxub3QgYWxsb2NhdGVkPiIKKytnZGJfdGVzdCAicHR5cGUgZml2ZWR5bmFyciIgXAor KyAgICAgICAgIFttdWx0aV9saW5lICJ0eXBlID0gVHlwZSBmaXZlIiBcCisrICAgICAgICAgICAg ICAgICAgICAgIiAgICBUeXBlIG9uZSA6OiB0b25lIiBcCisrICAgICAgICAgICAgICAgICAgICAg IkVuZCBUeXBlIGZpdmUgXFwoOlxcKSIgXQorIGdkYl90ZXN0ICJuZXh0IiAiIgorIGdkYl90ZXN0 ICJwdHlwZSBmaXZlZHluYXJyKDIpIiBcCisgICAgICAgICAgW211bHRpX2xpbmUgInR5cGUgPSBU eXBlIGZpdmUiIFwKK0BAIC0xNDEsNyArMTQ0LDcgQEAKKyAgICAgICAgICAicHR5cGUgZml2ZWR5 bmFycigyKSwgdG9uZSBpcyBub3QgYWxsb2NhdGVkIgorIGdkYl90ZXN0ICJwdHlwZSBmaXZlZHlu YXJyKDIpJXRvbmUiIFwKKyAgICAgICAgICBbbXVsdGlfbGluZSAidHlwZSA9IFR5cGUgb25lIiBc CistICAgICAgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGFcXCg8bm90IGFsbG9jYXRl ZD5cXCkiIFwKKysgICAgICAgICAgICAgICAgICAgICAiICAgICRpbnQgOjogaXZsYVxcKDosOiw6 XFwpIiBcCisgICAgICAgICAgICAgICAgICAgICAgIkVuZCBUeXBlIG9uZSIgXSBcCisgICAgICAg ICAgInB0eXBlIGZpdmVkeW5hcnIoMikldG9uZSwgbm90IGFsbG9jYXRlZCIKKyAKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5l eHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAkyMDE2LTA3LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1 MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXZhbHVlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA4MDUyNTg2OCArMDIwMAorQEAg LTM0LDcgKzM0LDcgQEAKKyBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMS1pbml0Igor IGdkYl90ZXN0ICJwcmludCB2bGExIiAiID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHJpbnQgbm9uLWFs bG9jYXRlZCB2bGExIgorIGdkYl90ZXN0ICJwcmludCAmdmxhMSIgXAorLSAgIiA9IFxcXChQVFIg VE8gLT4gXFxcKCAkcmVhbCBcXFwoPG5vdCBhbGxvY2F0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwK KysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDosOiw6XFxcKVxcXClcXFwpICRo ZXgiIFwKKyAgICJwcmludCBub24tYWxsb2NhdGVkICZ2bGExIgorIGdkYl90ZXN0ICJwcmludCB2 bGExKDEsMSwxKSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYWxsb2Nh dGVkXFxcKSIgXAorICAgInByaW50IG1lbWJlciBpbiBub24tYWxsb2NhdGVkIHZsYTEgKDEpIgor QEAgLTc1LDcgKzc1LDcgQEAKKyAjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIHVuZGVmaW5lZCBw b2ludGVyIHRvIFZMQSAoZGFuZ2xpbmcpCisgZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSA8bm90 IGFzc29jaWF0ZWQ+IiAicHJpbnQgdW5kZWZpbmVkIHB2bGEiCisgZ2RiX3Rlc3QgInByaW50ICZw dmxhIiBcCistICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCg8bm90IGFzc29jaWF0 ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwg XFxcKDosOiw6XFxcKVxcXClcXFwpICRoZXgiIFwKKyAgICJwcmludCBub24tYXNzb2NpYXRlZCAm cHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4KSIgIm5vIHN1Y2ggdmVjdG9yIGVs ZW1lbnQgXFxcKHZlY3RvciBub3QgYXNzb2NpYXRlZFxcXCkiIFwKKyAgICJwcmludCB1bmRlZmlu ZWQgcHZsYSgxLDMsOCkiCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0 ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAu MjAxNjA2MzAub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAJMjAx Ni0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAJMjAxNi0wNy0xNiAxMDo1 NTo0Mi4wODA1MjU4NjggKzAyMDAKK0BAIC0xNyw2ICsxNyw3IEBACisgIyBBcnJheSAoVkxBKS4K KyAKKyBsb2FkX2xpYiBtaS1zdXBwb3J0LmV4cAorK2xvYWRfbGliIGZvcnRyYW4uZXhwCisgc2V0 IE1JRkxBR1MgIi1pPW1pIgorIGxvYWRfbGliICJmb3J0cmFuLmV4cCIKKyAKK0BAIC01MCwxMCAr NTEsMTAgQEAKKyBtaV9nZGJfdGVzdCAiNTAwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGEx IiBcCisgICAiNTAwXFxeZG9uZSx2YWx1ZT1cIjxub3QgYWxsb2NhdGVkPlwiIiAiZXZhbHVhdGUg bm90IGFsbG9jYXRlZCB2bGEiCisgCistbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHZsYTFfbm90 X2FsbG9jYXRlZCB2bGExICI8bm90IGFsbG9jYXRlZD4iIFwKKyttaV9jcmVhdGVfdmFyb2JqX2No ZWNrZWQgdmxhMV9ub3RfYWxsb2NhdGVkIHZsYTEgIiRyZWFsIFxcKDpcXCkiIFwKKyAgICJjcmVh dGUgbG9jYWwgdmFyaWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgorIG1pX2dkYl90ZXN0ICI1MDEt dmFyLWluZm8tdHlwZSB2bGExX25vdF9hbGxvY2F0ZWQiIFwKKy0gICI1MDFcXF5kb25lLHR5cGU9 XCI8bm90IGFsbG9jYXRlZD5cIiIgXAorKyAgIjUwMVxcXmRvbmUsdHlwZT1cIiRyZWFsIFxcKDpc XClcIiIgXAorICAgImluZm8gdHlwZSB2YXJpYWJsZSB2bGExX25vdF9hbGxvY2F0ZWQiCisgbWlf Z2RiX3Rlc3QgIjUwMi12YXItc2hvdy1mb3JtYXQgdmxhMV9ub3RfYWxsb2NhdGVkIiBcCisgICAi NTAyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIiIFwKK0BAIC0xNDAsMTAgKzE0MSwxMCBAQAor ICAgICAtcmUgIjU4MFxcXmRvbmUsdmFsdWU9XCI8bm90IGFzc29jaWF0ZWQ+XCIuKiR7bWlfZ2Ri X3Byb21wdH0kIiB7CisgCXBhc3MgJHRlc3QKKyAKKy0JbWlfY3JlYXRlX3Zhcm9ial9jaGVja2Vk IHB2bGEyX25vdF9hc3NvY2lhdGVkIHB2bGEyICI8bm90IGFzc29jaWF0ZWQ+IiBcCisrCW1pX2Ny ZWF0ZV92YXJvYmpfY2hlY2tlZCBwdmxhMl9ub3RfYXNzb2NpYXRlZCBwdmxhMiAiJHJlYWwgXFwo Oiw6XFwpIiBcCisgCSAgICAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHB2bGEyX25vdF9hc3NvY2lh dGVkIgorIAltaV9nZGJfdGVzdCAiNTgxLXZhci1pbmZvLXR5cGUgcHZsYTJfbm90X2Fzc29jaWF0 ZWQiIFwKKy0JICAgICI1ODFcXF5kb25lLHR5cGU9XCI8bm90IGFzc29jaWF0ZWQ+XCIiIFwKKysJ ICAgICI1ODFcXF5kb25lLHR5cGU9XCIkcmVhbCBcXCg6LDpcXClcIiIgXAorIAkgICAgImluZm8g dHlwZSB2YXJpYWJsZSBwdmxhMl9ub3RfYXNzb2NpYXRlZCIKKyAJbWlfZ2RiX3Rlc3QgIjU4Mi12 YXItc2hvdy1mb3JtYXQgcHZsYTJfbm90X2Fzc29jaWF0ZWQiIFwKKyAJICAgICI1ODJcXF5kb25l LGZvcm1hdD1cIm5hdHVyYWxcIiIgXAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtNW9mNy5w YXRjaCBiL2dkYi12bGEtaW50ZWwtNW9mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi42OGNmYzU3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC01b2Y3 LnBhdGNoCkBAIC0wLDAgKzEsMzQ1IEBACitGcm9tIGI2ZTY2OGNjZDM1NmVhM2U3NWQzMGYyMDMx NDMzNGIxMjAzYzIyZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCZXJuaGFyZCBI ZWNrZWwgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDEyIEp1bCAyMDE2 IDA4OjE5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNS83XSBSZXNvbHZlIGR5bmFtaWMgdGFy Z2V0IHR5cGVzIG9mIHBvaW50ZXJzLgorCitXaGVuIGRlcmVmZXJlbmNpbmcgcG9pbnRlcnMgdG8g ZHluYW1pYyB0YXJnZXQgdHlwZXMsCityZXNvbHZlIHRoZSB0YXJnZXQgdHlwZS4KKworMjAxNi0w Ni0zMCAgQmVybmhhcmQgSGVja2VsICA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KKworZ2Ri L0NoYW5nZWxvZzoKKwkqIE5FV1M6IEFkZGVkIGVudHJ5LgorCSogYy12YWxwcmludC5jIChjX3By aW50X3ZhbCk6IFJlc29sdmUgZHluYW1pYyB0YXJnZXQgdHlwZXMuCisJKiB2YWxvcHMuYyAodmFs dWVfaW5kKTogUmVzb2x2ZSBkeW5hbWljIHRhcmdldCB0eXBlcy4KKwkqIHZhbHByaW50LmMgKGNo ZWNrX3ByaW50YWJsZSk6IERvbid0IHNob3J0Y3V0IG5vdCBhc3NvY2lhdGVkCisJICBwb2ludGVy cy4KKworZ2RiL1Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiBwb2ludGVycy5mOTA6IEFkZGVkIHBv aW50ZXIgdG8gZHluYW1pYyB0eXBlcy4KKwkqIGdkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cDogTmV3 LgorCitDaGFuZ2UtSWQ6IEk5OThkNGRhNGE1YmE0ODk5YjhjYjIxMTU1NzZmNDRlZmE3NDFlNjk4 CistLS0KKyBnZGIvTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCisg Z2RiL2MtdmFscHJpbnQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKysrKysrCisgZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAgICAgICAgfCAgIDQgKysKKyBnZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cCB8IDEyMyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MCB8ICAx NyArKysrKworIGdkYi92YWxvcHMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICsr KystCisgZ2RiL3ZhbHByaW50LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgLS0KKyA3 IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQorIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cAorCitJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL05FV1MKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9ORVdTCTIwMTYtMDgtMDcgMjE6MTg6NDQuMDMyNDA5 MDY1ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL05FV1MJMjAxNi0wOC0wNyAy MToxOToxNy4xNzg3MTUxMTYgKzAyMDAKK0BAIC0xLDYgKzEsOCBAQAorIAkJV2hhdCBoYXMgY2hh bmdlZCBpbiBHREI/CisgCSAgICAgKE9yZ2FuaXplZCByZWxlYXNlIGJ5IHJlbGVhc2UpCisgCisr KiBGb3J0cmFuOiBTdXBwb3J0IHBvaW50ZXJzIHRvIGR5bmFtaWMgdHlwZXMuCisrCisgKioqIENo YW5nZXMgaW4gR0RCIDcuMTIKKyAKKyAqIEdEQiBhbmQgR0RCc2VydmVyIG5vdyBidWlsZCB3aXRo IGEgQysrIGNvbXBpbGVyIGJ5IGRlZmF1bHQuCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcv Z2RiL2MtdmFscHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9y aWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTA4LTA3IDIxOjE4OjQ0LjAzMjQwOTA2NSArMDIwMAor KysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jLXZhbHByaW50LmMJMjAxNi0wOC0wNyAyMTox ODo1MS4wODc0NzQyMDcgKzAyMDAKK0BAIC02NDUsNiArNjQ1LDI4IEBACisgICAgICAgZWxzZQor IAl7CisgCSAgLyogbm9ybWFsIGNhc2UgKi8KKysJICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBU WVBFX0NPREVfUFRSCisrCSAgICAgICYmIDEgPT0gaXNfZHluYW1pY190eXBlICh0eXBlKSkKKysJ ICAgIHsKKysJICAgICAgQ09SRV9BRERSIGFkZHI7CisrCSAgICAgIGlmIChOVUxMICE9IFRZUEVf REFUQV9MT0NBVElPTiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKQorKwkJYWRkciA9IHZhbHVl X2FkZHJlc3MgKHZhbCk7CisrCSAgICAgIGVsc2UKKysJCWFkZHIgPSB2YWx1ZV9hc19hZGRyZXNz ICh2YWwpOworKworKwkgICAgICAvKiBXZSByZXNvbHZlIHRoZSB0YXJnZXQtdHlwZSBvbmx5IHdo ZW4gdGhlCisrCSAgICAgICAgIHBvaW50ZXIgaXMgYXNzb2NpYXRlZC4gICovCisrCSAgICAgIGlm ICgoYWRkciAhPSAwKQorKwkJICAmJiAoMCA9PSB0eXBlX25vdF9hc3NvY2lhdGVkICh0eXBlKSkp CisrCQkgIFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpID0KKysJCSAgICAgIHJlc29sdmVfZHluYW1p Y190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwKKysJCQkJCSAgICBOVUxMLCBhZGRyKTsK KysJICAgIH0KKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIC8qIERvIG5vdGhpbmcuIFJlZmVy ZW5jZXMgYXJlIGFscmVhZHkgcmVzb2x2ZWQgZnJvbSB0aGUgYmVnaW5uaW5nLAorKwkgICAgICAg ICBvbmx5IHBvaW50ZXJzIGFyZSByZXNvbHZlZCB3aGVuIHdlIGFjdHVhbCBuZWVkIHRoZSB0YXJn ZXQuICAqLworKwkgICAgfQorIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKKyAJ ICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFtLCAtMSk7CisgCSAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAJMjAx Ni0wOC0wNyAyMToxODo0NC4wMzM0MDkwNzQgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAkyMDE2LTA4LTA3IDIxOjE4OjUxLjA4 ODQ3NDIxNiArMDIwMAorQEAgLTI2LDYgKzI2LDggQEAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCJdCisgZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiCisgZ2RiX3Rlc3QgInB0 eXBlIHB0ciIgImludCBcXChcXCpcXClcXFxbdmFyaWFibGUgbGVuZ3RoXFxcXSIgInB0eXBlIHB0 ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHJpbnQgcHRyIiAiXFwo aW50IFxcKFxcKlxcKVxcXFt2YXJpYWJsZSBsZW5ndGhcXFxdXFwpIDB4MCIgInByaW50IHB0ciwg QmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHJpbnQgKnB0ciIgIkNhbm5v dCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQgKnB0ciwgQmVmb3JlIHBvaW50 ZXIgYXNzaWdubWVudCIKKyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAi dmxhc19maWxsZWQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGFzX2ZpbGxlZCIK K0BAIC0zOCwzICs0MCw1IEBACisgZ2RiX3Rlc3QgInByaW50IHZsYXJlZjIiICIgPSBcXCguKlxc KSBAJGhleDogXFx7NSwgNywgOVxcfSIKKyBnZGJfdGVzdCAicHJpbnQgYyIgIiA9IFxce2UgPSBc XHtjID0gQCRoZXhcXH1cXH0iCisgZ2RiX3Rlc3QgInB0eXBlIHB0ciIgImludCBcXChcXCpcXClc XFxbM1xcXF0iCisrZ2RiX3Rlc3QgInByaW50IHB0ciIgIlxcKGludCBcXChcXCpcXClcXFxbM1xc XF1cXCkgJGhleCIKKytnZGJfdGVzdCAicHJpbnQgKnB0ciIgIiA9IFxcezUsIDcsIDlcXH0iCitJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2lu dGVycy5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3BvaW50ZXJzLmV4cAkyMDE2LTA4LTA3IDIxOjE4OjUxLjA4ODQ3NDIxNiArMDIw MAorQEAgLTAsMCArMSwxMjMgQEAKKysjIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytzdGFu ZGFyZF90ZXN0ZmlsZSAicG9pbnRlcnMuZjkwIgorK2xvYWRfbGliIGZvcnRyYW4uZXhwCisrCisr aWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtz cmNmaWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisr fQorKworK2lmICFbcnVudG9fbWFpbl0geworKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0 byBtYWluIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBp bGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmludGVkIGRpZmZlcmVudGx5 LgorK3NldCBsb2dpY2FsIFtmb3J0cmFuX2xvZ2ljYWw0XQorK3NldCByZWFsIFtmb3J0cmFuX3Jl YWw0XQorK3NldCBpbnQgW2ZvcnRyYW5faW50NF0KKytzZXQgY29tcGxleCBbZm9ydHJhbl9jb21w bGV4NF0KKysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3Jl IHBvaW50ZXIgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9y ZSBwb2ludGVyIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInByaW50IGxvZ3AiICI9IFxcKFBUUiBU TyAtPiBcXCggJGxvZ2ljYWwgXFwpXFwpIDB4MCIgInByaW50IGxvZ3AsIG5vdCBhc3NvY2lhdGVk IgorK2dkYl90ZXN0ICJwcmludCAqbG9ncCIgIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJl c3MgMHgwIiAicHJpbnQgKmxvZ3AsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCBj b21wIiAiPSBcXChQVFIgVE8gLT4gXFwoICRjb21wbGV4IFxcKVxcKSAweDAiICJwcmludCBjb21w LCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmNvbXAiICJDYW5ub3QgYWNjZXNz IG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpjb21wLCBub3QgYXNzb2NpYXRlZCIKKytn ZGJfdGVzdCAicHJpbnQgY2hhcnAiICI9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMSBc XClcXCkgMHgwIiAicHJpbnQgY2hhcnAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmlu dCAqY2hhcnAiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpj aGFycCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IGNoYXJhcCIgIj0gXFwoUFRS IFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAweDAiICJwcmludCBjaGFyYXAsIG5vdCBh c3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqY2hhcmFwIiAiQ2Fubm90IGFjY2VzcyBtZW1v cnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqY2hhcmFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJf dGVzdCAicHJpbnQgaW50cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkaW50IFxcKVxcKSAweDAiICJw cmludCBpbnRwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmludHAiICJDYW5u b3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICppbnRwLCBub3QgYXNzb2Np YXRlZCIKKytzZXQgdGVzdCAicHJpbnQgaW50YXAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0 X211bHRpcGxlICJwcmludCBpbnRhcCIgJHRlc3QgeworKyAgLXJlICIgPSBcXChQVFIgVE8gLT4g XFwoICRpbnQgXFwoOiw6XFwpXFwpXFwpIDxub3QgYXNzb2NpYXRlZD5cclxuJGdkYl9wcm9tcHQg JCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9CisrICAtcmUgIiA9IDxub3QgYXNzb2NpYXRlZD5c clxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9CisrfQorK2dkYl90ZXN0 ICJwcmludCByZWFscCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkcmVhbCBcXClcXCkgMHgwIiAicHJp bnQgcmVhbHAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqcmVhbHAiICJDYW5u b3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpyZWFscCwgbm90IGFzc29j aWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IFwkbXlfdmFyID0gaW50cCIgIj0gXFwoUFRSIFRPIC0+ IFxcKCAkaW50IFxcKVxcKSAweDAiCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgIkJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50Il0KKytnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInByaW50ICoodHdv cCklaXZsYTIiICI9IDxub3QgYWxsb2NhdGVkPiIKKysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAiQWZ0ZXIgdmFsdWUgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInByaW50 IGxvZ3AiICI9IFxcKFBUUiBUTyAtPiBcXCggJGxvZ2ljYWwgXFwpXFwpICRoZXhcKCA8Lio+XCk/ IgorK2dkYl90ZXN0ICJwcmludCAqbG9ncCIgIj0gXFwuVFJVRVxcLiIKKytnZGJfdGVzdCAicHJp bnQgY29tcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkY29tcGxleCBcXClcXCkgJGhleFwoIDwuKj5c KT8iCisrZ2RiX3Rlc3QgInByaW50ICpjb21wIiAiPSBcXCgxLDJcXCkiCisrZ2RiX3Rlc3QgInBy aW50IGNoYXJwIiAiPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEgXFwpXFwpICRoZXhc KCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqY2hhcnAiICI9ICdhJyIKKytnZGJfdGVzdCAi cHJpbnQgY2hhcmFwIiAiPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpXFwpICRo ZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqY2hhcmFwIiAiPSAnYWJjJyIKKytnZGJf dGVzdCAicHJpbnQgaW50cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkaW50IFxcKVxcKSAkaGV4XCgg PC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmludHAiICI9IDEwIgorK3NldCB0ZXN0X25hbWUg InByaW50IGludGFwLCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCBpbnRh cCIgJHRlc3RfbmFtZSB7CisrICAtcmUgIj0gXFwoXFwoIDEsIDEsIDMoLCAxKXs3fVxcKSBcXCgg MSgsIDEpezl9XFwpIFxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFt ZQorKyAgfQorKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXCgxMCwyXFwpXFwpXFwp ICRoZXhcKCA8Lio+XCk/XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgZ2RiX3Rlc3QgInByaW50 ICppbnRhcCIgIj0gXFwoXFwoIDEsIDEsIDMoLCAxKXs3fVxcKSBcXCggMSgsIDEpezl9XFwpIFxc KSIKKysgICAgcGFzcyAkdGVzdF9uYW1lCisrICB9CisrfQorK3NldCB0ZXN0X25hbWUgInByaW50 IGludHZsYXAsIGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IGludHZsYXAi ICR0ZXN0X25hbWUgeworKyAgLXJlICI9IFxcKDIsIDIsIDIsIDQoLCAyKXs2fVxcKVxyXG4kZ2Ri X3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorKyAgLXJlICI9IFxcKFBU UiBUTyAtPiBcXCggJGludCBcXCgxMFxcKVxcKVxcKSAkaGV4XCggPC4qPlwpP1xyXG4kZ2RiX3By b21wdCAkIiB7CisrICAgIGdkYl90ZXN0ICJwcmludCAqaW50dmxhcCIgIj0gXFwoMiwgMiwgMiwg NCgsIDIpezZ9XFwpIgorKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKyt9CisrZ2RiX3Rlc3Qg InByaW50IHJlYWxwIiAiPSBcXChQVFIgVE8gLT4gXFwoICRyZWFsIFxcKVxcKSAkaGV4XCggPC4q PlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKnJlYWxwIiAiPSAzXFwuMTQwMDBcXGQrIgorK2dkYl90 ZXN0ICJwcmludCBhcnJheU9mUHRyKDIpJXAiICI9IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0d28g XFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqKGFycmF5T2ZQdHIoMikl cCkiICI9IFxcKCBpdmxhMSA9IFxcKDExLCAxMiwgMTNcXCksIGl2bGEyID0gXFwoXFwoIDIxMSwg MjIxXFwpIFxcKCAyMTIsIDIyMlxcKSBcXCkgXFwpIgorK3NldCB0ZXN0X25hbWUgInByaW50IGFy cmF5T2ZQdHIoMyklcCIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdF9uYW1lICR0ZXN0X25hbWUg eworKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0d28gXFwpXFwpIDxub3QgYXNzb2Np YXRlZD5cclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKysg IC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHdvIFxcKVxcKSAweDBcclxuJGdkYl9wcm9t cHQgJCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKyt9Cisrc2V0IHRlc3RfbmFtZSAi cHJpbnQgKihhcnJheU9mUHRyKDMpJXApLCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxl ICJwcmludCAqKGFycmF5T2ZQdHIoMyklcCkiICR0ZXN0X25hbWUgeworKyAgLXJlICJDYW5ub3Qg YWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBh c3MgJHRlc3RfbmFtZQorKyAgfQorKyAgLXJlICJBdHRlbXB0IHRvIHRha2UgY29udGVudHMgb2Yg YSBub3QgYXNzb2NpYXRlZCBwb2ludGVyLlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3Mg JHRlc3RfbmFtZQorKyAgfQorK30KKytnZGJfdGVzdCAicHJpbnQgKigoaW50ZWdlciopICZpbnRh ICsgMikiICI9IDMiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYXJyYXkiCisrZ2RiX3Rlc3Qg InByaW50ICooKGludGVnZXIqKSAmaW50dmxhICsgMykiICI9IDQiICJwcmludCB0ZW1wb3Jhcnkg cG9pbnRlciwgYWxsb2NhdGVkIHZsYSIKKytnZGJfdGVzdCAicHJpbnQgXCRwYyIgIj0gXFwoUFRS IFRPIC0+IFxcKCB2b2lkIFxcKFxcKVxcKFxcKVxcKVxcKSAkaGV4IDxwb2ludGVyc1xcK1xcZCs+ IiAiUHJpbnQgcHJvZ3JhbSBjb3VudGVyIgorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJz LmY5MAkyMDE2LTA4LTA3IDIxOjE4OjQ0LjAzMzQwOTA3NCArMDIwMAorKysrIGdkYi03LjExLjkw LjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCTIwMTYtMDgt MDcgMjE6MTg6NTEuMDg4NDc0MjE2ICswMjAwCitAQCAtMjAsMTQgKzIwLDIwIEBACisgICAgIGlu dGVnZXIsIGFsbG9jYXRhYmxlIDo6IGl2bGEyICg6LCA6KQorICAgZW5kIHR5cGUgdHdvCisgCisr ICB0eXBlIDo6IHR3b1B0cgorKyAgICB0eXBlICh0d28pLCBwb2ludGVyIDo6IHAKKysgIGVuZCB0 eXBlIHR3b1B0cgorKworICAgbG9naWNhbCwgdGFyZ2V0IDo6IGxvZ3YKKyAgIGNvbXBsZXgsIHRh cmdldCA6OiBjb212CisgICBjaGFyYWN0ZXIsIHRhcmdldCA6OiBjaGFydgorICAgY2hhcmFjdGVy IChsZW49MyksIHRhcmdldCA6OiBjaGFyYQorICAgaW50ZWdlciwgdGFyZ2V0IDo6IGludHYKKyAg IGludGVnZXIsIHRhcmdldCwgZGltZW5zaW9uICgxMCwyKSA6OiBpbnRhCisrICBpbnRlZ2VyLCB0 YXJnZXQsIGFsbG9jYXRhYmxlLCBkaW1lbnNpb24gKDopIDo6IGludHZsYQorICAgcmVhbCwgdGFy Z2V0ICAgIDo6IHJlYWx2CisgICB0eXBlKHR3byksIHRhcmdldCAgOjogdHdvdgorKyAgdHlwZSh0 d29QdHIpIDo6IGFycmF5T2ZQdHIgKDMpCisgCisgICBsb2dpY2FsLCBwb2ludGVyIDo6IGxvZ3AK KyAgIGNvbXBsZXgsIHBvaW50ZXIgOjogY29tcAorQEAgLTM1LDYgKzQxLDcgQEAKKyAgIGNoYXJh Y3RlciAobGVuPTMpLCBwb2ludGVyOjogY2hhcmFwCisgICBpbnRlZ2VyLCBwb2ludGVyIDo6IGlu dHAKKyAgIGludGVnZXIsIHBvaW50ZXIsIGRpbWVuc2lvbiAoOiw6KSA6OiBpbnRhcAorKyAgaW50 ZWdlciwgcG9pbnRlciwgZGltZW5zaW9uICg6KSA6OiBpbnR2bGFwCisgICByZWFsLCBwb2ludGVy IDo6IHJlYWxwCisgICB0eXBlKHR3byksIHBvaW50ZXIgOjogdHdvcAorIAorQEAgLTQ0LDggKzUx LDEyIEBACisgICBudWxsaWZ5IChjaGFyYXApCisgICBudWxsaWZ5IChpbnRwKQorICAgbnVsbGlm eSAoaW50YXApCisrICBudWxsaWZ5IChpbnR2bGFwKQorICAgbnVsbGlmeSAocmVhbHApCisgICBu dWxsaWZ5ICh0d29wKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigxKSVwKQorKyAgbnVsbGlmeSAo YXJyYXlPZlB0cigyKSVwKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigzKSVwKQorIAorICAgbG9n cCA9PiBsb2d2ICAgICEgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorICAgY29tcCA9PiBjb212 CitAQCAtNTMsOCArNjQsMTAgQEAKKyAgIGNoYXJhcCA9PiBjaGFyYQorICAgaW50cCA9PiBpbnR2 CisgICBpbnRhcCA9PiBpbnRhCisrICBpbnR2bGFwID0+IGludHZsYQorICAgcmVhbHAgPT4gcmVh bHYKKyAgIHR3b3AgPT4gdHdvdgorKyAgYXJyYXlPZlB0cigyKSVwID0+IHR3b3YKKyAKKyAgIGxv Z3YgPSBhc3NvY2lhdGVkKGxvZ3ApICAgICAhIEJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50CisgICBj b212ID0gY21wbHgoMSwyKQorQEAgLTYzLDYgKzc2LDEwIEBACisgICBpbnR2ID0gMTAKKyAgIGlu dGEoOiw6KSA9IDEKKyAgIGludGEoMywxKSA9IDMKKysgIGFsbG9jYXRlIChpbnR2bGEoMTApKQor KyAgaW50dmxhKDopID0gMgorKyAgaW50dmxhKDQpID0gNAorKyAgaW50dmxhcCA9PiBpbnR2bGEK KyAgIHJlYWx2ID0gMy4xNAorIAorICAgYWxsb2NhdGUgKHR3b3YlaXZsYTEoMykpCitJbmRleDog Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3ZhbG9wcy5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu MTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAyMToxODo0NC4wMzU0 MDkwOTMgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsb3BzLmMJMjAxNi0w OC0wNyAyMToxODo1MS4wODk0NzQyMjUgKzAyMDAKK0BAIC0xNTYyLDYgKzE1NjIsMTkgQEAKKyAg IGlmIChUWVBFX0NPREUgKGJhc2VfdHlwZSkgPT0gVFlQRV9DT0RFX1BUUikKKyAgICAgeworICAg ICAgIHN0cnVjdCB0eXBlICplbmNfdHlwZTsKKysgICAgICBDT1JFX0FERFIgYWRkcjsKKysKKysg ICAgICBpZiAodHlwZV9ub3RfYXNzb2NpYXRlZCAoYmFzZV90eXBlKSkKKysgICAgICAgIGVycm9y IChfKCJBdHRlbXB0IHRvIHRha2UgY29udGVudHMgb2YgYSBub3QgYXNzb2NpYXRlZCBwb2ludGVy LiIpKTsKKysKKysgICAgICBpZiAoTlVMTCAhPSBUWVBFX0RBVEFfTE9DQVRJT04gKFRZUEVfVEFS R0VUX1RZUEUgKGJhc2VfdHlwZSkpKQorKwlhZGRyID0gdmFsdWVfYWRkcmVzcyAoYXJnMSk7Cisr ICAgICAgZWxzZQorKwlhZGRyID0gdmFsdWVfYXNfYWRkcmVzcyAoYXJnMSk7CisrCisrICAgICAg aWYgKGFkZHIgIT0gMCkKKysJVFlQRV9UQVJHRVRfVFlQRSAoYmFzZV90eXBlKSA9CisrCSAgICBy ZXNvbHZlX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAoYmFzZV90eXBlKSwgTlVMTCwg YWRkcik7CisgCisgICAgICAgLyogV2UgbWF5IGJlIHBvaW50aW5nIHRvIHNvbWV0aGluZyBlbWJl ZGRlZCBpbiBhIGxhcmdlciBvYmplY3QuCisgICAgICAgICAgR2V0IHRoZSByZWFsIHR5cGUgb2Yg dGhlIGVuY2xvc2luZyBvYmplY3QuICAqLworQEAgLTE1NzcsOCArMTU5MCw3IEBACisgICAgICAg ZWxzZQorIAkvKiBSZXRyaWV2ZSB0aGUgZW5jbG9zaW5nIG9iamVjdCBwb2ludGVkIHRvLiAgKi8K KyAJYXJnMiA9IHZhbHVlX2F0X2xhenkgKGVuY190eXBlLCAKKy0JCQkgICAgICAodmFsdWVfYXNf YWRkcmVzcyAoYXJnMSkKKy0JCQkgICAgICAgLSB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoYXJn MSkpKTsKKysJCQkgICAgICAoYWRkciAtIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChhcmcxKSkp OworIAorICAgICAgIGVuY190eXBlID0gdmFsdWVfdHlwZSAoYXJnMik7CisgICAgICAgcmV0dXJu IHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKGFyZzIsIGVuY190eXBlLCBiYXNlX3R5cGUs IGFyZzEpOworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92YWxwcmludC5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE2 LTA4LTA3IDA0OjAwOjAxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3 L2dkYi92YWxwcmludC5jCTIwMTYtMDgtMDcgMjE6MTg6NTEuMDkwNDc0MjM1ICswMjAwCitAQCAt MTE0MSwxMiArMTE0MSw2IEBACisgICAgICAgcmV0dXJuIDA7CisgICAgIH0KKyAKKy0gIGlmICh0 eXBlX25vdF9hc3NvY2lhdGVkICh2YWx1ZV90eXBlICh2YWwpKSkKKy0gICAgeworLSAgICAgIHZh bF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3RyZWFtKTsKKy0gICAgICByZXR1cm4gMDsKKy0gICAg fQorLQorICAgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAodmFsdWVfdHlwZSAodmFsKSkpCisgICAg IHsKKyAgICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKCmRpZmYgLS1naXQg YS9nZGItdmxhLWludGVsLTZvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTZvZjcucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU5NjhlOQotLS0gL2Rldi9udWxsCisr KyBiL2dkYi12bGEtaW50ZWwtNm9mNy5wYXRjaApAQCAtMCwwICsxLDEwMiBAQAorRnJvbSA4NjY1 MzQ0YzE0YjlhZThiMmUwYzM3YmEwNmQ2ODgxYTU0NmQxYTM3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgor RGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDYv N10gRm9ydHJhbjogVGVzdHN1aXRlLCBhZGQgY3ljbGljIHBvaW50ZXJzLgorCisyMDE2LTA1LTI1 ICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorCitnZGIvdGVz dHN1aXRlL0NoYW5nZWxvZzoKKwkqIHBvaW50ZXJzLmY5MDogQWRkIGN5bGljIHBvaW50ZXJzLgor CSogcG9pbnRlcnMuZXhwOiBBZGQgcHJpbnQgb2YgY3ljbGljIHBvaW50ZXJzLgorCitDaGFuZ2Ut SWQ6IEljM2I2MTg3YzU5ODBmZDZjMzdlMmU5NDc4N2Y4MzIxZTViN2YyZDc1CistLS0KKyBnZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cCB8IDIwICsrKysrKysrKysrKysrKysr KysrCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAgfCAxMiArKysrKysr KysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9wb2ludGVycy5leHAKK2luZGV4IGMxOWQ3ZTAuLjY3Y2Y5OTkgMTAwNjQ0Cist LS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cAorKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKK0BAIC01Nyw2ICs1NywyNCBAQCBnZGJf dGVzdF9tdWx0aXBsZSAicHJpbnQgaW50YXAiICR0ZXN0IHsKKyBnZGJfdGVzdCAicHJpbnQgcmVh bHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJHJlYWwgXFwpXFwpIDB4MCIgInByaW50IHJlYWxwLCBu b3QgYXNzb2NpYXRlZCIKKyBnZGJfdGVzdCAicHJpbnQgKnJlYWxwIiAiQ2Fubm90IGFjY2VzcyBt ZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqcmVhbHAsIG5vdCBhc3NvY2lhdGVkIgorIGdk Yl90ZXN0ICJwcmludCBcJG15X3ZhciA9IGludHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBc XClcXCkgMHgwIgorK3NldCB0ZXN0ICJwcmludCBjeWNsaWNwMSwgbm90IGFzc29jaWF0ZWQiCisr Z2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IGN5Y2xpY3AxIiAkdGVzdCB7CisrICAtcmUgIj0gXFwo IGkgPSAtP1xcZCssIHAgPSAweDAgXFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAk dGVzdAorKyAgfQorKyAgLXJlICI9IFxcKCBpID0gLT9cXGQrLCBwID0gPG5vdCBhc3NvY2lhdGVk PiBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9CisrfQorK3Nl dCB0ZXN0ICJwcmludCBjeWNsaWNwMSVwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdF9tdWx0 aXBsZSAicHJpbnQgY3ljbGljcDElcCIgJHRlc3QgeworKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBc XCggVHlwZSB0eXBld2l0aHBvaW50ZXIgXFwpXFwpIDB4MFxyXG4kZ2RiX3Byb21wdCAkIiB7Cisr ICAgIHBhc3MgJHRlc3QKKysgIH0KKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHlw ZXdpdGhwb2ludGVyIFxcKVxcKSA8bm90IGFzc29jaWF0ZWQ+XHJcbiRnZGJfcHJvbXB0ICQiIHsK KysgICAgcGFzcyAkdGVzdAorKyAgfQorK30KKyAKKyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAiQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQiXQorQEAgLTExOCw2ICsxMzYs OCBAQCBnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgKihhcnJheU9mUHRyKDMpJXApIiAkdGVzdF9u YW1lIHsKKyAgICAgcGFzcyAkdGVzdF9uYW1lCisgICB9CisgfQorK2dkYl90ZXN0ICJwcmludCBj eWNsaWNwMSIgIj0gXFwoIGkgPSAxLCBwID0gJGhleFwoIDwuKj5cKT8gXFwpIgorK2dkYl90ZXN0 ICJwcmludCBjeWNsaWNwMSVwIiAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHlwZXdpdGhwb2lu dGVyIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKyBnZGJfdGVzdCAicHJpbnQgKigoaW50ZWdlciop ICZpbnRhICsgMikiICI9IDMiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYXJyYXkiCisgZ2Ri X3Rlc3QgInByaW50ICooKGludGVnZXIqKSAmaW50dmxhICsgMykiICI9IDQiICJwcmludCB0ZW1w b3JhcnkgcG9pbnRlciwgYWxsb2NhdGVkIHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgXCRwYyIgIj0g XFwoUFRSIFRPIC0+IFxcKCB2b2lkIFxcKFxcKVxcKFxcKVxcKVxcKSAkaGV4IDxwb2ludGVyc1xc K1xcZCs+IiAiUHJpbnQgcHJvZ3JhbSBjb3VudGVyIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9w b2ludGVycy5mOTAKK2luZGV4IDAwMDE5M2MuLjYyNDBjODcgMTAwNjQ0CistLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9wb2ludGVycy5mOTAKK0BAIC0yMCw2ICsyMCwxMSBAQCBwcm9ncmFtIHBvaW50ZXJz CisgICAgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGl2bGEyICg6LCA6KQorICAgZW5kIHR5cGUg dHdvCisgCisrICB0eXBlIDo6IHR5cGVXaXRoUG9pbnRlcgorKyAgICBpbnRlZ2VyIGkKKysgICAg dHlwZSh0eXBlV2l0aFBvaW50ZXIpLCBwb2ludGVyOjogcAorKyAgZW5kIHR5cGUgdHlwZVdpdGhQ b2ludGVyCisrCisgICB0eXBlIDo6IHR3b1B0cgorICAgICB0eXBlICh0d28pLCBwb2ludGVyIDo6 IHAKKyAgIGVuZCB0eXBlIHR3b1B0cgorQEAgLTM0LDYgKzM5LDcgQEAgcHJvZ3JhbSBwb2ludGVy cworICAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJlYWx2CisgICB0eXBlKHR3byksIHRhcmdldCAgOjog dHdvdgorICAgdHlwZSh0d29QdHIpIDo6IGFycmF5T2ZQdHIgKDMpCisrICB0eXBlKHR5cGVXaXRo UG9pbnRlciksIHRhcmdldDo6IGN5Y2xpY3AxLGN5Y2xpY3AyCisgCisgICBsb2dpY2FsLCBwb2lu dGVyIDo6IGxvZ3AKKyAgIGNvbXBsZXgsIHBvaW50ZXIgOjogY29tcAorQEAgLTU3LDYgKzYzLDgg QEAgcHJvZ3JhbSBwb2ludGVycworICAgbnVsbGlmeSAoYXJyYXlPZlB0cigxKSVwKQorICAgbnVs bGlmeSAoYXJyYXlPZlB0cigyKSVwKQorICAgbnVsbGlmeSAoYXJyYXlPZlB0cigzKSVwKQorKyAg bnVsbGlmeSAoY3ljbGljcDElcCkKKysgIG51bGxpZnkgKGN5Y2xpY3AyJXApCisgCisgICBsb2dw ID0+IGxvZ3YgICAgISBCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50CisgICBjb21wID0+IGNvbXYK K0BAIC02OCw2ICs3NiwxMCBAQCBwcm9ncmFtIHBvaW50ZXJzCisgICByZWFscCA9PiByZWFsdgor ICAgdHdvcCA9PiB0d292CisgICBhcnJheU9mUHRyKDIpJXAgPT4gdHdvdgorKyAgY3ljbGljcDEl aSA9IDEKKysgIGN5Y2xpY3AxJXAgPT4gY3ljbGljcDIKKysgIGN5Y2xpY3AyJWkgPSAyCisrICBj eWNsaWNwMiVwID0+IGN5Y2xpY3AxCisgCisgICBsb2d2ID0gYXNzb2NpYXRlZChsb2dwKSAgICAg ISBCZWZvcmUgdmFsdWUgYXNzaWdubWVudAorICAgY29tdiA9IGNtcGx4KDEsMikKKy0tIAorMi43 LjQKKwoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtN29mNy5wYXRjaCBiL2dkYi12bGEtaW50 ZWwtN29mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjZjMzQx Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC03b2Y3LnBhdGNoCkBAIC0wLDAgKzEs NTE4IEBACitGcm9tIDFlNWJkOWFlYzllZTAyYzJmNzcxZTRkYzk5NzU3MGM4MmQ3NGIzYjggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCZXJuaGFyZCBIZWNrZWwgPGJlcm5oYXJkLmhl Y2tlbEBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDEyIEp1bCAyMDE2IDA4OjE5OjM0ICswMjAwCitT dWJqZWN0OiBbUEFUQ0ggNy83XSBmb3J0X2R5bl9hcnJheTogRm9ydHJhbiBkeW5hbWljIHN0cmlu ZyBzdXBwb3J0CisKK1RoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgc2VtYW50aWMgb2YgdGhlIER3YXJm IHN0cmluZyBsZW5ndGgKK2F0dHJpYnV0ZSB0byByZWZsZWN0IHRoZSBzdGFuZGFyZCBhcyB3ZWxs IGFzIGVuYWJsZXMKK2NvcnJlY3Qgc3RyaW5nIGxlbmd0aCBjYWxjdWxhdGlvbiBvZiBkeW5hbWlj IHN0cmluZ3MuIEFkZAordGVzdHMgZm9yIHZhcm91cyBkeW5hbWljIHN0cmluZyBldmFsdWF0aW9u cy4KKworT2xkOgorKGdkYikgcCBteV9keW5fc3RyaW5nCitDYW5ub3QgYWNjZXNzIG1lbW9yeSBh dCBhZGRyZXNzIDB4NjA1ZmMwCisKK05ldzoKKyhnZGIpIHAgKm15X2R5bl9zdHJpbmcKKyQxID0g J2ZvbycKKworZ2RiL0NoYW5nbG9nOgorCSogZHdhcmYycmVhZC5jIChyZWFkX3RhZ19zdHJpbmdf dHlwZSk6IGNoYW5nZWQKKwlzZW1hbnRpYyBvZiBEV19BVF9zdHJpbmdfbGVuZ3RoIHRvIGJlIGFi bGUgdG8KKwloYW5kbGUgRHdhcmYgYmxvY2tzIGFzIHdlbGwuIFN1cHBvcnQgZm9yCisJRFdfQVRf Ynl0ZV9sZW5ndGggYWRkZWQgdG8gZ2V0IGNvcnJlY3QgbGVuZ3RoCisJaWYgc3BlY2lmaWVkIGlu IGNvbWJpbmF0aW9uIHdpdGgKKwlEV19BVF9zdHJpbmdfbGVuZ3RoLgorCShhdHRyX3RvX2R5bmFt aWNfcHJvcCk6IGFkZGVkCisJZnVuY3Rpb25hbGl0eSB0byBhZGQgRHdhcmYgb3BlcmF0b3JzIHRv IGJhdG9uCisJZGF0YSBhdHRyaWJ1dGUuIEFkZGVkIHBvc3QgdmFsdWVzIHRvIGJhdG9uCisJYXMg cmVxdWlyZWQgYnkgdGhlIHN0cmluZyBldmFsdWF0aW9uIGNhc2UuCisJKHJlYWRfc3VicmFuZ2Vf dHlwZSk6IEFkYXB0IGNhbGxlci4KKwkoc2V0X2RpZV90eXBlKTogQWRhcHQgY2FsbGVyLgorCShh ZGRfcG9zdF92YWx1ZXNfdG9fYmF0b24pOiBOZXcgZnVuY3Rpb24uCisgICAgCSogZ2RidHlwZXMu YyAocmVzb2x2ZV9keW5hbWljX3R5cGUpOiBBZGQKKyAgICAJY29uZGl0aW9ucyB0byBzdXBwb3J0 IHN0cmluZyB0eXBlcy4KKyAgICAJKHJlc29sdmVfZHluYW1pY19hcnJheSk6IEFkZCBjb25kaXRp b25zIGZvciBkeW5hbWljCisgICAgCXN0cmluZ3MgYW5kIGNyZWF0ZSBhIG5ldyBzdHJpbmcgdHlw ZS4KKyAgICAJKGlzX2R5bmFtaWNfdHlwZSk6IEZvbGxvdyBwb2ludGVyIGlmIGEgc3RyaW5nIHR5 cGUKKyAgICAJd2FzIGRldGVjdGVkLCBhcyBGb3J0cmFuIHN0cmluZ3MgYXJlIHJlcHJlc2VudGVk CisgICAgCWFzIHBvaW50ZXJzIHRvIHN0cmluZ3MgaW50ZXJuYWxseS4KKworZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2Vsb2c6CisJKiB2bGEtc3RyaW5ncy5mOTA6IE5ldyBmaWxlLgorCSogdmxhLXN0cmlu Z3MuZXhwOiBOZXcgZmlsZS4KKworQ2hhbmdlLUlkOiBJN2Q3ZjQ3YzdhNDkwMGE3ZmRiNTExMDIw MzI0NTViNTNkNjBlNjBkNworLS0tCisgZ2RiL2R3YXJmMnJlYWQuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxNTggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisgZ2RiL2dkYnR5 cGVzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKystCisgZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAgfCAxMDMgKysrKysrKysrKysrKysrKysrKwor IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwIHwgIDM5ICsrKysrKysr CisgNCBmaWxlcyBjaGFuZ2VkLCAyODUgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3Mu ZXhwCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0 cmluZ3MuZjkwCisKK2RpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJl YWQuYworaW5kZXggNjY1OGEzOC4uNjc4ZGE4ZiAxMDA2NDQKKy0tLSBhL2dkYi9kd2FyZjJyZWFk LmMKKysrKyBiL2dkYi9kd2FyZjJyZWFkLmMKK0BAIC0xNzY0LDcgKzE3NjQsOCBAQCBzdGF0aWMg dm9pZCByZWFkX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IHNpZ25hdHVyZWRfdHlwZSAqKTsKKyAK KyBzdGF0aWMgaW50IGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyLAorIAkJCQkgc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 LAorLQkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCk7CisrCQkJCSBzdHJ1Y3QgZHluYW1p Y19wcm9wICpwcm9wLCBjb25zdCBnZGJfYnl0ZSAqYWRkaXRpb25hbF9kYXRhLAorKwkJCQkgaW50 IGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKyAKKyAvKiBtZW1vcnkgYWxsb2NhdGlvbiBpbnRlcmZh Y2UgKi8KKyAKK0BAIC0xMTQzNyw3ICsxMTQzOCw3IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgICB7CisgICAgICAgbmV3 b2JqLT5zdGF0aWNfbGluaworIAk9IFhPQk5FVyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywg c3RydWN0IGR5bmFtaWNfcHJvcCk7CistICAgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIs IGRpZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmspOworKyAgICAgIGF0dHJfdG9fZHluYW1pY19w cm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rLCBOVUxMLCAwKTsKKyAgICAg fQorIAorICAgY3UtPmxpc3RfaW5fc2NvcGUgPSAmbG9jYWxfc3ltYm9sczsKK0BAIC0xNDQ5NSwy OSArMTQ0OTYsOTQgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0 X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CisgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5 cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOworICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsK Ky0gIHVuc2lnbmVkIGludCBsZW5ndGg7CisrICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gVUlOVF9N QVg7CisrCisrICBpbmRleF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9p bnQ7CisrICByYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLCBpbmRl eF90eXBlLCAxLCBsZW5ndGgpOworIAorKyAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBpcyBk ZWZpbmVkLCB0aGUgbGVuZ3RoIGlzIHN0b3JlZCBpbiBtZW1vcnkuICAqLworICAgYXR0ciA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX3N0cmluZ19sZW5ndGgsIGN1KTsKKyAgIGlmIChhdHRyKQor ICAgICB7CistICAgICAgbGVuZ3RoID0gRFdfVU5TTkQgKGF0dHIpOworKyAgICAgIGlmIChhdHRy X2Zvcm1faXNfYmxvY2sgKGF0dHIpKQorKwl7CisrCSAgc3RydWN0IGF0dHJpYnV0ZSAqYnl0ZV9z aXplLCAqYml0X3NpemU7CisrCSAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdoOworKworKwkgIGJ5 dGVfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOworKwkgIGJp dF9zaXplID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYml0X3NpemUsIGN1KTsKKysKKysJICAv KiBEV19BVF9ieXRlX3NpemUgc2hvdWxkIG5ldmVyIG9jY3VyIGluIGNvbWJpbmF0aW9uIHdpdGgK KysJICAgICBEV19BVF9iaXRfc2l6ZS4gICovCisrCSAgaWYgKGJ5dGVfc2l6ZSAhPSBOVUxMICYm IGJpdF9zaXplICE9IE5VTEwpCisrCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMs CisrCQkgICAgICAgXygiRFdfQVRfYnl0ZV9zaXplIEFORCAiCisrCQkJICJEV19BVF9iaXRfc2l6 ZSBmb3VuZCB0b2dldGhlciBhdCB0aGUgc2FtZSB0aW1lLiIpKTsKKysKKysJICAvKiBJZiBEV19B VF9zdHJpbmdfbGVuZ3RoIEFORCBEV19BVF9ieXRlX3NpemUgZXhpc3QgdG9nZXRoZXIsCisrCSAg ICAgRFdfQVRfYnl0ZV9zaXplIGRlc2NyaWJlcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgc2hv dWxkIGJlIHJlYWQKKysJICAgICBmcm9tIHRoZSBsZW5ndGggbWVtb3J5IGxvY2F0aW9uLiAgKi8K KysJICBpZiAoYnl0ZV9zaXplICE9IE5VTEwpCisrCSAgICB7CisrCSAgICAgIC8qIEJ1aWxkIG5l dyBkd2FyZjJfbG9jZXhwcl9iYXRvbiBzdHJ1Y3R1cmUgd2l0aCBhZGRpdGlvbnMgdG8gdGhlCisr CQkgZGF0YSBhdHRyaWJ1dGUsIHRvIHJlZmxlY3QgRFdBUkYgc3BlY2lhbGl0aWVzIHRvIGdldCBh ZGRyZXNzCisrCQkgc2l6ZXMuICAqLworKwkgICAgICBjb25zdCBnZGJfYnl0ZSBhcHBlbmRfb3Bz W10gPQorKwkJeworKwkJLyogRFdfT1BfZGVyZWZfc2l6ZTogc2l6ZSBvZiBhbiBhZGRyZXNzIG9u IHRoZSB0YXJnZXQgbWFjaGluZQorKwkJICAgKGJ5dGVzKSwgd2hlcmUgdGhlIHNpemUgd2lsbCBi ZSBzcGVjaWZpZWQgYnkgdGhlIG5leHQKKysJCSAgIG9wZXJhbmQuICAqLworKwkJRFdfT1BfZGVy ZWZfc2l6ZSwKKysJCS8qIE9wZXJhbmQgZm9yIERXX09QX2RlcmVmX3NpemUuICAqLworKwkJRFdf VU5TTkQoYnl0ZV9zaXplKSB9OworKworKwkgICAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9w IChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgYXBwZW5kX29wcywKKysJCQkJCSBBUlJBWV9TSVpFKGFw cGVuZF9vcHMpKSkKKysJCWNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKKysJCQkgICBf KCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfYnl0ZV9zaXplIikpOworKwkgICAgfQorKwkgIGVsc2Ug aWYgKGJpdF9zaXplICE9IE5VTEwpCisrCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWlu dHMsCisrCQkgICAgICAgXygiRFdfQVRfc3RyaW5nX2xlbmd0aCBBTkQgIgorKwkJCSAiRFdfQVRf Yml0X3NpemUgZm91bmQgYnV0IG5vdCBzdXBwb3J0ZWQgeWV0LiIpKTsKKysJICAvKiBJZiBEV19B VF9zdHJpbmdfbGVuZ3RoIFdJVEhPVVQgRFdfQVRfYnl0ZV9zaXplIGV4aXN0LCB0aGUgZGVmYXVs dAorKwkgICAgIGlzIHRoZSBhZGRyZXNzIHNpemUgb2YgdGhlIHRhcmdldCBtYWNoaW5lLiAgKi8K KysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIGNvbnN0IGdkYl9ieXRlIGFwcGVuZF9vcHNbXSA9 CisrCQl7IERXX09QX2RlcmVmIH07CisrCisrCSAgICAgIGlmICghYXR0cl90b19keW5hbWljX3By b3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBhcHBlbmRfb3BzLAorKwkJCQkJIEFSUkFZX1NJWkUo YXBwZW5kX29wcykpKQorKwkJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJCSAg IF8oIkNvdWxkIG5vdCBwYXJzZSBEV19BVF9zdHJpbmdfbGVuZ3RoIikpOworKwkgICAgfQorKwor KwkgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2ggPSBoaWdoOworKwl9CisrICAg ICAgZWxzZQorKwl7CisrCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IERXX1VOU05E KGF0dHIpOworKwkgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9IFBST1BfQ09O U1Q7CisrCX0KKyAgICAgfQorICAgZWxzZQorICAgICB7CistICAgICAgLyogQ2hlY2sgZm9yIHRo ZSBEV19BVF9ieXRlX3NpemUgYXR0cmlidXRlLiAgKi8KKysgICAgICAvKiBDaGVjayBmb3IgdGhl IERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUsIHdoaWNoIHJlcHJlc2VudHMgdGhlIGxlbmd0aAor KwkgaW4gdGhpcyBjYXNlLiAgKi8KKyAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdf QVRfYnl0ZV9zaXplLCBjdSk7CisgICAgICAgaWYgKGF0dHIpCistICAgICAgICB7CistICAgICAg ICAgIGxlbmd0aCA9IERXX1VOU05EIChhdHRyKTsKKy0gICAgICAgIH0KKysJeworKwkgIFRZUEVf SElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBEV19VTlNORChhdHRyKTsKKysJICBUWVBFX0hJR0hf Qk9VTkRfS0lORCAocmFuZ2VfdHlwZSkgPSBQUk9QX0NPTlNUOworKwl9CisgICAgICAgZWxzZQor LSAgICAgICAgeworLSAgICAgICAgICBsZW5ndGggPSAxOworLSAgICAgICAgfQorKwl7CisrCSAg VFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IDE7CisrCSAgVFlQRV9ISUdIX0JPVU5EX0tJ TkQgKHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsKKysJfQorICAgICB9CisgCistICBpbmRleF90 eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7CistICByYW5nZV90eXBl ID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLCBpbmRleF90eXBlLCAxLCBsZW5ndGgp OworICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdl X2RlZm4sIGdkYmFyY2gpOworICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hh cl90eXBlLCByYW5nZV90eXBlKTsKKyAKK0BAIC0xNDg0Nyw3ICsxNDkxMyw4IEBAIHJlYWRfYmFz ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCisg c3RhdGljIGludAorIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKy0JCSAgICAgIHN0cnVjdCBkd2FyZjJfY3Ug KmN1LCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wKQorKwkJICAgICAgc3RydWN0IGR3YXJmMl9j dSAqY3UsIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCisrCQkgICAgICBjb25zdCBnZGJfYnl0 ZSAqYWRkaXRpb25hbF9kYXRhLCBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpCisgeworICAgc3Ry dWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbiAqYmF0b247CisgICBzdHJ1Y3Qgb2JzdGFjayAqb2Jz dGFjayA9ICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrOworQEAgLTE0ODU3LDE0ICsxNDky NCwzMyBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 ciwgc3RydWN0IGRpZV9pbmZvICpkaWUsCisgCisgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChh dHRyKSkKKyAgICAgeworLSAgICAgIGJhdG9uID0gWE9CTkVXIChvYnN0YWNrLCBzdHJ1Y3QgZHdh cmYyX3Byb3BlcnR5X2JhdG9uKTsKKysgICAgICBiYXRvbiA9IFhPQk5FVyhvYnN0YWNrLCBzdHJ1 Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsKKyAgICAgICBiYXRvbi0+cmVmZXJlbmNlZF90eXBl ID0gTlVMTDsKKyAgICAgICBiYXRvbi0+bG9jZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OworLSAg ICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAoYXR0ciktPnNpemU7CistICAgICAg YmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0YTsKKysKKysgICAgICBp ZiAoYWRkaXRpb25hbF9kYXRhICE9IE5VTEwgJiYgYWRkaXRpb25hbF9kYXRhX3NpemUgPiAwKQor Kwl7CisrCSAgZ2RiX2J5dGUgKmRhdGE7CisrCisrCSAgZGF0YSA9IChnZGJfYnl0ZSAqKSBvYnN0 YWNrX2FsbG9jKAorKwkgICAgICAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKKysJICAg ICAgRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRhX3NpemUpOworKwkgIG1l bWNweSAoZGF0YSwgRFdfQkxPQ0sgKGF0dHIpLT5kYXRhLCBEV19CTE9DSyAoYXR0ciktPnNpemUp OworKwkgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLIChhdHRyKS0+c2l6ZSwgYWRkaXRpb25hbF9k YXRhLAorKwkJICBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7CisrCisrCSAgYmF0b24tPmxvY2V4cHIu ZGF0YSA9IGRhdGE7CisrCSAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+ c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplOworKwl9CisrICAgICAgZWxzZQorKwl7CisrCSAg YmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0YTsKKysJICBiYXRvbi0+ bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOworKwl9CisrCisgICAgICAgcHJv cC0+ZGF0YS5iYXRvbiA9IGJhdG9uOworICAgICAgIHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VYUFI7 CistICAgICAgZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKKysgICAgICBn ZGJfYXNzZXJ0KHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7CisgICAgIH0KKyAgIGVsc2UgaWYg KGF0dHJfZm9ybV9pc19yZWYgKGF0dHIpKQorICAgICB7CitAQCAtMTQ4OTcsOCArMTQ5ODMsMjgg QEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0 cnVjdCBkaWVfaW5mbyAqZGllLAorIAkJYmF0b24gPSBYT0JORVcgKG9ic3RhY2ssIHN0cnVjdCBk d2FyZjJfcHJvcGVydHlfYmF0b24pOworIAkJYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IGRpZV90 eXBlICh0YXJnZXRfZGllLCB0YXJnZXRfY3UpOworIAkJYmF0b24tPmxvY2V4cHIucGVyX2N1ID0g Y3UtPnBlcl9jdTsKKy0JCWJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0 dHIpLT5zaXplOworLQkJYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLICh0YXJnZXRfYXR0 ciktPmRhdGE7CisrCisrCQlpZiAoYWRkaXRpb25hbF9kYXRhICE9IE5VTEwgJiYgYWRkaXRpb25h bF9kYXRhX3NpemUgPiAwKQorKwkJICB7CisrCQkgICAgZ2RiX2J5dGUgKmRhdGE7CisrCisrCQkg ICAgZGF0YSA9IChnZGJfYnl0ZSAqKSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZp bGVfb2JzdGFjaywKKysJCQkgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSArIGFkZGl0 aW9uYWxfZGF0YV9zaXplKTsKKysJCSAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0YXJnZXRf YXR0ciktPmRhdGEsCisrCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUpOworKwkJ ICAgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUsCisrCQkJICAg IGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX3NpemUpOworKworKwkJICAgIGJhdG9u LT5sb2NleHByLmRhdGEgPSBkYXRhOworKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSAoRFdf QkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZQorKwkJCQkJICAgKyBhZGRpdGlvbmFsX2RhdGFfc2l6 ZSk7CisrCQkgIH0KKysJCWVsc2UKKysJCSAgeworKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEg PSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOworKwkJICAgIGJhdG9uLT5sb2NleHByLnNp emUgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOworKwkJICB9CisrCisgCQlwcm9wLT5k YXRhLmJhdG9uID0gYmF0b247CisgCQlwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOworIAkJZ2Ri X2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKK0BAIC0xNTAwOCwxNyArMTUxMTQs MTcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCisgCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbG93ZXJf Ym91bmQsIGN1KTsKKyAgIGlmIChhdHRyKQorLSAgICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0 ciwgZGllLCBjdSwgJmxvdyk7CisrICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUs IGN1LCAmbG93LCBOVUxMLCAwKTsKKyAgIGVsc2UgaWYgKCFsb3dfZGVmYXVsdF9pc192YWxpZCkK KyAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJNaXNzaW5nIERXX0FUX2xv d2VyX2JvdW5kICIKKyAJCQkJICAgICAgIi0gRElFIGF0IDB4JXggW2luIG1vZHVsZSAlc10iKSwK KyAJICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rfb2ZmLCBvYmpmaWxlX25hbWUgKGN1LT5vYmpmaWxl KSk7CisgCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfdXBwZXJfYm91bmQsIGN1 KTsKKy0gIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoKSkK KysgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBOVUxM LCAwKSkKKyAgICAgeworICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9jb3Vu dCwgY3UpOworLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwg JmhpZ2gpKQorKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwg JmhpZ2gsIE5VTEwsIDApKQorIAl7CisgCSAgLyogSWYgYm91bmRzIGFyZSBjb25zdGFudCBkbyB0 aGUgZmluYWwgY2FsY3VsYXRpb24gaGVyZS4gICovCisgCSAgaWYgKGxvdy5raW5kID09IFBST1Bf Q09OU1QgJiYgaGlnaC5raW5kID09IFBST1BfQ09OU1QpCitAQCAtMjIzODksNyArMjI0OTUsNyBA QCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRf YWxsb2NhdGVkLCBjdSk7CisgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKKyAgICAg eworLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3Ap KQorKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3As IE5VTEwsIDApKQorICAgICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9BTExPQ0FURUQsIHBy b3AsIHR5cGUsIG9iamZpbGUpOworICAgICB9CisgICBlbHNlIGlmIChhdHRyICE9IE5VTEwpCitA QCAtMjI0MDQsNyArMjI1MTAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfYXNzb2NpYXRlZCwgY3UpOworICAgaWYgKGF0dHJfZm9ybV9p c19ibG9jayAoYXR0cikpCisgICAgIHsKKy0gICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3Ag KGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3Ag KGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKKyAgICAgICAgIGFkZF9keW5fcHJvcCAo RFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7CisgICAgIH0KKyAgIGVs c2UgaWYgKGF0dHIgIT0gTlVMTCkKK0BAIC0yMjQxNyw3ICsyMjUyMyw3IEBAIHNldF9kaWVfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKKyAKKyAgIC8qIFJlYWQgRFdfQVRfZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5 cGUuICAqLworICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24s IGN1KTsKKy0gIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3Ap KQorKyAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVM TCwgMCkpCisgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfREFUQV9MT0NBVElPTiwgcHJvcCwg dHlwZSwgb2JqZmlsZSk7CisgCisgICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5kaWVfdHlwZV9o YXNoID09IE5VTEwpCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMu YworaW5kZXggYjUzZTY0OS4uMGFhOTExMyAxMDA2NDQKKy0tLSBhL2dkYi9nZGJ0eXBlcy5jCisr KysgYi9nZGIvZ2RidHlwZXMuYworQEAgLTE4NDEsNiArMTg0MSw3IEBAIGlzX2R5bmFtaWNfdHlw ZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCisgICAgICAgfQor IAorICAgICBjYXNlIFRZUEVfQ09ERV9BUlJBWToKKysgICAgY2FzZSBUWVBFX0NPREVfU1RSSU5H OgorICAgICAgIHsKKyAJZ2RiX2Fzc2VydCAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAxKTsKKyAK K0BAIC0xOTQ1LDcgKzE5NDYsOCBAQCByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBl ICp0eXBlLAorICAgc3RydWN0IHR5cGUgKmFyeV9kaW07CisgICBzdHJ1Y3QgZHluYW1pY19wcm9w ICpwcm9wOworIAorLSAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVf QVJSQVkpOworKyAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJS QVkKKysJICAgICAgfHwgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKTsKKyAK KyAgIHR5cGUgPSBjb3B5X3R5cGUgKHR5cGUpOworIAorQEAgLTE5NzAsMTMgKzE5NzIsMTcgQEAg cmVzb2x2ZV9keW5hbWljX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAKKyAgIGFyeV9kaW0g PSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRfdHlwZSkpOworIAorLSAgaWYg KGFyeV9kaW0gIT0gTlVMTCAmJiBUWVBFX0NPREUgKGFyeV9kaW0pID09IFRZUEVfQ09ERV9BUlJB WSkKKysgIGlmIChhcnlfZGltICE9IE5VTEwgJiYgKFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQ RV9DT0RFX0FSUkFZCisrICAgICAgfHwgVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVf U1RSSU5HKSkKKyAgICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKGFyeV9kaW0s IGFkZHJfc3RhY2spOworICAgZWxzZQorICAgICBlbHRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUg KHR5cGUpOworIAorLSAgcmV0dXJuIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlICh0eXBl LCBlbHRfdHlwZSwgcmFuZ2VfdHlwZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKSk7CisrICBpZiAoVFlQRV9DT0RF ICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKQorKyAgICByZXR1cm4gY3JlYXRlX3N0cmluZ190 eXBlICh0eXBlLCBlbHRfdHlwZSwgcmFuZ2VfdHlwZSk7CisrICBlbHNlCisrICAgIHJldHVybiBj cmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUs CisrCQkJCQkgIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOworIH0KKyAKKyAvKiBSZXNv bHZlIGR5bmFtaWMgYm91bmRzIG9mIG1lbWJlcnMgb2YgdGhlIHVuaW9uIFRZUEUgdG8gc3RhdGlj CitAQCAtMjE4MSw2ICsyMTg3LDcgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0 cnVjdCB0eXBlICp0eXBlLAorICAJICBicmVhazsKKyAKKyAJY2FzZSBUWVBFX0NPREVfQVJSQVk6 CisrCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKKyAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9k eW5hbWljX2FycmF5ICh0eXBlLCBhZGRyX3N0YWNrKTsKKyAJICBicmVhazsKKyAKK2RpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMC4uNDg0ZmRjYgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKK0BAIC0wLDAgKzEsMTAzIEBACisrIyBDb3B5 cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCisrCisraWYg eyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNm aWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQor KworKyMgY2hlY2sgdGhhdCBhbGwgZm9ydHJhbiBzdGFuZGFyZCBkYXRhdHlwZXMgd2lsbCBiZQor KyMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiB1c2luZyBhcyBWTEEncworKworK2lmICFbcnVudG9f bWFpbl0geworKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWluIgorKyAgICByZXR1 cm4gLTEKKyt9CisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9j aGFyLWFsbG9jYXRlZC0xIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXIt YWxsb2NhdGVkLTEiCisrc2V0IHRlc3QgIndoYXRpcyB2YXJfY2hhciBmaXJzdCB0aW1lIgorK2dk Yl90ZXN0X211bHRpcGxlICJ3aGF0aXMgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJlICJ0eXBl ID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcclxuJGdkYl9wcm9tcHQgJCIgewor KwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9IGNoYXJhY3RlclxcKjEw XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKytzZXQg dGVzdCAicHR5cGUgdmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHR5 cGUgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFy YWN0ZXJcXCoxMCBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAg ICB9CisrICAgIC1yZSAidHlwZSA9IGNoYXJhY3RlclxcKjEwXHJcbiRnZGJfcHJvbXB0ICQiIHsK KysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKysKKysKKytnZGJfdGVzdCAibmV4dCIgIlxc ZCsuKnZhcl9jaGFyID0gJ2ZvbycuKiIgXAorKyAgIm5leHQgdG8gYWxsb2NhdGlvbiBzdGF0dXMg b2YgdmFyX2NoYXIiCisrZ2RiX3Rlc3QgInByaW50IGwiICIgPSBcXC5UUlVFXFwuIiAicHJpbnQg YWxsb2NhdGlvbiBzdGF0dXMgZmlyc3QgdGltZSIKKysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmlsbGVkLTEiXQorK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMSIKKytzZXQgdGVzdCAicHJpbnQgdmFyX2NoYXIs IHZhcl9jaGFyLWZpbGxlZC0xIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCB2YXJfY2hhciIg JHRlc3QgeworKyAgICAtcmUgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxc KSAkaGV4XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgICAgIGdkYl90ZXN0ICJwcmludCAqdmFy X2NoYXIiICI9ICdmb28nIiAicHJpbnQgKnZhcl9jaGFyLCB2YXJfY2hhci1maWxsZWQtMSIKKysJ ICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgIj0gJ2ZvbydcclxuJGdkYl9wcm9tcHQg JCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQorK3NldCB0ZXN0ICJwdHlwZSB2YXJf Y2hhciwgdmFyX2NoYXItZmlsbGVkLTEiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInB0eXBlIHZhcl9j aGFyIiAkdGVzdCB7CisrICAgIC1yZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq MyBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAg IC1yZSAidHlwZSA9IGNoYXJhY3RlclxcKjNcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFz cyAkdGVzdAorKyAgICB9CisrfQorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcigxKSIgIiA9IDEw MiAnZiciICJwcmludCB2YXJfY2hhcigxKSIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIoMyki ICIgPSAxMTEgJ28nIiAicHJpbnQgdmFyX2NoYXIoMykiCisrCisrCisrZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0yIl0KKytnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmlsbGVkLTIiCisrc2V0IHRlc3QgInByaW50IHZhcl9j aGFyLCB2YXJfY2hhci1maWxsZWQtMiIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgdmFyX2No YXIiICR0ZXN0IHsKKysgICAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBc XClcXCkgJGhleFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAgICBnZGJfdGVzdCAicHJpbnQg KnZhcl9jaGFyIiAiPSAnZm9vYmFyJyIgInByaW50ICp2YXJfY2hhciwgdmFyX2NoYXItZmlsbGVk LTIiCisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICI9ICdmb29iYXInXHJcbiRn ZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKytzZXQgdGVzdCAi cHR5cGUgdmFyX2NoYXIsIHZhcl9jaGFyLWZpbGxlZC0yIgorK2dkYl90ZXN0X211bHRpcGxlICJw dHlwZSB2YXJfY2hhciIgJHRlc3QgeworKyAgICAtcmUgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNo YXJhY3RlclxcKjYgXFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysg ICAgfQorKyAgICAtcmUgInR5cGUgPSBjaGFyYWN0ZXJcXCo2XHJcbiRnZGJfcHJvbXB0ICQiIHsK KysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN0cmluZ3MuZjkwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uM2My MjczNQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaW5ncy5mOTAKK0BAIC0wLDAgKzEsMzkgQEAKKyshIENvcHlyaWdodCAyMDE2IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr IQorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyshCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisrCisrcHJvZ3JhbSB2bGFfc3RyaW5ncworKyAgY2hhcmFjdGVyKGxlbj06KSwgdGFyZ2V0LCBh bGxvY2F0YWJsZSAgIDo6IHZhcl9jaGFyCisrICBjaGFyYWN0ZXIobGVuPTopLCBwb2ludGVyICAg ICAgICAgICAgICAgOjogdmFyX2NoYXJfcAorKyAgbG9naWNhbCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDo6IGwKKysKKysgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MTApIDo6IHZh cl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFy X2NoYXItYWxsb2NhdGVkLTEKKysgIHZhcl9jaGFyID0gJ2ZvbycKKysgIGRlYWxsb2NhdGUodmFy X2NoYXIpICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxlZC0xCisrICBsID0gYWxs b2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1kZWFsbG9jYXRlZAor KyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj00MikgOjogdmFyX2NoYXIpCisrICBsID0gYWxsb2Nh dGVkKHZhcl9jaGFyKQorKyAgdmFyX2NoYXIgPSAnZm9vYmFyJworKyAgdmFyX2NoYXIgPSAnJyAg ICAgICAgICAgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZmlsbGVkLTIKKysgIHZhcl9jaGFy ID0gJ2JhcicgICAgICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWVtcHR5CisrICBkZWFs bG9jYXRlKHZhcl9jaGFyKQorKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj0yMSkgOjogdmFyX2No YXIpCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hh ci1hbGxvY2F0ZWQtMworKyAgdmFyX2NoYXIgPSAnam9obmRvZScKKysgIHZhcl9jaGFyX3AgPT4g dmFyX2NoYXIKKysgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZh cl9jaGFyX3AtYXNzb2NpYXRlZAorKyAgdmFyX2NoYXJfcCA9PiBudWxsKCkKKysgIGwgPSBhc3Nv Y2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3Atbm90LWFzc29jaWF0 ZWQKKytlbmQgcHJvZ3JhbSB2bGFfc3RyaW5ncworLS0gCisyLjcuNAorCgpkaWZmIC0tZ2l0IGEv Z2RiLXZsYS1pbnRlbC1sb2dpY2FsLW5vdC5wYXRjaCBiL2dkYi12bGEtaW50ZWwtbG9naWNhbC1u b3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjNTFjODQuLjAwMDAwMDAK LS0tIGEvZ2RiLXZsYS1pbnRlbC1sb2dpY2FsLW5vdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDExICswLDAgQEAKLS0tLSAuL2dkYi92YWx1ZS5jLW9yaWcJMjAxNS0wMi0xMSAxNToxNzo1OC40 MTMyNDE3NzkgKzAxMDAKLSsrKyAuL2dkYi92YWx1ZS5jCTIwMTUtMDItMTEgMTU6MTk6NDIuMDY4 NzE2OTQ5ICswMTAwCi1AQCAtMzA3NCw3ICszMDc0LDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKmFyZwotIAl9Ci0gCi0gICAgICAgaWYgKCFUWVBFX0RBVEFfTE9DQVRJ T04gKHR5cGUpCi0tICAgICAgICAgIHx8ICFUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAodHlwZSkg PT0gUFJPUF9DT05TVCkKLSsgICAgICAgICAgfHwgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5 cGUpICE9IFBST1BfQ09OU1QpCi0gCXYtPm9mZnNldCA9ICh2YWx1ZV9vZmZzZXQgKGFyZzEpICsg b2Zmc2V0Ci0gCQkgICAgICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSk7Ci0gICAgIH0K CmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaCBiL2dkYi12bGEt aW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCmluZGV4IGY2MTk3ZjIuLjMyMTRkZTIgMTAwNjQ0Ci0t LSBhL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCisrKyBiL2dkYi12bGEtaW50ZWwt c3RyaW5nYnQtZml4LnBhdGNoCkBAIC0zMSwyNiArMzEsNiBAQCBKYW4KIENvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQogQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5l OyBmaWxlbmFtZT0idmxhc3RyaW5nb25seS5wYXRjaCIKIAotSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL2dkYnR5cGVzLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIw Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wNS0zMSAxNjoxNDowNC4xNjQ1MzM4MzMgKzAyMDAK LSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDUtMzEgMTY6MTQ6 MDUuODQ0NTQ1MzQ0ICswMjAwCi1AQCAtMTg1MSw2ICsxODUxLDcgQEAgaXNfZHluYW1pY190eXBl X2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdAotICAgICAgIH0KLSAKLSAgICAgY2FzZSBUWVBFX0NP REVfQVJSQVk6Ci0rICAgIGNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSAgICAgICB7Ci0gCWdkYl9h c3NlcnQgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7Ci0gCi1AQCAtMjE5Miw2ICsyMTkzLDcg QEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eQotIAkgIH0KLSAKLSAJ Y2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0rCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSAJICByZXNv bHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5ICh0eXBlLCBhZGRyX3N0YWNrKTsKLSAJ ICBicmVhazsKLSAKIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAoKZGlmZiAtLWdpdCBh L2dkYi12bGEtaW50ZWwtdGVzdHMucGF0Y2ggYi9nZGItdmxhLWludGVsLXRlc3RzLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjOGFiNWIKLS0tIC9kZXYvbnVsbAor KysgYi9nZGItdmxhLWludGVsLXRlc3RzLnBhdGNoCkBAIC0wLDAgKzEsMzc3IEBACitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5l eHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1mdW5jLmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAorQEAg LTAsMCArMSw2MSBAQAorKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisr IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rl c3RmaWxlICIuZjkwIgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0u ZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7 CisrICAgIHJldHVybiAtMQorK30KKysKKytpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAg IHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51 ZQorK30KKysKKysjIENoZWNrIFZMQSBwYXNzZWQgdG8gZmlyc3QgRm9ydHJhbiBmdW5jdGlvbi4K KytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzEtdmxhLXBhc3NlZCJd CisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXZsYS1wYXNzZWQiCisrZ2RiX3Rl c3QgInByaW50IHZsYSIgIiA9IFxcKCAqXFwoICoyMiwgKjIyLCAqMjIsXFsoKTIyLCAuXF0qXFwp IiBcCisrICAicHJpbnQgdmxhIChmdW5jMSkiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYSIgInR5cGUg PSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEwLDEwXFxcKSIgXAorKyAgInB0eXBlIHZsYSAo ZnVuYzEpIgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS12 bGEtbW9kaWZpZWQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMS12bGEtbW9k aWZpZWQiCisrZ2RiX3Rlc3QgInByaW50IHZsYSg1LDUpIiAiID0gNTUiICJwcmludCB2bGEoNSw1 KSAoZnVuYzEpIgorK2dkYl90ZXN0ICJwcmludCB2bGEoNyw3KSIgIiA9IDc3IiAicHJpbnQgdmxh KDUsNSkgKGZ1bmMxKSIKKysKKysjIENoZWNrIGlmIHRoZSB2YWx1ZXMgYXJlIGNvcnJlY3QgYWZ0 ZXIgcmV0dXJuaW5nIGZyb20gZnVuYzEKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAiZnVuYzEtcmV0dXJuZWQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5j MS1yZXR1cm5lZCIKKytnZGJfdGVzdCAicHJpbnQgcmV0IiAiID0gLlRSVUUuIiAicHJpbnQgcmV0 IGFmdGVyIGZ1bmMxIHJldHVybmVkIgorKworKyMgQ2hlY2sgVkxBIHBhc3NlZCB0byBzZWNvbmQg Rm9ydHJhbiBmdW5jdGlvbgorK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJm dW5jMi12bGEtcGFzc2VkIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzItdmxh LXBhc3NlZCIKKytnZGJfdGVzdCAicHJpbnQgdmxhIiBcCisrICAiID0gXFxcKDQ0LCA0NCwgNDQs IDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0XFxcKSIgXAorKyAgInByaW50IHZsYSAoZnVuYzIp IgorK2dkYl90ZXN0ICJwdHlwZSB2bGEiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxc XCgxMFxcXCkiIFwKKysgICJwdHlwZSB2bGEgKGZ1bmMyKSIKKysKKysjIENoZWNrIGlmIHRoZSBy ZXR1cm5lZCBWTEEgaGFzIHRoZSBjb3JyZWN0IHZhbHVlcyBhbmQgcHR5cGUuCisrZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMyLXJldHVybmVkIl0KKytnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAiZnVuYzItcmV0dXJuZWQiCisrZ2RiX3Rlc3QgInByaW50IHZsYTMi ICIgPSBcXFwoMSwgMiwgNDQsIDQsIDQ0LCA0NCwgNDQsIDgsIDQ0LCA0NFxcXCkiIFwKKysgICJw cmludCB2bGEzIChhZnRlciBmdW5jMikiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBlID0g aW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKKysgICJwdHlwZSB2bGEzIChhZnRl ciBmdW5jMikiCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtZnVuYy5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4 MzYzNzY4MCArMDEwMAorQEAgLTAsMCArMSw3MSBAQAorKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyshIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyEgRm91 bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAy MTExLTEzMDcsIFVTQS4KKysKKytsb2dpY2FsIGZ1bmN0aW9uIGZ1bmMxICh2bGEpCisrICBpbXBs aWNpdCBub25lCisrICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEgKDosIDopCisrICBmdW5j MSA9IGFsbG9jYXRlZCh2bGEpCisrICB2bGEoNSw1KSA9IDU1ICAgICAgICAgICAgICAgISBmdW5j MS12bGEtcGFzc2VkCisrICB2bGEoNyw3KSA9IDc3CisrICByZXR1cm4gICAgICAgICAgICAgICAg ICAgICAgISBmdW5jMS12bGEtbW9kaWZpZWQKKytlbmQgZnVuY3Rpb24gZnVuYzEKKysKKytmdW5j dGlvbiBmdW5jMih2bGEpCisrICBpbXBsaWNpdCBub25lCisrICBpbnRlZ2VyIDo6IHZsYSAoOikK KysgIGludGVnZXIgOjogZnVuYzIoc2l6ZSh2bGEpKQorKyAgaW50ZWdlciA6OiBrCisrCisrICB2 bGEoMSkgPSAxICAgICAgICAgICAgICAgICAgICAhIGZ1bmMyLXZsYS1wYXNzZWQKKysgIHZsYSgy KSA9IDIKKysgIHZsYSg0KSA9IDQKKysgIHZsYSg4KSA9IDgKKysKKysgIGZ1bmMyID0gdmxhCisr ZW5kIGZ1bmN0aW9uIGZ1bmMyCisrCisrcHJvZ3JhbSB2bGFfZnVuYworKyAgaW1wbGljaXQgbm9u ZQorKyAgaW50ZXJmYWNlCisrICAgIGxvZ2ljYWwgZnVuY3Rpb24gZnVuYzEgKHZsYSkKKysgICAg ICBpbnRlZ2VyIDo6IHZsYSAoOiwgOikKKysgICAgZW5kIGZ1bmN0aW9uCisrICBlbmQgaW50ZXJm YWNlCisrICBpbnRlcmZhY2UKKysgICAgZnVuY3Rpb24gZnVuYzIgKHZsYSkKKysgICAgICBpbnRl Z2VyIDo6IHZsYSAoOikKKysgICAgICBpbnRlZ2VyIGZ1bmMyKHNpemUodmxhKSkKKysgICAgZW5k IGZ1bmN0aW9uCisrICBlbmQgaW50ZXJmYWNlCisrCisrICBsb2dpY2FsIDo6IHJldAorKyAgaW50 ZWdlciwgYWxsb2NhdGFibGUgOjogdmxhMSAoOiwgOikKKysgIGludGVnZXIsIGFsbG9jYXRhYmxl IDo6IHZsYTIgKDopCisrICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEzICg6KQorKworKyAg cmV0ID0gLkZBTFNFLgorKworKyAgYWxsb2NhdGUgKHZsYTEgKDEwLDEwKSkKKysgIHZsYTEoOiw6 KSA9IDIyCisrCisrICBhbGxvY2F0ZSAodmxhMiAoMTApKQorKyAgdmxhMig6KSA9IDQ0CisrCisr ICByZXQgPSBmdW5jMSh2bGExKQorKyAgdmxhMyA9IGZ1bmMyKHZsYTIpICAgICAgICAgICEgZnVu YzEtcmV0dXJuZWQKKysKKysgIHJldCA9IC5UUlVFLiAgICAgICAgICAgICAgICAhIGZ1bmMyLXJl dHVybmVkCisrZW5kIHByb2dyYW0gdmxhX2Z1bmMKK0luZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4 cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAorQEAgLTAsMCArMSw0NCBAQAor KyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgor KworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9 ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAt MQorK30KKysKKytpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRu J3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAicmUtcmV2ZXJzZS1lbGVtZW50cyJdCisr Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInJlLXJldmVyc2UtZWxlbWVudHMiCisrZ2RiX3Rl c3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXFwp IiBcCisrICAicHJpbnQgcmUtcmV2ZXJzZS1lbGVtZW50cyIKKytnZGJfdGVzdCAicHJpbnQgcHZs YSgxKSIgIiA9IDEiICJwcmludCBmaXJzdCByZS1yZXZlcnNlLWVsZW1lbnQiCisrZ2RiX3Rlc3Qg InByaW50IHB2bGEoMTApIiAiID0gMTAiICJwcmludCBsYXN0IHJlLXJldmVyc2UtZWxlbWVudCIK KysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAib2RkLWVsZW1lbnRzIl0K KytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAib2RkLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJw cmludCBwdmxhIiAiID0gXFxcKDEsIDMsIDUsIDcsIDlcXFwpIiAicHJpbnQgb2RkLWVsZW1lbnRz IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IG9kZC1lbGVt ZW50IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDUpIiAiID0gOSIgInByaW50IGxhc3Qgb2RkLWVs ZW1lbnQiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInNpbmdsZS1l bGVtZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2luZ2xlLWVsZW1lbnQiCisr Z2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoNVxcXCkiICJwcmludCBzaW5nbGUtZWxlbWVu dCIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDUiICJwcmludCBvbmUgc2luZ2xlLWVs ZW1lbnQiCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtc3RyaWRlLmY5MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45 ODQ2Mzc2ODYgKzAxMDAKK0BAIC0wLDAgKzEsMzAgQEAKKyshIENvcHlyaWdodCAyMDE0IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyshCisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyshIEZv dW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAw MjExMS0xMzA3LCBVU0EuCisrCisrcHJvZ3JhbSB2bGFfc3RyaWRlCisrICBpbnRlZ2VyLCB0YXJn ZXQsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOikKKysgIGludGVnZXIsIHBvaW50ZXIgOjogcHZsYSAo OikKKysKKysgIGFsbG9jYXRlKHZsYSgxMCkpCisrICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8p CisrCisrICBwdmxhID0+IHZsYSgxMDoxOi0xKQorKyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCisr ICBwdmxhID0+IHZsYSgxOjEwOjIpICAgISByZS1yZXZlcnNlLWVsZW1lbnRzCisrICBwdmxhID0+ IHZsYSg1OjQ6LTIpICAgISBvZGQtZWxlbWVudHMKKysKKysgIHB2bGEgPT4gbnVsbCgpICAgICAg ICAhIHNpbmdsZS1lbGVtZW50CisrZW5kIHByb2dyYW0gdmxhX3N0cmlkZQorSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3NvbGQu ZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtc3RyaW5nc29sZC5leHAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAx MDAKK0BAIC0wLDAgKzEsMTAxIEBACisrIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3Rh bmRhcmRfdGVzdGZpbGUgIi5mOTAiCisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rl c3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVp ZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgY2hlY2sgdGhhdCBhbGwgZm9ydHJh biBzdGFuZGFyZCBkYXRhdHlwZXMgd2lsbCBiZQorKyMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiB1 c2luZyBhcyBWTEEncworKworK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKKysgICAgcGVycm9y ICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCisrICAgIGNvbnRpbnVlCisrfQor KworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0 ZWQtMSJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0x IgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqMTAgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFyIGFmdGVy IGFsbG9jYXRlZCBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBl ID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2No YXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRP IC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwKKysgICJwdHlwZSB2YXJfY2hhciBmaXJzdCB0 aW1lIgorK2dkYl90ZXN0ICJuZXh0IiAiXFxkKy4qdmFyX2NoYXIgPSAnZm9vJy4qIiBcCisrICAi bmV4dCB0byBhbGxvY2F0aW9uIHN0YXR1cyBvZiB2YXJfY2hhciIKKytnZGJfdGVzdCAicHJpbnQg bCIgIiA9IC5UUlVFLiIgInByaW50IGFsbG9jYXRpb24gc3RhdHVzIGZpcnN0IHRpbWUiCisrCisr Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0xIl0K KytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmlsbGVkLTEiCisrZ2RiX3Rl c3QgInByaW50IHZhcl9jaGFyIiBcCisrICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCozIFxcKVxcKSAke2hleH0iIFwKKysgICJwcmludCB2YXJfY2hhciBhZnRlciBmaWxsZWQgZmly c3QgdGltZSIKKytnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0gJ2ZvbyciIFwKKysgICJw cmludCAqdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCisrZ2RiX3Rlc3QgIndoYXRp cyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCisr ICAid2hhdGlzIHZhcl9jaGFyIGFmdGVyIGZpbGxlZCBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJw dHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBc CisrICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCisrZ2RiX3Rlc3Qg InByaW50IHZhcl9jaGFyKDEpIiAiID0gMTAyICdmJyIgInByaW50IHZhcl9jaGFyKDEpIgorK2dk Yl90ZXN0ICJwcmludCB2YXJfY2hhcigzKSIgIiA9IDExMSAnbyciICJwcmludCB2YXJfY2hhcigz KSIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmls bGVkLTIiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMiIK KytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKKysgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNo YXJhY3RlclxcKjYgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFs bG9jYXRlZCBzZWNvbmQgdGltZSIKKytnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0gJ2Zv b2JhciciIFwKKysgICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHNlY29uZCB0aW1l IgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFy YWN0ZXJcXCo2IFxcKSIgXAorKyAgIndoYXRpcyB2YXJfY2hhciBzZWNvbmQgdGltZSIKKytnZGJf dGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2 IFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFyIHNlY29uZCB0aW1lIgorKworK2dkYl9icmVha3Bv aW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1lbXB0eSJdCisrZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWVtcHR5IgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hh ciIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXClcXCkgJHtoZXh9 IiBcCisrICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgorK2dkYl90ZXN0ICJwcmlu dCAqdmFyX2NoYXIiICIgPSBcIlwiIiAicHJpbnQgKnZhcl9jaGFyIGFmdGVyIHNldCBlbXB0eSIK KytnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFj dGVyXFwqMCBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgorK2dk Yl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3Rlclxc KjAgXFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgorKworK2dkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMyJdCisr Z2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0zIgorK2dkYl90 ZXN0ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVy XFwqMjEgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRl ZCB0aGlyZCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRP IC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIg YWxsb2NhdGVkIHRoaXJkIHRpbWUiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9 IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMjEgXFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIg YWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgInZhcl9jaGFyX3AtYXNzb2NpYXRlZCJdCisrZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInZhcl9jaGFyX3AtYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2No YXJfcCIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNyBcXClcXCkgJHto ZXh9IiBcCisrICAicHJpbnQgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgorK2dkYl90ZXN0 ICJwcmludCAqdmFyX2NoYXJfcCIgIiA9ICdqb2huZG9lJyIgXAorKyAgInByaW50ICp2YXJfY2hh cl8gYWZ0ZXIgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyX3AiICJ0eXBl ID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAorKyAgIndoYXRpcyB2YXJfY2hh cl9wIGFmdGVyIGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyX3AiICJ0eXBl ID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFy X3AgYWZ0ZXIgYXNzb2NpYXRlZCIKK0luZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzb2xkLmY5MAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3NvbGQuZjkw CTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCitAQCAtMCwwICsxLDQwIEBACisr ISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyshCisrISBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisrISAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyEgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyshIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIQorKyEg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCisrISBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBT dWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorKworK3Byb2dyYW0gdmxhX3N0 cmluZ3MKKysgIGNoYXJhY3RlcihsZW49OiksIHRhcmdldCwgYWxsb2NhdGFibGUgICA6OiB2YXJf Y2hhcgorKyAgY2hhcmFjdGVyKGxlbj06KSwgcG9pbnRlciAgICAgICAgICAgICAgIDo6IHZhcl9j aGFyX3AKKysgIGxvZ2ljYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OiBsCisr CisrICBhbGxvY2F0ZShjaGFyYWN0ZXIobGVuPTEwKSA6OiB2YXJfY2hhcikKKysgIGwgPSBhbGxv Y2F0ZWQodmFyX2NoYXIpICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWFsbG9jYXRlZC0xCisr ICB2YXJfY2hhciA9ICdmb28nCisrICBkZWFsbG9jYXRlKHZhcl9jaGFyKSAgICAgICAgICAgICAg ICAgICAgISB2YXJfY2hhci1maWxsZWQtMQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAg ICAgICAgICAgICAgICEgdmFyX2NoYXItZGVhbGxvY2F0ZWQKKysgIGFsbG9jYXRlKGNoYXJhY3Rl cihsZW49NDIpIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikKKysgIHZh cl9jaGFyID0gJ2Zvb2JhcicKKysgIHZhcl9jaGFyID0gJycgICAgICAgICAgICAgICAgICAgICAg ICAgICAhIHZhcl9jaGFyLWZpbGxlZC0yCisrICB2YXJfY2hhciA9ICdiYXInICAgICAgICAgICAg ICAgICAgICAgICAgISB2YXJfY2hhci1lbXB0eQorKyAgZGVhbGxvY2F0ZSh2YXJfY2hhcikKKysg IGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MjEpIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRl ZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTMKKysgIHZh cl9jaGFyID0gJ2pvaG5kb2UnCisrICB2YXJfY2hhcl9wID0+IHZhcl9jaGFyCisrICBsID0gYXNz b2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLWFzc29jaWF0ZWQK KysgIHZhcl9jaGFyX3AgPT4gbnVsbCgpCisrICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAg ICAgICAgICAgICAgISB2YXJfY2hhcl9wLW5vdC1hc3NvY2lhdGVkCisrZW5kIHByb2dyYW0gdmxh X3N0cmluZ3MKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLnBhdGNoIGIvZ2RiLXZsYS1pbnRl bC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRmNmIyMy4uMDAwMDAwMAot LS0gYS9nZGItdmxhLWludGVsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4MCArMCwwIEBA Ci1bUEFUQ0ggMDAvMjNdIEZvcnRyYW4gZHluYW1pYyBhcnJheSBzdXBwb3J0Ci1odHRwczovL3Nv dXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDYvbXNnMDAxMDguaHRtbAotaHR0cHM6 Ly9naXRodWIuY29tL2ludGVsLWdkYi92bGEvdHJlZS92bGEtZm9ydHJhbgotCi1HSVQgc25hcHNo b3Q6Ci1jb21taXQgNTExYmZmNTIwMzcyZmZjMTBmYTJmZjU2OWMxNzZiZGYxZTZlNDc1ZAotCi0K LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYy12YWxwcmludC5jCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTYtMDEt MDggMTk6MTU6MzUuMDY1NTgyMzU5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2MtdmFscHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk3NDYzNzYzMCArMDEwMAotQEAgLTY0 Miw3ICs2NDIsMTYgQEAKLSAJewotIAkgIC8qIG5vcm1hbCBjYXNlICovCi0gCSAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiKCIpOwotLQkgIHR5cGVfcHJpbnQgKHZhbHVlX3R5cGUgKHZhbCks ICIiLCBzdHJlYW0sIC0xKTsKLSsJICBpZiAoaXNfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9U WVBFICh0eXBlKSkpCi0rCSAgICB7Ci0rCSAgICAgIHN0cnVjdCB2YWx1ZSAqdjsKLSsKLSsJICAg ICAgdiA9IHZhbHVlX2luZCAodmFsKTsKLSsJICAgICAgdiA9IHZhbHVlX2FkZHIgKHYpOwotKwkg ICAgICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2KSwgIiIsIHN0cmVhbSwgLTEpOwotKwkgICAg fQotKwkgIGVsc2UKLSsJICAgIHR5cGVfcHJpbnQgKHZhbHVlX3R5cGUgKHZhbCksICIiLCBzdHJl YW0sIC0xKTsKLSAJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpICIpOwotIAl9Ci0gICAg IH0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYybG9jLmgKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9kd2FyZjJsb2MuaAkyMDE2LTAx LTA4IDE5OjE1OjM1LjA2NjU4MjM2NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9kd2FyZjJsb2MuaAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk3NDYzNzYzMCArMDEwMAotQEAgLTEz OCw2ICsxMzgsMTEgQEAKLSAJCQkgICAgICBzdHJ1Y3QgcHJvcGVydHlfYWRkcl9pbmZvICphZGRy X3N0YWNrLAotIAkJCSAgICAgIENPUkVfQUREUiAqdmFsdWUpOwotIAotKy8qIENoZWNrcyBpZiBh IGR3YXJmIGxvY2F0aW9uIGRlZmluaXRpb24gaXMgdmFsaWQuCi0rICAgUmV0dXJucyAxIGlmIHZh bGlkOyAwIG90aGVyd2lzZS4gICovCi0rCi0rZXh0ZXJuIGludCBkd2FyZjJfYWRkcmVzc19kYXRh X3ZhbGlkIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSk7Ci0rCi0gLyogQSBoZWxwZXIgZm9yIHRo ZSBjb21waWxlciBpbnRlcmZhY2UgdGhhdCBjb21waWxlcyBhIHNpbmdsZSBkeW5hbWljCi0gICAg cHJvcGVydHkgdG8gQyBjb2RlLgotIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9k d2FyZjJyZWFkLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dk Yi9kd2FyZjJyZWFkLmMJMjAxNi0wMS0wOCAxOToxNTozNS4wNzg1ODI0MzIgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDEtMDggMTk6MTU6NDQu OTgwNjM3NjYzICswMTAwCi1AQCAtMTc0NSw3ICsxNzQ1LDkgQEAKLSAKLSBzdGF0aWMgaW50IGF0 dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAotIAkJCQkg c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAotLQkJCQkgc3RydWN0 IGR5bmFtaWNfcHJvcCAqcHJvcCk7Ci0rCQkJCSBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAot KwkJCQkgY29uc3QgZ2RiX2J5dGUgKmFkZGl0aW9uYWxfZGF0YSwKLSsJCQkJIGludCBhZGRpdGlv bmFsX2RhdGFfc2l6ZSk7Ci0gCi0gLyogbWVtb3J5IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCi0g Ci1AQCAtMTE0MjAsNyArMTE0MjIsNyBAQAotICAgICB7Ci0gICAgICAgbmV3b2JqLT5zdGF0aWNf bGluawotIAk9IFhPQk5FVyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc3RydWN0IGR5bmFt aWNfcHJvcCk7Ci0tICAgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsIG5l d29iai0+c3RhdGljX2xpbmspOwotKyAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBk aWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rLCBOVUxMLCAwKTsKLSAgICAgfQotIAotICAgY3Ut Pmxpc3RfaW5fc2NvcGUgPSAmbG9jYWxfc3ltYm9sczsKLUBAIC0xNDQ3MSwyOSArMTQ0NzMsOTIg QEAKLSAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmls ZSk7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hh cl90eXBlOwotICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKLS0gIHVuc2lnbmVkIGludCBsZW5n dGg7Ci0rICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gVUlOVF9NQVg7Ci0gCi0rICBpbmRleF90eXBl ID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7Ci0rICByYW5nZV90eXBlID0g Y3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLCBpbmRleF90eXBlLCAxLCBsZW5ndGgpOwot KwotKyAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBpcyBkZWZpbmVkLCB0aGUgbGVuZ3RoIGlz IHN0b3JlZCBhdCBzb21lIGxvY2F0aW9uCi0rICAgKiBpbiBtZW1vcnkuICovCi0gICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfc3RyaW5nX2xlbmd0aCwgY3UpOwotICAgaWYgKGF0dHIp Ci0gICAgIHsKLS0gICAgICBsZW5ndGggPSBEV19VTlNORCAoYXR0cik7Ci0rICAgICAgaWYgKGF0 dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCi0rICAgICAgICB7Ci0rICAgICAgICAgIHN0cnVjdCBh dHRyaWJ1dGUgKmJ5dGVfc2l6ZSwgKmJpdF9zaXplOwotKyAgICAgICAgICBzdHJ1Y3QgZHluYW1p Y19wcm9wIGhpZ2g7Ci0rCi0rICAgICAgICAgIGJ5dGVfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUs IERXX0FUX2J5dGVfc2l6ZSwgY3UpOwotKyAgICAgICAgICBiaXRfc2l6ZSA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX2JpdF9zaXplLCBjdSk7Ci0rCi0rICAgICAgICAgIC8qIERXX0FUX2J5dGVf c2l6ZSBzaG91bGQgbmV2ZXIgb2NjdXIgdG9nZXRoZXIgaW4gY29tYmluYXRpb24gd2l0aAotKyAg ICAgICAgICAgICBEV19BVF9zdHJpbmdfbGVuZ3RoLiAgKi8KLSsgICAgICAgICAgaWYgKChieXRl X3NpemUgPT0gTlVMTCAmJiBiaXRfc2l6ZSAhPSBOVUxMKSB8fAotKyAgICAgICAgICAgICAgICAg IChieXRlX3NpemUgIT0gTlVMTCAmJiBiaXRfc2l6ZSA9PSBOVUxMKSkKLSsgICAgICAgICAgICBj b21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIkRXX0FUX2J5dGVfc2l6ZSBBTkQgIgot KyAgICAgICAgICAgICAgICAgICAgICAiRFdfQVRfYml0X3NpemUgZm91bmQgdG9nZXRoZXIgYXQg dGhlIHNhbWUgdGltZS4iKSk7Ci0rCi0rICAgICAgICAgIC8qIElmIERXX0FUX3N0cmluZ19sZW5n dGggQU5EIERXX0FUX2J5dGVfc2l6ZSBleGlzdCB0b2dldGhlciwgaXQKLSsgICAgICAgICAgICAg ZGVzY3JpYmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCBzaG91bGQgYmUgcmVhZCBmcm9tIHRo ZSBsZW5ndGgKLSsgICAgICAgICAgICAgbWVtb3J5IGxvY2F0aW9uLiAgKi8KLSsgICAgICAgICAg aWYgKGJ5dGVfc2l6ZSAhPSBOVUxMICYmIGJpdF9zaXplID09IE5VTEwpCi0rICAgICAgICAgICAg ewotKyAgICAgICAgICAgICAgLyogQnVpbGQgbmV3IGR3YXJmMl9sb2NleHByX2JhdG9uIHN0cnVj dHVyZSB3aXRoIGFkZGl0aW9ucyB0byB0aGUKLSsgICAgICAgICAgICAgICAgIGRhdGEgYXR0cmli dXRlLCB0byByZWZsZWN0IERXQVJGIHNwZWNpYWxpdGllcyB0byBnZXQgYWRkcmVzcwotKyAgICAg ICAgICAgICAgICAgc2l6ZXMuICAqLwotKyAgICAgICAgICAgICAgY29uc3QgZ2RiX2J5dGUgYXBw ZW5kX29wc1tdID0gewotKyAgICAgICAgICAgICAgICAvKiBEV19PUF9kZXJlZl9zaXplOiBzaXpl IG9mIGFuIGFkZHJlc3Mgb24gdGhlIHRhcmdldCBtYWNoaW5lCi0rICAgICAgICAgICAgICAgICAg IChieXRlcyksIHdoZXJlIHRoZSBzaXplIHdpbGwgYmUgc3BlY2lmaWVkIGJ5IHRoZSBuZXh0Ci0r ICAgICAgICAgICAgICAgICAgIG9wZXJhbmQuICAqLwotKyAgICAgICAgICAgICAgICBEV19PUF9k ZXJlZl9zaXplLAotKyAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIGZvciBEV19PUF9kZXJlZl9z aXplLiAgKi8KLSsgICAgICAgICAgICAgICAgRFdfVU5TTkQgKGJ5dGVfc2l6ZSkgfTsKLSsKLSsg ICAgICAgICAgICAgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZo aWdoLAotKyAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRfb3BzLCBBUlJBWV9TSVpFIChhcHBl bmRfb3BzKSkpCi0rICAgICAgICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50 cywKLSsgICAgICAgICAgICAgICAgICAgICAgICBfKCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfYnl0 ZV9zaXplIikpOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxzZSBpZiAoYml0X3NpemUg IT0gTlVMTCAmJiBieXRlX3NpemUgPT0gTlVMTCkKLSsgICAgICAgICAgICBjb21wbGFpbnQgKCZz eW1maWxlX2NvbXBsYWludHMsIF8oIkRXX0FUX3N0cmluZ19sZW5ndGggQU5EICIKLSsgICAgICAg ICAgICAgICAgICAgICAgIkRXX0FUX2JpdF9zaXplIGZvdW5kIGJ1dCBub3Qgc3VwcG9ydGVkIHll dC4iKSk7Ci0rICAgICAgICAgIC8qIElmIERXX0FUX3N0cmluZ19sZW5ndGggV0lUSE9VVCBEV19B VF9ieXRlX3NpemUgZXhpc3QsIHRoZSBkZWZhdWx0Ci0rICAgICAgICAgICAgIGlzIHRoZSBhZGRy ZXNzIHNpemUgb2YgdGhlIHRhcmdldCBtYWNoaW5lLiAgKi8KLSsgICAgICAgICAgZWxzZQotKyAg ICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGNvbnN0IGdkYl9ieXRlIGFwcGVuZF9vcHNbXSA9 IHsgRFdfT1BfZGVyZWYgfTsKLSsKLSsgICAgICAgICAgICAgIGlmICghYXR0cl90b19keW5hbWlj X3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBhcHBlbmRfb3BzLAotKyAgICAgICAgICAgICAg ICAgICAgICBBUlJBWV9TSVpFIChhcHBlbmRfb3BzKSkpCi0rICAgICAgICAgICAgICAgIGNvbXBs YWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAgICAgICAgICAgICAgICAgICBfKCJD b3VsZCBub3QgcGFyc2UgRFdfQVRfc3RyaW5nX2xlbmd0aCIpKTsKLSsgICAgICAgICAgICB9Ci0r Ci0rICAgICAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2ggPSBoaWdoOwot KyAgICAgICAgfQotKyAgICAgIGVsc2UKLSsgICAgICAgIHsKLSsgICAgICAgICAgVFlQRV9ISUdI X0JPVU5EIChyYW5nZV90eXBlKSA9IERXX1VOU05EIChhdHRyKTsKLSsgICAgICAgICAgVFlQRV9I SUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsKLSsgICAgICAgIH0KLSAg ICAgfQotICAgZWxzZQotICAgICB7Ci0tICAgICAgLyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRl X3NpemUgYXR0cmlidXRlLiAgKi8KLSsgICAgICAvKiBDaGVjayBmb3IgdGhlIERXX0FUX2J5dGVf c2l6ZSBhdHRyaWJ1dGUsIHdoaWNoIHJlcHJlc2VudHMgdGhlIGxlbmd0aAotKyAgICAgICAgIGlu IHRoaXMgY2FzZS4gICovCi0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5 dGVfc2l6ZSwgY3UpOwotICAgICAgIGlmIChhdHRyKQotICAgICAgICAgewotLSAgICAgICAgICBs ZW5ndGggPSBEV19VTlNORCAoYXR0cik7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORCAocmFu Z2VfdHlwZSkgPSBEV19VTlNORCAoYXR0cik7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORF9L SU5EIChyYW5nZV90eXBlKSA9IFBST1BfQ09OU1Q7Ci0gICAgICAgICB9Ci0gICAgICAgZWxzZQot ICAgICAgICAgewotLSAgICAgICAgICBsZW5ndGggPSAxOwotKyAgICAgICAgICBUWVBFX0hJR0hf Qk9VTkQgKHJhbmdlX3R5cGUpID0gMTsKLSsgICAgICAgICAgVFlQRV9ISUdIX0JPVU5EX0tJTkQg KHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsKLSAgICAgICAgIH0KLSAgICAgfQotIAotLSAgaW5k ZXhfdHlwZSA9IG9iamZpbGVfdHlwZSAob2JqZmlsZSktPmJ1aWx0aW5faW50OwotLSAgcmFuZ2Vf dHlwZSA9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwgaW5kZXhfdHlwZSwgMSwgbGVu Z3RoKTsKLSAgIGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5n dWFnZV9kZWZuLCBnZGJhcmNoKTsKLSAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEws IGNoYXJfdHlwZSwgcmFuZ2VfdHlwZSk7Ci0gCi1AQCAtMTQ4MTYsMTMgKzE0ODgxLDE1IEBACi0g ICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKLSB9Ci0gCi0rCi0gLyogUGFy c2UgZHdhcmYgYXR0cmlidXRlIGlmIGl0J3MgYSBibG9jaywgcmVmZXJlbmNlIG9yIGNvbnN0YW50 IGFuZCBwdXQgdGhlCi0gICAgcmVzdWx0aW5nIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgaW50byBz dHJ1Y3QgYm91bmRfcHJvcC4KLSAgICBSZXR1cm5zIDEgaWYgQVRUUiBjb3VsZCBiZSByZXNvbHZl ZCBpbnRvIFBST1AsIDAgb3RoZXJ3aXNlLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0gYXR0cl90b19k eW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5m byAqZGllLAotLQkJICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsIHN0cnVjdCBkeW5hbWljX3By b3AgKnByb3ApCi0rCQkgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwgc3RydWN0IGR5bmFtaWNf cHJvcCAqcHJvcCwKLSsJCSAgICAgIGNvbnN0IGdkYl9ieXRlICphZGRpdGlvbmFsX2RhdGEsIGlu dCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSkKLSB7Ci0gICBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2Jh dG9uICpiYXRvbjsKLSAgIHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrID0gJmN1LT5vYmpmaWxlLT5v YmpmaWxlX29ic3RhY2s7Ci1AQCAtMTQ4MzUsOCArMTQ5MDIsMjUgQEAKLSAgICAgICBiYXRvbiA9 IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7Ci0gICAgICAg YmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7Ci0gICAgICAgYmF0b24tPmxvY2V4cHIucGVy X2N1ID0gY3UtPnBlcl9jdTsKLS0gICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sg KGF0dHIpLT5zaXplOwotLSAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAoYXR0 ciktPmRhdGE7Ci0rCi0rICAgICAgaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0 aW9uYWxfZGF0YV9zaXplID4gMCkKLSsgICAgICAgIHsKLSsgICAgICAgICAgZ2RiX2J5dGUgKmRh dGE7Ci0rCi0rICAgICAgICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9i amZpbGVfb2JzdGFjaywKLSsgICAgICAgICAgICAgICAgICBEV19CTE9DSyAoYXR0ciktPnNpemUg KyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rICAgICAgICAgIG1lbWNweSAoZGF0YSwgRFdfQkxP Q0sgKGF0dHIpLT5kYXRhLCBEV19CTE9DSyAoYXR0ciktPnNpemUpOwotKyAgICAgICAgICBtZW1j cHkgKGRhdGEgKyBEV19CTE9DSyAoYXR0ciktPnNpemUsCi0rICAgICAgICAgICAgICAgICAgYWRk aXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCi0rICAgICAgICAgIGJhdG9u LT5sb2NleHByLmRhdGEgPSBkYXRhOwotKyAgICAgICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0g RFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRhX3NpemU7Ci0rICAgICAgICB9 Ci0rICAgICAgZWxzZQotKyAgICAgICAgewotKyAgICAgICAgICBiYXRvbi0+bG9jZXhwci5kYXRh ID0gRFdfQkxPQ0sgKGF0dHIpLT5kYXRhOwotKyAgICAgICAgICBiYXRvbi0+bG9jZXhwci5zaXpl ID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOwotKyAgICAgICAgfQotICAgICAgIHByb3AtPmRhdGEu YmF0b24gPSBiYXRvbjsKLSAgICAgICBwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwotICAgICAg IGdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1AQCAtMTQ4NzIsOCArMTQ5 NTYsMjggQEAKLSAJCWJhdG9uID0gWE9CTkVXIChvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3Bl cnR5X2JhdG9uKTsKLSAJCWJhdG9uLT5yZWZlcmVuY2VkX3R5cGUgPSBkaWVfdHlwZSAodGFyZ2V0 X2RpZSwgdGFyZ2V0X2N1KTsKLSAJCWJhdG9uLT5sb2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7 Ci0tCQliYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsK LS0JCWJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOwot KwotKwkJaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXpl ID4gMCkKLSsJCSAgewotKwkJICAgIGdkYl9ieXRlICpkYXRhOwotKwotKwkJICAgIGRhdGEgPSBv YnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLSsJCQkgICAgRFdf QkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKLSsJCSAg ICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGEsCi0rCQkJICAgIERX X0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUpOwotKwkJICAgIG1lbWNweSAoZGF0YSArIERXX0JM T0NLICh0YXJnZXRfYXR0ciktPnNpemUsCi0rCQkJICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRp b25hbF9kYXRhX3NpemUpOwotKwotKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOwot KwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSAoRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6 ZQotKwkJCQkJICAgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCQkgIH0KLSsJCWVsc2UKLSsJ CSAgewotKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIp LT5kYXRhOwotKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0 dHIpLT5zaXplOwotKwkJICB9Ci0rCi0gCQlwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247Ci0gCQlw cm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwotIAkJZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRv biAhPSBOVUxMKTsKLUBAIC0xNDkyNyw3ICsxNTAzMSw3IEBACi0gICBzdHJ1Y3QgdHlwZSAqYmFz ZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7Ci0gICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKLSAg IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7Ci0tICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvdywgaGln aDsKLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93LCBoaWdoLCBzdHJpZGU7Ci0gICBpbnQgbG93 X2RlZmF1bHRfaXNfdmFsaWQ7Ci0gICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7Ci0gICBj b25zdCBjaGFyICpuYW1lOwotQEAgLTE0OTQ3LDcgKzE1MDUxLDkgQEAKLSAKLSAgIGxvdy5raW5k ID0gUFJPUF9DT05TVDsKLSAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7Ci0rICBzdHJpZGUua2lu ZCA9IFBST1BfQ09OU1Q7Ci0gICBoaWdoLmRhdGEuY29uc3RfdmFsID0gMDsKLSsgIHN0cmlkZS5k YXRhLmNvbnN0X3ZhbCA9IDA7Ci0gCi0gICAvKiBTZXQgTE9XX0RFRkFVTFRfSVNfVkFMSUQgaWYg Y3VycmVudCBsYW5ndWFnZSBhbmQgRFdBUkYgdmVyc2lvbiBhbGxvdwotICAgICAgb21pdHRpbmcg RFdfQVRfbG93ZXJfYm91bmQuICAqLwotQEAgLTE0OTgwLDE5ICsxNTA4NiwyNiBAQAotICAgICAg IGJyZWFrOwotICAgICB9Ci0gCi0rICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0 ZV9zdHJpZGUsIGN1KTsKLSsgIGlmIChhdHRyKQotKyAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19w cm9wIChhdHRyLCBkaWUsIGN1LCAmc3RyaWRlLCBOVUxMLCAwKSkKLSsgICAgICAgIGNvbXBsYWlu dCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygiTWlzc2luZyBEV19BVF9ieXRlX3N0cmlkZSAiCi0r ICAgICAgICAgICAgICAgICAgIi0gRElFIGF0IDB4JXggW2luIG1vZHVsZSAlc10iKSwKLSsgICAg ICAgICAgICAgZGllLT5vZmZzZXQuc2VjdF9vZmYsIG9iamZpbGVfbmFtZSAoY3UtPm9iamZpbGUp KTsKLSsKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb3dlcl9ib3VuZCwgY3Up OwotICAgaWYgKGF0dHIpCi0tICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1 LCAmbG93KTsKLSsgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZsb3cs IE5VTEwsIDApOwotICAgZWxzZSBpZiAoIWxvd19kZWZhdWx0X2lzX3ZhbGlkKQotICAgICBjb21w bGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIk1pc3NpbmcgRFdfQVRfbG93ZXJfYm91bmQg IgotIAkJCQkgICAgICAiLSBESUUgYXQgMHgleCBbaW4gbW9kdWxlICVzXSIpLAotIAkgICAgICAg ZGllLT5vZmZzZXQuc2VjdF9vZmYsIG9iamZpbGVfbmFtZSAoY3UtPm9iamZpbGUpKTsKLSAKLSAg IGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF91cHBlcl9ib3VuZCwgY3UpOwotLSAgaWYg KCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gpKQotKyAgaWYgKCFh dHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQotICAg ICB7Ci0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2NvdW50LCBjdSk7Ci0t ICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCkpCi0r ICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgTlVM TCwgMCkpCi0gCXsKLSAJICAvKiBJZiBib3VuZHMgYXJlIGNvbnN0YW50IGRvIHRoZSBmaW5hbCBj YWxjdWxhdGlvbiBoZXJlLiAgKi8KLSAJICBpZiAobG93LmtpbmQgPT0gUFJPUF9DT05TVCAmJiBo aWdoLmtpbmQgPT0gUFJPUF9DT05TVCkKLUBAIC0xNTA1Niw3ICsxNTE2OSw3IEBACi0gICAgICAg JiYgIVRZUEVfVU5TSUdORUQgKGJhc2VfdHlwZSkgJiYgKGhpZ2guZGF0YS5jb25zdF92YWwgJiBu ZWdhdGl2ZV9tYXNrKSkKLSAgICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCB8PSBuZWdhdGl2ZV9tYXNr OwotIAotLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChOVUxMLCBvcmlnX2Jhc2Vf dHlwZSwgJmxvdywgJmhpZ2gpOwotKyAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChO VUxMLCBvcmlnX2Jhc2VfdHlwZSwgJmxvdywgJmhpZ2gsICZzdHJpZGUpOwotIAotICAgaWYgKGhp Z2hfYm91bmRfaXNfY291bnQpCi0gICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmZs YWdfdXBwZXJfYm91bmRfaXNfY291bnQgPSAxOwotQEAgLTIyMzYwLDcgKzIyNDczLDcgQEAKLSAg IGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hbGxvY2F0ZWQsIGN1KTsKLSAgIGlmIChh dHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQotICAgICB7Ci0tICAgICAgaWYgKGF0dHJfdG9fZHlu YW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCkpCi0rICAgICAgaWYgKGF0dHJfdG9fZHlu YW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0gICAgICAgICBhZGRf ZHluX3Byb3AgKERZTl9QUk9QX0FMTE9DQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7Ci0gICAg IH0KLSAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjM3NSw3ICsyMjQ4OCw3IEBACi0g ICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYXNzb2NpYXRlZCwgY3UpOwotICAgaWYg KGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCi0gICAgIHsKLS0gICAgICBpZiAoYXR0cl90b19k eW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKLSsgICAgICBpZiAoYXR0cl90b19k eW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKLSAgICAgICAgIGFk ZF9keW5fcHJvcCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7Ci0g ICAgIH0KLSAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjM4OCw3ICsyMjUwMSw3IEBA Ci0gCi0gICAvKiBSZWFkIERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8K LSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7Ci0t ICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKLSsgIGlm IChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQot ICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0RBVEFfTE9DQVRJT04sIHByb3AsIHR5cGUsIG9i amZpbGUpOwotIAotICAgaWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBO VUxMKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXR5cGVwcmludC5jCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZi10eXBlcHJpbnQuYwky MDE2LTAxLTA4IDE5OjE1OjM1LjA4MDU4MjQ0MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9mLXR5cGVwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgwNjM3NjYzICswMTAw Ci1AQCAtMzEsNiArMzEsNyBAQAotICNpbmNsdWRlICJ0YXJnZXQuaCIKLSAjaW5jbHVkZSAiZi1s YW5nLmgiCi0gI2luY2x1ZGUgInR5cGVwcmludC5oIgotKyNpbmNsdWRlICJ2YWxwcmludC5oIgot IAotICNpZiAwCQkJCS8qIEN1cnJlbnRseSB1bnVzZWQuICAqLwotIHN0YXRpYyB2b2lkIGZfdHlw ZV9wcmludF9hcmdzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKLUBAIC02NCw2 ICs2NSwxNyBAQAotICAgICB7Ci0gICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVh bSk7Ci0gICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRF RCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVh bSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0 eXBlKSkKLSsgICAgewotKyAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwot KyAgICAgIHJldHVybjsKLSAgICAgfQotIAotICAgZl90eXBlX3ByaW50X2Jhc2UgKHR5cGUsIHN0 cmVhbSwgc2hvdywgbGV2ZWwpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXZh bHByaW50LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9m LXZhbHByaW50LmMJMjAxNi0wMS0wOCAxOToxNTozNS4wODE1ODI0NDggKzAxMDAKLSsrKyBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvZi12YWxwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgx NjM3NjY5ICswMTAwCi1AQCAtMzYsOCArMzYsNiBAQAotIAotIGV4dGVybiB2b2lkIF9pbml0aWFs aXplX2ZfdmFscHJpbnQgKHZvaWQpOwotIHN0YXRpYyB2b2lkIGluZm9fY29tbW9uX2NvbW1hbmQg KGNoYXIgKiwgaW50KTsKLS1zdGF0aWMgdm9pZCBmNzdfY3JlYXRlX2FycmF5cHJpbnRfb2Zmc2V0 X3RibCAoc3RydWN0IHR5cGUgKiwKLS0JCQkJCSAgICAgIHN0cnVjdCB1aV9maWxlICopOwotIHN0 YXRpYyB2b2lkIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlw ZSAqKTsKLSAKLSBpbnQgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZPUlRSQU5fRElNUyArIDFd WzJdOwotQEAgLTQ1LDE1ICs0Myw2IEBACi0gLyogQXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0 byBiZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVsZW1lbnRzCi0gICAgZm9yIGEgZ2l2ZW4gYXJy YXkuICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXplIG9mIGVhY2ggc3ViYXJyYXkuICAqLwotIAot LS8qIFRoZSBmb2xsb3dpbmcgbWFjcm8gZ2l2ZXMgdXMgdGhlIHNpemUgb2YgdGhlIG50aCBkaW1l bnNpb24sIFdoZXJlIAotLSAgIG4gaXMgMSBiYXNlZC4gICovCi0tCi0tI2RlZmluZSBGNzdfRElN X1NJWkUobikgKGY3N19hcnJheV9vZmZzZXRfdGJsW25dWzFdKQotLQotLS8qIFRoZSBmb2xsb3dp bmcgZ2l2ZXMgdXMgdGhlIG9mZnNldCBmb3Igcm93IG4gd2hlcmUgbiBpcyAxLWJhc2VkLiAgKi8K LS0KLS0jZGVmaW5lIEY3N19ESU1fT0ZGU0VUKG4pIChmNzdfYXJyYXlfb2Zmc2V0X3RibFtuXVsw XSkKLS0KLSBpbnQKLSBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQotIHsK LUBAIC0xMTEsNDcgKzEwMCw2IEBACi0gICAgICogVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYg KFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSk7Ci0gfQotIAotLS8qIEZ1bmN0aW9uIHRoYXQgc2V0 cyB1cCB0aGUgYXJyYXkgb2Zmc2V0LHNpemUgdGFibGUgZm9yIHRoZSBhcnJheSAKLS0gICB0eXBl ICJ0eXBlIi4gICovCi0tCi0tc3RhdGljIHZvaWQKLS1mNzdfY3JlYXRlX2FycmF5cHJpbnRfb2Zm c2V0X3RibCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCi0tewot LSAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwotLSAgaW50IGVsdGxlbjsKLS0gIGludCBuZGltZW4g PSAxOwotLSAgaW50IHVwcGVyLCBsb3dlcjsKLS0KLS0gIHRtcF90eXBlID0gdHlwZTsKLS0KLS0g IHdoaWxlIChUWVBFX0NPREUgKHRtcF90eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpCi0tICAgIHsK LS0gICAgICB1cHBlciA9IGY3N19nZXRfdXBwZXJib3VuZCAodG1wX3R5cGUpOwotLSAgICAgIGxv d2VyID0gZjc3X2dldF9sb3dlcmJvdW5kICh0bXBfdHlwZSk7Ci0tCi0tICAgICAgRjc3X0RJTV9T SVpFIChuZGltZW4pID0gdXBwZXIgLSBsb3dlciArIDE7Ci0tCi0tICAgICAgdG1wX3R5cGUgPSBU WVBFX1RBUkdFVF9UWVBFICh0bXBfdHlwZSk7Ci0tICAgICAgbmRpbWVuKys7Ci0tICAgIH0KLS0K LS0gIC8qIE5vdyB3ZSBtdWx0aXBseSBlbHRsZW4gYnkgYWxsIHRoZSBvZmZzZXRzLCBzbyB0aGF0 IGxhdGVyIHdlIAotLSAgICAgY2FuIHByaW50IG91dCBhcnJheSBlbGVtZW50cyBjb3JyZWN0bHku ICBVcCB0aWxsIG5vdyB3ZSAKLS0gICAgIGtub3cgYW4gb2Zmc2V0IHRvIGFwcGx5IHRvIGdldCB0 aGUgaXRlbSBidXQgd2UgYWxzbyAKLS0gICAgIGhhdmUgdG8ga25vdyBob3cgbXVjaCB0byBhZGQg dG8gZ2V0IHRvIHRoZSBuZXh0IGl0ZW0uICAqLwotLQotLSAgbmRpbWVuLS07Ci0tICBlbHRsZW4g PSBUWVBFX0xFTkdUSCAodG1wX3R5cGUpOwotLSAgRjc3X0RJTV9PRkZTRVQgKG5kaW1lbikgPSBl bHRsZW47Ci0tICB3aGlsZSAoLS1uZGltZW4gPiAwKQotLSAgICB7Ci0tICAgICAgZWx0bGVuICo9 IEY3N19ESU1fU0laRSAobmRpbWVuICsgMSk7Ci0tICAgICAgRjc3X0RJTV9PRkZTRVQgKG5kaW1l bikgPSBlbHRsZW47Ci0tICAgIH0KLS19Ci0tCi0tCi0tCi0gLyogQWN0dWFsIGZ1bmN0aW9uIHdo aWNoIHByaW50cyBvdXQgRjc3IGFycmF5cywgVmFsYWRkciA9PSBhZGRyZXNzIGluIAotICAgIHRo ZSBzdXBlcmlvci4gIEFkZHJlc3MgPT0gdGhlIGFkZHJlc3MgaW4gdGhlIGluZmVyaW9yLiAgKi8K LSAKLUBAIC0xNjQsNDEgKzExMiw2MiBAQAotIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMsCi0gCQkgICBpbnQgKmVsdHMpCi0gewotKyAgc3RydWN0IHR5cGUg KnJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHR5cGUpKTsKLSsg IENPUkVfQUREUiBhZGRyID0gYWRkcmVzcyArIGVtYmVkZGVkX29mZnNldDsKLSsgIExPTkdFU1Qg bG93ZXJib3VuZCwgdXBwZXJib3VuZDsKLSAgIGludCBpOwotIAotKyAgZ2V0X2Rpc2NyZXRlX2Jv dW5kcyAocmFuZ2VfdHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5kKTsKLSsKLSAgIGlmIChu c3MgIT0gbmRpbWVuc2lvbnMpCi0gICAgIHsKLS0gICAgICBmb3IgKGkgPSAwOwotLQkgICAoaSA8 IEY3N19ESU1fU0laRSAobnNzKSAmJiAoKmVsdHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4KTsKLSsg ICAgICBzaXplX3QgZGltX3NpemU7Ci0rICAgICAgc2l6ZV90IG9mZnMgPSAwOwotKyAgICAgIExP TkdFU1QgYnl0ZV9zdHJpZGUgPSBhYnMgKFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpKTsK LSsKLSsgICAgICBpZiAoYnl0ZV9zdHJpZGUpCi0rICAgICAgICBkaW1fc2l6ZSA9IGJ5dGVfc3Ry aWRlOwotKyAgICAgIGVsc2UKLSsgICAgICAgIGRpbV9zaXplID0gVFlQRV9MRU5HVEggKFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpKTsKLSsKLSsgICAgICBmb3IgKGkgPSBsb3dlcmJvdW5kOwotKwkg ICAoaSA8IHVwcGVyYm91bmQgKyAxICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXgpOwot IAkgICBpKyspCi0gCXsKLSsJICBzdHJ1Y3QgdmFsdWUgKnN1YmFycmF5ID0gdmFsdWVfZnJvbV9j b250ZW50c19hbmRfYWRkcmVzcwotKwkgICAgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCB2YWx1 ZV9jb250ZW50c19mb3JfcHJpbnRpbmdfY29uc3QgKHZhbCkKLSsJICAgICArIG9mZnMsIGFkZHIg KyBvZmZzKTsKLSsKLSAJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIoICIpOwotLQkgIGY3 N19wcmludF9hcnJheV8xIChuc3MgKyAxLCBuZGltZW5zaW9ucywgVFlQRV9UQVJHRVRfVFlQRSAo dHlwZSksCi0tCQkJICAgICB2YWxhZGRyLAotLQkJCSAgICAgZW1iZWRkZWRfb2Zmc2V0ICsgaSAq IEY3N19ESU1fT0ZGU0VUIChuc3MpLAotLQkJCSAgICAgYWRkcmVzcywKLS0JCQkgICAgIHN0cmVh bSwgcmVjdXJzZSwgdmFsLCBvcHRpb25zLCBlbHRzKTsKLSsJICBmNzdfcHJpbnRfYXJyYXlfMSAo bnNzICsgMSwgbmRpbWVuc2lvbnMsIHZhbHVlX3R5cGUgKHN1YmFycmF5KSwKLSsJCQkgICAgIHZh bHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAoc3ViYXJyYXkpLAotKwkJCSAgICAgdmFsdWVfZW1i ZWRkZWRfb2Zmc2V0IChzdWJhcnJheSksCi0rCQkJICAgICB2YWx1ZV9hZGRyZXNzIChzdWJhcnJh eSksCi0rCQkJICAgICBzdHJlYW0sIHJlY3Vyc2UsIHN1YmFycmF5LCBvcHRpb25zLCBlbHRzKTsK LSsJICBvZmZzICs9IGRpbV9zaXplOwotIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikg Iik7Ci0gCX0KLS0gICAgICBpZiAoKmVsdHMgPj0gb3B0aW9ucy0+cHJpbnRfbWF4ICYmIGkgPCBG NzdfRElNX1NJWkUgKG5zcykpIAotKyAgICAgIGlmICgqZWx0cyA+PSBvcHRpb25zLT5wcmludF9t YXggJiYgaSA8IHVwcGVyYm91bmQpCi0gCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIp OwotICAgICB9Ci0gICBlbHNlCi0gICAgIHsKLS0gICAgICBmb3IgKGkgPSAwOyBpIDwgRjc3X0RJ TV9TSVpFIChuc3MpICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXg7Ci0rICAgICAgZm9y IChpID0gbG93ZXJib3VuZDsgaSA8IHVwcGVyYm91bmQgKyAxICYmICgqZWx0cykgPCBvcHRpb25z LT5wcmludF9tYXg7Ci0gCSAgIGkrKywgKCplbHRzKSsrKQotIAl7Ci0tCSAgdmFsX3ByaW50IChU WVBFX1RBUkdFVF9UWVBFICh0eXBlKSwKLS0JCSAgICAgdmFsYWRkciwKLS0JCSAgICAgZW1iZWRk ZWRfb2Zmc2V0ICsgaSAqIEY3N19ESU1fT0ZGU0VUIChuZGltZW5zaW9ucyksCi0tCQkgICAgIGFk ZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSwKLS0JCSAgICAgdmFsLCBvcHRpb25zLCBjdXJyZW50X2xh bmd1YWdlKTsKLSsJICBzdHJ1Y3QgdmFsdWUgKmVsdCA9IHZhbHVlX3N1YnNjcmlwdCAoKHN0cnVj dCB2YWx1ZSAqKXZhbCwgaSk7Ci0rCi0rCSAgdmFsX3ByaW50ICh2YWx1ZV90eXBlIChlbHQpLAot KwkJICAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKGVsdCksCi0rCQkgICAgIHZhbHVl X2VtYmVkZGVkX29mZnNldCAoZWx0KSwKLSsJCSAgICAgdmFsdWVfYWRkcmVzcyAoZWx0KSwgc3Ry ZWFtLCByZWN1cnNlLAotKwkJICAgICBlbHQsIG9wdGlvbnMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwot IAotLQkgIGlmIChpICE9IChGNzdfRElNX1NJWkUgKG5zcykgLSAxKSkKLSsJICBpZiAoaSAhPSB1 cHBlcmJvdW5kKQotIAkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLCAiKTsKLSAKLSAJ ICBpZiAoKCplbHRzID09IG9wdGlvbnMtPnByaW50X21heCAtIDEpCi0tCSAgICAgICYmIChpICE9 IChGNzdfRElNX1NJWkUgKG5zcykgLSAxKSkpCi0rCSAgICAgICYmIChpICE9IHVwcGVyYm91bmQp KQotIAkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7Ci0gCX0KLSAgICAgfQot QEAgLTIyNSwxMiArMTk0LDYgQEAKLSBUeXBlIG5vZGUgY29ycnVwdCEgRjc3IGFycmF5cyBjYW5u b3QgaGF2ZSAlZCBzdWJzY3JpcHRzICglZCBNYXgpIiksCi0gCSAgIG5kaW1lbnNpb25zLCBNQVhf Rk9SVFJBTl9ESU1TKTsKLSAKLS0gIC8qIFNpbmNlIEY3NyBhcnJheXMgYXJlIHN0b3JlZCBjb2x1 bW4tbWFqb3IsIHdlIHNldCB1cCBhbiAKLS0gICAgIG9mZnNldCB0YWJsZSB0byBnZXQgYXQgdGhl IHZhcmlvdXMgcm93J3MgZWxlbWVudHMuICBUaGUgCi0tICAgICBvZmZzZXQgdGFibGUgY29udGFp bnMgZW50cmllcyBmb3IgYm90aCBvZmZzZXQgYW5kIHN1YmFycmF5IHNpemUuICAqLwotLQotLSAg Zjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNldF90YmwgKHR5cGUsIHN0cmVhbSk7Ci0tCi0gICBm NzdfcHJpbnRfYXJyYXlfMSAoMSwgbmRpbWVuc2lvbnMsIHR5cGUsIHZhbGFkZHIsIGVtYmVkZGVk X29mZnNldCwKLSAJCSAgICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNlLCB2YWwsIG9wdGlvbnMs ICZlbHRzKTsKLSB9Ci1AQCAtMzc1LDEyICszMzgsMTUgQEAKLSAgICAgICBmcHJpbnRmX2ZpbHRl cmVkIChzdHJlYW0sICIoICIpOwotICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IFRZUEVf TkZJRUxEUyAodHlwZSk7IGluZGV4KyspCi0gICAgICAgICB7Ci0tICAgICAgICAgIGludCBvZmZz ZXQgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaW5kZXgpIC8gODsKLSsJICBzdHJ1Y3QgdmFs dWUgKmZpZWxkID0gdmFsdWVfZmllbGQKLSsJICAgICgoc3RydWN0IHZhbHVlICopb3JpZ2luYWxf dmFsdWUsIGluZGV4KTsKLSsKLSsgICAgICAgICAgdmFsX3ByaW50ICh2YWx1ZV90eXBlIChmaWVs ZCksCi0rCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAoZmllbGQpLAotKwkJICAg ICB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGZpZWxkKSwKLSsJCSAgICAgdmFsdWVfYWRkcmVzcyAo ZmllbGQpLCBzdHJlYW0sIHJlY3Vyc2UgKyAxLAotKwkJICAgICBmaWVsZCwgb3B0aW9ucywgY3Vy cmVudF9sYW5ndWFnZSk7Ci0gCi0tICAgICAgICAgIHZhbF9wcmludCAoVFlQRV9GSUVMRF9UWVBF ICh0eXBlLCBpbmRleCksIHZhbGFkZHIsCi0tCQkgICAgIGVtYmVkZGVkX29mZnNldCArIG9mZnNl dCwKLS0JCSAgICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNlICsgMSwKLS0JCSAgICAgb3JpZ2lu YWxfdmFsdWUsIG9wdGlvbnMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotICAgICAgICAgICBpZiAoaW5k ZXggIT0gVFlQRV9ORklFTERTICh0eXBlKSAtIDEpCi0gICAgICAgICAgICAgZnB1dHNfZmlsdGVy ZWQgKCIsICIsIHN0cmVhbSk7Ci0gICAgICAgICB9Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2dkYnR5cGVzLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5v cmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDgzNTgyNDU5ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnR5cGVzLmMJMjAxNi0wMS0wOCAxOToxNTo0 NC45ODI2Mzc2NzQgKzAxMDAKLUBAIC04MzYsNyArODM2LDggQEAKLSBzdHJ1Y3QgdHlwZSAqCi0g Y3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUg KmluZGV4X3R5cGUsCi0gCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpsb3dfYm91bmQs Ci0tCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpoaWdoX2JvdW5kKQotKwkJICAgY29u c3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqaGlnaF9ib3VuZCwKLSsJCSAgIGNvbnN0IHN0cnVjdCBk eW5hbWljX3Byb3AgKnN0cmlkZSkKLSB7Ci0gICBpZiAocmVzdWx0X3R5cGUgPT0gTlVMTCkKLSAg ICAgcmVzdWx0X3R5cGUgPSBhbGxvY190eXBlX2NvcHkgKGluZGV4X3R5cGUpOwotQEAgLTg1MSw2 ICs4NTIsNyBAQAotICAgICBUWVBFX1pBTExPQyAocmVzdWx0X3R5cGUsIHNpemVvZiAoc3RydWN0 IHJhbmdlX2JvdW5kcykpOwotICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPmxvdyA9 ICpsb3dfYm91bmQ7Ci0gICBUWVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90eXBlKS0+aGlnaCA9ICpo aWdoX2JvdW5kOwotKyAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPnN0cmlkZSA9ICpz dHJpZGU7Ci0gCi0gICBpZiAobG93X2JvdW5kLT5raW5kID09IFBST1BfQ09OU1QgJiYgbG93X2Jv dW5kLT5kYXRhLmNvbnN0X3ZhbCA+PSAwKQotICAgICBUWVBFX1VOU0lHTkVEIChyZXN1bHRfdHlw ZSkgPSAxOwotQEAgLTg3OSw3ICs4ODEsNyBAQAotIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAo c3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKLSAJCQkg IExPTkdFU1QgbG93X2JvdW5kLCBMT05HRVNUIGhpZ2hfYm91bmQpCi0gewotLSAgc3RydWN0IGR5 bmFtaWNfcHJvcCBsb3csIGhpZ2g7Ci0rICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvdywgaGlnaCwg c3RyaWRlOwotIAotICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwotICAgbG93LmRhdGEuY29uc3Rf dmFsID0gbG93X2JvdW5kOwotQEAgLTg4Nyw3ICs4ODksMTEgQEAKLSAgIGhpZ2gua2luZCA9IFBS T1BfQ09OU1Q7Ci0gICBoaWdoLmRhdGEuY29uc3RfdmFsID0gaGlnaF9ib3VuZDsKLSAKLS0gIHJl c3VsdF90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKHJlc3VsdF90eXBlLCBpbmRleF90eXBlLCAm bG93LCAmaGlnaCk7Ci0rICBzdHJpZGUua2luZCA9IFBST1BfQ09OU1Q7Ci0rICBzdHJpZGUuZGF0 YS5jb25zdF92YWwgPSAwOwotKwotKyAgcmVzdWx0X3R5cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAo cmVzdWx0X3R5cGUsIGluZGV4X3R5cGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmbG93LCAmaGlnaCwgJnN0cmlkZSk7Ci0gCi0gICByZXR1cm4gcmVzdWx0X3R5cGU7Ci0g fQotQEAgLTEwODQsMTYgKzEwOTAsMjEgQEAKLSAgICAgICAmJiAoIXR5cGVfbm90X2Fzc29jaWF0 ZWQgKHJlc3VsdF90eXBlKQotIAkgICYmICF0eXBlX25vdF9hbGxvY2F0ZWQgKHJlc3VsdF90eXBl KSkpCi0gICAgIHsKLS0gICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKLSsgICAg ICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgYnl0ZV9zdHJpZGU7Ci0gCi0gICAgICAg aWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2Jv dW5kKSA8IDApCi0gCWxvd19ib3VuZCA9IGhpZ2hfYm91bmQgPSAwOwotICAgICAgIGVsZW1lbnRf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKGVsZW1lbnRfdHlwZSk7Ci0rCi0rICAgICAgYnl0ZV9zdHJp ZGUgPSBhYnMgKFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpKTsKLSsKLSAgICAgICAvKiBC ZSBjYXJlZnVsIHdoZW4gc2V0dGluZyB0aGUgYXJyYXkgbGVuZ3RoLiAgQWRhIGFycmF5cyBjYW4g YmUKLSAJIGVtcHR5IGFycmF5cyB3aXRoIHRoZSBoaWdoX2JvdW5kIGJlaW5nIHNtYWxsZXIgdGhh biB0aGUgbG93X2JvdW5kLgotIAkgSW4gc3VjaCBjYXNlcywgdGhlIGFycmF5IGxlbmd0aCBzaG91 bGQgYmUgemVyby4gICovCi0gICAgICAgaWYgKGhpZ2hfYm91bmQgPCBsb3dfYm91bmQpCi0gCVRZ UEVfTEVOR1RIIChyZXN1bHRfdHlwZSkgPSAwOwotKyAgICAgIGVsc2UgaWYgKGJ5dGVfc3RyaWRl ID4gMCkKLSsJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9IGJ5dGVfc3RyaWRlICogKGhpZ2hf Ym91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSAgICAgICBlbHNlIGlmIChiaXRfc3RyaWRlID4gMCkK LSAJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9Ci0gCSAgKGJpdF9zdHJpZGUgKiAoaGlnaF9i b3VuZCAtIGxvd19ib3VuZCArIDEpICsgNykgLyA4OwotQEAgLTE4MDQsMTIgKzE4MTUsMzEgQEAK LSBzdGF0aWMgaW50Ci0gaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgaW50IHRvcF9sZXZlbCkKLSB7Ci0rICBpbnQgaW5kZXg7Ci0rCi0rICBpZiAoIXR5cGUpCi0r ICAgIHJldHVybiAwOwotKwotICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOwotIAotICAg LyogV2Ugb25seSB3YW50IHRvIHJlY29nbml6ZSByZWZlcmVuY2VzIGF0IHRoZSBvdXRlcm1vc3Qg bGV2ZWwuICAqLwotICAgaWYgKHRvcF9sZXZlbCAmJiBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVf Q09ERV9SRUYpCi0gICAgIHR5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0 eXBlKSk7Ci0gCi0rICBpZiAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpKQotKyAgICByZXR1 cm4gMTsKLSsKLSsgIGlmIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSkKLSsgICAgcmV0dXJu IDE7Ci0rCi0rICAvKiBTY2FuIGZpZWxkIHR5cGVzIGluIHRoZSBGb3J0cmFuIGNhc2UgZm9yIG5l c3RlZCBkeW5hbWljIHR5cGVzLgotKyAgICAgVGhpcyB3aWxsIGJlIGRvbmUgb25seSBmb3IgRm9y dHJhbiBhcyBpbiB0aGUgQysrIGNhc2UgYW4gZW5kbGVzcyByZWN1cnNpb24KLSsgICAgIGNhbiBv Y2N1ciBpbiB0aGUgYXJlYSBvZiBjbGFzc2VzLiAgKi8KLSsgIGlmIChjdXJyZW50X2xhbmd1YWdl LT5sYV9sYW5ndWFnZSA9PSBsYW5ndWFnZV9mb3J0cmFuKQotKyAgICBmb3IgKGluZGV4ID0gMDsg aW5kZXggPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpbmRleCsrKQotKyAgICAgIGlmIChpc19keW5h bWljX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaW5kZXgpKSkKLSsgICAgICAgIHJldHVy biAxOwotKwotICAgLyogVHlwZXMgdGhhdCBoYXZlIGEgZHluYW1pYyBUWVBFX0RBVEFfTE9DQVRJ T04gYXJlIGNvbnNpZGVyZWQKLSAgICAgIGR5bmFtaWMsIGV2ZW4gaWYgdGhlIHR5cGUgaXRzZWxm IGlzIHN0YXRpY2FsbHkgZGVmaW5lZC4KLSAgICAgIEZyb20gYSB1c2VyJ3MgcG9pbnQgb2Ygdmll dywgdGhpcyBtYXkgYXBwZWFyIGNvdW50ZXItaW50dWl0aXZlOwotQEAgLTE4NDQsMTEgKzE4NzQs MTkgQEAKLSAgICAgICB7Ci0gCWdkYl9hc3NlcnQgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7 Ci0gCi0tCS8qIFRoZSBhcnJheSBpcyBkeW5hbWljIGlmIGVpdGhlciB0aGUgYm91bmRzIGFyZSBk eW5hbWljLAotLQkgICBvciB0aGUgZWxlbWVudHMgaXQgY29udGFpbnMgaGF2ZSBhIGR5bmFtaWMg Y29udGVudHMuICAqLwotKwkvKiBUaGUgYXJyYXkgaXMgZHluYW1pYyBpZiBlaXRoZXIKLSsgICAg IC0gdGhlIGJvdW5kcyBhcmUgZHluYW1pYywKLSsJICAgLSB0aGUgZWxlbWVudHMgaXQgY29udGFp bnMgaGF2ZSBhIGR5bmFtaWMgY29udGVudHMKLSsgICAgIC0gYSBkYXRhX2xvY2F0b24gYXR0cmli dXRlIHdhcyBmb3VuZC4gICovCi0gCWlmIChpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVf SU5ERVhfVFlQRSAodHlwZSksIDApKQotIAkgIHJldHVybiAxOwotLQlyZXR1cm4gaXNfZHluYW1p Y190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgMCk7Ci0rCWVsc2UgaWYg KFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkgIT0gTlVMTAotKwkgICAgICAgICAmJiAoVFlQRV9E QVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfTE9DRVhQUgotKwkgICAgICAgICAgICAg fHwgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfTE9DTElTVCkpCi0rICAg IHJldHVybiAxOwotKyAgZWxzZQotKyAgICByZXR1cm4gaXNfZHluYW1pY190eXBlX2ludGVybmFs IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgMCk7Ci0rCWJyZWFrOwotICAgICAgIH0KLSAKLSAg ICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgotQEAgLTE4NjEsNiArMTg5OSwxOCBAQAotIAkgICAg ICAmJiBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSks IDApKQotIAkgICAgcmV0dXJuIDE7Ci0gICAgICAgfQotKyAgICBjYXNlIFRZUEVfQ09ERV9QVFI6 Ci0rICAgICAgewotKyAgICAgICAgaWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpCi0rICAgICAg ICAgICAgJiYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09E RV9TVFJJTkcKLSsgICAgICAgICAgICAgICAgfHwgVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBF ICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FSUkFZKSkKLSsgICAgICAgICAgcmV0dXJuIGlzX2R5bmFt aWNfdHlwZSAoY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKTsKLSsKLSsg ICAgICAgIHJldHVybiAwOwotKyAgICAgICAgYnJlYWs7Ci0rICAgICAgfQotKyAgICBkZWZhdWx0 OgotKyAgICAgIHJldHVybiAwOwotICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi1AQCAtMTg5MCw3 ICsxOTQwLDggQEAKLSAgIHN0cnVjdCB0eXBlICpzdGF0aWNfcmFuZ2VfdHlwZSwgKnN0YXRpY190 YXJnZXRfdHlwZTsKLSAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3A7Ci0gICBjb25z dCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmJhdG9uOwotLSAgc3RydWN0IGR5bmFtaWNf cHJvcCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7Ci0rICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvd19i b3VuZCwgaGlnaF9ib3VuZCwgc3RyaWRlOwotKyAgc3RydWN0IHR5cGUgKnJhbmdlX2NvcHkgPSBj b3B5X3R5cGUgKGR5bl9yYW5nZV90eXBlKTsKLSAKLSAgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAo ZHluX3JhbmdlX3R5cGUpID09IFRZUEVfQ09ERV9SQU5HRSk7Ci0gCi1AQCAtMTkyMiwxMiArMTk3 MywxOSBAQAotICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwgPSAwOwotICAgICB9Ci0g Ci0rICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAoZHluX3JhbmdlX3R5cGUpLT5zdHJpZGU7Ci0r ICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAm dmFsdWUpKQotKyAgICB7Ci0rICAgICAgc3RyaWRlLmtpbmQgPSBQUk9QX0NPTlNUOwotKyAgICAg IHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IHZhbHVlOwotKyAgICB9Ci0rCi0gICBzdGF0aWNfdGFy Z2V0X3R5cGUKLS0gICAgPSByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJH RVRfVFlQRSAoZHluX3JhbmdlX3R5cGUpLAotKyAgICA9IHJlc29sdmVfZHluYW1pY190eXBlX2lu dGVybmFsIChUWVBFX1RBUkdFVF9UWVBFIChyYW5nZV9jb3B5KSwKLSAJCQkJICAgICBhZGRyX3N0 YWNrLCAwKTsKLS0gIHN0YXRpY19yYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKGNvcHlf dHlwZSAoZHluX3JhbmdlX3R5cGUpLAotKyAgc3RhdGljX3JhbmdlX3R5cGUgPSBjcmVhdGVfcmFu Z2VfdHlwZSAocmFuZ2VfY29weSwKLSAJCQkJCSBzdGF0aWNfdGFyZ2V0X3R5cGUsCi0tCQkJCQkg Jmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpOwotKwkJCQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5k LCAmc3RyaWRlKTsKLSAgIFRZUEVfUkFOR0VfREFUQSAoc3RhdGljX3JhbmdlX3R5cGUpLT5mbGFn X2JvdW5kX2V2YWx1YXRlZCA9IDE7Ci0gICByZXR1cm4gc3RhdGljX3JhbmdlX3R5cGU7Ci0gfQot QEAgLTE5NDYsNyArMjAwNCw4IEBACi0gICBzdHJ1Y3QgdHlwZSAqYXJ5X2RpbTsKLSAgIHN0cnVj dCBkeW5hbWljX3Byb3AgKnByb3A7Ci0gCi0tICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKHR5cGUp ID09IFRZUEVfQ09ERV9BUlJBWSk7Ci0rICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKHR5cGUpID09 IFRZUEVfQ09ERV9BUlJBWQotKwkgICAgICB8fCBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09E RV9TVFJJTkcpOwotIAotICAgdHlwZSA9IGNvcHlfdHlwZSAodHlwZSk7Ci0gCi1AQCAtMTk3MSwx MyArMjAzMCwxOCBAQAotIAotICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VU X1RZUEUgKGVsdF90eXBlKSk7Ci0gCi0tICBpZiAoYXJ5X2RpbSAhPSBOVUxMICYmIFRZUEVfQ09E RSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZKQotKyAgaWYgKGFyeV9kaW0gIT0gTlVMTCAm JiAoVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVfQVJSQVkKLSsJCQkgIHx8IFRZUEVf Q09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX1NUUklORykpCi0gICAgIGVsdF90eXBlID0gcmVz b2x2ZV9keW5hbWljX2FycmF5IChhcnlfZGltLCBhZGRyX3N0YWNrKTsKLSAgIGVsc2UKLSAgICAg ZWx0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKLSAKLS0gIHJldHVybiBjcmVhdGVf YXJyYXlfdHlwZV93aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfRklFTERfQklUU0laRSAo dHlwZSwgMCkpOwotKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORwot KyAgICAgICYmIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkgPT0gMCkKLSsgICAgcmV0dXJu IGNyZWF0ZV9zdHJpbmdfdHlwZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUpOwotKyAgZWxz ZQotKyAgICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHR5cGUsIGVsdF90 eXBlLCByYW5nZV90eXBlLAotKwkJCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIDApKTsK LSB9Ci0gCi0gLyogUmVzb2x2ZSBkeW5hbWljIGJvdW5kcyBvZiBtZW1iZXJzIG9mIHRoZSB1bmlv biBUWVBFIHRvIHN0YXRpYwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJ0eXBl cy5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZ2RidHlw ZXMuaAkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4NTU4MjQ3MSArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9nZGJ0eXBlcy5oCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgzNjM3NjgwICsw MTAwCi1AQCAtNTc3LDYgKzU3NywxMCBAQAotIAotICAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdo OwotIAotKyAgLyogKiBTdHJpZGUgb2YgcmFuZ2UuICAqLwotKwotKyAgc3RydWN0IGR5bmFtaWNf cHJvcCBzdHJpZGU7Ci0rCi0gICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2UgYm91bmQgY29udGFpbnMg dGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUKLSAgICAgIHN1YnJhbmdlLiBUaGlzIGFmZmVj dHMgaG93IHRoZSBmaW5hbCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4gICovCi0gCi1AQCAtNzQ5 LDYgKzc1MywxOCBAQAotIAotICAgLyogKiBDb250YWlucyBhbGwgZHluYW1pYyB0eXBlIHByb3Bl cnRpZXMuICAqLwotICAgc3RydWN0IGR5bmFtaWNfcHJvcF9saXN0ICpkeW5fcHJvcF9saXN0Owot KwotKyAgLyogU3RydWN0dXJlIGZvciBEV19BVF9hbGxvY2F0ZWQuCi0rICAgICBUaGUgcHJlc2Vu Y2Ugb2YgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoYXQgdGhlIG9iamVjdCBvZiB0aGUgdHlw ZQotKyAgICAgY2FuIGJlIGFsbG9jYXRlZC9kZWFsbG9jYXRlZC4gIFRoZSB2YWx1ZSBjYW4gYmUg YSBkd2FyZiBleHByZXNzaW9uLAotKyAgICAgcmVmZXJlbmNlLCBvciBhIGNvbnN0YW50LiAgKi8K LSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgKmFsbG9jYXRlZDsKLSsKLSsgIC8qIFN0cnVjdHVyZSBm b3IgRFdfQVRfYXNzb2NpYXRlZC4KLSsgICAgIFRoZSBwcmVzZW5jZSBvZiB0aGlzIGF0dHJpYnV0 ZSBpbmRpY2F0ZWQgdGhhdCB0aGUgb2JqZWN0IG9mIHRoZSB0eXBlCi0rICAgICBjYW4gYmUgYXNz b2NpYXRlZC4gIFRoZSB2YWx1ZSBjYW4gYmUgYSBkd2FyZiBleHByZXNzaW9uLAotKyAgICAgcmVm ZXJlbmNlLCBvciBhIGNvbnN0YW50LiAgKi8KLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgKmFzc29j aWF0ZWQ7Ci0gfTsKLSAKLSAvKiAqIEEgYGBzdHJ1Y3QgdHlwZScnIGRlc2NyaWJlcyBhIHBhcnRp Y3VsYXIgaW5zdGFuY2Ugb2YgYSB0eXBlLCB3aXRoCi1AQCAtMTI1NSw2ICsxMjcxLDE1IEBACi0g ICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmhpZ2gua2luZAotICNkZWZpbmUgVFlQRV9M T1dfQk9VTkRfS0lORChyYW5nZV90eXBlKSBcCi0gICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlw ZSktPmxvdy5raW5kCi0rI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFKHJhbmdlX3R5cGUpIFwKLSsg IFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmRhdGEuY29uc3RfdmFsCi0rI2Rl ZmluZSBUWVBFX0JZVEVfU1RSSURFX0JMT0NLKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0Vf REFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmRhdGEubG9jZXhwcgotKyNkZWZpbmUgVFlQRV9CWVRF X1NUUklERV9MT0NMSVNUKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90 eXBlKS0+c3RyaWRlLmRhdGEubG9jbGlzdAotKyNkZWZpbmUgVFlQRV9CWVRFX1NUUklERV9LSU5E KHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmtp bmQKLSsKLSAKLSAvKiBQcm9wZXJ0eSBhY2Nlc3NvcnMgZm9yIHRoZSB0eXBlIGRhdGEgbG9jYXRp b24uICAqLwotICNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OKHRoaXN0eXBlKSBcCi1AQCAtMTI2 Niw2ICsxMjkxLDE4IEBACi0gI2RlZmluZSBUWVBFX0RBVEFfTE9DQVRJT05fS0lORCh0aGlzdHlw ZSkgXAotICAgVFlQRV9EQVRBX0xPQ0FUSU9OICh0aGlzdHlwZSktPmtpbmQKLSAKLSsvKiBBbGxv Y2F0ZWQgc3RhdHVzIG9mIHR5cGUgb2JqZWN0LiAgSWYgc2V0IHRvIG5vbi16ZXJvIGl0IG1lYW5z IHRoZSBvYmplY3QKLSsgICBpcyBhbGxvY2F0ZWQuIEEgemVybyB2YWx1ZSBtZWFucyBpdCBpcyBu b3QgYWxsb2NhdGVkLiAgKi8KLSsjZGVmaW5lIFRZUEVfTk9UX0FMTE9DQVRFRCh0KSAgKFRZUEVf QUxMT0NBVEVEX1BST1AgKHQpIFwKLSsgICYmIFRZUEVfQUxMT0NBVEVEX1BST1AgKHQpLT5raW5k ID09IFBST1BfQ09OU1QgXAotKyAgJiYgIVRZUEVfQUxMT0NBVEVEX1BST1AgKHQpLT5kYXRhLmNv bnN0X3ZhbCkKLSsKLSsvKiBBc3NvY2lhdGVkIHN0YXR1cyBvZiB0eXBlIG9iamVjdC4gIElmIHNl dCB0byBub24temVybyBpdCBtZWFucyB0aGUgb2JqZWN0Ci0rICAgaXMgYXNzb2NpYXRlZC4gQSB6 ZXJvIHZhbHVlIG1lYW5zIGl0IGlzIG5vdCBhc3NvY2lhdGVkLiAgKi8KLSsjZGVmaW5lIFRZUEVf Tk9UX0FTU09DSUFURUQodCkgIChUWVBFX0FTU09DSUFURURfUFJPUCAodCkgXAotKyAgJiYgVFlQ RV9BU1NPQ0lBVEVEX1BST1AgKHQpLT5raW5kID09IFBST1BfQ09OU1QgXAotKyAgJiYgIVRZUEVf QVNTT0NJQVRFRF9QUk9QICh0KS0+ZGF0YS5jb25zdF92YWwpCi0rCi0gLyogUHJvcGVydHkgYWNj ZXNzb3JzIGZvciB0aGUgdHlwZSBhbGxvY2F0ZWQvYXNzb2NpYXRlZC4gICovCi0gI2RlZmluZSBU WVBFX0FMTE9DQVRFRF9QUk9QKHRoaXN0eXBlKSBcCi0gICBnZXRfZHluX3Byb3AgKERZTl9QUk9Q X0FMTE9DQVRFRCwgdGhpc3R5cGUpCi1AQCAtMTI4OSw2ICsxMzI2LDkgQEAKLSAgICBUWVBFX0hJ R0hfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKQotICNkZWZpbmUg VFlQRV9BUlJBWV9MT1dFUl9CT1VORF9JU19VTkRFRklORUQoYXJyYXl0eXBlKSBcCi0gICAgVFlQ RV9MT1dfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKQotKyNkZWZp bmUgVFlQRV9BUlJBWV9TVFJJREVfSVNfVU5ERUZJTkVEKGFycmF5dHlwZSkgXAotKyAgIChUWVBF X0JZVEVfU1RSSURFKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKSA9PSAwKQotKwotIAotICNk ZWZpbmUgVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9WQUxVRShhcnJheXR5cGUpIFwKLSAgICAoVFlQ RV9ISUdIX0JPVU5EKFRZUEVfSU5ERVhfVFlQRSgoYXJyYXl0eXBlKSkpKQotQEAgLTE3NzUsNiAr MTgxNSw3IEBACi0gCi0gZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfcmFuZ2VfdHlwZSAoc3Ry dWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLSAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5h bWljX3Byb3AgKiwKLSsJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKiwKLSAJ CQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKik7Ci0gCi0gZXh0ZXJuIHN0cnVj dCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1mdW5jLmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgzNjM3NjgwICsw MTAwCi1AQCAtMCwwICsxLDYxIEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3Rh bmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rl c3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVp ZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVu IHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAg IGNvbnRpbnVlCi0rfQotKwotKyMgQ2hlY2sgVkxBIHBhc3NlZCB0byBmaXJzdCBGb3J0cmFuIGZ1 bmN0aW9uLgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS12bGEt cGFzc2VkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzEtdmxhLXBhc3NlZCIK LStnZGJfdGVzdCAicHJpbnQgdmxhIiAiID0gXFwoICpcXCggKjIyLCAqMjIsICoyMixcWygpMjIs IC5cXSpcXCkiIFwKLSsgICJwcmludCB2bGEgKGZ1bmMxKSIKLStnZGJfdGVzdCAicHR5cGUgdmxh IiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSBcXFwoMTAsMTBcXFwpIiBcCi0rICAicHR5 cGUgdmxhIChmdW5jMSkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg ImZ1bmMxLXZsYS1tb2RpZmllZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMx LXZsYS1tb2RpZmllZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhKDUsNSkiICIgPSA1NSIgInByaW50 IHZsYSg1LDUpIChmdW5jMSkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYSg3LDcpIiAiID0gNzciICJw cmludCB2bGEoNSw1KSAoZnVuYzEpIgotKwotKyMgQ2hlY2sgaWYgdGhlIHZhbHVlcyBhcmUgY29y cmVjdCBhZnRlciByZXR1cm5pbmcgZnJvbSBmdW5jMQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJmdW5jMS1yZXR1cm5lZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgImZ1bmMxLXJldHVybmVkIgotK2dkYl90ZXN0ICJwcmludCByZXQiICIgPSAuVFJVRS4iICJw cmludCByZXQgYWZ0ZXIgZnVuYzEgcmV0dXJuZWQiCi0rCi0rIyBDaGVjayBWTEEgcGFzc2VkIHRv IHNlY29uZCBGb3J0cmFuIGZ1bmN0aW9uCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9u dW1iZXIgImZ1bmMyLXZsYS1wYXNzZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJm dW5jMi12bGEtcGFzc2VkIgotK2dkYl90ZXN0ICJwcmludCB2bGEiIFwKLSsgICIgPSBcXFwoNDQs IDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDRcXFwpIiBcCi0rICAicHJpbnQgdmxh IChmdW5jMikiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9 NFxcXCkgXFxcKDEwXFxcKSIgXAotKyAgInB0eXBlIHZsYSAoZnVuYzIpIgotKwotKyMgQ2hlY2sg aWYgdGhlIHJldHVybmVkIFZMQSBoYXMgdGhlIGNvcnJlY3QgdmFsdWVzIGFuZCBwdHlwZS4KLStn ZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzItcmV0dXJuZWQiXQotK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMi1yZXR1cm5lZCIKLStnZGJfdGVzdCAicHJp bnQgdmxhMyIgIiA9IFxcXCgxLCAyLCA0NCwgNCwgNDQsIDQ0LCA0NCwgOCwgNDQsIDQ0XFxcKSIg XAotKyAgInByaW50IHZsYTMgKGFmdGVyIGZ1bmMyKSIKLStnZGJfdGVzdCAicHR5cGUgdmxhMyIg InR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEwXFxcKSIgXAotKyAgInB0eXBlIHZs YTMgKGFmdGVyIGZ1bmMyKSIKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCTIwMTYtMDEtMDggMTk6 MTU6NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtMCwwICsxLDcxIEBACi0rISBDb3B5cmlnaHQgMjAx NCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyEg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKLSshIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSshIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSshIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIQotKyEgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSshIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl Ci0rISBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3Rv biwgTUEgMDIxMTEtMTMwNywgVVNBLgotKwotK2xvZ2ljYWwgZnVuY3Rpb24gZnVuYzEgKHZsYSkK LSsgIGltcGxpY2l0IG5vbmUKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOiwgOikK LSsgIGZ1bmMxID0gYWxsb2NhdGVkKHZsYSkKLSsgIHZsYSg1LDUpID0gNTUgICAgICAgICAgICAg ICAhIGZ1bmMxLXZsYS1wYXNzZWQKLSsgIHZsYSg3LDcpID0gNzcKLSsgIHJldHVybiAgICAgICAg ICAgICAgICAgICAgICAhIGZ1bmMxLXZsYS1tb2RpZmllZAotK2VuZCBmdW5jdGlvbiBmdW5jMQot KwotK2Z1bmN0aW9uIGZ1bmMyKHZsYSkKLSsgIGltcGxpY2l0IG5vbmUKLSsgIGludGVnZXIgOjog dmxhICg6KQotKyAgaW50ZWdlciA6OiBmdW5jMihzaXplKHZsYSkpCi0rICBpbnRlZ2VyIDo6IGsK LSsKLSsgIHZsYSgxKSA9IDEgICAgICAgICAgICAgICAgICAgICEgZnVuYzItdmxhLXBhc3NlZAot KyAgdmxhKDIpID0gMgotKyAgdmxhKDQpID0gNAotKyAgdmxhKDgpID0gOAotKwotKyAgZnVuYzIg PSB2bGEKLStlbmQgZnVuY3Rpb24gZnVuYzIKLSsKLStwcm9ncmFtIHZsYV9mdW5jCi0rICBpbXBs aWNpdCBub25lCi0rICBpbnRlcmZhY2UKLSsgICAgbG9naWNhbCBmdW5jdGlvbiBmdW5jMSAodmxh KQotKyAgICAgIGludGVnZXIgOjogdmxhICg6LCA6KQotKyAgICBlbmQgZnVuY3Rpb24KLSsgIGVu ZCBpbnRlcmZhY2UKLSsgIGludGVyZmFjZQotKyAgICBmdW5jdGlvbiBmdW5jMiAodmxhKQotKyAg ICAgIGludGVnZXIgOjogdmxhICg6KQotKyAgICAgIGludGVnZXIgZnVuYzIoc2l6ZSh2bGEpKQot KyAgICBlbmQgZnVuY3Rpb24KLSsgIGVuZCBpbnRlcmZhY2UKLSsKLSsgIGxvZ2ljYWwgOjogcmV0 Ci0rICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGExICg6LCA6KQotKyAgaW50ZWdlciwgYWxs b2NhdGFibGUgOjogdmxhMiAoOikKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTMgKDop Ci0rCi0rICByZXQgPSAuRkFMU0UuCi0rCi0rICBhbGxvY2F0ZSAodmxhMSAoMTAsMTApKQotKyAg dmxhMSg6LDopID0gMjIKLSsKLSsgIGFsbG9jYXRlICh2bGEyICgxMCkpCi0rICB2bGEyKDopID0g NDQKLSsKLSsgIHJldCA9IGZ1bmMxKHZsYTEpCi0rICB2bGEzID0gZnVuYzIodmxhMikgICAgICAg ICAgISBmdW5jMS1yZXR1cm5lZAotKwotKyAgcmV0ID0gLlRSVUUuICAgICAgICAgICAgICAgICEg ZnVuYzItcmV0dXJuZWQKLStlbmQgcHJvZ3JhbSB2bGFfZnVuYwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1z dHJpZGUuZXhwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCi1AQCAtMCwwICsx LDQ0IEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUg Ii5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0 ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAg cmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9y ICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQot KwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJyZS1yZXZlcnNlLWVsZW1l bnRzIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicmUtcmV2ZXJzZS1lbGVtZW50cyIK LStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5 LCAxMFxcXCkiIFwKLSsgICJwcmludCByZS1yZXZlcnNlLWVsZW1lbnRzIgotK2dkYl90ZXN0ICJw cmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IHJlLXJldmVyc2UtZWxlbWVudCIKLStn ZGJfdGVzdCAicHJpbnQgcHZsYSgxMCkiICIgPSAxMCIgInByaW50IGxhc3QgcmUtcmV2ZXJzZS1l bGVtZW50IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJvZGQtZWxl bWVudHMiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJvZGQtZWxlbWVudHMiCi0rZ2Ri X3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMywgNSwgNywgOVxcXCkiICJwcmludCBvZGQt ZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSAxIiAicHJpbnQgZmlyc3Qg b2RkLWVsZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoNSkiICIgPSA5IiAicHJpbnQgbGFz dCBvZGQtZWxlbWVudCIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAi c2luZ2xlLWVsZW1lbnQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxl bWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmds ZS1lbGVtZW50IgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBz aW5nbGUtZWxlbWVudCIKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAkyMDE2LTAxLTA4IDE5 OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAsMCArMSwzMCBAQAotKyEgQ29weXJpZ2h0IDIw MTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsh IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rISBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rISBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyEKLSshIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rISBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQotKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0 b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsKLStwcm9ncmFtIHZsYV9zdHJpZGUKLSsgIGludGVn ZXIsIHRhcmdldCwgYWxsb2NhdGFibGUgOjogdmxhICg6KQotKyAgaW50ZWdlciwgcG9pbnRlciA6 OiBwdmxhICg6KQotKwotKyAgYWxsb2NhdGUodmxhKDEwKSkKLSsgIHZsYSA9ICgvIChJLCBJID0g MSwxMCkgLykKLSsKLSsgIHB2bGEgPT4gdmxhKDEwOjE6LTEpCi0rICBwdmxhID0+IHB2bGEoMTA6 MTotMSkKLSsgIHB2bGEgPT4gdmxhKDE6MTA6MikgICAhIHJlLXJldmVyc2UtZWxlbWVudHMKLSsg IHB2bGEgPT4gdmxhKDU6NDotMikgICAhIG9kZC1lbGVtZW50cwotKwotKyAgcHZsYSA9PiBudWxs KCkgICAgICAgICEgc2luZ2xlLWVsZW1lbnQKLStlbmQgcHJvZ3JhbSB2bGFfc3RyaWRlCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3Ry aW5ncy5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiAr MDEwMAotQEAgLTAsMCArMSwxMDEgQEAKLSsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStz dGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKLSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7 dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKLSsgICAge2RlYnVnIGY5MCBx dWlldH1dIH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBjaGVjayB0aGF0IGFsbCBmb3J0 cmFuIHN0YW5kYXJkIGRhdGF0eXBlcyB3aWxsIGJlCi0rIyBoYW5kbGVkIGNvcnJlY3RseSB3aGVu IHVzaW5nIGFzIFZMQSdzCi0rCi0raWYgIVtydW50byBNQUlOX19dIHRoZW4gewotKyAgICBwZXJy b3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIKLSsgICAgY29udGludWUKLSt9 Ci0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWFsbG9j YXRlZC0xIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItYWxsb2NhdGVk LTEiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxc KCBjaGFyYWN0ZXJcXCoxMCBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2NoYXIgYWZ0 ZXIgYWxsb2NhdGVkIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5 cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAotKyAgIndoYXRpcyB2YXJf Y2hhciBmaXJzdCB0aW1lIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIg VE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAotKyAgInB0eXBlIHZhcl9jaGFyIGZpcnN0 IHRpbWUiCi0rZ2RiX3Rlc3QgIm5leHQiICJcXGQrLip2YXJfY2hhciA9ICdmb28nLioiIFwKLSsg ICJuZXh0IHRvIGFsbG9jYXRpb24gc3RhdHVzIG9mIHZhcl9jaGFyIgotK2dkYl90ZXN0ICJwcmlu dCBsIiAiID0gLlRSVUUuIiAicHJpbnQgYWxsb2NhdGlvbiBzdGF0dXMgZmlyc3QgdGltZSIKLSsK LStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmlsbGVkLTEi XQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMSIKLStnZGJf dGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKLSsgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3Rl clxcKjMgXFwpXFwpICR7aGV4fSIgXAotKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGZpbGxlZCBm aXJzdCB0aW1lIgotK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIgPSAnZm9vJyIgXAotKyAg InByaW50ICp2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKLStnZGJfdGVzdCAid2hh dGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXCkiIFwK LSsgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3Qg InB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXCki IFwKLSsgICJwdHlwZSB2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKLStnZGJfdGVz dCAicHJpbnQgdmFyX2NoYXIoMSkiICIgPSAxMDIgJ2YnIiAicHJpbnQgdmFyX2NoYXIoMSkiCi0r Z2RiX3Rlc3QgInByaW50IHZhcl9jaGFyKDMpIiAiID0gMTExICdvJyIgInByaW50IHZhcl9jaGFy KDMpIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1m aWxsZWQtMiJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWZpbGxlZC0y IgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAotKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqNiBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIg YWxsb2NhdGVkIHNlY29uZCB0aW1lIgotK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIgPSAn Zm9vYmFyJyIgXAotKyAgInByaW50ICp2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgc2Vjb25kIHRp bWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNo YXJhY3RlclxcKjYgXFwpIiBcCi0rICAid2hhdGlzIHZhcl9jaGFyIHNlY29uZCB0aW1lIgotK2dk Yl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3Rlclxc KjYgXFwpIiBcCi0rICAicHR5cGUgdmFyX2NoYXIgc2Vjb25kIHRpbWUiCi0rCi0rZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWVtcHR5Il0KLStnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZW1wdHkiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9j aGFyIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCowIFxcKVxcKSAke2hl eH0iIFwKLSsgICJwcmludCB2YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCi0rZ2RiX3Rlc3QgInBy aW50ICp2YXJfY2hhciIgIiA9IFwiXCIiICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5 IgotK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFy YWN0ZXJcXCowIFxcKSIgXAotKyAgIndoYXRpcyB2YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCi0r Z2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVy XFwqMCBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCi0rCi0rZ2Ri X2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWFsbG9jYXRlZC0zIl0K LStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItYWxsb2NhdGVkLTMiCi0rZ2Ri X3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0 ZXJcXCoyMSBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2Nh dGVkIHRoaXJkIHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIg VE8gLT4gXFwoIGNoYXJhY3RlclxcKjIxIFxcKSIgXAotKyAgIndoYXRpcyB2YXJfY2hhciBhZnRl ciBhbGxvY2F0ZWQgdGhpcmQgdGltZSIKLStnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBl ID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hh ciBhZnRlciBhbGxvY2F0ZWQgdGhpcmQgdGltZSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAidmFyX2NoYXJfcC1hc3NvY2lhdGVkIl0KLStnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAidmFyX2NoYXJfcC1hc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCB2YXJf Y2hhcl9wIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKVxcKSAk e2hleH0iIFwKLSsgICJwcmludCB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCi0rZ2RiX3Rl c3QgInByaW50ICp2YXJfY2hhcl9wIiAiID0gJ2pvaG5kb2UnIiBcCi0rICAicHJpbnQgKnZhcl9j aGFyXyBhZnRlciBhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXJfcCIgInR5 cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpIiBcCi0rICAid2hhdGlzIHZhcl9j aGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXJfcCIgInR5 cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpIiBcCi0rICAicHR5cGUgdmFyX2No YXJfcCBhZnRlciBhc3NvY2lhdGVkIgotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAJMjAx Ni0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKLUBAIC0wLDAgKzEsNDAgQEAKLSshIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKLSshIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRl IDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0rCi0rcHJvZ3JhbSB2bGFfc3RyaW5n cwotKyAgY2hhcmFjdGVyKGxlbj06KSwgdGFyZ2V0LCBhbGxvY2F0YWJsZSAgIDo6IHZhcl9jaGFy Ci0rICBjaGFyYWN0ZXIobGVuPTopLCBwb2ludGVyICAgICAgICAgICAgICAgOjogdmFyX2NoYXJf cAotKyAgbG9naWNhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6IGwKLSsKLSsg IGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MTApIDo6IHZhcl9jaGFyKQotKyAgbCA9IGFsbG9jYXRl ZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTEKLSsgIHZh cl9jaGFyID0gJ2ZvbycKLSsgIGRlYWxsb2NhdGUodmFyX2NoYXIpICAgICAgICAgICAgICAgICAg ICAhIHZhcl9jaGFyLWZpbGxlZC0xCi0rICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAg ICAgICAgICAgISB2YXJfY2hhci1kZWFsbG9jYXRlZAotKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxl bj00MikgOjogdmFyX2NoYXIpCi0rICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKQotKyAgdmFyX2No YXIgPSAnZm9vYmFyJwotKyAgdmFyX2NoYXIgPSAnJyAgICAgICAgICAgICAgICAgICAgICAgICAg ICEgdmFyX2NoYXItZmlsbGVkLTIKLSsgIHZhcl9jaGFyID0gJ2JhcicgICAgICAgICAgICAgICAg ICAgICAgICAhIHZhcl9jaGFyLWVtcHR5Ci0rICBkZWFsbG9jYXRlKHZhcl9jaGFyKQotKyAgYWxs b2NhdGUoY2hhcmFjdGVyKGxlbj0yMSkgOjogdmFyX2NoYXIpCi0rICBsID0gYWxsb2NhdGVkKHZh cl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1hbGxvY2F0ZWQtMwotKyAgdmFyX2No YXIgPSAnam9obmRvZScKLSsgIHZhcl9jaGFyX3AgPT4gdmFyX2NoYXIKLSsgIGwgPSBhc3NvY2lh dGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3AtYXNzb2NpYXRlZAotKyAg dmFyX2NoYXJfcCA9PiBudWxsKCkKLSsgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAg ICAgICAgICAhIHZhcl9jaGFyX3Atbm90LWFzc29jaWF0ZWQKLStlbmQgcHJvZ3JhbSB2bGFfc3Ry aW5ncwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90eXBlcHJpbnQuYwotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTYt MDEtMDggMTk6MTU6MzUuMDg2NTgyNDc2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3R5cGVwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCi1AQCAt NDYwLDYgKzQ2MCwxMyBAQAotIAotICAgdHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7Ci0gCi0rICBp ZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSKQotKyAgICBpZiAoaXNfZHluYW1p Y190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkpCi0rICAgICAgewotKwl2YWwgPSB2YWx1 ZV9hZGRyICh2YWx1ZV9pbmQgKHZhbCkpOwotKwl0eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsg ICAgICB9Ci0rCi0gICBnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7Ci0gICBpZiAob3B0 cy5vYmplY3RwcmludCkKLSAgICAgewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92 YWxhcml0aC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIv dmFsYXJpdGguYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4NzU4MjQ4MiArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxhcml0aC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg1NjM3 NjkxICswMTAwCi1AQCAtMTkzLDkgKzE5MywyMSBAQAotICAgc3RydWN0IHR5cGUgKmFycmF5X3R5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwotICAgc3RydWN0IHR5cGUg KmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkp OwotICAgdW5zaWduZWQgaW50IGVsdF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBl KTsKLS0gIHVuc2lnbmVkIGludCBlbHRfb2ZmcyA9IGVsdF9zaXplICogbG9uZ2VzdF90b19pbnQg KGluZGV4IC0gbG93ZXJib3VuZCk7Ci0rICB1bnNpZ25lZCBpbnQgZWx0X29mZnMgPSBsb25nZXN0 X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKLSsgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZ UEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwotICAgc3RydWN0 IHZhbHVlICp2OwotIAotKyAgaWYgKGVsdF9zdHJpZGUgPiAwKQotKyAgICBlbHRfb2ZmcyAqPSBl bHRfc3RyaWRlOwotKyAgZWxzZSBpZiAoZWx0X3N0cmlkZSA8IDApCi0rICAgIHsKLSsgICAgICBp bnQgb2ZmcyA9IChlbHRfb2ZmcyArIDEpICogZWx0X3N0cmlkZTsKLSsKLSsgICAgICBlbHRfb2Zm cyA9IFRZUEVfTEVOR1RIIChhcnJheV90eXBlKSArIG9mZnM7Ci0rICAgIH0KLSsgIGVsc2UKLSsg ICAgZWx0X29mZnMgKj0gZWx0X3NpemU7Ci0rCi0gICBpZiAoaW5kZXggPCBsb3dlcmJvdW5kIHx8 ICghVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKGFycmF5X3R5cGUpCi0gCQkJ ICAgICAmJiBlbHRfb2ZmcyA+PSB0eXBlX2xlbmd0aF91bml0cyAoYXJyYXlfdHlwZSkpKQotICAg ICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZhbHByaW50LmMKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi92YWxwcmludC5jCTIwMTYtMDEt MDggMTk6MTU6MzUuMDg4NTgyNDg3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3ZhbHByaW50LmMJMjAxNi0wMS0wOCAxOToxNTo0NC45ODY2Mzc2OTcgKzAxMDAKLUBAIC0zMTYs NiArMzE2LDE4IEBACi0gICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAKLSsgIGlmIChUWVBFX05P VF9BU1NPQ0lBVEVEICh0eXBlKSkKLSsgICAgewotKyAgICAgIHZhbF9wcmludF9ub3RfYXNzb2Np YXRlZCAoc3RyZWFtKTsKLSsgICAgICByZXR1cm4gMDsKLSsgICAgfQotKwotKyAgaWYgKFRZUEVf Tk9UX0FMTE9DQVRFRCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxfcHJpbnRfbm90X2FsbG9j YXRlZCAoc3RyZWFtKTsKLSsgICAgICByZXR1cm4gMDsKLSsgICAgfQotKwotICAgaWYgKFRZUEVf Q09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX1VOSU9OCi0gICAgICAgJiYgVFlQRV9DT0RFICh0eXBl KSAhPSBUWVBFX0NPREVfU1RSVUNUCi0gICAgICAgJiYgVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBF X0NPREVfQVJSQVkpCi1AQCAtMTAyNSwxMiArMTAzNywxNiBAQAotIHZhbHVlX2NoZWNrX3ByaW50 YWJsZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkgICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi0gewotKyAgY29u c3Qgc3RydWN0IHR5cGUgKnR5cGU7Ci0rCi0gICBpZiAodmFsID09IDApCi0gICAgIHsKLSAgICAg ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIF8oIjxhZGRyZXNzIG9mIHZhbHVlIHVua25vd24+ IikpOwotICAgICAgIHJldHVybiAwOwotICAgICB9Ci0gCi0rICB0eXBlID0gdmFsdWVfdHlwZSAo dmFsKTsKLSsKLSAgIGlmICh2YWx1ZV9lbnRpcmVseV9vcHRpbWl6ZWRfb3V0ICh2YWwpKQotICAg ICB7Ci0gICAgICAgaWYgKG9wdGlvbnMtPnN1bW1hcnkgJiYgIXZhbF9wcmludF9zY2FsYXJfdHlw ZV9wICh2YWx1ZV90eXBlICh2YWwpKSkKLUBAIC0xMDY2LDYgKzEwODIsMTggQEAKLSAgICAgewot ICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwotICAgICAgIHJldHVybiAw OwotKyAgICB9Ci0rCi0rICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAodHlwZSkpCi0rICAgIHsK LSsgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJu IDA7Ci0rICAgIH0KLSsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKHR5cGUpKQotKyAgICB7 Ci0rICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJu IDA7Ci0gICAgIH0KLSAKLSAgIHJldHVybiAxOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi92YWxwcmludC5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvdmFscHJpbnQuaAkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4ODU4MjQ4NyArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxwcmludC5oCTIwMTYtMDEtMDggMTk6MTU6NDQu OTg2NjM3Njk3ICswMTAwCi1AQCAtMjMyLDQgKzIzMiw4IEBACi0gCQkJCQlzdHJ1Y3QgZm9ybWF0 X2RhdGEgKmZtdHApOwotIGV4dGVybiB2b2lkIHByaW50X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZh bCwgY29uc3Qgc3RydWN0IGZvcm1hdF9kYXRhICpmbXRwKTsKLSAKLStleHRlcm4gdm9pZCB2YWxf cHJpbnRfbm90X2FsbG9jYXRlZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci0rCi0rZXh0ZXJu IHZvaWQgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsK LSsKLSAjZW5kaWYKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFsdWUuYwotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNi0w MS0wOCAxOToxNTozNS4wOTA1ODI0OTkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdmFsdWUuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NzYzNzcwMiArMDEwMAotQEAgLTQwLDYg KzQwLDcgQEAKLSAjaW5jbHVkZSAidHJhY2Vwb2ludC5oIgotICNpbmNsdWRlICJjcC1hYmkuaCIK LSAjaW5jbHVkZSAidXNlci1yZWdzLmgiCi0rI2luY2x1ZGUgImR3YXJmMmxvYy5oIgotIAotIC8q IFByb3RvdHlwZXMgZm9yIGV4cG9ydGVkIGZ1bmN0aW9ucy4gICovCi0gCi1AQCAtMTc4OCw2ICsx Nzg5LDI1IEBACi0gICAgICAgaWYgKGZ1bmNzLT5jb3B5X2Nsb3N1cmUpCi0gICAgICAgICBjb21w b25lbnQtPmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1cmUgPSBmdW5jcy0+Y29weV9jbG9zdXJlICh3 aG9sZSk7Ci0gICAgIH0KLSsKLSsgIC8qIEZvciBkeW5hbWljIHR5cGVzIGNvbXB1dGUgdGhlIGFk ZHJlc3Mgb2YgdGhlIGNvbXBvbmVudCB2YWx1ZSBsb2NhdGlvbiBpbgotKyAgICAgc3ViIHJhbmdl IHR5cGVzIGJhc2VkIG9uIHRoZSBsb2NhdGlvbiBvZiB0aGUgc3ViIHJhbmdlIHR5cGUsIGlmIG5v dCBiZWluZwotKyAgICAgYW4gaW50ZXJuYWwgR0RCIHZhcmlhYmxlIG9yIHBhcnRzIG9mIGl0LiAg Ki8KLSsgIGlmIChWQUxVRV9MVkFMIChjb21wb25lbnQpICE9IGx2YWxfaW50ZXJuYWx2YXIKLSsg ICAgICAmJiBWQUxVRV9MVkFMIChjb21wb25lbnQpICE9IGx2YWxfaW50ZXJuYWx2YXJfY29tcG9u ZW50KQotKyAgICB7Ci0rICAgICAgQ09SRV9BRERSIGFkZHI7Ci0rICAgICAgc3RydWN0IHR5cGUg KnR5cGUgPSB2YWx1ZV90eXBlICh3aG9sZSk7Ci0rCi0rICAgICAgYWRkciA9IHZhbHVlX3Jhd19h ZGRyZXNzIChjb21wb25lbnQpOwotKwotKyAgICAgIGlmIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5 cGUpCi0rICAgICAgICAgICYmIFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh0eXBlKSA9PSBQUk9Q X0NPTlNUKQotKyAgICAgICAgewotKyAgICAgICAgICBhZGRyID0gVFlQRV9EQVRBX0xPQ0FUSU9O X0FERFIgKHR5cGUpOwotKyAgICAgICAgICBzZXRfdmFsdWVfYWRkcmVzcyAoY29tcG9uZW50LCBh ZGRyKTsKLSsgICAgICAgIH0KLSsgICAgfQotIH0KLSAKLSAMCi1AQCAtMzA5NSwxMyArMzExNSwy MiBAQAotIAl2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgZWxzZQotIAl7 Ci0tCSAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKLS0JICB2YWx1ZV9jb250ZW50c19jb3B5 X3JhdyAodiwgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2KSwKLS0JCQkJICAgYXJnMSwgdmFsdWVf ZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSArIG9mZnNldCwKLS0JCQkJICAgdHlwZV9sZW5ndGhfdW5p dHMgKHR5cGUpKTsKLSsJICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQotKwkgICAgICAm JiBUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsJICAgIHYg PSB2YWx1ZV9hdF9sYXp5ICh0eXBlLCB2YWx1ZV9hZGRyZXNzIChhcmcxKSArIG9mZnNldCk7Ci0r CSAgZWxzZQotKwkgICAgewotKwkgICAgICB2ID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwotKwkg ICAgICB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAodiwgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2 KSwKLSsJCQkJICAgICAgIGFyZzEsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkgKyBvZmZz ZXQsCi0rCQkJCSAgICAgICB0eXBlX2xlbmd0aF91bml0cyAodHlwZSkpOwotKwkgICAgfQotIAl9 Ci0tICAgICAgdi0+b2Zmc2V0ID0gKHZhbHVlX29mZnNldCAoYXJnMSkgKyBvZmZzZXQKLS0JCSAg ICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSk7Ci0rCi0rICAgICAgaWYgKCFUWVBFX0RB VEFfTE9DQVRJT04gKHR5cGUpCi0rICAgICAgICAgIHx8ICFUWVBFX0RBVEFfTE9DQVRJT05fS0lO RCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsJdi0+b2Zmc2V0ID0gKHZhbHVlX29mZnNldCAoYXJn MSkgKyBvZmZzZXQKLSsJCSAgICAgKyB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpKTsKLSAg ICAgfQotICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgYXJnMSk7Ci0gICBWQUxV RV9SRUdOVU0gKHYpID0gVkFMVUVfUkVHTlVNIChhcmcxKTsKLUBAIC0zNjg5LDcgKzM3MTgsOCBA QAotIAkJCSAgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUpCi0gewotICAgLyogUmUt YWRqdXN0IHR5cGUuICAqLwotLSAgZGVwcmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAodmFsdWUsIFRZ UEVfVEFSR0VUX1RZUEUgKG9yaWdpbmFsX3R5cGUpKTsKLSsgIGlmICghaXNfZHluYW1pY190eXBl IChUWVBFX1RBUkdFVF9UWVBFIChvcmlnaW5hbF90eXBlKSkpCi0rICAgIGRlcHJlY2F0ZWRfc2V0 X3ZhbHVlX3R5cGUgKHZhbHVlLCBUWVBFX1RBUkdFVF9UWVBFIChvcmlnaW5hbF90eXBlKSk7Ci0g Ci0gICAvKiBBZGQgZW1iZWRkaW5nIGluZm8uICAqLwotICAgc2V0X3ZhbHVlX2VuY2xvc2luZ190 eXBlICh2YWx1ZSwgZW5jX3R5cGUpOwotQEAgLTM3MDYsNiArMzczNiwxMiBAQAotICAgc3RydWN0 IHZhbHVlICpyZXR2YWw7Ci0gICBzdHJ1Y3QgdHlwZSAqZW5jX3R5cGU7Ci0gCi0rICBpZiAoY3Vy cmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgIT0gbGFuZ3VhZ2VfZm9ydHJhbgotKyAgICAgICYm IFRZUEVfREFUQV9MT0NBVElPTiAodmFsdWVfdHlwZV9hcmdfdG1wKSAhPSBOVUxMCi0rICAgICAg JiYgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHZhbHVlX3R5cGVfYXJnX3RtcCkgPT0gUFJPUF9D T05TVCkKLSsgICAgYXJnID0gdmFsdWVfYXRfbGF6eSAodmFsdWVfdHlwZV9hcmdfdG1wLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICBUWVBFX0RBVEFfTE9DQVRJT05fQUREUiAodmFsdWVfdHlw ZV9hcmdfdG1wKSk7Ci0rCi0gICByZXR2YWwgPSBjb2VyY2VfcmVmX2lmX2NvbXB1dGVkIChhcmcp OwotICAgaWYgKHJldHZhbCkKLSAgICAgcmV0dXJuIHJldHZhbDsKLUBAIC0zODM0LDggKzM4NzAs MTQgQEAKLSAgICAgfQotICAgZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9y eSkKLSAgICAgewotLSAgICAgIENPUkVfQUREUiBhZGRyID0gdmFsdWVfYWRkcmVzcyAodmFsKTsK LSAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX2VuY2xvc2lu Z190eXBlICh2YWwpKTsKLSsgICAgICBDT1JFX0FERFIgYWRkcjsKLSsKLSsgICAgICBpZiAoVFlQ RV9EQVRBX0xPQ0FUSU9OICh0eXBlKSAhPSBOVUxMCi0rCSAgJiYgVFlQRV9EQVRBX0xPQ0FUSU9O X0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCi0rCWFkZHIgPSBUWVBFX0RBVEFfTE9DQVRJT05f QUREUiAodHlwZSk7Ci0rICAgICAgZWxzZQotKwlhZGRyID0gdmFsdWVfYWRkcmVzcyAodmFsKTsK LSAKLSAgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpKQotIAlyZWFkX3ZhbHVlX21lbW9yeSAo dmFsLCAwLCB2YWx1ZV9zdGFjayAodmFsKSwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvZHdhcmYybG9jLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi9kd2FyZjJsb2MuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA5MTU4MjUwNCArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kd2FyZjJsb2MuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0 Ljk4ODYzNzcwOCArMDEwMAotQEAgLTIzNjgsNiArMjM2OCwxMSBAQAotIAkgICAgYWRkcmVzcyA9 IHZhbHVlX2FzX2FkZHJlc3MgKHZhbHVlX2Zyb21fcG9pbnRlciAocHRyX3R5cGUsIGFkZHJlc3Mp KTsKLSAKLSAJICAgIGRvX2NsZWFudXBzICh2YWx1ZV9jaGFpbik7Ci0rCi0rCSAgICAvKiBTZWxl Y3QgcmlnaHQgZnJhbWUgdG8gY29ycmVjdGx5IGV2YWx1YXRlIFZMQSdzIGR1cmluZyBhIGJhY2t0 cmFjZS4gICovCi0rCSAgICBpZiAoaXNfZHluYW1pY190eXBlICh0eXBlKSkKLSsJICAgICAgc2Vs ZWN0X2ZyYW1lIChmcmFtZSk7Ci0rCi0gCSAgICByZXR2YWwgPSB2YWx1ZV9hdF9sYXp5ICh0eXBl LCBhZGRyZXNzICsgYnl0ZV9vZmZzZXQpOwotIAkgICAgaWYgKGluX3N0YWNrX21lbW9yeSkKLSAJ ICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWwsIDEpOwotQEAgLTI2NjAsNiArMjY2NSwxOSBA QAotIAkJCSAgICAgZGF0YSwgZGF0YSArIHNpemUsIHBlcl9jdSk7Ci0gfQotIAotKy8qIFNlZSBk d2FyZjJsb2MuaC4gICovCi0rCi0raW50Ci0rZHdhcmYyX2FkZHJlc3NfZGF0YV92YWxpZCAoY29u c3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0rewotKyAgaWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKHR5 cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKHR5cGUp KQotKyAgICByZXR1cm4gMDsKLSsKLSsgIHJldHVybiAxOwotK30KLSAMCi0gLyogSGVscGVyIGZ1 bmN0aW9ucyBhbmQgYmF0b24gZm9yIGR3YXJmMl9sb2NfZGVzY19uZWVkc19mcmFtZS4gICovCi0g CgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCAxYmI3NzAyLi4xOWQ2YTYz IDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTksMTUgKzE5LDE1IEBA IFN1bW1hcnk6IEEgR05VIHNvdXJjZS1sZXZlbCBkZWJ1Z2dlciBmb3IgQywgQysrLCBGb3J0cmFu LCBHbyBhbmQgb3RoZXIgbGFuZ3VhZ2VzCiBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZy ZWV6ZSBpdCB3aGVuIEdEQiBnZXRzIGJyYW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxNjAy MTAKKyVnbG9iYWwgc25hcHNyYyAgICAyMDE2MDgwMQogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJj ZSBnbnVsaWIgaW5zdGFsbGVkIGludG8gZ2RiL2dudWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGli IDIwMTUwODIyCiAlZ2xvYmFsIHRhcm5hbWUgZ2RiLSV7dmVyc2lvbn0KLVZlcnNpb246IDcuMTEu MQorVmVyc2lvbjogNy4xMS45MC4yMDE2MDgwNwogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250 YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJl YW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2ll cyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDgzJXs/ZGlzdH0KK1JlbGVh c2U6IDYlez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlv bnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQ THYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1l bnQvRGVidWdnZXJzCkBAIC0yODAsNiArMjgwLDggQEAgUGF0Y2gyNzE6IGdkYi02LjUtYnoyNDM4 NDUtc3RhbGUtdGVzdGluZy16b21iaWUtdGVzdC5wYXRjaAogIz1wdXNoCiBQYXRjaDI3NDogZ2Ri LTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAogIyBGaXggbG9hZGluZyBvZiBjb3JlIGZpbGVzIHdp dGhvdXQgYnVpbGQtaWRzIGJ1dCB3aXRoIGJ1aWxkLWlkcyBpbiBleGVjdXRhYmxlcy4KKyMgTG9h ZCBzdHJpY3RseSBidWlsZC1pZC1jaGVja2VkIGNvcmUgZmlsZXMgb25seSBpZiBubyBleGVjdXRh YmxlIGlzIHNwZWNpZmllZAorIyAoSmFuIEtyYXRvY2h2aWwsIFJIIEJaIDEzMzk4NjIpLgogIz1w dXNoCiBQYXRjaDY1OTogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5w YXRjaAogIz1wdXNoCkBAIC01MjQsMTIgKzUyNiwxNiBAQCBQYXRjaDEwNjA6IGdkYi1mb3J0cmFu LXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCiBQYXRjaDEwNjE6IGdkYi1mb3J0cmFuLXN0cmlkZS1p bnRlbC00b2Y2LnBhdGNoCiBQYXRjaDEwNjI6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2 LnBhdGNoCiBQYXRjaDEwNjM6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoCi1Q YXRjaDg4ODogZ2RiLXZsYS1pbnRlbC5wYXRjaAotUGF0Y2g5ODM6IGdkYi12bGEtaW50ZWwtbG9n aWNhbC1ub3QucGF0Y2gKK1BhdGNoMTEzMjogZ2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoCitQYXRj aDExMzM6IGdkYi12bGEtaW50ZWwtMm9mNy5wYXRjaAorUGF0Y2gxMTM0OiBnZGItdmxhLWludGVs LTNvZjcucGF0Y2gKK1BhdGNoMTEzNTogZ2RiLXZsYS1pbnRlbC00b2Y3LnBhdGNoCitQYXRjaDEx MzY6IGdkYi12bGEtaW50ZWwtNW9mNy5wYXRjaAorUGF0Y2gxMTM3OiBnZGItdmxhLWludGVsLTZv ZjcucGF0Y2gKK1BhdGNoMTEzODogZ2RiLXZsYS1pbnRlbC03b2Y3LnBhdGNoCiBQYXRjaDg4OTog Z2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKLVBhdGNoOTEyOiBnZGItdmxhLWludGVs LTA0b2YyMy1maXgucGF0Y2gKIFBhdGNoODg3OiBnZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaAot UGF0Y2gxMDY5OiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9mNi1ub2tmYWlsLnBhdGNoCitQ YXRjaDg4ODogZ2RiLXZsYS1pbnRlbC10ZXN0cy5wYXRjaAogCiAjIENvbnRpbnVlIGJhY2t0cmFj ZSBldmVuIGlmIGEgZnJhbWUgZmlsdGVyIHRocm93cyBhbiBleGNlcHRpb24gKFBoaWwgTXVsZG9v bikuCiBQYXRjaDkxODogZ2RiLWJ0cm9idXN0LnBhdGNoCkBAIC01NzUsMTQgKzU4MSw2IEBAIFBh dGNoMTEyMDogZ2RiLXRlc3RzdWl0ZS1kdzItdW5kZWZpbmVkLXJldC1hZGRyLnBhdGNoCiAjIE5l dyB0ZXN0IGZvciBQeXRob24gIkNhbm5vdCBsb2NhdGUgb2JqZWN0IGZpbGUgZm9yIGJsb2NrIiAo Zm9yIFJIIEJaIDEzMjU3OTUpLgogUGF0Y2gxMTIzOiBnZGItcmhiejEzMjU3OTUtZnJhbWVmaWx0 ZXJzLXRlc3QucGF0Y2gKIAotIyBJbXBvcnQgYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jayAoUkgg QlogMTMyNTM5NikuCi1QYXRjaDExMjg6IGdkYi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFv ZjIucGF0Y2gKLVBhdGNoMTEyOTogZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5w YXRjaAotCi0jIFthYXJjaDY0XSBGaXggQVJNdjguMS92OC4yIGZvciBodyB3YXRjaHBvaW50IGFu ZCBicmVha3BvaW50Ci0jIChBbmRyZXcgUGluc2tpLCBSSCBCWiAxMzYzNjM1KS4KLVBhdGNoMTE0 MTogZ2RiLXJoYnoxMzYzNjM1LWFhcmNoNjQtYXJtdjgxODIucGF0Y2gKLQogIyBbZHRzK2VsN10g W3g4NipdIEJ1bmRsZSBsaW51eF9wZXJmLmggZm9yIGxpYmlwdCAoUkggQlogMTI1NjUxMykuCiBQ YXRjaDExNDM6IGdkYi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaAogCkBAIC03OTUsMTAgKzc5Mywx NCBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoMTA2MSAtcDEKICVw YXRjaDEwNjIgLXAxCiAlcGF0Y2gxMDYzIC1wMQotJXBhdGNoODg4IC1wMQotJXBhdGNoOTgzIC1w MQorJXBhdGNoMTEzMiAtcDEKKyVwYXRjaDExMzMgLXAxCislcGF0Y2gxMTM0IC1wMQorJXBhdGNo MTEzNSAtcDEKKyVwYXRjaDExMzYgLXAxCislcGF0Y2gxMTM3IC1wMQorJXBhdGNoMTEzOCAtcDEK ICVwYXRjaDg4OSAtcDEKLSVwYXRjaDkxMiAtcDEKICVwYXRjaDEgLXAxCiAKICVwYXRjaDEwNSAt cDEKQEAgLTg5Miw3ICs4OTQsNyBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4YXJncyBybSAtZgog JXBhdGNoODUyIC1wMQogJXBhdGNoODYzIC1wMQogJXBhdGNoODg3IC1wMQotJXBhdGNoMTA2OSAt cDEKKyVwYXRjaDg4OCAtcDEKICVwYXRjaDkxOCAtcDEKICVwYXRjaDkyNSAtcDEKICVwYXRjaDky NyAtcDEKQEAgLTkwMiw2ICs5MDQsMTYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0g LWYKICVwYXRjaDEwNTYgLXAxCiAlcGF0Y2gxMDczIC1wMQogJXBhdGNoODQ4IC1wMQorJWlmIDAl eyE/ZWw2OjF9Citmb3IgaSBpbiBcCisgIGdkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIu cHkgXAorICBnZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5IFwKKyAgZ2RiL3B5dGhvbi9s aWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5IFwKKyAgO2RvCisgIHRlc3QgLWUgJGkKKyAgOiA+ JGkKK2RvbmUKKyVlbmRpZgogJXBhdGNoODMzIC1wMQogJXBhdGNoNjQyIC1wMQogJXBhdGNoMzM3 IC1wMQpAQCAtOTEwLDkgKzkyMiw2IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1m CiAlcGF0Y2gxMTE4IC1wMQogJXBhdGNoMTEyMCAtcDEKICVwYXRjaDExMjMgLXAxCi0lcGF0Y2gx MTI4IC1wMQotJXBhdGNoMTEyOSAtcDEKLSVwYXRjaDExNDEgLXAxCiAlcGF0Y2gxMTQzIC1wMQog CiAlcGF0Y2gxMDc1IC1wMQpAQCAtOTk2LDYgKzEwMDUsOCBAQCBDRkxBR1M9IiRDRkxBR1MgLURO RUVEX1JMX1NUQVRFX0ZFRE9SQV9HREIiCiBDRkxBR1M9IiRDRkxBR1MgLURORUVEX0RFVEFDSF9T SUdTVE9QIgogJWVuZGlmCiAKK2V4cG9ydCBDWFhGTEFHUz0iJENGTEFHUyIKKwogJWlmIDAle2hh dmVfbGliaXB0fSAmJiAwJXs/ZWw3OjF9ICYmIDAlez9zY2w6MX0KICgKICBta2RpciBwcm9jZXNz b3ItdHJhY2UtJXtsaWJpcHRfdmVyc2lvbn0tcm9vdApAQCAtMTAyNSw2ICsxMDM2LDcgQEAgTERG TEFHUz0iJExERkxBR1MgLUwkUFdEL3Byb2Nlc3Nvci10cmFjZS0le2xpYmlwdF92ZXJzaW9ufS1y b290JXtfbGliZGlyfSIKIAktLXdpdGgtc3lzdGVtLWdkYmluaXQ9JXtfc3lzY29uZmRpcn0vZ2Ri aW5pdAkJXAogCS0td2l0aC1nZGItZGF0YWRpcj0le19kYXRhZGlyfS9nZGIJCQlcCiAJLS1lbmFi bGUtZ2RiLWJ1aWxkLXdhcm5pbmdzPSwtV25vLXVudXNlZAkJXAorCS0tZW5hYmxlLWJ1aWxkLXdp dGgtY3h4CQkJCQlcCiAlaWZuYXJjaCAle2l4ODZ9IGFscGhhIHBwYyBzMzkwIHMzOTB4IHg4Nl82 NCBwcGM2NCBwcGM2NGxlIHNwYXJjIHNwYXJjdjkgc3BhcmM2NCAle2FybX0gYWFyY2g2NAogCS0t ZGlzYWJsZS13ZXJyb3IJCQkJCVwKICVlbHNlCkBAIC0xNDU3LDYgKzE0NjksOSBAQCB0aGVuCiBm aQogCiAlY2hhbmdlbG9nCisqIFR1ZSBBdWcgMjMgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjExLjkwLjIwMTYwODA3LTYuZmMyNQorLSBNZXJnZSBG ZWRvcmEgcGFja2FnaW5nIGNoYW5nZXMgZnJvbSBGZWRvcmEgMjQgZ2RiLTcuMTEuMS04My5mYzI0 OgorCiAqIFR1ZSBBdWcgMjMgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4gLSA3LjExLjEtODMuZmMyNAogLSBbZHRzK2VsN10gW3g4NipdIEJ1bmRsZSBsaWJp cHQgLSBmaXgjMyBpdHMgaW5pdGlhbGl6YXRpb24gKFJIIEJaIDEyNTY1MTMpLgogCkBAIC0xNDc1 LDkgKzE0OTAsMjEgQEAgZmkKICogV2VkIEF1ZyAxNyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS03OC5mYzI0CiAtIFtkdHMrZWw3XSBbeDg2 Kl0gQnVuZGxlIGxpYmlwdCAoUkggQlogMTI1NjUxMykuCiAKLSogV2VkIEF1ZyAgMyAyMDE2IEph biBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS03Ny5mYzI0 Ci0tIFthYXJjaDY0XSBGaXggQVJNdjguMS92OC4yIGZvciBodyB3YXRjaHBvaW50IGFuZCBicmVh a3BvaW50Ci0gIChBbmRyZXcgUGluc2tpLCBSSCBCWiAxMzYzNjM1KS4KKyogU3VuIEF1ZyAgNyAy MDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuOTAu MjAxNjA4MDctNS5mYzI1CistIFJlYmFzZSB0byBGU0YgR0RCIDcuMTEuOTAuMjAxNjA4MDcgKHBy ZS03LjEyIGJyYW5jaCBzbmFwc2hvdCkuCisKKyogU3VuIEp1bCAzMSAyMDE2IEphbiBLcmF0b2No dmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuNTAuMjAxNjA3MjEtNC5mYzI1 CistIFRlc3RjYXNlIGZvcjogTG9hZCBzdHJpY3RseSBidWlsZC1pZC1jaGVja2VkIGNvcmUgZmls ZXMgb25seSBpZiBubyBleGVjdXRhYmxlCisgIGlzIHNwZWNpZmllZCAoSmFuIEtyYXRvY2h2aWws IFJIIEJaIDEzMzk4NjIpLgorCisqIFRodSBKdWwgMjggMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjExLjUwLjIwMTYwNzIxLTMuZmMyNQorLSBEbyBu b3QgYXBwbHkgUkhFTC02IHBhdGNoZXMgb24gbm9uLVJIRUwtNiBldmVuIGZvciB0ZXN0c3VpdGUu CisKKyogVGh1IEp1bCAyMSAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPiAtIDcuMTEuNTAuMjAxNjA3MjEtMi5mYzI1CistIFJlYmFzZSB0byBGU0YgR0RCIDcu MTEuNTAuMjAxNjA3MjEgKHByZS03LjEyIHRydW5rIHNuYXBzaG90KS4KKworKiBTdW4gSnVsIDE3 IDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMS41 MC4yMDE2MDcxNi0xLmZjMjUKKy0gUmViYXNlIHRvIEZTRiBHREIgNy4xMS41MC4yMDE2MDcxNiAo cHJlLTcuMTIgdHJ1bmsgc25hcHNob3QpLgogCiAqIE1vbiBKdW4gMjcgMjAxNiBKYW4gS3JhdG9j aHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjExLjEtNzYuZmMyNAogLSBUZXN0 ICdpbmZvIHR5cGUtcHJpbnRlcnMnIFB5dGhvbiBlcnJvciAoUkggQlogMTM1MDQzNikuCgpkaWZm IC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZmY4Y2JlNi4uMDAxZGFiNyAxMDA2NDQK LS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDMgKzEsMyBAQAogMTMxZDBkZmQyMGNk NjAxNGMxNjhmYmNhYjliZTJjNDMgIGdkYi1saWJzdGRjKystdjMtcHl0aG9uLTYuMS4xLTIwMTYw ODE3LnRhci54egogMjllZmMwODIxOWQ5ZDZhMDUzNmQ1OGY5ODA3Yzg3MjIgIHYxLjUudGFyLmd6 Ci01YWE3MTUyMmU0ODhlMzU4MjQzOTE3OTY3ZGI4NzQ3NiAgZ2RiLTcuMTEuMS50YXIueHoKKzJl NTJkZDhiNjNlYjBhNDU5ZmViYmVlMDEyMjFmYjEwICBnZGItNy4xMS45MC4yMDE2MDgwNy50YXIu eHoK