From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 53D7D2562D for ; Thu, 7 Mar 2024 03:44:15 +0100 (CET) Content-Type: multipart/mixed; boundary="===============5482845153302003237==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_glibc=3A_update_to_2=2E39=2E?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org Message-ID: Date: Thu, 07 Mar 2024 03:44:15 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============5482845153302003237== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IG9yZW82MzkgYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL29yZW82Mzkv dm9pZC1wYWNrYWdlcyBnbGliYzIuMzkKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzQ5MTYzCgpnbGliYzogdXBkYXRlIHRvIDIuMzkuCjwhLS0gVW5jb21t ZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0aW9ucyB3aGljaCBhcmUgbm90IGFw cGxpY2FibGUgLS0+DQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUg Y2hhbmdlcyBpbiB0aGlzIFBSOiAqKmJyaWVmbHkqKg0KDQpbY2kgc2tpcF0NCg0KRGVwZW5kcyBv bjogaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ5MTQ2 DQpTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVz LzQ5MTYyDQoNCk5vIG1ham9yIHBhY2thZ2luZyBjaGFuZ2VzIGluZGljYXRlZCBieSB1cHN0cmVh bToNCmh0dHBzOi8vc291cmNld2FyZS5vcmcvZ2xpYmMvd2lraS9SZWxlYXNlLzIuMzkNCmh0dHBz Oi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvaW5mby1nbnUvMjAyNC0wMS9tc2cwMDAxNy5o dG1sDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3Jt cyB0byB0aGUgW3BhY2thZ2UgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNwYWNrYWdlLXJl cXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0aGUgYnVp bGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91cnMsIHBsZWFzZSBhZGQgY2kgc2tp cCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0 aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVk LCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMg UFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+DQo8IS0tDQojIyMjIExvY2FsIGJ1aWxkIHRlc3Rp bmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUs IChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRl Y3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVz bA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1tdXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20g aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ5MTYzLnBh dGNoIGlzIGF0dGFjaGVk --===============5482845153302003237== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-glibc2.39-49163.patch" RnJvbSBkNWUyM2UzYzA3MTI2ZGQ3ZTNmMzM0ODA3ZTVkN2M2ZWFkMGIxOWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmV3IEouIEhlc2ZvcmQiIDxhamhAc2lkZWJhbmQub3Jn PgpEYXRlOiBXZWQsIDYgTWFyIDIwMjQgMDg6NDY6NDMgLTA1MDAKU3ViamVjdDogW1BBVENIIDAx LzE0XSBnbGliYzogY2xlYW4gdXAgaW5zdGFsbCwgYWRkIEMuVVRGLTggbG9jYWxlIGJ5IGRlZmF1 bHQKCi0tLQogc3JjcGtncy9nbGliYy90ZW1wbGF0ZSB8IDMzICsrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2xp YmMvdGVtcGxhdGUKaW5kZXggYWJkMmFkODQ2YzlkZTEuLjZmYWVlM2RiODEzM2ZmIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dsaWJjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbGliYycKIHBrZ25hbWU9Z2xp YmMKIHZlcnNpb249Mi4zOAotcmV2aXNpb249NQorcmV2aXNpb249NgogYm9vdHN0cmFwPXllcwog c2hvcnRfZGVzYz0iR05VIEMgbGlicmFyeSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0xMjMsMjMgKzEyMywzOCBAQCBkb19idWlsZCgpIHsKIAll bnYgTERGTEFHUy5zbz0iLVdsLC0taGFzaC1zdHlsZT1ib3RoIiBMREZMQUdTLXJ0bGQ9Ii1XbCwt LWhhc2gtc3R5bGU9Ym90aCIgXAogCQltYWtlICR7bWFrZWpvYnN9CiB9CisKIGRvX2luc3RhbGwo KSB7CiAJdmxpY2Vuc2UgTElDRU5TRVMKIAkjIENyZWF0ZSBERVNURElSL2V0Yy9sZC5zby5jb25m CiAJbWtkaXIgLXAgJHtERVNURElSfS9ldGMKIAllY2hvICJpbmNsdWRlIC9ldGMvbGQuc28uY29u Zi5kLyouY29uZiIgPiAke0RFU1RESVJ9L2V0Yy9sZC5zby5jb25mCiAKLQljZCBidWlsZAotCW1h a2UgaW5zdGFsbF9yb290PSR7REVTVERJUn0gaW5zdGFsbAorCSggY2QgYnVpbGQgJiYgbWFrZSBp bnN0YWxsX3Jvb3Q9JHtERVNURElSfSBpbnN0YWxsICkKKworCSMgVGhlIEMuVVRGLTggbG9jYWxl IHNob3VsZCBhbHdheXMgYmUgYXZhaWxhYmxlCisJaWYgWyAteiAiJHtDUk9TU19CVUlMRH0iIF07 IHRoZW4KKwkJbWFrZSAtQyBsb2NhbGVkYXRhIERFU1RESVI9IiR7REVTVERJUn0iIFwKKwkJCW9i amRpcj0iLi4vYnVpbGQiIGluc3RhbGwtZmlsZXMtQy5VVEYtOC9VVEYtOAorCWVsc2UKKwkJbG9j YWwgZW5kaWFuPQorCQljYXNlICIkWEJQU19UQVJHRVRfRU5ESUFOIiBpbgorCQkJYmUpIGVuZGlh bj0iLS1iaWctZW5kaWFuIiA7OworCQkJbGUpIGVuZGlhbj0iLS1saXR0bGUtZW5kaWFuIiA7Owor CQllc2FjCisKKwkJdm1rZGlyIHVzci9saWIvbG9jYWxlCisJCUkxOE5QQVRIPS4vbG9jYWxlZGF0 YSBsb2NhbGVkZWYgLS1wcmVmaXg9IiR7REVTVERJUn0iICR7ZW5kaWFufSBcCisJCQktaSBDIC1m IFVURi04IC0tbm8tYXJjaGl2ZSAiJHtERVNURElSfS91c3IvbGliL2xvY2FsZS9DLnV0ZjgiCisJ ZmkKIAogCSMgY3JlYXRlIC9ldGMvZGVmYXVsdC9saWJjLWxvY2FsZXMKIAl2aW5zdGFsbCAke0ZJ TEVTRElSfS9saWJjLWxvY2FsZXMgNjQ0IGV0Yy9kZWZhdWx0Ci0JY3AgJHt3cmtzcmN9L2xvY2Fs ZWRhdGEvU1VQUE9SVEVEICR7d3Jrc3JjfS9idWlsZAotCXNlZCAtaQktZSAic3wvfCB8ZyIgXAor CXNlZCAtZSAic3wvfCB8ZyIgXAogCQktZSAnc3xcXHwgfGcnIFwKIAkJLWUgInN8U1VQUE9SVEVE LUxPQ0FMRVM9fHwiIFwKLQkJLWUgInN8XnwjfGciICR7d3Jrc3JjfS9idWlsZC9TVVBQT1JURUQK LQljYXQgJHt3cmtzcmN9L2J1aWxkL1NVUFBPUlRFRCA+PiAke0RFU1RESVJ9L2V0Yy9kZWZhdWx0 L2xpYmMtbG9jYWxlcworCQktZSAic3xefCN8ZyIgbG9jYWxlZGF0YS9TVVBQT1JURUQgXAorCQkJ Pj4gIiR7REVTVERJUn0vZXRjL2RlZmF1bHQvbGliYy1sb2NhbGVzIgogCiAJIyBsZGQgaXMgYSBi YXNoIHNjcmlwdCwgc28gbWFrZSBpdCBydW4gYXMgc3VjaC4KIAlyZXBsYWNlX2ludGVycHJldGVy IGJhc2ggJHtERVNURElSfS91c3IvYmluL2xkZApAQCAtMTYyLDcgKzE3Nyw3IEBAIGRvX2luc3Rh bGwoKSB7CiAJCWFybXY/bCkgbG4gLXNmciAke0RFU1RESVJ9L3Vzci9saWIvbGQtbGludXgtYXJt aGYuc28uMyAke0RFU1RESVJ9L3Vzci9saWIvbGQtbGludXguc28uMzs7CiAJZXNhYwogCi0Jdmlu c3RhbGwgJHt3cmtzcmN9L3Bvc2l4L2dhaS5jb25mIDY0NCBldGMKKwl2aW5zdGFsbCBwb3NpeC9n YWkuY29uZiA2NDQgZXRjCiAJcm0gLXJmICR7REVTVERJUn0vdmFyL2RiCiAJIyBSZW1vdmUgdHpz ZWxlY3QgYW5kIHp7ZHVtcCxpY30sIHByb3ZpZGVkIGJ5IHR6dXRpbHMuCiAJcm0gLWYgJHtERVNU RElSfS91c3IvYmluL3R6c2VsZWN0CkBAIC0xODUsNiArMjAwLDcgQEAgZ2xpYmMtZGV2ZWxfcGFj a2FnZSgpIHsKIAkJZmkKIAl9CiB9CisKIGdsaWJjLWxvY2FsZXNfcGFja2FnZSgpIHsKIAljb25m X2ZpbGVzPSIvZXRjL2RlZmF1bHQvbGliYy1sb2NhbGVzIgogCXNob3J0X2Rlc2MrPSIgLSBsb2Nh bGUgZGF0YSBmaWxlcyIKQEAgLTE5NCw2ICsyMTAsNyBAQCBnbGliYy1sb2NhbGVzX3BhY2thZ2Uo KSB7CiAJCXZtb3ZlIHVzci9zaGFyZS9sb2NhbGUKIAl9CiB9CisKIG5zY2RfcGFja2FnZSgpIHsK IAljb25mX2ZpbGVzPSIvZXRjL25zY2QuY29uZiIKIAlzaG9ydF9kZXNjKz0iIC0gTmFtZSBTZXJ2 aWNlIENhY2hlIERhZW1vbiIKCkZyb20gYmY3MzRiYTc5MzNkYzgyNmI4NTU1NmE1MTViYjllZDdj ZmI4OTAwMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkFuZHJldyBKLiBIZXNmb3Jk IiA8YWpoQHNpZGViYW5kLm9yZz4KRGF0ZTogV2VkLCA2IE1hciAyMDI0IDEwOjA1OjQ2IC0wNTAw ClN1YmplY3Q6IFtQQVRDSCAwMi8xNF0gY29tbW9uL2hvb2tzL3ByZS1wa2cvOTktcGtnbGludC5z aDogYWxsb3cgQy51dGY4IGxvY2FsZQogaW4gZ2xpYmMgcGFja2FnZQoKLS0tCiBjb21tb24vaG9v a3MvcHJlLXBrZy85OS1wa2dsaW50LnNoIHwgMTggKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9j b21tb24vaG9va3MvcHJlLXBrZy85OS1wa2dsaW50LnNoIGIvY29tbW9uL2hvb2tzL3ByZS1wa2cv OTktcGtnbGludC5zaAppbmRleCAzMGQ5N2ZjZGE0MGQ0Ni4uOTBjYjA3ZGEzZjRhZmYgMTAwNjQ0 Ci0tLSBhL2NvbW1vbi9ob29rcy9wcmUtcGtnLzk5LXBrZ2xpbnQuc2gKKysrIGIvY29tbW9uL2hv b2tzL3ByZS1wa2cvOTktcGtnbGludC5zaApAQCAtNzksOCArNzksMjIgQEAgaG9vaygpIHsKIAog CSMgQ2hlY2sgZm9yIGwxMG4gZmlsZXMgaW4gdXNyL2xpYi9sb2NhbGUKIAlpZiBbIC1kICR7UEtH REVTVERJUn0vdXNyL2xpYi9sb2NhbGUgXTsgdGhlbgotCQltc2dfcmVkICIke3BrZ3Zlcn06IC91 c3IvbGliL2xvY2FsZSBpcyBmb3JiaWRkZW4sIHVzZSAvdXNyL3NoYXJlL2xvY2FsZSFcbiIKLQkJ ZXJyb3I9MQorCQlsb2NhbCBsb2NhbGVfYWxsb3c9MCBsZGlyCisJCWxvY2FsIGxyb290PSIke1BL R0RFU1RESVJ9L3Vzci9saWIvbG9jYWxlIgorCisJCWlmIFsgIiR7cGtnbmFtZX0iID0gImdsaWJj IiBdOyB0aGVuCisJCQkjIGdsaWJjIGdldHMgYW4gZXhjZXB0aW9uIGZvciBpdHMgaW5jbHVkZWQg Qy51dGY4IGxvY2FsZQorCQkJbG9jYWxlX2FsbG93PTEKKwkJCWZvciBsZGlyIGluICIke2xyb290 fSIvKjsgZG8KKwkJCQlbICIke2xkaXJ9IiA9ICIke2xyb290fS9DLnV0ZjgiIF0gJiYgY29udGlu dWUKKwkJCQlsb2NhbGVfYWxsb3c9MAorCQkJZG9uZQorCQlmaQorCisJCWlmIFsgIiR7bG9jYWxl X2FsbG93fSIgLW5lIDEgXTsgdGhlbgorCQkJbXNnX3JlZCAiJHtwa2d2ZXJ9OiAvdXNyL2xpYi9s b2NhbGUgaXMgZm9yYmlkZGVuLCB1c2UgL3Vzci9zaGFyZS9sb2NhbGUhXG4iCisJCQllcnJvcj0x CisJCWZpCiAJZmkKIAogCSMgQ2hlY2sgZm9yIGJhc2ggY29tcGxldGlvbnMgaW4gZXRjL2Jhc2hf Y29tcGxldGlvbi5kCgpGcm9tIDc4YWQzMzA3MmMwM2FlZmQ2NzI3ZmJkNTg4MDVhN2QyZjFjZTEz ZDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWls LmNvbT4KRGF0ZTogV2VkLCA2IE1hciAyMDI0IDE3OjU5OjExIC0wODAwClN1YmplY3Q6IFtQQVRD SCAwMy8xNF0gZ2xpYmM6IHVwZGF0ZSB0byAyLjM5LgoKLS0tCiAuLi40ZjEwYjUwNGJjNDU2NGU5 ZjIyZjAwOTA3MDkzZjFhYjkzMzgucGF0Y2ggfCAgMzM1IC0tLS0tLQogLi4uMWEwMDQ3ZmIyNmE2 NWE5YjJhN2I4Y2Q5NzcyNDNmN2QzNTNjLnBhdGNoIHwgMTA1OCArKysrKysrKysrKysrKysrKwog Li4uMTEwNTg1MjU2OGMzZWJjNzEyMjI1YWU3OGI4YzhiYTMxYTc4LnBhdGNoIHwgIDI5NiAtLS0t LQogLi4uZmMxY2YwOTQ0MDZhMTM4ZTRkMWJjZjk1NTNlNTllZGNmODlkLnBhdGNoIHwgIDI1MiAt LS0tCiAuLi4xNTk2MjZiNjdmZTExZjM5ZTgzZTIyMmNmNDM0OGEzOTYyZjMucGF0Y2ggfCAgIDgw ICsrCiAuLi41ZTRmZGExZjZkYWI0YmY3NDQyNzA2ZmUzMDNiZjI4MzAzNmMucGF0Y2ggfCAgIDM3 ICsKIHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02MjQ2LnBhdGNoICAgICB8ICAxNzgg LS0tCiBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjc3OS5wYXRjaCAgICAgfCAgMTAz IC0tCiBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjc4MC5wYXRjaCAgICAgfCAgIDM4 IC0KIC4uLjA4ZGQ3NzRiNjE3Zjk5NDE5YmRjM2NmMmFjZTQ1NjBjZDJkNi5wYXRjaCB8ICAxOTIg LS0tCiAuLi50ZS1HTElCQ19UVU5BQkxFUy1pbi1zZXR4aWQtYmluYXJpZXMucGF0Y2ggfCAgMTk4 IC0tLQogc3JjcGtncy9nbGliYy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg NiArLQogMTIgZmlsZXMgY2hhbmdlZCwgMTE3OCBpbnNlcnRpb25zKCspLCAxNTk1IGRlbGV0aW9u cygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8wMGFlNGYxMGI1 MDRiYzQ1NjRlOWYyMmYwMDkwNzA5M2YxYWI5MzM4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9nbGliYy9wYXRjaGVzLzFiOWMxYTAwNDdmYjI2YTY1YTliMmE3YjhjZDk3NzI0M2Y3 ZDM1M2MucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzA3 MjMtMS01NDJiMTEwNTg1MjU2OGMzZWJjNzEyMjI1YWU3OGI4YzhiYTMxYTc4LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGliYy9wYXRjaGVzLzMwNzIzLTItMGRjN2ZjMWNmMDk0 NDA2YTEzOGU0ZDFiY2Y5NTUzZTU5ZWRjZjg5ZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZ2xpYmMvcGF0Y2hlcy8zMTJlMTU5NjI2YjY3ZmUxMWYzOWU4M2UyMjJjZjQzNDhhMzk2 MmYzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGliYy9wYXRjaGVzLzYzMjk1 ZTRmZGExZjZkYWI0YmY3NDQyNzA2ZmUzMDNiZjI4MzAzNmMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjI0Ni5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02Nzc5LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTY3ODAucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsaWJjL3BhdGNoZXMvYjI1NTA4ZGQ3NzRiNjE3 Zjk5NDE5YmRjM2NmMmFjZTQ1NjBjZDJkNi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZ2xpYmMvcGF0Y2hlcy9jb21taXR0ZWQtMS0yLVByb3BhZ2F0ZS1HTElCQ19UVU5BQkxFUy1p bi1zZXR4aWQtYmluYXJpZXMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNo ZXMvMDBhZTRmMTBiNTA0YmM0NTY0ZTlmMjJmMDA5MDcwOTNmMWFiOTMzOC5wYXRjaCBiL3NyY3Br Z3MvZ2xpYmMvcGF0Y2hlcy8wMGFlNGYxMGI1MDRiYzQ1NjRlOWYyMmYwMDkwNzA5M2YxYWI5MzM4 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjUzODc2NzgwOWI4Mi4uMDAw MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGliYy9wYXRjaGVzLzAwYWU0ZjEwYjUwNGJjNDU2 NGU5ZjIyZjAwOTA3MDkzZjFhYjkzMzgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMzUgKzAs MCBAQAotRnJvbSAwMGFlNGYxMGI1MDRiYzQ1NjRlOWYyMmYwMDkwNzA5M2YxYWI5MzM4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBz b3VyY2V3YXJlLm9yZz4KLURhdGU6IEZyaSwgMTUgU2VwIDIwMjMgMTM6NTE6MTIgLTA0MDAKLVN1 YmplY3Q6IFtQQVRDSF0gZ2V0YWRkcmluZm86IEZpeCB1c2UgYWZ0ZXIgZnJlZSBpbiBnZXRjYW5v bm5hbWUKLSAoQ1ZFLTIwMjMtNDgwNikKLQotV2hlbiBhbiBOU1MgcGx1Z2luIG9ubHkgaW1wbGVt ZW50cyB0aGUgX2dldGhvc3RieW5hbWUyX3IgYW5kCi1fZ2V0Y2Fub25uYW1lX3IgY2FsbGJhY2tz LCBnZXRhZGRyaW5mbyBjb3VsZCB1c2UgbWVtb3J5IHRoYXQgd2FzIGZyZWVkCi1kdXJpbmcgdG1w YnVmIHJlc2l6aW5nLCB0aHJvdWdoIGhfbmFtZSBpbiBhIHByZXZpb3VzIHF1ZXJ5IHJlc3BvbnNl LgotCi1UaGUgYmFja2luZyBzdG9yZSBmb3IgcmVzLT5hdC0+bmFtZSB3aGVuIGRvaW5nIGEgcXVl cnkgd2l0aAotZ2V0aG9zdGJ5bmFtZTNfciBvciBnZXRob3N0YnluYW1lMl9yIGlzIHRtcGJ1Ziwg d2hpY2ggaXMgcmVhbGxvY2F0ZWQgaW4KLWdldGhvc3RzIGR1cmluZyB0aGUgcXVlcnkuICBGb3Ig QUZfSU5FVDYgbG9va3VwIHdpdGggQUlfQUxMIHwKLUFJX1Y0TUFQUEVELCBnZXRob3N0cyBnZXRz IGNhbGxlZCB0d2ljZSwgb25jZSBmb3IgYSB2NiBsb29rdXAgYW5kIHNlY29uZAotZm9yIGEgdjQg bG9va3VwLiAgSW4gdGhpcyBjYXNlLCBpZiB0aGUgZmlyc3QgY2FsbCByZWFsbG9jYXRlcyB0bXBi dWYKLWVub3VnaCBudW1iZXIgb2YgdGltZXMsIHJlc3VsdGluZyBpbiBhIG1hbGxvYywgdGgtPmhf bmFtZSAodGhhdAotcmVzLT5hdC0+bmFtZSByZWZlcnMgdG8pIGVuZHMgdXAgb24gYSBoZWFwIGFs bG9jYXRlZCBzdG9yYWdlIGluIHRtcGJ1Zi4KLU5vdyBpZiB0aGUgc2Vjb25kIGNhbGwgdG8gZ2V0 aG9zdHMgYWxzbyBjYXVzZXMgdGhlIHBsdWdpbiBjYWxsYmFjayB0bwotcmV0dXJuIE5TU19TVEFU VVNfVFJZQUdBSU4sIHRtcGJ1ZiB3aWxsIGdldCBmcmVlZCwgcmVzdWx0aW5nIGluIGEgVUFGCi1y ZWZlcmVuY2UgaW4gcmVzLT5hdC0+bmFtZS4gIFRoaXMgdGhlbiBnZXRzIGRlcmVmZXJlbmNlZCBp biB0aGUKLWdldGNhbm9ubmFtZV9yIHBsdWdpbiBjYWxsLCByZXN1bHRpbmcgaW4gdGhlIHVzZSBh ZnRlciBmcmVlLgotCi1GaXggdGhpcyBieSBjb3B5aW5nIGhfbmFtZSBvdmVyIGFuZCBmcmVlaW5n IGl0IGF0IHRoZSBlbmQuICBUaGlzCi1yZXNvbHZlcyBCWiAjMzA4NDMsIHdoaWNoIGlzIGFzc2ln bmVkIENWRS0yMDIzLTQ4MDYuCi0KLVNpZ25lZC1vZmYtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8 c2lkZGhlc2hAc291cmNld2FyZS5vcmc+Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA5NzNm ZTkzYTU2NzVjNDI3OThiMjE2MWM2ZjI5YzAxYjBlMjQzOTk0KQotLS0tCi0gbnNzL01ha2VmaWxl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKy0KLSBuc3MvbnNzX3Rl c3RfZ2FpX2h2Ml9jYW5vbm5hbWUuYyAgICAgICAgICAgICAgfCA1NiArKysrKysrKysrKysrKysr KwotIG5zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmMgICAgICAgICAgICAgICB8IDYzICsr KysrKysrKysrKysrKysrKysKLSBuc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5oICAgICAg ICAgICAgICAgfCAgMSArCi0gLi4uL3Bvc3RjbGVhbi5yZXEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDAKLSAuLi4vdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5zY3JpcHQgICAgICAg ICAgfCAgMiArCi0gc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jICAgICAgICAgICAgICAgICAg IHwgMjUgKysrKystLS0KLSA3IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCAxMCBk ZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgbnNzL25zc190ZXN0X2dhaV9odjJfY2Fu b25uYW1lLmMKLSBjcmVhdGUgbW9kZSAxMDA2NDQgbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5h bWUuYwotIGNyZWF0ZSBtb2RlIDEwMDY0NCBuc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5o Ci0gY3JlYXRlIG1vZGUgMTAwNjQ0IG5zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnJvb3Qv cG9zdGNsZWFuLnJlcQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBuc3MvdHN0LW5zcy1nYWktaHYyLWNh bm9ubmFtZS5yb290L3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUuc2NyaXB0Ci0KLWRpZmYgLS1n aXQgYS9uc3MvTWFrZWZpbGUgYi9uc3MvTWFrZWZpbGUKLWluZGV4IDA2ZmNkYzQ1MGYxLi44YTUx MjZlY2YzNCAxMDA2NDQKLS0tLSBhL25zcy9NYWtlZmlsZQotKysrIGIvbnNzL01ha2VmaWxlCi1A QCAtODIsNiArODIsNyBAQCB0ZXN0cy1jb250YWluZXIgOj0gXAotICAgdHN0LW5zcy10ZXN0MyBc Ci0gICB0c3QtcmVsb2FkMSBcCi0gICB0c3QtcmVsb2FkMiBcCi0rICB0c3QtbnNzLWdhaS1odjIt Y2Fub25uYW1lIFwKLSAjIHRlc3RzLWNvbnRhaW5lcgotIAotICMgVGVzdHMgd2hpY2ggbmVlZCBs aWJkbAotQEAgLTE0NSw3ICsxNDYsOCBAQCBsaWJuc3NfY29tcGF0LWluaGliaXQtbwk9ICQoZmls dGVyLW91dCAub3MsJChvYmplY3Qtc3VmZml4ZXMpKQotIGlmZXEgKCQoYnVpbGQtc3RhdGljLW5z cykseWVzKQotIHRlc3RzLXN0YXRpYwkJKz0gdHN0LW5zcy1zdGF0aWMKLSBlbmRpZgotLWV4dHJh LXRlc3Qtb2JqcwkJKz0gbnNzX3Rlc3QxLm9zIG5zc190ZXN0Mi5vcyBuc3NfdGVzdF9lcnJuby5v cwotK2V4dHJhLXRlc3Qtb2JqcwkJKz0gbnNzX3Rlc3QxLm9zIG5zc190ZXN0Mi5vcyBuc3NfdGVz dF9lcnJuby5vcyBcCi0rCQkJICAgbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUub3MKLSAKLSBp bmNsdWRlIC4uL1J1bGVzCi0gCi1AQCAtMTgwLDEyICsxODIsMTYgQEAgcnRsZC10ZXN0cy1MREZM QUdTICs9IC1XbCwtLWR5bmFtaWMtbGlzdD1uc3NfdGVzdC52ZXIKLSBsaWJvZi1uc3NfdGVzdDEg PSBleHRyYW1vZHVsZXMKLSBsaWJvZi1uc3NfdGVzdDIgPSBleHRyYW1vZHVsZXMKLSBsaWJvZi1u c3NfdGVzdF9lcnJubyA9IGV4dHJhbW9kdWxlcwotK2xpYm9mLW5zc190ZXN0X2dhaV9odjJfY2Fu b25uYW1lID0gZXh0cmFtb2R1bGVzCi0gJChvYmpwZngpL2xpYm5zc190ZXN0MS5zbzogJChvYmpw ZngpbnNzX3Rlc3QxLm9zICQobGluay1saWJjLWRlcHMpCi0gCSQoYnVpbGQtbW9kdWxlKQotICQo b2JqcGZ4KS9saWJuc3NfdGVzdDIuc286ICQob2JqcGZ4KW5zc190ZXN0Mi5vcyAkKGxpbmstbGli Yy1kZXBzKQotIAkkKGJ1aWxkLW1vZHVsZSkKLSAkKG9ianBmeCkvbGlibnNzX3Rlc3RfZXJybm8u c286ICQob2JqcGZ4KW5zc190ZXN0X2Vycm5vLm9zICQobGluay1saWJjLWRlcHMpCi0gCSQoYnVp bGQtbW9kdWxlKQotKyQob2JqcGZ4KS9saWJuc3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZS5zbzog XAotKyAgJChvYmpwZngpbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUub3MgJChsaW5rLWxpYmMt ZGVwcykKLSsJJChidWlsZC1tb2R1bGUpCi0gJChvYmpwZngpbnNzX3Rlc3QyLm9zIDogbnNzX3Rl c3QxLmMKLSAjIFVzZSB0aGUgbnNzX2ZpbGVzIHN1ZmZpeCBmb3IgdGhlc2Ugb2JqZWN0cyBhcyB3 ZWxsLgotICQob2JqcGZ4KS9saWJuc3NfdGVzdDEuc28kKGxpYm5zc19maWxlcy5zby12ZXJzaW9u KTogJChvYmpwZngpL2xpYm5zc190ZXN0MS5zbwotQEAgLTE5NSwxMCArMjAxLDE0IEBAICQob2Jq cGZ4KS9saWJuc3NfdGVzdDIuc28kKGxpYm5zc19maWxlcy5zby12ZXJzaW9uKTogJChvYmpwZngp L2xpYm5zc190ZXN0Mi5zbwotICQob2JqcGZ4KS9saWJuc3NfdGVzdF9lcnJuby5zbyQobGlibnNz X2ZpbGVzLnNvLXZlcnNpb24pOiBcCi0gICAkKG9ianBmeCkvbGlibnNzX3Rlc3RfZXJybm8uc28K LSAJJChtYWtlLWxpbmspCi0rJChvYmpwZngpL2xpYm5zc190ZXN0X2dhaV9odjJfY2Fub25uYW1l LnNvJChsaWJuc3NfZmlsZXMuc28tdmVyc2lvbik6IFwKLSsgICQob2JqcGZ4KS9saWJuc3NfdGVz dF9nYWlfaHYyX2Nhbm9ubmFtZS5zbwotKwkkKG1ha2UtbGluaykKLSAkKHBhdHN1YnN0ICUsJChv YmpwZngpJS5vdXQsJCh0ZXN0cykgJCh0ZXN0cy1jb250YWluZXIpKSA6IFwKLSAJJChvYmpwZngp L2xpYm5zc190ZXN0MS5zbyQobGlibnNzX2ZpbGVzLnNvLXZlcnNpb24pIFwKLSAJJChvYmpwZngp L2xpYm5zc190ZXN0Mi5zbyQobGlibnNzX2ZpbGVzLnNvLXZlcnNpb24pIFwKLS0JJChvYmpwZngp L2xpYm5zc190ZXN0X2Vycm5vLnNvJChsaWJuc3NfZmlsZXMuc28tdmVyc2lvbikKLSsJJChvYmpw ZngpL2xpYm5zc190ZXN0X2Vycm5vLnNvJChsaWJuc3NfZmlsZXMuc28tdmVyc2lvbikgXAotKwkk KG9ianBmeCkvbGlibnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUuc28kKGxpYm5zc19maWxlcy5z by12ZXJzaW9uKQotIAotIGlmZXEgKHllcywkKGhhdmUtdGhyZWFkLWxpYnJhcnkpKQotICQob2Jq cGZ4KXRzdC1jYW5jZWwtZ2V0cHd1aWRfcjogJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCi1AQCAt MjE1LDMgKzIyNSw0IEBAIExERkxBR1MtdHN0LW5zcy10ZXN0MyA9IC1XbCwtLWRpc2FibGUtbmV3 LWR0YWdzCi0gTERGTEFHUy10c3QtbnNzLXRlc3Q0ID0gLVdsLC0tZGlzYWJsZS1uZXctZHRhZ3MK LSBMREZMQUdTLXRzdC1uc3MtdGVzdDUgPSAtV2wsLS1kaXNhYmxlLW5ldy1kdGFncwotIExERkxB R1MtdHN0LW5zcy10ZXN0X2Vycm5vID0gLVdsLC0tZGlzYWJsZS1uZXctZHRhZ3MKLStMREZMQUdT LXRzdC1uc3MtdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZSA9IC1XbCwtLWRpc2FibGUtbmV3LWR0YWdz Ci1kaWZmIC0tZ2l0IGEvbnNzL25zc190ZXN0X2dhaV9odjJfY2Fub25uYW1lLmMgYi9uc3MvbnNz X3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAwMDAwLi40NDM5YzgzYzlmNAotLS0tIC9kZXYvbnVsbAotKysrIGIvbnNzL25zc190ZXN0 X2dhaV9odjJfY2Fub25uYW1lLmMKLUBAIC0wLDAgKzEsNTYgQEAKLSsvKiBOU1Mgc2VydmljZSBw cm92aWRlciB0aGF0IG9ubHkgcHJvdmlkZXMgZ2V0aG9zdGJ5bmFtZTJfci4KLSsgICBDb3B5cmln aHQgVGhlIEdOVSBUb29sY2hhaW4gQXV0aG9ycy4KLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0 aGUgR05VIEMgTGlicmFyeS4KLSsKLSsgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgICBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICAg dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCi0rCi0rICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0r ICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCi0rICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBu b3QsIHNlZQotKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNp bmNsdWRlIDxuc3MuaD4KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5o PgotKyNpbmNsdWRlICJuc3MvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5oIgotKwotKy8qIENh dGNoIG1pc25hbWVkIGFuZCBmdW5jdGlvbnMuICAqLwotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMg ZXJyb3IgIi1XbWlzc2luZy1wcm90b3R5cGVzIgotK05TU19ERUNMQVJFX01PRFVMRV9GVU5DVElP TlMgKHRlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUpCi0rCi0rZXh0ZXJuIGVudW0gbnNzX3N0YXR1cyBf bnNzX2ZpbGVzX2dldGhvc3RieW5hbWUyX3IgKGNvbnN0IGNoYXIgKiwgaW50LAotKwkJCQkJCSAg ICBzdHJ1Y3QgaG9zdGVudCAqLCBjaGFyICosCi0rCQkJCQkJICAgIHNpemVfdCwgaW50ICosIGlu dCAqKTsKLSsKLStlbnVtIG5zc19zdGF0dXMKLStfbnNzX3Rlc3RfZ2FpX2h2Ml9jYW5vbm5hbWVf Z2V0aG9zdGJ5bmFtZTJfciAoY29uc3QgY2hhciAqbmFtZSwgaW50IGFmLAotKwkJCQkJICAgICAg c3RydWN0IGhvc3RlbnQgKnJlc3VsdCwKLSsJCQkJCSAgICAgIGNoYXIgKmJ1ZmZlciwgc2l6ZV90 IGJ1ZmxlbiwKLSsJCQkJCSAgICAgIGludCAqZXJybm9wLCBpbnQgKmhlcnJub3ApCi0rewotKyAg cmV0dXJuIF9uc3NfZmlsZXNfZ2V0aG9zdGJ5bmFtZTJfciAobmFtZSwgYWYsIHJlc3VsdCwgYnVm ZmVyLCBidWZsZW4sIGVycm5vcCwKLSsJCQkJICAgICAgaGVycm5vcCk7Ci0rfQotKwotK2VudW0g bnNzX3N0YXR1cwotK19uc3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFtZV9nZXRjYW5vbm5hbWVfciAo Y29uc3QgY2hhciAqbmFtZSwgY2hhciAqYnVmZmVyLAotKwkJCQkJICAgIHNpemVfdCBidWZsZW4s IGNoYXIgKipyZXN1bHQsCi0rCQkJCQkgICAgaW50ICplcnJub3AsIGludCAqaF9lcnJub3ApCi0r ewotKyAgLyogV2UgZXhwZWN0IFFVRVJZTkFNRSwgd2hpY2ggaXMgYSBzbWFsbCBlbm91Z2ggc3Ry aW5nIHRoYXQgaXQgc2hvdWxkbid0IGZhaWwKLSsgICAgIHRoZSB0ZXN0LiAgKi8KLSsgIGlmICht ZW1jbXAgKFFVRVJZTkFNRSwgbmFtZSwgc2l6ZW9mIChRVUVSWU5BTUUpKQotKyAgICAgIHx8IGJ1 ZmxlbiA8IHNpemVvZiAoUVVFUllOQU1FKSkKLSsgICAgYWJvcnQgKCk7Ci0rCi0rICBzdHJuY3B5 IChidWZmZXIsIG5hbWUsIGJ1Zmxlbik7Ci0rICAqcmVzdWx0ID0gYnVmZmVyOwotKyAgcmV0dXJu IE5TU19TVEFUVVNfU1VDQ0VTUzsKLSt9Ci1kaWZmIC0tZ2l0IGEvbnNzL3RzdC1uc3MtZ2FpLWh2 Mi1jYW5vbm5hbWUuYyBiL25zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmMKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMC4uZDVmMTBjMDdkNmEKLS0tLSAvZGV2L251 bGwKLSsrKyBiL25zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmMKLUBAIC0wLDAgKzEsNjMg QEAKLSsvKiBUZXN0IE5TUyBxdWVyeSBwYXRoIGZvciBwbHVnaW5zIHRoYXQgb25seSBpbXBsZW1l bnQgZ2V0aG9zdGJ5bmFtZTIKLSsgICAoIzMwODQzKS4KLSsgICBDb3B5cmlnaHQgVGhlIEdOVSBU b29sY2hhaW4gQXV0aG9ycy4KLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli cmFyeS4KLSsKLSsgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICAgdmVyc2lvbiAyLjEg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0r Ci0rICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0r ICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQotKyAg IDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDxuc3Mu aD4KLSsjaW5jbHVkZSA8bmV0ZGIuaD4KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUg PHN0cmluZy5oPgotKyNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrLmg+Ci0rI2luY2x1ZGUgPHN1cHBv cnQveHN0ZGlvLmg+Ci0rI2luY2x1ZGUgIm5zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmgi Ci0rCi0rI2RlZmluZSBQUkVQQVJFIGRvX3ByZXBhcmUKLSsKLStzdGF0aWMgdm9pZCBkb19wcmVw YXJlIChpbnQgYSwgY2hhciAqKmF2KQotK3sKLSsgIEZJTEUgKmhvc3RzID0geGZvcGVuICgiL2V0 Yy9ob3N0cyIsICJ3Iik7Ci0rICBmb3IgKHVuc2lnbmVkIGkgPSAyOyBpIDwgMjU1OyBpKyspCi0r ICAgIHsKLSsgICAgICBmcHJpbnRmIChob3N0cywgImZmMDE6OmZmMDI6ZmYwMzoldToyXHR0ZXN0 LmV4YW1wbGUuY29tXG4iLCBpKTsKLSsgICAgICBmcHJpbnRmIChob3N0cywgIjE5Mi4xNjguMC4l dVx0dGVzdC5leGFtcGxlLmNvbVxuIiwgaSk7Ci0rICAgIH0KLSsgIHhmY2xvc2UgKGhvc3RzKTsK LSt9Ci0rCi0rc3RhdGljIGludAotK2RvX3Rlc3QgKHZvaWQpCi0rewotKyAgX19uc3NfY29uZmln dXJlX2xvb2t1cCAoImhvc3RzIiwgInRlc3RfZ2FpX2h2Ml9jYW5vbm5hbWUiKTsKLSsKLSsgIHN0 cnVjdCBhZGRyaW5mbyBoaW50cyA9IHt9OwotKyAgc3RydWN0IGFkZHJpbmZvICpyZXN1bHQgPSBO VUxMOwotKwotKyAgaGludHMuYWlfZmFtaWx5ID0gQUZfSU5FVDY7Ci0rICBoaW50cy5haV9mbGFn cyA9IEFJX0FMTCB8IEFJX1Y0TUFQUEVEIHwgQUlfQ0FOT05OQU1FOwotKwotKyAgaW50IHJldCA9 IGdldGFkZHJpbmZvIChRVUVSWU5BTUUsIE5VTEwsICZoaW50cywgJnJlc3VsdCk7Ci0rCi0rICBp ZiAocmV0ICE9IDApCi0rICAgIEZBSUxfRVhJVDEgKCJnZXRhZGRyaW5mbyBmYWlsZWQ6ICVzXG4i LCBnYWlfc3RyZXJyb3IgKHJldCkpOwotKwotKyAgVEVTVF9DT01QQVJFX1NUUklORyAocmVzdWx0 LT5haV9jYW5vbm5hbWUsIFFVRVJZTkFNRSk7Ci0rCi0rICBmcmVlYWRkcmluZm8ocmVzdWx0KTsK LSsgIHJldHVybiAwOwotK30KLSsKLSsjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgot ZGlmZiAtLWdpdCBhL25zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLmggYi9uc3MvdHN0LW5z cy1nYWktaHYyLWNhbm9ubmFtZS5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MDAwMDAuLjE0ZjJhOWNiMDg2Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9uc3MvdHN0LW5zcy1nYWkt aHYyLWNhbm9ubmFtZS5oCi1AQCAtMCwwICsxIEBACi0rI2RlZmluZSBRVUVSWU5BTUUgInRlc3Qu ZXhhbXBsZS5jb20iCi1kaWZmIC0tZ2l0IGEvbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUu cm9vdC9wb3N0Y2xlYW4ucmVxIGIvbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUucm9vdC9w b3N0Y2xlYW4ucmVxCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwMDAuLmU2 OWRlMjliYjJkCi1kaWZmIC0tZ2l0IGEvbnNzL3RzdC1uc3MtZ2FpLWh2Mi1jYW5vbm5hbWUucm9v dC90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnNjcmlwdCBiL25zcy90c3QtbnNzLWdhaS1odjIt Y2Fub25uYW1lLnJvb3QvdHN0LW5zcy1nYWktaHYyLWNhbm9ubmFtZS5zY3JpcHQKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMC4uMzE4NDhiNGEyODUKLS0tLSAvZGV2L251 bGwKLSsrKyBiL25zcy90c3QtbnNzLWdhaS1odjItY2Fub25uYW1lLnJvb3QvdHN0LW5zcy1nYWkt aHYyLWNhbm9ubmFtZS5zY3JpcHQKLUBAIC0wLDAgKzEsMiBAQAotK2NwICRCL25zcy9saWJuc3Nf dGVzdF9nYWlfaHYyX2Nhbm9ubmFtZS5zbyAkTC9saWJuc3NfdGVzdF9nYWlfaHYyX2Nhbm9ubmFt ZS5zby4yCi0rc3UKLWRpZmYgLS1naXQgYS9zeXNkZXBzL3Bvc2l4L2dldGFkZHJpbmZvLmMgYi9z eXNkZXBzL3Bvc2l4L2dldGFkZHJpbmZvLmMKLWluZGV4IDAzNTZiNjIyYmU2Li5iMjIzNmIxMDVj MSAxMDA2NDQKLS0tLSBhL3N5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8uYwotKysrIGIvc3lzZGVw cy9wb3NpeC9nZXRhZGRyaW5mby5jCi1AQCAtMTIwLDYgKzEyMCw3IEBAIHN0cnVjdCBnYWloX3Jl c3VsdAotIHsKLSAgIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqYXQ7Ci0gICBjaGFyICpjYW5vbjsK LSsgIGNoYXIgKmhfbmFtZTsKLSAgIGJvb2wgZnJlZV9hdDsKLSAgIGJvb2wgZ290X2lwdjY7Ci0g fTsKLUBAIC0xNjUsNiArMTY2LDcgQEAgZ2FpaF9yZXN1bHRfcmVzZXQgKHN0cnVjdCBnYWloX3Jl c3VsdCAqcmVzKQotICAgaWYgKHJlcy0+ZnJlZV9hdCkKLSAgICAgZnJlZSAocmVzLT5hdCk7Ci0g ICBmcmVlIChyZXMtPmNhbm9uKTsKLSsgIGZyZWUgKHJlcy0+aF9uYW1lKTsKLSAgIG1lbXNldCAo cmVzLCAwLCBzaXplb2YgKCpyZXMpKTsKLSB9Ci0gCi1AQCAtMjAzLDkgKzIwNSw4IEBAIGdhaWhf aW5ldF9zZXJ2IChjb25zdCBjaGFyICpzZXJ2aWNlbmFtZSwgY29uc3Qgc3RydWN0IGdhaWhfdHlw ZXByb3RvICp0cCwKLSAgIHJldHVybiAwOwotIH0KLSAKLS0vKiBDb252ZXJ0IHN0cnVjdCBob3N0 ZW50IHRvIGEgbGlzdCBvZiBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgb2JqZWN0cy4gIGhfbmFtZQot LSAgIGlzIG5vdCBjb3BpZWQsIGFuZCB0aGUgc3RydWN0IGhvc3RlbnQgb2JqZWN0IG11c3Qgbm90 IGJlIGRlYWxsb2NhdGVkCi0tICAgcHJlbWF0dXJlbHkuICBUaGUgbmV3IGFkZHJlc3NlcyBhcmUg YXBwZW5kZWQgdG8gdGhlIHR1cGxlIGFycmF5IGluIFJFUy4gICovCi0rLyogQ29udmVydCBzdHJ1 Y3QgaG9zdGVudCB0byBhIGxpc3Qgb2Ygc3RydWN0IGdhaWhfYWRkcnR1cGxlIG9iamVjdHMuICBU aGUgbmV3Ci0rICAgYWRkcmVzc2VzIGFyZSBhcHBlbmRlZCB0byB0aGUgdHVwbGUgYXJyYXkgaW4g UkVTLiAgKi8KLSBzdGF0aWMgYm9vbAotIGNvbnZlcnRfaG9zdGVudF90b19nYWloX2FkZHJ0dXBs ZSAoY29uc3Qgc3RydWN0IGFkZHJpbmZvICpyZXEsIGludCBmYW1pbHksCi0gCQkJCSAgIHN0cnVj dCBob3N0ZW50ICpoLCBzdHJ1Y3QgZ2FpaF9yZXN1bHQgKnJlcykKLUBAIC0yMzgsNiArMjM5LDE1 IEBAIGNvbnZlcnRfaG9zdGVudF90b19nYWloX2FkZHJ0dXBsZSAoY29uc3Qgc3RydWN0IGFkZHJp bmZvICpyZXEsIGludCBmYW1pbHksCi0gICByZXMtPmF0ID0gYXJyYXk7Ci0gICByZXMtPmZyZWVf YXQgPSB0cnVlOwotIAotKyAgLyogRHVwbGljYXRlIGhfbmFtZSBiZWNhdXNlIGl0IG1heSBnZXQg cmVjbGFpbWVkIHdoZW4gdGhlIHVuZGVybHlpbmcgc3RvcmFnZQotKyAgICAgaXMgZnJlZWQuICAq LwotKyAgaWYgKHJlcy0+aF9uYW1lID09IE5VTEwpCi0rICAgIHsKLSsgICAgICByZXMtPmhfbmFt ZSA9IF9fc3RyZHVwIChoLT5oX25hbWUpOwotKyAgICAgIGlmIChyZXMtPmhfbmFtZSA9PSBOVUxM KQotKwlyZXR1cm4gZmFsc2U7Ci0rICAgIH0KLSsKLSAgIC8qIFVwZGF0ZSB0aGUgbmV4dCBwb2lu dGVycyBvbiByZWFsbG9jYXRpb24uICAqLwotICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvbGQ7 IGkrKykKLSAgICAgYXJyYXlbaV0ubmV4dCA9IGFycmF5ICsgaSArIDE7Ci1AQCAtMjYyLDcgKzI3 Miw2IEBAIGNvbnZlcnRfaG9zdGVudF90b19nYWloX2FkZHJ0dXBsZSAoY29uc3Qgc3RydWN0IGFk ZHJpbmZvICpyZXEsIGludCBmYW1pbHksCi0gCX0KLSAgICAgICBhcnJheVtpXS5uZXh0ID0gYXJy YXkgKyBpICsgMTsKLSAgICAgfQotLSAgYXJyYXlbMF0ubmFtZSA9IGgtPmhfbmFtZTsKLSAgIGFy cmF5W2NvdW50IC0gMV0ubmV4dCA9IE5VTEw7Ci0gCi0gICByZXR1cm4gdHJ1ZTsKLUBAIC0zMjQs MTUgKzMzMywxNSBAQCBnZXRob3N0cyAobnNzX2dldGhvc3RieW5hbWUzX3IgZmN0LCBpbnQgZmFt aWx5LCBjb25zdCBjaGFyICpuYW1lLAotICAgIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUuICBU aGUgcmV0dXJuZWQgc3RyaW5nIGlzIGFsbG9jYXRlZCBvbiB0aGUKLSAgICBoZWFwOyB0aGUgY2Fs bGVyIGhhcyB0byBmcmVlIGl0LiAgKi8KLSBzdGF0aWMgY2hhciAqCi0tZ2V0Y2Fub25uYW1lIChu c3NfYWN0aW9uX2xpc3QgbmlwLCBzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUgKmF0LCBjb25zdCBjaGFy ICpuYW1lKQotK2dldGNhbm9ubmFtZSAobnNzX2FjdGlvbl9saXN0IG5pcCwgY29uc3QgY2hhciAq aG5hbWUsIGNvbnN0IGNoYXIgKm5hbWUpCi0gewotICAgbnNzX2dldGNhbm9ubmFtZV9yICpjZmN0 ID0gX19uc3NfbG9va3VwX2Z1bmN0aW9uIChuaXAsICJnZXRjYW5vbm5hbWVfciIpOwotICAgY2hh ciAqcyA9IChjaGFyICopIG5hbWU7Ci0gICBpZiAoY2ZjdCAhPSBOVUxMKQotICAgICB7Ci0gICAg ICAgY2hhciBidWZbMjU2XTsKLS0gICAgICBpZiAoRExfQ0FMTF9GQ1QgKGNmY3QsIChhdC0+bmFt ZSA/OiBuYW1lLCBidWYsIHNpemVvZiAoYnVmKSwKLS0JCQkgICAgICAmcywgJmVycm5vLCAmaF9l cnJubykpICE9IE5TU19TVEFUVVNfU1VDQ0VTUykKLSsgICAgICBpZiAoRExfQ0FMTF9GQ1QgKGNm Y3QsIChobmFtZSA/OiBuYW1lLCBidWYsIHNpemVvZiAoYnVmKSwgJnMsICZlcnJubywKLSsJCQkg ICAgICAmaF9lcnJubykpICE9IE5TU19TVEFUVVNfU1VDQ0VTUykKLSAJLyogSWYgdGhlIGNhbm9u aWNhbCBuYW1lIGNhbm5vdCBiZSBkZXRlcm1pbmVkLCB1c2UgdGhlIHBhc3NlZAotIAkgICBzdHJp bmcuICAqLwotIAlzID0gKGNoYXIgKikgbmFtZTsKLUBAIC03NzEsNyArNzgwLDcgQEAgZ2V0X25z c19hZGRyZXNzZXMgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqcmVx LAotIAkJICBpZiAoKHJlcS0+YWlfZmxhZ3MgJiBBSV9DQU5PTk5BTUUpICE9IDAKLSAJCSAgICAg ICYmIHJlcy0+Y2Fub24gPT0gTlVMTCkKLSAJCSAgICB7Ci0tCQkgICAgICBjaGFyICpjYW5vbmJ1 ZiA9IGdldGNhbm9ubmFtZSAobmlwLCByZXMtPmF0LCBuYW1lKTsKLSsJCSAgICAgIGNoYXIgKmNh bm9uYnVmID0gZ2V0Y2Fub25uYW1lIChuaXAsIHJlcy0+aF9uYW1lLCBuYW1lKTsKLSAJCSAgICAg IGlmIChjYW5vbmJ1ZiA9PSBOVUxMKQotIAkJCXsKLSAJCQkgIF9fcmVzb2x2X2NvbnRleHRfcHV0 IChyZXNfY3R4KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8xYjljMWEwMDQ3 ZmIyNmE2NWE5YjJhN2I4Y2Q5NzcyNDNmN2QzNTNjLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRj aGVzLzFiOWMxYTAwNDdmYjI2YTY1YTliMmE3YjhjZDk3NzI0M2Y3ZDM1M2MucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjI1Nzk2NmNiOTM5YzA1Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzFiOWMxYTAwNDdmYjI2YTY1YTli MmE3YjhjZDk3NzI0M2Y3ZDM1M2MucGF0Y2gKQEAgLTAsMCArMSwxMDU4IEBACitGcm9tIDFiOWMx YTAwNDdmYjI2YTY1YTliMmE3YjhjZDk3NzI0M2Y3ZDM1M2MgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAz MSBKYW4gMjAyNCAxOToxNzoyNyArMDEwMAorU3ViamVjdDogW1BBVENIXSBVc2UgZ2NjIF9fYnVp bHRpbl9zdGRjXyogYnVpbHRpbnMgaW4gc3RkYml0LmggaWYgcG9zc2libGUKKworVGhlIGZvbGxv d2luZyBwYXRjaCB1c2VzIHRoZSBHQ0MgMTQgX19idWlsdGluX3N0ZGNfKiBidWlsdGlucyBpbiBz dGRiaXQuaAorZm9yIHRoZSB0eXBlLWdlbmVyaWMgbWFjcm9zLCBzbyB0aGF0IHdoZW4gY29tcGls ZWQgd2l0aCBHQ0MgMTQgb3IgbGF0ZXIsCitpdCBzdXBwb3J0cyBub3QganVzdCA4LzE2LzMyLzY0 LWJpdCB1bnNpZ25lZCBpbnRlZ2VycywgYnV0IGFsc28gMTI4LWJpdAorKGlmIHRhcmdldCBzdXBw b3J0cyB0aGVtKSBhbmQgdW5zaWduZWQgX0JpdEludCAoYW55IHN1cHBvcnRlZCBwcmVjaXNpb24p LgorQW5kIHNvIHRoYXQgdGhlIG1hY3JvcyBkb24ndCBleHBhbmQgYXJndW1lbnRzIG11bHRpcGxl IHRpbWVzIGFuZCBjYW4gYmUKK2V2YWx1YXRlZCBpbiBjb25zdGFudCBleHByZXNzaW9ucy4KKwor VGhlIG5ldyB0ZXN0Y2FzZSBpcyBnY2MncyBnY2MvdGVzdHN1aXRlL2djYy5kZy9idWlsdGluLXN0 ZGMtYml0LTEuYworYWRqdXN0ZWQgdG8gdGVzdCBzdGRiaXQuaCBhbmQgdGhlIHR5cGUtZ2VuZXJp YyBtYWNyb3MgaW4gdGhlcmUgaW5zdGVhZAorb2YgdGhlIGJ1aWx0aW5zIGFuZCBhZGp1c3RlZCB0 byB1c2UgZ2xpYmMgdGVzdCBmcmFtZXdvcmsgcmF0aGVyIHRoYW4KK2djYyBzdHlsZSB0ZXN0cyB3 aXRoIF9fYnVpbHRpbl9hYm9ydCAoKS4KKworU2lnbmVkLW9mZi1ieTogSmFrdWIgSmVsaW5layA8 amFrdWJAcmVkaGF0LmNvbT4KK1Jldmlld2VkLWJ5OiBKb3NlcGggTXllcnMgPGpvc215ZXJzQHJl ZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBkYTg5NDk2MzM3Yjk3ZTZhMmFh ZjFlODFkNTVjZjk5OGY2ZGIxMDcwKQorLS0tCisgbWFudWFsL3N0ZGJpdC50ZXhpICAgICAgICAg ICB8ICAgOCArLQorIHN0ZGxpYi9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgIDEgKworIHN0ZGxp Yi9zdGRiaXQuaCAgICAgICAgICAgICAgfCAgODQgKysrLQorIHN0ZGxpYi90c3Qtc3RkYml0LWJ1 aWx0aW5zLmMgfCA3NzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyA0IGZp bGVzIGNoYW5nZWQsIDg1NiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKKyBjcmVhdGUg bW9kZSAxMDA2NDQgc3RkbGliL3RzdC1zdGRiaXQtYnVpbHRpbnMuYworCitkaWZmIC0tZ2l0IGEv bWFudWFsL3N0ZGJpdC50ZXhpIGIvbWFudWFsL3N0ZGJpdC50ZXhpCitpbmRleCBmZTQxYzY3MWQ4 Li42Yzc1ZWQ5YTIwIDEwMDY0NAorLS0tIGEvbWFudWFsL3N0ZGJpdC50ZXhpCisrKysgYi9tYW51 YWwvc3RkYml0LnRleGkKK0BAIC0zMiw3ICszMiwxMyBAQCBhbmQgQGNvZGV7dW5zaWduZWQgbG9u ZyBsb25nIGludH0uICBJbiBhZGRpdGlvbiwgdGhlcmUgaXMgYQorIGNvcnJlc3BvbmRpbmcgdHlw ZS1nZW5lcmljIG1hY3JvIChub3QgbGlzdGVkIGJlbG93KSwgbmFtZWQgdGhlIHNhbWUgYXMKKyB0 aGUgZnVuY3Rpb25zIGJ1dCB3aXRob3V0IGFueSBzdWZmaXggc3VjaCBhcyBAc2FtcHtfdWN9LiAg VGhlCisgdHlwZS1nZW5lcmljIG1hY3JvIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBhbiBhcmd1bWVu dCBvZiBhbiB1bnNpZ25lZAorLWludGVnZXIgdHlwZSB3aXRoIGEgd2lkdGggb2YgOCwgMTYsIDMy IG9yIDY0IGJpdHMuCisraW50ZWdlciB0eXBlIHdpdGggYSB3aWR0aCBvZiA4LCAxNiwgMzIgb3Ig NjQgYml0cywgb3Igd2hlbiB1c2luZworK2EgY29tcGlsZXIgd2l0aCBzdXBwb3J0IGZvcgorK0B1 cmVme2h0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9nY2MvT3RoZXItQnVpbHRpbnMuaHRt bCxAY29kZXtfX2J1aWx0aW5fc3RkY19iaXRfY2VpbH19LAorK2V0Yy5AOiwgYnVpbHQtaW4gZnVu Y3Rpb25zIHN1Y2ggYXMgR0NDIDE0LjEgb3IgbGF0ZXIKKythbnkgdW5zaWduZWQgaW50ZWdlciB0 eXBlIHRob3NlIGJ1aWx0LWluIGZ1bmN0aW9ucyBzdXBwb3J0LgorK0luIEdDQyAxNC4xIHRoYXQg aW5jbHVkZXMgc3VwcG9ydCBmb3IgQGNvZGV7dW5zaWduZWQgX19pbnQxMjh9IGFuZAorK0Bjb2Rl e3Vuc2lnbmVkIF9CaXRJbnQoQHZhcntufSl9IGlmIHN1cHBvcnRlZCBieSB0aGUgdGFyZ2V0Lgor IAorIEBkZWZ0eXBlZnVuIHt1bnNpZ25lZCBpbnR9IHN0ZGNfbGVhZGluZ196ZXJvc191YyAodW5z aWduZWQgY2hhciBAdmFye3h9KQorIEBkZWZ0eXBlZnVueCB7dW5zaWduZWQgaW50fSBzdGRjX2xl YWRpbmdfemVyb3NfdXMgKHVuc2lnbmVkIHNob3J0IEB2YXJ7eH0pCitkaWZmIC0tZ2l0IGEvc3Rk bGliL01ha2VmaWxlIGIvc3RkbGliL01ha2VmaWxlCitpbmRleCBkNTg3ZjA1NGQxLi45ODk4Y2M1 ZDhhIDEwMDY0NAorLS0tIGEvc3RkbGliL01ha2VmaWxlCisrKysgYi9zdGRsaWIvTWFrZWZpbGUK K0BAIC0zMDgsNiArMzA4LDcgQEAgdGVzdHMgOj0gXAorICAgdHN0LXNldGNvbnRleHQxMCBcCisg ICB0c3Qtc2V0Y29udGV4dDExIFwKKyAgIHRzdC1zdGRiaXQtV2NvbnZlcnNpb24gXAorKyAgdHN0 LXN0ZGJpdC1idWlsdGlucyBcCisgICB0c3Qtc3RkY19iaXRfY2VpbCBcCisgICB0c3Qtc3RkY19i aXRfZmxvb3IgXAorICAgdHN0LXN0ZGNfYml0X3dpZHRoIFwKK2RpZmYgLS1naXQgYS9zdGRsaWIv c3RkYml0LmggYi9zdGRsaWIvc3RkYml0LmgKK2luZGV4IGYzMzRlYjE3NGQuLjI4MDE1OTBjNjMg MTAwNjQ0CistLS0gYS9zdGRsaWIvc3RkYml0LmgKKysrKyBiL3N0ZGxpYi9zdGRiaXQuaAorQEAg LTY0LDkgKzY0LDEzIEBAIGV4dGVybiB1bnNpZ25lZCBpbnQgc3RkY19sZWFkaW5nX3plcm9zX3Vs ICh1bnNpZ25lZCBsb25nIGludCBfX3gpCisgX19leHRlbnNpb25fXworIGV4dGVybiB1bnNpZ25l ZCBpbnQgc3RkY19sZWFkaW5nX3plcm9zX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gp CisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2xlYWRp bmdfemVyb3MoeCkJCQkJXAorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3Rk Y19sZWFkaW5nX3plcm9zKQorKyMgZGVmaW5lIHN0ZGNfbGVhZGluZ196ZXJvcyh4KSAoX19idWls dGluX3N0ZGNfbGVhZGluZ196ZXJvcyAoeCkpCisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2xlYWRp bmdfemVyb3MoeCkJCQkJXAorICAgKHN0ZGNfbGVhZGluZ196ZXJvc191bGwgKHgpCQkJCVwKKyAg ICAtICh1bnNpZ25lZCBpbnQpICg4ICogKHNpemVvZiAoMFVMTCkgLSBzaXplb2YgKHgpKSkpCisr I2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0 aW4gKF9fYnVpbHRpbl9jbHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGlu dAorQEAgLTExNiw5ICsxMjAsMTMgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2xlYWRpbmdf b25lc191bCAodW5zaWduZWQgbG9uZyBpbnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4g dW5zaWduZWQgaW50IHN0ZGNfbGVhZGluZ19vbmVzX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGlu dCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRj X2xlYWRpbmdfb25lcyh4KQkJCQkJXAorKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0 aW5fc3RkY19sZWFkaW5nX29uZXMpCisrIyBkZWZpbmUgc3RkY19sZWFkaW5nX29uZXMoeCkgKF9f YnVpbHRpbl9zdGRjX2xlYWRpbmdfb25lcyAoeCkpCisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2xl YWRpbmdfb25lcyh4KQkJCQkJXAorICAgKHN0ZGNfbGVhZGluZ19vbmVzX3VsbCAoKHVuc2lnbmVk IGxvbmcgbG9uZyBpbnQpICh4KQkJXAorIAkJCSAgPDwgOCAqIChzaXplb2YgKDBVTEwpIC0gc2l6 ZW9mICh4KSkpKQorKyNlbmRpZgorIAorICNpZiBfX0dOVUNfUFJFUkVRICgzLCA0KSB8fCBfX2ds aWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fY2x6bGwpCisgc3RhdGljIF9fYWx3YXlzX2lubGlu ZSB1bnNpZ25lZCBpbnQKK0BAIC0xNjgsMTEgKzE3NiwxNSBAQCBleHRlcm4gdW5zaWduZWQgaW50 IHN0ZGNfdHJhaWxpbmdfemVyb3NfdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVu c2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX3RyYWlsaW5nX3plcm9zX3VsbCAodW5z aWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0 X187CistI2RlZmluZSBzdGRjX3RyYWlsaW5nX3plcm9zKHgpCQkJCVwKKysjaWYgX19nbGliY19o YXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfdHJhaWxpbmdfemVyb3MpCisrIyBkZWZpbmUgc3Rk Y190cmFpbGluZ196ZXJvcyh4KSAoX19idWlsdGluX3N0ZGNfdHJhaWxpbmdfemVyb3MgKHgpKQor KyNlbHNlCisrIyBkZWZpbmUgc3RkY190cmFpbGluZ196ZXJvcyh4KQkJCQlcCisgICAoc2l6ZW9m ICh4KSA9PSA4ID8gc3RkY190cmFpbGluZ196ZXJvc191bGwgKHgpCVwKKyAgICA6IHNpemVvZiAo eCkgPT0gNCA/IHN0ZGNfdHJhaWxpbmdfemVyb3NfdWkgKHgpCVwKKyAgICA6IHNpemVvZiAoeCkg PT0gMiA/IHN0ZGNfdHJhaWxpbmdfemVyb3NfdXMgKF9fcGFjaWZ5X3VpbnQxNiAoeCkpCVwKKyAg ICA6IHN0ZGNfdHJhaWxpbmdfemVyb3NfdWMgKF9fcGFjaWZ5X3VpbnQ4ICh4KSkpCisrI2VuZGlm CisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9f YnVpbHRpbl9jdHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGludAorQEAg LTIyMiw3ICsyMzQsMTEgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX3RyYWlsaW5nX29uZXNf dWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2ln bmVkIGludCBzdGRjX3RyYWlsaW5nX29uZXNfdWxsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9f eCkKKyAgICAgIF9fVEhST1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5lIHN0ZGNfdHJh aWxpbmdfb25lcyh4KSAoc3RkY190cmFpbGluZ19vbmVzX3VsbCAoeCkpCisrI2lmIF9fZ2xpYmNf aGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX3RyYWlsaW5nX29uZXMpCisrIyBkZWZpbmUgc3Rk Y190cmFpbGluZ19vbmVzKHgpIChfX2J1aWx0aW5fc3RkY190cmFpbGluZ19vbmVzICh4KSkKKysj ZWxzZQorKyMgZGVmaW5lIHN0ZGNfdHJhaWxpbmdfb25lcyh4KSAoc3RkY190cmFpbGluZ19vbmVz X3VsbCAoeCkpCisrI2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xp YmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9jdHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5l IHVuc2lnbmVkIGludAorQEAgLTI3MiwxMSArMjg4LDE1IEBAIGV4dGVybiB1bnNpZ25lZCBpbnQg c3RkY19maXJzdF9sZWFkaW5nX3plcm9fdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4 dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X2xlYWRpbmdfemVyb191 bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19USFJPVyBfX2F0dHJpYnV0 ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY19maXJzdF9sZWFkaW5nX3plcm8oeCkJCQlcCisrI2lm IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2ZpcnN0X2xlYWRpbmdfemVybykK KysjIGRlZmluZSBzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyh4KSAoX19idWlsdGluX3N0ZGNfZmly c3RfbGVhZGluZ196ZXJvICh4KSkKKysjZWxzZQorKyMgZGVmaW5lIHN0ZGNfZmlyc3RfbGVhZGlu Z196ZXJvKHgpCQkJXAorICAgKHNpemVvZiAoeCkgPT0gOCA/IHN0ZGNfZmlyc3RfbGVhZGluZ196 ZXJvX3VsbCAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSA0ID8gc3RkY19maXJzdF9sZWFkaW5n X3plcm9fdWkgKHgpCVwKKyAgICA6IHNpemVvZiAoeCkgPT0gMiA/IHN0ZGNfZmlyc3RfbGVhZGlu Z196ZXJvX3VzIChfX3BhY2lmeV91aW50MTYgKHgpKQlcCisgICAgOiBzdGRjX2ZpcnN0X2xlYWRp bmdfemVyb191YyAoX19wYWNpZnlfdWludDggKHgpKSkKKysjZW5kaWYKKyAKKyAjaWYgX19HTlVD X1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX2NsemxsKQor IHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtMzI2LDExICszNDYsMTUg QEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X2xlYWRpbmdfb25lX3VsICh1bnNpZ25l ZCBsb25nIGludCBfX3gpCisgX19leHRlbnNpb25fXworIGV4dGVybiB1bnNpZ25lZCBpbnQgc3Rk Y19maXJzdF9sZWFkaW5nX29uZV91bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAg ICAgX19USFJPVyBfX2F0dHJpYnV0ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY19maXJzdF9sZWFk aW5nX29uZSh4KQkJCVwKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNf Zmlyc3RfbGVhZGluZ19vbmUpCisrIyBkZWZpbmUgc3RkY19maXJzdF9sZWFkaW5nX29uZSh4KSAo X19idWlsdGluX3N0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUg c3RkY19maXJzdF9sZWFkaW5nX29uZSh4KQkJCVwKKyAgIChzaXplb2YgKHgpID09IDggPyBzdGRj X2ZpcnN0X2xlYWRpbmdfb25lX3VsbCAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSA0ID8gc3Rk Y19maXJzdF9sZWFkaW5nX29uZV91aSAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSAyID8gc3Rk Y19maXJzdF9sZWFkaW5nX29uZV91cyAoX19wYWNpZnlfdWludDE2ICh4KSkJXAorICAgIDogc3Rk Y19maXJzdF9sZWFkaW5nX29uZV91YyAoX19wYWNpZnlfdWludDggKHgpKSkKKysjZW5kaWYKKyAK KyAjaWYgX19HTlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWls dGluX2NsemxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtMzgw LDExICs0MDQsMTUgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X3RyYWlsaW5nX3pl cm9fdWwgKHVuc2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVu c2lnbmVkIGludCBzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm9fdWxsICh1bnNpZ25lZCBsb25nIGxv bmcgaW50IF9feCkKKyAgICAgIF9fVEhST1cgX19hdHRyaWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5l IHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyh4KQkJCVwKKysjaWYgX19nbGliY19oYXNfYnVpbHRp biAoX19idWlsdGluX3N0ZGNfZmlyc3RfdHJhaWxpbmdfemVybykKKysjIGRlZmluZSBzdGRjX2Zp cnN0X3RyYWlsaW5nX3plcm8oeCkgKF9fYnVpbHRpbl9zdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8g KHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19maXJzdF90cmFpbGluZ196ZXJvKHgpCQkJXAor ICAgKHNpemVvZiAoeCkgPT0gOCA/IHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVyb191bGwgKHgpCVwK KyAgICA6IHNpemVvZiAoeCkgPT0gNCA/IHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVyb191aSAoeCkJ XAorICAgIDogc2l6ZW9mICh4KSA9PSAyID8gc3RkY19maXJzdF90cmFpbGluZ196ZXJvX3VzIChf X3BhY2lmeV91aW50MTYgKHgpKSBcCisgICAgOiBzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm9fdWMg KF9fcGFjaWZ5X3VpbnQ4ICh4KSkpCisrI2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMs IDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9jdHpsbCkKKyBzdGF0aWMgX19h bHdheXNfaW5saW5lIHVuc2lnbmVkIGludAorQEAgLTQzNCwxMSArNDYyLDE1IEBAIGV4dGVybiB1 bnNpZ25lZCBpbnQgc3RkY19maXJzdF90cmFpbGluZ19vbmVfdWwgKHVuc2lnbmVkIGxvbmcgaW50 IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGludCBzdGRjX2ZpcnN0X3Ry YWlsaW5nX29uZV91bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19USFJP VyBfX2F0dHJpYnV0ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY19maXJzdF90cmFpbGluZ19vbmUo eCkJCQlcCisrI2lmIF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2ZpcnN0X3Ry YWlsaW5nX29uZSkKKysjIGRlZmluZSBzdGRjX2ZpcnN0X3RyYWlsaW5nX29uZSh4KSAoX19idWls dGluX3N0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICh4KSkKKysjZWxzZQorKyMgZGVmaW5lIHN0ZGNf Zmlyc3RfdHJhaWxpbmdfb25lKHgpCQkJXAorICAgKHNpemVvZiAoeCkgPT0gOCA/IHN0ZGNfZmly c3RfdHJhaWxpbmdfb25lX3VsbCAoeCkJXAorICAgIDogc2l6ZW9mICh4KSA9PSA0ID8gc3RkY19m aXJzdF90cmFpbGluZ19vbmVfdWkgKHgpCVwKKyAgICA6IHNpemVvZiAoeCkgPT0gMiA/IHN0ZGNf Zmlyc3RfdHJhaWxpbmdfb25lX3VzIChfX3BhY2lmeV91aW50MTYgKHgpKQlcCisgICAgOiBzdGRj X2ZpcnN0X3RyYWlsaW5nX29uZV91YyAoX19wYWNpZnlfdWludDggKHgpKSkKKysjZW5kaWYKKyAK KyAjaWYgX19HTlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWls dGluX2N0emxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtNDg4 LDkgKzUyMCwxMyBAQCBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfY291bnRfemVyb3NfdWwgKHVu c2lnbmVkIGxvbmcgaW50IF9feCkKKyBfX2V4dGVuc2lvbl9fCisgZXh0ZXJuIHVuc2lnbmVkIGlu dCBzdGRjX2NvdW50X3plcm9zX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAg ICBfX1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2NvdW50X3plcm9z KHgpCQkJCVwKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfY291bnRf emVyb3MpCisrIyBkZWZpbmUgc3RkY19jb3VudF96ZXJvcyh4KSAoX19idWlsdGluX3N0ZGNfY291 bnRfemVyb3MgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19jb3VudF96ZXJvcyh4KQkJCQlc CisgICAoc3RkY19jb3VudF96ZXJvc191bGwgKHgpCQkJCVwKKyAgICAtICh1bnNpZ25lZCBpbnQp ICg4ICogKHNpemVvZiAoMFVMTCkgLSBzaXplb2YgKHgpKSkpCisrI2VuZGlmCisgCisgI2lmIF9f R05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9wb3Bj b3VudGxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitAQCAtNTQwLDcg KzU3NiwxMSBAQCBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfY291bnRfb25lc191bCAodW5zaWdu ZWQgbG9uZyBpbnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgaW50IHN0 ZGNfY291bnRfb25lc191bGwgKHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX194KQorICAgICAgX19U SFJPVyBfX2F0dHJpYnV0ZV9jb25zdF9fOworLSNkZWZpbmUgc3RkY19jb3VudF9vbmVzKHgpIChz dGRjX2NvdW50X29uZXNfdWxsICh4KSkKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWls dGluX3N0ZGNfY291bnRfb25lcykKKysjIGRlZmluZSBzdGRjX2NvdW50X29uZXMoeCkgKF9fYnVp bHRpbl9zdGRjX2NvdW50X29uZXMgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19jb3VudF9v bmVzKHgpIChzdGRjX2NvdW50X29uZXNfdWxsICh4KSkKKysjZW5kaWYKKyAKKyAjaWYgX19HTlVD X1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3BvcGNvdW50 bGwpCisgc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBpbnQKK0BAIC01OTAsMTAgKzYz MCwxNCBAQCBleHRlcm4gYm9vbCBzdGRjX2hhc19zaW5nbGVfYml0X3VsICh1bnNpZ25lZCBsb25n IGludCBfX3gpCisgX19leHRlbnNpb25fXworIGV4dGVybiBib29sIHN0ZGNfaGFzX3NpbmdsZV9i aXRfdWxsICh1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9feCkKKyAgICAgIF9fVEhST1cgX19hdHRy aWJ1dGVfY29uc3RfXzsKKy0jZGVmaW5lIHN0ZGNfaGFzX3NpbmdsZV9iaXQoeCkJCQkJXAorKyNp ZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19oYXNfc2luZ2xlX2JpdCkKKysj IGRlZmluZSBzdGRjX2hhc19zaW5nbGVfYml0KHgpIChfX2J1aWx0aW5fc3RkY19oYXNfc2luZ2xl X2JpdCAoeCkpCisrI2Vsc2UKKysjIGRlZmluZSBzdGRjX2hhc19zaW5nbGVfYml0KHgpCQkJCVwK KyAgICgoYm9vbCkgKHNpemVvZiAoeCkgPD0gc2l6ZW9mICh1bnNpZ25lZCBpbnQpCQlcCisgCSAg ID8gc3RkY19oYXNfc2luZ2xlX2JpdF91aSAoeCkJCQlcCisgCSAgIDogc3RkY19oYXNfc2luZ2xl X2JpdF91bGwgKHgpKSkKKysjZW5kaWYKKyAKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIGJvb2wK KyBfX2hzYjY0X2lubGluZSAodWludDY0X3QgX194KQorQEAgLTY0MSw3ICs2ODUsMTEgQEAgZXh0 ZXJuIHVuc2lnbmVkIGludCBzdGRjX2JpdF93aWR0aF91bCAodW5zaWduZWQgbG9uZyBpbnQgX194 KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgaW50IHN0ZGNfYml0X3dpZHRoX3Vs bCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRl X2NvbnN0X187CistI2RlZmluZSBzdGRjX2JpdF93aWR0aCh4KSAoc3RkY19iaXRfd2lkdGhfdWxs ICh4KSkKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfYml0X3dpZHRo KQorKyMgZGVmaW5lIHN0ZGNfYml0X3dpZHRoKHgpIChfX2J1aWx0aW5fc3RkY19iaXRfd2lkdGgg KHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19iaXRfd2lkdGgoeCkgKHN0ZGNfYml0X3dpZHRo X3VsbCAoeCkpCisrI2VuZGlmCisgCisgI2lmIF9fR05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xp YmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9jbHpsbCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5l IHVuc2lnbmVkIGludAorQEAgLTY5MSw3ICs3MzksMTEgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcg aW50IHN0ZGNfYml0X2Zsb29yX3VsICh1bnNpZ25lZCBsb25nIGludCBfX3gpCisgX19leHRlbnNp b25fXworIGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHN0ZGNfYml0X2Zsb29yX3VsbCAo dW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBfX1RIUk9XIF9fYXR0cmlidXRlX2Nv bnN0X187CistI2RlZmluZSBzdGRjX2JpdF9mbG9vcih4KSAoKF9fdHlwZW9mICh4KSkgc3RkY19i aXRfZmxvb3JfdWxsICh4KSkKKysjaWYgX19nbGliY19oYXNfYnVpbHRpbiAoX19idWlsdGluX3N0 ZGNfYml0X2Zsb29yKQorKyMgZGVmaW5lIHN0ZGNfYml0X2Zsb29yKHgpIChfX2J1aWx0aW5fc3Rk Y19iaXRfZmxvb3IgKHgpKQorKyNlbHNlCisrIyBkZWZpbmUgc3RkY19iaXRfZmxvb3IoeCkgKChf X3R5cGVvZiAoeCkpIHN0ZGNfYml0X2Zsb29yX3VsbCAoeCkpCisrI2VuZGlmCisgCisgI2lmIF9f R05VQ19QUkVSRVEgKDMsIDQpIHx8IF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9jbHps bCkKKyBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVpbnQ2NF90CitAQCAtNzQzLDcgKzc5NSwxMSBA QCBleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQgc3RkY19iaXRfY2VpbF91bCAodW5zaWduZWQgbG9u ZyBpbnQgX194KQorIF9fZXh0ZW5zaW9uX18KKyBleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGlu dCBzdGRjX2JpdF9jZWlsX3VsbCAodW5zaWduZWQgbG9uZyBsb25nIGludCBfX3gpCisgICAgICBf X1RIUk9XIF9fYXR0cmlidXRlX2NvbnN0X187CistI2RlZmluZSBzdGRjX2JpdF9jZWlsKHgpICgo X190eXBlb2YgKHgpKSBzdGRjX2JpdF9jZWlsX3VsbCAoeCkpCisrI2lmIF9fZ2xpYmNfaGFzX2J1 aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2JpdF9jZWlsKQorKyMgZGVmaW5lIHN0ZGNfYml0X2NlaWwo eCkgKF9fYnVpbHRpbl9zdGRjX2JpdF9jZWlsICh4KSkKKysjZWxzZQorKyMgZGVmaW5lIHN0ZGNf Yml0X2NlaWwoeCkgKChfX3R5cGVvZiAoeCkpIHN0ZGNfYml0X2NlaWxfdWxsICh4KSkKKysjZW5k aWYKKyAKKyAjaWYgX19HTlVDX1BSRVJFUSAoMywgNCkgfHwgX19nbGliY19oYXNfYnVpbHRpbiAo X19idWlsdGluX2NsemxsKQorIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdWludDY0X3QKK2RpZmYg LS1naXQgYS9zdGRsaWIvdHN0LXN0ZGJpdC1idWlsdGlucy5jIGIvc3RkbGliL3RzdC1zdGRiaXQt YnVpbHRpbnMuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjUzNjg0 MWNhOGEKKy0tLSAvZGV2L251bGwKKysrKyBiL3N0ZGxpYi90c3Qtc3RkYml0LWJ1aWx0aW5zLmMK K0BAIC0wLDAgKzEsNzc4IEBACisrLyogVGVzdCA8c3RkYml0Lmg+IHR5cGUtZ2VuZXJpYyBtYWNy b3Mgd2l0aCBjb21waWxlciBfX2J1aWx0aW5fc3RkY18qIHN1cHBvcnQuCisrICAgQ29weXJpZ2h0 IChDKSAyMDI0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysg ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExp YnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCisrCisrI2luY2x1ZGUgPHN0ZGJpdC5oPgorKyNpbmNsdWRlIDxsaW1pdHMuaD4KKysjaW5j bHVkZSA8c3VwcG9ydC9jaGVjay5oPgorKworKyNpZiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1 aWx0aW5fc3RkY19sZWFkaW5nX3plcm9zKSBcCisrICAgICYmIF9fZ2xpYmNfaGFzX2J1aWx0aW4g KF9fYnVpbHRpbl9zdGRjX2xlYWRpbmdfb25lcykgXAorKyAgICAmJiBfX2dsaWJjX2hhc19idWls dGluIChfX2J1aWx0aW5fc3RkY190cmFpbGluZ196ZXJvcykgXAorKyAgICAmJiBfX2dsaWJjX2hh c19idWlsdGluIChfX2J1aWx0aW5fc3RkY190cmFpbGluZ19vbmVzKSBcCisrICAgICYmIF9fZ2xp YmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2ZpcnN0X2xlYWRpbmdfemVybykgXAorKyAg ICAmJiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19maXJzdF9sZWFkaW5nX29u ZSkgXAorKyAgICAmJiBfX2dsaWJjX2hhc19idWlsdGluIChfX2J1aWx0aW5fc3RkY19maXJzdF90 cmFpbGluZ196ZXJvKSBcCisrICAgICYmIF9fZ2xpYmNfaGFzX2J1aWx0aW4gKF9fYnVpbHRpbl9z dGRjX2ZpcnN0X3RyYWlsaW5nX29uZSkgXAorKyAgICAmJiBfX2dsaWJjX2hhc19idWlsdGluIChf X2J1aWx0aW5fc3RkY19jb3VudF96ZXJvcykgXAorKyAgICAmJiBfX2dsaWJjX2hhc19idWlsdGlu IChfX2J1aWx0aW5fc3RkY19jb3VudF9vbmVzKSBcCisrICAgICYmIF9fZ2xpYmNfaGFzX2J1aWx0 aW4gKF9fYnVpbHRpbl9zdGRjX2hhc19zaW5nbGVfYml0KSBcCisrICAgICYmIF9fZ2xpYmNfaGFz X2J1aWx0aW4gKF9fYnVpbHRpbl9zdGRjX2JpdF93aWR0aCkgXAorKyAgICAmJiBfX2dsaWJjX2hh c19idWlsdGluIChfX2J1aWx0aW5fc3RkY19iaXRfZmxvb3IpIFwKKysgICAgJiYgX19nbGliY19o YXNfYnVpbHRpbiAoX19idWlsdGluX3N0ZGNfYml0X2NlaWwpCisrCisrIyBpZiAhZGVmaW5lZCAo QklUSU5UX01BWFdJRFRIKSAmJiBkZWZpbmVkIChfX0JJVElOVF9NQVhXSURUSF9fKQorKyMgIGRl ZmluZSBCSVRJTlRfTUFYV0lEVEggX19CSVRJTlRfTUFYV0lEVEhfXworKyMgZW5kaWYKKysKKyt0 eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWM7CisrdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1czsKKyt0 eXBlZGVmIHVuc2lnbmVkIGludCB1aTsKKyt0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IHVsOwor K3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCB1bGw7CisrCisrIyBkZWZpbmUgZXhwcl9o YXNfdHlwZShlLCB0KSBfR2VuZXJpYyAoZSwgZGVmYXVsdCA6IDAsIHQgOiAxKQorKworK3N0YXRp YyBpbnQKKytkb190ZXN0ICh2b2lkKQorK3sKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5n X3plcm9zICgodWMpIDApLCBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5 cGUgKHN0ZGNfbGVhZGluZ196ZXJvcyAoKHVjKSAwKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFS RSAoc3RkY19sZWFkaW5nX3plcm9zICgodXMpIDApLCBzaXplb2YgKHNob3J0KSAqIENIQVJfQklU KTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19sZWFkaW5nX3plcm9zICgo dXMpIDApLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3MgKDBV KSwgc2l6ZW9mIChpbnQpICogQ0hBUl9CSVQpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190 eXBlIChzdGRjX2xlYWRpbmdfemVyb3MgKDBVKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19sZWFkaW5nX3plcm9zICgwVUwpLCBzaXplb2YgKGxvbmcgaW50KSAqIENIQVJfQklUKTsK KysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19sZWFkaW5nX3plcm9zICgwVUwp LCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3MgKDBVTEwpLCBz aXplb2YgKGxvbmcgbG9uZyBpbnQpICogQ0hBUl9CSVQpOworKyAgVEVTVF9DT01QQVJFIChleHBy X2hhc190eXBlIChzdGRjX2xlYWRpbmdfemVyb3MgKDBVTEwpLCB1aSksIDEpOworKyAgVEVTVF9D T01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3MgKCh1YykgfjBVKSwgMCk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfbGVhZGluZ196ZXJvcyAoKHVzKSB+MFUpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19sZWFkaW5nX3plcm9zICh+MFUpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFk aW5nX3plcm9zICh+MFVMKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ196ZXJv cyAofjBVTEwpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5nX3plcm9zICgodWMp IDMpLCBDSEFSX0JJVCAtIDIpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3Mg KCh1cykgOSksIHNpemVvZiAoc2hvcnQpICogQ0hBUl9CSVQgLSA0KTsKKysgIFRFU1RfQ09NUEFS RSAoc3RkY19sZWFkaW5nX3plcm9zICgzNFUpLCBzaXplb2YgKGludCkgKiBDSEFSX0JJVCAtIDYp OworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3MgKDEzMFVMKSwgc2l6ZW9mIChs b25nIGludCkgKiBDSEFSX0JJVCAtIDgpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdf emVyb3MgKDUxMlVMTCksCisrCQlzaXplb2YgKGxvbmcgbG9uZyBpbnQpICogQ0hBUl9CSVQgLSAx MCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICgodWMpIDApLCAwKTsKKysg IFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19sZWFkaW5nX29uZXMgKCh1YykgMCks IHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICgodXMpIDApLCAw KTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19sZWFkaW5nX29uZXMgKCh1 cykgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICgwVSks IDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2xlYWRpbmdfb25lcyAo MFUpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfb25lcyAoMFVMKSwg MCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfbGVhZGluZ19vbmVzICgw VUwpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfb25lcyAoMFVMTCks IDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2xlYWRpbmdfb25lcyAo MFVMTCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICgodWMp IH4wVSksIENIQVJfQklUKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5nX29uZXMgKCh1 cykgfjBVKSwgc2l6ZW9mIChzaG9ydCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKHN0 ZGNfbGVhZGluZ19vbmVzICh+MFUpLCBzaXplb2YgKGludCkgKiBDSEFSX0JJVCk7CisrICBURVNU X0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICh+MFVMKSwgc2l6ZW9mIChsb25nIGludCkgKiBD SEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICh+MFVMTCksIHNp emVvZiAobG9uZyBsb25nIGludCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNf bGVhZGluZ19vbmVzICgodWMpIH4zKSwgQ0hBUl9CSVQgLSAyKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19sZWFkaW5nX29uZXMgKCh1cykgfjkpLCBzaXplb2YgKHNob3J0KSAqIENIQVJfQklUIC0g NCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICh+MzRVKSwgc2l6ZW9mIChp bnQpICogQ0hBUl9CSVQgLSA2KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5nX29uZXMg KH4xMzBVTCksIHNpemVvZiAobG9uZyBpbnQpICogQ0hBUl9CSVQgLSA4KTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19sZWFkaW5nX29uZXMgKH41MTJVTEwpLAorKwkJc2l6ZW9mIChsb25nIGxvbmcg aW50KSAqIENIQVJfQklUIC0gMTApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX3pl cm9zICgodWMpIDApLCBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUg KHN0ZGNfdHJhaWxpbmdfemVyb3MgKCh1YykgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfdHJhaWxpbmdfemVyb3MgKCh1cykgMCksIHNpemVvZiAoc2hvcnQpICogQ0hBUl9CSVQp OworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX3RyYWlsaW5nX3plcm9zICgo dXMpIDApLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX3plcm9zICgw VSksIHNpemVvZiAoaW50KSAqIENIQVJfQklUKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNf dHlwZSAoc3RkY190cmFpbGluZ196ZXJvcyAoMFUpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJF IChzdGRjX3RyYWlsaW5nX3plcm9zICgwVUwpLCBzaXplb2YgKGxvbmcgaW50KSAqIENIQVJfQklU KTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY190cmFpbGluZ196ZXJvcyAo MFVMKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ196ZXJvcyAoMFVM TCksIHNpemVvZiAobG9uZyBsb25nIGludCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUg KGV4cHJfaGFzX3R5cGUgKHN0ZGNfdHJhaWxpbmdfemVyb3MgKDBVTEwpLCB1aSksIDEpOworKyAg VEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX3plcm9zICgodWMpIH4wVSksIDApOworKyAgVEVT VF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX3plcm9zICgodXMpIH4wVSksIDApOworKyAgVEVTVF9D T01QQVJFIChzdGRjX3RyYWlsaW5nX3plcm9zICh+MFUpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY190cmFpbGluZ196ZXJvcyAofjBVTCksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3Ry YWlsaW5nX3plcm9zICh+MFVMTCksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5n X3plcm9zICgodWMpIDIpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ196ZXJv cyAoKHVzKSAyNCksIDMpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX3plcm9zICgz MlUpLCA1KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ196ZXJvcyAoMTI4VUwpLCA3 KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ196ZXJvcyAoNTEyVUxMKSwgOSk7Cisr ICBURVNUX0NPTVBBUkUgKHN0ZGNfdHJhaWxpbmdfb25lcyAoKHVjKSAwKSwgMCk7CisrICBURVNU X0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfdHJhaWxpbmdfb25lcyAoKHVjKSAwKSwgdWkp LCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ19vbmVzICgodXMpIDApLCAwKTsK KysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY190cmFpbGluZ19vbmVzICgodXMp IDApLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX29uZXMgKDBVKSwg MCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfdHJhaWxpbmdfb25lcyAo MFUpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX29uZXMgKDBVTCks IDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX3RyYWlsaW5nX29uZXMg KDBVTCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfdHJhaWxpbmdfb25lcyAoMFVM TCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX3RyYWlsaW5nX29u ZXMgKDBVTEwpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX29uZXMg KCh1YykgfjBVKSwgQ0hBUl9CSVQpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX29u ZXMgKCh1cykgfjBVKSwgc2l6ZW9mIChzaG9ydCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfdHJhaWxpbmdfb25lcyAofjBVKSwgc2l6ZW9mIChpbnQpICogQ0hBUl9CSVQpOwor KyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX29uZXMgKH4wVUwpLCBzaXplb2YgKGxvbmcg aW50KSAqIENIQVJfQklUKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ19vbmVzICh+ MFVMTCksIHNpemVvZiAobG9uZyBsb25nIGludCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfdHJhaWxpbmdfb25lcyAoKHVjKSA1KSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0 ZGNfdHJhaWxpbmdfb25lcyAoKHVzKSAxNSksIDQpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3Ry YWlsaW5nX29uZXMgKDEyN1UpLCA3KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ19v bmVzICg1MTFVTCksIDkpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX29uZXMgKH4w VUxMID4+IDIpLAorKwkJc2l6ZW9mIChsb25nIGxvbmcgaW50KSAqIENIQVJfQklUIC0gMik7Cisr ICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICgodWMpIDApLCAxKTsKKysg IFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19maXJzdF9sZWFkaW5nX3plcm8gKCh1 YykgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJv ICgodXMpIDApLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19maXJz dF9sZWFkaW5nX3plcm8gKCh1cykgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNf Zmlyc3RfbGVhZGluZ196ZXJvICgwVSksIDEpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190 eXBlIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAoMFUpLCB1aSksIDEpOworKyAgVEVTVF9DT01Q QVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAoMFVMKSwgMSk7CisrICBURVNUX0NPTVBBUkUg KGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICgwVUwpLCB1aSksIDEpOwor KyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAoMFVMTCksIDEpOworKyAg VEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAoMFVM TCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICgo dWMpIH4wVSksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAo KHVzKSB+MFUpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF9sZWFkaW5nX3plcm8g KH4wVSksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAofjBV TCksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAofjBVTEwp LCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF9sZWFkaW5nX3plcm8gKCh1YykgfjNV KSwgQ0hBUl9CSVQgLSAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF9sZWFkaW5nX3pl cm8gKCh1cykgfjE1VSksCisrCQlzaXplb2YgKHNob3J0KSAqIENIQVJfQklUIC0gMyk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICh+NjNVKSwgc2l6ZW9mIChpbnQp ICogQ0hBUl9CSVQgLSA1KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF9sZWFkaW5nX3pl cm8gKH4yNTVVTCksCisrCQlzaXplb2YgKGxvbmcgaW50KSAqIENIQVJfQklUIC0gNyk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICh+MTAyM1VMTCksCisrCQlzaXpl b2YgKGxvbmcgbG9uZyBpbnQpICogQ0hBUl9CSVQgLSA5KTsKKysgIFRFU1RfQ09NUEFSRSAoc3Rk Y19maXJzdF9sZWFkaW5nX29uZSAoKHVjKSAwKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJf aGFzX3R5cGUgKHN0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKCh1YykgMCksIHVpKSwgMSk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKCh1cykgMCksIDApOworKyAgVEVT VF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lICgodXMpIDAp LCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lICgwVSks IDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2ZpcnN0X2xlYWRpbmdf b25lICgwVSksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ19v bmUgKDBVTCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2ZpcnN0 X2xlYWRpbmdfb25lICgwVUwpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0 X2xlYWRpbmdfb25lICgwVUxMKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUg KHN0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKDBVTEwpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJF IChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lICgodWMpIH4wVSksIDEpOworKyAgVEVTVF9DT01QQVJF IChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lICgodXMpIH4wVSksIDEpOworKyAgVEVTVF9DT01QQVJF IChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lICh+MFUpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3Rk Y19maXJzdF9sZWFkaW5nX29uZSAofjBVTCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2Zp cnN0X2xlYWRpbmdfb25lICh+MFVMTCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0 X2xlYWRpbmdfb25lICgodWMpIDMpLCBDSEFSX0JJVCAtIDEpOworKyAgVEVTVF9DT01QQVJFIChz dGRjX2ZpcnN0X2xlYWRpbmdfb25lICgodXMpIDkpLAorKwkJc2l6ZW9mIChzaG9ydCkgKiBDSEFS X0JJVCAtIDMpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lICgzNFUp LCBzaXplb2YgKGludCkgKiBDSEFSX0JJVCAtIDUpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2Zp cnN0X2xlYWRpbmdfb25lICgxMzBVTCksCisrCQlzaXplb2YgKGxvbmcgaW50KSAqIENIQVJfQklU IC0gNyk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKDUxMlVMTCks CisrCQlzaXplb2YgKGxvbmcgbG9uZyBpbnQpICogQ0hBUl9CSVQgLSA5KTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICgodWMpIDApLCAxKTsKKysgIFRFU1RfQ09N UEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICgodWMpIDApLCB1 aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8gKCh1cykg MCksIDEpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2ZpcnN0X3RyYWls aW5nX3plcm8gKCh1cykgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3Rf dHJhaWxpbmdfemVybyAoMFUpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAo c3RkY19maXJzdF90cmFpbGluZ196ZXJvICgwVSksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyAoMFVMKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4 cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyAoMFVMKSwgdWkpLCAxKTsKKysg IFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICgwVUxMKSwgMSk7CisrICBU RVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyAoMFVM TCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyAo KHVjKSB+MFUpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJv ICgodXMpIH4wVSksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3pl cm8gKH4wVSksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8g KH4wVUwpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICh+ MFVMTCksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8gKCh1 YykgMiksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8gKCh1 cykgMTUpLCA1KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICg2 M1UpLCA3KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICgxMjhV TCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8gKDUxMVVM TCksIDEwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ19vbmUgKCh1Yykg MCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2ZpcnN0X3RyYWls aW5nX29uZSAoKHVjKSAwKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90 cmFpbGluZ19vbmUgKCh1cykgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBl IChzdGRjX2ZpcnN0X3RyYWlsaW5nX29uZSAoKHVzKSAwKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19maXJzdF90cmFpbGluZ19vbmUgKDBVKSwgMCk7CisrICBURVNUX0NPTVBBUkUg KGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICgwVSksIHVpKSwgMSk7Cisr ICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICgwVUwpLCAwKTsKKysgIFRF U1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19maXJzdF90cmFpbGluZ19vbmUgKDBVTCks IHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICgwVUxM KSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfdHJhaWxp bmdfb25lICgwVUxMKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFp bGluZ19vbmUgKCh1YykgfjBVKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJh aWxpbmdfb25lICgodXMpIH4wVSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3Ry YWlsaW5nX29uZSAofjBVKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxp bmdfb25lICh+MFVMKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdf b25lICh+MFVMTCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX29u ZSAoKHVjKSA0KSwgMyk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25l ICgodXMpIDk2KSwgNik7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25l ICgxMjdVKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICg1 MTFVTCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX29uZSAofjBV TEwgPDwgMTIpLCAxMyk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfemVyb3MgKCh1Yykg MCksIENIQVJfQklUKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19jb3Vu dF96ZXJvcyAoKHVjKSAwKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19jb3VudF96 ZXJvcyAoKHVzKSAwKSwgc2l6ZW9mIChzaG9ydCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBB UkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfY291bnRfemVyb3MgKCh1cykgMCksIHVpKSwgMSk7Cisr ICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfemVyb3MgKDBVKSwgc2l6ZW9mIChpbnQpICogQ0hB Ul9CSVQpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2NvdW50X3plcm9z ICgwVSksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfemVyb3MgKDBVTCks IHNpemVvZiAobG9uZyBpbnQpICogQ0hBUl9CSVQpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hh c190eXBlIChzdGRjX2NvdW50X3plcm9zICgwVUwpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJF IChzdGRjX2NvdW50X3plcm9zICgwVUxMKSwgc2l6ZW9mIChsb25nIGxvbmcgaW50KSAqIENIQVJf QklUKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19jb3VudF96ZXJvcyAo MFVMTCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfemVyb3MgKCh1Yykg fjBVKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfemVyb3MgKCh1cykgfjBVKSwg MCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfemVyb3MgKH4wVSksIDApOworKyAgVEVT VF9DT01QQVJFIChzdGRjX2NvdW50X3plcm9zICh+MFVMKSwgMCk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfY291bnRfemVyb3MgKH4wVUxMKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291 bnRfemVyb3MgKCh1YykgMVUpLCBDSEFSX0JJVCAtIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRj X2NvdW50X3plcm9zICgodXMpIDQyKSwgc2l6ZW9mIChzaG9ydCkgKiBDSEFSX0JJVCAtIDMpOwor KyAgVEVTVF9DT01QQVJFIChzdGRjX2NvdW50X3plcm9zICgyOTFVKSwgc2l6ZW9mIChpbnQpICog Q0hBUl9CSVQgLSA0KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19jb3VudF96ZXJvcyAofjEzMTVV TCksIDUpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2NvdW50X3plcm9zICgzMzYzVUxMKSwKKysJ CXNpemVvZiAobG9uZyBsb25nIGludCkgKiBDSEFSX0JJVCAtIDYpOworKyAgVEVTVF9DT01QQVJF IChzdGRjX2NvdW50X29uZXMgKCh1YykgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hh c190eXBlIChzdGRjX2NvdW50X29uZXMgKCh1YykgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfY291bnRfb25lcyAoKHVzKSAwKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJf aGFzX3R5cGUgKHN0ZGNfY291bnRfb25lcyAoKHVzKSAwKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19jb3VudF9vbmVzICgwVSksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hh c190eXBlIChzdGRjX2NvdW50X29uZXMgKDBVKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19jb3VudF9vbmVzICgwVUwpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlw ZSAoc3RkY19jb3VudF9vbmVzICgwVUwpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRj X2NvdW50X29uZXMgKDBVTEwpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAo c3RkY19jb3VudF9vbmVzICgwVUxMKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19j b3VudF9vbmVzICgodWMpIH4wVSksIENIQVJfQklUKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19j b3VudF9vbmVzICgodXMpIH4wVSksIHNpemVvZiAoc2hvcnQpICogQ0hBUl9CSVQpOworKyAgVEVT VF9DT01QQVJFIChzdGRjX2NvdW50X29uZXMgKH4wVSksIHNpemVvZiAoaW50KSAqIENIQVJfQklU KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19jb3VudF9vbmVzICh+MFVMKSwgc2l6ZW9mIChsb25n IGludCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfb25lcyAofjBV TEwpLCBzaXplb2YgKGxvbmcgbG9uZyBpbnQpICogQ0hBUl9CSVQpOworKyAgVEVTVF9DT01QQVJF IChzdGRjX2NvdW50X29uZXMgKCh1YykgfjFVKSwgQ0hBUl9CSVQgLSAxKTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19jb3VudF9vbmVzICgodXMpIH40MiksIHNpemVvZiAoc2hvcnQpICogQ0hBUl9C SVQgLSAzKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19jb3VudF9vbmVzICh+MjkxVSksIHNpemVv ZiAoaW50KSAqIENIQVJfQklUIC0gNCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfb25l cyAoMTMxNVVMKSwgNSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfb25lcyAofjMzNjNV TEwpLAorKwkJc2l6ZW9mIChsb25nIGxvbmcgaW50KSAqIENIQVJfQklUIC0gNik7CisrICBURVNU X0NPTVBBUkUgKHN0ZGNfaGFzX3NpbmdsZV9iaXQgKCh1YykgMCksIDApOworKyAgVEVTVF9DT01Q QVJFIChleHByX2hhc190eXBlIChzdGRjX2hhc19zaW5nbGVfYml0ICgodWMpIDApLCBfQm9vbCks IDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2hhc19zaW5nbGVfYml0ICgodXMpIDApLCAwKTsK KysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19oYXNfc2luZ2xlX2JpdCAoKHVz KSAwKSwgX0Jvb2wpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19oYXNfc2luZ2xlX2JpdCAo MFUpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19oYXNfc2luZ2xl X2JpdCAoMFUpLCBfQm9vbCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2hhc19zaW5nbGVf Yml0ICgwVUwpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19oYXNf c2luZ2xlX2JpdCAoMFVMKSwgX0Jvb2wpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19oYXNf c2luZ2xlX2JpdCAoMFVMTCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChz dGRjX2hhc19zaW5nbGVfYml0ICgwVUxMKSwgX0Jvb2wpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19oYXNfc2luZ2xlX2JpdCAoKHVjKSAyKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNf aGFzX3NpbmdsZV9iaXQgKCh1cykgOCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2hhc19z aW5nbGVfYml0ICgzMlUpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19oYXNfc2luZ2xlX2Jp dCAoMTI4VUwpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19oYXNfc2luZ2xlX2JpdCAoNTEy VUxMKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfaGFzX3NpbmdsZV9iaXQgKCh1YykgNyks IDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2hhc19zaW5nbGVfYml0ICgodXMpIDk2KSwgMCk7 CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfaGFzX3NpbmdsZV9iaXQgKDUxM1UpLCAwKTsKKysgIFRF U1RfQ09NUEFSRSAoc3RkY19oYXNfc2luZ2xlX2JpdCAoMTAyMlVMKSwgMCk7CisrICBURVNUX0NP TVBBUkUgKHN0ZGNfaGFzX3NpbmdsZV9iaXQgKDEyVUxMKSwgMCk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfYml0X3dpZHRoICgodWMpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNf dHlwZSAoc3RkY19iaXRfd2lkdGggKCh1YykgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfYml0X3dpZHRoICgodXMpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNf dHlwZSAoc3RkY19iaXRfd2lkdGggKCh1cykgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfYml0X3dpZHRoICgwVSksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBl IChzdGRjX2JpdF93aWR0aCAoMFUpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2Jp dF93aWR0aCAoMFVMKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNf Yml0X3dpZHRoICgwVUwpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF93aWR0 aCAoMFVMTCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2JpdF93 aWR0aCAoMFVMTCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICgo dWMpIH4wVSksIENIQVJfQklUKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfd2lkdGggKCh1 cykgfjBVKSwgc2l6ZW9mIChzaG9ydCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKHN0 ZGNfYml0X3dpZHRoICh+MFUpLCBzaXplb2YgKGludCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NP TVBBUkUgKHN0ZGNfYml0X3dpZHRoICh+MFVMKSwgc2l6ZW9mIChsb25nIGludCkgKiBDSEFSX0JJ VCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICh+MFVMTCksIHNpemVvZiAobG9u ZyBsb25nIGludCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRo ICgodWMpICgodWMpIH4wVSA+PiAxKSksIENIQVJfQklUIC0gMSk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfYml0X3dpZHRoICgodWMpIDYpLCAzKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRf d2lkdGggKCh1cykgMTJVKSwgNCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICgo dXMpICgodXMpIH4wVSA+PiA1KSksCisrCQlzaXplb2YgKHNob3J0KSAqIENIQVJfQklUIC0gNSk7 CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICgxMzdVKSwgOCk7CisrICBURVNUX0NP TVBBUkUgKHN0ZGNfYml0X3dpZHRoICgyNjlVKSwgOSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNf Yml0X3dpZHRoICgzOVVMKSwgNik7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICh+ MFVMID4+IDIpLCBzaXplb2YgKGxvbmcgaW50KSAqIENIQVJfQklUIC0gMik7CisrICBURVNUX0NP TVBBUkUgKHN0ZGNfYml0X3dpZHRoICgxMDIzVUxMKSwgMTApOworKyAgVEVTVF9DT01QQVJFIChz dGRjX2JpdF93aWR0aCAoMTAyNFVMTCksIDExKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRf Zmxvb3IgKCh1YykgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRj X2JpdF9mbG9vciAoKHVjKSAwKSwgdWMpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRf Zmxvb3IgKCh1cykgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRj X2JpdF9mbG9vciAoKHVzKSAwKSwgdXMpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRf Zmxvb3IgKDBVKSwgMFUpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2Jp dF9mbG9vciAoMFUpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAo MFVMKSwgMFVMKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19iaXRfZmxv b3IgKDBVTCksIHVsKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2Zsb29yICgwVUxM KSwgMFVMTCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfYml0X2Zsb29y ICgwVUxMKSwgdWxsKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2Zsb29yICgodWMp IH4wVSksICgxVSA8PCAoQ0hBUl9CSVQgLSAxKSkpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2Jp dF9mbG9vciAoKHVzKSB+MFUpLAorKwkJKDFVIDw8IChzaXplb2YgKHNob3J0KSAqIENIQVJfQklU IC0gMSkpKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfZmxvb3IgKH4wVSksICgxVSA8PCAo c2l6ZW9mIChpbnQpICogQ0hBUl9CSVQgLSAxKSkpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2Jp dF9mbG9vciAofjBVTCksCisrCQkoMVVMIDw8IChzaXplb2YgKGxvbmcgaW50KSAqIENIQVJfQklU IC0gMSkpKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfZmxvb3IgKH4wVUxMKSwKKysJCSgx VUxMIDw8IChzaXplb2YgKGxvbmcgbG9uZyBpbnQpICogQ0hBUl9CSVQgLSAxKSkpOworKyAgVEVT VF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAoKHVjKSA0KSwgNCk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfYml0X2Zsb29yICgodWMpIDcpLCA0KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRf Zmxvb3IgKCh1cykgOFUpLCA4KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfZmxvb3IgKCh1 cykgMzFVKSwgMTYpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAoMTM3VSksIDEy OFUpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAoMjY5VSksIDI1NlUpOworKyAg VEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAoNTExVUwpLCAyNTZVTCk7CisrICBURVNUX0NP TVBBUkUgKHN0ZGNfYml0X2Zsb29yICg1MTJVTCksIDUxMlVMKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19iaXRfZmxvb3IgKDUxM1VMKSwgNTEyVUxMKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19i aXRfZmxvb3IgKDEwMjRVTEwpLCAxMDI0VUxMKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRf Y2VpbCAoKHVjKSAwKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNf Yml0X2NlaWwgKCh1YykgMCksIHVjKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2Nl aWwgKCh1cykgMCksIDEpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2Jp dF9jZWlsICgodXMpIDApLCB1cyksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWls ICgwVSksIDFVKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19iaXRfY2Vp bCAoMFUpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICgwVUwpLCAx VUwpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2JpdF9jZWlsICgwVUwp LCB1bCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICgwVUxMKSwgMVVMTCk7 CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfYml0X2NlaWwgKDBVTEwpLCB1 bGwpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAoKHVjKSB+MFUpLCAwKTsK KysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAoKHVzKSB+MFUpLCAwKTsKKysgIFRFU1Rf Q09NUEFSRSAoc3RkY19iaXRfY2VpbCAofjBVKSwgMFUpOworKyAgVEVTVF9DT01QQVJFIChzdGRj X2JpdF9jZWlsICh+MFVMKSwgMFVMKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAo fjBVTEwpLCAwVUxMKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAoKHVjKSAoKHVj KSB+MFUgPj4gMSkpLCAoMVUgPDwgKENIQVJfQklUIC0gMSkpKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19iaXRfY2VpbCAoKHVjKSAoKHVjKSB+MFUgPj4gMSkpLCAoMVUgPDwgKENIQVJfQklUIC0g MSkpKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAoKHVzKSAoKHVzKSB+MFUgPj4g MSkpLAorKwkJKDFVIDw8IChzaXplb2YgKHNob3J0KSAqIENIQVJfQklUIC0gMSkpKTsKKysgIFRF U1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAoKHVzKSAoKHVzKSB+MFUgPj4gMSkpLAorKwkJKDFV IDw8IChzaXplb2YgKHNob3J0KSAqIENIQVJfQklUIC0gMSkpKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19iaXRfY2VpbCAofjBVID4+IDEpLAorKwkJKDFVIDw8IChzaXplb2YgKGludCkgKiBDSEFS X0JJVCAtIDEpKSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKDFVIDw8IChzaXpl b2YgKGludCkgKiBDSEFSX0JJVCAtIDEpKSwKKysJCSgxVSA8PCAoc2l6ZW9mIChpbnQpICogQ0hB Ul9CSVQgLSAxKSkpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICh+MFVMID4+IDEp LAorKwkJKDFVTCA8PCAoc2l6ZW9mIChsb25nIGludCkgKiBDSEFSX0JJVCAtIDEpKSk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKH4wVUwgPj4gMSksCisrCQkoMVVMIDw8IChzaXpl b2YgKGxvbmcgaW50KSAqIENIQVJfQklUIC0gMSkpKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19i aXRfY2VpbCAoMVVMTAorKwkJCSAgICAgICA8PCAoc2l6ZW9mIChsb25nIGxvbmcgaW50KSAqIENI QVJfQklUIC0gMSkpLAorKwkJKDFVTEwgPDwgKHNpemVvZiAobG9uZyBsb25nIGludCkgKiBDSEFS X0JJVCAtIDEpKSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKH4wVUxMID4+IDEp LAorKwkJKDFVTEwgPDwgKHNpemVvZiAobG9uZyBsb25nIGludCkgKiBDSEFSX0JJVCAtIDEpKSk7 CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKCh1YykgMSksIDEpOworKyAgVEVTVF9D T01QQVJFIChzdGRjX2JpdF9jZWlsICgodWMpIDIpLCAyKTsKKysgIFRFU1RfQ09NUEFSRSAoc3Rk Y19iaXRfY2VpbCAoKHVzKSAzVSksIDQpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWls ICgodXMpIDRVKSwgNCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKDVVKSwgOFUp OworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICgyNjlVKSwgNTEyVSk7CisrICBURVNU X0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKDUxMVVMKSwgNTEyVUwpOworKyAgVEVTVF9DT01QQVJF IChzdGRjX2JpdF9jZWlsICg1MTJVTCksIDUxMlVMKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19i aXRfY2VpbCAoNTEzVUxMKSwgMTAyNFVMTCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2Nl aWwgKDEwMjVVTEwpLCAyMDQ4VUxMKTsKKysjIGlmZGVmIF9fU0laRU9GX0lOVDEyOF9fCisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ196ZXJvcyAoKHVuc2lnbmVkIF9faW50MTI4KSAwKSwK KysJCXNpemVvZiAoX19pbnQxMjgpICogQ0hBUl9CSVQpOworKyAgVEVTVF9DT01QQVJFIChleHBy X2hhc190eXBlIChzdGRjX2xlYWRpbmdfemVyb3MgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCksIHVp KSwKKysJCTEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3MgKH4odW5zaWdu ZWQgX19pbnQxMjgpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5nX29uZXMg KCh1bnNpZ25lZCBfX2ludDEyOCkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190 eXBlIChzdGRjX2xlYWRpbmdfb25lcyAoKHVuc2lnbmVkIF9faW50MTI4KSAwKSwgdWkpLAorKwkJ MSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICh+KHVuc2lnbmVkIF9faW50 MTI4KSAwKSwKKysJCXNpemVvZiAoX19pbnQxMjgpICogQ0hBUl9CSVQpOworKyAgVEVTVF9DT01Q QVJFIChzdGRjX3RyYWlsaW5nX3plcm9zICgodW5zaWduZWQgX19pbnQxMjgpIDApLAorKwkJc2l6 ZW9mIChfX2ludDEyOCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5 cGUgKHN0ZGNfdHJhaWxpbmdfemVyb3MgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCksCisrCQkJICAg ICAgIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfdHJhaWxpbmdfemVyb3MgKH4odW5z aWduZWQgX19pbnQxMjgpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ19v bmVzICgodW5zaWduZWQgX19pbnQxMjgpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9o YXNfdHlwZSAoc3RkY190cmFpbGluZ19vbmVzICgodW5zaWduZWQgX19pbnQxMjgpIDApLCB1aSks CisrCQkxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ19vbmVzICh+KHVuc2lnbmVk IF9faW50MTI4KSAwKSwKKysJCXNpemVvZiAoX19pbnQxMjgpICogQ0hBUl9CSVQpOworKyAgVEVT VF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAoKHVuc2lnbmVkIF9faW50MTI4KSAw KSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfbGVhZGlu Z196ZXJvICgodW5zaWduZWQgX19pbnQxMjgpIDApLAorKwkJCSAgICAgICB1aSksIDEpOworKyAg VEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAofih1bnNpZ25lZCBfX2ludDEy OCkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lICgodW5z aWduZWQgX19pbnQxMjgpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAo c3RkY19maXJzdF9sZWFkaW5nX29uZSAoKHVuc2lnbmVkIF9faW50MTI4KSAwKSwKKysJCQkgICAg ICAgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF9sZWFkaW5nX29uZSAofih1 bnNpZ25lZCBfX2ludDEyOCkgMCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3Ry YWlsaW5nX3plcm8gKCh1bnNpZ25lZCBfX2ludDEyOCkgMCksIDEpOworKyAgVEVTVF9DT01QQVJF IChleHByX2hhc190eXBlIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8gKCh1bnNpZ25lZCBfX2lu dDEyOCkKKysJCQkJCQkJIDApLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0 X3RyYWlsaW5nX3plcm8gKH4odW5zaWduZWQgX19pbnQxMjgpIDApLCAwKTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19maXJzdF90cmFpbGluZ19vbmUgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCksIDAp OworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2ZpcnN0X3RyYWlsaW5nX29u ZSAoKHVuc2lnbmVkIF9faW50MTI4KSAwKSwKKysJCQkgICAgICAgdWkpLCAxKTsKKysgIFRFU1Rf Q09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ19vbmUgKH4odW5zaWduZWQgX19pbnQxMjgpIDAp LCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19jb3VudF96ZXJvcyAoKHVuc2lnbmVkIF9faW50 MTI4KSAwKSwKKysJCXNpemVvZiAoX19pbnQxMjgpICogQ0hBUl9CSVQpOworKyAgVEVTVF9DT01Q QVJFIChleHByX2hhc190eXBlIChzdGRjX2NvdW50X3plcm9zICgodW5zaWduZWQgX19pbnQxMjgp IDApLCB1aSksCisrCQkxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19jb3VudF96ZXJvcyAofih1 bnNpZ25lZCBfX2ludDEyOCkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2NvdW50X29u ZXMgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hh c190eXBlIChzdGRjX2NvdW50X29uZXMgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCksIHVpKSwKKysJ CTEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2NvdW50X29uZXMgKH4odW5zaWduZWQgX19pbnQx MjgpIDApLAorKwkJc2l6ZW9mIChfX2ludDEyOCkgKiBDSEFSX0JJVCk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfaGFzX3NpbmdsZV9iaXQgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCksIDApOworKyAg VEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2hhc19zaW5nbGVfYml0ICgodW5zaWdu ZWQgX19pbnQxMjgpIDApLAorKwkJX0Jvb2wpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19o YXNfc2luZ2xlX2JpdCAofih1bnNpZ25lZCBfX2ludDEyOCkgMCksIDApOworKyAgVEVTVF9DT01Q QVJFIChzdGRjX2JpdF93aWR0aCAoKHVuc2lnbmVkIF9faW50MTI4KSAwKSwgMCk7CisrICBURVNU X0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfYml0X3dpZHRoICgodW5zaWduZWQgX19pbnQx MjgpIDApLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF93aWR0aCAofih1bnNp Z25lZCBfX2ludDEyOCkgMCksCisrCQlzaXplb2YgKF9faW50MTI4KSAqIENIQVJfQklUKTsKKysg IFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfZmxvb3IgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCkgIT0g MCwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfYml0X2Zsb29yICgo dW5zaWduZWQgX19pbnQxMjgpIDApLAorKwkJCSAgICAgICB1bnNpZ25lZCBfX2ludDEyOCksIDEp OworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAofih1bnNpZ25lZCBfX2ludDEyOCkg MCkKKysJCSE9ICgodW5zaWduZWQgX19pbnQxMjgpIDEpIDw8IChzaXplb2YgKF9faW50MTI4KQor KwkJCQkJICAgICAgICogQ0hBUl9CSVQgLSAxKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNf Yml0X2NlaWwgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCkgIT0gMSwgMCk7CisrICBURVNUX0NPTVBB UkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfYml0X2NlaWwgKCh1bnNpZ25lZCBfX2ludDEyOCkgMCks CisrCQkJICAgICAgIHVuc2lnbmVkIF9faW50MTI4KSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0 ZGNfYml0X2NlaWwgKCh1bnNpZ25lZCBfX2ludDEyOCkgMSkgIT0gMSwgMCk7CisrICBURVNUX0NP TVBBUkUgKHN0ZGNfYml0X2NlaWwgKCh+KHVuc2lnbmVkIF9faW50MTI4KSAwKSA+PiAxKQorKwkJ IT0gKCh1bnNpZ25lZCBfX2ludDEyOCkgMSkgPDwgKHNpemVvZiAoX19pbnQxMjgpCisrCQkJCQkg ICAgICAgKiBDSEFSX0JJVCAtIDEpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2Vp bCAofih1bnNpZ25lZCBfX2ludDEyOCkgMCkgIT0gMCwgMCk7CisrIyBlbmRpZgorKyAgdWMgYSA9 IDA7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoIChhKyspLCAwKTsKKysgIFRFU1Rf Q09NUEFSRSAoYSwgMSk7CisrICB1bGwgYiA9IDA7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0 X3dpZHRoIChiKyspLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoYiwgMSk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfYml0X2Zsb29yIChhKyspLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoYSwgMik7Cisr ICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2Zsb29yIChiKyspLCAxKTsKKysgIFRFU1RfQ09NUEFS RSAoYiwgMik7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKGErKyksIDIpOworKyAg VEVTVF9DT01QQVJFIChhLCAzKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAoYisr KSwgMik7CisrICBURVNUX0NPTVBBUkUgKGIsIDMpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xl YWRpbmdfemVyb3MgKGErKyksIENIQVJfQklUIC0gMik7CisrICBURVNUX0NPTVBBUkUgKGEsIDQp OworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3MgKGIrKyksCisrCQlzaXplb2Yg KGxvbmcgbG9uZyBpbnQpICogQ0hBUl9CSVQgLSAyKTsKKysgIFRFU1RfQ09NUEFSRSAoYiwgNCk7 CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzIChhKyspLCAwKTsKKysgIFRFU1Rf Q09NUEFSRSAoYSwgNSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzIChiKysp LCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoYiwgNSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfdHJh aWxpbmdfemVyb3MgKGErKyksIDApOworKyAgVEVTVF9DT01QQVJFIChhLCA2KTsKKysgIFRFU1Rf Q09NUEFSRSAoc3RkY190cmFpbGluZ196ZXJvcyAoYisrKSwgMCk7CisrICBURVNUX0NPTVBBUkUg KGIsIDYpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX29uZXMgKGErKyksIDApOwor KyAgVEVTVF9DT01QQVJFIChhLCA3KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ19v bmVzIChiKyspLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoYiwgNyk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvIChhKyspLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoYSwg OCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvIChiKyspLCAxKTsK KysgIFRFU1RfQ09NUEFSRSAoYiwgOCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVh ZGluZ19vbmUgKGErKyksIENIQVJfQklUIC0gMyk7CisrICBURVNUX0NPTVBBUkUgKGEsIDkpOwor KyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lIChiKyspLAorKwkJc2l6ZW9m IChsb25nIGxvbmcgaW50KSAqIENIQVJfQklUIC0gMyk7CisrICBURVNUX0NPTVBBUkUgKGIsIDkp OworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8gKGErKyksIDIpOwor KyAgVEVTVF9DT01QQVJFIChhLCAxMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJh aWxpbmdfemVybyAoYisrKSwgMik7CisrICBURVNUX0NPTVBBUkUgKGIsIDEwKTsKKysgIFRFU1Rf Q09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ19vbmUgKGErKyksIDIpOworKyAgVEVTVF9DT01Q QVJFIChhLCAxMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lIChi KyspLCAyKTsKKysgIFRFU1RfQ09NUEFSRSAoYiwgMTEpOworKyAgVEVTVF9DT01QQVJFIChzdGRj X2NvdW50X3plcm9zIChhKyspLCBDSEFSX0JJVCAtIDMpOworKyAgVEVTVF9DT01QQVJFIChhLCAx Mik7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfemVyb3MgKGIrKyksCisrCQlzaXplb2Yg KGxvbmcgbG9uZyBpbnQpICogQ0hBUl9CSVQgLSAzKTsKKysgIFRFU1RfQ09NUEFSRSAoYiwgMTIp OworKyAgVEVTVF9DT01QQVJFIChzdGRjX2NvdW50X29uZXMgKGErKyksIDIpOworKyAgVEVTVF9D T01QQVJFIChhLCAxMyk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfb25lcyAoYisrKSwg Mik7CisrICBURVNUX0NPTVBBUkUgKGIsIDEzKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19oYXNf c2luZ2xlX2JpdCAoYSsrKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGEsIDE0KTsKKysgIFRFU1Rf Q09NUEFSRSAoc3RkY19oYXNfc2luZ2xlX2JpdCAoYisrKSwgMCk7CisrICBURVNUX0NPTVBBUkUg KGIsIDE0KTsKKysjIGlmZGVmIEJJVElOVF9NQVhXSURUSAorKyMgIGlmIEJJVElOVF9NQVhXSURU SCA+PSA2NAorKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3MgKDB1d2IpLCAxKTsK KysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19sZWFkaW5nX3plcm9zICgwdXdi KSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5nX3plcm9zICgxdXdiKSwg MCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfbGVhZGluZ196ZXJvcyAo MXV3YiksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICgwdXdi KSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfbGVhZGluZ19vbmVz ICgwdXdiKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5nX29uZXMgKDF1 d2IpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19sZWFkaW5nX29u ZXMgKDF1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX3plcm9z ICgwdXdiKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfdHJhaWxp bmdfemVyb3MgKDB1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5n X3plcm9zICgxdXdiKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNf dHJhaWxpbmdfemVyb3MgKDF1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3Ry YWlsaW5nX29uZXMgKDB1d2IpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAo c3RkY190cmFpbGluZ19vbmVzICgwdXdiKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3Rk Y190cmFpbGluZ19vbmVzICgxdXdiKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5 cGUgKHN0ZGNfdHJhaWxpbmdfb25lcyAoMXV3YiksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUg KHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICgwdXdiKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4 cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICgwdXdiKSwgdWkpLCAxKTsKKysg IFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF9sZWFkaW5nX3plcm8gKDF1d2IpLCAwKTsKKysgIFRF U1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19maXJzdF9sZWFkaW5nX3plcm8gKDF1d2Ip LCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfb25lICgwdXdi KSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfbGVhZGlu Z19vbmUgKDB1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRp bmdfb25lICgxdXdiKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNf Zmlyc3RfbGVhZGluZ19vbmUgKDF1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRj X2ZpcnN0X3RyYWlsaW5nX3plcm8gKDB1d2IpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9o YXNfdHlwZSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICgwdXdiKSwgdWkpLCAxKTsKKysgIFRF U1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICgxdXdiKSwgMCk7CisrICBURVNU X0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyAoMXV3Yiks IHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICgwdXdi KSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfdHJhaWxp bmdfb25lICgwdXdiKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFp bGluZ19vbmUgKDF1d2IpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3Rk Y19maXJzdF90cmFpbGluZ19vbmUgKDF1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChz dGRjX2NvdW50X3plcm9zICgwdXdiKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5 cGUgKHN0ZGNfY291bnRfemVyb3MgKDB1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChz dGRjX2NvdW50X3plcm9zICgxdXdiKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5 cGUgKHN0ZGNfY291bnRfemVyb3MgKDF1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChz dGRjX2NvdW50X29uZXMgKDB1d2IpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlw ZSAoc3RkY19jb3VudF9vbmVzICgwdXdiKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3Rk Y19jb3VudF9vbmVzICgxdXdiKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUg KHN0ZGNfY291bnRfb25lcyAoMXV3YiksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNf aGFzX3NpbmdsZV9iaXQgKDB1d2IpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlw ZSAoc3RkY19oYXNfc2luZ2xlX2JpdCAoMHV3YiksIF9Cb29sKSwgMSk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfaGFzX3NpbmdsZV9iaXQgKDF1d2IpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhw cl9oYXNfdHlwZSAoc3RkY19oYXNfc2luZ2xlX2JpdCAoMXV3YiksIF9Cb29sKSwgMSk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICgwdXdiKSwgMCk7CisrICBURVNUX0NPTVBBUkUg KGV4cHJfaGFzX3R5cGUgKHN0ZGNfYml0X3dpZHRoICgwdXdiKSwgdWkpLCAxKTsKKysgIFRFU1Rf Q09NUEFSRSAoc3RkY19iaXRfd2lkdGggKDF1d2IpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhw cl9oYXNfdHlwZSAoc3RkY19iaXRfd2lkdGggKDF1d2IpLCB1aSksIDEpOworKyAgVEVTVF9DT01Q QVJFIChzdGRjX2JpdF9mbG9vciAoMHV3YiksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hh c190eXBlIChzdGRjX2JpdF9mbG9vciAoMHV3YiksIHVuc2lnbmVkIF9CaXRJbnQoMSkpLCAxKTsK KysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfZmxvb3IgKDF1d2IpLCAxKTsKKysgIFRFU1RfQ09N UEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19iaXRfZmxvb3IgKDF1d2IpLCB1bnNpZ25lZCBfQml0 SW50KDEpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKDB1d2IpLCAxKTsK KysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19iaXRfY2VpbCAoMHV3YiksIHVu c2lnbmVkIF9CaXRJbnQoMSkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAo MXV3YiksIDEpOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2JpdF9jZWls ICgxdXdiKSwgdW5zaWduZWQgX0JpdEludCgxKSksIDEpOworKyAgdW5zaWduZWQgX0JpdEludCgx KSBjID0gMDsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfZmxvb3IgKGMrKyksIDApOworKyAg VEVTVF9DT01QQVJFIChjLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfZmxvb3IgKGMr KyksIDEpOworKyAgVEVTVF9DT01QQVJFIChjLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19i aXRfY2VpbCAoYysrKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGMsIDEpOworKyAgVEVTVF9DT01Q QVJFIChzdGRjX2JpdF9jZWlsIChjKyspLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoYywgMCk7Cisr IyAgZW5kaWYKKysjICBpZiBCSVRJTlRfTUFYV0lEVEggPj0gNTEyCisrICBURVNUX0NPTVBBUkUg KHN0ZGNfbGVhZGluZ196ZXJvcyAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCksIDUxMik7Cisr ICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfbGVhZGluZ196ZXJvcyAoKHVuc2ln bmVkIF9CaXRJbnQoNTEyKSkgMCksCisrCQkJICAgICAgIHVpKSwgMSk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfbGVhZGluZ196ZXJvcyAoKHVuc2lnbmVkIF9CaXRJbnQoMzczKSkgMCksIDM3Myk7 CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfbGVhZGluZ196ZXJvcyAoKHVu c2lnbmVkIF9CaXRJbnQoMzczKSkgMCksCisrCQkJICAgICAgIHVpKSwgMSk7CisrICBURVNUX0NP TVBBUkUgKHN0ZGNfbGVhZGluZ196ZXJvcyAofih1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLCAw KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5nX3plcm9zICh+KHVuc2lnbmVkIF9CaXRJ bnQoMzczKSkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfemVyb3MgKCh1 bnNpZ25lZCBfQml0SW50KDUxMikpIDI3NSksIDUxMiAtIDkpOworKyAgVEVTVF9DT01QQVJFIChz dGRjX2xlYWRpbmdfemVyb3MgKCh1bnNpZ25lZCBfQml0SW50KDM3MykpIDUxMiksIDM3MyAtIDEw KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19sZWFkaW5nX29uZXMgKCh1bnNpZ25lZCBfQml0SW50 KDUxMikpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19sZWFk aW5nX29uZXMgKCh1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLAorKwkJCSAgICAgICB1aSksIDEp OworKyAgVEVTVF9DT01QQVJFIChzdGRjX2xlYWRpbmdfb25lcyAoKHVuc2lnbmVkIF9CaXRJbnQo MzczKSkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2xlYWRp bmdfb25lcyAoKHVuc2lnbmVkIF9CaXRJbnQoMzczKSkgMCksCisrCQkJICAgICAgIHVpKSwgMSk7 CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICh+KHVuc2lnbmVkIF9CaXRJbnQo NTEyKSkgMCksIDUxMik7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICh+KHVu c2lnbmVkIF9CaXRJbnQoMzczKSkgMCksIDM3Myk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfbGVh ZGluZ19vbmVzICh+KHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMjc1KSwgNTEyIC0gOSk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfbGVhZGluZ19vbmVzICh+KHVuc2lnbmVkIF9CaXRJbnQoMzczKSkg NTEyKSwgMzczIC0gMTApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX3plcm9zICgo dW5zaWduZWQgX0JpdEludCg1MTIpKSAwKSwgNTEyKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9o YXNfdHlwZSAoc3RkY190cmFpbGluZ196ZXJvcyAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCks CisrCQkJICAgICAgIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfdHJhaWxpbmdfemVy b3MgKCh1bnNpZ25lZCBfQml0SW50KDM3MykpIDApLCAzNzMpOworKyAgVEVTVF9DT01QQVJFIChl eHByX2hhc190eXBlIChzdGRjX3RyYWlsaW5nX3plcm9zICgodW5zaWduZWQgX0JpdEludCgzNzMp KSAwKSwKKysJCQkgICAgICAgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGlu Z196ZXJvcyAofih1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFS RSAoc3RkY190cmFpbGluZ196ZXJvcyAofih1bnNpZ25lZCBfQml0SW50KDM3MykpIDApLCAwKTsK KysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ196ZXJvcyAoKHVuc2lnbmVkIF9CaXRJbnQo NTEyKSkgMjU2KSwgOCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfdHJhaWxpbmdfemVyb3MgKCh1 bnNpZ25lZCBfQml0SW50KDM3MykpIDUxMiksIDkpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX3Ry YWlsaW5nX29uZXMgKCh1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLCAwKTsKKysgIFRFU1RfQ09N UEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY190cmFpbGluZ19vbmVzICgodW5zaWduZWQgX0JpdElu dCg1MTIpKSAwKSwKKysJCQkgICAgICAgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190 cmFpbGluZ19vbmVzICgodW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSwgMCk7CisrICBURVNUX0NP TVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfdHJhaWxpbmdfb25lcyAoKHVuc2lnbmVkIF9CaXRJ bnQoMzczKSkgMCksCisrCQkJICAgICAgIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNf dHJhaWxpbmdfb25lcyAofih1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLCA1MTIpOworKyAgVEVT VF9DT01QQVJFIChzdGRjX3RyYWlsaW5nX29uZXMgKH4odW5zaWduZWQgX0JpdEludCgzNzMpKSAw KSwgMzczKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ19vbmVzICgodW5zaWduZWQg X0JpdEludCg1MTIpKSAyNTUpLCA4KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY190cmFpbGluZ19v bmVzICgofih1bnNpZ25lZCBfQml0SW50KDM3MykpIDApID4+IDIpLAorKwkJMzczIC0gMik7Cisr ICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICgodW5zaWduZWQgX0JpdElu dCg1MTIpKSAwKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmly c3RfbGVhZGluZ196ZXJvICgodW5zaWduZWQgX0JpdEludCg1MTIpKQorKwkJCQkJCQkwKSwgdWkp LCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF9sZWFkaW5nX3plcm8gKCh1bnNpZ25l ZCBfQml0SW50KDM3MykpIDApLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAo c3RkY19maXJzdF9sZWFkaW5nX3plcm8gKCh1bnNpZ25lZCBfQml0SW50KDM3MykpCisrCQkJCQkJ CTApLCB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xlYWRpbmdfemVybyAo fih1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19m aXJzdF9sZWFkaW5nX3plcm8gKH4odW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSwgMCk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ196ZXJvICh+KHVuc2lnbmVkIF9CaXRJbnQo NTEyKSkgNTExKSwKKysJCTUxMiAtIDgpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X2xl YWRpbmdfemVybyAofih1bnNpZ25lZCBfQml0SW50KDM3MykpIDEwMjMpLAorKwkJMzczIC0gOSk7 CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKCh1bnNpZ25lZCBfQml0 SW50KDUxMikpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19m aXJzdF9sZWFkaW5nX29uZSAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkKKysJCQkJCQkgICAgICAg MCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKCh1 bnNpZ25lZCBfQml0SW50KDM3MykpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNf dHlwZSAoc3RkY19maXJzdF9sZWFkaW5nX29uZSAoKHVuc2lnbmVkIF9CaXRJbnQoMzczKSkKKysJ CQkJCQkgICAgICAgMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVh ZGluZ19vbmUgKH4odW5zaWduZWQgX0JpdEludCg1MTIpKSAwKSwgMSk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKH4odW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSwg MSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfbGVhZGluZ19vbmUgKCh1bnNpZ25lZCBf Qml0SW50KDUxMikpIDI3NSksIDUxMiAtIDgpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0 X2xlYWRpbmdfb25lICgodW5zaWduZWQgX0JpdEludCgzNzMpKSA1MTIpLCAzNzMgLSA5KTsKKysg IFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICgodW5zaWduZWQgX0JpdElu dCg1MTIpKSAwKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmly c3RfdHJhaWxpbmdfemVybyAoKHVuc2lnbmVkCisrCQkJCQkJCSAgX0JpdEludCg1MTIpKSAwKSwK KysJCQkgICAgICAgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJzdF90cmFpbGlu Z196ZXJvICgodW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSwgMSk7CisrICBURVNUX0NPTVBBUkUg KGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyAoKHVuc2lnbmVkCisrCQkJ CQkJCSAgX0JpdEludCgzNzMpKSAwKSwKKysJCQkgICAgICAgdWkpLCAxKTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19maXJzdF90cmFpbGluZ196ZXJvICh+KHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkg MCksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX3plcm8gKH4odW5z aWduZWQgX0JpdEludCgzNzMpKSAwKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3Rf dHJhaWxpbmdfemVybyAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMjU1KSwgOSk7CisrICBURVNU X0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfemVybyAoKHVuc2lnbmVkIF9CaXRJbnQoMzcz KSkgNTExKSwgMTApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX29uZSAo KHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hh c190eXBlIChzdGRjX2ZpcnN0X3RyYWlsaW5nX29uZSAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkK KysJCQkJCQkJMCksIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxp bmdfb25lICgodW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSwgMCk7CisrICBURVNUX0NPTVBBUkUg KGV4cHJfaGFzX3R5cGUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICgodW5zaWduZWQgX0JpdElu dCgzNzMpKQorKwkJCQkJCQkwKSwgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19maXJz dF90cmFpbGluZ19vbmUgKH4odW5zaWduZWQgX0JpdEludCg1MTIpKSAwKSwgMSk7CisrICBURVNU X0NPTVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICh+KHVuc2lnbmVkIF9CaXRJbnQoMzcz KSkgMCksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2ZpcnN0X3RyYWlsaW5nX29uZSAoKCh1 bnNpZ25lZCBfQml0SW50KDUxMikpIDI1NSkgPDwgMTc1KSwKKysJCTE3Nik7CisrICBURVNUX0NP TVBBUkUgKHN0ZGNfZmlyc3RfdHJhaWxpbmdfb25lICgofih1bnNpZ25lZCBfQml0SW50KDM3Mykp IDApIDw8IDMxMSksCisrCQkzMTIpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2NvdW50X3plcm9z ICgodW5zaWduZWQgX0JpdEludCg1MTIpKSAwKSwgNTEyKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhw cl9oYXNfdHlwZSAoc3RkY19jb3VudF96ZXJvcyAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCks CisrCQkJICAgICAgIHVpKSwgMSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfemVyb3Mg KCh1bnNpZ25lZCBfQml0SW50KDM3MykpIDApLCAzNzMpOworKyAgVEVTVF9DT01QQVJFIChleHBy X2hhc190eXBlIChzdGRjX2NvdW50X3plcm9zICgodW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSwK KysJCQkgICAgICAgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19jb3VudF96ZXJvcyAo fih1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19j b3VudF96ZXJvcyAofih1bnNpZ25lZCBfQml0SW50KDM3MykpIDApLCAwKTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19jb3VudF96ZXJvcyAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMTMxNSksIDUx MiAtIDUpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2NvdW50X3plcm9zICgodW5zaWduZWQgX0Jp dEludCgzNzMpKSAzMzYzKSwgMzczIC0gNik7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRf b25lcyAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChl eHByX2hhc190eXBlIChzdGRjX2NvdW50X29uZXMgKCh1bnNpZ25lZCBfQml0SW50KDUxMikpIDAp LAorKwkJCSAgICAgICB1aSksIDEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2NvdW50X29uZXMg KCh1bnNpZ25lZCBfQml0SW50KDM3MykpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9o YXNfdHlwZSAoc3RkY19jb3VudF9vbmVzICgodW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSwKKysJ CQkgICAgICAgdWkpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19jb3VudF9vbmVzICh+KHVu c2lnbmVkIF9CaXRJbnQoNTEyKSkgMCksIDUxMik7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291 bnRfb25lcyAofih1bnNpZ25lZCBfQml0SW50KDM3MykpIDApLCAzNzMpOworKyAgVEVTVF9DT01Q QVJFIChzdGRjX2NvdW50X29uZXMgKH4odW5zaWduZWQgX0JpdEludCg1MTIpKSAxMzE1KSwgNTEy IC0gNSk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfY291bnRfb25lcyAofih1bnNpZ25lZCBfQml0 SW50KDM3MykpIDMzNjMpLCAzNzMgLSA2KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19oYXNfc2lu Z2xlX2JpdCAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCksIDApOworKyAgVEVTVF9DT01QQVJF IChleHByX2hhc190eXBlIChzdGRjX2hhc19zaW5nbGVfYml0ICgodW5zaWduZWQgX0JpdEludCg1 MTIpKSAwKSwKKysJCQkgICAgICAgX0Jvb2wpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19o YXNfc2luZ2xlX2JpdCAoKHVuc2lnbmVkIF9CaXRJbnQoMzczKSkgMCksIDApOworKyAgVEVTVF9D T01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2hhc19zaW5nbGVfYml0ICgodW5zaWduZWQgX0Jp dEludCgzNzMpKSAwKSwKKysJCQkgICAgICAgX0Jvb2wpLCAxKTsKKysgIFRFU1RfQ09NUEFSRSAo c3RkY19oYXNfc2luZ2xlX2JpdCAofih1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLCAwKTsKKysg IFRFU1RfQ09NUEFSRSAoc3RkY19oYXNfc2luZ2xlX2JpdCAofih1bnNpZ25lZCBfQml0SW50KDM3 MykpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19oYXNfc2luZ2xlX2JpdCAoKCh1bnNp Z25lZCBfQml0SW50KDUxMikpIDEwMjIpIDw8IDI3OSksCisrCQkwKTsKKysgIFRFU1RfQ09NUEFS RSAoc3RkY19oYXNfc2luZ2xlX2JpdCAoKCh1bnNpZ25lZCBfQml0SW50KDM3MykpIDEyKSA8PCAz MDUpLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfd2lkdGggKCh1bnNpZ25lZCBfQml0 SW50KDUxMikpIDApLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19i aXRfd2lkdGggKCh1bnNpZ25lZCBfQml0SW50KDUxMikpIDApLAorKwkJCSAgICAgICB1aSksIDEp OworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF93aWR0aCAoKHVuc2lnbmVkIF9CaXRJbnQoMzcz KSkgMCksIDApOworKyAgVEVTVF9DT01QQVJFIChleHByX2hhc190eXBlIChzdGRjX2JpdF93aWR0 aCAoKHVuc2lnbmVkIF9CaXRJbnQoMzczKSkgMCksCisrCQkJICAgICAgIHVpKSwgMSk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICh+KHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCks IDUxMik7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICh+KHVuc2lnbmVkIF9CaXRJ bnQoMzczKSkgMCksIDM3Myk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X3dpZHRoICgoKHVu c2lnbmVkIF9CaXRJbnQoNTEyKSkgMTAyMykgPDwgNDA1KSwKKysJCTQwNSArIDEwKTsKKysgIFRF U1RfQ09NUEFSRSAoc3RkY19iaXRfd2lkdGggKCgodW5zaWduZWQgX0JpdEludCgzNzMpKSAxMDI0 KSA8PCAyNDIpLAorKwkJMjQyICsgMTEpOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9v ciAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCkgIT0gMCwgMCk7CisrICBURVNUX0NPTVBBUkUg KGV4cHJfaGFzX3R5cGUgKHN0ZGNfYml0X2Zsb29yICgodW5zaWduZWQgX0JpdEludCg1MTIpKSAw KSwKKysJCQkgICAgICAgdW5zaWduZWQgX0JpdEludCg1MTIpKSwgMSk7CisrICBURVNUX0NPTVBB UkUgKHN0ZGNfYml0X2Zsb29yICgodW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSAhPSAwLCAwKTsK KysgIFRFU1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19iaXRfZmxvb3IgKCh1bnNpZ25l ZCBfQml0SW50KDM3MykpIDApLAorKwkJCSAgICAgICB1bnNpZ25lZCBfQml0SW50KDM3MykpLCAx KTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfZmxvb3IgKH4odW5zaWduZWQgX0JpdEludCg1 MTIpKSAwKQorKwkJIT0gKCh1bnNpZ25lZCBfQml0SW50KDUxMikpIDEpIDw8ICg1MTIgLSAxKSwg MCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2Zsb29yICh+KHVuc2lnbmVkIF9CaXRJbnQo MzczKSkgMCkKKysJCSE9ICgodW5zaWduZWQgX0JpdEludCgzNzMpKSAxKSA8PCAoMzczIC0gMSks IDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAoKCh1bnNpZ25lZCBfQml0SW50 KDUxMikpIDUxMSkgPDwgNDA1KQorKwkJIT0gKCgodW5zaWduZWQgX0JpdEludCg1MTIpKSAyNTYp IDw8IDQwNSksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAoKCh1bnNpZ25l ZCBfQml0SW50KDM3MykpIDUxMikgPDwgMjQyKQorKwkJIT0gKCgodW5zaWduZWQgX0JpdEludCg1 MTIpKSA1MTIpIDw8IDI0MiksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICgo dW5zaWduZWQgX0JpdEludCg1MTIpKSAwKSAhPSAxLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoZXhw cl9oYXNfdHlwZSAoc3RkY19iaXRfY2VpbCAoKHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCksCisr CQkJICAgICAgIHVuc2lnbmVkIF9CaXRJbnQoNTEyKSksIDEpOworKyAgVEVTVF9DT01QQVJFIChz dGRjX2JpdF9jZWlsICgodW5zaWduZWQgX0JpdEludCgzNzMpKSAwKSAhPSAxLCAwKTsKKysgIFRF U1RfQ09NUEFSRSAoZXhwcl9oYXNfdHlwZSAoc3RkY19iaXRfY2VpbCAoKHVuc2lnbmVkIF9CaXRJ bnQoMzczKSkgMCksCisrCQkJICAgICAgIHVuc2lnbmVkIF9CaXRJbnQoMzczKSksIDEpOworKyAg VEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICh+KHVuc2lnbmVkIF9CaXRJbnQoNTEyKSkgMCkg IT0gMCwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKH4odW5zaWduZWQgX0Jp dEludCgzNzMpKSAwKSAhPSAwLCAwKTsKKysgIFRFU1RfQ09NUEFSRSAoc3RkY19iaXRfY2VpbCAo KCh1bnNpZ25lZCBfQml0SW50KDUxMikpIDEpIDw8ICg1MTIgLSAxKSkKKysJCSE9ICgodW5zaWdu ZWQgX0JpdEludCg1MTIpKSAxKSA8PCAoNTEyIC0gMSksIDApOworKyAgVEVTVF9DT01QQVJFIChz dGRjX2JpdF9jZWlsICgofih1bnNpZ25lZCBfQml0SW50KDM3MykpIDApID4+IDEpCisrCQkhPSAo KHVuc2lnbmVkIF9CaXRJbnQoMzczKSkgMSkgPDwgKDM3MyAtIDEpLCAwKTsKKysgIFRFU1RfQ09N UEFSRSAoc3RkY19iaXRfY2VpbCAoKCh1bnNpZ25lZCBfQml0SW50KDUxMikpIDUxMikgPDwgNDA1 KQorKwkJIT0gKCgodW5zaWduZWQgX0JpdEludCg1MTIpKSA1MTIpIDw8IDQwNSksIDApOworKyAg VEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICgoKHVuc2lnbmVkIF9CaXRJbnQoMzczKSkgNTEz KSA8PCAyNDIpCisrCQkhPSAoKCh1bnNpZ25lZCBfQml0SW50KDUxMikpIDEwMjQpIDw8IDI0Miks IDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9mbG9vciAoKHVuc2lnbmVkIF9CaXRJbnQo QklUSU5UX01BWFdJRFRIKSkgMCkgIT0gMCwKKysJCTApOworKyAgVEVTVF9DT01QQVJFIChzdGRj X2JpdF9mbG9vciAofih1bnNpZ25lZCBfQml0SW50KEJJVElOVF9NQVhXSURUSCkpIDApCisrCQkh PSAoKHVuc2lnbmVkIF9CaXRJbnQoQklUSU5UX01BWFdJRFRIKSkgMSkgPDwgKEJJVElOVF9NQVhX SURUSAorKwkJCQkJCQkgICAgICAgLSAxKSwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0 X2Zsb29yICgoKHVuc2lnbmVkIF9CaXRJbnQoQklUSU5UX01BWFdJRFRIKSkgNTExKQorKwkJCQk8 PCA0MDUpCisrCQkhPSAoKCh1bnNpZ25lZCBfQml0SW50KEJJVElOVF9NQVhXSURUSCkpIDI1Nikg PDwgNDA1KSwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2Zsb29yICgoKHVuc2lnbmVk IF9CaXRJbnQoQklUSU5UX01BWFdJRFRIKSkgNTEyKQorKwkJCQk8PCA0MDUpCisrCQkhPSAoKCh1 bnNpZ25lZCBfQml0SW50KEJJVElOVF9NQVhXSURUSCkpIDUxMikgPDwgNDA1KSwgMCk7CisrICBU RVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKCh1bnNpZ25lZCBfQml0SW50KEJJVElOVF9NQVhX SURUSCkpIDApICE9IDEsIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICh+KHVu c2lnbmVkIF9CaXRJbnQoQklUSU5UX01BWFdJRFRIKSkgMCkgIT0gMCwKKysJCTApOworKyAgVEVT VF9DT01QQVJFIChzdGRjX2JpdF9jZWlsICgoKHVuc2lnbmVkIF9CaXRJbnQoQklUSU5UX01BWFdJ RFRIKSkgMSkKKysJCQkgICAgICAgPDwgKEJJVElOVF9NQVhXSURUSCAtIDEpKQorKwkJIT0gKCh1 bnNpZ25lZCBfQml0SW50KEJJVElOVF9NQVhXSURUSCkpIDEpIDw8IChCSVRJTlRfTUFYV0lEVEgK KysJCQkJCQkJICAgICAgIC0gMSksIDApOworKyAgVEVTVF9DT01QQVJFIChzdGRjX2JpdF9jZWls ICgoKHVuc2lnbmVkIF9CaXRJbnQoQklUSU5UX01BWFdJRFRIKSkgNTEyKQorKwkJCSAgICAgICA8 PCA0MDUpCisrCQkhPSAoKCh1bnNpZ25lZCBfQml0SW50KEJJVElOVF9NQVhXSURUSCkpIDUxMikg PDwgNDA1KSwgMCk7CisrICBURVNUX0NPTVBBUkUgKHN0ZGNfYml0X2NlaWwgKCgodW5zaWduZWQg X0JpdEludChCSVRJTlRfTUFYV0lEVEgpKSA1MTMpCisrCQkJICAgICAgIDw8IDQwNSkKKysJCSE9 ICgoKHVuc2lnbmVkIF9CaXRJbnQoQklUSU5UX01BWFdJRFRIKSkgMTAyNCkgPDwgNDA1KSwgMCk7 CisrIyAgZW5kaWYKKysjIGVuZGlmCisrICByZXR1cm4gMDsKKyt9CisrI2Vsc2UKKytzdGF0aWMg aW50CisrZG9fdGVzdCAodm9pZCkKKyt7CisrICByZXR1cm4gMDsKKyt9CisrI2VuZGlmCisrCisr I2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xp YmMvcGF0Y2hlcy8zMDcyMy0xLTU0MmIxMTA1ODUyNTY4YzNlYmM3MTIyMjVhZTc4YjhjOGJhMzFh NzgucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzA3MjMtMS01NDJiMTEwNTg1MjU2OGMz ZWJjNzEyMjI1YWU3OGI4YzhiYTMxYTc4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA1NmQ1ZDQ3YzAzMWEwMy4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGliYy9w YXRjaGVzLzMwNzIzLTEtNTQyYjExMDU4NTI1NjhjM2ViYzcxMjIyNWFlNzhiOGM4YmEzMWE3OC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5NiArMCwwIEBACi1Gcm9tIDU0MmIxMTA1ODUyNTY4 YzNlYmM3MTIyMjVhZTc4YjhjOGJhMzFhNzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAxMSBBdWcg MjAyMyAxMToxODoxNyArMDIwMAotU3ViamVjdDogW1BBVENIXSBtYWxsb2M6IEVuYWJsZSBtZXJn aW5nIG9mIHJlbWFpbmRlcnMgaW4gbWVtYWxpZ24gKGJ1ZyAzMDcyMykKLQotUHJldmlvdXNseSwg Y2FsbGluZyBfaW50X2ZyZWUgZnJvbSBfaW50X21lbWFsaWduIGNvdWxkIHB1dCByZW1haW5kZXJz Ci1pbnRvIHRoZSB0Y2FjaGUgb3IgaW50byBmYXN0Ymlucywgd2hlcmUgdGhleSBhcmUgaW52aXNp YmxlIHRvIHRoZQotbG93LWxldmVsIGFsbG9jYXRvci4gIFRoaXMgcmVzdWx0cyBpbiBtaXNzZWQg bWVyZ2Ugb3Bwb3J0dW5pdGllcwotYmVjYXVzZSBvbmNlIHRoZXNlIGZyZWVkIGNodW5rcyBiZWNv bWUgYXZhaWxhYmxlIHRvIHRoZSBsb3ctbGV2ZWwKLWFsbG9jYXRvciwgZnVydGhlciBtZW1hbGln biBhbGxvY2F0aW9ucyAoZXZlbiBvZiB0aGUgc2FtZSBzaXplIGFyZSkKLWxpa2VseSBvYnN0cnVj dGluZyBtZXJnZXMuCi0KLUZ1cnRoZXJtb3JlLCBkdXJpbmcgZm9yd2FyZHMgbWVyZ2luZyBpbiBf aW50X21lbWFsaWduLCBkbyBub3QKLWNvbXBsZXRlbHkgZ2l2ZSB1cCB3aGVuIHRoZSByZW1haW5k ZXIgaXMgdG9vIHNtYWxsIHRvIHNlcnZlIGFzIGEKLWNodW5rIG9uIGl0cyBvd24uICBXZSBjYW4g c3RpbGwgZ2l2ZSBpdCBiYWNrIGlmIGl0IGNhbiBiZSBtZXJnZWQKLXdpdGggdGhlIGZvbGxvd2lu ZyB1bnVzZWQgY2h1bmsuICBUaGlzIG1ha2VzIGl0IG1vcmUgbGlrZWx5IHRoYXQKLW1lbWFsaWdu IGNhbGxzIGluIGEgbG9vcCBhY2hpZXZlIGEgY29tcGFjdCBtZW1vcnkgbGF5b3V0LAotaW5kZXBl bmRlbnRseSBvZiBpbml0aWFsIGhlYXAgbGF5b3V0LgotCi1Ecm9wIHNvbWUgdXNlbGVzcyAodW5z aWduZWQgbG9uZykgY2FzdHMgYWxvbmcgdGhlIHdheSwgYW5kIHR3ZWFrCi10aGUgc3R5bGUgdG8g bW9yZSBjbG9zZWx5IG1hdGNoIEdOVSBvbiBjaGFuZ2VkIGxpbmVzLgotCi1SZXZpZXdlZC1ieTog REogRGVsb3JpZSA8ZGpAcmVkaGF0LmNvbT4KLS0tLQotIG1hbGxvYy9tYWxsb2MuYyB8IDE5NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUg Y2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvbWFsbG9jL21hbGxvYy5jIGIvbWFsbG9jL21hbGxvYy5jCi1pbmRleCBlMmYxYTYxNWE0Li45 NDhmOTc1OWFmIDEwMDY0NAotLS0tIGEvbWFsbG9jL21hbGxvYy5jCi0rKysgYi9tYWxsb2MvbWFs bG9jLmMKLUBAIC0xMDg2LDYgKzEwODYsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgbWFsbG9jX2NodW5r KiBtY2h1bmtwdHI7Ci0gCi0gc3RhdGljIHZvaWQqICBfaW50X21hbGxvYyhtc3RhdGUsIHNpemVf dCk7Ci0gc3RhdGljIHZvaWQgICAgIF9pbnRfZnJlZShtc3RhdGUsIG1jaHVua3B0ciwgaW50KTsK LStzdGF0aWMgdm9pZCBfaW50X2ZyZWVfbWVyZ2VfY2h1bmsgKG1zdGF0ZSwgbWNodW5rcHRyLCBJ TlRFUk5BTF9TSVpFX1QpOwotK3N0YXRpYyBJTlRFUk5BTF9TSVpFX1QgX2ludF9mcmVlX2NyZWF0 ZV9jaHVuayAobXN0YXRlLAotKwkJCQkJICAgICAgIG1jaHVua3B0ciwgSU5URVJOQUxfU0laRV9U LAotKwkJCQkJICAgICAgIG1jaHVua3B0ciwgSU5URVJOQUxfU0laRV9UKTsKLStzdGF0aWMgdm9p ZCBfaW50X2ZyZWVfbWF5YmVfY29uc29saWRhdGUgKG1zdGF0ZSwgSU5URVJOQUxfU0laRV9UKTsK LSBzdGF0aWMgdm9pZCogIF9pbnRfcmVhbGxvYyhtc3RhdGUsIG1jaHVua3B0ciwgSU5URVJOQUxf U0laRV9ULAotIAkJCSAgIElOVEVSTkFMX1NJWkVfVCk7Ci0gc3RhdGljIHZvaWQqICBfaW50X21l bWFsaWduKG1zdGF0ZSwgc2l6ZV90LCBzaXplX3QpOwotQEAgLTQ2MzcsMzEgKzQ2NDIsNTIgQEAg X2ludF9mcmVlIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBpbnQgaGF2ZV9sb2NrKQotICAgICBp ZiAoIWhhdmVfbG9jaykKLSAgICAgICBfX2xpYmNfbG9ja19sb2NrIChhdi0+bXV0ZXgpOwotIAot LSAgICBuZXh0Y2h1bmsgPSBjaHVua19hdF9vZmZzZXQocCwgc2l6ZSk7Ci0tCi0tICAgIC8qIExp Z2h0d2VpZ2h0IHRlc3RzOiBjaGVjayB3aGV0aGVyIHRoZSBibG9jayBpcyBhbHJlYWR5IHRoZQot LSAgICAgICB0b3AgYmxvY2suICAqLwotLSAgICBpZiAoX19nbGliY191bmxpa2VseSAocCA9PSBh di0+dG9wKSkKLS0gICAgICBtYWxsb2NfcHJpbnRlcnIgKCJkb3VibGUgZnJlZSBvciBjb3JydXB0 aW9uICh0b3ApIik7Ci0tICAgIC8qIE9yIHdoZXRoZXIgdGhlIG5leHQgY2h1bmsgaXMgYmV5b25k IHRoZSBib3VuZGFyaWVzIG9mIHRoZSBhcmVuYS4gICovCi0tICAgIGlmIChfX2J1aWx0aW5fZXhw ZWN0IChjb250aWd1b3VzIChhdikKLS0JCQkgICYmIChjaGFyICopIG5leHRjaHVuawotLQkJCSAg Pj0gKChjaGFyICopIGF2LT50b3AgKyBjaHVua3NpemUoYXYtPnRvcCkpLCAwKSkKLS0JbWFsbG9j X3ByaW50ZXJyICgiZG91YmxlIGZyZWUgb3IgY29ycnVwdGlvbiAob3V0KSIpOwotLSAgICAvKiBP ciB3aGV0aGVyIHRoZSBibG9jayBpcyBhY3R1YWxseSBub3QgbWFya2VkIHVzZWQuICAqLwotLSAg ICBpZiAoX19nbGliY191bmxpa2VseSAoIXByZXZfaW51c2UobmV4dGNodW5rKSkpCi0tICAgICAg bWFsbG9jX3ByaW50ZXJyICgiZG91YmxlIGZyZWUgb3IgY29ycnVwdGlvbiAoIXByZXYpIik7Ci0t Ci0tICAgIG5leHRzaXplID0gY2h1bmtzaXplKG5leHRjaHVuayk7Ci0tICAgIGlmIChfX2J1aWx0 aW5fZXhwZWN0IChjaHVua3NpemVfbm9tYXNrIChuZXh0Y2h1bmspIDw9IENIVU5LX0hEUl9TWiwg MCkKLS0JfHwgX19idWlsdGluX2V4cGVjdCAobmV4dHNpemUgPj0gYXYtPnN5c3RlbV9tZW0sIDAp KQotLSAgICAgIG1hbGxvY19wcmludGVyciAoImZyZWUoKTogaW52YWxpZCBuZXh0IHNpemUgKG5v cm1hbCkiKTsKLSsgICAgX2ludF9mcmVlX21lcmdlX2NodW5rIChhdiwgcCwgc2l6ZSk7Ci0gCi0t ICAgIGZyZWVfcGVydHVyYiAoY2h1bmsybWVtKHApLCBzaXplIC0gQ0hVTktfSERSX1NaKTsKLSsg ICAgaWYgKCFoYXZlX2xvY2spCi0rICAgICAgX19saWJjX2xvY2tfdW5sb2NrIChhdi0+bXV0ZXgp OwotKyAgfQotKyAgLyoKLSsgICAgSWYgdGhlIGNodW5rIHdhcyBhbGxvY2F0ZWQgdmlhIG1tYXAs IHJlbGVhc2UgdmlhIG11bm1hcCgpLgotKyAgKi8KLSsKLSsgIGVsc2UgewotKyAgICBtdW5tYXBf Y2h1bmsgKHApOwotKyAgfQotK30KLSsKLSsvKiBUcnkgdG8gbWVyZ2UgY2h1bmsgUCBvZiBTSVpF IGJ5dGVzIHdpdGggaXRzIG5laWdoYm9ycy4gIFB1dCB0aGUKLSsgICByZXN1bHRpbmcgY2h1bmsg b24gdGhlIGFwcHJvcHJpYXRlIGJpbiBsaXN0LiAgUCBtdXN0IG5vdCBiZSBvbiBhCi0rICAgYmlu IGxpc3QgeWV0LCBhbmQgaXQgY2FuIGJlIGluIHVzZS4gICovCi0rc3RhdGljIHZvaWQKLStfaW50 X2ZyZWVfbWVyZ2VfY2h1bmsgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIHAsIElOVEVSTkFMX1NJWkVf VCBzaXplKQotK3sKLSsgIG1jaHVua3B0ciBuZXh0Y2h1bmsgPSBjaHVua19hdF9vZmZzZXQocCwg c2l6ZSk7Ci0rCi0rICAvKiBMaWdodHdlaWdodCB0ZXN0czogY2hlY2sgd2hldGhlciB0aGUgYmxv Y2sgaXMgYWxyZWFkeSB0aGUKLSsgICAgIHRvcCBibG9jay4gICovCi0rICBpZiAoX19nbGliY191 bmxpa2VseSAocCA9PSBhdi0+dG9wKSkKLSsgICAgbWFsbG9jX3ByaW50ZXJyICgiZG91YmxlIGZy ZWUgb3IgY29ycnVwdGlvbiAodG9wKSIpOwotKyAgLyogT3Igd2hldGhlciB0aGUgbmV4dCBjaHVu ayBpcyBiZXlvbmQgdGhlIGJvdW5kYXJpZXMgb2YgdGhlIGFyZW5hLiAgKi8KLSsgIGlmIChfX2J1 aWx0aW5fZXhwZWN0IChjb250aWd1b3VzIChhdikKLSsJCQkmJiAoY2hhciAqKSBuZXh0Y2h1bmsK LSsJCQk+PSAoKGNoYXIgKikgYXYtPnRvcCArIGNodW5rc2l6ZShhdi0+dG9wKSksIDApKQotKyAg ICBtYWxsb2NfcHJpbnRlcnIgKCJkb3VibGUgZnJlZSBvciBjb3JydXB0aW9uIChvdXQpIik7Ci0r ICAvKiBPciB3aGV0aGVyIHRoZSBibG9jayBpcyBhY3R1YWxseSBub3QgbWFya2VkIHVzZWQuICAq LwotKyAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKCFwcmV2X2ludXNlKG5leHRjaHVuaykpKQotKyAg ICBtYWxsb2NfcHJpbnRlcnIgKCJkb3VibGUgZnJlZSBvciBjb3JydXB0aW9uICghcHJldikiKTsK LSsKLSsgIElOVEVSTkFMX1NJWkVfVCBuZXh0c2l6ZSA9IGNodW5rc2l6ZShuZXh0Y2h1bmspOwot KyAgaWYgKF9fYnVpbHRpbl9leHBlY3QgKGNodW5rc2l6ZV9ub21hc2sgKG5leHRjaHVuaykgPD0g Q0hVTktfSERSX1NaLCAwKQotKyAgICAgIHx8IF9fYnVpbHRpbl9leHBlY3QgKG5leHRzaXplID49 IGF2LT5zeXN0ZW1fbWVtLCAwKSkKLSsgICAgbWFsbG9jX3ByaW50ZXJyICgiZnJlZSgpOiBpbnZh bGlkIG5leHQgc2l6ZSAobm9ybWFsKSIpOwotKwotKyAgZnJlZV9wZXJ0dXJiIChjaHVuazJtZW0o cCksIHNpemUgLSBDSFVOS19IRFJfU1opOwotIAotLSAgICAvKiBjb25zb2xpZGF0ZSBiYWNrd2Fy ZCAqLwotLSAgICBpZiAoIXByZXZfaW51c2UocCkpIHsKLS0gICAgICBwcmV2c2l6ZSA9IHByZXZf c2l6ZSAocCk7Ci0rICAvKiBDb25zb2xpZGF0ZSBiYWNrd2FyZC4gICovCi0rICBpZiAoIXByZXZf aW51c2UocCkpCi0rICAgIHsKLSsgICAgICBJTlRFUk5BTF9TSVpFX1QgcHJldnNpemUgPSBwcmV2 X3NpemUgKHApOwotICAgICAgIHNpemUgKz0gcHJldnNpemU7Ci0gICAgICAgcCA9IGNodW5rX2F0 X29mZnNldChwLCAtKChsb25nKSBwcmV2c2l6ZSkpOwotICAgICAgIGlmIChfX2dsaWJjX3VubGlr ZWx5IChjaHVua3NpemUocCkgIT0gcHJldnNpemUpKQotQEAgLTQ2NjksOSArNDY5NSwyNSBAQCBf aW50X2ZyZWUgKG1zdGF0ZSBhdiwgbWNodW5rcHRyIHAsIGludCBoYXZlX2xvY2spCi0gICAgICAg dW5saW5rX2NodW5rIChhdiwgcCk7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5leHRjaHVuayAhPSBh di0+dG9wKSB7Ci0rICAvKiBXcml0ZSB0aGUgY2h1bmsgaGVhZGVyLCBtYXliZSBhZnRlciBtZXJn aW5nIHdpdGggdGhlIGZvbGxvd2luZyBjaHVuay4gICovCi0rICBzaXplID0gX2ludF9mcmVlX2Ny ZWF0ZV9jaHVuayAoYXYsIHAsIHNpemUsIG5leHRjaHVuaywgbmV4dHNpemUpOwotKyAgX2ludF9m cmVlX21heWJlX2NvbnNvbGlkYXRlIChhdiwgc2l6ZSk7Ci0rfQotKwotKy8qIENyZWF0ZSBhIGNo dW5rIGF0IFAgb2YgU0laRSBieXRlcywgd2l0aCBTSVpFIHBvdGVudGlhbGx5IGluY3JlYXNlZAot KyAgIHRvIGNvdmVyIHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY2h1bmsgTkVYVENIVU5LIG9m IE5FWFRTSVpFCi0rICAgYnl0ZXMgKGlmIE5FWFRDSFVOSyBpcyB1bnVzZWQpLiAgVGhlIGNodW5r IGF0IFAgaXMgbm90IGFjdHVhbGx5Ci0rICAgcmVhZCBhbmQgZG9lcyBub3QgaGF2ZSB0byBiZSBp bml0aWFsaXplZC4gIEFmdGVyIGNyZWF0aW9uLCBpdCBpcwotKyAgIHBsYWNlZCBvbiB0aGUgYXBw cm9wcmlhdGUgYmluIGxpc3QuICBUaGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgc2l6ZQotKyAgIG9m IHRoZSBuZXcgY2h1bmsuICAqLwotK3N0YXRpYyBJTlRFUk5BTF9TSVpFX1QKLStfaW50X2ZyZWVf Y3JlYXRlX2NodW5rIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBJTlRFUk5BTF9TSVpFX1Qgc2l6 ZSwKLSsJCQltY2h1bmtwdHIgbmV4dGNodW5rLCBJTlRFUk5BTF9TSVpFX1QgbmV4dHNpemUpCi0r ewotKyAgaWYgKG5leHRjaHVuayAhPSBhdi0+dG9wKQotKyAgICB7Ci0gICAgICAgLyogZ2V0IGFu ZCBjbGVhciBpbnVzZSBiaXQgKi8KLS0gICAgICBuZXh0aW51c2UgPSBpbnVzZV9iaXRfYXRfb2Zm c2V0KG5leHRjaHVuaywgbmV4dHNpemUpOwotKyAgICAgIGJvb2wgbmV4dGludXNlID0gaW51c2Vf Yml0X2F0X29mZnNldCAobmV4dGNodW5rLCBuZXh0c2l6ZSk7Ci0gCi0gICAgICAgLyogY29uc29s aWRhdGUgZm9yd2FyZCAqLwotICAgICAgIGlmICghbmV4dGludXNlKSB7Ci1AQCAtNDY4Niw4ICs0 NzI4LDggQEAgX2ludF9mcmVlIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBpbnQgaGF2ZV9sb2Nr KQotIAliZWVuIGdpdmVuIG9uZSBjaGFuY2UgdG8gYmUgdXNlZCBpbiBtYWxsb2MuCi0gICAgICAg Ki8KLSAKLS0gICAgICBiY2sgPSB1bnNvcnRlZF9jaHVua3MoYXYpOwotLSAgICAgIGZ3ZCA9IGJj ay0+ZmQ7Ci0rICAgICAgbWNodW5rcHRyIGJjayA9IHVuc29ydGVkX2NodW5rcyAoYXYpOwotKyAg ICAgIG1jaHVua3B0ciBmd2QgPSBiY2stPmZkOwotICAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5 IChmd2QtPmJrICE9IGJjaykpCi0gCW1hbGxvY19wcmludGVyciAoImZyZWUoKTogY29ycnVwdGVk IHVuc29ydGVkIGNodW5rcyIpOwotICAgICAgIHAtPmZkID0gZndkOwotQEAgLTQ3MDYsNjEgKzQ3 NDgsNTIgQEAgX2ludF9mcmVlIChtc3RhdGUgYXYsIG1jaHVua3B0ciBwLCBpbnQgaGF2ZV9sb2Nr KQotICAgICAgIGNoZWNrX2ZyZWVfY2h1bmsoYXYsIHApOwotICAgICB9Ci0gCi0tICAgIC8qCi0t ICAgICAgSWYgdGhlIGNodW5rIGJvcmRlcnMgdGhlIGN1cnJlbnQgaGlnaCBlbmQgb2YgbWVtb3J5 LAotLSAgICAgIGNvbnNvbGlkYXRlIGludG8gdG9wCi0tICAgICovCi0tCi0tICAgIGVsc2Ugewot KyAgZWxzZQotKyAgICB7Ci0rICAgICAgLyogSWYgdGhlIGNodW5rIGJvcmRlcnMgdGhlIGN1cnJl bnQgaGlnaCBlbmQgb2YgbWVtb3J5LAotKwkgY29uc29saWRhdGUgaW50byB0b3AuICAqLwotICAg ICAgIHNpemUgKz0gbmV4dHNpemU7Ci0gICAgICAgc2V0X2hlYWQocCwgc2l6ZSB8IFBSRVZfSU5V U0UpOwotICAgICAgIGF2LT50b3AgPSBwOwotICAgICAgIGNoZWNrX2NodW5rKGF2LCBwKTsKLSAg ICAgfQotIAotLSAgICAvKgotLSAgICAgIElmIGZyZWVpbmcgYSBsYXJnZSBzcGFjZSwgY29uc29s aWRhdGUgcG9zc2libHktc3Vycm91bmRpbmcKLS0gICAgICBjaHVua3MuIFRoZW4sIGlmIHRoZSB0 b3RhbCB1bnVzZWQgdG9wbW9zdCBtZW1vcnkgZXhjZWVkcyB0cmltCi0tICAgICAgdGhyZXNob2xk LCBhc2sgbWFsbG9jX3RyaW0gdG8gcmVkdWNlIHRvcC4KLS0KLS0gICAgICBVbmxlc3MgbWF4X2Zh c3QgaXMgMCwgd2UgZG9uJ3Qga25vdyBpZiB0aGVyZSBhcmUgZmFzdGJpbnMKLS0gICAgICBib3Jk ZXJpbmcgdG9wLCBzbyB3ZSBjYW5ub3QgdGVsbCBmb3Igc3VyZSB3aGV0aGVyIHRocmVzaG9sZAot LSAgICAgIGhhcyBiZWVuIHJlYWNoZWQgdW5sZXNzIGZhc3RiaW5zIGFyZSBjb25zb2xpZGF0ZWQu ICBCdXQgd2UKLS0gICAgICBkb24ndCB3YW50IHRvIGNvbnNvbGlkYXRlIG9uIGVhY2ggZnJlZS4g IEFzIGEgY29tcHJvbWlzZSwKLS0gICAgICBjb25zb2xpZGF0aW9uIGlzIHBlcmZvcm1lZCBpZiBG QVNUQklOX0NPTlNPTElEQVRJT05fVEhSRVNIT0xECi0tICAgICAgaXMgcmVhY2hlZC4KLS0gICAg Ki8KLSsgIHJldHVybiBzaXplOwotK30KLSAKLS0gICAgaWYgKCh1bnNpZ25lZCBsb25nKShzaXpl KSA+PSBGQVNUQklOX0NPTlNPTElEQVRJT05fVEhSRVNIT0xEKSB7Ci0rLyogSWYgZnJlZWluZyBh IGxhcmdlIHNwYWNlLCBjb25zb2xpZGF0ZSBwb3NzaWJseS1zdXJyb3VuZGluZwotKyAgIGNodW5r cy4gIFRoZW4sIGlmIHRoZSB0b3RhbCB1bnVzZWQgdG9wbW9zdCBtZW1vcnkgZXhjZWVkcyB0cmlt Ci0rICAgdGhyZXNob2xkLCBhc2sgbWFsbG9jX3RyaW0gdG8gcmVkdWNlIHRvcC4gICovCi0rc3Rh dGljIHZvaWQKLStfaW50X2ZyZWVfbWF5YmVfY29uc29saWRhdGUgKG1zdGF0ZSBhdiwgSU5URVJO QUxfU0laRV9UIHNpemUpCi0rewotKyAgLyogVW5sZXNzIG1heF9mYXN0IGlzIDAsIHdlIGRvbid0 IGtub3cgaWYgdGhlcmUgYXJlIGZhc3RiaW5zCi0rICAgICBib3JkZXJpbmcgdG9wLCBzbyB3ZSBj YW5ub3QgdGVsbCBmb3Igc3VyZSB3aGV0aGVyIHRocmVzaG9sZCBoYXMKLSsgICAgIGJlZW4gcmVh Y2hlZCB1bmxlc3MgZmFzdGJpbnMgYXJlIGNvbnNvbGlkYXRlZC4gIEJ1dCB3ZSBkb24ndCB3YW50 Ci0rICAgICB0byBjb25zb2xpZGF0ZSBvbiBlYWNoIGZyZWUuICBBcyBhIGNvbXByb21pc2UsIGNv bnNvbGlkYXRpb24gaXMKLSsgICAgIHBlcmZvcm1lZCBpZiBGQVNUQklOX0NPTlNPTElEQVRJT05f VEhSRVNIT0xEIGlzIHJlYWNoZWQuICAqLwotKyAgaWYgKHNpemUgPj0gRkFTVEJJTl9DT05TT0xJ REFUSU9OX1RIUkVTSE9MRCkKLSsgICAgewotICAgICAgIGlmIChhdG9taWNfbG9hZF9yZWxheGVk ICgmYXYtPmhhdmVfZmFzdGNodW5rcykpCi0gCW1hbGxvY19jb25zb2xpZGF0ZShhdik7Ci0gCi0t ICAgICAgaWYgKGF2ID09ICZtYWluX2FyZW5hKSB7Ci0rICAgICAgaWYgKGF2ID09ICZtYWluX2Fy ZW5hKQotKwl7Ci0gI2lmbmRlZiBNT1JFQ09SRV9DQU5OT1RfVFJJTQotLQlpZiAoKHVuc2lnbmVk IGxvbmcpKGNodW5rc2l6ZShhdi0+dG9wKSkgPj0KLS0JICAgICh1bnNpZ25lZCBsb25nKShtcF8u dHJpbV90aHJlc2hvbGQpKQotLQkgIHN5c3RyaW0obXBfLnRvcF9wYWQsIGF2KTsKLSsJICBpZiAo Y2h1bmtzaXplIChhdi0+dG9wKSA+PSBtcF8udHJpbV90aHJlc2hvbGQpCi0rCSAgICBzeXN0cmlt IChtcF8udG9wX3BhZCwgYXYpOwotICNlbmRpZgotLSAgICAgIH0gZWxzZSB7Ci0tCS8qIEFsd2F5 cyB0cnkgaGVhcF90cmltKCksIGV2ZW4gaWYgdGhlIHRvcCBjaHVuayBpcyBub3QKLS0JICAgbGFy Z2UsIGJlY2F1c2UgdGhlIGNvcnJlc3BvbmRpbmcgaGVhcCBtaWdodCBnbyBhd2F5LiAgKi8KLS0J aGVhcF9pbmZvICpoZWFwID0gaGVhcF9mb3JfcHRyKHRvcChhdikpOwotKwl9Ci0rICAgICAgZWxz ZQotKwl7Ci0rCSAgLyogQWx3YXlzIHRyeSBoZWFwX3RyaW0sIGV2ZW4gaWYgdGhlIHRvcCBjaHVu ayBpcyBub3QgbGFyZ2UsCi0rCSAgICAgYmVjYXVzZSB0aGUgY29ycmVzcG9uZGluZyBoZWFwIG1p Z2h0IGdvIGF3YXkuICAqLwotKwkgIGhlYXBfaW5mbyAqaGVhcCA9IGhlYXBfZm9yX3B0ciAodG9w IChhdikpOwotIAotLQlhc3NlcnQoaGVhcC0+YXJfcHRyID09IGF2KTsKLS0JaGVhcF90cmltKGhl YXAsIG1wXy50b3BfcGFkKTsKLS0gICAgICB9Ci0rCSAgYXNzZXJ0IChoZWFwLT5hcl9wdHIgPT0g YXYpOwotKwkgIGhlYXBfdHJpbSAoaGVhcCwgbXBfLnRvcF9wYWQpOwotKwl9Ci0gICAgIH0KLS0K LS0gICAgaWYgKCFoYXZlX2xvY2spCi0tICAgICAgX19saWJjX2xvY2tfdW5sb2NrIChhdi0+bXV0 ZXgpOwotLSAgfQotLSAgLyoKLS0gICAgSWYgdGhlIGNodW5rIHdhcyBhbGxvY2F0ZWQgdmlhIG1t YXAsIHJlbGVhc2UgdmlhIG11bm1hcCgpLgotLSAgKi8KLS0KLS0gIGVsc2UgewotLSAgICBtdW5t YXBfY2h1bmsgKHApOwotLSAgfQotIH0KLSAKLSAvKgotQEAgLTUyMjEsNyArNTI1NCw3IEBAIF9p bnRfbWVtYWxpZ24gKG1zdGF0ZSBhdiwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IGJ5dGVzKQot ICAgICAgICAgICAgICAgICAoYXYgIT0gJm1haW5fYXJlbmEgPyBOT05fTUFJTl9BUkVOQSA6IDAp KTsKLSAgICAgICBzZXRfaW51c2VfYml0X2F0X29mZnNldCAobmV3cCwgbmV3c2l6ZSk7Ci0gICAg ICAgc2V0X2hlYWRfc2l6ZSAocCwgbGVhZHNpemUgfCAoYXYgIT0gJm1haW5fYXJlbmEgPyBOT05f TUFJTl9BUkVOQSA6IDApKTsKLS0gICAgICBfaW50X2ZyZWUgKGF2LCBwLCAxKTsKLSsgICAgICBf aW50X2ZyZWVfbWVyZ2VfY2h1bmsgKGF2LCBwLCBsZWFkc2l6ZSk7Ci0gICAgICAgcCA9IG5ld3A7 Ci0gCi0gICAgICAgYXNzZXJ0IChuZXdzaXplID49IG5iICYmCi1AQCAtNTIzMiwxNSArNTI2NSwy NyBAQCBfaW50X21lbWFsaWduIChtc3RhdGUgYXYsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBi eXRlcykKLSAgIGlmICghY2h1bmtfaXNfbW1hcHBlZCAocCkpCi0gICAgIHsKLSAgICAgICBzaXpl ID0gY2h1bmtzaXplIChwKTsKLS0gICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpIChzaXplKSA+ICh1 bnNpZ25lZCBsb25nKSAobmIgKyBNSU5TSVpFKSkKLSsgICAgICBtY2h1bmtwdHIgbmV4dGNodW5r ID0gY2h1bmtfYXRfb2Zmc2V0KHAsIHNpemUpOwotKyAgICAgIElOVEVSTkFMX1NJWkVfVCBuZXh0 c2l6ZSA9IGNodW5rc2l6ZShuZXh0Y2h1bmspOwotKyAgICAgIGlmIChzaXplID4gbmIpCi0gICAg ICAgICB7Ci0gICAgICAgICAgIHJlbWFpbmRlcl9zaXplID0gc2l6ZSAtIG5iOwotLSAgICAgICAg ICByZW1haW5kZXIgPSBjaHVua19hdF9vZmZzZXQgKHAsIG5iKTsKLS0gICAgICAgICAgc2V0X2hl YWQgKHJlbWFpbmRlciwgcmVtYWluZGVyX3NpemUgfCBQUkVWX0lOVVNFIHwKLS0gICAgICAgICAg ICAgICAgICAgIChhdiAhPSAmbWFpbl9hcmVuYSA/IE5PTl9NQUlOX0FSRU5BIDogMCkpOwotLSAg ICAgICAgICBzZXRfaGVhZF9zaXplIChwLCBuYik7Ci0tICAgICAgICAgIF9pbnRfZnJlZSAoYXYs IHJlbWFpbmRlciwgMSk7Ci0tICAgICAgICB9Ci0rCSAgaWYgKHJlbWFpbmRlcl9zaXplID49IE1J TlNJWkUKLSsJICAgICAgfHwgbmV4dGNodW5rID09IGF2LT50b3AKLSsJICAgICAgfHwgIWludXNl X2JpdF9hdF9vZmZzZXQgKG5leHRjaHVuaywgbmV4dHNpemUpKQotKwkgICAgewotKwkgICAgICAv KiBXZSBjYW4gb25seSBnaXZlIGJhY2sgdGhlIHRhaWwgaWYgaXQgaXMgbGFyZ2VyIHRoYW4KLSsJ CSBNSU5TSVpFLCBvciBpZiB0aGUgZm9sbG93aW5nIGNodW5rIGlzIHVudXNlZCAodG9wCi0rCQkg Y2h1bmsgb3IgdW51c2VkIGluLWhlYXAgY2h1bmspLiAgT3RoZXJ3aXNlIHdlIHdvdWxkCi0rCQkg Y3JlYXRlIGEgY2h1bmsgdGhhdCBpcyBzbWFsbGVyIHRoYW4gTUlOU0laRS4gICovCi0rCSAgICAg IHJlbWFpbmRlciA9IGNodW5rX2F0X29mZnNldCAocCwgbmIpOwotKwkgICAgICBzZXRfaGVhZF9z aXplIChwLCBuYik7Ci0rCSAgICAgIHJlbWFpbmRlcl9zaXplID0gX2ludF9mcmVlX2NyZWF0ZV9j aHVuayAoYXYsIHJlbWFpbmRlciwKLSsJCQkJCQkgICAgICAgcmVtYWluZGVyX3NpemUsCi0rCQkJ CQkJICAgICAgIG5leHRjaHVuaywgbmV4dHNpemUpOwotKwkgICAgICBfaW50X2ZyZWVfbWF5YmVf Y29uc29saWRhdGUgKGF2LCByZW1haW5kZXJfc2l6ZSk7Ci0rCSAgICB9Ci0rCX0KLSAgICAgfQot IAotICAgY2hlY2tfaW51c2VfY2h1bmsgKGF2LCBwKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xp YmMvcGF0Y2hlcy8zMDcyMy0yLTBkYzdmYzFjZjA5NDQwNmExMzhlNGQxYmNmOTU1M2U1OWVkY2Y4 OWQucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvMzA3MjMtMi0wZGM3ZmMxY2YwOTQ0MDZh MTM4ZTRkMWJjZjk1NTNlNTllZGNmODlkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA0NjE1YzdiMDM1Y2M3NS4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGliYy9w YXRjaGVzLzMwNzIzLTItMGRjN2ZjMWNmMDk0NDA2YTEzOGU0ZDFiY2Y5NTUzZTU5ZWRjZjg5ZC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1MiArMCwwIEBACi1Gcm9tIDBkYzdmYzFjZjA5NDQw NmExMzhlNGQxYmNmOTU1M2U1OWVkY2Y4OWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgotRGF0ZTogVGh1LCAxMCBBdWcg MjAyMyAxOTozNjo1NiArMDIwMAotU3ViamVjdDogW1BBVENIXSBtYWxsb2M6IFJlbW92ZSBiaW4g c2Nhbm5pbmcgZnJvbSBtZW1hbGlnbiAoYnVnIDMwNzIzKQotCi1PbiB0aGUgdGVzdCB3b3JrbG9h ZCAobXB2IC0tY2FjaGU9eWVzIHdpdGggVlA5IHZpZGVvIGRlY29kaW5nKSwgdGhlCi1iaW4gc2Nh bm5pbmcgaGFzIGEgdmVyeSBwb29yIHN1Y2Nlc3MgcmF0ZSAobGVzcyB0aGFuIDIlKS4gIFRoZSB0 Y2FjaGUKLXNjYW5uaW5nIGhhcyBhYm91dCA1MCUgc3VjY2VzcyByYXRlLCBzbyBrZWVwIHRoYXQu Ci0KLVVwZGF0ZSBjb21tZW50cyBpbiBtYWxsb2MvdHN0LW1lbWFsaWduLTIgdG8gaW5kaWNhdGUg dGhlIHB1cnBvc2UKLW9mIHRoZSB0ZXN0cy4gIEV2ZW4gd2l0aCB0aGUgc2Nhbm5pbmcgcmVtb3Zl ZCwgdGhlIGFkZGl0aW9uYWwKLW1lcmdpbmcgb3Bwb3J0dW5pdGllcyBzaW5jZSBjb21taXQgNTQy YjExMDU4NTI1NjhjM2ViYzcxMjIyNWFlNzhiCi0oIm1hbGxvYzogRW5hYmxlIG1lcmdpbmcgb2Yg cmVtYWluZGVycyBpbiBtZW1hbGlnbiAoYnVnIDMwNzIzKSIpCi1hcmUgc3VmZmljaWVudCB0byBw YXNzIHRoZSBleGlzdGluZyBsYXJnZSBiaW5zIHRlc3QuCi0KLVJlbW92ZSBsZWZ0b3ZlciB2YXJp YWJsZXMgZnJvbSBfaW50X2ZyZWUgZnJvbSByZWZhY3RvcmluZyBpbiB0aGUKLXNhbWUgY29tbWl0 LgotCi1SZXZpZXdlZC1ieTogREogRGVsb3JpZSA8ZGpAcmVkaGF0LmNvbT4KLS0tLQotIG1hbGxv Yy9tYWxsb2MuYyAgICAgICAgIHwgMTY5ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSBtYWxsb2MvdHN0LW1lbWFsaWduLTIuYyB8ICAgNyArLQotIDIgZmlsZXMgY2hh bmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMTY2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv bWFsbG9jL21hbGxvYy5jIGIvbWFsbG9jL21hbGxvYy5jCi1pbmRleCA5NDhmOTc1OWFmLi5kMGJi YmYzNzEwIDEwMDY0NAotLS0tIGEvbWFsbG9jL21hbGxvYy5jCi0rKysgYi9tYWxsb2MvbWFsbG9j LmMKLUBAIC00NDg4LDEyICs0NDg4LDYgQEAgX2ludF9mcmVlIChtc3RhdGUgYXYsIG1jaHVua3B0 ciBwLCBpbnQgaGF2ZV9sb2NrKQotIHsKLSAgIElOVEVSTkFMX1NJWkVfVCBzaXplOyAgICAgICAg LyogaXRzIHNpemUgKi8KLSAgIG1mYXN0YmlucHRyICpmYjsgICAgICAgICAgICAgLyogYXNzb2Np YXRlZCBmYXN0YmluICovCi0tICBtY2h1bmtwdHIgbmV4dGNodW5rOyAgICAgICAgIC8qIG5leHQg Y29udGlndW91cyBjaHVuayAqLwotLSAgSU5URVJOQUxfU0laRV9UIG5leHRzaXplOyAgICAvKiBp dHMgc2l6ZSAqLwotLSAgaW50IG5leHRpbnVzZTsgICAgICAgICAgICAgICAvKiB0cnVlIGlmIG5l eHRjaHVuayBpcyB1c2VkICovCi0tICBJTlRFUk5BTF9TSVpFX1QgcHJldnNpemU7ICAgIC8qIHNp emUgb2YgcHJldmlvdXMgY29udGlndW91cyBjaHVuayAqLwotLSAgbWNodW5rcHRyIGJjazsgICAg ICAgICAgICAgICAvKiBtaXNjIHRlbXAgZm9yIGxpbmtpbmcgKi8KLS0gIG1jaHVua3B0ciBmd2Q7 ICAgICAgICAgICAgICAgLyogbWlzYyB0ZW1wIGZvciBsaW5raW5nICovCi0gCi0gICBzaXplID0g Y2h1bmtzaXplIChwKTsKLSAKLUBAIC01MDMyLDQyICs1MDI2LDYgQEAgX2ludF9yZWFsbG9jICht c3RhdGUgYXYsIG1jaHVua3B0ciBvbGRwLCBJTlRFUk5BTF9TSVpFX1Qgb2xkc2l6ZSwKLSAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gbWVtYWxpZ24gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gICovCi0gCi0tLyogUmV0dXJucyAwIGlmIHRoZSBjaHVuayBpcyBub3Qg YW5kIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJlcXVlc3RlZAotLSAgIGFsaWduZWQgc3ViLWNodW5r LCBlbHNlIHJldHVybnMgdGhlIGFtb3VudCBvZiAid2FzdGUiIGZyb20KLS0gICB0cmltbWluZy4g IE5CIGlzIHRoZSAqY2h1bmsqIGJ5dGUgc2l6ZSwgbm90IHRoZSB1c2VyIGJ5dGUKLS0gICBzaXpl LiAgKi8KLS1zdGF0aWMgc2l6ZV90Ci0tY2h1bmtfb2tfZm9yX21lbWFsaWduIChtY2h1bmtwdHIg cCwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IG5iKQotLXsKLS0gIHZvaWQgKm0gPSBjaHVuazJt ZW0gKHApOwotLSAgSU5URVJOQUxfU0laRV9UIHNpemUgPSBjaHVua3NpemUgKHApOwotLSAgdm9p ZCAqYWxpZ25lZF9tID0gbTsKLS0KLS0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChtaXNhbGlnbmVk X2NodW5rIChwKSkpCi0tICAgIG1hbGxvY19wcmludGVyciAoIl9pbnRfbWVtYWxpZ24oKTogdW5h bGlnbmVkIGNodW5rIGRldGVjdGVkIik7Ci0tCi0tICBhbGlnbmVkX20gPSBQVFJfQUxJR05fVVAg KG0sIGFsaWdubWVudCk7Ci0tCi0tICBJTlRFUk5BTF9TSVpFX1QgZnJvbnRfZXh0cmEgPSAoaW50 cHRyX3QpIGFsaWduZWRfbSAtIChpbnRwdHJfdCkgbTsKLS0KLS0gIC8qIFdlIGNhbid0IHRyaW0g b2ZmIHRoZSBmcm9udCBhcyBpdCdzIHRvbyBzbWFsbC4gICovCi0tICBpZiAoZnJvbnRfZXh0cmEg PiAwICYmIGZyb250X2V4dHJhIDwgTUlOU0laRSkKLS0gICAgcmV0dXJuIDA7Ci0tCi0tICAvKiBJ ZiBpdCdzIGEgcGVyZmVjdCBmaXQsIGl0J3MgYW4gZXhjZXB0aW9uIHRvIHRoZSByZXR1cm4gdmFs dWUgcnVsZQotLSAgICAgKHdlIHdvdWxkIHJldHVybiB6ZXJvIHdhc3RlLCB3aGljaCBsb29rcyBs aWtlICJub3QgdXNhYmxlIiksIHNvCi0tICAgICBoYW5kbGUgaXQgaGVyZSBieSByZXR1cm5pbmcg YSBzbWFsbCBub24temVybyB2YWx1ZSBpbnN0ZWFkLiAgKi8KLS0gIGlmIChzaXplID09IG5iICYm IGZyb250X2V4dHJhID09IDApCi0tICAgIHJldHVybiAxOwotLQotLSAgLyogSWYgdGhlIGJsb2Nr IHdlIG5lZWQgZml0cyBpbiB0aGUgY2h1bmssIGNhbGN1bGF0ZSB0b3RhbCB3YXN0ZS4gICovCi0t ICBpZiAoc2l6ZSA+IG5iICsgZnJvbnRfZXh0cmEpCi0tICAgIHJldHVybiBzaXplIC0gbmI7Ci0t Ci0tICAvKiBDYW4ndCB1c2UgdGhpcyBjaHVuay4gICovCi0tICByZXR1cm4gMDsKLS19Ci0tCi0g LyogQllURVMgaXMgdXNlciByZXF1ZXN0ZWQgYnl0ZXMsIG5vdCByZXF1ZXN0ZWQgY2h1bmtzaXpl IGJ5dGVzLiAgKi8KLSBzdGF0aWMgdm9pZCAqCi0gX2ludF9tZW1hbGlnbiAobXN0YXRlIGF2LCBz aXplX3QgYWxpZ25tZW50LCBzaXplX3QgYnl0ZXMpCi1AQCAtNTA4Miw3ICs1MDQwLDYgQEAgX2lu dF9tZW1hbGlnbiAobXN0YXRlIGF2LCBzaXplX3QgYWxpZ25tZW50LCBzaXplX3QgYnl0ZXMpCi0g ICBtY2h1bmtwdHIgcmVtYWluZGVyOyAgICAgICAgICAgIC8qIHNwYXJlIHJvb20gYXQgZW5kIHRv IHNwbGl0IG9mZiAqLwotICAgdW5zaWduZWQgbG9uZyByZW1haW5kZXJfc2l6ZTsgICAvKiBpdHMg c2l6ZSAqLwotICAgSU5URVJOQUxfU0laRV9UIHNpemU7Ci0tICBtY2h1bmtwdHIgdmljdGltOwot IAotICAgbmIgPSBjaGVja2VkX3JlcXVlc3Qyc2l6ZSAoYnl0ZXMpOwotICAgaWYgKG5iID09IDAp Ci1AQCAtNTEwMSwxMjkgKzUwNTgsMTMgQEAgX2ludF9tZW1hbGlnbiAobXN0YXRlIGF2LCBzaXpl X3QgYWxpZ25tZW50LCBzaXplX3QgYnl0ZXMpCi0gICAgICB3ZSBkb24ndCBmaW5kIGFueXRoaW5n IGluIHRob3NlIGJpbnMsIHRoZSBjb21tb24gbWFsbG9jIGNvZGUgd2lsbAotICAgICAgc2NhbiBz dGFydGluZyBhdCAyeC4gICovCi0gCi0tICAvKiBUaGlzIHdpbGwgYmUgc2V0IGlmIHdlIGZvdW5k IGEgY2FuZGlkYXRlIGNodW5rLiAgKi8KLS0gIHZpY3RpbSA9IE5VTEw7Ci0tCi0tICAvKiBGYXN0 IGJpbnMgYXJlIHNpbmdseS1saW5rZWQsIGhhcmQgdG8gcmVtb3ZlIGEgY2h1bmsgZnJvbSB0aGUg bWlkZGxlCi0tICAgICBhbmQgdW5saWtlbHkgdG8gbWVldCBvdXIgYWxpZ25tZW50IHJlcXVpcmVt ZW50cy4gIFdlIGhhdmUgbm90IGRvbmUKLS0gICAgIGFueSBleHBlcmltZW50YXRpb24gd2l0aCBz ZWFyY2hpbmcgZm9yIGFsaWduZWQgZmFzdGJpbnMuICAqLwotLQotLSAgaWYgKGF2ICE9IE5VTEwp Ci0tICAgIHsKLS0gICAgICBpbnQgZmlyc3RfYmluX2luZGV4OwotLSAgICAgIGludCBmaXJzdF9s YXJnZWJpbl9pbmRleDsKLS0gICAgICBpbnQgbGFzdF9iaW5faW5kZXg7Ci0tCi0tICAgICAgaWYg KGluX3NtYWxsYmluX3JhbmdlIChuYikpCi0tCWZpcnN0X2Jpbl9pbmRleCA9IHNtYWxsYmluX2lu ZGV4IChuYik7Ci0tICAgICAgZWxzZQotLQlmaXJzdF9iaW5faW5kZXggPSBsYXJnZWJpbl9pbmRl eCAobmIpOwotLQotLSAgICAgIGlmIChpbl9zbWFsbGJpbl9yYW5nZSAobmIgKiAyKSkKLS0JbGFz dF9iaW5faW5kZXggPSBzbWFsbGJpbl9pbmRleCAobmIgKiAyKTsKLS0gICAgICBlbHNlCi0tCWxh c3RfYmluX2luZGV4ID0gbGFyZ2ViaW5faW5kZXggKG5iICogMik7Ci0tCi0tICAgICAgZmlyc3Rf bGFyZ2ViaW5faW5kZXggPSBsYXJnZWJpbl9pbmRleCAoTUlOX0xBUkdFX1NJWkUpOwotLQotLSAg ICAgIGludCB2aWN0aW1faW5kZXg7ICAgICAgICAgICAgICAgICAvKiBpdHMgYmluIGluZGV4ICov Ci0tCi0tICAgICAgZm9yICh2aWN0aW1faW5kZXggPSBmaXJzdF9iaW5faW5kZXg7Ci0tCSAgIHZp Y3RpbV9pbmRleCA8IGxhc3RfYmluX2luZGV4OwotLQkgICB2aWN0aW1faW5kZXggKyspCi0tCXsK LS0JICB2aWN0aW0gPSBOVUxMOwotLQotLQkgIGlmICh2aWN0aW1faW5kZXggPCBmaXJzdF9sYXJn ZWJpbl9pbmRleCkKLS0JICAgIHsKLS0JICAgICAgLyogQ2hlY2sgc21hbGwgYmlucy4gIFNtYWxs IGJpbiBjaHVua3MgYXJlIGRvdWJseS1saW5rZWQgZGVzcGl0ZQotLQkJIGJlaW5nIHRoZSBzYW1l IHNpemUuICAqLwotLQotLQkgICAgICBtY2h1bmtwdHIgZndkOyAgICAgICAgICAgICAgICAgICAg LyogbWlzYyB0ZW1wIGZvciBsaW5raW5nICovCi0tCSAgICAgIG1jaHVua3B0ciBiY2s7ICAgICAg ICAgICAgICAgICAgICAvKiBtaXNjIHRlbXAgZm9yIGxpbmtpbmcgKi8KLS0KLS0JICAgICAgYmNr ID0gYmluX2F0IChhdiwgdmljdGltX2luZGV4KTsKLS0JICAgICAgZndkID0gYmNrLT5mZDsKLS0J ICAgICAgd2hpbGUgKGZ3ZCAhPSBiY2spCi0tCQl7Ci0tCQkgIGlmIChjaHVua19va19mb3JfbWVt YWxpZ24gKGZ3ZCwgYWxpZ25tZW50LCBuYikgPiAwKQotLQkJICAgIHsKLS0JCSAgICAgIHZpY3Rp bSA9IGZ3ZDsKLS0KLS0JCSAgICAgIC8qIFVubGluayBpdCAqLwotLQkJICAgICAgdmljdGltLT5m ZC0+YmsgPSB2aWN0aW0tPmJrOwotLQkJICAgICAgdmljdGltLT5iay0+ZmQgPSB2aWN0aW0tPmZk OwotLQkJICAgICAgYnJlYWs7Ci0tCQkgICAgfQotLQotLQkJICBmd2QgPSBmd2QtPmZkOwotLQkJ fQotLQkgICAgfQotLQkgIGVsc2UKLS0JICAgIHsKLS0JICAgICAgLyogQ2hlY2sgbGFyZ2UgYmlu cy4gICovCi0tCSAgICAgIG1jaHVua3B0ciBmd2Q7ICAgICAgICAgICAgICAgICAgICAvKiBtaXNj IHRlbXAgZm9yIGxpbmtpbmcgKi8KLS0JICAgICAgbWNodW5rcHRyIGJjazsgICAgICAgICAgICAg ICAgICAgIC8qIG1pc2MgdGVtcCBmb3IgbGlua2luZyAqLwotLQkgICAgICBtY2h1bmtwdHIgYmVz dCA9IE5VTEw7Ci0tCSAgICAgIHNpemVfdCBiZXN0X3NpemUgPSAwOwotLQotLQkgICAgICBiY2sg PSBiaW5fYXQgKGF2LCB2aWN0aW1faW5kZXgpOwotLQkgICAgICBmd2QgPSBiY2stPmZkOwotKyAg LyogQ2FsbCBtYWxsb2Mgd2l0aCB3b3JzdCBjYXNlIHBhZGRpbmcgdG8gaGl0IGFsaWdubWVudC4g Ki8KLSsgIG0gPSAoY2hhciAqKSAoX2ludF9tYWxsb2MgKGF2LCBuYiArIGFsaWdubWVudCArIE1J TlNJWkUpKTsKLSAKLS0JICAgICAgd2hpbGUgKGZ3ZCAhPSBiY2spCi0tCQl7Ci0tCQkgIGludCBl eHRyYTsKLS0KLS0JCSAgaWYgKGNodW5rc2l6ZSAoZndkKSA8IG5iKQotLQkJICAgIGJyZWFrOwot LQkJICBleHRyYSA9IGNodW5rX29rX2Zvcl9tZW1hbGlnbiAoZndkLCBhbGlnbm1lbnQsIG5iKTsK LS0JCSAgaWYgKGV4dHJhID4gMAotLQkJICAgICAgJiYgKGV4dHJhIDw9IGJlc3Rfc2l6ZSB8fCBi ZXN0ID09IE5VTEwpKQotLQkJICAgIHsKLS0JCSAgICAgIGJlc3QgPSBmd2Q7Ci0tCQkgICAgICBi ZXN0X3NpemUgPSBleHRyYTsKLS0JCSAgICB9Ci0rICBpZiAobSA9PSAwKQotKyAgICByZXR1cm4g MDsgICAgICAgICAgIC8qIHByb3BhZ2F0ZSBmYWlsdXJlICovCi0gCi0tCQkgIGZ3ZCA9IGZ3ZC0+ ZmQ7Ci0tCQl9Ci0tCSAgICAgIHZpY3RpbSA9IGJlc3Q7Ci0tCi0tCSAgICAgIGlmICh2aWN0aW0g IT0gTlVMTCkKLS0JCXsKLS0JCSAgdW5saW5rX2NodW5rIChhdiwgdmljdGltKTsKLS0JCSAgYnJl YWs7Ci0tCQl9Ci0tCSAgICB9Ci0tCi0tCSAgaWYgKHZpY3RpbSAhPSBOVUxMKQotLQkgICAgYnJl YWs7Ci0tCX0KLS0gICAgfQotLQotLSAgLyogU3RyYXRlZ3k6IGZpbmQgYSBzcG90IHdpdGhpbiB0 aGF0IGNodW5rIHRoYXQgbWVldHMgdGhlIGFsaWdubWVudAotLSAgICAgcmVxdWVzdCwgYW5kIHRo ZW4gcG9zc2libHkgZnJlZSB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2UuCi0tICAgICBU aGlzIHN0cmF0ZWd5IGlzIGluY3JlZGlibHkgY29zdGx5IGFuZCBjYW4gbGVhZCB0byBleHRlcm5h bAotLSAgICAgZnJhZ21lbnRhdGlvbiBpZiBoZWFkZXIgYW5kIGZvb3RlciBjaHVua3MgYXJlIHVu dXNlZC4gICovCi0tCi0tICBpZiAodmljdGltICE9IE5VTEwpCi0tICAgIHsKLS0gICAgICBwID0g dmljdGltOwotLSAgICAgIG0gPSBjaHVuazJtZW0gKHApOwotLSAgICAgIHNldF9pbnVzZSAocCk7 Ci0tICAgICAgaWYgKGF2ICE9ICZtYWluX2FyZW5hKQotLQlzZXRfbm9uX21haW5fYXJlbmEgKHAp OwotLSAgICB9Ci0tICBlbHNlCi0tICAgIHsKLS0gICAgICAvKiBDYWxsIG1hbGxvYyB3aXRoIHdv cnN0IGNhc2UgcGFkZGluZyB0byBoaXQgYWxpZ25tZW50LiAqLwotLQotLSAgICAgIG0gPSAoY2hh ciAqKSAoX2ludF9tYWxsb2MgKGF2LCBuYiArIGFsaWdubWVudCArIE1JTlNJWkUpKTsKLS0KLS0g ICAgICBpZiAobSA9PSAwKQotLQlyZXR1cm4gMDsgICAgICAgICAgIC8qIHByb3BhZ2F0ZSBmYWls dXJlICovCi0tCi0tICAgICAgcCA9IG1lbTJjaHVuayAobSk7Ci0tICAgIH0KLSsgIHAgPSBtZW0y Y2h1bmsgKG0pOwotIAotICAgaWYgKCgoKHVuc2lnbmVkIGxvbmcpIChtKSkgJSBhbGlnbm1lbnQp ICE9IDApICAgLyogbWlzYWxpZ25lZCAqLwotICAgICB7Ci1kaWZmIC0tZ2l0IGEvbWFsbG9jL3Rz dC1tZW1hbGlnbi0yLmMgYi9tYWxsb2MvdHN0LW1lbWFsaWduLTIuYwotaW5kZXggZjIyOTI4M2Ri Zi4uZWNkNmZhMjQ5ZSAxMDA2NDQKLS0tLSBhL21hbGxvYy90c3QtbWVtYWxpZ24tMi5jCi0rKysg Yi9tYWxsb2MvdHN0LW1lbWFsaWduLTIuYwotQEAgLTg2LDcgKzg2LDggQEAgZG9fdGVzdCAodm9p ZCkKLSAgICAgICBURVNUX1ZFUklGWSAodGNhY2hlX2FsbG9jc1tpXS5wdHIxID09IHRjYWNoZV9h bGxvY3NbaV0ucHRyMik7Ci0gICAgIH0KLSAKLS0gIC8qIFRlc3QgZm9yIG5vbi1oZWFkIHRjYWNo ZSBoaXRzLiAgKi8KLSsgIC8qIFRlc3QgZm9yIG5vbi1oZWFkIHRjYWNoZSBoaXRzLiAgVGhpcyBl eGVyY2lzZXMgdGhlIG1lbWFsaWduCi0rICAgICBzY2FubmluZyBjb2RlIHRvIGZpbmQgbWF0Y2hp bmcgYWxsb2NhdGlvbnMuICAqLwotICAgZm9yIChpID0gMDsgaSA8IGFycmF5X2xlbmd0aCAocHRy KTsgKysgaSkKLSAgICAgewotICAgICAgIGlmIChpID09IDQpCi1AQCAtMTEzLDcgKzExNCw5IEBA IGRvX3Rlc3QgKHZvaWQpCi0gICBmcmVlIChwKTsKLSAgIFRFU1RfVkVSSUZZIChjb3VudCA+IDAp OwotIAotLSAgLyogTGFyZ2UgYmlucyB0ZXN0LiAgKi8KLSsgIC8qIExhcmdlIGJpbnMgdGVzdC4g IFRoaXMgdmVyaWZpZXMgdGhhdCB0aGUgb3Zlci1hbGxvY2F0ZWQgcGFydHMKLSsgICAgIHRoYXQg bWVtYWxpZ24gcmVsZWFzZXMgZm9yIGZ1dHVyZSBhbGxvY2F0aW9ucyBjYW4gYmUgcmV1c2VkIGJ5 Ci0rICAgICBtZW1hbGlnbiBpdHNlbGYgYXQgbGVhc3QgaW4gc29tZSBjYXNlcy4gICovCi0gCi0g ICBmb3IgKGkgPSAwOyBpIDwgTE47ICsrIGkpCi0gICAgIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z2xpYmMvcGF0Y2hlcy8zMTJlMTU5NjI2YjY3ZmUxMWYzOWU4M2UyMjJjZjQzNDhhMzk2MmYzLnBh dGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzMxMmUxNTk2MjZiNjdmZTExZjM5ZTgzZTIyMmNm NDM0OGEzOTYyZjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MDAuLjkzMGQxZmQ5NzAyYzA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbGliYy9wYXRj aGVzLzMxMmUxNTk2MjZiNjdmZTExZjM5ZTgzZTIyMmNmNDM0OGEzOTYyZjMucGF0Y2gKQEAgLTAs MCArMSw4MCBAQAorRnJvbSAzMTJlMTU5NjI2YjY3ZmUxMWYzOWU4M2UyMjJjZjQzNDhhMzk2MmYz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxhZGhl bWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFRodSwgMSBGZWIgMjAyNCAxNDoyOTo1 MyAtMDMwMAorU3ViamVjdDogW1BBVENIXSBtaXBzOiBGSXggY2xvbmUzIGltcGxlbWVudGF0aW9u IChCWiAzMTMyNSkKKworRm9yIG8zMiB3ZSBuZWVkIHRvIHNldHVwIGEgbWluaW1hbCBzdGFjayBm cmFtZSB0byBhbGxvdyBjcHJlc3RvcmUKK29uIF9fdGhyZWFkX3N0YXJ0X2Nsb25lMyAod2hpY2gg aW5zdHJ1Y3QgdGhlIGxpbmtlciB0byBzYXZlIHRoZQorZ3AgZm9yIFBJQykuICBBbHNvLCB0aGVy ZSBpcyBubyBndWFyYW50ZWUgYnkga0FCSSB0aGF0ICQ4IHdpbGwgYmUKK3ByZXNlcnZlZCBhZnRl ciBzeXNjYWxsIGV4ZWN1dGlvbiwgc28gd2UgbmVlZCB0byBzYXZlIGl0IG9uIHRoZQorcHJvdmlk ZWQgc3RhY2suCisKK0NoZWNrZWQgb24gbWlwc2VsLWxpbnV4LWdudS4KKworUmVwb3J0ZWQtYnk6 IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitUZXN0ZWQtYnk6IEtoZW0gUmFqIDxyYWou a2hlbUBnbWFpbC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiYmQyNDhhYzBkNzVl ZmRlZjhmZTYxZWE2OWIxZmIyNWZiOTViNmU3KQorLS0tCisgc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvbWlwcy9jbG9uZTMuUyB8IDMyICsrKysrKysrKysrKysrKysrKysrKystLS0tLQorIDEgZmls ZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvbWlwcy9jbG9uZTMuUyBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L21pcHMvY2xvbmUzLlMKK2luZGV4IGU5ZmVjMmZhNDcuLjQ4MWI4YWU5NjMgMTAw NjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL2Nsb25lMy5TCisrKysgYi9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL2Nsb25lMy5TCitAQCAtMzcsMTEgKzM3LDYgQEAK KyAKKyAJLnRleHQKKyAJLnNldAkJbm9taXBzMTYKKy0jaWYgX01JUFNfU0lNID09IF9BQklPMzIK Ky0jIGRlZmluZSBFWFRSQV9MT0NBTFMgMQorLSNlbHNlCistIyBkZWZpbmUgRVhUUkFfTE9DQUxT IDAKKy0jZW5kaWYKKyAjZGVmaW5lIEZSQU1FU1ogKChOQVJHU0FWRSpTWlJFRykrQUxTWikmQUxN QVNLCisgR1BPRkY9IEZSQU1FU1otKDEqU1pSRUcpCisgTkVTVEVEKF9fY2xvbmUzLCBTWlJFRywg c3ApCitAQCAtNjgsOCArNjMsMzEgQEAgTkVTVEVEKF9fY2xvbmUzLCBTWlJFRywgc3ApCisgCWJl cXoJYTAsIEwoZXJyb3IpCS8qIE5vIE5VTEwgY2xfYXJncyBwb2ludGVyLiAgKi8KKyAJYmVxeglh MiwgTChlcnJvcikJLyogTm8gTlVMTCBmdW5jdGlvbiBwb2ludGVyLiAgKi8KKyAKKysjaWYgX01J UFNfU0lNID09IF9BQklPMzIKKysJLyogQm90aCBzdGFjayBhbmQgc3RhY2tfc2l6ZSBvbiBjbG9u ZV9hcmdzIGFyZSBkZWZpbmVkIGFzIHVpbnQ2NF90LCBhbmQKKysJICAgdGhlcmUgaXMgbm8gbmVl ZCB0byBoYW5kbGUgdmFsdWVzIGxhcmdlciB0aGFuIHRvIDMyIGJpdHMgZm9yIG8zMi4gICovCisr IyBpZiBfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOCisrIyAgZGVmaW5lIENMX1NUQUNLUE9J TlRFUl9PRkZTRVQgIDQ0CisrIyAgZGVmaW5lIENMX1NUQUNLU0laRV9PRkZTRVQgICAgIDUyCisr IyBlbHNlCisrIyAgZGVmaW5lIENMX1NUQUNLUE9JTlRFUl9PRkZTRVQgIDQwCisrIyAgZGVmaW5l IENMX1NUQUNLU0laRV9PRkZTRVQgICAgIDQ4CisrIyBlbmRpZgorKworKwkvKiBGb3IgbzMyIHdl IG5lZWQgdG8gc2V0dXAgYSBtaW5pbWFsIHN0YWNrIGZyYW1lIHRvIGFsbG93IGNwcmVzdG9yZQor KwkgICBvbiBfX3RocmVhZF9zdGFydF9jbG9uZTMuICBBbHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRl ZSBieSBrQUJJIHRoYXQKKysJICAgJDggd2lsbCBiZSBwcmVzZXJ2ZWQgYWZ0ZXIgc3lzY2FsbCBl eGVjdXRpb24gKHNvIHdlIG5lZWQgdG8gc2F2ZSBpdAorKwkgICBvbiB0aGUgcHJvdmlkZWQgc3Rh Y2spLiAgKi8KKysJbHcJdDAsIENMX1NUQUNLUE9JTlRFUl9PRkZTRVQoYTApCS8qIExvYWQgdGhl IHN0YWNrIHBvaW50ZXIuICAqLworKwlsdwl0MSwgQ0xfU1RBQ0tTSVpFX09GRlNFVChhMCkJLyog TG9hZCB0aGUgc3RhY2tfc2l6ZS4gICovCisrCWFkZGl1CXQxLCAtMzIJCQkJLyogVXBkYXRlIHRo ZSBzdGFjayBzaXplLiAgKi8KKysJYWRkdQl0MiwgdDEsIHQwCQkJLyogQ2FsY3VsYXRlIHRoZSB0 aHJlYWQgc3RhY2suICAqLworKwlzdwlhMywgMCh0MikJCQkvKiBTYXZlIGFyZ3VtZW50IHBvaW50 ZXIuICAqLworKwlzdwl0MSwgQ0xfU1RBQ0tTSVpFX09GRlNFVChhMCkJLyogU2F2ZSB0aGUgbmV3 IHN0YWNrIHNpemUuICAqLworKyNlbHNlCisgCW1vdmUJJDgsIGEzCQkvKiBhMyBpcyBzZXQgdG8g MC8xIGZvciBzeXNjYWxsIHN1Y2Nlc3MvZXJyb3IKKyAJCQkJICAgd2hpbGUgYTQvJDggaXMgcmV0 dXJuZWQgdW5tb2RpZmllZC4gICovCisrI2VuZGlmCisgCisgCS8qIERvIHRoZSBzeXN0ZW0gY2Fs bCwgdGhlIGtlcm5lbCBleHBlY3RzOgorIAkgICB2MDogc3lzdGVtIGNhbGwgbnVtYmVyCitAQCAt MTI1LDcgKzE0MywxMSBAQCBMKHRocmVhZF9zdGFydF9jbG9uZTMpOgorIAorIAkvKiBSZXN0b3Jl IHRoZSBhcmcgZm9yIHVzZXIncyBmdW5jdGlvbi4gICovCisgCW1vdmUJCXQ5LCBhMgkJLyogRnVu Y3Rpb24gcG9pbnRlci4gICovCisrI2lmIF9NSVBTX1NJTSA9PSBfQUJJTzMyCisrCVBUUl9MCQlh MCwgMChzcCkKKysjZWxzZQorIAltb3ZlCQlhMCwgJDgJCS8qIEFyZ3VtZW50IHBvaW50ZXIuICAq LworKyNlbmRpZgorIAorIAkvKiBDYWxsIHRoZSB1c2VyJ3MgZnVuY3Rpb24uICAqLworIAlqYWwJ CXQ5CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvNjMyOTVlNGZkYTFmNmRhYjRi Zjc0NDI3MDZmZTMwM2JmMjgzMDM2Yy5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy82MzI5 NWU0ZmRhMWY2ZGFiNGJmNzQ0MjcwNmZlMzAzYmYyODMwMzZjLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwLi5jOTI0ODViYTRkNTQzMQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy82MzI5NWU0ZmRhMWY2ZGFiNGJmNzQ0MjcwNmZl MzAzYmYyODMwMzZjLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gNjMyOTVlNGZkYTFmNmRh YjRiZjc0NDI3MDZmZTMwM2JmMjgzMDM2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IEFkaGVtZXJ2YWwgWmFuZWxsYSA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRl OiBNb24sIDUgRmViIDIwMjQgMTY6MTA6MjQgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gYXJtOiBS ZW1vdmUgd3JvbmcgbGRyIGZyb20gX2RsX3N0YXJ0X3VzZXIgKEJaIDMxMzM5KQorCitUaGUgY29t bWl0IDQ5ZDg3N2E4MGIyOWQzMDAyODg3YjA4NGVlYzY2NzZkOWY1ZmVjMTggKGFybTogUmVtb3Zl CitfZGxfc2tpcF9hcmdzIHVzYWdlKSByZW1vdmVkIHRoZSBfU0tJUF9BUkdTIGxpdGVyYWwsIHdo aWNoIHdhcworcHJldmlvdXNseSBsb2FkZXIgdG8gcjQgb24gbG9hZGVyIF9zdGFydC4gIEhvd2V2 ZXIsIHRoZSBjbGVhbnVwIGRpZCBub3QKK3JlbW92ZSB0aGUgZm9sbG93aW5nICdsZHIgcjQsIFtz bCwgcjRdJyBvbiBfZGxfc3RhcnRfdXNlciwgdXNlZCB0byBjaGVjawordG8gc2tpcCB0aGUgYXJn dW1lbnRzIGFmdGVyIGxkIHNlbGYtcmVsb2NhdGlvbnMuCisKK0luIG15IHRlc3RpbmcsIHRoZSBr ZXJuZWwgaW5pdGlhbGx5IHNldCByNCB0byAwLCB3aGljaCBtYWtlcyB0aGUKK2xkciBpbnN0cnVj dGlvbiBqdXN0IHJlYWQgdGhlIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy4gIEhvd2V2ZXIsIHNpbmNl IHI0CitpcyBhIGNhbGxlZS1zYXZlZCByZWdpc3RlcjsgYSBkaWZmZXJlbnQgcnVudGltZSBtaWdo dCBub3QgemVybworaW5pdGlhbGl6ZSBpdCBhbmQgdGh1cyB0cmlnZ2VyIGFuIGludmFsaWQgbWVt b3J5IGFjY2Vzcy4KKworQ2hlY2tlZCBvbiBhcm0tbGludXgtZ251LgorCitSZXBvcnRlZC1ieTog QWRyaWFuIFJhdGl1IDxhZHJpYW4ucmF0aXVAY29sbGFib3JhLmNvbT4KK1Jldmlld2VkLWJ5OiBT emFib2xjcyBOYWd5IDxzemFib2xjcy5uYWd5QGFybS5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCAxZTI1MTEyZGMwY2IyNTE1ZDI3ZDhkMTc4YjFlY2NlNzc4YTlkMzdhKQorLS0tCisg c3lzZGVwcy9hcm0vZGwtbWFjaGluZS5oIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRp b24oLSkKKworZGlmZiAtLWdpdCBhL3N5c2RlcHMvYXJtL2RsLW1hY2hpbmUuaCBiL3N5c2RlcHMv YXJtL2RsLW1hY2hpbmUuaAoraW5kZXggYjg1N2JiYzg2OC4uZGQxYTBmNmI2ZSAxMDA2NDQKKy0t LSBhL3N5c2RlcHMvYXJtL2RsLW1hY2hpbmUuaAorKysrIGIvc3lzZGVwcy9hcm0vZGwtbWFjaGlu ZS5oCitAQCAtMTM5LDcgKzEzOSw2IEBAIF9zdGFydDpcblwKKyBfZGxfc3RhcnRfdXNlcjpcblwK KyAJYWRyCXI2LCAuTF9HRVRfR09UXG5cCisgCWFkZAlzbCwgc2wsIHI2XG5cCistCWxkcglyNCwg W3NsLCByNF1cblwKKyAJQCBzYXZlIHRoZSBlbnRyeSBwb2ludCBpbiBhbm90aGVyIHJlZ2lzdGVy XG5cCisgCW1vdglyNiwgcjBcblwKKyAJQCBnZXQgdGhlIG9yaWdpbmFsIGFyZyBjb3VudFxuXApk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTYyNDYucGF0Y2ggYi9z cmNwa2dzL2dsaWJjL3BhdGNoZXMvQ1ZFLTIwMjMtNjI0Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZmIyNDc5ZTIyMTdmMWUuLjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02MjQ2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTc4ICswLDAgQEAKLUZyb20gMjM1MTRjNzJiNzgwZjNkYTA5N2VjZjMzYTc5M2I3YmE5YzIwNzBk MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFyanVuIFNoYW5rYXIgPGFyanVuQHJl ZGhhdC5jb20+Ci1EYXRlOiBNb24sIDE1IEphbiAyMDI0IDE3OjQ0OjQzICswMTAwCi1TdWJqZWN0 OiBbUEFUQ0hdIHN5c2xvZzogRml4IGhlYXAgYnVmZmVyIG92ZXJmbG93IGluIF9fdnN5c2xvZ19p bnRlcm5hbAotIChDVkUtMjAyMy02MjQ2KQotCi1fX3ZzeXNsb2dfaW50ZXJuYWwgZGlkIG5vdCBo YW5kbGUgYSBjYXNlIHdoZXJlIHByaW50aW5nIGEgU1lTTE9HX0hFQURFUgotY29udGFpbmluZyBh IGxvbmcgcHJvZ3JhbSBuYW1lIGZhaWxlZCB0byB1cGRhdGUgdGhlIHJlcXVpcmVkIGJ1ZmZlcgot c2l6ZSwgbGVhZGluZyB0byB0aGUgYWxsb2NhdGlvbiBhbmQgb3ZlcmZsb3cgb2YgYSB0b28tc21h bGwgYnVmZmVyIG9uCi10aGUgaGVhcC4gIFRoaXMgY29tbWl0IGZpeGVzIHRoYXQuICBJdCBhbHNv IGFkZHMgYSBuZXcgcmVncmVzc2lvbiB0ZXN0Ci10aGF0IHVzZXMgZ2xpYmMubWFsbG9jLmNoZWNr LgotCi1SZXZpZXdlZC1ieTogQWRoZW1lcnZhbCBaYW5lbGxhICA8YWRoZW1lcnZhbC56YW5lbGxh QGxpbmFyby5vcmc+Ci1SZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0 LmNvbT4KLVRlc3RlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KLShj aGVycnkgcGlja2VkIGZyb20gY29tbWl0IDZiZDBlNGVmY2M3OGYzYzAxMTVlNWVhOTczOWExNjQy ODA3NDUwZGEpCi0tLS0KLSBtaXNjL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgOCArKy0KLSBtaXNjL3N5c2xvZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCA1MCArKysrKysrKysrKysrLS0tLS0tCi0gbWlzYy90c3Qtc3lzbG9nLWxvbmctcHJv Z25hbWUuYyAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrCi0gLi4uL3Bvc3RjbGVh bi5yZXEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDAKLSA0IGZpbGVzIGNoYW5nZWQs IDgyIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBt aXNjL3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5jCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IG1pc2Mv dHN0LXN5c2xvZy1sb25nLXByb2duYW1lLnJvb3QvcG9zdGNsZWFuLnJlcQotCi1kaWZmIC0tZ2l0 IGEvbWlzYy9NYWtlZmlsZSBiL21pc2MvTWFrZWZpbGUKLWluZGV4IGZlMGQ0OWMxZGU1Li45MGIz MTk1MmM1OSAxMDA2NDQKLS0tLSBhL21pc2MvTWFrZWZpbGUKLSsrKyBiL21pc2MvTWFrZWZpbGUK LUBAIC0yODksNyArMjg5LDEwIEBAIHRlc3RzLXNwZWNpYWwgKz0gJChvYmpwZngpdHN0LWVycm9y MS1tZW0ub3V0IFwKLSAgICQob2JqcGZ4KXRzdC1hbGxvY2F0ZV9vbmNlLW1lbS5vdXQKLSBlbmRp ZgotIAotLXRlc3RzLWNvbnRhaW5lciA6PSB0c3Qtc3lzbG9nCi0rdGVzdHMtY29udGFpbmVyIDo9 IFwKLSsgIHRzdC1zeXNsb2cgXAotKyAgdHN0LXN5c2xvZy1sb25nLXByb2duYW1lIFwKLSsgICMg dGVzdHMtY29udGFpbmVyCi0gCi0gQ0ZMQUdTLXNlbGVjdC5jICs9IC1mZXhjZXB0aW9ucyAtZmFz eW5jaHJvbm91cy11bndpbmQtdGFibGVzCi0gQ0ZMQUdTLXRzZWFyY2guYyArPSAkKHVzZXMtY2Fs bGJhY2tzKQotQEAgLTM1MSw2ICszNTQsOSBAQCAkKG9ianBmeCl0c3QtYWxsb2NhdGVfb25jZS1t ZW0ub3V0OiAkKG9ianBmeCl0c3QtYWxsb2NhdGVfb25jZS5vdXQKLSAJJChjb21tb24tb2JqcGZ4 KW1hbGxvYy9tdHJhY2UgJChvYmpwZngpdHN0LWFsbG9jYXRlX29uY2UubXRyYWNlID4gJEA7IFwK LSAJJChldmFsdWF0ZS10ZXN0KQotIAotK3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS1FTlYgPSBH TElCQ19UVU5BQkxFUz1nbGliYy5tYWxsb2MuY2hlY2s9MyBcCi0rCQkJICAgICAgIExEX1BSRUxP QUQ9bGliY19tYWxsb2NfZGVidWcuc28uMAotKwotICQob2JqcGZ4KXRzdC1zZWxlY3Q6ICQobGli cnQpCi0gJChvYmpwZngpdHN0LXNlbGVjdC10aW1lNjQ6ICQobGlicnQpCi0gJChvYmpwZngpdHN0 LXBzZWxlY3Q6ICQobGlicnQpCi1kaWZmIC0tZ2l0IGEvbWlzYy9zeXNsb2cuYyBiL21pc2Mvc3lz bG9nLmMKLWluZGV4IDFiOGNiNzIyYzUxLi44MTRkMjI0YTFlOSAxMDA2NDQKLS0tLSBhL21pc2Mv c3lzbG9nLmMKLSsrKyBiL21pc2Mvc3lzbG9nLmMKLUBAIC0xMjQsOCArMTI0LDkgQEAgX192c3lz bG9nX2ludGVybmFsIChpbnQgcHJpLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXAsCi0gewot ICAgLyogVHJ5IHRvIHVzZSBhIHN0YXRpYyBidWZmZXIgYXMgYW4gb3B0aW1pemF0aW9uLiAgKi8K LSAgIGNoYXIgYnVmc1sxMDI0XTsKLS0gIGNoYXIgKmJ1ZiA9IE5VTEw7Ci0tICBzaXplX3QgYnVm c2l6ZSA9IDA7Ci0rICBjaGFyICpidWYgPSBidWZzOwotKyAgc2l6ZV90IGJ1ZnNpemU7Ci0rCi0g ICBpbnQgbXNnb2ZmOwotICAgaW50IHNhdmVkX2Vycm5vID0gZXJybm87Ci0gCi1AQCAtMTc3LDI5 ICsxNzgsNTAgQEAgX192c3lzbG9nX2ludGVybmFsIChpbnQgcHJpLCBjb25zdCBjaGFyICpmbXQs IHZhX2xpc3QgYXAsCi0gI2RlZmluZSBTWVNMT0dfSEVBREVSX1dJVEhPVVRfVFMoX19wcmksIF9f bXNnb2ZmKSAgICAgICAgXAotICAgIjwlZD46ICVuIiwgX19wcmksIF9fbXNnb2ZmCi0gCi0tICBp bnQgbDsKLSsgIGludCBsLCB2bDsKLSAgIGlmIChoYXNfdHMpCi0gICAgIGwgPSBfX3NucHJpbnRm IChidWZzLCBzaXplb2YgYnVmcywKLSAJCSAgICBTWVNMT0dfSEVBREVSIChwcmksIHRpbWVzdGFt cCwgJm1zZ29mZiwgcGlkKSk7Ci0gICBlbHNlCi0gICAgIGwgPSBfX3NucHJpbnRmIChidWZzLCBz aXplb2YgYnVmcywKLSAJCSAgICBTWVNMT0dfSEVBREVSX1dJVEhPVVRfVFMgKHByaSwgJm1zZ29m ZikpOwotKwotKyAgY2hhciAqcG9zOwotKyAgc2l6ZV90IGxlbjsKLSsKLSAgIGlmICgwIDw9IGwg JiYgbCA8IHNpemVvZiBidWZzKQotICAgICB7Ci0tICAgICAgdmFfbGlzdCBhcGM7Ci0tICAgICAg dmFfY29weSAoYXBjLCBhcCk7Ci0rICAgICAgLyogQXQgdGhpcyBwb2ludCwgdGhlcmUgaXMgc3Rp bGwgYSBjaGFuY2UgdGhhdCB3ZSBjYW4gcHJpbnQgdGhlCi0rICAgICAgICAgcmVtYWluaW5nIHBh cnQgb2YgdGhlIGxvZyBpbnRvIGJ1ZnMgYW5kIHVzZSB0aGF0LiAgKi8KLSsgICAgICBwb3MgPSBi dWZzICsgbDsKLSsgICAgICBsZW4gPSBzaXplb2YgKGJ1ZnMpIC0gbDsKLSsgICAgfQotKyAgZWxz ZQotKyAgICB7Ci0rICAgICAgYnVmID0gTlVMTDsKLSsgICAgICAvKiBXZSBhbHJlYWR5IGtub3cg dGhhdCBidWZzIGlzIHRvbyBzbWFsbCB0byB1c2UgZm9yIHRoaXMgbG9nIG1lc3NhZ2UuCi0rICAg ICAgICAgVGhlIG5leHQgdnNucHJpbnRmIGludG8gYnVmcyBpcyB1c2VkIG9ubHkgdG8gY2FsY3Vs YXRlIHRoZSB0b3RhbAotKyAgICAgICAgIHJlcXVpcmVkIGJ1ZmZlciBsZW5ndGguICBXZSB3aWxs IGRpc2NhcmQgYnVmcyBjb250ZW50cyBhbmQgYWxsb2NhdGUKLSsgICAgICAgICBhbiBhcHByb3By aWF0ZWx5IHNpemVkIGJ1ZmZlciBsYXRlciBpbnN0ZWFkLiAgKi8KLSsgICAgICBwb3MgPSBidWZz OwotKyAgICAgIGxlbiA9IHNpemVvZiAoYnVmcyk7Ci0rICAgIH0KLSAKLS0gICAgICAvKiBSZXN0 b3JlIGVycm5vIGZvciAlbSBmb3JtYXQuICAqLwotLSAgICAgIF9fc2V0X2Vycm5vIChzYXZlZF9l cnJubyk7Ci0rICB7Ci0rICAgIHZhX2xpc3QgYXBjOwotKyAgICB2YV9jb3B5IChhcGMsIGFwKTsK LSAKLS0gICAgICBpbnQgdmwgPSBfX3ZzbnByaW50Zl9pbnRlcm5hbCAoYnVmcyArIGwsIHNpemVv ZiBidWZzIC0gbCwgZm10LCBhcGMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vZGVfZmxhZ3MpOwotLSAgICAgIGlmICgwIDw9IHZsICYmIHZsIDwgc2l6ZW9mIGJ1ZnMg LSBsKQotLSAgICAgICAgYnVmID0gYnVmczsKLS0gICAgICBidWZzaXplID0gbCArIHZsOwotKyAg ICAvKiBSZXN0b3JlIGVycm5vIGZvciAlbSBmb3JtYXQuICAqLwotKyAgICBfX3NldF9lcnJubyAo c2F2ZWRfZXJybm8pOwotIAotLSAgICAgIHZhX2VuZCAoYXBjKTsKLS0gICAgfQotKyAgICB2bCA9 IF9fdnNucHJpbnRmX2ludGVybmFsIChwb3MsIGxlbiwgZm10LCBhcGMsIG1vZGVfZmxhZ3MpOwot KwotKyAgICBpZiAoISgwIDw9IHZsICYmIHZsIDwgbGVuKSkKLSsgICAgICBidWYgPSBOVUxMOwot KwotKyAgICBidWZzaXplID0gbCArIHZsOwotKyAgICB2YV9lbmQgKGFwYyk7Ci0rICB9Ci0gCi0g ICBpZiAoYnVmID09IE5VTEwpCi0gICAgIHsKLWRpZmYgLS1naXQgYS9taXNjL3RzdC1zeXNsb2ct bG9uZy1wcm9nbmFtZS5jIGIvbWlzYy90c3Qtc3lzbG9nLWxvbmctcHJvZ25hbWUuYwotbmV3IGZp bGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMDAwLi44OGYzN2E4YTAwNAotLS0tIC9kZXYv bnVsbAotKysrIGIvbWlzYy90c3Qtc3lzbG9nLWxvbmctcHJvZ25hbWUuYwotQEAgLTAsMCArMSwz OSBAQAotKy8qIFRlc3QgaGVhcCBidWZmZXIgb3ZlcmZsb3cgaW4gc3lzbG9nIHdpdGggbG9uZyBf X3Byb2duYW1lIChDVkUtMjAyMy02MjQ2KQotKyAgIENvcHlyaWdodCAoQykgMjAyMyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05V IEMgTGlicmFyeS4KLSsKLSsgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICAgdmVyc2lv biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCi0rCi0rICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICAgTGVz c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCi0rICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNl ZQotKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRl IDxzeXNsb2cuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rZXh0ZXJuIGNoYXIgKiBfX3By b2duYW1lOwotKwotK3N0YXRpYyBpbnQKLStkb190ZXN0ICh2b2lkKQotK3sKLSsgIGNoYXIgbG9u Z19wcm9nbmFtZVsyMDQ4XTsKLSsKLSsgIG1lbXNldCAobG9uZ19wcm9nbmFtZSwgJ1gnLCBzaXpl b2YgKGxvbmdfcHJvZ25hbWUpIC0gMSk7Ci0rICBsb25nX3Byb2duYW1lW3NpemVvZiAobG9uZ19w cm9nbmFtZSkgLSAxXSA9ICdcMCc7Ci0rCi0rICBfX3Byb2duYW1lID0gbG9uZ19wcm9nbmFtZTsK LSsKLSsgIHN5c2xvZyAoTE9HX0lORk8sICJIZWxsbywgV29ybGQhIik7Ci0rCi0rICByZXR1cm4g MDsKLSt9Ci0rCi0rI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KLWRpZmYgLS1naXQg YS9taXNjL3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5yb290L3Bvc3RjbGVhbi5yZXEgYi9taXNj L3RzdC1zeXNsb2ctbG9uZy1wcm9nbmFtZS5yb290L3Bvc3RjbGVhbi5yZXEKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAyMy02Nzc5LnBhdGNoIGIvc3JjcGtncy9nbGliYy9w YXRjaGVzL0NWRS0yMDIzLTY3NzkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDVhY2M5ZTM3NTEwMzJhLi4wMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dsaWJjL3BhdGNo ZXMvQ1ZFLTIwMjMtNjc3OS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi1G cm9tIGQwMzM4MzEyYWFjZTViYmZlZjg1ZTAzMDU1ZTEyMTJkZDBlNDk1NzggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBBcmp1biBTaGFua2FyIDxhcmp1bkByZWRoYXQuY29tPgotRGF0 ZTogTW9uLCAxNSBKYW4gMjAyNCAxNzo0NDo0NCArMDEwMAotU3ViamVjdDogW1BBVENIXSBzeXNs b2c6IEZpeCBoZWFwIGJ1ZmZlciBvdmVyZmxvdyBpbiBfX3ZzeXNsb2dfaW50ZXJuYWwKLSAoQ1ZF LTIwMjMtNjc3OSkKLQotX192c3lzbG9nX2ludGVybmFsIHVzZWQgdGhlIHJldHVybiB2YWx1ZSBv ZiBzbnByaW50Zi92c25wcmludGYgdG8KLWNhbGN1bGF0ZSBidWZmZXIgc2l6ZXMgZm9yIG1lbW9y eSBhbGxvY2F0aW9uLiAgSWYgdGhlc2UgZnVuY3Rpb25zIChmb3IKLWFueSByZWFzb24pIGZhaWxl ZCBhbmQgcmV0dXJuZWQgLTEsIHRoZSByZXN1bHRpbmcgYnVmZmVyIHdvdWxkIGJlIHRvbwotc21h bGwgdG8gaG9sZCBvdXRwdXQuICBUaGlzIGNvbW1pdCBmaXhlcyB0aGF0LgotCi1BbGwgc25wcmlu dGYvdnNucHJpbnRmIGNhbGxzIGFyZSBjaGVja2VkIGZvciBuZWdhdGl2ZSByZXR1cm4gdmFsdWVz IGFuZAotdGhlIGZ1bmN0aW9uIHNpbGVudGx5IHJldHVybnMgdXBvbiBlbmNvdW50ZXJpbmcgdGhl bS4KLQotUmV2aWV3ZWQtYnk6IENhcmxvcyBPJ0RvbmVsbCA8Y2FybG9zQHJlZGhhdC5jb20+Ci0o Y2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3ZTVhMGMyODZkYTMzMTU5ZDQ3ZDAxMjIwMDdhYWMw MTZmM2UwMmNkKQotLS0tCi0gbWlzYy9zeXNsb2cuYyB8IDM5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAx MSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL21pc2Mvc3lzbG9nLmMgYi9taXNjL3N5c2xv Zy5jCi1pbmRleCA4MTRkMjI0YTFlLi41MzQ0MGU0N2FkIDEwMDY0NAotLS0tIGEvbWlzYy9zeXNs b2cuYwotKysrIGIvbWlzYy9zeXNsb2cuYwotQEAgLTE4NSwxMSArMTg1LDEzIEBAIF9fdnN5c2xv Z19pbnRlcm5hbCAoaW50IHByaSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwLAotICAgZWxz ZQotICAgICBsID0gX19zbnByaW50ZiAoYnVmcywgc2l6ZW9mIGJ1ZnMsCi0gCQkgICAgU1lTTE9H X0hFQURFUl9XSVRIT1VUX1RTIChwcmksICZtc2dvZmYpKTsKLSsgIGlmIChsIDwgMCkKLSsgICAg Z290byBvdXQ7Ci0gCi0gICBjaGFyICpwb3M7Ci0gICBzaXplX3QgbGVuOwotIAotLSAgaWYgKDAg PD0gbCAmJiBsIDwgc2l6ZW9mIGJ1ZnMpCi0rICBpZiAobCA8IHNpemVvZiBidWZzKQotICAgICB7 Ci0gICAgICAgLyogQXQgdGhpcyBwb2ludCwgdGhlcmUgaXMgc3RpbGwgYSBjaGFuY2UgdGhhdCB3 ZSBjYW4gcHJpbnQgdGhlCi0gICAgICAgICAgcmVtYWluaW5nIHBhcnQgb2YgdGhlIGxvZyBpbnRv IGJ1ZnMgYW5kIHVzZSB0aGF0LiAgKi8KLUBAIC0yMTUsMTIgKzIxNywxNSBAQCBfX3ZzeXNsb2df aW50ZXJuYWwgKGludCBwcmksIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCwKLSAgICAgX19z ZXRfZXJybm8gKHNhdmVkX2Vycm5vKTsKLSAKLSAgICAgdmwgPSBfX3ZzbnByaW50Zl9pbnRlcm5h bCAocG9zLCBsZW4sIGZtdCwgYXBjLCBtb2RlX2ZsYWdzKTsKLSsgICAgdmFfZW5kIChhcGMpOwot KwotKyAgICBpZiAodmwgPCAwKQotKyAgICAgIGdvdG8gb3V0OwotIAotLSAgICBpZiAoISgwIDw9 IHZsICYmIHZsIDwgbGVuKSkKLSsgICAgaWYgKHZsID49IGxlbikKLSAgICAgICBidWYgPSBOVUxM OwotIAotICAgICBidWZzaXplID0gbCArIHZsOwotLSAgICB2YV9lbmQgKGFwYyk7Ci0gICB9Ci0g Ci0gICBpZiAoYnVmID09IE5VTEwpCi1AQCAtMjMxLDI1ICsyMzYsMzcgQEAgX192c3lzbG9nX2lu dGVybmFsIChpbnQgcHJpLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXAsCi0gCSAgLyogVGVs bCB0aGUgY2FuY2VsbGF0aW9uIGhhbmRsZXIgdG8gZnJlZSB0aGlzIGJ1ZmZlci4gICovCi0gCSAg Y2xhcmcuYnVmID0gYnVmOwotIAotKwkgIGludCBjbDsKLSAJICBpZiAoaGFzX3RzKQotLQkgICAg X19zbnByaW50ZiAoYnVmLCBsICsgMSwKLS0JCQlTWVNMT0dfSEVBREVSIChwcmksIHRpbWVzdGFt cCwgJm1zZ29mZiwgcGlkKSk7Ci0rCSAgICBjbCA9IF9fc25wcmludGYgKGJ1ZiwgbCArIDEsCi0r CQkJICAgICBTWVNMT0dfSEVBREVSIChwcmksIHRpbWVzdGFtcCwgJm1zZ29mZiwgcGlkKSk7Ci0g CSAgZWxzZQotLQkgICAgX19zbnByaW50ZiAoYnVmLCBsICsgMSwKLS0JCQlTWVNMT0dfSEVBREVS X1dJVEhPVVRfVFMgKHByaSwgJm1zZ29mZikpOwotKwkgICAgY2wgPSBfX3NucHJpbnRmIChidWYs IGwgKyAxLAotKwkJCSAgICAgU1lTTE9HX0hFQURFUl9XSVRIT1VUX1RTIChwcmksICZtc2dvZmYp KTsKLSsJICBpZiAoY2wgIT0gbCkKLSsJICAgIGdvdG8gb3V0OwotIAotIAkgIHZhX2xpc3QgYXBj OwotIAkgIHZhX2NvcHkgKGFwYywgYXApOwotLQkgIF9fdnNucHJpbnRmX2ludGVybmFsIChidWYg KyBsLCBidWZzaXplIC0gbCArIDEsIGZtdCwgYXBjLAotLQkJCQltb2RlX2ZsYWdzKTsKLSsJICBj bCA9IF9fdnNucHJpbnRmX2ludGVybmFsIChidWYgKyBsLCBidWZzaXplIC0gbCArIDEsIGZtdCwg YXBjLAotKwkJCQkgICAgIG1vZGVfZmxhZ3MpOwotIAkgIHZhX2VuZCAoYXBjKTsKLSsKLSsJICBp ZiAoY2wgIT0gdmwpCi0rCSAgICBnb3RvIG91dDsKLSAJfQotICAgICAgIGVsc2UKLSAgICAgICAg IHsKLSsgICAgICAgICAgaW50IGJsOwotIAkgIC8qIE5vdGhpbmcgbXVjaCB0byBkbyBidXQgZW1p dCBhbiBlcnJvciBtZXNzYWdlLiAgKi8KLS0gICAgICAgICAgYnVmc2l6ZSA9IF9fc25wcmludGYg KGJ1ZnMsIHNpemVvZiBidWZzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91 dCBvZiBtZW1vcnlbJWRdIiwgX19nZXRwaWQgKCkpOwotKyAgICAgICAgICBibCA9IF9fc25wcmlu dGYgKGJ1ZnMsIHNpemVvZiBidWZzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXQg b2YgbWVtb3J5WyVkXSIsIF9fZ2V0cGlkICgpKTsKLSsgICAgICAgICAgaWYgKGJsIDwgMCB8fCBi bCA+PSBzaXplb2YgYnVmcykKLSsgICAgICAgICAgICBnb3RvIG91dDsKLSsKLSsgICAgICAgICAg YnVmc2l6ZSA9IGJsOwotICAgICAgICAgICBidWYgPSBidWZzOwotKyAgICAgICAgICBtc2dvZmYg PSAwOwotICAgICAgICAgfQotICAgICB9Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWJjL3Bh dGNoZXMvQ1ZFLTIwMjMtNjc4MC5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9DVkUtMjAy My02NzgwLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjY5NGU1NTQ5OTAw NS4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGliYy9wYXRjaGVzL0NWRS0yMDIzLTY3 ODAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1Gcm9tIGQzN2MyYjIwYTQ3 ODc0NjNkMTkyYjMyMDQxYzM0MDZjMmJkOTFkZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBBcmp1biBTaGFua2FyIDxhcmp1bkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAxNSBKYW4g MjAyNCAxNzo0NDo0NSArMDEwMAotU3ViamVjdDogW1BBVENIXSBzeXNsb2c6IEZpeCBpbnRlZ2Vy IG92ZXJmbG93IGluIF9fdnN5c2xvZ19pbnRlcm5hbAotIChDVkUtMjAyMy02NzgwKQotCi1fX3Zz eXNsb2dfaW50ZXJuYWwgY2FsY3VsYXRlZCBhIGJ1ZmZlciBzaXplIGJ5IGFkZGluZyB0d28gaW50 ZWdlcnMsIGJ1dAotZGlkIG5vdCBmaXJzdCBjaGVjayBpZiB0aGUgYWRkaXRpb24gd291bGQgb3Zl cmZsb3cuICBUaGlzIGNvbW1pdCBmaXhlcwotdGhhdC4KLQotUmV2aWV3ZWQtYnk6IENhcmxvcyBP J0RvbmVsbCA8Y2FybG9zQHJlZGhhdC5jb20+Ci1UZXN0ZWQtYnk6IENhcmxvcyBPJ0RvbmVsbCA8 Y2FybG9zQHJlZGhhdC5jb20+Ci0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBkZGY1NDJkYTk0 Y2FmOTdmZjQzY2MyODc1Yzg4NzQ5ODgwYjcyNTliKQotLS0tCi0gbWlzYy9zeXNsb2cuYyB8IDMg KystCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1k aWZmIC0tZ2l0IGEvbWlzYy9zeXNsb2cuYyBiL21pc2Mvc3lzbG9nLmMKLWluZGV4IDUzNDQwZTQ3 YWQuLjRhZjg3ZjU0ZmQgMTAwNjQ0Ci0tLS0gYS9taXNjL3N5c2xvZy5jCi0rKysgYi9taXNjL3N5 c2xvZy5jCi1AQCAtNDEsNiArNDEsNyBAQCBzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpc3lz bG9nLmMJOC40IChCZXJrZWxleSkgMy8xOC85NCI7Ci0gI2luY2x1ZGUgPHN5cy91aW8uaD4KLSAj aW5jbHVkZSA8c3lzL3VuLmg+Ci0gI2luY2x1ZGUgPHN5c2xvZy5oPgotKyNpbmNsdWRlIDxsaW1p dHMuaD4KLSAKLSBzdGF0aWMgaW50IExvZ1R5cGUgPSBTT0NLX0RHUkFNOwkvKiB0eXBlIG9mIHNv Y2tldCBjb25uZWN0aW9uICovCi0gc3RhdGljIGludCBMb2dGaWxlID0gLTE7CQkvKiBmZCBmb3Ig bG9nICovCi1AQCAtMjE5LDcgKzIyMCw3IEBAIF9fdnN5c2xvZ19pbnRlcm5hbCAoaW50IHByaSwg Y29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwLAotICAgICB2bCA9IF9fdnNucHJpbnRmX2ludGVy bmFsIChwb3MsIGxlbiwgZm10LCBhcGMsIG1vZGVfZmxhZ3MpOwotICAgICB2YV9lbmQgKGFwYyk7 Ci0gCi0tICAgIGlmICh2bCA8IDApCi0rICAgIGlmICh2bCA8IDAgfHwgdmwgPj0gSU5UX01BWCAt IGwpCi0gICAgICAgZ290byBvdXQ7Ci0gCi0gICAgIGlmICh2bCA+PSBsZW4pCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvYjI1NTA4ZGQ3NzRiNjE3Zjk5NDE5YmRjM2NmMmFjZTQ1 NjBjZDJkNi5wYXRjaCBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9iMjU1MDhkZDc3NGI2MTdmOTk0 MTliZGMzY2YyYWNlNDU2MGNkMmQ2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMzlkN2U5ZjA0YmE1Zi4uMDAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGliYy9wYXRj aGVzL2IyNTUwOGRkNzc0YjYxN2Y5OTQxOWJkYzNjZjJhY2U0NTYwY2QyZDYucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxOTIgKzAsMCBAQAotRnJvbSBiMjU1MDhkZDc3NGI2MTdmOTk0MTliZGMz Y2YyYWNlNDU2MGNkMmQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRmxvcmlhbiBX ZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMTMgU2VwIDIwMjMgMTQ6MTA6 NTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gQ1ZFLTIwMjMtNDUyNzogU3RhY2sgcmVhZCBvdmVy ZmxvdyB3aXRoIGxhcmdlIFRDUCByZXNwb25zZXMKLSBpbiBuby1hYWFhIG1vZGUKLQotV2l0aG91 dCBwYXNzaW5nIGFsdF9kbnNfcGFja2V0X2J1ZmZlciwgX19yZXNfY29udGV4dF9zZWFyY2ggY2Fu IG9ubHkKLXN0b3JlIDIwNDggYnl0ZXMgKHdoYXQgZml0cyBpbnRvIGRuc19wYWNrZXRfYnVmZmVy KS4gIEhvd2V2ZXIsCi10aGUgZnVuY3Rpb24gcmV0dXJucyB0aGUgdG90YWwgcGFja2V0IHNpemUs IGFuZCB0aGUgc3Vic2VxdWVudAotRE5TIHBhcnNpbmcgY29kZSBpbiBfbnNzX2Ruc19nZXRob3N0 YnluYW1lNF9yIHJlYWRzIGJleW9uZCB0aGUgZW5kCi1vZiB0aGUgc3RhY2stYWxsb2NhdGVkIGJ1 ZmZlci4KLQotRml4ZXMgY29tbWl0IGYyODJjZGJlN2Y0MzZjNzU4NjRlNTY0MGE0ICgicmVzb2x2 OiBJbXBsZW1lbnQgbm8tYWFhYQotc3R1YiByZXNvbHZlciBvcHRpb24iKSBhbmQgYnVnIDMwODQy LgotCi0oY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiZDc3ZGQ3ZTczZTM1MzAyMDNiZTFjNTJj OGEyOWQwODI3MGNiMjVkKQotLS0tCi0gTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDkgKysrCi0gcmVzb2x2L01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDIgKwotIHJlc29sdi9u c3NfZG5zL2Rucy1ob3N0LmMgICAgIHwgICAyICstCi0gcmVzb2x2L3RzdC1yZXNvbHYtbm9hYWFh LXZjLmMgfCAxMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIDQgZmlsZXMg Y2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLSBjcmVhdGUgbW9kZSAx MDA2NDQgcmVzb2x2L3RzdC1yZXNvbHYtbm9hYWFhLXZjLmMKLQotZGlmZiAtLWdpdCBhL3Jlc29s di9NYWtlZmlsZSBiL3Jlc29sdi9NYWtlZmlsZQotaW5kZXggMDU0YjFmYTM2Yy4uMmY5OWViMzg2 MiAxMDA2NDQKLS0tLSBhL3Jlc29sdi9NYWtlZmlsZQotKysrIGIvcmVzb2x2L01ha2VmaWxlCi1A QCAtMTAyLDYgKzEwMiw3IEBAIHRlc3RzICs9IFwKLSAgIHRzdC1yZXNvbHYtaW52YWxpZC1jbmFt ZSBcCi0gICB0c3QtcmVzb2x2LW5ldHdvcmsgXAotICAgdHN0LXJlc29sdi1ub2FhYWEgXAotKyAg dHN0LXJlc29sdi1ub2FhYWEtdmMgXAotICAgdHN0LXJlc29sdi1ub25kZWNpbWFsIFwKLSAgIHRz dC1yZXNvbHYtcmVzX2luaXQtbXVsdGkgXAotICAgdHN0LXJlc29sdi1zZWFyY2ggXAotQEAgLTI5 Myw2ICsyOTQsNyBAQCAkKG9ianBmeCl0c3QtcmVzb2x2LXJlc19pbml0LXRocmVhZDogJChvYmpw ZngpbGlicmVzb2x2LnNvIFwKLSAkKG9ianBmeCl0c3QtcmVzb2x2LWludmFsaWQtY25hbWU6ICQo b2JqcGZ4KWxpYnJlc29sdi5zbyBcCi0gICAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKLSAkKG9i anBmeCl0c3QtcmVzb2x2LW5vYWFhYTogJChvYmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRo cmVhZC1saWJyYXJ5KQotKyQob2JqcGZ4KXRzdC1yZXNvbHYtbm9hYWFhLXZjOiAkKG9ianBmeCls aWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCi0gJChvYmpwZngpdHN0LXJlc29s di1ub25kZWNpbWFsOiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxpYnJh cnkpCi0gJChvYmpwZngpdHN0LXJlc29sdi1xdHlwZXM6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyAk KHNoYXJlZC10aHJlYWQtbGlicmFyeSkKLSAkKG9ianBmeCl0c3QtcmVzb2x2LXJvdGF0ZTogJChv YmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQotZGlmZiAtLWdpdCBh L3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jCi1p bmRleCAxZDYwYzUxZjVlLi41ZDBhYjMwZGU2IDEwMDY0NAotLS0tIGEvcmVzb2x2L25zc19kbnMv ZG5zLWhvc3QuYwotKysrIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYwotQEAgLTQyNyw3ICs0 MjcsNyBAQCBfbnNzX2Ruc19nZXRob3N0YnluYW1lNF9yIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1 Y3QgZ2FpaF9hZGRydHVwbGUgKipwYXQsCi0gICAgIHsKLSAgICAgICBuID0gX19yZXNfY29udGV4 dF9zZWFyY2ggKGN0eCwgbmFtZSwgQ19JTiwgVF9BLAotIAkJCQlkbnNfcGFja2V0X2J1ZmZlciwg c2l6ZW9mIChkbnNfcGFja2V0X2J1ZmZlciksCi0tCQkJCU5VTEwsIE5VTEwsIE5VTEwsIE5VTEws IE5VTEwpOwotKwkJCQkmYWx0X2Ruc19wYWNrZXRfYnVmZmVyLCBOVUxMLCBOVUxMLCBOVUxMLCBO VUxMKTsKLSAgICAgICBpZiAobiA+PSAwKQotIAlzdGF0dXMgPSBnYWloX2dldGFuc3dlcl9ub2Fh YWEgKGFsdF9kbnNfcGFja2V0X2J1ZmZlciwgbiwKLSAJCQkJCSZhYnVmLCBwYXQsIGVycm5vcCwg aGVycm5vcCwgdHRscCk7Ci1kaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1yZXNvbHYtbm9hYWFhLXZj LmMgYi9yZXNvbHYvdHN0LXJlc29sdi1ub2FhYWEtdmMuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQK LWluZGV4IDAwMDAwMDAwMDAuLjlmNWFlYmQ5OWYKLS0tLSAvZGV2L251bGwKLSsrKyBiL3Jlc29s di90c3QtcmVzb2x2LW5vYWFhYS12Yy5jCi1AQCAtMCwwICsxLDEyOSBAQAotKy8qIFRlc3QgdGhl IFJFU19OT0FBQUEgcmVzb2x2ZXIgb3B0aW9uIHdpdGggYSBsYXJnZSByZXNwb25zZS4KLSsgICBD b3B5cmlnaHQgKEMpIDIwMjItMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KLSsKLSsgICBUaGUgR05V IEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKLSsgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCi0rICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCi0rICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsg ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICAgTGljZW5zZSBhbG9uZyB3aXRo IHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQotKyAgIDxodHRwczovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlIDxlcnJuby5oPgotKyNpbmNsdWRlIDxuZXRk Yi5oPgotKyNpbmNsdWRlIDxyZXNvbHYuaD4KLSsjaW5jbHVkZSA8c3RkYm9vbC5oPgotKyNpbmNs dWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3VwcG9ydC9jaGVjay5oPgotKyNpbmNsdWRlIDxz dXBwb3J0L2NoZWNrX25zcy5oPgotKyNpbmNsdWRlIDxzdXBwb3J0L3Jlc29sdl90ZXN0Lmg+Ci0r I2luY2x1ZGUgPHN1cHBvcnQvc3VwcG9ydC5oPgotKyNpbmNsdWRlIDxzdXBwb3J0L3htZW1zdHJl YW0uaD4KLSsKLSsvKiBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBxdWVyaWVz LiAgKi8KLStzdGF0aWMgdm9sYXRpbGUgdW5zaWduZWQgaW50IHF1ZXJpZXM7Ci0rCi0rLyogSWYg dHJ1ZSwgYWRkIGEgbGFyZ2UgVFhUIHJlY29yZCBhdCB0aGUgc3RhcnQgb2YgdGhlIGFuc3dlciBz ZWN0aW9uLiAgKi8KLStzdGF0aWMgdm9sYXRpbGUgYm9vbCBzdHVmZl90eHQ7Ci0rCi0rc3RhdGlj IHZvaWQKLStyZXNwb25zZSAoY29uc3Qgc3RydWN0IHJlc29sdl9yZXNwb25zZV9jb250ZXh0ICpj dHgsCi0rICAgICAgICAgIHN0cnVjdCByZXNvbHZfcmVzcG9uc2VfYnVpbGRlciAqYiwKLSsgICAg ICAgICAgY29uc3QgY2hhciAqcW5hbWUsIHVpbnQxNl90IHFjbGFzcywgdWludDE2X3QgcXR5cGUp Ci0rewotKyAgLyogSWYgbm90IHVzaW5nIFRDUCwganVzdCBmb3JjZSBpdHMgdXNlLiAgKi8KLSsg IGlmICghY3R4LT50Y3ApCi0rICAgIHsKLSsgICAgICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2Zs YWdzIGZsYWdzID0gey50YyA9IHRydWV9OwotKyAgICAgIHJlc29sdl9yZXNwb25zZV9pbml0IChi LCBmbGFncyk7Ci0rICAgICAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9xdWVzdGlvbiAoYiwgcW5hbWUs IHFjbGFzcywgcXR5cGUpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgLyogVGhlIHRl c3QgbmVlZHMgdG8gc2VuZCBmb3VyIHF1ZXJpZXMsIHRoZSBmaXJzdCB0aHJlZSBhcmUgdXNlZCB0 bwotKyAgICAgZ3JvdyB0aGUgTlNTIGJ1ZmZlciB2aWEgdGhlIEVSQU5HRSBoYW5kc2hha2UuICAq LwotKyAgKytxdWVyaWVzOwotKyAgVEVTVF9WRVJJRlkgKHF1ZXJpZXMgPD0gNCk7Ci0rCi0rICAv KiBBQUFBIHF1ZXJpZXMgYXJlIHN1cHBvc2VkIHRvIGJlIGRpc2FibGVkLiAgKi8KLSsgIFRFU1Rf Q09NUEFSRSAocXR5cGUsIFRfQSk7Ci0rICBURVNUX0NPTVBBUkUgKHFjbGFzcywgQ19JTik7Ci0r ICBURVNUX0NPTVBBUkVfU1RSSU5HIChxbmFtZSwgImV4YW1wbGUuY29tIik7Ci0rCi0rICBzdHJ1 Y3QgcmVzb2x2X3Jlc3BvbnNlX2ZsYWdzIGZsYWdzID0ge307Ci0rICByZXNvbHZfcmVzcG9uc2Vf aW5pdCAoYiwgZmxhZ3MpOwotKyAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9xdWVzdGlvbiAoYiwgcW5h bWUsIHFjbGFzcywgcXR5cGUpOwotKwotKyAgcmVzb2x2X3Jlc3BvbnNlX3NlY3Rpb24gKGIsIG5z X3NfYW4pOwotKwotKyAgaWYgKHN0dWZmX3R4dCkKLSsgICAgewotKyAgICAgIHJlc29sdl9yZXNw b25zZV9vcGVuX3JlY29yZCAoYiwgcW5hbWUsIHFjbGFzcywgVF9UWFQsIDYwKTsKLSsgICAgICBp bnQgemVybyA9IDA7Ci0rICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gMTUwMDA7ICsraSkKLSsg ICAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfZGF0YSAoYiwgJnplcm8sIHNpemVvZiAoemVybykp OwotKyAgICAgIHJlc29sdl9yZXNwb25zZV9jbG9zZV9yZWNvcmQgKGIpOwotKyAgICB9Ci0rCi0r ICBmb3IgKGludCBpID0gMDsgaSA8IDIwMDsgKytpKQotKyAgICB7Ci0rICAgICAgcmVzb2x2X3Jl c3BvbnNlX29wZW5fcmVjb3JkIChiLCBxbmFtZSwgcWNsYXNzLCBxdHlwZSwgNjApOwotKyAgICAg IGNoYXIgaXB2NFs0XSA9IHsxOTIsIDAsIDIsIGkgKyAxfTsKLSsgICAgICByZXNvbHZfcmVzcG9u c2VfYWRkX2RhdGEgKGIsICZpcHY0LCBzaXplb2YgKGlwdjQpKTsKLSsgICAgICByZXNvbHZfcmVz cG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKLSsgICAgfQotK30KLSsKLStzdGF0aWMgaW50Ci0rZG9f dGVzdCAodm9pZCkKLSt7Ci0rICBzdHJ1Y3QgcmVzb2x2X3Rlc3QgKm9iaiA9IHJlc29sdl90ZXN0 X3N0YXJ0Ci0rICAgICgoc3RydWN0IHJlc29sdl9yZWRpcmVjdF9jb25maWcpCi0rICAgICB7Ci0r ICAgICAgIC5yZXNwb25zZV9jYWxsYmFjayA9IHJlc3BvbnNlCi0rICAgICB9KTsKLSsKLSsgIF9y ZXMub3B0aW9ucyB8PSBSRVNfTk9BQUFBOwotKwotKyAgZm9yIChpbnQgZG9fc3R1ZmZfdHh0ID0g MDsgZG9fc3R1ZmZfdHh0IDwgMjsgKytkb19zdHVmZl90eHQpCi0rICAgIHsKLSsgICAgICBxdWVy aWVzID0gMDsKLSsgICAgICBzdHVmZl90eHQgPSBkb19zdHVmZl90eHQ7Ci0rCi0rICAgICAgc3Ry dWN0IGFkZHJpbmZvICphaSA9IE5VTEw7Ci0rICAgICAgaW50IHJldDsKLSsgICAgICByZXQgPSBn ZXRhZGRyaW5mbyAoImV4YW1wbGUuY29tIiwgIjgwIiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgJihzdHJ1Y3QgYWRkcmluZm8pCi0rICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAuYWlfZmFtaWx5ID0gQUZfVU5TUEVDLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIC5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICB9LCAmYWkpOwotKwotKyAgICAgIGNoYXIgKmV4cGVjdGVkX3Jlc3Vs dDsKLSsgICAgICB7Ci0rICAgICAgICBzdHJ1Y3QgeG1lbXN0cmVhbSBtZW07Ci0rICAgICAgICB4 b3Blbl9tZW1zdHJlYW0gKCZtZW0pOwotKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDA7 ICsraSkKLSsgICAgICAgICAgZnByaW50ZiAobWVtLm91dCwgImFkZHJlc3M6IFNUUkVBTS9UQ1Ag MTkyLjAuMi4lZCA4MFxuIiwgaSArIDEpOwotKyAgICAgICAgeGZjbG9zZV9tZW1zdHJlYW0gKCZt ZW0pOwotKyAgICAgICAgZXhwZWN0ZWRfcmVzdWx0ID0gbWVtLmJ1ZmZlcjsKLSsgICAgICB9Ci0r Ci0rICAgICAgY2hlY2tfYWRkcmluZm8gKCJleGFtcGxlLmNvbSIsIGFpLCByZXQsIGV4cGVjdGVk X3Jlc3VsdCk7Ci0rCi0rICAgICAgZnJlZSAoZXhwZWN0ZWRfcmVzdWx0KTsKLSsgICAgICBmcmVl YWRkcmluZm8gKGFpKTsKLSsgICAgfQotKwotKyAgcmVzb2x2X3Rlc3RfZW5kIChvYmopOwotKyAg cmV0dXJuIDA7Ci0rfQotKwotKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVyLmM+CmRpZmYg LS1naXQgYS9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvY29tbWl0dGVkLTEtMi1Qcm9wYWdhdGUtR0xJ QkNfVFVOQUJMRVMtaW4tc2V0eGlkLWJpbmFyaWVzLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRj aGVzL2NvbW1pdHRlZC0xLTItUHJvcGFnYXRlLUdMSUJDX1RVTkFCTEVTLWluLXNldHhpZC1iaW5h cmllcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzFkY2JkMDMwMDliYTEu LjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9jb21taXR0ZWQtMS0y LVByb3BhZ2F0ZS1HTElCQ19UVU5BQkxFUy1pbi1zZXR4aWQtYmluYXJpZXMucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxOTggKzAsMCBAQAotRnJvbSAwZDVmOWVhOTdmMWIzOWYyYTg1NTc1NjA3 ODc3MTY3M2E2ODQ5N2UxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2lkZGhlc2gg UG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KLURhdGU6IFR1ZSwgMTkgU2VwIDIw MjMgMTM6MjU6NDAgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gUHJvcGFnYXRlIEdMSUJDX1RVTkFC TEVTIGluIHNldHhpZCBiaW5hcmllcwotCi1HTElCQ19UVU5BQkxFUyBzY3J1YmJpbmcgaGFwcGVu cyBlYXJsaWVyIHRoYW4gZW52dmFyIHNjcnViYmluZyBhbmQgc29tZQotdHVuYWJsZXMgYXJlIHJl cXVpcmVkIHRvIHByb3BhZ2F0ZSBwYXN0IHNldHhpZCBib3VuZGFyeSwgbGlrZSB0aGVpcgotZW52 X2FsaWFzLiAgUmVseSBvbiB0dW5hYmxlIHNjcnViYmluZyB0byBjbGVhbiBvdXQgR0xJQkNfVFVO QUJMRVMgbGlrZQotYmVmb3JlLCByZXN0b3JpbmcgYmVoYXZpb3VyIGluIGdsaWJjIDIuMzcgYW5k IGVhcmxpZXIuCi0KLVNpZ25lZC1vZmYtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hA c291cmNld2FyZS5vcmc+Ci1SZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVk aGF0LmNvbT4KLS0tLQotIHN5c2RlcHMvZ2VuZXJpYy91bnNlY3ZhcnMuaCB8IDEgLQotIDEgZmls ZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zeXNkZXBzL2dlbmVyaWMv dW5zZWN2YXJzLmggYi9zeXNkZXBzL2dlbmVyaWMvdW5zZWN2YXJzLmgKLWluZGV4IDgxMzk3ZmI5 MGIuLjgyNzhjNTBhODQgMTAwNjQ0Ci0tLS0gYS9zeXNkZXBzL2dlbmVyaWMvdW5zZWN2YXJzLmgK LSsrKyBiL3N5c2RlcHMvZ2VuZXJpYy91bnNlY3ZhcnMuaAotQEAgLTQsNyArNCw2IEBACi0gI2Rl ZmluZSBVTlNFQ1VSRV9FTlZWQVJTIFwKLSAgICJHQ09OVl9QQVRIXDAiCQkJCQkJCSAgICAgIFwK LSAgICJHRVRDT05GX0RJUlwwIgkJCQkJCQkgICAgICBcCi0tICAiR0xJQkNfVFVOQUJMRVNcMCIJ CQkJCQkJICAgICAgXAotICAgIkhPU1RBTElBU0VTXDAiCQkJCQkJCSAgICAgIFwKLSAgICJMRF9B VURJVFwwIgkJCQkJCQkJICAgICAgXAotICAgIkxEX0RFQlVHXDAiCQkJCQkJCQkgICAgICBcCi0t LSAKLUZyb20gMTA1NmU1YjRjM2YyZDkwZWQyYjRhNTVmOTZhZGQyOGRhMmY0YzhmYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291 cmNld2FyZS5vcmc+Ci1EYXRlOiBUdWUsIDE5IFNlcCAyMDIzIDE4OjM5OjMyIC0wNDAwCi1TdWJq ZWN0OiBbUEFUQ0hdIHR1bmFibGVzOiBUZXJtaW5hdGUgaWYgZW5kIG9mIGlucHV0IGlzIHJlYWNo ZWQKLSAoQ1ZFLTIwMjMtNDkxMSkKLQotVGhlIHN0cmluZyBwYXJzaW5nIHJvdXRpbmUgbWF5IGVu ZCB1cCB3cml0aW5nIGJleW9uZCBib3VuZHMgb2YgdHVuZXN0cgotaWYgdGhlIGlucHV0IHR1bmFi bGUgc3RyaW5nIGlzIG1hbGZvcm1lZCwgb2YgdGhlIGZvcm0gbmFtZT1uYW1lPXZhbC4KLVRoaXMg Z2V0cyBwcm9jZXNzZWQgdHdpY2UsIGZpcnN0IGFzIG5hbWU9bmFtZT12YWwgYW5kIG5leHQgYXMg bmFtZT12YWwsCi1yZXN1bHRpbmcgaW4gdHVuZXN0ciBiZWluZyBuYW1lPW5hbWU9dmFsOm5hbWU9 dmFsLCB0aHVzIG92ZXJmbG93aW5nCi10dW5lc3RyLgotCi1UZXJtaW5hdGUgdGhlIHBhcnNpbmcg bG9vcCBhdCB0aGUgZmlyc3QgaW5zdGFuY2UgaXRzZWxmIHNvIHRoYXQgdHVuZXN0cgotZG9lcyBu b3Qgb3ZlcmZsb3cuCi0KLVRoaXMgYWxzbyBmaXhlcyB1cCB0c3QtZW52LXNldHVpZC10dW5hYmxl cyB0byBhY3R1YWxseSBoYW5kbGUgZmFpbHVyZXMKLWNvcnJlY3QgYW5kIGFkZCBuZXcgdGVzdHMg dG8gdmFsaWRhdGUgdGhlIGZpeCBmb3IgdGhpcyBDVkUuCi0KLVNpZ25lZC1vZmYtYnk6IFNpZGRo ZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+Ci1SZXZpZXdlZC1ieTogQ2Fy bG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KLS0tLQotIE5FV1MgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDUgKysrKysKLSBlbGYvZGwtdHVuYWJsZXMuYyAgICAgICAgICAgICB8 IDE3ICsrKysrKysrKy0tLS0tLS0KLSBlbGYvdHN0LWVudi1zZXR1aWQtdHVuYWJsZXMuYyB8IDM3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCi0gMyBmaWxlcyBjaGFuZ2VkLCA0 NCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL05FV1MgYi9O RVdTCi1pbmRleCBhOTQ2NTBkYTY0Li5jYzRiODFmMGFjIDEwMDY0NAotLS0tIGEvTkVXUwotKysr IGIvTkVXUwotQEAgLTY0LDYgKzY0LDExIEBAIFNlY3VyaXR5IHJlbGF0ZWQgY2hhbmdlczoKLSAg IGFuIGFwcGxpY2F0aW9uIGNhbGxzIGdldGFkZHJpbmZvIGZvciBBRl9JTkVUNiB3aXRoIEFJX0NB Tk9OTkFNRSwKLSAgIEFJX0FMTCBhbmQgQUlfVjRNQVBQRUQgZmxhZ3Mgc2V0LgotIAotKyAgQ1ZF LTIwMjMtNDkxMTogSWYgYSB0dW5hYmxlIG9mIHRoZSBmb3JtIE5BTUU9TkFNRT1WQUwgaXMgcGFz c2VkIGluIHRoZQotKyAgZW52aXJvbm1lbnQgb2YgYSBzZXR1aWQgcHJvZ3JhbSBhbmQgTkFNRSBp cyB2YWxpZCwgaXQgbWF5IHJlc3VsdCBpbiBhCi0rICBidWZmZXIgb3ZlcmZsb3csIHdoaWNoIGNv dWxkIGJlIGV4cGxvaXRlZCB0byBhY2hpZXZlIGVzY2FsYXRlZAotKyAgcHJpdmlsZWdlcy4gIFRo aXMgZmxhdyB3YXMgaW50cm9kdWNlZCBpbiBnbGliYyAyLjM0LgotKwotIFRoZSBmb2xsb3dpbmcg YnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6Ci0gCi0gICBbVGhlIHJlbGVhc2Ug bWFuYWdlciB3aWxsIGFkZCB0aGUgbGlzdCBnZW5lcmF0ZWQgYnkKLWRpZmYgLS1naXQgYS9lbGYv ZGwtdHVuYWJsZXMuYyBiL2VsZi9kbC10dW5hYmxlcy5jCi1pbmRleCA2MmI3MzMyZDk1Li5jYWU2 N2VmYTBhIDEwMDY0NAotLS0tIGEvZWxmL2RsLXR1bmFibGVzLmMKLSsrKyBiL2VsZi9kbC10dW5h Ymxlcy5jCi1AQCAtMTgwLDExICsxODAsNyBAQCBwYXJzZV90dW5hYmxlcyAoY2hhciAqdHVuZXN0 ciwgY2hhciAqdmFsc3RyaW5nKQotICAgICAgIC8qIElmIHdlIHJlYWNoIHRoZSBlbmQgb2YgdGhl IHN0cmluZyBiZWZvcmUgZ2V0dGluZyBhIHZhbGlkIG5hbWUtdmFsdWUKLSAJIHBhaXIsIGJhaWwg b3V0LiAgKi8KLSAgICAgICBpZiAocFtsZW5dID09ICdcMCcpCi0tCXsKLS0JICBpZiAoX19saWJj X2VuYWJsZV9zZWN1cmUpCi0tCSAgICB0dW5lc3RyW29mZl0gPSAnXDAnOwotLQkgIHJldHVybjsK LS0JfQotKwlicmVhazsKLSAKLSAgICAgICAvKiBXZSBkaWQgbm90IGZpbmQgYSB2YWxpZCBuYW1l LXZhbHVlIHBhaXIgYmVmb3JlIGVuY291bnRlcmluZyB0aGUKLSAJIGNvbG9uLiAgKi8KLUBAIC0y NDQsOSArMjQwLDE2IEBAIHBhcnNlX3R1bmFibGVzIChjaGFyICp0dW5lc3RyLCBjaGFyICp2YWxz dHJpbmcpCi0gCSAgICB9Ci0gCX0KLSAKLS0gICAgICBpZiAocFtsZW5dICE9ICdcMCcpCi0tCXAg Kz0gbGVuICsgMTsKLSsgICAgICAvKiBXZSByZWFjaGVkIHRoZSBlbmQgd2hpbGUgcHJvY2Vzc2lu ZyB0aGUgdHVuYWJsZSBzdHJpbmcuICAqLwotKyAgICAgIGlmIChwW2xlbl0gPT0gJ1wwJykKLSsJ YnJlYWs7Ci0rCi0rICAgICAgcCArPSBsZW4gKyAxOwotICAgICB9Ci0rCi0rICAvKiBUZXJtaW5h dGUgdHVuZXN0ciBiZWZvcmUgd2UgbGVhdmUuICAqLwotKyAgaWYgKF9fbGliY19lbmFibGVfc2Vj dXJlKQotKyAgICB0dW5lc3RyW29mZl0gPSAnXDAnOwotIH0KLSAKLSAvKiBFbmFibGUgdGhlIGds aWJjLm1hbGxvYy5jaGVjayB0dW5hYmxlIGluIFNFVFVJRC9TRVRHSUQgcHJvZ3JhbXMgb25seSB3 aGVuCi1kaWZmIC0tZ2l0IGEvZWxmL3RzdC1lbnYtc2V0dWlkLXR1bmFibGVzLmMgYi9lbGYvdHN0 LWVudi1zZXR1aWQtdHVuYWJsZXMuYwotaW5kZXggN2RmYjBlMDczYS4uZjBiOTJjOTdlNyAxMDA2 NDQKLS0tLSBhL2VsZi90c3QtZW52LXNldHVpZC10dW5hYmxlcy5jCi0rKysgYi9lbGYvdHN0LWVu di1zZXR1aWQtdHVuYWJsZXMuYwotQEAgLTUwLDYgKzUwLDggQEAgY29uc3QgY2hhciAqdGVzdHN0 cmluZ3NbXSA9Ci0gICAiZ2xpYmMubWFsbG9jLnBlcnR1cmI9MHg4MDA6bm90X3ZhbGlkLm1hbGxv Yy5jaGVjaz0yOmdsaWJjLm1hbGxvYy5tbWFwX3RocmVzaG9sZD00MDk2IiwKLSAgICJnbGliYy5u b3RfdmFsaWQuY2hlY2s9MjpnbGliYy5tYWxsb2MubW1hcF90aHJlc2hvbGQ9NDA5NiIsCi0gICAi bm90X3ZhbGlkLm1hbGxvYy5jaGVjaz0yOmdsaWJjLm1hbGxvYy5tbWFwX3RocmVzaG9sZD00MDk2 IiwKLSsgICJnbGliYy5tYWxsb2MubW1hcF90aHJlc2hvbGQ9Z2xpYmMubWFsbG9jLm1tYXBfdGhy ZXNob2xkPTQwOTYiLAotKyAgImdsaWJjLm1hbGxvYy5jaGVjaz0yIiwKLSAgICJnbGliYy5tYWxs b2MuZ2FyYmFnZT0yOmdsaWJjLm1hb2MubW1hcF90aHJlc2hvbGQ9NDA5NjpnbGliYy5tYWxsb2Mu Y2hlY2s9MiIsCi0gICAiZ2xpYmMubWFsbG9jLmNoZWNrPTQ6Z2xpYmMubWFsbG9jLmdhcmJhZ2U9 MjpnbGliYy5tYW9jLm1tYXBfdGhyZXNob2xkPTQwOTYiLAotICAgIjpnbGliYy5tYWxsb2MuZ2Fy YmFnZT0yOmdsaWJjLm1hbGxvYy5jaGVjaz0xIiwKLUBAIC02OCw2ICs3MCw4IEBAIGNvbnN0IGNo YXIgKnJlc3VsdHN0cmluZ3NbXSA9Ci0gICAiZ2xpYmMubWFsbG9jLnBlcnR1cmI9MHg4MDA6Z2xp YmMubWFsbG9jLm1tYXBfdGhyZXNob2xkPTQwOTYiLAotICAgImdsaWJjLm1hbGxvYy5tbWFwX3Ro cmVzaG9sZD00MDk2IiwKLSAgICJnbGliYy5tYWxsb2MubW1hcF90aHJlc2hvbGQ9NDA5NiIsCi0r ICAiZ2xpYmMubWFsbG9jLm1tYXBfdGhyZXNob2xkPWdsaWJjLm1hbGxvYy5tbWFwX3RocmVzaG9s ZD00MDk2IiwKLSsgICIiLAotICAgIiIsCi0gICAiIiwKLSAgICIiLAotQEAgLTgxLDExICs4NSwx OCBAQCB0ZXN0X2NoaWxkIChpbnQgb2ZmKQotIHsKLSAgIGNvbnN0IGNoYXIgKnZhbCA9IGdldGVu diAoIkdMSUJDX1RVTkFCTEVTIik7Ci0gCi0rICBwcmludGYgKCIgICAgWyVkXSBHTElCQ19UVU5B QkxFUyBpcyAlc1xuIiwgb2ZmLCB2YWwpOwotKyAgZmZsdXNoIChzdGRvdXQpOwotICAgaWYgKHZh bCAhPSBOVUxMICYmIHN0cmNtcCAodmFsLCByZXN1bHRzdHJpbmdzW29mZl0pID09IDApCi0gICAg IHJldHVybiAwOwotIAotICAgaWYgKHZhbCAhPSBOVUxMKQotLSAgICBwcmludGYgKCJbJWRdIFVu ZXhwZWN0ZWQgR0xJQkNfVFVOQUJMRVMgVkFMVUUgJXNcbiIsIG9mZiwgdmFsKTsKLSsgICAgcHJp bnRmICgiICAgIFslZF0gVW5leHBlY3RlZCBHTElCQ19UVU5BQkxFUyBWQUxVRSAlcywgZXhwZWN0 ZWQgJXNcbiIsCi0rCSAgICBvZmYsIHZhbCwgcmVzdWx0c3RyaW5nc1tvZmZdKTsKLSsgIGVsc2UK LSsgICAgcHJpbnRmICgiICAgIFslZF0gR0xJQkNfVFVOQUJMRVMgZW52aXJvbm1lbnQgdmFyaWFi bGUgYWJzZW50XG4iLCBvZmYpOwotKwotKyAgZmZsdXNoIChzdGRvdXQpOwotIAotICAgcmV0dXJu IDE7Ci0gfQotQEAgLTEwNiwyMSArMTE3LDI2IEBAIGRvX3Rlc3QgKGludCBhcmdjLCBjaGFyICoq YXJndikKLSAgICAgICBpZiAocmV0ICE9IDApCi0gCWV4aXQgKDEpOwotIAotLSAgICAgIGV4aXQg KEVYSVRfU1VDQ0VTUyk7Ci0rICAgICAgLyogU3BlY2lhbCByZXR1cm4gY29kZSB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgY2hpbGQgZXhlY3V0ZWQgYWxsIHRoZSB3YXkKLSsJIHRocm91Z2guICAqLwot KyAgICAgIGV4aXQgKDQyKTsKLSAgICAgfQotICAgZWxzZQotICAgICB7Ci0tICAgICAgaW50IHJl dCA9IDA7Ci0tCi0gICAgICAgLyogU3Bhd24gdGVzdHMuICAqLwotICAgICAgIGZvciAoaW50IGkg PSAwOyBpIDwgYXJyYXlfbGVuZ3RoICh0ZXN0c3RyaW5ncyk7IGkrKykKLSAJewotIAkgIGNoYXIg YnVmW0lOVF9CVUZTSVpFX0JPVU5EIChpbnQpXTsKLSAKLS0JICBwcmludGYgKCJTcGF3bmVkIHRl c3QgZm9yICVzICglZClcbiIsIHRlc3RzdHJpbmdzW2ldLCBpKTsKLSsJICBwcmludGYgKCJbJWRd IFNwYXduZWQgdGVzdCBmb3IgJXNcbiIsIGksIHRlc3RzdHJpbmdzW2ldKTsKLSAJICBzbnByaW50 ZiAoYnVmLCBzaXplb2YgKGJ1ZiksICIlZFxuIiwgaSk7Ci0rCSAgZmZsdXNoIChzdGRvdXQpOwot IAkgIGlmIChzZXRlbnYgKCJHTElCQ19UVU5BQkxFUyIsIHRlc3RzdHJpbmdzW2ldLCAxKSAhPSAw KQotLQkgICAgZXhpdCAoMSk7Ci0rCSAgICB7Ci0rCSAgICAgIHByaW50ZiAoIiAgICBbJWRdIEZh aWxlZCB0byBzZXQgR0xJQkNfVFVOQUJMRVM6ICVtIiwgaSk7Ci0rCSAgICAgIHN1cHBvcnRfcmVj b3JkX2ZhaWx1cmUgKCk7Ci0rCSAgICAgIGNvbnRpbnVlOwotKwkgICAgfQotIAotIAkgIGludCBz dGF0dXMgPSBzdXBwb3J0X2NhcHR1cmVfc3VicHJvZ3JhbV9zZWxmX3NnaWQgKGJ1Zik7Ci0gCi1A QCAtMTI4LDkgKzE0NCwxNCBAQCBkb190ZXN0IChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gCSAg aWYgKFdFWElUU1RBVFVTIChzdGF0dXMpID09IEVYSVRfVU5TVVBQT1JURUQpCi0gCSAgICByZXR1 cm4gRVhJVF9VTlNVUFBPUlRFRDsKLSAKLS0JICByZXQgfD0gc3RhdHVzOwotKwkgIGlmIChXRVhJ VFNUQVRVUyAoc3RhdHVzKSAhPSA0MikKLSsJICAgIHsKLSsJICAgICAgcHJpbnRmICgiICAgIFsl ZF0gY2hpbGQgZmFpbGVkIHdpdGggc3RhdHVzICVkXG4iLCBpLAotKwkJICAgICAgV0VYSVRTVEFU VVMgKHN0YXR1cykpOwotKwkgICAgICBzdXBwb3J0X3JlY29yZF9mYWlsdXJlICgpOwotKwkgICAg fQotIAl9Ci0tICAgICAgcmV0dXJuIHJldDsKLSsgICAgICByZXR1cm4gMDsKLSAgICAgfQotIH0K LSAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUgYi9zcmNwa2dzL2dsaWJjL3Rl bXBsYXRlCmluZGV4IDZmYWVlM2RiODEzM2ZmLi4yY2I0NmVjMDJiY2QzOCAxMDA2NDQKLS0tIGEv c3JjcGtncy9nbGliYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dsaWJjL3RlbXBsYXRlCkBAIC0x LDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbGliYycKIHBrZ25hbWU9Z2xpYmMK LXZlcnNpb249Mi4zOAotcmV2aXNpb249NgordmVyc2lvbj0yLjM5CityZXZpc2lvbj0xCiBib290 c3RyYXA9eWVzCiBzaG9ydF9kZXNjPSJHTlUgQyBsaWJyYXJ5IgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IExHUEwtMi4xLW9yLWxhdGVyLCBCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0iaHR0cDovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2xpYmMiCiBkaXN0ZmlsZXM9IiR7R05VX1NJVEV9L2xpYmMvZ2xpYmMt JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mYjgyOTk4OTk4YjJiMjk5NjU0NjdiYzFiNjlk MTUyZTljMzA3ZDJjZjMwMWM5ZWFmYjQ1NTViNzcwZWYzZmQyCitjaGVja3N1bT1mNzdiZDQ3Y2Y4 MTcwYzU3MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUwMmQzZGMxZTJkOTI2CiAj IERvIG5vdCBzdHJpcCB0aGVzZSBmaWxlcywgb2JqY29weSBlcnJvcnMgb3V0Lgogbm9zdHJpcF9m aWxlcz0iCiAJWEJTNV9JTFAzMl9PRkZCSUcKCkZyb20gOThjMGRjYjAwMjFmOWJhODMzZjZkMzY3 YTJlYWFhMGNhN2ZkMjgxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8 b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBXZWQsIDYgTWFyIDIwMjQgMTg6MDc6MjMgLTA4MDAK U3ViamVjdDogW1BBVENIIDA0LzE0XSBjcm9zcy1hYXJjaDY0LWxpbnV4LWdudTogcmVidWlsZCBm b3IgZ2xpYmMgMi4zOQoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBs YXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1w bGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggYzRk N2RiYWY0YmExOWMuLjczYWRiZWU3ZTg1MzNiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFh cmNoNjQtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51 eC1nbnUvdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Ny b3NzLWFhcmNoNjQtbGludXgtZ251JwogX2JpbnV0aWxzX3ZlcnNpb249Mi40MQogX2djY192ZXJz aW9uPTEzLjIuMAotX2dsaWJjX3ZlcnNpb249Mi4zOAorX2dsaWJjX3ZlcnNpb249Mi4zOQogX2xp bnV4X3ZlcnNpb249Ni4xCiBwa2duYW1lPWNyb3NzLWFhcmNoNjQtbGludXgtZ251CiB2ZXJzaW9u PTAuMzYKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNv bmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12OC1hIgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhp bmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMgcGtnLWNvbmZpZyIKQEAg LTIyLDcgKzIyLDcgQEAgZGlzdGZpbGVzKz0iICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2ds aWJjX3ZlcnNpb259LnRhci54eiIKIGRpc3RmaWxlcys9IiAke0tFUk5FTF9TSVRFfS9rZXJuZWwv diR7X2xpbnV4X3ZlcnNpb24lJS4qfS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIK IGNoZWNrc3VtPSJhZTlhNTc4OWUyMzQ1OWU1OTYwNmU2NzE0NzIzZjJkM2ZmYzMxYzAzMTc0MTkx ZWYwZDAxNWJkZjA2MDA3NDUwCiAgZTI3NWU3NjQ0MmE2MDY3MzQxYTI3ZjA0YzVjNmI4M2Q4NjEz MTQ0MDA0YzA0MTM1Mjg4NjNkYzZiNWM3NDNkYQotIGZiODI5OTg5OThiMmIyOTk2NTQ2N2JjMWI2 OWQxNTJlOWMzMDdkMmNmMzAxYzllYWZiNDU1NWI3NzBlZjNmZDIKKyBmNzdiZDQ3Y2Y4MTcwYzU3 MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUwMmQzZGMxZTJkOTI2CiAgMmNhMWYx NzA1MWE0MzBmNmZlZDExOTZlNDk1MjcxNzUwNzE3MWFjZmQ5N2Q5NjU3NzIxMjUwMjcwM2IyNWRl YiIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gNzUwMmEzMDdmMzY5MmU1YjQ3OTk4NzUwY2NjNTk1NDZk OTc3MTMyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFA Z21haWwuY29tPgpEYXRlOiBXZWQsIDYgTWFyIDIwMjQgMTg6MDc6MjMgLTA4MDAKU3ViamVjdDog W1BBVENIIDA1LzE0XSBjcm9zcy1hcm0tbGludXgtZ251ZWFiaTogcmVidWlsZCBmb3IgZ2xpYmMg Mi4zOQoKLS0tCiBzcmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIHwgNiAr KystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkvdGVtcGxhdGUKaW5kZXggZWZkZTEwMTdjYjg2 NGIuLmUzY2M0YTI4YTNkYzVlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1n bnVlYWJpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmkvdGVt cGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1s aW51eC1nbnVlYWJpJwogX2JpbnV0aWxzX3ZlcnNpb249Mi40MQogX2djY192ZXJzaW9uPTEzLjIu MAotX2dsaWJjX3ZlcnNpb249Mi4zOAorX2dsaWJjX3ZlcnNpb249Mi4zOQogX2xpbnV4X3ZlcnNp b249Ni4xCiBwa2duYW1lPWNyb3NzLWFybS1saW51eC1nbnVlYWJpCiB2ZXJzaW9uPTAuMzYKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9h cmdzPSItLXdpdGgtYXJjaD1hcm12NXRlIC0td2l0aC1mbG9hdD1zb2Z0CiAgLS1lbmFibGUtYXV0 b2xpbmstbGliYXRvbWljIgpAQCAtMjMsNyArMjMsNyBAQCBkaXN0ZmlsZXMrPSIgJHtHTlVfU0lU RX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlzdGZpbGVzKz0iICR7 S0VSTkVMX1NJVEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9LngvbGludXgtJHtfbGlu dXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5ZTU5NjA2ZTY3MTQ3 MjNmMmQzZmZjMzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1ZTc2NDQyYTYwNjcz NDFhMjdmMDRjNWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0M2RhCi0gZmI4Mjk5 ODk5OGIyYjI5OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0NTU1Yjc3MGVmM2Zk MgorIGY3N2JkNDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIwZDMyNTljNjRjNTAy ZDNkYzFlMmQ5MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3NTA3MTcxYWNmZDk3 ZDk2NTc3MjEyNTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSA2YWQ5N2Q0ZTI5MmY5 YzcxZGM2NjBhOWFjNTUzMTJkMDY0NjVkYWI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBNYXIgMjAyNCAxODow NzoyMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTRdIGNyb3NzLWFybS1saW51eC1nbnVlYWJp aGY6IHJlYnVpbGQgZm9yIGdsaWJjIDIuMzkKCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgt Z251ZWFiaWhmL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hcm0tbGlu dXgtZ251ZWFiaWhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhm L3RlbXBsYXRlCmluZGV4IGRkNTYyY2ViNDQ5ODYxLi4wOWRlNjQyMjA4YTJjOCAxMDA2NDQKLS0t IGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtYXJtLWxpbnV4LWdudWVhYmloZicKIF9iaW51dGls c192ZXJzaW9uPTIuNDEKIF9nY2NfdmVyc2lvbj0xMy4yLjAKLV9nbGliY192ZXJzaW9uPTIuMzgK K19nbGliY192ZXJzaW9uPTIuMzkKIF9saW51eF92ZXJzaW9uPTYuMQogcGtnbmFtZT1jcm9zcy1h cm0tbGludXgtZ251ZWFiaWhmCiB2ZXJzaW9uPTAuMzYKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIK IGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12 NiAtLXdpdGgtZnB1PXZmcCAtLXdpdGgtZmxvYXQ9aGFyZAogIC0tZW5hYmxlLWF1dG9saW5rLWxp YmF0b21pYyIKQEAgLTIzLDcgKzIzLDcgQEAgZGlzdGZpbGVzKz0iICR7R05VX1NJVEV9L2dsaWJj L2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54eiIKIGRpc3RmaWxlcys9IiAke0tFUk5FTF9T SVRFfS9rZXJuZWwvdiR7X2xpbnV4X3ZlcnNpb24lJS4qfS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNp b259LnRhci54eiIKIGNoZWNrc3VtPSJhZTlhNTc4OWUyMzQ1OWU1OTYwNmU2NzE0NzIzZjJkM2Zm YzMxYzAzMTc0MTkxZWYwZDAxNWJkZjA2MDA3NDUwCiAgZTI3NWU3NjQ0MmE2MDY3MzQxYTI3ZjA0 YzVjNmI4M2Q4NjEzMTQ0MDA0YzA0MTM1Mjg4NjNkYzZiNWM3NDNkYQotIGZiODI5OTg5OThiMmIy OTk2NTQ2N2JjMWI2OWQxNTJlOWMzMDdkMmNmMzAxYzllYWZiNDU1NWI3NzBlZjNmZDIKKyBmNzdi ZDQ3Y2Y4MTcwYzU3MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUwMmQzZGMxZTJk OTI2CiAgMmNhMWYxNzA1MWE0MzBmNmZlZDExOTZlNDk1MjcxNzUwNzE3MWFjZmQ5N2Q5NjU3NzIx MjUwMjcwM2IyNWRlYiIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gOTcxNzBjNzgwYTAzY2JkMDM2NzM3 ZGQ4YzFmYzUzMDVlOTJiNjkzNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYz OSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBXZWQsIDYgTWFyIDIwMjQgMTg6MDc6MjMgLTA4 MDAKU3ViamVjdDogW1BBVENIIDA3LzE0XSBjcm9zcy1hcm12N2wtbGludXgtZ251ZWFiaWhmOiBy ZWJ1aWxkIGZvciBnbGliYyAyLjM5CgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdu dWVhYmloZi90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxp bnV4LWdudWVhYmloZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVh YmloZi90ZW1wbGF0ZQppbmRleCA2MGM2NzhmM2Y1YWE3NS4uY2VhZTY5NzFlZTQ4NGMgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKQEAgLTEsMTEg KzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybXY3bC1saW51eC1nbnVlYWJp aGYnCiBfYmludXRpbHNfdmVyc2lvbj0yLjQxCiBfZ2NjX3ZlcnNpb249MTMuMi4wCi1fZ2xpYmNf dmVyc2lvbj0yLjM4CitfZ2xpYmNfdmVyc2lvbj0yLjM5CiBfbGludXhfdmVyc2lvbj02LjEKIHBr Z25hbWU9Y3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZgogdmVyc2lvbj0wLjM2Ci1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0i LS13aXRoLWFyY2g9YXJtdjctYSAtLXdpdGgtZnB1PXZmcHYzIC0td2l0aC1mbG9hdD1oYXJkIgog aG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5 dGhvbjMgcGtnLWNvbmZpZyIKQEAgLTIyLDcgKzIyLDcgQEAgZGlzdGZpbGVzKz0iICR7R05VX1NJ VEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54eiIKIGRpc3RmaWxlcys9IiAk e0tFUk5FTF9TSVRFfS9rZXJuZWwvdiR7X2xpbnV4X3ZlcnNpb24lJS4qfS54L2xpbnV4LSR7X2xp bnV4X3ZlcnNpb259LnRhci54eiIKIGNoZWNrc3VtPSJhZTlhNTc4OWUyMzQ1OWU1OTYwNmU2NzE0 NzIzZjJkM2ZmYzMxYzAzMTc0MTkxZWYwZDAxNWJkZjA2MDA3NDUwCiAgZTI3NWU3NjQ0MmE2MDY3 MzQxYTI3ZjA0YzVjNmI4M2Q4NjEzMTQ0MDA0YzA0MTM1Mjg4NjNkYzZiNWM3NDNkYQotIGZiODI5 OTg5OThiMmIyOTk2NTQ2N2JjMWI2OWQxNTJlOWMzMDdkMmNmMzAxYzllYWZiNDU1NWI3NzBlZjNm ZDIKKyBmNzdiZDQ3Y2Y4MTcwYzU3MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUw MmQzZGMxZTJkOTI2CiAgMmNhMWYxNzA1MWE0MzBmNmZlZDExOTZlNDk1MjcxNzUwNzE3MWFjZmQ5 N2Q5NjU3NzIxMjUwMjcwM2IyNWRlYiIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gZTJjNjZiMmYyMTk0 MjVmMTU3MGNiMzkxNTUwMGQxZjNhN2MwNjkyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBXZWQsIDYgTWFyIDIwMjQgMTg6 MDc6MjMgLTA4MDAKU3ViamVjdDogW1BBVENIIDA4LzE0XSBjcm9zcy1pNjg2LXBjLWxpbnV4LWdu dTogcmVidWlsZCBmb3IgZ2xpYmMgMi4zOQoKLS0tCiBzcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGlu dXgtZ251L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxp bnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxh dGUKaW5kZXggN2E4MmMzMjhkNGE5MzUuLjMwMzIxZGFkNjcxZjBmIDEwMDY0NAotLS0gYS9zcmNw a2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3Mt aTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2Nyb3NzLWk2ODYtcGMtbGludXgtZ251JwogX2JpbnV0aWxzX3ZlcnNpb249Mi40 MQogX2djY192ZXJzaW9uPTEzLjIuMAotX2dsaWJjX3ZlcnNpb249Mi4zOAorX2dsaWJjX3ZlcnNp b249Mi4zOQogX2xpbnV4X3ZlcnNpb249Ni4xCiBwa2duYW1lPWNyb3NzLWk2ODYtcGMtbGludXgt Z251CiB2ZXJzaW9uPTAuMzYKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXZv aWQtY3Jvc3MKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZs ZXggcGVybCBweXRob24zIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iaXNsLWRldmVsIGxpYm1w Yy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbApAQCAtMjEsNyArMjEsNyBAQCBkaXN0ZmlsZXMr PSIgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlz dGZpbGVzKz0iICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9Lngv bGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5 ZTU5NjA2ZTY3MTQ3MjNmMmQzZmZjMzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1 ZTc2NDQyYTYwNjczNDFhMjdmMDRjNWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0 M2RhCi0gZmI4Mjk5ODk5OGIyYjI5OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0 NTU1Yjc3MGVmM2ZkMgorIGY3N2JkNDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIw ZDMyNTljNjRjNTAyZDNkYzFlMmQ5MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3 NTA3MTcxYWNmZDk3ZDk2NTc3MjEyNTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSA1 ODlkNGQ4N2ExMDBjZDE3MTcxZjkxN2MxMzgxNDBlNGFiMzgyZGQ5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBN YXIgMjAyNCAxODowNzoyNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMTRdIGNyb3NzLXBvd2Vy cGMtbGludXgtZ251OiByZWJ1aWxkIGZvciBnbGliYyAyLjM5CgotLS0KIHNyY3BrZ3MvY3Jvc3Mt cG93ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3Nz LXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4 LWdudS90ZW1wbGF0ZQppbmRleCAzYTE0YTYyYmNlYzI5NS4uZWMxNzUzNDE0Y2Q1YWQgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYy1saW51eC1nbnUnCiBfYmludXRpbHNf dmVyc2lvbj0yLjQxCiBfZ2NjX3ZlcnNpb249MTMuMi4wCi1fZ2xpYmNfdmVyc2lvbj0yLjM4Citf Z2xpYmNfdmVyc2lvbj0yLjM5CiBfbGludXhfdmVyc2lvbj02LjEKIHBrZ25hbWU9Y3Jvc3MtcG93 ZXJwYy1saW51eC1nbnUKIHZlcnNpb249MC4zNgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVp bGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAt LWRpc2FibGUtdnRhYmxlLXZlcmlmeQogIC0tZW5hYmxlLWF1dG9saW5rLWxpYmF0b21pYyIKQEAg LTIzLDcgKzIzLDcgQEAgZGlzdGZpbGVzKz0iICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2ds aWJjX3ZlcnNpb259LnRhci54eiIKIGRpc3RmaWxlcys9IiAke0tFUk5FTF9TSVRFfS9rZXJuZWwv diR7X2xpbnV4X3ZlcnNpb24lJS4qfS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIK IGNoZWNrc3VtPSJhZTlhNTc4OWUyMzQ1OWU1OTYwNmU2NzE0NzIzZjJkM2ZmYzMxYzAzMTc0MTkx ZWYwZDAxNWJkZjA2MDA3NDUwCiAgZTI3NWU3NjQ0MmE2MDY3MzQxYTI3ZjA0YzVjNmI4M2Q4NjEz MTQ0MDA0YzA0MTM1Mjg4NjNkYzZiNWM3NDNkYQotIGZiODI5OTg5OThiMmIyOTk2NTQ2N2JjMWI2 OWQxNTJlOWMzMDdkMmNmMzAxYzllYWZiNDU1NWI3NzBlZjNmZDIKKyBmNzdiZDQ3Y2Y4MTcwYzU3 MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUwMmQzZGMxZTJkOTI2CiAgMmNhMWYx NzA1MWE0MzBmNmZlZDExOTZlNDk1MjcxNzUwNzE3MWFjZmQ5N2Q5NjU3NzIxMjUwMjcwM2IyNWRl YiIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gY2ZjNmY3MzEwYzUwZDFmZjIzZGFlODliMzhjNWQwYzMx OTAyZDU0NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFA Z21haWwuY29tPgpEYXRlOiBXZWQsIDYgTWFyIDIwMjQgMTg6MDc6MjQgLTA4MDAKU3ViamVjdDog W1BBVENIIDEwLzE0XSBjcm9zcy1wb3dlcnBjNjQtbGludXgtZ251OiByZWJ1aWxkIGZvciBnbGli YyAyLjM5CgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8 IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCBmNjY0 ZjFkYmM3NjRhMi4uNWFiNGFjZWM0NWZkYjYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtcG93 ZXJwYzY0LWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1s aW51eC1nbnUvdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2Nyb3NzLXBvd2VycGM2NC1saW51eC1nbnUnCiBfYmludXRpbHNfdmVyc2lvbj0yLjQxCiBfZ2Nj X3ZlcnNpb249MTMuMi4wCi1fZ2xpYmNfdmVyc2lvbj0yLjM4CitfZ2xpYmNfdmVyc2lvbj0yLjM5 CiBfbGludXhfdmVyc2lvbj02LjEKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJwYzY0LWxpbnV4LWdudQog dmVyc2lvbj0wLjM2Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT12b2lkLWNy b3NzCiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUt dmVyaWZ5IC0td2l0aC1hYmk9ZWxmdjIKICAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGMtbGludXgg LS1lbmFibGUtYXV0b2xpbmstbGliYXRvbWljIgpAQCAtMjMsNyArMjMsNyBAQCBkaXN0ZmlsZXMr PSIgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6IgogZGlz dGZpbGVzKz0iICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92JHtfbGludXhfdmVyc2lvbiUlLip9Lngv bGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgogY2hlY2tzdW09ImFlOWE1Nzg5ZTIzNDU5 ZTU5NjA2ZTY3MTQ3MjNmMmQzZmZjMzFjMDMxNzQxOTFlZjBkMDE1YmRmMDYwMDc0NTAKICBlMjc1 ZTc2NDQyYTYwNjczNDFhMjdmMDRjNWM2YjgzZDg2MTMxNDQwMDRjMDQxMzUyODg2M2RjNmI1Yzc0 M2RhCi0gZmI4Mjk5ODk5OGIyYjI5OTY1NDY3YmMxYjY5ZDE1MmU5YzMwN2QyY2YzMDFjOWVhZmI0 NTU1Yjc3MGVmM2ZkMgorIGY3N2JkNDdjZjgxNzBjNTczNjVhZTdiZjg2Njk2YzExOGFkYjNiMTIw ZDMyNTljNjRjNTAyZDNkYzFlMmQ5MjYKICAyY2ExZjE3MDUxYTQzMGY2ZmVkMTE5NmU0OTUyNzE3 NTA3MTcxYWNmZDk3ZDk2NTc3MjEyNTAyNzAzYjI1ZGViIgogbm9jcm9zcz15ZXMKIAoKRnJvbSAy NjA5N2MzYTlhN2I4NjQ3NzcxMmQ5MTRlYWU3YjM4NGI1Y2YxMjVkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgNiBN YXIgMjAyNCAxODowNzoyNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMTRdIGNyb3NzLXBvd2Vy cGM2NGxlLWxpbnV4LWdudTogcmVidWlsZCBmb3IgZ2xpYmMgMi4zOQoKLS0tCiBzcmNwa2dzL2Ny b3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1w b3dlcnBjNjRsZS1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggZTBjYTZlOWNlMmQwMWIuLjFmZTll YmY2ZDQ3ZmI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdu dS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1w bGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJw YzY0bGUtbGludXgtZ251JwogX2JpbnV0aWxzX3ZlcnNpb249Mi40MQogX2djY192ZXJzaW9uPTEz LjIuMAotX2dsaWJjX3ZlcnNpb249Mi4zOAorX2dsaWJjX3ZlcnNpb249Mi4zOQogX2xpbnV4X3Zl cnNpb249Ni4xCiBwa2duYW1lPWNyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudQogdmVyc2lvbj0w LjM2Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25m aWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IC0t d2l0aC1hYmk9ZWxmdjIKICAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1saW51eCAtLWVuYWJs ZS1hdXRvbGluay1saWJhdG9taWMiCkBAIC0yMyw3ICsyMyw3IEBAIGRpc3RmaWxlcys9IiAke0dO VV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50YXIueHoiCiBkaXN0ZmlsZXMr PSIgJHtLRVJORUxfU0lURX0va2VybmVsL3Yke19saW51eF92ZXJzaW9uJSUuKn0ueC9saW51eC0k e19saW51eF92ZXJzaW9ufS50YXIueHoiCiBjaGVja3N1bT0iYWU5YTU3ODllMjM0NTllNTk2MDZl NjcxNDcyM2YyZDNmZmMzMWMwMzE3NDE5MWVmMGQwMTViZGYwNjAwNzQ1MAogIGUyNzVlNzY0NDJh NjA2NzM0MWEyN2YwNGM1YzZiODNkODYxMzE0NDAwNGMwNDEzNTI4ODYzZGM2YjVjNzQzZGEKLSBm YjgyOTk4OTk4YjJiMjk5NjU0NjdiYzFiNjlkMTUyZTljMzA3ZDJjZjMwMWM5ZWFmYjQ1NTViNzcw ZWYzZmQyCisgZjc3YmQ0N2NmODE3MGM1NzM2NWFlN2JmODY2OTZjMTE4YWRiM2IxMjBkMzI1OWM2 NGM1MDJkM2RjMWUyZDkyNgogIDJjYTFmMTcwNTFhNDMwZjZmZWQxMTk2ZTQ5NTI3MTc1MDcxNzFh Y2ZkOTdkOTY1NzcyMTI1MDI3MDNiMjVkZWIiCiBub2Nyb3NzPXllcwogCgpGcm9tIDFiZTUwY2Zk YTE2MmRhYzRjMzU5NTBiYTY4NGU1NWQ1NjYxZDc2ZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCA2IE1hciAyMDI0 IDE4OjA3OjI0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMi8xNF0gY3Jvc3MtcG93ZXJwY2xlLWxp bnV4LWdudTogcmVidWlsZCBmb3IgZ2xpYmMgMi4zOQoKLS0tCiBzcmNwa2dzL2Nyb3NzLXBvd2Vy cGNsZS1saW51eC1nbnUvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBv d2VycGNsZS1saW51eC1nbnUvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51 eC1nbnUvdGVtcGxhdGUKaW5kZXggZjE4MzcwYTMwNDg3NWIuLjNhMGNkMGQ2YmI0YjRkIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1nbnUvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDExICsxLDEx IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjbGUtbGludXgtZ251JwogX2Jp bnV0aWxzX3ZlcnNpb249Mi40MQogX2djY192ZXJzaW9uPTEzLjIuMAotX2dsaWJjX3ZlcnNpb249 Mi4zOAorX2dsaWJjX3ZlcnNpb249Mi4zOQogX2xpbnV4X3ZlcnNpb249Ni4xCiBwa2duYW1lPWNy b3NzLXBvd2VycGNsZS1saW51eC1nbnUKIHZlcnNpb249MC4zNgotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNl Y3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeQogIC0tZW5hYmxlLWF1dG9saW5rLWxpYmF0 b21pYyIKQEAgLTI0LDcgKzI0LDcgQEAgZGlzdGZpbGVzPSIKICAke0tFUk5FTF9TSVRFfS9rZXJu ZWwvdiR7X2xpbnV4X3ZlcnNpb24lJS4qfS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54 eiIKIGNoZWNrc3VtPSJhZTlhNTc4OWUyMzQ1OWU1OTYwNmU2NzE0NzIzZjJkM2ZmYzMxYzAzMTc0 MTkxZWYwZDAxNWJkZjA2MDA3NDUwCiAgZTI3NWU3NjQ0MmE2MDY3MzQxYTI3ZjA0YzVjNmI4M2Q4 NjEzMTQ0MDA0YzA0MTM1Mjg4NjNkYzZiNWM3NDNkYQotIGZiODI5OTg5OThiMmIyOTk2NTQ2N2Jj MWI2OWQxNTJlOWMzMDdkMmNmMzAxYzllYWZiNDU1NWI3NzBlZjNmZDIKKyBmNzdiZDQ3Y2Y4MTcw YzU3MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUwMmQzZGMxZTJkOTI2CiAgMmNh MWYxNzA1MWE0MzBmNmZlZDExOTZlNDk1MjcxNzUwNzE3MWFjZmQ5N2Q5NjU3NzIxMjUwMjcwM2Iy NWRlYiIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gMTEzNjU0NTgxMGY0OGYzNTkzYTFmOTM5OGUzNDFj MjlhMjM0YWY3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYz OTFAZ21haWwuY29tPgpEYXRlOiBXZWQsIDYgTWFyIDIwMjQgMTg6MDc6MjQgLTA4MDAKU3ViamVj dDogW1BBVENIIDEzLzE0XSBjcm9zcy1yaXNjdjY0LWxpbnV4LWdudTogcmVidWlsZCBmb3IgZ2xp YmMgMi4zOQoKLS0tCiBzcmNwa2dzL2Nyb3NzLXJpc2N2NjQtbGludXgtZ251L3RlbXBsYXRlIHwg NiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1yaXNjdjY0LWxpbnV4LWdudS90ZW1wbGF0ZSBi L3NyY3BrZ3MvY3Jvc3MtcmlzY3Y2NC1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggNjkwYjVkNjE4 NDIzOTUuLjVkNTZjZTg1M2Q5NjA2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXJpc2N2NjQt bGludXgtZ251L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcmlzY3Y2NC1saW51eC1nbnUv dGVtcGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXJp c2N2NjQtbGludXgtZ251JwogX2JpbnV0aWxzX3ZlcnNpb249Mi40MQogX2djY192ZXJzaW9uPTEz LjIuMAotX2dsaWJjX3ZlcnNpb249Mi4zOAorX2dsaWJjX3ZlcnNpb249Mi4zOQogX2xpbnV4X3Zl cnNpb249Ni4xCiBwa2duYW1lPWNyb3NzLXJpc2N2NjQtbGludXgtZ251CiB2ZXJzaW9uPTAuMzYK LXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3Vy ZV9hcmdzPSItLXdpdGgtYXJjaD1ydjY0Z2MgLS13aXRoLWFiaT1scDY0ZCAtLWVuYWJsZS1hdXRv bGluay1saWJhdG9taWMgLS1kaXNhYmxlLW11bHRpbGliIgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhp bmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMgcGtnLWNvbmZpZyIKQEAg LTIyLDcgKzIyLDcgQEAgZGlzdGZpbGVzKz0iICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2ds aWJjX3ZlcnNpb259LnRhci54eiIKIGRpc3RmaWxlcys9IiAke0tFUk5FTF9TSVRFfS9rZXJuZWwv diR7X2xpbnV4X3ZlcnNpb24lJS4qfS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIK IGNoZWNrc3VtPSJhZTlhNTc4OWUyMzQ1OWU1OTYwNmU2NzE0NzIzZjJkM2ZmYzMxYzAzMTc0MTkx ZWYwZDAxNWJkZjA2MDA3NDUwCiAgZTI3NWU3NjQ0MmE2MDY3MzQxYTI3ZjA0YzVjNmI4M2Q4NjEz MTQ0MDA0YzA0MTM1Mjg4NjNkYzZiNWM3NDNkYQotIGZiODI5OTg5OThiMmIyOTk2NTQ2N2JjMWI2 OWQxNTJlOWMzMDdkMmNmMzAxYzllYWZiNDU1NWI3NzBlZjNmZDIKKyBmNzdiZDQ3Y2Y4MTcwYzU3 MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUwMmQzZGMxZTJkOTI2CiAgMmNhMWYx NzA1MWE0MzBmNmZlZDExOTZlNDk1MjcxNzUwNzE3MWFjZmQ5N2Q5NjU3NzIxMjUwMjcwM2IyNWRl YiIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gMDc5ZDhiYmM0YTFiZWI3YzJhMTc2ODhhYjdkZjk5Nzk5 OTUzMDRlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFA Z21haWwuY29tPgpEYXRlOiBXZWQsIDYgTWFyIDIwMjQgMTg6MDc6MjQgLTA4MDAKU3ViamVjdDog W1BBVENIIDE0LzE0XSBjcm9zcy14ODZfNjQtbGludXgtZ251OiByZWJ1aWxkIGZvciBnbGliYyAy LjM5CgotLS0KIHNyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LWdudS90ZW1wbGF0ZSB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3Br Z3MvY3Jvc3MteDg2XzY0LWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCA0ZmIzNWNiNmY3MzZjYS4u OGNjYTgzMjg5NmM0ZDQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LWdu dS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUK QEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXg4Nl82NC1saW51 eC1nbnUnCiBfYmludXRpbHNfdmVyc2lvbj0yLjQxCiBfZ2NjX3ZlcnNpb249MTMuMi4wCi1fZ2xp YmNfdmVyc2lvbj0yLjM4CitfZ2xpYmNfdmVyc2lvbj0yLjM5CiBfbGludXhfdmVyc2lvbj02LjEK IHBrZ25hbWU9Y3Jvc3MteDg2XzY0LWxpbnV4LWdudQogdmVyc2lvbj0wLjM2Ci1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBob3N0bWFrZWRlcGVuZHM9InRl eGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyBwa2ctY29uZmlnIgog bWFrZWRlcGVuZHM9ImlzbC1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwK QEAgLTIxLDcgKzIxLDcgQEAgZGlzdGZpbGVzKz0iICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7 X2dsaWJjX3ZlcnNpb259LnRhci54eiIKIGRpc3RmaWxlcys9IiAke0tFUk5FTF9TSVRFfS9rZXJu ZWwvdiR7X2xpbnV4X3ZlcnNpb24lJS4qfS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54 eiIKIGNoZWNrc3VtPSJhZTlhNTc4OWUyMzQ1OWU1OTYwNmU2NzE0NzIzZjJkM2ZmYzMxYzAzMTc0 MTkxZWYwZDAxNWJkZjA2MDA3NDUwCiAgZTI3NWU3NjQ0MmE2MDY3MzQxYTI3ZjA0YzVjNmI4M2Q4 NjEzMTQ0MDA0YzA0MTM1Mjg4NjNkYzZiNWM3NDNkYQotIGZiODI5OTg5OThiMmIyOTk2NTQ2N2Jj MWI2OWQxNTJlOWMzMDdkMmNmMzAxYzllYWZiNDU1NWI3NzBlZjNmZDIKKyBmNzdiZDQ3Y2Y4MTcw YzU3MzY1YWU3YmY4NjY5NmMxMThhZGIzYjEyMGQzMjU5YzY0YzUwMmQzZGMxZTJkOTI2CiAgMmNh MWYxNzA1MWE0MzBmNmZlZDExOTZlNDk1MjcxNzUwNzE3MWFjZmQ5N2Q5NjU3NzIxMjUwMjcwM2Iy NWRlYiIKIG5vY3Jvc3M9eWVzCiAK --===============5482845153302003237==--