Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ti4bj-00AtCM-VH for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Feb 2025 04:44:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ti4bh-0041Av-Ah for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Feb 2025 04:44:18 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ti4bg-0041Al-Co for pgsql-hackers@lists.postgresql.org; Wed, 12 Feb 2025 04:44:17 +0000 Received: from mail-yw1-x1134.google.com ([2607:f8b0:4864:20::1134]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ti4bU-000Ncz-3C for pgsql-hackers@lists.postgresql.org; Wed, 12 Feb 2025 04:44:16 +0000 Received: by mail-yw1-x1134.google.com with SMTP id 00721157ae682-6f9e78593b8so4242087b3.1 for ; Tue, 11 Feb 2025 20:44:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739335443; x=1739940243; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=rJGNWcuyr9971wjhb8XKBMiLsu/uEcl5IbEyQ9AyUto=; b=mcj5a6aPoIL4vbwsQcm5WuKIPC5CaT/m51EJBrgXtwJKCWRf8ntyALrAPqgpY6fjV0 p3ZpzOcNq4zuNxvEQYVVvI83bfZFziTFbWhvrbzb4bF1wYncsLD0d+/omXpzcj2t82qm ubTBZ8zSWRXb6WIjeDZSkIJIRmi1IJLSwtNZ8jzpjXoYbJhoZWkht7aUQep85BBLKVpB 3CyVDzKuu2STUS4qxOkUD/fWOQn5YUy22Yx4WlBtZHBWbI1lruZwSIylKvrPWJ6DTKTJ inbmOjJ2DwrHbRsSdBts2RinipLrmxK1VZbvLEczYVC2WpFVeEWB7AeDHcTLOzYR76F2 L1dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739335443; x=1739940243; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=rJGNWcuyr9971wjhb8XKBMiLsu/uEcl5IbEyQ9AyUto=; b=HlgTNLTcw2Nb3QhpCm9PLpW5sChD1UPPi3DWkfo7ekp+GM4/2Eyr/Kd0UmeNBtX5h3 EvL9F1QK3ahbUB5VeyYxjVfZ4JB85kzwCvXLKdIewoYpPh+JOs8+x0VFiCwVtuCB9vpv WlR95E1VD5D/uvqDDF6BRIqxsnH58Gm2rWRF5nO9uyKHLJf+sj+EzhsRTnOy8q5+oUgV BKK5OmC4MDGoSf4qWnWn4g/UKEFJGGHWmmyZfcdvTDkEMStGSvJTmHN5RuGudrCYEry3 mNnMQykmCXiDiQoZT+AD/s56VmpXdvMbTNNkSq9fR0QU15fzJfdMTi1w/Gw5twh+j9Ta +5MQ== X-Forwarded-Encrypted: i=1; AJvYcCV+8DoN+OtwHwc5/mPUj7hkvgTD4W12GapXU5k/2fXYjct6QYijrm0i0P2ZCHJcGb9ncu9x09XQ7eD54ROY@lists.postgresql.org X-Gm-Message-State: AOJu0YwddaT/YNOY6iA1AgHFoo78BRPe9J6xqHk4sMpF+8gy48/sHa+s 8oq7cKDE9bNNVlwG53D9KCgLbaNLHFgF5kk6obP2U7iynKf9GQ51KlG9+KDq/MAA/vZUq1bvxJ5 R+Ljl3/7wf5oau3gCrh06LrwwA84= X-Gm-Gg: ASbGnctp89qtlLZ6IzyX+r5c3+eT3rAfSBHKJukYjed4lyEM8tM9uzcRbUmTMQOwsqf 6VfRhdYCZUxqPgVckW30oXva8+wBu0NX8AmOFI1U+Iq9id5BzXe0hUaySg/40O/Ud9SXkIYxVEt 7RCGEhmeSWKiLsteWvg53DRKEbXFhkCA== X-Google-Smtp-Source: AGHT+IHnMmMl7IgLgaGGI0d46b8WH16OF0hGwG/Nr9HEO7N0XfYvFK3LaA+qVX54eAAmxuTP9iI+3qUxkqLUUaHzYFA= X-Received: by 2002:a05:690c:6386:b0:6ee:40f0:ddc9 with SMTP id 00721157ae682-6fb213e183amr15102827b3.12.1739335442963; Tue, 11 Feb 2025 20:44:02 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Wed, 12 Feb 2025 05:43:24 +0100 X-Gm-Features: AWEUYZnLuJiPlwA_XPLhcgKBM-aYu2V1IXZiIxdsn4KhunUhpEFhPW8KgsQqdWo Message-ID: Subject: Re: Re: proposal: schema variables To: jian he Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000003a1a3c062dea97c0" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003a1a3c062dea97c0 Content-Type: multipart/alternative; boundary="0000000000003a1a39062dea97be" --0000000000003a1a39062dea97be Content-Type: text/plain; charset="UTF-8" Hi rebase after a654af21ae522cc8e867e052defd16f76ffaef2e Regards Pavel --0000000000003a1a39062dea97be Content-Type: text/html; charset="UTF-8"
Hi

rebase after a654af21ae522cc8e867e052defd16f76ffaef2e

Regards

Pavel
--0000000000003a1a39062dea97be-- --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20250212-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr0d2 RnJvbSA1ZWViOGRmN2JkNGQ3ZjIyMWU5OTk0NWY0MzI0MDYyMDNmOTc4OGVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMDozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjAvMjJdIHRoaXMgcGF0Y2ggY2hhbmdlcyBlcnJvciBtZXNzYWdlICJjb2x1bW4gZG9lc24ndCBl eGlzdCIKIHRvIG1lc3NhZ2UgImNvbHVtbiBvciB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0IgoKVGhl IGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBtb3JlIGNvcnJlY3QuIFRvZGF5LCBtaXNzaW5nIFBML3Bn U1FMIHZhcmlhYmxlIGNhbiBiZSByZXBvcnRlZC4gVGhlIGNoYW5nZSBoYXMKaW1wYWN0IG9uIGxv dCBvZiByZWdyZXNzIHRlc3RzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLCBhbmQgdGhlbiBpdCBpcyBkaXN0cmlidXRlZCBhcyBzZXBhcmF0ZSBwYXRjaAotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA1ICsrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgMjUgKysrKysrKysr KysrLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAgICAgICAgfCAg OCArKystLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwg IDQgKysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQgfCAg MiArLQogLi4uL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dCAgIHwgIDQg Ky0tCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMiAr LQogc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dCAgICAgICAgIHwgMTIgKysr LS0tLQogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQg Ky0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAzMiAr KysrKysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAg ICAgICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0ICAg ICAgICAgIHwgIDggKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICAg ICAgICAgICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNl Lm91dCAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3ku b3V0ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dCAg ICAgICAgIHwgMTIgKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAg ICAgICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAg ICAgICAgICB8ICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgICAgfCAgNiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5v dXQgICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0ICAgICAg ICAgICB8ICAyICstCiAyMSBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA2NSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA1ZGRkM2ViYmFmOC4uZDkyMGFm ZDk3Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTE1LDcgKzExNSw2IEBAIHN0YXRp YyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAog c3RhdGljIE5vZGUgKm1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xs aWQsCiAJCQkJCQkJCQkgIGNoYXIgKmF0dHJuYW1lLCBib29sIGZlbmNlZCwgaW50IGxvY2F0aW9u KTsKLXN0YXRpYyBib29sIHNlc3Npb25fdmFyaWFibGVzX2FyZV92aXNpYmxlKFBhcnNlU3RhdGUg KnBzdGF0ZSk7CiAKIAogLyoKQEAgLTUyNyw3ICs1MjYsNyBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHByaW50ZWQuICBX aGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGNhbm5v dCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3IgbWVzc2FnZS4K ICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJs ZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQgPSBmYWxzZTsK QEAgLTEyMzUsNyArMTIzNCw3IEBAIHRyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBWYXJpYWJsZUZlbmNlICp2ZikKIH0KIAogLyogcmV0dXJucyB0cnVlLCB3aGVuIHNl c3Npb24gdmFyaWFibGVzIGFyZSB2aXNpYmxlIHdpdGhvdXQgdmFyaWFibGUgZmVuY2UgKi8KLXN0 YXRpYyBib29sCitib29sCiBzZXNzaW9uX3ZhcmlhYmxlc19hcmVfdmlzaWJsZShQYXJzZVN0YXRl ICpwc3RhdGUpCiB7CiAJc3dpdGNoIChzZXNzaW9uX3ZhcmlhYmxlc192aXNpYmlsaXR5KQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCBiZWM2OTQ3ZWEyZC4uYmUxNDhmNjJjNDAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j bHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX2Vuci5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHBy LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCkBAIC0zNzYxLDYg KzM3NjIsMjAgQEAgZXJyb3JNaXNzaW5nUlRFKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VWYXIg KnJlbGF0aW9uKQogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCByZWxhdGlvbi0+bG9j YXRpb24pKSk7CiB9CiAKKy8qCisgKiBzZXQgbWVzc2FnZSAiY29sdW1uIGRvZXMgbm90IGV4aXN0 IiBvciAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IgorICogaW4gZGVwZW5kZW5j eSBpZiBleHByZXNzaW9uIGNvbnRleHQgYWxsb3dzIHNlc3Npb24gdmFyaWFibGVzLgorICovCitz dGF0aWMgaW50Citjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKFBhcnNlU3RhdGUg KnBzdGF0ZSwgY29uc3QgY2hhciAqY29sbmFtZSkKK3sKKwlpZiAoZXhwcl9raW5kX2FsbG93c19z ZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSAmJgorCQlzZXNzaW9uX3Zhcmlh Ymxlc19hcmVfdmlzaWJsZShwc3RhdGUpKQorCQlyZXR1cm4gZXJybXNnKCJjb2x1bW4gb3IgdmFy aWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSk7CisJZWxzZQorCQlyZXR1cm4g ZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSk7Cit9CisKIC8q CiAgKiBHZW5lcmF0ZSBhIHN1aXRhYmxlIGVycm9yIGFib3V0IGEgbWlzc2luZyBjb2x1bW4uCiAg KgpAQCAtMzc5NSw3ICszODEwLDcgQEAgZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkJIHJl bG5hbWUgPwogCQkJCQkgZXJybXNnKCJjb2x1bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxu YW1lLCBjb2xuYW1lKSA6Ci0JCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhp c3QiLCBjb2xuYW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMo cHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkJIGVycmRldGFpbCgiVGhlcmUgYXJlIGNvbHVtbnMgbmFt ZWQgXCIlc1wiLCBidXQgdGhleSBhcmUgaW4gdGFibGVzIHRoYXQgY2Fubm90IGJlIHJlZmVyZW5j ZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIsCiAJCQkJCQkJICAgY29sbmFtZSksCiAJ CQkJCSAhcmVsbmFtZSA/IGVycmhpbnQoIlRyeSB1c2luZyBhIHRhYmxlLXF1YWxpZmllZCBuYW1l LiIpIDogMCwKQEAgLTM4MDUsNyArMzgyMCw3IEBAIGVycm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJ CQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0Iiwg cmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0 cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJkZXRhaWwoIlRoZXJlIGlzIGEgY29sdW1uIG5h bWVkIFwiJXNcIiBpbiB0YWJsZSBcIiVzXCIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBm cm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuIiwKIAkJCQkJCSAgIGNvbG5hbWUsIHN0YXRlLT5y ZXhhY3QxLT5lcmVmLT5hbGlhc25hbWUpLAogCQkJCSBydGVfdmlzaWJsZV9pZl9sYXRlcmFsKHBz dGF0ZSwgc3RhdGUtPnJleGFjdDEpID8KQEAgLTM4MjMsMTQgKzM4MzgsMTQgQEAgZXJyb3JNaXNz aW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwogCQkJCQkgZXJybXNnKCJjb2x1bW4gJXMu JXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92 YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwogCQkvKiBIYW5kbGUgY2FzZSB3aGVyZSB3 ZSBoYXZlIGEgc2luZ2xlIGFsdGVybmF0aXZlIHNwZWxsaW5nIHRvIG9mZmVyICovCiAJCWVyZXBv cnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkg cmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVs bmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhp c3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhw c3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJoaW50KCJQZXJoYXBzIHlvdSBtZWFudCB0byByZWZl cmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVzXCIuIiwKIAkJCQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVm LT5hbGlhc25hbWUsCiAJCQkJCQkgc3RyVmFsKGxpc3RfbnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYt PmNvbG5hbWVzLApAQCAtMzg0NCw3ICszODU5LDcgQEAgZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAog CQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1bW4gJXMuJXMgZG9lcyBub3QgZXhpc3Qi LCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhp c3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmhpbnQoIlBlcmhhcHMgeW91IG1lYW50IHRv IHJlZmVyZW5jZSB0aGUgY29sdW1uIFwiJXMuJXNcIiBvciB0aGUgY29sdW1uIFwiJXMuJXNcIi4i LAogCQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFsaWFzbmFtZSwKIAkJCQkJCSBzdHJWYWwo bGlzdF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29sbmFtZXMsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dGFyZ2V0LmMKaW5kZXggY2YwMWJmZjY1YTkuLjJhNTI3ODg3YThkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3RhcmdldC5jCkBAIC03NzksNyArNzc5LDkgQEAgdHJhbnNmb3JtQXNzaWdubWVudEluZGly ZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmICghdHlwcmVsaWQpCiAJCQkJZXJlcG9y dChFUlJPUiwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAotCQkJ CQkJIGVycm1zZygiY2Fubm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIFwiJXNc IiBiZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCSBl cnJtc2coZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9r aW5kKSA/CisJCQkJCQkJCSAiY2Fubm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1u IG9yIHZhcmlhYmxlIFwiJXNcIiBiZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0 ZSB0eXBlIiA6CisJCQkJCQkJCSAiY2Fubm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29s dW1uIFwiJXNcIiBiZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwK IAkJCQkJCQkJc3RyVmFsKG4pLCB0YXJnZXROYW1lLAogCQkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0 YXJnZXRUeXBlSWQpKSwKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlv bikpKTsKQEAgLTc4OCw3ICs3OTAsOSBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJaWYgKGF0dG51bSA9PSBJbnZhbGlkQXR0ck51bWJlcikK IAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09M VU1OKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNv bHVtbiBcIiVzXCIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUg JXMiLAorCQkJCQkJIGVycm1zZyhleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBz dGF0ZS0+cF9leHByX2tpbmQpID8KKwkJCQkJCQkJICJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwi JXNcIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3Vj aCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiA6CisJCQkJCQkJCSAiY2Fubm90IGFzc2lnbiB0byBm aWVsZCBcIiVzXCIgb2YgY29sdW1uIFwiJXNcIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29s dW1uIGluIGRhdGEgdHlwZSAlcyIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFtZSwKIAkJ CQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2VfZXhwci5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCBl MmY4ZDgzMjI0Mi4uMWVjZWQ1ZTZjZjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9leHByLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMzgs NCArMzgsOCBAQCBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUs IE5vZGUgKmV4cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbgogCiBleHRlcm4gY29uc3QgY2hhciAq UGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAKK2V4dGVybiBib29s IGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJf a2luZCk7CisKK2V4dGVybiBib29sIHNlc3Npb25fdmFyaWFibGVzX2FyZV92aXNpYmxlKFBhcnNl U3RhdGUgKnBzdGF0ZSk7CisKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9FWFBSX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dCBiL3Ny Yy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dAppbmRleCA0YzZiM2Nl OTk4YS4uYWQ2NjkyYzNlNTIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3Rl ZC9wbHBnc3FsX2FycmF5Lm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9hcnJheS5vdXQKQEAgLTQxLDcgKzQxLDcgQEAgTk9USUNFOiAgYSA9IHsiKCwxMSkifSwg YVsxXS5pID0gMTEKIC0tIHBlcmhhcHMgdGhpcyBvdWdodCB0byB3b3JrLCBidXQgZm9yIG5vdyBp dCBkb2Vzbid0OgogZG8gJCQgZGVjbGFyZSBhIGNvbXBsZXhbXTsKIGJlZ2luIGFbMToyXS5pIDo9 IGFycmF5WzExLDEyXTsgcmFpc2Ugbm90aWNlICdhID0gJScsIGE7IGVuZCQkOwotRVJST1I6ICBj YW5ub3QgYXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gImEiIGJlY2F1c2UgaXRzIHR5cGUg Y29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitFUlJPUjogIGNhbm5vdCBhc3NpZ24g dG8gZmllbGQgImkiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgYmVjYXVzZSBpdHMgdHlwZSBj b21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKIExJTkUgMTogYVsxOjJdLmkgOj0gYXJy YXlbMTEsMTJdCiAgICAgICAgIF4KIFFVRVJZOiAgYVsxOjJdLmkgOj0gYXJyYXlbMTEsMTJdCmRp ZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0 IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dAppbmRleCA2 OTc0YzhmNGE0NC4uMzk3MGFjNzIxYzkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9l eHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVj dGVkL3BscGdzcWxfcmVjb3JkLm91dApAQCAtMTM1LDcgKzEzNSw3IEBAIEVSUk9SOiAgcmVjb3Jk ICJjIiBoYXMgbm8gZmllbGQgIngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYy54 LnExID0gMSIKIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBh c3NpZ25tZW50CiBkbyAkJCBkZWNsYXJlIGMgbmVzdGVkX2ludDhzOyBiZWdpbiBjLmMyLnggPSAx OyBlbmQgJCQ7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiAi YyIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdHdvX2ludDhz CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiBvciB2YXJpYWJs ZSAiYyIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdHdvX2lu dDhzCiBMSU5FIDE6IGMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBjLmMyLnggPSAxCkBA IC0xNTcsNyArMTU3LDcgQEAgRVJST1I6ICByZWNvcmQgImMiIGhhcyBubyBmaWVsZCAieCIKIENP TlRFWFQ6ICBQTC9wZ1NRTCBhc3NpZ25tZW50ICJiLmMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5j dGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgYXNzaWdubWVudAogZG8gJCQgPDxiPj4g ZGVjbGFyZSBjIG5lc3RlZF9pbnQ4czsgYmVnaW4gYi5jLmMyLnggPSAxOyBlbmQgJCQ7Ci1FUlJP UjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiAiYiIgYmVjYXVzZSB0aGVy ZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdHdvX2ludDhzCitFUlJPUjogIGNhbm5v dCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSAiYiIgYmVjYXVzZSB0 aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdHdvX2ludDhzCiBMSU5FIDE6IGIu Yy5jMi54ID0gMQogICAgICAgICBeCiBRVUVSWTogIGIuYy5jMi54ID0gMQpkaWZmIC0tZ2l0IGEv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQg Yi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91 dAppbmRleCBlY2FjNjRmY2ZiNC4uOGJkMmIzOThiZGQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBn c3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CisrKyBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0y MzIsNyArMjMyLDcgQEAgU0VUIFJPTEUgVE8gREVGQVVMVDsKIFNFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyX2V4ZWNfcm9sZTsKIC0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCiBTRUxFQ1QgdmFy X3JlYWRfZnVuYygpOwotRVJST1I6ICBjb2x1bW4gInBscGdzcWxfc3ZfdmFyMSIgZG9lcyBub3Qg ZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJwbHBnc3FsX3N2X3ZhcjEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQogICAgICAgICBeCiBRVUVSWTogIHBs cGdzcWxfc3ZfdmFyMQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVy aWVzLm91dCBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQKaW5kZXggMzVj YzZlNjJhYWQuLjQ5N2NkMzgxODliIDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3Bs dGNsX3F1ZXJpZXMub3V0CisrKyBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5v dXQKQEAgLTQ1MCwxMiArNDUwLDEyIEBAIENPTlRFWFQ6ICB3aGlsZSBleGVjdXRpbmcKICJfX1BM VGNsX3Byb2NfdGNsX2V2YWxfdGV4dCBzcGlfcHJlcGFyZVwgYVwgXCJiXCBce1wiIgogaW4gUEwv VGNsIGZ1bmN0aW9uIHRjbF9ldmFsKHRleHQpCiBzZWxlY3QgdGNsX2Vycm9yX2hhbmRsaW5nX3Rl c3QoJHRjbCRzcGlfcHJlcGFyZSAic2VsZWN0IG1vbyIgW10kdGNsJCk7Ci0gICAgICAgdGNsX2Vy cm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSBTUUxTVEFURTogNDI3MDMgICAgICAgICAgICAgICAgICAgICArCi0gY29uZGl0 aW9uOiB1bmRlZmluZWRfY29sdW1uICAgICAgICAgKwotIGN1cnNvcl9wb3NpdGlvbjogOCAgICAg ICAgICAgICAgICAgICsKLSBtZXNzYWdlOiBjb2x1bW4gIm1vbyIgZG9lcyBub3QgZXhpc3QrCisg ICAgICAgICAgICAgdGNsX2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTUUxTVEFURTog NDI3MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgY29uZGl0aW9uOiB1bmRl ZmluZWRfY29sdW1uICAgICAgICAgICAgICAgICAgICAgKworIGN1cnNvcl9wb3NpdGlvbjogOCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBtZXNzYWdlOiBjb2x1bW4gb3IgdmFyaWFi bGUgIm1vbyIgZG9lcyBub3QgZXhpc3QrCiAgc3RhdGVtZW50OiBzZWxlY3QgbW9vCiAoMSByb3cp CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlh YmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91 dAppbmRleCBlOWEyNTRiY2QxMi4uZDg4NDhkNTU1Y2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lz b2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dAorKysgYi9zcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKQEAgLTEwLDcgKzEwLDcgQEAgdGVz dAogCiBzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CiBzdGVwIHZhbDogU0VMRUNUIG15 dmFyOwotRVJST1I6ICBjb2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgIm15dmFyIiBkb2VzIG5vdCBleGlzdAogCiBzdGFydGluZyBwZXJtdXRh dGlvbjogbGV0IHZhbCBzMSBkcm9wIHZhbCBzcjEKIHN0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVz dCc7CkBAIC0yMyw3ICsyMyw3IEBAIHRlc3QKIHN0ZXAgczE6IEJFR0lOOwogc3RlcCBkcm9wOiBE Uk9QIFZBUklBQkxFIG15dmFyOwogc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKLUVSUk9SOiAgY29s dW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJt eXZhciIgZG9lcyBub3QgZXhpc3QKIHN0ZXAgc3IxOiBST0xMQkFDSzsKIAogc3RhcnRpbmcgcGVy bXV0YXRpb246IGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQKaW5kZXggMzYyZjM4ODU2ZDIuLjI5OWRiZGI1ZTQz IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dApAQCAtMTI5OCwx OSArMTI5OCwxOSBAQCBzZWxlY3QgKiBmcm9tIGF0YWNjMTsKICgxIHJvdykKIAogc2VsZWN0ICog ZnJvbSBhdGFjYzEgb3JkZXIgYnkgYTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlz dAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6 IHNlbGVjdCAqIGZyb20gYXRhY2MxIG9yZGVyIGJ5IGE7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2MxIG9yZGVyIGJ5ICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIjsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3Bw ZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNl bGVjdCAqIGZyb20gYXRhY2MxIG9yZGVyIGJ5ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4u Ii4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBm cm9tIGF0YWNjMSBncm91cCBieSBhOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0ICogZnJvbSBhdGFjYzEgZ3JvdXAgYnkgYTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgZ3JvdXAgYnkgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBl ZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0ICogZnJvbSBhdGFjYzEgZ3JvdXAgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCBhdGFj YzEuKiBmcm9tIGF0YWNjMTsKQEAgLTEzMjAsNyArMTMyMCw3IEBAIHNlbGVjdCBhdGFjYzEuKiBm cm9tIGF0YWNjMTsKICgxIHJvdykKIAogc2VsZWN0IGEgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNv bHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgYSBmcm9tIGF0YWNjMTsKICAgICAgICAgICAg ICAgIF4KIHNlbGVjdCBhdGFjYzEuYSBmcm9tIGF0YWNjMTsKQEAgLTEzMzQsMTUgKzEzMzQsMTUg QEAgc2VsZWN0IGIsYyxkIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgYSxiLGMsZCBm cm9tIGF0YWNjMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhLGIs YyxkIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEg d2hlcmUgYSA9IDE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBm cm9tIGF0YWNjMSB3aGVyZSBhID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsK LUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBl eGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4u Li4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxlY3QgYXRhY2Mx LiIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKQEAgLTEzNTAsMTEg KzEzNTAsMTEgQEAgRVJST1I6ICBjb2x1bW4gYXRhY2MxLi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4u Li4uLi4gZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGF0YWNjMS4iLi4uLi4uLi5wZy5k cm9wcGVkLjEuLi4uLi4uLiIgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxlY3Qg Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLGIsYyxkIGZyb20gYXRhY2MxOwotRVJST1I6 ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitF UlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4u Li4uIixiLGMsZCBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZyb20g YXRhY2MxIHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDE7Ci1FUlJPUjog IGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgogLS0gVVBEQVRFcwpAQCAtMTM2Myw3ICsxMzYzLDcgQEAgRVJST1I6ICBjb2x1 bW4gImEiIG9mIHJlbGF0aW9uICJhdGFjYzEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHVwZGF0 ZSBhdGFjYzEgc2V0IGEgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICBeCiB1cGRhdGUg YXRhY2MxIHNldCBiID0gMiB3aGVyZSBhID0gMzsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAzOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiB1cGRhdGUgYXRhY2MxIHNldCAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwpAQCAtMTM3MSw3ICsxMzcxLDcgQEAgRVJST1I6ICBj b2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIG9mIHJlbGF0aW9uICJhdGFjYzEi IGRvZXMgbm90IGV4aXMKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgIi4uLi4uLi4ucGcuZHJv cHBlZC4xLi4uLi4uLi4iID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogdXBkYXRl IGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0g MzsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4x Li4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAy IHdoZXJlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIi4uLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBJTlNFUlRzCkBAIC0xNDE5LDExICsxNDE5LDEx IEBAIExJTkUgMTogaW5zZXJ0IGludG8gYXRhY2MxICgiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIsYixjLGQpIHZhLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gREVM RVRFcwogZGVsZXRlIGZyb20gYXRhY2MxIHdoZXJlIGEgPSAzOwotRVJST1I6ICBjb2x1bW4gImEi IGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogZGVsZXRlIGZyb20gYXRhY2MxIHdoZXJlIGEgPSAzOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogZGVsZXRlIGZyb20gYXRhY2MxIHdoZXJlICIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZh cmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElO RSAxOiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4u Li4iID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGRlbGV0ZSBmcm9t IGF0YWNjMTsKQEAgLTE3MTYsNyArMTcxNiw3IEBAIHNlbGVjdCBmMSBmcm9tIGMxOwogCiBhbHRl ciB0YWJsZSBjMSBkcm9wIGNvbHVtbiBmMTsKIHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6ICBj b2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYx IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAgICAg ICAgIF4KIEhJTlQ6ICBQZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAi YzEuZjIiLgpAQCAtMTczMCw3ICsxNzMwLDcgQEAgRVJST1I6ICBjYW5ub3QgZHJvcCBpbmhlcml0 ZWQgY29sdW1uICJmMSIKIGFsdGVyIHRhYmxlIHAxIGRyb3AgY29sdW1uIGYxOwogLS0gYzEuZjEg aXMgZHJvcHBlZCBub3csIHNpbmNlIHRoZXJlIGlzIG5vIGxvY2FsIGRlZmluaXRpb24gZm9yIGl0 CiBzZWxlY3QgZjEgZnJvbSBjMTsKLUVSUk9SOiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0IGYxIGZyb20gYzE7CiAgICAgICAgICAgICAgICBeCiBISU5UOiAgUGVyaGFwcyB5b3Ug bWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gImMxLmYyIi4KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jb3B5Mi5vdXQKaW5kZXggNjRlYTMzYWVhZTguLjY4NzRmNWFlMGQxIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NvcHkyLm91dApAQCAtMTYwLDcgKzE2MCw3IEBAIExJTkUgMTogQ09QWSB4IFRP IHN0ZG91dCBXSEVSRSBhID0gMTsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSA1MDAwNDsK IENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPiA2MDAwMzsKIENPUFkgeCBmcm9tIHN0ZGluIFdI RVJFIGYgPiA2MDAwMzsKLUVSUk9SOiAgY29sdW1uICJmIiBkb2VzIG5vdCBleGlzdAorRVJST1I6 ICBjb2x1bW4gb3IgdmFyaWFibGUgImYiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IENPUFkgeCBm cm9tIHN0ZGluIFdIRVJFIGYgPiA2MDAwMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA9IG1heCh4LmIpOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9lcnJvcnMub3V0CmluZGV4IDhjNTI3NDc0ZGFmLi5lNTNhZTQ1MWRmYyAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dApAQCAtMjcsNyArMjcsNyBAQCBMSU5FIDE6IHNl bGVjdCAqIGZyb20gbm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gYmFkIG5h bWUgaW4gdGFyZ2V0IGxpc3QKIHNlbGVjdCBub25lc3VjaCBmcm9tIHBnX2RhdGFiYXNlOwotRVJS T1I6ICBjb2x1bW4gIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qgbm9uZXN1 Y2ggZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgIF4KIC0tIGVtcHR5IGRpc3RpbmN0 IGxpc3QgaXNuJ3QgT0sKQEAgLTM3LDE3ICszNywxNyBAQCBMSU5FIDE6IHNlbGVjdCBkaXN0aW5j dCBmcm9tIHBnX2RhdGFiYXNlOwogICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gYmFkIGF0 dHJpYnV0ZSBuYW1lIG9uIGxocyBvZiBvcGVyYXRvcgogc2VsZWN0ICogZnJvbSBwZ19kYXRhYmFz ZSB3aGVyZSBub25lc3VjaCA9IHBnX2RhdGFiYXNlLmRhdG5hbWU7Ci1FUlJPUjogIGNvbHVtbiAi bm9uZXN1Y2giIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibm9u ZXN1Y2giIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gcGdfZGF0YWJhc2Ug d2hlcmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYS4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBvbiByaHMgb2Yg b3BlcmF0b3IKIHNlbGVjdCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hlcmUgcGdfZGF0YWJhc2UuZGF0 bmFtZSA9IG5vbmVzdWNoOwotRVJST1I6ICBjb2x1bW4gIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlz dAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAog TElORSAxOiAuLi5lY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIHBnX2RhdGFiYXNlLmRhdG5h bWUgPSBub25lc3VjaDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgogLS0gYmFkIGF0dHJpYnV0ZSBuYW1lIGluIHNlbGVjdCBk aXN0aW5jdCBvbgogc2VsZWN0IGRpc3RpbmN0IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFz ZTsKLUVSUk9SOiAgY29sdW1uICJmb29iYXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVt biBvciB2YXJpYWJsZSAiZm9vYmFyIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgZGlz dGluY3Qgb24gKGZvb2JhcikgKiBmcm9tIHBnX2RhdGFiYXNlOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIC0tIGdyb3VwaW5nIHdpdGggRk9SIFVQREFURQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvam9pbi5vdXQKaW5kZXggM2ZmYzA2NmIxZjguLjZkYWZmODg1MTI4IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvam9pbi5vdXQKQEAgLTYzOTQsMTMgKzYzOTQsMTMgQEAgTElORSAxOiBzZWxlY3Qg dDIudXVuaXF1ZTEgZnJvbQogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0 aGUgY29sdW1uICJ0Mi51bmlxdWUxIi4KIHNlbGVjdCB1dW5pcXVlMSBmcm9tCiAgIHRlbmsxIHQx IGpvaW4gdGVuazIgdDIgb24gdDEudHdvID0gdDIudHdvOyAtLSBlcnJvciwgc3VnZ2VzdCBib3Ro IGF0IG9uY2UKLUVSUk9SOiAgY29sdW1uICJ1dW5pcXVlMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9S OiAgY29sdW1uIG9yIHZhcmlhYmxlICJ1dW5pcXVlMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0IHV1bmlxdWUxIGZyb20KICAgICAgICAgICAgICAgIF4KIEhJTlQ6ICBQZXJoYXBzIHlv dSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAidDEudW5pcXVlMSIgb3IgdGhlIGNvbHVt biAidDIudW5pcXVlMSIuCiBzZWxlY3QgY3RpZCBmcm9tCiAgIHRlbmsxIHQxIGpvaW4gdGVuazIg dDIgb24gdDEudHdvID0gdDIudHdvOyAtLSBlcnJvciwgbmVlZCBxdWFsaWZpY2F0aW9uCi1FUlJP UjogIGNvbHVtbiAiY3RpZCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlh YmxlICJjdGlkIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgY3RpZCBmcm9tCiAgICAg ICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVyZSBhcmUgY29sdW1ucyBuYW1lZCAiY3RpZCIsIGJ1 dCB0aGV5IGFyZSBpbiB0YWJsZXMgdGhhdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMg cGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NDk3LDcgKzc0OTcsNyBAQCBsYXRlcmFsIChzZWxlY3Qg KiBmcm9tIGludDhfdGJsIHQxLAogCiAtLSB0ZXN0IHNvbWUgZXJyb3IgY2FzZXMgd2hlcmUgTEFU RVJBTCBzaG91bGQgaGF2ZSBiZWVuIHVzZWQgYnV0IHdhc24ndAogc2VsZWN0IGYxLGcgZnJvbSBp bnQ0X3RibCBhLCAoc2VsZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlz dAogTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgZjEgYXMgZykg c3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRB SUw6ICBUaGVyZSBpcyBhIGNvbHVtbiBuYW1lZCAiZjEiIGluIHRhYmxlICJhIiwgYnV0IGl0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTc1MDks NyArNzUwOSw3IEBAIExJTkUgMTogc2VsZWN0IGYxLGcgZnJvbSBpbnQ0X3RibCBhLCAoc2VsZWN0 IGEuZjEgYXMgZykgc3M7CiBERVRBSUw6ICBUaGVyZSBpcyBhbiBlbnRyeSBmb3IgdGFibGUgImEi LCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5 LgogSElOVDogIFRvIHJlZmVyZW5jZSB0aGF0IHRhYmxlLCB5b3UgbXVzdCBtYXJrIHRoaXMgc3Vi cXVlcnkgd2l0aCBMQVRFUkFMLgogc2VsZWN0IGYxLGcgZnJvbSBpbnQ0X3RibCBhIGNyb3NzIGpv aW4gKHNlbGVjdCBmMSBhcyBnKSBzczsKLUVSUk9SOiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogc2VsZWN0IGYxLGcgZnJvbSBpbnQ0X3RibCBhIGNyb3NzIGpvaW4gKHNlbGVjdCBmMSBhcyBn KSBzczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiBERVRBSUw6ICBUaGVyZSBpcyBhIGNvbHVtbiBuYW1lZCAiZjEiIGluIHRhYmxlICJh IiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVy eS4KQEAgLTc1NDYsNyArNzU0Niw3IEBAIExJTkUgMTogc2VsZWN0IDEgZnJvbSB0ZW5rMSBhLCBs YXRlcmFsIChzZWxlY3QgbWF4KGEudW5pcXVlMSkgZnJvbSBpLi4uCiBjcmVhdGUgdGVtcCB0YWJs ZSB4eDEgYXMgc2VsZWN0IGYxIGFzIHgxLCAtZjEgYXMgeDIgZnJvbSBpbnQ0X3RibDsKIC0tIGVy cm9yLCBjYW4ndCBkbyB0aGlzOgogdXBkYXRlIHh4MSBzZXQgeDIgPSBmMSBmcm9tIChzZWxlY3Qg KiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwotRVJST1I6ICBjb2x1bW4gIngxIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIngxIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiAuLi4gc2V0IHgyID0gZjEgZnJvbSAoc2VsZWN0ICogZnJvbSBpbnQ0X3Ri bCB3aGVyZSBmMSA9IHgxKSBzczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVyZSBpcyBhIGNvbHVt biBuYW1lZCAieDEiIGluIHRhYmxlICJ4eDEiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQg ZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzU2Niw3ICs3NTY2LDcgQEAgdXBkYXRl IHh4MSBzZXQgeDIgPSBmMSBmcm9tIHh4MSwgbGF0ZXJhbCAoc2VsZWN0ICogZnJvbSBpbnQ0X3Ri bCB3aGVyZSBmMSA9IHgxKQogRVJST1I6ICB0YWJsZSBuYW1lICJ4eDEiIHNwZWNpZmllZCBtb3Jl IHRoYW4gb25jZQogLS0gYWxzbyBlcnJvcnM6CiBkZWxldGUgZnJvbSB4eDEgdXNpbmcgKHNlbGVj dCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1FUlJPUjogIGNvbHVtbiAieDEi IGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieDEiIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IC4uLnRlIGZyb20geHgxIHVzaW5nIChzZWxlY3QgKiBmcm9tIGludDRf dGJsIHdoZXJlIGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29s dW1uIG5hbWVkICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNl ZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25h bWVzcGFjZS5vdXQKaW5kZXggZGJiZGE3MmQzOTUuLmQ5ODc5M2Y5MmE3IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CkBAIC0yMyw3ICsyMyw3IEBAIEJFR0lOOwogU0VU IHNlYXJjaF9wYXRoIHRvIHB1YmxpYywgdGVzdF9uc19zY2hlbWFfMTsKIENSRUFURSBTQ0hFTUEg dGVzdF9uc19zY2hlbWFfMgogICAgICAgIENSRUFURSBWSUVXIGFiY192aWV3IEFTIFNFTEVDVCBj IEZST00gYWJjOwotRVJST1I6ICBjb2x1bW4gImMiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiYyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMjogICAgICAgIENSRUFU RSBWSUVXIGFiY192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJjOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL251bWVyb2xvZ3kub3V0CmluZGV4IDllMjMxNjZmZWQxLi42NzIwMTJlMTQ2MSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0CkBAIC0zMTQsNyArMzE0LDcg QEAgTk9USUNFOiAgaSA9IDEwMDIKIE5PVElDRTogIGkgPSAxMDAzCiAtLSBlcnJvciBjYXNlcwog U0VMRUNUIF8xMDA7Ci1FUlJPUjogIGNvbHVtbiAiXzEwMCIgZG9lcyBub3QgZXhpc3QKK0VSUk9S OiAgY29sdW1uIG9yIHZhcmlhYmxlICJfMTAwIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxF Q1QgXzEwMDsKICAgICAgICAgICAgICAgIF4KIFNFTEVDVCAxMDBfOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcGxwZ3NxbC5vdXQKaW5kZXggMGE2OTQ1NTgxYmQuLjVjNTk5YmEzMTJlIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQKQEAgLTI1OTgsNyArMjU5OCw3IEBAIGVuZDsg JCQgbGFuZ3VhZ2UgcGxwZ3NxbDsKIC0tIHNob3VsZCBmYWlsOiBTUUxTVEFURSBhbmQgU1FMRVJS TSBhcmUgb25seSBpbiBkZWZpbmVkIEVYQ0VQVElPTgogLS0gYmxvY2tzCiBzZWxlY3QgZXhjcHRf dGVzdDEoKTsKLUVSUk9SOiAgY29sdW1uICJzcWxzdGF0ZSIgZG9lcyBub3QgZXhpc3QKK0VSUk9S OiAgY29sdW1uIG9yIHZhcmlhYmxlICJzcWxzdGF0ZSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c3Fsc3RhdGUKICAgICAgICAgXgogUVVFUlk6ICBzcWxzdGF0ZQpAQCAtMjYxMyw3ICsyNjEzLDcg QEAgYmVnaW4KIGVuZDsgJCQgbGFuZ3VhZ2UgcGxwZ3NxbDsKIC0tIHNob3VsZCBmYWlsCiBzZWxl Y3QgZXhjcHRfdGVzdDIoKTsKLUVSUk9SOiAgY29sdW1uICJzcWxzdGF0ZSIgZG9lcyBub3QgZXhp c3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJzcWxzdGF0ZSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogc3Fsc3RhdGUKICAgICAgICAgXgogUVVFUlk6ICBzcWxzdGF0ZQpAQCAtNDY3NSw3 ICs0Njc1LDcgQEAgQkVHSU4KICAgICAgICAgUkFJU0UgTk9USUNFICclLCAlJywgci5yb29tbm8s IHIuY29tbWVudDsKICAgICBFTkQgTE9PUDsKIEVORCQkOwotRVJST1I6ICBjb2x1bW4gImZvbyIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmb28iIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBydHJpbShyb29tbm8pIEFTIHJvb21ubywgZm9vIEZST00g Um9vbSBPUkRFUiBCWSByb29tbi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIFFVRVJZOiAgU0VMRUNUIHJ0cmltKHJvb21ubykgQVMgcm9vbW5vLCBmb28gRlJP TSBSb29tIE9SREVSIEJZIHJvb21ubwpAQCAtNDcxNyw3ICs0NzE3LDcgQEAgYmVnaW4KICAgcmFp c2Ugbm90aWNlICd4ID0gJScsIHg7CiBlbmQ7CiAkJDsKLUVSUk9SOiAgY29sdW1uICJ4IiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIngiIGRvZXMgbm90IGV4aXN0 CiBMSU5FIDE6IHggKyAxCiAgICAgICAgIF4KIFFVRVJZOiAgeCArIDEKQEAgLTQ3MjksNyArNDcy OSw3IEBAIGJlZ2luCiAgIHJhaXNlIG5vdGljZSAneCA9ICUsIHkgPSAlJywgeCwgeTsKIGVuZDsK ICQkOwotRVJST1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCArIDEKICAgICAgICAgXgog UVVFUlk6ICB4ICsgMQpAQCAtNTc2OSw3ICs1NzY5LDcgQEAgQUxURVIgVEFCTEUgYWx0ZXJfdGFi bGVfdW5kZXJfdHJhbnNpdGlvbl90YWJsZXMKICAgRFJPUCBjb2x1bW4gbmFtZTsKIFVQREFURSBh bHRlcl90YWJsZV91bmRlcl90cmFuc2l0aW9uX3RhYmxlcwogICBTRVQgaWQgPSBpZDsKLUVSUk9S OiAgY29sdW1uICJuYW1lIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFi bGUgIm5hbWUiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IChTRUxFQ1Qgc3RyaW5nX2FnZyhpZCB8 fCAnPScgfHwgbmFtZSwgJywnKSBGUk9NIGQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgogUVVFUlk6ICAoU0VMRUNUIHN0cmluZ19hZ2coaWQgfHwgJz0nIHx8IG5h bWUsICcsJykgRlJPTSBkKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggNzhhY2E2 N2U0NTIuLmVjODcwMTcyZmFhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTIx NCw3ICsyMTQsNyBAQCBzZWxlY3QgJDE6OmludCBhcyBjb2wgXGJpbmQgMSBcZyBcYmluZCAyIFxn CiAtLSBlcnJvcnMKIC0tIHBhcnNlIGVycm9yCiBTRUxFQ1QgZm9vIFxiaW5kIFxnCi1FUlJPUjog IGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUg ImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIGZvbyAKICAgICAgICAgICAgICAg IF4KIC0tIHRjb3AgZXJyb3IKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNWJh YmE4ZDM5ZmYuLmYxYjViNzNhODZhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApA QCAtMTE5MSw3ICsxMTkxLDcgQEAgZHJvcCBydWxlIHJ1bGVzX2Zvb3J1bGUgb24gcnVsZXNfZm9v OwogLS0gdGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIGYxIGlzIG5vdCBleHBvc2VkIGZvciB1bnF1 YWxpZmllZCByZWZlcmVuY2U6CiBjcmVhdGUgcnVsZSBydWxlc19mb29ydWxlIGFzIG9uIGluc2Vy dCB0byBydWxlc19mb28gd2hlcmUgZjEgPCAxMDAKIGRvIGluc3RlYWQgaW5zZXJ0IGludG8gcnVs ZXNfZm9vMiB2YWx1ZXMgKGYxKTsKLUVSUk9SOiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMjog ZG8gaW5zdGVhZCBpbnNlcnQgaW50byBydWxlc19mb28yIHZhbHVlcyAoZjEpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVy ZSBhcmUgY29sdW1ucyBuYW1lZCAiZjEiLCBidXQgdGhleSBhcmUgaW4gdGFibGVzIHRoYXQgY2Fu bm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAyMmRiZGZk YjQyNi4uYmZiOTIyNGMyZDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXMub3V0CkBAIC04MTEsNyArODExLDcgQEAgRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJ2YXIxIiBkb2Vzbid0IGV4aXN0CiBMSU5FIDE6IExFVCB2YXIxID0gcGkoKTsKICAg ICAgICAgICAgIF4KIFNFTEVDVCB2YXIxOwotRVJST1I6ICBjb2x1bW4gInZhcjEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidmFyMSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogU0VMRUNUIHZhcjE7CiAgICAgICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sK QEAgLTEwMzAsNyArMTAzMCw3IEBAIFNFTEVDVCB2MTsKIAogLS0gc2hvdWxkIGZhaWwsIGF0dHJp YnV0ZSBkb2Vzbid0IGV4aXN0CiBMRVQgdjEueCA9IDEwOwotRVJST1I6ICBjYW5ub3QgYXNzaWdu IHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29s dW1uIGluIGRhdGEgdHlwZSB0MQorRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBv ZiBjb2x1bW4gb3IgdmFyaWFibGUgInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1u IGluIGRhdGEgdHlwZSB0MQogTElORSAxOiBMRVQgdjEueCA9IDEwOwogICAgICAgICAgICAgXgog LS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQpAQCAtMTc1MCw3 ICsxNzUwLDcgQEAgQkVHSU47CiBEUk9QIFZBUklBQkxFIHZhcjE7CiAtLSBzaG91bGQgZmFpbAog U0VMRUNUIHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9S OiAgY29sdW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxF Q1QgdmFyMTsKICAgICAgICAgICAgICAgIF4KIFJPTExCQUNLOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CmluZGV4IDdmNTc1N2U4OWM0Li5iMDViMTZkOTRiZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dApAQCAtMjU2LDcg KzI1Niw3IEBAIFNFTEVDVCAqIEZST00gdHJhbnNfYmFyYmF6OwktLSBzaG91bGQgaGF2ZSAxCiBC RUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlTRUxFQ1QgdHJhbnNfZm9vOwotRVJST1I6ICBjb2x1 bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB0cmFuc19mb287CiAg ICAgICAgICAgICAgICBeCiAJUk9MTEJBQ0sgVE8gU0FWRVBPSU5UIG9uZTsKQEAgLTMwNSw3ICsz MDUsNyBAQCBCRUdJTjsKIAlTQVZFUE9JTlQgb25lOwogCQlJTlNFUlQgSU5UTyBzYXZlcG9pbnRz IFZBTFVFUyAoNSk7CiAJCVNFTEVDVCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVtbiAidHJhbnNf Zm9vIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInRyYW5zX2Zv byIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAgICAgICAgICAg ICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5p b24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKaW5kZXggY2FhOGZl NzBhMDUuLjFkMzQ0N2U4NGRkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3VuaW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dApAQCAt OTM5LDcgKzkzOSw3IEBAIE9SREVSIEJZIHEyLHExOwogCiAtLSBUaGlzIHNob3VsZCBmYWlsLCBi ZWNhdXNlIHEyIGlzbid0IGEgbmFtZSBvZiBhbiBFWENFUFQgb3V0cHV0IGNvbHVtbgogU0VMRUNU IHExIEZST00gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBGUk9NIGludDhfdGJsIE9SREVSIEJZ IHEyIExJTUlUIDE7Ci1FUlJPUjogIGNvbHVtbiAicTIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjog IGNvbHVtbiBvciB2YXJpYWJsZSAicTIiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IC4uLiBpbnQ4 X3RibCBFWENFUFQgU0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkgcTIgTElNSVQgMS4u LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJxMiIgaW4gdGFibGUg IipTRUxFQ1QqIDIiLCBidXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQg b2YgdGhlIHF1ZXJ5LgotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0022-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20250212-0022-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdqze0 RnJvbSA3NjI1MjJjYTIwMGM0Y2FmNTY4ZjFkOTJmZWFmYmEzNGJiNTYwYzUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjEgSnVsIDIwMjQgMTc6MDQ6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIy LzIyXSBwZ19yZXN0b3JlIC1BLCAtLXZhcmlhYmxlCgpwb3NzaWJpbGl0eSB0byByZXN0b3JlIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG5hbWUKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jlc3RvcmUuc2dtbCB8IDExICsrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9y ZS5jICAgICB8ICA5ICsrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3Jl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAppbmRleCBiOGIyN2UxNzE5 ZS4uN2EzYTRlYWJlMjUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5zZ21sCkBAIC0xMDYsNiArMTA2 LDE3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICAgPC9saXN0aXRlbT4KICAgICAg PC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxvcHRp b24+LUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3Jl cGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LS12YXJpYWJs ZT08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFj ZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBSZXN0b3JlIGEgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZSBvbmx5LiAgTXVsdGlwbGUg c2Vzc2lvbiB2YXJpYWJsZXMgbWF5CisgICAgICAgIGJlIHNwZWNpZmllZCB3aXRoIG11bHRpcGxl IDxvcHRpb24+LUE8L29wdGlvbj4gc3dpdGNoZXMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAg ICAgIDx0ZXJtPjxvcHRpb24+LWM8L29wdGlvbj48L3Rlcm0+CiAgICAgICA8dGVybT48b3B0aW9u Pi0tY2xlYW48L29wdGlvbj48L3Rlcm0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf cmVzdG9yZS5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwppbmRleCBjNjAyMjcyZDdk Yi4uMDJiZWNiNDE3OWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwpAQCAtMTA2LDYgKzEwNiw3IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl7InRyaWdnZXIiLCAxLCBOVUxMLCAnVCd9LAog CQl7InVzZS1saXN0IiwgMSwgTlVMTCwgJ0wnfSwKIAkJeyJ1c2VybmFtZSIsIDEsIE5VTEwsICdV J30sCisJCXsidmFyaWFibGUiLCAxLCBOVUxMLCAnQSd9LAogCQl7InZlcmJvc2UiLCAwLCBOVUxM LCAndid9LAogCQl7InNpbmdsZS10cmFuc2FjdGlvbiIsIDAsIE5VTEwsICcxJ30sCiAKQEAgLTE1 Niw3ICsxNTcsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJfQogCX0KIAotCXdo aWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhY0NkOmVmOkY6aDpJOmo6bEw6bjpO Ok9wOlA6UnNTOnQ6VDpVOnZ3V3gxIiwKKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBh cmd2LCAiQTphY0NkOmVmOkY6aDpJOmo6bEw6bjpOOk9wOlA6UnNTOnQ6VDpVOnZ3V3gxIiwKIAkJ CQkJCQljbWRvcHRzLCBOVUxMKSkgIT0gLTEpCiAJewogCQlzd2l0Y2ggKGMpCkBAIC0xNjQsNiAr MTY1LDExIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJY2FzZSAnYSc6CQkJLyog RHVtcCBkYXRhIG9ubHkgKi8KIAkJCQlkYXRhX29ubHkgPSB0cnVlOwogCQkJCWJyZWFrOworCQkJ Y2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBlcyA9IDE7CisJCQkJ b3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9hcHBlbmQoJm9w dHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQljYXNlICdjJzoJCQkv KiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAqLwogCQkJCW9wdHMt PmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDY2LDYgKzQ3Miw3IEBAIHVzYWdlKGNv bnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBjb250cm9sbGluZyB0 aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9ubHkgICAgICAgICAg ICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJcHJpbnRmKF8oIiAg LUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNlc3Npb24gdmFyaWFi bGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAgICAgICAgIGNsZWFu IChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4iKSk7CiAJcHJpbnRm KF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhlIHRhcmdldCBkYXRh YmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3IgICAgICAgICAgZXhp dCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0021-transactional-variables.patch" Content-Disposition: attachment; filename="v20250212-0021-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr021 RnJvbSBmOWJiYmRjYTkzODg2ZGJmMDFmMWE1OGI2OGRlMWZjOGMyYTBmZGU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjEvMjJdIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIHRy YW5zYWN0aW9uYWwgdmFyaWFibGVzLiBUaGUgY29udGVudCBvZiB0cmFuc2FjdGlvbmFsCnNlc3Np b24gdmFyaWFibGVzIGlzIHNlbnNpdGl2ZSB0byB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0 aW9ucy4gQW55CnRyYW5zYWN0aW9uYWwgdmFyaWFibGUgaG9sZHMgYSBoaXN0b3J5IG9mIHZhbHVl cyBuZWNlc3NhcnkgZm9yIHJldmVydC4gVGhpcyBoaXN0b3J5CmlzIGNsZWFuZWQgKHB1cmdlZCkg d2hlbiBhKSB3ZSByZWFkIHRoZSB2YXJpYWJsZSwgYikgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMg ZmluaXNoZWQuCgpXZSBkb24ndCB0cnkgdG8gcHVyZ2UsIHdoZW4gdGhlIGxhc3QgbW9kaWZpY2F0 aW9uIG9mIGEgdmFyaWFibGUgaXMgZnJvbQpjdXJyZW50IHN1YnRyYW5zYWN0aW9uLCBvciB3aGVu IHB1cmdlIHdhcyBwcm9jZXNzZWQgaW4gY3VycmVudCBzdWJ0cmFuc2FjdGlvbi4KClRoaXMgcGF0 Y2ggaXMgYmFzZWQgb24gbXkgd29yayBmcm9tIEZlYiAyMDIwIGFuZCBpdCBpcyByZWxhdGVkIHRv IGRpc2N1c3Npb24KYWJvdXQgZmVhdHVyZXMgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcy4g Tm93LCB3aGVuIHRoZSBhbGwgZmVhdHVyZXMgYXJlCnNlcGFyYXRlZCB0byBpc29sYXRlZCBwYXRj aGVzIEkgY2FuIHJldml0YWxpemUgdGhpcyBwYXRjaCwgYmVjYXVzZSBpdCBkb2Vzbid0CmluY3Jl YXNlIGNvbXBsZXhpdHkgb2YgYmFzaWMgcGF0Y2hlcy4KClVubGlrZSBvdGhlciBwYXRjaGVzLCB0 aGlzIHBhdGNoIGlzIHdpdGhvdXQgYW55IHJldmlldyBhdCB0aGlzIG1vbWVudCAoRmViIDIwMjQp LApidXQgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGZ1bGx5IGZ1bmN0aW9uYWwgZm9yIHBlb3BsZSB3 aG8gYXJlIGludGVyZXN0ZWQgYWJvdXQKdGhpcyBmZWF0dXJlIChmb3IgdGVzdGluZykuCi0tLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEyICsKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAxMCArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMwMSArKysrKysrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAz NiArKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDEwMCArKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1OCArKysr CiAxNiBmaWxlcyBjaGFuZ2VkLCA1ODcgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBjN2E4MTcwZGRmMi4uMTIxN2Y4Zjg2NDcgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODg0LDYgKzk4ODQsMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5Pjxz dHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAgICAgPGVu dHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2VudHJ5Pgor ICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzIDxxdW90ZT50 cmFuc2FjdGlvbmFsPC9xdW90ZT4uIEluIHRoZSBjYXNlCisgICAgICAgb2YgYSB0cmFuc2FjdGlv biByb2xsYmFjaywgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgYXJlIHJlc2V0IHRvIHRoZQorICAg ICAgIHZhbHVlIHRoZXkgaGFkIHdoZW4gdGhlIHRyYW5zYWN0aW9uIHN0YXJ0ZWQuIFRoZSBkZWZh dWx0IHZhbHVlIGlzCisgICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAgICAgPC9l bnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAg PHN0cnVjdGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCAzYzNlNmQ1NWI2OS4uMWFh ZGQzNjc3ZTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjYsNyAr MjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxz eW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCitDUkVBVEUgWyB7IFRFTVBPUkFSWSB8 IFRFTVAgfSBdIFsgeyBUUkFOU0FDVElPTkFMIHwgVFJBTlNBQ1RJT04gfSBdIFsgSU1NVVRBQkxF IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgTk9UIE5VTEwgXSBb IERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVw bGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VU IH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtNDcsNiArNDcsMTQgQEAg Q1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklBQkxFIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWMKICAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4g cHJvY2VkdXJhbCBsYW5ndWFnZXMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFdoZW4gYSBz Y2hlbWEgdmFyaWFibGUgaXMgY3JlYXRlZCB3aXRoIGEKKyAgIDxjb21tYW5kPkNSRUFURSBUUkFO U0FDVElPTkFMIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLCB0aGUgdmFyaWFibGVzCisgICBj b250ZW50IGNoYW5nZXMgYXJlIHRyYW5zYWN0aW9uYWw6IGluIGNhc2Ugb2Ygcm9sbGJhY2ssIHRo ZXkgYXJlIHJlc2V0IHRvCisgICB0aGVpciB2YWx1ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0 cmFuc2FjdGlvbiBvciB0aGUgbGF0ZXN0IHN1YnRyYW5zYWN0aW9uLgorICAgVGhlIHZhcmlhYmxl IGNvbnRlbnQgaXMgb25seSBob2xkIGluIG1lbW9yeSwgYW5kIHRodXMgaXMgbm90IHBlcnNpc3Rl bnQuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRy aWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBUaGVp ciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDBiNjA5M2EwMGJhLi5mYTQ5ZTcyMzNkNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIsNyBAQCBzdGF0aWMgT2Jq ZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJ CSBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBub3RfbnVsbCwKIAkJCQkJCQkJ CSBib29sIGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3RyYW5zYWN0LAogCQkJCQkJ CQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pOwogCkBAIC01OSw2ICs2MCw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25z dCBjaGFyICp2YXJOYW1lLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKIAkJCQlib29sIG5vdF9u dWxsLAogCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCWJvb2wgaXNfdHJhbnNhY3QsCiAJCQkJ Tm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFj dGlvbikKIHsKQEAgLTEyMyw2ICsxMjUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAq dmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9i amVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJub3RudWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfaW1tdXRhYmxl KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc3RyYW5zYWN0IC0gMV0gPSBCb29sR2V0 RGF0dW0oaXNfdHJhbnNhY3QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRh Y3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAogCWlmICh2YXJE ZWZleHByKQpAQCAtMjY3LDYgKzI3MCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90 X2V4aXN0cywKIAkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKIAkJCQkJCQkgICBzdG10LT5pc19p bW11dGFibGUsCisJCQkJCQkJICAgc3RtdC0+aXNfdHJhbnNhY3QsCiAJCQkJCQkJICAgY29va2Vk X2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA1NTRiODc5NTU2OS4uOWI0MWVkMWFmNjIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTQ3LDYgKzQ3LDE5 IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9wSXRlbQogCVN1YlRyYW5zYWN0aW9u SWQgZGVsZXRpbmdfc3ViaWQ7CiB9IFNWYXJpYWJsZVhBY3REcm9wSXRlbTsKIAorLyoKKyAqIFVz ZWQgZm9yIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzLiBIb2xkcyBwcmV2IHZlcnNpb24uCisgKi8K K3R5cGVkZWYgc3RydWN0IFByZXZWYWx1ZQoreworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251 bGw7CisKKwlTdWJUcmFuc2FjdGlvbklkIG1vZGlmeV9zdWJpZDsKKworCXN0cnVjdCBQcmV2VmFs dWUgKnByZXZfdmFsdWU7Cit9IFByZXZWYWx1ZTsKKwogLyoKICAqIFRoZSB2YWx1ZXMgb2Ygc2Vz c2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5 CiAgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRl eHQgaW4gYmluYXJ5IGZvcm1hdC4KQEAgLTY4LDYgKzgxLDI1IEBAIHR5cGVkZWYgc3RydWN0IFNW YXJpYWJsZURhdGEKIAlib29sCQlpc251bGw7CiAJRGF0dW0JCXZhbHVlOwogCisJLyoKKwkgKiBX ZSBkb24ndCBuZWVkIHN0YWNrIHZlcnNpb25zIG1vZGlmaWVkIGluIHNhbWUgc3VidHJhbnNhY3Rp b24uCisJICogVXNlZCBieSB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBvbmx5LiBUaGUgdmFsdWUg b2YgdHJhbnNhY3Rpb25hbAorCSAqIHZhcmlhYmxlIGNhbiBiZSByZXR1cm5lZCBpbW1lZGlhdGVs eSB3aGVuIG1vZGlmeV9zdWJpZCBpcyBzYW1lCisJICogbGlrZSBjdXJyZW50IHN1YmlkLgorCSAq LworCVN1YlRyYW5zYWN0aW9uSWQgbW9kaWZ5X3N1YmlkOworCisJLyoKKwkgKiBXaGVuIHRoZSBt b2RpZnlfc3ViaWQgaXMgZGlmZmVyZW50IHRoYW4gY3VycmVudCBzdWJpZCwgdGhlbgorCSAqIHdl IG5lZWQgdG8gcmVjaGVjayB2ZXJzaW9ucyBhbmQgdGhyb3cgdmVyc2lvbnMgcmVsYXRlZCB0bwor CSAqIHJldmVydGVkIHRyYW5zYWN0aW9ucy4gV2hlbiBwdXJnZV9zdWJpZCBpcyBzYW1lIGxpa2Ug Y3VycmVudCBzdWJpZAorCSAqIHdlIGNhbiByZXR1cm4gdGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9u IHZhcmlhYmxlIHdpdGhvdXQgdGhpcworCSAqIHJlY2hlY2suCisJICovCisJU3ViVHJhbnNhY3Rp b25JZCBwdXJnZV9zdWJpZDsKKworCVByZXZWYWx1ZSAgKnByZXZfdmFsdWU7CisKIAlPaWQJCQl0 eXBpZDsKIAlpbnQxNgkJdHlwbGVuOwogCWJvb2wJCXR5cGJ5dmFsOwpAQCAtODYsNiArMTE4LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCiAJYm9vbAkJbm90X251bGw7CiAJYm9v bAkJaXNfaW1tdXRhYmxlOworCWJvb2wJCWlzX3RyYW5zYWN0OwogCiAJYm9vbAkJcmVzZXRfYXRf ZW94OwogCkBAIC0xMjUsNiArMTU4LDkgQEAgc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9 IGZhbHNlOwogICovCiBzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNl dF9hdF9lb3ggPSBmYWxzZTsKIAorLyogdHJ1ZSwgd2hlbiB0cmFuc2FjdGlvbmFsIHZhcmlhYmxl cyB3YXMgbW9kaWZpZWQgKi8KK3N0YXRpYyBib29sIGhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFs X3ZhcmlhYmxlcyA9IGZhbHNlOworCiAvKgogICogVGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNz aW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBpbW1lZGlhdGVseS4gIElmCiAgKiBwb3NzaWJs ZSwgd2UgZG8gdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4gIEJ1dCB3ZSBjYW5u b3QgZG8gdGhhdApAQCAtMTQwLDYgKzE3Niw3IEBAIHN0YXRpYyBMaXN0ICp4YWN0X2Ryb3BfaXRl bXMgPSBOSUw7CiAKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9k cm9wKE9pZCB2YXJpZCk7CiBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVf eGFjdF9kcm9wKE9pZCB2YXJpZCk7CitzdGF0aWMgYm9vbCBwdXJnZV9zZXNzaW9uX3ZhcmlhYmxl KFNWYXJpYWJsZSBzdmFyKTsKIAogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9u IHZhcmlhYmxlIGludmFsaWRhdGlvbi4KQEAgLTI5Miw4ICszMjksMjUgQEAgdW5yZWdpc3Rlcl9z ZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcChPaWQgdmFyaWQpCiAgKiBSZWxlYXNlIHN0b3JlZCB2 YWx1ZSwgZnJlZSBtZW1vcnkKICAqLwogc3RhdGljIHZvaWQKLWZyZWVfc2Vzc2lvbl92YXJpYWJs ZV92YWx1ZShTVmFyaWFibGUgc3ZhcikKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFy aWFibGUgc3ZhciwgYm9vbCBkZWVwX2ZyZWUpCiB7CisJaWYgKGRlZXBfZnJlZSkKKwl7CisJCVBy ZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJCVByZXZWYWx1ZSAqbmV4 dF92YWx1ZTsKKworCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJeworCQkJaWYgKCFzdmFyLT50eXBi eXZhbCkKKwkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIocHJldl92YWx1ZS0+dmFsdWUpKTsKKwor CQkJbmV4dF92YWx1ZSA9IHByZXZfdmFsdWUtPnByZXZfdmFsdWU7CisJCQlwZnJlZShwcmV2X3Zh bHVlKTsKKworCQkJcHJldl92YWx1ZSA9IG5leHRfdmFsdWU7CisJCX0KKwl9CisKIAkvKiBjbGVh biB0aGUgY3VycmVudCB2YWx1ZSAqLwogCWlmICghc3Zhci0+aXNudWxsKQogCXsKQEAgLTM5MCw3 ICs0NDQsNyBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQog CQkJewogCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CiAKLQkJCQlmcmVlX3Nlc3Npb25f dmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIsIHRydWUpOwogCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVN T1ZFLCBOVUxMKTsKIAkJCQlzdmFyID0gTlVMTDsKIAkJCX0KQEAgLTQyNiw2ICs0ODAsOTQgQEAg cmVtb3ZlX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94KHZvaWQpCiAJaGFzX3Nl c3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7CiB9CiAKKy8qCisgKiBy ZW1vdmUgcHJldiB2YWx1ZXMgYXQgZW94CisgKi8KK3N0YXRpYyB2b2lkCityZW1vdmVfcHJldl92 YWx1ZXNfYXRfZW94KGJvb2wgaXNDb21taXQpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsK KwlTVmFyaWFibGUJc3ZhcjsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCXJldHVybjsKKworCS8q IGxlYXZlIHF1Y2tseSwgd2hlbiB0aGVyZSBhcmUgbm90IHRoYXQgdmFyaWFibGVzICovCisJaWYg KCFoYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMpCisJCXJldHVybjsKKworCWhh c2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFy aWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChzdmFy LT5pc190cmFuc2FjdCAmJiBzdmFyLT5tb2RpZnlfc3ViaWQgIT0gSW52YWxpZFN1YlRyYW5zYWN0 aW9uSWQpCisJCXsKKwkJCWlmIChpc0NvbW1pdCkKKwkJCXsKKwkJCQlpZiAocHVyZ2Vfc2Vzc2lv bl92YXJpYWJsZShzdmFyKSkKKwkJCQl7CisJCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2 YXItPnByZXZfdmFsdWU7CisKKwkJCQkJd2hpbGUgKHByZXZfdmFsdWUpCisJCQkJCXsKKwkJCQkJ CVByZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJCQkJCWlmICghc3Zhci0+ dHlwYnl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJCQlwZnJlZShEYXR1bUdldFBv aW50ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQkJCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRf cHYtPnByZXZfdmFsdWU7CisJCQkJCQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQkJfQorCQkJCX0K KwkJCQllbHNlCisJCQkJeworCQkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnN2YXItPnZh cmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJCXN2YXIgPSBOVUxMOworCQkJCX0KKwkJCX0K KwkJCWVsc2UKKwkJCXsKKwkJCQlQcmV2VmFsdWUgKnByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3Zh bHVlOworCisJCQkJd2hpbGUgKHByZXZfdmFsdWUpCisJCQkJeworCQkJCQlQcmV2VmFsdWUgKmN1 cnJlbnRfcHYgPSBwcmV2X3ZhbHVlOworCisJCQkJCWlmIChjdXJyZW50X3B2LT5tb2RpZnlfc3Vi aWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCQkJCQlicmVhazsKKworCQkJCQlpZiAo IXN2YXItPnR5cGJ5dmFsICYmICFjdXJyZW50X3B2LT5pc251bGwpCisJCQkJCQlwZnJlZShEYXR1 bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQkJCQlwcmV2X3ZhbHVlID0gY3Vy cmVudF9wdi0+cHJldl92YWx1ZTsKKwkJCQkJcGZyZWUoY3VycmVudF9wdik7CisJCQkJfQorCisJ CQkJaWYgKHByZXZfdmFsdWUpCisJCQkJeworCQkJCQlzdmFyLT52YWx1ZSA9IHByZXZfdmFsdWUt PnZhbHVlOworCQkJCQlzdmFyLT5pc251bGwgPSBwcmV2X3ZhbHVlLT5pc251bGw7CisKKwkJCQkJ cGZyZWUocHJldl92YWx1ZSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2Vh cmNoKHNlc3Npb252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJ c3ZhciA9IE5VTEw7CisJCQkJfQorCQkJfQorCisJCQkvKiB3aGVuIHN2YXIgaXMgc3RpbGwgdmFs aWQgKG5vdCByZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgKi8KKwkJCWlmIChzdmFyKQorCQkJewor CQkJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCQkJCXN2 YXItPnByZXZfdmFsdWUgPSBOVUxMOworCQkJfQorCQl9CisJfQorCisJaGFzX21vZGlmaWVkX3Ry YW5zYWN0aW9uYWxfdmFyaWFibGVzID0gZmFsc2U7Cit9CisKIC8qCiAgICogUGVyZm9ybSBPTiBD T01NSVQgRFJPUCBmb3IgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzLAogICAqIGFuZCByZW1v dmUgYWxsIGRyb3BwZWQgdmFyaWFibGVzIGZyb20gbWVtb3J5LgpAQCAtNDczLDYgKzYxNSw4IEBA IEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIAkJcmVtb3ZlX2lu dmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModHJ1ZSk7CiAJfQogCisJcmVtb3ZlX3ByZXZfdmFsdWVz X2F0X2VveChpc0NvbW1pdCk7CisKIAkvKgogCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9w X2l0ZW1zLiBBbGwgcmVsYXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKIAkgKiBub3csIG9yIGxv c3QgaW5zaWRlIGFib3J0ZWQgdHJhbnNhY3Rpb24uCkBAIC02MTgsNiArNzYyLDcgQEAgc2V0dXBf c2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRl KQogCiAJc3Zhci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxsOwogCXN2YXItPmlzX2lt bXV0YWJsZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCXN2YXItPmlzX3RyYW5zYWN0ID0g dmFyZm9ybS0+dmFyaXN0cmFuc2FjdDsKIAogCXN2YXItPmlzX2RvbWFpbiA9IChnZXRfdHlwdHlw ZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CiAJc3Zhci0+ZG9tYWluX2No ZWNrX2V4dHJhID0gTlVMTDsKQEAgLTY0Myw2ICs3ODgsMTcgQEAgc2V0dXBfc2Vzc2lvbl92YXJp YWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCXN2YXItPmlz bnVsbCA9IHRydWU7CiAJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CiAKKwlpZiAoc3Zhci0+aXNf dHJhbnNhY3QpCisJeworCQlzdmFyLT5tb2RpZnlfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNh Y3Rpb25JZCgpOworCQloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVl OworCX0KKwllbHNlCisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlv bklkOworCisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwlz dmFyLT5wcmV2X3ZhbHVlID0gTlVMTDsKKwogCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKIAogCXN2 YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKQEAgLTY3 Niw2ICs4MzIsNjkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkLCBib29sIGlzX3dyaXRlKQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCisvKgor ICogVHJ5IHRvIHJlbW92ZSBhbGwgcHJldmlvdXMgdmVyc2lvbnMgcmVsYXRlZCB0byByZXZlcnRl ZCB0cmFuc2FjdGlvbnMuCisgKiBSZXR1cm5zIHRydWUsIHdoZW4gdmFsaWQgdmVyc2lvbiB3YXMg Zm91bmQuCisgKi8KK3N0YXRpYyBib29sCitwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyKQoreworCVN1YlRyYW5zYWN0aW9uSWQgY3VycmVudF9zdWJpZDsKKwlQcmV2VmFsdWUJ ICAgKnByZXZfdmFsdWU7CisJYm9vbAkJCWZvdW5kID0gdHJ1ZTsKKworCUFzc2VydChzdmFyLT5p c190cmFuc2FjdCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1YmlkID09IEludmFsaWRTdWJUcmFu c2FjdGlvbklkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50 U3ViVHJhbnNhY3Rpb25JZCgpOworCisJaWYgKHN2YXItPm1vZGlmeV9zdWJpZCA9PSBjdXJyZW50 X3N1YmlkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChzdmFyLT5wdXJnZV9zdWJpZCA9PSBjdXJy ZW50X3N1YmlkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChTdWJUcmFuc2FjdGlvbklzQWN0aXZl KHN2YXItPm1vZGlmeV9zdWJpZCkpCisJeworCQlzdmFyLT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRf c3ViaWQ7CisJCXJldHVybiB0cnVlOworCX0KKworCXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3Zh bHVlOworCisJd2hpbGUgKHByZXZfdmFsdWUpCisJeworCQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYg PSBwcmV2X3ZhbHVlOworCisJCWlmIChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxp ZFN1YlRyYW5zYWN0aW9uSWQgfHwKKwkJCVN1YlRyYW5zYWN0aW9uSXNBY3RpdmUoY3VycmVudF9w di0+bW9kaWZ5X3N1YmlkKSkKKwkJeworCQkJc3Zhci0+dmFsdWUgPSBjdXJyZW50X3B2LT52YWx1 ZTsKKwkJCXN2YXItPmlzbnVsbCA9IGN1cnJlbnRfcHYtPmlzbnVsbDsKKwkJCXN2YXItPm1vZGlm eV9zdWJpZCA9IGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZDsKKworCQkJcHJldl92YWx1ZSA9IGN1 cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCQlwZnJlZShjdXJyZW50X3B2KTsKKworCQkJZm91bmQg PSB0cnVlOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFjdXJy ZW50X3B2LT5pc251bGwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFs dWUpKTsKKworCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJcGZyZWUo Y3VycmVudF9wdik7CisJfQorCisJc3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisJc3Zh ci0+cHVyZ2Vfc3ViaWQgPSBjdXJyZW50X3N1YmlkOworCisJcmV0dXJuIGZvdW5kOworfQorCiAv KgogICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMg Y29waWVkIHRvCiAgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KQEAgLTY4 OCw2ICs5MDcsMTAgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVt IHZhbHVlLCBib29sIGlzbnVsbCkKIAlEYXR1bQkJbmV3dmFsOwogCVNWYXJpYWJsZURhdGEgbG9j c3ZhciwKIAkJCSAgICpfc3ZhcjsKKwlTdWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQgPSBH ZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCVN1YlRyYW5zYWN0aW9uSWQgcHJldl9wdXJn ZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCWJvb2wJCXNhdmVfcHJldl92YWx1 ZTsKKwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOwogCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2VydCgh aXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CkBAIC03MjMsNiArOTQ2LDIxIEBAIHNldF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwp CiAJZWxzZQogCQlfc3ZhciA9IHN2YXI7CiAKKwlpZiAoX3N2YXItPmlzX3RyYW5zYWN0ICYmIF9z dmFyLT5jcmVhdGVfbHNuID09IHN2YXItPmNyZWF0ZV9sc24pCisJeworCQlBc3NlcnQoc3Zhci0+ dHlwaWQgPT0gX3N2YXItPnR5cGlkKTsKKwkJQXNzZXJ0KHN2YXItPnR5cGJ5dmFsID09IF9zdmFy LT50eXBieXZhbCk7CisJCUFzc2VydChzdmFyLT50eXBsZW4gPT0gX3N2YXItPnR5cGxlbik7CisK KwkJc2F2ZV9wcmV2X3ZhbHVlID0gc3Zhci0+bW9kaWZ5X3N1YmlkICE9IGN1cnJlbnRfc3ViaWQ7 CisJCXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCX0KKwllbHNlCisJeworCQlzYXZl X3ByZXZfdmFsdWUgPSBmYWxzZTsKKwkJcHJldl92YWx1ZSA9IE5VTEw7CisJfQorCiAJaWYgKCFp c251bGwpCiAJewogCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hU byhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKQEAgLTczNCw3ICs5NzIsMzcgQEAgc2V0X3Nlc3Np b25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAll bHNlCiAJCW5ld3ZhbCA9IHZhbHVlOwogCi0JZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCWlmIChzYXZlX3ByZXZfdmFsdWUpCisJeworCQl2b2xhdGlsZSBQcmV2VmFsdWUgKm5l d19wcmV2X3ZhbHVlOworCisJCVBHX1RSWSgpOworCQl7CisJCQluZXdfcHJldl92YWx1ZSA9IE1l bW9yeUNvbnRleHRBbGxvYyhTVmFyaWFibGVNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkJCQkJc2l6 ZW9mKFByZXZWYWx1ZSkpOworCQl9CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIHJlbGVhc2Ug bWVtIGZyb20gcGVyc2lzdGVudCBjb250ZW50ICovCisJCQlpZiAobmV3dmFsICE9IHZhbHVlKQor CQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihuZXd2YWwpKTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJ CX0KKwkJUEdfRU5EX1RSWSgpOworCisJCW5ld19wcmV2X3ZhbHVlLT52YWx1ZSA9IHN2YXItPnZh bHVlOworCQluZXdfcHJldl92YWx1ZS0+aXNudWxsID0gc3Zhci0+aXNudWxsOworCQluZXdfcHJl dl92YWx1ZS0+bW9kaWZ5X3N1YmlkID0gc3Zhci0+bW9kaWZ5X3N1YmlkOworCQluZXdfcHJldl92 YWx1ZS0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisKKwkJcHJldl92YWx1ZSA9IChQcmV2VmFs dWUgKikgbmV3X3ByZXZfdmFsdWU7CisJCXByZXZfcHVyZ2Vfc3ViaWQgPSBzdmFyLT5wdXJnZV9z dWJpZDsKKworCQloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOwor CisJfQorCWVsc2UKKwkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHByZXZfdmFs dWUgPT0gTlVMTCk7CiAKIAllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wi IChvaWQ6JXUpIGhhcyBuZXcgdmFsdWUiLAogCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLApAQCAtNzQ3LDYgKzEwMTUsOSBA QCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wg aXNudWxsKQogCiAJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CiAJc3Zhci0+aXNudWxsID0gaXNudWxs OworCXN2YXItPm1vZGlmeV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisJc3Zhci0+cHVyZ2Vfc3Vi aWQgPSBwcmV2X3B1cmdlX3N1YmlkOworCXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOwog CiAJLyogZG9uJ3QgYWxsb3cgbW9yZSBjaGFuZ2VzIG9mIHZhbHVlIHdoZW4gdmFyaWFibGUgaXMg SU1NVVRBQkxFICovCiAJaWYgKHN2YXItPmlzX2ltbXV0YWJsZSkKQEAgLTg0OCw2ICsxMTE5LDgg QEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCWVsc2UKIAkJc3Zhci0+aXNfdmFs aWQgPSBmYWxzZTsKIAorcmVpbml0OgorCiAJLyoKIAkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHll dCBpbml0aWFsaXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CiAJICogYmUg dmFsaWRhdGVkLgpAQCAtODgwLDYgKzExNTMsMjggQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lk IHZhcmlkKQogCQkJIHZhcmlkKTsKIAl9CiAKKwkvKgorCSAqIFRyYW5zYWN0aW9uYWwgdmFyaWFi bGVzIHNob3VsZCBiZSBwdXJnZWQgYmVmb3JlIChyZW1vdmUKKwkgKiB2ZXJzaW9ucyBjcmVhdGVk IGJ5IHBvc3NpYmx5IHJldmVydGVkIHN1YnRyYW5zYWN0aW9ucykuCisJICovCisJaWYgKHN2YXIt PmlzX3RyYW5zYWN0ICYmCisJCXN2YXItPm1vZGlmeV9zdWJpZCAhPSBHZXRDdXJyZW50U3ViVHJh bnNhY3Rpb25JZCgpICYmCisJCXN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNh Y3Rpb25JZCkKKwl7CisJCWlmICghcHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJewor CQkJLyogZm9yY2UgcmVpbml0ICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCisJCQkv KgorCQkJICogSW4gbmV4dCBpdGVyYXRpb24gbW9kaWZ5X3N1YmlkIHNob3VsZCBiZQorCQkJICog SW52YWxpZFN1YlRyYW5zYWN0aW9uSWQgb3IgY3VycmVudCBzdWJpZCwKKwkJCSAqIHNvIHRoZXJl IGlzIG5vdCByaXNrIG9mIGluZmluaXR5IGN5Y2xlLgorCQkJICovCisJCQlnb3RvIHJlaW5pdDsK KwkJfQorCX0KKwogCS8qIGVuc3VyZSB0aGUgcmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0aGUg Y29ycmVjdCBkb21haW4gKi8KIAlpZiAoc3Zhci0+aXNfZG9tYWluKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDhlODY5MDRiNmFhLi42YTg5OGE5NzhmNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02NzUsNyArNjc1 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29iamVjdF9jb25zdHJ1Y3Rv cl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVjdG9yX251bGxfY2xhdXNl X29wdAogCi0ldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRhYmxlCisldHlwZSA8 Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRhYmxlIE9wdFRyYW5zYWN0aW9uYWwKIAogLyoK ICAqIE5vbi1rZXl3b3JkIHRva2VuIHR5cGVzLiAgVGhlc2UgYXJlIGhhcmQtd2lyZWQgaW50byB0 aGUgImZsZXgiIGxleGVyLgpAQCAtNzgwLDcgKzc4MCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVj dXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAJU1VCU0NSSVBUSU9OIFNVQlNUUklORyBTVVBQT1JUIFNZTU1FVFJJQyBTWVNJRCBTWVNU RU1fUCBTWVNURU1fVVNFUgogCiAJVEFCTEUgVEFCTEVTIFRBQkxFU0FNUExFIFRBQkxFU1BBQ0Ug VEFSR0VUIFRFTVAgVEVNUExBVEUgVEVNUE9SQVJZIFRFWFRfUCBUSEVOCi0JVElFUyBUSU1FIFRJ TUVTVEFNUCBUTyBUUkFJTElORyBUUkFOU0FDVElPTiBUUkFOU0ZPUk0KKwlUSUVTIFRJTUUgVElN RVNUQU1QIFRPIFRSQUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TQUNUSU9OQUwgVFJBTlNGT1JNCiAJ VFJFQVQgVFJJR0dFUiBUUklNIFRSVUVfUAogCVRSVU5DQVRFIFRSVVNURUQgVFlQRV9QIFRZUEVT X1AKIApAQCAtNTI3NCwzMSArNTI3NCwzMyBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgog ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFU RSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlw ZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIg WGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgT3B0VHJhbnNhY3Rpb25hbCBP cHRJbW11dGFibGUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rp b25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUo Q3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJ CQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDU7Ci0JCQkJCW4t PnR5cGVOYW1lID0gJDc7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAk ODsKLQkJCQkJbi0+bm90X251bGwgPSAkOTsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKLQkJCQkJ bi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKKwkJCQkJJDYtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJ CQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQ0OworCQkJCQluLT5pc190cmFuc2FjdCA9ICQzOworCQkJ CQluLT52YXJpYWJsZSA9ICQ2OworCQkJCQluLT50eXBlTmFtZSA9ICQ4OworCQkJCQluLT5jb2xs Q2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCW4tPm5vdF9udWxsID0gJDEwOwor CQkJCQluLT5kZWZleHByID0gJDExOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDEyOwogCQkJ CQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9 Ci0JCQl8IENSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElT VFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRO b3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCXwgQ1JF QVRFIE9wdFRlbXAgT3B0VHJhbnNhY3Rpb25hbCBPcHRJbW11dGFibGUgVkFSSUFCTEUgSUZfUCBO T1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1 c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJ CQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Np b25WYXJTdG10KTsKLQkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4tPmlzX2lt bXV0YWJsZSA9ICQzOwotCQkJCQluLT52YXJpYWJsZSA9ICQ4OwotCQkJCQluLT50eXBlTmFtZSA9 ICQxMDsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKLQkJCQkJ bi0+bm90X251bGwgPSAkMTI7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkMTM7Ci0JCQkJCW4tPlhhY3RF bmRBY3Rpb24gPSAkMTQ7CisJCQkJCSQ5LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5p c19pbW11dGFibGUgPSAkNDsKKwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAkMzsKKwkJCQkJbi0+dmFy aWFibGUgPSAkOTsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkMTE7CisJCQkJCW4tPmNvbGxDbGF1c2Ug PSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTI7CisJCQkJCW4tPm5vdF9udWxsID0gJDEzOworCQkJCQlu LT5kZWZleHByID0gJDE0OworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDE1OwogCQkJCQluLT5p Zl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KQEAgLTUz MjYsNiArNTMyOCwxMiBAQCBPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJeyAkJCA9IHRy dWU7IH0KIAkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJCTsKIAorT3B0 VHJhbnNhY3Rpb25hbDoKKwkJCVRSQU5TQUNUSU9OCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJ fCBUUkFOU0FDVElPTkFMCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qIEVNUFRZICovCQkJ CQkJCXsgJCQgPSBmYWxzZTsgfQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAq IEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQREFURSBbIFRPIHZlcnNpb24gXQpAQCAtMTgxNzQsNiAr MTgxODIsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFRFWFRfUAogCQkJfCBUSUVTCiAJ CQl8IFRSQU5TQUNUSU9OCisJCQl8IFRSQU5TQUNUSU9OQUwKIAkJCXwgVFJBTlNGT1JNCiAJCQl8 IFRSSUdHRVIKIAkJCXwgVFJVTkNBVEUKQEAgLTE4ODI0LDYgKzE4ODMzLDcgQEAgYmFyZV9sYWJl bF9rZXl3b3JkOgogCQkJfCBUSU1FU1RBTVAKIAkJCXwgVFJBSUxJTkcKIAkJCXwgVFJBTlNBQ1RJ T04KKwkJCXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFOU0ZPUk0KIAkJCXwgVFJFQVQKIAkJCXwg VFJJR0dFUgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNzI3ZjZhMThmMjUuLmUzOTFmOGUxYmEzIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKQEAgLTU0NDQsNiArNTQ0NCw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQog CWludAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFybm90bnVsbDsKIAlpbnQJCQlpX3Zh cmlzaW1tdXRhYmxlOworCWludAkJCWlfdmFyaXN0cmFuc2FjdDsKIAlpbnQJCQlpX3ZhcmFjbDsK IAlpbnQJCQlpX2FjbGRlZmF1bHQ7CiAJaW50CQkJaSwKQEAgLTU0NjYsNiArNTQ2Nyw3IEBAIGdl dFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJCQkgICIgICAgICAgRU5EIEFTIHZhcmNvbGxh dGlvbixcbiIKIAkJCQkJICAiICAgICAgIHYudmFybm90bnVsbCxcbiIKIAkJCQkJICAiICAgICAg IHYudmFyaXNpbW11dGFibGUsXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcmlzdHJhbnNhY3QsXG4i CiAJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwwKSBh cyB2YXJkZWZleHByLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4i CiAJCQkJCSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVs dFxuIgpAQCAtNTQ4OCw2ICs1NDkwLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJ aV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAJaV92YXJu b3RudWxsID0gUFFmbnVtYmVyKHJlcywgInZhcm5vdG51bGwiKTsKIAlpX3ZhcmlzaW1tdXRhYmxl ID0gUFFmbnVtYmVyKHJlcywgInZhcmlzaW1tdXRhYmxlIik7CisJaV92YXJpc3RyYW5zYWN0ID0g UFFmbnVtYmVyKHJlcywgInZhcmlzdHJhbnNhY3QiKTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1i ZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFjbCA9IFBRZm51bWJlcihyZXMsICJ2YXJhY2wi KTsKQEAgLTU1MTYsNiArNTUxOSw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQl2 YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJj b2xsYXRpb24pKTsKIAkJdmFyaW5mb1tpXS52YXJub3RudWxsID0gKihQUWdldHZhbHVlKHJlcywg aSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOwogCQl2YXJpbmZvW2ldLnZhcmlzaW1tdXRhYmxlID0g KihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2ltbXV0YWJsZSkpID09ICd0JzsKKwkJdmFyaW5m b1tpXS52YXJpc3RyYW5zYWN0ID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc3RyYW5zYWN0 KSkgPT0gJ3QnOwogCiAJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1 ZShyZXMsIGksIGlfdmFyYWNsKSk7CiAJCXZhcmluZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdf c3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQpKTsKQEAgLTU1NjMsNiArNTU2 Nyw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZh cmluZm8pCiAJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5k YWN0aW9uOwogCWNvbnN0IGNoYXIgKnZhcmlzaW1tdXRhYmxlOworCWNvbnN0IGNoYXIgKnZhcmlz dHJhbnNhY3Q7CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCWJvb2wJCXZhcm5vdG51bGw7CiAKQEAg LTU1ODAsMTIgKzU1ODUsMTMgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZh cmlhYmxlSW5mbyAqdmFyaW5mbykKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRp b247CiAJdmFybm90bnVsbCA9IHZhcmluZm8tPnZhcm5vdG51bGw7CiAJdmFyaXNpbW11dGFibGUg PSB2YXJpbmZvLT52YXJpc2ltbXV0YWJsZSA/ICJJTU1VVEFCTEUgIiA6ICIiOworCXZhcmlzdHJh bnNhY3QgPSB2YXJpbmZvLT52YXJpc3RyYW5zYWN0ID8gIlRSQU5TQUNUSU9OQUwgIiA6ICIiOwog CiAJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLAogCQkJCQkg IHF1YWx2YXJuYW1lKTsKIAotCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFICVzVkFS SUFCTEUgJXMgQVMgJXMiLAotCQkJCQkgIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFy dHlwbmFtZSk7CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXMlc1ZBUklBQkxF ICVzIEFTICVzIiwKKwkJCQkJICB2YXJpc3RyYW5zYWN0LCB2YXJpc2ltbXV0YWJsZSwgcXVhbHZh cm5hbWUsIHZhcnR5cG5hbWUpOwogCiAJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKIAl7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaAppbmRleCAwYWU0MDZmODU1MS4uMTJhZjM0NTQ3YzEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApA QCAtNzI0LDYgKzcyNCw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAljb25zdCBj aGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkgc3RyaW5nICovCiAJYm9v bAkJdmFybm90bnVsbDsKIAlib29sCQl2YXJpc2ltbXV0YWJsZTsKKwlib29sCQl2YXJpc3RyYW5z YWN0OwogfSBWYXJpYWJsZUluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv dC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4 IDVmODBiZDRlNzlhLi5lMDBhOTc5ZWU2YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAg LTQxNDQsNiArNDE0NCw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUg VFJBTlNBQ1RJT05BTCBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAg ICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVh dGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFRSQU5TQUNUSU9OQUwg VkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOCBBUyBpbnRlZ2VyJywKKwkJcmVnZXhwID0+IHFy L14KKwkJCVxRQ1JFQVRFIFRSQU5TQUNUSU9OQUwgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxl OCBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVt cF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1 bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1 bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBUUkFOU0FDVElP TkFMIElNTVVUQUJMRSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAg ICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVh dGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFRSQU5TQUNUSU9OQUwg SU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTkgQVMgaW50ZWdlcicsCisJCXJl Z2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBUUkFOU0FDVElPTkFMIElNTVVUQUJMRSBWQVJJQUJM RSBkdW1wX3Rlc3QudmFyaWFibGU5IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJ JWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9k YXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hl bWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisK IAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJ Y3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRl eCAwNzgzNWFhMmJhYi4uMTE5OTg2ODg2ZTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MzMxLDcgKzUzMzEsNyBA QCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4 cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0 ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7 ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1u c1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24g PCAxODAwMDApCiAJewpAQCAtNTM1NCw2ICs1MzU0LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBj aGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRf dXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIE5PVCB2LnZhcm5v dG51bGwgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIE5PVCB2LnZhcmlzaW1tdXRhYmxlIGFzIFwi JXNcIixcbiIKKwkJCQkJICAiICB2LnZhcmlzdHJhbnNhY3QgYXMgXCIlc1wiLFxuIgogCQkJCQkg ICIgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAwKSBhcyBcIiVzXCIsXG4i CiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4g J2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgpAQCAtNTM2Niw2ICs1MzY3LDcgQEAgbGlzdFZh cmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJPd25lciIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTnVsbGFibGUiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0 aW9uYWwiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0 X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IGY1NDdiY2UxYTEwLi5jNDYwNzhhNzAwZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpA QCAtMTMwNSw2ICsxMzA1LDggQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0 ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFCTEUgLi4uICovCiAJeyJU RVhUIFNFQVJDSCIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCXsiVFJBTlNGT1JNIiwgTlVMTCwgTlVM TCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fQUxURVJ9LAorCXsiVFJBTlNBQ1RJT05BTCIsIE5VTEws IE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZv ciBDUkVBVEUgVFJBTlNBQ1RJT05BTAorCQkJCQkJCQkJCQkJCQkJCQkJCQkqIFZBUklBQkxFIC4u LiAqLwogCXsiVFJJR0dFUiIsICJTRUxFQ1QgdGduYW1lIEZST00gcGdfY2F0YWxvZy5wZ190cmln Z2VyIFdIRVJFIHRnbmFtZSBMSUtFICclcycgQU5EIE5PVCB0Z2lzaW50ZXJuYWwifSwKIAl7IlRZ UEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzfSwKIAl7IlVOSVFV RSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1AgfCBUSElOR19OT19BTFRF Un0sIC8qIGZvciBDUkVBVEUgVU5JUVVFCkBAIC0zOTY2LDggKzM5NjgsMTEgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJfQogLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBp cyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkv KiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiVFJBTlNBQ1RJT058VFJBTlNBQ1RJT05BTCIpKQorCQlDT01QTEVU RV9XSVRIKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygi Q1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlRFTVB8 VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIlRS QU5TQUNUSU9OfFRSQU5TQUNUSU9OQUwiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKIAkJCSBU YWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVU RV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55 LCAiQVMiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCBjZjIxZTA0MjZhNy4uNDU0 YmIyOTcwOTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTYyLDYgKzYyLDkgQEAg Q0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBkb24ndCBh bGxvdyBjaGFuZ2VzICovCiAJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CiAK KwkvKiBzdXBwb3J0cyB0cmFuc2FjdGlvbnMgKi8KKwlib29sCQl2YXJpc3RyYW5zYWN0IEJLSV9E RUZBVUxUKGYpOworCiAJLyogYWN0aW9uIG9uIHRyYW5zYWN0aW9uIGVuZCAqLwogCWNoYXIJCXZh cnhhY3RlbmRhY3Rpb24gQktJX0RFRkFVTFQobik7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCAyNjNiNjNhMzdhZi4uZDcyZDEyZDgyMGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM1 MzksNiArMzUzOSw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJYm9v bAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLwog CWJvb2wJCW5vdF9udWxsOwkJLyogZGlzYWxsb3cgbnVsbHMgKi8KIAlib29sCQlpc19pbW11dGFi bGU7CS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8KKwlib29sCQlpc190cmFuc2FjdDsJLyogc3Vw cG9ydHMgdHJhbnNhY3Rpb25zICovCiAJTm9kZQkgICAqZGVmZXhwcjsJCS8qIGRlZmF1bHQgZXhw cmVzc2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBh Y3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggNDMx MTY3ZjZiNDMuLmUxOWI5NTc3MzlmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC00NTYsNiArNDU2LDcg QEAgUEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBDT0xfTkFNRV9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFC RUwpCiBQR19LRVlXT1JEKCJ0cmFpbGluZyIsIFRSQUlMSU5HLCBSRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBUUkFOU0FDVElPTiwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgidHJhbnNhY3Rpb25hbCIsIFRS QU5TQUNUSU9OQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InRyYW5zZm9ybSIsIFRSQU5TRk9STSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgidHJlYXQiLCBUUkVBVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInRyaWdnZXIiLCBUUklHR0VSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCBlYzg3MDE3MmZhYS4uMDYx MzA3NjIxY2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNjAyMCwyMCArNjAy MCwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8g cmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIg Q09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAg ICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGlj IHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwg VHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nl c3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8 IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 IHQgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2 YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAg IFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAg ICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0 aW9uICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwg Y2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg dCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUg ZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIg ICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlw ZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUg fCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAg fCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgor ICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZh cjE7CkBAIC02NTAxLDkgKzY1MDEsOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxk ViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlv biB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwg ZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBO dWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVk IHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY2NzYsOSArNjY3Niw5IEBAIGltcHJvcGVyIHF1 YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2Vy IgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51 bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25h bCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50 IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjgxNSw5ICs2 ODE1LDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViBy ZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1h IHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlw ZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25h bCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAog LS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFs aWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKaW5kZXggYmZiOTIyNGMyZDkuLmMyODNmZTQ4Y2E2IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjU5MiwzICsyNTky LDEwMyBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiBFUlJPUjogIHNlc3Npb24gdmFy aWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKIERST1AgVkFSSUFCTEUg dmFyMTsKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKK0NSRUFURSBUUkFOU0FDVElP TiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDsK KyAgU0VMRUNUIHR2OworIHR2ICAKKy0tLS0tCisgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOwor U0VMRUNUIHR2OworIHR2IAorLS0tLQorICAwCisoMSByb3cpCisKK0xFVCB0diA9IDEwMDsKK0JF R0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworU0VMRUNUIHR2OworICB0diAgCistLS0t LS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7 CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7CisgIHR2 ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKK0JF R0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBP SU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0 diAKKy0tLS0KKyAgMgorKDEgcm93KQorCisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7 CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitST0xMQkFDSzsKK1NF TEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVU IHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAg TEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisg IDIKKygxIHJvdykKKworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1Qg dHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworQ09NTUlUOworU0VMRUNUIHR2OworIHR2 IAorLS0tLQorICAxCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdHY7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYTU0NjY1ZGQxMGIuLmMzNzVkZDhi MTllIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0x ODA4LDMgKzE4MDgsNjEgQEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMwOwogCiBEUk9QIFZB UklBQkxFIHZhcjE7CisKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMKK0NSRUFURSBU UkFOU0FDVElPTiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworCitCRUdJTjsKKyAgTEVU IHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCitMRVQg dHYgPSAxMDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsKKworU0VMRUNUIHR2 OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2OworUk9MTEJBQ0s7CisKK1NF TEVDVCB0djsKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKKworQkVHSU47CisgIExFVCB0diA9 IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0 diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworICBMRVQgdHYgPSAxMDsKK1JP TExCQUNLIFRPIHgxOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCitC RUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQ T0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7Cisg IExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKK0NPTU1JVDsKKwor U0VMRUNUIHR2OworCitEUk9QIFZBUklBQkxFIHR2OwotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0019-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20250212-0019-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr0n3 RnJvbSBkNzY0OWRjNGM2YzI5ZWVjMzI2MDVhYmMwYjM0ZjJjNTIzNGJmNTRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE5 LzIyXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCAxNzUzOTBjNmMyOC4uMGViNTJmYTIwODEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3NDQsOCArNDc0NCw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5NDksMjEgKzQ5NDgsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t dXRhdG9yKE5vZGUgKm5vZGUsCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CisKKworCS8qCisJICogU1FMIGZ1bmN0aW9ucyBjYW4gY29udGFpbiB0d28gZGlmZmVyZW50IGtp bmQgb2YgcGFyYW1zLiBUaGUgbm9kZXMgd2l0aAorCSAqIHBhcmFta2luZCBQQVJBTV9FWFRFUk4g YXJlIHJlbGF0ZWQgdG8gZnVuY3Rpb24ncyBhcmd1bWVudHMgKGFuZCBzaG91bGQKKwkgKiBiZSBy ZXBsYWNlZCBpbiB0aGlzIHN0ZXApLCBiZWNhdXNlIHRoaXMgaXMgaG93IHdlIGFwcGx5IHRoZSBm dW5jdGlvbidzCisJICogYXJndW1lbnRzIGZvciBhbiBleHByZXNzaW9uLgorCSAqCisJICogVGhl IG5vZGVzIHdpdGggcGFyYW1raW5kIFBBUkFNX1ZBUklBQkxFIGFyZSByZWxhdGVkIHRvIHVzYWdl IG9mIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMuIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBwYXNzZWQgdG8gZXhwcmVzc2lvbgorCSAqIGJ5IGV4cHJlc3Npb24gYXJndW1l bnRzLCBzbyBpdCBzaG91bGQgbm90IGJlIHJlcGxhY2VkIGhlcmUgYnkKKwkgKiBmdW5jdGlvbidz IGFyZ3VtZW50cy4KKwkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhURVJOICYmCisJ CQlwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX1ZBUklBQkxFKQogCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgcGFyYW1raW5kOiAlZCIsIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwotCQlpZiAo cGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJhbS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQot CQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiAK LQkJLyogQ291bnQgdXNhZ2Ugb2YgcGFyYW1ldGVyICovCi0JCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJeworCQkJaWYgKHBhcmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQg PiBjb250ZXh0LT5uYXJncykKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIs IHBhcmFtLT5wYXJhbWlkKTsKIAotCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBh cmcgYW5kIHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KLQkJLyogV2UgZG9uJ3QgbmVlZCB0 byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCi0JCXJldHVybiBs aXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQkJLyogQ291bnQg dXNhZ2Ugb2YgcGFyYW1ldGVyICovCisJCQljb250ZXh0LT51c2Vjb3VudHNbcGFyYW0tPnBhcmFt aWQgLSAxXSsrOworCisJCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBhcmcgYW5k IHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KKwkJCS8qIFdlIGRvbid0IG5lZWQgdG8gY29w eSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLworCQkJcmV0dXJuIGxpc3Rf bnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJCX0KIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRl cnNfbXV0YXRvciwgY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDI2OTBjZTlkMzA5Li4yMmRiZGZkYjQyNiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAg LTQ4MCw3ICs0ODAsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4KDIwKTsKIEVSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDogIFNRTCBm dW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKIEVSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDog IFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCkBA IC01ODcsMTAgKzU4NiwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CiAKIC0t IGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNU IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEoc3FsZngyKCdIZWxsbyc6OmNo YXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8ICcsICc6OnRleHQpIHx8ICgo dmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkKICgyIHJvd3MpCiAKIERST1Ag RlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0018-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20250212-0018-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr0v4 RnJvbSA0ZjcwZmI1YzcyNGUyNzk4MzZjNzIwODYwOGFiODZkN2ZmMzQ5NWNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNiArKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl ci5jICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oICAgICAg ICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAg ICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jICAgICAgICAgICAgICAgICB8IDIxICsrKysrKysKIHNyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9ncmFtLnkgICAgICAgICAgICAgICAgICB8IDI5ICsrKysrKysrKy0KIHNyYy9wbC9wbHBn c3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCAgICAgICB8ICAxICsKIHNyYy9wbC9wbHBnc3Fs L3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5oICAgICB8ICAxICsKIHNyYy9wbC9wbHBnc3FsL3Ny Yy9wbHBnc3FsLmggICAgICAgICAgICAgICAgICB8IDEyICsrKysKIC4uLi9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8ICA2ICstCiBzcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgMSArCiAxNiBmaWxlcyBjaGFuZ2VkLCAxNjkg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMKaW5kZXggMzY3NzUxZWQzNDQuLjU1NGI4Nzk1NTY5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC05NDgsNiArOTQ4LDIyIEBAIFNldFNlc3Np b25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKIAlzZXRfc2Vz c2lvbl92YXJpYWJsZShzdmFyLCB2YWx1ZSwgaXNOdWxsKTsKIH0KIAorLyoKKyAqIFdyYXBwZXIg YXJvdW5kIFNldFNlc3Npb25WYXJpYWJsZSB3aXRoIHBlcm1pc3Npb24gY2hlY2tzLgorICovCit2 b2lkCitTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVjayhPaWQgdmFyaWQsIERhdHVt IHZhbHVlLCBib29sIGlzTnVsbCkKK3sKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJLyogaXMg dGhlIGNhbGxlciBhbGxvd2VkIHRvIHVwZGF0ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8gKi8KKwlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0 VXNlcklkKCksIEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJ CWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsIHZhbHVl LCBpc051bGwpOworfQorCiAvKgogICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIHN0b3Jl ZCBpbiBhIHZhcmlhYmxlLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4IGVjYjJlNGNjYWExLi5hNzc1 ZDRmYjNiZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5OTEsNiArMjk5MSw5IEBAIF9TUElfZXJyb3Jf Y2FsbGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zOgog CQkJCWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJ CWJyZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6CisJCQkJZXJyY29udGV4dCgi TEVUIHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0Ogog CQkJCWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMKaW5kZXggNDZhMjJmZjVjOTQuLjJkZTBkMjNjOGUzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKQEAgLTIwMTIsNiArMjAxMiwxOCBAQCB0cmFuc2Zvcm1MZXRTdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKIAogCXN0bXQtPnF1ZXJ5ID0gKE5vZGUgKikg cXVlcnk7CiAKKwkvKgorCSAqIEluc2lkZSBQTC9wZ1NRTCB3ZSBkb24ndCB3YW50IHRvIGV4ZWN1 dGUgTEVUIHN0YXRlbWVudCBhcyB1dGlsaXR5CisJICogY29tbWFuZCwgYmVjYXVzZSBpdCBkaXNh bGxvdyB0byBleGVjdXRlIGV4cHJlc3Npb24gYXMgc2ltcGxlCisJICogZXhwcmVzc2lvbi4gU28g Zm9yIFBML3BnU1FMIHdlIGhhdmUgZXh0cmEgcGF0aCwgYW5kIHdlIHJldHVybiBTRUxFQ1QuCisJ ICogVGhlbiBpdCBjYW4gYmUgZXhlY3V0ZWQgYnkgZXhlY19ldmFsX2V4cHIuIFJlc3VsdCBpcyBk aXJyZWN0bHkgYXNzaWduZWQKKwkgKiB0byB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpbnNpZGUg UEwvcGdTUUwgTEVUIHN0YXRlbWVudCBoYW5kbGVyLiBUaGlzCisJICogaXMgZXh0cmEgY29kZSwg ZXh0cmEgcGF0aCwgYnV0IHBvc3NpYmlsaXR5IHRvIGdldCBmYXN0ZXIgZXhlY3V0aW9uIGlzCisJ ICogdG9vIGF0dHJhY3RpdmUuCisJICovCisJaWYgKHN0bXQtPnBscGdzcWxfbW9kZSkKKwkJcmV0 dXJuIHF1ZXJ5OworCiAJLyogcmVwcmVzZW50IHRoZSBjb21tYW5kIGFzIGEgdXRpbGl0eSBRdWVy eSAqLwogCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKIAlyZXN1bHQtPmNvbW1hbmRUeXBlID0g Q01EX1VUSUxJVFk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAxMWFlOTZhNDM5Ny4uOGU4NjkwNGI2YWEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQpAQCAtODI0LDYgKzgyNCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZl Vmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAl dG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04xCiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04y CiAldG9rZW4JCU1PREVfUExQR1NRTF9BU1NJR04zCisldG9rZW4JCU1PREVfUExQR1NRTF9MRVQK IAogCiAvKiBQcmVjZWRlbmNlOiBsb3dlc3QgdG8gaGlnaGVzdCAqLwpAQCAtOTU1LDYgKzk1Niwx MyBAQCBwYXJzZV90b3BsZXZlbDoKIAkJCQlwZ195eWdldF9leHRyYSh5eXNjYW5uZXIpLT5wYXJz ZXRyZWUgPQogCQkJCQlsaXN0X21ha2UxKG1ha2VSYXdTdG10KChOb2RlICopIG4sIEAyKSk7CiAJ CQl9CisJCQl8IE1PREVfUExQR1NRTF9MRVQgTGV0U3RtdAorCQkJeworCQkJCUxldFN0bXQgKm4g PSAoTGV0U3RtdCAqKSAkMjsKKwkJCQluLT5wbHBnc3FsX21vZGUgPSB0cnVlOworCQkJCXBnX3l5 Z2V0X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9CisJCQkJCWxpc3RfbWFrZTEobWFrZVJh d1N0bXQoKE5vZGUgKikgbiwgMCkpOworCQkJfQogCQk7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VyLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMKaW5k ZXggMzNhMDQwNTA2YjQuLjg4NzIxMmFlZmRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCkBAIC02Miw2ICs2 Miw3IEBAIHJhd19wYXJzZXIoY29uc3QgY2hhciAqc3RyLCBSYXdQYXJzZU1vZGUgbW9kZSkKIAkJ CVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04xXSA9IE1PREVfUExQR1NRTF9BU1NJR04xLAogCQkJ W1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjJdID0gTU9ERV9QTFBHU1FMX0FTU0lHTjIsCiAJCQlb UkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOM10gPSBNT0RFX1BMUEdTUUxfQVNTSUdOMywKKwkJCVtS QVdfUEFSU0VfUExQR1NRTF9MRVRdID0gTU9ERV9QTFBHU1FMX0xFVCwKIAkJfTsKIAogCQl5eWV4 dHJhLmhhdmVfbG9va2FoZWFkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaAppbmRleCBmNjZiNmMwYjg2NC4uYjg5NzI4ZWFkNWEgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTI4LDYgKzI4LDcgQEAgZXh0ZXJuIHZvaWQgQXRF T1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklk IG15U3ViaWQKIAkJCQkJCQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBwYXJlbnRTdWJpZCk7CiAKIGV4 dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29s IGlzTnVsbCk7CitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVj ayhPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0 U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBH ZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZWlkKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQg KnR5cGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDZiY2FmNDgwNTc2Li4yNjNiNjNh MzdhZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjE2OCw2ICsyMTY4LDggQEAgdHlwZWRl ZiBzdHJ1Y3QgTGV0U3RtdAogCU5vZGVUYWcJCXR5cGU7CiAJTGlzdAkgICAqdGFyZ2V0OwkJCS8q IHRhcmdldCB2YXJpYWJsZSAqLwogCU5vZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNz aW9uICovCisJYm9vbAkJcGxwZ3NxbF9tb2RlOwkvKiB0cnVlLCB3aGVuIGNvbW1hbmQgd2lsbCBi ZSBleGVjdXRlZAorCQkJCQkJCQkgKiAocGFyc2VkKSBieSBwbHBnc3FsIHJ1bnRpbWUgKi8KIAlQ YXJzZUxvYwlsb2NhdGlvbjsKIH0gTGV0U3RtdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlci5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCmluZGV4IDM1MDE5 NmNkNjQxLi5jOGQ1ZThkYmY5MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl ci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAog ICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdObjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50 IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4gYSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcg YSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdpdmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVz IGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdT UUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1lbnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1l bnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3RtdCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsK QEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBlbnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdO MSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lH TjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVULAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVl cyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBHVUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGQ0 Mzc3Y2VlY2JmLi4wNWViNGFjNGYzMiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC0yMiw2ICsyMiw3 IEBACiAjaW5jbHVkZSAiYWNjZXNzL3R1cGNvbnZlcnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNp bmNsdWRlICJleGVjdXRvci9zcGkuaCIKICNpbmNsdWRlICJleGVjdXRvci90c3RvcmVSZWNlaXZl ci5oIgpAQCAtMzMzLDYgKzMzNCw4IEBAIHN0YXRpYyBpbnQJZXhlY19zdG10X2NvbW1pdChQTHBn U1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSBQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10 KTsKIHN0YXRpYyBpbnQJZXhlY19zdG10X3JvbGxiYWNrKFBMcGdTUUxfZXhlY3N0YXRlICplc3Rh dGUsCiAJCQkJCQkJICAgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyBpbnQJ ZXhlY19zdG10X2xldChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAorCQkJCQkJICBQTHBnU1FM X3N0bXRfbGV0ICpsZXQpOwogCiBzdGF0aWMgdm9pZCBwbHBnc3FsX2VzdGF0ZV9zZXR1cChQTHBn U1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkgUExwZ1NRTF9mdW5jdGlvbiAqZnVuYywK QEAgLTIxMzIsNiArMjEzNSwxMCBAQCBleGVjX3N0bXRzKFBMcGdTUUxfZXhlY3N0YXRlICplc3Rh dGUsIExpc3QgKnN0bXRzKQogCQkJCXJjID0gZXhlY19zdG10X3JvbGxiYWNrKGVzdGF0ZSwgKFBM cGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBQTFBH U1FMX1NUTVRfTEVUOgorCQkJCXJjID0gZXhlY19zdG10X2xldChlc3RhdGUsIChQTHBnU1FMX3N0 bXRfbGV0ICopIHN0bXQpOworCQkJCWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCS8qIHBvaW50 IGVycl9zdG10IHRvIHBhcmVudCwgc2luY2UgdGhpcyBvbmUgc2VlbXMgY29ycnVwdCAqLwogCQkJ CWVzdGF0ZS0+ZXJyX3N0bXQgPSBzYXZlX2VzdG10OwpAQCAtNTAwOSw2ICs1MDE2LDU1IEBAIGV4 ZWNfc3RtdF9yb2xsYmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRf cm9sbGJhY2sgKnN0bXQpCiAJcmV0dXJuIFBMUEdTUUxfUkNfT0s7CiB9CiAKKy8qIC0tLS0tLS0t LS0KKyAqIGV4ZWNfc3RtdF9sZXQJCQlFdmFsdWF0ZSBhbiBleHByZXNzaW9uIGFuZAorICoJCQkJ CXB1dCB0aGUgcmVzdWx0IGludG8gYSBzZXNzaW9uIHZhcmlhYmxlLgorICogLS0tLS0tLS0tLQor ICovCitzdGF0aWMgaW50CitleGVjX3N0bXRfbGV0KFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUs IFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpCit7CisJYm9vbAkJaXNOdWxsOworCU9pZAkJCXZhbHR5 cGU7CisJaW50MzIJCXZhbHR5cG1vZDsKKwlEYXR1bQkJdmFsdWU7CisJT2lkCQkJdmFyaWQ7CisK KwlMaXN0CSAgICpwbGFuc291cmNlczsKKwlDYWNoZWRQbGFuU291cmNlICpwbGFuc291cmNlOwor CisJdmFsdWUgPSBleGVjX2V2YWxfZXhwcihlc3RhdGUsCisJCQkJCQkgICBzdG10LT5leHByLAor CQkJCQkJICAgJmlzTnVsbCwKKwkJCQkJCSAgICZ2YWx0eXBlLAorCQkJCQkJICAgJnZhbHR5cG1v ZCk7CisKKwkvKgorCSAqIE9pZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBzdG9yZWQg aW4gUXVlcnkgc3RydWN0dXJlLiBJdCBpcworCSAqIHNhZmVyIHRvIHJlYWQgdGhpcyB2YWx1ZSBk aXJlY3RseSBmcm9tIHRoZSBwbGFuIHRoYW4gdG8gaG9sZCB0aGlzIHZhbHVlCisJICogaW4gdGhl IHBscGdzcWwgY29udGV4dCwgYmVjYXVzZSBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gaGFuZGxlCisJ ICogaW52YWxpZGF0aW9uIG9mIHRoZSBjYWNoZWQgdmFsdWUuIE5leHQgb3BlcmF0aW9ucyBhcmUg cmVhZCBvbmx5IHdpdGhvdXQKKwkgKiBhbnkgYWxsb2NhdGlvbnMsIHNvIHdlIGNhbiBleHBlY3Qg dGhhdCByZXRyaWV2aW5nIHZhcmlkIGZyb20gUXVlcnkKKwkgKiBzaG91bGQgYmUgZmFzdC4KKwkg Ki8KKwlwbGFuc291cmNlcyA9IFNQSV9wbGFuX2dldF9wbGFuX3NvdXJjZXMoc3RtdC0+ZXhwci0+ cGxhbik7CisJaWYgKGxpc3RfbGVuZ3RoKHBsYW5zb3VyY2VzKSAhPSAxKQorCQllbG9nKEVSUk9S LCAidW5leHBlY3RlZCBsZW5ndGggb2YgcGxhbnNvdXJjZXMgb2YgcXVlcnkgZm9yIExFVCBzdGF0 ZW1lbnQiKTsKKworCXBsYW5zb3VyY2UgPSAoQ2FjaGVkUGxhblNvdXJjZSAqKSBsaW5pdGlhbChw bGFuc291cmNlcyk7CisJaWYgKGxpc3RfbGVuZ3RoKHBsYW5zb3VyY2UtPnF1ZXJ5X2xpc3QpICE9 IDEpCisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGxlbmd0aCBvZiBwbGFuc291cmNlIG9mIHF1 ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwl2YXJpZCA9IGxpbml0aWFsX25vZGUoUXVlcnks IHBsYW5zb3VyY2UtPnF1ZXJ5X2xpc3QpLT5yZXN1bHRWYXJpYWJsZTsKKwlpZiAoIU9pZElzVmFs aWQodmFyaWQpKQorCQllbG9nKEVSUk9SLCAib2lkIG9mIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxl IGlzIG5vdCB2YWxpZCIpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2so dmFyaWQsIHZhbHVlLCBpc051bGwpOworCWV4ZWNfZXZhbF9jbGVhbnVwKGVzdGF0ZSk7CisKKwly ZXR1cm4gUExQR1NRTF9SQ19PSzsKK30KKwogLyogLS0tLS0tLS0tLQogICogZXhlY19hc3NpZ25f ZXhwcgkJCVB1dCBhbiBleHByZXNzaW9uJ3MgcmVzdWx0IGludG8gYSB2YXJpYWJsZS4KICAqIC0t LS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMKaW5kZXggNmI1Mzk0ZmM1ZmEuLjI0MmI1N2Y3NmRl IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYworKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwpAQCAtMjg4LDYgKzI4OCw4IEBAIHBscGdzcWxfc3RtdF90 eXBlbmFtZShQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCQlyZXR1cm4gIkNPTU1JVCI7CiAJCWNhc2Ug UExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJcmV0dXJuICJST0xMQkFDSyI7CisJCWNhc2UgUExQ R1NRTF9TVE1UX0xFVDoKKwkJCXJldHVybiAiTEVUIjsKIAl9CiAKIAlyZXR1cm4gInVua25vd24i OwpAQCAtNTg1LDYgKzU4NywxMyBAQCBwbHBnc3FsX3N0YXRlbWVudF90cmVlX3dhbGtlcl9pbXBs KFBMcGdTUUxfc3RtdCAqc3RtdCwKIAkJCQlFX1dBTEsoY3N0bXQtPmV4cHIpOwogCQkJCWJyZWFr OwogCQkJfQorCQljYXNlIFBMUEdTUUxfU1RNVF9MRVQ6CisJCQl7CisJCQkJUExwZ1NRTF9zdG10 X2xldCAqbHN0bXQgPSAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10OworCisJCQkJRV9XQUxLKGxz dG10LT5leHByKTsKKwkJCQlicmVhazsKKwkJCX0KIAkJY2FzZSBQTFBHU1FMX1NUTVRfQ09NTUlU OgogCQljYXNlIFBMUEdTUUxfU1RNVF9ST0xMQkFDSzoKIAkJCXsKQEAgLTgwNiw2ICs4MTUsNyBA QCBzdGF0aWMgdm9pZCBkdW1wX3BlcmZvcm0oUExwZ1NRTF9zdG10X3BlcmZvcm0gKnN0bXQpOwog c3RhdGljIHZvaWQgZHVtcF9jYWxsKFBMcGdTUUxfc3RtdF9jYWxsICpzdG10KTsKIHN0YXRpYyB2 b2lkIGR1bXBfY29tbWl0KFBMcGdTUUxfc3RtdF9jb21taXQgKnN0bXQpOwogc3RhdGljIHZvaWQg ZHVtcF9yb2xsYmFjayhQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKnN0bXQpOworc3RhdGljIHZvaWQg ZHVtcF9sZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX2V4cHIo UExwZ1NRTF9leHByICpleHByKTsKIAogCkBAIC05MDUsNiArOTE1LDkgQEAgZHVtcF9zdG10KFBM cGdTUUxfc3RtdCAqc3RtdCkKIAkJY2FzZSBQTFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJCQlkdW1w X3JvbGxiYWNrKChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7CiAJCQlicmVhazsKKwkJ Y2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJZHVtcF9sZXQoKFBMcGdTUUxfc3RtdF9sZXQgKikg c3RtdCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6 ZWQgY21kX3R5cGU6ICVkIiwgc3RtdC0+Y21kX3R5cGUpOwogCQkJYnJlYWs7CkBAIC0xNTgxLDYg KzE1OTQsMTQgQEAgZHVtcF9nZXRkaWFnKFBMcGdTUUxfc3RtdF9nZXRkaWFnICpzdG10KQogCXBy aW50ZigiXG4iKTsKIH0KIAorc3RhdGljIHZvaWQKK2R1bXBfbGV0KFBMcGdTUUxfc3RtdF9sZXQg KnN0bXQpCit7CisJZHVtcF9pbmQoKTsKKwlkdW1wX2V4cHIoc3RtdC0+ZXhwcik7CisJcHJpbnRm KCJcbiIpOworfQorCiBzdGF0aWMgdm9pZAogZHVtcF9leHByKFBMcGdTUUxfZXhwciAqZXhwcikK IHsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZ3JhbS55CmluZGV4IDgwNDhlMDQwZjgxLi45ODBlYmI1NmE0NSAxMDA2NDQK LS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55CkBAIC0yMTAsNyArMjEwLDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlz ZV9wYXJhbWV0ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldHlwZSA8c3RtdD4Jc3Rt dF9yZXR1cm4gc3RtdF9yYWlzZSBzdG10X2Fzc2VydCBzdG10X2V4ZWNzcWwKICV0eXBlIDxzdG10 PglzdG10X2R5bmV4ZWN1dGUgc3RtdF9mb3Igc3RtdF9wZXJmb3JtIHN0bXRfY2FsbCBzdG10X2dl dGRpYWcKICV0eXBlIDxzdG10PglzdG10X29wZW4gc3RtdF9mZXRjaCBzdG10X21vdmUgc3RtdF9j bG9zZSBzdG10X251bGwKLSV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBzdG10X3JvbGxiYWNrCisl dHlwZSA8c3RtdD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjayBzdG10X2xldAogJXR5cGUgPHN0 bXQ+CXN0bXRfY2FzZSBzdG10X2ZvcmVhY2hfYQogCiAldHlwZSA8bGlzdD4JcHJvY19leGNlcHRp b25zCkBAIC0zMTcsNiArMzE3LDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9wYXJhbWV0 ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldG9rZW4gPGtleXdvcmQ+CUtfSU5UTwog JXRva2VuIDxrZXl3b3JkPglLX0lTCiAldG9rZW4gPGtleXdvcmQ+CUtfTEFTVAorJXRva2VuIDxr ZXl3b3JkPglLX0xFVAogJXRva2VuIDxrZXl3b3JkPglLX0xPRwogJXRva2VuIDxrZXl3b3JkPglL X0xPT1AKICV0b2tlbiA8a2V5d29yZD4JS19NRVJHRQpAQCAtODkxLDYgKzg5Miw4IEBAIHByb2Nf c3RtdAkJOiBwbF9ibG9jayAnOycKIAkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCXwgc3RtdF9yb2xs YmFjawogCQkJCQkJeyAkJCA9ICQxOyB9CisJCQkJfCBzdG10X2xldAorCQkJCQkJeyAkJCA9ICQx OyB9CiAJCQkJOwogCiBzdG10X3BlcmZvcm0JOiBLX1BFUkZPUk0KQEAgLTEwMTAsNiArMTAxMywz MCBAQCBzdG10X2Fzc2lnbgkJOiBUX0RBVFVNCiAJCQkJCX0KIAkJCQk7CiAKK3N0bXRfbGV0CQk6 IEtfTEVUCisJCQkJCXsKKwkJCQkJCVBMcGdTUUxfc3RtdF9sZXQgKm5ldzsKKwkJCQkJCVJhd1Bh cnNlTW9kZSBwbW9kZTsKKworCQkJCQkJcG1vZGUgPSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ7CisK KwkJCQkJCW5ldyA9IHBhbGxvYzAoc2l6ZW9mKFBMcGdTUUxfc3RtdF9sZXQpKTsKKwkJCQkJCW5l dy0+Y21kX3R5cGUgPSBQTFBHU1FMX1NUTVRfTEVUOworCQkJCQkJbmV3LT5saW5lbm8gICA9IHBs cGdzcWxfbG9jYXRpb25fdG9fbGluZW5vKEAxLCB5eXNjYW5uZXIpOworCQkJCQkJbmV3LT5zdG10 aWQgPSArK3BscGdzcWxfY3Vycl9jb21waWxlLT5uc3RhdGVtZW50czsKKworCQkJCQkJLyogcHVz aCBiYWNrIHRoZSBoZWFkIG5hbWUgdG8gaW5jbHVkZSBpdCBpbiB0aGUgc3RtdCAqLworCQkJCQkJ cGxwZ3NxbF9wdXNoX2JhY2tfdG9rZW4oS19MRVQsICZ5eWx2YWwsICZ5eWxsb2MsIHl5c2Nhbm5l cik7CisJCQkJCQluZXctPmV4cHIgPSByZWFkX3NxbF9jb25zdHJ1Y3QoJzsnLCAwLCAwLCAiOyIs CisJCQkJCQkJCQkJCQkJICAgcG1vZGUsCisJCQkJCQkJCQkJCQkJICAgZmFsc2UsIHRydWUsCisJ CQkJCQkJCQkJCQkJICAgTlVMTCwgTlVMTCwKKwkJCQkJCQkJCQkJCQkgICAmeXlsdmFsLCAmeXls bG9jLCB5eXNjYW5uZXIpOworCisJCQkJCQkkJCA9IChQTHBnU1FMX3N0bXQgKiluZXc7CisJCQkJ CX0KKwkJCQk7CisKIHN0bXRfZ2V0ZGlhZwk6IEtfR0VUIGdldGRpYWdfYXJlYV9vcHQgS19ESUFH Tk9TVElDUyBnZXRkaWFnX2xpc3QgJzsnCiAJCQkJCXsKIAkJCQkJCVBMcGdTUUxfc3RtdF9nZXRk aWFnICpuZXc7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3ds aXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKaW5kZXggY2U3 YjBjOWQzMzEuLmUyNjZiZDFjYzQ2IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxf cmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3 bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBHX0tFWVdPUkQoImZyb20iLCBLX0ZST00pCiBQR19L RVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlXT1JEKCJpbiIsIEtfSU4pCiBQR19LRVlXT1JEKCJp bnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgibGV0IiwgS19MRVQpCiBQR19LRVlXT1JEKCJsb29w IiwgS19MT09QKQogUEdfS0VZV09SRCgibm90IiwgS19OT1QpCiBQR19LRVlXT1JEKCJudWxsIiwg S19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3ds aXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaAppbmRleCA5 OGY5OWVjNDcwYy4uZWQxNGZkODZjMzEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF91bnJlc2VydmVkX2t3bGlzdC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2Vy dmVkX2t3bGlzdC5oCkBAIC02OSw2ICs2OSw3IEBAIFBHX0tFWVdPUkQoImluZm8iLCBLX0lORk8p CiBQR19LRVlXT1JEKCJpbnNlcnQiLCBLX0lOU0VSVCkKIFBHX0tFWVdPUkQoImlzIiwgS19JUykK IFBHX0tFWVdPUkQoImxhc3QiLCBLX0xBU1QpCitQR19LRVlXT1JEKCJsZXQiLCBLX0xFVCkKIFBH X0tFWVdPUkQoImxvZyIsIEtfTE9HKQogUEdfS0VZV09SRCgibWVyZ2UiLCBLX01FUkdFKQogUEdf S0VZV09SRCgibWVzc2FnZSIsIEtfTUVTU0FHRSkKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbHBnc3FsLmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCmluZGV4IGQ3Mzk5 NmUwOWMwLi5jNzUzODYxMmYxYSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdz cWwuaAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCkBAIC0xMjgsNiArMTI4LDcg QEAgdHlwZWRlZiBlbnVtIFBMcGdTUUxfc3RtdF90eXBlCiAJUExQR1NRTF9TVE1UX0NBTEwsCiAJ UExQR1NRTF9TVE1UX0NPTU1JVCwKIAlQTFBHU1FMX1NUTVRfUk9MTEJBQ0ssCisJUExQR1NRTF9T VE1UX0xFVCwKIH0gUExwZ1NRTF9zdG10X3R5cGU7CiAKIC8qCkBAIC01NDIsNiArNTQzLDE3IEBA IHR5cGVkZWYgc3RydWN0IFBMcGdTUUxfc3RtdF9hc3NpZ24KIAlQTHBnU1FMX2V4cHIgKmV4cHI7 CiB9IFBMcGdTUUxfc3RtdF9hc3NpZ247CiAKKy8qCisgKiBMZXQgc3RhdGVtZW50CisgKi8KK3R5 cGVkZWYgc3RydWN0IFBMcGdTUUxfc3RtdF9sZXQKK3sKKwlQTHBnU1FMX3N0bXRfdHlwZSBjbWRf dHlwZTsKKwlpbnQJCQlsaW5lbm87CisJdW5zaWduZWQgaW50IHN0bXRpZDsKKwlQTHBnU1FMX2V4 cHIgKmV4cHI7Cit9IFBMcGdTUUxfc3RtdF9sZXQ7CisKIC8qCiAgKiBQRVJGT1JNIHN0YXRlbWVu dAogICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CmluZGV4IDNlZTIwYjI2NDNkLi4yNjkwY2U5ZDMwOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTExMjksOCArMTEyOSw3IEBA IEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogQ09O VEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlT RQogRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CiBFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBT UUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5hICsgMTAiCi1QTC9wZ1NRTCBmdW5jdGlv biBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgU1FMIHN0YXRlbWVudAorQ09OVEVYVDogIFBM L3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBMRVQKIFNFVCBST0xF IFRPIERFRkFVTFQ7CiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zh cl90ZXN0X3JvbGU7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CkBAIC0xMTc0 LDggKzExNzMsNyBAQCBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlh YmxlIHZhcjEKIENPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBs aW5lIDEgYXQgUkFJU0UKIERPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5E ICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIx Ci1DT05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgotUEwv cGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQK K0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQg TEVUCiBTRVQgUk9MRSBUTyBERUZBVUxUOwogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBUQUJM RSB2YXJ0ZXN0dGFiOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBhMjE0N2RmMjhiMy4u ZDU1OTA4N2M2OGYgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0xODk4LDYgKzE4OTgs NyBAQCBQTHBnU1FMX3N0bXRfZm9ycQogUExwZ1NRTF9zdG10X2ZvcnMKIFBMcGdTUUxfc3RtdF9n ZXRkaWFnCiBQTHBnU1FMX3N0bXRfaWYKK1BMcGdTUUxfc3RtdF9sZXQKIFBMcGdTUUxfc3RtdF9s b29wCiBQTHBnU1FMX3N0bXRfb3BlbgogUExwZ1NRTF9zdG10X3BlcmZvcm0KLS0gCjIuNDguMQoK --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20250212-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr135 RnJvbSAyNzBmMmViOWRiMjI4ODBjZWIyMmU1YmRhMTM4ZjA5OGJmOThkNTRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjJdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8 ICAyMyArKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAyMCArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8 IDE0NyArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVz ZXMuYyAgICAgICAgICB8ICAxOCArLS0KIHNyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgICAgICAg ICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmggICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCAgICAg ICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAg ICAgICAgICB8ICAgMSArCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgICAgfCAgMTIgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNlcnRpb25zKCspLCAyOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDY4M2RlZGU2YWRjLi4xY2U5YWJmODZmNSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3BhcmFsbGVsLnNnbWwKQEAgLTUxNSwxMiArNTE1LDYgQEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9N IHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7CiAgICAgICAgIFBsYW4g bm9kZXMgdGhhdCByZWZlcmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFsPlN1YlBsYW48L2xpdGVy YWw+LgogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+Ci0KLSAgICA8bGlzdGl0ZW0+Ci0g ICAgICA8cGFyYT4KLSAgICAgICAgUGxhbiBub2RlcyB0aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFi bGUuCi0gICAgICA8L3BhcmE+Ci0gICAgPC9saXN0aXRlbT4KICAgPC9pdGVtaXplZGxpc3Q+CiAK ICA8c2VjdDIgaWQ9InBhcmFsbGVsLWxhYmVsaW5nIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYwppbmRleCA1ZDkwN2VmZjYwYS4uMzY3NzUxZWQzNDQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk5MSw2ICs5OTEsMjkgQEAgR2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKQogCXJldHVybiBjb3B5X3Nlc3Np b25fdmFyaWFibGVfdmFsdWUoc3ZhciwgaXNOdWxsKTsKIH0KIAorLyoKKyAqIFJldHVybnMgYSBj b3B5IG9mIHRoZSB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoaW4gdGhlIGN1cnJlbnQg bWVtb3J5CisgKiBjb250ZXh0KSBwbHVzIHR5cGlkIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiBU aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvcgorICogcGVybWlzc2lvbiBjaGVja3MuCisgKi8K K0RhdHVtCitHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZWlkKE9pZCB2YXJpZCwgYm9vbCAqaXNO dWxsLCBPaWQgKnR5cGlkKQoreworCVNWYXJpYWJsZQlzdmFyOworCisJc3ZhciA9IGdldF9zZXNz aW9uX3ZhcmlhYmxlKHZhcmlkKTsKKworCSp0eXBpZCA9IHN2YXItPnR5cGlkOworCisJLyoKKwkg KiBBbHRob3VnaCAic3ZhciIgaXMgZnJlc2hseSB2YWxpZGF0ZWQgaW4gdGhpcyBwb2ludCwgc3Zh ci0+aXNfdmFsaWQgY2FuCisJICogYmUgZmFsc2UsIGlmIGFuIGludmFsaWRhdGlvbiBtZXNzYWdl IHdhcyBwcm9jZXNzZWQgZHVyaW5nIHRoZSBkb21haW4gY2hlY2suCisJICogQnV0IHRoZSB2YXJp YWJsZSBhbmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGxvY2tlZCBub3csIHNvIHdlIGRvbid0 IG5lZWQKKwkgKiB0byByZXBlYXQgdGhlIHZhbGlkYXRpb24uCisJICovCisJcmV0dXJuIGNvcHlf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCiAvKgogICogQXNzaWdu IHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHRoZSBzZXNzaW9uIHZh cmlhYmxlCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IGU1MWRmMDFjMzkzLi44MzA1 YWIwNGM2MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yMTEsNyArMjExLDE5IEBAIHN0 YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJ ICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEg cmVmZXJlbmNlIHRvCiAJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29y cnVwdGVkKS4KIAkgKi8KLQlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlh YmxlcykKKwlpZiAocXVlcnlEZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXMgPiAwKQorCXsKKwkJ LyoKKwkJICogV2hlbiBhIHBhcmFsbGVsIHF1ZXJ5IG5lZWRzIHRvIGFjY2VzcyBxdWVyeSBwYXJh bWV0ZXJzIChpbmNsdWRpbmcKKwkJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyksIHRoZW4g cmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUKKwkJICogcmVzdG9yZWQgKGRlc2VyaWFsaXpl ZCkgaW4gcXVlcnlEZXNjIGFscmVhZHkuIFNvIGp1c3QgcHVzaCBwb2ludGVyCisJCSAqIG9mIHRo aXMgYXJyYXkgdG8gZXhlY3V0b3IncyBlc3RhdGUuCisJCSAqLworCQlBc3NlcnQoSXNQYXJhbGxl bFdvcmtlcigpKTsKKwkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHF1ZXJ5RGVzYy0+ c2Vzc2lvbl92YXJpYWJsZXM7CisJCWVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0g cXVlcnlEZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJfQorCWVsc2UgaWYgKHF1ZXJ5RGVz Yy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCiAJewogCQlpbnQJCQluU2Vzc2lvblZh cmlhYmxlczsKIAkJaW50CQkJaSA9IDA7CkBAIC0yNTAsOSArMjYyLDkgQEAgc3RhbmRhcmRfRXhl Y3V0b3JTdGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJCQkJCQkJICAg Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOwogCQkJfQogCi0JCQllc3RhdGUtPmVz X3Nlc3Npb25fdmFyaWFibGVzW2ldLnZhbHVlID0KLQkJCQlHZXRTZXNzaW9uVmFyaWFibGUodmFy aWQsCi0JCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLmlzbnVsbCk7 CisJCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnZhbHVlID0gR2V0U2Vzc2lvblZh cmlhYmxlV2l0aFR5cGVpZCh2YXJpZCwKKwkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Np b25fdmFyaWFibGVzW2ldLmlzbnVsbCwKKwkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Np b25fdmFyaWFibGVzW2ldLnR5cGlkKTsKIAogCQkJaSsrOwogCQl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jCmluZGV4IDEzNGZmNjJmNWNiLi5kZGRjM2JiYTBhMCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTEyLDggKzEyLDkgQEAKICAqIHdvcmtlcnMgYW5kIGVu c3VyaW5nIHRoYXQgdGhlaXIgc3RhdGUgZ2VuZXJhbGx5IG1hdGNoZXMgdGhhdCBvZiB0aGUKICAq IGxlYWRlcjsgc2VlIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL1JFQURNRS5wYXJhbGxlbCBm b3IgZGV0YWlscy4KICAqIEhvd2V2ZXIsIHdlIG11c3Qgc2F2ZSBhbmQgcmVzdG9yZSByZWxldmFu dCBleGVjdXRvciBzdGF0ZSwgc3VjaCBhcwotICogYW55IFBhcmFtTGlzdEluZm8gYXNzb2NpYXRl ZCB3aXRoIHRoZSBxdWVyeSwgYnVmZmVyL1dBTCB1c2FnZSBpbmZvLCBhbmQKLSAqIHRoZSBhY3R1 YWwgcGxhbiB0byBiZSBwYXNzZWQgZG93biB0byB0aGUgd29ya2VyLgorICogYW55IFBhcmFtTGlz dEluZm8gYXNzb2NpYXRlZCB3aXRoIHRoZSBxdWVyeSwgYnVmZmVyL1dBTCB1c2FnZSBpbmZvLAor ICogc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyLCBhbmQgdGhlIGFjdHVhbCBwbGFuIHRvIGJlIHBh c3NlZCBkb3duIHRvCisgKiB0aGUgd29ya2VyLgogICoKICAqIElERU5USUZJQ0FUSU9OCiAgKgkg IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBAIC02NCw2ICs2NSw3IEBACiAj ZGVmaW5lIFBBUkFMTEVMX0tFWV9RVUVSWV9URVhUCQlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAw MDAwMDgpCiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9KSVRfSU5TVFJVTUVOVEFUSU9OIFVJTlQ2NENP TlNUKDB4RTAwMDAwMDAwMDAwMDAwOSkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1dBTF9VU0FHRQkJ CVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQSkKKyNkZWZpbmUgUEFSQUxMRUxfS0VZX1NF U1NJT05fVkFSSUFCTEVTCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQikKIAogI2RlZmlu ZSBQQVJBTExFTF9UVVBMRV9RVUVVRV9TSVpFCQk2NTUzNgogCkBAIC0xMzgsNiArMTQwLDEyIEBA IHN0YXRpYyBib29sIEV4ZWNQYXJhbGxlbFJldHJpZXZlSW5zdHJ1bWVudGF0aW9uKFBsYW5TdGF0 ZSAqcGxhbnN0YXRlLAogLyogSGVscGVyIGZ1bmN0aW9uIHRoYXQgcnVucyBpbiB0aGUgcGFyYWxs ZWwgd29ya2VyLiAqLwogc3RhdGljIERlc3RSZWNlaXZlciAqRXhlY1BhcmFsbGVsR2V0UmVjZWl2 ZXIoZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKTsKIAorLyogSGVscGVyIGZ1bmN0aW9u cyB0aGF0IGNhbiBwYXNzIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyAqLworc3RhdGljIFNp emUgRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlKTsKK3N0YXRpYyB2b2lk IFNlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUsIGNoYXIgKipzdGFydF9h ZGRyZXNzKTsKK3N0YXRpYyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAqUmVzdG9yZVNlc3Npb25WYXJp YWJsZXMoY2hhciAqKnN0YXJ0X2FkZHJlc3MsCisJCQkJCQkJCQkJCQkJIGludCAqbnVtX3Nlc3Np b25fdmFyaWFibGVzKTsKKwogLyoKICAqIENyZWF0ZSBhIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRp b24gb2YgdGhlIHBsYW4gdG8gYmUgc2VudCB0byBlYWNoIHdvcmtlci4KICAqLwpAQCAtNTk4LDYg KzYwNiw3IEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3Rh dGUgKmVzdGF0ZSwKIAljaGFyCSAgICpwc3RtdF9kYXRhOwogCWNoYXIJICAgKnBzdG10X3NwYWNl OwogCWNoYXIJICAgKnBhcmFtbGlzdGluZm9fc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lvbl92YXJp YWJsZXNfc3BhY2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlX3NwYWNlOwogCVdhbFVzYWdlICAg KndhbHVzYWdlX3NwYWNlOwogCVNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICppbnN0cnVt ZW50YXRpb24gPSBOVUxMOwpAQCAtNjA3LDYgKzYxNiw3IEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFu KFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlpbnQJCQlpbnN0cnVtZW50 YXRpb25fbGVuID0gMDsKIAlpbnQJCQlqaXRfaW5zdHJ1bWVudGF0aW9uX2xlbiA9IDA7CiAJaW50 CQkJaW5zdHJ1bWVudF9vZmZzZXQgPSAwOworCWludAkJCXNlc3Npb25fdmFyaWFibGVzX2xlbiA9 IDA7CiAJU2l6ZQkJZHNhX21pbnNpemUgPSBkc2FfbWluaW11bV9zaXplKCk7CiAJY2hhcgkgICAq cXVlcnlfc3RyaW5nOwogCWludAkJCXF1ZXJ5X2xlbjsKQEAgLTY2Miw2ICs2NzIsMTEgQEAgRXhl Y0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAog CXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgcGFyYW1saXN0aW5mb19s ZW4pOwogCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsKIAorCS8q IEVzdGltYXRlIHNwYWNlIGZvciBzZXJpYWxpemVkIHNlc3Npb24gdmFyaWFibGVzLiAqLworCXNl c3Npb25fdmFyaWFibGVzX2xlbiA9IEVzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyhlc3RhdGUpOwor CXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgc2Vzc2lvbl92YXJpYWJs ZXNfbGVuKTsKKwlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CisK IAkvKgogCSAqIEVzdGltYXRlIHNwYWNlIGZvciBCdWZmZXJVc2FnZS4KIAkgKgpAQCAtNzYzLDYg Kzc3OCwxMSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0 YXRlICplc3RhdGUsCiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9LRVlfUEFS QU1MSVNUSU5GTywgcGFyYW1saXN0aW5mb19zcGFjZSk7CiAJU2VyaWFsaXplUGFyYW1MaXN0KGVz dGF0ZS0+ZXNfcGFyYW1fbGlzdF9pbmZvLCAmcGFyYW1saXN0aW5mb19zcGFjZSk7CiAKKwkvKiBT dG9yZSBzZXJpYWxpemVkIHNlc3Npb24gdmFyaWFibGVzLiAqLworCXNlc3Npb25fdmFyaWFibGVz X3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIHNlc3Npb25fdmFyaWFibGVzX2xl bik7CisJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9LRVlfU0VTU0lPTl9WQVJJ QUJMRVMsIHNlc3Npb25fdmFyaWFibGVzX3NwYWNlKTsKKwlTZXJpYWxpemVTZXNzaW9uVmFyaWFi bGVzKGVzdGF0ZSwgJnNlc3Npb25fdmFyaWFibGVzX3NwYWNlKTsKKwogCS8qIEFsbG9jYXRlIHNw YWNlIGZvciBlYWNoIHdvcmtlcidzIEJ1ZmZlclVzYWdlOyBubyBuZWVkIHRvIGluaXRpYWxpemUu ICovCiAJYnVmdXNhZ2Vfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywKIAkJCQkJ CQkJCSAgbXVsX3NpemUoc2l6ZW9mKEJ1ZmZlclVzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsKQEAg LTE0MTMsNiArMTQzMyw3IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50ICpzZWcsIHNo bV90b2MgKnRvYykKIAlTaGFyZWRKaXRJbnN0cnVtZW50YXRpb24gKmppdF9pbnN0cnVtZW50YXRp b247CiAJaW50CQkJaW5zdHJ1bWVudF9vcHRpb25zID0gMDsKIAl2b2lkCSAgICphcmVhX3NwYWNl OworCWNoYXIJICAgKnNlc3Npb252YXJpYWJsZV9zcGFjZTsKIAlkc2FfYXJlYSAgICphcmVhOwog CVBhcmFsbGVsV29ya2VyQ29udGV4dCBwd2N4dDsKIApAQCAtMTQzOCw2ICsxNDU5LDE0IEBAIFBh cmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAlhcmVhX3Nw YWNlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfRFNBLCBmYWxzZSk7CiAJYXJl YSA9IGRzYV9hdHRhY2hfaW5fcGxhY2UoYXJlYV9zcGFjZSwgc2VnKTsKIAorCS8qIFJlY29uc3Ry dWN0IHNlc3Npb24gdmFyaWFibGVzLiAqLworCXNlc3Npb252YXJpYWJsZV9zcGFjZSA9IHNobV90 b2NfbG9va3VwKHRvYywKKwkJCQkJCQkJCQkgICBQQVJBTExFTF9LRVlfU0VTU0lPTl9WQVJJQUJM RVMsCisJCQkJCQkJCQkJICAgZmFsc2UpOworCXF1ZXJ5RGVzYy0+c2Vzc2lvbl92YXJpYWJsZXMg PQorCQlSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcygmc2Vzc2lvbnZhcmlhYmxlX3NwYWNlLAorCQkJ CQkJCQkmcXVlcnlEZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAJLyogU3RhcnQgdXAg dGhlIGV4ZWN1dG9yICovCiAJcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+aml0RmxhZ3MgPSBmcGVz LT5qaXRfZmxhZ3M7CiAJRXhlY3V0b3JTdGFydChxdWVyeURlc2MsIGZwZXMtPmVmbGFncyk7CkBA IC0xNTA1LDMgKzE1MzQsMTE3IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50ICpzZWcs IHNobV90b2MgKnRvYykKIAlGcmVlUXVlcnlEZXNjKHF1ZXJ5RGVzYyk7CiAJcmVjZWl2ZXItPnJE ZXN0cm95KHJlY2VpdmVyKTsKIH0KKworLyoKKyAqIEVzdGltYXRlIHRoZSBhbW91bnQgb2Ygc3Bh Y2UgcmVxdWlyZWQgdG8gc2VyaWFsaXplIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGlj IFNpemUKK0VzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSkKK3sKKwlpbnQJ CQlpOworCVNpemUJCXN6ID0gc2l6ZW9mKGludCk7CisKKwlpZiAoZXN0YXRlLT5lc19zZXNzaW9u X3ZhcmlhYmxlcyA9PSBOVUxMKQorCQlyZXR1cm4gc3o7CisKKwlmb3IgKGkgPSAwOyBpIDwgZXN0 YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7IGkrKykKKwl7CisJCVNlc3Npb25WYXJpYWJs ZVZhbHVlICpzdmFydmFsOworCQlPaWQJCQl0eXBlT2lkOworCQlpbnQxNgkJdHlwTGVuOworCQli b29sCQl0eXBCeVZhbDsKKworCQlzdmFydmFsID0gJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXNbaV07CisKKwkJdHlwZU9pZCA9IHN2YXJ2YWwtPnR5cGlkOworCisJCXN6ID0gYWRkX3NpemUo c3osIHNpemVvZihPaWQpKTsgLyogc3BhY2UgZm9yIHR5cGUgT0lEICovCisKKwkJLyogc3BhY2Ug Zm9yIGRhdHVtL2lzbnVsbCAqLworCQlBc3NlcnQoT2lkSXNWYWxpZCh0eXBlT2lkKSk7CisJCWdl dF90eXBsZW5ieXZhbCh0eXBlT2lkLCAmdHlwTGVuLCAmdHlwQnlWYWwpOworCisJCXN6ID0gYWRk X3NpemUoc3osCisJCQkJCSAgZGF0dW1Fc3RpbWF0ZVNwYWNlKHN2YXJ2YWwtPnZhbHVlLCBzdmFy dmFsLT5pc251bGwsIHR5cEJ5VmFsLCB0eXBMZW4pKTsKKwl9CisKKwlyZXR1cm4gc3o7Cit9CisK Ky8qCisgKiBTZXJpYWxpemUgYSBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIgaW50byBjYWxsZXIt cHJvdmlkZWQgc3RvcmFnZS4KKyAqCisgKiBXZSB3cml0ZSB0aGUgbnVtYmVyIG9mIHBhcmFtZXRl cnMgZmlyc3QsIGFzIGEgNC1ieXRlIGludGVnZXIsIGFuZCB0aGVuCisgKiB3cml0ZSBkZXRhaWxz IGZvciBlYWNoIHBhcmFtZXRlciBpbiB0dXJuLiAgVGhlIGRldGFpbHMgZm9yIGVhY2ggcGFyYW1l dGVyCisgKiBjb25zaXN0IG9mIGEgNC1ieXRlIHR5cGUgT0lELCBhbmQgdGhlbiB0aGUgZGF0dW0g YXMgc2VyaWFsaXplZCBieQorICogZGF0dW1TZXJpYWxpemUoKS4gIFRoZSBjYWxsZXIgaXMgcmVz cG9uc2libGUgZm9yIGVuc3VyaW5nIHRoYXQgdGhlcmUgaXMKKyAqIGVub3VnaCBzdG9yYWdlIHRv IHN0b3JlIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCB3aWxsIGJlIHdyaXR0ZW47IHVzZQorICog RXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzIHRvIGZpbmQgb3V0IGhvdyBtYW55IHdpbGwgYmUgbmVl ZGVkLgorICogKnN0YXJ0X2FkZHJlc3MgaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgYnl0ZSBp bW1lZGlhdGVseSBmb2xsb3dpbmcgdGhvc2UKKyAqIHdyaXR0ZW4uCisgKgorICogUmVzdG9yZVNl c3Npb25WYXJpYWJsZXMgY2FuIGJlIHVzZWQgdG8gcmVjcmVhdGUgYSBzZXNzaW9uIHZhcmlhYmxl IGJ1ZmZlcgorICogYmFzZWQgb24gdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb247CisgKi8K K3N0YXRpYyB2b2lkCitTZXJpYWxpemVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlLCBj aGFyICoqc3RhcnRfYWRkcmVzcykKK3sKKwlpbnQJCQlucGFyYW1zOworCWludAkJCWk7CisKKwkv KiBXcml0ZSBudW1iZXIgb2YgcGFyYW1ldGVycy4gKi8KKwlucGFyYW1zID0gZXN0YXRlLT5lc19u dW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJbWVtY3B5KCpzdGFydF9hZGRyZXNzLCAmbnBhcmFtcywg c2l6ZW9mKGludCkpOworCSpzdGFydF9hZGRyZXNzICs9IHNpemVvZihpbnQpOworCisJLyogV3Jp dGUgZWFjaCBwYXJhbWV0ZXIgaW4gdHVybi4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmFtczsg aSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJCXR5cGVP aWQ7CisJCWludDE2CQl0eXBMZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2YWwgPSAm ZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKwkJdHlwZU9pZCA9IHN2YXJ2YWwtPnR5 cGlkOworCisJCS8qIFdyaXRlIHR5cGUgT0lELiAqLworCQltZW1jcHkoKnN0YXJ0X2FkZHJlc3Ms ICZ0eXBlT2lkLCBzaXplb2YoT2lkKSk7CisJCSpzdGFydF9hZGRyZXNzICs9IHNpemVvZihPaWQp OworCisJCUFzc2VydChPaWRJc1ZhbGlkKHR5cGVPaWQpKTsKKwkJZ2V0X3R5cGxlbmJ5dmFsKHR5 cGVPaWQsICZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJZGF0dW1TZXJpYWxpemUoc3ZhcnZhbC0+ dmFsdWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5cExlbiwKKwkJCQkJICAgc3RhcnRf YWRkcmVzcyk7CisJfQorfQorCitzdGF0aWMgU2Vzc2lvblZhcmlhYmxlVmFsdWUgKgorUmVzdG9y ZVNlc3Npb25WYXJpYWJsZXMoY2hhciAqKnN0YXJ0X2FkZHJlc3MsIGludCAqbnVtX3Nlc3Npb25f dmFyaWFibGVzKQoreworCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzZXNzaW9uX3ZhcmlhYmxlczsK KwlpbnQJCQlpOworCWludAkJCW5wYXJhbXM7CisKKwltZW1jcHkoJm5wYXJhbXMsICpzdGFydF9h ZGRyZXNzLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKGludCk7CisK KwkqbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gbnBhcmFtczsKKwlzZXNzaW9uX3ZhcmlhYmxlcyA9 IChTZXNzaW9uVmFyaWFibGVWYWx1ZSAqKQorCQlwYWxsb2MobnBhcmFtcyAqIHNpemVvZihTZXNz aW9uVmFyaWFibGVWYWx1ZSkpOworCisJZm9yIChpID0gMDsgaSA8IG5wYXJhbXM7IGkrKykKKwl7 CisJCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzdmFydmFsID0gJnNlc3Npb25fdmFyaWFibGVzW2ld OworCisJCS8qIFJlYWQgdHlwZSBPSUQuICovCisJCW1lbWNweSgmc3ZhcnZhbC0+dHlwaWQsICpz dGFydF9hZGRyZXNzLCBzaXplb2YoT2lkKSk7CisJCSpzdGFydF9hZGRyZXNzICs9IHNpemVvZihP aWQpOworCisJCS8qIFJlYWQgZGF0dW0vaXNudWxsLiAqLworCQlzdmFydmFsLT52YWx1ZSA9IGRh dHVtUmVzdG9yZShzdGFydF9hZGRyZXNzLCAmc3ZhcnZhbC0+aXNudWxsKTsKKwl9CisKKwlyZXR1 cm4gc2Vzc2lvbl92YXJpYWJsZXM7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMK aW5kZXggZjYwODI4Zjg2MmUuLjE3NTM5MGM2YzI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwv Y2xhdXNlcy5jCkBAIC05MjMsMjUgKzkyMywxOSBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtl cihOb2RlICpub2RlLCBtYXhfcGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAKIAkv KgogCSAqIFdlIGNhbid0IHBhc3MgUGFyYW1zIHRvIHdvcmtlcnMgYXQgdGhlIG1vbWVudCBlaXRo ZXIsIHNvIHRoZXkgYXJlIGFsc28KLQkgKiBwYXJhbGxlbC1yZXN0cmljdGVkLCB1bmxlc3MgdGhl eSBhcmUgUEFSQU1fRVhURVJOIFBhcmFtcyBvciBhcmUKLQkgKiBQQVJBTV9FWEVDIFBhcmFtcyBs aXN0ZWQgaW4gc2FmZV9wYXJhbV9pZHMsIG1lYW5pbmcgdGhleSBjb3VsZCBiZQotCSAqIGVpdGhl ciBnZW5lcmF0ZWQgd2l0aGluIHdvcmtlcnMgb3IgY2FuIGJlIGNvbXB1dGVkIGJ5IHRoZSBsZWFk ZXIgYW5kCi0JICogdGhlbiB0aGVpciB2YWx1ZSBjYW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMuCisJ ICogcGFyYWxsZWwtcmVzdHJpY3RlZCwgdW5sZXNzIHRoZXkgYXJlIFBBUkFNX0VYVEVSTiBvciBQ QVJBTV9WQVJJQUJMRQorCSAqIFBhcmFtcyBvciBhcmUgUEFSQU1fRVhFQyBQYXJhbXMgbGlzdGVk IGluIHNhZmVfcGFyYW1faWRzLCBtZWFuaW5nIHRoZXkKKwkgKiBjb3VsZCBiZSBlaXRoZXIgZ2Vu ZXJhdGVkIHdpdGhpbiB3b3JrZXJzIG9yIGNhbiBiZSBjb21wdXRlZCBieSB0aGUKKwkgKiBsZWFk ZXIgYW5kIHRoZW4gdGhlaXIgdmFsdWUgY2FuIGJlIHBhc3NlZCB0byB3b3JrZXJzLgogCSAqLwog CWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCiAJewogCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFy YW0gKikgbm9kZTsKIAotCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCisJ CWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTiB8fAorCQkJcGFyYW0tPnBhcmFt a2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKIAkJCXJldHVybiBmYWxzZTsKIAotCQkvKiB3ZSBkb24n dCBzdXBwb3J0IHBhc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLwotCQlpZiAo cGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKLQkJewotCQkJaWYgKG1heF9wYXJh bGxlbF9oYXphcmRfdGVzdChQUk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKLQkJCQly ZXR1cm4gdHJ1ZTsKLQkJfQotCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYRUMg fHwKIAkJCSFsaXN0X21lbWJlcl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5w YXJhbWlkKSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKaW5kZXggNmYyMjQ5NjMwNWEuLjZmOWJkN2M4YjA1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rj b3AvcHF1ZXJ5LmMKQEAgLTg2LDYgKzg2LDkgQEAgQ3JlYXRlUXVlcnlEZXNjKFBsYW5uZWRTdG10 ICpwbGFubmVkc3RtdCwKIAlxZC0+cXVlcnlFbnYgPSBxdWVyeUVudjsKIAlxZC0+aW5zdHJ1bWVu dF9vcHRpb25zID0gaW5zdHJ1bWVudF9vcHRpb25zOwkvKiBpbnN0cnVtZW50YXRpb24gd2FudGVk PyAqLwogCisJcWQtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJcWQtPnNlc3Npb25fdmFy aWFibGVzID0gTlVMTDsKKwogCS8qIG51bGwgdGhlc2UgZmllbGRzIHVudGlsIHNldCBieSBFeGVj dXRvclN0YXJ0ICovCiAJcWQtPnR1cERlc2MgPSBOVUxMOwogCXFkLT5lc3RhdGUgPSBOVUxMOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDQ0OTJiZWU2ZDY5Li5m NjZiNmMwYjg2NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAt MjksNiArMjksNyBAQCBleHRlcm4gdm9pZCBBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJv b2wgaXNDb21taXQsIFN1YlRyYW5zYWN0aW9uSWQgbXlTdWJpZAogCiBleHRlcm4gdm9pZCBTZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0 ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCk7Citl eHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVpZChPaWQgdmFyaWQsIGJvb2wg KmlzTnVsbCwgT2lkICp0eXBpZCk7CiAKIGV4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY2Rlc2MuaAppbmRleCA4NmRiM2RjOGQwZC4uNGUwZmEzZWE0MGYgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKKysrIGIvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY2Rlc2MuaApAQCAtNTEsNiArNTEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVl cnlEZXNjCiAJLyogVGhpcyBmaWVsZCBpcyBzZXQgYnkgRXhlY3V0ZVBsYW4gKi8KIAlib29sCQlh bHJlYWR5X2V4ZWN1dGVkOwkvKiB0cnVlIGlmIHByZXZpb3VzbHkgZXhlY3V0ZWQgKi8KIAorCS8q IHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIgKi8KKwlpbnQJCQludW1fc2Vz c2lvbl92YXJpYWJsZXM7CisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnNlc3Npb25fdmFyaWFibGVz OworCiAJLyogVGhpcyBpcyBhbHdheXMgc2V0IE5VTEwgYnkgdGhlIGNvcmUgc3lzdGVtLCBidXQg cGx1Z2lucyBjYW4gY2hhbmdlIGl0ICovCiAJc3RydWN0IEluc3RydW1lbnRhdGlvbiAqdG90YWx0 aW1lOwkvKiB0b3RhbCB0aW1lIHNwZW50IGluIEV4ZWN1dG9yUnVuICovCiB9IFF1ZXJ5RGVzYzsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvZXhlY25vZGVzLmgKaW5kZXggOTEwNTE2ODFkM2IuLmMxNDNiNjQxOWVkIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaApAQCAtNjQxLDYgKzY0MSw3IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVx dWVzdAogICovCiB0eXBlZGVmIHN0cnVjdCBTZXNzaW9uVmFyaWFibGVWYWx1ZQogeworCU9pZAkJ CXR5cGlkOwogCWJvb2wJCWlzbnVsbDsKIAlEYXR1bQkJdmFsdWU7CiB9IFNlc3Npb25WYXJpYWJs ZVZhbHVlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dAppbmRleCAwYTQxMGQ2YWIwMC4uM2VlMjBiMjY0M2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMjg0LDEyICsxMjg0LDE0 IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKIAog LS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0CiBFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsK LSAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQWdn cmVnYXRlCi0gICAtPiAgU2VxIFNjYW4gb24gc3Zhcl90ZXN0Ci0gICAgICAgICBGaWx0ZXI6ICgo YSAlIDEwKSA9IHplcm8pCi0oMyByb3dzKQorICAgLT4gIEdhdGhlcgorICAgICAgICAgV29ya2Vy cyBQbGFubmVkOiAyCisgICAgICAgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24gc3Zhcl90ZXN0 CisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9IHplcm8pCisoNSByb3dzKQogCiBM RVQgemVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOwogLS0gcmVzdWx0IHNo b3VsZCBiZSAxMDAwCi0tIAoyLjQ4LjEKCg== --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20250212-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr1c6 RnJvbSBkM2JiMzY3ZDU0MzYyNGNjYWY2NWVkYjZlOGZkOThiMDQ5N2NjN2E0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjJdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgMTAgLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAg ICAgICAgICAgICAgfCA4NiArKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAxNCArKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAxMCAtLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4 ZWNFeHByLmggICAgICAgICAgICAgICB8IDExICsrLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDMgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgICAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgICAgfCAzOCArKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMTIgKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5z ZXJ0aW9ucygrKSwgNjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDRl YTJiZmVhNGVhLi43MGYwMzA5OTk5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzM4LDE2 ICszMzgsNiBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3Rh dGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCi0JLyoKLQkgKiBUaGUg YXJndW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9u Ci0JICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2 YXJpYWJsZXMgeWV0LgotCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4KLQkgKi8KLQlpZiAo cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkpOwotCiAJLyogUHJl cGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVj UHJlcGFyZUV4cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK aW5kZXggMjcwZTZkMzQ0YmUuLmQwNzM3Nzk0OGEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK QEAgLTM0LDYgKzM0LDggQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRl ICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTEwNTQs MjIgKzEwNTYsNzQgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3Rh dGUsCiAJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0 YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CiAJCQkJCQkJfQogCi0JCQkJCQkJQXNzZXJ0 KGVzX3Nlc3Npb25fdmFyaWFibGVzKTsKLQotCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hl Y2tzICovCi0JCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3Zhcmlh YmxlcykKLQkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFy YW0gaXMgb3V0IG9mIHJhbmdlIik7Ci0KLQkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJs ZXNbcGFyYW0tPnBhcmFtaWRdOwotCi0JCQkJCQkJLyoKLQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Us IHBhc3MgdGhlIHZhbHVlIGxpa2UgYQotCQkJCQkJCSAqIGNvbnN0YW50LgotCQkJCQkJCSAqLwot CQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKLQkJCQkJCQlzY3JhdGNoLmQuY29u c3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOwotCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251 bGwgPSB2YXItPmlzbnVsbDsKLQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRj aCk7CisJCQkJCQkJaWYgKGVzX3Nlc3Npb25fdmFyaWFibGVzKQorCQkJCQkJCXsKKwkJCQkJCQkJ LyoKKwkJCQkJCQkJICogVGhpcyBwYXRoIGlzIHVzZWQgd2hlbiBleHByZXNzaW9uIGlzCisJCQkJ CQkJCSAqIGV2YWx1YXRlZCBpbnNpZGUgcXVlcnkgZXZhbHVhdGlvbi4gRm9yCisJCQkJCQkJCSAq IGVuc3VyaW5nIG9mIGltbXV0YWJpbGl0eSBvZiBzZXNzaW9uIHZhcmlhYmxlCisJCQkJCQkJCSAq IGluc2lkZSBxdWVyeSB3ZSB1c2Ugc3BlY2lhbCBidWZmZXIgd2l0aCBjb3B5CisJCQkJCQkJCSAq IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoaXMgbWV0aG9kIGhlbHBzCisJCQkJCQkJCSAq IHdpdGggcGFyYWxsZWwgZXhlY3V0aW9uIHRvby4KKwkJCQkJCQkJICovCisKKwkJCQkJCQkJLyog cGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KKwkJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49 IGVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlk IG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJCXZh ciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQkJLyoK KwkJCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKKwkJCQkJCQkJ ICogY29uc3RhbnQuCisJCQkJCQkJCSAqLworCQkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1Bf Q09OU1Q7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7CisJ CQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKKwkJCQkJCQkJ RXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJCX0KKwkJCQkJCQllbHNl CisJCQkJCQkJeworCQkJCQkJCQlPaWQJCQl2YXJpZCA9IHBhcmFtLT5wYXJhbXZhcmlkOworCisJ CQkJCQkJCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKKworCQkJCQkJCQkvKgorCQkJCQkJ CQkgKiBJbiBzb21lIGNhc2VzIChwbHBnc3FsJ3Mgc2ltcGxlIGV4cHJlc3Npb24KKwkJCQkJCQkJ ICogZXZhbHVhdGlvbiBvciBldmFsdWF0aW9uIG9mIENBTEwgYXJndW1lbnRzKSwKKwkJCQkJCQkJ ICogdGhlIGV4cHJlc3Npb24gZXhlY3V0b3IgaXMgY2FsbGVkIGRpcmVjdGx5LgorCQkJCQkJCQkg KiBXZSBjYW4gYWxsb3cgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uCisJCQkJCQkJCSAqIHZhcmlh YmxlcyAoY29weSBvbmx5KSwgYmVjYXVzZSB3ZSBrbm93LCBzbworCQkJCQkJCQkgKiBvdXRzaWRl IGlzIG5vdCBhbnkgcXVlcnkgKGFuZCBleHByZXNzaW9uCisJCQkJCQkJCSAqIGNhbm5vdCBiZSBl eGVjdXRlZCBwYXJhbGxlbCkuCisJCQkJCQkJCSAqCisJCQkJCQkJCSAqIEluIHRoaXMgY2FzZSB3 ZSBzaG91bGQgdG8gZG8gYWNsY2hlY2ssCisJCQkJCQkJCSAqIGJlY2F1c2UgdXN1YWwgYWNsY2hl Y2sgZnJvbQorCQkJCQkJCQkgKiBzdGFuZGFyZF9FeGVjdXRvclN0YXJ0IGlzIG5vdCBleGVjdXRl ZCBpbgorCQkJCQkJCQkgKiB0aGlzIGNhc2UuIEZvcnR1bmF0ZWx5IGl0IGlzIGp1c3Qgb25jZSBw ZXIKKwkJCQkJCQkJICogdHJhbnNhY3Rpb24uCisJCQkJCQkJCSAqCisJCQkJCQkJCSAqIERvbid0 IGRvIHBlcm1pc3Npb24gY2hlY2ssIHdoZW4gdmFyaWFibGUgaXMKKwkJCQkJCQkJICogdXNlZCBs aWtlIGJhc2Ugbm9kZSBmb3IgYXNzaWdubWVudCBpbmRpcmVjdGlvbi4KKwkJCQkJCQkJICovCisJ CQkJCQkJCWlmICghcGFyYW0tPnBhcmFtYmFzZW5vZGUpCisJCQkJCQkJCXsKKwkJCQkJCQkJCUFj bFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCQkJCQkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVj aygKKwkJCQkJCQkJCQkJCQkgIFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQkJ CQkJICBHZXRVc2VySWQoKSwgQUNMX1NFTEVDVCk7CisKKwkJCQkJCQkJCWlmIChhY2xyZXN1bHQg IT0gQUNMQ0hFQ0tfT0spCisJCQkJCQkJCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LAorCQkJ CQkJCQkJCQkJCSAgIE9CSkVDVF9WQVJJQUJMRSwKKwkJCQkJCQkJCQkJCQkgICBnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisJCQkJCQkJCX0KKworCQkJCQkJCQlzY3JhdGNoLm9w Y29kZSA9IEVFT1BfUEFSQU1fVkFSSUFCTEU7CisJCQkJCQkJCXNjcmF0Y2guZC52cGFyYW0udmFy aWQgPSB2YXJpZDsKKwkJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwor CQkJCQkJCX0KIAkJCQkJCX0KIAkJCQkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYwppbmRleCAxYzM0NzdiMDNjOS4uNDVlYzdiNTg2MTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgImFjY2Vz cy9oZWFwdG9hc3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJj b21tYW5kcy9zZXF1ZW5jZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu aCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjRXhwci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25v ZGVTdWJwbGFuLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtNTIxLDYgKzUyMiw3IEBAIEV4 ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9v bCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9QQVJBTV9FWEVDLAogCQkmJkNBU0VfRUVPUF9QQVJB TV9FWFRFUk4sCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0NBTExCQUNLLAorCQkmJkNBU0VfRUVPUF9Q QVJBTV9WQVJJQUJMRSwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fU0VULAogCQkmJkNBU0VfRUVPUF9D QVNFX1RFU1RWQUwsCiAJCSYmQ0FTRV9FRU9QX0NBU0VfVEVTVFZBTF9FWFQsCkBAIC0xMjY1LDYg KzEyNjcsMTggQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQg KmVjb250ZXh0LCBib29sICppc251bGwpCiAJCQlFRU9fTkVYVCgpOwogCQl9CiAKKwkJRUVPX0NB U0UoRUVPUF9QQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJLyoKKwkJCSAqIERpcmVjdCBhY2Nlc3Mg dG8gc2Vzc2lvbiB2YXJpYWJsZSAod2l0aG91dCBidWZmZXJpbmcpLiBCZWNhdXNlCisJCQkgKiBy ZXR1cm5lZCB2YWx1ZSBjYW4gYmUgdXNlZCAod2l0aG91dCBhbiBhc3NpZ25lbWVudCkgYWZ0ZXIg dGhlCisJCQkgKiByZWZlcmVuY2VkIHNlc3Npb24gdmFyaWFibGVzIGlzIHVwZGF0ZWQsIHdlIGhh dmUgdG8gdXNlIGFuIGNvcHkKKwkJCSAqIG9mIHN0b3JlZCB2YWx1ZSBldmVyeSB0aW1lLgorCQkJ ICovCisJCQkqb3AtPnJlc3ZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxlKG9wLT5kLnZwYXJhbS52 YXJpZCwgb3AtPnJlc251bGwpOworCQkJRUVPX05FWFQoKTsKKwkJfQorCiAJCUVFT19DQVNFKEVF T1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQgb2YgbGluZSwgdW5saWtlbHkgdG8gbWF0dGVy IHBlcmZvcm1hbmNlLXdpc2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xs dm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXgg ZjBmNWMzYmQ0OWYuLmFkOGQ4MGNmNDljIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2 bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIu YwpAQCAtMTIwOCw2ICsxMjA4LDEyIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3Rh dGUpCiAJCQkJCWJyZWFrOwogCQkJCX0KIAorCQkJY2FzZSBFRU9QX1BBUkFNX1ZBUklBQkxFOgor CQkJCWJ1aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFBhcmFtVmFyaWFibGUiLAorCQkJ CQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CisJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9j a3Nbb3BubyArIDFdKTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBFRU9QX1BBUkFNX1NFVDoKIAkJ CQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVNldCIsCiAJCQkJCQkJCXZf c3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IGMwYzNhYmQ3YTBl Li40NmEyMmZmNWM5NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zNTcxLDE2ICszNTcxLDYgQEAg dHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJ CQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwtPmxvY2F0aW9uKTsKIAotCS8qCi0J ICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBhcmUgZXZhbHVhdGVkIGJ5IGEgZGly ZWN0IGV4cHJlc3Npb24KLQkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBwYXRoIGlzIHVuc3VwcG9y dGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3aWxsIGJlCi0JICogZW5hYmxlZCBsYXRlci4KLQkg Ki8KLQlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCi0JCWVyZXBvcnQoRVJST1Is Ci0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJt c2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkpOwot CiAJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIG5vZGUpOwogCiAJZmV4cHIgPSBjYXN0 Tm9kZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCAxOTFkOGZl MzRkZS4uMTI1OWVmNzJiYWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApAQCAtMTY0LDEwICsx NjQsMTEgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9QX0JPT0xURVNUX0lTX0ZBTFNF LAogCUVFT1BfQk9PTFRFU1RfSVNfTk9UX0ZBTFNFLAogCi0JLyogZXZhbHVhdGUgUEFSQU1fRVhF Qy9FWFRFUk4gcGFyYW1ldGVycyAqLworCS8qIGV2YWx1YXRlIFBBUkFNX0VYRUMvRVhURVJOL1ZB UklBQkxFIHBhcmFtZXRlcnMgKi8KIAlFRU9QX1BBUkFNX0VYRUMsCiAJRUVPUF9QQVJBTV9FWFRF Uk4sCiAJRUVPUF9QQVJBTV9DQUxMQkFDSywKKwlFRU9QX1BBUkFNX1ZBUklBQkxFLAogCS8qIHNl dCBQQVJBTV9FWEVDIHZhbHVlICovCiAJRUVPUF9QQVJBTV9TRVQsCiAKQEAgLTQzMCw2ICs0MzEs MTIgQEAgdHlwZWRlZiBzdHJ1Y3QgRXhwckV2YWxTdGVwCiAJCQlPaWQJCQlwYXJhbXR5cGU7CS8q IE9JRCBvZiBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLwogCQl9CQkJY3BhcmFtOwogCisJCS8qIGZv ciBFRU9QX1BBUkFNX1ZBUklBQkxFICovCisJCXN0cnVjdAorCQl7CisJCQlPaWQJCQl2YXJpZDsJ CS8qIE9JRCBvZiBhc3NpZ25lZCB2YXJpYWJsZSAqLworCQl9CQkJdnBhcmFtOworCiAJCS8qIGZv ciBFRU9QX0NBU0VfVEVTVFZBTC9ET01BSU5fVEVTVFZBTCAqLwogCQlzdHJ1Y3QKIAkJewpAQCAt ODUyLDYgKzg1OSw4IEBAIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1TZXQoRXhwclN0YXRlICpz dGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkgRXhwckNvbnRleHQgKmVjb250ZXh0KTsK IGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2 YWxTdGVwICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4dGVybiB2b2lk IEV4ZWNFdmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9w LAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZh bENvZXJjZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4 dGVybiB2b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihFeHByU3RhdGUgKnN0YXRlLCBFeHBy RXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsQ3VycmVudE9mRXhwcihFeHByU3Rh dGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggYTY1MjNm N2FmZTIuLmVjYWM2NGZjZmI0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0 ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMjExLDggKzIxMSw3IEBA IFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKIC0tIHNob3VsZCBmYWlsCiBTRUxF Q1QgdmFyX3JlYWRfZnVuYygpOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSBwbHBnc3FsX3N2X3ZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJwbHBnc3FsX3N2X3ZhcjEiCi1QTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9mdW5jKCkgbGlu ZSAzIGF0IFJBSVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygp IGxpbmUgMyBhdCBSQUlTRQogU0VUIFJPTEUgVE8gREVGQVVMVDsKIFNFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyX293bmVyX3JvbGU7CiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKaW5kZXggY2Iy ODI0MDRjMWEuLmQ0Mzc3Y2VlY2JmIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxf ZXhlYy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTgyNjQsOCArODI2 NCw3IEBAIGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhwcikKIAkJcXVlcnkt PnNvcnRDbGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5LT5saW1pdENv dW50IHx8Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8Ci0JCXF1ZXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzKQorCQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyoK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5k ZXggZWQ1MzgwNzE2MDIuLjBhNDEwZDZhYjAwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDgzLDggKzQ4Myw3IEBAIEVSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDogIFNR TCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKIEVS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVY VDogIFBML3BnU1FMIGV4cHJlc3Npb24gIiQxICsgdmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIHBs cGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCitDT05URVhUOiAgUEwvcGdTUUwgZnVu Y3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KIC0tIHNob3VsZCBiZSBv awogU0VMRUNUIHNxbGZ4X3NkKDIwKTsKICBzcWxmeF9zZCAKQEAgLTc4MCwyNyArNzc5LDI4IEBA ICQkOwogTk9USUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYsNyw4LDksMTB9CiBEUk9Q IFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7Ci0tLSBDQUxMIHN0YXRlbWVudCBp cyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9u IHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FMTCBzdGF0ZW1lbnQgaXMg c3VwcG9ydGVkCiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9IDE7CiBDUkVBVEUgUFJP Q0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQg JCQgTEFOR1VBR0UgcGxwZ3NxbDsKLS0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3Vw cG9ydGVkIHlldCkKKy0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7Ci1FUlJPUjogIHNlc3Np b24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK05PVElDRTogIDEKIERP ICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOwotRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNh bm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50Ci1DT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FM TCBwKHYpIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENB TEwKK05PVElDRTogIDEKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERST1AgVkFSSUFCTEUgdjsK LS0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBk aXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9y CistLSBFWEVDVVRFIHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OwogTEVUIHYgPSAy MDsKIFBSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7Ci0tLSBzaG91bGQgZmFpbAorLS0g c2hvdWxkIGJlIG9rCiBFWEVDVVRFIHB0ZXN0KHYpOwotRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl IGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisg ICAgICAgMjAKKygxIHJvdykKKwogREVBTExPQ0FURSBwdGVzdDsKIERST1AgVkFSSUFCTEUgdjsK IC0tIHRlc3Qgc2VhcmNoIHBhdGgKQEAgLTExMjMsMTIgKzExMjMsMTAgQEAgTEVUIHZhcjEuYSA9 IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0ZXN0dGFiIFdIRVJFIHhj b2wgPSB2YXIxLmEKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOwogRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhU OiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9j b2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlu bGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNF ICclJywgdmFyMS5hOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNz aW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxLmEi Ci1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0NP TlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJ U0UKIERPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOwogRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAg U1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgpAQCAtMTE3MCwxMiArMTE2 OCwxMCBAQCBMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9N IHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYQogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUn LCB2YXIxOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZh cmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxIgotUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitDT05URVhUOiAg UEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCiBETyAk JCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsKIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDogIFBML3BnU1FM IGV4cHJlc3Npb24gInZhcjEuYSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2Nr IGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2Rl X2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSAr IDEwOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlh YmxlIHZhcjEKIENPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5hICsg MTAiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYjgz ZTkwNTI4NGUuLmE1NDY2NWRkMTBiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC01NDgsMTMgKzU0OCwxNCBAQCAkJDsKIERST1AgVkFSSUFCTEUgdmFy MTsKIERST1AgVkFSSUFCTEUgdmFyMjsKIAotLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBv cnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBm cm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKKy0tIENBTEwgc3RhdGVtZW50IGlzIHN1cHBvcnRlZAog Q1JFQVRFIFZBUklBQkxFIHYgaW50OwogCitMRVQgdiA9IDE7CisKIENSRUFURSBQUk9DRURVUkUg cChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5H VUFHRSBwbHBnc3FsOwogCi0tLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRl ZCB5ZXQpCistLSBzaG91bGQgdG8gd29yawogQ0FMTCBwKHYpOwogCiBETyAkJCBCRUdJTiBDQUxM IHAodik7IEVORCAkJDsKQEAgLTU2MiwxMyArNTYzLDEyIEBAIERPICQkIEJFR0lOIENBTEwgcCh2 KTsgRU5EICQkOwogRFJPUCBQUk9DRURVUkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2OwogCi0t LSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGly ZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgor LS0gRVhFQ1VURSBzdGF0ZW1lbnQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIExFVCB2ID0gMjA7 CiBQUkVQQVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOwogCi0tLSBzaG91bGQgZmFpbAorLS0g c2hvdWxkIGJlIG9rCiBFWEVDVVRFIHB0ZXN0KHYpOwogCiBERUFMTE9DQVRFIHB0ZXN0OwotLSAK Mi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20250212-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr1l7 RnJvbSAwMDYxMWJlMmM1OGJjNDVhY2VkZTBiYTA5ODY0Y2UwNjNhNTU2ODVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKy0tCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKystCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDM2ICsrKysrCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLS0KIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE0NSArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMiArKysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUxOCBpbnNlcnRpb25zKCsp LCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDI3YmRhZjYyNjY4Li5jN2E4MTcw ZGRmMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTk4NjcsNiArOTg2NywyNiBAQCBTQ1JBTS1TSEEtMjU2 JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBs YWNlYWJsZT4mbAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJub3RudWxsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHNlc3Npb24gdmFyaWFi bGUgZG9lc24ndCBhbGxvdyBudWxsIHZhbHVlcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2Uu CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRydWUgaWYgdGhlIHZhcmlhYmxlIGlzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJp YWJsZS1pbW11dGFibGUiPmltbXV0YWJsZTwvbGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisg ICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAg ICAgPHN0cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFy PC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCBiZmJm ZjlhYjc0ZS4uZTcwNGUwNWE5OTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjA0NCw3ICs2MDQ0LDggQEAg JCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogICAgICBZb3UgY2FuIGNvbnNp ZGVyIHRyYW5zbGF0aW5nIGFuIE9yYWNsZSBwYWNrYWdlIGludG8gYSBzY2hlbWEgaW4KICAgICAg PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPi4gIFBhY2thZ2UgZnVuY3Rpb25z IGFuZCBwcm9jZWR1cmVzCiAgICAgIHdvdWxkIHRoZW4gYmVjb21lIGZ1bmN0aW9ucyBhbmQgcHJv Y2VkdXJlcyBpbiB0aGF0IHNjaGVtYSwgYW5kIHBhY2thZ2UKLSAgICAgdmFyaWFibGVzIGNvdWxk IGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCisgICAg IHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIG9yIGlt bXV0YWJsZSBzZXNzaW9uCisgICAgIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KICAgICAgKHNl ZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgogICAgIDwvcGFyYT4K ICAgIDwvc2VjdDM+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBlNGQ4 ODUxY2NiOC4uM2MzZTZkNTViNjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bApAQCAtMjYsOCArMjYsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5v cHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFS SUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgREVGQVVMVCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04g Q09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCitDUkVBVEUgWyB7IFRF TVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+ IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBE Uk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxF PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IGFzc2lnbmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdl ZC4KKyAgICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVm YXVsdCB2YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNp bmcgdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwg bm8gZnVydGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAg ICAgIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRl cmFsPk9OIFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCBy ZXNldCBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQg VkFSSUFCTEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAg IG9iamVjdHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJs aXN0ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRl cm0+PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVt PgpAQCAtMTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZB UklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlz dGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNy ZWF0ZXZhcmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0 ZXJhbD5OT1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lv bgorICAgICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3Jl YXRlZCBhcyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVm YXVsdCB2YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2 YWx1ZSwgdGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVu dHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+ REVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+ PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA4 ZmJhNGNjNDkzYi4uMGI2MDkzYTAwYmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAg LTQwLDYgKzQwLDggQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0 IGNoYXIgKnZhck5hbWUsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2 YXJDb2xsYXRpb24sCiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIGJv b2wgbm90X251bGwsCisJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCiAJCQkJCQkJCQkgTm9k ZSAqdmFyRGVmZXhwciwKIAkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVu ZEFjdGlvbik7CiAKQEAgLTU1LDYgKzU3LDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIg KnZhck5hbWUsCiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJ Ym9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCWJvb2wgbm90X251bGwsCisJCQkJYm9vbCBpc19pbW11 dGFibGUsCiAJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24g dmFyWGFjdEVuZEFjdGlvbikKIHsKQEAgLTExNyw2ICsxMjEsOCBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2Qg LSAxXSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJs ZV92YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0Fu dW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNv bGxhdGlvbik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9v bEdldERhdHVtKG5vdF9udWxsKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0 YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlzX2ltbXV0YWJsZSk7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRB Y3Rpb24pOwogCiAJaWYgKHZhckRlZmV4cHIpCkBAIC0yNTksNiArMjY1LDggQEAgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJ CQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+ aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKKwkJCQkJCQkgICBzdG10 LT5pc19pbW11dGFibGUsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3Rt dC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwppbmRleCA0MDI3NWFiZmE3ZS4uNWQ5MDdlZmY2MGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTg0LDYgKzg0LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zhcmlh YmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9u SWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlub3RfbnVsbDsKKwlib29sCQlp c19pbW11dGFibGU7CisKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKIAkvKgpAQCAtMTAyLDYgKzEw NSw5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlpc192YWxpZDsKIAog CXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAq LworCisJLyogdHJ1ZSwgd2hlbiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBzZXQsIGFuZCBjYW5ub3Qg YmUgY2hhbmdlZCBtb3JlICovCisJYm9vbAkJcHJvdGVjdF92YWx1ZTsKIH0gU1ZhcmlhYmxlRGF0 YTsKIAogdHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CkBAIC01NjMsNiArNTY5LDIz IEBAIGV2YWxfYXNzaWduX2RlZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCiAK IAkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CisJCWVsc2UKKwkJeworCQkJ LyoKKwkJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRoaXMgaXMgYSBOT1QgTlVMTCB2YXJpYWJsZSBi dXQgdGhlIHJlc3VsdCBvZgorCQkJICogREVGQVVMVCBleHByZXNzaW9uIGlzIE5VTEwuCisJCQkg Ki8KKwkJCWlmIChzdmFyLT5ub3RfbnVsbCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJCSBlcnJtc2coIm51 bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIiwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHN2YXItPnZhcmlkKSksCisJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcmVzdWx0IG9mIERFRkFV TFQgZXhwcmVzc2lvbiBpcyBOVUxMLiIpKSk7CisJCX0KKworCQlpZiAoc3Zhci0+aXNfaW1tdXRh YmxlKQorCQkJc3Zhci0+cHJvdGVjdF92YWx1ZSA9IHRydWU7CiAKIAkJRnJlZUV4ZWN1dG9yU3Rh dGUoZXN0YXRlKTsKIAl9CkBAIC01OTMsNiArNjE2LDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJZ2V0X3R5cGxl bmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOwogCisJ c3Zhci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxsOworCXN2YXItPmlzX2ltbXV0YWJs ZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90 eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21h aW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0g SW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTYyMiw5ICs2NDgsMzEgQEAgc2V0dXBfc2Vz c2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQog CXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKIAkJ CQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCi0JaWYgKCFpc193cml0ZSkKKwlz dmFyLT5wcm90ZWN0X3ZhbHVlID0gZmFsc2U7CisKKwkvKgorCSAqIFdoZW4gdGhlIHZhcmlhYmxl IGlzIG1hcmtlZCBhcyBJTU1VVEFCTEUsIHdlIHByZWZlciB0byBldmFsdWF0ZQorCSAqIHBvc3Np YmxlIERFRkFVTFQgYmVmb3JlIHdyaXRlIG9wLiBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcm90 ZWN0CisJICogZGVmYXVsdCB2YWx1ZSBhZ2FpbnN0IGFueSBvdmVyd3JpdGUuCisJICovCisJaWYg KCFpc193cml0ZSB8fAorCQlzdmFyLT5pc19pbW11dGFibGUpCisJewogCQlldmFsX2Fzc2lnbl9k ZWZleHByKHN2YXIsIHR1cCk7CiAKKwkJLyoKKwkJICogUmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBp cyBhIE5PVCBOVUxMIHZhcmlhYmxlIHdpdGhvdXQgZGVmYXVsdAorCQkgKiBleHByZXNzaW9uLgor CQkgKi8KKwkJaWYgKHN2YXItPmlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJ CQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Np b24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgc2Vzc2lvbiB2YXJpYWJs ZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4iKSkpOworCX0KKwogCVJlbGVhc2VTeXNDYWNoZSh0 dXApOwogfQogCkBAIC02NDQsNiArNjkyLDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJp YWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJQXNzZXJ0KHN2YXIpOwogCUFz c2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CiAKKwlpZiAoc3Zhci0+cHJvdGVj dF92YWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0VSUk9SX0lO X0FTU0lHTk1FTlQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlz IGRlY2xhcmVkIElNTVVUQUJMRSIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKworCS8qIGRvbid0IGFsbG93IGFzc2lnbm1l bnQgb2YgbnVsbCB0byBOT1QgTlVMTCB2YXJpYWJsZSAqLworCWlmIChpc251bGwgJiYgc3Zhci0+ bm90X251bGwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZB TFVFX05PVF9BTExPV0VEKSwKKwkJCQkgZXJybXNnKCJudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2Vk IGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQlnZXRfbmFt ZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSks CisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKwogCS8q CiAJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3 aGVuIHRoZXkgYXJlCiAJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 YXMgbm90IGFjY2VwdGVkIGZvciB0aGlzCkBAIC02ODQsNiArNzQ3LDEwIEBAIHNldF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlz dmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251bGw7CisKKwkvKiBkb24n dCBhbGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUg Ki8KKwlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQorCQlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1 ZTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDFkMTBlYjdjNTJjLi4xMWFlOTZhNDM5NyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC02NzUsNiArNjc1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJ CQlqc29uX29iamVjdF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5 X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51 bGwgT3B0SW1tdXRhYmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNl IGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUyNjUsMjcgKzUyNjYs MzEgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K IAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFs aWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25W YXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0 YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVf Y2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlv bgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVT ZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52 YXJpYWJsZSA9ICQ0OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNl ID0gKENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+ WGFjdEVuZEFjdGlvbiA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJ bi0+aXNfaW1tdXRhYmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5 cGVOYW1lID0gJDc7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsK KwkJCQkJbi0+bm90X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+ WGFjdEVuZEFjdGlvbiA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJ Rl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRl X2NsYXVzZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENS RUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlm aWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9w dFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0 ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJ CQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJ bi0+dHlwZU5hbWUgPSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICop ICQxMDsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQx MjsKKwkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9 ICQzOworCQkJCQluLT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJ CQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251 bGwgPSAkMTI7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24g PSAkMTQ7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICop IG47CiAJCQkJfQpAQCAtNTMwNSw2ICs1MzEwLDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBP TiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAog CitPcHROb3ROdWxsOiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBF TVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVU QUJMRQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9 IGZhbHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhU RU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA3ZWQ2ZmE1 YWM0Yi4uNzI3ZjZhMThmMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQ0Miw2ICs1NDQyLDggQEAgZ2V0 VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWlu dAkJCWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJub3Ru dWxsOworCWludAkJCWlfdmFyaXNpbW11dGFibGU7CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJ aV9hY2xkZWZhdWx0OwogCWludAkJCWksCkBAIC01NDYyLDYgKzU0NjQsOCBAQCBnZXRWYXJpYWJs ZXMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlv blxuIgogCQkJCQkgICIgICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBB UyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm5vdG51bGwsXG4iCisJCQkJ CSAgIiAgICAgICB2LnZhcmlzaW1tdXRhYmxlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAi ICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVs dCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKQEAgLTU0ODIsNiArNTQ4Niw4IEBA IGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihy ZXMsICJ2YXJkZWZleHByIik7CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywg InZhcnhhY3RlbmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2 YXJjb2xsYXRpb24iKTsKKwlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVs bCIpOworCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUi KTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFj bCA9IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKQEAgLTU1MDgsNiArNTUxNCw4IEBAIGdldFZh cmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3ZhcnhhY3RlbmRhY3Rpb24pKTsKIAogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29p ZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKwkJdmFyaW5mb1tpXS52YXJu b3RudWxsID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOworCQl2 YXJpbmZvW2ldLnZhcmlzaW1tdXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2lt bXV0YWJsZSkpID09ICd0JzsKIAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVs dCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NTU0 LDcgKzU1NjIsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJ bmZvICp2YXJpbmZvKQogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CiAJY29uc3QgY2hhciAqdmFy ZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0aW9uOworCWNvbnN0IGNoYXIgKnZh cmlzaW1tdXRhYmxlOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwlib29sCQl2YXJub3RudWxsOwog CiAJLyogc2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCiAJaWYgKCF2YXJpbmZvLT5kb2JqLmR1 bXAgfHwgIWRvcHQtPmR1bXBTY2hlbWEpCkBAIC01NTY4LDEyICs1NTc4LDE0IEBAIGR1bXBWYXJp YWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJdmFyZGVm ZXhwciA9IHZhcmluZm8tPnZhcmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8t PnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9u OworCXZhcm5vdG51bGwgPSB2YXJpbmZvLT52YXJub3RudWxsOworCXZhcmlzaW1tdXRhYmxlID0g dmFyaW5mby0+dmFyaXNpbW11dGFibGUgPyAiSU1NVVRBQkxFICIgOiAiIjsKIAogCWFwcGVuZFBR RXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFt ZSk7CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAl cyIsCi0JCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzaW1tdXRh YmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xs YXRpb24pKQogCXsKQEAgLTU1ODUsNiArNTU5Nyw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpm b3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWRE dW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcm5vdG51bGwpCisJCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiIE5PVCBOVUxMIik7CisKIAlpZiAodmFyZGVmZXhwcikKIAkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAlcyIsCiAJCQkJCQkgIHZhcmRlZmV4cHIpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKaW5kZXggZWYxYmEwNDIxMzIuLjBhZTQwNmY4NTUxIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcy Miw2ICs3MjIsOCBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJY2hhcgkgICAqdmFy eGFjdGVuZGFjdGlvbjsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAJY29uc3QgY2hhciAqcm9sbmFt ZTsJCS8qIG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLworCWJvb2wJCXZhcm5vdG51 bGw7CisJYm9vbAkJdmFyaXNpbW11dGFibGU7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwKaW5kZXggZmIyNWY4MGE4NTIuLjVmODBiZDRlNzlhIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNDEwOCw2ICs0MTA4LDQyIEBAIG15ICV0ZXN0cyA9ICgK IAkJfSwKIAl9LAogCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZScg PT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4u IGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NS RUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2VyJywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rl c3QudmFyaWFibGU1IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVu cywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEs CisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwK KwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRF IElNTVVUQUJMRSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIE5PVCBOVUxMIERFRkFVTFQnID0+IHsK KwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21t YW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTcgQVMgaW50ZWdlciBOT1QgTlVM TCBERUZBVUxUIDEwJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIElNTVVUQUJMRSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAx MDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hl bWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsK KwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVt ZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsK IAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1w X3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGI1ZTVkMDczZjljLi4wNzgzNWFhMmJhYiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKQEAgLTUzMzEsNyArNTMzMSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAq cmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJv b2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFu c2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVy c2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MzUyLDYgKzUzNTIsOCBAQCBsaXN0VmFyaWFibGVzKGNv bnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICAoU0VMRUNUIGMuY29s bG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5cGUg YnRcbiIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQub2lk ID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFzIFwi JXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVy KSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVzXCIsXG4i CisJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIg IHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAwKSBhcyBcIiVzXCIsXG4iCiAJ CQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2Qn IFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgpAQCAtNTM2Miw2ICs1MzY0LDggQEAgbGlzdFZhcmlh Ymxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgZ2V0dGV4dF9u b29wKCJUeXBlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKIAkJCQkJICBn ZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJsZSIpLAor CQkJCQkgIGdldHRleHRfbm9vcCgiTXV0YWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiRGVm YXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikp OwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggODZjMmQ1YzNhNjYuLmY1NDdiY2UxYTEwIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMjczLDYgKzEyNzMsOCBAQCBzdGF0aWMgY29uc3Qg cGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7IkZPUkVJR04gVEFCTEUi LCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IkZVTkNUSU9OIiwgTlVMTCwgTlVMTCwgUXVlcnlfZm9y X2xpc3Rfb2ZfZnVuY3Rpb25zfSwKIAl7IkdST1VQIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXN9 LAorCXsiSU1NVVRBQkxFIFZBUklBQkxFIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdf Tk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9yIENSRUFURSBJTU1VVEFCTEUKKwkJCQkJ CQkJCQkJCQkJCQkJCQkJCSAqIFZBUklBQkxFIC4uLiAqLwogCXsiSU5ERVgiLCBOVUxMLCBOVUxM LCAmUXVlcnlfZm9yX2xpc3Rfb2ZfaW5kZXhlc30sCiAJeyJMQU5HVUFHRSIsIFF1ZXJ5X2Zvcl9s aXN0X29mX2xhbmd1YWdlc30sCiAJeyJMQVJHRSBPQkpFQ1QiLCBOVUxMLCBOVUxMLCBOVUxMLCBO VUxMLCBUSElOR19OT19DUkVBVEUgfCBUSElOR19OT19EUk9QfSwKQEAgLTM2MTIsNyArMzYxNCw4 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRBQkxF IC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMg Ki8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJs ZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8 VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklB QkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVfV0lUSCgiSU1NVVRBQkxFIFZBUklBQkxFIiwgIlNF UVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwKKwkJCQkJICAiVklFVyIpOwogCS8qIENvbXBs ZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRB QkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zOTY0LDcgKzM5NjcsOCBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBp bnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUg Q1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMo IkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAotCQkJIFRhaWxNYXRjaGVzKCJURU1Q fFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJCSBUYWlsTWF0Y2hlcygiVEVN UHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygi SU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIp OwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJ LyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCkBAIC00 NjI0LDYgKzQ2MjgsMTAgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkZST00iLCAiU0VSVkVSIiwgTWF0Y2hBbnksICJJTlRPIiwg TWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPUFRJT05TICgiKTsKIAorLyogSU1NVVRBQkxF IC0tIGNhbiBiZSBleHBlbmQgdG8gSU1NVVRBQkxFIFZBUklBQkxFICovCisJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIkNSRUFURSIsICJJTU1VVEFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiVkFSSUFC TEUiKTsKKwogLyogSU5TRVJUIC0tLSBjYW4gYmUgaW5zaWRlIEVYUExBSU4sIFJVTEUsIGV0YyAq LwogCS8qIENvbXBsZXRlIE5PVCBNQVRDSEVEIFRIRU4gSU5TRVJUICovCiAJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIk5PVCIsICJNQVRDSEVEIiwgIlRIRU4iLCAiSU5TRVJUIikpCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKaW5kZXggMDlkZDQ0YTQ0ZTEuLmNmMjFlMDQyNmE3IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01Niw2ICs1NiwxMiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxl LDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBl ICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CiAKKwkvKiBkb24ndCBhbGxv dyBOVUxMICovCisJYm9vbAkJdmFybm90bnVsbCBCS0lfREVGQVVMVChmKTsKKworCS8qIGRvbid0 IGFsbG93IGNoYW5nZXMgKi8KKwlib29sCQl2YXJpc2ltbXV0YWJsZSBCS0lfREVGQVVMVChmKTsK KwogCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5kYWN0 aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZDFkMmFjOTFm YjUuLjZiY2FmNDgwNTc2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNTM1LDYgKzM1MzUs OCBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCVR5cGVOYW1lICAgKnR5 cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlDb2xsYXRlQ2xhdXNlICpjb2xs Q2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFk eSBleGlzdHMgKi8KKwlib29sCQlub3RfbnVsbDsJCS8qIGRpc2FsbG93IG51bGxzICovCisJYm9v bAkJaXNfaW1tdXRhYmxlOwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCiAJTm9kZQkgICAqZGVm ZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8q IG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA5OTlmYzg4ZDFlMS4uNzhhY2E2N2U0NTIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNjAyMCwyMCArNjAyMCwyMCBAQCBD UkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVzc192 YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAi QyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2 YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAg IHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAg ICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK LSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAg ICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3Jp cHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8 IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zhcmlh YmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAgICAgICB8ICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAg ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwg RGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2Vz cyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWlu ZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAg ICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTY1MDEsOSArNjUw MSw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxl IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERl ZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90 dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY2NzYsOSArNjY3Niw5IEBAIGltcHJvcGVy IHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmln Z2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25l ciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51 bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCist LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAt LSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFs aWZpY2F0aW9ucy4KQEAgLTY4MTUsOSArNjgxNSw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVt cGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwg TXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSst LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApp bmRleCBiNWFkYjc5NzgwMS4uZWQ1MzgwNzE2MDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0yNDUyLDMgKzI0NTIsMTQ4IEBAIFNF TEVDVCB2YXIxOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3Rf ZngoKTsKKy0tIHRlc3QgTk9UIE5VTEwKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50IE5PVCBOVUxMOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxOwor RVJST1I6ICBudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIKK0RFVEFJTDogIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBu b3QgaW5pdGlhbGl6ZWQgeWV0LgorLS1zaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1Qg TlVMTCBERUZBVUxUIDA7CistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOwor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBOVUxMOworRVJST1I6ICBu dWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlICJw dWJsaWMudmFyMSIKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3QgTk9UIE5VTEwKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JF R0lOCisgIFJFVFVSTiBOVUxMOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKy0tIHNo b3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxs b3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitERVRBSUw6 ICBUaGUgcmVzdWx0IG9mIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLgorRElTQ0FSRCBWQVJJ QUJMRVM7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gMDsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBi ZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworRFJP UCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IElN TVVUQkxFCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCist LSBmaXJzdCB3cml0ZSBzaG91bGQgb2sKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsK Ky0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklBQkxFUzsK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFy MSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFy ZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IE5VTEw7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9S OiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQor RFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGlu dCBERUZBVUxUIDEwOworLS0gZG9uJ3QgYWxsb3cgY2hhbmdlIHdoZW4gdmFyaWFibGUgaGFzIERF RkFVTFQgdmFsdWUKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVND QVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorICAgMTAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitF UlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFC TEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIElNTVVUQUJM RSBWQVJJQUJMRSB2YXIxIEFTIElOVCBOT1QgTlVMTCBERUZBVUxUIDEwOworLS0gc2hvdWxkIHRv IGZhaWwKK0xFVCB2YXIxID0gMTA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52 YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Np b24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKKy0tIHNob3Vs ZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKwor LS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMzA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFy MTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA1YzA2 NGEyOTJkZi4uYjgzZTkwNTI4NGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTE2ODYsMyArMTY4NiwxMjUgQEAgU0VMRUNUIHZhcjE7CiAKIERST1Ag VkFSSUFCTEUgdmFyMTsKIERST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSB0ZXN0IE5P VCBOVUxMCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1Qg TlVMTDsKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKKworLS1zaG91bGQgYmUgb2sK K0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCist LSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZB VUxUIDA7CisKKy0tc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCist LSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBOVUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7 CisKKy0tIHRlc3QgTk9UIE5VTEwKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3Rf ZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBOVUxMOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE5PVCBOVUxM IERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7 CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7 CitTRUxFQ1QgdmFyMTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgp CitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxF Q1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4 KCk7CisKKy0tIHRlc3QgSU1NVVRCTEUKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CistLSBmaXJzdCB3cml0ZSBz aG91bGQgb2sKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWls CitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NB UkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEg QVMgaW50IERFRkFVTFQgMTA7CisKKy0tIGRvbid0IGFsbG93IGNoYW5nZSB3aGVuIHZhcmlhYmxl IGhhcyBERUZBVUxUIHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAyMDsKKwor RElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CistLSBz aG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBz aG91bGQgYmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5V TEwgREVGQVVMVCAxMDsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMTA7CitMRVQg dmFyMSA9IDIwOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQg dG8gZmFpbAorTEVUIHZhcjEgPSAzMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAKMi40OC4x Cgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20250212-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr1s8 RnJvbSBlMTFjYWMzZjNjZDIzZmEzMDdhNGJhNmQwZDQ3OTRlYmFiYzllMjNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTQvMjJdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNz aW9ucwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1 bHQgZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9u dmFycwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNz ZnVsbHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFn IGZvciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21s L2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dt bC9yZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNjMgKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDQ4ICsrKysrKysr KysKIDIwIGZpbGVzIGNoYW5nZWQsIDM1MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDY4N2QxYzg3MzNhLi4yN2JkYWY2MjY2OCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk4OTksNiArOTg5OSwxNCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJkZWZleHByPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdf bm9kZV90cmVlPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhl IGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSBkZWZhdWx0IHZhbHVlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdy b3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDIxMzQ4YzlmYTg5Li44NDNlYzdmZmVhMiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtNTQwNywxNCArNTQwNywxNCBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogCiAgICA8cGFy YT4KICAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBj dXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKLSAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJu cyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRzIHZhbHVlIGhhcwotICAgIGJl ZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gdXNpbmcgdGhl Ci0gICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMg YXJlIG5vdCB0cmFuc2FjdGlvbmFsOgotICAgIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVl IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9uIHdvbid0Ci0gICAgYmUgdW5k b25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAoanVzdCBsaWtlIHZhcmlhYmxl cyBpbgotICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1z ZWx2ZXMgY2FuIGJlIHBlcnNpc3RlbnQKLSAgICBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1 ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZQotICAgIGNvbnRl bnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMg YSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBvciBhIGRlZmF1bHQgdmFsdWUsCisgICAgdW5sZXNz IGl0cyB2YWx1ZSBoYXMgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50 IHNlc3Npb24KKyAgICB1c2luZyB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAg U2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdAorICAgIHRyYW5zYWN0aW9uYWw6IGFueSBjaGFuZ2Vz IG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbgorICAgIGEgdHJhbnNh Y3Rpb24gd29uJ3QgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAo anVzdCBsaWtlCisgICAgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Np b24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJlCisgICAgcGVyc2lzdGVudCBvciB0ZW1wb3Jh cnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkCisg ICAgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCiAgICA8L3BhcmE+CiAK ICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggYzg5YTY1 ZmI1NWYuLmU0ZDg4NTFjY2I4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92 YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwK QEAgLTI3LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lz ZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJM RSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90 eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCi0gICAgWyB7IE9OIENPTU1JVCBEUk9QIHwgT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQorICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlU IERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lzPgogIDwvcmVm c3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNDEsMTAgKzQxLDEwIEBAIENSRUFURSBbIHsg VEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwCiAKICAgPHBhcmE+CiAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCi0gICBhIHNl c3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMg c2V0IHRvCi0gICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCi0gICBUaGUgY29udGVudCBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKLSAg IHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICAgYSBzZXNzaW9u IHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMIG9yIGEgZGVmYXVsdCB2YWx1ZSwgdW5sZXNz IGl0cyB2YWx1ZQorICAgaXMgc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNl c3Npb24gd2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGUgY29u dGVudCBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuICBUaGlzIGlz IHRoZQorICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdl cy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTA1LDYgKzEwNSwxNyBAQCBDUkVBVEUgWyB7 IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg PHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRlZmF1bHQiPgorICAgIDx0ZXJt PjxsaXRlcmFsPkRFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+ PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IDxsaXRlcmFsPkRFRkFVTFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB0byBhc3NpZ24g YSBkZWZhdWx0CisgICAgICB2YWx1ZSB0byBhIHNlc3Npb24gdmFyaWFibGUuIFRoaXMgZXhwcmVz c2lvbiBpcyBldmFsdWF0ZWQgd2hlbiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgaXMgZmly c3QgYWNjZXNzZWQgZm9yIHJlYWRpbmcgYW5kIGhhZCBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2 YWx1ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9w Ij4KICAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAppbmRleCA2MWI5NjdmOWM5Yi4uNmIwY2I5 NTAzNGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCkBAIC03MSw3ICs3MSw4IEBAIERJU0NBUkQgeyBB TEwgfCBQTEFOUyB8IFNFUVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQog ICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBSZXNldHMgdGhlIHZhbHVlIG9mIGFs bCBzZXNzaW9uIHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZQotICAgICAgaXMgbGF0ZXIgcmV1c2Vk LCBpdCBpcyByZS1pbml0aWFsaXplZCB0byA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPi4KKyAgICAg IGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gZWl0aGVyCisgICAgICA8 bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBvciBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAgPC9wYXJh PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYwppbmRleCAwMGM5MGVhNmZkOC4uOGZiYTRjYzQ5M2IgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMKQEAgLTI0LDYgKzI0LDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHByLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlu cy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMzcsNiArNDAsNyBAQCBzdGF0 aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJ CQkJCQkJCSBPaWQgdmFyT3duZXIsCiAJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKIAkJCQkJ CQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJCQkgTm9kZSAqdmFyRGVmZXhwciwKIAkJ CQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbik7CiAKIApAQCAt NTEsNiArNTUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlP aWQgdmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwKIAkJCQlib29sIGlmX25vdF9leGlz dHMsCisJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFy WGFjdEVuZEFjdGlvbikKIHsKIAlBY2wJCSAgICp2YXJhY2w7CkBAIC0xMTQsNiArMTE5LDExIEBA IGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24p OwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJH ZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAorCWlmICh2YXJEZWZleHByKQorCQl2YWx1ZXNb QW51bV9wZ192YXJpYWJsZV92YXJkZWZleHByIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG5v ZGVUb1N0cmluZyh2YXJEZWZleHByKSk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmRlZmV4cHIgLSAxXSA9IHRydWU7CisKIAl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2Fj bChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CiAJ aWYgKHZhcmFjbCAhPSBOVUxMKQpAQCAtMTUwLDYgKzE2MCwxMSBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5kZW5jaWVz KCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CiAJZnJlZV9vYmplY3RfYWRkcmVz c2VzKGFkZHJzKTsKIAorCS8qIGRlcGVuZGVuY3kgb24gZGVmYXVsdCBleHByICovCisJaWYgKHZh ckRlZmV4cHIpCisJCXJlY29yZERlcGVuZGVuY3lPbkV4cHIoJm15c2VsZiwgKE5vZGUgKikgdmFy RGVmZXhwciwKKwkJCQkJCQkgICBOSUwsIERFUEVOREVOQ1lfTk9STUFMKTsKKwogCS8qIGRlcGVu ZGVuY3kgb24gb3duZXIgKi8KIAlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0 aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CiAKQEAgLTE4NSw2ICsyMDAsNyBAQCBDcmVhdGVWYXJp YWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCU9p ZAkJCWNvbGxhdGlvbjsKIAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2JqZWN0QWRkcmVzcyB2YXJp YWJsZTsKKwlOb2RlCSAgICpjb29rZWRfZGVmYXVsdCA9IE5VTEw7CiAKIAkvKiBjaGVjayBjb25z aXN0ZW5jeSBvZiBhcmd1bWVudHMgKi8KIAlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJ QUJMRV9YQUNURU5EX0RST1AKQEAgLTIyNiw2ICsyNDIsMTYgQEAgQ3JlYXRlVmFyaWFibGUoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCWZvcm1h dF90eXBlX2JlKHR5cGlkKSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQt PmNvbGxDbGF1c2UtPmxvY2F0aW9uKSkpOwogCisJaWYgKHN0bXQtPmRlZmV4cHIpCisJeworCQlj b29rZWRfZGVmYXVsdCA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBzdG10LT5kZWZleHByLAorCQkJ CQkJCQkJICAgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQpOworCisJCWNvb2tlZF9kZWZhdWx0 ID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLAorCQkJCQkJCQkJCQkJIGNvb2tlZF9k ZWZhdWx0LCB0eXBpZCwgIkRFRkFVTFQiKTsKKwkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3Rh dGUsIGNvb2tlZF9kZWZhdWx0KTsKKwl9CisKIAl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShz dG10LT52YXJpYWJsZS0+cmVsbmFtZSwKIAkJCQkJCQkgICBuYW1lc3BhY2VpZCwKIAkJCQkJCQkg ICB0eXBpZCwKQEAgLTIzMyw2ICsyNTksNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHZhcm93bmVyLAog CQkJCQkJCSAgIGNvbGxhdGlvbiwKIAkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJ CQkJCSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwog CiAJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6 JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYwppbmRleCAwMzVlNWRhMDhmMi4uNDAyNzVhYmZhN2UgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRl ICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAj aW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1n ci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgpAQCAtNTEwLDExICs1MTEsNjggQEAgQXRF T1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LAogCX0KIH0KIAorLyoKKyAq IGV2YWx1YXRlIGFuIGV4cHJlc3Npb24KKyAqLworc3RhdGljIHZvaWQKK2V2YWxfYXNzaWduX2Rl ZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCit7CisJRGF0dW0JCWRlZmV4cHJf dmFsdWU7CisJYm9vbAkJaXNudWxsOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydChzdmFyLT5p c192YWxpZCk7CisJQXNzZXJ0KEhlYXBUdXBsZUlzVmFsaWQodHVwKSk7CisKKwlkZWZleHByX3Zh bHVlID0gU3lzQ2FjaGVHZXRBdHRyKFZBUklBQkxFT0lELAorCQkJCQkJCQkJdHVwLAorCQkJCQkJ CQkJQW51bV9wZ192YXJpYWJsZV92YXJkZWZleHByLAorCQkJCQkJCQkJJmlzbnVsbCk7CisKKwlp ZiAoIWlzbnVsbCkKKwl7CisJCUVTdGF0ZQkgICAqZXN0YXRlOworCQlFeHByU3RhdGUgICpkZWZl eHByczsKKwkJRXhwcgkgICAqZGVmZXhwcjsKKwkJY2hhcgkgICAqZGVmZXhwcl9zdHI7CisJCURh dHVtCQl2YWx1ZTsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJZXN0YXRlID0gQ3JlYXRl RXhlY3V0b3JTdGF0ZSgpOworCisJCWRlZmV4cHJfc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhk ZWZleHByX3ZhbHVlKTsKKwkJZGVmZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShkZWZleHBy X3N0cik7CisKKwkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVl cnlfY3h0KTsKKworCQlkZWZleHByID0gZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIGRlZmV4 cHIpOworCQlkZWZleHBycyA9IEV4ZWNJbml0RXhwcihkZWZleHByLCBOVUxMKTsKKworCQl2YWx1 ZSA9IEV4ZWNFdmFsRXhwclN3aXRjaENvbnRleHQoZGVmZXhwcnMsCisJCQkJCQkJCQkJICBHZXRQ ZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSksCisJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJ b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOwor CisJCQlzdmFyLT52YWx1ZSA9IGRhdHVtQ29weSh2YWx1ZSwgc3Zhci0+dHlwYnl2YWwsIHN2YXIt PnR5cGxlbik7CisJCQlzdmFyLT5pc251bGwgPSBmYWxzZTsKKworCQkJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGN4dCk7CisJCX0KKworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCX0K K30KKwogLyoKICAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8K IHN0YXRpYyB2b2lkCi1zZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQg dmFyaWQpCitzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQs IGJvb2wgaXNfd3JpdGUpCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlGb3JtX3BnX3ZhcmlhYmxlIHZh cmZvcm07CkBAIC01NjQsNiArNjIyLDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFi bGUgc3ZhciwgT2lkIHZhcmlkKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZh bHVlMShWQVJJQUJMRU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwog CisJaWYgKCFpc193cml0ZSkKKwkJZXZhbF9hc3NpZ25fZGVmZXhwcihzdmFyLCB0dXApOworCiAJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAKQEAgLTU5Myw3ICs2NTQsNyBAQCBzZXRfc2Vzc2lv bl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCSAq LwogCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZs b2NzdmFyLCBzdmFyLT52YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIs IHN2YXItPnZhcmlkLCBmYWxzZSk7CiAJCV9zdmFyID0gJmxvY3N2YXI7CiAJfQogCWVsc2UKQEAg LTcyNiw3ICs3ODcsMjUgQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCSAqLwog CWlmICghc3Zhci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIs IHZhcmlkKTsKKwkJLyogaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gdXNlIGRlZmV4cCBpZiBpdCBp cyBkZWZpbmVkICovCisJCVBHX1RSWSgpOworCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBjYXNl LCB0aGUgc2V0dXAgY2FuIGV4ZWN1dGUgZGVmYXVsdCBleHByZXNzaW9uLiBXaGVuCisJCQkgKiB0 aGUgZXhlY3V0aW9uIG9mIGRlZmF1bHQgZXhwcmVzc2lvbiBmYWlscywgdGhlbiB3ZSBuZWVkIHRv CisJCQkgKiByZW1vdmUgZW50cnkgZnJvbSBzZXNzaW9uIHZhcnMuCisJCQkgKi8KKwkJCXNldHVw X3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQsIGZhbHNlKTsKKwkJfQorCQlQR19DQVRDSCgp OworCQl7CisJCQkvKiB0aGlzIGVudHJ5IGNhbm5vdCBiZSB2YWxpZCwgcmVtb3ZlIGZyb20gc2Vz c2lvbnZhcnMgKi8KKwkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVN T1ZFLCBOVUxMKTsKKworCQkJLyogcHJvcGFnYXRlIHRoZSBlcnJvciAqLworCQkJUEdfUkVfVEhS T1coKTsKKwkJfQorCQlQR19FTkRfVFJZKCk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChl bWl0dGVkIGJ5IFJFQUQpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCkBAIC03OTAsNyArODY5LDcgQEAgU2V0U2Vzc2lvblZh cmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCiAJaWYgKCFmb3Vu ZCkKIAl7Ci0JCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQlzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkLCB0cnVlKTsKIAogCQllbG9nKERFQlVHMSwgInNl c3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBt ZW1vcnkgKGVtaXR0ZWQgYnkgV1JJVEUpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA1 MmUxMWM4ZDc3MC4uMWQxMGViN2M1MmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjQ1LDYgKzY0NSw3IEBA IHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8cGFydGJvdW5kc3BlYz4gUGFydGl0aW9u Qm91bmRTcGVjCiAldHlwZSA8bGlzdD4JCWhhc2hfcGFydGJvdW5kCiAldHlwZSA8ZGVmZWx0PgkJ aGFzaF9wYXJ0Ym91bmRfZWxlbQorJXR5cGUgPG5vZGU+CQlPcHRTZXNzaW9uVmFyRGVmRXhwcgog CiAldHlwZSA8bm9kZT4JanNvbl9mb3JtYXRfY2xhdXNlCiAJCQkJanNvbl9mb3JtYXRfY2xhdXNl X29wdApAQCAtNTI2NCwzMCArNTI2NSwzNiBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgog ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFU RSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFC TEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRT ZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVT ZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKIAkJCQkJ JDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZhcmlhYmxlID0gJDQ7CiAJCQkJCW4t PnR5cGVOYW1lID0gJDY7CiAJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAk NzsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQ4OworCQkJCQluLT5kZWZleHByID0gJDg7CisJ CQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkOTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNl OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJ QUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIFZB UklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0 X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24K IAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vz c2lvblZhclN0bXQpOwogCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKIAkJCQkJbi0+dmFy aWFibGUgPSAkNzsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKIAkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKKwkJ CQkJbi0+ZGVmZXhwciA9ICQxMTsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJ bi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJ CTsKIAorT3B0U2Vzc2lvblZhckRlZkV4cHI6IERFRkFVTFQgYl9leHByCQkJCQl7ICQkID0gJDI7 IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwkJOworCiAvKgogICog VGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwK ICAqIHRyYW5zYWN0aW9uIGVuZCBsaWtlIHRhYmxlcy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRl eCA0NzM3YjA0ZDE3MS4uNTRiNzY1YzhlYjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ4 OCw2ICs0ODgsNyBAQCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5f REVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBS X0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAogCQkJaWYgKGlzQWdnKQogCQkJCWVyciA9IF8oImFn Z3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMi KTsKQEAgLTkzNyw2ICs5MzgsNyBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRl ICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5E X0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQlj YXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93IGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7 CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YwppbmRleCBiYzc1MWI0YTQ0MS4uNWRkZDNlYmJhZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YwpAQCAtNTg5LDYgKzU4OSw3IEBAIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMo UGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoK IAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RB UkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJlc3VsdCA9IGZh bHNlOwogCQkJYnJlYWs7CiAJfQpAQCAtNjc0LDYgKzY3NSw3IEBAIHRyYW5zZm9ybUNvbHVtblJl ZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRf Q1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKIAkJY2FzZSBFWFBS X0tJTkRfTEVUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJ CS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCkBAIC0yMTcyLDYgKzIxNzQsNyBAQCB0cmFuc2Zvcm1T dWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJCWJyZWFrOwog CQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJ T05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9 IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CiAJCQlicmVh azsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKQEAgLTM1MzQsNiArMzUzNyw3 IEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4g IkNIRUNLIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9L SU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6 CiAJCQlyZXR1cm4gIkRFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9O OgogCQkJcmV0dXJuICJpbmRleCBleHByZXNzaW9uIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmlu ZGV4IGRjMjVmNmRjZDBlLi5kOWYxNWMyNjE4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBA IC0yNjIwLDYgKzI2MjAsNyBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQkJYnJlYWs7CiAJCWNhc2Ug RVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZB VUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygic2V0 LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lv bnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKaW5kZXggZGQ5OTFiOTA1MzUuLjdlZDZmYTVhYzRiIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0 MzgsNiArNTQzOCw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfdmFy bmFtZXNwYWNlOwogCWludAkJCWlfdmFydHlwZTsKIAlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50 CQkJaV92YXJkZWZleHByOwogCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zh cm93bmVyOwogCWludAkJCWlfdmFyY29sbGF0aW9uOwpAQCAtNTQ2MSw2ICs1NDYyLDcgQEAgZ2V0 VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJj b2xsYXRpb25cbiIKIAkJCQkJICAiICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAgIiAgICAg ICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5wZ19n ZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAgICAg IHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVics IHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKIAkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBn X3ZhcmlhYmxlIHZcbiIKQEAgLTU0NzcsNiArNTQ3OSw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZl ICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWVzcGFjZSIp OwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1l ID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsKKwlpX3ZhcmRlZmV4cHIgPSBQUWZudW1i ZXIocmVzLCAidmFyZGVmZXhwciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihy ZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVz LCAidmFyY29sbGF0aW9uIik7CiAKQEAgLTU1MTIsNiArNTUxNSwxMSBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAkJdmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CiAJCXZh cmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93 bmVyKSk7CiAKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJkZWZleHByKSkKKwkJCXZh cmluZm9baV0udmFyZGVmZXhwciA9IE5VTEw7CisJCWVsc2UKKwkJCXZhcmluZm9baV0udmFyZGVm ZXhwciA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJkZWZleHByKSk7CisKIAkJ LyogZG8gbm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzICovCiAJCWlmICghUFFn ZXRpc251bGwocmVzLCBpLCBpX3ZhcmFjbCkpCiAJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50 cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7CkBAIC01NTQ0LDYgKzU1NTIsNyBAQCBkdW1wVmFyaWFi bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCVBRRXhwQnVm ZmVyIHF1ZXJ5OwogCWNoYXIJICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNoYXIgKnZhcnR5cG5h bWU7CisJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0 aW9uOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIApAQCAtNTU1Niw2ICs1NTY1LDcgQEAgZHVtcFZh cmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1 YWx2YXJuYW1lID0gcGdfc3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2 YXJ0eXBuYW1lID0gdmFyaW5mby0+dmFydHlwbmFtZTsKKwl2YXJkZWZleHByID0gdmFyaW5mby0+ dmFyZGVmZXhwcjsKIAl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVuZGFjdGlv bjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKQEAgLTU1NzUsNiAr NTU4NSwxMCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZv ICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAor CWlmICh2YXJkZWZleHByKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBERUZBVUxUICVz IiwKKwkJCQkJCSAgdmFyZGVmZXhwcik7CisKIAlpZiAoc3RyY21wKHZhcnhhY3RlbmRhY3Rpb24s ICJyIikgPT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgT04gVFJBTlNBQ1RJT04g RU5EIFJFU0VUIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGU4MTViNDExZjBmLi5lZjFiYTA0MjEzMiAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oCkBAIC03MTgsNiArNzE4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxl SW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2YXJ0 eXBuYW1lOworCWNoYXIJICAgKnZhcmRlZmV4cHI7CiAJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlv bjsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUg b2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRl eCA0YTcwZjRjZDY5OS4uZmIyNWY4MGE4NTIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90 LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBA IC00MDcyLDYgKzQwNzIsNDIgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRF IFZBUklBQkxFIHRlc3RfdmFyaWFibGUgREVGQVVMVCcgPT4geworCQlhbGxfcnVucyAgICAgPT4g MSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29y ZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3Qu dmFyaWFibGUzIEFTIGludGVnZXIgREVGQVVMVCAxMDsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJ XFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMyBBUyBpbnRlZ2VyIERFRkFVTFQg MTA7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7 CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJl bWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFi bGUgREVGQVVMVCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnID0+IHsKKwkJYWxsX3J1bnMgICAg ID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0 ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlNCBBUyBpbnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52 YXJpYWJsZTQgQVMgaW50ZWdlciBERUZBVUxUIDEwIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDtc RS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFf cnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJ CWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50 ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJ Y3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rl c3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGQzYjE0NDJlYjJmLi5iNWU1ZDA3M2Y5YyAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMKQEAgLTUzMzEsNyArNTMzMSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVy biwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVz OwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wg dHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1 bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01 MzUyLDYgKzUzNTIsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSkKIAkJCQkJICAiICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBn X2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5cGUgYnRcbiIKIAkJCQkJICAiICAgV0hFUkUg Yy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNv bGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19j YXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAg IiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIK IAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAn ZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCiAJCQkJCSAgIiAgICBXSEVOICdyJyBUSEVOICdP TiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnXG4iCkBAIC01MzYxLDYgKzUzNjIsNyBAQCBsaXN0VmFy aWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0 X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkg IGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwK IAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAogCWlm ICh2ZXJib3NlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5o IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDAwOGYyZWU3YzE3Li4w OWRkNDRhNDRlMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNjgsNiArNjgsOSBA QCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIGFjY2Vz cyBwZXJtaXNzaW9ucyAqLwogCWFjbGl0ZW0JCXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8p OwogCisJLyogbGlzdCBvZiBleHByZXNzaW9uIHRyZWVzIGZvciB2YXJpYWJsZSBkZWZhdWx0IChO VUxMIGlmIG5vbmUpICovCisJcGdfbm9kZV90cmVlIHZhcmRlZmV4cHIgQktJX0RFRkFVTFQoX251 bGxfKTsKKwogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKaW5kZXggMDRkNGE4NTNhM2MuLmQxZDJhYzkxZmI1IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCkBAIC0zNTM1LDYgKzM1MzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFy U3RtdAogCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8K IAlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRv IG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KKwlOb2RlCSAgICpkZWZleHByOwkJLyog ZGVmYXVsdCBleHByZXNzaW9uICovCiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNh Y3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKaW5kZXggYmI2YjkyNTEwODMuLmU3ODAxNjQwZGNmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKQEAgLTg0LDYgKzg0LDcgQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQK IAlFWFBSX0tJTkRfQ1lDTEVfTUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KIAlFWFBSX0tJ TkRfQVNTSUdOX1RBUkdFVCwJLyogUEwvcGdTUUwgYXNzaWdubWVudCB0YXJnZXQgKi8KIAlFWFBS X0tJTkRfTEVUX1RBUkdFVCwJCS8qIExFVCB0YXJnZXQgKi8KKwlFWFBSX0tJTkRfVkFSSUFCTEVf REVGQVVMVCwgLyogZGVmYXVsdCB2YWx1ZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBQYXJz ZUV4cHJLaW5kOwogCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDNkZGJjYzdj YzJhLi45OTlmYzg4ZDFlMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC02MDIw LDIwICs2MDIwLDIwIEBAIENSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQg Uk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg dmFyY2hhciBDT0xMQVRFICJDIjsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2Vz IHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNo YXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwg QyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBT RUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZh cjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0 aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwg ICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBD ICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wg c29tZSBkZXNjcmlwdGlvbgotICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAg ICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBB Y2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNv bWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAg ICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02NTAxLDkgKzY1MDEs OSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIK LSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBO YW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVm YXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRp b25zLgpAQCAtNjY3Niw5ICs2Njc2LDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBt YW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZp ZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERl ZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90 dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY4MTUsOSArNjgxNSw5IEBAIExpc3Qgb2Yg dGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBU eXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0 aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3 aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXgg ZTM5ZTdjNmMyZDYuLmI1YWRiNzk3ODAxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjM4OSwzICsyMzg5LDY2IEBAIFNFTEVDVCB2 YXIxIElTIE5VTEw7CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisg IFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVjdXRlZCc7CisgIFJFVFVSTiAwOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxU IHZhcnRlc3RfZngoKTsKKy0tIHZhcnRlc3RfZnggc2hvdWxkIGJlIHByb3RlY3RlZCBieSBkZXAs IHNob3VsZCBmYWlsCitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKK0VSUk9SOiAgY2Fubm90 IGRyb3AgZnVuY3Rpb24gdmFydGVzdF9meCgpIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIGZ1bmN0aW9u IHZhcnRlc3RfZngoKQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRl cGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CitOT1RJ Q0U6ICB2YXJ0ZXN0X2Z4IGV4ZWN1dGVkCisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykK KworLS0gdGhlIGRlZmV4cHIgc2hvdWxkIGJlIGV2YWx1YXRlZCBvbmx5IG9uY2UKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVT OworLS0gaW4gdGhpcyBjYXNlLCB0aGUgZGVmZXhwciBzaG91bGQgbm90IGJlIGV2YWx1YXRlZAor TEVUIHZhcjEgPSAxMDA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEg cm93KQorCitESVNDQVJEIFZBUklBQkxFUzsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIEVYQ0VQVElPTiAn dmFydGVzdF9meCBpcyBleGVjdXRpbmcnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CistLSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZh cjE7CitFUlJPUjogIHZhcnRlc3RfZnggaXMgZXhlY3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwg ZnVuY3Rpb24gdmFydGVzdF9meCgpIGxpbmUgMyBhdCBSQUlTRQorLS0gYWdhaW4KK1NFTEVDVCB2 YXIxOworRVJST1I6ICB2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FM IGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBsaW5lIDMgYXQgUkFJU0UKKy0tIGJ1dCB3ZSBjYW4gd3Jp dGUKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAK KygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4 KCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggOTYw ZmUwNzkzM2EuLjVjMDY0YTI5MmRmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xNjM4LDMgKzE2MzgsNTEgQEAgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFy MSBJUyBOVUxMOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5P VElDRSAndmFydGVzdF9meCBleGVjdXRlZCc7CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VB R0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVz dF9meCgpOworCistLSB2YXJ0ZXN0X2Z4IHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91 bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIHZhcjE7CisKKy0tIHRoZSBkZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBv bmNlCitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIGluIHRoaXMgY2Fz ZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOwor U0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBF WENFUFRJT04gJ3ZhcnRlc3RfZnggaXMgZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFz aAorU0VMRUNUIHZhcjE7CisKKy0tIGFnYWluCitTRUxFQ1QgdmFyMTsKKworLS0gYnV0IHdlIGNh biB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7Ci0tIAoyLjQ4LjEKCg== --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20250212-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr209 RnJvbSAxMGVjNzFkOTliZGY1MjYwODk0NWQyOWU5NDk4ZTcyMGM1MjY2ZmViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCAwOWI2MzVjMjM0YS4uNjg3ZDFjODczM2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05ODcx LDcgKzk4NzEsOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNv dW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPgogICAg ICAgPHBhcmE+CiAgICAgICAgQWN0aW9uIHBlcmZvcm1lZCBhdCBlbmQgb2YgdHJhbnNhY3Rpb246 Ci0gICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBubyBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xp dGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUuCisgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4g PSBubyBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUsCisg ICAgICAgPGxpdGVyYWw+cjwvbGl0ZXJhbD4gPSByZXNldCB0aGUgdmFyaWFibGUgdG8gaXRzIGRl ZmF1bHQgdmFsdWUuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGE4OGUwMTc1YmVhLi5jODlhNjVmYjU1 ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNyw3ICsyNyw3IEBA IFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4K IENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+ IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMTcsNiArMTE3LDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCAwM2UwYjY5MDBjYS4uMDM1ZTVkYTA4ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTgzLDYgKzgzLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUsIGlmIGFueS4gIFdlIG5l ZWQgdGhpcyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVlaW5nIG1lbW9yeSBmb3IKQEAgLTExMCw2 ICsxMTIsMTIgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9 IE5VTEw7CiAvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEgc2ludmFsIG1lc3NhZ2Ug Ki8KIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUs IHdoZW4gc29tZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBv ciBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNf c2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRo ZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92ZWQgaW1t ZWRpYXRlbHkuICBJZgogICogcG9zc2libGUsIHdlIGRvIHRoYXQgYXQgdGhlIGVuZCBvZiB0aGUg dHJhbnNhY3Rpb24uICBCdXQgd2UgY2Fubm90IGRvIHRoYXQKQEAgLTM4NSw2ICszOTMsMzIgQEAg cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIAl9CiB9CiAKKy8q CisgKiByZW1vdmUgZW50cmllcyBtYXJrZWQgYXMgInJlc2V0X2F0X2VveCIKKyAqLworc3RhdGlj IHZvaWQKK3JlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCh2b2lkKQor eworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlpZiAoIXNl c3Npb252YXJzKQorCQlyZXR1cm47CisKKwkvKiBsZWF2ZSBxdWNrbHksIHdoZW4gdGhlcmUgYXJl IG5vdCB0aGF0IHZhcmlhYmxlcyAqLworCWlmICghaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhf cmVzZXRfYXRfZW94KQorCQlyZXR1cm47CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Np b252YXJzKTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0 YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoc3Zhci0+cmVzZXRfYXRfZW94KQorCQkJaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCX0K KworCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNlOworfQor CiAvKgogICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZh cmlhYmxlcywKICAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9y eS4KQEAgLTM5Miw2ICs0MjYsOCBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhi b29sIGF0RU9YKQogdm9pZAogQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29t bWl0KQogeworCXJlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCgpOwor CiAJaWYgKGlzQ29tbWl0KQogCXsKIAkJaWYgKHhhY3RfZHJvcF9pdGVtcykKQEAgLTUwMyw2ICs1 MzksMjEgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlk KQogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNr X2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJLyoKKwkgKiBXZSBk b24ndCBuZWVkIHRvIGV4cGxpY2l0bHkgcmVzZXQgdmFyaWFibGVzIG1hcmtlZCBPTiBDT01NSVQg RFJPUC4gSXQKKwkgKiBjYW4gYmUgZG9uZSBieSBzaW52YWwgbWVzc2FnZSBwcm9jZXNzaW5nLiBC dXQgdGhpcyBwcm9jZXNzaW5nIGNhbiBiZQorCSAqIHBvc3Rwb25lZCBkdWUgYWJvcnRlZCB0cmFu c2FjdGlvbi4gT24gc2Vjb25kIGhhbmQgdGhlcmUgaXMgbm90IGEKKwkgKiByZWFzb24sIHdoeSBk b24ndCBkbyBpdCBhdCB0cmFuc2FjdGlvbiBlbmQgaW1tZWRpYXRlbHkuCisJICovCisJaWYgKHZh cmZvcm0tPnZhcnhhY3RlbmRhY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9SRVNFVCB8fAorCQl2 YXJmb3JtLT52YXJ4YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJ CXN2YXItPnJlc2V0X2F0X2VveCA9IHRydWU7CisJCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRo X3Jlc2V0X2F0X2VveCA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+cmVzZXRfYXRfZW94ID0g ZmFsc2U7CisKIAlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAogCXN2 YXItPmlzbnVsbCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAyYWYwMzdkMjY2OS4uNTJlMTFjOGQ3 NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQpAQCAtNTI5Myw2ICs1MjkzLDcgQEAgQ3JlYXRlU2Vzc2lvblZhclN0 bXQ6CiAgKiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCiAgKi8KIFhhY3RFbmRBY3Rpb25P cHRpb246ICBPTiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9 CisJCQl8IE9OIFRSQU5TQUNUSU9OIEVORF9QIFJFU0VUCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RF TkRfUkVTRVQ7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVO RF9OT09QOyB9CiAJCTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggOGY4ZjExODVmMTYuLmRkOTkxYjkwNTM1 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKQEAgLTU0MzgsNiArNTQzOCw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZl ICpmb3V0KQogCWludAkJCWlfdmFybmFtZXNwYWNlOwogCWludAkJCWlfdmFydHlwZTsKIAlpbnQJ CQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFy b3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJaW50CQkJaV92YXJhY2w7CkBAIC01NDUz LDYgKzU0NTQsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkvKiBnZXQgdGhlIHZh cmlhYmxlcyBpbiBjdXJyZW50IGRhdGFiYXNlICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks CiAJCQkJCSAgIlNFTEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkg ICIgICAgICAgdi52YXJ4YWN0ZW5kYWN0aW9uLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJuYW1l c3BhY2UsIHYudmFydHlwZSxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cuZm9ybWF0X3R5 cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIKIAkJCQkJICAiICAg ICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbiAiCkBAIC01NDc1 LDYgKzU0NzcsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3Zhcm5hbWVzcGFj ZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKIAlpX3ZhcnR5cGUgPSBQUWZudW1i ZXIocmVzLCAidmFydHlwZSIpOwogCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0 eXBuYW1lIik7CisJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3Rl bmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRp b24iKTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKQEAgLTU0 OTgsNiArNTUwMSw5IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCiAJCXZhcmluZm9b aV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBlKSk7CiAJCXZh cmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0 eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyeGFjdGVuZGFjdGlvbiA9CisJCQlwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyeGFjdGVuZGFjdGlvbikpOworCiAJCXZhcmluZm9baV0u dmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikp OwogCiAJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfdmFyYWNsKSk7CkBAIC01NTM4LDYgKzU1NDQsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCVBRRXhwQnVmZmVyIHF1ZXJ5Owog CWNoYXIJICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CisJY29uc3Qg Y2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAKIAkvKiBza2lw IGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KQEAgLTU1NDksNiArNTU1Niw3IEBAIGR1bXBWYXJpYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAKIAlxdWFsdmFy bmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CiAJdmFydHlw bmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8t PnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9u OwogCiAJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLApAQCAt NTU2Nyw2ICs1NTc1LDkgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlh YmxlSW5mbyAqdmFyaW5mbykKIAkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsK IAl9CiAKKwlpZiAoc3RyY21wKHZhcnhhY3RlbmRhY3Rpb24sICJyIikgPT0gMCkKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICIgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIik7CisKIAlhcHBl bmRQUUV4cEJ1ZmZlcihxdWVyeSwgIjtcbiIpOwogCiAJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCAxMjUzODRjZjNmMC4u ZTgxNWI0MTFmMGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzE4LDYgKzcxOCw3IEBAIHR5cGVkZWYgc3Ry dWN0IF9WYXJpYWJsZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJ Y2hhcgkgICAqdmFydHlwbmFtZTsKKwljaGFyCSAgICp2YXJ4YWN0ZW5kYWN0aW9uOwogCU9pZAkJ CXZhcmNvbGxhdGlvbjsKIAljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwg b3IgZW1wdHkgc3RyaW5nICovCiB9IFZhcmlhYmxlSW5mbzsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKaW5kZXggYjg0ZGNmMGNhYjkuLjRhNzBmNGNkNjk5IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVt cC5wbApAQCAtNDA1NCw2ICs0MDU0LDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJ J0NSRUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCcg PT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4u IGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NS RUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUyIEFTIGludGVnZXIgT04gVFJBTlNBQ1RJ T04gRU5EIFJFU0VUOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBk dW1wX3Rlc3QudmFyaWFibGUyIEFTIGludGVnZXIgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUO1xF L3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9y dW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJ ZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQg ICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQlj cmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVz dC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggYTNmY2EzNGM3ZDcuLmQzYjE0NDJlYjJmIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YwpAQCAtNTM1NCw2ICs1MzU0LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJu LCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52 YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9u XG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKKwkJCQkJ ICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKIAkJCQkJ ICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5k ZXggMGZjNjcyYmMyYmEuLjAwOGYyZWU3YzE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5o CkBAIC03NSw2ICs3NSw3IEBAIHR5cGVkZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24KIHsK IAlWQVJJQUJMRV9YQUNURU5EX05PT1AgPSAnbicsCS8qIE5PT1AgKi8KIAlWQVJJQUJMRV9YQUNU RU5EX0RST1AgPSAnZCcsCS8qIE9OIENPTU1JVCBEUk9QICovCisJVkFSSUFCTEVfWEFDVEVORF9S RVNFVCA9ICdyJywJLyogT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUICovCiB9CQkJVmFyaWFibGVY YWN0RW5kQWN0aW9uOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5kZXggYTYwOTc5N2RjNWQuLmU5 YTI1NGJjZDEyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lv bi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24t dmFyaWFibGUub3V0CkBAIC04NiwxMSArODYsMTIgQEAgbXl2YXIKIAogc3RlcCBzcjE6IFJPTExC QUNLOwogCi1zdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNyZWF0 ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0YXJ0aW5nIHBl cm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0IGxldDQgZHJv cDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCiBzdGVwIGNyZWF0ZTM6IENS RUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsKIHN0ZXAgbGV0MzogTEVUIG15dmFyMyA9ICd0 ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOwogc3RlcCBvX2NfZDogQ1JFQVRFIFRFTVAgVkFSSUFCTEUg bXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsKK3N0ZXAgb19lb3hfcjogQ1JFQVRF IFZBUklBQkxFIG15dmFyX29fZW94X3IgQVMgdGV4dCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7 IExFVCBteXZhcl9vX2VveF9yID0gJ3Rlc3QnOwogc3RlcCBjcmVhdGU0OiBDUkVBVEUgVkFSSUFC TEUgbXl2YXI0IEFTIHRleHQ7CiBzdGVwIGxldDQ6IExFVCBteXZhcjQgPSAndGVzdCc7CiBzdGVw IGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKQEAgLTEwMyw2ICsxMDQsNyBAQCB0CiAKIHN0 ZXAgZGlzY2FyZDogRElTQ0FSRCBWQVJJQUJMRVM7CiBzdGVwIHNjMzogQ09NTUlUOworc3RlcCBj bGVhbjogRFJPUCBWQVJJQUJMRSBteXZhcl9vX2VveF9yOwogc3RlcCBzdGF0ZTogU0VMRUNUIHZh cm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKIHZhcm5hbWUKIC0tLS0tLS0KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9p c29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCmluZGV4IDQ1ZTY1ZDQwODVkLi41 ZDA4OWM4YTRlZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24t dmFyaWFibGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJp YWJsZS5zcGVjCkBAIC0yNSwxMiArMjUsMTQgQEAgc2Vzc2lvbiBzMwogc3RlcCBzMwkJCXsgQkVH SU47IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CiBzdGVwIG9fY19kCQl7 IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7 IH0KK3N0ZXAgb19lb3hfcgl7IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9yIEFTIHRleHQg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0ZXN0JzsgfQog c3RlcCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxl dDQJCXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxF IG15dmFyNDsgfQogc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19m b3JlaWduX3RhYmxlOyB9CiBzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxFUzsgfQogc3Rl cCBzYzMJCXsgQ09NTUlUOyB9CitzdGVwIGNsZWFuCQl7IERST1AgVkFSSUFCTEUgbXl2YXJfb19l b3hfcjsgfQogc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOyB9 CiAKIHNlc3Npb24gczQKQEAgLTQ4LDQgKzUwLDQgQEAgcGVybXV0YXRpb24gbGV0IHZhbCBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29u Y3VycmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcg dmFsIHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMg aGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBvX2Nf ZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJt dXRhdGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0IGxldDQgZHJvcDQg ZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDI2MjE1OTFhMTZhLi5lMzll N2M2YzJkNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKQEAgLTIzNTUsMyArMjM1NSwzNyBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOwogICAgICAwCiAoMSByb3cpCiAKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7CitCRUdJTjsKKyAgTEVUIHZhcjEg PSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK K0NPTU1JVDsKKy0tIHNob3VsZCBiZSBOVUxMOworU0VMRUNUIHZhcjEgSVMgTlVMTDsKKyA/Y29s dW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdmFyMSA9IDEw MDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworUk9M TEJBQ0s7CistLSBzaG91bGQgYmUgTlVMTAorU0VMRUNUIHZhcjEgSVMgTlVMTDsKKyA/Y29sdW1u PyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA2MTAyNjFhNjE3Zi4u OTYwZmUwNzkzM2EgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKQEAgLTE2MTgsMyArMTYxOCwyMyBAQCBDT01NSVQ7CiBTRUxFQ1QgY291bnQoKikgRlJPTSBw Z192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOwogLS0gc2hvdWxkIGJlIHplcm8KIFNF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7CisKK0JFR0lOOworICBM RVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBO VUxMOworU0VMRUNUIHZhcjEgSVMgTlVMTDsKKworQkVHSU47CisgIExFVCB2YXIxID0gMTAwOwor ICBTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworCistLSBzaG91bGQgYmUgTlVMTAorU0VMRUNUIHZh cjEgSVMgTlVMTDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0012-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20250212-0012-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr2810 RnJvbSBhZjZiY2ZmOWYyNjgzZTJiNjRlOTk1YjNjZWY5Y2RmNWM4MmQ5ODBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMDoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMjJdIGltcGxlbWVudGF0aW9uIG9mIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcwoKVGhl IHRlbXBvcmFyeSB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQgaW5zaWRlIHRlbXAgc2NoZW1hIGFuZCB0 aGV5IGFyZSBkcm9wcGVkIGJ5IGRyb3BwaW5nCnRoaXMgc2NoZW1hLiBGb3IgY29uc2lzdGVuY3kg d2l0aCB0ZW1wIHRhYmxlcywgdGhlIENSRUFURSBURU1QIFZBUklBQkxFIGNvbW1hbmQgc3VwcG9y dHMKT04gQ09NTUlUIERST1AgY2xhdXNlLiBUaGUgdGVtcG9yYXJ5IHZhcmlhYmxlcyB3aXRoIHRo aXMgY2xhdXNlIGFyZSBjb2xsZWN0ZWQgaW4geGFjdF9kcm9wX2l0ZW1zCmxpc3QuIFRoaXMgbGlz dCBzaG91bGQgYmUgY2FyZWZ1bGx5IG1haW50YWluZWQgYW5kIGNhbiBjb250YWluIG9ubHkgdmFs aWQgZW50cmllcyAobm90CnlldCBkcm9wcGVkKS4gRnJvbSB0aGlzIHJlYXNvbnMgbm93IHRoZSBz dWJjb21taXQgYW5kIHN1YmFib3J0aW5nIGhhdmUgdG8gYmUgaGFuZGxlZC4KLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgMjcgKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgIDIyICstCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNSArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgNiArLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgIDMgKy0KIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICstLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTIwICsrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA2NiArKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyMyBm aWxlcyBjaGFuZ2VkLCA1NDQgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA0ZjUwMjI3NGJmYS4uMDliNjM1YzIzNGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05 ODY1LDYgKzk4NjUsMTYgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFyeGFjdGVuZGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBY3Rpb24gcGVyZm9y bWVkIGF0IGVuZCBvZiB0cmFuc2FjdGlvbjoKKyAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9 IG5vIGFjdGlvbiwgPGxpdGVyYWw+ZDwvbGl0ZXJhbD4gPSBkcm9wIHRoZSB2YXJpYWJsZS4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sCmluZGV4IDc0ODIxOWIzODA0Li4yMTM0OGM5ZmE4OSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAt NTQxMiw5ICs1NDEyLDkgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKICAgICA8Y29tbWFuZD5M RVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IHRyYW5zYWN0 aW9uYWw6CiAgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZh cmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKICAgICBiZSB1bmRvbmUgaWYgdGhlIHRyYW5z YWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGluCi0gICAgcHJvY2Vk dXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBhcmUgcGVyc2lz dGVudCwgYnV0Ci0gICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNo YXJlZCAobGlrZSB0aGUgY29udGVudCBvZgotICAgIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgIHBy b2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJl IHBlcnNpc3RlbnQKKyAgICBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRo ZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZQorICAgIGNvbnRlbnQgb2YgdGVtcG9y YXJ5IHRhYmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKaW5kZXggY2Q5ZmY2Mzk3NWEuLmE4OGUwMTc1YmVhIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDcgKzI2LDggQEAgUG9zdGdyZVNRTCBk b2N1bWVudGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgVkFS SUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBU RU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBPTiBDT01N SVQgRFJPUCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpA QCAtMTA0LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQg RFJPUDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSA8bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcyB0 aGUgYmVoYXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlIGF0IHRy YW5zYWN0aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNzaW9uIHZh cmlhYmxlIGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25seSBhbGxv d2VkCisgICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3Jl ZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZDMzMWFiOTBkNzguLjYx Njg0MTVmOGMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0zNiw2ICszNiw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19lbnVtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgiCkBAIC0y MzE2LDYgKzIzMTcsOSBAQCBDb21taXRUcmFuc2FjdGlvbih2b2lkKQogCSAqLwogCXNtZ3JEb1Bl bmRpbmdTeW5jcyh0cnVlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCisJLyogcmVtb3ZlIHZhbHVl cyBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5ICovCisJQXRQcmVFT1hh Y3RfU2Vzc2lvblZhcmlhYmxlcyh0cnVlKTsKKwogCS8qIGNsb3NlIGxhcmdlIG9iamVjdHMgYmVm b3JlIGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJnZU9iamVjdCh0cnVlKTsK IApAQCAtMjkxMiw2ICsyOTE2LDcgQEAgQWJvcnRUcmFuc2FjdGlvbih2b2lkKQogCUF0QWJvcnRf UG9ydGFscygpOwogCXNtZ3JEb1BlbmRpbmdTeW5jcyhmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2Vy KTsKIAlBdEVPWGFjdF9MYXJnZU9iamVjdChmYWxzZSk7CisJQXRQcmVFT1hhY3RfU2Vzc2lvblZh cmlhYmxlcyhmYWxzZSk7CiAJQXRBYm9ydF9Ob3RpZnkoKTsKIAlBdEVPWGFjdF9SZWxhdGlvbk1h cChmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAlBdEFib3J0X1R3b3BoYXNlKCk7CkBAIC01 MTc3LDYgKzUxODIsOCBAQCBDb21taXRTdWJUcmFuc2FjdGlvbih2b2lkKQogCUF0RU9TdWJYYWN0 X1NQSSh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9vbl9jb21taXRf YWN0aW9ucyh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkgIHMtPnBhcmVudC0+ c3ViVHJhbnNhY3Rpb25JZCk7CisJQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyh0cnVlLCBz LT5zdWJUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklk KTsKIAlBdEVPU3ViWGFjdF9OYW1lc3BhY2UodHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJ CQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9GaWxlcyh0 cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLApAQCAtNTM0Miw2ICs1MzQ5LDggQEAgQWJvcnRTdWJU cmFuc2FjdGlvbih2b2lkKQogCQlBdEVPU3ViWGFjdF9TUEkoZmFsc2UsIHMtPnN1YlRyYW5zYWN0 aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9vbl9jb21taXRfYWN0aW9ucyhmYWxzZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKIAkJCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwkJ QXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwK KwkJCQkJCQkJCSBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9O YW1lc3BhY2UoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJICBzLT5wYXJlbnQt PnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9GaWxlcyhmYWxzZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBkNjcyZDJhOWNiMy4u MDBjOTBlYTZmZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTM2LDcgKzM2LDgg QEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5h bWUsCiAJCQkJCQkJCQkgaW50MzIgdmFyVHlwbW9kLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwK IAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAotCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0 cyk7CisJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIFZhcmlhYmxlWGFj dEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIAogCiAvKgpAQCAtNDksNyArNTAsOCBAQCBj cmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlpbnQzMiB2YXJUeXBtb2Qs CiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCi0JCQkJYm9vbCBpZl9u b3RfZXhpc3RzKQorCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlWYXJpYWJsZVhhY3RFbmRB Y3Rpb24gdmFyWGFjdEVuZEFjdGlvbikKIHsKIAlBY2wJCSAgICp2YXJhY2w7CiAJTmFtZURhdGEJ dmFybmFtZTsKQEAgLTExMCw2ICsxMTIsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAq dmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMy R2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERh dHVtKHZhclhhY3RFbmRBY3Rpb24pOwogCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2wo T0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwpAQCAt MTgzLDYgKzE4NiwxMyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0 ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmplY3RBZGRy ZXNzIHZhcmlhYmxlOwogCisJLyogY2hlY2sgY29uc2lzdGVuY3kgb2YgYXJndW1lbnRzICovCisJ aWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QCisJCSYmIHN0 bXQtPnZhcmlhYmxlLT5yZWxwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5J VElPTiksCisJCQkJIGVycm1zZygiT04gQ09NTUlUIERST1AgY2FuIG9ubHkgYmUgdXNlZCBvbiB0 ZW1wb3JhcnkgdmFyaWFibGVzIikpKTsKKwogCW5hbWVzcGFjZWlkID0KIAkJUmFuZ2VWYXJHZXRB bmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOwog CkBAIC0yMjIsMTEgKzIzMiwxNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHR5cG1vZCwKIAkJCQkJCQkg ICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCi0JCQkJCQkJICAgc3RtdC0+aWZfbm90 X2V4aXN0cyk7CisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10 LT5YYWN0RW5kQWN0aW9uKTsKIAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCiAJCSBz dG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0SWQpOwogCisJLyogd2Ugd2Fu dCBTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hh bmdlcy4gKi8KKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJU2Vzc2lvblZhcmlhYmxl Q3JlYXRlUG9zdHByb2Nlc3ModmFyaWFibGUub2JqZWN0SWQsIHN0bXQtPlhhY3RFbmRBY3Rpb24p OworCiAJcmV0dXJuIHZhcmlhYmxlOwogfQogCkBAIC0yMzksNiArMjU1LDcgQEAgRHJvcFZhcmlh YmxlQnlJZChPaWQgdmFyaWQpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CisJ Y2hhcgkJWGFjdEVuZEFjdGlvbjsKIAogCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlv bklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKIApAQCAtMjQ3LDYgKzI2NCw4IEBAIERyb3BWYXJpYWJs ZUJ5SWQoT2lkIHZhcmlkKQogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAKKwlY YWN0RW5kQWN0aW9uID0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKSktPnZhcnhh Y3RlbmRhY3Rpb247CisKIAlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwog CiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CkBAIC0yNTQsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxl QnlJZChPaWQgdmFyaWQpCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAog CS8qIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAq LwotCVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CisJU2Vzc2lvblZhcmlh YmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkLCBYYWN0RW5kQWN0aW9uKTsKIH0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA0YTI5ZWQ2ZTBjMy4uMDNlMGI2OTAwY2Eg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE2LDYgKzE2LDgg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFs b2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZnVuY2Fw aS5oIgpAQCAtMzEsNiArMzMsMTkgQEAKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAjaW5j bHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAordHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlWEFjdERy b3BJdGVtCit7CisJT2lkCQkJdmFyaWQ7CQkJLyogdmFyaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAq LworCisJLyoKKwkgKiBjcmVhdGluZ19zdWJpZCBpcyB0aGUgSUQgb2YgdGhlIGNyZWF0aW5nIHN1 YnhhY3QuIElmIHRoZSBhY3Rpb24gd2FzCisJICogdW5yZWdpc3RlcmVkIGR1cmluZyB0aGUgY3Vy cmVudCB0cmFuc2FjdGlvbiwgZGVsZXRpbmdfc3ViaWQgaXMgdGhlIElECisJICogb2YgdGhlIGRl bGV0aW5nIHN1YnhhY3QsIG90aGVyd2lzZSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZC4KKwkgKi8K KwlTdWJUcmFuc2FjdGlvbklkIGNyZWF0aW5nX3N1YmlkOworCVN1YlRyYW5zYWN0aW9uSWQgZGVs ZXRpbmdfc3ViaWQ7Cit9IFNWYXJpYWJsZVhBY3REcm9wSXRlbTsKKwogLyoKICAqIFRoZSB2YWx1 ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZh dGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1l bW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KQEAgLTk2LDEzICsxMTEsMjEgQEAgc3RhdGlj IE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CiBzdGF0aWMgYm9v bCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CiAKIC8qCi0gKiBUaGUgY29udGVudCBvZiBkcm9w cGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiAgV2UgZG8K LSAqIHRoYXQgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gdGhhdCByZWFkcyBvciB3cml0ZXMgYSBz ZXNzaW9uIHZhcmlhYmxlLgotICogInZhbGlkYXRlZF9seGlkIiBzdG9yZXMgdGhlIHRyYW5zYWN0 aW9uIHRoYXQgcGVyZm9ybWVkIHNhaWQgdmFsaWRhdGlvbiwgc28KLSAqIHRoYXQgd2UgY2FuIGF2 b2lkIHJlcGVhdGluZyB0aGUgZWZmb3J0LgorICogVGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNz aW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBpbW1lZGlhdGVseS4gIElmCisgKiBwb3NzaWJs ZSwgd2UgZG8gdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4gIEJ1dCB3ZSBjYW5u b3QgZG8gdGhhdAorICogaWYgdGhlIHRyYW5zYWN0aW9uIGFib3J0ZWQsIGJlY2F1c2Ugd2UgbG9z dCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSBjYXRhbG9nLgorICogSW4gdGhhdCBjYXNlLCB3ZSBjbGVh biB1cCBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhCisgKiBz ZXNzaW9uIHZhcmlhYmxlLiAgInZhbGlkYXRlZF9seGlkIiBzdG9yZXMgdGhlIHRyYW5zYWN0aW9u IHRoYXQgcGVyZm9ybWVkCisgKiBzYWlkIHZhbGlkYXRpb24sIHNvIHRoYXQgd2UgY2FuIGF2b2lk IHJlcGVhdGluZyB0aGUgZWZmb3J0LgogICovCiBzdGF0aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZh bGlkYXRlZF9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorLyogbGlzdCBob2xk cyBmaWVsZHMgb2YgU1ZhcmlhYmxlWEFjdERyb3BJdGVtIHR5cGUgKi8KK3N0YXRpYyBMaXN0ICp4 YWN0X2Ryb3BfaXRlbXMgPSBOSUw7CisKK3N0YXRpYyB2b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFy aWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CitzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Np b25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CisKIC8qCiAgKiBDYWxsYmFjayBmdW5j dGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlkYXRpb24uCiAgKi8KQEAgLTEzOSwxNiAr MTYyLDQ1IEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hl aWQsIHVpbnQzMiBoYXNodmFsdWUpCiAJfQogfQogCisvKgorICogRG8gdGhlIG5lY2Vzc2FyeSB3 b3JrIHRvIHNldHVwIGxvY2FsIG1lbW9yeSBtYW5hZ2VtZW50IG9mIGEgbmV3CisgKiB2YXJpYWJs ZS4KKyAqCisgKiBDYWxsZXIgc2hvdWxkIGFscmVhZHkgaGF2ZSBjcmVhdGVkIHRoZSBuZWNlc3Nh cnkgZW50cnkgaW4gY2F0YWxvZworICogYW5kIG1hZGUgdGhlbSB2aXNpYmxlLgorICovCit2b2lk CitTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVu ZEFjdGlvbikKK3sKKwkvKgorCSAqIEZvciB0ZW1wb3JhcnkgdmFyaWFibGVzLCB3ZSBuZWVkIHRv IGNyZWF0ZSBhIG5ldyBlbmQgb2YgeGFjdCBhY3Rpb24gdG8KKwkgKiBlbnN1cmUgZGVsZXRpb24g ZnJvbSBjYXRhbG9nLgorCSAqLworCWlmIChYYWN0RW5kQWN0aW9uID09IFZBUklBQkxFX1hBQ1RF TkRfRFJPUCkKKwl7CisJCUFzc2VydChpc1RlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHZhcmlkKSkpOworCisJCXJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFj dF9kcm9wKHZhcmlkKTsKKwl9Cit9CisKIC8qCiAgKiBIYW5kbGUgdGhlIGxvY2FsIG1lbW9yeSBj bGVhbnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KICAqCiAgKiBDYWxsZXIgc2hvdWxk IHRha2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmlyc3QuCiAgKi8K IHZvaWQKLVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCitTZXNzaW9u VmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rpb24pCiB7 CiAJQXNzZXJ0KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQpKTsK IAorCWlmIChYYWN0RW5kQWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJCUFz c2VydChpc1RlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlk KSkpOworCisJCXVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AodmFyaWQpOwor CX0KKwogCWlmIChzZXNzaW9udmFycykKIAl7CiAJCWJvb2wJCWZvdW5kOwpAQCAtMTcwLDYgKzIy Miw1NyBAQCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKQogCX0KIH0K IAorLyoKKyAqIFJlZ2lzdHJhdGlvbiBvZiBhY3Rpb25zIHRvIGJlIGV4ZWN1dGVkIG9uIHNlc3Np b24gdmFyaWFibGVzIGF0IHRyYW5zYWN0aW9uCisgKiBlbmQgdGltZS4gV2Ugd2FudCB0byBkcm9w IHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcyB3aXRoIGNsYXVzZSBPTiBDT01NSVQKKyAqIERS T1AuCisgKi8KKworLyoKKyAqIFJlZ2lzdGVyIGEgc2Vzc2lvbiB2YXJpYWJsZSB4YWN0IGFjdGlv bi4KKyAqLworc3RhdGljIHZvaWQKK3JlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9w KE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWk7CisJTWVtb3J5 Q29udGV4dCBvbGRjeHQ7CisKKwlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQ2FjaGVN ZW1vcnlDb250ZXh0KTsKKworCXhhY3RfYWkgPSAoU1ZhcmlhYmxlWEFjdERyb3BJdGVtICopCisJ CXBhbGxvYyhzaXplb2YoU1ZhcmlhYmxlWEFjdERyb3BJdGVtKSk7CisKKwl4YWN0X2FpLT52YXJp ZCA9IHZhcmlkOworCisJeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJh bnNhY3Rpb25JZCgpOworCXhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID0gSW52YWxpZFN1YlRyYW5z YWN0aW9uSWQ7CisKKwl4YWN0X2Ryb3BfaXRlbXMgPSBsY29ucyh4YWN0X2FpLCB4YWN0X2Ryb3Bf aXRlbXMpOworCisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7Cit9CisKKy8qCisgKiBV bnJlZ2lzdGVyIGFuIGlkIG9mIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGRyb3AgbGlz dC4gSW4gdGhpcworICogbW9tZW50LCB0aGUgYWN0aW9uIGlzIGp1c3QgbWFya2VkIGFzIGRlbGV0 ZWQgYnkgc2V0dGluZyBkZWxldGluZ19zdWJpZC4gVGhlCisgKiBjYWxsaW5nIGV2ZW4gbWlnaHQg YmUgcm9sbGJhY2tlZCwgaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQgbm90IGxvc2UgdGhpcworICog YWN0aW9uLgorICovCitzdGF0aWMgdm9pZAordW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hh Y3RfZHJvcChPaWQgdmFyaWQpCit7CisJTGlzdENlbGwgICAqbDsKKworCWZvcmVhY2gobCwgeGFj dF9kcm9wX2l0ZW1zKQorCXsKKwkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJ CShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGwpOworCisJCWlmICh4YWN0X2FpLT52 YXJpZCA9PSB2YXJpZCkKKwkJCXhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID0gR2V0Q3VycmVudFN1 YlRyYW5zYWN0aW9uSWQoKTsKKwl9Cit9CisKIC8qCiAgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwg ZnJlZSBtZW1vcnkKICAqLwpAQCAtMjIyLDkgKzMyNSwxMSBAQCBpc19zZXNzaW9uX3ZhcmlhYmxl X3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogLyoKICAqIENoZWNrIGFsbCBwb3RlbnRpYWxseSBpbnZh bGlkIHNlc3Npb24gdmFyaWFibGUgZGF0YSBpbiBsb2NhbCBtZW1vcnkgYW5kIGZyZWUKICAqIHRo ZSBtZW1vcnkgZm9yIGFsbCBpbnZhbGlkIG9uZXMuICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi ZWZvcmUgYW55IHJlYWQgb3IKLSAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIEZyZWVp bmcgb2YgYSB2YXJpYWJsZSdzIG1lbW9yeSBpcyBwb3N0cG9uZWQgaWYKLSAqIHRoZSB2YXJpYWJs ZSBoYXMgYmVlbiBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCBzaW5jZSB0aGF0 Ci0gKiBvcGVyYXRpb24gY291bGQgc3RpbGwgYmUgcm9sbGVkIGJhY2suCisgKiB3cml0ZSBvZiBh IHNlc3Npb24gdmFyaWFibGUgb3Igd2hlbiB0aGUgdHJhbnNhY3Rpb24gZW5kcy4gIEF0IHRoZSBl bmQgb2YgYQorICogdHJhbnNhY3Rpb24gKGF0RU9YIGlzIHRydWUpIHdlIGNhbiBkaXNjYXJkIGFs bCBpbnZhbGlkIHZhcmlhYmxlcy4gIEluc2lkZSBhCisgKiB0cmFuc2FjdGlvbiAoYXRFT1ggaXMg ZmFsc2UpIHdlIHBvc3Rwb25lIGZyZWVpbmcgYSB2YXJpYWJsZSdzIG1lbW9yeSBpZiB0aGUKKyAq IHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNp bmNlIHRoYXQgb3BlcmF0aW9uCisgKiBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KICAqCiAg KiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHJlY2VpdmUgYSBjYWNoZSBpbnZhbGlkYXRpb24gbWVz c2FnZSB3aGlsZQogICogcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKSBpcyBleGVj dXRpbmcsIHNvIHdlIGNhbm5vdCBndWFyYW50ZWUgdGhhdApAQCAtMjMyLDcgKzMzNyw3IEBAIGlz X3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCiAgKiBkb25lLiAgSG93ZXZl ciwgd2UgY2FuIGd1YXJhbnRlZSB0aGF0IGFsbCBlbnRyaWVzIGdldCBjaGVja2VkIG9uY2UuCiAg Ki8KIHN0YXRpYyB2b2lkCi1yZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh2b2lkKQor cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIHsKIAlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOwogCVNWYXJpYWJsZQlzdmFyOwpAQCAtMjU5LDcgKzM2NCw3IEBAIHJl bW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCiAJewogCQlpZiAoIXN2YXItPmlz X3ZhbGlkKQogCQl7Ci0JCQlpZiAoc3Zhci0+ZHJvcF9seGlkID09IE15UHJvYy0+dnhpZC5seGlk KQorCQkJaWYgKCFhdEVPWCAmJiBzdmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQp CiAJCQl7CiAJCQkJLyogdHJ5IGFnYWluIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uICovCiAJCQkJ bmVlZHNfdmFsaWRhdGlvbiA9IHRydWU7CkBAIC0yODAsNiArMzg1LDk1IEBAIHJlbW92ZV9pbnZh bGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCiAJfQogfQogCisvKgorICAqIFBlcmZvcm0gT04g Q09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKKyAgKiBhbmQgcmVt b3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KKyAqLwordm9pZAorQXRQcmVF T1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQoreworCWlmIChpc0NvbW1pdCkK Kwl7CisJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCisJCXsKKwkJCUxpc3RDZWxsICAgKmw7CisKKwkJ CWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCQkJeworCQkJCVNWYXJpYWJsZVhBY3REcm9w SXRlbSAqeGFjdF9haSA9CisJCQkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGwp OworCisJCQkJLyogaXRlcmF0ZSBvbmx5IG92ZXIgZW50cmllcyB0aGF0IGFyZSBzdGlsbCBwZW5k aW5nICovCisJCQkJaWYgKHhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID09IEludmFsaWRTdWJUcmFu c2FjdGlvbklkKQorCQkJCXsKKwkJCQkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisKKwkJCQkJb2Jq ZWN0LmNsYXNzSWQgPSBWYXJpYWJsZVJlbGF0aW9uSWQ7CisJCQkJCW9iamVjdC5vYmplY3RJZCA9 IHhhY3RfYWktPnZhcmlkOworCQkJCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCisJCQkJCS8q CisJCQkJCSAqIFNpbmNlIHRoaXMgaXMgYW4gYXV0b21hdGljIGRyb3AsIHJhdGhlciB0aGFuIG9u ZQorCQkJCQkgKiBkaXJlY3RseSBpbml0aWF0ZWQgYnkgdGhlIHVzZXIsIHdlIHBhc3MgdGhlCisJ CQkJCSAqIFBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgZmxhZy4KKwkJCQkJICovCisJCQkJCWVs b2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSAob2lkOiV1KSB3aWxsIGJlIGRlbGV0ZWQgKGZv cmNlZCBieSBPTiBDT01NSVQgRFJPUCBjbGF1c2UpIiwKKwkJCQkJCSB4YWN0X2FpLT52YXJpZCk7 CisKKwkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJ CVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9R VUlFVExZKTsKKwkJCQl9CisJCQl9CisJCX0KKworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3Zh cmlhYmxlcyh0cnVlKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9w X2l0ZW1zLiBBbGwgcmVsYXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKKwkgKiBub3csIG9yIGxv c3QgaW5zaWRlIGFib3J0ZWQgdHJhbnNhY3Rpb24uCisJICovCisJbGlzdF9mcmVlX2RlZXAoeGFj dF9kcm9wX2l0ZW1zKTsKKwl4YWN0X2Ryb3BfaXRlbXMgPSBOVUxMOworfQorCisvKgorICogUG9z dC1zdWJjb21taXQgb3IgcG9zdC1zdWJhYm9ydCBjbGVhbnVwIG9mIHhhY3QgZHJvcCBsaXN0Lgor ICoKKyAqIER1cmluZyBzdWJhYm9ydCwgd2UgY2FuIGltbWVkaWF0ZWx5IHJlbW92ZSBlbnRyaWVz IGNyZWF0ZWQgZHVyaW5nIHRoaXMKKyAqIHN1YnRyYW5zYWN0aW9uLiBEdXJpbmcgc3ViY29tbWl0 LCBqdXN0IHRyYW5zZmVyIGVudHJpZXMgbWFya2VkIGR1cmluZworICogdGhpcyBzdWJ0cmFuc2Fj dGlvbiBhcyBiZWluZyB0aGUgcGFyZW50J3MgcmVzcG9uc2liaWxpdHkuCisgKi8KK3ZvaWQKK0F0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJCQkJCQkgU3ViVHJh bnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIHBhcmVudFN1Ymlk KQoreworCUxpc3RDZWxsICAgKmN1cl9pdGVtOworCisJZm9yZWFjaChjdXJfaXRlbSwgeGFjdF9k cm9wX2l0ZW1zKQorCXsKKwkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShT VmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGN1cl9pdGVtKTsKKworCQlpZiAoIWlzQ29t bWl0ICYmIHhhY3RfYWktPmNyZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCXsKKwkJCS8qIGN1 cl9pdGVtIG11c3QgYmUgcmVtb3ZlZCAqLworCQkJeGFjdF9kcm9wX2l0ZW1zID0gZm9yZWFjaF9k ZWxldGVfY3VycmVudCh4YWN0X2Ryb3BfaXRlbXMsIGN1cl9pdGVtKTsKKwkJCXBmcmVlKHhhY3Rf YWkpOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSBwcmVzZXJ2ZWQg Ki8KKwkJCWlmICh4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3Rf YWktPmNyZWF0aW5nX3N1YmlkID0gcGFyZW50U3ViaWQ7CisJCQlpZiAoeGFjdF9haS0+ZGVsZXRp bmdfc3ViaWQgPT0gbXlTdWJpZCkKKwkJCQl4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9IGlzQ29t bWl0ID8gcGFyZW50U3ViaWQgOiBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJfQorCX0KK30K KwogLyoKICAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAg LTQzOCw3ICs2MzIsNyBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJCXZhbGlk YXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQogCXsKIAkJLyogZnJlZSB0aGUgbWVtb3J5 IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLwotCQlyZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxz ZSk7CiAKIAkJLyogZG9uJ3QgcmVwZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5z YWN0aW9uICovCiAJCXZhbGlkYXRlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CkBAIC01MzQs NyArNzI4LDcgQEAgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJv b2wgaXNOdWxsKQogCQl2YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKIAl7CiAJ CS8qIGZyZWUgdGhlIG1lbW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KLQkJ cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKwkJcmVtb3ZlX2ludmFsaWRfc2Vz c2lvbl92YXJpYWJsZXMoZmFsc2UpOwogCiAJCS8qIGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3Rl cCBpbiB0aGUgc2FtZSB0cmFuc2FjdGlvbiAqLwogCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+ dnhpZC5seGlkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCmluZGV4IDZmMDMwMTU1NWUwLi42YmVmOWEyNjEyYSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ZpZXcuYwpAQCAtNDg0LDcgKzQ4NCw3IEBAIERlZmluZVZpZXcoVmlld1N0bXQg KnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCSAqLwogCXZpZXcgPSBjb3B5T2JqZWN0 KHN0bXQtPnZpZXcpOwkvKiBkb24ndCBjb3JydXB0IG9yaWdpbmFsIGNvbW1hbmQgKi8KIAlpZiAo dmlldy0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5UCi0JCSYmIGlz UXVlcnlVc2luZ1RlbXBSZWxhdGlvbih2aWV3UGFyc2UpKQorCQkmJiBpc1F1ZXJ5VXNpbmdUZW1w T2JqZWN0KHZpZXdQYXJzZSkpCiAJewogCQl2aWV3LT5yZWxwZXJzaXN0ZW5jZSA9IFJFTFBFUlNJ U1RFTkNFX1RFTVA7CiAJCWVyZXBvcnQoTk9USUNFLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggNzI1 ZjY3OGUyZmEuLmMwYzNhYmQ3YTBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTM0OTEsMTAgKzM0 OTEsMTAgQEAgdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVUYWJsZUFzU3RtdCAqc3RtdCkKIAkJICogY3JlYXRpb24gcXVlcnkuIEl0IHdvdWxkIGJl IGhhcmQgdG8gcmVmcmVzaCBkYXRhIG9yIGluY3JlbWVudGFsbHkKIAkJICogbWFpbnRhaW4gaXQg aWYgYSBzb3VyY2UgZGlzYXBwZWFyZWQuCiAJCSAqLwotCQlpZiAoaXNRdWVyeVVzaW5nVGVtcFJl bGF0aW9uKHF1ZXJ5KSkKKwkJaWYgKGlzUXVlcnlVc2luZ1RlbXBPYmplY3QocXVlcnkpKQogCQkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAotCQkJCQkgZXJybXNnKCJtYXRlcmlhbGl6ZWQgdmlld3MgbXVzdCBub3QgdXNlIHRlbXBv cmFyeSB0YWJsZXMgb3Igdmlld3MiKSkpOworCQkJCQkgZXJybXNnKCJtYXRlcmlhbGl6ZWQgdmll d3MgbXVzdCBub3QgdXNlIHRlbXBvcmFyeSB0YWJsZXMsIHZpZXdzIG9yIHNlc3Npb24gdmFyaWFi bGVzIikpKTsKIAogCQkvKgogCQkgKiBBIG1hdGVyaWFsaXplZCB2aWV3IHdvdWxkIGVpdGhlciBu ZWVkIHRvIHNhdmUgcGFyYW1ldGVycyBmb3IgdXNlIGluCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBiNWJkMTA5 MzU3Mi4uMmFmMDM3ZDI2NjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNDczLDYgKzQ3Myw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8aXZhbD4JIE9wdFRlbXAKICV0eXBlIDxpdmFsPgkg T3B0Tm9Mb2cKICV0eXBlIDxvbmNvbW1pdD4gT25Db21taXRPcHRpb24KKyV0eXBlIDxpdmFsPgkg WGFjdEVuZEFjdGlvbk9wdGlvbgogCiAldHlwZSA8aXZhbD4JZm9yX2xvY2tpbmdfc3RyZW5ndGgK ICV0eXBlIDxub2RlPglmb3JfbG9ja2luZ19pdGVtCkBAIC01MjYzLDI2ICs1MjY0LDM5IEBAIGNy ZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0 ZVNlc3Npb25WYXJTdG10OgotCQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxF IHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgWGFjdEVu ZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtl Tm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDM7Ci0JCQkJ CW4tPnR5cGVOYW1lID0gJDU7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAq KSAkNjsKKwkJCQkJJDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZhcmlhYmxlID0g JDQ7CisJCQkJCW4tPnR5cGVOYW1lID0gJDY7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0 ZUNsYXVzZSAqKSAkNzsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQ4OwogCQkJCQluLT5pZl9u b3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENS RUFURSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVu YW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9Q IE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2Ns YXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3Rt dCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJbi0+dmFyaWFibGUg PSAkNjsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkODsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xs YXRlQ2xhdXNlICopICQ5OworCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+ dmFyaWFibGUgPSAkNzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKKwkJCQkJbi0+Y29sbENsYXVz ZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsK IAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CiAJCTsKIAorLyoKKyAqIFRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgZHJv cHBlZCBvbiBzdWNjZXNzZnVsCisgKiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCisgKi8K K1hhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVf WEFDVEVORF9EUk9QOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hB Q1RFTkRfTk9PUDsgfQorCQk7CisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxU RVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9yZWxhdGlvbi5jCmluZGV4IDA0ZWNmNjRiMWZjLi5iZWM2OTQ3ZWEyZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMgdm9pZCBleHBh bmRUdXBsZURlc2MoVHVwbGVEZXNjIHR1cGRlc2MsIEFsaWFzICplcmVmLAogc3RhdGljIGludAlz cGVjaWFsQXR0TnVtKGNvbnN0IGNoYXIgKmF0dG5hbWUpOwogc3RhdGljIGJvb2wgcnRlX3Zpc2li bGVfaWZfbGF0ZXJhbChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSk7CiBz dGF0aWMgYm9vbCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBS YW5nZVRibEVudHJ5ICpydGUpOwotc3RhdGljIGJvb2wgaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9u X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRpYyBib29sIGlzUXVlcnlV c2luZ1RlbXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCiAKIC8q CkBAIC0zOTI3LDEzICszOTI3LDEzIEBAIHJ0ZV92aXNpYmxlX2lmX3F1YWxpZmllZChQYXJzZVN0 YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSkKICAqIHRoZSBxdWVyeSBpcyBhIHRlbXBv cmFyeSByZWxhdGlvbiAodGFibGUsIHZpZXcsIG9yIG1hdGVyaWFsaXplZCB2aWV3KS4KICAqLwog Ym9vbAotaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uKFF1ZXJ5ICpxdWVyeSkKK2lzUXVlcnlVc2lu Z1RlbXBPYmplY3QoUXVlcnkgKnF1ZXJ5KQogewotCXJldHVybiBpc1F1ZXJ5VXNpbmdUZW1wUmVs YXRpb25fd2Fsa2VyKChOb2RlICopIHF1ZXJ5LCBOVUxMKTsKKwlyZXR1cm4gaXNRdWVyeVVzaW5n VGVtcE9iamVjdF93YWxrZXIoKE5vZGUgKikgcXVlcnksIE5VTEwpOwogfQogCiBzdGF0aWMgYm9v bAotaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250 ZXh0KQoraXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29u dGV4dCkKIHsKIAlpZiAobm9kZSA9PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CkBAIC0zOTU5LDEz ICszOTU5LDIzIEBAIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwg dm9pZCAqY29udGV4dCkKIAkJfQogCiAJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwK LQkJCQkJCQkJIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIsCisJCQkJCQkJCSBpc1F1 ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtlciwKIAkJCQkJCQkJIGNvbnRleHQsCiAJCQkJCQkJCSBR VFdfSUdOT1JFX0pPSU5BTElBU0VTKTsKIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkK Kwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2lu ZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKGlzQW55VGVtcE5hbWVzcGFjZShnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UocC0+cGFyYW12YXJpZCkpKQorCQkJCXJldHVybiB0 cnVlOworCQl9CisJfQogCiAJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKLQkJ CQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyLAorCQkJCQkJCQkgIGlzUXVl cnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyLAogCQkJCQkJCQkgIGNvbnRleHQpOwogfQogCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CmluZGV4IDU3NmFjOTg2ZWY5Li5hM2ZjYTM0YzdkNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUzMzEsNyArNTMz MSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQog CVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQg bXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNb XSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJ c3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3Zl cnNpb24gPCAxODAwMDApCiAJewpAQCAtNTM1MSwxMiArNTM1MSwxNiBAQCBsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9n LmZvcm1hdF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixcbiIKIAkJCQkJ ICAiICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBw Z19jYXRhbG9nLnBnX3R5cGUgYnRcbiIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNv bGxhdGlvbiBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50 eXBjb2xsYXRpb24pIGFzIFwiJXNcIixcbiIKLQkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91 c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCJcbiIsCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5w Z19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIENBU0Ug di52YXJ4YWN0ZW5kYWN0aW9uXG4iCisJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01N SVQgRFJPUCdcbiIKKwkJCQkJICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRf bm9vcCgiU2NoZW1hIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCiAJCQkJCSAgZ2V0 dGV4dF9ub29wKCJUeXBlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKLQkJ CQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIikpOworCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIi KSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAog CWlmICh2ZXJib3NlKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu aW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCBkOWJiOTZhZDMxOC4u ODZjMmQ1YzNhNjYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwor KysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTM2MTIsNyArMzYxMiw3IEBA IG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRBQkxFIC0t LSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8K IAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0 ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVN UE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZJRVciKTsK KwkJQ09NUExFVEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLCAiVklFVyIp OwogCS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUgb3IgU0VRVUVOQ0Ug Ki8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VEIikpCiAJCUNPTVBM RVRFX1dJVEgoIlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zOTYzLDcgKzM5NjMsOCBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAl9CiAvKiBDUkVBVEUgVkFSSUFCTEUg LS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAq LwogCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLwotCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAorCQkJIFRh aWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKIAkJQ09N UExFVEVfV0lUSCgiQVMiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRj aEFueSwgIkFTIikpCiAJCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBB UyB0eXBlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5o IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDViNDViZTVhZmFmLi4w ZmM2NzJiYzJiYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYsNiArNTYsOSBA QCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIHR5cG1v ZCBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVMVCgt MSk7CiAKKwkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCisJY2hhcgkJdmFyeGFjdGVu ZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKKwogCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLwogCU9p ZAkJCXZhcmNvbGxhdGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRp b24pOwogCkBAIC02OCw2ICs3MSwxMiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFi bGVSZWxhdGlvbklkKQogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwogCit0eXBlZGVm IGVudW0gVmFyaWFibGVYYWN0RW5kQWN0aW9uCit7CisJVkFSSUFCTEVfWEFDVEVORF9OT09QID0g J24nLAkvKiBOT09QICovCisJVkFSSUFCTEVfWEFDVEVORF9EUk9QID0gJ2QnLAkvKiBPTiBDT01N SVQgRFJPUCAqLworfQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbjsKKwogLyogLS0tLS0tLS0tLS0t LS0tLQogICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRvIGEg dHVwbGUgd2l0aAogICoJCXRoZSBmb3JtYXQgb2YgdGhlIHBnX3ZhcmlhYmxlIHJlbGF0aW9uLgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3Jj L2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGQzY2M3OWI1NjA4Li40 NDkyYmVlNmQ2OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAt MjEsNyArMjEsMTEgQEAKICNpbmNsdWRlICJ0Y29wL2NtZHRhZy5oIgogI2luY2x1ZGUgInV0aWxz L3F1ZXJ5ZW52aXJvbm1lbnQuaCIKIAotZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBv c3Rwcm9jZXNzKE9pZCB2YXJpZCk7CitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVDcmVhdGVQ b3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBT ZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rp b24pOworZXh0ZXJuIHZvaWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29t bWl0KTsKK2V4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0Nv bW1pdCwgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCQkJCSBTdWJUcmFuc2FjdGlv bklkIHBhcmVudFN1YmlkKTsKIAogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2 YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmlu ZGV4IGQ1ZjAwY2YzNzAyLi4wNGQ0YTg1M2EzYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAt MzUzNSw2ICszNTM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlU eXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0 ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5n IGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJh bnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKIAogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oCmluZGV4IDk4YjkyODVhNTRiLi4zNGQwNTFlYzk4YSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmgKQEAgLTUyLDcgKzUyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQWxpYXMKIAlMaXN0CSAg ICpjb2xuYW1lczsJCS8qIG9wdGlvbmFsIGxpc3Qgb2YgY29sdW1uIGFsaWFzZXMgKi8KIH0gQWxp YXM7CiAKLS8qIFdoYXQgdG8gZG8gYXQgY29tbWl0IHRpbWUgZm9yIHRlbXBvcmFyeSByZWxhdGlv bnMgKi8KKy8qCisgKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0ZW1wb3JhcnkgcmVs YXRpb25zIG9yIHNlc3Npb24gdmFyaWFibGVzLgorICovCiB0eXBlZGVmIGVudW0gT25Db21taXRB Y3Rpb24KIHsKIAlPTkNPTU1JVF9OT09QLAkJCQkvKiBObyBPTiBDT01NSVQgY2xhdXNlIChkbyBu b3RoaW5nKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAppbmRleCAzZWNlNWNkNGVl Zi4uMzUyOWJmYTViMzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxh dGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oCkBAIC0xMjcs NiArMTI3LDYgQEAgZXh0ZXJuIGludAlhdHRuYW1lQXR0TnVtKFJlbGF0aW9uIHJkLCBjb25zdCBj aGFyICphdHRuYW1lLCBib29sIHN5c0NvbE9LKTsKIGV4dGVybiBjb25zdCBOYW1lRGF0YSAqYXR0 bnVtQXR0TmFtZShSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBPaWQJYXR0bnVtVHlw ZUlkKFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwogZXh0ZXJuIE9pZAlhdHRudW1Db2xsYXRpb25J ZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKLWV4dGVybiBib29sIGlzUXVlcnlVc2luZ1RlbXBS ZWxhdGlvbihRdWVyeSAqcXVlcnkpOworZXh0ZXJuIGJvb2wgaXNRdWVyeVVzaW5nVGVtcE9iamVj dChRdWVyeSAqcXVlcnkpOwogCiAjZW5kaWYJCQkJCQkJLyogUEFSU0VfUkVMQVRJT05fSCAqLwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUu b3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0Cmlu ZGV4IDBhNTU3OWRjN2NlLi5hNjA5Nzk3ZGM1ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtODYsMTAgKzg2LDExIEBAIG15dmFy CiAKIHN0ZXAgc3IxOiBST0xMQkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMg bGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRl CitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNyZWF0ZTQgbGV0 NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKIHN0ZXAgY3JlYXRlMzogQ1JF QVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rl c3QnOwogc3RlcCBzMzogQkVHSU47CitzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBWQVJJQUJMRSBt eXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOwogc3RlcCBjcmVhdGU0OiBDUkVBVEUg VkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CiBzdGVwIGxldDQ6IExFVCBteXZhcjQgPSAndGVzdCc7 CiBzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCmluZGV4IGM4NjRmZWU0MDA2Li40NWU2NWQ0 MDg1ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFi bGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5z cGVjCkBAIC0yNCw2ICsyNCw3IEBAIHN0ZXAgY3JlYXRlCQl7IENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0OyB9CiBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJTjsgfQogc3RlcCBsZXQz CQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgb19jX2QJCXsgQ1JFQVRFIFRFTVAgVkFS SUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsgfQogc3RlcCBjcmVhdGU0 CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxldDQJCXsgTEVUIG15 dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxFIG15dmFyNDsgfQpA QCAtNDcsNCArNDgsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcg dmFsCiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKIHBl cm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCiAjIHRlc3Qg Zm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVn aXN0ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBk cm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBz MyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRl CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCAwYzQ4ZmRmYWY2MS4uM2RkYmNjN2Nj MmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNjAyMCwyMCArNjAyMCwyMCBA QCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFU RSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVn ZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g fCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJM SUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOwogXGRW KyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5 cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8ICAgICAgICAg ICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24g ICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJh Y3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3Jp cHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK KyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAg ICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0K KyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgor ICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3Zh cmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBW QVJJQUJMRSB2YXIxOwpAQCAtNjUwMSw5ICs2NTAxLDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAoMCBy b3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCi0tLS0tLS0t LSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlv biB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCBy b3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4K QEAgLTY2NzYsOSArNjY3Niw5IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBk b3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5h bWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZl bnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQg ZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02ODE1LDkgKzY4 MTUsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJl Z3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBU eXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0t LS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2Ug YW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGNlZjBkNWFiM2NhLi4yNjIxNTkx YTE2YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKQEAgLTIyMzUsMyArMjIzNSwxMjMgQEAgU0VMRUNUIHZhcjE7CiAKIERFQUxMT0NBVEUg cDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZW1wb3JhcnkgdmFyaWFibGVzCitDUkVBVEUg VEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHRoaXMgdmlldyBzaG91bGQgYmUgdGVtcG9y YXJ5CitDUkVBVEUgVklFVyB2YXJfdGVzdF92aWV3IEFTIFNFTEVDVCB2YXIxOworTk9USUNFOiAg dmlldyAidmFyX3Rlc3RfdmlldyIgd2lsbCBiZSBhIHRlbXBvcmFyeSB2aWV3CitEUk9QIFZBUklB QkxFIHZhcjEgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdmlldyB2YXJfdGVz dF92aWV3CitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09N TUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgIDEwMAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNU IGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBB UyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0g J3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNv dW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBW QVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7Cisg IERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQor ICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFT IGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFSSUFCTEUg dmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisg ICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1J VCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklB QkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgIDEwMAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNU IGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl cy5zcWwKaW5kZXggOWYyMTJlMjk4MzUuLjYxMDI2MWE2MTdmIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMzEyLDYgKzEzMTIsNyBAQCBCRUdJTjsK ICAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICBTRUxFQ1QgdmFyMjsKIFJPTExCQUNLOworCiAtLSBz aG91bGQgYmUgb2sKIFNFTEVDVCB2YXIxOwogCkBAIC0xNTUyLDMgKzE1NTMsNjggQEAgU0VMRUNU IHZhcjE7CiAKIERFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBv cmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhp cyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMg U0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAg Q1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2 YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7 CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJp YWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9O IENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFD SzsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxl IFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1Q IFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsK KyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VM RUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09N TUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xM QkFDSzsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBU RU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEw MDsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRP IHMxOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVD VCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBz aG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOTVjN2E4OTJmOTcuLmEyMTQ3ZGYyOGIz IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjgxOCw2ICsyODE4LDcgQEAgU3VwcG9y dFJlcXVlc3RXRnVuY01vbm90b25pYwogU1ZhcmlhYmxlCiBTVmFyaWFibGVEYXRhCiBTVmFyaWFi bGVTdGF0ZQorU1ZhcmlhYmxlWEFjdERyb3BJdGVtCiBTeW4KIFN5bmNPcHMKIFN5bmNSZXBDb25m aWdEYXRhCi0tIAoyLjQ4LjEKCg== --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0011-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20250212-0011-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr2i11 RnJvbSBlMTAyZTM3YzQ0YmQyY2ZjOWQzN2U0MThiM2E1OGE3NWFmZTRlMGVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIyXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjExLi40NWQ3MmIxZDUyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wcmVwYXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwK QEAgLTExNiw4ICsxMTYsOCBAQCBQUkVQQVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBBbnkgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiwgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKLSAgICAg IDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgb3Ig PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPgotICAgICAgc3RhdGVtZW50LgorICAgICAgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5W QUxVRVM8L2NvbW1hbmQ+LAorICAgICAgb3IgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBzdGF0ZW1l bnQuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCA0MWQyYjM1YjdjMy4uYjViZDEwOTM1NzIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIxOTgsNyArMTIxOTgsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggNzk2NzM2MjFjOWIuLmM2Mjc2MWU0ZWFl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDBj YzhlYjU2YmI0Li5kOWJiOTZhZDMxOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNDY2NCw5 ICs0NjY0LDkgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxV RVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCi0vKiBMRVQgKi8KKy8qIExFVCwgRVhQTEFJ TiBMRVQsIFBSRVBBUkUgTEVUICovCiAJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBh IGxpc3Qgb2YgdmFyaWFibGVzICovCi0JZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkxFVCIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCS8qIENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdp dGggIj0iICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxFVCIsIE1hdGNoQW55KSkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMTVh ZTZlYWZhZmMuLmNlZjBkNWFiM2NhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtOTQwLDkgKzk0MCw5IEBAIERST1AgVkFSSUFCTEUg dmFyMSwgdmFyMjsKIC0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGlu IENURQogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OwogV0lUSCB4IEFTIChMRVQgdmFyMSA9 IDEwMCkgU0VMRUNUICogRlJPTSB4OwotRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi TEVUIgorRVJST1I6ICBMRVQgbm90IHN1cHBvcnRlZCBpbiBXSVRIIHF1ZXJ5CiBMSU5FIDE6IFdJ VEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKLSAgICAgICAgICAgICAg ICAgICBeCisgICAgICAgICAgICAgXgogLS0gc2hvdWxkIGJlIG9rCiBMRVQgdmFyMSA9IGdlbmVy YXRlX3NlcmllcygxLCAxKTsKIC0tIHNob3VsZCBmYWlsCkBAIC0yMTU2LDUgKzIxNTYsODIgQEAg U0VMRUNUIHZhcjE7CiAgICAxMAogKDEgcm93KQogCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZv cmNlX2dlbmVyaWNfcGxhbjsKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50 KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKK0xFVCB2YXIxID0gTlVMTDsKK0VYUExBSU4g KENPU1RTIE9GRikgRVhFQ1VURSBwMTsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3Rf dGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBP RkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgRVhFQ1VURSBwMTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0 IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdh dGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZh cl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisKKy0t IHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJv dykKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworREVBTExPQ0FURSBwMTsKIERS T1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2Vu ZXJpY19wbGFuOworUFJFUEFSRSBwMShudW1lcmljKSBBUyBMRVQgdmFyMSA9ICQxOworUFJFUEFS RSBwMiBBUyBTRUxFQ1QgdmFyMTsKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7CitFWEVDVVRFIHAy OworICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tCisgMTAzLjE0MTU5MjY1MzU5 CisoMSByb3cpCisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWM7CistLSBzaG91 bGQgYmUgTlVMTAorRVhFQ1VURSBwMjsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQor CitERUFMTE9DQVRFIHAxOworREVBTExPQ0FURSBwMjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgbnVtZXJpY1tdOworUFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQx XSA9ICQyOworTEVUIHZhcjEgPSAne30nOjpudW1lcmljW107CitFWEVDVVRFIHAxKDEsIDEwLjIp OworRVhFQ1VURSBwMSgyLCAxMC4zKTsKK1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgIAorLS0t LS0tLS0tLS0tLQorIHsxMC4yLDEwLjN9CisoMSByb3cpCisKK0RFQUxMT0NBVEUgcDE7CitEUk9Q IFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKaW5kZXggMmE5ZTI0NGE5OTUuLjlmMjEyZTI5ODM1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNDkzLDUgKzE0OTMsNjIgQEAgRVhQTEFJTiAo Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRiwgQlVGRkVSUyBPRkYp IExFVCB2YXIxID0gKFMKIC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFu X2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2 YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2 YXIxID0gTlVMTDsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91 bGQgYmUgTlVMTAorU0VMRUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9G RiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBz aG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFV TFQ7CisKK0RFQUxMT0NBVEUgcDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUg dmFyX3RhYl90ZXN0X3RhYmxlOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitT RVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShu dW1lcmljKSBBUyBMRVQgdmFyMSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKwor RVhFQ1VURSBwMShwaSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4g Y2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIG51bWVyaWM7CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitE RUFMTE9DQVRFIHAxOworREVBTExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitT RVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgbnVtZXJpY1tdOworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZh cjFbJDFdID0gJDI7CisKK0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgx LCAxMC4yKTsKK0VYRUNVVEUgcDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9D QVRFIHAxOworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0010-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20250212-0010-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr2q12 RnJvbSAxYjA0NzI3NmY4M2VjZmIxMjRhYzhlMDc0ZWU0ZTllODE4OTI3YTBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTg6Mjg6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzIyXSBFWFBMQUlOIExFVCBzdXBwb3J0CgpFbmhhbmNpbmcgRXhwbGFpbk9uZVBsYW4gaXMgbmVj ZXNzYXJ5IHRvIGJlIEVYUExBSU4gQU5BTFlaRSBMRVQgZnVsbHkgd29ya2FibGUuCkluIHRoaXMg Y2FzZSB3ZSB3YW50IHRvIGJlIHJlc3VsdCBvZiBxdWVyeSBvciBleHByZXNzaW9uIHdyaXR0ZW4g dG8gdGFyZ2V0IHZhcmlhYmxlLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAg ICAgICAgICAgICAgfCAzMSArKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jICAgICAgICAgICAgICAgIHwgIDUgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQwICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIxICsrKysrKysrKysKIDcgZmlsZXMg Y2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5z Z21sCmluZGV4IDYzNjFhMTRlNjVkLi40MjkyNjE1YjQ0NyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9leHBsYWluLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwK QEAgLTk4LDcgKzk4LDggQEAgRVhQTEFJTiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdIDxyZXAKICAgICA8Y29tbWFuZD5J TlNFUlQ8L2NvbW1hbmQ+LCA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+LAogICAgIDxjb21tYW5k PkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwKICAgICA8Y29tbWFu ZD5DUkVBVEUgVEFCTEUgQVM8L2NvbW1hbmQ+LAotICAgIG9yIDxjb21tYW5kPkVYRUNVVEU8L2Nv bW1hbmQ+IHN0YXRlbWVudAorICAgIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+LAorICAgIG9y IDxjb21tYW5kPkxFVDwvY29tbWFuZD4gc3RhdGVtZW50CiAgICAgd2l0aG91dCBsZXR0aW5nIHRo ZSBjb21tYW5kIGFmZmVjdCB5b3VyIGRhdGEsIHVzZSB0aGlzIGFwcHJvYWNoOgogPHByb2dyYW1s aXN0aW5nPgogQkVHSU47CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWlu LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggYzI0ZTY2ZjgyZTEuLmE2 MDhmODFlZjRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5j bHVkZSAiY29tbWFuZHMvY3JlYXRlYXMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmb3JlaWduL2Zkd2FwaS5oIgogI2luY2x1ZGUgImpp dC9qaXQuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgpAQCAtNTE5LDggKzUyMCw5IEBA IHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25z LAogCX0KIAogCS8qIHJ1biBpdCAoaWYgbmVlZGVkKSBhbmQgcHJvZHVjZSBvdXRwdXQgKi8KLQlF eHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBlcywgcXVlcnlTdHJpbmcsIHBhcmFtcywgcXVlcnlF bnYsCi0JCQkJICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVM TCksCisJRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgcXVlcnktPnJlc3VsdFZhcmlhYmxlLCBl cywgcXVlcnlTdHJpbmcsCisJCQkJICAgcGFyYW1zLCBxdWVyeUVudiwgJnBsYW5kdXJhdGlvbiwK KwkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkgICBlcy0+bWVt b3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwogfQogCkBAIC02MTgsNiArNjIwLDI1IEBAIEV4 cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBs YWluU3RhdGUgKmVzLAogCQllbHNlCiAJCQlFeHBsYWluRHVtbXlHcm91cCgiTm90aWZ5IiwgTlVM TCwgZXMpOwogCX0KKwllbHNlIGlmIChJc0EodXRpbGl0eVN0bXQsIExldFN0bXQpKQorCXsKKwkJ TGV0U3RtdCAgICAqbGV0c3RtdCA9IChMZXRTdG10ICopIHV0aWxpdHlTdG10OworCQlMaXN0CSAg ICpyZXdyaXR0ZW47CisJCVF1ZXJ5CSAgICpxdWVyeTsKKworCQlpZiAoZXMtPmZvcm1hdCA9PSBF WFBMQUlOX0ZPUk1BVF9URVhUKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAi U0VUIFNFU1NJT04gVkFSSUFCTEVcbiIpOworCQllbHNlCisJCQlFeHBsYWluRHVtbXlHcm91cCgi U2V0IFNlc3Npb24gVmFyaWFibGUiLCBOVUxMLCBlcyk7CisKKwkJcmV3cml0dGVuID0gUXVlcnlS ZXdyaXRlKGNhc3ROb2RlKFF1ZXJ5LCBjb3B5T2JqZWN0KGxldHN0bXQtPnF1ZXJ5KSkpOworCisJ CUFzc2VydChsaXN0X2xlbmd0aChyZXdyaXR0ZW4pID09IDEpOworCQlxdWVyeSA9IGxpbml0aWFs X25vZGUoUXVlcnksIHJld3JpdHRlbik7CisJCUV4cGxhaW5PbmVRdWVyeShxdWVyeSwKKwkJCQkJ CUNVUlNPUl9PUFRfUEFSQUxMRUxfT0ssIE5VTEwsIGVzLAorCQkJCQkJcHN0YXRlLCBwYXJhbXMp OworCX0KIAllbHNlCiAJewogCQlpZiAoZXMtPmZvcm1hdCA9PSBFWFBMQUlOX0ZPUk1BVF9URVhU KQpAQCAtNjQxLDggKzY2Miw4IEBAIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10 LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogICogdG8gY2FsbCBpdC4KICAq Lwogdm9pZAotRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xh dXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAotCQkJICAgY29uc3QgY2hhciAqcXVlcnlTdHJp bmcsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBs YW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBPaWQgdGFyZ2V0dmFyLAorCQkJICAgRXhwbGFp blN0YXRlICplcywgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsIFBhcmFtTGlzdEluZm8gcGFyYW1z LAogCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIGNvbnN0IGluc3RyX3RpbWUgKnBs YW5kdXJhdGlvbiwKIAkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwKIAkJCSAgIGNv bnN0IE1lbW9yeUNvbnRleHRDb3VudGVycyAqbWVtX2NvdW50ZXJzKQpAQCAtNjkxLDYgKzcxMiw4 IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAq aW50bywgRXhwbGFpblN0YXRlICplcywKIAkgKi8KIAlpZiAoaW50bykKIAkJZGVzdCA9IENyZWF0 ZUludG9SZWxEZXN0UmVjZWl2ZXIoaW50byk7CisJZWxzZSBpZiAoT2lkSXNWYWxpZCh0YXJnZXR2 YXIpKQorCQlkZXN0ID0gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIodGFyZ2V0dmFyKTsKIAll bHNlIGlmIChlcy0+c2VyaWFsaXplICE9IEVYUExBSU5fU0VSSUFMSVpFX05PTkUpCiAJCWRlc3Qg PSBDcmVhdGVFeHBsYWluU2VyaWFsaXplRGVzdFJlY2VpdmVyKGVzKTsKIAllbHNlCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wcmVwYXJlLmMKaW5kZXggOTAyYjAyMmY5YzcuLjRlYTJiZmVhNGVhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHJlcGFyZS5jCkBAIC02NjQsOCArNjY0LDkgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRl U3RtdCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCVBs YW5uZWRTdG10ICpwc3RtdCA9IGxmaXJzdF9ub2RlKFBsYW5uZWRTdG10LCBwKTsKIAogCQlpZiAo cHN0bXQtPmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKQotCQkJRXhwbGFpbk9uZVBsYW4ocHN0 bXQsIGludG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwK LQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwp LAorCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQsIGVzLCBxdWVyeV9z dHJpbmcsIHBhcmFtTEksCisJCQkJCQkgICBwc3RhdGUtPnBfcXVlcnlFbnYsICZwbGFuZHVyYXRp b24sCisJCQkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAg IGVzLT5tZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5P bmVVdGlsaXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQppbmRleCBhOGMwOThjM2Q1YS4uNDFkMmIzNWI3YzMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpA QCAtMTIxNjcsNyArMTIxNjcsOCBAQCBFeHBsYWluYWJsZVN0bXQ6CiAJCQl8IENyZWF0ZUFzU3Rt dAogCQkJfCBDcmVhdGVNYXRWaWV3U3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKLQkJCXwg RXhlY3V0ZVN0bXQJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLworCQkJfCBFeGVj dXRlU3RtdAorCQkJfCBMZXRTdG10CQkJCQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICov CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9leHBsYWluLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKaW5kZXgg ZWE3NDE5OTUxZjQuLmRlMjFmZTk3ZDAxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5k cy9leHBsYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCkBAIC0xMDMs NyArMTAzLDggQEAgZXh0ZXJuIHZvaWQgRXhwbGFpbk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0 bXQsIEludG9DbGF1c2UgKmludG8sCiAJCQkJCQkJICBFeHBsYWluU3RhdGUgKmVzLCBQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJICBQYXJhbUxpc3RJbmZvIHBhcmFtcyk7CiAKLWV4dGVybiB2 b2lkIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAq aW50bywKK2V4dGVybiB2b2lkIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwKKwkJCQkJCSAgIEludG9DbGF1c2UgKmludG8sIE9pZCB0YXJnZXR2YXIsCiAJCQkJCQkgICBF eHBsYWluU3RhdGUgKmVzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCSAgIFBhcmFt TGlzdEluZm8gcGFyYW1zLCBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwKIAkJCQkJCSAgIGNv bnN0IGluc3RyX3RpbWUgKnBsYW5kdXJhdGlvbiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggZWRhNGViMjA3OTguLjE1YWU2ZWFmYWZj IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dApAQCAtMjExOCwzICsyMTE4LDQzIEBAIE5PVElDRTogIDIwIHQKIFNFVCBzZXNzaW9uX3Zhcmlh Ymxlc192aXNpYmlsaXR5IFRPIERFRkFVTFQ7CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFRB QkxFIHZhcnRlc3RfdGFiMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGJpZ2ludDsKK0NSRUFURSBU QUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQpOworSU5TRVJUIElOVE8gdmFyX3RhYl90ZXN0 X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworVkFDVVVNIEFOQUxZ WkUgdmFyX3RhYl90ZXN0X3RhYmxlOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBMRVQgdmFyMSA9IChT RUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0Cisg ICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENP U1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBM RVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU0VUIFNFU1NJT04gVkFSSUFCTEUKKyBSZXN1 bHQgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEFnZ3Jl Z2F0ZSAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g dmFyX3RhYl90ZXN0X3RhYmxlIChhY3R1YWwgcm93cz0xMCBsb29wcz0xKQorKDUgcm93cykKKwor LS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEg cm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJs ZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAwOGQ2 NjlmODZkMi4uMmE5ZTI0NGE5OTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTE0NzQsMyArMTQ3NCwyNCBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNf dmlzaWJpbGl0eSBUTyBERUZBVUxUOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFRBQkxF IHZhcnRlc3RfdGFiMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgYmlnaW50OworCitDUkVBVEUg VEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKKworSU5TRVJUIElOVE8gdmFyX3RhYl90 ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitWQUNVVU0g QU5BTFlaRSB2YXJfdGFiX3Rlc3RfdGFibGU7CisKK0VYUExBSU4gKENPU1RTIE9GRikgTEVUIHZh cjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hv dWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworCitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBP RkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgTEVUIHZhcjEgPSAoU0VMRUNU IGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJlIDEwCitT RUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJfdGFiX3Rl c3RfdGFibGU7Ci0tIAoyLjQ4LjEKCg== --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0009-possibility-to-control-implicit-visibility-of-sessio.patch" Content-Disposition: attachment; filename="v20250212-0009-possibility-to-control-implicit-visibility-of-sessio.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr2y13 RnJvbSBhYTBmOWUzMjVkYmRhOTY2NjFlNjhjZDg3NDRhNmM4Yzc5NGRlMGQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTMgRGVjIDIwMjQgMDY6Mjg6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzIyXSBwb3NzaWJpbGl0eSB0byBjb250cm9sIGltcGxpY2l0IHZpc2liaWxpdHkgb2Ygc2Vzc2lv bgogdmFyaWFibGVzLgoKRmVuY2VkIHZhcmlhYmxlIGlzIHZpc2libGUgZXZlcnl3aGVyZS4gVW5m ZW5jZWQgdmFyaWFibGUgY2FuCmJlIHZpc2libGUgZXZlcnl3aGVyZSAod2hlbiBzZXNzaW9uX3Zh cmlhYmxlc192aXNpYmlsaXR5IGlzIGV2ZXJ5d2hlcmUpLApvciBjYW4gYmUgdmlzaWJsZSBub3do ZXJlIChzZXNzaW9uX3ZhcmlhYmxlc192aXNpYmlsaXR5IGlzIG5vd2hlcmUpCm9yIGNhbiBiZSB2 aXNpYmxlIGluc2lkZSBzdG9yZWQgcHJvY2VkdXJlcyAoc2Vzc2lvbl92YXJpYWJsZXNfdmlzaWJp bGl0eSBpcyBQTCkuCi0tLQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAg ICAgICAgIHwgNTMgKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAg ICAgICAgICAgICAgfCAzMCArKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5j ICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YyAgICAgICAgICAgfCAxOCArKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwu Y29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oICAgICAg ICAgICAgICAgfCAxNCArKysKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAg ICAgICAgICB8ICAzICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9jb21wLmMgICAgICAgICAgICAg ICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAg ICB8IDkwICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCAgICB8IDczICsrKysrKysrKysrKysrKwogMTEgZmlsZXMgY2hhbmdlZCwg Mjg0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDE1MDAyMjZl OWI1Li4yNTdhYTkwMzYyOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTEwNjIsNiArMTEwNjIsNTkgQEAgU0VM RUNUIGEsIFZBUklBQkxFKGIpIEZST00gZm9vOwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFi bGVzLXZpc2liaWxpdHkiIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdmlzaWJpbGl0eSI+ CisgICAgICA8dGVybT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc192aXNpYmlsaXR5PC92YXJu YW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxw cmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3Zpc2liaWxpdHk8L3Zhcm5hbWU+IGNv bmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAg ICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIG9w dGlvbiBzcGVjaWZ5LCB3aGVyZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHZpc2libGUgaW1w bGljaXRseQorICAgICAgIHdpdGhvdXQgdXNpbmcgdmFyaWFibGUgZmVuY2luZy4gVGhlIGRlZmF1 bHQgaXMgPGxpdGVyYWw+ZXZlcnl3aGVyZTwvbGl0ZXJhbD4uCisgICAgICAgVGhlIGFsbG93ZWQg dmFsdWVzIG9mIDx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3Zpc2liaWxpdHk8L3Zhcm5hbWU+ IGFyZQorICAgICAgIDxsaXRlcmFsPmV2ZXJ5d2hlcmU8L2xpdGVyYWw+IChhbGxvd3MgdXNpbmcg c2Vzc2lvbiB2YXJpYWJsZXMgd2l0aG91dAorICAgICAgIHZhcmlhYmxlcydzIGZlbmNlcyBhbHdh eXMpLCA8bGl0ZXJhbD5ub3doZXJlPC9saXRlcmFsPiAocmVxdWlyZXMgdmFyaWFibGUncworICAg ICAgIGZlbmNpbmcgYWx3YXlzKSBvciA8bGl0ZXJhbD5wbDwvbGl0ZXJhbD4gKHRoZSB2YXJpYWJs ZSBmZW5jaW5nIGlzIG9wdGlvbmFsCisgICAgICAgaW4gc3RvcmVkIHByb2NlZHVyZXMpLgorPHBy b2dyYW1saXN0aW5nPgorU0VUIHNlc3Npb25fdmFyaWFibGVzX3Zpc2liaWxpdHkgVE8gJ3BsJzsK K0NSRUFURSBWQVJJQUJMRSBhIGludDsKKworTEVUIGEgPSAxMDsKK0RPICQkCitCRUdJTgorICBS QUlTRSBOT1RJQ0UgJ2EgPSAlJywgYTsKK0VORDsKKyQkOworCitTRUxFQ1QgYTsKK1NFTEVDVCBW QVJJQUJMRShzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKzxzY3JlZW4+CitOT1RJQ0U6ICBhID0g MTAKKworRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBh OworICAgICAgICAgICAgICAgXgorCitTRUxFQ1QgdmFyaWFibGUoYSk7CisgYQorLS0tLQorIDEw CisoMSByb3cpCis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAg ICAgICAgV2hlbiB5b3UgYWZyYWlkIGFib3V0IHVud2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFy aWFibGVzLCBzZXQKKyAgICAgICAgdGhpcyBmZWF0dXJlIHRvIDxsaXRlcmFsPm5vd2hlcmU8L2xp dGVyYWw+IG9yIG1pbmltYWx5IHRvCisgICAgICAgIDxsaXRlcmFsPnBsPC9saXRlcmFsPi4KKyAg ICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4 cmVmbGFiZWw9InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFy bmFtZT5zdGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFu PC90eXBlPikKICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vj b25kYXJ5PnN0YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRl eCA0ZThlN2M2YTQyYS4uNzQ4MjE5YjM4MDQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0NjksNyArNTQ2OSw4IEBAIFNF TEVDVCBWQVJJQUJMRShjdXJyZW50X3VzZXJfaWQpOwogICAgV2hlbiB0aGVyZSBpcyBhIHJpc2sg b2YgcG9zc2libGUgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlkZW50aWZpZXJzCiAgICBh bmQgY29sdW1uIG5hbWVzLCB0aGVuIHVzaW5nIHZhcmlhYmxlIGZlbmNlIHN5bnRheCBjYW4gYmUg cmVjb21tZW5kZWQuCiAgICBVc2FnZSBzZXNzaW9uIHZhcmlhYmxlIHdpdGhvdXQgdmFyaWFibGUg ZmVuY2UgY2FuIGJlIGRldGVjdGVkIGJ5Ci0gICB3YXJuaW5nIDx4cmVmIGxpbmtlbmQ9Imd1Yy1z ZXNzaW9uLXZhcmlhYmxlcy11c2UtZmVuY2Utd2FybmluZy1ndWFyZCIvPi4KKyAgIHdhcm5pbmcg PHhyZWYgbGlua2VuZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1 YXJkIi8+CisgICBvciBjb250cm9sbGVkIGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1zZXNzaW9uLXZh cmlhYmxlcy12aXNpYmlsaXR5Ii8+LgogICA8L3BhcmE+CiAgIDwvc2VjdDE+CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCmluZGV4IGRkMDNiMWYxNGRiLi5iYzc1MWI0YTQ0MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCkBAIC00Nyw3ICs0Nyw3IEBACiBib29sCQlUcmFuc2Zvcm1fbnVsbF9lcXVh bHMgPSBmYWxzZTsKIGJvb2wJCXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0g ZmFsc2U7CiBib29sCQlzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCA9 IGZhbHNlOwotCitpbnQJCQlzZXNzaW9uX3ZhcmlhYmxlc192aXNpYmlsaXR5ID0gU0VTU0lPTlZB UklBQkxFX1ZJU0lCSUxJVFlfRVZFUllXSEVSRTsKIAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4 cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgTm9kZSAq dHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZik7CkBA IC0xMTUsNiArMTE1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5j dChQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTm9kZSAqbWFrZVBhcmFtU2Vzc2lvblZhcmlh YmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCSAgT2lkIHZhcmlkLCBPaWQgdHlwaWQs IGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKIAkJCQkJCQkJCSAgY2hhciAqYXR0cm5hbWUsIGJv b2wgZmVuY2VkLCBpbnQgbG9jYXRpb24pOworc3RhdGljIGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNf YXJlX3Zpc2libGUoUGFyc2VTdGF0ZSAqcHN0YXRlKTsKIAogCiAvKgpAQCAtOTQ5LDggKzk1MCwx NCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNy ZWYpCiAJICogbmVlZCB0byBpZGVudGlmeSBzZXNzaW9uIHZhcmlhYmxlcyBpbiBzdWNoIGEgY29u dGV4dCwgYnV0IGlkZW50aWZ5aW5nCiAJICogdGhlbSBhbGxvd3MgdXMgdG8gcmFpc2UgbWVhbmlu Z2Z1bCBlcnJvciBtZXNzYWdlcyBsaWtlICJ5b3UgY2Fubm90IHVzZQogCSAqIHNlc3Npb24gdmFy aWFibGVzIGhlcmUiLgorCSAqCisJICogVGhlIHZpc2liaWxpdHkgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgY2FuIGJlIGNvbnRyb2xsZWQgYnkgR1VHCisJICogc2Vzc2lvbl92YXJpYWJsZXNfdmlzaWJp bGl0eS4gRG9uJ3QgdHJ5IHRvIGRldGVjdCBzZXNzaW9uIHZhcmlhYmxlcworCSAqIHdoZW4gYXJl IGluIGNvbnRleHQsIHdoZXJlIGFyZSBub3QgdmlzaWJsZSBhbmQgdmFyaWFibGUgZmVuY2UgYXJl CisJICogcmVxdWlyZWQuCiAJICovCi0JaWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJaWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgJiYKKwkJc2Vzc2lvbl92YXJpYWJsZXNf YXJlX3Zpc2libGUocHN0YXRlKSkKIAl7CiAJCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKIAkJ Y2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOwpAQCAtMTIyNSw2ICsxMjMyLDI1IEBAIHRyYW5zZm9y bVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBWYXJpYWJsZUZlbmNlICp2ZikKIAly ZXR1cm4gcmVzdWx0OwogfQogCisvKiByZXR1cm5zIHRydWUsIHdoZW4gc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIHZpc2libGUgd2l0aG91dCB2YXJpYWJsZSBmZW5jZSAqLworc3RhdGljIGJvb2wKK3Nl c3Npb25fdmFyaWFibGVzX2FyZV92aXNpYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSkKK3sKKwlzd2l0 Y2ggKHNlc3Npb25fdmFyaWFibGVzX3Zpc2liaWxpdHkpCisJeworCQljYXNlIFNFU1NJT05WQVJJ QUJMRV9WSVNJQklMSVRZX05PV0hFUkU6CisJCQlyZXR1cm4gZmFsc2U7CisKKwkJY2FzZSBTRVNT SU9OVkFSSUFCTEVfVklTSUJJTElUWV9FVkVSWVdIRVJFOgorCQkJcmV0dXJuIHRydWU7CisKKwkJ Y2FzZSBTRVNTSU9OVkFSSUFCTEVfVklTSUJJTElUWV9QTDoKKwkJCXJldHVybiBwc3RhdGUtPnBf aXNfUEw7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCiAvKiBUZXN0IHdoZXRoZXIgYW4gYV9l eHByIGlzIGEgcGxhaW4gTlVMTCBjb25zdGFudCBvciBub3QgKi8KIHN0YXRpYyBib29sCiBleHBy SXNOdWxsQ29uc3RhbnQoTm9kZSAqYXJnKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX25vZGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKaW5kZXggZDZm ZWIxNmFlZjMuLjRlMzM3YzNhZjgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2Vfbm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2RlLmMKQEAgLTUxLDYg KzUxLDcgQEAgbWFrZV9wYXJzZXN0YXRlKFBhcnNlU3RhdGUgKnBhcmVudFBhcnNlU3RhdGUpCiAJ aWYgKHBhcmVudFBhcnNlU3RhdGUpCiAJewogCQlwc3RhdGUtPnBfc291cmNldGV4dCA9IHBhcmVu dFBhcnNlU3RhdGUtPnBfc291cmNldGV4dDsKKwkJcHN0YXRlLT5wX2lzX1BMID0gcGFyZW50UGFy c2VTdGF0ZS0+cF9pc19QTDsKIAkJLyogYWxsIGhvb2tzIGFyZSBjb3BpZWQgZnJvbSBwYXJlbnQg Ki8KIAkJcHN0YXRlLT5wX3ByZV9jb2x1bW5yZWZfaG9vayA9IHBhcmVudFBhcnNlU3RhdGUtPnBf cHJlX2NvbHVtbnJlZl9ob29rOwogCQlwc3RhdGUtPnBfcG9zdF9jb2x1bW5yZWZfaG9vayA9IHBh cmVudFBhcnNlU3RhdGUtPnBfcG9zdF9jb2x1bW5yZWZfaG9vazsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfdGFibGVzLmMKaW5kZXggMjM3YjEyMTJlN2EuLjM4ODZkMTk5Y2VhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYwpAQCAtNDIzLDYgKzQyMywxMyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGNvbmZpZ19lbnVtX2VudHJ5IGRlYnVnX2xvZ2ljYWxfcmVwbGljYXRpb25fc3RyZWFtaW5n X29wdGlvbgogCXtOVUxMLCAwLCBmYWxzZX0KIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29u ZmlnX2VudW1fZW50cnkgc2Vzc2lvbl92YXJpYWJsZXNfdmlzaWJpbGl0eV9vcHRpb25zW10gPSB7 CisJeyJub3doZXJlIiwgU0VTU0lPTlZBUklBQkxFX1ZJU0lCSUxJVFlfTk9XSEVSRSwgZmFsc2V9 LAorCXsiZXZlcnl3aGVyZSIsIFNFU1NJT05WQVJJQUJMRV9WSVNJQklMSVRZX0VWRVJZV0hFUkUs IGZhbHNlfSwKKwl7InBsIiwgU0VTU0lPTlZBUklBQkxFX1ZJU0lCSUxJVFlfUEwsIGZhbHNlfSwK Kwl7TlVMTCwgMCwgZmFsc2V9Cit9OworCiBTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKHNzbF9w cm90b2NvbF92ZXJzaW9uc19pbmZvKSA9PSAoUEdfVExTMV8zX1ZFUlNJT04gKyAyKSwKIAkJCQkg ImFycmF5IGxlbmd0aCBtaXNtYXRjaCIpOwogCkBAIC01MjgzLDYgKzUyOTAsMTcgQEAgc3RydWN0 IGNvbmZpZ19lbnVtIENvbmZpZ3VyZU5hbWVzRW51bVtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAog CX0sCiAKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfdmlzaWJpbGl0eSIsIFBHQ19VU0VSU0VU LCBDTElFTlRfQ09OTl9TVEFURU1FTlQsCisJCQlnZXR0ZXh0X25vb3AoIkNob29zZXMgdGhlIGNv bnRleHQgd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHZpc2libGUgd2l0aG91dCB2YXJp YWJsZSBmZW5jZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFibGVzX3Zpc2li aWxpdHksCisJCVNFU1NJT05WQVJJQUJMRV9WSVNJQklMSVRZX0VWRVJZV0hFUkUsIHNlc3Npb25f dmFyaWFibGVzX3Zpc2liaWxpdHlfb3B0aW9ucywKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisK KwogCS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEwsIDAsIDAsIE5VTEwsIE5V TEx9LCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggYjg0ZTg2NTlhZTEuLjQ2YjA1ZWUw ODFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5z YW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxl CkBAIC03MzcsNiArNzM3LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92 YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xl ID0gJ29yaWdpbicKICNzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgog I3Nlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCisjc2Vzc2lv bl92YXJpYWJsZXNfdmlzaWJpbGl0eSA9ICdldmVyeXdoZXJlJwogI3N0YXRlbWVudF90aW1lb3V0 ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI3RyYW5zYWN0aW9uX3Rp bWVvdXQgPSAwCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICNsb2NrX3RpbWVv dXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2V4cHIuaAppbmRleCA1YmRlNDM3NThkMS4uZTJmOGQ4MzIyNDIgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2V4cHIuaApAQCAtMTUsMTAgKzE1LDI0IEBACiAKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9k ZS5oIgogCisvKgorICogU3BlY2lmeSB0aGUgZHluYW1pYyBjb250ZXh0IHdoZXJlIHZhcmlhYmxl IGZlbmNlIGlzIHJlcXVpcmVkCisgKi8KK3R5cGVkZWYgZW51bSBTZXNzaW9uVmFyaWFibGVzVmlz aWJpbGl0eQoreworCS8qIFZhcmlhYmxlIGZlbmNpbmcgaXMgcmVxdWlyZWQgZXZlcnl3aGVyZSAq LworCVNFU1NJT05WQVJJQUJMRV9WSVNJQklMSVRZX05PV0hFUkUsCisJLyogVmFyaWFibGUgZmVu Y2luZyBpcyByZXF1aXJlZCBub3doZXJlICovCisJU0VTU0lPTlZBUklBQkxFX1ZJU0lCSUxJVFlf RVZFUllXSEVSRSwKKwkvKiBWYXJpYWJsZSBmZW5jaW5nIGlzIHJlcXVpcmVkIG91dHNpZGUgUEwg Ki8KKwlTRVNTSU9OVkFSSUFCTEVfVklTSUJJTElUWV9QTCwKK30gU2Vzc2lvblZhcmlhYmxlc1Zp c2liaWxpdHk7CisKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9v bCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9u X3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHNl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkOworZXh0ZXJuIFBHRExMSU1Q T1JUIGludCBzZXNzaW9uX3ZhcmlhYmxlc192aXNpYmlsaXR5OwogCiBleHRlcm4gTm9kZSAqdHJh bnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIFBhcnNlRXhwcktpbmQg ZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5o IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCAwYjdiNjlhNDE1OS4uYmI2 YjkyNTEwODMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtMjQ4LDYgKzI0OCw5IEBAIHN0 cnVjdCBQYXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7CiAJYm9vbAkJcF9oYXNT ZXNzaW9uVmFyaWFibGVzOwogCisJLyogdHJ1ZSwgd2hlbiB0aGUgcXVlcnkgaXMgZXhlY3V0ZWQg ZnJvbSBQTCBlbnZpcm9ubWVudCAqLworCWJvb2wJCXBfaXNfUEw7CisKIAlOb2RlCSAgICpwX2xh c3Rfc3JmOwkJLyogbW9zdCByZWNlbnQgc2V0LXJldHVybmluZyBmdW5jL29wIGZvdW5kICovCiAK IAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2NvbXAuYyBiL3NyYy9wbC9w bHBnc3FsL3NyYy9wbF9jb21wLmMKaW5kZXggZjM2YTI0NDE0MGUuLmE1NzQ5ZDkwMmUxIDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfY29tcC5jCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbF9jb21wLmMKQEAgLTExMDEsNiArMTEwMSw3IEBAIHBscGdzcWxfcGFyc2VyX3NldHVw KHN0cnVjdCBQYXJzZVN0YXRlICpwc3RhdGUsIFBMcGdTUUxfZXhwciAqZXhwcikKIAlwc3RhdGUt PnBfcGFyYW1yZWZfaG9vayA9IHBscGdzcWxfcGFyYW1fcmVmOwogCS8qIG5vIG5lZWQgdG8gdXNl IHBfY29lcmNlX3BhcmFtX2hvb2sgKi8KIAlwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSBleHBy OworCXBzdGF0ZS0+cF9pc19QTCA9IHRydWU7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDlhYzA4YTE0ZTBiLi5lZGE0 ZWIyMDc5OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKQEAgLTIwMjgsMyArMjAyOCw5MyBAQCBEUk9QIFNDSEVNQSB0ZXN0dmFyOwogU0VU IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIERFRkFVTFQ7CiBTRVQgc2Vz c2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gREVGQVVMVDsKIFNFVCBz ZWFyY2hfcGF0aCBUTyBERUZBVUxUOworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxlc192aXNpYmls aXR5CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgdmFydGVzdF90 YWIxKGEgaW50KTsKK0xFVCB2YXIxID0gMjA7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X3RhYjEgVkFM VUVTKDIwKTsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc192aXNpYmlsaXR5IFRPICdldmVyeXdoZXJl JzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOworIHZhcjEg fCB2YXIxIAorLS0tLS0tKy0tLS0tLQorICAgMjAgfCAgIDIwCisoMSByb3cpCisKK0RPICQkCitE RUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUg YSA9IHZhcjEgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEgPSB0Owor ICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFyMSkgSU5U TyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIx KSA9IHQ7CitFTkQ7CiskJDsKK05PVElDRTogIDIwIHQKK05PVElDRTogIDIwIHQKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc192aXNpYmlsaXR5IFRPICdub3doZXJlJzsKKy0tIHNob3VsZCBmYWlsCitT RUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBu b3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOworICAgICAgICAg ICAgICAgXgorLS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAg U0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworRU5EOwor JCQ7CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNU IGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1FVRVJZOiAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0 X3RhYjEgV0hFUkUgYSA9IHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVf Y29kZV9ibG9jayBsaW5lIDQgYXQgU1FMIHN0YXRlbWVudAorLS0gc2hvdWxkIGZhaWwKK0RPICQk CitERUNMQVJFIHQgaW50IERFRkFVTFQgMjA7CitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUgJScs IHZhcjEsIHZhcjEgPSB0OworRU5EOworJCQ7CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBu b3QgZXhpc3QKK0xJTkUgMTogdmFyMQorICAgICAgICBeCitRVUVSWTogIHZhcjEKK0NPTlRFWFQ6 ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDQgYXQgUkFJU0UKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKTsKKyB2 YXIxIHwgdmFyMSAKKy0tLS0tLSstLS0tLS0KKyAgIDIwIHwgICAyMAorKDEgcm93KQorCitETyAk JAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdI RVJFIGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgVkFS SUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworTk9USUNFOiAgMjAg dAorU0VUIHNlc3Npb25fdmFyaWFibGVzX3Zpc2liaWxpdHkgVE8gJ3BsJzsKKy0tIHNob3VsZCBm YWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CitFUlJPUjogIGNvbHVtbiAidmFyMSIg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOworICAg ICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitETyAkJAorREVDTEFSRSB0IGludDsKK0JF R0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSB2YXIxIElOVE8gdDsK KyAgUkFJU0UgTk9USUNFICclICUnLCB2YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNUIGEgRlJPTSB2 YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9U SUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7 CitOT1RJQ0U6ICAyMCB0CitOT1RJQ0U6ICAyMCB0CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdmlz aWJpbGl0eSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0 ZXN0X3RhYjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5k ZXggYzU0MjAxODNkOTQuLjA4ZDY2OWY4NmQyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNDAxLDMgKzE0MDEsNzYgQEAgRFJPUCBTQ0hFTUEgdGVz dHZhcjsKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBERUZBVUxU OwogU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRPIERFRkFV TFQ7CiBTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKKworLS0gdGVzdCBzZXNzaW9uX3Zhcmlh Ymxlc192aXNpYmlsaXR5CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFC TEUgdmFydGVzdF90YWIxKGEgaW50KTsKKworTEVUIHZhcjEgPSAyMDsKK0lOU0VSVCBJTlRPIHZh cnRlc3RfdGFiMSBWQUxVRVMoMjApOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdmlzaWJpbGl0 eSBUTyAnZXZlcnl3aGVyZSc7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEsIFZBUklB QkxFKHZhcjEpOworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBTRUxFQ1QgYSBGUk9N IHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAl JywgdmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEg PSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgVkFSSUFCTEUo dmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJp YWJsZXNfdmlzaWJpbGl0eSBUTyAnbm93aGVyZSc7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qg dmFyMSwgVkFSSUFCTEUodmFyMSk7CisKKy0tIHNob3VsZCBmYWlsCitETyAkJAorREVDTEFSRSB0 IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSB2YXIx IElOVE8gdDsKK0VORDsKKyQkOworCistLSBzaG91bGQgZmFpbAorRE8gJCQKK0RFQ0xBUkUgdCBp bnQgREVGQVVMVCAyMDsKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAlJywgdmFyMSwgdmFyMSA9 IHQ7CitFTkQ7CiskJDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUodmFyMSks IFZBUklBQkxFKHZhcjEpOworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBTRUxFQ1Qg YSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFyMSkgSU5UTyB0OworICBS QUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKSA9IHQ7CitF TkQ7CiskJDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX3Zpc2liaWxpdHkgVE8gJ3BsJzsKKwor LS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLCBWQVJJQUJMRSh2YXIxKTsKKworLS0gc2hvdWxk IGJlIG9rCitETyAkJAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFy dGVzdF90YWIxIFdIRVJFIGEgPSB2YXIxIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCB2 YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZB UklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCBWQVJJQUJMRSh2YXIx KSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxl c192aXNpYmlsaXR5IFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFC TEUgdmFydGVzdF90YWIxOwotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20250212-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr3514 RnJvbSA0ZjNlYWNhMGZiYzVlZmIwZTNjYmY0MDAxZjJmMmI3YWE1NDdjYWQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIyXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNjFkZTcwNTlkNzUuLjE1MDAyMjZlOWI1IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nv bmZpZy5zZ21sCkBAIC0xMDk5Nyw2ICsxMDk5Nyw3MSBAQCBERVRBSUw6ICBTZXNzaW9uIHZhcmlh YmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQg cgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJk IiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5n X2d1YXJkPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJt PgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4K KyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgPHBhcmE+CisgICAgICAgV2hlbiBvbiwgYSB3YXJuaW5nIGlzIHJhaXNlZCB3aGVuIGEgc2Vz c2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyIGlzIHVzZWQKKyAgICAgICBpbnNpZGUgYSBxdWVyeSB3 aXRob3V0IHZhcmlhYmxlIGZlbmNlLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVy YWw+LgorICAgICAgIFRoZSB3YXJuaW5nIGlzIHJhaXNlZCBvbmx5IHdoZW4gdmFyaWFibGUgaXMg dXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuCisgICAgICAgY29sbGlzaW9ucyB3aXRoIGNvbHVtbiBu YW1lcyBpcyBwb3NzaWJsZS4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBmb28oYSBp bnQpOworSU5TRVJUIElOVE8gZm9vIFZBTFVFUygxMCk7CitDUkVBVEUgVkFSSUFCTEUgYiBpbnQ7 CitMRVQgYiA9IDEwMDsKK1NFTEVDVCBhLCBiIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4K KworPHNjcmVlbj4KKyBhICB8ICBiCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwv c2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYiIgaXMg bm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00g Zm9vOworICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgorIGEgIHwg IGIKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEgcm93KQorPC9zY3JlZW4+CisKKzxwcm9ncmFt bGlzdGluZz4KK1NFTEVDVCBhLCBWQVJJQUJMRShiKSBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisKKzxzY3JlZW4+CisgYSAgfCAgYgorLS0tLSstLS0tLQorIDEwIHwgMTAwCisoMSByb3cp Cis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhp cyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNlIGxvZyBzaXplLCBzbyBpdCdzIGRp c2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuIFVubGVzcyBhbm90aGVyIGNvbGxpc2lvbiByZXNv bHV0aW9uIHRlY2huaXF1ZSBpcyB1c2VkCisgICAgICAgIChkZWRpY2F0ZWQgc2NoZW1hIG9yIHVz aW5nIHByZWZpeGVzIGxpa2UgPGxpdGVyYWw+XzwvbGl0ZXJhbD4pLAorICAgICAgICB0aGUgdXNl IG9mIHZhcmlhYmxlIGZlbmNlIHN5bnRheCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCwgYW5kIHRo aXMKKyAgICAgICAgd2FybmluZyBzaG91bGQgYmUgZW5hYmxlZC4KKyAgICAgICA8L3BhcmE+Cisg ICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVu dHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9InN0YW5k YXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGFyZF9j b25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAg IDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0YW5kYXJk IGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA5NjkxMmFhYTQzNi4u NGU4ZTdjNmE0MmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0NTYsNiArNTQ1NiwyMSBAQCBTRUxFQ1QgbmFtZSBGUk9N IGZvbzsKICAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8L2xpdGVyYWw+LiBJdCBpcyBzdHJv bmdseSByZWNvbW1lbmRlZCB0byByZW5hbWUKICAgICBzaGFkb3dlZCB2YXJpYWJsZXMgb3IgdXNl IHF1YWxpZmllZCBuYW1lcyBhbHdheXMuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPjxmaXJzdHRl cm0+VmFyaWFibGUgZmVuY2U8L2ZpcnN0dGVybT4gaXMgc3BlY2lhbCBzeW50YXggZm9yIHNlc3Np b24KKyAgICB2YXJpYWJsZSBpZGVudGlmaWVyLiBPbmx5IG5hbWUgb3IgcXVhbGlmaWVkIG5hbWUg Y2FuIGJlIHVzZWQgaW5zaWRlIHRoZQorICAgIHZhcmlhYmxlIGZlbmNlLCBhbmQgdGhpcyBuYW1l IGlzIHVzZWQgYXMgb25seSBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXIuCis8cHJvZ3JhbWxp c3Rpbmc+CitTRUxFQ1QgVkFSSUFCTEUoY3VycmVudF91c2VyX2lkKTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXaGVuIHRoZXJlIGlzIGEgcmlzayBvZiBw b3NzaWJsZSBjb2xsaXNpb25zIGJldHdlZW4gdmFyaWFibGUgaWRlbnRpZmllcnMKKyAgIGFuZCBj b2x1bW4gbmFtZXMsIHRoZW4gdXNpbmcgdmFyaWFibGUgZmVuY2Ugc3ludGF4IGNhbiBiZSByZWNv bW1lbmRlZC4KKyAgIFVzYWdlIHNlc3Npb24gdmFyaWFibGUgd2l0aG91dCB2YXJpYWJsZSBmZW5j ZSBjYW4gYmUgZGV0ZWN0ZWQgYnkKKyAgIHdhcm5pbmcgPHhyZWYgbGlua2VuZD0iZ3VjLXNlc3Np b24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJkIi8+LgorICA8L3BhcmE+CiAgIDwv c2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRl eCBkOGZjM2Q5ZmE2OS4uNTc1MzY1ZWVmY2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNjcz LDYgKzE2NzMsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Bh cmFtUmVmOgogCQkJbG9jID0gKChjb25zdCBQYXJhbVJlZiAqKSBleHByKS0+bG9jYXRpb247CiAJ CQlicmVhazsKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlsb2MgPSAoKGNvbnN0IFZhcmlh YmxlRmVuY2UgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9BX0NvbnN0 OgogCQkJbG9jID0gKChjb25zdCBBX0NvbnN0ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFr OwpAQCAtNDcxNSw2ICs0NzE4LDkgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChO b2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf VmFyaWFibGVGZW5jZToKKwkJCS8qIHdlIGFzc3VtZSB0aGUgZmllbGRzIGNvbnRhaW4gbm90aGlu ZyBpbnRlcmVzdGluZyAqLworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKG5vZGUpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDc3ZDkyNDZmNGExLi5hOGMwOThjM2Q1YSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC01MjUsNyArNTI1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglk ZWZfYXJnIGNvbHVtbkVsZW0gd2hlcmVfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCiAJ CQkJYV9leHByIGJfZXhwciBjX2V4cHIgQWV4cHJDb25zdCBpbmRpcmVjdGlvbl9lbCBvcHRfc2xp Y2VfYm91bmQKIAkJCQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUg eG1sdGFibGUgYXJyYXlfZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcK KwkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlhYmxlX2ZlbmNlCiAldHlw ZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJv bV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9w dF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCkBAIC04ODIsNyArODgyLDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyog aWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29j CUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENV QkUgUk9MTFVQCi0JCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhP VVQgUEFUSAorCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VU IFBBVEggVkFSSUFCTEUKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9w cyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQkn KicgJy8nICclJwpAQCAtMTU2NjgsNiArMTU2NjgsMTkgQEAgY19leHByOgkJY29sdW1ucmVmCQkJ CQkJCQl7ICQkID0gJDE7IH0KIAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8 IHZhcmlhYmxlX2ZlbmNlIG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJaWYgKCQyKQorCQkJ CQl7CisJCQkJCQlBX0luZGlyZWN0aW9uICpuID0gbWFrZU5vZGUoQV9JbmRpcmVjdGlvbik7CisK KwkJCQkJCW4tPmFyZyA9IChOb2RlICopICQxOworCQkJCQkJbi0+aW5kaXJlY3Rpb24gPSBjaGVj a19pbmRpcmVjdGlvbigkMiwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQkJfQorCQkJCQllbHNlCisJCQkJCQkkJCA9ICQxOworCQkJCX0KIAkJCXwgY2FzZV9leHByCiAJ CQkJeyAkJCA9ICQxOyB9CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTcwNTQsNiArMTcwNjcsMTcgQEAg Y2FzZV9hcmc6CWFfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVNUFRZKi8JCQkJ CQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlWQVJJQUJMRSAn KCcgYW55X25hbWUgJyknCisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1ha2VOb2Rl KFZhcmlhYmxlRmVuY2UpOworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZmLT5sb2Nh dGlvbiA9IEAzOworCQkJCQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBjb2x1bW5y ZWY6CUNvbElkCiAJCQkJewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5 c2Nhbm5lcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA2M2YxNzMyZjY5ZS4uZGQwM2Ix ZjE0ZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNDYsNiArNDYsNyBAQAogLyogR1VD IHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFscyA9IGZhbHNlOwogYm9v bAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBmYWxzZTsKK2Jvb2wJCXNl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gZmFsc2U7CiAKIAogc3Rh dGljIE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq ZXhwcik7CkBAIC04MSw2ICs4Miw3IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1Jl ZihQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3RhdGljIE5vZGUgKnRy YW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0 ZUNsYXVzZSAqYyk7CitzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0 YXRlICpwc3RhdGUsIFZhcmlhYmxlRmVuY2UgKnZmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1K c29uT2JqZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQlKc29u T2JqZWN0Q29uc3RydWN0b3IgKmN0b3IpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25BcnJh eUNvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTExMiw3ICsxMTQsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJCQkJCQkJCQkgQV9FeHByICpkaXN0aW5jdGEsIE5vZGUgKmFyZyk7CiBzdGF0aWMgTm9kZSAq bWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCSAg T2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKLQkJCQkJCQkJ CSAgY2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlvbik7CisJCQkJCQkJCQkgIGNoYXIgKmF0dHJu YW1lLCBib29sIGZlbmNlZCwgaW50IGxvY2F0aW9uKTsKIAogCiAvKgpAQCAtMzc3LDYgKzM3OSwx MCBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIp CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Kc29uRnVuY0V4cHIocHN0YXRlLCAoSnNvbkZ1bmNFeHBy ICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlyZXN1 bHQgPSB0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKHBzdGF0ZSwgKFZhcmlhYmxlRmVuY2UgKikgZXhw cik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkIG5vdCByZWFjaCBoZXJl ICovCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBu b2RlVGFnKGV4cHIpKTsKQEAgLTEwMjgsNyArMTAzNCwyMCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAKIAkJCQlub2RlID0gbWFrZVBh cmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKIAkJCQkJCQkJCQkJCXZhcmlkLCB0eXBpZCwgdHlw bW9kLCBjb2xsaWQsCi0JCQkJCQkJCQkJCQlhdHRybmFtZSwgY3JlZi0+bG9jYXRpb24pOworCQkJ CQkJCQkJCQkJYXR0cm5hbWUsIGZhbHNlLCBjcmVmLT5sb2NhdGlvbik7CisKKwkJCQkvKgorCQkJ CSAqIFRoZSB2YXJpYWJsZSBpcyBub3QgaW5zaWRlIHZhcmlhYmxlJ3MgZmVuY2UsIHNvIHJhaXNl IHdhcm5pbmcKKwkJCQkgKiB3aGVuIHZhcmlhYmxlIGZlbmNlIGd1YXJkIGlzIGFjdGl2ZSBhbmQg dGhlIHF1ZXJ5IGhhcyBGUk9NCisJCQkJICogY2xhdXNlLgorCQkJCSAqLworCQkJCWlmIChzZXNz aW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCAmJiBwc3RhdGUtPnBfcnRhYmxl KQorCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VP VVNfQ09MVU1OKSwKKwkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBu b3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmlu ZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkgZXJyZGV0YWlsKCJUaGUgY29sbGlzaW9uIG9mIHNl c3Npb24gdmFyaWFibGUnIG5hbWVzIGFuZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuIiksCisJ CQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOwogCQkJ fQogCQl9CiAJfQpAQCAtMTA3MSw3ICsxMDkwLDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogc3RhdGljIE5vZGUgKgogbWFrZVBhcmFt U2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSBPaWQgdmFyaWQsIE9p ZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAotCQkJCQkJIGNoYXIgKmF0dHJuYW1l LCBpbnQgbG9jYXRpb24pCisJCQkJCQkgY2hhciAqYXR0cm5hbWUsIGJvb2wgZmVuY2VkLCBpbnQg bG9jYXRpb24pCiB7CiAJUGFyYW0JICAgKnBhcmFtOwogCkBAIC0xMDc5LDYgKzEwOTgsNyBAQCBt YWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJcGFyYW0tPnBh cmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOwogCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJ cGFyYW0tPnBhcmFtdmFyZmVuY2VkID0gZmVuY2VkOwogCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBp ZDsKIAlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CiAJcGFyYW0tPnBhcmFtY29sbGlkID0g Y29sbGlkOwpAQCAtMTE1Nyw2ICsxMTc3LDU0IEBAIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGlj IE5vZGUgKgordHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhcmlh YmxlRmVuY2UgKnZmKQoreworCU5vZGUJICAgKnJlc3VsdDsKKwlPaWQJCQl2YXJpZCA9IEludmFs aWRPaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJCW5vdF91bmlxdWU7CisK KwkvKiBWYXJpYWJsZUZlbmNlIGNhbiBiZSB1c2VkIG9ubHkgaW4gY29udGV4dCB3aGVuIHZhcmlh YmxlcyBhcmUgc3VwcG9ydGVkICovCisJaWYgKCFleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFy aWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSByZWZlcmVuY2UgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCisJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJLyogdGFrZXMgYW4gQWNjZXNz U2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJdmFyaWQgPSBJZGVudGlmeVZh cmlhYmxlKHZmLT52YXJuYW1lLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisKKwlp ZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0FN QklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgcmVmZXJl bmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2Zi0+dmFy bmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7 CisKKwlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJeworCQlPaWQJCQl0eXBpZDsKKwkJaW50MzIJ CXR5cG1vZDsKKwkJT2lkCQkJY29sbGlkOworCisJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVf dHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNvbGxp ZCk7CisKKwkJcmVzdWx0ID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKKwkJCQkJ CQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJCWF0dHJuYW1lLCB0 cnVlLCB2Zi0+bG9jYXRpb24pOworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcodmYt PnZhcm5hbWUpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9u KSkpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyogVGVzdCB3aGV0aGVyIGFuIGFfZXhwciBp cyBhIHBsYWluIE5VTEwgY29uc3RhbnQgb3Igbm90ICovCiBzdGF0aWMgYm9vbAogZXhwcklzTnVs bENvbnN0YW50KE5vZGUgKmFyZykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA0YWJh MGQ5ZDRkNS4uY2YwMWJmZjY1YTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTIw MzQsNiArMjAzNCwxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAq Km5hbWUpCiAJCQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIgKikgbm9kZSktPm9wKTsKIAkJCX0K IAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXsKKwkJCQkvKiByZXR1cm4g bGFzdCBmaWVsZCBuYW1lICovCisJCQkJKm5hbWUgPSBzdHJWYWwobGxhc3QoKChWYXJpYWJsZUZl bmNlICopIG5vZGUpLT52YXJuYW1lKSk7CisJCQkJcmV0dXJuIDI7CisJCQl9CisJCQlicmVhazsK IAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRl eCA3NDE3MDU0YzM4Zi4uMTA2ZjgyYjhiYjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMK QEAgLTg2ODIsOCArODY4MiwxNiBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJz ZV9jb250ZXh0ICpjb250ZXh0KQogCS8qIHRyYW5zbGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24g dmFyaWFibGUgbmFtZSAqLwogCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxF KQogCXsKLQkJYXBwZW5kU3RyaW5nSW5mbyhjb250ZXh0LT5idWYsICIlcyIsCi0JCQkJCQkgZ2Vu ZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCWlmIChw YXJhbS0+cGFyYW12YXJmZW5jZWQpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+ YnVmLCAiVkFSSUFCTEUoJXMpIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlhcHBlbmRTdHJp bmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KIAkJcmV0dXJuOwogCX0KIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCAyNTZjYzMzZTcxOS4uMjM3YjEyMTJlN2Eg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC0xNjI1LDYgKzE2MjUsMTUgQEAg c3RydWN0IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0KIAkJZmFsc2UsCiAJCU5V TEwsIE5VTEwsIE5VTEwKIAl9LAorCXsKKwkJeyJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf d2FybmluZ19ndWFyZCIsIFBHQ19VU0VSU0VULCBDTElFTlRfQ09OTl9TVEFURU1FTlQsCisJCQln ZXR0ZXh0X25vb3AoIlJhaXNlIGEgd2FybmluZyB3aGVuIHZhcmlhYmxlIGlzIG5vdCB1c2VkIGlu c2lkZSB2YXJpYWJsZSBmZW5jZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFi bGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVM TAorCX0sCiAJewogCQl7ImRlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJT RVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVm YXVsdCByZWFkLW9ubHkgc3RhdHVzIG9mIG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggOGUxN2VhY2EwZGQu LmI4NGU4NjU5YWUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNv bmYuc2FtcGxlCkBAIC03MzYsNiArNzM2LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAx NgkjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2Fj dGlvbl9kZWZlcnJhYmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdp bicKICNzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgorI3Nlc3Npb25f dmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVv dXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25f dGltZW91dCA9IDAJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGlt ZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAppbmRleCAwMjcwOTQ1ZTA0OC4uZDVmMDBjZjM3MDIgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKQEAgLTMyMSw2ICszMjEsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW1SZWYKIAlQYXJz ZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9 IFBhcmFtUmVmOwogCisvKgorICogVmFyaWFibGVGZW5jZSAtIGVuc3VyZSBzbyBmaWVsZHMgd2ls bCBiZSBpbnRlcnByZXR0ZWQgYXMgYSB2YXJpYWJsZQorICovCit0eXBlZGVmIHN0cnVjdCBWYXJp YWJsZUZlbmNlCit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0CSAgICp2YXJuYW1lOwkJLyogdmFy aWFibGUgbmFtZSAoU3RyaW5nIG5vZGVzKSAqLworCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9r ZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KK30gVmFyaWFibGVGZW5jZTsKKwogLyoK ICAqIEFfRXhwciAtIGluZml4LCBwcmVmaXgsIGFuZCBwb3N0Zml4IGV4cHJlc3Npb25zCiAgKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggMmZhOWIxYmNkMDQuLjk4YjkyODVhNTRiIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wcmltbm9kZXMuaApAQCAtNDExLDYgKzQxMSw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtCiAJ ICogcGFyYW0gaXMgdXNlZCBqdXN0IGZvciBleGVjdXRpb24gb2YgVVBEQVRFIG9wZXJhdGlvbi4K IAkgKi8KIAlib29sCQlwYXJhbWJhc2Vub2RlOworCS8qIHRydWUgd2hlbiB2YXJpYWJsZSBpcyB1 c2VkIGluc2lkZSBhbiBmZW5jZSAqLworCWJvb2wJCXBhcmFtdmFyZmVuY2VkOwogCS8qIHRva2Vu IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBh cmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggZDIyMDkwNzAxODEuLjViZGU0Mzc1OGQx IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTE4LDYgKzE4LDcgQEAKIC8qIEdVQyBwYXJh bWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7 CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZzsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV93YXJuaW5nX2d1YXJkOwogCiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmV4cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDdjMzUw YWQ1ZWY5Li45YWMwOGExNGUwYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE5NjksMyArMTk2OSw2MiBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJMRSBwdWJsaWMueHh0 YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvbjsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZCBUTyBvbjsKK0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKK1NFVCBzZWFyY2hfcGF0aCBUTyAn dGVzdHZhcic7CitDUkVBVEUgVkFSSUFCTEUgYSBBUyBpbnQ7CitMRVQgYSA9IDEwOworQ1JFQVRF IFRBQkxFIHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGUg VkFMVUVTKDIwLCAyMCk7CistLSBubyB3YXJuaW5nCitTRUxFQ1QgYTsKKyBhICAKKy0tLS0KKyAx MAorKDEgcm93KQorCistLSB3YXJuaW5nIHZhcmlhYmxlIGlzIHNoYWRvd2VkCitTRUxFQ1QgYSwg YiBGUk9NIHRlc3RfdGFibGU7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgc2hh ZG93ZWQKK0xJTkUgMTogU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVt bnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUg c2FtZSBuYW1lLgorIGEgIHwgYiAgCistLS0tKy0tLS0KKyAyMCB8IDIwCisoMSByb3cpCisKKy0t IG5vIHdhcm5pbmcKK1NFTEVDVCB2YXJpYWJsZShhKSBGUk9NIHRlc3RfdGFibGU7CisgYSAgCist LS0tCisgMTAKKygxIHJvdykKKworQUxURVIgVEFCTEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBh OworLS0gd2FybmluZyAtIHZhcmlhYmxlIGZlbmNlIGlzIG5vdCB1c2VkCitTRUxFQ1QgYSwgYiBG Uk9NIHRlc3RfdGFibGU7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgbm90IHVz ZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00gdGVzdF90 YWJsZTsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSBjb2xsaXNpb24gb2Ygc2Vzc2lv biB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJsZS4KKyBhICB8IGIg IAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBubyB3YXJuaW5nCitTRUxFQ1Qg dmFyaWFibGUoYSksIGIgRlJPTSB0ZXN0X3RhYmxlOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAx MCB8IDIwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgYTsKK0RST1AgVEFCTEUgdGVzdF90YWJs ZTsKK0RST1AgU0NIRU1BIHRlc3R2YXI7CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gREVGQVVMVDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZCBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNjhiZTQxNWJmMjYu LmM1NDIwMTgzZDk0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCkBAIC0xMzYwLDMgKzEzNjAsNDQgQEAgU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIFRPIG9mZjsKIAogRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVN QSB4eHRhYiBDQVNDQURFOworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8g b247CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247 CisKK0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKKworU0VUIHNlYXJjaF9wYXRoIFRPICd0ZXN0dmFy JzsKKworQ1JFQVRFIFZBUklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKKworQ1JFQVRFIFRB QkxFIHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8gdGVzdF90YWJsZSBW QUxVRVMoMjAsIDIwKTsKKworLS0gbm8gd2FybmluZworU0VMRUNUIGE7CisKKy0tIHdhcm5pbmcg dmFyaWFibGUgaXMgc2hhZG93ZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0g bm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpIEZST00gdGVzdF90YWJsZTsKKworQUxURVIg VEFCTEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBhOworCistLSB3YXJuaW5nIC0gdmFyaWFibGUg ZmVuY2UgaXMgbm90IHVzZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0gbm8g d2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpLCBiIEZST00gdGVzdF90YWJsZTsKKworRFJPUCBW QVJJQUJMRSBhOworRFJPUCBUQUJMRSB0ZXN0X3RhYmxlOworCitEUk9QIFNDSEVNQSB0ZXN0dmFy OworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsK K1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxU OworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7Ci0tIAoyLjQ4LjEKCg== --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20250212-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr3e15 RnJvbSAwNGEwN2Q3NzZiMmM1OWJhNDM1ZmMzMzVhYmU0NWI4MzcxOTUwZmIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIyXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDI2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNiArKysrKysrKwogMTAgZmlsZXMgY2hhbmdl ZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDNiNTU3 ZWNhYmZiLi42MWRlNzA1OWQ3NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTA5MzcsNiArMTA5MzcsNjYgQEAg ZHluYW1pY19saWJyYXJ5X3BhdGggPSAnQzpcdG9vbHNccG9zdGdyZXNxbDtIOlxteV9wcm9qZWN0 XGxpYjskbGliZGlyJwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLWFtYmlndWl0eS13 YXJuaW5nIiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAg ICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n PC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5k ZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBXaGVuIG9uLCBhIHdhcm5pbmcgaXMgcmFpc2VkIHdoZW4gYW55IGlkZW50aWZpZXIg aW4gYSBxdWVyeSBjb3VsZCBiZQorICAgICAgICB1c2VkIGFzIGJvdGggYSBjb2x1bW4gaWRlbnRp Zmllciwgcm91dGluZSB2YXJpYWJsZSBvciBhIHNlc3Npb24KKyAgICAgICAgdmFyaWFibGUgaWRl bnRpZmllci4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAgICAgICA8 L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBz aGFkb3dlZCBieSBjb2x1bW4gcmVmZXJlbmNlcyBpbiBhIHF1ZXJ5LCB0aGlzCisgICAgICAgIGlz IGFuIGV4cGVjdGVkIGJlaGF2aW9yLiAgUHJldmlvdXNseSB3b3JraW5nIHF1ZXJpZXMgc2hvdWxk bid0IGVycm9yIG91dAorICAgICAgICBieSBjcmVhdGluZyBhbnkgc2Vzc2lvbiB2YXJpYWJsZSwg c28gc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsd2F5cyBzaGFkb3dlZAorICAgICAgICBpZiBhbiBp ZGVudGlmaWVyIGlzIGFtYmlndW91cy4gIFZhcmlhYmxlcyBzaG91bGQgYmUgcmVmZXJlbmNlZCB1 c2luZworICAgICAgICBhbnVuYW1iaWd1b3VzIGlkZW50aWZpZXIgd2l0aG91dCBhbnkgcG9zc2li aWxpdHkgZm9yIGEgY29sbGlzaW9uIHdpdGgKKyAgICAgICAgaWRlbnRpZmllciBvZiBvdGhlciBk YXRhYmFzZSBvYmplY3RzIChjb2x1bW4gbmFtZXMgb3IgcmVjb3JkIGZpZWxkcyBuYW1lcykuCisg ICAgICAgIFRoZSB3YXJuaW5nIG1lc3NhZ2VzIGVtaXR0ZWQgd2hlbiBlbmFibGluZyA8dmFybmFt ZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwvdmFybmFtZT4KKyAgICAgICAg Y2FuIGhlbHAgZmluZGluZyBzdWNoIGlkZW50aWZpZXIgY29sbGlzaW9uLgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitJTlNFUlQgSU5UTyBmb28gVkFMVUVTKDEw KTsKK0NSRUFURSBWQVJJQUJMRSBhIGludDsKK0xFVCBhID0gMTAwOworU0VMRUNUIGEgRlJPTSBm b287Cis8L3Byb2dyYW1saXN0aW5nPgorCis8c2NyZWVuPgorIGEKKy0tLS0KKyAxMAorKDEgcm93 KQorPC9zY3JlZW4+CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFTEVDVCBhIEZST00gZm9vOworPC9wcm9ncmFtbGlz dGluZz4KKworPHNjcmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBpcyBzaGFk b3dlZAorTElORSAxOiBTRUxFQ1QgYSBGUk9NIGZvbzsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5l J3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4K KyBhCistLS0tCisgMTAKKygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNl IGxvZyBzaXplLCBzbyBpdCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuICBGb3IgdGVz dGluZyBvciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaXQncyByZWNvbW1lbmRlZCB0bworICAg ICAgICBlbmFibGUgaXQgaWYgeW91IHVzZSBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9 InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFu ZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikK ICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0 YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA1ZTY3MWQ1 YmU0ZC4uOTY5MTJhYWE0MzYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0NDUsNiArNTQ0NSwxNyBAQCBTRUxFQ1QgbmFt ZSBGUk9NIGZvbzsKICBBbGljZQogPC9wcm9ncmFtbGlzdGluZz4KICAgIDwvcGFyYT4KKworICAg PHBhcmE+CisgICAgV2hlbiBhIHF1ZXJ5IGNvbnRhaW5zIGlkZW50aWZpZXJzIG9yIHF1YWxpZmll ZCBpZGVudGlmaWVycyB0aGF0IGNvdWxkIGJlCisgICAgdXNlZCBhcyBib3RoIGEgc2Vzc2lvbiB2 YXJpYWJsZSBpZGVudGlmaWVycyBhbmQgYXMgY29sdW1uIGlkZW50aWZpZXIsCisgICAgdGhlbiB0 aGUgY29sdW1uIGlkZW50aWZpZXIgaXMgcHJlZmVycmVkIGV2ZXJ5IHRpbWUuICBXYXJuaW5ncyBj YW4gYmUKKyAgICBlbWl0dGVkIHdoZW4gdGhpcyBzaXR1YXRpb24gaGFwcGVucyBieSBlbmFibGlu ZyBjb25maWd1cmF0aW9uIHBhcmFtZXRlciA8eHJlZgorICAgIGxpbmtlbmQ9Imd1Yy1zZXNzaW9u LXZhcmlhYmxlcy1hbWJpZ3VpdHktd2FybmluZyIvPi4gVXNlciBjYW4gZXhwbGljaXRseQorICAg IHF1YWxpZnkgdGhlIHNvdXJjZSBvYmplY3QgYnkgc3ludGF4IDxsaXRlcmFsPnRhYmxlLmNvbHVt bjwvbGl0ZXJhbD4gb3IKKyAgICA8bGl0ZXJhbD5zY2hlbWEudmFyaWFibGU8L2xpdGVyYWw+LiBJ dCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byByZW5hbWUKKyAgICBzaGFkb3dlZCB2YXJpYWJs ZXMgb3IgdXNlIHF1YWxpZmllZCBuYW1lcyBhbHdheXMuCisgICA8L3BhcmE+CiAgIDwvc2VjdDE+ CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXgg NGYyMDhjN2VmZGQuLjYzZjE3MzJmNjllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ1 LDYgKzQ1LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxs X2VxdWFscyA9IGZhbHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgPSBmYWxzZTsKIAogCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VT dGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKTsKQEAgLTk2MCwxMSArOTYxLDUxIEBAIHRyYW5zZm9y bUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJICoKIAkJ ICogU0VMRUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CiAJCSAqCi0JCSAqIEhvd2V2 ZXIsIHRoYXQgaXMgdmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3Qg dHJ5IHRvCi0JCSAqIGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxk IGJlIHNoYWRvd2VkLgotCQkgKiAtLS0tLQorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29u ZnVzaW5nLCBzbyB3ZSBkaXNhbGxvdyBpdC4KKwkJICoKKwkJICogV2hlbiBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gd2UKKwkJICogbmVlZCB0 byBpZGVudGlmeSBhIHZhcmlhYmxlIGFsdGhvdWdoIHdlIGtub3csIHNvIHRoaXMgdmFyaWFibGUK KwkJICogd291bGQgYmUgc2hhZG93ZWQuCiAJCSAqLwotCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1l ICYmIGNyZXJyID09IENSRVJSX05PX0NPTFVNTikpCisJCWlmIChub2RlIHx8IChyZWxuYW1lICYm IGNyZXJyID09IENSRVJSX05PX0NPTFVNTikpCisJCXsKKwkJCS8qCisJCQkgKiBJbiB0aGlzIHBh dGggd2UganVzdCB0cnkgKGlmIGl0IGlzIHdhbnRlZCkgZGV0ZWN0IGlmIHNlc3Npb24KKwkJCSAq IHZhcmlhYmxlIGlzIHNoYWRvd2VkLgorCQkJICovCisJCQlpZiAoc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgQWNjZXNzU2hhcmVM b2NrIGlzIGNyZWF0ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCSAqIFRoZSBs b2NrIHdpbGwgYmUga2VwdCBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLgorCQkJCSAqLworCQkJ CXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91 bmlxdWUsIHRydWUpOworCisJCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJCXsKKwkJCQkJ LyogdGhpcyBwYXRoIHdpbGwgZW5kaW5nIGJ5IFdBUk5JTkcuIFVubG9jayB2YXJpYWJsZSBmaXJz dCAqLworCQkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlk LCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCQkJCWlmIChub2RlKQorCQkJCQkJZXJlcG9ydChX QVJOSU5HLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJ CQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJ CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkJIGVycmRldGFp bCgiU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUn cyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLiIp LAorCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7 CisJCQkJCWVsc2UKKwkJCQkJCS8qIHNlc3Npb24gdmFyaWFibGUgaXMgc2hhZG93ZWQgYnkgUlRF ICovCisJCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1C SUdVT1VTX0NPTFVNTiksCisJCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4l c1wiIGlzIHNoYWRvd2VkIiwKKwkJCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9uIHZhcmlhYmxl cyBjYW4gYmUgc2hhZG93ZWQgYnkgdGFibGVzIG9yIHRhYmxlJ3MgYWxpYXNlcyB3aXRoIHRoZSBz YW1lIG5hbWUuIiksCisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5s b2NhdGlvbikpKTsKKwkJCQl9CisJCQl9CisJCX0KKwkJZWxzZQogCQl7CiAJCQkvKiB0YWtlcyBh biBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KIAkJCXZhcmlkID0g SWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZh bHNlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMjI2YWY0M2ZlMjMuLjI1 NmNjMzNlNzE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTYxNiw2ICsx NjE2LDE1IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZh bHNlLAogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmciLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAor CQkJZ2V0dGV4dF9ub29wKCJSYWlzZSBhIHdhcm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNz aW9uIHZhcmlhYmxlIGlzIGFtYmlndW91cy4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25f dmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVM TAorCX0sCiAJewogCQl7ImRlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJT RVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVm YXVsdCByZWFkLW9ubHkgc3RhdHVzIG9mIG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZDQ3Mjk4N2VkNDYu LjhlMTdlYWNhMGRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNv bmYuc2FtcGxlCkBAIC03MzUsNiArNzM1LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAx NgkjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2Fj dGlvbl9yZWFkX29ubHkgPSBvZmYKICNkZWZhdWx0X3RyYW5zYWN0aW9uX2RlZmVycmFibGUgPSBv ZmYKICNzZXNzaW9uX3JlcGxpY2F0aW9uX3JvbGUgPSAnb3JpZ2luJworI3Nlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMg aW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJ CQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJ IyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9leHByLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCmlu ZGV4IGVmYmFmZjhlNzEwLi5kMjIwOTA3MDE4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBA IC0xNyw2ICsxNyw3IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBP UlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzsKIAogZXh0ZXJuIE5vZGUgKnRyYW5z Zm9ybUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4 cHJLaW5kKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdz cWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAppbmRleCBhYjc3OTkwMDU5Ni4uYTY1MjNmN2FmZTIg MTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0CkBAIC0zNTQsNiArMzU0LDM5IEBAICQkOwogTk9USUNFOiAgc2Vz c2lvbiB2YXJpYWJsZSBpcyAxMDAKIE5PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAwMAog Tk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorLS0gYWdhaW50IHdpdGggc2Vzc2lvbl92YXJpYWJs ZXNfYW1iaWd1aXR5X3dhcm5pbmcob24pCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gb247CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3NxbF9zdl92 YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAgLS0gc2hv dWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKwor ICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDsKKyAgUkFJ U0UgTk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIx OworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAor ICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9z dl92YXIxOworCisgIC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxlIHdpdGggd2Fy bmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBs cGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSBpcyAx MDAKK05PVElDRTogIHBscGdzcWwgdmFyaWFibGUgaXMgMTAwMAorV0FSTklORzogIHNlc3Npb24g dmFyaWFibGUgInBscGdzcWxfc3ZfdmFyMSIgaXMgc2hhZG93ZWQKK0xJTkUgMTogcGxwZ3NxbF9z dl92YXIxCisgICAgICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFk b3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1l bnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KK1FVRVJZOiAgcGxwZ3NxbF9zdl92YXIxCitOT1RJQ0U6 ICB2YXJpYWJsZSBpcyAxMDAwCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gb2ZmOwogRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjE7CiAtLSB0aGUgdmFsdWUg c2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKIENSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4 dDsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3Zh cmlhYmxlLnNxbCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3Zhcmlh YmxlLnNxbAppbmRleCBhM2NjMjY0Y2YzOC4uOWI4ZTkwZTgxZmEgMTAwNjQ0Ci0tLSBhL3NyYy9w bC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbAorKysgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKQEAgLTI2MCw2 ICsyNjAsMzUgQEAgQkVHSU4KIEVORDsKICQkOwogCistLSBhZ2FpbnQgd2l0aCBzZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyhvbikKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2Ft YmlndWl0eV93YXJuaW5nIFRPIG9uOworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxw Z3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisK KyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0g MTAwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEw MDsKKyAgUkFJU0UgTk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3Nx bF9zdl92YXIxOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJp bnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2su cGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxl IHdpdGggd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUg aXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJs ZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworCiBEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMTsKIAogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDI3ODNjYWE4 NDQ2Li43YzM1MGFkNWVmOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE1MjQsNiArMTUyNCw5IEBAIENSRUFURSBUQUJMRSB2YXJ0 ZXN0X2ZvbyhhIGludCwgYiBpbnQpOwogSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEw LDIwKSwgKDMwLDQwKTsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOwogTEVU IHZhcjEgPSAoMTAwLDIwMCk7CistLSBubyB2YXJpYWJsZSBpcyBzaGFkb3dlZCBoZXJlCistLSBu byB3YXJuaW5nIGV4cGVjdGVkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gb247CiAtLSBzaG91bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3Rf Zm9vOwogRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFyMSIK QEAgLTE1NDksNiArMTU1Miw3IEBAIFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9m b28gdmFyMTsKICAgICAgMgogKDEgcm93KQogCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcgVE8gb2ZmOwogU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CiBEUk9QIFND SEVNQSB2YXJ0ZXN0IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIg b2JqZWN0cwpAQCAtMTk0MywzICsxOTQ3LDI1IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBE Uk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmln dWl0eV93YXJuaW5nCitDUkVBVEUgU0NIRU1BIHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFi LmF2YXIgaW50OworQ1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQg SU5UTyBwdWJsaWMueHh0YWIgVkFMVUVTKDEpOworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8g cmFpc2Ugd2FybmluZywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRh YjsKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAor TElORSAxOiBTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAg ICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1 bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhl IHNhbWUgbmFtZS4KKyBhdmFyIAorLS0tLS0tCisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lv bl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMu eHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRl cyB0byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBhNjI0YWI4YjY3Zi4uNjhiZTQxNWJmMjYgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEwNzksNiArMTA3 OSwxMCBAQCBJTlNFUlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjApLCAoMzAsNDApOwog Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF9mb287CiBMRVQgdmFyMSA9ICgxMDAsMjAw KTsKIAorLS0gbm8gdmFyaWFibGUgaXMgc2hhZG93ZWQgaGVyZQorLS0gbm8gd2FybmluZyBleHBl Y3RlZAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworCiAt LSBzaG91bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogCkBAIC0x MDkxLDYgKzEwOTUsOCBAQCBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOwog LS0gc2hvdWxkIGJlIG9rCiBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vIHZh cjE7CiAKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisK IFNFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOwogRFJPUCBTQ0hFTUEgdmFydGVzdCBDQVNDQURF OwogCkBAIC0xMzM0LDMgKzEzNDAsMjMgQEAgQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9M TEJBQ0s7CiBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0 ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVBVEUgU0NIRU1BIHh4 dGFiOworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CisKK0NSRUFURSBUQUJMRSBw dWJsaWMueHh0YWIoYXZhciBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIgVkFMVUVT KDEpOworCitMRVQgeHh0YWIuYXZhciA9IDIwOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1i aWd1aXR5X3dhcm5pbmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5pbmcsIHNob3cg MQorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisKK1NFVCBzZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CisKK0RST1AgVEFCTEUgcHVibGljLnh4 dGFiOworRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKLS0gCjIuNDguMQoK --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250212-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr3k16 RnJvbSA0OTBkNDNlYjgzMGM5NjdjOGY5NWQzOWVhZWE4NjA2YmRlYzI5ZjRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjJdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzZS4uYmJj YWUyN2Q0MjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKQEAgLTM1LDcgKzM1LDggQEAgUkVHUkVTU19PUFRT ID0gLS1kYm5hbWU9JChQTF9URVNUREIpCiBSRUdSRVNTID0gcGxwZ3NxbF9hcnJheSBwbHBnc3Fs X2NhY2hlIHBscGdzcWxfY2FsbCBwbHBnc3FsX2NvbnRyb2wgXAogCXBscGdzcWxfY29weSBwbHBn c3FsX2RvbWFpbiBwbHBnc3FsX21pc2MgXAogCXBscGdzcWxfcmVjb3JkIHBscGdzcWxfc2ltcGxl IHBscGdzcWxfdHJhbnNhY3Rpb24gXAotCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxw Z3NxbF92YXJwcm9wcworCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxwZ3NxbF92YXJw cm9wcyBcCisJcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlCiAKICMgd2hlcmUgdG8gZmluZCBnZW5f a2V5d29yZGxpc3QucGwgYW5kIHN1YnNpZGlhcnkgZmlsZXMKIFRPT0xTRElSID0gJCh0b3Bfc3Jj ZGlyKS9zcmMvdG9vbHMKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmFiNzc5OTAwNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwz ODIgQEAKKy0tIHRlc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhciBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKK05PVElDRTogIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgMy4xNDE1OTI2NTM1 ODk3OQorLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CitTRUxFQ1QgcGxwZ3NxbF9z dl92YXIgQVMgInBpX211bHRpcGx5XzIiOworICBwaV9tdWx0aXBseV8yICAgCistLS0tLS0tLS0t LS0tLS0tLS0KKyA2LjI4MzE4NTMwNzE3OTU5CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXI7CistLSB0ZXN0IGFjY2VzcyBmcm9tIFBML3BnU1FMCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hh cjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMgdm9p ZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxwZ3Nx bF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2 X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQgTEFO R1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBO T1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJQ0UgJ3ZhcjIg PSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBvZiB2YXIzID0g JScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK Ky0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1bmMo KTsKKyB3cml0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJl YWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0MTU5 MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCisgcmVhZGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsKKyB1 cGRhdGVyX2Z1bmMgCistLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAw MDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKKyByZWFk ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRU5EOworLS0gZXhlY3V0ZSBv dXRzaWRlIG9mIGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworIHdyaXRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsK K05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05P VElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0tLS0tLS0tLS0t LS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0ZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1 ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLSBleGVjdXRlIGluc2lkZSBhIFBML3BnU1FMIGJs b2NrCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJl YWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0g My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNF OiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3 OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxk IGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEs IHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51 bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBz aG91bGQgd29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsK KyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9U SUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0g MTAwMDIKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMu MTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3Qg cGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEg QVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RF Q0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIx ID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2 OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBn c3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6 ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7 MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSwgcGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJP TEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRl cl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xF VCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cl9yZWFkX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug JyUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZ IERFRklORVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJf ZXhlY19yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFy MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInBscGdzcWxfc3ZfdmFyMSIKK1BML3Bn U1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9s ZTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitOT1RJQ0U6ICAx MAorIHZhcl9yZWFkX2Z1bmMgCistLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9M RSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFz aAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAgY29sdW1uICJwbHBnc3FsX3N2X3Zh cjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitR VUVSWTogIHBscGdzcWxfc3ZfdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9y ZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIEZV TkNUSU9OIHZhcl9yZWFkX2Z1bmM7CitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192 YXJfZXhlY19yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9QIFJP TEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGlu dCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09B TEVTQ0UocGxwZ3NxbF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFy MTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7Cisg aW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VM RUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAyCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9p bnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0t LS0tLS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAg ICAgIDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAg ICAxMQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIyID0g MC4wOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNf dmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgMgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9u dW0oMS4wKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX251bSAKKy0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAg ICAgICAgNworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAg ICAgIDExCisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitEUk9QIEZVTkNUSU9OIGlu Y192YXJfaW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKy0tIHBscGdzcWwgdmFyaWFi bGVzIGFyZSBwcmVmZXJyZWQgYWdhaW5zdCBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUg cGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7 CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBSQUlT RSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7 CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMg JScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0Ug Tk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBp cyAxMDAwCitOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCitEUk9QIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyMTsKKy0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAorQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc3ZfdiB0ZXh0OworTEVUIHBscGdzcWxfc3ZfdiA9ICdhYmMnOworQ1JF QVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJO IGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUg RlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBMRVQg cGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworc2VsZWN0IGZmdW5jKCk7CisgZmZ1bmMgCistLS0tLS0tCisgYWJjCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gZmZ1bmMoKTsKK0RST1AgRlVOQ1RJT04gZ2Z1bmModGV4dCk7CitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9tZXNvbi5idWlsZCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZAppbmRleCAzM2M0 OWFjMjVkOS4uMWQwMWQxYzI2MjkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNv bi5idWlsZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4 LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90 cmlnZ2VyJywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Np b25fdmFyaWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmEzY2MyNjRjZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCkBAIC0wLDAgKzEs Mjg5IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKwor LS0gcGFzc2luZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsK K0VORDsKKyQkOworCistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JF R0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKKworU0VMRUNU IHBscGdzcWxfc3ZfdmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKworRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjsKKworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMg dm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxw Z3NxbF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3Fs X3N2X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9m dW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9 IHBscGdzcWxfc3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxf c3ZfdmFyMiArIDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBn c3FsX3N2X3ZhcjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcq JywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgor ICBSQUlTRSBOT1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJ Q0UgJ3ZhcjIgPSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBv ZiB2YXIzID0gJScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworLS0gZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3 cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5j KCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK0VORDsKKworLS0gZXhlY3V0ZSBvdXRzaWRlIG9m IGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5j KCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKKworLS0g ZXhlY3V0ZSBpbnNpZGUgYSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0g d3JpdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxh biBjYWNoZXMgc2hvdWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVB VEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMg QVMgdmFyY2hhcjsKKworLS0gc2hvdWxkIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJG T1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1 cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3Zf dmFyMzsKKworRFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVy X2Z1bmM7CitEUk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBv ZiBjb3JyZWN0IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50 W107CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZv aWQgQVMgJCQKK0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBO T1RJQ0UgJyUnLCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMltwbHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdz cWxfc3ZfdmFyMjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1 bmMoKTsKKworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsK KworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJfb3duZXJfcm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CitMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTRUNVUklUWSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9y ZWFkX2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKwor LS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VM RUNUIGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5j X3Zhcl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAu MDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VM RUNUIGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNU IGluY192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04g aW5jX3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZh cmlhYmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RF Q0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEg PSAxMDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOwor ICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2 X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFi bGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAg UkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7 CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxk IG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xF VCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVS TlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitS RVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOwor ICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygp OworCitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOwor CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDguMQoK --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250212-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr4118 RnJvbSBlNTA4MDQyYmJmNWM5ODA2ZTQ3ZGMwYzdjNDRhOTc1ZDBkYjYxOGViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIyXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggODEzMzlhNzVh NTIuLjU5MDRhNmM0OTE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA4MjU1ZjM2MGQy ZS4uYTYyMWNiZTMzMjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTk0LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywg aW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2Vy dChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lv biB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBh biBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQor CSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lv bnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3Bl Y2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjE5LDMgKzYyNSwy MyBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChE YXR1bSkgMDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBv ZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFu eSBsaXN0IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNl ZCBieSB0aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAq Lwordm9pZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNo IHRhYmxlIGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252 YXJzKQorCXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBO VUxMOworCX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlh YmxlcyAqLworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNv bnRleHRSZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGQz NGVhMzliYzgzLi43N2Q5MjQ2ZjRhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yMDg0LDcgKzIwODQsMTMg QEAgRGlzY2FyZFN0bXQ6CiAJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfU0VRVUVOQ0VTOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBESVNDQVJEIFZBUklBQkxFUworCQkJCXsK KwkJCQkJRGlzY2FyZFN0bXQgKm4gPSBtYWtlTm9kZShEaXNjYXJkU3RtdCk7CiAKKwkJCQkJbi0+ dGFyZ2V0ID0gRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDdhNTA4YTM2NDRmLi42ZTRkMjMxMGY1YyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKQEAgLTI5NjIsNiArMjk2Miw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAq cGFyc2V0cmVlKQogCQkJCWNhc2UgRElTQ0FSRF9TRVFVRU5DRVM6CiAJCQkJCXRhZyA9IENNRFRB R19ESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBESVNDQVJEX1ZBUklB QkxFUzoKKwkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTOworCQkJCQlicmVhazsK IAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwppbmRleCA1NzM2NGVhNmExYy4uMGNjOGViNTZiYjQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKQEAgLTQxMTcsNyArNDExNyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIp KQotCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsK KwkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZB UklBQkxFUyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMjM5MWI5YWQ0NDMuLmE4Y2E0M2M4 N2FmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yNyw0ICsy Nyw2IEBAIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICpp c051bGwpOwogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBM ZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCQkJCSAgIFF1ZXJ5RW52aXJv bm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKIAorZXh0ZXJuIHZvaWQgUmVz ZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApp bmRleCBiMWU5ZWZhNjk3OS4uMDI3MDk0NWUwNDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAg LTQwMzYsNiArNDAzNiw3IEBAIHR5cGVkZWYgZW51bSBEaXNjYXJkTW9kZQogCURJU0NBUkRfUExB TlMsCiAJRElTQ0FSRF9TRVFVRU5DRVMsCiAJRElTQ0FSRF9URU1QLAorCURJU0NBUkRfVkFSSUFC TEVTLAogfSBEaXNjYXJkTW9kZTsKIAogdHlwZWRlZiBzdHJ1Y3QgRGlzY2FyZFN0bXQKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmgKaW5kZXggMjIwODJjMzAwMDguLmJlZjBhYzI1MzMxIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaApAQCAtMTM1LDYgKzEzNSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9BTEws ICJESVNDQVJEIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJ U0NBUkRfUExBTlMsICJESVNDQVJEIFBMQU5TIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRElTQ0FSRF9TRVFVRU5DRVMsICJESVNDQVJEIFNFUVVFTkNFUyIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVEVNUCwgIkRJU0NBUkQg VEVNUCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVkFS SUFCTEVTLCAiRElTQ0FSRCBWQVJJQUJMRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01E VEFHKENNRFRBR19ETywgIkRPIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9BQ0NFU1NfTUVUSE9ELCAiRFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRF IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCBmMjI0NjcxODZlMy4uNzlhYzQwNzY4ZjggMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0x NjYzLDMgKzE2NjMsNjYgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CiBE Uk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwogRFJPUCBTQ0hFTUEg OiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkgY2xlYW5pbmcgYnkgRElT Q0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEg PSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgSGVsbG8KKygxIHJv dykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCisoMSBy b3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor IEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGluaXRpYWwg dGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlvbgorLS0gc2hvdWxkIGJl IHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxs CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAor LS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIG5h bWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5fdXBk YXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisK K0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CmluZGV4IGU3MjM2MGQ1MjU0Li4yOTU0NzU5YWFlZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTE3OCwzICsxMTc4LDM5IEBAIERST1AgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CiBEUk9QIFNDSEVNQSA6IkRCTkFNRSI7 CiAKIFJFU0VUIHNlYXJjaF9wYXRoOworCistLSBtZW1vcnkgY2xlYW5pbmcgYnkgRElTQ0FSRCBj b21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnSGVs bG8nOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgQUxMOworU0VMRUNUIHZhcjE7CisKK0xFVCB2 YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworU0VMRUNU IHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gaW5pdGlhbCB0ZXN0IG9mIGRlYnVn IHBnX3Nlc3Npb25fdmFyaWFibGVzIGZ1bmN0aW9uCistLSBzaG91bGQgYmUgemVybyBub3cKK0RJ U0NBUkQgVkFSSUFCTEVTOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworCistLSBzaG91bGQg YmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKworTEVUIHZhcjEgPSAnQUhPSic7CisKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2Vs ZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworRElTQ0FSRCBW QVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250212-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr3u17 RnJvbSBlMDNiYjFhODA3NTMwZDAzN2NkMjM3NTI2ZDQ0OWFmODY5MTNkNDI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjJdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYmI0NDVlOTQzNGIuLmQ2NzJkMmE5Y2IzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMjMwLDcgKzIzMSw4IEBAIENyZWF0ZVZhcmlh YmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiB9CiAK IC8qCi0gKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRAorICogRHJvcCB2YXJpYWJsZSBieSBPSUQsIGFu ZCByZWdpc3RlciB0aGUgbmVlZGVkIHNlc3Npb24gdmFyaWFibGUKKyAqIGNsZWFudXAuCiAgKi8K IHZvaWQKIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQpAQCAtMjUwLDQgKzI1Miw3IEBAIERy b3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCiAJdGFi bGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qIGRvIHRoZSBuZWNlc3Nhcnkg Y2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAqLworCVNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKaW5kZXggYTYyMWNiZTMzMjguLjRhMjllZDZlMGMzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBAIC02Nyw2ICs2OCwxNCBA QCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4 dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8q CisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0 aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2UgbmVlZCB0aGlz IGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZhcmlhYmxlcyBk cm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRpb24gaXMgcm9s bGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9seGlkOworCiAJ LyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91dGRhdGVk IHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8g Y2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtODMsNiArOTIsMTcgQEAgc3Rh dGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4 dCA9IE5VTEw7CiAKKy8qIGJlY29tZXMgdHJ1ZSB3aGVuIHdlIHJlY2VpdmUgYSBzaW52YWwgbWVz c2FnZSAqLworc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOworCisvKgorICog VGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBp bW1lZGlhdGVseS4gIFdlIGRvCisgKiB0aGF0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqICJ2YWxpZGF0ZWRfbHhpZCIg c3RvcmVzIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHBlcmZvcm1lZCBzYWlkIHZhbGlkYXRpb24sIHNv CisgKiB0aGF0IHdlIGNhbiBhdm9pZCByZXBlYXRpbmcgdGhlIGVmZm9ydC4KKyAqLworc3RhdGlj IExvY2FsVHJhbnNhY3Rpb25JZCB2YWxpZGF0ZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0 aW9uSWQ7CisKIC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBp bnZhbGlkYXRpb24uCiAgKi8KQEAgLTExNCw2ICsxMzQsMzggQEAgcGdfdmFyaWFibGVfY2FjaGVf Y2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAkJaWYg KGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNodmFsdWUpCiAJCXsKIAkJ CXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ fQorCX0KK30KKworLyoKKyAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEg RFJPUCBWQVJJQUJMRSBjb21tYW5kLgorICoKKyAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9m IHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KKyAqLwordm9pZAorU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK3sKKwlBc3NlcnQoTG9jYWxUcmFu c2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJYm9vbAkJZm91bmQ7CisJCVNWYXJpYWJsZQlzdmFyID0gKFNWYXJpYWJsZSkgaGFz aF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJCQkJCSAgIEhBU0hfRklORCwg JmZvdW5kKTsKKworCQlpZiAoZm91bmQpCisJCXsKKwkJCS8qCisJCQkgKiBTYXZlIHRoZSBjdXJy ZW50IHRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCB0byBtYWtlIHN1cmUgd2UKKwkJCSAq IHdvbid0IGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBsb2NhbCB2YXJpYWJsZSBzdG9yYWdlIGlu CisJCQkgKiB2YWxpZGF0ZV9hbGxfc2Vzc2lvbl92YXJpYWJsZXMoKSB3aGVuIHRoZSBpbnZhbGlk YXRpb24gbWVzc2FnZQorCQkJICogZnJvbSBEUk9QIFZBUklBQkxFIGFycml2ZXMuICBBZnRlciBh bGwsIHRoZSB0cmFuc2FjdGlvbiBjb3VsZAorCQkJICogc3RpbGwgYmUgcm9sbGVkIGJhY2suCisJ CQkgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQlzdmFyLT5kcm9wX2x4aWQgPSBN eVByb2MtPnZ4aWQubHhpZDsKIAkJfQogCX0KIH0KQEAgLTE2Nyw2ICsyMTksNjcgQEAgaXNfc2Vz c2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKIAlyZXR1cm4gcmVzdWx0OwogfQog CisvKgorICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBk YXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQorICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFs aWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgorICog d3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVt b3J5IGlzIHBvc3Rwb25lZCBpZgorICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKKyAqIG9wZXJhdGlvbiBjb3VsZCBz dGlsbCBiZSByb2xsZWQgYmFjay4KKyAqCisgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHJlY2Vp dmUgYSBjYWNoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3aGlsZQorICogcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKSBpcyBleGVjdXRpbmcsIHNvIHdlIGNhbm5vdCBndWFyYW50ZWUg dGhhdAorICogYWxsIGVudHJpZXMgaW4gInNlc3Npb252YXJzIiB3aWxsIGJlIHNldCB0byAiaXNf dmFsaWQiIGFmdGVyIHRoZSBmdW5jdGlvbiBpcworICogZG9uZS4gIEhvd2V2ZXIsIHdlIGNhbiBn dWFyYW50ZWUgdGhhdCBhbGwgZW50cmllcyBnZXQgY2hlY2tlZCBvbmNlLgorICovCitzdGF0aWMg dm9pZAorcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJLyoKKwkgKiBUaGUgdmFsaWRh dGlvbiByZXF1aXJlcyBzeXN0ZW0gY2F0YWxvZyBhY2Nlc3MsIHNvIHRoZSBzZXNzaW9uIHN0YXRl CisJICogc2hvdWxkIGJlICJpbiB0cmFuc2FjdGlvbiIuCisJICovCisJQXNzZXJ0KElzVHJhbnNh Y3Rpb25TdGF0ZSgpKTsKKworCWlmICghbmVlZHNfdmFsaWRhdGlvbiB8fCAhc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKKworCS8qCisJICogUmVzZXQgdGhlIGZsYWcgYmVmb3JlIHdlIHN0YXJ0IHRo ZSB2YWxpZGF0aW9uLiAgSXQgY2FuIGJlIHNldCBhZ2FpbgorCSAqIGJ5IGNvbmN1cnJlbnRseSBp bmNvbWluZyBzaW52YWwgbWVzc2FnZXMuCisJICovCisJbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNl OworCisJZWxvZyhERUJVRzEsICJlZmZlY3RpdmUgY2FsbCBvZiB2YWxpZGF0ZV9hbGxfc2Vzc2lv bl92YXJpYWJsZXMoKSIpOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7 CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAh PSBOVUxMKQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkKKwkJeworCQkJaWYgKHN2YXItPmRy b3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJCXsKKwkJCQkvKiB0cnkgYWdhaW4gaW4g dGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KKwkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ CQljb250aW51ZTsKKwkJCX0KKworCQkJaWYgKCFpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2 YXIpKQorCQkJeworCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CisKKwkJCQlmcmVlX3Nl c3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs ICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCXN2YXIgPSBOVUxMOworCQkJfQorCQkJ ZWxzZQorCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJfQorCX0KK30KKwogLyoKICAqIElu aXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTE5Niw2ICszMDks OCBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKQEAgLTMxOSwyMiArNDM0LDQyIEBAIGdldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJ eworCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov CisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVw ZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRl ZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhh c2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZm b3VuZCk7CiAKIAlpZiAoZm91bmQpCiAJeworCQkvKgorCQkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJs ZSBjb3VsZCBoYXZlIGJlZW4gZHJvcHBlZCBieSBhIERST1AgVkFSSUFCTEUKKwkJICogc3RhdGVt ZW50IGluIGEgc3VidHJhbnNhY3Rpb24gdGhhdCB3YXMgbGF0ZXIgcm9sbGVkIGJhY2ssIHdoaWNo CisJCSAqIG1lYW5zIHRoYXQgd2UgbWF5IGhhdmUgdG8gd29yayB3aXRoIHRoZSBkYXRhIG9mIGEg dmFyaWFibGUgbWFya2VkCisJCSAqIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlz X3ZhbGlkKQogCQl7CiAJCQkvKgotCQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBt ZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUKLQkJCSAqIHZhbGlkLCBidXQgd2Ug aGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqIFdlIGhhdmUgdG8g Y2hlY2sgdGhlIHN5c3RlbSBjYXRhbG9nIHRvIHNlZSBpZiB0aGUgdmFyaWFibGUgaXMKKwkJCSAq IHN0aWxsIHZhbGlkLCBldmVuIGlmIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlIHNldCBpdCB0byBp bnZhbGlkLgorCQkJICoKKwkJCSAqIFRoZSB2YXJpYWJsZSBtdXN0IGJlIHZhbGlkYXRlZCBiZWZv cmUgaXQgaXMgYWNjZXNzZWQuICBUaGUgb2lkCisJCQkgKiBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgdGhlIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBhbHJlYWR5CisJCQkgKiBsb2NrZWQs IGFuZCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdvdWxkIHJlbW92ZQorCQkJ ICogdmFyaWFibGVzIGRyb3BwZWQgYnkgb3RoZXIgdHJhbnNhY3Rpb25zLgogCQkJICovCiAJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKIAkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CiAJCQllbHNlCi0JCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLwotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZh cmlhYmxlICV1IiwgdmFyaWQpOwogCQl9CiAJfQogCWVsc2UKQEAgLTM5NSw2ICs1MzAsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIGZyZWUgdGhlIG1l bW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3ZlIHN0ZXAg aW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4 aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZh cnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGE4Y2E0M2M4N2FmLi5kM2NjNzliNTYw OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEs OCBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZp cm9ubWVudC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3Mo T2lkIHZhcmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFi bGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjBhNTU3OWRjN2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMTEwIEBACitQ YXJzZWQgdGVzdCBzcGVjIHdpdGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlvbjog bGV0IHZhbCBkcm9wIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFs OiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgZHJv cDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitFUlJPUjog IGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBs ZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0 ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0 ZXAgczE6IEJFR0lOOworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK3N0 ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZh bDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRi ZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1YmxpY3xt eXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsK K3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAgZGJnOiBT RUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK K3NjaGVtYXxuYW1lfHJlbW92ZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0KKyAgICAgIHwgICAgfHQg ICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQor ICAgICAKKygxIHJvdykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcg ZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7Citz dGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitz dGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0r LS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9w OiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0t LSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9M TEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBs ZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBD UkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAn dGVzdCc7CitzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15 dmFyNCBBUyB0ZXh0Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9w NDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFy MzsKK3N0ZXAgaW52YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFi bGU7Cis/Y29sdW1uPworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2Fy ZDogRElTQ0FSRCBWQVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VM RUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAK KygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZSBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggMTQzMTA5 YWE0ZGEuLjc0NTM2ODVkMDQ2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUK QEAgLTExNSwzICsxMTUsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDog c2VyaWFsaXphYmxlLXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDog bG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5jODY0ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBU ZXN0IHNlc3Npb24gdmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAK K3sKKyAgICBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sK KyAgICBEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3Rl cCBzMQkJeyBCRUdJTjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAg dmFsCXsgU0VMRUNUIG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJl bW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNL OyB9CisKK3Nlc3Npb24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9Citz dGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9u IHMzCitzdGVwIHMzCQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVz dCc7IH0KK3N0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQor c3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBW QVJJQUJMRSBteXZhcjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZS T00gcGdfZm9yZWlnbl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7 IH0KK3N0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBG Uk9NIHBnX3ZhcmlhYmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBW QVJJQUJMRSBteXZhcjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15 dmFyMzsgfQorCisjIENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBs ZWFkIHRvIGFuIGVycm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1 dCB3aXRoIGFuIGV4cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRy b3AgdmFsIHNyMQorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUg c2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRy b3AgY3JlYXRlIGRiZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZh cmlhYmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2Fj dGlvbiB0byBtYWtlIHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4K KyMgY2FsbGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0 YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3Ig RElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3Rl cmVkCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3Az IGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA3OWFjNDA3NjhmOC4uMjc4M2NhYTg0NDYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xNzI2LDMgKzE3MjYsMjIwIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CiAgICAgIDAKICgxIHJvdykKIAorLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxk IGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkg c2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorTEVUIHZhcjEgPSAnQWhv aic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8ICAgICAgdHlwbmFtZSAgICAgIHwgY2FuX3Nl bGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgdCAgICAgICAgICB8 IHQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92 ZWQ7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gdGhlIGNvbnRlbnQg b2YgdGhlIHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBhIHZhcmlhYmxlIGlzIGRyb3Bw ZWQKKy0tIGJ5IGFuIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IHZhcmNoYXI7CitMRVQgdmFyMSA9ICdBaG9qJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIx OworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRv ZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorUk9M TEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBB aG9qCisoMSByb3cpCisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZh cjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNo b3VsZCBiZSBvaywgcmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAx MDAKKygxIHJvdykKKworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAnQWhvaicK K1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQor ICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEw MAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBk YXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNhbl9z ZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCisgIERS T1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNv dW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5f c2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwg dHlwbmFtZSB8IGNhbl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAor KDEgcm93KQorCisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6 ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5P VCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludDsKK0xFVCB2 YXIxID0gMTA7CitMRVQgdmFyMiA9IDA7CitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIg c2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAor KDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJv dykKKworICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAK Ky0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5U IHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0t LS0KKyAgICAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBP SU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRv dWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAor LS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7Cisg IC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQor ICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitDT01NSVQ7 CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCiso MSByb3cpCisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBEUk9QIFZB UklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJB Q0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxLCB2YXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCmluZGV4IDI5NTQ3NTlhYWVkLi5hNjI0YWI4YjY3ZiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTIxNCwzICsxMjE0LDEyMyBAQCBESVND QVJEIFZBUklBQkxFUzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNo b3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2Yg YW55IHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KKworTEVUIHZhcjEg PSAnQWhvaic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNo b3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp IFdIRVJFIE5PVCByZW1vdmVkOworCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxk IGJlIHByZXNlcnZlZCB3aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRl ZCB0cmFuc2FjdGlvbgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIx ID0gJ0Fob2onOworQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgdmFyMTsKKworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBv aywgcmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywg cmVzdWx0ICdBaG9qJworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUs IHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJv CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCBy ZW1vdmVkOworCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQg dmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5f c2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50Owor TEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQgczE7Cisg IERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5v dGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsK KyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOwor ICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0g Zm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNF TEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZB UklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxF IHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2 YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFu b3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKK0NPTU1JVDsKKy0tIHNob3Vs ZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24K K0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFC TEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2 YXIyOwotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250212-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr4a19 RnJvbSAzMmZmNWFlZjU0YzhkOTVhMzAzOTZjYTBmYzM2NTMyMjMxN2VhMDYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIyXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDI0 NTZhMzQ1MmI5Li44MjU1ZjM2MGQyZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNTI3LDMgKzUyNyw5NSBAQCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsCiAKIAlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQorCisvKgorICogcGdfc2Vzc2lvbl92 YXJpYWJsZXMgLSBkZXNpZ25lZCBmb3IgdGVzdGluZworICoKKyAqIFRoaXMgaXMgYSBmdW5jdGlv biBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKKyAq IGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXMtaXMsIGFuZCBjYW4gdGhlcmVmb3JlIGRp c3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3BwZWQs IGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVk IGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdf RlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMg OAorCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZv LT5yZXN1bHRpbmZvOworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3Zh cjsKKworCQloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAo KHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJ CXsKKwkJCURhdHVtCQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJ Ym9vbAkJbnVsbHNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxl CXRwOworCQkJYm9vbAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMs IDAsIHNpemVvZih2YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7 CisKKwkJCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFs dWVzWzNdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qCisJCQkgKiBJ dCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhl CisJCQkgKiBjYXRhbG9nLCBidXQgbm90IHlldCBwdXJnZWQgZnJvbSB0aGUgaGFzaCB0YWJsZS4K KwkJCSAqLworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJ eworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHApOworCisJCQkJLyoKKwkJCQkgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQgYSB2 YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGFuZAorCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBhIG5l dyB2YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4gIFVzZQorCQkJCSAqIHRoZSBjYXRh bG9nIGluZm9ybWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICovCisJ CQkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJCQl7 CisJCQkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVlc1sy XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJCQkJ CXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+dHlw aWQpKTsKKwkJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2YWx1 ZXNbNl0gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFi bGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwg QUNMX1NFTEVDVCkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xHZXRE YXR1bSgKKwkJCQkJCQkJCQkJIG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2 YXItPnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9PSBB Q0xDSEVDS19PSyk7CisKKwkJCQkJdmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRjaGlu ZyBjYXRhbG9nIGVudHJ5LCByZXR1cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lzX3Zh bGlkKQorCQkJeworCQkJCW51bGxzWzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7CisJ CQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVlKTsK KwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJCQl0 dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2 YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCAxNjJjZDA0ODk2NS4uZmZmYzIxYWY0MjAgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtMTI0ODcsNCArMTI0ODcsMTIgQEAKICAgcHJvYXJndHlwZXMgPT4g J2ludDQnLAogICBwcm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1fY29tbW9uJyB9LAogCisjIFNlc3Np b24gdmFyaWFibGVzIHN1cHBvcnQKK3sgb2lkID0+ICc4NDg4JywgZGVzY3IgPT4gJ2xpc3Qgb2Yg dXNlZCBzZXNzaW9uIHZhcmlhYmxlcycsCisgIHByb25hbWUgPT4gJ3BnX3Nlc3Npb25fdmFyaWFi bGVzJywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcsCisgIHByb3ZvbGF0aWxl ID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAorICBw cm9hcmd0eXBlcyA9PiAnJywgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsdGV4dCx0ZXh0LG9pZCx0 ZXh0LGJvb2wsYm9vbCxib29sfScsCisgIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxv fScsCisgIHByb2FyZ25hbWVzID0+ICd7dmFyaWQsc2NoZW1hLG5hbWUsdHlwaWQsdHlwbmFtZSxy ZW1vdmVkLGNhbl9zZWxlY3QsY2FuX3VwZGF0ZX0nLAorICBwcm9zcmMgPT4gJ3BnX3Nlc3Npb25f dmFyaWFibGVzJyB9LAogXQotLSAKMi40OC4xCgo= --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20250212-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr4i20 RnJvbSBjNWFhYjlhM2Y0NzA0ZTc5MDQ3MTBkOWI2MDhjZTI4NGZmZDI1NDNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjJdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjEgKwogZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogZG9jL3Ny Yy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICA1ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMvc2dt bC9yZWYvbGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAgOTYgKysKIGRvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jICAgICAgICAgICAgICAgfCAgMjg5ICsrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDUyOSArKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAgMzIgKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA2NiArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAxNzIgKysrCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgMzYgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDE1NiArKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgICAzMyArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI3MiArKystCiBzcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgIDM5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyMjMgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9tZXJnZS5jICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdGNv cC9kZXN0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNDYgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMv Zm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgICAxMCArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMzAgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaCAgICAgIHwgICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMTcgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmggICAgICAgICAgICAgICAgIHwgICAxNCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAgMTQgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmggICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAg ICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCAgICB8IDEyMzIgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA4ODMgKysrKysrKysrKysrCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICA1ICsKIDU5IGZpbGVz IGNoYW5nZWQsIDQ0NjcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA3YmE5MWIxZjRiMS4uNGY1MDIyNzRiZmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05 ODEwLDYgKzk4MTAsMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX2xzbjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIExTTiBvZiB0aGUgdHJh bnNhY3Rpb24gd2hlcmUgdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxk Pm9pZDwvc3RydWN0ZmllbGQ+IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1lIHVuaXF1ZQorICAg ICAgIGlkZW50aWZpZXIgKDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiBhbG9uZSBpcyBu b3QgZW5vdWdoLCBzaW5jZQorICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBjYW4gZ2V0IHJldXNl ZCkuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0cnVjdGZpZWxkPiA8 dHlwZT5uYW1lPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGVkZmI3ZGIyNGZjLi41ZTY3MWQ1YmU0ZCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtNTM4NCw2ICs1Mzg0LDY3IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3Vy ZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICBUaGUgc2Vz c2lvbiB2YXJpYWJsZSBob2xkcyB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMgdmFsdWUg aXMgcHJpdmF0ZQogICAgIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUg c2Vzc2lvbiBlbmRzLgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNldCB3aXRoIHRoZSBTUUwgc3RhdGVtZW50CisgICAgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPi4gIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgY2Fu IGJlIHJldHJpZXZlZAorICAgIHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQgPGNvbW1hbmQ+U0VMRUNU PC9jb21tYW5kPi4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRh dGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIxOworPC9wcm9ncmFtbGlz dGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBwdWJs aWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg cHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQVUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lkID0g KFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJFIHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOworU0VM RUNUIGN1cnJlbnRfdXNlcl9pZDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8g dGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZworICAgIGEgdmFyaWFibGUncyB2YWx1ZSBy ZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCisg ICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2lu ZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlh YmxlcyBhcmUgbm90IHRyYW5zYWN0aW9uYWw6CisgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUg dmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKKyAgICBi ZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFy aWFibGVzIGluCisgICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMg dGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVudCwgYnV0CisgICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0 aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUgY29udGVudCBvZgorICAgIHRlbXBv cmFyeSB0YWJsZXMpLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbnNpZGUgYSBxdWVy eSBvciBhbiBleHByZXNzaW9uLCBhIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlCisgICAgPHF1b3Rl PnNoYWRvd2VkPC9xdW90ZT4gYnkgYSBjb2x1bW4gd2l0aCB0aGUgc2FtZSBuYW1lLiAgU2ltaWxh cmx5LCB0aGUKKyAgICBuYW1lIG9mIGEgZnVuY3Rpb24gb3IgcHJvY2VkdXJlIGFyZ3VtZW50IG9y IGEgUEwvcGdTUUwgdmFyaWFibGUgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9InBscGdzcWwtZGVj bGFyYXRpb25zIi8+KSBjYW4gc2hhZG93IGEgc2Vzc2lvbiB2YXJpYWJsZQorICAgIGluIHRoZSBy b3V0aW5lJ3MgYm9keS4gIFN1Y2ggY29sbGlzaW9ucyBvZiBpZGVudGlmaWVycyBjYW4gYmUgcmVz b2x2ZWQKKyAgICBieSB1c2luZyBxdWFsaWZpZWQgaWRlbnRpZmllcnM6IFNlc3Npb24gdmFyaWFi bGVzIGNhbiBiZSBxdWFsaWZpZWQgd2l0aAorICAgIHRoZSBzY2hlbWEgbmFtZSwgY29sdW1ucyBj YW4gdXNlIHRhYmxlIGFsaWFzZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UKKyAgICBibG9j ayBsYWJlbHMsIGFuZCByb3V0aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0aW5lIG5hbWUu Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgbmFtZSBBUyB0ZXh0OworTEVUIG5h bWUgPSAnSm9obic7CisKK0NSRUFURSBUQUJMRSBmb28obmFtZSB0ZXh0KTsKK0lOU0VSVCBJTlRP IGZvbyBWQUxVRVMoJ0FsaWNlJyk7CisKKy0tIHZhcmlhYmxlIG5hbWUgaXMgc2hhZG93ZWQKK1NF TEVDVCBuYW1lIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgd2hpY2ggcmV0dXJu czoKKworPHByb2dyYW1saXN0aW5nPgorIG5hbWUKKy0tLS0tLS0KKyBBbGljZQorPC9wcm9ncmFt bGlzdGluZz4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVy cyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1 bmMuc2dtbAppbmRleCA0YTQ4NDAzNGMwZi4uMGNhY2Q5MmUxNjUgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjU1OTUs OCArMjU1OTUsOCBAQCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdt eWZ1bmMoaW50LCB0ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgICd0JyBmb3IgPGxpdGVyYWw+ VEFCTEVTUEFDRTwvbGl0ZXJhbD4sCiAgICAgICAgICdGJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBE QVRBIFdSQVBQRVI8L2xpdGVyYWw+LAogICAgICAgICAnUycgZm9yIDxsaXRlcmFsPkZPUkVJR04g U0VSVkVSPC9saXRlcmFsPiwKLSAgICAgICAgb3IKLSAgICAgICAgJ1QnIGZvciA8bGl0ZXJhbD5U WVBFPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5ET01BSU48L2xpdGVyYWw+LgorICAgICAgICAnVCcg Zm9yIDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4g b3IKKyAgICAgICAgJ1YnIGZvciA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPi4K ICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4 IGI5MjFmNWEzMzM5Li44MTk4OGYyZGZlYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKQEAgLTE2NzUsOCArMTY3 NSw5IEBACiAgICAgPHBhcmE+CiAgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3QgdGhh dCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcwogICAgICB2YWx1ZSBpcyBw cml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBl bmRzLgotICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBj b250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCi0gICAgIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2Ug b2JqZWN0cy4KKyAgICAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUg aXMgbnVsbC4gIFJlYWQgb3Igd3JpdGUgYWNjZXNzCisgICAgIHRvIHNlc3Npb24gdmFyaWFibGVz IGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywgc2ltaWxhciB0byBvdGhlciBkYXRhYmFzZQor ICAgICBvYmplY3RzLgogICAgIDwvcGFyYT4KICAgICA8cGFyYT4KICAgICAgRm9yIG1vcmUgaW5m b3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wYXJh bGxlbC5zZ21sCmluZGV4IDFjZTlhYmY4NmY1Li42ODNkZWRlNmFkYyAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwK QEAgLTUxNSw2ICs1MTUsMTIgQEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIHBnYmVuY2hfYWNjb3Vu dHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7CiAgICAgICAgIFBsYW4gbm9kZXMgdGhhdCByZWZl cmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFsPlN1YlBsYW48L2xpdGVyYWw+LgogICAgICAgPC9w YXJhPgogICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICAgUGxhbiBub2RlcyB0aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KICAgPC9pdGVtaXplZGxpc3Q+CiAKICA8c2VjdDIgaWQ9InBh cmFsbGVsLWxhYmVsaW5nIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IDc4ZTQ5ODMxMzliLi5iZmJmZjlhYjc0 ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sCkBAIC02MDM0LDYgKzYwMzQsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTVFJJQ1QgSU1NVVRBQkxFOwogPC9wcm9ncmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8 L3NlY3QzPgorCisgICA8c2VjdDMgaWQ9InBscGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxl cyI+CisgICAgPHRpdGxlPjxjb21tYW5kPlBhY2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwv Y29tbWFuZD48L3RpdGxlPgorCisgICAgPHBhcmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwv cGdTUUw8L2FwcGxpY2F0aW9uPiBsYW5ndWFnZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0 aGVyZWZvcmUgbm8gcGFja2FnZSB2YXJpYWJsZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAg IFlvdSBjYW4gY29uc2lkZXIgdHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNj aGVtYSBpbgorICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFj a2FnZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVu Y3Rpb25zIGFuZCBwcm9jZWR1cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2 YXJpYWJsZXMgY291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0 IHNjaGVtYS4KKyAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMi Lz4pLgorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlk PSJwbHBnc3FsLXBvcnRpbmctYXBwZW5kaXgiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDJm NjdkZTNlMjFiLi5jYzNiZDVhYjU0MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxm aWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtMTU4LDYg KzE1OCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRo aXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgZ3JhbnQgICAgICAgICAgICAgIFNZU1RFTSAiZ3JhbnQu c2dtbCI+CiA8IUVOVElUWSBpbXBvcnRGb3JlaWduU2NoZW1hIFNZU1RFTSAiaW1wb3J0X2ZvcmVp Z25fc2NoZW1hLnNnbWwiPgogPCFFTlRJVFkgaW5zZXJ0ICAgICAgICAgICAgIFNZU1RFTSAiaW5z ZXJ0LnNnbWwiPgorPCFFTlRJVFkgbGV0ICAgICAgICAgICAgICAgIFNZU1RFTSAibGV0LnNnbWwi PgogPCFFTlRJVFkgbGlzdGVuICAgICAgICAgICAgIFNZU1RFTSAibGlzdGVuLnNnbWwiPgogPCFF TlRJVFkgbG9hZCAgICAgICAgICAgICAgIFNZU1RFTSAibG9hZC5zZ21sIj4KIDwhRU5USVRZIGxv Y2sgICAgICAgICAgICAgICBTWVNURU0gImxvY2suc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zh cmlhYmxlLnNnbWwKaW5kZXggOTZkMjU4NjQyM2UuLjIyMWE2OTk0NjliIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0xNzMsNiArMTczLDcgQEAgQUxURVIgVkFSSUFCTEUg Ym9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CiAg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxp c3Q+CiAgPC9yZWZzZWN0MT4KIDwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFi bGUuc2dtbAppbmRleCA2ZTk4OGYyZTQ3Mi4uY2Q5ZmY2Mzk3NWEgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMTIwLDkgKzEyMCwxMSBAQCBDUkVBVEUgVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYgogICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgIDxwYXJhPgotICAgQ3JlYXRl IGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKyAgIENy ZWF0ZSBhIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD4gb2YgZGF0YSB0 eXBlIGRhdGU6CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRl OworTEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKIDwvcHJvZ3JhbWxpc3Rp bmc+CiAgIDwvcGFyYT4KIApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGRhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0 MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwYi4uNjc5 ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0xMTEsNiArMTEx LDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgog ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4K KyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBs ZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9sZXQu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjAwZjliZWE5MWZlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk2IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVm L2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9 InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWxldCI+CisgIDxwcmltYXJ5PkxFVDwv cHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Np b24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+Y2hhbmdpbmc8L3NlY29uZGFyeT4K KyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5MRVQ8L3JlZmVu dHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FM IC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJl Zm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+Y2hhbmdl IGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4K KworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0xFVCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+ID0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4KKzwvc3lub3Bz aXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0 aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNv bW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgc2Vzc2lvbgorICAgdmFyaWFi bGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJs ZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3JlcGxh Y2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQW4gYXJi aXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJlIG9mIGEgZGF0YSB0eXBl IHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRoZSBzZXNzaW9uIHZhcmlh YmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOworTEVUIG15dmFyID0gMTA7CitMRVQgbXl2 YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgor CisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gaXMgYSA8cHJvZHVjdG5h bWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisg IDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCAyNTU3OGYzOTQ2Yy4uMTNlNGFkYzVk ZjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4Niw2ICsxODYsNyBAQAogICAgJmdyYW50OwogICAg JmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0ZW47 CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9k ZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCA5ZTBm NjQ4Yjc0Zi4uOTBjOWU4YmIyNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0xODY0 LDYgKzE4NjQsMTEgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJ ewogCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAorCQkvKiBhIHZhcmlhYmxl IHBhcmFtZXRlciBkZXBlbmRzIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJYWRkX29iamVjdF9hZGRyZXNzKFZh cmlhYmxlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdmFyaWQsIDAsCisJCQkJCQkJICAgY29udGV4 dC0+YWRkcnMpOworCiAJCS8qIEEgcGFyYW1ldGVyIG11c3QgZGVwZW5kIG9uIHRoZSBwYXJhbWV0 ZXIncyBkYXRhdHlwZSAqLwogCQlhZGRfb2JqZWN0X2FkZHJlc3MoVHlwZVJlbGF0aW9uSWQsIHBh cmFtLT5wYXJhbXR5cGUsIDAsCiAJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYwppbmRleCA0MzA3Y2FkMTVjNy4uYmVhZmVlMmEzNDEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYwpAQCAtMzQ5Nyw2ICszNDk3LDI5NSBAQCBOYW1lc0Zyb21MaXN0KExpc3QgKm5h bWVzKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qIC0tLS0tCisgKiBJZGVudGlmeVZhcmlhYmxl IC0gdHJ5IHRvIGZpbmQgYSB2YXJpYWJsZSBmcm9tIGEgbGlzdCBvZiBpZGVudGlmaWVycworICoK KyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgdmFyaWFibGUgZm91bmQsIG9yIEludmFsaWRPaWQu CisgKgorICogIm5hbWVzIiBpcyBhIGxpc3Qgb2YgdXAgdG8gZm91ciBpZGVudGlmaWVyczsgcG9z c2libGUgbWVhbmluZ3MgYXJlOgorICogLSB2YXJpYWJsZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFy Y2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlCisgKiAtIHZhcmlhYmxlLmF0dHJpYnV0ZSAg KHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxlLmF0dHJp YnV0ZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUKKyAqIC0gZGF0YWJhc2Uuc2NoZW1h LnZhcmlhYmxlLmF0dHJpYnV0ZQorICoKKyAqIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgd2F5 IHRvIGlkZW50aWZ5IGEgdmFyaWFibGUsICJub3RfdW5pcXVlIiB3aWxsIGJlCisgKiBzZXQgdG8g dHJ1ZS4KKyAqCisgKiBVbmxlc3MgIm5vZXJyb3IiIGlzIHRydWUsIGFuIGVycm9yIGlzIHJhaXNl ZCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIGZvdXIKKyAqICBpZGVudGlmaWVycyBpbiB0aGUgbGlz dCwgb3IgaWYgdGhlIG5hbWVkIGRhdGFiYXNlIGlzIG5vdCB0aGUgY3VycmVudCBvbmUuCisgKiBU aGlzIGlzIHVzZWZ1bCBpZiB3ZSB3YW50IHRvIGlkZW50aWZ5IGEgc2hhZG93ZWQgdmFyaWFibGUu CisgKgorICogSWYgYW4gYXR0cmlidXRlIGlzIGlkZW50aWZpZWQsIGl0IGlzIHN0b3JlZCBpbiAi YXR0cm5hbWUiLCBvdGhlcndpc2UgdGhlCisgKiBwYXJhbWV0ZXIgaXMgc2V0IHRvIE5VTEwuCisg KgorICogVGhlIGlkZW50aWZpZWQgc2Vzc2lvbiB2YXJpYWJsZSB3aWxsIGJlIGxvY2tlZCB3aXRo IGFuIEFjY2Vzc1NoYXJlTG9jay4KKyAqIC0tLS0tCisgKi8KK09pZAorSWRlbnRpZnlWYXJpYWJs ZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpub3RfdW5pcXVlLCBib29sIG5v ZXJyb3IpCit7CisJT2lkCQkJdmFyaWQgPSBJbnZhbGlkT2lkOworCU9pZAkJCW9sZF92YXJpZCA9 IEludmFsaWRPaWQ7CisJdWludDY0CQlpbnZhbF9jb3VudDsKKwlib29sCQlyZXRyeSA9IGZhbHNl OworCisJLyoKKwkgKiBEREwgb3BlcmF0aW9ucyBjYW4gY2hhbmdlIHRoZSByZXN1bHRzIG9mIGEg bmFtZSBsb29rdXAuICBTaW5jZSBhbGwgc3VjaAorCSAqIG9wZXJhdGlvbnMgd2lsbCBnZW5lcmF0 ZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMsIHdlIGtlZXAgdHJhY2sgb2YKKwkgKiB3aGV0aGVyIGFu eSBzdWNoIG1lc3NhZ2VzIHNob3cgdXAgd2hpbGUgd2UncmUgcGVyZm9ybWluZyB0aGUgb3BlcmF0 aW9uLAorCSAqIGFuZCByZXRyeSB1bnRpbCBlaXRoZXIgKDEpIG5vIG1vcmUgaW52YWxpZGF0aW9u IG1lc3NhZ2VzIHNob3cgdXAgb3IgKDIpCisJICogdGhlIGFuc3dlciBkb2Vzbid0IGNoYW5nZS4K KwkgKi8KKwlmb3IgKDs7KQorCXsKKwkJTm9kZQkgICAqZmllbGQxID0gTlVMTDsKKwkJTm9kZQkg ICAqZmllbGQyID0gTlVMTDsKKwkJTm9kZQkgICAqZmllbGQzID0gTlVMTDsKKwkJTm9kZQkgICAq ZmllbGQ0ID0gTlVMTDsKKwkJY2hhcgkgICAqYSA9IE5VTEw7CisJCWNoYXIJICAgKmIgPSBOVUxM OworCQljaGFyCSAgICpjID0gTlVMTDsKKwkJY2hhcgkgICAqZCA9IE5VTEw7CisJCU9pZAkJCXZh cm9pZF93aXRob3V0X2F0dHIgPSBJbnZhbGlkT2lkOworCQlPaWQJCQl2YXJvaWRfd2l0aF9hdHRy ID0gSW52YWxpZE9pZDsKKworCQkqbm90X3VuaXF1ZSA9IGZhbHNlOworCQkqYXR0cm5hbWUgPSBO VUxMOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisKKwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZh bGlkTWVzc2FnZUNvdW50ZXI7CisKKwkJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJCXsK KwkJCWNhc2UgMToKKwkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisKKwkJCQlBc3NlcnQo SXNBKGZpZWxkMSwgU3RyaW5nKSk7CisKKwkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKE5VTEws IHN0clZhbChmaWVsZDEpLCB0cnVlKTsKKwkJCQlicmVhazsKKworCQkJY2FzZSAyOgorCQkJCWZp ZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwor CQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQlhID0gc3RyVmFsKGZpZWxkMSk7 CisKKwkJCQlpZiAoSXNBKGZpZWxkMiwgU3RyaW5nKSkKKwkJCQl7CisJCQkJCS8qIHdoZW4gYm90 aCBmaWVsZHMgYXJlIG9mIHN0cmluZyB0eXBlICovCisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsK KworCQkJCQkvKgorCQkJCQkgKiBhLmIgY2FuIG1lYW4gInNjaGVtYSIuInZhcmlhYmxlIiBvcgor CQkJCQkgKiAidmFyaWFibGUiLiJhdHRyaWJ1dGUiLiAgQ2hlY2sgYm90aCB2YXJpYW50cywgYW5k CisJCQkJCSAqIHJldHVybnMgSW52YWxpZE9pZCB3aXRoIG5vdF91bmlxdWUgZmxhZywgd2hlbiBi b3RoCisJCQkJCSAqIGludGVycHJldGF0aW9ucyBhcmUgcG9zc2libGUuCisJCQkJCSAqLworCQkJ CQl2YXJvaWRfd2l0aG91dF9hdHRyID0gTG9va3VwVmFyaWFibGUoYSwgYiwgdHJ1ZSk7CisJCQkJ CXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShOVUxMLCBhLCB0cnVlKTsKKwkJCQl9 CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJLyogdGhlIGxhc3QgZmllbGQgb2YgbGlzdCBjYW4gYmUg c3RhciB0b28gKi8KKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIEFfU3RhcikpOworCisJCQkJCS8q CisJCQkJCSAqIFRoZSBzeW50YXggaWRlbnQuKiBpcyB1c2VkIG9ubHkgYnkgcmVsYXRpb24gYWxp YXNlcywKKwkJCQkJICogYW5kIHRoZW4gdGhpcyBpZGVudGlmaWVyIGNhbm5vdCBiZSBhIHJlZmVy ZW5jZSB0bworCQkJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCQkgKi8KKwkJCQkJcmV0dXJu IEludmFsaWRPaWQ7CisJCQkJfQorCisJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRf YXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSpub3Rf dW5pcXVlID0gdHJ1ZTsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0K KwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJCXsKKwkJ CQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJ c1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKmF0dHJuYW1lID0gYjsKKwkJ CQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2Fz ZSAzOgorCQkJCXsKKwkJCQkJYm9vbAkJZmllbGQxX2lzX2NhdGFsb2cgPSBmYWxzZTsKKworCQkJ CQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMp OworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQx LCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykpOworCisJCQkJCWEg PSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCWlmIChJ c0EoZmllbGQzLCBTdHJpbmcpKQorCQkJCQl7CisJCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisK KwkJCQkJCS8qCisJCQkJCQkgKiBhLmIuYyBjYW4gbWVhbiBjYXRhbG9nLnNjaGVtYS52YXJpYWJs ZSBvcgorCQkJCQkJICogc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZS4KKwkJCQkJCSAqCisJCQkJ CQkgKiBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQgc2V0IG5vdF91bmlxdWUgZmxhZywgd2hlbgor CQkJCQkJICogYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgorCQkJCQkJICoKKwkJ CQkJCSAqIFdoZW4gdGhpcmQgbm9kZSBpcyBzdGFyLCBvbmx5IHBvc3NpYmxlCisJCQkJCQkgKiBp bnRlcnByZXRhdGlvbiBpcyBzY2hlbWEudmFyaWFibGUuKiwgYnV0IHRoaXMKKwkJCQkJCSAqIHBh dHRlcm4gaXMgbm90IHN1cHBvcnRlZCBub3cuCisJCQkJCQkgKi8KKwkJCQkJCXZhcm9pZF93aXRo X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKworCQkJCQkJLyoKKwkJCQkJCSAq IGNoZWNrIHBhdHRlcm4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb25seSB3aGVuCisJCQkJCQkg KiB0aGVyZSBpcyBwb3NzaWJpbGl0eSB0byBzdWNjZXNzLgorCQkJCQkJICovCisJCQkJCQlpZiAo c3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpID09IDApCisJCQkJCQl7 CisJCQkJCQkJZmllbGQxX2lzX2NhdGFsb2cgPSB0cnVlOworCQkJCQkJCXZhcm9pZF93aXRob3V0 X2F0dHIgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJ CQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQzLCBBX1N0YXIpKTsKKwkJCQkJ CXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lk X3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJewor CQkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9h dHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0 cikpCisJCQkJCXsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQkJfQor CQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJ CQkqYXR0cm5hbWUgPSBjOworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCQl9 CisKKwkJCQkJLyoKKwkJCQkJICogV2hlbiB3ZSBkaWRuJ3QgZmluZCB2YXJpYWJsZSwgd2UgY2Fu ICh3aGVuIGl0IGlzCisJCQkJCSAqIGFsbG93ZWQpIHJhaXNlIGNyb3NzLWRhdGFiYXNlIHJlZmVy ZW5jZSBlcnJvci4KKwkJCQkJICovCisJCQkJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkgJiYgIW5v ZXJyb3IgJiYgIWZpZWxkMV9pc19jYXRhbG9nKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkgZXJy bXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwK KwkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQl9CisJCQkJYnJlYWs7 CisKKwkJCWNhc2UgNDoKKwkJCQl7CisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJ CQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChuYW1lcyk7 CisJCQkJCWZpZWxkNCA9IGxmb3VydGgobmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQx LCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIsIFN0cmluZykpOworCQkJCQlBc3Nl cnQoSXNBKGZpZWxkMywgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJ CQliID0gc3RyVmFsKGZpZWxkMik7CisJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkv KgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsICJhIiBpcyB1c2VkIGFzIGNhdGFsb2cgbmFtZSAtIGNo ZWNrIGl0LgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0cmNtcChhLCBnZXRfZGF0YWJhc2VfbmFtZShN eURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCQl7CisJCQkJCQlpZiAoIW5vZXJyb3IpCisJCQkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJl IG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVz KSkpKTsKKwkJCQkJfQorCisJCQkJCWlmIChJc0EoZmllbGQ0LCBTdHJpbmcpKQorCQkJCQl7CisJ CQkJCQlkID0gc3RyVmFsKGZpZWxkNCk7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJ CQlBc3NlcnQoSXNBKGZpZWxkNCwgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsK KwkJCQkJfQorCisJCQkJCSphdHRybmFtZSA9IGQ7CisJCQkJCXZhcmlkID0gTG9va3VwVmFyaWFi bGUoYiwgYywgdHJ1ZSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlkZWZhdWx0OgorCQkJCWlm ICghbm9lcnJvcikKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCQkJIGVycm1zZygiaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUg KHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICVzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco bmFtZXMpKSkpOworCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQl9CisKKwkJLyoKKwkJICogSWYs IHVwb24gcmV0cnksIHdlIGdldCBiYWNrIHRoZSBzYW1lIE9JRCB3ZSBkaWQgbGFzdCB0aW1lLCB0 aGVuIHRoZQorCQkgKiBpbnZhbGlkYXRpb24gbWVzc2FnZXMgd2UgcHJvY2Vzc2VkIGRpZCBub3Qg Y2hhbmdlIHRoZSBmaW5hbCBhbnN3ZXIuCisJCSAqIFNvIHdlJ3JlIGRvbmUuCisJCSAqCisJCSAq IElmIHdlIGdvdCBhIGRpZmZlcmVudCBPSUQsIHdlJ3ZlIGxvY2tlZCB0aGUgdmFyaWFibGUgdGhh dCB1c2VkIHRvCisJCSAqIGhhdmUgdGhpcyBuYW1lIHJhdGhlciB0aGFuIHRoZSBvbmUgdGhhdCBk b2VzIG5vdy4gIFNvIHJlbGVhc2UgdGhlCisJCSAqIGxvY2suCisJCSAqLworCQlpZiAocmV0cnkp CisJCXsKKwkJCWlmIChvbGRfdmFyaWQgPT0gdmFyaWQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChP aWRJc1ZhbGlkKG9sZF92YXJpZCkpCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVS ZWxhdGlvbklkLCBvbGRfdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKworCQkvKgor CQkgKiBMb2NrIHRoZSB2YXJpYWJsZS4gIFRoaXMgd2lsbCBhbHNvIGFjY2VwdCBhbnkgcGVuZGlu ZyBpbnZhbGlkYXRpb24KKwkJICogbWVzc2FnZXMuICBJZiB3ZSBnb3QgYmFjayBJbnZhbGlkT2lk LCBpbmRpY2F0aW5nIG5vdCBmb3VuZCwgdGhlbgorCQkgKiB0aGVyZSdzIG5vdGhpbmcgdG8gbG9j aywgYnV0IHdlIGFjY2VwdCBpbnZhbGlkYXRpb24gbWVzc2FnZXMKKwkJICogYW55d2F5LCB0byBm bHVzaCBhbnkgbmVnYXRpdmUgY2F0Y2FjaGUgZW50cmllcyB0aGF0IG1heSBiZQorCQkgKiBsaW5n ZXJpbmcuCisJCSAqLworCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQkJQWNjZXB0SW52YWxp ZGF0aW9uTWVzc2FnZXMoKTsKKwkJZWxzZQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJLyoKKwkJICogSWYg bm8gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2VyZSBwcm9jZXNzZWQsIHdlJ3JlIGRvbmUhCisJCSAq LworCQlpZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyKQorCQkJ YnJlYWs7CisKKwkJcmV0cnkgPSB0cnVlOworCQlvbGRfdmFyaWQgPSB2YXJpZDsKKwkJdmFyaWQg PSBJbnZhbGlkT2lkOworCX0KKworCXJldHVybiB2YXJpZDsKK30KKwogLyoKICAqIERlY29uc3Ry dWN0UXVhbGlmaWVkTmFtZQogICoJCUdpdmVuIGEgcG9zc2libHktcXVhbGlmaWVkIG5hbWUgZXhw cmVzc2VkIGFzIGEgbGlzdCBvZiBTdHJpbmcgbm9kZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggMjlkOTY3YTJkNWIuLmJiNDQ1ZTk0MzRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIK ICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5o IgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgi CiAKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJO YW1lLApAQCAtMTAxLDYgKzEwMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJO YW1lLAogCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElk LCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmNyZWF0ZV9sc24gLSAxXSA9IExTTkdldERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7 CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2 YXJuYW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9i amVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmls ZQppbmRleCA0OGY3MzQ4ZjkxYy4uMWNmYWVjYTUxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBA IC01MCw2ICs1MCw3IEBAIE9CSlMgPSBcCiAJc2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwK IAlzZXF1ZW5jZS5vIFwKKwlzZXNzaW9uX3ZhcmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlz dWJzY3JpcHRpb25jbWRzLm8gXAogCXRhYmxlY21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQKaW5kZXggZWYwZDQwN2EzODMuLmNlMTYxOWUzMDg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5i dWlsZApAQCAtMzgsNiArMzgsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hl bWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycsCiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25f dmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAog ICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDg5ODljMGM4ODJkLi45 MDJiMDIyZjljNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzM4LDYgKzMzOCwxNiBAQCBF dmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVtZW50ICpwc3Rt dCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9m IEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uCisJICogZXhlY3V0 b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0 LgorCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUg Y2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkpOworCiAJLyogUHJlcGFyZSB0aGUgZXhw cmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJM aXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNDU2YTM0NTJiOQot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwpAQCAtMCwwICsxLDUyOSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbl92 YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24vbWFuaXB1bGF0aW9uIGNv bW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJ REVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgi CisjaW5jbHVkZSAiZnVuY2FwaS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUg InJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNp bmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCisjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgorI2luY2x1 ZGUgInV0aWxzL2ludmFsLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVk ZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisg KiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdG9yZWQgaW4gdGhlIGJhY2tl bmQncyBwcml2YXRlIG1lbW9yeQorICogaW4gdGhlIGRlZGljYXRlZCBtZW1vcnkgY29udGV4dCBT VmFyaWFibGVNZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3JtYXQuCisgKiBUaGV5IGFyZSBzdG9y ZWQgaW4gdGhlICJzZXNzaW9udmFycyIgaGFzaCB0YWJsZSwgd2hvc2Uga2V5IGlzIHRoZSBPSUQg b2YgdGhlCisgKiB2YXJpYWJsZS4gIEhvd2V2ZXIsIHRoZSBPSUQgaXMgbm90IGdvb2QgZW5vdWdo IHRvIGlkZW50aWZ5IGEgc2Vzc2lvbgorICogdmFyaWFibGU6IGNvbmN1cnJlbnQgc2Vzc2lvbnMg Y291bGQgZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhbmQgY3JlYXRlIGEKKyAqIG5ldyBvbmUs IHdoaWNoIGNvdWxkIGJlIGFzc2lnbmVkIHRoZSBzYW1lIE9JRC4gIFRvIGVuc3VyZSB0aGF0IHRo ZSB2YWx1ZXMKKyAqIHN0b3JlZCBpbiBtZW1vcnkgYW5kIHRoZSBjYXRhbG9nIGRlZmluaXRpb24g bWF0Y2gsIHdlIGFsc28ga2VlcCB0cmFjayBvZgorICogdGhlICJjcmVhdGVfbHNuIi4gIEJlZm9y ZSBhbnkgYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSB2YWx1ZXMsIHdlIG5lZWQgdG8KKyAqIGNoZWNr IGlmIHRoZSBMU04gc3RvcmVkIGluIG1lbW9yeSBtYXRjaGVzIHRoZSBMU04gaW4gdGhlIGNhdGFs b2cuICBJZiB0aGVyZQorICogaXMgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBMU05zLCBvciBpZiB0 aGUgT0lEIGlzIG5vdCBwcmVzZW50IGluIHBnX3ZhcmlhYmxlCisgKiBhdCBhbGwsIHRoZSB2YWx1 ZSBzdG9yZWQgaW4gbWVtb3J5IGlzIHJlbGVhc2VkLgorICovCit0eXBlZGVmIHN0cnVjdCBTVmFy aWFibGVEYXRhCit7CisJT2lkCQkJdmFyaWQ7CQkJLyogcGdfdmFyaWFibGUgT0lEIG9mIHRoZSB2 YXJpYWJsZSAoaGFzaCBrZXkpICovCisJWExvZ1JlY1B0cgljcmVhdGVfbHNuOworCisJYm9vbAkJ aXNudWxsOworCURhdHVtCQl2YWx1ZTsKKworCU9pZAkJCXR5cGlkOworCWludDE2CQl0eXBsZW47 CisJYm9vbAkJdHlwYnl2YWw7CisKKwlib29sCQlpc19kb21haW47CisKKwkvKgorCSAqIGRvbWFp bl9jaGVja19leHRyYSBob2xkcyBjYWNoZWQgZG9tYWluIG1ldGFkYXRhLiAgVGhpcyAiZXh0cmEi IGlzCisJICogdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4dC4gIFdlIGRvIG5vdCBoYXZlIGFjY2Vz cyB0byB0aGF0IG1lbW9yeSBjb250ZXh0CisJICogZm9yIHNlc3Npb24gdmFyaWFibGVzLCBidXQg d2UgY2FuIHVzZSBUb3BUcmFuc2FjdGlvbkNvbnRleHQgaW5zdGVhZC4KKwkgKiBBIGZyZXNoIHZh bHVlIGlzIGZvcmNlZCB3aGVuIHdlIGRldGVjdCB3ZSBhcmUgaW4gYSBkaWZmZXJlbnQgdHJhbnNh Y3Rpb24KKwkgKiAodGhlIGxvY2FsIHRyYW5zYWN0aW9uIElEIGRpZmZlcnMgZnJvbSBkb21haW5f Y2hlY2tfZXh0cmFfbHhpZCkuCisJICovCisJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwor CUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKKworCS8qCisJICog U3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9uIGNhbiBiZSBvdXRkYXRlZCB3aGVuIHdl IHJlY2VpdmUgYQorCSAqIHNpbnZhbCBtZXNzYWdlLiAgV2UgdGhlbiBoYXZlIHRvIGNoZWNrIGlm IHRoZSBzdG9yZWQgZGF0YSBhcmUgc3RpbGwKKwkgKiB0cnVzdHdvcnRoeS4KKwkgKi8KKwlib29s CQlpc192YWxpZDsKKworCXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBz aW52YWwgbWVzc2FnZSAqLworfSBTVmFyaWFibGVEYXRhOworCit0eXBlZGVmIFNWYXJpYWJsZURh dGEgKlNWYXJpYWJsZTsKKworc3RhdGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFz aCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKworc3RhdGljIE1lbW9yeUNvbnRleHQg U1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CisKKy8qCisgKiBDYWxsYmFjayBmdW5jdGlv biBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlkYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitw Z192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIg aGFzaHZhbHVlKQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7 CisKKwllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2Fj aGVpZCwgaGFzaHZhbHVlKTsKKworCUFzc2VydChzZXNzaW9udmFycyk7CisKKwkvKgorCSAqIElm IHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNpZmllZCwgd2UgaGF2ZSB0byByZWNoZWNrIGFsbCBj dXJyZW50bHkKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiAgU2luY2Ugd2UgY2FuJ3QgdGVs bCB0aGUgZXhhY3Qgc2Vzc2lvbiB2YXJpYWJsZQorCSAqIGZyb20gaXRzIGhhc2h2YWx1ZSwgd2Ug aGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsIGl0ZW1zIGluIHRoZSBoYXNoIGJ1Y2tldC4KKwkgKi8K KwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCXdoaWxlICgoc3ZhciA9 IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlm IChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUgPT0gaGFzaHZhbHVlKQorCQl7CisJ CQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJfQorfQorCisvKgorICogUmVsZWFzZSBz dG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0YXRpYyB2b2lkCitmcmVlX3Nlc3Npb25f dmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7CisJLyogY2xlYW4gdGhlIGN1cnJlbnQg dmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCWlmICghc3Zhci0+dHlwYnl2YWwp CisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+dmFsdWUpKTsKKworCQlzdmFyLT5pc251 bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworfQorCisvKgorICog UmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBnX3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQg d2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29sCitp c19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQoreworCUhlYXBUdXBsZQl0 cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHN2YXItPnZh cmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXRE YXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJ LyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5vdWdoIGFzIGFuIHVuaXF1ZSBpZGVudGlm aWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0IHJlY3ljbGVkLCBhbmQgYSBuZXcgc2Vz c2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdAorCQkgKiB0aGUgc2FtZSBPSUQuICBXZSBkbyBh IHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQgTFNOIHdoZW4KKwkJICogdGhlIHZhcmlh YmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gKChGb3Jt X3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFyY3JlYXRlX2xzbikKKwkJCXJlc3VsdCA9 IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwl9CisKKwlyZXR1cm4gcmVzdWx0Owor fQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKKyAqLwor c3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2 YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwor CUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9IHZhcmlkOworCXN2YXItPmNyZWF0ZV9s c24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJc3Zhci0+dHlwaWQgPSB2YXJmb3JtLT52 YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAm c3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBlKHZhcmZv cm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0gSW52YWxpZExvY2Fs VHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9IHRydWU7CisJc3Zhci0+dmFsdWUgPSAo RGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRydWU7CisKKwlzdmFyLT5oYXNodmFsdWUg PSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCU9iamVjdElk R2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworfQorCisvKgorICog QXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMgY29waWVk IHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KKyAqCisgKiBJZiBh bnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZhbHVlIHdvbid0IGJlIG1vZGlmaWVkLgor ICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERh dHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1bQkJbmV3dmFsOworCVNWYXJpYWJsZURh dGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoIWlz bnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJLyoKKwkgKiBVc2UgdHlwYnl2YWwsIHR5 cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhleSBhcmUKKwkgKiB0cnVz dHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3QgYWNjZXB0ZWQgZm9yIHRo aXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFibGUgbWlnaHQgYmUgaW52YWxpZCwgZm9y Y2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3ZlcndyaXRlIHRoZSBwYXNzZWQgc2Vzc2lvbiB2 YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgorCSAqIHRoYXQgbm8gZXJyb3IgY2FuIGJl IHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lv bl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQpOworCQlfc3ZhciA9ICZsb2NzdmFyOwor CX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlmICghaXNudWxsKQorCXsKKwkJTWVtb3J5 Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZhbHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9z dmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOworCX0KKwll bHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1 KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQpOworCisJLyogbm8gbW9yZSBlcnJvciBl eHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUgb2xkIHZhcmlhYmxlIG5vdyAqLworCWlm IChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3ZhciwgX3N2YXIsIHNpemVvZihTVmFyaWFibGVE YXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKKwlzdmFyLT5pc251bGwgPSBpc251bGw7 Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0b3Jpbmcgc2Vzc2lvbiB2 YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxl cyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJQXNzZXJ0KCFzZXNzaW9udmFycyk7 CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJeworCQkvKiByZWFkIHNpbnZhbCBt ZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJMRU9JRCwK KwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2ssCisJCQkJCQkJCQkgIChEYXR1 bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxvbmctbGl2ZWQgbWVtb3J5IGNvbnRleHQg Ki8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJCQlBbGxvY1NldENvbnRleHRDcmVhdGUo VG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vzc2lvbiB2YXJpYWJsZXMiLAorCQkJCQkJ CQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsKKwl9CisKKwltZW1zZXQoJnZhcnNfY3Rs LCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7 CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNWYXJpYWJsZURhdGEpOworCXZhcnNfY3Rs LmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0OworCisJc2Vzc2lvbnZhcnMgPSBoYXNoX2Ny ZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZhcnNfY3RsLAorCQkJCQkJCSAgSEFTSF9F TEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7Cit9CisKKy8qCisgKiBTZWFyY2ggYSBz ZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxlIGdpdmVuIGl0cyBPSUQuICBJZiBpdAor ICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQgdGhlcmUuCisgKgorICogVGhlIGNhbGxl ciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMg YSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBv biB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rp b24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJp ZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdGhl IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmpl Y3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlm ICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJ CQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlmIChmb3VuZCkKKwl7CisJCWlmICghc3Zh ci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0 aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbCBiZQorCQkJICogdmFsaWQsIGJ1 dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9nLgorCQkJICovCisJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKKwkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkv KgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBvciB2 YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxpZGF0ZWQuCisJICovCisJaWYgKCFzdmFy LT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOwor CisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFz IGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBSRUFEKSIsCisJCQkgZ2V0X25h bWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJ IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkv KiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3RpbGwgb2YgdGhlIGNvcnJlY3QgZG9tYWlu ICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJCS8qCisJCSAqIFN0b3JlICJleHRyYSIg Zm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0aW9uQ29udGV4dC4gIFdoZW4gd2UKKwkJ ICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21haW5fY2hlY2tfZXh0cmEgY2FjaGUgaXMg bm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8KKwkJaWYgKHN2YXItPmRvbWFpbl9jaGVj a19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCQkJc3Zhci0+ZG9tYWluX2NoZWNr X2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2soc3Zhci0+dmFsdWUsIHN2YXItPmlzbnVs bCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhLAorCQkJCQkg VG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhp ZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJldHVybiBzdmFyOworfQorCisvKgorICog U3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgY2FjaGUu CisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBj aGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBh IEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgorICogdmFyaWFibGUgdW50aWwgdGhlIGVu ZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1NldFNlc3Npb25WYXJpYWJsZShPaWQg dmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwli b29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGFnYWluc3Qg RFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAw LCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Np b252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChz ZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJ aWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOwor CisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFz IGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBieSBXUklURSkiLAorCQkJIGdldF9u YW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQp KSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJCSB2YXJp ZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQgd29uJ3QgY2hhbmdlIHRoZSBzdG9yZWQg dmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YWx1ZSwgaXNOdWxsKTsKK30K KworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBzdG9yZWQgaW4gYSB2YXJpYWJs ZS4KKyAqLworc3RhdGljIGlubGluZSBEYXR1bQorY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVl KFNWYXJpYWJsZSBzdmFyLCBib29sICppc051bGwpCit7CisJRGF0dW0JCXZhbHVlOworCisJLyog Zm9yY2UgY29weSBvZiBub24gTlVMTCB2YWx1ZSAqLworCWlmICghc3Zhci0+aXNudWxsKQorCXsK KwkJdmFsdWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50 eXBsZW4pOworCQkqaXNOdWxsID0gZmFsc2U7CisJfQorCWVsc2UKKwl7CisJCXZhbHVlID0gKERh dHVtKSAwOworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gdmFsdWU7Cit9CisKKy8q CisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUg KGluIHRoZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4dCkuICBUaGUgY2FsbGVyIGlzIHJlc3Bv bnNpYmxlIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0dW0KK0dldFNlc3Npb25WYXJp YWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKworCXN2 YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7CisKKwkvKgorCSAqIEFsdGhvdWdoICJz dmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlzIHBvaW50LCBzdmFyLT5pc192YWxpZCBj YW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2FzIHByb2Nlc3Nl ZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkgKiBCdXQgdGhlIHZhcmlhYmxlIGFuZCBhbGwg aXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywgc28gd2UgZG9uJ3QgbmVlZAorCSAqIHRv IHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwlyZXR1cm4gY29weV9zZXNzaW9uX3Zhcmlh YmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBBc3NpZ24gdGhlIHJlc3VsdCBv ZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFibGUKKyAqLwor dm9pZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0U3RtdCAq c3RtdCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZpcm9ubWVu dCAqcXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5CSAgICpx dWVyeSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3cml0dGVu OworCURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBsYW5uZWRT dG10ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9IHF1ZXJ5 LT5yZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwkvKiBk byB3ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGU/ICov CisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09L KQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRlIGEgZGVzdCByZWNlaXZlciBm b3IgTEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlkKTsKKwor CS8qIHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3QocXVlcnkp OworCisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChsaXN0X2xl bmd0aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBy ZXdyaXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisK KwkvKiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5LCBwc3Rh dGUtPnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBwYXJhbXMp OworCisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFuZCBJRCB0 byBlbnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHByZXZpb3Vz bHkgZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJICogdGhl IHBsYW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0IGNoYW5n ZWQgdGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3YXkgdG8g YmUgcGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLworCVB1c2hD b3BpZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVTbmFwc2hv dENvbW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGluZyBvdXRw dXQgdG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVlcnlEZXNj KHBsYW4sIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFwc2hvdCgp LCBJbnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYsIDApOwor CisJLyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4ZWN1dGlv biAqLworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVuIHRoZSBw bGFuIHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSByb3cuICBU bworCSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2UgdHJ5IHRv IGZldGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRTY2FuRGly ZWN0aW9uLCAyTCk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZlbiBhIFF1 ZXJ5Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBsZXRpb24o cWMsIENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOworCisJLyog YW5kIGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVjdXRvckVu ZChxdWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9wQWN0aXZl U25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxl IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKaW5kZXggMTExMThkMGNlMDIuLjcxMjQ4 YTM0ZjI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQorKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAtNzYsNiArNzYsNyBAQCBPQkpTID0gXAog CW5vZGVXaW5kb3dBZ2cubyBcCiAJbm9kZVdvcmt0YWJsZXNjYW4ubyBcCiAJc3BpLm8gXAorCXN2 YXJpYWJsZVJlY2VpdmVyLm8gXAogCXRxdWV1ZS5vIFwKIAl0c3RvcmVSZWNlaXZlci5vCiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCmluZGV4IDAzNTY2YzRkMTgxLi4yNzBlNmQzNDRiZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCkBAIC0xMDQxLDYgKzEwNDEsMzggQEAgRXhlY0luaXRFeHByUmVj KEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQlzY3JhdGNoLmQucGFyYW0ucGFy YW10eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKIAkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUs ICZzY3JhdGNoKTsKIAkJCQkJCWJyZWFrOworCisJCQkJCWNhc2UgUEFSQU1fVkFSSUFCTEU6CisJ CQkJCQl7CisJCQkJCQkJaW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsKKwkJCQkJ CQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBOVUxMOworCQkJ CQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICp2YXI7CisKKwkJCQkJCQlpZiAoc3RhdGUtPnBhcmVu dCAmJiBzdGF0ZS0+cGFyZW50LT5zdGF0ZSkKKwkJCQkJCQl7CisJCQkJCQkJCWVzX3Nlc3Npb25f dmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzOwor CQkJCQkJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOworCQkJCQkJCX0KKworCQkJCQkJCUFzc2VydChlc19z ZXNzaW9uX3ZhcmlhYmxlcyk7CisKKwkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAq LworCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMp CisJCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlz IG91dCBvZiByYW5nZSIpOworCisJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVzW3Bh cmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCS8qCisJCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNz IHRoZSB2YWx1ZSBsaWtlIGEKKwkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkgKi8KKwkJCQkJ CQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFs LnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwuaXNudWxsID0g dmFyLT5pc251bGw7CisJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwor CQkJCQkJfQorCQkJCQkJYnJlYWs7CisKIAkJCQkJY2FzZSBQQVJBTV9FWFRFUk46CiAKIAkJCQkJ CS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCAzOWQ4MGNjZmJhZC4uZTUxZGYwMWMzOTMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtNDMsNyArNDMsOSBAQAogI2luY2x1ZGUgImFj Y2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BhcnRpdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9tYXR2aWV3LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJleGVj dXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uaCIKQEAg LTE5NCw2ICsxOTYsNzAgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1ZXJ5 RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VUZXh0ICE9IE5VTEwp OwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNlVGV4dDsKIAorCS8q CisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGRp cmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZSBjb3Bp ZWQgdG8gYSBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CisJICogaXMgcGFzc2VkIHRv IHRoZSBleGVjdXRvci4gVGhpcyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90IiBvZiB2YWx1ZXMg b2YKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhyZWUgYmVuZWZpdHMg b2YgdGhpcyBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBw YXJhbWV0ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lvbiB2YXJp YWJsZXMgY2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5lZWQgbWFr ZSBmcmVzaCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlCisJICogICAgKHRo aXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24gdmFyaWFi bGUgY2FuCisJICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFu ZCB0aGVuIGEgcmVmZXJlbmNlIHRvCisJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2YWx1ZSBj YW4gYmUgY29ycnVwdGVkKS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vz c2lvblZhcmlhYmxlcykKKwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlp ID0gMDsKKworCQkvKgorCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24g dmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBh c3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkg Ki8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9 IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOwor CisJCS8qIGNyZWF0ZSB0aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBz ZXNzaW9uIHZhcmlhYmxlcyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNl c3Npb25WYXJpYWJsZVZhbHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXpl b2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAqLworCQlm b3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxl cykKKwkJeworCQkJLyoKKwkJCSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxkIGJlIGV4ZWN1dGVk IG9uIGFsbCBleHBsaWNpdGx5IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0aGUgcXVlcnkuIEZv ciBpbXBsaWNpdGx5IHVzZWQgdmFyaWFibGUKKwkJCSAqIChsaWtlIGJhc2Ugbm9kZSBvZiBhc3Np Z25tZW50IGluZGlyZWN0KSB3ZSBjYW5ub3QgZG8gcGVybWlzc2lvbgorCQkJICogY2hlY2ssIGJl Y2F1c2Ugd2UgbmVlZCByZWFkIHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhhdmUKKwkJCSAqIG9u bHkgVVBEQVRFIHZhcmlhYmxlKS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNzaW9uIGNoZWNrCisJ CQkgKiBpcyBleGVjdXRlZCBpbiB3cml0ZSB0aW1lLgorCQkJICovCisJCQlpZiAodmFyaWQgIT0g cXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkKQorCQkJewor CQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFD TF9TRUxFQ1QpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNo ZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkgICBnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CisKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lv bl92YXJpYWJsZXNbaV0udmFsdWUgPQorCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwKKwkJ CQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNudWxsKTsKKworCQkJ aSsrOworCQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBuU2Vzc2lv blZhcmlhYmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmlyb25tZW50 LCBpZiBhbnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZApp bmRleCAyY2VhNDFmODc3MS4uNDkxMDkyZmNjNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxk CkBAIC02NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25vZGVXaW5k b3dBZ2cuYycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAgJ3N2YXJp YWJsZVJlY2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIuYycsCiAp CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzYxNjNmYjM2ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEsMTcyIEBA CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisgKgkgIEFu IGltcGxlbWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZh bHVlIGluCisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBv ZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisK KyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisjaW5jbHVk ZSAiYWNjZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCisjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNs dWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogVGhpcyBEZXN0UmVjZWl2ZXIgaXMgdXNl ZCBieSB0aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCB0byBhCisgKiBzZXNz aW9uIHZhcmlhYmxlLiAgVGhlIHJlc3VsdCBoYXMgdG8gaGF2ZSBvbmx5IG9uZSB0dXBsZSB3aXRo IG9ubHkgb25lCisgKiBub24tZGVsZXRlZCBhdHRyaWJ1dGUuICBUaGUgcm93IGNvdW50ZXIgKGZp ZWxkICJyb3dzIikgaXMgaW5jcmVtZW50ZWQKKyAqIGFmdGVyIHJlY2VpdmluZyBhIHJvdywgYW5k IGFuIGVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlIGFyZSBubyByb3dzIG9yCisgKiB0aGVyZSBh cmUgbW9yZSB0aGFuIG9uZSByZWNlaXZlZCByb3dzLiAgQSByZWNlaXZlZCB0dXBsZSBjYW5ub3Qg dG8gaGF2ZQorICogZGVsZXRlZCBhdHRyaWJ1dGVzLiAgVGhlIHZhbHVlIGlzIGRldG9hc3RlZCBi ZWZvcmUgc3RvcmluZyBpdCBpbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3R5cGVk ZWYgc3RydWN0Cit7CisJRGVzdFJlY2VpdmVyIHB1YjsKKwlPaWQJCQl2YXJpZDsKKwlib29sCQlu ZWVkX2RldG9hc3Q7CQkvKiBkbyB3ZSBuZWVkIHRvIGRldG9hc3QgdGhlIGF0dHJpYnV0ZT8gKi8K KwlpbnQJCQlyb3dzOwkJCQkvKiByb3cgY291bnRlciAqLworfSBTVmFyaWFibGVTdGF0ZTsKKwor LyoKKyAqIFByZXBhcmUgdG8gcmVjZWl2ZSB0dXBsZXMgZnJvbSBleGVjdXRvci4KKyAqLworc3Rh dGljIHZvaWQKK3N2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYsIGlu dCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlT dGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmOworCUxPQ0tUQUcJCWxvY2t0YWcgUEdfVVNF RF9GT1JfQVNTRVJUU19PTkxZOworCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CisJT2lkCQkJdHlw aWQgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCU9pZAkJCWNvbGxpZCBQR19VU0VEX0ZPUl9B U1NFUlRTX09OTFk7CisJaW50MzIJCXR5cG1vZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisK KwlBc3NlcnQobXlTdGF0ZS0+cHViLm15ZGVzdCA9PSBEZXN0VmFyaWFibGUpOworCUFzc2VydChP aWRJc1ZhbGlkKG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0KFNlYXJjaFN5c0NhY2hlRXhpc3Rz MShWQVJJQUJMRU9JRCwgbXlTdGF0ZS0+dmFyaWQpKTsKKwlBc3NlcnQodHlwZWluZm8tPm5hdHRz ID09IDEpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCisJU0VUX0xPQ0tUQUdfT0JK RUNUKGxvY2t0YWcsCisJCQkJCSAgIE15RGF0YWJhc2VJZCwKKwkJCQkJICAgVmFyaWFibGVSZWxh dGlvbklkLAorCQkJCQkgICBteVN0YXRlLT52YXJpZCwKKwkJCQkJICAgMCk7CisKKwlBc3NlcnQo TG9ja0hlbGRCeU1lKCZsb2NrdGFnLCBBY2Nlc3NTaGFyZUxvY2ssIGZhbHNlKSk7CisKKyNlbmRp ZgorCisJYXR0ciA9IFR1cGxlRGVzY0F0dHIodHlwZWluZm8sIDApOworCisJQXNzZXJ0KCFhdHRy LT5hdHRpc2Ryb3BwZWQpOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCisJZ2V0X3Nl c3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKG15U3RhdGUtPnZhcmlkLAorCQkJCQkJ CQkJCQkmdHlwaWQsCisJCQkJCQkJCQkJCSZ0eXBtb2QsCisJCQkJCQkJCQkJCSZjb2xsaWQpOwor CisJQXNzZXJ0KGF0dHItPmF0dHR5cGlkID09IHR5cGlkKTsKKwlBc3NlcnQoYXR0ci0+YXR0dHlw bW9kIDwgMCB8fCBhdHRyLT5hdHR0eXBtb2QgPT0gdHlwbW9kKTsKKworI2VuZGlmCisKKwlteVN0 YXRlLT5uZWVkX2RldG9hc3QgPSBhdHRyLT5hdHRsZW4gPT0gLTE7CisJbXlTdGF0ZS0+cm93cyA9 IDA7Cit9CisKKy8qCisgKiBSZWNlaXZlIGEgdHVwbGUgZnJvbSB0aGUgZXhlY3V0b3IgYW5kIHN0 b3JlIGl0IGluIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgYm9vbAorc3Zhcmlh YmxlUmVjZWl2ZVNsb3QoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIERlc3RSZWNlaXZlciAqc2VsZikK K3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmOwor CURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisJYm9vbAkJZnJlZXZhbCA9IGZhbHNlOwor CisJLyogbWFrZSBzdXJlIHRoZSB0dXBsZSBpcyBmdWxseSBkZWNvbnN0cnVjdGVkICovCisJc2xv dF9nZXRhbGxhdHRycyhzbG90KTsKKworCXZhbHVlID0gc2xvdC0+dHRzX3ZhbHVlc1swXTsKKwlp c251bGwgPSBzbG90LT50dHNfaXNudWxsWzBdOworCisJaWYgKG15U3RhdGUtPm5lZWRfZGV0b2Fz dCAmJiAhaXNudWxsICYmIFZBUkFUVF9JU19FWFRFUk5BTChEYXR1bUdldFBvaW50ZXIodmFsdWUp KSkKKwl7CisJCXZhbHVlID0gUG9pbnRlckdldERhdHVtKGRldG9hc3RfZXh0ZXJuYWxfYXR0cigo c3RydWN0IHZhcmxlbmEgKikKKwkJCQkJCQkJCQkJCQkgIERhdHVtR2V0UG9pbnRlcih2YWx1ZSkp KTsKKwkJZnJlZXZhbCA9IHRydWU7CisJfQorCisJbXlTdGF0ZS0+cm93cyArPSAxOworCisJaWYg KG15U3RhdGUtPnJvd3MgPiAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfVE9PX01BTllfUk9XUyksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5lZCBtb3Jl IHRoYW4gb25lIHJvdyIpKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUobXlTdGF0ZS0+dmFyaWQs IHZhbHVlLCBpc251bGwpOworCisJaWYgKGZyZWV2YWwpCisJCXBmcmVlKERhdHVtR2V0UG9pbnRl cih2YWx1ZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDbGVhbiB1cCBhdCBlbmQg b2YgdGhlIGV4ZWN1dG9yIHJ1bgorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU2h1dGRvd25S ZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJaWYgKCgoU1ZhcmlhYmxlU3RhdGUgKikg c2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0dXJuZWQgbm8gcm93 cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95IHRoZSByZWNlaXZlciB3aGVuIHdlIGFyZSBkb25l IHdpdGggaXQKKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcihEZXN0 UmVjZWl2ZXIgKnNlbGYpCit7CisJcGZyZWUoc2VsZik7Cit9CisKKy8qCisgKiBJbml0aWFsbHkg Y3JlYXRlIGEgRGVzdFJlY2VpdmVyIG9iamVjdC4KKyAqLworRGVzdFJlY2VpdmVyICoKK0NyZWF0 ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGVTdGF0ZSAqc2Vs ZiA9IChTVmFyaWFibGVTdGF0ZSAqKSBwYWxsb2MwKHNpemVvZihTVmFyaWFibGVTdGF0ZSkpOwor CisJc2VsZi0+cHViLnJlY2VpdmVTbG90ID0gc3ZhcmlhYmxlUmVjZWl2ZVNsb3Q7CisJc2VsZi0+ cHViLnJTdGFydHVwID0gc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyOworCXNlbGYtPnB1Yi5yU2h1 dGRvd24gPSBzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVyOworCXNlbGYtPnB1Yi5yRGVzdHJveSA9 IHN2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcjsKKwlzZWxmLT5wdWIubXlkZXN0ID0gRGVzdFZhcmlh YmxlOworCisJc2VsZi0+dmFyaWQgPSB2YXJpZDsKKworCXJldHVybiAoRGVzdFJlY2VpdmVyICop IHNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3Ny Yy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDdiYzgyMzUwN2YxLi5kOGZjM2Q5ZmE2 OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQzNzUsNiArNDM3NSwxNiBAQCByYXdfZXhwcmVz c2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJ fQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRTdG10OgorCQkJeworCQkJCUxldFN0bXQgICAgKnN0 bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc3RtdC0+dGFyZ2V0KSkKKwkJ CQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RtdC0+cXVlcnkpKQorCQkJCQlyZXR1cm4g dHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUExBc3NpZ25TdG10OgogCQkJewogCQkJ CVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFzc2lnblN0bXQgKikgbm9kZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3BsYW5uZXIuYwppbmRleCA3YjFhOGEwYTlmMS4uY2YwOTQ5ODc1NjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTMzMyw2ICszMzMsMjEgQEAgc3RhbmRh cmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1 cnNvck9wdGlvbnMsCiAJZ2xvYi0+bGFzdFBsYW5Ob2RlSWQgPSAwOwogCWdsb2ItPnRyYW5zaWVu dFBsYW4gPSBmYWxzZTsKIAlnbG9iLT5kZXBlbmRzT25Sb2xlID0gZmFsc2U7CisJZ2xvYi0+c2Vz c2lvblZhcmlhYmxlcyA9IE5JTDsKKworCS8qCisJICogVGhlIChzZXNzaW9uKSByZXN1bHQgdmFy aWFibGUgc2hvdWxkIGJlIHN0b3JlZCB0byBnbG9iYWwsIGJlY2F1c2UKKwkgKiBpdCBpcyBub3Qg c2V0IGluIHN1YnF1ZXJ5LiAgV2hlbiB0aGlzIHZhcmlhYmxlIGlzIHVzZWQgb3RoZXIgdGhhbgor CSAqIGluIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uLCB3ZSBuZWVkIHRvIGNo ZWNrIHRoZSBhY2Nlc3MKKwkgKiByaWdodHMgKGFuZCB0aGVuIHdlIG5lZWQgdG8gZGV0ZWN0IHRo aXMgc2l0dWF0aW9uKS4gVGhlIHZhcmlhYmxlIHVzZWQKKwkgKiBsaWtlIGJhc2Ugbm9kZSBjYW5u b3QgYmUgZGlmZmVyZW50IHRoYW4gdGFyZ2V0IChyZXN1bHQpIHZhcmlhYmxlLgorCSAqIEJlY2F1 c2Ugd2Uga25vdyB0aGUgcmVzdWx0IHZhcmlhYmxlIGJlZm9yZSBwbGFubmVyIGludm9jYXRpb24s IHdlCisJICogY2FuIHNpbXBseSBzZWFyY2ggb2YgdXNhZ2UganVzdCB0aGlzIHZhcmlhYmxlLCBh bmQgd2UgZG9uJ3QgbmVlZCB0bworCSAqIHRvIHdhaXQgdW50aWwgdGhlIGVuZCBvZiBwbGFubmlu ZyB3aGVuIHdlIGtub3cgYmFzZW5vZGVTZXNzaW9uVmFyaWQuCisJICovCisJZ2xvYi0+cmVzdWx0 VmFyaWFibGUgPSBwYXJzZS0+cmVzdWx0VmFyaWFibGU7CisJZ2xvYi0+YmFzZW5vZGVTZXNzaW9u VmFyaWQgPSBJbnZhbGlkT2lkOworCWdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNr ID0gZmFsc2U7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUgdG8gdXNl IHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NzAsNiArNTg1LDIwIEBAIHN0 YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGlu dCBjdXJzb3JPcHRpb25zLAogCXJlc3VsdC0+cGFyYW1FeGVjVHlwZXMgPSBnbG9iLT5wYXJhbUV4 ZWNUeXBlczsKIAkvKiB1dGlsaXR5U3RtdCBzaG91bGQgYmUgbnVsbCwgYnV0IHdlIG1pZ2h0IGFz IHdlbGwgY29weSBpdCAqLwogCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSBwYXJzZS0+dXRpbGl0eVN0 bXQ7CisKKwlyZXN1bHQtPnNlc3Npb25WYXJpYWJsZXMgPSBnbG9iLT5zZXNzaW9uVmFyaWFibGVz OworCisJLyoKKwkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIChhbmQgb25seSB1c2VkKSBs aWtlIGJhc2Ugbm9kZQorCSAqIGZvciBhc3NpZ25lbW50IGluZGlyZWN0aW9uIHNob3VsZCBiZSBl eGNsdWRlZCBmcm9tIHBlcm1pc3Npb24KKwkgKiBjaGVjay4KKwkgKi8KKwlpZiAoT2lkSXNWYWxp ZChnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkgJiYKKwkJKCFnbG9iLT5iYXNlbm9kZVNlc3Np b25WYXJTZWxlY3RDaGVjaykpCisJCXJlc3VsdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkID0g Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisJZWxzZQorCQlyZXN1bHQtPmV4Y2xTZWxlY3RQ ZXJtQ2hlY2tWYXJpZCA9IEludmFsaWRPaWQ7CisKIAlyZXN1bHQtPnN0bXRfbG9jYXRpb24gPSBw YXJzZS0+c3RtdF9sb2NhdGlvbjsKIAlyZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0bXRfbGVu OwogCkBAIC03NDAsNiArNzY5LDEzIEBAIHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckdsb2JhbCAq Z2xvYiwgUXVlcnkgKnBhcnNlLCBQbGFubmVySW5mbyAqcGFyZW50X3Jvb3QsCiAJICovCiAJcHVs bF91cF9zdWJxdWVyaWVzKHJvb3QpOwogCisJLyoKKwkgKiBDaGVjayBpZiBzb21lIHN1YnF1ZXJ5 IHVzZXMgYSBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIGZsYWcKKwkgKiBoYXNTZXNzaW9uVmFyaWFi bGVzIHNob3VsZCBiZSB0cnVlIGlmIHRoZSBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5IHVzZXMgYQor CSAqIHNlc3Npb24gdmFyaWFibGUuCisJICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJs ZXMocm9vdCk7CisKIAkvKgogCSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxMIHF1ZXJ5 LCBmbGF0dGVuIGl0IGludG8gYW4gYXBwZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93IGJlY2F1 c2UgaXQgcmVxdWlyZXMgYXBwbHlpbmcgcHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBsZWFmCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggOTk5YTVhOGFiNWEuLmRjMmNhYTUy MGY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysr IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yMTAsNiArMjEwLDkg QEAgc3RhdGljIExpc3QgKnNldF9yZXR1cm5pbmdfY2xhdXNlX3JlZmVyZW5jZXMoUGxhbm5lcklu Zm8gKnJvb3QsCiBzdGF0aWMgTGlzdCAqc2V0X3dpbmRvd2FnZ19ydW5jb25kaXRpb25fcmVmZXJl bmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJCQkJCSAgIExpc3QgKnJ1bmNvbmRpdGlv biwKIAkJCQkJCQkJCQkJCSAgIFBsYW4gKnBsYW4pOworc3RhdGljIGJvb2wgcHVsbF91cF9oYXNf c2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCisJCQkJCQkJCQkJCQkgUGxhbm5l ckluZm8gKnJvb3QpOworc3RhdGljIHZvaWQgcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5j eShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlkKTsKIAogCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKQEAgLTEzMTUsNiArMTMxOCw1MCBAQCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJbmZvICpyb290 LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZzZXQpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBT ZWFyY2ggdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gc3VicXVlcmllcworICovCit2b2lk CitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlR dWVyeQkgICAqcXVlcnkgPSByb290LT5wYXJzZTsKKworCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZh cmlhYmxlcykKKwl7CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCX0KKwll bHNlCisJeworCQkodm9pZCkgcXVlcnlfdHJlZV93YWxrZXIocXVlcnksCisJCQkJCQkJCSBwdWxs X3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290 LCAwKTsKKwl9Cit9CisKK3N0YXRpYyBib29sCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxl c193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKnJvb3QpCit7CisJaWYgKG5vZGUgPT0g TlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChJc0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJUXVl cnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5ICopIG5vZGU7CisKKwkJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9u VmFyaWFibGVzKQorCQl7CisJCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwkJ CXJldHVybiBmYWxzZTsKKwkJfQorCisJCS8qIHJlY3Vyc2UgaW50byBzdWJzZWxlY3RzICovCisJ CXJldHVybiBxdWVyeV90cmVlX3dhbGtlcigoUXVlcnkgKikgbm9kZSwKKwkJCQkJCQkJIHB1bGxf dXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3Qs IDApOworCX0KKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxsX3VwX2hh c19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAgKHZvaWQgKikgcm9vdCk7Cit9 CisKIC8qCiAgKiBzZXRfaW5kZXhvbmx5c2Nhbl9yZWZlcmVuY2VzCiAgKgkJRG8gc2V0X3BsYW5f cmVmZXJlbmNlcyBwcm9jZXNzaW5nIG9uIGFuIEluZGV4T25seVNjYW4KQEAgLTIwMTUsOCArMjA2 Miw5IEBAIGNvcHlWYXIoVmFyICp2YXIpCiAgKiBUaGlzIGlzIGNvZGUgdGhhdCBpcyBjb21tb24g dG8gYWxsIHZhcmlhbnRzIG9mIGV4cHJlc3Npb24tZml4aW5nLgogICogV2UgbXVzdCBsb29rIHVw IG9wZXJhdG9yIG9wY29kZSBpbmZvIGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCiAgKiBh ZGQgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRp b25PaWRzLCBhbmQKLSAqIGFkZCBQbGFuSW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0 aW9ucyBpbnRvIHJvb3QtPmdsb2ItPmludmFsSXRlbXMuCi0gKiBXZSBhbHNvIGZpbGwgaW4gY29s dW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpIGV4cHJlc3Npb25zLgorICogYWRkIFBsYW5J bnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGFuZCBzZXNzaW9uIHZhcmlhYmxl cyBpbnRvCisgKiByb290LT5nbG9iLT5pbnZhbEl0ZW1zLiAgV2UgYWxzbyBmaWxsIGluIGNvbHVt biBpbmRleCBsaXN0cyBmb3IgR1JPVVBJTkcoKQorICogZXhwcmVzc2lvbnMuCiAgKgogICogV2Ug YXNzdW1lIGl0J3Mgb2theSB0byB1cGRhdGUgb3Bjb2RlIGluZm8gaW4tcGxhY2UuICBTbyB0aGlz IGNvdWxkIHBvc3NpYmx5CiAgKiBzY3JpYmJsZSBvbiB0aGUgcGxhbm5lcidzIGlucHV0IGRhdGEg c3RydWN0dXJlcywgYnV0IGl0J3MgT0suCkBAIC0yMTA2LDYgKzIxNTQsMTMgQEAgZml4X2V4cHJf Y29tbW9uKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQogCQkJCWctPmNvbHMgPSBjb2xz OwogCQl9CiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAq cCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFC TEUpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KHJvb3QsIHAtPnBhcmFtdmFy aWQpOworCX0KIH0KIAogLyoKQEAgLTIxMTUsNiArMjE3MCwxMCBAQCBmaXhfZXhwcl9jb21tb24o UGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAgKiBJZiBpdCdzIGEgUEFSQU1fTVVMVElF WFBSLCByZXBsYWNlIGl0IHdpdGggdGhlIGFwcHJvcHJpYXRlIFBhcmFtIGZyb20KICAqIHJvb3Qt Pm11bHRpZXhwcl9wYXJhbXM7IG90aGVyd2lzZSBubyBjaGFuZ2UgaXMgbmVlZGVkLgogICogSnVz dCBmb3IgcGFyYW5vaWEncyBzYWtlLCB3ZSBtYWtlIGEgY29weSBvZiB0aGUgbm9kZSBpbiBlaXRo ZXIgY2FzZS4KKyAqCisgKiBJZiBpdCdzIGEgUEFSQU1fVkFSSUFCTEUsIHRoZW4gd2UgY29sbGVj dCB1c2VkIHNlc3Npb24gdmFyaWFibGVzIGluCisgKiB0aGUgbGlzdCByb290LT5nbG9iLT5zZXNz aW9uVmFyaWFibGUuICBBbHNvLCBhc3NpZ24gdGhlIHBhcmFtZXRlcidzCisgKiAicGFyYW1pZCIg dG8gdGhlIHBhcmFtZXRlcidzIHBvc2l0aW9uIGluIHRoYXQgbGlzdC4KICAqLwogc3RhdGljIE5v ZGUgKgogZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQpAQCAtMjEz Myw2ICsyMTkyLDYyIEBAIGZpeF9wYXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAq cCkKIAkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIFBBUkFNX01VTFRJRVhQUiBJRDogJWQiLCBw LT5wYXJhbWlkKTsKIAkJcmV0dXJuIGNvcHlPYmplY3QobGlzdF9udGgocGFyYW1zLCBjb2xubyAt IDEpKTsKIAl9CisKKwlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJ aW50CQkJbiA9IDA7CisJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkJLyogd2Ugd2lsbCBtb2Rp Znkgb2JqZWN0ICovCisJCXAgPSAoUGFyYW0gKikgY29weU9iamVjdChwKTsKKworCQkvKgorCQkg KiBOb3csIHdlIGNhbiBhY3R1YWxpemUgbGlzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcywgYW5kIHdl IGNhbgorCQkgKiBjb21wbGV0ZSBwYXJhbWlkIHBhcmFtZXRlci4KKwkJICovCisJCWZvcmVhY2hf b2lkKHZhcmlkLCByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlpZiAodmFy aWQgPT0gcC0+cGFyYW12YXJpZCkKKwkJCXsKKwkJCQlwLT5wYXJhbWlkID0gbjsKKwkJCQlmb3Vu ZCA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQluICs9IDE7CisJCX0KKworCQlpZiAoIWZv dW5kKQorCQl7CisJCQlyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gbGFwcGVuZF9vaWQo cm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcywKKwkJCQkJCQkJCQkJCQkgICBwLT5wYXJhbXZh cmlkKTsKKwkJCXAtPnBhcmFtaWQgPSBuOworCQl9CisKKwkJLyoKKwkJICogV2UgZG8gU0VMRUNU IHBlcm1pc3Npb24gY2hlY2sgb2YgYWxsIHZhcmlhYmxlcyB1c2VkIGJ5CisJCSAqIHRoZSBxdWVy eSBleGNsdWRpbmcgdGhlIHZhcmlhYmxlIHRoYXQgaXMgdXNlZCBvbmx5IGFzIGJhc2Ugbm9kZQor CQkgKiBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uLiBUaGUgdmFyaWFibGUgaWQgYXNzaWduZWQg dG8gdGhpcyBwYXJhbQorCQkgKiBzaG91bGQgYmUgc2FtZSBsaWtlIHJlc3VsdFZhcmlhYmxlIGlk LCBhbmQgdGhpcyBwYXJhbSBzaG91bGQgYmUKKwkJICogdXNlZCBvbmx5IG9uY2UgaW4gcXVlcnku IFdoZW4gdGhlIHZhcmlhYmxlIGlzIHJlZmVyZW5jZWQgYnkgYW55CisJCSAqIG90aGVyIHBhcmFt LCB3ZSBzaG91bGQgdG8gZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgZm9yIHRoaXMgdmFyaWFi bGUKKwkJICogdG9vLgorCQkgKi8KKwkJaWYgKHAtPnBhcmFtYmFzZW5vZGUpCisJCXsKKwkJCUFz c2VydCghT2lkSXNWYWxpZChyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCkpOworCQkJ QXNzZXJ0KHJvb3QtPmdsb2ItPnJlc3VsdFZhcmlhYmxlID09IHAtPnBhcmFtdmFyaWQpOworCisJ CQlyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IHAtPnBhcmFtdmFyaWQ7CisJCX0K KwkJZWxzZQorCQl7CisJCQlpZiAocC0+cGFyYW12YXJpZCA9PSByb290LT5nbG9iLT5yZXN1bHRW YXJpYWJsZSkKKwkJCQlyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjayA9 IHRydWU7CisJCX0KKworCQlyZXR1cm4gKE5vZGUgKikgcDsKKwl9CisKIAlyZXR1cm4gKE5vZGUg KikgY29weU9iamVjdChwKTsKIH0KIApAQCAtMjE5NCw3ICsyMzA5LDEwIEBAIGZpeF9hbHRlcm5h dGl2ZV9zdWJwbGFuKFBsYW5uZXJJbmZvICpyb290LCBBbHRlcm5hdGl2ZVN1YlBsYW4gKmFzcGxh biwKICAqIHJlcGxhY2luZyBBZ2dyZWYgbm9kZXMgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgYnkg aW5pdHBsYW4gb3V0cHV0IFBhcmFtcywKICAqIGNob29zaW5nIHRoZSBiZXN0IGltcGxlbWVudGF0 aW9uIGZvciBBbHRlcm5hdGl2ZVN1YlBsYW5zLAogICogbG9va2luZyB1cCBvcGVyYXRvciBvcGNv ZGUgaW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5vZGVzLAotICogYW5kIGFkZGluZyBPSURz IGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMu CisgKiBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xv Yi0+cmVsYXRpb25PaWRzLAorICogYXNzaWduaW5nIHBhcmFtdmFyaWQgdG8gUEFSQU1fVkFSSUFC TEUgcGFyYW1zLCBhbmQgY29sbGVjdGluZyB0aGUKKyAqIE9JRHMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgaW4gdGhlIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAorICogKHBhcmFtdmFy aWQgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoaXMgbGlzdCku CiAgKgogICogJ25vZGUnOiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2RpZmllZAogICogJ3J0b2Zm c2V0JzogaG93IG11Y2ggdG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAtMjIxNiw3ICsyMzM0LDgg QEAgZml4X3NjYW5fZXhwcihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50IHJ0b2Zm c2V0LCBkb3VibGUgbnVtX2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMgIT0gTklMIHx8 CiAJCXJvb3QtPmdsb2ItPmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+bWlubWF4X2FnZ3MgIT0g TklMIHx8Ci0JCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJCXJvb3QtPmhhc0FsdGVy bmF0aXZlU3ViUGxhbnMgfHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCXJl dHVybiBmaXhfc2Nhbl9leHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQpOwogCX0KQEAgLTM2MDks NiArMzcyOCwyNSBAQCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJv b3QsIE9pZCB0eXBpZCkKIAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNl c3Npb24gdmFyaWFibGUuICBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQorICogc2Vzc2lv biB2YXJpYWJsZSBpbiBhbiBleHByZXNzaW9uIGxpc3QsIG9yIGFzIHRoZSB0YXJnZXQgb2YgYSBM RVQgc3RhdGVtZW50LgorICovCitzdGF0aWMgdm9pZAorcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVw ZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlkKQoreworCVBsYW5JbnZhbEl0ZW0g KmludmFsX2l0ZW0gPSBtYWtlTm9kZShQbGFuSW52YWxJdGVtKTsKKworCS8qIHBhcmFtaWQgaXMg c3RpbGwgc2Vzc2lvbiB2YXJpYWJsZSBpZCAqLworCWludmFsX2l0ZW0tPmNhY2hlSWQgPSBWQVJJ QUJMRU9JRDsKKwlpbnZhbF9pdGVtLT5oYXNoVmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEo VkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwor CS8qIGFwcGVuZCB0aGlzIHZhcmlhYmxlIHRvIGdsb2JhbCwgcmVnaXN0ZXIgZGVwZW5kZW5jeSAq LworCXJvb3QtPmdsb2ItPmludmFsSXRlbXMgPSBsYXBwZW5kKHJvb3QtPmdsb2ItPmludmFsSXRl bXMsCisJCQkJCQkJCQkgaW52YWxfaXRlbSk7Cit9CisKIC8qCiAgKiBleHRyYWN0X3F1ZXJ5X2Rl cGVuZGVuY2llcwogICoJCUdpdmVuIGEgcmV3cml0dGVuLCBidXQgbm90IHlldCBwbGFubmVkLCBx dWVyeSBvciBxdWVyaWVzCkBAIC0zNjk0LDkgKzM4MzIsOSBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVu ZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQl9CiAK IAkJCS8qCi0JCQkgKiBJZ25vcmUgb3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhv c2UgKHN1Y2ggYXMgRVhQTEFJTikKLQkJCSAqIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90 LXBsYW5uZWQgcXVlcnkuICBGb3IgdGhvc2UsIHdlCi0JCQkgKiBqdXN0IG5lZWQgdG8gdHJhbnNm ZXIgb3VyIGF0dGVudGlvbiB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgorCQkJICogSWdub3JlIG90 aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVYUExBSU4KKwkJ CSAqIG9yIExFVCkgdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3QtcGxhbm5lZCBxdWVyeS4g IEZvciB0aG9zZSwKKwkJCSAqIHdlIGp1c3QgbmVlZCB0byB0cmFuc2ZlciBvdXIgYXR0ZW50aW9u IHRvIHRoZSBjb250YWluZWQgcXVlcnkuCiAJCQkgKi8KIAkJCXF1ZXJ5ID0gVXRpbGl0eUNvbnRh aW5zUXVlcnkocXVlcnktPnV0aWxpdHlTdG10KTsKIAkJCWlmIChxdWVyeSA9PSBOVUxMKQpAQCAt MzcxOSw2ICszODU3LDEwIEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2Rl ICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCQkJbGFwcGVuZF9vaWQoY29udGV4dC0+ Z2xvYi0+cmVsYXRpb25PaWRzLCBydGUtPnJlbGlkKTsKIAkJfQogCisJCS8qIHJlY29yZCBkZXBl bmRlbmN5IG9uIHRoZSB0YXJnZXQgdmFyaWFibGUgb2YgYSBMRVQgY29tbWFuZCAqLworCQlpZiAo T2lkSXNWYWxpZChxdWVyeS0+cmVzdWx0VmFyaWFibGUpKQorCQkJcmVjb3JkX3BsYW5fdmFyaWFi bGVfZGVwZW5kZW5jeShjb250ZXh0LCBxdWVyeS0+cmVzdWx0VmFyaWFibGUpOworCiAJCS8qIEFu ZCByZWN1cnNlIGludG8gdGhlIHF1ZXJ5J3Mgc3ViZXhwcmVzc2lvbnMgKi8KIAkJcmV0dXJuIHF1 ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIs CiAJCQkJCQkJCSBjb250ZXh0LCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wcmVwL3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpv aW50cmVlLmMKaW5kZXggNWQ5MjI1ZTk5MDkuLjcxNDc5Y2ViMWJjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtMTQzMiw2ICsxNDMyLDkgQEAgcHVsbF91 cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgUmFuZ2VU YmxFbnRyeSAqcnRlLAogCS8qIElmIHN1YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlvbnMsIG5v dyBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9IHN1YnF1 ZXJ5LT5oYXNSb3dTZWN1cml0eTsKIAorCS8qIGlmIHRoZSBzdWJxdWVyeSBoYWQgc2Vzc2lvbiB2 YXJpYWJsZXMsIHRoZSBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCisJcGFyc2UtPmhhc1Nlc3Npb25W YXJpYWJsZXMgfD0gc3VicXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAkvKgogCSAqIHN1 YnF1ZXJ5IHdvbid0IGJlIHB1bGxlZCB1cCBpZiBpdCBoYXNBZ2dzLCBoYXNXaW5kb3dGdW5jcywg b3IKIAkgKiBoYXNUYXJnZXRTUkZzLCBzbyBubyB3b3JrIG5lZWRlZCBvbiB0aG9zZSBmbGFncwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDQzZGZlY2ZiNDdmLi5mNjA4Mjhm ODYyZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisr KyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjQsNiArMjQsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNp bmNsdWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05 MzQsNiArOTM1LDEzIEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1h eF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtp bmQgPT0gUEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRvbid0IHN1 cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFsbGVs X2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJldHVy biB0cnVlOworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAog CQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFt aWQpKQogCQl7CkBAIC0yMzg5LDYgKzIzOTcsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nh b3Bfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRoZSBQ YXJhbS4KICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rpb25z IHRvIGNvbnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0aGVp ciBjb250YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Npb24g dmFyaWFibGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0tLS0t LS0tLS0tLQogICovCiBOb2RlICoKQEAgLTI1MTUsNiArMjUyNCwyNyBAQCBldmFsX2NvbnN0X2V4 cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0KKwkJ CQllbHNlIGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJCQkg Y29udGV4dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQlib29s CQl0eXBCeVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJ CQlnZXRfdHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4sICZ0 eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZShwYXJhbS0+cGFyYW12 YXJpZCwgJmlzbnVsbCk7CisKKwkJCQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChwYXJhbS0+ cGFyYW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbXR5cG1vZCwKKwkJCQkJCQkJCQkJ ICBwYXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJCQkJCSAgKGludCkgdHlwTGVuLAorCQkJCQkJ CQkJCQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJCQkJCQkgIHR5cEJ5VmFs KTsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5vdCByZXBsYWNlYWJsZSwgc28ganVzdCBjb3B5 IHRoZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDcyMCw3ICs0NzUwLDggQEAgaW5saW5lX2Z1bmN0 aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQsCiAJCXF1 ZXJ5dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1pdENvdW50IHx8CiAJCXF1 ZXJ5dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQlsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdl dExpc3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEp IHx8CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJZ290byBmYWlsOwogCiAJ LyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jCmluZGV4IDc2ZjU4YjNhY2EzLi43MjVmNjc4ZTJmYSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCkBAIC0yNSw5ICsyNSwxMiBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNs dWRlICJhY2Nlc3Mvc3lzYXR0ci5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJu b2Rlcy9ub2RlRnVuY3MuaCIKQEAgLTUxLDYgKzU0LDcgQEAKICNpbmNsdWRlICJ1dGlscy9iYWNr ZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRp bHMvZ3VjLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMv cmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIApAQCAtODMsNiArODcsOCBAQCBz dGF0aWMgUXVlcnkgKnRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkJCQkgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5ICp0 cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCUNhbGxTdG10ICpz dG10KTsKK3N0YXRpYyBRdWVyeSAqdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUs CisJCQkJCQkJICAgTGV0U3RtdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Mb2NraW5n Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUXVlcnkgKnFyeSwKIAkJCQkJCQkJICAgTG9ja2lu Z0NsYXVzZSAqbGMsIGJvb2wgcHVzaGVkRG93bik7CiAjaWZkZWYgREVCVUdfTk9ERV9URVNUU19F TkFCTEVECkBAIC00MTQsNiArNDIwLDcgQEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCWNhc2UgVF9VcGRhdGVTdG10OgogCQkJY2FzZSBUX0Rl bGV0ZVN0bXQ6CiAJCQljYXNlIFRfTWVyZ2VTdG10OgorCQkJY2FzZSBUX0xldFN0bXQ6CiAJCQkJ KHZvaWQpIHRlc3RfcmF3X2V4cHJlc3Npb25fY292ZXJhZ2UocGFyc2VUcmVlLCBOVUxMKTsKIAkJ CQlicmVhazsKIAkJCWRlZmF1bHQ6CkBAIC00OTMsNiArNTAwLDExIEBAIHRyYW5zZm9ybVN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCQkJCQkJCQkgICAoQ2FsbFN0 bXQgKikgcGFyc2VUcmVlKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcmVz dWx0ID0gdHJhbnNmb3JtTGV0U3RtdChwc3RhdGUsCisJCQkJCQkJCQkgIChMZXRTdG10ICopIHBh cnNlVHJlZSk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCiAJCQkvKgpAQCAtNTQ1LDYgKzU1 Nyw3IEBAIHN0bXRfcmVxdWlyZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQog CQljYXNlIFRfU2VsZWN0U3RtdDoKIAkJY2FzZSBUX1JldHVyblN0bXQ6CiAJCWNhc2UgVF9QTEFz c2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJCWJyZWFr OwogCkBAIC02NTMsNiArNjY2LDcgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0YXRlICpw c3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+ cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFy Z2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nl c3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2ln bl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTA3OCw2ICsxMDkyLDcgQEAg dHJhbnNmb3JtSW5zZXJ0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEluc2VydFN0bXQgKnN0bXQp CiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnkt Pmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZh cmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5 X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xNTQzLDYgKzE1NTgsNyBAQCB0cmFuc2Zv cm1TZWxlY3RTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnkt Pmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFy Z2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0 ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNT ZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBzdG10LT5sb2NraW5nQ2xhdXNlKQogCXsK QEAgLTE3NjksMTIgKzE3ODUsMjQxIEBAIHRyYW5zZm9ybVZhbHVlc0NsYXVzZShQYXJzZVN0YXRl ICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhw cihwc3RhdGUtPnBfam9pbmxpc3QsIE5VTEwpOwogCiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0 ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBf aGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwg cXJ5KTsKIAogCXJldHVybiBxcnk7CiB9CiAKKy8qCisgKiB0cmFuc2Zvcm1MZXRTdG10IC0KKyAq CSAgdHJhbnNmb3JtIGFuIExldCBTdGF0ZW1lbnQKKyAqLworc3RhdGljIFF1ZXJ5ICoKK3RyYW5z Zm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10KQoreworCVF1ZXJ5 CSAgICpxdWVyeTsKKwlRdWVyeQkgICAqcmVzdWx0OworCUxpc3QJICAgKmV4cHJMaXN0ID0gTklM OworCUxpc3QJICAgKmV4cHJMaXN0Q29lciA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0 Q2VsbCAgICppbmRpcmVjdGlvbl9oZWFkID0gTlVMTDsKKwlRdWVyeQkgICAqc2VsZWN0UXVlcnk7 CisJT2lkCQkJdmFyaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJCW5vdF91 bmlxdWU7CisJYm9vbAkJaXNfcm93dHlwZTsKKwlPaWQJCQl0eXBpZDsKKwlpbnQzMgkJdHlwbW9k OworCU9pZAkJCWNvbGxpZDsKKwlMaXN0CSAgICpuYW1lcyA9IE5VTEw7CisJaW50CQkJaW5kaXJl Y3Rpb25fc3RhcnQ7CisJaW50CQkJaSA9IDA7CisKKwkvKiB0aGVyZSBjYW4ndCBiZSBhbnkgb3V0 ZXIgV0lUSCB0byB3b3JyeSBhYm91dCAqLworCUFzc2VydChwc3RhdGUtPnBfY3RlbmFtZXNwYWNl ID09IE5JTCk7CisKKwluYW1lcyA9IE5hbWVzRnJvbUxpc3Qoc3RtdC0+dGFyZ2V0KTsKKworCS8q IGxvY2tzIHRoZSB2YXJpYWJsZSB3aXRoIGFuIEFjY2Vzc1NoYXJlTG9jayAqLworCXZhcmlkID0g SWRlbnRpZnlWYXJpYWJsZShuYW1lcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgZmFsc2UpOwor CWlmIChub3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf QU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygidGFyZ2V0IFwiJXNcIiBvZiBMRVQg Y29tbWFuZCBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAor CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCWlm ICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwi JXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSwKKwkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisKKwkvKgor CSAqIENhbGN1bGF0ZSBzdGFydCBvZiBwb3NzaWJsZSBwb3NpdGlvbiBvZiBhbiBpbmRpcmVjdGlv biBpbiBsaXN0LCBhbmQKKwkgKiB3aGVuIGl0IGlzIGluc2lkZSB0aGUgbGlzdCwgc3RvcmUgcG9p bnRlciBvbiBmaXJzdCBub2RlIG9mIGluZGlyZWN0aW9uLgorCSAqLworCWluZGlyZWN0aW9uX3N0 YXJ0ID0gbGlzdF9sZW5ndGgobmFtZXMpIC0gKGF0dHJuYW1lID8gMSA6IDApOworCWlmIChsaXN0 X2xlbmd0aChzdG10LT50YXJnZXQpID4gaW5kaXJlY3Rpb25fc3RhcnQpCisJCWluZGlyZWN0aW9u X2hlYWQgPSBsaXN0X250aF9jZWxsKHN0bXQtPnRhcmdldCwgaW5kaXJlY3Rpb25fc3RhcnQpOwor CisJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQs ICZ0eXBtb2QsICZjb2xsaWQpOworCisJaXNfcm93dHlwZSA9IHR5cGVfaXNfcm93dHlwZSh0eXBp ZCk7CisKKwlpZiAoYXR0cm5hbWUgJiYgIWlzX3Jvd3R5cGUpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygiY2Fu bm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIg YmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQlhdHRy bmFtZSwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAor CQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gRVhQUl9L SU5EX0xFVF9UQVJHRVQ7CisKKwkvKiB3ZSBuZWVkIHRvIHBvc3Rwb25lIGNvbnZlcnNpb24gb2Yg InVua25vd24iIHRvIHRleHQgKi8KKwlwc3RhdGUtPnBfcmVzb2x2ZV91bmtub3ducyA9IGZhbHNl OworCisJc2VsZWN0UXVlcnkgPSB0cmFuc2Zvcm1TdG10KHBzdGF0ZSwgc3RtdC0+cXVlcnkpOwor CisJLyogdGhlIGdyYW1tYXIgc2hvdWxkIGhhdmUgcHJvZHVjZWQgYSBTRUxFQ1QgKi8KKwlBc3Nl cnQoSXNBKHNlbGVjdFF1ZXJ5LCBRdWVyeSkgJiYgc2VsZWN0UXVlcnktPmNvbW1hbmRUeXBlID09 IENNRF9TRUxFQ1QpOworCisJLyoKKwkgKiBHZW5lcmF0ZSBhbiBleHByZXNzaW9uIGxpc3QgZm9y IHRoZSBMRVQgdGhhdCBzZWxlY3RzIGFsbCB0aGUgbm9uLXJlc2p1bmsKKwkgKiBjb2x1bW5zIGZy b20gdGhlIHN1YnF1ZXJ5LgorCSAqLworCWV4cHJMaXN0ID0gTklMOworCWZvcmVhY2hfbm9kZShU YXJnZXRFbnRyeSwgdGxlLCBzZWxlY3RRdWVyeS0+dGFyZ2V0TGlzdCkKKwl7CisJCWlmICh0bGUt PnJlc2p1bmspCisJCQljb250aW51ZTsKKworCQlleHByTGlzdCA9IGxhcHBlbmQoZXhwckxpc3Qs IHRsZS0+ZXhwcik7CisJfQorCisJLyogZG9uJ3QgYWxsb3cgbXVsdGljb2x1bW4gcmVzdWx0ICov CisJaWYgKGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSAhPSAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnX3BsdXJhbCgiYXNz aWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbiIsCisJCQkJCQkJICAgImFzc2ln bm1lbnQgZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW5zIiwKKwkJCQkJCQkgICBsaXN0X2xl bmd0aChleHByTGlzdCksCisJCQkJCQkJICAgbGlzdF9sZW5ndGgoZXhwckxpc3QpKSwKKwkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAq KSBleHByTGlzdCkpKSk7CisKKwlleHByTGlzdENvZXIgPSBOSUw7CisKKwlmb3JlYWNoKGxjLCBl eHByTGlzdCkKKwl7CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlF eHByCSAgICpjb2VyY2VkX2V4cHI7CisJCU9pZAkJCWV4cHJ0eXBpZDsKKworCQkvKiBub3cgd2Ug Y2FuIHJlYWQgdGhlIHR5cGUgb2YgdGhlIGV4cHJlc3Npb24gKi8KKwkJZXhwcnR5cGlkID0gZXhw clR5cGUoKE5vZGUgKikgZXhwcik7CisKKwkJaWYgKGluZGlyZWN0aW9uX2hlYWQpCisJCXsKKwkJ CWJvb2wJCXRhcmdldElzQXJyYXk7CisJCQljaGFyCSAgICp0YXJnZXROYW1lOworCQkJUGFyYW0J ICAgKnBhcmFtOworCisJCQl0YXJnZXROYW1lID0gZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2 YXJpZCk7CisJCQl0YXJnZXRJc0FycmF5ID0gT2lkSXNWYWxpZChnZXRfZWxlbWVudF90eXBlKHR5 cGlkKSk7CisKKwkJCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKworCQkJ cGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisJCQlwYXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFS SUFCTEU7CisJCQlwYXJhbS0+cGFyYW12YXJpZCA9IHZhcmlkOworCQkJcGFyYW0tPnBhcmFtdHlw ZSA9IHR5cGlkOworCQkJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCisJCQkvKgorCQkJ ICogVGhlIHBhcmFtZXRlciB1c2VkIGFzIGJhc2Vub2RlIGhhcyB0byBoYXZlIHNwZWNpYWwKKwkJ CSAqIG1hcmssIGJlY2F1c2UgcmVxdWlyZXMgc3BlY2lhbCBhY2Nlc3Mgd2hlbiB3ZSBkbworCQkJ ICogU0VMRUNUIGFjY2VzcyBjaGVjay4KKwkJCSAqLworCQkJcGFyYW0tPnBhcmFtYmFzZW5vZGUg PSB0cnVlOworCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAqKQorCQkJCXRyYW5zZm9ybUFzc2ln bm1lbnRJbmRpcmVjdGlvbihwc3RhdGUsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIHBhcmFtLAor CQkJCQkJCQkJCQkgICB0YXJnZXROYW1lLAorCQkJCQkJCQkJCQkgICB0YXJnZXRJc0FycmF5LAor CQkJCQkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkJCQkJICAgdHlwbW9kLAorCQkJCQkJCQkJCQkg ICBJbnZhbGlkT2lkLAorCQkJCQkJCQkJCQkgICBzdG10LT50YXJnZXQsCisJCQkJCQkJCQkJCSAg IGluZGlyZWN0aW9uX2hlYWQsCisJCQkJCQkJCQkJCSAgIChOb2RlICopIGV4cHIsCisJCQkJCQkJ CQkJCSAgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPmxvY2F0aW9u KTsKKwkJfQorCQllbHNlCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAqKQorCQkJCWNvZXJjZV90 b190YXJnZXRfdHlwZShwc3RhdGUsCisJCQkJCQkJCQkgIChOb2RlICopIGV4cHIsCisJCQkJCQkJ CQkgIGV4cHJ0eXBpZCwKKwkJCQkJCQkJCSAgdHlwaWQsIHR5cG1vZCwKKwkJCQkJCQkJCSAgQ09F UkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NBU1QsCisJCQkJ CQkJCQkgIHN0bXQtPmxvY2F0aW9uKTsKKworCQlpZiAoY29lcmNlZF9leHByID09IE5VTEwpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENI KSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlzIG9mIHR5cGUgJXMsIGJ1dCBl eHByZXNzaW9uIGlzIG9mIHR5cGUgJXMiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCksCisJCQkJ CQkJZm9ybWF0X3R5cGVfYmUoZXhwcnR5cGlkKSksCisJCQkJCSBlcnJoaW50KCJZb3Ugd2lsbCBu ZWVkIHRvIHJld3JpdGUgb3IgY2FzdCB0aGUgZXhwcmVzc2lvbi4iKSwKKwkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbigoTm9kZSAqKSBleHByKSkpKTsKKworCQll eHByTGlzdENvZXIgPSBsYXBwZW5kKGV4cHJMaXN0Q29lciwgY29lcmNlZF9leHByKTsKKwl9CisK KwkvKiBnZW5lcmF0ZSBxdWVyeSdzIHRhcmdldCBsaXN0IHVzaW5nIHRoZSBjb21wdXRlZCBsaXN0 IG9mIGV4cHJlc3Npb25zICovCisJcXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CisJcXVlcnktPmNv bW1hbmRUeXBlID0gQ01EX1NFTEVDVDsKKworCWZvcmVhY2gobGMsIGV4cHJMaXN0Q29lcikKKwl7 CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlUYXJnZXRFbnRyeSAq dGxlOworCisJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeShleHByLAorCQkJCQkJCSAgaSArIDEsCisJ CQkJCQkJICBGaWd1cmVDb2xuYW1lKChOb2RlICopIGV4cHIpLAorCQkJCQkJCSAgZmFsc2UpOwor CQlxdWVyeS0+dGFyZ2V0TGlzdCA9IGxhcHBlbmQocXVlcnktPnRhcmdldExpc3QsIHRsZSk7CisJ fQorCisJLyogZG9uZSBidWlsZGluZyB0aGUgcmFuZ2UgdGFibGUgYW5kIGpvaW50cmVlICovCisJ cXVlcnktPnJ0YWJsZSA9IHBzdGF0ZS0+cF9ydGFibGU7CisJcXVlcnktPmpvaW50cmVlID0gbWFr ZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CisKKwlxdWVyeS0+aGFzVGFyZ2V0 U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOworCXF1ZXJ5LT5oYXNTdWJMaW5rcyA9IHBz dGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0 ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOworCisJLyogdGhpcyBpcyB0b3AtbGV2ZWwgcXVlcnkg Ki8KKwlxdWVyeS0+Y2FuU2V0VGFnID0gdHJ1ZTsKKworCS8qCisJICogU2F2ZSB0YXJnZXQgc2Vz c2lvbiB2YXJpYWJsZSBJRC4gSXQgaXMgdXNlZCBsYXRlciBmb3IKKwkgKiBhY3F1aXJpbmcgYW4g QWNjZXNzU2hhcmVMb2NrIG9uIHRhcmdldCB2YXJpYWJsZSwgc2V0dGluZworCSAqIHBsYW4gZGVw ZW5kZW5jeSBhbmQgZmluYWxseSBmb3IgY3JlYXRpbmcgVmFyaWFibGVEZXN0UmVjZWl2ZXIuCisJ ICovCisJcXVlcnktPnJlc3VsdFZhcmlhYmxlID0gdmFyaWQ7CisKKwlhc3NpZ25fcXVlcnlfY29s bGF0aW9ucyhwc3RhdGUsIHF1ZXJ5KTsKKworCS8qCisJICogVGhlIHF1ZXJ5IGlzIGV4ZWN1dGVk IGFzIHV0aWxpdHkgY29tbWFuZCBieSBuZXN0ZWQgZXhlY3V0b3IgY2FsbC4KKwkgKiBBc3NpZ25l ZCBxdWVyeUlkIGlzIHJlcXVpcmVkIGluIHRoaXMgY2FzZS4KKwkgKi8KKwlpZiAoSXNRdWVyeUlk RW5hYmxlZCgpKQorCQlKdW1ibGVRdWVyeShxdWVyeSk7CisKKwlzdG10LT5xdWVyeSA9IChOb2Rl ICopIHF1ZXJ5OworCisJLyogcmVwcmVzZW50IHRoZSBjb21tYW5kIGFzIGEgdXRpbGl0eSBRdWVy eSAqLworCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlyZXN1bHQtPmNvbW1hbmRUeXBlID0g Q01EX1VUSUxJVFk7CisJcmVzdWx0LT51dGlsaXR5U3RtdCA9IChOb2RlICopIHN0bXQ7CisKKwly ZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdCAtCiAg KgkgIHRyYW5zZm9ybXMgYSBzZXQtb3BlcmF0aW9ucyB0cmVlCkBAIC0yMDIwLDYgKzIyNjUsNyBA QCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3Rt dCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNz OwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+ aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBsb2NraW5nQ2xh dXNlKQogCXsKQEAgLTI0OTUsNiArMjc0MSw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBw c3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5w X2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAK IAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI1NjIsNiArMjgw OSw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10 ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7 CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nl c3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2ln bl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjg1Miw5ICszMTAwLDE1IEBA IHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAq c3RtdCkKIAkvKgogCSAqIFRyYW5zZm9ybSB0aGUgdGFyZ2V0IHJlZmVyZW5jZS4gIFR5cGljYWxs eSB3ZSB3aWxsIGdldCBiYWNrIGEgUGFyYW0KIAkgKiBub2RlLCBidXQgdGhlcmUncyBubyByZWFz b24gdG8gYmUgdG9vIHBpY2t5IGFib3V0IGl0cyB0eXBlLgorCSAqCisJICogU2Vzc2lvbiB2YXJp YWJsZXMgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIHRhcmdldCBvZiBhIFBML3BnU1FMIGFzc2lnbgor CSAqIHN0YXRlbWVudC4gIFNvIHdlIHNob3VsZCB1c2UgYSBkZWRpY2F0ZWQgZXhwcmVzc2lvbiBr aW5kIGFuZCBkaXNhbGxvdworCSAqIHNlc3Npb24gdmFyaWFibGVzIHRoZXJlLiAgVGhlIGRlZGlj YXRlZCBjb250ZXh0IGFsbG93cyB0byBlbGltaW5hdGUKKwkgKiB1bmRlc2lyYWJsZSB3YXJuaW5n cyBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgYSB0YXJnZXQgUEwvcGdTUUwgdmFyaWFibGUKKwkg KiBzaGFkb3dpbmcgYSBzZXNzaW9uIHZhcmlhYmxlLgogCSAqLwogCXRhcmdldCA9IHRyYW5zZm9y bUV4cHIocHN0YXRlLCAoTm9kZSAqKSBjcmVmLAotCQkJCQkJICAgRVhQUl9LSU5EX1VQREFURV9U QVJHRVQpOworCQkJCQkJICAgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQpOwogCXRhcmdldHR5cGUg PSBleHByVHlwZSh0YXJnZXQpOwogCXRhcmdldHR5cG1vZCA9IGV4cHJUeXBtb2QodGFyZ2V0KTsK IAl0YXJnZXRjb2xsYXRpb24gPSBleHByQ29sbGF0aW9uKHRhcmdldCk7CkBAIC0yODk2LDYgKzMx NTAsMTAgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3Np Z25TdG10ICpzdG10KQogCSAqLwogCXR5cGVfaWQgPSBleHByVHlwZSgoTm9kZSAqKSB0bGUtPmV4 cHIpOwogCisJLyoKKwkgKiBGb3IgaW5kaXJlY3Rpb24gcHJvY2Vzc2luZyBhbmQgYWRkaXRpb25h bCBjYXN0cyB3ZSBjYW4gdXNlIGV4cHJfa2luZAorCSAqIEVYUFJfS0lORF9VUERBVEVfVEFSR0VU LgorCSAqLwogCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVDsK IAogCWlmIChpbmRpcmVjdGlvbikKQEAgLTMwMzgsNiArMzI5Niw4IEBAIHRyYW5zZm9ybVBMQXNz aWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkJCQkJCQkg ICAoTG9ja2luZ0NsYXVzZSAqKSBsZmlyc3QobCksIGZhbHNlKTsKIAl9CiAKKwlxcnktPmhhc1Nl c3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCWFzc2ln bl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIAogCS8qIHRoaXMgbXVzdCBiZSBkb25l IGFmdGVyIGNvbGxhdGlvbnMsIGZvciByZWxpYWJsZSBjb21wYXJpc29uIG9mIGV4cHJzICovCkBA IC0zMzExLDYgKzM1NzEsMTYgQEAgdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBDYWxsU3RtdCAqc3RtdCkKIAkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwt PmxvY2F0aW9uKTsKIAorCS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBh cmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24KKwkgKiBleGVjdXRvciBjYWxsLiAg VGhpcyBwYXRoIGlzIHVuc3VwcG9ydGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3aWxsIGJlCisJ ICogZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJs ZXMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQg YXMgYW4gYXJndW1lbnQiKSkpOworCiAJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIG5v ZGUpOwogCiAJZmV4cHIgPSBjYXN0Tm9kZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRl eCAyZGUyMDIyYjI4MS4uZDM0ZWEzOWJjODMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjk3LDcgKzI5Nyw3 IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBM aXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCURyb3BUcmFuc2Zvcm1TdG10CiAJCURyb3BV c2VyTWFwcGluZ1N0bXQgRXhwbGFpblN0bXQgRmV0Y2hTdG10CiAJCUdyYW50U3RtdCBHcmFudFJv bGVTdG10IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10IEluZGV4U3RtdCBJbnNlcnRTdG10Ci0JCUxp c3RlblN0bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFi bGVTdG10IFByZXBhcmFibGVTdG10CisJCUxldFN0bXQgTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2Nr U3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQK IAkJQ3JlYXRlRnVuY3Rpb25TdG10IEFsdGVyRnVuY3Rpb25TdG10IFJlaW5kZXhTdG10IFJlbW92 ZUFnZ3JTdG10CiAJCVJlbW92ZUZ1bmNTdG10IFJlbW92ZU9wZXJTdG10IFJlbmFtZVN0bXQgUmV0 dXJuU3RtdCBSZXZva2VTdG10IFJldm9rZVJvbGVTdG10CiAJCVJ1bGVBY3Rpb25TdG10IFJ1bGVB Y3Rpb25TdG10T3JFbXB0eSBSdWxlU3RtdApAQCAtNzQyLDcgKzc0Miw3IEBAIHN0YXRpYyBOb2Rl ICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAJS0VFUCBLRVkgS0VZUwogCiAJTEFCRUwgTEFOR1VBR0UgTEFSR0VfUCBM QVNUX1AgTEFURVJBTF9QCi0JTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBMRVZFTCBMSUtF IExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCisJTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBM RVQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJ TUVTVEFNUCBMT0NBVElPTiBMT0NLX1AgTE9DS0VEIExPR0dFRAogCiAJTUFQUElORyBNQVRDSCBN QVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVJHRV9BQ1RJT04gTUVUSE9ECkBA IC0xMDg5LDYgKzEwODksNyBAQCBzdG10OgogCQkJfCBJbXBvcnRGb3JlaWduU2NoZW1hU3RtdAog CQkJfCBJbmRleFN0bXQKIAkJCXwgSW5zZXJ0U3RtdAorCQkJfCBMZXRTdG10CiAJCQl8IExpc3Rl blN0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10CiAJCQl8IExvYWRTdG10CkBAIC0xMjg0NSw2 ICsxMjg0NiwzOCBAQCBvcHRfaG9sZDogLyogRU1QVFkgKi8JCQkJCQl7ICQkID0gMDsgfQogCQkJ fCBXSVRIT1VUIEhPTEQJCQkJCXsgJCQgPSAwOyB9CiAJCTsKIAorLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisgKgorICoJCVFVRVJZOgorICoJCQkJTEVUIFNUQVRFTUVOVAorICoKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KK0xldFN0bXQ6CUxFVCBDb2xJZCBvcHRfaW5kaXJlY3Rpb24gJz0nIGFfZXhw cgorCQkJCXsKKwkJCQkJTGV0U3RtdAkgICAqbiA9IG1ha2VOb2RlKExldFN0bXQpOworCQkJCQlT ZWxlY3RTdG10ICpzZWxlY3Q7CisJCQkJCVJlc1RhcmdldCAgKnJlczsKKworCQkJCQluLT50YXJn ZXQgPSBsY29ucyhtYWtlU3RyaW5nKCQyKSwKKwkJCQkJCQkJCSAgY2hlY2tfaW5kaXJlY3Rpb24o JDMsIHl5c2Nhbm5lcikpOworCisJCQkJCXNlbGVjdCA9IG1ha2VOb2RlKFNlbGVjdFN0bXQpOwor CQkJCQlyZXMgPSBtYWtlTm9kZShSZXNUYXJnZXQpOworCisJCQkJCS8qIGNyZWF0ZSB0YXJnZXQg bGlzdCBmb3IgaW1wbGljaXQgcXVlcnkgKi8KKwkJCQkJcmVzLT5uYW1lID0gTlVMTDsKKwkJCQkJ cmVzLT5pbmRpcmVjdGlvbiA9IE5JTDsKKwkJCQkJcmVzLT52YWwgPSAoTm9kZSAqKSAkNTsKKwkJ CQkJcmVzLT5sb2NhdGlvbiA9IEA1OworCisJCQkJCXNlbGVjdC0+dGFyZ2V0TGlzdCA9IGxpc3Rf bWFrZTEocmVzKTsKKwkJCQkJbi0+cXVlcnkgPSAoTm9kZSAqKSBzZWxlY3Q7CisKKwkJCQkJbi0+ bG9jYXRpb24gPSBAMjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6CkBAIC0xNzkxNiw2ICsxNzk0OSw3IEBA IHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTEFSR0VfUAogCQkJfCBMQVNUX1AKIAkJCXwgTEVB S1BST09GCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSVNURU4KIAkJCXwgTE9BRApAQCAt MTg1MjksNiArMTg1NjMsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IExFQUtQUk9PRgog CQkJfCBMRUFTVAogCQkJfCBMRUZUCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSUtFCiAJ CQl8IExJU1RFTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDllNTY3ZjNjYzQ1Li40NzM3YjA0 ZDE3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTgwLDYgKzU4MCwxMSBAQCBjaGVja19h Z2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikK IAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdO X1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVl OworCQkJYnJlYWs7CisKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRl ZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKIAkJCSAqIGNvbXBpbGVyIHdpbGwgd2FybiBp ZiB3ZSBhZGQgYSBuZXcgUGFyc2VFeHByS2luZCB3aXRob3V0CkBAIC05NzAsNiArOTc1LDEwIEBA IHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAq d2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsK IAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJf S0lORF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYmFkMWRmNzMyZWEuLjRmMjA4Yzdl ZmRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE3LDYgKzE3LDcgQEAKIAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Ri Y29tbWFuZHMuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtl ZnVuY3MuaCIKQEAgLTMzLDExICszNCwxMyBAQAogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxh dGlvbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90YXJnZXQuaCIKICNpbmNsdWRlICJwYXJz ZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0 aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxz L2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRp bHMvdGltZXN0YW1wLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy94bWwuaCIKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KQEAgLTEwNiw2ICsxMDksOSBAQCBz dGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9vcChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm9w bmFtZSwKIAkJCQkJCQkgIE5vZGUgKmx0cmVlLCBOb2RlICpydHJlZSwgaW50IGxvY2F0aW9uKTsK IHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKK3N0YXRpYyBO b2RlICptYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJ CQkJICBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJ CQkJCQkJICBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKIAogCiAvKgpAQCAtNDk5LDYg KzUwNSw4OSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5k aXJlY3Rpb24gKmluZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogUmV0dXJucyB0cnVl IGlmIHRoZSBnaXZlbiBleHByZXNzaW9uIGtpbmQgaXMgdmFsaWQgZm9yIHNlc3Npb24gdmFyaWFi bGVzLgorICogU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHVzZWQgZXZlcnl3aGVyZSB3aGVyZSBl eHRlcm5hbCBwYXJhbWV0ZXJzIGNhbiBiZQorICogdXNlZC4gIFNlc3Npb24gdmFyaWFibGVzIGFy ZSBub3QgYWxsb3dlZCBpbiBEREwgY29tbWFuZHMgb3IgaW4gY29uc3RyYWludHMuCisgKgorICog QW4gaWRlbnRpZmllciBjYW4gYmUgcGFyc2VkIGFzIGEgc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IGZv ciBleHByZXNzaW9uIGtpbmRzCisgKiB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgYWxsb3dl ZC4gIFRoaXMgaXMgdGhlIHByaW1hcnkgdXNhZ2Ugb2YgdGhpcworICogZnVuY3Rpb24uCisgKgor ICogVGhlIHNlY29uZCB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGRlY2lkZSB3aGV0aGVy IGEgImNvbHVtbiBkb2VzIG5vdAorICogZXhpc3QiIG9yIGEgImNvbHVtbiBvciB2YXJpYWJsZSBk b2VzIG5vdCBleGlzdCIgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUKKyAqIHByaW50ZWQuICBXaGVu IHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGNhbm5vdCBi ZQorICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3IgbWVzc2FnZS4KKyAq Lworc3RhdGljIGJvb2wKK2V4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMoUGFyc2VF eHByS2luZCBwX2V4cHJfa2luZCkKK3sKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCXN3aXRj aCAocF9leHByX2tpbmQpCisJeworCQljYXNlIEVYUFJfS0lORF9OT05FOgorCQkJQXNzZXJ0KGZh bHNlKTsJCS8qIGNhbid0IGhhcHBlbiAqLworCQkJcmV0dXJuIGZhbHNlOworCisJCS8qIHNlc3Np b24gdmFyaWFibGVzIGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfT1RIRVI6CisJCWNhc2Ug RVhQUl9LSU5EX0pPSU5fT046CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fU1VCU0VMRUNUOgorCQlj YXNlIEVYUFJfS0lORF9GUk9NX0ZVTkNUSU9OOgorCQljYXNlIEVYUFJfS0lORF9XSEVSRToKKwkJ Y2FzZSBFWFBSX0tJTkRfSEFWSU5HOgorCQljYXNlIEVYUFJfS0lORF9GSUxURVI6CisJCWNhc2Ug RVhQUl9LSU5EX1dJTkRPV19QQVJUSVRJT046CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19PUkRF UjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JBTkdFOgorCQljYXNlIEVYUFJfS0lO RF9XSU5ET1dfRlJBTUVfUk9XUzoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX0dST1VQ UzoKKwkJY2FzZSBFWFBSX0tJTkRfU0VMRUNUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5T RVJUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1NPVVJDRToKKwkJY2FzZSBFWFBS X0tJTkRfVVBEQVRFX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfV0hFTjoKKwkJY2Fz ZSBFWFBSX0tJTkRfTUVSR0VfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lORF9HUk9VUF9CWToK KwkJY2FzZSBFWFBSX0tJTkRfT1JERVJfQlk6CisJCWNhc2UgRVhQUl9LSU5EX0RJU1RJTkNUX09O OgorCQljYXNlIEVYUFJfS0lORF9MSU1JVDoKKwkJY2FzZSBFWFBSX0tJTkRfT0ZGU0VUOgorCQlj YXNlIEVYUFJfS0lORF9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFUzoKKwkJY2Fz ZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKKwkJY2FzZSBFWFBSX0tJTkRfQUxURVJfQ09MX1RS QU5TRk9STToKKwkJY2FzZSBFWFBSX0tJTkRfRVhFQ1VURV9QQVJBTUVURVI6CisJCWNhc2UgRVhQ Ul9LSU5EX1BPTElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ0FMTF9BUkdVTUVOVDoKKwkJY2FzZSBF WFBSX0tJTkRfQ09QWV9XSEVSRToKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJl c3VsdCA9IHRydWU7CisJCQlicmVhazsKKworCQkvKiBzZXNzaW9uIHZhcmlhYmxlcyBub3QgYWxs b3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgorCQljYXNlIEVYUFJf S0lORF9ET01BSU5fQ0hFQ0s6CisJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgorCQlj YXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9JTkRFWF9F WFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9JTkRFWF9QUkVESUNBVEU6CisJCWNhc2UgRVhQ Ul9LSU5EX1NUQVRTX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX1RSSUdHRVJfV0hFTjoK KwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0JPVU5EOgorCQljYXNlIEVYUFJfS0lORF9QQVJU SVRJT05fRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKKwkJ Y2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoKKwkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoK KwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJlc3VsdCA9IGZhbHNlOworCQkJ YnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIFRyYW5zZm9ybSBhIENv bHVtblJlZi4KICAqCkBAIC01NzUsNiArNjY0LDggQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9DT1BZX1dI RVJFOgogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVY UFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAKQEAgLTg0Nyw4 ICs5MzgsNjEgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1u UmVmICpjcmVmKQogCX0KIAogCS8qCi0JICogVGhyb3cgZXJyb3IgaWYgbm8gdHJhbnNsYXRpb24g Zm91bmQuCisJICogVGhlcmUgYXJlIGNvbnRleHRzIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGFy ZSBub3QgYWxsb3dlZC4gIFdlIGRvbid0CisJICogbmVlZCB0byBpZGVudGlmeSBzZXNzaW9uIHZh cmlhYmxlcyBpbiBzdWNoIGEgY29udGV4dCwgYnV0IGlkZW50aWZ5aW5nCisJICogdGhlbSBhbGxv d3MgdXMgdG8gcmFpc2UgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlcyBsaWtlICJ5b3UgY2Fubm90 IHVzZQorCSAqIHNlc3Npb24gdmFyaWFibGVzIGhlcmUiLgogCSAqLworCWlmIChleHByX2tpbmRf YWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCXsKKwkJT2lk CQkJdmFyaWQgPSBJbnZhbGlkT2lkOworCQljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJCWJv b2wJCW5vdF91bmlxdWU7CisKKwkJLyogLS0tLS0KKwkJICogU2Vzc2lvbiB2YXJpYWJsZXMgYXJl IHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUgdmFyaWFibGVzIG9yCisJCSAqIHJvdXRpbmUg YXJndW1lbnRzLiAgV2UgY2VydGFpbmx5IGRvbid0IHdhbnQgdG8gdXNlIGEgc2Vzc2lvbiB2YXJp YWJsZQorCQkgKiB3aGVuIGl0IGlzIGV4YWN0bHkgc2hhZG93ZWQsIGJ1dCBhIFJURSBsaWtlIHRo aXMgaXMgY29uY2VpdmFibGU6CisJCSAqCisJCSAqIENSRUFURSBUWVBFIHQgQVMgKGMgaW50KTsK KwkJICogQ1JFQVRFIFZBUklBQkxFIGZvbyBBUyB0OworCQkgKiBDUkVBVEUgVEFCTEUgZm9vKGEg aW50LCBiIGludCk7CisJCSAqCisJCSAqIFNFTEVDVCBmb28uYSwgZm9vLmIsIGZvby5jIEZST00g Zm9vOworCQkgKgorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5nLCBzbyB3ZSBk aXNhbGxvdyBpdC4gIFdlIGRvbid0IHRyeSB0bworCQkgKiBpZGVudGlmeSBhIHZhcmlhYmxlIGlm IHdlIGtub3cgdGhhdCBpdCB3b3VsZCBiZSBzaGFkb3dlZC4KKwkJICogLS0tLS0KKwkJICovCisJ CWlmICghbm9kZSAmJiAhKHJlbG5hbWUgJiYgY3JlcnIgPT0gQ1JFUlJfTk9fQ09MVU1OKSkKKwkJ eworCQkJLyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxl ICovCisJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUs ICZub3RfdW5pcXVlLCBmYWxzZSk7CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCXsK KwkJCQlPaWQJCQl0eXBpZDsKKwkJCQlpbnQzMgkJdHlwbW9kOworCQkJCU9pZAkJCWNvbGxpZDsK KworCQkJCWlmIChub3RfdW5pcXVlKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSByZWZlcmVuY2UgXCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQkJCQlOYW1l TGlzdFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKKworCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5 cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJCQkm Y29sbGlkKTsKKworCQkJCW5vZGUgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRlLAor CQkJCQkJCQkJCQkJdmFyaWQsIHR5cGlkLCB0eXBtb2QsIGNvbGxpZCwKKwkJCQkJCQkJCQkJCWF0 dHJuYW1lLCBjcmVmLT5sb2NhdGlvbik7CisJCQl9CisJCX0KKwl9CisKKwkvKiB0aHJvdyBhbiBl cnJvciBpZiBubyB0cmFuc2xhdGlvbiB3YXMgZm91bmQgKi8KIAlpZiAobm9kZSA9PSBOVUxMKQog CXsKIAkJc3dpdGNoIChjcmVycikKQEAgLTg4MCw2ICsxMDI0LDc1IEBAIHRyYW5zZm9ybUNvbHVt blJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAlyZXR1cm4gbm9kZTsK IH0KIAorLyoKKyAqIEdlbmVyYXRlIHBhcmFtIHZhcmlhYmxlIGZvciByZWZlcmVuY2UgdG8gc2Vz c2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgTm9kZSAqCittYWtlUGFyYW1TZXNzaW9uVmFyaWFi bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQz MiB0eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkgY2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlv bikKK3sKKwlQYXJhbQkgICAqcGFyYW07CisKKwlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwor CXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwlwYXJhbS0+cGFyYW12YXJpZCA9 IHZhcmlkOworCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwlwYXJhbS0+cGFyYW10eXBtb2Qg PSB0eXBtb2Q7CisJcGFyYW0tPnBhcmFtY29sbGlkID0gY29sbGlkOworCisJcHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJaWYgKGF0dHJuYW1lICE9IE5VTEwpCisJewor CQlUdXBsZURlc2MJdHVwZGVzYzsKKwkJaW50CQkJaTsKKworCQl0dXBkZXNjID0gbG9va3VwX3Jv d3R5cGVfdHVwZGVzY19ub2Vycm9yKHR5cGlkLCB0eXBtb2QsIHRydWUpOworCQlpZiAoIXR1cGRl c2MpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVD VF9UWVBFKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlzIG9mIHR5cGUgXCIl c1wiLCB3aGljaCBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQkJZ2V0X25hbWVzcGFj ZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHR5 cGlkKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwor CQlmb3IgKGkgPSAwOyBpIDwgdHVwZGVzYy0+bmF0dHM7IGkrKykKKwkJeworCQkJRm9ybV9wZ19h dHRyaWJ1dGUgYXR0ID0gVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKTsKKworCQkJaWYgKHN0cmNt cChhdHRybmFtZSwgTmFtZVN0cihhdHQtPmF0dG5hbWUpKSA9PSAwICYmCisJCQkJIWF0dC0+YXR0 aXNkcm9wcGVkKQorCQkJeworCQkJCS8qIHN1Y2Nlc3MsIHNvIGdlbmVyYXRlIGEgRmllbGRTZWxl Y3QgZXhwcmVzc2lvbiAqLworCQkJCUZpZWxkU2VsZWN0ICpmc2VsZWN0ID0gbWFrZU5vZGUoRmll bGRTZWxlY3QpOworCisJCQkJZnNlbGVjdC0+YXJnID0gKEV4cHIgKikgcGFyYW07CisJCQkJZnNl bGVjdC0+ZmllbGRudW0gPSBpICsgMTsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBlID0gYXR0LT5h dHR0eXBpZDsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBtb2QgPSBhdHQtPmF0dHR5cG1vZDsKKwkJ CQkvKiBzYXZlIGF0dHJpYnV0ZSdzIGNvbGxhdGlvbiBmb3IgcGFyc2VfY29sbGF0ZS5jICovCisJ CQkJZnNlbGVjdC0+cmVzdWx0Y29sbGlkID0gYXR0LT5hdHRjb2xsYXRpb247CisKKwkJCQlSZWxl YXNlVHVwbGVEZXNjKHR1cGRlc2MpOworCQkJCXJldHVybiAoTm9kZSAqKSBmc2VsZWN0OworCQkJ fQorCQl9CisKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5F RF9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBjb2x1bW4gXCIlc1wi IGluIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQlhdHRybmFtZSwKKwkJCQkJCWdldF9uYW1l c3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJ CWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJfQorCisJcmV0dXJuIChOb2RlICopIHBhcmFtOwor fQorCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRlICpwc3RhdGUs IFBhcmFtUmVmICpwcmVmKQogewpAQCAtMTgxNSw2ICsyMDI4LDcgQEAgdHJhbnNmb3JtU3ViTGlu ayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5E X1ZBTFVFUzoKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKIAkJY2FzZSBFWFBSX0tJ TkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCS8qIG9rYXkg Ki8KIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgpAQCAtMTg1 OCw2ICsyMDcyLDkgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1Ykxp bmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCQllcnIg PSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24i KTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJZXJyID0g XygiY2Fubm90IHVzZSBzdWJxdWVyeSBhcyB0YXJnZXQgb2YgYXNzaWduIHN0YXRlbWVudCIpOwor CQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1 bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTMyMDcsNiArMzQyNCwxMCBAQCBQYXJzZUV4 cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJHRU5FUkFURUQg QVMiOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJcmV0dXJuICJDWUNMRSI7CisJ CWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQlyZXR1cm4gIkFTU0lHTiI7CisJCWNh c2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQlyZXR1cm4gIkxFVCI7CiAKIAkJCS8qCiAJCQkg KiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0 aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDU4M2JiYmYyMzJmLi5kYzI1ZjZkY2QwZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0yNjU2LDYgKzI2NTYsOCBAQCBjaGVja19zcmZf Y2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxv Y2F0aW9uKQogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxv d2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2Fz ZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoK KwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJl YWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKaW5kZXggNTFkNzcwM2VmZjcuLjI0NGVmY2Rk ZjMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIHRyYW5z Zm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3RtdCkKIAogCXFy eS0+aGFzVGFyZ2V0U1JGcyA9IGZhbHNlOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBf aGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nl c3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tlbmQvdGNv cC9kZXN0LmMKaW5kZXggYjQ0ZjkwNzIyODAuLjQ0NmM3MTk1M2JmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC90Y29wL2Rlc3QuYworKysgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwpAQCAtMzgs NiArMzgsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL3RxdWV1ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2VpdmVyLmgiCisj aW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJsaWJwcS9s aWJwcS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAKQEAgLTE1NSw2ICsxNTYsOSBA QCBDcmVhdGVEZXN0UmVjZWl2ZXIoQ29tbWFuZERlc3QgZGVzdCkKIAogCQljYXNlIERlc3RFeHBs YWluU2VyaWFsaXplOgogCQkJcmV0dXJuIENyZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2 ZXIoTlVMTCk7CisKKwkJY2FzZSBEZXN0VmFyaWFibGU6CisJCQlyZXR1cm4gQ3JlYXRlVmFyaWFi bGVEZXN0UmVjZWl2ZXIoSW52YWxpZE9pZCk7CiAJfQogCiAJLyogc2hvdWxkIG5ldmVyIGdldCBo ZXJlICovCkBAIC0xOTEsNiArMTk1LDcgQEAgRW5kQ29tbWFuZChjb25zdCBRdWVyeUNvbXBsZXRp b24gKnFjLCBDb21tYW5kRGVzdCBkZXN0LCBib29sIGZvcmNlX3VuZGVjb3JhdGVkX28KIAkJY2Fz ZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RF eHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0K QEAgLTIzNyw2ICsyNDIsNyBAQCBOdWxsQ29tbWFuZChDb21tYW5kRGVzdCBkZXN0KQogCQljYXNl IERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4 cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpA QCAtMjgxLDYgKzI4Nyw3IEBAIFJlYWR5Rm9yUXVlcnkoQ29tbWFuZERlc3QgZGVzdCkKIAkJY2Fz ZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RF eHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKaW5kZXggOTlhNTE4NzdkMzQuLjdhNTA4YTM2NDRmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3NjaGVtYWNtZHMuaCIKICNp bmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNl LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMu aCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCkBAIC0yMzUsNiArMjM2LDcgQEAg Q2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCiAJCWNh c2UgVF9DYWxsU3RtdDoKIAkJY2FzZSBUX0RvU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQl7 CiAJCQkJLyoKIAkJCQkgKiBDb21tYW5kcyBpbnNpZGUgdGhlIERPIGJsb2NrIG9yIHRoZSBjYWxs ZWQgcHJvY2VkdXJlIG1pZ2h0CkBAIC0xMDY3LDYgKzEwNjksMTEgQEAgc3RhbmRhcmRfUHJvY2Vz c1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2Ug VF9MZXRTdG10OgorCQkJRXhlY3V0ZUxldFN0bXQocHN0YXRlLCAoTGV0U3RtdCAqKSBwYXJzZXRy ZWUsIHBhcmFtcywKKwkJCQkJCSAgIHF1ZXJ5RW52LCBxYyk7CisJCQlicmVhazsKKwogCQlkZWZh dWx0OgogCQkJLyogQWxsIG90aGVyIHN0YXRlbWVudCB0eXBlcyBoYXZlIGV2ZW50IHRyaWdnZXIg c3VwcG9ydCAqLwogCQkJUHJvY2Vzc1V0aWxpdHlTbG93KHBzdGF0ZSwgcHN0bXQsIHF1ZXJ5U3Ry aW5nLApAQCAtMjIwNiw2ICsyMjEzLDEwIEBAIFV0aWxpdHlDb250YWluc1F1ZXJ5KE5vZGUgKnBh cnNldHJlZSkKIAkJCQlyZXR1cm4gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXJ5LT51dGlsaXR5U3Rt dCk7CiAJCQlyZXR1cm4gcXJ5OwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcXJ5ID0gY2FzdE5v ZGUoUXVlcnksICgoTGV0U3RtdCAqKSBwYXJzZXRyZWUpLT5xdWVyeSk7CisJCQlyZXR1cm4gcXJ5 OworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC0yNDA0LDYgKzI0MTUsMTAg QEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcgPSBDTURUQUdfU0VM RUNUOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQl0YWcgPSBDTURUQUdfTEVU OworCQkJYnJlYWs7CisKIAkJCS8qIHV0aWxpdHkgc3RhdGVtZW50cyAtLS0gc2FtZSB3aGV0aGVy IHJhdyBvciBjb29rZWQgKi8KIAkJY2FzZSBUX1RyYW5zYWN0aW9uU3RtdDoKIAkJCXsKQEAgLTMy ODksNiArMzMwNCw3IEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUpCiAJCQli cmVhazsKIAogCQljYXNlIFRfUExBc3NpZ25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCWxl diA9IExPR1NUTVRfQUxMOwogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpp bmRleCA1NGRhZDk3NTU1My4uNzQxNzA1NGMzOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1 ZGUgImNvbW1vbi9rZXl3b3Jkcy5oIgpAQCAtNTMxLDYgKzUzMiw3IEBAIHN0YXRpYyBjaGFyICpn ZW5lcmF0ZV9mdW5jdGlvbl9uYW1lKE9pZCBmdW5jaWQsIGludCBuYXJncywKIHN0YXRpYyBjaGFy ICpnZW5lcmF0ZV9vcGVyYXRvcl9uYW1lKE9pZCBvcGVyaWQsIE9pZCBhcmcxLCBPaWQgYXJnMik7 CiBzdGF0aWMgdm9pZCBhZGRfY2FzdF90byhTdHJpbmdJbmZvIGJ1ZiwgT2lkIHR5cGlkKTsKIHN0 YXRpYyBjaGFyICpnZW5lcmF0ZV9xdWFsaWZpZWRfdHlwZV9uYW1lKE9pZCB0eXBpZCk7CitzdGF0 aWMgY2hhciAqZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7CiBzdGF0 aWMgdGV4dCAqc3RyaW5nX3RvX3RleHQoY2hhciAqc3RyKTsKIHN0YXRpYyBjaGFyICpmbGF0dGVu X3JlbG9wdGlvbnMoT2lkIHJlbGlkKTsKIHN0YXRpYyB2b2lkIGdldF9yZWxvcHRpb25zKFN0cmlu Z0luZm8gYnVmLCBEYXR1bSByZWxvcHRpb25zKTsKQEAgLTg2NzcsNiArODY3OSwxNCBAQCBnZXRf cGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCQlyZXR1 cm47CiAJfQogCisJLyogdHJhbnNsYXRlIHBhcmFtdmFyaWQgdG8gc2Vzc2lvbiB2YXJpYWJsZSBu YW1lICovCisJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlh cHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCSBnZW5lcmF0ZV9zZXNz aW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJcmV0dXJuOworCX0KKwog CS8qCiAJICogQWx0ZXJuYXRpdmVseSwgbWF5YmUgaXQncyBhIHN1YnBsYW4gb3V0cHV0LCB3aGlj aCB3ZSBwcmludCBhcyBhCiAJICogcmVmZXJlbmNlIHRvIHRoZSBzdWJwbGFuLiAgKFdlIGNvdWxk IGRyaWxsIGRvd24gaW50byB0aGUgc3VicGxhbiBhbmQKQEAgLTEzNDc3LDYgKzEzNDg3LDQyIEBA IGdlbmVyYXRlX2NvbGxhdGlvbl9uYW1lKE9pZCBjb2xsaWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0K IAorLyoKKyAqIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCUNvbXB1dGUgdGhl IG5hbWUgdG8gZGlzcGxheSBmb3IgYSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBPSUQK KyAqCisgKiBUaGUgcmVzdWx0IGluY2x1ZGVzIGFsbCBuZWNlc3NhcnkgcXVvdGluZyBhbmQgc2No ZW1hLXByZWZpeGluZy4KKyAqLworc3RhdGljIGNoYXIgKgorZ2VuZXJhdGVfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFi bGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOworCWNoYXIJICAgKm5zcG5hbWU7CisJY2hh cgkgICAqcmVzdWx0OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmpl Y3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQp OworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZh cm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJaWYgKCFWYXJpYWJsZUlzVmlz aWJsZSh2YXJpZCkpCisJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcCh2YXJm b3JtLT52YXJuYW1lc3BhY2UpOworCWVsc2UKKwkJbnNwbmFtZSA9IE5VTEw7CisKKwlyZXN1bHQg PSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLCB2YXJuYW1lKTsKKworCVJlbGVh c2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEdpdmVuIGEg QyBzdHJpbmcsIHByb2R1Y2UgYSBURVhUIGRhdHVtLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxh bmNhY2hlLmMKaW5kZXggNTVkYjhmNTM3MDUuLjYzMmM0MzhhN2JkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9wbGFuY2FjaGUuYwpAQCAtNTgsNiArNTgsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3Ry YW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAtMTYyLDYg KzE2Myw3IEBAIEluaXRQbGFuQ2FjaGUodm9pZCkKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxs YmFjayhBTU9QT1BJRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVS ZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTlNFUlZFUk9JRCwgUGxhbkNhY2hlU3lzQ2Fs bGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlH TkRBVEFXUkFQUEVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKKwlDYWNo ZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJMRU9JRCwgUGxhbkNhY2hlT2JqZWN0Q2Fs bGJhY2ssIChEYXR1bSkgMCk7CiB9CiAKIC8qCkBAIC0xOTAzLDE3ICsxOTA1LDMyIEBAIFNjYW5R dWVyeUZvckxvY2tzKFF1ZXJ5ICpwYXJzZXRyZWUsIGJvb2wgYWNxdWlyZSkKIAogCS8qCiAJICog UmVjdXJzZSBpbnRvIHN1Ymxpbmsgc3VicXVlcmllcywgdG9vLiAgQnV0IHdlIGFscmVhZHkgZGlk IHRoZSBvbmVzIGluCi0JICogdGhlIHJ0YWJsZSBhbmQgY3RlTGlzdC4KKwkgKiB0aGUgcnRhYmxl IGFuZCBjdGVMaXN0LiAgV2UgbmVlZCB0byBmb3JjZSBhIHJlY3Vyc2l2ZSBjYWxsIGZvciBzZXNz aW9uCisJICogdmFyaWFibGVzIHRvbywgdG8gZmluZCBhbmQgbG9jayB2YXJpYWJsZXMgdXNlZCBp biB0aGUgcXVlcnkgKHNlZQorCSAqIFNjYW5RdWVyeVdhbGtlcikuCiAJICovCi0JaWYgKHBhcnNl dHJlZS0+aGFzU3ViTGlua3MpCisJaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3MgfHwKKwkJcGFy c2V0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCXsKIAkJcXVlcnlfdHJlZV93YWxrZXIocGFy c2V0cmVlLCBTY2FuUXVlcnlXYWxrZXIsICZhY3F1aXJlLAogCQkJCQkJICBRVFdfSUdOT1JFX1JD X1NVQlFVRVJJRVMpOwogCX0KKworCS8qIHByb2Nlc3Mgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlp ZiAoT2lkSXNWYWxpZChwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlKSkKKwl7CisJCWlmIChhY3F1 aXJlKQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVl LT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkgICAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQllbHNl CisJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+ cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCX0KIH0KIAog LyoKLSAqIFdhbGtlciB0byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBmb3IgU2NhblF1ZXJ5Rm9y TG9ja3MKKyAqIFdhbGtlciB0byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBvciByZWZlcmVuY2Vk IHNlc3Npb24gdmFyaWFibGVzCisgKiBmb3IgU2NhblF1ZXJ5Rm9yTG9ja3MKICAqLwogc3RhdGlj IGJvb2wKIFNjYW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJlKQpAQCAtMTky OCw2ICsxOTQ1LDIwIEBAIFNjYW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJl KQogCQlTY2FuUXVlcnlGb3JMb2NrcyhjYXN0Tm9kZShRdWVyeSwgc3ViLT5zdWJzZWxlY3QpLCAq YWNxdWlyZSk7CiAJCS8qIEZhbGwgdGhyb3VnaCB0byBwcm9jZXNzIGxlZnRoYW5kIGFyZ3Mgb2Yg U3ViTGluayAqLwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0J ICAgKnAgPSAoUGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZB UklBQkxFKQorCQl7CisJCQlpZiAoYWNxdWlyZSkKKwkJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFy aWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkgICAwLCBBY2Nlc3NTaGFy ZUxvY2spOworCQkJZWxzZQorCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRp b25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQl9 CisJfQogCiAJLyoKIAkgKiBEbyBOT1QgcmVjdXJzZSBpbnRvIFF1ZXJ5IG5vZGVzLCBiZWNhdXNl IFNjYW5RdWVyeUZvckxvY2tzIGFscmVhZHkKQEAgLTIwNTgsNyArMjA4OSw5IEBAIFBsYW5DYWNo ZVJlbENhbGxiYWNrKERhdHVtIGFyZywgT2lkIHJlbGlkKQogCiAvKgogICogUGxhbkNhY2hlT2Jq ZWN0Q2FsbGJhY2sKLSAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgUFJP Q09JRCBhbmQgVFlQRU9JRCBjYWNoZXMKKyAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5j dGlvbiBmb3IgVFlQRU9JRCwgUFJPQ09JRCwgTkFNRVNQQUNFT0lELAorICoJCU9QRVJPSUQsIEFN T1BPUElELCBGT1JFSUdOU0VSVkVST0lELCBGT1JFSUdOREFUQVdSQVBQRVJPSUQgYW5kCisgKgkJ VkFSSUFCTEVPSUQgY2FjaGVzLgogICoKICAqIEludmFsaWRhdGUgYWxsIHBsYW5zIG1lbnRpb25p bmcgdGhlIG9iamVjdCB3aXRoIHRoZSBzcGVjaWZpZWQgaGFzaCB2YWx1ZSwKICAqIG9yIGFsbCBw bGFucyBtZW50aW9uaW5nIGFueSBtZW1iZXIgb2YgdGhpcyBjYWNoZSBpZiBoYXNodmFsdWUgPT0g MC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggYWE4OWFlOGZlMWEuLjI3NjkxMDk3ODkwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMjAyNiw5ICsyMDI2LDEzIEBAIGdldF9jYWxsX2V4cHJfYXJn X3N0YWJsZShOb2RlICpleHByLCBpbnQgYXJnbnVtKQogCSAqLwogCWlmIChJc0EoYXJnLCBDb25z dCkpCiAJCXJldHVybiB0cnVlOwotCWlmIChJc0EoYXJnLCBQYXJhbSkgJiYKLQkJKChQYXJhbSAq KSBhcmcpLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOKQotCQlyZXR1cm4gdHJ1ZTsKKwlpZiAo SXNBKGFyZywgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikgYXJnOworCisJ CWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOIHx8IHAtPnBhcmFta2luZCA9PSBQQVJB TV9WQVJJQUJMRSkKKwkJCXJldHVybiB0cnVlOworCX0KIAogCXJldHVybiBmYWxzZTsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwppbmRleCBjNmExYmIwOWYzZi4uNTczNjRlYTZhMWMgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKQEAgLTEyMTQsOCArMTIxNCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBzcWxfY29tbWFuZHNbXSA9IHsKIAkiQUJPUlQiLCAiQUxURVIiLCAiQU5BTFlaRSIsICJC RUdJTiIsICJDQUxMIiwgIkNIRUNLUE9JTlQiLCAiQ0xPU0UiLCAiQ0xVU1RFUiIsCiAJIkNPTU1F TlQiLCAiQ09NTUlUIiwgIkNPUFkiLCAiQ1JFQVRFIiwgIkRFQUxMT0NBVEUiLCAiREVDTEFSRSIs CiAJIkRFTEVURSBGUk9NIiwgIkRJU0NBUkQiLCAiRE8iLCAiRFJPUCIsICJFTkQiLCAiRVhFQ1VU RSIsICJFWFBMQUlOIiwKLQkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1B IiwgIklOU0VSVCBJTlRPIiwgIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLAotCSJNRVJHRSBJTlRP IiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAorCSJGRVRDSCIsICJHUkFOVCIsICJJTVBP UlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTEVUIiwKKwkiTElTVEVOIiwgIkxP QUQiLCAiTE9DSyIsICJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAog CSJSRUFTU0lHTiIsICJSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIiwgIlJFSU5ERVgiLCAiUkVM RUFTRSIsCiAJIlJFU0VUIiwgIlJFVk9LRSIsICJST0xMQkFDSyIsCiAJIlNBVkVQT0lOVCIsICJT RUNVUklUWSBMQUJFTCIsICJTRUxFQ1QiLCAiU0VUIiwgIlNIT1ciLCAiU1RBUlQiLApAQCAtNDY2 NCw2ICs0NjY0LDE0IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAi VkFMVUVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyogTEVUICovCisJLyogSWYgcHJl di4gd29yZCBpcyBMRVQgc3VnZ2VzdCBhIGxpc3Qgb2YgdmFyaWFibGVzICovCisJZWxzZSBpZiAo TWF0Y2hlcygiTEVUIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX3ZhcmlhYmxlcyk7CisJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJsZT4gd2l0aCAiPSIg Ki8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9X SVRIKCI9Iik7CisKIC8qIExPQ0sgKi8KIAkvKiBDb21wbGV0ZSBMT0NLIFtUQUJMRV0gW09OTFld IHdpdGggYSBsaXN0IG9mIHRhYmxlcyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkxPQ0siKSkKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IGJkYWMwYzEzYmVjLi41MDYwYjhjOTQ5MCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xNzQsNiArMTc0LDcgQEAgZXh0ZXJuIGJvb2wgU2VhcmNo UGF0aE1hdGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwog ZXh0ZXJuIExpc3QgKk5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpOwogZXh0ZXJuIE9pZAlMb29r dXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1lLCBib29s IG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdChMaXN0 ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJSWRlbnRpZnlWYXJpYWJsZShM aXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLCBib29sICpub3RfdW5pcXVlLCBib29sIG5vZXJy b3IpOwogCiBleHRlcm4gT2lkCWdldF9jb2xsYXRpb25fb2lkKExpc3QgKmNvbGxuYW1lLCBib29s IG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9vaWQoTGlzdCAqY29ubmFt ZSwgYm9vbCBtaXNzaW5nX29rKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAzZDNj NmViMjRiNS4uNWI0NWJlNWFmYWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTE4 LDYgKzE4LDcgQEAKICNpZm5kZWYgUEdfVkFSSUFCTEVfSAogI2RlZmluZSBQR19WQVJJQUJMRV9I CiAKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKICNpbmNsdWRlICJjYXRhbG9nL2dlbmJr aS5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfdmFyaWFibGVfZC5oIgpAQCAtMzUsNiArMzYsMTQgQEAgQ0FUQUxPRyhwZ192YXJpYWJs ZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBPSUQgb2YgZW50cnkgaW4gcGdfdHlwZSBm b3IgdmFyaWFibGUncyB0eXBlICovCiAJT2lkCQkJdmFydHlwZSBCS0lfTE9PS1VQKHBnX3R5cGUp OwogCisJLyoKKwkgKiBVc2VkIGZvciBpZGVudGl0eSBjaGVjayBbb2lkLCBjcmVhdGVfbHNuXS4K KwkgKgorCSAqIFRoaXMgY29sdW1uIG9mIHRoZSA4LWJ5dGUgWGxvZ1JlY1B0ciB0eXBlIHNob3Vs ZCBiZSBhdCBhbiBhZGRyZXNzIHRoYXQKKwkgKiBpcyBkaXZpc2libGUgYnkgOCwgYnV0IGJlZm9y ZSBhbnkgY29sdW1uIG9mIHR5cGUgTmFtZURhdGEuCisJICovCisJWExvZ1JlY1B0cgl2YXJjcmVh dGVfbHNuOworCiAJLyogdmFyaWFibGUgbmFtZSAqLwogCU5hbWVEYXRhCXZhcm5hbWU7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMjM5MWI5YWQ0NDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTAsMCArMSwzMCBAQAorLyotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbnZhcmlhYmxlLmgKKyAqCSAgcHJvdG90eXBlcyBm b3Igc2Vzc2lvbnZhcmlhYmxlLmMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKyAq CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIFNFU1NJT05WQVJJQUJMRV9ICisj ZGVmaW5lIFNFU1NJT05WQVJJQUJMRV9ICisKKyNpbmNsdWRlICJub2Rlcy9wYXJhbXMuaCIKKyNp bmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUu aCIKKyNpbmNsdWRlICJ0Y29wL2NtZHRhZy5oIgorI2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJv bm1lbnQuaCIKKworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0 dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKK2V4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUo T2lkIHZhcmlkLCBib29sICppc051bGwpOworCitleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAor CQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMp OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJl Y2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYjQ0ZDhiOTRjNgotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKQEAgLTAs MCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2ZXIu aAorICoJICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNlaXZlci5jCisgKgorICoKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRo ZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9leGVjdXRvci9z dmFyaWFibGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRl ZiBTVkFSSUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFSSUFCTEVfUkVDRUlWRVJfSAorCisj aW5jbHVkZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0UmVjZWl2ZXIgKkNyZWF0ZVZhcmlh YmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCk7CisKKyNlbmRpZgkJCQkJCQkvKiBTVkFSSUFCTEVf UkVDRUlWRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBlMmQxZGMxZTA2Ny4uOTEwNTE2 ODFkM2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC02MzUsNiArNjM1LDE2IEBAIHR5cGVkZWYg c3RydWN0IEFzeW5jUmVxdWVzdAogCQkJCQkJCQkgKiB0dXBsZXMpICovCiB9IEFzeW5jUmVxdWVz dDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLQorICogU2Vzc2lvblZhcmlhYmxlVmFsdWUKKyAqIC0t LS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2Vzc2lvblZhcmlhYmxlVmFsdWUK K3sKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworfSBTZXNzaW9uVmFyaWFibGVWYWx1 ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3RhdGUgaW5mb3JtYXRpb24KICAqCkBA IC02OTQsNiArNzA0LDEwIEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0ZQogCVBhcmFtTGlzdEluZm8g ZXNfcGFyYW1fbGlzdF9pbmZvOwkvKiB2YWx1ZXMgb2YgZXh0ZXJuYWwgcGFyYW1zICovCiAJUGFy YW1FeGVjRGF0YSAqZXNfcGFyYW1fZXhlY192YWxzOwkvKiB2YWx1ZXMgb2YgaW50ZXJuYWwgcGFy YW1zICovCiAKKwkvKiBTZXNzaW9uIHZhcmlhYmxlcyBpbmZvOiAqLworCWludAkJCWVzX251bV9z ZXNzaW9uX3ZhcmlhYmxlczsJCS8qIG51bWJlciBvZiB1c2VkIHZhcmlhYmxlcyAqLworCVNlc3Np b25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlczsJLyogYXJyYXkgb2YgY29waWVz IG9mIHZhbHVlcyAqLworCiAJUXVlcnlFbnZpcm9ubWVudCAqZXNfcXVlcnlFbnY7CS8qIHF1ZXJ5 IGVudmlyb25tZW50ICovCiAKIAkvKiBPdGhlciB3b3JraW5nIHN0YXRlOiAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCmluZGV4IGIwN2M0MmY5NGQwLi5iMWU5ZWZhNjk3OSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJICovCiAJ aW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwog CisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlPaWQJCQlyZXN1bHRW YXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhhdmluZ1F1YWwgKi8K IAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBo YXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMTYyLDYgKzE2NSw4IEBAIHR5cGVk ZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOwogCS8qIHBhcnNlciBoYXMgYWRkZWQgYW4gUlRFX0dST1VQIFJURSAq LwogCWJvb2wJCWhhc0dyb3VwUlRFIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK KwkvKiB1c2VzIHNlc3Npb24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxl cyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4gc3Rh dGVtZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOwogCkBAIC0yMTQ0LDYgKzIxNDksMTggQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VTdG10CiAJ UGFyc2VMb2MJc3RtdF9sZW47CQkvKiBsZW5ndGggaW4gYnl0ZXM7IDAgbWVhbnMgInJlc3Qgb2Yg c3RyaW5nIiAqLwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYg c3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRhcmdldDsJCQkv KiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVz c2lvbiAqLworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBMZXRTdG10OworCiAvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgK aW5kZXggMDBjNzAwY2MzZTcuLjk2NjdjMWRmNDE2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApAQCAt MTc5LDYgKzE3OSwxOCBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFsCiAKIAkvKiBwYXJ0 aXRpb24gZGVzY3JpcHRvcnMgKi8KIAlQYXJ0aXRpb25EaXJlY3RvcnkgcGFydGl0aW9uX2RpcmVj dG9yeSBwZ19ub2RlX2F0dHIocmVhZF93cml0ZV9pZ25vcmUpOworCisJLyogbGlzdCBvZiB1c2Vk IHNlc3Npb24gdmFyaWFibGVzICovCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKKworCS8q IE9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgbGlrZSB0YXJnZXQgb2YgTEVUIGNvbW1hbmQg Ki8KKwlPaWQJCQlyZXN1bHRWYXJpYWJsZTsKKworCS8qIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxl IHVzZWQgbGlrZSBiYXNlIG5vZGUgZm9yIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24gKi8KKwlPaWQJ CQliYXNlbm9kZVNlc3Npb25WYXJpZDsKKworCS8qIHRydWUsIGlmIHdlIGRvIFNFTEVDVCBwZXJt aXNzaW9uIGNoZWNrIG9uIGJhc2Vub2RlU2Vzc2lvblZhcmlkICovCisJYm9vbAkJYmFzZW5vZGVT ZXNzaW9uVmFyU2VsZWN0Q2hlY2s7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBm ZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUgKi8KQEAgLTUy NCw2ICs1MzYsOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlwbGFjZWhvbGRlcnNGcm96 ZW47CiAJLyogdHJ1ZSBpZiBwbGFubmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0ZW0gKi8KIAlib29s CQloYXNSZWN1cnNpb247CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQg Ki8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBUaGUgcmFuZ2V0YWJs ZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUgaXMgbm8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmgKaW5kZXggYmYxZjI1YzBkYmEuLjFmNzM5ZGM2MTQwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFu bm9kZXMuaApAQCAtMTI4LDYgKzEyOCwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVkU3RtdAog CS8qIG5vbi1udWxsIGlmIHRoaXMgaXMgdXRpbGl0eSBzdG10ICovCiAJTm9kZQkgICAqdXRpbGl0 eVN0bXQ7CiAKKwlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwkvKiBPSURzIGZvciBQQVJBTV9W QVJJQUJMRSBQYXJhbXMgKi8KKworCS8qCisJICogVGhlIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxl IGV4ZWNsdWRlZCBmcm9tIHBlcm1pc3Npb24gY2hlY2suCisJICogVGhpcyBzZXNzaW9uIHZhcmlh YmxlIGlzIHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24KKwkgKiAo YW5kIGl0IGlzIHVzZWQgb25seSB0aGVyZSkuCisJICovCisJaW50CQkJZXhjbFNlbGVjdFBlcm1D aGVja1ZhcmlkOworCiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGluIHNvdXJjZSBzdHJpbmcgKGNv cGllZCBmcm9tIFF1ZXJ5KSAqLwogCS8qIHN0YXJ0IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3du ICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggODM5 ZTcxZDUyZjQuLjJmYTliMWJjZDA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmlt bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzc4LDYgKzM3 OCw5IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQnIGZpZWxk IGNvbnRhaW4gdGhlIFN1YkxpbmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxvdy1vcmRl ciAxNiBiaXRzIGNvbnRhaW4gdGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAgKgkJCQlv ZiBQYXJhbSBpcyBhbHNvIGNvbnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFubmluZy4p CisgKgorICoJCVBBUkFNX1ZBUklBQkxFOiAgVGhlIHBhcmFtZXRlciBpcyBhIHJlZmVyZW5jZSB0 byBhIHNlc3Npb24gdmFyaWFibGUKKyAqCQkJCShwYXJhbXZhcmlkIGhvbGRzIHRoZSB2YXJpYWJs ZSdzIE9JRCkuCiAgKi8KIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIHsKQEAgLTM4NSw2ICszODgs NyBAQCB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiAJUEFSQU1fRVhFQywKIAlQQVJBTV9TVUJMSU5L LAogCVBBUkFNX01VTFRJRVhQUiwKKwlQQVJBTV9WQVJJQUJMRSwKIH0gUGFyYW1LaW5kOwogCiB0 eXBlZGVmIHN0cnVjdCBQYXJhbQpAQCAtMzk3LDYgKzQwMSwxNiBAQCB0eXBlZGVmIHN0cnVjdCBQ YXJhbQogCWludDMyCQlwYXJhbXR5cG1vZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9y ZSk7CiAJLyogT0lEIG9mIGNvbGxhdGlvbiwgb3IgSW52YWxpZE9pZCBpZiBub25lICovCiAJT2lk CQkJcGFyYW1jb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIE9J RCBvZiBzZXNzaW9uIHZhcmlhYmxlIGlmIGl0IGlzIHVzZWQgKi8KKwlPaWQJCQlwYXJhbXZhcmlk IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKworCS8qCisJICogdHJ1ZSBpZiBw YXJhbSBpcyB1c2VkIGFzIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uCisJICog KHdoZW4gdGFyZ2V0IG9mIExFVCBzdGF0ZW1lbnQgaXMgYW4gYXJyYXkgZmllbGQgb3IgYW4gcmVj b3JkIGZpZWxkKS4KKwkgKiBGb3IgdGhpcyBwYXJhbSB3ZSBkbyBub3QgY2hlY2sgU0VMRUNUIGFj Y2VzcyByaWdodCwgYmVjYXVzZSB0aGlzCisJICogcGFyYW0gaXMgdXNlZCBqdXN0IGZvciBleGVj dXRpb24gb2YgVVBEQVRFIG9wZXJhdGlvbi4KKwkgKi8KKwlib29sCQlwYXJhbWJhc2Vub2RlOwog CS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRp b247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWlu LmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaAppbmRleCBmZWUzMzc4YmJlMy4u ZTg1NTEzMjBkMTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5o CisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCkBAIC0xMjUsNCArMTI1LDYg QEAgZXh0ZXJuIHZvaWQgcmVjb3JkX3BsYW5fZnVuY3Rpb25fZGVwZW5kZW5jeShQbGFubmVySW5m byAqcm9vdCwgT2lkIGZ1bmNpZCk7CiBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl90eXBlX2RlcGVu ZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCBleHRyYWN0 X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRl eHQpOwogCitleHRlcm4gdm9pZCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQbGFubmVy SW5mbyAqcm9vdCk7CisKICNlbmRpZgkJCQkJCQkvKiBQTEFOTUFJTl9IICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKaW5kZXggNzkzYWNlNTI2ZGYuLjQzMTE2N2Y2YjQzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0y NTcsNiArMjU3LDcgQEAgUEdfS0VZV09SRCgibGVhZGluZyIsIExFQURJTkcsIFJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFrcHJvb2YiLCBMRUFLUFJPT0YsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYXN0IiwgTEVBU1Qs IENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWZ0IiwgTEVGVCwg VFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImxldCIsIExF VCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGV2ZWwiLCBM RVZFTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGlrZSIs IExJS0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJs aW1pdCIsIExJTUlULCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oCmluZGV4IDk5NDI4NDAxOWZiLi4wYjdiNjlhNDE1OSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oCkBAIC04Miw2ICs4Miw4IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQ Ul9LSU5EX0NPUFlfV0hFUkUsCQkvKiBXSEVSRSBjb25kaXRpb24gaW4gQ09QWSBGUk9NICovCiAJ RVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU4sIC8qIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmb3Ig YSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfQ1lDTEVfTUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUg Ki8KKwlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyogUEwvcGdTUUwgYXNzaWdubWVudCB0YXJn ZXQgKi8KKwlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8qIExFVCB0YXJnZXQgKi8KIH0gUGFyc2VF eHByS2luZDsKIAogCkBAIC0yNDQsNiArMjQ2LDcgQEAgc3RydWN0IFBhcnNlU3RhdGUKIAlib29s CQlwX2hhc1RhcmdldFNSRnM7CiAJYm9vbAkJcF9oYXNTdWJMaW5rczsKIAlib29sCQlwX2hhc01v ZGlmeWluZ0NURTsKKwlib29sCQlwX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlOb2RlCSAgICpw X2xhc3Rfc3JmOwkJLyogbW9zdCByZWNlbnQgc2V0LXJldHVybmluZyBmdW5jL29wIGZvdW5kICov CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1 ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggZWE4Njk1NGRkZWQuLjIyMDgyYzMwMDA4IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTg2LDYgKzE4Niw3IEBAIFBHX0NNRFRBRyhDTURUQUdfR1JB TlQsICJHUkFOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfR1JBTlRf Uk9MRSwgIkdSQU5UIFJPTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRB R19JTVBPUlRfRk9SRUlHTl9TQ0hFTUEsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0lOU0VSVCwgIklOU0VSVCIsIGZhbHNlLCBm YWxzZSwgdHJ1ZSkKK1BHX0NNRFRBRyhDTURUQUdfTEVULCAiTEVUIiwgZmFsc2UsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTElTVEVOLCAiTElTVEVOIiwgZmFsc2UsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTE9BRCwgIkxPQUQiLCBmYWxzZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19MT0NLX1RBQkxFLCAiTE9DSyBUQUJMRSIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCBiL3NyYy9pbmNs dWRlL3Rjb3AvZGVzdC5oCmluZGV4IDAwYzA5MmUzZDdjLi42Y2UzZWEwZTYxNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgK QEAgLTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBlbnVtCiAJRGVzdFRyYW5zaWVudFJlbCwJCQkvKiBy ZXN1bHRzIHNlbnQgdG8gdHJhbnNpZW50IHJlbGF0aW9uICovCiAJRGVzdFR1cGxlUXVldWUsCQkJ CS8qIHJlc3VsdHMgc2VudCB0byB0dXBsZSBxdWV1ZSAqLwogCURlc3RFeHBsYWluU2VyaWFsaXpl LAkJLyogcmVzdWx0cyBhcmUgc2VyaWFsaXplZCBhbmQgZGlzY2FyZGVkICovCisJRGVzdFZhcmlh YmxlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBDb21tYW5k RGVzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKaW5kZXggZDQzNzdj ZWVjYmYuLmNiMjgyNDA0YzFhIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhl Yy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTgyNjQsNyArODI2NCw4 IEBAIGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhwcikKIAkJcXVlcnktPnNv cnRDbGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5LT5saW1pdENvdW50 IHx8Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQorCQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAor CQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyoKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXgg YzM2NjYwY2U2ZDMuLmYyMjQ2NzE4NmUzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDMxLDMgKzQzMSwxMjM1IEBAIERST1AgVkFS SUFCTEUgcHVibGljLnZhcjE7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKIERST1Ag Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI7CistLSBjaGVjayBhY2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9MRSByZWdyZXNzX25vb3duZXI7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdV QUdFIHNxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkKK1JFVFVS TlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERF RklORVI7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoaW50KQorUkVUVVJO UyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdz cWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KQorUkVUVVJO UyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdz cWwgU0VDVVJJVFkgREVGSU5FUjsKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NFTEVDVCBzcWxm eCgyMCk7Cisgc3FsZnggCistLS0tLS0tCisgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4 X3NkKDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAzMAorKDEgcm93KQorCitT RUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgICAz MAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3FsZnhfc2QgCist LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAzMAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAor U0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworU0VMRUNUIHZhcjE7CitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCBzcWxmeCgyMCk7 CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NP TlRFWFQ6ICBTUUwgZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQorU0VMRUNUIHBscGdzcWxm eCgyMCk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZh cjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICIkMSArIHZhcjEiCitQTC9wZ1NRTCBm dW5jdGlvbiBwbHBnc3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgorLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1Qgc3FsZnhfc2QoMjApOworIHNxbGZ4X3NkIAorLS0tLS0tLS0tLQorICAgICAg IDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworIHBscGdzcWxmeF9zZCAK Ky0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMwCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX25vb3duZXI7 CistLSBzaG91bGQgYmUgb2sKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NFTEVDVCBzcWxmeCgyMCk7 Cisgc3FsZnggCistLS0tLS0tCisgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeCgy MCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgICAgMzAKKygxIHJvdykKKworU0VU IFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gc3Fs ZngoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHNx bGZ4X3NkKGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpOworRFJPUCBST0xF IHJlZ3Jlc3Nfbm9vd25lcjsKKy0tIHVzZSB2YXJpYWJsZXMgaW5zaWRlIHZpZXdzCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworLS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3cworQ1JF QVRFIFZJRVcgdGVzdF92aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxICsgdiwgMCkgQVMgcmVz dWx0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMikgZyh2KTsKK1NFTEVDVCAqIEZST00gdGVzdF92 aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgICAwCisgICAgICAwCisoMiByb3dzKQorCitM RVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0t LS0tLQorICAgNC4xNAorICAgNS4xNAorKDIgcm93cykKKworLS0gc3RhcnQgYSBuZXcgc2Vzc2lv bgorXGMKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAg ICAwCisgICAgICAwCisoMiByb3dzKQorCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9N IHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgNC4xNAorICAgNS4xNAorKDIgcm93 cykKKworLS0gc2hvdWxkIGZhaWwsIGRlcGVuZGVuY3kKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0VS Uk9SOiAgY2Fubm90IGRyb3Agc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGJlY2F1c2Ugb3RoZXIgb2Jq ZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHZpZXcgdGVzdF92aWV3IGRlcGVuZHMgb24gc2Vz c2lvbiB2YXJpYWJsZSB2YXIxCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0 aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxF IHZhcjEgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdmlldyB0ZXN0X3ZpZXcK K0NSRUFURSBWQVJJQUJMRSB2YXIxIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiB0ZXh0Owor LS0gdXNlIHZhcmlhYmxlcyBpbiBTUUwgZnVuY3Rpb25zCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBzcWxmeDEodmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMSB8 fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHNxbGZ4MiggdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMiB8fCAn LCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKK0xFVCB2YXIxID0gJ3N0cjEnOworTEVUIHZhcjIg PSAnc3RyMic7CitTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisgICAgICBzcWxmeDEg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgc3RyMSwgc3RyMiwgSGVsbG8KKygxIHJvdykK KworLS0gaW5saW5pbmcgaXMgYmxvY2tlZAorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBT RUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT3V0cHV0OiBzcWxmeDEo c3FsZngyKCdIZWxsbyc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKygyIHJvd3MpCisKK0RST1AgRlVO Q1RJT04gc3FsZngxKHZhcmNoYXIpOworRFJPUCBGVU5DVElPTiBzcWxmeDIodmFyY2hhcik7CitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBhY2Nlc3MgZnJvbSBj YWNoZWQgcGxhbnMgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBudW1lcmljOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcGxwZ3NxbGZ4KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJCBCRUdJTiBSRVRVUk4gdmFy MTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBw bHBnc3FsZngyKG51bWVyaWMpCitSRVRVUk5TIHZvaWQgQVMgJCQgQkVHSU4gTEVUIHZhcjIgPSAk MTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNl X2dlbmVyaWNfcGxhbjsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBw bHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgMy4xNAorKDEgcm93KQorCitMRVQgdmFyMSA9 IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0t CisgICAgICA2LjI4CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngyKDEwLjApOworIHBscGdz cWxmeDIgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHZhcjI7CisgdmFyMiAK Ky0tLS0tLQorIDEwLjAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJ QUJMRSB2YXIyOworLS0gZGVwZW5kZW5jeSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3VsZCB3b3Jr CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHZhcjIg QVMgbnVtZXJpYzsKK0xFVCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7Cisg cGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDkuNDIKKygxIHJvdykKKworTEVUIHZhcjEg PSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0t LQorICAgICAxMi41NgorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsKKyBwbHBn c3FsZngyIAorLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB2YXIyOworIHZhcjIg CistLS0tLS0KKyAxMC4wCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFS SUFCTEUgdmFyMjsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KCk7CitEUk9QIEZVTkNUSU9OIHBs cGdzcWxmeDIoKTsKK0VSUk9SOiAgZnVuY3Rpb24gcGxwZ3NxbGZ4MigpIGRvZXMgbm90IGV4aXN0 CistLSBkZXBlbmRlbmN5IG9uIGNvbHVtbiB0eXBlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CitDUkVBVEUgVEFCTEUgdGVzdHZhcihhIGludCwgYiBpbnQsIGMgaW50KTsKK0lOU0VSVCBJ TlRPIHRlc3R2YXIgVkFMVUVTKDEwLDIwLDMwKTsKK0FMVEVSIFRBQkxFIHRlc3R2YXIgRFJPUCBD T0xVTU4gYTsKK0FMVEVSIFRBQkxFIHRlc3R2YXIgRFJPUCBDT0xVTU4gYjsKK0NSRUFURSBGVU5D VElPTiBwbHBnc3FsZngzKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHZhcjEg PSAoU0VMRUNUICogRlJPTSB0ZXN0dmFyKTsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VO RAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHBscGdzcWxm eDMoKTsKK05PVElDRTogIDMwCisgcGxwZ3NxbGZ4MyAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93 KQorCitBTFRFUiBUQUJMRSB0ZXN0dmFyIEFMVEVSIENPTFVNTiBjIFRZUEUgbnVtZXJpYzsKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHBscGdzcWxmeDMoKTsKK05PVElDRTogIDMwCisgcGxwZ3Nx bGZ4MyAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitEUk9QIEZVTkNUSU9OIHBscGdzcWxm eDMoKTsKK0RST1AgVEFCTEUgdGVzdHZhcjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK1NFVCBwbGFu X2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKy0tIHJlcGVhdGVkIGV4ZWN1dGlvbiBzaG91bGQgbm90 IGNyYXNoCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVEFCTEUgdGVzdHZhcihh IGludCk7CitJTlNFUlQgSU5UTyB0ZXN0dmFyIFZBTFVFUygxKTsKK0RPICQkCitCRUdJTgorICBM RVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChT RUxFQ1QgYSBGUk9NIHRlc3R2YXIpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywg dmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgMQorRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0g MDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gKFNFTEVDVCBhICsg dmFyMSBGUk9NIHRlc3R2YXIpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFy MTsKK0VORDsKKyQkOworTk9USUNFOiAgMTAKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7 CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxFQ1QgYSBGUk9N IHRlc3R2YXIpICsgdmFyMTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7 CitFTkQ7CiskJDsKK05PVElDRTogIDEwCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOwor ICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICBFTkQgTE9PUDsK KyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgMTAKK0RPICQk CitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBM RVQgdmFyMSA9IGkgKyB2YXIxOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFy MTsKK0VORDsKKyQkOworTk9USUNFOiAgNTUKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFC TEUgdGVzdHZhcjsKKy0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQgd29y aworQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVtZXJp Y1tdOworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIyID0gJ3t9Jzo6aW50W107CisgIEZPUiBpIElO IDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7CisgICAgTEVUIHZhcjJbdmFyMV0gPSBp OworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICdyZXN1bHQgYXJyYXk6ICUnLCB2YXIyOwor RU5EOworJCQ7CitOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsxLDIsMyw0LDUsNiw3LDgsOSwxMH0K K0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIENBTEwgc3RhdGVt ZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNl c3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUg diBpbnQ7CitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9U SUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBub3QgY3Jh c2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKK0NBTEwgcCh2KTsKK0VSUk9SOiAgc2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorRE8gJCQgQkVHSU4gQ0FM TCBwKHYpOyBFTkQgJCQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQg YXMgYW4gYXJndW1lbnQKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJDQUxMIHAodikiCitQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgQ0FMTAorRFJPUCBQUk9D RURVUkUgcChpbnQpOworRFJPUCBWQVJJQUJMRSB2OworLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMg bm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2 YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsK K0xFVCB2ID0gMjA7CitQUkVQQVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOworLS0gc2hvdWxk IGZhaWwKK0VYRUNVVEUgcHRlc3Qodik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90 IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0RFQUxMT0NBVEUgcHRlc3Q7CitEUk9QIFZBUklBQkxF IHY7CistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworQ1JFQVRF IFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKy0tIHNob3VsZCBmYWlsCitMRVQg dmFyMSA9IHBpKCk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNuJ3QgZXhp c3QKK0xJTkUgMTogTEVUIHZhcjEgPSBwaSgpOworICAgICAgICAgICAgXgorU0VMRUNUIHZhcjE7 CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZh cjE7CisgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdC52YXIx ID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworICAgICAgIHZhcjEgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0KKyAzLjE0MTU5MjY1MzU4OTc5CisoMSByb3cpCisKK1NFVCBzZWFyY2hf cGF0aCBUTyBzdmFydGVzdDsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBwaSgpICsgMTA7 CitTRUxFQ1QgdmFyMTsKKyAgICAgICB2YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tCisg MTMuMTQxNTkyNjUzNTg5OAorKDEgcm93KQorCitSRVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgU0NI RU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24g dmFyaWFibGUgc3ZhcnRlc3QudmFyMQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKKy0t IHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0cmFuc2FjdGlvbgorQkVHSU47CitT RVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEgPSAnaGVsbG8nOworQ09NTUlUOwor U0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgaGVsbG8KKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxOworLS0gdGVzdCBvZiBkb21haW5zCitDUkVBVEUgRE9NQUlOIGludF9kb21h aW4gQVMgaW50IE5PVCBOVUxMIENIRUNLIChWQUxVRSA+IDEwMCk7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnRfZG9tYWluOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6 ICBkb21haW4gaW50X2RvbWFpbiBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisg MTAwMAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAxMDsKK0VSUk9SOiAg dmFsdWUgZm9yIGRvbWFpbiBpbnRfZG9tYWluIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImlu dF9kb21haW5fY2hlY2siCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBOVUxMOworRVJST1I6 ICBkb21haW4gaW50X2RvbWFpbiBkb2VzIG5vdCBhbGxvdyBudWxsIHZhbHVlcworLS0gbm90ZSAt IGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgKGxpa2UgUExwZ1NRTCkKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRE9NQUlOIGludF9kb21haW47CistLSB0aGUgZXhwcmVz c2lvbiBzaG91bGQgcmVtYWluICJ1bmtub3duIgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 NG11bHRpcmFuZ2VbXTsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworTEVUIHZh cjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgdmFyMVsy XSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgICAg dmFyMSAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxMDApfSJ9CisoMSByb3cp CisKKy0tSXQgc2hvdWxkIHdvcmsgaW4gcGxwZ3NxbCB0b28KK0RPICQkCitCRUdJTgorICBMRVQg dmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsx MiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKKworICBSQUlT RSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICB7IntbMiw4KSxbMTEsMTQp fSIsIntbNSw4KSxbMTIsMTAwKX0ifQorRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFNDSEVN QSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhh IGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsKK1NFTEVDVCBzdmFydGVzdC52YXIxOwor IHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1NFVCBzZWFyY2hfcGF0aCB0byBwdWJs aWMsIHN2YXJ0ZXN0OworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJv dykKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2Fk ZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGZv bworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworTEVUIHZhcjEg PSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK0xFVCB2YXIyW3ZhcjFdID0gMDsKK1NFTEVD VCB2YXIyOworICAgdmFyMiAgICAKKy0tLS0tLS0tLS0tCisgWzI6Ml09ezB9CisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsK K0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIg PSAne30nOjppbnRbXTsKK1NFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyB7fQorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CistLSB0aGUgTEVUIHN0YXRlbWVudCBzaG91 bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK1dJ VEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKK0VSUk9SOiAgc3ludGF4 IGVycm9yIGF0IG9yIG5lYXIgIkxFVCIKK0xJTkUgMTogV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEw MCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBv aworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSk7CistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMik7CitFUlJPUjogIGV4cHJlc3Npb24gcmV0dXJu ZWQgbW9yZSB0aGFuIG9uZSByb3cKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDApOwor RVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MKK0RST1AgVkFSSUFCTEUgdmFyMTsK Ky0tIGNvbXBvc2l0ZSB2YXJpYWJsZXMKK0NSRUFURSBUWVBFIHN2X3h5eiBBUyAoeCBpbnQsIHkg aW50LCB6IG51bWVyaWMoMTAsMikpOworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHN2X3h5ejsKK0NS RUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7CitMRVQg djIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworLS0gc2hvdWxkIHdvcmsgdG9vIC0gdGhlcmUgYXJl IHByZXBhcmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwgMyk7CitTRUxFQ1QgdjE7CisgICAgIHYx ICAgICAKKy0tLS0tLS0tLS0tLQorICgxLDIsMy4wMCkKKygxIHJvdykKKworU0VMRUNUIHYyOwor ICAgICAgdjIgICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAsMjAsMzEuNDApCisoMSByb3cp CisKK1NFTEVDVCAodjEpLio7CisgeCB8IHkgfCAgeiAgIAorLS0tKy0tLSstLS0tLS0KKyAxIHwg MiB8IDMuMDAKKygxIHJvdykKKworU0VMRUNUICh2MikuKjsKKyB4ICB8IHkgIHwgICB6ICAgCist LS0tKy0tLS0rLS0tLS0tLQorIDEwIHwgMjAgfCAzMS40MAorKDEgcm93KQorCitTRUxFQ1QgdjEu eCArIHYxLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgIDQuMDAKKygxIHJvdykKKwor U0VMRUNUIHYyLnggKyB2Mi56OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgIDQxLjQwCiso MSByb3cpCisKKy0tIGFjY2VzcyB0byBjb21wb3NpdGUgZmllbGRzIHNob3VsZCBiZSBzYWZlIHRv bworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVz c192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2Mi54OworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2MgorU0VUIFJPTEUgVE8gREVG QVVMVDsKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFZBUklBQkxFIHYyOworRFJPUCBUWVBFIHN2 X3h5ejsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBzaG91bGQgZmFpbCwg d3JvbmcgaWRlbnRpZmllcgorTEVUIG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZC5ub3N1YmZp ZWxkID0gMTA7CitFUlJPUjogIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0 ZWQgbmFtZXMpOiBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQubm9zdWJmaWVsZAorTEVUIG5v ZGIubm9zY2hlbWEubm92YXIubm9maWVsZCA9IDEwOworRVJST1I6ICBjcm9zcy1kYXRhYmFzZSBy ZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vZGIubm9zY2hlbWEubm92YXIubm9maWVs ZAorTEVUIG5vZGIubm9zY2hlbWEubm92YXIgPSAxMDsKK0VSUk9SOiAgY3Jvc3MtZGF0YWJhc2Ug cmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub2RiLm5vc2NoZW1hLm5vdmFyCitDUkVB VEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsKK0NSRUFURSBWQVJJQUJM RSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVDVCB2MTsKKyAg ICAgICAgICAgICB2MSAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAoMSwzLjE0MTU5MjY1MzU4OTc5LGhlbGxvKQorKDEgcm93KQorCitMRVQgdjEuYiA9IDEwLjIy MjI7CitTRUxFQ1QgdjE7CisgICAgICAgIHYxICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t CisgKDEsMTAuMjIyMixoZWxsbykKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0 ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRv IGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1u IGluIGRhdGEgdHlwZSB0MQorTElORSAxOiBMRVQgdjEueCA9IDEwOworICAgICAgICAgICAgXgor LS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQorTEVUIHYxID0g KE5VTEw6OnQxKS4qOworRVJST1I6ICBhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgMyBj b2x1bW5zCitMSU5FIDE6IExFVCB2MSA9IChOVUxMOjp0MSkuKjsKKyAgICAgICAgICAgICAgICAg IF4KKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUgdHlwZXMKKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOworU0VMRUNUIHYx OworICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLQorICgxLDEwLjIyMjIpCisoMSByb3cpCisK Ky0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworU0VM RUNUIHYxOworICAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIyMiwpCiso MSByb3cpCisKK0xFVCB2MSA9ICgxMCwgMTAuMywgMjApOworU0VMRUNUIHYxOworICAgICAgdjEg ICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEwLDEwLjMsMjApCisoMSByb3cpCisKKy0tIHNob3Vs ZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNUIHYxOworICAg djEgICAgCistLS0tLS0tLS0KKyAoMTAsMjApCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsLCBk aXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBj IFRZUEUgaW50OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidDEiIGJlY2F1c2Ugc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnYxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBU WVBFIHQxOworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9zaXRlIHR5cGUg dG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMgZGF0ZSk7CitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CitMRVQgdmFyMSA9ICgxMCwgcGkoKSwg JzIwMjMtMDUtMjYnKTsKK1NFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgdmFyMSAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMCwzLjE0MTU5 MjY1MzU4OTc5LDA1LTI2LTIwMjMpCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsIGR1ZSBkZXBl bmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0Owor RVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInN2YXJfdGVzdCIgYmVjYXVzZSBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorLS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUg c3Zhcl90ZXN0OworRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSBzdmFyX3Rlc3QgYmVjYXVzZSBv dGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIx IGRlcGVuZHMgb24gdHlwZSBzdmFyX3Rlc3QKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFRBQkxFIHN2YXJfdGVzdDsKK0NSRUFURSBUWVBFIHZhcnRlc3RfdDEgQVMgKGEgaW50LCBi IGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X3QxOworQ1JFQVRFIFRBQkxF IHZhcnRlc3R0YWIgKHhjb2wgaW50KTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9s ZTsKK0dSQU5UIFVQREFURSBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9s ZTsKK0dSQU5UIFNFTEVDVCBPTiBUQUJMRSB2YXJ0ZXN0dGFiIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rf cm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3VsZCBiZSBv aworTEVUIHZhcjEgPSAoMTAsIDIwKTsKK0xFVCB2YXIxLmEgPSAzMDsKK0RPICQkCitCRUdJTgor ICBMRVQgdmFyMSA9ICgxMDAsIDEwMCk7CisgIExFVCB2YXIxLmEgPSAxMDAwOworRU5EOworJCQ7 CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEuYTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5p ZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VMRUNUIHZhcjE7CitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0xFVCB2YXIxLmEgPSB2YXIx LmEgKyAxMDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg dmFyMQorTEVUIHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2 YXJ0ZXN0dGFiIFdIRVJFIHhjb2wgPSB2YXIxLmEgKyAxMCkpOworRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJ Q0UgJyUnLCB2YXIxOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNz aW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxIgor UEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitETyAk JCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FM IGV4cHJlc3Npb24gInZhcjEuYSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2Nr IGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBF TkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZh cjEKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5hICsgMTAiCitQ TC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgU1FMIHN0YXRlbWVu dAorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRP IHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9s ZTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuYTsKKyAgYSAgIAorLS0tLS0tCisgMTAw MAorKDEgcm93KQorCitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgIAorLS0tLS0tLS0tLS0tCisg KDEwMDAsMTAwKQorKDEgcm93KQorCitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitMRVQgdmFy MS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hF UkUgeGNvbCA9IHZhcjEuYSArIDEwKSk7CitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2 YXIxOyBFTkQgJCQ7CitOT1RJQ0U6ICAoMCwxMDApCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxLmE7IEVORCAkJDsKK05PVElDRTogIDAKK0RPICQkIEJFR0lOIExFVCB2YXIxLmEg PSB2YXIxLmEgKyAxMDsgRU5EICQkOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1JFVk9LRSBTRUxF Q1QgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3VsZCBmYWlsIGFnYWluCitTRUxFQ1Qg dmFyMS5hOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2 YXIxCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24g dmFyaWFibGUgdmFyMQorTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOworRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitMRVQgdmFyMS5hID0gKFNFTEVD VCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZh cjEuYSArIDEwKSk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlh YmxlIHZhcjEKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVY VDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVf Y29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScs IHZhcjEuYTsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMS5hIgorUEwv cGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitETyAkJCBC RUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBzdGF0ZW1l bnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9j b2RlX2Jsb2NrIGxpbmUgMSBhdCBTUUwgc3RhdGVtZW50CitTRVQgUk9MRSBUTyBERUZBVUxUOwor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0dGFiOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0RST1AgVFlQRSB2YXJ0ZXN0X3QxOworQ1JFQVRFIFRZUEUg dmFydGVzdF90MSBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRl eHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyB2YXJ0ZXN0X3QxOworLS0gc2hvdWxkIGZhaWwK K1NFTEVDVCB2YXIxLmE7CitFUlJPUjogIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgb2YgdHlw ZSAidGV4dCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitMSU5FIDE6IFNFTEVDVCB2 YXIxLmE7CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgdmFyMi5jOworRVJST1I6ICBjb3VsZCBu b3QgaWRlbnRpZnkgY29sdW1uICJjIiBpbiB2YXJpYWJsZSAicHVibGljLnZhcjIiCitMSU5FIDE6 IFNFTEVDVCB2YXIyLmM7CisgICAgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIFRZUEUgdmFydGVzdF90MTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTsKK0xFVCB2YXIxID0gJzEnOworTEVUIHZhcjEg PSAxMC4xOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gJzEnOjpqc29uYjsKK0VSUk9SOiAg dmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBvZiB0eXBlIGludGVnZXIsIGJ1dCBleHByZXNzaW9u IGlzIG9mIHR5cGUganNvbmIKK0xJTkUgMTogTEVUIHZhcjEgPSAnMSc6Ompzb25iOworICAgICAg ICAgICAgICAgICAgIF4KK0hJTlQ6ICBZb3Ugd2lsbCBuZWVkIHRvIHJld3JpdGUgb3IgY2FzdCB0 aGUgZXhwcmVzc2lvbi4KKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAnMSc6Ompzb25iOjpp bnQ7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEueCA9IDEwOworRVJST1I6ICBjYW5ub3QgYXNz aWduIHRvIGZpZWxkICJ4IiBvZiBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgYmVjYXVz ZSBpdHMgdHlwZSBpbnRlZ2VyIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitMSU5FIDE6IExFVCB2 YXIxLnggPSAxMDsKKyAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBT Q0hFTUEgdmFydGVzdDsKK0NSRUFURSBUWVBFIHZhcnRlc3R0eXBlIEFTICh2YXJ0ZXN0IGludCk7 CitDUkVBVEUgVkFSSUFCTEUgdmFydGVzdC52YXJ0ZXN0IEFTIHZhcnRlc3R0eXBlOworU0VUIFNF QVJDSF9QQVRIIFRPIHZhcnRlc3Q7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcnRlc3QudmFydGVz dCA9IDE7CitFUlJPUjogIHRhcmdldCAidmFydGVzdC52YXJ0ZXN0IiBvZiBMRVQgY29tbWFuZCBp cyBhbWJpZ3VvdXMKK0xJTkUgMTogTEVUIHZhcnRlc3QudmFydGVzdCA9IDE7CisgICAgICAgICAg ICBeCitEUk9QIFZBUklBQkxFIHZhcnRlc3QudmFydGVzdDsKK0RST1AgVFlQRSB2YXJ0ZXN0dHlw ZTsKK0VSUk9SOiAgdHlwZSAidmFydGVzdHR5cGUiIGRvZXMgbm90IGV4aXN0CitEUk9QIFNDSEVN QSB2YXJ0ZXN0OworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CistLSBhcnJheXMgYXJlIHN1 cHBvcnRlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpY1tdOworTEVUIHZhcjEgPSBB UlJBWVsxLjEsMi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsKK1NFTEVDVCB2YXIxOworICAgIHZh cjEgICAgCistLS0tLS0tLS0tLS0KKyB7MTAuMSwyLjF9CisoMSByb3cpCisKKy0tIExFVCB0YXJn ZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBmYWlsCitMRVQgdmFyMVtnZW5lcmF0ZV9zZXJp ZXMoMSwzKV0gPSAxMDA7CitFUlJPUjogIHNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3Qg YWxsb3dlZCBpbiBMRVQKK0xJTkUgMTogTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyldID0g MTAwOworICAgICAgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBhcnJheXMg aW5zaWRlIGNvbXBvc2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgbnVtZXJpYywgYiBudW1lcmlj W10pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CitMRVQgdmFyMSA9ICgxMC4xLCBBUlJB WVswLjAsIDAuMF0pOworTEVUIHZhcjEuYSA9IDEwLjI7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAg dmFyMSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMC4yLCJ7MC4wLDAuMH0iKQor KDEgcm93KQorCitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworICAgICAgICB2 YXIxICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAuMiwiezEwLjMsMC4wfSIp CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKy0tIEVuY291 cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsK K1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nh bl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKy0t IHRlc3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50 KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwMDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVkFSSUFCTEUgemVybyBpbnQ7CitM RVQgemVybyA9IDA7CistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAorU0VMRUNUIGNvdW50KCopIEZS T00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworIGNvdW50IAorLS0tLS0tLQorICAgMTAw CisoMSByb3cpCisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAor RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUg YSUxMCA9IHplcm87CisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBTZXEgU2Nh biBvbiBzdmFyX3Rlc3QKKyAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykKKygzIHJv d3MpCisKK0xFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CistLSBy ZXN1bHQgc2hvdWxkIGJlIDEwMDAKK1NFTEVDVCB6ZXJvOworIHplcm8gCistLS0tLS0KKyAxMDAw CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0Owor UkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitS RVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dv cmtlcnNfcGVyX2dhdGhlcjsKKy0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBp biBwYXJhbGxlbCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZh cjEgPSAxMDsKK0NSRUFURSBWSUVXIHZhcjF2aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxLCAw KSBBUyByZXN1bHQ7CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworIHJlc3VsdCAKKy0tLS0tLS0t CisgICAgIDEwCisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvbjsKK1NF TEVDVCAqIEZST00gdmFyMXZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgMTAKKygxIHJv dykKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsKK0RST1AgVklFVyB2YXIxdmll dzsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVB VEUgVEFCTEUgc3Zhcl90ZXN0KGlkIGludCwgdiBpbnQpOworTEVUIHZhcmlkID0gMTsKK0lOU0VS VCBJTlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJf dGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAgMSB8IDEwMAorKDEgcm93KQorCitVUERB VEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9N IHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAgMSB8IDIwMAorKDEgcm93KQor CitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00g c3Zhcl90ZXN0OworIGlkIHwgdiAKKy0tLS0rLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIHN2 YXJfdGVzdDsKK0RST1AgVkFSSUFCTEUgdmFyaWQ7CistLSB2aXNpYmlsaXR5IGNoZWNrCistLSB2 YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19jbGFzcyB2YXIxIFdIRVJFIHZh cjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7CisgcmVsbmFtZSAgCistLS0tLS0tLS0tCisgcGdfY2xh c3MKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFRBQkxFIHh4dGFiKGF2 YXIgaW50KTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMpOworQ1JFQVRFIFRZUEUgeHh0 eXBlIEFTIChhdmFyIGludCk7CitDUkVBVEUgVkFSSUFCTEUgeHh0YWIgQVMgeHh0eXBlOworSU5T RVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKy0tIGl0IGlzIGFtYmlndW91cywgYnV0IGNvbHVt bnMgYXJlIHByZWZlcnJlZAorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAor LS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3Mp CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CistLSBzaG91bGQgYmUgb2ss IHNlZSB0aGUgdGFibGUKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQor ICAzMzMKKyAgIDEwCisoMiByb3dzKQorCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMu YXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgICAgCisgICAgIAorKDIgcm93cykK KworRFJPUCBWQVJJQUJMRSB4eHRhYjsKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7Cisg YXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCitEUk9QIFZBUklBQkxFIHB1 YmxpYy5hdmFyOworRFJPUCBUWVBFIHh4dHlwZTsKK0RST1AgVEFCTEUgeHh0YWI7CistLSBUaGUg dmFyaWFibGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9yIGJ5IGFsaWFzCitDUkVBVEUgVFlQ RSBwdWJsaWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBWQVJJ QUJMRSBwdWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBlOworQ1JFQVRFIFRBQkxFIHB1Ymxp Yy5zdmFyKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMuc3ZhciBWQUxVRVMoMTAs IDIwKTsKK0xFVCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwgMzAwKTsKKy0tIHNob3VsZCBiZSBv aworLS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAor LS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGlj LnN2YXI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuKiBGUk9NIHB1 YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0t IHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAgICAgc3ZhciAgICAgIAorLS0t LS0tLS0tLS0tLS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQorCitTRUxFQ1QgcHVibGljLnN2 YXIuYzsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1QgKHB1YmxpYy5zdmFy KS4qOworICBhICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0tLS0tCisgMTAwIHwgMjAwIHwg MzAwCisoMSByb3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IK K1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CitFUlJPUjogIGNvbHVtbiBz dmFyLmMgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBw dWJsaWMuc3ZhcjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcwor U0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworICBjICAKKy0tLS0tCisg MzAwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICAKKy0t LS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisgYSAg fCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworLS0gc2hvdyB2YXJpYWJsZQor U0VMRUNUIHB1YmxpYy5zdmFyOworICAgICBzdmFyICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAo MTAwLDIwMCwzMDApCisoMSByb3cpCisKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworICBjICAKKy0t LS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisgIGEgIHwgIGIg IHwgIGMgIAorLS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAgfCAyMDAgfCAzMDAKKygxIHJvdykKKwor LS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5z dmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAgY29sdW1uIHN2YXIuYyBkb2VzIG5vdCBl eGlzdAorTElORSAxOiBTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworICAg ICAgICAgICAgICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2 YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVEFCTEUgcHVibGljLnN2YXI7CitEUk9Q IFRZUEUgcHVibGljLnN2YXJfdHlwZTsKKy0tIFRoZSBzZXF1ZW5jZSBpZGVudC4qIGNhbm5vdCBi ZSB1c2VkIGJ5IHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlLAorLS0gYW5kIGluIHRoaXMg Y2FzZSwgdGhlcmUgaXMgbm90IGNvbGxpc2lvbgorQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworU0VU IFNFQVJDSF9QQVRIIFRPIHZhcnRlc3Q7CitDUkVBVEUgVEFCTEUgdmFydGVzdF9mb28oYSBpbnQs IGIgaW50KTsKK0lOU0VSVCBJTlRPIHZhcnRlc3RfZm9vIFZBTFVFUygxMCwyMCksICgzMCw0MCk7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X2ZvbzsKK0xFVCB2YXIxID0gKDEwMCwy MDApOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsK K0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFibGUgInZhcjEiCitMSU5F IDE6IFNFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsKKyAgICAgICAgICAgICAgIF4KKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7CisgYSAg fCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKyAzMCB8IDQwCisoMiByb3dzKQorCistLSBzaG91 bGQgdG8gZmFpbAorU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbzsKK0VSUk9S OiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFibGUgInZhcjEiCitMSU5FIDE6IFNF TEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb287CisgICAgICAgICAgICAgICAgICAg ICBeCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9m b28gdmFyMTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMgorKDEgcm93KQorCitTRVQgU0VBUkNI X1BBVEggVE8gREVGQVVMVDsKK0RST1AgU0NIRU1BIHZhcnRlc3QgQ0FTQ0FERTsKK05PVElDRTog IGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVz IHRvIHRhYmxlIHZhcnRlc3QudmFydGVzdF9mb28KK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2 YXJpYWJsZSB2YXJ0ZXN0LnZhcjEKK0NSRUFURSBUWVBFIGFiIEFTIChhIGludGVnZXIsIGIgaW50 ZWdlcik7CitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKK0NSRUFURSBUQUJMRSB2X2FiIChh IGludGVnZXIsIGIgaW50ZWdlcik7CitJTlNFUlQgSU5UTyB2X2FiIFZBTFVFUygxMCwyMCk7Cist LSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKyBhICAKKy0t LS0KKyAxMAorKDEgcm93KQorCitDUkVBVEUgU0NIRU1BIHZfYWI7CitDUkVBVEUgVkFSSUFCTEUg dl9hYi5hIEFTIGludGVnZXI7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5h IEZST00gdl9hYjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZf YWI7CitEUk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZUEUgYWI7CitEUk9QIFZBUklBQkxFIHZfYWIu YTsKK0RST1AgU0NIRU1BIHZfYWI7CitDUkVBVEUgVFlQRSB0X2FtX3R5cGUgQVMgKGIgaW50KTsK K0NSRUFURSBTQ0hFTUEgeHh4X2FtOworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKK0NSRUFU RSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90eXBlOworTEVUIHh4eF9hbSA9IFJPVygxMCk7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisgeHh4X2FtIAorLS0tLS0tLS0KKyAoMTAp CisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5B TUUiLnh4eF9hbS5iID0gMjA7CistLSBzaG91bGQgYmUgc3RpbGwgb2sKK1NFTEVDVCB4eHhfYW07 CisgeHh4X2FtIAorLS0tLS0tLS0KKyAoMTApCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsLCB0 aGUgcmVmZXJlbmNlIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCB4eHhfYW0uYjsKK0VSUk9S OiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInh4eF9hbS5iIiBpcyBhbWJpZ3VvdXMKK0xJ TkUgMTogU0VMRUNUIHh4eF9hbS5iOworICAgICAgICAgICAgICAgXgorLS0gZW5oYW5jZWQgcmVm ZXJlbmNlcyBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMueHh4X2FtLmI7CisgYiAgCistLS0t CisgMTAKKygxIHJvdykKKworU0VMRUNUIDoiREJOQU1FIi54eHhfYW0uYjsKKyBiICAKKy0tLS0K KyAyMAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgeHh4X2FtKGIgIGludCk7CitJTlNFUlQgSU5U TyB4eHhfYW0gVkFMVUVTKDEwKTsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB4eHhf YW0uYiBGUk9NIHh4eF9hbTsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1QgeC5i IEZST00geHh4X2FtIHg7CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworRFJPUCBUQUJMRSB4 eHhfYW07CitEUk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07CitEUk9QIFZBUklBQkxFIHh4eF9h bS5iOworRFJPUCBTQ0hFTUEgeHh4X2FtOworQ1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7CitDUkVB VEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSIgQVMgdF9hbV90eXBlOwor Q1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYiBBUyBpbnQ7CitTRVQgc2VhcmNo X3BhdGggVE8gOiJEQk5BTUUiOworLS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIDoiREJO QU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAicmVncmVzc2lvbi5i IiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdyZXNzaW9uIi5iOworICAgICAgICAg ICAgICAgXgorLS0gc2hvdWxkIGJlIGFtYmlndW91cyB0b28KK1NFTEVDVCA6IkRCTkFNRSIuOiJE Qk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJyZWdyZXNzaW9u LnJlZ3Jlc3Npb24uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVzc2lvbiIu InJlZ3Jlc3Npb24iLmI7CisgICAgICAgICAgICAgICBeCitDUkVBVEUgVEFCTEUgOiJEQk5BTUUi KGIgaW50KTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoiREJOQU1FIi5iIEZST00gOiJEQk5B TUUiOworIGIgCistLS0KKygwIHJvd3MpCisKK0RST1AgVEFCTEUgOiJEQk5BTUUiOworRFJPUCBW QVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46 IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworUkVTRVQgc2VhcmNo X3BhdGg7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXgg ZWViMGY5NGNhM2MuLmU3MjM2MGQ1MjU0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsCkBAIC0yOTUsMyArMjk1LDg4NiBAQCBEUk9QIFJPTEUgcmVncmVzc192 YXJpYWJsZV9yMTsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOwogCiBEUk9QIFJPTEUg cmVncmVzc192YXJpYWJsZV9vd25lcjsKKworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cworQ1JFQVRF IFJPTEUgcmVncmVzc19ub293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQk IFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIx ICQkIExBTkdVQUdFIHNxbCBTRUNVUklUWSBERUZJTkVSOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBwbHBnc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQx ICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHBscGdzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4g JDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVSOworCitM RVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxm eCgyMCk7CitTRUxFQ1Qgc3FsZnhfc2QoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CitTRUxF Q1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKworLS0gc2hvdWxkIGZhaWwKK1NFVCBST0xFIFRPIHJlZ3Jl c3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHBs cGdzcWxmeCgyMCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKK1NF TEVDVCBwbHBnc3FsZnhfc2QoMjApOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293bmVyOworCistLSBzaG91bGQgYmUg b2sKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitTRUxFQ1Qg c3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7 CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitEUk9QIEZV TkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQpOworRFJP UCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsKKworRFJPUCBST0xFIHJlZ3Jlc3Nfbm9vd25l cjsKKworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIG51bWVyaWM7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBWSUVXIHRl c3RfdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBGUk9NIGdl bmVyYXRlX3NlcmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKK0xFVCB2 YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzdGFydCBhIG5ldyBz ZXNzaW9uCitcYworCitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKK0xFVCB2YXIxID0gMy4xNDsK K1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzaG91bGQgZmFpbCwgZGVwZW5kZW5jeQor RFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgdmFy MSBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZBUklBQkxF IHZhcjIgdGV4dDsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiBTUUwgZnVuY3Rpb25zCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDEodmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAk JCBTRUxFQ1QgdmFyMSB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKKworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQk IFNFTEVDVCB2YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitMRVQgdmFyMSA9 ICdzdHIxJzsKK0xFVCB2YXIyID0gJ3N0cjInOworCitTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVs bG8nKSk7CisKKy0tIGlubGluaW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVS Qk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCitEUk9QIEZVTkNUSU9OIHNx bGZ4MSh2YXJjaGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJPUCBWQVJJ QUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBhY2Nlc3MgZnJvbSBjYWNoZWQg cGxhbnMgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVB VEUgVkFSSUFCTEUgdmFyMiBBUyBudW1lcmljOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2YXIxOyBF TkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxw Z3NxbGZ4MihudW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkIEJFR0lOIExFVCB2YXIyID0gJDE7 IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNl X2dlbmVyaWNfcGxhbjsKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdzcWxmeCgpOwor TEVUIHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKworU0VMRUNUIHBscGdz cWxmeDIoMTAuMCk7CitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBW QVJJQUJMRSB2YXIyOworCistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikgc2hvdWxk IHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUg dmFyMiBBUyBudW1lcmljOworCitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBscGdzcWxm eCgpOworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKworU0VMRUNU IHBscGdzcWxmeDIoMTAuMCk7CitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK0RST1AgRlVO Q1RJT04gcGxwZ3NxbGZ4MigpOworCistLSBkZXBlbmRlbmN5IG9uIGNvbHVtbiB0eXBlCitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgdGVzdHZhcihhIGludCwgYiBp bnQsIGMgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEwLDIwLDMwKTsKKworQUxU RVIgVEFCTEUgdGVzdHZhciBEUk9QIENPTFVNTiBhOworQUxURVIgVEFCTEUgdGVzdHZhciBEUk9Q IENPTFVNTiBiOworCitDUkVBVEUgRlVOQ1RJT04gcGxwZ3NxbGZ4MygpCitSRVRVUk5TIHZvaWQg QVMgJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKFNFTEVDVCAqIEZST00gdGVzdHZhcik7CisgIFJB SVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHBscGdzcWxmeDMoKTsKKworQUxURVIgVEFCTEUgdGVzdHZhciBB TFRFUiBDT0xVTU4gYyBUWVBFIG51bWVyaWM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHBs cGdzcWxmeDMoKTsKKworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngzKCk7CitEUk9QIFRBQkxFIHRl c3R2YXI7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gREVG QVVMVDsKKworLS0gcmVwZWF0ZWQgZXhlY3V0aW9uIHNob3VsZCBub3QgY3Jhc2gKK0NSRUFURSBW QVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEgaW50KTsKK0lOU0VSVCBJ TlRPIHRlc3R2YXIgVkFMVUVTKDEpOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOwor ICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgRlJPTSB0 ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7Cisk JDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAg TE9PUAorICAgIExFVCB2YXIxID0gKFNFTEVDVCBhICsgdmFyMSBGUk9NIHRlc3R2YXIpOworICBF TkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitETyAkJAor QkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVU IHZhcjEgPSAoU0VMRUNUIGEgRlJPTSB0ZXN0dmFyKSArIHZhcjE7CisgIEVORCBMT09QOworICBS QUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RPICQkCitCRUdJTgorICBMRVQg dmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7Cisg IEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RPICQk CitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBM RVQgdmFyMSA9IGkgKyB2YXIxOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFy MTsKK0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHRlc3R2YXI7 CisKKy0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQgd29yaworQ1JFQVRF IFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVtZXJpY1tdOworCitE TyAkJAorQkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4gMS4uMTAK KyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7CisgIEVO RCBMT09QOworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitFTkQ7Cisk JDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBDQUxM IHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2Vz cyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZB UklBQkxFIHYgaW50OworCitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4g UkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hv dWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYpOworCitE TyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKKworRFJPUCBQUk9DRURVUkUgcChpbnQpOwor RFJPUCBWQVJJQUJMRSB2OworCistLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVk IHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20g ZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYgPSAyMDsK K1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CisKKy0tIHNob3VsZCBmYWlsCitFWEVD VVRFIHB0ZXN0KHYpOworCitERUFMTE9DQVRFIHB0ZXN0OworRFJPUCBWQVJJQUJMRSB2OworCist LSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworQ1JFQVRFIFZBUklB QkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIx ID0gcGkoKTsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdC52 YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQgc2VhcmNoX3BhdGggVE8g c3ZhcnRlc3Q7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBwaSgpICsgMTA7CitTRUxF Q1QgdmFyMTsKKworUkVTRVQgc2VhcmNoX3BhdGg7CitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVND QURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworCistLSB2YXJpYWJsZXMgY2Fu IGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JFR0lOOworU0VUIFRSQU5TQUNUSU9O IFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NPTU1JVDsKKworU0VMRUNUIHZhcjE7 CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVzdCBvZiBkb21haW5zCitDUkVBVEUgRE9N QUlOIGludF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENIRUNLIChWQUxVRSA+IDEwMCk7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOworCistLSBzaG91bGQgZmFpbAorU0VMRUNU IHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDAwOworU0VMRUNUIHZhcjE7 CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOworCistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSBOVUxMOworCistLSBub3RlIC0gZG9tYWluIGRlZmF1bHRzIGFyZSBub3Qgc3VwcG9y dGVkIHlldCAobGlrZSBQTHBnU1FMKQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIERPTUFJ TiBpbnRfZG9tYWluOworCistLSB0aGUgZXhwcmVzc2lvbiBzaG91bGQgcmVtYWluICJ1bmtub3du IgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50NG11bHRpcmFuZ2VbXTsKKy0tIHNob3VsZCBi ZSBvaworTEVUIHZhcjEgPSBOVUxMOworTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7 WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKK1NF TEVDVCB2YXIxOworCistLUl0IHNob3VsZCB3b3JrIGluIHBscGdzcWwgdG9vCitETyAkJAorQkVH SU4KKyAgTEVUIHZhcjEgPSBOVUxMOworICBMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIs IntbNSw4KSxbMTIsMTQpfSJ9JzsKKyAgTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7 CisKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitEUk9QIFZBUklBQkxF IHZhcjE7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3QgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50IENSRUFURSBUQUJMRSBmb28oYSBpbnQpOworTEVUIHN2YXJ0ZXN0LnZhcjEgPSAxMDA7CitT RUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKworU0VUIHNlYXJjaF9wYXRoIHRvIHB1YmxpYywgc3ZhcnRl c3Q7CisKK1NFTEVDVCB2YXIxOworCitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRb XTsKKworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKworTEVUIHZhcjJb dmFyMV0gPSAwOworCitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOwor CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBp bnRbXTsKKworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKworU0VMRUNU IHZhcjI7CisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworLS0gdGhlIExFVCBzdGF0ZW1l bnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CitXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CisKKy0tIHNo b3VsZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSk7CisKKy0tIHNob3Vs ZCBmYWlsCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAyKTsKK0xFVCB2YXIxID0gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDApOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGNvbXBvc2l0 ZSB2YXJpYWJsZXMKK0NSRUFURSBUWVBFIHN2X3h5eiBBUyAoeCBpbnQsIHkgaW50LCB6IG51bWVy aWMoMTAsMikpOworCitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgc3ZfeHl6OworQ1JFQVRFIFZBUklB QkxFIHYyIEFTIHN2X3h5ejsKKworTEVUIHYxID0gKDEsIDIsIDMuMTQpOworTEVUIHYyID0gKDEw LCAyMCwgMy4xNCAqIDEwKTsKKworLS0gc2hvdWxkIHdvcmsgdG9vIC0gdGhlcmUgYXJlIHByZXBh cmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwgMyk7CisKK1NFTEVDVCB2MTsKK1NFTEVDVCB2MjsK K1NFTEVDVCAodjEpLio7CitTRUxFQ1QgKHYyKS4qOworCitTRUxFQ1QgdjEueCArIHYxLno7CitT RUxFQ1QgdjIueCArIHYyLno7CisKKy0tIGFjY2VzcyB0byBjb21wb3NpdGUgZmllbGRzIHNob3Vs ZCBiZSBzYWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworCitTRVQg Uk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qg djIueDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2MTsKK0RST1Ag VkFSSUFCTEUgdjI7CitEUk9QIFRZUEUgc3ZfeHl6OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwsIHdyb25nIGlkZW50aWZpZXIKK0xFVCBub2RiLm5v c2NoZW1hLm5vdmFyLm5vZmllbGQubm9zdWJmaWVsZCA9IDEwOworTEVUIG5vZGIubm9zY2hlbWEu bm92YXIubm9maWVsZCA9IDEwOworTEVUIG5vZGIubm9zY2hlbWEubm92YXIgPSAxMDsKKworQ1JF QVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CisKK0NSRUFURSBWQVJJ QUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVDVCB2MTsK K0xFVCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGZhaWwsIGF0dHJp YnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworCistLSBzaG91bGQgZmFpbCwgZG9u J3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7CisKKy0t IGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUgdHlwZXMKKy0tIHNob3Vs ZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOworU0VMRUNUIHYxOworCist LSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKK1NFTEVD VCB2MTsKKworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7CisKKy0tIHNob3Vs ZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNUIHYxOworCist LSBzaG91bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQRSB0MSBB TFRFUiBBVFRSSUJVVEUgYyBUWVBFIGludDsKKworRFJPUCBWQVJJQUJMRSB2MTsKK0RST1AgVFlQ RSB0MTsKKworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9zaXRlIHR5cGUg dG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMgZGF0ZSk7CitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CisKK0xFVCB2YXIxID0gKDEwLCBwaSgp LCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsIGR1ZSBkZXBl bmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0Owor CistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFT IChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF90MTsKK0NS RUFURSBUQUJMRSB2YXJ0ZXN0dGFiICh4Y29sIGludCk7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyX3Rlc3Rfcm9sZTsKKworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVz c192YXJfdGVzdF9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFRBQkxFIHZhcnRlc3R0YWIgVE8gcmVn cmVzc192YXJfdGVzdF9yb2xlOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7 CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAoMTAsIDIwKTsKK0xFVCB2YXIxLmEgPSAz MDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKDEwMCwgMTAwKTsKKyAgTEVUIHZhcjEu YSA9IDEwMDA7CitFTkQ7CiskJDsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLmE7CitT RUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0xFVCB2YXIxLmEgPSAoU0VM RUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBXSEVSRSB4Y29sID0g dmFyMS5hICsgMTApKTsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5E ICQkOworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitETyAk JCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKworU0VUIFJPTEUgVE8g REVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMS5hOworU0VMRUNUIHZhcjE7CitMRVQgdmFyMS5hID0gdmFyMS5h ICsgMTA7CitMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9N IHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYSArIDEwKSk7CisKK0RPICQkIEJFR0lOIFJB SVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAn JScsIHZhcjEuYTsgRU5EICQkOworRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEw OyBFTkQgJCQ7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitSRVZPS0UgU0VMRUNUIE9OIFZBUklB QkxFIHZhcjEgRlJPTSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl90ZXN0X3JvbGU7CisKKy0tIHNob3VsZCBmYWlsIGFnYWluCitTRUxFQ1QgdmFyMS5hOwor U0VMRUNUIHZhcjE7CitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitMRVQgdmFyMS5hID0gKFNF TEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9 IHZhcjEuYSArIDEwKSk7CisKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7IEVO RCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOworRE8g JCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CisKK1NFVCBST0xFIFRP IERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFydGVzdHRhYjsK K0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitEUk9QIFRZUEUgdmFydGVzdF90MTsK KworQ1JFQVRFIFRZUEUgdmFydGVzdF90MSBBUyAoYSBpbnQsIGIgaW50KTsKKworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIHZhcnRlc3RfdDE7 CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworU0VMRUNUIHZhcjIuYzsKKworRFJP UCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBUWVBFIHZhcnRlc3Rf dDE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworTEVUIHZhcjEgPSAxOworTEVU IHZhcjEgPSAnMSc7CitMRVQgdmFyMSA9IDEwLjE7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFy MSA9ICcxJzo6anNvbmI7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAnMSc6Ompzb25i OjppbnQ7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMS54ID0gMTA7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworQ1JFQVRFIFRZUEUgdmFydGVzdHR5 cGUgQVMgKHZhcnRlc3QgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0LnZhcnRlc3QgQVMg dmFydGVzdHR5cGU7CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKKworLS0gc2hvdWxkIGZh aWwKK0xFVCB2YXJ0ZXN0LnZhcnRlc3QgPSAxOworCitEUk9QIFZBUklBQkxFIHZhcnRlc3QudmFy dGVzdDsKK0RST1AgVFlQRSB2YXJ0ZXN0dHlwZTsKK0RST1AgU0NIRU1BIHZhcnRlc3Q7CitTRVQg U0VBUkNIX1BBVEggVE8gREVGQVVMVDsKKworLS0gYXJyYXlzIGFyZSBzdXBwb3J0ZWQKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWNbXTsKK0xFVCB2YXIxID0gQVJSQVlbMS4xLDIuMV07 CitMRVQgdmFyMVsxXSA9IDEwLjE7CitTRUxFQ1QgdmFyMTsKKworLS0gTEVUIHRhcmdldCBkb2Vz bid0IGFsbG93IHNyZiwgc2hvdWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVyYXRlX3NlcmllcygxLDMp XSA9IDEwMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBhcnJheXMgaW5zaWRlIGNvbXBv c2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgbnVtZXJpYywgYiBudW1lcmljW10pOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdDE7CitMRVQgdmFyMSA9ICgxMC4xLCBBUlJBWVswLjAsIDAuMF0p OworTEVUIHZhcjEuYSA9IDEwLjI7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmJbMV0gPSAxMC4z OworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKwor LS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nv c3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90 YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIg PSAyOworCistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxFIHN2YXJf dGVzdChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklBQkxFIHpl cm8gaW50OworTEVUIHplcm8gPSAwOworCistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAorU0VMRUNU IGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCistLSBwYXJhbGxl bCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCitMRVQgemVy byA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOworCistLSByZXN1bHQgc2hvdWxk IGJlIDEwMDAKK1NFTEVDVCB6ZXJvOworCitEUk9QIFZBUklBQkxFIHplcm87CitEUk9QIFRBQkxF IHN2YXJfdGVzdDsKKworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVs X3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQg bWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKworLS0gdGhlIHJlc3VsdCBvZiB2aWV3 IHNob3VsZCBiZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworCitDUkVBVEUgVklFVyB2YXIxdmlldyBBUyBTRUxF Q1QgQ09BTEVTQ0UodmFyMSwgMCkgQVMgcmVzdWx0OworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3 OworCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb247CisKK1NFTEVDVCAqIEZST00gdmFy MXZpZXc7CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CisKK0RST1AgVklFVyB2 YXIxdmlldzsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcmlkIGlu dDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CisKK0xFVCB2YXJpZCA9 IDE7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VMRUNUICog RlJPTSBzdmFyX3Rlc3Q7CitVUERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJFIGlkID0g dmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKK0RFTEVURSBGUk9NIHN2YXJfdGVzdCBX SEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisKK0RST1AgVEFCTEUg c3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJpZDsKKworLS0gdmlzaWJpbGl0eSBjaGVjawor LS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFyMSBXSEVS RSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NS RUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygz MzMpOworCitDUkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKKworQ1JFQVRFIFZBUklB QkxFIHh4dGFiIEFTIHh4dHlwZTsKKworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKwor LS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0 YWIuYXZhciBGUk9NIHh4dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFyIEZST00g eHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CisKKy0tIHNob3Vs ZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKworLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJM RSB4eHRhYjsKKworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJM RSBwdWJsaWMuYXZhcjsKKworRFJPUCBUWVBFIHh4dHlwZTsKKworRFJPUCBUQUJMRSB4eHRhYjsK KworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlhcwor Q1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitD UkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKKworQ1JFQVRF IFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CisKK0lOU0VSVCBJTlRPIHB1YmxpYy5z dmFyIFZBTFVFUygxMCwgMjApOworCitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7 CisKKy0tIHNob3VsZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMu c3ZhcjsKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLiogRlJP TSBwdWJsaWMuc3ZhcjsKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOwor U0VMRUNUIHB1YmxpYy5zdmFyLmM7CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworCistLSB0aGUg dmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBG Uk9NIHB1YmxpYy5zdmFyOworCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJs aWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1Ymxp Yy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93IHZhcmlh YmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVDVCAo cHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJy b3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBiZSBm aXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4Owor CitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RS T1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworCistLSBUaGUgc2VxdWVuY2UgaWRlbnQuKiBjYW5u b3QgYmUgdXNlZCBieSByZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZSwKKy0tIGFuZCBpbiB0 aGlzIGNhc2UsIHRoZXJlIGlzIG5vdCBjb2xsaXNpb24KK0NSRUFURSBTQ0hFTUEgdmFydGVzdDsK K1NFVCBTRUFSQ0hfUEFUSCBUTyB2YXJ0ZXN0OworQ1JFQVRFIFRBQkxFIHZhcnRlc3RfZm9vKGEg aW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjApLCAoMzAs NDApOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X2ZvbzsKK0xFVCB2YXIxID0g KDEwMCwyMDApOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRl c3RfZm9vOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2Zv byB2YXIxOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2 YXJ0ZXN0X2ZvbzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9N IHZhcnRlc3RfZm9vIHZhcjE7CisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworRFJPUCBT Q0hFTUEgdmFydGVzdCBDQVNDQURFOworCitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBi IGludGVnZXIpOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKKworQ1JFQVRFIFRBQkxF IHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEw LDIwKTsKKworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7 CisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKKworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRl Z2VyOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsK KworRFJPUCBWQVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOwor RFJPUCBWQVJJQUJMRSB2X2FiLmE7CitEUk9QIFNDSEVNQSB2X2FiOworCitDUkVBVEUgVFlQRSB0 X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworCitTRVQgc2VhcmNo X3BhdGggVE8gcHVibGljOworCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsK K0xFVCB4eHhfYW0gPSBST1coMTApOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07 CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9h bS5iID0gMjA7CisKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKworLS0g c2hvdWxkIGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4 eF9hbS5iOworCistLSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1 YmxpYy54eHhfYW0uYjsKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisKK0NSRUFURSBUQUJM RSB4eHhfYW0oYiAgaW50KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworCistLSB3 ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CitTRUxFQ1Qg eC5iIEZST00geHh4X2FtIHg7CisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBw dWJsaWMueHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9h bTsKKworQ1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7CisKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFN RSIuOiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJE Qk5BTUUiLjoiREJOQU1FIi5iIEFTIGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1F IjsKKworLS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOworCistLSBz aG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKKwor Q1JFQVRFIFRBQkxFIDoiREJOQU1FIihiIGludCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IDoiREJOQU1FIi5iIEZST00gOiJEQk5BTUUiOworCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKKwor RFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJO QU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworCitSRVNF VCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYjI4NDQ3MzBmNzku Ljk1YzdhODkyZjk3IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTUwNCw2ICsxNTA0 LDcgQEAgTGFyZ2VPYmplY3REZXNjCiBMYXRjaAogTGF1bmNoZXJMYXN0U3RhcnRUaW1lc0VudHJ5 CiBMZXJwRnVuYworTGV0U3RtdAogTGV4RGVzY3IKIExleGVtZUVudHJ5CiBMZXhlbWVIYXNoS2V5 CkBAIC0yNjE5LDYgKzI2MjAsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lv bgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFs dWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3Ry YWludFRyaWdnZXJEYXRhCkBAIC0yODEzLDYgKzI4MTUsOSBAQCBTdXBwb3J0UmVxdWVzdFJvd3MK IFN1cHBvcnRSZXF1ZXN0U2VsZWN0aXZpdHkKIFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkKIFN1cHBv cnRSZXF1ZXN0V0Z1bmNNb25vdG9uaWMKK1NWYXJpYWJsZQorU1ZhcmlhYmxlRGF0YQorU1Zhcmlh YmxlU3RhdGUKIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDguMQoK --0000000000003a1a3c062dea97c0 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250212-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20250212-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m71fdr4s21 RnJvbSBhYzZmMDVhZGU3MmZjOThhZDU1M2Y2MDE3MmE4ZmE2MjMxM2IyZjllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIyXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIzICsrKystCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKy0KIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzMiArKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAg IHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8 ICAgMyArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgICAgfCAg MjcgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3 OCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwg IDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAx NDkgKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAg fCAxMTcgKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAg IHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAgICAgICB8 ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA3NyAr KysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDYg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8IDEy MSArKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8IDI1 MSArKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAg ICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAgICAgICAgICAgICAg IHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8 ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDQx ICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICAgICAgfCAgMTUg Kwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTA1ICsr KystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTIg Kwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDIwICsK IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8IDEx MyArKysrKwogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyAgICAgICAgICAgICAgICAgICB8ICAg NiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAgIHwgICA5ICsK IHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE5MCArKysr KysrKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDE1 ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgNjQgKysr CiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwog c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKy0K IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDQzICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAyMyArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgODEgKysrKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMv YWNsLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2RlcGVuZGVuY3kub3V0ICAgICAgfCAgMTcgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQgICAgICAgICAgICB8ICA1MCArKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0ICAgIHwgNDMzICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwgICAgICAgICAgICAgICAgIHwgIDIxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDI5NyArKysrKysrKysrKysKIHNyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNCArCiA2NyBmaWxlcyBj aGFuZ2VkLCAzMzYzIGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBlZTU5YTdlMTVkMC4uN2JhOTFiMWY0YjEgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC0zNjksNiArMzY5LDExIEBACiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy11c2VyLW1hcHBpbmciPjxzdHJ1Y3RuYW1lPnBnX3VzZXJfbWFwcGluZzwvc3RydWN0bmFt ZT48L2xpbms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5tYXBwaW5ncyBvZiB1c2VycyB0byBmb3Jl aWduIHNlcnZlcnM8L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdmFyaWFibGUiPjxzdHJ1Y3RuYW1lPnBnX3Zh cmlhYmxlPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PnNlc3Npb24g dmFyaWFibGVzPC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3Vw PgogICA8L3RhYmxlPgpAQCAtMzM0MCw3ICszMzQ1LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFj ZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+ JmwKICAgICAgICA8bGl0ZXJhbD5TPC9saXRlcmFsPiA9IHNlcXVlbmNlLAogICAgICAgIDxsaXRl cmFsPmY8L2xpdGVyYWw+ID0gZnVuY3Rpb24sCiAgICAgICAgPGxpdGVyYWw+VDwvbGl0ZXJhbD4g PSB0eXBlLAotICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gc2NoZW1hCisgICAgICAgPGxp dGVyYWw+bjwvbGl0ZXJhbD4gPSBzY2hlbWEsCisgICAgICAgPGxpdGVyYWw+VjwvbGl0ZXJhbD4g PSBzZXNzaW9uIHZhcmlhYmxlCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAK QEAgLTk3NTgsNCArOTc2NCwxMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgPC90YWJs ZT4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGlu ZGV4dGVybSB6b25lPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgIDxwcmltYXJ5PnBnX3Zhcmlh YmxlPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9n IDxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBzdG9yZXMgaW5mb3JtYXRpb24g YWJvdXQKKyAgIHNlc3Npb24gdmFyaWFibGVzLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAg PHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRs ZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwv dHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUi PjxzdHJ1Y3RuYW1lPnBnX3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg T0lEIG9mIHRoZSB2YXJpYWJsZSdzIGRhdGEgdHlwZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFybmFtZXNwYWNlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctbmFtZXNwYWNlIj48c3RydWN0bmFtZT5wZ19uYW1lc3BhY2U8L3N0cnVjdG5hbWU+PC9saW5r Pi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBUaGUgT0lEIG9mIHRoZSBuYW1lc3BhY2UgdGhhdCBjb250YWlucyB0aGlz IHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm93bmVyPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+PC9s aW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUgdmFyaWFibGUKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8 L3N0cnVjdGZpZWxkPiByZWNvcmRzIHR5cGUtc3BlY2lmaWMgZGF0YQorICAgICAgIHN1cHBsaWVk IGF0IHZhcmlhYmxlIGNyZWF0aW9uIHRpbWUgKGZvciBleGFtcGxlLCB0aGUgbWF4aW11bQorICAg ICAgIGxlbmd0aCBvZiBhIDx0eXBlPnZhcmNoYXI8L3R5cGU+IGNvbHVtbikuICBJdCBpcyBwYXNz ZWQgdG8KKyAgICAgICB0eXBlLXNwZWNpZmljIGlucHV0IGZ1bmN0aW9ucyBhbmQgbGVuZ3RoIGNv ZXJjaW9uIGZ1bmN0aW9ucy4KKyAgICAgICBUaGUgdmFsdWUgd2lsbCBnZW5lcmFsbHkgYmUgLTEg Zm9yIHR5cGVzIHRoYXQgZG8gbm90IG5lZWQgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0 ZmllbGQ+LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVj dGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2Vu ZD0iY2F0YWxvZy1wZy1jb2xsYXRpb24iPjxzdHJ1Y3RuYW1lPnBnX2NvbGxhdGlvbjwvc3RydWN0 bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBkZWZpbmVkIGNvbGxhdGlvbiBvZiB0aGUgdmFy aWFibGUsIG9yIHplcm8gaWYgdGhlIHZhcmlhYmxlIGlzCisgICAgICAgbm90IG9mIGEgY29sbGF0 YWJsZSBkYXRhIHR5cGUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmFjbDwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmFjbGl0ZW1bXTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzOyBzZWUKKyAgICAgICA8eHJlZiBsaW5rZW5k PSJzcWwtZ3JhbnQiLz4gYW5kCisgICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLXJldm9rZSIvPgor ICAgICAgIGZvciBkZXRhaWxzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KIDwvY2hh cHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbAppbmRleCBhZTE1NmI2YjFjZC4uZWRmYjdkYjI0ZmMgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTIwMjAsNiAr MjAyMCw3IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAgRm9y IHNlcXVlbmNlcywgdGhpcyBwcml2aWxlZ2UgYWxzbyBhbGxvd3MgdXNlIG9mIHRoZQogICAgICAg IDxmdW5jdGlvbj5jdXJydmFsPC9mdW5jdGlvbj4gZnVuY3Rpb24uCiAgICAgICAgRm9yIGxhcmdl IG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJlIHJlYWQuCisg ICAgICAgRm9yIHNlc3Npb24gdmFyaWFibGVzLCB0aGlzICBwcml2aWxlZ2UgYWxsb3dzIHRoZSBv YmplY3QgdG8gYmUgcmVhZC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8 L3Zhcmxpc3RlbnRyeT4KQEAgLTIwNTUsNiArMjA1Niw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3Vu dHMgRlJPTSBQVUJMSUM7CiAgICAgICAgPGZ1bmN0aW9uPnNldHZhbDwvZnVuY3Rpb24+IGZ1bmN0 aW9ucy4KICAgICAgICBGb3IgbGFyZ2Ugb2JqZWN0cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHdy aXRpbmcgb3IgdHJ1bmNhdGluZyB0aGUKICAgICAgICBvYmplY3QuCisgICAgICAgRm9yIHNlc3Np b24gdmFyaWFibGVzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3MgdG8gc2V0IGEgdmFsdWUgdG8gdGhl CisgICAgICAgb2JqZWN0LgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwv dmFybGlzdGVudHJ5PgpAQCAtMjI5OCw3ICsyMzAxLDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50 cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJhbD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAog ICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJM RTwvbGl0ZXJhbD4gKGFuZCB0YWJsZS1saWtlIG9iamVjdHMpLAotICAgICAgIHRhYmxlIGNvbHVt bgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxF PC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxyb3c+CkBAIC0y MzEzLDcgKzIzMTcsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAg ICAgIDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+U0VR VUVOQ0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9saXRlcmFsPiwKLSAgICAg ICB0YWJsZSBjb2x1bW4KKyAgICAgICB0YWJsZSBjb2x1bW4sCisgICAgICAgPGxpdGVyYWw+U0VT U0lPTiBWQVJJQUJMRTwvbGl0ZXJhbD4KICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAg ICA8cm93PgpAQCAtMjUwMCw2ICsyNTA1LDEyIEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJP TSBQVUJMSUM7CiAgICAgICA8ZW50cnk+PGxpdGVyYWw+VTwvbGl0ZXJhbD48L2VudHJ5PgogICAg ICAgPGVudHJ5PjxsaXRlcmFsPlxkVCs8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgPC9yb3c+Cisg ICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJ3PC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPlxkVis8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9k eT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpAQCAtNTM1MCw2ICs1MzYxLDMxIEBAIEVYUExB SU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBE QVRFICcyMDA4LTAxLTAxJzsKICAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgIDxzZWN0MSBpZD0i ZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgIDx0aXRsZT5TZXNzaW9uIFZhcmlhYmxlczwvdGl0 bGU+CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgICA8 cHJpbWFyeT5TZXNzaW9uIHZhcmlhYmxlczwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisg ICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+Cisg ICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGRh dGFiYXNlIG9iamVjdHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIFNlc3Npb24gdmFyaWFi bGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nl c3MKKyAgICBpcyBjb250cm9sbGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxj b21tYW5kPlJFVk9LRTwvY29tbWFuZD4KKyAgICBjb21tYW5kcy4gIEEgc2Vzc2lvbiB2YXJpYWJs ZSBjYW4gYmUgY3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFSSUFCTEU8L2Nv bW1hbmQ+IGNvbW1hbmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBzZXNzaW9u IHZhcmlhYmxlIGhvbGRzIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBw cml2YXRlCisgICAgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNz aW9uIGVuZHMuCisgICA8L3BhcmE+CisgIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1vdGhl cnMiPgogICA8dGl0bGU+T3RoZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4 IDdlZmM4MTkzNmFiLi40YTQ4NDAzNGMwZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTMzNyw2ICsyNTMzNywyNSBA QCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1bmMoaW50LCB0 ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4K IAorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAg PHByaW1hcnk+aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAg ICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPmhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZTwvZnVuY3Rpb24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNl cjwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29w dGlvbmFsPgorICAgICAgICAgIDxwYXJhbWV0ZXI+c2Vzc2lvbl92YXJpYWJsZTwvcGFyYW1ldGVy PiA8dHlwZT50ZXh0PC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LAorICAgICAgICAgIDxwYXJh bWV0ZXI+cHJpdmlsZWdlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAg PHJldHVybnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgRG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBzZXNzaW9uIHZh cmlhYmxlPworICAgICAgICBBbGxvd2FibGUgcHJpdmlsZWdlIHR5cGVzIGFyZQorICAgICAgICA8 bGl0ZXJhbD5TRUxFQ1Q8L2xpdGVyYWw+LCBhbmQKKyAgICAgICAgPGxpdGVyYWw+VVBEQVRFPC9s aXRlcmFsPi4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8 cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJm dW5jX3NpZ25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTg0NSw2ICsyNTg2NCwx OSBAQCBTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzIFdIRVJFIHBnX3RhYmxlX2lzX3Zpc2li bGUob2lkKTsKICAgICAgICAgSXMgdHlwZSAob3IgZG9tYWluKSB2aXNpYmxlIGluIHNlYXJjaCBw YXRoPwogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNf c2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5PnBnX3Zh cmlhYmxlX2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAg ICA8ZnVuY3Rpb24+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRl cj52YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVy bnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgSXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPwor ICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAgICAg PC90Z3JvdXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5 LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBjMGY4MTJlM2Y1ZS4uYjky MWY1YTMzMzkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNjY5LDYgKzE2NjksMjEgQEAKICAgIDwvZ2xv c3NkZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2Vz c2lvbi12YXJpYWJsZSI+CisgICA8Z2xvc3N0ZXJtPlNlc3Npb24gdmFyaWFibGU8L2dsb3NzdGVy bT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBwZXJzaXN0ZW50IGRhdGFiYXNl IG9iamVjdCB0aGF0IGhvbGRzIGEgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzCisgICAg IHZhbHVlIGlzIHByaXZhdGUgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRo ZSBzZXNzaW9uIGVuZHMuCisgICAgIFJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywKKyAgICAgc2ltaWxhciB0byBvdGhl ciBkYXRhYmFzZSBvYmplY3RzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgRm9yIG1v cmUgaW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMi Lz4uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAgIDxn bG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zaGFyZWQtbWVtb3J5Ij4KICAgIDxnbG9zc3Rlcm0+U2hh cmVkIG1lbW9yeTwvZ2xvc3N0ZXJtPgogICAgPGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21s CmluZGV4IGY1YmU2Mzg4NjdhLi4yZjY3ZGUzZTIxYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApA QCAtNDcsNiArNDcsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxl cyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGFsdGVyVHlwZSAgICAgICAgICBTWVNURU0g ImFsdGVyX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXIgICAgICAgICAgU1lTVEVNICJh bHRlcl91c2VyLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJVc2VyTWFwcGluZyAgIFNZU1RFTSAiYWx0 ZXJfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgYWx0ZXJWYXJpYWJsZSAgICAgIFNZU1RF TSAiYWx0ZXJfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclZpZXcgICAgICAgICAgU1lT VEVNICJhbHRlcl92aWV3LnNnbWwiPgogPCFFTlRJVFkgYW5hbHl6ZSAgICAgICAgICAgIFNZU1RF TSAiYW5hbHl6ZS5zZ21sIj4KIDwhRU5USVRZIGJlZ2luICAgICAgICAgICAgICBTWVNURU0gImJl Z2luLnNnbWwiPgpAQCAtOTksNiArMTAwLDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dt bCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBjcmVhdGVUeXBlICAg ICAgICAgU1lTVEVNICJjcmVhdGVfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVzZXIgICAg ICAgICBTWVNURU0gImNyZWF0ZV91c2VyLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlck1hcHBp bmcgIFNZU1RFTSAiY3JlYXRlX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZVZh cmlhYmxlICAgICBTWVNURU0gImNyZWF0ZV92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0 ZVZpZXcgICAgICAgICBTWVNURU0gImNyZWF0ZV92aWV3LnNnbWwiPgogPCFFTlRJVFkgZGVhbGxv Y2F0ZSAgICAgICAgIFNZU1RFTSAiZGVhbGxvY2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRlY2xhcmUg ICAgICAgICAgICBTWVNURU0gImRlY2xhcmUuc2dtbCI+CkBAIC0xNDcsNiArMTQ5LDcgQEAgQ29t cGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3Rvcnku CiA8IUVOVElUWSBkcm9wVHlwZSAgICAgICAgICAgU1lTVEVNICJkcm9wX3R5cGUuc2dtbCI+CiA8 IUVOVElUWSBkcm9wVXNlciAgICAgICAgICAgU1lTVEVNICJkcm9wX3VzZXIuc2dtbCI+CiA8IUVO VElUWSBkcm9wVXNlck1hcHBpbmcgICAgU1lTVEVNICJkcm9wX3VzZXJfbWFwcGluZy5zZ21sIj4K KzwhRU5USVRZIGRyb3BWYXJpYWJsZSAgICAgICBTWVNURU0gImRyb3BfdmFyaWFibGUuc2dtbCI+ CiA8IUVOVElUWSBkcm9wVmlldyAgICAgICAgICAgU1lTVEVNICJkcm9wX3ZpZXcuc2dtbCI+CiA8 IUVOVElUWSBlbmQgICAgICAgICAgICAgICAgU1lTVEVNICJlbmQuc2dtbCI+CiA8IUVOVElUWSBl eGVjdXRlICAgICAgICAgICAgU1lTVEVNICJleGVjdXRlLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKaW5kZXggODlhYWNlYzRmYWIuLmE1 ODUyZDMyNTY2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJp dmlsZWdlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxl Z2VzLnNnbWwKQEAgLTUxLDYgKzUxLDExIEBAIEdSQU5UIHsgeyBVU0FHRSB8IENSRUFURSB9CiAg ICAgT04gU0NIRU1BUwogICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRI IEdSQU5UIE9QVElPTiBdCiAKK0dSQU5UIHsgeyBTRUxFQ1QgfCBVUERBVEUgfQorICAgIFssIC4u Ll0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIFRPIHsgWyBH Uk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2Vh YmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisKIFJFVk9LRSBb IEdSQU5UIE9QVElPTiBGT1IgXQogICAgIHsgeyBTRUxFQ1QgfCBJTlNFUlQgfCBVUERBVEUgfCBE RUxFVEUgfCBUUlVOQ0FURSB8IFJFRkVSRU5DRVMgfCBUUklHR0VSIHwgTUFJTlRBSU4gfQogICAg IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQpAQCAtODMsNiArODgsMTIgQEAgUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgT04gU0NIRU1BUwogICAgIEZST00geyBbIEdST1VQ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+ IHwgUFVCTElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0g fCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZST00geyBbIEdS T1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwvc3lu b3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTE3LDE0ICsxMjgsMTQgQEAgUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAogICAgb25seSB0 aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmlld3MgYW5kIGZv cmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgdHlwZXMgKGluY2x1 ZGluZyBkb21haW5zKSBjYW4gYmUKLSAgIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5j dGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgotICAgVGhlIHdvcmRzIDxs aXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFs PiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVT PC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJk IHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgotICAgdG9nZXRoZXIuICBJ biBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0gICB3b3JkIDxsaXRlcmFs PkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUgdG8g c2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBz ZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAoaW5j bHVkaW5nIGRvbWFpbnMpLCBhbmQgc2Vzc2lvbgorICAgdmFyaWFibGVzIGNhbiBiZSBhbHRlcmVk LiAgRm9yIHRoaXMgY29tbWFuZCwgZnVuY3Rpb25zIGluY2x1ZGUgYWdncmVnYXRlcworICAgYW5k IHByb2NlZHVyZXMuICBUaGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQK KyAgIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUgZXF1aXZhbGVudCBpbiB0aGlzIGNv bW1hbmQuCisgICAoPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZCBnb2lu ZyBmb3J3YXJkIGFzIHRoZSBzdGFuZGFyZAorICAgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9j ZWR1cmVzIHRha2VuIHRvZ2V0aGVyLiAgSW4gZWFybGllciBQb3N0Z3JlU1FMCisgICByZWxlYXNl cywgb25seSB0aGUgd29yZCA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IHdhcyBhbGxvd2Vk LiAgSXQgaXMgbm90CisgICBwb3NzaWJsZSB0byBzZXQgZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBm dW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgc2VwYXJhdGVseS4pCiAgIDwvcGFyYT4KIAogICA8cGFy YT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uOTZkMjU4NjQyM2UKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxNzggQEAKKzwhLS0KK2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0 aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+CisgPGluZGV4dGVy bSB6b25lPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkFMVEVSIFZBUklBQkxFPC9w cmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lv biB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5hbHRlcmluZzwvc2Vjb25kYXJ5Pgor IDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkFMVEVSIFZBUklB QkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1p c2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0 YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5BTFRFUiBWQVJJQUJMRTwvcmVmbmFtZT4K KyAgPHJlZnB1cnBvc2U+CisgICBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYSBzZXNzaW9uIHZh cmlhYmxlCisgIDwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNk aXY+Cis8c3lub3BzaXM+CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVO VF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBWQVJJQUJMRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hF TUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxl PgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkFMVEVS IFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYW4K KyAgIGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUuIFRoZXJlIGFyZSBzZXZlcmFsIHN1YmZvcm1z OgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPk9XTkVSPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBjaGFuZ2Vz IHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxsaXRlcmFsPlNFVCBTQ0hFTUE8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gbW92ZXMgdGhlIHNlc3Npb24gdmFyaWFibGUg aW50byBhbm90aGVyIHNjaGVtYS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgT25seSB0aGUgb3duZXIgb3IgYSBzdXBlcnVzZXIgaXMgYWxsb3dlZCB0byBhbHRlciBh IHNlc3Npb24gdmFyaWFibGUuCisgICBJbiBvcmRlciB0byBtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJs ZSBmcm9tIG9uZSBzY2hlbWEgdG8gYW5vdGhlciwgdGhlIHVzZXIKKyAgIG11c3QgYWxzbyBoYXZl IHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgbmV3IHNjaGVt YSAob3IKKyAgIGJlIGEgc3VwZXJ1c2VyKS4KKworICAgSW4gb3JkZXIgdG8gbW92ZSB0aGUgc2Vz c2lvbiB2YXJpYWJsZSBvd25lcnNoaXAgZnJvbSBvbmUgcm9sZSB0byBhbm90aGVyLAorICAgdGhl IHVzZXIgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3 CisgICBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgdGhlIDxsaXRlcmFsPkNS RUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlCisgICBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSdzIHNj aGVtYSAob3IgYmUgYSBzdXBlcnVzZXIpLiBUaGVzZSByZXN0cmljdGlvbnMKKyAgIGVuZm9yY2Ug dGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBkbyBhbnl0aGluZyB5b3UgY291bGRuJ3Qg ZG8gYnkKKyAgIGRyb3BwaW5nIGFuZCByZWNyZWF0aW5nIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRl cnM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgVGhlIG5hbWUgKHBvc3NpYmx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIHRoZSBleGlzdGlu ZyBzZXNzaW9uIHZhcmlhYmxlCisgICAgICAgIHRvIGFsdGVyLgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVy PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoZSB1c2VyIG5hbWUgb2YgdGhlIG5ldyBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJp YWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlz dGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuZXcgbmFtZSBmb3IgdGhlIHNlc3Np b24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT48L3Rlcm0+Cisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuZXcgc2NoZW1hIGZv ciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgIDwvcGFyYT4K KyAgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRvIHJlbmFtZSBhIHNlc3Npb24gdmFyaWFibGU6Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBmb28gUkVOQU1FIFRPIGJvbzsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhl IHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+ am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGJvbyBPV05F UiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBU byBjaGFuZ2UgdGhlIHNjaGVtYSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD5ib288 L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5wcml2YXRlPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlz dGluZz4KK0FMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NIRU1BIHByaXZhdGU7Cis8L3Byb2dyYW1s aXN0aW5nPgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgU2Vzc2lvbiB2YXJpYWJsZXMg YW5kIHRoaXMgY29tbWFuZCBpbiBwYXJ0aWN1bGFyIGFyZSBhIFBvc3RncmVTUUwgZXh0ZW5zaW9u LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MSBpZD0ic3FsLWFsdGVydmFy aWFibGUtc2VlLWFsc28iPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVs aXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2 YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZh cmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorPC9yZWZl bnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXggNWI0M2M1NmIxMzMuLjIxY2Q4MDgxOGZiIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NvbW1lbnQuc2dtbApAQCAtNjUsNiArNjUsNyBAQCBDT01NRU5UIE9OCiAgIFRSQU5T Rk9STSBGT1IgPHJlcGxhY2VhYmxlPnR5cGVfbmFtZTwvcmVwbGFjZWFibGU+IExBTkdVQUdFIDxy ZXBsYWNlYWJsZT5sYW5nX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRSSUdHRVIgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFtZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBU WVBFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFi bGU+IHwKKyAgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9u YW1lPC9yZXBsYWNlYWJsZT4gfAogICBWSUVXIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+CiB9IElTIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnN0cmluZ19saXRlcmFsPC9yZXBsYWNlYWJsZT4gfCBOVUxMIH0KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAppbmRleCBlZDY5Mjk4Y2NjNi4uZDJiYjI2NTIwOWIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCkBAIC0xMDMsOSArMTAzLDEwIEBAIENSRUFU RSBTQ0hFTUEgSUYgTk9UIEVYSVNUUyBBVVRIT1JJWkFUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yb2xlX3NwCiAgICAgICAgIHNjaGVtYS4gQ3VycmVudGx5LCBvbmx5IDxjb21t YW5kPkNSRUFURQogICAgICAgICBUQUJMRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBWSUVX PC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIElOREVYPC9jb21tYW5kPiwgPGNv bW1hbmQ+Q1JFQVRFIFNFUVVFTkNFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAg IFRSSUdHRVI8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYXJlIGFjY2Vw dGVkIGFzIGNsYXVzZXMKLSAgICAgICAgd2l0aGluIDxjb21tYW5kPkNSRUFURSBTQ0hFTUE8L2Nv bW1hbmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3RzIG1heQotICAgICAgICBiZSBjcmVhdGVkIGlu IHNlcGFyYXRlIGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KKyAgICAgICAg VFJJR0dFUjwvY29tbWFuZD4sIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+ Q1JFQVRFCisgICAgICAgIFZBUklBQkxFPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNl cyB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFNDSEVNQTwvY29tbWFuZD4uIE90aGVy IGtpbmRzIG9mIG9iamVjdHMgbWF5IGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUKKyAgICAgICAgY29t bWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVkLgogICAgICAgIDwvcGFyYT4KICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMjE0LDYgKzIxNSwxMSBAQCBD UkVBVEUgVklFVyBob2xseXdvb2Qud2lubmVycyBBUwogICAgVGhlIDxsaXRlcmFsPklGIE5PVCBF WElTVFM8L2xpdGVyYWw+IG9wdGlvbiBpcyBhCiAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxj b21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgogIDwv cmVmc2VjdDE+CiAKICA8cmVmc2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmU5ODhmMmU0NzIKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBA IC0wLDAgKzEsMTQ5IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1j cmVhdGV2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtY3JlYXRldmFyaWFibGUiPgor ICA8cHJpbWFyeT5DUkVBVEUgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8 aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vj b25kYXJ5PmRlZmluaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFu dm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRl bWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVm bmFtZT5DUkVBVEUgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIHNl c3Npb24gdmFyaWFibGU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9w c2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIENP TExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFi bGU+IF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JF QVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNyZWF0ZXMgYSBzZXNzaW9uIHZhcmlhYmxl LgorICAgU2Vzc2lvbiB2YXJpYWJsZXMsIGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBz Y2hlbWEgYW5kIHRoZWlyIGFjY2VzcyBpcworICAgY29udHJvbGxlZCB2aWEgdGhlIGNvbW1hbmRz IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5kPi4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZSBpcyBsb2NhbCB0byB0aGUgY3VycmVudCBzZXNzaW9uLiAgUmV0cmlldmluZworICAgYSBzZXNz aW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNl dCB0bworICAgc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNzaW9u IHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCisgICBy ZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHJldHJpZXZlZCBieSB0aGUgPGNvbW1h bmQ+U0VMRUNUPC9jb21tYW5kPgorICAgY29tbWFuZC4gIFRoZWlyIHZhbHVlIGlzIHNldCB3aXRo IHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCisgIDwvcGFyYT4KKworICA8bm90 ZT4KKyAgIDxwYXJhPgorICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSA8cXVvdGU+c2hhZG93 ZWQ8L3F1b3RlPiBieSBvdGhlciBpZGVudGlmaWVycy4KKyAgICBGb3IgZGV0YWlscywgc2VlIDx4 cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPi4KKyAgIDwvcGFyYT4KKyAgPC9u b3RlPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90 aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorCisgICA8dmFybGlzdGVudHJ5ICBpZD0ic3FsLWNy ZWF0ZXZhcmlhYmxlLWlmLW5vdC1leGlzdHMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIE5PVCBF WElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMuIEEgbm90 aWNlIGlzIGlzc3VlZCBpbgorICAgICAgdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwt Y3JlYXRldmFyaWFibGUtbmFtZSI+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhl IHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1k YXRhX3R5cGUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRh X3R5cGU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIGRhdGEg dHlwZSBvZiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNx bC1jcmVhdGV2YXJpYWJsZS1jb2xsYXRlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5DT0xMQVRFIDxy ZXBsYWNlYWJsZT5jb2xsYXRpb248L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5DT0xMQVRFPC9saXRl cmFsPiBjbGF1c2UgYXNzaWducyBhIGNvbGxhdGlvbiB0byB0aGUgc2Vzc2lvbgorICAgICAgdmFy aWFibGUgKHdoaWNoIG11c3QgYmUgb2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZSkuICBJZiBub3Qg c3BlY2lmaWVkLAorICAgICAgdGhlIGRhdGEgdHlwZSdzIGRlZmF1bHQgY29sbGF0aW9uIGlzIHVz ZWQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl Pk5vdGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFVzZSB0aGUgPGNvbW1hbmQ+RFJPUCBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCB0byByZW1vdmUgYSBzZXNzaW9uCisgICB2YXJpYWJsZS4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBDcmVhdGUgYW4gZGF0ZSBzZXNzaW9uIHZhcmlhYmxl IDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgZGF0ZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1h bmQgaXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNp b24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2Vl IEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVy Pjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVy Pjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVs aXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJs ZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmRiMzU2MGYw YgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21s CkBAIC0wLDAgKzEsMTE3IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUu c2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwt ZHJvcHZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1kcm9wdmFyaWFibGUiPgorICA8 cHJpbWFyeT5EUk9QIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5yZW1vdmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkRST1AgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+ NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwv cmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRS T1AgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIHNlc3Npb24gdmFy aWFibGU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2Pgor PHN5bm9wc2lzPgorRFJPUCBWQVJJQUJMRSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIENBU0NBREUgfCBSRVNU UklDVCBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9Q IFZBUklBQkxFPC9jb21tYW5kPiByZW1vdmVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEEgc2Vz c2lvbiB2YXJpYWJsZSBjYW4gb25seSBiZSByZW1vdmVkIGJ5IGl0cyBvd25lciBvciBhIHN1cGVy dXNlci4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHNl c3Npb24gdmFyaWFibGUgZG9lcyBub3QgZXhpc3QuIEEgbm90aWNlIGlzCisgICAgICBpc3N1ZWQg aW4gdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQs IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJh bD5DQVNDQURFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIHNlc3Np b24gdmFyaWFibGUgKHN1Y2ggYXMKKyAgICAgIHZpZXdzKSwgYW5kIGluIHR1cm4gYWxsIG9iamVj dHMgdGhhdCBkZXBlbmQgb24gdGhvc2Ugb2JqZWN0cworICAgICAgKHNlZSA8eHJlZiBsaW5rZW5k PSJkZGwtZGVwZW5kIi8+KS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRVNU UklDVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFJlZnVzZSB0byBkcm9wIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlmIGFueSBvYmplY3RzIGRlcGVu ZCBvbiBpdC4gIFRoaXMgaXMKKyAgICAgIHRoZSBkZWZhdWx0LgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxw YXJhPgorICAgVG8gcmVtb3ZlIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xp dGVyYWw+OgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIFZBUklBQkxFIHZhcjE7Cis8L3Byb2dy YW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+RFJPUCBW QVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNR TDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8 cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlw ZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUi Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxl Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5 PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9ncmFudC5zZ21sCmluZGV4IDk5OWY2NTdkNWMwLi5jMTE4NjBmYTIwMCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3Jh bnQuc2dtbApAQCAtMTAxLDYgKzEwMSwxMiBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAg IFsgV0lUSCB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IHsgT1BUSU9OIHwgVFJVRSB8IEZBTFNF IH0gXQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9s ZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFU RSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+ dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJM RVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFO VCBPUFRJT04gXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorCiA8cGhyYXNlPndoZXJlIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2Vh YmxlPiBjYW4gYmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CkBAIC0xMTksOCArMTI1LDggQEAg R1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgIHRoYXQgZ3JhbnRzIHByaXZpbGVnZXMgb24gYSBk YXRhYmFzZSBvYmplY3QgKHRhYmxlLCBjb2x1bW4sIHZpZXcsCiAgICBmb3JlaWduIHRhYmxlLCBz ZXF1ZW5jZSwgZGF0YWJhc2UsIGZvcmVpZ24tZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlciwK ICAgIGZ1bmN0aW9uLCBwcm9jZWR1cmUsIHByb2NlZHVyYWwgbGFuZ3VhZ2UsIGxhcmdlIG9iamVj dCwgY29uZmlndXJhdGlvbgotICAgcGFyYW1ldGVyLCBzY2hlbWEsIHRhYmxlc3BhY2UsIG9yIHR5 cGUpLCBhbmQgb25lIHRoYXQgZ3JhbnRzCi0gICBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNl IHZhcmlhbnRzIGFyZSBzaW1pbGFyIGluIG1hbnkgd2F5cywgYnV0CisgICBwYXJhbWV0ZXIsIHNj aGVtYSwgc2Vzc2lvbiB2YXJpYWJsZSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhh dAorICAgZ3JhbnRzIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNp bWlsYXIgaW4gbWFueSB3YXlzLCBidXQKICAgIHRoZXkgYXJlIGRpZmZlcmVudCBlbm91Z2ggdG8g YmUgZGVzY3JpYmVkIHNlcGFyYXRlbHkuCiAgIDwvcGFyYT4KIApAQCAtMjM2LDkgKzI0Miw5IEBA IEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgIDxwYXJhPgogICAgVGhlcmUgaXMgYWxzbyBhbiBv cHRpb24gdG8gZ3JhbnQgcHJpdmlsZWdlcyBvbiBhbGwgb2JqZWN0cyBvZiB0aGUgc2FtZQogICAg dHlwZSB3aXRoaW4gb25lIG9yIG1vcmUgc2NoZW1hcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBj dXJyZW50bHkgc3VwcG9ydGVkCi0gICBvbmx5IGZvciB0YWJsZXMsIHNlcXVlbmNlcywgZnVuY3Rp b25zLCBhbmQgcHJvY2VkdXJlcy4gIDxsaXRlcmFsPkFMTAotICAgVEFCTEVTPC9saXRlcmFsPiBh bHNvIGFmZmVjdHMgdmlld3MgYW5kIGZvcmVpZ24gdGFibGVzLCBqdXN0IGxpa2UgdGhlCi0gICBz cGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8bGl0ZXJh bD5BTEwKKyAgIG9ubHkgZm9yIHRhYmxlcywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHByb2NlZHVy ZXMgYW5kIHZhcmlhYmxlcy4KKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGFsc28g YWZmZWN0cyB2aWV3cyBhbmQgZm9yZWlnbiB0YWJsZXMsIGp1c3QKKyAgIGxpa2UgdGhlIHNwZWNp ZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFM TAogICAgRlVOQ1RJT05TPC9saXRlcmFsPiBhbHNvIGFmZmVjdHMgYWdncmVnYXRlIGFuZCB3aW5k b3cgZnVuY3Rpb25zLCBidXQgbm90CiAgICBwcm9jZWR1cmVzLCBhZ2FpbiBqdXN0IGxpa2UgdGhl IHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBV c2UgPGxpdGVyYWw+QUxMIFJPVVRJTkVTPC9saXRlcmFsPiB0byBpbmNsdWRlIHByb2NlZHVyZXMu CkBAIC01MTgsOCArNTI0LDggQEAgR1JBTlQgYWRtaW5zIFRPIGpvZTsKICAgIDwvcGFyYT4KIAog ICAgPHBhcmE+Ci0gICAgUHJpdmlsZWdlcyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hl bWFzLCBsYW5ndWFnZXMsIGFuZAotICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKKyAg ICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdl cywgc2Vzc2lvbiB2YXJpYWJsZXMKKyAgICBhbmQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFy ZQogICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9ucy4K ICAgIDwvcGFyYT4KICA8L3JlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9w c3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IGYzMDQ0 ZmFjMWZhLi5kYTllZjAxZGRlYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJl Zi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbApAQCAtMjEzNCw2ICsy MTM0LDE5IEBAIFNFTEVDVCAkMSBccGFyc2Ugc3RtdDEKICAgICAgICAgPC9saXN0aXRlbT4KICAg ICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1t ZXRhLWNvbW1hbmQtZHYiPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cZFZbK10gWyA8bGluayBs aW5rZW5kPSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBhdHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAg IDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgIExpc3RzIHNlc3Npb24gdmFyaWFi bGVzLgorICAgICAgICBJZiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwv cmVwbGFjZWFibGU+IGlzCisgICAgICAgIHNwZWNpZmllZCwgb25seSBzZXNzaW9uIHZhcmlhYmxl cyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUgbGlzdGVkLgorICAgICAgICBJZiB0 aGUgZm9ybSA8bGl0ZXJhbD5cZFYrPC9saXRlcmFsPiBpcyB1c2VkLCBhZGRpdGlvbmFsIGluZm9y bWF0aW9uCisgICAgICAgIGFib3V0IGVhY2ggdmFyaWFibGUgaXMgc2hvd24sIGxpa2UgIGFjY2Vz cyBwcml2aWxlZ2VzIGFuZCBkZXNjcmlwdGlvbi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgIDx2YXJsaXN0ZW50cnkg aWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kdSI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxk dVtTeCtdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+ PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L3Jldm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAppbmRleCA4ZGY0OTIy ODFhMS4uNzYwZmRkYjdjMjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbApAQCAtMTMwLDYgKzEzMCwxNCBA QCBSRVZPS0UgWyB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IE9QVElPTiBGT1IgXQogICAgIFsg R1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0 aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIAorUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0g fCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIHsgVkFSSUFCTEUgPHJlcGxhY2VhYmxlPnZh cmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAgfCBBTEwgVkFSSUFCTEVT IElOIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dIH0KKyAgICBGUk9NIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4u XQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9z cGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0K KwogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVj aWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhyYXNlPgogCiAgICAgWyBHUk9VUCBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl ZmVyZW5jZS5zZ21sCmluZGV4IGZmODVhY2U4M2ZjLi4yNTU3OGYzOTQ2YyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uu c2dtbApAQCAtNzUsNiArNzUsNyBAQAogICAgJmFsdGVyVHlwZTsKICAgICZhbHRlclVzZXI7CiAg ICAmYWx0ZXJVc2VyTWFwcGluZzsKKyAgICZhbHRlclZhcmlhYmxlOwogICAgJmFsdGVyVmlldzsK ICAgICZhbmFseXplOwogICAgJmJlZ2luOwpAQCAtMTI3LDYgKzEyOCw3IEBACiAgICAmY3JlYXRl VHlwZTsKICAgICZjcmVhdGVVc2VyOwogICAgJmNyZWF0ZVVzZXJNYXBwaW5nOworICAgJmNyZWF0 ZVZhcmlhYmxlOwogICAgJmNyZWF0ZVZpZXc7CiAgICAmZGVhbGxvY2F0ZTsKICAgICZkZWNsYXJl OwpAQCAtMTc1LDYgKzE3Nyw3IEBACiAgICAmZHJvcFR5cGU7CiAgICAmZHJvcFVzZXI7CiAgICAm ZHJvcFVzZXJNYXBwaW5nOworICAgJmRyb3BWYXJpYWJsZTsKICAgICZkcm9wVmlldzsKICAgICZl bmQ7CiAgICAmZXhlY3V0ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZp bGUgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCmluZGV4IGMwOTAwOTRlZDA4Li4yYzIw ZDYwZGIxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCkBAIC00NSw2ICs0NSw3IEBAIE9CSlMgPSBcCiAJ cGdfc2hkZXBlbmQubyBcCiAJcGdfc3Vic2NyaXB0aW9uLm8gXAogCXBnX3R5cGUubyBcCisJcGdf dmFyaWFibGUubyBcCiAJc3RvcmFnZS5vIFwKIAl0b2FzdGluZy5vCiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5j CmluZGV4IDAyYTc1NGNjMzBhLi4xZThjZTc1MmI5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9hY2xjaGsuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC02 NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFu ZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9l dmVudF90cmlnZ2VyLmgiCkBAIC0yOTEsNiArMjkyLDkgQEAgcmVzdHJpY3RfYW5kX2NoZWNrX2dy YW50KGJvb2wgaXNfZ3JhbnQsIEFjbE1vZGUgYXZhaWxfZ29wdGlvbnMsIGJvb2wgYWxsX3ByaXZz LAogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJd2hvbGVfbWFzayA9IEFDTF9BTExf UklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CisJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwg b2JqdHlwZSk7CiAJCQkvKiBub3QgcmVhY2hlZCwgYnV0IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8K QEAgLTUzNSw2ICs1MzksMTAgQEAgRXhlY3V0ZUdyYW50U3RtdChHcmFudFN0bXQgKnN0bXQpCiAJ CQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQllcnJv cm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcGFyYW1l dGVyIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmls ZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25v b3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0 bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBzdG10LT5vYmp0eXBlKTsKQEAgLTY0MCw2ICs2 NDgsOSBAQCBFeGVjR3JhbnRTdG10X29pZHMoSW50ZXJuYWxHcmFudCAqaXN0bXQpCiAJCWNhc2Ug T0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCQlFeGVjR3JhbnRfUGFyYW1ldGVyKGlzdG10KTsKIAkJ CWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCUV4ZWNHcmFudF9jb21tb24oaXN0 bXQsIFZhcmlhYmxlUmVsYXRpb25JZCwgQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUsIE5VTEwpOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50 U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGlzdG10LT5vYmp0eXBlKTsKQEAgLTc2MCw2 ICs3NzEsMTggQEAgb2JqZWN0TmFtZXNUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpv YmpuYW1lcywgYm9vbCBpc19ncmFudCkKIAkJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVj dHMsIHBhcmFtZXRlcklkKTsKIAkJCX0KIAkJCWJyZWFrOworCisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJZm9yZWFjaF9ub2RlKFJhbmdlVmFyLCB2YXJ2YXIsIG9iam5hbWVzKQorCQkJewor CQkJCU9pZAkJCXJlbE9pZDsKKworCQkJCXJlbE9pZCA9IExvb2t1cFZhcmlhYmxlKHZhcnZhci0+ c2NoZW1hbmFtZSwKKwkJCQkJCQkJCQl2YXJ2YXItPnJlbG5hbWUsCisJCQkJCQkJCQkJZmFsc2Up OworCQkJCW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCByZWxPaWQpOworCQkJfQorCQkJ YnJlYWs7CiAJfQogCiAJcmV0dXJuIG9iamVjdHM7CkBAIC04NDYsNiArODY5LDMyIEBAIG9iamVj dHNJblNjaGVtYVRvT2lkcyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm5zcG5hbWVzKQogCQkJ CQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CiAJCQkJfQogCQkJCWJyZWFrOwor CQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJeworCQkJCQlTY2FuS2V5RGF0YSBrZXk7CisJ CQkJCVJlbGF0aW9uCXJlbDsKKwkJCQkJVGFibGVTY2FuRGVzYyBzY2FuOworCQkJCQlIZWFwVHVw bGUJdHVwbGU7CisKKwkJCQkJU2NhbktleUluaXQoJmtleSwKKwkJCQkJCQkJQW51bV9wZ192YXJp YWJsZV92YXJuYW1lc3BhY2UsCisJCQkJCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURF USwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCisJCQkJCXJlbCA9 IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCQlz Y2FuID0gdGFibGVfYmVnaW5zY2FuX2NhdGFsb2cocmVsLCAxLCAma2V5KTsKKworCQkJCQl3aGls ZSAoKHR1cGxlID0gaGVhcF9nZXRuZXh0KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0aW9uKSkgIT0g TlVMTCkKKwkJCQkJeworCQkJCQkJT2lkCQkJb2lkID0gKChGb3JtX3BnX3Byb2MpIEdFVFNUUlVD VCh0dXBsZSkpLT5vaWQ7CisKKwkJCQkJCW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCBv aWQpOworCQkJCQl9CisKKwkJCQkJdGFibGVfZW5kc2NhbihzY2FuKTsKKwkJCQkJdGFibGVfY2xv c2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJCX0KKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6 CiAJCQkJLyogc2hvdWxkIG5vdCBoYXBwZW4gKi8KIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCkBAIC0xMDA1LDYgKzEwNTQsMTAgQEAgRXhlY0Fs dGVyRGVmYXVsdFByaXZpbGVnZXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJEZWZhdWx0 UHJpdmlsZWdlc1N0bXQgKnMKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfU0NI RU1BOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUg JXMgZm9yIHNjaGVtYSIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJ YWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWVycm9ybXNnID0g Z2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXNzaW9uIHZhcmlh YmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6 ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgYWN0aW9uLT5vYmp0eXBlKTsK QEAgLTExOTYsNiArMTI0OSwxMiBAQCBTZXREZWZhdWx0QUNMKEludGVybmFsRGVmYXVsdEFDTCAq aWFjbHMpCiAJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfU0NIRU1BOwogCQkJ YnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlvYmp0eXBlID0gREVGQUNMT0JK X1ZBUklBQkxFOworCQkJaWYgKGlhY2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09 IEFDTF9OT19SSUdIVFMpCisJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFS SUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBpYWNscy0+b2JqdHlwZSk7CkBAIC0x NDM5LDYgKzE0OTgsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQgcm9sZWlkLCBPaWQg Y2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJCWlh Y2xzLm9ianR5cGUgPSBPQkpFQ1RfU0NIRU1BOwogCQkJCWJyZWFrOworCQkJY2FzZSBERUZBQ0xP QkpfVkFSSUFCTEU6CisJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQli cmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogU2hvdWxkbid0IGdldCBoZXJlICovCiAJCQkJZWxv ZyhFUlJPUiwgInVuZXhwZWN0ZWQgZGVmYXVsdCBBQ0wgdHlwZTogJWQiLApAQCAtMTQ5OSw2ICsx NTYxLDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RBQ0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQs IE9pZCBvYmppZCkKIAkJCWNhc2UgUGFyYW1ldGVyQWNsUmVsYXRpb25JZDoKIAkJCQlpc3RtdC5v Ymp0eXBlID0gT0JKRUNUX1BBUkFNRVRFUl9BQ0w7CiAJCQkJYnJlYWs7CisJCQljYXNlIFZhcmlh YmxlUmVsYXRpb25JZDoKKwkJCQlpc3RtdC5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJ CWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBvYmplY3Qg Y2xhc3MgJXUiLCBjbGFzc2lkKTsKIAkJCQlicmVhazsKQEAgLTI3MzIsNiArMjc5Nyw5IEBAIGFj bGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJ Y2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBk ZW5pZWQgZm9yIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHNl c3Npb24gdmFyaWFibGUgJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9WSUVX OgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdmlldyAl cyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yODQzLDYgKzI5MTEsOSBAQCBhY2xjaGVja19lcnJvcihB Y2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RZ UEU6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgdHlwZSAlcyIp OwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHNlc3Npb24gdmFyaWFibGUgJXMiKTsKKwkJ CQkJCWJyZWFrOwogCQkJCQljYXNlIE9CSkVDVF9WSUVXOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9u b29wKCJtdXN0IGJlIG93bmVyIG9mIHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFrOwpAQCAtMjk5MSw2 ICszMDYyLDggQEAgcGdfYWNsbWFzayhPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvYmplY3Rfb2lk LCBBdHRyTnVtYmVyIGF0dG51bSwgT2lkIHJvbGVpZCwKIAkJCXJldHVybiBBQ0xfTk9fUklHSFRT OwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuIG9iamVjdF9hY2xtYXNrKFR5cGVSZWxh dGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgorCQkJcmV0dXJuIG9iamVjdF9hY2xtYXNrKFZhcmlhYmxlUmVsYXRpb25JZCwgb2Jq ZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwg InVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAoaW50KSBvYmp0eXBlKTsKQEAg LTQyNTAsNiArNDMyMywxMCBAQCBnZXRfdXNlcl9kZWZhdWx0X2FjbChPYmplY3RUeXBlIG9ianR5 cGUsIE9pZCBvd25lcklkLCBPaWQgbnNwX29pZCkKIAkJCWRlZmFjbG9ianR5cGUgPSBERUZBQ0xP QkpfTkFNRVNQQUNFOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlk ZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVs dDoKIAkJCXJldHVybiBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv ZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMTgz MTZhMzk2OGIuLjllMGY2NDhiNzRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2Rl cGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtNjUs MTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5n LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21t YW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0ZW5zaW9uLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvcG9saWN5LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNpbmNs dWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBAIC0xNDQ0LDYgKzE0NDYsMTAgQEAgZG9EZWxldGlv bihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAkJCVJlbW92ZVB1Ymxp Y2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFi bGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlhYmxlQnlJZChvYmplY3QtPm9iamVjdElkKTsKKwkJ CWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29sbGF0aW9uUmVsYXRp b25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxk CmluZGV4IDE5NThlYTkyMzhhLi5lZDQ0Yzg3N2ZjYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxk CkBAIC0zMiw2ICszMiw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BnX3NoZGVw ZW5kLmMnLAogICAncGdfc3Vic2NyaXB0aW9uLmMnLAogICAncGdfdHlwZS5jJywKKyAgJ3BnX3Zh cmlhYmxlLmMnLAogICAnc3RvcmFnZS5jJywKICAgJ3RvYXN0aW5nLmMnLAogKQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMKaW5kZXggZDk3ZDYzMmE3ZWYuLjQzMDdjYWQxNWM3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3Bh cnNlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1vbi9oYXNoZm5fdW5z dGFibGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC0yMjUsNiArMjI2LDcgQEAgc3RhdGlj IGJvb2wgVFNQYXJzZXJJc1Zpc2libGVFeHQoT2lkIHByc0lkLCBib29sICppc19taXNzaW5nKTsK IHN0YXRpYyBib29sIFRTRGljdGlvbmFyeUlzVmlzaWJsZUV4dChPaWQgZGljdElkLCBib29sICpp c19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTVGVtcGxhdGVJc1Zpc2libGVFeHQoT2lkIHRtcGxJ ZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU0NvbmZpZ0lzVmlzaWJsZUV4dChP aWQgY2ZnaWQsIGJvb2wgKmlzX21pc3NpbmcpOworc3RhdGljIGJvb2wgVmFyaWFibGVJc1Zpc2li bGVFeHQoT2lkIHZhcmlkLCBib29sICppc19taXNzaW5nKTsKIHN0YXRpYyB2b2lkIHJlY29tcHV0 ZU5hbWVzcGFjZVBhdGgodm9pZCk7CiBzdGF0aWMgdm9pZCBBY2Nlc3NUZW1wVGFibGVOYW1lc3Bh Y2UoYm9vbCBmb3JjZSk7CiBzdGF0aWMgdm9pZCBJbml0VGVtcFRhYmxlTmFtZXNwYWNlKHZvaWQp OwpAQCAtOTg2LDYgKzk4OCw4NCBAQCBSZWxhdGlvbklzVmlzaWJsZUV4dChPaWQgcmVsaWQsIGJv b2wgKmlzX21pc3NpbmcpCiAJcmV0dXJuIHZpc2libGU7CiB9CiAKKy8qCisgKiBWYXJpYWJsZUlz VmlzaWJsZQorICoJCURldGVybWluZSB3aGV0aGVyIGEgdmFyaWFibGUgKGlkZW50aWZpZWQgYnkg T0lEKSBpcyB2aXNpYmxlIGluIHRoZQorICoJCWN1cnJlbnQgc2VhcmNoIHBhdGguIFZpc2libGUg bWVhbnMgIndvdWxkIGJlIGZvdW5kIGJ5IHNlYXJjaGluZworICoJCWZvciB0aGUgdW5xdWFsaWZp ZWQgdmFyaWFibGUgbmFtZSIuCisgKi8KK2Jvb2wKK1ZhcmlhYmxlSXNWaXNpYmxlKE9pZCB2YXJp ZCkKK3sKKwlyZXR1cm4gVmFyaWFibGVJc1Zpc2libGVFeHQodmFyaWQsIE5VTEwpOworfQorCisv KgorICogVmFyaWFibGVJc1Zpc2libGVFeHQKKyAqCQlBcyBhYm92ZSwgYnV0IGlmIHRoZSB2YXJp YWJsZSBpc24ndCBmb3VuZCBhbmQgaXNfbWlzc2luZyBpcyBub3QgTlVMTCwKKyAqCQl0aGVuIHNl dCAqaXNfbWlzc2luZyA9IHRydWUgYW5kIHJldHVybiBmYWxzZSwgaW5zdGVhZCBvZiB0aHJvd2lu ZworICoJCWFuIGVycm9yLiAoQ2FsbGVyIG11c3QgaW5pdGlhbGl6ZSAqaXNfbWlzc2luZyA9IGZh bHNlLikKKyAqLworc3RhdGljIGJvb2wKK1ZhcmlhYmxlSXNWaXNpYmxlRXh0KE9pZCB2YXJpZCwg Ym9vbCAqaXNfbWlzc2luZykKK3sKKwlIZWFwVHVwbGUJdmFydHVwOworCUZvcm1fcGdfdmFyaWFi bGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3BhY2U7CisJYm9vbAkJdmlzaWJsZTsKKworCXZh cnR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJp ZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh2YXJ0dXApKQorCXsKKwkJaWYgKGlzX21pc3Np bmcgIT0gTlVMTCkKKwkJeworCQkJKmlzX21pc3NpbmcgPSB0cnVlOworCQkJcmV0dXJuIGZhbHNl OworCQl9CisKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24g dmFyaWFibGUgJXUiLCB2YXJpZCk7CisJfQorCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHZhcnR1cCk7CisKKwlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkvKgor CSAqIFF1aWNrIGNoZWNrOiBpZiBpdCBhaW4ndCBpbiB0aGUgcGF0aCBhdCBhbGwsIGl0IGFpbid0 IHZpc2libGUuIFdlCisJICogZG9uJ3QgZXhwZWN0IHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGVz IGluIHRoZSBzeXN0ZW0gbmFtZXNwYWNlLgorCSAqLworCXZhcm5hbWVzcGFjZSA9IHZhcmZvcm0t PnZhcm5hbWVzcGFjZTsKKwlpZiAoIWxpc3RfbWVtYmVyX29pZChhY3RpdmVTZWFyY2hQYXRoLCB2 YXJuYW1lc3BhY2UpKQorCQl2aXNpYmxlID0gZmFsc2U7CisJZWxzZQorCXsKKwkJLyoKKwkJICog SWYgaXQgaXMgaW4gdGhlIHBhdGgsIGl0IG1pZ2h0IHN0aWxsIG5vdCBiZSB2aXNpYmxlOyBpdCBj b3VsZCBiZQorCQkgKiBoaWRkZW4gYnkgYW5vdGhlciB2YXJpYWJsZSBvZiB0aGUgc2FtZSBuYW1l IGVhcmxpZXIgaW4gdGhlIHBhdGguIFNvCisJCSAqIHdlIG11c3QgZG8gYSBzbG93IGNoZWNrIGZv ciBjb25mbGljdGluZyByZWxhdGlvbnMuCisJCSAqLworCQljaGFyCSAgICp2YXJuYW1lID0gTmFt ZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCQl2aXNpYmxlID0gZmFsc2U7CisJCWZvcmVhY2hf b2lkKG5hbWVzcGFjZUlkLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7CisJCQlpZiAobmFtZXNwYWNl SWQgPT0gdmFybmFtZXNwYWNlKQorCQkJeworCQkJCS8qIGZvdW5kIGl0IGZpcnN0IGluIHBhdGgg Ki8KKwkJCQl2aXNpYmxlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChPaWRJc1Zh bGlkKGdldF92YXJuYW1lX3ZhcmlkKHZhcm5hbWUsIG5hbWVzcGFjZUlkKSkpCisJCQl7CisJCQkJ LyogZm91bmQgc29tZXRoaW5nIGVsc2UgZmlyc3QgaW4gcGF0aCAqLworCQkJCWJyZWFrOworCQkJ fQorCQl9CisJfQorCisJUmVsZWFzZVN5c0NhY2hlKHZhcnR1cCk7CisKKwlyZXR1cm4gdmlzaWJs ZTsKK30KIAogLyoKICAqIFR5cGVuYW1lR2V0VHlwaWQKQEAgLTMyODksNiArMzM2OSwxMzMgQEAg VFNDb25maWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5nKQogCXJldHVy biB2aXNpYmxlOwogfQogCisvKgorICogUmV0dXJucyBvaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBz cGVjaWZpZWQgYnkgcG9zc2libHkgcXVhbGlmaWVkIGlkZW50aWZpZXIuCisgKgorICogSWYgbm90 IGZvdW5kLCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2luZ19vaywgZWxzZSB0aHJvd3MgZXJy b3IuCisgKi8KK09pZAorTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwKKwkJCSAg IGNvbnN0IGNoYXIgKnZhcm5hbWUsCisJCQkgICBib29sIG1pc3Npbmdfb2spCit7CisJT2lkCQkJ dmFyb2lkID0gSW52YWxpZE9pZDsKKworCWlmIChuc3BuYW1lKQorCXsKKwkJT2lkIG5hbWVzcGFj ZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2UobnNwbmFtZSwgbWlzc2luZ19vayk7CisKKwkJ LyogaWYgbnNwbmFtZSBpcyBhIGtub3duIG5hbWVzcGFjZSwgdGhlIHZhcmlhYmxlIG11c3QgYmUg dGhlcmUgKi8KKwkJaWYgKE9pZElzVmFsaWQobmFtZXNwYWNlSWQpKQorCQl7CisJCQl2YXJvaWQg PSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwK KwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkJCQkgT2JqZWN0SWRH ZXREYXR1bShuYW1lc3BhY2VJZCkpOworCQl9CisJfQorCWVsc2UKKwl7CisJCS8qIGl0ZXJhdGUg b3ZlciB0aGUgc2NoZW1hcyBvbiB0aGUgc2VhcmNoX3BhdGggKi8KKwkJcmVjb21wdXRlTmFtZXNw YWNlUGF0aCgpOworCisJCWZvcmVhY2hfb2lkKG5hbWVzcGFjZUlkLCBhY3RpdmVTZWFyY2hQYXRo KQorCQl7CisJCQl2YXJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVt X3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJ CQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCisJCQlpZiAoT2lkSXNW YWxpZCh2YXJvaWQpKQorCQkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFPaWRJc1ZhbGlkKHZh cm9pZCkgJiYgIW1pc3Npbmdfb2spCisJeworCQlpZiAobnNwbmFtZSkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJt c2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQlu c3BuYW1lLCB2YXJuYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJdmFybmFtZSkpKTsKKwl9CisK KwlyZXR1cm4gdmFyb2lkOworfQorCisvKgorICogUmV0dXJucyBvaWQgb2Ygc2Vzc2lvbiB2YXJp YWJsZSBzcGVjaWZpZWQgYnkgcG9zc2libHkgcXVhbGlmaWVkIGlkZW50aWZpZXIKKyAqCisgKiBJ ZiBub3QgZm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRocm93 cyBlcnJvci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdChMaXN0ICpuYW1l cywKKwkJCQkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sKKwljaGFyCSAgICpjYXRuYW1lID0gTlVM TDsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2YXJuYW1lID0gTlVMTDsK KworCXN3aXRjaCAobGlzdF9sZW5ndGgobmFtZXMpKQorCXsKKwkJY2FzZSAxOgorCQkJdmFybmFt ZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCW5z cG5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBzdHJWYWwobHNl Y29uZChuYW1lcykpOworCQkJYnJlYWs7CisJCWNhc2UgMzoKKwkJCWNhdG5hbWUgPSBzdHJWYWwo bGluaXRpYWwobmFtZXMpKTsKKwkJCW5zcG5hbWUgPSBzdHJWYWwobHNlY29uZChuYW1lcykpOwor CQkJdmFybmFtZSA9IHN0clZhbChsdGhpcmQobmFtZXMpKTsKKworCQkJLyogY2hlY2sgY2F0YWxv ZyBuYW1lICovCisJCQlpZiAoc3RyY21wKGNhdG5hbWUsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0 YWJhc2VJZCkpICE9IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQlOYW1lTGlzdFRv U3RyaW5nKG5hbWVzKSkpKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJybXNnKCJp bXByb3BlciBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICVz IiwKKwkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCWJyZWFrOworCX0KKwor CXJldHVybiBMb29rdXBWYXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKK30K KworLyoKKyAqIFRoZSBpbnB1dCBsaXN0IGNvbnRhaW5zIG5hbWVzIHdpdGggaW5kaXJlY3Rpb24g ZXhwcmVzc2lvbnMgdXNlZCBhcyB0aGUgbGVmdAorICogcGFydCBvZiBMRVQgc3RhdGVtZW50LiBU aGUgZm9sbG93aW5nIHJvdXRpbmUgcmV0dXJucyBhIG5ldyBsaXN0IHdpdGggb25seQorICogaW5p dGlhbCBzdHJpbmdzIChuYW1lcykgLSB3aXRob3V0IGluZGlyZWN0aW9uIGV4cHJlc3Npb25zLgor ICovCitMaXN0ICoKK05hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpCit7CisJTGlzdENlbGwgICAq bDsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisKKwlmb3JlYWNoKGwsIG5hbWVzKQorCXsKKwkJ Tm9kZQkgICAqbiA9IGxmaXJzdChsKTsKKworCQlpZiAoSXNBKG4sIFN0cmluZykpCisJCXsKKwkJ CXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBuKTsKKwkJfQorCQllbHNlCisJCQlicmVhazsKKwl9 CisKKwlyZXR1cm4gcmVzdWx0OworfQogCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1l CkBAIC01MDg1LDMgKzUyOTIsMTcgQEAgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJ T05fQVJHUykKIAogCVBHX1JFVFVSTl9CT09MKGlzT3RoZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwog fQorCitEYXR1bQorcGdfdmFyaWFibGVfaXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdTKQorewor CU9pZAkJCW9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJYm9vbAkJcmVzdWx0OworCWJvb2wJCWlz X21pc3NpbmcgPSBmYWxzZTsKKworCXJlc3VsdCA9IFZhcmlhYmxlSXNWaXNpYmxlRXh0KG9pZCwg JmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJ UEdfUkVUVVJOX0JPT0wocmVzdWx0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMK aW5kZXggZDhlYjhkM2RlYWEuLjRhNDY0ZGZlYTdlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFk ZHJlc3MuYwpAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxh dGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAtNjM2LDYgKzYzNywyMCBA QCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFByb3BlcnR5W10gPQogCQlP QkpFQ1RfVVNFUl9NQVBQSU5HLAogCQlmYWxzZQogCX0sCisJeworCQkic2Vzc2lvbiB2YXJpYWJs ZSIsCisJCVZhcmlhYmxlUmVsYXRpb25JZCwKKwkJVmFyaWFibGVPaWRJbmRleElkLAorCQlWQVJJ QUJMRU9JRCwKKwkJVkFSSUFCTEVOQU1FTlNQLAorCQlBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJ QW51bV9wZ192YXJpYWJsZV92YXJuYW1lLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFj ZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJvd25lciwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJh Y2wsCisJCU9CSkVDVF9WQVJJQUJMRSwKKwkJdHJ1ZQorCX0KIH07CiAKIC8qCkBAIC04MzEsNiAr ODQ2LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvYmplY3RfdHlwZV9tYXAKIAl9LAogCXsKIAkJ InN0YXRpc3RpY3Mgb2JqZWN0IiwgT0JKRUNUX1NUQVRJU1RJQ19FWFQKKwl9LAorCXsKKwkJInNl c3Npb24gdmFyaWFibGUiLCBPQkpFQ1RfVkFSSUFCTEUKIAl9CiB9OwogCkBAIC04NTYsNiArODc0 LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX2F0dHJkZWYoT2Jq ZWN0VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkJYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBP YmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc190eXBlKE9iamVjdFR5cGUgb2JqdHlwZSwK IAkJCQkJCQkJCQkJIFR5cGVOYW1lICp0eXBlbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK3N0YXRp YyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3Qs IGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJl c3Nfb3BjZihPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iamVjdCwKIAkJCQkJCQkJCQkJIGJv b2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3Nf b3BmX21lbWJlcihPYmplY3RUeXBlIG9ianR5cGUsCkBAIC0xMTI3LDYgKzExNDYsOSBAQCBnZXRf b2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJCQkJ CQkJCQkJCQkgbWlzc2luZ19vayk7CiAJCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQkJ YnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQlhZGRyZXNzID0gZ2V0X29iamVj dF9hZGRyZXNzX3ZhcmlhYmxlKGNhc3ROb2RlKExpc3QsIG9iamVjdCksIG1pc3Npbmdfb2spOwor CQkJCWJyZWFrOwogCQkJCS8qIG5vIGRlZmF1bHQsIHRvIGxldCBjb21waWxlciB3YXJuIGFib3V0 IG1pc3NpbmcgY2FzZSAqLwogCQl9CiAKQEAgLTIwMDUsMTYgKzIwMjcsMjAgQEAgZ2V0X29iamVj dF9hZGRyZXNzX2RlZmFjbChMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJY2FzZSBE RUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJb2JqdHlwZV9zdHIgPSAic2NoZW1hcyI7CiAJCQlicmVh azsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQlvYmp0eXBlX3N0ciA9ICJ2YXJpYWJs ZXMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJy Y29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJIGVycm1zZygidW5y ZWNvZ25pemVkIGRlZmF1bHQgQUNMIG9iamVjdCB0eXBlIFwiJWNcIiIsIG9ianR5cGUpLAotCQkJ CQkgZXJyaGludCgiVmFsaWQgb2JqZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wi LCBcIiVjXCIsIFwiJWNcIi4iLAorCQkJCQkgZXJyaGludCgiVmFsaWQgb2JqZWN0IHR5cGVzIGFy ZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCiAJCQkJ CQkJIERFRkFDTE9CSl9SRUxBVElPTiwKIAkJCQkJCQkgREVGQUNMT0JKX1NFUVVFTkNFLAogCQkJ CQkJCSBERUZBQ0xPQkpfRlVOQ1RJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9UWVBFLAotCQkJCQkJ CSBERUZBQ0xPQkpfTkFNRVNQQUNFKSkpOworCQkJCQkJCSBERUZBQ0xPQkpfTkFNRVNQQUNFLAor CQkJCQkJCSBERUZBQ0xPQkpfVkFSSUFCTEUpKSk7CiAJfQogCiAJLyoKQEAgLTIwOTgsNiArMjEy NCwyNCBAQCB0ZXh0YXJyYXlfdG9fc3RydmFsdWVsaXN0KEFycmF5VHlwZSAqYXJyKQogCXJldHVy biBsaXN0OwogfQogCisvKgorICogRmluZCB0aGUgT2JqZWN0QWRkcmVzcyBmb3IgYSBzZXNzaW9u IHZhcmlhYmxlCisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitnZXRfb2JqZWN0X2FkZHJlc3Nf dmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCit7CisJT2JqZWN0QWRkcmVz cyBhZGRyZXNzOworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxMOworCWNoYXIJICAgKnZhcm5hbWUg PSBOVUxMOworCisJT2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBWYXJpYWJsZVJlbGF0aW9uSWQs IEludmFsaWRPaWQpOworCisJRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lKG9iamVjdCwgJm5zcG5h bWUsICZ2YXJuYW1lKTsKKwlhZGRyZXNzLm9iamVjdElkID0gTG9va3VwVmFyaWFibGUobnNwbmFt ZSwgdmFybmFtZSwgbWlzc2luZ19vayk7CisKKwlyZXR1cm4gYWRkcmVzczsKK30KKwogLyoKICAq IFNRTC1jYWxsYWJsZSB2ZXJzaW9uIG9mIGdldF9vYmplY3RfYWRkcmVzcwogICovCkBAIC0yMjky LDYgKzIzMzYsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJ Y2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJY2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2Fz ZSBPQkpFQ1RfT1BGQU1JTFk6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJb2Jqbm9kZSA9 IChOb2RlICopIG5hbWU7CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoK QEAgLTI0NjMsNiArMjUwOCw3IEBAIGNoZWNrX29iamVjdF9vd25lcnNoaXAoT2lkIHJvbGVpZCwg T2JqZWN0VHlwZSBvYmp0eXBlLCBPYmplY3RBZGRyZXNzIGFkZHJlc3MsCiAJCWNhc2UgT0JKRUNU X1NUQVRJU1RJQ19FWFQ6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpF Q1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCWlmICghb2Jq ZWN0X293bmVyY2hlY2soYWRkcmVzcy5jbGFzc0lkLCBhZGRyZXNzLm9iamVjdElkLCByb2xlaWQp KQogCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgb2JqdHlwZSwKIAkJCQkJ CQkgICBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpKTsKQEAgLTM0OTIs NiArMzUzOCwzMiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpv YmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFZhcmlh YmxlUmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpuc3BuYW1lOworCQkJCUhlYXBUdXBs ZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJCQkJdHVwID0gU2VhcmNo U3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQp KTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLAorCQkJCQkJIG9iamVj dC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJV Q1QodHVwKTsKKworCQkJCWlmIChWYXJpYWJsZUlzVmlzaWJsZShvYmplY3QtPm9iamVjdElkKSkK KwkJCQkJbnNwbmFtZSA9IE5VTEw7CisJCQkJZWxzZQorCQkJCQluc3BuYW1lID0gZ2V0X25hbWVz cGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZv KCZidWZmZXIsIF8oInNlc3Npb24gdmFyaWFibGUgJXMiKSwKKwkJCQkJCQkJIHF1b3RlX3F1YWxp ZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJCQlOYW1lU3RyKHZhcmZvcm0t PnZhcm5hbWUpKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJ CX0KKwogCQljYXNlIFRTUGFyc2VyUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJdHVw OwpAQCAtMzg0NCw2ICszOTE2LDE2IEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVj dEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCQkJCQkJCSBfKCJkZWZhdWx0 IHByaXZpbGVnZXMgb24gbmV3IHNjaGVtYXMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKIAkJCQkJ CQkJCQkgcm9sZW5hbWUpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklB QkxFOgorCQkJCQkJaWYgKG5zcG5hbWUpCisJCQkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVy LAorCQkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzZXNzaW9uIHZhcmlh YmxlcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyBpbiBzY2hlbWEgJXMiKSwKKwkJCQkJCQkJCQkJIHJv bGVuYW1lLCBuc3BuYW1lKTsKKwkJCQkJCWVsc2UKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZi dWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24g dmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIiksCisJCQkJCQkJCQkJCSByb2xlbmFtZSk7 CisJCQkJCQlicmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCS8qIHNob3VsZG4ndCBnZXQgaGVy ZSAqLwogCQkJCQkJaWYgKG5zcG5hbWUpCkBAIC00NjYwLDYgKzQ3NDIsMTAgQEAgZ2V0T2JqZWN0 VHlwZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5n X29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAidHJhbnNmb3JtIik7CiAJ CQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoJmJ1ZmZlciwgInNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOworCiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9i amVjdC0+Y2xhc3NJZCk7CiAJfQpAQCAtNTc2Niw2ICs1ODUyLDEwIEBAIGdldE9iamVjdElkZW50 aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZygmYnVmZmVyLAogCQkJCQkJCQkJCQkgICAiIG9uIHNjaGVtYXMiKTsKIAkJCQkJ CWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCQkJICAgIiBvbiBzZXNzaW9uIHZhcmlhYmxl cyIpOworCQkJCQkJYnJlYWs7CiAJCQkJfQogCiAJCQkJaWYgKG9iam5hbWUpCkBAIC02MDA2LDYg KzYwOTYsMzMgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpv YmplY3QsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJ CXsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisJCQkJY2hhcgkgICAqdmFybmFtZTsKKwkJCQlIZWFw VHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVj dElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJCSBv YmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VU U1RSVUNUKHR1cCk7CisKKwkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcCh2 YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCQkJCXZhcm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZh cm5hbWUpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXMiLAorCQkJCQkJCQkg cXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hLCB2YXJuYW1lKSk7CisKKwkJCQlpZiAo b2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKHNjaGVtYSwgcHN0cmR1cCh2YXJu YW1lKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUi LCBvYmplY3QtPmNsYXNzSWQpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfc2hkZXBlbmQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYwppbmRleCA1 MzYxOTEyODRlOC4uYzZmZDFmYTA3NGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKQEAg LTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX2RpY3QuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9h bHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21t YW5kcy9kZWZyZW0uaCIKQEAgLTE3MTQsNiArMTcxNSw3IEBAIHNoZGVwUmVhc3NpZ25Pd25lZF9P d25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3JtLCBPaWQgbmV3cm9sZSkKIAkJY2FzZSBEYXRh YmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklkOgogCQljYXNlIFRTRGlj dGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgogCQkJQWx0ZXJP YmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+Y2xhc3NpZCwKIAkJCQkJCQkJCSAgc2RlcEZv cm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjlkOTY3YTJkNWIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTAs MCArMSwyNTEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3ZhcmlhYmxlLmMKKyAq CQlzZXNzaW9uIHZhcmlhYmxlcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0y MDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEK KyAqCisgKiBJREVOVElGSUNBVElPTgorICoJCXNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5o IgorCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgorI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5k ZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9n L25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFj ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJtaXNjYWRt aW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMv c3lzY2FjaGUuaCIKKworc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0 IGNoYXIgKnZhck5hbWUsCisJCQkJCQkJCQkgT2lkIHZhck5hbWVzcGFjZSwKKwkJCQkJCQkJCSBP aWQgdmFyVHlwZSwKKwkJCQkJCQkJCSBpbnQzMiB2YXJUeXBtb2QsCisJCQkJCQkJCQkgT2lkIHZh ck93bmVyLAorCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCisJCQkJCQkJCQkgYm9vbCBpZl9u b3RfZXhpc3RzKTsKKworCisvKgorICogQ3JlYXRlcyBlbnRyeSBpbiBwZ192YXJpYWJsZSB0YWJs ZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIg KnZhck5hbWUsCisJCQkJT2lkIHZhck5hbWVzcGFjZSwKKwkJCQlPaWQgdmFyVHlwZSwKKwkJCQlp bnQzMiB2YXJUeXBtb2QsCisJCQkJT2lkIHZhck93bmVyLAorCQkJCU9pZCB2YXJDb2xsYXRpb24s CisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzKQoreworCUFjbAkJICAgKnZhcmFjbDsKKwlOYW1lRGF0 YQl2YXJuYW1lOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlEYXR1bQkJdmFs dWVzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1cGxlCXR1cDsK KwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPYmplY3RBZGRyZXNzIG15c2VsZiwKKwkJCQlyZWZlcmVu Y2VkOworCU9iamVjdEFkZHJlc3NlcyAqYWRkcnM7CisJT2lkCQkJdmFyaWQ7CisKKwlBc3NlcnQo dmFyTmFtZSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyTmFtZXNwYWNlKSk7CisJQXNzZXJ0KE9p ZElzVmFsaWQodmFyVHlwZSkpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhck93bmVyKSk7CisKKwly ZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwkvKgorCSAqIENoZWNrIGZvciBkdXBsaWNhdGVzLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBy ZWFsbHkgcHJldmVudAorCSAqIGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRvIHByb3ZpZGUg bmljZXIgZXJyb3IgbWVzc2FnZSBpbiBjb21tb24KKwkgKiBjYXNlLiBUaGUgcmVhbCBwcm90ZWN0 aW9uIGlzIHRoZSB1bmlxdWUga2V5IG9uIHRoZSBjYXRhbG9nLgorCSAqLworCWlmIChTZWFyY2hT eXNDYWNoZUV4aXN0czIoVkFSSUFCTEVOQU1FTlNQLAorCQkJCQkJCSAgUG9pbnRlckdldERhdHVt KHZhck5hbWUpLAorCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpKSkKKwl7 CisJCWlmIChpZl9ub3RfZXhpc3RzKQorCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFi bGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJdmFyTmFtZSkpKTsK KwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNB VEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFk eSBleGlzdHMiLAorCQkJCQkJCXZhck5hbWUpKSk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBSb3dF eGNsdXNpdmVMb2NrKTsKKworCQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJfQorCisJ bWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2Us IHNpemVvZihudWxscykpOworCisJbmFtZXN0cmNweSgmdmFybmFtZSwgdmFyTmFtZSk7CisKKwl2 YXJpZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFZhcmlhYmxlT2lkSW5kZXhJZCwgQW51bV9w Z192YXJpYWJsZV9vaWQpOworCisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfb2lkIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKHZhcmlkKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1l IC0gMV0gPSBOYW1lR2V0RGF0dW0oJnZhcm5hbWUpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3Zhcm5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpOworCXZh bHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFy VHlwZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJbnQzMkdl dERhdHVtKHZhclR5cG1vZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3duZXIgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOworCisJ dmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2woT0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwK KwkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOworCWlmICh2YXJhY2wgIT0gTlVMTCkKKwkJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFyYWNsIC0gMV0gPSBQb2ludGVyR2V0RGF0dW0odmFyYWNsKTsK KwllbHNlCisJCW51bGxzW0FudW1fcGdfdmFyaWFibGVfdmFyYWNsIC0gMV0gPSB0cnVlOworCisJ dHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBs ZSh0dXBkZXNjLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXAp OworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwlhZGRycyA9IG5ld19vYmplY3RfYWRk cmVzc2VzKCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgVmFyaWFibGVSZWxhdGlvbklk LCB2YXJpZCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIG5hbWVzcGFjZSAqLworCU9iamVjdEFkZHJl c3NTZXQocmVmZXJlbmNlZCwgTmFtZXNwYWNlUmVsYXRpb25JZCwgdmFyTmFtZXNwYWNlKTsKKwlh ZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKworCS8qIGRlcGVu ZGVuY3kgb24gdXNlZCB0eXBlICovCisJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBUeXBl UmVsYXRpb25JZCwgdmFyVHlwZSk7CisJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVu Y2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIGNvbGxhdGlvbiAqLworCWlmIChPaWRJ c1ZhbGlkKHZhckNvbGxhdGlvbikgJiYKKwkJdmFyQ29sbGF0aW9uICE9IERFRkFVTFRfQ09MTEFU SU9OX09JRCkKKwl7CisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgQ29sbGF0aW9uUmVs YXRpb25JZCwgdmFyQ29sbGF0aW9uKTsKKwkJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZl cmVuY2VkLCBhZGRycyk7CisJfQorCisJcmVjb3JkX29iamVjdF9hZGRyZXNzX2RlcGVuZGVuY2ll cygmbXlzZWxmLCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOworCWZyZWVfb2JqZWN0X2FkZHJl c3NlcyhhZGRycyk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIG93bmVyICovCisJcmVjb3JkRGVwZW5k ZW5jeU9uT3duZXIoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgdmFyT3duZXIpOworCisJLyog ZGVwZW5kZW5jaWVzIG9uIHJvbGVzIG1lbnRpb25lZCBpbiBkZWZhdWx0IEFDTCAqLworCXJlY29y ZERlcGVuZGVuY3lPbk5ld0FjbChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCB2YXJPd25l ciwgdmFyYWNsKTsKKworCS8qIGRlcGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCisJcmVjb3JkRGVw ZW5kZW5jeU9uQ3VycmVudEV4dGVuc2lvbigmbXlzZWxmLCBmYWxzZSk7CisKKwloZWFwX2ZyZWV0 dXBsZSh0dXApOworCisJLyogcG9zdCBjcmVhdGlvbiBob29rIGZvciBuZXcgZnVuY3Rpb24gKi8K KwlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAw KTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gbXlz ZWxmOworfQorCisvKgorICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJsZQorICoKKyAqIFVzZWQgYnkg Q1JFQVRFIFZBUklBQkxFIGNvbW1hbmQKKyAqLworT2JqZWN0QWRkcmVzcworQ3JlYXRlVmFyaWFi bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKK3sKKwlP aWQJCQluYW1lc3BhY2VpZDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCU9pZAkJCXR5cGlkOwor CWludDMyCQl0eXBtb2Q7CisJT2lkCQkJdmFyb3duZXIgPSBHZXRVc2VySWQoKTsKKwlPaWQJCQlj b2xsYXRpb247CisJT2lkCQkJdHlwY29sbGF0aW9uOworCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7 CisKKwluYW1lc3BhY2VpZCA9CisJCVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFj ZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBOVUxMKTsKKworCXR5cGVuYW1lVHlwZUlkQW5kTW9k KHBzdGF0ZSwgc3RtdC0+dHlwZU5hbWUsICZ0eXBpZCwgJnR5cG1vZCk7CisKKwkvKiBkaXNhbGxv dyBwc2V1ZG90eXBlcyAqLworCWlmIChnZXRfdHlwdHlwZSh0eXBpZCkgPT0gVFlQVFlQRV9QU0VV RE8pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1Rf VFlQRSksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgcHNldWRvLXR5 cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSkpOworCisJYWNscmVzdWx0ID0g b2JqZWN0X2FjbGNoZWNrKFR5cGVSZWxhdGlvbklkLCB0eXBpZCwgR2V0VXNlcklkKCksIEFDTF9V U0FHRSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3Jf dHlwZShhY2xyZXN1bHQsIHR5cGlkKTsKKworCXR5cGNvbGxhdGlvbiA9IGdldF90eXBjb2xsYXRp b24odHlwaWQpOworCisJaWYgKHN0bXQtPmNvbGxDbGF1c2UpCisJCWNvbGxhdGlvbiA9IExvb2t1 cENvbGxhdGlvbihwc3RhdGUsCisJCQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5jb2xsbmFtZSwK KwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2UtPmxvY2F0aW9uKTsKKwllbHNlCisJCWNvbGxhdGlv biA9IHR5cGNvbGxhdGlvbjsKKworCS8qIGNvbXBsYWluIGlmIENPTExBVEUgaXMgYXBwbGllZCB0 byBhbiB1bmNvbGxhdGFibGUgdHlwZSAqLworCWlmIChPaWRJc1ZhbGlkKGNvbGxhdGlvbikgJiYg IU9pZElzVmFsaWQodHlwY29sbGF0aW9uKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJjb2xsYXRpb25zIGFy ZSBub3Qgc3VwcG9ydGVkIGJ5IHR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQp KSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVzZS0+bG9j YXRpb24pKSk7CisKKwl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShzdG10LT52YXJpYWJsZS0+ cmVsbmFtZSwKKwkJCQkJCQkgICBuYW1lc3BhY2VpZCwKKwkJCQkJCQkgICB0eXBpZCwKKwkJCQkJ CQkgICB0eXBtb2QsCisJCQkJCQkJICAgdmFyb3duZXIsCisJCQkJCQkJICAgY29sbGF0aW9uLAor CQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMpOworCisJZWxvZyhERUJVRzEsICJyZWNvcmQg Zm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQpIHdhcyBjcmVhdGVkIGluIHBnX3Zh cmlhYmxlIiwKKwkJIHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLCB2YXJpYWJsZS5vYmplY3RJZCk7 CisKKwlyZXR1cm4gdmFyaWFibGU7Cit9CisKKy8qCisgKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRAor ICovCit2b2lkCitEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKK3sKKwlSZWxhdGlvbglyZWw7 CisJSGVhcFR1cGxlCXR1cDsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklk LCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9J RCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1 cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIs IHZhcmlkKTsKKworCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CisKKwlS ZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9j ayk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCA3OGMxZDRlMWI4NC4uNjcxNTNjZDhiOTQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvYWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxh dGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBAIC0xNDAsNiAr MTQxLDEwIEBAIHJlcG9ydF9uYW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNo YXIgKm5hbWUsIE9pZCBuc3BPaWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKIAkJ CW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBcIiVzXCIg YWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJCWNhc2UgVmFy aWFibGVSZWxhdGlvbklkOgorCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CisJCQltc2dm bXQgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3Rz IGluIHNjaGVtYSBcIiVzXCIiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJP UiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJCWJyZWFrOwpA QCAtNDE5LDYgKzQyNCw3IEBAIEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNh c2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNl IE9CSkVDVF9TVUJTQ1JJUFRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJ CU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpAQCAtNTU5LDYg KzU2NSw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10 ICpzdG10LAogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTUEFS U0VSOgogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK IAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCQkJCU9pZAkJCWNsYXNzSWQ7CkBAIC02NDEs NiArNjQ4LDcgQEAgQWx0ZXJPYmplY3ROYW1lc3BhY2Vfb2lkKE9pZCBjbGFzc0lkLCBPaWQgb2Jq aWQsIE9pZCBuc3BPaWQsCiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoKIAkJY2FzZSBU U1RlbXBsYXRlUmVsYXRpb25JZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CisJCWNhc2Ug VmFyaWFibGVSZWxhdGlvbklkOgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAKQEAgLTg3 MSw2ICs4NzksNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJ CWNhc2UgT0JKRUNUX1RBQkxFU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJ Y2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJ CXsKIAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmlu ZGV4IGNlYjlhMjI5YjYzLi5lYmI1ODVkYzRhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBA IC00NzYsNiArNDc2LDEwIEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2Jq dHlwZSwgTm9kZSAqb2JqZWN0KQogCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwdWJsaWNhdGlvbiBc IiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFsKG9iamVj dCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQltc2cgPSBnZXR0ZXh0 X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIp OworCQkJbmFtZSA9IE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSk7CisJ CQlicmVhazsKIAogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNF OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IGVkYzJjOTg4ZTI5Li4xODM5 YzFmODJjNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtMjE0OSw2ICsy MTQ5LDggQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJ cmV0dXJuICJUQUJMRVNQQUNFIjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQ RSI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRSI7CiAJCQkv KiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01F VEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpAQCAtMjIzMiw2ICsyMjM0LDggQEAgc3Ry aW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJCXJldHVybiAi VEFCTEVTUEFDRVMiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBFUyI7CisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRVMiOwogCQkJLyogdGhl c2UgY3VycmVudGx5IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6 CiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCmluZGV4IGNl ZTVkN2JiYjljLi41N2I0ZTY3MTljMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCkBAIC05Miw2 ICs5Miw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9iamVjdFR5cGUgb2JqdHlwZSkK IAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNh c2UgT0JKRUNUX1VTRVJfTUFQUElORzoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlyZXR1 cm4gZmFsc2U7CiAKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDU4MjNmY2U5 MzQwLi5jY2Y1OGUzZGUxMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTUyLDYgKzUy LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlX3hsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0 aW5nLmgiCkBAIC02ODIzLDYgKzY4MjQsNyBAQCBBVFR5cGVkVGFibGVSZWN1cnNpb24oTGlzdCAq KndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAgKiAocG9zc2libHkg bmVzdGVkIHNldmVyYWwgbGV2ZWxzIGRlZXAgaW4gY29tcG9zaXRlIHR5cGVzLCBhcnJheXMsIGV0 YyEpLgogICogRXZlbnR1YWxseSwgd2UnZCBsaWtlIHRvIHByb3BhZ2F0ZSB0aGUgY2hlY2sgb3Ig cmV3cml0ZSBvcGVyYXRpb24KICAqIGludG8gc3VjaCB0YWJsZXMsIGJ1dCBmb3Igbm93LCBqdXN0 IGVycm9yIG91dCBpZiB3ZSBmaW5kIGFueS4KKyAqIEFsc28sIGNoZWNrIGlmICJ0eXBlT2lkIiBp cyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlLgogICoKICAqIENhbGxlciBz aG91bGQgcHJvdmlkZSBlaXRoZXIgdGhlIGFzc29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBl LAogICogb3IgYSB0eXBlIG5hbWUgKG5vdCBib3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNz YWdlLCBpZiBhbnkuCkBAIC02ODg2LDYgKzY4ODgsNDUgQEAgZmluZF9jb21wb3NpdGVfdHlwZV9k ZXBlbmRlbmNpZXMoT2lkIHR5cGVPaWQsIFJlbGF0aW9uIG9yaWdSZWxhdGlvbiwKIAkJCWNvbnRp bnVlOwogCQl9CiAKKwkJLyogY2hlY2sgaWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0eXBlIG9mIHNv bWUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlh YmxlUmVsYXRpb25JZCkKKwkJeworCQkJT2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9iamlkOwor CisJCQlpZiAob3JpZ1R5cGVOYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3Qg YWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2Vz IGl0IiwKKwkJCQkJCQkJb3JpZ1R5cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5y ZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNh bm5vdCBhbHRlciBmb3JlaWduIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmln UmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTiB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQg PT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNn KCJjYW5ub3QgYWx0ZXIgdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVz LiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxh dGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJp ZCkpKSk7CisKKwkJCWNvbnRpbnVlOworCQl9CisKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVl cyB0aGF0IGFyZW4ndCByZWxhdGlvbnMgKi8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCAhPSBS ZWxhdGlvblJlbGF0aW9uSWQpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmlu ZGV4IDNjYjNjYTFjY2ExLi40NzNkOThmZjA2MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBA IC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19yYW5nZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90eXBl Y21kcy5oIgpAQCAtMzM2OSw2ICszMzcwLDIwIEBAIGdldF9yZWxzX3dpdGhfZG9tYWluKE9pZCBk b21haW5PaWQsIExPQ0tNT0RFIGxvY2ttb2RlKQogCQkJfQogCQkJY29udGludWU7CiAJCX0KKwkJ ZWxzZSBpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJewor CQkJLyoKKwkJCSAqIFdlIGNhbm5vdCB0byB2YWxpZGF0ZSBjb25zdHJhaW50IGluc2lkZSBzZXNz aW9uIHZhcmlhYmxlcworCQkJICogZnJvbSBvdGhlciBzZXNzaW9ucywgc28gYmV0dGVyIHRvIGZh aWwgaWYgdGhlcmUgYXJlIGFueQorCQkJICogc2Vzc2lvbiB2YXJpYWJsZSwgdGhhdCB1c2UgdGhp cyBkb21haW4uCisJCQkgKi8KKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGRv bWFpbiBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwK KwkJCQkJCQkJZG9tYWluVHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UocGdfZGVwZW5kLT5vYmppZCkpLAorCQkJCQkJCQln ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBnX2RlcGVuZC0+b2JqaWQpKSkpOworCQl9CiAKIAkJ LyogRWxzZSwgaWdub3JlIGRlcGVuZGVlcyB0aGF0IGFyZW4ndCB1c2VyIGNvbHVtbnMgb2YgcmVs YXRpb25zICovCiAJCS8qICh3ZSBhc3N1bWUgc3lzdGVtIGNvbHVtbnMgYXJlIG5ldmVyIG9mIGRv bWFpbiB0eXBlcykgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGQzODg3NjI4ZDQ2Li4yZGUyMDIyYjI4MSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 cmlnZ2VyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRl ICJncmFtcGFyc2UuaCIKQEAgLTI4NSw4ICsyODYsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vy c2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCQlDb25zdHJhaW50c1NldFN0bXQgQ29weVN0bXQgQ3JlYXRlQXNTdG10IENyZWF0ZUNhc3RT dG10CiAJCUNyZWF0ZURvbWFpblN0bXQgQ3JlYXRlRXh0ZW5zaW9uU3RtdCBDcmVhdGVHcm91cFN0 bXQgQ3JlYXRlT3BDbGFzc1N0bXQKIAkJQ3JlYXRlT3BGYW1pbHlTdG10IEFsdGVyT3BGYW1pbHlT dG10IENyZWF0ZVBMYW5nU3RtdAotCQlDcmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3Jl YXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQgQ3JlYXRlVGFibGVTcGFjZVN0bXQKLQkJQ3JlYXRlRmR3 U3RtdCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CisJCUNy ZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTZXNzaW9uVmFyU3RtdCBDcmVhdGVT dG10IENyZWF0ZVN0YXRzU3RtdAorCQlDcmVhdGVUYWJsZVNwYWNlU3RtdCBDcmVhdGVGZHdTdG10 IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKIAkJQ3JlYXRl QXNzZXJ0aW9uU3RtdCBDcmVhdGVUcmFuc2Zvcm1TdG10IENyZWF0ZVRyaWdTdG10IENyZWF0ZUV2 ZW50VHJpZ1N0bXQKIAkJQ3JlYXRlVXNlclN0bXQgQ3JlYXRlVXNlck1hcHBpbmdTdG10IENyZWF0 ZVJvbGVTdG10IENyZWF0ZVBvbGljeVN0bXQKIAkJQ3JlYXRlZGJTdG10IERlY2xhcmVDdXJzb3JT dG10IERlZmluZVN0bXQgRGVsZXRlU3RtdCBEaXNjYXJkU3RtdCBEb1N0bXQKQEAgLTc4Myw4ICs3 ODQsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFt ZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVFU0NBUEUgVU5CT1VOREVEIFVOQ09O RElUSU9OQUwgVU5DT01NSVRURUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04KIAlV TkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNFUiBVU0lORwogCi0JVkFDVVVNIFZBTElE IFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBRElDIFZBUllJ TkcKLQlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKKwlWQUNV VU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFE SUMgVkFSSUFCTEUKKwlWQVJJQUJMRVMgVkFSWUlORyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJ RVdTIFZJUlRVQUwgVk9MQVRJTEUKIAogCVdIRU4gV0hFUkUgV0hJVEVTUEFDRV9QIFdJTkRPVyBX SVRIIFdJVEhJTiBXSVRIT1VUIFdPUksgV1JBUFBFUiBXUklURQogCkBAIC0xMDUwLDYgKzEwNTEs NyBAQCBzdG10OgogCQkJfCBDcmVhdGVQb2xpY3lTdG10CiAJCQl8IENyZWF0ZVBMYW5nU3RtdAog CQkJfCBDcmVhdGVTY2hlbWFTdG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCQl8IENy ZWF0ZVNlcVN0bXQKIAkJCXwgQ3JlYXRlU3RtdAogCQkJfCBDcmVhdGVTdWJzY3JpcHRpb25TdG10 CkBAIC0xNTkyLDYgKzE1OTQsNyBAQCBzY2hlbWFfc3RtdDoKIAkJCXwgQ3JlYXRlVHJpZ1N0bXQK IAkJCXwgR3JhbnRTdG10CiAJCQl8IFZpZXdTdG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10 CiAJCTsKIAogCkBAIC01MjQ1LDYgKzUyNDgsMzQgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRl bToKIAkJCQl9CiAJCTsKIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZIDoK KyAqCQkJCUNSRUFURSBWQVJJQUJMRSB2YXJuYW1lIFtBU10gdHlwZQorICoKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQlDUkVBVEUgVkFSSUFCTEUg cXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsK KwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFy U3RtdCk7CisJCQkJCW4tPnZhcmlhYmxlID0gJDM7CisJCQkJCW4tPnR5cGVOYW1lID0gJDU7CisJ CQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkNjsKKwkJCQkJbi0+aWZfbm90 X2V4aXN0cyA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBDUkVB VEUgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFt ZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpu ID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQ2 OworCQkJCQluLT50eXBlTmFtZSA9ICQ4OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDk7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOworCQkJCQkkJCA9IChO b2RlICopIG47CisJCQkJfQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFM VEVSIEVYVEVOU0lPTiBuYW1lIFVQREFURSBbIFRPIHZlcnNpb24gXQpAQCAtNzAzNiw2ICs3MDY3 LDcgQEAgb2JqZWN0X3R5cGVfYW55X25hbWU6CiAJCQl8IFRFWFRfUCBTRUFSQ0ggRElDVElPTkFS WQkJCQl7ICQkID0gT0JKRUNUX1RTRElDVElPTkFSWTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIFRF TVBMQVRFCQkJCXsgJCQgPSBPQkpFQ1RfVFNURU1QTEFURTsgfQogCQkJfCBURVhUX1AgU0VBUkNI IENPTkZJR1VSQVRJT04JCQl7ICQkID0gT0JKRUNUX1RTQ09ORklHVVJBVElPTjsgfQorCQkJfCBW QVJJQUJMRQkJCQkJCQkJeyAkJCA9IE9CSkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIC8qCkBAIC03 OTEyLDYgKzc5NDQsMTQgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQyOwog CQkJCQkkJCA9IG47CiAJCQkJfQorCQkJfCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZV9saXN0CisJ CQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQ cml2VGFyZ2V0KSk7CisJCQkJCW4tPnRhcmd0eXBlID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJCQkJ CW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9ianMgPSAkMjsKKwkJCQkJ JCQgPSBuOworCQkJCX0KIAkJCXwgQUxMIFRBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKIAkJ CQl7CiAJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFBy aXZUYXJnZXQpKTsKQEAgLTc5NTcsNiArNzk5NywxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJ CQluLT5vYmpzID0gJDU7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IEFMTCBWQVJJQUJMRVMg SU5fUCBTQ0hFTUEgbmFtZV9saXN0CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZU YXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CisJCQkJCW4tPnRhcmd0eXBlID0g QUNMX1RBUkdFVF9BTExfSU5fU0NIRU1BOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklB QkxFOworCQkJCQluLT5vYmpzID0gJDU7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCTsKIAogCkBA IC04MTU0LDYgKzgyMDIsNyBAQCBkZWZhY2xfcHJpdmlsZWdlX3RhcmdldDoKIAkJCXwgU0VRVUVO Q0VTCQl7ICQkID0gT0JKRUNUX1NFUVVFTkNFOyB9CiAJCQl8IFRZUEVTX1AJCXsgJCQgPSBPQkpF Q1RfVFlQRTsgfQogCQkJfCBTQ0hFTUFTCQl7ICQkID0gT0JKRUNUX1NDSEVNQTsgfQorCQkJfCBW QVJJQUJMRVMJCXsgJCQgPSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAKQEAgLTk5NDIsNiAr OTk5MSwyNCBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJn dHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkk JCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBSRU5B TUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0 bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmpl Y3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ2OworCQkJCQluLT5taXNzaW5n X29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVkFS SUFCTEUgSUZfUCBFWElTVFMgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJl bmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9 IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4t Pm5ld25hbWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KIAkJOwogCiBvcHRfY29sdW1uOiBDT0xVTU4KQEAgLTEwMzAzLDYgKzEw MzcwLDI0IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBh bnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3Rt dCAqbiA9IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5 cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJ CQluLT5uZXdzY2hlbWEgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkk JCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFu eV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10 ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlw ZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJ CW4tPm5ld3NjaGVtYSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQg PSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTA1 ODQsNiArMTA2NjksMTQgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdh dGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9ICQ2 OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlf bmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBt YWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFS SUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdvd25lciA9 ICQ2OworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsKIAogCkBAIC0xNzk5Myw2ICsx ODA4Niw4IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVkFMSURBVEUKIAkJCXwgVkFMSURB VE9SCiAJCQl8IFZBTFVFX1AKKwkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZB UllJTkcKIAkJCXwgVkVSU0lPTl9QCiAJCQl8IFZJRVcKQEAgLTE4NjQ4LDYgKzE4NzQzLDggQEAg YmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBWQUxVRV9QCiAJCQl8IFZBTFVFUwogCQkJfCBWQVJD SEFSCisJCQl8IFZBUklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJJQURJQwogCQkJfCBW RVJCT1NFCiAJCQl8IFZFUlNJT05fUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXgg ZWI3NzE2Y2Q4NGMuLmE3MDE4ZDY2MjhkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMK QEAgLTEwNSw2ICsxMDUsNyBAQCB0eXBlZGVmIHN0cnVjdAogCUxpc3QJICAgKmluZGV4ZXM7CQkv KiBDUkVBVEUgSU5ERVggaXRlbXMgKi8KIAlMaXN0CSAgICp0cmlnZ2VyczsJCS8qIENSRUFURSBU UklHR0VSIGl0ZW1zICovCiAJTGlzdAkgICAqZ3JhbnRzOwkJCS8qIEdSQU5UIGl0ZW1zICovCisJ TGlzdAkgICAqdmFyaWFibGVzOwkJLyogQ1JFQVRFIFZBUklBQkxFIGl0ZW1zICovCiB9IENyZWF0 ZVNjaGVtYVN0bXRDb250ZXh0OwogCiAKQEAgLTQxMDAsNiArNDEwMSw3IEBAIHRyYW5zZm9ybUNy ZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hl bWFOYW1lKQogCWN4dC5pbmRleGVzID0gTklMOwogCWN4dC50cmlnZ2VycyA9IE5JTDsKIAljeHQu Z3JhbnRzID0gTklMOworCWN4dC52YXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIFJ1biB0aHJv dWdoIGVhY2ggc2NoZW1hIGVsZW1lbnQgaW4gdGhlIHNjaGVtYSBlbGVtZW50IGxpc3QuIFNlcGFy YXRlCkBAIC00MTY4LDYgKzQxNzAsMTUgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1l bnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJY3h0Lmdy YW50cyA9IGxhcHBlbmQoY3h0LmdyYW50cywgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNh c2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICplbHAgPSAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgZWxlbWVudDsKKworCQkJCQlzZXRT Y2hlbWFOYW1lKGN4dC5zY2hlbWFuYW1lLCAmZWxwLT52YXJpYWJsZS0+c2NoZW1hbmFtZSk7CisJ CQkJCWN4dC52YXJpYWJsZXMgPSBsYXBwZW5kKGN4dC52YXJpYWJsZXMsIGVsZW1lbnQpOworCQkJ CX0KKwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG5vZGUgdHlwZTogJWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhlbGVtZW50KSk7CkBAIC00 MTgxLDYgKzQxOTIsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAq c2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAlyZXN1bHQgPSBsaXN0X2NvbmNh dChyZXN1bHQsIGN4dC5pbmRleGVzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4 dC50cmlnZ2Vycyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuZ3JhbnRzKTsK KwlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC52YXJpYWJsZXMpOwogCiAJcmV0dXJu IHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3Jj L2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMjVmZTNkNTgwMTYuLjk5YTUxODc3ZDM0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNw YWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2luaGVyaXRzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCkBAIC0xODIsNiArMTgzLDcgQEAgQ2xhc3NpZnlVdGls aXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCQljYXNlIFRfQ3JlYXRlUmFu Z2VTdG10OgogCQljYXNlIFRfQ3JlYXRlUm9sZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTY2hlbWFT dG10OgorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFT dG10OgogCQljYXNlIFRfQ3JlYXRlU3RhdHNTdG10OgogCQljYXNlIFRfQ3JlYXRlU3RtdDoKQEAg LTEzODksNiArMTM5MSwxMCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRl LAogCQkJCX0KIAkJCQlicmVhazsKIAorCQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10Ogor CQkJCWFkZHJlc3MgPSBDcmVhdGVWYXJpYWJsZShwc3RhdGUsIChDcmVhdGVTZXNzaW9uVmFyU3Rt dCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOworCiAJCQkJLyoKIAkJCQkgKiAqKioqKioqKioq KioqIG9iamVjdCBjcmVhdGlvbiAvIGRlc3RydWN0aW9uICoqKioqKioqKioqKioqCiAJCQkJICov CkBAIC0yMzQxLDYgKzIzNDcsOSBAQCBBbHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5 cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCXRhZyA9IENNRFRB R19BTFRFUl9TVEFUSVNUSUNTOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgor CQkJdGFnID0gQ01EVEFHX0FMVEVSX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCWJyZWFrOwpAQCAtMjY0OSw2ICsyNjU4LDkgQEAg Q3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElT VElDX0VYVDoKIAkJCQkJdGFnID0gQ01EVEFHX0RST1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7 CisJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX1ZBUklB QkxFOworCQkJCQlicmVhazsKIAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9X TjsKIAkJCX0KQEAgLTMyMjUsNiArMzIzNywxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBh cnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3Rt dDoKKwkJCXRhZyA9IENNRFRBR19DUkVBVEVfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZh dWx0OgogCQkJZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJ CSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkpOwpAQCAtMzc1OSw2ICszNzc1LDEwIEBAIEdldENv bW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNl IFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFr OworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBl OiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0cmVlKSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYWNsLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5k ZXggNmE3NjU1MGE1ZTIuLjM3N2RlMGI3YzZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYWNsLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC0zMSw2ICsz MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcm9jbGFuZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxl c3BhY2UuaCIKQEAgLTEyOSw2ICsxMzAsOCBAQCBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3R5cGVf cHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVy dF9wYXJhbWV0ZXJfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90ZXh0KTsKIHN0YXRpYyBBY2xNb2Rl IGNvbnZlcnRfbGFyZ2VvYmplY3RfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90ZXh0KTsKIHN0YXRp YyBBY2xNb2RlIGNvbnZlcnRfcm9sZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7 CitzdGF0aWMgT2lkCWNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHRleHQgKnZhcm5hbWUp Oworc3RhdGljIEFjbE1vZGUgY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHRl eHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBBY2xSZXN1bHQgcGdfcm9sZV9hY2xjaGVjayhP aWQgcm9sZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUgbW9kZSk7CiAKIHN0YXRpYyB2b2lkIFJv bGVNZW1iZXJzaGlwQ2FjaGVDYWxsYmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIg aGFzaHZhbHVlKTsKQEAgLTg1MSw2ICs4NTQsMTAgQEAgYWNsZGVmYXVsdChPYmplY3RUeXBlIG9i anR5cGUsIE9pZCBvd25lcklkKQogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CiAJ CQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFr OworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklH SFRTOworCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJl YWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBl OiAlZCIsIChpbnQpIG9ianR5cGUpOwogCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7 CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTk0OCw2ICs5NTUsOSBAQCBhY2xkZWZhdWx0 X3NxbChQR19GVU5DVElPTl9BUkdTKQogCQljYXNlICdUJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1Rf VFlQRTsKIAkJCWJyZWFrOworCQljYXNlICdWJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfVkFSSUFC TEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQg b2JqZWN0IHR5cGUgYWJicmV2aWF0aW9uOiAlYyIsIG9ianR5cGVjKTsKIAl9CkBAIC01MDE2LDYg KzUwMjYsMjE3IEBAIHBnX3JvbGVfYWNsY2hlY2soT2lkIHJvbGVfb2lkLCBPaWQgcm9sZWlkLCBB Y2xNb2RlIG1vZGUpCiAJcmV0dXJuIEFDTENIRUNLX05PX1BSSVY7CiB9CiAKKy8qCisgKiBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgdmFyaWFudHMKKyAqCQlUaGVzZSBhcmUgYWxsIG5h bWVkICJoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UiIGF0IHRoZSBTUUwgbGV2ZWwuCisg KgkJVGhleSB0YWtlIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHZhcmlhYmxlIG5hbWUsIHZhcmlh YmxlIE9JRCwKKyAqCQl1c2VyIG5hbWUsIHVzZXIgT0lELCBvciBpbXBsaWNpdCB1c2VyID0gY3Vy cmVudF91c2VyLgorICoKKyAqCQlUaGUgcmVzdWx0IGlzIGEgYm9vbGVhbiB2YWx1ZTogdHJ1ZSBp ZiB1c2VyIGhhcyB0aGUgaW5kaWNhdGVkCisgKgkJcHJpdmlsZWdlLCBmYWxzZSBpZiBub3QsIG9y IE5VTEwgaWYgc2Vzc2lvbiB2YXJpYWJsZSBkb2Vzbid0CisgKgkJZXhpc3RzLgorICovCisKKy8q CisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lCisgKgkJQ2hlY2sg dXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCW5hbWUgdXNl cm5hbWUsIHRleHQgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisg Ki8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJTmFtZQkJcm9sZW5hbWUgPSBQR19HRVRBUkdfTkFNRSgwKTsKKwl0 ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4dAkgICAqcHJpdl90 eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJ dmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlz X21pc3NpbmcgPSBmYWxzZTsKKworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFt ZVN0cigqcm9sZW5hbWUpKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZf c3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJ JmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisK KwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICog aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZp bGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJdGV4dCBzZXNzaW9uIHZhcmlh YmxlIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICov CitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWUoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMCk7CisJdGV4 dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xl aWQ7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0 OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOwor CW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3Rl eHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisK KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlQ R19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZp bGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJbmFtZSB1c2VuYW1lLCBzZXNz aW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlO YW1lCQl1c2VybmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VU QVJHX09JRCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQ KDIpOworCU9pZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1 bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lk X29yX3B1YmxpYyhOYW1lU3RyKCp1c2VybmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25f dmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9s ZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJ CVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hF Q0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkCisg KgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJ CXNlc3Npb24gdmFyaWFibGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKgkJY3VycmVudF91 c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZV9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgw KTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9p ZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9v bAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9 IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisK KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlp ZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFj bHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2VfaWRfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Np b24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlyb2xlaWQsIHRleHQgc2Vzc2lvbiB2YXJpYWJsZSBuYW1l LCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2VfaWRfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBH X0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAqdmFybmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDEp OworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJT2lk CQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJ CWlzX21pc3NpbmcgPSBmYWxzZTsKKworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVf cHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodmFybmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0 KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJ CQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8q CisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQKKyAqCQlDaGVjayB1c2Vy IHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJcm9sZWlkLCBzZXNz aW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lk CQkJcm9sZWlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19P SUQoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsK KwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2lu ZyA9IGZhbHNlOworCisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmlu Zyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZh cmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJ CQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsK KworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisg KiBHaXZlbiBhIHNlc3Npb24gdmFyaWFibGUgbmFtZSBleHByZXNzZWQgYXMgYSBzdHJpbmcsIGxv b2sgaXQgdXAgYW5kIHJldHVybgorICogT2lkCisgKi8KK3N0YXRpYyBPaWQKK2NvbnZlcnRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHRleHQgKnZhcm5hbWUpCit7CisJcmV0dXJuIExvb2t1cFZhcmlh YmxlRnJvbU5hbWVMaXN0KHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHZhcm5hbWUpLCB0cnVlKTsK K30KKworLyoKKyAqIGNvbnZlcnRfdmFyaWFibGVfcHJpdl9zdHJpbmcKKyAqCQlDb252ZXJ0IHRl eHQgc3RyaW5nIHRvIEFjbE1vZGUgdmFsdWUuCisgKi8KK3N0YXRpYyBBY2xNb2RlCitjb252ZXJ0 X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpCit7CisJ c3RhdGljIGNvbnN0IHByaXZfbWFwIHNlc3Npb25fdmFyaWFibGVfcHJpdl9tYXBbXSA9IHsKKwkJ eyJTRUxFQ1QiLCBBQ0xfU0VMRUNUfSwKKwkJeyJTRUxFQ1QgV0lUSCBHUkFOVCBPUFRJT04iLCBB Q0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfU0VMRUNUKX0sCisJCXsiVVBEQVRFIiwgQUNMX1VQREFU RX0sCisJCXsiVVBEQVRFIFdJVEggR1JBTlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1Io QUNMX1VQREFURSl9LAorCQl7TlVMTCwgMH0KKwl9OworCisJcmV0dXJuIGNvbnZlcnRfYW55X3By aXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0LCBzZXNzaW9uX3ZhcmlhYmxlX3ByaXZfbWFwKTsKK30K IAogLyoKICAqIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIChjYWxsZWQgYnkgSW5pdFBvc3RncmVz KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCBiY2ZhNWNiNGFkZC4uZjE5Yjhi ZDRkYzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zOSw2ICszOSw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RyYW5zZm9ybS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRl ICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgpAQCAtMzc0MSwz ICszNzQyLDExNSBAQCBnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Np bmdfb2spCiAKIAlyZXR1cm4gc3VibmFtZTsKIH0KKworLyoJCQkJLS0tLS0tLS0tLSBQR19WQVJJ QUJMRSBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLworCisvKgorICogZ2V0X3Zhcm5hbWVfdmFyaWQK KyAqCQlHaXZlbiBuYW1lIGFuZCBuYW1lc3BhY2Ugb2YgdmFyaWFibGUsIGxvb2sgdXAgdGhlIE9J RC4KKyAqLworT2lkCitnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQg dmFybmFtZXNwYWNlKQoreworCXJldHVybiBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQ LCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1l KSwKKwkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0odmFybmFtZXNwYWNlKSk7Cit9CisKKy8qCisg KiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJUmV0dXJucyBhIHBhbGxvYydkIGNvcHkg b2YgdGhlIG5hbWUgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitjaGFyICoKK2dl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJ Rm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisKKwl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwor CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAo Rm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lID0gcHN0cmR1cChO YW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJ cmV0dXJuIHZhcm5hbWU7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3Bh Y2UKKyAqCQlSZXR1cm5zIHRoZSBwZ19uYW1lc3BhY2UgT0lEIGFzc29jaWF0ZWQgd2l0aCBhIGdp dmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUg dmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3BhY2U7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEo VkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFy aWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNU UlVDVCh0dXApOworCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFybmFtZXNwYWNlOworCisJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZXNwYWNlOworfQorCisvKgor ICogUmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor T2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJ dHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJ0eXBlOworCisJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7 CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFydHlwZSA9IHZhcmZv cm0tPnZhcnR5cGU7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJ0eXBl OworfQorCisvKgorICogUmV0dXJucyB0aGUgdHlwZSwgdHlwbW9kIGFuZCBjb2xsaWQgb2YgdGhl IGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3ZvaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxl X3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFyaWQsIE9pZCAqdHlwaWQsIGludDMyICp0eXBtb2Qs CisJCQkJCQkJCQkJT2lkICpjb2xsaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zh cmlhYmxlIHZhcmZvcm07CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9i amVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQor CQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAl dSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1 cCk7CisKKwkqdHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCSp0eXBtb2QgPSB2YXJmb3JtLT52 YXJ0eXBtb2Q7CisJKmNvbGxpZCA9IHZhcmZvcm0tPnZhcmNvbGxhdGlvbjsKKworCVJlbGVhc2VT eXNDYWNoZSh0dXApOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jIGIv c3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCmluZGV4IDU2YjZjMzY4YWNmLi5iYTZiMTlkYzlhZiAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9jb21tb24uYwpAQCAtMjQ2LDYgKzI0Niw5IEBAIGdldFNjaGVtYURhdGEoQXJjaGl2ZSAqZm91 dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9nX2luZm8oInJlYWRpbmcgc3Vic2NyaXB0aW9u IG1lbWJlcnNoaXAgb2YgdGFibGVzIik7CiAJZ2V0U3Vic2NyaXB0aW9uVGFibGVzKGZvdXQpOwog CisJcGdfbG9nX2luZm8oInJlYWRpbmcgdmFyaWFibGVzIik7CisJZ2V0VmFyaWFibGVzKGZvdXQp OworCiAJZnJlZShpbmhpbmZvKTsJCQkJLyogbm90IG5lZWRlZCBhbnkgbG9uZ2VyICovCiAKIAkq bnVtVGFibGVzUHRyID0gbnVtVGFibGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2R1 bXB1dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCmluZGV4IDVhZTc3Zjc2MzY3 Li41MTYxZWU3ODBlYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYwpAQCAtNTExLDYgKzUxMSwxMiBAQCBkbyB7 IFwKIAkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOwogCQlDT05WRVJUX1BSSVYoJ3cnLCAi VVBEQVRFIik7CiAJfQorCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8 CisJCQkgc3RyY21wKHR5cGUsICJWQVJJQUJMRVMiKSA9PSAwKQorCXsKKwkJQ09OVkVSVF9QUklW KCdyJywgIlNFTEVDVCIpOworCQlDT05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CisJfQogCWVs c2UKIAkJYWJvcnQoKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5o IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGYwZjE5YmIwYjI5Li40NGVlZDAz YTJmZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMTMyLDEyICsxMzIsMTQgQEAgdHlwZWRlZiBzdHJ1 Y3QgX3Jlc3RvcmVPcHRpb25zCiAJaW50CQkJc2VsRnVuY3Rpb247CiAJaW50CQkJc2VsVHJpZ2dl cjsKIAlpbnQJCQlzZWxUYWJsZTsKKwlpbnQJCQlzZWxWYXJpYWJsZTsKIAlTaW1wbGVTdHJpbmdM aXN0IGluZGV4TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBmdW5jdGlvbk5hbWVzOwogCVNpbXBs ZVN0cmluZ0xpc3Qgc2NoZW1hTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFFeGNsdWRl TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0cmlnZ2VyTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlz dCB0YWJsZU5hbWVzOworCVNpbXBsZVN0cmluZ0xpc3QgdmFyaWFibGVOYW1lczsKIAogCWludAkJ CXVzZURCOwogCUNvbm5QYXJhbXMJY3BhcmFtczsJCS8qIHBhcmFtZXRlcnMgdG8gdXNlIGlmIHVz ZURCICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMg Yi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXggYjlkN2FiOThjM2Uu LmQ1MzMzNDVlYTk4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hp dmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC0zMTAz LDYgKzMxMDMsMTQgQEAgX3RvY0VudHJ5UmVxdWlyZWQoVG9jRW50cnkgKnRlLCB0ZVNlY3Rpb24g Y3VyU2VjdGlvbiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCQkJCSFzaW1wbGVfc3RyaW5nX2xpc3Rf bWVtYmVyKCZyb3B0LT50cmlnZ2VyTmFtZXMsIHRlLT50YWcpKQogCQkJCQlyZXR1cm4gMDsKIAkJ CX0KKwkJCWVsc2UgaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlZBUklBQkxFIikgPT0gMCkKKwkJCXsK KwkJCQlpZiAoIXJvcHQtPnNlbFZhcmlhYmxlKQorCQkJCQlyZXR1cm4gMDsKKwkJCQlpZiAocm9w dC0+dmFyaWFibGVOYW1lcy5oZWFkICE9IE5VTEwgJiYKKwkJCQkJIXNpbXBsZV9zdHJpbmdfbGlz dF9tZW1iZXIoJnJvcHQtPnZhcmlhYmxlTmFtZXMsIHRlLT50YWcpKQorCQkJCQlyZXR1cm4gMDsK KwkJCX0KIAkJCWVsc2UKIAkJCQlyZXR1cm4gMDsKIAkJfQpAQCAtMzY1Miw2ICszNjYwLDcgQEAg X2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgVG9jRW50cnkgKnRl KQogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIERJQ1RJT05BUlkiKSA9PSAwIHx8CiAJCXN0 cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiIpID09IDAgfHwKIAkJc3RyY21w KHR5cGUsICJUWVBFIikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwgIlZBUklBQkxFIikgPT0gMCB8 fAogCQlzdHJjbXAodHlwZSwgIlZJRVciKSA9PSAwIHx8CiAJLyogbm9uLXNjaGVtYS1zcGVjaWZp ZWQgb2JqZWN0cyAqLwogCQlzdHJjbXAodHlwZSwgIkRBVEFCQVNFIikgPT0gMCB8fApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKaW5kZXggY2ExNWI0MDkzOWMuLjhmOGYxMTg1ZjE2IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTM2NCw2 ICszNjQsNyBAQCBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb24oQXJjaGl2ZSAqZm91dCwgY29u c3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlv blRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8p Owogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJz Y3JpcHRpb25JbmZvICpzdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBTdWJzY3JpcHRpb25UYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJSZWxJbmZvICpzdWJyaW5mbyk7CitzdGF0aWMgdm9p ZCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZv KTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZShBcmNoaXZlICpmb3V0KTsKIHN0YXRpYyB2b2lk IGR1bXBEYXRhYmFzZUNvbmZpZyhBcmNoaXZlICpBSCwgUFFFeHBCdWZmZXIgb3V0YnVmLAogCQkJ CQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSwgT2lkIGRib2lkKTsKQEAgLTU0MjEsNiArNTQyMiwx ODggQEAgZ2V0X25leHRfcG9zc2libGVfZnJlZV9wZ190eXBlX29pZChBcmNoaXZlICpmb3V0LCBQ UUV4cEJ1ZmZlciB1cGdyYWRlX3F1ZXJ5KQogCXJldHVybiBuZXh0X3Bvc3NpYmxlX2ZyZWVfb2lk OwogfQogCisvKgorICogZ2V0VmFyaWFibGVzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCB2 YXJpYWJsZXMKKyAqLwordm9pZAorZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCit7CisJUFFF eHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCVZhcmlhYmxlSW5mbyAqdmFyaW5m bzsKKwlpbnQJCQlpX3RhYmxlb2lkOworCWludAkJCWlfb2lkOworCWludAkJCWlfdmFybmFtZTsK KwlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKKwlpbnQJCQlpX3ZhcnR5cGU7CisJaW50CQkJaV92YXJ0 eXBuYW1lOworCWludAkJCWlfdmFyb3duZXI7CisJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50 CQkJaV92YXJhY2w7CisJaW50CQkJaV9hY2xkZWZhdWx0OworCWludAkJCWksCisJCQkJbnR1cHM7 CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE4MDAwMCkKKwkJcmV0dXJuOworCisJcXVl cnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJLyogZ2V0IHRoZSB2YXJpYWJsZXMgaW4gY3Vy cmVudCBkYXRhYmFzZSAqLworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxF Q1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFy bmFtZXNwYWNlLCB2LnZhcnR5cGUsXG4iCisJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLmZvcm1h dF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCisJCQkJCSAg IiAgICAgICBDQVNFIFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgorCQkJ CQkgICIgICAgICAgICAgICBUSEVOIHYudmFyY29sbGF0aW9uXG4iCisJCQkJCSAgIiAgICAgICAg ICAgIEVMU0UgMFxuIgorCQkJCQkgICIgICAgICAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJ CQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgorCQkJCQkgICIgICAgICAgYWNs ZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKKwkJCQkJICAiRlJPTSBw Z19jYXRhbG9nLnBnX3ZhcmlhYmxlIHZcbiIKKwkJCQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX3R5 cGUgdCAiCisJCQkJCSAgIk9OICh2LnZhcnR5cGUgPSB0Lm9pZCkiKTsKKworCXJlcyA9IEV4ZWN1 dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBz ID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxl b2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7CisJaV92YXJuYW1lID0gUFFm bnVtYmVyKHJlcywgInZhcm5hbWUiKTsKKwlpX3Zhcm5hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMs ICJ2YXJuYW1lc3BhY2UiKTsKKwlpX3ZhcnR5cGUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwZSIp OworCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBuYW1lIik7CisJaV92YXJj b2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CisKKwlpX3Zhcm93bmVy ID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CisJaV92YXJhY2wgPSBQUWZudW1iZXIocmVz LCAidmFyYWNsIik7CisJaV9hY2xkZWZhdWx0ID0gUFFmbnVtYmVyKHJlcywgImFjbGRlZmF1bHQi KTsKKworCXZhcmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoVmFyaWFibGVJbmZvKSk7 CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJCVR5cGVJbmZvICAgKnZ0eXBl OworCisJCXZhcmluZm9baV0uZG9iai5vYmpUeXBlID0gRE9fVkFSSUFCTEU7CisJCXZhcmluZm9b aV0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlf dGFibGVvaWQpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZh bHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZ2YXJpbmZvW2ldLmRvYmopOwor CQl2YXJpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJuYW1lKSk7CisJCXZhcmluZm9baV0uZG9iai5uYW1lc3BhY2UgPQorCQkJZmluZE5hbWVzcGFj ZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZXNwYWNlKSkpOworCisJCXZhcmlu Zm9baV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBlKSk7CisJ CXZhcmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJ0eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOworCisJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7CisJCXZhcmluZm9baV0uZGFj bC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQp KTsKKwkJdmFyaW5mb1tpXS5kYWNsLnByaXZ0eXBlID0gMDsKKwkJdmFyaW5mb1tpXS5kYWNsLmlu aXRwcml2cyA9IE5VTEw7CisJCXZhcmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3Zhcm93bmVyKSk7CisKKwkJLyogZG8gbm90IHRyeSB0byBkdW1wIEFD TCBpZiBubyBBQ0wgZXhpc3RzICovCisJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3ZhcmFj bCkpCisJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7 CisKKwkJaWYgKHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09IDApCisJCQlwZ19sb2dfd2Fy bmluZygib3duZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMgdG8gYmUgaW52YWxpZCIsCisJ CQkJCQkgICB2YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyogZGVjaWRlIHdoZXRoZXIgd2Ug d2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYodmFyaW5mb1tpXS5k b2JqKSwgZm91dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lkKHZhcmluZm9baV0udmFydHlw ZSk7CisJCWFkZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0uZG9iaiwgdnR5cGUtPmRvYmou ZHVtcElkKTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5 KTsKK30KKworLyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9m IHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyB2b2lkCitkdW1wVmFyaWFi bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQoreworCUR1bXBP cHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFFeHBC dWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJY29uc3QgY2hhciAqdmFydHlw bmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBza2lwIGlmIG5vdCB0byBiZSBkdW1w ZWQgKi8KKwlpZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCAhZG9wdC0+ZHVtcFNjaGVtYSkKKwkJ cmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQ UUV4cEJ1ZmZlcigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVt cGFibGUodmFyaW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZh cmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKworCWFwcGVuZFBRRXhwQnVmZmVy KGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBxdWFsdmFybmFtZSk7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCisJCQkJ CSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0 aW9uKSkKKwl7CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29sbCA9IGZpbmRDb2xsYXRpb25C eU9pZCh2YXJjb2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiIENPTExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkp OworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xuIik7CisKKwlpZiAodmFyaW5m by0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5 KGZvdXQsIHZhcmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRvYmouZHVtcElkLAorCQkJCQkg QVJDSElWRV9PUFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm5hbWVz cGFjZSA9IHZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93 bmVyID0gdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiVkFSSUFC TEUiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwKKwkJCQkJCQkJICAu Y3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9wU3RtdCA9IGRlbHEtPmRh dGEpKTsKKworCS8qIGR1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIlZBUklB QkxFIiwgcXVhbHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCXZh cmluZm8tPmRvYmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVtcElkKTsKKworCS8qIGR1bXAg QUNMIGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9B Q0wpCisJeworCQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1cChmbXRJZCh2YXJpbmZvLT5k b2JqLm5hbWUpKTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8tPmRvYmouZHVtcElkLCBJbnZh bGlkRHVtcElkLCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBOVUxMLAorCQkJCXZhcmluZm8t PmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJ JnZhcmluZm8tPmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOworCX0KKworCWRlc3Ryb3lQUUV4 cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCisJZnJlZShxdWFs dmFybmFtZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBncmFkZV9zZXRfdHlwZV9vaWRz X2J5X3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJIFBRRXhwQnVmZmVyIHVwZ3Jh ZGVfYnVmZmVyLApAQCAtMTA3NDYsNiArMTA5MjksOSBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJj aGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fU1VCU0NSSVBUSU9O X1JFTDoKIAkJCWR1bXBTdWJzY3JpcHRpb25UYWJsZShmb3V0LCAoY29uc3QgU3ViUmVsSW5mbyAq KSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJZHVtcFZhcmlhYmxl KGZvdXQsIChWYXJpYWJsZUluZm8gKikgZG9iaik7CisJCQlicmVhazsKIAkJY2FzZSBET19QUkVf REFUQV9CT1VOREFSWToKIAkJY2FzZSBET19QT1NUX0RBVEFfQk9VTkRBUlk6CiAJCQkvKiBuZXZl ciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8gKi8KQEAgLTE1MTk3LDYgKzE1MzgzLDkgQEAgZHVtcERl ZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFDTEluZm8gKmRhY2xpbmZvKQog CQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQl0eXBlID0gIlNDSEVNQVMiOwogCQkJYnJl YWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJdHlwZSA9ICJWQVJJQUJMRVMiOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCXBn X2ZhdGFsKCJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgaW4gZGVmYXVsdCBwcml2aWxlZ2VzOiAl ZCIsCkBAIC0xODkxOSw2ICsxOTEwOCw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBh YmxlT2JqZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19DT05WRVJTSU9OOgog CQkJY2FzZSBET19UQUJMRToKIAkJCWNhc2UgRE9fVEFCTEVfQVRUQUNIOgorCQkJY2FzZSBET19W QVJJQUJMRToKIAkJCWNhc2UgRE9fQVRUUkRFRjoKIAkJCWNhc2UgRE9fUFJPQ0xBTkc6CiAJCQlj YXNlIERPX0NBU1Q6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA3MTM5Yzg4YTY5YS4uMTI1Mzg0Y2YzZjAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaApAQCAtNTMsNiArNTMsNyBAQCB0eXBlZGVmIGVudW0KIAlET19UQUJMRSwKIAlE T19UQUJMRV9BVFRBQ0gsCiAJRE9fQVRUUkRFRiwKKwlET19WQVJJQUJMRSwKIAlET19JTkRFWCwK IAlET19JTkRFWF9BVFRBQ0gsCiAJRE9fU1RBVFNFWFQsCkBAIC03MDgsNiArNzA5LDE5IEBAIHR5 cGVkZWYgc3RydWN0IF9TdWJSZWxJbmZvCiAJY2hhcgkgICAqc3JzdWJsc247CiB9IFN1YlJlbElu Zm87CiAKKy8qCisgKiBUaGUgVmFyaWFibGVJbmZvIHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2Vu dCBzZXNzaW9uIHZhcmlhYmxlcworICovCit0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCit7 CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwlEdW1wYWJsZUFjbCBkYWNsOworCU9pZAkJCXZhcnR5 cGU7CisJY2hhcgkgICAqdmFydHlwbmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisJY29uc3Qg Y2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLworfSBW YXJpYWJsZUluZm87CisKIC8qCiAgKgljb21tb24gdXRpbGl0eSBmdW5jdGlvbnMKICAqLwpAQCAt NzkxLDUgKzgwNSw2IEBAIGV4dGVybiB2b2lkIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUg KmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sCiAJCQkJCQkJCSBpbnQgbnVtVGFibGVzKTsKIGV4 dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gdm9pZCBn ZXRTdWJzY3JpcHRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRWYXJp YWJsZXMoQXJjaGl2ZSAqZm91dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19EVU1QX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wX3NvcnQuYwppbmRleCBkYzlhMjg5MjRiZC4uODQyOTczZjExMjggMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMKQEAgLTc3LDYgKzc3LDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0 aWVzCiAJUFJJT19EVU1NWV9UWVBFLAogCVBSSU9fQVRUUkRFRiwKIAlQUklPX0xBUkdFX09CSkVD VCwKKwlQUklPX1ZBUklBQkxFLAogCVBSSU9fUFJFX0RBVEFfQk9VTkRBUlksCQkvKiBib3VuZGFy eSEgKi8KIAlQUklPX1RBQkxFX0RBVEEsCiAJUFJJT19TRVFVRU5DRV9TRVQsCkBAIC0xMTgsNiAr MTE5LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlbRE9f VEFCTEVdID0gUFJJT19UQUJMRSwKIAlbRE9fVEFCTEVfQVRUQUNIXSA9IFBSSU9fVEFCTEVfQVRU QUNILAogCVtET19BVFRSREVGXSA9IFBSSU9fQVRUUkRFRiwKKwlbRE9fVkFSSUFCTEVdID0gUFJJ T19WQVJJQUJMRSwKIAlbRE9fSU5ERVhdID0gUFJJT19JTkRFWCwKIAlbRE9fSU5ERVhfQVRUQUNI XSA9IFBSSU9fSU5ERVhfQVRUQUNILAogCVtET19TVEFUU0VYVF0gPSBQUklPX1NUQVRTRVhULApA QCAtMTUwMCw2ICsxNTAyLDEwIEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmpl Y3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJQT1NULURBVEEgQk9VTkRB UlkgIChJRCAlZCkiLAogCQkJCQkgb2JqLT5kdW1wSWQpOwogCQkJcmV0dXJuOworCQljYXNlIERP X1ZBUklBQkxFOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlZBUklBQkxFICVz ICAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNh dElkLm9pZCk7CiAJfQogCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCXNucHJpbnRmKGJ1Ziwg YnVmc2l6ZSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggYmM1ZDkyMjJhMjAuLmI4NGRj ZjBjYWI5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysg Yi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtODU0LDYgKzg1NCwxNiBAQCBt eSAldGVzdHMgPSAoCiAJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCiAJICB9LAogCisJ J0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xl IEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDJworCSAgPT4geworCQljcmVhdGVf b3JkZXIgPT4gNTYsCisJCWNyZWF0ZV9zcWwgICA9PiAnQUxURVIgREVGQVVMVCBQUklWSUxFR0VT IEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF UyBUTyBQVUJMSUM7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQUxURVIgREVGQVVMVCBQUklW SUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFUyBUTyBQVUJMSUM7XEUveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9u X3Bvc3RfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAorCSAg fSwKKwogCSdBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUnID0+IHsKIAkJcmVnZXhw ID0+IHFyL14KIAkJCVxRQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIFdJVEggXEUK QEAgLTE3MzksNiArMTc0OSwyMyBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDT01N RU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVy ID0+IDcxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0 LnZhcmlhYmxlMQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gdmFyaWFibGVcJzsnLAorCQlyZWdl eHAgPT4KKwkJICBxci9eXFFDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEg SVMgJ2NvbW1lbnQgb24gdmFyaWFibGUnO1xFL20sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVu cywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhICAgICA9 PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+ IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NP UFkgdGVzdF90YWJsZScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNCwKIAkJY3JlYXRlX3NxbCA9 PiAnSU5TRVJUIElOVE8gZHVtcF90ZXN0LnRlc3RfdGFibGUgKGNvbDEpICcKQEAgLTQwMDksNiAr NDAzNiwyNCBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUg dGVzdF92YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAg ID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVh dGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVn ZXI7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52 YXJpYWJsZTEgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAor CQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJ fSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJ b25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklF VyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CkBAIC00NDcxLDYgKzQ1MTYsMjUgQEAg bXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDczLAor CQljcmVhdGVfc3FsID0+CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3Qu dmFyaWFibGUxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14K KwkJCVxRR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVn cmVzc19kdW1wX3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1 bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAx LAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEs CisJCQlub19wcml2cyAgICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJl bWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBt YXR2aWV3JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVX IGR1bXBfdGVzdC5tYXR2aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDI2ZGZkZGUxOTVh Li42Yjg3MGUyZmM2MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9z cmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC0xMDk3LDYgKzEwOTcsOSBAQCBleGVjX2NvbW1hbmRf ZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hh ciAqY21kKQogCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6CQkJ LyogVmFyaWFibGVzICovCisJCQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwgc2hv d192ZXJib3NlKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMgKi8K IAkJCQlpZiAoc2hvd192ZXJib3NlKQogCQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNvbnRl bnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzYjdiYTY2ZmFkMC4uNTc2YWM5ODZlZjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCkBAIC0xMjIyLDcgKzEyMjIsNyBAQCBsaXN0RGVmYXVsdEFDTHMoY29uc3QgY2hhciAqcGF0 dGVybikKIAlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxv Zy5wZ19nZXRfdXNlcmJ5aWQoZC5kZWZhY2xyb2xlKSBBUyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg bi5uc3BuYW1lIEFTIFwiJXNcIixcbiIKLQkJCQkJICAiICBDQVNFIGQuZGVmYWNsb2JqdHlwZSBX SEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVz JyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgRU5EIEFTIFwiJXNcIixc biIKKwkJCQkJICAiICBDQVNFIGQuZGVmYWNsb2JqdHlwZSBXSEVOICclYycgVEhFTiAnJXMnIFdI RU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMn IFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBFTkQgQVMgXCIlc1wiLFxu IgogCQkJCQkgICIgICIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAogCQkJCQkgIGdl dHRleHRfbm9vcCgiU2NoZW1hIiksCkBAIC0xMjM2LDYgKzEyMzYsOCBAQCBsaXN0RGVmYXVsdEFD THMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJICBnZXR0ZXh0X25vb3AoInR5cGUiKSwKIAkJ CQkJICBERUZBQ0xPQkpfTkFNRVNQQUNFLAogCQkJCQkgIGdldHRleHRfbm9vcCgic2NoZW1hIiks CisJCQkJCSAgREVGQUNMT0JKX1ZBUklBQkxFLAorCQkJCQkgIGdldHRleHRfbm9vcCgic2Vzc2lv biB2YXJpYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpKTsKIAogCXByaW50QUNM Q29sdW1uKCZidWYsICJkLmRlZmFjbGFjbCIpOwpAQCAtNTMxOCw2ICs1MzIwLDEwMiBAQCBlcnJv cl9yZXR1cm46CiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICogXGRWCisgKgorICogbGlzdFZh cmlhYmxlcygpCisgKi8KK2Jvb2wKK2xpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwg Ym9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVz OworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisJc3RhdGljIGNvbnN0IGJvb2wg dHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZX07CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKKwl7CisJCWNo YXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAl cykgZG9lcyBub3Qgc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcy4iLAorCQkJCQkgZm9ybWF0UEdW ZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYs IHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZm ZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1Qgbi5u c3BuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZhcm5hbWUgYXMgXCIlc1wiLFxuIgor CQkJCQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkg YXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFs b2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgorCQkJCQkgICIgICBX SEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYu dmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIg IHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIlxuIiwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIp LAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQ29s bGF0aW9uIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpKTsKKworCWlmICh2ZXJib3Nl KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgIik7CisJCXByaW50QUNM Q29sdW1uKCZidWYsICJ2LnZhcmFjbCIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJ CQkJICAiLFxuICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbih2Lm9pZCwgJ3BnX3ZhcmlhYmxl JykgQVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlvbiIpKTsKKwl9 CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0YWxv Zy5wZ192YXJpYWJsZSB2IgorCQkJCQkJICJcbiAgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdf bmFtZXNwYWNlIG4gT04gbi5vaWQgPSB2LnZhcm5hbWVzcGFjZSIpOworCisJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIlxuV0hFUkUgdHJ1ZVxuIik7CisJaWYgKCFwYXR0ZXJuKQorCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiICAgICAgQU5EIG4ubnNwbmFtZSA8PiAncGdfY2F0YWxv ZydcbiIKKwkJCQkJCQkgIiAgICAgIEFORCBuLm5zcG5hbWUgPD4gJ2luZm9ybWF0aW9uX3NjaGVt YSdcbiIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIHRy dWUsIGZhbHNlLAorCQkJCQkJCQkibi5uc3BuYW1lIiwgInYudmFybmFtZSIsIE5VTEwsCisJCQkJ CQkJCSJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkJCQkJCQkJ TlVMTCwgMykpCisJCXJldHVybiBmYWxzZTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICJPUkRFUiBCWSAxLDI7Iik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBR RXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAq IE1vc3QgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgY29udGVudCB0byBwcmludCBhbiBlbXB0 eSB0YWJsZSB3aGVuCisJICogdGhlcmUgYXJlIG5vIG1hdGNoaW5nIG9iamVjdHMuICBXZSBpbnRl bnRpb25hbGx5IGRldmlhdGUgZnJvbSB0aGF0CisJICogaGVyZSwgYnV0IG9ubHkgaW4gIXF1aWV0 IG1vZGUsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuCisJICovCisJaWYgKFBRbnR1cGxlcyhyZXMp ID09IDAgJiYgIXBzZXQucXVpZXQpCisJeworCQlpZiAocGF0dGVybikKKwkJCXBnX2xvZ19lcnJv cigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlIG5hbWVkIFwiJXNcIi4iLAorCQkJ CQkJIHBhdHRlcm4pOworCQllbHNlCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkg c2Vzc2lvbiB2YXJpYWJsZXMuIik7CisJfQorCWVsc2UKKwl7CisJCW15b3B0Lm51bGxQcmludCA9 IE5VTEw7CisJCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB2YXJpYWJsZXMiKTsKKwkJbXlvcHQu dHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJh bnNsYXRlX2NvbHVtbnM7CisJCW15b3B0Lm5fdHJhbnNsYXRlX2NvbHVtbnMgPSBsZW5ndGhvZih0 cmFuc2xhdGVfY29sdW1ucyk7CisKKwkJcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVy eUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCX0KKworCVBRY2xlYXIocmVzKTsKKwlyZXR1 cm4gdHJ1ZTsKK30KIAogLyoKICAqIFxkRnAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggMThlY2FhNjA5NDkuLjU1Y2Vk NGFhYjdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQgKzE0OSw3IEBAIGV4dGVybiBib29sIGxpc3RPcEZh bWlseUZ1bmN0aW9ucyhjb25zdCBjaGFyICphY2Nlc3NfbWV0aG9kX3BhdHRlcm4sCiAvKiBcZGwg b3IgXGxvX2xpc3QgKi8KIGV4dGVybiBib29sIGxpc3RMYXJnZU9iamVjdHMoYm9vbCB2ZXJib3Nl KTsKIAorLyogXGRWICovCitleHRlcm4gYm9vbCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmFyYm9zZSk7CisKICNlbmRpZgkJCQkJCQkvKiBERVNDUklCRV9IICovCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRl eCBkYThlMWFkZTVkZi4uOWEwMmEwOTg2ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxw LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjY2LDYgKzI2Niw3IEBAIHNsYXNoVXNh Z2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZFRbU3grXSBbUEFUVEVS Tl0gICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAoIiAgXFxkdVtTeCtdIFtQQVRURVJO XSAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxkdltTeCtdIFtQQVRURVJOXSAgICAg bGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkVlt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBz ZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxkeFt4K10gIFtQQVRURVJOXSAgICAg bGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRYW3hdICAgW1BBVFRFUk5dICAgICBs aXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAwKCIgIFxcZHlbeCtdICBbUEFUVEVS Tl0gICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IGE5YTgxYWIzYzE0Li5jNmExYmIwOWYzZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtOTcw LDYgKzk3MCwxMyBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX3RyaWdnZXJf b2ZfdGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9ICJjMS5yZWxuYW1lc3BhY2UiLAogfTsKIAor c3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyA9IHsK KwkubWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAwLAorCS5jYXRuYW1lID0gInBnX2NhdGFsb2cu cGdfdmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlvbiA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxl X2lzX3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNwYWNlID0gInYudmFybmFtZXNwYWNlIiwKKwku cmVzdWx0ID0gInYudmFybmFtZSIsCit9OwogCiAvKgogICogUXVlcmllcyB0byBnZXQgbGlzdHMg b2YgbmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0aGluZ3MsIHBvc3NpYmx5CkBAIC0xMzA0LDYg KzEzMTEsNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVb XSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlVTRVIiLCBRdWVy eV9mb3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5d29yZHNfZm9yX3VzZXJfdGhpbmd9 LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEwsIE5VTEx9LAorCXsiVkFSSUFCTEUi LCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzfSwKIAl7IlZJRVciLCBO VUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9LAogCXtOVUxMfQkJCQkJCS8qIGVu ZCBvZiBsaXN0ICovCiB9OwpAQCAtMTg2OSw3ICsxODc3LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNv bnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxcZEYiLCAiXFxkRmQiLCAi XFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRt IiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQ dCIsCiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxkUnMiLCAiXFxkUnAiLCAiXFxkcyIsCi0JCSJc XGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIsICJcXGR5IiwKKwkJ IlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLCAi XFxkViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0IiwgIlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIs ICJcXGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAiXFxlcnJ2ZXJib3NlIiwgIlxcZXYiLAogCQki XFxmIiwKQEAgLTI1NjAsNiArMjU2OCw5IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCQkJCQkJCQkJCSAgIkFMTCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwg IlNZU1RFTSIsICJTRVQiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIlRPIik7CisJLyog QUxURVIgVkFSSUFCTEUgPG5hbWU+ICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIFRPIiwgIlJFTkFNRSBU TyIsICJTRVQgU0NIRU1BIik7CiAJLyogQUxURVIgVklFVyA8bmFtZT4gKi8KIAllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJWSUVXIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBTFRF UiBDT0xVTU4iLCAiT1dORVIgVE8iLCAiUkVOQU1FIiwgIlJFU0VUIiwgIlNFVCIpOwpAQCAtMzE0 MCw3ICszMTUxLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJ CSAgIlJPVVRJTkUiLCAiUlVMRSIsICJTQ0hFTUEiLCAiU0VRVUVOQ0UiLCAiU0VSVkVSIiwKIAkJ CQkJICAiU1RBVElTVElDUyIsICJTVUJTQ1JJUFRJT04iLCAiVEFCTEUiLAogCQkJCQkgICJUQUJM RVNQQUNFIiwgIlRFWFQgU0VBUkNIIiwgIlRSQU5TRk9STSBGT1IiLAotCQkJCQkgICJUUklHR0VS IiwgIlRZUEUiLCAiVklFVyIpOworCQkJCQkgICJUUklHR0VSIiwgIlRZUEUiLCAiVkFSSUFCTEUi LCAiVklFVyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiQUNDRVNTIiwg Ik1FVEhPRCIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2FjY2Vz c19tZXRob2RzKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwgIkNPTlNUUkFJ TlQiKSkKQEAgLTM5NTAsNiArMzk2MSwxMyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0 dGVybl9pZCwKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIj0iLCBNYXRjaEFueUV4Y2VwdCgiKiki KSkpCiAJCQlDT01QTEVURV9XSVRIKCIsIiwgIikiKTsKIAl9CisvKiBDUkVBVEUgVkFSSUFCTEUg LS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAq LworCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLworCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBM RVRFX1dJVEgoIkFTIik7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hB bnksICJBUyIpKQorCQkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMg dHlwZXMgKi8KKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf ZGF0YXR5cGVzKTsKIAogLyogQ1JFQVRFIFZJRVcgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFU RSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFURSBbIE9S IFJFUExBQ0UgXSBWSUVXIDxuYW1lPiB3aXRoIEFTIG9yIFdJVEggKi8KQEAgLTQyMjcsNiArNDI0 NSwxMiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChN YXRjaGVzKCJEUk9QIiwgIlRSQU5TRk9STSIsICJGT1IiLCBNYXRjaEFueSwgIkxBTkdVQUdFIiwg TWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CiAKKwkv KiBEUk9QIFZBUklBQkxFICovCisJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJWQVJJQUJMRSIp KQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJs ZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJ CUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJQ1QiKTsKKwogLyogRVhFQ1VURSAqLwog CWVsc2UgaWYgKE1hdGNoZXMoIkVYRUNVVEUiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9wcmVwYXJlZF9zdGF0ZW1lbnRzKTsKQEAgLTQ0MjgsNyArNDQ1Miw3IEBA IG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkgKiBvYmplY3RzIHN1cHBv cnRlZC4KIAkJICovCiAJCWlmIChIZWFkTWF0Y2hlcygiQUxURVIiLCAiREVGQVVMVCIsICJQUklW SUxFR0VTIikpCi0JCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiLCAiU0VRVUVOQ0VTIiwgIkZVTkNU SU9OUyIsICJQUk9DRURVUkVTIiwgIlJPVVRJTkVTIiwgIlRZUEVTIiwgIlNDSEVNQVMiKTsKKwkJ CUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NF RFVSRVMiLCAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIsICJWQVJJQUJMRVMiKTsKIAkJ ZWxzZQogCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUllfUExVUyhRdWVyeV9mb3JfbGlzdF9v Zl9ncmFudGFibGVzLAogCQkJCQkJCQkJCQkiQUxMIEZVTkNUSU9OUyBJTiBTQ0hFTUEiLApAQCAt NDQzNiw2ICs0NDYwLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ CQkJCQkJCQkJCSJBTEwgUk9VVElORVMgSU4gU0NIRU1BIiwKIAkJCQkJCQkJCQkJIkFMTCBTRVFV RU5DRVMgSU4gU0NIRU1BIiwKIAkJCQkJCQkJCQkJIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwKKwkJ CQkJCQkJCQkJIkFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIiwKIAkJCQkJCQkJCQkJIkRBVEFCQVNF IiwKIAkJCQkJCQkJCQkJIkRPTUFJTiIsCiAJCQkJCQkJCQkJCSJGT1JFSUdOIERBVEEgV1JBUFBF UiIsCkBAIC00NDUwLDcgKzQ0NzUsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAkJCQkJCQkJCQkJIlNFUVVFTkNFIiwKIAkJCQkJCQkJCQkJIlRBQkxFIiwKIAkJCQkJ CQkJCQkJIlRBQkxFU1BBQ0UiLAotCQkJCQkJCQkJCQkiVFlQRSIpOworCQkJCQkJCQkJCQkiVFlQ RSIsCisJCQkJCQkJCQkJCSJWQVJJQUJMRSIpOwogCX0KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygi R1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSB8fAogCQkJIFRhaWxNYXRjaGVz KCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNoQW55LCAiT04iLCAiQUxM IikpCkBAIC00NDU4LDcgKzQ0ODQsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAkJCQkJICAiUFJPQ0VEVVJFUyBJTiBTQ0hFTUEiLAogCQkJCQkgICJST1VUSU5FUyBJ TiBTQ0hFTUEiLAogCQkJCQkgICJTRVFVRU5DRVMgSU4gU0NIRU1BIiwKLQkJCQkJICAiVEFCTEVT IElOIFNDSEVNQSIpOworCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIiwKKwkJCQkJICAiVkFSSUFC TEVTIElOIFNDSEVNQSIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBN YXRjaEFueSwgIk9OIiwgIkZPUkVJR04iKSB8fAogCQkJIFRhaWxNYXRjaGVzKCJSRVZPS0UiLCAi R1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIpKQogCQlD T01QTEVURV9XSVRIKCJEQVRBIFdSQVBQRVIiLCAiU0VSVkVSIik7CkBAIC00NDk0LDYgKzQ1MjEs OCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCUNPTVBMRVRFX1dJ VEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzcGFjZXMpOwogCQllbHNlIGlmIChUYWls TWF0Y2hlcygiVFlQRSIpKQogCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIikp CisJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJs ZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBTlQiLCBNYXRjaEFueSwgTWF0Y2hBbnks IE1hdGNoQW55KSkKIAkJCUNPTVBMRVRFX1dJVEgoIlRPIik7CiAJCWVsc2UKQEAgLTQ3OTYsNyAr NDgyNSw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCiAvKiBQUkVQ QVJFIHh4IEFTICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiUFJFUEFSRSIsIE1hdGNoQW55LCAiQVMi KSkKLQkJQ09NUExFVEVfV0lUSCgiU0VMRUNUIiwgIlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJE RUxFVEUgRlJPTSIpOworCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VS VCBJTlRPIiwgIkRFTEVURSBGUk9NIiwgIkxFVCIpOwogCiAvKgogICogUFJFUEFSRSBUUkFOU0FD VElPTiBpcyBtaXNzaW5nIG9uIHB1cnBvc2UuIEl0J3MgaW50ZW5kZWQgZm9yIHRyYW5zYWN0aW9u CkBAIC01Mjc4LDYgKzUzMDcsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcyk7CiAJZWxz ZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkdioiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVF UlkoUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3MpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxc ZFYqIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zh cmlhYmxlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkeCoiKSkKIAkJQ09NUExFVEVf V0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9leHRlbnNpb25zKTsKIAllbHNlIGlmIChUYWls TWF0Y2hlc0NTKCJcXGRYKiIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtl ZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMmJiYzc4MDVmZTMuLmY5 ODc2MGRlNjM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTgxLDcgKzgxLDggQEAgQ0FUQUxPR19I RUFERVJTIDo9IFwKIAlwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCBcCiAJcGdfcHVibGljYXRp b25fcmVsLmggXAogCXBnX3N1YnNjcmlwdGlvbi5oIFwKLQlwZ19zdWJzY3JpcHRpb25fcmVsLmgK KwlwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX3ZhcmlhYmxlLmgKIAogR0VORVJBVEVEX0hF QURFUlMgOj0gJChDQVRBTE9HX0hFQURFUlM6JS5oPSVfZC5oKQogCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5i dWlsZAppbmRleCBlYzFjZjQ2N2Y2Zi4uODEzOThlZmE3YzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5i dWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19wdWJsaWNh dGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdwZ19zdWJzY3JpcHRpb25f cmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMgVGhlIC5kYXQgZmlsZXMgd2UgbmVl ZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHkuCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2Uu aAppbmRleCA4YzdjY2M2OWEzYy4uYmRhYzBjMTNiZWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2Uu aApAQCAtOTcsNiArOTcsOCBAQCBleHRlcm4gT2lkCVR5cGVuYW1lR2V0VHlwaWQoY29uc3QgY2hh ciAqdHlwbmFtZSk7CiBleHRlcm4gT2lkCVR5cGVuYW1lR2V0VHlwaWRFeHRlbmRlZChjb25zdCBj aGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2spOwogZXh0ZXJuIGJvb2wgVHlwZUlzVmlzaWJsZShP aWQgdHlwaWQpOwogCitleHRlcm4gYm9vbCBWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpOwor CiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVuY25hbWVHZXRDYW5kaWRhdGVzKExpc3QgKm5h bWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3MsIExpc3QgKmFyZ25hbWVzLAogCQkJCQkJCQkJ CQkgICBib29sIGV4cGFuZF92YXJpYWRpYywKQEAgLTE2OSw2ICsxNzEsMTAgQEAgZXh0ZXJuIFNl YXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hlcihNZW1vcnlDb250ZXh0IGNvbnRl eHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5U2VhcmNoUGF0aE1hdGNoZXIoU2Vh cmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJy ZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogCitleHRlcm4gTGlzdCAq TmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CitleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNv bnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CitleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KExpc3QgKm5hbWVzLCBib29s IG1pc3Npbmdfb2spOworCiBleHRlcm4gT2lkCWdldF9jb2xsYXRpb25fb2lkKExpc3QgKmNvbGxu YW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlnZXRfY29udmVyc2lvbl9vaWQoTGlz dCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJRmluZERlZmF1bHRDb252 ZXJzaW9uUHJvYyhpbnQzMiBmb3JfZW5jb2RpbmcsIGludDMyIHRvX2VuY29kaW5nKTsKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaCBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaAppbmRleCA3MjgwMjRiMWZhNy4uNWY5NDQyNGE2ODQg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKQEAgLTY4LDYgKzY4LDcgQEAgTUFL RV9TWVNDQUNIRShERUZBQ0xST0xFTlNQT0JKLCBwZ19kZWZhdWx0X2FjbF9yb2xlX25zcF9vYmpf aW5kZXgsIDgpOwogI2RlZmluZSBERUZBQ0xPQkpfRlVOQ1RJT04JCSdmJyAvKiBmdW5jdGlvbiAq LwogI2RlZmluZSBERUZBQ0xPQkpfVFlQRQkJCSdUJyAvKiB0eXBlICovCiAjZGVmaW5lIERFRkFD TE9CSl9OQU1FU1BBQ0UJCSduJyAvKiBuYW1lc3BhY2UgKi8KKyNkZWZpbmUgREVGQUNMT0JKX1ZB UklBQkxFCQknVicgLyogdmFyaWFibGUgKi8KIAogI2VuZGlmCQkJCQkJCS8qIEVYUE9TRV9UT19D TElFTlRfQ09ERSAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA5ZTgwM2Q2MTBkNy4u MTYyY2QwNDg5NjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTQwNCw2ICs1NDA0LDI2 IEBACiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0ZXh0 JywKICAgcHJvc3JjID0+ICdoYXNfbGFyZ2VvYmplY3RfcHJpdmlsZWdlX2lkX2lkJyB9LAogCit7 IG9pZCA9PiAnOTYxMycsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlh YmxlIGJ5IHVzZXJuYW1lLCBzZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9v bCcsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIHRleHQgdGV4dCcsCisgIHByb3NyYyA9PiAnaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE0 JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlcm5h bWUsIHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0 eXBlcyA9PiAnbmFtZSBvaWQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlX25hbWVfaWQnIH0sCit7IG9pZCA9PiAnOTYxNScsIGRlc2NyID0+ICd1c2VyIHBy aXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBzZXEgbmFtZScsCisgIHBy b25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgdGV4dCB0 ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfbmFtZScg fSwKK3sgb2lkID0+ICc5NjE2JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24g dmFyaWFibGUgYnkgdXNlciBvaWQsIHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4g J2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0ZXh0JywgcHJvc3JjID0+ICdoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQnIH0sCit7IG9pZCA9PiAnOTYxNycsIGRl c2NyID0+ICdjdXJyZW50IHVzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgc2Vx IG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBw cm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9 PiAndGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Vf bmFtZScgfSwKK3sgb2lkID0+ICc5NjE4JywgZGVzY3IgPT4gJ2N1cnJlbnQgdXNlciBwcml2aWxl Z2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBl ID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0JywgcHJvc3JjID0+ICdoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQnIH0sCisKIHsgb2lkID0+ICczMzU1JywgZGVz Y3IgPT4gJ0kvTycsCiAgIHByb25hbWUgPT4gJ3BnX25kaXN0aW5jdF9pbicsIHByb3JldHR5cGUg PT4gJ3BnX25kaXN0aW5jdCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nJywgcHJvc3JjID0+ ICdwZ19uZGlzdGluY3RfaW4nIH0sCkBAIC02NjA0LDYgKzY2MjQsOSBAQAogICBwcm9uYW1lID0+ ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUg PT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAg IHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7IG9pZCA9PiAnOTk5OScs IGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/JywK KyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywg cHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMg PT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScgfSwKIAogeyBvaWQg PT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50IHNlc3Npb25cJ3MgdGVtcCBz Y2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3RlbXBfc2NoZW1hJywgcHJvdm9s YXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNkM2M2ZWIyNGI1Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC0w LDAgKzEsODEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3ZhcmlhYmxlLmgKKyAq CSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0ZW0gY2F0YWxvZyAocGdfdmFy aWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgorICogTk9URVMKKyAqCSAgVGhl IENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAq CSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdf VkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dl bmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfdmFyaWFibGVfZC5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorCisvKiAtLS0t LS0tLS0tLS0tLS0tCisgKgkJcGdfdmFyaWFibGUgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlz IGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ192YXJpYWJsZQorICogLS0tLS0t LS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlv bklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KKworCS8qIE9JRCBvZiBlbnRyeSBpbiBw Z190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAo cGdfdHlwZSk7CisKKwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFtZURhdGEJdmFybmFtZTsKKwor CS8qIE9JRCBvZiBuYW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJsZSBjbGFzcyAqLworCU9pZAkJ CXZhcm5hbWVzcGFjZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisKKwkvKiB2YXJpYWJsZSBv d25lciAqLworCU9pZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKKworCS8qIHR5 cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCisJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVM VCgtMSk7CisKKwkvKiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlPaWQJCQl2YXJjb2xsYXRpb24g QktJX0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKKworCisjaWZkZWYg Q0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8K KworCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0JCXZhcmFjbFsxXSBCS0lfREVG QVVMVChfbnVsbF8pOworCisjZW5kaWYKK30gRm9ybURhdGFfcGdfdmFyaWFibGU7CisKKy8qIC0t LS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgcG9p bnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHRoZSBwZ192YXJpYWJsZSBy ZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBGb3JtRGF0YV9wZ192 YXJpYWJsZSAqRm9ybV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9UT0FTVChwZ192YXJpYWJsZSwg OTIyMywgOTIyNCk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfdmFyaWFibGVfb2lk X2luZGV4LCA5MjI1LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3ZhcmlhYmxlLCBidHJlZShvaWQg b2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFyaWFibGVfdmFybmFtZV9uc3Bf aW5kZXgsIDkyMjYsIFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBnX3ZhcmlhYmxlLCBidHJlZSh2 YXJuYW1lIG5hbWVfb3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykpOworCitleHRlcm4gT2JqZWN0 QWRkcmVzcyBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQlDcmVh dGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CitleHRlcm4gdm9pZCBEcm9wVmFyaWFibGVCeUlkKE9p ZCB2YXJpZCk7CisKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVOQU1FTlNQLCBwZ192YXJpYWJsZV92 YXJuYW1lX25zcF9pbmRleCwgOCk7CitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFT0lELCBwZ192YXJp YWJsZV9vaWRfaW5kZXgsIDgpOworCisjZW5kaWYJCQkJCQkJLyogUEdfVkFSSUFCTEVfSCAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDhkZDQyMWZhMGVmLi5iMDdjNDJmOTRkMCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtMjM2MCw2ICsyMzYwLDcgQEAgdHlwZWRlZiBlbnVtIE9iamVj dFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpFQ1RfVFlQRSwKIAlPQkpFQ1RfVVNFUl9N QVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpFQ1RfVklFVywKIH0gT2JqZWN0VHlwZTsK IApAQCAtMzQ5NSw2ICszNDk2LDIxIEBAIHR5cGVkZWYgc3RydWN0IEFsdGVyU3RhdHNTdG10CiAJ Ym9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3RhdGlzdGljcyBvYmplY3QgaXMg bWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJTdG10Cit7 CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2YXJpYWJsZTsJCS8qIHRoZSB2YXJpYWJs ZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZh cmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKKwlib29sCQlpZl9ub3RfZXhp c3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCit9IENyZWF0ZVNlc3Np b25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlDcmVhdGUgRnVu Y3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK aW5kZXggNDBjZjA5MGNlNjEuLjc5M2FjZTUyNmRmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC00ODUs NiArNDg1LDggQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFMSURBVE9SLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZSIsIFZBTFVFX1AsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlcyIsIFZBTFVFUywg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmNoYXIiLCBWQVJD SEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgidmFyaWFibGUi LCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgi dmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwg QVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwgVFlQRV9GVU5DX05BTUVf S0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggZDI1MGE3MTRkNTku LmVhODY5NTRkZGVkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAor KysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtNjgsNiArNjgsNyBAQCBQR19D TURUQUcoQ01EVEFHX0FMVEVSX1RSQU5TRk9STSwgIkFMVEVSIFRSQU5TRk9STSIsIHRydWUsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJJR0dFUiwgIkFMVEVSIFRSSUdH RVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RZUEUsICJB TFRFUiBUWVBFIiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1VT RVJfTUFQUElORywgIkFMVEVSIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BH X0NNRFRBRyhDTURUQUdfQUxURVJfVkFSSUFCTEUsICJBTFRFUiBWQVJJQUJMRSIsIHRydWUsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVklFVywgIkFMVEVSIFZJRVciLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FOQUxZWkUsICJBTkFMWVpFIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQkVHSU4sICJCRUdJTiIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMjMsNiArMTI0LDcgQEAgUEdfQ01EVEFHKENNRFRBR19D UkVBVEVfVFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVBVEUgVFJJR0dFUiIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RZUEUsICJDUkVBVEUgVFlQ RSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1VTRVJfTUFQ UElORywgIkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURU QUcoQ01EVEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJQUJMRSIsIHRydWUsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcsICJDUkVBVEUgVklFVyIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FURSwgIkRFQUxMT0NB VEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRFX0FM TCwgIkRFQUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTE3NSw2ICsxNzcs NyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAiRFJPUCBUUkFOU0ZPUk0iLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJJR0dFUiwgIkRST1Ag VFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UWVBF LCAiRFJPUCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9Q X1VTRVJfTUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQor UEdfQ01EVEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBWQVJJQUJMRSIsIHRydWUsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVXLCAiRFJPUCBWSUVXIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVDVVRFLCAiRVhFQ1VURSIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYUExBSU4sICJFWFBMQUlOIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5o IGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggMDFhZTViNzE5ZmQuLjVlMWE4YTgyZTkw IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysgYi9zcmMvaW5jbHVkZS91 dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5VHlwZSBB Y2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFDTF9VU0FHRXxBQ0xfQ1JFQVRF KQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShBQ0xfQ1JFQVRFKQogI2RlZmlu ZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNkZWZpbmUgQUNMX0FMTF9SSUdI VFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAKIC8qIG9wZXJhdGlvbiBjb2Rl cyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5k ZXggNmZhYjdhYTYwMDkuLjk1MDNiNTI4NjQ3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGls cy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtMTM1 LDYgKzEzNSw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tpbmQoT2lkIGZ1bmNpZCk7CiBl eHRlcm4gYm9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNpZCk7CiBleHRlcm4gUmVnUHJv Y2VkdXJlIGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxu YW1lX3JlbGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxuYW1lc3BhY2UpOworZXh0ZXJu IE9pZAlnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFtZXNw YWNlKTsKIGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJ Z2V0X3JlbF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF90eXBlX2lk KE9pZCByZWxpZCk7CkBAIC0yMDcsNiArMjA4LDE0IEBAIGV4dGVybiBjaGFyICpnZXRfcHVibGlj YXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9z dWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBl eHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5n X29rKTsKIAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlk KTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCk7 CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUoT2lkIHZhcmlkKTsKK2V4dGVy biB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFyaWQs CisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJCQlpbnQzMiAqdHlwbW9kLAor CQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5cGlk KSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2Fy cmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJy YXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5cGlkKSAgKGdldF9iYXNlX2Vs ZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2RlcGVuZGVuY3kub3V0CmluZGV4IDc1YTA3OGFkYTllLi5jZDhlNDQxMmZhOSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CkBAIC0xNTEsMyArMTUxLDIwIEBAIG93 bmVyIG9mIHR5cGUgZGVwdGVzdF90CiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfZGVwX3VzZXIyLCBy ZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgVVNF UiByZWdyZXNzX2RlcF91c2VyMDsKKy0tIGRlcGVuZGVuY3kgb24gdHlwZQorQ1JFQVRFIERPTUFJ TiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFydHlwZSBBUyAoYSBpbnQsIGIgaW50 LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0eXBlOworLS0gc2hv dWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlw ZSB2YXJkb21haW4gYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAg Y29sdW1uIGMgb2YgY29tcG9zaXRlIHR5cGUgdmFydHlwZSBkZXBlbmRzIG9uIHR5cGUgdmFyZG9t YWluCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9i amVjdHMgdG9vLgorRFJPUCBUWVBFIHZhcnR5cGU7CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUg dmFydHlwZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNz aW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHZhcnR5cGUKK0hJTlQ6ICBVc2UgRFJP UCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBjbGVh biB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJ TiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpv aW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4IDIx NWViODk5YmUzLi5kOTk1MzMyMTQwMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lu cy5vdXQKQEAgLTI2NiwzICsyNjYsNyBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRp b24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19z dWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KIE5PVElDRTogIGNoZWNr aW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBnX3N1YnNjcmlwdGlvbiB7b2lk fQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JyZWxpZH0gPT4gcGdf Y2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJ0eXBlfSA9PiBw Z190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFybmFtZXNwYWNl fSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2 YXJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJs ZSB7dmFyY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0CmluZGV4IGY5ZGI0MDMyZTFmLi4wYzQ4ZmRmYWY2MSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CkBAIC02MDE1LDYgKzYwMTUsMzAgQEAgQ09NTUlUOwogIyBmaW5hbCBP Tl9FUlJPUl9ST0xMQkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVOQ1RJT04gcHNx bF9lcnJvcjsKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192 YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOworXGRWKyB2YXIxCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAg ICBPd25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8ICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0dSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29t ZSBkZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hl bWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBw dWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxl X293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3Zh cmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyOwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlkIG11bHRpcGFydCBuYW1l cwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55 IGRvdHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjIzNiw2ICs2MjYwLDEyIEBAIGNy b3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gucHVi bGljLmZ1bmNfZGVwc19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90 dGVkIG5hbWVzKTogcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CiBpbXByb3Bl ciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogbm9uZXN1Y2gubXlldnQK K1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUg KHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYg cmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJl IG5vdCBpbXBsZW1lbnRlZDogcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK1xkViBub25lc3Vj aC5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6IG5vbmVzdWNoLnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQgZG90cyB3aXRoaW4gcXVvdGVk IG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2guYWNjZXNzLm1ldGhv ZCIKIExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKQEAgLTY0NzAsNiArNjUwMCwxMiBAQCBMaXN0IG9m IHNjaGVtYXMKIC0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tCiAoMCByb3dzKQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisK IC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKIGltcHJvcGVyIHF1YWxpZmll ZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LmFjY2Vzcy5tZXRob2QiCkBAIC02NjM5LDYgKzY2NzUsMTIgQEAgaW1wcm9wZXIgcXVhbGlmaWVk IG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu aW5zdGEKIAogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGlt cHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJl bnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVz c2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgogICAgICAgICBM aXN0IG9mIHRhYmxlcwpAQCAtNjc3Miw2ICs2ODE0LDEyIEBAIExpc3Qgb2YgdGV4dCBzZWFyY2gg dGVtcGxhdGVzCiAtLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tCiAoMCByb3dzKQogCitcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBT Y2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2FpbiwgYnV0IHdp dGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0 ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0 aW9uIgogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIK QEAgLTY4MTksNiArNjg2Nyw4IEBAIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtCiBjcm9zcy1kYXRh YmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFz ZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogY3Jvc3Mt ZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFz ZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJu by5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgorY3Jv c3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIC0tIGNoZWNrIFxkcmcg YW5kIFxkdQogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKIENSRUFURSBST0xFIHJlZ3Jl c3NfZHVfcm9sZTE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMzY2NjBj ZTZkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CkBAIC0wLDAgKzEsNDMzIEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyOworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworLS0gc2hvdWxkIGJlIG9r CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlw ZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50Owor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSBhbnllbGVtZW50 CistLSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZh cjI7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIyIiBkb2VzIG5vdCBleGlzdCwgc2tp cHBpbmcKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEg QVMgaW50OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBleGlzdHMs IHNraXBwaW5nCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50Owor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cworLS0gc2hvdWxk IGJlIG9rCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworLS0gdGhlIHZhcmlhYmxlIGNh biB1c2UgY29tcG9zaXRlIHR5cGVzCitDUkVBVEUgVEFCTEUgdDEgKGEgaW50LCBiIGludCk7CitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHQx OworRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSB0MSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVw ZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBl IHQxCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9i amVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUQUJMRSB0MSBBREQgQ09MVU1OIGMg aW50OworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRBQkxFIHQxIEFMVEVSIENPTFVNTiBiIFRZUEUg bnVtZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJ0MSIgYmVjYXVzZSBzZXNzaW9u IHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBUQUJMRSB0MTsKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgdDE7CistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHQxOworRVJST1I6 ICBjYW5ub3QgZHJvcCB0eXBlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQK K0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdDEKK0hJTlQ6 ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28u CistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKKy0t IHNob3VsZCBmYWlsCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBiICBUWVBFIG51bWVy aWM7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZhcmlh YmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBF IHQxOworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGVmYXVsdDsKK0NSRUFURSBET01BSU4gdGVzdHZh cl9kb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdGVzdHZhcl90eXBlIEFTIChhIHRlc3R2YXJf ZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfZG9tYWluOworLS0gc2hv dWxkIGZhaWwKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4g MTAwKTsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIGRvbWFpbiAidGVzdHZhcl9kb21haW4iIGJlY2F1 c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUg dmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfdHlwZTsKKy0tIHNob3VsZCBm YWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7 CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0ZXN0dmFyX2RvbWFpbiIgYmVjYXVzZSBzZXNz aW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOwor LS0gc2hvdWxkIGJlIG9rCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZh bHVlIDw+IDEwMCk7CitEUk9QIFRZUEUgdGVzdHZhcl90eXBlOworRFJPUCBUWVBFIHRlc3R2YXJf ZG9tYWluOworLS0gY2hlY2sgZXZlbnQgdHJpZ2dlciBzdXBwb3J0CitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQoKQorUkVUVVJOUyBl dmVudF90cmlnZ2VyCitBUyAkJAorREVDTEFSRSByIHJlY29yZDsKK0JFR0lOCisgIEZPUiByIElO IFNFTEVDVCAqIGZyb20gcGdfZXZlbnRfdHJpZ2dlcl9kcm9wcGVkX29iamVjdHMoKQorICBMT09Q CisgICAgQ09OVElOVUUgV0hFTiBOT1Qgci5ub3JtYWwgQU5EIE5PVCByLm9yaWdpbmFsOworCisg ICAgUkFJU0UgTk9USUNFCisgICAgICAgJ05PUk1BTDogb3JpZz0lIG5vcm1hbD0lIGlzdGVtcD0l IHR5cGU9JSBpZGVudGl0eT0lIG5hbWU9JSBhcmdzPSUnLAorICAgICAgIHIub3JpZ2luYWwsIHIu bm9ybWFsLCByLmlzX3RlbXBvcmFyeSwgci5vYmplY3RfdHlwZSwKKyAgICAgICByLm9iamVjdF9p ZGVudGl0eSwgci5hZGRyZXNzX25hbWVzLCByLmFkZHJlc3NfYXJnczsKKyAgRU5EIExPT1A7CitF TkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdy ZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcg SU4gKCdEUk9QIFZBUklBQkxFJykKKyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkKCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitEUk9Q IFZBUklBQkxFIHZhcjE7CitOT1RJQ0U6ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBpc3RlbXA9 ZiB0eXBlPXNlc3Npb24gdmFyaWFibGUgaWRlbnRpdHk9cHVibGljLnZhcjEgbmFtZT17cHVibGlj LHZhcjF9IGFyZ3M9e30KK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJp Z2dlcl9yZXBvcnRfZHJvcHBlZDsKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29t ZSB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihv aWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIx JzsKKyAgICBvYmpfZGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNv bWUgdmFyaWFibGUgY29tbWVudAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBj aGVjayB0aGUgb2JqZWN0IGFkZHJlc3Mgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUg U0NIRU1BIHZhcnRlc3QxOworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0MjsKK0NSRUFURSBWQVJJQUJM RSB2YXJ0ZXN0MS5zdmFydGVzdF92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0 Mi5zdmFydGVzdF92YXIxIEFTIGludDsKK1NFTEVDVAorICBlLnZhcm5hbWUsCisgIHBnX2Rlc2Ny aWJlX29iamVjdCgncGdfdmFyaWFibGUnOjpyZWdjbGFzcywgZS5vaWQsIDApIGFzIGRlc2NyLAor ICBiLnR5cGUsIGIub2JqZWN0X25hbWVzLCBiLm9iamVjdF9hcmdzLAorICBwZ19pZGVudGlmeV9v YmplY3QoYS5jbGFzc2lkLCBhLm9iamlkLCBhLm9ianN1YmlkKSBhcyBpZGVudAorRlJPTSBwZ192 YXJpYWJsZSBhcyBlLAorICBMQVRFUkFMIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKCdw Z192YXJpYWJsZSc6OnJlZ2NsYXNzLCBlLm9pZCwgMCkgYXMgYiwKKyAgTEFURVJBTCBwZ19nZXRf b2JqZWN0X2FkZHJlc3MoYi50eXBlLCBiLm9iamVjdF9uYW1lcywgYi5vYmplY3RfYXJncykgYXMg YQorV0hFUkUgZS52YXJuYW1lIExJS0UgJ3N2YXJ0ZXN0X3ZhciUnOworICAgIHZhcm5hbWUgICAg fCAgICAgICAgICAgICAgICAgIGRlc2NyICAgICAgICAgICAgICAgICAgfCAgICAgICB0eXBlICAg ICAgIHwgICAgICAgb2JqZWN0X25hbWVzICAgICAgIHwgb2JqZWN0X2FyZ3MgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZGVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJsZSB2YXJ0 ZXN0MS5zdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJsZSB8IHt2YXJ0ZXN0MSxzdmFydGVz dF92YXIxfSB8IHt9ICAgICAgICAgIHwgKCJzZXNzaW9uIHZhcmlhYmxlIix2YXJ0ZXN0MSxzdmFy dGVzdF92YXIxLHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEpCisgc3ZhcnRlc3RfdmFyMSB8IHNlc3Np b24gdmFyaWFibGUgdmFydGVzdDIuc3ZhcnRlc3RfdmFyMSB8IHNlc3Npb24gdmFyaWFibGUgfCB7 dmFydGVzdDIsc3ZhcnRlc3RfdmFyMX0gfCB7fSAgICAgICAgICB8ICgic2Vzc2lvbiB2YXJpYWJs ZSIsdmFydGVzdDIsc3ZhcnRlc3RfdmFyMSx2YXJ0ZXN0Mi5zdmFydGVzdF92YXIxKQorKDIgcm93 cykKKworRFJPUCBTQ0hFTUEgdmFydGVzdDEgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2Fk ZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXJ0ZXN0MS5zdmFydGVzdF92YXIxCitEUk9QIFNDSEVN QSB2YXJ0ZXN0MiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZh cmlhYmxlIHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5k IHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBT Q0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJM RSBzdmFydGVzdC52YXIxIEFTIGludDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVh ZGVyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192 YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJP TSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEg T1dORVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjEgUkVOQU1FIFRPIHZhcnh4OworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyeHggU0VU IFNDSEVNQSBwdWJsaWM7CitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXJ4eDsKK0FMVEVSIERFRkFV TFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4g U0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfcmVhZGVyOworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0IHByaXZp bGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFC TEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOworLS0gc2hvdWxk IGJlIG9rLiBzaW5jZSBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKy0tIGFsbG93IHJlZ3Jlc3Nf dmFyaWFibGVfcmVhZGVyIHRvIGhhdmUgU0VMRUNUIHByaXZpbGVkZ2UKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyJywgJ3N2YXJ0 ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJP UCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitEUk9QIFJP TEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CistLQorLS0gYmVnaW4gb2YgY2hlY2sgR1JBTlQg V0lUSCBHUkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRFIFJPTEUg cmVncmVzc192YXJpYWJsZV9yMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitT RVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50OyAgICAgIC0tdmFyMSB3aWxsIG93bmVkIGJ5IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIK K0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjEgV0lU SCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMiBXSVRIIEdSQU5U IE9QVElPTjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVD VCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAn U0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVWT0tFIEFMTCBQUklW SUxFR0VTIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxIENBU0NBREU7 CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYK KygxIHJvdykKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0dSQU5UIFNF TEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1Ymxp Yy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAn cHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwor UkVWT0tFIEFMTCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yMiBHUkFO VEVEIEJZIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVD VCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAn U0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9vd25lcicsICdwdWJsaWMu dmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRVQgUk9M RSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0KKy0tIGVuZCBvZiBjaGVjayBH UkFOVCBXSVRIIEdSQU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCistLQorLS0g YmVnaW4gb2YgdGVzdDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxF UyBJTiBTQ0hFTUEKKy0tCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFND SEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVn cmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGlu dDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIyIEFTIGludDsKK0dSQU5UIFNFTEVDVCBP TiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX3Ix OworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJs ZV9yMScsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMicsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgdAorKDEgcm93KQorCitSRVZPS0UgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1B IHN2YXJ0ZXN0IEZST00gcmVncmVzc192YXJpYWJsZV9yMTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScs ICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0 LnZhcjInLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1AgVkFSSUFC TEUgc3ZhcnRlc3QudmFyMjsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworLS0KKy0tIGVuZCBvZiB0 ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVN QQorLS0KKy0tCistLSBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgaGF2 ZSB2YXJpb3VzIGtpbmQgb2Ygc2lnbmF0dXJlLgorLS0gdGhlIGZvbGxvd2luZyBhcmUgZXh0ZW5z aXZlIHRlc3QgZm9yIGl0LgorLS0KK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnZhcjEgQVMgaW50OworU0VUIHNlYXJjaF9wYXRoIFRP IHB1YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJsaWMudmFyMSBUTyByZWdyZXNz X3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFSSUFCTEUgcHVibGljLnZh cjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7 CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLm5vdGV4aXN0cycsICdTRUxF Q1QnKSBJUyBOVUxMOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VU IFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFyMScsICdTRUxFQ1QnKTsgLS0g dAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAndmFyMScsICdVUERBVEUnKTsgLS0gdAorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnVVBEQVRFJyk7IC0t IGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9N IHBnX3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScgQU5EIHZhcm5hbWVzcGFjZSA9 ICdwdWJsaWMnOjpyZWduYW1lc3BhY2UgXGdzZXQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERB VEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAnU0VMRUNU Jyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsIDp2YXJpZCwgJ1VQREFURScp OyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdTRUxFQ1QnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0t IHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwgJ1VQREFU RScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScs ICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwg J3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJl Z3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjInOjpyZWdyb2xlLCAndmFyMScsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0g dAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRF Jyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworLS0KKy0tIGVuZCBvZiBmdW5jdGlv biBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgdGVzdHMuCistLQorU0VUIFJPTEUgVE8g REVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBwdWJs aWMudmFyMTsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfcjI7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGU2M2VlMmNmMmJiLi43YWFkM2FkNWQyMyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTEsNyArMTExLDcgQEAgdGVzdDoganNv biBqc29uYiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2VuY29kaW5nIGpzb25iX2pz b25wYXRoIHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgYSByZWNvbm5lY3Qgd2hpY2ggdHJh bnNpZW50bHkgdXNlcyAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3Jv dXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGlt aXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lv biB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0 dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3Nx bCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0 ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxh cmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFibGVzCiAKICMgLS0tLS0tLS0tLQogIyBB bm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsCmluZGV4IDhkNzRlZDcxMjJjLi42YzE4YjdmODQwYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVw ZW5kZW5jeS5zcWwKQEAgLTExNCwzICsxMTQsMTcgQEAgRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3Vz ZXIyOwogRFJPUCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBfdXNlcjA7 CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNl cjA7CisKKy0tIGRlcGVuZGVuY3kgb24gdHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMg aW50OworQ1JFQVRFIFRZUEUgdmFydHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0eXBlOworCistLSBzaG91bGQgZmFpbAorRFJP UCBET01BSU4gdmFyZG9tYWluOworRFJPUCBUWVBFIHZhcnR5cGU7CisKKy0tIGNsZWFuIHVwCitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRv bWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggYzU4MzA4Y2UxNGYuLjI5ZDhjYWE3YmFjIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTYzNiw2ICsxNjM2LDE5IEBAIENPTU1JVDsKIERST1Ag VEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogCistLSBzZXNzaW9uIHZhcmlh YmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hh ciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKK1xkVisgdmFyMQorRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxU OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKIC0tIGNoZWNrIGRlc2NyaWJp bmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIFxkQSBub25l c3VjaC5oZWFwCkBAIC0xNzQ3LDYgKzE3NjAsOSBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CiBcZFggbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBcZHkgcmVncmVzc2lvbi5teWV2 dAogXGR5IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xk ViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKIAog LS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNv dW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTc4OCw2ICsxODA0LDggQEAg RFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNp b24iCiBcZFggIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5ldmVu dC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorCiAKIC0tIGFnYWluLCBidXQgd2l0 aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE4MjgsNiArMTg0Niw3IEBAIERST1AgRlVOQ1RJT04g cHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhbGxlZC5leHRl bnNpb24iCiBcZFggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNz IgogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3Vy cmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODUy LDYgKzE4NzEsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgcmVncmVzc2lvbi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgcmVn cmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxl LnJlbGF0aW9uIgpAQCAtMTg3Nyw2ICsxODk3LDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9y OwogXGRQICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRp dGlvbmVkLnJlbGF0aW9uIgogXGRUICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBjaGVjayBcZHJnIGFu ZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmVlYjBmOTRjYTNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsMjk3IEBACitDUkVBVEUgUk9MRSBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CisKKy0t IHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQg ZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBB UyBhbnllbGVtZW50OworCistLSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFC TEUgSUYgRVhJU1RTIHZhcjI7CisKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBO T1QgRVhJU1RTIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RT IHZhcjE7CisKKy0tIHRoZSB2YXJpYWJsZSBjYW4gdXNlIGNvbXBvc2l0ZSB0eXBlcworQ1JFQVRF IFRBQkxFIHQxIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CisK Ky0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHQxOworCistLSBzaG91bGQgYmUgb2sKK0FMVEVS IFRBQkxFIHQxIEFERCBDT0xVTU4gYyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUQUJM RSB0MSBBTFRFUiBDT0xVTU4gYiBUWVBFIG51bWVyaWM7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsK K0RST1AgVEFCTEUgdDE7CisKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBpbnQpOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUgdDE7 CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50Owor CistLSBzaG91bGQgZmFpbAorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJVVEUgYiAgVFlQRSBu dW1lcmljOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKK1NFVCBsb2df c3RhdGVtZW50IFRPIGRlZmF1bHQ7CisKK0NSRUFURSBET01BSU4gdGVzdHZhcl9kb21haW4gQVMg aW50OworQ1JFQVRFIFRZUEUgdGVzdHZhcl90eXBlIEFTIChhIHRlc3R2YXJfZG9tYWluKTsKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl9kb21haW47CisKKy0tIHNob3VsZCBmYWls CitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl90 eXBlOworCistLSBzaG91bGQgZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBD SEVDSyh2YWx1ZSA8PiAxMDApOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBi ZSBvaworQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDAp OworCitEUk9QIFRZUEUgdGVzdHZhcl90eXBlOworRFJPUCBUWVBFIHRlc3R2YXJfZG9tYWluOwor CistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50X3Ry aWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3JkOworQkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNU ICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3BwZWRfb2JqZWN0cygpCisgIExPT1AKKyAgICBD T05USU5VRSBXSEVOIE5PVCByLm5vcm1hbCBBTkQgTk9UIHIub3JpZ2luYWw7CisKKyAgICBSQUlT RSBOT1RJQ0UKKyAgICAgICAnTk9STUFMOiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0l IGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9JScsCisgICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWws IHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90eXBlLAorICAgICAgIHIub2JqZWN0X2lkZW50aXR5 LCByLmFkZHJlc3NfbmFtZXMsIHIuYWRkcmVzc19hcmdzOworICBFTkQgTE9PUDsKK0VORDsKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19l dmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgn RFJPUCBWQVJJQUJMRScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJpZ2dlcl9y ZXBvcnRfZHJvcHBlZCgpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitEUk9QIFZB UklBQkxFIHZhcjE7CisKK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJp Z2dlcl9yZXBvcnRfZHJvcHBlZDsKKworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdz b21lIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9u KG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3Zh cjEnOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGNoZWNrIHRoZSBvYmplY3QgYWRkcmVz cyBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBTQ0hFTUEgdmFydGVzdDE7CitDUkVB VEUgU0NIRU1BIHZhcnRlc3QyOworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QxLnN2YXJ0ZXN0X3Zh cjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50 OworCitTRUxFQ1QKKyAgZS52YXJuYW1lLAorICBwZ19kZXNjcmliZV9vYmplY3QoJ3BnX3Zhcmlh YmxlJzo6cmVnY2xhc3MsIGUub2lkLCAwKSBhcyBkZXNjciwKKyAgYi50eXBlLCBiLm9iamVjdF9u YW1lcywgYi5vYmplY3RfYXJncywKKyAgcGdfaWRlbnRpZnlfb2JqZWN0KGEuY2xhc3NpZCwgYS5v YmppZCwgYS5vYmpzdWJpZCkgYXMgaWRlbnQKK0ZST00gcGdfdmFyaWFibGUgYXMgZSwKKyAgTEFU RVJBTCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdfdmFyaWFibGUnOjpyZWdjbGFz cywgZS5vaWQsIDApIGFzIGIsCisgIExBVEVSQUwgcGdfZ2V0X29iamVjdF9hZGRyZXNzKGIudHlw ZSwgYi5vYmplY3RfbmFtZXMsIGIub2JqZWN0X2FyZ3MpIGFzIGEKK1dIRVJFIGUudmFybmFtZSBM SUtFICdzdmFydGVzdF92YXIlJzsKKworRFJPUCBTQ0hFTUEgdmFydGVzdDEgQ0FTQ0FERTsKK0RS T1AgU0NIRU1BIHZhcnRlc3QyIENBU0NBREU7CisKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5k IHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBT Q0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklB QkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcjsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVn cmVzc192YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUg c3ZhcnRlc3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52 YXJ4eCBTRVQgU0NIRU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CisK K0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9v d25lcgorICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVT IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRo IGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFV TFQ7CisKKy0tIHNob3VsZCBiZSBvay4gc2luY2UgQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCist LSBhbGxvdyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlciB0byBoYXZlIFNFTEVDVCBwcml2aWxlZGdl CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcicsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK0RST1AgVkFSSUFC TEUgc3ZhcnRlc3QudmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfcmVhZGVyOworCistLQorLS0gYmVnaW4gb2YgY2hlY2sgR1JBTlQgV0lUSCBH UkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRFIFJPTEUgcmVncmVz c192YXJpYWJsZV9yMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFVCBS T0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7ICAgICAgLS12YXIxIHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJpYWJsZV9vd25lcgorCitH UkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxIFdJVEgg R1JBTlQgT1BUSU9OOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNF TEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjIgV0lUSCBHUkFOVCBP UFRJT047CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVD VCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBB TEwgUFJJVklMRUdFUyBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yMSBD QVNDQURFOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1Ymxp Yy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxl X3IyOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52 YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgdmFyMSBGUk9N IHJlZ3Jlc3NfdmFyaWFibGVfcjIgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywg J1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX293bmVyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitT RVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHZhcjE7CistLQorLS0gZW5kIG9m IGNoZWNrIEdSQU5UIFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0K KworLS0KKy0tIGJlZ2luIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFM TCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5U IEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBS T0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVz dC52YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIyIEFTIGludDsKKwor R1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jl c3NfdmFyaWFibGVfcjE7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScsICdTRUxFQ1QnKTsgLS0gdAor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBTRUxFQ1QgT04g QUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3QgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3Ix OworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3Qu dmFyMicsICdTRUxFQ1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJ QUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIyOworRFJPUCBT Q0hFTUEgc3ZhcnRlc3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8 VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorCistLQorLS0gZnVuY3Rpb24g aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIGhhdmUgdmFyaW91cyBraW5kIG9mIHNpZ25h dHVyZS4KKy0tIHRoZSBmb2xsb3dpbmcgYXJlIGV4dGVuc2l2ZSB0ZXN0IGZvciBpdC4KKy0tCitT RVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgcHVi bGljLnZhcjEgQVMgaW50OworCitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworCitHUkFOVCBT RUxFQ1QgT04gVkFSSUFCTEUgcHVibGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dS QU5UIFNFTEVDVCwgVVBEQVRFIE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFy aWFibGVfcjI7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7CitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy5u b3RleGlzdHMnLCAnU0VMRUNUJykgSVMgTlVMTDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJp YWJsZV9yMTsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMScsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnVVBE QVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjInLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1VQ REFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Zh cjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9N IHBnX3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScgQU5EIHZhcm5hbWVzcGFjZSA9 ICdwdWJsaWMnOjpyZWduYW1lc3BhY2UgXGdzZXQKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlk LCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsIDp2YXJp ZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdVUERBVEUnKTsg LS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IxJzo6cmVncm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xl LCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcp OyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyJzo6cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3Jv bGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRF Jyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3Jv bGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCisKK1NFVCBST0xFIFRPIERFRkFV TFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMu dmFyMTsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9yMjsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGI2YzE3MGFjMjQ5Li5iMjg0NDczMGY3OSAxMDA2NDQK LS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTU0MCw2ICs1NDAsNyBAQCBDcmVhdGVSb2xlU3RtdAog Q3JlYXRlU2NoZW1hU3RtdAogQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQKIENyZWF0ZVNlcVN0bXQK K0NyZWF0ZVNlc3Npb25WYXJTdG10CiBDcmVhdGVTdGF0c1N0bXQKIENyZWF0ZVN0bXQKIENyZWF0 ZVN0bXRDb250ZXh0CkBAIC04ODAsNiArODgxLDcgQEAgRm9ybURhdGFfcGdfdHNfcGFyc2VyCiBG b3JtRGF0YV9wZ190c190ZW1wbGF0ZQogRm9ybURhdGFfcGdfdHlwZQogRm9ybURhdGFfcGdfdXNl cl9tYXBwaW5nCitGb3JtRGF0YV9wZ192YXJpYWJsZQogRm9ybUV4dHJhRGF0YV9wZ19hdHRyaWJ1 dGUKIEZvcm1fcGdfYWdncmVnYXRlCiBGb3JtX3BnX2FtCkBAIC05MzksNiArOTQxLDcgQEAgRm9y bV9wZ190c19wYXJzZXIKIEZvcm1fcGdfdHNfdGVtcGxhdGUKIEZvcm1fcGdfdHlwZQogRm9ybV9w Z191c2VyX21hcHBpbmcKK0Zvcm1fcGdfdmFyaWFibGUKIEZvcm1hdE5vZGUKIEZyZWVCbG9ja051 bWJlckFycmF5CiBGcmVlTGlzdERhdGEKQEAgLTMxMDIsNiArMzEwNSw3IEBAIFZhclN0cmluZwog VmFyU3RyaW5nU29ydFN1cHBvcnQKIFZhcmlhYmxlCiBWYXJpYWJsZUFzc2lnbkhvb2sKK1Zhcmlh YmxlSW5mbwogVmFyaWFibGVTZXRLaW5kCiBWYXJpYWJsZVNldFN0bXQKIFZhcmlhYmxlU2hvd1N0 bXQKLS0gCjIuNDguMQoK --0000000000003a1a3c062dea97c0--