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 1thra1-007liP-6y for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Feb 2025 14:49:41 +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 1thrZz-00Bc4b-VS for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Feb 2025 14:49:39 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1thrZz-00Bc4S-Im for pgsql-hackers@lists.postgresql.org; Tue, 11 Feb 2025 14:49:39 +0000 Received: from mail-pl1-x643.google.com ([2607:f8b0:4864:20::643]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1thrZw-000F3M-1b for pgsql-hackers@lists.postgresql.org; Tue, 11 Feb 2025 14:49:39 +0000 Received: by mail-pl1-x643.google.com with SMTP id d9443c01a7336-21fa56e1583so33469385ad.3 for ; Tue, 11 Feb 2025 06:49:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739285375; x=1739890175; darn=lists.postgresql.org; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=VD70CAAfiU6J91tbGoCd//sntBSrBis5jA2GVgfR5ok=; b=TMZHWKKDJHBwrzVXFhM0nl6TBsvaTIzDL7XWGMZVo32P4U0u/B8VEjHZXwpyi8bxaG X9YzzhM25b4kbLu+y/VWqKOvUemGq0obaM9+x3JwgSnaxzrHyVJSvuxHLJalDgGQd1tk pkOoRig9xqosu1Je8bSXJwY4tRyPFRf3DB3FjhNPpN3mVZiStsX7W7CDa3h3KpPhgJTu V6ZI/i3coZYeaMtqbpOO2ippEe2+SSBBdtXZzqLDQflRidvCf3B/UN9ABRSjus53WfBN /ghymxe/EBS+N2Cc2UmBVaAccn8U01667/pdbS2mQ4cViyk9ERgcfCGk/gmwr3rdYlU9 C9XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739285375; x=1739890175; h=mime-version:subject:references:in-reply-to:message-id:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VD70CAAfiU6J91tbGoCd//sntBSrBis5jA2GVgfR5ok=; b=HtJ+nj+lb/d3WmPedl0KgR5DHxylNIIGubMmuX+zvI8jgGebe94VF3CkO5dYXWYHkK ZvZjv6fpw5YzB2/MeFat6XO/pmg+L+Eg07Vv7LJAegNYwZn8wfC5Qv0pZMiKHebR729H XLyfqyFK2Q92t7sZYJ3PgjZIqesW9K2oei+MyIsealosnE13TnfX8ONZsf4Tr71qywqg tIWiDwLuKLZguPFkDdphjK14zHV1A9AnWRj6o0JJZe3a7GOXSjJXbH0m/6CKUjNzlj2m B0+94+xRxomVRmqQ+MZJkpwCvwdJA7wg3kMhIX3vbKKWafYVrJvA5BwWjVJ3q7PjPIpL Qnug== X-Forwarded-Encrypted: i=1; AJvYcCVvGeSVEpHVccl9fhP/XDxetcpBmpCrOdNDcARUWm2u4/mijVmP9RHdOGRn09VyFuooB1TnqL9dbtNxIkNM@lists.postgresql.org X-Gm-Message-State: AOJu0YxjDvzXIG75Xaj7wAJ3G9lLvx1YHLZH7ylMbCgqeTtTg5EKYJFU +JYB9JTTWAlmg5eaIfR957RI+e+yD9UbDRfpWJIIvIsmiq6acsbu X-Gm-Gg: ASbGncvzkWpXBnlXP9zXibjum7ejzcVougv31ORuU8CmS2/bpnaFAQZm64LOZXFkSpM WTuvxcXTR2l/xk7jNABC8OEJ+XD9LrGMJYW8HKSQXAx9/GJOFA5lglFqJf251OYLmUMMCd+mTyg +vAEJv+7K4CbD2266CFes7Veds8m+mXtvn45cidpMGuUNvmEkeHcYXED1lDJimAYCztCfAC9YLf Pc5VHB72UZQE1p9rMDc+T1y822phOV49puFFmxx+VDlRdCODGyaJ/575dRfrPTSdKt+ye+Kvfxj 3SXk+2Ulz3muHakhoPaJ X-Google-Smtp-Source: AGHT+IGflkdca/rMHCGT616ZErk9LNbgpkh2vPOBH6EL/yMbYp0RA5mowErPtAmiY0nDNfB8zgd78g== X-Received: by 2002:a17:903:2290:b0:21d:3bd7:afdf with SMTP id d9443c01a7336-220616c9670mr873345ad.0.1739285374789; Tue, 11 Feb 2025 06:49:34 -0800 (PST) Received: from [127.0.0.1] ([2407:cdc0:d003:2c06:badb:71b:f533:1074]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f3687c555sm97857055ad.182.2025.02.11.06.49.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Feb 2025 06:49:34 -0800 (PST) Date: Tue, 11 Feb 2025 22:49:24 +0800 From: Zhang Mingli To: Sami Imseih Cc: Michael Paquier , =?utf-8?Q?=C3=81lvaro_Herrera?= , PostgreSQL Hackers Message-ID: <532c4759-52d4-46c9-8eb2-6a836e3ece22@Spark> In-Reply-To: References: <202502021324.vn4ufyduifat@alvherre.pgsql> <9324b4d3-d49f-463e-984a-2725fe36cb2b@Spark> <3ded6d8c-c417-4812-8861-12cbb7f8e182@Spark> <3904c689-2801-4916-99ed-7a7e1d86da3e@Spark> Subject: Re: Proposal to CREATE FOREIGN TABLE LIKE X-Readdle-Message-ID: 532c4759-52d4-46c9-8eb2-6a836e3ece22@Spark MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="67ab6379_50b9552a_d3d4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --67ab6379_50b9552a_d3d4 Content-Type: multipart/alternative; boundary="67ab6379_4f244df2_d3d4" --67ab6379_4f244df2_d3d4 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Feb 11, 2025 at 08:14 +0800, Sami Imseih , wrote: > > Patch V2 addressed the comments. > > > > Overall this LGTM. > > > > I still see a "no real storage" in v2 that should be removed > > from the documentation. > > > > + Foreign tables have no real storage in PostgreSQL. > > + Inapplicable options: INCLUDING INDEXES, > > INCLUDING STORAGE, Oh, I corrected another one in the code comments, but I forgot about this one. Done in patch v3. > > > I think the test coverage to check for the negative conditions only is > enough. Hmm... I copied from the cases in the same file for each option. There's no harm in having more tests, how about we keep them? -- Zhang Mingli HashData --67ab6379_4f244df2_d3d4 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
On =46eb 11, 2025 at 08:14 +0800, Sami Imseih <s= amimseih=40gmail.com>, wrote:
Patch V2 addressed the comments.

Overall this LGTM.

I still see a =22no real storage=22 in v2 that should be removed
from the documentation.

+ =46oreign tables have no real storage in PostgreSQL.
+ Inapplicable options: <literal>INCLUDING INDEXES</literal>,=
<literal>INCLUDING STORAGE</literal>,
Oh, I corrected another one in the code comments, b= ut I forgot about this one.&=23160;
Done in patch v3.


I think the test coverage to check for the negative conditions only is enough.

Hmm... I copied from the cases in the same file for each option.&=23160;<= br /> There's no harm in having more tests, how about we keep them=3F

--
Zhang Mingli
HashData

--67ab6379_4f244df2_d3d4-- --67ab6379_50b9552a_d3d4 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v3-0001-CREATE-FOREIGN-TABLE-LIKE.patch" RnJvbSA1ZTdmZTgzYjRmNjg0YWFkMDE3OWE5MTUyMGM4ZWI5MDE0NTlkZTg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaaGFuZyBNaW5nbGkgPGF2YW1pbmdsaUBnbWFpbC5jb20+CkRh dGU6IFR1ZSwgMTEgRmViIDIwMjUgMjI6Mzg6NDkgKzA4MDAKU3ViamVjdDogW1BBVENIXSBDUkVB VEUgRk9SRUlHTiBUQUJMRSBMSUtFCgpBZGRlZCBzdXBwb3J0IGZvciBDUkVBVEUgRk9SRUlHTiBU QUJMRSBMSUtFIHRvIGVuYWJsZSB0aGUgY3JlYXRpb24gb2YKZm9yZWlnbiB0YWJsZXMgYmFzZWQg b24gdGhlIGNvbHVtbiBkZWZpbml0aW9ucywgY29uc3RyYWludHMgb2YgZXhpc3RpbmcKc291cmNl IHRhYmxlcy4KClRoaXMgZmVhdHVyZSBtaXJyb3JzIHRoZSBiZWhhdmlvciBvZiBDUkVBVEUgVEFC TEUgTElLRSwKYnV0IGlnbm9yZXMgaW5hcHBsaWNhYmxlIG9wdGlvbnMgc3VjaCBhcyBJTkNMVURJ TkcgSU5ERVhFUywKSU5DTFVESU5HIENPTVBSRVNTSU9OLCBJTkNMVURJTkcgSURFTlRJVFksIElO Q0xVRElORyBTVE9SQUdFCmZvciBmb3JlaWduIHRhYmxlcy4KCkF1dGhvcmVkLWJ5OiBaaGFuZyBN aW5nbGkgYXZhbWluZ2xpQGdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Zv cmVpZ25fdGFibGUuc2dtbCAgICB8IDExOCArKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMjggKy0tCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQgICAgfCAxNjUgKysrKysrKysrKysrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwgICAgfCAgNTcgKysrKysr CiA0IGZpbGVzIGNoYW5nZWQsIDM1NiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwKaW5kZXggMGRjZDljYTZm OC4uNWJjMGExMTAwOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWln bl90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUu c2dtbApAQCAtMjMsNyArMjMsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIDxzeW5vcHNp cz4KIENSRUFURSBGT1JFSUdOIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbCiAgIHsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgT1BUSU9O UyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiAn PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT4nIFssIC4u LiBdICkgXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0g WyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxh Y2VhYmxlPiBbIC4uLiBdIF0KLSAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9y ZXBsYWNlYWJsZT4gfQorICAgIHwgPHJlcGxhY2VhYmxlPnRhYmxlX2NvbnN0cmFpbnQ8L3JlcGxh Y2VhYmxlPgorICAgIHwgTElLRSA8cmVwbGFjZWFibGU+c291cmNlX3RhYmxlPC9yZXBsYWNlYWJs ZT4gWyA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiAuLi4gXSB9CiAgICAg WywgLi4uIF0KIF0gKQogWyBJTkhFUklUUyAoIDxyZXBsYWNlYWJsZT5wYXJlbnRfdGFibGU8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KQEAgLTU3LDYgKzU4LDEwIEBAIENSRUFURSBGT1JFSUdO IFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lCiAgICBDSEVDSyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBbIE5PIElOSEVSSVQgXSB9CiBbIEVORk9SQ0VEIHwgTk9U IEVORk9SQ0VEIF0KIAorPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKK3sgSU5DTFVESU5HIHwg RVhDTFVESU5HIH0geyBDT01NRU5UUyB8IENPTlNUUkFJTlRTIHwgREVGQVVMVFMgfCBHRU5FUkFU RUQgfCBTVEFUSVNUSUNTIHwgQUxMIH0KKwogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9ib3VuZF9zcGVjPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJh c2U+CiAKIElOICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcnRpdGlvbl9ib3Vu ZF9leHByPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIHwKQEAgLTE5MSw2ICsxOTYsMTE3IEBAIFdJ VEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVy YWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkxJS0UgPHJlcGxhY2Vh YmxlPnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9u PC9yZXBsYWNlYWJsZT4gLi4uIF08L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+TElLRTwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNp ZmllcyBhIHRhYmxlIGZyb20gd2hpY2gKKyAgICAgIHRoZSBuZXcgdGFibGUgYXV0b21hdGljYWxs eSBjb3BpZXMgYWxsIGNvbHVtbiBuYW1lcywgdGhlaXIgZGF0YSB0eXBlcywKKyAgICAgIGFuZCB0 aGVpciBub3QtbnVsbCBjb25zdHJhaW50cy4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAg ICAgIFVubGlrZSA8bGl0ZXJhbD5JTkhFUklUUzwvbGl0ZXJhbD4sIHRoZSBuZXcgdGFibGUgYW5k IG9yaWdpbmFsIHRhYmxlCisgICAgICBhcmUgY29tcGxldGVseSBkZWNvdXBsZWQgYWZ0ZXIgY3Jl YXRpb24gaXMgY29tcGxldGUuICBDaGFuZ2VzIHRvIHRoZQorICAgICAgb3JpZ2luYWwgdGFibGUg d2lsbCBub3QgYmUgYXBwbGllZCB0byB0aGUgbmV3IHRhYmxlLCBhbmQgaXQgaXMgbm90CisgICAg ICBwb3NzaWJsZSB0byBpbmNsdWRlIGRhdGEgb2YgdGhlIG5ldyB0YWJsZSBpbiBzY2FucyBvZiB0 aGUgb3JpZ2luYWwKKyAgICAgIHRhYmxlLgorICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgIEFsc28gdW5saWtlIDxsaXRlcmFsPklOSEVSSVRTPC9saXRlcmFsPiwgY29sdW1ucyBhbmQK KyAgICAgIGNvbnN0cmFpbnRzIGNvcGllZCBieSA8bGl0ZXJhbD5MSUtFPC9saXRlcmFsPiBhcmUg bm90IG1lcmdlZCB3aXRoIHNpbWlsYXJseQorICAgICAgbmFtZWQgY29sdW1ucyBhbmQgY29uc3Ry YWludHMuCisgICAgICBJZiB0aGUgc2FtZSBuYW1lIGlzIHNwZWNpZmllZCBleHBsaWNpdGx5IG9y IGluIGFub3RoZXIKKyAgICAgIDxsaXRlcmFsPkxJS0U8L2xpdGVyYWw+IGNsYXVzZSwgYW4gZXJy b3IgaXMgc2lnbmFsZWQuCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgb3B0 aW9uYWwgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4gY2xhdXNlcyBzcGVj aWZ5CisgICAgICB3aGljaCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgb2YgdGhlIG9yaWdpbmFsIHRh YmxlIHRvIGNvcHkuICBTcGVjaWZ5aW5nCisgICAgICA8bGl0ZXJhbD5JTkNMVURJTkc8L2xpdGVy YWw+IGNvcGllcyB0aGUgcHJvcGVydHksIHNwZWNpZnlpbmcKKyAgICAgIDxsaXRlcmFsPkVYQ0xV RElORzwvbGl0ZXJhbD4gb21pdHMgdGhlIHByb3BlcnR5LgorICAgICAgPGxpdGVyYWw+RVhDTFVE SU5HPC9saXRlcmFsPiBpcyB0aGUgZGVmYXVsdC4gIElmIG11bHRpcGxlIHNwZWNpZmljYXRpb25z CisgICAgICBhcmUgbWFkZSBmb3IgdGhlIHNhbWUga2luZCBvZiBvYmplY3QsIHRoZSBsYXN0IG9u ZSBpcyB1c2VkLiAgVGhlCisgICAgICBhdmFpbGFibGUgb3B0aW9ucyBhcmU6CisKKyAgICAgIDx2 YXJpYWJsZWxpc3Q+CisgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVy YWw+SU5DTFVESU5HIENPTU1FTlRTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVt PgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgQ29tbWVudHMgZm9yIHRoZSBjb3BpZWQgY29s dW1ucywgY29uc3RyYWludHMsIGFuZCBpbmRleGVzIHdpbGwgYmUKKyAgICAgICAgICBjb3BpZWQu ICBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBleGNsdWRlIGNvbW1lbnRzLCByZXN1bHRpbmcg aW4KKyAgICAgICAgICB0aGUgY29waWVkIGNvbHVtbnMgYW5kIGNvbnN0cmFpbnRzIGluIHRoZSBu ZXcgdGFibGUgaGF2aW5nIG5vCisgICAgICAgICAgY29tbWVudHMuCisgICAgICAgICA8L3BhcmE+ CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgQ09OU1RSQUlO VFM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4K KyAgICAgICAgICA8bGl0ZXJhbD5DSEVDSzwvbGl0ZXJhbD4gY29uc3RyYWludHMgd2lsbCBiZSBj b3BpZWQuICBObyBkaXN0aW5jdGlvbgorICAgICAgICAgIGlzIG1hZGUgYmV0d2VlbiBjb2x1bW4g Y29uc3RyYWludHMgYW5kIHRhYmxlIGNvbnN0cmFpbnRzLiAgTm90LW51bGwKKyAgICAgICAgICBj b25zdHJhaW50cyBhcmUgYWx3YXlzIGNvcGllZCB0byB0aGUgbmV3IHRhYmxlLgorICAgICAgICAg PC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisg ICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5HIERF RkFVTFRTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBh cmE+CisgICAgICAgICAgRGVmYXVsdCBleHByZXNzaW9ucyBmb3IgdGhlIGNvcGllZCBjb2x1bW4g ZGVmaW5pdGlvbnMgd2lsbCBiZQorICAgICAgICAgIGNvcGllZC4gIE90aGVyd2lzZSwgZGVmYXVs dCBleHByZXNzaW9ucyBhcmUgbm90IGNvcGllZCwgcmVzdWx0aW5nIGluCisgICAgICAgICAgdGhl IGNvcGllZCBjb2x1bW5zIGluIHRoZSBuZXcgdGFibGUgaGF2aW5nIG51bGwgZGVmYXVsdHMuICBO b3RlIHRoYXQKKyAgICAgICAgICBjb3B5aW5nIGRlZmF1bHRzIHRoYXQgY2FsbCBkYXRhYmFzZS1t b2RpZmljYXRpb24gZnVuY3Rpb25zLCBzdWNoIGFzCisgICAgICAgICAgPGZ1bmN0aW9uPm5leHR2 YWw8L2Z1bmN0aW9uPiwgbWF5IGNyZWF0ZSBhIGZ1bmN0aW9uYWwgbGlua2FnZQorICAgICAgICAg IGJldHdlZW4gdGhlIG9yaWdpbmFsIGFuZCBuZXcgdGFibGVzLgorICAgICAgICAgPC9wYXJhPgor ICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5HIEdFTkVSQVRFRDwv bGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAg ICAgICAgIEFueSBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIG9mIGNvcGllZCBjb2x1bW4gZGVmaW5p dGlvbnMgd2lsbCBiZQorICAgICAgICAgIGNvcGllZC4gIEJ5IGRlZmF1bHQsIG5ldyBjb2x1bW5z IHdpbGwgYmUgcmVndWxhciBiYXNlIGNvbHVtbnMuCisgICAgICAgICA8L3BhcmE+CisgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcgU1RBVElTVElDUzwvbGl0ZXJh bD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IEV4dGVuZGVkIHN0YXRpc3RpY3MgYXJlIGNvcGllZCB0byB0aGUgbmV3IHRhYmxlLgorICAgICAg ICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5H IEFMTDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJh PgorICAgICAgICAgIDxsaXRlcmFsPklOQ0xVRElORyBBTEw8L2xpdGVyYWw+IGlzIGFuIGFiYnJl dmlhdGVkIGZvcm0gc2VsZWN0aW5nCisgICAgICAgICAgYWxsIHRoZSBhdmFpbGFibGUgaW5kaXZp ZHVhbCBvcHRpb25zLiAgKEl0IGNvdWxkIGJlIHVzZWZ1bCB0byB3cml0ZQorICAgICAgICAgIGlu ZGl2aWR1YWwgPGxpdGVyYWw+RVhDTFVESU5HPC9saXRlcmFsPiBjbGF1c2VzIGFmdGVyCisgICAg ICAgICAgPGxpdGVyYWw+SU5DTFVESU5HIEFMTDwvbGl0ZXJhbD4gdG8gc2VsZWN0IGFsbCBidXQg c29tZSBzcGVjaWZpYworICAgICAgICAgIG9wdGlvbnMuKQorICAgICAgICAgPC9wYXJhPgorICAg ICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgPC92YXJpYWJs ZWxpc3Q+CisgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIEZvcmVpZ24gdGFibGVz IGhhdmUgbm8gc3RvcmFnZSBpbiBQb3N0Z3JlU1FMLgorICAgICAgSW5hcHBsaWNhYmxlIG9wdGlv bnM6IDxsaXRlcmFsPklOQ0xVRElORyBJTkRFWEVTPC9saXRlcmFsPiwgPGxpdGVyYWw+SU5DTFVE SU5HIFNUT1JBR0U8L2xpdGVyYWw+LAorICAgICAgPGxpdGVyYWw+SU5DTFVESU5HIENPTVBSRVNT SU9OPC9saXRlcmFsPiwgPGxpdGVyYWw+SU5DTFVESU5HIElERU5USVRZPC9saXRlcmFsPiBhcmUg aWdub3JlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5DT05TVFJBSU5UIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxl PjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGls Y21kLmMKaW5kZXggY2EwMjhkMmE2Ni4uZjZkYjQzZTAzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jCkBAIC0xMTE3LDYgKzExMTcsMTQgQEAgdHJhbnNmb3JtVGFibGVDb25zdHJhaW50 KENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbnN0cmFpbnQgKmNvbnN0cmFpbnQpCiAgKiBwcm9j ZXNzIGF0IHRoaXMgcG9pbnQsIGFkZCB0aGUgVGFibGVMaWtlQ2xhdXNlIHRvIGN4dC0+bGlrZWNs YXVzZXMsIHdoaWNoCiAgKiB3aWxsIGNhdXNlIHV0aWxpdHkuYyB0byBjYWxsIGV4cGFuZFRhYmxl TGlrZUNsYXVzZSgpIGFmdGVyIHRoZSBuZXcKICAqIHRhYmxlIGhhcyBiZWVuIGNyZWF0ZWQuCisg KgorICogRm9yIGZvcmVpZ24gdGFibGVzLCB0aGV5IGhhdmUgbm8gc3RvcmFnZSBpbiBQb3N0Z3Jl cy4KKyAqIEluYXBwbGljYWJsZSBvcHRpb25zIGFyZSBpZ25vcmVkOgorICoJQ1JFQVRFX1RBQkxF X0xJS0VfQ09NUFJFU1NJT04KKyAqCUNSRUFURV9UQUJMRV9MSUtFX0lERU5USVRZCisgKglDUkVB VEVfVEFCTEVfTElLRV9TVE9SQUdFCisgKglDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTCisgKiB3 aGlsZSBJTkRFWEVTIGlzIGhhbmRsZWQgaW4gZXhwYW5kVGFibGVMaWtlQ2xhdXNlKCkgbGF0ZXIu CiAgKi8KIHN0YXRpYyB2b2lkCiB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENv bnRleHQgKmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYXVzZSkKQEAgLTExMzEs MTIgKzExMzksNiBAQCB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENvbnRleHQg KmN4dCwgVGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYQogCXNldHVwX3BhcnNlcl9lcnJw b3NpdGlvbl9jYWxsYmFjaygmcGNic3RhdGUsIGN4dC0+cHN0YXRlLAogCQkJCQkJCQkJICB0YWJs ZV9saWtlX2NsYXVzZS0+cmVsYXRpb24tPmxvY2F0aW9uKTsKIAotCS8qIHdlIGNvdWxkIHN1cHBv cnQgTElLRSBpbiBtYW55IGNhc2VzLCBidXQgd29ycnkgYWJvdXQgaXQgYW5vdGhlciBkYXkgKi8K LQlpZiAoY3h0LT5pc2ZvcmVpZ24pCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJtc2coIkxJS0UgaXMgbm90IHN1 cHBvcnRlZCBmb3IgY3JlYXRpbmcgZm9yZWlnbiB0YWJsZXMiKSkpOwotCiAJLyogT3BlbiB0aGUg cmVsYXRpb24gcmVmZXJlbmNlZCBieSB0aGUgTElLRSBjbGF1c2UgKi8KIAlyZWxhdGlvbiA9IHJl bGF0aW9uX29wZW5ydih0YWJsZV9saWtlX2NsYXVzZS0+cmVsYXRpb24sIEFjY2Vzc1NoYXJlTG9j ayk7CiAKQEAgLTEyMTcsNyArMTIxOSw4IEBAIHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVzZShDcmVh dGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhCiAJCSAq IENvcHkgaWRlbnRpdHkgaWYgcmVxdWVzdGVkCiAJCSAqLwogCQlpZiAoYXR0cmlidXRlLT5hdHRp ZGVudGl0eSAmJgotCQkJKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRpb25zICYgQ1JFQVRFX1RBQkxF X0xJS0VfSURFTlRJVFkpKQorCQkJKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRpb25zICYgQ1JFQVRF X1RBQkxFX0xJS0VfSURFTlRJVFkpICYmCisJCQkhY3h0LT5pc2ZvcmVpZ24pCiAJCXsKIAkJCU9p ZAkJCXNlcV9yZWxpZDsKIAkJCUxpc3QJICAgKnNlcV9vcHRpb25zOwpAQCAtMTIzNiwxNCArMTIz OSwxNiBAQCB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwg VGFibGVMaWtlQ2xhdXNlICp0YWJsZV9saWtlX2NsYQogCQl9CiAKIAkJLyogTGlrZXdpc2UsIGNv cHkgc3RvcmFnZSBpZiByZXF1ZXN0ZWQgKi8KLQkJaWYgKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRp b25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfU1RPUkFHRSkKKwkJaWYgKCh0YWJsZV9saWtlX2NsYXVz ZS0+b3B0aW9ucyAmIENSRUFURV9UQUJMRV9MSUtFX1NUT1JBR0UpICYmCisJCQkhY3h0LT5pc2Zv cmVpZ24pCiAJCQlkZWYtPnN0b3JhZ2UgPSBhdHRyaWJ1dGUtPmF0dHN0b3JhZ2U7CiAJCWVsc2UK IAkJCWRlZi0+c3RvcmFnZSA9IDA7CiAKIAkJLyogTGlrZXdpc2UsIGNvcHkgY29tcHJlc3Npb24g aWYgcmVxdWVzdGVkICovCi0JCWlmICgodGFibGVfbGlrZV9jbGF1c2UtPm9wdGlvbnMgJiBDUkVB VEVfVEFCTEVfTElLRV9DT01QUkVTU0lPTikgIT0gMAotCQkJJiYgQ29tcHJlc3Npb25NZXRob2RJ c1ZhbGlkKGF0dHJpYnV0ZS0+YXR0Y29tcHJlc3Npb24pKQorCQlpZiAoKHRhYmxlX2xpa2VfY2xh dXNlLT5vcHRpb25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfQ09NUFJFU1NJT04pICE9IDAgJiYKKwkJ CUNvbXByZXNzaW9uTWV0aG9kSXNWYWxpZChhdHRyaWJ1dGUtPmF0dGNvbXByZXNzaW9uKSAmJgor CQkJIWN4dC0+aXNmb3JlaWduKQogCQkJZGVmLT5jb21wcmVzc2lvbiA9CiAJCQkJcHN0cmR1cChH ZXRDb21wcmVzc2lvbk1ldGhvZE5hbWUoYXR0cmlidXRlLT5hdHRjb21wcmVzc2lvbikpOwogCQll bHNlCkBAIC0xNTIyLDcgKzE1MjcsOCBAQCBleHBhbmRUYWJsZUxpa2VDbGF1c2UoUmFuZ2VWYXIg KmhlYXBSZWwsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGF1c2UpCiAJICogUHJvY2Vz cyBpbmRleGVzIGlmIHJlcXVpcmVkLgogCSAqLwogCWlmICgodGFibGVfbGlrZV9jbGF1c2UtPm9w dGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTKSAmJgotCQlyZWxhdGlvbi0+cmRfcmVs LT5yZWxoYXNpbmRleCkKKwkJcmVsYXRpb24tPnJkX3JlbC0+cmVsaGFzaW5kZXggJiYKKwkJY2hp bGRyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCiAJewogCQlM aXN0CSAgICpwYXJlbnRfaW5kZXhlczsKIAkJTGlzdENlbGwgICAqbDsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKaW5kZXggZTA2MTM4OTEzNS4u NDA0OGNkMTlkYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf dGFibGVfbGlrZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFi bGVfbGlrZS5vdXQKQEAgLTU2MywzICs1NjMsMTY4IEBAIERST1AgVFlQRSBjdGx0eTE7CiBEUk9Q IFZJRVcgY3RsdjE7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyBjdGx0NCwgY3RsdDEwLCBjdGx0MTEs IGN0bHQxMWEsIGN0bHQxMjsKIE5PVElDRTogIHRhYmxlICJjdGx0MTAiIGRvZXMgbm90IGV4aXN0 LCBza2lwcGluZworLS0KKy0tIENSRUFURSBGT1JFSUdOIFRBQkxFIExJS0UKKy0tCitDUkVBVEUg Rk9SRUlHTiBEQVRBIFdSQVBQRVIgY3RsX2R1bW15OworQ1JFQVRFIFNFUlZFUiBjdGxfczAgRk9S RUlHTiBEQVRBIFdSQVBQRVIgY3RsX2R1bW15OworQ1JFQVRFIFRBQkxFIGN0bF90YWJsZShhIGlu dCBERUZBVUxUIDEsIGIgdGV4dCwKKyAgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCwKKyAgZCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSk7CitDUkVB VEUgSU5ERVggY3RsX3RhYmxlX2Ffa2V5IE9OIGN0bF90YWJsZShhKTsKK0NPTU1FTlQgT04gQ09M VU1OIGN0bF90YWJsZS5iIElTICdDb2x1bW4gYic7CitDUkVBVEUgU1RBVElTVElDUyBjdGxfdGFi bGVfc3RhdCBPTiBhLGIgRlJPTSBjdGxfdGFibGU7CitBTFRFUiBUQUJMRSBjdGxfdGFibGUgYWRk IGNvbnN0cmFpbnQgZm9vIENIRUNLIChiID0gJ3RleHQnKTsKK1xkKyBjdGxfdGFibGUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5j dGxfdGFibGUiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0 IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgIHwg ICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAg ICAgICAgIHwgQ29sdW1uIGIKKyBjICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkIHwgcGxhaW4gICAgfCAgICAg ICAgICAgICAgfCAKKyBkICAgICAgfCBiaWdpbnQgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIGlkZW50aXR5ICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAg ICAgfCAKK0luZGV4ZXM6CisgICAgImN0bF90YWJsZV9hX2tleSIgYnRyZWUgKGEpCitDaGVjayBj b25zdHJhaW50czoKKyAgICAiZm9vIiBDSEVDSyAoYiA9ICd0ZXh0Jzo6dGV4dCkKK1N0YXRpc3Rp Y3Mgb2JqZWN0czoKKyAgICAicHVibGljLmN0bF90YWJsZV9zdGF0IiBPTiBhLCBiIEZST00gY3Rs X3RhYmxlCitOb3QtbnVsbCBjb25zdHJhaW50czoKKyAgICAiY3RsX3RhYmxlX2Rfbm90X251bGwi IE5PVCBOVUxMICJkIgorCistLSBUZXN0IEVYQ0xVRElORyBBTEwgYnkgZGVmYXVsdAorQ1JFQVRF IEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUxKExJS0UgY3RsX3RhYmxlKSBTRVJWRVIg Y3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlMQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGb3JlaWduIHRhYmxlICJwdWJsaWMuY3RsX2ZvcmVpZ25fdGFibGUxIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBGRFcgb3B0aW9u cyB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBwbGFpbiAgICB8 ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCisg YyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBkICAgICAgfCBiaWdpbnQgIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBwbGFpbiAgICB8 ICAgICAgICAgICAgICB8IAorTm90LW51bGwgY29uc3RyYWludHM6CisgICAgImN0bF90YWJsZV9k X25vdF9udWxsIiBOT1QgTlVMTCAiZCIKK1NlcnZlcjogY3RsX3MwCisKKy0tIFRlc3QgSU5DTFVE SU5HIElOREVYRVMgZG9lcyd0IHRha2UgZWZmZWN0CitDUkVBVEUgRk9SRUlHTiBUQUJMRSBjdGxf Zm9yZWlnbl90YWJsZTIoTElLRSBjdGxfdGFibGUgSU5DTFVESU5HIElOREVYRVMpIFNFUlZFUiBj dGxfczA7CitcZCsgY3RsX2ZvcmVpZ25fdGFibGUyCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZvcmVpZ24gdGFibGUgInB1YmxpYy5jdGxfZm9yZWlnbl90YWJsZTIiCisgQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IEZEVyBvcHRpb25z IHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICB8IHBsYWluICAgIHwg ICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAKKyBj ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGQgICAgICB8IGJpZ2ludCAgfCAg ICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCAgICAgICAgICAgICB8IHBsYWluICAgIHwg ICAgICAgICAgICAgIHwgCitOb3QtbnVsbCBjb25zdHJhaW50czoKKyAgICAiY3RsX3RhYmxlX2Rf bm90X251bGwiIE5PVCBOVUxMICJkIgorU2VydmVyOiBjdGxfczAKKworLS0gVGVzdCBJTkNMVURJ TkcgSURFTlRJVFkgZG9lcyd0IHRha2UgZWZmZWN0CitDUkVBVEUgRk9SRUlHTiBUQUJMRSBjdGxf Zm9yZWlnbl90YWJsZTMoTElLRSBjdGxfdGFibGUgSU5DTFVESU5HIElERU5USVRZKSBTRVJWRVIg Y3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlMworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBGb3JlaWduIHRhYmxlICJwdWJsaWMuY3RsX2ZvcmVpZ25fdGFibGUzIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBGRFcgb3B0aW9u cyB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBwbGFpbiAgICB8 ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCisg YyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBkICAgICAgfCBiaWdpbnQgIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBwbGFpbiAgICB8 ICAgICAgICAgICAgICB8IAorTm90LW51bGwgY29uc3RyYWludHM6CisgICAgImN0bF90YWJsZV9k X25vdF9udWxsIiBOT1QgTlVMTCAiZCIKK1NlcnZlcjogY3RsX3MwCisKKy0tIFRlc3QgSU5DTFVE SU5HIENPTVBSRVNTSU9OIGRvZXMndCB0YWtlIGVmZmVjdAorXHNldCBISURFX1RPQVNUX0NPTVBS RVNTSU9OIGZhbHNlCitBTFRFUiBUQUJMRSBjdGxfdGFibGUgQUxURVIgQ09MVU1OIGIgVFlQRSB2 YXJjaGFyOworQUxURVIgVEFCTEUgY3RsX3RhYmxlIEFMVEVSIENPTFVNTiBiIFNFVCBDT01QUkVT U0lPTiBwZ2x6OworXGQrIGN0bF90YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmN0bF90YWJsZSIKKyBD b2x1bW4gfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgQ29tcHJlc3Npb24gfCBT dGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyBhICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgMSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dGVu ZGVkIHwgcGdseiAgICAgICAgfCAgICAgICAgICAgICAgfCBDb2x1bW4gYgorIGMgICAgICB8IGlu dGVnZXIgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChhICogMikgc3RvcmVkIHwgcGxhaW4gICAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg ICB8IAorIGQgICAgICB8IGJpZ2ludCAgICAgICAgICAgIHwgICAgICAgICAgIHwgbm90IG51bGwg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIGlkZW50aXR5ICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAiY3RsX3RhYmxlX2Ffa2V5IiBi dHJlZSAoYSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJmb28iIENIRUNLIChiOjp0ZXh0ID0g J3RleHQnOjp0ZXh0KQorU3RhdGlzdGljcyBvYmplY3RzOgorICAgICJwdWJsaWMuY3RsX3RhYmxl X3N0YXQiIE9OIGEsIGIgRlJPTSBjdGxfdGFibGUKK05vdC1udWxsIGNvbnN0cmFpbnRzOgorICAg ICJjdGxfdGFibGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCisKK0NSRUFURSBGT1JFSUdOIFRB QkxFIGN0bF9mb3JlaWduX3RhYmxlNChMSUtFIGN0bF90YWJsZSBJTkNMVURJTkcgQ09NUFJFU1NJ T04pIFNFUlZFUiBjdGxfczA7CitcZCsgY3RsX2ZvcmVpZ25fdGFibGU0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRm9yZWlnbiB0YWJsZSAicHVibGljLmN0bF9mb3JlaWdu X3RhYmxlNCIKKyBDb2x1bW4gfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCB8IEZEVyBvcHRpb25zIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBE ZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAg ICAgfCAKKyBiICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAKKyBj ICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBkICAgICAgfCBi aWdpbnQgICAgICAgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8ICAgICAg ICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKK05vdC1udWxsIGNvbnN0cmFpbnRz OgorICAgICJjdGxfdGFibGVfZF9ub3RfbnVsbCIgTk9UIE5VTEwgImQiCitTZXJ2ZXI6IGN0bF9z MAorCitcc2V0IEhJREVfVE9BU1RfQ09NUFJFU1NJT04gdHJ1ZQorLS0gVGVzdCBJTkNMVURJTkcg U1RPUkFHRSBkb2VzJ3QgdGFrZSBlZmZlY3QKK0FMVEVSIFRBQkxFIGN0bF90YWJsZSBBTFRFUiBD T0xVTU4gYiBTRVQgU1RPUkFHRSBleHRlcm5hbDsKK1xkKyBjdGxfdGFibGUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmN0 bF90YWJsZSIKKyBDb2x1bW4gfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgU3Rh dHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVn ZXIgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAxICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBj aGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IGV4dGVybmFsIHwgICAgICAgICAgICAgIHwgQ29sdW1uIGIK KyBjICAgICAgfCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCB8IHBsYWluICAgIHwgICAgICAgICAgICAg IHwgCisgZCAgICAgIHwgYmlnaW50ICAgICAgICAgICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgaWRlbnRpdHkgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAg ICAgICB8IAorSW5kZXhlczoKKyAgICAiY3RsX3RhYmxlX2Ffa2V5IiBidHJlZSAoYSkKK0NoZWNr IGNvbnN0cmFpbnRzOgorICAgICJmb28iIENIRUNLIChiOjp0ZXh0ID0gJ3RleHQnOjp0ZXh0KQor U3RhdGlzdGljcyBvYmplY3RzOgorICAgICJwdWJsaWMuY3RsX3RhYmxlX3N0YXQiIE9OIGEsIGIg RlJPTSBjdGxfdGFibGUKK05vdC1udWxsIGNvbnN0cmFpbnRzOgorICAgICJjdGxfdGFibGVfZF9u b3RfbnVsbCIgTk9UIE5VTEwgImQiCisKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWdu X3RhYmxlNShMSUtFIGN0bF90YWJsZSBJTkNMVURJTkcgU1RPUkFHRSkgU0VSVkVSIGN0bF9zMDsK K1xkKyBjdGxfZm9yZWlnbl90YWJsZTUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGb3JlaWduIHRhYmxlICJwdWJsaWMuY3RsX2ZvcmVpZ25fdGFibGU1IgorIENvbHVtbiB8 ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgRkRX IG9wdGlvbnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEg ICAgICB8IGludGVnZXIgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg IHwgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IGNo YXJhY3RlciB2YXJ5aW5nIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAorIGMgICAgICB8IGludGVnZXIgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBw bGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIGQgICAgICB8IGJpZ2ludCAgICAgICAgICAgIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgICAgICAgICAgICAgfCBwbGFpbiAgICB8 ICAgICAgICAgICAgICB8IAorTm90LW51bGwgY29uc3RyYWludHM6CisgICAgImN0bF90YWJsZV9k X25vdF9udWxsIiBOT1QgTlVMTCAiZCIKK1NlcnZlcjogY3RsX3MwCisKKy0tIFRlc3QgdmFsaWQg bGlrZV9vcHRpb25zIHRha2UgZWZmZWN0OgorQ1JFQVRFIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVp Z25fdGFibGU2KExJS0UgY3RsX3RhYmxlIElOQ0xVRElORyBBTEwpIFNFUlZFUiBjdGxfczA7Citc ZCsgY3RsX2ZvcmVpZ25fdGFibGU2CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZvcmVpZ24gdGFibGUgInB1YmxpYy5jdGxfZm9yZWlnbl90YWJsZTYi CisgQ29sdW1uIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgfCBGRFcgb3B0aW9ucyB8IFN0b3JhZ2Ug IHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCisgYSAgICAgIHwgaW50ZWdlciAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8IHBsYWlu ICAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgQ29sdW1uIGIKKyBjICAgICAg fCBpbnRlZ2VyICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoYSAqIDIpIHN0b3JlZCB8ICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAg ICAgICAgfCAKKyBkICAgICAgfCBiaWdpbnQgICAgICAgICAgICB8ICAgICAgICAgICB8IG5vdCBu dWxsIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwg cGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJmb28i IENIRUNLIChiOjp0ZXh0ID0gJ3RleHQnOjp0ZXh0KQorU3RhdGlzdGljcyBvYmplY3RzOgorICAg ICJwdWJsaWMuY3RsX2ZvcmVpZ25fdGFibGU2X2FfYl9zdGF0IiBPTiBhLCBiIEZST00gY3RsX2Zv cmVpZ25fdGFibGU2CitOb3QtbnVsbCBjb25zdHJhaW50czoKKyAgICAiY3RsX3RhYmxlX2Rfbm90 X251bGwiIE5PVCBOVUxMICJkIgorU2VydmVyOiBjdGxfczAKKworRFJPUCBUQUJMRSBjdGxfdGFi bGU7CitEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUxOworRFJPUCBGT1JFSUdO IFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMjsKK0RST1AgRk9SRUlHTiBUQUJMRSBjdGxfZm9yZWln bl90YWJsZTM7CitEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGU0OworRFJPUCBG T1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlNTsKK0RST1AgRk9SRUlHTiBUQUJMRSBjdGxf Zm9yZWlnbl90YWJsZTY7CitEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teSBDQVND QURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXJ2ZXIgY3RsX3MwCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwKaW5kZXggYTQxZjhiODNkNy4uZWE1ODZh ZjQzOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbApAQCAt MjI1LDMgKzIyNSw2MCBAQCBEUk9QIFNFUVVFTkNFIGN0bHNlcTE7CiBEUk9QIFRZUEUgY3RsdHkx OwogRFJPUCBWSUVXIGN0bHYxOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgY3RsdDQsIGN0bHQxMCwg Y3RsdDExLCBjdGx0MTFhLCBjdGx0MTI7CisKKy0tCistLSBDUkVBVEUgRk9SRUlHTiBUQUJMRSBM SUtFCistLQorQ1JFQVRFIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teTsKK0NSRUFURSBT RVJWRVIgY3RsX3MwIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teTsKKworQ1JFQVRFIFRB QkxFIGN0bF90YWJsZShhIGludCBERUZBVUxUIDEsIGIgdGV4dCwKKyAgYyBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwKKyAgZCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyBJREVOVElUWSk7CisKK0NSRUFURSBJTkRFWCBjdGxfdGFibGVfYV9rZXkgT04gY3RsX3RhYmxl KGEpOworQ09NTUVOVCBPTiBDT0xVTU4gY3RsX3RhYmxlLmIgSVMgJ0NvbHVtbiBiJzsKK0NSRUFU RSBTVEFUSVNUSUNTIGN0bF90YWJsZV9zdGF0IE9OIGEsYiBGUk9NIGN0bF90YWJsZTsKK0FMVEVS IFRBQkxFIGN0bF90YWJsZSBhZGQgY29uc3RyYWludCBmb28gQ0hFQ0sgKGIgPSAndGV4dCcpOwor XGQrIGN0bF90YWJsZQorCistLSBUZXN0IEVYQ0xVRElORyBBTEwgYnkgZGVmYXVsdAorQ1JFQVRF IEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUxKExJS0UgY3RsX3RhYmxlKSBTRVJWRVIg Y3RsX3MwOworXGQrIGN0bF9mb3JlaWduX3RhYmxlMQorCistLSBUZXN0IElOQ0xVRElORyBJTkRF WEVTIGRvZXMndCB0YWtlIGVmZmVjdAorQ1JFQVRFIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25f dGFibGUyKExJS0UgY3RsX3RhYmxlIElOQ0xVRElORyBJTkRFWEVTKSBTRVJWRVIgY3RsX3MwOwor XGQrIGN0bF9mb3JlaWduX3RhYmxlMgorCistLSBUZXN0IElOQ0xVRElORyBJREVOVElUWSBkb2Vz J3QgdGFrZSBlZmZlY3QKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlMyhM SUtFIGN0bF90YWJsZSBJTkNMVURJTkcgSURFTlRJVFkpIFNFUlZFUiBjdGxfczA7CitcZCsgY3Rs X2ZvcmVpZ25fdGFibGUzCisKKy0tIFRlc3QgSU5DTFVESU5HIENPTVBSRVNTSU9OIGRvZXMndCB0 YWtlIGVmZmVjdAorXHNldCBISURFX1RPQVNUX0NPTVBSRVNTSU9OIGZhbHNlCitBTFRFUiBUQUJM RSBjdGxfdGFibGUgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOworQUxURVIgVEFCTEUgY3Rs X3RhYmxlIEFMVEVSIENPTFVNTiBiIFNFVCBDT01QUkVTU0lPTiBwZ2x6OworXGQrIGN0bF90YWJs ZQorQ1JFQVRFIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGU0KExJS0UgY3RsX3RhYmxl IElOQ0xVRElORyBDT01QUkVTU0lPTikgU0VSVkVSIGN0bF9zMDsKK1xkKyBjdGxfZm9yZWlnbl90 YWJsZTQKK1xzZXQgSElERV9UT0FTVF9DT01QUkVTU0lPTiB0cnVlCisKKy0tIFRlc3QgSU5DTFVE SU5HIFNUT1JBR0UgZG9lcyd0IHRha2UgZWZmZWN0CitBTFRFUiBUQUJMRSBjdGxfdGFibGUgQUxU RVIgQ09MVU1OIGIgU0VUIFNUT1JBR0UgZXh0ZXJuYWw7CitcZCsgY3RsX3RhYmxlCitDUkVBVEUg Rk9SRUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90YWJsZTUoTElLRSBjdGxfdGFibGUgSU5DTFVESU5H IFNUT1JBR0UpIFNFUlZFUiBjdGxfczA7CitcZCsgY3RsX2ZvcmVpZ25fdGFibGU1CisKKworLS0g VGVzdCB2YWxpZCBsaWtlX29wdGlvbnMgdGFrZSBlZmZlY3Q6CitDUkVBVEUgRk9SRUlHTiBUQUJM RSBjdGxfZm9yZWlnbl90YWJsZTYoTElLRSBjdGxfdGFibGUgSU5DTFVESU5HIEFMTCkgU0VSVkVS IGN0bF9zMDsKK1xkKyBjdGxfZm9yZWlnbl90YWJsZTYKKworRFJPUCBUQUJMRSBjdGxfdGFibGU7 CitEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGUxOworRFJPUCBGT1JFSUdOIFRB QkxFIGN0bF9mb3JlaWduX3RhYmxlMjsKK0RST1AgRk9SRUlHTiBUQUJMRSBjdGxfZm9yZWlnbl90 YWJsZTM7CitEUk9QIEZPUkVJR04gVEFCTEUgY3RsX2ZvcmVpZ25fdGFibGU0OworRFJPUCBGT1JF SUdOIFRBQkxFIGN0bF9mb3JlaWduX3RhYmxlNTsKK0RST1AgRk9SRUlHTiBUQUJMRSBjdGxfZm9y ZWlnbl90YWJsZTY7CitEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIGN0bF9kdW1teSBDQVNDQURF OwotLSAKMi4zNC4xCgo= --67ab6379_50b9552a_d3d4--