From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id AEAAA25B9C for ; Mon, 4 Jun 2018 12:26:15 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w0AORghWmbCq for ; Mon, 4 Jun 2018 12:26:15 -0400 (EDT) Received: from f369.i.mail.ru (f369.i.mail.ru [217.69.141.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 4DEB025B54 for ; Mon, 4 Jun 2018 12:26:14 -0400 (EDT) From: =?UTF-8?B?TmlraXRhIFBldHRpaw==?= Subject: [tarantool-patches] =?UTF-8?B?W1BBVENIXSBzcWw6IHJld29yayBWSUVXIGludGVybmFscw==?= MIME-Version: 1.0 Date: Mon, 04 Jun 2018 19:26:11 +0300 Message-ID: <1528129571.147907906@f369.i.mail.ru> Content-Type: multipart/mixed; boundary="----Hu7nkRjmxxkTgEUf4slJyjI3dGUjl9qh-XWeaTDGXsQfqEezc-1528129571" Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: =?UTF-8?B?dGFyYW50b29sLXBhdGNoZXM=?= Cc: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= ------Hu7nkRjmxxkTgEUf4slJyjI3dGUjl9qh-XWeaTDGXsQfqEezc-1528129571 Content-Type: multipart/alternative; boundary="--ALT--Hu7nkRjmxxkTgEUf4slJyjI3dGUjl9qh1528129571" ----ALT--Hu7nkRjmxxkTgEUf4slJyjI3dGUjl9qh1528129571 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CioqKgpNZWFud2hpbGUgaW4gVWtyYWluZSBtYWlsLnJ1IHNlcnZlcnMgYXJlIGJsb2NrZWQgc28g SSBjYW4ndCB1c2UgbXkKcmVndWxhciBtYWlsIGNsaWVudCBvciBnaXQgc2VuZC1lbWFpbC4gVGh1 cywgSSBhbSBqdXN0IGF0dGFjaGluZyBwYXRjaAphcyBmaWxlLiBUaGFuayB5b3UgZm9yIHVuZGVy c3RhbmRpbmcuCioqKg== ----ALT--Hu7nkRjmxxkTgEUf4slJyjI3dGUjl9qh1528129571 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxwPioqKjxicj5NZWFud2hpbGUgaW4gVWtyYWluZSBtYWlsLnJ1IHNlcnZl cnMgYXJlIGJsb2NrZWQgc28gSSBjYW4ndCB1c2UgbXk8YnI+cmVndWxhciBtYWlsIGNsaWVudCBv ciBnaXQgc2VuZC1lbWFpbC4gVGh1cywgSSBhbSBqdXN0IGF0dGFjaGluZyBwYXRjaDxicj5hcyBm aWxlLiBUaGFuayB5b3UgZm9yIHVuZGVyc3RhbmRpbmcuPGJyPioqKjwvcD48L0JPRFk+PC9IVE1M Pgo= ----ALT--Hu7nkRjmxxkTgEUf4slJyjI3dGUjl9qh1528129571-- ------Hu7nkRjmxxkTgEUf4slJyjI3dGUjl9qh-XWeaTDGXsQfqEezc-1528129571 Content-Type: application/x-patch; name="=?UTF-8?B?MDAwMS1zcWwtcmV3b3JrLVZJRVctaW50ZXJuYWxzLnBhdGNo?=" Content-Disposition: attachment; filename="=?UTF-8?B?MDAwMS1zcWwtcmV3b3JrLVZJRVctaW50ZXJuYWxzLnBhdGNo?=" Content-Transfer-Encoding: base64 RnJvbSBiNDRlMTliYmU4ODI5YjZkYmZkNzk2ZDViMDkxYTk1ZjA4ZGJhYWJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgUGV0dGlrIDxrb3JhYmxldkB0YXJhbnRvb2wub3Jn PgpEYXRlOiBXZWQsIDMwIE1heSAyMDE4IDE3OjE4OjI0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0g c3FsOiByZXdvcmsgVklFVyBpbnRlcm5hbHMKClRoaXMgcGF0Y2ggc2lnbmlmaWNhbnRseSByZXdv cmtzIFZJRVcgbWVjaGFuaXNtcy4KRmlyc3RseSwgbmFtZXMgcmVzb2x1dGlvbiBmb3IgVklFVyBu b3cgb2NjdXJzIGR1cmluZyBpdHMgY3JlYXRpb24uCkluIG90aGVyIHdvcmRzLCB3ZSBjYW4ndCBy dW4gZm9sbG93aW5nIGNvZGUsIHNpbmNlIG5hbWUgVDEgZG9lc24ndCBleGlzdAphdCB0aGUgbW9t ZW50IG9mIFYxIGNyZWF0aW9uOgoKQ1JFQVRFIFZJRVcgdjEgQVMgU0VMRUNUICogRlJPTSB0MTsK Q1JFQVRFIFRBQkxFIHQxKGlkIFBSSU1BUlkgS0VZKTsKCk5vdywgdGFibGUgdDEgbXVzdCBiZSBj cmVhdGVkIGJlZm9yZSB2aWV3LiBBcyBhIHJlc3VsdCwgbm8gY2lyY3VsYXJseQpkZWZpbmVkIHZp ZXdzIGFyZSBhbGxvd2VkLiBNb3Jlb3ZlciwgaXQgbWVhbnMgdGhhdCBzcGFjZSByZXByZXNlbnRp bmcKdmlldyBpcyBjcmVhdGVkIHdpdGggYXBwcm9wcmlhdGUgZmllbGQgbmFtZXMsIHR5cGVzLCBj b2xsYXRpb25zIGV0Yy4KCkFsc28sIGludHJvZHVjZWQgdmlldyByZWZlcmVuY2UgY291bnRlciBm b3IgZWFjaCBzcGFjZS4gSXQgaXMKaW5jcmVtZW50ZWQgZm9yIGVhY2ggc3BhY2UgcGFydGljaXBh dGluZyBpbiBzZWxlY3Qgc3RhdGVtZW50LgpGb3IgaW5zdGFjZToKCkNSRUFURSBWSUVXIHYxIEFT IFNFTEVDVCAqIEZST00gKFNFTEVDVCAqIEZST00gdDEsIHQyKTsKCkluIHRoaXMgY2FzZSwgdmll dyByZWZlcmVuY2UgY291bnRlciBpcyBpbmNyZWFzZWQgZm9yIHNwYWNlcyBUMSBhbmQgVDIuClNp bWlsYXJseSwgc3VjaCBjb3VudGVyIGlzIGRlY3JlbWVudGVkIGZvciBhbGwgZGVwZW5kZW50IHNw YWNlcyB3aGVuClZJRVcgaXMgZHJvcHBlZC4gIFRvIHN1cHBvcnQgc3VjaCBiZWhhdmlvciwgYXV4 aWxpYXJ5Cm9uX2NvbW1pdCB0cmlnZ2VycyBhcmUgYWRkZWQuIEhvd2V2ZXIsIGl0IGlzIHN0aWxs IG5vdCBlbm91Z2gsIHNpbmNlCmJlZm9yZSBkcm9wcGluZyBzcGFjZSBpdHNlbGYsIHdlIG11c3Qg ZHJvcCBzZWNvbmRhcnkgaW5kZXhlcywgY2xlYXIKX3NlcXVlbmNlIHNwYWNlIGV0Yy4gU3VjaCBj aGFuZ2VzIGNhbid0IGJlIHJvbGxiYWNrZWQgKGR1ZSB0byB0aGUgbGFjawpvZiB0cmFuc2FjdGlv bmFsIERETCksIHNvIGJlZm9yZSBleGVjdXRpbmcgRFJPUCByb3V0aW5lLCBzcGVjaWFsIG9wY29k ZQpPUF9DaGVja1ZpZXdSZWZlcmVuY2VzIGNoZWNrcyB2aWV3IHJlZmVyZW5jZSBjb3VudGVyIGZv ciBzcGFjZSB0byBiZQpkcm9wcGVkLgoKRmluYWxseSwgd2UgZG9uJ3QgaG9sZCBzdHJ1Y3QgU2Vs ZWN0IGluIHN0cnVjdCBUYWJsZSBvciBhbnl3aGVyZSBlbHNlCmFueW1vcmUuICBJbnN0ZWFkLCAn Q1JFQVRFIFZJRVcgQVMgU0VMRUNUIC4uLicgc3RyaW5nIGlzIHN0b3JlZCBpbgpkZWYtPm9wdHMu c3FsLiAgQXQgY29tcGlsYXRpb24gdGltZSBvZiBxdWVyeSBvbiB2aWV3CihzdWNoIGFzICdTRUxF Q1QgKiBGUk9NIHYxOycpIHRoaXMgc3RyaW5nIGlzIHBhcnNlZCBvbmNlIGFuZCBsb2FkZWQKaW50 byBzdHJ1Y3QgU2VsZWN0LCB3aGljaCBpbiB0dXJuIGlzIHVzZWQgYXMgYmVmb3JlLgoKRml4ZWQg dGVzdHMgd2hlcmUgdmlldyB3YXMgY3JlYXRlZCBwcmlvciB0byByZWZlcmVuY2VkIHRhYmxlLgoK Q2xvc2VzICMzNDI5LCAjMzM2OCwgIzMzMDAKLS0tCgpCcmFuY2g6IGh0dHBzOi8vZ2l0aHViLmNv bS90YXJhbnRvb2wvdGFyYW50b29sL3RyZWUvbnAvcmV3b3JkLXZpZXctaW50ZXJuYWxzCklzc3Vl czoKaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzM0MjkKaHR0 cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzMzNjgKaHR0cHM6Ly9n aXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzMzMDAKCk5vdGVzIGZvciB0aGUg b25lIHdobyB3aWxsIHJldmlldyAoVmxhZCk6CkZpcnN0bHksIEkgZG9uJ3QgbGlrZSBjb2RlIGR1 cGxpY2F0aW9uIGluIHZpZXcgb25fY29tbWl0L29uX3JvbGxiYWNrCnRyaWdnZXJzLiBCdXQgSSBk aWRuJ3QgbWFuYWdlIHRvIGZpbmQgYW55ICdzYXRpc2ZhY3RvcnknIHNvbHV0aW9uLApleGNlcHQg Zm9yIGFkZGluZyBhdXhpbGFyeSBmdW5jdGlvbiB3aXRoIGVudW0vYm9vbCBhcmcgd2hpY2ggaW4g dHVybgp3aWxsIGRldGVybWluZSBhY3Rpb24gb24gdmlldyByZWZlcmVuY2UgY291bnRlci4KU2Vj b25kbHksIChJIGd1ZXNzKSBpbmNsdWRpbmcgaW4gYWx0ZXIuY2Mgc3FsaXRlSW50LmggaGVhZGVy IHNlZW1zIHRvIGJlCnRvdGFsIG1lc3MsIGJ1dCBhZ2FpbiAtIEkgZmFpbGVkIHRvIGNvbWUgdXAg d2l0aCBraW5kIG9mIHNpbnNpYmxlCnJlc29sdXRpb24uIElzIGl0IHRpbWUgZm9yIGRpdmlkaW5n IFNRTCBjb2RlIGJhc2UgaW50byBzb3VyY2UvaGVhZGVyIGZpbGVzPwpBdCBsZWFzdCwgaW5jbHVk aW5nICJzZWxlY3QuaCIgbG9va3MgbGVzcyBhbm5veWluZy4KRmluYWxseSwgSSB0ZW1wb3Jhcnkg Y2hhbmdlZCBzeXN0ZW0gc3BhY2UgaW4gYm94X3NwYWNlX2lkX2J5X25hbWUoKQpmcm9tIF92c3Bh Y2UgdG8gX3NwYWNlLCBpbiBvcmRlciB0byBmaW5kIHNwYWNlIGJ5IG5hbWUgaW4gb25fZGRfcmVw bGFjZSB0cmlnZ2VyLgpJIGhhdmUgbm90aWNlZCB0aGF0IEtpcmlsbCBTaC4gaGFzIGFsbW9zdCBk b25lIHRoZSBzYW1lIHRoaW5nLCBzbyB0aGlzCmhhY2sgaXMgZ29pbmcgdG8gYmUgc3Vic3RpdHV0 ZWQgd2l0aCBoaXMgcGF0Y2guCgogc3JjL2JveC9hbHRlci5jYyAgICAgICAgICAgICAgIHwgIDg0 ICsrKysrKysrKysrKwogc3JjL2JveC9ib3guY2MgICAgICAgICAgICAgICAgIHwgICA0ICstCiBz cmMvYm94L3NwYWNlX2RlZi5jICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JveC9zcGFjZV9kZWYu aCAgICAgICAgICAgIHwgICAyICsKIHNyYy9ib3gvc3FsLmggICAgICAgICAgICAgICAgICB8ICA0 NyArKysrKysrCiBzcmMvYm94L3NxbC9idWlsZC5jICAgICAgICAgICAgfCAyODkgKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9ib3gvc3FsL2RlbGV0ZS5jICAg ICAgICAgICB8ICAgNiArLQogc3JjL2JveC9zcWwvZXhwci5jICAgICAgICAgICAgIHwgICA1ICst CiBzcmMvYm94L3NxbC9ma2V5LmMgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9ib3gvc3FsL2lu c2VydC5jICAgICAgICAgICB8ICAgNCArLQogc3JjL2JveC9zcWwvcGFyc2UueSAgICAgICAgICAg IHwgIDE5ICstLQogc3JjL2JveC9zcWwvc2VsZWN0LmMgICAgICAgICAgIHwgIDYxICsrKysrKyst LQogc3JjL2JveC9zcWwvc3FsaXRlSW50LmggICAgICAgIHwgIDMxICsrKystCiBzcmMvYm94L3Nx bC90b2tlbml6ZS5jICAgICAgICAgfCAgMTggKysrCiBzcmMvYm94L3NxbC90cmlnZ2VyLmMgICAg ICAgICAgfCAgIDggKy0KIHNyYy9ib3gvc3FsL3ZkYmUuYyAgICAgICAgICAgICB8ICAyNCArKysr CiB0ZXN0L3NxbC10YXAvY29sbmFtZS50ZXN0Lmx1YSAgfCAgIDQgKy0KIHRlc3Qvc3FsLXRhcC9k cm9wX2FsbC50ZXN0Lmx1YSB8ICAgNCArLQogdGVzdC9zcWwtdGFwL2ZrZXkyLnRlc3QubHVhICAg IHwgICAxICsKIHRlc3Qvc3FsLXRhcC90cmlnZ2VyMS50ZXN0Lmx1YSB8ICAgMSArCiB0ZXN0L3Nx bC10YXAvdHJpZ2dlckMudGVzdC5sdWEgfCAgIDEgKwogdGVzdC9zcWwtdGFwL3ZpZXcudGVzdC5s dWEgICAgIHwgMTM3ICsrKysrKysrKysrKysrLS0tLS0KIHRlc3Qvc3FsL3ZpZXcucmVzdWx0ICAg ICAgICAgICB8ICAyMyArKystCiB0ZXN0L3NxbC92aWV3LnRlc3QubHVhICAgICAgICAgfCAgMTEg Ky0KIDI0IGZpbGVzIGNoYW5nZWQsIDUwMiBpbnNlcnRpb25zKCspLCAyODcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JveC9hbHRlci5jYyBiL3NyYy9ib3gvYWx0ZXIuY2MKaW5kZXgg YjYyZjhhZGVhLi4xZmJiNTRkMWEgMTAwNjQ0Ci0tLSBhL3NyYy9ib3gvYWx0ZXIuY2MKKysrIGIv c3JjL2JveC9hbHRlci5jYwpAQCAtMjksNiArMjksNyBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8K ICNpbmNsdWRlICJhbHRlci5oIgorI2luY2x1ZGUgImJveC5oIgogI2luY2x1ZGUgInNjaGVtYS5o IgogI2luY2x1ZGUgInVzZXIuaCIKICNpbmNsdWRlICJzcGFjZS5oIgpAQCAtNDQsNiArNDUsNyBA QAogI2luY2x1ZGUgPG5ldz4gLyogZm9yIHBsYWNlbWVudCBuZXcgKi8KICNpbmNsdWRlIDxzdGRp by5oPiAvKiBzbnByaW50ZigpICovCiAjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxib3gv c3FsL3NxbGl0ZUludC5oPgogI2luY2x1ZGUgInJlcGxpY2F0aW9uLmgiIC8qIGZvciByZXBsaWNh X3NldF9pZCgpICovCiAjaW5jbHVkZSAic2Vzc2lvbi5oIiAvKiB0byBmZXRjaCB0aGUgY3VycmVu dCB1c2VyLiAqLwogI2luY2x1ZGUgInZjbG9jay5oIiAvKiBWQ0xPQ0tfTUFYICovCkBAIC0xNDQw LDYgKzE0NDIsNzAgQEAgYWx0ZXJfc3BhY2VfbW92ZV9pbmRleGVzKHN0cnVjdCBhbHRlcl9zcGFj ZSAqYWx0ZXIsIHVpbnQzMl90IGJlZ2luLAogCX0KIH0KIAorLyoqCisgKiBUcmlnZ2VyIHdoaWNo IGlzIGZpcmVkIG9uIGNyZWF0aW9uIG9mIG5ldyBTUUwgdmlldy4KKyAqIEl0cyBwdXJwb3NlIGlz IHRvIGluY3JlbWVudCB2aWV3IHJlZmVyZW5jZSBjb3VudGVycyBvZgorICogZGVwZW5kZW50IHNw YWNlcy4KKyAqLworc3RhdGljIHZvaWQKK29uX2NyZWF0ZV92aWV3X2NvbW1pdChzdHJ1Y3QgdHJp Z2dlciAqdHJpZ2dlciwgdm9pZCAqZXZlbnQpCit7CisJKHZvaWQpIGV2ZW50OworCXN0cnVjdCBz cGFjZSAqc3BhY2UgPSAoc3RydWN0IHNwYWNlICopdHJpZ2dlci0+ZGF0YTsKKwlzdHJ1Y3Qgc3Bh Y2VfZGVmICpkZWYgPSBzcGFjZS0+ZGVmOworCXN0cnVjdCBTZWxlY3QgKnNlbGVjdDsKKwlpZiAo c3FsX3ZpZXdfY29tcGlsZShzcWxfZ2V0KCksIGRlZi0+b3B0cy5zcWwsICZzZWxlY3QpICE9IDAp IHsKKwkJZGlhZ19sb2coKTsKKwkJcmV0dXJuOworCX0KKwlpZiAoc2VsZWN0ID09IE5VTEwpCisJ CXJldHVybjsKKwlzcWxfc2VsZWN0X2V4cGFuZF9mcm9tX3RhYmxlcyhzZWxlY3QpOworCWZvciAo aW50IGkgPSAwOyBpIDwgc2VsZWN0LT5wU3JjLT5uU3JjOyArK2kpIHsKKwkJY29uc3QgY2hhciAq c3BhY2VfbmFtZSA9IHNlbGVjdC0+cFNyYy0+YVtpXS56TmFtZTsKKwkJaWYgKHNwYWNlX25hbWUg PT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCQl1aW50MzJfdCBzcGFjZV9pZCA9IGJveF9zcGFjZV9p ZF9ieV9uYW1lKHNwYWNlX25hbWUsCisJCQkJCQkJIHN0cmxlbihzcGFjZV9uYW1lKSk7CisJCWFz c2VydChzcGFjZV9pZCAhPSBCT1hfSURfTklMKTsKKwkJc3RydWN0IHNwYWNlICpzcGFjZSA9IHNw YWNlX2J5X2lkKHNwYWNlX2lkKTsKKwkJc3BhY2UtPmRlZi0+dmlld19yZWZfY291bnQrKzsKKwl9 CisJc3FsX3NlbGVjdF9kZWxldGUoc3FsX2dldCgpLCBzZWxlY3QpOworfQorCisvKioKKyAqIFRy aWdnZXIgd2hpY2ggaXMgZmlyZWQgb24gZHJvcCBvZiBTUUwgdmlldy4KKyAqIEl0cyBwdXJwb3Nl IGlzIHRvIGRlY3JlbWVudCB2aWV3IHJlZmVyZW5jZSBjb3VudGVycyBvZgorICogZGVwZW5kZW50 IHNwYWNlcy4KKyAqLworc3RhdGljIHZvaWQKK29uX2Ryb3Bfdmlld19jb21taXQoc3RydWN0IHRy aWdnZXIgKnRyaWdnZXIsIHZvaWQgKmV2ZW50KQoreworCSh2b2lkKSBldmVudDsKKwlzdHJ1Y3Qg c3BhY2UgKnNwYWNlID0gKHN0cnVjdCBzcGFjZSAqKXRyaWdnZXItPmRhdGE7CisJc3RydWN0IHNw YWNlX2RlZiAqZGVmID0gc3BhY2UtPmRlZjsKKwlzdHJ1Y3QgU2VsZWN0ICpzZWxlY3Q7CisJaWYg KHNxbF92aWV3X2NvbXBpbGUoc3FsX2dldCgpLCBkZWYtPm9wdHMuc3FsLCAmc2VsZWN0KSAhPSAw KSB7CisJCWRpYWdfbG9nKCk7CisJCXJldHVybjsKKwl9CisJaWYgKHNlbGVjdCA9PSBOVUxMKQor CQlyZXR1cm47CisJc3FsX3NlbGVjdF9leHBhbmRfZnJvbV90YWJsZXMoc2VsZWN0KTsKKwlmb3Ig KGludCBpID0gMDsgaSA8IHNlbGVjdC0+cFNyYy0+blNyYzsgKytpKSB7CisJCWNvbnN0IGNoYXIg KnNwYWNlX25hbWUgPSBzZWxlY3QtPnBTcmMtPmFbaV0uek5hbWU7CisJCWlmIChzcGFjZV9uYW1l ID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJdWludDMyX3Qgc3BhY2VfaWQgPSBib3hfc3BhY2Vf aWRfYnlfbmFtZShzcGFjZV9uYW1lLAorCQkJCQkJCSBzdHJsZW4oc3BhY2VfbmFtZSkpOworCQlh c3NlcnQoc3BhY2VfaWQgIT0gQk9YX0lEX05JTCk7CisJCXN0cnVjdCBzcGFjZSAqc3BhY2UgPSBz cGFjZV9ieV9pZChzcGFjZV9pZCk7CisJCXNwYWNlLT5kZWYtPnZpZXdfcmVmX2NvdW50LS07CisJ fQorCXNxbF9zZWxlY3RfZGVsZXRlKHNxbF9nZXQoKSwgc2VsZWN0KTsKK30KKwogLyoqCiAgKiBB IHRyaWdnZXIgd2hpY2ggaXMgaW52b2tlZCBvbiByZXBsYWNlIGluIGEgZGF0YSBkaWN0aW9uYXJ5 CiAgKiBzcGFjZSBfc3BhY2UuCkBAIC0xNTQ1LDYgKzE2MTEsMTIgQEAgb25fcmVwbGFjZV9kZF9z cGFjZShzdHJ1Y3QgdHJpZ2dlciAqIC8qIHRyaWdnZXIgKi8sIHZvaWQgKmV2ZW50KQogCQlzdHJ1 Y3QgdHJpZ2dlciAqb25fY29tbWl0ID0KIAkJCXR4bl9hbHRlcl90cmlnZ2VyX25ldyhvbl9jcmVh dGVfc3BhY2VfY29tbWl0LCBzcGFjZSk7CiAJCXR4bl9vbl9jb21taXQodHhuLCBvbl9jb21taXQp OworCQlpZiAoZGVmLT5vcHRzLmlzX3ZpZXcgJiYgZGVmLT5vcHRzLnNxbCAhPSBOVUxMKSB7CisJ CQlzdHJ1Y3QgdHJpZ2dlciAqb25fY29tbWl0X3ZpZXcgPQorCQkJCXR4bl9hbHRlcl90cmlnZ2Vy X25ldyhvbl9jcmVhdGVfdmlld19jb21taXQsCisJCQkJCQkgICAgICBzcGFjZSk7CisJCQl0eG5f b25fY29tbWl0KHR4biwgb25fY29tbWl0X3ZpZXcpOworCQl9CiAJCXN0cnVjdCB0cmlnZ2VyICpv bl9yb2xsYmFjayA9CiAJCQl0eG5fYWx0ZXJfdHJpZ2dlcl9uZXcob25fY3JlYXRlX3NwYWNlX3Jv bGxiYWNrLCBzcGFjZSk7CiAJCXR4bl9vbl9yb2xsYmFjayh0eG4sIG9uX3JvbGxiYWNrKTsKQEAg LTE1NjYsNiArMTYzOCwxMSBAQCBvbl9yZXBsYWNlX2RkX3NwYWNlKHN0cnVjdCB0cmlnZ2VyICog LyogdHJpZ2dlciAqLywgdm9pZCAqZXZlbnQpCiAJCQl0bnRfcmFpc2UoQ2xpZW50RXJyb3IsIEVS X0RST1BfU1BBQ0UsCiAJCQkJICBzcGFjZV9uYW1lKG9sZF9zcGFjZSksCiAJCQkJICAidGhlIHNw YWNlIGhhcyB0cnVuY2F0ZSByZWNvcmQiKTsKKwkJaWYgKG9sZF9zcGFjZS0+ZGVmLT52aWV3X3Jl Zl9jb3VudCA+IDApIHsKKwkJCXRudF9yYWlzZShDbGllbnRFcnJvciwgRVJfRFJPUF9TUEFDRSwK KwkJCQkgIHNwYWNlX25hbWUob2xkX3NwYWNlKSwKKwkJCQkgICJvdGhlciB2aWV3cyBkZXBlbmQg b24gdGhpcyBzcGFjZSIpOworCQl9CiAJCS8qKgogCQkgKiBUaGUgc3BhY2UgbXVzdCBiZSBkZWxl dGVkIGZyb20gdGhlIHNwYWNlCiAJCSAqIGNhY2hlIHJpZ2h0IGF3YXkgdG8gYWNoaWV2ZSBsaW5l YXJpc2FibGUKQEAgLTE1NzUsNiArMTY1MiwxMyBAQCBvbl9yZXBsYWNlX2RkX3NwYWNlKHN0cnVj dCB0cmlnZ2VyICogLyogdHJpZ2dlciAqLywgdm9pZCAqZXZlbnQpCiAJCXN0cnVjdCB0cmlnZ2Vy ICpvbl9jb21taXQgPQogCQkJdHhuX2FsdGVyX3RyaWdnZXJfbmV3KG9uX2Ryb3Bfc3BhY2VfY29t bWl0LCBzcGFjZSk7CiAJCXR4bl9vbl9jb21taXQodHhuLCBvbl9jb21taXQpOworCQlpZiAob2xk X3NwYWNlLT5kZWYtPm9wdHMuaXNfdmlldyAmJgorCQkgICAgb2xkX3NwYWNlLT5kZWYtPm9wdHMu c3FsICE9IE5VTEwpIHsKKwkJCXN0cnVjdCB0cmlnZ2VyICpvbl9jb21taXRfdmlldyA9CisJCQkJ dHhuX2FsdGVyX3RyaWdnZXJfbmV3KG9uX2Ryb3Bfdmlld19jb21taXQsCisJCQkJCQkgICAgICBz cGFjZSk7CisJCQl0eG5fb25fY29tbWl0KHR4biwgb25fY29tbWl0X3ZpZXcpOworCQl9CiAJCXN0 cnVjdCB0cmlnZ2VyICpvbl9yb2xsYmFjayA9CiAJCQl0eG5fYWx0ZXJfdHJpZ2dlcl9uZXcob25f ZHJvcF9zcGFjZV9yb2xsYmFjaywgc3BhY2UpOwogCQl0eG5fb25fcm9sbGJhY2sodHhuLCBvbl9y b2xsYmFjayk7CmRpZmYgLS1naXQgYS9zcmMvYm94L2JveC5jYyBiL3NyYy9ib3gvYm94LmNjCmlu ZGV4IDAyNzIyZDZhZC4uZDdlNDEwOGY1IDEwMDY0NAotLS0gYS9zcmMvYm94L2JveC5jYworKysg Yi9zcmMvYm94L2JveC5jYwpAQCAtODkyLDcgKzg5Miw3IEBAIGJveF9zcGFjZV9pZF9ieV9uYW1l KGNvbnN0IGNoYXIgKm5hbWUsIHVpbnQzMl90IGxlbikKIAogCS8qIE5PVEU6IGVycm9yIGFuZCBt aXNzaW5nIGtleSBjYXNlcyBhcmUgaW5kaXN0aW5ndWlzaGFibGUgKi8KIAlib3hfdHVwbGVfdCAq dHVwbGU7Ci0JaWYgKGJveF9pbmRleF9nZXQoQk9YX1ZTUEFDRV9JRCwgMiwgYmVnaW4sIGVuZCwg JnR1cGxlKSAhPSAwKQorCWlmIChib3hfaW5kZXhfZ2V0KEJPWF9TUEFDRV9JRCwgMiwgYmVnaW4s IGVuZCwgJnR1cGxlKSAhPSAwKQogCQlyZXR1cm4gQk9YX0lEX05JTDsKIAlpZiAodHVwbGUgPT0g TlVMTCkKIAkJcmV0dXJuIEJPWF9JRF9OSUw7CkBAIC05MTksNyArOTE5LDcgQEAgYm94X2luZGV4 X2lkX2J5X25hbWUodWludDMyX3Qgc3BhY2VfaWQsIGNvbnN0IGNoYXIgKm5hbWUsIHVpbnQzMl90 IGxlbikKIAogCS8qIE5PVEU6IGVycm9yIGFuZCBtaXNzaW5nIGtleSBjYXNlcyBhcmUgaW5kaXN0 aW5ndWlzaGFibGUgKi8KIAlib3hfdHVwbGVfdCAqdHVwbGU7Ci0JaWYgKGJveF9pbmRleF9nZXQo Qk9YX1ZJTkRFWF9JRCwgMiwgYmVnaW4sIGVuZCwgJnR1cGxlKSAhPSAwKQorCWlmIChib3hfaW5k ZXhfZ2V0KEJPWF9JTkRFWF9JRCwgMiwgYmVnaW4sIGVuZCwgJnR1cGxlKSAhPSAwKQogCQlyZXR1 cm4gQk9YX0lEX05JTDsKIAlpZiAodHVwbGUgPT0gTlVMTCkKIAkJcmV0dXJuIEJPWF9JRF9OSUw7 CmRpZmYgLS1naXQgYS9zcmMvYm94L3NwYWNlX2RlZi5jIGIvc3JjL2JveC9zcGFjZV9kZWYuYwpp bmRleCBhMzk5NzgxODIuLjIxYjdkODJiYiAxMDA2NDQKLS0tIGEvc3JjL2JveC9zcGFjZV9kZWYu YworKysgYi9zcmMvYm94L3NwYWNlX2RlZi5jCkBAIC0yMDQsNiArMjA0LDcgQEAgc3BhY2VfZGVm X25ldyh1aW50MzJfdCBpZCwgdWludDMyX3QgdWlkLCB1aW50MzJfdCBleGFjdF9maWVsZF9jb3Vu dCwKIAltZW1jcHkoZGVmLT5lbmdpbmVfbmFtZSwgZW5naW5lX25hbWUsIGVuZ2luZV9sZW4pOwog CWRlZi0+ZW5naW5lX25hbWVbZW5naW5lX2xlbl0gPSAwOwogCisJZGVmLT52aWV3X3JlZl9jb3Vu dCA9IDA7CiAJZGVmLT5maWVsZF9jb3VudCA9IGZpZWxkX2NvdW50OwogCWlmIChmaWVsZF9jb3Vu dCA9PSAwKSB7CiAJCWRlZi0+ZmllbGRzID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3Bh Y2VfZGVmLmggYi9zcmMvYm94L3NwYWNlX2RlZi5oCmluZGV4IDAyNGU4NjhhOS4uNGZmOWM2Njhl IDEwMDY0NAotLS0gYS9zcmMvYm94L3NwYWNlX2RlZi5oCisrKyBiL3NyYy9ib3gvc3BhY2VfZGVm LmgKQEAgLTEwNyw2ICsxMDcsOCBAQCBzdHJ1Y3Qgc3BhY2VfZGVmIHsKIAlzdHJ1Y3QgZmllbGRf ZGVmICpmaWVsZHM7CiAJLyoqIExlbmd0aCBvZiBAYSBmaWVsZHMuICovCiAJdWludDMyX3QgZmll bGRfY291bnQ7CisJLyoqIE51bWJlciBvZiBTUUwgdmlld3Mgd2hpY2ggcmVmZXIgdG8gdGhpcyBz cGFjZS4gKi8KKwl1aW50MzJfdCB2aWV3X3JlZl9jb3VudDsKIAlzdHJ1Y3Qgc3BhY2Vfb3B0cyBv cHRzOwogCWNoYXIgbmFtZVswXTsKIH07CmRpZmYgLS1naXQgYS9zcmMvYm94L3NxbC5oIGIvc3Jj L2JveC9zcWwuaAppbmRleCAyMzAyMWU1NmIuLjlhMDA2ZTVjYiAxMDA2NDQKLS0tIGEvc3JjL2Jv eC9zcWwuaAorKysgYi9zcmMvYm94L3NxbC5oCkBAIC04Myw2ICs4MywxOSBAQCBpbnQKIHNxbF9l eHByX2NvbXBpbGUoc3RydWN0IHNxbGl0ZTMgKmRiLCBjb25zdCBjaGFyICpleHByLCBpbnQgZXhw cl9sZW4sCiAJCSBzdHJ1Y3QgRXhwciAqKnJlc3VsdCk7CiAKKy8qKgorICogVGhpcyByb3V0aW5l IGV4ZWN1dGVzIHBhcnNlciBvbiAnQ1JFQVRFIFZJRVcgLi4uJyBzdGF0ZW1lbnQKKyAqIGFuZCBs b2FkcyBjb250ZW50IG9mIFNFTEVDVCBpbnRvIGludGVybmFsIHN0cnVjdHMgYXMgcmVzdWx0Lgor ICoKKyAqIEBwYXJhbSBkYiBDdXJyZW50IFNRTCBjb250ZXh0LgorICogQHBhcmFtIHZpZXdfc3Rt dCBTdHJpbmcgY29udGFpbmluZyAnQ1JFQVRFIFZJRVcnIHN0YXRlbWVudC4KKyAqIEBwYXJhbVtv dXRdIHNlbGVjdCBGZXRjaGVkIFNFTEVDVCBzdGF0ZW1lbnQuCisgKiBAcmV0dmFsIDAgb24gc3Vj Y2VzcywgLTEgb3RoZXJ3aXNlLgorICovCitpbnQKK3NxbF92aWV3X2NvbXBpbGUoc3RydWN0IHNx bGl0ZTMgKmRiLCBjb25zdCBjaGFyICp2aWV3X3N0bXQsCisJCSBzdHJ1Y3QgU2VsZWN0ICoqc2Vs ZWN0KTsKKwogLyoqCiAgKiBTdG9yZSBkdXBsaWNhdGUgb2YgYSBwYXJzZWQgZXhwcmVzc2lvbiBp bnRvIEBhIHBhcnNlci4KICAqIEBwYXJhbSBwYXJzZXIgUGFyc2VyIGNvbnRleHQuCkBAIC0yOTMs NiArMzA2LDQwIEBAIHNxbF9wYXJzZXJfY3JlYXRlKHN0cnVjdCBQYXJzZSAqcGFyc2VyLCBzdHJ1 Y3Qgc3FsaXRlMyAqZGIpOwogdm9pZAogc3FsX3BhcnNlcl9kZXN0cm95KHN0cnVjdCBQYXJzZSAq cGFyc2VyKTsKIAorLyoqCisgKiBSZWxlYXNlIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIGdpdmVuIFNF TEVDVCBhbmQgYWxsIG9mIGl0cworICogc3Vic3RydWN0dXJlcy4gSXQgYWNjZXB0cyBOVUxMIHBv aW50ZXJzLgorICoKKyAqIEBwYXJhbSBkYiBEYXRhYmFzZSBoYW5kbGVyLgorICogQHBhcmFtIHNl bGVjdCBTZWxlY3QgdG8gYmUgZnJlZWQuCisgKi8KK3ZvaWQKK3NxbF9zZWxlY3RfZGVsZXRlKHN0 cnVjdCBzcWxpdGUzICpkYiwgc3RydWN0IFNlbGVjdCAqc2VsZWN0KTsKKworLyoqCisgKiBXb3Jr IHRoZSBzYW1lIGFzIHNxbGl0ZTNTcmNMaXN0QXBwZW5kKCksIGJ1dCBiZWZvcmUgYWRkaW5nIHRv CisgKiBsaXN0IHByb3ZpZGUgY2hlY2sgb24gbmFtZSBkdXBsaWNhdGVzOiBvbmx5IHZhbHVlcyB3 aXRoIHVuaXF1ZQorICogbmFtZXMgYXJlIGFwcGVuZGVkLgorICoKKyAqIEBwYXJhbSBkYiBEYXRh YmFzZSBoYW5kbGVyLgorICogQHBhcmFtIGxpc3QgTGlzdCBvZiBlbnRyaWVzLgorICogQHBhcmFt IG5ld19uYW1lIE5hbWUgb2YgZW50aXR5IHRvIGJlIGFkZGVkLgorICogQHJldHZhbCBAbGlzdCB3 aXRoIG5ldyBlbGVtZW50IG9uIHN1Y2Nlc3MsIG9sZCBvbmUgb3RoZXJ3aXNlLgorICovCitzdHJ1 Y3QgU3JjTGlzdCAqCitzcWxfc3JjX2xpc3RfYXBwZW5kX3VuaXF1ZShzdHJ1Y3Qgc3FsaXRlMyAq ZGIsIHN0cnVjdCBTcmNMaXN0ICpsaXN0LAorCQkJICAgY29uc3QgY2hhciAqbmV3X25hbWUpOwor CisvKioKKyAqIEV4cGFuZCBhbGwgc3BhY2VzIG5hbWVzIGZyb20gJ0ZST00nIGNsYXVzZSwgaW5j bHVkaW5nCisgKiBvbmVzIGZyb20gc3VicXVlcmllcywgYW5kIGFkZCB0aG9zZSBuYW1lcyB0byB0 aGUgb3JpZ2luYWwKKyAqIHNlbGVjdC4KKyAqCisgKiBAcGFyYW0gc2VsZWN0IFNlbGVjdCB0byBi ZSBleHBhbmRlZC4KKyAqLwordm9pZAorc3FsX3NlbGVjdF9leHBhbmRfZnJvbV90YWJsZXMoc3Ry dWN0IFNlbGVjdCAqc2VsZWN0KTsKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9IC8qIGV4 dGVybiAiQyIgeyAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvYm94L3NxbC9idWlsZC5jIGIv c3JjL2JveC9zcWwvYnVpbGQuYwppbmRleCAyOGU0ZDdhNGQuLjA1M2NmODNiNyAxMDA2NDQKLS0t IGEvc3JjL2JveC9zcWwvYnVpbGQuYworKysgYi9zcmMvYm94L3NxbC9idWlsZC5jCkBAIC00MDUs NyArNDA1LDYgQEAgZGVsZXRlVGFibGUoc3FsaXRlMyAqIGRiLCBUYWJsZSAqIHBUYWJsZSkKIAlz cWxpdGUzSGFzaENsZWFyKCZwVGFibGUtPmlkeEhhc2gpOwogCXNxbGl0ZTNEYkZyZWUoZGIsIHBU YWJsZS0+YUNvbCk7CiAJc3FsaXRlM0RiRnJlZShkYiwgcFRhYmxlLT56Q29sQWZmKTsKLQlzcWxp dGUzU2VsZWN0RGVsZXRlKGRiLCBwVGFibGUtPnBTZWxlY3QpOwogCWFzc2VydChwVGFibGUtPmRl ZiAhPSBOVUxMKTsKIAkvKiBEbyBub3QgZGVsZXRlIHBUYWJsZS0+ZGVmIGFsbG9jYXRlZCBvbiBy ZWdpb24uICovCiAJaWYgKCFwVGFibGUtPmRlZi0+b3B0cy50ZW1wb3JhcnkpCkBAIC0xODQ5LDcg KzE4NDgsNiBAQCBzcWxpdGUzRW5kVGFibGUoUGFyc2UgKiBwUGFyc2UsCS8qIFBhcnNlIGNvbnRl eHQgKi8KIAkJcC0+ZGVmLT5pZCA9IFNRTElURV9QQUdFTk9fVE9fU1BBQ0VJRChwLT50bnVtKTsK IAl9CiAKLQlhc3NlcnQocC0+ZGVmLT5vcHRzLmlzX3ZpZXcgPT0gKHAtPnBTZWxlY3QgIT0gTlVM TCkpOwogCWlmICghcC0+ZGVmLT5vcHRzLmlzX3ZpZXcpIHsKIAkJaWYgKChwLT50YWJGbGFncyAm IFRGX0hhc1ByaW1hcnlLZXkpID09IDApIHsKIAkJCXNxbGl0ZTNFcnJvck1zZyhwUGFyc2UsCkBA IC0yMDA5LDcyICsyMDA3LDc0IEBAIHNxbGl0ZTNFbmRUYWJsZShQYXJzZSAqIHBQYXJzZSwJLyog UGFyc2UgY29udGV4dCAqLwogfQogCiAjaWZuZGVmIFNRTElURV9PTUlUX1ZJRVcKLS8qCi0gKiBU aGUgcGFyc2VyIGNhbGxzIHRoaXMgcm91dGluZSBpbiBvcmRlciB0byBjcmVhdGUgYSBuZXcgVklF VwotICovCiB2b2lkCi1zcWxpdGUzQ3JlYXRlVmlldyhQYXJzZSAqIHBQYXJzZSwJLyogVGhlIHBh cnNpbmcgY29udGV4dCAqLwotCQkgIFRva2VuICogcEJlZ2luLAkvKiBUaGUgQ1JFQVRFIHRva2Vu IHRoYXQgYmVnaW5zIHRoZSBzdGF0ZW1lbnQgKi8KLQkJICBUb2tlbiAqIHBOYW1lLAkvKiBUaGUg dG9rZW4gdGhhdCBob2xkcyB0aGUgbmFtZSBvZiB0aGUgdmlldyAqLwotCQkgIEV4cHJMaXN0ICog cENOYW1lcywJLyogT3B0aW9uYWwgbGlzdCBvZiB2aWV3IGNvbHVtbiBuYW1lcyAqLwotCQkgIFNl bGVjdCAqIHBTZWxlY3QsCS8qIEEgU0VMRUNUIHN0YXRlbWVudCB0aGF0IHdpbGwgYmVjb21lIHRo ZSBuZXcgdmlldyAqLwotCQkgIGludCBub0VycgkvKiBTdXBwcmVzcyBlcnJvciBtZXNzYWdlcyBp ZiBWSUVXIGFscmVhZHkgZXhpc3RzICovCi0gICAgKQorc3FsX2NyZWF0ZV92aWV3KHN0cnVjdCBQ YXJzZSAqcGFyc2VfY29udGV4dCwgc3RydWN0IFRva2VuICpiZWdpbiwKKwkJc3RydWN0IFRva2Vu ICpuYW1lLCBzdHJ1Y3QgRXhwckxpc3QgKmFsaWFzZXMsCisJCXN0cnVjdCBTZWxlY3QgKnNlbGVj dCwgYm9vbCBpZl9leGlzdHMpCiB7Ci0JVGFibGUgKnA7Ci0JaW50IG47Ci0JY29uc3QgY2hhciAq ejsKLQlUb2tlbiBzRW5kOwotCURiRml4ZXIgc0ZpeDsKLQlzcWxpdGUzICpkYiA9IHBQYXJzZS0+ ZGI7Ci0KLQlpZiAocFBhcnNlLT5uVmFyID4gMCkgewotCQlzcWxpdGUzRXJyb3JNc2cocFBhcnNl LCAicGFyYW1ldGVycyBhcmUgbm90IGFsbG93ZWQgaW4gdmlld3MiKTsKKwlzdHJ1Y3Qgc3FsaXRl MyAqZGIgPSBwYXJzZV9jb250ZXh0LT5kYjsKKwlpZiAocGFyc2VfY29udGV4dC0+blZhciA+IDAp IHsKKwkJc3FsaXRlM0Vycm9yTXNnKHBhcnNlX2NvbnRleHQsCisJCQkJInBhcmFtZXRlcnMgYXJl IG5vdCBhbGxvd2VkIGluIHZpZXdzIik7CiAJCWdvdG8gY3JlYXRlX3ZpZXdfZmFpbDsKIAl9Ci0J c3FsaXRlM1N0YXJ0VGFibGUocFBhcnNlLCBwTmFtZSwgbm9FcnIpOwotCXAgPSBwUGFyc2UtPnBO ZXdUYWJsZTsKLQlpZiAocCA9PSAwIHx8IHBQYXJzZS0+bkVycikKKwlzcWxpdGUzU3RhcnRUYWJs ZShwYXJzZV9jb250ZXh0LCBuYW1lLCBpZl9leGlzdHMpOworCXN0cnVjdCBUYWJsZSAqcCA9IHBh cnNlX2NvbnRleHQtPnBOZXdUYWJsZTsKKwlpZiAocCA9PSBOVUxMIHx8IHBhcnNlX2NvbnRleHQt Pm5FcnIpCiAJCWdvdG8gY3JlYXRlX3ZpZXdfZmFpbDsKLQlzcWxpdGUzRml4SW5pdCgmc0ZpeCwg cFBhcnNlLCAidmlldyIsIHBOYW1lKTsKLQlpZiAoc3FsaXRlM0ZpeFNlbGVjdCgmc0ZpeCwgcFNl bGVjdCkpCisJc3RydWN0IFRhYmxlICpzZWxfdGFiID0Jc3FsaXRlM1Jlc3VsdFNldE9mU2VsZWN0 KHBhcnNlX2NvbnRleHQsIHNlbGVjdCk7CisJaWYgKHNlbF90YWIgPT0gTlVMTCkKIAkJZ290byBj cmVhdGVfdmlld19mYWlsOwotCi0JLyogTWFrZSBhIGNvcHkgb2YgdGhlIGVudGlyZSBTRUxFQ1Qg c3RhdGVtZW50IHRoYXQgZGVmaW5lcyB0aGUgdmlldy4KLQkgKiBUaGlzIHdpbGwgZm9yY2UgYWxs IHRoZSBFeHByLnRva2VuLnogdmFsdWVzIHRvIGJlIGR5bmFtaWNhbGx5Ci0JICogYWxsb2NhdGVk IHJhdGhlciB0aGFuIHBvaW50IHRvIHRoZSBpbnB1dCBzdHJpbmcgLSB3aGljaCBtZWFucyB0aGF0 Ci0JICogdGhleSB3aWxsIHBlcnNpc3QgYWZ0ZXIgdGhlIGN1cnJlbnQgc3FsaXRlM19leGVjKCkg Y2FsbCByZXR1cm5zLgotCSAqLwotCXAtPnBTZWxlY3QgPSBzcWxpdGUzU2VsZWN0RHVwKGRiLCBw U2VsZWN0LCBFWFBSRFVQX1JFRFVDRSk7CisJaWYgKGFsaWFzZXMgIT0gTlVMTCkgeworCQlpZiAo KGludClzZWxfdGFiLT5kZWYtPmZpZWxkX2NvdW50ICE9IGFsaWFzZXMtPm5FeHByKSB7CisJCQlz cWxpdGUzRXJyb3JNc2cocGFyc2VfY29udGV4dCwKKwkJCQkJImV4cGVjdGVkICVkIGNvbHVtbnMg Zm9yICclcycgYnV0IGdvdCAlZCIsCisJCQkJCWFsaWFzZXMtPm5FeHByLCBwLT5kZWYtPm5hbWUs CisJCQkJCXNlbF90YWItPmRlZi0+ZmllbGRfY291bnQpOworCQkJZ290byBjcmVhdGVfdmlld19m YWlsOworCQl9CisJCXNxbGl0ZTNDb2x1bW5zRnJvbUV4cHJMaXN0KHBhcnNlX2NvbnRleHQsIGFs aWFzZXMsIHApOworCQlzcWxpdGUzU2VsZWN0QWRkQ29sdW1uVHlwZUFuZENvbGxhdGlvbihwYXJz ZV9jb250ZXh0LCBwLAorCQkJCQkJICAgICAgIHNlbGVjdCk7CisJfSBlbHNlIHsKKwkJYXNzZXJ0 KHAtPmFDb2wgPT0gTlVMTCk7CisJCWFzc2VydChzZWxfdGFiLT5kZWYtPm9wdHMudGVtcG9yYXJ5 KTsKKwkJcC0+ZGVmLT5maWVsZHMgPSBzZWxfdGFiLT5kZWYtPmZpZWxkczsKKwkJcC0+ZGVmLT5m aWVsZF9jb3VudCA9IHNlbF90YWItPmRlZi0+ZmllbGRfY291bnQ7CisJCXAtPmFDb2wgPSBzZWxf dGFiLT5hQ29sOworCQlzZWxfdGFiLT5hQ29sID0gTlVMTDsKKwkJc2VsX3RhYi0+ZGVmLT5maWVs ZHMgPSBOVUxMOworCQlzZWxfdGFiLT5kZWYtPmZpZWxkX2NvdW50ID0gMDsKKwl9CiAJcC0+ZGVm LT5vcHRzLmlzX3ZpZXcgPSB0cnVlOwotCXAtPmRlZi0+b3B0cy5jaGVja3MgPSBzcWxfZXhwcl9s aXN0X2R1cChkYiwgcENOYW1lcywgRVhQUkRVUF9SRURVQ0UpOwotCWlmIChkYi0+bWFsbG9jRmFp bGVkKQotCQlnb3RvIGNyZWF0ZV92aWV3X2ZhaWw7Ci0KLQkvKiBMb2NhdGUgdGhlIGVuZCBvZiB0 aGUgQ1JFQVRFIFZJRVcgc3RhdGVtZW50LiAgTWFrZSBzRW5kIHBvaW50IHRvCi0JICogdGhlIGVu ZC4KKwkvKgorCSAqIExvY2F0ZSB0aGUgZW5kIG9mIHRoZSBDUkVBVEUgVklFVyBzdGF0ZW1lbnQu CisJICogTWFrZSBzRW5kIHBvaW50IHRvIHRoZSBlbmQuCiAJICovCi0Jc0VuZCA9IHBQYXJzZS0+ c0xhc3RUb2tlbjsKLQlhc3NlcnQoc0VuZC56WzBdICE9IDApOwotCWlmIChzRW5kLnpbMF0gIT0g JzsnKSB7Ci0JCXNFbmQueiArPSBzRW5kLm47CisJc3RydWN0IFRva2VuIGVuZCA9IHBhcnNlX2Nv bnRleHQtPnNMYXN0VG9rZW47CisJYXNzZXJ0KGVuZC56WzBdICE9IDApOworCWlmIChlbmQuelsw XSAhPSAnOycpIHsKKwkJZW5kLnogKz0gZW5kLm47CiAJfQotCXNFbmQubiA9IDA7Ci0JbiA9IChp bnQpKHNFbmQueiAtIHBCZWdpbi0+eik7CisJZW5kLm4gPSAwOworCWludCBuID0gKGludCkoZW5k LnogLSBiZWdpbi0+eik7CiAJYXNzZXJ0KG4gPiAwKTsKLQl6ID0gcEJlZ2luLT56OworCWNvbnN0 IGNoYXIgKnogPSBiZWdpbi0+ejsKIAl3aGlsZSAoc3FsaXRlM0lzc3BhY2UoeltuIC0gMV0pKSB7 CiAJCW4tLTsKIAl9Ci0Jc0VuZC56ID0gJnpbbiAtIDFdOwotCXNFbmQubiA9IDE7CisJZW5kLnog PSAmeltuIC0gMV07CisJZW5kLm4gPSAxOworCXAtPmRlZi0+b3B0cy5zcWwgPSBtYWxsb2MobiAr IDEpOworCW1lbWNweShwLT5kZWYtPm9wdHMuc3FsLCBiZWdpbi0+eiwgbik7CisJcC0+ZGVmLT5v cHRzLnNxbFtuXSA9ICdcMCc7CiAKIAkvKiBVc2Ugc3FsaXRlM0VuZFRhYmxlKCkgdG8gYWRkIHRo ZSB2aWV3IHRvIHRoZSBUYXJhbnRvb2wuICAqLwotCXNxbGl0ZTNFbmRUYWJsZShwUGFyc2UsIDAs ICZzRW5kLCAwKTsKKwlzcWxpdGUzRW5kVGFibGUocGFyc2VfY29udGV4dCwgMCwgJmVuZCwgMCk7 CiAKICBjcmVhdGVfdmlld19mYWlsOgotCXNxbGl0ZTNTZWxlY3REZWxldGUoZGIsIHBTZWxlY3Qp OwotCXNxbF9leHByX2xpc3RfZGVsZXRlKGRiLCBwQ05hbWVzKTsKKwlzcWxfZXhwcl9saXN0X2Rl bGV0ZShkYiwgYWxpYXNlcyk7CisJc3FsX3NlbGVjdF9kZWxldGUoZGIsIHNlbGVjdCk7CiAJcmV0 dXJuOwogfQogI2VuZGlmCQkJCS8qIFNRTElURV9PTUlUX1ZJRVcgKi8KQEAgLTIwODQsMTU1ICsy MDg0LDIyIEBAIHNxbF92aWV3X2NvbHVtbl9uYW1lcyhzdHJ1Y3QgUGFyc2UgKnBhcnNlLCBzdHJ1 Y3QgVGFibGUgKnRhYmxlKQogewogCWFzc2VydCh0YWJsZSAhPSBOVUxMKTsKIAlhc3NlcnQoc3Bh Y2VfaXNfdmlldyh0YWJsZSkpOwotCS8qIEEgcG9zaXRpdmUgbkNvbCBtZWFucyB0aGUgY29sdW1u cyBuYW1lcyBmb3IgdGhpcyB2aWV3Ci0JICogYXJlIGFscmVhZHkga25vd24uCi0JICovCi0JaWYg KHRhYmxlLT5kZWYtPmZpZWxkX2NvdW50ID4gMCkKLQkJcmV0dXJuIDA7Ci0KLQkvKiBBIG5lZ2F0 aXZlIG5Db2wgaXMgYSBzcGVjaWFsIG1hcmtlciBtZWFuaW5nIHRoYXQgd2UgYXJlCi0JICogY3Vy cmVudGx5IHRyeWluZyB0byBjb21wdXRlIHRoZSBjb2x1bW4gbmFtZXMuICBJZiB3ZQotCSAqIGVu dGVyIHRoaXMgcm91dGluZSB3aXRoIGEgbmVnYXRpdmUgbkNvbCwgaXQgbWVhbnMgdHdvCi0JICog b3IgbW9yZSB2aWV3cyBmb3JtIGEgbG9vcCwgbGlrZSB0aGlzOgotCSAqCi0JICogICAgIENSRUFU RSBWSUVXIG9uZSBBUyBTRUxFQ1QgKiBGUk9NIHR3bzsKLQkgKiAgICAgQ1JFQVRFIFZJRVcgdHdv IEFTIFNFTEVDVCAqIEZST00gb25lOwotCSAqCi0JICogQWN0dWFsbHksIHRoZSBlcnJvciBhYm92 ZSBpcyBub3cgY2F1Z2h0IHByaW9yIHRvCi0JICogcmVhY2hpbmcgdGhpcyBwb2ludC4gQnV0IHRo ZSBmb2xsb3dpbmcgdGVzdCBpcyBzdGlsbAotCSAqIGltcG9ydGFudCBhcyBpdCBkb2VzIGNvbWUg dXAgaW4gdGhlIGZvbGxvd2luZzoKLQkgKgotCSAqICAgICBDUkVBVEUgVEFCTEUgbWFpbi5leDEo YSk7Ci0JICogICAgIENSRUFURSBURU1QIFZJRVcgZXgxIEFTIFNFTEVDVCBhIEZST00gZXgxOwot CSAqICAgICBTRUxFQ1QgKiBGUk9NIHRlbXAuZXgxOwotCSAqLwotCWlmICgoaW50KXRhYmxlLT5k ZWYtPmZpZWxkX2NvdW50IDwgMCkgewotCQlzcWxpdGUzRXJyb3JNc2cocGFyc2UsICJ2aWV3ICVz IGlzIGNpcmN1bGFybHkgZGVmaW5lZCIsCi0JCQkJdGFibGUtPmRlZi0+bmFtZSk7CisJc3RydWN0 IHNxbGl0ZTMgKmRiID0gcGFyc2UtPmRiOworCXN0cnVjdCBTZWxlY3QgKnNlbGVjdDsKKwlpZiAo c3FsX3ZpZXdfY29tcGlsZShkYiwgdGFibGUtPmRlZi0+b3B0cy5zcWwsICZzZWxlY3QpICE9IDAp IHsKKwkJZGlhZ19sb2coKTsKIAkJcmV0dXJuIC0xOwogCX0KLQotCS8qIElmIHdlIGdldCB0aGlz IGZhciwgaXQgbWVhbnMgd2UgbmVlZCB0byBjb21wdXRlIHRoZQotCSAqIHRhYmxlIG5hbWVzLiBO b3RlIHRoYXQgdGhlIGNhbGwgdG8KLQkgKiBzcWxpdGUzUmVzdWx0U2V0T2ZTZWxlY3QoKSB3aWxs IGV4cGFuZCBhbnkgIioiIGVsZW1lbnRzCi0JICogaW4gdGhlIHJlc3VsdHMgc2V0IG9mIHRoZSB2 aWV3IGFuZCB3aWxsIGFzc2lnbiBjdXJzb3JzCi0JICogdG8gdGhlIGVsZW1lbnRzIG9mIHRoZSBG Uk9NIGNsYXVzZS4gIEJ1dCB3ZSBkbyBub3Qgd2FudAotCSAqIHRoZXNlIGNoYW5nZXMgdG8gYmUg cGVybWFuZW50LiAgU28gdGhlIGNvbXB1dGF0aW9uIGlzCi0JICogZG9uZSBvbiBhIGNvcHkgb2Yg dGhlIFNFTEVDVCBzdGF0ZW1lbnQgdGhhdCBkZWZpbmVzIHRoZQotCSAqIHZpZXcuCi0JICovCi0J YXNzZXJ0KHRhYmxlLT5wU2VsZWN0ICE9IE5VTEwpOwotCXNxbGl0ZTMgKmRiID0gcGFyc2UtPmRi OwotCXN0cnVjdCBTZWxlY3QgKnNlbGVjdCA9IHNxbGl0ZTNTZWxlY3REdXAoZGIsIHRhYmxlLT5w U2VsZWN0LCAwKTsKLQlpZiAoc2VsZWN0ID09IE5VTEwpCi0JCXJldHVybiAtMTsKLQlpbnQgbiA9 IHBhcnNlLT5uVGFiOwogCXNxbGl0ZTNTcmNMaXN0QXNzaWduQ3Vyc29ycyhwYXJzZSwgc2VsZWN0 LT5wU3JjKTsKLQl0YWJsZS0+ZGVmLT5maWVsZF9jb3VudCA9IC0xOwotCWRiLT5sb29rYXNpZGUu YkRpc2FibGUrKzsKLQlzdHJ1Y3QgVGFibGUgKnNlbF90YWIgPSBzcWxpdGUzUmVzdWx0U2V0T2ZT ZWxlY3QocGFyc2UsIHNlbGVjdCk7Ci0JcGFyc2UtPm5UYWIgPSBuOwotCWludCByYyA9IDA7Ci0J LyogR2V0IHNlcnZlciBjaGVja3MuICovCi0JRXhwckxpc3QgKmNoZWNrcyA9IHNwYWNlX2NoZWNr c19leHByX2xpc3QodGFibGUtPmRlZi0+aWQpOwotCWlmIChjaGVja3MgIT0gTlVMTCkgewotCQkv KiBDUkVBVEUgVklFVyBuYW1lKGFyZ2xpc3QpIEFTIC4uLgotCQkgKiBUaGUgbmFtZXMgb2YgdGhl IGNvbHVtbnMgaW4gdGhlIHRhYmxlIGFyZSB0YWtlbgotCQkgKiBmcm9tIGFyZ2xpc3Qgd2hpY2gg aXMgc3RvcmVkIGluIHRhYmxlLT5wQ2hlY2suCi0JCSAqIFRoZSBwQ2hlY2sgZmllbGQgbm9ybWFs bHkgaG9sZHMgQ0hFQ0sKLQkJICogY29uc3RyYWludHMgb24gYW4gb3JkaW5hcnkgdGFibGUsIGJ1 dCBmb3IgYQotCQkgKiBWSUVXIGl0IGhvbGRzIHRoZSBsaXN0IG9mIGNvbHVtbiBuYW1lcy4KLQkJ ICovCi0JCXN0cnVjdCBzcGFjZV9kZWYgKm9sZF9kZWYgPSB0YWJsZS0+ZGVmOwotCQlzcWxpdGUz Q29sdW1uc0Zyb21FeHByTGlzdChwYXJzZSwgY2hlY2tzLCB0YWJsZSk7Ci0JCWlmIChzcWxfdGFi bGVfZGVmX3JlYnVpbGQoZGIsIHRhYmxlKSAhPSAwKSB7Ci0JCQlyYyA9IC0xOwotCQl9IGVsc2Ug ewotCQkJc3BhY2VfZGVmX2RlbGV0ZShvbGRfZGVmKTsKLQkJfQotCQlpZiAoZGItPm1hbGxvY0Zh aWxlZCA9PSAwICYmIHBhcnNlLT5uRXJyID09IDAKLQkJICAgICYmIChpbnQpdGFibGUtPmRlZi0+ ZmllbGRfY291bnQgPT0gc2VsZWN0LT5wRUxpc3QtPm5FeHByKSB7Ci0JCQlzcWxpdGUzU2VsZWN0 QWRkQ29sdW1uVHlwZUFuZENvbGxhdGlvbihwYXJzZSwgdGFibGUsCi0JCQkJCQkJICAgICAgIHNl bGVjdCk7Ci0JCX0KLQl9IGVsc2UgaWYgKHNlbF90YWIgIT0gTlVMTCkgewotCQkvKiBDUkVBVEUg VklFVyBuYW1lIEFTLi4uICB3aXRob3V0IGFuIGFyZ3VtZW50Ci0JCSAqIGxpc3QuICBDb25zdHJ1 Y3QgdGhlIGNvbHVtbiBuYW1lcyBmcm9tIHRoZQotCQkgKiBTRUxFQ1Qgc3RhdGVtZW50IHRoYXQg ZGVmaW5lcyB0aGUgdmlldy4KLQkJICovCi0JCWFzc2VydCh0YWJsZS0+YUNvbCA9PSBOVUxMKTsK LQkJYXNzZXJ0KHNlbF90YWItPmRlZi0+b3B0cy50ZW1wb3JhcnkpOwotCQlzdHJ1Y3Qgc3BhY2Vf ZGVmICpvbGRfZGVmID0gdGFibGUtPmRlZjsKLQkJc3RydWN0IHNwYWNlX2RlZiAqbmV3X2RlZiA9 Ci0JCQlzcWxfZXBoZW1lcmFsX3NwYWNlX2RlZl9uZXcocGFyc2UsCi0JCQkJCQkgICAgb2xkX2Rl Zi0+bmFtZSk7Ci0JCWlmIChuZXdfZGVmID09IE5VTEwpIHsKLQkJCXJjID0gLTE7Ci0JCX0gZWxz ZSB7Ci0JCQltZW1jcHkobmV3X2RlZiwgb2xkX2RlZiwKLQkJCSAgICAgICBzaXplb2Yoc3RydWN0 IHNwYWNlX2RlZikpOwotCQkJbmV3X2RlZi0+ZGljdCA9IE5VTEw7Ci0JCQluZXdfZGVmLT5vcHRz LnRlbXBvcmFyeSA9IHRydWU7Ci0JCQluZXdfZGVmLT5maWVsZHMgPSBzZWxfdGFiLT5kZWYtPmZp ZWxkczsKLQkJCW5ld19kZWYtPmZpZWxkX2NvdW50ID0KLQkJCQlzZWxfdGFiLT5kZWYtPmZpZWxk X2NvdW50OwotCQkJdGFibGUtPmRlZiA9IG5ld19kZWY7Ci0JCQlpZiAoc3FsX3RhYmxlX2RlZl9y ZWJ1aWxkKGRiLCB0YWJsZSkgIT0gMCkKLQkJCQlyYyA9IC0xOwotCQl9Ci0JCXRhYmxlLT5hQ29s ID0gc2VsX3RhYi0+YUNvbDsKLQkJc2VsX3RhYi0+YUNvbCA9IE5VTEw7Ci0JCXNlbF90YWItPmRl ZiA9IG9sZF9kZWY7Ci0JCXNlbF90YWItPmRlZi0+ZmllbGRzID0gTlVMTDsKLQkJc2VsX3RhYi0+ ZGVmLT5maWVsZF9jb3VudCA9IDA7Ci0JfSBlbHNlIHsKLQkJdGFibGUtPmRlZi0+ZmllbGRfY291 bnQgPSAwOwotCQlyYyA9IC0xOwotCX0KLQlzcWxpdGUzRGVsZXRlVGFibGUoZGIsIHNlbF90YWIp OwotCXNxbGl0ZTNTZWxlY3REZWxldGUoZGIsIHNlbGVjdCk7Ci0JZGItPmxvb2thc2lkZS5iRGlz YWJsZS0tOwotCi0JcmV0dXJuIHJjOworCXJldHVybiAwOwogfQogCi0jaWZuZGVmIFNRTElURV9P TUlUX1ZJRVcKLS8qCi0gKiBDbGVhciB0aGUgY29sdW1uIG5hbWVzIGZyb20gZXZlcnkgVklFVyBp biBkYXRhYmFzZSBpZHguCi0gKi8KLXN0YXRpYyB2b2lkCi1zcWxpdGVWaWV3UmVzZXRBbGwoc3Fs aXRlMyAqIGRiKQordm9pZAorc3FsX3N0b3JlX3NlbGVjdChzdHJ1Y3QgUGFyc2UgKnBhcnNlX2Nv bnRleHQsIHN0cnVjdCBTZWxlY3QgKnNlbGVjdCkKIHsKLQlIYXNoRWxlbSAqaTsKLQlmb3IgKGkg PSBzcWxpdGVIYXNoRmlyc3QoJmRiLT5wU2NoZW1hLT50YmxIYXNoKTsgaTsKLQkgICAgIGkgPSBz cWxpdGVIYXNoTmV4dChpKSkgewotCQlUYWJsZSAqcFRhYiA9IHNxbGl0ZUhhc2hEYXRhKGkpOwot CQlhc3NlcnQocFRhYi0+ZGVmLT5vcHRzLmlzX3ZpZXcgPT0gKHBUYWItPnBTZWxlY3QgIT0gTlVM TCkpOwotCQlpZiAocFRhYi0+ZGVmLT5vcHRzLmlzX3ZpZXcpIHsKLQkJCXNxbGl0ZTNEYkZyZWUo ZGIsIHBUYWItPmFDb2wpOwotCQkJc3RydWN0IHNwYWNlX2RlZiAqb2xkX2RlZiA9IHBUYWItPmRl ZjsKLQkJCWFzc2VydChvbGRfZGVmLT5vcHRzLnRlbXBvcmFyeSA9PSBmYWxzZSk7Ci0JCQlwVGFi LT5kZWYgPSBzcGFjZV9kZWZfbmV3KG9sZF9kZWYtPmlkLCBvbGRfZGVmLT51aWQsCi0JCQkJCQkg IDAsIG9sZF9kZWYtPm5hbWUsCi0JCQkJCQkgIHN0cmxlbihvbGRfZGVmLT5uYW1lKSwKLQkJCQkJ CSAgb2xkX2RlZi0+ZW5naW5lX25hbWUsCi0JCQkJCQkgIHN0cmxlbihvbGRfZGVmLT5lbmdpbmVf bmFtZSksCi0JCQkJCQkgICZvbGRfZGVmLT5vcHRzLAotCQkJCQkJICBOVUxMLCAwKTsKLQkJCWlm IChwVGFiLT5kZWYgPT0gTlVMTCkgewotCQkJCXNxbGl0ZTNPb21GYXVsdChkYik7Ci0JCQkJcFRh Yi0+ZGVmID0gb2xkX2RlZjsKLQkJCX0gZWxzZSB7Ci0JCQkJc3BhY2VfZGVmX2RlbGV0ZShvbGRf ZGVmKTsKLQkJCX0KLQkJCXBUYWItPmFDb2wgPSBOVUxMOwotCQkJcFRhYi0+ZGVmLT5maWVsZF9j b3VudCA9IDA7Ci0JCX0KLQl9CisJU2VsZWN0ICpzZWxlY3RfY29weSA9IHNxbGl0ZTNTZWxlY3RE dXAocGFyc2VfY29udGV4dC0+ZGIsIHNlbGVjdCwgMCk7CisJcGFyc2VfY29udGV4dC0+cGFyc2Vk X3NlbGVjdCA9IHNlbGVjdF9jb3B5OwogfQotI2Vsc2UKLSNkZWZpbmUgc3FsaXRlVmlld1Jlc2V0 QWxsKEEsQikKLSNlbmRpZgkJCQkvKiBTUUxJVEVfT01JVF9WSUVXICovCiAKIC8qKgogICogUmVt b3ZlIGVudHJpZXMgZnJvbSB0aGUgX3NxbF9zdGF0MSBhbmQgX3NxbF9zdGF0NApAQCAtMjI4Myw3 ICsyMTUwLDYgQEAgc3RhdGljIHZvaWQKIHNxbF9jb2RlX2Ryb3BfdGFibGUoc3RydWN0IFBhcnNl ICpwYXJzZV9jb250ZXh0LCBzdHJ1Y3Qgc3BhY2UgKnNwYWNlLAogCQkgICAgYm9vbCBpc192aWV3 KQogewotCXN0cnVjdCBzcWxpdGUzICpkYiA9IHBhcnNlX2NvbnRleHQtPmRiOwogCXN0cnVjdCBW ZGJlICp2ID0gc3FsaXRlM0dldFZkYmUocGFyc2VfY29udGV4dCk7CiAJYXNzZXJ0KHYgIT0gTlVM TCk7CiAJLyoKQEAgLTIzMTMsNiArMjE3OSw3IEBAIHNxbF9jb2RlX2Ryb3BfdGFibGUoc3RydWN0 IFBhcnNlICpwYXJzZV9jb250ZXh0LCBzdHJ1Y3Qgc3BhY2UgKnNwYWNlLAogCWludCBzcGFjZV9p ZF9yZWcgPSArK3BhcnNlX2NvbnRleHQtPm5NZW07CiAJaW50IHNwYWNlX2lkID0gc3BhY2UtPmRl Zi0+aWQ7CiAJc3FsaXRlM1ZkYmVBZGRPcDIodiwgT1BfSW50ZWdlciwgc3BhY2VfaWQsIHNwYWNl X2lkX3JlZyk7CisJc3FsaXRlM1ZkYmVBZGRPcDEodiwgT1BfQ2hlY2tWaWV3UmVmZXJlbmNlcywg c3BhY2VfaWRfcmVnKTsKIAlpZiAoc3BhY2UtPnNlcXVlbmNlICE9IE5VTEwpIHsKIAkJLyogRGVs ZXRlIGVudHJ5IGZyb20gX3NwYWNlX3NlcXVlbmNlLiAqLwogCQlzcWxpdGUzVmRiZUFkZE9wMyh2 LCBPUF9NYWtlUmVjb3JkLCBzcGFjZV9pZF9yZWcsIDEsCkBAIC0yMzcxLDE0ICsyMjM4LDYgQEAg c3FsX2NvZGVfZHJvcF90YWJsZShzdHJ1Y3QgUGFyc2UgKnBhcnNlX2NvbnRleHQsIHN0cnVjdCBz cGFjZSAqc3BhY2UsCiAJVmRiZUNvbW1lbnQoKHYsICJEZWxldGUgZW50cnkgZnJvbSBfc3BhY2Ui KSk7CiAJLyogUmVtb3ZlIHRoZSB0YWJsZSBlbnRyeSBmcm9tIFNRTGl0ZSdzIGludGVybmFsIHNj aGVtYS4gKi8KIAlzcWxpdGUzVmRiZUFkZE9wNCh2LCBPUF9Ecm9wVGFibGUsIDAsIDAsIDAsIHNw YWNlLT5kZWYtPm5hbWUsIDApOwotCi0JLyoKLQkgKiBSZXBsYWNlIHRvIF9zcGFjZS9faW5kZXgg d2lsbCBmYWlsIGlmIGFjdGl2ZQotCSAqIHRyYW5zYWN0aW9uLiBTbywgZG9uJ3QgcHJldGVuZCwg dGhhdCB3ZSBhcmUgYWJsZSB0bwotCSAqIGFueXRoaW5nIGJhY2suIFRvIGJlIGZpeGVkIHdoZW4g dHJhbnNhY3Rpb25zCi0JICogRERMIGFyZSBlbmFibGVkLgotCSAqLwotCXNxbGl0ZVZpZXdSZXNl dEFsbChkYik7CiB9CiAKIC8qKgpAQCAtMjkxNCw3ICsyNzczLDcgQEAgc3FsX2NyZWF0ZV9pbmRl eChzdHJ1Y3QgUGFyc2UgKnBhcnNlLCBzdHJ1Y3QgVG9rZW4gKnRva2VuLAogCWFzc2VydChwVGFi ICE9IDApOwogCWFzc2VydChwYXJzZS0+bkVyciA9PSAwKTsKICNpZm5kZWYgU1FMSVRFX09NSVRf VklFVwotCWlmIChwVGFiLT5wU2VsZWN0KSB7CisJaWYgKHBUYWItPmRlZi0+b3B0cy5pc192aWV3 KSB7CiAJCXNxbGl0ZTNFcnJvck1zZyhwYXJzZSwgInZpZXdzIG1heSBub3QgYmUgaW5kZXhlZCIp OwogCQlnb3RvIGV4aXRfY3JlYXRlX2luZGV4OwogCX0KQEAgLTM2MzksNiArMzQ5OCwyMiBAQCBz cWxpdGUzU3JjTGlzdEFwcGVuZChzcWxpdGUzICogZGIsCS8qIENvbm5lY3Rpb24gdG8gbm90aWZ5 IG9mIG1hbGxvYyBmYWlsdXJlcyAqLwogCXJldHVybiBwTGlzdDsKIH0KIAorc3RydWN0IFNyY0xp c3QgKgorc3FsX3NyY19saXN0X2FwcGVuZF91bmlxdWUoc3RydWN0IHNxbGl0ZTMgKmRiLCBzdHJ1 Y3QgU3JjTGlzdCAqbGlzdCwKKwkJCSAgIGNvbnN0IGNoYXIgKm5ld19uYW1lKQoreworCWFzc2Vy dChsaXN0ICE9IE5VTEwpOworCWFzc2VydChuZXdfbmFtZSAhPSBOVUxMKTsKKworCWZvciAoaW50 IGkgPSAwOyBpIDwgbGlzdC0+blNyYzsgKytpKSB7CisJCWNvbnN0IGNoYXIgKm5hbWUgPSBsaXN0 LT5hW2ldLnpOYW1lOworCQlpZiAobmFtZSAhPSBOVUxMICYmIHN0cmNtcChuZXdfbmFtZSwgbmFt ZSkgPT0gMCkKKwkJCXJldHVybiBsaXN0OworCX0KKwlzdHJ1Y3QgVG9rZW4gdG9rZW4gPSB7IG5l d19uYW1lLCBzdHJsZW4obmV3X25hbWUpLCAwIH07CisJcmV0dXJuIHNxbGl0ZTNTcmNMaXN0QXBw ZW5kKGRiLCBsaXN0LCAmdG9rZW4pOworfQorCiAvKgogICogQXNzaWduIFZkYmVDdXJzb3IgaW5k ZXggbnVtYmVycyB0byBhbGwgdGFibGVzIGluIGEgU3JjTGlzdAogICovCkBAIC0zNjgwLDcgKzM1 NTUsNyBAQCBzcWxpdGUzU3JjTGlzdERlbGV0ZShzcWxpdGUzICogZGIsIFNyY0xpc3QgKiBwTGlz dCkKIAkJaWYgKHBJdGVtLT5mZy5pc1RhYkZ1bmMpCiAJCQlzcWxfZXhwcl9saXN0X2RlbGV0ZShk YiwgcEl0ZW0tPnUxLnBGdW5jQXJnKTsKIAkJc3FsaXRlM0RlbGV0ZVRhYmxlKGRiLCBwSXRlbS0+ cFRhYik7Ci0JCXNxbGl0ZTNTZWxlY3REZWxldGUoZGIsIHBJdGVtLT5wU2VsZWN0KTsKKwkJc3Fs X3NlbGVjdF9kZWxldGUoZGIsIHBJdGVtLT5wU2VsZWN0KTsKIAkJc3FsX2V4cHJfZGVsZXRlKGRi LCBwSXRlbS0+cE9uLCBmYWxzZSk7CiAJCXNxbGl0ZTNJZExpc3REZWxldGUoZGIsIHBJdGVtLT5w VXNpbmcpOwogCX0KQEAgLTM3MzksNyArMzYxNCw3IEBAIHNxbGl0ZTNTcmNMaXN0QXBwZW5kRnJv bVRlcm0oUGFyc2UgKiBwUGFyc2UsCS8qIFBhcnNpbmcgY29udGV4dCAqLwogCWFzc2VydChwID09 IDApOwogCXNxbF9leHByX2RlbGV0ZShkYiwgcE9uLCBmYWxzZSk7CiAJc3FsaXRlM0lkTGlzdERl bGV0ZShkYiwgcFVzaW5nKTsKLQlzcWxpdGUzU2VsZWN0RGVsZXRlKGRiLCBwU3VicXVlcnkpOwor CXNxbF9zZWxlY3RfZGVsZXRlKGRiLCBwU3VicXVlcnkpOwogCXJldHVybiAwOwogfQogCkBAIC00 MTQxLDcgKzQwMTYsNyBAQCBzcWxpdGUzV2l0aEFkZChQYXJzZSAqIHBQYXJzZSwJLyogUGFyc2lu ZyBjb250ZXh0ICovCiAKIAlpZiAoZGItPm1hbGxvY0ZhaWxlZCkgewogCQlzcWxfZXhwcl9saXN0 X2RlbGV0ZShkYiwgcEFyZ2xpc3QpOwotCQlzcWxpdGUzU2VsZWN0RGVsZXRlKGRiLCBwUXVlcnkp OworCQlzcWxfc2VsZWN0X2RlbGV0ZShkYiwgcFF1ZXJ5KTsKIAkJc3FsaXRlM0RiRnJlZShkYiwg ek5hbWUpOwogCQlwTmV3ID0gcFdpdGg7CiAJfSBlbHNlIHsKQEAgLTQxNjYsNyArNDA0MSw3IEBA IHNxbGl0ZTNXaXRoRGVsZXRlKHNxbGl0ZTMgKiBkYiwgV2l0aCAqIHBXaXRoKQogCQlmb3IgKGkg PSAwOyBpIDwgcFdpdGgtPm5DdGU7IGkrKykgewogCQkJc3RydWN0IEN0ZSAqcEN0ZSA9ICZwV2l0 aC0+YVtpXTsKIAkJCXNxbF9leHByX2xpc3RfZGVsZXRlKGRiLCBwQ3RlLT5wQ29scyk7Ci0JCQlz cWxpdGUzU2VsZWN0RGVsZXRlKGRiLCBwQ3RlLT5wU2VsZWN0KTsKKwkJCXNxbF9zZWxlY3RfZGVs ZXRlKGRiLCBwQ3RlLT5wU2VsZWN0KTsKIAkJCXNxbGl0ZTNEYkZyZWUoZGIsIHBDdGUtPnpOYW1l KTsKIAkJfQogCQlzcWxpdGUzRGJGcmVlKGRiLCBwV2l0aCk7CmRpZmYgLS1naXQgYS9zcmMvYm94 L3NxbC9kZWxldGUuYyBiL3NyYy9ib3gvc3FsL2RlbGV0ZS5jCmluZGV4IGRkYWQ1NGIzZS4uYWIz NzFjZGIxIDEwMDY0NAotLS0gYS9zcmMvYm94L3NxbC9kZWxldGUuYworKysgYi9zcmMvYm94L3Nx bC9kZWxldGUuYwpAQCAtNjgsNyArNjgsNyBAQCBzcWxfbWF0ZXJpYWxpemVfdmlldyhzdHJ1Y3Qg UGFyc2UgKnBhcnNlLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgRXhwciAqd2hlcmUsCiAJc3Ry dWN0IFNlbGVjdERlc3QgZGVzdDsKIAlzcWxpdGUzU2VsZWN0RGVzdEluaXQoJmRlc3QsIFNSVF9F cGhlbVRhYiwgY3Vyc29yKTsKIAlzcWxpdGUzU2VsZWN0KHBhcnNlLCBzZWxlY3QsICZkZXN0KTsK LQlzcWxpdGUzU2VsZWN0RGVsZXRlKGRiLCBzZWxlY3QpOworCXNxbF9zZWxlY3RfZGVsZXRlKGRi LCBzZWxlY3QpOwogfQogCiB2b2lkCkBAIC0zMzksNyArMzM5LDcgQEAgc3FsX3RhYmxlX2RlbGV0 ZV9mcm9tKHN0cnVjdCBQYXJzZSAqcGFyc2UsIHN0cnVjdCBTcmNMaXN0ICp0YWJfbGlzdCwKIAkJ aWYgKG9uZV9wYXNzICE9IE9ORVBBU1NfT0ZGKSB7CiAJCQkvKiBPUF9Gb3VuZCB3aWxsIHVzZSBh biB1bnBhY2tlZCBrZXkuICovCiAJCQlhc3NlcnQoa2V5X2xlbiA9PSBwa19sZW4pOwotCQkJYXNz ZXJ0KHBrICE9IE5VTEwgfHwgdGFibGUtPnBTZWxlY3QgIT0gTlVMTCk7CisJCQlhc3NlcnQocGsg IT0gTlVMTCB8fCB0YWJsZS0+ZGVmLT5vcHRzLmlzX3ZpZXcpOwogCQkJc3FsaXRlM1ZkYmVBZGRP cDRJbnQodiwgT1BfTm90Rm91bmQsIHRhYl9jdXJzb3IsCiAJCQkJCSAgICAgYWRkcl9ieXBhc3Ms IHJlZ19rZXksIGtleV9sZW4pOwogCkBAIC00ODMsNyArNDgzLDcgQEAgc3FsX2dlbmVyYXRlX3Jv d19kZWxldGUoc3RydWN0IFBhcnNlICpwYXJzZSwgc3RydWN0IFRhYmxlICp0YWJsZSwKIAkgKiBv ZiB0aGUgREVMRVRFIHN0YXRlbWVudCBpcyB0byBmaXJlIHRoZSBJTlNURUFEIE9GCiAJICogdHJp Z2dlcnMpLgogCSAqLwotCWlmICh0YWJsZS0+cFNlbGVjdCA9PSBOVUxMKSB7CisJaWYgKCF0YWJs ZS0+ZGVmLT5vcHRzLmlzX3ZpZXcpIHsKIAkJdWludDhfdCBwNSA9IDA7CiAJCXNxbGl0ZTNWZGJl QWRkT3AyKHYsIE9QX0RlbGV0ZSwgY3Vyc29yLAogCQkJCSAgKG5lZWRfdXBkYXRlX2NvdW50ID8g T1BGTEFHX05DSEFOR0UgOiAwKSk7CmRpZmYgLS1naXQgYS9zcmMvYm94L3NxbC9leHByLmMgYi9z cmMvYm94L3NxbC9leHByLmMKaW5kZXggODg2NmY2ZmVkLi5hMDQ3NWZiZjMgMTAwNjQ0Ci0tLSBh L3NyYy9ib3gvc3FsL2V4cHIuYworKysgYi9zcmMvYm94L3NxbC9leHByLmMKQEAgLTk1Myw3ICs5 NTMsNyBAQCBzcWxpdGUzUEV4cHJBZGRTZWxlY3QoUGFyc2UgKiBwUGFyc2UsIEV4cHIgKiBwRXhw ciwgU2VsZWN0ICogcFNlbGVjdCkKIAkJc3FsaXRlM0V4cHJTZXRIZWlnaHRBbmRGbGFncyhwUGFy c2UsIHBFeHByKTsKIAl9IGVsc2UgewogCQlhc3NlcnQocFBhcnNlLT5kYi0+bWFsbG9jRmFpbGVk KTsKLQkJc3FsaXRlM1NlbGVjdERlbGV0ZShwUGFyc2UtPmRiLCBwU2VsZWN0KTsKKwkJc3FsX3Nl bGVjdF9kZWxldGUocFBhcnNlLT5kYiwgcFNlbGVjdCk7CiAJfQogfQogCkBAIC0xMTUyLDcgKzEx NTIsNyBAQCBzcWxpdGUzRXhwckRlbGV0ZU5OKHNxbGl0ZTMgKiBkYiwgRXhwciAqIHAsIGJvb2wg ZXh0ZXJuX2FsbG9jKQogCQlpZiAoIWV4dGVybl9hbGxvYykKIAkJCXNxbF9leHByX2RlbGV0ZShk YiwgcC0+cFJpZ2h0LCBleHRlcm5fYWxsb2MpOwogCQlpZiAoRXhwckhhc1Byb3BlcnR5KHAsIEVQ X3hJc1NlbGVjdCkpIHsKLQkJCXNxbGl0ZTNTZWxlY3REZWxldGUoZGIsIHAtPngucFNlbGVjdCk7 CisJCQlzcWxfc2VsZWN0X2RlbGV0ZShkYiwgcC0+eC5wU2VsZWN0KTsKIAkJfSBlbHNlIHsKIAkJ CXNxbF9leHByX2xpc3RfZGVsZXRlKGRiLCBwLT54LnBMaXN0KTsKIAkJfQpAQCAtMjE5MSw3ICsy MTkxLDYgQEAgaXNDYW5kaWRhdGVGb3JJbk9wdChFeHByICogcFgpCiAJCXJldHVybiAwOwkvKiBG Uk9NIGlzIG5vdCBhIHN1YnF1ZXJ5IG9yIHZpZXcgKi8KIAlwVGFiID0gcFNyYy0+YVswXS5wVGFi OwogCWFzc2VydChwVGFiICE9IDApOwotCWFzc2VydChwVGFiLT5kZWYtPm9wdHMuaXNfdmlldyA9 PSAocFRhYi0+cFNlbGVjdCAhPSBOVUxMKSk7CiAJLyogRlJPTSBjbGF1c2UgaXMgbm90IGEgdmll dyAqLwogCWFzc2VydCghcFRhYi0+ZGVmLT5vcHRzLmlzX3ZpZXcpOwogCXBFTGlzdCA9IHAtPnBF TGlzdDsKZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL2ZrZXkuYyBiL3NyYy9ib3gvc3FsL2ZrZXku YwppbmRleCA3MGViZWY4OWYuLjI2NDRhMjZmOSAxMDA2NDQKLS0tIGEvc3JjL2JveC9zcWwvZmtl eS5jCisrKyBiL3NyYy9ib3gvc3FsL2ZrZXkuYwpAQCAtNzQ0LDcgKzc0NCw3IEBAIGZrVHJpZ2dl ckRlbGV0ZShzcWxpdGUzICogZGJNZW0sIFRyaWdnZXIgKiBwKQogCQlUcmlnZ2VyU3RlcCAqcFN0 ZXAgPSBwLT5zdGVwX2xpc3Q7CiAJCXNxbF9leHByX2RlbGV0ZShkYk1lbSwgcFN0ZXAtPnBXaGVy ZSwgZmFsc2UpOwogCQlzcWxfZXhwcl9saXN0X2RlbGV0ZShkYk1lbSwgcFN0ZXAtPnBFeHByTGlz dCk7Ci0JCXNxbGl0ZTNTZWxlY3REZWxldGUoZGJNZW0sIHBTdGVwLT5wU2VsZWN0KTsKKwkJc3Fs X3NlbGVjdF9kZWxldGUoZGJNZW0sIHBTdGVwLT5wU2VsZWN0KTsKIAkJc3FsX2V4cHJfZGVsZXRl KGRiTWVtLCBwLT5wV2hlbiwgZmFsc2UpOwogCQlzcWxpdGUzRGJGcmVlKGRiTWVtLCBwKTsKIAl9 CkBAIC0xNDE4LDcgKzE0MTgsNyBAQCBma0FjdGlvblRyaWdnZXIoUGFyc2UgKiBwUGFyc2UsCS8q IFBhcnNlIGNvbnRleHQgKi8KIAkJc3FsX2V4cHJfZGVsZXRlKGRiLCBwV2hlcmUsIGZhbHNlKTsK IAkJc3FsX2V4cHJfZGVsZXRlKGRiLCBwV2hlbiwgZmFsc2UpOwogCQlzcWxfZXhwcl9saXN0X2Rl bGV0ZShkYiwgcExpc3QpOwotCQlzcWxpdGUzU2VsZWN0RGVsZXRlKGRiLCBwU2VsZWN0KTsKKwkJ c3FsX3NlbGVjdF9kZWxldGUoZGIsIHBTZWxlY3QpOwogCQlpZiAoZGItPm1hbGxvY0ZhaWxlZCA9 PSAxKSB7CiAJCQlma1RyaWdnZXJEZWxldGUoZGIsIHBUcmlnZ2VyKTsKIAkJCXJldHVybiAwOwpk aWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvaW5zZXJ0LmMgYi9zcmMvYm94L3NxbC9pbnNlcnQuYwpp bmRleCA1OWM2MWM3MDMuLmFmZGU0M2E2NCAxMDA2NDQKLS0tIGEvc3JjL2JveC9zcWwvaW5zZXJ0 LmMKKysrIGIvc3JjL2JveC9zcWwvaW5zZXJ0LmMKQEAgLTM3MSw3ICszNzEsNyBAQCBzcWxpdGUz SW5zZXJ0KFBhcnNlICogcFBhcnNlLAkvKiBQYXJzZXIgY29udGV4dCAqLwogCSAgICAmJiBwU2Vs ZWN0LT5wUHJpb3IgPT0gMCkgewogCQlwTGlzdCA9IHBTZWxlY3QtPnBFTGlzdDsKIAkJcFNlbGVj dC0+cEVMaXN0ID0gMDsKLQkJc3FsaXRlM1NlbGVjdERlbGV0ZShkYiwgcFNlbGVjdCk7CisJCXNx bF9zZWxlY3RfZGVsZXRlKGRiLCBwU2VsZWN0KTsKIAkJcFNlbGVjdCA9IDA7CiAJfQogCkBAIC05 MjAsNyArOTIwLDcgQEAgc3FsaXRlM0luc2VydChQYXJzZSAqIHBQYXJzZSwJLyogUGFyc2VyIGNv bnRleHQgKi8KICBpbnNlcnRfY2xlYW51cDoKIAlzcWxpdGUzU3JjTGlzdERlbGV0ZShkYiwgcFRh Ykxpc3QpOwogCXNxbF9leHByX2xpc3RfZGVsZXRlKGRiLCBwTGlzdCk7Ci0Jc3FsaXRlM1NlbGVj dERlbGV0ZShkYiwgcFNlbGVjdCk7CisJc3FsX3NlbGVjdF9kZWxldGUoZGIsIHBTZWxlY3QpOwog CXNxbGl0ZTNJZExpc3REZWxldGUoZGIsIHBDb2x1bW4pOwogCXNxbGl0ZTNEYkZyZWUoZGIsIGFS ZWdJZHgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvcGFyc2UueSBiL3NyYy9ib3gvc3Fs L3BhcnNlLnkKaW5kZXggMmU1ZjM0OWM4Li5mYzVkMmYwYTYgMTAwNjQ0Ci0tLSBhL3NyYy9ib3gv c3FsL3BhcnNlLnkKKysrIGIvc3JjL2JveC9zcWwvcGFyc2UueQpAQCAtMTg0LDcgKzE4NCw3IEBA IGNyZWF0ZV90YWJsZV9hcmdzIDo6PSBMUCBjb2x1bW5saXN0IGNvbnNsaXN0X29wdChYKSBSUChF KS4gewogfQogY3JlYXRlX3RhYmxlX2FyZ3MgOjo9IEFTIHNlbGVjdChTKS4gewogICBzcWxpdGUz RW5kVGFibGUocFBhcnNlLDAsMCxTKTsKLSAgc3FsaXRlM1NlbGVjdERlbGV0ZShwUGFyc2UtPmRi LCBTKTsKKyAgc3FsX3NlbGVjdF9kZWxldGUocFBhcnNlLT5kYiwgUyk7CiB9CiBjb2x1bW5saXN0 IDo6PSBjb2x1bW5saXN0IENPTU1BIGNvbHVtbm5hbWUgY2FyZ2xpc3QuCiBjb2x1bW5saXN0IDo6 PSBjb2x1bW5uYW1lIGNhcmdsaXN0LgpAQCAtMzczLDcgKzM3MywxMCBAQCBpZmV4aXN0cyhBKSA6 Oj0gLiAgICAgICAgICAgIHtBID0gMDt9CiAlaWZuZGVmIFNRTElURV9PTUlUX1ZJRVcKIGNtZCA6 Oj0gY3JlYXRla3coWCkgVklFVyBpZm5vdGV4aXN0cyhFKSBubShZKSBlaWRsaXN0X29wdChDKQog ICAgICAgICAgIEFTIHNlbGVjdChTKS4gewotICBzcWxpdGUzQ3JlYXRlVmlldyhwUGFyc2UsICZY LCAmWSwgQywgUywgRSk7CisgIGlmICghcFBhcnNlLT5wYXJzZV9vbmx5KQorICAgIHNxbF9jcmVh dGVfdmlldyhwUGFyc2UsICZYLCAmWSwgQywgUywgRSk7CisgIGVsc2UKKyAgICBzcWxfc3RvcmVf c2VsZWN0KHBQYXJzZSwgUyk7CiB9CiBjbWQgOjo9IERST1AgVklFVyBpZmV4aXN0cyhFKSBmdWxs bmFtZShYKS4gewogICBzcWxfZHJvcF90YWJsZShwUGFyc2UsIFgsIDEsIEUpOwpAQCAtMzg4LDE1 ICszOTEsMTUgQEAgY21kIDo6PSBzZWxlY3QoWCkuICB7CiAJICBzcWxpdGUzU2VsZWN0KHBQYXJz ZSwgWCwgJmRlc3QpOwogICBlbHNlCiAJICBzcWxfZXhwcl9leHRyYWN0X3NlbGVjdChwUGFyc2Us IFgpOwotICBzcWxpdGUzU2VsZWN0RGVsZXRlKHBQYXJzZS0+ZGIsIFgpOworICBzcWxfc2VsZWN0 X2RlbGV0ZShwUGFyc2UtPmRiLCBYKTsKIH0KIAogJXR5cGUgc2VsZWN0IHtTZWxlY3QqfQotJWRl c3RydWN0b3Igc2VsZWN0IHtzcWxpdGUzU2VsZWN0RGVsZXRlKHBQYXJzZS0+ZGIsICQkKTt9Cisl ZGVzdHJ1Y3RvciBzZWxlY3Qge3NxbF9zZWxlY3RfZGVsZXRlKHBQYXJzZS0+ZGIsICQkKTt9CiAl dHlwZSBzZWxlY3Rub3dpdGgge1NlbGVjdCp9Ci0lZGVzdHJ1Y3RvciBzZWxlY3Rub3dpdGgge3Nx bGl0ZTNTZWxlY3REZWxldGUocFBhcnNlLT5kYiwgJCQpO30KKyVkZXN0cnVjdG9yIHNlbGVjdG5v d2l0aCB7c3FsX3NlbGVjdF9kZWxldGUocFBhcnNlLT5kYiwgJCQpO30KICV0eXBlIG9uZXNlbGVj dCB7U2VsZWN0Kn0KLSVkZXN0cnVjdG9yIG9uZXNlbGVjdCB7c3FsaXRlM1NlbGVjdERlbGV0ZShw UGFyc2UtPmRiLCAkJCk7fQorJWRlc3RydWN0b3Igb25lc2VsZWN0IHtzcWxfc2VsZWN0X2RlbGV0 ZShwUGFyc2UtPmRiLCAkJCk7fQogCiAlaW5jbHVkZSB7CiAgIC8qCkBAIC00NTMsNyArNDU2LDcg QEAgc2VsZWN0bm93aXRoKEEpIDo6PSBzZWxlY3Rub3dpdGgoQSkgbXVsdGlzZWxlY3Rfb3AoWSkg b25lc2VsZWN0KFopLiAgewogICAgIHBSaHMtPnNlbEZsYWdzICY9IH5TRl9NdWx0aVZhbHVlOwog ICAgIGlmKCBZIT1US19BTEwgKSBwUGFyc2UtPmhhc0NvbXBvdW5kID0gMTsKICAgfWVsc2V7Ci0g ICAgc3FsaXRlM1NlbGVjdERlbGV0ZShwUGFyc2UtPmRiLCBwTGhzKTsKKyAgICBzcWxfc2VsZWN0 X2RlbGV0ZShwUGFyc2UtPmRiLCBwTGhzKTsKICAgfQogICBBID0gcFJoczsKIH0KQEAgLTQ5Niw3 ICs0OTksNyBAQCBvbmVzZWxlY3QoQSkgOjo9IFNFTEVDVChTKSBkaXN0aW5jdChEKSBzZWxjb2xs aXN0KFcpIGZyb20oWCkgd2hlcmVfb3B0KFkpCiBvbmVzZWxlY3QoQSkgOjo9IHZhbHVlcyhBKS4K IAogJXR5cGUgdmFsdWVzIHtTZWxlY3QqfQotJWRlc3RydWN0b3IgdmFsdWVzIHtzcWxpdGUzU2Vs ZWN0RGVsZXRlKHBQYXJzZS0+ZGIsICQkKTt9CislZGVzdHJ1Y3RvciB2YWx1ZXMge3NxbF9zZWxl Y3RfZGVsZXRlKHBQYXJzZS0+ZGIsICQkKTt9CiB2YWx1ZXMoQSkgOjo9IFZBTFVFUyBMUCBuZXhw cmxpc3QoWCkgUlAuIHsKICAgQSA9IHNxbGl0ZTNTZWxlY3ROZXcocFBhcnNlLFgsMCwwLDAsMCww LFNGX1ZhbHVlcywwLDApOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvc2VsZWN0LmMgYi9z cmMvYm94L3NxbC9zZWxlY3QuYwppbmRleCAyYWEzNWExMTQuLjBiNjRhZWU3NCAxMDA2NDQKLS0t IGEvc3JjL2JveC9zcWwvc2VsZWN0LmMKKysrIGIvc3JjL2JveC9zcWwvc2VsZWN0LmMKQEAgLTIw NywxMSArMjA3LDggQEAgc3FsaXRlM1NlbGVjdFNldE5hbWUoU2VsZWN0ICogcCwgY29uc3QgY2hh ciAqek5hbWUpCiB9CiAjZW5kaWYKIAotLyoKLSAqIERlbGV0ZSB0aGUgZ2l2ZW4gU2VsZWN0IHN0 cnVjdHVyZSBhbmQgYWxsIG9mIGl0cyBzdWJzdHJ1Y3R1cmVzLgotICovCiB2b2lkCi1zcWxpdGUz U2VsZWN0RGVsZXRlKHNxbGl0ZTMgKiBkYiwgU2VsZWN0ICogcCkKK3NxbF9zZWxlY3RfZGVsZXRl KHNxbGl0ZTMgKmRiLCBTZWxlY3QgKnApCiB7CiAJaWYgKHApCiAJCWNsZWFyU2VsZWN0KGRiLCBw LCAxKTsKQEAgLTIyOCw2ICsyMjUsNDMgQEAgZmluZFJpZ2h0bW9zdChTZWxlY3QgKiBwKQogCXJl dHVybiBwOwogfQogCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5uZXIgY2FsbCBvZiBy ZWN1cnNpdmUgdHJhdmVyc2UgdGhyb3VnaAorICogc2VsZWN0IEFTVCBzdGFydGluZyBmcm9tIGlu dGVyZmFjZSBmdW5jdGlvbgorICogc3FsX3NlbGVjdF9leHBhbmRfZnJvbV90YWJsZXMoKS4KKyAq CisgKiBAcGFyYW0gdG9wX3NlbGVjdCBUaGUgcm9vdCBvZiBBU1QuCisgKiBAcGFyYW0gc3ViX3Nl bGVjdCBzdWItc2VsZWN0IG9mIGN1cnJlbnQgbGV2ZWwgcmVjdXJzaW9uLgorICovCitzdGF0aWMg dm9pZAorZXhwYW5kX25hbWVzX3N1Yl9zZWxlY3Qoc3RydWN0IFNlbGVjdCAqdG9wX3NlbGVjdCwK KwkJCXN0cnVjdCBTZWxlY3QgKnN1Yl9zZWxlY3QpCit7CisJYXNzZXJ0KHRvcF9zZWxlY3QgIT0g TlVMTCk7CisJYXNzZXJ0KHN1Yl9zZWxlY3QgIT0gTlVMTCk7CisJZm9yIChpbnQgaSA9IDA7IGkg PCBzdWJfc2VsZWN0LT5wU3JjLT5uU3JjOyArK2kpIHsKKwkJaWYgKHN1Yl9zZWxlY3QtPnBTcmMt PmFbaV0uek5hbWUgPT0gTlVMTCkgeworCQkJZXhwYW5kX25hbWVzX3N1Yl9zZWxlY3QodG9wX3Nl bGVjdCwKKwkJCQkJCXN1Yl9zZWxlY3QtPnBTcmMtPmFbaV0ucFNlbGVjdCk7CisJCX0gZWxzZSB7 CisJCQl0b3Bfc2VsZWN0LT5wU3JjID0KKwkJCQlzcWxfc3JjX2xpc3RfYXBwZW5kX3VuaXF1ZShz cWxfZ2V0KCksCisJCQkJCQkJICAgdG9wX3NlbGVjdC0+cFNyYywKKwkJCQkJCQkgICBzdWJfc2Vs ZWN0LT5wU3JjLT5hW2ldLnpOYW1lKTsKKwkJfQorCX0KK30KKwordm9pZAorc3FsX3NlbGVjdF9l eHBhbmRfZnJvbV90YWJsZXMoc3RydWN0IFNlbGVjdCAqc2VsZWN0KQoreworCWFzc2VydChzZWxl Y3QgIT0gTlVMTCk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBzZWxlY3QtPnBTcmMtPm5TcmM7ICsr aSkKKwkJaWYgKHNlbGVjdC0+cFNyYy0+YVtpXS56TmFtZSA9PSBOVUxMKQorCQkJZXhwYW5kX25h bWVzX3N1Yl9zZWxlY3Qoc2VsZWN0LAorCQkJCQkJc2VsZWN0LT5wU3JjLT5hW2ldLnBTZWxlY3Qp OworfQorCiAvKgogICogR2l2ZW4gMSB0byAzIGlkZW50aWZpZXJzIHByZWNlZGluZyB0aGUgSk9J TiBrZXl3b3JkLCBkZXRlcm1pbmUgdGhlCiAgKiB0eXBlIG9mIGpvaW4uICBSZXR1cm4gYW4gaW50 ZWdlciBjb25zdGFudCB0aGF0IGV4cHJlc3NlcyB0aGF0IHR5cGUKQEAgLTI4MzAsNyArMjg2NCw3 IEBAIG11bHRpU2VsZWN0KFBhcnNlICogcFBhcnNlLAkvKiBQYXJzaW5nIGNvbnRleHQgKi8KICBt dWx0aV9zZWxlY3RfZW5kOgogCXBEZXN0LT5pU2RzdCA9IGRlc3QuaVNkc3Q7CiAJcERlc3QtPm5T ZHN0ID0gZGVzdC5uU2RzdDsKLQlzcWxpdGUzU2VsZWN0RGVsZXRlKGRiLCBwRGVsZXRlKTsKKwlz cWxfc2VsZWN0X2RlbGV0ZShkYiwgcERlbGV0ZSk7CiAJcmV0dXJuIHJjOwogfQogI2VuZGlmCQkJ CS8qIFNRTElURV9PTUlUX0NPTVBPVU5EX1NFTEVDVCAqLwpAQCAtMzQzMiw3ICszNDY2LDcgQEAg bXVsdGlTZWxlY3RPcmRlckJ5KFBhcnNlICogcFBhcnNlLAkvKiBQYXJzaW5nIGNvbnRleHQgKi8K IAkgKiBieSB0aGUgY2FsbGluZyBmdW5jdGlvbgogCSAqLwogCWlmIChwLT5wUHJpb3IpIHsKLQkJ c3FsaXRlM1NlbGVjdERlbGV0ZShkYiwgcC0+cFByaW9yKTsKKwkJc3FsX3NlbGVjdF9kZWxldGUo ZGIsIHAtPnBQcmlvcik7CiAJfQogCXAtPnBQcmlvciA9IHBQcmlvcjsKIAlwUHJpb3ItPnBOZXh0 ID0gcDsKQEAgLTQxMDYsNyArNDE0MCw3IEBAIGZsYXR0ZW5TdWJxdWVyeShQYXJzZSAqIHBQYXJz ZSwJCS8qIFBhcnNpbmcgY29udGV4dCAqLwogCS8qIEZpbmlhbGx5LCBkZWxldGUgd2hhdCBpcyBs ZWZ0IG9mIHRoZSBzdWJxdWVyeSBhbmQgcmV0dXJuCiAJICogc3VjY2Vzcy4KIAkgKi8KLQlzcWxp dGUzU2VsZWN0RGVsZXRlKGRiLCBwU3ViMSk7CisJc3FsX3NlbGVjdF9kZWxldGUoZGIsIHBTdWIx KTsKIAogI2lmZGVmIFNFTEVDVFRSQUNFX0VOQUJMRUQKIAlpZiAoc3FsaXRlM1NlbGVjdFRyYWNl ICYgMHgxMDApIHsKQEAgLTQ3MzgsMTMgKzQ3NzIsMTYgQEAgc2VsZWN0RXhwYW5kZXIoV2Fsa2Vy ICogcFdhbGtlciwgU2VsZWN0ICogcCkKIAkJCX0KICNpZiAhZGVmaW5lZChTUUxJVEVfT01JVF9W SUVXKQogCQkJaWYgKHNwYWNlX2lzX3ZpZXcocFRhYikpIHsKLQkJCQlpZiAoc3FsX3ZpZXdfY29s dW1uX25hbWVzKHBQYXJzZSwgcFRhYikgIT0gMCkKKwkJCQlzdHJ1Y3QgU2VsZWN0ICpzZWxlY3Q7 CisJCQkJaWYgKHNxbF92aWV3X2NvbXBpbGUoZGIsIHBUYWItPmRlZi0+b3B0cy5zcWwsCisJCQkJ CQkgICAgICZzZWxlY3QpICE9IDApIHsKKwkJCQkJZGlhZ19sb2coKTsKIAkJCQkJcmV0dXJuIFdS Q19BYm9ydDsKKwkJCQl9CisJCQkJc3FsaXRlM1NyY0xpc3RBc3NpZ25DdXJzb3JzKHBQYXJzZSwK KwkJCQkJCQkgICAgc2VsZWN0LT5wU3JjKTsKIAkJCQlhc3NlcnQocEZyb20tPnBTZWxlY3QgPT0g MCk7Ci0JCQkJYXNzZXJ0KHBUYWItPmRlZi0+b3B0cy5pc192aWV3ID09Ci0JCQkJICAgICAgIChw VGFiLT5wU2VsZWN0ICE9IE5VTEwpKTsKLQkJCQlwRnJvbS0+cFNlbGVjdCA9Ci0JCQkJICAgIHNx bGl0ZTNTZWxlY3REdXAoZGIsIHBUYWItPnBTZWxlY3QsIDApOworCQkJCXBGcm9tLT5wU2VsZWN0 ID0gc2VsZWN0OwogCQkJCXNxbGl0ZTNTZWxlY3RTZXROYW1lKHBGcm9tLT5wU2VsZWN0LAogCQkJ CQkJICAgICBwVGFiLT5kZWYtPm5hbWUpOwogCQkJCWludCBjb2x1bW5zID0gcFRhYi0+ZGVmLT5m aWVsZF9jb3VudDsKZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL3NxbGl0ZUludC5oIGIvc3JjL2Jv eC9zcWwvc3FsaXRlSW50LmgKaW5kZXggMDEzNTFhMTgzLi43ODFmNWQwYTAgMTAwNjQ0Ci0tLSBh L3NyYy9ib3gvc3FsL3NxbGl0ZUludC5oCisrKyBiL3NyYy9ib3gvc3FsL3NxbGl0ZUludC5oCkBA IC0xOTEzLDcgKzE5MTMsNiBAQCBzdHJ1Y3QgQ29sdW1uIHsKIHN0cnVjdCBUYWJsZSB7CiAJQ29s dW1uICphQ29sOwkJLyogSW5mb3JtYXRpb24gYWJvdXQgZWFjaCBjb2x1bW4gKi8KIAlJbmRleCAq cEluZGV4OwkJLyogTGlzdCBvZiBTUUwgaW5kZXhlcyBvbiB0aGlzIHRhYmxlLiAqLwotCVNlbGVj dCAqcFNlbGVjdDsJLyogTlVMTCBmb3IgdGFibGVzLiAgUG9pbnRzIHRvIGRlZmluaXRpb24gaWYg YSB2aWV3LiAqLwogCUZLZXkgKnBGS2V5OwkJLyogTGlua2VkIGxpc3Qgb2YgYWxsIGZvcmVpZ24g a2V5cyBpbiB0aGlzIHRhYmxlICovCiAJY2hhciAqekNvbEFmZjsJCS8qIFN0cmluZyBkZWZpbmlu ZyB0aGUgYWZmaW5pdHkgb2YgZWFjaCBjb2x1bW4gKi8KIAkvKiAgIC4uLiBhbHNvIHVzZWQgYXMg Y29sdW1uIG5hbWUgbGlzdCBpbiBhIFZJRVcgKi8KQEAgLTI2ODgsOSArMjY4Nyw3IEBAIHN0cnVj dCBTZWxlY3QgewogCUxvZ0VzdCBuU2VsZWN0Um93OwkvKiBFc3RpbWF0ZWQgbnVtYmVyIG9mIHJl c3VsdCByb3dzICovCiAJdTMyIHNlbEZsYWdzOwkJLyogVmFyaW91cyBTRl8qIHZhbHVlcyAqLwog CWludCBpTGltaXQsIGlPZmZzZXQ7CS8qIE1lbW9yeSByZWdpc3RlcnMgaG9sZGluZyBMSU1JVCAm IE9GRlNFVCBjb3VudGVycyAqLwotI2lmZGVmIFNFTEVDVFRSQUNFX0VOQUJMRUQKIAljaGFyIHpT ZWxOYW1lWzEyXTsJLyogU3ltYm9saWMgbmFtZSBvZiB0aGlzIFNFTEVDVCB1c2UgZm9yIGRlYnVn Z2luZyAqLwotI2VuZGlmCiAJaW50IGFkZHJPcGVuRXBobVsyXTsJLyogT1BfT3BlbkVwaGVtIG9w Y29kZXMgcmVsYXRlZCB0byB0aGlzIHNlbGVjdCAqLwogCVNyY0xpc3QgKnBTcmM7CQkvKiBUaGUg RlJPTSBjbGF1c2UgKi8KIAlFeHByICpwV2hlcmU7CQkvKiBUaGUgV0hFUkUgY2xhdXNlICovCkBA IC0yOTYyLDYgKzI5NTksOCBAQCBzdHJ1Y3QgUGFyc2UgewogCWJvb2wgcGFyc2Vfb25seTsKIAkv KiogSWYgcGFyc2Vfb25seSBpcyBzZXQgdG8gdHJ1ZSwgc3RvcmUgcGFyc2VkIGV4cHJlc3Npb24u ICovCiAJc3RydWN0IEV4cHIgKnBhcnNlZF9leHByOworCS8qKiBJZiBwYXJzZV9vbmx5IGlzIHNl dCB0byB0cnVlLCBzdG9yZSBwYXJzZWQgU0VMRUNULiAqLworCXN0cnVjdCBTZWxlY3QgKnBhcnNl ZF9zZWxlY3Q7CiB9OwogCiAvKgpAQCAtMzU3MCw3ICszNTY5LDIwIEBAIGludCBzcWxpdGUzUGFy c2VVcmkoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCAqLAogaW50IHNx bGl0ZTNGYXVsdFNpbShpbnQpOwogI2VuZGlmCiAKLXZvaWQgc3FsaXRlM0NyZWF0ZVZpZXcoUGFy c2UgKiwgVG9rZW4gKiwgVG9rZW4gKiwgRXhwckxpc3QgKiwgU2VsZWN0ICosIGludCk7CisvKioK KyAqIFRoZSBwYXJzZXIgY2FsbHMgdGhpcyByb3V0aW5lIGluIG9yZGVyIHRvIGNyZWF0ZSBhIG5l dyBWSUVXLgorICoKKyAqIEBwYXJhbSBwYXJzZV9jb250ZXh0IEN1cnJlbnQgcGFyc2luZyBjb250 ZXh0LgorICogQHBhcmFtIGJlZ2luIFRoZSBDUkVBVEUgdG9rZW4gdGhhdCBiZWdpbnMgdGhlIHN0 YXRlbWVudC4KKyAqIEBwYXJhbSBuYW1lIFRoZSB0b2tlbiB0aGF0IGhvbGRzIHRoZSBuYW1lIG9m IHRoZSB2aWV3LgorICogQHBhcmFtIGFsaWFzZXMgT3B0aW9uYWwgbGlzdCBvZiB2aWV3IGNvbHVt biBuYW1lcy4KKyAqIEBwYXJhbSBzZWxlY3QgQSBTRUxFQ1Qgc3RhdGVtZW50IHRoYXQgd2lsbCBi ZWNvbWUgdGhlIG5ldyB2aWV3LgorICogQHBhcmFtIGlmX2V4aXN0cyBTdXBwcmVzcyBlcnJvciBt ZXNzYWdlcyBpZiBWSUVXIGFscmVhZHkgZXhpc3RzLgorICovCit2b2lkCitzcWxfY3JlYXRlX3Zp ZXcoc3RydWN0IFBhcnNlICpwYXJzZV9jb250ZXh0LCBzdHJ1Y3QgVG9rZW4gKmJlZ2luLAorCQlz dHJ1Y3QgVG9rZW4gKm5hbWUsIHN0cnVjdCBFeHByTGlzdCAqYWxpYXNlcywKKwkJc3RydWN0IFNl bGVjdCAqc2VsZWN0LCBib29sIGlzX2V4aXN0cyk7CiAKIC8qKgogICogVGhlIFRhYmxlIHN0cnVj dHVyZSBwVGFibGUgaXMgcmVhbGx5IGEgVklFVy4gIEZpbGwgaW4gdGhlIG5hbWVzCkBAIC0zNTg1 LDYgKzM1OTcsMTYgQEAgdm9pZCBzcWxpdGUzQ3JlYXRlVmlldyhQYXJzZSAqLCBUb2tlbiAqLCBU b2tlbiAqLCBFeHByTGlzdCAqLCBTZWxlY3QgKiwgaW50KTsKIGludAogc3FsX3ZpZXdfY29sdW1u X25hbWVzKHN0cnVjdCBQYXJzZSAqcGFyc2UsIHN0cnVjdCBUYWJsZSAqdGFibGUpOwogCisvKioK KyAqIFN0b3JlIGR1cGxpY2F0ZSBvZiBTRUxFQ1QgaW50byBwYXJzaW5nIGNvbnRleHQuCisgKiBU aGlzIHJvdXRpbmUgaXMgY2FsbGVkIGR1cmluZyBwYXJzaW5nLgorICoKKyAqIEBwYXJhbSBwYXJz ZV9jb250ZXh0IEN1cnJlbnQgcGFyc2luZyBjb250ZXh0LgorICogQHBhcmFtIHNlbGVjdCBTZWxl Y3QgdG8gYmUgc3RvcmVkLgorICovCit2b2lkCitzcWxfc3RvcmVfc2VsZWN0KHN0cnVjdCBQYXJz ZSAqcGFyc2VfY29udGV4dCwgc3RydWN0IFNlbGVjdCAqc2VsZWN0KTsKKwogdm9pZAogc3FsX2Ry b3BfdGFibGUoc3RydWN0IFBhcnNlICosIHN0cnVjdCBTcmNMaXN0ICosIGJvb2wsIGJvb2wpOwog dm9pZCBzcWxpdGUzRGVsZXRlVGFibGUoc3FsaXRlMyAqLCBUYWJsZSAqKTsKQEAgLTM2NTYsNyAr MzY3OCw2IEBAIHNxbF9kcm9wX2luZGV4KHN0cnVjdCBQYXJzZSAqLCBzdHJ1Y3QgU3JjTGlzdCAq LCBzdHJ1Y3QgVG9rZW4gKiwgYm9vbCk7CiBpbnQgc3FsaXRlM1NlbGVjdChQYXJzZSAqLCBTZWxl Y3QgKiwgU2VsZWN0RGVzdCAqKTsKIFNlbGVjdCAqc3FsaXRlM1NlbGVjdE5ldyhQYXJzZSAqLCBF eHByTGlzdCAqLCBTcmNMaXN0ICosIEV4cHIgKiwgRXhwckxpc3QgKiwKIAkJCSBFeHByICosIEV4 cHJMaXN0ICosIHUzMiwgRXhwciAqLCBFeHByICopOwotdm9pZCBzcWxpdGUzU2VsZWN0RGVsZXRl KHNxbGl0ZTMgKiwgU2VsZWN0ICopOwogCiAvKioKICAqIFdoaWxlIGEgU3JjTGlzdCBjYW4gaW4g Z2VuZXJhbCByZXByZXNlbnQgbXVsdGlwbGUgdGFibGVzIGFuZApkaWZmIC0tZ2l0IGEvc3JjL2Jv eC9zcWwvdG9rZW5pemUuYyBiL3NyYy9ib3gvc3FsL3Rva2VuaXplLmMKaW5kZXggNDJjNzBhMjU1 Li4yNWQ4ZGM1OWIgMTAwNjQ0Ci0tLSBhL3NyYy9ib3gvc3FsL3Rva2VuaXplLmMKKysrIGIvc3Jj L2JveC9zcWwvdG9rZW5pemUuYwpAQCAtNTY2LDMgKzU2NiwyMSBAQCBzcWxfZXhwcl9jb21waWxl KHNxbGl0ZTMgKmRiLCBjb25zdCBjaGFyICpleHByLCBpbnQgZXhwcl9sZW4sCiAJc3FsX3BhcnNl cl9kZXN0cm95KCZwYXJzZXIpOwogCXJldHVybiAwOwogfQorCitpbnQKK3NxbF92aWV3X2NvbXBp bGUoc3RydWN0IHNxbGl0ZTMgKmRiLCBjb25zdCBjaGFyICp2aWV3X3N0bXQsCisJCSBzdHJ1Y3Qg U2VsZWN0ICoqc2VsZWN0KQoreworCWFzc2VydChzZWxlY3QgIT0gTlVMTCk7CisJc3RydWN0IFBh cnNlIHBhcnNlcjsKKwlzcWxfcGFyc2VyX2NyZWF0ZSgmcGFyc2VyLCBkYik7CisJcGFyc2VyLnBh cnNlX29ubHkgPSB0cnVlOworCWNoYXIgKnVudXNlZDsKKwlpZiAoc3FsaXRlM1J1blBhcnNlcigm cGFyc2VyLCB2aWV3X3N0bXQsICZ1bnVzZWQpICE9IFNRTElURV9PSykgeworCQlkaWFnX3NldChD bGllbnRFcnJvciwgRVJfU1FMX0VYRUNVVEUsIHZpZXdfc3RtdCk7CisJCXJldHVybiAtMTsKKwl9 CisJKnNlbGVjdCA9IHBhcnNlci5wYXJzZWRfc2VsZWN0OworCXNxbF9wYXJzZXJfZGVzdHJveSgm cGFyc2VyKTsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL3RyaWdnZXIu YyBiL3NyYy9ib3gvc3FsL3RyaWdnZXIuYwppbmRleCBlYTM1MjExMzMuLjMyZjQwMDQ0ZiAxMDA2 NDQKLS0tIGEvc3JjL2JveC9zcWwvdHJpZ2dlci5jCisrKyBiL3NyYy9ib3gvc3FsL3RyaWdnZXIu YwpAQCAtNTQsNyArNTQsNyBAQCBzcWxpdGUzRGVsZXRlVHJpZ2dlclN0ZXAoc3FsaXRlMyAqIGRi LCBUcmlnZ2VyU3RlcCAqIHBUcmlnZ2VyU3RlcCkKIAogCQlzcWxfZXhwcl9kZWxldGUoZGIsIHBU bXAtPnBXaGVyZSwgZmFsc2UpOwogCQlzcWxfZXhwcl9saXN0X2RlbGV0ZShkYiwgcFRtcC0+cEV4 cHJMaXN0KTsKLQkJc3FsaXRlM1NlbGVjdERlbGV0ZShkYiwgcFRtcC0+cFNlbGVjdCk7CisJCXNx bF9zZWxlY3RfZGVsZXRlKGRiLCBwVG1wLT5wU2VsZWN0KTsKIAkJc3FsaXRlM0lkTGlzdERlbGV0 ZShkYiwgcFRtcC0+cElkTGlzdCk7CiAKIAkJc3FsaXRlM0RiRnJlZShkYiwgcFRtcCk7CkBAIC0z NDYsNyArMzQ2LDcgQEAgc3FsaXRlM1RyaWdnZXJTZWxlY3RTdGVwKHNxbGl0ZTMgKiBkYiwgU2Vs ZWN0ICogcFNlbGVjdCkKIAlUcmlnZ2VyU3RlcCAqcFRyaWdnZXJTdGVwID0KIAkgICAgc3FsaXRl M0RiTWFsbG9jWmVybyhkYiwgc2l6ZW9mKFRyaWdnZXJTdGVwKSk7CiAJaWYgKHBUcmlnZ2VyU3Rl cCA9PSAwKSB7Ci0JCXNxbGl0ZTNTZWxlY3REZWxldGUoZGIsIHBTZWxlY3QpOworCQlzcWxfc2Vs ZWN0X2RlbGV0ZShkYiwgcFNlbGVjdCk7CiAJCXJldHVybiAwOwogCX0KIAlwVHJpZ2dlclN0ZXAt Pm9wID0gVEtfU0VMRUNUOwpAQCAtNDEyLDcgKzQxMiw3IEBAIHNxbGl0ZTNUcmlnZ2VySW5zZXJ0 U3RlcChzcWxpdGUzICogZGIsCS8qIFRoZSBkYXRhYmFzZSBjb25uZWN0aW9uICovCiAJfSBlbHNl IHsKIAkJc3FsaXRlM0lkTGlzdERlbGV0ZShkYiwgcENvbHVtbik7CiAJfQotCXNxbGl0ZTNTZWxl Y3REZWxldGUoZGIsIHBTZWxlY3QpOworCXNxbF9zZWxlY3RfZGVsZXRlKGRiLCBwU2VsZWN0KTsK IAogCXJldHVybiBwVHJpZ2dlclN0ZXA7CiB9CkBAIC03NTgsNyArNzU4LDcgQEAgY29kZVRyaWdn ZXJQcm9ncmFtKFBhcnNlICogcFBhcnNlLAkvKiBUaGUgcGFyc2VyIGNvbnRleHQgKi8KIAkJCQkg ICAgc3FsaXRlM1NlbGVjdER1cChkYiwgcFN0ZXAtPnBTZWxlY3QsIDApOwogCQkJCXNxbGl0ZTNT ZWxlY3REZXN0SW5pdCgmc0Rlc3QsIFNSVF9EaXNjYXJkLCAwKTsKIAkJCQlzcWxpdGUzU2VsZWN0 KHBQYXJzZSwgcFNlbGVjdCwgJnNEZXN0KTsKLQkJCQlzcWxpdGUzU2VsZWN0RGVsZXRlKGRiLCBw U2VsZWN0KTsKKwkJCXNxbF9zZWxlY3RfZGVsZXRlKGRiLCBwU2VsZWN0KTsKIAkJCQlicmVhazsK IAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JveC9zcWwvdmRiZS5jIGIvc3JjL2JveC9zcWwv dmRiZS5jCmluZGV4IDNmZTU4NzVjYS4uNWI1Y2Y4MzVkIDEwMDY0NAotLS0gYS9zcmMvYm94L3Nx bC92ZGJlLmMKKysrIGIvc3JjL2JveC9zcWwvdmRiZS5jCkBAIC0yOTgzLDYgKzI5ODMsMzAgQEAg Y2FzZSBPUF9Ga0NoZWNrQ29tbWl0OiB7CiAJYnJlYWs7CiB9CiAKKy8qIE9wY29kZTogQ2hlY2tW aWV3UmVmZXJlbmNlcyBQMSAqICogKiAqCisgKiBTeW5vcHNpczogcltQMV0gPSBzcGFjZSBpZAor ICoKKyAqIENoZWNrIHRoYXQgc3BhY2UgdG8gYmUgZHJvcHBlZCBkb2Vzbid0IGhhdmUgYW55IHZp ZXcKKyAqIHJlZmVyZW5jZXMuIFRoaXMgb3Bjb2RlIGlzIG5lZWRlZCBzaW5jZSBUYXJhbnRvb2wg bGFja3MKKyAqIERETCB0cmFuc2FjdGlvbi4gT24gdGhlIG90aGVyIGhhbmQsIHRvIGRyb3Agc3Bh Y2UsIHdlIG11c3QKKyAqIGZpcnN0bHkgZHJvcCBzZWNvbmRhcnkgaW5kZXhlcyBmcm9tIF9pbmRl eCBzeXN0ZW0gc3BhY2UsCisgKiBjbGVhciBfdHJ1bmNhdGUgdGFibGUgZXRjLgorICovCitjYXNl IE9QX0NoZWNrVmlld1JlZmVyZW5jZXM6IHsKKwlhc3NlcnQocE9wLT5wMSA+IDApOworCXBJbjEg PSAmYU1lbVtwT3AtPnAxXTsKKwl1aW50MzJfdCBzcGFjZV9pZCA9IHBJbjEtPnUuaTsKKwlzdHJ1 Y3Qgc3BhY2UgKnNwYWNlID0gc3BhY2VfYnlfaWQoc3BhY2VfaWQpOworCWFzc2VydChzcGFjZSAh PSBOVUxMKTsKKwlpZiAoc3BhY2UtPmRlZi0+dmlld19yZWZfY291bnQgPiAwKSB7CisJCXNxbGl0 ZTNWZGJlRXJyb3IocCwiQ2FuJ3QgZHJvcCB0YWJsZSAlczogb3RoZXIgdmlld3MgZGVwZW5kICIK KwkJCQkgIm9uIHRoaXMgc3BhY2UiLCAgc3BhY2UtPmRlZi0+bmFtZSk7CisJCXJjID0gU1FMX1RB UkFOVE9PTF9FUlJPUjsKKwkJZ290byBhYm9ydF9kdWVfdG9fZXJyb3I7CisJfQorCWJyZWFrOwor fQorCiAvKiBPcGNvZGU6IFRyYW5zYWN0aW9uQmVnaW4gKiAqICogKiAqCiAgKgogICogU3RhcnQg VGFyYW50b29sJ3MgdHJhbnNhY3Rpb24uCmRpZmYgLS1naXQgYS90ZXN0L3NxbC10YXAvY29sbmFt ZS50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC9jb2xuYW1lLnRlc3QubHVhCmluZGV4IGM5NjYyM2U0 ZS4uYzUzYTFlODg1IDEwMDc1NQotLS0gYS90ZXN0L3NxbC10YXAvY29sbmFtZS50ZXN0Lmx1YQor KysgYi90ZXN0L3NxbC10YXAvY29sbmFtZS50ZXN0Lmx1YQpAQCAtNjIzLDE0ICs2MjMsMTQgQEAg ZW5kCiB0ZXN0OmRvX3Rlc3QoCiAgICAgImNvbG5hbWUtMTEuMC4xIiwKICAgICBmdW5jdGlvbiAo KQotICAgICAgICB0ZXN0OmRyb3BfYWxsX3RhYmxlcygpCisgICAgICAgIHRlc3Q6ZHJvcF9hbGxf dmlld3MoKQogICAgIGVuZCwKICAgICBuaWwpCiAKIHRlc3Q6ZG9fdGVzdCgKICAgICAiY29sbmFt ZS0xMS4wLjIiLAogICAgIGZ1bmN0aW9uICgpCi0gICAgICAgIHRlc3Q6ZHJvcF9hbGxfdmlld3Mo KQorICAgICAgICB0ZXN0OmRyb3BfYWxsX3RhYmxlcygpCiAgICAgZW5kLAogICAgIG5pbCkKIApk aWZmIC0tZ2l0IGEvdGVzdC9zcWwtdGFwL2Ryb3BfYWxsLnRlc3QubHVhIGIvdGVzdC9zcWwtdGFw L2Ryb3BfYWxsLnRlc3QubHVhCmluZGV4IGI5YWJlNzU5NC4uZDRmNmM2MDczIDEwMDc1NQotLS0g YS90ZXN0L3NxbC10YXAvZHJvcF9hbGwudGVzdC5sdWEKKysrIGIvdGVzdC9zcWwtdGFwL2Ryb3Bf YWxsLnRlc3QubHVhCkBAIC0yMiw3ICsyMiw3IEBAIHRlc3Q6ZG9fdGVzdCgKIHRlc3Q6ZG9fdGVz dCgKICAgICBwcmVmaXguLiItMS4xIiwKICAgICBmdW5jdGlvbigpCi0gICAgICAgIHJldHVybiAj dGVzdDpkcm9wX2FsbF90YWJsZXMoKQorICAgICAgICByZXR1cm4gI3Rlc3Q6ZHJvcF9hbGxfdmll d3MoKQogICAgIGVuZCwKICAgICBOCiApCkBAIC0zMCw3ICszMCw3IEBAIHRlc3Q6ZG9fdGVzdCgK IHRlc3Q6ZG9fdGVzdCgKICAgICBwcmVmaXguLiItMS4xIiwKICAgICBmdW5jdGlvbigpCi0gICAg ICAgIHJldHVybiAjdGVzdDpkcm9wX2FsbF92aWV3cygpCisgICAgICAgIHJldHVybiAjdGVzdDpk cm9wX2FsbF90YWJsZXMoKQogICAgIGVuZCwKICAgICBOCiApCmRpZmYgLS1naXQgYS90ZXN0L3Nx bC10YXAvZmtleTIudGVzdC5sdWEgYi90ZXN0L3NxbC10YXAvZmtleTIudGVzdC5sdWEKaW5kZXgg ZjkwYzIxOGQ0Li4xZjNhODFkOTIgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC9ma2V5Mi50ZXN0 Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvZmtleTIudGVzdC5sdWEKQEAgLTc0Myw2ICs3NDMsNyBA QCB0ZXN0OmRvX2NhdGNoc3FsX3Rlc3QoCiB0ZXN0OmRvX2NhdGNoc3FsX3Rlc3QoCiAgICAgImZr ZXkyLTcuMyIsCiAgICAgW1sKKwlEUk9QIFZJRVcgdjsKICAgICAgICAgRFJPUCBUQUJMRSBJRiBF WElTVFMgYzsKICAgICAgICAgQ1JFQVRFIFRBQkxFIHAoYSBDT0xMQVRFIGJpbmFyeSwgYiBQUklN QVJZIEtFWSk7CiAgICAgICAgIENSRUFURSBVTklRVUUgSU5ERVggaWR4IE9OIHAoYSBDT0xMQVRF ICJ1bmljb2RlX2NpIik7CmRpZmYgLS1naXQgYS90ZXN0L3NxbC10YXAvdHJpZ2dlcjEudGVzdC5s dWEgYi90ZXN0L3NxbC10YXAvdHJpZ2dlcjEudGVzdC5sdWEKaW5kZXggNDBkYWJhNGQ4Li5kYWIz MjgxYTMgMTAwNzU1Ci0tLSBhL3Rlc3Qvc3FsLXRhcC90cmlnZ2VyMS50ZXN0Lmx1YQorKysgYi90 ZXN0L3NxbC10YXAvdHJpZ2dlcjEudGVzdC5sdWEKQEAgLTQ2MCw2ICs0NjAsNyBAQCB0ZXN0OmRv X2NhdGNoc3FsX3Rlc3QoCiAtLSB9CiB0ZXN0OmV4ZWNzcWwgW1sKICAgICBDUkVBVEUgVEFCTEUg dDIoeCBpbnQgUFJJTUFSWSBLRVkseSk7CisgICAgRFJPUCBWSUVXIHYxOwogICAgIERST1AgVEFC TEUgdDE7CiAgICAgSU5TRVJUIElOVE8gdDIgVkFMVUVTKDMsIDQpOwogICAgIElOU0VSVCBJTlRP IHQyIFZBTFVFUyg3LCA4KTsKZGlmZiAtLWdpdCBhL3Rlc3Qvc3FsLXRhcC90cmlnZ2VyQy50ZXN0 Lmx1YSBiL3Rlc3Qvc3FsLXRhcC90cmlnZ2VyQy50ZXN0Lmx1YQppbmRleCAzNDcwMDc4MzIuLmU1 ODA3MmUyZiAxMDA3NTUKLS0tIGEvdGVzdC9zcWwtdGFwL3RyaWdnZXJDLnRlc3QubHVhCisrKyBi L3Rlc3Qvc3FsLXRhcC90cmlnZ2VyQy50ZXN0Lmx1YQpAQCAtMTA5Nyw2ICsxMDk3LDcgQEAgdGVz dDpkb19jYXRjaHNxbF90ZXN0KAogLS0KIFNRTCA9IFtbCiAgIERST1AgVEFCTEUgSUYgRVhJU1RT IHQxOworICBEUk9QIFZJRVcgdjI7CiAgIERST1AgVEFCTEUgSUYgRVhJU1RTIHQyOwogICBEUk9Q IFRBQkxFIElGIEVYSVNUUyB0NDsKICAgRFJPUCBUQUJMRSBJRiBFWElTVFMgdDU7CmRpZmYgLS1n aXQgYS90ZXN0L3NxbC10YXAvdmlldy50ZXN0Lmx1YSBiL3Rlc3Qvc3FsLXRhcC92aWV3LnRlc3Qu bHVhCmluZGV4IDhiYTIwNDRmMC4uYzI0ZTNmYjI5IDEwMDc1NQotLS0gYS90ZXN0L3NxbC10YXAv dmlldy50ZXN0Lmx1YQorKysgYi90ZXN0L3NxbC10YXAvdmlldy50ZXN0Lmx1YQpAQCAtMSw2ICsx LDYgQEAKICMhL3Vzci9iaW4vZW52IHRhcmFudG9vbAogdGVzdCA9IHJlcXVpcmUoInNxbHRlc3Rl ciIpCi10ZXN0OnBsYW4oNjUpCit0ZXN0OnBsYW4oNzQpCiAKIC0tIS4vdGNsdGVzdHJ1bm5lci5s dWEKIC0tIDIwMDIgRmVicnVhcnkgMjYKQEAgLTEyNSwxMyArMTI1LDIzIEBAIHRlc3Q6ZG9fY2F0 Y2hzcWxfdGVzdCgKICAgICAidmlldy0xLjYiLAogICAgIFtbCiAgICAgICAgIERST1AgVEFCTEUg dDE7Ci0gICAgICAgIFNFTEVDVCAqIEZST00gdjEgT1JERVIgQlkgYTsKICAgICBdXSwgewogICAg ICAgICAtLSA8dmlldy0xLjY+Ci0gICAgICAgIDEsICJubyBzdWNoIHRhYmxlOiBUMSIKKyAgICAg ICAgMSwgIkNhbid0IGRyb3AgdGFibGUgVDE6IG90aGVyIHZpZXdzIGRlcGVuZCBvbiB0aGlzIHNw YWNlIgogICAgICAgICAtLSA8L3ZpZXctMS42PgogICAgIH0pCiAKK3Rlc3Q6ZG9fY2F0Y2hzcWxf dGVzdCgKKyAgICAidmlldy0xLjciLAorICAgIFtbCisgICAgICAgIERST1AgVklFVyB2MTsKKyAg ICAgICAgRFJPUCBUQUJMRSB0MTsKKyAgICBdXSwgeworICAgICAgICAtLSA8dmlldy0xLjc+Cisg ICAgICAgIDAKKyAgICAgICAgLS0gPC92aWV3LTEuNz4KKyAgICB9KQorCiAtLSBPUklHSU5BTF9U RVNUCiAtLSBkb190ZXN0IHZpZXctMS43IHsKIC0tICAgZXhlY3NxbCB7CkBAIC0xNDMsMTIgKzE1 MywxMyBAQCB0ZXN0OmRvX2NhdGNoc3FsX3Rlc3QoCiAtLSAgIH0KIC0tIH0gezIgMyA1IDYgOCA5 fQogdGVzdDpkb19leGVjc3FsX3Rlc3QoCi0gICAgInZpZXctMS43IiwKKyAgICAidmlldy0xLjgi LAogICAgIFtbCiAgICAgICAgIENSRUFURSBUQUJMRSB0MSh4IHByaW1hcnkga2V5LGEsYixjKTsK ICAgICAgICAgSU5TRVJUIElOVE8gdDEgVkFMVUVTKDEsMiwzLDQpOwogICAgICAgICBJTlNFUlQg SU5UTyB0MSBWQUxVRVMoNCw1LDYsNyk7CiAgICAgICAgIElOU0VSVCBJTlRPIHQxIFZBTFVFUyg3 LDgsOSwxMCk7CisgICAgICAgIENSRUFURSBWSUVXIHYxIEFTIFNFTEVDVCBhLGIgRlJPTSB0MTsK ICAgICAgICAgU0VMRUNUICogRlJPTSB2MSBPUkRFUiBCWSBhOwogICAgIF1dLCB7CiAgICAgICAg IC0tIDx2aWV3LTEuNz4KQEAgLTE1NiwyNCArMTY3LDYgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3Qo CiAgICAgICAgIC0tIDwvdmlldy0xLjc+CiAgICAgfSkKIAotLS0gTVVTVF9XT1JLX1RFU1QgcmVv cGVuIGRiCi1pZiAoMCA+IDApCi0gdGhlbgotICAgIHRlc3Q6ZG9fdGVzdCgKLSAgICAgICAgInZp ZXctMS44IiwKLSAgICAgICAgZnVuY3Rpb24oKQotICAgICAgICAgICAgZGIoImNsb3NlIikKLSAg ICAgICAgICAgIHNxbGl0ZTMoImRiIiwgInRlc3QuZGIiKQotICAgICAgICAgICAgcmV0dXJuIHRl c3Q6ZXhlY3NxbCBbWwotICAgICAgICAgICAgICAgIFNFTEVDVCAqIEZST00gdjEgT1JERVIgQlkg YTsKLSAgICAgICAgICAgIF1dCi0gICAgICAgIGVuZCwgewotICAgICAgICAgICAgLS0gPHZpZXct MS44PgotICAgICAgICAgICAgMiwgMywgNSwgNiwgOCwgOQotICAgICAgICAgICAgLS0gPC92aWV3 LTEuOD4KLSAgICAgICAgfSkKLQotZW5kCiB0ZXN0OmRvX3Rlc3QoCiAgICAgInZpZXctMi4xIiwK ICAgICBmdW5jdGlvbigpCkBAIC0xMDY1LDEwICsxMDU4LDkgQEAgZW5kCiB0ZXN0OmRvX2V4ZWNz cWxfdGVzdCgKICAgICAidmlldy0yMC4xIiwKICAgICBbWwotICAgICAgICBEUk9QIFRBQkxFIElG IEVYSVNUUyB0MTsKLSAgICAgICAgRFJPUCBWSUVXIElGIEVYSVNUUyB2MTsKLSAgICAgICAgQ1JF QVRFIFRBQkxFIHQxKGMxIHByaW1hcnkga2V5KTsKLSAgICAgICAgQ1JFQVRFIFZJRVcgdjEgQVMg U0VMRUNUIGMxIEZST00gKFNFTEVDVCB0MS5jMSBGUk9NIHQxKTsKKwlEUk9QIFZJRVcgdjEwOwor ICAgICAgICBDUkVBVEUgVEFCTEUgdDEwKGMxIHByaW1hcnkga2V5KTsKKyAgICAgICAgQ1JFQVRF IFZJRVcgdjEwIEFTIFNFTEVDVCBjMSBGUk9NIChTRUxFQ1QgdDEwLmMxIEZST00gdDEwKTsKICAg ICBdXSwgewogICAgICAgICAtLSA8dmlldy0yMC4xPgogICAgICAgICAKQEAgLTEwNzgsMTAgKzEw NzAsMTAgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCiB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCgKICAg ICAidmlldy0yMC4xIiwKICAgICBbWwotICAgICAgICBEUk9QIFRBQkxFIElGIEVYSVNUUyB0MTsK LSAgICAgICAgRFJPUCBWSUVXIElGIEVYSVNUUyB2MTsKLSAgICAgICAgQ1JFQVRFIFRBQkxFIHQx KGMxIHByaW1hcnkga2V5KTsKLSAgICAgICAgQ1JFQVRFIFZJRVcgdjEgQVMgU0VMRUNUIGMxIEZS T00gKFNFTEVDVCB0MS5jMSBGUk9NIHQxKTsKKwlEUk9QIFZJRVcgSUYgRVhJU1RTIHYxMDsKKyAg ICAgICAgRFJPUCBUQUJMRSBJRiBFWElTVFMgdDEwOworICAgICAgICBDUkVBVEUgVEFCTEUgdDEw KGMxIHByaW1hcnkga2V5KTsKKyAgICAgICAgQ1JFQVRFIFZJRVcgdjEwIEFTIFNFTEVDVCBjMSBG Uk9NIChTRUxFQ1QgdDEwLmMxIEZST00gdDEwKTsKICAgICBdXSwgewogICAgICAgICAtLSA8dmll dy0yMC4xPgogICAgICAgICAKQEAgLTExNzEsNSArMTE2Myw5MCBAQCBpZiAoMCA+IDApCiAKIGVu ZAogCistLSBNYWtlIHN1cmUgdGhhdCBWSUVXIHdpdGggc2V2ZXJhbCBpbnRlcm5hbCBzZWxlY3Rz IHdvcmtzLgordGVzdDpkb19jYXRjaHNxbF90ZXN0KAorICAgICJ2aWV3LTIzLjEiLAorICAgIFtb CisgICAgICAgIENSRUFURSBUQUJMRSB0MTEoYSBJTlQgUFJJTUFSWSBLRVkpOworICAgICAgICBD UkVBVEUgVEFCTEUgdDEyKGIgSU5UIFBSSU1BUlkgS0VZKTsKKyAgICAgICAgQ1JFQVRFIFRBQkxF IHQxMyhjIElOVCBQUklNQVJZIEtFWSk7CisgICAgICAgIENSRUFURSBWSUVXIHYxMSBBUyBTRUxF Q1QgKiBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGEgRlJPTSAoU0VMRUNUIGEsIGIgRlJPTSB0 MTEsIHQxMikpLAorICAgICAgICAgICAgKFNFTEVDVCAqIEZST00gKFNFTEVDVCBhLCBjIEZST00g dDExLCB0MTMpKTsKKyAgICBdXSwgeworICAgICAgICAtLSA8dmlldy0yMy4xPgorICAgICAgICAw CisgICAgICAgIC0tIDwvdmlldy0yMy4xPgorICAgIH0pCisKK3Rlc3Q6ZG9fY2F0Y2hzcWxfdGVz dCgKKyAgICAidmlldy0yMy4yIiwKKyAgICBbWworICAgICAgICBEUk9QIFRBQkxFIHQxMTsKKyAg ICBdXSwgeworICAgICAgICAtLSA8dmlldy0yMy4yPgorICAgICAgICAxLCAiQ2FuJ3QgZHJvcCB0 YWJsZSBUMTE6IG90aGVyIHZpZXdzIGRlcGVuZCBvbiB0aGlzIHNwYWNlIgorICAgICAgICAtLSA8 L3ZpZXctMjMuMj4KKyAgICB9KQorCit0ZXN0OmRvX2NhdGNoc3FsX3Rlc3QoCisgICAgInZpZXct MjMuMyIsCisgICAgW1sKKyAgICAgICAgRFJPUCBUQUJMRSB0MTI7CisgICAgXV0sIHsKKyAgICAg ICAgLS0gPHZpZXctMjMuMz4KKyAgICAgICAgMSwgIkNhbid0IGRyb3AgdGFibGUgVDEyOiBvdGhl ciB2aWV3cyBkZXBlbmQgb24gdGhpcyBzcGFjZSIKKyAgICAgICAgLS0gPC92aWV3LTIzLjM+Cisg ICAgfSkKKwordGVzdDpkb19jYXRjaHNxbF90ZXN0KAorICAgICJ2aWV3LTIzLjQiLAorICAgIFtb CisgICAgICAgIERST1AgVEFCTEUgdDEzOworICAgIF1dLCB7CisgICAgICAgIC0tIDx2aWV3LTIz LjQ+CisgICAgICAgIDEsICJDYW4ndCBkcm9wIHRhYmxlIFQxMzogb3RoZXIgdmlld3MgZGVwZW5k IG9uIHRoaXMgc3BhY2UiCisgICAgICAgIC0tIDwvdmlldy0yMy40PgorICAgIH0pCisKK3Rlc3Q6 ZG9fY2F0Y2hzcWxfdGVzdCgKKyAgICAidmlldy0yMy41IiwKKyAgICBbWworICAgICAgICBEUk9Q IFZJRVcgdjExOworICAgIF1dLCB7CisgICAgICAgIC0tIDx2aWV3LTIzLjU+CisgICAgICAgIDAK KyAgICAgICAgLS0gPC92aWV3LTIzLjU+CisgICAgfSkKKwordGVzdDpkb19jYXRjaHNxbF90ZXN0 KAorICAgICJ2aWV3LTIzLjYiLAorICAgIFtbCisgICAgICAgIERST1AgVEFCTEUgdDExOworICAg IF1dLCB7CisgICAgICAgIC0tIDx2aWV3LTIzLjY+CisgICAgICAgIDAKKyAgICAgICAgLS0gPC92 aWV3LTIzLjY+CisgICAgfSkKKwordGVzdDpkb19jYXRjaHNxbF90ZXN0KAorICAgICJ2aWV3LTIz LjciLAorICAgIFtbCisgICAgICAgIERST1AgVEFCTEUgdDEyOworICAgIF1dLCB7CisgICAgICAg IC0tIDx2aWV3LTIzLjc+CisgICAgICAgIDAKKyAgICAgICAgLS0gPC92aWV3LTIzLjc+CisgICAg fSkKKwordGVzdDpkb19jYXRjaHNxbF90ZXN0KAorICAgICJ2aWV3LTIzLjgiLAorICAgIFtbCisg ICAgICAgIERST1AgVEFCTEUgdDEzOworICAgIF1dLCB7CisgICAgICAgIC0tIDx2aWV3LTIzLjg+ CisgICAgICAgIDAKKyAgICAgICAgLS0gPC92aWV3LTIzLjg+CisgICAgfSkKIAogdGVzdDpmaW5p c2hfdGVzdCgpCmRpZmYgLS1naXQgYS90ZXN0L3NxbC92aWV3LnJlc3VsdCBiL3Rlc3Qvc3FsL3Zp ZXcucmVzdWx0CmluZGV4IDA0Y2IzZmFlOC4uNTBjMjliOTkxIDEwMDY0NAotLS0gYS90ZXN0L3Nx bC92aWV3LnJlc3VsdAorKysgYi90ZXN0L3NxbC92aWV3LnJlc3VsdApAQCAtNzMsNyArNzMsNyBA QCByYXdfc3AgPSBib3guc3BhY2UuX3NwYWNlOmdldChzcC5pZCk6dG90YWJsZSgpOwogc3A6ZHJv cCgpOwogLS0tCiAuLi4KLXJhd19zcFs2XS5zcWwgPSAnZmFrZSc7CityYXdfc3BbNl0uc3FsID0g J1NFTEVDVCAxJzsKIC0tLQogLi4uCiByYXdfc3BbNl0udmlldyA9IHRydWU7CkBAIC04NiwxMyAr ODYsMzAgQEAgYm94LnNwYWNlLl9zcGFjZTpzZWxlY3Qoc3BbJ2lkJ10pWzFdWyduYW1lJ10KIC0t LQogLSB0ZXN0CiAuLi4KKy0tIENhbid0IGRyb3Agc3BhY2UgdmlhIEx1YSBpZiBhdCBsZWFzdCBv bmUgdmlldyByZWZlcnMgdG8gaXQuCitib3guc3FsLmV4ZWN1dGUoJ0NSRUFURSBUQUJMRSB0Mihp ZCBJTlQgUFJJTUFSWSBLRVkpOycpOworLS0tCisuLi4KK2JveC5zcWwuZXhlY3V0ZSgnQ1JFQVRF IFZJRVcgdjIgQVMgU0VMRUNUICogRlJPTSB0MjsnKTsKKy0tLQorLi4uCitib3guc3BhY2UuVDI6 ZHJvcCgpOworLS0tCistIGVycm9yOiAnQ2FuJyd0IGRyb3Agc3BhY2UgJydUMicnOiBvdGhlciB2 aWV3cyBkZXBlbmQgb24gdGhpcyBzcGFjZScKKy4uLgorYm94LnNxbC5leGVjdXRlKCdEUk9QIFZJ RVcgdjI7Jyk7CistLS0KKy4uLgorYm94LnNxbC5leGVjdXRlKCdEUk9QIFRBQkxFIHQyOycpOwor LS0tCisuLi4KIC0tIENsZWFudXAKIGJveC5zcGFjZS50ZXN0OmRyb3AoKTsKIC0tLQogLi4uCi1i b3guc3FsLmV4ZWN1dGUoIkRST1AgVEFCTEUgdDE7Iik7Citib3guc3FsLmV4ZWN1dGUoIkRST1Ag VklFVyB2MTsiKTsKIC0tLQogLi4uCi1ib3guc3FsLmV4ZWN1dGUoIkRST1AgVklFVyB2MTsiKTsK K2JveC5zcWwuZXhlY3V0ZSgiRFJPUCBUQUJMRSB0MTsiKTsKIC0tLQogLi4uCmRpZmYgLS1naXQg YS90ZXN0L3NxbC92aWV3LnRlc3QubHVhIGIvdGVzdC9zcWwvdmlldy50ZXN0Lmx1YQppbmRleCBh YjI4NDNjYjYuLjdjOTgxOTMzNyAxMDA2NDQKLS0tIGEvdGVzdC9zcWwvdmlldy50ZXN0Lmx1YQor KysgYi90ZXN0L3NxbC92aWV3LnRlc3QubHVhCkBAIC0zNSwxMiArMzUsMTkgQEAgYm94LnNjaGVt YS5jcmVhdGVfc3BhY2UoJ3ZpZXcnLCB7dmlldyA9IHRydWV9KQogc3AgPSBib3guc2NoZW1hLmNy ZWF0ZV9zcGFjZSgndGVzdCcpOwogcmF3X3NwID0gYm94LnNwYWNlLl9zcGFjZTpnZXQoc3AuaWQp OnRvdGFibGUoKTsKIHNwOmRyb3AoKTsKLXJhd19zcFs2XS5zcWwgPSAnZmFrZSc7CityYXdfc3Bb Nl0uc3FsID0gJ1NFTEVDVCAxJzsKIHJhd19zcFs2XS52aWV3ID0gdHJ1ZTsKIHNwID0gYm94LnNw YWNlLl9zcGFjZTpyZXBsYWNlKHJhd19zcCk7CiBib3guc3BhY2UuX3NwYWNlOnNlbGVjdChzcFsn aWQnXSlbMV1bJ25hbWUnXQogCistLSBDYW4ndCBkcm9wIHNwYWNlIHZpYSBMdWEgaWYgYXQgbGVh c3Qgb25lIHZpZXcgcmVmZXJzIHRvIGl0LgorYm94LnNxbC5leGVjdXRlKCdDUkVBVEUgVEFCTEUg dDIoaWQgSU5UIFBSSU1BUlkgS0VZKTsnKTsKK2JveC5zcWwuZXhlY3V0ZSgnQ1JFQVRFIFZJRVcg djIgQVMgU0VMRUNUICogRlJPTSB0MjsnKTsKK2JveC5zcGFjZS5UMjpkcm9wKCk7Citib3guc3Fs LmV4ZWN1dGUoJ0RST1AgVklFVyB2MjsnKTsKK2JveC5zcWwuZXhlY3V0ZSgnRFJPUCBUQUJMRSB0 MjsnKTsKKwogLS0gQ2xlYW51cAogYm94LnNwYWNlLnRlc3Q6ZHJvcCgpOwotYm94LnNxbC5leGVj dXRlKCJEUk9QIFRBQkxFIHQxOyIpOwogYm94LnNxbC5leGVjdXRlKCJEUk9QIFZJRVcgdjE7Iik7 Citib3guc3FsLmV4ZWN1dGUoIkRST1AgVEFCTEUgdDE7Iik7Ci0tIAoyLjE1LjEKCg== ------Hu7nkRjmxxkTgEUf4slJyjI3dGUjl9qh-XWeaTDGXsQfqEezc-1528129571--