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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: Add RHEL Fortran patchset. Date: Mon, 29 Jun 2026 12:29:07 GMT Message-ID: <178273614778.1.8220343257517380169.rpms-gcc-c7b83880f7d3@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: c7b83880f7d31a09d20787b0dced6df9d390924e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogYzdiODM4ODBmN2QzMWEwOWQyMDc4N2IwZGNlZDZkZjlk MzkwOTI0ZQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgpEYXRlICAg OiAyMDIxLTAxLTMxVDEyOjE1OjUxKzAxOjAwClN0YXRzICA6ICs0NDY3Ly0wIGluIDExIGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nY2MvYy9jN2I4 Mzg4MGY3ZDMxYTA5ZDIwNzg3YjBkY2VkNmRmOWQzOTA5MjRlP2JyYW5jaD1yaGVsLWY0MS1iYXNl CgpMb2c6CkFkZCBSSEVMIEZvcnRyYW4gcGF0Y2hzZXQuCgotLS0KZGlmZiAtLWdpdCBhL2djYy5z cGVjIGIvZ2NjLnNwZWMKaW5kZXggYTQ5ZmJiZS4uOTk2ODdlNSAxMDA2NDQKLS0tIGEvZ2NjLnNw ZWMKKysrIGIvZ2NjLnNwZWMKQEAgLTI3Myw2ICsyNzMsMTcgQEAgUGF0Y2gxMDogZ2NjMTEtcmgx NTc0OTM2LnBhdGNoCiBQYXRjaDExOiBnY2MxMS1kLXNoYXJlZC1saWJwaG9ib3MucGF0Y2gKIFBh dGNoMTI6IGdjYzExLXByOTgzMzgtd29ya2Fyb3VuZC5wYXRjaAogCitQYXRjaDEwMDogZ2NjMTEt Zm9ydHJhbi1mZGVjLWR1cGxpY2F0ZXMucGF0Y2gKK1BhdGNoMTAxOiBnY2MxMS1mb3J0cmFuLWZs b2dpY2FsLWFzLWludGVnZXIucGF0Y2gKK1BhdGNoMTAyOiBnY2MxMS1mb3J0cmFuLWZkZWMtaWNo YXIucGF0Y2gKK1BhdGNoMTAzOiBnY2MxMS1mb3J0cmFuLWZkZWMtbm9uLWludGVnZXItaW5kZXgu cGF0Y2gKK1BhdGNoMTA0OiBnY2MxMS1mb3J0cmFuLWZkZWMtb2xkLWluaXQucGF0Y2gKK1BhdGNo MTA1OiBnY2MxMS1mb3J0cmFuLWZkZWMtb3ZlcnJpZGUta2luZC5wYXRjaAorUGF0Y2gxMDY6IGdj YzExLWZvcnRyYW4tZmRlYy1ub24tbG9naWNhbC1pZi5wYXRjaAorUGF0Y2gxMDc6IGdjYzExLWZv cnRyYW4tZmRlYy1wcm9tb3Rpb24ucGF0Y2gKK1BhdGNoMTA4OiBnY2MxMS1mb3J0cmFuLWZkZWMt c2VxdWVuY2UucGF0Y2gKK1BhdGNoMTA5OiBnY2MxMS1mb3J0cmFuLWZkZWMtYWRkLW1pc3Npbmct aW5kZXhlcy5wYXRjaAorCiAjIE9uIEFSTSBFQUJJIHN5c3RlbXMsIHdlIGRvIHdhbnQgLWdudWVh YmkgdG8gYmUgcGFydCBvZiB0aGUKICMgdGFyZ2V0IHRyaXBsZS4KICVpZm5hcmNoICV7YXJtfQpA QCAtNzg0LDYgKzc5NSwxOSBAQCB0byBOVmlkaWEgUFRYIGNhcGFibGUgZGV2aWNlcyBpZiBhdmFp bGFibGUuCiAlcGF0Y2gxMSAtcDAgLWIgLmQtc2hhcmVkLWxpYnBob2Jvc34KICVwYXRjaDEyIC1w MCAtYiAucHI5ODMzOC13b3JrYXJvdW5kfgogCislaWYgJXs/cmhlbH0gPj0gOQorJXBhdGNoMTAw IC1wMSAtYiAuZm9ydHJhbi1mZGVjLWR1cGxpY2F0ZXN+CislcGF0Y2gxMDEgLXAxIC1iIC5mb3J0 cmFuLWZsb2dpY2FsLWFzLWludGVnZXJ+CislcGF0Y2gxMDIgLXAxIC1iIC5mb3J0cmFuLWZkZWMt aWNoYXJ+CislcGF0Y2gxMDMgLXAxIC1iIC5mb3J0cmFuLWZkZWMtbm9uLWludGVnZXItaW5kZXh+ CislcGF0Y2gxMDQgLXAxIC1iIC5mb3J0cmFuLWZkZWMtb2xkLWluaXR+CislcGF0Y2gxMDUgLXAx IC1iIC5mb3J0cmFuLWZkZWMtb3ZlcnJpZGUta2luZH4KKyVwYXRjaDEwNiAtcDEgLWIgLmZvcnRy YW4tZmRlYy1ub24tbG9naWNhbC1pZn4KKyVwYXRjaDEwNyAtcDEgLWIgLmZvcnRyYW4tZmRlYy1w cm9tb3Rpb25+CislcGF0Y2gxMDggLXAxIC1iIC5mb3J0cmFuLWZkZWMtc2VxdWVuY2V+CislcGF0 Y2gxMDkgLXAxIC1iIC5mb3J0cmFuLWZkZWMtYWRkLW1pc3NpbmctaW5kZXhlc34KKyVlbmRpZgor CiBybSAtZiBsaWJnb21wL3Rlc3RzdWl0ZS8qLyp0YXNrLWRldGFjaCoKIAogZWNobyAnUmVkIEhh dCAle3ZlcnNpb259LSV7Z2NjX3JlbGVhc2V9JyA+IGdjYy9ERVYtUEhBU0UKCmRpZmYgLS1naXQg YS9nY2MxMS1mb3J0cmFuLWZkZWMtYWRkLW1pc3NpbmctaW5kZXhlcy5wYXRjaCBiL2djYzExLWZv cnRyYW4tZmRlYy1hZGQtbWlzc2luZy1pbmRleGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmQ3MDdiOTQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MxMS1mb3J0cmFu LWZkZWMtYWRkLW1pc3NpbmctaW5kZXhlcy5wYXRjaApAQCAtMCwwICsxLDE4MSBAQAorRnJvbSA3 MDAxZDUyMmQwMjczNjU4ZDllMWZiMTJjYTEwNGQ1NmJmY2FlMzRkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogTWFyayBFZ2dsZXN0b24gPG1hcmtlZ2dsZXN0b25AZ2NjLmdudS5vcmc+ CitEYXRlOiBGcmksIDIyIEphbiAyMDIxIDE1OjA2OjA4ICswMDAwCitTdWJqZWN0OiBbUEFUQ0gg MTAvMTBdIEZpbGwgaW4gbWlzc2luZyBhcnJheSBkaW1lbnNpb25zIHVzaW5nIHRoZSBsb3dlciBi b3VuZAorCitVc2UgLWZkZWMtYWRkLW1pc3NpbmctaW5kZXhlcyB0byBlbmFibGUgZmVhdHVyZS4g QWxzbyBlbmFibGVkIGJ5IGZkZWMuCistLS0KKyBnY2MvZm9ydHJhbi9sYW5nLm9wdCAgICAgICAg ICAgICAgICAgIHwgIDggKysrKysrKysKKyBnY2MvZm9ydHJhbi9vcHRpb25zLmMgICAgICAgICAg ICAgICAgIHwgIDEgKworIGdjYy9mb3J0cmFuL3Jlc29sdmUuYyAgICAgICAgICAgICAgICAgfCAy NCArKysrKysrKysrKysrKysrKysrKysrKysKKyBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Fy cmF5XzYuZjkwIHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysKKyBnY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2FycmF5XzcuZjkwIHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysKKyBnY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FycmF5XzguZjkwIHwgMjMgKysrKysrKysrKysrKysrKysr KysrKysKKyA2IGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXJyYXlfNi5mOTAKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9hcnJheV83LmY5MAorIGNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FycmF5XzguZjkwCisKK2RpZmYg LS1naXQgYS9nY2MvZm9ydHJhbi9sYW5nLm9wdCBiL2djYy9mb3J0cmFuL2xhbmcub3B0CitpbmRl eCAwMTljNzk4Y2YwOS4uZjI3ZGU4OGVhM2YgMTAwNjQ0CistLS0gYS9nY2MvZm9ydHJhbi9sYW5n Lm9wdAorKysrIGIvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKK0BAIC0yODEsNiArMjgxLDEwIEBAIFdt aXNzaW5nLWluY2x1ZGUtZGlycworIEZvcnRyYW4KKyA7IERvY3VtZW50ZWQgaW4gQy9DKysKKyAK KytXbWlzc2luZy1pbmRleAorK0ZvcnRyYW4gVmFyKHdhcm5fbWlzc2luZ19pbmRleCkgV2Fybmlu ZyBMYW5nRW5hYmxlZEJ5KEZvcnRyYW4sV2FsbCkKKytXYXJuIHRoYXQgdGhlIGxvd2VyIGJvdW5k IG9mIGEgbWlzc2luZyBpbmRleCB3aWxsIGJlIHVzZWQuCisrCisgV3VzZS13aXRob3V0LW9ubHkK KyBGb3J0cmFuIFZhcih3YXJuX3VzZV93aXRob3V0X29ubHkpIFdhcm5pbmcKKyBXYXJuIGFib3V0 IFVTRSBzdGF0ZW1lbnRzIHRoYXQgaGF2ZSBubyBPTkxZIHF1YWxpZmllci4KK0BAIC00NjAsNiAr NDY0LDEwIEBAIGZkZWMKKyBGb3J0cmFuIFZhcihmbGFnX2RlYykKKyBFbmFibGUgYWxsIERFQyBs YW5ndWFnZSBleHRlbnNpb25zLgorIAorK2ZkZWMtYWRkLW1pc3NpbmctaW5kZXhlcworK0ZvcnRy YW4gVmFyKGZsYWdfZGVjX2FkZF9taXNzaW5nX2luZGV4ZXMpCisrRW5hYmxlIHRoZSBhZGRpdGlv biBvZiBtaXNzaW5nIGluZGV4ZXMgdXNpbmcgdGhlaXIgbG93ZXIgYm91bmRzLgorKworIGZkZWMt YmxhbmstZm9ybWF0LWl0ZW0KKyBGb3J0cmFuIFZhcihmbGFnX2RlY19ibGFua19mb3JtYXRfaXRl bSkKKyBFbmFibGUgdGhlIHVzZSBvZiBibGFuayBmb3JtYXQgaXRlbXMgaW4gZm9ybWF0IHN0cmlu Z3MuCitkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jIGIvZ2NjL2ZvcnRyYW4vb3B0 aW9ucy5jCitpbmRleCAwNTBmNTZmZGMyNS4uYzNiMjgyMjY4NWQgMTAwNjQ0CistLS0gYS9nY2Mv Zm9ydHJhbi9vcHRpb25zLmMKKysrKyBiL2djYy9mb3J0cmFuL29wdGlvbnMuYworQEAgLTg0LDYg Kzg0LDcgQEAgc2V0X2RlY19mbGFncyAoaW50IHZhbHVlKQorICAgU0VUX0JJVEZMQUcgKGZsYWdf ZGVjX25vbl9sb2dpY2FsX2lmLCB2YWx1ZSwgdmFsdWUpOworICAgU0VUX0JJVEZMQUcgKGZsYWdf ZGVjX3Byb21vdGlvbiwgdmFsdWUsIHZhbHVlKTsKKyAgIFNFVF9CSVRGTEFHIChmbGFnX2RlY19z ZXF1ZW5jZSwgdmFsdWUsIHZhbHVlKTsKKysgIFNFVF9CSVRGTEFHIChmbGFnX2RlY19hZGRfbWlz c2luZ19pbmRleGVzLCB2YWx1ZSwgdmFsdWUpOworIH0KKyAKKyAvKiBGaW5hbGl6ZSBERUMgZmxh Z3MuICAqLworZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jlc29sdmUuYyBiL2djYy9mb3J0cmFu L3Jlc29sdmUuYworaW5kZXggZmU3ZDBjYzU5NDQuLjBlZmVlZGFiNDZlIDEwMDY0NAorLS0tIGEv Z2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCisrKysgYi9nY2MvZm9ydHJhbi9yZXNvbHZlLmMKK0BAIC00 ODA2LDYgKzQ4MDYsMzAgQEAgY29tcGFyZV9zcGVjX3RvX3JlZiAoZ2ZjX2FycmF5X3JlZiAqYXIp CisgICBpZiAoYXItPnR5cGUgPT0gQVJfRlVMTCkKKyAgICAgcmV0dXJuIHRydWU7CisgCisrICBp ZiAoZmxhZ19kZWNfYWRkX21pc3NpbmdfaW5kZXhlcyAmJiBhcy0+cmFuayA+IGFyLT5kaW1lbikK KysgICAgeworKyAgICAgIC8qIEFkZCBpbiB0aGUgbWlzc2luZyBkaW1lbnNpb25zLCBhc3N1bWlu ZyB0aGV5IGFyZSB0aGUgbG93ZXIgYm91bmQKKysJIG9mIHRoYXQgZGltZW5zaW9uIGlmIG5vdCBz cGVjaWZpZWQuICAqLworKyAgICAgIGludCBqOworKyAgICAgIGlmICh3YXJuX21pc3NpbmdfaW5k ZXgpCisrCXsKKysJICBnZmNfd2FybmluZyAoT1BUX1dtaXNzaW5nX2luZGV4LCAiVXNpbmcgdGhl IGxvd2VyIGJvdW5kIGZvciAiCisrCQkgICAgICAgInVuc3BlY2lmaWVkIGRpbWVuc2lvbnMgaW4g YXJyYXkgcmVmZXJlbmNlIGF0ICVMIiwKKysJCSAgICAgICAmYXItPndoZXJlKTsKKysJfQorKyAg ICAgIC8qIE90aGVyIHBhcnRzIG9mIHRoZSBjb2RlIGl0ZXJhdGUgYXItPnN0YXJ0IGFuZCBhci0+ ZW5kIGZyb20gMCB0bworKwkgYXItPmRpbWVuLCBzbyBpdCBpcyBzYWZlIHRvIGFzc3VtZSBzbG90 cyBmcm9tIGFyLT5kaW1lbiB1cHdhcmRzCisrCSBhcmUgdW51c2VkIChpLmUuIHRoZXJlIGFyZSBu byBnYXBzOyB0aGUgc3BlY2lmaWVkIGluZGV4ZXMgYXJlCisrCSBjb250aWd1b3VzIGFuZCBzdGFy dCBhdCB6ZXJvLiAgKi8KKysgICAgICBmb3IoaiA9IGFyLT5kaW1lbjsgaiA8PSBhcy0+cmFuazsg aisrKQorKwl7CisrCSAgYXItPnN0YXJ0W2pdID0gZ2ZjX2NvcHlfZXhwciAoYXMtPmxvd2VyW2pd KTsKKysJICBhci0+ZW5kW2pdICAgPSBnZmNfY29weV9leHByIChhcy0+bG93ZXJbal0pOworKwkg IGFyLT5kaW1lbl90eXBlW2pdID0gRElNRU5fRUxFTUVOVDsKKysJfQorKyAgICAgIGFyLT5kaW1l biA9IGFzLT5yYW5rOworKyAgICB9CisrCisgICBpZiAoYXMtPnJhbmsgIT0gYXItPmRpbWVuKQor ICAgICB7CisgICAgICAgZ2ZjX2Vycm9yICgiUmFuayBtaXNtYXRjaCBpbiBhcnJheSByZWZlcmVu Y2UgYXQgJUwgKCVkLyVkKSIsCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9hcnJheV82LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXJyYXlfNi5mOTAKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uNWMyNmUxOGFiM2UKKy0tLSAv ZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXJyYXlfNi5mOTAKK0BA IC0wLDAgKzEsMjMgQEAKKyshIHsgZGctZG8gcnVuIH0KKyshIHsgZGctb3B0aW9ucyAiLWZkZWMg LVdtaXNzaW5nLWluZGV4IiB9IQorKyEgQ2hlY2tzIHRoYXQgdW5kZXItc3BlY2lmaWVkIGFycmF5 cyAocmVmZXJlbmNpbmcgYXJyYXlzIHdpdGggZmV3ZXIKKyshIGRpbWVuc2lvbnMgdGhhbiB0aGUg YXJyYXkgc3BlYykgZ2VuZXJhdGVzIGEgd2FybmluZy4KKyshCisrISBDb250cmlidXRlZCBieSBK aW0gTWFjQXJ0aHVyIDxqaW0ubWFjYXJ0aHVyQGNvZGV0aGluay5jby51az4KKyshIFVwZGF0ZWQg YnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jby51az4KKyshCisr CisrcHJvZ3JhbSB1bmRlcl9zcGVjaWZpZWRfYXJyYXkKKysgICAgaW50ZWdlciBjaGVzc2JvYXJk KDgsOCkKKysgICAgaW50ZWdlciBjaGVzc2JvYXJkM2QoOCw4LDM6NSkKKysgICAgY2hlc3Nib2Fy ZCgzLDEpID0gNQorKyAgICBjaGVzc2JvYXJkKDMsMikgPSA1NQorKyAgICBjaGVzc2JvYXJkM2Qo NCwxLDMpID0gNgorKyAgICBjaGVzc2JvYXJkM2QoNCwxLDQpID0gNjYKKysgICAgY2hlc3Nib2Fy ZDNkKDQsNCwzKSA9IDcKKysgICAgY2hlc3Nib2FyZDNkKDQsNCw0KSA9IDc3CisrICAKKysgICAg aWYgKGNoZXNzYm9hcmQoMykubmUuNSkgc3RvcCAxICAhIHsgZGctd2FybmluZyAiVXNpbmcgdGhl IGxvd2VyIGJvdW5kIGZvciB1bnNwZWNpZmllZCBkaW1lbnNpb25zIGluIGFycmF5IHJlZmVyZW5j ZSIgfQorKyAgICBpZiAoY2hlc3Nib2FyZDNkKDQpLm5lLjYpIHN0b3AgMiAgISB7IGRnLXdhcm5p bmcgIlVzaW5nIHRoZSBsb3dlciBib3VuZCBmb3IgdW5zcGVjaWZpZWQgZGltZW5zaW9ucyBpbiBh cnJheSByZWZlcmVuY2UiIH0KKysgICAgaWYgKGNoZXNzYm9hcmQzZCg0LDQpLm5lLjcpIHN0b3Ag MyAgISB7IGRnLXdhcm5pbmcgIlVzaW5nIHRoZSBsb3dlciBib3VuZCBmb3IgdW5zcGVjaWZpZWQg ZGltZW5zaW9ucyBpbiBhcnJheSByZWZlcmVuY2UiIH0KKytlbmQgcHJvZ3JhbQorZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXJyYXlfNy5mOTAgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2FycmF5XzcuZjkwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMDAuLjU1ODhhNWJkMDJkCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2FycmF5XzcuZjkwCitAQCAtMCwwICsxLDIzIEBACisrISB7IGRnLWRvIHJ1 biB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjLWFkZC1taXNzaW5nLWluZGV4ZXMgLVdtaXNzaW5n LWluZGV4IiB9IQorKyEgQ2hlY2tzIHRoYXQgdW5kZXItc3BlY2lmaWVkIGFycmF5cyAocmVmZXJl bmNpbmcgYXJyYXlzIHdpdGggZmV3ZXIKKyshIGRpbWVuc2lvbnMgdGhhbiB0aGUgYXJyYXkgc3Bl YykgZ2VuZXJhdGVzIGEgd2FybmluZy4KKyshCisrISBDb250cmlidXRlZCBieSBKaW0gTWFjQXJ0 aHVyIDxqaW0ubWFjYXJ0aHVyQGNvZGV0aGluay5jby51az4KKyshIFVwZGF0ZWQgYnkgTWFyayBF Z2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jby51az4KKyshCisrCisrcHJvZ3Jh bSB1bmRlcl9zcGVjaWZpZWRfYXJyYXkKKysgICAgaW50ZWdlciBjaGVzc2JvYXJkKDgsOCkKKysg ICAgaW50ZWdlciBjaGVzc2JvYXJkM2QoOCw4LDM6NSkKKysgICAgY2hlc3Nib2FyZCgzLDEpID0g NQorKyAgICBjaGVzc2JvYXJkKDMsMikgPSA1NQorKyAgICBjaGVzc2JvYXJkM2QoNCwxLDMpID0g NgorKyAgICBjaGVzc2JvYXJkM2QoNCwxLDQpID0gNjYKKysgICAgY2hlc3Nib2FyZDNkKDQsNCwz KSA9IDcKKysgICAgY2hlc3Nib2FyZDNkKDQsNCw0KSA9IDc3CisrICAKKysgICAgaWYgKGNoZXNz Ym9hcmQoMykubmUuNSkgc3RvcCAxICAhIHsgZGctd2FybmluZyAiVXNpbmcgdGhlIGxvd2VyIGJv dW5kIGZvciB1bnNwZWNpZmllZCBkaW1lbnNpb25zIGluIGFycmF5IHJlZmVyZW5jZSIgfQorKyAg ICBpZiAoY2hlc3Nib2FyZDNkKDQpLm5lLjYpIHN0b3AgMiAgISB7IGRnLXdhcm5pbmcgIlVzaW5n IHRoZSBsb3dlciBib3VuZCBmb3IgdW5zcGVjaWZpZWQgZGltZW5zaW9ucyBpbiBhcnJheSByZWZl cmVuY2UiIH0KKysgICAgaWYgKGNoZXNzYm9hcmQzZCg0LDQpLm5lLjcpIHN0b3AgMyAgISB7IGRn LXdhcm5pbmcgIlVzaW5nIHRoZSBsb3dlciBib3VuZCBmb3IgdW5zcGVjaWZpZWQgZGltZW5zaW9u cyBpbiBhcnJheSByZWZlcmVuY2UiIH0KKytlbmQgcHJvZ3JhbQorZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXJyYXlfOC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2FycmF5XzguZjkwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAu LmYwZDJlZjVlMzdkCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2FycmF5XzguZjkwCitAQCAtMCwwICsxLDIzIEBACisrISB7IGRnLWRvIGNvbXBpbGUgfQor KyEgeyBkZy1vcHRpb25zICItZmRlYyAtZm5vLWRlYy1hZGQtbWlzc2luZy1pbmRleGVzIiB9IQor KyEgQ2hlY2tzIHRoYXQgdW5kZXItc3BlY2lmaWVkIGFycmF5cyAocmVmZXJlbmNpbmcgYXJyYXlz IHdpdGggZmV3ZXIKKyshIGRpbWVuc2lvbnMgdGhhbiB0aGUgYXJyYXkgc3BlYykgZ2VuZXJhdGVz IGEgd2FybmluZy4KKyshCisrISBDb250cmlidXRlZCBieSBKaW0gTWFjQXJ0aHVyIDxqaW0ubWFj YXJ0aHVyQGNvZGV0aGluay5jby51az4KKyshIFVwZGF0ZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1h cmsuZWdnbGVzdG9uQGNvZGV0aGluay5jby51az4KKyshCisrCisrcHJvZ3JhbSB1bmRlcl9zcGVj aWZpZWRfYXJyYXkKKysgICAgaW50ZWdlciBjaGVzc2JvYXJkKDgsOCkKKysgICAgaW50ZWdlciBj aGVzc2JvYXJkM2QoOCw4LDM6NSkKKysgICAgY2hlc3Nib2FyZCgzLDEpID0gNQorKyAgICBjaGVz c2JvYXJkKDMsMikgPSA1NQorKyAgICBjaGVzc2JvYXJkM2QoNCwxLDMpID0gNgorKyAgICBjaGVz c2JvYXJkM2QoNCwxLDQpID0gNjYKKysgICAgY2hlc3Nib2FyZDNkKDQsNCwzKSA9IDcKKysgICAg Y2hlc3Nib2FyZDNkKDQsNCw0KSA9IDc3CisrICAKKysgICAgaWYgKGNoZXNzYm9hcmQoMykubmUu NSkgc3RvcCAxICAhIHsgZGctZXJyb3IgIlJhbmsgbWlzbWF0Y2giIH0KKysgICAgaWYgKGNoZXNz Ym9hcmQzZCg0KS5uZS42KSBzdG9wIDIgICEgeyBkZy1lcnJvciAiUmFuayBtaXNtYXRjaCIgfQor KyAgICBpZiAoY2hlc3Nib2FyZDNkKDQsNCkubmUuNykgc3RvcCAzICAhIHsgZGctZXJyb3IgIlJh bmsgbWlzbWF0Y2giIH0KKytlbmQgcHJvZ3JhbQorLS0gCisyLjI3LjAKKwoKZGlmZiAtLWdpdCBh L2djYzExLWZvcnRyYW4tZmRlYy1kdXBsaWNhdGVzLnBhdGNoIGIvZ2NjMTEtZm9ydHJhbi1mZGVj LWR1cGxpY2F0ZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVk MTEwNAotLS0gL2Rldi9udWxsCisrKyBiL2djYzExLWZvcnRyYW4tZmRlYy1kdXBsaWNhdGVzLnBh dGNoCkBAIC0wLDAgKzEsMjE1IEBACitGcm9tIDIzYjFmY2IxMDRjNjY2NDI5NDUxZmZhZjkzNmY4 ZGE1ZmNkM2Q0M2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXJrIEVnZ2xlc3Rv biA8bWFya2VnZ2xlc3RvbkBnY2MuZ251Lm9yZz4KK0RhdGU6IEZyaSwgMjIgSmFuIDIwMjEgMTI6 Mjk6NDcgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwMS8xMF0gQWxsb3cgZHVwbGljYXRlIGRlY2xh cmF0aW9ucy4KKworRW5hYmxlZCBieSAtZmRlYy1kdXBsaWNhdGVzIGFuZCAtZmRlYy4KKworU29t ZSBmaXhlcyBieSBKaW0gTWFjQXJ0aHVyIDxqaW0ubWFjYXJ0aHVyQGNvZGV0aGluay5jby51az4K K0FkZGl0aW9uIG9mIC1mZGVjLWR1cGxpY2F0ZXMgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdn bGVzdG9uQGNvZGV0aGluay5jb20+CistLS0KKyBnY2MvZm9ydHJhbi9sYW5nLm9wdCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArKysrCisgZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDEgKworIGdjYy9mb3J0cmFuL3N5bWJvbC5jICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrKysrKysrLS0KKyAuLi4vZ2ZvcnRyYW4u ZGcvZHVwbGljYXRlX3R5cGVfNC5mOTAgICAgICAgICAgfCAxMyArKysrKysrKysrKysKKyAuLi4v Z2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5cGVfNS5mOTAgICAgICAgICAgfCAxMyArKysrKysrKysr KysKKyAuLi4vZ2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5cGVfNi5mOTAgICAgICAgICAgfCAxMyAr KysrKysrKysrKysKKyAuLi4vZ2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5cGVfNy5mOTAgICAgICAg ICAgfCAxMyArKysrKysrKysrKysKKyAuLi4vZ2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5cGVfOC5m OTAgICAgICAgICAgfCAxMiArKysrKysrKysrKworIC4uLi9nZm9ydHJhbi5kZy9kdXBsaWNhdGVf dHlwZV85LmY5MCAgICAgICAgICB8IDEyICsrKysrKysrKysrCisgOSBmaWxlcyBjaGFuZ2VkLCAx MDAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kdXBsaWNhdGVfdHlwZV80LmY5MAorIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2R1cGxpY2F0ZV90eXBlXzUuZjkwCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5 cGVfNi5mOTAKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9k dXBsaWNhdGVfdHlwZV83LmY5MAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2R1cGxpY2F0ZV90eXBlXzguZjkwCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5cGVfOS5mOTAKKworZGlmZiAtLWdpdCBh L2djYy9mb3J0cmFuL2xhbmcub3B0IGIvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKK2luZGV4IDJiMTk3 N2M1MjNiLi41MmJkNTIyMDUxZSAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL2xhbmcub3B0Cisr KysgYi9nY2MvZm9ydHJhbi9sYW5nLm9wdAorQEAgLTQ2OSw2ICs0NjksMTAgQEAgRm9ydHJhbiBW YXIoZmxhZ19kZWNfY2hhcl9jb252ZXJzaW9ucykKKyBFbmFibGUgdGhlIHVzZSBvZiBjaGFyYWN0 ZXIgbGl0ZXJhbHMgaW4gYXNzaWdubWVudHMgYW5kIGRhdGEgc3RhdGVtZW50cworIGZvciBub24t Y2hhcmFjdGVyIHZhcmlhYmxlcy4KKyAKKytmZGVjLWR1cGxpY2F0ZXMKKytGb3J0cmFuIFZhcihm bGFnX2RlY19kdXBsaWNhdGVzKQorK0FsbG93IHZhcmlibGVzIHRvIGJlIGR1cGxpY2F0ZWQgaW4g dGhlIHR5cGUgc3BlY2lmaWNhdGlvbiBtYXRjaGVzLgorKworIGZkZWMtaW5jbHVkZQorIEZvcnRy YW4gVmFyKGZsYWdfZGVjX2luY2x1ZGUpCisgRW5hYmxlIGxlZ2FjeSBwYXJzaW5nIG9mIElOQ0xV REUgYXMgc3RhdGVtZW50LgorZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL29wdGlvbnMuYyBiL2dj Yy9mb3J0cmFuL29wdGlvbnMuYworaW5kZXggM2EwYjk4YmYxZWMuLmYxOWJhODdmOGEwIDEwMDY0 NAorLS0tIGEvZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jCisrKysgYi9nY2MvZm9ydHJhbi9vcHRpb25z LmMKK0BAIC03Nyw2ICs3Nyw3IEBAIHNldF9kZWNfZmxhZ3MgKGludCB2YWx1ZSkKKyAgIFNFVF9C SVRGTEFHIChmbGFnX2RlY19mb3JtYXRfZGVmYXVsdHMsIHZhbHVlLCB2YWx1ZSk7CisgICBTRVRf QklURkxBRyAoZmxhZ19kZWNfYmxhbmtfZm9ybWF0X2l0ZW0sIHZhbHVlLCB2YWx1ZSk7CisgICBT RVRfQklURkxBRyAoZmxhZ19kZWNfY2hhcl9jb252ZXJzaW9ucywgdmFsdWUsIHZhbHVlKTsKKysg IFNFVF9CSVRGTEFHIChmbGFnX2RlY19kdXBsaWNhdGVzLCB2YWx1ZSwgdmFsdWUpOworIH0KKyAK KyAvKiBGaW5hbGl6ZSBERUMgZmxhZ3MuICAqLworZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3N5 bWJvbC5jIGIvZ2NjL2ZvcnRyYW4vc3ltYm9sLmMKK2luZGV4IDNiOTg4ZDFiZTIyLi45ODQzMTc1 Y2MyYSAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL3N5bWJvbC5jCisrKysgYi9nY2MvZm9ydHJh bi9zeW1ib2wuYworQEAgLTE5OTUsNiArMTk5NSw4IEBAIGdmY19hZGRfdHlwZSAoZ2ZjX3N5bWJv bCAqc3ltLCBnZmNfdHlwZXNwZWMgKnRzLCBsb2N1cyAqd2hlcmUpCisgICBpZiAoc3ltLT5hdHRy LnJlc3VsdCAmJiB0eXBlID09IEJUX1VOS05PV04gJiYgc3ltLT5ucy0+cHJvY19uYW1lKQorICAg ICB0eXBlID0gc3ltLT5ucy0+cHJvY19uYW1lLT50cy50eXBlOworIAorKyAgZmxhdm9yID0gc3lt LT5hdHRyLmZsYXZvcjsKKysKKyAgIGlmICh0eXBlICE9IEJUX1VOS05PV04gJiYgIShzeW0tPmF0 dHIuZnVuY3Rpb24gJiYgc3ltLT5hdHRyLmltcGxpY2l0X3R5cGUpCisgICAgICAgJiYgIShnZmNf c3RhdGVfc3RhY2stPnByZXZpb3VzICYmIGdmY19zdGF0ZV9zdGFjay0+cHJldmlvdXMtPnByZXZp b3VzCisgCSAgICYmIGdmY19zdGF0ZV9zdGFjay0+cHJldmlvdXMtPnByZXZpb3VzLT5zdGF0ZSA9 PSBDT01QX1NVQk1PRFVMRSkKK0BAIC0yMDA3LDYgKzIwMDksMjMgQEAgZ2ZjX2FkZF90eXBlIChn ZmNfc3ltYm9sICpzeW0sIGdmY190eXBlc3BlYyAqdHMsIGxvY3VzICp3aGVyZSkKKyAgICAgICBl bHNlIGlmIChzeW0tPmF0dHIuZnVuY3Rpb24gJiYgc3ltLT5hdHRyLnJlc3VsdCkKKyAJZ2ZjX2Vy cm9yICgiU3ltYm9sICVxcyBhdCAlTCBhbHJlYWR5IGhhcyBiYXNpYyB0eXBlIG9mICVzIiwKKyAJ CSAgIHN5bS0+bnMtPnByb2NfbmFtZS0+bmFtZSwgd2hlcmUsIGdmY19iYXNpY190eXBlbmFtZSAo dHlwZSkpOworKyAgICAgIGVsc2UgaWYgKGZsYWdfZGVjX2R1cGxpY2F0ZXMpCisrCXsKKysJICAv KiBJZ25vcmUgdGVtcG9yYXJpZXMgYW5kIGNsYXNzL3Byb2NlZHVyZSBuYW1lcyAqLworKwkgIGlm IChzeW0tPnRzLnR5cGUgPT0gQlRfREVSSVZFRCB8fCBzeW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MK KysJICAgICAgfHwgc3ltLT50cy50eXBlID09IEJUX1BST0NFRFVSRSkKKysJICAgIHJldHVybiBm YWxzZTsKKysKKysJICBpZiAoZ2ZjX2NvbXBhcmVfdHlwZXMgKCZzeW0tPnRzLCB0cykKKysJICAg ICAgJiYgKGZsYXZvciA9PSBGTF9VTktOT1dOIHx8IGZsYXZvciA9PSBGTF9WQVJJQUJMRQorKwkg ICAgICB8fCBmbGF2b3IgPT0gRkxfUFJPQ0VEVVJFKSkKKysJICAgIHsKKysJICAgICAgcmV0dXJu IGdmY19ub3RpZnlfc3RkIChHRkNfU1REX0xFR0FDWSwKKysJCQkJICAgICAiU3ltYm9sICclcXMn IGF0ICVMIGFscmVhZHkgaGFzICIKKysJCQkJICAgICAiYmFzaWMgdHlwZSBvZiAlcyIsIHN5bS0+ bmFtZSwgd2hlcmUsCisrCQkJCSAgICAgZ2ZjX2Jhc2ljX3R5cGVuYW1lICh0eXBlKSk7CisrCSAg ICB9CisrCX0KKyAgICAgICBlbHNlCisgCWdmY19lcnJvciAoIlN5bWJvbCAlcXMgYXQgJUwgYWxy ZWFkeSBoYXMgYmFzaWMgdHlwZSBvZiAlcyIsIHN5bS0+bmFtZSwKKyAJCSAgIHdoZXJlLCBnZmNf YmFzaWNfdHlwZW5hbWUgKHR5cGUpKTsKK0BAIC0yMDIwLDggKzIwMzksNiBAQCBnZmNfYWRkX3R5 cGUgKGdmY19zeW1ib2wgKnN5bSwgZ2ZjX3R5cGVzcGVjICp0cywgbG9jdXMgKndoZXJlKQorICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorLSAgZmxhdm9yID0gc3ltLT5hdHRyLmZsYXZv cjsKKy0KKyAgIGlmIChmbGF2b3IgPT0gRkxfUFJPR1JBTSB8fCBmbGF2b3IgPT0gRkxfQkxPQ0tf REFUQSB8fCBmbGF2b3IgPT0gRkxfTU9EVUxFCisgICAgICAgfHwgZmxhdm9yID09IEZMX0xBQkVM CisgICAgICAgfHwgKGZsYXZvciA9PSBGTF9QUk9DRURVUkUgJiYgc3ltLT5hdHRyLnN1YnJvdXRp bmUpCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kdXBsaWNhdGVfdHlw ZV80LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5cGVfNC5mOTAK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uY2RkMjllYTg4NDYKKy0t LSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5 cGVfNC5mOTAKK0BAIC0wLDAgKzEsMTMgQEAKKyshIHsgZGctZG8gY29tcGlsZSB9CisrISB7IGRn LW9wdGlvbnMgIi1zdGQ9Zjk1IiB9CisrCisrISBQUiBmb3J0cmFuLzMwMjM5CisrISBDaGVjayBm b3IgZXJyb3JzIHdoZW4gYSBzeW1ib2wgZ2V0cyBkZWNsYXJlZCBhIHR5cGUgdHdpY2UsIGV2ZW4g aWYgaXQKKyshIGlzIHRoZSBzYW1lLgorKworK0lOVEVHRVIgRlVOQ1RJT04gZm9vICgpCisrICBJ TVBMSUNJVCBOT05FCisrICBJTlRFR0VSIDo6IHgKKysgIElOVEVHRVIgOjogeCAhIHsgZGctZXJy b3IgImJhc2ljIHR5cGUgb2YiIH0KKysgIHggPSA0MgorK0VORCBGVU5DVElPTiBmb28KK2RpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2R1cGxpY2F0ZV90eXBlXzUuZjkwIGIv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kdXBsaWNhdGVfdHlwZV81LmY5MAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi4wMGY5MzE4MDlhYQorLS0tIC9kZXYvbnVs bAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kdXBsaWNhdGVfdHlwZV81LmY5MAor QEAgLTAsMCArMSwxMyBAQAorKyEgeyBkZy1kbyBydW4gfQorKyEgeyBkZy1vcHRpb25zICItZmRl YyIgfQorKyEKKyshIFRlc3QgY2FzZSBjb250cmlidXRlZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFy ay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrCisrcHJvZ3JhbSB0ZXN0CisrICBpbXBs aWNpdCBub25lCisrICBpbnRlZ2VyIDo6IHgKKysgIGludGVnZXIgOjogeAorKyAgeCA9IDQyCisr ICBpZiAoeCAvPSA0Mikgc3RvcCAxCisrZW5kIHByb2dyYW0gdGVzdAorZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZHVwbGljYXRlX3R5cGVfNi5mOTAgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2R1cGxpY2F0ZV90eXBlXzYuZjkwCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMDAwMDAuLmYwZGYyN2UzMjNjCistLS0gL2Rldi9udWxsCisrKysgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2R1cGxpY2F0ZV90eXBlXzYuZjkwCitAQCAtMCwwICsx LDEzIEBACisrISB7IGRnLWRvIHJ1biB9CisrISB7IGRnLW9wdGlvbnMgIi1zdGQ9bGVnYWN5IC1m ZGVjLWR1cGxpY2F0ZXMiIH0KKyshCisrISBUZXN0IGNhc2UgY29udHJpYnV0ZWQgYnkgTWFyayBF Z2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CisrIQorKworK3Byb2dyYW0g dGVzdAorKyAgaW1wbGljaXQgbm9uZQorKyAgaW50ZWdlciA6OiB4CisrICBpbnRlZ2VyIDo6IHgK KysgIHggPSA0MgorKyAgaWYgKHggLz0gNDIpIHN0b3AgMQorK2VuZCBwcm9ncmFtIHRlc3QKK2Rp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2R1cGxpY2F0ZV90eXBlXzcuZjkw IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kdXBsaWNhdGVfdHlwZV83LmY5MAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi5mMzI0NzJmZjU4NgorLS0tIC9kZXYv bnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kdXBsaWNhdGVfdHlwZV83LmY5 MAorQEAgLTAsMCArMSwxMyBAQAorKyEgeyBkZy1kbyBydW4gfQorKyEgeyBkZy1vcHRpb25zICIt ZmRlYy1kdXBsaWNhdGVzIiB9CisrIQorKyEgVGVzdCBjYXNlIGNvbnRyaWJ1dGVkIGJ5IE1hcmsg RWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysKKytwcm9ncmFt IHRlc3QKKysgIGltcGxpY2l0IG5vbmUKKysgIGludGVnZXIgOjogeAorKyAgaW50ZWdlciA6OiB4 ISB7IGRnLXdhcm5pbmcgIkxlZ2FjeSBFeHRlbnNpb24iIH0KKysgIHggPSA0MgorKyAgaWYgKHgg Lz0gNDIpIHN0b3AgMQorK2VuZCBwcm9ncmFtIHRlc3QKK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2R1cGxpY2F0ZV90eXBlXzguZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9kdXBsaWNhdGVfdHlwZV84LmY5MAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAwMDAwLi4yM2M5NGFkZDE3OQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9kdXBsaWNhdGVfdHlwZV84LmY5MAorQEAgLTAsMCArMSwxMiBAQAor KyEgeyBkZy1kbyBjb21waWxlIH0KKyshIHsgZGctb3B0aW9ucyAiLWZkZWMgLWZuby1kZWMtZHVw bGljYXRlcyIgfQorKyEKKyshIFRlc3QgY2FzZSBjb250cmlidXRlZCBieSBNYXJrIEVnZ2xlc3Rv biA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrCisraW50ZWdlciBmdW5jdGlv biBmb28gKCkKKysgIGltcGxpY2l0IG5vbmUKKysgIGludGVnZXIgOjogeAorKyAgaW50ZWdlciA6 OiB4ICEgeyBkZy1lcnJvciAiYmFzaWMgdHlwZSBvZiIgfQorKyAgeCA9IDQyCisrZW5kIGZ1bmN0 aW9uIGZvbworZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZHVwbGljYXRl X3R5cGVfOS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2R1cGxpY2F0ZV90eXBlXzku ZjkwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLmQ1ZWRlZTRkOGVl CistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2R1cGxpY2F0 ZV90eXBlXzkuZjkwCitAQCAtMCwwICsxLDEyIEBACisrISB7IGRnLWRvIGNvbXBpbGUgfQorKyEg eyBkZy1vcHRpb25zICItZmRlYy1kdXBsaWNhdGVzIC1mbm8tZGVjLWR1cGxpY2F0ZXMiIH0KKysh CisrISBUZXN0IGNhc2UgY29udHJpYnV0ZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVz dG9uQGNvZGV0aGluay5jb20+CisrIQorKworK2ludGVnZXIgZnVuY3Rpb24gZm9vICgpCisrICBp bXBsaWNpdCBub25lCisrICBpbnRlZ2VyIDo6IHgKKysgIGludGVnZXIgOjogeCAhIHsgZGctZXJy b3IgImJhc2ljIHR5cGUgb2YiIH0KKysgIHggPSA0MgorK2VuZCBmdW5jdGlvbiBmb28KKy0tIAor Mi4yNy4wCisKCmRpZmYgLS1naXQgYS9nY2MxMS1mb3J0cmFuLWZkZWMtaWNoYXIucGF0Y2ggYi9n Y2MxMS1mb3J0cmFuLWZkZWMtaWNoYXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZTdiMDUyMgotLS0gL2Rldi9udWxsCisrKyBiL2djYzExLWZvcnRyYW4tZmRlYy1p Y2hhci5wYXRjaApAQCAtMCwwICsxLDc4IEBACitGcm9tIGY4ODNhYzIwOWIwZmVlYTg2MDM1NGNi NGVmN2ZmMDZkYzgwNjNmYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXJrIEVn Z2xlc3RvbiA8bWFya2VnZ2xlc3RvbkBnY2MuZ251Lm9yZz4KK0RhdGU6IEZyaSwgMjIgSmFuIDIw MjEgMTI6NTM6MzUgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCAwMy8xMF0gQWxsb3cgbW9yZSB0aGFu IG9uZSBjaGFyYWN0ZXIgYXMgYXJndW1lbnQgdG8gSUNIQVIKKworVXNlIC1mZGVjIHRvIGVuYWJs ZS4KKy0tLQorIGdjYy9mb3J0cmFuL2NoZWNrLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCisgZ2NjL2ZvcnRyYW4vc2ltcGxpZnkuYyAgICAgICAgICAgICAgICAgICAgICAgIHwg IDQgKystLQorIC4uLi9nZm9ydHJhbi5kZy9kZWNfaWNoYXJfd2l0aF9zdHJpbmdfMS5mICAgICB8 IDIxICsrKysrKysrKysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZGVjX2ljaGFyX3dpdGhfc3RyaW5nXzEuZgorCitkaWZmIC0tZ2l0IGEvZ2NjL2Zv cnRyYW4vY2hlY2suYyBiL2djYy9mb3J0cmFuL2NoZWNrLmMKK2luZGV4IDgyZGI4ZTRlMWIyLi42 MjNjMWNjNDcwZSAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL2NoZWNrLmMKKysrKyBiL2djYy9m b3J0cmFuL2NoZWNrLmMKK0BAIC0zMTU3LDcgKzMxNTcsNyBAQCBnZmNfY2hlY2tfaWNoYXJfaWFj aGFyIChnZmNfZXhwciAqYywgZ2ZjX2V4cHIgKmtpbmQpCisgICBlbHNlCisgICAgIHJldHVybiB0 cnVlOworIAorLSAgaWYgKGkgIT0gMSkKKysgIGlmIChpICE9IDEgJiYgIWZsYWdfZGVjKQorICAg ICB7CisgICAgICAgZ2ZjX2Vycm9yICgiQXJndW1lbnQgb2YgJXMgYXQgJUwgbXVzdCBiZSBvZiBs ZW5ndGggb25lIiwKKyAJCSBnZmNfY3VycmVudF9pbnRyaW5zaWMsICZjLT53aGVyZSk7CitkaWZm IC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vc2ltcGxpZnkuYyBiL2djYy9mb3J0cmFuL3NpbXBsaWZ5LmMK K2luZGV4IDIzMzE3YTJlMmQ5Li45OTAwNTcyNDI0ZiAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFu L3NpbXBsaWZ5LmMKKysrKyBiL2djYy9mb3J0cmFuL3NpbXBsaWZ5LmMKK0BAIC0zMjYxLDcgKzMy NjEsNyBAQCBnZmNfc2ltcGxpZnlfaWFjaGFyIChnZmNfZXhwciAqZSwgZ2ZjX2V4cHIgKmtpbmQp CisgICBpZiAoZS0+ZXhwcl90eXBlICE9IEVYUFJfQ09OU1RBTlQpCisgICAgIHJldHVybiBOVUxM OworIAorLSAgaWYgKGUtPnZhbHVlLmNoYXJhY3Rlci5sZW5ndGggIT0gMSkKKysgIGlmIChlLT52 YWx1ZS5jaGFyYWN0ZXIubGVuZ3RoICE9IDEgJiYgIWZsYWdfZGVjKQorICAgICB7CisgICAgICAg Z2ZjX2Vycm9yICgiQXJndW1lbnQgb2YgSUFDSEFSIGF0ICVMIG11c3QgYmUgb2YgbGVuZ3RoIG9u ZSIsICZlLT53aGVyZSk7CisgICAgICAgcmV0dXJuICZnZmNfYmFkX2V4cHI7CitAQCAtMzQ1OSw3 ICszNDU5LDcgQEAgZ2ZjX3NpbXBsaWZ5X2ljaGFyIChnZmNfZXhwciAqZSwgZ2ZjX2V4cHIgKmtp bmQpCisgICBpZiAoZS0+ZXhwcl90eXBlICE9IEVYUFJfQ09OU1RBTlQpCisgICAgIHJldHVybiBO VUxMOworIAorLSAgaWYgKGUtPnZhbHVlLmNoYXJhY3Rlci5sZW5ndGggIT0gMSkKKysgIGlmIChl LT52YWx1ZS5jaGFyYWN0ZXIubGVuZ3RoICE9IDEgJiYgIWZsYWdfZGVjKQorICAgICB7CisgICAg ICAgZ2ZjX2Vycm9yICgiQXJndW1lbnQgb2YgSUNIQVIgYXQgJUwgbXVzdCBiZSBvZiBsZW5ndGgg b25lIiwgJmUtPndoZXJlKTsKKyAgICAgICByZXR1cm4gJmdmY19iYWRfZXhwcjsKK2RpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pY2hhcl93aXRoX3N0cmluZ18xLmYg Yi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pY2hhcl93aXRoX3N0cmluZ18xLmYKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uODVlZmNjZWNjMGYKKy0tLSAv ZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ljaGFyX3dpdGhf c3RyaW5nXzEuZgorQEAgLTAsMCArMSwyMSBAQAorKyEgeyBkZy1kbyBydW4gfQorKyEgeyBkZy1v cHRpb25zICItZmRlYyIgfQorKyEKKyshIFRlc3QgSUNIQVIgYW5kIElBQ0hBUiB3aXRoIG1vcmUg dGhhbiBvbmUgY2hhcmFjdGVyIGFzIGFyZ3VtZW50CisrIQorKyEgVGVzdCBjYXNlIGNvbnRyaWJ1 dGVkIGJ5IEppbSBNYWNBcnRodXIgPGppbS5tYWNhcnRodXJAY29kZXRoaW5rLmNvLnVrPgorKyEg TW9kaWZpZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+ CisrIQorKyAgICAgICAgUFJPR1JBTSBpY2hhcl9tb3JlX3RoYW5fb25lX2NoYXJhY3RlcgorKyAg ICAgICAgICBDSEFSQUNURVIqNCBzdC8nVGVzdCcvCisrICAgICAgICAgIElOVEVHRVIgaQorKwor KyAgICAgICAgICBpID0gSUNIQVIoc3QpCisrICAgICAgICAgIGlmIChpLk5FLjg0KSBTVE9QIDEK KysgICAgICAgICAgaSA9IElBQ0hBUihzdCkKKysgICAgICAgICAgaWYgKGkuTkUuODQpIFNUT1Ag MgorKyAgICAgICAgICBpID0gSUNIQVIoJ1Rlc3QnKQorKyAgICAgICAgICBpZiAoaS5ORS44NCkg U1RPUCAzCisrICAgICAgICAgIGkgPSBJQUNIQVIoJ1Rlc3QnKQorKyAgICAgICAgICBpZiAoaS5O RS44NCkgU1RPUCA0CisrICAgICAgICBFTkQKKy0tIAorMi4yNy4wCisKCmRpZmYgLS1naXQgYS9n Y2MxMS1mb3J0cmFuLWZkZWMtbm9uLWludGVnZXItaW5kZXgucGF0Y2ggYi9nY2MxMS1mb3J0cmFu LWZkZWMtbm9uLWludGVnZXItaW5kZXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMDc0ZGYzYgotLS0gL2Rldi9udWxsCisrKyBiL2djYzExLWZvcnRyYW4tZmRlYy1u b24taW50ZWdlci1pbmRleC5wYXRjaApAQCAtMCwwICsxLDE1OCBAQAorRnJvbSA2N2FlZjI2MjMx MWQ2YTc0Njc4NmVlMGY1OTc0OGNjYWE3ZTFlNzExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogTWFyayBFZ2dsZXN0b24gPG1hcmtlZ2dsZXN0b25AZ2NjLmdudS5vcmc+CitEYXRlOiBG cmksIDIyIEphbiAyMDIxIDEzOjA5OjU0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0ggMDQvMTBdIEFs bG93IG5vbi1pbnRlZ2VyIHN1YnN0cmluZyBpbmRleGVzCisKK1VzZSAtZmRlYy1ub24taW50ZWdl ci1pbmRleCBjb21waWxlciBmbGFnIHRvIGVuYWJsZS4gQWxzbyBlbmFibGVkIGJ5IC1mZGVjLgor LS0tCisgZ2NjL2ZvcnRyYW4vbGFuZy5vcHQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQg KysrKworIGdjYy9mb3J0cmFuL29wdGlvbnMuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx ICsKKyBnY2MvZm9ydHJhbi9yZXNvbHZlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMCAr KysrKysrKysrKysrKysrKysrCisgLi4uL2RlY19ub3RfaW50ZWdlcl9zdWJzdHJpbmdfaW5kZXhl c18xLmYgICAgIHwgMTggKysrKysrKysrKysrKysrKysKKyAuLi4vZGVjX25vdF9pbnRlZ2VyX3N1 YnN0cmluZ19pbmRleGVzXzIuZiAgICAgfCAxOCArKysrKysrKysrKysrKysrKworIC4uLi9kZWNf bm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4ZXNfMy5mICAgICB8IDE4ICsrKysrKysrKysrKysr KysrCisgNiBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX25vdF9pbnRlZ2VyX3N1YnN0cmluZ19p bmRleGVzXzEuZgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2RlY19ub3RfaW50ZWdlcl9zdWJzdHJpbmdfaW5kZXhlc18yLmYKKyBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfbm90X2ludGVnZXJfc3Vic3RyaW5nX2lu ZGV4ZXNfMy5mCisKK2RpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9sYW5nLm9wdCBiL2djYy9mb3J0 cmFuL2xhbmcub3B0CitpbmRleCBjNGRhMjQ4ZjA3Yy4uZDUyN2MxMDZiZDYgMTAwNjQ0CistLS0g YS9nY2MvZm9ydHJhbi9sYW5nLm9wdAorKysrIGIvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKK0BAIC00 ODksNiArNDg5LDEwIEBAIGZkZWMtbWF0aAorIEZvcnRyYW4gVmFyKGZsYWdfZGVjX21hdGgpCisg RW5hYmxlIGxlZ2FjeSBtYXRoIGludHJpbnNpY3MgZm9yIGNvbXBhdGliaWxpdHkuCisgCisrZmRl Yy1ub24taW50ZWdlci1pbmRleAorK0ZvcnRyYW4gVmFyKGZsYWdfZGVjX25vbl9pbnRlZ2VyX2lu ZGV4KQorK0VuYWJsZSBzdXBwb3J0IGZvciBub24taW50ZWdlciBzdWJzdHJpbmcgaW5kZXhlcy4K KysKKyBmZGVjLXN0cnVjdHVyZQorIEZvcnRyYW4gVmFyKGZsYWdfZGVjX3N0cnVjdHVyZSkKKyBF bmFibGUgc3VwcG9ydCBmb3IgREVDIFNUUlVDVFVSRS9SRUNPUkQuCitkaWZmIC0tZ2l0IGEvZ2Nj L2ZvcnRyYW4vb3B0aW9ucy5jIGIvZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jCitpbmRleCBmMTliYTg3 ZjhhMC4uOWEwNDJmNjQ4ODEgMTAwNjQ0CistLS0gYS9nY2MvZm9ydHJhbi9vcHRpb25zLmMKKysr KyBiL2djYy9mb3J0cmFuL29wdGlvbnMuYworQEAgLTc4LDYgKzc4LDcgQEAgc2V0X2RlY19mbGFn cyAoaW50IHZhbHVlKQorICAgU0VUX0JJVEZMQUcgKGZsYWdfZGVjX2JsYW5rX2Zvcm1hdF9pdGVt LCB2YWx1ZSwgdmFsdWUpOworICAgU0VUX0JJVEZMQUcgKGZsYWdfZGVjX2NoYXJfY29udmVyc2lv bnMsIHZhbHVlLCB2YWx1ZSk7CisgICBTRVRfQklURkxBRyAoZmxhZ19kZWNfZHVwbGljYXRlcywg dmFsdWUsIHZhbHVlKTsKKysgIFNFVF9CSVRGTEFHIChmbGFnX2RlY19ub25faW50ZWdlcl9pbmRl eCwgdmFsdWUsIHZhbHVlKTsKKyB9CisgCisgLyogRmluYWxpemUgREVDIGZsYWdzLiAgKi8KK2Rp ZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9yZXNvbHZlLmMgYi9nY2MvZm9ydHJhbi9yZXNvbHZlLmMK K2luZGV4IDRiOTBjYjU5OTAyLi5iYzBkZjBmZGI5OSAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFu L3Jlc29sdmUuYworKysrIGIvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCitAQCAtNTEzMSw2ICs1MTMx LDE2IEBAIGdmY19yZXNvbHZlX3N1YnN0cmluZyAoZ2ZjX3JlZiAqcmVmLCBib29sICplcXVhbF9s ZW5ndGgpCisgICAgICAgaWYgKCFnZmNfcmVzb2x2ZV9leHByIChyZWYtPnUuc3Muc3RhcnQpKQor IAlyZXR1cm4gZmFsc2U7CisgCisrICAgICAgLyogSW4gbGVnYWN5IG1vZGUsIGFsbG93IG5vbi1p bnRlZ2VyIHN0cmluZyBpbmRleGVzIGJ5IGNvbnZlcnRpbmcgKi8KKysgICAgICBpZiAoZmxhZ19k ZWNfbm9uX2ludGVnZXJfaW5kZXggJiYgcmVmLT51LnNzLnN0YXJ0LT50cy50eXBlICE9IEJUX0lO VEVHRVIKKysJICAmJiBnZmNfbnVtZXJpY190cyAoJnJlZi0+dS5zcy5zdGFydC0+dHMpKQorKwl7 CisrCSAgZ2ZjX3R5cGVzcGVjIHQ7CisrCSAgdC50eXBlID0gQlRfSU5URUdFUjsKKysJICB0Lmtp bmQgPSByZWYtPnUuc3Muc3RhcnQtPnRzLmtpbmQ7CisrCSAgZ2ZjX2NvbnZlcnRfdHlwZV93YXJu IChyZWYtPnUuc3Muc3RhcnQsICZ0LCAyLCAxKTsKKysJfQorKworICAgICAgIGlmIChyZWYtPnUu c3Muc3RhcnQtPnRzLnR5cGUgIT0gQlRfSU5URUdFUikKKyAJeworIAkgIGdmY19lcnJvciAoIlN1 YnN0cmluZyBzdGFydCBpbmRleCBhdCAlTCBtdXN0IGJlIG9mIHR5cGUgSU5URUdFUiIsCitAQCAt NTE2MCw2ICs1MTcwLDE2IEBAIGdmY19yZXNvbHZlX3N1YnN0cmluZyAoZ2ZjX3JlZiAqcmVmLCBi b29sICplcXVhbF9sZW5ndGgpCisgICAgICAgaWYgKCFnZmNfcmVzb2x2ZV9leHByIChyZWYtPnUu c3MuZW5kKSkKKyAJcmV0dXJuIGZhbHNlOworIAorKyAgICAgIC8qIE5vbi1pbnRlZ2VyIHN0cmlu ZyBpbmRleCBlbmRpbmdzLCBhcyBmb3Igc3RhcnQgKi8KKysgICAgICBpZiAoZmxhZ19kZWNfbm9u X2ludGVnZXJfaW5kZXggJiYgcmVmLT51LnNzLmVuZC0+dHMudHlwZSAhPSBCVF9JTlRFR0VSCisr CSAgJiYgZ2ZjX251bWVyaWNfdHMgKCZyZWYtPnUuc3MuZW5kLT50cykpCisrCXsKKysJICBnZmNf dHlwZXNwZWMgdDsKKysJICB0LnR5cGUgPSBCVF9JTlRFR0VSOworKwkgIHQua2luZCA9IHJlZi0+ dS5zcy5lbmQtPnRzLmtpbmQ7CisrCSAgZ2ZjX2NvbnZlcnRfdHlwZV93YXJuIChyZWYtPnUuc3Mu ZW5kLCAmdCwgMiwgMSk7CisrCX0KKysKKyAgICAgICBpZiAocmVmLT51LnNzLmVuZC0+dHMudHlw ZSAhPSBCVF9JTlRFR0VSKQorIAl7CisgCSAgZ2ZjX2Vycm9yICgiU3Vic3RyaW5nIGVuZCBpbmRl eCBhdCAlTCBtdXN0IGJlIG9mIHR5cGUgSU5URUdFUiIsCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9kZWNfbm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4ZXNfMS5mIGIv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfbm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4 ZXNfMS5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjBiZTI4YWJh YTRiCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19u b3RfaW50ZWdlcl9zdWJzdHJpbmdfaW5kZXhlc18xLmYKK0BAIC0wLDAgKzEsMTggQEAKKyshIHsg ZGctZG8gcnVuIH0KKyshIHsgZGctb3B0aW9ucyAiLWZkZWMiIH0KKyshCisrISBUZXN0IG5vdCBp bnRlZ2VyIHN1YnN0cmluZyBpbmRleGVzCisrIQorKyEgVGVzdCBjYXNlIGNvbnRyaWJ1dGVkIGJ5 IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAg ICAgIFBST0dSQU0gbm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4ZXMKKysgICAgICAgICAgQ0hB UkFDVEVSKjUgc3QvJ1Rlc3RzJy8KKysgICAgICAgICAgUkVBTCBpci8xLjAvCisrICAgICAgICAg IFJFQUwgaXIyLzQuMC8KKysKKysgICAgICAgICAgaWYgKHN0KGlyOjQpLm5lLidUZXN0Jykgc3Rv cCAxCisrICAgICAgICAgIGlmIChzdCgxOmlyMikubmUuJ1Rlc3QnKSBzdG9wIDIKKysgICAgICAg ICAgaWYgKHN0KDEuMDo0KS5uZS4nVGVzdCcpIHN0b3AgMworKyAgICAgICAgICBpZiAoc3QoMTo0 LjApLm5lLidUZXN0Jykgc3RvcCA0CisrICAgICAgICAgIGlmIChzdCgyLjU6NCkubmUuJ2VzdCcp IHN0b3AgNQorKyAgICAgICAgRU5ECitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9kZWNfbm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4ZXNfMi5mIGIvZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9kZWNfbm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4ZXNfMi5mCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjNjZjA1Mjk2ZDBjCistLS0gL2Rl di9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19ub3RfaW50ZWdlcl9z dWJzdHJpbmdfaW5kZXhlc18yLmYKK0BAIC0wLDAgKzEsMTggQEAKKyshIHsgZGctZG8gcnVuIH0K KyshIHsgZGctb3B0aW9ucyAiLWZkZWMtbm9uLWludGVnZXItaW5kZXgiIH0KKyshCisrISBUZXN0 IG5vdCBpbnRlZ2VyIHN1YnN0cmluZyBpbmRleGVzCisrIQorKyEgVGVzdCBjYXNlIGNvbnRyaWJ1 dGVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEK KysgICAgICAgIFBST0dSQU0gbm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4ZXMKKysgICAgICAg ICAgQ0hBUkFDVEVSKjUgc3QvJ1Rlc3RzJy8KKysgICAgICAgICAgUkVBTCBpci8xLjAvCisrICAg ICAgICAgIFJFQUwgaXIyLzQuMC8KKysKKysgICAgICAgICAgaWYgKHN0KGlyOjQpLm5lLidUZXN0 Jykgc3RvcCAxCisrICAgICAgICAgIGlmIChzdCgxOmlyMikubmUuJ1Rlc3QnKSBzdG9wIDIKKysg ICAgICAgICAgaWYgKHN0KDEuMDo0KS5uZS4nVGVzdCcpIHN0b3AgMworKyAgICAgICAgICBpZiAo c3QoMTo0LjApLm5lLidUZXN0Jykgc3RvcCA0CisrICAgICAgICAgIGlmIChzdCgyLjU6NCkubmUu J2VzdCcpIHN0b3AgNQorKyAgICAgICAgRU5ECitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9kZWNfbm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4ZXNfMy5mIGIvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfbm90X2ludGVnZXJfc3Vic3RyaW5nX2luZGV4ZXNfMy5m CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjcwM2RlOTk1ODk3Cist LS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19ub3RfaW50 ZWdlcl9zdWJzdHJpbmdfaW5kZXhlc18zLmYKK0BAIC0wLDAgKzEsMTggQEAKKyshIHsgZGctZG8g Y29tcGlsZSB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjIC1mbm8tZGVjLW5vbi1pbnRlZ2VyLWlu ZGV4IiB9CisrIQorKyEgVGVzdCBub3QgaW50ZWdlciBzdWJzdHJpbmcgaW5kZXhlcworKyEKKysh IFRlc3QgY2FzZSBjb250cmlidXRlZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25A Y29kZXRoaW5rLmNvbT4KKyshCisrICAgICAgICBQUk9HUkFNIG5vdF9pbnRlZ2VyX3N1YnN0cmlu Z19pbmRleGVzCisrICAgICAgICAgIENIQVJBQ1RFUio1IHN0LydUZXN0cycvCisrICAgICAgICAg IFJFQUwgaXIvMS4wLworKyAgICAgICAgICBSRUFMIGlyMi80LjAvCisrCisrICAgICAgICAgIGlm IChzdChpcjo0KS5uZS4nVGVzdCcpIHN0b3AgMSAhIHsgZGctZXJyb3IgIlN1YnN0cmluZyBzdGFy dCBpbmRleCIgfQorKyAgICAgICAgICBpZiAoc3QoMTppcjIpLm5lLidUZXN0Jykgc3RvcCAyICEg eyBkZy1lcnJvciAiU3Vic3RyaW5nIGVuZCBpbmRleCIgfQorKyAgICAgICAgICBpZiAoc3QoMS4w OjQpLm5lLidUZXN0Jykgc3RvcCAzICEgeyBkZy1lcnJvciAiU3Vic3RyaW5nIHN0YXJ0IGluZGV4 IiB9CisrICAgICAgICAgIGlmIChzdCgxOjQuMCkubmUuJ1Rlc3QnKSBzdG9wIDQgISB7IGRnLWVy cm9yICJTdWJzdHJpbmcgZW5kIGluZGV4IiB9CisrICAgICAgICAgIGlmIChzdCgyLjU6NCkubmUu J2VzdCcpIHN0b3AgNSAhIHsgZGctZXJyb3IgIlN1YnN0cmluZyBzdGFydCBpbmRleCIgfQorKyAg ICAgICAgRU5ECistLSAKKzIuMjcuMAorCgpkaWZmIC0tZ2l0IGEvZ2NjMTEtZm9ydHJhbi1mZGVj LW5vbi1sb2dpY2FsLWlmLnBhdGNoIGIvZ2NjMTEtZm9ydHJhbi1mZGVjLW5vbi1sb2dpY2FsLWlm LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxMzNkMjMKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MxMS1mb3J0cmFuLWZkZWMtbm9uLWxvZ2ljYWwtaWYucGF0Y2gKQEAg LTAsMCArMSwzNzggQEAKK0Zyb20gY2M4N2RkYjg0MTAxN2JiMDk3NmIwNTA5MTczMzYwOWVlMTdk N2YwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmsgRWdnbGVzdG9uIDxtYXJr ZWdnbGVzdG9uQGdjYy5nbnUub3JnPgorRGF0ZTogRnJpLCAyMiBKYW4gMjAyMSAxMzoxNToxNyAr MDAwMAorU3ViamVjdDogW1BBVENIIDA3LzEwXSBBbGxvdyBub24tbG9naWNhbCBleHByZXNzaW9u cyBpbiBJRiBzdGF0ZW1lbnRzCisKK1VzZSAtZmRlYy1ub24tbG9naWNhbC1pZiB0byBlbmFibGUg ZmVhdHVyZS4gQWxzbyBlbmFibGVkIHVzaW5nIC1mZGVjLgorLS0tCisgZ2NjL2ZvcnRyYW4vbGFu Zy5vcHQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysKKyBnY2MvZm9ydHJhbi9vcHRp b25zLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCisgZ2NjL2ZvcnRyYW4vcmVzb2x2 ZS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjAgKysrKysrKysrKysrKysrKy0tLQorIC4u LmdpY2FsX2V4cHJlc3Npb25zX2lmX3N0YXRlbWVudHNfYmxvY2tzXzEuZiB8IDI1ICsrKysrKysr CisgLi4uZ2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50c19ibG9ja3NfMi5mIHwgMjUgKysr KysrKysKKyAuLi5naWNhbF9leHByZXNzaW9uc19pZl9zdGF0ZW1lbnRzX2Jsb2Nrc18zLmYgfCAy NSArKysrKysrKworIC4uLmdpY2FsX2V4cHJlc3Npb25zX2lmX3N0YXRlbWVudHNfYmxvY2tzXzQu ZiB8IDQ1ICsrKysrKysrKysrKysrCisgLi4uZ2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50 c19ibG9ja3NfNS5mIHwgNDUgKysrKysrKysrKysrKysKKyAuLi5naWNhbF9leHByZXNzaW9uc19p Zl9zdGF0ZW1lbnRzX2Jsb2Nrc182LmYgfCA0NSArKysrKysrKysrKysrKworIDkgZmlsZXMgY2hh bmdlZCwgMjY2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxfZXhwcmVzc2lvbnNfaWZf c3RhdGVtZW50c19ibG9ja3NfMS5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50c19ibG9ja3Nf Mi5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xv Z2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50c19ibG9ja3NfMy5mCisgY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxfZXhwcmVzc2lvbnNf aWZfc3RhdGVtZW50c19ibG9ja3NfNC5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50c19ibG9j a3NfNS5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVj X2xvZ2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50c19ibG9ja3NfNi5mCisKK2RpZmYgLS1n aXQgYS9nY2MvZm9ydHJhbi9sYW5nLm9wdCBiL2djYy9mb3J0cmFuL2xhbmcub3B0CitpbmRleCA0 YTI2OWViYjIyZC4uZDg4NmMyZjMzZWQgMTAwNjQ0CistLS0gYS9nY2MvZm9ydHJhbi9sYW5nLm9w dAorKysrIGIvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKK0BAIC00OTcsNiArNDk3LDEwIEBAIGZkZWMt b3ZlcnJpZGUta2luZAorIEZvcnRyYW4gVmFyKGZsYWdfZGVjX292ZXJyaWRlX2tpbmQpCisgRW5h YmxlIHN1cHBvcnQgZm9yIHBlciB2YXJpYWJsZSBraW5kIHNwZWNpZmljYXRpb24uCisgCisrZmRl Yy1ub24tbG9naWNhbC1pZgorK0ZvcnRyYW4gVmFyKGZsYWdfZGVjX25vbl9sb2dpY2FsX2lmKQor K0VuYWJsZSBzdXBwb3J0IGZvciBub24tbG9naWNhbCBleHByZXNzaW9ucyBpbiBpZiBzdGF0ZW1l bnRzLgorKworIGZkZWMtb2xkLWluaXQKKyBGb3J0cmFuIFZhcihmbGFnX2RlY19vbGRfaW5pdCkK KyBFbmFibGUgc3VwcG9ydCBmb3Igb2xkIHN0eWxlIGluaXRpYWxpemVycyBpbiBkZXJpdmVkIHR5 cGVzLgorZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL29wdGlvbnMuYyBiL2djYy9mb3J0cmFuL29w dGlvbnMuYworaW5kZXggZWRiYWI0ODNiMzYuLmE5NDZjODY3OTBhIDEwMDY0NAorLS0tIGEvZ2Nj L2ZvcnRyYW4vb3B0aW9ucy5jCisrKysgYi9nY2MvZm9ydHJhbi9vcHRpb25zLmMKK0BAIC04MSw2 ICs4MSw3IEBAIHNldF9kZWNfZmxhZ3MgKGludCB2YWx1ZSkKKyAgIFNFVF9CSVRGTEFHIChmbGFn X2RlY19ub25faW50ZWdlcl9pbmRleCwgdmFsdWUsIHZhbHVlKTsKKyAgIFNFVF9CSVRGTEFHIChm bGFnX2RlY19vbGRfaW5pdCwgdmFsdWUsIHZhbHVlKTsKKyAgIFNFVF9CSVRGTEFHIChmbGFnX2Rl Y19vdmVycmlkZV9raW5kLCB2YWx1ZSwgdmFsdWUpOworKyAgU0VUX0JJVEZMQUcgKGZsYWdfZGVj X25vbl9sb2dpY2FsX2lmLCB2YWx1ZSwgdmFsdWUpOworIH0KKyAKKyAvKiBGaW5hbGl6ZSBERUMg ZmxhZ3MuICAqLworZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jlc29sdmUuYyBiL2djYy9mb3J0 cmFuL3Jlc29sdmUuYworaW5kZXggYmMwZGYwZmRiOTkuLjA3ZGQwMzlmM2JmIDEwMDY0NAorLS0t IGEvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCisrKysgYi9nY2MvZm9ydHJhbi9yZXNvbHZlLmMKK0BA IC0xMDc4OSwxMCArMTA3ODksMzEgQEAgZ2ZjX3Jlc29sdmVfYmxvY2tzIChnZmNfY29kZSAqYiwg Z2ZjX25hbWVzcGFjZSAqbnMpCisgICAgICAgc3dpdGNoIChiLT5vcCkKKyAJeworIAljYXNlIEVY RUNfSUY6CistCSAgaWYgKHQgJiYgYi0+ZXhwcjEgIT0gTlVMTAorLQkgICAgICAmJiAoYi0+ZXhw cjEtPnRzLnR5cGUgIT0gQlRfTE9HSUNBTCB8fCBiLT5leHByMS0+cmFuayAhPSAwKSkKKy0JICAg IGdmY19lcnJvciAoIklGIGNsYXVzZSBhdCAlTCByZXF1aXJlcyBhIHNjYWxhciBMT0dJQ0FMIGV4 cHJlc3Npb24iLAorLQkJICAgICAgICZiLT5leHByMS0+d2hlcmUpOworKwkgIGlmICh0ICYmIGIt PmV4cHIxICE9IE5VTEwpCisrCSAgICB7CisrCSAgICAgIGlmIChmbGFnX2RlY19ub25fbG9naWNh bF9pZiAmJiBiLT5leHByMS0+dHMudHlwZSAhPSBCVF9MT0dJQ0FMKQorKwkJeworKwkJICBnZmNf ZXhwciogY2FzdDsKKysJCSAgY2FzdCA9IGdmY19uZSAoYi0+ZXhwcjEsCisrCQkJCSBnZmNfZ2V0 X2ludF9leHByICgxLCAmZ2ZjX2N1cnJlbnRfbG9jdXMsIDApLAorKwkJCQkgSU5UUklOU0lDX05F KTsKKysJCSAgaWYgKGNhc3QgPT0gTlVMTCkKKysJCSAgICBnZmNfaW50ZXJuYWxfZXJyb3IgKCJn ZmNfcmVzb2x2ZV9ibG9ja3MoKTogRmFpbGVkIHRvIGNhc3QgIgorKwkJCQkJInRvIExPR0lDQUwg aW4gSUYiKTsKKysJCSAgYi0+ZXhwcjEgPSBjYXN0OworKwkJICBpZiAod2Fybl9jb252ZXJzaW9u X2V4dHJhKQorKwkJICAgIHsKKysJCSAgICAgIGdmY193YXJuaW5nIChPUFRfV2NvbnZlcnNpb25f ZXh0cmEsICJOb24tTE9HSUNBTCB0eXBlIGluIgorKwkJCQkgICAiIElGIHN0YXRlbWVudCBjb25k aXRpb24gJUwgd2lsbCBiZSB0cnVlIGlmIgorKwkJCQkgICAiIGl0IGV2YWx1YXRlcyB0byBub256 ZXJvIiwKKysJCQkJICAgJmItPmV4cHIxLT53aGVyZSk7CisrCQkgICAgfQorKwkJfQorKworKwkg ICAgICBpZiAoKGItPmV4cHIxLT50cy50eXBlICE9IEJUX0xPR0lDQUwgfHwgYi0+ZXhwcjEtPnJh bmsgIT0gMCkpCisrCQlnZmNfZXJyb3IgKCJJRiBjbGF1c2UgYXQgJUwgcmVxdWlyZXMgYSBzY2Fs YXIgTE9HSUNBTCAiCisrCQkJICAgImV4cHJlc3Npb24iLCAmYi0+ZXhwcjEtPndoZXJlKTsKKysJ ICAgIH0KKyAJICBicmVhazsKKyAKKyAJY2FzZSBFWEVDX1dIRVJFOgorQEAgLTEyMDkzLDExICsx MjExNCwzMiBAQCBzdGFydDoKKyAJICBicmVhazsKKyAKKyAJY2FzZSBFWEVDX0lGOgorLQkgIGlm ICh0ICYmIGNvZGUtPmV4cHIxICE9IE5VTEwKKy0JICAgICAgJiYgKGNvZGUtPmV4cHIxLT50cy50 eXBlICE9IEJUX0xPR0lDQUwKKy0JCSAgfHwgY29kZS0+ZXhwcjEtPnJhbmsgIT0gMCkpCistCSAg ICBnZmNfZXJyb3IgKCJJRiBjbGF1c2UgYXQgJUwgcmVxdWlyZXMgYSBzY2FsYXIgTE9HSUNBTCBl eHByZXNzaW9uIiwKKy0JCSAgICAgICAmY29kZS0+ZXhwcjEtPndoZXJlKTsKKysJICBpZiAodCAm JiBjb2RlLT5leHByMSAhPSBOVUxMKQorKwkgICAgeworKwkgICAgICBpZiAoZmxhZ19kZWNfbm9u X2xvZ2ljYWxfaWYKKysJCSAgJiYgY29kZS0+ZXhwcjEtPnRzLnR5cGUgIT0gQlRfTE9HSUNBTCkK KysJCXsKKysJCSAgZ2ZjX2V4cHIqIGNhc3Q7CisrCQkgIGNhc3QgPSBnZmNfbmUgKGNvZGUtPmV4 cHIxLAorKwkJCQkgZ2ZjX2dldF9pbnRfZXhwciAoMSwgJmdmY19jdXJyZW50X2xvY3VzLCAwKSwK KysJCQkJIElOVFJJTlNJQ19ORSk7CisrCQkgIGlmIChjYXN0ID09IE5VTEwpCisrCQkgICAgZ2Zj X2ludGVybmFsX2Vycm9yICgiZ2ZjX3Jlc29sdmVfY29kZSgpOiBGYWlsZWQgdG8gY2FzdCAiCisr CQkJCQkidG8gTE9HSUNBTCBpbiBJRiIpOworKwkJICBjb2RlLT5leHByMSA9IGNhc3Q7CisrCQkg IGlmICh3YXJuX2NvbnZlcnNpb25fZXh0cmEpCisrCQkgICAgeworKwkJICAgICAgZ2ZjX3dhcm5p bmcgKE9QVF9XY29udmVyc2lvbl9leHRyYSwgIk5vbi1MT0dJQ0FMIHR5cGUgaW4iCisrCQkJCSAg ICIgSUYgc3RhdGVtZW50IGNvbmRpdGlvbiAlTCB3aWxsIGJlIHRydWUgaWYiCisrCQkJCSAgICIg aXQgZXZhbHVhdGVzIHRvIG5vbnplcm8iLAorKwkJCQkgICAmY29kZS0+ZXhwcjEtPndoZXJlKTsK KysJCSAgICB9CisrCQl9CisrCisrCSAgICAgIGlmIChjb2RlLT5leHByMS0+dHMudHlwZSAhPSBC VF9MT0dJQ0FMIHx8IGNvZGUtPmV4cHIxLT5yYW5rICE9IDApCisrCQlnZmNfZXJyb3IgKCJJRiBj bGF1c2UgYXQgJUwgcmVxdWlyZXMgYSBzY2FsYXIgTE9HSUNBTCAiCisrCQkJICAgImV4cHJlc3Np b24iLCAmY29kZS0+ZXhwcjEtPndoZXJlKTsKKysJICAgIH0KKyAJICBicmVhazsKKyAKKyAJY2Fz ZSBFWEVDX0NBTEw6CitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNf bG9naWNhbF9leHByZXNzaW9uc19pZl9zdGF0ZW1lbnRzX2Jsb2Nrc18xLmYgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2RlY19sb2dpY2FsX2V4cHJlc3Npb25zX2lmX3N0YXRlbWVudHNfYmxv Y2tzXzEuZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi4wMTAxZGI4 OTNjYQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNf bG9naWNhbF9leHByZXNzaW9uc19pZl9zdGF0ZW1lbnRzX2Jsb2Nrc18xLmYKK0BAIC0wLDAgKzEs MjUgQEAKKyshIHsgZGctZG8gcnVuIH0KKyshIHsgZGctb3B0aW9ucyAiLWZkZWMgLVdjb252ZXJz aW9uLWV4dHJhIiB9CisrIQorKyEgQWxsb3cgbG9naWNhbCBleHByZXNzaW9ucyBpbiBpZiBzdGF0 ZW1lbnRzIGFuZCBibG9ja3MKKyshCisrISBDb250cmlidXRlZCBieSBGcmFuY2lzY28gUmVkb25k byBNYXJjaGVuYSA8ZnJhbmNpc2NvLm1hcmNoZW1hQGNvZGV0aGluay5jby51az4KKyshICAgICAg ICAgICAgIGFuZCBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+CisrISBNb2RpZmllZCBieSBNYXJr IEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrICAgICAgICBQ Uk9HUkFNIGxvZ2ljYWxfZXhwX2lmX3N0X2JsCisrICAgICAgICAgIElOVEVHRVIgaXBvcy8xLwor KyAgICAgICAgICBJTlRFR0VSIGluZWcvMC8KKysKKysgICAgICAgICAgISBUZXN0IG5vbiBsb2dp Y2FsIHZhcmlhYmxlcworKyAgICAgICAgICBpZiAoaW5lZykgU1RPUCAxICEgeyBkZy13YXJuaW5n ICJpZiBpdCBldmFsdWF0ZXMgdG8gbm9uemVybyIgfQorKyAgICAgICAgICBpZiAoMCkgU1RPUCAy ICEgeyBkZy13YXJuaW5nICJpZiBpdCBldmFsdWF0ZXMgdG8gbm9uemVybyIgfQorKworKyAgICAg ICAgICAhIFRlc3Qgbm9uIGxvZ2ljYWwgZXhwcmVzc2lvbnMgaW4gaWYgc3RhdGVtZW50cworKyAg ICAgICAgICBpZiAoTU9EKGlwb3MsIDEpKSBTVE9QIDMgISB7IGRnLXdhcm5pbmcgImlmIGl0IGV2 YWx1YXRlcyB0byBub256ZXJvIiB9CisrCisrICAgICAgICAgICEgVGVzdCBub24gbG9naWNhbCBl eHByZXNzaW9ucyBpbiBpZiBibG9ja3MKKysgICAgICAgICAgaWYgKE1PRCgyICogaXBvcywgMikp IHRoZW4gISB7IGRnLXdhcm5pbmcgImlmIGl0IGV2YWx1YXRlcyB0byBub256ZXJvIiB9CisrICAg ICAgICAgICAgU1RPUCA0CisrICAgICAgICAgIGVuZGlmCisrICAgICAgICBFTkQKK2RpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19sb2dpY2FsX2V4cHJlc3Npb25zX2lm X3N0YXRlbWVudHNfYmxvY2tzXzIuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xv Z2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50c19ibG9ja3NfMi5mCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjg3NmY0ZTA5NTA4CistLS0gL2Rldi9udWxsCisr KysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19sb2dpY2FsX2V4cHJlc3Npb25zX2lm X3N0YXRlbWVudHNfYmxvY2tzXzIuZgorQEAgLTAsMCArMSwyNSBAQAorKyEgeyBkZy1kbyBydW4g fQorKyEgeyBkZy1vcHRpb25zICItZmRlYy1ub24tbG9naWNhbC1pZiAtV2NvbnZlcnNpb24tZXh0 cmEiIH0KKyshCisrISBBbGxvdyBsb2dpY2FsIGV4cHJlc3Npb25zIGluIGlmIHN0YXRlbWVudHMg YW5kIGJsb2NrcworKyEKKyshIENvbnRyaWJ1dGVkIGJ5IEZyYW5jaXNjbyBSZWRvbmRvIE1hcmNo ZW5hIDxmcmFuY2lzY28ubWFyY2hlbWFAY29kZXRoaW5rLmNvLnVrPgorKyEgICAgICAgICAgICAg YW5kIEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4KKyshIE1vZGlmaWVkIGJ5IE1hcmsgRWdnbGVz dG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAgICAgIFBST0dSQU0g bG9naWNhbF9leHBfaWZfc3RfYmwKKysgICAgICAgICAgSU5URUdFUiBpcG9zLzEvCisrICAgICAg ICAgIElOVEVHRVIgaW5lZy8wLworKworKyAgICAgICAgICAhIFRlc3Qgbm9uIGxvZ2ljYWwgdmFy aWFibGVzCisrICAgICAgICAgIGlmIChpbmVnKSBTVE9QIDEgISB7IGRnLXdhcm5pbmcgImlmIGl0 IGV2YWx1YXRlcyB0byBub256ZXJvIiB9CisrICAgICAgICAgIGlmICgwKSBTVE9QIDIgISB7IGRn LXdhcm5pbmcgImlmIGl0IGV2YWx1YXRlcyB0byBub256ZXJvIiB9CisrCisrICAgICAgICAgICEg VGVzdCBub24gbG9naWNhbCBleHByZXNzaW9ucyBpbiBpZiBzdGF0ZW1lbnRzCisrICAgICAgICAg IGlmIChNT0QoaXBvcywgMSkpIFNUT1AgMyAhIHsgZGctd2FybmluZyAiaWYgaXQgZXZhbHVhdGVz IHRvIG5vbnplcm8iIH0KKysKKysgICAgICAgICAgISBUZXN0IG5vbiBsb2dpY2FsIGV4cHJlc3Np b25zIGluIGlmIGJsb2NrcworKyAgICAgICAgICBpZiAoTU9EKDIgKiBpcG9zLCAyKSkgdGhlbiAh IHsgZGctd2FybmluZyAiaWYgaXQgZXZhbHVhdGVzIHRvIG5vbnplcm8iIH0KKysgICAgICAgICAg ICBTVE9QIDQKKysgICAgICAgICAgZW5kaWYKKysgICAgICAgIEVORAorZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVt ZW50c19ibG9ja3NfMy5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfbG9naWNhbF9l eHByZXNzaW9uc19pZl9zdGF0ZW1lbnRzX2Jsb2Nrc18zLmYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMDAwMC4uMzVjYjRjNTFiOGQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVt ZW50c19ibG9ja3NfMy5mCitAQCAtMCwwICsxLDI1IEBACisrISB7IGRnLWRvIGNvbXBpbGUgfQor KyEgeyBkZy1vcHRpb25zICItZmRlYyAtZm5vLWRlYy1ub24tbG9naWNhbC1pZiIgfQorKyEKKysh IEFsbG93IGxvZ2ljYWwgZXhwcmVzc2lvbnMgaW4gaWYgc3RhdGVtZW50cyBhbmQgYmxvY2tzCisr IQorKyEgQ29udHJpYnV0ZWQgYnkgRnJhbmNpc2NvIFJlZG9uZG8gTWFyY2hlbmEgPGZyYW5jaXNj by5tYXJjaGVtYUBjb2RldGhpbmsuY28udWs+CisrISAgICAgICAgICAgICBhbmQgSmVmZiBMYXcg PGxhd0ByZWRoYXQuY29tPgorKyEgTW9kaWZpZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdn bGVzdG9uQGNvZGV0aGluay5jb20+CisrIQorKyAgICAgICAgUFJPR1JBTSBsb2dpY2FsX2V4cF9p Zl9zdF9ibAorKyAgICAgICAgICBJTlRFR0VSIGlwb3MvMS8KKysgICAgICAgICAgSU5URUdFUiBp bmVnLzAvCisrCisrICAgICAgICAgICEgVGVzdCBub24gbG9naWNhbCB2YXJpYWJsZXMKKysgICAg ICAgICAgaWYgKGluZWcpIFNUT1AgMSAhIHsgZGctZXJyb3IgIklGIGNsYXVzZSBhdCIgfQorKyAg ICAgICAgICBpZiAoMCkgU1RPUCAyICEgeyBkZy1lcnJvciAiSUYgY2xhdXNlIGF0IiB9CisrCisr ICAgICAgICAgICEgVGVzdCBub24gbG9naWNhbCBleHByZXNzaW9ucyBpbiBpZiBzdGF0ZW1lbnRz CisrICAgICAgICAgIGlmIChNT0QoaXBvcywgMSkpIFNUT1AgMyAhIHsgZGctZXJyb3IgIklGIGNs YXVzZSBhdCIgfQorKworKyAgICAgICAgICAhIFRlc3Qgbm9uIGxvZ2ljYWwgZXhwcmVzc2lvbnMg aW4gaWYgYmxvY2tzCisrICAgICAgICAgIGlmIChNT0QoMiAqIGlwb3MsIDIpKSB0aGVuICEgeyBk Zy1lcnJvciAiSUYgY2xhdXNlIGF0IiB9CisrICAgICAgICAgICAgU1RPUCA0CisrICAgICAgICAg IGVuZGlmCisrICAgICAgICBFTkQKK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2RlY19sb2dpY2FsX2V4cHJlc3Npb25zX2lmX3N0YXRlbWVudHNfYmxvY2tzXzQuZiBiL2dj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxfZXhwcmVzc2lvbnNfaWZfc3RhdGVt ZW50c19ibG9ja3NfNC5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAu LjdiNjBiNjA4MjdmCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2RlY19sb2dpY2FsX2V4cHJlc3Npb25zX2lmX3N0YXRlbWVudHNfYmxvY2tzXzQuZgorQEAg LTAsMCArMSw0NSBAQAorKyEgeyBkZy1kbyBydW4gfQorKyEgeyBkZy1vcHRpb25zICItZmRlYyAt V2NvbnZlcnNpb24tZXh0cmEiIH0KKyshCisrISBDb250cmlidXRlZCBieSBGcmFuY2lzY28gUmVk b25kbyBNYXJjaGVuYSA8ZnJhbmNpc2NvLm1hcmNoZW1hQGNvZGV0aGluay5jby51az4KKyshICAg ICAgICAgICAgIGFuZCBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+CisrISBNb2RpZmllZCBieSBN YXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrICAgICAg IGZ1bmN0aW9uIG90aGVyc3ViMSgpCisrICAgICAgICBpbnRlZ2VyKjQgb3RoZXJzdWIxCisrICAg ICAgICBvdGhlcnN1YjEgPSA5CisrICAgICAgIGVuZAorKworKyAgICAgICBmdW5jdGlvbiBvdGhl cnN1YjIoKQorKyAgICAgICAgaW50ZWdlcio0IG90aGVyc3ViMgorKyAgICAgICAgb3RoZXJzdWIy ID0gMAorKyAgICAgICBlbmQKKysKKysgICAgICAgcHJvZ3JhbSBNQUlOCisrICAgICAgICBpbnRl Z2VyKjQgb3RoZXJzdWIxCisrICAgICAgICBpbnRlZ2VyKjQgb3RoZXJzdWIyCisrICAgICAgICBp bnRlZ2VyIGEgLzEvCisrICAgICAgICBpbnRlZ2VyIGIgLzIvICAgICAgICAKKysgCisrICAgICAg ICBpZiAob3RoZXJzdWIxKCkpIHRoZW4gISB7IGRnLXdhcm5pbmcgImlmIGl0IGV2YWx1YXRlcyB0 byBub256ZXJvIiB9CisrICAgICAgICAgICB3cml0ZSgqLCopICJPSyIKKysgICAgICAgIGVsc2UK KysgICAgICAgICAgIHN0b3AgMQorKyAgICAgICAgZW5kIGlmCisrICAgICAgICBpZiAob3RoZXJz dWIyKCkpIHRoZW4gISB7IGRnLXdhcm5pbmcgImlmIGl0IGV2YWx1YXRlcyB0byBub256ZXJvIiB9 CisrICAgICAgICAgICBzdG9wIDIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgIHdyaXRlKCos KikgIk9LIgorKyAgICAgICAgZW5kIGlmCisrICAgICAgICBpZiAoYS1iKSB0aGVuICEgeyBkZy13 YXJuaW5nICJpZiBpdCBldmFsdWF0ZXMgdG8gbm9uemVybyIgfQorKyAgICAgICAgICAgd3JpdGUo KiwqKSAiT0siCisrICAgICAgICBlbHNlCisrICAgICAgICAgICBzdG9wIDMKKysgICAgICAgIGVu ZCBpZgorKyAgICAgICAgaWYgKGItKGErMSkpIHRoZW4gISB7IGRnLXdhcm5pbmcgImlmIGl0IGV2 YWx1YXRlcyB0byBub256ZXJvIiB9CisrICAgICAgICAgICBzdG9wIDMKKysgICAgICAgIGVsc2UK KysgICAgICAgICAgIHdyaXRlKCosKikgIk9LIgorKyAgICAgICAgZW5kIGlmCisrICAgICAgIGVu ZAorKworZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxf ZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50c19ibG9ja3NfNS5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9kZWNfbG9naWNhbF9leHByZXNzaW9uc19pZl9zdGF0ZW1lbnRzX2Jsb2Nrc181LmYK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uODAzMzZmNDhjYTEKKy0t LSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2xvZ2ljYWxf ZXhwcmVzc2lvbnNfaWZfc3RhdGVtZW50c19ibG9ja3NfNS5mCitAQCAtMCwwICsxLDQ1IEBACisr ISB7IGRnLWRvIHJ1biB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjLW5vbi1sb2dpY2FsLWlmIC1X Y29udmVyc2lvbi1leHRyYSIgfQorKyEKKyshIENvbnRyaWJ1dGVkIGJ5IEZyYW5jaXNjbyBSZWRv bmRvIE1hcmNoZW5hIDxmcmFuY2lzY28ubWFyY2hlbWFAY29kZXRoaW5rLmNvLnVrPgorKyEgICAg ICAgICAgICAgYW5kIEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4KKyshIE1vZGlmaWVkIGJ5IE1h cmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAgICAg ZnVuY3Rpb24gb3RoZXJzdWIxKCkKKysgICAgICAgIGludGVnZXIqNCBvdGhlcnN1YjEKKysgICAg ICAgIG90aGVyc3ViMSA9IDkKKysgICAgICAgZW5kCisrCisrICAgICAgIGZ1bmN0aW9uIG90aGVy c3ViMigpCisrICAgICAgICBpbnRlZ2VyKjQgb3RoZXJzdWIyCisrICAgICAgICBvdGhlcnN1YjIg PSAwCisrICAgICAgIGVuZAorKworKyAgICAgICBwcm9ncmFtIE1BSU4KKysgICAgICAgIGludGVn ZXIqNCBvdGhlcnN1YjEKKysgICAgICAgIGludGVnZXIqNCBvdGhlcnN1YjIKKysgICAgICAgIGlu dGVnZXIgYSAvMS8KKysgICAgICAgIGludGVnZXIgYiAvMi8gICAgICAgIAorKyAKKysgICAgICAg IGlmIChvdGhlcnN1YjEoKSkgdGhlbiAhIHsgZGctd2FybmluZyAiTm9uLUxPR0lDQUwgdHlwZSBp biBJRiBzdGF0ZW1lbnQiIH0KKysgICAgICAgICAgIHdyaXRlKCosKikgIk9LIgorKyAgICAgICAg ZWxzZQorKyAgICAgICAgICAgc3RvcCAxCisrICAgICAgICBlbmQgaWYKKysgICAgICAgIGlmIChv dGhlcnN1YjIoKSkgdGhlbiAhIHsgZGctd2FybmluZyAiTm9uLUxPR0lDQUwgdHlwZSBpbiBJRiBz dGF0ZW1lbnQiIH0KKysgICAgICAgICAgIHN0b3AgMgorKyAgICAgICAgZWxzZQorKyAgICAgICAg ICAgd3JpdGUoKiwqKSAiT0siCisrICAgICAgICBlbmQgaWYKKysgICAgICAgIGlmIChhLWIpIHRo ZW4gISB7IGRnLXdhcm5pbmcgIk5vbi1MT0dJQ0FMIHR5cGUgaW4gSUYgc3RhdGVtZW50IiB9Cisr ICAgICAgICAgICB3cml0ZSgqLCopICJPSyIKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgIHN0 b3AgMworKyAgICAgICAgZW5kIGlmCisrICAgICAgICBpZiAoYi0oYSsxKSkgdGhlbiAhIHsgZGct d2FybmluZyAiTm9uLUxPR0lDQUwgdHlwZSBpbiBJRiBzdGF0ZW1lbnQiIH0KKysgICAgICAgICAg IHN0b3AgMworKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgd3JpdGUoKiwqKSAiT0siCisrICAg ICAgICBlbmQgaWYKKysgICAgICAgZW5kCisrCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9kZWNfbG9naWNhbF9leHByZXNzaW9uc19pZl9zdGF0ZW1lbnRzX2Jsb2Nrc182 LmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19sb2dpY2FsX2V4cHJlc3Npb25zX2lm X3N0YXRlbWVudHNfYmxvY2tzXzYuZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMDAwLi5lMTEyNWNhNzE3YQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9kZWNfbG9naWNhbF9leHByZXNzaW9uc19pZl9zdGF0ZW1lbnRzX2Jsb2Nrc182 LmYKK0BAIC0wLDAgKzEsNDUgQEAKKyshIHsgZGctZG8gY29tcGlsZSB9CisrISB7IGRnLW9wdGlv bnMgIi1mZGVjIC1mbm8tZGVjLW5vbi1sb2dpY2FsLWlmIiB9CisrIQorKyEgQ29udHJpYnV0ZWQg YnkgRnJhbmNpc2NvIFJlZG9uZG8gTWFyY2hlbmEgPGZyYW5jaXNjby5tYXJjaGVtYUBjb2RldGhp bmsuY28udWs+CisrISAgICAgICAgICAgICBhbmQgSmVmZiBMYXcgPGxhd0ByZWRoYXQuY29tPgor KyEgTW9kaWZpZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5j b20+CisrIQorKyAgICAgICBmdW5jdGlvbiBvdGhlcnN1YjEoKQorKyAgICAgICAgaW50ZWdlcio0 IG90aGVyc3ViMQorKyAgICAgICAgb3RoZXJzdWIxID0gOQorKyAgICAgICBlbmQKKysKKysgICAg ICAgZnVuY3Rpb24gb3RoZXJzdWIyKCkKKysgICAgICAgIGludGVnZXIqNCBvdGhlcnN1YjIKKysg ICAgICAgIG90aGVyc3ViMiA9IDAKKysgICAgICAgZW5kCisrCisrICAgICAgIHByb2dyYW0gTUFJ TgorKyAgICAgICAgaW50ZWdlcio0IG90aGVyc3ViMQorKyAgICAgICAgaW50ZWdlcio0IG90aGVy c3ViMgorKyAgICAgICAgaW50ZWdlciBhIC8xLworKyAgICAgICAgaW50ZWdlciBiIC8yLyAgICAg ICAgCisrIAorKyAgICAgICAgaWYgKG90aGVyc3ViMSgpKSB0aGVuICEgeyBkZy1lcnJvciAiSUYg Y2xhdXNlIGF0IiB9CisrICAgICAgICAgICB3cml0ZSgqLCopICJPSyIKKysgICAgICAgIGVsc2UK KysgICAgICAgICAgIHN0b3AgMQorKyAgICAgICAgZW5kIGlmCisrICAgICAgICBpZiAob3RoZXJz dWIyKCkpIHRoZW4gISB7IGRnLWVycm9yICJJRiBjbGF1c2UgYXQiIH0KKysgICAgICAgICAgIHN0 b3AgMgorKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgd3JpdGUoKiwqKSAiT0siCisrICAgICAg ICBlbmQgaWYKKysgICAgICAgIGlmIChhLWIpIHRoZW4gISB7IGRnLWVycm9yICJJRiBjbGF1c2Ug YXQiIH0KKysgICAgICAgICAgIHdyaXRlKCosKikgIk9LIgorKyAgICAgICAgZWxzZQorKyAgICAg ICAgICAgc3RvcCAzCisrICAgICAgICBlbmQgaWYKKysgICAgICAgIGlmIChiLShhKzEpKSB0aGVu ICEgeyBkZy1lcnJvciAiSUYgY2xhdXNlIGF0IiB9CisrICAgICAgICAgICBzdG9wIDMKKysgICAg ICAgIGVsc2UKKysgICAgICAgICAgIHdyaXRlKCosKikgIk9LIgorKyAgICAgICAgZW5kIGlmCisr ICAgICAgIGVuZAorKworLS0gCisyLjI3LjAKKwoKZGlmZiAtLWdpdCBhL2djYzExLWZvcnRyYW4t ZmRlYy1vbGQtaW5pdC5wYXRjaCBiL2djYzExLWZvcnRyYW4tZmRlYy1vbGQtaW5pdC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTU0ZjJlCi0tLSAvZGV2L251bGwK KysrIGIvZ2NjMTEtZm9ydHJhbi1mZGVjLW9sZC1pbml0LnBhdGNoCkBAIC0wLDAgKzEsMTg1IEBA CitGcm9tIDhiY2MwZjg1ZWQxNzE4YzBkZDkwMzNhZDRhMzRkZjE4MWFhYmFmZmUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXJrIEVnZ2xlc3RvbiA8bWFya2VnZ2xlc3RvbkBnY2Mu Z251Lm9yZz4KK0RhdGU6IEZyaSwgMjIgSmFuIDIwMjEgMTM6MTE6MDYgKzAwMDAKK1N1YmplY3Q6 IFtQQVRDSCAwNS8xMF0gQWxsb3cgb2xkLXN0eWxlIGluaXRpYWxpemVycyBpbiBkZXJpdmVkIHR5 cGVzCisKK1RoaXMgYWxsb3dzIHNpbXBsZSBkZWNsYXJhdGlvbnMgaW4gZGVyaXZlZCB0eXBlcyBh bmQgc3RydWN0dXJlcywgc3VjaCBhczoKKyAgICBMT0dJQ0FMKjEgICAgICBOSUwgICAgICAvMC8K K09ubHkgc2luZ2xlIHZhbHVlIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGF0IHRoZSBtb21lbnQu CisKK1VzZSAtZmRlYy1vbGQtaW5pdCB0byBlbmFibGUuIEFsc28gZW5hYmxlZCBieSAtZmRlYy4K Ky0tLQorIGdjYy9mb3J0cmFuL2RlY2wuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI3 ICsrKysrKysrKysrKysrKy0tLS0KKyBnY2MvZm9ydHJhbi9sYW5nLm9wdCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNCArKysKKyBnY2MvZm9ydHJhbi9vcHRpb25zLmMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMSArCisgLi4uZWNfZGVyaXZlZF90eXBlc19pbml0aWFsaXNlZF9vbGRf c3R5bGVfMS5mIHwgMjUgKysrKysrKysrKysrKysrKysKKyAuLi5lY19kZXJpdmVkX3R5cGVzX2lu aXRpYWxpc2VkX29sZF9zdHlsZV8yLmYgfCAyNSArKysrKysrKysrKysrKysrKworIC4uLmVjX2Rl cml2ZWRfdHlwZXNfaW5pdGlhbGlzZWRfb2xkX3N0eWxlXzMuZiB8IDI2ICsrKysrKysrKysrKysr KysrKworIDYgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2Rlcml2 ZWRfdHlwZXNfaW5pdGlhbGlzZWRfb2xkX3N0eWxlXzEuZgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19kZXJpdmVkX3R5cGVzX2luaXRpYWxpc2VkX29s ZF9zdHlsZV8yLmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9kZWNfZGVyaXZlZF90eXBlc19pbml0aWFsaXNlZF9vbGRfc3R5bGVfMy5mCisKK2RpZmYgLS1n aXQgYS9nY2MvZm9ydHJhbi9kZWNsLmMgYi9nY2MvZm9ydHJhbi9kZWNsLmMKK2luZGV4IDcyMzkx NTgyMmYzLi41YzhjMWI3OTgxYiAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL2RlY2wuYworKysr IGIvZ2NjL2ZvcnRyYW4vZGVjbC5jCitAQCAtMjgyNywxMiArMjgyNywyOSBAQCB2YXJpYWJsZV9k ZWNsIChpbnQgZWxlbSkKKyAgICAgICAgICBidXQgbm90IGNvbXBvbmVudHMgb2YgZGVyaXZlZCB0 eXBlcy4gICovCisgICAgICAgZWxzZSBpZiAoZ2ZjX2N1cnJlbnRfc3RhdGUgKCkgPT0gQ09NUF9E RVJJVkVEKQorIAl7CistCSAgZ2ZjX2Vycm9yICgiSW52YWxpZCBvbGQgc3R5bGUgaW5pdGlhbGl6 YXRpb24gZm9yIGRlcml2ZWQgdHlwZSAiCistCQkgICAgICJjb21wb25lbnQgYXQgJUMiKTsKKy0J ICBtID0gTUFUQ0hfRVJST1I7CistCSAgZ290byBjbGVhbnVwOworKwkgIGlmIChmbGFnX2RlY19v bGRfaW5pdCkKKysJICAgIHsKKysJICAgICAgLyogQXR0ZW1wdCB0byBtYXRjaCBhbiBvbGQtc3R5 bGUgaW5pdGlhbGl6ZXIgd2hpY2ggaXMgYSBzaW1wbGUKKysJCSBpbnRlZ2VyIG9yIGNoYXJhY3Rl ciBleHByZXNzaW9uOyB0aGlzIHdpbGwgbm90IHdvcmsgd2l0aAorKwkJIG11bHRpcGxlIHZhbHVl cy4gKi8KKysJICAgICAgbSA9IGdmY19tYXRjaF9pbml0X2V4cHIgKCZpbml0aWFsaXplcik7Cisr CSAgICAgIGlmIChtID09IE1BVENIX0VSUk9SKQorKwkJZ290byBjbGVhbnVwOworKwkgICAgICBl bHNlIGlmIChtID09IE1BVENIX1lFUykKKysJCXsKKysJCSAgbSA9IGdmY19tYXRjaCAoIi8iKTsK KysJCSAgaWYgKG0gIT0gTUFUQ0hfWUVTKQorKwkJICAgIGdvdG8gY2xlYW51cDsKKysJCX0KKysJ ICAgIH0KKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIGdmY19lcnJvciAoIkludmFsaWQgb2xk IHN0eWxlIGluaXRpYWxpemF0aW9uIGZvciBkZXJpdmVkIHR5cGUgIgorKwkJCSAiY29tcG9uZW50 IGF0ICVDIik7CisrCSAgICAgIG0gPSBNQVRDSF9FUlJPUjsKKysJICAgICAgZ290byBjbGVhbnVw OworKwkgICAgfQorIAl9CistCisgICAgICAgLyogRm9yIHN0cnVjdHVyZSBjb21wb25lbnRzLCBy ZWFkIHRoZSBpbml0aWFsaXplciBhcyBhIHNwZWNpYWwKKyAgICAgICAgICBleHByZXNzaW9uIGFu ZCBsZXQgdGhlIHJlc3Qgb2YgdGhpcyBmdW5jdGlvbiBhcHBseSB0aGUgaW5pdGlhbGl6ZXIKKyAg ICAgICAgICBhcyB1c3VhbC4gICovCitkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQg Yi9nY2MvZm9ydHJhbi9sYW5nLm9wdAoraW5kZXggZDUyN2MxMDZiZDYuLjI1Y2M5NDg2OTliIDEw MDY0NAorLS0tIGEvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKKysrKyBiL2djYy9mb3J0cmFuL2xhbmcu b3B0CitAQCAtNDkzLDYgKzQ5MywxMCBAQCBmZGVjLW5vbi1pbnRlZ2VyLWluZGV4CisgRm9ydHJh biBWYXIoZmxhZ19kZWNfbm9uX2ludGVnZXJfaW5kZXgpCisgRW5hYmxlIHN1cHBvcnQgZm9yIG5v bi1pbnRlZ2VyIHN1YnN0cmluZyBpbmRleGVzLgorIAorK2ZkZWMtb2xkLWluaXQKKytGb3J0cmFu IFZhcihmbGFnX2RlY19vbGRfaW5pdCkKKytFbmFibGUgc3VwcG9ydCBmb3Igb2xkIHN0eWxlIGlu aXRpYWxpemVycyBpbiBkZXJpdmVkIHR5cGVzLgorKworIGZkZWMtc3RydWN0dXJlCisgRm9ydHJh biBWYXIoZmxhZ19kZWNfc3RydWN0dXJlKQorIEVuYWJsZSBzdXBwb3J0IGZvciBERUMgU1RSVUNU VVJFL1JFQ09SRC4KK2RpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9vcHRpb25zLmMgYi9nY2MvZm9y dHJhbi9vcHRpb25zLmMKK2luZGV4IDlhMDQyZjY0ODgxLi5kNmJkMzZjM2E4YSAxMDA2NDQKKy0t LSBhL2djYy9mb3J0cmFuL29wdGlvbnMuYworKysrIGIvZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jCitA QCAtNzksNiArNzksNyBAQCBzZXRfZGVjX2ZsYWdzIChpbnQgdmFsdWUpCisgICBTRVRfQklURkxB RyAoZmxhZ19kZWNfY2hhcl9jb252ZXJzaW9ucywgdmFsdWUsIHZhbHVlKTsKKyAgIFNFVF9CSVRG TEFHIChmbGFnX2RlY19kdXBsaWNhdGVzLCB2YWx1ZSwgdmFsdWUpOworICAgU0VUX0JJVEZMQUcg KGZsYWdfZGVjX25vbl9pbnRlZ2VyX2luZGV4LCB2YWx1ZSwgdmFsdWUpOworKyAgU0VUX0JJVEZM QUcgKGZsYWdfZGVjX29sZF9pbml0LCB2YWx1ZSwgdmFsdWUpOworIH0KKyAKKyAvKiBGaW5hbGl6 ZSBERUMgZmxhZ3MuICAqLworZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv ZGVjX2Rlcml2ZWRfdHlwZXNfaW5pdGlhbGlzZWRfb2xkX3N0eWxlXzEuZiBiL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZGVjX2Rlcml2ZWRfdHlwZXNfaW5pdGlhbGlzZWRfb2xkX3N0eWxlXzEu ZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi5lYWM0ZjliZmNmMQor LS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfZGVyaXZl ZF90eXBlc19pbml0aWFsaXNlZF9vbGRfc3R5bGVfMS5mCitAQCAtMCwwICsxLDI1IEBACisrISB7 IGRnLWRvIHJ1biB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjIiB9CisrIQorKyEgVGVzdCBvbGQg c3R5bGUgaW5pdGlhbGl6ZXJzIGluIGRlcml2ZWQgdHlwZXMKKyshCisrISBDb250cmlidXRlZCBi eSBKaW0gTWFjQXJ0aHVyIDxqaW0ubWFjYXJ0aHVyQGNvZGV0aGluay5jby51az4KKyshIE1vZGlm aWVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEK KysgICAgICAgIFBST0dSQU0gc3BlY19pbl92YXIKKysgICAgICAgICAgVFlQRSBTVFJVQ1QxCisr ICAgICAgICAgICAgSU5URUdFUio0ICAgICAgSUQgICAgICAgLzgvCisrICAgICAgICAgICAgSU5U RUdFUio0ICAgICAgVFlQRSAgICAgLzUvCisrICAgICAgICAgICAgSU5URUdFUio4ICAgICAgREVG VkFMICAgLzAvCisrICAgICAgICAgICAgQ0hBUkFDVEVSKig1KSAgTkFNRSAgICAgLyd0ZXN0cycv CisrICAgICAgICAgICAgTE9HSUNBTCoxICAgICAgTklMICAgICAgLzAvCisrICAgICAgICAgIEVO RCBUWVBFIFNUUlVDVDEKKysKKysgICAgICAgICAgVFlQRSAoU1RSVUNUMSkgU0lOU1QKKysKKysg ICAgICAgICAgSUYoU0lOU1QlSUQuTkUuOCkgU1RPUCAxCisrICAgICAgICAgIElGKFNJTlNUJVRZ UEUuTkUuNSkgU1RPUCAyCisrICAgICAgICAgIElGKFNJTlNUJURFRlZBTC5ORS4wKSBTVE9QIDMK KysgICAgICAgICAgSUYoU0lOU1QlTkFNRS5ORS4ndGVzdHMnKSBTVE9QIDQKKysgICAgICAgICAg SUYoU0lOU1QlTklMKSBTVE9QIDUKKysgICAgICAgIEVORAorZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2Rlcml2ZWRfdHlwZXNfaW5pdGlhbGlzZWRfb2xkX3N0eWxl XzIuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2Rlcml2ZWRfdHlwZXNfaW5pdGlh bGlzZWRfb2xkX3N0eWxlXzIuZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAwLi5kOTA0YzhiMjk3NAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9kZWNfZGVyaXZlZF90eXBlc19pbml0aWFsaXNlZF9vbGRfc3R5bGVfMi5mCitAQCAt MCwwICsxLDI1IEBACisrISB7IGRnLWRvIHJ1biB9CisrISB7IGRnLW9wdGlvbnMgIi1zdGQ9bGVn YWN5IC1mZGVjLW9sZC1pbml0IiB9CisrIQorKyEgVGVzdCBvbGQgc3R5bGUgaW5pdGlhbGl6ZXJz IGluIGRlcml2ZWQgdHlwZXMKKyshCisrISBDb250cmlidXRlZCBieSBKaW0gTWFjQXJ0aHVyIDxq aW0ubWFjYXJ0aHVyQGNvZGV0aGluay5jby51az4KKyshIE1vZGlmaWVkIGJ5IE1hcmsgRWdnbGVz dG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAgICAgIFBST0dSQU0g c3BlY19pbl92YXIKKysgICAgICAgICAgVFlQRSBTVFJVQ1QxCisrICAgICAgICAgICAgSU5URUdF Uio0ICAgICAgSUQgICAgICAgLzgvCisrICAgICAgICAgICAgSU5URUdFUio0ICAgICAgVFlQRSAg ICAgLzUvCisrICAgICAgICAgICAgSU5URUdFUio4ICAgICAgREVGVkFMICAgLzAvCisrICAgICAg ICAgICAgQ0hBUkFDVEVSKig1KSAgTkFNRSAgICAgLyd0ZXN0cycvCisrICAgICAgICAgICAgTE9H SUNBTCoxICAgICAgTklMICAgICAgLzAvCisrICAgICAgICAgIEVORCBUWVBFIFNUUlVDVDEKKysK KysgICAgICAgICAgVFlQRSAoU1RSVUNUMSkgU0lOU1QKKysKKysgICAgICAgICAgSUYoU0lOU1Ql SUQuTkUuOCkgU1RPUCAxCisrICAgICAgICAgIElGKFNJTlNUJVRZUEUuTkUuNSkgU1RPUCAyCisr ICAgICAgICAgIElGKFNJTlNUJURFRlZBTC5ORS4wKSBTVE9QIDMKKysgICAgICAgICAgSUYoU0lO U1QlTkFNRS5ORS4ndGVzdHMnKSBTVE9QIDQKKysgICAgICAgICAgSUYoU0lOU1QlTklMKSBTVE9Q IDUKKysgICAgICAgIEVORAorZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv ZGVjX2Rlcml2ZWRfdHlwZXNfaW5pdGlhbGlzZWRfb2xkX3N0eWxlXzMuZiBiL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZGVjX2Rlcml2ZWRfdHlwZXNfaW5pdGlhbGlzZWRfb2xkX3N0eWxlXzMu ZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi41OGMyYjRiNjZjZgor LS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfZGVyaXZl ZF90eXBlc19pbml0aWFsaXNlZF9vbGRfc3R5bGVfMy5mCitAQCAtMCwwICsxLDI2IEBACisrISB7 IGRnLWRvIGNvbXBpbGUgfQorKyEgeyBkZy1vcHRpb25zICItc3RkPWxlZ2FjeSAtZmRlYyAtZm5v LWRlYy1vbGQtaW5pdCIgfQorKyEKKyshIFRlc3Qgb2xkIHN0eWxlIGluaXRpYWxpemVycyBpbiBk ZXJpdmVkIHR5cGVzCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgSmltIE1hY0FydGh1ciA8amltLm1h Y2FydGh1ckBjb2RldGhpbmsuY28udWs+CisrISBNb2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8 bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrCisrICAgICAgICBQUk9HUkFNIHNw ZWNfaW5fdmFyCisrICAgICAgICAgIFRZUEUgU1RSVUNUMQorKyAgICAgICAgICAgIElOVEVHRVIq NCAgICAgIElEICAgICAgIC84LyAhIHsgZGctZXJyb3IgIkludmFsaWQgb2xkIHN0eWxlIGluaXRp YWxpemF0aW9uIiB9CisrICAgICAgICAgICAgSU5URUdFUio0ICAgICAgVFlQRSAgICAgLzUvICEg eyBkZy1lcnJvciAiSW52YWxpZCBvbGQgc3R5bGUgaW5pdGlhbGl6YXRpb24iIH0KKysgICAgICAg ICAgICBJTlRFR0VSKjggICAgICBERUZWQUwgICAvMC8gISB7IGRnLWVycm9yICJJbnZhbGlkIG9s ZCBzdHlsZSBpbml0aWFsaXphdGlvbiIgfQorKyAgICAgICAgICAgIENIQVJBQ1RFUiooNSkgIE5B TUUgICAgIC8ndGVzdHMnLyAhIHsgZGctZXJyb3IgIkludmFsaWQgb2xkIHN0eWxlIGluaXRpYWxp emF0aW9uIiB9CisrICAgICAgICAgICAgTE9HSUNBTCoxICAgICAgTklMICAgICAgLzAvICEgeyBk Zy1lcnJvciAiSW52YWxpZCBvbGQgc3R5bGUgaW5pdGlhbGl6YXRpb24iIH0KKysgICAgICAgICAg RU5EIFRZUEUgU1RSVUNUMQorKworKyAgICAgICAgICBUWVBFIChTVFJVQ1QxKSBTSU5TVAorKwor KyAgICAgICAgICBJRihTSU5TVCVJRC5ORS44KSBTVE9QIDEgISB7IGRnLWVycm9yICInaWQnIGF0 IFxcKDFcXCkgaXMgbm90IGEgbWVtYmVyIiB9CisrICAgICAgICAgIElGKFNJTlNUJVRZUEUuTkUu NSkgU1RPUCAyICEgeyBkZy1lcnJvciAiJ3R5cGUnIGF0IFxcKDFcXCkgaXMgbm90IGEgbWVtYmVy IiB9CisrICAgICAgICAgIElGKFNJTlNUJURFRlZBTC5ORS4wKSBTVE9QIDMgICEgeyBkZy1lcnJv ciAiJ2RlZnZhbCcgYXQgXFwoMVxcKSBpcyBub3QgYSBtZW1iZXIiIH0KKysgICAgICAgICAgSUYo U0lOU1QlTkFNRS5ORS4ndGVzdHMnKSBTVE9QIDQgISB7IGRnLWVycm9yICInbmFtZScgYXQgXFwo MVxcKSBpcyBub3QgYSBtZW1iZXIiIH0KKysgICAgICAgICAgSUYoU0lOU1QlTklMKSBTVE9QIDUg ISB7IGRnLWVycm9yICInbmlsJyBhdCBcXCgxXFwpIGlzIG5vdCBhIG1lbWJlciIgfQorKyAgICAg ICAgRU5ECistLSAKKzIuMjcuMAorCgpkaWZmIC0tZ2l0IGEvZ2NjMTEtZm9ydHJhbi1mZGVjLW92 ZXJyaWRlLWtpbmQucGF0Y2ggYi9nY2MxMS1mb3J0cmFuLWZkZWMtb3ZlcnJpZGUta2luZC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWM3YjgzCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjMTEtZm9ydHJhbi1mZGVjLW92ZXJyaWRlLWtpbmQucGF0Y2gKQEAgLTAsMCAr MSw1ODggQEAKK0Zyb20gNzg2ODY5ZmQ2MjgxM2U4MGRhOWI2NTQ1YTI5NWQ1M2MzNjI3NWMxOSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmsgRWdnbGVzdG9uIDxtYXJrZWdnbGVz dG9uQGdjYy5nbnUub3JnPgorRGF0ZTogRnJpLCAyMiBKYW4gMjAyMSAxMzoxMjoxNCArMDAwMAor U3ViamVjdDogW1BBVENIIDA2LzEwXSBBbGxvdyBzdHJpbmcgbGVuZ3RoIGFuZCBraW5kIHRvIGJl IHNwZWNpZmllZCBvbiBhIHBlcgorIHZhcmlhYmxlIGJhc2lzLgorCitUaGlzIGFsbG93cyBraW5k L2xlbmd0aCB0byBiZSBtaXhlZCB3aXRoIGFycmF5IHNwZWNpZmljYXRpb24gaW4KK2RlY2xhcmF0 aW9ucy4KKworZS5nLgorCisgICAgICBJTlRFR0VSKjQgeCoyLCB5KjgKKyAgICAgIENIQVJBQ1RF UiBuYW1lcyoyMCgxMCkKKyAgICAgIFJFQUwgdigxMDApKjgsIHZ2KjQoNTApCisKK1RoZSBwZXIt dmFyaWFibGUgc2l6ZSBvdmVycmlkZXMgdGhlIGtpbmQgb3IgbGVuZ3RoIHNwZWNpZmllZCBmb3Ig dGhlIHR5cGUuCisKK1VzZSAtZmRlYy1vdmVycmlkZS1raW5kIHRvIGVuYWJsZS4gQWxzbyBlbmFi bGVkIGJ5IC1mZGVjLgorCitOb3RlOiB0aGlzIGZlYXR1cmUgaXMgYSBtZXJnZXIgb2YgdHdvIHBy ZXZpb3VzbHkgc2VwYXJhdGUgZmVhdHVyZXMuCisKK05vdyBhY2NlcHRzIG5hbWVkIGNvbnN0YW50 cyBhcyBraW5kIHBhcmFtZXRlcnM6CisKKyAgICAgIElOVEVHRVIgQQorICAgICAgUEFSQU1FVEVS IChBPTIpCisgICAgICBJTlRFR0VSIEIqKEEpCisKK0NvbnRyaWJ1dGVkIGJ5IE1hcmsgRWdnbGVz dG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorCitOb3cgcmVqZWN0cyBpbnZhbGlk IGtpbmQgcGFyYW1ldGVycyBhbmQgcHJpbnRzIGVycm9yIG1lc3NhZ2VzOgorCisgICAgICBJTlRF R0VSIFgqMworCitjYXVzZWQgYW4gaW50ZXJuYWwgY29tcGlsZXIgZXJyb3IuCisKK0NvbnRyaWJ1 dGVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorLS0t CisgZ2NjL2ZvcnRyYW4vZGVjbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU2ICsr KysrKysrKysrKysrLS0tLQorIGdjYy9mb3J0cmFuL2xhbmcub3B0ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArCisgZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKKyAuLi4vZGVjX21peGVkX2NoYXJfYXJyYXlfZGVjbGFyYXRpb25fMS5m ICAgICAgfCAgMTMgKysKKyAuLi4vZGVjX21peGVkX2NoYXJfYXJyYXlfZGVjbGFyYXRpb25fMi5m ICAgICAgfCAgMTMgKysKKyAuLi4vZGVjX21peGVkX2NoYXJfYXJyYXlfZGVjbGFyYXRpb25fMy5m ICAgICAgfCAgMTMgKysKKyAuLi4vZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFyaWFibGVfMS5m ICAgICAgfCAgMzEgKysrKworIC4uLi9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV8y LmYgICAgICB8ICAzMSArKysrCisgLi4uL2dmb3J0cmFuLmRnL2RlY19zcGVjX2luX3ZhcmlhYmxl XzMuZiAgICAgIHwgIDMxICsrKysKKyAuLi4vZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFyaWFi bGVfNC5mICAgICAgfCAgMTQgKysKKyAuLi4vZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFyaWFi bGVfNS5mICAgICAgfCAgMTkgKysrCisgLi4uL2dmb3J0cmFuLmRnL2RlY19zcGVjX2luX3Zhcmlh YmxlXzYuZiAgICAgIHwgIDE5ICsrKworIC4uLi9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJp YWJsZV83LmYgICAgICB8ICAxNSArKworIC4uLi9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJp YWJsZV84LmYgICAgICB8ICAxNCArKworIDE0IGZpbGVzIGNoYW5nZWQsIDM0MCBpbnNlcnRpb25z KCspLCAzNCBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9kZWNfbWl4ZWRfY2hhcl9hcnJheV9kZWNsYXJhdGlvbl8xLmYKKyBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfbWl4ZWRfY2hhcl9hcnJh eV9kZWNsYXJhdGlvbl8yLmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9kZWNfbWl4ZWRfY2hhcl9hcnJheV9kZWNsYXJhdGlvbl8zLmYKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV8x LmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3Bl Y19pbl92YXJpYWJsZV8yLmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV8zLmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV80LmYKKyBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJs ZV81LmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNf c3BlY19pbl92YXJpYWJsZV82LmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV83LmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV84LmYKKworZGlm ZiAtLWdpdCBhL2djYy9mb3J0cmFuL2RlY2wuYyBiL2djYy9mb3J0cmFuL2RlY2wuYworaW5kZXgg NWM4YzFiNzk4MWIuLmY3ZGM5ZDgyNjNkIDEwMDY0NAorLS0tIGEvZ2NjL2ZvcnRyYW4vZGVjbC5j CisrKysgYi9nY2MvZm9ydHJhbi9kZWNsLmMKK0BAIC0xMjEzLDYgKzEyMTMsNTQgQEAgc3ludGF4 OgorICAgcmV0dXJuIE1BVENIX0VSUk9SOworIH0KKyAKKysvKiBUaGlzIG1hdGNoZXMgdGhlIG5v bnN0YW5kYXJkIGtpbmQgZ2l2ZW4gYWZ0ZXIgYSB2YXJpYWJsZSBuYW1lLCBsaWtlOgorKyAgIElO VEVHRVIgeCoyLCB5KjQKKysgICBUaGUgcGVyLXZhcmlhYmxlIGtpbmQgd2lsbCBvdmVycmlkZSBh bnkga2luZCBnaXZlbiBpbiB0aGUgdHlwZQorKyAgIGRlY2xhcmF0aW9uLgorKyovCisrCisrc3Rh dGljIG1hdGNoCisrbWF0Y2hfcGVyX3N5bWJvbF9raW5kIChpbnQgKmxlbmd0aCkKKyt7CisrICBt YXRjaCBtOworKyAgZ2ZjX2V4cHIgKmV4cHIgPSBOVUxMOworKworKyAgbSA9IGdmY19tYXRjaF9j aGFyICgnKicpOworKyAgaWYgKG0gIT0gTUFUQ0hfWUVTKQorKyAgICByZXR1cm4gbTsKKysKKysg IG0gPSBnZmNfbWF0Y2hfc21hbGxfbGl0ZXJhbF9pbnQgKGxlbmd0aCwgTlVMTCk7CisrICBpZiAo bSA9PSBNQVRDSF9ZRVMgfHwgbSA9PSBNQVRDSF9FUlJPUikKKysgICAgcmV0dXJuIG07CisrCisr ICBpZiAoZ2ZjX21hdGNoX2NoYXIgKCcoJykgPT0gTUFUQ0hfTk8pCisrICAgIHJldHVybiBNQVRD SF9FUlJPUjsKKysKKysgIG0gPSBnZmNfbWF0Y2hfZXhwciAoJmV4cHIpOworKyAgaWYgKG0gPT0g TUFUQ0hfWUVTKQorKyAgICB7CisrICAgICAgbSA9IE1BVENIX0VSUk9SOyAvLyBBc3N1bWUgZXJy b3IKKysgICAgICBpZiAoZ2ZjX2V4cHJfY2hlY2tfdHlwZWQgKGV4cHIsIGdmY19jdXJyZW50X25z LCBmYWxzZSkpCisrCXsKKysJICBpZiAoKGV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX0NPTlNUQU5U KQorKwkgICAgICAmJiAoZXhwci0+dHMudHlwZSA9PSBCVF9JTlRFR0VSKSkKKysJICAgIHsKKysJ ICAgICAgKmxlbmd0aCA9IG1wel9nZXRfc2koZXhwci0+dmFsdWUuaW50ZWdlcik7CisrCSAgICAg IG0gPSBNQVRDSF9ZRVM7CisrCSAgICB9CisrCX0KKysKKysJaWYgKG0gPT0gTUFUQ0hfWUVTKQor KwkgIHsKKysJICAgIGlmIChnZmNfbWF0Y2hfY2hhciAoJyknKSA9PSBNQVRDSF9OTykKKysJICAg ICAgIG0gPSBNQVRDSF9FUlJPUjsKKysgIH0KKysgICAgIH0KKysKKysgIGlmIChleHByICE9IE5V TEwpCisrICAgICBnZmNfZnJlZV9leHByIChleHByKTsKKysgIHJldHVybiBtOworK30KKyAKKyAv KiBTcGVjaWFsIHN1YnJvdXRpbmUgZm9yIGZpbmRpbmcgYSBzeW1ib2wuICBDaGVjayBpZiB0aGUg bmFtZSBpcyBmb3VuZAorICAgIGluIHRoZSBjdXJyZW50IG5hbWUgc3BhY2UuICBJZiBub3QsIGFu ZCB3ZSdyZSBjb21waWxpbmcgYSBmdW5jdGlvbiBvcgorQEAgLTI0NDMsNiArMjQ5MSwzNSBAQCBj aGVja19mdW5jdGlvbl9uYW1lIChjaGFyICpuYW1lKQorIH0KKyAKKyAKKytzdGF0aWMgbWF0Y2gK KyttYXRjaF9jaGFyYWN0ZXJfbGVuZ3RoX2NsYXVzZSAoZ2ZjX2NoYXJsZW4gKipjbCwgYm9vbCAq Y2xfZGVmZXJyZWQsIGludCBlbGVtKQorK3sKKysgIGdmY19leHByKiBjaGFyX2xlbjsKKysgIGNo YXJfbGVuID0gTlVMTDsKKysKKysgIG1hdGNoIG0gPSBtYXRjaF9jaGFyX2xlbmd0aCAoJmNoYXJf bGVuLCBjbF9kZWZlcnJlZCwgZmFsc2UpOworKyAgaWYgKG0gPT0gTUFUQ0hfWUVTKQorKyAgICB7 CisrICAgICAgKmNsID0gZ2ZjX25ld19jaGFybGVuIChnZmNfY3VycmVudF9ucywgTlVMTCk7Cisr ICAgICAgKCpjbCktPmxlbmd0aCA9IGNoYXJfbGVuOworKyAgICB9CisrICBlbHNlIGlmIChtID09 IE1BVENIX05PKQorKyAgICB7CisrICAgICAgaWYgKGVsZW0gPiAxCisrCSAgJiYgKGN1cnJlbnRf dHMudS5jbC0+bGVuZ3RoID09IE5VTEwKKysJICAgICAgfHwgY3VycmVudF90cy51LmNsLT5sZW5n dGgtPmV4cHJfdHlwZSAhPSBFWFBSX0NPTlNUQU5UKSkKKysJeworKwkgICpjbCA9IGdmY19uZXdf Y2hhcmxlbiAoZ2ZjX2N1cnJlbnRfbnMsIE5VTEwpOworKwkgICgqY2wpLT5sZW5ndGggPSBnZmNf Y29weV9leHByIChjdXJyZW50X3RzLnUuY2wtPmxlbmd0aCk7CisrCX0KKysgICAgICBlbHNlCisr ICAgICAgKmNsID0gY3VycmVudF90cy51LmNsOworKworKyAgICAgICpjbF9kZWZlcnJlZCA9IGN1 cnJlbnRfdHMuZGVmZXJyZWQ7CisrICAgIH0KKysgIHJldHVybiBtOworK30KKysKKyAvKiBNYXRj aCBhIHZhcmlhYmxlIG5hbWUgd2l0aCBhbiBvcHRpb25hbCBpbml0aWFsaXplci4gIFdoZW4gdGhp cworICAgIHN1YnJvdXRpbmUgaXMgY2FsbGVkLCBhIHZhcmlhYmxlIGlzIGV4cGVjdGVkIHRvIGJl IHBhcnNlZCBuZXh0LgorICAgIERlcGVuZGluZyBvbiB3aGF0IGlzIGhhcHBlbmluZyBhdCB0aGUg bW9tZW50LCB1cGRhdGVzIGVpdGhlciB0aGUKK0BAIC0yNDUzLDcgKzI1MzAsNyBAQCB2YXJpYWJs ZV9kZWNsIChpbnQgZWxlbSkKKyB7CisgICBjaGFyIG5hbWVbR0ZDX01BWF9TWU1CT0xfTEVOICsg MV07CisgICBzdGF0aWMgdW5zaWduZWQgaW50IGZpbGxfaWQgPSAwOworLSAgZ2ZjX2V4cHIgKmlu aXRpYWxpemVyLCAqY2hhcl9sZW47CisrICBnZmNfZXhwciAqaW5pdGlhbGl6ZXI7CisgICBnZmNf YXJyYXlfc3BlYyAqYXM7CisgICBnZmNfYXJyYXlfc3BlYyAqY3BfYXM7IC8qIEV4dHJhIGNvcHkg Zm9yIENyYXkgUG9pbnRlZXMuICAqLworICAgZ2ZjX2NoYXJsZW4gKmNsOworQEAgLTI0NjIsMTEg KzI1MzksMTUgQEAgdmFyaWFibGVfZGVjbCAoaW50IGVsZW0pCisgICBtYXRjaCBtOworICAgYm9v bCB0OworICAgZ2ZjX3N5bWJvbCAqc3ltOworKyAgbWF0Y2ggY2xfbWF0Y2g7CisrICBtYXRjaCBr aW5kX21hdGNoOworKyAgaW50IG92ZXJyaWRkZW5fa2luZDsKKyAgIGNoYXIgYzsKKyAKKyAgIGlu aXRpYWxpemVyID0gTlVMTDsKKyAgIGFzID0gTlVMTDsKKyAgIGNwX2FzID0gTlVMTDsKKysgIGtp bmRfbWF0Y2ggPSBNQVRDSF9OTzsKKyAKKyAgIC8qIFdoZW4gd2UgZ2V0IGhlcmUsIHdlJ3ZlIGp1 c3QgbWF0Y2hlZCBhIGxpc3Qgb2YgYXR0cmlidXRlcyBhbmQKKyAgICAgIG1heWJlIGEgdHlwZSBh bmQgYSBkb3VibGUgY29sb24uICBUaGUgbmV4dCB0aGluZyB3ZSBleHBlY3QgdG8gc2VlCitAQCAt MjUxOSw2ICsyNjAwLDI4IEBAIHZhcmlhYmxlX2RlY2wgKGludCBlbGVtKQorIAorICAgdmFyX2xv Y3VzID0gZ2ZjX2N1cnJlbnRfbG9jdXM7CisgCisrCisrICBjbCA9IE5VTEw7CisrICBjbF9kZWZl cnJlZCA9IGZhbHNlOworKyAgY2xfbWF0Y2ggPSBNQVRDSF9OTzsKKysKKysgIC8qIENoZWNrIGZv ciBhIGNoYXJhY3RlciBsZW5ndGggY2xhdXNlIGJlZm9yZSBhbiBhcnJheSBjbGF1c2UgKi8KKysg IGlmIChmbGFnX2RlY19vdmVycmlkZV9raW5kKQorKyAgICB7CisrICAgICAgaWYgKGN1cnJlbnRf dHMudHlwZSA9PSBCVF9DSEFSQUNURVIpCisrCXsKKysJICBjbF9tYXRjaCA9IG1hdGNoX2NoYXJh Y3Rlcl9sZW5ndGhfY2xhdXNlICgmY2wsICZjbF9kZWZlcnJlZCwgZWxlbSk7CisrCSAgaWYgKGNs X21hdGNoID09IE1BVENIX0VSUk9SKQorKwkgICAgZ290byBjbGVhbnVwOworKwl9CisrICAgICAg ZWxzZQorKwl7CisrCSAga2luZF9tYXRjaCA9IG1hdGNoX3Blcl9zeW1ib2xfa2luZCAoJm92ZXJy aWRkZW5fa2luZCk7CisrCSAgaWYgKGtpbmRfbWF0Y2ggPT0gTUFUQ0hfRVJST1IpCisrCSAgICBn b3RvIGNsZWFudXA7CisrCX0KKysgICAgfQorKworICAgLyogTm93IHdlIGNvdWxkIHNlZSB0aGUg b3B0aW9uYWwgYXJyYXkgc3BlYy4gb3IgY2hhcmFjdGVyIGxlbmd0aC4gICovCisgICBtID0gZ2Zj X21hdGNoX2FycmF5X3NwZWMgKCZhcywgdHJ1ZSwgdHJ1ZSk7CisgICBpZiAobSA9PSBNQVRDSF9F UlJPUikKK0BAIC0yNjY3LDQwICsyNzcwLDEyIEBAIHZhcmlhYmxlX2RlY2wgKGludCBlbGVtKQor IAl9CisgICAgIH0KKyAKKy0gIGNoYXJfbGVuID0gTlVMTDsKKy0gIGNsID0gTlVMTDsKKy0gIGNs X2RlZmVycmVkID0gZmFsc2U7CistCistICBpZiAoY3VycmVudF90cy50eXBlID09IEJUX0NIQVJB Q1RFUikKKysgIC8qIFNlY29uZCBjaGFuY2UgZm9yIGEgY2hhcmFjdGVyIGxlbmd0aCBjbGF1c2Ug Ki8KKysgIGlmIChjbF9tYXRjaCA9PSBNQVRDSF9OTyAmJiBjdXJyZW50X3RzLnR5cGUgPT0gQlRf Q0hBUkFDVEVSKQorICAgICB7CistICAgICAgc3dpdGNoIChtYXRjaF9jaGFyX2xlbmd0aCAoJmNo YXJfbGVuLCAmY2xfZGVmZXJyZWQsIGZhbHNlKSkKKy0JeworLQljYXNlIE1BVENIX1lFUzoKKy0J ICBjbCA9IGdmY19uZXdfY2hhcmxlbiAoZ2ZjX2N1cnJlbnRfbnMsIE5VTEwpOworLQorLQkgIGNs LT5sZW5ndGggPSBjaGFyX2xlbjsKKy0JICBicmVhazsKKy0KKy0JLyogTm9uLWNvbnN0YW50IGxl bmd0aHMgbmVlZCB0byBiZSBjb3BpZWQgYWZ0ZXIgdGhlIGZpcnN0CistCSAgIGVsZW1lbnQuICBB bHNvIGNvcHkgYXNzdW1lZCBsZW5ndGhzLiAgKi8KKy0JY2FzZSBNQVRDSF9OTzoKKy0JICBpZiAo ZWxlbSA+IDEKKy0JICAgICAgJiYgKGN1cnJlbnRfdHMudS5jbC0+bGVuZ3RoID09IE5VTEwKKy0J CSAgfHwgY3VycmVudF90cy51LmNsLT5sZW5ndGgtPmV4cHJfdHlwZSAhPSBFWFBSX0NPTlNUQU5U KSkKKy0JICAgIHsKKy0JICAgICAgY2wgPSBnZmNfbmV3X2NoYXJsZW4gKGdmY19jdXJyZW50X25z LCBOVUxMKTsKKy0JICAgICAgY2wtPmxlbmd0aCA9IGdmY19jb3B5X2V4cHIgKGN1cnJlbnRfdHMu dS5jbC0+bGVuZ3RoKTsKKy0JICAgIH0KKy0JICBlbHNlCistCSAgICBjbCA9IGN1cnJlbnRfdHMu dS5jbDsKKy0KKy0JICBjbF9kZWZlcnJlZCA9IGN1cnJlbnRfdHMuZGVmZXJyZWQ7CistCistCSAg YnJlYWs7CistCistCWNhc2UgTUFUQ0hfRVJST1I6CistCSAgZ290byBjbGVhbnVwOworLQl9Cisr ICAgICAgbSA9IG1hdGNoX2NoYXJhY3Rlcl9sZW5ndGhfY2xhdXNlICgmY2wsICZjbF9kZWZlcnJl ZCwgZWxlbSk7CisrICAgICAgaWYgKG0gPT0gTUFUQ0hfRVJST1IpCisrCWdvdG8gY2xlYW51cDsK KyAgICAgfQorIAorICAgLyogVGhlIGR1bW15IGFyZ3VtZW50cyBhbmQgcmVzdWx0IG9mIHRoZSBh YnJldmlhdGVkIGZvcm0gb2YgTU9EVUxFCitAQCAtMjgwMiw2ICsyODc3LDE5IEBAIHZhcmlhYmxl X2RlY2wgKGludCBlbGVtKQorICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgfQorIAorKyAgaWYg KGtpbmRfbWF0Y2ggPT0gTUFUQ0hfWUVTKQorKyAgICB7CisrICAgICAgZ2ZjX2ZpbmRfc3ltYm9s IChuYW1lLCBnZmNfY3VycmVudF9ucywgMSwgJnN5bSk7CisrICAgICAgLyogc3ltICptdXN0KiBi ZSBmb3VuZCBhdCB0aGlzIHBvaW50ICovCisrICAgICAgc3ltLT50cy5raW5kID0gb3ZlcnJpZGRl bl9raW5kOworKyAgICAgIGlmIChnZmNfdmFsaWRhdGVfa2luZCAoc3ltLT50cy50eXBlLCBzeW0t PnRzLmtpbmQsIHRydWUpIDwgMCkKKysJeworKwkgIGdmY19lcnJvciAoIktpbmQgJWQgbm90IHN1 cHBvcnRlZCBmb3IgdHlwZSAlcyBhdCAlQyIsCisrCQkgICAgIHN5bS0+dHMua2luZCwgZ2ZjX2Jh c2ljX3R5cGVuYW1lIChzeW0tPnRzLnR5cGUpKTsKKysJICByZXR1cm4gTUFUQ0hfRVJST1I7Cisr CX0KKysgICAgfQorKworICAgaWYgKCFjaGVja19mdW5jdGlvbl9uYW1lIChuYW1lKSkKKyAgICAg eworICAgICAgIG0gPSBNQVRDSF9FUlJPUjsKK2RpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9sYW5n Lm9wdCBiL2djYy9mb3J0cmFuL2xhbmcub3B0CitpbmRleCAyNWNjOTQ4Njk5Yi4uNGEyNjllYmIy MmQgMTAwNjQ0CistLS0gYS9nY2MvZm9ydHJhbi9sYW5nLm9wdAorKysrIGIvZ2NjL2ZvcnRyYW4v bGFuZy5vcHQKK0BAIC00OTMsNiArNDkzLDEwIEBAIGZkZWMtbm9uLWludGVnZXItaW5kZXgKKyBG b3J0cmFuIFZhcihmbGFnX2RlY19ub25faW50ZWdlcl9pbmRleCkKKyBFbmFibGUgc3VwcG9ydCBm b3Igbm9uLWludGVnZXIgc3Vic3RyaW5nIGluZGV4ZXMuCisgCisrZmRlYy1vdmVycmlkZS1raW5k CisrRm9ydHJhbiBWYXIoZmxhZ19kZWNfb3ZlcnJpZGVfa2luZCkKKytFbmFibGUgc3VwcG9ydCBm b3IgcGVyIHZhcmlhYmxlIGtpbmQgc3BlY2lmaWNhdGlvbi4KKysKKyBmZGVjLW9sZC1pbml0Cisg Rm9ydHJhbiBWYXIoZmxhZ19kZWNfb2xkX2luaXQpCisgRW5hYmxlIHN1cHBvcnQgZm9yIG9sZCBz dHlsZSBpbml0aWFsaXplcnMgaW4gZGVyaXZlZCB0eXBlcy4KK2RpZmYgLS1naXQgYS9nY2MvZm9y dHJhbi9vcHRpb25zLmMgYi9nY2MvZm9ydHJhbi9vcHRpb25zLmMKK2luZGV4IGQ2YmQzNmMzYThh Li5lZGJhYjQ4M2IzNiAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL29wdGlvbnMuYworKysrIGIv Z2NjL2ZvcnRyYW4vb3B0aW9ucy5jCitAQCAtODAsNiArODAsNyBAQCBzZXRfZGVjX2ZsYWdzIChp bnQgdmFsdWUpCisgICBTRVRfQklURkxBRyAoZmxhZ19kZWNfZHVwbGljYXRlcywgdmFsdWUsIHZh bHVlKTsKKyAgIFNFVF9CSVRGTEFHIChmbGFnX2RlY19ub25faW50ZWdlcl9pbmRleCwgdmFsdWUs IHZhbHVlKTsKKyAgIFNFVF9CSVRGTEFHIChmbGFnX2RlY19vbGRfaW5pdCwgdmFsdWUsIHZhbHVl KTsKKysgIFNFVF9CSVRGTEFHIChmbGFnX2RlY19vdmVycmlkZV9raW5kLCB2YWx1ZSwgdmFsdWUp OworIH0KKyAKKyAvKiBGaW5hbGl6ZSBERUMgZmxhZ3MuICAqLworZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX21peGVkX2NoYXJfYXJyYXlfZGVjbGFyYXRpb25fMS5m IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfbWl4ZWRfY2hhcl9hcnJheV9kZWNsYXJh dGlvbl8xLmYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uNzA2ZWE0 MTEyYTQKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVj X21peGVkX2NoYXJfYXJyYXlfZGVjbGFyYXRpb25fMS5mCitAQCAtMCwwICsxLDEzIEBACisrISB7 IGRnLWRvIHJ1biB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjIiB9CisrIQorKyEgVGVzdCBjaGFy YWN0ZXIgZGVjbGFyYXRpb24gd2l0aCBtaXhlZCBzdHJpbmcgbGVuZ3RoIGFuZCBhcnJheSBzcGVj aWZpY2F0aW9uCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgSmltIE1hY0FydGh1ciA8amltLm1hY2Fy dGh1ckBjb2RldGhpbmsuY28udWs+CisrISBNb2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFy ay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrICAgICAgIFBST0dSQU0gY2hhcmFjdGVy X2RlY2xhcmF0aW9uCisrICAgICAgICAgIENIQVJBQ1RFUiBBU1BFQ19TTEVOR1RIKjIgKDUpIC8n MDEnLCcwMicsJzAzJywnMDQnLCcwNScvCisrICAgICAgICAgIENIQVJBQ1RFUiBTTEVOR1RIX0FT UEVDKDUpKjIgLycwMScsJzAyJywnMDMnLCcwNCcsJzA1Jy8KKysgICAgICAgICAgaWYgKEFTUEVD X1NMRU5HVEgoMykuTkUuU0xFTkdUSF9BU1BFQygzKSkgU1RPUCAxCisrICAgICAgICBFTkQKK2Rp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19taXhlZF9jaGFyX2FycmF5 X2RlY2xhcmF0aW9uXzIuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX21peGVkX2No YXJfYXJyYXlfZGVjbGFyYXRpb25fMi5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMDAuLjI2ZDJhY2YwMWRlCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2RlY19taXhlZF9jaGFyX2FycmF5X2RlY2xhcmF0aW9uXzIuZgorQEAgLTAs MCArMSwxMyBAQAorKyEgeyBkZy1kbyBydW4gfQorKyEgeyBkZy1vcHRpb25zICItZmRlYy1vdmVy cmlkZS1raW5kIiB9CisrIQorKyEgVGVzdCBjaGFyYWN0ZXIgZGVjbGFyYXRpb24gd2l0aCBtaXhl ZCBzdHJpbmcgbGVuZ3RoIGFuZCBhcnJheSBzcGVjaWZpY2F0aW9uCisrIQorKyEgQ29udHJpYnV0 ZWQgYnkgSmltIE1hY0FydGh1ciA8amltLm1hY2FydGh1ckBjb2RldGhpbmsuY28udWs+CisrISBN b2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4K KyshCisrICAgICAgICBQUk9HUkFNIGNoYXJhY3Rlcl9kZWNsYXJhdGlvbgorKyAgICAgICAgICBD SEFSQUNURVIgQVNQRUNfU0xFTkdUSCoyICg1KSAvJzAxJywnMDInLCcwMycsJzA0JywnMDUnLwor KyAgICAgICAgICBDSEFSQUNURVIgU0xFTkdUSF9BU1BFQyg1KSoyIC8nMDEnLCcwMicsJzAzJywn MDQnLCcwNScvCisrICAgICAgICAgIGlmIChBU1BFQ19TTEVOR1RIKDMpLk5FLlNMRU5HVEhfQVNQ RUMoMykpIFNUT1AgMQorKyAgICAgICAgRU5ECitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9kZWNfbWl4ZWRfY2hhcl9hcnJheV9kZWNsYXJhdGlvbl8zLmYgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2RlY19taXhlZF9jaGFyX2FycmF5X2RlY2xhcmF0aW9uXzMuZgor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi43NmU0ZjBiZGI5MworLS0t IC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfbWl4ZWRfY2hh cl9hcnJheV9kZWNsYXJhdGlvbl8zLmYKK0BAIC0wLDAgKzEsMTMgQEAKKyshIHsgZGctZG8gY29t cGlsZSB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjLW92ZXJyaWRlLWtpbmQgLWZuby1kZWMtb3Zl cnJpZGUta2luZCIgfQorKyEKKyshIFRlc3QgY2hhcmFjdGVyIGRlY2xhcmF0aW9uIHdpdGggbWl4 ZWQgc3RyaW5nIGxlbmd0aCBhbmQgYXJyYXkgc3BlY2lmaWNhdGlvbgorKyEKKyshIENvbnRyaWJ1 dGVkIGJ5IEppbSBNYWNBcnRodXIgPGppbS5tYWNhcnRodXJAY29kZXRoaW5rLmNvLnVrPgorKyEg TW9kaWZpZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+ CisrIQorKyAgICAgICAgUFJPR1JBTSBjaGFyYWN0ZXJfZGVjbGFyYXRpb24KKysgICAgICAgICAg Q0hBUkFDVEVSIEFTUEVDX1NMRU5HVEgqMiAoNSkgLycwMScsJzAyJywnMDMnLCcwNCcsJzA1Jy8g ISB7IGRnLWVycm9yICJTeW50YXggZXJyb3IiIH0KKysgICAgICAgICAgQ0hBUkFDVEVSIFNMRU5H VEhfQVNQRUMoNSkqMiAvJzAxJywnMDInLCcwMycsJzA0JywnMDUnLworKyAgICAgICAgICBpZiAo QVNQRUNfU0xFTkdUSCgzKS5ORS5TTEVOR1RIX0FTUEVDKDMpKSBTVE9QIDEgISB7IGRnLWVycm9y ICIgT3BlcmFuZHMgb2YgY29tcGFyaXNvbiBvcGVyYXRvciIgfQorKyAgICAgICAgRU5ECitkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV8x LmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zcGVjX2luX3ZhcmlhYmxlXzEuZgor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi5lZGQwZjU4NzRiNworLS0t IC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92 YXJpYWJsZV8xLmYKK0BAIC0wLDAgKzEsMzEgQEAKKyshIHsgZGctZG8gcnVuIH0KKyshIHsgZGct b3B0aW9ucyAiLWZkZWMiIH0KKyshCisrISBUZXN0IGtpbmQgc3BlY2lmaWNhdGlvbiBpbiB2YXJp YWJsZSBub3QgaW4gdHlwZQorKyEKKyshIENvbnRyaWJ1dGVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxt YXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAgICAgIHByb2dyYW0gc3BlY19p bl92YXIKKysgICAgICAgICAgaW50ZWdlcio4ICBhaSoxLCBiaSo0LCBjaQorKyAgICAgICAgICBy ZWFsKjQgYXIqNCwgYnIqOCwgY3IKKysKKysgICAgICAgICAgYWkgPSAxCisrICAgICAgICAgIGFy ID0gMS4wCisrICAgICAgICAgIGJpID0gMgorKyAgICAgICAgICBiciA9IDIuMAorKyAgICAgICAg ICBjaSA9IDMKKysgICAgICAgICAgY3IgPSAzLjAKKysKKysgICAgICAgICAgaWYgKGFpIC5uZS4g MSkgc3RvcCAxCisrICAgICAgICAgIGlmIChhYnMoYXIgLSAxLjApID4gMS4wRC02KSBzdG9wIDIK KysgICAgICAgICAgaWYgKGJpIC5uZS4gMikgc3RvcCAzCisrICAgICAgICAgIGlmIChhYnMoYnIg LSAyLjApID4gMS4wRC02KSBzdG9wIDQKKysgICAgICAgICAgaWYgKGNpIC5uZS4gMykgc3RvcCA1 CisrICAgICAgICAgIGlmIChhYnMoY3IgLSAzLjApID4gMS4wRC02KSBzdG9wIDYKKysgICAgICAg ICAgaWYgKGtpbmQoYWkpIC5uZS4gMSkgc3RvcCA3CisrICAgICAgICAgIGlmIChraW5kKGFyKSAu bmUuIDQpIHN0b3AgOAorKyAgICAgICAgICBpZiAoa2luZChiaSkgLm5lLiA0KSBzdG9wIDkKKysg ICAgICAgICAgaWYgKGtpbmQoYnIpIC5uZS4gOCkgc3RvcCAxMAorKyAgICAgICAgICBpZiAoa2lu ZChjaSkgLm5lLiA4KSBzdG9wIDExCisrICAgICAgICAgIGlmIChraW5kKGNyKSAubmUuIDQpIHN0 b3AgMTIKKysgICAgICAgIGVuZAorZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZGVjX3NwZWNfaW5fdmFyaWFibGVfMi5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9k ZWNfc3BlY19pbl92YXJpYWJsZV8yLmYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwMDAwMC4uYmZhYmE1ODRkYmIKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFyaWFibGVfMi5mCitAQCAtMCwwICsxLDMxIEBACisr ISB7IGRnLWRvIHJ1biB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjLW92ZXJyaWRlLWtpbmQiIH0K KyshCisrISBUZXN0IGtpbmQgc3BlY2lmaWNhdGlvbiBpbiB2YXJpYWJsZSBub3QgaW4gdHlwZQor KyEKKyshIENvbnRyaWJ1dGVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2Rl dGhpbmsuY29tPgorKyEKKysgICAgICAgIHByb2dyYW0gc3BlY19pbl92YXIKKysgICAgICAgICAg aW50ZWdlcio4ICBhaSoxLCBiaSo0LCBjaQorKyAgICAgICAgICByZWFsKjQgYXIqNCwgYnIqOCwg Y3IKKysKKysgICAgICAgICAgYWkgPSAxCisrICAgICAgICAgIGFyID0gMS4wCisrICAgICAgICAg IGJpID0gMgorKyAgICAgICAgICBiciA9IDIuMAorKyAgICAgICAgICBjaSA9IDMKKysgICAgICAg ICAgY3IgPSAzLjAKKysKKysgICAgICAgICAgaWYgKGFpIC5uZS4gMSkgc3RvcCAxCisrICAgICAg ICAgIGlmIChhYnMoYXIgLSAxLjApID4gMS4wRC02KSBzdG9wIDIKKysgICAgICAgICAgaWYgKGJp IC5uZS4gMikgc3RvcCAzCisrICAgICAgICAgIGlmIChhYnMoYnIgLSAyLjApID4gMS4wRC02KSBz dG9wIDQKKysgICAgICAgICAgaWYgKGNpIC5uZS4gMykgc3RvcCA1CisrICAgICAgICAgIGlmIChh YnMoY3IgLSAzLjApID4gMS4wRC02KSBzdG9wIDYKKysgICAgICAgICAgaWYgKGtpbmQoYWkpIC5u ZS4gMSkgc3RvcCA3CisrICAgICAgICAgIGlmIChraW5kKGFyKSAubmUuIDQpIHN0b3AgOAorKyAg ICAgICAgICBpZiAoa2luZChiaSkgLm5lLiA0KSBzdG9wIDkKKysgICAgICAgICAgaWYgKGtpbmQo YnIpIC5uZS4gOCkgc3RvcCAxMAorKyAgICAgICAgICBpZiAoa2luZChjaSkgLm5lLiA4KSBzdG9w IDExCisrICAgICAgICAgIGlmIChraW5kKGNyKSAubmUuIDQpIHN0b3AgMTIKKysgICAgICAgIGVu ZAorZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFy aWFibGVfMy5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJs ZV8zLmYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uNWZmNDM0ZTc0 NjYKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3Nw ZWNfaW5fdmFyaWFibGVfMy5mCitAQCAtMCwwICsxLDMxIEBACisrISB7IGRnLWRvIGNvbXBpbGUg fQorKyEgeyBkZy1vcHRpb25zICItZmRlYyAtZm5vLWRlYy1vdmVycmlkZS1raW5kIiB9CisrIQor KyEgVGVzdCBraW5kIHNwZWNpZmljYXRpb24gaW4gdmFyaWFibGUgbm90IGluIHR5cGUKKyshCisr ISBDb250cmlidXRlZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5r LmNvbT4KKyshCisrICAgICAgICBwcm9ncmFtIHNwZWNfaW5fdmFyCisrICAgICAgICAgIGludGVn ZXIqOCAgYWkqMSwgYmkqNCwgY2kgISB7IGRnLWVycm9yICJTeW50YXggZXJyb3IiIH0KKysgICAg ICAgICAgcmVhbCo0IGFyKjQsIGJyKjgsIGNyICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9 CisrCisrICAgICAgICAgIGFpID0gMQorKyAgICAgICAgICBhciA9IDEuMAorKyAgICAgICAgICBi aSA9IDIKKysgICAgICAgICAgYnIgPSAyLjAKKysgICAgICAgICAgY2kgPSAzCisrICAgICAgICAg IGNyID0gMy4wCisrCisrICAgICAgICAgIGlmIChhaSAubmUuIDEpIHN0b3AgMQorKyAgICAgICAg ICBpZiAoYWJzKGFyIC0gMS4wKSA+IDEuMEQtNikgc3RvcCAyCisrICAgICAgICAgIGlmIChiaSAu bmUuIDIpIHN0b3AgMworKyAgICAgICAgICBpZiAoYWJzKGJyIC0gMi4wKSA+IDEuMEQtNikgc3Rv cCA0CisrICAgICAgICAgIGlmIChjaSAubmUuIDMpIHN0b3AgNQorKyAgICAgICAgICBpZiAoYWJz KGNyIC0gMy4wKSA+IDEuMEQtNikgc3RvcCA2CisrICAgICAgICAgIGlmIChraW5kKGFpKSAubmUu IDEpIHN0b3AgNworKyAgICAgICAgICBpZiAoa2luZChhcikgLm5lLiA0KSBzdG9wIDgKKysgICAg ICAgICAgaWYgKGtpbmQoYmkpIC5uZS4gNCkgc3RvcCA5CisrICAgICAgICAgIGlmIChraW5kKGJy KSAubmUuIDgpIHN0b3AgMTAKKysgICAgICAgICAgaWYgKGtpbmQoY2kpIC5uZS4gOCkgc3RvcCAx MQorKyAgICAgICAgICBpZiAoa2luZChjcikgLm5lLiA0KSBzdG9wIDEyCisrICAgICAgICBlbmQK K2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zcGVjX2luX3Zhcmlh YmxlXzQuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFyaWFibGVf NC5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLmMwMTk4MGU4Yjlk CistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zcGVj X2luX3ZhcmlhYmxlXzQuZgorQEAgLTAsMCArMSwxNCBAQAorKyEgeyBkZy1kbyBjb21waWxlIH0K KyshCisrISBUZXN0IGtpbmQgc3BlY2lmaWNhdGlvbiBpbiB2YXJpYWJsZSBub3QgaW4gdHlwZS4g VGhlIHBlciB2YXJpYWJsZQorKyEga2luZCBzcGVjaWZpY2F0aW9uIGlzIG5vdCBlbmFibGVkIHNv IHRoZXNlIHNob3VsZCBmYWlsCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgTWFyayBFZ2dsZXN0b24g PG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CisrIQorKyAgICAgICAgcHJvZ3JhbSBzcGVj X2luX3ZhcgorKyAgICAgICAgICBpbnRlZ2VyIGEKKysgICAgICAgICAgcGFyYW1ldGVyKGE9MikK KysgICAgICAgICAgaW50ZWdlciBiKihhKSAhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciIgfQor KyAgICAgICAgICByZWFsIGMqKDgpICAgICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9Cisr ICAgICAgICAgIGxvZ2ljYWwgZCoxXzEgISB7IGRnLWVycm9yICJTeW50YXggZXJyb3IiIH0KKysg ICAgICAgIGVuZAorZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3Nw ZWNfaW5fdmFyaWFibGVfNS5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19p bl92YXJpYWJsZV81LmYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4u ZTJmMzlkYTNmNGYKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZGVjX3NwZWNfaW5fdmFyaWFibGVfNS5mCitAQCAtMCwwICsxLDE5IEBACisrISB7IGRnLWRv IHJ1biB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjLW92ZXJyaWRlLWtpbmQiIH0KKyshCisrISBU ZXN0IGtpbmQgc3BlY2lmaWNhdGlvbiBpbiB2YXJpYWJsZSBub3QgaW4gdHlwZQorKyEKKyshIENv bnRyaWJ1dGVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29t PgorKyEKKysgICAgICAgIHByb2dyYW0gc3BlY19pbl92YXIKKysgICAgICAgICAgaW50ZWdlciBh CisrICAgICAgICAgIHBhcmFtZXRlcihhPTIpCisrICAgICAgICAgIGludGVnZXIgYiooYSkKKysg ICAgICAgICAgcmVhbCBjKig4KQorKyAgICAgICAgICBsb2dpY2FsIGQqKDFfMSkKKysgICAgICAg ICAgY2hhcmFjdGVyIGUqKGEpCisrICAgICAgICAgIGlmIChraW5kKGIpLm5lLjIpIHN0b3AgMQor KyAgICAgICAgICBpZiAoa2luZChjKS5uZS44KSBzdG9wIDIKKysgICAgICAgICAgaWYgKGtpbmQo ZCkubmUuMSkgc3RvcCAzCisrICAgICAgICAgIGlmIChsZW4oZSkubmUuMikgc3RvcCA0CisrICAg ICAgICBlbmQKK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zcGVj X2luX3ZhcmlhYmxlXzYuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5f dmFyaWFibGVfNi5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjU2 OTc0Nzg3NGUzCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2RlY19zcGVjX2luX3ZhcmlhYmxlXzYuZgorQEAgLTAsMCArMSwxOSBAQAorKyEgeyBkZy1kbyBy dW4gfQorKyEgeyBkZy1vcHRpb25zICItZmRlYyIgfQorKyEKKyshIFRlc3Qga2luZCBzcGVjaWZp Y2F0aW9uIGluIHZhcmlhYmxlIG5vdCBpbiB0eXBlCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgTWFy ayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CisrIQorKyAgICAgICAg cHJvZ3JhbSBzcGVjX2luX3ZhcgorKyAgICAgICAgICBpbnRlZ2VyIGEKKysgICAgICAgICAgcGFy YW1ldGVyKGE9MikKKysgICAgICAgICAgaW50ZWdlciBiKihhKQorKyAgICAgICAgICByZWFsIGMq KDgpCisrICAgICAgICAgIGxvZ2ljYWwgZCooMV8xKQorKyAgICAgICAgICBjaGFyYWN0ZXIgZSoo YSkKKysgICAgICAgICAgaWYgKGtpbmQoYikubmUuMikgc3RvcCAxCisrICAgICAgICAgIGlmIChr aW5kKGMpLm5lLjgpIHN0b3AgMgorKyAgICAgICAgICBpZiAoa2luZChkKS5uZS4xKSBzdG9wIDMK KysgICAgICAgICAgaWYgKGxlbihlKS5uZS4yKSBzdG9wIDQKKysgICAgICAgIGVuZAorZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFyaWFibGVfNy5m IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV83LmYKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uYjk3NWJmZDE1YzUKKy0tLSAv ZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFy aWFibGVfNy5mCitAQCAtMCwwICsxLDE1IEBACisrISB7IGRnLWRvIGNvbXBpbGUgfQorKyEgeyBk Zy1vcHRpb25zICItZmRlYyAtZm5vLWRlYy1vdmVycmlkZS1raW5kIiB9CisrIQorKyEgVGVzdCBr aW5kIHNwZWNpZmljYXRpb24gaW4gdmFyaWFibGUgbm90IGluIHR5cGUgYXMgdGhlIHBlciB2YXJp YWJsZQorKyEga2luZCBzcGVjaWZpY2F0aW9uIGlzIG5vdCBlbmFibGVzIHRoZXNlIHNob3VsZCBm YWlsCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9u QGNvZGV0aGluay5jb20+CisrIQorKyAgICAgICAgcHJvZ3JhbSBzcGVjX2luX3ZhcgorKyAgICAg ICAgICBpbnRlZ2VyIGEKKysgICAgICAgICAgcGFyYW1ldGVyKGE9MikKKysgICAgICAgICAgaW50 ZWdlciBiKihhKSAhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciIgfQorKyAgICAgICAgICByZWFs IGMqKDgpICAgICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIiB9CisrICAgICAgICAgIGxvZ2lj YWwgZCoxXzEgISB7IGRnLWVycm9yICJTeW50YXggZXJyb3IiIH0KKysgICAgICAgIGVuZAorZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5fdmFyaWFibGVf OC5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3BlY19pbl92YXJpYWJsZV84LmYK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uODU3MzJlMGJkODUKKy0t LSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3NwZWNfaW5f dmFyaWFibGVfOC5mCitAQCAtMCwwICsxLDE0IEBACisrISB7IGRnLWRvIGNvbXBpbGUgfQorKyEg eyBkZy1vcHRpb25zICItZmRlYyIgfQorKyEKKyshIENoZWNrIHRoYXQgaW52YWxpZCBraW5kIHZh bHVlcyBhcmUgcmVqZWN0ZWQuCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgTWFyayBFZ2dsZXN0b24g PG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CisrIQorKyAgICAgICAgcHJvZ3JhbSBzcGVj X2luX3ZhcgorKyAgICAgICAgICBpbnRlZ2VyIGEKKysgICAgICAgICAgcGFyYW1ldGVyKGE9MykK KysgICAgICAgICAgaW50ZWdlciBiKihhKSAhIHsgZGctZXJyb3IgIktpbmQgMyBub3Qgc3VwcG9y dGVkIiB9CisrICAgICAgICAgIHJlYWwgYyooNzgpICAgISB7IGRnLWVycm9yICJLaW5kIDc4IG5v dCBzdXBwb3J0ZWQiIH0KKysgICAgICAgICAgbG9naWNhbCBkKigqKSAhIHsgZGctZXJyb3IgIklu dmFsaWQgY2hhcmFjdGVyIiB9CisrICAgICAgICBlbmQKKy0tIAorMi4yNy4wCisKCmRpZmYgLS1n aXQgYS9nY2MxMS1mb3J0cmFuLWZkZWMtcHJvbW90aW9uLnBhdGNoIGIvZ2NjMTEtZm9ydHJhbi1m ZGVjLXByb21vdGlvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44 NjQzNDA1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjMTEtZm9ydHJhbi1mZGVjLXByb21vdGlvbi5w YXRjaApAQCAtMCwwICsxLDIwOTMgQEAKK0Zyb20gN2EyNzMxODgxOGUzNTlhMjc3ZjJmYTVmN2Rj MzkzMmQwZmI5NTBmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmsgRWdnbGVz dG9uIDxtYXJrZWdnbGVzdG9uQGdjYy5nbnUub3JnPgorRGF0ZTogRnJpLCAyMiBKYW4gMjAyMSAx NDo1ODowNyArMDAwMAorU3ViamVjdDogW1BBVENIIDA4LzEwXSBTdXBwb3J0IHR5cGUgcHJvbW90 aW9uIGluIGNhbGxzIHRvIGludHJpbnNpY3MKKworVXNlIC1mZGVjLXByb21vdGlvbiBvciAtZmRl YyB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCitNZXJnZWQgMiBjb21taXRzOiB3b3JrZWQgb24g YnkgQmVuIEJyZXdlciA8YmVuLmJyZXdlckBjb2RldGhpbmsuY28udWs+LAorRnJhbmNpc2NvIFJl ZG9uZG8gTWFyY2hlbmEgPGZyYW5jaXNjby5tYXJjaGVuYUBjb2RldGhpbmsuY28udWs+IGFuZAor SmVmZiBMYXcgPGxhd0ByZWRoYXQuY29tPgorCitSZS13b3JrZWQgYnkgTWFyayBFZ2dsZXN0b24g PG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CistLS0KKyBnY2MvZm9ydHJhbi9jaGVjay5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzEgKysrKystCisgZ2NjL2ZvcnRyYW4vaW50 cmluc2ljLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKKyBnY2MvZm9ydHJhbi9pcmVz b2x2ZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgOTEgKysrKy0tLQorIGdjYy9mb3J0cmFu L2xhbmcub3B0ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCisgZ2NjL2ZvcnRyYW4v b3B0aW9ucy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKKyBnY2MvZm9ydHJhbi9z aW1wbGlmeS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAyNDAgKysrKysrKysrKysrKystLS0t CisgLi4udHJpbnNpY19pbnRfcmVhbF9hcnJheV9jb25zdF9wcm9tb3Rpb25fMS5mIHwgIDE4ICsr CisgLi4udHJpbnNpY19pbnRfcmVhbF9hcnJheV9jb25zdF9wcm9tb3Rpb25fMi5mIHwgIDE4ICsr CisgLi4udHJpbnNpY19pbnRfcmVhbF9hcnJheV9jb25zdF9wcm9tb3Rpb25fMy5mIHwgIDE4ICsr CisgLi4uZGVjX2ludHJpbnNpY19pbnRfcmVhbF9jb25zdF9wcm9tb3Rpb25fMS5mIHwgIDkwICsr KysrKysKKyAuLi5kZWNfaW50cmluc2ljX2ludF9yZWFsX2NvbnN0X3Byb21vdGlvbl8yLmYgfCAg OTAgKysrKysrKworIC4uLmRlY19pbnRyaW5zaWNfaW50X3JlYWxfY29uc3RfcHJvbW90aW9uXzMu ZiB8ICA5MiArKysrKysrCisgLi4uL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfcHJvbW90aW9uXzEu ZiAgICAgIHwgMTMwICsrKysrKysrKysKKyAuLi4vZGVjX2ludHJpbnNpY19pbnRfcmVhbF9wcm9t b3Rpb25fMi5mICAgICAgfCAxMzAgKysrKysrKysrKworIC4uLi9kZWNfaW50cmluc2ljX2ludF9y ZWFsX3Byb21vdGlvbl8zLmYgICAgICB8IDEzMCArKysrKysrKysrCisgLi4uL2RlY19pbnRyaW5z aWNfaW50X3JlYWxfcHJvbW90aW9uXzQuZiAgICAgIHwgMTE4ICsrKysrKysrKworIC4uLi9kZWNf aW50cmluc2ljX2ludF9yZWFsX3Byb21vdGlvbl81LmYgICAgICB8IDExOCArKysrKysrKysKKyAu Li4vZGVjX2ludHJpbnNpY19pbnRfcmVhbF9wcm9tb3Rpb25fNi5mICAgICAgfCAxMTggKysrKysr KysrCisgLi4uL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfcHJvbW90aW9uXzcuZiAgICAgIHwgMTE4 ICsrKysrKysrKworIC4uLi9nZm9ydHJhbi5kZy9kZWNfa2luZF9wcm9tb3Rpb24tMS5mICAgICAg ICB8ICA0MCArKysKKyAuLi4vZ2ZvcnRyYW4uZGcvZGVjX2tpbmRfcHJvbW90aW9uLTIuZiAgICAg ICAgfCAgNDAgKysrCisgLi4uL2dmb3J0cmFuLmRnL2RlY19raW5kX3Byb21vdGlvbi0zLmYgICAg ICAgIHwgIDM5ICsrKworIDIyIGZpbGVzIGNoYW5nZWQsIDE2MzkgaW5zZXJ0aW9ucygrKSwgODAg ZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9hcnJheV9jb25zdF9wcm9tb3Rpb25fMS5mCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19p bnRfcmVhbF9hcnJheV9jb25zdF9wcm9tb3Rpb25fMi5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9hcnJheV9jb25z dF9wcm9tb3Rpb25fMy5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9jb25zdF9wcm9tb3Rpb25fMS5mCisgY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRf cmVhbF9jb25zdF9wcm9tb3Rpb25fMi5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9jb25zdF9wcm9tb3Rpb25fMy5m CisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJp bnNpY19pbnRfcmVhbF9wcm9tb3Rpb25fMS5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9wcm9tb3Rpb25fMi5mCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNp Y19pbnRfcmVhbF9wcm9tb3Rpb25fMy5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9wcm9tb3Rpb25fNC5mCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19p bnRfcmVhbF9wcm9tb3Rpb25fNS5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9wcm9tb3Rpb25fNi5mCisgY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRf cmVhbF9wcm9tb3Rpb25fNy5mCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZGVjX2tpbmRfcHJvbW90aW9uLTEuZgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19raW5kX3Byb21vdGlvbi0yLmYKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfa2luZF9wcm9tb3Rpb24tMy5m CisKK2RpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9jaGVjay5jIGIvZ2NjL2ZvcnRyYW4vY2hlY2su YworaW5kZXggNjIzYzFjYzQ3MGUuLmUyMGE4MzRhODYwIDEwMDY0NAorLS0tIGEvZ2NjL2ZvcnRy YW4vY2hlY2suYworKysrIGIvZ2NjL2ZvcnRyYW4vY2hlY2suYworQEAgLTEzOTYsMTIgKzEzOTYs NDAgQEAgZ2ZjX2NoZWNrX2FsbG9jYXRlZCAoZ2ZjX2V4cHIgKmFycmF5KQorIH0KKyAKKyAKKysv KiBDaGVjayBmdW5jdGlvbiB3aGVyZSBib3RoIGFyZ3VtZW50cyBtdXN0IGJlIHJlYWwgb3IgaW50 ZWdlcgorKyAgIGFuZCB3YXJuIGlmIHRoZXkgYXJlIGRpZmZlcmVudCB0eXBlcy4gICovCisrCisr Ym9vbAorK2NoZWNrX2ludF9yZWFsX3Byb21vdGlvbiAoZ2ZjX2V4cHIgKmEsIGdmY19leHByICpi KQorK3sKKysgIGdmY19leHByICppOworKworKyAgaWYgKCFpbnRfb3JfcmVhbF9jaGVjayAoYSwg MCkpCisrICAgIHJldHVybiBmYWxzZTsKKysKKysgIGlmICghaW50X29yX3JlYWxfY2hlY2sgKGIs IDEpKQorKyAgICByZXR1cm4gZmFsc2U7CisrCisrICBpZiAoYS0+dHMudHlwZSAhPSBiLT50cy50 eXBlKQorKyAgICB7CisrICAgICAgaSA9IChhLT50cy50eXBlICE9IEJUX1JFQUwgPyBhIDogYik7 CisrICAgICAgZ2ZjX3dhcm5pbmdfbm93IChPUFRfV2NvbnZlcnNpb24sICJDb252ZXJzaW9uIGZy b20gSU5URUdFUiB0byBSRUFMICIKKysJCSAgICAgICAiYXQgJUwgbWlnaHQgbG9zZSBwcmVjaXNp b24iLCAmaS0+d2hlcmUpOworKyAgICB9CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrCisg LyogQ29tbW9uIGNoZWNrIGZ1bmN0aW9uIHdoZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJl IHJlYWwgb3IKKyAgICBpbnRlZ2VyIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgdGhl IHNhbWUgYXMgdGhlIGZpcnN0LiAgKi8KKyAKKyBib29sCisgZ2ZjX2NoZWNrX2FfcCAoZ2ZjX2V4 cHIgKmEsIGdmY19leHByICpwKQorIHsKKysgIGlmIChmbGFnX2RlY19wcm9tb3Rpb24pCisrICAg IHJldHVybiBjaGVja19pbnRfcmVhbF9wcm9tb3Rpb24gKGEsIHApOworKworICAgaWYgKCFpbnRf b3JfcmVhbF9jaGVjayAoYSwgMCkpCisgICAgIHJldHVybiBmYWxzZTsKKyAKK0BAIC0zNzI0LDYg KzM3NTIsNDEgQEAgY2hlY2tfcmVzdCAoYnQgdHlwZSwgaW50IGtpbmQsIGdmY19hY3R1YWxfYXJn bGlzdCAqYXJnbGlzdCkKKyB9CisgCisgCisrLyogQ2hlY2sgZnVuY3Rpb24gd2hlcmUgYWxsIGFy Z3VtZW50cyBvZiBhbiBhcmd1bWVudCBsaXN0IG11c3QgYmUgcmVhbAorKyAgIG9yIGludGVnZXIu ICAqLworKworK3N0YXRpYyBib29sCisrY2hlY2tfcmVzdF9pbnRfcmVhbCAoZ2ZjX2FjdHVhbF9h cmdsaXN0ICphcmdsaXN0KQorK3sKKysgIGdmY19hY3R1YWxfYXJnbGlzdCAqYXJnLCAqdG1wOwor KyAgZ2ZjX2V4cHIgKng7CisrICBpbnQgbSwgbjsKKysKKysgIGlmICghbWluX21heF9hcmdzIChh cmdsaXN0KSkKKysgICAgcmV0dXJuIGZhbHNlOworKworKyAgZm9yIChhcmcgPSBhcmdsaXN0LCBu PTE7IGFyZzsgYXJnID0gYXJnLT5uZXh0LCBuKyspCisrICAgIHsKKysgICAgICB4ID0gYXJnLT5l eHByOworKyAgICAgIGlmICh4LT50cy50eXBlICE9IEJUX0lOVEVHRVIgJiYgeC0+dHMudHlwZSAh PSBCVF9SRUFMKQorKwl7CisrCSAgZ2ZjX2Vycm9yICgiJTxhJWQlPiBhcmd1bWVudCBvZiAlcXMg aW50cmluc2ljIGF0ICVMIG11c3QgYmUgIgorKwkJICAgICAiSU5URUdFUiBvciBSRUFMIiwgbiwg Z2ZjX2N1cnJlbnRfaW50cmluc2ljLCAmeC0+d2hlcmUpOworKwkgIHJldHVybiBmYWxzZTsKKysJ fQorKworKyAgICAgIGZvciAodG1wID0gYXJnbGlzdCwgbT0xOyB0bXAgIT0gYXJnOyB0bXAgPSB0 bXAtPm5leHQsIG0rKykKKysJaWYgKCFnZmNfY2hlY2tfY29uZm9ybWFuY2UgKHRtcC0+ZXhwciwg eCwKKysJCQkJICAgICJhcmd1bWVudHMgJ2ElZCcgYW5kICdhJWQnIGZvciAiCisrCQkJCSAgICAi aW50cmluc2ljICclcyciLCBtLCBuLAorKwkJCQkgICAgZ2ZjX2N1cnJlbnRfaW50cmluc2ljKSkK KysJICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysKKysgIHJldHVybiB0cnVlOworK30KKysKKysK KyBib29sCisgZ2ZjX2NoZWNrX21pbl9tYXggKGdmY19hY3R1YWxfYXJnbGlzdCAqYXJnKQorIHsK K0BAIC0zNzQ4LDcgKzM4MTEsMTAgQEAgZ2ZjX2NoZWNrX21pbl9tYXggKGdmY19hY3R1YWxfYXJn bGlzdCAqYXJnKQorICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorLSAgcmV0dXJuIGNo ZWNrX3Jlc3QgKHgtPnRzLnR5cGUsIHgtPnRzLmtpbmQsIGFyZyk7CisrICBpZiAoZmxhZ19kZWNf cHJvbW90aW9uICYmIHgtPnRzLnR5cGUgIT0gQlRfQ0hBUkFDVEVSKQorKyAgICByZXR1cm4gY2hl Y2tfcmVzdF9pbnRfcmVhbCAoYXJnKTsKKysgIGVsc2UKKysgICAgcmV0dXJuIGNoZWNrX3Jlc3Qg KHgtPnRzLnR5cGUsIHgtPnRzLmtpbmQsIGFyZyk7CisgfQorIAorIAorQEAgLTUxMjEsNiArNTE4 Nyw5IEBAIGdmY19jaGVja19zaGlmdCAoZ2ZjX2V4cHIgKmksIGdmY19leHByICpzaGlmdCkKKyBi b29sCisgZ2ZjX2NoZWNrX3NpZ24gKGdmY19leHByICphLCBnZmNfZXhwciAqYikKKyB7CisrICBp ZiAoZmxhZ19kZWNfcHJvbW90aW9uKQorKyAgICByZXR1cm4gY2hlY2tfaW50X3JlYWxfcHJvbW90 aW9uIChhLCBiKTsKKysKKyAgIGlmICghaW50X29yX3JlYWxfY2hlY2sgKGEsIDApKQorICAgICBy ZXR1cm4gZmFsc2U7CisgCitkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vaW50cmluc2ljLmMgYi9n Y2MvZm9ydHJhbi9pbnRyaW5zaWMuYworaW5kZXggZTY4ZWZmOGJkYmIuLjgxYjNhMjRjMmJlIDEw MDY0NAorLS0tIGEvZ2NjL2ZvcnRyYW4vaW50cmluc2ljLmMKKysrKyBiL2djYy9mb3J0cmFuL2lu dHJpbnNpYy5jCitAQCAtNDQ2Nyw2ICs0NDY3LDExIEBAIGNoZWNrX2FyZ2xpc3QgKGdmY19hY3R1 YWxfYXJnbGlzdCAqKmFwLCBnZmNfaW50cmluc2ljX3N5bSAqc3ltLAorICAgICAgIGlmICh0cy5r aW5kID09IDApCisgCXRzLmtpbmQgPSBhY3R1YWwtPmV4cHItPnRzLmtpbmQ7CisgCisrICAgICAg LyogSWYga2luZCBwcm9tb3Rpb24gaXMgYWxsb3dlZCBkb24ndCBjaGVjayBmb3Iga2luZCBpZiBp dCBpcyBzbWFsbGVyICovCisrICAgICAgaWYgKGZsYWdfZGVjX3Byb21vdGlvbiAmJiB0cy50eXBl ID09IEJUX0lOVEVHRVIpCisrCWlmIChhY3R1YWwtPmV4cHItPnRzLmtpbmQgPCB0cy5raW5kKQor KwkgIHRzLmtpbmQgPSBhY3R1YWwtPmV4cHItPnRzLmtpbmQ7CisrCisgICAgICAgaWYgKCFnZmNf Y29tcGFyZV90eXBlcyAoJnRzLCAmYWN0dWFsLT5leHByLT50cykpCisgCXsKKyAJICBpZiAoZXJy b3JfZmxhZykKK2RpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jIGIvZ2NjL2ZvcnRy YW4vaXJlc29sdmUuYworaW5kZXggZTE3ZmU0NWYwODAuLmI5Y2RhZmYyNDk5IDEwMDY0NAorLS0t IGEvZ2NjL2ZvcnRyYW4vaXJlc29sdmUuYworKysrIGIvZ2NjL2ZvcnRyYW4vaXJlc29sdmUuYwor QEAgLTgxNywxOSArODE3LDIyIEBAIGdmY19yZXNvbHZlX2RibGUgKGdmY19leHByICpmLCBnZmNf ZXhwciAqYSkKKyB2b2lkCisgZ2ZjX3Jlc29sdmVfZGltIChnZmNfZXhwciAqZiwgZ2ZjX2V4cHIg KmEsIGdmY19leHByICpwKQorIHsKKy0gIGYtPnRzLnR5cGUgPSBhLT50cy50eXBlOworICAgaWYg KHAgIT0gTlVMTCkKKy0gICAgZi0+dHMua2luZCA9IGdmY19raW5kX21heCAoYSxwKTsKKy0gIGVs c2UKKy0gICAgZi0+dHMua2luZCA9IGEtPnRzLmtpbmQ7CistCistICBpZiAocCAhPSBOVUxMICYm IGEtPnRzLmtpbmQgIT0gcC0+dHMua2luZCkKKyAgICAgeworLSAgICAgIGlmIChhLT50cy5raW5k ID09IGdmY19raW5kX21heCAoYSxwKSkKKy0JZ2ZjX2NvbnZlcnRfdHlwZSAocCwgJmEtPnRzLCAy KTsKKysgICAgICBmLT50cy5raW5kID0gZ2ZjX2tpbmRfbWF4IChhLHApOworKyAgICAgIGlmIChh LT50cy50eXBlID09IEJUX1JFQUwgfHwgcC0+dHMudHlwZSA9PSBCVF9SRUFMKQorKwlmLT50cy50 eXBlID0gQlRfUkVBTDsKKyAgICAgICBlbHNlCistCWdmY19jb252ZXJ0X3R5cGUgKGEsICZwLT50 cywgMik7CisrCWYtPnRzLnR5cGUgPSBCVF9JTlRFR0VSOworKworKyAgICAgIGlmIChhLT50cy5r aW5kICE9IGYtPnRzLmtpbmQgfHwgYS0+dHMudHlwZSAhPSBmLT50cy50eXBlKQorKwlnZmNfY29u dmVydF90eXBlIChhLCAmZi0+dHMsIDIpOworKworKyAgICAgIGlmIChwLT50cy5raW5kICE9IGYt PnRzLmtpbmQgfHwgcC0+dHMudHlwZSAhPSBmLT50cy50eXBlKQorKwlnZmNfY29udmVydF90eXBl IChwLCAmZi0+dHMsIDIpOworICAgICB9CisrICBlbHNlCisrICAgIGYtPnRzID0gYS0+dHM7Cisg CisgICBmLT52YWx1ZS5mdW5jdGlvbi5uYW1lCisgICAgID0gZ2ZjX2dldF9zdHJpbmcgKCJfX2Rp bV8lYyVkIiwgZ2ZjX3R5cGVfbGV0dGVyIChmLT50cy50eXBlKSwgZi0+dHMua2luZCk7CitAQCAt MTYwNiwxNCArMTYwOSwxNyBAQCBnZmNfcmVzb2x2ZV9taW5tYXggKGNvbnN0IGNoYXIgKm5hbWUs IGdmY19leHByICpmLCBnZmNfYWN0dWFsX2FyZ2xpc3QgKmFyZ3MpCisgICAvKiBGaW5kIHRoZSBs YXJnZXN0IHR5cGUga2luZC4gICovCisgICBmb3IgKGEgPSBhcmdzLT5uZXh0OyBhOyBhID0gYS0+ bmV4dCkKKyAgICAgeworKyAgICAgIGlmIChhLT5leHByLT4gdHMudHlwZSA9PSBCVF9SRUFMKQor KwlmLT50cy50eXBlID0gQlRfUkVBTDsKKysKKyAgICAgICBpZiAoYS0+ZXhwci0+dHMua2luZCA+ IGYtPnRzLmtpbmQpCisgCWYtPnRzLmtpbmQgPSBhLT5leHByLT50cy5raW5kOworICAgICB9Cisg CistICAvKiBDb252ZXJ0IGFsbCBwYXJhbWV0ZXJzIHRvIHRoZSByZXF1aXJlZCBraW5kLiAgKi8K KysgIC8qIENvbnZlcnQgYWxsIHBhcmFtZXRlcnMgdG8gdGhlIHJlcXVpcmVkIHR5cGUgYW5kL29y IGtpbmQuICAqLworICAgZm9yIChhID0gYXJnczsgYTsgYSA9IGEtPm5leHQpCisgICAgIHsKKy0g ICAgICBpZiAoYS0+ZXhwci0+dHMua2luZCAhPSBmLT50cy5raW5kKQorKyAgICAgIGlmIChhLT5l eHByLT50cy50eXBlICE9IGYtPnRzLnR5cGUgfHwgYS0+ZXhwci0+dHMua2luZCAhPSBmLT50cy5r aW5kKQorIAlnZmNfY29udmVydF90eXBlIChhLT5leHByLCAmZi0+dHMsIDIpOworICAgICB9Cisg CitAQCAtMjEwNiwxOSArMjExMiwyMiBAQCBnZmNfcmVzb2x2ZV9taW52YWwgKGdmY19leHByICpm LCBnZmNfZXhwciAqYXJyYXksIGdmY19leHByICpkaW0sCisgdm9pZAorIGdmY19yZXNvbHZlX21v ZCAoZ2ZjX2V4cHIgKmYsIGdmY19leHByICphLCBnZmNfZXhwciAqcCkKKyB7CistICBmLT50cy50 eXBlID0gYS0+dHMudHlwZTsKKyAgIGlmIChwICE9IE5VTEwpCistICAgIGYtPnRzLmtpbmQgPSBn ZmNfa2luZF9tYXggKGEscCk7CistICBlbHNlCistICAgIGYtPnRzLmtpbmQgPSBhLT50cy5raW5k OworLQorLSAgaWYgKHAgIT0gTlVMTCAmJiBhLT50cy5raW5kICE9IHAtPnRzLmtpbmQpCisgICAg IHsKKy0gICAgICBpZiAoYS0+dHMua2luZCA9PSBnZmNfa2luZF9tYXggKGEscCkpCistCWdmY19j b252ZXJ0X3R5cGUgKHAsICZhLT50cywgMik7CisrICAgICAgZi0+dHMua2luZCA9IGdmY19raW5k X21heCAoYSxwKTsKKysgICAgICBpZiAoYS0+dHMudHlwZSA9PSBCVF9SRUFMIHx8IHAtPnRzLnR5 cGUgPT0gQlRfUkVBTCkKKysJZi0+dHMudHlwZSA9IEJUX1JFQUw7CisgICAgICAgZWxzZQorLQln ZmNfY29udmVydF90eXBlIChhLCAmcC0+dHMsIDIpOworKwlmLT50cy50eXBlID0gQlRfSU5URUdF UjsKKysKKysgICAgICBpZiAoYS0+dHMua2luZCAhPSBmLT50cy5raW5kIHx8IGEtPnRzLnR5cGUg IT0gZi0+dHMudHlwZSkKKysJZ2ZjX2NvbnZlcnRfdHlwZSAoYSwgJmYtPnRzLCAyKTsKKysKKysg ICAgICBpZiAocC0+dHMua2luZCAhPSBmLT50cy5raW5kIHx8IHAtPnRzLnR5cGUgIT0gZi0+dHMu dHlwZSkKKysJZ2ZjX2NvbnZlcnRfdHlwZSAocCwgJmYtPnRzLCAyKTsKKyAgICAgfQorKyAgZWxz ZQorKyAgICBmLT50cyA9IGEtPnRzOworIAorICAgZi0+dmFsdWUuZnVuY3Rpb24ubmFtZQorICAg ICA9IGdmY19nZXRfc3RyaW5nICgiX19tb2RfJWMlZCIsIGdmY190eXBlX2xldHRlciAoZi0+dHMu dHlwZSksIGYtPnRzLmtpbmQpOworQEAgLTIxMjgsMTkgKzIxMzcsMjIgQEAgZ2ZjX3Jlc29sdmVf bW9kIChnZmNfZXhwciAqZiwgZ2ZjX2V4cHIgKmEsIGdmY19leHByICpwKQorIHZvaWQKKyBnZmNf cmVzb2x2ZV9tb2R1bG8gKGdmY19leHByICpmLCBnZmNfZXhwciAqYSwgZ2ZjX2V4cHIgKnApCisg eworLSAgZi0+dHMudHlwZSA9IGEtPnRzLnR5cGU7CisgICBpZiAocCAhPSBOVUxMKQorLSAgICBm LT50cy5raW5kID0gZ2ZjX2tpbmRfbWF4IChhLHApOworLSAgZWxzZQorLSAgICBmLT50cy5raW5k ID0gYS0+dHMua2luZDsKKy0KKy0gIGlmIChwICE9IE5VTEwgJiYgYS0+dHMua2luZCAhPSBwLT50 cy5raW5kKQorICAgICB7CistICAgICAgaWYgKGEtPnRzLmtpbmQgPT0gZ2ZjX2tpbmRfbWF4IChh LHApKQorLQlnZmNfY29udmVydF90eXBlIChwLCAmYS0+dHMsIDIpOworKyAgICAgIGYtPnRzLmtp bmQgPSBnZmNfa2luZF9tYXggKGEscCk7CisrICAgICAgaWYgKGEtPnRzLnR5cGUgPT0gQlRfUkVB TCB8fCBwLT50cy50eXBlID09IEJUX1JFQUwpCisrCWYtPnRzLnR5cGUgPSBCVF9SRUFMOworICAg ICAgIGVsc2UKKy0JZ2ZjX2NvbnZlcnRfdHlwZSAoYSwgJnAtPnRzLCAyKTsKKysJZi0+dHMudHlw ZSA9IEJUX0lOVEVHRVI7CisrCisrICAgICAgaWYgKGEtPnRzLmtpbmQgIT0gZi0+dHMua2luZCB8 fCBhLT50cy50eXBlICE9IGYtPnRzLnR5cGUpCisrCWdmY19jb252ZXJ0X3R5cGUgKGEsICZmLT50 cywgMik7CisrCisrICAgICAgaWYgKHAtPnRzLmtpbmQgIT0gZi0+dHMua2luZCB8fCBwLT50cy50 eXBlICE9IGYtPnRzLnR5cGUpCisrCWdmY19jb252ZXJ0X3R5cGUgKHAsICZmLT50cywgMik7Cisg ICAgIH0KKysgIGVsc2UKKysgICAgZi0+dHMgPSBhLT50czsKKyAKKyAgIGYtPnZhbHVlLmZ1bmN0 aW9uLm5hbWUKKyAgICAgPSBnZmNfZ2V0X3N0cmluZyAoIl9fbW9kdWxvXyVjJWQiLCBnZmNfdHlw ZV9sZXR0ZXIgKGYtPnRzLnR5cGUpLAorQEAgLTI1MTUsOSArMjUyNywyNiBAQCBnZmNfcmVzb2x2 ZV9zaGlmdCAoZ2ZjX2V4cHIgKmYsIGdmY19leHByICppLCBnZmNfZXhwciAqc2hpZnQgQVRUUklC VVRFX1VOVVNFRCkKKyAKKyAKKyB2b2lkCistZ2ZjX3Jlc29sdmVfc2lnbiAoZ2ZjX2V4cHIgKmYs IGdmY19leHByICphLCBnZmNfZXhwciAqYiBBVFRSSUJVVEVfVU5VU0VEKQorK2dmY19yZXNvbHZl X3NpZ24gKGdmY19leHByICpmLCBnZmNfZXhwciAqYSwgZ2ZjX2V4cHIgKmIpCisgeworLSAgZi0+ dHMgPSBhLT50czsKKysgIGlmIChiICE9IE5VTEwpCisrICAgIHsKKysgICAgICBmLT50cy5raW5k ID0gZ2ZjX2tpbmRfbWF4IChhLCBiKTsKKysgICAgICBpZiAoYS0+dHMudHlwZSA9PSBCVF9SRUFM IHx8IGItPnRzLnR5cGUgPT0gQlRfUkVBTCkKKysJZi0+dHMudHlwZSA9IEJUX1JFQUw7CisrICAg ICAgZWxzZQorKwlmLT50cy50eXBlID0gQlRfSU5URUdFUjsKKysKKysgICAgICBpZiAoYS0+dHMu a2luZCAhPSBmLT50cy5raW5kIHx8IGEtPnRzLnR5cGUgIT0gZi0+dHMudHlwZSkKKysJZ2ZjX2Nv bnZlcnRfdHlwZSAoYSwgJmYtPnRzLCAyKTsKKysKKysgICAgICBpZiAoYi0+dHMua2luZCAhPSBm LT50cy5raW5kIHx8IGItPnRzLnR5cGUgIT0gZi0+dHMudHlwZSkKKysJZ2ZjX2NvbnZlcnRfdHlw ZSAoYiwgJmYtPnRzLCAyKTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgZi0+dHMg PSBhLT50czsKKysgICAgfQorICAgZi0+dmFsdWUuZnVuY3Rpb24ubmFtZQorICAgICA9IGdmY19n ZXRfc3RyaW5nICgiX19zaWduXyVjJWQiLCBnZmNfdHlwZV9sZXR0ZXIgKGEtPnRzLnR5cGUpLCBh LT50cy5raW5kKTsKKyB9CitkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQgYi9nY2Mv Zm9ydHJhbi9sYW5nLm9wdAoraW5kZXggZDg4NmMyZjMzZWQuLjRjYTJmOTNmMmRmIDEwMDY0NAor LS0tIGEvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKKysrKyBiL2djYy9mb3J0cmFuL2xhbmcub3B0CitA QCAtNTA1LDYgKzUwNSwxMCBAQCBmZGVjLW9sZC1pbml0CisgRm9ydHJhbiBWYXIoZmxhZ19kZWNf b2xkX2luaXQpCisgRW5hYmxlIHN1cHBvcnQgZm9yIG9sZCBzdHlsZSBpbml0aWFsaXplcnMgaW4g ZGVyaXZlZCB0eXBlcy4KKyAKKytmZGVjLXByb21vdGlvbgorK0ZvcnRyYW4gVmFyKGZsYWdfZGVj X3Byb21vdGlvbikKKytBZGQgc3VwcG9ydCBmb3IgdHlwZSBwcm9tb3Rpb24gaW4gaW50cmluc2lj IGFyZ3VtZW50cworKworIGZkZWMtc3RydWN0dXJlCisgRm9ydHJhbiBWYXIoZmxhZ19kZWNfc3Ry dWN0dXJlKQorIEVuYWJsZSBzdXBwb3J0IGZvciBERUMgU1RSVUNUVVJFL1JFQ09SRC4KK2RpZmYg LS1naXQgYS9nY2MvZm9ydHJhbi9vcHRpb25zLmMgYi9nY2MvZm9ydHJhbi9vcHRpb25zLmMKK2lu ZGV4IGE5NDZjODY3OTBhLi4xNTA3OWM3ZTk1YSAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL29w dGlvbnMuYworKysrIGIvZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jCitAQCAtODIsNiArODIsNyBAQCBz ZXRfZGVjX2ZsYWdzIChpbnQgdmFsdWUpCisgICBTRVRfQklURkxBRyAoZmxhZ19kZWNfb2xkX2lu aXQsIHZhbHVlLCB2YWx1ZSk7CisgICBTRVRfQklURkxBRyAoZmxhZ19kZWNfb3ZlcnJpZGVfa2lu ZCwgdmFsdWUsIHZhbHVlKTsKKyAgIFNFVF9CSVRGTEFHIChmbGFnX2RlY19ub25fbG9naWNhbF9p ZiwgdmFsdWUsIHZhbHVlKTsKKysgIFNFVF9CSVRGTEFHIChmbGFnX2RlY19wcm9tb3Rpb24sIHZh bHVlLCB2YWx1ZSk7CisgfQorIAorIC8qIEZpbmFsaXplIERFQyBmbGFncy4gICovCitkaWZmIC0t Z2l0IGEvZ2NjL2ZvcnRyYW4vc2ltcGxpZnkuYyBiL2djYy9mb3J0cmFuL3NpbXBsaWZ5LmMKK2lu ZGV4IDk5MDA1NzI0MjRmLi4zNDE5ZTA2ZmVjMiAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL3Np bXBsaWZ5LmMKKysrKyBiL2djYy9mb3J0cmFuL3NpbXBsaWZ5LmMKK0BAIC0yMzMzLDM5ICsyMzMz LDc5IEBAIGdmY19zaW1wbGlmeV9kaWdpdHMgKGdmY19leHByICp4KQorIH0KKyAKKyAKKysvKiBT aW1wbGlmeSBmdW5jdGlvbiB3aGljaCBzZXRzIHRoZSBmbG9hdGluZy1wb2ludCB2YWx1ZSBvZiBh ciBmcm9tCisrICAgdGhlIHZhbHVlIG9mIGEgaW5kZXBlbmRlbnRseSBpZiBhIGlzIGludGVnZXIg b2YgcmVhbC4gICovCisrCisrc3RhdGljIHZvaWQKKytzaW1wbGlmeV9pbnRfcmVhbF9wcm9tb3Rp b24gKGNvbnN0IGdmY19leHByICphLCBjb25zdCBnZmNfZXhwciAqYiwgbXBmcl90ICphcikKKyt7 CisrICBpZiAoYS0+dHMudHlwZSA9PSBCVF9SRUFMKQorKyAgICB7CisrICAgICAgbXBmcl9pbml0 MiAoKmFyLCAoYS0+dHMua2luZCAqIDgpKTsKKysgICAgICBtcGZyX3NldCAoKmFyLCBhLT52YWx1 ZS5yZWFsLCBHRkNfUk5EX01PREUpOworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAgICBt cGZyX2luaXQyICgqYXIsIChiLT50cy5raW5kICogOCkpOworKyAgICAgIG1wZnJfc2V0X3ogKCph ciwgYS0+dmFsdWUuaW50ZWdlciwgR0ZDX1JORF9NT0RFKTsKKysgICAgfQorK30KKysKKysKKysv KiBTaW1wbGlmeSBmdW5jdGlvbiB3aGljaCBwcm9tb3RlcyBhIGFuZCBiIGFyZ3VtZW50cyBmcm9t IGludGVnZXIgdG8gcmVhbCBpZgorKyAgIHJlcXVpcmVkIGluIGFyIGFuZCBiciBmbG9hdGluZy1w b2ludCB2YWx1ZXMuIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmCisrICAgYSBvciBiIGFy ZSByZWFscyBhbmQgZmFsc2Ugb3RoZXJ3aXNlLiAqLworKworK3N0YXRpYyBib29sCisrc2ltcGxp ZnlfaW50X3JlYWxfcHJvbW90aW9uMiAoY29uc3QgZ2ZjX2V4cHIgKmEsIGNvbnN0IGdmY19leHBy ICpiLCBtcGZyX3QgKmFyLAorKwkJCSAgICAgIG1wZnJfdCAqYnIpCisreworKyAgaWYgKGEtPnRz LnR5cGUgIT0gQlRfUkVBTCAmJiBiLT50cy50eXBlICE9IEJUX1JFQUwpCisrICAgIHJldHVybiBm YWxzZTsKKysKKysgIHNpbXBsaWZ5X2ludF9yZWFsX3Byb21vdGlvbiAoYSwgYiwgYXIpOworKyAg c2ltcGxpZnlfaW50X3JlYWxfcHJvbW90aW9uIChiLCBhLCBicik7CisrCisrICByZXR1cm4gdHJ1 ZTsKKyt9CisrCisrCisgZ2ZjX2V4cHIgKgorIGdmY19zaW1wbGlmeV9kaW0gKGdmY19leHByICp4 LCBnZmNfZXhwciAqeSkKKyB7CisgICBnZmNfZXhwciAqcmVzdWx0OworICAgaW50IGtpbmQ7Cisg CisrICBtcGZyX3QgeHI7CisrICBtcGZyX3QgeXI7CisrCisgICBpZiAoeC0+ZXhwcl90eXBlICE9 IEVYUFJfQ09OU1RBTlQgfHwgeS0+ZXhwcl90eXBlICE9IEVYUFJfQ09OU1RBTlQpCisgICAgIHJl dHVybiBOVUxMOworIAorLSAga2luZCA9IHgtPnRzLmtpbmQgPiB5LT50cy5raW5kID8geC0+dHMu a2luZCA6IHktPnRzLmtpbmQ7CistICByZXN1bHQgPSBnZmNfZ2V0X2NvbnN0YW50X2V4cHIgKHgt PnRzLnR5cGUsIGtpbmQsICZ4LT53aGVyZSk7CistCistICBzd2l0Y2ggKHgtPnRzLnR5cGUpCisr ICBpZiAoKHgtPnRzLnR5cGUgIT0gQlRfUkVBTCAmJiB4LT50cy50eXBlICE9IEJUX0lOVEVHRVIp CisrICAgICAgfHwgKHktPnRzLnR5cGUgIT0gQlRfUkVBTCAmJiB5LT50cy50eXBlICE9IEJUX0lO VEVHRVIpKQorICAgICB7CistICAgICAgY2FzZSBCVF9JTlRFR0VSOgorLQlpZiAobXB6X2NtcCAo eC0+dmFsdWUuaW50ZWdlciwgeS0+dmFsdWUuaW50ZWdlcikgPiAwKQorLQkgIG1wel9zdWIgKHJl c3VsdC0+dmFsdWUuaW50ZWdlciwgeC0+dmFsdWUuaW50ZWdlciwgeS0+dmFsdWUuaW50ZWdlcik7 CistCWVsc2UKKy0JICBtcHpfc2V0X3VpIChyZXN1bHQtPnZhbHVlLmludGVnZXIsIDApOworLQor LQlicmVhazsKKy0KKy0gICAgICBjYXNlIEJUX1JFQUw6CistCWlmIChtcGZyX2NtcCAoeC0+dmFs dWUucmVhbCwgeS0+dmFsdWUucmVhbCkgPiAwKQorLQkgIG1wZnJfc3ViIChyZXN1bHQtPnZhbHVl LnJlYWwsIHgtPnZhbHVlLnJlYWwsIHktPnZhbHVlLnJlYWwsCistCQkgICAgR0ZDX1JORF9NT0RF KTsKKy0JZWxzZQorLQkgIG1wZnJfc2V0X3VpIChyZXN1bHQtPnZhbHVlLnJlYWwsIDAsIEdGQ19S TkRfTU9ERSk7CisrICAgICAgZ2ZjX2ludGVybmFsX2Vycm9yICgiZ2ZjX3NpbXBsaWZ5X2RpbSgp OiBCYWQgYXJndW1lbnRzIik7CisrICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKyAKKy0JYnJl YWs7CisrICBraW5kID0geC0+dHMua2luZCA+IHktPnRzLmtpbmQgPyB4LT50cy5raW5kIDogeS0+ dHMua2luZDsKKyAKKy0gICAgICBkZWZhdWx0OgorLQlnZmNfaW50ZXJuYWxfZXJyb3IgKCJnZmNf c2ltcGxpZnlfZGltKCk6IEJhZCB0eXBlIik7CisrICBpZiAoc2ltcGxpZnlfaW50X3JlYWxfcHJv bW90aW9uMiAoeCwgeSwgJnhyLCAmeXIpKQorKyAgICB7CisrICAgICAgcmVzdWx0ID0gZ2ZjX2dl dF9jb25zdGFudF9leHByIChCVF9SRUFMLCBraW5kLCAmeC0+d2hlcmUpOworKyAgICAgIGlmICht cGZyX2NtcCAoeHIsIHlyKSA+IDApCisrCW1wZnJfc3ViIChyZXN1bHQtPnZhbHVlLnJlYWwsIHhy LCB5ciwgR0ZDX1JORF9NT0RFKTsKKysgICAgICBlbHNlCisrCW1wZnJfc2V0X3VpIChyZXN1bHQt PnZhbHVlLnJlYWwsIDAsIEdGQ19STkRfTU9ERSk7CisrICAgIH0KKysgIGVsc2UKKysgICAgewor KyAgICAgIHJlc3VsdCA9IGdmY19nZXRfY29uc3RhbnRfZXhwciAoQlRfSU5URUdFUiwga2luZCwg JngtPndoZXJlKTsKKysgICAgICBpZiAobXB6X2NtcCAoeC0+dmFsdWUuaW50ZWdlciwgeS0+dmFs dWUuaW50ZWdlcikgPiAwKQorKwltcHpfc3ViIChyZXN1bHQtPnZhbHVlLmludGVnZXIsIHgtPnZh bHVlLmludGVnZXIsIHktPnZhbHVlLmludGVnZXIpOworKyAgICAgIGVsc2UKKysJbXB6X3NldF91 aSAocmVzdWx0LT52YWx1ZS5pbnRlZ2VyLCAwKTsKKyAgICAgfQorIAorICAgcmV0dXJuIHJhbmdl X2NoZWNrIChyZXN1bHQsICJESU0iKTsKK0BAIC00OTUzLDYgKzQ5OTMsNzYgQEAgbWluX21heF9j aG9vc2UgKGdmY19leHByICphcmcsIGdmY19leHByICpleHRyZW11bSwgaW50IHNpZ24sIGJvb2wg YmFja192YWwpCisgeworICAgaW50IHJldDsKKyAKKysgIG1wZnJfdCAqYXJwOworKyAgbXBmcl90 ICplcnA7CisrICBtcGZyX3QgYXI7CisrICBtcGZyX3QgZXI7CisrCisrICBpZiAoYXJnLT50cy50 eXBlICE9IGV4dHJlbXVtLT50cy50eXBlKQorKyAgICB7CisrICAgICAgaWYgKGFyZy0+dHMudHlw ZSA9PSBCVF9SRUFMKQorKwl7CisrCSAgYXJwID0gJmFyZy0+dmFsdWUucmVhbDsKKysJfQorKyAg ICAgIGVsc2UKKysJeworKwkgIG1wZnJfaW5pdDIgKGFyLCAoYXJnLT50cy5raW5kICogOCkpOwor KwkgIG1wZnJfc2V0X3ogKGFyLCBhcmctPnZhbHVlLmludGVnZXIsIEdGQ19STkRfTU9ERSk7Cisr CSAgYXJwID0gJmFyOworKwl9CisrCisrICAgICAgaWYgKGV4dHJlbXVtLT50cy50eXBlID09IEJU X1JFQUwpCisrCXsKKysJICBlcnAgPSAmZXh0cmVtdW0tPnZhbHVlLnJlYWw7CisrCX0KKysgICAg ICBlbHNlCisrCXsKKysJICBtcGZyX2luaXQyIChlciwgKGV4dHJlbXVtLT50cy5raW5kICogOCkp OworKwkgIG1wZnJfc2V0X3ogKGVyLCBleHRyZW11bS0+dmFsdWUuaW50ZWdlciwgR0ZDX1JORF9N T0RFKTsKKysJICBlcnAgPSAmZXI7CisrCX0KKysKKysgICAgICBpZiAobXBmcl9uYW5fcCAoKmVy cCkpCisrCXsKKysJICByZXQgPSAxOworKwkgIGV4dHJlbXVtLT50cy50eXBlID0gYXJnLT50cy50 eXBlOworKwkgIGV4dHJlbXVtLT50cy5raW5kID0gYXJnLT50cy5raW5kOworKwkgIGlmIChhcmct PnRzLnR5cGUgPT0gQlRfSU5URUdFUikKKysJICAgIHsKKysJICAgICAgbXB6X2luaXQyIChleHRy ZW11bS0+dmFsdWUuaW50ZWdlciwgKGFyZy0+dHMua2luZCAqIDgpKTsKKysJICAgICAgbXB6X3Nl dCAoZXh0cmVtdW0tPnZhbHVlLmludGVnZXIsIGFyZy0+dmFsdWUuaW50ZWdlcik7CisrCSAgICB9 CisrCSAgZWxzZQorKwkgICAgeworKwkgICAgICBtcGZyX2luaXQyIChleHRyZW11bS0+dmFsdWUu cmVhbCwgKGFyZy0+dHMua2luZCAqIDgpKTsKKysJICAgICAgbXBmcl9zZXQgKGV4dHJlbXVtLT52 YWx1ZS5yZWFsLCAqYXJwLCBHRkNfUk5EX01PREUpOworKwkgICAgfQorKwl9CisrICAgICAgZWxz ZSBpZiAobXBmcl9uYW5fcCAoKmFycCkpCisrCXJldCA9IC0xOworKyAgICAgIGVsc2UKKysJewor KwkgIHJldCA9IG1wZnJfY21wICgqYXJwLCAqZXJwKSAqIHNpZ247CisrCSAgaWYgKHJldCA+IDAp CisrCSAgICB7CisrCSAgICAgIGV4dHJlbXVtLT50cy50eXBlID0gYXJnLT50cy50eXBlOworKwkg ICAgICBleHRyZW11bS0+dHMua2luZCA9IGFyZy0+dHMua2luZDsKKysJICAgICAgaWYgKGFyZy0+ dHMudHlwZSA9PSBCVF9JTlRFR0VSKQorKwkJeworKwkJICBtcHpfaW5pdDIgKGV4dHJlbXVtLT52 YWx1ZS5pbnRlZ2VyLCAoYXJnLT50cy5raW5kICogOCkpOworKwkJICBtcHpfc2V0IChleHRyZW11 bS0+dmFsdWUuaW50ZWdlciwgYXJnLT52YWx1ZS5pbnRlZ2VyKTsKKysJCX0KKysJICAgICAgZWxz ZQorKwkJeworKwkJICBtcGZyX2luaXQyIChleHRyZW11bS0+dmFsdWUucmVhbCwgKGFyZy0+dHMu a2luZCAqIDgpKTsKKysJCSAgbXBmcl9zZXQgKGV4dHJlbXVtLT52YWx1ZS5yZWFsLCAqYXJwLCBH RkNfUk5EX01PREUpOworKwkJfQorKwkgICAgfQorKwl9CisrCisrICAgICAgcmV0dXJuIHJldDsK KysgICAgfQorKworICAgc3dpdGNoIChhcmctPnRzLnR5cGUpCisgICAgIHsKKyAgICAgICBjYXNl IEJUX0lOVEVHRVI6CitAQCAtNTkxMiw3ICs2MDIyLDkgQEAgZ2ZjX3NpbXBsaWZ5X21vZCAoZ2Zj X2V4cHIgKmEsIGdmY19leHByICpwKQorICAgZ2ZjX2V4cHIgKnJlc3VsdDsKKyAgIGludCBraW5k OworIAorLSAgLyogRmlyc3QgY2hlY2sgcC4gICovCisrICBtcGZyX3QgYXI7CisrICBtcGZyX3Qg cHI7CisrCisgICBpZiAocC0+ZXhwcl90eXBlICE9IEVYUFJfQ09OU1RBTlQpCisgICAgIHJldHVy biBOVUxMOworIAorQEAgLTU5NDIsMTYgKzYwNTQsMjQgQEAgZ2ZjX3NpbXBsaWZ5X21vZCAoZ2Zj X2V4cHIgKmEsIGdmY19leHByICpwKQorICAgaWYgKGEtPmV4cHJfdHlwZSAhPSBFWFBSX0NPTlNU QU5UKQorICAgICByZXR1cm4gTlVMTDsKKyAKKysgIGlmIChhLT50cy50eXBlICE9IEJUX1JFQUwg JiYgYS0+dHMudHlwZSAhPSBCVF9JTlRFR0VSKQorKyAgICB7CisrICAgICAgZ2ZjX2ludGVybmFs X2Vycm9yICgiZ2ZjX3NpbXBsaWZ5X21vZCgpOiBCYWQgYXJndW1lbnRzIik7CisrICAgICAgcmV0 dXJuIE5VTEw7CisrICAgIH0KKysKKyAgIGtpbmQgPSBhLT50cy5raW5kID4gcC0+dHMua2luZCA/ IGEtPnRzLmtpbmQgOiBwLT50cy5raW5kOworLSAgcmVzdWx0ID0gZ2ZjX2dldF9jb25zdGFudF9l eHByIChhLT50cy50eXBlLCBraW5kLCAmYS0+d2hlcmUpOworIAorLSAgaWYgKGEtPnRzLnR5cGUg PT0gQlRfSU5URUdFUikKKy0gICAgbXB6X3RkaXZfciAocmVzdWx0LT52YWx1ZS5pbnRlZ2VyLCBh LT52YWx1ZS5pbnRlZ2VyLCBwLT52YWx1ZS5pbnRlZ2VyKTsKKy0gIGVsc2UKKysgIGlmIChzaW1w bGlmeV9pbnRfcmVhbF9wcm9tb3Rpb24yIChhLCBwLCAmYXIsICZwcikpCisgICAgIHsKKysgICAg ICByZXN1bHQgPSBnZmNfZ2V0X2NvbnN0YW50X2V4cHIgKEJUX1JFQUwsIGtpbmQsICZhLT53aGVy ZSk7CisgICAgICAgZ2ZjX3NldF9tb2RlbF9raW5kIChraW5kKTsKKy0gICAgICBtcGZyX2Ztb2Qg KHJlc3VsdC0+dmFsdWUucmVhbCwgYS0+dmFsdWUucmVhbCwgcC0+dmFsdWUucmVhbCwKKy0JCSBH RkNfUk5EX01PREUpOworKyAgICAgIG1wZnJfZm1vZCAocmVzdWx0LT52YWx1ZS5yZWFsLCBhciwg cHIsIEdGQ19STkRfTU9ERSk7CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIHJlc3Vs dCA9IGdmY19nZXRfY29uc3RhbnRfZXhwciAoQlRfSU5URUdFUiwga2luZCwgJmEtPndoZXJlKTsK KysgICAgICBtcHpfdGRpdl9yIChyZXN1bHQtPnZhbHVlLmludGVnZXIsIGEtPnZhbHVlLmludGVn ZXIsIHAtPnZhbHVlLmludGVnZXIpOworICAgICB9CisgCisgICByZXR1cm4gcmFuZ2VfY2hlY2sg KHJlc3VsdCwgIk1PRCIpOworQEAgLTU5NjQsNyArNjA4NCw5IEBAIGdmY19zaW1wbGlmeV9tb2R1 bG8gKGdmY19leHByICphLCBnZmNfZXhwciAqcCkKKyAgIGdmY19leHByICpyZXN1bHQ7CisgICBp bnQga2luZDsKKyAKKy0gIC8qIEZpcnN0IGNoZWNrIHAuICAqLworKyAgbXBmcl90IGFyOworKyAg bXBmcl90IHByOworKworICAgaWYgKHAtPmV4cHJfdHlwZSAhPSBFWFBSX0NPTlNUQU5UKQorICAg ICByZXR1cm4gTlVMTDsKKyAKK0BAIC01OTkxLDI4ICs2MTEzLDM2IEBAIGdmY19zaW1wbGlmeV9t b2R1bG8gKGdmY19leHByICphLCBnZmNfZXhwciAqcCkKKyAJZ2ZjX2ludGVybmFsX2Vycm9yICgi Z2ZjX3NpbXBsaWZ5X21vZHVsbygpOiBCYWQgYXJndW1lbnRzIik7CisgICAgIH0KKyAKKysgIGlm IChhLT50cy50eXBlICE9IEJUX1JFQUwgJiYgYS0+dHMudHlwZSAhPSBCVF9JTlRFR0VSKQorKyAg ICB7CisrICAgICAgZ2ZjX2ludGVybmFsX2Vycm9yICgiZ2ZjX3NpbXBsaWZ5X21vZHVsbygpOiBC YWQgYXJndW1lbnRzIik7CisrICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKysKKyAgIGlmIChh LT5leHByX3R5cGUgIT0gRVhQUl9DT05TVEFOVCkKKyAgICAgcmV0dXJuIE5VTEw7CisgCisgICBr aW5kID0gYS0+dHMua2luZCA+IHAtPnRzLmtpbmQgPyBhLT50cy5raW5kIDogcC0+dHMua2luZDsK Ky0gIHJlc3VsdCA9IGdmY19nZXRfY29uc3RhbnRfZXhwciAoYS0+dHMudHlwZSwga2luZCwgJmEt PndoZXJlKTsKKyAKKy0gIGlmIChhLT50cy50eXBlID09IEJUX0lOVEVHRVIpCistCW1wel9mZGl2 X3IgKHJlc3VsdC0+dmFsdWUuaW50ZWdlciwgYS0+dmFsdWUuaW50ZWdlciwgcC0+dmFsdWUuaW50 ZWdlcik7CistICBlbHNlCisrICBpZiAoc2ltcGxpZnlfaW50X3JlYWxfcHJvbW90aW9uMiAoYSwg cCwgJmFyLCAmcHIpKQorICAgICB7CisrICAgICAgcmVzdWx0ID0gZ2ZjX2dldF9jb25zdGFudF9l eHByIChCVF9SRUFMLCBraW5kLCAmYS0+d2hlcmUpOworICAgICAgIGdmY19zZXRfbW9kZWxfa2lu ZCAoa2luZCk7CistICAgICAgbXBmcl9mbW9kIChyZXN1bHQtPnZhbHVlLnJlYWwsIGEtPnZhbHVl LnJlYWwsIHAtPnZhbHVlLnJlYWwsCistICAgICAgICAgICAgICAgICBHRkNfUk5EX01PREUpOwor KyAgICAgIG1wZnJfZm1vZCAocmVzdWx0LT52YWx1ZS5yZWFsLCBhciwgcHIsIEdGQ19STkRfTU9E RSk7CisgICAgICAgaWYgKG1wZnJfY21wX3VpIChyZXN1bHQtPnZhbHVlLnJlYWwsIDApICE9IDAp CistICAgICAgICB7CistICAgICAgICAgIGlmIChtcGZyX3NpZ25iaXQgKGEtPnZhbHVlLnJlYWwp ICE9IG1wZnJfc2lnbmJpdCAocC0+dmFsdWUucmVhbCkpCistICAgICAgICAgICAgbXBmcl9hZGQg KHJlc3VsdC0+dmFsdWUucmVhbCwgcmVzdWx0LT52YWx1ZS5yZWFsLCBwLT52YWx1ZS5yZWFsLAor LSAgICAgICAgICAgICAgICAgICAgICBHRkNfUk5EX01PREUpOworLQkgICAgfQorLQkgIGVsc2UK Ky0gICAgICAgIG1wZnJfY29weXNpZ24gKHJlc3VsdC0+dmFsdWUucmVhbCwgcmVzdWx0LT52YWx1 ZS5yZWFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgcC0+dmFsdWUucmVhbCwgR0ZDX1JORF9N T0RFKTsKKysJeworKwkgIGlmIChtcGZyX3NpZ25iaXQgKGFyKSAhPSBtcGZyX3NpZ25iaXQgKHBy KSkKKysJICAgIG1wZnJfYWRkIChyZXN1bHQtPnZhbHVlLnJlYWwsIHJlc3VsdC0+dmFsdWUucmVh bCwgcHIsCisrCQkgICAgICBHRkNfUk5EX01PREUpOworKwl9CisrICAgICAgZWxzZQorKwltcGZy X2NvcHlzaWduIChyZXN1bHQtPnZhbHVlLnJlYWwsIHJlc3VsdC0+dmFsdWUucmVhbCwgcHIsCisr CQkgICAgICAgR0ZDX1JORF9NT0RFKTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAg cmVzdWx0ID0gZ2ZjX2dldF9jb25zdGFudF9leHByIChCVF9JTlRFR0VSLCBraW5kLCAmYS0+d2hl cmUpOworKyAgICAgIG1wel9mZGl2X3IgKHJlc3VsdC0+dmFsdWUuaW50ZWdlciwgYS0+dmFsdWUu aW50ZWdlciwgcC0+dmFsdWUuaW50ZWdlcik7CisgICAgIH0KKyAKKyAgIHJldHVybiByYW5nZV9j aGVjayAocmVzdWx0LCAiTU9EVUxPIik7CitAQCAtNzU3OCwyNyArNzcwOCw0MSBAQCBnZmNfZXhw ciAqCisgZ2ZjX3NpbXBsaWZ5X3NpZ24gKGdmY19leHByICp4LCBnZmNfZXhwciAqeSkKKyB7Cisg ICBnZmNfZXhwciAqcmVzdWx0OworKyAgYm9vbCBuZWc7CisgCisgICBpZiAoeC0+ZXhwcl90eXBl ICE9IEVYUFJfQ09OU1RBTlQgfHwgeS0+ZXhwcl90eXBlICE9IEVYUFJfQ09OU1RBTlQpCisgICAg IHJldHVybiBOVUxMOworIAorICAgcmVzdWx0ID0gZ2ZjX2dldF9jb25zdGFudF9leHByICh4LT50 cy50eXBlLCB4LT50cy5raW5kLCAmeC0+d2hlcmUpOworIAorKyAgc3dpdGNoICh5LT50cy50eXBl KQorKyAgICB7CisrICAgICAgY2FzZSBCVF9JTlRFR0VSOgorKwluZWcgPSAobXB6X3NnbiAoeS0+ dmFsdWUuaW50ZWdlcikgPCAwKTsKKysJYnJlYWs7CisrCisrICAgICAgY2FzZSBCVF9SRUFMOgor KwluZWcgPSAobXBmcl9zZ24gKHktPnZhbHVlLnJlYWwpIDwgMCk7CisrCWJyZWFrOworKworKyAg ICAgIGRlZmF1bHQ6CisrCWdmY19pbnRlcm5hbF9lcnJvciAoIkJhZCB0eXBlIGluIGdmY19zaW1w bGlmeV9zaWduIik7CisrICAgIH0KKysKKyAgIHN3aXRjaCAoeC0+dHMudHlwZSkKKyAgICAgewor ICAgICAgIGNhc2UgQlRfSU5URUdFUjoKKyAJbXB6X2FicyAocmVzdWx0LT52YWx1ZS5pbnRlZ2Vy LCB4LT52YWx1ZS5pbnRlZ2VyKTsKKy0JaWYgKG1wel9zZ24gKHktPnZhbHVlLmludGVnZXIpIDwg MCkKKysJaWYgKG5lZykKKyAJICBtcHpfbmVnIChyZXN1bHQtPnZhbHVlLmludGVnZXIsIHJlc3Vs dC0+dmFsdWUuaW50ZWdlcik7CisgCWJyZWFrOworIAorICAgICAgIGNhc2UgQlRfUkVBTDoKKy0J aWYgKGZsYWdfc2lnbl96ZXJvKQorKwlpZiAoZmxhZ19zaWduX3plcm8gJiYgeS0+dHMudHlwZSA9 PSBCVF9SRUFMKQorIAkgIG1wZnJfY29weXNpZ24gKHJlc3VsdC0+dmFsdWUucmVhbCwgeC0+dmFs dWUucmVhbCwgeS0+dmFsdWUucmVhbCwKKy0JCQlHRkNfUk5EX01PREUpOworKwkJCSBHRkNfUk5E X01PREUpOworIAllbHNlCistCSAgbXBmcl9zZXRzaWduIChyZXN1bHQtPnZhbHVlLnJlYWwsIHgt PnZhbHVlLnJlYWwsCistCQkJbXBmcl9zZ24gKHktPnZhbHVlLnJlYWwpIDwgMCA/IDEgOiAwLCBH RkNfUk5EX01PREUpOworKwkgIG1wZnJfc2V0c2lnbiAocmVzdWx0LT52YWx1ZS5yZWFsLCB4LT52 YWx1ZS5yZWFsLCBuZWcsIEdGQ19STkRfTU9ERSk7CisgCWJyZWFrOworIAorICAgICAgIGRlZmF1 bHQ6CitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50cmluc2lj X2ludF9yZWFsX2FycmF5X2NvbnN0X3Byb21vdGlvbl8xLmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfYXJyYXlfY29uc3RfcHJvbW90aW9uXzEuZgor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi4yNTc2Mzg1MjEzOQorLS0t IC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50cmluc2lj X2ludF9yZWFsX2FycmF5X2NvbnN0X3Byb21vdGlvbl8xLmYKK0BAIC0wLDAgKzEsMTggQEAKKysh IHsgZGctZG8gY29tcGlsZSB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjIiB9CisrIQorKyEgVGVz dCBwcm9tb3Rpb24gYmV0d2VlbiBpbnRlZ2VycyBhbmQgcmVhbHMgZm9yIG1vZCBhbmQgbW9kdWxv IHdoZXJlCisrISBBIGlzIGEgY29uc3RhbnQgYXJyYXkgYW5kIFAgaXMgemVyby4KKyshCisrISBD b21waWxhdGlvbiBlcnJvcnMgYXJlIGV4cGVjdGVkCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgRnJh bmNpc2NvIFJlZG9uZG8gTWFyY2hlbmEgPGZyYW5jaXNjby5tYXJjaGVuYUBjb2RldGhpbmsuY28u dWs+CisrISAgICAgICAgICAgICBhbmQgSmVmZiBMYXcgPGxhd0ByZWRoYXQuY29tPgorKyEgTW9k aWZpZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+Cisr IQorKyAgICAgIHByb2dyYW0gcHJvbW90aW9uX2ludF9yZWFsX2FycmF5X2NvbnN0CisrICAgICAg ICAgIHJlYWwgYSgyKSA9IG1vZChbMTIsIDM0XSwgMC4wKSo0ICAgICEgeyBkZy1lcnJvciAic2hh bGwgbm90IGJlIHplcm8iIH0KKysgICAgICAgICAgYSA9IG1vZChbMTIuMCwgMzQuMF0sIDApKjQg ICAgICAgICAgISB7IGRnLWVycm9yICJzaGFsbCBub3QgYmUgemVybyIgfQorKyAgICAgICAgICBy ZWFsIGIoMikgPSBtb2R1bG8oWzEyLCAzNF0sIDAuMCkqNCAhIHsgZGctZXJyb3IgInNoYWxsIG5v dCBiZSB6ZXJvIiB9CisrICAgICAgICAgIGIgPSBtb2R1bG8oWzEyLjAsIDM0LjBdLCAwKSo0ICAg ICAgICEgeyBkZy1lcnJvciAic2hhbGwgbm90IGJlIHplcm8iIH0KKysgICAgICBlbmQgcHJvZ3Jh bQorZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19p bnRfcmVhbF9hcnJheV9jb25zdF9wcm9tb3Rpb25fMi5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9kZWNfaW50cmluc2ljX2ludF9yZWFsX2FycmF5X2NvbnN0X3Byb21vdGlvbl8yLmYKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uYjc4YTQ2MDU0ZjQKKy0tLSAv ZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19p bnRfcmVhbF9hcnJheV9jb25zdF9wcm9tb3Rpb25fMi5mCitAQCAtMCwwICsxLDE4IEBACisrISB7 IGRnLWRvIGNvbXBpbGUgfQorKyEgeyBkZy1vcHRpb25zICItZmRlYy1wcm9tb3Rpb24iIH0KKysh CisrISBUZXN0IHByb21vdGlvbiBiZXR3ZWVuIGludGVnZXJzIGFuZCByZWFscyBmb3IgbW9kIGFu ZCBtb2R1bG8gd2hlcmUKKyshIEEgaXMgYSBjb25zdGFudCBhcnJheSBhbmQgUCBpcyB6ZXJvLgor KyEKKyshIENvbXBpbGF0aW9uIGVycm9ycyBhcmUgZXhwZWN0ZWQKKyshCisrISBDb250cmlidXRl ZCBieSBGcmFuY2lzY28gUmVkb25kbyBNYXJjaGVuYSA8ZnJhbmNpc2NvLm1hcmNoZW5hQGNvZGV0 aGluay5jby51az4KKyshICAgICAgICAgICAgIGFuZCBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+ CisrISBNb2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5r LmNvbT4KKyshCisrICAgICAgcHJvZ3JhbSBwcm9tb3Rpb25faW50X3JlYWxfYXJyYXlfY29uc3QK KysgICAgICAgICAgcmVhbCBhKDIpID0gbW9kKFsxMiwgMzRdLCAwLjApKjQgICAgISB7IGRnLWVy cm9yICJzaGFsbCBub3QgYmUgemVybyIgfQorKyAgICAgICAgICBhID0gbW9kKFsxMi4wLCAzNC4w XSwgMCkqNCAgICAgICAgICAhIHsgZGctZXJyb3IgInNoYWxsIG5vdCBiZSB6ZXJvIiB9CisrICAg ICAgICAgIHJlYWwgYigyKSA9IG1vZHVsbyhbMTIsIDM0XSwgMC4wKSo0ICEgeyBkZy1lcnJvciAi c2hhbGwgbm90IGJlIHplcm8iIH0KKysgICAgICAgICAgYiA9IG1vZHVsbyhbMTIuMCwgMzQuMF0s IDApKjQgICAgICAgISB7IGRnLWVycm9yICJzaGFsbCBub3QgYmUgemVybyIgfQorKyAgICAgIGVu ZCBwcm9ncmFtCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50 cmluc2ljX2ludF9yZWFsX2FycmF5X2NvbnN0X3Byb21vdGlvbl8zLmYgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfYXJyYXlfY29uc3RfcHJvbW90aW9u XzMuZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi4zMThhYjVkYjk3 ZQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50 cmluc2ljX2ludF9yZWFsX2FycmF5X2NvbnN0X3Byb21vdGlvbl8zLmYKK0BAIC0wLDAgKzEsMTgg QEAKKyshIHsgZGctZG8gY29tcGlsZSB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjIC1mbm8tZGVj LXByb21vdGlvbiIgfQorKyEKKyshIFRlc3QgcHJvbW90aW9uIGJldHdlZW4gaW50ZWdlcnMgYW5k IHJlYWxzIGZvciBtb2QgYW5kIG1vZHVsbyB3aGVyZQorKyEgQSBpcyBhIGNvbnN0YW50IGFycmF5 IGFuZCBQIGlzIHplcm8uCisrIQorKyEgQ29tcGlsYXRpb24gZXJyb3JzIGFyZSBleHBlY3RlZAor KyEKKyshIENvbnRyaWJ1dGVkIGJ5IEZyYW5jaXNjbyBSZWRvbmRvIE1hcmNoZW5hIDxmcmFuY2lz Y28ubWFyY2hlbmFAY29kZXRoaW5rLmNvLnVrPgorKyEgICAgICAgICAgICAgYW5kIEplZmYgTGF3 IDxsYXdAcmVkaGF0LmNvbT4KKyshIE1vZGlmaWVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVn Z2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAgICBwcm9ncmFtIHByb21vdGlvbl9pbnRf cmVhbF9hcnJheV9jb25zdAorKyAgICAgICAgICByZWFsIGEoMikgPSBtb2QoWzEyLCAzNF0sIDAu MCkqNCAgICAhIHsgZGctZXJyb3IgIidhJyBhbmQgJ3AnIGFyZ3VtZW50cyBvZiAnbW9kJyIgfQor KyAgICAgICAgICBhID0gbW9kKFsxMi4wLCAzNC4wXSwgMCkqNCAgICAgICAgICAhIHsgZGctZXJy b3IgIidhJyBhbmQgJ3AnIGFyZ3VtZW50cyBvZiAnbW9kJyIgfQorKyAgICAgICAgICByZWFsIGIo MikgPSBtb2R1bG8oWzEyLCAzNF0sIDAuMCkqNCAhIHsgZGctZXJyb3IgIidhJyBhbmQgJ3AnIGFy Z3VtZW50cyBvZiAnbW9kdWxvJyIgfQorKyAgICAgICAgICBiID0gbW9kdWxvKFsxMi4wLCAzNC4w XSwgMCkqNCAgICAgICAhIHsgZGctZXJyb3IgIidhJyBhbmQgJ3AnIGFyZ3VtZW50cyBvZiAnbW9k dWxvJyIgfQorKyAgICAgIGVuZCBwcm9ncmFtCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9kZWNfaW50cmluc2ljX2ludF9yZWFsX2NvbnN0X3Byb21vdGlvbl8xLmYgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfY29uc3RfcHJv bW90aW9uXzEuZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi4yN2Vi MjU4MmJiMgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9k ZWNfaW50cmluc2ljX2ludF9yZWFsX2NvbnN0X3Byb21vdGlvbl8xLmYKK0BAIC0wLDAgKzEsOTAg QEAKKyshIHsgZGctZG8gcnVuIH0KKyshIHsgZGctb3B0aW9ucyAiLWZkZWMgLWZpbml0LXJlYWw9 c25hbiIgfQorKyEKKyshIFRlc3QgcHJvbW90aW9uIGJldHdlZW4gaW50ZWdlcnMgYW5kIHJlYWxz IGluIGludHJpbnNpYyBvcGVyYXRpb25zLgorKyEgVGhlc2Ugb3BlcmF0aW9ucyBhcmU6IG1vZCwg bW9kdWxvLCBkaW0sIHNpZ24sIG1pbiwgbWF4LCBtaW5sb2MgYW5kCisrISBtYXhsb2MuCisrIQor KyEgQ29udHJpYnV0ZWQgYnkgRnJhbmNpc2NvIFJlZG9uZG8gTWFyY2hlbmEgPGZyYW5jaXNjby5t YXJjaGVuYUBjb2RldGhpbmsuY28udWs+CisrISAgICAgICAgICAgICBhbmQgSmVmZiBMYXcgPGxh d0ByZWRoYXQuY29tPgorKyEgTW9kaWZpZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVz dG9uQGNvZGV0aGluay5jb20+CisrIQorKyAgICAgIFBST0dSQU0gcHJvbW90aW9uX2ludF9yZWFs X2NvbnN0CisrICAgICAgICAhIGFycmF5X25hbiA0dGggcG9zaXRpb24gdmFsdWUgaXMgTkFOCisr ICAgICAgICBSRUFMIGFycmF5X25hbig0KQorKyAgICAgICAgREFUQSBhcnJheV9uYW4oMSkvLTQu MC8KKysgICAgICAgIERBVEEgYXJyYXlfbmFuKDIpLzMuMC8KKysgICAgICAgIERBVEEgYXJyYXlf bmFuKDMpLy0yLworKworKyAgICAgICAgSU5URUdFUiBtX2kvMC8KKysgICAgICAgIFJFQUwgbV9y LzAuMC8KKysKKysgICAgICAgIElOVEVHRVIgbWRfaS8wLworKyAgICAgICAgUkVBTCBtZF9yLzAu MC8KKysKKysgICAgICAgIElOVEVHRVIgZF9pLzAvCisrICAgICAgICBSRUFMIGRfci8wLjAvCisr CisrICAgICAgICBJTlRFR0VSIHNfaS8wLworKyAgICAgICAgUkVBTCBzX3IvMC4wLworKworKyAg ICAgICAgSU5URUdFUiBtbl9pLzAvCisrICAgICAgICBSRUFMIG1uX3IvMC4wLworKworKyAgICAg ICAgSU5URUdFUiBteF9pLzAvCisrICAgICAgICBSRUFMIG14X3IvMC4wLworKworKyAgICAgICAg bV9pID0gTU9EKDQsIDMpCisrICAgICAgICBpZiAobV9pIC5uZS4gMSkgU1RPUCAxCisrICAgICAg ICBtX3IgPSBNT0QoNC4wLCAzLjApCisrICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBE LTYpIFNUT1AgMgorKyAgICAgICAgbV9yID0gTU9EKDQsIDMuMCkKKysgICAgICAgIGlmIChhYnMo bV9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAzCisrICAgICAgICBtX3IgPSBNT0QoNC4wLCAzKQor KyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDQKKysKKysgICAgICAg IG1kX2kgPSBNT0RVTE8oNCwgMykKKysgICAgICAgIGlmIChtZF9pIC5uZS4gMSkgU1RPUCA1Cisr ICAgICAgICBtZF9yID0gTU9EVUxPKDQuMCwgMy4wKQorKyAgICAgICAgaWYgKGFicyhtZF9yIC0g MS4wKSA+IDEuMEQtNikgU1RPUCA2CisrICAgICAgICBtZF9yID0gTU9EVUxPKDQsIDMuMCkKKysg ICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgNworKyAgICAgICAgbWRf ciA9IE1PRFVMTyg0LjAsIDMpCisrICAgICAgICBpZiAoYWJzKG1kX3IgLSAxLjApID4gMS4wRC02 KSBTVE9QIDgKKysKKysgICAgICAgIGRfaSA9IERJTSg0LCAzKQorKyAgICAgICAgaWYgKGRfaSAu bmUuIDEpIFNUT1AgOQorKyAgICAgICAgZF9yID0gRElNKDQuMCwgMy4wKQorKyAgICAgICAgaWYg KGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDEwCisrICAgICAgICBkX3IgPSBESU0oNC4w LCAzKQorKyAgICAgICAgaWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDExCisrICAg ICAgICBkX3IgPSBESU0oMywgNC4wKQorKyAgICAgICAgaWYgKGFicyhkX3IpID4gMS4wRC02KSBT VE9QIDEyCisrCisrICAgICAgICBzX2kgPSBTSUdOKC00LCAzKQorKyAgICAgICAgaWYgKHNfaSAu bmUuIDQpIFNUT1AgMTMKKysgICAgICAgIHNfciA9IFNJR04oNC4wLCAtMy4wKQorKyAgICAgICAg aWYgKGFicyhzX3IgLSAoLTQuMCkpID4gMS4wRC02KSBTVE9QIDE0CisrICAgICAgICBzX3IgPSBT SUdOKDQuMCwgLTMpCisrICAgICAgICBpZiAoYWJzKHNfciAtICgtNC4wKSkgPiAxLjBELTYpIFNU T1AgMTUKKysgICAgICAgIHNfciA9IFNJR04oLTQsIDMuMCkKKysgICAgICAgIGlmIChhYnMoc19y IC0gNC4wKSA+IDEuMEQtNikgU1RPUCAxNgorKworKyAgICAgICAgbXhfaSA9IE1BWCgtNCwgLTMs IDIsIDEpCisrICAgICAgICBpZiAobXhfaSAubmUuIDIpIFNUT1AgMTcKKysgICAgICAgIG14X3Ig PSBNQVgoLTQuMCwgLTMuMCwgMi4wLCAxLjApCisrICAgICAgICBpZiAoYWJzKG14X3IgLSAyLjAp ID4gMS4wRC02KSBTVE9QIDE4CisrICAgICAgICBteF9yID0gTUFYKC00LCAtMy4wLCAyLjAsIDEp CisrICAgICAgICBpZiAoYWJzKG14X3IgLSAyLjApID4gMS4wRC02KSBTVE9QIDE5CisrICAgICAg ICBteF9pID0gTUFYTE9DKGFycmF5X25hbiwgMSkKKysgICAgICAgIGlmIChteF9pIC5uZS4gMikg U1RPUCAyMAorKworKyAgICAgICAgbW5faSA9IE1JTigtNCwgLTMsIDIsIDEpCisrICAgICAgICBp ZiAobW5faSAubmUuIC00KSBTVE9QIDIxCisrICAgICAgICBtbl9yID0gTUlOKC00LjAsIC0zLjAs IDIuMCwgMS4wKQorKyAgICAgICAgaWYgKGFicyhtbl9yIC0gKC00LjApKSA+IDEuMEQtNikgU1RP UCAyMgorKyAgICAgICAgbW5fciA9IE1JTigtNCwgLTMuMCwgMi4wLCAxKQorKyAgICAgICAgaWYg KGFicyhtbl9yIC0gKC00LjApKSA+IDEuMEQtNikgU1RPUCAyMworKyAgICAgICAgbW5faSA9IE1J TkxPQyhhcnJheV9uYW4sIDEpCisrICAgICAgICBpZiAobW5faSAubmUuIDEpIFNUT1AgMjQKKysg ICAgICBFTkQgUFJPR1JBTQorZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv ZGVjX2ludHJpbnNpY19pbnRfcmVhbF9jb25zdF9wcm9tb3Rpb25fMi5mIGIvZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9kZWNfaW50cmluc2ljX2ludF9yZWFsX2NvbnN0X3Byb21vdGlvbl8yLmYK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uYmRkMDE3YjcyODAKKy0t LSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNp Y19pbnRfcmVhbF9jb25zdF9wcm9tb3Rpb25fMi5mCitAQCAtMCwwICsxLDkwIEBACisrISB7IGRn LWRvIHJ1biB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjLXByb21vdGlvbiAtZmluaXQtcmVhbD1z bmFuIiB9CisrIQorKyEgVGVzdCBwcm9tb3Rpb24gYmV0d2VlbiBpbnRlZ2VycyBhbmQgcmVhbHMg aW4gaW50cmluc2ljIG9wZXJhdGlvbnMuCisrISBUaGVzZSBvcGVyYXRpb25zIGFyZTogbW9kLCBt b2R1bG8sIGRpbSwgc2lnbiwgbWluLCBtYXgsIG1pbmxvYyBhbmQKKyshIG1heGxvYy4KKyshCisr ISBDb250cmlidXRlZCBieSBGcmFuY2lzY28gUmVkb25kbyBNYXJjaGVuYSA8ZnJhbmNpc2NvLm1h cmNoZW5hQGNvZGV0aGluay5jby51az4KKyshICAgICAgICAgICAgIGFuZCBKZWZmIExhdyA8bGF3 QHJlZGhhdC5jb20+CisrISBNb2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0 b25AY29kZXRoaW5rLmNvbT4KKyshCisrICAgICAgUFJPR1JBTSBwcm9tb3Rpb25faW50X3JlYWxf Y29uc3QKKysgICAgICAgICEgYXJyYXlfbmFuIDR0aCBwb3NpdGlvbiB2YWx1ZSBpcyBOQU4KKysg ICAgICAgIFJFQUwgYXJyYXlfbmFuKDQpCisrICAgICAgICBEQVRBIGFycmF5X25hbigxKS8tNC4w LworKyAgICAgICAgREFUQSBhcnJheV9uYW4oMikvMy4wLworKyAgICAgICAgREFUQSBhcnJheV9u YW4oMykvLTIvCisrCisrICAgICAgICBJTlRFR0VSIG1faS8wLworKyAgICAgICAgUkVBTCBtX3Iv MC4wLworKworKyAgICAgICAgSU5URUdFUiBtZF9pLzAvCisrICAgICAgICBSRUFMIG1kX3IvMC4w LworKworKyAgICAgICAgSU5URUdFUiBkX2kvMC8KKysgICAgICAgIFJFQUwgZF9yLzAuMC8KKysK KysgICAgICAgIElOVEVHRVIgc19pLzAvCisrICAgICAgICBSRUFMIHNfci8wLjAvCisrCisrICAg ICAgICBJTlRFR0VSIG1uX2kvMC8KKysgICAgICAgIFJFQUwgbW5fci8wLjAvCisrCisrICAgICAg ICBJTlRFR0VSIG14X2kvMC8KKysgICAgICAgIFJFQUwgbXhfci8wLjAvCisrCisrICAgICAgICBt X2kgPSBNT0QoNCwgMykKKysgICAgICAgIGlmIChtX2kgLm5lLiAxKSBTVE9QIDEKKysgICAgICAg IG1fciA9IE1PRCg0LjAsIDMuMCkKKysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQt NikgU1RPUCAyCisrICAgICAgICBtX3IgPSBNT0QoNCwgMy4wKQorKyAgICAgICAgaWYgKGFicyht X3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDMKKysgICAgICAgIG1fciA9IE1PRCg0LjAsIDMpCisr ICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgNAorKworKyAgICAgICAg bWRfaSA9IE1PRFVMTyg0LCAzKQorKyAgICAgICAgaWYgKG1kX2kgLm5lLiAxKSBTVE9QIDUKKysg ICAgICAgIG1kX3IgPSBNT0RVTE8oNC4wLCAzLjApCisrICAgICAgICBpZiAoYWJzKG1kX3IgLSAx LjApID4gMS4wRC02KSBTVE9QIDYKKysgICAgICAgIG1kX3IgPSBNT0RVTE8oNCwgMy4wKQorKyAg ICAgICAgaWYgKGFicyhtZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCA3CisrICAgICAgICBtZF9y ID0gTU9EVUxPKDQuMCwgMykKKysgICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYp IFNUT1AgOAorKworKyAgICAgICAgZF9pID0gRElNKDQsIDMpCisrICAgICAgICBpZiAoZF9pIC5u ZS4gMSkgU1RPUCA5CisrICAgICAgICBkX3IgPSBESU0oNC4wLCAzLjApCisrICAgICAgICBpZiAo YWJzKGRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTAKKysgICAgICAgIGRfciA9IERJTSg0LjAs IDMpCisrICAgICAgICBpZiAoYWJzKGRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTEKKysgICAg ICAgIGRfciA9IERJTSgzLCA0LjApCisrICAgICAgICBpZiAoYWJzKGRfcikgPiAxLjBELTYpIFNU T1AgMTIKKysKKysgICAgICAgIHNfaSA9IFNJR04oLTQsIDMpCisrICAgICAgICBpZiAoc19pIC5u ZS4gNCkgU1RPUCAxMworKyAgICAgICAgc19yID0gU0lHTig0LjAsIC0zLjApCisrICAgICAgICBp ZiAoYWJzKHNfciAtICgtNC4wKSkgPiAxLjBELTYpIFNUT1AgMTQKKysgICAgICAgIHNfciA9IFNJ R04oNC4wLCAtMykKKysgICAgICAgIGlmIChhYnMoc19yIC0gKC00LjApKSA+IDEuMEQtNikgU1RP UCAxNQorKyAgICAgICAgc19yID0gU0lHTigtNCwgMy4wKQorKyAgICAgICAgaWYgKGFicyhzX3Ig LSA0LjApID4gMS4wRC02KSBTVE9QIDE2CisrCisrICAgICAgICBteF9pID0gTUFYKC00LCAtMywg MiwgMSkKKysgICAgICAgIGlmIChteF9pIC5uZS4gMikgU1RPUCAxNworKyAgICAgICAgbXhfciA9 IE1BWCgtNC4wLCAtMy4wLCAyLjAsIDEuMCkKKysgICAgICAgIGlmIChhYnMobXhfciAtIDIuMCkg PiAxLjBELTYpIFNUT1AgMTgKKysgICAgICAgIG14X3IgPSBNQVgoLTQsIC0zLjAsIDIuMCwgMSkK KysgICAgICAgIGlmIChhYnMobXhfciAtIDIuMCkgPiAxLjBELTYpIFNUT1AgMTkKKysgICAgICAg IG14X2kgPSBNQVhMT0MoYXJyYXlfbmFuLCAxKQorKyAgICAgICAgaWYgKG14X2kgLm5lLiAyKSBT VE9QIDIwCisrCisrICAgICAgICBtbl9pID0gTUlOKC00LCAtMywgMiwgMSkKKysgICAgICAgIGlm IChtbl9pIC5uZS4gLTQpIFNUT1AgMjEKKysgICAgICAgIG1uX3IgPSBNSU4oLTQuMCwgLTMuMCwg Mi4wLCAxLjApCisrICAgICAgICBpZiAoYWJzKG1uX3IgLSAoLTQuMCkpID4gMS4wRC02KSBTVE9Q IDIyCisrICAgICAgICBtbl9yID0gTUlOKC00LCAtMy4wLCAyLjAsIDEpCisrICAgICAgICBpZiAo YWJzKG1uX3IgLSAoLTQuMCkpID4gMS4wRC02KSBTVE9QIDIzCisrICAgICAgICBtbl9pID0gTUlO TE9DKGFycmF5X25hbiwgMSkKKysgICAgICAgIGlmIChtbl9pIC5uZS4gMSkgU1RPUCAyNAorKyAg ICAgIEVORCBQUk9HUkFNCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9k ZWNfaW50cmluc2ljX2ludF9yZWFsX2NvbnN0X3Byb21vdGlvbl8zLmYgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfY29uc3RfcHJvbW90aW9uXzMuZgor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi5jZTkwYTU2NjdkNgorLS0t IC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50cmluc2lj X2ludF9yZWFsX2NvbnN0X3Byb21vdGlvbl8zLmYKK0BAIC0wLDAgKzEsOTIgQEAKKyshIHsgZGct ZG8gY29tcGlsZSB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjIC1mbm8tZGVjLXByb21vdGlvbiAt ZmluaXQtcmVhbD1zbmFuIiB9CisrIQorKyEgVGVzdCB0aGF0IHRoZXJlIGlzIG5vIHByb21vdGlv biBiZXR3ZWVuIGludGVnZXJzIGFuZCByZWFscyBpbgorKyEgaW50cmluc2ljIG9wZXJhdGlvbnMu CisrIQorKyEgVGhlc2Ugb3BlcmF0aW9ucyBhcmU6IG1vZCwgbW9kdWxvLCBkaW0sIHNpZ24sIG1p biwgbWF4LCBtaW5sb2MgYW5kCisrISBtYXhsb2MuCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgRnJh bmNpc2NvIFJlZG9uZG8gTWFyY2hlbmEgPGZyYW5jaXNjby5tYXJjaGVuYUBjb2RldGhpbmsuY28u dWs+CisrISAgICAgICAgICAgICBhbmQgSmVmZiBMYXcgPGxhd0ByZWRoYXQuY29tPgorKyEgTW9k aWZpZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+Cisr IQorKyAgICAgIFBST0dSQU0gcHJvbW90aW9uX2ludF9yZWFsX2NvbnN0CisrICAgICAgICAhIGFy cmF5X25hbiA0dGggcG9zaXRpb24gdmFsdWUgaXMgTkFOCisrICAgICAgICBSRUFMIGFycmF5X25h big0KQorKyAgICAgICAgREFUQSBhcnJheV9uYW4oMSkvLTQuMC8KKysgICAgICAgIERBVEEgYXJy YXlfbmFuKDIpLzMuMC8KKysgICAgICAgIERBVEEgYXJyYXlfbmFuKDMpLy0yLworKworKyAgICAg ICAgSU5URUdFUiBtX2kvMC8KKysgICAgICAgIFJFQUwgbV9yLzAuMC8KKysKKysgICAgICAgIElO VEVHRVIgbWRfaS8wLworKyAgICAgICAgUkVBTCBtZF9yLzAuMC8KKysKKysgICAgICAgIElOVEVH RVIgZF9pLzAvCisrICAgICAgICBSRUFMIGRfci8wLjAvCisrCisrICAgICAgICBJTlRFR0VSIHNf aS8wLworKyAgICAgICAgUkVBTCBzX3IvMC4wLworKworKyAgICAgICAgSU5URUdFUiBtbl9pLzAv CisrICAgICAgICBSRUFMIG1uX3IvMC4wLworKworKyAgICAgICAgSU5URUdFUiBteF9pLzAvCisr ICAgICAgICBSRUFMIG14X3IvMC4wLworKworKyAgICAgICAgbV9pID0gTU9EKDQsIDMpCisrICAg ICAgICBpZiAobV9pIC5uZS4gMSkgU1RPUCAxCisrICAgICAgICBtX3IgPSBNT0QoNC4wLCAzLjAp CisrICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMgorKyAgICAgICAg bV9yID0gTU9EKDQsIDMuMCkgISB7IGRnLWVycm9yICInYScgYW5kICdwJyBhcmd1bWVudHMiIH0K KysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAzCisrICAgICAgICBt X3IgPSBNT0QoNC4wLCAzKSAhIHsgZGctZXJyb3IgIidhJyBhbmQgJ3AnIGFyZ3VtZW50cyIgfQor KyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDQKKysKKysgICAgICAg IG1kX2kgPSBNT0RVTE8oNCwgMykKKysgICAgICAgIGlmIChtZF9pIC5uZS4gMSkgU1RPUCA1Cisr ICAgICAgICBtZF9yID0gTU9EVUxPKDQuMCwgMy4wKQorKyAgICAgICAgaWYgKGFicyhtZF9yIC0g MS4wKSA+IDEuMEQtNikgU1RPUCA2CisrICAgICAgICBtZF9yID0gTU9EVUxPKDQsIDMuMCkgISB7 IGRnLWVycm9yICInYScgYW5kICdwJyBhcmd1bWVudHMiIH0KKysgICAgICAgIGlmIChhYnMobWRf ciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgNworKyAgICAgICAgbWRfciA9IE1PRFVMTyg0LjAsIDMp ICEgeyBkZy1lcnJvciAiJ2EnIGFuZCAncCcgYXJndW1lbnRzIiB9CisrICAgICAgICBpZiAoYWJz KG1kX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDgKKysKKysgICAgICAgIGRfaSA9IERJTSg0LCAz KQorKyAgICAgICAgaWYgKGRfaSAubmUuIDEpIFNUT1AgOQorKyAgICAgICAgZF9yID0gRElNKDQu MCwgMy4wKQorKyAgICAgICAgaWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDEwCisr ICAgICAgICBkX3IgPSBESU0oNC4wLCAzKSAhIHsgZGctZXJyb3IgIid4JyBhbmQgJ3knIGFyZ3Vt ZW50cyIgfQorKyAgICAgICAgaWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDExCisr ICAgICAgICBkX3IgPSBESU0oMywgNC4wKSAhIHsgZGctZXJyb3IgIid4JyBhbmQgJ3knIGFyZ3Vt ZW50cyIgfQorKyAgICAgICAgaWYgKGFicyhkX3IpID4gMS4wRC02KSBTVE9QIDEyCisrCisrICAg ICAgICBzX2kgPSBTSUdOKC00LCAzKQorKyAgICAgICAgaWYgKHNfaSAubmUuIDQpIFNUT1AgMTMK KysgICAgICAgIHNfciA9IFNJR04oNC4wLCAtMy4wKQorKyAgICAgICAgaWYgKGFicyhzX3IgLSAo LTQuMCkpID4gMS4wRC02KSBTVE9QIDE0CisrICAgICAgICBzX3IgPSBTSUdOKDQuMCwgLTMpICEg eyBkZy1lcnJvciAiJ2InIGFyZ3VtZW50IiB9CisrICAgICAgICBpZiAoYWJzKHNfciAtICgtNC4w KSkgPiAxLjBELTYpIFNUT1AgMTUKKysgICAgICAgIHNfciA9IFNJR04oLTQsIDMuMCkgISB7IGRn LWVycm9yICInYicgYXJndW1lbnQiIH0KKysgICAgICAgIGlmIChhYnMoc19yIC0gNC4wKSA+IDEu MEQtNikgU1RPUCAxNgorKworKyAgICAgICAgbXhfaSA9IE1BWCgtNCwgLTMsIDIsIDEpCisrICAg ICAgICBpZiAobXhfaSAubmUuIDIpIFNUT1AgMTcKKysgICAgICAgIG14X3IgPSBNQVgoLTQuMCwg LTMuMCwgMi4wLCAxLjApCisrICAgICAgICBpZiAoYWJzKG14X3IgLSAyLjApID4gMS4wRC02KSBT VE9QIDE4CisrICAgICAgICBteF9yID0gTUFYKC00LCAtMy4wLCAyLjAsIDEpICEgeyBkZy1lcnJv ciAiJ2EyJyBhcmd1bWVudCIgfQorKyAgICAgICAgaWYgKGFicyhteF9yIC0gMi4wKSA+IDEuMEQt NikgU1RPUCAxOQorKyAgICAgICAgbXhfaSA9IE1BWExPQyhhcnJheV9uYW4sIDEpCisrICAgICAg ICBpZiAobXhfaSAubmUuIDIpIFNUT1AgMjAKKysKKysgICAgICAgIG1uX2kgPSBNSU4oLTQsIC0z LCAyLCAxKQorKyAgICAgICAgaWYgKG1uX2kgLm5lLiAtNCkgU1RPUCAyMQorKyAgICAgICAgbW5f ciA9IE1JTigtNC4wLCAtMy4wLCAyLjAsIDEuMCkKKysgICAgICAgIGlmIChhYnMobW5fciAtICgt NC4wKSkgPiAxLjBELTYpIFNUT1AgMjIKKysgICAgICAgIG1uX3IgPSBNSU4oLTQsIC0zLjAsIDIu MCwgMSkgISB7IGRnLWVycm9yICInYTInIGFyZ3VtZW50IiB9CisrICAgICAgICBpZiAoYWJzKG1u X3IgLSAoLTQuMCkpID4gMS4wRC02KSBTVE9QIDIzCisrICAgICAgICBtbl9pID0gTUlOTE9DKGFy cmF5X25hbiwgMSkKKysgICAgICAgIGlmIChtbl9pIC5uZS4gMSkgU1RPUCAyNAorKyAgICAgIEVO RCBQUk9HUkFNCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50 cmluc2ljX2ludF9yZWFsX3Byb21vdGlvbl8xLmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2RlY19pbnRyaW5zaWNfaW50X3JlYWxfcHJvbW90aW9uXzEuZgorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwMDAwLi41YzJjZDkzMWE0YgorLS0tIC9kZXYvbnVsbAorKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50cmluc2ljX2ludF9yZWFsX3Byb21vdGlv bl8xLmYKK0BAIC0wLDAgKzEsMTMwIEBACisrISB7IGRnLWRvIHJ1biB9CisrISB7IGRnLW9wdGlv bnMgIi1mZGVjIiB9CisrIQorKyEgVGVzdCBwcm9tb3Rpb24gYmV0d2VlbiBpbnRlZ2VycyBhbmQg cmVhbHMgaW4gaW50cmluc2ljIG9wZXJhdGlvbnMuCisrISBUaGVzZSBvcGVyYXRpb25zIGFyZTog bW9kLCBtb2R1bG8sIGRpbSwgc2lnbiwgbWluLCBtYXgsIG1pbmxvYyBhbmQKKyshIG1heGxvYy4K KyshCisrISBDb250cmlidXRlZCBieSBGcmFuY2lzY28gUmVkb25kbyBNYXJjaGVuYSA8ZnJhbmNp c2NvLm1hcmNoZW5hQGNvZGV0aGluay5jby51az4KKyshICAgICAgICAgICAgIGFuZCBKZWZmIExh dyA8bGF3QHJlZGhhdC5jb20+CisrISBNb2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5l Z2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrICAgICAgUFJPR1JBTSBwcm9tb3Rpb25faW50 X3JlYWwKKysgICAgICAgIFJFQUwgbC8wLjAvCisrICAgICAgICBJTlRFR0VSIGFfaS80LworKyAg ICAgICAgSU5URUdFUio0IGEyX2kvNC8KKysgICAgICAgIElOVEVHRVIgYl9pLzMvCisrICAgICAg ICBJTlRFR0VSKjggYjJfaS8zLworKyAgICAgICAgSU5URUdFUiB4X2kvMi8KKysgICAgICAgIElO VEVHRVIgeV9pLzEvCisrICAgICAgICBSRUFMIGFfci80LjAvCisrICAgICAgICBSRUFMKjQgYTJf ci80LjAvCisrICAgICAgICBSRUFMIGJfci8zLjAvCisrICAgICAgICBSRUFMKjggYjJfci8zLjAv CisrICAgICAgICBSRUFMIHhfci8yLjAvCisrICAgICAgICBSRUFMIHlfci8xLjAvCisrCisrICAg ICAgICBSRUFMIGFycmF5X25hbig0KQorKyAgICAgICAgREFUQSBhcnJheV9uYW4oMSkvLTQuMC8K KysgICAgICAgIERBVEEgYXJyYXlfbmFuKDIpLzMuMC8KKysgICAgICAgIERBVEEgYXJyYXlfbmFu KDMpLy0yLworKworKyAgICAgICAgSU5URUdFUiBtX2kvMC8KKysgICAgICAgIFJFQUwgbV9yLzAu MC8KKysKKysgICAgICAgIElOVEVHRVIgbWRfaS8wLworKyAgICAgICAgUkVBTCBtZF9yLzAuMC8K KysKKysgICAgICAgIElOVEVHRVIgZF9pLzAvCisrICAgICAgICBSRUFMIGRfci8wLjAvCisrCisr ICAgICAgICBJTlRFR0VSIHNfaS8wLworKyAgICAgICAgUkVBTCBzX3IvMC4wLworKworKyAgICAg ICAgSU5URUdFUiBtbl9pLzAvCisrICAgICAgICBSRUFMIG1uX3IvMC4wLworKworKyAgICAgICAg SU5URUdFUiBteF9pLzAvCisrICAgICAgICBSRUFMIG14X3IvMC4wLworKworKyAgICAgICAgISBh cnJheV9uYW4gNHRoIHBvc2l0aW9uIHZhbHVlIGlzIE5BTgorKyAgICAgICAgYXJyYXlfbmFuKDQp ID0gMC9sCisrCisrICAgICAgICBtX2kgPSBNT0QoYV9pLCBiX2kpCisrICAgICAgICBpZiAobV9p IC5uZS4gMSkgU1RPUCAxCisrICAgICAgICBtX2kgPSBNT0QoYTJfaSwgYjJfaSkKKysgICAgICAg IGlmIChtX2kgLm5lLiAxKSBTVE9QIDIKKysgICAgICAgIG1fciA9IE1PRChhX3IsIGJfcikKKysg ICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAzCisrICAgICAgICBtX3Ig PSBNT0QoYTJfciwgYjJfcikKKysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQtNikg U1RPUCA0CisrICAgICAgICBtX3IgPSBNT0QoYV9pLCBiX3IpCisrICAgICAgICBpZiAoYWJzKG1f ciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgNQorKyAgICAgICAgbV9yID0gTU9EKGFfciwgYl9pKQor KyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDYKKysKKysgICAgICAg IG1kX2kgPSBNT0RVTE8oYV9pLCBiX2kpCisrICAgICAgICBpZiAobWRfaSAubmUuIDEpIFNUT1Ag NworKyAgICAgICAgbWRfaSA9IE1PRFVMTyhhMl9pLCBiMl9pKQorKyAgICAgICAgaWYgKG1kX2kg Lm5lLiAxKSBTVE9QIDgKKysgICAgICAgIG1kX3IgPSBNT0RVTE8oYV9yLCBiX3IpCisrICAgICAg ICBpZiAoYWJzKG1kX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDkKKysgICAgICAgIG1kX3IgPSBN T0RVTE8oYTJfciwgYjJfcikKKysgICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYp IFNUT1AgMTAKKysgICAgICAgIG1kX3IgPSBNT0RVTE8oYV9pLCBiX3IpCisrICAgICAgICBpZiAo YWJzKG1kX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDExCisrICAgICAgICBtZF9yID0gTU9EVUxP KGFfciwgYl9pKQorKyAgICAgICAgaWYgKGFicyhtZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAx MgorKworKyAgICAgICAgZF9pID0gRElNKGFfaSwgYl9pKQorKyAgICAgICAgaWYgKGRfaSAubmUu IDEpIFNUT1AgMTMKKysgICAgICAgIGRfaSA9IERJTShhMl9pLCBiMl9pKQorKyAgICAgICAgaWYg KGRfaSAubmUuIDEpIFNUT1AgMTQKKysgICAgICAgIGRfciA9IERJTShhX3IsIGJfcikKKysgICAg ICAgIGlmIChhYnMoZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxNQorKyAgICAgICAgZF9yID0g RElNKGEyX3IsIGIyX3IpCisrICAgICAgICBpZiAoYWJzKGRfciAtIDEuMCkgPiAxLjBELTYpIFNU T1AgMTYKKysgICAgICAgIGRfciA9IERJTShhX3IsIGJfaSkKKysgICAgICAgIGlmIChhYnMoZF9y IC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxNworKyAgICAgICAgZF9yID0gRElNKGJfaSwgYV9yKQor KyAgICAgICAgaWYgKGFicyhkX3IpID4gMS4wRC02KSBTVE9QIDE4CisrCisrICAgICAgICBzX2kg PSBTSUdOKC1hX2ksIGJfaSkKKysgICAgICAgIGlmIChzX2kgLm5lLiA0KSBTVE9QIDE5CisrICAg ICAgICBzX2kgPSBTSUdOKC1hMl9pLCBiMl9pKQorKyAgICAgICAgaWYgKHNfaSAubmUuIDQpIFNU T1AgMjAKKysgICAgICAgIHNfciA9IFNJR04oYV9yLCAtYl9yKQorKyAgICAgICAgaWYgKGFicyhz X3IgLSAoLWFfcikpID4gMS4wRC02KSBTVE9QIDIxCisrICAgICAgICBzX3IgPSBTSUdOKGEyX3Is IC1iMl9yKQorKyAgICAgICAgaWYgKGFicyhzX3IgLSAoLWEyX3IpKSA+IDEuMEQtNikgU1RPUCAy MgorKyAgICAgICAgc19yID0gU0lHTihhX3IsIC1iX2kpCisrICAgICAgICBpZiAoYWJzKHNfciAt ICgtYV9yKSkgPiAxLjBELTYpIFNUT1AgMjMKKysgICAgICAgIHNfciA9IFNJR04oLWFfaSwgYl9y KQorKyAgICAgICAgaWYgKGFicyhzX3IgLSBhX3IpID4gMS4wRC02KSBTVE9QIDI0CisrCisrICAg ICAgICBteF9pID0gTUFYKC1hX2ksIC1iX2ksIHhfaSwgeV9pKQorKyAgICAgICAgaWYgKG14X2kg Lm5lLiB4X2kpIFNUT1AgMjUKKysgICAgICAgIG14X2kgPSBNQVgoLWEyX2ksIC1iMl9pLCB4X2ks IHlfaSkKKysgICAgICAgIGlmIChteF9pIC5uZS4geF9pKSBTVE9QIDI2CisrICAgICAgICBteF9y ID0gTUFYKC1hX3IsIC1iX3IsIHhfciwgeV9yKQorKyAgICAgICAgaWYgKGFicyhteF9yIC0geF9y KSA+IDEuMEQtNikgU1RPUCAyNworKyAgICAgICAgbXhfciA9IE1BWCgtYV9yLCAtYl9yLCB4X3Is IHlfcikKKysgICAgICAgIGlmIChhYnMobXhfciAtIHhfcikgPiAxLjBELTYpIFNUT1AgMjgKKysg ICAgICAgIG14X3IgPSBNQVgoLWFfaSwgLWJfciwgeF9yLCB5X2kpCisrICAgICAgICBpZiAoYWJz KG14X3IgLSB4X3IpID4gMS4wRC02KSBTVE9QIDI5CisrICAgICAgICBteF9pID0gTUFYTE9DKGFy cmF5X25hbiwgMSkKKysgICAgICAgIGlmIChteF9pIC5uZS4gMikgU1RPUCAzMAorKworKyAgICAg ICAgbW5faSA9IE1JTigtYV9pLCAtYl9pLCB4X2ksIHlfaSkKKysgICAgICAgIGlmIChtbl9pIC5u ZS4gLWFfaSkgU1RPUCAzMQorKyAgICAgICAgbW5faSA9IE1JTigtYTJfaSwgLWIyX2ksIHhfaSwg eV9pKQorKyAgICAgICAgaWYgKG1uX2kgLm5lLiAtYTJfaSkgU1RPUCAzMgorKyAgICAgICAgbW5f ciA9IE1JTigtYV9yLCAtYl9yLCB4X3IsIHlfcikKKysgICAgICAgIGlmIChhYnMobW5fciAtICgt YV9yKSkgPiAxLjBELTYpIFNUT1AgMzMKKysgICAgICAgIG1uX3IgPSBNSU4oLWEyX3IsIC1iMl9y LCB4X3IsIHlfcikKKysgICAgICAgIGlmIChhYnMobW5fciAtICgtYTJfcikpID4gMS4wRC02KSBT VE9QIDM0CisrICAgICAgICBtbl9yID0gTUlOKC1hX2ksIC1iX3IsIHhfciwgeV9pKQorKyAgICAg ICAgaWYgKGFicyhtbl9yIC0gKC1hX3IpKSA+IDEuMEQtNikgU1RPUCAzNQorKyAgICAgICAgbW5f aSA9IE1JTkxPQyhhcnJheV9uYW4sIDEpCisrICAgICAgICBpZiAobW5faSAubmUuIDEpIFNUT1Ag MzYKKysgICAgICBFTkQgUFJPR1JBTQorZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9wcm9tb3Rpb25fMi5mIGIvZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9kZWNfaW50cmluc2ljX2ludF9yZWFsX3Byb21vdGlvbl8yLmYKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uZDY0ZDQ2OGY3ZDEKKy0tLSAvZGV2 L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRf cmVhbF9wcm9tb3Rpb25fMi5mCitAQCAtMCwwICsxLDEzMCBAQAorKyEgeyBkZy1kbyBydW4gfQor KyEgeyBkZy1vcHRpb25zICItZmRlYy1wcm9tb3Rpb24iIH0KKyshCisrISBUZXN0IHByb21vdGlv biBiZXR3ZWVuIGludGVnZXJzIGFuZCByZWFscyBpbiBpbnRyaW5zaWMgb3BlcmF0aW9ucy4KKysh IFRoZXNlIG9wZXJhdGlvbnMgYXJlOiBtb2QsIG1vZHVsbywgZGltLCBzaWduLCBtaW4sIG1heCwg bWlubG9jIGFuZAorKyEgbWF4bG9jLgorKyEKKyshIENvbnRyaWJ1dGVkIGJ5IEZyYW5jaXNjbyBS ZWRvbmRvIE1hcmNoZW5hIDxmcmFuY2lzY28ubWFyY2hlbmFAY29kZXRoaW5rLmNvLnVrPgorKyEg ICAgICAgICAgICAgYW5kIEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4KKyshIE1vZGlmaWVkIGJ5 IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAg ICBQUk9HUkFNIHByb21vdGlvbl9pbnRfcmVhbAorKyAgICAgICAgUkVBTCBsLzAuMC8KKysgICAg ICAgIElOVEVHRVIgYV9pLzQvCisrICAgICAgICBJTlRFR0VSKjQgYTJfaS80LworKyAgICAgICAg SU5URUdFUiBiX2kvMy8KKysgICAgICAgIElOVEVHRVIqOCBiMl9pLzMvCisrICAgICAgICBJTlRF R0VSIHhfaS8yLworKyAgICAgICAgSU5URUdFUiB5X2kvMS8KKysgICAgICAgIFJFQUwgYV9yLzQu MC8KKysgICAgICAgIFJFQUwqNCBhMl9yLzQuMC8KKysgICAgICAgIFJFQUwgYl9yLzMuMC8KKysg ICAgICAgIFJFQUwqOCBiMl9yLzMuMC8KKysgICAgICAgIFJFQUwgeF9yLzIuMC8KKysgICAgICAg IFJFQUwgeV9yLzEuMC8KKysKKysgICAgICAgIFJFQUwgYXJyYXlfbmFuKDQpCisrICAgICAgICBE QVRBIGFycmF5X25hbigxKS8tNC4wLworKyAgICAgICAgREFUQSBhcnJheV9uYW4oMikvMy4wLwor KyAgICAgICAgREFUQSBhcnJheV9uYW4oMykvLTIvCisrCisrICAgICAgICBJTlRFR0VSIG1faS8w LworKyAgICAgICAgUkVBTCBtX3IvMC4wLworKworKyAgICAgICAgSU5URUdFUiBtZF9pLzAvCisr ICAgICAgICBSRUFMIG1kX3IvMC4wLworKworKyAgICAgICAgSU5URUdFUiBkX2kvMC8KKysgICAg ICAgIFJFQUwgZF9yLzAuMC8KKysKKysgICAgICAgIElOVEVHRVIgc19pLzAvCisrICAgICAgICBS RUFMIHNfci8wLjAvCisrCisrICAgICAgICBJTlRFR0VSIG1uX2kvMC8KKysgICAgICAgIFJFQUwg bW5fci8wLjAvCisrCisrICAgICAgICBJTlRFR0VSIG14X2kvMC8KKysgICAgICAgIFJFQUwgbXhf ci8wLjAvCisrCisrICAgICAgICAhIGFycmF5X25hbiA0dGggcG9zaXRpb24gdmFsdWUgaXMgTkFO CisrICAgICAgICBhcnJheV9uYW4oNCkgPSAwL2wKKysKKysgICAgICAgIG1faSA9IE1PRChhX2ks IGJfaSkKKysgICAgICAgIGlmIChtX2kgLm5lLiAxKSBTVE9QIDEKKysgICAgICAgIG1faSA9IE1P RChhMl9pLCBiMl9pKQorKyAgICAgICAgaWYgKG1faSAubmUuIDEpIFNUT1AgMgorKyAgICAgICAg bV9yID0gTU9EKGFfciwgYl9yKQorKyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4wRC02 KSBTVE9QIDMKKysgICAgICAgIG1fciA9IE1PRChhMl9yLCBiMl9yKQorKyAgICAgICAgaWYgKGFi cyhtX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDQKKysgICAgICAgIG1fciA9IE1PRChhX2ksIGJf cikKKysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCA1CisrICAgICAg ICBtX3IgPSBNT0QoYV9yLCBiX2kpCisrICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBE LTYpIFNUT1AgNgorKworKyAgICAgICAgbWRfaSA9IE1PRFVMTyhhX2ksIGJfaSkKKysgICAgICAg IGlmIChtZF9pIC5uZS4gMSkgU1RPUCA3CisrICAgICAgICBtZF9pID0gTU9EVUxPKGEyX2ksIGIy X2kpCisrICAgICAgICBpZiAobWRfaSAubmUuIDEpIFNUT1AgOAorKyAgICAgICAgbWRfciA9IE1P RFVMTyhhX3IsIGJfcikKKysgICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNU T1AgOQorKyAgICAgICAgbWRfciA9IE1PRFVMTyhhMl9yLCBiMl9yKQorKyAgICAgICAgaWYgKGFi cyhtZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxMAorKyAgICAgICAgbWRfciA9IE1PRFVMTyhh X2ksIGJfcikKKysgICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTEK KysgICAgICAgIG1kX3IgPSBNT0RVTE8oYV9yLCBiX2kpCisrICAgICAgICBpZiAoYWJzKG1kX3Ig LSAxLjApID4gMS4wRC02KSBTVE9QIDEyCisrCisrICAgICAgICBkX2kgPSBESU0oYV9pLCBiX2kp CisrICAgICAgICBpZiAoZF9pIC5uZS4gMSkgU1RPUCAxMworKyAgICAgICAgZF9pID0gRElNKGEy X2ksIGIyX2kpCisrICAgICAgICBpZiAoZF9pIC5uZS4gMSkgU1RPUCAxNAorKyAgICAgICAgZF9y ID0gRElNKGFfciwgYl9yKQorKyAgICAgICAgaWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBT VE9QIDE1CisrICAgICAgICBkX3IgPSBESU0oYTJfciwgYjJfcikKKysgICAgICAgIGlmIChhYnMo ZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxNgorKyAgICAgICAgZF9yID0gRElNKGFfciwgYl9p KQorKyAgICAgICAgaWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDE3CisrICAgICAg ICBkX3IgPSBESU0oYl9pLCBhX3IpCisrICAgICAgICBpZiAoYWJzKGRfcikgPiAxLjBELTYpIFNU T1AgMTgKKysKKysgICAgICAgIHNfaSA9IFNJR04oLWFfaSwgYl9pKQorKyAgICAgICAgaWYgKHNf aSAubmUuIDQpIFNUT1AgMTkKKysgICAgICAgIHNfaSA9IFNJR04oLWEyX2ksIGIyX2kpCisrICAg ICAgICBpZiAoc19pIC5uZS4gNCkgU1RPUCAyMAorKyAgICAgICAgc19yID0gU0lHTihhX3IsIC1i X3IpCisrICAgICAgICBpZiAoYWJzKHNfciAtICgtYV9yKSkgPiAxLjBELTYpIFNUT1AgMjEKKysg ICAgICAgIHNfciA9IFNJR04oYTJfciwgLWIyX3IpCisrICAgICAgICBpZiAoYWJzKHNfciAtICgt YTJfcikpID4gMS4wRC02KSBTVE9QIDIyCisrICAgICAgICBzX3IgPSBTSUdOKGFfciwgLWJfaSkK KysgICAgICAgIGlmIChhYnMoc19yIC0gKC1hX3IpKSA+IDEuMEQtNikgU1RPUCAyMworKyAgICAg ICAgc19yID0gU0lHTigtYV9pLCBiX3IpCisrICAgICAgICBpZiAoYWJzKHNfciAtIGFfcikgPiAx LjBELTYpIFNUT1AgMjQKKysKKysgICAgICAgIG14X2kgPSBNQVgoLWFfaSwgLWJfaSwgeF9pLCB5 X2kpCisrICAgICAgICBpZiAobXhfaSAubmUuIHhfaSkgU1RPUCAyNQorKyAgICAgICAgbXhfaSA9 IE1BWCgtYTJfaSwgLWIyX2ksIHhfaSwgeV9pKQorKyAgICAgICAgaWYgKG14X2kgLm5lLiB4X2kp IFNUT1AgMjYKKysgICAgICAgIG14X3IgPSBNQVgoLWFfciwgLWJfciwgeF9yLCB5X3IpCisrICAg ICAgICBpZiAoYWJzKG14X3IgLSB4X3IpID4gMS4wRC02KSBTVE9QIDI3CisrICAgICAgICBteF9y ID0gTUFYKC1hX3IsIC1iX3IsIHhfciwgeV9yKQorKyAgICAgICAgaWYgKGFicyhteF9yIC0geF9y KSA+IDEuMEQtNikgU1RPUCAyOAorKyAgICAgICAgbXhfciA9IE1BWCgtYV9pLCAtYl9yLCB4X3Is IHlfaSkKKysgICAgICAgIGlmIChhYnMobXhfciAtIHhfcikgPiAxLjBELTYpIFNUT1AgMjkKKysg ICAgICAgIG14X2kgPSBNQVhMT0MoYXJyYXlfbmFuLCAxKQorKyAgICAgICAgaWYgKG14X2kgLm5l LiAyKSBTVE9QIDMwCisrCisrICAgICAgICBtbl9pID0gTUlOKC1hX2ksIC1iX2ksIHhfaSwgeV9p KQorKyAgICAgICAgaWYgKG1uX2kgLm5lLiAtYV9pKSBTVE9QIDMxCisrICAgICAgICBtbl9pID0g TUlOKC1hMl9pLCAtYjJfaSwgeF9pLCB5X2kpCisrICAgICAgICBpZiAobW5faSAubmUuIC1hMl9p KSBTVE9QIDMyCisrICAgICAgICBtbl9yID0gTUlOKC1hX3IsIC1iX3IsIHhfciwgeV9yKQorKyAg ICAgICAgaWYgKGFicyhtbl9yIC0gKC1hX3IpKSA+IDEuMEQtNikgU1RPUCAzMworKyAgICAgICAg bW5fciA9IE1JTigtYTJfciwgLWIyX3IsIHhfciwgeV9yKQorKyAgICAgICAgaWYgKGFicyhtbl9y IC0gKC1hMl9yKSkgPiAxLjBELTYpIFNUT1AgMzQKKysgICAgICAgIG1uX3IgPSBNSU4oLWFfaSwg LWJfciwgeF9yLCB5X2kpCisrICAgICAgICBpZiAoYWJzKG1uX3IgLSAoLWFfcikpID4gMS4wRC02 KSBTVE9QIDM1CisrICAgICAgICBtbl9pID0gTUlOTE9DKGFycmF5X25hbiwgMSkKKysgICAgICAg IGlmIChtbl9pIC5uZS4gMSkgU1RPUCAzNgorKyAgICAgIEVORCBQUk9HUkFNCitkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50cmluc2ljX2ludF9yZWFsX3Byb21v dGlvbl8zLmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3Jl YWxfcHJvbW90aW9uXzMuZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAw Li4wNzA4YjY2NjYzMworLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9kZWNfaW50cmluc2ljX2ludF9yZWFsX3Byb21vdGlvbl8zLmYKK0BAIC0wLDAgKzEsMTMw IEBACisrISB7IGRnLWRvIGNvbXBpbGUgfQorKyEgeyBkZy1vcHRpb25zICItZmRlYyAtZm5vLWRl Yy1wcm9tb3Rpb24iIH0KKyshCisrISBUZXN0IHByb21vdGlvbiBiZXR3ZWVuIGludGVnZXJzIGFu ZCByZWFscyBpbiBpbnRyaW5zaWMgb3BlcmF0aW9ucy4KKyshIFRoZXNlIG9wZXJhdGlvbnMgYXJl OiBtb2QsIG1vZHVsbywgZGltLCBzaWduLCBtaW4sIG1heCwgbWlubG9jIGFuZAorKyEgbWF4bG9j LgorKyEKKyshIENvbnRyaWJ1dGVkIGJ5IEZyYW5jaXNjbyBSZWRvbmRvIE1hcmNoZW5hIDxmcmFu Y2lzY28ubWFyY2hlbmFAY29kZXRoaW5rLmNvLnVrPgorKyEgICAgICAgICAgICAgYW5kIEplZmYg TGF3IDxsYXdAcmVkaGF0LmNvbT4KKyshIE1vZGlmaWVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxtYXJr LmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAgICBQUk9HUkFNIHByb21vdGlvbl9p bnRfcmVhbAorKyAgICAgICAgUkVBTCBsLzAuMC8KKysgICAgICAgIElOVEVHRVIgYV9pLzQvCisr ICAgICAgICBJTlRFR0VSKjQgYTJfaS80LworKyAgICAgICAgSU5URUdFUiBiX2kvMy8KKysgICAg ICAgIElOVEVHRVIqOCBiMl9pLzMvCisrICAgICAgICBJTlRFR0VSIHhfaS8yLworKyAgICAgICAg SU5URUdFUiB5X2kvMS8KKysgICAgICAgIFJFQUwgYV9yLzQuMC8KKysgICAgICAgIFJFQUwqNCBh Ml9yLzQuMC8KKysgICAgICAgIFJFQUwgYl9yLzMuMC8KKysgICAgICAgIFJFQUwqOCBiMl9yLzMu MC8KKysgICAgICAgIFJFQUwgeF9yLzIuMC8KKysgICAgICAgIFJFQUwgeV9yLzEuMC8KKysKKysg ICAgICAgIFJFQUwgYXJyYXlfbmFuKDQpCisrICAgICAgICBEQVRBIGFycmF5X25hbigxKS8tNC4w LworKyAgICAgICAgREFUQSBhcnJheV9uYW4oMikvMy4wLworKyAgICAgICAgREFUQSBhcnJheV9u YW4oMykvLTIvCisrCisrICAgICAgICBJTlRFR0VSIG1faS8wLworKyAgICAgICAgUkVBTCBtX3Iv MC4wLworKworKyAgICAgICAgSU5URUdFUiBtZF9pLzAvCisrICAgICAgICBSRUFMIG1kX3IvMC4w LworKworKyAgICAgICAgSU5URUdFUiBkX2kvMC8KKysgICAgICAgIFJFQUwgZF9yLzAuMC8KKysK KysgICAgICAgIElOVEVHRVIgc19pLzAvCisrICAgICAgICBSRUFMIHNfci8wLjAvCisrCisrICAg ICAgICBJTlRFR0VSIG1uX2kvMC8KKysgICAgICAgIFJFQUwgbW5fci8wLjAvCisrCisrICAgICAg ICBJTlRFR0VSIG14X2kvMC8KKysgICAgICAgIFJFQUwgbXhfci8wLjAvCisrCisrICAgICAgICAh IGFycmF5X25hbiA0dGggcG9zaXRpb24gdmFsdWUgaXMgTkFOCisrICAgICAgICBhcnJheV9uYW4o NCkgPSAwL2wKKysKKysgICAgICAgIG1faSA9IE1PRChhX2ksIGJfaSkKKysgICAgICAgIGlmICht X2kgLm5lLiAxKSBTVE9QIDEKKysgICAgICAgIG1faSA9IE1PRChhMl9pLCBiMl9pKQorKyAgICAg ICAgaWYgKG1faSAubmUuIDEpIFNUT1AgMgorKyAgICAgICAgbV9yID0gTU9EKGFfciwgYl9yKQor KyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDMKKysgICAgICAgIG1f ciA9IE1PRChhMl9yLCBiMl9yKQorKyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4wRC02 KSBTVE9QIDQKKysgICAgICAgIG1fciA9IE1PRChhX2ksIGJfcikgISB7IGRnLWVycm9yICInYScg YW5kICdwJyBhcmd1bWVudHMiIH0KKysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQt NikgU1RPUCA1CisrICAgICAgICBtX3IgPSBNT0QoYV9yLCBiX2kpICEgeyBkZy1lcnJvciAiJ2En IGFuZCAncCcgYXJndW1lbnRzIiB9CisrICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBE LTYpIFNUT1AgNgorKworKyAgICAgICAgbWRfaSA9IE1PRFVMTyhhX2ksIGJfaSkKKysgICAgICAg IGlmIChtZF9pIC5uZS4gMSkgU1RPUCA3CisrICAgICAgICBtZF9pID0gTU9EVUxPKGEyX2ksIGIy X2kpCisrICAgICAgICBpZiAobWRfaSAubmUuIDEpIFNUT1AgOAorKyAgICAgICAgbWRfciA9IE1P RFVMTyhhX3IsIGJfcikKKysgICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNU T1AgOQorKyAgICAgICAgbWRfciA9IE1PRFVMTyhhMl9yLCBiMl9yKQorKyAgICAgICAgaWYgKGFi cyhtZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxMAorKyAgICAgICAgbWRfciA9IE1PRFVMTyhh X2ksIGJfcikgISB7IGRnLWVycm9yICInYScgYW5kICdwJyBhcmd1bWVudHMiIH0KKysgICAgICAg IGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTEKKysgICAgICAgIG1kX3IgPSBN T0RVTE8oYV9yLCBiX2kpICEgeyBkZy1lcnJvciAiJ2EnIGFuZCAncCcgYXJndW1lbnRzIiB9Cisr ICAgICAgICBpZiAoYWJzKG1kX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDEyCisrCisrICAgICAg ICBkX2kgPSBESU0oYV9pLCBiX2kpCisrICAgICAgICBpZiAoZF9pIC5uZS4gMSkgU1RPUCAxMwor KyAgICAgICAgZF9pID0gRElNKGEyX2ksIGIyX2kpCisrICAgICAgICBpZiAoZF9pIC5uZS4gMSkg U1RPUCAxNAorKyAgICAgICAgZF9yID0gRElNKGFfciwgYl9yKQorKyAgICAgICAgaWYgKGFicyhk X3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDE1CisrICAgICAgICBkX3IgPSBESU0oYTJfciwgYjJf cikKKysgICAgICAgIGlmIChhYnMoZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxNgorKyAgICAg ICAgZF9yID0gRElNKGFfciwgYl9pKSAhIHsgZGctZXJyb3IgIid4JyBhbmQgJ3knIGFyZ3VtZW50 cyIgfQorKyAgICAgICAgaWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDE3CisrICAg ICAgICBkX3IgPSBESU0oYl9pLCBhX3IpICEgeyBkZy1lcnJvciAiJ3gnIGFuZCAneScgYXJndW1l bnRzIiB9CisrICAgICAgICBpZiAoYWJzKGRfcikgPiAxLjBELTYpIFNUT1AgMTgKKysKKysgICAg ICAgIHNfaSA9IFNJR04oLWFfaSwgYl9pKQorKyAgICAgICAgaWYgKHNfaSAubmUuIDQpIFNUT1Ag MTkKKysgICAgICAgIHNfaSA9IFNJR04oLWEyX2ksIGIyX2kpICEgeyBkZy1lcnJvciAiJ2InIGFy Z3VtZW50IiB9CisrICAgICAgICBpZiAoc19pIC5uZS4gNCkgU1RPUCAyMAorKyAgICAgICAgc19y ID0gU0lHTihhX3IsIC1iX3IpCisrICAgICAgICBpZiAoYWJzKHNfciAtICgtYV9yKSkgPiAxLjBE LTYpIFNUT1AgMjEKKysgICAgICAgIHNfciA9IFNJR04oYTJfciwgLWIyX3IpICEgeyBkZy1lcnJv ciAiJ2InIGFyZ3VtZW50IiB9CisrICAgICAgICBpZiAoYWJzKHNfciAtICgtYTJfcikpID4gMS4w RC02KSBTVE9QIDIyCisrICAgICAgICBzX3IgPSBTSUdOKGFfciwgLWJfaSkgISB7IGRnLWVycm9y ICInYicgYXJndW1lbnQiIH0KKysgICAgICAgIGlmIChhYnMoc19yIC0gKC1hX3IpKSA+IDEuMEQt NikgU1RPUCAyMworKyAgICAgICAgc19yID0gU0lHTigtYV9pLCBiX3IpICEgeyBkZy1lcnJvciAi J2InIGFyZ3VtZW50IiB9CisrICAgICAgICBpZiAoYWJzKHNfciAtIGFfcikgPiAxLjBELTYpIFNU T1AgMjQKKysKKysgICAgICAgIG14X2kgPSBNQVgoLWFfaSwgLWJfaSwgeF9pLCB5X2kpCisrICAg ICAgICBpZiAobXhfaSAubmUuIHhfaSkgU1RPUCAyNQorKyAgICAgICAgbXhfaSA9IE1BWCgtYTJf aSwgLWIyX2ksIHhfaSwgeV9pKQorKyAgICAgICAgaWYgKG14X2kgLm5lLiB4X2kpIFNUT1AgMjYK KysgICAgICAgIG14X3IgPSBNQVgoLWFfciwgLWJfciwgeF9yLCB5X3IpCisrICAgICAgICBpZiAo YWJzKG14X3IgLSB4X3IpID4gMS4wRC02KSBTVE9QIDI3CisrICAgICAgICBteF9yID0gTUFYKC1h X3IsIC1iX3IsIHhfciwgeV9yKQorKyAgICAgICAgaWYgKGFicyhteF9yIC0geF9yKSA+IDEuMEQt NikgU1RPUCAyOAorKyAgICAgICAgbXhfciA9IE1BWCgtYV9pLCAtYl9yLCB4X3IsIHlfaSkgISB7 IGRnLWVycm9yICInYTInIGFyZ3VtZW50IiB9CisrICAgICAgICBpZiAoYWJzKG14X3IgLSB4X3Ip ID4gMS4wRC02KSBTVE9QIDI5CisrICAgICAgICBteF9pID0gTUFYTE9DKGFycmF5X25hbiwgMSkK KysgICAgICAgIGlmIChteF9pIC5uZS4gMikgU1RPUCAzMAorKworKyAgICAgICAgbW5faSA9IE1J TigtYV9pLCAtYl9pLCB4X2ksIHlfaSkKKysgICAgICAgIGlmIChtbl9pIC5uZS4gLWFfaSkgU1RP UCAzMQorKyAgICAgICAgbW5faSA9IE1JTigtYTJfaSwgLWIyX2ksIHhfaSwgeV9pKQorKyAgICAg ICAgaWYgKG1uX2kgLm5lLiAtYTJfaSkgU1RPUCAzMgorKyAgICAgICAgbW5fciA9IE1JTigtYV9y LCAtYl9yLCB4X3IsIHlfcikKKysgICAgICAgIGlmIChhYnMobW5fciAtICgtYV9yKSkgPiAxLjBE LTYpIFNUT1AgMzMKKysgICAgICAgIG1uX3IgPSBNSU4oLWEyX3IsIC1iMl9yLCB4X3IsIHlfcikK KysgICAgICAgIGlmIChhYnMobW5fciAtICgtYTJfcikpID4gMS4wRC02KSBTVE9QIDM0CisrICAg ICAgICBtbl9yID0gTUlOKC1hX2ksIC1iX3IsIHhfciwgeV9pKSAhIHsgZGctZXJyb3IgIidhMicg YXJndW1lbnQiIH0KKysgICAgICAgIGlmIChhYnMobW5fciAtICgtYV9yKSkgPiAxLjBELTYpIFNU T1AgMzUKKysgICAgICAgIG1uX2kgPSBNSU5MT0MoYXJyYXlfbmFuLCAxKQorKyAgICAgICAgaWYg KG1uX2kgLm5lLiAxKSBTVE9QIDM2CisrICAgICAgRU5EIFBST0dSQU0KK2RpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfcHJvbW90aW9u XzQuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9w cm9tb3Rpb25fNC5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLmVm YTRmMjM2NDEwCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2RlY19pbnRyaW5zaWNfaW50X3JlYWxfcHJvbW90aW9uXzQuZgorQEAgLTAsMCArMSwxMTggQEAK KyshIHsgZGctZG8gY29tcGlsZSB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjIiB9CisrIQorKyEg VGVzdCBwcm9tb3Rpb24gYmV0d2VlbiBpbnRlZ2VycyBhbmQgcmVhbHMgaW4gaW50cmluc2ljIG9w ZXJhdGlvbnMuCisrISBUaGVzZSBvcGVyYXRpb25zIGFyZTogbW9kLCBtb2R1bG8sIGRpbSwgc2ln biwgbWluLCBtYXgsIG1pbmxvYyBhbmQKKyshIG1heGxvYy4KKyshCisrISBDb250cmlidXRlZCBi eSBGcmFuY2lzY28gUmVkb25kbyBNYXJjaGVuYSA8ZnJhbmNpc2NvLm1hcmNoZW5hQGNvZGV0aGlu ay5jby51az4KKyshICAgICAgICAgICAgIGFuZCBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+Cisr ISBNb2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNv bT4KKyshCisrICAgICAgUFJPR1JBTSBwcm9tb3Rpb25faW50X3JlYWwKKysgICAgICAgIFJFQUwg bC8wLjAvCisrICAgICAgICBMT0dJQ0FMIGFfbAorKyAgICAgICAgTE9HSUNBTCo0IGEyX2wKKysg ICAgICAgIExPR0lDQUwgYl9sCisrICAgICAgICBMT0dJQ0FMKjggYjJfbAorKyAgICAgICAgTE9H SUNBTCB4X2wKKysgICAgICAgIExPR0lDQUwgeV9sCisrICAgICAgICBDSEFSQUNURVIgYV9jCisr ICAgICAgICBDSEFSQUNURVIqNCBhMl9jCisrICAgICAgICBDSEFSQUNURVIgYl9jCisrICAgICAg ICBDSEFSQUNURVIqOCBiMl9jCisrICAgICAgICBDSEFSQUNURVIgeF9jCisrICAgICAgICBDSEFS QUNURVIgeV9jCisrCisrICAgICAgICBJTlRFR0VSIG1faS8wLworKyAgICAgICAgUkVBTCBtX3Iv MC4wLworKworKyAgICAgICAgSU5URUdFUiBtZF9pLzAvCisrICAgICAgICBSRUFMIG1kX3IvMC4w LworKworKyAgICAgICAgSU5URUdFUiBkX2kvMC8KKysgICAgICAgIFJFQUwgZF9yLzAuMC8KKysK KysgICAgICAgIElOVEVHRVIgc19pLzAvCisrICAgICAgICBSRUFMIHNfci8wLjAvCisrCisrICAg ICAgICBJTlRFR0VSIG1uX2kvMC8KKysgICAgICAgIFJFQUwgbW5fci8wLjAvCisrCisrICAgICAg ICBJTlRFR0VSIG14X2kvMC8KKysgICAgICAgIFJFQUwgbXhfci8wLjAvCisrCisrICAgICAgICBt X2kgPSBNT0QoYV9sLCBiX2wpICAgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0K KysgICAgICAgIGlmIChtX2kgLm5lLiAxKSBTVE9QIDEKKysgICAgICAgIG1faSA9IE1PRChhMl9s LCBiMl9sKSAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYg KG1faSAubmUuIDEpIFNUT1AgMgorKyAgICAgICAgbV9yID0gTU9EKGFfYywgYl9jKSAgICAgICAg ICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1fciAtIDEu MCkgPiAxLjBELTYpIFNUT1AgMworKyAgICAgICAgbV9yID0gTU9EKGEyX2MsIGIyX2MpICAgICAg ICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1fciAtIDEu MCkgPiAxLjBELTYpIFNUT1AgNAorKyAgICAgICAgbV9yID0gTU9EKGFfbCwgYl9jKSAgICAgICAg ICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1fciAtIDEu MCkgPiAxLjBELTYpIFNUT1AgNQorKyAgICAgICAgbV9yID0gTU9EKGFfYywgYl9sKSAgICAgICAg ICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1fciAtIDEu MCkgPiAxLjBELTYpIFNUT1AgNgorKworKyAgICAgICAgbWRfaSA9IE1PRFVMTyhhX2wsIGJfbCkg ICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAobWRfaSAubmUu IDEpIFNUT1AgNworKyAgICAgICAgbWRfaSA9IE1PRFVMTyhhMl9sLCBiMl9sKSAgICAgICAgICAg ICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAobWRfaSAubmUuIDEpIFNUT1AgOAor KyAgICAgICAgbWRfciA9IE1PRFVMTyhhX2MsIGJfYykgICAgICAgICAgICAgICAgICEgeyBkZy1l cnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1kX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDkK KysgICAgICAgIG1kX3IgPSBNT0RVTE8oYTJfYywgYjJfYykgICAgICAgICAgICAgICAhIHsgZGct ZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAx MAorKyAgICAgICAgbWRfciA9IE1PRFVMTyhhX2wsIGJfYykgICAgICAgICAgICAgICAgICEgeyBk Zy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1kX3IgLSAxLjApID4gMS4wRC02KSBTVE9Q IDExCisrICAgICAgICBtZF9yID0gTU9EVUxPKGFfYywgYl9sKSAgICAgICAgICAgICAgICAgISB7 IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNU T1AgMTIKKysKKysgICAgICAgIGRfaSA9IERJTShhX2wsIGJfbCkgICAgICAgICAgICAgICAgICAg ICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGRfaSAubmUuIDEpIFNUT1AgMTMKKysg ICAgICAgIGRfaSA9IERJTShhMl9sLCBiMl9sKSAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJy b3IgIiIgfQorKyAgICAgICAgaWYgKGRfaSAubmUuIDEpIFNUT1AgMTQKKysgICAgICAgIGRfciA9 IERJTShhX2MsIGJfYykgICAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAg ICAgICAgaWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDE1CisrICAgICAgICBkX3Ig PSBESU0oYTJfYywgYjJfYykgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysg ICAgICAgIGlmIChhYnMoZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxNgorKyAgICAgICAgZF9y ID0gRElNKGFfYywgYl9sKSAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9Cisr ICAgICAgICBpZiAoYWJzKGRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTcKKysgICAgICAgIGRf ciA9IERJTShiX2wsIGFfYykgICAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQor KyAgICAgICAgaWYgKGFicyhkX3IpID4gMS4wRC02KSBTVE9QIDE4CisrCisrICAgICAgICBzX2kg PSBTSUdOKC1hX2wsIGJfbCkgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysg ICAgICAgIGlmIChzX2kgLm5lLiA0KSBTVE9QIDE5CisrICAgICAgICBzX2kgPSBTSUdOKC1hMl9s LCBiMl9sKSAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChz X2kgLm5lLiA0KSBTVE9QIDIwCisrICAgICAgICBzX3IgPSBTSUdOKGFfYywgLWJfYykgICAgICAg ICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMoc19yIC0gKC1h X2MpKSA+IDEuMEQtNikgU1RPUCAyMSAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgc19yID0g U0lHTihhMl9jLCAtYjJfYykgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAg ICAgICBpZiAoYWJzKHNfciAtICgtYTJfYykpID4gMS4wRC02KSBTVE9QIDIyICEgeyBkZy1lcnJv ciAiIiB9CisrICAgICAgICBzX3IgPSBTSUdOKGFfYywgLWJfbCkgICAgICAgICAgICAgICAgICAg ISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMoc19yIC0gKC1hX2MpKSA+IDEuMEQt NikgU1RPUCAyMyAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgc19yID0gU0lHTigtYV9sLCBi X2MpICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJz KHNfciAtIGFfYykgPiAxLjBELTYpIFNUT1AgMjQgICAgISB7IGRnLWVycm9yICIiIH0KKysKKysg ICAgICAgIG14X2kgPSBNQVgoLWFfbCwgLWJfbCwgeF9sLCB5X2wpICAgICAgICAhIHsgZGctZXJy b3IgIiIgfQorKyAgICAgICAgaWYgKG14X2kgLm5lLiB4X2wpIFNUT1AgMjUgICAgICAgICAgICAg ICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBteF9pID0gTUFYKC1hMl9sLCAtYjJfbCwgeF9s LCB5X2wpICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChteF9pIC5uZS4geF9s KSBTVE9QIDI2ICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgbXhfciA9 IE1BWCgtYV9jLCAtYl9jLCB4X2MsIHlfYykgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAg ICAgICBpZiAoYWJzKG14X3IgLSB4X2MpID4gMS4wRC02KSBTVE9QIDI3ICAgISB7IGRnLWVycm9y ICIiIH0KKysgICAgICAgIG14X3IgPSBNQVgoLWFfYywgLWJfYywgeF9jLCB5X2MpICAgICAgICAh IHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhteF9yIC0geF9jKSA+IDEuMEQtNikg U1RPUCAyOCAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBteF9yID0gTUFYKC1hX2wsIC1i X2MsIHhfYywgeV9sKSAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMo bXhfciAtIHhfYykgPiAxLjBELTYpIFNUT1AgMjkgICAhIHsgZGctZXJyb3IgIiIgfQorKworKyAg ICAgICAgbW5faSA9IE1JTigtYV9sLCAtYl9sLCB4X2wsIHlfbCkgICAgICAgICEgeyBkZy1lcnJv ciAiIiB9CisrICAgICAgICBpZiAobW5faSAubmUuIC1hX2wpIFNUT1AgMzEgICAgICAgICAgICAg ISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIG1uX2kgPSBNSU4oLWEyX2wsIC1iMl9sLCB4X2ws IHlfbCkgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKG1uX2kgLm5lLiAtYTJf bCkgU1RPUCAzMiAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBtbl9yID0g TUlOKC1hX2MsIC1iX2MsIHhfYywgeV9jKSAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAg ICAgIGlmIChhYnMobW5fciAtICgtYV9jKSkgPiAxLjBELTYpIFNUT1AgMzMgISB7IGRnLWVycm9y ICIiIH0KKysgICAgICAgIG1uX3IgPSBNSU4oLWEyX2MsIC1iMl9jLCB4X2MsIHlfYykgICAgICAh IHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtbl9yIC0gKC1hMl9jKSkgPiAxLjBE LTYpIFNUT1AgMzQgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIG1uX3IgPSBNSU4oLWFfbCwg LWJfYywgeF9jLCB5X2wpICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFi cyhtbl9yIC0gKC1hX2MpKSA+IDEuMEQtNikgU1RPUCAzNSAhIHsgZGctZXJyb3IgIiIgfQorKyAg ICAgIEVORCBQUk9HUkFNCitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9k ZWNfaW50cmluc2ljX2ludF9yZWFsX3Byb21vdGlvbl81LmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfcHJvbW90aW9uXzUuZgorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAwLi5kMDIzYWY1MDg2ZAorLS0tIC9kZXYvbnVsbAor KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW50cmluc2ljX2ludF9yZWFsX3By b21vdGlvbl81LmYKK0BAIC0wLDAgKzEsMTE4IEBACisrISB7IGRnLWRvIGNvbXBpbGUgfQorKyEg eyBkZy1vcHRpb25zICItZmRlYy1wcm9tb3Rpb24iIH0KKyshCisrISBUZXN0IHByb21vdGlvbiBi ZXR3ZWVuIGludGVnZXJzIGFuZCByZWFscyBpbiBpbnRyaW5zaWMgb3BlcmF0aW9ucy4KKyshIFRo ZXNlIG9wZXJhdGlvbnMgYXJlOiBtb2QsIG1vZHVsbywgZGltLCBzaWduLCBtaW4sIG1heCwgbWlu bG9jIGFuZAorKyEgbWF4bG9jLgorKyEKKyshIENvbnRyaWJ1dGVkIGJ5IEZyYW5jaXNjbyBSZWRv bmRvIE1hcmNoZW5hIDxmcmFuY2lzY28ubWFyY2hlbmFAY29kZXRoaW5rLmNvLnVrPgorKyEgICAg ICAgICAgICAgYW5kIEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4KKyshIE1vZGlmaWVkIGJ5IE1h cmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBjb2RldGhpbmsuY29tPgorKyEKKysgICAgICBQ Uk9HUkFNIHByb21vdGlvbl9pbnRfcmVhbAorKyAgICAgICAgUkVBTCBsLzAuMC8KKysgICAgICAg IExPR0lDQUwgYV9sCisrICAgICAgICBMT0dJQ0FMKjQgYTJfbAorKyAgICAgICAgTE9HSUNBTCBi X2wKKysgICAgICAgIExPR0lDQUwqOCBiMl9sCisrICAgICAgICBMT0dJQ0FMIHhfbAorKyAgICAg ICAgTE9HSUNBTCB5X2wKKysgICAgICAgIENIQVJBQ1RFUiBhX2MKKysgICAgICAgIENIQVJBQ1RF Uio0IGEyX2MKKysgICAgICAgIENIQVJBQ1RFUiBiX2MKKysgICAgICAgIENIQVJBQ1RFUio4IGIy X2MKKysgICAgICAgIENIQVJBQ1RFUiB4X2MKKysgICAgICAgIENIQVJBQ1RFUiB5X2MKKysKKysg ICAgICAgIElOVEVHRVIgbV9pLzAvCisrICAgICAgICBSRUFMIG1fci8wLjAvCisrCisrICAgICAg ICBJTlRFR0VSIG1kX2kvMC8KKysgICAgICAgIFJFQUwgbWRfci8wLjAvCisrCisrICAgICAgICBJ TlRFR0VSIGRfaS8wLworKyAgICAgICAgUkVBTCBkX3IvMC4wLworKworKyAgICAgICAgSU5URUdF UiBzX2kvMC8KKysgICAgICAgIFJFQUwgc19yLzAuMC8KKysKKysgICAgICAgIElOVEVHRVIgbW5f aS8wLworKyAgICAgICAgUkVBTCBtbl9yLzAuMC8KKysKKysgICAgICAgIElOVEVHRVIgbXhfaS8w LworKyAgICAgICAgUkVBTCBteF9yLzAuMC8KKysKKysgICAgICAgIG1faSA9IE1PRChhX2wsIGJf bCkgICAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKG1f aSAubmUuIDEpIFNUT1AgMQorKyAgICAgICAgbV9pID0gTU9EKGEyX2wsIGIyX2wpICAgICAgICAg ICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAobV9pIC5uZS4gMSkgU1RP UCAyCisrICAgICAgICBtX3IgPSBNT0QoYV9jLCBiX2MpICAgICAgICAgICAgICAgICAgICAgISB7 IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQtNikgU1RP UCAzCisrICAgICAgICBtX3IgPSBNT0QoYTJfYywgYjJfYykgICAgICAgICAgICAgICAgICAgISB7 IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQtNikgU1RP UCA0CisrICAgICAgICBtX3IgPSBNT0QoYV9sLCBiX2MpICAgICAgICAgICAgICAgICAgICAgISB7 IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQtNikgU1RP UCA1CisrICAgICAgICBtX3IgPSBNT0QoYV9jLCBiX2wpICAgICAgICAgICAgICAgICAgICAgISB7 IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMobV9yIC0gMS4wKSA+IDEuMEQtNikgU1RP UCA2CisrCisrICAgICAgICBtZF9pID0gTU9EVUxPKGFfbCwgYl9sKSAgICAgICAgICAgICAgICAg ISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChtZF9pIC5uZS4gMSkgU1RPUCA3CisrICAg ICAgICBtZF9pID0gTU9EVUxPKGEyX2wsIGIyX2wpICAgICAgICAgICAgICAgISB7IGRnLWVycm9y ICIiIH0KKysgICAgICAgIGlmIChtZF9pIC5uZS4gMSkgU1RPUCA4CisrICAgICAgICBtZF9yID0g TU9EVUxPKGFfYywgYl9jKSAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAg ICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgOQorKyAgICAgICAgbWRfciA9 IE1PRFVMTyhhMl9jLCBiMl9jKSAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAg ICAgICBpZiAoYWJzKG1kX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDEwCisrICAgICAgICBtZF9y ID0gTU9EVUxPKGFfbCwgYl9jKSAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysg ICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTEKKysgICAgICAgIG1k X3IgPSBNT0RVTE8oYV9jLCBiX2wpICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQor KyAgICAgICAgaWYgKGFicyhtZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxMgorKworKyAgICAg ICAgZF9pID0gRElNKGFfbCwgYl9sKSAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAi IiB9CisrICAgICAgICBpZiAoZF9pIC5uZS4gMSkgU1RPUCAxMworKyAgICAgICAgZF9pID0gRElN KGEyX2wsIGIyX2wpICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAg ICBpZiAoZF9pIC5uZS4gMSkgU1RPUCAxNAorKyAgICAgICAgZF9yID0gRElNKGFfYywgYl9jKSAg ICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKGRf ciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTUKKysgICAgICAgIGRfciA9IERJTShhMl9jLCBiMl9j KSAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhk X3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDE2CisrICAgICAgICBkX3IgPSBESU0oYV9jLCBiX2wp ICAgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMo ZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxNworKyAgICAgICAgZF9yID0gRElNKGJfbCwgYV9j KSAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJz KGRfcikgPiAxLjBELTYpIFNUT1AgMTgKKysKKysgICAgICAgIHNfaSA9IFNJR04oLWFfbCwgYl9s KSAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKHNfaSAu bmUuIDQpIFNUT1AgMTkKKysgICAgICAgIHNfaSA9IFNJR04oLWEyX2wsIGIyX2wpICAgICAgICAg ICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKHNfaSAubmUuIDQpIFNUT1Ag MjAKKysgICAgICAgIHNfciA9IFNJR04oYV9jLCAtYl9jKSAgICAgICAgICAgICAgICAgICAhIHsg ZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhzX3IgLSAoLWFfYykpID4gMS4wRC02KSBT VE9QIDIxICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBzX3IgPSBTSUdOKGEyX2MsIC1iMl9j KSAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMoc19y IC0gKC1hMl9jKSkgPiAxLjBELTYpIFNUT1AgMjIgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAg IHNfciA9IFNJR04oYV9jLCAtYl9sKSAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIg fQorKyAgICAgICAgaWYgKGFicyhzX3IgLSAoLWFfYykpID4gMS4wRC02KSBTVE9QIDIzICEgeyBk Zy1lcnJvciAiIiB9CisrICAgICAgICBzX3IgPSBTSUdOKC1hX2wsIGJfYykgICAgICAgICAgICAg ICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMoc19yIC0gYV9jKSA+IDEu MEQtNikgU1RPUCAyNCAgICAhIHsgZGctZXJyb3IgIiIgfQorKworKyAgICAgICAgbXhfaSA9IE1B WCgtYV9sLCAtYl9sLCB4X2wsIHlfbCkgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAg ICBpZiAobXhfaSAubmUuIHhfbCkgU1RPUCAyNSAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIi IH0KKysgICAgICAgIG14X2kgPSBNQVgoLWEyX2wsIC1iMl9sLCB4X2wsIHlfbCkgICAgICAhIHsg ZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKG14X2kgLm5lLiB4X2wpIFNUT1AgMjYgICAgICAg ICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBteF9yID0gTUFYKC1hX2MsIC1iX2Ms IHhfYywgeV9jKSAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMobXhf ciAtIHhfYykgPiAxLjBELTYpIFNUT1AgMjcgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAg bXhfciA9IE1BWCgtYV9jLCAtYl9jLCB4X2MsIHlfYykgICAgICAgICEgeyBkZy1lcnJvciAiIiB9 CisrICAgICAgICBpZiAoYWJzKG14X3IgLSB4X2MpID4gMS4wRC02KSBTVE9QIDI4ICAgISB7IGRn LWVycm9yICIiIH0KKysgICAgICAgIG14X3IgPSBNQVgoLWFfbCwgLWJfYywgeF9jLCB5X2wpICAg ICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhteF9yIC0geF9jKSA+IDEu MEQtNikgU1RPUCAyOSAgICEgeyBkZy1lcnJvciAiIiB9CisrCisrICAgICAgICBtbl9pID0gTUlO KC1hX2wsIC1iX2wsIHhfbCwgeV9sKSAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAg IGlmIChtbl9pIC5uZS4gLWFfbCkgU1RPUCAzMSAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIg fQorKyAgICAgICAgbW5faSA9IE1JTigtYTJfbCwgLWIyX2wsIHhfbCwgeV9sKSAgICAgICEgeyBk Zy1lcnJvciAiIiB9CisrICAgICAgICBpZiAobW5faSAubmUuIC1hMl9sKSBTVE9QIDMyICAgICAg ICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIG1uX3IgPSBNSU4oLWFfYywgLWJfYywg eF9jLCB5X2MpICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtbl9y IC0gKC1hX2MpKSA+IDEuMEQtNikgU1RPUCAzMyAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAg bW5fciA9IE1JTigtYTJfYywgLWIyX2MsIHhfYywgeV9jKSAgICAgICEgeyBkZy1lcnJvciAiIiB9 CisrICAgICAgICBpZiAoYWJzKG1uX3IgLSAoLWEyX2MpKSA+IDEuMEQtNikgU1RPUCAzNCAhIHsg ZGctZXJyb3IgIiIgfQorKyAgICAgICAgbW5fciA9IE1JTigtYV9sLCAtYl9jLCB4X2MsIHlfbCkg ICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1uX3IgLSAoLWFfYykp ID4gMS4wRC02KSBTVE9QIDM1ICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgRU5EIFBST0dSQU0K K2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50 X3JlYWxfcHJvbW90aW9uXzYuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2ludHJp bnNpY19pbnRfcmVhbF9wcm9tb3Rpb25fNi5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMDAwMDAuLjAwZjhmYjg4ZjFiCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfcHJvbW90aW9uXzYuZgorQEAg LTAsMCArMSwxMTggQEAKKyshIHsgZGctZG8gY29tcGlsZSB9CisrISB7IGRnLW9wdGlvbnMgIi1m ZGVjIiB9CisrIQorKyEgVGVzdCBwcm9tb3Rpb24gYmV0d2VlbiBpbnRlZ2VycyBhbmQgcmVhbHMg aW4gaW50cmluc2ljIG9wZXJhdGlvbnMuCisrISBUaGVzZSBvcGVyYXRpb25zIGFyZTogbW9kLCBt b2R1bG8sIGRpbSwgc2lnbiwgbWluLCBtYXgsIG1pbmxvYyBhbmQKKyshIG1heGxvYy4KKyshCisr ISBDb250cmlidXRlZCBieSBGcmFuY2lzY28gUmVkb25kbyBNYXJjaGVuYSA8ZnJhbmNpc2NvLm1h cmNoZW5hQGNvZGV0aGluay5jby51az4KKyshICAgICAgICAgICAgIGFuZCBKZWZmIExhdyA8bGF3 QHJlZGhhdC5jb20+CisrISBNb2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0 b25AY29kZXRoaW5rLmNvbT4KKyshCisrICAgICAgUFJPR1JBTSBwcm9tb3Rpb25faW50X3JlYWwK KysgICAgICAgIFJFQUwgbC8wLjAvCisrICAgICAgICBJTlRFR0VSIGFfaS80LworKyAgICAgICAg SU5URUdFUio0IGEyX2kvNC8KKysgICAgICAgIENIQVJBQ1RFUiBiX2MKKysgICAgICAgIENIQVJB Q1RFUio4IGIyX2MKKysgICAgICAgIElOVEVHRVIgeF9pLzIvCisrICAgICAgICBDSEFSQUNURVIg eV9jCisrICAgICAgICBSRUFMIGFfci80LjAvCisrICAgICAgICBSRUFMKjQgYTJfci80LjAvCisr ICAgICAgICBMT0dJQ0FMIGJfbAorKyAgICAgICAgTE9HSUNBTCo4IGIyX2wKKysgICAgICAgIFJF QUwgeF9yLzIuMC8KKysgICAgICAgIExPR0lDQUwgeV9sCisrCisrICAgICAgICBJTlRFR0VSIG1f aS8wLworKyAgICAgICAgUkVBTCBtX3IvMC4wLworKworKyAgICAgICAgSU5URUdFUiBtZF9pLzAv CisrICAgICAgICBSRUFMIG1kX3IvMC4wLworKworKyAgICAgICAgSU5URUdFUiBkX2kvMC8KKysg ICAgICAgIFJFQUwgZF9yLzAuMC8KKysKKysgICAgICAgIElOVEVHRVIgc19pLzAvCisrICAgICAg ICBSRUFMIHNfci8wLjAvCisrCisrICAgICAgICBJTlRFR0VSIG1uX2kvMC8KKysgICAgICAgIFJF QUwgbW5fci8wLjAvCisrCisrICAgICAgICBJTlRFR0VSIG14X2kvMC8KKysgICAgICAgIFJFQUwg bXhfci8wLjAvCisrCisrICAgICAgICBtX2kgPSBNT0QoYV9pLCBiX2MpICAgICAgICAgICAgICAg ICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChtX2kgLm5lLiAxKSBTVE9QIDEK KysgICAgICAgIG1faSA9IE1PRChhMl9pLCBiMl9jKSAgICAgICAgICAgICAgICAgICAhIHsgZGct ZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKG1faSAubmUuIDEpIFNUT1AgMgorKyAgICAgICAgbV9y ID0gTU9EKGFfciwgYl9sKSAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9Cisr ICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMworKyAgICAgICAgbV9y ID0gTU9EKGEyX3IsIGIyX2wpICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9Cisr ICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgNAorKyAgICAgICAgbV9y ID0gTU9EKGFfaSwgYl9sKSAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9Cisr ICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgNQorKyAgICAgICAgbV9y ID0gTU9EKGFfciwgYl9jKSAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9Cisr ICAgICAgICBpZiAoYWJzKG1fciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgNgorKworKyAgICAgICAg bWRfaSA9IE1PRFVMTyhhX2ksIGJfYykgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9 CisrICAgICAgICBpZiAobWRfaSAubmUuIDEpIFNUT1AgNworKyAgICAgICAgbWRfaSA9IE1PRFVM TyhhMl9pLCBiMl9jKSAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBp ZiAobWRfaSAubmUuIDEpIFNUT1AgOAorKyAgICAgICAgbWRfciA9IE1PRFVMTyhhX3IsIGJfbCkg ICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1kX3Ig LSAxLjApID4gMS4wRC02KSBTVE9QIDkKKysgICAgICAgIG1kX3IgPSBNT0RVTE8oYTJfciwgYjJf bCkgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtZF9y IC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxMAorKyAgICAgICAgbWRfciA9IE1PRFVMTyhhX2ksIGJf bCkgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1k X3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDExCisrICAgICAgICBtZF9yID0gTU9EVUxPKGFfciwg Yl9jKSAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMo bWRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTIKKysKKysgICAgICAgIGRfaSA9IERJTShhX2ks IGJfYykgICAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYg KGRfaSAubmUuIDEpIFNUT1AgMTMKKysgICAgICAgIGRfaSA9IERJTShhMl9pLCBiMl9jKSAgICAg ICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGRfaSAubmUuIDEp IFNUT1AgMTQKKysgICAgICAgIGRfciA9IERJTShhX3IsIGJfbCkgICAgICAgICAgICAgICAgICAg ICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02 KSBTVE9QIDE1CisrICAgICAgICBkX3IgPSBESU0oYTJfciwgYjJfbCkgICAgICAgICAgICAgICAg ICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMoZF9yIC0gMS4wKSA+IDEuMEQt NikgU1RPUCAxNgorKyAgICAgICAgZF9yID0gRElNKGFfciwgYl9jKSAgICAgICAgICAgICAgICAg ICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKGRfciAtIDEuMCkgPiAxLjBE LTYpIFNUT1AgMTcKKysgICAgICAgIGRfciA9IERJTShiX2MsIGFfcikgICAgICAgICAgICAgICAg ICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhkX3IpID4gMS4wRC02KSBT VE9QIDE4CisrCisrICAgICAgICBzX2kgPSBTSUdOKC1hX2ksIGJfYykgICAgICAgICAgICAgICAg ICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChzX2kgLm5lLiA0KSBTVE9QIDE5Cisr ICAgICAgICBzX2kgPSBTSUdOKC1hMl9pLCBiMl9jKSAgICAgICAgICAgICAgICAgISB7IGRnLWVy cm9yICIiIH0KKysgICAgICAgIGlmIChzX2kgLm5lLiA0KSBTVE9QIDIwCisrICAgICAgICBzX3Ig PSBTSUdOKGFfciwgLWJfbCkgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysg ICAgICAgIGlmIChhYnMoc19yIC0gKC1hX3IpKSA+IDEuMEQtNikgU1RPUCAyMQorKyAgICAgICAg c19yID0gU0lHTihhMl9yLCAtYjJfbCkgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9 CisrICAgICAgICBpZiAoYWJzKHNfciAtICgtYTJfcikpID4gMS4wRC02KSBTVE9QIDIyCisrICAg ICAgICBzX3IgPSBTSUdOKGFfciwgLWJfYykgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9y ICIiIH0KKysgICAgICAgIGlmIChhYnMoc19yIC0gKC1hX3IpKSA+IDEuMEQtNikgU1RPUCAyMwor KyAgICAgICAgc19yID0gU0lHTigtYV9pLCBiX2wpICAgICAgICAgICAgICAgICAgICEgeyBkZy1l cnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKHNfciAtIGFfcikgPiAxLjBELTYpIFNUT1AgMjQK KysKKysgICAgICAgIG14X2kgPSBNQVgoLWFfaSwgLWJfYywgeF9pLCB5X2MpICAgICAgICAhIHsg ZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKG14X2kgLm5lLiB4X2kpIFNUT1AgMjUKKysgICAg ICAgIG14X2kgPSBNQVgoLWEyX2ksIC1iMl9jLCB4X2ksIHlfYykgICAgICAhIHsgZGctZXJyb3Ig IiIgfQorKyAgICAgICAgaWYgKG14X2kgLm5lLiB4X2kpIFNUT1AgMjYKKysgICAgICAgIG14X3Ig PSBNQVgoLWFfciwgLWJfbCwgeF9yLCB5X2wpICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAg ICAgICAgaWYgKGFicyhteF9yIC0geF9yKSA+IDEuMEQtNikgU1RPUCAyNworKyAgICAgICAgbXhf ciA9IE1BWCgtYV9yLCAtYl9sLCB4X3IsIHlfbCkgICAgICAgICEgeyBkZy1lcnJvciAiIiB9Cisr ICAgICAgICBpZiAoYWJzKG14X3IgLSB4X3IpID4gMS4wRC02KSBTVE9QIDI4CisrICAgICAgICBt eF9yID0gTUFYKC1hX2ksIC1iX2wsIHhfciwgeV9jKSAgICAgICAgISB7IGRnLWVycm9yICIiIH0K KysgICAgICAgIGlmIChhYnMobXhfciAtIHhfcikgPiAxLjBELTYpIFNUT1AgMjkKKysKKysgICAg ICAgIG1uX2kgPSBNSU4oLWFfaSwgLWJfYywgeF9pLCB5X2MpICAgICAgICAhIHsgZGctZXJyb3Ig IiIgfQorKyAgICAgICAgaWYgKG1uX2kgLm5lLiAtYV9pKSBTVE9QIDMxCisrICAgICAgICBtbl9p ID0gTUlOKC1hMl9pLCAtYjJfYywgeF9pLCB5X2MpICAgICAgISB7IGRnLWVycm9yICIiIH0KKysg ICAgICAgIGlmIChtbl9pIC5uZS4gLWEyX2kpIFNUT1AgMzIKKysgICAgICAgIG1uX3IgPSBNSU4o LWFfciwgLWJfbCwgeF9yLCB5X2wpICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAg aWYgKGFicyhtbl9yIC0gKC1hX3IpKSA+IDEuMEQtNikgU1RPUCAzMworKyAgICAgICAgbW5fciA9 IE1JTigtYTJfciwgLWIyX2wsIHhfciwgeV9sKSAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAg ICAgICBpZiAoYWJzKG1uX3IgLSAoLWEyX3IpKSA+IDEuMEQtNikgU1RPUCAzNAorKyAgICAgICAg bW5fciA9IE1JTigtYV9pLCAtYl9sLCB4X3IsIHlfYykgICAgICAgICEgeyBkZy1lcnJvciAiIiB9 CisrICAgICAgICBpZiAoYWJzKG1uX3IgLSAoLWFfcikpID4gMS4wRC02KSBTVE9QIDM1CisrICAg ICAgRU5EIFBST0dSQU0KK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Rl Y19pbnRyaW5zaWNfaW50X3JlYWxfcHJvbW90aW9uXzcuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZGVjX2ludHJpbnNpY19pbnRfcmVhbF9wcm9tb3Rpb25fNy5mCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjFkNDE1MGQ4MWMwCistLS0gL2Rldi9udWxsCisr KysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pbnRyaW5zaWNfaW50X3JlYWxfcHJv bW90aW9uXzcuZgorQEAgLTAsMCArMSwxMTggQEAKKyshIHsgZGctZG8gY29tcGlsZSB9CisrISB7 IGRnLW9wdGlvbnMgIi1mZGVjLXByb21vdGlvbiIgfQorKyEKKyshIFRlc3QgcHJvbW90aW9uIGJl dHdlZW4gaW50ZWdlcnMgYW5kIHJlYWxzIGluIGludHJpbnNpYyBvcGVyYXRpb25zLgorKyEgVGhl c2Ugb3BlcmF0aW9ucyBhcmU6IG1vZCwgbW9kdWxvLCBkaW0sIHNpZ24sIG1pbiwgbWF4LCBtaW5s b2MgYW5kCisrISBtYXhsb2MuCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgRnJhbmNpc2NvIFJlZG9u ZG8gTWFyY2hlbmEgPGZyYW5jaXNjby5tYXJjaGVuYUBjb2RldGhpbmsuY28udWs+CisrISAgICAg ICAgICAgICBhbmQgSmVmZiBMYXcgPGxhd0ByZWRoYXQuY29tPgorKyEgTW9kaWZpZWQgYnkgTWFy ayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CisrIQorKyAgICAgIFBS T0dSQU0gcHJvbW90aW9uX2ludF9yZWFsCisrICAgICAgICBSRUFMIGwvMC4wLworKyAgICAgICAg SU5URUdFUiBhX2kvNC8KKysgICAgICAgIElOVEVHRVIqNCBhMl9pLzQvCisrICAgICAgICBDSEFS QUNURVIgYl9jCisrICAgICAgICBDSEFSQUNURVIqOCBiMl9jCisrICAgICAgICBJTlRFR0VSIHhf aS8yLworKyAgICAgICAgQ0hBUkFDVEVSIHlfYworKyAgICAgICAgUkVBTCBhX3IvNC4wLworKyAg ICAgICAgUkVBTCo0IGEyX3IvNC4wLworKyAgICAgICAgTE9HSUNBTCBiX2wKKysgICAgICAgIExP R0lDQUwqOCBiMl9sCisrICAgICAgICBSRUFMIHhfci8yLjAvCisrICAgICAgICBMT0dJQ0FMIHlf bAorKworKyAgICAgICAgSU5URUdFUiBtX2kvMC8KKysgICAgICAgIFJFQUwgbV9yLzAuMC8KKysK KysgICAgICAgIElOVEVHRVIgbWRfaS8wLworKyAgICAgICAgUkVBTCBtZF9yLzAuMC8KKysKKysg ICAgICAgIElOVEVHRVIgZF9pLzAvCisrICAgICAgICBSRUFMIGRfci8wLjAvCisrCisrICAgICAg ICBJTlRFR0VSIHNfaS8wLworKyAgICAgICAgUkVBTCBzX3IvMC4wLworKworKyAgICAgICAgSU5U RUdFUiBtbl9pLzAvCisrICAgICAgICBSRUFMIG1uX3IvMC4wLworKworKyAgICAgICAgSU5URUdF UiBteF9pLzAvCisrICAgICAgICBSRUFMIG14X3IvMC4wLworKworKyAgICAgICAgbV9pID0gTU9E KGFfaSwgYl9jKSAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAg ICBpZiAobV9pIC5uZS4gMSkgU1RPUCAxCisrICAgICAgICBtX2kgPSBNT0QoYTJfaSwgYjJfYykg ICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChtX2kgLm5l LiAxKSBTVE9QIDIKKysgICAgICAgIG1fciA9IE1PRChhX3IsIGJfbCkgICAgICAgICAgICAgICAg ICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4w RC02KSBTVE9QIDMKKysgICAgICAgIG1fciA9IE1PRChhMl9yLCBiMl9sKSAgICAgICAgICAgICAg ICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4w RC02KSBTVE9QIDQKKysgICAgICAgIG1fciA9IE1PRChhX2ksIGJfbCkgICAgICAgICAgICAgICAg ICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4w RC02KSBTVE9QIDUKKysgICAgICAgIG1fciA9IE1PRChhX3IsIGJfYykgICAgICAgICAgICAgICAg ICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtX3IgLSAxLjApID4gMS4w RC02KSBTVE9QIDYKKysKKysgICAgICAgIG1kX2kgPSBNT0RVTE8oYV9pLCBiX2MpICAgICAgICAg ICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKG1kX2kgLm5lLiAxKSBTVE9Q IDcKKysgICAgICAgIG1kX2kgPSBNT0RVTE8oYTJfaSwgYjJfYykgICAgICAgICAgICAgICAhIHsg ZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKG1kX2kgLm5lLiAxKSBTVE9QIDgKKysgICAgICAg IG1kX3IgPSBNT0RVTE8oYV9yLCBiX2wpICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIg fQorKyAgICAgICAgaWYgKGFicyhtZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCA5CisrICAgICAg ICBtZF9yID0gTU9EVUxPKGEyX3IsIGIyX2wpICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIi IH0KKysgICAgICAgIGlmIChhYnMobWRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTAKKysgICAg ICAgIG1kX3IgPSBNT0RVTE8oYV9pLCBiX2wpICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3Ig IiIgfQorKyAgICAgICAgaWYgKGFicyhtZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxMQorKyAg ICAgICAgbWRfciA9IE1PRFVMTyhhX3IsIGJfYykgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJv ciAiIiB9CisrICAgICAgICBpZiAoYWJzKG1kX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDEyCisr CisrICAgICAgICBkX2kgPSBESU0oYV9pLCBiX2MpICAgICAgICAgICAgICAgICAgICAgISB7IGRn LWVycm9yICIiIH0KKysgICAgICAgIGlmIChkX2kgLm5lLiAxKSBTVE9QIDEzCisrICAgICAgICBk X2kgPSBESU0oYTJfaSwgYjJfYykgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0K KysgICAgICAgIGlmIChkX2kgLm5lLiAxKSBTVE9QIDE0CisrICAgICAgICBkX3IgPSBESU0oYV9y LCBiX2wpICAgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlm IChhYnMoZF9yIC0gMS4wKSA+IDEuMEQtNikgU1RPUCAxNQorKyAgICAgICAgZF9yID0gRElNKGEy X3IsIGIyX2wpICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBp ZiAoYWJzKGRfciAtIDEuMCkgPiAxLjBELTYpIFNUT1AgMTYKKysgICAgICAgIGRfciA9IERJTShh X3IsIGJfYykgICAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAg aWYgKGFicyhkX3IgLSAxLjApID4gMS4wRC02KSBTVE9QIDE3CisrICAgICAgICBkX3IgPSBESU0o Yl9jLCBhX3IpICAgICAgICAgICAgICAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAg IGlmIChhYnMoZF9yKSA+IDEuMEQtNikgU1RPUCAxOAorKworKyAgICAgICAgc19pID0gU0lHTigt YV9pLCBiX2MpICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBp ZiAoc19pIC5uZS4gNCkgU1RPUCAxOQorKyAgICAgICAgc19pID0gU0lHTigtYTJfaSwgYjJfYykg ICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoc19pIC5uZS4g NCkgU1RPUCAyMAorKyAgICAgICAgc19yID0gU0lHTihhX3IsIC1iX2wpICAgICAgICAgICAgICAg ICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKHNfciAtICgtYV9yKSkgPiAx LjBELTYpIFNUT1AgMjEKKysgICAgICAgIHNfciA9IFNJR04oYTJfciwgLWIyX2wpICAgICAgICAg ICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhzX3IgLSAoLWEyX3Ip KSA+IDEuMEQtNikgU1RPUCAyMgorKyAgICAgICAgc19yID0gU0lHTihhX3IsIC1iX2MpICAgICAg ICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKHNfciAtICgt YV9yKSkgPiAxLjBELTYpIFNUT1AgMjMKKysgICAgICAgIHNfciA9IFNJR04oLWFfaSwgYl9sKSAg ICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhzX3Ig LSBhX3IpID4gMS4wRC02KSBTVE9QIDI0CisrCisrICAgICAgICBteF9pID0gTUFYKC1hX2ksIC1i X2MsIHhfaSwgeV9jKSAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChteF9p IC5uZS4geF9pKSBTVE9QIDI1CisrICAgICAgICBteF9pID0gTUFYKC1hMl9pLCAtYjJfYywgeF9p LCB5X2MpICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChteF9pIC5uZS4geF9p KSBTVE9QIDI2CisrICAgICAgICBteF9yID0gTUFYKC1hX3IsIC1iX2wsIHhfciwgeV9sKSAgICAg ICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMobXhfciAtIHhfcikgPiAxLjBE LTYpIFNUT1AgMjcKKysgICAgICAgIG14X3IgPSBNQVgoLWFfciwgLWJfbCwgeF9yLCB5X2wpICAg ICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhteF9yIC0geF9yKSA+IDEu MEQtNikgU1RPUCAyOAorKyAgICAgICAgbXhfciA9IE1BWCgtYV9pLCAtYl9sLCB4X3IsIHlfYykg ICAgICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAoYWJzKG14X3IgLSB4X3IpID4g MS4wRC02KSBTVE9QIDI5CisrCisrICAgICAgICBtbl9pID0gTUlOKC1hX2ksIC1iX2MsIHhfaSwg eV9jKSAgICAgICAgISB7IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChtbl9pIC5uZS4gLWFf aSkgU1RPUCAzMQorKyAgICAgICAgbW5faSA9IE1JTigtYTJfaSwgLWIyX2MsIHhfaSwgeV9jKSAg ICAgICEgeyBkZy1lcnJvciAiIiB9CisrICAgICAgICBpZiAobW5faSAubmUuIC1hMl9pKSBTVE9Q IDMyCisrICAgICAgICBtbl9yID0gTUlOKC1hX3IsIC1iX2wsIHhfciwgeV9sKSAgICAgICAgISB7 IGRnLWVycm9yICIiIH0KKysgICAgICAgIGlmIChhYnMobW5fciAtICgtYV9yKSkgPiAxLjBELTYp IFNUT1AgMzMKKysgICAgICAgIG1uX3IgPSBNSU4oLWEyX3IsIC1iMl9sLCB4X3IsIHlfbCkgICAg ICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtbl9yIC0gKC1hMl9yKSkgPiAx LjBELTYpIFNUT1AgMzQKKysgICAgICAgIG1uX3IgPSBNSU4oLWFfaSwgLWJfbCwgeF9yLCB5X2Mp ICAgICAgICAhIHsgZGctZXJyb3IgIiIgfQorKyAgICAgICAgaWYgKGFicyhtbl9yIC0gKC1hX3Ip KSA+IDEuMEQtNikgU1RPUCAzNQorKyAgICAgIEVORCBQUk9HUkFNCitkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfa2luZF9wcm9tb3Rpb24tMS5mIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9kZWNfa2luZF9wcm9tb3Rpb24tMS5mCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLjQzNWJmOTgzNTBjCistLS0gL2Rldi9udWxsCisrKysg Yi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19raW5kX3Byb21vdGlvbi0xLmYKK0BAIC0w LDAgKzEsNDAgQEAKKysheyBkZy1kbyBydW4gfQorKyF7IGRnLW9wdGlvbnMgIi1mZGVjIiB9Cisr IQorKyEgaW50ZWdlciB0eXBlcyBvZiBhIHNtYWxsZXIga2luZCB0aGFuIGV4cGVjdGVkIHNob3Vs ZCBiZQorKyEgYWNjZXB0ZWQgYnkgdHlwZSBzcGVjaWZpYyBpbnRyaW5zaWMgZnVuY3Rpb25zCisr IQorKyEgQ29udHJpYnV0ZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0 aGluay5jb20+CisrIQorKyAgICAgIHByb2dyYW0gdGVzdF9zbWFsbF90eXBlX3Byb210aW9uCisr ICAgICAgICBpbXBsaWNpdCBub25lCisrICAgICAgICBpbnRlZ2VyKDEpIDo6IGEgPSAxCisrICAg ICAgICBpbnRlZ2VyIDo6IGkKKysgICAgICAgIGlmIChpaWFicygtOV8xKS5uZS45KSBzdG9wIDEK KysgICAgICAgIGlmIChpYWJzKC05XzEpLm5lLjkpIHN0b3AgMgorKyAgICAgICAgaWYgKGlhYnMo LTlfMikubmUuOSkgc3RvcCAzCisrICAgICAgICBpZiAoamlhYnMoLTlfMSkubmUuOSkgc3RvcCA0 CisrICAgICAgICBpZiAoamlhYnMoLTlfMikubmUuOSkgc3RvcCA1CisrICAgICAgICBpZiAoaWlz aGZ0KDFfMSwgMikubmUuNCkgc3RvcCA2CisrICAgICAgICBpZiAoamlzaGZ0KDFfMSwgMikubmUu NCkgc3RvcCA3CisrICAgICAgICBpZiAoamlzaGZ0KDFfMiwgMikubmUuNCkgc3RvcCA4CisrICAg ICAgICBpZiAoa2lzaGZ0KDFfMSwgMikubmUuNCkgc3RvcCA5CisrICAgICAgICBpZiAoa2lzaGZ0 KDFfMiwgMikubmUuNCkgc3RvcCAxMAorKyAgICAgICAgaWYgKGtpc2hmdCgxXzQsIDIpLm5lLjQp IHN0b3AgMTEKKysgICAgICAgIGlmIChpbW9kKDE3XzEsIDMpLm5lLjIpIHN0b3AgMTIKKysgICAg ICAgIGlmIChqbW9kKDE3XzEsIDMpLm5lLjIpIHN0b3AgMTMKKysgICAgICAgIGlmIChqbW9kKDE3 XzIsIDMpLm5lLjIpIHN0b3AgMTQKKysgICAgICAgIGlmIChrbW9kKDE3XzEsIDMpLm5lLjIpIHN0 b3AgMTUKKysgICAgICAgIGlmIChrbW9kKDE3XzIsIDMpLm5lLjIpIHN0b3AgMTYKKysgICAgICAg IGlmIChrbW9kKDE3XzQsIDMpLm5lLjIpIHN0b3AgMTcKKysgICAgICAgIGlmIChpbm90KDVfMSku bmUuLTYpIHN0b3AgMTgKKysgICAgICAgIGlmIChqbm90KDVfMSkubmUuLTYpIHN0b3AgMTkKKysg ICAgICAgIGlmIChqbm90KDVfMikubmUuLTYpIHN0b3AgMjAKKysgICAgICAgIGlmIChrbm90KDVf MSkubmUuLTYpIHN0b3AgMjEKKysgICAgICAgIGlmIChrbm90KDVfMikubmUuLTYpIHN0b3AgMjIK KysgICAgICAgIGlmIChrbm90KDVfNCkubmUuLTYpIHN0b3AgMjMKKysgICAgICAgIGlmIChpc2ln bigtNzdfMSwgMSkubmUuNzcpIHN0b3AgMjQKKysgICAgICAgIGlmIChpc2lnbigtNzdfMSwgLTEp Lm5lLi03Nykgc3RvcCAyNQorKyAgICAgICAgaWYgKGlzaWduKC03N18yLCAxKS5uZS43Nykgc3Rv cCAyNgorKyAgICAgICAgaWYgKGlzaWduKC03N18yLCAtMSkubmUuLTc3KSBzdG9wIDI3CisrICAg ICAgZW5kIHByb2dyYW0KK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Rl Y19raW5kX3Byb21vdGlvbi0yLmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19raW5k X3Byb21vdGlvbi0yLmYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4u N2IxNjk3Y2E2NjUKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZGVjX2tpbmRfcHJvbW90aW9uLTIuZgorQEAgLTAsMCArMSw0MCBAQAorKyF7IGRnLWRvIHJ1 biB9CisrIXsgZGctb3B0aW9ucyAiLWZkZWMtaW50cmluc2ljLWludHMgLWZkZWMtcHJvbW90aW9u IiB9CisrIQorKyEgaW50ZWdlciB0eXBlcyBvZiBhIHNtYWxsZXIga2luZCB0aGFuIGV4cGVjdGVk IHNob3VsZCBiZQorKyEgYWNjZXB0ZWQgYnkgdHlwZSBzcGVjaWZpYyBpbnRyaW5zaWMgZnVuY3Rp b25zCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1hcmsuZWdnbGVzdG9u QGNvZGV0aGluay5jb20+CisrIQorKyAgICAgIHByb2dyYW0gdGVzdF9zbWFsbF90eXBlX3Byb210 aW9uCisrICAgICAgICBpbXBsaWNpdCBub25lCisrICAgICAgICBpbnRlZ2VyKDEpIDo6IGEgPSAx CisrICAgICAgICBpbnRlZ2VyIDo6IGkKKysgICAgICAgIGlmIChpaWFicygtOV8xKS5uZS45KSBz dG9wIDEKKysgICAgICAgIGlmIChpYWJzKC05XzEpLm5lLjkpIHN0b3AgMgorKyAgICAgICAgaWYg KGlhYnMoLTlfMikubmUuOSkgc3RvcCAzCisrICAgICAgICBpZiAoamlhYnMoLTlfMSkubmUuOSkg c3RvcCA0CisrICAgICAgICBpZiAoamlhYnMoLTlfMikubmUuOSkgc3RvcCA1CisrICAgICAgICBp ZiAoaWlzaGZ0KDFfMSwgMikubmUuNCkgc3RvcCA2CisrICAgICAgICBpZiAoamlzaGZ0KDFfMSwg MikubmUuNCkgc3RvcCA3CisrICAgICAgICBpZiAoamlzaGZ0KDFfMiwgMikubmUuNCkgc3RvcCA4 CisrICAgICAgICBpZiAoa2lzaGZ0KDFfMSwgMikubmUuNCkgc3RvcCA5CisrICAgICAgICBpZiAo a2lzaGZ0KDFfMiwgMikubmUuNCkgc3RvcCAxMAorKyAgICAgICAgaWYgKGtpc2hmdCgxXzQsIDIp Lm5lLjQpIHN0b3AgMTEKKysgICAgICAgIGlmIChpbW9kKDE3XzEsIDMpLm5lLjIpIHN0b3AgMTIK KysgICAgICAgIGlmIChqbW9kKDE3XzEsIDMpLm5lLjIpIHN0b3AgMTMKKysgICAgICAgIGlmIChq bW9kKDE3XzIsIDMpLm5lLjIpIHN0b3AgMTQKKysgICAgICAgIGlmIChrbW9kKDE3XzEsIDMpLm5l LjIpIHN0b3AgMTUKKysgICAgICAgIGlmIChrbW9kKDE3XzIsIDMpLm5lLjIpIHN0b3AgMTYKKysg ICAgICAgIGlmIChrbW9kKDE3XzQsIDMpLm5lLjIpIHN0b3AgMTcKKysgICAgICAgIGlmIChpbm90 KDVfMSkubmUuLTYpIHN0b3AgMTgKKysgICAgICAgIGlmIChqbm90KDVfMSkubmUuLTYpIHN0b3Ag MTkKKysgICAgICAgIGlmIChqbm90KDVfMikubmUuLTYpIHN0b3AgMjAKKysgICAgICAgIGlmIChr bm90KDVfMSkubmUuLTYpIHN0b3AgMjEKKysgICAgICAgIGlmIChrbm90KDVfMikubmUuLTYpIHN0 b3AgMjIKKysgICAgICAgIGlmIChrbm90KDVfNCkubmUuLTYpIHN0b3AgMjMKKysgICAgICAgIGlm IChpc2lnbigtNzdfMSwgMSkubmUuNzcpIHN0b3AgMjQKKysgICAgICAgIGlmIChpc2lnbigtNzdf MSwgLTEpLm5lLi03Nykgc3RvcCAyNQorKyAgICAgICAgaWYgKGlzaWduKC03N18yLCAxKS5uZS43 Nykgc3RvcCAyNgorKyAgICAgICAgaWYgKGlzaWduKC03N18yLCAtMSkubmUuLTc3KSBzdG9wIDI3 CisrICAgICAgZW5kIHByb2dyYW0KK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2RlY19raW5kX3Byb21vdGlvbi0zLmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Rl Y19raW5kX3Byb21vdGlvbi0zLmYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAw MDAwMC4uZGI4ZGZmNmM1NWQKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZGVjX2tpbmRfcHJvbW90aW9uLTMuZgorQEAgLTAsMCArMSwzOSBAQAorKyF7IGRn LWRvIGNvbXBpbGUgfQorKyF7IGRnLW9wdGlvbnMgIi1mZGVjIC1mbm8tZGVjLXByb21vdGlvbiIg fQorKyEKKyshIGludGVnZXIgdHlwZXMgb2YgYSBzbWFsbGVyIGtpbmQgdGhhbiBleHBlY3RlZCBz aG91bGQgYmUKKyshIGFjY2VwdGVkIGJ5IHR5cGUgc3BlY2lmaWMgaW50cmluc2ljIGZ1bmN0aW9u cworKyEKKyshIENvbnRyaWJ1dGVkIGJ5IE1hcmsgRWdnbGVzdG9uIDxtYXJrLmVnZ2xlc3RvbkBj b2RldGhpbmsuY29tPgorKyEKKysgICAgICBwcm9ncmFtIHRlc3Rfc21hbGxfdHlwZV9wcm9tdGlv bgorKyAgICAgICAgaW50ZWdlcigxKSA6OiBhID0gMQorKyAgICAgICAgaW50ZWdlciA6OiBpCisr ICAgICAgICBpZiAoaWlhYnMoLTlfMSkubmUuOSkgc3RvcCAxCisrICAgICAgICBpZiAoaWFicygt OV8xKS5uZS45KSBzdG9wIDIgISB7IGRnLWVycm9yICJ0eXBlIG1pc21hdGNoIGluIGFyZ3VtZW50 IiB9CisrICAgICAgICBpZiAoaWFicygtOV8yKS5uZS45KSBzdG9wIDMgISB7IGRnLWVycm9yICJ0 eXBlIG1pc21hdGNoIGluIGFyZ3VtZW50IiB9CisrICAgICAgICBpZiAoamlhYnMoLTlfMSkubmUu OSkgc3RvcCA0CisrICAgICAgICBpZiAoamlhYnMoLTlfMikubmUuOSkgc3RvcCA1CisrICAgICAg ICBpZiAoaWlzaGZ0KDFfMSwgMikubmUuNCkgc3RvcCA2CisrICAgICAgICBpZiAoamlzaGZ0KDFf MSwgMikubmUuNCkgc3RvcCA3CisrICAgICAgICBpZiAoamlzaGZ0KDFfMiwgMikubmUuNCkgc3Rv cCA4CisrICAgICAgICBpZiAoa2lzaGZ0KDFfMSwgMikubmUuNCkgc3RvcCA5CisrICAgICAgICBp ZiAoa2lzaGZ0KDFfMiwgMikubmUuNCkgc3RvcCAxMAorKyAgICAgICAgaWYgKGtpc2hmdCgxXzQs IDIpLm5lLjQpIHN0b3AgMTEKKysgICAgICAgIGlmIChpbW9kKDE3XzEsIDMpLm5lLjIpIHN0b3Ag MTIKKysgICAgICAgIGlmIChqbW9kKDE3XzEsIDMpLm5lLjIpIHN0b3AgMTMKKysgICAgICAgIGlm IChqbW9kKDE3XzIsIDMpLm5lLjIpIHN0b3AgMTQKKysgICAgICAgIGlmIChrbW9kKDE3XzEsIDMp Lm5lLjIpIHN0b3AgMTUKKysgICAgICAgIGlmIChrbW9kKDE3XzIsIDMpLm5lLjIpIHN0b3AgMTYK KysgICAgICAgIGlmIChrbW9kKDE3XzQsIDMpLm5lLjIpIHN0b3AgMTcKKysgICAgICAgIGlmIChp bm90KDVfMSkubmUuLTYpIHN0b3AgMTgKKysgICAgICAgIGlmIChqbm90KDVfMSkubmUuLTYpIHN0 b3AgMTkKKysgICAgICAgIGlmIChqbm90KDVfMikubmUuLTYpIHN0b3AgMjAKKysgICAgICAgIGlm IChrbm90KDVfMSkubmUuLTYpIHN0b3AgMjEKKysgICAgICAgIGlmIChrbm90KDVfMikubmUuLTYp IHN0b3AgMjIKKysgICAgICAgIGlmIChrbm90KDVfNCkubmUuLTYpIHN0b3AgMjMKKysgICAgICAg IGlmIChpc2lnbigtNzdfMSwgMSkubmUuNzcpIHN0b3AgMjQgISB7IGRnLWVycm9yICJ0eXBlIG1p c21hdGNoIGluIGFyZ3VtZW50IiB9CisrICAgICAgICBpZiAoaXNpZ24oLTc3XzEsIC0xKS5uZS4t NzcpIHN0b3AgMjUgISB7IGRnLWVycm9yICJ0eXBlIG1pc21hdGNoIGluIGFyZ3VtZW50IiB9Cisr ICAgICAgICBpZiAoaXNpZ24oLTc3XzIsIDEpLm5lLjc3KSBzdG9wIDI2ICEgeyBkZy1lcnJvciAi dHlwZSBtaXNtYXRjaCBpbiBhcmd1bWVudCIgfQorKyAgICAgICAgaWYgKGlzaWduKC03N18yLCAt MSkubmUuLTc3KSBzdG9wIDI3ICEgeyBkZy1lcnJvciAidHlwZSBtaXNtYXRjaCBpbiBhcmd1bWVu dCIgfQorKyAgICAgIGVuZCBwcm9ncmFtCistLSAKKzIuMjcuMAorCgpkaWZmIC0tZ2l0IGEvZ2Nj MTEtZm9ydHJhbi1mZGVjLXNlcXVlbmNlLnBhdGNoIGIvZ2NjMTEtZm9ydHJhbi1mZGVjLXNlcXVl bmNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZjhiMDkKLS0t IC9kZXYvbnVsbAorKysgYi9nY2MxMS1mb3J0cmFuLWZkZWMtc2VxdWVuY2UucGF0Y2gKQEAgLTAs MCArMSwyNjIgQEAKK0Zyb20gYmI3NjQ0NmRiMTBjMjE4NjBhNGUxOTU2OWNlM2UzNTBkOGEyYjU5 ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hcmsgRWdnbGVzdG9uIDxtYXJrZWdn bGVzdG9uQGdjYy5nbnUub3JnPgorRGF0ZTogRnJpLCAyMiBKYW4gMjAyMSAxNTowMDo0NCArMDAw MAorU3ViamVjdDogW1BBVENIIDA5LzEwXSBBZGQgdGhlIFNFUVVFTkNFIGF0dHJpYnV0ZSBieSBk ZWZhdWx0IGlmIGl0J3Mgbm90CisgcHJlc2VudC4KKworVXNlIC1mZGVjLXNlcXVlbmNlIHRvIGVu YWJsZSB0aGlzIGZlYXR1cmUuIEFsc28gZW5hYmxlZCBieSAtZmRlYy4KKy0tLQorIGdjYy9mb3J0 cmFuL2xhbmcub3B0ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrCisgZ2NjL2ZvcnRy YW4vb3B0aW9ucy5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIGdjYy9mb3J0cmFu L3Jlc29sdmUuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzICsrKystCisgLi4uZGRfU0VR VUVOQ0VfdG9fQ09NTU9OX2Jsb2NrX2J5X2RlZmF1bHRfMS5mIHwgNTcgKysrKysrKysrKysrKysr KysrKworIC4uLmRkX1NFUVVFTkNFX3RvX0NPTU1PTl9ibG9ja19ieV9kZWZhdWx0XzIuZiB8IDU3 ICsrKysrKysrKysrKysrKysrKysKKyAuLi5kZF9TRVFVRU5DRV90b19DT01NT05fYmxvY2tfYnlf ZGVmYXVsdF8zLmYgfCA1NyArKysrKysrKysrKysrKysrKysrCisgNiBmaWxlcyBjaGFuZ2VkLCAx ODYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfYWRkX1NFUVVFTkNFX3RvX0NPTU1PTl9ibG9ja19i eV9kZWZhdWx0XzEuZgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2RlY19hZGRfU0VRVUVOQ0VfdG9fQ09NTU9OX2Jsb2NrX2J5X2RlZmF1bHRfMi5mCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2FkZF9TRVFVRU5D RV90b19DT01NT05fYmxvY2tfYnlfZGVmYXVsdF8zLmYKKworZGlmZiAtLWdpdCBhL2djYy9mb3J0 cmFuL2xhbmcub3B0IGIvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKK2luZGV4IDRjYTJmOTNmMmRmLi4w MTljNzk4Y2YwOSAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL2xhbmcub3B0CisrKysgYi9nY2Mv Zm9ydHJhbi9sYW5nLm9wdAorQEAgLTUwOSw2ICs1MDksMTAgQEAgZmRlYy1wcm9tb3Rpb24KKyBG b3J0cmFuIFZhcihmbGFnX2RlY19wcm9tb3Rpb24pCisgQWRkIHN1cHBvcnQgZm9yIHR5cGUgcHJv bW90aW9uIGluIGludHJpbnNpYyBhcmd1bWVudHMKKyAKKytmZGVjLXNlcXVlbmNlCisrRm9ydHJh biBWYXIoZmxhZ19kZWNfc2VxdWVuY2UpCisrQWRkIHRoZSBTRVFVRU5DRSBhdHRyaWJ1dGUgYnkg ZGVmYXVsdCBpZiBpdCdzIG5vdCBwcmVzZW50CisrCisgZmRlYy1zdHJ1Y3R1cmUKKyBGb3J0cmFu IFZhcihmbGFnX2RlY19zdHJ1Y3R1cmUpCisgRW5hYmxlIHN1cHBvcnQgZm9yIERFQyBTVFJVQ1RV UkUvUkVDT1JELgorZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL29wdGlvbnMuYyBiL2djYy9mb3J0 cmFuL29wdGlvbnMuYworaW5kZXggMTUwNzljN2U5NWEuLjA1MGY1NmZkYzI1IDEwMDY0NAorLS0t IGEvZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jCisrKysgYi9nY2MvZm9ydHJhbi9vcHRpb25zLmMKK0BA IC04Myw2ICs4Myw3IEBAIHNldF9kZWNfZmxhZ3MgKGludCB2YWx1ZSkKKyAgIFNFVF9CSVRGTEFH IChmbGFnX2RlY19vdmVycmlkZV9raW5kLCB2YWx1ZSwgdmFsdWUpOworICAgU0VUX0JJVEZMQUcg KGZsYWdfZGVjX25vbl9sb2dpY2FsX2lmLCB2YWx1ZSwgdmFsdWUpOworICAgU0VUX0JJVEZMQUcg KGZsYWdfZGVjX3Byb21vdGlvbiwgdmFsdWUsIHZhbHVlKTsKKysgIFNFVF9CSVRGTEFHIChmbGFn X2RlY19zZXF1ZW5jZSwgdmFsdWUsIHZhbHVlKTsKKyB9CisgCisgLyogRmluYWxpemUgREVDIGZs YWdzLiAgKi8KK2RpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9yZXNvbHZlLmMgYi9nY2MvZm9ydHJh bi9yZXNvbHZlLmMKK2luZGV4IDA3ZGQwMzlmM2JmLi5mZTdkMGNjNTk0NCAxMDA2NDQKKy0tLSBh L2djYy9mb3J0cmFuL3Jlc29sdmUuYworKysrIGIvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCitAQCAt OTc4LDkgKzk3OCwxNiBAQCByZXNvbHZlX2NvbW1vbl92YXJzIChnZmNfY29tbW9uX2hlYWQgKmNv bW1vbl9ibG9jaywgYm9vbCBuYW1lZF9jb21tb24pCisgCisgICAgICAgaWYgKCEoY3N5bS0+dHMu dS5kZXJpdmVkLT5hdHRyLnNlcXVlbmNlCisgCSAgICB8fCBjc3ltLT50cy51LmRlcml2ZWQtPmF0 dHIuaXNfYmluZF9jKSkKKy0JZ2ZjX2Vycm9yX25vdyAoIkRlcml2ZWQgdHlwZSB2YXJpYWJsZSAl cXMgaW4gQ09NTU9OIGF0ICVMICIKKy0JCSAgICAgICAiaGFzIG5laXRoZXIgdGhlIFNFUVVFTkNF IG5vciB0aGUgQklORChDKSAiCistCQkgICAgICAgImF0dHJpYnV0ZSIsIGNzeW0tPm5hbWUsICZj c3ltLT5kZWNsYXJlZF9hdCk7CisrCXsKKysJICBpZiAoZmxhZ19kZWNfc2VxdWVuY2UpCisrCSAg ICAvKiBBc3N1bWUgc2VxdWVuY2UuICovCisrCSAgICBjc3ltLT50cy51LmRlcml2ZWQtPmF0dHIu c2VxdWVuY2UgPSAxOworKwkgIGVsc2UKKysJICAgIGdmY19lcnJvcl9ub3cgKCJEZXJpdmVkIHR5 cGUgdmFyaWFibGUgJyVzJyBpbiBDT01NT04gYXQgJUwgIgorKwkJCSAgICJoYXMgbmVpdGhlciB0 aGUgU0VRVUVOQ0Ugbm9yIHRoZSBCSU5EKEMpICIKKysJCQkgICAiYXR0cmlidXRlIiwgY3N5bS0+ bmFtZSwgJmNzeW0tPmRlY2xhcmVkX2F0KTsKKysJfQorKworICAgICAgIGlmIChjc3ltLT50cy51 LmRlcml2ZWQtPmF0dHIuYWxsb2NfY29tcCkKKyAJZ2ZjX2Vycm9yX25vdyAoIkRlcml2ZWQgdHlw ZSB2YXJpYWJsZSAlcXMgaW4gQ09NTU9OIGF0ICVMICIKKyAJCSAgICAgICAiaGFzIGFuIHVsdGlt YXRlIGNvbXBvbmVudCB0aGF0IGlzICIKK2RpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2RlY19hZGRfU0VRVUVOQ0VfdG9fQ09NTU9OX2Jsb2NrX2J5X2RlZmF1bHRfMS5mIGIv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfYWRkX1NFUVVFTkNFX3RvX0NPTU1PTl9ibG9j a19ieV9kZWZhdWx0XzEuZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAw Li5mZTdiMzk2MjVlYgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9kZWNfYWRkX1NFUVVFTkNFX3RvX0NPTU1PTl9ibG9ja19ieV9kZWZhdWx0XzEuZgorQEAg LTAsMCArMSw1NyBAQAorKyEgeyBkZy1kbyBydW4gfQorKyEgeyBkZy1vcHRpb25zICItZmRlYyIg fQorKyEKKyshIFRlc3QgYWRkIGRlZmF1bHQgU0VRVUVOQ0UgYXR0cmlidXRlIGRlcml2ZWQgdHlw ZXMgYXBwZWFyaW5nIGluCisrISBDT01NT04gYmxvY2tzIGFuZCBFUVVJVkFMRU5DRSBzdGF0ZW1l bnRzLgorKyEKKyshIENvbnRyaWJ1dGVkIGJ5IEZyYW5jaXNjbyBSZWRvbmRvIE1hcmNoZW5hIDxm cmFuY2lzY28ubWFyY2hlbmFAY29kZXRoaW5rLmNvLnVrPgorKyEgTW9kaWZpZWQgYnkgTWFyayBF Z2dsZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CisrIQorKyAgICAgICAgTU9E VUxFIFNFUQorKyAgICAgICAgICBUWVBFIFNUUlVDVDEKKysgICAgICAgICAgICBJTlRFR0VSKjQg ICAgIElECisrICAgICAgICAgICAgSU5URUdFUio0ICAgICBUWVBFCisrICAgICAgICAgICAgSU5U RUdFUio4ICAgICBERUZWQUwKKysgICAgICAgICAgICBDSEFSQUNURVIqKDQpIE5BTUUKKysgICAg ICAgICAgICBMT0dJQ0FMKjEgICAgIE5JTAorKyAgICAgICAgICBFTkQgVFlQRSBTVFJVQ1QxCisr ICAgICAgICBFTkQgTU9EVUxFCisrCisrICAgICAgICBTVUJST1VUSU5FIEEKKysgICAgICAgICAg VVNFIFNFUQorKyAgICAgICAgICBUWVBFIChTVFJVQ1QxKSBTCisrICAgICAgICAgIENPTU1PTiAv QkxPQ0sxLyBTCisrICAgICAgICAgIElGIChTJUlELk5FLjUpIFNUT1AgMQorKyAgICAgICAgICBJ RiAoUyVUWVBFLk5FLjEwMDApIFNUT1AgMgorKyAgICAgICAgICBJRiAoUyVERUZWQUwuTkUuLTk5 KSBTVE9QIDMKKysgICAgICAgICAgSUYgKFMlTkFNRS5ORS4iSkFORSIpIFNUT1AgNAorKyAgICAg ICAgICBJRiAoUyVOSUwuTkVRVi4uRkFMU0UuKSBTVE9QIDUKKysgICAgICAgIEVORCBTVUJST1VU SU5FCisrCisrICAgICAgICBQUk9HUkFNIHNlcXVlbmNlX2F0dF9jb21tb24KKysgICAgICAgICAg VVNFIFNFUQorKyAgICAgICAgICBJTVBMSUNJVCBOT05FCisrICAgICAgICAgIFRZUEUgKFNUUlVD VDEpIFMxCisrICAgICAgICAgIFRZUEUgKFNUUlVDVDEpIFMyCisrICAgICAgICAgIFRZUEUgKFNU UlVDVDEpIFMzCisrCisrICAgICAgICAgIEVRVUlWQUxFTkNFIChTMSxTMikKKysgICAgICAgICAg Q09NTU9OIC9CTE9DSzEvIFMzCisrCisrICAgICAgICAgIFMxJUlEID0gNQorKyAgICAgICAgICBT MSVUWVBFID0gMTAwMAorKyAgICAgICAgICBTMSVERUZWQUwgPSAtOTkKKysgICAgICAgICAgUzEl TkFNRSA9ICJKQU5FIgorKyAgICAgICAgICBTMSVOSUwgPSAuRkFMU0UuCisrCisrICAgICAgICAg IElGIChTMiVJRC5ORS41KSBTVE9QIDEKKysgICAgICAgICAgSUYgKFMyJVRZUEUuTkUuMTAwMCkg U1RPUCAyCisrICAgICAgICAgIElGIChTMiVERUZWQUwuTkUuLTk5KSBTVE9QIDMKKysgICAgICAg ICAgSUYgKFMyJU5BTUUuTkUuIkpBTkUiKSBTVE9QIDQKKysgICAgICAgICAgSUYgKFMyJU5JTC5O RVFWLi5GQUxTRS4pIFNUT1AgNQorKworKyAgICAgICAgICBTMyA9IFMxCisrCisrICAgICAgICAg IENBTEwgQQorKyAgICAgICAgICAKKysgICAgICAgIEVORAorZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2FkZF9TRVFVRU5DRV90b19DT01NT05fYmxvY2tfYnlfZGVm YXVsdF8yLmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19hZGRfU0VRVUVOQ0VfdG9f Q09NTU9OX2Jsb2NrX2J5X2RlZmF1bHRfMi5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMDAwMDAuLjgzNTEyZjBmM2EyCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2RlY19hZGRfU0VRVUVOQ0VfdG9fQ09NTU9OX2Jsb2NrX2J5X2RlZmF1 bHRfMi5mCitAQCAtMCwwICsxLDU3IEBACisrISB7IGRnLWRvIHJ1biB9CisrISB7IGRnLW9wdGlv bnMgIi1mZGVjLXNlcXVlbmNlIiB9CisrIQorKyEgVGVzdCBhZGQgZGVmYXVsdCBTRVFVRU5DRSBh dHRyaWJ1dGUgZGVyaXZlZCB0eXBlcyBhcHBlYXJpbmcgaW4KKyshIENPTU1PTiBibG9ja3MgYW5k IEVRVUlWQUxFTkNFIHN0YXRlbWVudHMuCisrIQorKyEgQ29udHJpYnV0ZWQgYnkgRnJhbmNpc2Nv IFJlZG9uZG8gTWFyY2hlbmEgPGZyYW5jaXNjby5tYXJjaGVuYUBjb2RldGhpbmsuY28udWs+Cisr ISBNb2RpZmllZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNv bT4KKyshCisrICAgICAgICBNT0RVTEUgU0VRCisrICAgICAgICAgIFRZUEUgU1RSVUNUMQorKyAg ICAgICAgICAgIElOVEVHRVIqNCAgICAgSUQKKysgICAgICAgICAgICBJTlRFR0VSKjQgICAgIFRZ UEUKKysgICAgICAgICAgICBJTlRFR0VSKjggICAgIERFRlZBTAorKyAgICAgICAgICAgIENIQVJB Q1RFUiooNCkgTkFNRQorKyAgICAgICAgICAgIExPR0lDQUwqMSAgICAgTklMCisrICAgICAgICAg IEVORCBUWVBFIFNUUlVDVDEKKysgICAgICAgIEVORCBNT0RVTEUKKysKKysgICAgICAgIFNVQlJP VVRJTkUgQQorKyAgICAgICAgICBVU0UgU0VRCisrICAgICAgICAgIFRZUEUgKFNUUlVDVDEpIFMK KysgICAgICAgICAgQ09NTU9OIC9CTE9DSzEvIFMKKysgICAgICAgICAgSUYgKFMlSUQuTkUuNSkg U1RPUCAxCisrICAgICAgICAgIElGIChTJVRZUEUuTkUuMTAwMCkgU1RPUCAyCisrICAgICAgICAg IElGIChTJURFRlZBTC5ORS4tOTkpIFNUT1AgMworKyAgICAgICAgICBJRiAoUyVOQU1FLk5FLiJK QU5FIikgU1RPUCA0CisrICAgICAgICAgIElGIChTJU5JTC5ORVFWLi5GQUxTRS4pIFNUT1AgNQor KyAgICAgICAgRU5EIFNVQlJPVVRJTkUKKysKKysgICAgICAgIFBST0dSQU0gc2VxdWVuY2VfYXR0 X2NvbW1vbgorKyAgICAgICAgICBVU0UgU0VRCisrICAgICAgICAgIElNUExJQ0lUIE5PTkUKKysg ICAgICAgICAgVFlQRSAoU1RSVUNUMSkgUzEKKysgICAgICAgICAgVFlQRSAoU1RSVUNUMSkgUzIK KysgICAgICAgICAgVFlQRSAoU1RSVUNUMSkgUzMKKysKKysgICAgICAgICAgRVFVSVZBTEVOQ0Ug KFMxLFMyKQorKyAgICAgICAgICBDT01NT04gL0JMT0NLMS8gUzMKKysKKysgICAgICAgICAgUzEl SUQgPSA1CisrICAgICAgICAgIFMxJVRZUEUgPSAxMDAwCisrICAgICAgICAgIFMxJURFRlZBTCA9 IC05OQorKyAgICAgICAgICBTMSVOQU1FID0gIkpBTkUiCisrICAgICAgICAgIFMxJU5JTCA9IC5G QUxTRS4KKysKKysgICAgICAgICAgSUYgKFMyJUlELk5FLjUpIFNUT1AgMQorKyAgICAgICAgICBJ RiAoUzIlVFlQRS5ORS4xMDAwKSBTVE9QIDIKKysgICAgICAgICAgSUYgKFMyJURFRlZBTC5ORS4t OTkpIFNUT1AgMworKyAgICAgICAgICBJRiAoUzIlTkFNRS5ORS4iSkFORSIpIFNUT1AgNAorKyAg ICAgICAgICBJRiAoUzIlTklMLk5FUVYuLkZBTFNFLikgU1RPUCA1CisrCisrICAgICAgICAgIFMz ID0gUzEKKysKKysgICAgICAgICAgQ0FMTCBBCisrICAgICAgICAgIAorKyAgICAgICAgRU5ECitk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfYWRkX1NFUVVFTkNFX3Rv X0NPTU1PTl9ibG9ja19ieV9kZWZhdWx0XzMuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv ZGVjX2FkZF9TRVFVRU5DRV90b19DT01NT05fYmxvY2tfYnlfZGVmYXVsdF8zLmYKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uMjZjZDU5ZjkwOTAKKy0tLSAvZGV2L251 bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2FkZF9TRVFVRU5DRV90b19D T01NT05fYmxvY2tfYnlfZGVmYXVsdF8zLmYKK0BAIC0wLDAgKzEsNTcgQEAKKyshIHsgZGctZG8g Y29tcGlsZSB9CisrISB7IGRnLW9wdGlvbnMgIi1mZGVjIC1mbm8tZGVjLXNlcXVlbmNlIiB9Cisr IQorKyEgVGVzdCBhZGQgZGVmYXVsdCBTRVFVRU5DRSBhdHRyaWJ1dGUgZGVyaXZlZCB0eXBlcyBh cHBlYXJpbmcgaW4KKyshIENPTU1PTiBibG9ja3MgYW5kIEVRVUlWQUxFTkNFIHN0YXRlbWVudHMu CisrIQorKyEgQ29udHJpYnV0ZWQgYnkgRnJhbmNpc2NvIFJlZG9uZG8gTWFyY2hlbmEgPGZyYW5j aXNjby5tYXJjaGVuYUBjb2RldGhpbmsuY28udWs+CisrISBNb2RpZmllZCBieSBNYXJrIEVnZ2xl c3RvbiA8bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrICAgICAgICBNT0RVTEUg U0VRCisrICAgICAgICAgIFRZUEUgU1RSVUNUMQorKyAgICAgICAgICAgIElOVEVHRVIqNCAgICAg SUQKKysgICAgICAgICAgICBJTlRFR0VSKjQgICAgIFRZUEUKKysgICAgICAgICAgICBJTlRFR0VS KjggICAgIERFRlZBTAorKyAgICAgICAgICAgIENIQVJBQ1RFUiooNCkgTkFNRQorKyAgICAgICAg ICAgIExPR0lDQUwqMSAgICAgTklMCisrICAgICAgICAgIEVORCBUWVBFIFNUUlVDVDEKKysgICAg ICAgIEVORCBNT0RVTEUKKysKKysgICAgICAgIFNVQlJPVVRJTkUgQQorKyAgICAgICAgICBVU0Ug U0VRCisrICAgICAgICAgIFRZUEUgKFNUUlVDVDEpIFMgISB7IGRnLWVycm9yICJEZXJpdmVkIHR5 cGUgdmFyaWFibGUiIH0KKysgICAgICAgICAgQ09NTU9OIC9CTE9DSzEvIFMKKysgICAgICAgICAg SUYgKFMlSUQuTkUuNSkgU1RPUCAxCisrICAgICAgICAgIElGIChTJVRZUEUuTkUuMTAwMCkgU1RP UCAyCisrICAgICAgICAgIElGIChTJURFRlZBTC5ORS4tOTkpIFNUT1AgMworKyAgICAgICAgICBJ RiAoUyVOQU1FLk5FLiJKQU5FIikgU1RPUCA0CisrICAgICAgICAgIElGIChTJU5JTC5ORVFWLi5G QUxTRS4pIFNUT1AgNQorKyAgICAgICAgRU5EIFNVQlJPVVRJTkUKKysKKysgICAgICAgIFBST0dS QU0gc2VxdWVuY2VfYXR0X2NvbW1vbgorKyAgICAgICAgICBVU0UgU0VRCisrICAgICAgICAgIElN UExJQ0lUIE5PTkUKKysgICAgICAgICAgVFlQRSAoU1RSVUNUMSkgUzEKKysgICAgICAgICAgVFlQ RSAoU1RSVUNUMSkgUzIKKysgICAgICAgICAgVFlQRSAoU1RSVUNUMSkgUzMgISB7IGRnLWVycm9y ICJEZXJpdmVkIHR5cGUgdmFyaWFibGUiIH0KKysKKysgICAgICAgICAgRVFVSVZBTEVOQ0UgKFMx LFMyKSAhIHsgZGctZXJyb3IgIkRlcml2ZWQgdHlwZSB2YXJpYWJsZSIgfQorKyAgICAgICAgICBD T01NT04gL0JMT0NLMS8gUzMKKysKKysgICAgICAgICAgUzElSUQgPSA1CisrICAgICAgICAgIFMx JVRZUEUgPSAxMDAwCisrICAgICAgICAgIFMxJURFRlZBTCA9IC05OQorKyAgICAgICAgICBTMSVO QU1FID0gIkpBTkUiCisrICAgICAgICAgIFMxJU5JTCA9IC5GQUxTRS4KKysKKysgICAgICAgICAg SUYgKFMyJUlELk5FLjUpIFNUT1AgMQorKyAgICAgICAgICBJRiAoUzIlVFlQRS5ORS4xMDAwKSBT VE9QIDIKKysgICAgICAgICAgSUYgKFMyJURFRlZBTC5ORS4tOTkpIFNUT1AgMworKyAgICAgICAg ICBJRiAoUzIlTkFNRS5ORS4iSkFORSIpIFNUT1AgNAorKyAgICAgICAgICBJRiAoUzIlTklMLk5F UVYuLkZBTFNFLikgU1RPUCA1CisrCisrICAgICAgICAgIFMzID0gUzEKKysKKysgICAgICAgICAg Q0FMTCBBCisrICAgICAgICAgIAorKyAgICAgICAgRU5ECistLSAKKzIuMjcuMAorCgpkaWZmIC0t Z2l0IGEvZ2NjMTEtZm9ydHJhbi1mbG9naWNhbC1hcy1pbnRlZ2VyLnBhdGNoIGIvZ2NjMTEtZm9y dHJhbi1mbG9naWNhbC1hcy1pbnRlZ2VyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjQxY2JmNjAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MxMS1mb3J0cmFuLWZsb2dp Y2FsLWFzLWludGVnZXIucGF0Y2gKQEAgLTAsMCArMSwzMDUgQEAKK0Zyb20gOWI0NWYzMDYzZGZk MmI4OTNlNzk2M2E0ODI4YzFiMGFmZWNkYzY4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IE1hcmsgRWdnbGVzdG9uIDxtYXJrZWdnbGVzdG9uQGdjYy5nbnUub3JnPgorRGF0ZTogRnJp LCAyMiBKYW4gMjAyMSAxMjo0MTo0NiArMDAwMAorU3ViamVjdDogW1BBVENIIDAyLzEwXSBDb252 ZXJ0IExPR0lDQUwgdG8gSU5URUdFUiBmb3IgYXJpdGhtZXRpYyBvcHMsIGFuZCB2aWNlCisgdmVy c2EKKworV2UgYWxsb3cgY29udmVydGluZyBMT0dJQ0FMIHR5cGVzIHRvIElOVEVHRVIgd2hlbiBk b2luZyBhcml0aG1ldGljCitvcGVyYXRpb25zLCBhbmQgY29udmVydGluZyBJTlRFR0VSIHR5cGVz IHRvIExPR0lDQUwgZm9yIHVzZSBpbgorYm9vbGVhbiBvcGVyYXRpb25zLgorCitUaGlzIGZlYXR1 cmUgaXMgZW5hYmxlZCB3aXRoIHRoZSAtZmxvZ2ljYWwtYXMtaW50ZWdlciBmbGFnLgorCitOb3Rl OiB1c2luZyB0aGlzIGZlYXR1cmUgd2lsbCBkaXNhYmxlIGJpdHdpc2UgbG9naWNhbCBvcGVyYXRp b25zIGVuYWJsZWQgYnkKKy1mZGVjLgorLS0tCisgZ2NjL2ZvcnRyYW4vbGFuZy5vcHQgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKysKKyBnY2MvZm9ydHJhbi9yZXNvbHZlLmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCA1NSArKysrKysrKysrKysrKysrKystCisgLi4uL2xvZ2ljYWxf dG9faW50ZWdlcl9hbmRfdmljZV92ZXJzYV8xLmYgICAgIHwgMzEgKysrKysrKysrKysKKyAuLi4v bG9naWNhbF90b19pbnRlZ2VyX2FuZF92aWNlX3ZlcnNhXzIuZiAgICAgfCAzMSArKysrKysrKysr KworIC4uLi9sb2dpY2FsX3RvX2ludGVnZXJfYW5kX3ZpY2VfdmVyc2FfMy5mICAgICB8IDMzICsr KysrKysrKysrCisgLi4uL2xvZ2ljYWxfdG9faW50ZWdlcl9hbmRfdmljZV92ZXJzYV80LmYgICAg IHwgMzMgKysrKysrKysrKysKKyA2IGZpbGVzIGNoYW5nZWQsIDE4NiBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvbG9naWNhbF90b19pbnRlZ2VyX2FuZF92aWNlX3ZlcnNhXzEuZgorIGNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xvZ2ljYWxfdG9faW50ZWdlcl9hbmRfdmlj ZV92ZXJzYV8yLmYKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9sb2dpY2FsX3RvX2ludGVnZXJfYW5kX3ZpY2VfdmVyc2FfMy5mCisgY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9naWNhbF90b19pbnRlZ2VyX2FuZF92aWNl X3ZlcnNhXzQuZgorCitkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQgYi9nY2MvZm9y dHJhbi9sYW5nLm9wdAoraW5kZXggNTJiZDUyMjA1MWUuLmM0ZGEyNDhmMDdjIDEwMDY0NAorLS0t IGEvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKKysrKyBiL2djYy9mb3J0cmFuL2xhbmcub3B0CitAQCAt NDk3LDYgKzQ5NywxMCBAQCBmZGVjLXN0YXRpYworIEZvcnRyYW4gVmFyKGZsYWdfZGVjX3N0YXRp YykKKyBFbmFibGUgREVDLXN0eWxlIFNUQVRJQyBhbmQgQVVUT01BVElDIGF0dHJpYnV0ZXMuCisg CisrZmxvZ2ljYWwtYXMtaW50ZWdlcgorK0ZvcnRyYW4gVmFyKGZsYWdfbG9naWNhbF9hc19pbnRl Z2VyKQorK0NvbnZlcnQgZnJvbSBpbnRlZ2VyIHRvIGxvZ2ljYWwgb3IgbG9naWNhbCB0byBpbnRl Z2VyIGZvciBhcml0aG1ldGljIG9wZXJhdGlvbnMuCisrCisgZmRlZmF1bHQtZG91YmxlLTgKKyBG b3J0cmFuIFZhcihmbGFnX2RlZmF1bHRfZG91YmxlKQorIFNldCB0aGUgZGVmYXVsdCBkb3VibGUg cHJlY2lzaW9uIGtpbmQgdG8gYW4gOCBieXRlIHdpZGUgdHlwZS4KK2RpZmYgLS1naXQgYS9nY2Mv Zm9ydHJhbi9yZXNvbHZlLmMgYi9nY2MvZm9ydHJhbi9yZXNvbHZlLmMKK2luZGV4IGMwNzVkMGZh MGM0Li40YjkwY2I1OTkwMiAxMDA2NDQKKy0tLSBhL2djYy9mb3J0cmFuL3Jlc29sdmUuYworKysr IGIvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jCitAQCAtMzkxNSw3ICszOTE1LDYgQEAgbG9va3VwX3Vv cF9mdXp6eSAoY29uc3QgY2hhciAqb3AsIGdmY19zeW10cmVlICp1b3ApCisgICByZXR1cm4gZ2Zj X2Nsb3Nlc3RfZnV6enlfbWF0Y2ggKG9wLCBjYW5kaWRhdGVzKTsKKyB9CisgCistCisgLyogQ2Fs bGJhY2sgZmluZGluZyBhbiBpbXB1cmUgZnVuY3Rpb24gYXMgYW4gb3BlcmFuZCB0byBhbiAuYW5k LiBvcgorICAgIC5vci4gIGV4cHJlc3Npb24uICBSZW1lbWJlciB0aGUgbGFzdCBmdW5jdGlvbiB3 YXJuZWQgYWJvdXQgdG8KKyAgICBhdm9pZCBkb3VibGUgd2FybmluZ3Mgd2hlbiByZWN1cnNpbmcu ICAqLworQEAgLTM5NzUsNiArMzk3NCwyMiBAQCBjb252ZXJ0X2hvbGxlcml0aF90b19jaGFyYWN0 ZXIgKGdmY19leHByICplKQorICAgICB9CisgfQorIAorKy8qIElmIEUgaXMgYSBsb2dpY2FsLCBj b252ZXJ0IGl0IHRvIGFuIGludGVnZXIgYW5kIGlzc3VlIGEgd2FybmluZworKyAgIGZvciB0aGUg Y29udmVyc2lvbi4gICovCisrCisrc3RhdGljIHZvaWQKKytjb252ZXJ0X2ludGVnZXJfdG9fbG9n aWNhbCAoZ2ZjX2V4cHIgKmUpCisreworKyAgaWYgKGUtPnRzLnR5cGUgPT0gQlRfSU5URUdFUikK KysgICAgeworKyAgICAgIC8qIENvbnZlcnQgdG8gTE9HSUNBTCAqLworKyAgICAgIGdmY190eXBl c3BlYyB0OworKyAgICAgIHQudHlwZSA9IEJUX0xPR0lDQUw7CisrICAgICAgdC5raW5kID0gMTsK KysgICAgICBnZmNfY29udmVydF90eXBlX3dhcm4gKGUsICZ0LCAyLCAxKTsKKysgICAgfQorK30K KysKKyAvKiBDb252ZXJ0IHRvIG51bWVyaWMgYW5kIGlzc3VlIGEgd2FybmluZyBmb3IgdGhlIGNv bnZlcnNpb24uICAqLworIAorIHN0YXRpYyB2b2lkCitAQCAtMzk4Nyw2ICs0MDAyLDIyIEBAIGNv bnZlcnRfdG9fbnVtZXJpYyAoZ2ZjX2V4cHIgKmEsIGdmY19leHByICpiKQorICAgZ2ZjX2NvbnZl cnRfdHlwZV93YXJuIChhLCAmdCwgMiwgMSk7CisgfQorIAorKy8qIElmIEUgaXMgYSBsb2dpY2Fs LCBjb252ZXJ0IGl0IHRvIGFuIGludGVnZXIgYW5kIGlzc3VlIGEgd2FybmluZworKyAgIGZvciB0 aGUgY29udmVyc2lvbi4gICovCisrCisrc3RhdGljIHZvaWQKKytjb252ZXJ0X2xvZ2ljYWxfdG9f aW50ZWdlciAoZ2ZjX2V4cHIgKmUpCisreworKyAgaWYgKGUtPnRzLnR5cGUgPT0gQlRfTE9HSUNB TCkKKysgICAgeworKyAgICAgIC8qIENvbnZlcnQgdG8gSU5URUdFUiAqLworKyAgICAgIGdmY190 eXBlc3BlYyB0OworKyAgICAgIHQudHlwZSA9IEJUX0lOVEVHRVI7CisrICAgICAgdC5raW5kID0g MTsKKysgICAgICBnZmNfY29udmVydF90eXBlX3dhcm4gKGUsICZ0LCAyLCAxKTsKKysgICAgfQor K30KKysKKyAvKiBSZXNvbHZlIGFuIG9wZXJhdG9yIGV4cHJlc3Npb24gbm9kZS4gIFRoaXMgY2Fu IGludm9sdmUgcmVwbGFjaW5nIHRoZQorICAgIG9wZXJhdGlvbiB3aXRoIGEgdXNlciBkZWZpbmVk IGZ1bmN0aW9uIGNhbGwuICAqLworIAorQEAgLTQwNzIsNiArNDEwMywxMiBAQCByZXNvbHZlX29w ZXJhdG9yIChnZmNfZXhwciAqZSkKKyAgICAgY2FzZSBJTlRSSU5TSUNfVElNRVM6CisgICAgIGNh c2UgSU5UUklOU0lDX0RJVklERToKKyAgICAgY2FzZSBJTlRSSU5TSUNfUE9XRVI6CisrICAgICAg aWYgKGZsYWdfbG9naWNhbF9hc19pbnRlZ2VyKQorKwl7CisrCSAgY29udmVydF9sb2dpY2FsX3Rv X2ludGVnZXIgKG9wMSk7CisrCSAgY29udmVydF9sb2dpY2FsX3RvX2ludGVnZXIgKG9wMik7Cisr CX0KKysKKyAgICAgICBpZiAoZ2ZjX251bWVyaWNfdHMgKCZvcDEtPnRzKSAmJiBnZmNfbnVtZXJp Y190cyAoJm9wMi0+dHMpKQorIAl7CisgCSAgZ2ZjX3R5cGVfY29udmVydF9iaW5hcnkgKGUsIDEp OworQEAgLTQxMDgsNiArNDE0NSwxMyBAQCByZXNvbHZlX29wZXJhdG9yIChnZmNfZXhwciAqZSkK KyAgICAgY2FzZSBJTlRSSU5TSUNfT1I6CisgICAgIGNhc2UgSU5UUklOU0lDX0VRVjoKKyAgICAg Y2FzZSBJTlRSSU5TSUNfTkVRVjoKKysKKysgICAgICBpZiAoZmxhZ19sb2dpY2FsX2FzX2ludGVn ZXIpCisrCXsKKysJICBjb252ZXJ0X2ludGVnZXJfdG9fbG9naWNhbCAob3AxKTsKKysJICBjb252 ZXJ0X2ludGVnZXJfdG9fbG9naWNhbCAob3AyKTsKKysJfQorKworICAgICAgIGlmIChvcDEtPnRz LnR5cGUgPT0gQlRfTE9HSUNBTCAmJiBvcDItPnRzLnR5cGUgPT0gQlRfTE9HSUNBTCkKKyAJewor IAkgIGUtPnRzLnR5cGUgPSBCVF9MT0dJQ0FMOworQEAgLTQxNTgsNiArNDIwMiw5IEBAIHJlc29s dmVfb3BlcmF0b3IgKGdmY19leHByICplKQorIAkgIGdvdG8gc2ltcGxpZnlfb3A7CisgCX0KKyAK KysgICAgICBpZiAoZmxhZ19sb2dpY2FsX2FzX2ludGVnZXIpCisrCWNvbnZlcnRfaW50ZWdlcl90 b19sb2dpY2FsIChvcDEpOworKworICAgICAgIGlmIChvcDEtPnRzLnR5cGUgPT0gQlRfTE9HSUNB TCkKKyAJeworIAkgIGUtPnRzLnR5cGUgPSBCVF9MT0dJQ0FMOworQEAgLTQxOTgsNiArNDI0NSwx MiBAQCByZXNvbHZlX29wZXJhdG9yIChnZmNfZXhwciAqZSkKKyAJICBjb252ZXJ0X2hvbGxlcml0 aF90b19jaGFyYWN0ZXIgKG9wMik7CisgCX0KKyAKKysgICAgICBpZiAoZmxhZ19sb2dpY2FsX2Fz X2ludGVnZXIpCisrCXsKKysJICBjb252ZXJ0X2xvZ2ljYWxfdG9faW50ZWdlciAob3AxKTsKKysJ ICBjb252ZXJ0X2xvZ2ljYWxfdG9faW50ZWdlciAob3AyKTsKKysJfQorKworICAgICAgIGlmIChv cDEtPnRzLnR5cGUgPT0gQlRfQ0hBUkFDVEVSICYmIG9wMi0+dHMudHlwZSA9PSBCVF9DSEFSQUNU RVIKKyAJICAmJiBvcDEtPnRzLmtpbmQgPT0gb3AyLT50cy5raW5kKQorIAl7CitkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb2dpY2FsX3RvX2ludGVnZXJfYW5kX3ZpY2Vf dmVyc2FfMS5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb2dpY2FsX3RvX2ludGVnZXJf YW5kX3ZpY2VfdmVyc2FfMS5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MDAuLjkzOGE5MWQ5ZTlhCistLS0gL2Rldi9udWxsCisrKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2xvZ2ljYWxfdG9faW50ZWdlcl9hbmRfdmljZV92ZXJzYV8xLmYKK0BAIC0wLDAgKzEs MzEgQEAKKyshIHsgZGctZG8gcnVuIH0KKyshIHsgZGctb3B0aW9ucyAiLXN0ZD1sZWdhY3kgLWZs b2dpY2FsLWFzLWludGVnZXIiIH0KKyshCisrISBUZXN0IGNvbnZlcnNpb24gYmV0d2VlbiBsb2dp Y2FsIGFuZCBpbnRlZ2VyIGZvciBsb2dpY2FsIG9wZXJhdG9ycworKyEKKyshIFRlc3QgY2FzZSBj b250cmlidXRlZCBieSBKaW0gTWFjQXJ0aHVyIDxqaW0ubWFjYXJ0aHVyQGNvZGV0aGluay5jby51 az4KKyshIE1vZGlmaWVkIGZvciAtZmxvZ2ljYWwtYXMtaW50ZWdlciBieSBNYXJrIEVnZ2xlc3Rv bgorKyEgPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CisrIQorKyAgICAgICAgUFJPR1JB TSBsb2dpY2FsX2ludGVnZXJfY29udmVyc2lvbgorKyAgICAgICAgICBMT0dJQ0FMIGxwb3MgLy50 cnVlLi8KKysgICAgICAgICAgSU5URUdFUiBpbmVnLzAvCisrICAgICAgICAgIElOVEVHRVIgaXJl cworKyAgICAgICAgICBMT0dJQ0FMIGxyZXMKKysKKysgICAgICAgICAgISBUZXN0IExvZ2ljYWxz IGNvbnZlcnRlZCB0byBJbnRlZ2VycworKyAgICAgICAgICBpZiAoKGxwb3MuQU5ELmluZWcpLkVR LjEpIFNUT1AgMworKyAgICAgICAgICBpZiAoKGluZWcuQU5ELmxwb3MpLk5FLjApIFNUT1AgNAor KyAgICAgICAgICBpcmVzID0gKC50cnVlLi5BTkQuMCkKKysgICAgICAgICAgaWYgKGlyZXMuTkUu MCkgU1RPUCA1CisrICAgICAgICAgIGlyZXMgPSAoMS5BTkQuLmZhbHNlLikKKysgICAgICAgICAg aWYgKGlyZXMuRVEuMSkgU1RPUCA2CisrCisrICAgICAgICAgICEgVGVzdCBJbnRlZ2VycyBjb252 ZXJ0ZWQgdG8gTG9naWNhbHMKKysgICAgICAgICAgaWYgKGxwb3MuRVEuaW5lZykgU1RPUCA3Cisr ICAgICAgICAgIGlmIChpbmVnLkVRLmxwb3MpIFNUT1AgOAorKyAgICAgICAgICBscmVzID0gKC50 cnVlLi5FUS4wKQorKyAgICAgICAgICBpZiAobHJlcykgU1RPUCA5CisrICAgICAgICAgIGxyZXMg PSAoMS5FUS4uZmFsc2UuKQorKyAgICAgICAgICBpZiAobHJlcykgU1RPUCAxMAorKyAgICAgICAg RU5ECitkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb2dpY2FsX3RvX2lu dGVnZXJfYW5kX3ZpY2VfdmVyc2FfMi5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb2dp Y2FsX3RvX2ludGVnZXJfYW5kX3ZpY2VfdmVyc2FfMi5mCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMDAwMDAuLjlmMTQ2MjAyYmE1CistLS0gL2Rldi9udWxsCisrKysgYi9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xvZ2ljYWxfdG9faW50ZWdlcl9hbmRfdmljZV92ZXJzYV8y LmYKK0BAIC0wLDAgKzEsMzEgQEAKKyshIHsgZGctZG8gY29tcGlsZSB9CisrISB7IGRnLW9wdGlv bnMgIi1zdGQ9bGVnYWN5IC1mbG9naWNhbC1hcy1pbnRlZ2VyIC1mbm8tbG9naWNhbC1hcy1pbnRl Z2VyIiB9CisrIQorKyEgQmFzZWQgb24gbG9naWNhbF90b19pbnRlZ2VyX2FuZF92aWNlX3ZlcnNh XzEuZiBidXQgd2l0aCBvcHRpb24gZGlzYWJsZWQKKyshIHRvIHRlc3QgZm9yIGVycm9yIG1lc3Nh Z2VzLgorKyEKKyshIFRlc3QgY2FzZSBjb250cmlidXRlZCBieSBieSBNYXJrIEVnZ2xlc3RvbiA8 bWFyay5lZ2dsZXN0b25AY29kZXRoaW5rLmNvbT4KKyshCisrIQorKyAgICAgICAgUFJPR1JBTSBs b2dpY2FsX2ludGVnZXJfY29udmVyc2lvbgorKyAgICAgICAgICBMT0dJQ0FMIGxwb3MgLy50cnVl Li8KKysgICAgICAgICAgSU5URUdFUiBpbmVnLzAvCisrICAgICAgICAgIElOVEVHRVIgaXJlcwor KyAgICAgICAgICBMT0dJQ0FMIGxyZXMKKysKKysgICAgICAgICAgISBUZXN0IExvZ2ljYWxzIGNv bnZlcnRlZCB0byBJbnRlZ2VycworKyAgICAgICAgICBpZiAoKGxwb3MuQU5ELmluZWcpLkVRLjEp IFNUT1AgMyAhIHsgZGctZXJyb3IgIk9wZXJhbmRzIG9mIGxvZ2ljYWwgb3BlcmF0b3IiIH0KKysg ICAgICAgICAgaWYgKChpbmVnLkFORC5scG9zKS5ORS4wKSBTVE9QIDQgISB7IGRnLWVycm9yICJP cGVyYW5kcyBvZiBsb2dpY2FsIG9wZXJhdG9yIiB9CisrICAgICAgICAgIGlyZXMgPSAoLnRydWUu LkFORC4wKSAhIHsgZGctZXJyb3IgIk9wZXJhbmRzIG9mIGxvZ2ljYWwgb3BlcmF0b3IiIH0KKysg ICAgICAgICAgaWYgKGlyZXMuTkUuMCkgU1RPUCA1CisrICAgICAgICAgIGlyZXMgPSAoMS5BTkQu LmZhbHNlLikgISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBsb2dpY2FsIG9wZXJhdG9yIiB9Cisr ICAgICAgICAgIGlmIChpcmVzLkVRLjEpIFNUT1AgNgorKworKyAgICAgICAgICAhIFRlc3QgSW50 ZWdlcnMgY29udmVydGVkIHRvIExvZ2ljYWxzCisrICAgICAgICAgIGlmIChscG9zLkVRLmluZWcp IFNUT1AgNyAhIHsgZGctZXJyb3IgIk9wZXJhbmRzIG9mIGNvbXBhcmlzb24gb3BlcmF0b3IiIH0K KysgICAgICAgICAgaWYgKGluZWcuRVEubHBvcykgU1RPUCA4ICEgeyBkZy1lcnJvciAiT3BlcmFu ZHMgb2YgY29tcGFyaXNvbiBvcGVyYXRvciIgfQorKyAgICAgICAgICBscmVzID0gKC50cnVlLi5F US4wKSAhIHsgZGctZXJyb3IgIk9wZXJhbmRzIG9mIGNvbXBhcmlzb24gb3BlcmF0b3IiIH0KKysg ICAgICAgICAgaWYgKGxyZXMpIFNUT1AgOQorKyAgICAgICAgICBscmVzID0gKDEuRVEuLmZhbHNl LikgISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBjb21wYXJpc29uIG9wZXJhdG9yIiB9CisrICAg ICAgICAgIGlmIChscmVzKSBTVE9QIDEwCisrICAgICAgICBFTkQKK2RpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xvZ2ljYWxfdG9faW50ZWdlcl9hbmRfdmljZV92ZXJzYV8z LmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xvZ2ljYWxfdG9faW50ZWdlcl9hbmRfdmlj ZV92ZXJzYV8zLmYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uNDQ2 ODczZWIyZGMKKy0tLSAvZGV2L251bGwKKysrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv bG9naWNhbF90b19pbnRlZ2VyX2FuZF92aWNlX3ZlcnNhXzMuZgorQEAgLTAsMCArMSwzMyBAQAor KyEgeyBkZy1kbyBjb21waWxlIH0KKyshIHsgZGctb3B0aW9ucyAiLXN0ZD1sZWdhY3kgLWZsb2dp Y2FsLWFzLWludGVnZXIiIH0KKyshCisrISBUZXN0IGNvbnZlcnNpb24gYmV0d2VlbiBsb2dpY2Fs IGFuZCBpbnRlZ2VyIGZvciBsb2dpY2FsIG9wZXJhdG9ycworKyEKKysgICAgICAgIHByb2dyYW0g dGVzdAorKyAgICAgICAgICBsb2dpY2FsIGYgLy5mYWxzZS4vCisrICAgICAgICAgIGxvZ2ljYWwg dCAvLnRydWUuLworKyAgICAgICAgICByZWFsIHgKKysKKysgICAgICAgICAgeCA9IDcuNworKyAg ICAgICAgICB4ID0geCArIHQqMy4wCisrICAgICAgICAgIGlmIChhYnMoeCAtIDEwLjcpLmd0LjAu MDAwMDEpIHN0b3AgMQorKyAgICAgICAgICB4ID0geCArIC5mYWxzZS4qNS4wCisrICAgICAgICAg IGlmIChhYnMoeCAtIDEwLjcpLmd0LjAuMDAwMDEpIHN0b3AgMgorKyAgICAgICAgICB4ID0geCAt IC50cnVlLio1LjAKKysgICAgICAgICAgaWYgKGFicyh4IC0gNS43KS5ndC4wLjAwMDAxKSBzdG9w IDMKKysgICAgICAgICAgeCA9IHggKyB0CisrICAgICAgICAgIGlmIChhYnMoeCAtIDYuNykuZ3Qu MC4wMDAwMSkgc3RvcCA0CisrICAgICAgICAgIHggPSB4ICsgZgorKyAgICAgICAgICBpZiAoYWJz KHggLSA2LjcpLmd0LjAuMDAwMDEpIHN0b3AgNQorKyAgICAgICAgICB4ID0geCAtIHQKKysgICAg ICAgICAgaWYgKGFicyh4IC0gNS43KS5ndC4wLjAwMDAxKSBzdG9wIDYKKysgICAgICAgICAgeCA9 IHggLSBmCisrICAgICAgICAgIGlmIChhYnMoeCAtIDUuNykuZ3QuMC4wMDAwMSkgc3RvcCA3Cisr ICAgICAgICAgIHggPSB4KioudHJ1ZS4KKysgICAgICAgICAgaWYgKGFicyh4IC0gNS43KS5ndC4w LjAwMDAxKSBzdG9wIDgKKysgICAgICAgICAgeCA9IHgqKi5mYWxzZS4KKysgICAgICAgICAgaWYg KGFicyh4IC0gMS4wKS5ndC4wLjAwMDAxKSBzdG9wIDkKKysgICAgICAgICAgeCA9IHgvdAorKyAg ICAgICAgICBpZiAoYWJzKHggLSAxLjApLmd0LjAuMDAwMDEpIHN0b3AgMTAKKysgICAgICAgICAg aWYgKCh4Ly5mYWxzZS4pLmxlLmh1Z2UoeCkpIHN0b3AgMTEKKysgICAgICAgIGVuZAorZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9naWNhbF90b19pbnRlZ2VyX2FuZF92 aWNlX3ZlcnNhXzQuZiBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9naWNhbF90b19pbnRl Z2VyX2FuZF92aWNlX3ZlcnNhXzQuZgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwMDAwLi40MzAxYTQ5ODhkOAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9sb2dpY2FsX3RvX2ludGVnZXJfYW5kX3ZpY2VfdmVyc2FfNC5mCitAQCAtMCww ICsxLDMzIEBACisrISB7IGRnLWRvIGNvbXBpbGUgfQorKyEgeyBkZy1vcHRpb25zICItc3RkPWxl Z2FjeSAtZmxvZ2ljYWwtYXMtaW50ZWdlciAtZm5vLWxvZ2ljYWwtYXMtaW50ZWdlciIgfQorKyEK KyshIFRlc3QgY29udmVyc2lvbiBiZXR3ZWVuIGxvZ2ljYWwgYW5kIGludGVnZXIgZm9yIGxvZ2lj YWwgb3BlcmF0b3JzCisrIQorKyAgICAgICAgcHJvZ3JhbSB0ZXN0CisrICAgICAgICAgIGxvZ2lj YWwgZiAvLmZhbHNlLi8KKysgICAgICAgICAgbG9naWNhbCB0IC8udHJ1ZS4vCisrICAgICAgICAg IHJlYWwgeAorKworKyAgICAgICAgICB4ID0gNy43CisrICAgICAgICAgIHggPSB4ICsgdCozLjAg ISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBiaW5hcnkgbnVtZXJpYyIgfQorKyAgICAgICAgICBp ZiAoYWJzKHggLSAxMC43KS5ndC4wLjAwMDAxKSBzdG9wIDEKKysgICAgICAgICAgeCA9IHggKyAu ZmFsc2UuKjUuMCAhIHsgZGctZXJyb3IgIk9wZXJhbmRzIG9mIGJpbmFyeSBudW1lcmljIiB9Cisr ICAgICAgICAgIGlmIChhYnMoeCAtIDEwLjcpLmd0LjAuMDAwMDEpIHN0b3AgMgorKyAgICAgICAg ICB4ID0geCAtIC50cnVlLio1LjAgISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBiaW5hcnkgbnVt ZXJpYyIgfQorKyAgICAgICAgICBpZiAoYWJzKHggLSA1LjcpLmd0LjAuMDAwMDEpIHN0b3AgMwor KyAgICAgICAgICB4ID0geCArIHQgISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBiaW5hcnkgbnVt ZXJpYyIgfQorKyAgICAgICAgICBpZiAoYWJzKHggLSA2LjcpLmd0LjAuMDAwMDEpIHN0b3AgNAor KyAgICAgICAgICB4ID0geCArIGYgISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBiaW5hcnkgbnVt ZXJpYyIgfQorKyAgICAgICAgICBpZiAoYWJzKHggLSA2LjcpLmd0LjAuMDAwMDEpIHN0b3AgNQor KyAgICAgICAgICB4ID0geCAtIHQgISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBiaW5hcnkgbnVt ZXJpYyIgfQorKyAgICAgICAgICBpZiAoYWJzKHggLSA1LjcpLmd0LjAuMDAwMDEpIHN0b3AgNgor KyAgICAgICAgICB4ID0geCAtIGYgISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBiaW5hcnkgbnVt ZXJpYyIgfQorKyAgICAgICAgICBpZiAoYWJzKHggLSA1LjcpLmd0LjAuMDAwMDEpIHN0b3AgNwor KyAgICAgICAgICB4ID0geCoqLnRydWUuICEgeyBkZy1lcnJvciAiT3BlcmFuZHMgb2YgYmluYXJ5 IG51bWVyaWMiIH0KKysgICAgICAgICAgaWYgKGFicyh4IC0gNS43KS5ndC4wLjAwMDAxKSBzdG9w IDgKKysgICAgICAgICAgeCA9IHgqKi5mYWxzZS4gISB7IGRnLWVycm9yICJPcGVyYW5kcyBvZiBi aW5hcnkgbnVtZXJpYyIgfQorKyAgICAgICAgICBpZiAoYWJzKHggLSAxLjApLmd0LjAuMDAwMDEp IHN0b3AgOQorKyAgICAgICAgICB4ID0geC90ICEgeyBkZy1lcnJvciAiT3BlcmFuZHMgb2YgYmlu YXJ5IG51bWVyaWMiIH0KKysgICAgICAgICAgaWYgKGFicyh4IC0gMS4wKS5ndC4wLjAwMDAxKSBz dG9wIDEwCisrICAgICAgICAgIGlmICgoeC8uZmFsc2UuKS5sZS5odWdlKHgpKSBzdG9wIDExICEg eyBkZy1lcnJvciAiT3BlcmFuZHMgb2YgYmluYXJ5IG51bWVyaWMiIH0KKysgICAgICAgIGVuZAor LS0gCisyLjI3LjAKKwo=