Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nWv1l-0005ne-En for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Mar 2022 07:03:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nWv1j-0007PR-5D for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Mar 2022 07:03:27 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nWv1i-0007PI-0m for pgsql-hackers@lists.postgresql.org; Wed, 23 Mar 2022 07:03:26 +0000 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nWv1e-0007As-Qj for pgsql-hackers@lists.postgresql.org; Wed, 23 Mar 2022 07:03:24 +0000 Received: by mail-pl1-x632.google.com with SMTP id w4so675534ply.13 for ; Wed, 23 Mar 2022 00:03:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uQIQi4XpuPJIpNaqMGiDrDX1hB/pP/4SUrWAnEEb9xg=; b=FBacp+aSmPMlsYq/j3dARogL4W285C3+ebVaCnLb3lOF3mLHJopUoOOuONjW8MI+Si yv3Iv4tJFpm1rKiffxQNh0WlkX5ejkAB1NnPavnQLAjsNLII2epGSHaSmq0iicIfEXUE Ch9HBVcSqwRzOUp08khwi4jiPeK2Zd64i8bT2leDbaOw0kWdK2gEiDDrJbCRfsF9/GKy 7Xc8BEk74xCEpsLzt4qUR+30+nyXrXOKDswwCf4TmIj/bvGEusSeq64QXq8TQ5w2/nU7 FdQH+J0FaMGHcCagAFAWROQIhFrjTzWIplA3bekKaBdgZx1TYrq0CzJaBDXcvTq73Tf8 duhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uQIQi4XpuPJIpNaqMGiDrDX1hB/pP/4SUrWAnEEb9xg=; b=5nuELJEp7tRgmhYc/4/xN5rxi2wHQlYoraUcOUNYLyR/6QZFaRx6r9/ScTeNCLesCe gsERFRjva3lcqlJPJzRfyK9l0WY6fCmK8wxH6LwZUdCOiMNgJw0EzbVNSkaMBZy4XkAg tWHWyW37YnZXW55EC93FjIMgAfYZsIIB6Zc88a9K3IWydoQ3hZQz+afOJ96zcQQboG7W Axmekd2AR225xLVf6qiL3ISr54G1Qso1/1ZaMvJm4ymvATGM8QClZ0hNwtQ8NioKu9u9 wAngpHJnN2GbkOB8NthUxamwztkOceeZM1NtMJWBJgYkU1Jnlz6d0f5cWtlLl2FWdKZg 5WkQ== X-Gm-Message-State: AOAM533Jv2Rp9cDtyBfYZ/rfludDfJZLmVlx7zKBqIsMhFlGx5kLfXor eE992XZfWYLv/O0RW/yLQOfoQgkbA8gjwGnIbmM= X-Google-Smtp-Source: ABdhPJyK3S8/vfgwTFs4dTX7D2NtK6GBj89cIRd6AoXQc5DlGcYg/y7tEAei07yyqcG8A5cnMRtdYx8T93XARX3Z7DE= X-Received: by 2002:a17:90a:7e95:b0:1bc:5d56:8d4c with SMTP id j21-20020a17090a7e9500b001bc5d568d4cmr9806546pjl.93.1648019000956; Wed, 23 Mar 2022 00:03:20 -0700 (PDT) MIME-Version: 1.0 References: <202109061935.kv6skkzgj5tj@alvherre.pgsql> <20220113031005.cmqkxcidegdr5sko@jrouhaud> In-Reply-To: From: Amit Langote Date: Wed, 23 Mar 2022 16:03:04 +0900 Message-ID: Subject: Re: ExecRTCheckPerms() and many prunable partitions To: Zhihong Yu Cc: Julien Rouhaud , Alvaro Herrera , Tom Lane , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000022b4d005dadd53b0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000022b4d005dadd53b0 Content-Type: text/plain; charset="UTF-8" On Mon, Mar 14, 2022 at 4:36 PM Amit Langote wrote: > Also needed fixes when rebasing. Needed another rebase. As the changes being made with the patch are non-trivial and the patch hasn't been reviewed very significantly since Alvaro's comments back in Sept 2021 which I've since addressed, I'm thinking of pushing this one into the version 16 dev cycle. -- Amit Langote EDB: http://www.enterprisedb.com --00000000000022b4d005dadd53b0 Content-Type: application/octet-stream; name="v10-0002-Do-not-add-hidden-OLD-NEW-RTEs-to-stored-view-ru.patch" Content-Disposition: attachment; filename="v10-0002-Do-not-add-hidden-OLD-NEW-RTEs-to-stored-view-ru.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l137vczr0 RnJvbSA4YjFmZTliN2MyYWVjMGUwNzJmMjRjMjk1MmM1N2IyNDJjOTZiM2M3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0bGFuIDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4KRGF0 ZTogRnJpLCAyMCBBdWcgMjAyMSAyMDowNToyNiArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjEwIDIv Ml0gRG8gbm90IGFkZCBoaWRkZW4gT0xEL05FVyBSVEVzIHRvIHN0b3JlZCB2aWV3IHJ1bGUKIGFj dGlvbnMKClRoZXkgd2VyZSBiZWluZyBhZGRlZCBzbyB0aGF0IHF1ZXJ5aW5nIGEgdmlldyByZWxh dGlvbiB3b3VsZApjb3JyZWN0bHkgY2hlY2sgaXRzIHBlcm1pc3Npb25zIGFuZCBsb2NrIGl0IGR1 cmluZyBleGVjdXRpb24sIGFsb25nCndpdGggdGhlIHRhYmxlKHMpIG1lbnRpb25lZCBpbiB0aGUg dmlldyBxdWVyeS4KClRoZSBjb21taXQgdGhhdCBpbnRyb2R1Y2VkIFJlbFBlcm1pc3Npb25JbmZv IG5vZGVzIGludG8gcXVlcnkKcHJvY2Vzc2luZyB0byBoYW5kbGUgcGVybWlzc2lvbiBjaGVja2lu ZyBtYWtlcyBpdCByZWR1bmRhbnQgdG8KaGF2ZSBhbiBSVEUgZm9yIHRoYXQgcHVycG9zZS4gIFRo b3VnaCBhbiBSVEUgc3RpbGwgbXVzdCBiZSBwcmVzZW50CmZvciB0aGUgdmlldyByZWxhdGlvbnMg bWVudGlvbmVkIGluIHRoZSBxdWVyeSB0byBiZSBsb2NrZWQgZHVyaW5nCmV4ZWN1dGlvbiBhbmQg Zm9yIHRoZW0gdG8gYmUgcmVtZW1iZXJlZCBpbiBQbGFubmVkU3RtdC5yZWxhdGlvbk9pZHMsCnNv IHRoaXMgY29tbWl0IHRlYWNoZXMgdGhlIHJld3JpdGVyIHRvIGFkZCBhbiBSVEUgZm9yIHZpZXcg cmVsYXRpb25zLgoKQXMgdGhpcyBjaGFuZ2VzIHRoZSBzaGFwZSBvZiB0aGUgdmlldyBxdWVyaWVz IHN0b3JlZCBpbiB0aGUgY2F0YWxvZwpkdWUgdG8gaGlkZGVuIE9MRC9ORVcgUlRFcyBubyBsb25n ZXIgYmVpbmcgcHJlc2VudCBpbiB0aGUgcmFuZ2UgdGFibGUsCmEgYnVuY2ggb2YgcmVncmVzc2lv biB0ZXN0cyB0aGF0IGRpc3BsYXkgdGhvc2UgcXVlcmllcyBub3cgZGlzcGxheQp0aGVtIHN1Y2gg dGhhdCBjb2x1bW5zIGFyZSBsb25nZXIgcXVhbGlmaWVkIHdpdGggdGhlaXIgcmVsYXRpb24ncyBu YW1lCmluIHNvbWUgY2FzZXMsIGxpa2Ugd2hlbiBvbmx5IG9uZSByZWxhdGlvbiBpcyBtZW50aW9u ZWQgaW4gdGhlIHZpZXcncwpxdWVyeS4KLS0tCiAuLi4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bv c3RncmVzX2Zkdy5vdXQgICAgfCAgMTYgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAg ICAgICAgICAgICAgICAgICB8ICA3OCAtLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFu ZGxlci5jICAgICAgICAgIHwgIDMxICstCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5w bCAgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWdncmVn YXRlcy5vdXQgICAgICB8ICAyNiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90 YWJsZS5vdXQgICAgIHwgIDE2ICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51 dGY4Lm91dCAgICAgfCAgMjQgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUubGludXgu dXRmOC5vdXQgICB8ICAyNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLm91 dCAgICAgICAgIHwgIDI2ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbXByZXNzaW9u Lm91dCAgICAgfCAgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3ZpZXcu b3V0ICAgICB8IDIxMCArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwcmVzc2lv bnMub3V0ICAgICB8ICAyNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncm91cGluZ3Nl dHMub3V0ICAgIHwgIDIwICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2xpbWl0Lm91dCAg ICAgICAgICAgfCAgMjQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWF0dmlldy5vdXQg ICAgICAgICB8ICAyNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wb2x5bW9ycGhpc20u b3V0ICAgIHwgICA4ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdlZnVuY3Mub3V0 ICAgICAgfCAgMzQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAg ICAgICB8IDY5NiArKysrKysrKystLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dGFibGVzYW1wbGUub3V0ICAgICB8ICAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90 cmlnZ2Vycy5vdXQgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Vw ZGF0YWJsZV92aWV3cy5vdXQgfCAgNzggKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2lu ZG93Lm91dCAgICAgICAgICB8ICA1NiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRo Lm91dCAgICAgICAgICAgIHwgIDMyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbC5v dXQgICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sXzIu b3V0ICAgICAgICAgICB8ICAgNiArLQogMjUgZmlsZXMgY2hhbmdlZCwgNzA4IGluc2VydGlvbnMo KyksIDc3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9l eHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQv cG9zdGdyZXNfZmR3Lm91dAppbmRleCBmMjEwZjkxMTg4Li4wMDVmMzAyOTlkIDEwMDY0NAotLS0g YS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTI0ODUsNyAr MjQ4NSw3IEBAIFNFTEVDVCB0MS5jMSwgdDIuYzIgRlJPTSB2NCB0MSBMRUZUIEpPSU4gdjUgdDIg T04gKHQxLmMxID0gdDIuYzEpIE9SREVSIEJZIHQxLmMxCiAgRm9yZWlnbiBTY2FuCiAgICBPdXRw dXQ6IGZ0NC5jMSwgZnQ1LmMyLCBmdDUuYzEKICAgIFJlbGF0aW9uczogKHB1YmxpYy5mdDQpIExF RlQgSk9JTiAocHVibGljLmZ0NSkKLSAgIFJlbW90ZSBTUUw6IFNFTEVDVCByNi5jMSwgcjkuYzIs IHI5LmMxIEZST00gKCJTIDEiLiJUIDMiIHI2IExFRlQgSk9JTiAiUyAxIi4iVCA0IiByOSBPTiAo KChyNi5jMSA9IHI5LmMxKSkpKSBPUkRFUiBCWSByNi5jMSBBU0MgTlVMTFMgTEFTVCwgcjkuYzEg QVNDIE5VTExTIExBU1QgTElNSVQgMTA6OmJpZ2ludCBPRkZTRVQgMTA6OmJpZ2ludAorICAgUmVt b3RlIFNRTDogU0VMRUNUIHI2LmMxLCByNy5jMiwgcjcuYzEgRlJPTSAoIlMgMSIuIlQgMyIgcjYg TEVGVCBKT0lOICJTIDEiLiJUIDQiIHI3IE9OICgoKHI2LmMxID0gcjcuYzEpKSkpIE9SREVSIEJZ IHI2LmMxIEFTQyBOVUxMUyBMQVNULCByNy5jMSBBU0MgTlVMTFMgTEFTVCBMSU1JVCAxMDo6Ymln aW50IE9GRlNFVCAxMDo6YmlnaW50CiAoNCByb3dzKQogCiBTRUxFQ1QgdDEuYzEsIHQyLmMyIEZS T00gdjQgdDEgTEVGVCBKT0lOIHY1IHQyIE9OICh0MS5jMSA9IHQyLmMxKSBPUkRFUiBCWSB0MS5j MSwgdDIuYzEgT0ZGU0VUIDEwIExJTUlUIDEwOwpAQCAtMjU0OCw3ICsyNTQ4LDcgQEAgU0VMRUNU IHQxLmMxLCB0Mi5jMiBGUk9NIHY0IHQxIExFRlQgSk9JTiBmdDUgdDIgT04gKHQxLmMxID0gdDIu YzEpIE9SREVSIEJZIHQxLmMKICBGb3JlaWduIFNjYW4KICAgIE91dHB1dDogZnQ0LmMxLCB0Mi5j MiwgdDIuYzEKICAgIFJlbGF0aW9uczogKHB1YmxpYy5mdDQpIExFRlQgSk9JTiAocHVibGljLmZ0 NSB0MikKLSAgIFJlbW90ZSBTUUw6IFNFTEVDVCByNi5jMSwgcjIuYzIsIHIyLmMxIEZST00gKCJT IDEiLiJUIDMiIHI2IExFRlQgSk9JTiAiUyAxIi4iVCA0IiByMiBPTiAoKChyNi5jMSA9IHIyLmMx KSkpKSBPUkRFUiBCWSByNi5jMSBBU0MgTlVMTFMgTEFTVCwgcjIuYzEgQVNDIE5VTExTIExBU1Qg TElNSVQgMTA6OmJpZ2ludCBPRkZTRVQgMTA6OmJpZ2ludAorICAgUmVtb3RlIFNRTDogU0VMRUNU IHI1LmMxLCByMi5jMiwgcjIuYzEgRlJPTSAoIlMgMSIuIlQgMyIgcjUgTEVGVCBKT0lOICJTIDEi LiJUIDQiIHIyIE9OICgoKHI1LmMxID0gcjIuYzEpKSkpIE9SREVSIEJZIHI1LmMxIEFTQyBOVUxM UyBMQVNULCByMi5jMSBBU0MgTlVMTFMgTEFTVCBMSU1JVCAxMDo6YmlnaW50IE9GRlNFVCAxMDo6 YmlnaW50CiAoNCByb3dzKQogCiBTRUxFQ1QgdDEuYzEsIHQyLmMyIEZST00gdjQgdDEgTEVGVCBK T0lOIGZ0NSB0MiBPTiAodDEuYzEgPSB0Mi5jMSkgT1JERVIgQlkgdDEuYzEsIHQyLmMxIE9GRlNF VCAxMCBMSU1JVCAxMDsKQEAgLTY0MDMsMTAgKzY0MDMsMTAgQEAgQ1JFQVRFIFZJRVcgcndfdmll dyBBUyBTRUxFQ1QgKiBGUk9NIGZvcmVpZ25fdGJsCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAKICBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8IAogVmlldyBkZWZp bml0aW9uOgotIFNFTEVDVCBmb3JlaWduX3RibC5hLAotICAgIGZvcmVpZ25fdGJsLmIKKyBTRUxF Q1QgYSwKKyAgICBiCiAgICBGUk9NIGZvcmVpZ25fdGJsCi0gIFdIRVJFIGZvcmVpZ25fdGJsLmEg PCBmb3JlaWduX3RibC5iOworICBXSEVSRSBhIDwgYjsKIE9wdGlvbnM6IGNoZWNrX29wdGlvbj1j YXNjYWRlZAogCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCkBAIC02NDk3LDEwICs2NDk3 LDEwIEBAIENSRUFURSBWSUVXIHJ3X3ZpZXcgQVMgU0VMRUNUICogRlJPTSBwYXJlbnRfdGJsCiAg YSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWlu ICAgfCAKICBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg IHwgcGxhaW4gICB8IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBwYXJlbnRfdGJsLmEsCi0g ICAgcGFyZW50X3RibC5iCisgU0VMRUNUIGEsCisgICAgYgogICAgRlJPTSBwYXJlbnRfdGJsCi0g IFdIRVJFIHBhcmVudF90YmwuYSA8IHBhcmVudF90YmwuYjsKKyAgV0hFUkUgYSA8IGI7CiBPcHRp b25zOiBjaGVja19vcHRpb249Y2FzY2FkZWQKIAogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmlldy5jCmluZGV4IDE2MGM3MDkwNDQuLjI1MTk5NzA5MTQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92 aWV3LmMKQEAgLTMzOSw3OCArMzM5LDYgQEAgRGVmaW5lVmlld1J1bGVzKE9pZCB2aWV3T2lkLCBR dWVyeSAqdmlld1BhcnNlLCBib29sIHJlcGxhY2UpCiAJICovCiB9CiAKLS8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBV cGRhdGVSYW5nZVRhYmxlT2ZWaWV3UGFyc2UKLSAqCi0gKiBVcGRhdGUgdGhlIHJhbmdlIHRhYmxl IG9mIHRoZSBnaXZlbiBwYXJzZXRyZWUuCi0gKiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZiBhZGRp bmcgdHdvIG5ldyBlbnRyaWVzIElOIFRIRSBCRUdJTk5JTkcKLSAqIG9mIHRoZSByYW5nZSB0YWJs ZSAob3RoZXJ3aXNlIHRoZSBydWxlIHN5c3RlbSB3aWxsIGRpZSBhIHNsb3csCi0gKiBob3JyaWJs ZSBhbmQgcGFpbmZ1bCBkZWF0aCwgYW5kIHdlIGRvIG5vdCB3YW50IHRoYXQgbm93LCBkbyB3ZT8p Ci0gKiBvbmUgZm9yIHRoZSBPTEQgcmVsYXRpb24gYW5kIG9uZSBmb3IgdGhlIE5FVyBvbmUgKGJv dGggb2YKLSAqIHRoZW0gcmVmZXIgaW4gZmFjdCB0byB0aGUgInZpZXciIHJlbGF0aW9uKS4KLSAq Ci0gKiBPZiBjb3Vyc2Ugd2UgbXVzdCBhbHNvIGluY3JlYXNlIHRoZSAndmFybm9zJyBvZiBhbGwg dGhlIFZhciBub2RlcwotICogYnkgMi4uLgotICoKLSAqIFRoZXNlIGV4dHJhIFJUIGVudHJpZXMg YXJlIG5vdCBhY3R1YWxseSB1c2VkIGluIHRoZSBxdWVyeSwKLSAqIGV4Y2VwdCBmb3IgcnVuLXRp bWUgbG9ja2luZyBhbmQgcGVybWlzc2lvbiBjaGVja2luZy4KLSAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKi8KLXN0YXRp YyBRdWVyeSAqCi1VcGRhdGVSYW5nZVRhYmxlT2ZWaWV3UGFyc2UoT2lkIHZpZXdPaWQsIFF1ZXJ5 ICp2aWV3UGFyc2UpCi17Ci0JUmVsYXRpb24Jdmlld1JlbDsKLQlMaXN0CSAgICpuZXdfcnQ7Ci0J UGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW07Ci0JUmFuZ2VUYmxFbnRyeSAqcnRfZW50cnkxLAot CQkJICAgKnJ0X2VudHJ5MjsKLQlQYXJzZVN0YXRlICpwc3RhdGU7Ci0KLQkvKgotCSAqIE1ha2Ug YSBjb3B5IG9mIHRoZSBnaXZlbiBwYXJzZXRyZWUuICBJdCdzIG5vdCBzbyBtdWNoIHRoYXQgd2Ug ZG9uJ3QKLQkgKiB3YW50IHRvIHNjcmliYmxlIG9uIG91ciBpbnB1dCwgaXQncyB0aGF0IHRoZSBw YXJzZXIgaGFzIGEgYmFkIGhhYml0IG9mCi0JICogb3V0cHV0dGluZyBtdWx0aXBsZSBsaW5rcyB0 byB0aGUgc2FtZSBzdWJ0cmVlIGZvciBjb25zdHJ1Y3RzIGxpa2UKLQkgKiBCRVRXRUVOLCBhbmQg d2UgbXVzdG4ndCBoYXZlIE9mZnNldFZhck5vZGVzIGluY3JlbWVudCB0aGUgdmFybm8gb2YgYQot CSAqIFZhciBub2RlIHR3aWNlLiAgY29weU9iamVjdCB3aWxsIGV4cGFuZCBhbnkgbXVsdGlwbHkt cmVmZXJlbmNlZCBzdWJ0cmVlCi0JICogaW50byBtdWx0aXBsZSBjb3BpZXMuCi0JICovCi0Jdmll d1BhcnNlID0gY29weU9iamVjdCh2aWV3UGFyc2UpOwotCi0JLyogQ3JlYXRlIGEgZHVtbXkgUGFy c2VTdGF0ZSBmb3IgYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVsYXRpb24gKi8KLQlwc3RhdGUgPSBt YWtlX3BhcnNlc3RhdGUoTlVMTCk7Ci0KLQkvKiBuZWVkIHRvIG9wZW4gdGhlIHJlbCBmb3IgYWRk UmFuZ2VUYWJsZUVudHJ5Rm9yUmVsYXRpb24gKi8KLQl2aWV3UmVsID0gcmVsYXRpb25fb3Blbih2 aWV3T2lkLCBBY2Nlc3NTaGFyZUxvY2spOwotCi0JLyoKLQkgKiBDcmVhdGUgdGhlIDIgbmV3IHJh bmdlIHRhYmxlIGVudHJpZXMgYW5kIGZvcm0gdGhlIG5ldyByYW5nZSB0YWJsZS4uLgotCSAqIE9M RCBmaXJzdCwgdGhlbiBORVcuLi4uCi0JICovCi0JbnNpdGVtID0gYWRkUmFuZ2VUYWJsZUVudHJ5 Rm9yUmVsYXRpb24ocHN0YXRlLCB2aWV3UmVsLAotCQkJCQkJCQkJCSAgIEFjY2Vzc1NoYXJlTG9j aywKLQkJCQkJCQkJCQkgICBtYWtlQWxpYXMoIm9sZCIsIE5JTCksCi0JCQkJCQkJCQkJICAgZmFs c2UsIGZhbHNlKTsKLQlydF9lbnRyeTEgPSBuc2l0ZW0tPnBfcnRlOwotCW5zaXRlbSA9IGFkZFJh bmdlVGFibGVFbnRyeUZvclJlbGF0aW9uKHBzdGF0ZSwgdmlld1JlbCwKLQkJCQkJCQkJCQkgICBB Y2Nlc3NTaGFyZUxvY2ssCi0JCQkJCQkJCQkJICAgbWFrZUFsaWFzKCJuZXciLCBOSUwpLAotCQkJ CQkJCQkJCSAgIGZhbHNlLCBmYWxzZSk7Ci0JcnRfZW50cnkyID0gbnNpdGVtLT5wX3J0ZTsKLQot CW5ld19ydCA9IGxjb25zKHJ0X2VudHJ5MSwgbGNvbnMocnRfZW50cnkyLCB2aWV3UGFyc2UtPnJ0 YWJsZSkpOwotCi0Jdmlld1BhcnNlLT5ydGFibGUgPSBuZXdfcnQ7Ci0KLQkvKgotCSAqIE5vdyBv ZmZzZXQgYWxsIHZhciBub2RlcyBieSAyLCBhbmQgam9pbnRyZWUgUlQgaW5kZXhlcyB0b28uCi0J ICovCi0JT2Zmc2V0VmFyTm9kZXMoKE5vZGUgKikgdmlld1BhcnNlLCAyLCAwKTsKLQotCXJlbGF0 aW9uX2Nsb3NlKHZpZXdSZWwsIEFjY2Vzc1NoYXJlTG9jayk7Ci0KLQlyZXR1cm4gdmlld1BhcnNl OwotfQotCiAvKgogICogRGVmaW5lVmlldwogICoJCUV4ZWN1dGUgYSBDUkVBVEUgVklFVyBjb21t YW5kLgpAQCAtNTczLDEyICs1MDEsNiBAQCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25z dCBjaGFyICpxdWVyeVN0cmluZywKIHZvaWQKIFN0b3JlVmlld1F1ZXJ5KE9pZCB2aWV3T2lkLCBR dWVyeSAqdmlld1BhcnNlLCBib29sIHJlcGxhY2UpCiB7Ci0JLyoKLQkgKiBUaGUgcmFuZ2UgdGFi bGUgb2YgJ3ZpZXdQYXJzZScgZG9lcyBub3QgY29udGFpbiBlbnRyaWVzIGZvciB0aGUgIk9MRCIK LQkgKiBhbmQgIk5FVyIgcmVsYXRpb25zLiBTby4uLiBhZGQgdGhlbSEKLQkgKi8KLQl2aWV3UGFy c2UgPSBVcGRhdGVSYW5nZVRhYmxlT2ZWaWV3UGFyc2Uodmlld09pZCwgdmlld1BhcnNlKTsKLQog CS8qCiAJICogTm93IGNyZWF0ZSB0aGUgcnVsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSB2aWV3Lgog CSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jIGIv c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCmluZGV4IGY4MWM2M2FhMjMuLmUx Y2Q5ZDA4MzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKQEAgLTE3MDYsNyAr MTcwNiw4IEBAIEFwcGx5UmV0cmlldmVSdWxlKFF1ZXJ5ICpwYXJzZXRyZWUsCiAJCQkJICBMaXN0 ICphY3RpdmVSSVJzKQogewogCVF1ZXJ5CSAgICpydWxlX2FjdGlvbjsKLQlSYW5nZVRibEVudHJ5 ICpydGU7CisJUmFuZ2VUYmxFbnRyeSAqcnRlLAorCQkJCSAgKnN1YnF1ZXJ5X3J0ZTsKIAlSb3dN YXJrQ2xhdXNlICpyYzsKIAogCWlmIChsaXN0X2xlbmd0aChydWxlLT5hY3Rpb25zKSAhPSAxKQpA QCAtMTgyNCwxNyArMTgyNSwyNyBAQCBBcHBseVJldHJpZXZlUnVsZShRdWVyeSAqcGFyc2V0cmVl LAogCSAqIG9yaWdpbmFsIFJURSB0byBhIHN1YnF1ZXJ5IFJURS4KIAkgKi8KIAlydGUgPSBydF9m ZXRjaChydF9pbmRleCwgcGFyc2V0cmVlLT5ydGFibGUpOworCXN1YnF1ZXJ5X3J0ZSA9IHJ0ZTsK IAotCXJ0ZS0+cnRla2luZCA9IFJURV9TVUJRVUVSWTsKLQlydGUtPnN1YnF1ZXJ5ID0gcnVsZV9h Y3Rpb247Ci0JcnRlLT5zZWN1cml0eV9iYXJyaWVyID0gUmVsYXRpb25Jc1NlY3VyaXR5Vmlldyhy ZWxhdGlvbik7CisJLyoKKwkgKiBCZWZvcmUgbW9kaWZ5aW5nLCBzdG9yZSBhIGNvcHkgb2YgaXRz ZWxmIHNvIGFzIHRvIHNlcnZlIGFzIHRoZSBlbnRyeQorCSAqIHRvIGJlIHVzZWQgYnkgdGhlIGV4 ZWN1dG9yIHRvIGxvY2sgdGhlIHZpZXcgcmVsYXRpb24gYW5kIGZvciB0aGUKKwkgKiBwbGFubmVy IHRvIGJlIGFibGUgdG8gcmVjb3JkIHRoZSB2aWV3IHJlbGF0aW9uIE9JRCBpbiB0aGUgUGxhbm5l ZFN0bXQKKwkgKiB0aGF0IGl0IHByb2R1Y2VzIGZvciB0aGUgcXVlcnkuCisJICovCisJcnRlID0g Y29weU9iamVjdChydGUpOworCXBhcnNldHJlZS0+cnRhYmxlID0gbGFwcGVuZChwYXJzZXRyZWUt PnJ0YWJsZSwgcnRlKTsKKworCXN1YnF1ZXJ5X3J0ZS0+cnRla2luZCA9IFJURV9TVUJRVUVSWTsK KwlzdWJxdWVyeV9ydGUtPnN1YnF1ZXJ5ID0gcnVsZV9hY3Rpb247CisJc3VicXVlcnlfcnRlLT5z ZWN1cml0eV9iYXJyaWVyID0gUmVsYXRpb25Jc1NlY3VyaXR5VmlldyhyZWxhdGlvbik7CiAJLyog Q2xlYXIgZmllbGRzIHRoYXQgc2hvdWxkIG5vdCBiZSBzZXQgaW4gYSBzdWJxdWVyeSBSVEUgKi8K LQlydGUtPnJlbGlkID0gSW52YWxpZE9pZDsKLQlydGUtPnJlbGtpbmQgPSAwOwotCXJ0ZS0+cmVs bG9ja21vZGUgPSAwOwotCXJ0ZS0+dGFibGVzYW1wbGUgPSBOVUxMOwotCXJ0ZS0+cGVybWluZm9p bmRleCA9IDA7Ci0JcnRlLT5pbmggPSBmYWxzZTsJCQkvKiBtdXN0IG5vdCBiZSBzZXQgZm9yIGEg c3VicXVlcnkgKi8KKwlzdWJxdWVyeV9ydGUtPnJlbGlkID0gSW52YWxpZE9pZDsKKwlzdWJxdWVy eV9ydGUtPnJlbGtpbmQgPSAwOworCXN1YnF1ZXJ5X3J0ZS0+cmVsbG9ja21vZGUgPSAwOworCXN1 YnF1ZXJ5X3J0ZS0+dGFibGVzYW1wbGUgPSBOVUxMOworCXN1YnF1ZXJ5X3J0ZS0+cGVybWluZm9p bmRleCA9IDA7CisJc3VicXVlcnlfcnRlLT5pbmggPSBmYWxzZTsJCQkvKiBtdXN0IG5vdCBiZSBz ZXQgZm9yIGEgc3VicXVlcnkgKi8KIAogCXJldHVybiBwYXJzZXRyZWU7CiB9CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCmluZGV4IGZkMTA1MmU1ZGIuLmFmN2E2YTdlNDMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCkBAIC0yMTU0LDcgKzIxNTQsNyBAQCBteSAldGVzdHMgPSAoCiAJCQkJCSAg IFNFTEVDVCBjb2wxIEZST00gZHVtcF90ZXN0LnRlc3RfdGFibGU7JywKIAkJcmVnZXhwID0+IHFy L14KIAkJCVxRQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBfdGVzdC5tYXR2aWV3IEFTXEUK LQkJCVxuXHMrXFFTRUxFQ1QgdGVzdF90YWJsZS5jb2wxXEUKKwkJCVxuXHMrXFFTRUxFQ1QgY29s MVxFCiAJCQlcblxzK1xRRlJPTSBkdW1wX3Rlc3QudGVzdF90YWJsZVxFCiAJCQlcblxzK1xRV0lU SCBOTyBEQVRBO1xFCiAJCQkveG0sCkBAIC0yMTcwLDcgKzIxNzAsNyBAQCBteSAldGVzdHMgPSAo CiAJCQkJCQkgICBTRUxFQ1QgKiBGUk9NIGR1bXBfdGVzdC5tYXR2aWV3OycsCiAJCXJlZ2V4cCA9 PiBxci9eCiAJCQlcUUNSRUFURSBNQVRFUklBTElaRUQgVklFVyBkdW1wX3Rlc3QubWF0dmlld19z ZWNvbmQgQVNcRQotCQkJXG5ccytcUVNFTEVDVCBtYXR2aWV3LmNvbDFcRQorCQkJXG5ccytcUVNF TEVDVCBjb2wxXEUKIAkJCVxuXHMrXFFGUk9NIGR1bXBfdGVzdC5tYXR2aWV3XEUKIAkJCVxuXHMr XFFXSVRIIE5PIERBVEE7XEUKIAkJCS94bSwKQEAgLTIxODYsNyArMjE4Niw3IEBAIG15ICV0ZXN0 cyA9ICgKIAkJCQkJCSAgIFNFTEVDVCAqIEZST00gZHVtcF90ZXN0Lm1hdHZpZXdfc2Vjb25kIFdJ VEggTk8gREFUQTsnLAogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFDUkVBVEUgTUFURVJJQUxJWkVE IFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXdfdGhpcmQgQVNcRQotCQkJXG5ccytcUVNFTEVDVCBtYXR2 aWV3X3NlY29uZC5jb2wxXEUKKwkJCVxuXHMrXFFTRUxFQ1QgY29sMVxFCiAJCQlcblxzK1xRRlJP TSBkdW1wX3Rlc3QubWF0dmlld19zZWNvbmRcRQogCQkJXG5ccytcUVdJVEggTk8gREFUQTtcRQog CQkJL3htLApAQCAtMjIwMiw3ICsyMjAyLDcgQEAgbXkgJXRlc3RzID0gKAogCQkJCQkJICAgU0VM RUNUICogRlJPTSBkdW1wX3Rlc3QubWF0dmlld190aGlyZCBXSVRIIE5PIERBVEE7JywKIAkJcmVn ZXhwID0+IHFyL14KIAkJCVxRQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBfdGVzdC5tYXR2 aWV3X2ZvdXJ0aCBBU1xFCi0JCQlcblxzK1xRU0VMRUNUIG1hdHZpZXdfdGhpcmQuY29sMVxFCisJ CQlcblxzK1xRU0VMRUNUIGNvbDFcRQogCQkJXG5ccytcUUZST00gZHVtcF90ZXN0Lm1hdHZpZXdf dGhpcmRcRQogCQkJXG5ccytcUVdJVEggTk8gREFUQTtcRQogCQkJL3htLApAQCAtMjIyMCw3ICsy MjIwLDcgQEAgbXkgJXRlc3RzID0gKAogCQkJCQkJICAgQUxURVIgQ09MVU1OIGNvbDIgU0VUIENP TVBSRVNTSU9OIGx6NDsnLAogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFDUkVBVEUgTUFURVJJQUxJ WkVEIFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXdfY29tcHJlc3Npb24gQVNcRQotCQkJXG5ccytcUVNF TEVDVCB0ZXN0X3RhYmxlLmNvbDJcRQorCQkJXG5ccytcUVNFTEVDVCBjb2wyXEUKIAkJCVxuXHMr XFFGUk9NIGR1bXBfdGVzdC50ZXN0X3RhYmxlXEUKIAkJCVxuXHMrXFFXSVRIIE5PIERBVEE7XEUK IAkJCS4qCkBAIC0zMTEzLDcgKzMxMTMsNyBAQCBteSAldGVzdHMgPSAoCiAJCSAgICAgICAgICAg ICAgICAgICBTRUxFQ1QgY29sMSBGUk9NIGR1bXBfdGVzdC50ZXN0X3RhYmxlOycsCiAJCXJlZ2V4 cCA9PiBxci9eCiAJCQlcUUNSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcgV0lUSCAoc2Vj dXJpdHlfYmFycmllcj0ndHJ1ZScpIEFTXEUKLQkJCVxuXHMrXFFTRUxFQ1QgdGVzdF90YWJsZS5j b2wxXEUKKwkJCVxuXHMrXFFTRUxFQ1QgY29sMVxFCiAJCQlcblxzK1xRRlJPTSBkdW1wX3Rlc3Qu dGVzdF90YWJsZVxFCiAJCQlcblxzK1xRV0lUSCBMT0NBTCBDSEVDSyBPUFRJT047XEUveG0sCiAJ CWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWdncmVnYXRl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FnZ3JlZ2F0ZXMub3V0CmluZGV4IDBh MjNhMzlhYTIuLjgxZDg3YTI2NzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYWdncmVnYXRlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hZ2dyZWdh dGVzLm91dApAQCAtMTU0NSw3ICsxNTQ1LDcgQEAgc2VsZWN0ICogZnJvbSBhZ2dfdmlldzE7CiBz ZWxlY3QgcGdfZ2V0X3ZpZXdkZWYoJ2FnZ192aWV3MSc6OnJlZ2NsYXNzKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g IFNFTEVDVCBhZ2dmbnModi5hLCB2LmIsIHYuYykgQVMgYWdnZm5zICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgU0VMRUNUIGFnZ2ZucyhhLCBiLCBjKSBBUyBhZ2dmbnMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwogICAgIEZST00gKCBWQUxVRVMgKDEsMywnZm9vJzo6dGV4dCksICgwLE5VTEw6Omlu dGVnZXIsTlVMTDo6dGV4dCksICgyLDIsJ2Jhcic6OnRleHQpLCAoMywxLCdiYXonOjp0ZXh0KSkg dihhLCBiLCBjKTsKICgxIHJvdykKIApAQCAtMTU5Nyw3ICsxNTk3LDcgQEAgc2VsZWN0ICogZnJv bSBhZ2dfdmlldzE7CiBzZWxlY3QgcGdfZ2V0X3ZpZXdkZWYoJ2FnZ192aWV3MSc6OnJlZ2NsYXNz KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBn X2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBhZ2dmbnModi5hLCB2LmIsIHYuYyBPUkRFUiBCWSAodi5i ICsgMSkpIEFTIGFnZ2ZucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKKyAgU0VMRUNUIGFnZ2ZucyhhLCBiLCBjIE9SREVSIEJZIChiICsg MSkpIEFTIGFnZ2ZucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwogICAgIEZST00gKCBWQUxVRVMgKDEsMywnZm9vJzo6dGV4 dCksICgwLE5VTEw6OmludGVnZXIsTlVMTDo6dGV4dCksICgyLDIsJ2Jhcic6OnRleHQpLCAoMywx LCdiYXonOjp0ZXh0KSkgdihhLCBiLCBjKTsKICgxIHJvdykKIApAQCAtMTYxMyw3ICsxNjEzLDcg QEAgc2VsZWN0ICogZnJvbSBhZ2dfdmlldzE7CiBzZWxlY3QgcGdfZ2V0X3ZpZXdkZWYoJ2FnZ192 aWV3MSc6OnJlZ2NsYXNzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBhZ2dmbnModi5hLCB2LmEsIHYu YyBPUkRFUiBCWSB2LmIpIEFTIGFnZ2ZucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgU0VMRUNUIGFnZ2ZucyhhLCBhLCBj IE9SREVSIEJZIGIpIEFTIGFnZ2ZucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgIEZST00gKCBWQUxVRVMg KDEsMywnZm9vJzo6dGV4dCksICgwLE5VTEw6OmludGVnZXIsTlVMTDo6dGV4dCksICgyLDIsJ2Jh cic6OnRleHQpLCAoMywxLCdiYXonOjp0ZXh0KSkgdihhLCBiLCBjKTsKICgxIHJvdykKIApAQCAt MTYyOSw3ICsxNjI5LDcgQEAgc2VsZWN0ICogZnJvbSBhZ2dfdmlldzE7CiBzZWxlY3QgcGdfZ2V0 X3ZpZXdkZWYoJ2FnZ192aWV3MSc6OnJlZ2NsYXNzKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBhZ2dm bnModi5hLCB2LmIsIHYuYyBPUkRFUiBCWSB2LmMgVVNJTkcgfjx+IE5VTExTIExBU1QpIEFTIGFn Z2ZucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgU0VMRUNU IGFnZ2ZucyhhLCBiLCBjIE9SREVSIEJZIGMgVVNJTkcgfjx+IE5VTExTIExBU1QpIEFTIGFnZ2Zu cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAg IEZST00gKCBWQUxVRVMgKDEsMywnZm9vJzo6dGV4dCksICgwLE5VTEw6OmludGVnZXIsTlVMTDo6 dGV4dCksICgyLDIsJ2Jhcic6OnRleHQpLCAoMywxLCdiYXonOjp0ZXh0KSkgdihhLCBiLCBjKTsK ICgxIHJvdykKIApAQCAtMjExNCwxNSArMjExNCwxNSBAQCBzZWxlY3QgdGVuLAogICBmcm9tIHRl bmsxCiAgZ3JvdXAgYnkgdGVuIG9yZGVyIGJ5IHRlbjsKIHNlbGVjdCBwZ19nZXRfdmlld2RlZign YWdnb3JkdmlldzEnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIHRl bmsxLnRlbiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgcGVyY2VudGlsZV9kaXNjKCgwLjUpOjpkb3VibGUgcHJlY2lzaW9uKSBXSVRISU4g R1JPVVAgKE9SREVSIEJZIHRlbmsxLnRob3VzYW5kKSBBUyBwNTAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKLSAgICAgcGVyY2VudGlsZV9kaXNjKCgwLjUpOjpkb3VibGUgcHJl Y2lzaW9uKSBXSVRISU4gR1JPVVAgKE9SREVSIEJZIHRlbmsxLnRob3VzYW5kKSBGSUxURVIgKFdI RVJFICh0ZW5rMS5odW5kcmVkID0gMSkpIEFTIHB4LCsKLSAgICAgcmFuayg1LCAnQVpaWlonOjpu YW1lLCA1MCkgV0lUSElOIEdST1VQIChPUkRFUiBCWSB0ZW5rMS5odW5kcmVkLCB0ZW5rMS5zdHJp bmc0IERFU0MsIHRlbmsxLmh1bmRyZWQpIEFTIHJhbmsgICAgICAgICAgICAgICsKLSAgICBGUk9N IHRlbmsxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKLSAgIEdST1VQIEJZIHRlbmsxLnRlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgIE9SREVSIEJZIHRlbmsxLnRlbjsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VM RUNUIHRlbiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgcGVyY2VudGlsZV9kaXNjKCgwLjUpOjpkb3VibGUgcHJlY2lzaW9uKSBXSVRISU4gR1JPVVAg KE9SREVSIEJZIHRob3VzYW5kKSBBUyBwNTAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgcGVyY2VudGlsZV9kaXNjKCgwLjUpOjpkb3VibGUgcHJlY2lzaW9uKSBXSVRISU4gR1JP VVAgKE9SREVSIEJZIHRob3VzYW5kKSBGSUxURVIgKFdIRVJFIChodW5kcmVkID0gMSkpIEFTIHB4 LCsKKyAgICAgcmFuayg1LCAnQVpaWlonOjpuYW1lLCA1MCkgV0lUSElOIEdST1VQIChPUkRFUiBC WSBodW5kcmVkLCBzdHJpbmc0IERFU0MsIGh1bmRyZWQpIEFTIHJhbmsgICAgICAgICAgICAgICAg ICAgICsKKyAgICBGUk9NIHRlbmsxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgIEdST1VQIEJZIHRlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIE9SREVSIEJZIHRlbjsKICgxIHJvdykKIAogc2VsZWN0ICogZnJvbSBh Z2dvcmR2aWV3MSBvcmRlciBieSB0ZW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2FsdGVyX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJf dGFibGUub3V0CmluZGV4IGFhYmM1NjRlMmMuLmEyMzIyZWJlZWMgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CkBAIC0yNDc1LDggKzI0NzUsOCBAQCBjcmVhdGUg dmlldyBhdF92aWV3XzIgYXMgc2VsZWN0ICosIHRvX2pzb24odjEpIGFzIGogZnJvbSBhdF92aWV3 XzEgdjE7CiAgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg ICB8IHBsYWluICAgIHwgCiAgc3R1ZmYgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRpb246Ci0gU0VMRUNUIGJ0Lmlk LAotICAgIGJ0LnN0dWZmCisgU0VMRUNUIGlkLAorICAgIHN0dWZmCiAgICBGUk9NIGF0X2Jhc2Vf dGFibGUgYnQ7CiAKIFxkKyBhdF92aWV3XzIKQEAgLTI0ODcsOCArMjQ4Nyw4IEBAIFZpZXcgZGVm aW5pdGlvbjoKICBzdHVmZiAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgZXh0ZW5kZWQgfCAKICBqICAgICAgfCBqc29uICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1QgdjEu aWQsCi0gICAgdjEuc3R1ZmYsCisgU0VMRUNUIGlkLAorICAgIHN0dWZmLAogICAgIHRvX2pzb24o djEuKikgQVMgagogICAgRlJPTSBhdF92aWV3XzEgdjE7CiAKQEAgLTI1MTQsOCArMjUxNCw4IEBA IGNyZWF0ZSBvciByZXBsYWNlIHZpZXcgYXRfdmlld18xIGFzIHNlbGVjdCAqLCAyKzIgYXMgbW9y ZSBmcm9tIGF0X2Jhc2VfdGFibGUgYnQ7CiAgc3R1ZmYgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiAgbW9yZSAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiBWaWV3IGRlZmluaXRp b246Ci0gU0VMRUNUIGJ0LmlkLAotICAgIGJ0LnN0dWZmLAorIFNFTEVDVCBpZCwKKyAgICBzdHVm ZiwKICAgICAyICsgMiBBUyBtb3JlCiAgICBGUk9NIGF0X2Jhc2VfdGFibGUgYnQ7CiAKQEAgLTI1 MjcsOCArMjUyNyw4IEBAIFZpZXcgZGVmaW5pdGlvbjoKICBzdHVmZiAgfCB0ZXh0ICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAKICBqICAgICAgfCBqc29u ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAKIFZpZXcg ZGVmaW5pdGlvbjoKLSBTRUxFQ1QgdjEuaWQsCi0gICAgdjEuc3R1ZmYsCisgU0VMRUNUIGlkLAor ICAgIHN0dWZmLAogICAgIHRvX2pzb24odjEuKikgQVMgagogICAgRlJPTSBhdF92aWV3XzEgdjE7 CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRm OC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0Cmlu ZGV4IGQ0YzhjNmRlMzguLjQzNTRkYzA3YjggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dApAQCAtNDQ2LDE4ICs0NDYsMTggQEAgQ1JFQVRFIFZJ RVcgY29sbHZpZXcyIEFTIFNFTEVDVCBhLCBiIEZST00gY29sbGF0ZV90ZXN0MSBPUkRFUiBCWSBi IENPTExBVEUgIkMiOwogQ1JFQVRFIFZJRVcgY29sbHZpZXczIEFTIFNFTEVDVCBhLCBsb3dlcigo eCB8fCB4KSBDT0xMQVRFICJDIikgRlJPTSBjb2xsYXRlX3Rlc3QxMDsKIFNFTEVDVCB0YWJsZV9u YW1lLCB2aWV3X2RlZmluaXRpb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudmlld3MKICAgV0hF UkUgdGFibGVfbmFtZSBMSUtFICdjb2xsdmlldyUnIE9SREVSIEJZIDE7Ci0gdGFibGVfbmFtZSB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3X2RlZmluaXRpb24gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGNvbGx2 aWV3MSAgfCAgU0VMRUNUIGNvbGxhdGVfdGVzdDEuYSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgICB8ICAgICBjb2xsYXRlX3Rlc3Qx LmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgICAgICAgICAgIHwgICAgRlJPTSBjb2xsYXRlX3Rlc3QxICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAgfCAgIFdIRVJFICgo Y29sbGF0ZV90ZXN0MS5iIENPTExBVEUgIkMiKSA+PSAnYmJjJzo6dGV4dCk7Ci0gY29sbHZpZXcy ICB8ICBTRUxFQ1QgY29sbGF0ZV90ZXN0MS5hLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIHwgICAgIGNvbGxhdGVfdGVzdDEuYiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg ICAgICAgICAgfCAgICBGUk9NIGNvbGxhdGVfdGVzdDEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgICB8ICAgT1JERVIgQlkgKGNv bGxhdGVfdGVzdDEuYiBDT0xMQVRFICJDIik7Ci0gY29sbHZpZXczICB8ICBTRUxFQ1QgY29sbGF0 ZV90ZXN0MTAuYSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKLSAgICAgICAgICAgIHwgICAgIGxvd2VyKCgoY29sbGF0ZV90ZXN0MTAueCB8fCBjb2xsYXRl X3Rlc3QxMC54KSBDT0xMQVRFICJDIikpIEFTIGxvd2VyKworIHRhYmxlX25hbWUgfCAgICAgICAg ICAgICAgdmlld19kZWZpbml0aW9uICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBjb2xsdmlldzEgIHwgIFNF TEVDVCBhLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgfCAg ICAgYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8 ICAgIEZST00gY29sbGF0ZV90ZXN0MSAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAg IHwgICBXSEVSRSAoKGIgQ09MTEFURSAiQyIpID49ICdiYmMnOjp0ZXh0KTsKKyBjb2xsdmlldzIg IHwgIFNFTEVDVCBhLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAg ICAgfCAgICAgYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICB8ICAgIEZST00gY29sbGF0ZV90ZXN0MSAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg ICAgICAgIHwgICBPUkRFUiBCWSAoYiBDT0xMQVRFICJDIik7CisgY29sbHZpZXczICB8ICBTRUxF Q1QgYSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIHwgICAg IGxvd2VyKCgoeCB8fCB4KSBDT0xMQVRFICJDIikpIEFTIGxvd2VyKwogICAgICAgICAgICAgfCAg ICBGUk9NIGNvbGxhdGVfdGVzdDEwOwogKDMgcm93cykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmxpbnV4LnV0Zjgub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jb2xsYXRlLmxpbnV4LnV0Zjgub3V0CmluZGV4IGYyZDBlYjk0ZjIuLjIwOTg2 OTZlYzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5saW51 eC51dGY4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUubGludXgu dXRmOC5vdXQKQEAgLTQ4MywxOCArNDgzLDE4IEBAIENSRUFURSBWSUVXIGNvbGx2aWV3MiBBUyBT RUxFQ1QgYSwgYiBGUk9NIGNvbGxhdGVfdGVzdDEgT1JERVIgQlkgYiBDT0xMQVRFICJDIjsKIENS RUFURSBWSUVXIGNvbGx2aWV3MyBBUyBTRUxFQ1QgYSwgbG93ZXIoKHggfHwgeCkgQ09MTEFURSAi QyIpIEZST00gY29sbGF0ZV90ZXN0MTA7CiBTRUxFQ1QgdGFibGVfbmFtZSwgdmlld19kZWZpbml0 aW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnZpZXdzCiAgIFdIRVJFIHRhYmxlX25hbWUgTElL RSAnY29sbHZpZXclJyBPUkRFUiBCWSAxOwotIHRhYmxlX25hbWUgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmlld19kZWZpbml0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ci0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBjb2xsdmlldzEgIHwgIFNFTEVDVCBj b2xsYXRlX3Rlc3QxLmEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwotICAgICAgICAgICAgfCAgICAgY29sbGF0ZV90ZXN0MS5iICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgICB8ICAg IEZST00gY29sbGF0ZV90ZXN0MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgICAgICAgICAgIHwgICBXSEVSRSAoKGNvbGxhdGVfdGVzdDEuYiBD T0xMQVRFICJDIikgPj0gJ2JiYyc6OnRleHQpOwotIGNvbGx2aWV3MiAgfCAgU0VMRUNUIGNvbGxh dGVfdGVzdDEuYSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCi0gICAgICAgICAgICB8ICAgICBjb2xsYXRlX3Rlc3QxLmIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgICAgICAgIHwgICAgRlJP TSBjb2xsYXRlX3Rlc3QxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKwotICAgICAgICAgICAgfCAgIE9SREVSIEJZIChjb2xsYXRlX3Rlc3QxLmIgQ09M TEFURSAiQyIpOwotIGNvbGx2aWV3MyAgfCAgU0VMRUNUIGNvbGxhdGVfdGVzdDEwLmEsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgICB8 ICAgICBsb3dlcigoKGNvbGxhdGVfdGVzdDEwLnggfHwgY29sbGF0ZV90ZXN0MTAueCkgQ09MTEFU RSAiQyIpKSBBUyBsb3dlcisKKyB0YWJsZV9uYW1lIHwgICAgICAgICAgICAgIHZpZXdfZGVmaW5p dGlvbiAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgY29sbHZpZXcxICB8ICBTRUxFQ1QgYSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIHwgICAgIGIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgfCAgICBGUk9NIGNvbGxhdGVf dGVzdDEgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8ICAgV0hFUkUgKChiIENP TExBVEUgIkMiKSA+PSAnYmJjJzo6dGV4dCk7CisgY29sbHZpZXcyICB8ICBTRUxFQ1QgYSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAgICAgIHwgICAgIGIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgfCAgICBGUk9NIGNv bGxhdGVfdGVzdDEgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8ICAgT1JERVIg QlkgKGIgQ09MTEFURSAiQyIpOworIGNvbGx2aWV3MyAgfCAgU0VMRUNUIGEsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8ICAgICBsb3dlcigoKHggfHwgeCkg Q09MTEFURSAiQyIpKSBBUyBsb3dlcisKICAgICAgICAgICAgIHwgICAgRlJPTSBjb2xsYXRlX3Rl c3QxMDsKICgzIHJvd3MpCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y29sbGF0ZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUub3V0CmluZGV4 IDI0NjgzMjU3NWMuLjA2NDk1NjQ0ODUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY29sbGF0ZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRl Lm91dApAQCAtMTk0LDE4ICsxOTQsMTggQEAgQ1JFQVRFIFZJRVcgY29sbHZpZXcyIEFTIFNFTEVD VCBhLCBiIEZST00gY29sbGF0ZV90ZXN0MSBPUkRFUiBCWSBiIENPTExBVEUgIkMiOwogQ1JFQVRF IFZJRVcgY29sbHZpZXczIEFTIFNFTEVDVCBhLCBsb3dlcigoeCB8fCB4KSBDT0xMQVRFICJQT1NJ WCIpIEZST00gY29sbGF0ZV90ZXN0MTA7CiBTRUxFQ1QgdGFibGVfbmFtZSwgdmlld19kZWZpbml0 aW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnZpZXdzCiAgIFdIRVJFIHRhYmxlX25hbWUgTElL RSAnY29sbHZpZXclJyBPUkRFUiBCWSAxOwotIHRhYmxlX25hbWUgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2aWV3X2RlZmluaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGNvbGx2aWV3MSAgfCAg U0VMRUNUIGNvbGxhdGVfdGVzdDEuYSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAgfCAgICAgY29sbGF0ZV90ZXN0MS5iICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgICAgICAgICAgfCAgICBGUk9NIGNvbGxhdGVfdGVzdDEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAgICAgICAgfCAgIFdIRVJF ICgoY29sbGF0ZV90ZXN0MS5iIENPTExBVEUgIkMiKSA+PSAnYmJjJzo6dGV4dCk7Ci0gY29sbHZp ZXcyICB8ICBTRUxFQ1QgY29sbGF0ZV90ZXN0MS5hLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgICB8ICAgICBjb2xsYXRlX3Rl c3QxLmIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCi0gICAgICAgICAgICB8ICAgIEZST00gY29sbGF0ZV90ZXN0MSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgICB8 ICAgT1JERVIgQlkgKGNvbGxhdGVfdGVzdDEuYiBDT0xMQVRFICJDIik7Ci0gY29sbHZpZXczICB8 ICBTRUxFQ1QgY29sbGF0ZV90ZXN0MTAuYSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCi0gICAgICAgICAgICB8ICAgICBsb3dlcigoKGNvbGxhdGVf dGVzdDEwLnggfHwgY29sbGF0ZV90ZXN0MTAueCkgQ09MTEFURSAiUE9TSVgiKSkgQVMgbG93ZXIr CisgdGFibGVfbmFtZSB8ICAgICAgICAgICAgICAgIHZpZXdfZGVmaW5pdGlvbiAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgY29sbHZpZXcxICB8ICBTRUxFQ1QgYSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8ICAgICBiICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8ICAgIEZST00gY29sbGF0ZV90 ZXN0MSAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8ICAgV0hFUkUgKChi IENPTExBVEUgIkMiKSA+PSAnYmJjJzo6dGV4dCk7CisgY29sbHZpZXcyICB8ICBTRUxFQ1QgYSwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8ICAgICBi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICB8 ICAgIEZST00gY29sbGF0ZV90ZXN0MSAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg ICAgICB8ICAgT1JERVIgQlkgKGIgQ09MTEFURSAiQyIpOworIGNvbGx2aWV3MyAgfCAgU0VMRUNU IGEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICAgICAgICAgfCAg ICAgbG93ZXIoKCh4IHx8IHgpIENPTExBVEUgIlBPU0lYIikpIEFTIGxvd2VyKwogICAgICAgICAg ICAgfCAgICBGUk9NIGNvbGxhdGVfdGVzdDEwOwogKDMgcm93cykKIApAQCAtNjk4LDcgKzY5OCw3 IEBAIFNFTEVDVCBjMSsxIEFTIGMxcCBGUk9NCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KICBjMXAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8IAog VmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBzcy5jMSArIDEgQVMgYzFwCisgU0VMRUNUIGMxICsg MSBBUyBjMXAKICAgIEZST00gKCBTRUxFQ1QgNCBBUyBjMSkgc3M7CiAKIC0tIENoZWNrIGNvbmZs aWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIGluIENSRUFURSBDT0xMQVRJT04KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29tcHJlc3Npb24ub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jb21wcmVzc2lvbi5vdXQKaW5kZXggNGM5OTdlMjYwMi4uZTA2YWM5 M2EzNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb21wcmVzc2lvbi5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb21wcmVzc2lvbi5vdXQKQEAgLTE4 Nyw3ICsxODcsNyBAQCBDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcgY29tcHJlc3Ntdih4KSBBUyBT RUxFQ1QgKiBGUk9NIGNtZGF0YTE7CiAtLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KICB4ICAgICAgfCB0ZXh0IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8IAogVmlldyBkZWZp bml0aW9uOgotIFNFTEVDVCBjbWRhdGExLmYxIEFTIHgKKyBTRUxFQ1QgZjEgQVMgeAogICAgRlJP TSBjbWRhdGExOwogCiBTRUxFQ1QgcGdfY29sdW1uX2NvbXByZXNzaW9uKGYxKSBGUk9NIGNtZGF0 YTE7CkBAIC0yNzQsNyArMjc0LDcgQEAgQUxURVIgTUFURVJJQUxJWkVEIFZJRVcgY29tcHJlc3Nt diBBTFRFUiBDT0xVTU4geCBTRVQgQ09NUFJFU1NJT04gbHo0OwogLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiAgeCAgICAgIHwgdGV4dCB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgbHo0ICAgICAgICAgfCAgICAgICAgICAg ICAgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1QgY21kYXRhMS5mMSBBUyB4CisgU0VMRUNU IGYxIEFTIHgKICAgIEZST00gY21kYXRhMTsKIAogLS0gdGVzdCBhbHRlciBjb21wcmVzc2lvbiBt ZXRob2QgZm9yIHBhcnRpdGlvbmVkIHRhYmxlcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jcmVhdGVfdmlldy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Ny ZWF0ZV92aWV3Lm91dAppbmRleCAzMjM4NWJiYjBlLi5lNjBiZGYyZGZmIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV92aWV3Lm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV92aWV3Lm91dApAQCAtMzk1LDEwICszOTUsMTAgQEAgQ1JF QVRFIFZJRVcgdHQxIEFTCiAgYyAgICAgIHwgbnVtZXJpYyAgICAgICAgICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgICAgfCBtYWluICAgICB8IAogIGQgICAgICB8IGNoYXJhY3Rl ciB2YXJ5aW5nKDQpIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQg fCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1QgdnYuYSwKLSAgICB2di5iLAotICAgIHZ2LmMs Ci0gICAgdnYuZAorIFNFTEVDVCBhLAorICAgIGIsCisgICAgYywKKyAgICBkCiAgICBGUk9NICgg VkFMVUVTICgnYWJjJzo6Y2hhcmFjdGVyIHZhcnlpbmcoMyksJzAxMjM0NTY3ODknOjpjaGFyYWN0 ZXIgdmFyeWluZyw0MiwnYWJjZCc6OmNoYXJhY3RlciB2YXJ5aW5nKDQpKSwgKCcwMTIzNDU2Nzg5 Jzo6Y2hhcmFjdGVyIHZhcnlpbmcsJ2FiYyc6OmNoYXJhY3RlciB2YXJ5aW5nKDMpLDQyLjEyLCdh YmMnOjpjaGFyYWN0ZXIgdmFyeWluZyg0KSkpIHZ2KGEsIGIsIGMsIGQpOwogCiBTRUxFQ1QgKiBG Uk9NIHR0MTsKQEAgLTQ0MCw5ICs0NDAsOSBAQCBDUkVBVEUgVklFVyBhbGlhc2VkX3ZpZXdfNCBB UwogIGYyICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBw bGFpbiAgICB8IAogIGYzICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBleHRlbmRlZCB8IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCB0dDEuZjEsCi0g ICAgdHQxLmYyLAotICAgIHR0MS5mMworIFNFTEVDVCBmMSwKKyAgICBmMiwKKyAgICBmMwogICAg RlJPTSB0dDEKICAgV0hFUkUgKEVYSVNUUyAoIFNFTEVDVCAxCiAgICAgICAgICAgIEZST00gdHgx CkBAIC00NTYsOSArNDU2LDkgQEAgVmlldyBkZWZpbml0aW9uOgogIGYyICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8IAogIGYzICAgICB8 IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8IAog VmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBhMS5mMSwKLSAgICBhMS5mMiwKLSAgICBhMS5mMwor IFNFTEVDVCBmMSwKKyAgICBmMiwKKyAgICBmMwogICAgRlJPTSB0dDEgYTEKICAgV0hFUkUgKEVY SVNUUyAoIFNFTEVDVCAxCiAgICAgICAgICAgIEZST00gdHgxCkBAIC00NzIsOSArNDcyLDkgQEAg VmlldyBkZWZpbml0aW9uOgogIGYyICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgfCBwbGFpbiAgICB8IAogIGYzICAgICB8IHRleHQgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8IAogVmlldyBkZWZpbml0aW9uOgotIFNF TEVDVCB0dDEuZjEsCi0gICAgdHQxLmYyLAotICAgIHR0MS5mMworIFNFTEVDVCBmMSwKKyAgICBm MiwKKyAgICBmMwogICAgRlJPTSB0dDEKICAgV0hFUkUgKEVYSVNUUyAoIFNFTEVDVCAxCiAgICAg ICAgICAgIEZST00gdHgxIGEyCkBAIC00ODgsOSArNDg4LDkgQEAgVmlldyBkZWZpbml0aW9uOgog IGYyICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFp biAgICB8IAogIGYzICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgfCBleHRlbmRlZCB8IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCB0dDEueTEsCi0gICAg dHQxLmYyLAotICAgIHR0MS5mMworIFNFTEVDVCB5MSwKKyAgICBmMiwKKyAgICBmMwogICAgRlJP TSB0ZW1wX3ZpZXdfdGVzdC50dDEKICAgV0hFUkUgKEVYSVNUUyAoIFNFTEVDVCAxCiAgICAgICAg ICAgIEZST00gdHQxIHR0MV8xCkBAIC01MDUsOSArNTA1LDkgQEAgQUxURVIgVEFCTEUgdHgxIFJF TkFNRSBUTyBhMTsKICBmMiAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgcGxhaW4gICAgfCAKICBmMyAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1Qg dHQxLmYxLAotICAgIHR0MS5mMiwKLSAgICB0dDEuZjMKKyBTRUxFQ1QgZjEsCisgICAgZjIsCisg ICAgZjMKICAgIEZST00gdHQxCiAgIFdIRVJFIChFWElTVFMgKCBTRUxFQ1QgMQogICAgICAgICAg ICBGUk9NIGExCkBAIC01MjEsOSArNTIxLDkgQEAgVmlldyBkZWZpbml0aW9uOgogIGYyICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8IAog IGYzICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRl bmRlZCB8IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBhMS5mMSwKLSAgICBhMS5mMiwKLSAg ICBhMS5mMworIFNFTEVDVCBmMSwKKyAgICBmMiwKKyAgICBmMwogICAgRlJPTSB0dDEgYTEKICAg V0hFUkUgKEVYSVNUUyAoIFNFTEVDVCAxCiAgICAgICAgICAgIEZST00gYTEgYTFfMQpAQCAtNTM3 LDkgKzUzNyw5IEBAIFZpZXcgZGVmaW5pdGlvbjoKICBmMiAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAKICBmMyAgICAgfCB0ZXh0ICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAKIFZpZXcgZGVm aW5pdGlvbjoKLSBTRUxFQ1QgdHQxLmYxLAotICAgIHR0MS5mMiwKLSAgICB0dDEuZjMKKyBTRUxF Q1QgZjEsCisgICAgZjIsCisgICAgZjMKICAgIEZST00gdHQxCiAgIFdIRVJFIChFWElTVFMgKCBT RUxFQ1QgMQogICAgICAgICAgICBGUk9NIGExIGEyCkBAIC01NTMsOSArNTUzLDkgQEAgVmlldyBk ZWZpbml0aW9uOgogIGYyICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBwbGFpbiAgICB8IAogIGYzICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCB0 dDEueTEsCi0gICAgdHQxLmYyLAotICAgIHR0MS5mMworIFNFTEVDVCB5MSwKKyAgICBmMiwKKyAg ICBmMwogICAgRlJPTSB0ZW1wX3ZpZXdfdGVzdC50dDEKICAgV0hFUkUgKEVYSVNUUyAoIFNFTEVD VCAxCiAgICAgICAgICAgIEZST00gdHQxIHR0MV8xCkBAIC01NzAsOSArNTcwLDkgQEAgQUxURVIg VEFCTEUgdHQxIFJFTkFNRSBUTyBhMjsKICBmMiAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAKICBmMyAgICAgfCB0ZXh0ICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAKIFZpZXcgZGVmaW5pdGlv bjoKLSBTRUxFQ1QgYTIuZjEsCi0gICAgYTIuZjIsCi0gICAgYTIuZjMKKyBTRUxFQ1QgZjEsCisg ICAgZjIsCisgICAgZjMKICAgIEZST00gYTIKICAgV0hFUkUgKEVYSVNUUyAoIFNFTEVDVCAxCiAg ICAgICAgICAgIEZST00gYTEKQEAgLTU4Niw5ICs1ODYsOSBAQCBWaWV3IGRlZmluaXRpb246CiAg ZjIgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWlu ICAgIHwgCiAgZjMgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg ICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRpb246Ci0gU0VMRUNUIGExLmYxLAotICAgIGEx LmYyLAotICAgIGExLmYzCisgU0VMRUNUIGYxLAorICAgIGYyLAorICAgIGYzCiAgICBGUk9NIGEy IGExCiAgIFdIRVJFIChFWElTVFMgKCBTRUxFQ1QgMQogICAgICAgICAgICBGUk9NIGExIGExXzEK QEAgLTYwMiw5ICs2MDIsOSBAQCBWaWV3IGRlZmluaXRpb246CiAgZjIgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwg dGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBW aWV3IGRlZmluaXRpb246Ci0gU0VMRUNUIGEyLmYxLAotICAgIGEyLmYyLAotICAgIGEyLmYzCisg U0VMRUNUIGYxLAorICAgIGYyLAorICAgIGYzCiAgICBGUk9NIGEyCiAgIFdIRVJFIChFWElTVFMg KCBTRUxFQ1QgMQogICAgICAgICAgICBGUk9NIGExIGEyXzEKQEAgLTYxOCw5ICs2MTgsOSBAQCBW aWV3IGRlZmluaXRpb246CiAgZjIgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRpb246Ci0gU0VM RUNUIHR0MS55MSwKLSAgICB0dDEuZjIsCi0gICAgdHQxLmYzCisgU0VMRUNUIHkxLAorICAgIGYy LAorICAgIGYzCiAgICBGUk9NIHRlbXBfdmlld190ZXN0LnR0MQogICBXSEVSRSAoRVhJU1RTICgg U0VMRUNUIDEKICAgICAgICAgICAgRlJPTSBhMgpAQCAtNjM1LDkgKzYzNSw5IEBAIEFMVEVSIFRB QkxFIGExIFJFTkFNRSBUTyB0dDE7CiAgZjIgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4dCAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRpb246 Ci0gU0VMRUNUIGEyLmYxLAotICAgIGEyLmYyLAotICAgIGEyLmYzCisgU0VMRUNUIGYxLAorICAg IGYyLAorICAgIGYzCiAgICBGUk9NIGEyCiAgIFdIRVJFIChFWElTVFMgKCBTRUxFQ1QgMQogICAg ICAgICAgICBGUk9NIHR0MQpAQCAtNjUxLDkgKzY1MSw5IEBAIFZpZXcgZGVmaW5pdGlvbjoKICBm MiAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4g ICAgfCAKICBmMyAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg IHwgZXh0ZW5kZWQgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1QgYTEuZjEsCi0gICAgYTEu ZjIsCi0gICAgYTEuZjMKKyBTRUxFQ1QgZjEsCisgICAgZjIsCisgICAgZjMKICAgIEZST00gYTIg YTEKICAgV0hFUkUgKEVYSVNUUyAoIFNFTEVDVCAxCiAgICAgICAgICAgIEZST00gdHQxCkBAIC02 NjcsOSArNjY3LDkgQEAgVmlldyBkZWZpbml0aW9uOgogIGYyICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgICB8IAogIGYzICAgICB8IHRleHQg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8IAogVmlldyBk ZWZpbml0aW9uOgotIFNFTEVDVCBhMi5mMSwKLSAgICBhMi5mMiwKLSAgICBhMi5mMworIFNFTEVD VCBmMSwKKyAgICBmMiwKKyAgICBmMwogICAgRlJPTSBhMgogICBXSEVSRSAoRVhJU1RTICggU0VM RUNUIDEKICAgICAgICAgICAgRlJPTSB0dDEgYTJfMQpAQCAtNjgzLDkgKzY4Myw5IEBAIFZpZXcg ZGVmaW5pdGlvbjoKICBmMiAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgIHwgcGxhaW4gICAgfCAKICBmMyAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgIHwgZXh0ZW5kZWQgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1Qg dHQxLnkxLAotICAgIHR0MS5mMiwKLSAgICB0dDEuZjMKKyBTRUxFQ1QgeTEsCisgICAgZjIsCisg ICAgZjMKICAgIEZST00gdGVtcF92aWV3X3Rlc3QudHQxCiAgIFdIRVJFIChFWElTVFMgKCBTRUxF Q1QgMQogICAgICAgICAgICBGUk9NIGEyCkBAIC03MDEsOSArNzAxLDkgQEAgQUxURVIgVEFCTEUg dHgxIFNFVCBTQ0hFTUEgdGVtcF92aWV3X3Rlc3Q7CiAgZjIgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4dCAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRl ZmluaXRpb246Ci0gU0VMRUNUIHR4MS5mMSwKLSAgICB0eDEuZjIsCi0gICAgdHgxLmYzCisgU0VM RUNUIGYxLAorICAgIGYyLAorICAgIGYzCiAgICBGUk9NIHRlbXBfdmlld190ZXN0LnR4MQogICBX SEVSRSAoRVhJU1RTICggU0VMRUNUIDEKICAgICAgICAgICAgRlJPTSB0dDEKQEAgLTcxNyw5ICs3 MTcsOSBAQCBWaWV3IGRlZmluaXRpb246CiAgZjIgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4dCAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRp b246Ci0gU0VMRUNUIGExLmYxLAotICAgIGExLmYyLAotICAgIGExLmYzCisgU0VMRUNUIGYxLAor ICAgIGYyLAorICAgIGYzCiAgICBGUk9NIHRlbXBfdmlld190ZXN0LnR4MSBhMQogICBXSEVSRSAo RVhJU1RTICggU0VMRUNUIDEKICAgICAgICAgICAgRlJPTSB0dDEKQEAgLTczMyw5ICs3MzMsOSBA QCBWaWV3IGRlZmluaXRpb246CiAgZjIgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4dCAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRpb246Ci0g U0VMRUNUIHR4MS5mMSwKLSAgICB0eDEuZjIsCi0gICAgdHgxLmYzCisgU0VMRUNUIGYxLAorICAg IGYyLAorICAgIGYzCiAgICBGUk9NIHRlbXBfdmlld190ZXN0LnR4MQogICBXSEVSRSAoRVhJU1RT ICggU0VMRUNUIDEKICAgICAgICAgICAgRlJPTSB0dDEgYTIKQEAgLTc0OSw5ICs3NDksOSBAQCBW aWV3IGRlZmluaXRpb246CiAgZjIgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRpb246Ci0gU0VM RUNUIHR0MS55MSwKLSAgICB0dDEuZjIsCi0gICAgdHQxLmYzCisgU0VMRUNUIHkxLAorICAgIGYy LAorICAgIGYzCiAgICBGUk9NIHRlbXBfdmlld190ZXN0LnR0MQogICBXSEVSRSAoRVhJU1RTICgg U0VMRUNUIDEKICAgICAgICAgICAgRlJPTSB0ZW1wX3ZpZXdfdGVzdC50eDEKQEAgLTc2OCw5ICs3 NjgsOSBAQCBBTFRFUiBUQUJMRSB0bXAxIFJFTkFNRSBUTyB0eDE7CiAgZjIgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAg IHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwg CiBWaWV3IGRlZmluaXRpb246Ci0gU0VMRUNUIHR4MS5mMSwKLSAgICB0eDEuZjIsCi0gICAgdHgx LmYzCisgU0VMRUNUIGYxLAorICAgIGYyLAorICAgIGYzCiAgICBGUk9NIHRlbXBfdmlld190ZXN0 LnR4MQogICBXSEVSRSAoRVhJU1RTICggU0VMRUNUIDEKICAgICAgICAgICAgRlJPTSB0dDEKQEAg LTc4NCw5ICs3ODQsOSBAQCBWaWV3IGRlZmluaXRpb246CiAgZjIgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4 dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3 IGRlZmluaXRpb246Ci0gU0VMRUNUIGExLmYxLAotICAgIGExLmYyLAotICAgIGExLmYzCisgU0VM RUNUIGYxLAorICAgIGYyLAorICAgIGYzCiAgICBGUk9NIHRlbXBfdmlld190ZXN0LnR4MSBhMQog ICBXSEVSRSAoRVhJU1RTICggU0VMRUNUIDEKICAgICAgICAgICAgRlJPTSB0dDEKQEAgLTgwMCw5 ICs4MDAsOSBAQCBWaWV3IGRlZmluaXRpb246CiAgZjIgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4dCAgICB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmlu aXRpb246Ci0gU0VMRUNUIHR4MS5mMSwKLSAgICB0eDEuZjIsCi0gICAgdHgxLmYzCisgU0VMRUNU IGYxLAorICAgIGYyLAorICAgIGYzCiAgICBGUk9NIHRlbXBfdmlld190ZXN0LnR4MQogICBXSEVS RSAoRVhJU1RTICggU0VMRUNUIDEKICAgICAgICAgICAgRlJPTSB0dDEgYTIKQEAgLTgxNiw5ICs4 MTYsOSBAQCBWaWV3IGRlZmluaXRpb246CiAgZjIgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgCiAgZjMgICAgIHwgdGV4dCAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRp b246Ci0gU0VMRUNUIHR4MS55MSwKLSAgICB0eDEuZjIsCi0gICAgdHgxLmYzCisgU0VMRUNUIHkx LAorICAgIGYyLAorICAgIGYzCiAgICBGUk9NIHR4MQogICBXSEVSRSAoRVhJU1RTICggU0VMRUNU IDEKICAgICAgICAgICAgRlJPTSB0ZW1wX3ZpZXdfdGVzdC50eDEgdHgxXzEKQEAgLTEzMDUsMTAg KzEzMDUsMTAgQEAgc2VsZWN0IHBnX2dldF92aWV3ZGVmKCd2MScsIHRydWUpOwogc2VsZWN0IHBn X2dldF92aWV3ZGVmKCd2NCcsIHRydWUpOwogIHBnX2dldF92aWV3ZGVmIAogLS0tLS0tLS0tLS0t LS0tLQotICBTRUxFQ1QgdjEuYiwgKwotICAgICB2MS5jLCAgICAgKwotICAgICB2MS54IEFTIGEs KwotICAgICB2MS5heCAgICAgKworICBTRUxFQ1QgYiwgICAgKworICAgICBjLCAgICAgICAgKwor ICAgICB4IEFTIGEsICAgKworICAgICBheCAgICAgICAgKwogICAgIEZST00gdjE7CiAoMSByb3cp CiAKQEAgLTE1ODUsOSArMTU4NSw5IEBAIGNyZWF0ZSB2aWV3IHR0MTR2IGFzIHNlbGVjdCB0Liog ZnJvbSB0dDE0ZigpIHQ7CiBzZWxlY3QgcGdfZ2V0X3ZpZXdkZWYoJ3R0MTR2JywgdHJ1ZSk7CiAg ICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAgU0VMRUNUIHQuZjEsICAgICAgICAgICAgICAgICArCi0gICAgIHQuZjMsICAg ICAgICAgICAgICAgICAgICAgKwotICAgICB0LmY0ICAgICAgICAgICAgICAgICAgICAgICsKKyAg U0VMRUNUIGYxLCAgICAgICAgICAgICAgICAgICArCisgICAgIGYzLCAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICBmNCAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICBGUk9NIHR0MTRm KCkgdChmMSwgZjMsIGY0KTsKICgxIHJvdykKIApAQCAtMTYwNCw5ICsxNjA0LDkgQEAgYWx0ZXIg dGFibGUgdHQxNHQgZHJvcCBjb2x1bW4gZjM7CiBzZWxlY3QgcGdfZ2V0X3ZpZXdkZWYoJ3R0MTR2 JywgdHJ1ZSk7CiAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIHQuZjEsICAgICAgICAgICAgICAgICArCi0g ICAgIHQuZjMsICAgICAgICAgICAgICAgICAgICAgKwotICAgICB0LmY0ICAgICAgICAgICAgICAg ICAgICAgICsKKyAgU0VMRUNUIGYxLCAgICAgICAgICAgICAgICAgICArCisgICAgIGYzLCAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICBmNCAgICAgICAgICAgICAgICAgICAgICAgICsKICAg ICBGUk9NIHR0MTRmKCkgdChmMSwgZjMsIGY0KTsKICgxIHJvdykKIApAQCAtMTYyNyw5ICsxNjI3 LDkgQEAgYWx0ZXIgdGFibGUgdHQxNHQgYWx0ZXIgY29sdW1uIGY0IHR5cGUgaW50ZWdlciB1c2lu ZyBmNDo6aW50ZWdlcjsKIHNlbGVjdCBwZ19nZXRfdmlld2RlZigndHQxNHYnLCB0cnVlKTsKICAg ICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotICBTRUxFQ1QgdC5mMSwgICAgICAgICAgICAgICAgICsKLSAgICAgdC5mMywgICAg ICAgICAgICAgICAgICAgICArCi0gICAgIHQuZjQgICAgICAgICAgICAgICAgICAgICAgKworICBT RUxFQ1QgZjEsICAgICAgICAgICAgICAgICAgICsKKyAgICAgZjMsICAgICAgICAgICAgICAgICAg ICAgICArCisgICAgIGY0ICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgIEZST00gdHQxNGYo KSB0KGYxLCBmMywgZjQpOwogKDEgcm93KQogCkBAIC0xNzE5LDggKzE3MTksOCBAQCBzZWxlY3Qg KiBmcm9tIHR0MTd2Owogc2VsZWN0IHBnX2dldF92aWV3ZGVmKCd0dDE3dicsIHRydWUpOwogICAg ICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGkucTEsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKwotICAgICBpLnEyICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgIFNFTEVDVCBxMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgcTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgIEZS T00gaW50OF90YmwgaSAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICBXSEVSRSAoaS4qIElO ICggVkFMVUVTIChpLio6OmludDhfdGJsKSkpOwogKDEgcm93KQpAQCAtMTk2NSw3ICsxOTY1LDcg QEAgc2VsZWN0IHBnX2dldF92aWV3ZGVmKCd0dDI1dicsIHRydWUpOwogICBXSVRIIGN0ZSBBUyBN QVRFUklBTElaRUQgKCAgICAgICAgICAgKwogICAgICAgICAgIFNFTEVDVCBwZ19nZXRfa2V5d29y ZHMoKSBBUyBrKwogICAgICAgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICBT RUxFQ1QgKGN0ZS5rKS53b3JkIEFTIHdvcmQgICAgICAgICAgKworICBTRUxFQ1QgKGspLndvcmQg QVMgd29yZCAgICAgICAgICAgICAgKwogICAgIEZST00gY3RlOwogKDEgcm93KQogCkBAIC0yMDE3 LDE5ICsyMDE3LDE5IEBAIHNlbGVjdCB4ICsgeSArIHogYXMgYzEsCiAgICAgICAgKHgseSkgPD0g QU5ZICh2YWx1ZXMoMSwyKSwoMyw0KSkgYXMgYzExCiBmcm9tICh2YWx1ZXMoMSwyLDMpKSB2KHgs eSx6KTsKIHNlbGVjdCBwZ19nZXRfdmlld2RlZigndHQyNnYnLCB0cnVlKTsKLSAgICAgICAgICAg ICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBTRUxFQ1Qg di54ICsgdi55ICsgdi56IEFTIGMxLCAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgdi54 ICogdi55ICsgdi56IEFTIGMyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHYu eCArIHYueSAqIHYueiBBUyBjMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICAo di54ICsgdi55KSAqIHYueiBBUyBjNCwgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAg di54ICogKHYueSArIHYueikgQVMgYzUsICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAg IHYueCArICh2LnkgKyB2LnopIEFTIGM2LCAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAg ICB2LnggKyAodi55ICMgdi56KSBBUyBjNywgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAg ICAgdi54ID4gdi55IEFORCAodi55ID4gdi56IE9SIHYueCA+IHYueikgQVMgYzgsICAgICArCi0g ICAgIHYueCA+IHYueSBPUiB2LnkgPiB2LnogQU5EIE5PVCB2LnggPiB2LnogQVMgYzksICAgKwot ICAgICAoKHYueCwgdi55KSA8PiBBTEwgKCBWQUxVRVMgKDEsMiksICgzLDQpKSkgQVMgYzEwLCsK LSAgICAgKCh2LngsIHYueSkgPD0gQU5ZICggVkFMVUVTICgxLDIpLCAoMyw0KSkpIEFTIGMxMSAr CisgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNF TEVDVCB4ICsgeSArIHogQVMgYzEsICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHgg KiB5ICsgeiBBUyBjMiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHggKyB5 ICogeiBBUyBjMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICh4ICsgeSkg KiB6IEFTIGM0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHggKiAoeSArIHop IEFTIGM1LCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHggKyAoeSArIHopIEFT IGM2LCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHggKyAoeSAjIHopIEFTIGM3 LCAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHggPiB5IEFORCAoeSA+IHogT1Ig eCA+IHopIEFTIGM4LCAgICAgICAgICAgICArCisgICAgIHggPiB5IE9SIHkgPiB6IEFORCBOT1Qg eCA+IHogQVMgYzksICAgICAgICAgICArCisgICAgICgoeCwgeSkgPD4gQUxMICggVkFMVUVTICgx LDIpLCAoMyw0KSkpIEFTIGMxMCwrCisgICAgICgoeCwgeSkgPD0gQU5ZICggVkFMVUVTICgxLDIp LCAoMyw0KSkpIEFTIGMxMSArCiAgICAgRlJPTSAoIFZBTFVFUyAoMSwyLDMpKSB2KHgsIHksIHop OwogKDEgcm93KQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2V4cHJl c3Npb25zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwcmVzc2lvbnMub3V0Cmlu ZGV4IDViZjM5ZmQ5YWEuLjBhYjZhNzE4OTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZXhwcmVzc2lvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv ZXhwcmVzc2lvbnMub3V0CkBAIC0xMDgsMTIgKzEwOCwxMiBAQCBjcmVhdGUgdmlldyBudW1lcmlj X3ZpZXcgYXMKICBmMjE2NCAgfCBudW1lcmljKDE2LDQpIHwgICAgICAgICAgIHwgICAgICAgICAg fCAgICAgICAgIHwgbWFpbiAgICB8IAogIGYybiAgICB8IG51bWVyaWMgICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgICAgfCBtYWluICAgIHwgCiBWaWV3IGRlZmluaXRpb246Ci0g U0VMRUNUIG51bWVyaWNfdGJsLmYxLAotICAgIG51bWVyaWNfdGJsLmYxOjpudW1lcmljKDE2LDQp IEFTIGYxMTY0LAotICAgIG51bWVyaWNfdGJsLmYxOjpudW1lcmljIEFTIGYxbiwKLSAgICBudW1l cmljX3RibC5mMiwKLSAgICBudW1lcmljX3RibC5mMjo6bnVtZXJpYygxNiw0KSBBUyBmMjE2NCwK LSAgICBudW1lcmljX3RibC5mMiBBUyBmMm4KKyBTRUxFQ1QgZjEsCisgICAgZjE6Om51bWVyaWMo MTYsNCkgQVMgZjExNjQsCisgICAgZjE6Om51bWVyaWMgQVMgZjFuLAorICAgIGYyLAorICAgIGYy OjpudW1lcmljKDE2LDQpIEFTIGYyMTY0LAorICAgIGYyIEFTIGYybgogICAgRlJPTSBudW1lcmlj X3RibDsKIAogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIG51bWVy aWNfdmlldzsKQEAgLTE0MiwxMiArMTQyLDEyIEBAIGNyZWF0ZSB2aWV3IGJwY2hhcl92aWV3IGFz CiAgZjIxNCAgIHwgY2hhcmFjdGVyKDE0KSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg ICB8IGV4dGVuZGVkIHwgCiAgZjJuICAgIHwgYnBjaGFyICAgICAgICB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgCiBWaWV3IGRlZmluaXRpb246Ci0gU0VMRUNU IGJwY2hhcl90YmwuZjEsCi0gICAgYnBjaGFyX3RibC5mMTo6Y2hhcmFjdGVyKDE0KSBBUyBmMTE0 LAotICAgIGJwY2hhcl90YmwuZjE6OmJwY2hhciBBUyBmMW4sCi0gICAgYnBjaGFyX3RibC5mMiwK LSAgICBicGNoYXJfdGJsLmYyOjpjaGFyYWN0ZXIoMTQpIEFTIGYyMTQsCi0gICAgYnBjaGFyX3Ri bC5mMiBBUyBmMm4KKyBTRUxFQ1QgZjEsCisgICAgZjE6OmNoYXJhY3RlcigxNCkgQVMgZjExNCwK KyAgICBmMTo6YnBjaGFyIEFTIGYxbiwKKyAgICBmMiwKKyAgICBmMjo6Y2hhcmFjdGVyKDE0KSBB UyBmMjE0LAorICAgIGYyIEFTIGYybgogICAgRlJPTSBicGNoYXJfdGJsOwogCiBleHBsYWluICh2 ZXJib3NlLCBjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gYnBjaGFyX3ZpZXcKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JvdXBpbmdzZXRzLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ3JvdXBpbmdzZXRzLm91dAppbmRleCA2YTU2ZjBiMDljLi5kM2U3YjIz MzMyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyb3VwaW5nc2V0cy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncm91cGluZ3NldHMub3V0CkBAIC01 MDYsMTYgKzUwNiwxNiBAQCBDUkVBVEUgVklFVyBnc3Rlc3RfdmlldyBBUyBzZWxlY3QgYSwgYiwg Z3JvdXBpbmcoYSxiKSwgc3VtKGMpLCBjb3VudCgqKSwgbWF4KGMpCiAgIGZyb20gZ3N0ZXN0MiBn cm91cCBieSByb2xsdXAgKChhLGIsYyksKGMsZCkpOwogTk9USUNFOiAgdmlldyAiZ3N0ZXN0X3Zp ZXciIHdpbGwgYmUgYSB0ZW1wb3Jhcnkgdmlldwogc2VsZWN0IHBnX2dldF92aWV3ZGVmKCdnc3Rl c3Rfdmlldyc6OnJlZ2NsYXNzLCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIGdzdGVzdDIuYSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgZ3N0ZXN0Mi5i LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKLSAgICAgR1JPVVBJTkcoZ3N0ZXN0Mi5hLCBnc3Rlc3QyLmIpIEFTICJncm91cGlu ZyIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgc3VtKGdzdGVzdDIuYykgQVMg c3VtLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK LSAgICAgY291bnQoKikgQVMgY291bnQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgbWF4KGdzdGVzdDIuYykgQVMgbWF4ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICBGUk9N IGdzdGVzdDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgIEdST1VQIEJZIFJPTExVUCgoZ3N0ZXN0Mi5hLCBnc3Rlc3QyLmIs IGdzdGVzdDIuYyksIChnc3Rlc3QyLmMsIGdzdGVzdDIuZCkpOworICAgICAgICAgICAgcGdfZ2V0 X3ZpZXdkZWYgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgU0VMRUNUIGEsICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBiLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEdST1VQSU5HKGEsIGIpIEFTICJn cm91cGluZyIsICAgICsKKyAgICAgc3VtKGMpIEFTIHN1bSwgICAgICAgICAgICAgICAgICAgKwor ICAgICBjb3VudCgqKSBBUyBjb3VudCwgICAgICAgICAgICAgICArCisgICAgIG1heChjKSBBUyBt YXggICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIGdzdGVzdDIgICAgICAgICAgICAgICAg ICAgICAgKworICAgR1JPVVAgQlkgUk9MTFVQKChhLCBiLCBjKSwgKGMsIGQpKTsKICgxIHJvdykK IAogLS0gTmVzdGVkIHF1ZXJpZXMgd2l0aCAzIG9yIG1vcmUgbGV2ZWxzIG9mIG5lc3RpbmcKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbGltaXQub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9saW1pdC5vdXQKaW5kZXggOGE5OGJiZWE4ZS4uYTJjZDBmOWY1YiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9saW1pdC5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9saW1pdC5vdXQKQEAgLTYzOCwxMCArNjM4LDEwIEBAIENS RUFURSBWSUVXIGxpbWl0X3Rob3VzYW5kX3ZfMSBBUyBTRUxFQ1QgdGhvdXNhbmQgRlJPTSBvbmVr IFdIRVJFIHRob3VzYW5kIDwgOTk1CiAtLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogIHRob3VzYW5kIHwg aW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAKIFZp ZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1Qgb25lay50aG91c2FuZAorIFNFTEVDVCB0aG91c2FuZAog ICAgRlJPTSBvbmVrCi0gIFdIRVJFIG9uZWsudGhvdXNhbmQgPCA5OTUKLSAgT1JERVIgQlkgb25l ay50aG91c2FuZAorICBXSEVSRSB0aG91c2FuZCA8IDk5NQorICBPUkRFUiBCWSB0aG91c2FuZAog IE9GRlNFVCAxMAogIEZFVENIIEZJUlNUIDUgUk9XUyBXSVRIIFRJRVM7CiAKQEAgLTY1MywxMCAr NjUzLDEwIEBAIENSRUFURSBWSUVXIGxpbWl0X3Rob3VzYW5kX3ZfMiBBUyBTRUxFQ1QgdGhvdXNh bmQgRlJPTSBvbmVrIFdIRVJFIHRob3VzYW5kIDwgOTk1CiAtLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQog IHRob3VzYW5kIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBs YWluICAgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1Qgb25lay50aG91c2FuZAorIFNFTEVD VCB0aG91c2FuZAogICAgRlJPTSBvbmVrCi0gIFdIRVJFIG9uZWsudGhvdXNhbmQgPCA5OTUKLSAg T1JERVIgQlkgb25lay50aG91c2FuZAorICBXSEVSRSB0aG91c2FuZCA8IDk5NQorICBPUkRFUiBC WSB0aG91c2FuZAogIE9GRlNFVCAxMAogIExJTUlUIDU7CiAKQEAgLTY3MSwxMCArNjcxLDEwIEBA IENSRUFURSBWSUVXIGxpbWl0X3Rob3VzYW5kX3ZfMyBBUyBTRUxFQ1QgdGhvdXNhbmQgRlJPTSBv bmVrIFdIRVJFIHRob3VzYW5kIDwgOTk1CiAtLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogIHRob3VzYW5k IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAK IFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1Qgb25lay50aG91c2FuZAorIFNFTEVDVCB0aG91c2Fu ZAogICAgRlJPTSBvbmVrCi0gIFdIRVJFIG9uZWsudGhvdXNhbmQgPCA5OTUKLSAgT1JERVIgQlkg b25lay50aG91c2FuZAorICBXSEVSRSB0aG91c2FuZCA8IDk5NQorICBPUkRFUiBCWSB0aG91c2Fu ZAogIEZFVENIIEZJUlNUIChOVUxMOjppbnRlZ2VyICsgMSkgUk9XUyBXSVRIIFRJRVM7CiAKIENS RUFURSBWSUVXIGxpbWl0X3Rob3VzYW5kX3ZfNCBBUyBTRUxFQ1QgdGhvdXNhbmQgRlJPTSBvbmVr IFdIRVJFIHRob3VzYW5kIDwgOTk1CkBAIC02ODUsMTAgKzY4NSwxMCBAQCBDUkVBVEUgVklFVyBs aW1pdF90aG91c2FuZF92XzQgQVMgU0VMRUNUIHRob3VzYW5kIEZST00gb25layBXSEVSRSB0aG91 c2FuZCA8IDk5NQogLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KICB0aG91c2FuZCB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgCiBWaWV3IGRlZmluaXRp b246Ci0gU0VMRUNUIG9uZWsudGhvdXNhbmQKKyBTRUxFQ1QgdGhvdXNhbmQKICAgIEZST00gb25l awotICBXSEVSRSBvbmVrLnRob3VzYW5kIDwgOTk1Ci0gIE9SREVSIEJZIG9uZWsudGhvdXNhbmQK KyAgV0hFUkUgdGhvdXNhbmQgPCA5OTUKKyAgT1JERVIgQlkgdGhvdXNhbmQKICBMSU1JVCBBTEw7 CiAKIC0tIGxlYXZlIHRoZXNlIHZpZXdzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL21hdHZpZXcub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tYXR2aWV3Lm91 dAppbmRleCAzMTNjNzJhMjY4Li4wM2QyZGU3ZDNhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL21hdHZpZXcub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv bWF0dmlldy5vdXQKQEAgLTEwMCwxMCArMTAwLDEwIEBAIENSRUFURSBJTkRFWCBtdnRlc3RfYWEg T04gbXZ0ZXN0X2JiIChncmFuZHRvdCk7CiAgdHlwZSAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCiAgdG90YW10 IHwgbnVtZXJpYyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IG1haW4gICAgIHwg ICAgICAgICAgICAgIHwgCiBWaWV3IGRlZmluaXRpb246Ci0gU0VMRUNUIG12dGVzdF90di50eXBl LAotICAgIG12dGVzdF90di50b3RhbXQKKyBTRUxFQ1QgdHlwZSwKKyAgICB0b3RhbXQKICAgIEZS T00gbXZ0ZXN0X3R2Ci0gIE9SREVSIEJZIG12dGVzdF90di50eXBlOworICBPUkRFUiBCWSB0eXBl OwogCiBcZCsgbXZ0ZXN0X3R2bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0ZXJpYWxp emVkIHZpZXcgInB1YmxpYy5tdnRlc3RfdHZtIgpAQCAtMTEyLDEwICsxMTIsMTAgQEAgVmlldyBk ZWZpbml0aW9uOgogIHR5cGUgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAogIHRvdGFtdCB8IG51bWVyaWMgfCAg ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBtYWluICAgICB8ICAgICAgICAgICAgICB8 IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBtdnRlc3RfdHYudHlwZSwKLSAgICBtdnRlc3Rf dHYudG90YW10CisgU0VMRUNUIHR5cGUsCisgICAgdG90YW10CiAgICBGUk9NIG12dGVzdF90dgot ICBPUkRFUiBCWSBtdnRlc3RfdHYudHlwZTsKKyAgT1JERVIgQlkgdHlwZTsKIAogXGQrIG12dGVz dF90dnZtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRlcmlhbGl6ZWQgdmlldyAicHVi bGljLm12dGVzdF90dnZtIgpAQCAtMTIzLDcgKzEyMyw3IEBAIFZpZXcgZGVmaW5pdGlvbjoKIC0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiAgZ3JhbmR0b3QgfCBudW1lcmljIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgbWFpbiAgICB8ICAgICAgICAgICAgICB8 IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBtdnRlc3RfdHZ2LmdyYW5kdG90CisgU0VMRUNU IGdyYW5kdG90CiAgICBGUk9NIG12dGVzdF90dnY7CiAKIFxkKyBtdnRlc3RfYmIKQEAgLTEzNCw3 ICsxMzQsNyBAQCBWaWV3IGRlZmluaXRpb246CiBJbmRleGVzOgogICAgICJtdnRlc3RfYWEiIGJ0 cmVlIChncmFuZHRvdCkKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1QgbXZ0ZXN0X3R2dm12Lmdy YW5kdG90CisgU0VMRUNUIGdyYW5kdG90CiAgICBGUk9NIG12dGVzdF90dnZtdjsKIAogLS0gdGVz dCBzY2hlbWEgYmVoYXZpb3IKQEAgLTE1MCw3ICsxNTAsNyBAQCBJbmRleGVzOgogICAgICJtdnRl c3RfdHZtbV9leHByIiBVTklRVUUsIGJ0cmVlICgoZ3JhbmR0b3QgPiAwOjpudW1lcmljKSkKICAg ICAibXZ0ZXN0X3R2bW1fcHJlZCIgVU5JUVVFLCBidHJlZSAoZ3JhbmR0b3QpIFdIRVJFIGdyYW5k dG90IDwgMDo6bnVtZXJpYwogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBzdW0obXZ0ZXN0X3R2 bS50b3RhbXQpIEFTIGdyYW5kdG90CisgU0VMRUNUIHN1bSh0b3RhbXQpIEFTIGdyYW5kdG90CiAg ICBGUk9NIG12dGVzdF9tdnNjaGVtYS5tdnRlc3RfdHZtOwogCiBTRVQgc2VhcmNoX3BhdGggPSBt dnRlc3RfbXZzY2hlbWEsIHB1YmxpYzsKQEAgLTE2MSwxMCArMTYxLDEwIEBAIFNFVCBzZWFyY2hf cGF0aCA9IG12dGVzdF9tdnNjaGVtYSwgcHVibGljOwogIHR5cGUgICB8IHRleHQgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAog IHRvdGFtdCB8IG51bWVyaWMgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBtYWlu ICAgICB8ICAgICAgICAgICAgICB8IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBtdnRlc3Rf dHYudHlwZSwKLSAgICBtdnRlc3RfdHYudG90YW10CisgU0VMRUNUIHR5cGUsCisgICAgdG90YW10 CiAgICBGUk9NIG12dGVzdF90dgotICBPUkRFUiBCWSBtdnRlc3RfdHYudHlwZTsKKyAgT1JERVIg QlkgdHlwZTsKIAogLS0gbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIHRhYmxlIGRhdGEKIElOU0VSVCBJ TlRPIG12dGVzdF90IFZBTFVFUyAoNiwgJ3onLCAxMyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BvbHltb3JwaGlzbS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BvbHltb3JwaGlzbS5vdXQKaW5kZXggMWNkNTU4ZDY2OC4uYmYwOGU0MGVkOCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wb2x5bW9ycGhpc20ub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcG9seW1vcnBoaXNtLm91dApAQCAtMTgwMSwxMCArMTgw MSwxMCBAQCBzZWxlY3QgKiBmcm9tIGRmdmlldzsKICBjMyAgICAgfCBiaWdpbnQgfCAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgCiAgYzQgICAgIHwgYmlnaW50IHwg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8IAogVmlldyBkZWZpbml0 aW9uOgotIFNFTEVDVCBpbnQ4X3RibC5xMSwKLSAgICBpbnQ4X3RibC5xMiwKLSAgICBkZnVuYyhp bnQ4X3RibC5xMSwgaW50OF90YmwucTIsIGZsYWcgPT4gaW50OF90YmwucTEgPiBpbnQ4X3RibC5x MikgQVMgYzMsCi0gICAgZGZ1bmMoaW50OF90YmwucTEsIGZsYWcgPT4gaW50OF90YmwucTEgPCBp bnQ4X3RibC5xMiwgYiA9PiBpbnQ4X3RibC5xMikgQVMgYzQKKyBTRUxFQ1QgcTEsCisgICAgcTIs CisgICAgZGZ1bmMocTEsIHEyLCBmbGFnID0+IHExID4gcTIpIEFTIGMzLAorICAgIGRmdW5jKHEx LCBmbGFnID0+IHExIDwgcTIsIGIgPT4gcTIpIEFTIGM0CiAgICBGUk9NIGludDhfdGJsOwogCiBk cm9wIHZpZXcgZGZ2aWV3OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y YW5nZWZ1bmNzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2VmdW5jcy5vdXQK aW5kZXggMjMzNGExMzIxZS4uMmM0ZGEzNDY4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9yYW5nZWZ1bmNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3JhbmdlZnVuY3Mub3V0CkBAIC0xNDksOSArMTQ5LDkgQEAgc2VsZWN0ICogZnJvbSB2d19vcmQ7 CiBzZWxlY3QgZGVmaW5pdGlvbiBmcm9tIHBnX3ZpZXdzIHdoZXJlIHZpZXduYW1lPSd2d19vcmQn OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5pdGlvbiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotICBTRUxFQ1Qgei5hLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICB6LmIsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICB6LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICBT RUxFQ1QgYSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBiLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICBjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgIEZST00gVU5ORVNUKEFS UkFZWzEwLCAyMF0sIEFSUkFZWydmb28nOjp0ZXh0LCAnYmFyJzo6dGV4dF0sIEFSUkFZWzEuMF0p IHooYSwgYiwgYyk7CiAoMSByb3cpCiAKQEAgLTE2Nyw5ICsxNjcsOSBAQCBzZWxlY3QgKiBmcm9t IHZ3X29yZDsKIHNlbGVjdCBkZWZpbml0aW9uIGZyb20gcGdfdmlld3Mgd2hlcmUgdmlld25hbWU9 J3Z3X29yZCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbml0 aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCB6LmEsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAg IHouYiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHouYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgIFNFTEVDVCBhLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgIGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgRlJPTSBV Tk5FU1QoQVJSQVlbMTAsIDIwXSwgQVJSQVlbJ2Zvbyc6OnRleHQsICdiYXInOjp0ZXh0XSwgQVJS QVlbMS4wXSkgeihhLCBiLCBjKTsKICgxIHJvdykKIApAQCAtMTg1LDkgKzE4NSw5IEBAIHNlbGVj dCAqIGZyb20gdndfb3JkOwogc2VsZWN0IGRlZmluaXRpb24gZnJvbSBwZ192aWV3cyB3aGVyZSB2 aWV3bmFtZT0ndndfb3JkJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRlZmluaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNUIHouYSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgei5iLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgei5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgU0VMRUNU IGEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgYiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKICAgICBGUk9NIFJPV1MgRlJPTSh1bm5lc3QoQVJSQVlbMTAsIDIwXSksIHVubmVz dChBUlJBWVsnZm9vJzo6dGV4dCwgJ2Jhcic6OnRleHRdKSwgZ2VuZXJhdGVfc2VyaWVzKDEsIDIp KSB6KGEsIGIsIGMpOwogKDEgcm93KQogCkBAIC02NjksMTQgKzY2OSwxNCBAQCBzZWxlY3QgKiBm cm9tIHZ3X3JuZ2Z1bmM7CiBzZWxlY3QgcGdfZ2V0X3ZpZXdkZWYoJ3Z3X3JuZ2Z1bmMnKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gIFNFTEVDVCB0MS5hLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKLSAgICAgdDEuYiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwotICAgICB0MS5jLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCi0gICAgIHQxLmQsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgdDEuZSwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICB0MS5mLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHQxLmcsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgdDEubiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICBTRUxFQ1Qg YSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg IGIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgYywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKworICAgICBkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgIGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgZiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKworICAgICBnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIG4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICBGUk9NIFJPV1MgRlJPTShnZXRybmdm dW5jOSgxKSwgZ2V0cm5nZnVuYzcoMSkgQVMgKHJuZ2Z1bmNpZCBpbnRlZ2VyLCBybmdmdW5jc3Vi aWQgaW50ZWdlciwgcm5nZnVuY25hbWUgdGV4dCksIGdldHJuZ2Z1bmMxKDEpKSBXSVRIIE9SRElO QUxJVFkgdDEoYSwgYiwgYywgZCwgZSwgZiwgZywgbik7CiAoMSByb3cpCiAKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNmNiNjM4ODg4MC4uZjhjYjdkNmY5NCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTEzMDIsNTAgKzEzMDIsNTAgQEAgcGdfYXZhaWxh YmxlX2V4dGVuc2lvbnN8IFNFTEVDVCBlLm5hbWUsCiAgICAgZS5jb21tZW50CiAgICBGUk9NIChw Z19hdmFpbGFibGVfZXh0ZW5zaW9ucygpIGUobmFtZSwgZGVmYXVsdF92ZXJzaW9uLCBjb21tZW50 KQogICAgICBMRUZUIEpPSU4gcGdfZXh0ZW5zaW9uIHggT04gKChlLm5hbWUgPSB4LmV4dG5hbWUp KSk7Ci1wZ19iYWNrZW5kX21lbW9yeV9jb250ZXh0c3wgU0VMRUNUIHBnX2dldF9iYWNrZW5kX21l bW9yeV9jb250ZXh0cy5uYW1lLAotICAgIHBnX2dldF9iYWNrZW5kX21lbW9yeV9jb250ZXh0cy5p ZGVudCwKLSAgICBwZ19nZXRfYmFja2VuZF9tZW1vcnlfY29udGV4dHMucGFyZW50LAotICAgIHBn X2dldF9iYWNrZW5kX21lbW9yeV9jb250ZXh0cy5sZXZlbCwKLSAgICBwZ19nZXRfYmFja2VuZF9t ZW1vcnlfY29udGV4dHMudG90YWxfYnl0ZXMsCi0gICAgcGdfZ2V0X2JhY2tlbmRfbWVtb3J5X2Nv bnRleHRzLnRvdGFsX25ibG9ja3MsCi0gICAgcGdfZ2V0X2JhY2tlbmRfbWVtb3J5X2NvbnRleHRz LmZyZWVfYnl0ZXMsCi0gICAgcGdfZ2V0X2JhY2tlbmRfbWVtb3J5X2NvbnRleHRzLmZyZWVfY2h1 bmtzLAotICAgIHBnX2dldF9iYWNrZW5kX21lbW9yeV9jb250ZXh0cy51c2VkX2J5dGVzCitwZ19i YWNrZW5kX21lbW9yeV9jb250ZXh0c3wgU0VMRUNUIG5hbWUsCisgICAgaWRlbnQsCisgICAgcGFy ZW50LAorICAgIGxldmVsLAorICAgIHRvdGFsX2J5dGVzLAorICAgIHRvdGFsX25ibG9ja3MsCisg ICAgZnJlZV9ieXRlcywKKyAgICBmcmVlX2NodW5rcywKKyAgICB1c2VkX2J5dGVzCiAgICBGUk9N IHBnX2dldF9iYWNrZW5kX21lbW9yeV9jb250ZXh0cygpIHBnX2dldF9iYWNrZW5kX21lbW9yeV9j b250ZXh0cyhuYW1lLCBpZGVudCwgcGFyZW50LCBsZXZlbCwgdG90YWxfYnl0ZXMsIHRvdGFsX25i bG9ja3MsIGZyZWVfYnl0ZXMsIGZyZWVfY2h1bmtzLCB1c2VkX2J5dGVzKTsKLXBnX2NvbmZpZ3wg U0VMRUNUIHBnX2NvbmZpZy5uYW1lLAotICAgIHBnX2NvbmZpZy5zZXR0aW5nCitwZ19jb25maWd8 IFNFTEVDVCBuYW1lLAorICAgIHNldHRpbmcKICAgIEZST00gcGdfY29uZmlnKCkgcGdfY29uZmln KG5hbWUsIHNldHRpbmcpOwotcGdfY3Vyc29yc3wgU0VMRUNUIGMubmFtZSwKLSAgICBjLnN0YXRl bWVudCwKLSAgICBjLmlzX2hvbGRhYmxlLAotICAgIGMuaXNfYmluYXJ5LAotICAgIGMuaXNfc2Ny b2xsYWJsZSwKLSAgICBjLmNyZWF0aW9uX3RpbWUKK3BnX2N1cnNvcnN8IFNFTEVDVCBuYW1lLAor ICAgIHN0YXRlbWVudCwKKyAgICBpc19ob2xkYWJsZSwKKyAgICBpc19iaW5hcnksCisgICAgaXNf c2Nyb2xsYWJsZSwKKyAgICBjcmVhdGlvbl90aW1lCiAgICBGUk9NIHBnX2N1cnNvcigpIGMobmFt ZSwgc3RhdGVtZW50LCBpc19ob2xkYWJsZSwgaXNfYmluYXJ5LCBpc19zY3JvbGxhYmxlLCBjcmVh dGlvbl90aW1lKTsKLXBnX2ZpbGVfc2V0dGluZ3N8IFNFTEVDVCBhLnNvdXJjZWZpbGUsCi0gICAg YS5zb3VyY2VsaW5lLAotICAgIGEuc2Vxbm8sCi0gICAgYS5uYW1lLAotICAgIGEuc2V0dGluZywK LSAgICBhLmFwcGxpZWQsCi0gICAgYS5lcnJvcgorcGdfZmlsZV9zZXR0aW5nc3wgU0VMRUNUIHNv dXJjZWZpbGUsCisgICAgc291cmNlbGluZSwKKyAgICBzZXFubywKKyAgICBuYW1lLAorICAgIHNl dHRpbmcsCisgICAgYXBwbGllZCwKKyAgICBlcnJvcgogICAgRlJPTSBwZ19zaG93X2FsbF9maWxl X3NldHRpbmdzKCkgYShzb3VyY2VmaWxlLCBzb3VyY2VsaW5lLCBzZXFubywgbmFtZSwgc2V0dGlu ZywgYXBwbGllZCwgZXJyb3IpOwotcGdfZ3JvdXB8IFNFTEVDVCBwZ19hdXRoaWQucm9sbmFtZSBB UyBncm9uYW1lLAotICAgIHBnX2F1dGhpZC5vaWQgQVMgZ3Jvc3lzaWQsCitwZ19ncm91cHwgU0VM RUNUIHJvbG5hbWUgQVMgZ3JvbmFtZSwKKyAgICBvaWQgQVMgZ3Jvc3lzaWQsCiAgICAgQVJSQVko IFNFTEVDVCBwZ19hdXRoX21lbWJlcnMubWVtYmVyCiAgICAgICAgICAgIEZST00gcGdfYXV0aF9t ZW1iZXJzCiAgICAgICAgICAgV0hFUkUgKHBnX2F1dGhfbWVtYmVycy5yb2xlaWQgPSBwZ19hdXRo aWQub2lkKSkgQVMgZ3JvbGlzdAogICAgRlJPTSBwZ19hdXRoaWQKLSAgV0hFUkUgKE5PVCBwZ19h dXRoaWQucm9sY2FubG9naW4pOwotcGdfaGJhX2ZpbGVfcnVsZXN8IFNFTEVDVCBhLmxpbmVfbnVt YmVyLAotICAgIGEudHlwZSwKLSAgICBhLmRhdGFiYXNlLAotICAgIGEudXNlcl9uYW1lLAotICAg IGEuYWRkcmVzcywKLSAgICBhLm5ldG1hc2ssCi0gICAgYS5hdXRoX21ldGhvZCwKLSAgICBhLm9w dGlvbnMsCi0gICAgYS5lcnJvcgorICBXSEVSRSAoTk9UIHJvbGNhbmxvZ2luKTsKK3BnX2hiYV9m aWxlX3J1bGVzfCBTRUxFQ1QgbGluZV9udW1iZXIsCisgICAgdHlwZSwKKyAgICBkYXRhYmFzZSwK KyAgICB1c2VyX25hbWUsCisgICAgYWRkcmVzcywKKyAgICBuZXRtYXNrLAorICAgIGF1dGhfbWV0 aG9kLAorICAgIG9wdGlvbnMsCisgICAgZXJyb3IKICAgIEZST00gcGdfaGJhX2ZpbGVfcnVsZXMo KSBhKGxpbmVfbnVtYmVyLCB0eXBlLCBkYXRhYmFzZSwgdXNlcl9uYW1lLCBhZGRyZXNzLCBuZXRt YXNrLCBhdXRoX21ldGhvZCwgb3B0aW9ucywgZXJyb3IpOwogcGdfaW5kZXhlc3wgU0VMRUNUIG4u bnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMucmVsbmFtZSBBUyB0YWJsZW5hbWUsCkBAIC0x MzU4LDIyICsxMzU4LDIyIEBAIHBnX2luZGV4ZXN8IFNFTEVDVCBuLm5zcG5hbWUgQVMgc2NoZW1h bmFtZSwKICAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5h bWVzcGFjZSkpKQogICAgICBMRUZUIEpPSU4gcGdfdGFibGVzcGFjZSB0IE9OICgodC5vaWQgPSBp LnJlbHRhYmxlc3BhY2UpKSkKICAgV0hFUkUgKChjLnJlbGtpbmQgPSBBTlkgKEFSUkFZWydyJzo6 ImNoYXIiLCAnbSc6OiJjaGFyIiwgJ3AnOjoiY2hhciJdKSkgQU5EIChpLnJlbGtpbmQgPSBBTlkg KEFSUkFZWydpJzo6ImNoYXIiLCAnSSc6OiJjaGFyIl0pKSk7Ci1wZ19sb2Nrc3wgU0VMRUNUIGwu bG9ja3R5cGUsCi0gICAgbC5kYXRhYmFzZSwKLSAgICBsLnJlbGF0aW9uLAotICAgIGwucGFnZSwK LSAgICBsLnR1cGxlLAotICAgIGwudmlydHVhbHhpZCwKLSAgICBsLnRyYW5zYWN0aW9uaWQsCi0g ICAgbC5jbGFzc2lkLAotICAgIGwub2JqaWQsCi0gICAgbC5vYmpzdWJpZCwKLSAgICBsLnZpcnR1 YWx0cmFuc2FjdGlvbiwKLSAgICBsLnBpZCwKLSAgICBsLm1vZGUsCi0gICAgbC5ncmFudGVkLAot ICAgIGwuZmFzdHBhdGgsCi0gICAgbC53YWl0c3RhcnQKK3BnX2xvY2tzfCBTRUxFQ1QgbG9ja3R5 cGUsCisgICAgZGF0YWJhc2UsCisgICAgcmVsYXRpb24sCisgICAgcGFnZSwKKyAgICB0dXBsZSwK KyAgICB2aXJ0dWFseGlkLAorICAgIHRyYW5zYWN0aW9uaWQsCisgICAgY2xhc3NpZCwKKyAgICBv YmppZCwKKyAgICBvYmpzdWJpZCwKKyAgICB2aXJ0dWFsdHJhbnNhY3Rpb24sCisgICAgcGlkLAor ICAgIG1vZGUsCisgICAgZ3JhbnRlZCwKKyAgICBmYXN0cGF0aCwKKyAgICB3YWl0c3RhcnQKICAg IEZST00gcGdfbG9ja19zdGF0dXMoKSBsKGxvY2t0eXBlLCBkYXRhYmFzZSwgcmVsYXRpb24sIHBh Z2UsIHR1cGxlLCB2aXJ0dWFseGlkLCB0cmFuc2FjdGlvbmlkLCBjbGFzc2lkLCBvYmppZCwgb2Jq c3ViaWQsIHZpcnR1YWx0cmFuc2FjdGlvbiwgcGlkLCBtb2RlLCBncmFudGVkLCBmYXN0cGF0aCwg d2FpdHN0YXJ0KTsKIHBnX21hdHZpZXdzfCBTRUxFQ1Qgbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUs CiAgICAgYy5yZWxuYW1lIEFTIG1hdHZpZXduYW1lLApAQCAtMTQxMywxMyArMTQxMywxMyBAQCBw Z19wb2xpY2llc3wgU0VMRUNUIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgRlJPTSAoKHBn X3BvbGljeSBwb2wKICAgICAgSk9JTiBwZ19jbGFzcyBjIE9OICgoYy5vaWQgPSBwb2wucG9scmVs aWQpKSkKICAgICAgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5h bWVzcGFjZSkpKTsKLXBnX3ByZXBhcmVkX3N0YXRlbWVudHN8IFNFTEVDVCBwLm5hbWUsCi0gICAg cC5zdGF0ZW1lbnQsCi0gICAgcC5wcmVwYXJlX3RpbWUsCi0gICAgcC5wYXJhbWV0ZXJfdHlwZXMs Ci0gICAgcC5mcm9tX3NxbCwKLSAgICBwLmdlbmVyaWNfcGxhbnMsCi0gICAgcC5jdXN0b21fcGxh bnMKK3BnX3ByZXBhcmVkX3N0YXRlbWVudHN8IFNFTEVDVCBuYW1lLAorICAgIHN0YXRlbWVudCwK KyAgICBwcmVwYXJlX3RpbWUsCisgICAgcGFyYW1ldGVyX3R5cGVzLAorICAgIGZyb21fc3FsLAor ICAgIGdlbmVyaWNfcGxhbnMsCisgICAgY3VzdG9tX3BsYW5zCiAgICBGUk9NIHBnX3ByZXBhcmVk X3N0YXRlbWVudCgpIHAobmFtZSwgc3RhdGVtZW50LCBwcmVwYXJlX3RpbWUsIHBhcmFtZXRlcl90 eXBlcywgZnJvbV9zcWwsIGdlbmVyaWNfcGxhbnMsIGN1c3RvbV9wbGFucyk7CiBwZ19wcmVwYXJl ZF94YWN0c3wgU0VMRUNUIHAudHJhbnNhY3Rpb24sCiAgICAgcC5naWQsCkBAIC0xNDM3LDEwICsx NDM3LDEwIEBAIHBnX3B1YmxpY2F0aW9uX3RhYmxlc3wgU0VMRUNUIHAucHVibmFtZSwKICAgICAo cGdfY2xhc3MgYwogICAgICBKT0lOIHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5h bWVzcGFjZSkpKQogICBXSEVSRSAoYy5vaWQgPSBncHQucmVsaWQpOwotcGdfcmVwbGljYXRpb25f b3JpZ2luX3N0YXR1c3wgU0VMRUNUIHBnX3Nob3dfcmVwbGljYXRpb25fb3JpZ2luX3N0YXR1cy5s b2NhbF9pZCwKLSAgICBwZ19zaG93X3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXMuZXh0ZXJuYWxf aWQsCi0gICAgcGdfc2hvd19yZXBsaWNhdGlvbl9vcmlnaW5fc3RhdHVzLnJlbW90ZV9sc24sCi0g ICAgcGdfc2hvd19yZXBsaWNhdGlvbl9vcmlnaW5fc3RhdHVzLmxvY2FsX2xzbgorcGdfcmVwbGlj YXRpb25fb3JpZ2luX3N0YXR1c3wgU0VMRUNUIGxvY2FsX2lkLAorICAgIGV4dGVybmFsX2lkLAor ICAgIHJlbW90ZV9sc24sCisgICAgbG9jYWxfbHNuCiAgICBGUk9NIHBnX3Nob3dfcmVwbGljYXRp b25fb3JpZ2luX3N0YXR1cygpIHBnX3Nob3dfcmVwbGljYXRpb25fb3JpZ2luX3N0YXR1cyhsb2Nh bF9pZCwgZXh0ZXJuYWxfaWQsIHJlbW90ZV9sc24sIGxvY2FsX2xzbik7CiBwZ19yZXBsaWNhdGlv bl9zbG90c3wgU0VMRUNUIGwuc2xvdF9uYW1lLAogICAgIGwucGx1Z2luLApAQCAtMTY4NiwyMyAr MTY4NiwyMyBAQCBwZ19zZXF1ZW5jZXN8IFNFTEVDVCBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwK ICAgICAgSk9JTiBwZ19jbGFzcyBjIE9OICgoYy5vaWQgPSBzLnNlcXJlbGlkKSkpCiAgICAgIExF RlQgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiAoKG4ub2lkID0gYy5yZWxuYW1lc3BhY2UpKSkKICAg V0hFUkUgKChOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobi5vaWQpKSBBTkQgKGMucmVsa2lu ZCA9ICdTJzo6ImNoYXIiKSk7Ci1wZ19zZXR0aW5nc3wgU0VMRUNUIGEubmFtZSwKLSAgICBhLnNl dHRpbmcsCi0gICAgYS51bml0LAotICAgIGEuY2F0ZWdvcnksCi0gICAgYS5zaG9ydF9kZXNjLAot ICAgIGEuZXh0cmFfZGVzYywKLSAgICBhLmNvbnRleHQsCi0gICAgYS52YXJ0eXBlLAotICAgIGEu c291cmNlLAotICAgIGEubWluX3ZhbCwKLSAgICBhLm1heF92YWwsCi0gICAgYS5lbnVtdmFscywK LSAgICBhLmJvb3RfdmFsLAotICAgIGEucmVzZXRfdmFsLAotICAgIGEuc291cmNlZmlsZSwKLSAg ICBhLnNvdXJjZWxpbmUsCi0gICAgYS5wZW5kaW5nX3Jlc3RhcnQKK3BnX3NldHRpbmdzfCBTRUxF Q1QgbmFtZSwKKyAgICBzZXR0aW5nLAorICAgIHVuaXQsCisgICAgY2F0ZWdvcnksCisgICAgc2hv cnRfZGVzYywKKyAgICBleHRyYV9kZXNjLAorICAgIGNvbnRleHQsCisgICAgdmFydHlwZSwKKyAg ICBzb3VyY2UsCisgICAgbWluX3ZhbCwKKyAgICBtYXhfdmFsLAorICAgIGVudW12YWxzLAorICAg IGJvb3RfdmFsLAorICAgIHJlc2V0X3ZhbCwKKyAgICBzb3VyY2VmaWxlLAorICAgIHNvdXJjZWxp bmUsCisgICAgcGVuZGluZ19yZXN0YXJ0CiAgICBGUk9NIHBnX3Nob3dfYWxsX3NldHRpbmdzKCkg YShuYW1lLCBzZXR0aW5nLCB1bml0LCBjYXRlZ29yeSwgc2hvcnRfZGVzYywgZXh0cmFfZGVzYywg Y29udGV4dCwgdmFydHlwZSwgc291cmNlLCBtaW5fdmFsLCBtYXhfdmFsLCBlbnVtdmFscywgYm9v dF92YWwsIHJlc2V0X3ZhbCwgc291cmNlZmlsZSwgc291cmNlbGluZSwgcGVuZGluZ19yZXN0YXJ0 KTsKIHBnX3NoYWRvd3wgU0VMRUNUIHBnX2F1dGhpZC5yb2xuYW1lIEFTIHVzZW5hbWUsCiAgICAg cGdfYXV0aGlkLm9pZCBBUyB1c2VzeXNpZCwKQEAgLTE3MTYsMTAgKzE3MTYsMTAgQEAgcGdfc2hh ZG93fCBTRUxFQ1QgcGdfYXV0aGlkLnJvbG5hbWUgQVMgdXNlbmFtZSwKICAgIEZST00gKHBnX2F1 dGhpZAogICAgICBMRUZUIEpPSU4gcGdfZGJfcm9sZV9zZXR0aW5nIHMgT04gKCgocGdfYXV0aGlk Lm9pZCA9IHMuc2V0cm9sZSkgQU5EIChzLnNldGRhdGFiYXNlID0gKDApOjpvaWQpKSkpCiAgIFdI RVJFIHBnX2F1dGhpZC5yb2xjYW5sb2dpbjsKLXBnX3NobWVtX2FsbG9jYXRpb25zfCBTRUxFQ1Qg cGdfZ2V0X3NobWVtX2FsbG9jYXRpb25zLm5hbWUsCi0gICAgcGdfZ2V0X3NobWVtX2FsbG9jYXRp b25zLm9mZiwKLSAgICBwZ19nZXRfc2htZW1fYWxsb2NhdGlvbnMuc2l6ZSwKLSAgICBwZ19nZXRf c2htZW1fYWxsb2NhdGlvbnMuYWxsb2NhdGVkX3NpemUKK3BnX3NobWVtX2FsbG9jYXRpb25zfCBT RUxFQ1QgbmFtZSwKKyAgICBvZmYsCisgICAgc2l6ZSwKKyAgICBhbGxvY2F0ZWRfc2l6ZQogICAg RlJPTSBwZ19nZXRfc2htZW1fYWxsb2NhdGlvbnMoKSBwZ19nZXRfc2htZW1fYWxsb2NhdGlvbnMo bmFtZSwgb2ZmLCBzaXplLCBhbGxvY2F0ZWRfc2l6ZSk7CiBwZ19zdGF0X2FjdGl2aXR5fCBTRUxF Q1Qgcy5kYXRpZCwKICAgICBkLmRhdG5hbWUsCkBAIC0xNzg3LDEzICsxNzg3LDEzIEBAIHBnX3N0 YXRfYWxsX3RhYmxlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLAogICAgICBMRUZUIEpPSU4gcGdf bmFtZXNwYWNlIG4gT04gKChuLm9pZCA9IGMucmVsbmFtZXNwYWNlKSkpCiAgIFdIRVJFIChjLnJl bGtpbmQgPSBBTlkgKEFSUkFZWydyJzo6ImNoYXIiLCAndCc6OiJjaGFyIiwgJ20nOjoiY2hhciIs ICdwJzo6ImNoYXIiXSkpCiAgIEdST1VQIEJZIGMub2lkLCBuLm5zcG5hbWUsIGMucmVsbmFtZTsK LXBnX3N0YXRfYXJjaGl2ZXJ8IFNFTEVDVCBzLmFyY2hpdmVkX2NvdW50LAotICAgIHMubGFzdF9h cmNoaXZlZF93YWwsCi0gICAgcy5sYXN0X2FyY2hpdmVkX3RpbWUsCi0gICAgcy5mYWlsZWRfY291 bnQsCi0gICAgcy5sYXN0X2ZhaWxlZF93YWwsCi0gICAgcy5sYXN0X2ZhaWxlZF90aW1lLAotICAg IHMuc3RhdHNfcmVzZXQKK3BnX3N0YXRfYXJjaGl2ZXJ8IFNFTEVDVCBhcmNoaXZlZF9jb3VudCwK KyAgICBsYXN0X2FyY2hpdmVkX3dhbCwKKyAgICBsYXN0X2FyY2hpdmVkX3RpbWUsCisgICAgZmFp bGVkX2NvdW50LAorICAgIGxhc3RfZmFpbGVkX3dhbCwKKyAgICBsYXN0X2ZhaWxlZF90aW1lLAor ICAgIHN0YXRzX3Jlc2V0CiAgICBGUk9NIHBnX3N0YXRfZ2V0X2FyY2hpdmVyKCkgcyhhcmNoaXZl ZF9jb3VudCwgbGFzdF9hcmNoaXZlZF93YWwsIGxhc3RfYXJjaGl2ZWRfdGltZSwgZmFpbGVkX2Nv dW50LCBsYXN0X2ZhaWxlZF93YWwsIGxhc3RfZmFpbGVkX3RpbWUsIHN0YXRzX3Jlc2V0KTsKIHBn X3N0YXRfYmd3cml0ZXJ8IFNFTEVDVCBwZ19zdGF0X2dldF9iZ3dyaXRlcl90aW1lZF9jaGVja3Bv aW50cygpIEFTIGNoZWNrcG9pbnRzX3RpbWVkLAogICAgIHBnX3N0YXRfZ2V0X2Jnd3JpdGVyX3Jl cXVlc3RlZF9jaGVja3BvaW50cygpIEFTIGNoZWNrcG9pbnRzX3JlcSwKQEAgLTE4MDYsNTcgKzE4 MDYsNTcgQEAgcGdfc3RhdF9iZ3dyaXRlcnwgU0VMRUNUIHBnX3N0YXRfZ2V0X2Jnd3JpdGVyX3Rp bWVkX2NoZWNrcG9pbnRzKCkgQVMgY2hlY2twb2ludHMKICAgICBwZ19zdGF0X2dldF9idWZfZnN5 bmNfYmFja2VuZCgpIEFTIGJ1ZmZlcnNfYmFja2VuZF9mc3luYywKICAgICBwZ19zdGF0X2dldF9i dWZfYWxsb2MoKSBBUyBidWZmZXJzX2FsbG9jLAogICAgIHBnX3N0YXRfZ2V0X2Jnd3JpdGVyX3N0 YXRfcmVzZXRfdGltZSgpIEFTIHN0YXRzX3Jlc2V0OwotcGdfc3RhdF9kYXRhYmFzZXwgU0VMRUNU IGQub2lkIEFTIGRhdGlkLAotICAgIGQuZGF0bmFtZSwKK3BnX3N0YXRfZGF0YWJhc2V8IFNFTEVD VCBvaWQgQVMgZGF0aWQsCisgICAgZGF0bmFtZSwKICAgICAgICAgQ0FTRQotICAgICAgICAgICAg V0hFTiAoZC5vaWQgPSAoMCk6Om9pZCkgVEhFTiAwCi0gICAgICAgICAgICBFTFNFIHBnX3N0YXRf Z2V0X2RiX251bWJhY2tlbmRzKGQub2lkKQorICAgICAgICAgICAgV0hFTiAob2lkID0gKDApOjpv aWQpIFRIRU4gMAorICAgICAgICAgICAgRUxTRSBwZ19zdGF0X2dldF9kYl9udW1iYWNrZW5kcyhv aWQpCiAgICAgICAgIEVORCBBUyBudW1iYWNrZW5kcywKLSAgICBwZ19zdGF0X2dldF9kYl94YWN0 X2NvbW1pdChkLm9pZCkgQVMgeGFjdF9jb21taXQsCi0gICAgcGdfc3RhdF9nZXRfZGJfeGFjdF9y b2xsYmFjayhkLm9pZCkgQVMgeGFjdF9yb2xsYmFjaywKLSAgICAocGdfc3RhdF9nZXRfZGJfYmxv Y2tzX2ZldGNoZWQoZC5vaWQpIC0gcGdfc3RhdF9nZXRfZGJfYmxvY2tzX2hpdChkLm9pZCkpIEFT IGJsa3NfcmVhZCwKLSAgICBwZ19zdGF0X2dldF9kYl9ibG9ja3NfaGl0KGQub2lkKSBBUyBibGtz X2hpdCwKLSAgICBwZ19zdGF0X2dldF9kYl90dXBsZXNfcmV0dXJuZWQoZC5vaWQpIEFTIHR1cF9y ZXR1cm5lZCwKLSAgICBwZ19zdGF0X2dldF9kYl90dXBsZXNfZmV0Y2hlZChkLm9pZCkgQVMgdHVw X2ZldGNoZWQsCi0gICAgcGdfc3RhdF9nZXRfZGJfdHVwbGVzX2luc2VydGVkKGQub2lkKSBBUyB0 dXBfaW5zZXJ0ZWQsCi0gICAgcGdfc3RhdF9nZXRfZGJfdHVwbGVzX3VwZGF0ZWQoZC5vaWQpIEFT IHR1cF91cGRhdGVkLAotICAgIHBnX3N0YXRfZ2V0X2RiX3R1cGxlc19kZWxldGVkKGQub2lkKSBB UyB0dXBfZGVsZXRlZCwKLSAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9hbGwoZC5vaWQpIEFT IGNvbmZsaWN0cywKLSAgICBwZ19zdGF0X2dldF9kYl90ZW1wX2ZpbGVzKGQub2lkKSBBUyB0ZW1w X2ZpbGVzLAotICAgIHBnX3N0YXRfZ2V0X2RiX3RlbXBfYnl0ZXMoZC5vaWQpIEFTIHRlbXBfYnl0 ZXMsCi0gICAgcGdfc3RhdF9nZXRfZGJfZGVhZGxvY2tzKGQub2lkKSBBUyBkZWFkbG9ja3MsCi0g ICAgcGdfc3RhdF9nZXRfZGJfY2hlY2tzdW1fZmFpbHVyZXMoZC5vaWQpIEFTIGNoZWNrc3VtX2Zh aWx1cmVzLAotICAgIHBnX3N0YXRfZ2V0X2RiX2NoZWNrc3VtX2xhc3RfZmFpbHVyZShkLm9pZCkg QVMgY2hlY2tzdW1fbGFzdF9mYWlsdXJlLAotICAgIHBnX3N0YXRfZ2V0X2RiX2Jsa19yZWFkX3Rp bWUoZC5vaWQpIEFTIGJsa19yZWFkX3RpbWUsCi0gICAgcGdfc3RhdF9nZXRfZGJfYmxrX3dyaXRl X3RpbWUoZC5vaWQpIEFTIGJsa193cml0ZV90aW1lLAotICAgIHBnX3N0YXRfZ2V0X2RiX3Nlc3Np b25fdGltZShkLm9pZCkgQVMgc2Vzc2lvbl90aW1lLAotICAgIHBnX3N0YXRfZ2V0X2RiX2FjdGl2 ZV90aW1lKGQub2lkKSBBUyBhY3RpdmVfdGltZSwKLSAgICBwZ19zdGF0X2dldF9kYl9pZGxlX2lu X3RyYW5zYWN0aW9uX3RpbWUoZC5vaWQpIEFTIGlkbGVfaW5fdHJhbnNhY3Rpb25fdGltZSwKLSAg ICBwZ19zdGF0X2dldF9kYl9zZXNzaW9ucyhkLm9pZCkgQVMgc2Vzc2lvbnMsCi0gICAgcGdfc3Rh dF9nZXRfZGJfc2Vzc2lvbnNfYWJhbmRvbmVkKGQub2lkKSBBUyBzZXNzaW9uc19hYmFuZG9uZWQs Ci0gICAgcGdfc3RhdF9nZXRfZGJfc2Vzc2lvbnNfZmF0YWwoZC5vaWQpIEFTIHNlc3Npb25zX2Zh dGFsLAotICAgIHBnX3N0YXRfZ2V0X2RiX3Nlc3Npb25zX2tpbGxlZChkLm9pZCkgQVMgc2Vzc2lv bnNfa2lsbGVkLAotICAgIHBnX3N0YXRfZ2V0X2RiX3N0YXRfcmVzZXRfdGltZShkLm9pZCkgQVMg c3RhdHNfcmVzZXQKKyAgICBwZ19zdGF0X2dldF9kYl94YWN0X2NvbW1pdChvaWQpIEFTIHhhY3Rf Y29tbWl0LAorICAgIHBnX3N0YXRfZ2V0X2RiX3hhY3Rfcm9sbGJhY2sob2lkKSBBUyB4YWN0X3Jv bGxiYWNrLAorICAgIChwZ19zdGF0X2dldF9kYl9ibG9ja3NfZmV0Y2hlZChvaWQpIC0gcGdfc3Rh dF9nZXRfZGJfYmxvY2tzX2hpdChvaWQpKSBBUyBibGtzX3JlYWQsCisgICAgcGdfc3RhdF9nZXRf ZGJfYmxvY2tzX2hpdChvaWQpIEFTIGJsa3NfaGl0LAorICAgIHBnX3N0YXRfZ2V0X2RiX3R1cGxl c19yZXR1cm5lZChvaWQpIEFTIHR1cF9yZXR1cm5lZCwKKyAgICBwZ19zdGF0X2dldF9kYl90dXBs ZXNfZmV0Y2hlZChvaWQpIEFTIHR1cF9mZXRjaGVkLAorICAgIHBnX3N0YXRfZ2V0X2RiX3R1cGxl c19pbnNlcnRlZChvaWQpIEFTIHR1cF9pbnNlcnRlZCwKKyAgICBwZ19zdGF0X2dldF9kYl90dXBs ZXNfdXBkYXRlZChvaWQpIEFTIHR1cF91cGRhdGVkLAorICAgIHBnX3N0YXRfZ2V0X2RiX3R1cGxl c19kZWxldGVkKG9pZCkgQVMgdHVwX2RlbGV0ZWQsCisgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxp Y3RfYWxsKG9pZCkgQVMgY29uZmxpY3RzLAorICAgIHBnX3N0YXRfZ2V0X2RiX3RlbXBfZmlsZXMo b2lkKSBBUyB0ZW1wX2ZpbGVzLAorICAgIHBnX3N0YXRfZ2V0X2RiX3RlbXBfYnl0ZXMob2lkKSBB UyB0ZW1wX2J5dGVzLAorICAgIHBnX3N0YXRfZ2V0X2RiX2RlYWRsb2NrcyhvaWQpIEFTIGRlYWRs b2NrcywKKyAgICBwZ19zdGF0X2dldF9kYl9jaGVja3N1bV9mYWlsdXJlcyhvaWQpIEFTIGNoZWNr c3VtX2ZhaWx1cmVzLAorICAgIHBnX3N0YXRfZ2V0X2RiX2NoZWNrc3VtX2xhc3RfZmFpbHVyZShv aWQpIEFTIGNoZWNrc3VtX2xhc3RfZmFpbHVyZSwKKyAgICBwZ19zdGF0X2dldF9kYl9ibGtfcmVh ZF90aW1lKG9pZCkgQVMgYmxrX3JlYWRfdGltZSwKKyAgICBwZ19zdGF0X2dldF9kYl9ibGtfd3Jp dGVfdGltZShvaWQpIEFTIGJsa193cml0ZV90aW1lLAorICAgIHBnX3N0YXRfZ2V0X2RiX3Nlc3Np b25fdGltZShvaWQpIEFTIHNlc3Npb25fdGltZSwKKyAgICBwZ19zdGF0X2dldF9kYl9hY3RpdmVf dGltZShvaWQpIEFTIGFjdGl2ZV90aW1lLAorICAgIHBnX3N0YXRfZ2V0X2RiX2lkbGVfaW5fdHJh bnNhY3Rpb25fdGltZShvaWQpIEFTIGlkbGVfaW5fdHJhbnNhY3Rpb25fdGltZSwKKyAgICBwZ19z dGF0X2dldF9kYl9zZXNzaW9ucyhvaWQpIEFTIHNlc3Npb25zLAorICAgIHBnX3N0YXRfZ2V0X2Ri X3Nlc3Npb25zX2FiYW5kb25lZChvaWQpIEFTIHNlc3Npb25zX2FiYW5kb25lZCwKKyAgICBwZ19z dGF0X2dldF9kYl9zZXNzaW9uc19mYXRhbChvaWQpIEFTIHNlc3Npb25zX2ZhdGFsLAorICAgIHBn X3N0YXRfZ2V0X2RiX3Nlc3Npb25zX2tpbGxlZChvaWQpIEFTIHNlc3Npb25zX2tpbGxlZCwKKyAg ICBwZ19zdGF0X2dldF9kYl9zdGF0X3Jlc2V0X3RpbWUob2lkKSBBUyBzdGF0c19yZXNldAogICAg RlJPTSAoIFNFTEVDVCAwIEFTIG9pZCwKICAgICAgICAgICAgIE5VTEw6Om5hbWUgQVMgZGF0bmFt ZQogICAgICAgICBVTklPTiBBTEwKICAgICAgICAgIFNFTEVDVCBwZ19kYXRhYmFzZS5vaWQsCiAg ICAgICAgICAgICBwZ19kYXRhYmFzZS5kYXRuYW1lCiAgICAgICAgICAgIEZST00gcGdfZGF0YWJh c2UpIGQ7Ci1wZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0c3wgU0VMRUNUIGQub2lkIEFTIGRhdGlk LAotICAgIGQuZGF0bmFtZSwKLSAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF90YWJsZXNwYWNl KGQub2lkKSBBUyBjb25mbF90YWJsZXNwYWNlLAotICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0 X2xvY2soZC5vaWQpIEFTIGNvbmZsX2xvY2ssCi0gICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf c25hcHNob3QoZC5vaWQpIEFTIGNvbmZsX3NuYXBzaG90LAotICAgIHBnX3N0YXRfZ2V0X2RiX2Nv bmZsaWN0X2J1ZmZlcnBpbihkLm9pZCkgQVMgY29uZmxfYnVmZmVycGluLAotICAgIHBnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soZC5vaWQpIEFTIGNvbmZsX2RlYWRsb2Nr CitwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0c3wgU0VMRUNUIG9pZCBBUyBkYXRpZCwKKyAgICBk YXRuYW1lLAorICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3RhYmxlc3BhY2Uob2lkKSBBUyBj b25mbF90YWJsZXNwYWNlLAorICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvY2sob2lkKSBB UyBjb25mbF9sb2NrLAorICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KG9pZCkg QVMgY29uZmxfc25hcHNob3QsCisgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGlu KG9pZCkgQVMgY29uZmxfYnVmZmVycGluLAorICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0 YXJ0dXBfZGVhZGxvY2sob2lkKSBBUyBjb25mbF9kZWFkbG9jawogICAgRlJPTSBwZ19kYXRhYmFz ZSBkOwotcGdfc3RhdF9nc3NhcGl8IFNFTEVDVCBzLnBpZCwKLSAgICBzLmdzc19hdXRoIEFTIGdz c19hdXRoZW50aWNhdGVkLAotICAgIHMuZ3NzX3ByaW5jIEFTIHByaW5jaXBhbCwKLSAgICBzLmdz c19lbmMgQVMgZW5jcnlwdGVkCitwZ19zdGF0X2dzc2FwaXwgU0VMRUNUIHBpZCwKKyAgICBnc3Nf YXV0aCBBUyBnc3NfYXV0aGVudGljYXRlZCwKKyAgICBnc3NfcHJpbmMgQVMgcHJpbmNpcGFsLAor ICAgIGdzc19lbmMgQVMgZW5jcnlwdGVkCiAgICBGUk9NIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KE5V TEw6OmludGVnZXIpIHMoZGF0aWQsIHBpZCwgdXNlc3lzaWQsIGFwcGxpY2F0aW9uX25hbWUsIHN0 YXRlLCBxdWVyeSwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50LCB4YWN0X3N0YXJ0LCBxdWVy eV9zdGFydCwgYmFja2VuZF9zdGFydCwgc3RhdGVfY2hhbmdlLCBjbGllbnRfYWRkciwgY2xpZW50 X2hvc3RuYW1lLCBjbGllbnRfcG9ydCwgYmFja2VuZF94aWQsIGJhY2tlbmRfeG1pbiwgYmFja2Vu ZF90eXBlLCBzc2wsIHNzbHZlcnNpb24sIHNzbGNpcGhlciwgc3NsYml0cywgc3NsX2NsaWVudF9k biwgc3NsX2NsaWVudF9zZXJpYWwsIHNzbF9pc3N1ZXJfZG4sIGdzc19hdXRoLCBnc3NfcHJpbmMs IGdzc19lbmMsIGxlYWRlcl9waWQsIHF1ZXJ5X2lkKQotICBXSEVSRSAocy5jbGllbnRfcG9ydCBJ UyBOT1QgTlVMTCk7CisgIFdIRVJFIChjbGllbnRfcG9ydCBJUyBOT1QgTlVMTCk7CiBwZ19zdGF0 X3Byb2dyZXNzX2FuYWx5emV8IFNFTEVDVCBzLnBpZCwKICAgICBzLmRhdGlkLAogICAgIGQuZGF0 bmFtZSwKQEAgLTE4NzksOCArMTg3OSw4IEBAIHBnX3N0YXRfcHJvZ3Jlc3NfYW5hbHl6ZXwgU0VM RUNUIHMucGlkLAogICAgIChzLnBhcmFtOCk6Om9pZCBBUyBjdXJyZW50X2NoaWxkX3RhYmxlX3Jl bGlkCiAgICBGUk9NIChwZ19zdGF0X2dldF9wcm9ncmVzc19pbmZvKCdBTkFMWVpFJzo6dGV4dCkg cyhwaWQsIGRhdGlkLCByZWxpZCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBwYXJh bTUsIHBhcmFtNiwgcGFyYW03LCBwYXJhbTgsIHBhcmFtOSwgcGFyYW0xMCwgcGFyYW0xMSwgcGFy YW0xMiwgcGFyYW0xMywgcGFyYW0xNCwgcGFyYW0xNSwgcGFyYW0xNiwgcGFyYW0xNywgcGFyYW0x OCwgcGFyYW0xOSwgcGFyYW0yMCkKICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIGQgT04gKChz LmRhdGlkID0gZC5vaWQpKSk7Ci1wZ19zdGF0X3Byb2dyZXNzX2Jhc2ViYWNrdXB8IFNFTEVDVCBz LnBpZCwKLSAgICAgICAgQ0FTRSBzLnBhcmFtMQorcGdfc3RhdF9wcm9ncmVzc19iYXNlYmFja3Vw fCBTRUxFQ1QgcGlkLAorICAgICAgICBDQVNFIHBhcmFtMQogICAgICAgICAgICAgV0hFTiAwIFRI RU4gJ2luaXRpYWxpemluZyc6OnRleHQKICAgICAgICAgICAgIFdIRU4gMSBUSEVOICd3YWl0aW5n IGZvciBjaGVja3BvaW50IHRvIGZpbmlzaCc6OnRleHQKICAgICAgICAgICAgIFdIRU4gMiBUSEVO ICdlc3RpbWF0aW5nIGJhY2t1cCBzaXplJzo6dGV4dApAQCAtMTg4OSwxMyArMTg4OSwxMyBAQCBw Z19zdGF0X3Byb2dyZXNzX2Jhc2ViYWNrdXB8IFNFTEVDVCBzLnBpZCwKICAgICAgICAgICAgIFdI RU4gNSBUSEVOICd0cmFuc2ZlcnJpbmcgd2FsIGZpbGVzJzo6dGV4dAogICAgICAgICAgICAgRUxT RSBOVUxMOjp0ZXh0CiAgICAgICAgIEVORCBBUyBwaGFzZSwKLSAgICAgICAgQ0FTRSBzLnBhcmFt MgorICAgICAgICBDQVNFIHBhcmFtMgogICAgICAgICAgICAgV0hFTiAnLTEnOjppbnRlZ2VyIFRI RU4gTlVMTDo6YmlnaW50Ci0gICAgICAgICAgICBFTFNFIHMucGFyYW0yCisgICAgICAgICAgICBF TFNFIHBhcmFtMgogICAgICAgICBFTkQgQVMgYmFja3VwX3RvdGFsLAotICAgIHMucGFyYW0zIEFT IGJhY2t1cF9zdHJlYW1lZCwKLSAgICBzLnBhcmFtNCBBUyB0YWJsZXNwYWNlc190b3RhbCwKLSAg ICBzLnBhcmFtNSBBUyB0YWJsZXNwYWNlc19zdHJlYW1lZAorICAgIHBhcmFtMyBBUyBiYWNrdXBf c3RyZWFtZWQsCisgICAgcGFyYW00IEFTIHRhYmxlc3BhY2VzX3RvdGFsLAorICAgIHBhcmFtNSBB UyB0YWJsZXNwYWNlc19zdHJlYW1lZAogICAgRlJPTSBwZ19zdGF0X2dldF9wcm9ncmVzc19pbmZv KCdCQVNFQkFDS1VQJzo6dGV4dCkgcyhwaWQsIGRhdGlkLCByZWxpZCwgcGFyYW0xLCBwYXJhbTIs IHBhcmFtMywgcGFyYW00LCBwYXJhbTUsIHBhcmFtNiwgcGFyYW03LCBwYXJhbTgsIHBhcmFtOSwg cGFyYW0xMCwgcGFyYW0xMSwgcGFyYW0xMiwgcGFyYW0xMywgcGFyYW0xNCwgcGFyYW0xNSwgcGFy YW0xNiwgcGFyYW0xNywgcGFyYW0xOCwgcGFyYW0xOSwgcGFyYW0yMCk7CiBwZ19zdGF0X3Byb2dy ZXNzX2NsdXN0ZXJ8IFNFTEVDVCBzLnBpZCwKICAgICBzLmRhdGlkLApAQCAtMjA0MSwyNiArMjA0 MSwyNiBAQCBwZ19zdGF0X3JlcGxpY2F0aW9uX3Nsb3RzfCBTRUxFQ1Qgcy5zbG90X25hbWUsCiAg ICBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIHIsCiAgICAgTEFURVJBTCBwZ19zdGF0X2dldF9y ZXBsaWNhdGlvbl9zbG90KChyLnNsb3RfbmFtZSk6OnRleHQpIHMoc2xvdF9uYW1lLCBzcGlsbF90 eG5zLCBzcGlsbF9jb3VudCwgc3BpbGxfYnl0ZXMsIHN0cmVhbV90eG5zLCBzdHJlYW1fY291bnQs IHN0cmVhbV9ieXRlcywgdG90YWxfdHhucywgdG90YWxfYnl0ZXMsIHN0YXRzX3Jlc2V0KQogICBX SEVSRSAoci5kYXRvaWQgSVMgTk9UIE5VTEwpOwotcGdfc3RhdF9zbHJ1fCBTRUxFQ1Qgcy5uYW1l LAotICAgIHMuYmxrc196ZXJvZWQsCi0gICAgcy5ibGtzX2hpdCwKLSAgICBzLmJsa3NfcmVhZCwK LSAgICBzLmJsa3Nfd3JpdHRlbiwKLSAgICBzLmJsa3NfZXhpc3RzLAotICAgIHMuZmx1c2hlcywK LSAgICBzLnRydW5jYXRlcywKLSAgICBzLnN0YXRzX3Jlc2V0CitwZ19zdGF0X3NscnV8IFNFTEVD VCBuYW1lLAorICAgIGJsa3NfemVyb2VkLAorICAgIGJsa3NfaGl0LAorICAgIGJsa3NfcmVhZCwK KyAgICBibGtzX3dyaXR0ZW4sCisgICAgYmxrc19leGlzdHMsCisgICAgZmx1c2hlcywKKyAgICB0 cnVuY2F0ZXMsCisgICAgc3RhdHNfcmVzZXQKICAgIEZST00gcGdfc3RhdF9nZXRfc2xydSgpIHMo bmFtZSwgYmxrc196ZXJvZWQsIGJsa3NfaGl0LCBibGtzX3JlYWQsIGJsa3Nfd3JpdHRlbiwgYmxr c19leGlzdHMsIGZsdXNoZXMsIHRydW5jYXRlcywgc3RhdHNfcmVzZXQpOwotcGdfc3RhdF9zc2x8 IFNFTEVDVCBzLnBpZCwKLSAgICBzLnNzbCwKLSAgICBzLnNzbHZlcnNpb24gQVMgdmVyc2lvbiwK LSAgICBzLnNzbGNpcGhlciBBUyBjaXBoZXIsCi0gICAgcy5zc2xiaXRzIEFTIGJpdHMsCi0gICAg cy5zc2xfY2xpZW50X2RuIEFTIGNsaWVudF9kbiwKLSAgICBzLnNzbF9jbGllbnRfc2VyaWFsIEFT IGNsaWVudF9zZXJpYWwsCi0gICAgcy5zc2xfaXNzdWVyX2RuIEFTIGlzc3Vlcl9kbgorcGdfc3Rh dF9zc2x8IFNFTEVDVCBwaWQsCisgICAgc3NsLAorICAgIHNzbHZlcnNpb24gQVMgdmVyc2lvbiwK KyAgICBzc2xjaXBoZXIgQVMgY2lwaGVyLAorICAgIHNzbGJpdHMgQVMgYml0cywKKyAgICBzc2xf Y2xpZW50X2RuIEFTIGNsaWVudF9kbiwKKyAgICBzc2xfY2xpZW50X3NlcmlhbCBBUyBjbGllbnRf c2VyaWFsLAorICAgIHNzbF9pc3N1ZXJfZG4gQVMgaXNzdWVyX2RuCiAgICBGUk9NIHBnX3N0YXRf Z2V0X2FjdGl2aXR5KE5VTEw6OmludGVnZXIpIHMoZGF0aWQsIHBpZCwgdXNlc3lzaWQsIGFwcGxp Y2F0aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50LCB4 YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2VuZF9zdGFydCwgc3RhdGVfY2hhbmdlLCBjbGll bnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRfcG9ydCwgYmFja2VuZF94aWQsIGJhY2tl bmRfeG1pbiwgYmFja2VuZF90eXBlLCBzc2wsIHNzbHZlcnNpb24sIHNzbGNpcGhlciwgc3NsYml0 cywgc3NsX2NsaWVudF9kbiwgc3NsX2NsaWVudF9zZXJpYWwsIHNzbF9pc3N1ZXJfZG4sIGdzc19h dXRoLCBnc3NfcHJpbmMsIGdzc19lbmMsIGxlYWRlcl9waWQsIHF1ZXJ5X2lkKQotICBXSEVSRSAo cy5jbGllbnRfcG9ydCBJUyBOT1QgTlVMTCk7CisgIFdIRVJFIChjbGllbnRfcG9ydCBJUyBOT1Qg TlVMTCk7CiBwZ19zdGF0X3N1YnNjcmlwdGlvbnwgU0VMRUNUIHN1Lm9pZCBBUyBzdWJpZCwKICAg ICBzdS5zdWJuYW1lLAogICAgIHN0LnBpZCwKQEAgLTIwNzksNDEgKzIwNzksNDEgQEAgcGdfc3Rh dF9zdWJzY3JpcHRpb25fc3RhdHN8IFNFTEVDVCBzcy5zdWJpZCwKICAgICBzcy5zdGF0c19yZXNl dAogICAgRlJPTSBwZ19zdWJzY3JpcHRpb24gcywKICAgICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3N1 YnNjcmlwdGlvbl9zdGF0cyhzLm9pZCkgc3Moc3ViaWQsIGFwcGx5X2Vycm9yX2NvdW50LCBzeW5j X2Vycm9yX2NvdW50LCBzdGF0c19yZXNldCk7Ci1wZ19zdGF0X3N5c19pbmRleGVzfCBTRUxFQ1Qg cGdfc3RhdF9hbGxfaW5kZXhlcy5yZWxpZCwKLSAgICBwZ19zdGF0X2FsbF9pbmRleGVzLmluZGV4 cmVsaWQsCi0gICAgcGdfc3RhdF9hbGxfaW5kZXhlcy5zY2hlbWFuYW1lLAotICAgIHBnX3N0YXRf YWxsX2luZGV4ZXMucmVsbmFtZSwKLSAgICBwZ19zdGF0X2FsbF9pbmRleGVzLmluZGV4cmVsbmFt ZSwKLSAgICBwZ19zdGF0X2FsbF9pbmRleGVzLmlkeF9zY2FuLAotICAgIHBnX3N0YXRfYWxsX2lu ZGV4ZXMuaWR4X3R1cF9yZWFkLAotICAgIHBnX3N0YXRfYWxsX2luZGV4ZXMuaWR4X3R1cF9mZXRj aAorcGdfc3RhdF9zeXNfaW5kZXhlc3wgU0VMRUNUIHJlbGlkLAorICAgIGluZGV4cmVsaWQsCisg ICAgc2NoZW1hbmFtZSwKKyAgICByZWxuYW1lLAorICAgIGluZGV4cmVsbmFtZSwKKyAgICBpZHhf c2NhbiwKKyAgICBpZHhfdHVwX3JlYWQsCisgICAgaWR4X3R1cF9mZXRjaAogICAgRlJPTSBwZ19z dGF0X2FsbF9pbmRleGVzCi0gIFdIRVJFICgocGdfc3RhdF9hbGxfaW5kZXhlcy5zY2hlbWFuYW1l ID0gQU5ZIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpu YW1lXSkpIE9SIChwZ19zdGF0X2FsbF9pbmRleGVzLnNjaGVtYW5hbWUgfiAnXnBnX3RvYXN0Jzo6 dGV4dCkpOwotcGdfc3RhdF9zeXNfdGFibGVzfCBTRUxFQ1QgcGdfc3RhdF9hbGxfdGFibGVzLnJl bGlkLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5zY2hlbWFuYW1lLAotICAgIHBnX3N0YXRfYWxs X3RhYmxlcy5yZWxuYW1lLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5zZXFfc2NhbiwKLSAgICBw Z19zdGF0X2FsbF90YWJsZXMuc2VxX3R1cF9yZWFkLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5p ZHhfc2NhbiwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMuaWR4X3R1cF9mZXRjaCwKLSAgICBwZ19z dGF0X2FsbF90YWJsZXMubl90dXBfaW5zLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5uX3R1cF91 cGQsCi0gICAgcGdfc3RhdF9hbGxfdGFibGVzLm5fdHVwX2RlbCwKLSAgICBwZ19zdGF0X2FsbF90 YWJsZXMubl90dXBfaG90X3VwZCwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMubl9saXZlX3R1cCwK LSAgICBwZ19zdGF0X2FsbF90YWJsZXMubl9kZWFkX3R1cCwKLSAgICBwZ19zdGF0X2FsbF90YWJs ZXMubl9tb2Rfc2luY2VfYW5hbHl6ZSwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMubl9pbnNfc2lu Y2VfdmFjdXVtLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5sYXN0X3ZhY3V1bSwKLSAgICBwZ19z dGF0X2FsbF90YWJsZXMubGFzdF9hdXRvdmFjdXVtLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5s YXN0X2FuYWx5emUsCi0gICAgcGdfc3RhdF9hbGxfdGFibGVzLmxhc3RfYXV0b2FuYWx5emUsCi0g ICAgcGdfc3RhdF9hbGxfdGFibGVzLnZhY3V1bV9jb3VudCwKLSAgICBwZ19zdGF0X2FsbF90YWJs ZXMuYXV0b3ZhY3V1bV9jb3VudCwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMuYW5hbHl6ZV9jb3Vu dCwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMuYXV0b2FuYWx5emVfY291bnQKKyAgV0hFUkUgKChz Y2hlbWFuYW1lID0gQU5ZIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9z Y2hlbWEnOjpuYW1lXSkpIE9SIChzY2hlbWFuYW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsKK3Bn X3N0YXRfc3lzX3RhYmxlc3wgU0VMRUNUIHJlbGlkLAorICAgIHNjaGVtYW5hbWUsCisgICAgcmVs bmFtZSwKKyAgICBzZXFfc2NhbiwKKyAgICBzZXFfdHVwX3JlYWQsCisgICAgaWR4X3NjYW4sCisg ICAgaWR4X3R1cF9mZXRjaCwKKyAgICBuX3R1cF9pbnMsCisgICAgbl90dXBfdXBkLAorICAgIG5f dHVwX2RlbCwKKyAgICBuX3R1cF9ob3RfdXBkLAorICAgIG5fbGl2ZV90dXAsCisgICAgbl9kZWFk X3R1cCwKKyAgICBuX21vZF9zaW5jZV9hbmFseXplLAorICAgIG5faW5zX3NpbmNlX3ZhY3V1bSwK KyAgICBsYXN0X3ZhY3V1bSwKKyAgICBsYXN0X2F1dG92YWN1dW0sCisgICAgbGFzdF9hbmFseXpl LAorICAgIGxhc3RfYXV0b2FuYWx5emUsCisgICAgdmFjdXVtX2NvdW50LAorICAgIGF1dG92YWN1 dW1fY291bnQsCisgICAgYW5hbHl6ZV9jb3VudCwKKyAgICBhdXRvYW5hbHl6ZV9jb3VudAogICAg RlJPTSBwZ19zdGF0X2FsbF90YWJsZXMKLSAgV0hFUkUgKChwZ19zdGF0X2FsbF90YWJsZXMuc2No ZW1hbmFtZSA9IEFOWSAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2No ZW1hJzo6bmFtZV0pKSBPUiAocGdfc3RhdF9hbGxfdGFibGVzLnNjaGVtYW5hbWUgfiAnXnBnX3Rv YXN0Jzo6dGV4dCkpOworICBXSEVSRSAoKHNjaGVtYW5hbWUgPSBBTlkgKEFSUkFZWydwZ19jYXRh bG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgT1IgKHNjaGVtYW5hbWUg fiAnXnBnX3RvYXN0Jzo6dGV4dCkpOwogcGdfc3RhdF91c2VyX2Z1bmN0aW9uc3wgU0VMRUNUIHAu b2lkIEFTIGZ1bmNpZCwKICAgICBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICBwLnByb25h bWUgQVMgZnVuY25hbWUsCkBAIC0yMTIzLDY4ICsyMTIzLDY4IEBAIHBnX3N0YXRfdXNlcl9mdW5j dGlvbnN8IFNFTEVDVCBwLm9pZCBBUyBmdW5jaWQsCiAgICBGUk9NIChwZ19wcm9jIHAKICAgICAg TEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBwLnByb25hbWVzcGFjZSkpKQog ICBXSEVSRSAoKHAucHJvbGFuZyA8PiAoMTIpOjpvaWQpIEFORCAocGdfc3RhdF9nZXRfZnVuY3Rp b25fY2FsbHMocC5vaWQpIElTIE5PVCBOVUxMKSk7Ci1wZ19zdGF0X3VzZXJfaW5kZXhlc3wgU0VM RUNUIHBnX3N0YXRfYWxsX2luZGV4ZXMucmVsaWQsCi0gICAgcGdfc3RhdF9hbGxfaW5kZXhlcy5p bmRleHJlbGlkLAotICAgIHBnX3N0YXRfYWxsX2luZGV4ZXMuc2NoZW1hbmFtZSwKLSAgICBwZ19z dGF0X2FsbF9pbmRleGVzLnJlbG5hbWUsCi0gICAgcGdfc3RhdF9hbGxfaW5kZXhlcy5pbmRleHJl bG5hbWUsCi0gICAgcGdfc3RhdF9hbGxfaW5kZXhlcy5pZHhfc2NhbiwKLSAgICBwZ19zdGF0X2Fs bF9pbmRleGVzLmlkeF90dXBfcmVhZCwKLSAgICBwZ19zdGF0X2FsbF9pbmRleGVzLmlkeF90dXBf ZmV0Y2gKK3BnX3N0YXRfdXNlcl9pbmRleGVzfCBTRUxFQ1QgcmVsaWQsCisgICAgaW5kZXhyZWxp ZCwKKyAgICBzY2hlbWFuYW1lLAorICAgIHJlbG5hbWUsCisgICAgaW5kZXhyZWxuYW1lLAorICAg IGlkeF9zY2FuLAorICAgIGlkeF90dXBfcmVhZCwKKyAgICBpZHhfdHVwX2ZldGNoCiAgICBGUk9N IHBnX3N0YXRfYWxsX2luZGV4ZXMKLSAgV0hFUkUgKChwZ19zdGF0X2FsbF9pbmRleGVzLnNjaGVt YW5hbWUgPD4gQUxMIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hl bWEnOjpuYW1lXSkpIEFORCAocGdfc3RhdF9hbGxfaW5kZXhlcy5zY2hlbWFuYW1lICF+ICdecGdf dG9hc3QnOjp0ZXh0KSk7Ci1wZ19zdGF0X3VzZXJfdGFibGVzfCBTRUxFQ1QgcGdfc3RhdF9hbGxf dGFibGVzLnJlbGlkLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5zY2hlbWFuYW1lLAotICAgIHBn X3N0YXRfYWxsX3RhYmxlcy5yZWxuYW1lLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5zZXFfc2Nh biwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMuc2VxX3R1cF9yZWFkLAotICAgIHBnX3N0YXRfYWxs X3RhYmxlcy5pZHhfc2NhbiwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMuaWR4X3R1cF9mZXRjaCwK LSAgICBwZ19zdGF0X2FsbF90YWJsZXMubl90dXBfaW5zLAotICAgIHBnX3N0YXRfYWxsX3RhYmxl cy5uX3R1cF91cGQsCi0gICAgcGdfc3RhdF9hbGxfdGFibGVzLm5fdHVwX2RlbCwKLSAgICBwZ19z dGF0X2FsbF90YWJsZXMubl90dXBfaG90X3VwZCwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMubl9s aXZlX3R1cCwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMubl9kZWFkX3R1cCwKLSAgICBwZ19zdGF0 X2FsbF90YWJsZXMubl9tb2Rfc2luY2VfYW5hbHl6ZSwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMu bl9pbnNfc2luY2VfdmFjdXVtLAotICAgIHBnX3N0YXRfYWxsX3RhYmxlcy5sYXN0X3ZhY3V1bSwK LSAgICBwZ19zdGF0X2FsbF90YWJsZXMubGFzdF9hdXRvdmFjdXVtLAotICAgIHBnX3N0YXRfYWxs X3RhYmxlcy5sYXN0X2FuYWx5emUsCi0gICAgcGdfc3RhdF9hbGxfdGFibGVzLmxhc3RfYXV0b2Fu YWx5emUsCi0gICAgcGdfc3RhdF9hbGxfdGFibGVzLnZhY3V1bV9jb3VudCwKLSAgICBwZ19zdGF0 X2FsbF90YWJsZXMuYXV0b3ZhY3V1bV9jb3VudCwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMuYW5h bHl6ZV9jb3VudCwKLSAgICBwZ19zdGF0X2FsbF90YWJsZXMuYXV0b2FuYWx5emVfY291bnQKKyAg V0hFUkUgKChzY2hlbWFuYW1lIDw+IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5m b3JtYXRpb25fc2NoZW1hJzo6bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6 OnRleHQpKTsKK3BnX3N0YXRfdXNlcl90YWJsZXN8IFNFTEVDVCByZWxpZCwKKyAgICBzY2hlbWFu YW1lLAorICAgIHJlbG5hbWUsCisgICAgc2VxX3NjYW4sCisgICAgc2VxX3R1cF9yZWFkLAorICAg IGlkeF9zY2FuLAorICAgIGlkeF90dXBfZmV0Y2gsCisgICAgbl90dXBfaW5zLAorICAgIG5fdHVw X3VwZCwKKyAgICBuX3R1cF9kZWwsCisgICAgbl90dXBfaG90X3VwZCwKKyAgICBuX2xpdmVfdHVw LAorICAgIG5fZGVhZF90dXAsCisgICAgbl9tb2Rfc2luY2VfYW5hbHl6ZSwKKyAgICBuX2luc19z aW5jZV92YWN1dW0sCisgICAgbGFzdF92YWN1dW0sCisgICAgbGFzdF9hdXRvdmFjdXVtLAorICAg IGxhc3RfYW5hbHl6ZSwKKyAgICBsYXN0X2F1dG9hbmFseXplLAorICAgIHZhY3V1bV9jb3VudCwK KyAgICBhdXRvdmFjdXVtX2NvdW50LAorICAgIGFuYWx5emVfY291bnQsCisgICAgYXV0b2FuYWx5 emVfY291bnQKICAgIEZST00gcGdfc3RhdF9hbGxfdGFibGVzCi0gIFdIRVJFICgocGdfc3RhdF9h bGxfdGFibGVzLnNjaGVtYW5hbWUgPD4gQUxMIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdp bmZvcm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIEFORCAocGdfc3RhdF9hbGxfdGFibGVzLnNjaGVt YW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQpKTsKLXBnX3N0YXRfd2FsfCBTRUxFQ1Qgdy53YWxf cmVjb3JkcywKLSAgICB3LndhbF9mcGksCi0gICAgdy53YWxfYnl0ZXMsCi0gICAgdy53YWxfYnVm ZmVyc19mdWxsLAotICAgIHcud2FsX3dyaXRlLAotICAgIHcud2FsX3N5bmMsCi0gICAgdy53YWxf d3JpdGVfdGltZSwKLSAgICB3LndhbF9zeW5jX3RpbWUsCi0gICAgdy5zdGF0c19yZXNldAorICBX SEVSRSAoKHNjaGVtYW5hbWUgPD4gQUxMIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZv cm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIEFORCAoc2NoZW1hbmFtZSAhfiAnXnBnX3RvYXN0Jzo6 dGV4dCkpOworcGdfc3RhdF93YWx8IFNFTEVDVCB3YWxfcmVjb3JkcywKKyAgICB3YWxfZnBpLAor ICAgIHdhbF9ieXRlcywKKyAgICB3YWxfYnVmZmVyc19mdWxsLAorICAgIHdhbF93cml0ZSwKKyAg ICB3YWxfc3luYywKKyAgICB3YWxfd3JpdGVfdGltZSwKKyAgICB3YWxfc3luY190aW1lLAorICAg IHN0YXRzX3Jlc2V0CiAgICBGUk9NIHBnX3N0YXRfZ2V0X3dhbCgpIHcod2FsX3JlY29yZHMsIHdh bF9mcGksIHdhbF9ieXRlcywgd2FsX2J1ZmZlcnNfZnVsbCwgd2FsX3dyaXRlLCB3YWxfc3luYywg d2FsX3dyaXRlX3RpbWUsIHdhbF9zeW5jX3RpbWUsIHN0YXRzX3Jlc2V0KTsKLXBnX3N0YXRfd2Fs X3JlY2VpdmVyfCBTRUxFQ1Qgcy5waWQsCi0gICAgcy5zdGF0dXMsCi0gICAgcy5yZWNlaXZlX3N0 YXJ0X2xzbiwKLSAgICBzLnJlY2VpdmVfc3RhcnRfdGxpLAotICAgIHMud3JpdHRlbl9sc24sCi0g ICAgcy5mbHVzaGVkX2xzbiwKLSAgICBzLnJlY2VpdmVkX3RsaSwKLSAgICBzLmxhc3RfbXNnX3Nl bmRfdGltZSwKLSAgICBzLmxhc3RfbXNnX3JlY2VpcHRfdGltZSwKLSAgICBzLmxhdGVzdF9lbmRf bHNuLAotICAgIHMubGF0ZXN0X2VuZF90aW1lLAotICAgIHMuc2xvdF9uYW1lLAotICAgIHMuc2Vu ZGVyX2hvc3QsCi0gICAgcy5zZW5kZXJfcG9ydCwKLSAgICBzLmNvbm5pbmZvCitwZ19zdGF0X3dh bF9yZWNlaXZlcnwgU0VMRUNUIHBpZCwKKyAgICBzdGF0dXMsCisgICAgcmVjZWl2ZV9zdGFydF9s c24sCisgICAgcmVjZWl2ZV9zdGFydF90bGksCisgICAgd3JpdHRlbl9sc24sCisgICAgZmx1c2hl ZF9sc24sCisgICAgcmVjZWl2ZWRfdGxpLAorICAgIGxhc3RfbXNnX3NlbmRfdGltZSwKKyAgICBs YXN0X21zZ19yZWNlaXB0X3RpbWUsCisgICAgbGF0ZXN0X2VuZF9sc24sCisgICAgbGF0ZXN0X2Vu ZF90aW1lLAorICAgIHNsb3RfbmFtZSwKKyAgICBzZW5kZXJfaG9zdCwKKyAgICBzZW5kZXJfcG9y dCwKKyAgICBjb25uaW5mbwogICAgRlJPTSBwZ19zdGF0X2dldF93YWxfcmVjZWl2ZXIoKSBzKHBp ZCwgc3RhdHVzLCByZWNlaXZlX3N0YXJ0X2xzbiwgcmVjZWl2ZV9zdGFydF90bGksIHdyaXR0ZW5f bHNuLCBmbHVzaGVkX2xzbiwgcmVjZWl2ZWRfdGxpLCBsYXN0X21zZ19zZW5kX3RpbWUsIGxhc3Rf bXNnX3JlY2VpcHRfdGltZSwgbGF0ZXN0X2VuZF9sc24sIGxhdGVzdF9lbmRfdGltZSwgc2xvdF9u YW1lLCBzZW5kZXJfaG9zdCwgc2VuZGVyX3BvcnQsIGNvbm5pbmZvKQotICBXSEVSRSAocy5waWQg SVMgTk9UIE5VTEwpOworICBXSEVSRSAocGlkIElTIE5PVCBOVUxMKTsKIHBnX3N0YXRfeGFjdF9h bGxfdGFibGVzfCBTRUxFQ1QgYy5vaWQgQVMgcmVsaWQsCiAgICAgbi5uc3BuYW1lIEFTIHNjaGVt YW5hbWUsCiAgICAgYy5yZWxuYW1lLApAQCAtMjIwMSwxOSArMjIwMSwxOSBAQCBwZ19zdGF0X3hh Y3RfYWxsX3RhYmxlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLAogICAgICBMRUZUIEpPSU4gcGdf bmFtZXNwYWNlIG4gT04gKChuLm9pZCA9IGMucmVsbmFtZXNwYWNlKSkpCiAgIFdIRVJFIChjLnJl bGtpbmQgPSBBTlkgKEFSUkFZWydyJzo6ImNoYXIiLCAndCc6OiJjaGFyIiwgJ20nOjoiY2hhciIs ICdwJzo6ImNoYXIiXSkpCiAgIEdST1VQIEJZIGMub2lkLCBuLm5zcG5hbWUsIGMucmVsbmFtZTsK LXBnX3N0YXRfeGFjdF9zeXNfdGFibGVzfCBTRUxFQ1QgcGdfc3RhdF94YWN0X2FsbF90YWJsZXMu cmVsaWQsCi0gICAgcGdfc3RhdF94YWN0X2FsbF90YWJsZXMuc2NoZW1hbmFtZSwKLSAgICBwZ19z dGF0X3hhY3RfYWxsX3RhYmxlcy5yZWxuYW1lLAotICAgIHBnX3N0YXRfeGFjdF9hbGxfdGFibGVz LnNlcV9zY2FuLAotICAgIHBnX3N0YXRfeGFjdF9hbGxfdGFibGVzLnNlcV90dXBfcmVhZCwKLSAg ICBwZ19zdGF0X3hhY3RfYWxsX3RhYmxlcy5pZHhfc2NhbiwKLSAgICBwZ19zdGF0X3hhY3RfYWxs X3RhYmxlcy5pZHhfdHVwX2ZldGNoLAotICAgIHBnX3N0YXRfeGFjdF9hbGxfdGFibGVzLm5fdHVw X2lucywKLSAgICBwZ19zdGF0X3hhY3RfYWxsX3RhYmxlcy5uX3R1cF91cGQsCi0gICAgcGdfc3Rh dF94YWN0X2FsbF90YWJsZXMubl90dXBfZGVsLAotICAgIHBnX3N0YXRfeGFjdF9hbGxfdGFibGVz Lm5fdHVwX2hvdF91cGQKK3BnX3N0YXRfeGFjdF9zeXNfdGFibGVzfCBTRUxFQ1QgcmVsaWQsCisg ICAgc2NoZW1hbmFtZSwKKyAgICByZWxuYW1lLAorICAgIHNlcV9zY2FuLAorICAgIHNlcV90dXBf cmVhZCwKKyAgICBpZHhfc2NhbiwKKyAgICBpZHhfdHVwX2ZldGNoLAorICAgIG5fdHVwX2lucywK KyAgICBuX3R1cF91cGQsCisgICAgbl90dXBfZGVsLAorICAgIG5fdHVwX2hvdF91cGQKICAgIEZS T00gcGdfc3RhdF94YWN0X2FsbF90YWJsZXMKLSAgV0hFUkUgKChwZ19zdGF0X3hhY3RfYWxsX3Rh Ymxlcy5zY2hlbWFuYW1lID0gQU5ZIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1h dGlvbl9zY2hlbWEnOjpuYW1lXSkpIE9SIChwZ19zdGF0X3hhY3RfYWxsX3RhYmxlcy5zY2hlbWFu YW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsKKyAgV0hFUkUgKChzY2hlbWFuYW1lID0gQU5ZIChB UlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIE9S IChzY2hlbWFuYW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsKIHBnX3N0YXRfeGFjdF91c2VyX2Z1 bmN0aW9uc3wgU0VMRUNUIHAub2lkIEFTIGZ1bmNpZCwKICAgICBuLm5zcG5hbWUgQVMgc2NoZW1h bmFtZSwKICAgICBwLnByb25hbWUgQVMgZnVuY25hbWUsCkBAIC0yMjIzLDE5ICsyMjIzLDE5IEBA IHBnX3N0YXRfeGFjdF91c2VyX2Z1bmN0aW9uc3wgU0VMRUNUIHAub2lkIEFTIGZ1bmNpZCwKICAg IEZST00gKHBnX3Byb2MgcAogICAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gKChuLm9p ZCA9IHAucHJvbmFtZXNwYWNlKSkpCiAgIFdIRVJFICgocC5wcm9sYW5nIDw+ICgxMik6Om9pZCkg QU5EIChwZ19zdGF0X2dldF94YWN0X2Z1bmN0aW9uX2NhbGxzKHAub2lkKSBJUyBOT1QgTlVMTCkp OwotcGdfc3RhdF94YWN0X3VzZXJfdGFibGVzfCBTRUxFQ1QgcGdfc3RhdF94YWN0X2FsbF90YWJs ZXMucmVsaWQsCi0gICAgcGdfc3RhdF94YWN0X2FsbF90YWJsZXMuc2NoZW1hbmFtZSwKLSAgICBw Z19zdGF0X3hhY3RfYWxsX3RhYmxlcy5yZWxuYW1lLAotICAgIHBnX3N0YXRfeGFjdF9hbGxfdGFi bGVzLnNlcV9zY2FuLAotICAgIHBnX3N0YXRfeGFjdF9hbGxfdGFibGVzLnNlcV90dXBfcmVhZCwK LSAgICBwZ19zdGF0X3hhY3RfYWxsX3RhYmxlcy5pZHhfc2NhbiwKLSAgICBwZ19zdGF0X3hhY3Rf YWxsX3RhYmxlcy5pZHhfdHVwX2ZldGNoLAotICAgIHBnX3N0YXRfeGFjdF9hbGxfdGFibGVzLm5f dHVwX2lucywKLSAgICBwZ19zdGF0X3hhY3RfYWxsX3RhYmxlcy5uX3R1cF91cGQsCi0gICAgcGdf c3RhdF94YWN0X2FsbF90YWJsZXMubl90dXBfZGVsLAotICAgIHBnX3N0YXRfeGFjdF9hbGxfdGFi bGVzLm5fdHVwX2hvdF91cGQKK3BnX3N0YXRfeGFjdF91c2VyX3RhYmxlc3wgU0VMRUNUIHJlbGlk LAorICAgIHNjaGVtYW5hbWUsCisgICAgcmVsbmFtZSwKKyAgICBzZXFfc2NhbiwKKyAgICBzZXFf dHVwX3JlYWQsCisgICAgaWR4X3NjYW4sCisgICAgaWR4X3R1cF9mZXRjaCwKKyAgICBuX3R1cF9p bnMsCisgICAgbl90dXBfdXBkLAorICAgIG5fdHVwX2RlbCwKKyAgICBuX3R1cF9ob3RfdXBkCiAg ICBGUk9NIHBnX3N0YXRfeGFjdF9hbGxfdGFibGVzCi0gIFdIRVJFICgocGdfc3RhdF94YWN0X2Fs bF90YWJsZXMuc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2lu Zm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5EIChwZ19zdGF0X3hhY3RfYWxsX3RhYmxlcy5z Y2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7CisgIFdIRVJFICgoc2NoZW1hbmFtZSA8 PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5h bWVdKSkgQU5EIChzY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7CiBwZ19zdGF0aW9f YWxsX2luZGV4ZXN8IFNFTEVDVCBjLm9pZCBBUyByZWxpZCwKICAgICBpLm9pZCBBUyBpbmRleHJl bGlkLAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLApAQCAtMjI3NCw2NCArMjI3NCw2NCBA QCBwZ19zdGF0aW9fYWxsX3RhYmxlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLAogICAgICBMRUZU IEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gKChuLm9pZCA9IGMucmVsbmFtZXNwYWNlKSkpCiAgIFdI RVJFIChjLnJlbGtpbmQgPSBBTlkgKEFSUkFZWydyJzo6ImNoYXIiLCAndCc6OiJjaGFyIiwgJ20n OjoiY2hhciJdKSkKICAgR1JPVVAgQlkgYy5vaWQsIG4ubnNwbmFtZSwgYy5yZWxuYW1lLCB0Lm9p ZCwgeC5pbmRleHJlbGlkOwotcGdfc3RhdGlvX3N5c19pbmRleGVzfCBTRUxFQ1QgcGdfc3RhdGlv X2FsbF9pbmRleGVzLnJlbGlkLAotICAgIHBnX3N0YXRpb19hbGxfaW5kZXhlcy5pbmRleHJlbGlk LAotICAgIHBnX3N0YXRpb19hbGxfaW5kZXhlcy5zY2hlbWFuYW1lLAotICAgIHBnX3N0YXRpb19h bGxfaW5kZXhlcy5yZWxuYW1lLAotICAgIHBnX3N0YXRpb19hbGxfaW5kZXhlcy5pbmRleHJlbG5h bWUsCi0gICAgcGdfc3RhdGlvX2FsbF9pbmRleGVzLmlkeF9ibGtzX3JlYWQsCi0gICAgcGdfc3Rh dGlvX2FsbF9pbmRleGVzLmlkeF9ibGtzX2hpdAorcGdfc3RhdGlvX3N5c19pbmRleGVzfCBTRUxF Q1QgcmVsaWQsCisgICAgaW5kZXhyZWxpZCwKKyAgICBzY2hlbWFuYW1lLAorICAgIHJlbG5hbWUs CisgICAgaW5kZXhyZWxuYW1lLAorICAgIGlkeF9ibGtzX3JlYWQsCisgICAgaWR4X2Jsa3NfaGl0 CiAgICBGUk9NIHBnX3N0YXRpb19hbGxfaW5kZXhlcwotICBXSEVSRSAoKHBnX3N0YXRpb19hbGxf aW5kZXhlcy5zY2hlbWFuYW1lID0gQU5ZIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZv cm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIE9SIChwZ19zdGF0aW9fYWxsX2luZGV4ZXMuc2NoZW1h bmFtZSB+ICdecGdfdG9hc3QnOjp0ZXh0KSk7Ci1wZ19zdGF0aW9fc3lzX3NlcXVlbmNlc3wgU0VM RUNUIHBnX3N0YXRpb19hbGxfc2VxdWVuY2VzLnJlbGlkLAotICAgIHBnX3N0YXRpb19hbGxfc2Vx dWVuY2VzLnNjaGVtYW5hbWUsCi0gICAgcGdfc3RhdGlvX2FsbF9zZXF1ZW5jZXMucmVsbmFtZSwK LSAgICBwZ19zdGF0aW9fYWxsX3NlcXVlbmNlcy5ibGtzX3JlYWQsCi0gICAgcGdfc3RhdGlvX2Fs bF9zZXF1ZW5jZXMuYmxrc19oaXQKKyAgV0hFUkUgKChzY2hlbWFuYW1lID0gQU5ZIChBUlJBWVsn cGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIE9SIChzY2hl bWFuYW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsKK3BnX3N0YXRpb19zeXNfc2VxdWVuY2VzfCBT RUxFQ1QgcmVsaWQsCisgICAgc2NoZW1hbmFtZSwKKyAgICByZWxuYW1lLAorICAgIGJsa3NfcmVh ZCwKKyAgICBibGtzX2hpdAogICAgRlJPTSBwZ19zdGF0aW9fYWxsX3NlcXVlbmNlcwotICBXSEVS RSAoKHBnX3N0YXRpb19hbGxfc2VxdWVuY2VzLnNjaGVtYW5hbWUgPSBBTlkgKEFSUkFZWydwZ19j YXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgT1IgKHBnX3N0YXRp b19hbGxfc2VxdWVuY2VzLnNjaGVtYW5hbWUgfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOwotcGdfc3Rh dGlvX3N5c190YWJsZXN8IFNFTEVDVCBwZ19zdGF0aW9fYWxsX3RhYmxlcy5yZWxpZCwKLSAgICBw Z19zdGF0aW9fYWxsX3RhYmxlcy5zY2hlbWFuYW1lLAotICAgIHBnX3N0YXRpb19hbGxfdGFibGVz LnJlbG5hbWUsCi0gICAgcGdfc3RhdGlvX2FsbF90YWJsZXMuaGVhcF9ibGtzX3JlYWQsCi0gICAg cGdfc3RhdGlvX2FsbF90YWJsZXMuaGVhcF9ibGtzX2hpdCwKLSAgICBwZ19zdGF0aW9fYWxsX3Rh Ymxlcy5pZHhfYmxrc19yZWFkLAotICAgIHBnX3N0YXRpb19hbGxfdGFibGVzLmlkeF9ibGtzX2hp dCwKLSAgICBwZ19zdGF0aW9fYWxsX3RhYmxlcy50b2FzdF9ibGtzX3JlYWQsCi0gICAgcGdfc3Rh dGlvX2FsbF90YWJsZXMudG9hc3RfYmxrc19oaXQsCi0gICAgcGdfc3RhdGlvX2FsbF90YWJsZXMu dGlkeF9ibGtzX3JlYWQsCi0gICAgcGdfc3RhdGlvX2FsbF90YWJsZXMudGlkeF9ibGtzX2hpdAor ICBXSEVSRSAoKHNjaGVtYW5hbWUgPSBBTlkgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2lu Zm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgT1IgKHNjaGVtYW5hbWUgfiAnXnBnX3RvYXN0Jzo6 dGV4dCkpOworcGdfc3RhdGlvX3N5c190YWJsZXN8IFNFTEVDVCByZWxpZCwKKyAgICBzY2hlbWFu YW1lLAorICAgIHJlbG5hbWUsCisgICAgaGVhcF9ibGtzX3JlYWQsCisgICAgaGVhcF9ibGtzX2hp dCwKKyAgICBpZHhfYmxrc19yZWFkLAorICAgIGlkeF9ibGtzX2hpdCwKKyAgICB0b2FzdF9ibGtz X3JlYWQsCisgICAgdG9hc3RfYmxrc19oaXQsCisgICAgdGlkeF9ibGtzX3JlYWQsCisgICAgdGlk eF9ibGtzX2hpdAogICAgRlJPTSBwZ19zdGF0aW9fYWxsX3RhYmxlcwotICBXSEVSRSAoKHBnX3N0 YXRpb19hbGxfdGFibGVzLnNjaGVtYW5hbWUgPSBBTlkgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFt ZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgT1IgKHBnX3N0YXRpb19hbGxfdGFibGVz LnNjaGVtYW5hbWUgfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOwotcGdfc3RhdGlvX3VzZXJfaW5kZXhl c3wgU0VMRUNUIHBnX3N0YXRpb19hbGxfaW5kZXhlcy5yZWxpZCwKLSAgICBwZ19zdGF0aW9fYWxs X2luZGV4ZXMuaW5kZXhyZWxpZCwKLSAgICBwZ19zdGF0aW9fYWxsX2luZGV4ZXMuc2NoZW1hbmFt ZSwKLSAgICBwZ19zdGF0aW9fYWxsX2luZGV4ZXMucmVsbmFtZSwKLSAgICBwZ19zdGF0aW9fYWxs X2luZGV4ZXMuaW5kZXhyZWxuYW1lLAotICAgIHBnX3N0YXRpb19hbGxfaW5kZXhlcy5pZHhfYmxr c19yZWFkLAotICAgIHBnX3N0YXRpb19hbGxfaW5kZXhlcy5pZHhfYmxrc19oaXQKKyAgV0hFUkUg KChzY2hlbWFuYW1lID0gQU5ZIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlv bl9zY2hlbWEnOjpuYW1lXSkpIE9SIChzY2hlbWFuYW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsK K3BnX3N0YXRpb191c2VyX2luZGV4ZXN8IFNFTEVDVCByZWxpZCwKKyAgICBpbmRleHJlbGlkLAor ICAgIHNjaGVtYW5hbWUsCisgICAgcmVsbmFtZSwKKyAgICBpbmRleHJlbG5hbWUsCisgICAgaWR4 X2Jsa3NfcmVhZCwKKyAgICBpZHhfYmxrc19oaXQKICAgIEZST00gcGdfc3RhdGlvX2FsbF9pbmRl eGVzCi0gIFdIRVJFICgocGdfc3RhdGlvX2FsbF9pbmRleGVzLnNjaGVtYW5hbWUgPD4gQUxMIChB UlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIEFO RCAocGdfc3RhdGlvX2FsbF9pbmRleGVzLnNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQp KTsKLXBnX3N0YXRpb191c2VyX3NlcXVlbmNlc3wgU0VMRUNUIHBnX3N0YXRpb19hbGxfc2VxdWVu Y2VzLnJlbGlkLAotICAgIHBnX3N0YXRpb19hbGxfc2VxdWVuY2VzLnNjaGVtYW5hbWUsCi0gICAg cGdfc3RhdGlvX2FsbF9zZXF1ZW5jZXMucmVsbmFtZSwKLSAgICBwZ19zdGF0aW9fYWxsX3NlcXVl bmNlcy5ibGtzX3JlYWQsCi0gICAgcGdfc3RhdGlvX2FsbF9zZXF1ZW5jZXMuYmxrc19oaXQKKyAg V0hFUkUgKChzY2hlbWFuYW1lIDw+IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5m b3JtYXRpb25fc2NoZW1hJzo6bmFtZV0pKSBBTkQgKHNjaGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6 OnRleHQpKTsKK3BnX3N0YXRpb191c2VyX3NlcXVlbmNlc3wgU0VMRUNUIHJlbGlkLAorICAgIHNj aGVtYW5hbWUsCisgICAgcmVsbmFtZSwKKyAgICBibGtzX3JlYWQsCisgICAgYmxrc19oaXQKICAg IEZST00gcGdfc3RhdGlvX2FsbF9zZXF1ZW5jZXMKLSAgV0hFUkUgKChwZ19zdGF0aW9fYWxsX3Nl cXVlbmNlcy5zY2hlbWFuYW1lIDw+IEFMTCAoQVJSQVlbJ3BnX2NhdGFsb2cnOjpuYW1lLCAnaW5m b3JtYXRpb25fc2NoZW1hJzo6bmFtZV0pKSBBTkQgKHBnX3N0YXRpb19hbGxfc2VxdWVuY2VzLnNj aGVtYW5hbWUgIX4gJ15wZ190b2FzdCc6OnRleHQpKTsKLXBnX3N0YXRpb191c2VyX3RhYmxlc3wg U0VMRUNUIHBnX3N0YXRpb19hbGxfdGFibGVzLnJlbGlkLAotICAgIHBnX3N0YXRpb19hbGxfdGFi bGVzLnNjaGVtYW5hbWUsCi0gICAgcGdfc3RhdGlvX2FsbF90YWJsZXMucmVsbmFtZSwKLSAgICBw Z19zdGF0aW9fYWxsX3RhYmxlcy5oZWFwX2Jsa3NfcmVhZCwKLSAgICBwZ19zdGF0aW9fYWxsX3Rh Ymxlcy5oZWFwX2Jsa3NfaGl0LAotICAgIHBnX3N0YXRpb19hbGxfdGFibGVzLmlkeF9ibGtzX3Jl YWQsCi0gICAgcGdfc3RhdGlvX2FsbF90YWJsZXMuaWR4X2Jsa3NfaGl0LAotICAgIHBnX3N0YXRp b19hbGxfdGFibGVzLnRvYXN0X2Jsa3NfcmVhZCwKLSAgICBwZ19zdGF0aW9fYWxsX3RhYmxlcy50 b2FzdF9ibGtzX2hpdCwKLSAgICBwZ19zdGF0aW9fYWxsX3RhYmxlcy50aWR4X2Jsa3NfcmVhZCwK LSAgICBwZ19zdGF0aW9fYWxsX3RhYmxlcy50aWR4X2Jsa3NfaGl0CisgIFdIRVJFICgoc2NoZW1h bmFtZSA8PiBBTEwgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVt YSc6Om5hbWVdKSkgQU5EIChzY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7CitwZ19z dGF0aW9fdXNlcl90YWJsZXN8IFNFTEVDVCByZWxpZCwKKyAgICBzY2hlbWFuYW1lLAorICAgIHJl bG5hbWUsCisgICAgaGVhcF9ibGtzX3JlYWQsCisgICAgaGVhcF9ibGtzX2hpdCwKKyAgICBpZHhf Ymxrc19yZWFkLAorICAgIGlkeF9ibGtzX2hpdCwKKyAgICB0b2FzdF9ibGtzX3JlYWQsCisgICAg dG9hc3RfYmxrc19oaXQsCisgICAgdGlkeF9ibGtzX3JlYWQsCisgICAgdGlkeF9ibGtzX2hpdAog ICAgRlJPTSBwZ19zdGF0aW9fYWxsX3RhYmxlcwotICBXSEVSRSAoKHBnX3N0YXRpb19hbGxfdGFi bGVzLnNjaGVtYW5hbWUgPD4gQUxMIChBUlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1h dGlvbl9zY2hlbWEnOjpuYW1lXSkpIEFORCAocGdfc3RhdGlvX2FsbF90YWJsZXMuc2NoZW1hbmFt ZSAhfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOworICBXSEVSRSAoKHNjaGVtYW5hbWUgPD4gQUxMIChB UlJBWVsncGdfY2F0YWxvZyc6Om5hbWUsICdpbmZvcm1hdGlvbl9zY2hlbWEnOjpuYW1lXSkpIEFO RCAoc2NoZW1hbmFtZSAhfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOwogcGdfc3RhdHN8IFNFTEVDVCBu Lm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICBjLnJlbG5hbWUgQVMgdGFibGVuYW1lLAogICAg IGEuYXR0bmFtZSwKQEAgLTI1MTYsMjQgKzI1MTYsMjQgQEAgcGdfdGFibGVzfCBTRUxFQ1Qgbi5u c3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiAo KG4ub2lkID0gYy5yZWxuYW1lc3BhY2UpKSkKICAgICAgTEVGVCBKT0lOIHBnX3RhYmxlc3BhY2Ug dCBPTiAoKHQub2lkID0gYy5yZWx0YWJsZXNwYWNlKSkpCiAgIFdIRVJFIChjLnJlbGtpbmQgPSBB TlkgKEFSUkFZWydyJzo6ImNoYXIiLCAncCc6OiJjaGFyIl0pKTsKLXBnX3RpbWV6b25lX2FiYnJl dnN8IFNFTEVDVCBwZ190aW1lem9uZV9hYmJyZXZzLmFiYnJldiwKLSAgICBwZ190aW1lem9uZV9h YmJyZXZzLnV0Y19vZmZzZXQsCi0gICAgcGdfdGltZXpvbmVfYWJicmV2cy5pc19kc3QKK3BnX3Rp bWV6b25lX2FiYnJldnN8IFNFTEVDVCBhYmJyZXYsCisgICAgdXRjX29mZnNldCwKKyAgICBpc19k c3QKICAgIEZST00gcGdfdGltZXpvbmVfYWJicmV2cygpIHBnX3RpbWV6b25lX2FiYnJldnMoYWJi cmV2LCB1dGNfb2Zmc2V0LCBpc19kc3QpOwotcGdfdGltZXpvbmVfbmFtZXN8IFNFTEVDVCBwZ190 aW1lem9uZV9uYW1lcy5uYW1lLAotICAgIHBnX3RpbWV6b25lX25hbWVzLmFiYnJldiwKLSAgICBw Z190aW1lem9uZV9uYW1lcy51dGNfb2Zmc2V0LAotICAgIHBnX3RpbWV6b25lX25hbWVzLmlzX2Rz dAorcGdfdGltZXpvbmVfbmFtZXN8IFNFTEVDVCBuYW1lLAorICAgIGFiYnJldiwKKyAgICB1dGNf b2Zmc2V0LAorICAgIGlzX2RzdAogICAgRlJPTSBwZ190aW1lem9uZV9uYW1lcygpIHBnX3RpbWV6 b25lX25hbWVzKG5hbWUsIGFiYnJldiwgdXRjX29mZnNldCwgaXNfZHN0KTsKLXBnX3VzZXJ8IFNF TEVDVCBwZ19zaGFkb3cudXNlbmFtZSwKLSAgICBwZ19zaGFkb3cudXNlc3lzaWQsCi0gICAgcGdf c2hhZG93LnVzZWNyZWF0ZWRiLAotICAgIHBnX3NoYWRvdy51c2VzdXBlciwKLSAgICBwZ19zaGFk b3cudXNlcmVwbCwKLSAgICBwZ19zaGFkb3cudXNlYnlwYXNzcmxzLAorcGdfdXNlcnwgU0VMRUNU IHVzZW5hbWUsCisgICAgdXNlc3lzaWQsCisgICAgdXNlY3JlYXRlZGIsCisgICAgdXNlc3VwZXIs CisgICAgdXNlcmVwbCwKKyAgICB1c2VieXBhc3NybHMsCiAgICAgJyoqKioqKioqJzo6dGV4dCBB UyBwYXNzd2QsCi0gICAgcGdfc2hhZG93LnZhbHVudGlsLAotICAgIHBnX3NoYWRvdy51c2Vjb25m aWcKKyAgICB2YWx1bnRpbCwKKyAgICB1c2Vjb25maWcKICAgIEZST00gcGdfc2hhZG93OwogcGdf dXNlcl9tYXBwaW5nc3wgU0VMRUNUIHUub2lkIEFTIHVtaWQsCiAgICAgcy5vaWQgQVMgc3J2aWQs CkBAIC0zMDUzLDcgKzMwNTMsNyBAQCBTRUxFQ1QgKiBGUk9NIHJ1bGVfdjE7CiAtLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAg ICAgIHwgcGxhaW4gICB8IAogVmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBydWxlX3QxLmEKKyBT RUxFQ1QgYQogICAgRlJPTSBydWxlX3QxOwogUnVsZXM6CiAgbmV3aW5zZXJ0cnVsZSBBUwpAQCAt MzA5Miw4ICszMDkyLDggQEAgYWx0ZXIgdGFibGUgcnVsZV92MSByZW5hbWUgY29sdW1uIGNvbHVt bjIgdG8gcTI7CiAgY29sdW1uMSB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgfCBwbGFpbiAgIHwgCiAgcTIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgCiBWaWV3IGRlZmluaXRpb246Ci0gU0VMRUNUICIq VkFMVUVTKiIuY29sdW1uMSwKLSAgICAiKlZBTFVFUyoiLmNvbHVtbjIgQVMgcTIKKyBTRUxFQ1Qg Y29sdW1uMSwKKyAgICBjb2x1bW4yIEFTIHEyCiAgICBGUk9NIChWQUxVRVMgKDEsMikpICIqVkFM VUVTKiI7CiAKIGRyb3AgdmlldyBydWxlX3YxOwpAQCAtMzEwNSw4ICszMTA1LDggQEAgY3JlYXRl IHZpZXcgcnVsZV92MSh4KSBhcyB2YWx1ZXMoMSwyKTsKICB4ICAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAKICBjb2x1bW4yIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAKIFZpZXcg ZGVmaW5pdGlvbjoKLSBTRUxFQ1QgIipWQUxVRVMqIi5jb2x1bW4xIEFTIHgsCi0gICAgIipWQUxV RVMqIi5jb2x1bW4yCisgU0VMRUNUIGNvbHVtbjEgQVMgeCwKKyAgICBjb2x1bW4yCiAgICBGUk9N IChWQUxVRVMgKDEsMikpICIqVkFMVUVTKiI7CiAKIGRyb3AgdmlldyBydWxlX3YxOwpAQCAtMzEx OCw4ICszMTE4LDggQEAgY3JlYXRlIHZpZXcgcnVsZV92MSh4KSBhcyBzZWxlY3QgKiBmcm9tICh2 YWx1ZXMoMSwyKSkgdjsKICB4ICAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IHBsYWluICAgfCAKICBjb2x1bW4yIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxF Q1Qgdi5jb2x1bW4xIEFTIHgsCi0gICAgdi5jb2x1bW4yCisgU0VMRUNUIGNvbHVtbjEgQVMgeCwK KyAgICBjb2x1bW4yCiAgICBGUk9NICggVkFMVUVTICgxLDIpKSB2OwogCiBkcm9wIHZpZXcgcnVs ZV92MTsKQEAgLTMxMzEsOCArMzEzMSw4IEBAIGNyZWF0ZSB2aWV3IHJ1bGVfdjEoeCkgYXMgc2Vs ZWN0ICogZnJvbSAodmFsdWVzKDEsMikpIHYocSx3KTsKICB4ICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8IAogIHcgICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgCiBWaWV3IGRl ZmluaXRpb246Ci0gU0VMRUNUIHYucSBBUyB4LAotICAgIHYudworIFNFTEVDVCBxIEFTIHgsCisg ICAgdwogICAgRlJPTSAoIFZBTFVFUyAoMSwyKSkgdihxLCB3KTsKIAogZHJvcCB2aWV3IHJ1bGVf djE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RhYmxlc2FtcGxlLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGFibGVzYW1wbGUub3V0CmluZGV4IDYwYmI0 ZThlM2UuLjlmZjQ2MTE2NDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dGFibGVzYW1wbGUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGFibGVzYW1w bGUub3V0CkBAIC03NCw3ICs3NCw3IEBAIENSRUFURSBWSUVXIHRlc3RfdGFibGVzYW1wbGVfdjIg QVMKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgCiBWaWV3IGRlZmluaXRpb246Ci0gU0VMRUNU IHRlc3RfdGFibGVzYW1wbGUuaWQKKyBTRUxFQ1QgaWQKICAgIEZST00gdGVzdF90YWJsZXNhbXBs ZSBUQUJMRVNBTVBMRSBzeXN0ZW0gKCgxMCAqIDIpKSBSRVBFQVRBQkxFICgyKTsKIAogXGQrIHRl c3RfdGFibGVzYW1wbGVfdjIKQEAgLTgzLDcgKzgzLDcgQEAgVmlldyBkZWZpbml0aW9uOgogLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCiAgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8IHBsYWluICAgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1QgdGVzdF90 YWJsZXNhbXBsZS5pZAorIFNFTEVDVCBpZAogICAgRlJPTSB0ZXN0X3RhYmxlc2FtcGxlIFRBQkxF U0FNUExFIHN5c3RlbSAoOTkpOwogCiAtLSBjaGVjayBhIHNhbXBsZWQgcXVlcnkgZG9lc24ndCBh ZmZlY3QgY3Vyc29yIGluIHByb2dyZXNzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3RyaWdnZXJzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMu b3V0CmluZGV4IGQzZTAyY2E2M2IuLjAwZmY1YmJmZTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdHJpZ2dlcnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdHJpZ2dlcnMub3V0CkBAIC0xMjc3LDggKzEyNzcsOCBAQCBEUk9QIFRSSUdHRVIgaW5zdGVh ZF9vZl9kZWxldGVfdHJpZyBPTiBtYWluX3ZpZXc7CiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAKICBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8IAogVmlldyBkZWZp bml0aW9uOgotIFNFTEVDVCBtYWluX3RhYmxlLmEsCi0gICAgbWFpbl90YWJsZS5iCisgU0VMRUNU IGEsCisgICAgYgogICAgRlJPTSBtYWluX3RhYmxlOwogVHJpZ2dlcnM6CiAgICAgYWZ0ZXJfZGVs X3N0bXRfdHJpZyBBRlRFUiBERUxFVEUgT04gbWFpbl92aWV3IEZPUiBFQUNIIFNUQVRFTUVOVCBF WEVDVVRFIEZVTkNUSU9OIHZpZXdfdHJpZ2dlcignYWZ0ZXJfdmlld19kZWxfc3RtdCcpCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQKaW5kZXggZDU3ZWVi NzYxYy4uYjQ5ZjA5MWQyZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91 cGRhdGFibGVfdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRh YmxlX3ZpZXdzLm91dApAQCAtMTkwMywxOSArMTkwMywxOSBAQCBDUkVBVEUgVklFVyByd192aWV3 MSBBUyBTRUxFQ1QgKiBGUk9NIGJhc2VfdGJsIFdIRVJFIGEgPCBiCiAgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAKICBiICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8IAog VmlldyBkZWZpbml0aW9uOgotIFNFTEVDVCBiYXNlX3RibC5hLAotICAgIGJhc2VfdGJsLmIKKyBT RUxFQ1QgYSwKKyAgICBiCiAgICBGUk9NIGJhc2VfdGJsCi0gIFdIRVJFIGJhc2VfdGJsLmEgPCBi YXNlX3RibC5iOworICBXSEVSRSBhIDwgYjsKIE9wdGlvbnM6IGNoZWNrX29wdGlvbj1sb2NhbAog CiBTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS52aWV3cyBXSEVSRSB0YWJsZV9uYW1l ID0gJ3J3X3ZpZXcxJzsKLSB0YWJsZV9jYXRhbG9nIHwgdGFibGVfc2NoZW1hIHwgdGFibGVfbmFt ZSB8ICAgICAgICAgIHZpZXdfZGVmaW5pdGlvbiAgICAgICAgICAgfCBjaGVja19vcHRpb24gfCBp c191cGRhdGFibGUgfCBpc19pbnNlcnRhYmxlX2ludG8gfCBpc190cmlnZ2VyX3VwZGF0YWJsZSB8 IGlzX3RyaWdnZXJfZGVsZXRhYmxlIHwgaXNfdHJpZ2dlcl9pbnNlcnRhYmxlX2ludG8gCi0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Npb24gICAgfCBwdWJsaWMg ICAgICAgfCByd192aWV3MSAgIHwgIFNFTEVDVCBiYXNlX3RibC5hLCAgICAgICAgICAgICAgICt8 IExPQ0FMICAgICAgICB8IFlFUyAgICAgICAgICB8IFlFUyAgICAgICAgICAgICAgICB8IE5PICAg ICAgICAgICAgICAgICAgIHwgTk8gICAgICAgICAgICAgICAgICAgfCBOTwotICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIGJhc2VfdGJsLmIgICAgICAgICAg ICAgICAgICAgICt8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAKLSAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgIEZST00gYmFzZV90 YmwgICAgICAgICAgICAgICAgICArfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgCi0gICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgIFdI RVJFIChiYXNlX3RibC5hIDwgYmFzZV90YmwuYik7IHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8IAorIHRhYmxlX2NhdGFsb2cgfCB0YWJsZV9zY2hlbWEgfCB0YWJsZV9u YW1lIHwgdmlld19kZWZpbml0aW9uICB8IGNoZWNrX29wdGlvbiB8IGlzX3VwZGF0YWJsZSB8IGlz X2luc2VydGFibGVfaW50byB8IGlzX3RyaWdnZXJfdXBkYXRhYmxlIHwgaXNfdHJpZ2dlcl9kZWxl dGFibGUgfCBpc190cmlnZ2VyX2luc2VydGFibGVfaW50byAKKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc2lvbiAgICB8IHB1YmxpYyAgICAgICB8IHJ3X3ZpZXcxICAgfCAgU0VMRUNUIGEsICAg ICAgK3wgTE9DQUwgICAgICAgIHwgWUVTICAgICAgICAgIHwgWUVTICAgICAgICAgICAgICAgIHwg Tk8gICAgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICAgICAgICAgICB8IE5PCisgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgYiAgICAgICAgICAgK3wg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgRlJPTSBiYXNlX3RibCt8ICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgV0hFUkUgKGEgPCBiKTsgfCAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIElOU0VSVCBJTlRPIHJ3X3ZpZXcx IFZBTFVFUygzLDQpOyAtLSBvawpAQCAtMTk1NiwxNyArMTk1NiwxNyBAQCBDUkVBVEUgVklFVyBy d192aWV3MiBBUyBTRUxFQ1QgKiBGUk9NIHJ3X3ZpZXcxIFdIRVJFIGEgPCAxMAogLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAg ICAgICB8IHBsYWluICAgfCAKIFZpZXcgZGVmaW5pdGlvbjoKLSBTRUxFQ1QgcndfdmlldzEuYQor IFNFTEVDVCBhCiAgICBGUk9NIHJ3X3ZpZXcxCi0gIFdIRVJFIHJ3X3ZpZXcxLmEgPCAxMDsKKyAg V0hFUkUgYSA8IDEwOwogT3B0aW9uczogY2hlY2tfb3B0aW9uPWNhc2NhZGVkCiAKIFNFTEVDVCAq IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnZpZXdzIFdIRVJFIHRhYmxlX25hbWUgPSAncndfdmll dzInOwotIHRhYmxlX2NhdGFsb2cgfCB0YWJsZV9zY2hlbWEgfCB0YWJsZV9uYW1lIHwgICAgICB2 aWV3X2RlZmluaXRpb24gICAgICAgfCBjaGVja19vcHRpb24gfCBpc191cGRhdGFibGUgfCBpc19p bnNlcnRhYmxlX2ludG8gfCBpc190cmlnZ2VyX3VwZGF0YWJsZSB8IGlzX3RyaWdnZXJfZGVsZXRh YmxlIHwgaXNfdHJpZ2dlcl9pbnNlcnRhYmxlX2ludG8gCi0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSByZWdyZXNzaW9uICAgIHwgcHVibGljICAgICAgIHwgcndfdmlldzIgICB8ICBTRUxF Q1QgcndfdmlldzEuYSAgICAgICAgK3wgQ0FTQ0FERUQgICAgIHwgWUVTICAgICAgICAgIHwgWUVT ICAgICAgICAgICAgICAgIHwgTk8gICAgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICAgICAg ICAgICB8IE5PCi0gICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICBGUk9NIHJ3X3ZpZXcxICAgICAgICAgICt8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAKLSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgV0hFUkUgKHJ3X3ZpZXcxLmEgPCAxMCk7IHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICB8IAorIHRhYmxlX2NhdGFsb2cgfCB0YWJsZV9zY2hlbWEgfCB0YWJsZV9uYW1l IHwgIHZpZXdfZGVmaW5pdGlvbiAgfCBjaGVja19vcHRpb24gfCBpc191cGRhdGFibGUgfCBpc19p bnNlcnRhYmxlX2ludG8gfCBpc190cmlnZ2VyX3VwZGF0YWJsZSB8IGlzX3RyaWdnZXJfZGVsZXRh YmxlIHwgaXNfdHJpZ2dlcl9pbnNlcnRhYmxlX2ludG8gCistLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzaW9uICAgIHwgcHVibGljICAgICAgIHwgcndfdmlldzIgICB8ICBTRUxFQ1QgYSAgICAg ICAgK3wgQ0FTQ0FERUQgICAgIHwgWUVTICAgICAgICAgIHwgWUVTICAgICAgICAgICAgICAgIHwg Tk8gICAgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICAgICAgICAgICB8IE5PCisgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICBGUk9NIHJ3X3ZpZXcxICt8 ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgV0hFUkUgKGEgPCAxMCk7IHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBJTlNFUlQgSU5U TyByd192aWV3MiBWQUxVRVMgKC01KTsgLS0gc2hvdWxkIGZhaWwKQEAgLTE5OTYsMTcgKzE5OTYs MTcgQEAgQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyByd192aWV3MiBBUyBTRUxFQ1QgKiBGUk9NIHJ3 X3ZpZXcxIFdIRVJFIGEgPCAxMAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAKIFZpZXcgZGVm aW5pdGlvbjoKLSBTRUxFQ1QgcndfdmlldzEuYQorIFNFTEVDVCBhCiAgICBGUk9NIHJ3X3ZpZXcx Ci0gIFdIRVJFIHJ3X3ZpZXcxLmEgPCAxMDsKKyAgV0hFUkUgYSA8IDEwOwogT3B0aW9uczogY2hl Y2tfb3B0aW9uPWxvY2FsCiAKIFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnZpZXdz IFdIRVJFIHRhYmxlX25hbWUgPSAncndfdmlldzInOwotIHRhYmxlX2NhdGFsb2cgfCB0YWJsZV9z Y2hlbWEgfCB0YWJsZV9uYW1lIHwgICAgICB2aWV3X2RlZmluaXRpb24gICAgICAgfCBjaGVja19v cHRpb24gfCBpc191cGRhdGFibGUgfCBpc19pbnNlcnRhYmxlX2ludG8gfCBpc190cmlnZ2VyX3Vw ZGF0YWJsZSB8IGlzX3RyaWdnZXJfZGVsZXRhYmxlIHwgaXNfdHJpZ2dlcl9pbnNlcnRhYmxlX2lu dG8gCi0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzaW9uICAgIHwgcHVibGlj ICAgICAgIHwgcndfdmlldzIgICB8ICBTRUxFQ1QgcndfdmlldzEuYSAgICAgICAgK3wgTE9DQUwg ICAgICAgIHwgWUVTICAgICAgICAgIHwgWUVTICAgICAgICAgICAgICAgIHwgTk8gICAgICAgICAg ICAgICAgICAgfCBOTyAgICAgICAgICAgICAgICAgICB8IE5PCi0gICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICBGUk9NIHJ3X3ZpZXcxICAgICAgICAgICt8ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAKLSAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgV0hFUkUgKHJ3X3ZpZXcxLmEgPCAxMCk7IHwg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8IAorIHRhYmxlX2NhdGFsb2cg fCB0YWJsZV9zY2hlbWEgfCB0YWJsZV9uYW1lIHwgIHZpZXdfZGVmaW5pdGlvbiAgfCBjaGVja19v cHRpb24gfCBpc191cGRhdGFibGUgfCBpc19pbnNlcnRhYmxlX2ludG8gfCBpc190cmlnZ2VyX3Vw ZGF0YWJsZSB8IGlzX3RyaWdnZXJfZGVsZXRhYmxlIHwgaXNfdHJpZ2dlcl9pbnNlcnRhYmxlX2lu dG8gCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uICAgIHwgcHVibGljICAgICAgIHwg cndfdmlldzIgICB8ICBTRUxFQ1QgYSAgICAgICAgK3wgTE9DQUwgICAgICAgIHwgWUVTICAgICAg ICAgIHwgWUVTICAgICAgICAgICAgICAgIHwgTk8gICAgICAgICAgICAgICAgICAgfCBOTyAgICAg ICAgICAgICAgICAgICB8IE5PCisgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICBGUk9NIHJ3X3ZpZXcxICt8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAKKyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgV0hFUkUgKGEgPCAxMCk7IHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICB8IAogKDEgcm93KQogCiBJTlNFUlQgSU5UTyByd192aWV3MiBWQUxVRVMgKC0xMCk7IC0tIG9r LCBidXQgbm90IGluIHZpZXcKQEAgLTIwMzcsMTYgKzIwMzcsMTYgQEAgQUxURVIgVklFVyByd192 aWV3MiBSRVNFVCAoY2hlY2tfb3B0aW9uKTsKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogIGEgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgCiBW aWV3IGRlZmluaXRpb246Ci0gU0VMRUNUIHJ3X3ZpZXcxLmEKKyBTRUxFQ1QgYQogICAgRlJPTSBy d192aWV3MQotICBXSEVSRSByd192aWV3MS5hIDwgMTA7CisgIFdIRVJFIGEgPCAxMDsKIAogU0VM RUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudmlld3MgV0hFUkUgdGFibGVfbmFtZSA9ICdy d192aWV3Mic7Ci0gdGFibGVfY2F0YWxvZyB8IHRhYmxlX3NjaGVtYSB8IHRhYmxlX25hbWUgfCAg ICAgIHZpZXdfZGVmaW5pdGlvbiAgICAgICB8IGNoZWNrX29wdGlvbiB8IGlzX3VwZGF0YWJsZSB8 IGlzX2luc2VydGFibGVfaW50byB8IGlzX3RyaWdnZXJfdXBkYXRhYmxlIHwgaXNfdHJpZ2dlcl9k ZWxldGFibGUgfCBpc190cmlnZ2VyX2luc2VydGFibGVfaW50byAKLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotIHJlZ3Jlc3Npb24gICAgfCBwdWJsaWMgICAgICAgfCByd192aWV3MiAgIHwg IFNFTEVDVCByd192aWV3MS5hICAgICAgICArfCBOT05FICAgICAgICAgfCBZRVMgICAgICAgICAg fCBZRVMgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICAgICAgICAgICB8IE5PICAgICAgICAg ICAgICAgICAgIHwgTk8KLSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgIEZST00gcndfdmlldzEgICAgICAgICAgK3wgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8IAotICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICBXSEVSRSAocndfdmlldzEuYSA8IDEwKTsgfCAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIHwgCisgdGFibGVfY2F0YWxvZyB8IHRhYmxlX3NjaGVtYSB8IHRhYmxl X25hbWUgfCAgdmlld19kZWZpbml0aW9uICB8IGNoZWNrX29wdGlvbiB8IGlzX3VwZGF0YWJsZSB8 IGlzX2luc2VydGFibGVfaW50byB8IGlzX3RyaWdnZXJfdXBkYXRhYmxlIHwgaXNfdHJpZ2dlcl9k ZWxldGFibGUgfCBpc190cmlnZ2VyX2luc2VydGFibGVfaW50byAKKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3Npb24gICAgfCBwdWJsaWMgICAgICAgfCByd192aWV3MiAgIHwgIFNFTEVDVCBh ICAgICAgICArfCBOT05FICAgICAgICAgfCBZRVMgICAgICAgICAgfCBZRVMgICAgICAgICAgICAg ICAgfCBOTyAgICAgICAgICAgICAgICAgICB8IE5PICAgICAgICAgICAgICAgICAgIHwgTk8KKyAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgIEZST00gcndfdmll dzEgK3wgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICBXSEVSRSAoYSA8IDEwKTsgfCAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIElOU0VS VCBJTlRPIHJ3X3ZpZXcyIFZBTFVFUyAoMzApOyAtLSBvaywgYnV0IG5vdCBpbiB2aWV3CkBAIC0y MDY4LDE1ICsyMDY4LDE1IEBAIENSRUFURSBWSUVXIHJ3X3ZpZXcxIEFTIFNFTEVDVCAqIEZST00g YmFzZV90YmwgV0lUSCBDSEVDSyBPUFRJT047CiBDUkVBVEUgVklFVyByd192aWV3MiBBUyBTRUxF Q1QgKiBGUk9NIHJ3X3ZpZXcxIFdIRVJFIGEgPiAwOwogQ1JFQVRFIFZJRVcgcndfdmlldzMgQVMg U0VMRUNUICogRlJPTSByd192aWV3MiBXSVRIIENIRUNLIE9QVElPTjsKIFNFTEVDVCAqIEZST00g aW5mb3JtYXRpb25fc2NoZW1hLnZpZXdzIFdIRVJFIHRhYmxlX25hbWUgTElLRSBFJ3J3XFxfdmll d18nIE9SREVSIEJZIHRhYmxlX25hbWU7Ci0gdGFibGVfY2F0YWxvZyB8IHRhYmxlX3NjaGVtYSB8 IHRhYmxlX25hbWUgfCAgICAgIHZpZXdfZGVmaW5pdGlvbiAgICAgIHwgY2hlY2tfb3B0aW9uIHwg aXNfdXBkYXRhYmxlIHwgaXNfaW5zZXJ0YWJsZV9pbnRvIHwgaXNfdHJpZ2dlcl91cGRhdGFibGUg fCBpc190cmlnZ2VyX2RlbGV0YWJsZSB8IGlzX3RyaWdnZXJfaW5zZXJ0YWJsZV9pbnRvIAotLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzaW9uICAgIHwgcHVibGljICAgICAgIHwg cndfdmlldzEgICB8ICBTRUxFQ1QgYmFzZV90YmwuYSAgICAgICArfCBDQVNDQURFRCAgICAgfCBZ RVMgICAgICAgICAgfCBZRVMgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICAgICAgICAgICB8 IE5PICAgICAgICAgICAgICAgICAgIHwgTk8KLSAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgIEZST00gYmFzZV90Ymw7ICAgICAgICAgfCAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcmVncmVzc2lvbiAgICB8IHB1YmxpYyAgICAg ICB8IHJ3X3ZpZXcyICAgfCAgU0VMRUNUIHJ3X3ZpZXcxLmEgICAgICAgK3wgTk9ORSAgICAgICAg IHwgWUVTICAgICAgICAgIHwgWUVTICAgICAgICAgICAgICAgIHwgTk8gICAgICAgICAgICAgICAg ICAgfCBOTyAgICAgICAgICAgICAgICAgICB8IE5PCi0gICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICBGUk9NIHJ3X3ZpZXcxICAgICAgICAgK3wgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8IAotICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICBXSEVSRSAocndfdmlldzEuYSA+IDApOyB8ICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAKLSByZWdyZXNzaW9uICAgIHwgcHVibGlj ICAgICAgIHwgcndfdmlldzMgICB8ICBTRUxFQ1QgcndfdmlldzIuYSAgICAgICArfCBDQVNDQURF RCAgICAgfCBZRVMgICAgICAgICAgfCBZRVMgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICAg ICAgICAgICB8IE5PICAgICAgICAgICAgICAgICAgIHwgTk8KLSAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgIEZST00gcndfdmlldzI7ICAgICAgICAgfCAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgCisgdGFibGVfY2F0YWxvZyB8IHRh YmxlX3NjaGVtYSB8IHRhYmxlX25hbWUgfCAgdmlld19kZWZpbml0aW9uICB8IGNoZWNrX29wdGlv biB8IGlzX3VwZGF0YWJsZSB8IGlzX2luc2VydGFibGVfaW50byB8IGlzX3RyaWdnZXJfdXBkYXRh YmxlIHwgaXNfdHJpZ2dlcl9kZWxldGFibGUgfCBpc190cmlnZ2VyX2luc2VydGFibGVfaW50byAK Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb24gICAgfCBwdWJsaWMgICAgICAgfCByd192 aWV3MSAgIHwgIFNFTEVDVCBhICAgICAgICArfCBDQVNDQURFRCAgICAgfCBZRVMgICAgICAgICAg fCBZRVMgICAgICAgICAgICAgICAgfCBOTyAgICAgICAgICAgICAgICAgICB8IE5PICAgICAgICAg ICAgICAgICAgIHwgTk8KKyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgIEZST00gYmFzZV90Ymw7IHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICB8IAorIHJlZ3Jlc3Npb24gICAgfCBwdWJsaWMgICAgICAgfCByd192aWV3MiAgIHwgIFNF TEVDVCBhICAgICAgICArfCBOT05FICAgICAgICAgfCBZRVMgICAgICAgICAgfCBZRVMgICAgICAg ICAgICAgICAgfCBOTyAgICAgICAgICAgICAgICAgICB8IE5PICAgICAgICAgICAgICAgICAgIHwg Tk8KKyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgIEZST00g cndfdmlldzEgK3wgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8IAorICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICBXSEVSRSAoYSA+IDAp OyAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgCisgcmVncmVzc2lv biAgICB8IHB1YmxpYyAgICAgICB8IHJ3X3ZpZXczICAgfCAgU0VMRUNUIGEgICAgICAgICt8IENB U0NBREVEICAgICB8IFlFUyAgICAgICAgICB8IFlFUyAgICAgICAgICAgICAgICB8IE5PICAgICAg ICAgICAgICAgICAgIHwgTk8gICAgICAgICAgICAgICAgICAgfCBOTworICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgRlJPTSByd192aWV3MjsgfCAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMyByb3dzKQogCiBJTlNFUlQgSU5U TyByd192aWV3MSBWQUxVRVMgKC0xKTsgLS0gb2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2luZG93Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2luZG93 Lm91dAppbmRleCBiYjlmZjdmMDdiLi41ZTQ2MTJmZmYxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3dpbmRvdy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC93aW5kb3cub3V0CkBAIC0xMTk1LDEwICsxMTk1LDEwIEBAIFNFTEVDVCAqIEZST00gdl93aW5k b3c7CiAoMTAgcm93cykKIAogU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X3dpbmRvdycpOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSAgU0VMRUNUIGkuaSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBzdW0oaS5pKSBPVkVSIChP UkRFUiBCWSBpLmkgUk9XUyBCRVRXRUVOIDEgUFJFQ0VESU5HIEFORCAxIEZPTExPV0lORykgQVMg c3VtX3Jvd3MrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdk ZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgU0VMRUNUIGksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHN1bShpKSBPVkVSIChP UkRFUiBCWSBpIFJPV1MgQkVUV0VFTiAxIFBSRUNFRElORyBBTkQgMSBGT0xMT1dJTkcpIEFTIHN1 bV9yb3dzKwogICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBpKGkpOwogKDEgcm93KQog CkBAIC0xMjIxLDEwICsxMjIxLDEwIEBAIFNFTEVDVCAqIEZST00gdl93aW5kb3c7CiAoMTAgcm93 cykKIAogU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2X3dpbmRvdycpOwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBpLmksICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwotICAgICBzdW0oaS5pKSBPVkVSIChPUkRFUiBCWSBp LmkgUk9XUyBCRVRXRUVOIDEgUFJFQ0VESU5HIEFORCAxIEZPTExPV0lORyBFWENMVURFIENVUlJF TlQgUk9XKSBBUyBzdW1fcm93cysKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgU0VMRUNUIGksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAg c3VtKGkpIE9WRVIgKE9SREVSIEJZIGkgUk9XUyBCRVRXRUVOIDEgUFJFQ0VESU5HIEFORCAxIEZP TExPV0lORyBFWENMVURFIENVUlJFTlQgUk9XKSBBUyBzdW1fcm93cysKICAgICBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMCkgaShpKTsKICgxIHJvdykKIApAQCAtMTI0NywxMCArMTI0NywxMCBA QCBTRUxFQ1QgKiBGUk9NIHZfd2luZG93OwogKDEwIHJvd3MpCiAKIFNFTEVDVCBwZ19nZXRfdmll d2RlZigndl93aW5kb3cnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBT RUxFQ1QgaS5pLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgc3VtKGkuaSkg T1ZFUiAoT1JERVIgQlkgaS5pIFJPV1MgQkVUV0VFTiAxIFBSRUNFRElORyBBTkQgMSBGT0xMT1dJ TkcgRVhDTFVERSBHUk9VUCkgQVMgc3VtX3Jvd3MrCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgIFNFTEVDVCBpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHN1bShpKSBP VkVSIChPUkRFUiBCWSBpIFJPV1MgQkVUV0VFTiAxIFBSRUNFRElORyBBTkQgMSBGT0xMT1dJTkcg RVhDTFVERSBHUk9VUCkgQVMgc3VtX3Jvd3MrCiAgICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTApIGkoaSk7CiAoMSByb3cpCiAKQEAgLTEyNzMsMTAgKzEyNzMsMTAgQEAgU0VMRUNUICogRlJP TSB2X3dpbmRvdzsKICgxMCByb3dzKQogCiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfd2luZG93 Jyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3Zp ZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBpLmksICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHN1bShpLmkpIE9WRVIgKE9SREVSIEJZIGku aSBST1dTIEJFVFdFRU4gMSBQUkVDRURJTkcgQU5EIDEgRk9MTE9XSU5HIEVYQ0xVREUgVElFUykg QVMgc3VtX3Jvd3MrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBn X2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaSwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgIHN1bShpKSBPVkVSIChPUkRFUiBCWSBpIFJPV1Mg QkVUV0VFTiAxIFBSRUNFRElORyBBTkQgMSBGT0xMT1dJTkcgRVhDTFVERSBUSUVTKSBBUyBzdW1f cm93cysKICAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgaShpKTsKICgxIHJvdykKIApA QCAtMTI5OSwxMCArMTI5OSwxMCBAQCBTRUxFQ1QgKiBGUk9NIHZfd2luZG93OwogKDEwIHJvd3Mp CiAKIFNFTEVDVCBwZ19nZXRfdmlld2RlZigndl93aW5kb3cnKTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIFNFTEVDVCBp LmksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKLSAgICAgc3VtKGkuaSkgT1ZFUiAoT1JERVIgQlkgaS5pIFJP V1MgQkVUV0VFTiAxIFBSRUNFRElORyBBTkQgMSBGT0xMT1dJTkcpIEFTIHN1bV9yb3dzKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNF TEVDVCBpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICBzdW0oaSkgT1ZFUiAoT1JERVIgQlkgaSBST1dT IEJFVFdFRU4gMSBQUkVDRURJTkcgQU5EIDEgRk9MTE9XSU5HKSBBUyBzdW1fcm93cysKICAgICBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgaShpKTsKICgxIHJvdykKIApAQCAtMTMyNCwxMCAr MTMyNCwxMCBAQCBTRUxFQ1QgKiBGUk9NIHZfd2luZG93OwogKDEwIHJvd3MpCiAKIFNFTEVDVCBw Z19nZXRfdmlld2RlZigndl93aW5kb3cnKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICBTRUxFQ1QgaS5pLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKLSAgICAgc3VtKGkuaSkgT1ZFUiAoT1JERVIgQlkgaS5pIEdST1VQUyBC RVRXRUVOIDEgUFJFQ0VESU5HIEFORCAxIEZPTExPV0lORykgQVMgc3VtX3Jvd3MrCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNF TEVDVCBpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHN1bShpKSBPVkVSIChPUkRFUiBCWSBpIEdS T1VQUyBCRVRXRUVOIDEgUFJFQ0VESU5HIEFORCAxIEZPTExPV0lORykgQVMgc3VtX3Jvd3MrCiAg ICAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIGkoaSk7CiAoMSByb3cpCiAKQEAgLTEzMzYs MTAgKzEzMzYsMTAgQEAgQ1JFQVRFIFRFTVAgVklFVyB2X3dpbmRvdyBBUwogCVNFTEVDVCBpLCBt aW4oaSkgb3ZlciAob3JkZXIgYnkgaSByYW5nZSBiZXR3ZWVuICcxIGRheScgcHJlY2VkaW5nIGFu ZCAnMTAgZGF5cycgZm9sbG93aW5nKSBhcyBtaW5faQogICBGUk9NIGdlbmVyYXRlX3Nlcmllcyhu b3coKSwgbm93KCkrJzEwMCBkYXlzJzo6aW50ZXJ2YWwsICcxIGhvdXInKSBpOwogU0VMRUNUIHBn X2dldF92aWV3ZGVmKCd2X3dpbmRvdycpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgU0VMRUNU IGkuaSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KwotICAgICBtaW4oaS5pKSBPVkVSIChPUkRFUiBCWSBpLmkgUkFOR0UgQkVUV0VFTiAnQCAxIGRh eSc6OmludGVydmFsIFBSRUNFRElORyBBTkQgJ0AgMTAgZGF5cyc6OmludGVydmFsIEZPTExPV0lO RykgQVMgbWluX2krCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNUIGksICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIG1pbihpKSBPVkVSIChPUkRF UiBCWSBpIFJBTkdFIEJFVFdFRU4gJ0AgMSBkYXknOjppbnRlcnZhbCBQUkVDRURJTkcgQU5EICdA IDEwIGRheXMnOjppbnRlcnZhbCBGT0xMT1dJTkcpIEFTIG1pbl9pKwogICAgIEZST00gZ2VuZXJh dGVfc2VyaWVzKG5vdygpLCAobm93KCkgKyAnQCAxMDAgZGF5cyc6OmludGVydmFsKSwgJ0AgMSBo b3VyJzo6aW50ZXJ2YWwpIGkoaSk7CiAoMSByb3cpCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvd2l0aC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGgu b3V0CmluZGV4IGZmNzZhZDRkNmUuLmY2Zjc4ZWM1MmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvd2l0aC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93 aXRoLm91dApAQCAtMzk2LDkgKzM5Niw5IEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigndnN1YmRl cGFydG1lbnQnOjpyZWdjbGFzcyk7CiAgICAgICAgICAgICAgc3ViZGVwYXJ0bWVudCBzZCAgICAg ICAgICAgICAgICAgKwogICAgICAgICAgICBXSEVSRSAoZC5wYXJlbnRfZGVwYXJ0bWVudCA9IHNk LmlkKSsKICAgICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0g IFNFTEVDVCBzdWJkZXBhcnRtZW50LmlkLCAgICAgICAgICAgICAgICAgICAgKwotICAgICBzdWJk ZXBhcnRtZW50LnBhcmVudF9kZXBhcnRtZW50LCAgICAgICAgICsKLSAgICAgc3ViZGVwYXJ0bWVu dC5uYW1lICAgICAgICAgICAgICAgICAgICAgICArCisgIFNFTEVDVCBpZCwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICBwYXJlbnRfZGVwYXJ0bWVudCwgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgICAgbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCiAgICAgRlJPTSBzdWJkZXBhcnRtZW50OwogKDEgcm93KQogCkBAIC00MTksOSArNDE5 LDkgQEAgU0VMRUNUIHBnX2dldF92aWV3ZGVmKCd2c3ViZGVwYXJ0bWVudCc6OnJlZ2NsYXNzLCB0 cnVlKTsKICAgICAgICAgICAgICBzdWJkZXBhcnRtZW50IHNkICAgICAgICAgICAgICAgKwogICAg ICAgICAgICBXSEVSRSBkLnBhcmVudF9kZXBhcnRtZW50ID0gc2QuaWQrCiAgICAgICAgICApICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgU0VMRUNUIHN1YmRlcGFydG1lbnQu aWQsICAgICAgICAgICAgICAgICAgKwotICAgICBzdWJkZXBhcnRtZW50LnBhcmVudF9kZXBhcnRt ZW50LCAgICAgICArCi0gICAgIHN1YmRlcGFydG1lbnQubmFtZSAgICAgICAgICAgICAgICAgICAg ICsKKyAgU0VMRUNUIGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBw YXJlbnRfZGVwYXJ0bWVudCwgICAgICAgICAgICAgICAgICAgICArCisgICAgIG5hbWUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICBGUk9NIHN1YmRlcGFydG1lbnQ7CiAo MSByb3cpCiAKQEAgLTQ0Niw3ICs0NDYsNyBAQCBWaWV3IGRlZmluaXRpb246CiAgICAgICAgICAg IEZST00gdCB0XzEKICAgICAgICAgICBXSEVSRSB0XzEubiA8IDEwMAogICAgICAgICApCi0gU0VM RUNUIHN1bSh0Lm4pIEFTIHN1bQorIFNFTEVDVCBzdW0obikgQVMgc3VtCiAgICBGUk9NIHQ7CiAK IC0tIGNvcm5lciBjYXNlIGluIHdoaWNoIHN1Yi1XSVRIIGdldHMgaW5pdGlhbGl6ZWQgZmlyc3QK QEAgLTg3Miw5ICs4NzIsOSBAQCBzZWxlY3QgcGdfZ2V0X3ZpZXdkZWYoJ3Zfc2VhcmNoJyk7CiAg ICAgICAgICAgICAgc2VhcmNoX2dyYXBoIHNnICAgICAgICAgICAgICAgICAgICsKICAgICAgICAg ICAgV0hFUkUgKGcuZiA9IHNnLnQpICAgICAgICAgICAgICAgICAgKwogICAgICAgICAgKSBTRUFS Q0ggREVQVEggRklSU1QgQlkgZiwgdCBTRVQgc2VxICArCi0gIFNFTEVDVCBzZWFyY2hfZ3JhcGgu ZiwgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgc2VhcmNoX2dyYXBoLnQsICAgICAgICAg ICAgICAgICAgICAgICAgICAgKwotICAgICBzZWFyY2hfZ3JhcGgubGFiZWwgICAgICAgICAgICAg ICAgICAgICAgICArCisgIFNFTEVDVCBmLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsKKyAgICAgdCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICBsYWJlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgRlJP TSBzZWFyY2hfZ3JhcGg7CiAoMSByb3cpCiAKQEAgLTEzOTQsOSArMTM5NCw5IEBAIHNlbGVjdCBw Z19nZXRfdmlld2RlZigndl9jeWNsZTEnKTsKICAgICAgICAgICAgICBzZWFyY2hfZ3JhcGggc2cg ICAgICAgICAgICAgICAgICAgKwogICAgICAgICAgICBXSEVSRSAoZy5mID0gc2cudCkgICAgICAg ICAgICAgICAgICArCiAgICAgICAgICApIENZQ0xFIGYsIHQgU0VUIGlzX2N5Y2xlIFVTSU5HIHBh dGggICsKLSAgU0VMRUNUIHNlYXJjaF9ncmFwaC5mLCAgICAgICAgICAgICAgICAgICAgICAgKwot ICAgICBzZWFyY2hfZ3JhcGgudCwgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAgIHNl YXJjaF9ncmFwaC5sYWJlbCAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgU0VMRUNUIGYsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB0LCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGxhYmVsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKICAgICBGUk9NIHNlYXJjaF9ncmFwaDsKICgxIHJvdykKIApA QCAtMTQxNiw5ICsxNDE2LDkgQEAgc2VsZWN0IHBnX2dldF92aWV3ZGVmKCd2X2N5Y2xlMicpOwog ICAgICAgICAgICAgIHNlYXJjaF9ncmFwaCBzZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKICAgICAgICAgICAgV0hFUkUgKGcuZiA9IHNnLnQpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgICApIENZ Q0xFIGYsIHQgU0VUIGlzX2N5Y2xlIFRPICdZJzo6dGV4dCBERUZBVUxUICdOJzo6dGV4dCBVU0lO RyBwYXRoKwotICBTRUxFQ1Qgc2VhcmNoX2dyYXBoLmYsICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKLSAgICAgc2VhcmNoX2dyYXBoLnQsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAg IHNlYXJjaF9ncmFwaC5sYWJlbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKworICBTRUxFQ1QgZiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgdCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgIGxhYmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgIEZST00gc2VhcmNoX2dyYXBoOwogKDEgcm93 KQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbC5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3htbC5vdXQKaW5kZXggNTViNjVlZjMyNC4uYmI5OTRhMDVk ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC94bWwub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sLm91dApAQCAtNjAzLDEyICs2MDMsMTIgQEAgQ1JF QVRFIFZJRVcgeG1sdmlldzggQVMgU0VMRUNUIHhtbHNlcmlhbGl6ZShjb250ZW50ICdnb29kJyBh cyBjaGFyKDEwKSk7CiBDUkVBVEUgVklFVyB4bWx2aWV3OSBBUyBTRUxFQ1QgeG1sc2VyaWFsaXpl KGNvbnRlbnQgJ2dvb2QnIGFzIHRleHQpOwogU0VMRUNUIHRhYmxlX25hbWUsIHZpZXdfZGVmaW5p dGlvbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS52aWV3cwogICBXSEVSRSB0YWJsZV9uYW1lIExJ S0UgJ3htbHZpZXclJyBPUkRFUiBCWSAxOwotIHRhYmxlX25hbWUgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld19kZWZpbml0aW9uICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgdGFibGVfbmFtZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZpZXdfZGVmaW5pdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgeG1sdmlldzEgICB8ICBTRUxFQ1QgeG1sY29tbWVudCgndGVz dCc6OnRleHQpIEFTIHhtbGNvbW1lbnQ7CiAgeG1sdmlldzIgICB8ICBTRUxFQ1QgWE1MQ09OQ0FU KCdoZWxsbyc6OnhtbCwgJ3lvdSc6OnhtbCkgQVMgInhtbGNvbmNhdCI7CiAgeG1sdmlldzMgICB8 ICBTRUxFQ1QgWE1MRUxFTUVOVChOQU1FIGVsZW1lbnQsIFhNTEFUVFJJQlVURVMoMSBBUyAiOm9u ZToiLCAnZGV1Y2UnIEFTIHR3byksICdjb250ZW50JicpIEFTICJ4bWxlbGVtZW50IjsKLSB4bWx2 aWV3NCAgIHwgIFNFTEVDVCBYTUxFTEVNRU5UKE5BTUUgZW1wbG95ZWUsIFhNTEZPUkVTVChlbXAu bmFtZSBBUyBuYW1lLCBlbXAuYWdlIEFTIGFnZSwgZW1wLnNhbGFyeSBBUyBwYXkpKSBBUyAieG1s ZWxlbWVudCIrCisgeG1sdmlldzQgICB8ICBTRUxFQ1QgWE1MRUxFTUVOVChOQU1FIGVtcGxveWVl LCBYTUxGT1JFU1QobmFtZSBBUyBuYW1lLCBhZ2UgQVMgYWdlLCBzYWxhcnkgQVMgcGF5KSkgQVMg InhtbGVsZW1lbnQiICAgICArCiAgICAgICAgICAgICB8ICAgIEZST00gZW1wOwogIHhtbHZpZXc1 ICAgfCAgU0VMRUNUIFhNTFBBUlNFKENPTlRFTlQgJzxhYmM+eDwvYWJjPic6OnRleHQgU1RSSVAg V0hJVEVTUEFDRSkgQVMgInhtbHBhcnNlIjsKICB4bWx2aWV3NiAgIHwgIFNFTEVDVCBYTUxQSShO QU1FIGZvbywgJ2Jhcic6OnRleHQpIEFTICJ4bWxwaSI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3htbF8yLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQveG1s XzIub3V0CmluZGV4IDA0ODQyNjAyODEuLjk3NGIxNGY4NTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQveG1sXzIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQveG1sXzIub3V0CkBAIC01ODMsMTIgKzU4MywxMiBAQCBDUkVBVEUgVklFVyB4bWx2aWV3OCBB UyBTRUxFQ1QgeG1sc2VyaWFsaXplKGNvbnRlbnQgJ2dvb2QnIGFzIGNoYXIoMTApKTsKIENSRUFU RSBWSUVXIHhtbHZpZXc5IEFTIFNFTEVDVCB4bWxzZXJpYWxpemUoY29udGVudCAnZ29vZCcgYXMg dGV4dCk7CiBTRUxFQ1QgdGFibGVfbmFtZSwgdmlld19kZWZpbml0aW9uIEZST00gaW5mb3JtYXRp b25fc2NoZW1hLnZpZXdzCiAgIFdIRVJFIHRhYmxlX25hbWUgTElLRSAneG1sdmlldyUnIE9SREVS IEJZIDE7Ci0gdGFibGVfbmFtZSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2aWV3X2RlZmluaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0YWJsZV9uYW1lIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld19kZWZpbml0aW9u ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICB4bWx2aWV3MSAgIHwgIFNFTEVDVCB4bWxjb21tZW50KCd0ZXN0Jzo6dGV4dCkgQVMgeG1sY29t bWVudDsKICB4bWx2aWV3MiAgIHwgIFNFTEVDVCBYTUxDT05DQVQoJ2hlbGxvJzo6eG1sLCAneW91 Jzo6eG1sKSBBUyAieG1sY29uY2F0IjsKICB4bWx2aWV3MyAgIHwgIFNFTEVDVCBYTUxFTEVNRU5U KE5BTUUgZWxlbWVudCwgWE1MQVRUUklCVVRFUygxIEFTICI6b25lOiIsICdkZXVjZScgQVMgdHdv KSwgJ2NvbnRlbnQmJykgQVMgInhtbGVsZW1lbnQiOwotIHhtbHZpZXc0ICAgfCAgU0VMRUNUIFhN TEVMRU1FTlQoTkFNRSBlbXBsb3llZSwgWE1MRk9SRVNUKGVtcC5uYW1lIEFTIG5hbWUsIGVtcC5h Z2UgQVMgYWdlLCBlbXAuc2FsYXJ5IEFTIHBheSkpIEFTICJ4bWxlbGVtZW50IisKKyB4bWx2aWV3 NCAgIHwgIFNFTEVDVCBYTUxFTEVNRU5UKE5BTUUgZW1wbG95ZWUsIFhNTEZPUkVTVChuYW1lIEFT IG5hbWUsIGFnZSBBUyBhZ2UsIHNhbGFyeSBBUyBwYXkpKSBBUyAieG1sZWxlbWVudCIgICAgICsK ICAgICAgICAgICAgIHwgICAgRlJPTSBlbXA7CiAgeG1sdmlldzUgICB8ICBTRUxFQ1QgWE1MUEFS U0UoQ09OVEVOVCAnPGFiYz54PC9hYmM+Jzo6dGV4dCBTVFJJUCBXSElURVNQQUNFKSBBUyAieG1s cGFyc2UiOwogIHhtbHZpZXc2ICAgfCAgU0VMRUNUIFhNTFBJKE5BTUUgZm9vLCAnYmFyJzo6dGV4 dCkgQVMgInhtbHBpIjsKLS0gCjIuMjQuMQoK --00000000000022b4d005dadd53b0 Content-Type: application/octet-stream; name="v10-0001-Rework-query-relation-permission-checking.patch" Content-Disposition: attachment; filename="v10-0001-Rework-query-relation-permission-checking.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l137vczw1 RnJvbSAyMDcyNDFjZGEwMWRlOTM2YmM4ZjhhNjI0YTJjM2I0ODY5NzVmZWI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0bGFuIDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4KRGF0 ZTogV2VkLCAyMSBKdWwgMjAyMSAyMTozMzoxOSArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjEwIDEv Ml0gUmV3b3JrIHF1ZXJ5IHJlbGF0aW9uIHBlcm1pc3Npb24gY2hlY2tpbmcKCkN1cnJlbnRseSwg aW5mb3JtYXRpb24gYWJvdXQgdGhlIHBlcm1pc3Npb25zIHRvIGJlIGNoZWNrZWQgb24KcmVsYXRp b25zIG1lbnRpb25lZCBpbiBhIHF1ZXJ5IGlzIHN0b3JlZCBpbiB0aGVpciByYW5nZSB0YWJsZSBl bnRyaWVzLgpTbyB0aGUgZXhlY3V0b3IgbXVzdCBzY2FuIHRoZSBlbnRpcmUgcmFuZ2UgdGFibGUg dG8gbG9vayBmb3IgYW55ClJURV9SRUxBVElPTiBlbnRyaWVzIHRvIGhhdmUgcGVybWlzc2lvbnMg Y2hlY2tlZC4gIFRoaXMgYXJyYW5nZW1lbnQKbWFrZXMgcGVybWlzc2lvbnMtY2hlY2tpbmcgbmVl ZGxlc3NseSBleHBlbnNpdmUgd2hlbiBtYW55IGluaGVyaXRhbmNlCmNoaWxkcmVuIGFyZSBhZGRl ZCB0byB0aGUgcmFuZ2UgcmFuZ2UsIGJlY2F1c2Ugd2hpbGUgdGhlaXIgcGVybWlzc2lvbnMKbmVl ZCBub3QgYmUgY2hlY2tlZCwgdGhlIG9ubHkgd2F5IHRvIGZpbmQgdGhhdCBvdXQgaXMgYnkgc2Vl aW5nCnJlcXVpcmVkUGVybXMgPT0gMCBpbiB0aGUgdGhlaXIgUlRFcy4KClRoaXMgY29tbWl0IG1v dmVzIHRoZSBwZXJtaXNzaW9uIGNoZWNraW5nIGluZm9ybWF0aW9uIG91dCBvZiB0aGUKcmFuZ2Ug dGFibGUgZW50cmllcyBpbnRvIGEgbmV3IHBsYW4gbm9kZSBjYWxsZWQgUmVsUGVybWlzc2lvbklu Zm8uCkV2ZXJ5IHRvcC1sZXZlbCAoaW5oZXJpdGFuY2UgInJvb3QiKSBSVEVfUkVMQVRJT04gZW50 cnkgaW4gdGhlIHJhbmdlCnRhYmxlIGdldHMgb25lIGFuZCBhIGxpc3Qgb2YgdGhvc2UgaXMgbWFp bnRhaW5lZCBhbG9uZ3NpZGUgdGhlIHJhbmdlCnRhYmxlLiAgVGhlIGxpc3QgaXMgaW5pdGlhbGl6 ZWQgYnkgdGhlIHBhcnNlciB3aGVuIGluaXRpYWxpemluZyB0aGUKcmFuZ2UgdGFibGUuICBUaGUg cmV3cml0ZXIgY2FuIGFkZCBtb3JlIGVudHJpZXMgdG8gaXQgYXMgcnVsZXMvdmlld3MKYXJlIGV4 cGFuZGVkLiAgRmluYWxseSwgdGhlIHBsYW5uZXIgY29tYmluZXMgdGhlIGxpc3RzIG9mIHRoZQpp bmRpdmlkdWFsIHN1YnF1ZXJpZXMgaW50byBvbmUgZmxhdCBsaXN0IHRoYXQgaXMgcGFzc2VkIGRv d24gdG8gdGhlCmV4ZWN1dG9yLgoKVG8gbWFrZSBpdCBxdWljayB0byBmaW5kIHRoZSBSZWxQZXJt aXNzaW9uSW5mbyBlbnRyeSBiZWxvbmdpbmcgdG8gYQpnaXZlbiByZWxhdGlvbiwgUmFuZ2VUYmxF bnRyeSBnZXRzIGEgbmV3IEluZGV4IGZpZWxkICdwZXJtaW5mb2luZGV4Jwp0aGF0IHN0b3JlcyB0 aGUgZW50cnkncyBpbmRleCBpbiB0aGUgcXVlcnkncyBsaXN0IG9mClJlbFBlcm1pc3Npb25JbmZv cy4KLS0tCiBjb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYyAgICAgICAgIHwgIDgx ICsrKystLQogY29udHJpYi9zZXBnc3FsL2RtbC5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0 MiArKy0KIGNvbnRyaWIvc2VwZ3NxbC9ob29rcy5jICAgICAgICAgICAgICAgICAgICAgfCAgIDYg Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYXR0bWFwLmMgICAgICAgICAgfCAgMTMgKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwY29udmVydC5jICAgICAgfCAgIDIgKy0KIHNy Yy9iYWNrZW5kL2NhdGFsb2cvcGFydGl0aW9uLmMgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHkuYyAgICAgICAgICAgICAgICAgfCAgMTggKy0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMgICAgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICB8ICAyNCArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmlldy5jICAgICAgICAgICAgICAgICB8ICAgNCAtCiBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjTWFpbi5jICAgICAgICAgICAgIHwgMTA1ICsrKystLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNQYXJhbGxlbC5jICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1BhcnRpdGlvbi5jICAgICAgICB8ICAxMiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0 aWxzLmMgICAgICAgICAgICB8IDE1OSArKysrKysrLS0tLQogc3JjL2JhY2tlbmQvbm9kZXMvY29w eWZ1bmNzLmMgICAgICAgICAgICAgICB8ICAzMiArKy0KIHNyYy9iYWNrZW5kL25vZGVzL2VxdWFs ZnVuY3MuYyAgICAgICAgICAgICAgfCAgMTcgKy0KIHNyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNz LmMgICAgICAgICAgICAgICAgfCAgMjkgKy0KIHNyYy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5j ICAgICAgICAgICAgICAgfCAgMjMgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0 ZXBsYW4uYyAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIu YyAgICAgICAgfCAgIDYgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jICAg ICAgICB8IDEyMyArKystLS0tLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3N1YnNlbGVj dC5jICAgICAgfCAgIDUgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVl LmMgICB8ICAxMCArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9pbmhlcml0LmMgICAgICAg IHwgMTcwICsrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcmVsbm9kZS5j ICAgICAgICB8ICAgOSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAg ICAgICB8ICA2MiArKystLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jICAgICAg ICAgICB8ICAgOSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAg ICB8IDI4OSArKysrKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jICAgICAgICAgICB8ICAxOSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYyAgICAgICAgICB8ICAgOSArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93 b3JrZXIuYyAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdv dXRwdXQuYyB8ICAgMiArLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMgICAg ICAgICB8ICAxNSArLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jICAgICAg ICB8IDE4MiArKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL3Jld3JpdGUvcm93c2VjdXJpdHkuYyAg ICAgICAgICAgfCAgMjQgKy0KIHNyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRfc3RhdHMu YyAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jICAgICAg ICAgfCAgMzQgKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYyAgICAgICAgICAg IHwgIDE5ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvYXR0bWFwLmggICAgICAgICAgICAgICAgIHwg ICA2ICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oICAgIHwgICAz ICstCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgICAgICAgIHwgICA3ICst CiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgIHwgICA5ICsKIHNy Yy9pbmNsdWRlL25vZGVzL25vZGVzLmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICB8ICA4NyArKystLS0KIHNyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9pbmNs dWRlL25vZGVzL3BsYW5ub2Rlcy5oICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUv b3B0aW1pemVyL2luaGVyaXQuaCAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGxhbm5lci5oICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmggICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9yZWxhdGlvbi5oICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRl SGFuZGxlci5oICAgICAgICB8ICAgMiArLQogNTIgZmlsZXMgY2hhbmdlZCwgMTA4MCBpbnNlcnRp b25zKCspLCA2NTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19m ZHcvcG9zdGdyZXNfZmR3LmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYwpp bmRleCA1NjY1NDg0NGU4Li5hMzMxOTFkZTQwIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVz X2Zkdy9wb3N0Z3Jlc19mZHcuYworKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19m ZHcuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIm9wdGltaXplci9hcHBlbmRpbmZvLmgi CiAjaW5jbHVkZSAib3B0aW1pemVyL2NsYXVzZXMuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvY29z dC5oIgorI2luY2x1ZGUgIm9wdGltaXplci9pbmhlcml0LmgiCiAjaW5jbHVkZSAib3B0aW1pemVy L29wdGltaXplci5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wYXRobm9kZS5oIgogI2luY2x1ZGUg Im9wdGltaXplci9wYXRocy5oIgpAQCAtMzgsNiArMzksNyBAQAogI2luY2x1ZGUgIm9wdGltaXpl ci9yZXN0cmljdGluZm8uaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvdGxpc3QuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2V0cmVlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgi CiAjaW5jbHVkZSAicG9zdGdyZXNfZmR3LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC00NTgsNyArNDYwLDggQEAgc3RhdGljIFBn RmR3TW9kaWZ5U3RhdGUgKmNyZWF0ZV9mb3JlaWduX21vZGlmeShFU3RhdGUgKmVzdGF0ZSwKIAkJ CQkJCQkJCQkJICAgTGlzdCAqdGFyZ2V0X2F0dHJzLAogCQkJCQkJCQkJCQkgICBpbnQgbGVuLAog CQkJCQkJCQkJCQkgICBib29sIGhhc19yZXR1cm5pbmcsCi0JCQkJCQkJCQkJCSAgIExpc3QgKnJl dHJpZXZlZF9hdHRycyk7CisJCQkJCQkJCQkJCSAgIExpc3QgKnJldHJpZXZlZF9hdHRycywKKwkJ CQkJCQkJCQkJICAgT2lkIHVzZXJpZCk7CiBzdGF0aWMgVHVwbGVUYWJsZVNsb3QgKipleGVjdXRl X2ZvcmVpZ25fbW9kaWZ5KEVTdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkJCQkgICBSZXN1bHRSZWxJ bmZvICpyZXN1bHRSZWxJbmZvLAogCQkJCQkJCQkJCQkgICBDbWRUeXBlIG9wZXJhdGlvbiwKQEAg LTYyMyw3ICs2MjYsNiBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25SZWxTaXplKFBsYW5uZXJJbmZvICpy b290LAogewogCVBnRmR3UmVsYXRpb25JbmZvICpmcGluZm87CiAJTGlzdENlbGwgICAqbGM7Ci0J UmFuZ2VUYmxFbnRyeSAqcnRlID0gcGxhbm5lcl9ydF9mZXRjaChiYXNlcmVsLT5yZWxpZCwgcm9v dCk7CiAKIAkvKgogCSAqIFdlIHVzZSBQZ0Zkd1JlbGF0aW9uSW5mbyB0byBwYXNzIHZhcmlvdXMg aW5mb3JtYXRpb24gdG8gc3Vic2VxdWVudApAQCAtNjU3LDEyICs2NTksMTIgQEAgcG9zdGdyZXNH ZXRGb3JlaWduUmVsU2l6ZShQbGFubmVySW5mbyAqcm9vdCwKIAkvKgogCSAqIElmIHRoZSB0YWJs ZSBvciB0aGUgc2VydmVyIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIHJlbW90ZSBlc3RpbWF0ZXMsCiAJ ICogaWRlbnRpZnkgd2hpY2ggdXNlciB0byBkbyByZW1vdGUgYWNjZXNzIGFzIGR1cmluZyBwbGFu bmluZy4gIFRoaXMKLQkgKiBzaG91bGQgbWF0Y2ggd2hhdCBFeGVjQ2hlY2tSVEVQZXJtcygpIGRv ZXMuICBJZiB3ZSBmYWlsIGR1ZSB0byBsYWNrIG9mCi0JICogcGVybWlzc2lvbnMsIHRoZSBxdWVy eSB3b3VsZCBoYXZlIGZhaWxlZCBhdCBydW50aW1lIGFueXdheS4KKwkgKiBzaG91bGQgbWF0Y2gg d2hhdCBFeGVjQ2hlY2tQZXJtaXNzc2lvbnMoKSBkb2VzLiAgSWYgd2UgZmFpbCBkdWUgdG8KKwkg KiBsYWNrIG9mIHBlcm1pc3Npb25zLCB0aGUgcXVlcnkgd291bGQgaGF2ZSBmYWlsZWQgYXQgcnVu dGltZSBhbnl3YXkuCiAJICovCiAJaWYgKGZwaW5mby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSkKIAl7 Ci0JCU9pZAkJCXVzZXJpZCA9IHJ0ZS0+Y2hlY2tBc1VzZXIgPyBydGUtPmNoZWNrQXNVc2VyIDog R2V0VXNlcklkKCk7CisJCU9pZAkJCXVzZXJpZCA9IGJhc2VyZWwtPnVzZXJpZCA/IGJhc2VyZWwt PnVzZXJpZCA6IEdldFVzZXJJZCgpOwogCiAJCWZwaW5mby0+dXNlciA9IEdldFVzZXJNYXBwaW5n KHVzZXJpZCwgZnBpbmZvLT5zZXJ2ZXItPnNlcnZlcmlkKTsKIAl9CkBAIC0xNTE1LDE2ICsxNTE3 LDE1IEBAIHBvc3RncmVzQmVnaW5Gb3JlaWduU2NhbihGb3JlaWduU2NhblN0YXRlICpub2RlLCBp bnQgZWZsYWdzKQogCiAJLyoKIAkgKiBJZGVudGlmeSB3aGljaCB1c2VyIHRvIGRvIHRoZSByZW1v dGUgYWNjZXNzIGFzLiAgVGhpcyBzaG91bGQgbWF0Y2ggd2hhdAotCSAqIEV4ZWNDaGVja1JURVBl cm1zKCkgZG9lcy4gIEluIGNhc2Ugb2YgYSBqb2luIG9yIGFnZ3JlZ2F0ZSwgdXNlIHRoZQotCSAq IGxvd2VzdC1udW1iZXJlZCBtZW1iZXIgUlRFIGFzIGEgcmVwcmVzZW50YXRpdmU7IHdlIHdvdWxk IGdldCB0aGUgc2FtZQotCSAqIHJlc3VsdCBmcm9tIGFueS4KKwkgKiBFeGVjQ2hlY2tQZXJtaXNz c2lvbnMoKSBkb2VzLgogCSAqLworCXVzZXJpZCA9IGZzcGxhbi0+Y2hlY2tBc1VzZXIgPyBmc3Bs YW4tPmNoZWNrQXNVc2VyIDogR2V0VXNlcklkKCk7CisKIAlpZiAoZnNwbGFuLT5zY2FuLnNjYW5y ZWxpZCA+IDApCiAJCXJ0aW5kZXggPSBmc3BsYW4tPnNjYW4uc2NhbnJlbGlkOwogCWVsc2UKIAkJ cnRpbmRleCA9IGJtc19uZXh0X21lbWJlcihmc3BsYW4tPmZzX3JlbGlkcywgLTEpOwogCXJ0ZSA9 IGV4ZWNfcnRfZmV0Y2gocnRpbmRleCwgZXN0YXRlKTsKLQl1c2VyaWQgPSBydGUtPmNoZWNrQXNV c2VyID8gcnRlLT5jaGVja0FzVXNlciA6IEdldFVzZXJJZCgpOwogCiAJLyogR2V0IGluZm8gYWJv dXQgZm9yZWlnbiB0YWJsZS4gKi8KIAl0YWJsZSA9IEdldEZvcmVpZ25UYWJsZShydGUtPnJlbGlk KTsKQEAgLTE4MTYsNyArMTgxNyw4IEBAIHBvc3RncmVzUGxhbkZvcmVpZ25Nb2RpZnkoUGxhbm5l ckluZm8gKnJvb3QsCiAJZWxzZSBpZiAob3BlcmF0aW9uID09IENNRF9VUERBVEUpCiAJewogCQlp bnQJCQljb2w7Ci0JCUJpdG1hcHNldCAgKmFsbFVwZGF0ZWRDb2xzID0gYm1zX3VuaW9uKHJ0ZS0+ dXBkYXRlZENvbHMsIHJ0ZS0+ZXh0cmFVcGRhdGVkQ29scyk7CisJCVJlbE9wdEluZm8gKnJlbCA9 IGZpbmRfYmFzZV9yZWwocm9vdCwgcmVzdWx0UmVsYXRpb24pOworCQlCaXRtYXBzZXQgICphbGxV cGRhdGVkQ29scyA9IEdldFJlbEFsbFVwZGF0ZWRDb2xzKHJvb3QsIHJlbCk7CiAKIAkJY29sID0g LTE7CiAJCXdoaWxlICgoY29sID0gYm1zX25leHRfbWVtYmVyKGFsbFVwZGF0ZWRDb2xzLCBjb2wp KSA+PSAwKQpAQCAtMTg5NSw2ICsxODk3LDM1IEBAIHBvc3RncmVzUGxhbkZvcmVpZ25Nb2RpZnko UGxhbm5lckluZm8gKnJvb3QsCiAJCQkJCSAgcmV0cmlldmVkX2F0dHJzKTsKIH0KIAorLyoKKyAq IEdldFJlc3VsdFJlbENoZWNrQXNVc2VyCisgKgkJUmV0dXJucyB0aGUgdXNlciB0byBtb2RpZnkg cGFzc2VkLWluIGZvcmVpZ24gdGFibGUgcmVzdWx0IHJlbGF0aW9uIGFzCisgKgorICogVGhlIHdh eSB0aGUgdXNlciBpcyBjaG9zZW4gbWF0Y2hlcyB3aGF0IEV4ZWNDaGVja1Blcm1pc3Npb25zKCkg ZG9lcy4KKyAqLworc3RhdGljIE9pZAorR2V0UmVzdWx0UmVsQ2hlY2tBc1VzZXIoUmVzdWx0UmVs SW5mbyAqcmVsSW5mbywgRVN0YXRlICplc3RhdGUpCit7CisJSW5kZXgJCXJ0aTsKKwlSYW5nZVRi bEVudHJ5ICpydGU7CisJUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvOworCisJLyoKKwkgKiBG b3IgaW5oZXJpdGFuY2UgY2hpbGQgcmVsYXRpb25zLCBtdXN0IHVzZSB0aGUgcm9vdCBwYXJlbnQn cyBSVEUgdG8KKwkgKiBmZXRjaCB0aGUgcGVybWlzc2lvbnMgZW50cnkgYmVjYXVzZSB0aGF0J3Mg dGhlIG9ubHkgb25lIHRoYXQgYWN0dWFsbHkKKwkgKiBwb2ludHMgdG8gYW55LgorCSAqLworCWlm IChyZWxJbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5mbykKKwkJcnRpID0gcmVsSW5mby0+cmlfUm9v dFJlc3VsdFJlbEluZm8tPnJpX1JhbmdlVGFibGVJbmRleDsKKwllbHNlCisJCXJ0aSA9IHJlbElu Zm8tPnJpX1JhbmdlVGFibGVJbmRleDsKKworCXJ0ZSA9IGV4ZWNfcnRfZmV0Y2gocnRpLCBlc3Rh dGUpOworCXBlcm1pbmZvID0gR2V0UmVsUGVybWlzc2lvbkluZm8oZXN0YXRlLT5lc19yZWxwZXJt bGlzdCwgcnRlLCBmYWxzZSk7CisKKwlyZXR1cm4gcGVybWluZm8tPmNoZWNrQXNVc2VyID8gcGVy bWluZm8tPmNoZWNrQXNVc2VyIDogR2V0VXNlcklkKCk7Cit9CisKIC8qCiAgKiBwb3N0Z3Jlc0Jl Z2luRm9yZWlnbk1vZGlmeQogICoJCUJlZ2luIGFuIGluc2VydC91cGRhdGUvZGVsZXRlIG9wZXJh dGlvbiBvbiBhIGZvcmVpZ24gdGFibGUKQEAgLTE5MDYsNiArMTkzNyw3IEBAIHBvc3RncmVzQmVn aW5Gb3JlaWduTW9kaWZ5KE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUsCiAJCQkJCQkgICBpbnQg c3VicGxhbl9pbmRleCwKIAkJCQkJCSAgIGludCBlZmxhZ3MpCiB7CisJRVN0YXRlCSAgICplc3Rh dGUgPSBtdHN0YXRlLT5wcy5zdGF0ZTsKIAlQZ0Zkd01vZGlmeVN0YXRlICpmbXN0YXRlOwogCWNo YXIJICAgKnF1ZXJ5OwogCUxpc3QJICAgKnRhcmdldF9hdHRyczsKQEAgLTE5MTMsNiArMTk0NSw3 IEBAIHBvc3RncmVzQmVnaW5Gb3JlaWduTW9kaWZ5KE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUs CiAJaW50CQkJdmFsdWVzX2VuZF9sZW47CiAJTGlzdAkgICAqcmV0cmlldmVkX2F0dHJzOwogCVJh bmdlVGJsRW50cnkgKnJ0ZTsKKwlPaWQJCQl1c2VyaWQ7CiAKIAkvKgogCSAqIERvIG5vdGhpbmcg aW4gRVhQTEFJTiAobm8gQU5BTFlaRSkgY2FzZS4gIHJlc3VsdFJlbEluZm8tPnJpX0Zkd1N0YXRl CkBAIC0xOTM2LDYgKzE5NjksNyBAQCBwb3N0Z3Jlc0JlZ2luRm9yZWlnbk1vZGlmeShNb2RpZnlU YWJsZVN0YXRlICptdHN0YXRlLAogCS8qIEZpbmQgUlRFLiAqLwogCXJ0ZSA9IGV4ZWNfcnRfZmV0 Y2gocmVzdWx0UmVsSW5mby0+cmlfUmFuZ2VUYWJsZUluZGV4LAogCQkJCQkJbXRzdGF0ZS0+cHMu c3RhdGUpOworCXVzZXJpZCA9IEdldFJlc3VsdFJlbENoZWNrQXNVc2VyKHJlc3VsdFJlbEluZm8s IGVzdGF0ZSk7CiAKIAkvKiBDb25zdHJ1Y3QgYW4gZXhlY3V0aW9uIHN0YXRlLiAqLwogCWZtc3Rh dGUgPSBjcmVhdGVfZm9yZWlnbl9tb2RpZnkobXRzdGF0ZS0+cHMuc3RhdGUsCkBAIC0xOTQ3LDcg KzE5ODEsOCBAQCBwb3N0Z3Jlc0JlZ2luRm9yZWlnbk1vZGlmeShNb2RpZnlUYWJsZVN0YXRlICpt dHN0YXRlLAogCQkJCQkJCQkJdGFyZ2V0X2F0dHJzLAogCQkJCQkJCQkJdmFsdWVzX2VuZF9sZW4s CiAJCQkJCQkJCQloYXNfcmV0dXJuaW5nLAotCQkJCQkJCQkJcmV0cmlldmVkX2F0dHJzKTsKKwkJ CQkJCQkJCXJldHJpZXZlZF9hdHRycywKKwkJCQkJCQkJCXVzZXJpZCk7CiAKIAlyZXN1bHRSZWxJ bmZvLT5yaV9GZHdTdGF0ZSA9IGZtc3RhdGU7CiB9CkBAIC0yMTM5LDYgKzIxNzQsNyBAQCBwb3N0 Z3Jlc0JlZ2luRm9yZWlnbkluc2VydChNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLAogCUxpc3QJ ICAgKnRhcmdldEF0dHJzID0gTklMOwogCUxpc3QJICAgKnJldHJpZXZlZF9hdHRycyA9IE5JTDsK IAlib29sCQlkb05vdGhpbmcgPSBmYWxzZTsKKwlPaWQJCQl1c2VyaWQ7CiAKIAkvKgogCSAqIElm IHRoZSBmb3JlaWduIHRhYmxlIHdlIGFyZSBhYm91dCB0byBpbnNlcnQgcm91dGVkIHJvd3MgaW50 byBpcyBhbHNvIGFuCkBAIC0yMjE2LDYgKzIyNTIsOCBAQCBwb3N0Z3Jlc0JlZ2luRm9yZWlnbklu c2VydChNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLAogCQlydGUgPSBleGVjX3J0X2ZldGNoKHJl c3VsdFJlbGF0aW9uLCBlc3RhdGUpOwogCX0KIAorCXVzZXJpZCA9IEdldFJlc3VsdFJlbENoZWNr QXNVc2VyKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSk7CisKIAkvKiBDb25zdHJ1Y3QgdGhlIFNRTCBj b21tYW5kIHN0cmluZy4gKi8KIAlkZXBhcnNlSW5zZXJ0U3FsKCZzcWwsIHJ0ZSwgcmVzdWx0UmVs YXRpb24sIHJlbCwgdGFyZ2V0QXR0cnMsIGRvTm90aGluZywKIAkJCQkJIHJlc3VsdFJlbEluZm8t PnJpX1dpdGhDaGVja09wdGlvbnMsCkBAIC0yMjMyLDcgKzIyNzAsOCBAQCBwb3N0Z3Jlc0JlZ2lu Rm9yZWlnbkluc2VydChNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLAogCQkJCQkJCQkJdGFyZ2V0 QXR0cnMsCiAJCQkJCQkJCQl2YWx1ZXNfZW5kX2xlbiwKIAkJCQkJCQkJCXJldHJpZXZlZF9hdHRy cyAhPSBOSUwsCi0JCQkJCQkJCQlyZXRyaWV2ZWRfYXR0cnMpOworCQkJCQkJCQkJcmV0cmlldmVk X2F0dHJzLAorCQkJCQkJCQkJdXNlcmlkKTsKIAogCS8qCiAJICogSWYgdGhlIGdpdmVuIHJlc3Vs dFJlbEluZm8gYWxyZWFkeSBoYXMgUGdGZHdNb2RpZnlTdGF0ZSBzZXQsIGl0IG1lYW5zCkBAIC0y NjE4LDcgKzI2NTcsNiBAQCBwb3N0Z3Jlc0JlZ2luRGlyZWN0TW9kaWZ5KEZvcmVpZ25TY2FuU3Rh dGUgKm5vZGUsIGludCBlZmxhZ3MpCiAJRVN0YXRlCSAgICplc3RhdGUgPSBub2RlLT5zcy5wcy5z dGF0ZTsKIAlQZ0Zkd0RpcmVjdE1vZGlmeVN0YXRlICpkbXN0YXRlOwogCUluZGV4CQlydGluZGV4 OwotCVJhbmdlVGJsRW50cnkgKnJ0ZTsKIAlPaWQJCQl1c2VyaWQ7CiAJRm9yZWlnblRhYmxlICp0 YWJsZTsKIAlVc2VyTWFwcGluZyAqdXNlcjsKQEAgLTI2MzgsMTMgKzI2NzYsMTIgQEAgcG9zdGdy ZXNCZWdpbkRpcmVjdE1vZGlmeShGb3JlaWduU2NhblN0YXRlICpub2RlLCBpbnQgZWZsYWdzKQog CiAJLyoKIAkgKiBJZGVudGlmeSB3aGljaCB1c2VyIHRvIGRvIHRoZSByZW1vdGUgYWNjZXNzIGFz LiAgVGhpcyBzaG91bGQgbWF0Y2ggd2hhdAotCSAqIEV4ZWNDaGVja1JURVBlcm1zKCkgZG9lcy4K KwkgKiBFeGVjQ2hlY2tQZXJtaXNzaW9ucygpIGRvZXMuCiAJICovCi0JcnRpbmRleCA9IG5vZGUt PnJlc3VsdFJlbEluZm8tPnJpX1JhbmdlVGFibGVJbmRleDsKLQlydGUgPSBleGVjX3J0X2ZldGNo KHJ0aW5kZXgsIGVzdGF0ZSk7Ci0JdXNlcmlkID0gcnRlLT5jaGVja0FzVXNlciA/IHJ0ZS0+Y2hl Y2tBc1VzZXIgOiBHZXRVc2VySWQoKTsKKwl1c2VyaWQgPSBmc3BsYW4tPmNoZWNrQXNVc2VyID8g ZnNwbGFuLT5jaGVja0FzVXNlciA6IEdldFVzZXJJZCgpOwogCiAJLyogR2V0IGluZm8gYWJvdXQg Zm9yZWlnbiB0YWJsZS4gKi8KKwlydGluZGV4ID0gbm9kZS0+cmVzdWx0UmVsSW5mby0+cmlfUmFu Z2VUYWJsZUluZGV4OwogCWlmIChmc3BsYW4tPnNjYW4uc2NhbnJlbGlkID09IDApCiAJCWRtc3Rh dGUtPnJlbCA9IEV4ZWNPcGVuU2NhblJlbGF0aW9uKGVzdGF0ZSwgcnRpbmRleCwgZWZsYWdzKTsK IAllbHNlCkBAIC0zOTQyLDEyICszOTc5LDEyIEBAIGNyZWF0ZV9mb3JlaWduX21vZGlmeShFU3Rh dGUgKmVzdGF0ZSwKIAkJCQkJICBMaXN0ICp0YXJnZXRfYXR0cnMsCiAJCQkJCSAgaW50IHZhbHVl c19lbmQsCiAJCQkJCSAgYm9vbCBoYXNfcmV0dXJuaW5nLAotCQkJCQkgIExpc3QgKnJldHJpZXZl ZF9hdHRycykKKwkJCQkJICBMaXN0ICpyZXRyaWV2ZWRfYXR0cnMsCisJCQkJCSAgT2lkIHVzZXJp ZCkKIHsKIAlQZ0Zkd01vZGlmeVN0YXRlICpmbXN0YXRlOwogCVJlbGF0aW9uCXJlbCA9IHJlc3Vs dFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYzsKIAlUdXBsZURlc2MJdHVwZGVzYyA9IFJlbGF0aW9u R2V0RGVzY3IocmVsKTsKLQlPaWQJCQl1c2VyaWQ7CiAJRm9yZWlnblRhYmxlICp0YWJsZTsKIAlV c2VyTWFwcGluZyAqdXNlcjsKIAlBdHRyTnVtYmVyCW5fcGFyYW1zOwpAQCAtMzk1OSwxMiArMzk5 Niw2IEBAIGNyZWF0ZV9mb3JlaWduX21vZGlmeShFU3RhdGUgKmVzdGF0ZSwKIAlmbXN0YXRlID0g KFBnRmR3TW9kaWZ5U3RhdGUgKikgcGFsbG9jMChzaXplb2YoUGdGZHdNb2RpZnlTdGF0ZSkpOwog CWZtc3RhdGUtPnJlbCA9IHJlbDsKIAotCS8qCi0JICogSWRlbnRpZnkgd2hpY2ggdXNlciB0byBk byB0aGUgcmVtb3RlIGFjY2VzcyBhcy4gIFRoaXMgc2hvdWxkIG1hdGNoIHdoYXQKLQkgKiBFeGVj Q2hlY2tSVEVQZXJtcygpIGRvZXMuCi0JICovCi0JdXNlcmlkID0gcnRlLT5jaGVja0FzVXNlciA/ IHJ0ZS0+Y2hlY2tBc1VzZXIgOiBHZXRVc2VySWQoKTsKLQogCS8qIEdldCBpbmZvIGFib3V0IGZv cmVpZ24gdGFibGUuICovCiAJdGFibGUgPSBHZXRGb3JlaWduVGFibGUoUmVsYXRpb25HZXRSZWxp ZChyZWwpKTsKIAl1c2VyID0gR2V0VXNlck1hcHBpbmcodXNlcmlkLCB0YWJsZS0+c2VydmVyaWQp OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9zZXBnc3FsL2RtbC5jIGIvY29udHJpYi9zZXBnc3FsL2Rt bC5jCmluZGV4IDNiYjk4ZGZiMDYuLjJjZjc1YjZhNmQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvc2Vw Z3NxbC9kbWwuYworKysgYi9jb250cmliL3NlcGdzcWwvZG1sLmMKQEAgLTI3NywzOCArMjc3LDMy IEBAIGNoZWNrX3JlbGF0aW9uX3ByaXZpbGVnZXMoT2lkIHJlbE9pZCwKICAqIEVudHJ5cG9pbnQg b2YgdGhlIERNTCBwZXJtaXNzaW9uIGNoZWNrcwogICovCiBib29sCi1zZXBnc3FsX2RtbF9wcml2 aWxlZ2VzKExpc3QgKnJhbmdlVGFibHMsIGJvb2wgYWJvcnRfb25fdmlvbGF0aW9uKQorc2VwZ3Nx bF9kbWxfcHJpdmlsZWdlcyhMaXN0ICpyZWxwZXJtbGlzdCwgYm9vbCBhYm9ydF9vbl92aW9sYXRp b24pCiB7CiAJTGlzdENlbGwgICAqbHI7CiAKLQlmb3JlYWNoKGxyLCByYW5nZVRhYmxzKQorCWZv cmVhY2gobHIsIHJlbHBlcm1saXN0KQogCXsKLQkJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbGZpcnN0 KGxyKTsKKwkJUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvID0gbGZpcnN0KGxyKTsKIAkJdWlu dDMyCQlyZXF1aXJlZCA9IDA7CiAJCUxpc3QJICAgKnRhYmxlSWRzOwogCQlMaXN0Q2VsbCAgICps aTsKIAotCQkvKgotCQkgKiBPbmx5IHJlZ3VsYXIgcmVsYXRpb25zIHNoYWxsIGJlIGNoZWNrZWQK LQkJICovCi0JCWlmIChydGUtPnJ0ZWtpbmQgIT0gUlRFX1JFTEFUSU9OKQotCQkJY29udGludWU7 Ci0KIAkJLyoKIAkJICogRmluZCBvdXQgcmVxdWlyZWQgcGVybWlzc2lvbnMKIAkJICovCi0JCWlm IChydGUtPnJlcXVpcmVkUGVybXMgJiBBQ0xfU0VMRUNUKQorCQlpZiAocGVybWluZm8tPnJlcXVp cmVkUGVybXMgJiBBQ0xfU0VMRUNUKQogCQkJcmVxdWlyZWQgfD0gU0VQR19EQl9UQUJMRV9fU0VM RUNUOwotCQlpZiAocnRlLT5yZXF1aXJlZFBlcm1zICYgQUNMX0lOU0VSVCkKKwkJaWYgKHBlcm1p bmZvLT5yZXF1aXJlZFBlcm1zICYgQUNMX0lOU0VSVCkKIAkJCXJlcXVpcmVkIHw9IFNFUEdfREJf VEFCTEVfX0lOU0VSVDsKLQkJaWYgKHJ0ZS0+cmVxdWlyZWRQZXJtcyAmIEFDTF9VUERBVEUpCisJ CWlmIChwZXJtaW5mby0+cmVxdWlyZWRQZXJtcyAmIEFDTF9VUERBVEUpCiAJCXsKLQkJCWlmICgh Ym1zX2lzX2VtcHR5KHJ0ZS0+dXBkYXRlZENvbHMpKQorCQkJaWYgKCFibXNfaXNfZW1wdHkocGVy bWluZm8tPnVwZGF0ZWRDb2xzKSkKIAkJCQlyZXF1aXJlZCB8PSBTRVBHX0RCX1RBQkxFX19VUERB VEU7CiAJCQllbHNlCiAJCQkJcmVxdWlyZWQgfD0gU0VQR19EQl9UQUJMRV9fTE9DSzsKIAkJfQot CQlpZiAocnRlLT5yZXF1aXJlZFBlcm1zICYgQUNMX0RFTEVURSkKKwkJaWYgKHBlcm1pbmZvLT5y ZXF1aXJlZFBlcm1zICYgQUNMX0RFTEVURSkKIAkJCXJlcXVpcmVkIHw9IFNFUEdfREJfVEFCTEVf X0RFTEVURTsKIAogCQkvKgpAQCAtMzIwLDEzICszMTQsMTMgQEAgc2VwZ3NxbF9kbWxfcHJpdmls ZWdlcyhMaXN0ICpyYW5nZVRhYmxzLCBib29sIGFib3J0X29uX3Zpb2xhdGlvbikKIAkJLyoKIAkJ ICogSWYgdGhpcyBSYW5nZVRibEVudHJ5IGlzIGFsc28gc3VwcG9zZWQgdG8gcmVmZXJlbmNlIGlu aGVyaXRlZAogCQkgKiB0YWJsZXMsIHdlIG5lZWQgdG8gY2hlY2sgc2VjdXJpdHkgbGFiZWwgb2Yg dGhlIGNoaWxkIHRhYmxlcy4gU28sIHdlCi0JCSAqIGV4cGFuZCBydGUtPnJlbGlkIGludG8gbGlz dCBvZiBPSURzIG9mIGluaGVyaXRhbmNlIGhpZXJhcmNoeSwgdGhlbgorCQkgKiBleHBhbmQgcGVy bWluZm8tPnJlbGlkIGludG8gbGlzdCBvZiBPSURzIG9mIGluaGVyaXRhbmNlIGhpZXJhcmNoeSwg dGhlbgogCQkgKiBjaGVja2VyIHJvdXRpbmUgd2lsbCBiZSBpbnZva2VkIGZvciBlYWNoIHJlbGF0 aW9ucy4KIAkJICovCi0JCWlmICghcnRlLT5pbmgpCi0JCQl0YWJsZUlkcyA9IGxpc3RfbWFrZTFf b2lkKHJ0ZS0+cmVsaWQpOworCQlpZiAoIXBlcm1pbmZvLT5pbmgpCisJCQl0YWJsZUlkcyA9IGxp c3RfbWFrZTFfb2lkKHBlcm1pbmZvLT5yZWxpZCk7CiAJCWVsc2UKLQkJCXRhYmxlSWRzID0gZmlu ZF9hbGxfaW5oZXJpdG9ycyhydGUtPnJlbGlkLCBOb0xvY2ssIE5VTEwpOworCQkJdGFibGVJZHMg PSBmaW5kX2FsbF9pbmhlcml0b3JzKHBlcm1pbmZvLT5yZWxpZCwgTm9Mb2NrLCBOVUxMKTsKIAog CQlmb3JlYWNoKGxpLCB0YWJsZUlkcykKIAkJewpAQCAtMzM5LDEyICszMzMsMTIgQEAgc2VwZ3Nx bF9kbWxfcHJpdmlsZWdlcyhMaXN0ICpyYW5nZVRhYmxzLCBib29sIGFib3J0X29uX3Zpb2xhdGlv bikKIAkJCSAqIGNoaWxkIHRhYmxlIGhhcyBkaWZmZXJlbnQgYXR0cmlidXRlIG51bWJlcnMsIHNv IHdlIG5lZWQgdG8gZml4CiAJCQkgKiB1cCB0aGVtLgogCQkJICovCi0JCQlzZWxlY3RlZENvbHMg PSBmaXh1cF9pbmhlcml0ZWRfY29sdW1ucyhydGUtPnJlbGlkLCB0YWJsZU9pZCwKLQkJCQkJCQkJ CQkJCSAgIHJ0ZS0+c2VsZWN0ZWRDb2xzKTsKLQkJCWluc2VydGVkQ29scyA9IGZpeHVwX2luaGVy aXRlZF9jb2x1bW5zKHJ0ZS0+cmVsaWQsIHRhYmxlT2lkLAotCQkJCQkJCQkJCQkJICAgcnRlLT5p bnNlcnRlZENvbHMpOwotCQkJdXBkYXRlZENvbHMgPSBmaXh1cF9pbmhlcml0ZWRfY29sdW1ucyhy dGUtPnJlbGlkLCB0YWJsZU9pZCwKLQkJCQkJCQkJCQkJCSAgcnRlLT51cGRhdGVkQ29scyk7CisJ CQlzZWxlY3RlZENvbHMgPSBmaXh1cF9pbmhlcml0ZWRfY29sdW1ucyhwZXJtaW5mby0+cmVsaWQs IHRhYmxlT2lkLAorCQkJCQkJCQkJCQkJICAgcGVybWluZm8tPnNlbGVjdGVkQ29scyk7CisJCQlp bnNlcnRlZENvbHMgPSBmaXh1cF9pbmhlcml0ZWRfY29sdW1ucyhwZXJtaW5mby0+cmVsaWQsIHRh YmxlT2lkLAorCQkJCQkJCQkJCQkJICAgcGVybWluZm8tPmluc2VydGVkQ29scyk7CisJCQl1cGRh dGVkQ29scyA9IGZpeHVwX2luaGVyaXRlZF9jb2x1bW5zKHBlcm1pbmZvLT5yZWxpZCwgdGFibGVP aWQsCisJCQkJCQkJCQkJCQkgIHBlcm1pbmZvLT51cGRhdGVkQ29scyk7CiAKIAkJCS8qCiAJCQkg KiBjaGVjayBwZXJtaXNzaW9ucyBvbiBpbmRpdmlkdWFsIHRhYmxlcwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9zZXBnc3FsL2hvb2tzLmMgYi9jb250cmliL3NlcGdzcWwvaG9va3MuYwppbmRleCA5N2U2 MWI4MDQzLi5jYjlhZWIxNzVkIDEwMDY0NAotLS0gYS9jb250cmliL3NlcGdzcWwvaG9va3MuYwor KysgYi9jb250cmliL3NlcGdzcWwvaG9va3MuYwpAQCAtMjg4LDE3ICsyODgsMTcgQEAgc2VwZ3Nx bF9vYmplY3RfYWNjZXNzKE9iamVjdEFjY2Vzc1R5cGUgYWNjZXNzLAogICogRW50cnlwb2ludCBv ZiBETUwgcGVybWlzc2lvbnMKICAqLwogc3RhdGljIGJvb2wKLXNlcGdzcWxfZXhlY19jaGVja19w ZXJtcyhMaXN0ICpyYW5nZVRhYmxzLCBib29sIGFib3J0KQorc2VwZ3NxbF9leGVjX2NoZWNrX3Bl cm1zKExpc3QgKnJlbHBlcm1saXN0LCBib29sIGFib3J0KQogewogCS8qCiAJICogSWYgc2VjdXJp dHkgcHJvdmlkZXIgaXMgc3RhY2tpbmcgYW5kIG9uZSBvZiB0aGVtIHJlcGxpZWQgJ2ZhbHNlJyBh dAogCSAqIGxlYXN0LCB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIGFueSBtb3JlLgogCSAqLwogCWlm IChuZXh0X2V4ZWNfY2hlY2tfcGVybXNfaG9vayAmJgotCQkhKCpuZXh0X2V4ZWNfY2hlY2tfcGVy bXNfaG9vaykgKHJhbmdlVGFibHMsIGFib3J0KSkKKwkJISgqbmV4dF9leGVjX2NoZWNrX3Blcm1z X2hvb2spIChyZWxwZXJtbGlzdCwgYWJvcnQpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpZiAoIXNl cGdzcWxfZG1sX3ByaXZpbGVnZXMocmFuZ2VUYWJscywgYWJvcnQpKQorCWlmICghc2VwZ3NxbF9k bWxfcHJpdmlsZWdlcyhyZWxwZXJtbGlzdCwgYWJvcnQpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAly ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYXR0bWFw LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2F0dG1hcC5jCmluZGV4IDg5NmY4MmEyMmIu LjdiYzg1ZDllYjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYXR0bWFw LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9hdHRtYXAuYwpAQCAtMTY5LDEwICsx NjksMTQgQEAgYnVpbGRfYXR0cm1hcF9ieV9wb3NpdGlvbihUdXBsZURlc2MgaW5kZXNjLAogICog YW5kIG91dHB1dCBjb2x1bW5zIGJ5IG5hbWUuICAoRHJvcHBlZCBjb2x1bW5zIGFyZSBpZ25vcmVk IGluIGJvdGggaW5wdXQgYW5kCiAgKiBvdXRwdXQuKSAgVGhpcyBpcyBub3JtYWxseSBhIHN1YnJv dXRpbmUgZm9yIGNvbnZlcnRfdHVwbGVzX2J5X25hbWUgaW4KICAqIHR1cGNvbnZlcnQuYywgYnV0 IGNhbiBiZSB1c2VkIHN0YW5kYWxvbmUuCisgKgorICogSWYgJ21pc3Npbmdfb2snIGlzIHRydWUs IGEgY29sdW1uIGZyb20gJ291dGRlc2MnIG5vdCBiZWluZyBwcmVzZW50IGluCisgKiAnaW5kZXNj JyBpcyBub3QgZmxhZ2dlZCBhcyBhbiBlcnJvci4KICAqLwogQXR0ck1hcCAqCiBidWlsZF9hdHRy bWFwX2J5X25hbWUoVHVwbGVEZXNjIGluZGVzYywKLQkJCQkJICBUdXBsZURlc2Mgb3V0ZGVzYykK KwkJCQkJICBUdXBsZURlc2Mgb3V0ZGVzYywKKwkJCQkJICBib29sIG1pc3Npbmdfb2spCiB7CiAJ QXR0ck1hcCAgICAqYXR0ck1hcDsKIAlpbnQJCQlvdXRuYXR0czsKQEAgLTIzNSw3ICsyMzksNyBA QCBidWlsZF9hdHRybWFwX2J5X25hbWUoVHVwbGVEZXNjIGluZGVzYywKIAkJCQlicmVhazsKIAkJ CX0KIAkJfQotCQlpZiAoYXR0ck1hcC0+YXR0bnVtc1tpXSA9PSAwKQorCQlpZiAoYXR0ck1hcC0+ YXR0bnVtc1tpXSA9PSAwICYmICFtaXNzaW5nX29rKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCiAJCQkJCSBlcnJtc2coImNvdWxk IG5vdCBjb252ZXJ0IHJvdyB0eXBlIiksCkBAIC0yNTcsMTIgKzI2MSwxMyBAQCBidWlsZF9hdHRy bWFwX2J5X25hbWUoVHVwbGVEZXNjIGluZGVzYywKICAqLwogQXR0ck1hcCAqCiBidWlsZF9hdHRy bWFwX2J5X25hbWVfaWZfcmVxKFR1cGxlRGVzYyBpbmRlc2MsCi0JCQkJCQkJIFR1cGxlRGVzYyBv dXRkZXNjKQorCQkJCQkJCSBUdXBsZURlc2Mgb3V0ZGVzYywKKwkJCQkJCQkgYm9vbCBtaXNzaW5n X29rKQogewogCUF0dHJNYXAgICAgKmF0dHJNYXA7CiAKIAkvKiBWZXJpZnkgY29tcGF0aWJpbGl0 eSBhbmQgcHJlcGFyZSBhdHRyaWJ1dGUtbnVtYmVyIG1hcCAqLwotCWF0dHJNYXAgPSBidWlsZF9h dHRybWFwX2J5X25hbWUoaW5kZXNjLCBvdXRkZXNjKTsKKwlhdHRyTWFwID0gYnVpbGRfYXR0cm1h cF9ieV9uYW1lKGluZGVzYywgb3V0ZGVzYywgbWlzc2luZ19vayk7CiAKIAkvKiBDaGVjayBpZiB0 aGUgbWFwIGhhcyBhIG9uZS10by1vbmUgbWF0Y2ggKi8KIAlpZiAoY2hlY2tfYXR0cm1hcF9tYXRj aChpbmRlc2MsIG91dGRlc2MsIGF0dHJNYXApKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2NvbW1vbi90dXBjb252ZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGNv bnZlcnQuYwppbmRleCA0MDEwZTIwY2ZiLi5iMmY4OTJkMmZkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvY29tbW9uL3R1cGNvbnZlcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv Y29tbW9uL3R1cGNvbnZlcnQuYwpAQCAtMTA3LDcgKzEwNyw3IEBAIGNvbnZlcnRfdHVwbGVzX2J5 X25hbWUoVHVwbGVEZXNjIGluZGVzYywKIAlpbnQJCQluID0gb3V0ZGVzYy0+bmF0dHM7CiAKIAkv KiBWZXJpZnkgY29tcGF0aWJpbGl0eSBhbmQgcHJlcGFyZSBhdHRyaWJ1dGUtbnVtYmVyIG1hcCAq LwotCWF0dHJNYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWVfaWZfcmVxKGluZGVzYywgb3V0ZGVz Yyk7CisJYXR0ck1hcCA9IGJ1aWxkX2F0dHJtYXBfYnlfbmFtZV9pZl9yZXEoaW5kZXNjLCBvdXRk ZXNjLCBmYWxzZSk7CiAKIAlpZiAoYXR0ck1hcCA9PSBOVUxMKQogCXsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGFydGl0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BhcnRp dGlvbi5jCmluZGV4IGM2ZWM0NzkwMDQuLjc5Y2NkZGNlNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGFydGl0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wYXJ0aXRp b24uYwpAQCAtMjI3LDcgKzIyNyw4IEBAIG1hcF9wYXJ0aXRpb25fdmFyYXR0bm9zKExpc3QgKmV4 cHIsIGludCBmcm9tcmVsX3Zhcm5vLAogCQlib29sCQlmb3VuZF93aG9sZV9yb3c7CiAKIAkJcGFy dF9hdHRtYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWUoUmVsYXRpb25HZXREZXNjcih0b19yZWwp LAotCQkJCQkJCQkJCQlSZWxhdGlvbkdldERlc2NyKGZyb21fcmVsKSk7CisJCQkJCQkJCQkJCVJl bGF0aW9uR2V0RGVzY3IoZnJvbV9yZWwpLAorCQkJCQkJCQkJCQlmYWxzZSk7CiAJCWV4cHIgPSAo TGlzdCAqKSBtYXBfdmFyaWFibGVfYXR0bm9zKChOb2RlICopIGV4cHIsCiAJCQkJCQkJCQkJCWZy b21yZWxfdmFybm8sIDAsCiAJCQkJCQkJCQkJCXBhcnRfYXR0bWFwLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29weS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCmlu ZGV4IDdkYTcxMDVkNDQuLjQ0Yjg2Y2RlZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2NvcHkuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMKQEAgLTEwOSw3ICsx MDksNyBAQCBEb0NvcHkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBDb3B5U3RtdCAqc3RtdCwK IAl7CiAJCUxPQ0tNT0RFCWxvY2ttb2RlID0gaXNfZnJvbSA/IFJvd0V4Y2x1c2l2ZUxvY2sgOiBB Y2Nlc3NTaGFyZUxvY2s7CiAJCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOwotCQlSYW5nZVRi bEVudHJ5ICpydGU7CisJCVJlbFBlcm1pc3Npb25JbmZvICpwZXJtaW5mbzsKIAkJVHVwbGVEZXNj CXR1cERlc2M7CiAJCUxpc3QJICAgKmF0dG51bXM7CiAJCUxpc3RDZWxsICAgKmN1cjsKQEAgLTEy Myw4ICsxMjMsMTAgQEAgRG9Db3B5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQ29weVN0bXQg KnN0bXQsCiAKIAkJbnNpdGVtID0gYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVsYXRpb24ocHN0YXRl LCByZWwsIGxvY2ttb2RlLAogCQkJCQkJCQkJCQkgICBOVUxMLCBmYWxzZSwgZmFsc2UpOwotCQly dGUgPSBuc2l0ZW0tPnBfcnRlOwotCQlydGUtPnJlcXVpcmVkUGVybXMgPSAoaXNfZnJvbSA/IEFD TF9JTlNFUlQgOiBBQ0xfU0VMRUNUKTsKKworCQlwZXJtaW5mbyA9IG5zaXRlbS0+cF9wZXJtaW5m bzsKKwkJcGVybWluZm8tPnJlbGlkID0gcmVsaWQ7CisJCXBlcm1pbmZvLT5yZXF1aXJlZFBlcm1z ID0gKGlzX2Zyb20gPyBBQ0xfSU5TRVJUIDogQUNMX1NFTEVDVCk7CiAKIAkJaWYgKHN0bXQtPndo ZXJlQ2xhdXNlKQogCQl7CkBAIC0xNTQsMTEgKzE1NiwxMyBAQCBEb0NvcHkoUGFyc2VTdGF0ZSAq cHN0YXRlLCBjb25zdCBDb3B5U3RtdCAqc3RtdCwKIAkJCUZpcnN0TG93SW52YWxpZEhlYXBBdHRy aWJ1dGVOdW1iZXI7CiAKIAkJCWlmIChpc19mcm9tKQotCQkJCXJ0ZS0+aW5zZXJ0ZWRDb2xzID0g Ym1zX2FkZF9tZW1iZXIocnRlLT5pbnNlcnRlZENvbHMsIGF0dG5vKTsKKwkJCQlwZXJtaW5mby0+ aW5zZXJ0ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIocGVybWluZm8tPmluc2VydGVkQ29scywKKwkJ CQkJCQkJCQkJCQkJYXR0bm8pOwogCQkJZWxzZQotCQkJCXJ0ZS0+c2VsZWN0ZWRDb2xzID0gYm1z X2FkZF9tZW1iZXIocnRlLT5zZWxlY3RlZENvbHMsIGF0dG5vKTsKKwkJCQlwZXJtaW5mby0+c2Vs ZWN0ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIocGVybWluZm8tPnNlbGVjdGVkQ29scywKKwkJCQkJ CQkJCQkJCQkJYXR0bm8pOwogCQl9Ci0JCUV4ZWNDaGVja1JUUGVybXMocHN0YXRlLT5wX3J0YWJs ZSwgdHJ1ZSk7CisJCUV4ZWNDaGVja1Blcm1pc3Npb25zKGxpc3RfbWFrZTEocGVybWluZm8pLCB0 cnVlKTsKIAogCQkvKgogCQkgKiBQZXJtaXNzaW9uIGNoZWNrIGZvciByb3cgc2VjdXJpdHkgcG9s aWNpZXMuCkBAIC0xNzQsNyArMTc4LDcgQEAgRG9Db3B5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29u c3QgQ29weVN0bXQgKnN0bXQsCiAJCSAqIElmIFJMUyBpcyBub3QgZW5hYmxlZCBmb3IgdGhpcywg dGhlbiBqdXN0IGZhbGwgdGhyb3VnaCB0byB0aGUKIAkJICogbm9ybWFsIG5vbi1maWx0ZXJpbmcg cmVsYXRpb24gaGFuZGxpbmcuCiAJCSAqLwotCQlpZiAoY2hlY2tfZW5hYmxlX3JscyhydGUtPnJl bGlkLCBJbnZhbGlkT2lkLCBmYWxzZSkgPT0gUkxTX0VOQUJMRUQpCisJCWlmIChjaGVja19lbmFi bGVfcmxzKHJlbGlkLCBJbnZhbGlkT2lkLCBmYWxzZSkgPT0gUkxTX0VOQUJMRUQpCiAJCXsKIAkJ CVNlbGVjdFN0bXQgKnNlbGVjdDsKIAkJCUNvbHVtblJlZiAgKmNyOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlm cm9tLmMKaW5kZXggZGI2ZWI2ZmFlNy4uOWU0MjkwNGM2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weWZyb20uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJv bS5jCkBAIC02NTcsNiArNjU3LDEyIEBAIENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQog CXJlc3VsdFJlbEluZm8gPSB0YXJnZXRfcmVzdWx0UmVsSW5mbyA9IG1ha2VOb2RlKFJlc3VsdFJl bEluZm8pOwogCUV4ZWNJbml0UmVzdWx0UmVsYXRpb24oZXN0YXRlLCByZXN1bHRSZWxJbmZvLCAx KTsKIAorCS8qCisJICogQ29weSB0aGUgcmVsYXRpb24gcGVybWlzc2lvbnMgaW50byBlc3RhdGUg YXMgd2VsbCwgc28gdGhhdAorCSAqIEV4ZWNHZXRJbnNlcnRlZENvbHMoKSBldCBhbCB3aWxsIHdv cmsgY29ycmVjdGx5LgorCSAqLworCWVzdGF0ZS0+ZXNfcmVscGVybWxpc3QgPSBjc3RhdGUtPnJl bHBlcm1saXN0OworCiAJLyogVmVyaWZ5IHRoZSBuYW1lZCByZWxhdGlvbiBpcyBhIHZhbGlkIHRh cmdldCBmb3IgSU5TRVJUICovCiAJQ2hlY2tWYWxpZFJlc3VsdFJlbChyZXN1bHRSZWxJbmZvLCBD TURfSU5TRVJUKTsKIApAQCAtMTM4Myw3ICsxMzg5LDEwIEBAIEJlZ2luQ29weUZyb20oUGFyc2VT dGF0ZSAqcHN0YXRlLAogCiAJLyogQXNzaWduIHJhbmdlIHRhYmxlLCB3ZSdsbCBuZWVkIGl0IGlu IENvcHlGcm9tLiAqLwogCWlmIChwc3RhdGUpCisJewogCQljc3RhdGUtPnJhbmdlX3RhYmxlID0g cHN0YXRlLT5wX3J0YWJsZTsKKwkJY3N0YXRlLT5yZWxwZXJtbGlzdCA9IHBzdGF0ZS0+cF9yZWxw ZXJtbGlzdDsKKwl9CiAKIAl0dXBEZXNjID0gUmVsYXRpb25HZXREZXNjcihjc3RhdGUtPnJlbCk7 CiAJbnVtX3BoeXNfYXR0cnMgPSB0dXBEZXNjLT5uYXR0czsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRz LmMKaW5kZXggY2QzMGYxNWViYS4uMzU2YTkzZjdjNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRz LmMKQEAgLTEyMzEsNyArMTIzMSw4IEBAIERlZmluZUluZGV4KE9pZCByZWxhdGlvbklkLAogCQkJ CWNoaWxkaWR4cyA9IFJlbGF0aW9uR2V0SW5kZXhMaXN0KGNoaWxkcmVsKTsKIAkJCQlhdHRtYXAg PQogCQkJCQlidWlsZF9hdHRybWFwX2J5X25hbWUoUmVsYXRpb25HZXREZXNjcihjaGlsZHJlbCks Ci0JCQkJCQkJCQkJICBwYXJlbnREZXNjKTsKKwkJCQkJCQkJCQkgIHBhcmVudERlc2MsCisJCQkJ CQkJCQkJICBmYWxzZSk7CiAKIAkJCQlmb3JlYWNoKGNlbGwsIGNoaWxkaWR4cykKIAkJCQl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDgwZmFhZTk4NWUuLjhiNWJiNTQ3ZmEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMjAwLDcgKzEyMDAsOCBAQCBEZWZpbmVSZWxhdGlv bihDcmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQkJfQogCiAJ CQlhdHRtYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWUoUmVsYXRpb25HZXREZXNjcihyZWwpLAot CQkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0RGVzY3IocGFyZW50KSk7CisJCQkJCQkJCQkJICAgUmVs YXRpb25HZXREZXNjcihwYXJlbnQpLAorCQkJCQkJCQkJCSAgIGZhbHNlKTsKIAkJCWlkeHN0bXQg PQogCQkJCWdlbmVyYXRlQ2xvbmVkSW5kZXhTdG10KE5VTEwsIGlkeFJlbCwKIAkJCQkJCQkJCQlh dHRtYXAsICZjb25zdHJhaW50T2lkKTsKQEAgLTk2MjUsNyArOTYyNiw4IEBAIGFkZEZrUmVjdXJz ZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxh dGlvbiByZWwsCiAJCQkgKiBkZWZpbml0aW9uIHRvIG1hdGNoIHRoZSBwYXJ0aXRpb24ncyBjb2x1 bW4gbGF5b3V0LgogCQkJICovCiAJCQltYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWVfaWZfcmVx KFJlbGF0aW9uR2V0RGVzY3IocGFydFJlbCksCi0JCQkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0RGVz Y3IocGtyZWwpKTsKKwkJCQkJCQkJCQkJICAgUmVsYXRpb25HZXREZXNjcihwa3JlbCksCisJCQkJ CQkJCQkJCSAgIGZhbHNlKTsKIAkJCWlmIChtYXApCiAJCQl7CiAJCQkJbWFwcGVkX3BrYXR0bnVt ID0gcGFsbG9jKHNpemVvZihBdHRyTnVtYmVyKSAqIG51bWZrcyk7CkBAIC05NzkyLDcgKzk3OTQs OCBAQCBhZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpm a2NvbnN0cmFpbnQsIFJlbGF0aW9uIHJlbCwKIAkJCUNoZWNrVGFibGVOb3RJblVzZShwYXJ0aXRp b24sICJBTFRFUiBUQUJMRSIpOwogCiAJCQlhdHRtYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWUo UmVsYXRpb25HZXREZXNjcihwYXJ0aXRpb24pLAotCQkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0RGVz Y3IocmVsKSk7CisJCQkJCQkJCQkJICAgUmVsYXRpb25HZXREZXNjcihyZWwpLAorCQkJCQkJCQkJ CSAgIGZhbHNlKTsKIAkJCWZvciAoaW50IGogPSAwOyBqIDwgbnVtZmtzOyBqKyspCiAJCQkJbWFw cGVkX2ZrYXR0bnVtW2pdID0gYXR0bWFwLT5hdHRudW1zW2ZrYXR0bnVtW2pdIC0gMV07CiAKQEAg LTk5OTgsNyArMTAwMDEsOCBAQCBDbG9uZUZrUmVmZXJlbmNlZChSZWxhdGlvbiBwYXJlbnRSZWws IFJlbGF0aW9uIHBhcnRpdGlvblJlbCkKIAl0cmlncmVsID0gdGFibGVfb3BlbihUcmlnZ2VyUmVs YXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CiAKIAlhdHRtYXAgPSBidWlsZF9hdHRybWFwX2J5 X25hbWUoUmVsYXRpb25HZXREZXNjcihwYXJ0aXRpb25SZWwpLAotCQkJCQkJCQkgICBSZWxhdGlv bkdldERlc2NyKHBhcmVudFJlbCkpOworCQkJCQkJCQkgICBSZWxhdGlvbkdldERlc2NyKHBhcmVu dFJlbCksCisJCQkJCQkJCSAgIGZhbHNlKTsKIAlmb3JlYWNoKGNlbGwsIGNsb25lKQogCXsKIAkJ T2lkCQkJY29uc3RyT2lkID0gbGZpcnN0X29pZChjZWxsKTsKQEAgLTEwMTc2LDcgKzEwMTgwLDgg QEAgQ2xvbmVGa1JlZmVyZW5jaW5nKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHBhcmVudFJlbCwg UmVsYXRpb24gcGFydFJlbCkKIAkgKiBkaWZmZXJlbnQuICBUaGlzIG1hcCBpcyB1c2VkIHRvIGNv bnZlcnQgdGhlbS4KIAkgKi8KIAlhdHRtYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWUoUmVsYXRp b25HZXREZXNjcihwYXJ0UmVsKSwKLQkJCQkJCQkJICAgUmVsYXRpb25HZXREZXNjcihwYXJlbnRS ZWwpKTsKKwkJCQkJCQkJICAgUmVsYXRpb25HZXREZXNjcihwYXJlbnRSZWwpLAorCQkJCQkJCQkg ICBmYWxzZSk7CiAKIAlwYXJ0RktzID0gY29weU9iamVjdChSZWxhdGlvbkdldEZLZXlMaXN0KHBh cnRSZWwpKTsKIApAQCAtMTIyNzAsNyArMTIyNzUsOCBAQCBBVFByZXBBbHRlckNvbHVtblR5cGUo TGlzdCAqKndxdWV1ZSwKIAkJCQljbWQgPSBjb3B5T2JqZWN0KGNtZCk7CiAKIAkJCQlhdHRtYXAg PSBidWlsZF9hdHRybWFwX2J5X25hbWUoUmVsYXRpb25HZXREZXNjcihjaGlsZHJlbCksCi0JCQkJ CQkJCQkJCSAgIFJlbGF0aW9uR2V0RGVzY3IocmVsKSk7CisJCQkJCQkJCQkJCSAgIFJlbGF0aW9u R2V0RGVzY3IocmVsKSwKKwkJCQkJCQkJCQkJICAgZmFsc2UpOwogCQkJCSgoQ29sdW1uRGVmICop IGNtZC0+ZGVmKS0+Y29va2VkX2RlZmF1bHQgPQogCQkJCQltYXBfdmFyaWFibGVfYXR0bm9zKGRl Zi0+Y29va2VkX2RlZmF1bHQsCiAJCQkJCQkJCQkJMSwgMCwKQEAgLTE4MDIxLDcgKzE4MDI3LDgg QEAgQXR0YWNoUGFydGl0aW9uRW5zdXJlSW5kZXhlcyhSZWxhdGlvbiByZWwsIFJlbGF0aW9uIGF0 dGFjaHJlbCkKIAkJLyogY29uc3RydWN0IGFuIGluZGV4aW5mbyB0byBjb21wYXJlIGV4aXN0aW5n IGluZGV4ZXMgYWdhaW5zdCAqLwogCQlpbmZvID0gQnVpbGRJbmRleEluZm8oaWR4UmVsKTsKIAkJ YXR0bWFwID0gYnVpbGRfYXR0cm1hcF9ieV9uYW1lKFJlbGF0aW9uR2V0RGVzY3IoYXR0YWNocmVs KSwKLQkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0RGVzY3IocmVsKSk7CisJCQkJCQkJCQkgICBSZWxh dGlvbkdldERlc2NyKHJlbCksCisJCQkJCQkJCQkgICBmYWxzZSk7CiAJCWNvbnN0cmFpbnRPaWQg PSBnZXRfcmVsYXRpb25faWR4X2NvbnN0cmFpbnRfb2lkKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwg aWR4KTsKIAogCQkvKgpAQCAtMTg5NDgsNyArMTg5NTUsOCBAQCBBVEV4ZWNBdHRhY2hQYXJ0aXRp b25JZHgoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcGFyZW50SWR4LCBSYW5nZVZhciAqbmFtZSkK IAkJY2hpbGRJbmZvID0gQnVpbGRJbmRleEluZm8ocGFydElkeCk7CiAJCXBhcmVudEluZm8gPSBC dWlsZEluZGV4SW5mbyhwYXJlbnRJZHgpOwogCQlhdHRtYXAgPSBidWlsZF9hdHRybWFwX2J5X25h bWUoUmVsYXRpb25HZXREZXNjcihwYXJ0VGJsKSwKLQkJCQkJCQkJCSAgIFJlbGF0aW9uR2V0RGVz Y3IocGFyZW50VGJsKSk7CisJCQkJCQkJCQkgICBSZWxhdGlvbkdldERlc2NyKHBhcmVudFRibCks CisJCQkJCQkJCQkgICBmYWxzZSk7CiAJCWlmICghQ29tcGFyZUluZGV4SW5mbyhjaGlsZEluZm8s IHBhcmVudEluZm8sCiAJCQkJCQkJICBwYXJ0SWR4LT5yZF9pbmRjb2xsYXRpb24sCiAJCQkJCQkJ ICBwYXJlbnRJZHgtPnJkX2luZGNvbGxhdGlvbiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwppbmRleCA4NjkwYTNm M2M2Li4xNjBjNzA5MDQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCkBAIC0zOTcsMTAgKzM5Nyw2IEBAIFVw ZGF0ZVJhbmdlVGFibGVPZlZpZXdQYXJzZShPaWQgdmlld09pZCwgUXVlcnkgKnZpZXdQYXJzZSkK IAkJCQkJCQkJCQkgICBmYWxzZSwgZmFsc2UpOwogCXJ0X2VudHJ5MiA9IG5zaXRlbS0+cF9ydGU7 CiAKLQkvKiBNdXN0IG92ZXJyaWRlIGFkZFJhbmdlVGFibGVFbnRyeSdzIGRlZmF1bHQgYWNjZXNz LWNoZWNrIGZsYWdzICovCi0JcnRfZW50cnkxLT5yZXF1aXJlZFBlcm1zID0gMDsKLQlydF9lbnRy eTItPnJlcXVpcmVkUGVybXMgPSAwOwotCiAJbmV3X3J0ID0gbGNvbnMocnRfZW50cnkxLCBsY29u cyhydF9lbnRyeTIsIHZpZXdQYXJzZS0+cnRhYmxlKSk7CiAKIAl2aWV3UGFyc2UtPnJ0YWJsZSA9 IG5ld19ydDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDQ3M2QyZTAwYTIuLjA3NjkzM2I1 MTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtNzQsNyArNzQsNyBAQCBFeGVjdXRvclJ1 bl9ob29rX3R5cGUgRXhlY3V0b3JSdW5faG9vayA9IE5VTEw7CiBFeGVjdXRvckZpbmlzaF9ob29r X3R5cGUgRXhlY3V0b3JGaW5pc2hfaG9vayA9IE5VTEw7CiBFeGVjdXRvckVuZF9ob29rX3R5cGUg RXhlY3V0b3JFbmRfaG9vayA9IE5VTEw7CiAKLS8qIEhvb2sgZm9yIHBsdWdpbiB0byBnZXQgY29u dHJvbCBpbiBFeGVjQ2hlY2tSVFBlcm1zKCkgKi8KKy8qIEhvb2sgZm9yIHBsdWdpbiB0byBnZXQg Y29udHJvbCBpbiBFeGVjQ2hlY2tQZXJtaXNzaW9ucygpICovCiBFeGVjdXRvckNoZWNrUGVybXNf aG9va190eXBlIEV4ZWN1dG9yQ2hlY2tQZXJtc19ob29rID0gTlVMTDsKIAogLyogZGVjbHMgZm9y IGxvY2FsIHJvdXRpbmVzIG9ubHkgdXNlZCB3aXRoaW4gdGhpcyBtb2R1bGUgKi8KQEAgLTkwLDgg KzkwLDggQEAgc3RhdGljIHZvaWQgRXhlY3V0ZVBsYW4oRVN0YXRlICplc3RhdGUsIFBsYW5TdGF0 ZSAqcGxhbnN0YXRlLAogCQkJCQkJU2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24sCiAJCQkJCQlEZXN0 UmVjZWl2ZXIgKmRlc3QsCiAJCQkJCQlib29sIGV4ZWN1dGVfb25jZSk7Ci1zdGF0aWMgYm9vbCBF eGVjQ2hlY2tSVEVQZXJtcyhSYW5nZVRibEVudHJ5ICpydGUpOwotc3RhdGljIGJvb2wgRXhlY0No ZWNrUlRFUGVybXNNb2RpZmllZChPaWQgcmVsT2lkLCBPaWQgdXNlcmlkLAorc3RhdGljIGJvb2wg RXhlY0NoZWNrT25lUmVsUGVybXMoUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvKTsKK3N0YXRp YyBib29sIEV4ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQoT2lkIHJlbE9pZCwgT2lkIHVzZXJp ZCwKIAkJCQkJCQkJCSAgQml0bWFwc2V0ICptb2RpZmllZENvbHMsCiAJCQkJCQkJCQkgIEFjbE1v ZGUgcmVxdWlyZWRQZXJtcyk7CiBzdGF0aWMgdm9pZCBFeGVjQ2hlY2tYYWN0UmVhZE9ubHkoUGxh bm5lZFN0bXQgKnBsYW5uZWRzdG10KTsKQEAgLTU1Myw4ICs1NTMsOCBAQCBFeGVjdXRvclJld2lu ZChRdWVyeURlc2MgKnF1ZXJ5RGVzYykKIAogCiAvKgotICogRXhlY0NoZWNrUlRQZXJtcwotICoJ CUNoZWNrIGFjY2VzcyBwZXJtaXNzaW9ucyBmb3IgYWxsIHJlbGF0aW9ucyBsaXN0ZWQgaW4gYSBy YW5nZSB0YWJsZS4KKyAqIEV4ZWNDaGVja1Blcm1pc3Npb25zCisgKgkJQ2hlY2sgYWNjZXNzIHBl cm1pc3Npb25zIG9mIHJlbGF0aW9ucyBtZW50aW9uZWQgaW4gYSBxdWVyeQogICoKICAqIFJldHVy bnMgdHJ1ZSBpZiBwZXJtaXNzaW9ucyBhcmUgYWRlcXVhdGUuICBPdGhlcndpc2UsIHRocm93cyBh biBhcHByb3ByaWF0ZQogICogZXJyb3IgaWYgZXJlcG9ydF9vbl92aW9sYXRpb24gaXMgdHJ1ZSwg b3Igc2ltcGx5IHJldHVybnMgZmFsc2Ugb3RoZXJ3aXNlLgpAQCAtNTY2LDM4ICs1NjYsMzkgQEAg RXhlY3V0b3JSZXdpbmQoUXVlcnlEZXNjICpxdWVyeURlc2MpCiAgKiBTZWUgcmV3cml0ZS9yb3dz ZWN1cml0eS5jLgogICovCiBib29sCi1FeGVjQ2hlY2tSVFBlcm1zKExpc3QgKnJhbmdlVGFibGUs IGJvb2wgZXJlcG9ydF9vbl92aW9sYXRpb24pCitFeGVjQ2hlY2tQZXJtaXNzaW9ucyhMaXN0ICpy ZWxwZXJtbGlzdCwKKwkJCQkgYm9vbCBlcmVwb3J0X29uX3Zpb2xhdGlvbikKIHsKIAlMaXN0Q2Vs bCAgICpsOwogCWJvb2wJCXJlc3VsdCA9IHRydWU7CiAKLQlmb3JlYWNoKGwsIHJhbmdlVGFibGUp CisJZm9yZWFjaChsLCByZWxwZXJtbGlzdCkKIAl7Ci0JCVJhbmdlVGJsRW50cnkgKnJ0ZSA9IChS YW5nZVRibEVudHJ5ICopIGxmaXJzdChsKTsKKwkJUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZv ID0gKFJlbFBlcm1pc3Npb25JbmZvICopIGxmaXJzdChsKTsKIAotCQlyZXN1bHQgPSBFeGVjQ2hl Y2tSVEVQZXJtcyhydGUpOworCQlBc3NlcnQoT2lkSXNWYWxpZChwZXJtaW5mby0+cmVsaWQpKTsK KwkJcmVzdWx0ID0gRXhlY0NoZWNrT25lUmVsUGVybXMocGVybWluZm8pOwogCQlpZiAoIXJlc3Vs dCkKIAkJewotCQkJQXNzZXJ0KHJ0ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04pOwogCQkJaWYg KGVyZXBvcnRfb25fdmlvbGF0aW9uKQotCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PX1BS SVYsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxraW5kKHJ0ZS0+cmVsaWQpKSwKLQkJ CQkJCQkgICBnZXRfcmVsX25hbWUocnRlLT5yZWxpZCkpOworCQkJCWFjbGNoZWNrX2Vycm9yKEFD TENIRUNLX05PX1BSSVYsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxraW5kKHBlcm1p bmZvLT5yZWxpZCkpLAorCQkJCQkJCSAgIGdldF9yZWxfbmFtZShwZXJtaW5mby0+cmVsaWQpKTsK IAkJCXJldHVybiBmYWxzZTsKIAkJfQogCX0KIAogCWlmIChFeGVjdXRvckNoZWNrUGVybXNfaG9v aykKLQkJcmVzdWx0ID0gKCpFeGVjdXRvckNoZWNrUGVybXNfaG9vaykgKHJhbmdlVGFibGUsCisJ CXJlc3VsdCA9ICgqRXhlY3V0b3JDaGVja1Blcm1zX2hvb2spIChyZWxwZXJtbGlzdCwKIAkJCQkJ CQkJCQkJIGVyZXBvcnRfb25fdmlvbGF0aW9uKTsKIAlyZXR1cm4gcmVzdWx0OwogfQogCiAvKgot ICogRXhlY0NoZWNrUlRFUGVybXMKLSAqCQlDaGVjayBhY2Nlc3MgcGVybWlzc2lvbnMgZm9yIGEg c2luZ2xlIFJURS4KKyAqIEV4ZWNDaGVja09uZVJlbFBlcm1zCisgKgkJQ2hlY2sgYWNjZXNzIHBl cm1pc3Npb25zIGZvciBhIHNpbmdsZSByZWxhdGlvbi4KICAqLwogc3RhdGljIGJvb2wKLUV4ZWND aGVja1JURVBlcm1zKFJhbmdlVGJsRW50cnkgKnJ0ZSkKK0V4ZWNDaGVja09uZVJlbFBlcm1zKFJl bFBlcm1pc3Npb25JbmZvICpwZXJtaW5mbykKIHsKIAlBY2xNb2RlCQlyZXF1aXJlZFBlcm1zOwog CUFjbE1vZGUJCXJlbFBlcm1zOwpAQCAtNjA1LDMyICs2MDYsMjEgQEAgRXhlY0NoZWNrUlRFUGVy bXMoUmFuZ2VUYmxFbnRyeSAqcnRlKQogCU9pZAkJCXJlbE9pZDsKIAlPaWQJCQl1c2VyaWQ7CiAK LQkvKgotCSAqIE9ubHkgcGxhaW4tcmVsYXRpb24gUlRFcyBuZWVkIHRvIGJlIGNoZWNrZWQgaGVy ZS4gIEZ1bmN0aW9uIFJURXMgYXJlCi0JICogY2hlY2tlZCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBw cmVwYXJlZCBmb3IgZXhlY3V0aW9uLiAgSm9pbiwgc3VicXVlcnksCi0JICogYW5kIHNwZWNpYWwg UlRFcyBuZWVkIG5vIGNoZWNrcy4KLQkgKi8KLQlpZiAocnRlLT5ydGVraW5kICE9IFJURV9SRUxB VElPTikKLQkJcmV0dXJuIHRydWU7CisJcmVxdWlyZWRQZXJtcyA9IHBlcm1pbmZvLT5yZXF1aXJl ZFBlcm1zOworCUFzc2VydChyZXF1aXJlZFBlcm1zICE9IDApOwogCi0JLyoKLQkgKiBObyB3b3Jr IGlmIHJlcXVpcmVkUGVybXMgaXMgZW1wdHkuCi0JICovCi0JcmVxdWlyZWRQZXJtcyA9IHJ0ZS0+ cmVxdWlyZWRQZXJtczsKLQlpZiAocmVxdWlyZWRQZXJtcyA9PSAwKQotCQlyZXR1cm4gdHJ1ZTsK LQotCXJlbE9pZCA9IHJ0ZS0+cmVsaWQ7CisJcmVsT2lkID0gcGVybWluZm8tPnJlbGlkOworCUFz c2VydChPaWRJc1ZhbGlkKHJlbE9pZCkpOwogCiAJLyoKIAkgKiB1c2VyaWQgdG8gY2hlY2sgYXM6 IGN1cnJlbnQgdXNlciB1bmxlc3Mgd2UgaGF2ZSBhIHNldHVpZCBpbmRpY2F0aW9uLgogCSAqCiAJ ICogTm90ZTogR2V0VXNlcklkKCkgaXMgcHJlc2VudGx5IGZhc3QgZW5vdWdoIHRoYXQgdGhlcmUn cyBubyBoYXJtIGluCi0JICogY2FsbGluZyBpdCBzZXBhcmF0ZWx5IGZvciBlYWNoIFJURS4gIElm IHRoYXQgc3RvcHMgYmVpbmcgdHJ1ZSwgd2UgY291bGQKLQkgKiBjYWxsIGl0IG9uY2UgaW4gRXhl Y0NoZWNrUlRQZXJtcyBhbmQgcGFzcyB0aGUgdXNlcmlkIGRvd24gZnJvbSB0aGVyZS4KLQkgKiBC dXQgZm9yIG5vdywgbm8gbmVlZCBmb3IgdGhlIGV4dHJhIGNsdXR0ZXIuCisJICogY2FsbGluZyBp dCBzZXBhcmF0ZWx5IGZvciBlYWNoIHJlbGF0aW9uLiAgSWYgdGhhdCBzdG9wcyBiZWluZyB0cnVl LCB3ZQorCSAqIGNvdWxkIGNhbGwgaXQgb25jZSBpbiBFeGVjQ2hlY2tQZXJtaXNzc2lvbnMgYW5k IHBhc3MgdGhlIHVzZXJpZCBkb3duIGZyb20KKwkgKiB0aGVyZS4gIEJ1dCBmb3Igbm93LCBubyBu ZWVkIGZvciB0aGUgZXh0cmEgY2x1dHRlci4KIAkgKi8KLQl1c2VyaWQgPSBydGUtPmNoZWNrQXNV c2VyID8gcnRlLT5jaGVja0FzVXNlciA6IEdldFVzZXJJZCgpOworCXVzZXJpZCA9IHBlcm1pbmZv LT5jaGVja0FzVXNlciA/IHBlcm1pbmZvLT5jaGVja0FzVXNlciA6IEdldFVzZXJJZCgpOwogCiAJ LyoKIAkgKiBXZSBtdXN0IGhhdmUgKmFsbCogdGhlIHJlcXVpcmVkUGVybXMgYml0cywgYnV0IHNv bWUgb2YgdGhlIGJpdHMgY2FuIGJlCkBAIC02NjQsMTQgKzY1NCwxNCBAQCBFeGVjQ2hlY2tSVEVQ ZXJtcyhSYW5nZVRibEVudHJ5ICpydGUpCiAJCQkgKiBleGFtcGxlLCBTRUxFQ1QgQ09VTlQoKikg RlJPTSB0YWJsZSksIGFsbG93IHRoZSBxdWVyeSBpZiB3ZQogCQkJICogaGF2ZSBTRUxFQ1Qgb24g YW55IGNvbHVtbiBvZiB0aGUgcmVsLCBhcyBwZXIgU1FMIHNwZWMuCiAJCQkgKi8KLQkJCWlmIChi bXNfaXNfZW1wdHkocnRlLT5zZWxlY3RlZENvbHMpKQorCQkJaWYgKGJtc19pc19lbXB0eShwZXJt aW5mby0+c2VsZWN0ZWRDb2xzKSkKIAkJCXsKIAkJCQlpZiAocGdfYXR0cmlidXRlX2FjbGNoZWNr X2FsbChyZWxPaWQsIHVzZXJpZCwgQUNMX1NFTEVDVCwKIAkJCQkJCQkJCQkJICBBQ0xNQVNLX0FO WSkgIT0gQUNMQ0hFQ0tfT0spCiAJCQkJCXJldHVybiBmYWxzZTsKIAkJCX0KIAotCQkJd2hpbGUg KChjb2wgPSBibXNfbmV4dF9tZW1iZXIocnRlLT5zZWxlY3RlZENvbHMsIGNvbCkpID49IDApCisJ CQl3aGlsZSAoKGNvbCA9IGJtc19uZXh0X21lbWJlcihwZXJtaW5mby0+c2VsZWN0ZWRDb2xzLCBj b2wpKSA+PSAwKQogCQkJewogCQkJCS8qIGJpdCAjcyBhcmUgb2Zmc2V0IGJ5IEZpcnN0TG93SW52 YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIgKi8KIAkJCQlBdHRyTnVtYmVyCWF0dG5vID0gY29sICsg Rmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcjsKQEAgLTY5NiwxNSArNjg2LDE1IEBA IEV4ZWNDaGVja1JURVBlcm1zKFJhbmdlVGJsRW50cnkgKnJ0ZSkKIAkJICogQmFzaWNhbGx5IHRo ZSBzYW1lIGZvciB0aGUgbW9kIGNvbHVtbnMsIGZvciBib3RoIElOU0VSVCBhbmQgVVBEQVRFCiAJ CSAqIHByaXZpbGVnZSBhcyBzcGVjaWZpZWQgYnkgcmVtYWluaW5nUGVybXMuCiAJCSAqLwotCQlp ZiAocmVtYWluaW5nUGVybXMgJiBBQ0xfSU5TRVJUICYmICFFeGVjQ2hlY2tSVEVQZXJtc01vZGlm aWVkKHJlbE9pZCwKKwkJaWYgKHJlbWFpbmluZ1Blcm1zICYgQUNMX0lOU0VSVCAmJiAhRXhlY0No ZWNrUGVybWlzc2lvbnNNb2RpZmllZChyZWxPaWQsCiAJCQkJCQkJCQkJCQkJCQkJCSAgdXNlcmlk LAotCQkJCQkJCQkJCQkJCQkJCQkgIHJ0ZS0+aW5zZXJ0ZWRDb2xzLAorCQkJCQkJCQkJCQkJCQkJ CQkgIHBlcm1pbmZvLT5pbnNlcnRlZENvbHMsCiAJCQkJCQkJCQkJCQkJCQkJCSAgQUNMX0lOU0VS VCkpCiAJCQlyZXR1cm4gZmFsc2U7CiAKLQkJaWYgKHJlbWFpbmluZ1Blcm1zICYgQUNMX1VQREFU RSAmJiAhRXhlY0NoZWNrUlRFUGVybXNNb2RpZmllZChyZWxPaWQsCisJCWlmIChyZW1haW5pbmdQ ZXJtcyAmIEFDTF9VUERBVEUgJiYgIUV4ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQocmVsT2lk LAogCQkJCQkJCQkJCQkJCQkJCQkgIHVzZXJpZCwKLQkJCQkJCQkJCQkJCQkJCQkJICBydGUtPnVw ZGF0ZWRDb2xzLAorCQkJCQkJCQkJCQkJCQkJCQkgIHBlcm1pbmZvLT51cGRhdGVkQ29scywKIAkJ CQkJCQkJCQkJCQkJCQkJICBBQ0xfVVBEQVRFKSkKIAkJCXJldHVybiBmYWxzZTsKIAl9CkBAIC03 MTIsMTIgKzcwMiwxMiBAQCBFeGVjQ2hlY2tSVEVQZXJtcyhSYW5nZVRibEVudHJ5ICpydGUpCiB9 CiAKIC8qCi0gKiBFeGVjQ2hlY2tSVEVQZXJtc01vZGlmaWVkCi0gKgkJQ2hlY2sgSU5TRVJUIG9y IFVQREFURSBhY2Nlc3MgcGVybWlzc2lvbnMgZm9yIGEgc2luZ2xlIFJURSAodGhlc2UKKyAqIEV4 ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQKKyAqCQlDaGVjayBJTlNFUlQgb3IgVVBEQVRFIGFj Y2VzcyBwZXJtaXNzaW9ucyBmb3IgYSBzaW5nbGUgcmVsYXRpb24gKHRoZXNlCiAgKgkJYXJlIHBy b2Nlc3NlZCB1bmlmb3JtbHkpLgogICovCiBzdGF0aWMgYm9vbAotRXhlY0NoZWNrUlRFUGVybXNN b2RpZmllZChPaWQgcmVsT2lkLCBPaWQgdXNlcmlkLCBCaXRtYXBzZXQgKm1vZGlmaWVkQ29scywK K0V4ZWNDaGVja1Blcm1pc3Npb25zTW9kaWZpZWQoT2lkIHJlbE9pZCwgT2lkIHVzZXJpZCwgQml0 bWFwc2V0ICptb2RpZmllZENvbHMsCiAJCQkJCQkgIEFjbE1vZGUgcmVxdWlyZWRQZXJtcykKIHsK IAlpbnQJCQljb2wgPSAtMTsKQEAgLTc3MiwxNyArNzYyLDE0IEBAIEV4ZWNDaGVja1hhY3RSZWFk T25seShQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQpCiAJICogRmFpbCBpZiB3cml0ZSBwZXJtaXNz aW9ucyBhcmUgcmVxdWVzdGVkIGluIHBhcmFsbGVsIG1vZGUgZm9yIHRhYmxlCiAJICogKHRlbXAg b3Igbm9uLXRlbXApLCBvdGhlcndpc2UgZmFpbCBmb3IgYW55IG5vbi10ZW1wIHRhYmxlLgogCSAq LwotCWZvcmVhY2gobCwgcGxhbm5lZHN0bXQtPnJ0YWJsZSkKKwlmb3JlYWNoKGwsIHBsYW5uZWRz dG10LT5yZWxwZXJtbGlzdCkKIAl7Ci0JCVJhbmdlVGJsRW50cnkgKnJ0ZSA9IChSYW5nZVRibEVu dHJ5ICopIGxmaXJzdChsKTsKLQotCQlpZiAocnRlLT5ydGVraW5kICE9IFJURV9SRUxBVElPTikK LQkJCWNvbnRpbnVlOworCQlSZWxQZXJtaXNzaW9uSW5mbyAqcGVybWluZm8gPSAoUmVsUGVybWlz c2lvbkluZm8gKikgbGZpcnN0KGwpOwogCi0JCWlmICgocnRlLT5yZXF1aXJlZFBlcm1zICYgKH5B Q0xfU0VMRUNUKSkgPT0gMCkKKwkJaWYgKChwZXJtaW5mby0+cmVxdWlyZWRQZXJtcyAmICh+QUNM X1NFTEVDVCkpID09IDApCiAJCQljb250aW51ZTsKIAotCQlpZiAoaXNUZW1wTmFtZXNwYWNlKGdl dF9yZWxfbmFtZXNwYWNlKHJ0ZS0+cmVsaWQpKSkKKwkJaWYgKGlzVGVtcE5hbWVzcGFjZShnZXRf cmVsX25hbWVzcGFjZShwZXJtaW5mby0+cmVsaWQpKSkKIAkJCWNvbnRpbnVlOwogCiAJCVByZXZl bnRDb21tYW5kSWZSZWFkT25seShDcmVhdGVDb21tYW5kTmFtZSgoTm9kZSAqKSBwbGFubmVkc3Rt dCkpOwpAQCAtODE0LDkgKzgwMSwxMCBAQCBJbml0UGxhbihRdWVyeURlc2MgKnF1ZXJ5RGVzYywg aW50IGVmbGFncykKIAlpbnQJCQlpOwogCiAJLyoKLQkgKiBEbyBwZXJtaXNzaW9ucyBjaGVja3MK KwkgKiBEbyBwZXJtaXNzaW9ucyBjaGVja3MgYW5kIHNhdmUgdGhlIGxpc3QgZm9yIGxhdGVyIHVz ZS4KIAkgKi8KLQlFeGVjQ2hlY2tSVFBlcm1zKHJhbmdlVGFibGUsIHRydWUpOworCUV4ZWNDaGVj a1Blcm1pc3Npb25zKHBsYW5uZWRzdG10LT5yZWxwZXJtbGlzdCwgdHJ1ZSk7CisJZXN0YXRlLT5l c19yZWxwZXJtbGlzdCA9IHBsYW5uZWRzdG10LT5yZWxwZXJtbGlzdDsKIAogCS8qCiAJICogaW5p dGlhbGl6ZSB0aGUgbm9kZSdzIGV4ZWN1dGlvbiBzdGF0ZQpAQCAtMTg1NSw3ICsxODQzLDcgQEAg RXhlY1BhcnRpdGlvbkNoZWNrRW1pdEVycm9yKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8s CiAKIAkJb2xkX3R1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlc3VsdFJlbEluZm8tPnJpX1Jl bGF0aW9uRGVzYyk7CiAJCS8qIGEgcmV2ZXJzZSBtYXAgKi8KLQkJbWFwID0gYnVpbGRfYXR0cm1h cF9ieV9uYW1lX2lmX3JlcShvbGRfdHVwZGVzYywgdHVwZGVzYyk7CisJCW1hcCA9IGJ1aWxkX2F0 dHJtYXBfYnlfbmFtZV9pZl9yZXEob2xkX3R1cGRlc2MsIHR1cGRlc2MsIGZhbHNlKTsKIAogCQkv KgogCQkgKiBQYXJ0aXRpb24tc3BlY2lmaWMgc2xvdCdzIHR1cGRlc2MgY2FuJ3QgYmUgY2hhbmdl ZCwgc28gYWxsb2NhdGUgYQpAQCAtMTk0MCw3ICsxOTI4LDggQEAgRXhlY0NvbnN0cmFpbnRzKFJl c3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQkJCXR1cGRlc2MgPSBSZWxhdGlvbkdldERl c2NyKHJvb3RyZWwtPnJpX1JlbGF0aW9uRGVzYyk7CiAJCQkJCS8qIGEgcmV2ZXJzZSBtYXAgKi8K IAkJCQkJbWFwID0gYnVpbGRfYXR0cm1hcF9ieV9uYW1lX2lmX3JlcShvcmlnX3R1cGRlc2MsCi0J CQkJCQkJCQkJCQkJICAgdHVwZGVzYyk7CisJCQkJCQkJCQkJCQkJICAgdHVwZGVzYywKKwkJCQkJ CQkJCQkJCQkgICBmYWxzZSk7CiAKIAkJCQkJLyoKIAkJCQkJICogUGFydGl0aW9uLXNwZWNpZmlj IHNsb3QncyB0dXBkZXNjIGNhbid0IGJlIGNoYW5nZWQsIHNvCkBAIC0xOTkyLDcgKzE5ODEsOCBA QCBFeGVjQ29uc3RyYWludHMoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCQl0dXBk ZXNjID0gUmVsYXRpb25HZXREZXNjcihyb290cmVsLT5yaV9SZWxhdGlvbkRlc2MpOwogCQkJCS8q IGEgcmV2ZXJzZSBtYXAgKi8KIAkJCQltYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWVfaWZfcmVx KG9sZF90dXBkZXNjLAotCQkJCQkJCQkJCQkJICAgdHVwZGVzYyk7CisJCQkJCQkJCQkJCQkgICB0 dXBkZXNjLAorCQkJCQkJCQkJCQkJICAgZmFsc2UpOwogCiAJCQkJLyoKIAkJCQkgKiBQYXJ0aXRp b24tc3BlY2lmaWMgc2xvdCdzIHR1cGRlc2MgY2FuJ3QgYmUgY2hhbmdlZCwgc28KQEAgLTIwOTks NyArMjA4OSw4IEBAIEV4ZWNXaXRoQ2hlY2tPcHRpb25zKFdDT0tpbmQga2luZCwgUmVzdWx0UmVs SW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCQkJCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJv b3RyZWwtPnJpX1JlbGF0aW9uRGVzYyk7CiAJCQkJCQkvKiBhIHJldmVyc2UgbWFwICovCiAJCQkJ CQltYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWVfaWZfcmVxKG9sZF90dXBkZXNjLAotCQkJCQkJ CQkJCQkJCQkgICB0dXBkZXNjKTsKKwkJCQkJCQkJCQkJCQkJICAgdHVwZGVzYywKKwkJCQkJCQkJ CQkJCQkJICAgZmFsc2UpOwogCiAJCQkJCQkvKgogCQkJCQkJICogUGFydGl0aW9uLXNwZWNpZmlj IHNsb3QncyB0dXBkZXNjIGNhbid0IGJlIGNoYW5nZWQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jCmluZGV4IDVkZDhhYjdkYjIuLjhiNjFhZWJlODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jCkBAIC0xODQsNiArMTg0LDcgQEAgRXhlY1NlcmlhbGl6ZVBsYW4oUGxhbiAq cGxhbiwgRVN0YXRlICplc3RhdGUpCiAJcHN0bXQtPnBhcmFsbGVsTW9kZU5lZWRlZCA9IGZhbHNl OwogCXBzdG10LT5wbGFuVHJlZSA9IHBsYW47CiAJcHN0bXQtPnJ0YWJsZSA9IGVzdGF0ZS0+ZXNf cmFuZ2VfdGFibGU7CisJcHN0bXQtPnJlbHBlcm1saXN0ID0gTklMOwogCXBzdG10LT5yZXN1bHRS ZWxhdGlvbnMgPSBOSUw7CiAJcHN0bXQtPmFwcGVuZFJlbGF0aW9ucyA9IE5JTDsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5jCmluZGV4IDkwZWQxNDg1ZDEuLjk4MWQ3ZDMxMTEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUGFydGl0aW9uLmMKQEAgLTU3NCw3ICs1NzQsOCBAQCBFeGVj SW5pdFBhcnRpdGlvbkluZm8oTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwgRVN0YXRlICplc3Rh dGUsCiAJCSAqLwogCQlwYXJ0X2F0dG1hcCA9CiAJCQlidWlsZF9hdHRybWFwX2J5X25hbWUoUmVs YXRpb25HZXREZXNjcihwYXJ0cmVsKSwKLQkJCQkJCQkJICBSZWxhdGlvbkdldERlc2NyKGZpcnN0 UmVzdWx0UmVsKSk7CisJCQkJCQkJCSAgUmVsYXRpb25HZXREZXNjcihmaXJzdFJlc3VsdFJlbCks CisJCQkJCQkJCSAgZmFsc2UpOwogCQl3Y29MaXN0ID0gKExpc3QgKikKIAkJCW1hcF92YXJpYWJs ZV9hdHRub3MoKE5vZGUgKikgd2NvTGlzdCwKIAkJCQkJCQkJZmlyc3RWYXJubywgMCwKQEAgLTYz MSw3ICs2MzIsOCBAQCBFeGVjSW5pdFBhcnRpdGlvbkluZm8oTW9kaWZ5VGFibGVTdGF0ZSAqbXRz dGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJCWlmIChwYXJ0X2F0dG1hcCA9PSBOVUxMKQogCQkJcGFy dF9hdHRtYXAgPQogCQkJCWJ1aWxkX2F0dHJtYXBfYnlfbmFtZShSZWxhdGlvbkdldERlc2NyKHBh cnRyZWwpLAotCQkJCQkJCQkJICBSZWxhdGlvbkdldERlc2NyKGZpcnN0UmVzdWx0UmVsKSk7CisJ CQkJCQkJCQkgIFJlbGF0aW9uR2V0RGVzY3IoZmlyc3RSZXN1bHRSZWwpLAorCQkJCQkJCQkJICBm YWxzZSk7CiAJCXJldHVybmluZ0xpc3QgPSAoTGlzdCAqKQogCQkJbWFwX3ZhcmlhYmxlX2F0dG5v cygoTm9kZSAqKSByZXR1cm5pbmdMaXN0LAogCQkJCQkJCQlmaXJzdFZhcm5vLCAwLApAQCAtNzcz LDcgKzc3NSw4IEBAIEV4ZWNJbml0UGFydGl0aW9uSW5mbyhNb2RpZnlUYWJsZVN0YXRlICptdHN0 YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAkJCQlpZiAocGFydF9hdHRtYXAgPT0gTlVMTCkKIAkJCQkJ cGFydF9hdHRtYXAgPQogCQkJCQkJYnVpbGRfYXR0cm1hcF9ieV9uYW1lKFJlbGF0aW9uR2V0RGVz Y3IocGFydHJlbCksCi0JCQkJCQkJCQkJCSAgUmVsYXRpb25HZXREZXNjcihmaXJzdFJlc3VsdFJl bCkpOworCQkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0RGVzY3IoZmlyc3RSZXN1bHRSZWwpLAorCQkJ CQkJCQkJCQkgIGZhbHNlKTsKIAkJCQlvbmNvbmZsc2V0ID0gKExpc3QgKikKIAkJCQkJbWFwX3Zh cmlhYmxlX2F0dG5vcygoTm9kZSAqKSBvbmNvbmZsc2V0LAogCQkJCQkJCQkJCUlOTkVSX1ZBUiwg MCwKQEAgLTEwNDAsNyArMTA0Myw4IEBAIEV4ZWNJbml0UGFydGl0aW9uRGlzcGF0Y2hJbmZvKEVT dGF0ZSAqZXN0YXRlLAogCQkgKiByb3V0aW5nLgogCQkgKi8KIAkJcGQtPnR1cG1hcCA9IGJ1aWxk X2F0dHJtYXBfYnlfbmFtZV9pZl9yZXEoUmVsYXRpb25HZXREZXNjcihwYXJlbnRfcGQtPnJlbGRl c2MpLAotCQkJCQkJCQkJCQkJICB0dXBkZXNjKTsKKwkJCQkJCQkJCQkJCSAgdHVwZGVzYywKKwkJ CQkJCQkJCQkJCSAgZmFsc2UpOwogCQlwZC0+dHVwc2xvdCA9IHBkLT50dXBtYXAgPwogCQkJTWFr ZVNpbmdsZVR1cGxlVGFibGVTbG90KHR1cGRlc2MsICZUVFNPcHNWaXJ0dWFsKSA6IE5VTEw7CiAJ fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwppbmRleCA5ZGYxZjgxZWE4Li43MzJmODMzMTIwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZXRyZWUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNs dWRlICJwYXJ0aXRpb25pbmcvcGFydGRlc2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMTI1MSwzMyArMTI1Miw2NCBAQCBFeGVj R2V0Q2hpbGRUb1Jvb3RNYXAoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbykKIAlyZXR1cm4g cmVzdWx0UmVsSW5mby0+cmlfQ2hpbGRUb1Jvb3RNYXA7CiB9CiAKLS8qIFJldHVybiBhIGJpdG1h cCByZXByZXNlbnRpbmcgY29sdW1ucyBiZWluZyBpbnNlcnRlZCAqLwotQml0bWFwc2V0ICoKLUV4 ZWNHZXRJbnNlcnRlZENvbHMoUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgRVN0YXRlICplc3RhdGUp CisvKgorICogUmV0dXJuIHRoZSBtYXAgbmVlZGVkIHRvIGNvbnZlcnQgInJvb3QiIHRhYmxlIGNv bHVtbiBiaXRtYXBzZXRzIHRvIHRoZQorICogcm93dHlwZSBvZiBhbiBpbmRpdmlkdWFsIGNoaWxk IHRhYmxlLiAgTm90ZSB0aGF0IGEgTlVMTCByZXN1bHQgaXMgdmFsaWQgYW5kCisgKiBtZWFucyB0 aGF0IG5vIGNvbnZlcnNpb24gaXMgbmVlZGVkLgorICovCitBdHRyTWFwICoKK0V4ZWNHZXRSb290 VG9DaGlsZE1hcChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAorCQkJCQkgIEVTdGF0ZSAq ZXN0YXRlKQogewotCS8qCi0JICogVGhlIGNvbHVtbnMgYXJlIHN0b3JlZCBpbiB0aGUgcmFuZ2Ug dGFibGUgZW50cnkuICBJZiB0aGlzIFJlc3VsdFJlbEluZm8KLQkgKiByZXByZXNlbnRzIGEgcGFy dGl0aW9uIHJvdXRpbmcgdGFyZ2V0LCBhbmQgZG9lc24ndCBoYXZlIGFuIGVudHJ5IG9mIGl0cwot CSAqIG93biBpbiB0aGUgcmFuZ2UgdGFibGUsIGZldGNoIHRoZSBwYXJlbnQncyBSVEUgYW5kIG1h cCB0aGUgY29sdW1ucyB0bwotCSAqIHRoZSBvcmRlciB0aGV5IGFyZSBpbiB0aGUgcGFydGl0aW9u LgotCSAqLwotCWlmIChyZWxpbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXggIT0gMCkKKwkvKiBJZiB3 ZSBkaWRuJ3QgYWxyZWFkeSBkbyBzbywgY29tcHV0ZSB0aGUgbWFwIGZvciB0aGlzIGNoaWxkLiAq LworCWlmICghcmVzdWx0UmVsSW5mby0+cmlfUm9vdFRvQ2hpbGRNYXBWYWxpZCkKIAl7Ci0JCVJh bmdlVGJsRW50cnkgKnJ0ZSA9IGV4ZWNfcnRfZmV0Y2gocmVsaW5mby0+cmlfUmFuZ2VUYWJsZUlu ZGV4LCBlc3RhdGUpOworCQlSZXN1bHRSZWxJbmZvICpyb290UmVsSW5mbyA9IHJlc3VsdFJlbElu Zm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvOworCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQgPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQpOwogCi0JCXJldHVybiBy dGUtPmluc2VydGVkQ29sczsKLQl9Ci0JZWxzZSBpZiAocmVsaW5mby0+cmlfUm9vdFJlc3VsdFJl bEluZm8pCi0JewotCQlSZXN1bHRSZWxJbmZvICpyb290UmVsSW5mbyA9IHJlbGluZm8tPnJpX1Jv b3RSZXN1bHRSZWxJbmZvOwotCQlSYW5nZVRibEVudHJ5ICpydGUgPSBleGVjX3J0X2ZldGNoKHJv b3RSZWxJbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXgsIGVzdGF0ZSk7CisJCWlmIChyb290UmVsSW5m bykKKwkJeworCQkJLyoKKwkJCSAqIFBhc3NpbmcgJ3RydWUnIGJlbG93IG1lYW5zIGFueSBjb2x1 bW5zIHByZXNlbnQgaW4gdGhlIGNoaWxkCisJCQkgKiB0YWJsZSBidXQgbm90IGluIHRoZSByb290 IHBhcmVudCBhcmUgaWdub3JlZCwgc29tZXRoaW5nIHRoYXQncworCQkJICogYWxsb3dlZCB3aXRo IHRyYWRpdGlvbmFsIGluaGVyaXRhbmNlLgorCQkJICovCisJCQlyZXN1bHRSZWxJbmZvLT5yaV9S b290VG9DaGlsZE1hcCA9CisJCQkJYnVpbGRfYXR0cm1hcF9ieV9uYW1lX2lmX3JlcShSZWxhdGlv bkdldERlc2NyKHJvb3RSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MpLAorCQkJCQkJCQkJCQkgUmVs YXRpb25HZXREZXNjcihyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MpLAorCQkJCQkJCQkJ CQkgdHJ1ZSk7CisJCX0KKwkJZWxzZQkJCQkJLyogdGhpcyBpc24ndCBhIGNoaWxkIHJlc3VsdCBy ZWwgKi8KKwkJCXJlc3VsdFJlbEluZm8tPnJpX1Jvb3RUb0NoaWxkTWFwID0gTlVMTDsKIAotCQlp ZiAocmVsaW5mby0+cmlfUm9vdFRvUGFydGl0aW9uTWFwICE9IE5VTEwpCi0JCQlyZXR1cm4gZXhl Y3V0ZV9hdHRyX21hcF9jb2xzKHJlbGluZm8tPnJpX1Jvb3RUb1BhcnRpdGlvbk1hcC0+YXR0ck1h cCwKLQkJCQkJCQkJCQkgcnRlLT5pbnNlcnRlZENvbHMpOwotCQllbHNlCi0JCQlyZXR1cm4gcnRl LT5pbnNlcnRlZENvbHM7CisJCXJlc3VsdFJlbEluZm8tPnJpX1Jvb3RUb0NoaWxkTWFwVmFsaWQg PSB0cnVlOworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIAl9CisKKwly ZXR1cm4gcmVzdWx0UmVsSW5mby0+cmlfUm9vdFRvQ2hpbGRNYXA7Cit9CisKKy8qCisgKiBHZXRS ZXN1bHRSZWxQZXJtaXNzaW9uSW5mbworICoJCUhlbHBlciByb3V0aW5lIGZvciBFeGVjR2V0KkNv bHMoKSByb3V0aW5lcyBiZWxvdworICoKKyAqIFRoZSBjb2x1bW4gYml0bWFwc2V0cyBhcmUgc3Rv cmVkIGluIFJlbFBlcm1pc3Npb25JbmZvcy4gIEZvciBpbmhlcml0YW5jZQorICogY2hpbGQgcmVz dWx0IHJlbGF0aW9ucyAoYSBwYXJ0aXRpb24gcm91dGluZyB0YXJnZXQgb2YgYW4gSU5TRVJUIG9y IGEgY2hpbGQKKyAqIFVQREFURSB0YXJnZXQpLCB1c2UgdGhlIHJvb3QgcGFyZW50J3MgUlRFIHRv IGZldGNoIHRoZSBSZWxQZXJtaXNzaW9uSW5mbworICogYmVjYXVzZSB0aGF0J3MgdGhlIG9ubHkg b25lIHRoYXQgYWN0dWFsbHkgcG9pbnRzIHRvIGFueS4KKyAqLworc3RhdGljIGlubGluZSBSZWxQ ZXJtaXNzaW9uSW5mbyAqCitHZXRSZXN1bHRSZWxQZXJtaXNzaW9uSW5mbyhSZXN1bHRSZWxJbmZv ICpyZWxpbmZvLCBFU3RhdGUgKmVzdGF0ZSkKK3sKKwlJbmRleAkJcnRpOworCVJhbmdlVGJsRW50 cnkgKnJ0ZTsKKwlSZWxQZXJtaXNzaW9uSW5mbyAqcGVybWluZm8gPSBOVUxMOworCisJaWYgKHJl bGluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQlydGkgPSByZWxpbmZvLT5yaV9Sb290UmVz dWx0UmVsSW5mby0+cmlfUmFuZ2VUYWJsZUluZGV4OworCWVsc2UgaWYgKHJlbGluZm8tPnJpX1Jh bmdlVGFibGVJbmRleCAhPSAwKQorCQlydGkgPSByZWxpbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXg7 CiAJZWxzZQogCXsKIAkJLyoKQEAgLTEyODYsNjAgKzEzMTgsNzkgQEAgRXhlY0dldEluc2VydGVk Q29scyhSZXN1bHRSZWxJbmZvICpyZWxpbmZvLCBFU3RhdGUgKmVzdGF0ZSkKIAkJICogZmlyaW5n IHRyaWdnZXJzIGFuZCB0aGUgcmVsYXRpb24gaXMgbm90IGJlaW5nIGluc2VydGVkIGludG8uICAo U2VlCiAJCSAqIEV4ZWNHZXRUcmlnZ2VyUmVzdWx0UmVsLikKIAkJICovCisJCXJ0aSA9IDA7CisJ fQorCisJaWYgKHJ0aSA+IDApCisJeworCQlydGUgPSBleGVjX3J0X2ZldGNoKHJ0aSwgZXN0YXRl KTsKKwkJcGVybWluZm8gPSBHZXRSZWxQZXJtaXNzaW9uSW5mbyhlc3RhdGUtPmVzX3JlbHBlcm1s aXN0LCBydGUsIGZhbHNlKTsKKwl9CisKKwlyZXR1cm4gcGVybWluZm87Cit9CisKKy8qIFJldHVy biBhIGJpdG1hcCByZXByZXNlbnRpbmcgY29sdW1ucyBiZWluZyBpbnNlcnRlZCAqLworQml0bWFw c2V0ICoKK0V4ZWNHZXRJbnNlcnRlZENvbHMoUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgRVN0YXRl ICplc3RhdGUpCit7CisJUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvID0gR2V0UmVzdWx0UmVs UGVybWlzc2lvbkluZm8ocmVsaW5mbywgZXN0YXRlKTsKKworCWlmIChwZXJtaW5mbyA9PSBOVUxM KQogCQlyZXR1cm4gTlVMTDsKKworCS8qIE1hcCB0aGUgY29sdW1ucyB0byBjaGlsZCdzIGF0dHJp YnV0ZSBudW1iZXJzIGlmIG5lZWRlZC4gKi8KKwlpZiAocmVsaW5mby0+cmlfUm9vdFJlc3VsdFJl bEluZm8pCisJeworCQlBdHRyTWFwICptYXAgPSBFeGVjR2V0Um9vdFRvQ2hpbGRNYXAocmVsaW5m bywgZXN0YXRlKTsKKworCQlpZiAobWFwKQorCQkJcmV0dXJuIGV4ZWN1dGVfYXR0cl9tYXBfY29s cyhtYXAsIHBlcm1pbmZvLT5pbnNlcnRlZENvbHMpOwogCX0KKworCXJldHVybiBwZXJtaW5mby0+ aW5zZXJ0ZWRDb2xzOwogfQogCiAvKiBSZXR1cm4gYSBiaXRtYXAgcmVwcmVzZW50aW5nIGNvbHVt bnMgYmVpbmcgdXBkYXRlZCAqLwogQml0bWFwc2V0ICoKIEV4ZWNHZXRVcGRhdGVkQ29scyhSZXN1 bHRSZWxJbmZvICpyZWxpbmZvLCBFU3RhdGUgKmVzdGF0ZSkKIHsKLQkvKiBzZWUgRXhlY0dldElu c2VydGVkQ29scygpICovCi0JaWYgKHJlbGluZm8tPnJpX1JhbmdlVGFibGVJbmRleCAhPSAwKQot CXsKLQkJUmFuZ2VUYmxFbnRyeSAqcnRlID0gZXhlY19ydF9mZXRjaChyZWxpbmZvLT5yaV9SYW5n ZVRhYmxlSW5kZXgsIGVzdGF0ZSk7CisJUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvID0gR2V0 UmVzdWx0UmVsUGVybWlzc2lvbkluZm8ocmVsaW5mbywgZXN0YXRlKTsKIAotCQlyZXR1cm4gcnRl LT51cGRhdGVkQ29sczsKLQl9Ci0JZWxzZSBpZiAocmVsaW5mby0+cmlfUm9vdFJlc3VsdFJlbElu Zm8pCisJaWYgKHBlcm1pbmZvID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJLyogTWFwIHRo ZSBjb2x1bW5zIHRvIGNoaWxkJ3MgYXR0cmlidXRlIG51bWJlcnMgaWYgbmVlZGVkLiAqLworCWlm IChyZWxpbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5mbykKIAl7Ci0JCVJlc3VsdFJlbEluZm8gKnJv b3RSZWxJbmZvID0gcmVsaW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm87Ci0JCVJhbmdlVGJsRW50 cnkgKnJ0ZSA9IGV4ZWNfcnRfZmV0Y2gocm9vdFJlbEluZm8tPnJpX1JhbmdlVGFibGVJbmRleCwg ZXN0YXRlKTsKKwkJQXR0ck1hcCAqbWFwID0gRXhlY0dldFJvb3RUb0NoaWxkTWFwKHJlbGluZm8s IGVzdGF0ZSk7CiAKLQkJaWYgKHJlbGluZm8tPnJpX1Jvb3RUb1BhcnRpdGlvbk1hcCAhPSBOVUxM KQotCQkJcmV0dXJuIGV4ZWN1dGVfYXR0cl9tYXBfY29scyhyZWxpbmZvLT5yaV9Sb290VG9QYXJ0 aXRpb25NYXAtPmF0dHJNYXAsCi0JCQkJCQkJCQkJIHJ0ZS0+dXBkYXRlZENvbHMpOwotCQllbHNl Ci0JCQlyZXR1cm4gcnRlLT51cGRhdGVkQ29sczsKKwkJaWYgKG1hcCkKKwkJCXJldHVybiBleGVj dXRlX2F0dHJfbWFwX2NvbHMobWFwLCBwZXJtaW5mby0+dXBkYXRlZENvbHMpOwogCX0KLQllbHNl Ci0JCXJldHVybiBOVUxMOworCisJcmV0dXJuIHBlcm1pbmZvLT51cGRhdGVkQ29sczsKIH0KIAog LyogUmV0dXJuIGEgYml0bWFwIHJlcHJlc2VudGluZyBnZW5lcmF0ZWQgY29sdW1ucyBiZWluZyB1 cGRhdGVkICovCiBCaXRtYXBzZXQgKgogRXhlY0dldEV4dHJhVXBkYXRlZENvbHMoUmVzdWx0UmVs SW5mbyAqcmVsaW5mbywgRVN0YXRlICplc3RhdGUpCiB7Ci0JLyogc2VlIEV4ZWNHZXRJbnNlcnRl ZENvbHMoKSAqLwotCWlmIChyZWxpbmZvLT5yaV9SYW5nZVRhYmxlSW5kZXggIT0gMCkKLQl7Ci0J CVJhbmdlVGJsRW50cnkgKnJ0ZSA9IGV4ZWNfcnRfZmV0Y2gocmVsaW5mby0+cmlfUmFuZ2VUYWJs ZUluZGV4LCBlc3RhdGUpOworCVJlbFBlcm1pc3Npb25JbmZvICpwZXJtaW5mbyA9IEdldFJlc3Vs dFJlbFBlcm1pc3Npb25JbmZvKHJlbGluZm8sIGVzdGF0ZSk7CiAKLQkJcmV0dXJuIHJ0ZS0+ZXh0 cmFVcGRhdGVkQ29sczsKLQl9Ci0JZWxzZSBpZiAocmVsaW5mby0+cmlfUm9vdFJlc3VsdFJlbElu Zm8pCisJaWYgKHBlcm1pbmZvID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJLyogTWFwIHRo ZSBjb2x1bW5zIHRvIGNoaWxkJ3MgYXR0cmlidXRlIG51bWJlcnMgaWYgbmVlZGVkLiAqLworCWlm IChyZWxpbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5mbykKIAl7Ci0JCVJlc3VsdFJlbEluZm8gKnJv b3RSZWxJbmZvID0gcmVsaW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm87Ci0JCVJhbmdlVGJsRW50 cnkgKnJ0ZSA9IGV4ZWNfcnRfZmV0Y2gocm9vdFJlbEluZm8tPnJpX1JhbmdlVGFibGVJbmRleCwg ZXN0YXRlKTsKKwkJQXR0ck1hcCAqbWFwID0gRXhlY0dldFJvb3RUb0NoaWxkTWFwKHJlbGluZm8s IGVzdGF0ZSk7CiAKLQkJaWYgKHJlbGluZm8tPnJpX1Jvb3RUb1BhcnRpdGlvbk1hcCAhPSBOVUxM KQotCQkJcmV0dXJuIGV4ZWN1dGVfYXR0cl9tYXBfY29scyhyZWxpbmZvLT5yaV9Sb290VG9QYXJ0 aXRpb25NYXAtPmF0dHJNYXAsCi0JCQkJCQkJCQkJIHJ0ZS0+ZXh0cmFVcGRhdGVkQ29scyk7Ci0J CWVsc2UKLQkJCXJldHVybiBydGUtPmV4dHJhVXBkYXRlZENvbHM7CisJCWlmIChtYXApCisJCQly ZXR1cm4gZXhlY3V0ZV9hdHRyX21hcF9jb2xzKG1hcCwgcGVybWluZm8tPmV4dHJhVXBkYXRlZENv bHMpOwogCX0KLQllbHNlCi0JCXJldHVybiBOVUxMOworCisJcmV0dXJuIHBlcm1pbmZvLT5leHRy YVVwZGF0ZWRDb2xzOwogfQogCiAvKiBSZXR1cm4gY29sdW1ucyBiZWluZyB1cGRhdGVkLCBpbmNs dWRpbmcgZ2VuZXJhdGVkIGNvbHVtbnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVz L2NvcHlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKaW5kZXggZDRmODQ1 NWEyYi4uNDg1MDZhMmY1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNz LmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKQEAgLTk3LDYgKzk3LDcgQEAg X2NvcHlQbGFubmVkU3RtdChjb25zdCBQbGFubmVkU3RtdCAqZnJvbSkKIAlDT1BZX1NDQUxBUl9G SUVMRChqaXRGbGFncyk7CiAJQ09QWV9OT0RFX0ZJRUxEKHBsYW5UcmVlKTsKIAlDT1BZX05PREVf RklFTEQocnRhYmxlKTsKKwlDT1BZX05PREVfRklFTEQocmVscGVybWxpc3QpOwogCUNPUFlfTk9E RV9GSUVMRChyZXN1bHRSZWxhdGlvbnMpOwogCUNPUFlfTk9ERV9GSUVMRChhcHBlbmRSZWxhdGlv bnMpOwogCUNPUFlfTk9ERV9GSUVMRChzdWJwbGFucyk7CkBAIC03ODEsNiArNzgyLDcgQEAgX2Nv cHlGb3JlaWduU2Nhbihjb25zdCBGb3JlaWduU2NhbiAqZnJvbSkKIAkgKi8KIAlDT1BZX1NDQUxB Ul9GSUVMRChvcGVyYXRpb24pOwogCUNPUFlfU0NBTEFSX0ZJRUxEKHJlc3VsdFJlbGF0aW9uKTsK KwlDT1BZX1NDQUxBUl9GSUVMRChjaGVja0FzVXNlcik7CiAJQ09QWV9TQ0FMQVJfRklFTEQoZnNf c2VydmVyKTsKIAlDT1BZX05PREVfRklFTEQoZmR3X2V4cHJzKTsKIAlDT1BZX05PREVfRklFTEQo ZmR3X3ByaXZhdGUpOwpAQCAtMTI3MSw2ICsxMjczLDI1IEBAIF9jb3B5UGxhblJvd01hcmsoY29u c3QgUGxhblJvd01hcmsgKmZyb20pCiAKIAlyZXR1cm4gbmV3bm9kZTsKIH0KKy8qCisgKiBfY29w eVJlbFBlcm1pc3Npb25JbmZvCisgKi8KK3N0YXRpYyBSZWxQZXJtaXNzaW9uSW5mbyAqCitfY29w eVJlbFBlcm1pc3Npb25JbmZvKGNvbnN0IFJlbFBlcm1pc3Npb25JbmZvICpmcm9tKQoreworCVJl bFBlcm1pc3Npb25JbmZvICpuZXdub2RlID0gbWFrZU5vZGUoUmVsUGVybWlzc2lvbkluZm8pOwor CisJQ09QWV9TQ0FMQVJfRklFTEQocmVsaWQpOworCUNPUFlfU0NBTEFSX0ZJRUxEKGluaCk7CisJ Q09QWV9TQ0FMQVJfRklFTEQocmVxdWlyZWRQZXJtcyk7CisJQ09QWV9TQ0FMQVJfRklFTEQoY2hl Y2tBc1VzZXIpOworCUNPUFlfQklUTUFQU0VUX0ZJRUxEKHNlbGVjdGVkQ29scyk7CisJQ09QWV9C SVRNQVBTRVRfRklFTEQoaW5zZXJ0ZWRDb2xzKTsKKwlDT1BZX0JJVE1BUFNFVF9GSUVMRCh1cGRh dGVkQ29scyk7CisJQ09QWV9CSVRNQVBTRVRfRklFTEQoZXh0cmFVcGRhdGVkQ29scyk7CisKKwly ZXR1cm4gbmV3bm9kZTsKK30KIAogc3RhdGljIFBhcnRpdGlvblBydW5lSW5mbyAqCiBfY29weVBh cnRpdGlvblBydW5lSW5mbyhjb25zdCBQYXJ0aXRpb25QcnVuZUluZm8gKmZyb20pCkBAIC0yNDYz LDYgKzI0ODQsNyBAQCBfY29weVJhbmdlVGJsRW50cnkoY29uc3QgUmFuZ2VUYmxFbnRyeSAqZnJv bSkKIAlDT1BZX1NDQUxBUl9GSUVMRChyZWxraW5kKTsKIAlDT1BZX1NDQUxBUl9GSUVMRChyZWxs b2NrbW9kZSk7CiAJQ09QWV9OT0RFX0ZJRUxEKHRhYmxlc2FtcGxlKTsKKwlDT1BZX1NDQUxBUl9G SUVMRChwZXJtaW5mb2luZGV4KTsKIAlDT1BZX05PREVfRklFTEQoc3VicXVlcnkpOwogCUNPUFlf U0NBTEFSX0ZJRUxEKHNlY3VyaXR5X2JhcnJpZXIpOwogCUNPUFlfU0NBTEFSX0ZJRUxEKGpvaW50 eXBlKTsKQEAgLTI0ODgsMTIgKzI1MTAsNiBAQCBfY29weVJhbmdlVGJsRW50cnkoY29uc3QgUmFu Z2VUYmxFbnRyeSAqZnJvbSkKIAlDT1BZX1NDQUxBUl9GSUVMRChsYXRlcmFsKTsKIAlDT1BZX1ND QUxBUl9GSUVMRChpbmgpOwogCUNPUFlfU0NBTEFSX0ZJRUxEKGluRnJvbUNsKTsKLQlDT1BZX1ND QUxBUl9GSUVMRChyZXF1aXJlZFBlcm1zKTsKLQlDT1BZX1NDQUxBUl9GSUVMRChjaGVja0FzVXNl cik7Ci0JQ09QWV9CSVRNQVBTRVRfRklFTEQoc2VsZWN0ZWRDb2xzKTsKLQlDT1BZX0JJVE1BUFNF VF9GSUVMRChpbnNlcnRlZENvbHMpOwotCUNPUFlfQklUTUFQU0VUX0ZJRUxEKHVwZGF0ZWRDb2xz KTsKLQlDT1BZX0JJVE1BUFNFVF9GSUVMRChleHRyYVVwZGF0ZWRDb2xzKTsKIAlDT1BZX05PREVf RklFTEQoc2VjdXJpdHlRdWFscyk7CiAKIAlyZXR1cm4gbmV3bm9kZTsKQEAgLTMxODMsNiArMzE5 OSw3IEBAIF9jb3B5UXVlcnkoY29uc3QgUXVlcnkgKmZyb20pCiAJQ09QWV9TQ0FMQVJfRklFTEQo aXNSZXR1cm4pOwogCUNPUFlfTk9ERV9GSUVMRChjdGVMaXN0KTsKIAlDT1BZX05PREVfRklFTEQo cnRhYmxlKTsKKwlDT1BZX05PREVfRklFTEQocmVscGVybWxpc3QpOwogCUNPUFlfTk9ERV9GSUVM RChqb2ludHJlZSk7CiAJQ09QWV9OT0RFX0ZJRUxEKHRhcmdldExpc3QpOwogCUNPUFlfU0NBTEFS X0ZJRUxEKG92ZXJyaWRlKTsKQEAgLTUxNzgsNiArNTE5NSw5IEBAIGNvcHlPYmplY3RJbXBsKGNv bnN0IHZvaWQgKmZyb20pCiAJCWNhc2UgVF9QbGFuUm93TWFyazoKIAkJCXJldHZhbCA9IF9jb3B5 UGxhblJvd01hcmsoZnJvbSk7CiAJCQlicmVhazsKKwkJY2FzZSBUX1JlbFBlcm1pc3Npb25JbmZv OgorCQkJcmV0dmFsID0gX2NvcHlSZWxQZXJtaXNzaW9uSW5mbyhmcm9tKTsKKwkJCWJyZWFrOwog CQljYXNlIFRfUGFydGl0aW9uUHJ1bmVJbmZvOgogCQkJcmV0dmFsID0gX2NvcHlQYXJ0aXRpb25Q cnVuZUluZm8oZnJvbSk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVz L2VxdWFsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYwppbmRleCBmMTAw MmFmZTdhLi5jNDk5NjExMzE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jCkBAIC05OTIsNiArOTky LDcgQEAgX2VxdWFsUXVlcnkoY29uc3QgUXVlcnkgKmEsIGNvbnN0IFF1ZXJ5ICpiKQogCUNPTVBB UkVfU0NBTEFSX0ZJRUxEKGlzUmV0dXJuKTsKIAlDT01QQVJFX05PREVfRklFTEQoY3RlTGlzdCk7 CiAJQ09NUEFSRV9OT0RFX0ZJRUxEKHJ0YWJsZSk7CisJQ09NUEFSRV9OT0RFX0ZJRUxEKHJlbHBl cm1saXN0KTsKIAlDT01QQVJFX05PREVfRklFTEQoam9pbnRyZWUpOwogCUNPTVBBUkVfTk9ERV9G SUVMRCh0YXJnZXRMaXN0KTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChvdmVycmlkZSk7CkBAIC0y Nzc1LDYgKzI3NzYsNyBAQCBfZXF1YWxSYW5nZVRibEVudHJ5KGNvbnN0IFJhbmdlVGJsRW50cnkg KmEsIGNvbnN0IFJhbmdlVGJsRW50cnkgKmIpCiAJQ09NUEFSRV9TQ0FMQVJfRklFTEQocmVsa2lu ZCk7CiAJQ09NUEFSRV9TQ0FMQVJfRklFTEQocmVsbG9ja21vZGUpOwogCUNPTVBBUkVfTk9ERV9G SUVMRCh0YWJsZXNhbXBsZSk7CisJQ09NUEFSRV9TQ0FMQVJfRklFTEQocGVybWluZm9pbmRleCk7 CiAJQ09NUEFSRV9OT0RFX0ZJRUxEKHN1YnF1ZXJ5KTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChz ZWN1cml0eV9iYXJyaWVyKTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChqb2ludHlwZSk7CkBAIC0y ODAwLDE3ICsyODAyLDI1IEBAIF9lcXVhbFJhbmdlVGJsRW50cnkoY29uc3QgUmFuZ2VUYmxFbnRy eSAqYSwgY29uc3QgUmFuZ2VUYmxFbnRyeSAqYikKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChsYXRl cmFsKTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChpbmgpOwogCUNPTVBBUkVfU0NBTEFSX0ZJRUxE KGluRnJvbUNsKTsKKwlDT01QQVJFX05PREVfRklFTEQoc2VjdXJpdHlRdWFscyk7CisKKwlyZXR1 cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wKK19lcXVhbFJlbFBlcm1pc3Npb25JbmZvKGNvbnN0 IFJlbFBlcm1pc3Npb25JbmZvICphLCBjb25zdCBSZWxQZXJtaXNzaW9uSW5mbyAqYikKK3sKKwlD T01QQVJFX1NDQUxBUl9GSUVMRChyZWxpZCk7CisJQ09NUEFSRV9TQ0FMQVJfRklFTEQoaW5oKTsK IAlDT01QQVJFX1NDQUxBUl9GSUVMRChyZXF1aXJlZFBlcm1zKTsKIAlDT01QQVJFX1NDQUxBUl9G SUVMRChjaGVja0FzVXNlcik7CiAJQ09NUEFSRV9CSVRNQVBTRVRfRklFTEQoc2VsZWN0ZWRDb2xz KTsKIAlDT01QQVJFX0JJVE1BUFNFVF9GSUVMRChpbnNlcnRlZENvbHMpOwogCUNPTVBBUkVfQklU TUFQU0VUX0ZJRUxEKHVwZGF0ZWRDb2xzKTsKIAlDT01QQVJFX0JJVE1BUFNFVF9GSUVMRChleHRy YVVwZGF0ZWRDb2xzKTsKLQlDT01QQVJFX05PREVfRklFTEQoc2VjdXJpdHlRdWFscyk7CiAKIAly ZXR1cm4gdHJ1ZTsKIH0KLQogc3RhdGljIGJvb2wKIF9lcXVhbFJhbmdlVGJsRnVuY3Rpb24oY29u c3QgUmFuZ2VUYmxGdW5jdGlvbiAqYSwgY29uc3QgUmFuZ2VUYmxGdW5jdGlvbiAqYikKIHsKQEAg LTM4NjMsNiArMzg3Myw5IEBAIGVxdWFsKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpCiAJ CWNhc2UgVF9SYW5nZVRibEVudHJ5OgogCQkJcmV0dmFsID0gX2VxdWFsUmFuZ2VUYmxFbnRyeShh LCBiKTsKIAkJCWJyZWFrOworCQljYXNlIFRfUmVsUGVybWlzc2lvbkluZm86CisJCQlyZXR2YWwg PSBfZXF1YWxSZWxQZXJtaXNzaW9uSW5mbyhhLCBiKTsKKwkJCWJyZWFrOwogCQljYXNlIFRfUmFu Z2VUYmxGdW5jdGlvbjoKIAkJCXJldHZhbCA9IF9lcXVhbFJhbmdlVGJsRnVuY3Rpb24oYSwgYik7 CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMgYi9z cmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCmluZGV4IDZiZGFkNDYyYzcuLjY1NWViMmQ4ODgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tl bmQvbm9kZXMvb3V0ZnVuY3MuYwpAQCAtMzE1LDYgKzMxNSw3IEBAIF9vdXRQbGFubmVkU3RtdChT dHJpbmdJbmZvIHN0ciwgY29uc3QgUGxhbm5lZFN0bXQgKm5vZGUpCiAJV1JJVEVfSU5UX0ZJRUxE KGppdEZsYWdzKTsKIAlXUklURV9OT0RFX0ZJRUxEKHBsYW5UcmVlKTsKIAlXUklURV9OT0RFX0ZJ RUxEKHJ0YWJsZSk7CisJV1JJVEVfTk9ERV9GSUVMRChyZWxwZXJtbGlzdCk7CiAJV1JJVEVfTk9E RV9GSUVMRChyZXN1bHRSZWxhdGlvbnMpOwogCVdSSVRFX05PREVfRklFTEQoYXBwZW5kUmVsYXRp b25zKTsKIAlXUklURV9OT0RFX0ZJRUxEKHN1YnBsYW5zKTsKQEAgLTcxMCw2ICs3MTEsNyBAQCBf b3V0Rm9yZWlnblNjYW4oU3RyaW5nSW5mbyBzdHIsIGNvbnN0IEZvcmVpZ25TY2FuICpub2RlKQog CiAJV1JJVEVfRU5VTV9GSUVMRChvcGVyYXRpb24sIENtZFR5cGUpOwogCVdSSVRFX1VJTlRfRklF TEQocmVzdWx0UmVsYXRpb24pOworCVdSSVRFX09JRF9GSUVMRChjaGVja0FzVXNlcik7CiAJV1JJ VEVfT0lEX0ZJRUxEKGZzX3NlcnZlcik7CiAJV1JJVEVfTk9ERV9GSUVMRChmZHdfZXhwcnMpOwog CVdSSVRFX05PREVfRklFTEQoZmR3X3ByaXZhdGUpOwpAQCAtOTk4LDYgKzEwMDAsMjEgQEAgX291 dFBsYW5Sb3dNYXJrKFN0cmluZ0luZm8gc3RyLCBjb25zdCBQbGFuUm93TWFyayAqbm9kZSkKIAlX UklURV9CT09MX0ZJRUxEKGlzUGFyZW50KTsKIH0KIAorc3RhdGljIHZvaWQKK19vdXRSZWxQZXJt aXNzaW9uSW5mbyhTdHJpbmdJbmZvIHN0ciwgY29uc3QgUmVsUGVybWlzc2lvbkluZm8gKm5vZGUp Cit7CisJV1JJVEVfTk9ERV9UWVBFKCJSRUxQRVJNSVNTSU9OSU5GTyIpOworCisJV1JJVEVfVUlO VF9GSUVMRChyZWxpZCk7CisJV1JJVEVfQk9PTF9GSUVMRChpbmgpOworCVdSSVRFX1VJTlRfRklF TEQocmVxdWlyZWRQZXJtcyk7CisJV1JJVEVfVUlOVF9GSUVMRChjaGVja0FzVXNlcik7CisJV1JJ VEVfQklUTUFQU0VUX0ZJRUxEKHNlbGVjdGVkQ29scyk7CisJV1JJVEVfQklUTUFQU0VUX0ZJRUxE KGluc2VydGVkQ29scyk7CisJV1JJVEVfQklUTUFQU0VUX0ZJRUxEKHVwZGF0ZWRDb2xzKTsKKwlX UklURV9CSVRNQVBTRVRfRklFTEQoZXh0cmFVcGRhdGVkQ29scyk7Cit9CisKIHN0YXRpYyB2b2lk CiBfb3V0UGFydGl0aW9uUHJ1bmVJbmZvKFN0cmluZ0luZm8gc3RyLCBjb25zdCBQYXJ0aXRpb25Q cnVuZUluZm8gKm5vZGUpCiB7CkBAIC0yMjc0LDYgKzIyOTEsNyBAQCBfb3V0UGxhbm5lckdsb2Jh bChTdHJpbmdJbmZvIHN0ciwgY29uc3QgUGxhbm5lckdsb2JhbCAqbm9kZSkKIAlXUklURV9OT0RF X0ZJRUxEKHN1YnBsYW5zKTsKIAlXUklURV9CSVRNQVBTRVRfRklFTEQocmV3aW5kUGxhbklEcyk7 CiAJV1JJVEVfTk9ERV9GSUVMRChmaW5hbHJ0YWJsZSk7CisJV1JJVEVfTk9ERV9GSUVMRChmaW5h bHJlbHBlcm1saXN0KTsKIAlXUklURV9OT0RFX0ZJRUxEKGZpbmFscm93bWFya3MpOwogCVdSSVRF X05PREVfRklFTEQocmVzdWx0UmVsYXRpb25zKTsKIAlXUklURV9OT0RFX0ZJRUxEKGFwcGVuZFJl bGF0aW9ucyk7CkBAIC0zMDc5LDYgKzMwOTcsNyBAQCBfb3V0UXVlcnkoU3RyaW5nSW5mbyBzdHIs IGNvbnN0IFF1ZXJ5ICpub2RlKQogCVdSSVRFX0JPT0xfRklFTEQoaXNSZXR1cm4pOwogCVdSSVRF X05PREVfRklFTEQoY3RlTGlzdCk7CiAJV1JJVEVfTk9ERV9GSUVMRChydGFibGUpOworCVdSSVRF X05PREVfRklFTEQocmVscGVybWxpc3QpOwogCVdSSVRFX05PREVfRklFTEQoam9pbnRyZWUpOwog CVdSSVRFX05PREVfRklFTEQodGFyZ2V0TGlzdCk7CiAJV1JJVEVfRU5VTV9GSUVMRChvdmVycmlk ZSwgT3ZlcnJpZGluZ0tpbmQpOwpAQCAtMzI1OCw2ICszMjc3LDcgQEAgX291dFJhbmdlVGJsRW50 cnkoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFJhbmdlVGJsRW50cnkgKm5vZGUpCiAJCQlXUklURV9D SEFSX0ZJRUxEKHJlbGtpbmQpOwogCQkJV1JJVEVfSU5UX0ZJRUxEKHJlbGxvY2ttb2RlKTsKIAkJ CVdSSVRFX05PREVfRklFTEQodGFibGVzYW1wbGUpOworCQkJV1JJVEVfSU5UX0ZJRUxEKHBlcm1p bmZvaW5kZXgpOwogCQkJYnJlYWs7CiAJCWNhc2UgUlRFX1NVQlFVRVJZOgogCQkJV1JJVEVfTk9E RV9GSUVMRChzdWJxdWVyeSk7CkBAIC0zMzExLDEyICszMzMxLDYgQEAgX291dFJhbmdlVGJsRW50 cnkoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFJhbmdlVGJsRW50cnkgKm5vZGUpCiAJV1JJVEVfQk9P TF9GSUVMRChsYXRlcmFsKTsKIAlXUklURV9CT09MX0ZJRUxEKGluaCk7CiAJV1JJVEVfQk9PTF9G SUVMRChpbkZyb21DbCk7Ci0JV1JJVEVfVUlOVF9GSUVMRChyZXF1aXJlZFBlcm1zKTsKLQlXUklU RV9PSURfRklFTEQoY2hlY2tBc1VzZXIpOwotCVdSSVRFX0JJVE1BUFNFVF9GSUVMRChzZWxlY3Rl ZENvbHMpOwotCVdSSVRFX0JJVE1BUFNFVF9GSUVMRChpbnNlcnRlZENvbHMpOwotCVdSSVRFX0JJ VE1BUFNFVF9GSUVMRCh1cGRhdGVkQ29scyk7Ci0JV1JJVEVfQklUTUFQU0VUX0ZJRUxEKGV4dHJh VXBkYXRlZENvbHMpOwogCVdSSVRFX05PREVfRklFTEQoc2VjdXJpdHlRdWFscyk7CiB9CiAKQEAg LTQwMDksNiArNDAyMyw5IEBAIG91dE5vZGUoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IHZvaWQgKm9i aikKIAkJCWNhc2UgVF9QbGFuUm93TWFyazoKIAkJCQlfb3V0UGxhblJvd01hcmsoc3RyLCBvYmop OwogCQkJCWJyZWFrOworCQkJY2FzZSBUX1JlbFBlcm1pc3Npb25JbmZvOgorCQkJCV9vdXRSZWxQ ZXJtaXNzaW9uSW5mbyhzdHIsIG9iaik7CisJCQkJYnJlYWs7CiAJCQljYXNlIFRfUGFydGl0aW9u UHJ1bmVJbmZvOgogCQkJCV9vdXRQYXJ0aXRpb25QcnVuZUluZm8oc3RyLCBvYmopOwogCQkJCWJy ZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMgYi9zcmMvYmFj a2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwppbmRleCAzZjY4ZjdjMThkLi5mOTk0Y2Q5OTA4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9u b2Rlcy9yZWFkZnVuY3MuYwpAQCAtMjY0LDYgKzI2NCw3IEBAIF9yZWFkUXVlcnkodm9pZCkKIAlS RUFEX0JPT0xfRklFTEQoaXNSZXR1cm4pOwogCVJFQURfTk9ERV9GSUVMRChjdGVMaXN0KTsKIAlS RUFEX05PREVfRklFTEQocnRhYmxlKTsKKwlSRUFEX05PREVfRklFTEQocmVscGVybWxpc3QpOwog CVJFQURfTk9ERV9GSUVMRChqb2ludHJlZSk7CiAJUkVBRF9OT0RFX0ZJRUxEKHRhcmdldExpc3Qp OwogCVJFQURfRU5VTV9GSUVMRChvdmVycmlkZSwgT3ZlcnJpZGluZ0tpbmQpOwpAQCAtMTQ0MCw2 ICsxNDQxLDcgQEAgX3JlYWRSYW5nZVRibEVudHJ5KHZvaWQpCiAJCQlSRUFEX0NIQVJfRklFTEQo cmVsa2luZCk7CiAJCQlSRUFEX0lOVF9GSUVMRChyZWxsb2NrbW9kZSk7CiAJCQlSRUFEX05PREVf RklFTEQodGFibGVzYW1wbGUpOworCQkJUkVBRF9JTlRfRklFTEQocGVybWluZm9pbmRleCk7CiAJ CQlicmVhazsKIAkJY2FzZSBSVEVfU1VCUVVFUlk6CiAJCQlSRUFEX05PREVfRklFTEQoc3VicXVl cnkpOwpAQCAtMTUwMywxMyArMTUwNSwyNCBAQCBfcmVhZFJhbmdlVGJsRW50cnkodm9pZCkKIAlS RUFEX0JPT0xfRklFTEQobGF0ZXJhbCk7CiAJUkVBRF9CT09MX0ZJRUxEKGluaCk7CiAJUkVBRF9C T09MX0ZJRUxEKGluRnJvbUNsKTsKLQlSRUFEX1VJTlRfRklFTEQocmVxdWlyZWRQZXJtcyk7Ci0J UkVBRF9PSURfRklFTEQoY2hlY2tBc1VzZXIpOworCVJFQURfTk9ERV9GSUVMRChzZWN1cml0eVF1 YWxzKTsKKworCVJFQURfRE9ORSgpOworfQorCitzdGF0aWMgUmVsUGVybWlzc2lvbkluZm8gKgor X3JlYWRSZWxQZXJtaXNzaW9uSW5mbyh2b2lkKQoreworCVJFQURfTE9DQUxTKFJlbFBlcm1pc3Np b25JbmZvKTsKKworCVJFQURfSU5UX0ZJRUxEKHJlbGlkKTsKKwlSRUFEX0JPT0xfRklFTEQoaW5o KTsKKwlSRUFEX0lOVF9GSUVMRChyZXF1aXJlZFBlcm1zKTsKKwlSRUFEX0lOVF9GSUVMRChjaGVj a0FzVXNlcik7CiAJUkVBRF9CSVRNQVBTRVRfRklFTEQoc2VsZWN0ZWRDb2xzKTsKIAlSRUFEX0JJ VE1BUFNFVF9GSUVMRChpbnNlcnRlZENvbHMpOwogCVJFQURfQklUTUFQU0VUX0ZJRUxEKHVwZGF0 ZWRDb2xzKTsKIAlSRUFEX0JJVE1BUFNFVF9GSUVMRChleHRyYVVwZGF0ZWRDb2xzKTsKLQlSRUFE X05PREVfRklFTEQoc2VjdXJpdHlRdWFscyk7CiAKIAlSRUFEX0RPTkUoKTsKIH0KQEAgLTE1ODgs NiArMTYwMSw3IEBAIF9yZWFkUGxhbm5lZFN0bXQodm9pZCkKIAlSRUFEX0lOVF9GSUVMRChqaXRG bGFncyk7CiAJUkVBRF9OT0RFX0ZJRUxEKHBsYW5UcmVlKTsKIAlSRUFEX05PREVfRklFTEQocnRh YmxlKTsKKwlSRUFEX05PREVfRklFTEQocmVscGVybWxpc3QpOwogCVJFQURfTk9ERV9GSUVMRChy ZXN1bHRSZWxhdGlvbnMpOwogCVJFQURfTk9ERV9GSUVMRChhcHBlbmRSZWxhdGlvbnMpOwogCVJF QURfTk9ERV9GSUVMRChzdWJwbGFucyk7CkBAIC0yMDc0LDYgKzIwODgsNyBAQCBfcmVhZEZvcmVp Z25TY2FuKHZvaWQpCiAKIAlSRUFEX0VOVU1fRklFTEQob3BlcmF0aW9uLCBDbWRUeXBlKTsKIAlS RUFEX1VJTlRfRklFTEQocmVzdWx0UmVsYXRpb24pOworCVJFQURfT0lEX0ZJRUxEKGNoZWNrQXNV c2VyKTsKIAlSRUFEX09JRF9GSUVMRChmc19zZXJ2ZXIpOwogCVJFQURfTk9ERV9GSUVMRChmZHdf ZXhwcnMpOwogCVJFQURfTk9ERV9GSUVMRChmZHdfcHJpdmF0ZSk7CkBAIC0yODQ4LDYgKzI4NjMs OCBAQCBwYXJzZU5vZGVTdHJpbmcodm9pZCkKIAkJcmV0dXJuX3ZhbHVlID0gX3JlYWRBcHBlbmRS ZWxJbmZvKCk7CiAJZWxzZSBpZiAoTUFUQ0goIlJBTkdFVEJMRU5UUlkiLCAxMykpCiAJCXJldHVy bl92YWx1ZSA9IF9yZWFkUmFuZ2VUYmxFbnRyeSgpOworCWVsc2UgaWYgKE1BVENIKCJSRUxQRVJN SVNTSU9OSU5GTyIsIDE3KSkKKwkJcmV0dXJuX3ZhbHVlID0gX3JlYWRSZWxQZXJtaXNzaW9uSW5m bygpOwogCWVsc2UgaWYgKE1BVENIKCJSQU5HRVRCTEZVTkNUSU9OIiwgMTYpKQogCQlyZXR1cm5f dmFsdWUgPSBfcmVhZFJhbmdlVGJsRnVuY3Rpb24oKTsKIAllbHNlIGlmIChNQVRDSCgiVEFCTEVT QU1QTEVDTEFVU0UiLCAxNykpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9jcmVhdGVwbGFuLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMK aW5kZXggZmEwNjlhMjE3Yy4uMzA5N2QzOGQ0MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L2NyZWF0ZXBsYW4uYwpAQCAtNDA5Myw2ICs0MDkzLDkgQEAgY3JlYXRlX2ZvcmVpZ25zY2FuX3Bs YW4oUGxhbm5lckluZm8gKnJvb3QsIEZvcmVpZ25QYXRoICpiZXN0X3BhdGgsCiAJLyogQ29weSBj b3N0IGRhdGEgZnJvbSBQYXRoIHRvIFBsYW47IG5vIG5lZWQgdG8gbWFrZSBGRFcgZG8gdGhpcyAq LwogCWNvcHlfZ2VuZXJpY19wYXRoX2luZm8oJnNjYW5fcGxhbi0+c2Nhbi5wbGFuLCAmYmVzdF9w YXRoLT5wYXRoKTsKIAorCS8qIENvcHkgdXNlciBPSUQgdG8gYWNjZXNzIGFzOyBsaWtld2lzZSBu byBuZWVkIHRvIG1ha2UgRkRXIGRvIHRoaXMgKi8KKwlzY2FuX3BsYW4tPmNoZWNrQXNVc2VyID0g cmVsLT51c2VyaWQ7CisKIAkvKiBDb3B5IGZvcmVpZ24gc2VydmVyIE9JRDsgbGlrZXdpc2UsIG5v IG5lZWQgdG8gbWFrZSBGRFcgZG8gdGhpcyAqLwogCXNjYW5fcGxhbi0+ZnNfc2VydmVyID0gcmVs LT5zZXJ2ZXJpZDsKIApAQCAtNTc0Myw3ICs1NzQ2LDggQEAgbWFrZV9mb3JlaWduc2NhbihMaXN0 ICpxcHRsaXN0LAogCW5vZGUtPm9wZXJhdGlvbiA9IENNRF9TRUxFQ1Q7CiAJbm9kZS0+cmVzdWx0 UmVsYXRpb24gPSAwOwogCi0JLyogZnNfc2VydmVyIHdpbGwgYmUgZmlsbGVkIGluIGJ5IGNyZWF0 ZV9mb3JlaWduc2Nhbl9wbGFuICovCisJLyogY2hlY2tBc1VzZXIsIGZzX3NlcnZlciB3aWxsIGJl IGZpbGxlZCBpbiBieSBjcmVhdGVfZm9yZWlnbnNjYW5fcGxhbiAqLworCW5vZGUtPmNoZWNrQXNV c2VyID0gSW52YWxpZE9pZDsKIAlub2RlLT5mc19zZXJ2ZXIgPSBJbnZhbGlkT2lkOwogCW5vZGUt PmZkd19leHBycyA9IGZkd19leHByczsKIAlub2RlLT5mZHdfcHJpdmF0ZSA9IGZkd19wcml2YXRl OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IGJkMDlmODVhZWEuLjcwNWFm ZWEwZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTU2LDYgKzU2LDcg QEAKICNpbmNsdWRlICJvcHRpbWl6ZXIvdGxpc3QuaCIKICNpbmNsdWRlICJwYXJzZXIvYW5hbHl6 ZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9hZ2cuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFy c2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCiAjaW5jbHVkZSAi cGFydGl0aW9uaW5nL3BhcnRkZXNjLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlTWFuaXAu aCIKQEAgLTMwNSw2ICszMDYsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29u c3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlnbG9iLT5zdWJyb290 cyA9IE5JTDsKIAlnbG9iLT5yZXdpbmRQbGFuSURzID0gTlVMTDsKIAlnbG9iLT5maW5hbHJ0YWJs ZSA9IE5JTDsKKwlnbG9iLT5maW5hbHJlbHBlcm1saXN0ID0gTklMOwogCWdsb2ItPmZpbmFscm93 bWFya3MgPSBOSUw7CiAJZ2xvYi0+cmVzdWx0UmVsYXRpb25zID0gTklMOwogCWdsb2ItPmFwcGVu ZFJlbGF0aW9ucyA9IE5JTDsKQEAgLTQ5Miw2ICs0OTQsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1 ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywK IAogCS8qIGZpbmFsIGNsZWFudXAgb2YgdGhlIHBsYW4gKi8KIAlBc3NlcnQoZ2xvYi0+ZmluYWxy dGFibGUgPT0gTklMKTsKKwlBc3NlcnQoZ2xvYi0+ZmluYWxyZWxwZXJtbGlzdCA9PSBOSUwpOwog CUFzc2VydChnbG9iLT5maW5hbHJvd21hcmtzID09IE5JTCk7CiAJQXNzZXJ0KGdsb2ItPnJlc3Vs dFJlbGF0aW9ucyA9PSBOSUwpOwogCUFzc2VydChnbG9iLT5hcHBlbmRSZWxhdGlvbnMgPT0gTklM KTsKQEAgLTUxOSw2ICs1MjIsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29u c3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFs bGVsTW9kZU5lZWRlZCA9IGdsb2ItPnBhcmFsbGVsTW9kZU5lZWRlZDsKIAlyZXN1bHQtPnBsYW5U cmVlID0gdG9wX3BsYW47CiAJcmVzdWx0LT5ydGFibGUgPSBnbG9iLT5maW5hbHJ0YWJsZTsKKwly ZXN1bHQtPnJlbHBlcm1saXN0ID0gZ2xvYi0+ZmluYWxyZWxwZXJtbGlzdDsKIAlyZXN1bHQtPnJl c3VsdFJlbGF0aW9ucyA9IGdsb2ItPnJlc3VsdFJlbGF0aW9uczsKIAlyZXN1bHQtPmFwcGVuZFJl bGF0aW9ucyA9IGdsb2ItPmFwcGVuZFJlbGF0aW9uczsKIAlyZXN1bHQtPnN1YnBsYW5zID0gZ2xv Yi0+c3VicGxhbnM7CkBAIC01OTI2LDYgKzU5MzAsNyBAQCBwbGFuX2NsdXN0ZXJfdXNlX3NvcnQo T2lkIHRhYmxlT2lkLCBPaWQgaW5kZXhPaWQpCiAJcnRlLT5pbmggPSBmYWxzZTsKIAlydGUtPmlu RnJvbUNsID0gdHJ1ZTsKIAlxdWVyeS0+cnRhYmxlID0gbGlzdF9tYWtlMShydGUpOworCUFkZFJl bFBlcm1pc3Npb25JbmZvKCZxdWVyeS0+cmVscGVybWxpc3QsIHJ0ZSk7CiAKIAkvKiBTZXQgdXAg UlRFL1JlbE9wdEluZm8gYXJyYXlzICovCiAJc2V0dXBfc2ltcGxlX3JlbF9hcnJheXMocm9vdCk7 CkBAIC02MDUzLDYgKzYwNTgsNyBAQCBwbGFuX2NyZWF0ZV9pbmRleF93b3JrZXJzKE9pZCB0YWJs ZU9pZCwgT2lkIGluZGV4T2lkKQogCXJ0ZS0+aW5oID0gdHJ1ZTsKIAlydGUtPmluRnJvbUNsID0g dHJ1ZTsKIAlxdWVyeS0+cnRhYmxlID0gbGlzdF9tYWtlMShydGUpOworCUFkZFJlbFBlcm1pc3Np b25JbmZvKCZxdWVyeS0+cmVscGVybWxpc3QsIHJ0ZSk7CiAKIAkvKiBTZXQgdXAgUlRFL1JlbE9w dEluZm8gYXJyYXlzICovCiAJc2V0dXBfc2ltcGxlX3JlbF9hcnJheXMocm9vdCk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggYTdiMTFiN2YwMy4uYmRmOGI2NmU0ZCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCisrKyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwpAQCAtMTA0LDkgKzEwNCw3IEBAIHR5cGVk ZWYgc3RydWN0CiAjZGVmaW5lIGZpeF9zY2FuX2xpc3Qocm9vdCwgbHN0LCBydG9mZnNldCwgbnVt X2V4ZWMpIFwKIAkoKExpc3QgKikgZml4X3NjYW5fZXhwcihyb290LCAoTm9kZSAqKSAobHN0KSwg cnRvZmZzZXQsIG51bV9leGVjKSkKIAotc3RhdGljIHZvaWQgYWRkX3J0ZXNfdG9fZmxhdF9ydGFi bGUoUGxhbm5lckluZm8gKnJvb3QsIGJvb2wgcmVjdXJzaW5nKTsKLXN0YXRpYyB2b2lkIGZsYXR0 ZW5fdW5wbGFubmVkX3J0ZXMoUGxhbm5lckdsb2JhbCAqZ2xvYiwgUmFuZ2VUYmxFbnRyeSAqcnRl KTsKLXN0YXRpYyBib29sIGZsYXR0ZW5fcnRlc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckds b2JhbCAqZ2xvYik7CitzdGF0aWMgdm9pZCBhZGRfcnRlc190b19mbGF0X3J0YWJsZShQbGFubmVy SW5mbyAqcm9vdCk7CiBzdGF0aWMgdm9pZCBhZGRfcnRlX3RvX2ZsYXRfcnRhYmxlKFBsYW5uZXJH bG9iYWwgKmdsb2IsIFJhbmdlVGJsRW50cnkgKnJ0ZSk7CiBzdGF0aWMgUGxhbiAqc2V0X3BsYW5f cmVmcyhQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwgaW50IHJ0b2Zmc2V0KTsKIHN0YXRp YyBQbGFuICpzZXRfaW5kZXhvbmx5c2Nhbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LApA QCAtMjU5LDcgKzI1Nyw3IEBAIHNldF9wbGFuX3JlZmVyZW5jZXMoUGxhbm5lckluZm8gKnJvb3Qs IFBsYW4gKnBsYW4pCiAJICogd2lsbCBoYXZlIHRoZWlyIHJhbmdldGFibGUgaW5kZXhlcyBpbmNy ZWFzZWQgYnkgcnRvZmZzZXQuICAoQWRkaXRpb25hbAogCSAqIFJURXMsIG5vdCByZWZlcmVuY2Vk IGJ5IHRoZSBQbGFuIHRyZWUsIG1pZ2h0IGdldCBhZGRlZCBhZnRlciB0aG9zZS4pCiAJICovCi0J YWRkX3J0ZXNfdG9fZmxhdF9ydGFibGUocm9vdCwgZmFsc2UpOworCWFkZF9ydGVzX3RvX2ZsYXRf cnRhYmxlKHJvb3QpOwogCiAJLyoKIAkgKiBBZGp1c3QgUlQgaW5kZXhlcyBvZiBQbGFuUm93TWFy a3MgYW5kIGFkZCB0byBmaW5hbCByb3dtYXJrcyBsaXN0CkBAIC0zNDUsMTAgKzM0MywxNyBAQCBz ZXRfcGxhbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuKQogLyoKICAq IEV4dHJhY3QgUmFuZ2VUYmxFbnRyaWVzIGZyb20gdGhlIHBsYW4ncyByYW5nZXRhYmxlLCBhbmQg YWRkIHRvIGZsYXQgcnRhYmxlCiAgKgotICogVGhpcyBjYW4gcmVjdXJzZSBpbnRvIHN1YnF1ZXJ5 IHBsYW5zOyAicmVjdXJzaW5nIiBpcyB0cnVlIGlmIHNvLgorICogRG9lcyB0aGUgc2FtZSBmb3Ig UmVsUGVybWlzc2lvbkluZm9zLiAgVGhpcyBhbHNvIGh1bnRzIGRvd24gYW55IHN1YnF1ZXJ5Cisg KiBSVEVzIG9mIHRoZSBjdXJyZW50IHBsYW4gbGV2ZWwgdGhhdCBkaWQgbm90IG1ha2UgaW50byB0 aGUgcGxhbiB0cmVlIGJ5IHdheQorICogb2YgYmVpbmcgcHVsbGVkIHVwLCBub3IgdHVybmVkIGlu dG8gU3VicXVlcnlTY2FuIG5vZGVzIHJlZmVyZW5jZWQgaW4gdGhlCisgKiBwbGFuIHRyZWUuICBT dWNoIHN1YnF1ZXJpZXMgd291bGQgbm90IHRodXMgaGF2ZSBoYWQgYW55IFJlbFBlcm1pc3Npb25J bmZvcworICogcmVmZXJlbmNlZCBpbiB0aGVtIG1lcmdlZCBpbnRvIHJvb3QtPnBhcnNlLT5yZWxw ZXJtbGlzdCwgc28gd2UgbXVzdCBmb3JjZS0KKyAqIGFkZCB0aGVtIHRvIGdsb2ItPmZpbmFscmVs cGVybWxpc3QuICBGYWlsaW5nIHRvIGRvIHNvIHdvdWxkIHByZXZlbnQgdGhlCisgKiBleGVjdXRv ciBmcm9tIHBlcmZvcm1pbmcgZXhwZWN0ZWQgcGVybWlzc2lvbiBjaGVja3MgZm9yIHRhYmxlcyBt ZW50aW9uZWQgaW4KKyAqIHN1Y2ggc3VicXVlcmllcy4KICAqLwogc3RhdGljIHZvaWQKLWFkZF9y dGVzX3RvX2ZsYXRfcnRhYmxlKFBsYW5uZXJJbmZvICpyb290LCBib29sIHJlY3Vyc2luZykKK2Fk ZF9ydGVzX3RvX2ZsYXRfcnRhYmxlKFBsYW5uZXJJbmZvICpyb290KQogewogCVBsYW5uZXJHbG9i YWwgKmdsb2IgPSByb290LT5nbG9iOwogCUluZGV4CQlydGk7CkBAIC0zNjEsMjkgKzM2NiwxMyBA QCBhZGRfcnRlc190b19mbGF0X3J0YWJsZShQbGFubmVySW5mbyAqcm9vdCwgYm9vbCByZWN1cnNp bmcpCiAJICogZmxhdHRlbmVkIHJhbmdldGFibGUgbWF0Y2ggdXAgd2l0aCB0aGVpciBvcmlnaW5h bCBpbmRleGVzLiAgV2hlbgogCSAqIHJlY3Vyc2luZywgd2Ugb25seSBjYXJlIGFib3V0IGV4dHJh Y3RpbmcgcmVsYXRpb24gUlRFcy4KIAkgKi8KLQlmb3JlYWNoKGxjLCByb290LT5wYXJzZS0+cnRh YmxlKQotCXsKLQkJUmFuZ2VUYmxFbnRyeSAqcnRlID0gKFJhbmdlVGJsRW50cnkgKikgbGZpcnN0 KGxjKTsKLQotCQlpZiAoIXJlY3Vyc2luZyB8fCBydGUtPnJ0ZWtpbmQgPT0gUlRFX1JFTEFUSU9O KQotCQkJYWRkX3J0ZV90b19mbGF0X3J0YWJsZShnbG9iLCBydGUpOwotCX0KLQotCS8qCi0JICog SWYgdGhlcmUgYXJlIGFueSBkZWFkIHN1YnF1ZXJpZXMsIHRoZXkgYXJlIG5vdCByZWZlcmVuY2Vk IGluIHRoZSBQbGFuCi0JICogdHJlZSwgc28gd2UgbXVzdCBhZGQgUlRFcyBjb250YWluZWQgaW4g dGhlbSB0byB0aGUgZmxhdHRlbmVkIHJ0YWJsZQotCSAqIHNlcGFyYXRlbHkuICAoSWYgd2UgZmFp bGVkIHRvIGRvIHRoaXMsIHRoZSBleGVjdXRvciB3b3VsZCBub3QgcGVyZm9ybQotCSAqIGV4cGVj dGVkIHBlcm1pc3Npb24gY2hlY2tzIGZvciB0YWJsZXMgbWVudGlvbmVkIGluIHN1Y2ggc3VicXVl cmllcy4pCi0JICoKLQkgKiBOb3RlOiB0aGlzIHBhc3Mgb3ZlciB0aGUgcmFuZ2V0YWJsZSBjYW4n dCBiZSBjb21iaW5lZCB3aXRoIHRoZSBwcmV2aW91cwotCSAqIG9uZSwgYmVjYXVzZSB0aGF0IHdv dWxkIG1lc3MgdXAgdGhlIG51bWJlcmluZyBvZiB0aGUgbGl2ZSBSVEVzIGluIHRoZQotCSAqIGZs YXR0ZW5lZCByYW5nZXRhYmxlLgotCSAqLwogCXJ0aSA9IDE7CiAJZm9yZWFjaChsYywgcm9vdC0+ cGFyc2UtPnJ0YWJsZSkKIAl7CiAJCVJhbmdlVGJsRW50cnkgKnJ0ZSA9IChSYW5nZVRibEVudHJ5 ICopIGxmaXJzdChsYyk7CiAKKwkJYWRkX3J0ZV90b19mbGF0X3J0YWJsZShnbG9iLCBydGUpOwor CiAJCS8qCiAJCSAqIFdlIHNob3VsZCBpZ25vcmUgaW5oZXJpdGFuY2UtcGFyZW50IFJURXM6IHRo ZWlyIGNvbnRlbnRzIGhhdmUgYmVlbgogCQkgKiBwdWxsZWQgdXAgaW50byBvdXIgcmFuZ2V0YWJs ZSBhbHJlYWR5LiAgQWxzbyBpZ25vcmUgYW55IHN1YnF1ZXJ5CkBAIC00MDAsNzMgKzM4OSwyNyBA QCBhZGRfcnRlc190b19mbGF0X3J0YWJsZShQbGFubmVySW5mbyAqcm9vdCwgYm9vbCByZWN1cnNp bmcpCiAJCQkJQXNzZXJ0KHJlbC0+cmVsaWQgPT0gcnRpKTsJLyogc2FuaXR5IGNoZWNrIG9uIGFy cmF5ICovCiAKIAkJCQkvKgotCQkJCSAqIFRoZSBzdWJxdWVyeSBtaWdodCBuZXZlciBoYXZlIGJl ZW4gcGxhbm5lZCBhdCBhbGwsIGlmIGl0CisJCQkJICogQSBkZWFkIHN1YnF1ZXJ5IGlzIG9uZSB0 aGF0IHdhcyBub3QgcGxhbm5lZCBhdCBhbGwsIGlmIGl0CiAJCQkJICogd2FzIGV4Y2x1ZGVkIG9u IHRoZSBiYXNpcyBvZiBzZWxmLWNvbnRyYWRpY3RvcnkgY29uc3RyYWludHMKLQkJCQkgKiBpbiBv dXIgcXVlcnkgbGV2ZWwuICBJbiB0aGlzIGNhc2UgYXBwbHkKLQkJCQkgKiBmbGF0dGVuX3VucGxh bm5lZF9ydGVzLgotCQkJCSAqCi0JCQkJICogSWYgaXQgd2FzIHBsYW5uZWQgYnV0IHRoZSByZXN1 bHQgcmVsIGlzIGR1bW15LCB3ZSBhc3N1bWUKLQkJCQkgKiB0aGF0IGl0IGhhcyBiZWVuIG9taXR0 ZWQgZnJvbSBvdXIgcGxhbiB0cmVlIChzZWUKLQkJCQkgKiBzZXRfc3VicXVlcnlfcGF0aGxpc3Qp LCBhbmQgcmVjdXJzZSB0byBwdWxsIHVwIGl0cyBSVEVzLgotCQkJCSAqCi0JCQkJICogT3RoZXJ3 aXNlLCBpdCBzaG91bGQgYmUgcmVwcmVzZW50ZWQgYnkgYSBTdWJxdWVyeVNjYW4gbm9kZQotCQkJ CSAqIHNvbWV3aGVyZSBpbiBvdXIgcGxhbiB0cmVlLCBhbmQgd2UnbGwgcHVsbCB1cCBpdHMgUlRF cyB3aGVuCi0JCQkJICogd2UgcHJvY2VzcyB0aGF0IHBsYW4gbm9kZS4KLQkJCQkgKgotCQkJCSAq IEhvd2V2ZXIsIGlmIHdlJ3JlIHJlY3Vyc2luZywgdGhlbiB3ZSBzaG91bGQgcHVsbCB1cCBSVEVz Ci0JCQkJICogd2hldGhlciB0aGUgc3VicXVlcnkgaXMgZHVtbXkgb3Igbm90LCBiZWNhdXNlIHdl J3ZlIGZvdW5kCi0JCQkJICogdGhhdCBzb21lIHVwcGVyIHF1ZXJ5IGxldmVsIGlzIHRyZWF0aW5n IHRoaXMgb25lIGFzIGR1bW15LAotCQkJCSAqIGFuZCBzbyB3ZSB3b24ndCBzY2FuIHRoaXMgbGV2 ZWwncyBwbGFuIHRyZWUgYXQgYWxsLgorCQkJCSAqIGluIG91ciBxdWVyeSBsZXZlbCwgb3Igb25l IHRoYXQgd2FzIHBsYW5uZWQgYnV0IHRoZSByZXN1bHQKKwkJCQkgKiByZWwgd2FzIGR1bW15Lgog CQkJCSAqLwotCQkJCWlmIChyZWwtPnN1YnJvb3QgPT0gTlVMTCkKLQkJCQkJZmxhdHRlbl91bnBs YW5uZWRfcnRlcyhnbG9iLCBydGUpOwotCQkJCWVsc2UgaWYgKHJlY3Vyc2luZyB8fAotCQkJCQkJ IElTX0RVTU1ZX1JFTChmZXRjaF91cHBlcl9yZWwocmVsLT5zdWJyb290LAotCQkJCQkJCQkJCQkJ CSAgVVBQRVJSRUxfRklOQUwsIE5VTEwpKSkKLQkJCQkJYWRkX3J0ZXNfdG9fZmxhdF9ydGFibGUo cmVsLT5zdWJyb290LCB0cnVlKTsKKwkJCQlpZiAocnRlLT5zdWJxdWVyeSAmJiBydGUtPnN1YnF1 ZXJ5LT5yZWxwZXJtbGlzdCAmJgorCQkJCQkocmVsLT5zdWJyb290ID09IE5VTEwgfHwKKwkJCQkJ IElTX0RVTU1ZX1JFTChmZXRjaF91cHBlcl9yZWwocmVsLT5zdWJyb290LAorCQkJCQkJCQkJCQkJ ICBVUFBFUlJFTF9GSU5BTCwgTlVMTCkpKSkKKwkJCQkJZ2xvYi0+ZmluYWxyZWxwZXJtbGlzdCA9 CisJCQkJCQlsaXN0X2NvbmNhdChnbG9iLT5maW5hbHJlbHBlcm1saXN0LAorCQkJCQkJCQkJcnRl LT5zdWJxdWVyeS0+cmVscGVybWxpc3QpOwogCQkJfQorCiAJCX0KIAkJcnRpKys7CiAJfQotfQot Ci0vKgotICogRXh0cmFjdCBSYW5nZVRibEVudHJpZXMgZnJvbSBhIHN1YnF1ZXJ5IHRoYXQgd2Fz IG5ldmVyIHBsYW5uZWQgYXQgYWxsCi0gKi8KLXN0YXRpYyB2b2lkCi1mbGF0dGVuX3VucGxhbm5l ZF9ydGVzKFBsYW5uZXJHbG9iYWwgKmdsb2IsIFJhbmdlVGJsRW50cnkgKnJ0ZSkKLXsKLQkvKiBV c2UgcXVlcnlfdHJlZV93YWxrZXIgdG8gZmluZCBhbGwgUlRFcyBpbiB0aGUgcGFyc2UgdHJlZSAq LwotCSh2b2lkKSBxdWVyeV90cmVlX3dhbGtlcihydGUtPnN1YnF1ZXJ5LAotCQkJCQkJCSBmbGF0 dGVuX3J0ZXNfd2Fsa2VyLAotCQkJCQkJCSAodm9pZCAqKSBnbG9iLAotCQkJCQkJCSBRVFdfRVhB TUlORV9SVEVTX0JFRk9SRSk7Ci19Ci0KLXN0YXRpYyBib29sCi1mbGF0dGVuX3J0ZXNfd2Fsa2Vy KE5vZGUgKm5vZGUsIFBsYW5uZXJHbG9iYWwgKmdsb2IpCi17Ci0JaWYgKG5vZGUgPT0gTlVMTCkK LQkJcmV0dXJuIGZhbHNlOwotCWlmIChJc0Eobm9kZSwgUmFuZ2VUYmxFbnRyeSkpCi0JewotCQlS YW5nZVRibEVudHJ5ICpydGUgPSAoUmFuZ2VUYmxFbnRyeSAqKSBub2RlOwogCi0JCS8qIEFzIGFi b3ZlLCB3ZSBuZWVkIG9ubHkgc2F2ZSByZWxhdGlvbiBSVEVzICovCi0JCWlmIChydGUtPnJ0ZWtp bmQgPT0gUlRFX1JFTEFUSU9OKQotCQkJYWRkX3J0ZV90b19mbGF0X3J0YWJsZShnbG9iLCBydGUp OwotCQlyZXR1cm4gZmFsc2U7Ci0JfQotCWlmIChJc0Eobm9kZSwgUXVlcnkpKQotCXsKLQkJLyog UmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8KLQkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChR dWVyeSAqKSBub2RlLAotCQkJCQkJCQkgZmxhdHRlbl9ydGVzX3dhbGtlciwKLQkJCQkJCQkJICh2 b2lkICopIGdsb2IsCi0JCQkJCQkJCSBRVFdfRVhBTUlORV9SVEVTX0JFRk9SRSk7Ci0JfQotCXJl dHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGZsYXR0ZW5fcnRlc193YWxrZXIsCi0J CQkJCQkJCSAgKHZvaWQgKikgZ2xvYik7CisJLyogRmluYWxseSwgYWRkIHRoZSBxdWVyeSdzIFJl bFBlcm1pc3Npb25JbmZvcyB0byB0aGUgZ2xvYmFsIGxpc3QuICovCisJZ2xvYi0+ZmluYWxyZWxw ZXJtbGlzdCA9IGxpc3RfY29uY2F0KGdsb2ItPmZpbmFscmVscGVybWxpc3QsCisJCQkJCQkJCQkJ IHJvb3QtPnBhcnNlLT5yZWxwZXJtbGlzdCk7CiB9CiAKIC8qCkBAIC00NzUsOSArNDE4LDcgQEAg ZmxhdHRlbl9ydGVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVyR2xvYmFsICpnbG9iKQogICog SW4gdGhlIGZsYXQgcmFuZ2V0YWJsZSwgd2UgemVybyBvdXQgc3Vic3RydWN0dXJlIHBvaW50ZXJz IHRoYXQgYXJlIG5vdAogICogbmVlZGVkIGJ5IHRoZSBleGVjdXRvcjsgdGhpcyByZWR1Y2VzIHRo ZSBzdG9yYWdlIHNwYWNlIGFuZCBjb3B5aW5nIGNvc3QKICAqIGZvciBjYWNoZWQgcGxhbnMuICBX ZSBrZWVwIG9ubHkgdGhlIGN0ZW5hbWUsIGFsaWFzIGFuZCBlcmVmIEFsaWFzIGZpZWxkcywKLSAq IHdoaWNoIGFyZSBuZWVkZWQgYnkgRVhQTEFJTiwgYW5kIHRoZSBzZWxlY3RlZENvbHMsIGluc2Vy dGVkQ29scywKLSAqIHVwZGF0ZWRDb2xzLCBhbmQgZXh0cmFVcGRhdGVkQ29scyBiaXRtYXBzLCB3 aGljaCBhcmUgbmVlZGVkIGZvcgotICogZXhlY3V0b3Itc3RhcnR1cCBwZXJtaXNzaW9ucyBjaGVj a2luZyBhbmQgZm9yIHRyaWdnZXIgZXZlbnQgY2hlY2tpbmcuCisgKiB3aGljaCBhcmUgbmVlZGVk IGJ5IEVYUExBSU4uCiAgKi8KIHN0YXRpYyB2b2lkCiBhZGRfcnRlX3RvX2ZsYXRfcnRhYmxlKFBs YW5uZXJHbG9iYWwgKmdsb2IsIFJhbmdlVGJsRW50cnkgKnJ0ZSkKQEAgLTQ4OCw2ICs0MjksMTQg QEAgYWRkX3J0ZV90b19mbGF0X3J0YWJsZShQbGFubmVyR2xvYmFsICpnbG9iLCBSYW5nZVRibEVu dHJ5ICpydGUpCiAJbmV3cnRlID0gKFJhbmdlVGJsRW50cnkgKikgcGFsbG9jKHNpemVvZihSYW5n ZVRibEVudHJ5KSk7CiAJbWVtY3B5KG5ld3J0ZSwgcnRlLCBzaXplb2YoUmFuZ2VUYmxFbnRyeSkp OwogCisJLyoKKwkgKiBFeGVjdXRvciBtYXkgbmVlZCB0byBsb29rIHVwIFJlbFBlcm1pc3Npb25J bmZvcywgc28gbXVzdCBrZWVwCisJICogcGVybWluZm9pbmRleCBhcm91bmQuICBUaG91Z2gsIHRo ZSBsaXN0IGNvbnRhaW5pbmcgdGhlIFJlbFBlcm1pc3Npb25JbmZvCisJICogdG8gd2hpY2ggdGhl IGluZGV4IHBvaW50cyB3aWxsIGJlIGZvbGRlZCBpbnRvIGdsb2ItPmZpbmFscmVscGVybWxpc3Qs IHNvCisJICogb2Zmc2V0IHRoZSBpbmRleCBsaWtld2lzZS4KKwkgKi8KKwluZXdydGUtPnBlcm1p bmZvaW5kZXggKz0gbGlzdF9sZW5ndGgoZ2xvYi0+ZmluYWxyZWxwZXJtbGlzdCk7CisKIAkvKiB6 YXAgdW5uZWVkZWQgc3ViLXN0cnVjdHVyZSAqLwogCW5ld3J0ZS0+dGFibGVzYW1wbGUgPSBOVUxM OwogCW5ld3J0ZS0+c3VicXVlcnkgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc3Vic2VsZWN0LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zdWJz ZWxlY3QuYwppbmRleCA4NjNlMGUyNGExLi5jMGIxOThiNGM5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zdWJzZWxlY3QuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9zdWJzZWxlY3QuYwpAQCAtMTUwNyw2ICsxNTA3LDExIEBAIGNvbnZlcnRfRVhJU1RT X3N1YmxpbmtfdG9fam9pbihQbGFubmVySW5mbyAqcm9vdCwgU3ViTGluayAqc3VibGluaywKIAkv KiBOb3cgd2UgY2FuIGF0dGFjaCB0aGUgbW9kaWZpZWQgc3VicXVlcnkgcnRhYmxlIHRvIHRoZSBw YXJlbnQgKi8KIAlwYXJzZS0+cnRhYmxlID0gbGlzdF9jb25jYXQocGFyc2UtPnJ0YWJsZSwgc3Vi c2VsZWN0LT5ydGFibGUpOwogCisJLyoKKwkgKiBBZGQgc3VicXVlcnkncyBSZWxQZXJtaXNzaW9u SW5mb3MgaW50byB0aGUgdXBwZXIgcXVlcnkuCisJICovCisJTWVyZ2VSZWxQZXJtaXNzaW9uSW5m b3MocGFyc2UsIHN1YnNlbGVjdC0+cmVscGVybWxpc3QpOworCiAJLyoKIAkgKiBBbmQgZmluYWxs eSwgYnVpbGQgdGhlIEpvaW5FeHByIG5vZGUuCiAJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w cmVwL3ByZXBqb2ludHJlZS5jCmluZGV4IDc0ODIzZTg0MzcuLmMxZjk2MTA0NzggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xMTMxLDYgKzExMzEsMTEg QEAgcHVsbF91cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9k ZSwgUmFuZ2VUYmxFbnRyeSAqcnRlLAogCSAqLwogCXBhcnNlLT5ydGFibGUgPSBsaXN0X2NvbmNh dChwYXJzZS0+cnRhYmxlLCBzdWJxdWVyeS0+cnRhYmxlKTsKIAorCS8qCisJICogQWRkIHN1YnF1 ZXJ5J3MgUmVsUGVybWlzc2lvbkluZm9zIGludG8gdGhlIHVwcGVyIHF1ZXJ5LgorCSAqLworCU1l cmdlUmVsUGVybWlzc2lvbkluZm9zKHBhcnNlLCBzdWJxdWVyeS0+cmVscGVybWxpc3QpOworCiAJ LyoKIAkgKiBQdWxsIHVwIGFueSBGT1IgVVBEQVRFL1NIQVJFIG1hcmtlcnMsIHRvby4gIChPZmZz ZXRWYXJOb2RlcyBhbHJlYWR5CiAJICogYWRqdXN0ZWQgdGhlIG1hcmtlciBydGluZGV4ZXMsIHNv IGp1c3QgY29uY2F0IHRoZSBsaXN0cy4pCkBAIC0xMjY5LDYgKzEyNzQsMTEgQEAgcHVsbF91cF9z aW1wbGVfdW5pb25fYWxsKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIFJhbmdlVGJs RW50cnkgKnJ0ZSkKIAkgKi8KIAlyb290LT5wYXJzZS0+cnRhYmxlID0gbGlzdF9jb25jYXQocm9v dC0+cGFyc2UtPnJ0YWJsZSwgcnRhYmxlKTsKIAorCS8qCisJICogQWRkIHRoZSBjaGlsZCBxdWVy eSdzIFJlbFBlcm1pc3Npb25JbmZvcyBpbnRvIHRoZSBwYXJlbnQgcXVlcnkuCisJICovCisJTWVy Z2VSZWxQZXJtaXNzaW9uSW5mb3Mocm9vdC0+cGFyc2UsIHN1YnF1ZXJ5LT5yZWxwZXJtbGlzdCk7 CisKIAkvKgogCSAqIFJlY3Vyc2l2ZWx5IHNjYW4gdGhlIHN1YnF1ZXJ5J3Mgc2V0T3BlcmF0aW9u cyB0cmVlIGFuZCBhZGQKIAkgKiBBcHBlbmRSZWxJbmZvIG5vZGVzIGZvciBsZWFmIHN1YnF1ZXJp ZXMgdG8gdGhlIHBhcmVudCdzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9pbmhlcml0LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9pbmhlcml0LmMKaW5kZXgg N2UxMzQ4MjJmMy4uNGRhMmIyMTNlZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3V0aWwvaW5oZXJpdC5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2luaGVyaXQu YwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIm9wdGltaXplci9wcmVwLmgiCiAjaW5jbHVk ZSAib3B0aW1pemVyL3Jlc3RyaWN0aW5mby5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUu aCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJ0aXRp b25pbmcvcGFydGRlc2MuaCIKICNpbmNsdWRlICJwYXJ0aXRpb25pbmcvcGFydHBydW5lLmgiCiAj aW5jbHVkZSAidXRpbHMvcmVsLmgiCkBAIC0zOCw2ICszOSw4IEBACiBzdGF0aWMgdm9pZCBleHBh bmRfcGFydGl0aW9uZWRfcnRlbnRyeShQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVs aW5mbywKIAkJCQkJCQkJCSAgIFJhbmdlVGJsRW50cnkgKnBhcmVudHJ0ZSwKIAkJCQkJCQkJCSAg IEluZGV4IHBhcmVudFJUaW5kZXgsIFJlbGF0aW9uIHBhcmVudHJlbCwKKwkJCQkJCQkJCSAgIEJp dG1hcHNldCAqcGFyZW50X3VwZGF0ZWRDb2xzLAorCQkJCQkJCQkJICAgQml0bWFwc2V0ICpwYXJl bnRfZXh0cmFVcGRhdGVkQ29scywKIAkJCQkJCQkJCSAgIFBsYW5Sb3dNYXJrICp0b3BfcGFyZW50 cmMsIExPQ0tNT0RFIGxvY2ttb2RlKTsKIHN0YXRpYyB2b2lkIGV4cGFuZF9zaW5nbGVfaW5oZXJp dGFuY2VfY2hpbGQoUGxhbm5lckluZm8gKnJvb3QsCiAJCQkJCQkJCQkJCVJhbmdlVGJsRW50cnkg KnBhcmVudHJ0ZSwKQEAgLTEzMSw2ICsxMzQsOSBAQCBleHBhbmRfaW5oZXJpdGVkX3J0ZW50cnko UGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIAkvKiBTY2FuIHRoZSBpbmhlcml0 YW5jZSBzZXQgYW5kIGV4cGFuZCBpdCAqLwogCWlmIChvbGRyZWxhdGlvbi0+cmRfcmVsLT5yZWxr aW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJeworCQlSZWxQZXJtaXNzaW9uSW5m byAqcm9vdF9wZXJtaW5mbyA9CisJCQlHZXRSZWxQZXJtaXNzaW9uSW5mbyhyb290LT5wYXJzZS0+ cmVscGVybWxpc3QsIHJ0ZSwgZmFsc2UpOworCiAJCS8qCiAJCSAqIFBhcnRpdGlvbmVkIHRhYmxl LCBzbyBzZXQgdXAgZm9yIHBhcnRpdGlvbmluZy4KIAkJICovCkBAIC0xNDEsNyArMTQ3LDEwIEBA IGV4cGFuZF9pbmhlcml0ZWRfcnRlbnRyeShQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAq cmVsLAogCQkgKiBleHRyYWN0IHRoZSBwYXJ0aXRpb24ga2V5IGNvbHVtbnMgb2YgYWxsIHRoZSBw YXJ0aXRpb25lZCB0YWJsZXMuCiAJCSAqLwogCQlleHBhbmRfcGFydGl0aW9uZWRfcnRlbnRyeShy b290LCByZWwsIHJ0ZSwgcnRpLAotCQkJCQkJCQkgICBvbGRyZWxhdGlvbiwgb2xkcmMsIGxvY2tt b2RlKTsKKwkJCQkJCQkJICAgb2xkcmVsYXRpb24sCisJCQkJCQkJCSAgIHJvb3RfcGVybWluZm8t PnVwZGF0ZWRDb2xzLAorCQkJCQkJCQkgICByb290X3Blcm1pbmZvLT5leHRyYVVwZGF0ZWRDb2xz LAorCQkJCQkJCQkgICBvbGRyYywgbG9ja21vZGUpOwogCX0KIAllbHNlCiAJewpAQCAtMzA1LDYg KzMxNCw4IEBAIHN0YXRpYyB2b2lkCiBleHBhbmRfcGFydGl0aW9uZWRfcnRlbnRyeShQbGFubmVy SW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsaW5mbywKIAkJCQkJCSAgIFJhbmdlVGJsRW50cnkg KnBhcmVudHJ0ZSwKIAkJCQkJCSAgIEluZGV4IHBhcmVudFJUaW5kZXgsIFJlbGF0aW9uIHBhcmVu dHJlbCwKKwkJCQkJCSAgIEJpdG1hcHNldCAqcGFyZW50X3VwZGF0ZWRDb2xzLAorCQkJCQkJICAg Qml0bWFwc2V0ICpwYXJlbnRfZXh0cmFVcGRhdGVkQ29scywKIAkJCQkJCSAgIFBsYW5Sb3dNYXJr ICp0b3BfcGFyZW50cmMsIExPQ0tNT0RFIGxvY2ttb2RlKQogewogCVBhcnRpdGlvbkRlc2MgcGFy dGRlc2M7CkBAIC0zMjMsMjAgKzMzNCwxNiBAQCBleHBhbmRfcGFydGl0aW9uZWRfcnRlbnRyeShQ bGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsaW5mbywKIAlBc3NlcnQocGFydGRlc2Mp OwogCiAJLyoKLQkgKiBOb3RlIGRvd24gd2hldGhlciBhbnkgcGFydGl0aW9uIGtleSBjb2xzIGFy ZSBiZWluZyB1cGRhdGVkLiBUaG91Z2ggaXQncwotCSAqIHRoZSByb290IHBhcnRpdGlvbmVkIHRh YmxlJ3MgdXBkYXRlZENvbHMgd2UgYXJlIGludGVyZXN0ZWQgaW4sIHdlCi0JICogaW5zdGVhZCB1 c2UgcGFyZW50cnRlIHRvIGdldCB0aGUgdXBkYXRlZENvbHMuIFRoaXMgaXMgY29udmVuaWVudAot CSAqIGJlY2F1c2UgcGFyZW50cnRlIGFscmVhZHkgaGFzIHRoZSByb290IHBhcnRyZWwncyB1cGRh dGVkQ29scyB0cmFuc2xhdGVkCi0JICogdG8gbWF0Y2ggdGhlIGF0dHJpYnV0ZSBvcmRlcmluZyBv ZiBwYXJlbnRyZWwuCisJICogTm90ZSBkb3duIHdoZXRoZXIgYW55IHBhcnRpdGlvbiBrZXkgY29s cyBhcmUgYmVpbmcgdXBkYXRlZC4KIAkgKi8KIAlpZiAoIXJvb3QtPnBhcnRDb2xzVXBkYXRlZCkK IAkJcm9vdC0+cGFydENvbHNVcGRhdGVkID0KLQkJCWhhc19wYXJ0aXRpb25fYXR0cnMocGFyZW50 cmVsLCBwYXJlbnRydGUtPnVwZGF0ZWRDb2xzLCBOVUxMKTsKKwkJCWhhc19wYXJ0aXRpb25fYXR0 cnMocGFyZW50cmVsLCBwYXJlbnRfdXBkYXRlZENvbHMsIE5VTEwpOwogCiAJLyoKIAkgKiBUaGVy ZSBzaG91bGRuJ3QgYmUgYW55IGdlbmVyYXRlZCBjb2x1bW5zIGluIHRoZSBwYXJ0aXRpb24ga2V5 LgogCSAqLwotCUFzc2VydCghaGFzX3BhcnRpdGlvbl9hdHRycyhwYXJlbnRyZWwsIHBhcmVudHJ0 ZS0+ZXh0cmFVcGRhdGVkQ29scywgTlVMTCkpOworCUFzc2VydCghaGFzX3BhcnRpdGlvbl9hdHRy cyhwYXJlbnRyZWwsIHBhcmVudF9leHRyYVVwZGF0ZWRDb2xzLCBOVUxMKSk7CiAKIAkvKiBOb3Ro aW5nIGZ1cnRoZXIgdG8gZG8gaGVyZSBpZiB0aGVyZSBhcmUgbm8gcGFydGl0aW9ucy4gKi8KIAlp ZiAocGFydGRlc2MtPm5wYXJ0cyA9PSAwKQpAQCAtNDAyLDkgKzQwOSwyMyBAQCBleHBhbmRfcGFy dGl0aW9uZWRfcnRlbnRyeShQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsaW5mbywK IAogCQkvKiBJZiB0aGlzIGNoaWxkIGlzIGl0c2VsZiBwYXJ0aXRpb25lZCwgcmVjdXJzZSAqLwog CQlpZiAoY2hpbGRyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RB QkxFKQorCQl7CisJCQlBcHBlbmRSZWxJbmZvICphcHBpbmZvID0gcm9vdC0+YXBwZW5kX3JlbF9h cnJheVtjaGlsZFJUaW5kZXhdOworCQkJQml0bWFwc2V0ICpjaGlsZF91cGRhdGVkQ29sczsKKwkJ CUJpdG1hcHNldCAqY2hpbGRfZXh0cmFVcGRhdGVkQ29sczsKKworCQkJY2hpbGRfdXBkYXRlZENv bHMgPSB0cmFuc2xhdGVfY29sX3ByaXZzKHBhcmVudF91cGRhdGVkQ29scywKKwkJCQkJCQkJCQkJ CQlhcHBpbmZvLT50cmFuc2xhdGVkX3ZhcnMpOworCQkJY2hpbGRfZXh0cmFVcGRhdGVkQ29scyA9 IHRyYW5zbGF0ZV9jb2xfcHJpdnMocGFyZW50X2V4dHJhVXBkYXRlZENvbHMsCisJCQkJCQkJCQkJ CQkJCSBhcHBpbmZvLT50cmFuc2xhdGVkX3ZhcnMpOworCiAJCQlleHBhbmRfcGFydGl0aW9uZWRf cnRlbnRyeShyb290LCBjaGlsZHJlbGluZm8sCiAJCQkJCQkJCQkgICBjaGlsZHJ0ZSwgY2hpbGRS VGluZGV4LAotCQkJCQkJCQkJICAgY2hpbGRyZWwsIHRvcF9wYXJlbnRyYywgbG9ja21vZGUpOwor CQkJCQkJCQkJICAgY2hpbGRyZWwsCisJCQkJCQkJCQkgICBjaGlsZF91cGRhdGVkQ29scywKKwkJ CQkJCQkJCSAgIGNoaWxkX2V4dHJhVXBkYXRlZENvbHMsCisJCQkJCQkJCQkgICB0b3BfcGFyZW50 cmMsIGxvY2ttb2RlKTsKKwkJfQogCiAJCS8qIENsb3NlIGNoaWxkIHJlbGF0aW9uLCBidXQga2Vl cCBsb2NrcyAqLwogCQl0YWJsZV9jbG9zZShjaGlsZHJlbCwgTm9Mb2NrKTsKQEAgLTQzOSw3ICs0 NjAsNiBAQCBleHBhbmRfc2luZ2xlX2luaGVyaXRhbmNlX2NoaWxkKFBsYW5uZXJJbmZvICpyb290 LCBSYW5nZVRibEVudHJ5ICpwYXJlbnRydGUsCiAJCQkJCQkJCUluZGV4ICpjaGlsZFJUaW5kZXhf cCkKIHsKIAlRdWVyeQkgICAqcGFyc2UgPSByb290LT5wYXJzZTsKLQlPaWQJCQlwYXJlbnRPSUQg PSBSZWxhdGlvbkdldFJlbGlkKHBhcmVudHJlbCk7CiAJT2lkCQkJY2hpbGRPSUQgPSBSZWxhdGlv bkdldFJlbGlkKGNoaWxkcmVsKTsKIAlSYW5nZVRibEVudHJ5ICpjaGlsZHJ0ZTsKIAlJbmRleAkJ Y2hpbGRSVGluZGV4OwpAQCAtNDUxLDE3ICs0NzEsMTUgQEAgZXhwYW5kX3NpbmdsZV9pbmhlcml0 YW5jZV9jaGlsZChQbGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcGFyZW50cnRlLAog CS8qCiAJICogQnVpbGQgYW4gUlRFIGZvciB0aGUgY2hpbGQsIGFuZCBhdHRhY2ggdG8gcXVlcnkn cyByYW5nZXRhYmxlIGxpc3QuIFdlCiAJICogY29weSBtb3N0IHNjYWxhciBmaWVsZHMgb2YgdGhl IHBhcmVudCdzIFJURSwgYnV0IHJlcGxhY2UgcmVsYXRpb24gT0lELAotCSAqIHJlbGtpbmQsIGFu ZCBpbmggZm9yIHRoZSBjaGlsZC4gIEFsc28sIHNldCByZXF1aXJlZFBlcm1zIHRvIHplcm8gc2lu Y2UKLQkgKiBhbGwgcmVxdWlyZWQgcGVybWlzc2lvbnMgY2hlY2tzIGFyZSBkb25lIG9uIHRoZSBv cmlnaW5hbCBSVEUuIExpa2V3aXNlLAotCSAqIHNldCB0aGUgY2hpbGQncyBzZWN1cml0eVF1YWxz IHRvIGVtcHR5LCBiZWNhdXNlIHdlIG9ubHkgd2FudCB0byBhcHBseQotCSAqIHRoZSBwYXJlbnQn cyBSTFMgY29uZGl0aW9ucyByZWdhcmRsZXNzIG9mIHdoYXQgUkxTIHByb3BlcnRpZXMKLQkgKiBp bmRpdmlkdWFsIGNoaWxkcmVuIG1heSBoYXZlLiAgKFRoaXMgaXMgYW4gaW50ZW50aW9uYWwgY2hv aWNlIHRvIG1ha2UKLQkgKiBpbmhlcml0ZWQgUkxTIHdvcmsgbGlrZSByZWd1bGFyIHBlcm1pc3Np b25zIGNoZWNrcy4pIFRoZSBwYXJlbnQKLQkgKiBzZWN1cml0eVF1YWxzIHdpbGwgYmUgcHJvcGFn YXRlZCB0byBjaGlsZHJlbiBhbG9uZyB3aXRoIG90aGVyIGJhc2UKLQkgKiByZXN0cmljdGlvbiBj bGF1c2VzLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGl0IGhlcmUuICBPdGhlcgotCSAqIGluZnJh c3RydWN0dXJlIG9mIHRoZSBwYXJlbnQgUlRFIGhhcyB0byBiZSB0cmFuc2xhdGVkIHRvIG1hdGNo IHRoZQotCSAqIGNoaWxkIHRhYmxlJ3MgY29sdW1uIG9yZGVyaW5nLCB3aGljaCB3ZSBkbyBiZWxv dywgc28gYSAiZmxhdCIgY29weSBpcwotCSAqIHN1ZmZpY2llbnQgdG8gc3RhcnQgd2l0aC4KKwkg KiByZWxraW5kLCBhbmQgaW5oIGZvciB0aGUgY2hpbGQuICBTZXQgdGhlIGNoaWxkJ3Mgc2VjdXJp dHlRdWFscyB0bworCSAqIGVtcHR5LCBiZWNhdXNlIHdlIG9ubHkgd2FudCB0byBhcHBseSB0aGUg cGFyZW50J3MgUkxTIGNvbmRpdGlvbnMKKwkgKiByZWdhcmRsZXNzIG9mIHdoYXQgUkxTIHByb3Bl cnRpZXMgaW5kaXZpZHVhbCBjaGlsZHJlbiBtYXkgaGF2ZS4KKwkgKiAoVGhpcyBpcyBhbiBpbnRl bnRpb25hbCBjaG9pY2UgdG8gbWFrZSBpbmhlcml0ZWQgUkxTIHdvcmsgbGlrZSByZWd1bGFyCisJ ICogcGVybWlzc2lvbnMgY2hlY2tzLikgVGhlIHBhcmVudCBzZWN1cml0eVF1YWxzIHdpbGwgYmUg cHJvcGFnYXRlZCB0bworCSAqIGNoaWxkcmVuIGFsb25nIHdpdGggb3RoZXIgYmFzZSByZXN0cmlj dGlvbiBjbGF1c2VzLCBzbyB3ZSBkb24ndCBuZWVkCisJICogdG8gZG8gaXQgaGVyZS4gIE90aGVy IGluZnJhc3RydWN0dXJlIG9mIHRoZSBwYXJlbnQgUlRFIGhhcyB0byBiZQorCSAqIHRyYW5zbGF0 ZWQgdG8gbWF0Y2ggdGhlIGNoaWxkIHRhYmxlJ3MgY29sdW1uIG9yZGVyaW5nLCB3aGljaCB3ZSBk bworCSAqIGJlbG93LCBzbyBhICJmbGF0IiBjb3B5IGlzIHN1ZmZpY2llbnQgdG8gc3RhcnQgd2l0 aC4KIAkgKi8KIAljaGlsZHJ0ZSA9IG1ha2VOb2RlKFJhbmdlVGJsRW50cnkpOwogCW1lbWNweShj aGlsZHJ0ZSwgcGFyZW50cnRlLCBzaXplb2YoUmFuZ2VUYmxFbnRyeSkpOwpAQCAtNDcxLDEyICs0 ODksMTEgQEAgZXhwYW5kX3NpbmdsZV9pbmhlcml0YW5jZV9jaGlsZChQbGFubmVySW5mbyAqcm9v dCwgUmFuZ2VUYmxFbnRyeSAqcGFyZW50cnRlLAogCS8qIEEgcGFydGl0aW9uZWQgY2hpbGQgd2ls bCBuZWVkIHRvIGJlIGV4cGFuZGVkIGZ1cnRoZXIuICovCiAJaWYgKGNoaWxkcnRlLT5yZWxraW5k ID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJewotCQlBc3NlcnQoY2hpbGRPSUQgIT0g cGFyZW50T0lEKTsKKwkJQXNzZXJ0KGNoaWxkT0lEICE9IFJlbGF0aW9uR2V0UmVsaWQocGFyZW50 cmVsKSk7CiAJCWNoaWxkcnRlLT5pbmggPSB0cnVlOwogCX0KIAllbHNlCiAJCWNoaWxkcnRlLT5p bmggPSBmYWxzZTsKLQljaGlsZHJ0ZS0+cmVxdWlyZWRQZXJtcyA9IDA7CiAJY2hpbGRydGUtPnNl Y3VyaXR5UXVhbHMgPSBOSUw7CiAKIAkvKiBMaW5rIG5vdC15ZXQtZnVsbHktZmlsbGVkIGNoaWxk IFJURSBpbnRvIGRhdGEgc3RydWN0dXJlcyAqLwpAQCAtNTM5LDM0ICs1NTYsNiBAQCBleHBhbmRf c2luZ2xlX2luaGVyaXRhbmNlX2NoaWxkKFBsYW5uZXJJbmZvICpyb290LCBSYW5nZVRibEVudHJ5 ICpwYXJlbnRydGUsCiAJY2hpbGRydGUtPmFsaWFzID0gY2hpbGRydGUtPmVyZWYgPSBtYWtlQWxp YXMocGFyZW50cnRlLT5lcmVmLT5hbGlhc25hbWUsCiAJCQkJCQkJCQkJCQkgY2hpbGRfY29sbmFt ZXMpOwogCi0JLyoKLQkgKiBUcmFuc2xhdGUgdGhlIGNvbHVtbiBwZXJtaXNzaW9ucyBiaXRtYXBz IHRvIHRoZSBjaGlsZCdzIGF0dG51bXMgKHdlCi0JICogaGF2ZSB0byBidWlsZCB0aGUgdHJhbnNs YXRlZF92YXJzIGxpc3QgYmVmb3JlIHdlIGNhbiBkbyB0aGlzKS4gIEJ1dCBpZgotCSAqIHRoaXMg aXMgdGhlIHBhcmVudCB0YWJsZSwgd2UgY2FuIGp1c3QgZHVwbGljYXRlIHRoZSBwYXJlbnQncyBi aXRtYXBzLgotCSAqCi0JICogTm90ZTogd2UgbmVlZCB0byBkbyB0aGlzIGV2ZW4gdGhvdWdoIHRo ZSBleGVjdXRvciB3b24ndCBydW4gYW55Ci0JICogcGVybWlzc2lvbnMgY2hlY2tzIG9uIHRoZSBj aGlsZCBSVEUuICBUaGUgaW5zZXJ0ZWRDb2xzL3VwZGF0ZWRDb2xzCi0JICogYml0bWFwcyBtYXkg YmUgZXhhbWluZWQgZm9yIHRyaWdnZXItZmlyaW5nIHB1cnBvc2VzLgotCSAqLwotCWlmIChjaGls ZE9JRCAhPSBwYXJlbnRPSUQpCi0JewotCQljaGlsZHJ0ZS0+c2VsZWN0ZWRDb2xzID0gdHJhbnNs YXRlX2NvbF9wcml2cyhwYXJlbnRydGUtPnNlbGVjdGVkQ29scywKLQkJCQkJCQkJCQkJCQkgYXBw aW5mby0+dHJhbnNsYXRlZF92YXJzKTsKLQkJY2hpbGRydGUtPmluc2VydGVkQ29scyA9IHRyYW5z bGF0ZV9jb2xfcHJpdnMocGFyZW50cnRlLT5pbnNlcnRlZENvbHMsCi0JCQkJCQkJCQkJCQkJIGFw cGluZm8tPnRyYW5zbGF0ZWRfdmFycyk7Ci0JCWNoaWxkcnRlLT51cGRhdGVkQ29scyA9IHRyYW5z bGF0ZV9jb2xfcHJpdnMocGFyZW50cnRlLT51cGRhdGVkQ29scywKLQkJCQkJCQkJCQkJCQlhcHBp bmZvLT50cmFuc2xhdGVkX3ZhcnMpOwotCQljaGlsZHJ0ZS0+ZXh0cmFVcGRhdGVkQ29scyA9IHRy YW5zbGF0ZV9jb2xfcHJpdnMocGFyZW50cnRlLT5leHRyYVVwZGF0ZWRDb2xzLAotCQkJCQkJCQkJ CQkJCQkgYXBwaW5mby0+dHJhbnNsYXRlZF92YXJzKTsKLQl9Ci0JZWxzZQotCXsKLQkJY2hpbGRy dGUtPnNlbGVjdGVkQ29scyA9IGJtc19jb3B5KHBhcmVudHJ0ZS0+c2VsZWN0ZWRDb2xzKTsKLQkJ Y2hpbGRydGUtPmluc2VydGVkQ29scyA9IGJtc19jb3B5KHBhcmVudHJ0ZS0+aW5zZXJ0ZWRDb2xz KTsKLQkJY2hpbGRydGUtPnVwZGF0ZWRDb2xzID0gYm1zX2NvcHkocGFyZW50cnRlLT51cGRhdGVk Q29scyk7Ci0JCWNoaWxkcnRlLT5leHRyYVVwZGF0ZWRDb2xzID0gYm1zX2NvcHkocGFyZW50cnRl LT5leHRyYVVwZGF0ZWRDb2xzKTsKLQl9Ci0KIAkvKgogCSAqIFN0b3JlIHRoZSBSVEUgYW5kIGFw cGluZm8gaW4gdGhlIHJlc3BlY3RpdmUgUGxhbm5lckluZm8gYXJyYXlzLCB3aGljaAogCSAqIHRo ZSBjYWxsZXIgbXVzdCBhbHJlYWR5IGhhdmUgYWxsb2NhdGVkIHNwYWNlIGZvci4KQEAgLTg2Niwz ICs4NTUsODIgQEAgYXBwbHlfY2hpbGRfYmFzZXF1YWxzKFBsYW5uZXJJbmZvICpyb290LCBSZWxP cHRJbmZvICpwYXJlbnRyZWwsCiAKIAlyZXR1cm4gdHJ1ZTsKIH0KKworLyoKKyAqIHRyYW5zbGF0 ZV9jb2xfcHJpdnNfcmVjdXJzZQorICogCQlSZWN1cnNpdmVseSB0cmFuc2xhdGVzIHRoZSBjb2x1 bW4gbnVtYmVycyBjb250YWluZWQgaW4KKyAqIAkJJ3RvcF9wYXJlbnRfY29scycgdG8gdGhlIGNv bHVtbnMgbnVtYmVycyBvZiBhIGRlc2NlbmRlbnQgcmVsYXRpb24KKyAqIAkJZ2l2ZW4gYnkgJ3Jl bGlkJworICovCitzdGF0aWMgQml0bWFwc2V0ICoKK3RyYW5zbGF0ZV9jb2xfcHJpdnNfcmVjdXJz ZShQbGFubmVySW5mbyAqcm9vdCwgSW5kZXggcmVsaWQsCisJCQkJCQkJQml0bWFwc2V0ICp0b3Bf cGFyZW50X2NvbHMsCisJCQkJCQkJUmVsaWRzIHRvcF9wYXJlbnRfcmVsaWRzKQoreworCUFwcGVu ZFJlbEluZm8gKmFwcGluZm87CisKKwlBc3NlcnQocm9vdC0+YXBwZW5kX3JlbF9hcnJheSAhPSBO VUxMKTsKKwlhcHBpbmZvID0gcm9vdC0+YXBwZW5kX3JlbF9hcnJheVtyZWxpZF07CisJQXNzZXJ0 KGFwcGluZm8gIT0gTlVMTCk7CisKKwkvKgorCSAqIE11c3QgcmVjdXJzZSBpZiAncmVsaWQnIGRv ZXNuJ3QgYXBwZWFyIHRvIHRoZSBwYXJlbnQncyBkaXJlY3QgY2hpbGQsCisJICogYmVjYXVzZSBh cHBpbmZvLT50cmFuc2xhdGVkX3ZhcnMgbWFwcyBiZXR3ZWVuIGRpcmVjdGx5IHJlbGF0ZWQgcGFy ZW50CisJICogYW5kIGNoaWxkIHJlbGF0aW9uIHBhaXJzLgorCSAqLworCWlmIChibXNfc2luZ2xl dG9uX21lbWJlcih0b3BfcGFyZW50X3JlbGlkcykgIT0gYXBwaW5mby0+cGFyZW50X3JlbGlkKQor CQl0cmFuc2xhdGVfY29sX3ByaXZzX3JlY3Vyc2Uocm9vdCwgYXBwaW5mby0+cGFyZW50X3JlbGlk LAorCQkJCQkJCQkJdG9wX3BhcmVudF9jb2xzLAorCQkJCQkJCQkJdG9wX3BhcmVudF9yZWxpZHMp OworCisJcmV0dXJuIHRyYW5zbGF0ZV9jb2xfcHJpdnModG9wX3BhcmVudF9jb2xzLCBhcHBpbmZv LT50cmFuc2xhdGVkX3ZhcnMpOworfQorCisvKgorICogR2V0UmVsQWxsVXBkYXRlZENvbHMKKyAq IAkJUmV0dXJucyB0aGUgc2V0IG9mIGNvbHVtbnMgb2YgYSBnaXZlbiAic2ltcGxlIiByZWxhdGlv biB0aGF0IGFyZSB1cGRhdGVkCisgKiAJCWJ5IHRoaXMgcXVlcnkKKyAqLworQml0bWFwc2V0ICoK K0dldFJlbEFsbFVwZGF0ZWRDb2xzKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwp Cit7CisJUmFuZ2VUYmxFbnRyeSAqcnRlOworCVJlbFBlcm1pc3Npb25JbmZvICpwZXJtaW5mbzsK KwlCaXRtYXBzZXQgKnVwZGF0ZWRDb2xzLAorCQkJICAqZXh0cmFVcGRhdGVkQ29sczsKKworCWlm ICghSVNfU0lNUExFX1JFTChyZWwpKQorCQlyZXR1cm4gTlVMTDsKKworCS8qCisJICogSWYgaXQn cyBhIHNpbXBsZSAiYmFzZSIgcmVsLCBjYW4ganVzdCBmZXRjaCBpdHMgUmVsUGVybWlzc2lvbklu Zm8gYW5kCisJICogZ2V0IHRoZSBuZWVkZWQgY29sdW1ucyBmcm9tIHRoZXJlLiAgRm9yICJvdGhl ciIgcmVscywgbXVzdCBsb29rIHVwIHRoZQorCSAqIHJvb3QgcGFyZW50IHJlbGF0aW9uIG1lbnRp b25lZCBpbiB0aGUgcXVlcnksIGJlY2F1c2Ugb25seSB0aGF0IG9uZQorCSAqIGdldHMgYXNzaWdu ZWQgYSBSZWxQZXJtaXNzaW9uSW5mbywgYW5kIHRyYW5zbGF0ZSB0aGUgY29sdW1ucyBmb3VuZAor CSAqIHRoZXJlIHRvIG1hdGNoIHRoZSBpbnB1dCByZWxhdGlvbi4KKwkgKi8KKwlpZiAocmVsLT50 b3BfcGFyZW50X3JlbGlkcyAhPSBOVUxMKQorCQlydGUgPSAgcGxhbm5lcl9ydF9mZXRjaChibXNf c2luZ2xldG9uX21lbWJlcihyZWwtPnRvcF9wYXJlbnRfcmVsaWRzKSwKKwkJCQkJCQkJcm9vdCk7 CisJZWxzZQorCQlydGUgPSBwbGFubmVyX3J0X2ZldGNoKHJlbC0+cmVsaWQsIHJvb3QpOworCisJ cGVybWluZm8gPSBHZXRSZWxQZXJtaXNzaW9uSW5mbyhyb290LT5wYXJzZS0+cmVscGVybWxpc3Qs IHJ0ZSwgZmFsc2UpOworCisJaWYgKHJlbC0+dG9wX3BhcmVudF9yZWxpZHMgIT0gTlVMTCkKKwl7 CisJCXVwZGF0ZWRDb2xzID0gdHJhbnNsYXRlX2NvbF9wcml2c19yZWN1cnNlKHJvb3QsIHJlbC0+ cmVsaWQsCisJCQkJCQkJCQkJCQkgIHBlcm1pbmZvLT51cGRhdGVkQ29scywKKwkJCQkJCQkJCQkJ CSAgcmVsLT50b3BfcGFyZW50X3JlbGlkcyk7CisJCWV4dHJhVXBkYXRlZENvbHMgPSB0cmFuc2xh dGVfY29sX3ByaXZzX3JlY3Vyc2Uocm9vdCwgcmVsLT5yZWxpZCwKKwkJCQkJCQkJCQkJCQkgICBw ZXJtaW5mby0+ZXh0cmFVcGRhdGVkQ29scywKKwkJCQkJCQkJCQkJCQkgICByZWwtPnRvcF9wYXJl bnRfcmVsaWRzKTsKKwl9CisJZWxzZQorCXsKKwkJdXBkYXRlZENvbHMgPSBwZXJtaW5mby0+dXBk YXRlZENvbHM7CisJCWV4dHJhVXBkYXRlZENvbHMgPSBwZXJtaW5mby0+ZXh0cmFVcGRhdGVkQ29s czsKKwl9CisKKwlyZXR1cm4gYm1zX3VuaW9uKHVwZGF0ZWRDb2xzLCBleHRyYVVwZGF0ZWRDb2xz KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3JlbG5vZGUuYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3JlbG5vZGUuYwppbmRleCA1MjA0MDlmNGJhLi5j ZDcwMDI2ZjNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2Rl LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcmVsbm9kZS5jCkBAIC0yOCw2ICsy OCw3IEBACiAjaW5jbHVkZSAib3B0aW1pemVyL3BsYW5jYXQuaCIKICNpbmNsdWRlICJvcHRpbWl6 ZXIvcmVzdHJpY3RpbmZvLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3RsaXN0LmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAidXRpbHMvaHNlYXJjaC5oIgog I2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogCkBAIC0yMzYsNyArMjM3LDEzIEBAIGJ1aWxk X3NpbXBsZV9yZWwoUGxhbm5lckluZm8gKnJvb3QsIGludCByZWxpZCwgUmVsT3B0SW5mbyAqcGFy ZW50KQogCXJlbC0+cmVsX3BhcmFsbGVsX3dvcmtlcnMgPSAtMTsgLyogc2V0IHVwIGluIGdldF9y ZWxhdGlvbl9pbmZvICovCiAJcmVsLT5hbWZsYWdzID0gMDsKIAlyZWwtPnNlcnZlcmlkID0gSW52 YWxpZE9pZDsKLQlyZWwtPnVzZXJpZCA9IHJ0ZS0+Y2hlY2tBc1VzZXI7CisJaWYgKHJ0ZS0+cnRl a2luZCA9PSBSVEVfUkVMQVRJT04pCisJeworCQkvKiBvdGhlcnJlbHMgdXNlIHRoZSByb290IHBh cmVudCdzIHZhbHVlLiAqLworCQlyZWwtPnVzZXJpZCA9IHBhcmVudCA/IHBhcmVudC0+dXNlcmlk IDoKKwkJCUdldFJlbFBlcm1pc3Npb25JbmZvKHJvb3QtPnBhcnNlLT5yZWxwZXJtbGlzdCwKKwkJ CQkJCQkJIHJ0ZSwgZmFsc2UpLT5jaGVja0FzVXNlcjsKKwl9CiAJcmVsLT51c2VyaWRpc2N1cnJl bnQgPSBmYWxzZTsKIAlyZWwtPmZkd3JvdXRpbmUgPSBOVUxMOwogCXJlbC0+ZmR3X3ByaXZhdGUg PSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggNjEwMjY3NTNhMy4uYzFmMjkwZTU3OCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jCkBAIC01MTYsNiArNTE2LDcgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQpCiAKIAkvKiBkb25lIGJ1aWxkaW5n IHRoZSByYW5nZSB0YWJsZSBhbmQgam9pbnRyZWUgKi8KIAlxcnktPnJ0YWJsZSA9IHBzdGF0ZS0+ cF9ydGFibGU7CisJcXJ5LT5yZWxwZXJtbGlzdCA9IHBzdGF0ZS0+cF9yZWxwZXJtbGlzdDsKIAlx cnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgcXVhbCk7CiAK IAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOwpAQCAtNTQ4LDcgKzU0 OSw3IEBAIHRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10 ICpzdG10KQogCUxpc3QJICAgKmljb2x1bW5zOwogCUxpc3QJICAgKmF0dHJub3M7CiAJUGFyc2VO YW1lc3BhY2VJdGVtICpuc2l0ZW07Ci0JUmFuZ2VUYmxFbnRyeSAqcnRlOworCVJlbFBlcm1pc3Np b25JbmZvICpwZXJtaW5mbzsKIAlMaXN0Q2VsbCAgICppY29sczsKIAlMaXN0Q2VsbCAgICphdHRu b3M7CiAJTGlzdENlbGwgICAqbGM7CkBAIC02NjcsNiArNjY4LDEzIEBAIHRyYW5zZm9ybUluc2Vy dFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpzdG10KQogCQkgKiB0aGUgdGFy Z2V0IGNvbHVtbidzIHR5cGUsIHdoaWNoIHdlIGhhbmRsZSBiZWxvdy4KIAkJICovCiAJCXN1Yl9w c3RhdGUtPnBfcnRhYmxlID0gc3ViX3J0YWJsZTsKKworCQkvKgorCQkgKiBVc2luZyB0aGUgdmFs dWUgb2YgcHN0YXRlLT5wX3JlbHBlcm1saXN0IGFmdGVyIHNldFRhcmdldFRhYmxlKCkgaGFzCisJ CSAqIGJlZW4gcGVyZm9ybWVkIHN1Y2ggdGhhdCB0aGUgdGFyZ2V0IHJlbGF0aW9uJ3MgUmVsUGVy bWlzc2lvbkluZm8KKwkJICogaXMgYWxyZWFkeSBwcmVzZW50IGluIGl0LgorCQkgKi8KKwkJc3Vi X3BzdGF0ZS0+cF9yZWxwZXJtbGlzdCA9IHBzdGF0ZS0+cF9yZWxwZXJtbGlzdDsKIAkJc3ViX3Bz dGF0ZS0+cF9qb2luZXhwcnMgPSBOSUw7CS8qIHN1Yl9ydGFibGUgaGFzIG5vIGpvaW5zICovCiAJ CXN1Yl9wc3RhdGUtPnBfbmFtZXNwYWNlID0gc3ViX25hbWVzcGFjZTsKIAkJc3ViX3BzdGF0ZS0+ cF9yZXNvbHZlX3Vua25vd25zID0gZmFsc2U7CkBAIC04OTIsNyArOTAwLDcgQEAgdHJhbnNmb3Jt SW5zZXJ0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEluc2VydFN0bXQgKnN0bXQpCiAJICogR2Vu ZXJhdGUgcXVlcnkncyB0YXJnZXQgbGlzdCB1c2luZyB0aGUgY29tcHV0ZWQgbGlzdCBvZiBleHBy ZXNzaW9ucy4KIAkgKiBBbHNvLCBtYXJrIGFsbCB0aGUgdGFyZ2V0IGNvbHVtbnMgYXMgbmVlZGlu ZyBpbnNlcnQgcGVybWlzc2lvbnMuCiAJICovCi0JcnRlID0gcHN0YXRlLT5wX3RhcmdldF9uc2l0 ZW0tPnBfcnRlOworCXBlcm1pbmZvID0gcHN0YXRlLT5wX3RhcmdldF9uc2l0ZW0tPnBfcGVybWlu Zm87CiAJcXJ5LT50YXJnZXRMaXN0ID0gTklMOwogCUFzc2VydChsaXN0X2xlbmd0aChleHByTGlz dCkgPD0gbGlzdF9sZW5ndGgoaWNvbHVtbnMpKTsKIAlmb3J0aHJlZShsYywgZXhwckxpc3QsIGlj b2xzLCBpY29sdW1ucywgYXR0bm9zLCBhdHRybm9zKQpAQCAtOTA4LDggKzkxNiw4IEBAIHRyYW5z Zm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpzdG10KQogCQkJ CQkJCSAgZmFsc2UpOwogCQlxcnktPnRhcmdldExpc3QgPSBsYXBwZW5kKHFyeS0+dGFyZ2V0TGlz dCwgdGxlKTsKIAotCQlydGUtPmluc2VydGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHJ0ZS0+aW5z ZXJ0ZWRDb2xzLAotCQkJCQkJCQkJCSAgIGF0dHJfbnVtIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0 dHJpYnV0ZU51bWJlcik7CisJCXBlcm1pbmZvLT5pbnNlcnRlZENvbHMgPSBibXNfYWRkX21lbWJl cihwZXJtaW5mby0+aW5zZXJ0ZWRDb2xzLAorCQkJCQkJCQkJCQkJYXR0cl9udW0gLSBGaXJzdExv d0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyKTsKIAl9CiAKIAkvKgpAQCAtOTM2LDYgKzk0NCw3 IEBAIHRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpz dG10KQogCiAJLyogZG9uZSBidWlsZGluZyB0aGUgcmFuZ2UgdGFibGUgYW5kIGpvaW50cmVlICov CiAJcXJ5LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOworCXFyeS0+cmVscGVybWxpc3QgPSBw c3RhdGUtPnBfcmVscGVybWxpc3Q7CiAJcXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihwc3Rh dGUtPnBfam9pbmxpc3QsIE5VTEwpOwogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5w X2hhc1RhcmdldFNSRnM7CkBAIC0xMDk0LDggKzExMDMsNiBAQCB0cmFuc2Zvcm1PbkNvbmZsaWN0 Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJICogKFdlJ2xsIGNoZWNrIHRoZSBhY3R1YWwg dGFyZ2V0IHJlbGF0aW9uLCBpbnN0ZWFkLikKIAkJICovCiAJCWV4Y2xSdGUtPnJlbGtpbmQgPSBS RUxLSU5EX0NPTVBPU0lURV9UWVBFOwotCQlleGNsUnRlLT5yZXF1aXJlZFBlcm1zID0gMDsKLQkJ Lyogb3RoZXIgcGVybWlzc2lvbnMgZmllbGRzIGluIGV4Y2xSdGUgYXJlIGFscmVhZHkgZW1wdHkg Ki8KIAogCQkvKiBDcmVhdGUgRVhDTFVERUQgcmVsJ3MgdGFyZ2V0bGlzdCBmb3IgdXNlIGJ5IEVY UExBSU4gKi8KIAkJZXhjbFJlbFRsaXN0ID0gQnVpbGRPbkNvbmZsaWN0RXhjbHVkZWRUYXJnZXRs aXN0KHRhcmdldHJlbCwKQEAgLTEzODksNiArMTM5Niw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCQlyZXNvbHZlVGFyZ2V0TGlz dFVua25vd25zKHBzdGF0ZSwgcXJ5LT50YXJnZXRMaXN0KTsKIAogCXFyeS0+cnRhYmxlID0gcHN0 YXRlLT5wX3J0YWJsZTsKKwlxcnktPnJlbHBlcm1saXN0ID0gcHN0YXRlLT5wX3JlbHBlcm1saXN0 OwogCXFyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBxdWFs KTsKIAogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CkBAIC0xNjIz LDYgKzE2MzEsNyBAQCB0cmFuc2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBT ZWxlY3RTdG10ICpzdG10KQogCQkJCQkJCQkJICBsaW5pdGlhbChzdG10LT5sb2NraW5nQ2xhdXNl KSktPnN0cmVuZ3RoKSkpKTsKIAogCXFyeS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlx cnktPnJlbHBlcm1saXN0ID0gcHN0YXRlLT5wX3JlbHBlcm1saXN0OwogCXFyeS0+am9pbnRyZWUg PSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKIAogCXFyeS0+aGFzU3Vi TGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CkBAIC0xODY5LDYgKzE4NzgsNyBAQCB0cmFu c2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3Rt dCkKIAlxcnktPmxpbWl0T3B0aW9uID0gc3RtdC0+bGltaXRPcHRpb247CiAKIAlxcnktPnJ0YWJs ZSA9IHBzdGF0ZS0+cF9ydGFibGU7CisJcXJ5LT5yZWxwZXJtbGlzdCA9IHBzdGF0ZS0+cF9yZWxw ZXJtbGlzdDsKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlz dCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOwpA QCAtMjM0MCw2ICsyMzUwLDcgQEAgdHJhbnNmb3JtUmV0dXJuU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIFJldHVyblN0bXQgKnN0bXQpCiAJaWYgKHBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zKQog CQlyZXNvbHZlVGFyZ2V0TGlzdFVua25vd25zKHBzdGF0ZSwgcXJ5LT50YXJnZXRMaXN0KTsKIAlx cnktPnJ0YWJsZSA9IHBzdGF0ZS0+cF9ydGFibGU7CisJQXNzZXJ0KHBzdGF0ZS0+cF9yZWxwZXJt bGlzdCA9PSBOSUwpOwogCXFyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pv aW5saXN0LCBOVUxMKTsKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1Ykxpbmtz OwogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CkBAIC0y NDA2LDYgKzI0MTcsNyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg VXBkYXRlU3RtdCAqc3RtdCkKIAlxcnktPnRhcmdldExpc3QgPSB0cmFuc2Zvcm1VcGRhdGVUYXJn ZXRMaXN0KHBzdGF0ZSwgc3RtdC0+dGFyZ2V0TGlzdCk7CiAKIAlxcnktPnJ0YWJsZSA9IHBzdGF0 ZS0+cF9ydGFibGU7CisJcXJ5LT5yZWxwZXJtbGlzdCA9IHBzdGF0ZS0+cF9yZWxwZXJtbGlzdDsK IAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgcXVhbCk7 CiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKQEAgLTI0 MjQsNyArMjQzNiw3IEBAIHN0YXRpYyBMaXN0ICoKIHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3Qo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcmlnVGxpc3QpCiB7CiAJTGlzdAkgICAqdGxpc3Qg PSBOSUw7Ci0JUmFuZ2VUYmxFbnRyeSAqdGFyZ2V0X3J0ZTsKKwlSZWxQZXJtaXNzaW9uSW5mbyAq dGFyZ2V0X3Blcm1pbmZvOwogCUxpc3RDZWxsICAgKm9yaWdfdGw7CiAJTGlzdENlbGwgICAqdGw7 CiAKQEAgLTI0MzYsNyArMjQ0OCw3IEBAIHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QoUGFyc2VT dGF0ZSAqcHN0YXRlLCBMaXN0ICpvcmlnVGxpc3QpCiAJCXBzdGF0ZS0+cF9uZXh0X3Jlc25vID0g UmVsYXRpb25HZXROdW1iZXJPZkF0dHJpYnV0ZXMocHN0YXRlLT5wX3RhcmdldF9yZWxhdGlvbikg KyAxOwogCiAJLyogUHJlcGFyZSBub24tanVuayBjb2x1bW5zIGZvciBhc3NpZ25tZW50IHRvIHRh cmdldCB0YWJsZSAqLwotCXRhcmdldF9ydGUgPSBwc3RhdGUtPnBfdGFyZ2V0X25zaXRlbS0+cF9y dGU7CisJdGFyZ2V0X3Blcm1pbmZvID0gcHN0YXRlLT5wX3RhcmdldF9uc2l0ZW0tPnBfcGVybWlu Zm87CiAJb3JpZ190bCA9IGxpc3RfaGVhZChvcmlnVGxpc3QpOwogCiAJZm9yZWFjaCh0bCwgdGxp c3QpCkBAIC0yNDc3LDggKzI0ODksOCBAQCB0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3JpZ1RsaXN0KQogCQkJCQkJCSAgb3JpZ1RhcmdldC0+bG9j YXRpb24pOwogCiAJCS8qIE1hcmsgdGhlIHRhcmdldCBjb2x1bW4gYXMgcmVxdWlyaW5nIHVwZGF0 ZSBwZXJtaXNzaW9ucyAqLwotCQl0YXJnZXRfcnRlLT51cGRhdGVkQ29scyA9IGJtc19hZGRfbWVt YmVyKHRhcmdldF9ydGUtPnVwZGF0ZWRDb2xzLAotCQkJCQkJCQkJCQkJIGF0dHJubyAtIEZpcnN0 TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCQl0YXJnZXRfcGVybWluZm8tPnVwZGF0 ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIodGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scywKKwkJ CQkJCQkJCQkJCQkgIGF0dHJubyAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIp OwogCiAJCW9yaWdfdGwgPSBsbmV4dChvcmlnVGxpc3QsIG9yaWdfdGwpOwogCX0KQEAgLTI3NjUs NiArMjc3Nyw3IEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBM QXNzaWduU3RtdCAqc3RtdCkKIAkJCQkJCQkJCQkJCSAgICZxcnktPnRhcmdldExpc3QpOwogCiAJ cXJ5LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOworCXFyeS0+cmVscGVybWxpc3QgPSBwc3Rh dGUtPnBfcmVscGVybWxpc3Q7CiAJcXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihwc3RhdGUt PnBfam9pbmxpc3QsIHF1YWwpOwogCiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNT dWJMaW5rczsKQEAgLTMyNDMsOSArMzI1NiwxNyBAQCB0cmFuc2Zvcm1Mb2NraW5nQ2xhdXNlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgUXVlcnkgKnFyeSwgTG9ja2luZ0NsYXVzZSAqbGMsCiAJCQlzd2l0 Y2ggKHJ0ZS0+cnRla2luZCkKIAkJCXsKIAkJCQljYXNlIFJURV9SRUxBVElPTjoKLQkJCQkJYXBw bHlMb2NraW5nQ2xhdXNlKHFyeSwgaSwgbGMtPnN0cmVuZ3RoLCBsYy0+d2FpdFBvbGljeSwKLQkJ CQkJCQkJCSAgIHB1c2hlZERvd24pOwotCQkJCQlydGUtPnJlcXVpcmVkUGVybXMgfD0gQUNMX1NF TEVDVF9GT1JfVVBEQVRFOworCQkJCQl7CisJCQkJCQlSZWxQZXJtaXNzaW9uSW5mbyAqcGVybWlu Zm87CisKKwkJCQkJCWFwcGx5TG9ja2luZ0NsYXVzZShxcnksIGksCisJCQkJCQkJCQkJICAgbGMt PnN0cmVuZ3RoLAorCQkJCQkJCQkJCSAgIGxjLT53YWl0UG9saWN5LAorCQkJCQkJCQkJCSAgIHB1 c2hlZERvd24pOworCQkJCQkJcGVybWluZm8gPSBHZXRSZWxQZXJtaXNzaW9uSW5mbyhxcnktPnJl bHBlcm1saXN0LCBydGUsCisJCQkJCQkJCQkJCQkJCWZhbHNlKTsKKwkJCQkJCXBlcm1pbmZvLT5y ZXF1aXJlZFBlcm1zIHw9IEFDTF9TRUxFQ1RfRk9SX1VQREFURTsKKwkJCQkJfQogCQkJCQlicmVh azsKIAkJCQljYXNlIFJURV9TVUJRVUVSWToKIAkJCQkJYXBwbHlMb2NraW5nQ2xhdXNlKHFyeSwg aSwgbGMtPnN0cmVuZ3RoLCBsYy0+d2FpdFBvbGljeSwKQEAgLTMzMDEsOSArMzMyMiwxOCBAQCB0 cmFuc2Zvcm1Mb2NraW5nQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUXVlcnkgKnFyeSwgTG9j a2luZ0NsYXVzZSAqbGMsCiAJCQkJCXN3aXRjaCAocnRlLT5ydGVraW5kKQogCQkJCQl7CiAJCQkJ CQljYXNlIFJURV9SRUxBVElPTjoKLQkJCQkJCQlhcHBseUxvY2tpbmdDbGF1c2UocXJ5LCBpLCBs Yy0+c3RyZW5ndGgsCi0JCQkJCQkJCQkJCSAgIGxjLT53YWl0UG9saWN5LCBwdXNoZWREb3duKTsK LQkJCQkJCQlydGUtPnJlcXVpcmVkUGVybXMgfD0gQUNMX1NFTEVDVF9GT1JfVVBEQVRFOworCQkJ CQkJCXsKKwkJCQkJCQkJUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvOworCisJCQkJCQkJCWFw cGx5TG9ja2luZ0NsYXVzZShxcnksIGksCisJCQkJCQkJCQkJCQkgICBsYy0+c3RyZW5ndGgsCisJ CQkJCQkJCQkJCQkgICBsYy0+d2FpdFBvbGljeSwKKwkJCQkJCQkJCQkJCSAgIHB1c2hlZERvd24p OworCQkJCQkJCQlwZXJtaW5mbyA9CisJCQkJCQkJCQlHZXRSZWxQZXJtaXNzaW9uSW5mbyhxcnkt PnJlbHBlcm1saXN0LAorCQkJCQkJCQkJCQkJCQkgcnRlLCBmYWxzZSk7CisJCQkJCQkJCXBlcm1p bmZvLT5yZXF1aXJlZFBlcm1zIHw9IEFDTF9TRUxFQ1RfRk9SX1VQREFURTsKKwkJCQkJCQl9CiAJ CQkJCQkJYnJlYWs7CiAJCQkJCQljYXNlIFJURV9TVUJRVUVSWToKIAkJCQkJCQlhcHBseUxvY2tp bmdDbGF1c2UocXJ5LCBpLCBsYy0+c3RyZW5ndGgsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfY2xhdXNlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMK aW5kZXggZDhiMTRiYTdjZC4uN2MxMGYyNjJlMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2NsYXVzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2Uu YwpAQCAtMjIzLDcgKzIyMyw3IEBAIHNldFRhcmdldFRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg UmFuZ2VWYXIgKnJlbGF0aW9uLAogCSAqIGFuYWx5c2lzLCB3ZSB3aWxsIGFkZCB0aGUgQUNMX1NF TEVDVCBiaXQgYmFjayBhZ2Fpbjsgc2VlCiAJICogbWFya1ZhckZvclNlbGVjdFByaXYgYW5kIGl0 cyBjYWxsZXJzLgogCSAqLwotCW5zaXRlbS0+cF9ydGUtPnJlcXVpcmVkUGVybXMgPSByZXF1aXJl ZFBlcm1zOworCW5zaXRlbS0+cF9wZXJtaW5mby0+cmVxdWlyZWRQZXJtcyA9IHJlcXVpcmVkUGVy bXM7CiAKIAkvKgogCSAqIElmIFVQREFURS9ERUxFVEUsIGFkZCB0YWJsZSB0byBqb2lubGlzdCBh bmQgbmFtZXNwYWNlLgpAQCAtMzI0MSwxNiArMzI0MSwxNyBAQCB0cmFuc2Zvcm1PbkNvbmZsaWN0 QXJiaXRlcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCWlmIChpbmZlci0+Y29ubmFtZSkKIAkJewog CQkJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHBzdGF0ZS0+cF90YXJnZXRfcmVsYXRp b24pOwotCQkJUmFuZ2VUYmxFbnRyeSAqcnRlID0gcHN0YXRlLT5wX3RhcmdldF9uc2l0ZW0tPnBf cnRlOworCQkJUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvID0gcHN0YXRlLT5wX3RhcmdldF9u c2l0ZW0tPnBfcGVybWluZm87CiAJCQlCaXRtYXBzZXQgICpjb25hdHRub3M7CiAKIAkJCWNvbmF0 dG5vcyA9IGdldF9yZWxhdGlvbl9jb25zdHJhaW50X2F0dG5vcyhyZWxpZCwgaW5mZXItPmNvbm5h bWUsCiAJCQkJCQkJCQkJCQkJICAgZmFsc2UsIGNvbnN0cmFpbnQpOwogCiAJCQkvKiBNYWtlIHN1 cmUgdGhlIHJlbCBhcyBhIHdob2xlIGlzIG1hcmtlZCBmb3IgU0VMRUNUIGFjY2VzcyAqLwotCQkJ cnRlLT5yZXF1aXJlZFBlcm1zIHw9IEFDTF9TRUxFQ1Q7CisJCQlwZXJtaW5mby0+cmVxdWlyZWRQ ZXJtcyB8PSBBQ0xfU0VMRUNUOwogCQkJLyogTWFyayB0aGUgY29uc3RyYWluZWQgY29sdW1ucyBh cyByZXF1aXJpbmcgU0VMRUNUIGFjY2VzcyAqLwotCQkJcnRlLT5zZWxlY3RlZENvbHMgPSBibXNf YWRkX21lbWJlcnMocnRlLT5zZWxlY3RlZENvbHMsIGNvbmF0dG5vcyk7CisJCQlwZXJtaW5mby0+ c2VsZWN0ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXJzKHBlcm1pbmZvLT5zZWxlY3RlZENvbHMsCisJ CQkJCQkJCQkJCQkJIGNvbmF0dG5vcyk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmMKaW5kZXggY2I5ZTE3N2I1ZS4uZjllYTk0MDBjNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmMKQEAgLTEwMTAsMTAgKzEwMTAsMTMgQEAgbWFya1JURUZvclNlbGVjdFBy aXYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBpbnQgcnRpbmRleCwgQXR0ck51bWJlciBjb2wpCiAKIAlp ZiAocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTikKIAl7CisJCVJlbFBlcm1pc3Npb25JbmZv ICpwZXJtaW5mbyA9CisJCQlHZXRSZWxQZXJtaXNzaW9uSW5mbyhwc3RhdGUtPnBfcmVscGVybWxp c3QsIHJ0ZSwgZmFsc2UpOworCiAJCS8qIE1ha2Ugc3VyZSB0aGUgcmVsIGFzIGEgd2hvbGUgaXMg bWFya2VkIGZvciBTRUxFQ1QgYWNjZXNzICovCi0JCXJ0ZS0+cmVxdWlyZWRQZXJtcyB8PSBBQ0xf U0VMRUNUOworCQlwZXJtaW5mby0+cmVxdWlyZWRQZXJtcyB8PSBBQ0xfU0VMRUNUOwogCQkvKiBN dXN0IG9mZnNldCB0aGUgYXR0bnVtIHRvIGZpdCBpbiBhIGJpdG1hcHNldCAqLwotCQlydGUtPnNl bGVjdGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHJ0ZS0+c2VsZWN0ZWRDb2xzLAorCQlwZXJtaW5m by0+c2VsZWN0ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIocGVybWluZm8tPnNlbGVjdGVkQ29scywK IAkJCQkJCQkJCQkgICBjb2wgLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyKTsK IAl9CiAJZWxzZSBpZiAocnRlLT5ydGVraW5kID09IFJURV9KT0lOKQpAQCAtMTIyNCwxMCArMTIy NywxMyBAQCBjaG9vc2VTY2FsYXJGdW5jdGlvbkFsaWFzKE5vZGUgKmZ1bmNleHByLCBjaGFyICpm dW5jbmFtZSwKICAqCiAgKiBydGU6IHRoZSBuZXcgUmFuZ2VUYmxFbnRyeSBmb3IgdGhlIHJlbAog ICogcnRpbmRleDogaXRzIGluZGV4IGluIHRoZSByYW5nZXRhYmxlIGxpc3QKKyAqIHBlcm1pbmZv OiBwZXJtaXNzaW9uIGxpc3QgZW50cnkgZm9yIHRoZSByZWwKICAqIHR1cGRlc2M6IHRoZSBwaHlz aWNhbCBjb2x1bW4gaW5mb3JtYXRpb24KICAqLwogc3RhdGljIFBhcnNlTmFtZXNwYWNlSXRlbSAq Ci1idWlsZE5TSXRlbUZyb21UdXBsZURlc2MoUmFuZ2VUYmxFbnRyeSAqcnRlLCBJbmRleCBydGlu ZGV4LCBUdXBsZURlc2MgdHVwZGVzYykKK2J1aWxkTlNJdGVtRnJvbVR1cGxlRGVzYyhSYW5nZVRi bEVudHJ5ICpydGUsIEluZGV4IHJ0aW5kZXgsCisJCQkJCQkgUmVsUGVybWlzc2lvbkluZm8gKnBl cm1pbmZvLAorCQkJCQkJIFR1cGxlRGVzYyB0dXBkZXNjKQogewogCVBhcnNlTmFtZXNwYWNlSXRl bSAqbnNpdGVtOwogCVBhcnNlTmFtZXNwYWNlQ29sdW1uICpuc2NvbHVtbnM7CkBAIC0xMjYzLDYg KzEyNjksNyBAQCBidWlsZE5TSXRlbUZyb21UdXBsZURlc2MoUmFuZ2VUYmxFbnRyeSAqcnRlLCBJ bmRleCBydGluZGV4LCBUdXBsZURlc2MgdHVwZGVzYykKIAluc2l0ZW0tPnBfbmFtZXMgPSBydGUt PmVyZWY7CiAJbnNpdGVtLT5wX3J0ZSA9IHJ0ZTsKIAluc2l0ZW0tPnBfcnRpbmRleCA9IHJ0aW5k ZXg7CisJbnNpdGVtLT5wX3Blcm1pbmZvID0gcGVybWluZm87CiAJbnNpdGVtLT5wX25zY29sdW1u cyA9IG5zY29sdW1uczsKIAkvKiBzZXQgZGVmYXVsdCB2aXNpYmlsaXR5IGZsYWdzOyBtaWdodCBn ZXQgY2hhbmdlZCBsYXRlciAqLwogCW5zaXRlbS0+cF9yZWxfdmlzaWJsZSA9IHRydWU7CkBAIC0x NDA2LDYgKzE0MTMsNyBAQCBhZGRSYW5nZVRhYmxlRW50cnkoUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCSAgIGJvb2wgaW5Gcm9tQ2wpCiB7CiAJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbWFrZU5vZGUo UmFuZ2VUYmxFbnRyeSk7CisJUmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvOwogCWNoYXIJICAg KnJlZm5hbWUgPSBhbGlhcyA/IGFsaWFzLT5hbGlhc25hbWUgOiByZWxhdGlvbi0+cmVsbmFtZTsK IAlMT0NLTU9ERQlsb2NrbW9kZTsKIAlSZWxhdGlvbglyZWw7CkBAIC0xNDQyLDcgKzE0NTAsNyBA QCBhZGRSYW5nZVRhYmxlRW50cnkoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCWJ1aWxkUmVsYXRpb25B bGlhc2VzKHJlbC0+cmRfYXR0LCBhbGlhcywgcnRlLT5lcmVmKTsKIAogCS8qCi0JICogU2V0IGZs YWdzIGFuZCBhY2Nlc3MgcGVybWlzc2lvbnMuCisJICogU2V0IGZsYWdzIGFuZCBpbml0aWFsaXpl IGFjZXNzcyBwZXJtaXNzaW9ucy4KIAkgKgogCSAqIFRoZSBpbml0aWFsIGRlZmF1bHQgb24gYWNj ZXNzIGNoZWNrcyBpcyBhbHdheXMgY2hlY2stZm9yLVJFQUQtYWNjZXNzLAogCSAqIHdoaWNoIGlz IHRoZSByaWdodCB0aGluZyBmb3IgYWxsIGV4Y2VwdCB0YXJnZXQgdGFibGVzLgpAQCAtMTQ1MSwx MiArMTQ1OSwxNCBAQCBhZGRSYW5nZVRhYmxlRW50cnkoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCXJ0 ZS0+aW5oID0gaW5oOwogCXJ0ZS0+aW5Gcm9tQ2wgPSBpbkZyb21DbDsKIAotCXJ0ZS0+cmVxdWly ZWRQZXJtcyA9IEFDTF9TRUxFQ1Q7Ci0JcnRlLT5jaGVja0FzVXNlciA9IEludmFsaWRPaWQ7CS8q IG5vdCBzZXQtdWlkIGJ5IGRlZmF1bHQsIGVpdGhlciAqLwotCXJ0ZS0+c2VsZWN0ZWRDb2xzID0g TlVMTDsKLQlydGUtPmluc2VydGVkQ29scyA9IE5VTEw7Ci0JcnRlLT51cGRhdGVkQ29scyA9IE5V TEw7Ci0JcnRlLT5leHRyYVVwZGF0ZWRDb2xzID0gTlVMTDsKKwlwZXJtaW5mbyA9IEFkZFJlbFBl cm1pc3Npb25JbmZvKCZwc3RhdGUtPnBfcmVscGVybWxpc3QsIHJ0ZSk7CisJcGVybWluZm8tPmlu aCA9IGluaDsKKworCS8qCisJICogVXNpbmcgfD0sIG5vdCA9IGp1c3QgaW4gY2FzZSB0aGUgcGVy bWlzc2lvbnMgZW50cnkgaXMgc2hhcmVkIHdpdGgKKwkgKiBhbm90aGVyIFJUIGVudHJ5IGZvciB0 aGUgc2FtZSB0YWJsZS4KKwkgKi8KKwlwZXJtaW5mby0+cmVxdWlyZWRQZXJtcyB8PSBBQ0xfU0VM RUNUOwogCiAJLyoKIAkgKiBBZGQgY29tcGxldGVkIFJURSB0byBwc3RhdGUncyByYW5nZSB0YWJs ZSBsaXN0LCBzbyB0aGF0IHdlIGtub3cgaXRzCkBAIC0xNDcwLDcgKzE0ODAsNyBAQCBhZGRSYW5n ZVRhYmxlRW50cnkoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGxpc3QgLS0tIGNhbGxlciBtdXN0 IGRvIHRoYXQgaWYgYXBwcm9wcmlhdGUuCiAJICovCiAJbnNpdGVtID0gYnVpbGROU0l0ZW1Gcm9t VHVwbGVEZXNjKHJ0ZSwgbGlzdF9sZW5ndGgocHN0YXRlLT5wX3J0YWJsZSksCi0JCQkJCQkJCQkg IHJlbC0+cmRfYXR0KTsKKwkJCQkJCQkJCSAgcGVybWluZm8sIHJlbC0+cmRfYXR0KTsKIAogCS8q CiAJICogRHJvcCB0aGUgcmVsIHJlZmNvdW50LCBidXQga2VlcCB0aGUgYWNjZXNzIGxvY2sgdGls bCBlbmQgb2YgdHJhbnNhY3Rpb24KQEAgLTE1MDcsNiArMTUxNyw3IEBAIGFkZFJhbmdlVGFibGVF bnRyeUZvclJlbGF0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkgIGJvb2wgaW5Gcm9t Q2wpCiB7CiAJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbWFrZU5vZGUoUmFuZ2VUYmxFbnRyeSk7CisJ UmVsUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvOwogCWNoYXIJICAgKnJlZm5hbWUgPSBhbGlhcyA/ IGFsaWFzLT5hbGlhc25hbWUgOiBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpOwogCiAJQXNz ZXJ0KHBzdGF0ZSAhPSBOVUxMKTsKQEAgLTE1MzAsNyArMTU0MSw3IEBAIGFkZFJhbmdlVGFibGVF bnRyeUZvclJlbGF0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlidWlsZFJlbGF0aW9uQWxpYXNl cyhyZWwtPnJkX2F0dCwgYWxpYXMsIHJ0ZS0+ZXJlZik7CiAKIAkvKgotCSAqIFNldCBmbGFncyBh bmQgYWNjZXNzIHBlcm1pc3Npb25zLgorCSAqIFNldCBmbGFncyBhbmQgaW5pdGlhbGl6ZSBhY2Nl c3MgcGVybWlzc2lvbnMuCiAJICoKIAkgKiBUaGUgaW5pdGlhbCBkZWZhdWx0IG9uIGFjY2VzcyBj aGVja3MgaXMgYWx3YXlzIGNoZWNrLWZvci1SRUFELWFjY2VzcywKIAkgKiB3aGljaCBpcyB0aGUg cmlnaHQgdGhpbmcgZm9yIGFsbCBleGNlcHQgdGFyZ2V0IHRhYmxlcy4KQEAgLTE1MzksMTIgKzE1 NTAsMTQgQEAgYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRl LAogCXJ0ZS0+aW5oID0gaW5oOwogCXJ0ZS0+aW5Gcm9tQ2wgPSBpbkZyb21DbDsKIAotCXJ0ZS0+ cmVxdWlyZWRQZXJtcyA9IEFDTF9TRUxFQ1Q7Ci0JcnRlLT5jaGVja0FzVXNlciA9IEludmFsaWRP aWQ7CS8qIG5vdCBzZXQtdWlkIGJ5IGRlZmF1bHQsIGVpdGhlciAqLwotCXJ0ZS0+c2VsZWN0ZWRD b2xzID0gTlVMTDsKLQlydGUtPmluc2VydGVkQ29scyA9IE5VTEw7Ci0JcnRlLT51cGRhdGVkQ29s cyA9IE5VTEw7Ci0JcnRlLT5leHRyYVVwZGF0ZWRDb2xzID0gTlVMTDsKKwlwZXJtaW5mbyA9IEFk ZFJlbFBlcm1pc3Npb25JbmZvKCZwc3RhdGUtPnBfcmVscGVybWxpc3QsIHJ0ZSk7CisJcGVybWlu Zm8tPmluaCA9IGluaDsKKworCS8qCisJICogVXNpbmcgfD0sIG5vdCA9IGp1c3QgaW4gY2FzZSB0 aGUgcGVybWlzc2lvbnMgZW50cnkgaXMgc2hhcmVkIHdpdGgKKwkgKiBhbm90aGVyIFJUIGVudHJ5 IGZvciB0aGUgc2FtZSB0YWJsZS4KKwkgKi8KKwlwZXJtaW5mby0+cmVxdWlyZWRQZXJtcyB8PSBB Q0xfU0VMRUNUOwogCiAJLyoKIAkgKiBBZGQgY29tcGxldGVkIFJURSB0byBwc3RhdGUncyByYW5n ZSB0YWJsZSBsaXN0LCBzbyB0aGF0IHdlIGtub3cgaXRzCkBAIC0xNTU4LDcgKzE1NzEsNyBAQCBh ZGRSYW5nZVRhYmxlRW50cnlGb3JSZWxhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJICogbGlz dCAtLS0gY2FsbGVyIG11c3QgZG8gdGhhdCBpZiBhcHByb3ByaWF0ZS4KIAkgKi8KIAlyZXR1cm4g YnVpbGROU0l0ZW1Gcm9tVHVwbGVEZXNjKHJ0ZSwgbGlzdF9sZW5ndGgocHN0YXRlLT5wX3J0YWJs ZSksCi0JCQkJCQkJCQlyZWwtPnJkX2F0dCk7CisJCQkJCQkJCQlwZXJtaW5mbywgcmVsLT5yZF9h dHQpOwogfQogCiAvKgpAQCAtMTYyOCwyMSArMTY0MSwxNSBAQCBhZGRSYW5nZVRhYmxlRW50cnlG b3JTdWJxdWVyeShQYXJzZVN0YXRlICpwc3RhdGUsCiAJcnRlLT5lcmVmID0gZXJlZjsKIAogCS8q Ci0JICogU2V0IGZsYWdzIGFuZCBhY2Nlc3MgcGVybWlzc2lvbnMuCisJICogU2V0IGZsYWdzLgog CSAqCi0JICogU3VicXVlcmllcyBhcmUgbmV2ZXIgY2hlY2tlZCBmb3IgYWNjZXNzIHJpZ2h0cy4K KwkgKiBTdWJxdWVyaWVzIGFyZSBuZXZlciBjaGVja2VkIGZvciBhY2Nlc3MgcmlnaHRzLCBzbyBu byBuZWVkIHRvIHBlcmZvcm0KKwkgKiBBZGRSZWxQZXJtaXNzaW9uSW5mbygpLgogCSAqLwogCXJ0 ZS0+bGF0ZXJhbCA9IGxhdGVyYWw7CiAJcnRlLT5pbmggPSBmYWxzZTsJCQkvKiBuZXZlciB0cnVl IGZvciBzdWJxdWVyaWVzICovCiAJcnRlLT5pbkZyb21DbCA9IGluRnJvbUNsOwogCi0JcnRlLT5y ZXF1aXJlZFBlcm1zID0gMDsKLQlydGUtPmNoZWNrQXNVc2VyID0gSW52YWxpZE9pZDsKLQlydGUt PnNlbGVjdGVkQ29scyA9IE5VTEw7Ci0JcnRlLT5pbnNlcnRlZENvbHMgPSBOVUxMOwotCXJ0ZS0+ dXBkYXRlZENvbHMgPSBOVUxMOwotCXJ0ZS0+ZXh0cmFVcGRhdGVkQ29scyA9IE5VTEw7Ci0KIAkv KgogCSAqIEFkZCBjb21wbGV0ZWQgUlRFIHRvIHBzdGF0ZSdzIHJhbmdlIHRhYmxlIGxpc3QsIHNv IHRoYXQgd2Uga25vdyBpdHMKIAkgKiBpbmRleC4gIEJ1dCB3ZSBkb24ndCBhZGQgaXQgdG8gdGhl IGpvaW4gbGlzdCAtLS0gY2FsbGVyIG11c3QgZG8gdGhhdCBpZgpAQCAtMTkzNSwyMCArMTk0Miwx MyBAQCBhZGRSYW5nZVRhYmxlRW50cnlGb3JGdW5jdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJ LyoKIAkgKiBTZXQgZmxhZ3MgYW5kIGFjY2VzcyBwZXJtaXNzaW9ucy4KIAkgKgotCSAqIEZ1bmN0 aW9ucyBhcmUgbmV2ZXIgY2hlY2tlZCBmb3IgYWNjZXNzIHJpZ2h0cyAoYXQgbGVhc3QsIG5vdCBi eSB0aGUgUlRFCi0JICogcGVybWlzc2lvbnMgbWVjaGFuaXNtKS4KKwkgKiBGdW5jdGlvbnMgYXJl IG5ldmVyIGNoZWNrZWQgZm9yIGFjY2VzcyByaWdodHMgKGF0IGxlYXN0LCBub3QgYnkKKwkgKiBF eGVjQ2hlY2tQZXJtaXNzaW9ucygpKSwgc28gbm8gbmVlZCB0byBwZXJmb3JtIEFkZFJlbFBlcm1p c3Npb25zSW5mbygpLgogCSAqLwogCXJ0ZS0+bGF0ZXJhbCA9IGxhdGVyYWw7CiAJcnRlLT5pbmgg PSBmYWxzZTsJCQkvKiBuZXZlciB0cnVlIGZvciBmdW5jdGlvbnMgKi8KIAlydGUtPmluRnJvbUNs ID0gaW5Gcm9tQ2w7CiAKLQlydGUtPnJlcXVpcmVkUGVybXMgPSAwOwotCXJ0ZS0+Y2hlY2tBc1Vz ZXIgPSBJbnZhbGlkT2lkOwotCXJ0ZS0+c2VsZWN0ZWRDb2xzID0gTlVMTDsKLQlydGUtPmluc2Vy dGVkQ29scyA9IE5VTEw7Ci0JcnRlLT51cGRhdGVkQ29scyA9IE5VTEw7Ci0JcnRlLT5leHRyYVVw ZGF0ZWRDb2xzID0gTlVMTDsKLQogCS8qCiAJICogQWRkIGNvbXBsZXRlZCBSVEUgdG8gcHN0YXRl J3MgcmFuZ2UgdGFibGUgbGlzdCwgc28gdGhhdCB3ZSBrbm93IGl0cwogCSAqIGluZGV4LiAgQnV0 IHdlIGRvbid0IGFkZCBpdCB0byB0aGUgam9pbiBsaXN0IC0tLSBjYWxsZXIgbXVzdCBkbyB0aGF0 IGlmCkBAIC0xOTYwLDcgKzE5NjAsNyBAQCBhZGRSYW5nZVRhYmxlRW50cnlGb3JGdW5jdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsCiAJICogQnVpbGQgYSBQYXJzZU5hbWVzcGFjZUl0ZW0sIGJ1dCBk b24ndCBhZGQgaXQgdG8gdGhlIHBzdGF0ZSdzIG5hbWVzcGFjZQogCSAqIGxpc3QgLS0tIGNhbGxl ciBtdXN0IGRvIHRoYXQgaWYgYXBwcm9wcmlhdGUuCiAJICovCi0JcmV0dXJuIGJ1aWxkTlNJdGVt RnJvbVR1cGxlRGVzYyhydGUsIGxpc3RfbGVuZ3RoKHBzdGF0ZS0+cF9ydGFibGUpLAorCXJldHVy biBidWlsZE5TSXRlbUZyb21UdXBsZURlc2MocnRlLCBsaXN0X2xlbmd0aChwc3RhdGUtPnBfcnRh YmxlKSwgTlVMTCwKIAkJCQkJCQkJCXR1cGRlc2MpOwogfQogCkBAIC0yMDA2LDIwICsyMDA2LDEz IEBAIGFkZFJhbmdlVGFibGVFbnRyeUZvclRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJ LyoKIAkgKiBTZXQgZmxhZ3MgYW5kIGFjY2VzcyBwZXJtaXNzaW9ucy4KIAkgKgotCSAqIFRhYmxl ZnVuY3MgYXJlIG5ldmVyIGNoZWNrZWQgZm9yIGFjY2VzcyByaWdodHMgKGF0IGxlYXN0LCBub3Qg YnkgdGhlCi0JICogUlRFIHBlcm1pc3Npb25zIG1lY2hhbmlzbSkuCisJICogVGFibGVmdW5jcyBh cmUgbmV2ZXIgY2hlY2tlZCBmb3IgYWNjZXNzIHJpZ2h0cyAoYXQgbGVhc3QsIG5vdCBieQorCSAq IEV4ZWNDaGVja1Blcm1pc3Npb25zKCkpLCBzbyBubyBuZWVkIHRvIHBlcmZvcm0gQWRkUmVsUGVy bWlzc2lvbnNJbmZvKCkuCiAJICovCiAJcnRlLT5sYXRlcmFsID0gbGF0ZXJhbDsKIAlydGUtPmlu aCA9IGZhbHNlOwkJCS8qIG5ldmVyIHRydWUgZm9yIHRhYmxlZnVuYyBSVEVzICovCiAJcnRlLT5p bkZyb21DbCA9IGluRnJvbUNsOwogCi0JcnRlLT5yZXF1aXJlZFBlcm1zID0gMDsKLQlydGUtPmNo ZWNrQXNVc2VyID0gSW52YWxpZE9pZDsKLQlydGUtPnNlbGVjdGVkQ29scyA9IE5VTEw7Ci0JcnRl LT5pbnNlcnRlZENvbHMgPSBOVUxMOwotCXJ0ZS0+dXBkYXRlZENvbHMgPSBOVUxMOwotCXJ0ZS0+ ZXh0cmFVcGRhdGVkQ29scyA9IE5VTEw7Ci0KIAkvKgogCSAqIEFkZCBjb21wbGV0ZWQgUlRFIHRv IHBzdGF0ZSdzIHJhbmdlIHRhYmxlIGxpc3QsIHNvIHRoYXQgd2Uga25vdyBpdHMKIAkgKiBpbmRl eC4gIEJ1dCB3ZSBkb24ndCBhZGQgaXQgdG8gdGhlIGpvaW4gbGlzdCAtLS0gY2FsbGVyIG11c3Qg ZG8gdGhhdCBpZgpAQCAtMjA5NCwxOSArMjA4NywxMyBAQCBhZGRSYW5nZVRhYmxlRW50cnlGb3JW YWx1ZXMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCS8qCiAJICogU2V0IGZsYWdzIGFuZCBhY2Nlc3Mg cGVybWlzc2lvbnMuCiAJICoKLQkgKiBTdWJxdWVyaWVzIGFyZSBuZXZlciBjaGVja2VkIGZvciBh Y2Nlc3MgcmlnaHRzLgorCSAqIFN1YnF1ZXJpZXMgYXJlIG5ldmVyIGNoZWNrZWQgZm9yIGFjY2Vz cyByaWdodHMsIHNvIG5vIG5lZWQgdG8gcGVyZm9ybQorCSAqIEFkZFJlbFBlcm1pc3Npb25JbmZv KCkuCiAJICovCiAJcnRlLT5sYXRlcmFsID0gbGF0ZXJhbDsKIAlydGUtPmluaCA9IGZhbHNlOwkJ CS8qIG5ldmVyIHRydWUgZm9yIHZhbHVlcyBSVEVzICovCiAJcnRlLT5pbkZyb21DbCA9IGluRnJv bUNsOwogCi0JcnRlLT5yZXF1aXJlZFBlcm1zID0gMDsKLQlydGUtPmNoZWNrQXNVc2VyID0gSW52 YWxpZE9pZDsKLQlydGUtPnNlbGVjdGVkQ29scyA9IE5VTEw7Ci0JcnRlLT5pbnNlcnRlZENvbHMg PSBOVUxMOwotCXJ0ZS0+dXBkYXRlZENvbHMgPSBOVUxMOwotCXJ0ZS0+ZXh0cmFVcGRhdGVkQ29s cyA9IE5VTEw7Ci0KIAkvKgogCSAqIEFkZCBjb21wbGV0ZWQgUlRFIHRvIHBzdGF0ZSdzIHJhbmdl IHRhYmxlIGxpc3QsIHNvIHRoYXQgd2Uga25vdyBpdHMKIAkgKiBpbmRleC4gIEJ1dCB3ZSBkb24n dCBhZGQgaXQgdG8gdGhlIGpvaW4gbGlzdCAtLS0gY2FsbGVyIG11c3QgZG8gdGhhdCBpZgpAQCAt MjE4NSwxOSArMjE3MiwxMyBAQCBhZGRSYW5nZVRhYmxlRW50cnlGb3JKb2luKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkvKgogCSAqIFNldCBmbGFncyBhbmQgYWNjZXNzIHBlcm1pc3Npb25zLgogCSAq Ci0JICogSm9pbnMgYXJlIG5ldmVyIGNoZWNrZWQgZm9yIGFjY2VzcyByaWdodHMuCisJICogSm9p bnMgYXJlIG5ldmVyIGNoZWNrZWQgZm9yIGFjY2VzcyByaWdodHMsIHNvIG5vIG5lZWQgdG8gcGVy Zm9ybQorCSAqIEFkZFJlbFBlcm1pc3Npb25JbmZvKCkuCiAJICovCiAJcnRlLT5sYXRlcmFsID0g ZmFsc2U7CiAJcnRlLT5pbmggPSBmYWxzZTsJCQkvKiBuZXZlciB0cnVlIGZvciBqb2lucyAqLwog CXJ0ZS0+aW5Gcm9tQ2wgPSBpbkZyb21DbDsKIAotCXJ0ZS0+cmVxdWlyZWRQZXJtcyA9IDA7Ci0J cnRlLT5jaGVja0FzVXNlciA9IEludmFsaWRPaWQ7Ci0JcnRlLT5zZWxlY3RlZENvbHMgPSBOVUxM OwotCXJ0ZS0+aW5zZXJ0ZWRDb2xzID0gTlVMTDsKLQlydGUtPnVwZGF0ZWRDb2xzID0gTlVMTDsK LQlydGUtPmV4dHJhVXBkYXRlZENvbHMgPSBOVUxMOwotCiAJLyoKIAkgKiBBZGQgY29tcGxldGVk IFJURSB0byBwc3RhdGUncyByYW5nZSB0YWJsZSBsaXN0LCBzbyB0aGF0IHdlIGtub3cgaXRzCiAJ ICogaW5kZXguICBCdXQgd2UgZG9uJ3QgYWRkIGl0IHRvIHRoZSBqb2luIGxpc3QgLS0tIGNhbGxl ciBtdXN0IGRvIHRoYXQgaWYKQEAgLTIyMTIsNiArMjE5Myw3IEBAIGFkZFJhbmdlVGFibGVFbnRy eUZvckpvaW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCW5zaXRlbSA9IChQYXJzZU5hbWVzcGFjZUl0 ZW0gKikgcGFsbG9jKHNpemVvZihQYXJzZU5hbWVzcGFjZUl0ZW0pKTsKIAluc2l0ZW0tPnBfbmFt ZXMgPSBydGUtPmVyZWY7CiAJbnNpdGVtLT5wX3J0ZSA9IHJ0ZTsKKwluc2l0ZW0tPnBfcGVybWlu Zm8gPSBOVUxMOwogCW5zaXRlbS0+cF9ydGluZGV4ID0gbGlzdF9sZW5ndGgocHN0YXRlLT5wX3J0 YWJsZSk7CiAJbnNpdGVtLT5wX25zY29sdW1ucyA9IG5zY29sdW1uczsKIAkvKiBzZXQgZGVmYXVs dCB2aXNpYmlsaXR5IGZsYWdzOyBtaWdodCBnZXQgY2hhbmdlZCBsYXRlciAqLwpAQCAtMjMzNSwx OSArMjMxNywxMyBAQCBhZGRSYW5nZVRhYmxlRW50cnlGb3JDVEUoUGFyc2VTdGF0ZSAqcHN0YXRl LAogCS8qCiAJICogU2V0IGZsYWdzIGFuZCBhY2Nlc3MgcGVybWlzc2lvbnMuCiAJICoKLQkgKiBT dWJxdWVyaWVzIGFyZSBuZXZlciBjaGVja2VkIGZvciBhY2Nlc3MgcmlnaHRzLgorCSAqIFN1YnF1 ZXJpZXMgYXJlIG5ldmVyIGNoZWNrZWQgZm9yIGFjY2VzcyByaWdodHMsIHNvIG5vIG5lZWQgdG8g cGVyZm9ybQorCSAqIEFkZFJlbFBlcm1pc3Npb25JbmZvKCkuCiAJICovCiAJcnRlLT5sYXRlcmFs ID0gZmFsc2U7CiAJcnRlLT5pbmggPSBmYWxzZTsJCQkvKiBuZXZlciB0cnVlIGZvciBzdWJxdWVy aWVzICovCiAJcnRlLT5pbkZyb21DbCA9IGluRnJvbUNsOwogCi0JcnRlLT5yZXF1aXJlZFBlcm1z ID0gMDsKLQlydGUtPmNoZWNrQXNVc2VyID0gSW52YWxpZE9pZDsKLQlydGUtPnNlbGVjdGVkQ29s cyA9IE5VTEw7Ci0JcnRlLT5pbnNlcnRlZENvbHMgPSBOVUxMOwotCXJ0ZS0+dXBkYXRlZENvbHMg PSBOVUxMOwotCXJ0ZS0+ZXh0cmFVcGRhdGVkQ29scyA9IE5VTEw7Ci0KIAkvKgogCSAqIEFkZCBj b21wbGV0ZWQgUlRFIHRvIHBzdGF0ZSdzIHJhbmdlIHRhYmxlIGxpc3QsIHNvIHRoYXQgd2Uga25v dyBpdHMKIAkgKiBpbmRleC4gIEJ1dCB3ZSBkb24ndCBhZGQgaXQgdG8gdGhlIGpvaW4gbGlzdCAt LS0gY2FsbGVyIG11c3QgZG8gdGhhdCBpZgpAQCAtMjQ2MSwxNiArMjQzNywxMyBAQCBhZGRSYW5n ZVRhYmxlRW50cnlGb3JFTlIoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCS8qCiAJICogU2V0IGZsYWdz IGFuZCBhY2Nlc3MgcGVybWlzc2lvbnMuCiAJICoKLQkgKiBFTlJzIGFyZSBuZXZlciBjaGVja2Vk IGZvciBhY2Nlc3MgcmlnaHRzLgorCSAqIEVOUnMgYXJlIG5ldmVyIGNoZWNrZWQgZm9yIGFjY2Vz cyByaWdodHMsIHNvIG5vIG5lZWQgdG8gcGVyZm9ybQorCSAqIEFkZFJlbFBlcm1pc3Npb25JbmZv KCkuCiAJICovCiAJcnRlLT5sYXRlcmFsID0gZmFsc2U7CiAJcnRlLT5pbmggPSBmYWxzZTsJCQkv KiBuZXZlciB0cnVlIGZvciBFTlJzICovCiAJcnRlLT5pbkZyb21DbCA9IGluRnJvbUNsOwogCi0J cnRlLT5yZXF1aXJlZFBlcm1zID0gMDsKLQlydGUtPmNoZWNrQXNVc2VyID0gSW52YWxpZE9pZDsK LQlydGUtPnNlbGVjdGVkQ29scyA9IE5VTEw7Ci0KIAkvKgogCSAqIEFkZCBjb21wbGV0ZWQgUlRF IHRvIHBzdGF0ZSdzIHJhbmdlIHRhYmxlIGxpc3QsIHNvIHRoYXQgd2Uga25vdyBpdHMKIAkgKiBp bmRleC4gIEJ1dCB3ZSBkb24ndCBhZGQgaXQgdG8gdGhlIGpvaW4gbGlzdCAtLS0gY2FsbGVyIG11 c3QgZG8gdGhhdCBpZgpAQCAtMjQ4Miw3ICsyNDU1LDcgQEAgYWRkUmFuZ2VUYWJsZUVudHJ5Rm9y RU5SKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkgKiBCdWlsZCBhIFBhcnNlTmFtZXNwYWNlSXRlbSwg YnV0IGRvbid0IGFkZCBpdCB0byB0aGUgcHN0YXRlJ3MgbmFtZXNwYWNlCiAJICogbGlzdCAtLS0g Y2FsbGVyIG11c3QgZG8gdGhhdCBpZiBhcHByb3ByaWF0ZS4KIAkgKi8KLQlyZXR1cm4gYnVpbGRO U0l0ZW1Gcm9tVHVwbGVEZXNjKHJ0ZSwgbGlzdF9sZW5ndGgocHN0YXRlLT5wX3J0YWJsZSksCisJ cmV0dXJuIGJ1aWxkTlNJdGVtRnJvbVR1cGxlRGVzYyhydGUsIGxpc3RfbGVuZ3RoKHBzdGF0ZS0+ cF9ydGFibGUpLCBOVUxMLAogCQkJCQkJCQkJdHVwZGVzYyk7CiB9CiAKQEAgLTMxMDIsNiArMzA3 NSw3IEBAIGV4cGFuZE5TSXRlbUF0dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3Bh Y2VJdGVtICpuc2l0ZW0sCiAJCQkJICBpbnQgc3VibGV2ZWxzX3VwLCBpbnQgbG9jYXRpb24pCiB7 CiAJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbnNpdGVtLT5wX3J0ZTsKKwlSZWxQZXJtaXNzaW9uSW5m byAqcGVybWluZm8gPSBuc2l0ZW0tPnBfcGVybWluZm87CiAJTGlzdAkgICAqbmFtZXMsCiAJCQkg ICAqdmFyczsKIAlMaXN0Q2VsbCAgICpuYW1lLApAQCAtMzExOSw3ICszMDkzLDEwIEBAIGV4cGFu ZE5TSXRlbUF0dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0 ZW0sCiAJICogcmVsYXRpb24gb2YgVVBEQVRFL0RFTEVURSwgd2hpY2ggY2Fubm90IGJlIHVuZGVy IGEgam9pbi4pCiAJICovCiAJaWYgKHJ0ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04pCi0JCXJ0 ZS0+cmVxdWlyZWRQZXJtcyB8PSBBQ0xfU0VMRUNUOworCXsKKwkJQXNzZXJ0KHBlcm1pbmZvICE9 IE5VTEwpOworCQlwZXJtaW5mby0+cmVxdWlyZWRQZXJtcyB8PSBBQ0xfU0VMRUNUOworCX0KIAog CWZvcmJvdGgobmFtZSwgbmFtZXMsIHZhciwgdmFycykKIAl7CkBAIC0zNjY1LDMgKzM2NDIsMTU5 IEBAIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29u dGV4dCkKIAkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyLAogCQkJCQkJ CQkgIGNvbnRleHQpOwogfQorCisvKgorICogQWRkUmVsUGVybWlzc2lvbkluZm8KKyAqCQlDcmVh dGVzIFJlbFBlcm1pc3Npb25JbmZvIGZvciBhIGdpdmVuIHJlbGF0aW9uIGFuZCBhZGRzIGl0IGlu dG8gdGhlCisgKgkJcHJvdmlkZWQgbGlzdCB1bmxlc3MgdGhlcmUgYWxyZWFkeQorICoKKyAqIFJl dHVybnMgdGhlIFJlbFBlcm1zc2lvbkluZm8gYW5kIHNldHMgcnRlLT5wZXJtaW5mb2luZGV4IGlm IG5lZWRlZC4KKyAqLworUmVsUGVybWlzc2lvbkluZm8gKgorQWRkUmVsUGVybWlzc2lvbkluZm8o TGlzdCAqKnJlbHBlcm1saXN0LCBSYW5nZVRibEVudHJ5ICpydGUpCit7CisJUmVsUGVybWlzc2lv bkluZm8gKnBlcm1pbmZvOworCisJQXNzZXJ0KHJ0ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04p OworCisJLyoKKwkgKiBUbyBwcmV2ZW50IGR1cGxpY2F0ZSBlbnRyaWVzIGZvciBhIGdpdmVuIHJl bGF0aW9uLCBjaGVjayBpZiBhbHJlYWR5IGluCisJICogdGhlIGxpc3QuCisJICovCisJcGVybWlu Zm8gPSBHZXRSZWxQZXJtaXNzaW9uSW5mbygqcmVscGVybWxpc3QsIHJ0ZSwgdHJ1ZSk7CisJaWYg KHBlcm1pbmZvKQorCXsKKwkJQXNzZXJ0KHJ0ZS0+cGVybWluZm9pbmRleCA+PSAwKTsKKwkJcmV0 dXJuIHBlcm1pbmZvOworCX0KKworCS8qIE5vcGUsIHNvIG1ha2Ugb25lLiAqLworCXBlcm1pbmZv ID0gbWFrZU5vZGUoUmVsUGVybWlzc2lvbkluZm8pOworCXBlcm1pbmZvLT5yZWxpZCA9IHJ0ZS0+ cmVsaWQ7CisJLyogT3RoZXIgaW5mb3JtYXRpb24gaXMgc2V0IGJ5IGZldGNoaW5nIHRoZSBub2Rl IGFzIGFuZCB3aGVyZSBuZWVkZWQuICovCisKKwkqcmVscGVybWxpc3QgPSBsYXBwZW5kKCpyZWxw ZXJtbGlzdCwgcGVybWluZm8pOworCisJLyogUmVtZW1iZXIgdGhlIGluZGV4IGluIHRoZSBSVEUu ICovCisJQXNzZXJ0KHJ0ZS0+cGVybWluZm9pbmRleCA9PSAwKTsKKwlydGUtPnBlcm1pbmZvaW5k ZXggPSBsaXN0X2xlbmd0aCgqcmVscGVybWxpc3QpOworCisJcmV0dXJuIHBlcm1pbmZvOworfQor CisvKgorICogR2V0UmVsUGVybWlzc2lvbkluZm8KKyAqCQlUcmllcyB0byBmaW5kIGEgUmVsUGVy bWlzc2lvbkluZm8gZm9yIGdpdmVuIHJlbGF0aW9uIGluIHRoZSBwcm92aWRlZAorICoJCWxpc3Qs IGVycm9yaW5nIG91dCBvciByZXR1cm5pbmcgTlVMTCAoZGVwZW5kaW5nIG9uIG1pc3Npbmdfb2sp IGlmIG5vdAorICoJCWZvdW5kCisgKi8KK1JlbFBlcm1pc3Npb25JbmZvICoKK0dldFJlbFBlcm1p c3Npb25JbmZvKExpc3QgKnJlbHBlcm1saXN0LCBSYW5nZVRibEVudHJ5ICpydGUsIGJvb2wgbWlz c2luZ19vaykKK3sKKwlSZWxQZXJtaXNzaW9uSW5mbyAqcGVybWluZm87CisJTGlzdENlbGwgICAq bGM7CisJaW50CQkJaTsKKworCUFzc2VydChydGUtPnJ0ZWtpbmQgPT0gUlRFX1JFTEFUSU9OKTsK KworCS8qIEVhc3kgd2hlbiB0aGUgUlRFIGFscmVhZHkga25vd3MuICovCisJaWYgKHJ0ZS0+cGVy bWluZm9pbmRleCA+IDApCisJeworCQlpZiAocnRlLT5wZXJtaW5mb2luZGV4ID4gbGlzdF9sZW5n dGgocmVscGVybWxpc3QpKQorCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGVybWluZm9pbmRleCBp biBSVEUgd2l0aCByZWxpZCAldSIsCisJCQkJIHJ0ZS0+cmVsaWQpOworCisJCXBlcm1pbmZvID0g KFJlbFBlcm1pc3Npb25JbmZvICopIGxpc3RfbnRoKHJlbHBlcm1saXN0LAorCQkJCQkJCQkJCQkJ ICBydGUtPnBlcm1pbmZvaW5kZXggLSAxKTsKKwkJQXNzZXJ0KHBlcm1pbmZvICE9IE5VTEwgJiYg T2lkSXNWYWxpZChwZXJtaW5mby0+cmVsaWQpKTsKKworCQlpZiAocnRlLT5yZWxpZCAhPSBwZXJt aW5mby0+cmVsaWQpCisJCQllbG9nKEVSUk9SLCAicGVybWlzc2lvbiBpbmZvIGF0IGluZGV4ICV1 ICh3aXRoIE9JRCAldSkgZG9lcyBub3QgbWF0Y2ggcmVxdWVzdGVkIE9JRCAldSIsCisJCQkJIHJ0 ZS0+cGVybWluZm9pbmRleCwgcGVybWluZm8tPnJlbGlkLCBydGUtPnJlbGlkKTsKKworCQlyZXR1 cm4gcGVybWluZm87CisJfQorCisJLyogTG9va3MgbGlrZSB0aGUgUlRFIGRvZXNuJ3QsIHNvIHRy eSB0byBmaW5kIGl0IHRoZSBoYXJkIHdheS4gKi8KKwlpID0gMDsKKwlmb3JlYWNoKGxjLCByZWxw ZXJtbGlzdCkKKwl7CisJCXBlcm1pbmZvID0gKFJlbFBlcm1pc3Npb25JbmZvICopIGxmaXJzdChs Yyk7CisJCWlmIChwZXJtaW5mby0+cmVsaWQgPT0gcnRlLT5yZWxpZCkKKwkJeworCQkJLyogQW5k IHNldCB0aGUgaW5kZXggaW4gUlRFLiAqLworCQkJcnRlLT5wZXJtaW5mb2luZGV4ID0gaSArIDE7 CisJCQlyZXR1cm4gcGVybWluZm87CisJCX0KKwkJaSsrOworCX0KKworCWlmICghbWlzc2luZ19v aykKKwkJZWxvZyhFUlJPUiwgInBlcm1pc3Npb24gaW5mbyBvZiByZWxhdGlvbiAldSBub3QgZm91 bmQiLCBydGUtPnJlbGlkKTsKKworCXJldHVybiBOVUxMOworfQorCisvKgorICogTWVyZ2VSZWxQ ZXJtaXNzaW9uSW5mb3MKKyAqCQlBZGRzIHRoZSBSZWxQZXJtaXNzaW9uSW5mb3MgZm91bmQgaW4g YSBzb3VyY2Ugc3VicXVlcnkgZ2l2ZW4gaW4KKyAqCQlzcmNfcmVscGVybWxpc3QgaW50byBkZXN0 X3F1ZXJ5LCAibWVyZ2luZyIgdGhlIGNvbnRlbnRzIG9mIGFueSB0aGF0CisgKgkJYXJlIHByZXNl bnQgaW4gYm90aC4KKyAqCisgKiBUaGlzIGFzc3VtZXMgdGhhdCB0aGUgY2FsbGVyIGhhcyBhbHJl YWR5IHB1bGxlZCB1cCB0aGUgc291cmNlIHN1YnF1ZXJ5J3MKKyAqIFJURXMgaW50byBkZXN0X3F1 ZXJ5J3MgcnRhYmxlLCBiZWNhdXNlIHRoZWlyIHBlcm1pbmZvaW5kZXggd291bGQgbmVlZCB0bwor ICogYmUgdXBkYXRlZCB0byByZWZsZWN0IHRoZWlyIG5vdyBiZWxvbmdpbmcgaW4gdGhlIG5ldyBt ZXJlZ2VkIGxpc3QuCisgKi8KK3ZvaWQKK01lcmdlUmVsUGVybWlzc2lvbkluZm9zKFF1ZXJ5ICpk ZXN0X3F1ZXJ5LCBMaXN0ICpzcmNfcmVscGVybWxpc3QpCit7CisJTGlzdENlbGwgKmw7CisKKwlp ZiAoc3JjX3JlbHBlcm1saXN0ID09IE5JTCkKKwkJcmV0dXJuOworCisJZm9yZWFjaChsLCBzcmNf cmVscGVybWxpc3QpCisJeworCQlSZWxQZXJtaXNzaW9uSW5mbyAqc3JjX3Blcm1pbmZvID0gKFJl bFBlcm1pc3Npb25JbmZvICopIGxmaXJzdChsKTsKKwkJTGlzdENlbGwgKmwxOworCisJCWZvcmVh Y2gobDEsIGRlc3RfcXVlcnktPnJ0YWJsZSkKKwkJeworCQkJUmFuZ2VUYmxFbnRyeSAqZGVzdF9y dGUgPSAoUmFuZ2VUYmxFbnRyeSAqKSBsZmlyc3QobDEpOworCQkJUmVsUGVybWlzc2lvbkluZm8g KmRlc3RfcGVybWluZm87CisKKwkJCS8qCisJCQkgKiBPbmx5IFJFTEFUSU9OcyBoYXZlIGEgUmVs UGVybWlzc2lvbkluZm8uICBBbHNvIGlnbm9yZSBhbnkgdGhhdAorCQkJICogZG9uJ3QgbWF0Y2gg dGhlIFJlbFBlcm1pc3Npb25JbmZvIHdlJ3JlIHRyeWluZyB0byBtZXJnZS4KKwkJCSAqLworCQkJ aWYgKGRlc3RfcnRlLT5ydGVraW5kICE9IFJURV9SRUxBVElPTiB8fAorCQkJCWRlc3RfcnRlLT5y ZWxpZCAhPSBzcmNfcGVybWluZm8tPnJlbGlkKQorCQkJCWNvbnRpbnVlOworCisJCQkvKgorCQkJ ICogVGhlIGN1cnJlbnQgdmFsdWUgb2YgcGVybWluZm9pbmRleCBwb2ludHMgdG8gYSBwZXJtaW5m byBpbiB0aGUKKwkJCSAqIHNvdXJjZSBxdWVyeSdzIHJlbHBlcm1saXN0LCB3aGljaCB3ZSdyZSB0 cnlpbmcgdG8gbWVyZ2Ugd2l0aAorCQkJICogdGhlIGRlc3RpbmF0aW9uIHF1ZXJ5J3MgcmVscGVy bWxpc3QuICBTbywgcmVzZXQgdGhlIGluZGV4IHRvCisJCQkgKiBzaWduYWwgdG8gR2V0UmVsUGVy bWlzc2lvbkluZm8oKSwgdGhhdCBnZXRzIGNhbGxlZCB2aWEKKwkJCSAqIEFkZFJlbFBlcm1pc3Np b25JbmZvKCksIHRvIGFzc2lnbiBpdCB0aGUgaW5kZXggb2YgYW4gZW50cnkgd2l0aAorCQkJICog dGhlIHNhbWUgcmVsaWQgaW4gZGVzdF9xdWVyeS0+cmVscGVybWxpc3QuCisJCQkgKi8KKwkJCWRl c3RfcnRlLT5wZXJtaW5mb2luZGV4ID0gMDsKKwkJCWRlc3RfcGVybWluZm8gPSBBZGRSZWxQZXJt aXNzaW9uSW5mbygmZGVzdF9xdWVyeS0+cmVscGVybWxpc3QsCisJCQkJCQkJCQkJCQkgZGVzdF9y dGUpOworCQkJLyogIm1lcmdlIiBwcm9wcnRpZXMuICovCisJCQlkZXN0X3Blcm1pbmZvLT5pbmgg PSBzcmNfcGVybWluZm8tPmluaDsKKwkJCWRlc3RfcGVybWluZm8tPnJlcXVpcmVkUGVybXMgfD0g c3JjX3Blcm1pbmZvLT5yZXF1aXJlZFBlcm1zOworCQkJaWYgKCFPaWRJc1ZhbGlkKGRlc3RfcGVy bWluZm8tPmNoZWNrQXNVc2VyKSkKKwkJCQlkZXN0X3Blcm1pbmZvLT5jaGVja0FzVXNlciA9IHNy Y19wZXJtaW5mby0+Y2hlY2tBc1VzZXI7CisJCQlkZXN0X3Blcm1pbmZvLT5zZWxlY3RlZENvbHMg PSBibXNfdW5pb24oZGVzdF9wZXJtaW5mby0+c2VsZWN0ZWRDb2xzLAorCQkJCQkJCQkJCQkJCXNy Y19wZXJtaW5mby0+c2VsZWN0ZWRDb2xzKTsKKwkJCWRlc3RfcGVybWluZm8tPmluc2VydGVkQ29s cyA9IGJtc191bmlvbihkZXN0X3Blcm1pbmZvLT5pbnNlcnRlZENvbHMsCisJCQkJCQkJCQkJCQkJ c3JjX3Blcm1pbmZvLT5pbnNlcnRlZENvbHMpOworCQkJZGVzdF9wZXJtaW5mby0+dXBkYXRlZENv bHMgPSBibXNfdW5pb24oZGVzdF9wZXJtaW5mby0+dXBkYXRlZENvbHMsCisJCQkJCQkJCQkJCQkg ICBzcmNfcGVybWluZm8tPnVwZGF0ZWRDb2xzKTsKKwkJCWRlc3RfcGVybWluZm8tPmV4dHJhVXBk YXRlZENvbHMgPSBibXNfdW5pb24oZGVzdF9wZXJtaW5mby0+ZXh0cmFVcGRhdGVkQ29scywKKwkJ CQkJCQkJCQkJCQkJc3JjX3Blcm1pbmZvLT5leHRyYVVwZGF0ZWRDb2xzKTsKKwkJfQorCX0KK30K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCAwNTllZWI5ZTk0Li42YWIzNWU4YTE2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCkBAIC0xMTQxLDcgKzExNDEsNyBAQCBFeHBhbmRD b2x1bW5SZWZTdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmLAogCQkgKgog CQkgKiBOb3RlOiB0aGlzIGNvZGUgaXMgYSBsb3QgbGlrZSB0cmFuc2Zvcm1Db2x1bW5SZWY7IGl0 J3MgdGVtcHRpbmcgdG8KIAkJICogY2FsbCB0aGF0IGluc3RlYWQgYW5kIHRoZW4gcmVwbGFjZSB0 aGUgcmVzdWx0aW5nIHdob2xlLXJvdyBWYXIgd2l0aAotCQkgKiBhIGxpc3Qgb2YgVmFycy4gIEhv d2V2ZXIsIHRoYXQgd291bGQgbGVhdmUgdXMgd2l0aCB0aGUgUlRFJ3MKKwkJICogYSBsaXN0IG9m IFZhcnMuICBIb3dldmVyLCB0aGF0IHdvdWxkIGxlYXZlIHVzIHdpdGggdGhlIHJlbGF0aW9uJ3MK IAkJICogc2VsZWN0ZWRDb2xzIGJpdG1hcCBzaG93aW5nIHRoZSB3aG9sZSByb3cgYXMgbmVlZGlu ZyBzZWxlY3QKIAkJICogcGVybWlzc2lvbiwgYXMgd2VsbCBhcyB0aGUgaW5kaXZpZHVhbCBjb2x1 bW5zLiAgVGhhdCB3b3VsZCBiZQogCQkgKiBpbmNvcnJlY3QgKHNpbmNlIGNvbHVtbnMgYWRkZWQg bGF0ZXIgc2hvdWxkbid0IG5lZWQgc2VsZWN0CkBAIC0xMzc1LDYgKzEzNzUsNyBAQCBFeHBhbmRT aW5nbGVUYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVt LAogCWVsc2UKIAl7CiAJCVJhbmdlVGJsRW50cnkgKnJ0ZSA9IG5zaXRlbS0+cF9ydGU7CisJCVJl bFBlcm1pc3Npb25JbmZvICpwZXJtaW5mbyA9IG5zaXRlbS0+cF9wZXJtaW5mbzsKIAkJTGlzdAkg ICAqdmFyczsKIAkJTGlzdENlbGwgICAqbDsKIApAQCAtMTM4OSw3ICsxMzkwLDEwIEBAIEV4cGFu ZFNpbmdsZVRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0 ZW0sCiAJCSAqIHRhcmdldCByZWxhdGlvbiBvZiBVUERBVEUvREVMRVRFLCB3aGljaCBjYW5ub3Qg YmUgdW5kZXIgYSBqb2luLikKIAkJICovCiAJCWlmIChydGUtPnJ0ZWtpbmQgPT0gUlRFX1JFTEFU SU9OKQotCQkJcnRlLT5yZXF1aXJlZFBlcm1zIHw9IEFDTF9TRUxFQ1Q7CisJCXsKKwkJCUFzc2Vy dChwZXJtaW5mbyAhPSBOVUxMKTsKKwkJCXBlcm1pbmZvLT5yZXF1aXJlZFBlcm1zIHw9IEFDTF9T RUxFQ1Q7CisJCX0KIAogCQkvKiBSZXF1aXJlIHJlYWQgYWNjZXNzIHRvIGVhY2ggY29sdW1uICov CiAJCWZvcmVhY2gobCwgdmFycykKQEAgLTE0MjEsMTIgKzE0MjUsMTEgQEAgRXhwYW5kUm93UmVm ZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwKIAogCS8qCiAJICogSWYgdGhl IHJvd3R5cGUgZXhwcmVzc2lvbiBpcyBhIHdob2xlLXJvdyBWYXIsIHdlIGNhbiBleHBhbmQgdGhl IGZpZWxkcwotCSAqIGFzIHNpbXBsZSBWYXJzLiAgTm90ZTogaWYgdGhlIFJURSBpcyBhIHJlbGF0 aW9uLCB0aGlzIGNhc2UgbGVhdmVzIHVzCi0JICogd2l0aCB0aGUgUlRFJ3Mgc2VsZWN0ZWRDb2xz IGJpdG1hcCBzaG93aW5nIHRoZSB3aG9sZSByb3cgYXMgbmVlZGluZwotCSAqIHNlbGVjdCBwZXJt aXNzaW9uLCBhcyB3ZWxsIGFzIHRoZSBpbmRpdmlkdWFsIGNvbHVtbnMuICBIb3dldmVyLCB3ZSBj YW4KLQkgKiBvbmx5IGdldCBoZXJlIGZvciB3ZWlyZCBub3RhdGlvbnMgbGlrZSAodGFibGUuKiku Kiwgc28gaXQncyBub3Qgd29ydGgKLQkgKiB0cnlpbmcgdG8gY2xlYW4gdXAgLS0tIGFyZ3VhYmx5 LCB0aGUgcGVybWlzc2lvbnMgbWFya2luZyBpcyBjb3JyZWN0Ci0JICogYW55d2F5IGZvciBzdWNo IGNhc2VzLgorCSAqIGFzIHNpbXBsZSBWYXJzLiAgTm90ZTogdGhpcyBjYXNlIGxlYXZlcyB1cyB3 aXRoIHRoZSByZWxhdGlvbidzCisJICogc2VsZWN0ZWRDb2xzIGJpdG1hcCBzaG93aW5nIHRoZSB3 aG9sZSByb3cgYXMgbmVlZGluZyBzZWxlY3QgcGVybWlzc2lvbiwKKwkgKiBhcyB3ZWxsIGFzIHRo ZSBpbmRpdmlkdWFsIGNvbHVtbnMuICBIb3dldmVyLCB3ZSBjYW4gb25seSBnZXQgaGVyZSBmb3IK KwkgKiB3ZWlyZCBub3RhdGlvbnMgbGlrZSAodGFibGUuKikuKiwgc28gaXQncyBub3Qgd29ydGgg dHJ5aW5nIHRvIGNsZWFuIHVwCisJICogLS0tIGFyZ3VhYmx5LCB0aGUgcGVybWlzc2lvbnMgbWFy a2luZyBpcyBjb3JyZWN0IGFueXdheSBmb3Igc3VjaCBjYXNlcy4KIAkgKi8KIAlpZiAoSXNBKGV4 cHIsIFZhcikgJiYKIAkJKChWYXIgKikgZXhwciktPnZhcmF0dG5vID09IEludmFsaWRBdHRyTnVt YmVyKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXggY2Q5NDZjNzY5Mi4uZTYxMTc4 MjNkZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMjIxLDcgKzEyMjEsOCBA QCBleHBhbmRUYWJsZUxpa2VDbGF1c2UoUmFuZ2VWYXIgKmhlYXBSZWwsIFRhYmxlTGlrZUNsYXVz ZSAqdGFibGVfbGlrZV9jbGF1c2UpCiAJICogaGF2ZSBhIGZhaWx1cmUgc2luY2UgYm90aCB0YWJs ZXMgYXJlIGxvY2tlZC4KIAkgKi8KIAlhdHRtYXAgPSBidWlsZF9hdHRybWFwX2J5X25hbWUoUmVs YXRpb25HZXREZXNjcihjaGlsZHJlbCksCi0JCQkJCQkJCSAgIHR1cGxlRGVzYyk7CisJCQkJCQkJ CSAgIHR1cGxlRGVzYywKKwkJCQkJCQkJICAgZmFsc2UpOwogCiAJLyoKIAkgKiBQcm9jZXNzIGRl ZmF1bHRzLCBpZiByZXF1aXJlZC4KQEAgLTMwMTMsOSArMzAxNCw2IEBAIHRyYW5zZm9ybVJ1bGVT dG10KFJ1bGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCQkJCQkJ ICBBY2Nlc3NTaGFyZUxvY2ssCiAJCQkJCQkJCQkJCSAgbWFrZUFsaWFzKCJuZXciLCBOSUwpLAog CQkJCQkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7Ci0JLyogTXVzdCBvdmVycmlkZSBhZGRSYW5nZVRh YmxlRW50cnkncyBkZWZhdWx0IGFjY2Vzcy1jaGVjayBmbGFncyAqLwotCW9sZG5zaXRlbS0+cF9y dGUtPnJlcXVpcmVkUGVybXMgPSAwOwotCW5ld25zaXRlbS0+cF9ydGUtPnJlcXVpcmVkUGVybXMg PSAwOwogCiAJLyoKIAkgKiBUaGV5IG11c3QgYmUgaW4gdGhlIG5hbWVzcGFjZSB0b28gZm9yIGxv b2t1cCBwdXJwb3NlcywgYnV0IG9ubHkgYWRkIHRoZQpAQCAtMzA3MSw2ICszMDY5LDcgQEAgdHJh bnNmb3JtUnVsZVN0bXQoUnVsZVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAog CiAJCW5vdGhpbmdfcXJ5LT5jb21tYW5kVHlwZSA9IENNRF9OT1RISU5HOwogCQlub3RoaW5nX3Fy eS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwkJbm90aGluZ19xcnktPnJlbHBlcm1saXN0 ID0gcHN0YXRlLT5wX3JlbHBlcm1saXN0OwogCQlub3RoaW5nX3FyeS0+am9pbnRyZWUgPSBtYWtl RnJvbUV4cHIoTklMLCBOVUxMKTsJLyogbm8gam9pbiB3YW50ZWQgKi8KIAogCQkqYWN0aW9ucyA9 IGxpc3RfbWFrZTEobm90aGluZ19xcnkpOwpAQCAtMzExMyw4ICszMTEyLDYgQEAgdHJhbnNmb3Jt UnVsZVN0bXQoUnVsZVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJ CQkJCQkJCSAgQWNjZXNzU2hhcmVMb2NrLAogCQkJCQkJCQkJCQkJCSAgbWFrZUFsaWFzKCJuZXci LCBOSUwpLAogCQkJCQkJCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKLQkJCW9sZG5zaXRlbS0+cF9y dGUtPnJlcXVpcmVkUGVybXMgPSAwOwotCQkJbmV3bnNpdGVtLT5wX3J0ZS0+cmVxdWlyZWRQZXJt cyA9IDA7CiAJCQlhZGROU0l0ZW1Ub1F1ZXJ5KHN1Yl9wc3RhdGUsIG9sZG5zaXRlbSwgZmFsc2Us IHRydWUsIGZhbHNlKTsKIAkJCWFkZE5TSXRlbVRvUXVlcnkoc3ViX3BzdGF0ZSwgbmV3bnNpdGVt LCBmYWxzZSwgdHJ1ZSwgZmFsc2UpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93 b3JrZXIuYwppbmRleCA4MmRjZmZjMmRiLi4zZTFjODlhN2Q5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTE1Niw2ICsxNTYsNyBAQAogI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm9wdGlt aXplci9vcHRpbWl6ZXIuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNp bmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2Jnd29ya2VyLmgiCiAjaW5j bHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKQEAgLTQ5MSw2ICs0OTIsOCBAQCBjcmVhdGVf ZWRhdGFfZm9yX3JlbGF0aW9uKExvZ2ljYWxSZXBSZWxNYXBFbnRyeSAqcmVsKQogCXJ0ZS0+cmVs bG9ja21vZGUgPSBBY2Nlc3NTaGFyZUxvY2s7CiAJRXhlY0luaXRSYW5nZVRhYmxlKGVzdGF0ZSwg bGlzdF9tYWtlMShydGUpKTsKIAorCUFkZFJlbFBlcm1pc3Npb25JbmZvKCZlc3RhdGUtPmVzX3Jl bHBlcm1saXN0LCBydGUpOworCiAJZWRhdGEtPnRhcmdldFJlbEluZm8gPSByZXN1bHRSZWxJbmZv ID0gbWFrZU5vZGUoUmVzdWx0UmVsSW5mbyk7CiAKIAkvKgpAQCAtMTc3OCw3ICsxNzgxLDcgQEAg YXBwbHlfaGFuZGxlX3VwZGF0ZShTdHJpbmdJbmZvIHMpCiAJTG9naWNhbFJlcFR1cGxlRGF0YSBu ZXd0dXA7CiAJYm9vbAkJaGFzX29sZHR1cDsKIAlUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdDsK LQlSYW5nZVRibEVudHJ5ICp0YXJnZXRfcnRlOworCVJlbFBlcm1pc3Npb25JbmZvICp0YXJnZXRf cGVybWluZm87CiAJTWVtb3J5Q29udGV4dCBvbGRjdHg7CiAKIAkvKgpAQCAtMTgyNiw3ICsxODI5 LDcgQEAgYXBwbHlfaGFuZGxlX3VwZGF0ZShTdHJpbmdJbmZvIHMpCiAJICogaW5mb3JtYXRpb24u ICBCdXQgaXQgd291bGQgZm9yIGV4YW1wbGUgZXhjbHVkZSBjb2x1bW5zIHRoYXQgb25seSBleGlz dAogCSAqIG9uIHRoZSBzdWJzY3JpYmVyLCBzaW5jZSB3ZSBhcmUgbm90IHRvdWNoaW5nIHRob3Nl LgogCSAqLwotCXRhcmdldF9ydGUgPSBsaXN0X250aChlc3RhdGUtPmVzX3JhbmdlX3RhYmxlLCAw KTsKKwl0YXJnZXRfcGVybWluZm8gPSBsaXN0X250aChlc3RhdGUtPmVzX3JlbHBlcm1saXN0LCAw KTsKIAlmb3IgKGludCBpID0gMDsgaSA8IHJlbW90ZXNsb3QtPnR0c190dXBsZURlc2NyaXB0b3It Pm5hdHRzOyBpKyspCiAJewogCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRy KHJlbW90ZXNsb3QtPnR0c190dXBsZURlc2NyaXB0b3IsIGkpOwpAQCAtMTgzNiwxNCArMTgzOSwx NCBAQCBhcHBseV9oYW5kbGVfdXBkYXRlKFN0cmluZ0luZm8gcykKIAkJewogCQkJQXNzZXJ0KHJl bW90ZWF0dG51bSA8IG5ld3R1cC5uY29scyk7CiAJCQlpZiAobmV3dHVwLmNvbHN0YXR1c1tyZW1v dGVhdHRudW1dICE9IExPR0lDQUxSRVBfQ09MVU1OX1VOQ0hBTkdFRCkKLQkJCQl0YXJnZXRfcnRl LT51cGRhdGVkQ29scyA9Ci0JCQkJCWJtc19hZGRfbWVtYmVyKHRhcmdldF9ydGUtPnVwZGF0ZWRD b2xzLAorCQkJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMgPQorCQkJCQlibXNfYWRkX21l bWJlcih0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLAogCQkJCQkJCQkgICBpICsgMSAtIEZp cnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOwogCQl9CiAJfQogCiAJLyogQWxzbyBw b3B1bGF0ZSBleHRyYVVwZGF0ZWRDb2xzLCBpbiBjYXNlIHdlIGhhdmUgZ2VuZXJhdGVkIGNvbHVt bnMgKi8KLQlmaWxsX2V4dHJhVXBkYXRlZENvbHModGFyZ2V0X3J0ZSwgcmVsLT5sb2NhbHJlbCk7 CisJZmlsbF9leHRyYVVwZGF0ZWRDb2xzKHRhcmdldF9wZXJtaW5mbywgcmVsLT5sb2NhbHJlbCk7 CiAKIAkvKiBCdWlsZCB0aGUgc2VhcmNoIHR1cGxlLiAqLwogCW9sZGN0eCA9IE1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhHZXRQZXJUdXBsZU1lbW9yeUNvbnRleHQoZXN0YXRlKSk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCA1ZmRkYWIzYTNkLi5mZjA3 YjI2ZDI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMK QEAgLTg5OSw3ICs4OTksNyBAQCBpbml0X3R1cGxlX3Nsb3QoUEdPdXRwdXREYXRhICpkYXRhLCBS ZWxhdGlvbiByZWxhdGlvbiwKIAkJLyogTWFwIG11c3QgbGl2ZSBhcyBsb25nIGFzIHRoZSBzZXNz aW9uIGRvZXMuICovCiAJCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9y eUNvbnRleHQpOwogCi0JCWVudHJ5LT5hdHRybWFwID0gYnVpbGRfYXR0cm1hcF9ieV9uYW1lX2lm X3JlcShpbmRlc2MsIG91dGRlc2MpOworCQllbnRyeS0+YXR0cm1hcCA9IGJ1aWxkX2F0dHJtYXBf YnlfbmFtZV9pZl9yZXEoaW5kZXNjLCBvdXRkZXNjLCBmYWxzZSk7CiAKIAkJTWVtb3J5Q29udGV4 dFN3aXRjaFRvKG9sZGN0eCk7CiAJCVJlbGF0aW9uQ2xvc2UoYW5jZXN0b3IpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMgYi9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVEZWZpbmUuYwppbmRleCAxODViZjVmYmZmLi4xYTllNWM4NTI0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUuYworKysgYi9zcmMvYmFja2Vu ZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNv bW1hbmRzL3BvbGljeS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVz L25vZGVGdW5jcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV91dGlsY21kLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlRGVm aW5lLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlTWFuaXAuaCIKQEAgLTgyMSwxOCArODIy LDIwIEBAIHNldFJ1bGVDaGVja0FzVXNlcl9RdWVyeShRdWVyeSAqcXJ5LCBPaWQgdXNlcmlkKQog ewogCUxpc3RDZWxsICAgKmw7CiAKLQkvKiBTZXQgYWxsIHRoZSBSVEVzIGluIHRoaXMgcXVlcnkg bm9kZSAqLworCWZvcmVhY2gobCwgcXJ5LT5yZWxwZXJtbGlzdCkKKwl7CisJCVJlbFBlcm1pc3Np b25JbmZvICpwZXJtaW5mbyA9IChSZWxQZXJtaXNzaW9uSW5mbyAqKSBsZmlyc3QobCk7CisKKwkJ cGVybWluZm8tPmNoZWNrQXNVc2VyID0gdXNlcmlkOworCX0KKworCS8qIE5vdyByZWN1cnNlIHRv IGFueSBzdWJxdWVyeSBSVEVzICovCiAJZm9yZWFjaChsLCBxcnktPnJ0YWJsZSkKIAl7CiAJCVJh bmdlVGJsRW50cnkgKnJ0ZSA9IChSYW5nZVRibEVudHJ5ICopIGxmaXJzdChsKTsKIAogCQlpZiAo cnRlLT5ydGVraW5kID09IFJURV9TVUJRVUVSWSkKLQkJewotCQkJLyogUmVjdXJzZSBpbnRvIHN1 YnF1ZXJ5IGluIEZST00gKi8KIAkJCXNldFJ1bGVDaGVja0FzVXNlcl9RdWVyeShydGUtPnN1YnF1 ZXJ5LCB1c2VyaWQpOwotCQl9Ci0JCWVsc2UKLQkJCXJ0ZS0+Y2hlY2tBc1VzZXIgPSB1c2VyaWQ7 CiAJfQogCiAJLyogUmVjdXJzZSBpbnRvIHN1YnF1ZXJ5LWluLVdJVEggKi8KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL3Jld3Jp dGUvcmV3cml0ZUhhbmRsZXIuYwppbmRleCA0ZWVlZDU4MGIxLi5mODFjNjNhYTIzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tl bmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBAIC0zOTQsMjUgKzM5NCw5IEBAIHJld3JpdGVS dWxlQWN0aW9uKFF1ZXJ5ICpwYXJzZXRyZWUsCiAJICogR2VuZXJhdGUgZXhwYW5kZWQgcnRhYmxl IGNvbnNpc3Rpbmcgb2YgbWFpbiBwYXJzZXRyZWUncyBydGFibGUgcGx1cwogCSAqIHJ1bGUgYWN0 aW9uJ3MgcnRhYmxlOyB0aGlzIGJlY29tZXMgdGhlIGNvbXBsZXRlIHJ0YWJsZSBmb3IgdGhlIHJ1 bGUKIAkgKiBhY3Rpb24uICBTb21lIG9mIHRoZSBlbnRyaWVzIG1heSBiZSB1bnVzZWQgYWZ0ZXIg d2UgZmluaXNoIHJld3JpdGluZywKLQkgKiBidXQgd2UgbGVhdmUgdGhlbSBhbGwgaW4gcGxhY2Ug Zm9yIHR3byByZWFzb25zOgotCSAqCi0JICogV2UnZCBoYXZlIGEgbXVjaCBoYXJkZXIgam9iIHRv IGFkanVzdCB0aGUgcXVlcnkncyB2YXJub3MgaWYgd2UKLQkgKiBzZWxlY3RpdmVseSByZW1vdmVk IFJUIGVudHJpZXMuCi0JICoKLQkgKiBJZiB0aGUgcnVsZSBpcyBJTlNURUFELCB0aGVuIHRoZSBv cmlnaW5hbCBxdWVyeSB3b24ndCBiZSBleGVjdXRlZCBhdAotCSAqIGFsbCwgYW5kIHNvIGl0cyBy dGFibGUgbXVzdCBiZSBwcmVzZXJ2ZWQgc28gdGhhdCB0aGUgZXhlY3V0b3Igd2lsbCBkbwotCSAq IHRoZSBjb3JyZWN0IHBlcm1pc3Npb25zIGNoZWNrcyBvbiBpdC4KLQkgKgotCSAqIFJUIGVudHJp ZXMgdGhhdCBhcmUgbm90IHJlZmVyZW5jZWQgaW4gdGhlIGNvbXBsZXRlZCBqb2ludHJlZSB3aWxs IGJlCi0JICogaWdub3JlZCBieSB0aGUgcGxhbm5lciwgc28gdGhleSBkbyBub3QgYWZmZWN0IHF1 ZXJ5IHNlbWFudGljcy4gIEJ1dCBhbnkKLQkgKiBwZXJtaXNzaW9ucyBjaGVja3Mgc3BlY2lmaWVk IGluIHRoZW0gd2lsbCBiZSBhcHBsaWVkIGR1cmluZyBleGVjdXRvcgotCSAqIHN0YXJ0dXAgKHNl ZSBFeGVjQ2hlY2tSVEVQZXJtcygpKS4gIFRoaXMgYWxsb3dzIHVzIHRvIGNoZWNrIHRoYXQgdGhl Ci0JICogY2FsbGVyIGhhcywgc2F5LCBpbnNlcnQtcGVybWlzc2lvbiBvbiBhIHZpZXcsIHdoZW4g dGhlIHZpZXcgaXMgbm90Ci0JICogc2VtYW50aWNhbGx5IHJlZmVyZW5jZWQgYXQgYWxsIGluIHRo ZSByZXN1bHRpbmcgcXVlcnkuCi0JICoKLQkgKiBXaGVuIGEgcnVsZSBpcyBub3QgSU5TVEVBRCwg dGhlIHBlcm1pc3Npb25zIGNoZWNrcyBkb25lIG9uIGl0cyBjb3BpZWQKLQkgKiBSVCBlbnRyaWVz IHdpbGwgYmUgcmVkdW5kYW50IHdpdGggdGhvc2UgZG9uZSBkdXJpbmcgZXhlY3V0aW9uIG9mIHRo ZQotCSAqIG9yaWdpbmFsIHF1ZXJ5LCBidXQgd2UgZG9uJ3QgYm90aGVyIHRvIHRyZWF0IHRoYXQg Y2FzZSBkaWZmZXJlbnRseS4KKwkgKiBidXQgd2UgbGVhdmUgdGhlbSBhbGwgaW4gcGxhY2UgdG8g YXZvaWQgaGF2aW5nIHRvIGFkanVzdCB0aGUgcXVlcnkncworCSAqIHZhcm5vcy4gIFJUIGVudHJp ZXMgdGhhdCBhcmUgbm90IHJlZmVyZW5jZWQgaW4gdGhlIGNvbXBsZXRlZCBqb2ludHJlZQorCSAq IHdpbGwgYmUgaWdub3JlZCBieSB0aGUgcGxhbm5lciwgc28gdGhleSBkbyBub3QgYWZmZWN0IHF1 ZXJ5IHNlbWFudGljcy4KIAkgKgogCSAqIE5PVEU6IGJlY2F1c2UgcGxhbm5lciB3aWxsIGRlc3Ry dWN0aXZlbHkgYWx0ZXIgcnRhYmxlLCB3ZSBtdXN0IGVuc3VyZQogCSAqIHRoYXQgcnVsZSBhY3Rp b24ncyBydGFibGUgaXMgc2VwYXJhdGUgYW5kIHNoYXJlcyBubyBzdWJzdHJ1Y3R1cmUgd2l0aApA QCAtNDIxLDYgKzQwNSwyMyBAQCByZXdyaXRlUnVsZUFjdGlvbihRdWVyeSAqcGFyc2V0cmVlLAog CXN1Yl9hY3Rpb24tPnJ0YWJsZSA9IGxpc3RfY29uY2F0KGNvcHlPYmplY3QocGFyc2V0cmVlLT5y dGFibGUpLAogCQkJCQkJCQkJIHN1Yl9hY3Rpb24tPnJ0YWJsZSk7CiAKKwkvKgorCSAqIE1lcmdl IHBlcm1pc3Npb24gaW5mbyBsaXN0cyB0byBlbnN1cmUgdGhhdCBhbGwgcGVybWlzc2lvbnMgYXJl IGNoZWNrZWQKKwkgKiBjb3JyZWN0bHkuCisJICoKKwkgKiBJZiB0aGUgcnVsZSBpcyBJTlNURUFE LCB0aGVuIHRoZSBvcmlnaW5hbCBxdWVyeSB3b24ndCBiZSBleGVjdXRlZCBhdAorCSAqIGFsbCwg YW5kIHNvIGl0cyBwZXJtaXNzaW9ucyBsaXN0IG11c3QgYmUgcHJlc2VydmVkIHNvIHRoYXQgdGhl CisJICogZXhlY3V0b3Igd2lsbCBkbyB0aGUgY29ycmVjdCBwZXJtaXNzaW9ucyBjaGVja3Mgb24g dGhlIHJlbGF0aW9ucworCSAqIHJlZmVyZW5jZWQgaW4gaXQuICBUaGlzIGFsbG93cyB1cyB0byBj aGVjayB0aGF0IHRoZSBjYWxsZXIgaGFzLCBzYXksCisJICogaW5zZXJ0LXBlcm1pc3Npb24gb24g YSB2aWV3LCB3aGVuIHRoZSB2aWV3IGlzIG5vdCBzZW1hbnRpY2FsbHkKKwkgKiByZWZlcmVuY2Vk IGF0IGFsbCBpbiB0aGUgcmVzdWx0aW5nIHF1ZXJ5LgorCSAqCisJICogV2hlbiBhIHJ1bGUgaXMg bm90IElOU1RFQUQsIHRoZSBwZXJtaXNzaW9ucyBjaGVja3MgZG9uZSB1c2luZyB0aGUKKwkgKiBj b3BpZWQgZW50cmllcyB3aWxsIGJlIHJlZHVuZGFudCB3aXRoIHRob3NlIGRvbmUgZHVyaW5nIGV4 ZWN1dGlvbiBvZgorCSAqIHRoZSBvcmlnaW5hbCBxdWVyeSwgYnV0IHdlIGRvbid0IGJvdGhlciB0 byB0cmVhdCB0aGF0IGNhc2UgZGlmZmVyZW50bHkuCisJICovCisJTWVyZ2VSZWxQZXJtaXNzaW9u SW5mb3Moc3ViX2FjdGlvbiwgcGFyc2V0cmVlLT5yZWxwZXJtbGlzdCk7CisKIAkvKgogCSAqIFRo ZXJlIGNvdWxkIGhhdmUgYmVlbiBzb21lIFN1YkxpbmtzIGluIHBhcnNldHJlZSdzIHJ0YWJsZSwg aW4gd2hpY2gKIAkgKiBjYXNlIHdlJ2QgYmV0dGVyIG1hcmsgdGhlIHN1Yl9hY3Rpb24gY29ycmVj dGx5LgpAQCAtMTU4OSwxNiArMTU5MCwxOCBAQCByZXdyaXRlVmFsdWVzUlRFKFF1ZXJ5ICpwYXJz ZXRyZWUsIFJhbmdlVGJsRW50cnkgKnJ0ZSwgaW50IHJ0aSwKIAogCiAvKgotICogUmVjb3JkIGlu IHRhcmdldF9ydGUtPmV4dHJhVXBkYXRlZENvbHMgdGhlIGluZGV4ZXMgb2YgYW55IGdlbmVyYXRl ZCBjb2x1bW5zCi0gKiB0aGF0IGRlcGVuZCBvbiBhbnkgY29sdW1ucyBtZW50aW9uZWQgaW4gdGFy Z2V0X3J0ZS0+dXBkYXRlZENvbHMuCisgKiBSZWNvcmQgaW4gdGFyZ2V0X3Blcm1pbmZvLT5leHRy YVVwZGF0ZWRDb2xzIHRoZSBpbmRleGVzIG9mIGFueSBnZW5lcmF0ZWQKKyAqIGNvbHVtbnMgdGhh dCBkZXBlbmQgb24gYW55IGNvbHVtbnMgbWVudGlvbmVkIGluCisgKiB0YXJnZXRfcGVybWluZm8t PnVwZGF0ZWRDb2xzLgogICovCiB2b2lkCi1maWxsX2V4dHJhVXBkYXRlZENvbHMoUmFuZ2VUYmxF bnRyeSAqdGFyZ2V0X3J0ZSwgUmVsYXRpb24gdGFyZ2V0X3JlbGF0aW9uKQorZmlsbF9leHRyYVVw ZGF0ZWRDb2xzKFJlbFBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVybWluZm8sCisJCQkJCSAgUmVs YXRpb24gdGFyZ2V0X3JlbGF0aW9uKQogewogCVR1cGxlRGVzYwl0dXBkZXNjID0gUmVsYXRpb25H ZXREZXNjcih0YXJnZXRfcmVsYXRpb24pOwogCVR1cGxlQ29uc3RyICpjb25zdHIgPSB0dXBkZXNj LT5jb25zdHI7CiAKLQl0YXJnZXRfcnRlLT5leHRyYVVwZGF0ZWRDb2xzID0gTlVMTDsKKwl0YXJn ZXRfcGVybWluZm8tPmV4dHJhVXBkYXRlZENvbHMgPSBOVUxMOwogCiAJaWYgKGNvbnN0ciAmJiBj b25zdHItPmhhc19nZW5lcmF0ZWRfc3RvcmVkKQogCXsKQEAgLTE2MTYsOSArMTYxOSw5IEBAIGZp bGxfZXh0cmFVcGRhdGVkQ29scyhSYW5nZVRibEVudHJ5ICp0YXJnZXRfcnRlLCBSZWxhdGlvbiB0 YXJnZXRfcmVsYXRpb24pCiAJCQlleHByID0gc3RyaW5nVG9Ob2RlKGRlZnZhbC0+YWRiaW4pOwog CQkJcHVsbF92YXJhdHRub3MoZXhwciwgMSwgJmF0dHJzX3VzZWQpOwogCi0JCQlpZiAoYm1zX292 ZXJsYXAodGFyZ2V0X3J0ZS0+dXBkYXRlZENvbHMsIGF0dHJzX3VzZWQpKQotCQkJCXRhcmdldF9y dGUtPmV4dHJhVXBkYXRlZENvbHMgPQotCQkJCQlibXNfYWRkX21lbWJlcih0YXJnZXRfcnRlLT5l eHRyYVVwZGF0ZWRDb2xzLAorCQkJaWYgKGJtc19vdmVybGFwKHRhcmdldF9wZXJtaW5mby0+dXBk YXRlZENvbHMsIGF0dHJzX3VzZWQpKQorCQkJCXRhcmdldF9wZXJtaW5mby0+ZXh0cmFVcGRhdGVk Q29scyA9CisJCQkJCWJtc19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+ZXh0cmFVcGRhdGVk Q29scywKIAkJCQkJCQkJICAgZGVmdmFsLT5hZG51bSAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRy aWJ1dGVOdW1iZXIpOwogCQl9CiAJfQpAQCAtMTcwMyw4ICsxNzA2LDcgQEAgQXBwbHlSZXRyaWV2 ZVJ1bGUoUXVlcnkgKnBhcnNldHJlZSwKIAkJCQkgIExpc3QgKmFjdGl2ZVJJUnMpCiB7CiAJUXVl cnkJICAgKnJ1bGVfYWN0aW9uOwotCVJhbmdlVGJsRW50cnkgKnJ0ZSwKLQkJCSAgICpzdWJydGU7 CisJUmFuZ2VUYmxFbnRyeSAqcnRlOwogCVJvd01hcmtDbGF1c2UgKnJjOwogCiAJaWYgKGxpc3Rf bGVuZ3RoKHJ1bGUtPmFjdGlvbnMpICE9IDEpCkBAIC0xNzQ1LDE4ICsxNzQ3LDYgQEAgQXBwbHlS ZXRyaWV2ZVJ1bGUoUXVlcnkgKnBhcnNldHJlZSwKIAkJCXBhcnNldHJlZS0+cnRhYmxlID0gbGFw cGVuZChwYXJzZXRyZWUtPnJ0YWJsZSwgbmV3cnRlKTsKIAkJCXBhcnNldHJlZS0+cmVzdWx0UmVs YXRpb24gPSBsaXN0X2xlbmd0aChwYXJzZXRyZWUtPnJ0YWJsZSk7CiAKLQkJCS8qCi0JCQkgKiBU aGVyZSdzIG5vIG5lZWQgdG8gZG8gcGVybWlzc2lvbnMgY2hlY2tzIHR3aWNlLCBzbyB3aXBlIG91 dCB0aGUKLQkJCSAqIHBlcm1pc3Npb25zIGluZm8gZm9yIHRoZSBvcmlnaW5hbCBSVEUgKHdlIHBy ZWZlciB0byBrZWVwIHRoZQotCQkJICogYml0cyBzZXQgb24gdGhlIHJlc3VsdCBSVEUpLgotCQkJ ICovCi0JCQlydGUtPnJlcXVpcmVkUGVybXMgPSAwOwotCQkJcnRlLT5jaGVja0FzVXNlciA9IElu dmFsaWRPaWQ7Ci0JCQlydGUtPnNlbGVjdGVkQ29scyA9IE5VTEw7Ci0JCQlydGUtPmluc2VydGVk Q29scyA9IE5VTEw7Ci0JCQlydGUtPnVwZGF0ZWRDb2xzID0gTlVMTDsKLQkJCXJ0ZS0+ZXh0cmFV cGRhdGVkQ29scyA9IE5VTEw7Ci0KIAkJCS8qCiAJCQkgKiBGb3IgdGhlIG1vc3QgcGFydCwgVmFy cyByZWZlcmVuY2luZyB0aGUgdmlldyBzaG91bGQgcmVtYWluIGFzCiAJCQkgKiB0aGV5IGFyZSwg bWVhbmluZyB0aGF0IHRoZXkgaW1wbGljaXRseSByZXByZXNlbnQgT0xEIHZhbHVlcy4KQEAgLTE4 NDMsMjggKzE4MzMsOSBAQCBBcHBseVJldHJpZXZlUnVsZShRdWVyeSAqcGFyc2V0cmVlLAogCXJ0 ZS0+cmVsa2luZCA9IDA7CiAJcnRlLT5yZWxsb2NrbW9kZSA9IDA7CiAJcnRlLT50YWJsZXNhbXBs ZSA9IE5VTEw7CisJcnRlLT5wZXJtaW5mb2luZGV4ID0gMDsKIAlydGUtPmluaCA9IGZhbHNlOwkJ CS8qIG11c3Qgbm90IGJlIHNldCBmb3IgYSBzdWJxdWVyeSAqLwogCi0JLyoKLQkgKiBXZSBtb3Zl IHRoZSB2aWV3J3MgcGVybWlzc2lvbiBjaGVjayBkYXRhIGRvd24gdG8gaXRzIHJhbmdldGFibGUu IFRoZQotCSAqIGNoZWNrcyB3aWxsIGFjdHVhbGx5IGJlIGRvbmUgYWdhaW5zdCB0aGUgT0xEIGVu dHJ5IHRoZXJlaW4uCi0JICovCi0Jc3VicnRlID0gcnRfZmV0Y2goUFJTMl9PTERfVkFSTk8sIHJ1 bGVfYWN0aW9uLT5ydGFibGUpOwotCUFzc2VydChzdWJydGUtPnJlbGlkID09IHJlbGF0aW9uLT5y ZF9pZCk7Ci0Jc3VicnRlLT5yZXF1aXJlZFBlcm1zID0gcnRlLT5yZXF1aXJlZFBlcm1zOwotCXN1 YnJ0ZS0+Y2hlY2tBc1VzZXIgPSBydGUtPmNoZWNrQXNVc2VyOwotCXN1YnJ0ZS0+c2VsZWN0ZWRD b2xzID0gcnRlLT5zZWxlY3RlZENvbHM7Ci0Jc3VicnRlLT5pbnNlcnRlZENvbHMgPSBydGUtPmlu c2VydGVkQ29sczsKLQlzdWJydGUtPnVwZGF0ZWRDb2xzID0gcnRlLT51cGRhdGVkQ29sczsKLQlz dWJydGUtPmV4dHJhVXBkYXRlZENvbHMgPSBydGUtPmV4dHJhVXBkYXRlZENvbHM7Ci0KLQlydGUt PnJlcXVpcmVkUGVybXMgPSAwOwkJLyogbm8gcGVybWlzc2lvbiBjaGVjayBvbiBzdWJxdWVyeSBp dHNlbGYgKi8KLQlydGUtPmNoZWNrQXNVc2VyID0gSW52YWxpZE9pZDsKLQlydGUtPnNlbGVjdGVk Q29scyA9IE5VTEw7Ci0JcnRlLT5pbnNlcnRlZENvbHMgPSBOVUxMOwotCXJ0ZS0+dXBkYXRlZENv bHMgPSBOVUxMOwotCXJ0ZS0+ZXh0cmFVcGRhdGVkQ29scyA9IE5VTEw7Ci0KIAlyZXR1cm4gcGFy c2V0cmVlOwogfQogCkBAIC0xODkzLDggKzE4NjQsMTIgQEAgbWFya1F1ZXJ5Rm9yTG9ja2luZyhR dWVyeSAqcXJ5LCBOb2RlICpqdG5vZGUsCiAKIAkJaWYgKHJ0ZS0+cnRla2luZCA9PSBSVEVfUkVM QVRJT04pCiAJCXsKKwkJCVJlbFBlcm1pc3Npb25JbmZvICpwZXJtaW5mbzsKKwogCQkJYXBwbHlM b2NraW5nQ2xhdXNlKHFyeSwgcnRpLCBzdHJlbmd0aCwgd2FpdFBvbGljeSwgcHVzaGVkRG93bik7 Ci0JCQlydGUtPnJlcXVpcmVkUGVybXMgfD0gQUNMX1NFTEVDVF9GT1JfVVBEQVRFOworCisJCQlw ZXJtaW5mbyA9IEdldFJlbFBlcm1pc3Npb25JbmZvKHFyeS0+cmVscGVybWxpc3QsIHJ0ZSwgZmFs c2UpOworCQkJcGVybWluZm8tPnJlcXVpcmVkUGVybXMgfD0gQUNMX1NFTEVDVF9GT1JfVVBEQVRF OwogCQl9CiAJCWVsc2UgaWYgKHJ0ZS0+cnRla2luZCA9PSBSVEVfU1VCUVVFUlkpCiAJCXsKQEAg LTMwMzUsNiArMzAxMCw5IEBAIHJld3JpdGVUYXJnZXRWaWV3KFF1ZXJ5ICpwYXJzZXRyZWUsIFJl bGF0aW9uIHZpZXcpCiAJUmFuZ2VUYmxFbnRyeSAqYmFzZV9ydGU7CiAJUmFuZ2VUYmxFbnRyeSAq dmlld19ydGU7CiAJUmFuZ2VUYmxFbnRyeSAqbmV3X3J0ZTsKKwlSZWxQZXJtaXNzaW9uSW5mbyAq dmlld19wZXJtaW5mbzsKKwlSZWxQZXJtaXNzaW9uSW5mbyAqYmFzZV9wZXJtaW5mbzsKKwlSZWxQ ZXJtaXNzaW9uSW5mbyAqbmV3X3Blcm1pbmZvOwogCVJlbGF0aW9uCWJhc2VfcmVsOwogCUxpc3QJ ICAgKnZpZXdfdGFyZ2V0bGlzdDsKIAlMaXN0Q2VsbCAgICpsYzsKQEAgLTMxNzAsNiArMzE0OCw4 IEBAIHJld3JpdGVUYXJnZXRWaWV3KFF1ZXJ5ICpwYXJzZXRyZWUsIFJlbGF0aW9uIHZpZXcpCiAK IAliYXNlX3J0X2luZGV4ID0gcnRyLT5ydGluZGV4OwogCWJhc2VfcnRlID0gcnRfZmV0Y2goYmFz ZV9ydF9pbmRleCwgdmlld3F1ZXJ5LT5ydGFibGUpOworYmFzZV9wZXJtaW5mbyA9IEdldFJlbFBl cm1pc3Npb25JbmZvKHZpZXdxdWVyeS0+cmVscGVybWxpc3QsIGJhc2VfcnRlLAorCQkJCQkJCQkJ CSBmYWxzZSk7CiAJQXNzZXJ0KGJhc2VfcnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTik7CiAK IAkvKgpAQCAtMzI0Miw1NyArMzIyMiw2MCBAQCByZXdyaXRlVGFyZ2V0VmlldyhRdWVyeSAqcGFy c2V0cmVlLCBSZWxhdGlvbiB2aWV3KQogCQkJCSAgIDApOwogCiAJLyoKLQkgKiBJZiB0aGUgdmll dyBoYXMgInNlY3VyaXR5X2ludm9rZXIiIHNldCwgbWFyayB0aGUgbmV3IHRhcmdldCBSVEUgZm9y IHRoZQotCSAqIHBlcm1pc3Npb25zIGNoZWNrcyB0aGF0IHdlIHdhbnQgdG8gZW5mb3JjZSBhZ2Fp bnN0IHRoZSBxdWVyeSBjYWxsZXIuCi0JICogT3RoZXJ3aXNlIHdlIHdhbnQgdG8gZW5mb3JjZSB0 aGVtIGFnYWluc3QgdGhlIHZpZXcgb3duZXIuCisJICogSWYgdGhlIHZpZXcgaGFzICJzZWN1cml0 eV9pbnZva2VyIiBzZXQsIG1hcmsgdGhlIG5ldyB0YXJnZXQgcmVsYXRpb24KKwkgKiBmb3IgdGhl IHBlcm1pc3Npb25zIGNoZWNrcyB0aGF0IHdlIHdhbnQgdG8gZW5mb3JjZSBhZ2FpbnN0IHRoZSBx dWVyeQorCSAqIGNhbGxlci4gT3RoZXJ3aXNlIHdlIHdhbnQgdG8gZW5mb3JjZSB0aGVtIGFnYWlu c3QgdGhlIHZpZXcgb3duZXIuCiAJICoKIAkgKiBBdCB0aGUgcmVsYXRpb24gbGV2ZWwsIHJlcXVp cmUgdGhlIHNhbWUgSU5TRVJUL1VQREFURS9ERUxFVEUKIAkgKiBwZXJtaXNzaW9ucyB0aGF0IHRo ZSBxdWVyeSBjYWxsZXIgbmVlZHMgYWdhaW5zdCB0aGUgdmlldy4gIFdlIGRyb3AgdGhlCi0JICog QUNMX1NFTEVDVCBiaXQgdGhhdCBpcyBwcmVzdW1hYmx5IGluIG5ld19ydGUtPnJlcXVpcmVkUGVy bXMgaW5pdGlhbGx5LgorCSAqIEFDTF9TRUxFQ1QgYml0IHRoYXQgaXMgcHJlc3VtYWJseSBpbiBu ZXdfcGVybWluZm8tPnJlcXVpcmVkUGVybXMKKwkgKiBpbml0aWFsbHkuCiAJICoKLQkgKiBOb3Rl OiB0aGUgb3JpZ2luYWwgdmlldyBSVEUgcmVtYWlucyBpbiB0aGUgcXVlcnkncyByYW5nZXRhYmxl IGxpc3QuCi0JICogQWx0aG91Z2ggaXQgd2lsbCBiZSB1bnVzZWQgaW4gdGhlIHF1ZXJ5IHBsYW4s IHdlIG5lZWQgaXQgdGhlcmUgc28gdGhhdAotCSAqIHRoZSBleGVjdXRvciBzdGlsbCBwZXJmb3Jt cyBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucyBjaGVja3MgZm9yIHRoZQotCSAqIHF1ZXJ5IGNhbGxl cidzIHVzZSBvZiB0aGUgdmlldy4KKwkgKiBOb3RlOiB0aGUgb3JpZ2luYWwgdmlldydzIFJlbFBl cm1pc3Npb25JbmZvIHJlbWFpbnMgaW4gdGhlIHF1ZXJ5J3MKKwkgKiBwZXJtaXNzaW9ucyBsaXN0 IHNvIHRoYXQgdGhlIGV4ZWN1dG9yIHN0aWxsIHBlcmZvcm1zIGFwcHJvcHJpYXRlCisJICogcGVy bWlzc2lvbnMgY2hlY2tzIGZvciB0aGUgcXVlcnkgY2FsbGVyJ3MgdXNlIG9mIHRoZSB2aWV3Lgog CSAqLworCXZpZXdfcGVybWluZm8gPSBHZXRSZWxQZXJtaXNzaW9uSW5mbyhwYXJzZXRyZWUtPnJl bHBlcm1saXN0LCB2aWV3X3J0ZSwKKwkJCQkJCQkJCQkgZmFsc2UpOworCW5ld19ydGUtPnBlcm1p bmZvaW5kZXggPSAwOworCW5ld19wZXJtaW5mbyA9IEFkZFJlbFBlcm1pc3Npb25JbmZvKCZwYXJz ZXRyZWUtPnJlbHBlcm1saXN0LCBuZXdfcnRlKTsKIAlpZiAoUmVsYXRpb25IYXNTZWN1cml0eUlu dm9rZXIodmlldykpCi0JCW5ld19ydGUtPmNoZWNrQXNVc2VyID0gSW52YWxpZE9pZDsKKwkJbmV3 X3Blcm1pbmZvLT5jaGVja0FzVXNlciA9IEludmFsaWRPaWQ7CiAJZWxzZQotCQluZXdfcnRlLT5j aGVja0FzVXNlciA9IHZpZXctPnJkX3JlbC0+cmVsb3duZXI7Ci0KLQluZXdfcnRlLT5yZXF1aXJl ZFBlcm1zID0gdmlld19ydGUtPnJlcXVpcmVkUGVybXM7CisJCW5ld19wZXJtaW5mby0+Y2hlY2tB c1VzZXIgPSB2aWV3LT5yZF9yZWwtPnJlbG93bmVyOworCW5ld19wZXJtaW5mby0+cmVxdWlyZWRQ ZXJtcyA9IHZpZXdfcGVybWluZm8tPnJlcXVpcmVkUGVybXM7CiAKIAkvKgogCSAqIE5vdyBmb3Ig dGhlIHBlci1jb2x1bW4gcGVybWlzc2lvbnMgYml0cy4KIAkgKgotCSAqIEluaXRpYWxseSwgbmV3 X3J0ZSBjb250YWlucyBzZWxlY3RlZENvbHMgcGVybWlzc2lvbiBjaGVjayBiaXRzIGZvciBhbGwK LQkgKiBiYXNlLXJlbCBjb2x1bW5zIHJlZmVyZW5jZWQgYnkgdGhlIHZpZXcsIGJ1dCBzaW5jZSB0 aGUgdmlldyBpcyBhIFNFTEVDVAotCSAqIHF1ZXJ5IGl0cyBpbnNlcnRlZENvbHMvdXBkYXRlZENv bHMgaXMgZW1wdHkuICBXZSBzZXQgaW5zZXJ0ZWRDb2xzIGFuZAotCSAqIHVwZGF0ZWRDb2xzIHRv IGluY2x1ZGUgYWxsIHRoZSBjb2x1bW5zIHRoZSBvdXRlciBxdWVyeSBpcyB0cnlpbmcgdG8KLQkg KiBtb2RpZnksIGFkanVzdGluZyB0aGUgY29sdW1uIG51bWJlcnMgYXMgbmVlZGVkLiAgQnV0IHdl IGxlYXZlCi0JICogc2VsZWN0ZWRDb2xzIGFzLWlzLCBzbyB0aGUgdmlldyBvd25lciBtdXN0IGhh dmUgcmVhZCBwZXJtaXNzaW9uIGZvciBhbGwKLQkgKiBjb2x1bW5zIHVzZWQgaW4gdGhlIHZpZXcg ZGVmaW5pdGlvbiwgZXZlbiBpZiBzb21lIG9mIHRoZW0gYXJlIG5vdCByZWFkCi0JICogYnkgdGhl IG91dGVyIHF1ZXJ5LiAgV2UgY291bGQgdHJ5IHRvIGxpbWl0IHNlbGVjdGVkQ29scyB0byBvbmx5 IGNvbHVtbnMKLQkgKiB1c2VkIGluIHRoZSB0cmFuc2Zvcm1lZCBxdWVyeSwgYnV0IHRoYXQgZG9l cyBub3QgY29ycmVzcG9uZCB0byB3aGF0Ci0JICogaGFwcGVucyBpbiBvcmRpbmFyeSBTRUxFQ1Qg dXNhZ2Ugb2YgYSB2aWV3OiBhbGwgcmVmZXJlbmNlZCBjb2x1bW5zIG11c3QKLQkgKiBoYXZlIHJl YWQgcGVybWlzc2lvbiwgZXZlbiBpZiBvcHRpbWl6YXRpb24gZmluZHMgdGhhdCBzb21lIG9mIHRo ZW0gY2FuCi0JICogYmUgZGlzY2FyZGVkIGR1cmluZyBxdWVyeSB0cmFuc2Zvcm1hdGlvbi4gIFRo ZSBmbGF0dGVuaW5nIHdlJ3JlIGRvaW5nCi0JICogaGVyZSBpcyBhbiBvcHRpb25hbCBvcHRpbWl6 YXRpb24sIHRvby4gIChJZiB5b3UgYXJlIHVucGVyc3VhZGVkIGFuZAotCSAqIHdhbnQgdG8gY2hh bmdlIHRoaXMsIG5vdGUgdGhhdCBhcHBseWluZyBhZGp1c3Rfdmlld19jb2x1bW5fc2V0IHRvCi0J ICogdmlld19ydGUtPnNlbGVjdGVkQ29scyBpcyBjbGVhcmx5ICpub3QqIHRoZSByaWdodCBhbnN3 ZXIsIHNpbmNlIHRoYXQKLQkgKiBuZWdsZWN0cyBiYXNlLXJlbCBjb2x1bW5zIHVzZWQgaW4gdGhl IHZpZXcncyBXSEVSRSBxdWFscy4pCisJICogU2V0IG5ld19wZXJtaW5mby0+c2VsZWN0ZWRDb2xz IHRvIGluY2x1ZGUgcGVybWlzc2lvbiBjaGVjayBiaXRzIGZvcgorCSAqIGFsbCBiYXNlLXJlbCBj b2x1bW5zIHJlZmVyZW5jZWQgYnkgdGhlIHZpZXcgYW5kIGluc2VydGVkQ29scy91cGRhdGVkQ29s cworCSAqIHRvIGluY2x1ZGUgYWxsIHRoZSBjb2x1bW5zIHRoZSBvdXRlciBxdWVyeSBpcyB0cnlp bmcgdG8gbW9kaWZ5LCBhZGp1c3RpbmcKKwkgKiB0aGUgY29sdW1uIG51bWJlcnMgYXMgbmVlZGVk LiAgV2UgbGVhdmUgc2VsZWN0ZWRDb2xzIGFzLWlzLCBzbyB0aGUgdmlldworCSAqIG93bmVyIG11 c3QgaGF2ZSByZWFkIHBlcm1pc3Npb24gZm9yIGFsbCBjb2x1bW5zIHVzZWQgaW4gdGhlIHZpZXcK KwkgKiBkZWZpbml0aW9uLCBldmVuIGlmIHNvbWUgb2YgdGhlbSBhcmUgbm90IHJlYWQgYnkgdGhl IG91dGVyIHF1ZXJ5LiAgV2UKKwkgKiBjb3VsZCB0cnkgdG8gbGltaXQgc2VsZWN0ZWRDb2xzIHRv IG9ubHkgY29sdW1ucyB1c2VkIGluIHRoZSB0cmFuc2Zvcm1lZAorCSAqIHF1ZXJ5LCBidXQgdGhh dCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIHdoYXQgaGFwcGVucyBpbiBvcmRpbmFyeSBTRUxFQ1QK KwkgKiB1c2FnZSBvZiBhIHZpZXc6IGFsbCByZWZlcmVuY2VkIGNvbHVtbnMgbXVzdCBoYXZlIHJl YWQgcGVybWlzc2lvbiwgZXZlbgorCSAqIGlmIG9wdGltaXphdGlvbiBmaW5kcyB0aGF0IHNvbWUg b2YgdGhlbSBjYW4gYmUgZGlzY2FyZGVkIGR1cmluZyBxdWVyeQorCSAqIHRyYW5zZm9ybWF0aW9u LiAgVGhlIGZsYXR0ZW5pbmcgd2UncmUgZG9pbmcgaGVyZSBpcyBhbiBvcHRpb25hbAorCSAqIG9w dGltaXphdGlvbiwgdG9vLiAgKElmIHlvdSBhcmUgdW5wZXJzdWFkZWQgYW5kIHdhbnQgdG8gY2hh bmdlIHRoaXMsCisJICogbm90ZSB0aGF0IGFwcGx5aW5nIGFkanVzdF92aWV3X2NvbHVtbl9zZXQg dG8gdmlld19wZXJtaW5mby0+c2VsZWN0ZWRDb2xzCisJICogaXMgY2xlYXJseSAqbm90KiB0aGUg cmlnaHQgYW5zd2VyLCBzaW5jZSB0aGF0IG5lZ2xlY3RzIGJhc2UtcmVsIGNvbHVtbnMKKwkgKiB1 c2VkIGluIHRoZSB2aWV3J3MgV0hFUkUgcXVhbHMuKQogCSAqCiAJICogVGhpcyBzdGVwIG5lZWRz IHRoZSBtb2RpZmllZCB2aWV3IHRhcmdldGxpc3QsIHNvIHdlIGhhdmUgdG8gZG8gdGhpbmdzCiAJ ICogaW4gdGhpcyBvcmRlci4KIAkgKi8KLQlBc3NlcnQoYm1zX2lzX2VtcHR5KG5ld19ydGUtPmlu c2VydGVkQ29scykgJiYKLQkJICAgYm1zX2lzX2VtcHR5KG5ld19ydGUtPnVwZGF0ZWRDb2xzKSk7 CisJbmV3X3Blcm1pbmZvLT5zZWxlY3RlZENvbHMgPSBiYXNlX3Blcm1pbmZvLT5zZWxlY3RlZENv bHM7CisJQXNzZXJ0KGJtc19pc19lbXB0eShuZXdfcGVybWluZm8tPmluc2VydGVkQ29scykgJiYK KwkJICAgYm1zX2lzX2VtcHR5KG5ld19wZXJtaW5mby0+dXBkYXRlZENvbHMpKTsKIAotCW5ld19y dGUtPmluc2VydGVkQ29scyA9IGFkanVzdF92aWV3X2NvbHVtbl9zZXQodmlld19ydGUtPmluc2Vy dGVkQ29scywKLQkJCQkJCQkJCQkJCSAgIHZpZXdfdGFyZ2V0bGlzdCk7CisJbmV3X3Blcm1pbmZv LT5pbnNlcnRlZENvbHMgPQorCQlhZGp1c3Rfdmlld19jb2x1bW5fc2V0KHZpZXdfcGVybWluZm8t Pmluc2VydGVkQ29scywgdmlld190YXJnZXRsaXN0KTsKIAotCW5ld19ydGUtPnVwZGF0ZWRDb2xz ID0gYWRqdXN0X3ZpZXdfY29sdW1uX3NldCh2aWV3X3J0ZS0+dXBkYXRlZENvbHMsCi0JCQkJCQkJ CQkJCQkgIHZpZXdfdGFyZ2V0bGlzdCk7CisJbmV3X3Blcm1pbmZvLT51cGRhdGVkQ29scyA9CisJ CWFkanVzdF92aWV3X2NvbHVtbl9zZXQodmlld19wZXJtaW5mby0+dXBkYXRlZENvbHMsIHZpZXdf dGFyZ2V0bGlzdCk7CiAKIAkvKgogCSAqIE1vdmUgYW55IHNlY3VyaXR5IGJhcnJpZXIgcXVhbHMg ZnJvbSB0aGUgdmlldyBSVEUgb250byB0aGUgbmV3IHRhcmdldApAQCAtMzM5Niw3ICszMzc5LDcg QEAgcmV3cml0ZVRhcmdldFZpZXcoUXVlcnkgKnBhcnNldHJlZSwgUmVsYXRpb24gdmlldykKIAkJ ICogZnJvbSB0aGUgdmlldywgaGVuY2Ugd2UgbmVlZCBhIG5ldyBjb2x1bW4gYWxpYXMgbGlzdCku ICBUaGlzIHNob3VsZAogCQkgKiBtYXRjaCB0cmFuc2Zvcm1PbkNvbmZsaWN0Q2xhdXNlLiAgSW4g cGFydGljdWxhciwgbm90ZSB0aGF0IHRoZQogCQkgKiByZWxraW5kIGlzIHNldCB0byBjb21wb3Np dGUgdG8gc2lnbmFsIHRoYXQgd2UncmUgbm90IGRlYWxpbmcgd2l0aAotCQkgKiBhbiBhY3R1YWwg cmVsYXRpb24sIGFuZCBubyBwZXJtaXNzaW9ucyBjaGVja3MgYXJlIHdhbnRlZC4KKwkJICogYW4g YWN0dWFsIHJlbGF0aW9uLgogCQkgKi8KIAkJb2xkX2V4Y2xSZWxJbmRleCA9IHBhcnNldHJlZS0+ b25Db25mbGljdC0+ZXhjbFJlbEluZGV4OwogCkBAIC0zNDA3LDggKzMzOTAsNiBAQCByZXdyaXRl VGFyZ2V0VmlldyhRdWVyeSAqcGFyc2V0cmVlLCBSZWxhdGlvbiB2aWV3KQogCQkJCQkJCQkJCQkJ CSAgIGZhbHNlLCBmYWxzZSk7CiAJCW5ld19leGNsUnRlID0gbmV3X2V4Y2xOU0l0ZW0tPnBfcnRl OwogCQluZXdfZXhjbFJ0ZS0+cmVsa2luZCA9IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEU7Ci0JCW5l d19leGNsUnRlLT5yZXF1aXJlZFBlcm1zID0gMDsKLQkJLyogb3RoZXIgcGVybWlzc2lvbnMgZmll bGRzIGluIG5ld19leGNsUnRlIGFyZSBhbHJlYWR5IGVtcHR5ICovCiAKIAkJcGFyc2V0cmVlLT5y dGFibGUgPSBsYXBwZW5kKHBhcnNldHJlZS0+cnRhYmxlLCBuZXdfZXhjbFJ0ZSk7CiAJCW5ld19l eGNsUmVsSW5kZXggPSBwYXJzZXRyZWUtPm9uQ29uZmxpY3QtPmV4Y2xSZWxJbmRleCA9CkBAIC0z NjgyLDYgKzM2NjMsNyBAQCBSZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqcmV3 cml0ZV9ldmVudHMpCiAJewogCQlpbnQJCQlyZXN1bHRfcmVsYXRpb247CiAJCVJhbmdlVGJsRW50 cnkgKnJ0X2VudHJ5OworCQlSZWxQZXJtaXNzaW9uSW5mbyAqcnRfcGVybWluZm87CiAJCVJlbGF0 aW9uCXJ0X2VudHJ5X3JlbGF0aW9uOwogCQlMaXN0CSAgICpsb2NrczsKIAkJTGlzdAkgICAqcHJv ZHVjdF9xdWVyaWVzOwpAQCAtMzY5Myw2ICszNjc1LDggQEAgUmV3cml0ZVF1ZXJ5KFF1ZXJ5ICpw YXJzZXRyZWUsIExpc3QgKnJld3JpdGVfZXZlbnRzKQogCQlBc3NlcnQocmVzdWx0X3JlbGF0aW9u ICE9IDApOwogCQlydF9lbnRyeSA9IHJ0X2ZldGNoKHJlc3VsdF9yZWxhdGlvbiwgcGFyc2V0cmVl LT5ydGFibGUpOwogCQlBc3NlcnQocnRfZW50cnktPnJ0ZWtpbmQgPT0gUlRFX1JFTEFUSU9OKTsK KwkJcnRfcGVybWluZm8gPSBHZXRSZWxQZXJtaXNzaW9uSW5mbyhwYXJzZXRyZWUtPnJlbHBlcm1s aXN0LCBydF9lbnRyeSwKKwkJCQkJCQkJCQkgICBmYWxzZSk7CiAKIAkJLyoKIAkJICogV2UgY2Fu IHVzZSBOb0xvY2sgaGVyZSBzaW5jZSBlaXRoZXIgdGhlIHBhcnNlciBvcgpAQCAtMzc3OCw3ICsz NzYyLDcgQEAgUmV3cml0ZVF1ZXJ5KFF1ZXJ5ICpwYXJzZXRyZWUsIExpc3QgKnJld3JpdGVfZXZl bnRzKQogCQkJCQkJCQkJTlVMTCwgMCwgTlVMTCk7CiAKIAkJCS8qIEFsc28gcG9wdWxhdGUgZXh0 cmFVcGRhdGVkQ29scyAoZm9yIGdlbmVyYXRlZCBjb2x1bW5zKSAqLwotCQkJZmlsbF9leHRyYVVw ZGF0ZWRDb2xzKHJ0X2VudHJ5LCBydF9lbnRyeV9yZWxhdGlvbik7CisJCQlmaWxsX2V4dHJhVXBk YXRlZENvbHMocnRfcGVybWluZm8sIHJ0X2VudHJ5X3JlbGF0aW9uKTsKIAkJfQogCQllbHNlIGlm IChldmVudCA9PSBDTURfREVMRVRFKQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdy aXRlL3Jvd3NlY3VyaXR5LmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jvd3NlY3VyaXR5LmMKaW5k ZXggZjBhMDQ2ZDY1YS4uMDNmMzg4MTk5NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0 ZS9yb3dzZWN1cml0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcm93c2VjdXJpdHkuYwpA QCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIm5vZGVzL3BnX2xpc3QuaCIKICNpbmNsdWRlICJu b2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCisjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlRGVm aW5lLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInJl d3JpdGUvcmV3cml0ZU1hbmlwLmgiCkBAIC0xMTUsNiArMTE2LDcgQEAgZ2V0X3Jvd19zZWN1cml0 eV9wb2xpY2llcyhRdWVyeSAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcnRlLCBpbnQgcnRfaW5kZXgs CiAJQ21kVHlwZQkJY29tbWFuZFR5cGU7CiAJTGlzdAkgICAqcGVybWlzc2l2ZV9wb2xpY2llczsK IAlMaXN0CSAgICpyZXN0cmljdGl2ZV9wb2xpY2llczsKKwlSZWxQZXJtaXNzaW9uSW5mbyAqcGVy bWluZm87CiAKIAkvKiBEZWZhdWx0cyBmb3IgdGhlIHJldHVybiB2YWx1ZXMgKi8KIAkqc2VjdXJp dHlRdWFscyA9IE5JTDsKQEAgLTEyMiwxNiArMTI0LDIwIEBAIGdldF9yb3dfc2VjdXJpdHlfcG9s aWNpZXMoUXVlcnkgKnJvb3QsIFJhbmdlVGJsRW50cnkgKnJ0ZSwgaW50IHJ0X2luZGV4LAogCSpo YXNSb3dTZWN1cml0eSA9IGZhbHNlOwogCSpoYXNTdWJMaW5rcyA9IGZhbHNlOwogCisJQXNzZXJ0 KHJ0ZS0+cnRla2luZCA9PSBSVEVfUkVMQVRJT04pOworCiAJLyogSWYgdGhpcyBpcyBub3QgYSBu b3JtYWwgcmVsYXRpb24sIGp1c3QgcmV0dXJuIGltbWVkaWF0ZWx5ICovCiAJaWYgKHJ0ZS0+cmVs a2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OICYmCiAJCXJ0ZS0+cmVsa2luZCAhPSBSRUxLSU5EX1BB UlRJVElPTkVEX1RBQkxFKQogCQlyZXR1cm47CiAKKwlwZXJtaW5mbyA9IEdldFJlbFBlcm1pc3Np b25JbmZvKHJvb3QtPnJlbHBlcm1saXN0LCBydGUsIGZhbHNlKTsKKwogCS8qIFN3aXRjaCB0byBj aGVja0FzVXNlciBpZiBpdCdzIHNldCAqLwotCXVzZXJfaWQgPSBydGUtPmNoZWNrQXNVc2VyID8g cnRlLT5jaGVja0FzVXNlciA6IEdldFVzZXJJZCgpOworCXVzZXJfaWQgPSBwZXJtaW5mby0+Y2hl Y2tBc1VzZXIgPyBwZXJtaW5mby0+Y2hlY2tBc1VzZXIgOiBHZXRVc2VySWQoKTsKIAogCS8qIERl dGVybWluZSB0aGUgc3RhdGUgb2YgUkxTIGZvciB0aGlzLCBwYXNzIGNoZWNrQXNVc2VyIGV4cGxp Y2l0bHkgKi8KLQlybHNfc3RhdHVzID0gY2hlY2tfZW5hYmxlX3JscyhydGUtPnJlbGlkLCBydGUt PmNoZWNrQXNVc2VyLCBmYWxzZSk7CisJcmxzX3N0YXR1cyA9IGNoZWNrX2VuYWJsZV9ybHMocnRl LT5yZWxpZCwgcGVybWluZm8tPmNoZWNrQXNVc2VyLCBmYWxzZSk7CiAKIAkvKiBJZiB0aGVyZSBp cyBubyBSTFMgb24gdGhpcyB0YWJsZSBhdCBhbGwsIG5vdGhpbmcgdG8gZG8gKi8KIAlpZiAocmxz X3N0YXR1cyA9PSBSTFNfTk9ORSkKQEAgLTE5Niw3ICsyMDIsNyBAQCBnZXRfcm93X3NlY3VyaXR5 X3BvbGljaWVzKFF1ZXJ5ICpyb290LCBSYW5nZVRibEVudHJ5ICpydGUsIGludCBydF9pbmRleCwK IAkgKiB3aGljaCB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB2aWEgdGhlIFVQREFU RSBVU0lORyBwb2xpY2llcywKIAkgKiBzaW1pbGFyIHRvIGhvdyB3ZSByZXF1aXJlIG5vcm1hbCBV UERBVEUgcmlnaHRzIGZvciB0aGVzZSBxdWVyaWVzLgogCSAqLwotCWlmIChjb21tYW5kVHlwZSA9 PSBDTURfU0VMRUNUICYmIHJ0ZS0+cmVxdWlyZWRQZXJtcyAmIEFDTF9VUERBVEUpCisJaWYgKGNv bW1hbmRUeXBlID09IENNRF9TRUxFQ1QgJiYgcGVybWluZm8tPnJlcXVpcmVkUGVybXMgJiBBQ0xf VVBEQVRFKQogCXsKIAkJTGlzdAkgICAqdXBkYXRlX3Blcm1pc3NpdmVfcG9saWNpZXM7CiAJCUxp c3QJICAgKnVwZGF0ZV9yZXN0cmljdGl2ZV9wb2xpY2llczsKQEAgLTI0MSw3ICsyNDcsNyBAQCBn ZXRfcm93X3NlY3VyaXR5X3BvbGljaWVzKFF1ZXJ5ICpyb290LCBSYW5nZVRibEVudHJ5ICpydGUs IGludCBydF9pbmRleCwKIAkgKiBBTEwgb3IgU0VMRUNUIFVTSU5HIHBvbGljeS4KIAkgKi8KIAlp ZiAoKGNvbW1hbmRUeXBlID09IENNRF9VUERBVEUgfHwgY29tbWFuZFR5cGUgPT0gQ01EX0RFTEVU RSkgJiYKLQkJcnRlLT5yZXF1aXJlZFBlcm1zICYgQUNMX1NFTEVDVCkKKwkJcGVybWluZm8tPnJl cXVpcmVkUGVybXMgJiBBQ0xfU0VMRUNUKQogCXsKIAkJTGlzdAkgICAqc2VsZWN0X3Blcm1pc3Np dmVfcG9saWNpZXM7CiAJCUxpc3QJICAgKnNlbGVjdF9yZXN0cmljdGl2ZV9wb2xpY2llczsKQEAg LTI4NCw3ICsyOTAsNyBAQCBnZXRfcm93X3NlY3VyaXR5X3BvbGljaWVzKFF1ZXJ5ICpyb290LCBS YW5nZVRibEVudHJ5ICpydGUsIGludCBydF9pbmRleCwKIAkJICogcmFpc2VkIGlmIGEgcG9saWN5 IGlzIHZpb2xhdGVkOyBvdGhlcndpc2UsIHdlIG1pZ2h0IGVuZCB1cCBzaWxlbnRseQogCQkgKiBk cm9wcGluZyByb3dzIHRvIGJlIGFkZGVkLgogCQkgKi8KLQkJaWYgKHJ0ZS0+cmVxdWlyZWRQZXJt cyAmIEFDTF9TRUxFQ1QpCisJCWlmIChwZXJtaW5mby0+cmVxdWlyZWRQZXJtcyAmIEFDTF9TRUxF Q1QpCiAJCXsKIAkJCUxpc3QJICAgKnNlbGVjdF9wZXJtaXNzaXZlX3BvbGljaWVzID0gTklMOwog CQkJTGlzdAkgICAqc2VsZWN0X3Jlc3RyaWN0aXZlX3BvbGljaWVzID0gTklMOwpAQCAtMzQwLDcg KzM0Niw3IEBAIGdldF9yb3dfc2VjdXJpdHlfcG9saWNpZXMoUXVlcnkgKnJvb3QsIFJhbmdlVGJs RW50cnkgKnJ0ZSwgaW50IHJ0X2luZGV4LAogCQkJICogZm9yIHRoaXMgcmVsYXRpb24sIGFsc28g YXMgV0NPIHBvbGljaWVzLCBhZ2FpbiwgdG8gYXZvaWQKIAkJCSAqIHNpbGVudGx5IGRyb3BwaW5n IGRhdGEuICBTZWUgYWJvdmUuCiAJCQkgKi8KLQkJCWlmIChydGUtPnJlcXVpcmVkUGVybXMgJiBB Q0xfU0VMRUNUKQorCQkJaWYgKHBlcm1pbmZvLT5yZXF1aXJlZFBlcm1zICYgQUNMX1NFTEVDVCkK IAkJCXsKIAkJCQlnZXRfcG9saWNpZXNfZm9yX3JlbGF0aW9uKHJlbCwgQ01EX1NFTEVDVCwgdXNl cl9pZCwKIAkJCQkJCQkJCQkgICZjb25mbGljdF9zZWxlY3RfcGVybWlzc2l2ZV9wb2xpY2llcywK QEAgLTM2OSw3ICszNzUsNyBAQCBnZXRfcm93X3NlY3VyaXR5X3BvbGljaWVzKFF1ZXJ5ICpyb290 LCBSYW5nZVRibEVudHJ5ICpydGUsIGludCBydF9pbmRleCwKIAkJCSAqIHBhdGggb2YgYW4gSU5T RVJUIC4uIE9OIENPTkZMSUNUIERPIFVQREFURSwgaWYgU0VMRUNUIHJpZ2h0cwogCQkJICogYXJl IHJlcXVpcmVkIGZvciB0aGlzIHJlbGF0aW9uLgogCQkJICovCi0JCQlpZiAocnRlLT5yZXF1aXJl ZFBlcm1zICYgQUNMX1NFTEVDVCkKKwkJCWlmIChwZXJtaW5mby0+cmVxdWlyZWRQZXJtcyAmIEFD TF9TRUxFQ1QpCiAJCQkJYWRkX3dpdGhfY2hlY2tfb3B0aW9ucyhyZWwsIHJ0X2luZGV4LAogCQkJ CQkJCQkJICAgV0NPX1JMU19VUERBVEVfQ0hFQ0ssCiAJCQkJCQkJCQkgICBjb25mbGljdF9zZWxl Y3RfcGVybWlzc2l2ZV9wb2xpY2llcywKQEAgLTM4Niw4ICszOTIsOCBAQCBnZXRfcm93X3NlY3Vy aXR5X3BvbGljaWVzKFF1ZXJ5ICpyb290LCBSYW5nZVRibEVudHJ5ICpydGUsIGludCBydF9pbmRl eCwKIAkgKiBDb3B5IGNoZWNrQXNVc2VyIHRvIHRoZSByb3cgc2VjdXJpdHkgcXVhbHMgYW5kIFdp dGhDaGVja09wdGlvbiBjaGVja3MsCiAJICogaW4gY2FzZSB0aGV5IGNvbnRhaW4gYW55IHN1YnF1 ZXJpZXMgcmVmZXJyaW5nIHRvIG90aGVyIHJlbGF0aW9ucy4KIAkgKi8KLQlzZXRSdWxlQ2hlY2tB c1VzZXIoKE5vZGUgKikgKnNlY3VyaXR5UXVhbHMsIHJ0ZS0+Y2hlY2tBc1VzZXIpOwotCXNldFJ1 bGVDaGVja0FzVXNlcigoTm9kZSAqKSAqd2l0aENoZWNrT3B0aW9ucywgcnRlLT5jaGVja0FzVXNl cik7CisJc2V0UnVsZUNoZWNrQXNVc2VyKChOb2RlICopICpzZWN1cml0eVF1YWxzLCBwZXJtaW5m by0+Y2hlY2tBc1VzZXIpOworCXNldFJ1bGVDaGVja0FzVXNlcigoTm9kZSAqKSAqd2l0aENoZWNr T3B0aW9ucywgcGVybWluZm8tPmNoZWNrQXNVc2VyKTsKIAogCS8qCiAJICogTWFyayB0aGlzIHF1 ZXJ5IGFzIGhhdmluZyByb3cgc2VjdXJpdHksIHNvIHBsYW5jYWNoZSBjYW4gaW52YWxpZGF0ZSBp dApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0cy5jIGIv c3JjL2JhY2tlbmQvc3RhdGlzdGljcy9leHRlbmRlZF9zdGF0cy5jCmluZGV4IGNhNDgzOTVkNWMu LmNjNjhlNjhmMWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvZXh0ZW5kZWRf c3RhdHMuYworKysgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2V4dGVuZGVkX3N0YXRzLmMKQEAg LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIvY2xhdXNlcy5oIgogI2luY2x1ZGUg Im9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCisj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAj aW5jbHVkZSAicG9zdG1hc3Rlci9hdXRvdmFjdXVtLmgiCiAjaW5jbHVkZSAic3RhdGlzdGljcy9l eHRlbmRlZF9zdGF0c19pbnRlcm5hbC5oIgpAQCAtMTU2MCw2ICsxNTYxLDcgQEAgc3RhdGV4dF9p c19jb21wYXRpYmxlX2NsYXVzZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqY2xhdXNlLCBJbmRl eCByZWxpZCwKIAkJCQkJCQkgQml0bWFwc2V0ICoqYXR0bnVtcywgTGlzdCAqKmV4cHJzKQogewog CVJhbmdlVGJsRW50cnkgKnJ0ZSA9IHJvb3QtPnNpbXBsZV9ydGVfYXJyYXlbcmVsaWRdOworCVJl bE9wdEluZm8gKnJlbCA9IHJvb3QtPnNpbXBsZV9yZWxfYXJyYXlbcmVsaWRdOwogCVJlc3RyaWN0 SW5mbyAqcmluZm8gPSAoUmVzdHJpY3RJbmZvICopIGNsYXVzZTsKIAlpbnQJCQljbGF1c2VfcmVs aWQ7CiAJT2lkCQkJdXNlcmlkOwpAQCAtMTYwNywxMCArMTYwOSw5IEBAIHN0YXRleHRfaXNfY29t cGF0aWJsZV9jbGF1c2UoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmNsYXVzZSwgSW5kZXggcmVs aWQsCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCi0JICogQ2hlY2sgdGhhdCB0aGUgdXNlciBoYXMg cGVybWlzc2lvbiB0byByZWFkIGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzLiBVc2UKLQkgKiBjaGVj a0FzVXNlciBpZiBpdCdzIHNldCwgaW4gY2FzZSB3ZSdyZSBhY2Nlc3NpbmcgdGhlIHRhYmxlIHZp YSBhIHZpZXcuCisJICogQ2hlY2sgdGhhdCB0aGUgdXNlciBoYXMgcGVybWlzc2lvbiB0byByZWFk IGFsbCByZXF1aXJlZCBhdHRyaWJ1dGVzLgogCSAqLwotCXVzZXJpZCA9IHJ0ZS0+Y2hlY2tBc1Vz ZXIgPyBydGUtPmNoZWNrQXNVc2VyIDogR2V0VXNlcklkKCk7CisJdXNlcmlkID0gcmVsLT51c2Vy aWQgPyByZWwtPnVzZXJpZCA6IEdldFVzZXJJZCgpOwogCiAJaWYgKHBnX2NsYXNzX2FjbGNoZWNr KHJ0ZS0+cmVsaWQsIHVzZXJpZCwgQUNMX1NFTEVDVCkgIT0gQUNMQ0hFQ0tfT0spCiAJewpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCAwMWQ0YzIyY2ZjLi40NTkwZTExNDhjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwpAQCAtMTM2Nyw4ICsxMzY3LDggQEAgUklf SW5pdGlhbF9DaGVjayhUcmlnZ2VyICp0cmlnZ2VyLCBSZWxhdGlvbiBma19yZWwsIFJlbGF0aW9u IHBrX3JlbCkKIAljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU5dOwogCWNo YXIJCXBrYXR0bmFtZVtNQVhfUVVPVEVEX05BTUVfTEVOICsgM107CiAJY2hhcgkJZmthdHRuYW1l W01BWF9RVU9URURfTkFNRV9MRU4gKyAzXTsKLQlSYW5nZVRibEVudHJ5ICpwa3J0ZTsKLQlSYW5n ZVRibEVudHJ5ICpma3J0ZTsKKwlSZWxQZXJtaXNzaW9uSW5mbyAqcGtfcGVybWluZm87CisJUmVs UGVybWlzc2lvbkluZm8gKmZrX3Blcm1pbmZvOwogCWNvbnN0IGNoYXIgKnNlcDsKIAljb25zdCBj aGFyICpma19vbmx5OwogCWNvbnN0IGNoYXIgKnBrX29ubHk7CkBAIC0xMzg2LDMyICsxMzg2LDI2 IEBAIFJJX0luaXRpYWxfQ2hlY2soVHJpZ2dlciAqdHJpZ2dlciwgUmVsYXRpb24gZmtfcmVsLCBS ZWxhdGlvbiBwa19yZWwpCiAJICoKIAkgKiBYWFggYXJlIHRoZXJlIGFueSBvdGhlciBzaG93LXN0 b3BwZXIgY29uZGl0aW9ucyB0byBjaGVjaz8KIAkgKi8KLQlwa3J0ZSA9IG1ha2VOb2RlKFJhbmdl VGJsRW50cnkpOwotCXBrcnRlLT5ydGVraW5kID0gUlRFX1JFTEFUSU9OOwotCXBrcnRlLT5yZWxp ZCA9IFJlbGF0aW9uR2V0UmVsaWQocGtfcmVsKTsKLQlwa3J0ZS0+cmVsa2luZCA9IHBrX3JlbC0+ cmRfcmVsLT5yZWxraW5kOwotCXBrcnRlLT5yZWxsb2NrbW9kZSA9IEFjY2Vzc1NoYXJlTG9jazsK LQlwa3J0ZS0+cmVxdWlyZWRQZXJtcyA9IEFDTF9TRUxFQ1Q7Ci0KLQlma3J0ZSA9IG1ha2VOb2Rl KFJhbmdlVGJsRW50cnkpOwotCWZrcnRlLT5ydGVraW5kID0gUlRFX1JFTEFUSU9OOwotCWZrcnRl LT5yZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQoZmtfcmVsKTsKLQlma3J0ZS0+cmVsa2luZCA9IGZr X3JlbC0+cmRfcmVsLT5yZWxraW5kOwotCWZrcnRlLT5yZWxsb2NrbW9kZSA9IEFjY2Vzc1NoYXJl TG9jazsKLQlma3J0ZS0+cmVxdWlyZWRQZXJtcyA9IEFDTF9TRUxFQ1Q7CisJcGtfcGVybWluZm8g PSBtYWtlTm9kZShSZWxQZXJtaXNzaW9uSW5mbyk7CisJcGtfcGVybWluZm8tPnJlbGlkID0gUmVs YXRpb25HZXRSZWxpZChwa19yZWwpOworCXBrX3Blcm1pbmZvLT5yZXF1aXJlZFBlcm1zID0gQUNM X1NFTEVDVDsKKworCWZrX3Blcm1pbmZvID0gbWFrZU5vZGUoUmVsUGVybWlzc2lvbkluZm8pOwor CWZrX3Blcm1pbmZvLT5yZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQoZmtfcmVsKTsKKwlma19wZXJt aW5mby0+cmVxdWlyZWRQZXJtcyA9IEFDTF9TRUxFQ1Q7CiAKIAlmb3IgKGludCBpID0gMDsgaSA8 IHJpaW5mby0+bmtleXM7IGkrKykKIAl7CiAJCWludAkJCWF0dG5vOwogCiAJCWF0dG5vID0gcmlp bmZvLT5wa19hdHRudW1zW2ldIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcjsK LQkJcGtydGUtPnNlbGVjdGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHBrcnRlLT5zZWxlY3RlZENv bHMsIGF0dG5vKTsKKwkJcGtfcGVybWluZm8tPnNlbGVjdGVkQ29scyA9IGJtc19hZGRfbWVtYmVy KHBrX3Blcm1pbmZvLT5zZWxlY3RlZENvbHMsIGF0dG5vKTsKIAogCQlhdHRubyA9IHJpaW5mby0+ ZmtfYXR0bnVtc1tpXSAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXI7Ci0JCWZr cnRlLT5zZWxlY3RlZENvbHMgPSBibXNfYWRkX21lbWJlcihma3J0ZS0+c2VsZWN0ZWRDb2xzLCBh dHRubyk7CisJCWZrX3Blcm1pbmZvLT5zZWxlY3RlZENvbHMgPSBibXNfYWRkX21lbWJlcihma19w ZXJtaW5mby0+c2VsZWN0ZWRDb2xzLCBhdHRubyk7CiAJfQogCi0JaWYgKCFFeGVjQ2hlY2tSVFBl cm1zKGxpc3RfbWFrZTIoZmtydGUsIHBrcnRlKSwgZmFsc2UpKQorCWlmICghRXhlY0NoZWNrUGVy bWlzc2lvbnMobGlzdF9tYWtlMihma19wZXJtaW5mbywgcGtfcGVybWluZm8pLCBmYWxzZSkpCiAJ CXJldHVybiBmYWxzZTsKIAogCS8qCkBAIC0xNDIxLDkgKzE0MTUsOSBAQCBSSV9Jbml0aWFsX0No ZWNrKFRyaWdnZXIgKnRyaWdnZXIsIFJlbGF0aW9uIGZrX3JlbCwgUmVsYXRpb24gcGtfcmVsKQog CSAqLwogCWlmICghaGFzX2J5cGFzc3Jsc19wcml2aWxlZ2UoR2V0VXNlcklkKCkpICYmCiAJCSgo cGtfcmVsLT5yZF9yZWwtPnJlbHJvd3NlY3VyaXR5ICYmCi0JCSAgIXBnX2NsYXNzX293bmVyY2hl Y2socGtydGUtPnJlbGlkLCBHZXRVc2VySWQoKSkpIHx8CisJCSAgIXBnX2NsYXNzX293bmVyY2hl Y2socGtfcGVybWluZm8tPnJlbGlkLCBHZXRVc2VySWQoKSkpIHx8CiAJCSAoZmtfcmVsLT5yZF9y ZWwtPnJlbHJvd3NlY3VyaXR5ICYmCi0JCSAgIXBnX2NsYXNzX293bmVyY2hlY2soZmtydGUtPnJl bGlkLCBHZXRVc2VySWQoKSkpKSkKKwkJICAhcGdfY2xhc3Nfb3duZXJjaGVjayhma19wZXJtaW5m by0+cmVsaWQsIEdldFVzZXJJZCgpKSkpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKi0tLS0tLS0t LS0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKaW5kZXggMWZiYjBiMjhjMy4uOTM0ZTIxZWRhNCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKQEAgLTUxMzcsNyArNTEzNyw4IEBAIGV4YW1pbmVf dmFyaWFibGUoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCB2YXJSZWxpZCwKIAkJ CQkJCQkJICogVXNlIGNoZWNrQXNVc2VyIGlmIGl0J3Mgc2V0LCBpbiBjYXNlIHdlJ3JlCiAJCQkJ CQkJCSAqIGFjY2Vzc2luZyB0aGUgdGFibGUgdmlhIGEgdmlldy4KIAkJCQkJCQkJICovCi0JCQkJ CQkJCXVzZXJpZCA9IHJ0ZS0+Y2hlY2tBc1VzZXIgPyBydGUtPmNoZWNrQXNVc2VyIDogR2V0VXNl cklkKCk7CisJCQkJCQkJCXVzZXJpZCA9IG9uZXJlbC0+dXNlcmlkID8KKwkJCQkJCQkJCW9uZXJl bC0+dXNlcmlkIDogR2V0VXNlcklkKCk7CiAKIAkJCQkJCQkJLyoKIAkJCQkJCQkJICogRm9yIHNp bXBsaWNpdHksIHdlIGluc2lzdCBvbiB0aGUgd2hvbGUKQEAgLTUxODksNyArNTE5MCw4IEBAIGV4 YW1pbmVfdmFyaWFibGUoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCB2YXJSZWxp ZCwKIAkJCQkJCQkJCQlydGUgPSBwbGFubmVyX3J0X2ZldGNoKHZhcm5vLCByb290KTsKIAkJCQkJ CQkJCQlBc3NlcnQocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTik7CiAKLQkJCQkJCQkJCQl1 c2VyaWQgPSBydGUtPmNoZWNrQXNVc2VyID8gcnRlLT5jaGVja0FzVXNlciA6IEdldFVzZXJJZCgp OworCQkJCQkJCQkJCXVzZXJpZCA9IG9uZXJlbC0+dXNlcmlkID8KKwkJCQkJCQkJCQkJb25lcmVs LT51c2VyaWQgOiBHZXRVc2VySWQoKTsKIAogCQkJCQkJCQkJCXZhcmRhdGEtPmFjbF9vayA9CiAJ CQkJCQkJCQkJCXJ0ZS0+c2VjdXJpdHlRdWFscyA9PSBOSUwgJiYKQEAgLTUyNjgsNyArNTI3MCw4 IEBAIGV4YW1pbmVfdmFyaWFibGUoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCB2 YXJSZWxpZCwKIAkJCQkJICogVXNlIGNoZWNrQXNVc2VyIGlmIGl0J3Mgc2V0LCBpbiBjYXNlIHdl J3JlIGFjY2Vzc2luZwogCQkJCQkgKiB0aGUgdGFibGUgdmlhIGEgdmlldy4KIAkJCQkJICovCi0J CQkJCXVzZXJpZCA9IHJ0ZS0+Y2hlY2tBc1VzZXIgPyBydGUtPmNoZWNrQXNVc2VyIDogR2V0VXNl cklkKCk7CisJCQkJCXVzZXJpZCA9IG9uZXJlbC0+dXNlcmlkID8KKwkJCQkJCW9uZXJlbC0+dXNl cmlkIDogR2V0VXNlcklkKCk7CiAKIAkJCQkJLyoKIAkJCQkJICogRm9yIHNpbXBsaWNpdHksIHdl IGluc2lzdCBvbiB0aGUgd2hvbGUgdGFibGUgYmVpbmcKQEAgLTUzMTYsNyArNTMxOSw4IEBAIGV4 YW1pbmVfdmFyaWFibGUoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCB2YXJSZWxp ZCwKIAkJCQkJCQlydGUgPSBwbGFubmVyX3J0X2ZldGNoKHZhcm5vLCByb290KTsKIAkJCQkJCQlB c3NlcnQocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTik7CiAKLQkJCQkJCQl1c2VyaWQgPSBy dGUtPmNoZWNrQXNVc2VyID8gcnRlLT5jaGVja0FzVXNlciA6IEdldFVzZXJJZCgpOworCQkJCQkJ CXVzZXJpZCA9IG9uZXJlbC0+dXNlcmlkID8KKwkJCQkJCQkJb25lcmVsLT51c2VyaWQgOiBHZXRV c2VySWQoKTsKIAogCQkJCQkJCXZhcmRhdGEtPmFjbF9vayA9CiAJCQkJCQkJCXJ0ZS0+c2VjdXJp dHlRdWFscyA9PSBOSUwgJiYKQEAgLTUzNzcsNiArNTM4MSw3IEBAIGV4YW1pbmVfc2ltcGxlX3Zh cmlhYmxlKFBsYW5uZXJJbmZvICpyb290LCBWYXIgKnZhciwKIAogCQlpZiAoSGVhcFR1cGxlSXNW YWxpZCh2YXJkYXRhLT5zdGF0c1R1cGxlKSkKIAkJeworCQkJUmVsT3B0SW5mbyAqb25lcmVsID0g ZmluZF9iYXNlX3JlbChyb290LCB2YXItPnZhcm5vKTsKIAkJCU9pZAkJCXVzZXJpZDsKIAogCQkJ LyoKQEAgLTUzODUsNyArNTM5MCw4IEBAIGV4YW1pbmVfc2ltcGxlX3ZhcmlhYmxlKFBsYW5uZXJJ bmZvICpyb290LCBWYXIgKnZhciwKIAkJCSAqIGZyb20gc2VjdXJpdHkgYmFycmllciB2aWV3cyBv ciBSTFMgcG9saWNpZXMuICBVc2UgY2hlY2tBc1VzZXIKIAkJCSAqIGlmIGl0J3Mgc2V0LCBpbiBj YXNlIHdlJ3JlIGFjY2Vzc2luZyB0aGUgdGFibGUgdmlhIGEgdmlldy4KIAkJCSAqLwotCQkJdXNl cmlkID0gcnRlLT5jaGVja0FzVXNlciA/IHJ0ZS0+Y2hlY2tBc1VzZXIgOiBHZXRVc2VySWQoKTsK KwkJCXVzZXJpZCA9IG9uZXJlbC0+dXNlcmlkID8KKwkJCQlvbmVyZWwtPnVzZXJpZCA6IEdldFVz ZXJJZCgpOwogCiAJCQl2YXJkYXRhLT5hY2xfb2sgPQogCQkJCXJ0ZS0+c2VjdXJpdHlRdWFscyA9 PSBOSUwgJiYKQEAgLTU0NTQsNyArNTQ2MCw4IEBAIGV4YW1pbmVfc2ltcGxlX3ZhcmlhYmxlKFBs YW5uZXJJbmZvICpyb290LCBWYXIgKnZhciwKIAkJCQlydGUgPSBwbGFubmVyX3J0X2ZldGNoKHZh cm5vLCByb290KTsKIAkJCQlBc3NlcnQocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTik7CiAK LQkJCQl1c2VyaWQgPSBydGUtPmNoZWNrQXNVc2VyID8gcnRlLT5jaGVja0FzVXNlciA6IEdldFVz ZXJJZCgpOworCQkJCXVzZXJpZCA9IG9uZXJlbC0+dXNlcmlkID8KKwkJCQkJb25lcmVsLT51c2Vy aWQgOiBHZXRVc2VySWQoKTsKIAogCQkJCXZhcmRhdGEtPmFjbF9vayA9CiAJCQkJCXJ0ZS0+c2Vj dXJpdHlRdWFscyA9PSBOSUwgJiYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9hdHRt YXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9hdHRtYXAuaAppbmRleCAzYWU0MGNhZGU3Li5kYzAy NzczODRmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvYXR0bWFwLmgKKysrIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL2F0dG1hcC5oCkBAIC00Miw5ICs0MiwxMSBAQCBleHRlcm4gdm9pZCBm cmVlX2F0dHJtYXAoQXR0ck1hcCAqbWFwKTsKIAogLyogQ29udmVyc2lvbiByb3V0aW5lcyB0byBi dWlsZCBtYXBwaW5ncyAqLwogZXh0ZXJuIEF0dHJNYXAgKmJ1aWxkX2F0dHJtYXBfYnlfbmFtZShU dXBsZURlc2MgaW5kZXNjLAotCQkJCQkJCQkJICBUdXBsZURlc2Mgb3V0ZGVzYyk7CisJCQkJCQkJ CQkgIFR1cGxlRGVzYyBvdXRkZXNjLAorCQkJCQkJCQkJICBib29sIG1pc3Npbmdfb2spOwogZXh0 ZXJuIEF0dHJNYXAgKmJ1aWxkX2F0dHJtYXBfYnlfbmFtZV9pZl9yZXEoVHVwbGVEZXNjIGluZGVz YywKLQkJCQkJCQkJCQkJIFR1cGxlRGVzYyBvdXRkZXNjKTsKKwkJCQkJCQkJCQkJIFR1cGxlRGVz YyBvdXRkZXNjLAorCQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBBdHRyTWFw ICpidWlsZF9hdHRybWFwX2J5X3Bvc2l0aW9uKFR1cGxlRGVzYyBpbmRlc2MsCiAJCQkJCQkJCQkJ ICBUdXBsZURlc2Mgb3V0ZGVzYywKIAkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKm1zZyk7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oIGIvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJuYWwuaAppbmRleCAzZGYxYzVhOTdjLi5hZjQw ZjIxNDk2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5h bC5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVybmFsLmgKQEAgLTkz LDcgKzkzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ29weUZyb21TdGF0ZURhdGEKIAlpbnQJCSAgICpk ZWZtYXA7CQkJLyogYXJyYXkgb2YgZGVmYXVsdCBhdHQgbnVtYmVycyAqLwogCUV4cHJTdGF0ZSAq KmRlZmV4cHJzOwkJLyogYXJyYXkgb2YgZGVmYXVsdCBhdHQgZXhwcmVzc2lvbnMgKi8KIAlib29s CQl2b2xhdGlsZV9kZWZleHByczsJLyogaXMgYW55IG9mIGRlZmV4cHJzIHZvbGF0aWxlPyAqLwot CUxpc3QJICAgKnJhbmdlX3RhYmxlOworCUxpc3QJICAgKnJhbmdlX3RhYmxlOwkvKiBzaW5nbGUg ZWxlbWVudCBsaXN0IG9mIFJhbmdlVGJsRW50cnkgKi8KKwlMaXN0CSAgICpyZWxwZXJtbGlzdDsJ Lyogc2luZ2xlIGVsZW1lbnQgbGlzdCBvZiBSZWxQZXJtaXNzaW9uSW5mbyAqLwogCUV4cHJTdGF0 ZSAgKnF1YWxleHByOwogCiAJVHJhbnNpdGlvbkNhcHR1cmVTdGF0ZSAqdHJhbnNpdGlvbl9jYXB0 dXJlOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggODI5MjViNGI2My4uNGRjZDdhNjA1MSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAorKysgYi9zcmMvaW5j bHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC04MCw3ICs4MCw3IEBAIGV4dGVybiBQR0RMTElN UE9SVCBFeGVjdXRvckZpbmlzaF9ob29rX3R5cGUgRXhlY3V0b3JGaW5pc2hfaG9vazsKIHR5cGVk ZWYgdm9pZCAoKkV4ZWN1dG9yRW5kX2hvb2tfdHlwZSkgKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKTsK IGV4dGVybiBQR0RMTElNUE9SVCBFeGVjdXRvckVuZF9ob29rX3R5cGUgRXhlY3V0b3JFbmRfaG9v azsKIAotLyogSG9vayBmb3IgcGx1Z2lucyB0byBnZXQgY29udHJvbCBpbiBFeGVjQ2hlY2tSVFBl cm1zKCkgKi8KKy8qIEhvb2sgZm9yIHBsdWdpbnMgdG8gZ2V0IGNvbnRyb2wgaW4gRXhlY0NoZWNr UGVybWlzc2lvbnMoKSAqLwogdHlwZWRlZiBib29sICgqRXhlY3V0b3JDaGVja1Blcm1zX2hvb2tf dHlwZSkgKExpc3QgKiwgYm9vbCk7CiBleHRlcm4gUEdETExJTVBPUlQgRXhlY3V0b3JDaGVja1Bl cm1zX2hvb2tfdHlwZSBFeGVjdXRvckNoZWNrUGVybXNfaG9vazsKIApAQCAtMTk2LDcgKzE5Niw4 IEBAIGV4dGVybiB2b2lkIHN0YW5kYXJkX0V4ZWN1dG9yRmluaXNoKFF1ZXJ5RGVzYyAqcXVlcnlE ZXNjKTsKIGV4dGVybiB2b2lkIEV4ZWN1dG9yRW5kKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKTsKIGV4 dGVybiB2b2lkIHN0YW5kYXJkX0V4ZWN1dG9yRW5kKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKTsKIGV4 dGVybiB2b2lkIEV4ZWN1dG9yUmV3aW5kKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKTsKLWV4dGVybiBi b29sIEV4ZWNDaGVja1JUUGVybXMoTGlzdCAqcmFuZ2VUYWJsZSwgYm9vbCBlcmVwb3J0X29uX3Zp b2xhdGlvbik7CitleHRlcm4gYm9vbCBFeGVjQ2hlY2tQZXJtaXNzaW9ucyhMaXN0ICpyZWxwZXJt bGlzdCwKKwkJCQkgYm9vbCBlcmVwb3J0X29uX3Zpb2xhdGlvbik7CiBleHRlcm4gdm9pZCBDaGVj a1ZhbGlkUmVzdWx0UmVsKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sIENtZFR5cGUgb3Bl cmF0aW9uKTsKIGV4dGVybiB2b2lkIEluaXRSZXN1bHRSZWxJbmZvKFJlc3VsdFJlbEluZm8gKnJl c3VsdFJlbEluZm8sCiAJCQkJCQkJICBSZWxhdGlvbiByZXN1bHRSZWxhdGlvbkRlc2MsCkBAIC02 MDAsNiArNjAxLDggQEAgZXh0ZXJuIFR1cGxlVGFibGVTbG90ICpFeGVjR2V0VHJpZ2dlck9sZFNs b3QoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbEkKIGV4dGVybiBUdXBsZVRhYmxl U2xvdCAqRXhlY0dldFRyaWdnZXJOZXdTbG90KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZv ICpyZWxJbmZvKTsKIGV4dGVybiBUdXBsZVRhYmxlU2xvdCAqRXhlY0dldFJldHVybmluZ1Nsb3Qo RVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbEluZm8pOwogZXh0ZXJuIFR1cGxlQ29u dmVyc2lvbk1hcCAqRXhlY0dldENoaWxkVG9Sb290TWFwKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJl bEluZm8pOworZXh0ZXJuIEF0dHJNYXAgKkV4ZWNHZXRSb290VG9DaGlsZE1hcChSZXN1bHRSZWxJ bmZvICpyZXN1bHRSZWxJbmZvLAorCQkJCQkgIEVTdGF0ZSAqZXN0YXRlKTsKIAogZXh0ZXJuIEJp dG1hcHNldCAqRXhlY0dldEluc2VydGVkQ29scyhSZXN1bHRSZWxJbmZvICpyZWxpbmZvLCBFU3Rh dGUgKmVzdGF0ZSk7CiBleHRlcm4gQml0bWFwc2V0ICpFeGVjR2V0VXBkYXRlZENvbHMoUmVzdWx0 UmVsSW5mbyAqcmVsaW5mbywgRVN0YXRlICplc3RhdGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRl eCA0NGRkNzNmYzgwLi5iMTM3MDljODU5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNTI4LDYg KzUyOCwxNCBAQCB0eXBlZGVmIHN0cnVjdCBSZXN1bHRSZWxJbmZvCiAJVHVwbGVDb252ZXJzaW9u TWFwICpyaV9DaGlsZFRvUm9vdE1hcDsKIAlib29sCQlyaV9DaGlsZFRvUm9vdE1hcFZhbGlkOwog CisJLyoKKwkgKiBNYXAgdXNlZCB0byBjb252ZXJ0ICJyb290IiB0YWJsZSBjb2x1bW4gYml0bWFw c2V0cyBpbnRvIHRoZSBvbmVzIHRoYXQKKwkgKiBkZXNjcmliZSBhIGdpdmVuIGNoaWxkIHRhYmxl J3MgY29sdW1uczsgc2VlIEV4ZWNHZXRJbnNlcnRlZENvbHMoKSBldAorCSAqIGFsLiAgTGlrZSBy aV9DaGlsZFRvUm9vdE1hcCwgY29tcHV0ZWQgb25seSBpZiBuZWVkZWQuCisJICovCisJQXR0ck1h cAkgICAqcmlfUm9vdFRvQ2hpbGRNYXA7CisJYm9vbAkJcmlfUm9vdFRvQ2hpbGRNYXBWYWxpZDsK KwogCS8qIGZvciB1c2UgYnkgY29weWZyb20uYyB3aGVuIHBlcmZvcm1pbmcgbXVsdGktaW5zZXJ0 cyAqLwogCXN0cnVjdCBDb3B5TXVsdGlJbnNlcnRCdWZmZXIgKnJpX0NvcHlNdWx0aUluc2VydEJ1 ZmZlcjsKIApAQCAtNTc1LDYgKzU4Myw3IEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0ZQogCQkJCQkJ CQkgKiBwb2ludGVycywgb3IgTlVMTCBpZiBub3QgeWV0IG9wZW5lZCAqLwogCXN0cnVjdCBFeGVj Um93TWFyayAqKmVzX3Jvd21hcmtzOwkvKiBBcnJheSBvZiBwZXItcmFuZ2UtdGFibGUtZW50cnkK IAkJCQkJCQkJCQkgKiBFeGVjUm93TWFya3MsIG9yIE5VTEwgaWYgbm9uZSAqLworCUxpc3QJICAg KmVzX3JlbHBlcm1saXN0OwkvKiBMaXN0IG9mIFJlbFBlcm1pc3Npb25JbmZvICovCiAJUGxhbm5l ZFN0bXQgKmVzX3BsYW5uZWRzdG10OwkvKiBsaW5rIHRvIHRvcCBvZiBwbGFuIHRyZWUgKi8KIAlj b25zdCBjaGFyICplc19zb3VyY2VUZXh0OwkvKiBTb3VyY2UgdGV4dCBmcm9tIFF1ZXJ5RGVzYyAq LwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvbm9kZXMuaAppbmRleCA1ZDA3NWYwYzM0Li5hNDIyOTU1NDYzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmgK QEAgLTkwLDYgKzkwLDcgQEAgdHlwZWRlZiBlbnVtIE5vZGVUYWcKIAkvKiB0aGVzZSBhcmVuJ3Qg c3ViY2xhc3NlcyBvZiBQbGFuOiAqLwogCVRfTmVzdExvb3BQYXJhbSwKIAlUX1BsYW5Sb3dNYXJr LAorCVRfUmVsUGVybWlzc2lvbkluZm8sCiAJVF9QYXJ0aXRpb25QcnVuZUluZm8sCiAJVF9QYXJ0 aXRpb25lZFJlbFBydW5lSW5mbywKIAlUX1BhcnRpdGlvblBydW5lU3RlcE9wLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCmluZGV4IDJmNjE4Y2IyMjkuLjExNTFkMzllOTYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKQEAgLTE0Nyw2ICsxNDcsOCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCUxpc3QJICAg KmN0ZUxpc3Q7CQkvKiBXSVRIIGxpc3QgKG9mIENvbW1vblRhYmxlRXhwcidzKSAqLwogCiAJTGlz dAkgICAqcnRhYmxlOwkJCS8qIGxpc3Qgb2YgcmFuZ2UgdGFibGUgZW50cmllcyAqLworCUxpc3QJ ICAgKnJlbHBlcm1saXN0OwkvKiBsaXN0IG9mIFJURVBlcm1pc3Npb25JbmZvIG5vZGVzIGZvcgor CQkJCQkJCQkgKiB0aGUgUlRFX1JFTEFUSU9OIGVudHJpZXMgaW4gcnRhYmxlICovCiAJRnJvbUV4 cHIgICAqam9pbnRyZWU7CQkvKiB0YWJsZSBqb2luIHRyZWUgKEZST00gYW5kIFdIRVJFIGNsYXVz ZXMpICovCiAKIAlMaXN0CSAgICp0YXJnZXRMaXN0OwkJLyogdGFyZ2V0IGxpc3QgKG9mIFRhcmdl dEVudHJ5KSAqLwpAQCAtOTQ5LDM3ICs5NTEsNiBAQCB0eXBlZGVmIHN0cnVjdCBQYXJ0aXRpb25D bWQKICAqCSAgY29udHJvbCB2aXNpYmlsaXR5LiAgQnV0IGl0IGlzIG5lZWRlZCBieSBydWxldXRp bHMuYyB0byBkZXRlcm1pbmUKICAqCSAgd2hldGhlciBSVEVzIHNob3VsZCBiZSBzaG93biBpbiBk ZWNvbXBpbGVkIHF1ZXJpZXMuCiAgKgotICoJICByZXF1aXJlZFBlcm1zIGFuZCBjaGVja0FzVXNl ciBzcGVjaWZ5IHJ1bi10aW1lIGFjY2VzcyBwZXJtaXNzaW9ucwotICoJICBjaGVja3MgdG8gYmUg cGVyZm9ybWVkIGF0IHF1ZXJ5IHN0YXJ0dXAuICBUaGUgdXNlciBtdXN0IGhhdmUgKmFsbCoKLSAq CSAgb2YgdGhlIHBlcm1pc3Npb25zIHRoYXQgYXJlIE9SJ2QgdG9nZXRoZXIgaW4gcmVxdWlyZWRQ ZXJtcyAoemVybwotICoJICBpbmRpY2F0ZXMgbm8gcGVybWlzc2lvbnMgY2hlY2tpbmcpLiAgSWYg Y2hlY2tBc1VzZXIgaXMgbm90IHplcm8sCi0gKgkgIHRoZW4gZG8gdGhlIHBlcm1pc3Npb25zIGNo ZWNrcyB1c2luZyB0aGUgYWNjZXNzIHJpZ2h0cyBvZiB0aGF0IHVzZXIsCi0gKgkgIG5vdCB0aGUg Y3VycmVudCBlZmZlY3RpdmUgdXNlciBJRC4gIChUaGlzIGFsbG93cyBydWxlcyB0byBhY3QgYXMK LSAqCSAgc2V0dWlkIGdhdGV3YXlzLikgIFBlcm1pc3Npb25zIGNoZWNrcyBvbmx5IGFwcGx5IHRv IFJFTEFUSU9OIFJURXMuCi0gKgotICoJICBGb3IgU0VMRUNUL0lOU0VSVC9VUERBVEUgcGVybWlz c2lvbnMsIGlmIHRoZSB1c2VyIGRvZXNuJ3QgaGF2ZQotICoJICB0YWJsZS13aWRlIHBlcm1pc3Np b25zIHRoZW4gaXQgaXMgc3VmZmljaWVudCB0byBoYXZlIHRoZSBwZXJtaXNzaW9ucwotICoJICBv biBhbGwgY29sdW1ucyBpZGVudGlmaWVkIGluIHNlbGVjdGVkQ29scyAoZm9yIFNFTEVDVCkgYW5k L29yCi0gKgkgIGluc2VydGVkQ29scyBhbmQvb3IgdXBkYXRlZENvbHMgKElOU0VSVCB3aXRoIE9O IENPTkZMSUNUIERPIFVQREFURSBtYXkKLSAqCSAgaGF2ZSBhbGwgMykuICBzZWxlY3RlZENvbHMs IGluc2VydGVkQ29scyBhbmQgdXBkYXRlZENvbHMgYXJlIGJpdG1hcHNldHMsCi0gKgkgIHdoaWNo IGNhbm5vdCBoYXZlIG5lZ2F0aXZlIGludGVnZXIgbWVtYmVycywgc28gd2Ugc3VidHJhY3QKLSAq CSAgRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlciBmcm9tIGNvbHVtbiBudW1iZXJz IGJlZm9yZSBzdG9yaW5nCi0gKgkgIHRoZW0gaW4gdGhlc2UgZmllbGRzLiAgQSB3aG9sZS1yb3cg VmFyIHJlZmVyZW5jZSBpcyByZXByZXNlbnRlZCBieQotICoJICBzZXR0aW5nIHRoZSBiaXQgZm9y IEludmFsaWRBdHRyTnVtYmVyLgotICoKLSAqCSAgdXBkYXRlZENvbHMgaXMgYWxzbyB1c2VkIGlu IHNvbWUgb3RoZXIgcGxhY2VzLCBmb3IgZXhhbXBsZSwgdG8gZGV0ZXJtaW5lCi0gKgkgIHdoaWNo IHRyaWdnZXJzIHRvIGZpcmUgYW5kIGluIEZEV3MgdG8ga25vdyB3aGljaCBjaGFuZ2VkIGNvbHVt bnMgdGhleQotICoJICBuZWVkIHRvIHNoaXAgb2ZmLgotICoKLSAqCSAgR2VuZXJhdGVkIGNvbHVt bnMgdGhhdCBhcmUgY2F1c2VkIHRvIGJlIHVwZGF0ZWQgYnkgYW4gdXBkYXRlIHRvIGEgYmFzZQot ICoJICBjb2x1bW4gYXJlIGxpc3RlZCBpbiBleHRyYVVwZGF0ZWRDb2xzLiAgVGhpcyBpcyBub3Qg Y29uc2lkZXJlZCBmb3IKLSAqCSAgcGVybWlzc2lvbiBjaGVja2luZywgYnV0IGl0IGlzIHVzZWZ1 bCBpbiB0aG9zZSBwbGFjZXMgdGhhdCB3YW50IHRvIGtub3cKLSAqCSAgdGhlIGZ1bGwgc2V0IG9m IGNvbHVtbnMgYmVpbmcgdXBkYXRlZCBhcyBvcHBvc2VkIHRvIG9ubHkgdGhlIG9uZXMgdGhlCi0g KgkgIHVzZXIgZXhwbGljaXRseSBtZW50aW9uZWQgaW4gdGhlIHF1ZXJ5LiAgKFRoZXJlIGlzIGN1 cnJlbnRseSBubyBuZWVkIGZvcgotICoJICBhbiBleHRyYUluc2VydGVkQ29scywgYnV0IGl0IGNv dWxkIGV4aXN0LikgIE5vdGUgdGhhdCBleHRyYVVwZGF0ZWRDb2xzCi0gKgkgIGlzIHBvcHVsYXRl ZCBkdXJpbmcgcXVlcnkgcmV3cml0ZSwgTk9UIGluIHRoZSBwYXJzZXIsIHNpbmNlIGdlbmVyYXRl ZAotICoJICBjb2x1bW5zIGNvdWxkIGJlIGFkZGVkIGFmdGVyIGEgcnVsZSBoYXMgYmVlbiBwYXJz ZWQgYW5kIHN0b3JlZC4KLSAqCiAgKgkgIHNlY3VyaXR5UXVhbHMgaXMgYSBsaXN0IG9mIHNlY3Vy aXR5IGJhcnJpZXIgcXVhbHMgKGJvb2xlYW4gZXhwcmVzc2lvbnMpLAogICoJICB0byBiZSB0ZXN0 ZWQgaW4gdGhlIGxpc3RlZCBvcmRlciBiZWZvcmUgcmV0dXJuaW5nIGEgcm93IGZyb20gdGhlCiAg KgkgIHJlbGF0aW9uLiAgSXQgaXMgYWx3YXlzIE5JTCBpbiBwYXJzZXIgb3V0cHV0LiAgRW50cmll cyBhcmUgYWRkZWQgYnkgdGhlCkBAIC0xMDMzLDExICsxMDA0LDE3IEBAIHR5cGVkZWYgc3RydWN0 IFJhbmdlVGJsRW50cnkKIAkgKiBjdXJyZW50IHF1ZXJ5OyB0aGlzIGhhcHBlbnMgaWYgYSBETyBB TFNPIHJ1bGUgc2ltcGx5IHNjYW5zIHRoZSBvcmlnaW5hbAogCSAqIHRhcmdldCB0YWJsZS4gIFdl IGxlYXZlIHN1Y2ggUlRFcyB3aXRoIHRoZWlyIG9yaWdpbmFsIGxvY2ttb2RlIHNvIGFzIHRvCiAJ ICogYXZvaWQgZ2V0dGluZyBhbiBhZGRpdGlvbmFsLCBsZXNzZXIgbG9jay4KKwkgKgorCSAqIHBl cm1pbmZvaW5kZXggaXMgMS1iYXNlZCBpbmRleCBvZiB0aGUgUmVsUGVybWlzc2lvbkluZm8gYmVs b25naW5nIHRvCisJICogdGhpcyBSVEUgKHNhbWUgcmVsaWQgaW4gYm90aCkgaW4gdGhlIHF1ZXJ5 J3MgbGlzdCBvZiBSZWxQZXJtaXNzaW9uSW5mb3M7CisJICogMCBpbiBub24tUkVMQVRJT04gUlRF cy4gIEl0J3Mgc2V0IHdoZW4gdGhlIFJURSBpcyBwYXNzZWQgdG8KKwkgKiBBZGRSZWxQZXJtaXNz aW9uSW5mbygpIHJpZ2h0IGFmdGVyIGl0cyBjcmVhdGlvbiBpbiB0aGUgcGFyc2VyLgogCSAqLwog CU9pZAkJCXJlbGlkOwkJCS8qIE9JRCBvZiB0aGUgcmVsYXRpb24gKi8KIAljaGFyCQlyZWxraW5k OwkJLyogcmVsYXRpb24ga2luZCAoc2VlIHBnX2NsYXNzLnJlbGtpbmQpICovCiAJaW50CQkJcmVs bG9ja21vZGU7CS8qIGxvY2sgbGV2ZWwgdGhhdCBxdWVyeSByZXF1aXJlcyBvbiB0aGUgcmVsICov CiAJc3RydWN0IFRhYmxlU2FtcGxlQ2xhdXNlICp0YWJsZXNhbXBsZTsJLyogc2FtcGxpbmcgaW5m bywgb3IgTlVMTCAqLworCUluZGV4CQlwZXJtaW5mb2luZGV4OwogCiAJLyoKIAkgKiBGaWVsZHMg dmFsaWQgZm9yIGEgc3VicXVlcnkgUlRFIChlbHNlIE5VTEwpOgpAQCAtMTE1NywxNCArMTEzNCw1 OCBAQCB0eXBlZGVmIHN0cnVjdCBSYW5nZVRibEVudHJ5CiAJYm9vbAkJbGF0ZXJhbDsJCS8qIHN1 YnF1ZXJ5LCBmdW5jdGlvbiwgb3IgdmFsdWVzIGlzIExBVEVSQUw/ICovCiAJYm9vbAkJaW5oOwkJ CS8qIGluaGVyaXRhbmNlIHJlcXVlc3RlZD8gKi8KIAlib29sCQlpbkZyb21DbDsJCS8qIHByZXNl bnQgaW4gRlJPTSBjbGF1c2U/ICovCisJTGlzdAkgICAqc2VjdXJpdHlRdWFsczsJLyogc2VjdXJp dHkgYmFycmllciBxdWFscyB0byBhcHBseSwgaWYgYW55ICovCit9IFJhbmdlVGJsRW50cnk7CisK Ky8qCisgKiBSZWxQZXJtaXNzaW9uSW5mbworICogCQlQZXItcmVsYXRpb24gaW5mb3JtYXRpb24g Zm9yIHBlcm1pc3Npb24gY2hlY2tpbmcuIEFkZGVkIHRvIHRoZSBxdWVyeQorICogCQlieSB0aGUg cGFyc2VyIHdoZW4gcG9wdWxhdGluZyB0aGUgcXVlcnkgcmFuZ2UgdGFibGUgYW5kIHN1YnNlcXVl bnRseQorICogCQllZGl0b3JpYWxpemVkIG9uIGJ5IHRoZSByZXdyaXRlciBhbmQgdGhlIHBsYW5u ZXIuICBUaGVyZSBpcyBhbiBlbnRyeQorICogCQllYWNoIGZvciBhbGwgUlRFX1JFTEFUSU9OIGVu dHJpZXMgcHJlc2VudCBpbiB0aGUgcmFuZ2UgdGFibGUuCisgKgorICogcmVxdWlyZWRQZXJtcyBh bmQgY2hlY2tBc1VzZXIgc3BlY2lmeSBydW4tdGltZSBhY2Nlc3MgcGVybWlzc2lvbnMgY2hlY2tz CisgKiB0byBiZSBwZXJmb3JtZWQgYXQgcXVlcnkgc3RhcnR1cC4gIFRoZSB1c2VyIG11c3QgaGF2 ZSAqYWxsKiBvZiB0aGUKKyAqIHBlcm1pc3Npb25zIHRoYXQgYXJlIE9SJ2QgdG9nZXRoZXIgaW4g cmVxdWlyZWRQZXJtcyAobmV2ZXIgMCEpLiAgSWYKKyAqIGNoZWNrQXNVc2VyIGlzIG5vdCB6ZXJv LCB0aGVuIGRvIHRoZSBwZXJtaXNzaW9ucyBjaGVja3MgdXNpbmcgdGhlIGFjY2VzcworICogcmln aHRzIG9mIHRoYXQgdXNlciwgbm90IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSB1c2VyIElELiAgKFRo aXMgYWxsb3dzIHJ1bGVzCisgKiB0byBhY3QgYXMgc2V0dWlkIGdhdGV3YXlzLikKKyAqCisgKiBG b3IgU0VMRUNUL0lOU0VSVC9VUERBVEUgcGVybWlzc2lvbnMsIGlmIHRoZSB1c2VyIGRvZXNuJ3Qg aGF2ZSB0YWJsZS13aWRlCisgKiBwZXJtaXNzaW9ucyB0aGVuIGl0IGlzIHN1ZmZpY2llbnQgdG8g aGF2ZSB0aGUgcGVybWlzc2lvbnMgb24gYWxsIGNvbHVtbnMKKyAqIGlkZW50aWZpZWQgaW4gc2Vs ZWN0ZWRDb2xzIChmb3IgU0VMRUNUKSBhbmQvb3IgaW5zZXJ0ZWRDb2xzIGFuZC9vcgorICogdXBk YXRlZENvbHMgKElOU0VSVCB3aXRoIE9OIENPTkZMSUNUIERPIFVQREFURSBtYXkgaGF2ZSBhbGwg MykuCisgKiBzZWxlY3RlZENvbHMsIGluc2VydGVkQ29scyBhbmQgdXBkYXRlZENvbHMgYXJlIGJp dG1hcHNldHMsIHdoaWNoIGNhbm5vdCBoYXZlCisgKiBuZWdhdGl2ZSBpbnRlZ2VyIG1lbWJlcnMs IHNvIHdlIHN1YnRyYWN0IEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIKKyAqIGZy b20gY29sdW1uIG51bWJlcnMgYmVmb3JlIHN0b3JpbmcgdGhlbSBpbiB0aGVzZSBmaWVsZHMuICBB IHdob2xlLXJvdyBWYXIKKyAqIHJlZmVyZW5jZSBpcyByZXByZXNlbnRlZCBieSBzZXR0aW5nIHRo ZSBiaXQgZm9yIEludmFsaWRBdHRyTnVtYmVyLgorICoKKyAqIHVwZGF0ZWRDb2xzIGlzIGFsc28g dXNlZCBpbiBzb21lIG90aGVyIHBsYWNlcywgZm9yIGV4YW1wbGUsIHRvIGRldGVybWluZQorICog d2hpY2ggdHJpZ2dlcnMgdG8gZmlyZSBhbmQgaW4gRkRXcyB0byBrbm93IHdoaWNoIGNoYW5nZWQg Y29sdW1ucyB0aGUgbmVlZAorICogdG8gc2hpcCBvZmYuCisgKgorICogR2VuZXJhdGVkIGNvbHVt bnMgdGhhdCBhcmUgY2F1c2VkIHRvIGJlIHVwZGF0ZWQgYnkgYW4gdXBkYXRlIHRvIGEgYmFzZQor ICogY29sdW1uIGFyZSBsaXN0ZWQgaW4gZXh0cmFVcGRhdGVkQ29scy4gIFRoaXMgaXMgbm90IGNv bnNpZGVyZWQgZm9yCisgKiBwZXJtaXNzaW9uIGNoZWNraW5nLCBidXQgaXQgaXMgdXNlZnVsIGlu IHRob3NlIHBsYWNlcyB0aGF0IHdhbnQgdG8ga25vdyB0aGUKKyAqIGZ1bGwgc2V0IG9mIGNvbHVt bnMgYmVpbmcgdXBkYXRlZCBhcyBvcHBvc2VkIHRvIG9ubHkgdGhlIG9uZXMgdGhlIHVzZXIKKyAq IGV4cGxpY2l0bHkgbWVudGlvbmVkIGluIHRoZSBxdWVyeS4gIChUaGVyZSBpcyBjdXJyZW50bHkg bm8gbmVlZCBmb3IgYW4KKyAqIGV4dHJhSW5zZXJ0ZWRDb2xzLCBidXQgaXQgY291bGQgZXhpc3Qu KSAgTm90ZSB0aGF0IGV4dHJhVXBkYXRlZENvbHMgaXMKKyAqIHBvcHVsYXRlZCBkdXJpbmcgcXVl cnkgcmV3cml0ZSwgTk9UIGluIHRoZSBwYXJzZXIsIHNpbmNlIGdlbmVyYXRlZCBjb2x1bW5zCisg KiBjb3VsZCBiZSBhZGRlZCBhZnRlciBhIHJ1bGUgaGFzIGJlZW4gcGFyc2VkIGFuZCBzdG9yZWQu CisgKi8KK3R5cGVkZWYgc3RydWN0IFJlbFBlcm1pc3Npb25JbmZvCit7CisJTm9kZVRhZwkJdHlw ZTsKKworCU9pZAkJCXJlbGlkOwkJCS8qIE9JRCBvZiB0aGUgcmVsYXRpb24gKi8KKwlib29sCQlp bmg7CQkJLyogdHJ1ZSBpZiBpbmhlcml0YW5jZSBjaGlsZHJlbiBtYXkgZXhpc3QgKi8KIAlBY2xN b2RlCQlyZXF1aXJlZFBlcm1zOwkvKiBiaXRtYXNrIG9mIHJlcXVpcmVkIGFjY2VzcyBwZXJtaXNz aW9ucyAqLwogCU9pZAkJCWNoZWNrQXNVc2VyOwkvKiBpZiB2YWxpZCwgY2hlY2sgYWNjZXNzIGFz IHRoaXMgcm9sZSAqLwogCUJpdG1hcHNldCAgKnNlbGVjdGVkQ29sczsJLyogY29sdW1ucyBuZWVk aW5nIFNFTEVDVCBwZXJtaXNzaW9uICovCiAJQml0bWFwc2V0ICAqaW5zZXJ0ZWRDb2xzOwkvKiBj b2x1bW5zIG5lZWRpbmcgSU5TRVJUIHBlcm1pc3Npb24gKi8KIAlCaXRtYXBzZXQgICp1cGRhdGVk Q29sczsJLyogY29sdW1ucyBuZWVkaW5nIFVQREFURSBwZXJtaXNzaW9uICovCiAJQml0bWFwc2V0 ICAqZXh0cmFVcGRhdGVkQ29sczsJLyogZ2VuZXJhdGVkIGNvbHVtbnMgYmVpbmcgdXBkYXRlZCAq LwotCUxpc3QJICAgKnNlY3VyaXR5UXVhbHM7CS8qIHNlY3VyaXR5IGJhcnJpZXIgcXVhbHMgdG8g YXBwbHksIGlmIGFueSAqLwotfSBSYW5nZVRibEVudHJ5OworfSBSZWxQZXJtaXNzaW9uSW5mbzsK IAogLyoKICAqIFJhbmdlVGJsRnVuY3Rpb24gLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAppbmRleCAxZjM4 NDViM2ZlLi40YjhjZTQxNWExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApAQCAtMTAxLDYgKzEwMSw4 IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZXJHbG9iYWwKIAogCUxpc3QJICAgKmZpbmFscnRhYmxl OwkvKiAiZmxhdCIgcmFuZ2V0YWJsZSBmb3IgZXhlY3V0b3IgKi8KIAorCUxpc3QJICAgKmZpbmFs cmVscGVybWxpc3Q7CS8qICJmbGF0IGxpc3Qgb2YgUmVsUGVybWlzc2lvbkluZm8gIiovCisKIAlM aXN0CSAgICpmaW5hbHJvd21hcmtzOwkvKiAiZmxhdCIgbGlzdCBvZiBQbGFuUm93TWFya3MgKi8K IAogCUxpc3QJICAgKnJlc3VsdFJlbGF0aW9uczsJLyogImZsYXQiIGxpc3Qgb2YgaW50ZWdlciBS VCBpbmRleGVzICovCkBAIC03MzAsNyArNzMyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUmVsT3B0SW5m bwogCiAJLyogSW5mb3JtYXRpb24gYWJvdXQgZm9yZWlnbiB0YWJsZXMgYW5kIGZvcmVpZ24gam9p bnMgKi8KIAlPaWQJCQlzZXJ2ZXJpZDsJCS8qIGlkZW50aWZpZXMgc2VydmVyIGZvciB0aGUgdGFi bGUgb3Igam9pbiAqLwotCU9pZAkJCXVzZXJpZDsJCQkvKiBpZGVudGlmaWVzIHVzZXIgdG8gY2hl Y2sgYWNjZXNzIGFzICovCisJT2lkCQkJdXNlcmlkOwkJCS8qIGlkZW50aWZpZXMgdXNlciB0byBj aGVjayBhY2Nlc3MgYXM7IHNldAorCQkJCQkJCQkgKiBpbiBub24tZm9yZWlnbiB0YWJsZSByZWxh dGlvbnMgdG9vISAqLwogCWJvb2wJCXVzZXJpZGlzY3VycmVudDsJLyogam9pbiBpcyBvbmx5IHZh bGlkIGZvciBjdXJyZW50IHVzZXIgKi8KIAkvKiB1c2UgInN0cnVjdCBGZHdSb3V0aW5lIiB0byBh dm9pZCBpbmNsdWRpbmcgZmR3YXBpLmggaGVyZSAqLwogCXN0cnVjdCBGZHdSb3V0aW5lICpmZHdy b3V0aW5lOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCAwYjUxOGNlNmIyLi4wYWJjOTkzMzY5IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgImxpYi9zdHJp bmdpbmZvLmgiCiAjaW5jbHVkZSAibm9kZXMvYml0bWFwc2V0LmgiCiAjaW5jbHVkZSAibm9kZXMv bG9ja29wdGlvbnMuaCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAjaW5jbHVkZSAi bm9kZXMvcHJpbW5vZGVzLmgiCiAKIApAQCAtNjUsNiArNjYsOSBAQCB0eXBlZGVmIHN0cnVjdCBQ bGFubmVkU3RtdAogCiAJTGlzdAkgICAqcnRhYmxlOwkJCS8qIGxpc3Qgb2YgUmFuZ2VUYmxFbnRy eSBub2RlcyAqLwogCisJTGlzdAkgICAqcmVscGVybWxpc3Q7CS8qIGxpc3Qgb2YgUmVsUGVybWlz c2lvbkluZm8gbm9kZXMgZm9yCisJCQkJCQkJCSAqIHRoZSBSVEVfUkVMQVRJT04gZW50cmllcyBp biBydGFibGUgKi8KKwogCS8qIHJ0YWJsZSBpbmRleGVzIG9mIHRhcmdldCByZWxhdGlvbnMgZm9y IElOU0VSVC9VUERBVEUvREVMRVRFICovCiAJTGlzdAkgICAqcmVzdWx0UmVsYXRpb25zOwkvKiBp bnRlZ2VyIGxpc3Qgb2YgUlQgaW5kZXhlcywgb3IgTklMICovCiAKQEAgLTY1MSw2ICs2NTUsNyBA QCB0eXBlZGVmIHN0cnVjdCBGb3JlaWduU2NhbgogCVNjYW4JCXNjYW47CiAJQ21kVHlwZQkJb3Bl cmF0aW9uOwkJLyogU0VMRUNUL0lOU0VSVC9VUERBVEUvREVMRVRFICovCiAJSW5kZXgJCXJlc3Vs dFJlbGF0aW9uOyAvKiBkaXJlY3QgbW9kaWZpY2F0aW9uIHRhcmdldCdzIFJUIGluZGV4ICovCisJ T2lkCQkJY2hlY2tBc1VzZXI7CS8qIGNvcHkgb2YgUmVsT3B0SW5mby51c2VyaWQgKi8KIAlPaWQJ CQlmc19zZXJ2ZXI7CQkvKiBPSUQgb2YgZm9yZWlnbiBzZXJ2ZXIgKi8KIAlMaXN0CSAgICpmZHdf ZXhwcnM7CQkvKiBleHByZXNzaW9ucyB0aGF0IEZEVyBtYXkgZXZhbHVhdGUgKi8KIAlMaXN0CSAg ICpmZHdfcHJpdmF0ZTsJLyogcHJpdmF0ZSBkYXRhIGZvciBGRFcgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL29wdGltaXplci9pbmhlcml0LmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvaW5o ZXJpdC5oCmluZGV4IGFkY2IxZDczNzIuLjlhNGY4NjkyMGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL29wdGltaXplci9pbmhlcml0LmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL2luaGVy aXQuaApAQCAtMjMsNSArMjMsNiBAQCBleHRlcm4gdm9pZCBleHBhbmRfaW5oZXJpdGVkX3J0ZW50 cnkoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKIGV4dGVybiBib29sIGFwcGx5 X2NoaWxkX2Jhc2VxdWFscyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcGFyZW50cmVs LAogCQkJCQkJCQkgIFJlbE9wdEluZm8gKmNoaWxkcmVsLCBSYW5nZVRibEVudHJ5ICpjaGlsZFJU RSwKIAkJCQkJCQkJICBBcHBlbmRSZWxJbmZvICphcHBpbmZvKTsKK2V4dGVybiBCaXRtYXBzZXQg KkdldFJlbEFsbFVwZGF0ZWRDb2xzKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwp OwogCiAjZW5kaWYJCQkJCQkJLyogSU5IRVJJVF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGxhbm5lci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5uZXIuaApp bmRleCBlYjk2YjJjZmMxLi42YjYxMmNjMzdlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGxhbm5lci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubmVyLmgKQEAg LTU4LDQgKzU4LDUgQEAgZXh0ZXJuIFBhdGggKmdldF9jaGVhcGVzdF9mcmFjdGlvbmFsX3BhdGgo UmVsT3B0SW5mbyAqcmVsLAogCiBleHRlcm4gRXhwciAqcHJlcHJvY2Vzc19waHZfZXhwcmVzc2lv bihQbGFubmVySW5mbyAqcm9vdCwgRXhwciAqZXhwcik7CiAKKwogI2VuZGlmCQkJCQkJCS8qIFBM QU5ORVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBi L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggOGM4NTlkMGQwZS4uMzRmMTAx MDc3YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC0xODAsNiArMTgwLDggQEAgc3RydWN0 IFBhcnNlU3RhdGUKIAlQYXJzZVN0YXRlICpwYXJlbnRQYXJzZVN0YXRlOwkvKiBzdGFjayBsaW5r ICovCiAJY29uc3QgY2hhciAqcF9zb3VyY2V0ZXh0OwkvKiBzb3VyY2UgdGV4dCwgb3IgTlVMTCBp ZiBub3QgYXZhaWxhYmxlICovCiAJTGlzdAkgICAqcF9ydGFibGU7CQkvKiByYW5nZSB0YWJsZSBz byBmYXIgKi8KKwlMaXN0CSAgICpwX3JlbHBlcm1saXN0OwkvKiBsaXN0IG9mIFJlbFBlcm1pc3Np b25JbmZvIG5vZGVzIGZvcgorCQkJCQkJCQkJICogdGhlIFJURV9SRUxBVElPTiBlbnRyaWVzIGlu IHJ0YWJsZSAqLwogCUxpc3QJICAgKnBfam9pbmV4cHJzOwkvKiBKb2luRXhwcnMgZm9yIFJURV9K T0lOIHBfcnRhYmxlIGVudHJpZXMgKi8KIAlMaXN0CSAgICpwX2pvaW5saXN0OwkJLyogam9pbiBp dGVtcyBzbyBmYXIgKHdpbGwgYmVjb21lIEZyb21FeHByCiAJCQkJCQkJCSAqIG5vZGUncyBmcm9t bGlzdCkgKi8KQEAgLTIzMyw3ICsyMzUsOCBAQCBzdHJ1Y3QgUGFyc2VTdGF0ZQogICogam9pbidz IGZpcnN0IE4gY29sdW1ucywgdGhlIG5ldCBlZmZlY3QgaXMganVzdCB0aGF0IHdlIGV4cG9zZSBv bmx5IHRob3NlCiAgKiBqb2luIGNvbHVtbnMgdmlhIHRoaXMgbnNpdGVtLikKICAqCi0gKiBwX3J0 ZSBhbmQgcF9ydGluZGV4IGxpbmsgdG8gdGhlIHVuZGVybHlpbmcgcmFuZ2V0YWJsZSBlbnRyeS4K KyAqIHBfcnRlIGFuZCBwX3J0aW5kZXggbGluayB0byB0aGUgdW5kZXJseWluZyByYW5nZXRhYmxl IGVudHJ5LCBhbmQKKyAqIHBfcGVybWluZm8gdG8gdGhlIGVudHJ5IGluIHJlbHBlcm1saXN0Lgog ICoKICAqIFRoZSBwX25zY29sdW1ucyBhcnJheSBjb250YWlucyBpbmZvIHNob3dpbmcgaG93IHRv IGNvbnN0cnVjdCBWYXJzCiAgKiByZWZlcmVuY2luZyB0aGUgbmFtZXMgYXBwZWFyaW5nIGluIHRo ZSBwX25hbWVzLT5jb2xuYW1lcyBsaXN0LgpAQCAtMjY3LDYgKzI3MCw3IEBAIHN0cnVjdCBQYXJz ZU5hbWVzcGFjZUl0ZW0KIAlBbGlhcwkgICAqcF9uYW1lczsJCS8qIFRhYmxlIGFuZCBjb2x1bW4g bmFtZXMgKi8KIAlSYW5nZVRibEVudHJ5ICpwX3J0ZTsJCS8qIFRoZSByZWxhdGlvbidzIHJhbmdl dGFibGUgZW50cnkgKi8KIAlpbnQJCQlwX3J0aW5kZXg7CQkvKiBUaGUgcmVsYXRpb24ncyBpbmRl eCBpbiB0aGUgcmFuZ2V0YWJsZSAqLworCVJlbFBlcm1pc3Npb25JbmZvICpwX3Blcm1pbmZvOwkv KiBUaGUgcmVsYXRpb24ncyBwZXJtaXNzaW9ucyBlbnRyeSAqLwogCS8qIGFycmF5IG9mIHNhbWUg bGVuZ3RoIGFzIHBfbmFtZXMtPmNvbG5hbWVzOiAqLwogCVBhcnNlTmFtZXNwYWNlQ29sdW1uICpw X25zY29sdW1uczsJLyogcGVyLWNvbHVtbiBkYXRhICovCiAJYm9vbAkJcF9yZWxfdmlzaWJsZTsJ LyogUmVsYXRpb24gbmFtZSBpcyB2aXNpYmxlPyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRp b24uaAppbmRleCAwNmRjMjc5OTViLi42MTY4NTEyYjk5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf cmVsYXRpb24uaApAQCAtMTE5LDUgKzExOSw4IEBAIGV4dGVybiBjb25zdCBOYW1lRGF0YSAqYXR0 bnVtQXR0TmFtZShSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBPaWQJYXR0bnVtVHlw ZUlkKFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwogZXh0ZXJuIE9pZAlhdHRudW1Db2xsYXRpb25J ZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBib29sIGlzUXVlcnlVc2luZ1RlbXBS ZWxhdGlvbihRdWVyeSAqcXVlcnkpOworZXh0ZXJuIFJlbFBlcm1pc3Npb25JbmZvICpBZGRSZWxQ ZXJtaXNzaW9uSW5mbyhMaXN0ICoqcmVscGVybWxpc3QsIFJhbmdlVGJsRW50cnkgKnJ0ZSk7Citl eHRlcm4gdm9pZCBNZXJnZVJlbFBlcm1pc3Npb25JbmZvcyhRdWVyeSAqZGVzdF9xdWVyeSwgTGlz dCAqc3JjX3JlbHBlcm1saXN0KTsKK2V4dGVybiBSZWxQZXJtaXNzaW9uSW5mbyAqR2V0UmVsUGVy bWlzc2lvbkluZm8oTGlzdCAqcmVscGVybWxpc3QsIFJhbmdlVGJsRW50cnkgKnJ0ZSwgYm9vbCBt aXNzaW5nX29rKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX1JFTEFUSU9OX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCBiL3NyYy9pbmNsdWRl L3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaAppbmRleCA5MGVjZjEwOWFmLi5mMjE3ODZkYTM1IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgKKysrIGIvc3Jj L2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oCkBAIC0yNCw3ICsyNCw3IEBAIGV4dGVy biB2b2lkIEFjcXVpcmVSZXdyaXRlTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwKIAogZXh0ZXJuIE5v ZGUgKmJ1aWxkX2NvbHVtbl9kZWZhdWx0KFJlbGF0aW9uIHJlbCwgaW50IGF0dHJubyk7CiAKLWV4 dGVybiB2b2lkIGZpbGxfZXh0cmFVcGRhdGVkQ29scyhSYW5nZVRibEVudHJ5ICp0YXJnZXRfcnRl LAorZXh0ZXJuIHZvaWQgZmlsbF9leHRyYVVwZGF0ZWRDb2xzKFJlbFBlcm1pc3Npb25JbmZvICp0 YXJnZXRfcGVybWluZm8sCiAJCQkJCQkJCSAgUmVsYXRpb24gdGFyZ2V0X3JlbGF0aW9uKTsKIAog ZXh0ZXJuIFF1ZXJ5ICpnZXRfdmlld19xdWVyeShSZWxhdGlvbiB2aWV3KTsKLS0gCjIuMjQuMQoK --00000000000022b4d005dadd53b0--