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 1rJMBW-00CsBE-Sl for pgsql-hackers@arkaria.postgresql.org; Fri, 29 Dec 2023 23:22:35 +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 1rJMBT-00D3mI-9B for pgsql-hackers@arkaria.postgresql.org; Fri, 29 Dec 2023 23:22:31 +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 1rJMBS-00D3m9-Cy for pgsql-hackers@lists.postgresql.org; Fri, 29 Dec 2023 23:22:30 +0000 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rJMBN-00CpCt-Qy for pgsql-hackers@postgresql.org; Fri, 29 Dec 2023 23:22:29 +0000 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-28bfdf3cd12so3226345a91.3 for ; Fri, 29 Dec 2023 15:22:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1703892145; x=1704496945; 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=R8m6NcO7+DkMzxlApkAgI9NlF66BPk9WLYKfiewohak=; b=zVt1ygfY//sztBiJRuP2TDkSszd/LH4En0qjOvj4pb/DO3sNizh7OGZiuuo5VtNaJo p+L9I8yaRhqZEfEeK2n67fbEMUZ79XpfrZm6ImlCB6+Lawi9Uuq4+D7liELBbug/7Nnt JyQq/5NfJXvrOW8BRMWmL6tL/NVTrdouYmsxdEjSbrCdMJz3sQ4mK6bP+91TClY3NBHI IJFQjyt8Mhzc0RMHT3Bj9cQqaICVkFc+8r+OON8bqg1Q0bdspsF/JbcRyNFOfE9u44LE 8JC8LYvtxdwqMkZIynfyoOfINWX8tE3o/gRTD9TSUKVwSP7CNqmP7azCJRddRQJF5/Ed 2DFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703892145; x=1704496945; 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=R8m6NcO7+DkMzxlApkAgI9NlF66BPk9WLYKfiewohak=; b=dY1rwRnyOKrM8CSBQxFYro9LNFu7kc4tAb0XLcetRNoF7WxbedJxs9waEb/D5C+dfY hlDvQYkQNcwRDhL04XcNDTpnQeLUpWX7aD7tZ4lMvq1GCFnsM32lqn6sQ1TTFA7EzEAN spWVjqKl63louUqHs9e7gdny5KQaXciYHExIDjtlIVj8ESqK5DLY/KSHh5ZemFLrpGvb f5xv2jWO7v94FV70TXYH4S0djgiAAHy6u2M3DhbJdx/hKwsdooRWWJxW/bfHE+zOu8Z6 81HTYCBSc607tSTw9LwoAa7ZWsn2qn+V7grB38QXAJoFWVnBiCBlq7t0439VFmASwIsb rXsA== X-Gm-Message-State: AOJu0YwRRINdHeGBhooJpyBM9xJoqJHyznIskJtqLWJ+3pJZZ1ezpg+B 3OBNvNJNIMj1AxQfbnJ36AmBFMjBWxHG X-Google-Smtp-Source: AGHT+IEXy91f5/ZIk3fuW/bIvCochXZ2cMxrBq5MqZOp0GhcMpnXm6GgoTH45n80XPby/s1MqpY0FA== X-Received: by 2002:a17:90a:bc92:b0:28c:4867:eacf with SMTP id x18-20020a17090abc9200b0028c4867eacfmr2932932pjr.16.1703892144454; Fri, 29 Dec 2023 15:22:24 -0800 (PST) Received: from [172.18.10.36] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id s14-20020a170902ea0e00b001d34126d64dsm14175362plg.222.2023.12.29.15.22.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Dec 2023 15:22:23 -0800 (PST) Message-ID: <93392ffa941ab0d436e19e0ab5d04d0e42c02d3f.camel@j-davis.com> Subject: Re: [17] CREATE SUBSCRIPTION ... SERVER From: Jeff Davis To: Ashutosh Bapat Cc: Joe Conway , pgsql-hackers@postgresql.org Date: Fri, 29 Dec 2023 15:22:23 -0800 In-Reply-To: <05ae37abb207cd6bf6b126780024692d91402b0b.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> Content-Type: multipart/mixed; boundary="=-16fpqyIBQDUo0ogF2k2k" 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 --=-16fpqyIBQDUo0ogF2k2k Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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. Attached a rough rebased version implementing the above with a pg_connection_fdw foreign data wrapper built in. Regards, Jeff Davis --=-16fpqyIBQDUo0ogF2k2k Content-Disposition: attachment; filename="v3-0001-CREATE-SUBSCRIPTION-.-SERVER.patch" Content-Type: text/x-patch; name="v3-0001-CREATE-SUBSCRIPTION-.-SERVER.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3NzZjZDhlNWUxNTQxYzU2YjE3NjdhYTU5NWZjNjA5ZmRlZmZhNWUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDIzIEF1ZyAyMDIzIDEwOjMxOjE2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2M10gQ1JFQVRF IFNVQlNDUklQVElPTiAuLi4gU0VSVkVSLgoKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1 YnNjcmlwdGlvbi5zZ21sICAgICAgfCAgIDcgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1 YnNjcmlwdGlvbi5zZ21sICAgICB8ICAxNSArLQogZG9jL3NyYy9zZ21sL3VzZXItbWFuYWcuc2dt bCAgICAgICAgICAgICAgICAgIHwgIDIxICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxl ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uYyAgICAgICAgIHwgIDE3ICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5j dGlvbnMuc3FsICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9u Y21kcy5jICAgICAgIHwgMTk3ICsrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2ZvcmVpZ24v Zm9yZWlnbi5jICAgICAgICAgICAgICAgICB8IDIxNCArKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAyMCArKwogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyAgICAgIHwgIDEyICstCiBzcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgNTkgKysrKy0KIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmlu L3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9iaW4v cHNxbC90YWItY29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYXV0aGlkLmRhdCAgICAgICAgICAgICB8ICAgNSArCiAuLi4vY2F0YWxvZy9w Z19mb3JlaWduX2RhdGFfd3JhcHBlci5kYXQgICAgICAgfCAgMjIgKysKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgOCArCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5oICAgICAgICAgfCAgIDUgKy0KIHNyYy9pbmNsdWRlL2ZvcmVp Z24vZm9yZWlnbi5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9mb3JlaWduX2RhdGEub3V0ICAgIHwgIDYwICsrKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgICAgfCAgMzggKysrKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvZm9yZWlnbl9kYXRhLnNxbCAgICAgICAgIHwgIDQxICsrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3N1YnNjcmlwdGlvbi5zcWwgICAgICAgICB8ICAzOSArKysrCiBzcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMDFfcmVwX2NoYW5nZXMucGwgICAgfCAgNTcgKysrKysKIDI2IGZpbGVzIGNoYW5n ZWQsIDc5OSBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyLmRhdAoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDZkMzZmZjBkYzkuLmYyMjM1 MDYxYmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbApAQCAtMjEs NiArMjEsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4K IDxzeW5vcHNpcz4KK0FMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFUlZFUiA8cmVwbGFjZWFibGU+c2VydmVybmFtZTwv cmVwbGFjZWFibGU+CiBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBDT05ORUNUSU9OICc8cmVwbGFjZWFibGU+Y29ubmlu Zm88L3JlcGxhY2VhYmxlPicKIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29w dGlvbjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1 ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0KIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IEFERCBQVUJMSUNBVElP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fbmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLl0gWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1 YmxpY2F0aW9uX29wdGlvbjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0KQEAgLTk4LDkgKzk5LDkg QEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICA8dGVybT48bGl0ZXJhbD5DT05ORUNUSU9O ICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88L3JlcGxhY2VhYmxlPic8 L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBUaGlz IGNsYXVzZSByZXBsYWNlcyB0aGUgY29ubmVjdGlvbiBzdHJpbmcgb3JpZ2luYWxseSBzZXQgYnkK LSAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iLz4uICBTZWUgdGhl cmUgZm9yIG1vcmUKLSAgICAgIGluZm9ybWF0aW9uLgorICAgICAgVGhpcyBjbGF1c2UgcmVwbGFj ZXMgdGhlIGZvcmVpZ24gc2VydmVyIG9yIGNvbm5lY3Rpb24gc3RyaW5nIG9yaWdpbmFsbHkKKyAg ICAgIHNldCBieSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uIi8+IHdpdGgg dGhlIGNvbm5lY3Rpb24KKyAgICAgIHN0cmluZyA8cmVwbGFjZWFibGU+Y29ubmluZm88L3JlcGxh Y2VhYmxlPi4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRy eT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggZjFjMjBi M2E0Ni4uY2Q3NmIyZTMyZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9u LnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5 bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmxlPgotICAgIENP Tk5FQ1RJT04gJzxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25uaW5mbzwvcmVwbGFj ZWFibGU+JworICAgIHsgU0VSVkVSIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXJ2 ZXJuYW1lPC9yZXBsYWNlYWJsZT4gfCBDT05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29ubmluZm88L3JlcGxhY2VhYmxlPicgfQogICAgIFBVQkxJQ0FUSU9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4g WywgLi4uXQogICAgIFsgV0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdWJz Y3JpcHRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkgXQogPC9zeW5vcHNpcz4K QEAgLTc3LDYgKzc3LDE1IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsCiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl c3Vic2NyaXB0aW9uLXBhcmFtcy1zZXJ2ZXIiPgorICAgIDx0ZXJtPjxsaXRlcmFsPlNFUlZFUiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2VydmVybmFtZTwvcmVwbGFjZWFibGU+PC9s aXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQSBmb3Jl aWduIHNlcnZlciB0byB1c2UgZm9yIHRoZSBjb25uZWN0aW9uLgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlkPSJz cWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy1jb25uZWN0aW9uIj4KICAgICA8dGVybT48bGl0 ZXJhbD5DT05ORUNUSU9OICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29ubmluZm88 L3JlcGxhY2VhYmxlPic8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTM2Myw2 ICszNzIsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwKICAgICAgICAgICBUaGUgZGVmYXVs dCBpcyA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPi4gT25seSBzdXBlcnVzZXJzIGNhbiBzZXQKICAg ICAgICAgICB0aGlzIHZhbHVlIHRvIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KICAgICAgICAg IDwvcGFyYT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIE9ubHkgYWxsb3dlZCB3aGVuIDxs aXRlcmFsPkNPTk5FQ1RJT048L2xpdGVyYWw+IGlzCisgICAgICAgICAgc3BlY2lmaWVkLiBPdGhl cndpc2UsIHNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldXNlcm1hcHBpbmciLz4uCisgICAg ICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+ CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC91c2VyLW1hbmFnLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvdXNlci1tYW5hZy5zZ21sCmluZGV4IDkyYTI5OWQyZDMuLmQ2M2EzM2E0YjMgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC91c2VyLW1hbmFnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3VzZXIt bWFuYWcuc2dtbApAQCAtNjg3LDExICs2ODcsMjAgQEAgRFJPUCBST0xFIGRvb21lZF9yb2xlOwog ICAgICAgIDxlbnRyeT5BbGxvdyB1c2Ugb2YgY29ubmVjdGlvbiBzbG90cyByZXNlcnZlZCB2aWEK ICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtcmVzZXJ2ZWQtY29ubmVjdGlvbnMiLz4uPC9lbnRy eT4KICAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+cGdfY3JlYXRlX2Nv bm5lY3Rpb248L2VudHJ5PgorICAgICAgIDxlbnRyeT5BbGxvdyB1c2VycyB3aXRoIDxsaXRlcmFs PkNSRUFURTwvbGl0ZXJhbD4gcGVybWlzc2lvbiBvbiB0aGUKKyAgICAgICBkYXRhYmFzZSB0byBp c3N1ZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc2VydmVyIj48Y29tbWFuZD5DUkVBVEUKKyAg ICAgICBTRVJWRVI8L2NvbW1hbmQ+PC9saW5rPiBpZiA8bGl0ZXJhbD5GT1IgQ09OTkVDVElPTiBP TkxZPC9saXRlcmFsPiBpcworICAgICAgIHNwZWNpZmllZC48L2VudHJ5PgorICAgICAgPC9yb3c+ CiAgICAgICA8cm93PgogICAgICAgIDxlbnRyeT5wZ19jcmVhdGVfc3Vic2NyaXB0aW9uPC9lbnRy eT4KICAgICAgICA8ZW50cnk+QWxsb3cgdXNlcnMgd2l0aCA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVy YWw+IHBlcm1pc3Npb24gb24gdGhlCi0gICAgICAgZGF0YWJhc2UgdG8gaXNzdWUKLSAgICAgICA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uIj48Y29tbWFuZD5DUkVBVEUgU1VC U0NSSVBUSU9OPC9jb21tYW5kPjwvbGluaz4uPC9lbnRyeT4KKyAgICAgICBkYXRhYmFzZSB0byBp c3N1ZSA8bGluaworICAgICAgIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24iPjxjb21t YW5kPkNSRUFURQorICAgICAgIFNVQlNDUklQVElPTjwvY29tbWFuZD48L2xpbms+LiAgVGhpcyBy b2xlIGlzIGEgbWVtYmVyIG9mCisgICAgICAgPGxpdGVyYWw+cGdfY3JlYXRlX2Nvbm5lY3Rpb248 L2xpdGVyYWw+LjwvZW50cnk+CiAgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rn cm91cD4KQEAgLTczNyw2ICs3NDYsMTQgQEAgRFJPUCBST0xFIGRvb21lZF9yb2xlOwogICBncmVh dCBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIGdyYW50aW5nIHRoZXNlIHJvbGVzIHRvIHVzZXJz LgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgIFRoZSA8bGl0ZXJhbD5wZ19jcmVhdGVfc3Vic2Ny aXB0aW9uPC9saXRlcmFsPiByb2xlIGlzIGEgbWVtYmVyIG9mCisgIDxsaXRlcmFsPnBnX2NyZWF0 ZV9jb25uZWN0aW9uPC9saXRlcmFsPi4gSXQgbWF5IGJlIHVzZWZ1bCB0byByZXZva2UgdGhhdAor ICBtZW1iZXJzaGlwIGluIG9yZGVyIHRvIHBlcm1pdCByb2xlcyB0byBjcmVhdGUgc3Vic2NyaXB0 aW9ucyBvbmx5IHRvIGEKKyAgZm9yZWlnbiBzZXJ2ZXIsIHdpdGhvdXQgYWxsb3dpbmcgdGhlbSB0 byBzcGVjaWZ5IGEgY29ubmVjdGlvbiBzdHJpbmcKKyAgZGlyZWN0bHkuCisgIDwvcGFyYT4KKwog ICA8cGFyYT4KICAgQ2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiBncmFudGluZyB0aGVzZSByb2xl cyB0byBlbnN1cmUgdGhleSBhcmUgb25seSB1c2VkIHdoZXJlCiAgIG5lZWRlZCBhbmQgd2l0aCB0 aGUgdW5kZXJzdGFuZGluZyB0aGF0IHRoZXNlIHJvbGVzIGdyYW50IGFjY2VzcyB0byBwcml2aWxl Z2VkCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCBlYzdiNmY1MzYyLi4zNjVjOTU2ZGVhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvTWFrZWZpbGUKQEAgLTEzNiw2ICsxMzYsNyBAQCBQT1NUR1JFU19CS0lfREFUQSA9ICQoYWRk cHJlZml4ICQodG9wX3NyY2Rpcikvc3JjL2luY2x1ZGUvY2F0YWxvZy8sXAogCXBnX2NvbGxhdGlv bi5kYXQgXAogCXBnX2NvbnZlcnNpb24uZGF0IFwKIAlwZ19kYXRhYmFzZS5kYXQgXAorCXBnX2Zv cmVpZ25fZGF0YV93cmFwcGVyLmRhdCBcCiAJcGdfbGFuZ3VhZ2UuZGF0IFwKIAlwZ19uYW1lc3Bh Y2UuZGF0IFwKIAlwZ19vcGNsYXNzLmRhdCBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRp b24uYwppbmRleCBkNmE5NzhmMTM2Li5mNWM0ZWM4ZDk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf c3Vic2NyaXB0aW9uLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1 YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgog I2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgpAQCAtNzUsMTAgKzc2LDE4IEBAIEdldFN1YnNjcmlw dGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAlzdWItPnJ1bmFzb3duZXIgPSBzdWJm b3JtLT5zdWJydW5hc293bmVyOwogCiAJLyogR2V0IGNvbm5pbmZvICovCi0JZGF0dW0gPSBTeXND YWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwKLQkJCQkJCQkJICAgdHVwLAotCQkJ CQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyk7Ci0Jc3ViLT5jb25uaW5m byA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCWlmIChPaWRJc1ZhbGlkKHN1YmZvcm0t PnN1YnNlcnZlcikpCisJeworCQlzdWItPmNvbm5pbmZvID0gRm9yZWlnblNlcnZlckNvbm5lY3Rp b25TdHJpbmcoc3ViZm9ybS0+c3Vib3duZXIsCisJCQkJCQkJCQkJCQkJICBzdWJmb3JtLT5zdWJz ZXJ2ZXIpOworCX0KKwllbHNlCisJeworCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwo U1VCU0NSSVBUSU9OT0lELAorCQkJCQkJCQkJICAgdHVwLAorCQkJCQkJCQkJICAgQW51bV9wZ19z dWJzY3JpcHRpb25fc3ViY29ubmluZm8pOworCQlzdWItPmNvbm5pbmZvID0gVGV4dERhdHVtR2V0 Q1N0cmluZyhkYXR1bSk7CisJfQogCiAJLyogR2V0IHNsb3RuYW1lICovCiAJZGF0dW0gPSBTeXND YWNoZUdldEF0dHIoU1VCU0NSSVBUSU9OT0lELApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX2Z1 bmN0aW9ucy5zcWwKaW5kZXggNDIwNjc1Mjg4MS4uZTFhYmRhNDFiYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbAorKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCkBAIC03ODEsMyArNzgxLDUgQEAgR1JBTlQgcGdf cmVhZF9hbGxfc2V0dGluZ3MgVE8gcGdfbW9uaXRvcjsKIEdSQU5UIHBnX3JlYWRfYWxsX3N0YXRz IFRPIHBnX21vbml0b3I7CiAKIEdSQU5UIHBnX3N0YXRfc2Nhbl90YWJsZXMgVE8gcGdfbW9uaXRv cjsKKworR1JBTlQgcGdfY3JlYXRlX2Nvbm5lY3Rpb24gVE8gcGdfY3JlYXRlX3N1YnNjcmlwdGlv bjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCBlZGM4MmMxMWJl Li5jNDY5MDAxODJlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRp b25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBA IC0yNSwxNCArMjUsMTcgQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRh YmFzZV9kLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19mb3JlaWduX3NlcnZlci5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRz LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZl bnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNp bmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgog I2luY2x1ZGUgInBnc3RhdC5oIgpAQCAtNTc0LDYgKzU3Nyw4IEBAIENyZWF0ZVN1YnNjcmlwdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJRGF0 dW0JCXZhbHVlc1tOYXR0c19wZ19zdWJzY3JpcHRpb25dOwogCU9pZAkJCW93bmVyID0gR2V0VXNl cklkKCk7CiAJSGVhcFR1cGxlCXR1cDsKKwlPaWQJCQlzZXJ2ZXJpZDsKKwlPaWQJCQl1bWlkOwog CWNoYXIJICAgKmNvbm5pbmZvOwogCWNoYXIJCW9yaWdpbm5hbWVbTkFNRURBVEFMRU5dOwogCUxp c3QJICAgKnB1YmxpY2F0aW9uczsKQEAgLTU5NCw2ICs1OTksMTIgQEAgQ3JlYXRlU3Vic2NyaXB0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJ CQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX09SSUdJTik7CiAJcGFyc2Vfc3Vic2Ny aXB0aW9uX29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25zLCBzdXBwb3J0ZWRfb3B0cywgJm9w dHMpOwogCisJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9QQVNTV09SRF9S RVFVSVJFRCkgJiYgc3RtdC0+c2VydmVybmFtZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1zZygib3B0aW9uIFwicGFzc3dv cmRfcmVxdWlyZWRcIiBpbnZhbGlkIG9uIHN1YnNjcmlwdGlvbnMgdG8gYSBmb3JlaWduIHNlcnZl ciIpLAorCQkJCSBlcnJoaW50KCJVc2UgdGhlIFwicGFzc3dvcmRfcmVxdWlyZWRcIiBvcHRpb24g b24gdGhlIHVzZXIgbWFwcGluZ3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JlaWduIHNlcnZlci4i KSkpOworCiAJLyoKIAkgKiBTaW5jZSBjcmVhdGluZyBhIHJlcGxpY2F0aW9uIHNsb3QgaXMgbm90 IHRyYW5zYWN0aW9uYWwsIHJvbGxpbmcgYmFjawogCSAqIHRoZSB0cmFuc2FjdGlvbiBsZWF2ZXMg dGhlIGNyZWF0ZWQgcmVwbGljYXRpb24gc2xvdC4gIFNvIHdlIGNhbm5vdCBydW4KQEAgLTYwNCw5 ICs2MTUsOSBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCQlQcmV2ZW50SW5UcmFuc2FjdGlvbkJsb2NrKGlzVG9w TGV2ZWwsICJDUkVBVEUgU1VCU0NSSVBUSU9OIC4uLiBXSVRIIChjcmVhdGVfc2xvdCA9IHRydWUp Iik7CiAKIAkvKgotCSAqIFdlIGRvbid0IHdhbnQgdG8gYWxsb3cgdW5wcml2aWxlZ2VkIHVzZXJz IHRvIGJlIGFibGUgdG8gdHJpZ2dlcgotCSAqIGF0dGVtcHRzIHRvIGFjY2VzcyBhcmJpdHJhcnkg bmV0d29yayBkZXN0aW5hdGlvbnMsIHNvIHJlcXVpcmUgdGhlIHVzZXIKLQkgKiB0byBoYXZlIGJl ZW4gc3BlY2lmaWNhbGx5IGF1dGhvcml6ZWQgdG8gY3JlYXRlIHN1YnNjcmlwdGlvbnMuCisJICog V2UgZG9uJ3Qgd2FudCB0byBhbGxvdyB1bnByaXZpbGVnZWQgdXNlcnMgdG8gdXRpbGl6ZSB0aGUg cmVzb3VyY2VzIHRoYXQKKwkgKiBhIHN1YnNjcmlwdGlvbiByZXF1aXJlcyAoc3VjaCBhcyBhIGJh Y2tncm91bmQgd29ya2VyKSwgc28gcmVxdWlyZSB0aGUKKwkgKiB1c2VyIHRvIGhhdmUgYmVlbiBz cGVjaWZpY2FsbHkgYXV0aG9yaXplZCB0byBjcmVhdGUgc3Vic2NyaXB0aW9ucy4KIAkgKi8KIAlp ZiAoIWhhc19wcml2c19vZl9yb2xlKG93bmVyLCBST0xFX1BHX0NSRUFURV9TVUJTQ1JJUFRJT04p KQogCQllcmVwb3J0KEVSUk9SLApAQCAtNjY2LDE0ICs2NzcsNTQgQEAgQ3JlYXRlU3Vic2NyaXB0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAlp ZiAob3B0cy5zeW5jaHJvbm91c19jb21taXQgPT0gTlVMTCkKIAkJb3B0cy5zeW5jaHJvbm91c19j b21taXQgPSAib2ZmIjsKIAotCWNvbm5pbmZvID0gc3RtdC0+Y29ubmluZm87Ci0JcHVibGljYXRp b25zID0gc3RtdC0+cHVibGljYXRpb247Ci0KIAkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGlu ZyB1cyBsaWJwcSBjYWxscy4gKi8KIAlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxz ZSk7CiAKLQkvKiBDaGVjayB0aGUgY29ubmVjdGlvbiBpbmZvIHN0cmluZy4gKi8KLQl3YWxyY3Zf Y2hlY2tfY29ubmluZm8oY29ubmluZm8sIG9wdHMucGFzc3dvcmRyZXF1aXJlZCAmJiAhc3VwZXJ1 c2VyKCkpOworCWlmIChzdG10LT5zZXJ2ZXJuYW1lKQorCXsKKwkJRm9yZWlnblNlcnZlcgkqc2Vy dmVyOworCQlVc2VyTWFwcGluZwkJKnVtOworCisJCUFzc2VydCghc3RtdC0+Y29ubmluZm8pOwor CQljb25uaW5mbyA9IE5VTEw7CisKKwkJc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShz dG10LT5zZXJ2ZXJuYW1lLCBmYWxzZSk7CisJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhG b3JlaWduU2VydmVyUmVsYXRpb25JZCwgc2VydmVyLT5zZXJ2ZXJpZCwgb3duZXIsIEFDTF9VU0FH RSk7CisJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQlhY2xjaGVja19lcnJvcihh Y2xyZXN1bHQsIE9CSkVDVF9GT1JFSUdOX1NFUlZFUiwgc2VydmVyLT5zZXJ2ZXJuYW1lKTsKKwor CQl1bSA9IEdldFVzZXJNYXBwaW5nKG93bmVyLCBzZXJ2ZXItPnNlcnZlcmlkKTsKKworCQlzZXJ2 ZXJpZCA9IHNlcnZlci0+c2VydmVyaWQ7CisJCXVtaWQgPSB1bS0+dW1pZDsKKwkJY29ubmluZm8g PSBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhvd25lciwgc2VydmVyaWQpOworCX0KKwll bHNlCisJeworCQlBc3NlcnQoc3RtdC0+Y29ubmluZm8pOworCisJCS8qCisJCSAqIFdlIGRvbid0 IHdhbnQgdG8gYWxsb3cgdW5wcml2aWxlZ2VkIHVzZXJzIHRvIGJlIGFibGUgdG8gdHJpZ2dlcgor CQkgKiBhdHRlbXB0cyB0byBhY2Nlc3MgYXJiaXRyYXJ5IG5ldHdvcmsgZGVzdGluYXRpb25zLCBz byByZXF1aXJlIHRoZSB1c2VyCisJCSAqIHRvIGhhdmUgYmVlbiBzcGVjaWZpY2FsbHkgYXV0aG9y aXplZCB0byBjcmVhdGUgY29ubmVjdGlvbnMuCisJCSAqLworCQlpZiAoIWhhc19wcml2c19vZl9y b2xlKG93bmVyLCBST0xFX1BHX0NSRUFURV9DT05ORUNUSU9OKSkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJCSBl cnJtc2coInBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSBzdWJzY3JpcHRpb24gd2l0aCBhIGNv bm5lY3Rpb24gc3RyaW5nIiksCisJCQkJCSBlcnJkZXRhaWwoIk9ubHkgcm9sZXMgd2l0aCBwcml2 aWxlZ2VzIG9mIHRoZSBcIiVzXCIgcm9sZSBtYXkgY3JlYXRlIHN1YnNjcmlwdGlvbnMgd2l0aCBD T05ORUNUSU9OIHNwZWNpZmllZC4iLAorCQkJCQkJCSAgICJwZ19jcmVhdGVfY29ubmVjdGlvbiIp LAorCQkJCQkgZXJyaGludCgiQ3JlYXRlIGEgc3Vic2NyaXB0aW9uIHRvIGEgZm9yZWlnbiBzZXJ2 ZXIgYnkgc3BlY2lmeWluZyBTRVJWRVIgaW5zdGVhZC4iKSkpOworCisJCS8qIENoZWNrIHRoZSBj b25uZWN0aW9uIGluZm8gc3RyaW5nLiAqLworCQl3YWxyY3ZfY2hlY2tfY29ubmluZm8oc3RtdC0+ Y29ubmluZm8sIG9wdHMucGFzc3dvcmRyZXF1aXJlZCAmJiAhc3VwZXJ1c2VyKCkpOworCisJCXNl cnZlcmlkID0gSW52YWxpZE9pZDsKKwkJdW1pZCA9IEludmFsaWRPaWQ7CisJCWNvbm5pbmZvID0g c3RtdC0+Y29ubmluZm87CisJfQorCisJcHVibGljYXRpb25zID0gc3RtdC0+cHVibGljYXRpb247 CiAKIAkvKiBFdmVyeXRoaW5nIG9rLCBmb3JtIGEgbmV3IHR1cGxlLiAqLwogCW1lbXNldCh2YWx1 ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKQEAgLTY5Nyw4ICs3NDgsMTIgQEAgQ3JlYXRlU3Vic2Ny aXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwK IAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViZGlzYWJsZW9uZXJyIC0gMV0gPSBCb29s R2V0RGF0dW0ob3B0cy5kaXNhYmxlb25lcnIpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJwYXNzd29yZHJlcXVpcmVkIC0gMV0gPSBCb29sR2V0RGF0dW0ob3B0cy5wYXNzd29yZHJl cXVpcmVkKTsKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3VicnVuYXNvd25lciAtIDFd ID0gQm9vbEdldERhdHVtKG9wdHMucnVuYXNvd25lcik7Ci0JdmFsdWVzW0FudW1fcGdfc3Vic2Ny aXB0aW9uX3N1YmNvbm5pbmZvIC0gMV0gPQotCQlDU3RyaW5nR2V0VGV4dERhdHVtKGNvbm5pbmZv KTsKKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vic2VydmVyIC0gMV0gPSBzZXJ2ZXJp ZDsKKwlpZiAoIU9pZElzVmFsaWQoc2VydmVyaWQpKQorCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3Jp cHRpb25fc3ViY29ubmluZm8gLSAxXSA9CisJCQlDU3RyaW5nR2V0VGV4dERhdHVtKGNvbm5pbmZv KTsKKwllbHNlCisJCW51bGxzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNvbm5pbmZvIC0gMV0g PSB0cnVlOwogCWlmIChvcHRzLnNsb3RfbmFtZSkKIAkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1YnNsb3RuYW1lIC0gMV0gPQogCQkJRGlyZWN0RnVuY3Rpb25DYWxsMShuYW1laW4sIENT dHJpbmdHZXREYXR1bShvcHRzLnNsb3RfbmFtZSkpOwpAQCAtNzE5LDYgKzc3NCwyMCBAQCBDcmVh dGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10 ICpzdG10LAogCiAJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoU3Vic2NyaXB0aW9uUmVsYXRpb25J ZCwgc3ViaWQsIG93bmVyKTsKIAorCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBTdWJzY3JpcHRp b25SZWxhdGlvbklkLCBzdWJpZCk7CisKKwlpZiAoc3RtdC0+c2VydmVybmFtZSkKKwl7CisJCU9i amVjdEFkZHJlc3MgcmVmZXJlbmNlZDsKKwkJQXNzZXJ0KE9pZElzVmFsaWQoc2VydmVyaWQpICYm IE9pZElzVmFsaWQodW1pZCkpOworCisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgRm9y ZWlnblNlcnZlclJlbGF0aW9uSWQsIHNlcnZlcmlkKTsKKwkJcmVjb3JkRGVwZW5kZW5jeU9uKCZt eXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwkJT2JqZWN0QWRkcmVz c1NldChyZWZlcmVuY2VkLCBVc2VyTWFwcGluZ1JlbGF0aW9uSWQsIHVtaWQpOworCQlyZWNvcmRE ZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKwl9 CisKIAlSZXBsaWNhdGlvbk9yaWdpbk5hbWVGb3JMb2dpY2FsUmVwKHN1YmlkLCBJbnZhbGlkT2lk LCBvcmlnaW5uYW1lLCBzaXplb2Yob3JpZ2lubmFtZSkpOwogCXJlcGxvcmlnaW5fY3JlYXRlKG9y aWdpbm5hbWUpOwogCkBAIC04MzUsOCArOTA0LDYgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAlpZiAob3B0cy5l bmFibGVkKQogCQlBcHBseUxhdW5jaGVyV2FrZXVwQXRDb21taXQoKTsKIAotCU9iamVjdEFkZHJl c3NTZXQobXlzZWxmLCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCk7Ci0KIAlJbnZva2VP YmplY3RQb3N0Q3JlYXRlSG9vayhTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7CiAK IAlyZXR1cm4gbXlzZWxmOwpAQCAtMTEyNCw2ICsxMTkxLDggQEAgQWx0ZXJTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJbWVtc2V0 KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CiAJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwg c2l6ZW9mKHJlcGxhY2VzKSk7CiAKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgU3Vic2NyaXB0 aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCiAJc3dpdGNoIChzdG10LT5raW5kKQogCXsKIAkJY2Fz ZSBBTFRFUl9TVUJTQ1JJUFRJT05fT1BUSU9OUzoKQEAgLTExOTEsNiArMTI2MCwxMiBAQCBBbHRl clN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAogCQkJCWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfUEFTU1dP UkRfUkVRVUlSRUQpKQogCQkJCXsKKwkJCQkJaWYgKE9pZElzVmFsaWQoZm9ybS0+c3Vic2VydmVy KSkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKKwkJCQkJCQkJIGVycm1zZygib3B0aW9uIFwicGFzc3dvcmRfcmVxdWlyZWRcIiBp bnZhbGlkIG9uIHN1YnNjcmlwdGlvbnMgdG8gYSBmb3JlaWduIHNlcnZlciIpLAorCQkJCQkJCQkg ZXJyaGludCgiVXNlIHRoZSBcInBhc3N3b3JkX3JlcXVpcmVkXCIgb3B0aW9uIG9uIHRoZSB1c2Vy IG1hcHBpbmdzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9yZWlnbiBzZXJ2ZXIuIikpKTsKKwogCQkJ CQkvKiBOb24tc3VwZXJ1c2VyIG1heSBub3QgZGlzYWJsZSBwYXNzd29yZF9yZXF1aXJlZC4gKi8K IAkJCQkJaWYgKCFvcHRzLnBhc3N3b3JkcmVxdWlyZWQgJiYgIXN1cGVydXNlcigpKQogCQkJCQkJ ZXJlcG9ydChFUlJPUiwKQEAgLTEyNDQsNyArMTMxOSw3NyBAQCBBbHRlclN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQlicmVh azsKIAkJCX0KIAorCQljYXNlIEFMVEVSX1NVQlNDUklQVElPTl9TRVJWRVI6CisJCQl7CisJCQkJ Rm9yZWlnblNlcnZlcgkqbmV3X3NlcnZlcjsKKwkJCQlVc2VyTWFwcGluZwkJKm5ld191bTsKKwkJ CQlPYmplY3RBZGRyZXNzCSByZWZlcmVuY2VkOworCQkJCUFjbFJlc3VsdAkJIGFjbHJlc3VsdDsK KworCQkJCS8qCisJCQkJICogUmVtb3ZlIHdoYXQgd2FzIHRoZXJlIGJlZm9yZSwgZWl0aGVyIGFu b3RoZXIgZm9yZWlnbiBzZXJ2ZXIKKwkJCQkgKiBvciBhIGNvbm5lY3Rpb24gc3RyaW5nLgorCQkJ CSAqLworCQkJCWlmIChmb3JtLT5zdWJzZXJ2ZXIpCisJCQkJeworCQkJCQlVc2VyTWFwcGluZyAq b2xkX3VtID0gR2V0VXNlck1hcHBpbmcoZm9ybS0+c3Vib3duZXIsIGZvcm0tPnN1YnNlcnZlcik7 CisKKwkJCQkJZGVsZXRlRGVwZW5kZW5jeVJlY29yZHNGb3JTcGVjaWZpYyhTdWJzY3JpcHRpb25S ZWxhdGlvbklkLCBmb3JtLT5vaWQsCisJCQkJCQkJCQkJCQkJICAgREVQRU5ERU5DWV9OT1JNQUws CisJCQkJCQkJCQkJCQkJICAgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIGZvcm0tPnN1YnNlcnZl cik7CisJCQkJCWRlbGV0ZURlcGVuZGVuY3lSZWNvcmRzRm9yU3BlY2lmaWMoU3Vic2NyaXB0aW9u UmVsYXRpb25JZCwgZm9ybS0+b2lkLAorCQkJCQkJCQkJCQkJCSAgIERFUEVOREVOQ1lfTk9STUFM LAorCQkJCQkJCQkJCQkJCSAgIFVzZXJNYXBwaW5nUmVsYXRpb25JZCwgb2xkX3VtLT51bWlkKTsK KwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJbnVsbHNbQW51bV9wZ19zdWJzY3JpcHRpb25f c3ViY29ubmluZm8gLSAxXSA9IHRydWU7CisJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1YmNvbm5pbmZvIC0gMV0gPSB0cnVlOworCQkJCX0KKworCQkJCS8qCisJCQkJICogRmlu ZCB0aGUgbmV3IHNlcnZlciBhbmQgdXNlciBtYXBwaW5nLiBDaGVjayBBQ0wgb2Ygc2VydmVyCisJ CQkJICogYmFzZWQgb24gY3VycmVudCB1c2VyIElELCBidXQgZmluZCB0aGUgdXNlciBtYXBwaW5n IGJhc2VkCisJCQkJICogb24gdGhlIHN1YnNjcmlwdGlvbiBvd25lci4KKwkJCQkgKi8KKwkJCQlu ZXdfc2VydmVyID0gR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShzdG10LT5zZXJ2ZXJuYW1lLCBmYWxz ZSk7CisJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKEZvcmVpZ25TZXJ2ZXJSZWxhdGlv bklkLAorCQkJCQkJCQkJCQluZXdfc2VydmVyLT5zZXJ2ZXJpZCwgR2V0VXNlcklkKCksIEFDTF9V U0FHRSk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJYWNsY2hlY2tf ZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfRk9SRUlHTl9TRVJWRVIsCisJCQkJCQkJCSAgIG5ld19z ZXJ2ZXItPnNlcnZlcm5hbWUpOworCisJCQkJbmV3X3VtID0gR2V0VXNlck1hcHBpbmcoZm9ybS0+ c3Vib3duZXIsIG5ld19zZXJ2ZXItPnNlcnZlcmlkKTsKKworCQkJCXZhbHVlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IG5ld19zZXJ2ZXItPnNlcnZlcmlkOworCQkJCXJl cGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNlcnZlciAtIDFdID0gdHJ1ZTsKKworCQkJ CU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIG5l d19zZXJ2ZXItPnNlcnZlcmlkKTsKKwkJCQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJl ZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKworCQkJCU9iamVjdEFkZHJlc3NTZXQocmVm ZXJlbmNlZCwgVXNlck1hcHBpbmdSZWxhdGlvbklkLCBuZXdfdW0tPnVtaWQpOworCQkJCXJlY29y ZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOwor CQkJCXVwZGF0ZV90dXBsZSA9IHRydWU7CisJCQl9CisJCQlicmVhazsKKwogCQljYXNlIEFMVEVS X1NVQlNDUklQVElPTl9DT05ORUNUSU9OOgorCQkJLyogcmVtb3ZlIHJlZmVyZW5jZSB0byBmb3Jl aWduIHNlcnZlciBhbmQgZGVwZW5kZW5jaWVzLCBpZiBwcmVzZW50ICovCisJCQlpZiAoZm9ybS0+ c3Vic2VydmVyKQorCQkJeworCQkJCVVzZXJNYXBwaW5nICpvbGRfdW0gPSBHZXRVc2VyTWFwcGlu Zyhmb3JtLT5zdWJvd25lciwgZm9ybS0+c3Vic2VydmVyKTsKKworCQkJCWRlbGV0ZURlcGVuZGVu Y3lSZWNvcmRzRm9yU3BlY2lmaWMoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgZm9ybS0+b2lkLAor CQkJCQkJCQkJCQkJICAgREVQRU5ERU5DWV9OT1JNQUwsCisJCQkJCQkJCQkJCQkgICBGb3JlaWdu U2VydmVyUmVsYXRpb25JZCwgZm9ybS0+c3Vic2VydmVyKTsKKwkJCQlkZWxldGVEZXBlbmRlbmN5 UmVjb3Jkc0ZvclNwZWNpZmljKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIGZvcm0tPm9pZCwKKwkJ CQkJCQkJCQkJCSAgIERFUEVOREVOQ1lfTk9STUFMLAorCQkJCQkJCQkJCQkJICAgVXNlck1hcHBp bmdSZWxhdGlvbklkLCBvbGRfdW0tPnVtaWQpOworCisJCQkJdmFsdWVzW0FudW1fcGdfc3Vic2Ny aXB0aW9uX3N1YnNlcnZlciAtIDFdID0gSW52YWxpZE9pZDsKKwkJCQlyZXBsYWNlc1tBbnVtX3Bn X3N1YnNjcmlwdGlvbl9zdWJzZXJ2ZXIgLSAxXSA9IHRydWU7CisJCQl9CisKIAkJCS8qIExvYWQg dGhlIGxpYnJhcnkgcHJvdmlkaW5nIHVzIGxpYnBxIGNhbGxzLiAqLwogCQkJbG9hZF9maWxlKCJs aWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOwogCQkJLyogQ2hlY2sgdGhlIGNvbm5lY3Rpb24gaW5m byBzdHJpbmcuICovCkBAIC0xNDU1LDggKzE2MDAsNiBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAogCXRhYmxlX2Ns b3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKLQlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwg U3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOwotCiAJSW52b2tlT2JqZWN0UG9zdEFsdGVy SG9vayhTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7CiAKIAkvKiBXYWtlIHVwIHJl bGF0ZWQgcmVwbGljYXRpb24gd29ya2VycyB0byBoYW5kbGUgdGhpcyBjaGFuZ2UgcXVpY2tseS4g Ki8KQEAgLTE1NDEsOSArMTY4NCwxNyBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRp b25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJc3VibmFtZSA9IHBzdHJkdXAoTmFtZVN0 cigqRGF0dW1HZXROYW1lKGRhdHVtKSkpOwogCiAJLyogR2V0IGNvbm5pbmZvICovCi0JZGF0dW0g PSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwgdHVwLAotCQkJCQkJCQkg ICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyk7Ci0JY29ubmluZm8gPSBUZXh0RGF0 dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwlpZiAoT2lkSXNWYWxpZChmb3JtLT5zdWJzZXJ2ZXIpKQor CXsKKwkJY29ubmluZm8gPSBGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhmb3JtLT5zdWJv d25lciwKKwkJCQkJCQkJCQkJCSBmb3JtLT5zdWJzZXJ2ZXIpOworCX0KKwllbHNlCisJeworCQlk YXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VCU0NSSVBUSU9OT0lELCB0dXAsCisJCQkJ CQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25uaW5mbyk7CisJCWNvbm5pbmZvID0g VGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJfQogCiAJLyogR2V0IHNsb3RuYW1lICovCiAJ ZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoU1VCU0NSSVBUSU9OT0lELCB0dXAsCkBAIC0xNjQ0LDYg KzE3OTUsNyBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBi b29sIGlzVG9wTGV2ZWwpCiAJfQogCiAJLyogQ2xlYW4gdXAgZGVwZW5kZW5jaWVzICovCisJZGVs ZXRlRGVwZW5kZW5jeVJlY29yZHNGb3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQsIGZh bHNlKTsKIAlkZWxldGVTaGFyZWREZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3JpcHRpb25SZWxh dGlvbklkLCBzdWJpZCwgMCk7CiAKIAkvKiBSZW1vdmUgYW55IGFzc29jaWF0ZWQgcmVsYXRpb24g c3luY2hyb25pemF0aW9uIHN0YXRlcy4gKi8KQEAgLTE4NTMsNiArMjAwNSwxNyBAQCBBbHRlclN1 YnNjcmlwdGlvbk93bmVyX2ludGVybmFsKFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCwgT2lk IG5ld093bmVySWQpCiAJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0RBVEFCQVNF LAogCQkJCQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKTsKIAorCWlmIChmb3Jt LT5zdWJzZXJ2ZXIpCisJeworCQlVc2VyTWFwcGluZyAqb2xkX3VtID0gR2V0VXNlck1hcHBpbmco Zm9ybS0+c3Vib3duZXIsIGZvcm0tPnN1YnNlcnZlcik7CisJCVVzZXJNYXBwaW5nICpuZXdfdW0g PSBHZXRVc2VyTWFwcGluZyhuZXdPd25lcklkLCBmb3JtLT5zdWJzZXJ2ZXIpOworCisJCWlmIChj aGFuZ2VEZXBlbmRlbmN5Rm9yKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIGZvcm0tPm9pZCwKKwkJ CQkJCQkJVXNlck1hcHBpbmdSZWxhdGlvbklkLCBvbGRfdW0tPnVtaWQsIG5ld191bS0+dW1pZCkg IT0gMSkKKwkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgY2hhbmdlIHVzZXIgbWFwcGluZyBkZXBl bmRlbmN5IGZvciBzdWJzY3JpcHRpb24gJXUiLAorCQkJCSBmb3JtLT5vaWQpOworCX0KKwogCWZv cm0tPnN1Ym93bmVyID0gbmV3T3duZXJJZDsKIAlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVw LT50X3NlbGYsIHR1cCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ZvcmVpZ24vZm9yZWln bi5jIGIvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKaW5kZXggZmMzZWRlZjJhOC4uNWE4 MDBmYzQ4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKKysrIGIv c3JjL2JhY2tlbmQvZm9yZWlnbi9mb3JlaWduLmMKQEAgLTE4LDExICsxOCwxNCBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Zv cmVpZ25fdGFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2lu Y2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAj aW5jbHVkZSAiZm9yZWlnbi9mb3JlaWduLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1 ZGUgImxpYi9zdHJpbmdpbmZvLmgiCisjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oIgogI2lu Y2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNp bmNsdWRlICJ1dGlscy9yZWwuaCIKQEAgLTE5MCw2ICsxOTMsOTQgQEAgR2V0Rm9yZWlnblNlcnZl ckJ5TmFtZShjb25zdCBjaGFyICpzcnZuYW1lLCBib29sIG1pc3Npbmdfb2spCiB9CiAKIAorLyoK KyAqIEVzY2FwZSBhIGNvbm5lY3Rpb24gb3B0aW9uIHZhbHVlLiBIZWxwZXIgZm9yIG9wdGlvbnNf dG9fY29ubnN0cigpLgorICovCitzdGF0aWMgY2hhciAqCitlc2NhcGVfdmFsdWUoY2hhciAqdmFs KQoreworCVN0cmluZ0luZm9EYXRhIHJlc3VsdDsKKworCWluaXRTdHJpbmdJbmZvKCZyZXN1bHQp OworCisJZm9yIChpbnQgaSA9IDA7IHZhbFtpXSAhPSAnXDAnOyBpKyspCisJeworCQlpZiAodmFs W2ldID09ICdcXCcgfHwgdmFsW2ldID09ICdcJycpCisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcigm cmVzdWx0LCAnXFwnKTsKKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJnJlc3VsdCwgdmFsW2ldKTsK Kwl9CisKKwlyZXR1cm4gcmVzdWx0LmRhdGE7Cit9CisKKworLyoKKyAqIEhlbHBlciBmb3IgRm9y ZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoKSBhbmQgcGdfY29ubmVjdGlvbl92YWxpZGF0b3Io KS4KKyAqCisgKiBUcmFuc2Zvcm0gYSBMaXN0IG9mIERlZkVsZW0gaW50byBhIGNvbm5lY3Rpb24g c3RyaW5nLgorICoKKyAqIFhYWDogbWlnaHQgbGVhayBtZW1vcnksIGludmVzdGlnYXRlCisgKi8K K3N0YXRpYyBjaGFyICoKK29wdGlvbnNfdG9fY29ubnN0cihMaXN0ICpvcHRpb25zKQoreworCVN0 cmluZ0luZm9EYXRhCSBjb25uc3RyOworCUxpc3RDZWxsCQkqbGM7CisJYm9vbAkJCSBmaXJzdCA9 IHRydWU7CisKKwlpbml0U3RyaW5nSW5mbygmY29ubnN0cik7CisJZm9yZWFjaChsYywgb3B0aW9u cykKKwl7CisJCURlZkVsZW0gKmQgPSAoRGVmRWxlbSAqKSBsZmlyc3QobGMpOworCQljaGFyICpu YW1lID0gZC0+ZGVmbmFtZTsKKwkJY2hhciAqdmFsdWU7CisKKwkJLyogbm90IGEgbGlicHEgb3B0 aW9uOyBza2lwICovCisJCWlmIChzdHJjbXAobmFtZSwgInBhc3N3b3JkX3JlcXVpcmVkIikgPT0g MCkKKwkJCWNvbnRpbnVlOworCisJCS8qIFhYWDogcGZyZWUoKSByZXN1bHQgb2YgZGVmR2V0U3Ry aW5nKCkgaWYgbmVlZGVkPyAqLworCQl2YWx1ZSA9IGVzY2FwZV92YWx1ZShkZWZHZXRTdHJpbmco ZCkpOworCisJCWFwcGVuZFN0cmluZ0luZm8oJmNvbm5zdHIsICIlcyVzID0gJyVzJyIsCisJCQkJ CQkgZmlyc3QgPyAiIiA6ICIgIiwgbmFtZSwgdmFsdWUpOworCQlmaXJzdCA9IGZhbHNlOworCisJ CXBmcmVlKHZhbHVlKTsKKwl9CisKKwkvKiBvdmVycmlkZSBjbGllbnRfZW5jb2RpbmcgKi8KKwlh cHBlbmRTdHJpbmdJbmZvKCZjb25uc3RyLCAiJXNjbGllbnRfZW5jb2RpbmcgPSAnJXMnIiwKKwkJ CQkJIGZpcnN0ID8gIiIgOiAiICIsIEdldERhdGFiYXNlRW5jb2RpbmdOYW1lKCkpOworCisJcmV0 dXJuIGNvbm5zdHIuZGF0YTsKK30KKworCisvKgorICogR2l2ZW4gYSB1c2VyIElEIGFuZCBzZXJ2 ZXIgSUQsIHJldHVybiBhIHBvc3RncmVzIGNvbm5lY3Rpb24gc3RyaW5nIHN1aXRhYmxlCisgKiB0 byBwYXNzIHRvIGxpYnBxLgorICoKKyAqIFhYWDogbWlnaHQgbGVhayBtZW1vcnksIGludmVzdGln YXRlCisgKi8KK2NoYXIgKgorRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoT2lkIHVzZXJp ZCwgT2lkIHNlcnZlcmlkKQoreworCUZvcmVpZ25TZXJ2ZXIJKnNlcnZlcgkgPSBHZXRGb3JlaWdu U2VydmVyKHNlcnZlcmlkKTsKKwlVc2VyTWFwcGluZwkJKnVtCQkgPSBHZXRVc2VyTWFwcGluZyh1 c2VyaWQsIHNlcnZlcmlkKTsKKwlMaXN0CQkJKm9wdGlvbnMgPSBsaXN0X2NvbmNhdCh1bS0+b3B0 aW9ucywgc2VydmVyLT5vcHRpb25zKTsKKwljaGFyCQkJKmNvbm5zdHI7CisKKwljb25uc3RyID0g b3B0aW9uc190b19jb25uc3RyKG9wdGlvbnMpOworCisJcGZyZWUoc2VydmVyKTsKKwlwZnJlZSh1 bSk7CisJbGlzdF9mcmVlKG9wdGlvbnMpOworCisJcmV0dXJuIGNvbm5zdHI7Cit9CisKKwogLyoK ICAqIEdldFVzZXJNYXBwaW5nIC0gbG9vayB1cCB0aGUgdXNlciBtYXBwaW5nLgogICoKQEAgLTU5 OSw2ICs2OTAsMTI5IEBAIGlzX2Nvbm5pbmZvX29wdGlvbihjb25zdCBjaGFyICpvcHRpb24sIE9p ZCBjb250ZXh0KQogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIHBnX2Nvbm5lY3Rpb25faGFu ZGxlcgorICoKKyAqIHBnX2Nvbm5lY3Rpb25fZmR3IGlzIG5vdCB1c2VkIGZvciBmb3JlaWduIHRh Ymxlcywgc28gdGhlIGhhbmRsZXIgc2hvdWxkCisgKiBuZXZlciBiZSBjYWxsZWQuCisgKi8KK0Rh dHVtCitwZ19jb25uZWN0aW9uX2hhbmRsZXIoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwllbG9nKEVS Uk9SLCAicGdfY29ubmVjdGlvbl9oYW5kbGVyIHVuZXhwZWN0ZWRseSBjYWxsZWQiKTsKK30KKwor LyoKKyAqIE9wdGlvbiB2YWxpZGF0b3IgZm9yIENSRUFURSBTRVJWRVIgLi4uIEZPUiBDT05ORUNU SU9OIE9OTFkuCisgKgorICogWFhYOiB0cnkgdG8gdW5pZnkgd2l0aCB2YWxpZGF0b3JzIGZvciBD UkVBVEUgU1VCU0NSSVBUSU9OIC4uLiBDT05ORUNUSU9OLAorICogcG9zdGdyZXNfZmR3LCBhbmQg ZGJsaW5rLiBBbHNvIGludmVzdGlnYXRlIGlmIG1lbW9yeSBsZWFrcyBhcmUgYSBwcm9ibGVtCisg KiBoZXJlLgorICovCitEYXR1bQorcGdfY29ubmVjdGlvbl92YWxpZGF0b3IoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlMaXN0CQkJKm9wdGlvbnNfbGlzdCA9IHVudHJhbnNmb3JtUmVsT3B0aW9ucyhQ R19HRVRBUkdfREFUVU0oMCkpOworCU9pZAkJCQkgY2F0YWxvZwkgID0gUEdfR0VUQVJHX09JRCgx KTsKKworCWlmIChjYXRhbG9nID09IEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkKQorCXsKKwkJY2hh cgkJKmNvbm5pbmZvOworCQlMaXN0Q2VsbAkqbGM7CisKKwkJZm9yZWFjaChsYywgb3B0aW9uc19s aXN0KQorCQl7CisJCQlEZWZFbGVtICpkID0gKERlZkVsZW0gKikgbGZpcnN0KGxjKTsKKworCQkJ aWYgKHN0cmNtcChkLT5kZWZuYW1lLCAiY2xpZW50X2VuY29kaW5nIikgPT0gMCkKKwkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJKGVycm1zZygiY2Fubm90IHNwZWNpZnkgY2xpZW50X2VuY29kaW5n IGZvciBwZ19jb25uZWN0aW9uX2ZkdyIpKSk7CisKKwkJCWlmIChzdHJjbXAoZC0+ZGVmbmFtZSwg InVzZXIiKSA9PSAwIHx8CisJCQkJc3RyY21wKGQtPmRlZm5hbWUsICJwYXNzd29yZCIpID09IDAg fHwKKwkJCQlzdHJjbXAoZC0+ZGVmbmFtZSwgInNzbHBhc3N3b3JkIikgPT0gMCB8fAorCQkJCXN0 cmNtcChkLT5kZWZuYW1lLCAicGFzc3dvcmRfcmVxdWlyZWQiKSA9PSAwKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJybXNnKCJpbnZhbGlkIG9wdGlvbiBcIiVzXCIgZm9yIHBnX2Nvbm5l Y3Rpb25fZmR3IiwKKwkJCQkJCQkJZC0+ZGVmbmFtZSksCisJCQkJCQkgZXJyaGludCgiU3BlY2lm eSBvcHRpb24gXCIlc1wiIGZvciBhIHVzZXIgbWFwcGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNl cnZlciBpbnN0ZWFkLiIsCisJCQkJCQkJCSBkLT5kZWZuYW1lKSkpOworCQl9CisKKwkJY29ubmlu Zm8gPSBvcHRpb25zX3RvX2Nvbm5zdHIob3B0aW9uc19saXN0KTsKKworCQkvKiBMb2FkIHRoZSBs aWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KKwkJbG9hZF9maWxlKCJsaWJwcXdh bHJlY2VpdmVyIiwgZmFsc2UpOworCisJCXdhbHJjdl9jaGVja19jb25uaW5mbyhjb25uaW5mbywg ZmFsc2UpOworCX0KKwllbHNlIGlmIChjYXRhbG9nID09IFVzZXJNYXBwaW5nUmVsYXRpb25JZCkK Kwl7CisJCWJvb2wJCSBwYXNzd29yZF9yZXF1aXJlZCA9IHRydWU7CisJCWJvb2wJCSBwYXNzd29y ZF9wcm92aWRlZCA9IGZhbHNlOworCQlMaXN0Q2VsbAkqbGM7CisKKwkJZm9yZWFjaChsYywgb3B0 aW9uc19saXN0KQorCQl7CisJCQlEZWZFbGVtICpkID0gKERlZkVsZW0gKikgbGZpcnN0KGxjKTsK KworCQkJaWYgKHN0cmNtcChkLT5kZWZuYW1lLCAicGFzc3dvcmRfcmVxdWlyZWQiKSA9PSAwKQor CQkJeworCQkJCS8qCisJCQkJICogT25seSB0aGUgc3VwZXJ1c2VyIG1heSBzZXQgdGhpcyBvcHRp b24gb24gYSB1c2VyIG1hcHBpbmcsIG9yCisJCQkJICogYWx0ZXIgYSB1c2VyIG1hcHBpbmcgb24g d2hpY2ggdGhpcyBvcHRpb24gaXMgc2V0LiBXZSBhbGxvdyBhCisJCQkJICogdXNlciB0byBjbGVh ciB0aGlzIG9wdGlvbiBpZiBpdCdzIHNldCAtIGluIGZhY3QsIHdlIGRvbid0IGhhdmUKKwkJCQkg KiBhIGNob2ljZSBzaW5jZSB3ZSBjYW4ndCBzZWUgdGhlIG9sZCBtYXBwaW5nIHdoZW4gdmFsaWRh dGluZyBhbgorCQkJCSAqIGFsdGVyLgorCQkJCSAqLworCQkJCWlmICghc3VwZXJ1c2VyKCkgJiYg IWRlZkdldEJvb2xlYW4oZCkpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkJCQkgZXJybXNnKCJwYXNzd29y ZF9yZXF1aXJlZD1mYWxzZSBpcyBzdXBlcnVzZXItb25seSBmb3IgcGdfY29ubmVjdGlvbl9mZHci KSwKKwkJCQkJCQkgZXJyaGludCgiVXNlciBtYXBwaW5ncyB3aXRoIHRoZSBwYXNzd29yZF9yZXF1 aXJlZCBvcHRpb24gc2V0IHRvIGZhbHNlIG1heSBvbmx5IGJlIGNyZWF0ZWQgb3IgbW9kaWZpZWQg YnkgdGhlIHN1cGVydXNlci4iKSkpOworCisJCQkJcGFzc3dvcmRfcmVxdWlyZWQgPSBkZWZHZXRC b29sZWFuKGQpOworCQkJfQorCisJCQlpZiAoKHN0cmNtcChkLT5kZWZuYW1lLCAic3Nsa2V5Iikg PT0gMCB8fCBzdHJjbXAoZC0+ZGVmbmFtZSwgInNzbGNlcnQiKSA9PSAwKSAmJiAhc3VwZXJ1c2Vy KCkpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJ RU5UX1BSSVZJTEVHRSksCisJCQkJCQkgZXJybXNnKCJzc2xjZXJ0IGFuZCBzc2xrZXkgYXJlIHN1 cGVydXNlci1vbmx5IGZvciBwZ19jb25uZWN0aW9uX2ZkdyIpLAorCQkJCQkJIGVycmhpbnQoIlVz ZXIgbWFwcGluZ3Mgd2l0aCB0aGUgc3NsY2VydCBvciBzc2xrZXkgb3B0aW9ucyBzZXQgbWF5IG9u bHkgYmUgY3JlYXRlZCBvciBtb2RpZmllZCBieSB0aGUgc3VwZXJ1c2VyLiIpKSk7CisKKwkJCWlm IChzdHJjbXAoZC0+ZGVmbmFtZSwgInBhc3N3b3JkIikgPT0gMCkKKwkJCQlwYXNzd29yZF9wcm92 aWRlZCA9IHRydWU7CisKKwkJCWlmIChzdHJjbXAoZC0+ZGVmbmFtZSwgInVzZXIiKSAhPSAwICYm CisJCQkJc3RyY21wKGQtPmRlZm5hbWUsICJwYXNzd29yZCIpICE9IDAgJiYKKwkJCQlzdHJjbXAo ZC0+ZGVmbmFtZSwgInNzbHBhc3N3b3JkIikgIT0gMCAmJgorCQkJCXN0cmNtcChkLT5kZWZuYW1l LCAic3Nsa2V5IikgIT0gMCAmJgorCQkJCXN0cmNtcChkLT5kZWZuYW1lLCAic3NsY2VydCIpICE9 IDAgJiYKKwkJCQlzdHJjbXAoZC0+ZGVmbmFtZSwgInBhc3N3b3JkX3JlcXVpcmVkIikgIT0gMCkK KwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycm1zZygiaW52YWxpZCB1c2VyIG1hcHBpbmcg b3B0aW9uIFwiJXNcIiBmb3IgcGdfY29ubmVjdGlvbl9mZHciLAorCQkJCQkJCQlkLT5kZWZuYW1l KSkpOworCQl9CisKKwkJaWYgKHBhc3N3b3JkX3JlcXVpcmVkICYmICFwYXNzd29yZF9wcm92aWRl ZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU19SX0VfUFJPSElC SVRFRF9TUUxfU1RBVEVNRU5UX0FUVEVNUFRFRCksCisJCQkJCSBlcnJtc2coInBhc3N3b3JkIGlz IHJlcXVpcmVkIiksCisJCQkJCSBlcnJkZXRhaWwoIk5vbi1zdXBlcnVzZXJzIG11c3QgcHJvdmlk ZSBhIHBhc3N3b3JkIGluIHRoZSBjb25uZWN0aW9uIHN0cmluZy4iKSkpOworCX0KKwllbHNlIGlm IChjYXRhbG9nID09IEZvcmVpZ25UYWJsZVJlbGF0aW9uSWQpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycm1zZygiY2Fubm90IGNyZWF0ZSBmb3JlaWduIHRhYmxlIHVzaW5nIGEgcGdfY29ubmVj dGlvbl9mZHcgc2VydmVyIiksCisJCQkJIGVycmhpbnQoIlVzZSB0aGUgc2VydmVyIHdpdGggQ1JF QVRFIFNVQlNDUklQVElPTiBpbnN0ZWFkLiIpKSk7CisJZWxzZSBpZiAoY2F0YWxvZyA9PSBBdHRy aWJ1dGVSZWxhdGlvbklkKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBjYWxsIHRvIHBnX2Nv bm5lY3Rpb25fdmFsaWRhdG9yIGZvciBwZ19hdHRyaWJ1dGUgY2F0YWxvZyIpOworCWVsc2UKKwkJ ZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgY2FsbCB0byBwZ19jb25uZWN0aW9uX3ZhbGlkYXRvciBm b3IgY2F0YWxvZyAlZCIsIGNhdGFsb2cpOworCisKKwlQR19SRVRVUk5fQk9PTCh0cnVlKTsKK30K KwogCiAvKgogICogVmFsaWRhdGUgdGhlIGdlbmVyaWMgb3B0aW9uIGdpdmVuIHRvIFNFUlZFUiBv ciBVU0VSIE1BUFBJTkcuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA2M2YxNzJlMTc1Li4yNTliNWNhNDJiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTEwNjM4LDYgKzEwNjM4LDE2IEBAIENyZWF0ZVN1YnNjcmlwdGlvblN0 bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAkODsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0K KwkJCXwgQ1JFQVRFIFNVQlNDUklQVElPTiBuYW1lIFNFUlZFUiBuYW1lIFBVQkxJQ0FUSU9OIG5h bWVfbGlzdCBvcHRfZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJQ3JlYXRlU3Vic2NyaXB0aW9uU3Rt dCAqbiA9CisJCQkJCQltYWtlTm9kZShDcmVhdGVTdWJzY3JpcHRpb25TdG10KTsKKwkJCQkJbi0+ c3VibmFtZSA9ICQzOworCQkJCQluLT5zZXJ2ZXJuYW1lID0gJDU7CisJCQkJCW4tPnB1YmxpY2F0 aW9uID0gJDc7CisJCQkJCW4tPm9wdGlvbnMgPSAkODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOwor CQkJCX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNjY3LDYgKzEwNjc3LDE2 IEBAIEFsdGVyU3Vic2NyaXB0aW9uU3RtdDoKIAkJCQkJbi0+Y29ubmluZm8gPSAkNTsKIAkJCQkJ JCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgU1VCU0NSSVBUSU9OIG5hbWUgU0VS VkVSIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqbiA9CisJCQkJCQlt YWtlTm9kZShBbHRlclN1YnNjcmlwdGlvblN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBBTFRFUl9T VUJTQ1JJUFRJT05fU0VSVkVSOworCQkJCQluLT5zdWJuYW1lID0gJDM7CisJCQkJCW4tPnNlcnZl cm5hbWUgPSAkNTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJCXwgQUxURVIgU1VC U0NSSVBUSU9OIG5hbWUgUkVGUkVTSCBQVUJMSUNBVElPTiBvcHRfZGVmaW5pdGlvbgogCQkJCXsK IAkJCQkJQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpuID0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3dvcmtlci5jCmluZGV4IDIxYWJmMzRlZjcuLmJlNjNhYjVhNWQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtNDAwMyw3ICs0MDAzLDkgQEAgbWF5 YmVfcmVyZWFkX3N1YnNjcmlwdGlvbih2b2lkKQogfQogCiAvKgotICogQ2FsbGJhY2sgZnJvbSBz dWJzY3JpcHRpb24gc3lzY2FjaGUgaW52YWxpZGF0aW9uLgorICogQ2FsbGJhY2sgZnJvbSBzdWJz Y3JpcHRpb24gc3lzY2FjaGUgaW52YWxpZGF0aW9uLiBBbHNvIG5lZWRlZCBmb3Igc2VydmVyIG9y CisgKiB1c2VyIG1hcHBpbmcgaW52YWxpZGF0aW9uLCB3aGljaCBjYW4gY2hhbmdlIHRoZSBjb25u ZWN0aW9uIGluZm9ybWF0aW9uIGZvcgorICogc3Vic2NyaXB0aW9ucyB0aGF0IGNvbm5lY3QgdXNp bmcgYSBzZXJ2ZXIgb2JqZWN0LgogICovCiBzdGF0aWMgdm9pZAogc3Vic2NyaXB0aW9uX2NoYW5n ZV9jYihEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQpAQCAtNDYzOSw2 ICs0NjQxLDE0IEBAIEluaXRpYWxpemVMb2dSZXBXb3JrZXIodm9pZCkKIAlDYWNoZVJlZ2lzdGVy U3lzY2FjaGVDYWxsYmFjayhTVUJTQ1JJUFRJT05PSUQsCiAJCQkJCQkJCSAgc3Vic2NyaXB0aW9u X2NoYW5nZV9jYiwKIAkJCQkJCQkJICAoRGF0dW0pIDApOworCS8qIEtlZXAgdXMgaW5mb3JtZWQg YWJvdXQgc3Vic2NyaXB0aW9uIGNoYW5nZXMuICovCisJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2Fs bGJhY2soRk9SRUlHTlNFUlZFUk9JRCwKKwkJCQkJCQkJICBzdWJzY3JpcHRpb25fY2hhbmdlX2Ni LAorCQkJCQkJCQkgIChEYXR1bSkgMCk7CisJLyogS2VlcCB1cyBpbmZvcm1lZCBhYm91dCBzdWJz Y3JpcHRpb24gY2hhbmdlcy4gKi8KKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhVU0VS TUFQUElOR09JRCwKKwkJCQkJCQkJICBzdWJzY3JpcHRpb25fY2hhbmdlX2NiLAorCQkJCQkJCQkg IChEYXR1bSkgMCk7CiAKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhBVVRIT0lELAog CQkJCQkJCQkgIHN1YnNjcmlwdGlvbl9jaGFuZ2VfY2IsCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCAwNTBhODMx MjI2Li5kNjAzZmVlYzZlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTIwNjYsNiArMjA2NiwyNyBAQCBzZWxl Y3REdW1wYWJsZVN0YXRpc3RpY3NPYmplY3QoU3RhdHNFeHRJbmZvICpzb2JqLCBBcmNoaXZlICpm b3V0KQogCQlzb2JqLT5kb2JqLmR1bXAgPSBEVU1QX0NPTVBPTkVOVF9OT05FOwogfQogCisvKgor ICogc2VsZWN0RHVtcGFibGVBY2Nlc3NNZXRob2Q6IHBvbGljeS1zZXR0aW5nIHN1YnJvdXRpbmUK KyAqCQlNYXJrIGFuIGFjY2VzcyBtZXRob2QgYXMgdG8gYmUgZHVtcGVkIG9yIG5vdAorICoKKyAq IEFjY2VzcyBtZXRob2RzIGRvIG5vdCBiZWxvbmcgdG8gYW55IHBhcnRpY3VsYXIgbmFtZXNwYWNl LiAgVG8gaWRlbnRpZnkKKyAqIGJ1aWx0LWluIGFjY2VzcyBtZXRob2RzLCB3ZSBtdXN0IHJlc29y dCB0byBjaGVja2luZyB3aGV0aGVyIHRoZQorICogbWV0aG9kJ3MgT0lEIGlzIGluIHRoZSByYW5n ZSByZXNlcnZlZCBmb3IgaW5pdGRiLgorICovCitzdGF0aWMgdm9pZAorc2VsZWN0RHVtcGFibGVG ZHcoRmR3SW5mbyAqZmR3aW5mbywgQXJjaGl2ZSAqZm91dCkKK3sKKwlpZiAoY2hlY2tFeHRlbnNp b25NZW1iZXJzaGlwKCZmZHdpbmZvLT5kb2JqLCBmb3V0KSkKKwkJcmV0dXJuOwkJCQkJLyogZXh0 ZW5zaW9uIG1lbWJlcnNoaXAgb3ZlcnJpZGVzIGFsbCBlbHNlICovCisKKwlpZiAoZmR3aW5mby0+ ZG9iai5jYXRJZC5vaWQgPD0gKE9pZCkgZ19sYXN0X2J1aWx0aW5fb2lkKQorCQlmZHdpbmZvLT5k b2JqLmR1bXAgPSBEVU1QX0NPTVBPTkVOVF9OT05FOworCWVsc2UKKwkJZmR3aW5mby0+ZG9iai5k dW1wID0gZm91dC0+ZG9wdC0+aW5jbHVkZV9ldmVyeXRoaW5nID8KKwkJCURVTVBfQ09NUE9ORU5U X0FMTCA6IERVTVBfQ09NUE9ORU5UX05PTkU7Cit9CisKIC8qCiAgKiBzZWxlY3REdW1wYWJsZU9i amVjdDogcG9saWN5LXNldHRpbmcgc3Vicm91dGluZQogICoJCU1hcmsgYSBnZW5lcmljIGR1bXBh YmxlIG9iamVjdCBhcyB0byBiZSBkdW1wZWQgb3Igbm90CkBAIC00NjMzLDYgKzQ2NTQsNyBAQCBn ZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV9zdWJkaXNhYmxlb25lcnI7 CiAJaW50CQkJaV9zdWJwYXNzd29yZHJlcXVpcmVkOwogCWludAkJCWlfc3VicnVuYXNvd25lcjsK KwlpbnQJCQlpX3N1YnNlcnZlcm5hbWU7CiAJaW50CQkJaV9zdWJjb25uaW5mbzsKIAlpbnQJCQlp X3N1YnNsb3RuYW1lOwogCWludAkJCWlfc3Vic3luY2NvbW1pdDsKQEAgLTQ3MDEsMTAgKzQ3MjMs MTkgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQkJCQkJICAiICclcycgQVMg c3Vib3JpZ2luXG4iLAogCQkJCQkJICBMT0dJQ0FMUkVQX09SSUdJTl9BTlkpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkgIkZST00gcGdfc3Vic2NyaXB0aW9uIHNcbiIK LQkJCQkJCSAiV0hFUkUgcy5zdWJkYmlkID0gKFNFTEVDVCBvaWQgRlJPTSBwZ19kYXRhYmFzZVxu IgotCQkJCQkJICIgICAgICAgICAgICAgICAgICAgV0hFUkUgZGF0bmFtZSA9IGN1cnJlbnRfZGF0 YWJhc2UoKSkiKTsKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDApCisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiIGZzLnNydm5hbWUgQVMgc3Vic2VydmVy bmFtZVxuIgorCQkJCQkJCSAiRlJPTSBwZ19zdWJzY3JpcHRpb24gcyBMRUZUIEpPSU4gcGdfZm9y ZWlnbl9zZXJ2ZXIgZnNcbiIKKwkJCQkJCQkgIiAgT04gKHMuc3Vic2VydmVyID0gZnMub2lkKVxu IgorCQkJCQkJCSAiV0hFUkUgcy5zdWJkYmlkID0gKFNFTEVDVCBvaWQgRlJPTSBwZ19kYXRhYmFz ZVxuIgorCQkJCQkJCSAiICAgICAgICAgICAgICAgICAgIFdIRVJFIGRhdG5hbWUgPSBjdXJyZW50 X2RhdGFiYXNlKCkpIik7CisJZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJ CQkJCQkgIiBOVUxMIEFTIHN1YnNlcnZlcm5hbWVcbiIKKwkJCQkJCQkgIkZST00gcGdfc3Vic2Ny aXB0aW9uIHNcbiIKKwkJCQkJCQkgIldIRVJFIHMuc3ViZGJpZCA9IChTRUxFQ1Qgb2lkIEZST00g cGdfZGF0YWJhc2VcbiIKKwkJCQkJCQkgIiAgICAgICAgICAgICAgICAgICBXSEVSRSBkYXRuYW1l ID0gY3VycmVudF9kYXRhYmFzZSgpKSIpOwogCiAJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQs IHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwogCkBAIC00NzI0LDYgKzQ3NTUsNyBAQCBn ZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaV9zdWJkaXNhYmxlb25lcnIgPSBQUWZu dW1iZXIocmVzLCAic3ViZGlzYWJsZW9uZXJyIik7CiAJaV9zdWJwYXNzd29yZHJlcXVpcmVkID0g UFFmbnVtYmVyKHJlcywgInN1YnBhc3N3b3JkcmVxdWlyZWQiKTsKIAlpX3N1YnJ1bmFzb3duZXIg PSBQUWZudW1iZXIocmVzLCAic3VicnVuYXNvd25lciIpOworCWlfc3Vic2VydmVybmFtZSA9IFBR Zm51bWJlcihyZXMsICJzdWJzZXJ2ZXJuYW1lIik7CiAJaV9zdWJjb25uaW5mbyA9IFBRZm51bWJl cihyZXMsICJzdWJjb25uaW5mbyIpOwogCWlfc3Vic2xvdG5hbWUgPSBQUWZudW1iZXIocmVzLCAi c3Vic2xvdG5hbWUiKTsKIAlpX3N1YnN5bmNjb21taXQgPSBQUWZudW1iZXIocmVzLCAic3Vic3lu Y2NvbW1pdCIpOwpAQCAtNDc0MSw3ICs0NzczLDEwIEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2 ZSAqZm91dCkKIAkJQXNzaWduRHVtcElkKCZzdWJpbmZvW2ldLmRvYmopOwogCQlzdWJpbmZvW2ld LmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJuYW1lKSk7CiAJ CXN1YmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1 Ym93bmVyKSk7Ci0KKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9zdWJzZXJ2ZXJuYW1lKSkK KwkJCXN1YmluZm9baV0uc3Vic2VydmVybmFtZSA9IE5VTEw7CisJCWVsc2UKKwkJCXN1YmluZm9b aV0uc3Vic2VydmVybmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJzZXJ2 ZXJuYW1lKSk7CiAJCXN1YmluZm9baV0uc3ViYmluYXJ5ID0KIAkJCXBnX3N0cmR1cChQUWdldHZh bHVlKHJlcywgaSwgaV9zdWJiaW5hcnkpKTsKIAkJc3ViaW5mb1tpXS5zdWJzdHJlYW0gPQpAQCAt NDgwNCw5ICs0ODM5LDE3IEBAIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3Qg U3Vic2NyaXB0aW9uSW5mbyAqc3ViaW5mbykKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJP UCBTVUJTQ1JJUFRJT04gJXM7XG4iLAogCQkJCQkgIHFzdWJuYW1lKTsKIAotCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFNVQlNDUklQVElPTiAlcyBDT05ORUNUSU9OICIsCisJYXBw ZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgU1VCU0NSSVBUSU9OICVzICIsCiAJCQkJCSAg cXN1Ym5hbWUpOwotCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgc3ViaW5mby0+c3ViY29u bmluZm8sIGZvdXQpOworCWlmIChzdWJpbmZvLT5zdWJzZXJ2ZXJuYW1lKQorCXsKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJTRVJWRVIgJXMiLCBmbXRJZChzdWJpbmZvLT5zdWJzZXJ2ZXJu YW1lKSk7CisJfQorCWVsc2UKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ09OTkVD VElPTiAiKTsKKwkJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5LCBzdWJpbmZvLT5zdWJjb25u aW5mbywgZm91dCk7CisJfQogCiAJLyogQnVpbGQgbGlzdCBvZiBxdW90ZWQgcHVibGljYXRpb25z IGFuZCBhcHBlbmQgdGhlbSB0byBxdWVyeS4gKi8KIAlpZiAoIXBhcnNlUEdBcnJheShzdWJpbmZv LT5zdWJwdWJsaWNhdGlvbnMsICZwdWJuYW1lcywgJm5wdWJuYW1lcykpCkBAIC05NTEzLDcgKzk1 NTYsNyBAQCBnZXRGb3JlaWduRGF0YVdyYXBwZXJzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtRm9y ZWlnbkRhdGFXcmFwcGVycykKIAkJZmR3aW5mb1tpXS5mZHdvcHRpb25zID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX2Zkd29wdGlvbnMpKTsKIAogCQkvKiBEZWNpZGUgd2hldGhlciB3 ZSB3YW50IHRvIGR1bXAgaXQgKi8KLQkJc2VsZWN0RHVtcGFibGVPYmplY3QoJihmZHdpbmZvW2ld LmRvYmopLCBmb3V0KTsKKwkJc2VsZWN0RHVtcGFibGVGZHcoJmZkd2luZm9baV0sIGZvdXQpOwog CiAJCS8qIE1hcmsgd2hldGhlciBGRFcgaGFzIGFuIEFDTCAqLwogCQlpZiAoIVBRZ2V0aXNudWxs KHJlcywgaSwgaV9mZHdhY2wpKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNjczY2E1YzkyZC4uMGE5NGI5Yjdh ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCkBAIC02NjcsNiArNjY3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YnNj cmlwdGlvbkluZm8KIAljaGFyCSAgICpzdWJkaXNhYmxlb25lcnI7CiAJY2hhcgkgICAqc3VicGFz c3dvcmRyZXF1aXJlZDsKIAljaGFyCSAgICpzdWJydW5hc293bmVyOworCWNoYXIJICAgKnN1YnNl cnZlcm5hbWU7CiAJY2hhcgkgICAqc3ViY29ubmluZm87CiAJY2hhcgkgICAqc3Vic2xvdG5hbWU7 CiAJY2hhcgkgICAqc3Vic3luY2NvbW1pdDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNTA3N2U3YjM1OC4uZmI0ZWE5 Njk2OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMKQEAgLTU3OTMsNyArNTc5Myw3IEBAIGxpc3RGb3JlaWduRGF0YVdyYXBw ZXJzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJCSAgZ2V0dGV4dF9u b29wKCJEZXNjcmlwdGlvbiIpKTsKIAl9CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi XG5GUk9NIHBnX2NhdGFsb2cucGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIgZmR3XG4iKTsKKwlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5GUk9NIChTRUxFQ1QgdGFibGVvaWQsICogRlJPTSBw Z19jYXRhbG9nLnBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIFdIRVJFIG9pZD49MTYzODQpIGZkd1xu Iik7CiAKIAlpZiAodmVyYm9zZSkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYwppbmRleCAwNDk4MDExODZjLi4yMzA2ODNhODUwIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBA IC0zMzE0LDcgKzMzMTQsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50 IHN0YXJ0LCBpbnQgZW5kKQogCiAvKiBDUkVBVEUgU1VCU0NSSVBUSU9OICovCiAJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVf V0lUSCgiQ09OTkVDVElPTiIpOworCQlDT01QTEVURV9XSVRIKCJTRVJWRVIiLCAiQ09OTkVDVElP TiIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFu eSwgIkNPTk5FQ1RJT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIlBVQkxJQ0FUSU9O Iik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQVElPTiIsIE1hdGNoQW55 LCAiQ09OTkVDVElPTiIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1 aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCBkY2IzYzVmNzY2Li4w MWU5MjA4OWJmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTgzLDYgKzgzLDcgQEAgYmtp X2RhdGEgPSBbCiAgICdwZ19jb2xsYXRpb24uZGF0JywKICAgJ3BnX2NvbnZlcnNpb24uZGF0JywK ICAgJ3BnX2RhdGFiYXNlLmRhdCcsCisgICdwZ19mb3JlaWduX2RhdGFfd3JhcHBlci5kYXQnLAog ICAncGdfbGFuZ3VhZ2UuZGF0JywKICAgJ3BnX25hbWVzcGFjZS5kYXQnLAogICAncGdfb3BjbGFz cy5kYXQnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuZGF0IGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuZGF0CmluZGV4IDZiNGEwYWFhYWQuLjhmY2U0 NTdhYjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aGlkLmRhdAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhpZC5kYXQKQEAgLTk0LDUgKzk0LDEwIEBACiAg IHJvbGNyZWF0ZXJvbGUgPT4gJ2YnLCByb2xjcmVhdGVkYiA9PiAnZicsIHJvbGNhbmxvZ2luID0+ ICdmJywKICAgcm9scmVwbGljYXRpb24gPT4gJ2YnLCByb2xieXBhc3NybHMgPT4gJ2YnLCByb2xj b25ubGltaXQgPT4gJy0xJywKICAgcm9scGFzc3dvcmQgPT4gJ19udWxsXycsIHJvbHZhbGlkdW50 aWwgPT4gJ19udWxsXycgfSwKK3sgb2lkID0+ICc2MTIzJywgb2lkX3N5bWJvbCA9PiAnUk9MRV9Q R19DUkVBVEVfQ09OTkVDVElPTicsCisgIHJvbG5hbWUgPT4gJ3BnX2NyZWF0ZV9jb25uZWN0aW9u Jywgcm9sc3VwZXIgPT4gJ2YnLCByb2xpbmhlcml0ID0+ICd0JywKKyAgcm9sY3JlYXRlcm9sZSA9 PiAnZicsIHJvbGNyZWF0ZWRiID0+ICdmJywgcm9sY2FubG9naW4gPT4gJ2YnLAorICByb2xyZXBs aWNhdGlvbiA9PiAnZicsIHJvbGJ5cGFzc3JscyA9PiAnZicsIHJvbGNvbm5saW1pdCA9PiAnLTEn LAorICByb2xwYXNzd29yZCA9PiAnX251bGxfJywgcm9sdmFsaWR1bnRpbCA9PiAnX251bGxfJyB9 LAogCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93 cmFwcGVyLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIu ZGF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdkNDg5YmY4NDkKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFw cGVyLmRhdApAQCAtMCwwICsxLDIyIEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBwZ19mb3JlaWdu X2RhdGFfd3JhcHBlci5kYXQKKyMgICAgSW5pdGlhbCBjb250ZW50cyBvZiB0aGUgcGdfZm9yZWln bl9kYXRhX3dyYXBwZXIgc3lzdGVtIGNhdGFsb2cuCisjCisjIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorIyBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorIworIyBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVy LmRhdAorIworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWworCit7IG9pZCA9PiAnNjAxNScsIG9pZF9zeW1i b2wgPT4gJ1BHX0NPTk5FQ1RJT05fRkRXJywKKyAgZGVzY3IgPT4gJ1BzZXVkbyBGRFcgZm9yIGNv bm5lY3Rpb25zIHRvIFBvc3RncmVzJywKKyAgZmR3bmFtZSA9PiAncGdfY29ubmVjdGlvbl9mZHcn LCBmZHdvd25lciA9PiAnUE9TVEdSRVMnLAorICBmZHdoYW5kbGVyID0+ICdwZ19jb25uZWN0aW9u X2hhbmRsZXInLAorICBmZHd2YWxpZGF0b3IgPT4gJ3BnX2Nvbm5lY3Rpb25fdmFsaWRhdG9yJywK KyAgZmR3YWNsID0+ICdfbnVsbF8nLCBmZHdvcHRpb25zID0+ICdfbnVsbF8nfSwKKworXQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggOTA1MmY1MjYyYS4uOGU4MWU1ZjZiYiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CkBAIC03NTE2LDYgKzc1MTYsMTQgQEAKICAgcHJvbmFtZSA9PiAncG9z dGdyZXNxbF9mZHdfdmFsaWRhdG9yJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCiAgIHByb2FyZ3R5 cGVzID0+ICdfdGV4dCBvaWQnLCBwcm9zcmMgPT4gJ3Bvc3RncmVzcWxfZmR3X3ZhbGlkYXRvcicg fSwKIAoreyBvaWQgPT4gJzYxMjInLCBkZXNjciA9PiAnKGludGVybmFsKScsCisgIHByb25hbWUg PT4gJ3BnX2Nvbm5lY3Rpb25faGFuZGxlcicsIHByb3JldHR5cGUgPT4gJ2Zkd19oYW5kbGVyJywK KyAgcHJvYXJndHlwZXMgPT4gJycsIHByb3NyYyA9PiAncGdfY29ubmVjdGlvbl9oYW5kbGVyJyB9 LAorCit7IG9pZCA9PiAnNjEyNCcsIGRlc2NyID0+ICcoaW50ZXJuYWwpJywKKyAgcHJvbmFtZSA9 PiAncGdfY29ubmVjdGlvbl92YWxpZGF0b3InLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJv YXJndHlwZXMgPT4gJ190ZXh0IG9pZCcsIHByb3NyYyA9PiAncGdfY29ubmVjdGlvbl92YWxpZGF0 b3InIH0sCisKIHsgb2lkID0+ICcyMjkwJywgZGVzY3IgPT4gJ0kvTycsCiAgIHByb25hbWUgPT4g J3JlY29yZF9pbicsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywK ICAgcHJvYXJndHlwZXMgPT4gJ2NzdHJpbmcgb2lkIGludDQnLCBwcm9zcmMgPT4gJ3JlY29yZF9p bicgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IGUwYjkxZWFjZDIu LjRiODNjOGNhOGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0 aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaApAQCAtOTMs OSArOTMsMTIgQEAgQ0FUQUxPRyhwZ19zdWJzY3JpcHRpb24sNjEwMCxTdWJzY3JpcHRpb25SZWxh dGlvbklkKSBCS0lfU0hBUkVEX1JFTEFUSU9OIEJLSV9ST1cKIAlib29sCQlzdWJydW5hc293bmVy OwkvKiBUcnVlIGlmIHJlcGxpY2F0aW9uIHNob3VsZCBleGVjdXRlIGFzIHRoZQogCQkJCQkJCQkg KiBzdWJzY3JpcHRpb24gb3duZXIgKi8KIAorCU9pZAkJCXN1YnNlcnZlcjsJCS8qIFNldCBpZiBj b25uZWN0aW5nIHdpdGggc2VydmVyICovCisKICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZh cmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8qIENvbm5lY3Rpb24gc3RyaW5n IHRvIHRoZSBwdWJsaXNoZXIgKi8KLQl0ZXh0CQlzdWJjb25uaW5mbyBCS0lfRk9SQ0VfTk9UX05V TEw7CisJdGV4dAkJc3ViY29ubmluZm8gQktJX0ZPUkNFX05VTEw7CS8qIFNldCBpZiBjb25uZWN0 aW5nIHdpdGgKKwkJCQkJCQkJCQkJICAgY29ubmVjdGlvbiBzdHJpbmcgKi8KIAogCS8qIFNsb3Qg bmFtZSBvbiBwdWJsaXNoZXIgKi8KIAlOYW1lRGF0YQlzdWJzbG90bmFtZSBCS0lfRk9SQ0VfTlVM TDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2ZvcmVpZ24vZm9yZWlnbi5oIGIvc3JjL2luY2x1 ZGUvZm9yZWlnbi9mb3JlaWduLmgKaW5kZXggNTI1NmQ0ZDkxZi4uNzA1ODMzNWQ2MyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvZm9yZWlnbi9mb3JlaWduLmgKKysrIGIvc3JjL2luY2x1ZGUvZm9y ZWlnbi9mb3JlaWduLmgKQEAgLTY5LDYgKzY5LDcgQEAgZXh0ZXJuIEZvcmVpZ25TZXJ2ZXIgKkdl dEZvcmVpZ25TZXJ2ZXJFeHRlbmRlZChPaWQgc2VydmVyaWQsCiAJCQkJCQkJCQkJCSAgIGJpdHMx NiBmbGFncyk7CiBleHRlcm4gRm9yZWlnblNlcnZlciAqR2V0Rm9yZWlnblNlcnZlckJ5TmFtZShj b25zdCBjaGFyICpzcnZuYW1lLAogCQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVy biBjaGFyICpGb3JlaWduU2VydmVyQ29ubmVjdGlvblN0cmluZyhPaWQgdXNlcmlkLCBPaWQgc2Vy dmVyaWQpOwogZXh0ZXJuIFVzZXJNYXBwaW5nICpHZXRVc2VyTWFwcGluZyhPaWQgdXNlcmlkLCBP aWQgc2VydmVyaWQpOwogZXh0ZXJuIEZvcmVpZ25EYXRhV3JhcHBlciAqR2V0Rm9yZWlnbkRhdGFX cmFwcGVyKE9pZCBmZHdpZCk7CiBleHRlcm4gRm9yZWlnbkRhdGFXcmFwcGVyICpHZXRGb3JlaWdu RGF0YVdyYXBwZXJFeHRlbmRlZChPaWQgZmR3aWQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXgg ZTQ5NDMwOWRhOC4uNGIzMTZkNDY2NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDA0MCw2 ICs0MDQwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdAogewogCU5v ZGVUYWcJCXR5cGU7CiAJY2hhcgkgICAqc3VibmFtZTsJCS8qIE5hbWUgb2YgdGhlIHN1YnNjcmlw dGlvbiAqLworCWNoYXIJICAgKnNlcnZlcm5hbWU7CQkvKiBTZXJ2ZXIgbmFtZSBvZiBwdWJsaXNo ZXIgKi8KIAljaGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHB1Ymxp c2hlciAqLwogCUxpc3QJICAgKnB1YmxpY2F0aW9uOwkvKiBPbmUgb3IgbW9yZSBwdWJsaWNhdGlv biB0byBzdWJzY3JpYmUgdG8gKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyogTGlzdCBvZiBEZWZF bGVtIG5vZGVzICovCkBAIC00MDQ4LDYgKzQwNDksNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVT dWJzY3JpcHRpb25TdG10CiB0eXBlZGVmIGVudW0gQWx0ZXJTdWJzY3JpcHRpb25UeXBlCiB7CiAJ QUxURVJfU1VCU0NSSVBUSU9OX09QVElPTlMsCisJQUxURVJfU1VCU0NSSVBUSU9OX1NFUlZFUiwK IAlBTFRFUl9TVUJTQ1JJUFRJT05fQ09OTkVDVElPTiwKIAlBTFRFUl9TVUJTQ1JJUFRJT05fU0VU X1BVQkxJQ0FUSU9OLAogCUFMVEVSX1NVQlNDUklQVElPTl9BRERfUFVCTElDQVRJT04sCkBAIC00 MDYyLDYgKzQwNjQsNyBAQCB0eXBlZGVmIHN0cnVjdCBBbHRlclN1YnNjcmlwdGlvblN0bXQKIAlO b2RlVGFnCQl0eXBlOwogCUFsdGVyU3Vic2NyaXB0aW9uVHlwZSBraW5kOyAvKiBBTFRFUl9TVUJT Q1JJUFRJT05fT1BUSU9OUywgZXRjICovCiAJY2hhcgkgICAqc3VibmFtZTsJCS8qIE5hbWUgb2Yg dGhlIHN1YnNjcmlwdGlvbiAqLworCWNoYXIJICAgKnNlcnZlcm5hbWU7CQkvKiBTZXJ2ZXIgbmFt ZSBvZiBwdWJsaXNoZXIgKi8KIAljaGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rpb24gc3Ry aW5nIHRvIHB1Ymxpc2hlciAqLwogCUxpc3QJICAgKnB1YmxpY2F0aW9uOwkvKiBPbmUgb3IgbW9y ZSBwdWJsaWNhdGlvbiB0byBzdWJzY3JpYmUgdG8gKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyog TGlzdCBvZiBEZWZFbGVtIG5vZGVzICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVp Z25fZGF0YS5vdXQKaW5kZXggMWRmZTIzY2MxZS4uYjU1MTQwNWEzZCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dApAQCAtMjUsNyArMjUsNyBAQCBDUkVBVEUg Rk9SRUlHTiBEQVRBIFdSQVBQRVIgZHVtbXk7CiBDT01NRU5UIE9OIEZPUkVJR04gREFUQSBXUkFQ UEVSIGR1bW15IElTICd1c2VsZXNzJzsKIENSRUFURSBGT1JFSUdOIERBVEEgV1JBUFBFUiBwb3N0 Z3Jlc3FsIFZBTElEQVRPUiBwb3N0Z3Jlc3FsX2Zkd192YWxpZGF0b3I7CiAtLSBBdCB0aGlzIHBv aW50IHdlIHNob3VsZCBoYXZlIDIgYnVpbHQtaW4gd3JhcHBlcnMgYW5kIG5vIHNlcnZlcnMuCi1T RUxFQ1QgZmR3bmFtZSwgZmR3aGFuZGxlcjo6cmVncHJvYywgZmR3dmFsaWRhdG9yOjpyZWdwcm9j LCBmZHdvcHRpb25zIEZST00gcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIgT1JERVIgQlkgMSwgMiwg MzsKK1NFTEVDVCBmZHduYW1lLCBmZHdoYW5kbGVyOjpyZWdwcm9jLCBmZHd2YWxpZGF0b3I6OnJl Z3Byb2MsIGZkd29wdGlvbnMgRlJPTSBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciBXSEVSRSBvaWQg Pj0gMTYzODQgT1JERVIgQlkgMSwgMiwgMzsKICAgZmR3bmFtZSAgIHwgZmR3aGFuZGxlciB8ICAg ICAgIGZkd3ZhbGlkYXRvciAgICAgICB8IGZkd29wdGlvbnMgCiAtLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQogIGR1bW15ICAg ICAgfCAtICAgICAgICAgIHwgLSAgICAgICAgICAgICAgICAgICAgICAgIHwgCkBAIC0zOTQsNiAr Mzk0LDQ3IEBAIENSRUFURSBTRVJWRVIgdDIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgZm9vOwogCiBS RVNFVCBST0xFOwogUkVWT0tFIHJlZ3Jlc3NfdGVzdF9pbmRpcmVjdCBGUk9NIHJlZ3Jlc3NfdGVz dF9yb2xlOworLS0gdGVzdCBTRVJWRVIgLi4uIEZPUiBDT05ORUNUSU9OIE9OTFkKK1NFVCBST0xF IHJlZ3Jlc3NfdGVzdF9yb2xlOworQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEgV1JBUFBF UiBwZ19jb25uZWN0aW9uX2ZkdzsgICAtLSBFUlJPUjogbm90IGEgbWVtYmVyIG9mIHBnX2NyZWF0 ZV9jb25uZWN0aW9uCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBmb3JlaWduLWRhdGEg d3JhcHBlciBwZ19jb25uZWN0aW9uX2ZkdworUkVTRVQgUk9MRTsKK0dSQU5UIFVTQUdFIE9OIEZP UkVJR04gREFUQSBXUkFQUEVSIHBnX2Nvbm5lY3Rpb25fZmR3IFRPIHJlZ3Jlc3NfdGVzdF9yb2xl OworU0VUIFJPTEUgcmVncmVzc190ZXN0X3JvbGU7CitDUkVBVEUgU0VSVkVSIHQzIEZPUkVJR04g REFUQSBXUkFQUEVSIHBnX2Nvbm5lY3Rpb25fZmR3IE9QVElPTlMgKGNsaWVudF9lbmNvZGluZyAn Zm9vJyk7IC0tZmFpbHMKK0VSUk9SOiAgY2Fubm90IHNwZWNpZnkgY2xpZW50X2VuY29kaW5nIGZv ciBwZ19jb25uZWN0aW9uX2ZkdworQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEgV1JBUFBF UiBwZ19jb25uZWN0aW9uX2ZkdyBPUFRJT05TICh1c2VyICdmb28nKTsgLS1mYWlscworRVJST1I6 ICBpbnZhbGlkIG9wdGlvbiAidXNlciIgZm9yIHBnX2Nvbm5lY3Rpb25fZmR3CitISU5UOiAgU3Bl Y2lmeSBvcHRpb24gInVzZXIiIGZvciBhIHVzZXIgbWFwcGluZyBhc3NvY2lhdGVkIHdpdGggdGhl IHNlcnZlciBpbnN0ZWFkLgorQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEgV1JBUFBFUiBw Z19jb25uZWN0aW9uX2ZkdyBPUFRJT05TIChwYXNzd29yZCAnZm9vJyk7IC0tZmFpbHMKK0VSUk9S OiAgaW52YWxpZCBvcHRpb24gInBhc3N3b3JkIiBmb3IgcGdfY29ubmVjdGlvbl9mZHcKK0hJTlQ6 ICBTcGVjaWZ5IG9wdGlvbiAicGFzc3dvcmQiIGZvciBhIHVzZXIgbWFwcGluZyBhc3NvY2lhdGVk IHdpdGggdGhlIHNlcnZlciBpbnN0ZWFkLgorQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEg V1JBUFBFUiBwZ19jb25uZWN0aW9uX2ZkdyBPUFRJT05TIChwYXNzd29yZF9yZXF1aXJlZCAndHJ1 ZScpOyAtLWZhaWxzCitFUlJPUjogIGludmFsaWQgb3B0aW9uICJwYXNzd29yZF9yZXF1aXJlZCIg Zm9yIHBnX2Nvbm5lY3Rpb25fZmR3CitISU5UOiAgU3BlY2lmeSBvcHRpb24gInBhc3N3b3JkX3Jl cXVpcmVkIiBmb3IgYSB1c2VyIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZXJ2ZXIgaW5z dGVhZC4KK0NSRUFURSBTRVJWRVIgdDMgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcGdfY29ubmVjdGlv bl9mZHc7CitJTVBPUlQgRk9SRUlHTiBTQ0hFTUEgZm9vIEZST00gU0VSVkVSIHQzIElOVE8gYmFy OyAtLSBmYWlscworRVJST1I6ICBzY2hlbWEgImJhciIgZG9lcyBub3QgZXhpc3QKK0NSRUFURSBV U0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDMgT1BUSU9OUyAodXNlciAneCcpOyAtLSBm YWlscworRVJST1I6ICBwYXNzd29yZCBpcyByZXF1aXJlZAorREVUQUlMOiAgTm9uLXN1cGVydXNl cnMgbXVzdCBwcm92aWRlIGEgcGFzc3dvcmQgaW4gdGhlIGNvbm5lY3Rpb24gc3RyaW5nLgorQ1JF QVRFIFVTRVIgTUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0MyBPUFRJT05TICh1c2VyICd4Jywg cGFzc3dvcmRfcmVxdWlyZWQgJ2ZhbHNlJyk7IC0tIGZhaWxzCitFUlJPUjogIHBhc3N3b3JkX3Jl cXVpcmVkPWZhbHNlIGlzIHN1cGVydXNlci1vbmx5IGZvciBwZ19jb25uZWN0aW9uX2ZkdworSElO VDogIFVzZXIgbWFwcGluZ3Mgd2l0aCB0aGUgcGFzc3dvcmRfcmVxdWlyZWQgb3B0aW9uIHNldCB0 byBmYWxzZSBtYXkgb25seSBiZSBjcmVhdGVkIG9yIG1vZGlmaWVkIGJ5IHRoZSBzdXBlcnVzZXIu CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzIE9QVElPTlMgKHVzZXIg J3gnLCBhcHBsaWNhdGlvbl9uYW1lICdub25zZW5zZScpOyAtLSBmYWlscworRVJST1I6ICBpbnZh bGlkIHVzZXIgbWFwcGluZyBvcHRpb24gImFwcGxpY2F0aW9uX25hbWUiIGZvciBwZ19jb25uZWN0 aW9uX2ZkdworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0MyBPUFRJT05T ICh1c2VyICd4JywgcGFzc3dvcmQgJ3NlY3JldCcpOworRFJPUCBVU0VSIE1BUFBJTkcgRk9SIFBV QkxJQyBTRVJWRVIgdDM7CitSRVNFVCBST0xFOworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVC TElDIFNFUlZFUiB0MyBPUFRJT05TICh1c2VyICd4Jyk7IC0tIHN0aWxsIGZhaWxzCitFUlJPUjog IHBhc3N3b3JkIGlzIHJlcXVpcmVkCitERVRBSUw6ICBOb24tc3VwZXJ1c2VycyBtdXN0IHByb3Zp ZGUgYSBwYXNzd29yZCBpbiB0aGUgY29ubmVjdGlvbiBzdHJpbmcuCitDUkVBVEUgVVNFUiBNQVBQ SU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzIE9QVElPTlMgKHVzZXIgJ3gnLCBwYXNzd29yZCAnc2Vj cmV0Jyk7CitEUk9QIFVTRVIgTUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0MzsKK0NSRUFURSBV U0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDMgT1BUSU9OUyAodXNlciAneCcsIHBhc3N3 b3JkX3JlcXVpcmVkICdmYWxzZScpOworRFJPUCBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJW RVIgdDM7CitEUk9QIFNFUlZFUiB0MzsKK1JFVk9LRSBVU0FHRSBPTiBGT1JFSUdOIERBVEEgV1JB UFBFUiBwZ19jb25uZWN0aW9uX2ZkdyBGUk9NIHJlZ3Jlc3NfdGVzdF9yb2xlOwogLS0gQUxURVIg U0VSVkVSCiBBTFRFUiBTRVJWRVIgczA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtLSBFUlJPUgogRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiOyIK QEAgLTk2NiwxMyArMTAwNywxNCBAQCBOT1RJQ0U6ICByZWxhdGlvbiAiZG9lc250X2V4aXN0X2Z0 MSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCiBBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNU UyBkb2VzbnRfZXhpc3RfZnQxIFJFTkFNRSBUTyBmb3JlaWduX3RhYmxlXzE7CiBOT1RJQ0U6ICBy ZWxhdGlvbiAiZG9lc250X2V4aXN0X2Z0MSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCiAtLSBJ bmZvcm1hdGlvbiBzY2hlbWEKLVNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmZvcmVp Z25fZGF0YV93cmFwcGVycyBPUkRFUiBCWSAxLCAyOwotIGZvcmVpZ25fZGF0YV93cmFwcGVyX2Nh dGFsb2cgfCBmb3JlaWduX2RhdGFfd3JhcHBlcl9uYW1lIHwgYXV0aG9yaXphdGlvbl9pZGVudGlm aWVyICB8IGxpYnJhcnlfbmFtZSB8IGZvcmVpZ25fZGF0YV93cmFwcGVyX2xhbmd1YWdlIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgICAgfCBkdW1teSAg ICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc19mb3JlaWduX2RhdGFfdXNlciB8ICAgICAgICAg ICAgICB8IGMKLSByZWdyZXNzaW9uICAgICAgICAgICAgICAgICAgIHwgZm9vICAgICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3NfZm9yZWlnbl9kYXRhX3VzZXIgfCAgICAgICAgICAgICAgfCBj Ci0gcmVncmVzc2lvbiAgICAgICAgICAgICAgICAgICB8IHBvc3RncmVzcWwgICAgICAgICAgICAg ICAgfCByZWdyZXNzX2ZvcmVpZ25fZGF0YV91c2VyIHwgICAgICAgICAgICAgIHwgYwotKDMgcm93 cykKK1NFTEVDVCBmb3JlaWduX2RhdGFfd3JhcHBlcl9jYXRhbG9nLGZvcmVpZ25fZGF0YV93cmFw cGVyX25hbWUgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuZm9yZWlnbl9kYXRhX3dyYXBwZXJzIE9S REVSIEJZIDEsIDI7CisgZm9yZWlnbl9kYXRhX3dyYXBwZXJfY2F0YWxvZyB8IGZvcmVpZ25fZGF0 YV93cmFwcGVyX25hbWUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICAgICAgICB8IGR1bW15 CisgcmVncmVzc2lvbiAgICAgICAgICAgICAgICAgICB8IGZvbworIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgICAgICAgfCBwZ19jb25uZWN0aW9uX2ZkdworIHJlZ3Jlc3Npb24gICAgICAgICAgICAg ICAgICAgfCBwb3N0Z3Jlc3FsCisoNCByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9u X3NjaGVtYS5mb3JlaWduX2RhdGFfd3JhcHBlcl9vcHRpb25zIE9SREVSIEJZIDEsIDIsIDM7CiAg Zm9yZWlnbl9kYXRhX3dyYXBwZXJfY2F0YWxvZyB8IGZvcmVpZ25fZGF0YV93cmFwcGVyX25hbWUg fCBvcHRpb25fbmFtZSAgfCBvcHRpb25fdmFsdWUgCkBAIC0yMTg2LDcgKzIyMjgsNyBAQCBOT1RJ Q0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlcnZlciBzMAogXGMKIERST1AgUk9MRSByZWdyZXNzX2Zv cmVpZ25fZGF0YV91c2VyOwogLS0gQXQgdGhpcyBwb2ludCB3ZSBzaG91bGQgaGF2ZSBubyB3cmFw cGVycywgbm8gc2VydmVycywgYW5kIG5vIG1hcHBpbmdzLgotU0VMRUNUIGZkd25hbWUsIGZkd2hh bmRsZXIsIGZkd3ZhbGlkYXRvciwgZmR3b3B0aW9ucyBGUk9NIHBnX2ZvcmVpZ25fZGF0YV93cmFw cGVyOworU0VMRUNUIGZkd25hbWUsIGZkd2hhbmRsZXIsIGZkd3ZhbGlkYXRvciwgZmR3b3B0aW9u cyBGUk9NIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIFdIRVJFIG9pZCA+PSAxNjM4NDsKICBmZHdu YW1lIHwgZmR3aGFuZGxlciB8IGZkd3ZhbGlkYXRvciB8IGZkd29wdGlvbnMgCiAtLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQogKDAgcm93cykKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAppbmRleCBiMTVlZGRiZmYzLi43 MzhmMWIxNjc4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlw dGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0 CkBAIC0xNDQsNiArMTQ0LDQ0IEBAIEVSUk9SOiAgY291bGQgbm90IGNvbm5lY3QgdG8gdGhlIHB1 Ymxpc2hlcjogaW52YWxpZCBwb3J0IG51bWJlcjogIi0xIgogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdmb29iYXInOwogRVJST1I6ICBpbnZhbGlkIGNvbm5l Y3Rpb24gc3RyaW5nIHN5bnRheDogbWlzc2luZyAiPSIgYWZ0ZXIgImZvb2JhciIgaW4gY29ubmVj dGlvbiBpbmZvIHN0cmluZwogCistLSB0ZW1wb3JhcmlseSByZXZva2UgcGdfY3JlYXRlX2Nvbm5l Y3Rpb24gZnJvbSBwZ19jcmVhdGVfc3Vic2NyaXB0aW9uCistLSB0byB0ZXN0IHRoYXQgQ1JFQVRF IFNVQlNDUklQVElPTiAuLi4gQ09OTkVDVElPTiBmYWlscworUkVTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OOworUkVWT0tFIHBnX2NyZWF0ZV9jb25uZWN0aW9uIEZST00gcGdfY3JlYXRlX3N1YnNj cmlwdGlvbjsKK0dSQU5UIENSRUFURSBPTiBEQVRBQkFTRSBSRUdSRVNTSU9OIFRPIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIzOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyMzsKKy0tIGZhaWwgLSBub3QgYSBtZW1iZXIgb2YgcGdfY3JlYXRlX2Nv bm5lY3Rpb24sIGNhbm5vdCB1c2UgQ09OTkVDVElPTgorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWI2IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCBwYXNz d29yZD1yZWdyZXNzX2Zha2VwYXNzd29yZCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChzbG90 X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCB0byBjcmVhdGUgc3Vic2NyaXB0aW9uIHdpdGggYSBjb25uZWN0aW9uIHN0cmluZworREVUQUlM OiAgT25seSByb2xlcyB3aXRoIHByaXZpbGVnZXMgb2YgdGhlICJwZ19jcmVhdGVfY29ubmVjdGlv biIgcm9sZSBtYXkgY3JlYXRlIHN1YnNjcmlwdGlvbnMgd2l0aCBDT05ORUNUSU9OIHNwZWNpZmll ZC4KK0hJTlQ6ICBDcmVhdGUgYSBzdWJzY3JpcHRpb24gdG8gYSBmb3JlaWduIHNlcnZlciBieSBz cGVjaWZ5aW5nIFNFUlZFUiBpbnN0ZWFkLgorLS0gcmUtZ3JhbnQgcGdfY3JlYXRlX2Nvbm5lY3Rp b24gdG8gcGdfY3JlYXRlX3N1YnNjcmlwdGlvbgorUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9O OworR1JBTlQgcGdfY3JlYXRlX2Nvbm5lY3Rpb24gVE8gcGdfY3JlYXRlX3N1YnNjcmlwdGlvbjsK K1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CitD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHBhc3N3b3JkPXJlZ3Jlc3NfZmFrZXBhc3N3b3JkJyBQVUJMSUNB VElPTiB0ZXN0cHViIFdJVEggKHNsb3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CitX QVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAor SElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUg dGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVz aCB0aGUgc3Vic2NyaXB0aW9uLgorRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNjsK Ky0tIHRlc3QgdXNpbmcgYSBzZXJ2ZXIgb2JqZWN0IGluc3RlYWQgb2YgY29ubmVjdGlvbiBzdHJp bmcKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKK0NSRUFURSBTRVJWRVIgcmVncmVzc190 ZXN0c2VydmVyIEZPUkVJR04gREFUQSBXUkFQUEVSIHBnX2Nvbm5lY3Rpb25fZmR3OworQ1JFQVRF IFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jl c3NfdGVzdHNlcnZlcgorICBPUFRJT05TIChwYXNzd29yZF9yZXF1aXJlZCAnZmFsc2UnKTsKK0dS QU5UIFVTQUdFIE9OIEZPUkVJR04gU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlciBUTyByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyMzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19z dWJzY3JpcHRpb25fdXNlcjM7CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjYg U0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlciBQVUJMSUNBVElPTiB0ZXN0cHViCisgIFdJVEggKHNs b3RfbmFtZSA9IE5PTkUsIGNvbm5lY3QgPSBmYWxzZSk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9u IHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJl cGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3Qs IGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgor UkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjYgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsgLS0gZmFpbCwgbm8g dXNlciBtYXBwaW5nCitFUlJPUjogIHVzZXIgbWFwcGluZyBub3QgZm91bmQgZm9yIHVzZXIgInJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIiLCBzZXJ2ZXIgInJlZ3Jlc3NfdGVzdHNlcnZlciIKK0RS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjY7CitEUk9QIFVTRVIgTUFQUElORyBGT1Ig cmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjMgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjsKK0RS T1AgU0VSVkVSIHJlZ3Jlc3NfdGVzdHNlcnZlcjsKK1JFVk9LRSBDUkVBVEUgT04gREFUQUJBU0Ug cmVncmVzc2lvbiBGUk9NIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogXGRScysKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCiAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgU2tpcCBMU04gCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWdu X2RhdGEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yZWlnbl9kYXRhLnNxbAppbmRleCBl ZWZiODYwYWRjLi4xNWEyOGRlOWFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9m b3JlaWduX2RhdGEuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5z cWwKQEAgLTM2LDcgKzM2LDcgQEAgQ09NTUVOVCBPTiBGT1JFSUdOIERBVEEgV1JBUFBFUiBkdW1t eSBJUyAndXNlbGVzcyc7CiBDUkVBVEUgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNxbCBW QUxJREFUT1IgcG9zdGdyZXNxbF9mZHdfdmFsaWRhdG9yOwogCiAtLSBBdCB0aGlzIHBvaW50IHdl IHNob3VsZCBoYXZlIDIgYnVpbHQtaW4gd3JhcHBlcnMgYW5kIG5vIHNlcnZlcnMuCi1TRUxFQ1Qg ZmR3bmFtZSwgZmR3aGFuZGxlcjo6cmVncHJvYywgZmR3dmFsaWRhdG9yOjpyZWdwcm9jLCBmZHdv cHRpb25zIEZST00gcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIgT1JERVIgQlkgMSwgMiwgMzsKK1NF TEVDVCBmZHduYW1lLCBmZHdoYW5kbGVyOjpyZWdwcm9jLCBmZHd2YWxpZGF0b3I6OnJlZ3Byb2Ms IGZkd29wdGlvbnMgRlJPTSBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciBXSEVSRSBvaWQgPj0gMTYz ODQgT1JERVIgQlkgMSwgMiwgMzsKIFNFTEVDVCBzcnZuYW1lLCBzcnZvcHRpb25zIEZST00gcGdf Zm9yZWlnbl9zZXJ2ZXI7CiBTRUxFQ1QgKiBGUk9NIHBnX3VzZXJfbWFwcGluZzsKIApAQCAtMTgw LDYgKzE4MCw0MSBAQCBDUkVBVEUgU0VSVkVSIHQyIEZPUkVJR04gREFUQSBXUkFQUEVSIGZvbzsK IFJFU0VUIFJPTEU7CiBSRVZPS0UgcmVncmVzc190ZXN0X2luZGlyZWN0IEZST00gcmVncmVzc190 ZXN0X3JvbGU7CiAKKy0tIHRlc3QgU0VSVkVSIC4uLiBGT1IgQ09OTkVDVElPTiBPTkxZCisKK1NF VCBST0xFIHJlZ3Jlc3NfdGVzdF9yb2xlOworQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEg V1JBUFBFUiBwZ19jb25uZWN0aW9uX2ZkdzsgICAtLSBFUlJPUjogbm90IGEgbWVtYmVyIG9mIHBn X2NyZWF0ZV9jb25uZWN0aW9uCitSRVNFVCBST0xFOworR1JBTlQgVVNBR0UgT04gRk9SRUlHTiBE QVRBIFdSQVBQRVIgcGdfY29ubmVjdGlvbl9mZHcgVE8gcmVncmVzc190ZXN0X3JvbGU7CitTRVQg Uk9MRSByZWdyZXNzX3Rlc3Rfcm9sZTsKKworQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEg V1JBUFBFUiBwZ19jb25uZWN0aW9uX2ZkdyBPUFRJT05TIChjbGllbnRfZW5jb2RpbmcgJ2Zvbycp OyAtLWZhaWxzCitDUkVBVEUgU0VSVkVSIHQzIEZPUkVJR04gREFUQSBXUkFQUEVSIHBnX2Nvbm5l Y3Rpb25fZmR3IE9QVElPTlMgKHVzZXIgJ2ZvbycpOyAtLWZhaWxzCitDUkVBVEUgU0VSVkVSIHQz IEZPUkVJR04gREFUQSBXUkFQUEVSIHBnX2Nvbm5lY3Rpb25fZmR3IE9QVElPTlMgKHBhc3N3b3Jk ICdmb28nKTsgLS1mYWlscworQ1JFQVRFIFNFUlZFUiB0MyBGT1JFSUdOIERBVEEgV1JBUFBFUiBw Z19jb25uZWN0aW9uX2ZkdyBPUFRJT05TIChwYXNzd29yZF9yZXF1aXJlZCAndHJ1ZScpOyAtLWZh aWxzCitDUkVBVEUgU0VSVkVSIHQzIEZPUkVJR04gREFUQSBXUkFQUEVSIHBnX2Nvbm5lY3Rpb25f ZmR3OworCitJTVBPUlQgRk9SRUlHTiBTQ0hFTUEgZm9vIEZST00gU0VSVkVSIHQzIElOVE8gYmFy OyAtLSBmYWlscworCitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VSVkVSIHQzIE9Q VElPTlMgKHVzZXIgJ3gnKTsgLS0gZmFpbHMKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJ QyBTRVJWRVIgdDMgT1BUSU9OUyAodXNlciAneCcsIHBhc3N3b3JkX3JlcXVpcmVkICdmYWxzZScp OyAtLSBmYWlscworQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0MyBPUFRJ T05TICh1c2VyICd4JywgYXBwbGljYXRpb25fbmFtZSAnbm9uc2Vuc2UnKTsgLS0gZmFpbHMKKwor Q1JFQVRFIFVTRVIgTUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0MyBPUFRJT05TICh1c2VyICd4 JywgcGFzc3dvcmQgJ3NlY3JldCcpOworRFJPUCBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJW RVIgdDM7CisKK1JFU0VUIFJPTEU7CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMgU0VS VkVSIHQzIE9QVElPTlMgKHVzZXIgJ3gnKTsgLS0gc3RpbGwgZmFpbHMKKworQ1JFQVRFIFVTRVIg TUFQUElORyBGT1IgUFVCTElDIFNFUlZFUiB0MyBPUFRJT05TICh1c2VyICd4JywgcGFzc3dvcmQg J3NlY3JldCcpOworRFJPUCBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDM7CisKK0NS RUFURSBVU0VSIE1BUFBJTkcgRk9SIFBVQkxJQyBTRVJWRVIgdDMgT1BUSU9OUyAodXNlciAneCcs IHBhc3N3b3JkX3JlcXVpcmVkICdmYWxzZScpOworCitEUk9QIFVTRVIgTUFQUElORyBGT1IgUFVC TElDIFNFUlZFUiB0MzsKK0RST1AgU0VSVkVSIHQzOworUkVWT0tFIFVTQUdFIE9OIEZPUkVJR04g REFUQSBXUkFQUEVSIHBnX2Nvbm5lY3Rpb25fZmR3IEZST00gcmVncmVzc190ZXN0X3JvbGU7CisK IC0tIEFMVEVSIFNFUlZFUgogQUxURVIgU0VSVkVSIHMwOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLS0gRVJST1IKIEFMVEVSIFNFUlZFUiBzMCBPUFRJT05TIChh ICcxJyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEVSUk9SCkBAIC00NTMsNyArNDg4 LDcgQEAgQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBSRU5B TUUgVE8gZm9yZWlnbl90YWJsZV8xOwogCiAtLSBJbmZvcm1hdGlvbiBzY2hlbWEKIAotU0VMRUNU ICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuZm9yZWlnbl9kYXRhX3dyYXBwZXJzIE9SREVSIEJZ IDEsIDI7CitTRUxFQ1QgZm9yZWlnbl9kYXRhX3dyYXBwZXJfY2F0YWxvZyxmb3JlaWduX2RhdGFf d3JhcHBlcl9uYW1lIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmZvcmVpZ25fZGF0YV93cmFwcGVy cyBPUkRFUiBCWSAxLCAyOwogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuZm9yZWln bl9kYXRhX3dyYXBwZXJfb3B0aW9ucyBPUkRFUiBCWSAxLCAyLCAzOwogU0VMRUNUICogRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEuZm9yZWlnbl9zZXJ2ZXJzIE9SREVSIEJZIDEsIDI7CiBTRUxFQ1Qg KiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5mb3JlaWduX3NlcnZlcl9vcHRpb25zIE9SREVSIEJZ IDEsIDIsIDM7CkBAIC04NjEsNiArODk2LDYgQEAgRFJPUCBGT1JFSUdOIERBVEEgV1JBUFBFUiBk dW1teSBDQVNDQURFOwogRFJPUCBST0xFIHJlZ3Jlc3NfZm9yZWlnbl9kYXRhX3VzZXI7CiAKIC0t IEF0IHRoaXMgcG9pbnQgd2Ugc2hvdWxkIGhhdmUgbm8gd3JhcHBlcnMsIG5vIHNlcnZlcnMsIGFu ZCBubyBtYXBwaW5ncy4KLVNFTEVDVCBmZHduYW1lLCBmZHdoYW5kbGVyLCBmZHd2YWxpZGF0b3Is IGZkd29wdGlvbnMgRlJPTSBwZ19mb3JlaWduX2RhdGFfd3JhcHBlcjsKK1NFTEVDVCBmZHduYW1l LCBmZHdoYW5kbGVyLCBmZHd2YWxpZGF0b3IsIGZkd29wdGlvbnMgRlJPTSBwZ19mb3JlaWduX2Rh dGFfd3JhcHBlciBXSEVSRSBvaWQgPj0gMTYzODQ7CiBTRUxFQ1Qgc3J2bmFtZSwgc3J2b3B0aW9u cyBGUk9NIHBnX2ZvcmVpZ25fc2VydmVyOwogU0VMRUNUICogRlJPTSBwZ191c2VyX21hcHBpbmc7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAppbmRleCA0NDRlNTYzZmYzLi5iZWY2 YmM4MDc0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAgLTg4LDYgKzg4 LDQ1IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNSBDT05ORUNUSU9OICdw b3J0PS0xJyBQVUJMSUNBVElPTiB0ZXN0cHViOwogLS0gZmFpbCAtIGludmFsaWQgY29ubmVjdGlv biBzdHJpbmcgZHVyaW5nIEFMVEVSCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiAKKy0tIHRlbXBvcmFyaWx5IHJldm9rZSBwZ19jcmVhdGVf Y29ubmVjdGlvbiBmcm9tIHBnX2NyZWF0ZV9zdWJzY3JpcHRpb24KKy0tIHRvIHRlc3QgdGhhdCBD UkVBVEUgU1VCU0NSSVBUSU9OIC4uLiBDT05ORUNUSU9OIGZhaWxzCitSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CitSRVZPS0UgcGdfY3JlYXRlX2Nvbm5lY3Rpb24gRlJPTSBwZ19jcmVhdGVf c3Vic2NyaXB0aW9uOworR1JBTlQgQ1JFQVRFIE9OIERBVEFCQVNFIFJFR1JFU1NJT04gVE8gcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIzOworCistLSBmYWlsIC0gbm90IGEgbWVtYmVyIG9mIHBnX2Ny ZWF0ZV9jb25uZWN0aW9uLCBjYW5ub3QgdXNlIENPTk5FQ1RJT04KK0NSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViNiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgcGFzc3dvcmQ9cmVncmVzc19mYWtlcGFzc3dvcmQnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lU SCAoc2xvdF9uYW1lID0gTk9ORSwgY29ubmVjdCA9IGZhbHNlKTsKKworLS0gcmUtZ3JhbnQgcGdf Y3JlYXRlX2Nvbm5lY3Rpb24gdG8gcGdfY3JlYXRlX3N1YnNjcmlwdGlvbgorUkVTRVQgU0VTU0lP TiBBVVRIT1JJWkFUSU9OOworR1JBTlQgcGdfY3JlYXRlX2Nvbm5lY3Rpb24gVE8gcGdfY3JlYXRl X3N1YnNjcmlwdGlvbjsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlcjM7CisKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBDT05O RUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgcGFzc3dvcmQ9cmVncmVzc19mYWtl cGFzc3dvcmQnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoc2xvdF9uYW1lID0gTk9ORSwgY29u bmVjdCA9IGZhbHNlKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjY7CisKKy0t IHRlc3QgdXNpbmcgYSBzZXJ2ZXIgb2JqZWN0IGluc3RlYWQgb2YgY29ubmVjdGlvbiBzdHJpbmcK KworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworQ1JFQVRFIFNFUlZFUiByZWdyZXNzX3Rl c3RzZXJ2ZXIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcGdfY29ubmVjdGlvbl9mZHc7CitDUkVBVEUg VVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMyBTRVJWRVIgcmVncmVz c190ZXN0c2VydmVyCisgIE9QVElPTlMgKHBhc3N3b3JkX3JlcXVpcmVkICdmYWxzZScpOworR1JB TlQgVVNBR0UgT04gRk9SRUlHTiBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyIFRPIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIzOworCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIzOworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI2 IFNFUlZFUiByZWdyZXNzX3Rlc3RzZXJ2ZXIgUFVCTElDQVRJT04gdGVzdHB1YgorICBXSVRIIChz bG90X25hbWUgPSBOT05FLCBjb25uZWN0ID0gZmFsc2UpOworUkVTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OOworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNiBPV05FUiBUTyBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOyAtLSBmYWlsLCBubyB1c2VyIG1hcHBpbmcKK0RST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjY7CisKK0RST1AgVVNFUiBNQVBQSU5HIEZPUiBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMyBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyOworRFJP UCBTRVJWRVIgcmVncmVzc190ZXN0c2VydmVyOworUkVWT0tFIENSRUFURSBPTiBEQVRBQkFTRSBy ZWdyZXNzaW9uIEZST00gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CitTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CisKIFxkUnMrCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIFBVQkxJQ0FUSU9OIHRlc3RwdWIyLCB0 ZXN0cHViMyBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDAxX3JlcF9jaGFuZ2VzLnBsCmluZGV4IDE2YzdmYjk0ZWIuLmQxMmMxODJmMTYgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwMV9yZXBfY2hhbmdlcy5wbAorKysgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMDFfcmVwX2NoYW5nZXMucGwKQEAgLTI3LDYgKzI3LDggQEAg JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFRBQkxFIHRh Yl9ub3RyZXAgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEwKSBBUyBhIik7CiAkbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJDUkVBVEUgVEFCTEUgdGFiX2lucyBB UyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMikgQVMgYSIpOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYl9pbnMyIEFTIFNFTEVD VCBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAyKSBBUyBhIik7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAogCSJDUkVBVEUgVEFCTEUgdGFiX2Z1bGwgQVMgU0VMRUNUIGdlbmVy YXRlX3NlcmllcygxLDEwKSBBUyBhIik7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRhYl9mdWxsMiAoeCB0ZXh0KSIpOwpAQCAtNjUsNiArNjcs NyBAQCAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogIyBTZXR1cCBzdHJ1 Y3R1cmUgb24gc3Vic2NyaWJlcgogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJDUkVBVEUgVEFCTEUgdGFiX25vdHJlcCAoYSBpbnQpIik7CiAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfaW5zIChhIGludCkiKTsK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRh Yl9pbnMyIChhIGludCkiKTsKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiQ1JFQVRFIFRBQkxFIHRhYl9mdWxsIChhIGludCkiKTsKICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRhYl9mdWxsMiAoeCB0ZXh0KSIpOwog JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCkBAIC0xMTAsNiArMTEzLDIy IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJDUkVBVEUgU1VC U0NSSVBUSU9OIHRhcF9zdWIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNB VElPTiB0YXBfcHViLCB0YXBfcHViX2luc19vbmx5IgogKTsKIAorbXkgJHB1Ymxpc2hlcl9ob3N0 ID0gJG5vZGVfcHVibGlzaGVyLT5ob3N0OworbXkgJHB1Ymxpc2hlcl9wb3J0ID0gJG5vZGVfcHVi bGlzaGVyLT5wb3J0OworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBTRVJWRVIgdGFwX3N1YjJfc2VydmVyIEZPUkVJR04gREFUQSBXUkFQUEVSIHBnX2Nv bm5lY3Rpb25fZmR3IE9QVElPTlMgKGhvc3QgJyRwdWJsaXNoZXJfaG9zdCcsIHBvcnQgJyRwdWJs aXNoZXJfcG9ydCcsIGRibmFtZSAncG9zdGdyZXMnKSIKKyk7CisKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBQVUJMSUMg U0VSVkVSIHRhcF9zdWIyX3NlcnZlciBPUFRJT05TIChwYXNzd29yZF9yZXF1aXJlZCAnZmFsc2Un KSIKKyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUg UFVCTElDQVRJT04gdGFwX3NpbXBsZV9wdWIgRk9SIFRBQkxFIHRhYl9pbnMyIik7CisKKyRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9O IHRhcF9zdWIyIFNFUlZFUiB0YXBfc3ViMl9zZXJ2ZXIgUFVCTElDQVRJT04gdGFwX3NpbXBsZV9w dWIiCispOworCiAjIFdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKICRub2Rl X3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwg J3RhcF9zdWInKTsKIApAQCAtMTIxLDExICsxNDAsMjIgQEAgJHJlc3VsdCA9CiAgICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gdGFi X2lucyIpOwogaXMoJHJlc3VsdCwgcXEoMTAwMiksICdjaGVjayBpbml0aWFsIGRhdGEgd2FzIGNv cGllZCB0byBzdWJzY3JpYmVyJyk7CiAKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHRhYl9pbnMyIik7Citp cygkcmVzdWx0LCBxcSgxMDAyKSwgJ2NoZWNrIGluaXRpYWwgZGF0YSB3YXMgY29waWVkIHRvIHN1 YnNjcmliZXInKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJB TFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1YjIgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3Ry JyIpOworCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJJTlNFUlQg SU5UTyB0YWJfaW5zIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSw1MCkiKTsKICRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSB0YWJfaW5zIFdIRVJFIGEg PiAyMCIpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlVQREFURSB0 YWJfaW5zIFNFVCBhID0gLWEiKTsKIAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2luczIgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDUw KSIpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFNV QlNDUklQVElPTiB0YXBfc3ViMiBTRVJWRVIgdGFwX3N1YjJfc2VydmVyIik7CisKICRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIklOU0VSVCBJTlRPIHRhYl9yZXAgU0VM RUNUIGdlbmVyYXRlX3NlcmllcygxLDUwKSIpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkRFTEVURSBGUk9NIHRhYl9yZXAgV0hFUkUgYSA+IDIwIik7CkBAIC0xNTgs NiArMTg4LDEwIEBAICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKIAkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHRhYl9pbnMiKTsK IGlzKCRyZXN1bHQsIHFxKDEwNTJ8MXwxMDAyKSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBv biBzdWJzY3JpYmVyJyk7CiAKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHRhYl9p bnMyIik7CitpcygkcmVzdWx0LCBxcSgxMDUyfDF8MTAwMiksICdjaGVjayByZXBsaWNhdGVkIGlu c2VydHMgb24gc3Vic2NyaWJlcicpOworCiAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJP TSB0YWJfcmVwIik7CiBpcygkcmVzdWx0LCBxcSgyMHwtMjB8LTEpLCAnY2hlY2sgcmVwbGljYXRl ZCBjaGFuZ2VzIG9uIHN1YnNjcmliZXInKTsKQEAgLTQ0OSwxMCArNDgzLDI3IEBAICRub2RlX3B1 Ymxpc2hlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLAogICBvciBkaWUKICAgIlRpbWVk IG91dCB3aGlsZSB3YWl0aW5nIGZvciBhcHBseSB0byByZXN0YXJ0IGFmdGVyIGNoYW5naW5nIFBV QkxJQ0FUSU9OIjsKIAorIyB0ZXN0IHRoYXQgY2hhbmdlcyB0byBhIGZvcmVpZ24gc2VydmVyIHN1 YnNjcmlwdGlvbiBjYXVzZSB0aGUgd29ya2VyCisjIHRvIHJlc3RhcnQKKyRvbGRwaWQgPSAkbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGlkIEZST00gcGdf c3RhdF9yZXBsaWNhdGlvbiBXSEVSRSBhcHBsaWNhdGlvbl9uYW1lID0gJ3RhcF9zdWIyJyBBTkQg c3RhdGUgPSAnc3RyZWFtaW5nJzsiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkFMVEVSIFNFUlZFUiB0YXBfc3ViMl9zZXJ2ZXIgT1BUSU9OUyAoc3NsbW9k ZSAnZGlzYWJsZScpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+cG9sbF9xdWVyeV91bnRpbCgncG9z dGdyZXMnLAorCSJTRUxFQ1QgcGlkICE9ICRvbGRwaWQgRlJPTSBwZ19zdGF0X3JlcGxpY2F0aW9u IFdIRVJFIGFwcGxpY2F0aW9uX25hbWUgPSAndGFwX3N1YjInIEFORCBzdGF0ZSA9ICdzdHJlYW1p bmcnOyIKKyAgKQorICBvciBkaWUKKyAgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBhcHBs eSB0byByZXN0YXJ0IGFmdGVyIGNoYW5naW5nIFBVQkxJQ0FUSU9OIjsKKwogJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiSU5TRVJUIElOVE8gdGFiX2lucyBTRUxFQ1Qg Z2VuZXJhdGVfc2VyaWVzKDEwMDEsMTEwMCkiKTsKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSB0YWJfcmVwIik7CiAKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRhYl9pbnMyIFNFTEVDVCBnZW5l cmF0ZV9zZXJpZXMoMTAwMSwxMTAwKSIpOworCiAjIFJlc3RhcnQgdGhlIHB1Ymxpc2hlciBhbmQg Y2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBzdWJzY3JpYmVyIHdoaWNoCiAjIHNob3VsZCBiZSBpbiBh IHN0cmVhbWluZyBzdGF0ZSBhZnRlciBjYXRjaGluZyB1cC4KICRub2RlX3B1Ymxpc2hlci0+c3Rv cCgnZmFzdCcpOwpAQCAtNDY1LDYgKzUxNiwxMSBAQCAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiBpcygkcmVzdWx0LCBxcSgxMTUyfDF8MTEwMCksCiAJ J2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBhZnRlciBzdWJzY3JpcHRpb24gcHVibGljYXRpb24g Y2hhbmdlJyk7CiAKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHRhYl9pbnMyIik7 CitpcygkcmVzdWx0LCBxcSgxMTUyfDF8MTEwMCksCisJJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0 cyBhZnRlciBzdWJzY3JpcHRpb24gcHVibGljYXRpb24gY2hhbmdlJyk7CisKICRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIGNvdW50KCop LCBtaW4oYSksIG1heChhKSBGUk9NIHRhYl9yZXAiKTsKIGlzKCRyZXN1bHQsIHFxKDIwfC0yMHwt MSksCkBAIC01MzMsNiArNTg5LDcgQEAgJG5vZGVfcHVibGlzaGVyLT5wb2xsX3F1ZXJ5X3VudGls KCdwb3N0Z3JlcycsCiAKICMgY2hlY2sgYWxsIHRoZSBjbGVhbnVwCiAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcmVuYW1l ZCIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlND UklQVElPTiB0YXBfc3ViMiIpOwogCiAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3N1YnNjcmlwdGlvbiIp OwotLSAKMi4zNC4xCgo= --=-16fpqyIBQDUo0ogF2k2k--