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 1rK12B-00HYI0-V5 for pgsql-hackers@arkaria.postgresql.org; Sun, 31 Dec 2023 18:59:40 +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 1rK129-009b3S-K1 for pgsql-hackers@arkaria.postgresql.org; Sun, 31 Dec 2023 18:59:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rK128-009b3H-Q6 for pgsql-hackers@lists.postgresql.org; Sun, 31 Dec 2023 18:59:37 +0000 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rK11z-00D6Hq-Ku for pgsql-hackers@postgresql.org; Sun, 31 Dec 2023 18:59:35 +0000 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1d3ea5cc137so63979835ad.0 for ; Sun, 31 Dec 2023 10:59:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1704049166; x=1704653966; darn=postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=nRtF1VmD/jPAshaLKhtUSxOZqfldzIm7cT+/04u9AGc=; b=gKYSn20vUfgr9UMB53FaVR+t887N5xinqlzhrxRHG0eym0E+Or47/m/syISPGNEBYw P/Q8iNujLWRZa05pQ+H84Y6cPsDfhze8Sv0Th+AtzuPoMSU9SJXcFPlRddCZjq7JXdIg DNmUzt8SuHxQOyb+jM5Q/z6aXJcaTf6l4Crxviu9LI3NoJX5V7p+9CqZWC/PCEZExood 7xEuxaUVBSvr5ZpvlIfmh6ejJuWiNDko0FIEItgbHviXkxcqrxLx2Py63e/cG1p8/b7S UqkEcCks4aMgNBxtdERWbpPwKVs8mvgz8DDNSuOm4D1Gi0m16Plbx9R/HU6OUBkQZOFD UAUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704049166; x=1704653966; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=nRtF1VmD/jPAshaLKhtUSxOZqfldzIm7cT+/04u9AGc=; b=qtSsJtC5mLoCAsu3m+/7Ao2IJtzCPsFkCrFaW7KNdfWEVvm2VKWNSL/MK9ixJt+Toq 3DTDyZaQpoPKYYbJYZT5ssdkjDbXJGf3wHBZR0GZpMFNz52c3jWy02lpYq3uqRohCw3L GLMQDUYrNAxZBpaOiDEyRnaN3wYWDqtenigcLCL1mA1cZS0qMTiXqQiYR6uYKBDbisfp tkcJcY78VPN4wlxbvQ71MyYYZMiitLI+z5w3LvUvNg+xv3ArBZOaq16E2mjPLIFCNWR2 HuZg6XJmrtZz2ZxvizhJ3vcmMg+BW7K5O7uvqrQMdffbCt7nLAawKxHt+1uoMokjByNV oqAA== X-Gm-Message-State: AOJu0YzIylKmTKB0U4iBx+0eINuXxyCMDyl5l9xgpdXmsZtymuZ4gf1V a4qM9p+EzyB6vY6XKd08hjyQeX60HrkN X-Google-Smtp-Source: AGHT+IEoU8XfmcRUlnJeV9neUB3zHl25fjwjvAdq793TjriEG1J99Js2uo5srYNm4/4BAmavxRObpA== X-Received: by 2002:a17:903:41c8:b0:1d4:5276:765b with SMTP id u8-20020a17090341c800b001d45276765bmr14115619ple.124.1704049166298; Sun, 31 Dec 2023 10:59:26 -0800 (PST) Received: from jeff-laptop.lan (c-76-102-242-158.hsd1.ca.comcast.net. [76.102.242.158]) by smtp.gmail.com with ESMTPSA id g6-20020a63f406000000b005c66e25497dsm18150495pgi.83.2023.12.31.10.59.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 31 Dec 2023 10:59:25 -0800 (PST) Message-ID: <26be917cb07b6aa3ef5dd15f6b59d1b375ece6e8.camel@j-davis.com> Subject: Re: [17] CREATE SUBSCRIPTION ... SERVER From: Jeff Davis To: Ashutosh Bapat Cc: Joe Conway , pgsql-hackers@postgresql.org Date: Sun, 31 Dec 2023 10:59:23 -0800 In-Reply-To: <93392ffa941ab0d436e19e0ab5d04d0e42c02d3f.camel@j-davis.com> References: <149ff9264db27cdf724b65709fbbaee4bf316835.camel@j-davis.com> <830a2bc6cbbb2e6e01c6c0d9f31f320822e10603.camel@j-davis.com> <433d0845248e86c0317d9d396926182cfe157340.camel@j-davis.com> <05ae37abb207cd6bf6b126780024692d91402b0b.camel@j-davis.com> <93392ffa941ab0d436e19e0ab5d04d0e42c02d3f.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-unBjFrK/7K2+G3YpHYne" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-unBjFrK/7K2+G3YpHYne Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2023-12-29 at 15:22 -0800, Jeff Davis wrote: > On Tue, 2023-09-05 at 12:08 -0700, Jeff Davis wrote: > > OK, so we could have a built-in FDW called pg_connection that would > > do > > the right kinds of validation; and then also allow other FDWs but > > the > > subscription would have to do its own validation. >=20 > Attached a rough rebased version. Attached a slightly better version which fixes a pg_dump issue and improves the documentation. Regards, Jeff Davis --=-unBjFrK/7K2+G3YpHYne Content-Disposition: attachment; filename="v4-0001-CREATE-SUBSCRIPTION-.-SERVER.patch" Content-Type: text/x-patch; name="v4-0001-CREATE-SUBSCRIPTION-.-SERVER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAwYjhjYjIzMTU3Yjg2OTA5ZDM4Y2MxMDcyM2YxOWQ5NDc4N2VmZWQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDIzIEF1ZyAyMDIzIDEwOjMxOjE2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NF0gQ1JFQVRF IFNVQlNDUklQVElPTiAuLi4gU0VSVkVSLgoKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1 YnNjcmlwdGlvbi5zZ21sICAgICAgfCAgMTggKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1 YnNjcmlwdGlvbi5zZ21sICAgICB8ICAxNiArLQogZG9jL3NyYy9zZ21sL3VzZXItbWFuYWcuc2dt bCAgICAgICAgICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxl ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uYyAgICAgICAgIHwgIDE3ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5j dGlvbnMuc3FsICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9u Y21kcy5jICAgICAgIHwgMTk3ICsrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2ZvcmVpZ24v Zm9yZWlnbi5jICAgICAgICAgICAgICAgICB8IDIxNCArKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAyMCArKwogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyAgICAgIHwgIDEyICstCiBzcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgNjMgKysrKystCiBzcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2F1dGhpZC5kYXQgICAgICAgICAgICAgfCAgIDUgKwogLi4uL2NhdGFsb2cv cGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuZGF0ICAgICAgIHwgIDIyICsrCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAgICAgIHwgICA1ICstCiBzcmMvaW5jbHVkZS9mb3Jl aWduL2ZvcmVpZ24uaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZm9yZWlnbl9kYXRhLm91dCAgICB8ICA2MCArKysrLQogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0ICAgIHwgIDM4ICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2ZvcmVpZ25fZGF0YS5zcWwgICAgICAgICB8ICA0MSArKystCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgICAgfCAgMzkgKysrKwogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBsICAgIHwgIDU3ICsrKysrCiAyNiBmaWxlcyBjaGFu Z2VkLCA4MDQgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19mb3JlaWduX2RhdGFfd3JhcHBlci5kYXQKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbAppbmRleCA2ZDM2ZmYwZGM5Li42ZDIx OTE0NWE5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTIx LDYgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+ CiA8c3lub3BzaXM+CitBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVJWRVIgPHJlcGxhY2VhYmxlPnNlcnZlcm5hbWU8 L3JlcGxhY2VhYmxlPgogQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQ09OTkVDVElPTiAnPHJlcGxhY2VhYmxlPmNvbm5p bmZvPC9yZXBsYWNlYWJsZT4nCiBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgUFVCTElDQVRJT04gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li5dIFsgV0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9v cHRpb248L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFs dWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKSBdCiBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgUFVCTElDQVRJ T04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX25hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dIFsgV0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w dWJsaWNhdGlvbl9vcHRpb248L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKSBdCkBAIC05NCwxMyArOTUs MjQgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1w YXJhbXMtc2VydmVyIj4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVJWRVIgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnNlcnZlcm5hbWU8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgY2xhdXNlIHJlcGxhY2Vz IHRoZSBmb3JlaWduIHNlcnZlciBvciBjb25uZWN0aW9uIHN0cmluZyBvcmlnaW5hbGx5CisgICAg ICBzZXQgYnkgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiIvPiB3aXRoIHRo ZSBmb3JlaWduIHNlcnZlcgorICAgICAgPHJlcGxhY2VhYmxlPnNlcnZlcm5hbWU8L3JlcGxhY2Vh YmxlPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1jb25u ZWN0aW9uIj4KICAgICA8dGVybT48bGl0ZXJhbD5DT05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxhY2VhYmxlPic8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBUaGlzIGNsYXVzZSByZXBsYWNlcyB0 aGUgY29ubmVjdGlvbiBzdHJpbmcgb3JpZ2luYWxseSBzZXQgYnkKLSAgICAgIDx4cmVmIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iLz4uICBTZWUgdGhlcmUgZm9yIG1vcmUKLSAgICAg IGluZm9ybWF0aW9uLgorICAgICAgVGhpcyBjbGF1c2UgcmVwbGFjZXMgdGhlIGZvcmVpZ24gc2Vy dmVyIG9yIGNvbm5lY3Rpb24gc3RyaW5nIG9yaWdpbmFsbHkKKyAgICAgIHNldCBieSA8eHJlZiBs aW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uIi8+IHdpdGggdGhlIGNvbm5lY3Rpb24KKyAg ICAgIHN0cmluZyA8cmVwbGFjZWFibGU+Y29ubmluZm88L3JlcGxhY2VhYmxlPi4KICAgICAgPC9w YXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggZjFjMjBiM2E0Ni4uOGNmNjc1MTZjZiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTIyLDcgKzIy LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9w c2lzPgogQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmxlPgotICAgIENPTk5FQ1RJT04gJzxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uaW5mbzwvcmVwbGFjZWFibGU+JworICAgIHsgU0VS VkVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXJ2ZXJuYW1lPC9yZXBsYWNlYWJs ZT4gfCBDT05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88 L3JlcGxhY2VhYmxlPicgfQogICAgIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wdWJsaWNhdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQogICAgIFsgV0lU SCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdWJzY3JpcHRpb25fcGFyYW1ldGVy PC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9y ZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogPC9zeW5vcHNpcz4KQEAgLTc3LDYgKzc3LDE1IEBA IENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNj cmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVu dHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFt cy1zZXJ2ZXIiPgorICAgIDx0ZXJtPjxsaXRlcmFsPlNFUlZFUiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c2VydmVybmFtZTwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQSBmb3JlaWduIHNlcnZlciB0byB1c2Ug Zm9yIHRoZSBjb25uZWN0aW9uLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0 aW9uLXBhcmFtcy1jb25uZWN0aW9uIj4KICAgICA8dGVybT48bGl0ZXJhbD5DT05ORUNUSU9OICc8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxhY2VhYmxlPic8L2xp dGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTM2Myw2ICszNzIsMTEgQEAgQ1JFQVRF IFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9u X25hbWU8L3JlcGxhY2VhYmwKICAgICAgICAgICBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD50cnVl PC9saXRlcmFsPi4gT25seSBzdXBlcnVzZXJzIGNhbiBzZXQKICAgICAgICAgICB0aGlzIHZhbHVl IHRvIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg IDxwYXJhPgorICAgICAgICAgIE9ubHkgYWxsb3dlZCB3aGVuIHVzaW5nIGEgY29ubmVjdGlvbiBz dHJpbmcuIElmIHVzaW5nIGEgZm9yZWlnbgorICAgICAgICAgIHNlcnZlciwgc3BlY2lmeSA8bGl0 ZXJhbD5wYXNzd29yZF9yZXF1aXJlZDwvbGl0ZXJhbD4gYXMgcGFydCBvZiB0aGUKKyAgICAgICAg ICB1c2VyIG1hcHBpbmcgZm9yIHRoZSBmb3JlaWduIHNlcnZlciwgaW5zdGVhZC4KKyAgICAgICAg IDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3VzZXItbWFuYWcuc2dtbCBiL2RvYy9zcmMvc2dtbC91 c2VyLW1hbmFnLnNnbWwKaW5kZXggOTJhMjk5ZDJkMy4uNGY0YzIwYmEzYyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3VzZXItbWFuYWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvdXNlci1tYW5h Zy5zZ21sCkBAIC02ODcsMTEgKzY4NywxOSBAQCBEUk9QIFJPTEUgZG9vbWVkX3JvbGU7CiAgICAg ICAgPGVudHJ5PkFsbG93IHVzZSBvZiBjb25uZWN0aW9uIHNsb3RzIHJlc2VydmVkIHZpYQogICAg ICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1yZXNlcnZlZC1jb25uZWN0aW9ucyIvPi48L2VudHJ5Pgog ICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5wZ19jcmVhdGVfY29ubmVj dGlvbjwvZW50cnk+CisgICAgICAgPGVudHJ5PkFsbG93IHVzZXJzIHRvIHNwZWNpZnkgYSBjb25u ZWN0aW9uIHN0cmluZyBkaXJlY3RseSBpbiA8bGluaworICAgICAgIGxpbmtlbmQ9InNxbC1jcmVh dGVzdWJzY3JpcHRpb24iPjxjb21tYW5kPkNSRUFURQorICAgICAgIFNVQlNDUklQVElPTjwvY29t bWFuZD48L2xpbms+LjwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgIDxyb3c+CiAgICAgICAg PGVudHJ5PnBnX2NyZWF0ZV9zdWJzY3JpcHRpb248L2VudHJ5PgogICAgICAgIDxlbnRyeT5BbGxv dyB1c2VycyB3aXRoIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcGVybWlzc2lvbiBvbiB0aGUK LSAgICAgICBkYXRhYmFzZSB0byBpc3N1ZQotICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVh dGVzdWJzY3JpcHRpb24iPjxjb21tYW5kPkNSRUFURSBTVUJTQ1JJUFRJT048L2NvbW1hbmQ+PC9s aW5rPi48L2VudHJ5PgorICAgICAgIGRhdGFiYXNlIHRvIGlzc3VlIDxsaW5rCisgICAgICAgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbiI+PGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgU1VC U0NSSVBUSU9OPC9jb21tYW5kPjwvbGluaz4uICBUaGlzIHJvbGUgaXMgYSBtZW1iZXIgb2YKKyAg ICAgICA8bGl0ZXJhbD5wZ19jcmVhdGVfY29ubmVjdGlvbjwvbGl0ZXJhbD4uPC9lbnRyeT4KICAg ICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUK aW5kZXggZWM3YjZmNTM2Mi4uMzY1Yzk1NmRlYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCkBAIC0xMzYs NiArMTM2LDcgQEAgUE9TVEdSRVNfQktJX0RBVEEgPSAkKGFkZHByZWZpeCAkKHRvcF9zcmNkaXIp L3NyYy9pbmNsdWRlL2NhdGFsb2cvLFwKIAlwZ19jb2xsYXRpb24uZGF0IFwKIAlwZ19jb252ZXJz aW9uLmRhdCBcCiAJcGdfZGF0YWJhc2UuZGF0IFwKKwlwZ19mb3JlaWduX2RhdGFfd3JhcHBlci5k YXQgXAogCXBnX2xhbmd1YWdlLmRhdCBcCiAJcGdfbmFtZXNwYWNlLmRhdCBcCiAJcGdfb3BjbGFz cy5kYXQgXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggZDZhOTc4ZjEz Ni4uZjVjNGVjOGQ5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCkBAIC0y Myw2ICsyMyw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKKyNpbmNsdWRlICJmb3JlaWduL2ZvcmVpZ24uaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xt Z3IuaCIKQEAgLTc1LDEwICs3NiwxOCBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29s IG1pc3Npbmdfb2spCiAJc3ViLT5ydW5hc293bmVyID0gc3ViZm9ybS0+c3VicnVuYXNvd25lcjsK IAogCS8qIEdldCBjb25uaW5mbyAqLwotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChT VUJTQ1JJUFRJT05PSUQsCi0JCQkJCQkJCSAgIHR1cCwKLQkJCQkJCQkJICAgQW51bV9wZ19zdWJz Y3JpcHRpb25fc3ViY29ubmluZm8pOwotCXN1Yi0+Y29ubmluZm8gPSBUZXh0RGF0dW1HZXRDU3Ry aW5nKGRhdHVtKTsKKwlpZiAoT2lkSXNWYWxpZChzdWJmb3JtLT5zdWJzZXJ2ZXIpKQorCXsKKwkJ c3ViLT5jb25uaW5mbyA9IEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKHN1YmZvcm0tPnN1 Ym93bmVyLAorCQkJCQkJCQkJCQkJCSAgc3ViZm9ybS0+c3Vic2VydmVyKTsKKwl9CisJZWxzZQor CXsKKwkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwKKwkJ CQkJCQkJCSAgIHR1cCwKKwkJCQkJCQkJCSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5p bmZvKTsKKwkJc3ViLT5jb25uaW5mbyA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCX0K IAogCS8qIEdldCBzbG90bmFtZSAqLwogCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFNVQlNDUklQ VElPTk9JRCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9u cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCmluZGV4IDQy MDY3NTI4ODEuLmUxYWJkYTQxYmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX2Z1bmN0aW9ucy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rp b25zLnNxbApAQCAtNzgxLDMgKzc4MSw1IEBAIEdSQU5UIHBnX3JlYWRfYWxsX3NldHRpbmdzIFRP IHBnX21vbml0b3I7CiBHUkFOVCBwZ19yZWFkX2FsbF9zdGF0cyBUTyBwZ19tb25pdG9yOwogCiBH UkFOVCBwZ19zdGF0X3NjYW5fdGFibGVzIFRPIHBnX21vbml0b3I7CisKK0dSQU5UIHBnX2NyZWF0 ZV9jb25uZWN0aW9uIFRPIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb247CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggZWRjODJjMTFiZS4uYzQ2OTAwMTgyZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMjUsMTQgKzI1LDE3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19h dXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBw aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNs dWRlICJjb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhl Y3V0b3IuaCIKKyNpbmNsdWRlICJmb3JlaWduL2ZvcmVpZ24uaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIK QEAgLTU3NCw2ICs1NzcsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRl LCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdf c3Vic2NyaXB0aW9uXTsKIAlPaWQJCQlvd25lciA9IEdldFVzZXJJZCgpOwogCUhlYXBUdXBsZQl0 dXA7CisJT2lkCQkJc2VydmVyaWQ7CisJT2lkCQkJdW1pZDsKIAljaGFyCSAgICpjb25uaW5mbzsK IAljaGFyCQlvcmlnaW5uYW1lW05BTUVEQVRBTEVOXTsKIAlMaXN0CSAgICpwdWJsaWNhdGlvbnM7 CkBAIC01OTQsNiArNTk5LDEyIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3Rh dGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCSAgU1VCT1BUX1JVTl9BU19P V05FUiB8IFNVQk9QVF9PUklHSU4pOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0 ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAorCWlmIChJc1NldChv cHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfUEFTU1dPUkRfUkVRVUlSRUQpICYmIHN0bXQtPnNl cnZlcm5hbWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCSBlcnJtc2coIm9wdGlvbiBcInBhc3N3b3JkX3JlcXVpcmVkXCIgaW52YWxp ZCBvbiBzdWJzY3JpcHRpb25zIHRvIGEgZm9yZWlnbiBzZXJ2ZXIiKSwKKwkJCQkgZXJyaGludCgi VXNlIHRoZSBcInBhc3N3b3JkX3JlcXVpcmVkXCIgb3B0aW9uIG9uIHRoZSB1c2VyIG1hcHBpbmdz IGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9yZWlnbiBzZXJ2ZXIuIikpKTsKKwogCS8qCiAJICogU2lu Y2UgY3JlYXRpbmcgYSByZXBsaWNhdGlvbiBzbG90IGlzIG5vdCB0cmFuc2FjdGlvbmFsLCByb2xs aW5nIGJhY2sKIAkgKiB0aGUgdHJhbnNhY3Rpb24gbGVhdmVzIHRoZSBjcmVhdGVkIHJlcGxpY2F0 aW9uIHNsb3QuICBTbyB3ZSBjYW5ub3QgcnVuCkBAIC02MDQsOSArNjE1LDkgQEAgQ3JlYXRlU3Vi c2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3Rt dCwKIAkJUHJldmVudEluVHJhbnNhY3Rpb25CbG9jayhpc1RvcExldmVsLCAiQ1JFQVRFIFNVQlND UklQVElPTiAuLi4gV0lUSCAoY3JlYXRlX3Nsb3QgPSB0cnVlKSIpOwogCiAJLyoKLQkgKiBXZSBk b24ndCB3YW50IHRvIGFsbG93IHVucHJpdmlsZWdlZCB1c2VycyB0byBiZSBhYmxlIHRvIHRyaWdn ZXIKLQkgKiBhdHRlbXB0cyB0byBhY2Nlc3MgYXJiaXRyYXJ5IG5ldHdvcmsgZGVzdGluYXRpb25z LCBzbyByZXF1aXJlIHRoZSB1c2VyCi0JICogdG8gaGF2ZSBiZWVuIHNwZWNpZmljYWxseSBhdXRo b3JpemVkIHRvIGNyZWF0ZSBzdWJzY3JpcHRpb25zLgorCSAqIFdlIGRvbid0IHdhbnQgdG8gYWxs b3cgdW5wcml2aWxlZ2VkIHVzZXJzIHRvIHV0aWxpemUgdGhlIHJlc291cmNlcyB0aGF0CisJICog YSBzdWJzY3JpcHRpb24gcmVxdWlyZXMgKHN1Y2ggYXMgYSBiYWNrZ3JvdW5kIHdvcmtlciksIHNv IHJlcXVpcmUgdGhlCisJICogdXNlciB0byBoYXZlIGJlZW4gc3BlY2lmaWNhbGx5IGF1dGhvcml6 ZWQgdG8gY3JlYXRlIHN1YnNjcmlwdGlvbnMuCiAJICovCiAJaWYgKCFoYXNfcHJpdnNfb2Zfcm9s ZShvd25lciwgUk9MRV9QR19DUkVBVEVfU1VCU0NSSVBUSU9OKSkKIAkJZXJlcG9ydChFUlJPUiwK QEAgLTY2NiwxNCArNjc3LDU0IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3Rh dGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJaWYgKG9wdHMuc3luY2hyb25vdXNf Y29tbWl0ID09IE5VTEwpCiAJCW9wdHMuc3luY2hyb25vdXNfY29tbWl0ID0gIm9mZiI7CiAKLQlj b25uaW5mbyA9IHN0bXQtPmNvbm5pbmZvOwotCXB1YmxpY2F0aW9ucyA9IHN0bXQtPnB1YmxpY2F0 aW9uOwotCiAJLyogTG9hZCB0aGUgbGlicmFyeSBwcm92aWRpbmcgdXMgbGlicHEgY2FsbHMuICov CiAJbG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOwogCi0JLyogQ2hlY2sgdGhl IGNvbm5lY3Rpb24gaW5mbyBzdHJpbmcuICovCi0Jd2FscmN2X2NoZWNrX2Nvbm5pbmZvKGNvbm5p bmZvLCBvcHRzLnBhc3N3b3JkcmVxdWlyZWQgJiYgIXN1cGVydXNlcigpKTsKKwlpZiAoc3RtdC0+ c2VydmVybmFtZSkKKwl7CisJCUZvcmVpZ25TZXJ2ZXIJKnNlcnZlcjsKKwkJVXNlck1hcHBpbmcJ CSp1bTsKKworCQlBc3NlcnQoIXN0bXQtPmNvbm5pbmZvKTsKKwkJY29ubmluZm8gPSBOVUxMOwor CisJCXNlcnZlciA9IEdldEZvcmVpZ25TZXJ2ZXJCeU5hbWUoc3RtdC0+c2VydmVybmFtZSwgZmFs c2UpOworCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soRm9yZWlnblNlcnZlclJlbGF0aW9u SWQsIHNlcnZlci0+c2VydmVyaWQsIG93bmVyLCBBQ0xfVVNBR0UpOworCQlpZiAoYWNscmVzdWx0 ICE9IEFDTENIRUNLX09LKQorCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfRk9S RUlHTl9TRVJWRVIsIHNlcnZlci0+c2VydmVybmFtZSk7CisKKwkJdW0gPSBHZXRVc2VyTWFwcGlu Zyhvd25lciwgc2VydmVyLT5zZXJ2ZXJpZCk7CisKKwkJc2VydmVyaWQgPSBzZXJ2ZXItPnNlcnZl cmlkOworCQl1bWlkID0gdW0tPnVtaWQ7CisJCWNvbm5pbmZvID0gRm9yZWlnblNlcnZlckNvbm5l Y3Rpb25TdHJpbmcob3duZXIsIHNlcnZlcmlkKTsKKwl9CisJZWxzZQorCXsKKwkJQXNzZXJ0KHN0 bXQtPmNvbm5pbmZvKTsKKworCQkvKgorCQkgKiBXZSBkb24ndCB3YW50IHRvIGFsbG93IHVucHJp dmlsZWdlZCB1c2VycyB0byBiZSBhYmxlIHRvIHRyaWdnZXIKKwkJICogYXR0ZW1wdHMgdG8gYWNj ZXNzIGFyYml0cmFyeSBuZXR3b3JrIGRlc3RpbmF0aW9ucywgc28gcmVxdWlyZSB0aGUgdXNlcgor CQkgKiB0byBoYXZlIGJlZW4gc3BlY2lmaWNhbGx5IGF1dGhvcml6ZWQgdG8gY3JlYXRlIGNvbm5l Y3Rpb25zLgorCQkgKi8KKwkJaWYgKCFoYXNfcHJpdnNfb2Zfcm9sZShvd25lciwgUk9MRV9QR19D UkVBVEVfQ09OTkVDVElPTikpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRl bmllZCB0byBjcmVhdGUgc3Vic2NyaXB0aW9uIHdpdGggYSBjb25uZWN0aW9uIHN0cmluZyIpLAor CQkJCQkgZXJyZGV0YWlsKCJPbmx5IHJvbGVzIHdpdGggcHJpdmlsZWdlcyBvZiB0aGUgXCIlc1wi IHJvbGUgbWF5IGNyZWF0ZSBzdWJzY3JpcHRpb25zIHdpdGggQ09OTkVDVElPTiBzcGVjaWZpZWQu IiwKKwkJCQkJCQkgICAicGdfY3JlYXRlX2Nvbm5lY3Rpb24iKSwKKwkJCQkJIGVycmhpbnQoIkNy ZWF0ZSBhIHN1YnNjcmlwdGlvbiB0byBhIGZvcmVpZ24gc2VydmVyIGJ5IHNwZWNpZnlpbmcgU0VS VkVSIGluc3RlYWQuIikpKTsKKworCQkvKiBDaGVjayB0aGUgY29ubmVjdGlvbiBpbmZvIHN0cmlu Zy4gKi8KKwkJd2FscmN2X2NoZWNrX2Nvbm5pbmZvKHN0bXQtPmNvbm5pbmZvLCBvcHRzLnBhc3N3 b3JkcmVxdWlyZWQgJiYgIXN1cGVydXNlcigpKTsKKworCQlzZXJ2ZXJpZCA9IEludmFsaWRPaWQ7 CisJCXVtaWQgPSBJbnZhbGlkT2lkOworCQljb25uaW5mbyA9IHN0bXQtPmNvbm5pbmZvOworCX0K KworCXB1YmxpY2F0aW9ucyA9IHN0bXQtPnB1YmxpY2F0aW9uOwogCiAJLyogRXZlcnl0aGluZyBv aywgZm9ybSBhIG5ldyB0dXBsZS4gKi8KIAltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVz KSk7CkBAIC02OTcsOCArNzQ4LDEyIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vi c2NyaXB0aW9uX3N1YmRpc2FibGVvbmVyciAtIDFdID0gQm9vbEdldERhdHVtKG9wdHMuZGlzYWJs ZW9uZXJyKTsKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3VicGFzc3dvcmRyZXF1aXJl ZCAtIDFdID0gQm9vbEdldERhdHVtKG9wdHMucGFzc3dvcmRyZXF1aXJlZCk7CiAJdmFsdWVzW0Fu dW1fcGdfc3Vic2NyaXB0aW9uX3N1YnJ1bmFzb3duZXIgLSAxXSA9IEJvb2xHZXREYXR1bShvcHRz LnJ1bmFzb3duZXIpOwotCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyAt IDFdID0KLQkJQ1N0cmluZ0dldFRleHREYXR1bShjb25uaW5mbyk7CisJdmFsdWVzW0FudW1fcGdf c3Vic2NyaXB0aW9uX3N1YnNlcnZlciAtIDFdID0gc2VydmVyaWQ7CisJaWYgKCFPaWRJc1ZhbGlk KHNlcnZlcmlkKSkKKwkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvIC0g MV0gPQorCQkJQ1N0cmluZ0dldFRleHREYXR1bShjb25uaW5mbyk7CisJZWxzZQorCQludWxsc1tB bnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyAtIDFdID0gdHJ1ZTsKIAlpZiAob3B0cy5z bG90X25hbWUpCiAJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzbG90bmFtZSAtIDFd ID0KIAkJCURpcmVjdEZ1bmN0aW9uQ2FsbDEobmFtZWluLCBDU3RyaW5nR2V0RGF0dW0ob3B0cy5z bG90X25hbWUpKTsKQEAgLTcxOSw2ICs3NzQsMjAgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAogCXJlY29yZERl cGVuZGVuY3lPbk93bmVyKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCBvd25lcik7CiAK KwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQp OworCisJaWYgKHN0bXQtPnNlcnZlcm5hbWUpCisJeworCQlPYmplY3RBZGRyZXNzIHJlZmVyZW5j ZWQ7CisJCUFzc2VydChPaWRJc1ZhbGlkKHNlcnZlcmlkKSAmJiBPaWRJc1ZhbGlkKHVtaWQpKTsK KworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklk LCBzZXJ2ZXJpZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwg REVQRU5ERU5DWV9OT1JNQUwpOworCisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgVXNl ck1hcHBpbmdSZWxhdGlvbklkLCB1bWlkKTsKKwkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYs ICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisJfQorCiAJUmVwbGljYXRpb25Pcmln aW5OYW1lRm9yTG9naWNhbFJlcChzdWJpZCwgSW52YWxpZE9pZCwgb3JpZ2lubmFtZSwgc2l6ZW9m KG9yaWdpbm5hbWUpKTsKIAlyZXBsb3JpZ2luX2NyZWF0ZShvcmlnaW5uYW1lKTsKIApAQCAtODM1 LDggKzkwNCw2IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0 ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJaWYgKG9wdHMuZW5hYmxlZCkKIAkJQXBwbHlMYXVu Y2hlcldha2V1cEF0Q29tbWl0KCk7CiAKLQlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgU3Vic2Ny aXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOwotCiAJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2so U3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwogCiAJcmV0dXJuIG15c2VsZjsKQEAg LTExMjQsNiArMTE5MSw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCW1lbXNldChudWxscywgZmFsc2UsIHNpemVv ZihudWxscykpOwogCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOwog CisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1Ymlk KTsKKwogCXN3aXRjaCAoc3RtdC0+a2luZCkKIAl7CiAJCWNhc2UgQUxURVJfU1VCU0NSSVBUSU9O X09QVElPTlM6CkBAIC0xMTkxLDYgKzEyNjAsMTIgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAkJCQlpZiAoSXNT ZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX1BBU1NXT1JEX1JFUVVJUkVEKSkKIAkJCQl7 CisJCQkJCWlmIChPaWRJc1ZhbGlkKGZvcm0tPnN1YnNlcnZlcikpCisJCQkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJCSBl cnJtc2coIm9wdGlvbiBcInBhc3N3b3JkX3JlcXVpcmVkXCIgaW52YWxpZCBvbiBzdWJzY3JpcHRp b25zIHRvIGEgZm9yZWlnbiBzZXJ2ZXIiKSwKKwkJCQkJCQkJIGVycmhpbnQoIlVzZSB0aGUgXCJw YXNzd29yZF9yZXF1aXJlZFwiIG9wdGlvbiBvbiB0aGUgdXNlciBtYXBwaW5ncyBhc3NvY2lhdGVk IHdpdGggdGhlIGZvcmVpZ24gc2VydmVyLiIpKSk7CisKIAkJCQkJLyogTm9uLXN1cGVydXNlciBt YXkgbm90IGRpc2FibGUgcGFzc3dvcmRfcmVxdWlyZWQuICovCiAJCQkJCWlmICghb3B0cy5wYXNz d29yZHJlcXVpcmVkICYmICFzdXBlcnVzZXIoKSkKIAkJCQkJCWVyZXBvcnQoRVJST1IsCkBAIC0x MjQ0LDcgKzEzMTksNzcgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBB bHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBB TFRFUl9TVUJTQ1JJUFRJT05fU0VSVkVSOgorCQkJeworCQkJCUZvcmVpZ25TZXJ2ZXIJKm5ld19z ZXJ2ZXI7CisJCQkJVXNlck1hcHBpbmcJCSpuZXdfdW07CisJCQkJT2JqZWN0QWRkcmVzcwkgcmVm ZXJlbmNlZDsKKwkJCQlBY2xSZXN1bHQJCSBhY2xyZXN1bHQ7CisKKwkJCQkvKgorCQkJCSAqIFJl bW92ZSB3aGF0IHdhcyB0aGVyZSBiZWZvcmUsIGVpdGhlciBhbm90aGVyIGZvcmVpZ24gc2VydmVy CisJCQkJICogb3IgYSBjb25uZWN0aW9uIHN0cmluZy4KKwkJCQkgKi8KKwkJCQlpZiAoZm9ybS0+ c3Vic2VydmVyKQorCQkJCXsKKwkJCQkJVXNlck1hcHBpbmcgKm9sZF91bSA9IEdldFVzZXJNYXBw aW5nKGZvcm0tPnN1Ym93bmVyLCBmb3JtLT5zdWJzZXJ2ZXIpOworCisJCQkJCWRlbGV0ZURlcGVu ZGVuY3lSZWNvcmRzRm9yU3BlY2lmaWMoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgZm9ybS0+b2lk LAorCQkJCQkJCQkJCQkJCSAgIERFUEVOREVOQ1lfTk9STUFMLAorCQkJCQkJCQkJCQkJCSAgIEZv cmVpZ25TZXJ2ZXJSZWxhdGlvbklkLCBmb3JtLT5zdWJzZXJ2ZXIpOworCQkJCQlkZWxldGVEZXBl bmRlbmN5UmVjb3Jkc0ZvclNwZWNpZmljKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIGZvcm0tPm9p ZCwKKwkJCQkJCQkJCQkJCQkgICBERVBFTkRFTkNZX05PUk1BTCwKKwkJCQkJCQkJCQkJCQkgICBV c2VyTWFwcGluZ1JlbGF0aW9uSWQsIG9sZF91bS0+dW1pZCk7CisJCQkJfQorCQkJCWVsc2UKKwkJ CQl7CisJCQkJCW51bGxzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvIC0gMV0gPSB0 cnVlOworCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyAtIDFd ID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQkvKgorCQkJCSAqIEZpbmQgdGhlIG5ldyBzZXJ2ZXIgYW5k IHVzZXIgbWFwcGluZy4gQ2hlY2sgQUNMIG9mIHNlcnZlcgorCQkJCSAqIGJhc2VkIG9uIGN1cnJl bnQgdXNlciBJRCwgYnV0IGZpbmQgdGhlIHVzZXIgbWFwcGluZyBiYXNlZAorCQkJCSAqIG9uIHRo ZSBzdWJzY3JpcHRpb24gb3duZXIuCisJCQkJICovCisJCQkJbmV3X3NlcnZlciA9IEdldEZvcmVp Z25TZXJ2ZXJCeU5hbWUoc3RtdC0+c2VydmVybmFtZSwgZmFsc2UpOworCQkJCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhGb3JlaWduU2VydmVyUmVsYXRpb25JZCwKKwkJCQkJCQkJCQkJbmV3 X3NlcnZlci0+c2VydmVyaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0UpOworCQkJCWlmIChhY2xy ZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JK RUNUX0ZPUkVJR05fU0VSVkVSLAorCQkJCQkJCQkgICBuZXdfc2VydmVyLT5zZXJ2ZXJuYW1lKTsK KworCQkJCW5ld191bSA9IEdldFVzZXJNYXBwaW5nKGZvcm0tPnN1Ym93bmVyLCBuZXdfc2VydmVy LT5zZXJ2ZXJpZCk7CisKKwkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2VydmVy IC0gMV0gPSBuZXdfc2VydmVyLT5zZXJ2ZXJpZDsKKwkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNj cmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IHRydWU7CisKKwkJCQlPYmplY3RBZGRyZXNzU2V0KHJl ZmVyZW5jZWQsIEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLCBuZXdfc2VydmVyLT5zZXJ2ZXJpZCk7 CisJCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZ X05PUk1BTCk7CisKKwkJCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFVzZXJNYXBwaW5n UmVsYXRpb25JZCwgbmV3X3VtLT51bWlkKTsKKwkJCQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2Vs ZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKwkJCQl1cGRhdGVfdHVwbGUgPSB0 cnVlOworCQkJfQorCQkJYnJlYWs7CisKIAkJY2FzZSBBTFRFUl9TVUJTQ1JJUFRJT05fQ09OTkVD VElPTjoKKwkJCS8qIHJlbW92ZSByZWZlcmVuY2UgdG8gZm9yZWlnbiBzZXJ2ZXIgYW5kIGRlcGVu ZGVuY2llcywgaWYgcHJlc2VudCAqLworCQkJaWYgKGZvcm0tPnN1YnNlcnZlcikKKwkJCXsKKwkJ CQlVc2VyTWFwcGluZyAqb2xkX3VtID0gR2V0VXNlck1hcHBpbmcoZm9ybS0+c3Vib3duZXIsIGZv cm0tPnN1YnNlcnZlcik7CisKKwkJCQlkZWxldGVEZXBlbmRlbmN5UmVjb3Jkc0ZvclNwZWNpZmlj KFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIGZvcm0tPm9pZCwKKwkJCQkJCQkJCQkJCSAgIERFUEVO REVOQ1lfTk9STUFMLAorCQkJCQkJCQkJCQkJICAgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIGZv cm0tPnN1YnNlcnZlcik7CisJCQkJZGVsZXRlRGVwZW5kZW5jeVJlY29yZHNGb3JTcGVjaWZpYyhT dWJzY3JpcHRpb25SZWxhdGlvbklkLCBmb3JtLT5vaWQsCisJCQkJCQkJCQkJCQkgICBERVBFTkRF TkNZX05PUk1BTCwKKwkJCQkJCQkJCQkJCSAgIFVzZXJNYXBwaW5nUmVsYXRpb25JZCwgb2xkX3Vt LT51bWlkKTsKKworCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAx XSA9IEludmFsaWRPaWQ7CisJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2Vy dmVyIC0gMV0gPSB0cnVlOworCQkJfQorCiAJCQkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGlu ZyB1cyBsaWJwcSBjYWxscy4gKi8KIAkJCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZlciIsIGZh bHNlKTsKIAkJCS8qIENoZWNrIHRoZSBjb25uZWN0aW9uIGluZm8gc3RyaW5nLiAqLwpAQCAtMTQ1 NSw4ICsxNjAwLDYgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2 ZUxvY2spOwogCi0JT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFN1YnNjcmlwdGlvblJlbGF0aW9u SWQsIHN1YmlkKTsKLQogCUludm9rZU9iamVjdFBvc3RBbHRlckhvb2soU3Vic2NyaXB0aW9uUmVs YXRpb25JZCwgc3ViaWQsIDApOwogCiAJLyogV2FrZSB1cCByZWxhdGVkIHJlcGxpY2F0aW9uIHdv cmtlcnMgdG8gaGFuZGxlIHRoaXMgY2hhbmdlIHF1aWNrbHkuICovCkBAIC0xNTQxLDkgKzE2ODQs MTcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBp c1RvcExldmVsKQogCXN1Ym5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoKkRhdHVtR2V0TmFtZShkYXR1 bSkpKTsKIAogCS8qIEdldCBjb25uaW5mbyAqLwotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90 TnVsbChTVUJTQ1JJUFRJT05PSUQsIHR1cCwKLQkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRp b25fc3ViY29ubmluZm8pOwotCWNvbm5pbmZvID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7 CisJaWYgKE9pZElzVmFsaWQoZm9ybS0+c3Vic2VydmVyKSkKKwl7CisJCWNvbm5pbmZvID0gRm9y ZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoZm9ybS0+c3Vib3duZXIsCisJCQkJCQkJCQkJCQkg Zm9ybS0+c3Vic2VydmVyKTsKKwl9CisJZWxzZQorCXsKKwkJZGF0dW0gPSBTeXNDYWNoZUdldEF0 dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwgdHVwLAorCQkJCQkJCQkJICAgQW51bV9wZ19zdWJz Y3JpcHRpb25fc3ViY29ubmluZm8pOworCQljb25uaW5mbyA9IFRleHREYXR1bUdldENTdHJpbmco ZGF0dW0pOworCX0KIAogCS8qIEdldCBzbG90bmFtZSAqLwogCWRhdHVtID0gU3lzQ2FjaGVHZXRB dHRyKFNVQlNDUklQVElPTk9JRCwgdHVwLApAQCAtMTY0NCw2ICsxNzk1LDcgQEAgRHJvcFN1YnNj cmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCX0K IAogCS8qIENsZWFuIHVwIGRlcGVuZGVuY2llcyAqLworCWRlbGV0ZURlcGVuZGVuY3lSZWNvcmRz Rm9yKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCBmYWxzZSk7CiAJZGVsZXRlU2hhcmVk RGVwZW5kZW5jeVJlY29yZHNGb3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIDApOwog CiAJLyogUmVtb3ZlIGFueSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNocm9uaXphdGlvbiBzdGF0 ZXMuICovCkBAIC0xODUzLDYgKzIwMDUsMTcgQEAgQWx0ZXJTdWJzY3JpcHRpb25Pd25lcl9pbnRl cm5hbChSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXAsIE9pZCBuZXdPd25lcklkKQogCQlhY2xj aGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9EQVRBQkFTRSwKIAkJCQkJICAgZ2V0X2RhdGFi YXNlX25hbWUoTXlEYXRhYmFzZUlkKSk7CiAKKwlpZiAoZm9ybS0+c3Vic2VydmVyKQorCXsKKwkJ VXNlck1hcHBpbmcgKm9sZF91bSA9IEdldFVzZXJNYXBwaW5nKGZvcm0tPnN1Ym93bmVyLCBmb3Jt LT5zdWJzZXJ2ZXIpOworCQlVc2VyTWFwcGluZyAqbmV3X3VtID0gR2V0VXNlck1hcHBpbmcobmV3 T3duZXJJZCwgZm9ybS0+c3Vic2VydmVyKTsKKworCQlpZiAoY2hhbmdlRGVwZW5kZW5jeUZvcihT dWJzY3JpcHRpb25SZWxhdGlvbklkLCBmb3JtLT5vaWQsCisJCQkJCQkJCVVzZXJNYXBwaW5nUmVs YXRpb25JZCwgb2xkX3VtLT51bWlkLCBuZXdfdW0tPnVtaWQpICE9IDEpCisJCQllbG9nKEVSUk9S LCAiY291bGQgbm90IGNoYW5nZSB1c2VyIG1hcHBpbmcgZGVwZW5kZW5jeSBmb3Igc3Vic2NyaXB0 aW9uICV1IiwKKwkJCQkgZm9ybS0+b2lkKTsKKwl9CisKIAlmb3JtLT5zdWJvd25lciA9IG5ld093 bmVySWQ7CiAJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9mb3JlaWduL2ZvcmVpZ24uYyBiL3NyYy9iYWNrZW5kL2Zv cmVpZ24vZm9yZWlnbi5jCmluZGV4IGZjM2VkZWYyYTguLjVhODAwZmM0OGYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2ZvcmVpZ24vZm9yZWlnbi5jCisrKyBiL3NyYy9iYWNrZW5kL2ZvcmVpZ24v Zm9yZWlnbi5jCkBAIC0xOCwxMSArMTgsMTQgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2ZvcmVp Z25fc2VydmVyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWduX3RhYmxlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9kZWZy ZW0uaCIKICNpbmNsdWRlICJmb3JlaWduL2Zkd2FwaS5oIgogI2luY2x1ZGUgImZvcmVpZ24vZm9y ZWlnbi5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5o IgorI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5j bHVkZSAicmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlu cy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgi CkBAIC0xOTAsNiArMTkzLDk0IEBAIEdldEZvcmVpZ25TZXJ2ZXJCeU5hbWUoY29uc3QgY2hhciAq c3J2bmFtZSwgYm9vbCBtaXNzaW5nX29rKQogfQogCiAKKy8qCisgKiBFc2NhcGUgYSBjb25uZWN0 aW9uIG9wdGlvbiB2YWx1ZS4gSGVscGVyIGZvciBvcHRpb25zX3RvX2Nvbm5zdHIoKS4KKyAqLwor c3RhdGljIGNoYXIgKgorZXNjYXBlX3ZhbHVlKGNoYXIgKnZhbCkKK3sKKwlTdHJpbmdJbmZvRGF0 YSByZXN1bHQ7CisKKwlpbml0U3RyaW5nSW5mbygmcmVzdWx0KTsKKworCWZvciAoaW50IGkgPSAw OyB2YWxbaV0gIT0gJ1wwJzsgaSsrKQorCXsKKwkJaWYgKHZhbFtpXSA9PSAnXFwnIHx8IHZhbFtp XSA9PSAnXCcnKQorCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJnJlc3VsdCwgJ1xcJyk7CisJCWFw cGVuZFN0cmluZ0luZm9DaGFyKCZyZXN1bHQsIHZhbFtpXSk7CisJfQorCisJcmV0dXJuIHJlc3Vs dC5kYXRhOworfQorCisKKy8qCisgKiBIZWxwZXIgZm9yIEZvcmVpZ25TZXJ2ZXJDb25uZWN0aW9u U3RyaW5nKCkgYW5kIHBnX2Nvbm5lY3Rpb25fdmFsaWRhdG9yKCkuCisgKgorICogVHJhbnNmb3Jt IGEgTGlzdCBvZiBEZWZFbGVtIGludG8gYSBjb25uZWN0aW9uIHN0cmluZy4KKyAqCisgKiBYWFg6 IG1pZ2h0IGxlYWsgbWVtb3J5LCBpbnZlc3RpZ2F0ZQorICovCitzdGF0aWMgY2hhciAqCitvcHRp b25zX3RvX2Nvbm5zdHIoTGlzdCAqb3B0aW9ucykKK3sKKwlTdHJpbmdJbmZvRGF0YQkgY29ubnN0 cjsKKwlMaXN0Q2VsbAkJKmxjOworCWJvb2wJCQkgZmlyc3QgPSB0cnVlOworCisJaW5pdFN0cmlu Z0luZm8oJmNvbm5zdHIpOworCWZvcmVhY2gobGMsIG9wdGlvbnMpCisJeworCQlEZWZFbGVtICpk ID0gKERlZkVsZW0gKikgbGZpcnN0KGxjKTsKKwkJY2hhciAqbmFtZSA9IGQtPmRlZm5hbWU7CisJ CWNoYXIgKnZhbHVlOworCisJCS8qIG5vdCBhIGxpYnBxIG9wdGlvbjsgc2tpcCAqLworCQlpZiAo c3RyY21wKG5hbWUsICJwYXNzd29yZF9yZXF1aXJlZCIpID09IDApCisJCQljb250aW51ZTsKKwor CQkvKiBYWFg6IHBmcmVlKCkgcmVzdWx0IG9mIGRlZkdldFN0cmluZygpIGlmIG5lZWRlZD8gKi8K KwkJdmFsdWUgPSBlc2NhcGVfdmFsdWUoZGVmR2V0U3RyaW5nKGQpKTsKKworCQlhcHBlbmRTdHJp bmdJbmZvKCZjb25uc3RyLCAiJXMlcyA9ICclcyciLAorCQkJCQkJIGZpcnN0ID8gIiIgOiAiICIs IG5hbWUsIHZhbHVlKTsKKwkJZmlyc3QgPSBmYWxzZTsKKworCQlwZnJlZSh2YWx1ZSk7CisJfQor CisJLyogb3ZlcnJpZGUgY2xpZW50X2VuY29kaW5nICovCisJYXBwZW5kU3RyaW5nSW5mbygmY29u bnN0ciwgIiVzY2xpZW50X2VuY29kaW5nID0gJyVzJyIsCisJCQkJCSBmaXJzdCA/ICIiIDogIiAi LCBHZXREYXRhYmFzZUVuY29kaW5nTmFtZSgpKTsKKworCXJldHVybiBjb25uc3RyLmRhdGE7Cit9 CisKKworLyoKKyAqIEdpdmVuIGEgdXNlciBJRCBhbmQgc2VydmVyIElELCByZXR1cm4gYSBwb3N0 Z3JlcyBjb25uZWN0aW9uIHN0cmluZyBzdWl0YWJsZQorICogdG8gcGFzcyB0byBsaWJwcS4KKyAq CisgKiBYWFg6IG1pZ2h0IGxlYWsgbWVtb3J5LCBpbnZlc3RpZ2F0ZQorICovCitjaGFyICoKK0Zv cmVpZ25TZXJ2ZXJDb25uZWN0aW9uU3RyaW5nKE9pZCB1c2VyaWQsIE9pZCBzZXJ2ZXJpZCkKK3sK KwlGb3JlaWduU2VydmVyCSpzZXJ2ZXIJID0gR2V0Rm9yZWlnblNlcnZlcihzZXJ2ZXJpZCk7CisJ VXNlck1hcHBpbmcJCSp1bQkJID0gR2V0VXNlck1hcHBpbmcodXNlcmlkLCBzZXJ2ZXJpZCk7CisJ TGlzdAkJCSpvcHRpb25zID0gbGlzdF9jb25jYXQodW0tPm9wdGlvbnMsIHNlcnZlci0+b3B0aW9u cyk7CisJY2hhcgkJCSpjb25uc3RyOworCisJY29ubnN0ciA9IG9wdGlvbnNfdG9fY29ubnN0cihv cHRpb25zKTsKKworCXBmcmVlKHNlcnZlcik7CisJcGZyZWUodW0pOworCWxpc3RfZnJlZShvcHRp b25zKTsKKworCXJldHVybiBjb25uc3RyOworfQorCisKIC8qCiAgKiBHZXRVc2VyTWFwcGluZyAt IGxvb2sgdXAgdGhlIHVzZXIgbWFwcGluZy4KICAqCkBAIC01OTksNiArNjkwLDEyOSBAQCBpc19j b25uaW5mb19vcHRpb24oY29uc3QgY2hhciAqb3B0aW9uLCBPaWQgY29udGV4dCkKIAlyZXR1cm4g ZmFsc2U7CiB9CiAKKy8qCisgKiBwZ19jb25uZWN0aW9uX2hhbmRsZXIKKyAqCisgKiBwZ19jb25u ZWN0aW9uX2ZkdyBpcyBub3QgdXNlZCBmb3IgZm9yZWlnbiB0YWJsZXMsIHNvIHRoZSBoYW5kbGVy IHNob3VsZAorICogbmV2ZXIgYmUgY2FsbGVkLgorICovCitEYXR1bQorcGdfY29ubmVjdGlvbl9o YW5kbGVyKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZWxvZyhFUlJPUiwgInBnX2Nvbm5lY3Rpb25f aGFuZGxlciB1bmV4cGVjdGVkbHkgY2FsbGVkIik7Cit9CisKKy8qCisgKiBPcHRpb24gdmFsaWRh dG9yIGZvciBDUkVBVEUgU0VSVkVSIC4uLiBGT1IgQ09OTkVDVElPTiBPTkxZLgorICoKKyAqIFhY WDogdHJ5IHRvIHVuaWZ5IHdpdGggdmFsaWRhdG9ycyBmb3IgQ1JFQVRFIFNVQlNDUklQVElPTiAu Li4gQ09OTkVDVElPTiwKKyAqIHBvc3RncmVzX2ZkdywgYW5kIGRibGluay4gQWxzbyBpbnZlc3Rp Z2F0ZSBpZiBtZW1vcnkgbGVha3MgYXJlIGEgcHJvYmxlbQorICogaGVyZS4KKyAqLworRGF0dW0K K3BnX2Nvbm5lY3Rpb25fdmFsaWRhdG9yKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTGlzdAkJCSpv cHRpb25zX2xpc3QgPSB1bnRyYW5zZm9ybVJlbE9wdGlvbnMoUEdfR0VUQVJHX0RBVFVNKDApKTsK KwlPaWQJCQkJIGNhdGFsb2cJICA9IFBHX0dFVEFSR19PSUQoMSk7CisKKwlpZiAoY2F0YWxvZyA9 PSBGb3JlaWduU2VydmVyUmVsYXRpb25JZCkKKwl7CisJCWNoYXIJCSpjb25uaW5mbzsKKwkJTGlz dENlbGwJKmxjOworCisJCWZvcmVhY2gobGMsIG9wdGlvbnNfbGlzdCkKKwkJeworCQkJRGVmRWxl bSAqZCA9IChEZWZFbGVtICopIGxmaXJzdChsYyk7CisKKwkJCWlmIChzdHJjbXAoZC0+ZGVmbmFt ZSwgImNsaWVudF9lbmNvZGluZyIpID09IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShl cnJtc2coImNhbm5vdCBzcGVjaWZ5IGNsaWVudF9lbmNvZGluZyBmb3IgcGdfY29ubmVjdGlvbl9m ZHciKSkpOworCisJCQlpZiAoc3RyY21wKGQtPmRlZm5hbWUsICJ1c2VyIikgPT0gMCB8fAorCQkJ CXN0cmNtcChkLT5kZWZuYW1lLCAicGFzc3dvcmQiKSA9PSAwIHx8CisJCQkJc3RyY21wKGQtPmRl Zm5hbWUsICJzc2xwYXNzd29yZCIpID09IDAgfHwKKwkJCQlzdHJjbXAoZC0+ZGVmbmFtZSwgInBh c3N3b3JkX3JlcXVpcmVkIikgPT0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycm1z ZygiaW52YWxpZCBvcHRpb24gXCIlc1wiIGZvciBwZ19jb25uZWN0aW9uX2ZkdyIsCisJCQkJCQkJ CWQtPmRlZm5hbWUpLAorCQkJCQkJIGVycmhpbnQoIlNwZWNpZnkgb3B0aW9uIFwiJXNcIiBmb3Ig YSB1c2VyIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZXJ2ZXIgaW5zdGVhZC4iLAorCQkJ CQkJCQkgZC0+ZGVmbmFtZSkpKTsKKwkJfQorCisJCWNvbm5pbmZvID0gb3B0aW9uc190b19jb25u c3RyKG9wdGlvbnNfbGlzdCk7CisKKwkJLyogTG9hZCB0aGUgbGlicmFyeSBwcm92aWRpbmcgdXMg bGlicHEgY2FsbHMuICovCisJCWxvYWRfZmlsZSgibGlicHF3YWxyZWNlaXZlciIsIGZhbHNlKTsK KworCQl3YWxyY3ZfY2hlY2tfY29ubmluZm8oY29ubmluZm8sIGZhbHNlKTsKKwl9CisJZWxzZSBp ZiAoY2F0YWxvZyA9PSBVc2VyTWFwcGluZ1JlbGF0aW9uSWQpCisJeworCQlib29sCQkgcGFzc3dv cmRfcmVxdWlyZWQgPSB0cnVlOworCQlib29sCQkgcGFzc3dvcmRfcHJvdmlkZWQgPSBmYWxzZTsK KwkJTGlzdENlbGwJKmxjOworCisJCWZvcmVhY2gobGMsIG9wdGlvbnNfbGlzdCkKKwkJeworCQkJ RGVmRWxlbSAqZCA9IChEZWZFbGVtICopIGxmaXJzdChsYyk7CisKKwkJCWlmIChzdHJjbXAoZC0+ ZGVmbmFtZSwgInBhc3N3b3JkX3JlcXVpcmVkIikgPT0gMCkKKwkJCXsKKwkJCQkvKgorCQkJCSAq IE9ubHkgdGhlIHN1cGVydXNlciBtYXkgc2V0IHRoaXMgb3B0aW9uIG9uIGEgdXNlciBtYXBwaW5n LCBvcgorCQkJCSAqIGFsdGVyIGEgdXNlciBtYXBwaW5nIG9uIHdoaWNoIHRoaXMgb3B0aW9uIGlz IHNldC4gV2UgYWxsb3cgYQorCQkJCSAqIHVzZXIgdG8gY2xlYXIgdGhpcyBvcHRpb24gaWYgaXQn cyBzZXQgLSBpbiBmYWN0LCB3ZSBkb24ndCBoYXZlCisJCQkJICogYSBjaG9pY2Ugc2luY2Ugd2Ug Y2FuJ3Qgc2VlIHRoZSBvbGQgbWFwcGluZyB3aGVuIHZhbGlkYXRpbmcgYW4KKwkJCQkgKiBhbHRl ci4KKwkJCQkgKi8KKwkJCQlpZiAoIXN1cGVydXNlcigpICYmICFkZWZHZXRCb29sZWFuKGQpKQor CQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5U X1BSSVZJTEVHRSksCisJCQkJCQkJIGVycm1zZygicGFzc3dvcmRfcmVxdWlyZWQ9ZmFsc2UgaXMg c3VwZXJ1c2VyLW9ubHkgZm9yIHBnX2Nvbm5lY3Rpb25fZmR3IiksCisJCQkJCQkJIGVycmhpbnQo IlVzZXIgbWFwcGluZ3Mgd2l0aCB0aGUgcGFzc3dvcmRfcmVxdWlyZWQgb3B0aW9uIHNldCB0byBm YWxzZSBtYXkgb25seSBiZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGJ5IHRoZSBzdXBlcnVzZXIuIikp KTsKKworCQkJCXBhc3N3b3JkX3JlcXVpcmVkID0gZGVmR2V0Qm9vbGVhbihkKTsKKwkJCX0KKwor CQkJaWYgKChzdHJjbXAoZC0+ZGVmbmFtZSwgInNzbGtleSIpID09IDAgfHwgc3RyY21wKGQtPmRl Zm5hbWUsICJzc2xjZXJ0IikgPT0gMCkgJiYgIXN1cGVydXNlcigpKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJ CQkJIGVycm1zZygic3NsY2VydCBhbmQgc3Nsa2V5IGFyZSBzdXBlcnVzZXItb25seSBmb3IgcGdf Y29ubmVjdGlvbl9mZHciKSwKKwkJCQkJCSBlcnJoaW50KCJVc2VyIG1hcHBpbmdzIHdpdGggdGhl IHNzbGNlcnQgb3Igc3Nsa2V5IG9wdGlvbnMgc2V0IG1heSBvbmx5IGJlIGNyZWF0ZWQgb3IgbW9k aWZpZWQgYnkgdGhlIHN1cGVydXNlci4iKSkpOworCisJCQlpZiAoc3RyY21wKGQtPmRlZm5hbWUs ICJwYXNzd29yZCIpID09IDApCisJCQkJcGFzc3dvcmRfcHJvdmlkZWQgPSB0cnVlOworCisJCQlp ZiAoc3RyY21wKGQtPmRlZm5hbWUsICJ1c2VyIikgIT0gMCAmJgorCQkJCXN0cmNtcChkLT5kZWZu YW1lLCAicGFzc3dvcmQiKSAhPSAwICYmCisJCQkJc3RyY21wKGQtPmRlZm5hbWUsICJzc2xwYXNz d29yZCIpICE9IDAgJiYKKwkJCQlzdHJjbXAoZC0+ZGVmbmFtZSwgInNzbGtleSIpICE9IDAgJiYK KwkJCQlzdHJjbXAoZC0+ZGVmbmFtZSwgInNzbGNlcnQiKSAhPSAwICYmCisJCQkJc3RyY21wKGQt PmRlZm5hbWUsICJwYXNzd29yZF9yZXF1aXJlZCIpICE9IDApCisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCShlcnJtc2coImludmFsaWQgdXNlciBtYXBwaW5nIG9wdGlvbiBcIiVzXCIgZm9yIHBn X2Nvbm5lY3Rpb25fZmR3IiwKKwkJCQkJCQkJZC0+ZGVmbmFtZSkpKTsKKwkJfQorCisJCWlmIChw YXNzd29yZF9yZXF1aXJlZCAmJiAhcGFzc3dvcmRfcHJvdmlkZWQpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NfUl9FX1BST0hJQklURURfU1FMX1NUQVRFTUVOVF9B VFRFTVBURUQpLAorCQkJCQkgZXJybXNnKCJwYXNzd29yZCBpcyByZXF1aXJlZCIpLAorCQkJCQkg ZXJyZGV0YWlsKCJOb24tc3VwZXJ1c2VycyBtdXN0IHByb3ZpZGUgYSBwYXNzd29yZCBpbiB0aGUg Y29ubmVjdGlvbiBzdHJpbmcuIikpKTsKKwl9CisJZWxzZSBpZiAoY2F0YWxvZyA9PSBGb3JlaWdu VGFibGVSZWxhdGlvbklkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJtc2coImNhbm5vdCBj cmVhdGUgZm9yZWlnbiB0YWJsZSB1c2luZyBhIHBnX2Nvbm5lY3Rpb25fZmR3IHNlcnZlciIpLAor CQkJCSBlcnJoaW50KCJVc2UgdGhlIHNlcnZlciB3aXRoIENSRUFURSBTVUJTQ1JJUFRJT04gaW5z dGVhZC4iKSkpOworCWVsc2UgaWYgKGNhdGFsb2cgPT0gQXR0cmlidXRlUmVsYXRpb25JZCkKKwkJ ZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgY2FsbCB0byBwZ19jb25uZWN0aW9uX3ZhbGlkYXRvciBm b3IgcGdfYXR0cmlidXRlIGNhdGFsb2ciKTsKKwllbHNlCisJCWVsb2coRVJST1IsICJ1bmV4cGVj dGVkIGNhbGwgdG8gcGdfY29ubmVjdGlvbl92YWxpZGF0b3IgZm9yIGNhdGFsb2cgJWQiLCBjYXRh bG9nKTsKKworCisJUEdfUkVUVVJOX0JPT0wodHJ1ZSk7Cit9CisKIAogLyoKICAqIFZhbGlkYXRl IHRoZSBnZW5lcmljIG9wdGlvbiBnaXZlbiB0byBTRVJWRVIgb3IgVVNFUiBNQVBQSU5HLgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggNjNmMTcyZTE3NS4uMjU5YjVjYTQyYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMDYz OCw2ICsxMDYzOCwxNiBAQCBDcmVhdGVTdWJzY3JpcHRpb25TdG10OgogCQkJCQluLT5vcHRpb25z ID0gJDg7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IENSRUFURSBTVUJTQ1JJ UFRJT04gbmFtZSBTRVJWRVIgbmFtZSBQVUJMSUNBVElPTiBuYW1lX2xpc3Qgb3B0X2RlZmluaXRp b24KKwkJCQl7CisJCQkJCUNyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKm4gPQorCQkJCQkJbWFrZU5v ZGUoQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCk7CisJCQkJCW4tPnN1Ym5hbWUgPSAkMzsKKwkJCQkJ bi0+c2VydmVybmFtZSA9ICQ1OworCQkJCQluLT5wdWJsaWNhdGlvbiA9ICQ3OworCQkJCQluLT5v cHRpb25zID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCkBAIC0xMDY2Nyw2ICsxMDY3NywxNiBAQCBBbHRlclN1YnNjcmlwdGlv blN0bXQ6CiAJCQkJCW4tPmNvbm5pbmZvID0gJDU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CisJCQl8IEFMVEVSIFNVQlNDUklQVElPTiBuYW1lIFNFUlZFUiBuYW1lCisJCQkJeworCQkJ CQlBbHRlclN1YnNjcmlwdGlvblN0bXQgKm4gPQorCQkJCQkJbWFrZU5vZGUoQWx0ZXJTdWJzY3Jp cHRpb25TdG10KTsKKworCQkJCQluLT5raW5kID0gQUxURVJfU1VCU0NSSVBUSU9OX1NFUlZFUjsK KwkJCQkJbi0+c3VibmFtZSA9ICQzOworCQkJCQluLT5zZXJ2ZXJuYW1lID0gJDU7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFNVQlNDUklQVElPTiBuYW1lIFJFRlJF U0ggUFVCTElDQVRJT04gb3B0X2RlZmluaXRpb24KIAkJCQl7CiAJCQkJCUFsdGVyU3Vic2NyaXB0 aW9uU3RtdCAqbiA9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRl eCAyMWFiZjM0ZWY3Li5iZTYzYWI1YTVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvd29ya2VyLmMKQEAgLTQwMDMsNyArNDAwMyw5IEBAIG1heWJlX3JlcmVhZF9zdWJzY3JpcHRp b24odm9pZCkKIH0KIAogLyoKLSAqIENhbGxiYWNrIGZyb20gc3Vic2NyaXB0aW9uIHN5c2NhY2hl IGludmFsaWRhdGlvbi4KKyAqIENhbGxiYWNrIGZyb20gc3Vic2NyaXB0aW9uIHN5c2NhY2hlIGlu dmFsaWRhdGlvbi4gQWxzbyBuZWVkZWQgZm9yIHNlcnZlciBvcgorICogdXNlciBtYXBwaW5nIGlu dmFsaWRhdGlvbiwgd2hpY2ggY2FuIGNoYW5nZSB0aGUgY29ubmVjdGlvbiBpbmZvcm1hdGlvbiBm b3IKKyAqIHN1YnNjcmlwdGlvbnMgdGhhdCBjb25uZWN0IHVzaW5nIGEgc2VydmVyIG9iamVjdC4K ICAqLwogc3RhdGljIHZvaWQKIHN1YnNjcmlwdGlvbl9jaGFuZ2VfY2IoRGF0dW0gYXJnLCBpbnQg Y2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKQEAgLTQ2MzksNiArNDY0MSwxNCBAQCBJbml0aWFs aXplTG9nUmVwV29ya2VyKHZvaWQpCiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soU1VC U0NSSVBUSU9OT0lELAogCQkJCQkJCQkgIHN1YnNjcmlwdGlvbl9jaGFuZ2VfY2IsCiAJCQkJCQkJ CSAgKERhdHVtKSAwKTsKKwkvKiBLZWVwIHVzIGluZm9ybWVkIGFib3V0IHN1YnNjcmlwdGlvbiBj aGFuZ2VzLiAqLworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05TRVJWRVJP SUQsCisJCQkJCQkJCSAgc3Vic2NyaXB0aW9uX2NoYW5nZV9jYiwKKwkJCQkJCQkJICAoRGF0dW0p IDApOworCS8qIEtlZXAgdXMgaW5mb3JtZWQgYWJvdXQgc3Vic2NyaXB0aW9uIGNoYW5nZXMuICov CisJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soVVNFUk1BUFBJTkdPSUQsCisJCQkJCQkJ CSAgc3Vic2NyaXB0aW9uX2NoYW5nZV9jYiwKKwkJCQkJCQkJICAoRGF0dW0pIDApOwogCiAJQ2Fj aGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQVVUSE9JRCwKIAkJCQkJCQkJICBzdWJzY3JpcHRp b25fY2hhbmdlX2NiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggMDUwYTgzMTIyNi4uYjA2NjRiNmJiYiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jCkBAIC0yMDY2LDYgKzIwNjYsMjcgQEAgc2VsZWN0RHVtcGFibGVTdGF0aXN0aWNz T2JqZWN0KFN0YXRzRXh0SW5mbyAqc29iaiwgQXJjaGl2ZSAqZm91dCkKIAkJc29iai0+ZG9iai5k dW1wID0gRFVNUF9DT01QT05FTlRfTk9ORTsKIH0KIAorLyoKKyAqIHNlbGVjdER1bXBhYmxlRmR3 OiBwb2xpY3ktc2V0dGluZyBzdWJyb3V0aW5lCisgKgkJTWFyayBmb3JlaWduIGRhdGEgd3JhcHBl ciBhcyB0byBiZSBkdW1wZWQgb3Igbm90CisgKgorICogRnJvZWlnbiBEYXRhIFdyYXBwZXJzIGRv IG5vdCBiZWxvbmcgdG8gYW55IHBhcnRpY3VsYXIgbmFtZXNwYWNlLiAgVG8KKyAqIGlkZW50aWZ5 IGJ1aWx0LWluIGZvcmVpZ24gZGF0YSB3cmFwcGVycywgd2UgbXVzdCByZXNvcnQgdG8gY2hlY2tp bmcgd2hldGhlcgorICogdGhlIG1ldGhvZCdzIE9JRCBpcyBpbiB0aGUgcmFuZ2UgcmVzZXJ2ZWQg Zm9yIGluaXRkYi4KKyAqLworc3RhdGljIHZvaWQKK3NlbGVjdER1bXBhYmxlRmR3KEZkd0luZm8g KmZkd2luZm8sIEFyY2hpdmUgKmZvdXQpCit7CisJaWYgKGNoZWNrRXh0ZW5zaW9uTWVtYmVyc2hp cCgmZmR3aW5mby0+ZG9iaiwgZm91dCkpCisJCXJldHVybjsJCQkJCS8qIGV4dGVuc2lvbiBtZW1i ZXJzaGlwIG92ZXJyaWRlcyBhbGwgZWxzZSAqLworCisJaWYgKGZkd2luZm8tPmRvYmouY2F0SWQu b2lkIDw9IChPaWQpIGdfbGFzdF9idWlsdGluX29pZCkKKwkJZmR3aW5mby0+ZG9iai5kdW1wID0g RFVNUF9DT01QT05FTlRfTk9ORTsKKwllbHNlCisJCWZkd2luZm8tPmRvYmouZHVtcCA9IGZvdXQt PmRvcHQtPmluY2x1ZGVfZXZlcnl0aGluZyA/CisJCQlEVU1QX0NPTVBPTkVOVF9BTEwgOiBEVU1Q X0NPTVBPTkVOVF9OT05FOworfQorCiAvKgogICogc2VsZWN0RHVtcGFibGVPYmplY3Q6IHBvbGlj eS1zZXR0aW5nIHN1YnJvdXRpbmUKICAqCQlNYXJrIGEgZ2VuZXJpYyBkdW1wYWJsZSBvYmplY3Qg YXMgdG8gYmUgZHVtcGVkIG9yIG5vdApAQCAtNDYzMyw2ICs0NjU0LDcgQEAgZ2V0U3Vic2NyaXB0 aW9ucyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfc3ViZGlzYWJsZW9uZXJyOwogCWludAkJCWlf c3VicGFzc3dvcmRyZXF1aXJlZDsKIAlpbnQJCQlpX3N1YnJ1bmFzb3duZXI7CisJaW50CQkJaV9z dWJzZXJ2ZXJuYW1lOwogCWludAkJCWlfc3ViY29ubmluZm87CiAJaW50CQkJaV9zdWJzbG90bmFt ZTsKIAlpbnQJCQlpX3N1YnN5bmNjb21taXQ7CkBAIC00NjkzLDE4ICs0NzE1LDI3IEBAIGdldFN1 YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks CiAJCQkJCQkJICIgcy5zdWJwYXNzd29yZHJlcXVpcmVkLFxuIgogCQkJCQkJCSAiIHMuc3VicnVu YXNvd25lcixcbiIKLQkJCQkJCQkgIiBzLnN1Ym9yaWdpblxuIik7CisJCQkJCQkJICIgcy5zdWJv cmlnaW4sXG4iKTsKIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkJICAi ICd0JyBBUyBzdWJwYXNzd29yZHJlcXVpcmVkLFxuIgogCQkJCQkJICAiICd0JyBBUyBzdWJydW5h c293bmVyLFxuIgotCQkJCQkJICAiICclcycgQVMgc3Vib3JpZ2luXG4iLAorCQkJCQkJICAiICcl cycgQVMgc3Vib3JpZ2luLFxuIiwKIAkJCQkJCSAgTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKIAot CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlwdGlv biBzXG4iCi0JCQkJCQkgIldIRVJFIHMuc3ViZGJpZCA9IChTRUxFQ1Qgb2lkIEZST00gcGdfZGF0 YWJhc2VcbiIKLQkJCQkJCSAiICAgICAgICAgICAgICAgICAgIFdIRVJFIGRhdG5hbWUgPSBjdXJy ZW50X2RhdGFiYXNlKCkpIik7CisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTcwMDAwKQor CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIiBmcy5zcnZuYW1lIEFTIHN1 YnNlcnZlcm5hbWVcbiIKKwkJCQkJCQkgIkZST00gcGdfc3Vic2NyaXB0aW9uIHMgTEVGVCBKT0lO IFxuIgorCQkJCQkJCSAicGdfZm9yZWlnbl9zZXJ2ZXIgZnMgT04gcy5zdWJzZXJ2ZXIgPSBmcy5v aWRcbiIKKwkJCQkJCQkgIldIRVJFIHMuc3ViZGJpZCA9IChTRUxFQ1Qgb2lkIEZST00gcGdfZGF0 YWJhc2VcbiIKKwkJCQkJCQkgIiAgICAgICAgICAgICAgICAgICBXSEVSRSBkYXRuYW1lID0gY3Vy cmVudF9kYXRhYmFzZSgpKSIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks CisJCQkJCQkJICIgTlVMTCBBUyBzdWJzZXJ2ZXJuYW1lXG4iCisJCQkJCQkJICJGUk9NIHBnX3N1 YnNjcmlwdGlvbiBzXG4iCisJCQkJCQkJICJXSEVSRSBzLnN1YmRiaWQgPSAoU0VMRUNUIG9pZCBG Uk9NIHBnX2RhdGFiYXNlXG4iCisJCQkJCQkJICIgICAgICAgICAgICAgICAgICAgV0hFUkUgZGF0 bmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKSkiKTsKIAogCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShm b3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKIApAQCAtNDcyNCw2ICs0NzU1LDcg QEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCWlfc3ViZGlzYWJsZW9uZXJyID0g UFFmbnVtYmVyKHJlcywgInN1YmRpc2FibGVvbmVyciIpOwogCWlfc3VicGFzc3dvcmRyZXF1aXJl ZCA9IFBRZm51bWJlcihyZXMsICJzdWJwYXNzd29yZHJlcXVpcmVkIik7CiAJaV9zdWJydW5hc293 bmVyID0gUFFmbnVtYmVyKHJlcywgInN1YnJ1bmFzb3duZXIiKTsKKwlpX3N1YnNlcnZlcm5hbWUg PSBQUWZudW1iZXIocmVzLCAic3Vic2VydmVybmFtZSIpOwogCWlfc3ViY29ubmluZm8gPSBQUWZu dW1iZXIocmVzLCAic3ViY29ubmluZm8iKTsKIAlpX3N1YnNsb3RuYW1lID0gUFFmbnVtYmVyKHJl cywgInN1YnNsb3RuYW1lIik7CiAJaV9zdWJzeW5jY29tbWl0ID0gUFFmbnVtYmVyKHJlcywgInN1 YnN5bmNjb21taXQiKTsKQEAgLTQ3NDEsNyArNDc3MywxMCBAQCBnZXRTdWJzY3JpcHRpb25zKEFy Y2hpdmUgKmZvdXQpCiAJCUFzc2lnbkR1bXBJZCgmc3ViaW5mb1tpXS5kb2JqKTsKIAkJc3ViaW5m b1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3VibmFtZSkp OwogCQlzdWJpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwg aV9zdWJvd25lcikpOwotCisJCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfc3Vic2VydmVybmFt ZSkpCisJCQlzdWJpbmZvW2ldLnN1YnNlcnZlcm5hbWUgPSBOVUxMOworCQllbHNlCisJCQlzdWJp bmZvW2ldLnN1YnNlcnZlcm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vi c2VydmVybmFtZSkpOwogCQlzdWJpbmZvW2ldLnN1YmJpbmFyeSA9CiAJCQlwZ19zdHJkdXAoUFFn ZXR2YWx1ZShyZXMsIGksIGlfc3ViYmluYXJ5KSk7CiAJCXN1YmluZm9baV0uc3Vic3RyZWFtID0K QEAgLTQ4MDQsOSArNDgzOSwxNyBAQCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNv bnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pCiAJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwg IkRST1AgU1VCU0NSSVBUSU9OICVzO1xuIiwKIAkJCQkJICBxc3VibmFtZSk7CiAKLQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBTVUJTQ1JJUFRJT04gJXMgQ09OTkVDVElPTiAiLAor CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFNVQlNDUklQVElPTiAlcyAiLAogCQkJ CQkgIHFzdWJuYW1lKTsKLQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIHN1YmluZm8tPnN1 YmNvbm5pbmZvLCBmb3V0KTsKKwlpZiAoc3ViaW5mby0+c3Vic2VydmVybmFtZSkKKwl7CisJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiU0VSVkVSICVzIiwgZm10SWQoc3ViaW5mby0+c3Vic2Vy dmVybmFtZSkpOworCX0KKwllbHNlCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNP Tk5FQ1RJT04gIik7CisJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgc3ViaW5mby0+c3Vi Y29ubmluZm8sIGZvdXQpOworCX0KIAogCS8qIEJ1aWxkIGxpc3Qgb2YgcXVvdGVkIHB1YmxpY2F0 aW9ucyBhbmQgYXBwZW5kIHRoZW0gdG8gcXVlcnkuICovCiAJaWYgKCFwYXJzZVBHQXJyYXkoc3Vi aW5mby0+c3VicHVibGljYXRpb25zLCAmcHVibmFtZXMsICZucHVibmFtZXMpKQpAQCAtOTUxMyw3 ICs5NTU2LDcgQEAgZ2V0Rm9yZWlnbkRhdGFXcmFwcGVycyhBcmNoaXZlICpmb3V0LCBpbnQgKm51 bUZvcmVpZ25EYXRhV3JhcHBlcnMpCiAJCWZkd2luZm9baV0uZmR3b3B0aW9ucyA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV9mZHdvcHRpb25zKSk7CiAKIAkJLyogRGVjaWRlIHdoZXRo ZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCi0JCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoZmR3aW5m b1tpXS5kb2JqKSwgZm91dCk7CisJCXNlbGVjdER1bXBhYmxlRmR3KCZmZHdpbmZvW2ldLCBmb3V0 KTsKIAogCQkvKiBNYXJrIHdoZXRoZXIgRkRXIGhhcyBhbiBBQ0wgKi8KIAkJaWYgKCFQUWdldGlz bnVsbChyZXMsIGksIGlfZmR3YWNsKSkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDY3M2NhNWM5MmQuLjBhOTRi OWI3YWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNjY3LDYgKzY2Nyw3IEBAIHR5cGVkZWYgc3RydWN0IF9T dWJzY3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3ViZGlzYWJsZW9uZXJyOwogCWNoYXIJICAgKnN1 YnBhc3N3b3JkcmVxdWlyZWQ7CiAJY2hhcgkgICAqc3VicnVuYXNvd25lcjsKKwljaGFyCSAgICpz dWJzZXJ2ZXJuYW1lOwogCWNoYXIJICAgKnN1YmNvbm5pbmZvOwogCWNoYXIJICAgKnN1YnNsb3Ru YW1lOwogCWNoYXIJICAgKnN1YnN5bmNjb21taXQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDUwNzdlN2IzNTguLmZi NGVhOTY5NjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC01NzkzLDcgKzU3OTMsNyBAQCBsaXN0Rm9yZWlnbkRhdGFX cmFwcGVycyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCQkgIGdldHRl eHRfbm9vcCgiRGVzY3JpcHRpb24iKSk7CiAJfQogCi0JYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1 ZiwgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIGZkd1xuIik7CisJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuRlJPTSAoU0VMRUNUIHRhYmxlb2lkLCAqIEZS T00gcGdfY2F0YWxvZy5wZ19mb3JlaWduX2RhdGFfd3JhcHBlciBXSEVSRSBvaWQ+PTE2Mzg0KSBm ZHdcbiIpOwogCiAJaWYgKHZlcmJvc2UpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmMKaW5kZXggMDQ5ODAxMTg2Yy4uMjMwNjgzYTg1MCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu YwpAQCAtMzMxNCw3ICszMzE0LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQs IGludCBzdGFydCwgaW50IGVuZCkKIAogLyogQ1JFQVRFIFNVQlNDUklQVElPTiAqLwogCWVsc2Ug aWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkpCi0JCUNPTVBM RVRFX1dJVEgoIkNPTk5FQ1RJT04iKTsKKwkJQ09NUExFVEVfV0lUSCgiU0VSVkVSIiwgIkNPTk5F Q1RJT04iKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9OIiwgTWF0 Y2hBbnksICJDT05ORUNUSU9OIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJQVUJMSUNB VElPTiIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRj aEFueSwgIkNPTk5FQ1RJT04iLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNv bi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZGNiM2M1Zjc2 Ni4uMDFlOTIwODliZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWls ZAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC04Myw2ICs4Myw3IEBA IGJraV9kYXRhID0gWwogICAncGdfY29sbGF0aW9uLmRhdCcsCiAgICdwZ19jb252ZXJzaW9uLmRh dCcsCiAgICdwZ19kYXRhYmFzZS5kYXQnLAorICAncGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuZGF0 JywKICAgJ3BnX2xhbmd1YWdlLmRhdCcsCiAgICdwZ19uYW1lc3BhY2UuZGF0JywKICAgJ3BnX29w Y2xhc3MuZGF0JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aGlkLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aGlkLmRhdAppbmRleCA2YjRhMGFhYWFkLi44 ZmNlNDU3YWIxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhpZC5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuZGF0CkBAIC05NCw1ICs5NCwxMCBA QAogICByb2xjcmVhdGVyb2xlID0+ICdmJywgcm9sY3JlYXRlZGIgPT4gJ2YnLCByb2xjYW5sb2dp biA9PiAnZicsCiAgIHJvbHJlcGxpY2F0aW9uID0+ICdmJywgcm9sYnlwYXNzcmxzID0+ICdmJywg cm9sY29ubmxpbWl0ID0+ICctMScsCiAgIHJvbHBhc3N3b3JkID0+ICdfbnVsbF8nLCByb2x2YWxp ZHVudGlsID0+ICdfbnVsbF8nIH0sCit7IG9pZCA9PiAnNjEyMycsIG9pZF9zeW1ib2wgPT4gJ1JP TEVfUEdfQ1JFQVRFX0NPTk5FQ1RJT04nLAorICByb2xuYW1lID0+ICdwZ19jcmVhdGVfY29ubmVj dGlvbicsIHJvbHN1cGVyID0+ICdmJywgcm9saW5oZXJpdCA9PiAndCcsCisgIHJvbGNyZWF0ZXJv bGUgPT4gJ2YnLCByb2xjcmVhdGVkYiA9PiAnZicsIHJvbGNhbmxvZ2luID0+ICdmJywKKyAgcm9s cmVwbGljYXRpb24gPT4gJ2YnLCByb2xieXBhc3NybHMgPT4gJ2YnLCByb2xjb25ubGltaXQgPT4g Jy0xJywKKyAgcm9scGFzc3dvcmQgPT4gJ19udWxsXycsIHJvbHZhbGlkdW50aWwgPT4gJ19udWxs XycgfSwKIAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19mb3JlaWduX2Rh dGFfd3JhcHBlci5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFw cGVyLmRhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43ZDQ4OWJmODQ5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19mb3JlaWduX2RhdGFf d3JhcHBlci5kYXQKQEAgLTAsMCArMSwyMiBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKKyMgcGdfZm9y ZWlnbl9kYXRhX3dyYXBwZXIuZGF0CisjICAgIEluaXRpYWwgY29udGVudHMgb2YgdGhlIHBnX2Zv cmVpZ25fZGF0YV93cmFwcGVyIHN5c3RlbSBjYXRhbG9nLgorIworIyBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTYtMjAyMywgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMg UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKKyMKKyMgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19mb3JlaWduX2RhdGFfd3Jh cHBlci5kYXQKKyMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1sKKworeyBvaWQgPT4gJzYwMTUnLCBvaWRf c3ltYm9sID0+ICdQR19DT05ORUNUSU9OX0ZEVycsCisgIGRlc2NyID0+ICdQc2V1ZG8gRkRXIGZv ciBjb25uZWN0aW9ucyB0byBQb3N0Z3JlcycsCisgIGZkd25hbWUgPT4gJ3BnX2Nvbm5lY3Rpb25f ZmR3JywgZmR3b3duZXIgPT4gJ1BPU1RHUkVTJywKKyAgZmR3aGFuZGxlciA9PiAncGdfY29ubmVj dGlvbl9oYW5kbGVyJywKKyAgZmR3dmFsaWRhdG9yID0+ICdwZ19jb25uZWN0aW9uX3ZhbGlkYXRv cicsCisgIGZkd2FjbCA9PiAnX251bGxfJywgZmR3b3B0aW9ucyA9PiAnX251bGxfJ30sCisKK10K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDkwNTJmNTI2MmEuLjhlODFlNWY2YmIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNzUxNiw2ICs3NTE2LDE0IEBACiAgIHByb25hbWUgPT4g J3Bvc3RncmVzcWxfZmR3X3ZhbGlkYXRvcicsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAogICBwcm9h cmd0eXBlcyA9PiAnX3RleHQgb2lkJywgcHJvc3JjID0+ICdwb3N0Z3Jlc3FsX2Zkd192YWxpZGF0 b3InIH0sCiAKK3sgb2lkID0+ICc2MTIyJywgZGVzY3IgPT4gJyhpbnRlcm5hbCknLAorICBwcm9u YW1lID0+ICdwZ19jb25uZWN0aW9uX2hhbmRsZXInLCBwcm9yZXR0eXBlID0+ICdmZHdfaGFuZGxl cicsCisgIHByb2FyZ3R5cGVzID0+ICcnLCBwcm9zcmMgPT4gJ3BnX2Nvbm5lY3Rpb25faGFuZGxl cicgfSwKKworeyBvaWQgPT4gJzYxMjQnLCBkZXNjciA9PiAnKGludGVybmFsKScsCisgIHByb25h bWUgPT4gJ3BnX2Nvbm5lY3Rpb25fdmFsaWRhdG9yJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisg IHByb2FyZ3R5cGVzID0+ICdfdGV4dCBvaWQnLCBwcm9zcmMgPT4gJ3BnX2Nvbm5lY3Rpb25fdmFs aWRhdG9yJyB9LAorCiB7IG9pZCA9PiAnMjI5MCcsIGRlc2NyID0+ICdJL08nLAogICBwcm9uYW1l ID0+ICdyZWNvcmRfaW4nLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29y ZCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nIG9pZCBpbnQ0JywgcHJvc3JjID0+ICdyZWNv cmRfaW4nIH0sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlv bi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAppbmRleCBlMGI5MWVh Y2QyLi40YjgzYzhjYThiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKQEAg LTkzLDkgKzkzLDEyIEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9u UmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAJYm9vbAkJc3VicnVuYXNv d25lcjsJLyogVHJ1ZSBpZiByZXBsaWNhdGlvbiBzaG91bGQgZXhlY3V0ZSBhcyB0aGUKIAkJCQkJ CQkJICogc3Vic2NyaXB0aW9uIG93bmVyICovCiAKKwlPaWQJCQlzdWJzZXJ2ZXI7CQkvKiBTZXQg aWYgY29ubmVjdGluZyB3aXRoIHNlcnZlciAqLworCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkv KiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAkvKiBDb25uZWN0aW9uIHN0 cmluZyB0byB0aGUgcHVibGlzaGVyICovCi0JdGV4dAkJc3ViY29ubmluZm8gQktJX0ZPUkNFX05P VF9OVUxMOworCXRleHQJCXN1YmNvbm5pbmZvIEJLSV9GT1JDRV9OVUxMOwkvKiBTZXQgaWYgY29u bmVjdGluZyB3aXRoCisJCQkJCQkJCQkJCSAgIGNvbm5lY3Rpb24gc3RyaW5nICovCiAKIAkvKiBT bG90IG5hbWUgb24gcHVibGlzaGVyICovCiAJTmFtZURhdGEJc3Vic2xvdG5hbWUgQktJX0ZPUkNF X05VTEw7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9mb3JlaWduL2ZvcmVpZ24uaCBiL3NyYy9p bmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oCmluZGV4IDUyNTZkNGQ5MWYuLjcwNTgzMzVkNjMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oCisrKyBiL3NyYy9pbmNsdWRl L2ZvcmVpZ24vZm9yZWlnbi5oCkBAIC02OSw2ICs2OSw3IEBAIGV4dGVybiBGb3JlaWduU2VydmVy ICpHZXRGb3JlaWduU2VydmVyRXh0ZW5kZWQoT2lkIHNlcnZlcmlkLAogCQkJCQkJCQkJCQkgICBi aXRzMTYgZmxhZ3MpOwogZXh0ZXJuIEZvcmVpZ25TZXJ2ZXIgKkdldEZvcmVpZ25TZXJ2ZXJCeU5h bWUoY29uc3QgY2hhciAqc3J2bmFtZSwKIAkJCQkJCQkJCQkJIGJvb2wgbWlzc2luZ19vayk7Citl eHRlcm4gY2hhciAqRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoT2lkIHVzZXJpZCwgT2lk IHNlcnZlcmlkKTsKIGV4dGVybiBVc2VyTWFwcGluZyAqR2V0VXNlck1hcHBpbmcoT2lkIHVzZXJp ZCwgT2lkIHNlcnZlcmlkKTsKIGV4dGVybiBGb3JlaWduRGF0YVdyYXBwZXIgKkdldEZvcmVpZ25E YXRhV3JhcHBlcihPaWQgZmR3aWQpOwogZXh0ZXJuIEZvcmVpZ25EYXRhV3JhcHBlciAqR2V0Rm9y ZWlnbkRhdGFXcmFwcGVyRXh0ZW5kZWQoT2lkIGZkd2lkLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmlu ZGV4IGU0OTQzMDlkYTguLjRiMzE2ZDQ2NjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQw NDAsNiArNDA0MCw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKIHsK IAlOb2RlVGFnCQl0eXBlOwogCWNoYXIJICAgKnN1Ym5hbWU7CQkvKiBOYW1lIG9mIHRoZSBzdWJz Y3JpcHRpb24gKi8KKwljaGFyCSAgICpzZXJ2ZXJuYW1lOwkJLyogU2VydmVyIG5hbWUgb2YgcHVi bGlzaGVyICovCiAJY2hhcgkgICAqY29ubmluZm87CQkvKiBDb25uZWN0aW9uIHN0cmluZyB0byBw dWJsaXNoZXIgKi8KIAlMaXN0CSAgICpwdWJsaWNhdGlvbjsJLyogT25lIG9yIG1vcmUgcHVibGlj YXRpb24gdG8gc3Vic2NyaWJlIHRvICovCiAJTGlzdAkgICAqb3B0aW9uczsJCS8qIExpc3Qgb2Yg RGVmRWxlbSBub2RlcyAqLwpAQCAtNDA0OCw2ICs0MDQ5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3Jl YXRlU3Vic2NyaXB0aW9uU3RtdAogdHlwZWRlZiBlbnVtIEFsdGVyU3Vic2NyaXB0aW9uVHlwZQog ewogCUFMVEVSX1NVQlNDUklQVElPTl9PUFRJT05TLAorCUFMVEVSX1NVQlNDUklQVElPTl9TRVJW RVIsCiAJQUxURVJfU1VCU0NSSVBUSU9OX0NPTk5FQ1RJT04sCiAJQUxURVJfU1VCU0NSSVBUSU9O X1NFVF9QVUJMSUNBVElPTiwKIAlBTFRFUl9TVUJTQ1JJUFRJT05fQUREX1BVQkxJQ0FUSU9OLApA QCAtNDA2Miw2ICs0MDY0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJTdWJzY3JpcHRpb25TdG10 CiAJTm9kZVRhZwkJdHlwZTsKIAlBbHRlclN1YnNjcmlwdGlvblR5cGUga2luZDsgLyogQUxURVJf U1VCU0NSSVBUSU9OX09QVElPTlMsIGV0YyAqLwogCWNoYXIJICAgKnN1Ym5hbWU7CQkvKiBOYW1l IG9mIHRoZSBzdWJzY3JpcHRpb24gKi8KKwljaGFyCSAgICpzZXJ2ZXJuYW1lOwkJLyogU2VydmVy IG5hbWUgb2YgcHVibGlzaGVyICovCiAJY2hhcgkgICAqY29ubmluZm87CQkvKiBDb25uZWN0aW9u IHN0cmluZyB0byBwdWJsaXNoZXIgKi8KIAlMaXN0CSAgICpwdWJsaWNhdGlvbjsJLyogT25lIG9y IG1vcmUgcHVibGljYXRpb24gdG8gc3Vic2NyaWJlIHRvICovCiAJTGlzdAkgICAqb3B0aW9uczsJ CS8qIExpc3Qgb2YgRGVmRWxlbSBub2RlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9m b3JlaWduX2RhdGEub3V0CmluZGV4IDFkZmUyM2NjMWUuLmI1NTE0MDVhM2QgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQKQEAgLTI1LDcgKzI1LDcgQEAgQ1JF QVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15OwogQ09NTUVOVCBPTiBGT1JFSUdOIERBVEEg V1JBUFBFUiBkdW1teSBJUyAndXNlbGVzcyc7CiBDUkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIg cG9zdGdyZXNxbCBWQUxJREFUT1IgcG9zdGdyZXNxbF9mZHdfdmFsaWRhdG9yOwogLS0gQXQgdGhp cyBwb2ludCB3ZSBzaG91bGQgaGF2ZSAyIGJ1aWx0LWluIHdyYXBwZXJzIGFuZCBubyBzZXJ2ZXJz LgotU0VMRUNUIGZkd25hbWUsIGZkd2hhbmRsZXI6OnJlZ3Byb2MsIGZkd3ZhbGlkYXRvcjo6cmVn cHJvYywgZmR3b3B0aW9ucyBGUk9NIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIE9SREVSIEJZIDEs IDIsIDM7CitTRUxFQ1QgZmR3bmFtZSwgZmR3aGFuZGxlcjo6cmVncHJvYywgZmR3dmFsaWRhdG9y OjpyZWdwcm9jLCBmZHdvcHRpb25zIEZST00gcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIgV0hFUkUg b2lkID49IDE2Mzg0IE9SREVSIEJZIDEsIDIsIDM7CiAgIGZkd25hbWUgICB8IGZkd2hhbmRsZXIg fCAgICAgICBmZHd2YWxpZGF0b3IgICAgICAgfCBmZHdvcHRpb25zIAogLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KICBkdW1t eSAgICAgIHwgLSAgICAgICAgICB8IC0gICAgICAgICAgICAgICAgICAgICAgICB8IApAQCAtMzk0 LDYgKzM5NCw0NyBAQCBDUkVBVEUgU0VSVkVSIHQyIEZPUkVJR04gREFUQSBXUkFQUEVSIGZvbzsK IAogUkVTRVQgUk9MRTsKIFJFVk9LRSByZWdyZXNzX3Rlc3RfaW5kaXJlY3QgRlJPTSByZWdyZXNz X3Rlc3Rfcm9sZTsKKy0tIHRlc3QgU0VSVkVSIC4uLiBGT1IgQ09OTkVDVElPTiBPTkxZCitTRVQg Uk9MRSByZWdyZXNzX3Rlc3Rfcm9sZTsKK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBEQVRBIFdS QVBQRVIgcGdfY29ubmVjdGlvbl9mZHc7ICAgLS0gRVJST1I6IG5vdCBhIG1lbWJlciBvZiBwZ19j cmVhdGVfY29ubmVjdGlvbgorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgZm9yZWlnbi1k YXRhIHdyYXBwZXIgcGdfY29ubmVjdGlvbl9mZHcKK1JFU0VUIFJPTEU7CitHUkFOVCBVU0FHRSBP TiBGT1JFSUdOIERBVEEgV1JBUFBFUiBwZ19jb25uZWN0aW9uX2ZkdyBUTyByZWdyZXNzX3Rlc3Rf cm9sZTsKK1NFVCBST0xFIHJlZ3Jlc3NfdGVzdF9yb2xlOworQ1JFQVRFIFNFUlZFUiB0MyBGT1JF SUdOIERBVEEgV1JBUFBFUiBwZ19jb25uZWN0aW9uX2ZkdyBPUFRJT05TIChjbGllbnRfZW5jb2Rp bmcgJ2ZvbycpOyAtLWZhaWxzCitFUlJPUjogIGNhbm5vdCBzcGVjaWZ5IGNsaWVudF9lbmNvZGlu ZyBmb3IgcGdfY29ubmVjdGlvbl9mZHcKK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBEQVRBIFdS QVBQRVIgcGdfY29ubmVjdGlvbl9mZHcgT1BUSU9OUyAodXNlciAnZm9vJyk7IC0tZmFpbHMKK0VS Uk9SOiAgaW52YWxpZCBvcHRpb24gInVzZXIiIGZvciBwZ19jb25uZWN0aW9uX2ZkdworSElOVDog IFNwZWNpZnkgb3B0aW9uICJ1c2VyIiBmb3IgYSB1c2VyIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRo IHRoZSBzZXJ2ZXIgaW5zdGVhZC4KK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBEQVRBIFdSQVBQ RVIgcGdfY29ubmVjdGlvbl9mZHcgT1BUSU9OUyAocGFzc3dvcmQgJ2ZvbycpOyAtLWZhaWxzCitF UlJPUjogIGludmFsaWQgb3B0aW9uICJwYXNzd29yZCIgZm9yIHBnX2Nvbm5lY3Rpb25fZmR3CitI SU5UOiAgU3BlY2lmeSBvcHRpb24gInBhc3N3b3JkIiBmb3IgYSB1c2VyIG1hcHBpbmcgYXNzb2Np YXRlZCB3aXRoIHRoZSBzZXJ2ZXIgaW5zdGVhZC4KK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBE QVRBIFdSQVBQRVIgcGdfY29ubmVjdGlvbl9mZHcgT1BUSU9OUyAocGFzc3dvcmRfcmVxdWlyZWQg J3RydWUnKTsgLS1mYWlscworRVJST1I6ICBpbnZhbGlkIG9wdGlvbiAicGFzc3dvcmRfcmVxdWly ZWQiIGZvciBwZ19jb25uZWN0aW9uX2ZkdworSElOVDogIFNwZWNpZnkgb3B0aW9uICJwYXNzd29y ZF9yZXF1aXJlZCIgZm9yIGEgdXNlciBtYXBwaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VydmVy IGluc3RlYWQuCitDUkVBVEUgU0VSVkVSIHQzIEZPUkVJR04gREFUQSBXUkFQUEVSIHBnX2Nvbm5l Y3Rpb25fZmR3OworSU1QT1JUIEZPUkVJR04gU0NIRU1BIGZvbyBGUk9NIFNFUlZFUiB0MyBJTlRP IGJhcjsgLS0gZmFpbHMKK0VSUk9SOiAgc2NoZW1hICJiYXIiIGRvZXMgbm90IGV4aXN0CitDUkVB VEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzIE9QVElPTlMgKHVzZXIgJ3gnKTsg LS0gZmFpbHMKK0VSUk9SOiAgcGFzc3dvcmQgaXMgcmVxdWlyZWQKK0RFVEFJTDogIE5vbi1zdXBl cnVzZXJzIG11c3QgcHJvdmlkZSBhIHBhc3N3b3JkIGluIHRoZSBjb25uZWN0aW9uIHN0cmluZy4K K0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDMgT1BUSU9OUyAodXNlciAn eCcsIHBhc3N3b3JkX3JlcXVpcmVkICdmYWxzZScpOyAtLSBmYWlscworRVJST1I6ICBwYXNzd29y ZF9yZXF1aXJlZD1mYWxzZSBpcyBzdXBlcnVzZXItb25seSBmb3IgcGdfY29ubmVjdGlvbl9mZHcK K0hJTlQ6ICBVc2VyIG1hcHBpbmdzIHdpdGggdGhlIHBhc3N3b3JkX3JlcXVpcmVkIG9wdGlvbiBz ZXQgdG8gZmFsc2UgbWF5IG9ubHkgYmUgY3JlYXRlZCBvciBtb2RpZmllZCBieSB0aGUgc3VwZXJ1 c2VyLgorQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0MyBPUFRJT05TICh1 c2VyICd4JywgYXBwbGljYXRpb25fbmFtZSAnbm9uc2Vuc2UnKTsgLS0gZmFpbHMKK0VSUk9SOiAg aW52YWxpZCB1c2VyIG1hcHBpbmcgb3B0aW9uICJhcHBsaWNhdGlvbl9uYW1lIiBmb3IgcGdfY29u bmVjdGlvbl9mZHcKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDMgT1BU SU9OUyAodXNlciAneCcsIHBhc3N3b3JkICdzZWNyZXQnKTsKK0RST1AgVVNFUiBNQVBQSU5HIEZP UiBQVUJMSUMgU0VSVkVSIHQzOworUkVTRVQgUk9MRTsKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9S IFBVQkxJQyBTRVJWRVIgdDMgT1BUSU9OUyAodXNlciAneCcpOyAtLSBzdGlsbCBmYWlscworRVJS T1I6ICBwYXNzd29yZCBpcyByZXF1aXJlZAorREVUQUlMOiAgTm9uLXN1cGVydXNlcnMgbXVzdCBw cm92aWRlIGEgcGFzc3dvcmQgaW4gdGhlIGNvbm5lY3Rpb24gc3RyaW5nLgorQ1JFQVRFIFVTRVIg TUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0MyBPUFRJT05TICh1c2VyICd4JywgcGFzc3dvcmQg J3NlY3JldCcpOworRFJPUCBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDM7CitDUkVB VEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzIE9QVElPTlMgKHVzZXIgJ3gnLCBw YXNzd29yZF9yZXF1aXJlZCAnZmFsc2UnKTsKK0RST1AgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMg U0VSVkVSIHQzOworRFJPUCBTRVJWRVIgdDM7CitSRVZPS0UgVVNBR0UgT04gRk9SRUlHTiBEQVRB IFdSQVBQRVIgcGdfY29ubmVjdGlvbl9mZHcgRlJPTSByZWdyZXNzX3Rlc3Rfcm9sZTsKIC0tIEFM VEVSIFNFUlZFUgogQUxURVIgU0VSVkVSIHMwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0gRVJST1IKIEVSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIg IjsiCkBAIC05NjYsMTMgKzEwMDcsMTQgQEAgTk9USUNFOiAgcmVsYXRpb24gImRvZXNudF9leGlz dF9mdDEiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZwogQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBF WElTVFMgZG9lc250X2V4aXN0X2Z0MSBSRU5BTUUgVE8gZm9yZWlnbl90YWJsZV8xOwogTk9USUNF OiAgcmVsYXRpb24gImRvZXNudF9leGlzdF9mdDEiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZwog LS0gSW5mb3JtYXRpb24gc2NoZW1hCi1TRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5m b3JlaWduX2RhdGFfd3JhcHBlcnMgT1JERVIgQlkgMSwgMjsKLSBmb3JlaWduX2RhdGFfd3JhcHBl cl9jYXRhbG9nIHwgZm9yZWlnbl9kYXRhX3dyYXBwZXJfbmFtZSB8IGF1dGhvcml6YXRpb25faWRl bnRpZmllciAgfCBsaWJyYXJ5X25hbWUgfCBmb3JlaWduX2RhdGFfd3JhcHBlcl9sYW5ndWFnZSAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzaW9uICAgICAgICAgICAgICAgICAgIHwgZHVt bXkgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfZm9yZWlnbl9kYXRhX3VzZXIgfCAgICAg ICAgICAgICAgfCBjCi0gcmVncmVzc2lvbiAgICAgICAgICAgICAgICAgICB8IGZvbyAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX2ZvcmVpZ25fZGF0YV91c2VyIHwgICAgICAgICAgICAg IHwgYwotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgICAgfCBwb3N0Z3Jlc3FsICAgICAgICAg ICAgICAgIHwgcmVncmVzc19mb3JlaWduX2RhdGFfdXNlciB8ICAgICAgICAgICAgICB8IGMKLSgz IHJvd3MpCitTRUxFQ1QgZm9yZWlnbl9kYXRhX3dyYXBwZXJfY2F0YWxvZyxmb3JlaWduX2RhdGFf d3JhcHBlcl9uYW1lIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmZvcmVpZ25fZGF0YV93cmFwcGVy cyBPUkRFUiBCWSAxLCAyOworIGZvcmVpZ25fZGF0YV93cmFwcGVyX2NhdGFsb2cgfCBmb3JlaWdu X2RhdGFfd3JhcHBlcl9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgICAgfCBk dW1teQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgICAgfCBmb28KKyByZWdyZXNzaW9uICAg ICAgICAgICAgICAgICAgIHwgcGdfY29ubmVjdGlvbl9mZHcKKyByZWdyZXNzaW9uICAgICAgICAg ICAgICAgICAgIHwgcG9zdGdyZXNxbAorKDQgcm93cykKIAogU0VMRUNUICogRlJPTSBpbmZvcm1h dGlvbl9zY2hlbWEuZm9yZWlnbl9kYXRhX3dyYXBwZXJfb3B0aW9ucyBPUkRFUiBCWSAxLCAyLCAz OwogIGZvcmVpZ25fZGF0YV93cmFwcGVyX2NhdGFsb2cgfCBmb3JlaWduX2RhdGFfd3JhcHBlcl9u YW1lIHwgb3B0aW9uX25hbWUgIHwgb3B0aW9uX3ZhbHVlIApAQCAtMjE4Niw3ICsyMjI4LDcgQEAg Tk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXJ2ZXIgczAKIFxjCiBEUk9QIFJPTEUgcmVncmVz c19mb3JlaWduX2RhdGFfdXNlcjsKIC0tIEF0IHRoaXMgcG9pbnQgd2Ugc2hvdWxkIGhhdmUgbm8g d3JhcHBlcnMsIG5vIHNlcnZlcnMsIGFuZCBubyBtYXBwaW5ncy4KLVNFTEVDVCBmZHduYW1lLCBm ZHdoYW5kbGVyLCBmZHd2YWxpZGF0b3IsIGZkd29wdGlvbnMgRlJPTSBwZ19mb3JlaWduX2RhdGFf d3JhcHBlcjsKK1NFTEVDVCBmZHduYW1lLCBmZHdoYW5kbGVyLCBmZHd2YWxpZGF0b3IsIGZkd29w dGlvbnMgRlJPTSBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciBXSEVSRSBvaWQgPj0gMTYzODQ7CiAg ZmR3bmFtZSB8IGZkd2hhbmRsZXIgfCBmZHd2YWxpZGF0b3IgfCBmZHdvcHRpb25zIAogLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KICgwIHJvd3MpCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggYjE1ZWRkYmZm My4uNzM4ZjFiMTY3OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJz Y3JpcHRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9u Lm91dApAQCAtMTQ0LDYgKzE0NCw0NCBAQCBFUlJPUjogIGNvdWxkIG5vdCBjb25uZWN0IHRvIHRo ZSBwdWJsaXNoZXI6IGludmFsaWQgcG9ydCBudW1iZXI6ICItMSIKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxpZCBj b25uZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGluIGNv bm5lY3Rpb24gaW5mbyBzdHJpbmcKIAorLS0gdGVtcG9yYXJpbHkgcmV2b2tlIHBnX2NyZWF0ZV9j b25uZWN0aW9uIGZyb20gcGdfY3JlYXRlX3N1YnNjcmlwdGlvbgorLS0gdG8gdGVzdCB0aGF0IENS RUFURSBTVUJTQ1JJUFRJT04gLi4uIENPTk5FQ1RJT04gZmFpbHMKK1JFU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTjsKK1JFVk9LRSBwZ19jcmVhdGVfY29ubmVjdGlvbiBGUk9NIHBnX2NyZWF0ZV9z dWJzY3JpcHRpb247CitHUkFOVCBDUkVBVEUgT04gREFUQUJBU0UgUkVHUkVTU0lPTiBUTyByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19zdWJzY3JpcHRpb25fdXNlcjM7CistLSBmYWlsIC0gbm90IGEgbWVtYmVyIG9mIHBnX2NyZWF0 ZV9jb25uZWN0aW9uLCBjYW5ub3QgdXNlIENPTk5FQ1RJT04KK0NSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViNiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg cGFzc3dvcmQ9cmVncmVzc19mYWtlcGFzc3dvcmQnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAo c2xvdF9uYW1lID0gTk9ORSwgY29ubmVjdCA9IGZhbHNlKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgdG8gY3JlYXRlIHN1YnNjcmlwdGlvbiB3aXRoIGEgY29ubmVjdGlvbiBzdHJpbmcKK0RF VEFJTDogIE9ubHkgcm9sZXMgd2l0aCBwcml2aWxlZ2VzIG9mIHRoZSAicGdfY3JlYXRlX2Nvbm5l Y3Rpb24iIHJvbGUgbWF5IGNyZWF0ZSBzdWJzY3JpcHRpb25zIHdpdGggQ09OTkVDVElPTiBzcGVj aWZpZWQuCitISU5UOiAgQ3JlYXRlIGEgc3Vic2NyaXB0aW9uIHRvIGEgZm9yZWlnbiBzZXJ2ZXIg Ynkgc3BlY2lmeWluZyBTRVJWRVIgaW5zdGVhZC4KKy0tIHJlLWdyYW50IHBnX2NyZWF0ZV9jb25u ZWN0aW9uIHRvIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb24KK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTjsKK0dSQU5UIHBnX2NyZWF0ZV9jb25uZWN0aW9uIFRPIHBnX2NyZWF0ZV9zdWJzY3JpcHRp b247CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIz OworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2IENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCBwYXNzd29yZD1yZWdyZXNzX2Zha2VwYXNzd29yZCcgUFVC TElDQVRJT04gdGVzdHB1YiBXSVRIIChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2Up OworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0 ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3Jl YXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJl ZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YjY7CistLSB0ZXN0IHVzaW5nIGEgc2VydmVyIG9iamVjdCBpbnN0ZWFkIG9mIGNvbm5lY3Rpb24g c3RyaW5nCitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitDUkVBVEUgU0VSVkVSIHJlZ3Jl c3NfdGVzdHNlcnZlciBGT1JFSUdOIERBVEEgV1JBUFBFUiBwZ19jb25uZWN0aW9uX2ZkdzsKK0NS RUFURSBVU0VSIE1BUFBJTkcgRk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiBy ZWdyZXNzX3Rlc3RzZXJ2ZXIKKyAgT1BUSU9OUyAocGFzc3dvcmRfcmVxdWlyZWQgJ2ZhbHNlJyk7 CitHUkFOVCBVU0FHRSBPTiBGT1JFSUdOIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIgVE8gcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI2IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIgUFVCTElDQVRJT04gdGVzdHB1YgorICBXSVRI IChzbG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworV0FSTklORzogIHN1YnNjcmlw dGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0 ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBz bG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlv bi4KK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWI2IE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7IC0tIGZhaWws IG5vIHVzZXIgbWFwcGluZworRVJST1I6ICB1c2VyIG1hcHBpbmcgbm90IGZvdW5kIGZvciB1c2Vy ICJyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIiwgc2VydmVyICJyZWdyZXNzX3Rlc3RzZXJ2ZXIi CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2OworRFJPUCBVU0VSIE1BUFBJTkcg Rk9SIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXI7 CitEUk9QIFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXI7CitSRVZPS0UgQ1JFQVRFIE9OIERBVEFC QVNFIHJlZ3Jlc3Npb24gRlJPTSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKK1NFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIFxkUnMrCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucwogICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFNraXAgTFNOIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9y ZWlnbl9kYXRhLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwKaW5k ZXggZWVmYjg2MGFkYy4uMTVhMjhkZTlhYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZm9yZWlnbl9kYXRhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWduX2Rh dGEuc3FsCkBAIC0zNiw3ICszNiw3IEBAIENPTU1FTlQgT04gRk9SRUlHTiBEQVRBIFdSQVBQRVIg ZHVtbXkgSVMgJ3VzZWxlc3MnOwogQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIHBvc3RncmVz cWwgVkFMSURBVE9SIHBvc3RncmVzcWxfZmR3X3ZhbGlkYXRvcjsKIAogLS0gQXQgdGhpcyBwb2lu dCB3ZSBzaG91bGQgaGF2ZSAyIGJ1aWx0LWluIHdyYXBwZXJzIGFuZCBubyBzZXJ2ZXJzLgotU0VM RUNUIGZkd25hbWUsIGZkd2hhbmRsZXI6OnJlZ3Byb2MsIGZkd3ZhbGlkYXRvcjo6cmVncHJvYywg ZmR3b3B0aW9ucyBGUk9NIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIE9SREVSIEJZIDEsIDIsIDM7 CitTRUxFQ1QgZmR3bmFtZSwgZmR3aGFuZGxlcjo6cmVncHJvYywgZmR3dmFsaWRhdG9yOjpyZWdw cm9jLCBmZHdvcHRpb25zIEZST00gcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIgV0hFUkUgb2lkID49 IDE2Mzg0IE9SREVSIEJZIDEsIDIsIDM7CiBTRUxFQ1Qgc3J2bmFtZSwgc3J2b3B0aW9ucyBGUk9N IHBnX2ZvcmVpZ25fc2VydmVyOwogU0VMRUNUICogRlJPTSBwZ191c2VyX21hcHBpbmc7CiAKQEAg LTE4MCw2ICsxODAsNDEgQEAgQ1JFQVRFIFNFUlZFUiB0MiBGT1JFSUdOIERBVEEgV1JBUFBFUiBm b287CiBSRVNFVCBST0xFOwogUkVWT0tFIHJlZ3Jlc3NfdGVzdF9pbmRpcmVjdCBGUk9NIHJlZ3Jl c3NfdGVzdF9yb2xlOwogCistLSB0ZXN0IFNFUlZFUiAuLi4gRk9SIENPTk5FQ1RJT04gT05MWQor CitTRVQgUk9MRSByZWdyZXNzX3Rlc3Rfcm9sZTsKK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBE QVRBIFdSQVBQRVIgcGdfY29ubmVjdGlvbl9mZHc7ICAgLS0gRVJST1I6IG5vdCBhIG1lbWJlciBv ZiBwZ19jcmVhdGVfY29ubmVjdGlvbgorUkVTRVQgUk9MRTsKK0dSQU5UIFVTQUdFIE9OIEZPUkVJ R04gREFUQSBXUkFQUEVSIHBnX2Nvbm5lY3Rpb25fZmR3IFRPIHJlZ3Jlc3NfdGVzdF9yb2xlOwor U0VUIFJPTEUgcmVncmVzc190ZXN0X3JvbGU7CisKK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBE QVRBIFdSQVBQRVIgcGdfY29ubmVjdGlvbl9mZHcgT1BUSU9OUyAoY2xpZW50X2VuY29kaW5nICdm b28nKTsgLS1mYWlscworQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEgV1JBUFBFUiBwZ19j b25uZWN0aW9uX2ZkdyBPUFRJT05TICh1c2VyICdmb28nKTsgLS1mYWlscworQ1JFQVRFIFNFUlZF UiB0MyBGT1JFSUdOIERBVEEgV1JBUFBFUiBwZ19jb25uZWN0aW9uX2ZkdyBPUFRJT05TIChwYXNz d29yZCAnZm9vJyk7IC0tZmFpbHMKK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBEQVRBIFdSQVBQ RVIgcGdfY29ubmVjdGlvbl9mZHcgT1BUSU9OUyAocGFzc3dvcmRfcmVxdWlyZWQgJ3RydWUnKTsg LS1mYWlscworQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEgV1JBUFBFUiBwZ19jb25uZWN0 aW9uX2ZkdzsKKworSU1QT1JUIEZPUkVJR04gU0NIRU1BIGZvbyBGUk9NIFNFUlZFUiB0MyBJTlRP IGJhcjsgLS0gZmFpbHMKKworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0 MyBPUFRJT05TICh1c2VyICd4Jyk7IC0tIGZhaWxzCitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQ VUJMSUMgU0VSVkVSIHQzIE9QVElPTlMgKHVzZXIgJ3gnLCBwYXNzd29yZF9yZXF1aXJlZCAnZmFs c2UnKTsgLS0gZmFpbHMKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDMg T1BUSU9OUyAodXNlciAneCcsIGFwcGxpY2F0aW9uX25hbWUgJ25vbnNlbnNlJyk7IC0tIGZhaWxz CisKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDMgT1BUSU9OUyAodXNl ciAneCcsIHBhc3N3b3JkICdzZWNyZXQnKTsKK0RST1AgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMg U0VSVkVSIHQzOworCitSRVNFVCBST0xFOworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVCTElD IFNFUlZFUiB0MyBPUFRJT05TICh1c2VyICd4Jyk7IC0tIHN0aWxsIGZhaWxzCisKK0NSRUFURSBV U0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDMgT1BUSU9OUyAodXNlciAneCcsIHBhc3N3 b3JkICdzZWNyZXQnKTsKK0RST1AgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzOwor CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzIE9QVElPTlMgKHVzZXIg J3gnLCBwYXNzd29yZF9yZXF1aXJlZCAnZmFsc2UnKTsKKworRFJPUCBVU0VSIE1BUFBJTkcgRk9S IFBVQkxJQyBTRVJWRVIgdDM7CitEUk9QIFNFUlZFUiB0MzsKK1JFVk9LRSBVU0FHRSBPTiBGT1JF SUdOIERBVEEgV1JBUFBFUiBwZ19jb25uZWN0aW9uX2ZkdyBGUk9NIHJlZ3Jlc3NfdGVzdF9yb2xl OworCiAtLSBBTFRFUiBTRVJWRVIKIEFMVEVSIFNFUlZFUiBzMDsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEVSUk9SCiBBTFRFUiBTRVJWRVIgczAgT1BUSU9O UyAoYSAnMScpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBFUlJPUgpAQCAtNDUzLDcg KzQ4OCw3IEBAIEFMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEg UkVOQU1FIFRPIGZvcmVpZ25fdGFibGVfMTsKIAogLS0gSW5mb3JtYXRpb24gc2NoZW1hCiAKLVNF TEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmZvcmVpZ25fZGF0YV93cmFwcGVycyBPUkRF UiBCWSAxLCAyOworU0VMRUNUIGZvcmVpZ25fZGF0YV93cmFwcGVyX2NhdGFsb2csZm9yZWlnbl9k YXRhX3dyYXBwZXJfbmFtZSBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5mb3JlaWduX2RhdGFfd3Jh cHBlcnMgT1JERVIgQlkgMSwgMjsKIFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmZv cmVpZ25fZGF0YV93cmFwcGVyX29wdGlvbnMgT1JERVIgQlkgMSwgMiwgMzsKIFNFTEVDVCAqIEZS T00gaW5mb3JtYXRpb25fc2NoZW1hLmZvcmVpZ25fc2VydmVycyBPUkRFUiBCWSAxLCAyOwogU0VM RUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuZm9yZWlnbl9zZXJ2ZXJfb3B0aW9ucyBPUkRF UiBCWSAxLCAyLCAzOwpAQCAtODYxLDYgKzg5Niw2IEBAIERST1AgRk9SRUlHTiBEQVRBIFdSQVBQ RVIgZHVtbXkgQ0FTQ0FERTsKIERST1AgUk9MRSByZWdyZXNzX2ZvcmVpZ25fZGF0YV91c2VyOwog CiAtLSBBdCB0aGlzIHBvaW50IHdlIHNob3VsZCBoYXZlIG5vIHdyYXBwZXJzLCBubyBzZXJ2ZXJz LCBhbmQgbm8gbWFwcGluZ3MuCi1TRUxFQ1QgZmR3bmFtZSwgZmR3aGFuZGxlciwgZmR3dmFsaWRh dG9yLCBmZHdvcHRpb25zIEZST00gcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXI7CitTRUxFQ1QgZmR3 bmFtZSwgZmR3aGFuZGxlciwgZmR3dmFsaWRhdG9yLCBmZHdvcHRpb25zIEZST00gcGdfZm9yZWln bl9kYXRhX3dyYXBwZXIgV0hFUkUgb2lkID49IDE2Mzg0OwogU0VMRUNUIHNydm5hbWUsIHNydm9w dGlvbnMgRlJPTSBwZ19mb3JlaWduX3NlcnZlcjsKIFNFTEVDVCAqIEZST00gcGdfdXNlcl9tYXBw aW5nOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggNDQ0ZTU2M2ZmMy4u YmVmNmJjODA3NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9u LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC04OCw2 ICs4OCw0NSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjUgQ09OTkVDVElP TiAncG9ydD0tMScgUFVCTElDQVRJT04gdGVzdHB1YjsKIC0tIGZhaWwgLSBpbnZhbGlkIGNvbm5l Y3Rpb24gc3RyaW5nIGR1cmluZyBBTFRFUgogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdmb29iYXInOwogCistLSB0ZW1wb3JhcmlseSByZXZva2UgcGdfY3Jl YXRlX2Nvbm5lY3Rpb24gZnJvbSBwZ19jcmVhdGVfc3Vic2NyaXB0aW9uCistLSB0byB0ZXN0IHRo YXQgQ1JFQVRFIFNVQlNDUklQVElPTiAuLi4gQ09OTkVDVElPTiBmYWlscworUkVTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OOworUkVWT0tFIHBnX2NyZWF0ZV9jb25uZWN0aW9uIEZST00gcGdfY3Jl YXRlX3N1YnNjcmlwdGlvbjsKK0dSQU5UIENSRUFURSBPTiBEQVRBQkFTRSBSRUdSRVNTSU9OIFRP IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKKworLS0gZmFpbCAtIG5vdCBhIG1lbWJlciBvZiBw Z19jcmVhdGVfY29ubmVjdGlvbiwgY2Fubm90IHVzZSBDT05ORUNUSU9OCitDUkVBVEUgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHBhc3N3b3JkPXJlZ3Jlc3NfZmFrZXBhc3N3b3JkJyBQVUJMSUNBVElPTiB0ZXN0cHVi IFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CisKKy0tIHJlLWdyYW50 IHBnX2NyZWF0ZV9jb25uZWN0aW9uIHRvIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb24KK1JFU0VUIFNF U1NJT04gQVVUSE9SSVpBVElPTjsKK0dSQU5UIHBnX2NyZWF0ZV9jb25uZWN0aW9uIFRPIHBnX2Ny ZWF0ZV9zdWJzY3JpcHRpb247CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIzOworCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYg Q09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHBhc3N3b3JkPXJlZ3Jlc3Nf ZmFrZXBhc3N3b3JkJyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUs IGNvbm5lY3QgPSBmYWxzZSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2Owor CistLSB0ZXN0IHVzaW5nIGEgc2VydmVyIG9iamVjdCBpbnN0ZWFkIG9mIGNvbm5lY3Rpb24gc3Ry aW5nCisKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0NSRUFURSBTRVJWRVIgcmVncmVz c190ZXN0c2VydmVyIEZPUkVJR04gREFUQSBXUkFQUEVSIHBnX2Nvbm5lY3Rpb25fZmR3OworQ1JF QVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJl Z3Jlc3NfdGVzdHNlcnZlcgorICBPUFRJT05TIChwYXNzd29yZF9yZXF1aXJlZCAnZmFsc2UnKTsK K0dSQU5UIFVTQUdFIE9OIEZPUkVJR04gU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlciBUTyByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViNiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyIFBVQkxJQ0FUSU9OIHRlc3RwdWIKKyAgV0lU SCAoc2xvdF9uYW1lID0gTk9ORSwgY29ubmVjdCA9IGZhbHNlKTsKK1JFU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTjsKKworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgT1dORVIg VE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsgLS0gZmFpbCwgbm8gdXNlciBtYXBwaW5nCitE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2OworCitEUk9QIFVTRVIgTUFQUElORyBG T1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjsK K0RST1AgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjsKK1JFVk9LRSBDUkVBVEUgT04gREFUQUJB U0UgcmVncmVzc2lvbiBGUk9NIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOworCiBcZFJzKwogCiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCBQVUJMSUNBVElPTiB0ZXN0cHVi MiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAwMV9yZXBfY2hhbmdlcy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAwMV9yZXBfY2hhbmdlcy5wbAppbmRleCAxNmM3ZmI5NGViLi5kMTJjMTgyZjE2IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMDFfcmVwX2NoYW5nZXMucGwKKysrIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBsCkBAIC0yNyw2ICsyNyw4 IEBAICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIkNSRUFURSBUQUJM RSB0YWJfbm90cmVwIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMgYSIpOwogJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFRBQkxFIHRhYl9p bnMgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEwMDIpIEFTIGEiKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0YWJfaW5zMiBBUyBT RUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMikgQVMgYSIpOwogJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFRBQkxFIHRhYl9mdWxsIEFTIFNFTEVDVCBn ZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMgYSIpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfZnVsbDIgKHggdGV4dCkiKTsKQEAgLTY1LDYg KzY3LDcgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKICMgU2V0dXAg c3RydWN0dXJlIG9uIHN1YnNjcmliZXIKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRhYl9ub3RyZXAgKGEgaW50KSIpOwogJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUgVEFCTEUgdGFiX2lucyAoYSBpbnQp Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJM RSB0YWJfaW5zMiAoYSBpbnQpIik7CiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIkNSRUFURSBUQUJMRSB0YWJfZnVsbCAoYSBpbnQpIik7CiAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfZnVsbDIgKHggdGV4dCki KTsKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLApAQCAtMTEwLDYgKzEx MywyMiBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRF IFNVQlNDUklQVElPTiB0YXBfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVC TElDQVRJT04gdGFwX3B1YiwgdGFwX3B1Yl9pbnNfb25seSIKICk7CiAKK215ICRwdWJsaXNoZXJf aG9zdCA9ICRub2RlX3B1Ymxpc2hlci0+aG9zdDsKK215ICRwdWJsaXNoZXJfcG9ydCA9ICRub2Rl X3B1Ymxpc2hlci0+cG9ydDsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgU0VSVkVSIHRhcF9zdWIyX3NlcnZlciBGT1JFSUdOIERBVEEgV1JBUFBFUiBw Z19jb25uZWN0aW9uX2ZkdyBPUFRJT05TIChob3N0ICckcHVibGlzaGVyX2hvc3QnLCBwb3J0ICck cHVibGlzaGVyX3BvcnQnLCBkYm5hbWUgJ3Bvc3RncmVzJykiCispOworCiskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVC TElDIFNFUlZFUiB0YXBfc3ViMl9zZXJ2ZXIgT1BUSU9OUyAocGFzc3dvcmRfcmVxdWlyZWQgJ2Zh bHNlJykiCispOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JF QVRFIFBVQkxJQ0FUSU9OIHRhcF9zaW1wbGVfcHViIEZPUiBUQUJMRSB0YWJfaW5zMiIpOworCisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQ VElPTiB0YXBfc3ViMiBTRVJWRVIgdGFwX3N1YjJfc2VydmVyIFBVQkxJQ0FUSU9OIHRhcF9zaW1w bGVfcHViIgorKTsKKwogIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCiAk bm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNo ZXIsICd0YXBfc3ViJyk7CiAKQEAgLTEyMSwxMSArMTQwLDIyIEBAICRyZXN1bHQgPQogICAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9N IHRhYl9pbnMiKTsKIGlzKCRyZXN1bHQsIHFxKDEwMDIpLCAnY2hlY2sgaW5pdGlhbCBkYXRhIHdh cyBjb3BpZWQgdG8gc3Vic2NyaWJlcicpOwogCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSB0YWJfaW5zMiIp OworaXMoJHJlc3VsdCwgcXEoMTAwMiksICdjaGVjayBpbml0aWFsIGRhdGEgd2FzIGNvcGllZCB0 byBzdWJzY3JpYmVyJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWIyIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29u bnN0ciciKTsKKwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiSU5T RVJUIElOVE8gdGFiX2lucyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsNTApIik7CiAkbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiREVMRVRFIEZST00gdGFiX2lucyBXSEVS RSBhID4gMjAiKTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJVUERB VEUgdGFiX2lucyBTRVQgYSA9IC1hIik7CiAKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRhYl9pbnMyIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMo MSw1MCkiKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRF UiBTVUJTQ1JJUFRJT04gdGFwX3N1YjIgU0VSVkVSIHRhcF9zdWIyX3NlcnZlciIpOworCiAkbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJJTlNFUlQgSU5UTyB0YWJfcmVw IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSw1MCkiKTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSB0YWJfcmVwIFdIRVJFIGEgPiAyMCIpOwpAQCAt MTU4LDYgKzE4OCwxMCBAQCAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCiAJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSB0YWJfaW5z Iik7CiBpcygkcmVzdWx0LCBxcSgxMDUyfDF8MTAwMiksICdjaGVjayByZXBsaWNhdGVkIGluc2Vy dHMgb24gc3Vic2NyaWJlcicpOwogCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSB0 YWJfaW5zMiIpOworaXMoJHJlc3VsdCwgcXEoMTA1MnwxfDEwMDIpLCAnY2hlY2sgcmVwbGljYXRl ZCBpbnNlcnRzIG9uIHN1YnNjcmliZXInKTsKKwogJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEp IEZST00gdGFiX3JlcCIpOwogaXMoJHJlc3VsdCwgcXEoMjB8LTIwfC0xKSwgJ2NoZWNrIHJlcGxp Y2F0ZWQgY2hhbmdlcyBvbiBzdWJzY3JpYmVyJyk7CkBAIC00NDksMTAgKzQ4MywyNyBAQCAkbm9k ZV9wdWJsaXNoZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywKICAgb3IgZGllCiAgICJU aW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3IgYXBwbHkgdG8gcmVzdGFydCBhZnRlciBjaGFuZ2lu ZyBQVUJMSUNBVElPTiI7CiAKKyMgdGVzdCB0aGF0IGNoYW5nZXMgdG8gYSBmb3JlaWduIHNlcnZl ciBzdWJzY3JpcHRpb24gY2F1c2UgdGhlIHdvcmtlcgorIyB0byByZXN0YXJ0Ciskb2xkcGlkID0g JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHBpZCBGUk9N IHBnX3N0YXRfcmVwbGljYXRpb24gV0hFUkUgYXBwbGljYXRpb25fbmFtZSA9ICd0YXBfc3ViMicg QU5EIHN0YXRlID0gJ3N0cmVhbWluZyc7IgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJBTFRFUiBTRVJWRVIgdGFwX3N1YjJfc2VydmVyIE9QVElPTlMgKHNz bG1vZGUgJ2Rpc2FibGUnKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnBvbGxfcXVlcnlfdW50aWwo J3Bvc3RncmVzJywKKwkiU0VMRUNUIHBpZCAhPSAkb2xkcGlkIEZST00gcGdfc3RhdF9yZXBsaWNh dGlvbiBXSEVSRSBhcHBsaWNhdGlvbl9uYW1lID0gJ3RhcF9zdWIyJyBBTkQgc3RhdGUgPSAnc3Ry ZWFtaW5nJzsiCisgICkKKyAgb3IgZGllCisgICJUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3Ig YXBwbHkgdG8gcmVzdGFydCBhZnRlciBjaGFuZ2luZyBQVUJMSUNBVElPTiI7CisKICRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIklOU0VSVCBJTlRPIHRhYl9pbnMgU0VM RUNUIGdlbmVyYXRlX3NlcmllcygxMDAxLDExMDApIik7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiREVMRVRFIEZST00gdGFiX3JlcCIpOwogCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0YWJfaW5zMiBTRUxFQ1Qg Z2VuZXJhdGVfc2VyaWVzKDEwMDEsMTEwMCkiKTsKKwogIyBSZXN0YXJ0IHRoZSBwdWJsaXNoZXIg YW5kIGNoZWNrIHRoZSBzdGF0ZSBvZiB0aGUgc3Vic2NyaWJlciB3aGljaAogIyBzaG91bGQgYmUg aW4gYSBzdHJlYW1pbmcgc3RhdGUgYWZ0ZXIgY2F0Y2hpbmcgdXAuCiAkbm9kZV9wdWJsaXNoZXIt PnN0b3AoJ2Zhc3QnKTsKQEAgLTQ2NSw2ICs1MTYsMTEgQEAgJHJlc3VsdCA9ICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogaXMoJHJlc3VsdCwgcXEoMTE1MnwxfDExMDAp LAogCSdjaGVjayByZXBsaWNhdGVkIGluc2VydHMgYWZ0ZXIgc3Vic2NyaXB0aW9uIHB1YmxpY2F0 aW9uIGNoYW5nZScpOwogCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSB0YWJfaW5z MiIpOworaXMoJHJlc3VsdCwgcXEoMTE1MnwxfDExMDApLAorCSdjaGVjayByZXBsaWNhdGVkIGlu c2VydHMgYWZ0ZXIgc3Vic2NyaXB0aW9uIHB1YmxpY2F0aW9uIGNoYW5nZScpOworCiAkcmVzdWx0 ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBjb3Vu dCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSB0YWJfcmVwIik7CiBpcygkcmVzdWx0LCBxcSgyMHwt MjB8LTEpLApAQCAtNTMzLDYgKzU4OSw3IEBAICRub2RlX3B1Ymxpc2hlci0+cG9sbF9xdWVyeV91 bnRpbCgncG9zdGdyZXMnLAogCiAjIGNoZWNrIGFsbCB0aGUgY2xlYW51cAogJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViX3Jl bmFtZWQiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBT VUJTQ1JJUFRJT04gdGFwX3N1YjIiKTsKIAogJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zdWJzY3JpcHRp b24iKTsKLS0gCjIuMzQuMQoK --=-unBjFrK/7K2+G3YpHYne--