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: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/globus-gsi-sysconfig] rawhide: Compile with OpenSSL 4 Date: Sun, 14 Jun 2026 08:53:43 GMT Message-ID: <178142722352.1.9838170318255554295.rpms-globus-gsi-sysconfig-5de9f55ccd37@fedoraproject.org> List-ID: X-Git-Repo: rpms/globus-gsi-sysconfig X-Git-Branch: rawhide X-Git-Rev: 5de9f55ccd37db28be1293958e9c1f6ab9669235 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2xvYnVzLWdzaS1z eXNjb25maWcKQnJhbmNoIDogcmF3aGlkZQpDb21taXQgOiA1ZGU5ZjU1Y2NkMzdkYjI4YmUxMjkz OTU4ZTljMWY2YWI5NjY5MjM1CkF1dGhvciA6IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVy dEBwaHlzaWNzLnV1LnNlPgpEYXRlICAgOiAyMDI2LTA2LTE0VDEwOjM5OjEzKzAyOjAwClN0YXRz ICA6ICsyNDE5Ly0wIGluIDMgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9q ZWN0Lm9yZy9ycG1zL2dsb2J1cy1nc2ktc3lzY29uZmlnL2MvNWRlOWY1NWNjZDM3ZGIyOGJlMTI5 Mzk1OGU5YzFmNmFiOTY2OTIzNT9icmFuY2g9cmF3aGlkZQoKTG9nOgpDb21waWxlIHdpdGggT3Bl blNTTCA0CgotLS0KZGlmZiAtLWdpdCBhLzAwMDEtVW50YWJpZnktYW5kLXJlbW92ZS10cmFpbGlu Zy13aGl0ZS1zcGFjZS5wYXRjaCBiLzAwMDEtVW50YWJpZnktYW5kLXJlbW92ZS10cmFpbGluZy13 aGl0ZS1zcGFjZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjM2 NTNhCi0tLSAvZGV2L251bGwKKysrIGIvMDAwMS1VbnRhYmlmeS1hbmQtcmVtb3ZlLXRyYWlsaW5n LXdoaXRlLXNwYWNlLnBhdGNoCkBAIC0wLDAgKzEsMjM1NSBAQAorRnJvbSAzY2NkYWEwMjM2MjMw YmJjYmNiZjMzOWU3ZGZkZmFmMjNjMTBiZDZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3MudXUuc2U+CitEYXRlOiBX ZWQsIDIwIE1heSAyMDI2IDAwOjE1OjM3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMS8yXSBVbnRh YmlmeSBhbmQgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlLXNwYWNlCisKKy0tLQorIC4uLi9zb3VyY2Uv bGlicmFyeS9nbG9idXNfZ3NpX3N5c3RlbV9jb25maWcuYyB8IDYyMiArKysrKysrKystLS0tLS0t LS0KKyAuLi4vc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9zeXN0ZW1fY29uZmlnLmggfCAgMjQg Ky0KKyAyIGZpbGVzIGNoYW5nZWQsIDMyMyBpbnNlcnRpb25zKCspLCAzMjMgZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS9nc2kvc3lzY29uZmlnL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lf c3lzdGVtX2NvbmZpZy5jIGIvZ3NpL3N5c2NvbmZpZy9zb3VyY2UvbGlicmFyeS9nbG9idXNfZ3Np X3N5c3RlbV9jb25maWcuYworaW5kZXggZmE5Nzk2NGJmLi5kZGRmZWRkMjMgMTAwNjQ0CistLS0g YS9nc2kvc3lzY29uZmlnL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfc3lzdGVtX2NvbmZpZy5j CisrKysgYi9nc2kvc3lzY29uZmlnL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfc3lzdGVtX2Nv bmZpZy5jCitAQCAtMjU4LDcgKzI1OCw3IEBAIGdsb2J1c19sX2dzaV9zeXNjb25maWdfYWN0aXZh dGUodm9pZCkKKyAgICAgR0xPQlVTX0lfR1NJX1NZU0NPTkZJR19ERUJVR19FTlRFUjsKKyAKKyAj aWZkZWYgVEFSR0VUX0FSQ0hfQ1lHV0lOCistICAgIC8qIHdpbmRvd3MgcGVybWlzc2lvbnMgYXJl IGEgcGFpbiwgYW5kIGN5Z3dpbiB3b24ndCBnaXZlIHJlbGlhYmxlIAorKyAgICAvKiB3aW5kb3dz IHBlcm1pc3Npb25zIGFyZSBhIHBhaW4sIGFuZCBjeWd3aW4gd29uJ3QgZ2l2ZSByZWxpYWJsZQor ICAgICBwZXJtaXNzaW9ucyB3aGVuIGEgbm9uLXBvc2l4IHBhdGggaXMgdXNlZCBhbnl3YXlzICov CisgICAgIGlmKGdldGVudigiR0xPQlVTX0lHTk9SRV9DUkVEX1BFUk1TIikpCisgICAgIHsKK0BA IC0zMDEsMTAgKzMwMSwxMCBAQCBnbG9idXNfbF9nc2lfc3lzY29uZmlnX2FjdGl2YXRlKHZvaWQp CisgICAgICAgICAgKi8KKyAKKyAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0ZJTEVfRVhJ U1RTKERFRkFVTFRfUkFORE9NX0ZJTEUpOworLQkJLyogVG9EbzogbG9vayBhdCByZXR1cm4gY29k ZT8gKi8KKysgICAgICAgICAgICAgICAgLyogVG9EbzogbG9vayBhdCByZXR1cm4gY29kZT8gKi8K KyAKKyAgICAgICAgIC8qIHByb2JhYmx5IG92ZXJlc3RpbWF0aW5nIHRoZSBlbnRyb3B5IGluIHRo ZSBiZWxvdyAqLworLSNpZm5kZWYgV0lOMzIJLyogVG9EbzogRG8gdGhpcyBmb3IgV2luMzI/ICov CisrI2lmbmRlZiBXSU4zMiAgIC8qIFRvRG86IERvIHRoaXMgZm9yIFdpbjMyPyAqLworICAgICAg ICAgdXB0aW1lID0gdGltZXMoJnByb2NfdGltZXMpOworIAorICAgICAgICAgUkFORF9hZGQoKHZv aWQgKikgJnVwdGltZSwgc2l6ZW9mKGNsb2NrX3QpLCAyKTsKK0BAIC01MjAsNyArNTIwLDcgQEAg Z2xvYnVzX2dzaV9zeXNjb25maWdfc2V0X2tleV9wZXJtaXNzaW9uc193aW4zMigKKyAgICAgY2hh ciAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUpCisgeworICAgICBnbG9i dXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsK Ky0gICAgaW50CQkJCQkgICAgICAgICAgICAgICAgZmQgPSAtMTsKKysgICAgaW50ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkID0gLTE7CisgICAgIHN0 cnVjdCBfc3RhdCAgICAgICAgICAgICAgICAgICAgICAgIHN0eDsKKyAKKyAgICAgR0xPQlVTX0lf R1NJX1NZU0NPTkZJR19ERUJVR19FTlRFUjsKK0BAIC01NTQsOCArNTU0LDggQEAgZ2xvYnVzX2dz aV9zeXNjb25maWdfc2V0X2tleV9wZXJtaXNzaW9uc193aW4zMigKKyAgICAgfQorIAorICAgICAv KgorLSAgICAgKiB1c2UgYW55IHN0YXQgb3V0cHV0IGFzIHJhbmRvbSBkYXRhLCBhcyBpdCB3aWxs IAorLSAgICAgKiBoYXZlIGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVzZSB0aW1lcyBpbiBpdC4gCisr ICAgICAqIHVzZSBhbnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRhdGEsIGFzIGl0IHdpbGwKKysg ICAgICogaGF2ZSBmaWxlIHNpemVzLCBhbmQgbGFzdCB1c2UgdGltZXMgaW4gaXQuCisgICAgICAq LworICAgICBSQU5EX2FkZCgodm9pZCopJnN0eCwgc2l6ZW9mKHN0eCksIDIpOworIAorQEAgLTU5 NCw3ICs1OTQsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19zZXRfa2V5X3Blcm1pc3Npb25zX3dp bjMyKAorICAgICAgICAgICAgICAgICBfX0ZJTEVfXywKKyAgICAgICAgICAgICAgICAgX19mdW5j X18sCisgICAgICAgICAgICAgICAgIF9fTElORV9fLAorLSAgICAgICAgICAgICAgICAiRXJyb3Ig c2V0dGluZyBwZXJtaXNzaW9ucyB0byB1c2VyIHJlYWQgb25seSBvZiBmaWxlOiAlc1xuIiwgCisr ICAgICAgICAgICAgICAgICJFcnJvciBzZXR0aW5nIHBlcm1pc3Npb25zIHRvIHVzZXIgcmVhZCBv bmx5IG9mIGZpbGU6ICVzXG4iLAorICAgICAgICAgICAgICAgICBmaWxlbmFtZSkpOworICAgICAg ICAgZ290byBleGl0OworICAgICB9CitAQCAtNjAyLDcgKzYwMiw3IEBAIGdsb2J1c19nc2lfc3lz Y29uZmlnX3NldF9rZXlfcGVybWlzc2lvbnNfd2luMzIoCisgIGV4aXQ6CisgICAgIGlmIChmZCA+ PSAwKQorICAgICB7CistCWNsb3NlKGZkKTsKKysgICAgICAgIGNsb3NlKGZkKTsKKyAgICAgfQor IAorICAgICBHTE9CVVNfSV9HU0lfU1lTQ09ORklHX0RFQlVHX0VYSVQ7CitAQCAtNjE2LDcgKzYx Niw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX3NldF9rZXlfcGVybWlzc2lvbnNfd2luMzIoCisg ICogQGluZ3JvdXAgZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ193aW4zMgorICAqIEBkZXRhaWxzCisg ICogR2V0IHRoZSBIT01FIGRpcmVjdG9yeSwgY3VycmVudGx5IGM6XHdpbmRvd3MKKy0gKiAKKysg KgorICAqIEBwYXJhbSBob21lX2RpcgorICAqICAgICAgICBUaGUgaG9tZSBkaXJlY3Rvcnkgb2Yg dGhlIGN1cnJlbnQgdXNlcgorICAqIEByZXR1cm4KK0BAIC02NDEsNyArNjQxLDcgQEAgZ2xvYnVz X2dzaV9zeXNjb25maWdfZ2V0X2hvbWVfZGlyX3dpbjMyKAorICAgICBpZihob21lX2RyaXZlID09 IE5VTEwpCisgICAgIHsKKyAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX1JFU1VM VCgKKy0gICAgICAgIAlyZXN1bHQsCisrICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAg ICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0hPTUVfRElSLAorICAgICAg ICAgICAgIChfR1NTTCgiQ291bGQgbm90IGdldCBhIGhvbWUgZGlyZWN0b3J5IGZvciB0aGlzIG1h Y2hpbmUiKSkpOworIAorQEAgLTY1Miw3ICs2NTIsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19n ZXRfaG9tZV9kaXJfd2luMzIoCisgICAgIGlmKGhvbWVfcGF0aCA9PSBOVUxMKQorICAgICB7Cisg ICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNVTFQoCistICAgICAgICAJcmVz dWx0LAorKyAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9T WVNDT05GSUdfRVJST1JfR0VUVElOR19IT01FX0RJUiwKKyAgICAgICAgICAgICAoX0dTU0woIkNv dWxkIG5vdCBnZXQgYSBob21lIGRpcmVjdG9yeSBmb3IgdGhpcyBtYWNoaW5lIikpKTsKKyAKK0BA IC03MDYsNyArNzA2LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2hvbWVfZGlyX3dpbjMy KAorICAqCisgICogQHBhcmFtIGZpbGVuYW1lIHRoZSBmaWxlIHRvIGNoZWNrCisgICoKKy0gKiBA cmV0dXJuIAorKyAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xPQlVTX1NVQ0NFU1MgKGV2ZW4gaWYg dGhlIGZpbGUgZG9lc24ndCBleGlzdCkgLSBpbiBzb21lCisgICogICAgICAgIGFib3J0aXZlIGNh c2VzIGFuIGVycm9yIG9iamVjdCBpZGVudGlmaWVyIGlzIHJldHVybmVkCisgICovCitAQCAtNzI5 LDcgKzcyOSw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2ZpbGVfZXhpc3RzX3dpbjMyKAorICAg ICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX1JFU1VMVCgKKyAgICAgICAgICAg ICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJP Ul9GSUxFX0RPRVNfTk9UX0VYSVNULAorLSAgICAgICAgICAgICAgICAoX0dTU0woIiVzIGlzIG5v dCBhIHZhbGlkIGZpbGUiKSwgZmlsZW5hbWUpKTsgICAgICAgICAgICAKKysgICAgICAgICAgICAg ICAgKF9HU1NMKCIlcyBpcyBub3QgYSB2YWxpZCBmaWxlIiksIGZpbGVuYW1lKSk7CisgICAgICAg ICAgICAgZ290byBleGl0OworIAorICAgICAgICAgICBjYXNlIEVBQ0NFUzoKK0BAIC03MzcsNyAr NzM3LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZmlsZV9leGlzdHNfd2luMzIoCisgICAgICAg ICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAgICAg ICByZXN1bHQsCisgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0ZJ TEVfQkFEX1BFUk1JU1NJT05TLAorLSAgICAgICAgICAgICAgICAoX0dTU0woIkNvdWxkIG5vdCBy ZWFkICVzIiksIGZpbGVuYW1lKSk7ICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIChfR1NT TCgiQ291bGQgbm90IHJlYWQgJXMiKSwgZmlsZW5hbWUpKTsKKyAgICAgICAgICAgICBnb3RvIGV4 aXQ7CisgCisgICAgICAgICAgIGRlZmF1bHQ6CitAQCAtNzU3LDggKzc1Nyw4IEBAIGdsb2J1c19n c2lfc3lzY29uZmlnX2ZpbGVfZXhpc3RzX3dpbjMyKAorICAgICB9CisgCisgICAgIC8qCistICAg ICAqIHVzZSBhbnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRhdGEsIGFzIGl0IHdpbGwgCistICAg ICAqIGhhdmUgZmlsZSBzaXplcywgYW5kIGxhc3QgdXNlIHRpbWVzIGluIGl0LiAKKysgICAgICog dXNlIGFueSBzdGF0IG91dHB1dCBhcyByYW5kb20gZGF0YSwgYXMgaXQgd2lsbAorKyAgICAgKiBo YXZlIGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVzZSB0aW1lcyBpbiBpdC4KKyAgICAgICovCisgICAg IFJBTkRfYWRkKCh2b2lkKikmc3R4LHNpemVvZihzdHgpLDIpOworIAorQEAgLTc2NywxNiArNzY3 LDE2IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2ZpbGVfZXhpc3RzX3dpbjMyKAorICAgICAgICAg R0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAgIHJlc3VsdCwK KyAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9GSUxFX1pFUk9fTEVOR1RI LAorLSAgICAgICAgICAgIChfR1NTTCgiRmlsZTogJXMiKSwgZmlsZW5hbWUpKTsgICAgICAgICAg ICAKKysgICAgICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiksIGZpbGVuYW1lKSk7CisgICAgICAg ICBnb3RvIGV4aXQ7CisgICAgIH0KKyAKKyAgICAgaWYoc3R4LnN0X21vZGUgJiBTX0lGRElSKQor LSAgICB7IAorKyAgICB7CisgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNV TFQoCisgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09O RklHX0VSUk9SX0ZJTEVfSVNfRElSLAorLSAgICAgICAgICAgIChfR1NTTCgiRmlsZTogJXMiKSwg ZmlsZW5hbWUpKTsgICAgICAgCisrICAgICAgICAgICAgKF9HU1NMKCJGaWxlOiAlcyIpLCBmaWxl bmFtZSkpOworICAgICB9CisgICAgIGVsc2UgaWYoKHN0eC5zdF9tb2RlICYgU19JRk1UKSAmCisg ICAgICAgICAgICAgfiAoU19JRlJFRyB8IFNfSUZESVIpKQorQEAgLTc5MSw3ICs3OTEsNyBAQCBn bG9idXNfZ3NpX3N5c2NvbmZpZ19maWxlX2V4aXN0c193aW4zMigKKyAKKyAgICAgR0xPQlVTX0lf R1NJX1NZU0NPTkZJR19ERUJVR19FWElUOworICAgICByZXR1cm4gcmVzdWx0OworLX0gICAgCisr fQorIAorIC8qKgorICAqIEBicmllZiBXaW4zMiAtIERpcmVjdG9yeSBFeGlzdHMKK0BAIC04MDEs NyArODAxLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZmlsZV9leGlzdHNfd2luMzIoCisgICoK KyAgKiBAcGFyYW0gZmlsZW5hbWUgdGhlIGZpbGUgdG8gY2hlY2sKKyAgKgorLSAqIEByZXR1cm4g CisrICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiB0aGUgZGlyZWN0b3J5 IGV4aXN0cywgb3RoZXJ3aXNlIGFuIGVycm9yCisgICogICAgICAgIG9iamVjdCBpZGVudGlmaWVy LgorICAqLworQEAgLTgyNCw3ICs4MjQsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19kaXJfZXhp c3RzX3dpbjMyKAorICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX1JFU1VM VCgKKyAgICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJ X1NZU0NPTkZJR19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNULAorLSAgICAgICAgICAgICAgICAo X0dTU0woIiVzIGlzIG5vdCBhIHZhbGlkIGRpcmVjdG9yeSIpLCBmaWxlbmFtZSkpOyAgICAgICAg ICAgIAorKyAgICAgICAgICAgICAgICAoX0dTU0woIiVzIGlzIG5vdCBhIHZhbGlkIGRpcmVjdG9y eSIpLCBmaWxlbmFtZSkpOworICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAKKyAgICAgICAgICAg Y2FzZSBFQUNDRVM6CitAQCAtODMyLDcgKzgzMiw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2Rp cl9leGlzdHNfd2luMzIoCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1Jf UkVTVUxUKAorICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgIEdMT0JV U19HU0lfU1lTQ09ORklHX0VSUk9SX0ZJTEVfQkFEX1BFUk1JU1NJT05TLAorLSAgICAgICAgICAg ICAgICAoX0dTU0woIkNvdWxkIG5vdCByZWFkICVzIiksIGZpbGVuYW1lKSk7ICAgICAgICAgICAg CisrICAgICAgICAgICAgICAgIChfR1NTTCgiQ291bGQgbm90IHJlYWQgJXMiKSwgZmlsZW5hbWUp KTsKKyAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgCisgICAgICAgICAgIGRlZmF1bHQ6CitAQCAt ODUyLDQwICs4NTIsNDAgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZGlyX2V4aXN0c193aW4zMigK KyAgICAgfQorIAorICAgICAvKgorLSAgICAgKiB1c2UgYW55IHN0YXQgb3V0cHV0IGFzIHJhbmRv bSBkYXRhLCBhcyBpdCB3aWxsIAorLSAgICAgKiBoYXZlIGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVz ZSB0aW1lcyBpbiBpdC4gCisrICAgICAqIHVzZSBhbnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRh dGEsIGFzIGl0IHdpbGwKKysgICAgICogaGF2ZSBmaWxlIHNpemVzLCBhbmQgbGFzdCB1c2UgdGlt ZXMgaW4gaXQuCisgICAgICAqLworICAgICBSQU5EX2FkZCgodm9pZCopJnN0eCxzaXplb2Yoc3R4 KSwyKTsKKyAKKyAgICAgLyogIT0gMCBzaXplIHRlc3Qgd2lsbCBhbHdheXMgZmFpbCBpbiB3aW5k b3dzIHNvIGl0IHdhcyByZW1vdmVkICovCisgCisgICAgIGlmKCEoc3R4LnN0X21vZGUgJiBTX0lG RElSKSkKKy0gICAgeyAKKysgICAgeworICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJS T1JfUkVTVUxUKAorICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICBHTE9CVVNfR1NJ X1NZU0NPTkZJR19FUlJPUl9GSUxFX05PVF9ESVIsCistICAgICAgICAgICAgKF9HU1NMKCIlcyBp cyBub3QgYSBkaXJlY3RvcnkiKSwgZmlsZW5hbWUpKTsgICAgICAgCisrICAgICAgICAgICAgKF9H U1NMKCIlcyBpcyBub3QgYSBkaXJlY3RvcnkiKSwgZmlsZW5hbWUpKTsKKyAgICAgfQorIAorICBl eGl0OgorIAorICAgICBHTE9CVVNfSV9HU0lfU1lTQ09ORklHX0RFQlVHX0VYSVQ7CisgICAgIHJl dHVybiByZXN1bHQ7CistfSAgICAKKyt9CisgCisgLyoqCisgICogQGJyaWVmIFdpbjMyIC0gQ2hl Y2sgRmlsZSBTdGF0dXMgZm9yIEtleQorICAqIEBpbmdyb3VwIGdsb2J1c19pX2dzaV9zeXNjb25m aWdfd2luMzIKKyAgKiBAZGV0YWlscworLSAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBmdW5jdGlv biB1c2VkIHRvIGNoZWNrIHRoZSBzdGF0dXMgb2YgYSAKKysgKiBUaGlzIGlzIGEgY29udmVuaWVu Y2UgZnVuY3Rpb24gdXNlZCB0byBjaGVjayB0aGUgc3RhdHVzIG9mIGEKKyAgKiBwcml2YXRlIGtl eSBmaWxlLiAgVGhlIGRlc2lyZWQgc3RhdHVzIGlzIG9ubHkgdGhlIGN1cnJlbnQgdXNlciBoYXMK KyAgKiBvd25lcnNoaXAgYW5kIHJlYWQgcGVybWlzc2lvbnMsIGV2ZXJ5b25lIGVsc2Ugc2hvdWxk IG5vdCBiZSBhYmxlCisgICogdG8gYWNjZXNzIGl0LgorLSAqIAorKyAqCisgICogQHBhcmFtIGZp bGVuYW1lCisgICogICAgICAgIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIGNoZWNrIHRoZSBzdGF0 dXMgb2YKKyAgKgorLSAqIEByZXR1cm4gCisrICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNf U1VDQ0VTUyBpZiB0aGUgc3RhdHVzIG9mIHRoZSBmaWxlIHdhcyBhYmxlCisgICogICAgICAgIHRv IGJlIGRldGVybWluZWQuICBPdGhlcndpc2UsIGFuIGVycm9yIG9iamVjdAorICAqICAgICAgICBp ZGVudGlmaWVyCitAQCAtOTAyLDE1ICs5MDIsMTUgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfY2hl Y2tfa2V5ZmlsZV93aW4zMigKKyAgKiBAYnJpZWYgV2luMzIgLSBDaGVjayBGaWxlIFN0YXR1cyBm b3IgS2V5CisgICogQGluZ3JvdXAgZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ193aW4zMgorICAqIEBk ZXRhaWxzCistICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHVzZWQgdG8gY2hlY2sg dGhlIHN0YXR1cyBvZiBhIAorKyAqIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB1c2Vk IHRvIGNoZWNrIHRoZSBzdGF0dXMgb2YgYQorICAqIHByaXZhdGUga2V5IGZpbGUuICBUaGUgZGVz aXJlZCBzdGF0dXMgaXMgb25seSB0aGUgY3VycmVudCB1c2VyIGhhcworICAqIG93bmVyc2hpcCBh bmQgcmVhZCBwZXJtaXNzaW9ucywgZXZlcnlvbmUgZWxzZSBzaG91bGQgbm90IGJlIGFibGUKKyAg KiB0byBhY2Nlc3MgaXQuCistICogCisrICoKKyAgKiBAcGFyYW0gZmlsZW5hbWUKKyAgKiAgICAg ICAgVGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZgorICAqCistICog QHJldHVybiAKKysgKiBAcmV0dXJuCisgICogICAgICAgIEdMT0JVU19TVUNDRVNTIGlmIHRoZSBz dGF0dXMgb2YgdGhlIGZpbGUgd2FzIGFibGUKKyAgKiAgICAgICAgdG8gYmUgZGV0ZXJtaW5lZC4g IE90aGVyd2lzZSwgYW4gZXJyb3Igb2JqZWN0CisgICogICAgICAgIGlkZW50aWZpZXIKK0BAIC05 NDQsNyArOTQ0LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfY2hlY2tfa2V5ZmlsZV91aWRfd2lu MzIoCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfUkVTVUxUKAorICAg ICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09O RklHX0VSUk9SX0ZJTEVfQkFEX1BFUk1JU1NJT05TLAorLSAgICAgICAgICAgICAgICAoX0dTU0wo IkNvdWxkIG5vdCByZWFkICVzIiksIGZpbGVuYW1lKSk7ICAgICAgICAgICAgCisrICAgICAgICAg ICAgICAgIChfR1NTTCgiQ291bGQgbm90IHJlYWQgJXMiKSwgZmlsZW5hbWUpKTsKKyAgICAgICAg ICAgICBnb3RvIGV4aXQ7CisgCisgICAgICAgICAgIGRlZmF1bHQ6CitAQCAtOTYzLDggKzk2Myw4 IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2NoZWNrX2tleWZpbGVfdWlkX3dpbjMyKAorICAgICB9 CisgCisgICAgIC8qCistICAgICAqIHVzZSBhbnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRhdGEs IGFzIGl0IHdpbGwgCistICAgICAqIGhhdmUgZmlsZSBzaXplcywgYW5kIGxhc3QgdXNlIHRpbWVz IGluIGl0LiAKKysgICAgICogdXNlIGFueSBzdGF0IG91dHB1dCBhcyByYW5kb20gZGF0YSwgYXMg aXQgd2lsbAorKyAgICAgKiBoYXZlIGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVzZSB0aW1lcyBpbiBp dC4KKyAgICAgICovCisgICAgIFJBTkRfYWRkKCh2b2lkKikmc3R4LHNpemVvZihzdHgpLDIpOwor IAorQEAgLTk4Miw3ICs5ODIsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19jaGVja19rZXlmaWxl X3VpZF93aW4zMigKKyAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX1JFU1VMVCgK KyAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdf RVJST1JfRklMRV9aRVJPX0xFTkdUSCwKKy0gICAgICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiks IGZpbGVuYW1lKSk7ICAgICAgICAgICAgCisrICAgICAgICAgICAgKF9HU1NMKCJGaWxlOiAlcyIp LCBmaWxlbmFtZSkpOworICAgICAgICAgZ290byBleGl0OworICAgICB9CisgCitAQCAtOTkyLDcg Kzk5Miw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2NoZWNrX2tleWZpbGVfdWlkX3dpbjMyKAor ICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAg IHJlc3VsdCwKKyAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9GSUxFX0lT X0RJUiwKKy0gICAgICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiksIGZpbGVuYW1lKSk7ICAgICAg ICAKKysgICAgICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiksIGZpbGVuYW1lKSk7CisgICAgIH0K KyAgICAgZWxzZSBpZigoc3R4LnN0X21vZGUgJiBTX0lGTVQpCisgICAgICAgICAgICAgJiB+KFNf SUZSRUcgfCBTX0lGRElSKSkKK0BAIC0xMDE2LDE1ICsxMDE2LDE1IEBAIGdsb2J1c19nc2lfc3lz Y29uZmlnX2NoZWNrX2tleWZpbGVfdWlkX3dpbjMyKAorICAqIEBicmllZiBXaW4zMiAtIENoZWNr IEZpbGUgU3RhdHVzIGZvciBDZXJ0CisgICogQGluZ3JvdXAgZ2xvYnVzX2lfZ3NpX3N5c2NvbmZp Z193aW4zMgorICAqIEBkZXRhaWxzCistICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9u IHVzZWQgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZiBhIAorKyAqIFRoaXMgaXMgYSBjb252ZW5pZW5j ZSBmdW5jdGlvbiB1c2VkIHRvIGNoZWNrIHRoZSBzdGF0dXMgb2YgYQorICAqIGNlcnRpZmljYXRl IGZpbGUuICBUaGUgZGVzaXJlZCBzdGF0dXMgaXMgdGhlIGN1cnJlbnQgdXNlciBoYXMKKyAgKiBv d25lcnNoaXAgYW5kIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMsIHdoaWxlIGdyb3VwIGFuZCBvdGhl cnMgb25seQorICAqIGhhdmUgcmVhZCBwZXJtaXNzaW9ucy4KKy0gKiAKKysgKgorICAqIEBwYXJh bSBmaWxlbmFtZQorICAqICAgICAgICBUaGUgbmFtZSBvZiB0aGUgZmlsZSB0byBjaGVjayB0aGUg c3RhdHVzIG9mCisgICoKKy0gKiBAcmV0dXJuIAorKyAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xP QlVTX1NVQ0NFU1MgaWYgdGhlIHN0YXR1cyBvZiB0aGUgZmlsZSB3YXMgYWJsZQorICAqICAgICAg ICB0byBiZSBkZXRlcm1pbmVkLiAgT3RoZXJ3aXNlLCBhbiBlcnJvciBvYmplY3QKKyAgKiAgICAg ICAgaWRlbnRpZmllcgorQEAgLTEwNDEsMTUgKzEwNDEsMTUgQEAgZ2xvYnVzX2dzaV9zeXNjb25m aWdfY2hlY2tfY2VydGZpbGVfd2luMzIoCisgICogQGJyaWVmIFdpbjMyIC0gQ2hlY2sgRmlsZSBT dGF0dXMgZm9yIENlcnQKKyAgKiBAaW5ncm91cCBnbG9idXNfaV9nc2lfc3lzY29uZmlnX3dpbjMy CisgICogQGRldGFpbHMKKy0gKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdXNlZCB0 byBjaGVjayB0aGUgc3RhdHVzIG9mIGEgCisrICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0 aW9uIHVzZWQgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZiBhCisgICogY2VydGlmaWNhdGUgZmlsZS4g IFRoZSBkZXNpcmVkIHN0YXR1cyBpcyB0aGUgY3VycmVudCB1c2VyIGhhcworICAqIG93bmVyc2hp cCBhbmQgcmVhZC93cml0ZSBwZXJtaXNzaW9ucywgd2hpbGUgZ3JvdXAgYW5kIG90aGVycyBvbmx5 CisgICogaGF2ZSByZWFkIHBlcm1pc3Npb25zLgorLSAqIAorKyAqCisgICogQHBhcmFtIGZpbGVu YW1lCisgICogICAgICAgIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIGNoZWNrIHRoZSBzdGF0dXMg b2YKKyAgKgorLSAqIEByZXR1cm4gCisrICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VD Q0VTUyBpZiB0aGUgc3RhdHVzIG9mIHRoZSBmaWxlIHdhcyBhYmxlCisgICogICAgICAgIHRvIGJl IGRldGVybWluZWQuICBPdGhlcndpc2UsIGFuIGVycm9yIG9iamVjdAorICAqICAgICAgICBpZGVu dGlmaWVyCitAQCAtMTEwMSwxNCArMTEwMSwxNCBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19jaGVj a19jZXJ0ZmlsZV91aWRfd2luMzIoCisgICAgIH0KKyAKKyAgICAgLyoKKy0gICAgICogdXNlIGFu eSBzdGF0IG91dHB1dCBhcyByYW5kb20gZGF0YSwgYXMgaXQgd2lsbCAKKy0gICAgICogaGF2ZSBm aWxlIHNpemVzLCBhbmQgbGFzdCB1c2UgdGltZXMgaW4gaXQuIAorKyAgICAgKiB1c2UgYW55IHN0 YXQgb3V0cHV0IGFzIHJhbmRvbSBkYXRhLCBhcyBpdCB3aWxsCisrICAgICAqIGhhdmUgZmlsZSBz aXplcywgYW5kIGxhc3QgdXNlIHRpbWVzIGluIGl0LgorICAgICAgKi8KKyAgICAgUkFORF9hZGQo KHZvaWQqKSZzdHgsc2l6ZW9mKHN0eCksMik7CisgCisgICAgIC8qCisgICAgICAqIE5vdGUgdGhh dCB1bml4LWxpa2Ugb3duZXJzaGlwIGFuZCBwZXJtaXNzaW9ucyBhcmUgbm90IHN1cHBvcmVkIGJ5 IFdpbmRvd3Mgc28KKy0gICAgICogZ2V0ZXVpZCgpIGFuZCByd3ggbW9kZSB0ZXN0cyBhcmUgbm90 IGRvbmUuIE1heWJlIGxhdGVyIFdpbjMyIGZpbGUgc2VjdXJpdHkgCisrICAgICAqIGdldGV1aWQo KSBhbmQgcnd4IG1vZGUgdGVzdHMgYXJlIG5vdCBkb25lLiBNYXliZSBsYXRlciBXaW4zMiBmaWxl IHNlY3VyaXR5CisgICAgICAqIHVzaW5nIEFjY2VzcyBDb250cm9sIExpc3RzIGNhbiBiZSBpbmNv cnBvcmF0ZWQsIGJ1dCB0aGlzIGlzIGFuIGFyY2hpdGVjdHVyYWwKKyAgICAgICogYW5kIHdvdWxk IG5lZWQgdG8gYmUgY29uc2lkZXJlZCBhbmQgaW1wbGVtZW50ZWQgaW4gYSBjb21wcmVoZW5zaXZl IHdheS4KKyAgICAgICovCitAQCAtMTExOSw3ICsxMTE5LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25m aWdfY2hlY2tfY2VydGZpbGVfdWlkX3dpbjMyKAorICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05G SUdfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICBHTE9C VVNfR1NJX1NZU0NPTkZJR19FUlJPUl9GSUxFX1pFUk9fTEVOR1RILAorLSAgICAgICAgICAgIChf R1NTTCgiRmlsZTogJXMiKSwgZmlsZW5hbWUpKTsgICAgICAgICAgICAKKysgICAgICAgICAgICAo X0dTU0woIkZpbGU6ICVzIiksIGZpbGVuYW1lKSk7CisgICAgICAgICBnb3RvIGV4aXQ7CisgICAg IH0KKyAKK0BAIC0xMTkzLDcgKzExOTMsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY3Vy cmVudF93b3JraW5nX2Rpcl93aW4zMigKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UgaWYoIXJl c3VsdF9idWZmZXIpCisgICAgICAgICB7CistICAgICAgICAgICAgcmVzdWx0ID0gCisrICAgICAg ICAgICAgcmVzdWx0ID0KKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2Vycm9yX3B1dChnbG9idXNf ZXJyb3Jfd3JhcF9lcnJub19lcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lf U1lTQ09ORklHX01PRFVMRSwKKyAgICAgICAgICAgICAgICAgICAgIGVycm5vLAorQEAgLTEyMjUs NyArMTIyNSw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9jdXJyZW50X3dvcmtpbmdfZGly X3dpbjMyKAorICAqIG9uIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgorICAqCisgICog QHBhcmFtIGZpbGVuYW1lCistICogICAgICAgIHRoZSBmaWxlbmFtZSB0byBnZXQgdGhlIGFic29s dXRlIHBhdGggb2YuICAKKysgKiAgICAgICAgdGhlIGZpbGVuYW1lIHRvIGdldCB0aGUgYWJzb2x1 dGUgcGF0aCBvZi4KKyAgKiBAcGFyYW0gYWJzb2x1dGVfcGF0aAorICAqICAgICAgICBUaGUgcmVz dWx0aW5nIGFic29sdXRlIHBhdGgKKyAgKiBAcmV0dXJuCitAQCAtMTMzMCw4ICsxMzMwLDggQEAg Z2xvYnVzX2dzaV9zeXNjb25maWdfc3BsaXRfZGlyX2FuZF9maWxlbmFtZV93aW4zMigKKyAgICAg ICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICB9CisgCistICAgICAgICBnbG9idXNfbGliY19z bnByaW50ZigqZmlsZW5hbWVfc3RyaW5nLCBmaWxlbmFtZV9zdHJpbmdfbGVuZ3RoLCAKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIsIGZ1bGxfZmlsZW5hbWUpOyAKKysgICAgICAg IGdsb2J1c19saWJjX3NucHJpbnRmKCpmaWxlbmFtZV9zdHJpbmcsIGZpbGVuYW1lX3N0cmluZ19s ZW5ndGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiLCBmdWxsX2ZpbGVuYW1l KTsKKyAgICAgfQorICAgICBlbHNlCisgICAgIHsKK0BAIC0xMzc3LDcgKzEzNzcsNyBAQCBnbG9i dXNfZ3NpX3N5c2NvbmZpZ19zcGxpdF9kaXJfYW5kX2ZpbGVuYW1lX3dpbjMyKAorICAqIEBicmll ZiBXaW4zMiAtIEdldCBVc2VyIElECisgICogQGluZ3JvdXAgZ2xvYnVzX2lfZ3NpX3N5c2NvbmZp Z193aW4zMgorICAqIEBkZXRhaWxzCistICogR2V0IGEgdW5pcXVlIHN0cmluZyByZXByZXNlbnRp bmcgdGhlIGN1cnJlbnQgdXNlci4gIAorKyAqIEdldCBhIHVuaXF1ZSBzdHJpbmcgcmVwcmVzZW50 aW5nIHRoZSBjdXJyZW50IHVzZXIuCisgICovCisgZ2xvYnVzX3Jlc3VsdF90CisgZ2xvYnVzX2dz aV9zeXNjb25maWdfZ2V0X3VzZXJfaWRfc3RyaW5nX3dpbjMyKAorQEAgLTEzOTksNyArMTM5OSw3 IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF91c2VyX2lkX3N0cmluZ193aW4zMigKKyAgKiBA YnJpZWYgV2luMzIgLSBHZXQgVXNlcm5hbWUKKyAgKiBAaW5ncm91cCBnbG9idXNfaV9nc2lfc3lz Y29uZmlnX3dpbjMyCisgICogQGRldGFpbHMKKy0gKiBHZXQgdGhlIHVzZXJuYW1lIG9mIHRoZSBj dXJyZW50IHVzZXIuICAKKysgKiBHZXQgdGhlIHVzZXJuYW1lIG9mIHRoZSBjdXJyZW50IHVzZXIu CisgICovCisgZ2xvYnVzX3Jlc3VsdF90CisgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3VzZXJu YW1lX3dpbjMyKAorQEAgLTE0MTEsMjYgKzE0MTEsMjYgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdf Z2V0X3VzZXJuYW1lX3dpbjMyKAorIAorICAgICBHTE9CVVNfSV9HU0lfU1lTQ09ORklHX0RFQlVH X0VOVEVSOworIAorLSAgICBpZihuYW1lID0gZ2V0ZW52KCJVU0VSTkFNRSIpKSAKKysgICAgaWYo bmFtZSA9IGdldGVudigiVVNFUk5BTUUiKSkKKyAgICAgeworICAgICAgICAgc2l6ZSA9IHN0cmxl bihuYW1lKSArIDE7CisgICAgICAgICAqdXNlcm5hbWUgPSBtYWxsb2Moc2l6ZSk7CistICAgICAg ICBpZigqdXNlcm5hbWUpIAorKyAgICAgICAgaWYoKnVzZXJuYW1lKQorICAgICAgICAgeworICAg ICAgICAgICAgIHN0cm5jcHkoKnVzZXJuYW1lLG5hbWUsc2l6ZSk7CisgICAgICAgICB9CistICAg ICAgICBlbHNlIAorKyAgICAgICAgZWxzZQorICAgICAgICAgeworICAgICAgICAgICAgIHJlc3Vs dCA9IEdMT0JVU19HU0lfU1lTVEVNX0NPTkZJR19NQUxMT0NfRVJST1I7CisgICAgICAgICB9Cisg ICAgIH0KKyAKKyAgICAgLyogZ2V0ZW52IGZhaWxlZCAqLworLSAgICBlbHNlIAorKyAgICBlbHNl CisgICAgIHsKKyAgICAgICAgICp1c2VybmFtZSA9IE5VTEw7CisgICAgICAgICBHTE9CVVNfR1NJ X1NZU0NPTkZJR19FUlJPUl9SRVNVTFQoCistICAgICAJICAgIHJlc3VsdCwKKysgICAgICAgICAg ICByZXN1bHQsCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfR0VUVElO R19IT01FX0RJUiwKKyAgICAgICAgICAgICAoX0dTU0woIkNvdWxkIG5vdCBmaW5kIHVzZXJuYW1l IGZvciB0aGlzIHVzZSIpKSk7CisgICAgICB9CitAQCAtMTQ0NCw3ICsxNDQ0LDcgQEAgZ2xvYnVz X2dzaV9zeXNjb25maWdfZ2V0X3VzZXJuYW1lX3dpbjMyKAorICAqIEBicmllZiBXaW4zMiAtIEdl dCBQcm9jZXNzIElECisgICogQGluZ3JvdXAgZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ193aW4zMgor ICAqIEBkZXRhaWxzCistICogR2V0IGEgdW5pcXVlIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGN1 cnJlbnQgcHJvY2Vzcy4gIAorKyAqIEdldCBhIHVuaXF1ZSBzdHJpbmcgcmVwcmVzZW50aW5nIHRo ZSBjdXJyZW50IHByb2Nlc3MuCisgICovCisgZ2xvYnVzX3Jlc3VsdF90CisgZ2xvYnVzX2dzaV9z eXNjb25maWdfZ2V0X3Byb2NfaWRfc3RyaW5nX3dpbjMyKAorQEAgLTE0OTgsMTkgKzE0OTgsMTkg QEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3Byb2NfaWRfc3RyaW5nX3dpbjMyKAorICAqIHNv ZnR3YXJlXFxHbG9idXNcXEdTSQorICAqIDxsaT4gPGI+XFwmbHQ7dXNlciBob21lIGRpcmVjdG9y eSZndDtcXDwvYj48Yj4uZ2xvYnVzXFxjZXJ0aWZpY2F0ZXM8L2I+IC0gSWYgdGhpcworICAqIGRp cmVjdG9yeSBleGlzdHMsIGFuZCB0aGUgcHJldmlvdXMgbWV0aG9kcyBvZiBkZXRlcm1pbmluZyB0 aGUgdHJ1c3RlZAorLSAqIGNlcnRzIGRpcmVjdG9yeSBmYWlsZWQsIHRoaXMgZGlyZWN0b3J5IHdp bGwgYmUgdXNlZC4gIAorKyAqIGNlcnRzIGRpcmVjdG9yeSBmYWlsZWQsIHRoaXMgZGlyZWN0b3J5 IHdpbGwgYmUgdXNlZC4KKyAgKiA8bGk+IDxiPkhvc3QgVHJ1c3RlZCBDZXJ0IERpcjwvYj4gLSBU aGlzIGxvY2F0aW9uIGlzIGludGVuZGVkCistICogdG8gYmUgaW5kZXBlbmRlbnQgb2YgdGhlIGds b2J1cyBpbnN0YWxsYXRpb24gKCRHTE9CVVNfTE9DQVRJT04pLCBhbmQgCistICogaXMgZ2VuZXJh bGx5IG9ubHkgd3JpdGVhYmxlIGJ5IHRoZSBob3N0IHN5c3RlbSBhZG1pbmlzdHJhdG9yLiAgCisr ICogdG8gYmUgaW5kZXBlbmRlbnQgb2YgdGhlIGdsb2J1cyBpbnN0YWxsYXRpb24gKCRHTE9CVVNf TE9DQVRJT04pLCBhbmQKKysgKiBpcyBnZW5lcmFsbHkgb25seSB3cml0ZWFibGUgYnkgdGhlIGhv c3Qgc3lzdGVtIGFkbWluaXN0cmF0b3IuCisgICogPGxpPiA8Yj5HbG9idXMgSW5zdGFsbCBUcnVz dGVkIENlcnQgRGlyPC9iPiAtIHRoaXMKKy0gKiBpcyAkR0xPQlVTX0xPQ0FUSU9OXFxzaGFyZVxc Y2VydGlmaWNhdGVzLiAgCisrICogaXMgJEdMT0JVU19MT0NBVElPTlxcc2hhcmVcXGNlcnRpZmlj YXRlcy4KKyAgKiA8L29sPgorICAqCisgICogQHBhcmFtIGNlcnRfZGlyCisgICogICAgICAgIFRo ZSB0cnVzdGVkIGNlcnRpZmljYXRlcyBkaXJlY3RvcnkKKyAgKiBAcmV0dXJuCisgICogICAgICAg IEdMT0JVU19TVUNDRVNTIGlmIG5vIGVycm9yIG9jY3VycmVkLCBhbmQgYSBzdWZmaWNpZW50IHRy dXN0ZWQKKy0gKiAgICAgICAgY2VydGlmaWNhdGVzIGRpcmVjdG9yeSB3YXMgZm91bmQuICBPdGhl cndpc2UsIGFuIGVycm9yIG9iamVjdCAKKysgKiAgICAgICAgY2VydGlmaWNhdGVzIGRpcmVjdG9y eSB3YXMgZm91bmQuICBPdGhlcndpc2UsIGFuIGVycm9yIG9iamVjdAorICAqICAgICAgICBpZGVu dGlmaWVyIHJldHVybmVkLgorICAqLworIGdsb2J1c19yZXN1bHRfdAorQEAgLTE1MzMsNyArMTUz Myw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9jZXJ0X2Rpcl93aW4zMigKKyAgICAgaWYo Z2V0ZW52KFg1MDlfQ0VSVF9ESVIpKQorICAgICB7CisgICAgICAgICByZXN1bHQgPSBnbG9idXNf aV9nc2lfc3lzY29uZmlnX2NyZWF0ZV9jZXJ0X2Rpcl9zdHJpbmcoCistICAgICAgICAgICAgY2Vy dF9kaXIsIAorKyAgICAgICAgICAgIGNlcnRfZGlyLAorICAgICAgICAgICAgICZlbnZfY2VydF9k aXIsCisgICAgICAgICAgICAgIiVzIiwKKyAgICAgICAgICAgICBnZXRlbnYoWDUwOV9DRVJUX0RJ UikpOworQEAgLTE1NTIsOSArMTU1Miw5IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9jZXJ0 X2Rpcl93aW4zMigKKyAgICAgICAgIHJlc3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0dFVF9I T01FX0RJUigmaG9tZSk7CisgCisgICAgICAgICBpZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1Mp CistICAgICAgICB7IAorKyAgICAgICAgeworICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19p X2dzaV9zeXNjb25maWdfY3JlYXRlX2NlcnRfZGlyX3N0cmluZygKKy0gICAgICAgICAgICAgICAg Y2VydF9kaXIsIAorKyAgICAgICAgICAgICAgICBjZXJ0X2RpciwKKyAgICAgICAgICAgICAgICAg JmxvY2FsX2NlcnRfZGlyLAorICAgICAgICAgICAgICAgICAiJXMlcyVzIiwKKyAgICAgICAgICAg ICAgICAgaG9tZSwKK0BAIC0xNTgwLDcgKzE1ODAsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19n ZXRfY2VydF9kaXJfd2luMzIoCisgICAgICAgICBlbHNlIGlmKCFHTE9CVVNfR1NJX1NZU0NPTkZJ R19GSUxFX0RPRVNfTk9UX0VYSVNUKHJlc3VsdCkgJiYKKyAgICAgICAgICAgICAgICAgIUdMT0JV U19HU0lfU1lTQ09ORklHX0ZJTEVfSEFTX0JBRF9QRVJNSVNTSU9OUyhyZXN1bHQpKQorICAgICAg ICAgeworLQkgICAgaG9tZSA9IE5VTEw7CisrICAgICAgICAgICAgaG9tZSA9IE5VTEw7CisgICAg ICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfQ0hBSU5fUkVTVUxUKAorICAgICAg ICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklH X0VSUk9SX0dFVFRJTkdfQ0VSVF9ESVIpOworQEAgLTE2NzEsNyArMTY3MSw3IEBAIGdsb2J1c19n c2lfc3lzY29uZmlnX2dldF9jZXJ0X2Rpcl93aW4zMigKKyAgICAgfQorIAorICAgICBHTE9CVVNf SV9HU0lfU1lTQ09ORklHX0RFQlVHX0ZQUklOVEYoCistICAgICAgICAyLCAoc3RkZXJyLCAiVXNp bmcgY2VydF9kaXIgPSAlc1xuIiwgCisrICAgICAgICAyLCAoc3RkZXJyLCAiVXNpbmcgY2VydF9k aXIgPSAlc1xuIiwKKyAgICAgICAgICAgICAoKmNlcnRfZGlyID8gKmNlcnRfZGlyIDogIm51bGwi KSkpOworIAorICAgICByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsKK0BAIC0xNjg1LDcgKzE2ODUs NyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2VydF9kaXJfd2luMzIoCisgCisgICAgIGlm KGhvbWUgIT0gTlVMTCkKKyAgICAgeworLQlmcmVlKGhvbWUpOworKyAgICAgICAgZnJlZShob21l KTsKKyAgICAgfQorIAorICAgICBHTE9CVVNfSV9HU0lfU1lTQ09ORklHX0RFQlVHX0VYSVQ7CitA QCAtMTcwMCwxMSArMTcwMCwxMSBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2VydF9kaXJf d2luMzIoCisgICogR2V0IHRoZSBVc2VyIENlcnRpZmljYXRlIEZpbGVuYW1lIGJhc2VkIG9uIHRo ZSBjdXJyZW50IHVzZXIncworICAqIGVudmlyb25tZW50LiAgVGhlIGZvbGxvd2luZyBsb2NhdGlv bnMgYXJlIHNlYXJjaGVkIGZvciBjZXJ0IGFuZCBrZXkKKyAgKiBmaWxlcyBpbiBvcmRlcjoKKy0g KiAKKysgKgorICAqIDxvbD4KKyAgKiA8bGk+ZW52aXJvbm1lbnQgdmFyaWFibGVzIFg1MDlfVVNF Ul9DRVJUIGFuZCBYNTA5X1VTRVJfS0VZCisgICogPGxpPnJlZ2lzdHJ5IGtleXMgeDUwOV91c2Vy X2NlcnQgYW5kIHg1MDlfdXNlcl9rZXkgaW4gc29mdHdhcmVcXEdsb2J1c1xcR1NJCistICogPGxp PjxiPiZsdDt1c2VycyBob21lIGRpcmVjdG9yeSZndDtcXDwvYj48Yj4uZ2xvYnVzXFx1c2VyY2Vy dC5wZW08L2I+IGFuZCAKKysgKiA8bGk+PGI+Jmx0O3VzZXJzIGhvbWUgZGlyZWN0b3J5Jmd0O1xc PC9iPjxiPi5nbG9idXNcXHVzZXJjZXJ0LnBlbTwvYj4gYW5kCisgICogICAgIDxiPiZsdDt1c2Vy cyBob21lIGRpcmVjdG9yeSZndDtcXDwvYj48Yj4uZ2xvYnVzXFx1c2Vya2V5LnBlbTwvYj4KKyAg KiA8bGk+PGI+Jmx0O3VzZXJzIGhvbWUgZGlyZWN0b3J5Jmd0O1xcPC9iPjxiPi5nbG9idXNcXHVz ZXJjcmVkLnAxMjwvYj4gLSB0aGlzIGlzIGEgUEtDUzEyIGNyZWRlbnRpYWwKKyAgKiA8L29sPgor QEAgLTE3NTIsNyArMTc1Miw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF91c2VyX2NlcnRf ZmlsZW5hbWVfd2luMzIoCisgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAg ICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0NFUlRfU1RSSU5H KTsKKyAgICAgICAgICAgICAgICAgZ290byBkb25lOworLSAgICAgICAgICAgIH0gICAgICAgICAg ICAKKysgICAgICAgICAgICB9CisgICAgICAgICB9CisgCisgICAgICAgICBpZighKCp1c2VyX2Nl cnQpKQorQEAgLTE3ODksNyArMTc4OSw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF91c2Vy X2NlcnRfZmlsZW5hbWVfd2luMzIoCisgICAgIH0KKyAKKyAgICAgaWYodXNlcl9rZXkpCistICAg IHsgCisrICAgIHsKKyAgICAgICAgICp1c2VyX2tleSA9IE5VTEw7CisgICAgICAgICByZXN1bHQg PSBHTE9CVVNfU1VDQ0VTUzsKKyAKK0BAIC0xODUzLDcgKzE4NTMsNyBAQCBnbG9idXNfZ3NpX3N5 c2NvbmZpZ19nZXRfdXNlcl9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAorICAgICB7CisgICAgICAgICBy ZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsKKyAgICAgICAgIGlmKCFob21lKQorLSAgICAgICAgeyAK KysgICAgICAgIHsKKyAgICAgICAgICAgICByZXN1bHQgPSBHTE9CVVNfR1NJX1NZU0NPTkZJR19H RVRfSE9NRV9ESVIoJmhvbWUpOworICAgICAgICAgfQorIAorQEAgLTE4ODIsNyArMTg4Miw3IEBA IGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF91c2VyX2NlcnRfZmlsZW5hbWVfd2luMzIoCisgICAg ICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfQ0hBSU5fUkVTVUxUKAorICAgICAg ICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklH X0VSUk9SX0dFVFRJTkdfS0VZX1NUUklORyk7CistICAgICAgICAgICAgZ290byBkb25lOyAgICAg ICAgICAgIAorKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgIH0KKyAgICAgfQorIAor QEAgLTE5MzcsNyArMTkzNyw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF91c2VyX2NlcnRf ZmlsZW5hbWVfd2luMzIoCisgICogQGluZ3JvdXAgZ2xvYnVzX2dzaV9zeXNjb25maWdfd2luMzIK KyAgKiBAZGV0YWlscworICAqIEdldCB0aGUgSG9zdCBDZXJ0aWZpY2F0ZSBhbmQgS2V5IEZpbGVu YW1lcyBiYXNlZCBvbiB0aGUgY3VycmVudCB1c2VyJ3MKKy0gKiBlbnZpcm9ubWVudC4gIFRoZSBo b3N0IGNlcnQgYW5kIGtleSBhcmUgc2VhcmNoZWQgZm9yIGluIHRoZSBmb2xsb3dpbmcgCisrICog ZW52aXJvbm1lbnQuICBUaGUgaG9zdCBjZXJ0IGFuZCBrZXkgYXJlIHNlYXJjaGVkIGZvciBpbiB0 aGUgZm9sbG93aW5nCisgICogbG9jYXRpb25zIChpbiBvcmRlcik6CisgICoKKyAgKiA8b2w+CitA QCAtMTk0Niw3ICsxOTQ2LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3VzZXJfY2VydF9m aWxlbmFtZV93aW4zMigKKyAgKiA8bGk+PGI+Jmx0O0dMT0JVU19MT0NBVElPTiZndDtcXGV0Y1xc aG9zdFtjZXJ0fGtleV0ucGVtPC9iPgorICAqIDxsaT48Yj4mbHQ7dXNlcnMgaG9tZSBkaXJlY3Rv cnkmZ3Q7XFw8L2I+PGI+Lmdsb2J1c1xcaG9zdFtjZXJ0fGtleV0ucGVtPC9iPgorICAqIDwvb2w+ CistICogCisrICoKKyAgKiBAcGFyYW0gaG9zdF9jZXJ0CisgICogICAgICAgIHBvaW50ZXIgdG8g dGhlIGhvc3QgY2VydGlmaWNhdGUgZmlsZW5hbWUKKyAgKiBAcGFyYW0gaG9zdF9rZXkKK0BAIC0x OTU0LDcgKzE5NTQsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfdXNlcl9jZXJ0X2ZpbGVu YW1lX3dpbjMyKAorICAqCisgICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBp ZiB0aGUgaG9zdCBjZXJ0IGFuZCBrZXkgd2VyZSBmb3VuZCwgb3RoZXJ3aXNlCistICogICAgICAg IGFuIGVycm9yIG9iamVjdCBpZGVudGlmaWVyIGlzIHJldHVybmVkIAorKyAqICAgICAgICBhbiBl cnJvciBvYmplY3QgaWRlbnRpZmllciBpcyByZXR1cm5lZAorICAqLworIGdsb2J1c19yZXN1bHRf dAorIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9ob3N0X2NlcnRfZmlsZW5hbWVfd2luMzIoCitA QCAtMjAyMiw3ICsyMDIyLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2hvc3RfY2VydF9m aWxlbmFtZV93aW4zMigKKyAgICAgICAgICAgICBYNTA5X0NFUlRfU1VGRklYKTsKKyAKKyAgICAg ICAgIGlmKHJlc3VsdCA9PSBHTE9CVVNfU1VDQ0VTUykKKy0gICAgICAgIHsgCisrICAgICAgICB7 CisgICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ19jcmVhdGVfa2V5 X3N0cmluZygKKyAgICAgICAgICAgICAgICAgaG9zdF9rZXksCisgICAgICAgICAgICAgICAgICYg ZGVmYXVsdF9ob3N0X2tleSwKK0BAIC0yMDUwLDcgKzIwNTAsNyBAQCBnbG9idXNfZ3NpX3N5c2Nv bmZpZ19nZXRfaG9zdF9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAorICAgICB9CisgCisgICAgIC8qIG5v dyBjaGVjayBpbnN0YWxsZWQgbG9jYXRpb24gZm9yIGhvc3QgY2VydCAqLworLSAgICBpZighKCpo b3N0X2NlcnQpICYmICEoKmhvc3Rfa2V5KSkgCisrICAgIGlmKCEoKmhvc3RfY2VydCkgJiYgISgq aG9zdF9rZXkpKQorICAgICB7CisgICAgICAgICByZXN1bHQgPSBnbG9idXNfbG9jYXRpb24oJmxv Y2F0aW9uKTsKKyAKK0BAIC0yMDY4LDcgKzIwNjgsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19n ZXRfaG9zdF9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAorICAgICAgICAgICAgICAgICBYNTA5X0NFUlRf U1VGRklYKTsKKyAKKyAgICAgICAgICAgICBpZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCist ICAgICAgICAgICAgeyAKKysgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHJlc3VsdCA9 IGdsb2J1c19pX2dzaV9zeXNjb25maWdfY3JlYXRlX2tleV9zdHJpbmcoCisgICAgICAgICAgICAg ICAgICAgICBob3N0X2tleSwKKyAgICAgICAgICAgICAgICAgICAgICZpbnN0YWxsZWRfaG9zdF9r ZXksCitAQCAtMjA5OCw3ICsyMDk4LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2hvc3Rf Y2VydF9maWxlbmFtZV93aW4zMigKKyAgICAgICAgIH0KKyAgICAgfQorIAorLSAgICBpZighKCpo b3N0X2NlcnQpICYmICEoKmhvc3Rfa2V5KSkgCisrICAgIGlmKCEoKmhvc3RfY2VydCkgJiYgISgq aG9zdF9rZXkpKQorICAgICB7CisgICAgICAgICByZXN1bHQgPSBHTE9CVVNfR1NJX1NZU0NPTkZJ R19HRVRfSE9NRV9ESVIoJmhvbWUpOworIAorQEAgLTIxMTYsNyArMjExNiw3IEBAIGdsb2J1c19n c2lfc3lzY29uZmlnX2dldF9ob3N0X2NlcnRfZmlsZW5hbWVfd2luMzIoCisgICAgICAgICAgICAg ICAgIFg1MDlfQ0VSVF9TVUZGSVgpOworIAorICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSBHTE9C VVNfU1VDQ0VTUykKKy0gICAgICAgICAgICB7IAorKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgcmVzdWx0ID0gZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ19jcmVhdGVfa2V5X3N0cmluZygK KyAgICAgICAgICAgICAgICAgICAgIGhvc3Rfa2V5LAorICAgICAgICAgICAgICAgICAgICAgJiBs b2NhbF9ob3N0X2tleSwKK0BAIC0yMTk5LDcgKzIxOTksNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZp Z19nZXRfaG9zdF9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAorICAqIEBpbmdyb3VwIGdsb2J1c19nc2lf c3lzY29uZmlnX3dpbjMyCisgICogQGRldGFpbHMKKyAgKiBHZXQgdGhlIFNlcnZpY2UgQ2VydGlm aWNhdGUgRmlsZW5hbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdXNlcidzCistICogZW52aXJvbm1l bnQuICBUaGUgaG9zdCBjZXJ0IGFuZCBrZXkgYXJlIHNlYXJjaGVkIGZvciBpbiB0aGUgZm9sbG93 aW5nIAorKyAqIGVudmlyb25tZW50LiAgVGhlIGhvc3QgY2VydCBhbmQga2V5IGFyZSBzZWFyY2hl ZCBmb3IgaW4gdGhlIGZvbGxvd2luZworICAqIGxvY2F0aW9ucyAoaW4gb3JkZXIpOgorICAqCisg ICogPG9sPgorQEAgLTIyMDcsMTEgKzIyMDcsMTEgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0 X2hvc3RfY2VydF9maWxlbmFtZV93aW4zMigKKyAgKiA8bGk+cmVnaXN0cnkga2V5cyB4NTA5X3Vz ZXJfY2VydCBhbmQgeDUwOV91c2VyX2tleSBpbiBzb2Z0d2FyZVxcR2xvYnVzXFxHU0kKKyAgKiA8 bGk+R0xPQlVTX0xPQ0FUSU9OXFxldGNcXHtzZXJ2aWNlX25hbWV9XFx7c2VydmljZV9uYW1lfVtj ZXJ0fGtleV0ucGVtCisgICogICAgIFNvIGZvciBleGFtcGxlLCBpZiBteSBzZXJ2aWNlIHdhcyBu YW1lZDogbXlzZXJ2aWNlLCB0aGUgbG9jYXRpb24KKy0gKiAgICAgb2YgdGhlIGNlcnRpZmljYXRl IHdvdWxkIGJlOiAKKysgKiAgICAgb2YgdGhlIGNlcnRpZmljYXRlIHdvdWxkIGJlOgorICAqICAg ICA8Yj4mbHQ7R0xPQlVTX0xPQ0FUSU9OJmd0O1xcZXRjXFxteXNlcnZpY2VcXG15c2VydmljZWNl cnQucGVtPC9iPgorICAqIDxsaT48Yj4mbHQ7dXNlcnMgaG9tZSZndDtcXDwvYj48Yj4uZ2xvYnVz XFx7c2VydmljZV9uYW1lfVxce3NlcnZpY2VfbmFtZX1bY2VydHxrZXldLnBlbTwvYj4KKyAgKiA8 L29sPgorLSAqIAorKyAqCisgICogQHBhcmFtIHNlcnZpY2VfbmFtZQorICAqICAgICAgICBUaGUg bmFtZSBvZiB0aGUgc2VydmljZSB3aGljaCBhbGxvd3MgdXMgdG8gZGV0ZXJtaW5lIHRoZQorICAq ICAgICAgICBsb2NhdGlvbnMgb2YgY2VydCBhbmQga2V5IGZpbGVzIHRvIGxvb2sgZm9yCitAQCAt MjIyMiw3ICsyMjIyLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2hvc3RfY2VydF9maWxl bmFtZV93aW4zMigKKyAgKgorICAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xPQlVTX1NVQ0NFU1Mg aWYgdGhlIHNlcnZpY2UgY2VydCBhbmQga2V5IHdlcmUgZm91bmQsIG90aGVyd2lzZQorLSAqICAg ICAgICBhbiBlcnJvciBvYmplY3QgaWRlbnRpZmllciAKKysgKiAgICAgICAgYW4gZXJyb3Igb2Jq ZWN0IGlkZW50aWZpZXIKKyAgKi8KKyBnbG9idXNfcmVzdWx0X3QKKyBnbG9idXNfZ3NpX3N5c2Nv bmZpZ19nZXRfc2VydmljZV9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAorQEAgLTIyNjcsNyArMjI2Nyw3 IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9zZXJ2aWNlX2NlcnRfZmlsZW5hbWVfd2luMzIo CisgICAgICAgICAgICAgZ2V0ZW52KFg1MDlfVVNFUl9DRVJUKSk7CisgCisgICAgICAgICBpZihy ZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCistICAgICAgICB7IAorKyAgICAgICAgeworICAgICAg ICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0NIQUlOX1JFU1VMVCgKKyAgICAgICAg ICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19F UlJPUl9HRVRUSU5HX0NFUlRfU1RSSU5HKTsKK0BAIC0yMzA4LDcgKzIzMDgsNyBAQCBnbG9idXNf Z3NpX3N5c2NvbmZpZ19nZXRfc2VydmljZV9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAorICAgICAgICAg ICAgICAgICBYNTA5X0NFUlRfU1VGRklYKTsKKyAKKyAgICAgICAgICAgICBpZihyZXN1bHQgPT0g R0xPQlVTX1NVQ0NFU1MpCistICAgICAgICAgICAgeyAKKysgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pX2dzaV9zeXNjb25maWdfY3JlYXRlX2tleV9zdHJp bmcoCisgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2tleSwKKyAgICAgICAgICAgICAgICAg ICAgICYgZGVmYXVsdF9zZXJ2aWNlX2tleSwKK0BAIC0yMzM0LDcgKzIzMzQsNyBAQCBnbG9idXNf Z3NpX3N5c2NvbmZpZ19nZXRfc2VydmljZV9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAorICAgICAgICAg ICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9DSEFJTl9SRVNVTFQoCisgICAgICAg ICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZ U0NPTkZJR19FUlJPUl9HRVRUSU5HX0NFUlRfU1RSSU5HKTsKKy0gICAgICAgICAgICAgICAgZ290 byBkb25lOyAgICAgICAgICAgICAgICAKKysgICAgICAgICAgICAgICAgZ290byBkb25lOworICAg ICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UgaWYoIUdMT0JVU19HU0lfU1lT Q09ORklHX0ZJTEVfRE9FU19OT1RfRVhJU1QocmVzdWx0KSkKK0BAIC0yMzY4LDcgKzIzNjgsNyBA QCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfc2VydmljZV9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAor ICAgICAgICAgICAgICAgICBYNTA5X0NFUlRfU1VGRklYKTsKKyAKKyAgICAgICAgICAgICBpZihy ZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistICAgICAgICAgICAgeyAKKysgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pX2dzaV9zeXNjb25maWdfY3JlYXRl X2tleV9zdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2tleSwKKyAgICAgICAg ICAgICAgICAgICAgICZpbnN0YWxsZWRfc2VydmljZV9rZXksCitAQCAtMjQyNCw3ICsyNDI0LDcg QEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3NlcnZpY2VfY2VydF9maWxlbmFtZV93aW4zMigK KyAgICAgICAgICAgICAgICAgWDUwOV9DRVJUX1NVRkZJWCk7CisgCisgICAgICAgICAgICAgaWYo cmVzdWx0ID09IEdMT0JVU19TVUNDRVNTKQorLSAgICAgICAgICAgIHsgCisrICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfaV9nc2lfc3lzY29uZmlnX2NyZWF0 ZV9rZXlfc3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgc2VydmljZV9rZXksCisgICAgICAg ICAgICAgICAgICAgICAmbG9jYWxfc2VydmljZV9rZXksCitAQCAtMjQ2MCw3ICsyNDYwLDcgQEAg Z2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3NlcnZpY2VfY2VydF9maWxlbmFtZV93aW4zMigKKyAg ICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NP TkZJR19FUlJPUl9HRVRUSU5HX0NFUlRfU1RSSU5HKTsKKyAgICAgICAgICAgICBob21lID0gTlVM TDsKKy0gICAgICAgICAgICBnb3RvIGRvbmU7ICAgICAgICAgICAgCisrICAgICAgICAgICAgZ290 byBkb25lOworICAgICAgICAgfQorICAgICB9CisgCitAQCAtMjUxNiwyOSArMjUxNiwyOSBAQCBn bG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfc2VydmljZV9jZXJ0X2ZpbGVuYW1lX3dpbjMyKAorICAq IEBkZXRhaWxzCisgICogR2V0IHRoZSBwcm94eSBjZXJ0IGZpbGVuYW1lIGJhc2VkIG9uIHRoZSBm b2xsb3dpbmcKKyAgKiBzZWFyY2ggb3JkZXI6CistICogCisrICoKKyAgKiA8b2w+CisgICogPGxp PiBYNTA5X1VTRVJfUFJPWFkgZW52aXJvbm1lbnQgdmFyaWFibGUgLSBUaGlzIGVudmlyb25tZW50 IHZhcmlhYmxlCisgICogaXMgc2V0IGJ5IHRoZSBhdCBydW4gdGltZSBmb3IgdGhlIHNwZWNpZmlj IGFwcGxpY2F0aW9uLiAgSWYKKyAgKiB0aGUgcHJveHlfZmlsZV90eXBlIHZhcmlhYmxlIGlzIHNl dCB0byBHTE9CVVNfUFJPWFlfT1VUUFVUCistICogIChhIHByb3h5IGZpbGVuYW1lIGZvciB3cml0 aW5nIGlzIHJlcXVlc3RlZCksIAorLSAqIGFuZCB0aGUgWDUwOV9VU0VSX1BST1hZIGlzIHNldCwg dGhpcyB3aWxsIGJlIHRoZSAKKysgKiAgKGEgcHJveHkgZmlsZW5hbWUgZm9yIHdyaXRpbmcgaXMg cmVxdWVzdGVkKSwKKysgKiBhbmQgdGhlIFg1MDlfVVNFUl9QUk9YWSBpcyBzZXQsIHRoaXMgd2ls bCBiZSB0aGUKKyAgKiByZXN1bHRpbmcgdmFsdWUgb2YgdGhlIHVzZXJfcHJveHkgZmlsZW5hbWUg c3RyaW5nIHBhc3NlZCBpbi4gIElmIHRoZQorLSAqIHByb3h5X2ZpbGVfdHlwZSBpcyBzZXQgdG8g R0xPQlVTX1BST1hZX0lOUFVUIGFuZCBYNTA5X1VTRVJfUFJPWFkgaXMgCistICogc2V0LCBidXQg dGhlIGZpbGUgaXQgcG9pbnRzIHRvIGRvZXMgbm90IGV4aXN0LCAKKy0gKiBvciBoYXMgc29tZSBv dGhlciByZWFkYWJpbGl0eSBpc3N1ZXMsIHRoZSAKKysgKiBwcm94eV9maWxlX3R5cGUgaXMgc2V0 IHRvIEdMT0JVU19QUk9YWV9JTlBVVCBhbmQgWDUwOV9VU0VSX1BST1hZIGlzCisrICogc2V0LCBi dXQgdGhlIGZpbGUgaXQgcG9pbnRzIHRvIGRvZXMgbm90IGV4aXN0LAorKyAqIG9yIGhhcyBzb21l IG90aGVyIHJlYWRhYmlsaXR5IGlzc3VlcywgdGhlCisgICogZnVuY3Rpb24gd2lsbCBjb250aW51 ZSBjaGVja2luZyB1c2luZyB0aGUgb3RoZXIgbWV0aG9kcyBhdmFpbGFibGUuCistICogCisrICoK KyAgKiA8bGk+IGNoZWNrIHRoZSByZWdpc3RyeSBrZXk6IHg1MDlfdXNlcl9wcm94eS4gIEp1c3Qg YXMgd2l0aAorICAqIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaWYgdGhlIHJlZ2lzdHJ5IGtl eSBpcyBzZXQsIGFuZCBwcm94eV9maWxlX3R5cGUKKy0gKiBpcyBHTE9CVVNfUFJPWFlfT1VUUFVU LCB0aGUgc3RyaW5nIHNldCB0byBiZSB0aGUgcHJveHkgCisrICogaXMgR0xPQlVTX1BST1hZX09V VFBVVCwgdGhlIHN0cmluZyBzZXQgdG8gYmUgdGhlIHByb3h5CisgICogZmlsZW5hbWUgd2lsbCBi ZSB0aGlzIHJlZ2lzdHJ5CistICoga2V5J3MgdmFsdWUuICBJZiBwcm94eV9maWxlX3R5cGUgaXMg R0xPQlVTX1BST1hZX0lOUFVULCBhbmQgdGhlIAorLSAqIGZpbGUgZG9lc24ndCBleGlzdCwgdGhl IGZ1bmN0aW9uIHdpbGwgY2hlY2sgdGhlIG5leHQgbWV0aG9kIAorKyAqIGtleSdzIHZhbHVlLiAg SWYgcHJveHlfZmlsZV90eXBlIGlzIEdMT0JVU19QUk9YWV9JTlBVVCwgYW5kIHRoZQorKyAqIGZp bGUgZG9lc24ndCBleGlzdCwgdGhlIGZ1bmN0aW9uIHdpbGwgY2hlY2sgdGhlIG5leHQgbWV0aG9k CisgICogZm9yIHRoZSBwcm94eSdzIGZpbGVuYW1lLgorLSAqIAorKyAqCisgICogPGxpPiBDaGVj ayB0aGUgZGVmYXVsdCBsb2NhdGlvbiBmb3IgdGhlIHByb3h5IGZpbGUuICBUaGUgZGVmYXVsdAor LSAqIGxvY2F0aW9uIHNob3VsZCBiZSAKKysgKiBsb2NhdGlvbiBzaG91bGQgYmUKKyAgKiBzZXQg dG8gcmVzaWRlIGluIHRoZSB0ZW1wIGRpcmVjdG9yeSBvbiB0aGF0IGhvc3QsIHdpdGggdGhlIGZp bGVuYW1lCisgICogdGFraW5nIHRoZSBmb3JtYXQ6ICB4NTA5X3UmbHQ7dXNlciBpZCZndDsKKyAg KiB3aGVyZSAmbHQ7dXNlciBpZCZndDsgaXMgc29tZSB1bmlxdWUgc3RyaW5nIGZvciB0aGF0IHVz ZXIgb24gdGhlIGhvc3QKK0BAIC0yNTgwLDcgKzI1ODAsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZp Z19nZXRfcHJveHlfZmlsZW5hbWVfd2luMzIoCisgICAgICAgICAgICAgfQorICAgICAgICAgfQor ICAgICAgICAgZWxzZQorLSAgICAgICAgeyAKKysgICAgICAgIHsKKyAgICAgICAgICAgICByZXN1 bHQgPSBnbG9idXNfaV9nc2lfc3lzY29uZmlnX2NyZWF0ZV9rZXlfc3RyaW5nKAorICAgICAgICAg ICAgICAgICB1c2VyX3Byb3h5LAorICAgICAgICAgICAgICAgICAmZW52X3VzZXJfcHJveHksCitA QCAtMjY0NCw3ICsyNjQ0LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3Byb3h5X2ZpbGVu YW1lX3dpbjMyKAorIAorICAgICBpZighKCp1c2VyX3Byb3h5KSkKKyAgICAgeworLSAgICAgICAg R0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfUkVTVUxUKCAKKysgICAgICAgIEdMT0JVU19HU0lf U1lTQ09ORklHX0VSUk9SX1JFU1VMVCgKKyAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAg ICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfR0VUVElOR19QUk9YWV9GSUxFTkFNRSwKKyAg ICAgICAgICAgICAoX0dTU0woIkEgZmlsZSBsb2NhdGlvbiBmb3IlcyB0aGUgcHJveHkgY2VydCBj b3VsZCBub3QgYmUgZm91bmQgaW46IFxuIgorQEAgLTI2NzcsMTQgKzI2NzcsMTQgQEAgZ2xvYnVz X2dzaV9zeXNjb25maWdfZ2V0X3Byb3h5X2ZpbGVuYW1lX3dpbjMyKAorICAqIEBicmllZiBXaW4z MiAtIEdldCBDQSBDZXJ0IEZpbGVuYW1lcworICAqIEBpbmdyb3VwIGdsb2J1c19nc2lfc3lzY29u ZmlnX3dpbjMyCisgICogQGRldGFpbHMKKy0gKiBHZXRzIGEgbGlzdCBvZiB0cnVzdGVkIENBIGNl cnRpZmljYXRlIGZpbGVuYW1lcyBpbiAKKy0gKiBhIHRydXN0ZWQgQ0EgY2VydGlmaWNhdGUgZGly ZWN0b3J5LiAgCisrICogR2V0cyBhIGxpc3Qgb2YgdHJ1c3RlZCBDQSBjZXJ0aWZpY2F0ZSBmaWxl bmFtZXMgaW4KKysgKiBhIHRydXN0ZWQgQ0EgY2VydGlmaWNhdGUgZGlyZWN0b3J5LgorICAqCisg ICogQHBhcmFtIGNhX2NlcnRfZGlyCisgICogICAgICAgIFRoZSB0cnVzdGVkIENBIGNlcnRpZmlj YXRlIGRpcmVjdG9yeSB0byBnZXQgdGhlIGZpbGVuYW1lcyBmcm9tCisgICogQHBhcmFtIGNhX2Nl cnRfbGlzdAorICAqICAgICAgICBUaGUgcmVzdWx0aW5nIGxpc3Qgb2YgQ0EgY2VydGlmaWNhdGUg ZmlsZW5hbWVzLiAgVGhpcyBpcworLSAqICAgICAgICBhIGdsb2J1cyBsaXN0IHN0cnVjdHVyZS4g IAorKyAqICAgICAgICBhIGdsb2J1cyBsaXN0IHN0cnVjdHVyZS4KKyAgKiAgICAgICAgQHNlZSBn bG9idXNfZmlmb190CisgICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiBu byBlcnJvciBvY2N1cnJlZCwgb3RoZXJ3aXNlIGFuIGVycm9yIG9iamVjdCBJRAorQEAgLTI3MjQs NyArMjcyNCw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9jYV9jZXJ0X2ZpbGVzX3dpbjMy KAorICAgICAgICAgZ290byBleGl0OworICAgICB9CisgCistICAgIC8qIGJ1aWxkIGEgd2lsZCBj YXJkIHNlYXJjaCBzdHJpbmcgKi8gICAgCisrICAgIC8qIGJ1aWxkIGEgd2lsZCBjYXJkIHNlYXJj aCBzdHJpbmcgKi8KKyAgICAgc3ByaW50ZihmaWxlX3NlYXJjaF9zdHJpbmcsIiVzXFwqLioiLGNh X2NlcnRfZGlyKTsKKyAKKyAgICAgLyogc2VhcmNoIHRoZSBkaXJlY3RvcnkgZm9yIHRoZSBmaXJz dCBmaWxlICovCitAQCAtMjc0OCwxNCArMjc0OCwxNCBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19n ZXRfY2FfY2VydF9maWxlc193aW4zMigKKyAgICAgeworICAgICAgICAgZmlsZV9sZW5ndGggPSBz dHJsZW4oZmlsZV9kYXRhLmNGaWxlTmFtZSk7CisgICAgICAgICAvKiBjaGVjayB0aGUgZm9sbG93 aW5nOgorLSAgICAgICAgICogCisrICAgICAgICAgKgorICAgICAgICAgICogLSBmaWxlIGxlbmd0 aCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMTAKKyAgICAgICAgICAqIC0gZmlyc3QgOCBj aGFyYWN0ZXJzIGFyZSBhbHBoYS1udW1lcmljCisgICAgICAgICAgKiAtIDl0aCBjaGFyYWN0ZXIg aXMgJy4nCisgICAgICAgICAgKiAtIGNoYXJhY3RlcnMgYWZ0ZXIgdGhlICcuJyBhcmUgbnVtZXJp YworICAgICAgICAgICovCisgCistICAgICAgICBmdWxsX2ZpbGVuYW1lX3BhdGggPSAKKysgICAg ICAgIGZ1bGxfZmlsZW5hbWVfcGF0aCA9CisgICAgICAgICAgICAgZ2xvYnVzX2NvbW1vbl9jcmVh dGVfc3RyaW5nKAorICAgICAgICAgICAgICAgICAiJXMlcyVzIiwgY2FfY2VydF9kaXIsIEZJTEVf U0VQQVJBVE9SLCBmaWxlX2RhdGEuY0ZpbGVOYW1lKTsKKyAKK0BAIC0yNzc5LDkgKzI3NzksOSBA QCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2FfY2VydF9maWxlc193aW4zMigKKyAKKyAgICAg ICAgICAgICBpZihmaWxlX2xlbmd0aCA+PSAoWDUwOV9IQVNIX0xFTkdUSCArIDIpICYmCisgICAg ICAgICAgICAgICAgKCooZmlsZV9kYXRhLmNGaWxlTmFtZSArIFg1MDlfSEFTSF9MRU5HVEgpID09 ICcuJykgJiYKKy0gICAgICAgICAgICAgICAoc3Ryc3BuKGZpbGVfZGF0YS5jRmlsZU5hbWUsICIw MTIzNDU2Nzg5YWJjZGVmQUJDREVGIikgCisrICAgICAgICAgICAgICAgKHN0cnNwbihmaWxlX2Rh dGEuY0ZpbGVOYW1lLCAiMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRiIpCisgICAgICAgICAgICAgICAg ID09IFg1MDlfSEFTSF9MRU5HVEgpICYmCistICAgICAgICAgICAgICAgKHN0cnNwbigoZmlsZV9k YXRhLmNGaWxlTmFtZSArIChYNTA5X0hBU0hfTEVOR1RIICsgMSkpLCAKKysgICAgICAgICAgICAg ICAoc3Ryc3BuKChmaWxlX2RhdGEuY0ZpbGVOYW1lICsgKFg1MDlfSEFTSF9MRU5HVEggKyAxKSks CisgICAgICAgICAgICAgICAgICAgICAgICAiMDEyMzQ1Njc4OSIpID09IChmaWxlX2xlbmd0aCAt IDkpKSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGdsb2J1c19maWZvX2VucXVl dWUoY2FfY2VydF9saXN0LCAodm9pZCAqKWZ1bGxfZmlsZW5hbWVfcGF0aCk7CitAQCAtMjg0Miw3 ICsyODQyLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfcmVtb3ZlX2FsbF9vd25lZF9maWxlc193 aW4zMigKKyAKKyAgICAgR0xPQlVTX0lfR1NJX1NZU0NPTkZJR19ERUJVR19FTlRFUjsKKyAKKy0g ICAgLyogYnVpbGQgYSB3aWxkIGNhcmQgc2VhcmNoIHN0cmluZyAqLyAgICAKKysgICAgLyogYnVp bGQgYSB3aWxkIGNhcmQgc2VhcmNoIHN0cmluZyAqLworICAgICBzcHJpbnRmKHNlYXJjaF9zdHJp bmcsIiVzXFwqLioiLERFRkFVTFRfU0VDVVJFX1RNUF9ESVIpOworIAorICAgICAvKiBzZWFyY2gg dGhlIGRpcmVjdG9yeSBmb3IgdGhlIGZpcnN0IGZpbGUgKi8KK0BAIC0yODY0LDcgKzI4NjQsNyBA QCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19yZW1vdmVfYWxsX293bmVkX2ZpbGVzX3dpbjMyKAorICAg ICAvKiBnbyB0aHJvdWdoIGFsbCB0aGUgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeSAoZmlyc3Qgb25l J3MgYWxyZWFkeSB0aGVyZSkgKi8KKyAgICAgZG8KKyAgICAgeworLSAgICAgICAgaWYoKGRlZmF1 bHRfZmlsZW5hbWUgJiYgCisrICAgICAgICBpZigoZGVmYXVsdF9maWxlbmFtZSAmJgorICAgICAg ICAgICAgICFzdHJjbXAoZmlsZV9kYXRhLmNGaWxlTmFtZSwgZGVmYXVsdF9maWxlbmFtZSkpIHx8 CisgICAgICAgICAgICAhc3RybmNtcChmaWxlX2RhdGEuY0ZpbGVOYW1lLAorICAgICAgICAgICAg ICAgICAgICAgWDUwOV9VTklRVUVfUFJPWFlfRklMRSwKK0BAIC0yODg0LDExICsyODg0LDExIEBA IGdsb2J1c19nc2lfc3lzY29uZmlnX3JlbW92ZV9hbGxfb3duZWRfZmlsZXNfd2luMzIoCisgICAg ICAgICAgICAgUkFORF9hZGQoKHZvaWQgKikgJnN0eCwgc2l6ZW9mKHN0eCksIDIpOworIAorICAg ICAgICAgICAgIGYgPSBfb3BlbihmdWxsX2ZpbGVuYW1lLCBPX1JEV1IpOworLSAgICAgICAgICAg IGlmIChmKSAKKysgICAgICAgICAgICBpZiAoZikKKyAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgIHNpemUgPSBsc2VlayhmLCAwTCwgU0VFS19FTkQpOworICAgICAgICAgICAgICAgICBs c2VlayhmLCAwTCwgU0VFS19TRVQpOworLSAgICAgICAgICAgICAgICBpZiAoc2l6ZSA+IDApIAor KyAgICAgICAgICAgICAgICBpZiAoc2l6ZSA+IDApCisgICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgIHJlYyA9IHNpemUgLyA2NDsKKyAgICAgICAgICAgICAgICAgICAgIGxl ZnQgPSBzaXplIC0gcmVjICogNjQ7CitAQCAtMjg5OCw3ICsyODk4LDcgQEAgZ2xvYnVzX2dzaV9z eXNjb25maWdfcmVtb3ZlX2FsbF9vd25lZF9maWxlc193aW4zMigKKyAgICAgICAgICAgICAgICAg ICAgICAgICByZWMtLTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgIGlmIChsZWZ0KQorLSAgICAgICAgICAgICAgICAgICAgeyAKKysgICAgICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZShmLCBtc2csIGxlZnQpOworICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CitAQCAtMzAwMCw3ICszMDAw LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2dyaWRtYXBfZmlsZW5hbWVfd2luMzIoCisg ICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0NIQUlOX1JFU1VMVCgK KyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgIEdMT0JV U19HU0lfU1lTQ09ORklHX0VSUk9SX0dFVFRJTkdfR1JJRE1BUF9GSUxFTkFNRSk7CistICAgICAg ICAgICAgICAgIGdvdG8gZXhpdDsgICAgICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIGdv dG8gZXhpdDsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0KK0BAIC0zMDMyLDcg KzMwMzIsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfZ3JpZG1hcF9maWxlbmFtZV93aW4z MigKKyAgKiBAaW5ncm91cCBnbG9idXNfZ3NpX3N5c2NvbmZpZ193aW4zMgorICAqIEBkZXRhaWxz CisgICogR2V0IHRoZSBwYXRoIGFuZCBmaWxlIG5hbWUgb2YgdGhlIGF1dGhvcml6YXRpb24gY2Fs bGJhY2sKKy0gKiBjb25maWd1cmF0aW9uIGZpbGUgCisrICogY29uZmlndXJhdGlvbiBmaWxlCisg ICoKKyAgKiBAcGFyYW0gZmlsZW5hbWUKKyAgKiAgICAgICAgQ29udGFpbnMgdGhlIGxvY2F0aW9u IG9mIHRoZSBhdXRob3JpemF0aW9uIGNhbGxiYWNrIGNvbmZpZ3VyYXRpb24KK0BAIC0zMDc2LDcg KzMwNzYsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfYXV0aHpfY29uZl9maWxlbmFtZV93 aW4zMigKKyAgICAgICAgIH0KKyAgICAgfQorICAgICBlbHNlCistICAgIHsgCisrICAgIHsKKyAg ICAgICAgIGF1dGh6X2ZpbGVuYW1lID0gZ2xvYnVzX2NvbW1vbl9jcmVhdGVfc3RyaW5nKAorICAg ICAgICAgICAgICIlcyIsCisgICAgICAgICAgICAgREVGQVVMVF9BVVRIWl9GSUxFKTsKK0BAIC0z MDk3LDcgKzMwOTcsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfYXV0aHpfY29uZl9maWxl bmFtZV93aW4zMigKKyAgICAgICAgICAgICAgICAgYXV0aHpfZmlsZW5hbWUgPSBOVUxMOworICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlCistICAgICAgICAgICAgeyAKKysgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0NIQUlO X1JFU1VMVCgKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAg ICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0dFVFRJTkdfQVVUSFpfRklMRU5BTUUpOwor QEAgLTMxMzMsNyArMzEzMyw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9hdXRoel9jb25m X2ZpbGVuYW1lX3dpbjMyKAorICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGh6X2ZpbGVuYW1l ID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGVs c2UKKy0gICAgICAgICAgICAgICAgICAgIHsgCisrICAgICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfQ0hBSU5fUkVT VUxUKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0dFVFRJTkdfQVVUSFpf RklMRU5BTUUpOworQEAgLTMyMDgsNyArMzIwOCw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dl dF9hdXRoel9jb25mX2ZpbGVuYW1lX3dpbjMyKAorICAqIEBpbmdyb3VwIGdsb2J1c19nc2lfc3lz Y29uZmlnX3dpbjMyCisgICogQGRldGFpbHMKKyAgKiBHZXQgdGhlIHBhdGggYW5kIGZpbGUgbmFt ZSBvZiB0aGUgYXV0aG9yaXphdGlvbiBjYWxsYmFjayBsaWJyYXJ5CistICogY29uZmlndXJhdGlv biBmaWxlIAorKyAqIGNvbmZpZ3VyYXRpb24gZmlsZQorICAqCisgICogQHBhcmFtIGZpbGVuYW1l CisgICogICAgICAgIENvbnRhaW5zIHRoZSBsb2NhdGlvbiBvZiB0aGUgYXV0aG9yaXphdGlvbiBj YWxsYmFjayBsaWJyYXJ5CitAQCAtMzI0MCw3ICszMjQwLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25m aWdfZ2V0X2F1dGh6X2xpYl9jb25mX2ZpbGVuYW1lX3dpbjMyKAorICAgICAgICAgICAgIGdvdG8g ZXhpdDsKKyAgICAgICAgIH0KKyAKKy0JcmVzdWx0ID0gR0xPQlVTX0dTSV9TWVNDT05GSUdfRklM RV9FWElTVFMoCisrICAgICAgICByZXN1bHQgPSBHTE9CVVNfR1NJX1NZU0NPTkZJR19GSUxFX0VY SVNUUygKKyAgICAgICAgICAgICBhdXRoel9saWJfZmlsZW5hbWUpOworIAorICAgICAgICAgaWYo cmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorQEAgLTMyNTIsMTIgKzMyNTIsMTIgQEAgZ2xvYnVz X2dzaV9zeXNjb25maWdfZ2V0X2F1dGh6X2xpYl9jb25mX2ZpbGVuYW1lX3dpbjMyKAorICAgICAg ICAgfQorICAgICB9CisgICAgIGVsc2UKKy0gICAgeyAKKysgICAgeworICAgICAgICAgYXV0aHpf bGliX2ZpbGVuYW1lID0gZ2xvYnVzX2NvbW1vbl9jcmVhdGVfc3RyaW5nKAorICAgICAgICAgICAg ICIlcyVzXyVzJXMiLAorLQkgICAgREVGQVVMVF9BVVRIWl9MSUJfRklMRV9ESVIsCistCSAgICBE RUZBVUxUX0FVVEhaX0xJQl9GSUxFX0JBU0UsCistCSAgICBmbGF2b3IsCisrICAgICAgICAgICAg REVGQVVMVF9BVVRIWl9MSUJfRklMRV9ESVIsCisrICAgICAgICAgICAgREVGQVVMVF9BVVRIWl9M SUJfRklMRV9CQVNFLAorKyAgICAgICAgICAgIGZsYXZvciwKKyAgICAgICAgICAgICBERUZBVUxU X0FVVEhaX0xJQl9GSUxFX0VYVEVOU0lPTik7CisgICAgICAgICBpZighYXV0aHpfbGliX2ZpbGVu YW1lKQorICAgICAgICAgeworQEAgLTMyNjUsNyArMzI2NSw3IEBAIGdsb2J1c19nc2lfc3lzY29u ZmlnX2dldF9hdXRoel9saWJfY29uZl9maWxlbmFtZV93aW4zMigKKyAgICAgICAgICAgICBnb3Rv IGV4aXQ7CisgICAgICAgICB9CisgCistCXJlc3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0ZJ TEVfRVhJU1RTKAorKyAgICAgICAgcmVzdWx0ID0gR0xPQlVTX0dTSV9TWVNDT05GSUdfRklMRV9F WElTVFMoCisgICAgICAgICAgICAgYXV0aHpfbGliX2ZpbGVuYW1lKTsKKyAKKyAgICAgICAgIGlm KHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKK0BAIC0zMjc2LDcgKzMyNzYsNyBAQCBnbG9idXNf Z3NpX3N5c2NvbmZpZ19nZXRfYXV0aHpfbGliX2NvbmZfZmlsZW5hbWVfd2luMzIoCisgICAgICAg ICAgICAgICAgIGF1dGh6X2xpYl9maWxlbmFtZSA9IE5VTEw7CisgICAgICAgICAgICAgfQorICAg ICAgICAgICAgIGVsc2UKKy0gICAgICAgICAgICB7IAorKyAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfQ0hBSU5fUkVTVUxUKAorICAgICAg ICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9T WVNDT05GSUdfRVJST1JfR0VUVElOR19BVVRIWl9MSUJfRklMRU5BTUUpOworQEAgLTMyOTQsMTcg KzMyOTQsMTcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2F1dGh6X2xpYl9jb25mX2ZpbGVu YW1lX3dpbjMyKAorICAgICAgICAgICAgICAgICAgICAgIiVzJXMlcyVzXyVzJXMiLAorICAgICAg ICAgICAgICAgICAgICAgbG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICBGSUxFX1NFUEFS QVRPUiwKKy0JCSAgICBJTlNUQUxMRURfQVVUSFpfTElCX0RJUiwKKy0JCSAgICBERUZBVUxUX0FV VEhaX0xJQl9GSUxFX0JBU0UsCistCQkgICAgZmxhdm9yLAorLQkJICAgIERFRkFVTFRfQVVUSFpf TElCX0ZJTEVfRVhURU5TSU9OKTsKKysgICAgICAgICAgICAgICAgICAgIElOU1RBTExFRF9BVVRI Wl9MSUJfRElSLAorKyAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9BVVRIWl9MSUJfRklMRV9C QVNFLAorKyAgICAgICAgICAgICAgICAgICAgZmxhdm9yLAorKyAgICAgICAgICAgICAgICAgICAg REVGQVVMVF9BVVRIWl9MSUJfRklMRV9FWFRFTlNJT04pOworICAgICAgICAgICAgICAgICBpZigh YXV0aHpfbGliX2ZpbGVuYW1lKQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg ICAgICBHTE9CVVNfR1NJX1NZU1RFTV9DT05GSUdfTUFMTE9DX0VSUk9SOworICAgICAgICAgICAg ICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgICB9CisgCistCQlyZXN1bHQgPSBH TE9CVVNfR1NJX1NZU0NPTkZJR19GSUxFX0VYSVNUUygKKysgICAgICAgICAgICAgICAgcmVzdWx0 ID0gR0xPQlVTX0dTSV9TWVNDT05GSUdfRklMRV9FWElTVFMoCisgICAgICAgICAgICAgICAgICAg ICBhdXRoel9saWJfZmlsZW5hbWUpOworIAorICAgICAgICAgICAgICAgICBpZihyZXN1bHQgIT0g R0xPQlVTX1NVQ0NFU1MpCitAQCAtMzMxNSw3ICszMzE1LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25m aWdfZ2V0X2F1dGh6X2xpYl9jb25mX2ZpbGVuYW1lX3dpbjMyKAorICAgICAgICAgICAgICAgICAg ICAgICAgIGF1dGh6X2xpYl9maWxlbmFtZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgICAgICBlbHNlCistICAgICAgICAgICAgICAgICAgICB7IAorKyAg ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lf U1lTQ09ORklHX0VSUk9SX0NIQUlOX1JFU1VMVCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NP TkZJR19FUlJPUl9HRVRUSU5HX0FVVEhaX0xJQl9GSUxFTkFNRSk7CitAQCAtMzMzNiw4ICszMzM2 LDggQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2F1dGh6X2xpYl9jb25mX2ZpbGVuYW1lX3dp bjMyKAorICAgICAgICAgICAgICAgICAgICAgaG9tZV9kaXIsCisgICAgICAgICAgICAgICAgICAg ICBGSUxFX1NFUEFSQVRPUiwKKyAgICAgICAgICAgICAgICAgICAgIEhPTUVfQVVUSFpfTElCX0ZJ TEVfQkFTRSwKKy0JCSAgICBmbGF2b3IsCistCQkgICAgREVGQVVMVF9BVVRIWl9MSUJfRklMRV9F WFRFTlNJT04pOworKyAgICAgICAgICAgICAgICAgICAgZmxhdm9yLAorKyAgICAgICAgICAgICAg ICAgICAgREVGQVVMVF9BVVRIWl9MSUJfRklMRV9FWFRFTlNJT04pOworICAgICAgICAgICAgICAg ICBpZighYXV0aHpfbGliX2ZpbGVuYW1lKQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICBHTE9CVVNfR1NJX1NZU1RFTV9DT05GSUdfTUFMTE9DX0VSUk9SOworQEAgLTM0 MzYsNyArMzQzNiw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9nYWFfY29uZl9maWxlbmFt ZV93aW4zMigKKyAgICAgICAgIH0KKyAgICAgfQorICAgICBlbHNlCistICAgIHsgCisrICAgIHsK KyAgICAgICAgIGdhYV9maWxlbmFtZSA9IGdsb2J1c19jb21tb25fY3JlYXRlX3N0cmluZygKKyAg ICAgICAgICAgICAiJXMiLAorICAgICAgICAgICAgIERFRkFVTFRfR0FBX0ZJTEUpOworQEAgLTM0 NTcsNyArMzQ1Nyw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9nYWFfY29uZl9maWxlbmFt ZV93aW4zMigKKyAgICAgICAgICAgICAgICAgZ2FhX2ZpbGVuYW1lID0gTlVMTDsKKyAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgZWxzZQorLSAgICAgICAgICAgIHsgCisrICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9DSEFJTl9SRVNV TFQoCisgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICBH TE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0dBQV9GSUxFTkFNRSk7CitAQCAtMzQ5 Myw3ICszNDkzLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2dhYV9jb25mX2ZpbGVuYW1l X3dpbjMyKAorICAgICAgICAgICAgICAgICAgICAgICAgIGdhYV9maWxlbmFtZSA9IE5VTEw7Cisg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNlCistICAgICAg ICAgICAgICAgICAgICB7IAorKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0NIQUlOX1JFU1VMVCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0dBQV9GSUxFTkFNRSk7CitA QCAtMzU3Niw3ICszNTc2LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2dhYV9jb25mX2Zp bGVuYW1lX3dpbjMyKAorICAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xPQlVTX1NVQ0NFU1MgaWYg bm8gZXJyb3Igb2NjdXJyZWQsIG90aGVyd2lzZSBhbiBlcnJvciBvYmplY3QgSUQKKyAgKiAgICAg ICAgaXMgcmV0dXJuZWQKKy0gKi8gCisrICovCisgZ2xvYnVzX3Jlc3VsdF90CisgZ2xvYnVzX2dz aV9zeXNjb25maWdfaXNfc3VwZXJ1c2VyX3dpbjMyKAorICAgICBpbnQgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpc19zdXBlcnVzZXIpCitAQCAtMzYwOSw3ICszNjA5LDcgQEAgZ2xv YnVzX2dzaV9zeXNjb25maWdfaXNfc3VwZXJ1c2VyX3dpbjMyKAorICAqCisgICogQHBhcmFtIHNp Z25pbmdfcG9saWN5X2ZpbGVuYW1lCisgICogICAgICAgIFRoZSByZXN1bHRpbmcgc2luZ2luZ19w b2xpY3kgZmlsZW5hbWUKKy0gKiBAcmV0dXJuIAorKyAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xP QlVTX1NVQ0NFU1MgaWYgbm8gZXJyb3Igb2NjdXJyZWQsIG90aGVyd2lzZSBhbiBlcnJvciBvYmpl Y3QgSUQKKyAgKi8KKyBnbG9idXNfcmVzdWx0X3QKK0BAIC0zNjU1LDcgKzM2NTUsNyBAQCBnbG9i dXNfZ3NpX3N5c2NvbmZpZ19nZXRfc2lnbmluZ19wb2xpY3lfZmlsZW5hbWVfd2luMzIoCisgICAg IGhhc2ggPSBYNTA5X05BTUVfaGFzaChjYV9uYW1lKTsKKyAKKyAgICAgc2lnbmluZ19wb2xpY3kg PSBnbG9idXNfY29tbW9uX2NyZWF0ZV9zdHJpbmcoCistICAgICAgICAiJXMlcyUwOGx4JXMiLCAK KysgICAgICAgICIlcyVzJTA4bHglcyIsCisgICAgICAgICBjYV9jZXJ0X2RpciwgRklMRV9TRVBB UkFUT1IsIGhhc2gsIFNJR05JTkdfUE9MSUNZX0ZJTEVfRVhURU5TSU9OKTsKKyAKKyAgICAgaWYo c2lnbmluZ19wb2xpY3kgPT0gTlVMTCkKK0BAIC0zNzE4LDcgKzM3MTgsNyBAQCBnbG9idXNfZ3Np X3N5c2NvbmZpZ19zZXRfa2V5X3Blcm1pc3Npb25zX3VuaXgoCisgICAgIGNoYXIgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lKQorIHsKKyAgICAgZ2xvYnVzX3Jlc3VsdF90 ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gR0xPQlVTX1NVQ0NFU1M7CistICAgIGludAkJ CQkJZmQgPSAtMTsKKysgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQg PSAtMTsKKyAgICAgbW9kZV90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkbWFzazsK KyAgICAgc3RydWN0IHN0YXQgICAgICAgICAgICAgICAgICAgICAgICAgc3R4LCBzdHgyOworIAor QEAgLTM3MjYsNyArMzcyNiw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX3NldF9rZXlfcGVybWlz c2lvbnNfdW5peCgKKyAKKyAgICAgb2xkbWFzayA9IGdsb2J1c19saWJjX3VtYXNrKDAwNzcpOwor ICAgICBpZigoZmQgPSBnbG9idXNfbGliY19vcGVuKAorLQkJICAgIGZpbGVuYW1lLCBPX1JET05M WXxPX0NSRUFUfE9fRVhDTCwgU19JUlVTUnxTX0lXVVNSKSkgPCAwKQorKyAgICAgICAgICAgICAg ICAgICAgZmlsZW5hbWUsIE9fUkRPTkxZfE9fQ1JFQVR8T19FWENMLCBTX0lSVVNSfFNfSVdVU1Ip KSA8IDApCisgICAgIHsKKyAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19lcnJvcl9wdXQoCisgICAg ICAgICAgICAgZ2xvYnVzX2Vycm9yX3dyYXBfZXJybm9fZXJyb3IoCitAQCAtMzc1NSw4ICszNzU1 LDggQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfc2V0X2tleV9wZXJtaXNzaW9uc191bml4KAorICAg ICB9CisgCisgICAgIC8qCistICAgICAqIHVzZSBhbnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRh dGEsIGFzIGl0IHdpbGwgCistICAgICAqIGhhdmUgZmlsZSBzaXplcywgYW5kIGxhc3QgdXNlIHRp bWVzIGluIGl0LiAKKysgICAgICogdXNlIGFueSBzdGF0IG91dHB1dCBhcyByYW5kb20gZGF0YSwg YXMgaXQgd2lsbAorKyAgICAgKiBoYXZlIGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVzZSB0aW1lcyBp biBpdC4KKyAgICAgICovCisgICAgIFJBTkRfYWRkKCh2b2lkKikmc3R4LCBzaXplb2Yoc3R4KSwg Mik7CisgCitAQCAtMzgwMyw3ICszODAzLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfc2V0X2tl eV9wZXJtaXNzaW9uc191bml4KAorICAgICAgICAgICAgICAgICBfX0ZJTEVfXywKKyAgICAgICAg ICAgICAgICAgX19mdW5jX18sCisgICAgICAgICAgICAgICAgIF9fTElORV9fLAorLSAgICAgICAg ICAgICAgICAiRXJyb3Igc2V0dGluZyBwZXJtaXNzaW9ucyB0byB1c2VyIHJlYWQgb25seSBvZiBm aWxlOiAlc1xuIiwgCisrICAgICAgICAgICAgICAgICJFcnJvciBzZXR0aW5nIHBlcm1pc3Npb25z IHRvIHVzZXIgcmVhZCBvbmx5IG9mIGZpbGU6ICVzXG4iLAorICAgICAgICAgICAgICAgICBmaWxl bmFtZSkpOworICAgICAgICAgZ290byBleGl0OworICAgICB9CitAQCAtMzgxMSw3ICszODExLDcg QEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfc2V0X2tleV9wZXJtaXNzaW9uc191bml4KAorICBleGl0 OgorICAgICBpZiAoZmQgPj0gMCkKKyAgICAgeworLQljbG9zZShmZCk7CisrICAgICAgICBjbG9z ZShmZCk7CisgICAgIH0KKyAgICAgZ2xvYnVzX2xpYmNfdW1hc2sob2xkbWFzayk7CisgICAgIEdM T0JVU19JX0dTSV9TWVNDT05GSUdfREVCVUdfRVhJVDsKK0BAIC0zODIzLDcgKzM4MjMsNyBAQCBn bG9idXNfZ3NpX3N5c2NvbmZpZ19zZXRfa2V5X3Blcm1pc3Npb25zX3VuaXgoCisgICogQGluZ3Jv dXAgZ2xvYnVzX2dzaV9zeXNjb25maWdfdW5peAorICAqIEBkZXRhaWxzCisgICogR2V0IGEgdW5p cXVlIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgdXNlci4gIFRoaXMgaXMganVzdAor LSAqIHRoZSB1aWQgY29udmVydGVkIHRvIGEgc3RyaW5nLiAgCisrICogdGhlIHVpZCBjb252ZXJ0 ZWQgdG8gYSBzdHJpbmcuCisgICoKKyAgKiBAcGFyYW0gdXNlcl9pZF9zdHJpbmcKKyAgKiAgICAg ICAgQSB1bmlxdWUgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdXNlcgorQEAgLTM5NTAsNyArMzk1 MCw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF91c2VybmFtZV91bml4KAorICAgICAgICAg Z290byBleGl0OworICAgICB9CisgCistICAgIHN0cm5jcHkoKnVzZXJuYW1lLCBwd2RfcmVzdWx0 LT5wd19uYW1lLCAKKysgICAgc3RybmNweSgqdXNlcm5hbWUsIHB3ZF9yZXN1bHQtPnB3X25hbWUs CisgICAgICAgICAgICAgc3RybGVuKHB3ZF9yZXN1bHQtPnB3X25hbWUpICsgMSk7CisgCisgIGV4 aXQ6CitAQCAtMzk2OSw3ICszOTY5LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3VzZXJu YW1lX3VuaXgoCisgICogQGluZ3JvdXAgZ2xvYnVzX2dzaV9zeXNjb25maWdfdW5peAorICAqIEBk ZXRhaWxzCisgICogR2V0IGEgdW5pcXVlIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQg cHJvY2Vzcy4gIFRoaXMgaXMganVzdAorLSAqIHRoZSBwaWQgY29udmVydGVkIHRvIGEgc3RyaW5n LiAgCisrICogdGhlIHBpZCBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcuCisgICoKKyAgKiBAcGFyYW0g cHJvY19pZF9zdHJpbmcKKyAgKiAgICAgICAgQSB1bmlxdWUgc3RyaW5nIHJlcHJlc2VudGluZyB0 aGUgcHJvY2VzcworQEAgLTQwMTcsOSArNDAxNyw5IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dl dF9wcm9jX2lkX3N0cmluZ191bml4KAorICAqIG9uIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0 b3J5LgorICAqCisgICogQHBhcmFtIGZpbGVuYW1lCistICogICAgICAgIHRoZSBmaWxlbmFtZSB0 byBnZXQgdGhlIGFic29sdXRlIHBhdGggb2YuICAKKysgKiAgICAgICAgdGhlIGZpbGVuYW1lIHRv IGdldCB0aGUgYWJzb2x1dGUgcGF0aCBvZi4KKyAgKiBAcGFyYW0gYWJzb2x1dGVfcGF0aAorLSAq ICAgICAgICBUaGUgcmVzdWx0aW5nIGFic29sdXRlIHBhdGguICBUaGlzIG5lZWRzIHRvIAorKyAq ICAgICAgICBUaGUgcmVzdWx0aW5nIGFic29sdXRlIHBhdGguICBUaGlzIG5lZWRzIHRvCisgICog ICAgICAgIGJlIGZyZWVkIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZC4KKyAgKiBAcmV0dXJuCisgICog ICAgICAgIEdMT0JVU19TVUNDRVNTIGlmIG5vIGVycm9yIG9jY3VycmVkLCBvdGhlcndpc2UKK0BA IC00MDkzLDEzICs0MDkzLDEzIEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX21ha2VfYWJzb2x1dGVf cGF0aF9mb3JfZmlsZW5hbWVfdW5peCgKKyAgKiAgICAgICAgVGhlIGZpbGVuYW1lIHRvIHNwbGl0 LiAgU3BsaXRzIG9uIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgJy8nCisgICogICAgICAgIHdoZXJl IHRoZSBkaXJlY3RvcnkgaXMgZXZlcnl0aGluZyBiZWZvcmUgdGhlIGxhc3QgJy8nLCBhbmQKKyAg KiAgICAgICAgdGhlIGZpbGVuYW1lIGlzIGV2ZXJ5dGhpbmcgYWZ0ZXIuCistICogQHBhcmFtIGRp cl9zdHJpbmcgIAorKyAqIEBwYXJhbSBkaXJfc3RyaW5nCisgICogICAgICAgIFRoZSBkaXJlY3Rv cnkgcG9ydGlvbiBvZiB0aGUgZmlsZW5hbWUgc3RyaW5nLiAgSWYgbm8gJy8nIGlzIGZvdW5kCisg ICogICAgICAgIHRocm91Z2hvdXQgdGhlIHN0cmluZywgdGhpcyB2YXJpYWJsZSBwb2ludHMgdG8g TlVMTC4KKyAgKiAgICAgICAgVGhpcyBuZWVkcyB0byBiZSBmcmVlZCB3aGVuIG5vIGxvbmdlciBu ZWVkZWQuCisgICogQHBhcmFtIGZpbGVuYW1lX3N0cmluZworICAqICAgICAgICBUaGUgZmlsZW5h bWUgcG9ydGlvbiBvZiB0aGUgZmlsZW5hbWUgc3RyaW5nLiAgSWYgbm8gJy8nIGlzIGZvdW5kCist ICogICAgICAgIHRocm91Z2hvdXQsIHRoaXMgdmFyaWFibGUgaXMgYSBkdXBsaWNhdGUgb2YgdGhl IGZ1bGxfZmlsZW5hbWUgCisrICogICAgICAgIHRocm91Z2hvdXQsIHRoaXMgdmFyaWFibGUgaXMg YSBkdXBsaWNhdGUgb2YgdGhlIGZ1bGxfZmlsZW5hbWUKKyAgKiAgICAgICAgcGFyYW1ldGVyLiAg VGhpcyBuZWVkcyB0byBiZSBmcmVlZCB3aGVuIG5vIGxvbmdlciBuZWVkZWQuCisgICoKKyAgKiBA cmV0dXJuCitAQCAtNDEzNCw4ICs0MTM0LDggQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfc3BsaXRf ZGlyX2FuZF9maWxlbmFtZV91bml4KAorICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAg IH0KKyAKKy0gICAgICAgIGdsb2J1c19saWJjX3NucHJpbnRmKCpmaWxlbmFtZV9zdHJpbmcsIGZp bGVuYW1lX3N0cmluZ19sZW5ndGgsIAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVz IiwgZnVsbF9maWxlbmFtZSk7IAorKyAgICAgICAgZ2xvYnVzX2xpYmNfc25wcmludGYoKmZpbGVu YW1lX3N0cmluZywgZmlsZW5hbWVfc3RyaW5nX2xlbmd0aCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIlcyIsIGZ1bGxfZmlsZW5hbWUpOworICAgICB9CisgICAgIGVsc2UKKyAgICAg eworQEAgLTQxODEsNyArNDE4MSw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX3NwbGl0X2Rpcl9h bmRfZmlsZW5hbWVfdW5peCgKKyAgKiBAYnJpZWYgVU5JWCAtIEdldCBDdXJyZW50IFdvcmtpbmcg RGlyZWN0b3J5CisgICogQGluZ3JvdXAgZ2xvYnVzX2dzaV9zeXNjb25maWdfdW5peAorICAqIEBk ZXRhaWxzCistICogR2V0IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IG9uIHRoZSBzeXN0 ZW0uICAKKysgKiBHZXQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkgb24gdGhlIHN5c3Rl bS4KKyAgKgorICAqIEBwYXJhbSB3b3JraW5nX2RpcgorICAqICAgICAgICBUaGUgY3VycmVudCB3 b3JraW5nIGRpcmVjdG9yeQorQEAgLTQyMjMsNyArNDIyMyw3IEBAIGdsb2J1c19nc2lfc3lzY29u ZmlnX2dldF9jdXJyZW50X3dvcmtpbmdfZGlyX3VuaXgoCisgICAgICAgICB9CisgICAgICAgICBl bHNlIGlmKCFyZXN1bHRfYnVmZmVyKQorICAgICAgICAgeworLSAgICAgICAgICAgIHJlc3VsdCA9 IAorKyAgICAgICAgICAgIHJlc3VsdCA9CisgICAgICAgICAgICAgICAgIGdsb2J1c19lcnJvcl9w dXQoZ2xvYnVzX2Vycm9yX3dyYXBfZXJybm9fZXJyb3IoCisgICAgICAgICAgICAgICAgICAgICBH TE9CVVNfR1NJX1NZU0NPTkZJR19NT0RVTEUsCisgICAgICAgICAgICAgICAgICAgICBlcnJubywK K0BAIC00MzE5LDcgKzQzMTksNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfaG9tZV9kaXJf dW5peCgKKyAgICAgdGVtcF9ob21lX2RpciA9IG1hbGxvYyhzdHJsZW4ocHdkX3Jlc3VsdC0+cHdf ZGlyKSArIDEpOworICAgICBpZih0ZW1wX2hvbWVfZGlyKQorICAgICB7CistICAgICAgICBzdHJu Y3B5KHRlbXBfaG9tZV9kaXIsIHB3ZF9yZXN1bHQtPnB3X2RpciwgCisrICAgICAgICBzdHJuY3B5 KHRlbXBfaG9tZV9kaXIsIHB3ZF9yZXN1bHQtPnB3X2RpciwKKyAgICAgICAgICAgICAgICAgc3Ry bGVuKHB3ZF9yZXN1bHQtPnB3X2RpcikgKyAxKTsKKyAKKyAgICAgICAgIHJlc3VsdCA9IEdMT0JV U19HU0lfU1lTQ09ORklHX0RJUl9FWElTVFModGVtcF9ob21lX2Rpcik7CitAQCAtNDM4OSw3ICs0 Mzg5LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZmlsZV9leGlzdHNfdW5peCgKKyAgICAgICAg ICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNVTFQoCisgICAgICAgICAgICAgICAg IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfRklM RV9ET0VTX05PVF9FWElTVCwKKy0gICAgICAgICAgICAgICAgKF9HU1NMKCIlcyBpcyBub3QgYSB2 YWxpZCBmaWxlIiksIGZpbGVuYW1lKSk7ICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIChf R1NTTCgiJXMgaXMgbm90IGEgdmFsaWQgZmlsZSIpLCBmaWxlbmFtZSkpOworICAgICAgICAgICAg IGdvdG8gZXhpdDsKKyAKKyAgICAgICAgICAgY2FzZSBFQUNDRVM6CitAQCAtNDM5Nyw3ICs0Mzk3 LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZmlsZV9leGlzdHNfdW5peCgKKyAgICAgICAgICAg ICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNVTFQoCisgICAgICAgICAgICAgICAgIHJl c3VsdCwKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfRklMRV9C QURfUEVSTUlTU0lPTlMsCistICAgICAgICAgICAgICAgIChfR1NTTCgiQ291bGQgbm90IHJlYWQg JXMiKSwgZmlsZW5hbWUpKTsgICAgICAgICAgICAKKysgICAgICAgICAgICAgICAgKF9HU1NMKCJD b3VsZCBub3QgcmVhZCAlcyIpLCBmaWxlbmFtZSkpOworICAgICAgICAgICAgIGdvdG8gZXhpdDsK KyAKKyAgICAgICAgICAgZGVmYXVsdDoKK0BAIC00NDE3LDggKzQ0MTcsOCBAQCBnbG9idXNfZ3Np X3N5c2NvbmZpZ19maWxlX2V4aXN0c191bml4KAorICAgICB9CisgCisgICAgIC8qCistICAgICAq IHVzZSBhbnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRhdGEsIGFzIGl0IHdpbGwgCistICAgICAq IGhhdmUgZmlsZSBzaXplcywgYW5kIGxhc3QgdXNlIHRpbWVzIGluIGl0LiAKKysgICAgICogdXNl IGFueSBzdGF0IG91dHB1dCBhcyByYW5kb20gZGF0YSwgYXMgaXQgd2lsbAorKyAgICAgKiBoYXZl IGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVzZSB0aW1lcyBpbiBpdC4KKyAgICAgICovCisgICAgIFJB TkRfYWRkKCh2b2lkKikmc3R4LHNpemVvZihzdHgpLDIpOworIAorQEAgLTQ0MjcsMTYgKzQ0Mjcs MTYgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZmlsZV9leGlzdHNfdW5peCgKKyAgICAgICAgIEdM T0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX1JFU1VMVCgKKyAgICAgICAgICAgICByZXN1bHQsCisg ICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfRklMRV9aRVJPX0xFTkdUSCwK Ky0gICAgICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiksIGZpbGVuYW1lKSk7ICAgICAgICAgICAg CisrICAgICAgICAgICAgKF9HU1NMKCJGaWxlOiAlcyIpLCBmaWxlbmFtZSkpOworICAgICAgICAg Z290byBleGl0OworICAgICB9CisgCisgICAgIGlmKHN0eC5zdF9tb2RlICYgU19JRkRJUikKKy0g ICAgeyAKKysgICAgeworICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfUkVTVUxU KAorICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJ R19FUlJPUl9GSUxFX0lTX0RJUiwKKy0gICAgICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiksIGZp bGVuYW1lKSk7ICAgICAgIAorKyAgICAgICAgICAgIChfR1NTTCgiRmlsZTogJXMiKSwgZmlsZW5h bWUpKTsKKyAgICAgfQorICAgICBlbHNlIGlmKChzdHguc3RfbW9kZSAmIFNfSUZNVCkgJgorICAg ICAgICAgICAgIH4gKFNfSUZSRUcgfCBTX0lGTE5LIHwgU19JRkRJUikpCitAQCAtNDQ1MSw3ICs0 NDUxLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZmlsZV9leGlzdHNfdW5peCgKKyAKKyAgICAg R0xPQlVTX0lfR1NJX1NZU0NPTkZJR19ERUJVR19FWElUOworICAgICByZXR1cm4gcmVzdWx0Owor LX0gICAgCisrfQorIAorIC8qKgorICAqIEBicmllZiBVTklYIC0gRGlyZWN0b3J5IEV4aXN0cwor QEAgLTQ0ODUsNyArNDQ4NSw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2Rpcl9leGlzdHNfdW5p eCgKKyAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNVTFQoCisgICAg ICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05G SUdfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwKKy0gICAgICAgICAgICAgICAgKF9HU1NMKCIl cyBpcyBub3QgYSB2YWxpZCBkaXJlY3RvcnkiKSwgZmlsZW5hbWUpKTsgICAgICAgICAgICAKKysg ICAgICAgICAgICAgICAgKF9HU1NMKCIlcyBpcyBub3QgYSB2YWxpZCBkaXJlY3RvcnkiKSwgZmls ZW5hbWUpKTsKKyAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgCisgICAgICAgICAgIGNhc2UgRUFD Q0VTOgorQEAgLTQ0OTMsNyArNDQ5Myw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2Rpcl9leGlz dHNfdW5peCgKKyAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNVTFQo CisgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9T WVNDT05GSUdfRVJST1JfRklMRV9CQURfUEVSTUlTU0lPTlMsCistICAgICAgICAgICAgICAgIChf R1NTTCgiQ291bGQgbm90IHJlYWQgJXMiKSwgZmlsZW5hbWUpKTsgICAgICAgICAgICAKKysgICAg ICAgICAgICAgICAgKF9HU1NMKCJDb3VsZCBub3QgcmVhZCAlcyIpLCBmaWxlbmFtZSkpOworICAg ICAgICAgICAgIGdvdG8gZXhpdDsKKyAKKyAgICAgICAgICAgZGVmYXVsdDoKK0BAIC00NTEzLDM5 ICs0NTEzLDM5IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2Rpcl9leGlzdHNfdW5peCgKKyAgICAg fQorIAorICAgICAvKgorLSAgICAgKiB1c2UgYW55IHN0YXQgb3V0cHV0IGFzIHJhbmRvbSBkYXRh LCBhcyBpdCB3aWxsIAorLSAgICAgKiBoYXZlIGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVzZSB0aW1l cyBpbiBpdC4gCisrICAgICAqIHVzZSBhbnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRhdGEsIGFz IGl0IHdpbGwKKysgICAgICogaGF2ZSBmaWxlIHNpemVzLCBhbmQgbGFzdCB1c2UgdGltZXMgaW4g aXQuCisgICAgICAqLworICAgICBSQU5EX2FkZCgodm9pZCopJnN0eCxzaXplb2Yoc3R4KSwyKTsK KyAKKyAgICAgaWYoIShzdHguc3RfbW9kZSAmIFNfSUZESVIpKQorLSAgICB7IAorKyAgICB7Cisg ICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNVTFQoCisgICAgICAgICAgICAg cmVzdWx0LAorICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0ZJTEVfTk9U X0RJUiwKKy0gICAgICAgICAgICAoX0dTU0woIiVzIGlzIG5vdCBhIGRpcmVjdG9yeSIpLCBmaWxl bmFtZSkpOyAgICAgICAKKysgICAgICAgICAgICAoX0dTU0woIiVzIGlzIG5vdCBhIGRpcmVjdG9y eSIpLCBmaWxlbmFtZSkpOworICAgICB9CisgCisgIGV4aXQ6CisgCisgICAgIEdMT0JVU19JX0dT SV9TWVNDT05GSUdfREVCVUdfRVhJVDsKKyAgICAgcmV0dXJuIHJlc3VsdDsKKy19ICAgIAorK30K KyAKKyAKKyAvKioKKyAgKiBAYnJpZWYgVU5JWCAtIENoZWNrIEZpbGUgU3RhdHVzIGZvciBLZXkK KyAgKiBAaW5ncm91cCBnbG9idXNfZ3NpX3N5c2NvbmZpZ191bml4CisgICogQGRldGFpbHMKKy0g KiBUaGlzIGlzIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdXNlZCB0byBjaGVjayB0aGUgc3RhdHVz IG9mIGEgCisrICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHVzZWQgdG8gY2hlY2sg dGhlIHN0YXR1cyBvZiBhCisgICogcHJpdmF0ZSBrZXkgZmlsZS4gIFRoZSBkZXNpcmVkIHN0YXR1 cyBpcyBvbmx5IHRoZSBjdXJyZW50IHVzZXIgaGFzCisgICogb3duZXJzaGlwIGFuZCByZWFkIHBl cm1pc3Npb25zLCBldmVyeW9uZSBlbHNlIHNob3VsZCBub3QgYmUgYWJsZQorICAqIHRvIGFjY2Vz cyBpdC4KKy0gKiAKKysgKgorICAqIEBwYXJhbSBmaWxlbmFtZQorICAqICAgICAgICBUaGUgbmFt ZSBvZiB0aGUgZmlsZSB0byBjaGVjayB0aGUgc3RhdHVzIG9mCisgICoKKy0gKiBAcmV0dXJuIAor KyAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xPQlVTX1NVQ0NFU1MgaWYgdGhlIHN0YXR1cyBvZiB0 aGUgZmlsZSB3YXMgYWJsZQorICAqICAgICAgICB0byBiZSBkZXRlcm1pbmVkLiAgT3RoZXJ3aXNl LCBhbiBlcnJvciBvYmplY3QKKyAgKiAgICAgICAgaWRlbnRpZmllcgorQEAgLTQ1NjIsMTcgKzQ1 NjIsMTcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfY2hlY2tfa2V5ZmlsZV91bml4KAorICAqIEBi cmllZiBVTklYIC0gQ2hlY2sgRmlsZSBTdGF0dXMgZm9yIEtleQorICAqIEBpbmdyb3VwIGdsb2J1 c19nc2lfc3lzY29uZmlnX3VuaXgKKyAgKiBAZGV0YWlscworLSAqIFRoaXMgaXMgYSBjb252ZW5p ZW5jZSBmdW5jdGlvbiB1c2VkIHRvIGNoZWNrIHRoZSBzdGF0dXMgb2YgYSAKKysgKiBUaGlzIGlz IGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdXNlZCB0byBjaGVjayB0aGUgc3RhdHVzIG9mIGEKKyAg KiBwcml2YXRlIGtleSBmaWxlLiAgVGhlIGRlc2lyZWQgc3RhdHVzIGlzIG9ubHkgdGhlIHNwZWNp ZmllZCB1c2VyIGhhcworICAqIG93bmVyc2hpcCBhbmQgcmVhZCBwZXJtaXNzaW9ucywgZXZlcnlv bmUgZWxzZSBzaG91bGQgbm90IGJlIGFibGUKKyAgKiB0byBhY2Nlc3MgaXQuCistICogCisrICoK KyAgKiBAcGFyYW0gZmlsZW5hbWUKKyAgKiAgICAgICAgVGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8g Y2hlY2sgdGhlIHN0YXR1cyBvZgorICAqIEBwYXJhbSB1aWQKKyAgKiAgICAgICAgVGhlIG93bmVy IG9mIHRoZSBmaWxlIHRvIGNoZWNrIHRoZSBzdGF0dXMgb2YKKyAgKgorLSAqIEByZXR1cm4gCisr ICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiB0aGUgc3RhdHVzIG9mIHRo ZSBmaWxlIHdhcyBhYmxlCisgICogICAgICAgIHRvIGJlIGRldGVybWluZWQuICBPdGhlcndpc2Us IGFuIGVycm9yIG9iamVjdAorICAqICAgICAgICBpZGVudGlmaWVyCitAQCAtNDYxMyw3ICs0NjEz LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfY2hlY2tfa2V5ZmlsZV91aWRfdW5peCgKKyAgICAg ICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNVTFQoCisgICAgICAgICAgICAg ICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1Jf RklMRV9CQURfUEVSTUlTU0lPTlMsCistICAgICAgICAgICAgICAgIChfR1NTTCgiQ291bGQgbm90 IHJlYWQgJXMiKSwgZmlsZW5hbWUpKTsgICAgICAgICAgICAKKysgICAgICAgICAgICAgICAgKF9H U1NMKCJDb3VsZCBub3QgcmVhZCAlcyIpLCBmaWxlbmFtZSkpOworICAgICAgICAgICAgIGdvdG8g ZXhpdDsKKyAKKyAgICAgICAgICAgZGVmYXVsdDoKK0BAIC00NjMyLDggKzQ2MzIsOCBAQCBnbG9i dXNfZ3NpX3N5c2NvbmZpZ19jaGVja19rZXlmaWxlX3VpZF91bml4KAorICAgICB9CisgCisgICAg IC8qCistICAgICAqIHVzZSBhbnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRhdGEsIGFzIGl0IHdp bGwgCistICAgICAqIGhhdmUgZmlsZSBzaXplcywgYW5kIGxhc3QgdXNlIHRpbWVzIGluIGl0LiAK KysgICAgICogdXNlIGFueSBzdGF0IG91dHB1dCBhcyByYW5kb20gZGF0YSwgYXMgaXQgd2lsbAor KyAgICAgKiBoYXZlIGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVzZSB0aW1lcyBpbiBpdC4KKyAgICAg ICovCisgICAgIFJBTkRfYWRkKCh2b2lkKikmc3R4LHNpemVvZihzdHgpLDIpOworIAorQEAgLTQ2 NDIsMTcgKzQ2NDIsMTcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfY2hlY2tfa2V5ZmlsZV91aWRf dW5peCgKKyAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX1JFU1VMVCgKKyAgICAg ICAgICAgICByZXN1bHQsCisgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1Jf RklMRV9OT1RfT1dORUQsCistICAgICAgICAgICAgKF9HU1NMKCIlcyBpcyBub3Qgb3duZWQgYnkg Y3VycmVudCB1c2VyIiksIGZpbGVuYW1lKSk7ICAgIAorKyAgICAgICAgICAgIChfR1NTTCgiJXMg aXMgbm90IG93bmVkIGJ5IGN1cnJlbnQgdXNlciIpLCBmaWxlbmFtZSkpOworICAgICAgICAgZ290 byBleGl0OworICAgICB9CisgCisgICAgIC8qIGNoZWNrIHRoYXQgdGhlIGtleSBmaWxlIGlzIG5v dCB4IGJ5IHVzZXIsIG9yIHJ3eCBieSBncm91cCBvciBvdGhlcnMgKi8KKy0gICAgaWYgKHN0eC5z dF9tb2RlICYgKFNfSVhVU1IgfCAKKysgICAgaWYgKHN0eC5zdF9tb2RlICYgKFNfSVhVU1IgfAor ICAgICAgICAgICAgICAgICAgICAgICAgU19JUkdSUCB8IFNfSVdHUlAgfCBTX0lYR1JQIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgIFNfSVJPVEggfCBTX0lXT1RIIHwgU19JWE9USCkpCisgICAg IHsKKyAgICAgICAgIEdMT0JVU19JX0dTSV9TWVNDT05GSUdfREVCVUdfRlBSSU5URigKKy0gICAg ICAgICAgICAyLCAoc3RkZXJyLCAiY2hlY2tzdGF0OiVzOm1vZGU6JW9cbiIsIGZpbGVuYW1lLCBz dHguc3RfbW9kZSkpOyAKKysgICAgICAgICAgICAyLCAoc3RkZXJyLCAiY2hlY2tzdGF0OiVzOm1v ZGU6JW9cbiIsIGZpbGVuYW1lLCBzdHguc3RfbW9kZSkpOworIAorICAgICAgICAgR0xPQlVTX0dT SV9TWVNDT05GSUdfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAgIHJlc3VsdCwKK0BAIC00NjY2 LDcgKzQ2NjYsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19jaGVja19rZXlmaWxlX3VpZF91bml4 KAorICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfUkVTVUxUKAorICAgICAgICAg ICAgIHJlc3VsdCwKKyAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9GSUxF X1pFUk9fTEVOR1RILAorLSAgICAgICAgICAgIChfR1NTTCgiRmlsZTogJXMiKSwgZmlsZW5hbWUp KTsgICAgICAgICAgICAKKysgICAgICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiksIGZpbGVuYW1l KSk7CisgICAgICAgICBnb3RvIGV4aXQ7CisgICAgIH0KKyAKK0BAIC00Njc1LDcgKzQ2NzUsNyBA QCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19jaGVja19rZXlmaWxlX3VpZF91bml4KAorICAgICAgICAg R0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfUkVTVUxUKAorICAgICAgICAgICAgIHJlc3VsdCwK KyAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9GSUxFX0lTX0RJUiwKKy0g ICAgICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiksIGZpbGVuYW1lKSk7ICAgICAgICAKKysgICAg ICAgICAgICAoX0dTU0woIkZpbGU6ICVzIiksIGZpbGVuYW1lKSk7CisgICAgIH0KKyAgICAgZWxz ZSBpZigoc3R4LnN0X21vZGUgJiBTX0lGTVQpCisgICAgICAgICAgICAgJiB+KFNfSUZMTksgfCBT X0lGUkVHIHwgU19JRkRJUikpCitAQCAtNDY5OCwxNSArNDY5OCwxNSBAQCBnbG9idXNfZ3NpX3N5 c2NvbmZpZ19jaGVja19rZXlmaWxlX3VpZF91bml4KAorICAqIEBicmllZiBVTklYIC0gQ2hlY2sg RmlsZSBTdGF0dXMgZm9yIENlcnQKKyAgKiBAaW5ncm91cCBnbG9idXNfZ3NpX3N5c2NvbmZpZ191 bml4CisgICogQGRldGFpbHMKKy0gKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdXNl ZCB0byBjaGVjayB0aGUgc3RhdHVzIG9mIGEgCisrICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1 bmN0aW9uIHVzZWQgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZiBhCisgICogY2VydGlmaWNhdGUgZmls ZS4gIFRoZSBkZXNpcmVkIHN0YXR1cyBpcyB0aGUgY3VycmVudCB1c2VyIGhhcworICAqIG93bmVy c2hpcCBhbmQgcmVhZC93cml0ZSBwZXJtaXNzaW9ucywgd2hpbGUgZ3JvdXAgYW5kIG90aGVycyBv bmx5CisgICogaGF2ZSByZWFkIHBlcm1pc3Npb25zLgorLSAqIAorKyAqCisgICogQHBhcmFtIGZp bGVuYW1lCisgICogICAgICAgIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIGNoZWNrIHRoZSBzdGF0 dXMgb2YKKyAgKgorLSAqIEByZXR1cm4gCisrICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNf U1VDQ0VTUyBpZiB0aGUgc3RhdHVzIG9mIHRoZSBmaWxlIHdhcyBhYmxlCisgICogICAgICAgIHRv IGJlIGRldGVybWluZWQuICBPdGhlcndpc2UsIGFuIGVycm9yIG9iamVjdAorICAqICAgICAgICBp ZGVudGlmaWVyCitAQCAtNDcyNCwxNyArNDcyNCwxNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19j aGVja19jZXJ0ZmlsZV91bml4KAorICAqIEBicmllZiBVTklYIC0gQ2hlY2sgRmlsZSBTdGF0dXMg Zm9yIENlcnQKKyAgKiBAaW5ncm91cCBnbG9idXNfZ3NpX3N5c2NvbmZpZ191bml4CisgICogQGRl dGFpbHMKKy0gKiBUaGlzIGlzIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdXNlZCB0byBjaGVjayB0 aGUgc3RhdHVzIG9mIGEgCisrICogVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHVzZWQg dG8gY2hlY2sgdGhlIHN0YXR1cyBvZiBhCisgICogY2VydGlmaWNhdGUgZmlsZS4gIFRoZSBkZXNp cmVkIHN0YXR1cyBpcyB0aGUgY3VycmVudCB1c2VyIGhhcworICAqIG93bmVyc2hpcCBhbmQgcmVh ZC93cml0ZSBwZXJtaXNzaW9ucywgd2hpbGUgZ3JvdXAgYW5kIG90aGVycyBvbmx5CisgICogaGF2 ZSByZWFkIHBlcm1pc3Npb25zLgorLSAqIAorKyAqCisgICogQHBhcmFtIGZpbGVuYW1lCisgICog ICAgICAgIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIGNoZWNrIHRoZSBzdGF0dXMgb2YKKyAgKiBA cGFyYW0gdWlkCisgICogICAgICAgIFRoZSB1c2VyIGlkIHRoYXQgbWF5IGJlIHRoZSBvd25lciBv ZiB0aGUgZmlsZQorICAqCistICogQHJldHVybiAKKysgKiBAcmV0dXJuCisgICogICAgICAgIEdM T0JVU19TVUNDRVNTIGlmIHRoZSBzdGF0dXMgb2YgdGhlIGZpbGUgd2FzIGFibGUKKyAgKiAgICAg ICAgdG8gYmUgZGV0ZXJtaW5lZC4gIE90aGVyd2lzZSwgYW4gZXJyb3Igb2JqZWN0CisgICogICAg ICAgIGlkZW50aWZpZXIKK0BAIC00NzkzLDggKzQ3OTMsOCBAQCBnbG9idXNfZ3NpX3N5c2NvbmZp Z19jaGVja19jZXJ0ZmlsZV91aWRfdW5peCgKKyAgICAgfQorIAorICAgICAvKgorLSAgICAgKiB1 c2UgYW55IHN0YXQgb3V0cHV0IGFzIHJhbmRvbSBkYXRhLCBhcyBpdCB3aWxsIAorLSAgICAgKiBo YXZlIGZpbGUgc2l6ZXMsIGFuZCBsYXN0IHVzZSB0aW1lcyBpbiBpdC4gCisrICAgICAqIHVzZSBh bnkgc3RhdCBvdXRwdXQgYXMgcmFuZG9tIGRhdGEsIGFzIGl0IHdpbGwKKysgICAgICogaGF2ZSBm aWxlIHNpemVzLCBhbmQgbGFzdCB1c2UgdGltZXMgaW4gaXQuCisgICAgICAqLworICAgICBSQU5E X2FkZCgodm9pZCopJnN0eCxzaXplb2Yoc3R4KSwyKTsKKyAKK0BAIC00ODAzLDcgKzQ4MDMsNyBA QCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19jaGVja19jZXJ0ZmlsZV91aWRfdW5peCgKKyAgICAgICAg IEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX1JFU1VMVCgKKyAgICAgICAgICAgICByZXN1bHQs CisgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfRklMRV9OT1RfT1dORUQs CistICAgICAgICAgICAgKF9HU1NMKCIlcyBpcyBub3Qgb3duZWQgYnkgY3VycmVudCB1c2VyIiks IGZpbGVuYW1lKSk7ICAgIAorKyAgICAgICAgICAgIChfR1NTTCgiJXMgaXMgbm90IG93bmVkIGJ5 IGN1cnJlbnQgdXNlciIpLCBmaWxlbmFtZSkpOworICAgICAgICAgZ290byBleGl0OworICAgICB9 CisgCitAQCAtNDgyNyw3ICs0ODI3LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfY2hlY2tfY2Vy dGZpbGVfdWlkX3VuaXgoCisgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNV TFQoCisgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09O RklHX0VSUk9SX0ZJTEVfWkVST19MRU5HVEgsCistICAgICAgICAgICAgKF9HU1NMKCJGaWxlOiAl cyIpLCBmaWxlbmFtZSkpOyAgICAgICAgICAgIAorKyAgICAgICAgICAgIChfR1NTTCgiRmlsZTog JXMiKSwgZmlsZW5hbWUpKTsKKyAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgfQorIAorQEAgLTQ4 NjksMTAgKzQ4NjksMTAgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfY2hlY2tfY2VydGZpbGVfdWlk X3VuaXgoCisgICogY2VydGlmaWNhdGVzLgorICAqIDxsaT4gPGI+JEhPTUUvLmdsb2J1cy9jZXJ0 aWZpY2F0ZXM8L2I+IC0gSWYgdGhpcworICAqIGRpcmVjdG9yeSBleGlzdHMsIGFuZCB0aGUgcHJl dmlvdXMgbWV0aG9kcyBvZiBkZXRlcm1pbmluZyB0aGUgdHJ1c3RlZAorLSAqIGNlcnRzIGRpcmVj dG9yeSBmYWlsZWQsIHRoaXMgZGlyZWN0b3J5IHdpbGwgYmUgdXNlZC4gIAorKyAqIGNlcnRzIGRp cmVjdG9yeSBmYWlsZWQsIHRoaXMgZGlyZWN0b3J5IHdpbGwgYmUgdXNlZC4KKyAgKiA8bGk+IDxi Pi9ldGMvZ3JpZC1zZWN1cml0eS9jZXJ0aWZpY2F0ZXM8L2I+IC0gVGhpcyBsb2NhdGlvbiBpcyBp bnRlbmRlZAorLSAqIHRvIGJlIGluZGVwZW5kZW50IG9mIHRoZSBnbG9idXMgaW5zdGFsbGF0aW9u ICgkR0xPQlVTX0xPQ0FUSU9OKSwgYW5kIAorLSAqIGlzIGdlbmVyYWxseSBvbmx5IHdyaXRlYWJs ZSBieSB0aGUgaG9zdCBzeXN0ZW0gYWRtaW5pc3RyYXRvci4gIAorKyAqIHRvIGJlIGluZGVwZW5k ZW50IG9mIHRoZSBnbG9idXMgaW5zdGFsbGF0aW9uICgkR0xPQlVTX0xPQ0FUSU9OKSwgYW5kCisr ICogaXMgZ2VuZXJhbGx5IG9ubHkgd3JpdGVhYmxlIGJ5IHRoZSBob3N0IHN5c3RlbSBhZG1pbmlz dHJhdG9yLgorICAqIDxsaT4gPGI+JEdMT0JVU19MT0NBVElPTi9zaGFyZS9jZXJ0aWZpY2F0ZXM8 L2I+CisgICogPC9vbD4KKyAgKgorQEAgLTQ4ODAsNyArNDg4MCw3IEBAIGdsb2J1c19nc2lfc3lz Y29uZmlnX2NoZWNrX2NlcnRmaWxlX3VpZF91bml4KAorICAqICAgICAgICBUaGUgdHJ1c3RlZCBj ZXJ0aWZpY2F0ZXMgZGlyZWN0b3J5CisgICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VD Q0VTUyBpZiBubyBlcnJvciBvY2N1cnJlZCwgYW5kIGEgc3VmZmljaWVudCB0cnVzdGVkCistICog ICAgICAgIGNlcnRpZmljYXRlcyBkaXJlY3Rvcnkgd2FzIGZvdW5kLiAgT3RoZXJ3aXNlLCBhbiBl cnJvciBvYmplY3QgCisrICogICAgICAgIGNlcnRpZmljYXRlcyBkaXJlY3Rvcnkgd2FzIGZvdW5k LiAgT3RoZXJ3aXNlLCBhbiBlcnJvciBvYmplY3QKKyAgKiAgICAgICAgaWRlbnRpZmllciByZXR1 cm5lZC4KKyAgKi8KKyBnbG9idXNfcmVzdWx0X3QKK0BAIC00OTAzLDcgKzQ5MDMsNyBAQCBnbG9i dXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2VydF9kaXJfdW5peCgKKyAgICAgaWYoZ2V0ZW52KFg1MDlf Q0VSVF9ESVIpKQorICAgICB7CisgICAgICAgICByZXN1bHQgPSBnbG9idXNfaV9nc2lfc3lzY29u ZmlnX2NyZWF0ZV9jZXJ0X2Rpcl9zdHJpbmcoCistICAgICAgICAgICAgY2VydF9kaXIsIAorKyAg ICAgICAgICAgIGNlcnRfZGlyLAorICAgICAgICAgICAgICYgZW52X2NlcnRfZGlyLAorICAgICAg ICAgICAgICIlcyIsCisgICAgICAgICAgICAgZ2V0ZW52KFg1MDlfQ0VSVF9ESVIpKTsKK0BAIC00 OTIyLDkgKzQ5MjIsOSBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2VydF9kaXJfdW5peCgK KyAgICAgICAgIHJlc3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0dFVF9IT01FX0RJUigmaG9t ZSk7CisgCisgICAgICAgICBpZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistICAgICAgICB7 IAorKyAgICAgICAgeworICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pX2dzaV9zeXNjb25m aWdfY3JlYXRlX2NlcnRfZGlyX3N0cmluZygKKy0gICAgICAgICAgICAgICAgY2VydF9kaXIsIAor KyAgICAgICAgICAgICAgICBjZXJ0X2RpciwKKyAgICAgICAgICAgICAgICAgJmxvY2FsX2NlcnRf ZGlyLAorICAgICAgICAgICAgICAgICAiJXMlcyVzIiwKKyAgICAgICAgICAgICAgICAgaG9tZSwK K0BAIC00OTUxLDcgKzQ5NTEsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2VydF9kaXJf dW5peCgKKyAgICAgICAgIGVsc2UgaWYoIUdMT0JVU19HU0lfU1lTQ09ORklHX0ZJTEVfRE9FU19O T1RfRVhJU1QocmVzdWx0KSAmJgorICAgICAgICAgICAgICAgICAhR0xPQlVTX0dTSV9TWVNDT05G SUdfRklMRV9IQVNfQkFEX1BFUk1JU1NJT05TKHJlc3VsdCkpCisgICAgICAgICB7CistCSAgICBo b21lID0gTlVMTDsKKysgICAgICAgICAgICBob21lID0gTlVMTDsKKyAgICAgICAgICAgICBHTE9C VVNfR1NJX1NZU0NPTkZJR19FUlJPUl9DSEFJTl9SRVNVTFQoCisgICAgICAgICAgICAgICAgIHJl c3VsdCwKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfR0VUVElO R19DRVJUX0RJUik7CitAQCAtNTA0NCw3ICs1MDQ0LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdf Z2V0X2NlcnRfZGlyX3VuaXgoCisgICAgIH0KKyAKKyAgICAgR0xPQlVTX0lfR1NJX1NZU0NPTkZJ R19ERUJVR19GUFJJTlRGKAorLSAgICAgICAgMiwgKHN0ZGVyciwgIlVzaW5nIGNlcnRfZGlyID0g JXNcbiIsIAorKyAgICAgICAgMiwgKHN0ZGVyciwgIlVzaW5nIGNlcnRfZGlyID0gJXNcbiIsCisg ICAgICAgICAgICAgKCpjZXJ0X2RpciA/ICpjZXJ0X2RpciA6ICJudWxsIikpKTsKKyAKKyAgICAg cmVzdWx0ID0gR0xPQlVTX1NVQ0NFU1M7CitAQCAtNTA1OCw3ICs1MDU4LDcgQEAgZ2xvYnVzX2dz aV9zeXNjb25maWdfZ2V0X2NlcnRfZGlyX3VuaXgoCisgCisgICAgIGlmKGhvbWUgIT0gTlVMTCkK KyAgICAgeworLQlmcmVlKGhvbWUpOworKyAgICAgICAgZnJlZShob21lKTsKKyAgICAgfQorIAor ICAgICBHTE9CVVNfSV9HU0lfU1lTQ09ORklHX0RFQlVHX0VYSVQ7CitAQCAtNTA3MywxMCArNTA3 MywxMCBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2VydF9kaXJfdW5peCgKKyAgKiBHZXQg dGhlIFVzZXIgQ2VydGlmaWNhdGUgRmlsZW5hbWUgYmFzZWQgb24gdGhlIGN1cnJlbnQgdXNlcidz CisgICogZW52aXJvbm1lbnQuICBUaGUgZm9sbG93aW5nIGxvY2F0aW9ucyBhcmUgc2VhcmNoZWQg Zm9yIGNlcnQgYW5kIGtleQorICAqIGZpbGVzIGluIG9yZGVyOgorLSAqIAorKyAqCisgICogPG9s PgorICAqIDxsaT5lbnZpcm9ubWVudCB2YXJpYWJsZXMgWDUwOV9VU0VSX0NFUlQgYW5kIFg1MDlf VVNFUl9LRVkKKy0gKiA8bGk+JEhPTUUvLmdsb2J1cy91c2VyY2VydC5wZW0gYW5kIAorKyAqIDxs aT4kSE9NRS8uZ2xvYnVzL3VzZXJjZXJ0LnBlbSBhbmQKKyAgKiAgICAgJEhPTUUvLmdsb2J1cy91 c2Vya2V5LnBlbQorICAqIDxsaT4kSE9NRS8uZ2xvYnVzL3VzZXJjcmVkLnAxMiAtIHRoaXMgaXMg YSBQS0NTMTIgY3JlZGVudGlhbAorICAqIDwvb2w+CitAQCAtNTEyNCw3ICs1MTI0LDcgQEAgZ2xv YnVzX2dzaV9zeXNjb25maWdfZ2V0X3VzZXJfY2VydF9maWxlbmFtZV91bml4KAorICAgICAgICAg ICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVND T05GSUdfRVJST1JfR0VUVElOR19DRVJUX1NUUklORyk7CisgICAgICAgICAgICAgICAgIGdvdG8g ZG9uZTsKKy0gICAgICAgICAgICB9ICAgICAgICAgICAgCisrICAgICAgICAgICAgfQorICAgICAg ICAgfQorIAorICAgICAgICAgaWYoISgqdXNlcl9jZXJ0KSkKK0BAIC01MTYxLDcgKzUxNjEsNyBA QCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfdXNlcl9jZXJ0X2ZpbGVuYW1lX3VuaXgoCisgICAg IH0KKyAKKyAgICAgaWYodXNlcl9rZXkpCistICAgIHsgCisrICAgIHsKKyAgICAgICAgICp1c2Vy X2tleSA9IE5VTEw7CisgICAgICAgICByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsKKyAKK0BAIC01 MjI1LDcgKzUyMjUsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfdXNlcl9jZXJ0X2ZpbGVu YW1lX3VuaXgoCisgICAgIHsKKyAgICAgICAgIHJlc3VsdCA9IEdMT0JVU19TVUNDRVNTOworICAg ICAgICAgaWYoIWhvbWUpCistICAgICAgICB7IAorKyAgICAgICAgeworICAgICAgICAgICAgIHJl c3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0dFVF9IT01FX0RJUigmaG9tZSk7CisgICAgICAg ICB9CisgCitAQCAtNTI1NCw3ICs1MjU0LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3Vz ZXJfY2VydF9maWxlbmFtZV91bml4KAorICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklH X0VSUk9SX0NIQUlOX1JFU1VMVCgKKyAgICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAg ICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0tFWV9TVFJJTkcpOwor LSAgICAgICAgICAgIGdvdG8gZG9uZTsgICAgICAgICAgICAKKysgICAgICAgICAgICBnb3RvIGRv bmU7CisgICAgICAgICB9CisgICAgIH0KKyAKK0BAIC01MzA5LDcgKzUzMDksNyBAQCBnbG9idXNf Z3NpX3N5c2NvbmZpZ19nZXRfdXNlcl9jZXJ0X2ZpbGVuYW1lX3VuaXgoCisgICogQGluZ3JvdXAg Z2xvYnVzX2dzaV9zeXNjb25maWdfdW5peAorICAqIEBkZXRhaWxzCisgICogR2V0IHRoZSBIb3N0 IENlcnRpZmljYXRlIGFuZCBLZXkgRmlsZW5hbWVzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHVzZXIn cworLSAqIGVudmlyb25tZW50LiAgVGhlIGhvc3QgY2VydCBhbmQga2V5IGFyZSBzZWFyY2hlZCBm b3IgaW4gdGhlIGZvbGxvd2luZyAKKysgKiBlbnZpcm9ubWVudC4gIFRoZSBob3N0IGNlcnQgYW5k IGtleSBhcmUgc2VhcmNoZWQgZm9yIGluIHRoZSBmb2xsb3dpbmcKKyAgKiBsb2NhdGlvbnMgKGlu IG9yZGVyKToKKyAgKgorICAqIDxvbD4KK0BAIC01MzE3LDcgKzUzMTcsNyBAQCBnbG9idXNfZ3Np X3N5c2NvbmZpZ19nZXRfdXNlcl9jZXJ0X2ZpbGVuYW1lX3VuaXgoCisgICogPGxpPjxlbT4kR0xP QlVTX0xPQ0FUSU9OPC9lbT4vZXRjL2hvc3RbY2VydHxrZXldLnBlbTwvbGk+CisgICogPGxpPjxl bT4kSE9NRTwvZW0+Ly5nbG9idXMvaG9zdFtjZXJ0fGtleV0ucGVtPC9saT4KKyAgKiA8L29sPgor LSAqIAorKyAqCisgICogQHBhcmFtIGhvc3RfY2VydAorICAqICAgICAgICBwb2ludGVyIHRvIHRo ZSBob3N0IGNlcnRpZmljYXRlIGZpbGVuYW1lCisgICogQHBhcmFtIGhvc3Rfa2V5CitAQCAtNTMy NSw3ICs1MzI1LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3VzZXJfY2VydF9maWxlbmFt ZV91bml4KAorICAqCisgICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiB0 aGUgaG9zdCBjZXJ0IGFuZCBrZXkgd2VyZSBmb3VuZCwgb3RoZXJ3aXNlCistICogICAgICAgIGFu IGVycm9yIG9iamVjdCBpZGVudGlmaWVyIGlzIHJldHVybmVkIAorKyAqICAgICAgICBhbiBlcnJv ciBvYmplY3QgaWRlbnRpZmllciBpcyByZXR1cm5lZAorICAqLworIGdsb2J1c19yZXN1bHRfdAor IGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9ob3N0X2NlcnRfZmlsZW5hbWVfdW5peCgKK0BAIC01 MzkzLDcgKzUzOTMsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfaG9zdF9jZXJ0X2ZpbGVu YW1lX3VuaXgoCisgICAgICAgICAgICAgWDUwOV9DRVJUX1NVRkZJWCk7CisgCisgICAgICAgICBp ZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistICAgICAgICB7IAorKyAgICAgICAgeworICAg ICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pX2dzaV9zeXNjb25maWdfY3JlYXRlX2tleV9zdHJp bmcoCisgICAgICAgICAgICAgICAgIGhvc3Rfa2V5LAorICAgICAgICAgICAgICAgICAmIGRlZmF1 bHRfaG9zdF9rZXksCitAQCAtNTQyMSw3ICs1NDIxLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdf Z2V0X2hvc3RfY2VydF9maWxlbmFtZV91bml4KAorICAgICB9CisgCisgICAgIC8qIG5vdyBjaGVj ayBpbnN0YWxsZWQgbG9jYXRpb24gZm9yIGhvc3QgY2VydCAqLworLSAgICBpZighKCpob3N0X2Nl cnQpICYmICEoKmhvc3Rfa2V5KSkgCisrICAgIGlmKCEoKmhvc3RfY2VydCkgJiYgISgqaG9zdF9r ZXkpKQorICAgICB7CisgICAgICAgICBnbG9idXNfbG9jYXRpb24oJmxvY2F0aW9uKTsKKyAKK0BA IC01NDM5LDcgKzU0MzksNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfaG9zdF9jZXJ0X2Zp bGVuYW1lX3VuaXgoCisgICAgICAgICAgICAgICAgIFg1MDlfQ0VSVF9TVUZGSVgpOworIAorICAg ICAgICAgICAgIGlmKHJlc3VsdCA9PSBHTE9CVVNfU1VDQ0VTUykKKy0gICAgICAgICAgICB7IAor KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2lfZ3NpX3N5 c2NvbmZpZ19jcmVhdGVfa2V5X3N0cmluZygKKyAgICAgICAgICAgICAgICAgICAgIGhvc3Rfa2V5 LAorICAgICAgICAgICAgICAgICAgICAgJmluc3RhbGxlZF9ob3N0X2tleSwKK0BAIC01NDY5LDcg KzU0NjksNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfaG9zdF9jZXJ0X2ZpbGVuYW1lX3Vu aXgoCisgICAgICAgICB9CisgICAgIH0KKyAKKy0gICAgaWYoISgqaG9zdF9jZXJ0KSAmJiAhKCpo b3N0X2tleSkpIAorKyAgICBpZighKCpob3N0X2NlcnQpICYmICEoKmhvc3Rfa2V5KSkKKyAgICAg eworICAgICAgICAgcmVzdWx0ID0gR0xPQlVTX0dTSV9TWVNDT05GSUdfR0VUX0hPTUVfRElSKCZo b21lKTsKKyAKK0BAIC01NDg3LDcgKzU0ODcsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRf aG9zdF9jZXJ0X2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICAgICAgICAgIFg1MDlfQ0VSVF9TVUZG SVgpOworIAorICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSBHTE9CVVNfU1VDQ0VTUykKKy0gICAg ICAgICAgICB7IAorKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2xv YnVzX2lfZ3NpX3N5c2NvbmZpZ19jcmVhdGVfa2V5X3N0cmluZygKKyAgICAgICAgICAgICAgICAg ICAgIGhvc3Rfa2V5LAorICAgICAgICAgICAgICAgICAgICAgJiBsb2NhbF9ob3N0X2tleSwKK0BA IC01NTcwLDcgKzU1NzAsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfaG9zdF9jZXJ0X2Zp bGVuYW1lX3VuaXgoCisgICogQGluZ3JvdXAgZ2xvYnVzX2dzaV9zeXNjb25maWdfdW5peAorICAq IEBkZXRhaWxzCisgICogR2V0IHRoZSBTZXJ2aWNlIENlcnRpZmljYXRlIEZpbGVuYW1lIGJhc2Vk IG9uIHRoZSBjdXJyZW50IHVzZXIncworLSAqIGVudmlyb25tZW50LiAgVGhlIGhvc3QgY2VydCBh bmQga2V5IGFyZSBzZWFyY2hlZCBmb3IgaW4gdGhlIGZvbGxvd2luZyAKKysgKiBlbnZpcm9ubWVu dC4gIFRoZSBob3N0IGNlcnQgYW5kIGtleSBhcmUgc2VhcmNoZWQgZm9yIGluIHRoZSBmb2xsb3dp bmcKKyAgKiBsb2NhdGlvbnMgKGluIG9yZGVyKToKKyAgKgorICAqIDxvbD4KK0BAIC01NTc4LDEx ICs1NTc4LDExIEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9ob3N0X2NlcnRfZmlsZW5hbWVf dW5peCgKKyAgKiA8bGk+XC9ldGNcL2dyaWQtc2VjdXJpdHlcL3tzZXJ2aWNlX25hbWV9XC97c2Vy dmljZV9uYW1lfVtjZXJ0fGtleV0ucGVtCisgICogPGxpPkdMT0JVU19MT0NBVElPTlwvZXRjXC97 c2VydmljZV9uYW1lfVwve3NlcnZpY2VfbmFtZX1bY2VydHxrZXldLnBlbQorICAqICAgICBTbyBm b3IgZXhhbXBsZSwgaWYgbXkgc2VydmljZSB3YXMgbmFtZWQ6IG15c2VydmljZSwgdGhlIGxvY2F0 aW9uCistICogICAgIG9mIHRoZSBjZXJ0aWZpY2F0ZSB3b3VsZCBiZTogCisrICogICAgIG9mIHRo ZSBjZXJ0aWZpY2F0ZSB3b3VsZCBiZToKKyAgKiAgICAgR0xPQlVTX0xPQ0FUSU9OXC9ldGNcL215 c2VydmljZVwvbXlzZXJ2aWNlY2VydC5wZW0KKyAgKiA8bGk+XFw8dXNlcnMgaG9tZVxcPlwvLmds b2J1c1wve3NlcnZpY2VfbmFtZX1cL3tzZXJ2aWNlX25hbWV9W2NlcnR8a2V5XS5wZW0KKyAgKiA8 L29sPgorLSAqIAorKyAqCisgICogQHBhcmFtIHNlcnZpY2VfbmFtZQorICAqICAgICAgICBUaGUg bmFtZSBvZiB0aGUgc2VydmljZSB3aGljaCBhbGxvd3MgdXMgdG8gZGV0ZXJtaW5lIHRoZQorICAq ICAgICAgICBsb2NhdGlvbnMgb2YgY2VydCBhbmQga2V5IGZpbGVzIHRvIGxvb2sgZm9yCitAQCAt NTU5Myw3ICs1NTkzLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2hvc3RfY2VydF9maWxl bmFtZV91bml4KAorICAqCisgICogQHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBp ZiB0aGUgc2VydmljZSBjZXJ0IGFuZCBrZXkgd2VyZSBmb3VuZCwgb3RoZXJ3aXNlCistICogICAg ICAgIGFuIGVycm9yIG9iamVjdCBpZGVudGlmaWVyIAorKyAqICAgICAgICBhbiBlcnJvciBvYmpl Y3QgaWRlbnRpZmllcgorICAqLworIGdsb2J1c19yZXN1bHRfdAorIGdsb2J1c19nc2lfc3lzY29u ZmlnX2dldF9zZXJ2aWNlX2NlcnRfZmlsZW5hbWVfdW5peCgKK0BAIC01NjM4LDcgKzU2MzgsNyBA QCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfc2VydmljZV9jZXJ0X2ZpbGVuYW1lX3VuaXgoCisg ICAgICAgICAgICAgZ2V0ZW52KFg1MDlfVVNFUl9DRVJUKSk7CisgCisgICAgICAgICBpZihyZXN1 bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCistICAgICAgICB7IAorKyAgICAgICAgeworICAgICAgICAg ICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0NIQUlOX1JFU1VMVCgKKyAgICAgICAgICAg ICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJP Ul9HRVRUSU5HX0NFUlRfU1RSSU5HKTsKK0BAIC01Njc5LDcgKzU2NzksNyBAQCBnbG9idXNfZ3Np X3N5c2NvbmZpZ19nZXRfc2VydmljZV9jZXJ0X2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICAgICAg ICAgIFg1MDlfQ0VSVF9TVUZGSVgpOworIAorICAgICAgICAgICAgIGlmKHJlc3VsdCA9PSBHTE9C VVNfU1VDQ0VTUykKKy0gICAgICAgICAgICB7IAorKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgcmVzdWx0ID0gZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ19jcmVhdGVfa2V5X3N0cmluZygK KyAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2Vfa2V5LAorICAgICAgICAgICAgICAgICAgICAg JiBkZWZhdWx0X3NlcnZpY2Vfa2V5LAorQEAgLTU3MDUsNyArNTcwNSw3IEBAIGdsb2J1c19nc2lf c3lzY29uZmlnX2dldF9zZXJ2aWNlX2NlcnRfZmlsZW5hbWVfdW5peCgKKyAgICAgICAgICAgICAg ICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfQ0hBSU5fUkVTVUxUKAorICAgICAgICAgICAg ICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05G SUdfRVJST1JfR0VUVElOR19DRVJUX1NUUklORyk7CistICAgICAgICAgICAgICAgIGdvdG8gZG9u ZTsgICAgICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAg ICAgICB9CisgICAgICAgICB9CisgICAgICAgICBlbHNlIGlmKCFHTE9CVVNfR1NJX1NZU0NPTkZJ R19GSUxFX0RPRVNfTk9UX0VYSVNUKHJlc3VsdCkpCitAQCAtNTczOSw3ICs1NzM5LDcgQEAgZ2xv YnVzX2dzaV9zeXNjb25maWdfZ2V0X3NlcnZpY2VfY2VydF9maWxlbmFtZV91bml4KAorICAgICAg ICAgICAgICAgICBYNTA5X0NFUlRfU1VGRklYKTsKKyAKKyAgICAgICAgICAgICBpZihyZXN1bHQg PT0gR0xPQlVTX1NVQ0NFU1MpCistICAgICAgICAgICAgeyAKKysgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pX2dzaV9zeXNjb25maWdfY3JlYXRlX2tleV9z dHJpbmcoCisgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2tleSwKKyAgICAgICAgICAgICAg ICAgICAgICZpbnN0YWxsZWRfc2VydmljZV9rZXksCitAQCAtNTc5NSw3ICs1Nzk1LDcgQEAgZ2xv YnVzX2dzaV9zeXNjb25maWdfZ2V0X3NlcnZpY2VfY2VydF9maWxlbmFtZV91bml4KAorICAgICAg ICAgICAgICAgICBYNTA5X0NFUlRfU1VGRklYKTsKKyAKKyAgICAgICAgICAgICBpZihyZXN1bHQg PT0gR0xPQlVTX1NVQ0NFU1MpCistICAgICAgICAgICAgeyAKKysgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pX2dzaV9zeXNjb25maWdfY3JlYXRlX2tleV9z dHJpbmcoCisgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2tleSwKKyAgICAgICAgICAgICAg ICAgICAgICZsb2NhbF9zZXJ2aWNlX2tleSwKK0BAIC01ODMxLDcgKzU4MzEsNyBAQCBnbG9idXNf Z3NpX3N5c2NvbmZpZ19nZXRfc2VydmljZV9jZXJ0X2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICAg ICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJS T1JfR0VUVElOR19DRVJUX1NUUklORyk7CisgICAgICAgICAgICAgaG9tZSA9IE5VTEw7CistICAg ICAgICAgICAgZ290byBkb25lOyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGdvdG8gZG9uZTsK KyAgICAgICAgIH0KKyAgICAgfQorIAorQEAgLTU4ODcsMjIgKzU4ODcsMjIgQEAgZ2xvYnVzX2dz aV9zeXNjb25maWdfZ2V0X3NlcnZpY2VfY2VydF9maWxlbmFtZV91bml4KAorICAqIEBkZXRhaWxz CisgICogR2V0IHRoZSBwcm94eSBjZXJ0IGZpbGVuYW1lIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcK KyAgKiBzZWFyY2ggb3JkZXI6CistICogCisrICoKKyAgKiA8b2w+CisgICogPGxpPiBYNTA5X1VT RVJfUFJPWFkgZW52aXJvbm1lbnQgdmFyaWFibGUgLSBUaGlzIGVudmlyb25tZW50IHZhcmlhYmxl CisgICogaXMgc2V0IGJ5IHRoZSBhdCBydW4gdGltZSBmb3IgdGhlIHNwZWNpZmljIGFwcGxpY2F0 aW9uLiAgSWYKKyAgKiB0aGUgcHJveHlfZmlsZV90eXBlIHZhcmlhYmxlIGlzIHNldCB0byBHTE9C VVNfUFJPWFlfT1VUUFVUCistICogIChhIHByb3h5IGZpbGVuYW1lIGZvciB3cml0aW5nIGlzIHJl cXVlc3RlZCksIAorLSAqIGFuZCB0aGUgWDUwOV9VU0VSX1BST1hZIGlzIHNldCwgdGhpcyB3aWxs IGJlIHRoZSAKKysgKiAgKGEgcHJveHkgZmlsZW5hbWUgZm9yIHdyaXRpbmcgaXMgcmVxdWVzdGVk KSwKKysgKiBhbmQgdGhlIFg1MDlfVVNFUl9QUk9YWSBpcyBzZXQsIHRoaXMgd2lsbCBiZSB0aGUK KyAgKiByZXN1bHRpbmcgdmFsdWUgb2YgdGhlIHVzZXJfcHJveHkgZmlsZW5hbWUgc3RyaW5nIHBh c3NlZCBpbi4gIElmIHRoZQorLSAqIHByb3h5X2ZpbGVfdHlwZSBpcyBzZXQgdG8gR0xPQlVTX1BS T1hZX0lOUFVUIGFuZCBYNTA5X1VTRVJfUFJPWFkgaXMgCistICogc2V0LCBidXQgdGhlIGZpbGUg aXQgcG9pbnRzIHRvIGRvZXMgbm90IGV4aXN0LCAKKy0gKiBvciBoYXMgc29tZSBvdGhlciByZWFk YWJpbGl0eSBpc3N1ZXMsIHRoZSAKKysgKiBwcm94eV9maWxlX3R5cGUgaXMgc2V0IHRvIEdMT0JV U19QUk9YWV9JTlBVVCBhbmQgWDUwOV9VU0VSX1BST1hZIGlzCisrICogc2V0LCBidXQgdGhlIGZp bGUgaXQgcG9pbnRzIHRvIGRvZXMgbm90IGV4aXN0LAorKyAqIG9yIGhhcyBzb21lIG90aGVyIHJl YWRhYmlsaXR5IGlzc3VlcywgdGhlCisgICogZnVuY3Rpb24gd2lsbCBjb250aW51ZSBjaGVja2lu ZyB1c2luZyB0aGUgb3RoZXIgbWV0aG9kcyBhdmFpbGFibGUuCistICogCisrICoKKyAgKiA8bGk+ IENoZWNrIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUgcHJveHkgZmlsZSBvZgorICAqIFwv dG1wXC94NTA5X3VcXDx1c2VyX2lkXFw+IHdoZXJlIFxcPHVzZXIgaWRcXD4gaXMgc29tZSB1bmlx dWUgc3RyaW5nIGZvcgorLSAqIHRoYXQgdXNlciBvbiB0aGUgaG9zdCAKKysgKiB0aGF0IHVzZXIg b24gdGhlIGhvc3QKKyAgKiA8L29sPgorICAqCisgICogQHBhcmFtIHVzZXJfcHJveHkKK0BAIC01 OTQxLDcgKzU5NDEsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfcHJveHlfZmlsZW5hbWVf dW5peCgKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBlbHNlCistICAgICAg ICB7IAorKyAgICAgICAgeworICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pX2dzaV9zeXNj b25maWdfY3JlYXRlX2tleV9zdHJpbmcoCisgICAgICAgICAgICAgICAgIHVzZXJfcHJveHksCisg ICAgICAgICAgICAgICAgICZlbnZfdXNlcl9wcm94eSwKK0BAIC02MDA1LDcgKzYwMDUsNyBAQCBn bG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfcHJveHlfZmlsZW5hbWVfdW5peCgKKyAKKyAgICAgaWYo ISgqdXNlcl9wcm94eSkpCisgICAgIHsKKy0gICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VS Uk9SX1JFU1VMVCggCisrICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9SRVNVTFQo CisgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklH X0VSUk9SX0dFVFRJTkdfUFJPWFlfRklMRU5BTUUsCisgICAgICAgICAgICAgKF9HU1NMKCJBIGZp bGUgbG9jYXRpb24gZm9yJXMgdGhlIHByb3h5IGNlcnQgY291bGQgbm90IGJlIGZvdW5kIGluOiBc biIKK0BAIC02MDUyLDcgKzYwNTIsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfcHJveHlf ZmlsZW5hbWVfdW5peCgKKyAgKgorICAqIEBwYXJhbSBzaWduaW5nX3BvbGljeV9maWxlbmFtZQor ICAqICAgICAgICBUaGUgcmVzdWx0aW5nIHNpbmdpbmdfcG9saWN5IGZpbGVuYW1lCistICogQHJl dHVybiAKKysgKiBAcmV0dXJuCisgICogICAgICAgIEdMT0JVU19TVUNDRVNTIGlmIG5vIGVycm9y IG9jY3VycmVkLCBvdGhlcndpc2UgYW4gZXJyb3Igb2JqZWN0IElECisgICovCisgZ2xvYnVzX3Jl c3VsdF90CitAQCAtNjA5OCw3ICs2MDk4LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3Np Z25pbmdfcG9saWN5X2ZpbGVuYW1lX3VuaXgoCisgICAgIGhhc2ggPSBYNTA5X05BTUVfaGFzaChj YV9uYW1lKTsKKyAKKyAgICAgc2lnbmluZ19wb2xpY3kgPSBnbG9idXNfY29tbW9uX2NyZWF0ZV9z dHJpbmcoCistICAgICAgICAiJXMlcyUwOGx4JXMiLCAKKysgICAgICAgICIlcyVzJTA4bHglcyIs CisgICAgICAgICBjYV9jZXJ0X2RpciwgRklMRV9TRVBBUkFUT1IsIGhhc2gsIFNJR05JTkdfUE9M SUNZX0ZJTEVfRVhURU5TSU9OKTsKKyAKKyAgICAgaWYoc2lnbmluZ19wb2xpY3kgPT0gTlVMTCkK K0BAIC02MTQxLDE5ICs2MTQxLDE5IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9zaWduaW5n X3BvbGljeV9maWxlbmFtZV91bml4KAorICAqIEBicmllZiBVTklYIC0gR2V0IENBIENlcnQgRmls ZW5hbWVzCisgICogQGluZ3JvdXAgZ2xvYnVzX2dzaV9zeXNjb25maWdfdW5peAorICAqIEBkZXRh aWxzCistICogR2V0cyBhIGxpc3Qgb2YgdHJ1c3RlZCBDQSBjZXJ0aWZpY2F0ZSBmaWxlbmFtZXMg aW4gCistICogYSB0cnVzdGVkIENBIGNlcnRpZmljYXRlIGRpcmVjdG9yeS4gIAorKyAqIEdldHMg YSBsaXN0IG9mIHRydXN0ZWQgQ0EgY2VydGlmaWNhdGUgZmlsZW5hbWVzIGluCisrICogYSB0cnVz dGVkIENBIGNlcnRpZmljYXRlIGRpcmVjdG9yeS4KKyAgKgorICAqIEBwYXJhbSBjYV9jZXJ0X2Rp cgorICAqICAgICAgICBUaGUgdHJ1c3RlZCBDQSBjZXJ0aWZpY2F0ZSBkaXJlY3RvcnkgdG8gZ2V0 IHRoZSBmaWxlbmFtZXMgZnJvbQorICAqIEBwYXJhbSBjYV9jZXJ0X2xpc3QKKyAgKiAgICAgICAg VGhlIHJlc3VsdGluZyBsaXN0IG9mIENBIGNlcnRpZmljYXRlIGZpbGVuYW1lcy4gIFRoaXMgaXMg YQorLSAqICAgICAgICBhIGdsb2J1cyBsaXN0IHN0cnVjdHVyZS4gIAorKyAqICAgICAgICBhIGds b2J1cyBsaXN0IHN0cnVjdHVyZS4KKyAgKiAgICAgICAgQHNlZSBnbG9idXNfZmlmb190CisgICog QHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiBubyBlcnJvciBvY2N1cnJlZCwg b3RoZXJ3aXNlIGFuIGVycm9yIG9iamVjdCBJRAorICAqICAgICAgICBpcyByZXR1cm5lZAorLSAq LyAKKysgKi8KKyBnbG9idXNfcmVzdWx0X3QKKyBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2Ff Y2VydF9maWxlc191bml4KAorICAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjYV9jZXJ0X2RpciwKK0BAIC02MjA3LDE0ICs2MjA3LDE0IEBAIGdsb2J1c19nc2lfc3lzY29u ZmlnX2dldF9jYV9jZXJ0X2ZpbGVzX3VuaXgoCisgICAgIHsKKyAgICAgICAgIGZpbGVfbGVuZ3Ro ID0gc3RybGVuKHRtcF9lbnRyeS0+ZF9uYW1lKTsKKyAgICAgICAgIC8qIGNoZWNrIHRoZSBmb2xs b3dpbmc6CistICAgICAgICAgKiAKKysgICAgICAgICAqCisgICAgICAgICAgKiAtIGZpbGUgbGVu Z3RoIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxMAorICAgICAgICAgICogLSBmaXJzdCA4 IGNoYXJhY3RlcnMgYXJlIGFscGhhLW51bWVyaWMKKyAgICAgICAgICAqIC0gOXRoIGNoYXJhY3Rl ciBpcyAnLicKKyAgICAgICAgICAqIC0gY2hhcmFjdGVycyBhZnRlciB0aGUgJy4nIGFyZSBudW1l cmljCisgICAgICAgICAgKi8KKyAKKy0gICAgICAgIGZ1bGxfZmlsZW5hbWVfcGF0aCA9IAorKyAg ICAgICAgZnVsbF9maWxlbmFtZV9wYXRoID0KKyAgICAgICAgICAgICBnbG9idXNfY29tbW9uX2Ny ZWF0ZV9zdHJpbmcoCisgICAgICAgICAgICAgICAgICIlcyVzJXMiLCBjYV9jZXJ0X2RpciwgRklM RV9TRVBBUkFUT1IsIHRtcF9lbnRyeS0+ZF9uYW1lKTsKKyAKK0BAIC02MjM4LDkgKzYyMzgsOSBA QCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfY2FfY2VydF9maWxlc191bml4KAorIAorICAgICAg ICAgICAgIGlmKGZpbGVfbGVuZ3RoID49IChYNTA5X0hBU0hfTEVOR1RIICsgMikgJiYKKyAgICAg ICAgICAgICAgICAoKih0bXBfZW50cnktPmRfbmFtZSArIFg1MDlfSEFTSF9MRU5HVEgpID09ICcu JykgJiYKKy0gICAgICAgICAgICAgICAoc3Ryc3BuKHRtcF9lbnRyeS0+ZF9uYW1lLCAiMDEyMzQ1 Njc4OWFiY2RlZkFCQ0RFRiIpIAorKyAgICAgICAgICAgICAgIChzdHJzcG4odG1wX2VudHJ5LT5k X25hbWUsICIwMTIzNDU2Nzg5YWJjZGVmQUJDREVGIikKKyAgICAgICAgICAgICAgICAgPT0gWDUw OV9IQVNIX0xFTkdUSCkgJiYKKy0gICAgICAgICAgICAgICAoc3Ryc3BuKCh0bXBfZW50cnktPmRf bmFtZSArIChYNTA5X0hBU0hfTEVOR1RIICsgMSkpLCAKKysgICAgICAgICAgICAgICAoc3Ryc3Bu KCh0bXBfZW50cnktPmRfbmFtZSArIChYNTA5X0hBU0hfTEVOR1RIICsgMSkpLAorICAgICAgICAg ICAgICAgICAgICAgICAgIjAxMjM0NTY3ODkiKSA9PSAoZmlsZV9sZW5ndGggLSA5KSkpCisgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICBnbG9idXNfZmlmb19lbnF1ZXVlKGNhX2NlcnRf bGlzdCwgKHZvaWQgKilmdWxsX2ZpbGVuYW1lX3BhdGgpOworQEAgLTYyNjksNyArNjI2OSw3IEBA IGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9jYV9jZXJ0X2ZpbGVzX3VuaXgoCisgCisgICAgIGlm KHRtcF9lbnRyeSAhPSBOVUxMKQorICAgICB7CistCWdsb2J1c19saWJjX2ZyZWUodG1wX2VudHJ5 KTsKKysgICAgICAgIGdsb2J1c19saWJjX2ZyZWUodG1wX2VudHJ5KTsKKyAgICAgfQorIAorICAg ICBHTE9CVVNfSV9HU0lfU1lTQ09ORklHX0RFQlVHX0VYSVQ7CitAQCAtNjI5MCw3ICs2MjkwLDcg QEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2NhX2NlcnRfZmlsZXNfdW5peCgKKyAgKiBAcmV0 dXJuCisgICogICAgICAgIEdMT0JVU19TVUNDRVNTIGlmIG5vIGVycm9yIG9jY3VycmVkLCBvdGhl cndpc2UgYW4gZXJyb3Igb2JqZWN0IElECisgICogICAgICAgIGlzIHJldHVybmVkCistICovIAor KyAqLworIGdsb2J1c19yZXN1bHRfdAorIGdsb2J1c19nc2lfc3lzY29uZmlnX3JlbW92ZV9hbGxf b3duZWRfZmlsZXNfdW5peCgKKyAgICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGVmYXVsdF9maWxlbmFtZSkKK0BAIC02MzIyLDcgKzYzMjIsNyBAQCBnbG9idXNfZ3NpX3N5 c2NvbmZpZ19yZW1vdmVfYWxsX293bmVkX2ZpbGVzX3VuaXgoCisgICAgIHdoaWxlKGdsb2J1c19s aWJjX3JlYWRkaXJfcihzZWN1cmVfdG1wX2RpciwgJmRpcl9lbnRyeSkgPT0gMCAmJgorICAgICAg ICAgICBkaXJfZW50cnkgIT0gTlVMTCkKKyAgICAgeworLSAgICAgICAgaWYoKGRlZmF1bHRfZmls ZW5hbWUgJiYgCisrICAgICAgICBpZigoZGVmYXVsdF9maWxlbmFtZSAmJgorICAgICAgICAgICAg ICFzdHJjbXAoZGlyX2VudHJ5LT5kX25hbWUsIGRlZmF1bHRfZmlsZW5hbWUpKSB8fAorICAgICAg ICAgICAgIXN0cm5jbXAoZGlyX2VudHJ5LT5kX25hbWUsCisgICAgICAgICAgICAgICAgICAgICBY NTA5X1VOSVFVRV9QUk9YWV9GSUxFLAorQEAgLTYzNTAsMTEgKzYzNTAsMTEgQEAgZ2xvYnVzX2dz aV9zeXNjb25maWdfcmVtb3ZlX2FsbF9vd25lZF9maWxlc191bml4KAorICAgICAgICAgICAgICAg ICAgICAgPSAiREVTVFJPWUVEIEJZIEdMT0JVU1xyXG4iOworICAgICAgICAgICAgICAgICBpbnQg ICAgICAgICAgICAgICAgICAgICBmID0gb3BlbihmdWxsX2ZpbGVuYW1lLCBPX1JEV1IpOworICAg ICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICBzaXplLCByZWMsIGxlZnQ7Cist ICAgICAgICAgICAgICAgIGlmIChmKSAKKysgICAgICAgICAgICAgICAgaWYgKGYpCisgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIHNpemUgPSBsc2VlayhmLCAwTCwgU0VF S19FTkQpOworICAgICAgICAgICAgICAgICAgICAgbHNlZWsoZiwgMEwsIFNFRUtfU0VUKTsKKy0g ICAgICAgICAgICAgICAgICAgIGlmIChzaXplID4gMCkgCisrICAgICAgICAgICAgICAgICAgICBp ZiAoc2l6ZSA+IDApCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgcmVjID0gc2l6ZSAvIDY0OworICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgPSBz aXplIC0gcmVjICogNjQ7CitAQCAtNjM2NCw3ICs2MzY0LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25m aWdfcmVtb3ZlX2FsbF9vd25lZF9maWxlc191bml4KAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZWMtLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGxlZnQpCistICAgICAgICAgICAgICAgICAgICAgICAgeyAKKysgICAgICAg ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKGYs IG1zZywgbGVmdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICAgICAgfQorQEAgLTY0MDEsNyArNjQwMSw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX3JlbW92 ZV9hbGxfb3duZWRfZmlsZXNfdW5peCgKKyAgKiBAcmV0dXJuCisgICogICAgICAgIEdMT0JVU19T VUNDRVNTIGlmIG5vIGVycm9yIG9jY3VycmVkLCBvdGhlcndpc2UgYW4gZXJyb3Igb2JqZWN0IElE CisgICogICAgICAgIGlzIHJldHVybmVkCistICovIAorKyAqLworIGdsb2J1c19yZXN1bHRfdAor IGdsb2J1c19nc2lfc3lzY29uZmlnX2lzX3N1cGVydXNlcl91bml4KAorICAgICBpbnQgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpc19zdXBlcnVzZXIpCitAQCAtNjQzNyw3ICs2NDM3 LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfaXNfc3VwZXJ1c2VyX3VuaXgoCisgICogQHJldHVy bgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiBubyBlcnJvciBvY2N1cnJlZCwgb3RoZXJ3 aXNlIGFuIGVycm9yIG9iamVjdCBJRAorICAqICAgICAgICBpcyByZXR1cm5lZAorLSAqLyAKKysg Ki8KKyBnbG9idXNfcmVzdWx0X3QKKyBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfZ3JpZG1hcF9m aWxlbmFtZV91bml4KAorICAgICBjaGFyICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm aWxlbmFtZSkKK0BAIC02NTAyLDcgKzY1MDIsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRf Z3JpZG1hcF9maWxlbmFtZV91bml4KAorICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NP TkZJR19FUlJPUl9DSEFJTl9SRVNVTFQoCisgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisg ICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0dS SURNQVBfRklMRU5BTUUpOworLSAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7ICAgICAgICAgICAg ICAgIAorKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgfQorICAgICAg ICAgfQorICAgICB9CitAQCAtNjUzNSwxNSArNjUzNSwxNSBAQCBnbG9idXNfZ3NpX3N5c2NvbmZp Z19nZXRfZ3JpZG1hcF9maWxlbmFtZV91bml4KAorICAqIEBpbmdyb3VwIGdsb2J1c19nc2lfc3lz Y29uZmlnX3VuaXgKKyAgKiBAZGV0YWlscworICAqIEdldCB0aGUgcGF0aCBhbmQgZmlsZSBuYW1l IG9mIHRoZSBhdXRob3JpemF0aW9uIGNhbGxiYWNrCistICogY29uZmlndXJhdGlvbiBmaWxlIAor KyAqIGNvbmZpZ3VyYXRpb24gZmlsZQorICAqCisgICogQHBhcmFtIGZpbGVuYW1lCisgICogICAg ICAgIENvbnRhaW5zIHRoZSBsb2NhdGlvbiBvZiB0aGUgYXV0aG9yaXphdGlvbiBjYWxsYmFjayBj b25maWd1cmF0aW9uCistICogICAgICAgIGZpbGUgdXBvbiBzdWNjZXNzZnVsIHJldHVybiAKKysg KiAgICAgICAgZmlsZSB1cG9uIHN1Y2Nlc3NmdWwgcmV0dXJuCisgICogQHJldHVybgorICAqICAg ICAgICBHTE9CVVNfU1VDQ0VTUyBpZiBubyBlcnJvciBvY2N1cnJlZCwgb3RoZXJ3aXNlIGFuIGVy cm9yIG9iamVjdCBJRAorICAqICAgICAgICBpcyByZXR1cm5lZAorLSAqLyAKKysgKi8KKyBnbG9i dXNfcmVzdWx0X3QKKyBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfYXV0aHpfY29uZl9maWxlbmFt ZV91bml4KAorICAgICBjaGFyICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFt ZSkKK0BAIC02NTc5LDcgKzY1NzksNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfYXV0aHpf Y29uZl9maWxlbmFtZV91bml4KAorICAgICAgICAgfQorICAgICB9CisgICAgIGVsc2UKKy0gICAg eyAKKysgICAgeworICAgICAgICAgYXV0aHpfZmlsZW5hbWUgPSBnbG9idXNfY29tbW9uX2NyZWF0 ZV9zdHJpbmcoCisgICAgICAgICAgICAgIiVzIiwKKyAgICAgICAgICAgICBERUZBVUxUX0FVVEha X0ZJTEUpOworQEAgLTY2MDAsNyArNjYwMCw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9h dXRoel9jb25mX2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICAgICAgICAgIGF1dGh6X2ZpbGVuYW1l ID0gTlVMTDsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZQorLSAgICAgICAgICAg IHsgCisrICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJ R19FUlJPUl9DSEFJTl9SRVNVTFQoCisgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAg ICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0FVVEha X0ZJTEVOQU1FKTsKK0BAIC02NjM2LDcgKzY2MzYsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19n ZXRfYXV0aHpfY29uZl9maWxlbmFtZV91bml4KAorICAgICAgICAgICAgICAgICAgICAgICAgIGF1 dGh6X2ZpbGVuYW1lID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgIGVsc2UKKy0gICAgICAgICAgICAgICAgICAgIHsgCisrICAgICAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJS T1JfQ0hBSU5fUkVTVUxUKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0dF VFRJTkdfQVVUSFpfRklMRU5BTUUpOworQEAgLTY3MDcsMTkgKzY3MDcsMTkgQEAgZ2xvYnVzX2dz aV9zeXNjb25maWdfZ2V0X2F1dGh6X2NvbmZfZmlsZW5hbWVfdW5peCgKKyB9CisgCisgLyoqCist ICogQGJyaWVmIFVOSVggLSBHZXQgdGhlIHBhdGggYW5kIGZpbGUgbmFtZSBvZiB0aGUgYXV0aG9y aXphdGlvbiBjYWxsYmFjayBjb25maWd1cmF0aW9uIGZpbGUgCisrICogQGJyaWVmIFVOSVggLSBH ZXQgdGhlIHBhdGggYW5kIGZpbGUgbmFtZSBvZiB0aGUgYXV0aG9yaXphdGlvbiBjYWxsYmFjayBj b25maWd1cmF0aW9uIGZpbGUKKyAgKiBAaW5ncm91cCBnbG9idXNfZ3NpX3N5c2NvbmZpZ191bml4 CisgICogQGRldGFpbHMKKyAgKiBHZXQgdGhlIHBhdGggYW5kIGZpbGUgbmFtZSBvZiB0aGUgYXV0 aG9yaXphdGlvbiBjYWxsYmFjaworLSAqIGNvbmZpZ3VyYXRpb24gZmlsZSAKKysgKiBjb25maWd1 cmF0aW9uIGZpbGUKKyAgKgorICAqIEBwYXJhbSBmaWxlbmFtZQorICAqICAgICAgICBDb250YWlu cyB0aGUgbG9jYXRpb24gb2YgdGhlIGF1dGhvcml6YXRpb24gY2FsbGJhY2sgY29uZmlndXJhdGlv bgorLSAqICAgICAgICBmaWxlIHVwb24gc3VjY2Vzc2Z1bCByZXR1cm4gCisrICogICAgICAgIGZp bGUgdXBvbiBzdWNjZXNzZnVsIHJldHVybgorICAqIEByZXR1cm4KKyAgKiAgICAgICAgR0xPQlVT X1NVQ0NFU1MgaWYgbm8gZXJyb3Igb2NjdXJyZWQsIG90aGVyd2lzZSBhbiBlcnJvciBvYmplY3Qg SUQKKyAgKiAgICAgICAgaXMgcmV0dXJuZWQKKy0gKi8gCisrICovCisgZ2xvYnVzX3Jlc3VsdF90 CisgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2F1dGh6X2xpYl9jb25mX2ZpbGVuYW1lX3VuaXgo CisgICAgIGNoYXIgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lKQorQEAg LTY3NTQsMTIgKzY3NTQsMTIgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2F1dGh6X2xpYl9j b25mX2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICB9CisgICAgIH0KKyAgICAgZWxzZQorLSAgICB7 IAorKyAgICB7CisgICAgICAgICBhdXRoel9saWJfZmlsZW5hbWUgPSBnbG9idXNfY29tbW9uX2Ny ZWF0ZV9zdHJpbmcoCisgICAgICAgICAgICAgIiVzJXNfJXMlcyIsCistCSAgICBERUZBVUxUX0FV VEhaX0xJQl9GSUxFX0RJUiwKKy0JICAgIERFRkFVTFRfQVVUSFpfTElCX0ZJTEVfQkFTRSwKKy0J ICAgIGZsYXZvciwKKysgICAgICAgICAgICBERUZBVUxUX0FVVEhaX0xJQl9GSUxFX0RJUiwKKysg ICAgICAgICAgICBERUZBVUxUX0FVVEhaX0xJQl9GSUxFX0JBU0UsCisrICAgICAgICAgICAgZmxh dm9yLAorICAgICAgICAgICAgIERFRkFVTFRfQVVUSFpfTElCX0ZJTEVfRVhURU5TSU9OKTsKKyAg ICAgICAgIGlmKCFhdXRoel9saWJfZmlsZW5hbWUpCisgICAgICAgICB7CitAQCAtNjc3Nyw3ICs2 Nzc3LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2F1dGh6X2xpYl9jb25mX2ZpbGVuYW1l X3VuaXgoCisgICAgICAgICAgICAgICAgIGF1dGh6X2xpYl9maWxlbmFtZSA9IE5VTEw7CisgICAg ICAgICAgICAgfQorICAgICAgICAgICAgIGVsc2UKKy0gICAgICAgICAgICB7IAorKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfQ0hBSU5f UkVTVUxUKAorICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAgICAg ICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfR0VUVElOR19BVVRIWl9MSUJfRklMRU5BTUUp OworQEAgLTY3OTUsMTcgKzY3OTUsMTcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2F1dGh6 X2xpYl9jb25mX2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICAgICAgICAgICAgICAiJXMlcyVzJXNf JXMlcyIsCisgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAg ICAgIEZJTEVfU0VQQVJBVE9SLAorLQkJICAgIElOU1RBTExFRF9BVVRIWl9MSUJfRElSLAorLQkJ ICAgIERFRkFVTFRfQVVUSFpfTElCX0ZJTEVfQkFTRSwKKy0JCSAgICBmbGF2b3IsCistCQkgICAg REVGQVVMVF9BVVRIWl9MSUJfRklMRV9FWFRFTlNJT04pOworKyAgICAgICAgICAgICAgICAgICAg SU5TVEFMTEVEX0FVVEhaX0xJQl9ESVIsCisrICAgICAgICAgICAgICAgICAgICBERUZBVUxUX0FV VEhaX0xJQl9GSUxFX0JBU0UsCisrICAgICAgICAgICAgICAgICAgICBmbGF2b3IsCisrICAgICAg ICAgICAgICAgICAgICBERUZBVUxUX0FVVEhaX0xJQl9GSUxFX0VYVEVOU0lPTik7CisgICAgICAg ICAgICAgICAgIGlmKCFhdXRoel9saWJfZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTVEVNX0NPTkZJR19NQUxMT0NfRVJST1I7 CisgICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgIH0KKyAK Ky0JCXJlc3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0ZJTEVfRVhJU1RTKGF1dGh6X2xpYl9m aWxlbmFtZSk7CisrICAgICAgICAgICAgICAgIHJlc3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklH X0ZJTEVfRVhJU1RTKGF1dGh6X2xpYl9maWxlbmFtZSk7CisgCisgICAgICAgICAgICAgICAgIGlm KHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgICAgICAgICAgICAgeworQEAgLTY4MTUs NyArNjgxNSw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9hdXRoel9saWJfY29uZl9maWxl bmFtZV91bml4KAorICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGh6X2xpYl9maWxlbmFtZSA9 IE5VTEw7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBlbHNl CistICAgICAgICAgICAgICAgICAgICB7IAorKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTQ09ORklHX0VSUk9SX0NIQUlOX1JFU1VM VCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0FVVEhaX0xJ Ql9GSUxFTkFNRSk7CitAQCAtNjgzNiw4ICs2ODM2LDggQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdf Z2V0X2F1dGh6X2xpYl9jb25mX2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICAgICAgICAgICAgICBo b21lX2RpciwKKyAgICAgICAgICAgICAgICAgICAgIEZJTEVfU0VQQVJBVE9SLAorICAgICAgICAg ICAgICAgICAgICAgSE9NRV9BVVRIWl9MSUJfRklMRV9CQVNFLAorLQkJICAgIGZsYXZvciwKKy0J CSAgICBERUZBVUxUX0FVVEhaX0xJQl9GSUxFX0VYVEVOU0lPTik7CisrICAgICAgICAgICAgICAg ICAgICBmbGF2b3IsCisrICAgICAgICAgICAgICAgICAgICBERUZBVUxUX0FVVEhaX0xJQl9GSUxF X0VYVEVOU0lPTik7CisgICAgICAgICAgICAgICAgIGlmKCFhdXRoel9saWJfZmlsZW5hbWUpCisg ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HU0lfU1lTVEVN X0NPTkZJR19NQUxMT0NfRVJST1I7CitAQCAtNjg4NywxOCArNjg4NywxOCBAQCBnbG9idXNfZ3Np X3N5c2NvbmZpZ19nZXRfYXV0aHpfbGliX2NvbmZfZmlsZW5hbWVfdW5peCgKKyB9CisgCisgLyoq CistICogQGJyaWVmIFVOSVggLSBHZXQgdGhlIHBhdGggYW5kIGZpbGUgbmFtZSBvZiB0aGUgZ2Fh IGNvbmZpZ3VyYXRpb24gZmlsZSAKKysgKiBAYnJpZWYgVU5JWCAtIEdldCB0aGUgcGF0aCBhbmQg ZmlsZSBuYW1lIG9mIHRoZSBnYWEgY29uZmlndXJhdGlvbiBmaWxlCisgICogQGluZ3JvdXAgZ2xv YnVzX2dzaV9zeXNjb25maWdfdW5peAorICAqIEBkZXRhaWxzCistICogR2V0IHRoZSBwYXRoIGFu ZCBmaWxlIG5hbWUgb2YgdGhlIEdBQSBjb25maWd1cmF0aW9uIGZpbGUgCisrICogR2V0IHRoZSBw YXRoIGFuZCBmaWxlIG5hbWUgb2YgdGhlIEdBQSBjb25maWd1cmF0aW9uIGZpbGUKKyAgKgorICAq IEBwYXJhbSBmaWxlbmFtZQorICAqICAgICAgICBDb250YWlucyB0aGUgbG9jYXRpb24gb2YgdGhl IEdBQSBjYWxsYmFjayBjb25maWd1cmF0aW9uCistICogICAgICAgIGZpbGUgdXBvbiBzdWNjZXNz ZnVsIHJldHVybiAKKysgKiAgICAgICAgZmlsZSB1cG9uIHN1Y2Nlc3NmdWwgcmV0dXJuCisgICog QHJldHVybgorICAqICAgICAgICBHTE9CVVNfU1VDQ0VTUyBpZiBubyBlcnJvciBvY2N1cnJlZCwg b3RoZXJ3aXNlIGFuIGVycm9yIG9iamVjdCBJRAorICAqICAgICAgICBpcyByZXR1cm5lZAorLSAq LyAKKysgKi8KKyBnbG9idXNfcmVzdWx0X3QKKyBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfZ2Fh X2NvbmZfZmlsZW5hbWVfdW5peCgKKyAgICAgY2hhciAqKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmlsZW5hbWUpCitAQCAtNjkyMiw3ICs2OTIyLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25m aWdfZ2V0X2dhYV9jb25mX2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICAgICAgZ290byBleGl0Owor ICAgICAgICAgfQorIAorLQlyZXN1bHQgPSBHTE9CVVNfR1NJX1NZU0NPTkZJR19GSUxFX0VYSVNU UygKKysgICAgICAgIHJlc3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0ZJTEVfRVhJU1RTKAor ICAgICAgICAgICAgIGdhYV9maWxlbmFtZSk7CisgCisgICAgICAgICBpZihyZXN1bHQgIT0gR0xP QlVTX1NVQ0NFU1MpCitAQCAtNjkzNCw3ICs2OTM0LDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdf Z2V0X2dhYV9jb25mX2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICB9CisgICAgIH0KKyAgICAgZWxz ZQorLSAgICB7IAorKyAgICB7CisgICAgICAgICBnYWFfZmlsZW5hbWUgPSBnbG9idXNfY29tbW9u X2NyZWF0ZV9zdHJpbmcoCisgICAgICAgICAgICAgIiVzIiwKKyAgICAgICAgICAgICBERUZBVUxU X0dBQV9GSUxFKTsKK0BAIC02OTQ0LDcgKzY5NDQsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19n ZXRfZ2FhX2NvbmZfZmlsZW5hbWVfdW5peCgKKyAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAg ICAgICB9CisgCistCXJlc3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0ZJTEVfRVhJU1RTKAor KyAgICAgICAgcmVzdWx0ID0gR0xPQlVTX0dTSV9TWVNDT05GSUdfRklMRV9FWElTVFMoCisgICAg ICAgICAgICAgZ2FhX2ZpbGVuYW1lKTsKKyAKKyAgICAgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNf U1VDQ0VTUykKK0BAIC02OTU1LDcgKzY5NTUsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRf Z2FhX2NvbmZfZmlsZW5hbWVfdW5peCgKKyAgICAgICAgICAgICAgICAgZ2FhX2ZpbGVuYW1lID0g TlVMTDsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZQorLSAgICAgICAgICAgIHsg CisrICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19F UlJPUl9DSEFJTl9SRVNVTFQoCisgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisgICAgICAg ICAgICAgICAgICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9HRVRUSU5HX0dBQV9GSUxF TkFNRSk7CitAQCAtNjk4MCw3ICs2OTgwLDcgQEAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2dh YV9jb25mX2ZpbGVuYW1lX3VuaXgoCisgICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7Cisg ICAgICAgICAgICAgICAgIH0KKyAKKy0JCXJlc3VsdCA9IEdMT0JVU19HU0lfU1lTQ09ORklHX0ZJ TEVfRVhJU1RTKAorKyAgICAgICAgICAgICAgICByZXN1bHQgPSBHTE9CVVNfR1NJX1NZU0NPTkZJ R19GSUxFX0VYSVNUUygKKyAgICAgICAgICAgICAgICAgICAgIGdhYV9maWxlbmFtZSk7CisgCisg ICAgICAgICAgICAgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKK0BAIC02OTkxLDcg KzY5OTEsNyBAQCBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfZ2FhX2NvbmZfZmlsZW5hbWVfdW5p eCgKKyAgICAgICAgICAgICAgICAgICAgICAgICBnYWFfZmlsZW5hbWUgPSBOVUxMOworICAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgZWxzZQorLSAgICAgICAgICAg ICAgICAgICAgeyAKKysgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICBHTE9CVVNfR1NJX1NZU0NPTkZJR19FUlJPUl9DSEFJTl9SRVNVTFQoCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0xPQlVTX0dTSV9TWVNDT05GSUdfRVJST1JfR0VUVElOR19HQUFfRklMRU5BTUUpOworQEAgLTcw NjksNyArNzA2OSw3IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9nYWFfY29uZl9maWxlbmFt ZV91bml4KAorICAqIEdldCBhIHVuaXF1ZSBwcm94eSBjZXJ0IGZpbGVuYW1lLiAgVGhpcyBpcyBt b3N0bHkgdXNlZAorICAqIGZvciBkZWxlZ2F0ZWQgcHJveHkgY3JlZGVudGlhbHMuICBFYWNoIGZp bGVuYW1lIHJldHVybmVkCisgICogaXMgZ29pbmcgdG8gYmUgdW5pcXVlIGZvciBlYWNoIHRpbWUg dGhlIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKy0gKiAKKysgKgorICAqIEBwYXJhbSB1bmlxdWVfZmls ZW5hbWUKKyAgKiAgICAgICAgdGhlIHVuaXF1ZSBmaWxlbmFtZSBmb3IgYSBkZWxlZ2F0ZWQgcHJv eHkgY2VydAorICAqCitAQCAtNzMxNyw3ICs3MzE3LDcgQEAgZG9uZToKKyAvKiBnbG9idXNfZ3Np X3N5c2NvbmZpZ19nZXRfdmhvc3RfY3JlZF9kaXIoKSAqLworIAorIAorLS8qIAorKy8qCisgICog IFdpbmRvd3MgRGVmYXVsdCBEaXJlY3RvcnkgQW5kIEZpbGUgUm91dGluZXMKKyAgKi8KKyAjaWZk ZWYgV0lOMzIKK0BAIC03MzU0LDcgKzczNTQsNyBAQCBjb25zdCBjaGFyICp3aW4zMl9jd2Qodm9p ZCkKKyAgICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3dkICAgICAgICAg ICAgID0gTlVMTDsKKyAgICAgc3RhdGljIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgYnVm ZmVyW01BWF9QQVRIXTsKKyAKKy0gICAgLyogQ29sbGVjdCBlbnZpcm9ubWVudCBhbGwgdmFyaWFi bGVzIHdlIG1pZ2h0IG5lZWQgKi8gICAgCisrICAgIC8qIENvbGxlY3QgZW52aXJvbm1lbnQgYWxs IHZhcmlhYmxlcyB3ZSBtaWdodCBuZWVkICovCisgICAgIHRtcF9wYXRoICAgICAgICA9IGdldGVu digiVE1QIik7CisgICAgIHRlbXBfcGF0aCAgICAgICA9IGdldGVudigiVEVNUCIpOworICAgICBn bG9idXNfbG9jYXRpb24oJmxvY2F0aW9uKTsKK0BAIC03MzY0LDE3ICs3MzY0LDE3IEBAIGNvbnN0 IGNoYXIgKndpbjMyX2N3ZCh2b2lkKQorICAgICB7CisgICAgICAgICByZXR1cm4gbG9jYXRpb247 CisgICAgIH0KKy0gICAgZWxzZSBpZihjd2QpIAorKyAgICBlbHNlIGlmKGN3ZCkKKyAgICAgewor ICAgICAgICAgcmV0dXJuIGJ1ZmZlcjsKKyAgICAgfQorLSAgICAvKiBVc2UgJFRNUCAqLyAgICAg IAorLSAgICBlbHNlIGlmKHRtcF9wYXRoKSAKKysgICAgLyogVXNlICRUTVAgKi8KKysgICAgZWxz ZSBpZih0bXBfcGF0aCkKKyAgICAgeworICAgICAgICAgcmV0dXJuIHRtcF9wYXRoOworICAgICB9 CistICAgIC8qIFVzZSAkVEVNUCAqLyAgICAgIAorLSAgICBlbHNlIGlmKHRlbXBfcGF0aCkgCisr ICAgIC8qIFVzZSAkVEVNUCAqLworKyAgICBlbHNlIGlmKHRlbXBfcGF0aCkKKyAgICAgeworICAg ICAgICAgcmV0dXJuIHRlbXBfcGF0aDsKKyAgICAgfQorZGlmZiAtLWdpdCBhL2dzaS9zeXNjb25m aWcvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9zeXN0ZW1fY29uZmlnLmggYi9nc2kvc3lzY29u ZmlnL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfc3lzdGVtX2NvbmZpZy5oCitpbmRleCAwN2Jl ZTM5OWYuLmNjNDZhYThjNSAxMDA2NDQKKy0tLSBhL2dzaS9zeXNjb25maWcvc291cmNlL2xpYnJh cnkvZ2xvYnVzX2dzaV9zeXN0ZW1fY29uZmlnLmgKKysrKyBiL2dzaS9zeXNjb25maWcvc291cmNl L2xpYnJhcnkvZ2xvYnVzX2dzaV9zeXN0ZW1fY29uZmlnLmgKK0BAIC03Niw3ICs3Niw3IEBAIGV4 dGVybiAiQyIgeworICAqLworIAorIC8qKgorLSAqIEBkZWZncm91cCBnbG9idXNfZ3NpX3N5c2Nv bmZpZ193aW4zMiBGdW5jdGlvbnMgZm9yIFdpbjMyIHBsYXRmb3JtcyAKKysgKiBAZGVmZ3JvdXAg Z2xvYnVzX2dzaV9zeXNjb25maWdfd2luMzIgRnVuY3Rpb25zIGZvciBXaW4zMiBwbGF0Zm9ybXMK KyAgKiBAaW5ncm91cCBnbG9idXNfZ3NpX3N5c2NvbmZpZworICAqIEBicmllZiBGdW5jdGlvbnMg Zm9yIFdpbjMyIHBsYXRmb3JtcworICAqCitAQCAtOTEsNyArOTEsNyBAQCBleHRlcm4gIkMiIHsK KyAgKiBAYnJpZWYgRnVuY3Rpb25zIGZvciBhbGwgcGxhdGZvcm1zCisgICoKKyAgKiBUaGVzZSBm dW5jdGlvbnMgYXJlIHBsYXRmb3JtIGluZGVwZW5kZW50IG1lbWJlcnMgb2YgdGhlIEdsb2J1cyBH U0kgU3lzdGVtCistICogQ29uZmlndXJhdGlvbiBBUEkuIAorKyAqIENvbmZpZ3VyYXRpb24gQVBJ LgorICAqCisgICovCisgCitAQCAtMTM3LDE0ICsxMzcsMTQgQEAgZXh0ZXJuICJDIiB7CisgICog c3Vic2VxdWVudGx5IGNhbGxlZC4gVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIG11bHRpcGxl IHRpbWVzLgorICAqCisgICogVG8gZGVhY3RpdmF0ZSBHbG9idXMgR1NJIFN5c3RlbSBDb25maWd1 cmF0aW9uIEFQSSwgdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorLSAqIG11c3QgYmUgY2FsbGVkOiAK KysgKiBtdXN0IGJlIGNhbGxlZDoKKyAgKgorICAqIEBjb2RlCisgICogICAgZ2xvYnVzX21vZHVs ZV9kZWFjdGl2YXRlKEdMT0JVU19HU0lfU1lTQ09ORklHX01PRFVMRSkKKyAgKiBAZW5kY29kZQor ICAqCisgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uY2UgZm9yIGVhY2ggdGlt ZSBHbG9idXMgR1NJIFN5c3RlbQorLSAqIENvbmZpZ3VyYXRpb24gQVBJIHdhcyBhY3RpdmF0ZWQu IAorKyAqIENvbmZpZ3VyYXRpb24gQVBJIHdhcyBhY3RpdmF0ZWQuCisgICovCisgCisgLyoqIE1v ZHVsZSBkZXNjcmlwdG9yCitAQCAtMTUzLDcgKzE1Myw3IEBAIGV4dGVybiAiQyIgeworICAqLwor ICNkZWZpbmUgR0xPQlVTX0dTSV9TWVNDT05GSUdfTU9EVUxFICAgICgmZ2xvYnVzX2lfZ3NpX3N5 c2NvbmZpZ19tb2R1bGUpCisgCistZXh0ZXJuIAorK2V4dGVybgorIGdsb2J1c19tb2R1bGVfZGVz Y3JpcHRvcl90ICAgICAgICAgICAgICBnbG9idXNfaV9nc2lfc3lzY29uZmlnX21vZHVsZTsKKyAK KyAjaWZkZWYgV0lOMzIKK0BAIC0zNDAsNyArMzQwLDcgQEAgZ2xvYnVzX21vZHVsZV9kZXNjcmlw dG9yX3QgICAgICAgICAgICAgIGdsb2J1c19pX2dzaV9zeXNjb25maWdfbW9kdWxlOworICAgICAg ICAgICAgIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9zaWduaW5nX3BvbGljeV9maWxlbmFtZV91 bml4CisgLyoqCisgICogR2V0IGEgbGlzdCBvZiBvZiB0cnVzdGVkIENBIGNlcnRpZmljYXRlIGZp bGVuYW1lcyBpbiBhIHRydXN0ZWQgQ0EKKy0gKiBjZXJ0aWZpY2F0ZSBkaXJlY3RvcnkuIAorKyAq IGNlcnRpZmljYXRlIGRpcmVjdG9yeS4KKyAgKiBAaW5ncm91cCBnbG9idXNfZ3NpX3N5c3RlbV9j b25maWdfZGVmaW5lcworICAqIEBoaWRlaW5pdGlhbGl6ZXIKKyAgKiBTZWUgZ2xvYnVzX2dzaV9z eXNjb25maWdfZ2V0X2NhX2NlcnRfZmlsZXNfdW5peCgpIGFuZAorQEAgLTM3Niw3ICszNzYsNyBA QCBnbG9idXNfbW9kdWxlX2Rlc2NyaXB0b3JfdCAgICAgICAgICAgICAgZ2xvYnVzX2lfZ3NpX3N5 c2NvbmZpZ19tb2R1bGU7CisgIyAgICBkZWZpbmUgR0xPQlVTX0dTSV9TWVNDT05GSUdfU1BMSVRf RElSX0FORF9GSUxFTkFNRSBcCisgICAgICAgICAgICAgZ2xvYnVzX2dzaV9zeXNjb25maWdfc3Bs aXRfZGlyX2FuZF9maWxlbmFtZV91bml4CisgLyoqCistICogUmVtb3ZlIGFsbCBwcm94aWVzIG93 bmVkIGJ5IGN1cnJlbnQgdWlkIAorKyAqIFJlbW92ZSBhbGwgcHJveGllcyBvd25lZCBieSBjdXJy ZW50IHVpZAorICAqIEBpbmdyb3VwIGdsb2J1c19nc2lfc3lzdGVtX2NvbmZpZ19kZWZpbmVzCisg ICogQGhpZGVpbml0aWFsaXplcgorICAqIFNlZSBnbG9idXNfZ3NpX3N5c2NvbmZpZ19yZW1vdmVf YWxsX293bmVkX2ZpbGVzX3VuaXgoKSBhbmQKK0BAIC0zODUsNyArMzg1LDcgQEAgZ2xvYnVzX21v ZHVsZV9kZXNjcmlwdG9yX3QgICAgICAgICAgICAgIGdsb2J1c19pX2dzaV9zeXNjb25maWdfbW9k dWxlOworICMgICAgZGVmaW5lIEdMT0JVU19HU0lfU1lTQ09ORklHX1JFTU9WRV9BTExfT1dORURf RklMRVMgXAorICAgICAgICAgICAgIGdsb2J1c19nc2lfc3lzY29uZmlnX3JlbW92ZV9hbGxfb3du ZWRfZmlsZXNfdW5peAorIC8qKgorLSAqIERldGVybWluZSB0aGUgbG9jYXRpb24gb2YgdGhlIGdy aWQgbWFwIGZpbGUuIAorKyAqIERldGVybWluZSB0aGUgbG9jYXRpb24gb2YgdGhlIGdyaWQgbWFw IGZpbGUuCisgICogQGluZ3JvdXAgZ2xvYnVzX2dzaV9zeXN0ZW1fY29uZmlnX2RlZmluZXMKKyAg KiBAaGlkZWluaXRpYWxpemVyCisgICogU2VlIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9ncmlk bWFwX2ZpbGVuYW1lX3VuaXgoKSBhbmQKK0BAIC0zOTQsNyArMzk0LDcgQEAgZ2xvYnVzX21vZHVs ZV9kZXNjcmlwdG9yX3QgICAgICAgICAgICAgIGdsb2J1c19pX2dzaV9zeXNjb25maWdfbW9kdWxl OworICMgICAgZGVmaW5lIEdMT0JVU19HU0lfU1lTQ09ORklHX0dFVF9HUklETUFQX0ZJTEVOQU1F IFwKKyAgICAgICAgICAgICBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfZ3JpZG1hcF9maWxlbmFt ZV91bml4CisgLyoqCistICogRGV0ZXJtaW5lIHRoZSBsb2NhdGlvbiBvZiB0aGUgYXV0aG9yaXph dGlvbiBjYWxsb3V0IGNvbmZpZyBmaWxlLiAKKysgKiBEZXRlcm1pbmUgdGhlIGxvY2F0aW9uIG9m IHRoZSBhdXRob3JpemF0aW9uIGNhbGxvdXQgY29uZmlnIGZpbGUuCisgICogQGluZ3JvdXAgZ2xv YnVzX2dzaV9zeXN0ZW1fY29uZmlnX2RlZmluZXMKKyAgKiBAaGlkZWluaXRpYWxpemVyCisgICog U2VlIGdsb2J1c19nc2lfc3lzY29uZmlnX2dldF9hdXRoel9jb25mX2ZpbGVuYW1lX3VuaXgoKQor QEAgLTQwMyw3ICs0MDMsNyBAQCBnbG9idXNfbW9kdWxlX2Rlc2NyaXB0b3JfdCAgICAgICAgICAg ICAgZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ19tb2R1bGU7CisgICAgICAgICAgICAgZ2xvYnVzX2dz aV9zeXNjb25maWdfZ2V0X2F1dGh6X2NvbmZfZmlsZW5hbWVfdW5peAorIAorIC8qKgorLSAqIERl dGVybWluZSB0aGUgbG9jYXRpb24gb2YgdGhlIEdBQSBjYWxsb3V0IGNvbmZpZyBmaWxlLiAKKysg KiBEZXRlcm1pbmUgdGhlIGxvY2F0aW9uIG9mIHRoZSBHQUEgY2FsbG91dCBjb25maWcgZmlsZS4K KyAgKiBAaW5ncm91cCBnbG9idXNfZ3NpX3N5c3RlbV9jb25maWdfZGVmaW5lcworICAqIEBoaWRl aW5pdGlhbGl6ZXIKKyAgKiBTZWUgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X2dhYV9jb25mX2Zp bGVuYW1lX3VuaXgoKQorQEAgLTQzOCw3ICs0MzgsNyBAQCBnbG9idXNfbW9kdWxlX2Rlc2NyaXB0 b3JfdCAgICAgICAgICAgICAgZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ19tb2R1bGU7CisgIyAgICBk ZWZpbmUgR0xPQlVTX0dTSV9TWVNDT05GSUdfR0VUX1BST0NfSURfU1RSSU5HIFwKKyAgICAgICAg ICAgICBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfcHJvY19pZF9zdHJpbmdfdW5peAorIC8qKgor LSAqIEdldCB0aGUgY3VycmVudCB1c2VyIG5hbWUgCisrICogR2V0IHRoZSBjdXJyZW50IHVzZXIg bmFtZQorICAqIEBpbmdyb3VwIGdsb2J1c19nc2lfc3lzdGVtX2NvbmZpZ19kZWZpbmVzCisgICog QGhpZGVpbml0aWFsaXplcgorICAqIFNlZSBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfdXNlcm5h bWVfdW5peCgpIGFuZAorQEAgLTQ1Miw3ICs0NTIsNyBAQCBnbG9idXNfbW9kdWxlX2Rlc2NyaXB0 b3JfdCAgICAgICAgICAgICAgZ2xvYnVzX2lfZ3NpX3N5c2NvbmZpZ19tb2R1bGU7CisgICogR2Vu ZXJhdGUgYSB1bmlxdWUgcHJveHkgZmlsZSBuYW1lCisgICogQGluZ3JvdXAgZ2xvYnVzX2dzaV9z eXN0ZW1fY29uZmlnX2RlZmluZXMKKyAgKiBAaGlkZWluaXRpYWxpemVyCistICogU2VlIGdsb2J1 c19nc2lfc3lzY29uZmlnX2dldF91bmlxdWVfcHJveHlfZmlsZW5hbWUoKSAKKysgKiBTZWUgZ2xv YnVzX2dzaV9zeXNjb25maWdfZ2V0X3VuaXF1ZV9wcm94eV9maWxlbmFtZSgpCisgICovCisgI2Rl ZmluZSAgICAgR0xPQlVTX0dTSV9TWVNDT05GSUdfR0VUX1VOSVFVRV9QUk9YWV9GSUxFTkFNRSBc CisgICAgICAgICAgICAgZ2xvYnVzX2dzaV9zeXNjb25maWdfZ2V0X3VuaXF1ZV9wcm94eV9maWxl bmFtZQorLS0gCisyLjU0LjAKKwoKZGlmZiAtLWdpdCBhLzAwMDItQnVpbGQtd2l0aC1PcGVuU1NM LTQucGF0Y2ggYi8wMDAyLUJ1aWxkLXdpdGgtT3BlblNTTC00LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OTMyNjgKLS0tIC9kZXYvbnVsbAorKysgYi8wMDAyLUJ1 aWxkLXdpdGgtT3BlblNTTC00LnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zyb20gMjQzNzViODUw M2QyYTQzNzM2MDBiMTRkMDM3MDBiNjk3NDE1NzM3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPgorRGF0 ZTogV2VkLCAyMCBNYXkgMjAyNiAwMDoxNTozNyArMDIwMAorU3ViamVjdDogW1BBVENIIDIvMl0g QnVpbGQgd2l0aCBPcGVuU1NMIDQKKworLS0tCisgZ3NpL3N5c2NvbmZpZy9zb3VyY2UvbGlicmFy eS9nbG9idXNfZ3NpX3N5c3RlbV9jb25maWcuYyB8IDggKysrKysrKysKKyBnc2kvc3lzY29uZmln L3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfc3lzdGVtX2NvbmZpZy5oIHwgNCArKysrCisgMiBm aWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc2kvc3lzY29u ZmlnL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfc3lzdGVtX2NvbmZpZy5jIGIvZ3NpL3N5c2Nv bmZpZy9zb3VyY2UvbGlicmFyeS9nbG9idXNfZ3NpX3N5c3RlbV9jb25maWcuYworaW5kZXggZGRk ZmVkZDIzLi5lNDI4ZDZjYzEgMTAwNjQ0CistLS0gYS9nc2kvc3lzY29uZmlnL3NvdXJjZS9saWJy YXJ5L2dsb2J1c19nc2lfc3lzdGVtX2NvbmZpZy5jCisrKysgYi9nc2kvc3lzY29uZmlnL3NvdXJj ZS9saWJyYXJ5L2dsb2J1c19nc2lfc3lzdGVtX2NvbmZpZy5jCitAQCAtMzYxNCw3ICszNjE0LDEx IEBAIGdsb2J1c19nc2lfc3lzY29uZmlnX2lzX3N1cGVydXNlcl93aW4zMigKKyAgKi8KKyBnbG9i dXNfcmVzdWx0X3QKKyBnbG9idXNfZ3NpX3N5c2NvbmZpZ19nZXRfc2lnbmluZ19wb2xpY3lfZmls ZW5hbWVfd2luMzIoCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTAor ICAgICBYNTA5X05BTUUgKiAgICAgICAgICAgICAgICAgICAgICAgICBjYV9uYW1lLAorKyNlbHNl CisrICAgIGNvbnN0IFg1MDlfTkFNRSAqICAgICAgICAgICAgICAgICAgIGNhX25hbWUsCisrI2Vu ZGlmCisgICAgIGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRfZGlyLAor ICAgICBjaGFyICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduaW5nX3BvbGljeV9m aWxlbmFtZSkKKyB7CitAQCAtNjA1Nyw3ICs2MDYxLDExIEBAIGdsb2J1c19nc2lfc3lzY29uZmln X2dldF9wcm94eV9maWxlbmFtZV91bml4KAorICAqLworIGdsb2J1c19yZXN1bHRfdAorIGdsb2J1 c19nc2lfc3lzY29uZmlnX2dldF9zaWduaW5nX3BvbGljeV9maWxlbmFtZV91bml4KAorKyNpZiBP UEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKKyAgICAgWDUwOV9OQU1FICogICAg ICAgICAgICAgICAgICAgICAgICAgY2FfbmFtZSwKKysjZWxzZQorKyAgICBjb25zdCBYNTA5X05B TUUgKiAgICAgICAgICAgICAgICAgICBjYV9uYW1lLAorKyNlbmRpZgorICAgICBjaGFyICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0X2RpciwKKyAgICAgY2hhciAqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2lnbmluZ19wb2xpY3lfZmlsZW5hbWUpCisgeworZGlmZiAt LWdpdCBhL2dzaS9zeXNjb25maWcvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9zeXN0ZW1fY29u ZmlnLmggYi9nc2kvc3lzY29uZmlnL3NvdXJjZS9saWJyYXJ5L2dsb2J1c19nc2lfc3lzdGVtX2Nv bmZpZy5oCitpbmRleCBjYzQ2YWE4YzUuLmQ5Yjk4ODZkZCAxMDA2NDQKKy0tLSBhL2dzaS9zeXNj b25maWcvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9zeXN0ZW1fY29uZmlnLmgKKysrKyBiL2dz aS9zeXNjb25maWcvc291cmNlL2xpYnJhcnkvZ2xvYnVzX2dzaV9zeXN0ZW1fY29uZmlnLmgKK0BA IC01MjcsNyArNTI3LDExIEBAIEdMT0JVU19HU0lfU1lTQ09ORklHX0dFVF9QUk9YWV9GSUxFTkFN RSgKKyAKKyBnbG9idXNfcmVzdWx0X3QKKyBHTE9CVVNfR1NJX1NZU0NPTkZJR19HRVRfU0lHTklO R19QT0xJQ1lfRklMRU5BTUUoCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAw MDAwTAorICAgICBYNTA5X05BTUUgKiAgICAgICAgICAgICAgICAgICAgICAgICBjYV9uYW1lLAor KyNlbHNlCisrICAgIGNvbnN0IFg1MDlfTkFNRSAqICAgICAgICAgICAgICAgICAgIGNhX25hbWUs CisrI2VuZGlmCisgICAgIGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRf ZGlyLAorICAgICBjaGFyICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduaW5nX3Bv bGljeV9maWxlbmFtZSk7CisgCistLSAKKzIuNTQuMAorCgpkaWZmIC0tZ2l0IGEvZ2xvYnVzLWdz aS1zeXNjb25maWcuc3BlYyBiL2dsb2J1cy1nc2ktc3lzY29uZmlnLnNwZWMKaW5kZXggYmQ5MDhh Zi4uNGQwNDQ0NCAxMDA2NDQKLS0tIGEvZ2xvYnVzLWdzaS1zeXNjb25maWcuc3BlYworKysgYi9n bG9idXMtZ3NpLXN5c2NvbmZpZy5zcGVjCkBAIC04LDYgKzgsOCBAQCBMaWNlbnNlOglBcGFjaGUt Mi4wCiBVUkw6CQlodHRwczovL2dpdGh1Yi5jb20vZ3JpZGNmL2djdC8KIFNvdXJjZToJCWh0dHBz Oi8vcmVwby5ncmlkY2Yub3JnL2djdDYvc291cmNlcy8le19uYW1lfS0le3ZlcnNpb259LnRhci5n egogU291cmNlODoJUkVBRE1FCitQYXRjaDA6CQkwMDAxLVVudGFiaWZ5LWFuZC1yZW1vdmUtdHJh aWxpbmctd2hpdGUtc3BhY2UucGF0Y2gKK1BhdGNoMToJCTAwMDItQnVpbGQtd2l0aC1PcGVuU1NM LTQucGF0Y2gKIAogQnVpbGRSZXF1aXJlczoJbWFrZQogQnVpbGRSZXF1aXJlczoJZ2NjCkBAIC02 NSw2ICs2Nyw4IEBAIEdsb2J1cyBHU0kgU3lzdGVtIENvbmZpZyBMaWJyYXJ5IERvY3VtZW50YXRp b24gRmlsZXMKIAogJXByZXAKICVzZXR1cCAtcSAtbiAle19uYW1lfS0le3ZlcnNpb259CislcGF0 Y2ggLVAwIC1wNAorJXBhdGNoIC1QMSAtcDQKIAogJWJ1aWxkCiAjIFJlZHVjZSBvdmVybGlua2lu ZwpAQCAtMTIwLDYgKzEyNCw5IEBAIG1rZGlyIC1wICV7YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9 L2dyaWQtc2VjdXJpdHkKICVsaWNlbnNlIEdMT0JVU19MSUNFTlNFCiAKICVjaGFuZ2Vsb2cKKyog U3VuIEp1biAxNCAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1 LnNlPiAtIDkuNi01CistIENvbXBpbGUgd2l0aCBPcGVuU1NMIDQKKwogKiBGcmkgSmFuIDE2IDIw MjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4g LSA5LjYtNQogLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVk b3JhXzQ0X01hc3NfUmVidWlsZAogCg==