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.96) (envelope-from ) id 1wZRHQ-0012UV-0f for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Jun 2026 10:44:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wZRHP-00GsJr-0O for pgsql-hackers@arkaria.postgresql.org; Tue, 16 Jun 2026 10:44:27 +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.96) (envelope-from ) id 1wZRHO-00GsJi-28 for pgsql-hackers@lists.postgresql.org; Tue, 16 Jun 2026 10:44:26 +0000 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wZRHM-00000000iTt-0pD0 for pgsql-hackers@lists.postgresql.org; Tue, 16 Jun 2026 10:44:26 +0000 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-396775c26f9so37013431fa.3 for ; Tue, 16 Jun 2026 03:44:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781606663; cv=none; d=google.com; s=arc-20240605; b=Ujnv2svCfU7tVJKydzSPQzJCdV0OFcCoW8Gh9Gjxxj50O5yyfJSxjupbDAlkraGMwB xu2yROfccGwMR0g173tkwHYVoHLKQrpi5zPN736DA8/TZerYLqx4I9Mz6LvvRAvEy5Cz kXXxnxHljNO6hxkD+AoMjwaAszMKf/DquFOv5M0gGlMkX7ZGc4WhgFLIVOuygKqnIQvu Rg54AxGTNmUpdhe/qYtrTqZLoT292JFkD6sPYI4dfzv23Op6bbrIJKrqb2aIbLITxx7i QaATLF5g6jy0dg77ZDyBywcyqAsj1h+BMp4ReocwtuN0wxtZRpAIosIfYMt/hYDiSmZe Aocw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=hn/vwGPhrQzC4fQkUjEX3tf0sB2tGs5JNibNOXyiDcA=; fh=K3rXMWokTlVI5ZzzFHaV6NuzO6t3epmauQMcDObo4/Y=; b=aI2G3GFYt3FG2Ha4qS/TjLimagP7jhYw6zkLP7wlShMGBv3wgwfc5+88AvdAwquDKm is5ebaHO7x6GqBevSGHlVgywPJCjAGns2DatVTl57qKNDfTK4ZlaCrh3smHaOhl+JP56 k5ugsxC5SuTpRP7jVMCPn/Rxjk5P2YdhZuimpQP0UU9Xeu+voNgNHs7d8mT9lrrJKeo2 iQ2wEqd8OELOiCheKFPdWdfQb5K4Z2OmDCC6wLvF2Qt3NbvQLhLIu+BoD9nlSp4kWyvA cGIKnMOxeyMGvaOc61l30DzXMVDwADUXf5IGaGlWuhxXM6OPtIe+3+pguvhKHGNGVxez scwA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781606663; x=1782211463; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hn/vwGPhrQzC4fQkUjEX3tf0sB2tGs5JNibNOXyiDcA=; b=kE9WqIWDGRIGPis9C/Phq4VcOyE98Q57QU9b+CXSvaK/RyOJW4rs+MHKNnIfzhpXxl ITxszfZretWhbi7LHWQHE+TpFT7B2xBXEnOXt8Sh49JRw0Fb9cw7SY8eFe3nSrZlNttV SwhTV96RUyp0M2Q8ylOzZqvKLZSqJ+3UZ2WzvbmY+g6+PX2U7hwjrCMHoNA8nkkKpKhO HjdFF2UDcgVeQpzH07jv6jp9F7TLmXUnbg8oJ2mZfMhakFA2mm+CpuWZpd8pVNLdEepw wiPgvHUtDWYGoFJOl0M6FFvgP19EAW6Ui5RoDZCYKG+6AF+HqiCt3m1mEZn6NEuc7Jzj HvIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781606663; x=1782211463; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hn/vwGPhrQzC4fQkUjEX3tf0sB2tGs5JNibNOXyiDcA=; b=FDCLOq83lXTBq322HUnt3ychRo6X93ZYyirDYHY9O1zMO1Rs6ln3elFKM/56xwN+3E 9btZvGzD/bu2jRzVs7YmevtCX46bfTYV/b2GV/4CbzGCQa1g9o92Cgoot0ry0ghQBWYU GZFAzh3FdmUGIrHbgjjDEA0P1+O9b5oV4GcbAqoCK/VDmuNBPwYbyjTQoIG/H+AwbXsy c6vJnqsMZUdMqAECaHtPMpw/Fo+ARgAKgudHtYpo4fp2974/ff1xS1PiLZAYCrSP46be I7nx0n1jAiVdUxl5fmNThykq2nfn4/Amyh6au6c7Wsdn/6gGS2RjFfaRss5TWUT7S/7+ dLkA== X-Forwarded-Encrypted: i=1; AFNElJ+sRrVkBcOQvPeb66FZDeEUCx7Z+O5HhajrKjc9R9Pi09m90XAV7HzqhgYoSm3MAleiwTouV8xVVwuy4fHA@lists.postgresql.org X-Gm-Message-State: AOJu0YyCwuIHvicj6m7VaCKABls8dpzhzELGKJnz2Wx31SSOc5qqxN1b ncXjB5zM9IcWcHL5zFS4gC2S9KaXHWAaK5S4K0Og2yWC8QJ7ChOq21ACtMDbRpRhNVcuudNhtwR aCFDKLfy8bmmjclZkwtmFWA2VP4/YwA== X-Gm-Gg: Acq92OETbIUQCQpGlVlwGIifC956P3HgYpNQjuOBZ1punHvIs26yjpzQFpQ55TsPny1 7SEcck7ge4pbY+IS3m1ypnh71d7iW8vM055cHD51sREwTx3tKDPBBoXpv3mr/JcTNWEueAJ1w8K hQLWAQdbRvBW8dTMlNiAtfb1RjrByS70vynUNZlGjY52bCz3lkIMt+YE5G1oWpOCIEkurkD8sDM sgjNOkrK/Gf1vFkcuiP6TtT3imfCC2FJBuW7BpdSFYBdwiRYyf7vkDySA1lsn8SYx29M6iSBXrp v4pUrwal8ginZNdiSvJl2NqvMDNH0QHT0OcxonbsCnGJRxkjYg== X-Received: by 2002:a2e:bea0:0:b0:396:9967:cd69 with SMTP id 38308e7fff4ca-3995c7fb5bamr11053261fa.13.1781606662711; Tue, 16 Jun 2026 03:44:22 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Tue, 16 Jun 2026 16:14:09 +0530 X-Gm-Features: AVVi8CeDyf-rSS2FGmxFxnl7mxCpqNr5j2GNXPjUrp5NOy4wyPYq2ZQAJh6ex-Y Message-ID: Subject: Re: Support EXCEPT for TABLES IN SCHEMA publications To: Peter Smith Cc: Amit Kapila , Zsolt Parragi , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000042dac406545ca0f4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000042dac406545ca0f4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jun 16, 2026 at 1:53=E2=80=AFPM Peter Smith = wrote: > > Some review comments for v13-0001. > > =3D=3D=3D=3D=3D=3D > doc/src/sgml/ref/create_publication.sgml > > 1. > > Marks the publication as one that replicates changes for all table= s in > the specified list of schemas, including tables created in the fut= ure. > + Tables listed in the EXCEPT clause for a given = schema > + are excluded from the publication. > > > Given Amit's suggestion [1] to modify the EXCEPT text for FOR ALL > TABLES, perhaps there also needs to be an equivalent note for ALL > TABLES IN SCHEMA. Maybe wait to see what happens [1], then you can use > similar wording. > Okay, noted. Let's first wait for the conclusion on this. > =3D=3D=3D=3D=3D=3D > src/backend/commands/publicationcmds.c > > RemovePublicationExceptForRelation: > > 2. > +/* > + * Remove any EXCEPT clause entries for a relation from schema publicati= ons. > + * Called when a table changes schema (ALTER TABLE ... SET SCHEMA), so t= hat > + * a schema-scoped exclusion does not silently follow the table to its n= ew > + * schema. > + */ > +void > +RemovePublicationExceptForRelation(Oid relid, Oid oldNspOid, Oid newNspO= id) > +{ > > There's nothing about that function name to indicate it is only for > SCHEMA publications. > There must be a better -- e.g. 'MaybeRemoveExclusionFromSchemaPub', or > whatever... > I've renamed it to RemoveSchemaPubExceptForRel to keep it consistent with the neighboring function names. Let me know if it works. > ~~~ > > 3. > + ereport(DEBUG2, > + errmsg_internal("auto-drop exclusion of table %s from publication > %s: table moved to schema %s", > + quote_qualified_identifier(get_namespace_name(oldNspOid), > + get_rel_name(relid)), > + get_publication_name(pubid, false), > + quote_identifier(get_namespace_name(newNspOid)))); > > Even though this is a debugging message, for consistency, we might as > well quote everything the same as normal messages do: > > "auto-drop exclusion of table \"%s\" from publication \"%s\": table > moved to schema \"%s\"" > Fixed. ~~~ Also added a test as per Zsolt's suggestion at [1]. I moved all documentation changes into a separate 0004 patch to make doc review easier. Please find the attached v14 patches. [1] https://www.postgresql.org/message-id/CAN4CZFPZnckA9-MPt6xj1QsRQTVKs3Zo= KgdZ%2BQG1xa%3D%3DUD46Xw%40mail.gmail.com -- Thanks, Nisha --00000000000042dac406545ca0f4 Content-Type: application/octet-stream; name="v14-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Disposition: attachment; filename="v14-0001-Support-EXCEPT-clause-for-schema-level-publicati.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqgijgh90 RnJvbSBlMzgyY2QxNTUzYmViZGUyZjJmOTVmNmIzMzk4MmVlYzRhZDY0ZTcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDE2IEp1biAyMDI2IDEwOjU4OjQ5ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTQgMS80XSBTdXBwb3J0IEVYQ0VQVCBjbGF1c2UgZm9yIHNjaGVtYS1sZXZlbCBwdWJsaWNhdGlv bnMKCkV4dGVuZCB0YWJsZSBleGNsdXNpb24gc3VwcG9ydCBpbiBwdWJsaWNhdGlvbnMgdG8gYWxs b3cgc3BlY2lmaWMKdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZyb20gc2NoZW1hLWxldmVsIHB1Ymxp Y2F0aW9ucyB1c2luZyBhbgpFWENFUFQgY2xhdXNlIGluIENSRUFURSBQVUJMSUNBVElPTi4KClN1 cHBvcnRlZCBzeW50YXg6CkNSRUFURSBQVUJMSUNBVElPTiA8cHViPiBGT1IgVEFCTEVTIElOIFND SEVNQSBzIEVYQ0VQVCAoVEFCTEUgdDEsLi4uKTsKLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmMgICAgICAgIHwgMTYxICsrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICB8IDE0NiArKysrKysrKysrKysrKyst LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICB8ICAxMSArKwog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICB8ICA1NCArKysrKyst CiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIHwgIDMwICsrKy0K IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgfCAgMTggKysrCiBz cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgIHwgIDM1ICsrKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgfCAgIDMgKy0KIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oICAgICAgfCAgIDIgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgIHwgMTcxICsrKysrKysrKysrKysrKysrKyst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgIHwgMTAwICsrKysr KysrKysrLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCAgICAgICB8IDEz MyArKysrKysrKysrKysrKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDgxMyBpbnNlcnRpb25zKCspLCA1 MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggNWM0 NTdkOWFjYTguLjQwODliNTA1Zjg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5j CkBAIC00NDQsMTMgKzQ0NCwxOSBAQCBHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMoTGlz dCAqcmVzdWx0LCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCiAgKgogICogTm90ZSB0 aGF0IHRoZSBsaXN0IG9mIGFuY2VzdG9ycyBzaG91bGQgYmUgb3JkZXJlZCBzdWNoIHRoYXQgdGhl IHRvcG1vc3QKICAqIGFuY2VzdG9yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCisgKgorICog ZXhjZXB0X3B1YmlkcyBpcyBhIGxpc3Qgb2YgcHVibGljYXRpb24gT0lEcyB3aG9zZSBzY2hlbWEg bWVtYmVyc2hpcAorICogc2hvdWxkIGJlIGlnbm9yZWQgZm9yIHRoZSBhbmNlc3RvciAoYmVjYXVz ZSB0aGUgYW5jZXN0b3IgaXMgaW4gdGhlaXIKKyAqIEVYQ0VQVCBjbGF1c2UpLgogICovCiBPaWQK LUdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0 b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsKQorR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCisJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2 ZWwsIExpc3QgKmV4Y2VwdF9wdWJpZHMpCiB7CiAJTGlzdENlbGwgICAqbGM7CiAJT2lkCQkJdG9w bW9zdF9yZWxpZCA9IEludmFsaWRPaWQ7CiAJaW50CQkJbGV2ZWwgPSAwOworCWJvb2wJCWNoZWNr X3NjaGVtYXMgPSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdF9wdWJpZHMsIHB1Ym9pZCk7CiAKIAkv KgogCSAqIEZpbmQgdGhlICJ0b3Btb3N0IiBhbmNlc3RvciB0aGF0IGlzIGluIHRoaXMgcHVibGlj YXRpb24uCkBAIC00NzAsNyArNDc2LDcgQEAgR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3JfbGV2ZWwKIAkJCWlm IChhbmNlc3Rvcl9sZXZlbCkKIAkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKIAkJfQotCQll bHNlCisJCWVsc2UgaWYgKGNoZWNrX3NjaGVtYXMpCiAJCXsKIAkJCWFzY2hlbWFQdWJpZHMgPSBH ZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpKTsKIAkJCWlm IChsaXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1YmlkcywgcHVib2lkKSkKQEAgLTU0NSwxOCArNTUx LDMwIEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVs SW5mbyAqcHJpLAogCSAqIGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRvIHByb3ZpZGUgbmlj ZXIgZXJyb3IgbWVzc2FnZSBpbiBjb21tb24KIAkgKiBjYXNlLiBUaGUgcmVhbCBwcm90ZWN0aW9u IGlzIHRoZSB1bmlxdWUga2V5IG9uIHRoZSBjYXRhbG9nLgogCSAqLwotCWlmIChTZWFyY2hTeXND YWNoZUV4aXN0czIoUFVCTElDQVRJT05SRUxNQVAsIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAot CQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpKQorCXR1cCA9IFNlYXJjaFN5c0NhY2hl MihQVUJMSUNBVElPTlJFTE1BUCwgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkgIE9i amVjdElkR2V0RGF0dW0ocHViaWQpKTsKKworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJ eworCQlib29sCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJV Q1QodHVwKSktPnByZXhjZXB0OworCisJCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCQl0YWJsZV9j bG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJCWlmIChpZl9ub3RfZXhpc3RzKQogCQkJ cmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOwogCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVy cmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKLQkJCQkgZXJybXNnKCJyZWxhdGlvbiBc IiVzXCIgaXMgYWxyZWFkeSBtZW1iZXIgb2YgcHVibGljYXRpb24gXCIlc1wiIiwKLQkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1Yi0+bmFtZSkpKTsKKwkJaWYgKGlz X2V4Y2VwdCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElD QVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInRhYmxlIFwiJXNcIiBjYW5ub3QgYmUgYWRkZWQg YmVjYXVzZSBpdCBpcyBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uIFwiJXNcIiIsCisJCQkJCQkJ UmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSwKKwkJCQkJCQlwdWIt Pm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBpcyBh bHJlYWR5IG1lbWJlciBvZiBwdWJsaWNhdGlvbiBcIiVzXCIiLAorCQkJCQkJCVJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1Yi0+bmFtZSkpKTsKIAl9CiAKIAljaGVja19wdWJs aWNhdGlvbl9hZGRfcmVsYXRpb24ocHJpKTsKQEAgLTk4MiwxMiArMTAwMCwxMyBAQCBHZXRJbmNs dWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1 Yl9wYXJ0b3B0KQogICogR2V0cyBsaXN0IG9mIHRhYmxlIG9pZHMgdGhhdCB3ZXJlIHNwZWNpZmll ZCBpbiB0aGUgRVhDRVBUIGNsYXVzZSBmb3IgYQogICogcHVibGljYXRpb24uCiAgKgotICogVGhp cyBzaG91bGQgb25seSBiZSB1c2VkIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4KKyAqIFRo aXMgaXMgdXNlZCBmb3IgRk9SIEFMTCBUQUJMRVMgYW5kIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1 YmxpY2F0aW9ucywKKyAqIGJvdGggb2Ygd2hpY2ggc3VwcG9ydCBFWENFUFQgVEFCTEUuCiAgKi8K IExpc3QgKgogR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhPaWQgcHViaWQsIFB1YmxpY2F0 aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIHsKLQlBc3NlcnQoR2V0UHVibGljYXRpb24ocHViaWQp LT5hbGx0YWJsZXMpOworCUFzc2VydChHZXRQdWJsaWNhdGlvbihwdWJpZCktPmFsbHRhYmxlcyB8 fCBpc19zY2hlbWFfcHVibGljYXRpb24ocHViaWQpKTsKIAogCXJldHVybiBnZXRfcHVibGljYXRp b25fcmVsYXRpb25zKHB1YmlkLCBwdWJfcGFydG9wdCwgdHJ1ZSk7CiB9CkBAIC0xMDQ5LDE1ICsx MDY4LDE1IEBAIEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciByZWxr aW5kLCBib29sIHB1YnZpYXJvb3QpCiAJVGFibGVTY2FuRGVzYyBzY2FuOwogCUhlYXBUdXBsZQl0 dXBsZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7Ci0JTGlzdAkgICAqZXhjZXB0bGlzdCA9IE5J TDsKKwlMaXN0CSAgICpleGNlcHRfcmVsaWRzID0gTklMOwogCiAJQXNzZXJ0KCEocmVsa2luZCA9 PSBSRUxLSU5EX1NFUVVFTkNFICYmIHB1YnZpYXJvb3QpKTsKIAogCS8qIEVYQ0VQVCBmaWx0ZXJp bmcgYXBwbGllcyBvbmx5IHRvIHJlbGF0aW9ucywgbm90IHNlcXVlbmNlcyAqLwogCWlmIChyZWxr aW5kID09IFJFTEtJTkRfUkVMQVRJT04pCi0JCWV4Y2VwdGxpc3QgPSBHZXRFeGNsdWRlZFB1Ymxp Y2F0aW9uVGFibGVzKHB1YmlkLCBwdWJ2aWFyb290ID8KLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJ T05fUEFSVF9ST09UIDoKLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKKwkJ ZXhjZXB0X3JlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQsIHB1YnZp YXJvb3QgPworCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JPT1QgOgorCQkJCQkJCQkJ CQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYpOwogCiAJY2xhc3NSZWwgPSB0YWJsZV9vcGVuKFJl bGF0aW9uUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKIApAQCAtMTA3NSw3ICsxMDk0LDcg QEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJv b2wgcHVidmlhcm9vdCkKIAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZv cm0pICYmCiAJCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpICYmCi0J CQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKKwkJCSFsaXN0X21lbWJlcl9v aWQoZXhjZXB0X3JlbGlkcywgcmVsaWQpKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0 LCByZWxpZCk7CiAJfQogCkBAIC0xMDk3LDcgKzExMTYsNyBAQCBHZXRBbGxQdWJsaWNhdGlvblJl bGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQogCiAJCQlp ZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYmCiAJCQkJIXJlbEZvcm0t PnJlbGlzcGFydGl0aW9uICYmCi0JCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCByZWxp ZCkpCisJCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcmVsaWRzLCByZWxpZCkpCiAJCQkJcmVz dWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJCX0KIApAQCAtMTIzMiwyMiArMTI1 MSw2NyBAQCBHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsIFB1Ymxp Y2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIAogLyoKICAqIEdldHMgdGhlIGxpc3Qgb2YgYWxs IHJlbGF0aW9ucyBwdWJsaXNoZWQgYnkgRk9SIFRBQkxFUyBJTiBTQ0hFTUEKLSAqIHB1YmxpY2F0 aW9uLgorICogcHVibGljYXRpb24sIGV4Y2x1ZGluZyBhbnkgdGFibGVzIGxpc3RlZCBpbiB0aGUg RVhDRVBUIGNsYXVzZS4KICAqLwogTGlzdCAqCiBHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0 aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIHsKIAlMaXN0 CSAgICpyZXN1bHQgPSBOSUw7CiAJTGlzdAkgICAqcHVic2NoZW1hbGlzdCA9IEdldFB1YmxpY2F0 aW9uU2NoZW1hcyhwdWJpZCk7CisJTGlzdAkgICAqZXhjZXB0X3JlbGlkcyA9IE5JTDsKIAlMaXN0 Q2VsbCAgICpjZWxsOwogCisJLyogZ2V0IHRoZSBsaXN0IG9mIHRhYmxlcyBleGNsdWRlZCB2aWEg RVhDRVBUIFRBQkxFIGZvciB0aGlzIHB1YmxpY2F0aW9uICovCisJaWYgKHB1YnNjaGVtYWxpc3Qg IT0gTklMKQorCQlleGNlcHRfcmVsaWRzID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhw dWJpZCwgcHViX3BhcnRvcHQpOworCiAJZm9yZWFjaChjZWxsLCBwdWJzY2hlbWFsaXN0KQogCXsK IAkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rfb2lkKGNlbGwpOwogCQlMaXN0CSAgICpzY2hlbWFS ZWxzID0gTklMOwogCiAJCXNjaGVtYVJlbHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9u cyhzY2hlbWFpZCwgcHViX3BhcnRvcHQpOwotCQlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQs IHNjaGVtYVJlbHMpOworCisJCWlmIChleGNlcHRfcmVsaWRzICE9IE5JTCkKKwkJeworCQkJLyog ZmlsdGVyIG91dCBhbnkgdGFibGVzIHRoYXQgYXBwZWFyIGluIHRoZSBFWENFUFQgbGlzdCAqLwor CQkJTGlzdENlbGwgICAqcmxjOworCisJCQlmb3JlYWNoKHJsYywgc2NoZW1hUmVscykKKwkJCXsK KwkJCQlPaWQJCQlyZWxpZCA9IGxmaXJzdF9vaWQocmxjKTsKKwkJCQlib29sCQlleGNsdWRlZCA9 IGxpc3RfbWVtYmVyX29pZChleGNlcHRfcmVsaWRzLCByZWxpZCk7CisKKwkJCQkvKgorCQkJCSAq IEFsc28gZXhjbHVkZSBhbnkgcmVsYXRpb24gd2hvc2UgcGFydGl0aW9uIGFuY2VzdG9yIGlzIGlu CisJCQkJICogdGhlIEVYQ0VQVCBsaXN0LiAgVGhpcyBtYXR0ZXJzIHdoZW4gcHViX3BhcnRvcHQg aXMKKwkJCQkgKiBQVUJMSUNBVElPTl9QQVJUX1JPT1Q6IHRoZSBleGNlcHQgbGlzdCBob2xkcyBv bmx5IHRoZSByb290CisJCQkJICogT0lELCBidXQgdGhlIHNjaGVtYSBzY2FuIG1heSBhbHNvIHJl dHVybiBpbmRpdmlkdWFsCisJCQkJICogcGFydGl0aW9uIHJlbGF0aW9ucyB0aGF0IGxpdmUgaW4g dGhlIHNhbWUgc2NoZW1hLgorCQkJCSAqLworCQkJCWlmICghZXhjbHVkZWQgJiYgZ2V0X3JlbF9y ZWxpc3BhcnRpdGlvbihyZWxpZCkpCisJCQkJeworCQkJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBn ZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7CisJCQkJCUxpc3RDZWxsICAgKmFsYzsKKwor CQkJCQlmb3JlYWNoKGFsYywgYW5jZXN0b3JzKQorCQkJCQl7CisJCQkJCQlpZiAobGlzdF9tZW1i ZXJfb2lkKGV4Y2VwdF9yZWxpZHMsIGxmaXJzdF9vaWQoYWxjKSkpCisJCQkJCQl7CisJCQkJCQkJ ZXhjbHVkZWQgPSB0cnVlOworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWxp c3RfZnJlZShhbmNlc3RvcnMpOworCQkJCX0KKworCQkJCWlmICghZXhjbHVkZWQpCisJCQkJCXJl c3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOworCQkJfQorCQkJbGlzdF9mcmVlKHNj aGVtYVJlbHMpOworCQl9CisJCWVsc2UKKwkJCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwg c2NoZW1hUmVscyk7CiAJfQogCiAJcmV0dXJuIHJlc3VsdDsKQEAgLTEzMjQsNiArMTM4OCw3IEBA IGlzX3RhYmxlX3B1Ymxpc2hhYmxlX2luX3B1YmxpY2F0aW9uKE9pZCByZWxpZCwgUHVibGljYXRp b24gKnB1YikKIHsKIAlib29sCQlyZWxpc3BhcnRpdGlvbjsKIAlMaXN0CSAgICphbmNlc3RvcnMg PSBOSUw7CisJSGVhcFR1cGxlCXR1cDsKIAogCS8qCiAJICogRm9yIG5vbi1wdWJ2aWFyb290IHB1 YmxpY2F0aW9ucywgYSBwYXJ0aXRpb25lZCB0YWJsZSBpcyBuZXZlciB0aGUKQEAgLTEzODAsMjAg KzE0NDUsNjIgQEAgaXNfdGFibGVfcHVibGlzaGFibGVfaW5fcHVibGljYXRpb24oT2lkIHJlbGlk LCBQdWJsaWNhdGlvbiAqcHViKQogCSAqIElmIGl0J3MgZmFsc2UsIHRoZSBwYXJ0aXRpb24gaXMg Y292ZXJlZCBieSBpdHMgYW5jZXN0b3IncyBwcmVzZW5jZSBpbgogCSAqIHRoZSBwdWJsaWNhdGlv biwgaXQgc2hvdWxkIGJlIGluY2x1ZGVkIChyZXR1cm4gdHJ1ZSkuCiAJICovCi0JaWYgKHJlbGlz cGFydGl0aW9uICYmCi0JCU9pZElzVmFsaWQoR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihwdWItPm9pZCwgYW5jZXN0b3JzLCBOVUxMKSkpCi0JCXJldHVybiAhcHViLT5wdWJ2aWFyb290 OworCWlmIChyZWxpc3BhcnRpdGlvbikKKwl7CisJCU9pZAkJCWFuY2VzdG9yX29pZDsKKworCQlh bmNlc3Rvcl9vaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1Yi0+b2lkLCBh bmNlc3RvcnMsIE5VTEwsIE5JTCk7CisJCWlmIChPaWRJc1ZhbGlkKGFuY2VzdG9yX29pZCkpCisJ CXsKKwkJCS8qCisJCQkgKiBUaGUgYW5jZXN0b3Igd2FzIGZvdW5kIGluIHRoZSBwdWJsaWNhdGlv biAodmlhIGV4cGxpY2l0CisJCQkgKiBtZW1iZXJzaGlwIG9yIHNjaGVtYSBtZW1iZXJzaGlwKSwg YnV0IGl0IG1heSBiZSBleGNsdWRlZC4gQ2hlY2sKKwkJCSAqIGZvciBhIHByZXhjZXB0IHJvdyBi ZWZvcmUgY29uY2x1ZGluZyB0aGUgcGFydGl0aW9uIGlzCisJCQkgKiBwdWJsaXNoZWQuCisJCQkg Ki8KKwkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwKKwkJCQkJCQkJ ICBPYmplY3RJZEdldERhdHVtKGFuY2VzdG9yX29pZCksCisJCQkJCQkJCSAgT2JqZWN0SWRHZXRE YXR1bShwdWItPm9pZCkpOworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCXsKKwkJ CQlib29sCQlpc19leGNlcHQ7CisKKwkJCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVibGljYXRp b25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCQkJCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCQkJCWlmIChpc19leGNlcHQpCisJCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwkJCXJl dHVybiAhcHViLT5wdWJ2aWFyb290OworCQl9CisJfQogCiAJLyoKIAkgKiBDaGVjayB3aGV0aGVy IHRoZSB0YWJsZSBpcyBleHBsaWNpdGx5IHB1Ymxpc2hlZCB2aWEgcGdfcHVibGljYXRpb25fcmVs CiAJICogb3IgcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLgorCSAqCisJICogQSBwZ19wdWJsaWNh dGlvbl9yZWwgcm93IHdpdGggcHJleGNlcHQ9dHJ1ZSBtZWFucyB0aGUgdGFibGUgaXMKKwkgKiBl eHBsaWNpdGx5IGV4Y2x1ZGVkIHZpYSBFWENFUFQgYW5kIG11c3Qgbm90IGJlIHJlcG9ydGVkIGFz IHB1Ymxpc2hlZCwKKwkgKiBldmVuIGlmIGl0cyBzY2hlbWEgaXMgb3RoZXJ3aXNlIGluY2x1ZGVk LiAgQSByb3cgd2l0aCBwcmV4Y2VwdD1mYWxzZQorCSAqIG1lYW5zIGl0IGlzIGV4cGxpY2l0bHkg aW5jbHVkZWQuICBJZiBubyBwZ19wdWJsaWNhdGlvbl9yZWwgcm93IGV4aXN0cywKKwkgKiB0aGUg dGFibGUgaXMgcHVibGlzaGVkIGlmZiBpdHMgc2NoZW1hIGFwcGVhcnMgaW4KKwkgKiBwZ19wdWJs aWNhdGlvbl9uYW1lc3BhY2UuCiAJICovCi0JcmV0dXJuIChTZWFyY2hTeXNDYWNoZUV4aXN0czIo UFVCTElDQVRJT05SRUxNQVAsCi0JCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCi0J CQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpIHx8Ci0JCQlTZWFyY2hTeXNDYWNo ZUV4aXN0czIoUFVCTElDQVRJT05OQU1FU1BBQ0VNQVAsCi0JCQkJCQkJCSAgT2JqZWN0SWRHZXRE YXR1bShnZXRfcmVsX25hbWVzcGFjZShyZWxpZCkpLAotCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0 dW0ocHViLT5vaWQpKSk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJT05SRUxN QVAsCisJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAorCQkJCQkJICBPYmplY3RJZEdl dERhdHVtKHB1Yi0+b2lkKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwl7CisJCWJv b2wJCWlzX2V4Y2VwdDsKKworCQlpc19leGNlcHQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVs KSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0OworCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJ cmV0dXJuICFpc19leGNlcHQ7CisJfQorCisJcmV0dXJuIFNlYXJjaFN5c0NhY2hlRXhpc3RzMihQ VUJMSUNBVElPTk5BTUVTUEFDRU1BUCwKKwkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0oZ2V0X3Jl bF9uYW1lc3BhY2UocmVsaWQpKSwKKwkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0ocHViLT5vaWQp KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9u Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggNDQw YWRiMzU2YWQuLjg1ZDRiOWRlZWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYwpAQCAtMTgxLDcgKzE4MSw3IEBAIHBhcnNlX3B1YmxpY2F0aW9uX29wdGlvbnMoUGFyc2VT dGF0ZSAqcHN0YXRlLAogICovCiBzdGF0aWMgdm9pZAogT2JqZWN0c0luUHVibGljYXRpb25Ub09p ZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkgICBM aXN0ICoqcmVscywgTGlzdCAqKmV4Y2VwdHJlbHMsIExpc3QgKipzY2hlbWFzKQorCQkJCQkJICAg TGlzdCAqKnJlbHMsIExpc3QgKipleGNlcHRfcHVidGFibGVzLCBMaXN0ICoqc2NoZW1hcykKIHsK IAlMaXN0Q2VsbCAgICpjZWxsOwogCVB1YmxpY2F0aW9uT2JqU3BlYyAqcHVib2JqOwpAQCAtMjAw LDcgKzIwMCw3IEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNf bGlzdCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQl7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VY Q0VQVF9UQUJMRToKIAkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOwotCQkJCSpl eGNlcHRyZWxzID0gbGFwcGVuZCgqZXhjZXB0cmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CisJCQkJ KmV4Y2VwdF9wdWJ0YWJsZXMgPSBsYXBwZW5kKCpleGNlcHRfcHVidGFibGVzLCBwdWJvYmotPnB1 YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEU6CiAJCQkJ cHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CkBAIC0yMjQsNiArMjI0LDM4IEBAIE9i amVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCiAJCQkJLyogRmlsdGVyIG91dCBkdXBsaWNhdGVzIGlmIHVzZXIgc3BlY2lm aWVzICJzY2gxLCBzY2gxIiAqLwogCQkJCSpzY2hlbWFzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29p ZCgqc2NoZW1hcywgc2NoZW1haWQpOworCisJCQkJLyoKKwkJCQkgKiBRdWFsaWZ5IHVucXVhbGlm aWVkIEVYQ0VQVCB0YWJsZSBuYW1lcyB3aXRoIHRoZSByZXNvbHZlZAorCQkJCSAqIGN1cnJlbnQg c2NoZW1hIGFuZCByZWplY3QgYW55IGV4cGxpY2l0bHkgY3Jvc3Mtc2NoZW1hCisJCQkJICogZW50 cmllcy4gIFRoaXMgbWlycm9ycyB0aGUgcGFyc2UtdGltZSBoYW5kbGluZyBkb25lIGZvcgorCQkJ CSAqIFRBQkxFU19JTl9TQ0hFTUEgaW4gcHJlcHJvY2Vzc19wdWJvYmpfbGlzdCgpLCBkZWZlcnJl ZCBoZXJlCisJCQkJICogYmVjYXVzZSBDVVJSRU5UX1NDSEVNQSBpcyBub3Qga25vd24gdW50aWwg ZXhlY3V0aW9uIHRpbWUuCisJCQkJICovCisJCQkJaWYgKHB1Ym9iai0+ZXhjZXB0X3RhYmxlcyAh PSBOSUwpCisJCQkJeworCQkJCQljaGFyCSAgICpjdXJfc2NoZW1hX25hbWUgPSBnZXRfbmFtZXNw YWNlX25hbWUoc2NoZW1haWQpOworCisJCQkJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uT2JqU3Bl YywgZW9iaiwgcHVib2JqLT5leGNlcHRfdGFibGVzKQorCQkJCQl7CisJCQkJCQljb25zdCBjaGFy ICplb2JqX3NjaGVtYW5hbWUgPQorCQkJCQkJCWVvYmotPnB1YnRhYmxlLT5yZWxhdGlvbi0+c2No ZW1hbmFtZTsKKwkJCQkJCWNvbnN0IGNoYXIgKmVvYmpfcmVsbmFtZSA9CisJCQkJCQkJZW9iai0+ cHVidGFibGUtPnJlbGF0aW9uLT5yZWxuYW1lOworCisJCQkJCQlpZiAoZW9ial9zY2hlbWFuYW1l ID09IE5VTEwpCisJCQkJCQkJZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5zY2hlbWFuYW1lID0g Y3VyX3NjaGVtYV9uYW1lOworCQkJCQkJZWxzZSBpZiAoc3RyY21wKGVvYmpfc2NoZW1hbmFtZSwg Y3VyX3NjaGVtYV9uYW1lKSAhPSAwKQorCQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCQkJCQllcnJt c2coInRhYmxlIFwiJXNcIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hl bWEgXCIlc1wiIiwKKwkJCQkJCQkJCQkgICBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihlb2Jq X3NjaGVtYW5hbWUsIGVvYmpfcmVsbmFtZSksCisJCQkJCQkJCQkJICAgY3VyX3NjaGVtYV9uYW1l KSk7CisKKwkJCQkJCSpleGNlcHRfcHVidGFibGVzID0gbGFwcGVuZCgqZXhjZXB0X3B1YnRhYmxl cywKKwkJCQkJCQkJCQkJCQllb2JqLT5wdWJ0YWJsZSk7CisJCQkJCX0KKwkJCQl9CiAJCQkJYnJl YWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KQEAgLTMwNSw3ICsz MzcsNyBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlv biByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9u LT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBH ZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOwor CQkJPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5V TEwsIE5JTCk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVi bGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtMzg5LDcgKzQyMSw3IEBAIHB1Yl9jb250YWluc19p bnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3Rv cnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsaXNwYXJ0 aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJs aWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9hc19yZWxpZCA9IEdl dFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCwgTklM KTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2Fz X3JlbGlkID0gcmVsaWQ7CkBAIC04NDksNyArODgxLDcgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJY2hhcgkJcHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1uczsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OwogCUxpc3QJICAg KnJlbGF0aW9ucyA9IE5JTDsKLQlMaXN0CSAgICpleGNlcHRyZWxhdGlvbnMgPSBOSUw7CisJTGlz dAkgICAqZXhjZXB0X3B1YnRhYmxlcyA9IE5JTDsKIAlMaXN0CSAgICpzY2hlbWFpZGxpc3QgPSBO SUw7CiAKIAkvKiBtdXN0IGhhdmUgQ1JFQVRFIHByaXZpbGVnZSBvbiBkYXRhYmFzZSAqLwpAQCAt OTM2LDE2ICs5NjgsMTYgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAKIAkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRo IHRoZSBwdWJsaWNhdGlvbi4gKi8KIAlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5w dWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJICAgJmV4Y2VwdHJlbGF0aW9u cywgJnNjaGVtYWlkbGlzdCk7CisJCQkJCQkJICAgJmV4Y2VwdF9wdWJ0YWJsZXMsICZzY2hlbWFp ZGxpc3QpOwogCiAJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQogCXsKIAkJLyogUHJvY2VzcyBF WENFUFQgdGFibGUgbGlzdCAqLwotCQlpZiAoZXhjZXB0cmVsYXRpb25zICE9IE5JTCkKKwkJaWYg KGV4Y2VwdF9wdWJ0YWJsZXMgIT0gTklMKQogCQl7CiAJCQlMaXN0CSAgICpyZWxzOwogCi0JCQly ZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRyZWxhdGlvbnMpOworCQkJcmVscyA9IE9wZW5UYWJs ZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CiAJCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQs IHJlbHMsIHRydWUsIE5VTEwpOwogCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiAJCX0KQEAgLTk1 OSw2ICs5OTEsOCBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0 ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAl9CiAJZWxzZSBpZiAoIXN0bXQtPmZvcl9hbGxfc2Vx dWVuY2VzKQogCXsKKwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHMgPSBOSUw7CisKIAkJLyogRk9S IFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCiAJCWlmIChzY2hlbWFpZGxp c3QgIT0gTklMICYmICFzdXBlcnVzZXIoKSkKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC05NzcsNiAr MTAxMSwxOSBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCiAJ CQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKKwkJCS8qCisJCQkgKiBD b2xsZWN0IGV4cGxpY2l0IHRhYmxlIE9JRHMgbm93LCBiZWZvcmUgd2UgY2xvc2UgdGhlIHJlbGF0 aW9uCisJCQkgKiBsaXN0LCBzbyB0aGF0IGV4Y2VwdC10YWJsZSB2YWxpZGF0aW9uIGJlbG93IGNh biBjaGVjayBmb3IKKwkJCSAqIGNvbnRyYWRpY3Rpb25zIHdpdGhvdXQgcmVseWluZyBvbiBhIGNh dGFsb2cgc2NhbiB0aGF0IG1pZ2h0IG5vdAorCQkJICogeWV0IHNlZSB0aGUganVzdC1pbnNlcnRl ZCByb3dzLgorCQkJICovCisJCQlpZiAoZXhjZXB0X3B1YnRhYmxlcyAhPSBOSUwpCisJCQl7CisJ CQkJZm9yZWFjaF9wdHIoUHVibGljYXRpb25SZWxJbmZvLCBwcmksIHJlbHMpCisJCQkJCWV4cGxp Y2l0cmVsaWRzID0gbGFwcGVuZF9vaWQoZXhwbGljaXRyZWxpZHMsCisJCQkJCQkJCQkJCQkgUmVs YXRpb25HZXRSZWxpZChwcmktPnJlbGF0aW9uKSk7CisJCQl9CisKIAkJCVB1YmxpY2F0aW9uQWRk VGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CiAJCQlDbG9zZVRhYmxlTGlzdChyZWxz KTsKIAkJfQpAQCAtOTg5LDYgKzEwMzYsMzQgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkgKi8KIAkJCUxvY2tT Y2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CiAJCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lk LCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOworCisJCQlpZiAoZXhjZXB0X3B1YnRhYmxlcyAh PSBOSUwpCisJCQl7CisJCQkJTGlzdAkgICAqZXhjZXB0X3JlbHM7CisKKwkJCQlleGNlcHRfcmVs cyA9IE9wZW5UYWJsZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJCQkvKgorCQkJCSAqIFZh bGlkYXRlIHRoYXQgZWFjaCBleGNsdWRlZCB0YWJsZSBpcyBub3QgYWxzbyBpbiB0aGUKKwkJCQkg KiBleHBsaWNpdCB0YWJsZSBsaXN0ICh3aGljaCB3b3VsZCBiZSBjb250cmFkaWN0b3J5KS4gVXNl IHRoZQorCQkJCSAqIGluLW1lbW9yeSBleHBsaWNpdHJlbGlkcyBjb2xsZWN0ZWQgYWJvdmUgcmF0 aGVyIHRoYW4KKwkJCQkgKiByZS1yZWFkaW5nIHRoZSBjYXRhbG9nLCB3aGljaCBtYXkgbm90IHll dCBzZWUgdGhlCisJCQkJICoganVzdC1pbnNlcnRlZCByb3dzLgorCQkJCSAqLworCQkJCWZvcmVh Y2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5mbywgcHJpLCBleGNlcHRfcmVscykKKwkJCQl7CisJCQkJ CU9pZAkJCWV4Y2VwdF9yZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJpLT5yZWxhdGlvbik7CisK KwkJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChleHBsaWNpdHJlbGlkcywgZXhjZXB0X3JlbGlkKSkK KwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BB UkFNRVRFUl9WQUxVRSksCisJCQkJCQkJCWVycm1zZygidGFibGUgXCIlc1wiIGNhbm5vdCBhcHBl YXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1c2UiLAorCQkJCQkJ CQkJICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5hbWUocHJpLT5yZWxhdGlvbikpKTsK KwkJCQl9CisKKwkJCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIGV4Y2VwdF9yZWxzLCB0 cnVlLCBOVUxMKTsKKwkJCQlDbG9zZVRhYmxlTGlzdChleGNlcHRfcmVscyk7CisJCQl9CiAJCX0K IAl9CiAKQEAgLTE2ODMsMTIgKzE3NTgsMTIgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCWVsc2UKIAl7CiAJCUxpc3QJ ICAgKnJlbGF0aW9ucyA9IE5JTDsKLQkJTGlzdAkgICAqZXhjZXB0cmVsYXRpb25zID0gTklMOwor CQlMaXN0CSAgICpleGNlcHRfcHVidGFibGVzID0gTklMOwogCQlMaXN0CSAgICpzY2hlbWFpZGxp c3QgPSBOSUw7CiAJCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOwogCiAJCU9iamVjdHNJblB1 YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKLQkJ CQkJCQkJICAgJmV4Y2VwdHJlbGF0aW9ucywgJnNjaGVtYWlkbGlzdCk7CisJCQkJCQkJCSAgICZl eGNlcHRfcHVidGFibGVzLCAmc2NoZW1haWRsaXN0KTsKIAogCQlDaGVja0FsdGVyUHVibGljYXRp b24oc3RtdCwgdHVwLCByZWxhdGlvbnMsIHNjaGVtYWlkbGlzdCk7CiAKQEAgLTE3MTEsNyArMTc4 Niw3IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCkKIAkJCQkJZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QiLAogCQkJCQkJICAgc3RtdC0+cHVibmFtZSkpOwogCi0JCXJlbGF0aW9ucyA9IGxpc3Rf Y29uY2F0KHJlbGF0aW9ucywgZXhjZXB0cmVsYXRpb25zKTsKKwkJcmVsYXRpb25zID0gbGlzdF9j b25jYXQocmVsYXRpb25zLCBleGNlcHRfcHVidGFibGVzKTsKIAkJQWx0ZXJQdWJsaWNhdGlvblRh YmxlcyhzdG10LCB0dXAsIHJlbGF0aW9ucywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCiAJCQkJCQkJ ICAgc2NoZW1haWRsaXN0ICE9IE5JTCk7CiAJCUFsdGVyUHVibGljYXRpb25TY2hlbWFzKHN0bXQs IHR1cCwgc2NoZW1haWRsaXN0KTsKQEAgLTE4MjksNiArMTkwNCw1NSBAQCBSZW1vdmVQdWJsaWNh dGlvblNjaGVtYUJ5SWQoT2lkIHBzb2lkKQogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CiB9CiAKKy8qCisgKiBSZW1vdmUgYW55IEVYQ0VQVCBjbGF1c2UgZW50cmllcyBmb3Ig YSByZWxhdGlvbiBmcm9tIHNjaGVtYSBwdWJsaWNhdGlvbnMuCisgKiBDYWxsZWQgd2hlbiBhIHRh YmxlIGNoYW5nZXMgc2NoZW1hIChBTFRFUiBUQUJMRSAuLi4gU0VUIFNDSEVNQSksIHNvIHRoYXQK KyAqIGEgc2NoZW1hLXNjb3BlZCBleGNsdXNpb24gZG9lcyBub3Qgc2lsZW50bHkgZm9sbG93IHRo ZSB0YWJsZSB0byBpdHMgbmV3CisgKiBzY2hlbWEuCisgKi8KK3ZvaWQKK1JlbW92ZVNjaGVtYVB1 YkV4Y2VwdEZvclJlbChPaWQgcmVsaWQsIE9pZCBvbGROc3BPaWQsIE9pZCBuZXdOc3BPaWQpCit7 CisJTGlzdAkgICAqcHViaWRzOworCisJcHViaWRzID0gR2V0UmVsYXRpb25FeGNsdWRlZFB1Ymxp Y2F0aW9ucyhyZWxpZCk7CisKKwlmb3JlYWNoX29pZChwdWJpZCwgcHViaWRzKQorCXsKKwkJT2lk CQkJcHJvaWQ7CisKKwkJLyoKKwkJICogVGhpcyBwcm9ibGVtIGRvZXMgbm90IGFwcGx5IHRvIEZP UiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucywgYmVjYXVzZQorCQkgKiB0aGVpciBFWENFUFQgY2xh dXNlIGlzIHB1YmxpY2F0aW9uLXNjb3BlZCwgbm90IHNjaGVtYS1zY29wZWQ6IHRoZQorCQkgKiBl eGNsdXNpb24gc2hvdWxkIHBlcnNpc3QgcmVnYXJkbGVzcyBvZiB3aGF0IHNjaGVtYSB0aGUgdGFi bGUgaXMgaW4uCisJCSAqLworCQlpZiAoIWlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpCisJ CQljb250aW51ZTsKKworCQlwcm9pZCA9IEdldFN5c0NhY2hlT2lkMihQVUJMSUNBVElPTlJFTE1B UCwKKwkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAorCQkJCQkJCQlPYmplY3RJ ZEdldERhdHVtKHJlbGlkKSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQlp ZiAoT2lkSXNWYWxpZChwcm9pZCkpCisJCXsKKwkJCU9iamVjdEFkZHJlc3Mgb2JqOworCisJCQlP YmplY3RBZGRyZXNzU2V0KG9iaiwgUHVibGljYXRpb25SZWxSZWxhdGlvbklkLCBwcm9pZCk7CisK KwkJCWVyZXBvcnQoREVCVUcyLAorCQkJCQllcnJtc2dfaW50ZXJuYWwoImF1dG8tZHJvcCBleGNs dXNpb24gb2YgdGFibGUgXCIlcy4lc1wiIGZyb20gcHVibGljYXRpb24gXCIlc1wiOiB0YWJsZSBt b3ZlZCB0byBzY2hlbWEgXCIlc1wiIiwKKwkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShvbGRO c3BPaWQpLAorCQkJCQkJCQkJZ2V0X3JlbF9uYW1lKHJlbGlkKSwKKwkJCQkJCQkJCWdldF9wdWJs aWNhdGlvbl9uYW1lKHB1YmlkLCBmYWxzZSksCisJCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUo bmV3TnNwT2lkKSkpOworCisJCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAw KTsKKwkJfQorCX0KKworCWxpc3RfZnJlZShwdWJpZHMpOworfQorCiAvKgogICogT3BlbiByZWxh dGlvbnMgc3BlY2lmaWVkIGJ5IGEgUHVibGljYXRpb25UYWJsZSBsaXN0LgogICogVGhlIHJldHVy bmVkIHRhYmxlcyBhcmUgbG9ja2VkIGluIFNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jayBtb2RlIGlu IG9yZGVyIHRvCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDM4ZjlmZmNkMDRmLi5mOGI3 ZTY3NjZkOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTYzLDYgKzYzLDcgQEAKICNp bmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0 ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcmVwYWNrLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNp bmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNw YWNlLmgiCkBAIC0xOTI5MCw2ICsxOTI5MSwxNiBAQCBBbHRlclRhYmxlTmFtZXNwYWNlSW50ZXJu YWwoUmVsYXRpb24gcmVsLCBPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkLAogCUFsdGVyQ29uc3Ry YWludE5hbWVzcGFjZXMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBvbGROc3BPaWQsIG5zcE9pZCwK IAkJCQkJCQkgIGZhbHNlLCBvYmpzTW92ZWQpOwogCisJLyoKKwkgKiBSZW1vdmUgYW55IEVYQ0VQ VCBjbGF1c2UgZW50cmllcyBmb3IgdGhpcyByZWxhdGlvbiBmcm9tIHNjaGVtYQorCSAqIHB1Ymxp Y2F0aW9ucy4gIEEgc2NoZW1hLXNjb3BlZCBleGNsdXNpb24gaXMgbm8gbG9uZ2VyIG1lYW5pbmdm dWwgb25jZQorCSAqIHRoZSB0YWJsZSBtb3ZlcyB0byBhIGRpZmZlcmVudCBzY2hlbWEuCisJICov CisJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKKwkJcmVs LT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJUmVtb3Zl U2NoZW1hUHViRXhjZXB0Rm9yUmVsKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgb2xkTnNwT2lkLAor CQkJCQkJCQkJbnNwT2lkKTsKKwogCXRhYmxlX2Nsb3NlKGNsYXNzUmVsLCBSb3dFeGNsdXNpdmVM b2NrKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZmY0ZTEzODhjNTUuLjZhN2ExYmM1ZjhkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIK ICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VyLmgi CisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRldGltZS5o IgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgogCkBAIC0xMTI3Miw3ICsxMTI3Myw3IEBAIEFsdGVy T3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIg VE8gUm9sZVNwZWMKICAqIHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZSBb LCAuLi5dCi0gKgkJVEFCTEVTIElOIFNDSEVNQSBzY2hlbWEgWywgLi4uXQorICoJCVRBQkxFUyBJ TiBTQ0hFTUEgc2NoZW1hIFtFWENFUFQgKFRBQkxFIHRhYmxlIFssIC4uLl0gKV0gWywgLi4uXQog ICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMTEzMzIsMjMgKzExMzMzLDI2IEBAIFB1 YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7CiAJCQkJ CSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKIAkJCQl9Ci0JCQl8IFRBQkxFUyBJTl9Q IFNDSEVNQSBDb2xJZAorCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQgb3B0X3B1Yl9leGNl cHRfY2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7 CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQTsK IAkJCQkJJCQtPm5hbWUgPSAkNDsKKwkJCQkJJCQtPmV4Y2VwdF90YWJsZXMgPSAkNTsKIAkJCQkJ JCQtPmxvY2F0aW9uID0gQDQ7CiAJCQkJfQotCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ1VSUkVO VF9TQ0hFTUEKKwkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENVUlJFTlRfU0NIRU1BIG9wdF9wdWJf ZXhjZXB0X2NsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNw ZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJf U0NIRU1BOworCQkJCQkkJC0+ZXhjZXB0X3RhYmxlcyA9ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24g PSBANDsKIAkJCQl9Ci0JCQl8IENvbElkIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQor CQkJfCBDb2xJZCBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2Ugb3B0X3B1Yl9leGNlcHRf Y2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJ CQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OOworCQkJCQkk JC0+ZXhjZXB0X3RhYmxlcyA9ICQ0OwogCQkJCQkvKgogCQkJCQkgKiBJZiBlaXRoZXIgYSByb3cg ZmlsdGVyIG9yIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgY3JlYXRlCiAJCQkJCSAqIGEgUHVi bGljYXRpb25UYWJsZSBvYmplY3QuCkBAIC0xMTM5MiwxMCArMTEzOTYsMTEgQEAgUHVibGljYXRp b25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMjsKIAkJCQkJJCQtPnB1 YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQzOwogCQkJCX0KLQkJCXwgQ1VSUkVOVF9TQ0hFTUEKKwkJ CXwgQ1VSUkVOVF9TQ0hFTUEgb3B0X3B1Yl9leGNlcHRfY2xhdXNlCiAJCQkJewogCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVC TElDQVRJT05PQkpfQ09OVElOVUFUSU9OOworCQkJCQkkJC0+ZXhjZXB0X3RhYmxlcyA9ICQyOwog CQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQkJOwpAQCAtMjA3ODQsNiArMjA3ODks OCBAQCBwcmVwcm9jZXNzX3B1Yl9hbGxfb2JqdHlwZV9saXN0KExpc3QgKmFsbF9vYmplY3RzX2xp c3QsIExpc3QgKipwdWJvYmplY3RzLAogLyoKICAqIFByb2Nlc3MgcHVib2Jqc3BlY19saXN0IHRv IGNoZWNrIGZvciBlcnJvcnMgaW4gYW55IG9mIHRoZSBvYmplY3RzIGFuZAogICogY29udmVydCBQ VUJMSUNBVElPTk9CSl9DT05USU5VQVRJT04gaW50byBhcHByb3ByaWF0ZSBQdWJsaWNhdGlvbk9i alNwZWNUeXBlLgorICogQWxzbyBmbGF0dGVucyBleGNlcHRfdGFibGVzIGZyb20gVEFCTEVTIElO IFNDSEVNQSBub2RlcyBpbnRvIHRoZSBsaXN0IHNvCisgKiB0aGF0IE9iamVjdHNJblB1YmxpY2F0 aW9uVG9PaWRzKCkgc2VlcyB0aGVtIGFzIHRvcC1sZXZlbCBFWENFUFRfVEFCTEUgZW50cmllcy4K ICAqLwogc3RhdGljIHZvaWQKIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3Bl Y19saXN0LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKQEAgLTIwODEyLDYgKzIwODE5LDEzIEBA IHByZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nh bl90IHl5c2Nhbm5lcikKIAogCQlpZiAocHVib2JqLT5wdWJvYmp0eXBlID09IFBVQkxJQ0FUSU9O T0JKX1RBQkxFKQogCQl7CisJCQkvKiBFWENFUFQgaXMgbm90IHZhbGlkIGZvciB0YWJsZSBvYmpl Y3RzICovCisJCQlpZiAocHVib2JqLT5leGNlcHRfdGFibGVzICE9IE5JTCkKKwkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJt c2coIkVYQ0VQVCBpcyBub3QgYWxsb3dlZCBmb3IgVEFCTEUgcHVibGljYXRpb24gb2JqZWN0cyIp LAorCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHB1Ym9iai0+bG9jYXRpb24pKTsKKwogCQkJLyog cmVsYXRpb24gbmFtZSBvciBwdWJ0YWJsZSBtdXN0IGJlIHNldCBmb3IgdGhpcyB0eXBlIG9mIG9i amVjdCAqLwogCQkJaWYgKCFwdWJvYmotPm5hbWUgJiYgIXB1Ym9iai0+cHVidGFibGUpCiAJCQkJ ZXJlcG9ydChFUlJPUiwKQEAgLTIwODYwLDYgKzIwODc0LDM2IEBAIHByZXByb2Nlc3NfcHVib2Jq X2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIAkJ CQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkJZXJybXNnKCJpbnZhbGlk IHNjaGVtYSBuYW1lIiksCiAJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlv bikpOworCisJCQkvKgorCQkJICogRm9yIFRBQkxFU19JTl9TQ0hFTUEsIHF1YWxpZnkgdW5xdWFs aWZpZWQgRVhDRVBUIHRhYmxlIG5hbWVzCisJCQkgKiB3aXRoIHRoZSBwYXJlbnQgc2NoZW1hIGFu ZCByZWplY3QgY3Jvc3Mtc2NoZW1hIGVudHJpZXMgYXQgcGFyc2UKKwkJCSAqIHRpbWUsIHRoZW4g ZmxhdHRlbiBpbnRvIHRoZSB0b3AtbGV2ZWwgbGlzdC4KKwkJCSAqCisJCQkgKiBGb3IgVEFCTEVT X0lOX0NVUl9TQ0hFTUEgdGhlIHNjaGVtYSBuYW1lIGlzIG5vdCB5ZXQga25vd24sIHNvCisJCQkg KiBza2lwIGJvdGggc3RlcHMgaGVyZTsgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoKSB3aWxs CisJCQkgKiBxdWFsaWZ5IG5hbWVzIGFuZCB2YWxpZGF0ZSBzY2hlbWEgbWVtYmVyc2hpcCBhdCBl eGVjdXRpb24gdGltZS4KKwkJCSAqLworCQkJaWYgKHB1Ym9iai0+cHVib2JqdHlwZSA9PSBQVUJM SUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1BKQorCQkJeworCQkJCWZvcmVhY2hfcHRyKFB1Ymxp Y2F0aW9uT2JqU3BlYywgZW9iaiwgcHVib2JqLT5leGNlcHRfdGFibGVzKQorCQkJCXsKKwkJCQkJ Y29uc3QgY2hhciAqZW9ial9zY2hlbWFuYW1lID0gZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5z Y2hlbWFuYW1lOworCQkJCQljb25zdCBjaGFyICplb2JqX3JlbG5hbWUgPSBlb2JqLT5wdWJ0YWJs ZS0+cmVsYXRpb24tPnJlbG5hbWU7CisKKwkJCQkJaWYgKGVvYmpfc2NoZW1hbmFtZSA9PSBOVUxM KQorCQkJCQkJZW9iai0+cHVidGFibGUtPnJlbGF0aW9uLT5zY2hlbWFuYW1lID0gcHVib2JqLT5u YW1lOworCQkJCQllbHNlIGlmIChzdHJjbXAoZW9ial9zY2hlbWFuYW1lLCBwdWJvYmotPm5hbWUp ICE9IDApCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQllcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCQkJCWVycm1zZygidGFibGUgXCIlc1wiIGlu IEVYQ0VQVCBjbGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSBcIiVzXCIiLAorCQkJCQkJ CQkJICAgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoZW9ial9zY2hlbWFuYW1lLCBlb2JqX3Jl bG5hbWUpLAorCQkJCQkJCQkJICAgcHVib2JqLT5uYW1lKSwKKwkJCQkJCQkJcGFyc2VyX2VycnBv c2l0aW9uKGVvYmotPmxvY2F0aW9uKSk7CisJCQkJfQorCQkJCXB1Ym9ianNwZWNfbGlzdCA9IGxp c3RfY29uY2F0KHB1Ym9ianNwZWNfbGlzdCwgcHVib2JqLT5leGNlcHRfdGFibGVzKTsKKwkJCQlw dWJvYmotPmV4Y2VwdF90YWJsZXMgPSBOSUw7CisJCQl9CiAJCX0KIAogCQlwcmV2b2JqdHlwZSA9 IHB1Ym9iai0+cHVib2JqdHlwZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9w Z291dHB1dC5jCmluZGV4IDRlY2ZjYmZmN2FiLi43ZWU4NGVjMWM4MyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCkBAIC0yMDk3LDYgKzIwOTcsNyBAQCBn ZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikK IAkJICogYXJlIGFic29yYmVkIHdoaWxlIGRlY29kaW5nIFdBTC4KIAkJICovCiAJCUxpc3QJICAg KnNjaGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFJZCk7CisJCUxpc3QJ ICAgKmV4Y2VwdF9wdWJpZHM7CiAJCUxpc3RDZWxsICAgKmxjOwogCQlPaWQJCQlwdWJsaXNoX2Fz X3JlbGlkID0gcmVsaWQ7CiAJCWludAkJCXB1Ymxpc2hfYW5jZXN0b3JfbGV2ZWwgPSAwOwpAQCAt MjEwNCw2ICsyMTA1LDI4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEs IFJlbGF0aW9uIHJlbGF0aW9uKQogCQljaGFyCQlyZWxraW5kID0gZ2V0X3JlbF9yZWxraW5kKHJl bGlkKTsKIAkJTGlzdAkgICAqcmVsX3B1YmxpY2F0aW9ucyA9IE5JTDsKIAorCQkvKgorCQkgKiBG b3IgdGhlIHNjaGVtYSBFWENFUFQgY2hlY2ssIHdlIG11c3QgbG9vayB1cCB0aGUgdG9wLW1vc3Qg YW5jZXN0b3IKKwkJICogcmF0aGVyIHRoYW4gdGhlIHJlbGF0aW9uIGl0c2VsZi4gIGNoZWNrX3B1 YmxpY2F0aW9uX2FkZF9yZWxhdGlvbigpCisJCSAqIHByZXZlbnRzIGluZGl2aWR1YWwgcGFydGl0 aW9ucyBmcm9tIGFwcGVhcmluZyBpbiB0aGUgRVhDRVBUIGNsYXVzZSwKKwkJICogc28gb25seSBh IHJvb3QgKG5vbi1wYXJ0aXRpb24pIHRhYmxlIGNhbiBoYXZlIHByZXhjZXB0ID0gdHJ1ZS4KKwkJ ICogVXNpbmcgdGhlIHBhcnRpdGlvbidzIG93biBPSUQgd291bGQgYWx3YXlzIHJldHVybiBOSUwg YW5kIG1pc3MgdGhlCisJCSAqIGV4Y2x1c2lvbi4KKwkJICovCisJCU9pZAkJCXJvb3RfcmVsaWQ7 CisKKwkJaWYgKGFtX3BhcnRpdGlvbikKKwkJeworCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0 X3BhcnRpdGlvbl9hbmNlc3RvcnMocmVsaWQpOworCisJCQlyb290X3JlbGlkID0gbGxhc3Rfb2lk KGFuY2VzdG9ycyk7CisJCQlsaXN0X2ZyZWUoYW5jZXN0b3JzKTsKKwkJfQorCQllbHNlCisJCQly b290X3JlbGlkID0gcmVsaWQ7CisKKwkJZXhjZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVk ZWRQdWJsaWNhdGlvbnMocm9vdF9yZWxpZCk7CisKIAkJLyogUmVsb2FkIHB1YmxpY2F0aW9ucyBp ZiBuZWVkZWQgYmVmb3JlIHVzZS4gKi8KIAkJaWYgKCFwdWJsaWNhdGlvbnNfdmFsaWQpCiAJCXsK QEAgLTIyNjcsNyArMjI5MCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRh dGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0gR2V0VG9wTW9zdEFuY2Vz dG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJCSAgIGFuY2VzdG9ycywK LQkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwsCisJ CQkJCQkJCQkJCQkJCQkgICBleGNlcHRfcHViaWRzKTsKIAogCQkJCQlpZiAoYW5jZXN0b3IgIT0g SW52YWxpZE9pZCkKIAkJCQkJewpAQCAtMjI4MSw3ICsyMzA1LDggQEAgZ2V0X3JlbF9zeW5jX2Vu dHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCQkJfQogCiAJCQkJ aWYgKGxpc3RfbWVtYmVyX29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAotCQkJCQlsaXN0X21lbWJl cl9vaWQoc2NoZW1hUHViaWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKGxpc3RfbWVtYmVyX29pZChz Y2hlbWFQdWJpZHMsIHB1Yi0+b2lkKSAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRf cHViaWRzLCBwdWItPm9pZCkpIHx8CiAJCQkJCWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJcHVi bGlzaCA9IHRydWU7CiAJCQl9CkBAIC0yMzYwLDYgKzIzODUsNyBAQCBnZXRfcmVsX3N5bmNfZW50 cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQlsaXN0X2ZyZWUo cHViaWRzKTsKIAkJbGlzdF9mcmVlKHNjaGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShleGNlcHRf cHViaWRzKTsKIAkJbGlzdF9mcmVlKHJlbF9wdWJsaWNhdGlvbnMpOwogCiAJCWVudHJ5LT5yZXBs aWNhdGVfdmFsaWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMg Yi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBhZjM5MzViMDA3OC4uOTQ3MGEwYmJmNWUg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCkBAIC03MDM4LDYgKzcwMzgsMjQgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29u c3QgY2hhciAqcGF0dGVybikKIAkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZi dWYsIF8oIlRhYmxlcyBmcm9tIHNjaGVtYXM6IiksCiAJCQkJCQkJCQkJCQl0cnVlLCAmY29udCkp CiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkw MDAwKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogR2V0IHRhYmxlcyBpbiB0aGUgRVhDRVBUIGNs YXVzZSBmb3IgdGhpcyBzY2hlbWEKKwkJCQkJICogcHVibGljYXRpb24uCisJCQkJCSAqLworCQkJ CQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJl bG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJCSAg IkZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjXG4iCisJCQkJCQkJCQkgICIgICAgIEpPSU4gcGdf Y2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJ CQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkJICAiICBBTkQg cHIucHJleGNlcHRcbiIKKwkJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJCWlm ICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwK KwkJCQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCisJCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJ CQl9CiAJCQl9CiAJCX0KIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGRlNTQ3YThj YjM3Li41M2JiN2M4Njc5YiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5p bi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTA2NSw2ICsxMDY1 LDI0IEBAIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfdHJpZ2dlcl9vZl90YWJs ZSA9IHsKICJTRUxFQ1QgbnNwbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlICJcCiAi IFdIRVJFIG5zcG5hbWUgTElLRSAnJXMnIgogCisjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX3Rh Ymxlc19pbl9zY2hlbWEgXAorIlNFTEVDVCBuLm5zcG5hbWUgfHwgJy4nIHx8IGMucmVsbmFtZSAi XAorIiAgRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgIlwKKyIgICAgICAgSk9JTiBwZ19jYXRh bG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UgIlwKKyIgV0hFUkUg Yy5yZWxraW5kIElOICgiIENwcEFzU3RyaW5nMihSRUxLSU5EX1JFTEFUSU9OKSAiLCAiIFwKKwkJ CQkJCUNwcEFzU3RyaW5nMihSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiKSAiXAorIiAgIEFO RCAobi5uc3BuYW1lIHx8ICcuJyB8fCBjLnJlbG5hbWUpIExJS0UgJyVzJyAiXAorIiAgIEFORCBu Lm5zcG5hbWUgPSAnJXMnIgorCisjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9j dXJyZW50X3NjaGVtYSBcCisiU0VMRUNUIGMucmVsbmFtZSAiXAorIiAgRlJPTSBwZ19jYXRhbG9n LnBnX2NsYXNzIGMgIlwKKyIgICAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9O IG4ub2lkID0gYy5yZWxuYW1lc3BhY2UgIlwKKyIgV0hFUkUgYy5yZWxraW5kIElOICgiIENwcEFz U3RyaW5nMihSRUxLSU5EX1JFTEFUSU9OKSAiLCAiIFwKKwkJCQkJCUNwcEFzU3RyaW5nMihSRUxL SU5EX1BBUlRJVElPTkVEX1RBQkxFKSAiKSAiXAorIiAgIEFORCBjLnJlbG5hbWUgTElLRSAnJXMn ICJcCisiICAgQU5EIG4ubnNwbmFtZSA9IHBnX2NhdGFsb2cuY3VycmVudF9zY2hlbWEoKSIKKwog LyogVXNlIENPTVBMRVRFX1dJVEhfUVVFUllfVkVSQkFUSU0gd2l0aCB0aGVzZSBxdWVyaWVzIGZv ciBHVUMgbmFtZXM6ICovCiAjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX2FsdGVyX3N5c3RlbV9z ZXRfdmFycyBcCiAiU0VMRUNUIHBnX2NhdGFsb2cubG93ZXIobmFtZSkgRlJPTSBwZ19jYXRhbG9n LnBnX3NldHRpbmdzICJcCkBAIC0zNzg3LDggKzM4MDUsMjEgQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUllfUExVUyhRdWVyeV9mb3Jf bGlzdF9vZl9zY2hlbWFzCiAJCQkJCQkJCSAiIEFORCBuc3BuYW1lIE5PVCBMSUtFIEUncGdcXFxc XyUlJyIsCiAJCQkJCQkJCSAiQ1VSUkVOVF9TQ0hFTUEiKTsKLQllbHNlIGlmIChNYXRjaGVzKCJD UkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAi U0NIRU1BIiwgTWF0Y2hBbnkpICYmICghZW5kc193aXRoKHByZXZfd2QsICcsJykpKQotCQlDT01Q TEVURV9XSVRIKCJXSVRIICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hB bnkpICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBU ICggVEFCTEUiLCAiV0lUSCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNo QW55LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIiggVEFCTEUiKTsKKwllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMi LCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIpKQorCQlDT01QTEVURV9X SVRIKCJUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCAiQ1VSUkVOVF9TQ0hF TUEiLCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJC QVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNfaW5fY3VycmVudF9zY2hlbWEpOworCWVsc2Ug aWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRB QkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikp CisJeworCQlzZXRfY29tcGxldGlvbl9yZWZlcmVuY2UocHJldjRfd2QpOworCQlDT01QTEVURV9X SVRIX1FVRVJZX1ZFUkJBVElNKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc19pbl9zY2hlbWEpOwor CX0KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwg IkZPUiIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiLCAiKCIs ICJUQUJMRSIsIE1hdGNoQW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01Q TEVURV9XSVRIKCIpIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBQVUJMSUNBVElPTiA8bmFtZT4g Wy4uLl0gV0lUSCIgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueU4sICJXSVRIIiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSCgicHVibGlzaCIsICJw dWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zIiwgInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290Iik7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggODliNGJiMTRmNjIuLjUzZTNk N2M2ZjNkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0xOTEsNyArMTkx LDggQEAgZXh0ZXJuIExpc3QgKkdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0ICpy ZXN1bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAkJCQkJ CQkJCQkJT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNh dGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJCQkJCWludCAqYW5jZXN0 b3JfbGV2ZWwpOworCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLAorCQkJCQkJCQkJCQlM aXN0ICpleGNlcHRfcHViaWRzKTsKIAogZXh0ZXJuIGJvb2wgaXNfcHVibGlzaGFibGVfcmVsYXRp b24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQg cHViaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAppbmRleCA0Y2Y0NWMx N2NjNS4uZmIxNzAzYWE2NzUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5o CkBAIC0yNyw2ICsyNyw4IEBAIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCk7CiBleHRlcm4gdm9pZCBSZW1v dmVQdWJsaWNhdGlvbkJ5SWQoT2lkIHB1YmlkKTsKIGV4dGVybiB2b2lkIFJlbW92ZVB1YmxpY2F0 aW9uUmVsQnlJZChPaWQgcHJvaWQpOwogZXh0ZXJuIHZvaWQgUmVtb3ZlUHVibGljYXRpb25TY2hl bWFCeUlkKE9pZCBwc29pZCk7CitleHRlcm4gdm9pZCBSZW1vdmVTY2hlbWFQdWJFeGNlcHRGb3JS ZWwoT2lkIHJlbGlkLCBPaWQgb2xkTnNwT2lkLAorCQkJCQkJCQkJCU9pZCBuZXdOc3BPaWQpOwog CiBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlclB1YmxpY2F0aW9uT3duZXIoY29uc3QgY2hhciAq bmFtZSwgT2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQgQWx0ZXJQdWJsaWNhdGlvbk93bmVy X29pZChPaWQgcHViaWQsIE9pZCBuZXdPd25lcklkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCA0MTMzYzQwNGE2Yi4uMTI5OWIwYTY3YTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQ0 ODgsNiArNDQ4OCw4IEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uT2JqU3BlYwogCVB1Ymxp Y2F0aW9uT2JqU3BlY1R5cGUgcHVib2JqdHlwZTsJLyogdHlwZSBvZiB0aGlzIHB1YmxpY2F0aW9u IG9iamVjdCAqLwogCWNoYXIJICAgKm5hbWU7CiAJUHVibGljYXRpb25UYWJsZSAqcHVidGFibGU7 CisJTGlzdAkgICAqZXhjZXB0X3RhYmxlczsJLyogdGFibGVzIHNwZWNpZmllZCBpbiB0aGUgRVhD RVBUIGNsYXVzZSAoZm9yCisJCQkJCQkJCSAqIFRBQkxFUyBJTiBTQ0hFTUEpICovCiAJUGFyc2VM b2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogfSBQ dWJsaWNhdGlvbk9ialNwZWM7CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlv bi5vdXQKaW5kZXggMjllNTRiMjE0YTAuLjJjZjNmYTQwMjUzIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMjcwLDYgKzI3MCwxMiBAQCBDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUyIEZPUiBBTEwgVEFCTEVT IEVYQ0VQVCAodGVzdAogRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl90 YmwxIgogTElORSAxOiAuLi5fZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMiBGT1IgQUxMIFRBQkxF UyBFWENFUFQgKHRlc3RwdWJfdGIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBmYWlsIC0gRVhDRVBUIGlzIG5vdCBh bGxvd2VkIGZvciBGT1IgVEFCTEUgcHVibGljYXRpb25zCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHRfZXJyCisgICAgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90Ymwy IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwzKTsKK0VSUk9SOiAgRVhDRVBUIGlzIG5vdCBhbGxv d2VkIGZvciBUQUJMRSBwdWJsaWNhdGlvbiBvYmplY3RzCitMSU5FIDI6ICAgICBGT1IgVEFCTEUg dGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDIgRVhDRVBUIChUQUJMRSB0ZXN0cC4uLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBTRVQgQUxMIFRBQkxFUy9TRVFVRU5DRVMKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDcwLDcgKzQ3Niwx MzAgQEAgSElOVDogIENoYW5nZSB0aGUgcHVibGljYXRpb24ncyBFWENFUFQgY2xhdXNlIHVzaW5n IEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgQUwKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7 CiBEUk9QIFRBQkxFIHRlc3RwdWJfcm9vdCwgdGVzdHB1Yl9wYXJ0MSwgdGFiX21haW47CiBEUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWI4OwotLS0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBT RVFVRU5DRVMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor LS0gRVhDRVBUIHRlc3RzIGZvciBUQUJMRVMgSU4gU0NIRU1BCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VS Uk9SJzsKKy0tIENyZWF0ZSB0YWJsZXMgaW4gcHViX3Rlc3QgZm9yIHRoZXNlIHRlc3RzCitDUkVB VEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEgKGEgaW50IHByaW1hcnkga2V5LCBiIHRl eHQpOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyICh4IGludCBwcmltYXJ5 IGtleSwgeSB0ZXh0KTsKKy0tIENyZWF0ZSBzYW1lLW5hbWVkIHRhYmxlcyBpbiBwdWJsaWMgdG8g dmVyaWZ5IHVucXVhbGlmaWVkIEVYQ0VQVCBlbnRyaWVzCistLSBhcmUgcXVhbGlmaWVkIHdpdGgg dGhlIG5hbWVkIHNjaGVtYSwgbm90IHB1YmxpYworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfbm9wayAo Zm9vIGludCwgYmFyIGludCk7CitDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmxfczEgKGEgaW50IHBy aW1hcnkga2V5LCBiIHRleHQpOworLS0gQmFzaWM6IGV4Y2x1ZGUgb25lIHRhYmxlIGZyb20gYSBz Y2hlbWEgcHVibGljYXRpb24KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNl cHQxCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJf dGVzdC50ZXN0cHViX3RibF9zMSk7CitcZFJwKyB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNh dGlvbiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMg ZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MxIgorCistLSBFeGNsdWRlIG11bHRpcGxlIHRhYmxlcyB1c2luZyB1 bnF1YWxpZmllZCBuYW1lczsgc2FtZS1uYW1lZCB0YWJsZXMgZXhpc3QgaW4KKy0tIHB1YmxpYyB0 byBjb25maXJtIHVucXVhbGlmaWVkIG5hbWVzIHJlc29sdmUgdG8gcHViX3Rlc3QsIG5vdCBwdWJs aWMKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQyCisgICAgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX25vcGssIHRlc3Rw dWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfc2NoZW1hX2V4Y2VwdDIKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVt YXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1 Yl9ub3BrIgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKworLS0gZmFpbDogRVhDRVBU IHRhYmxlIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9leGNlcHRfd3JvbmdzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cHViX3RibDEpOworRVJST1I6ICB0YWJsZSAi cHVibGljLnRlc3RwdWJfdGJsMSIgaW4gRVhDRVBUIGNsYXVzZSBkb2VzIG5vdCBiZWxvbmcgdG8g c2NoZW1hICJwdWJfdGVzdCIKK0xJTkUgMjogICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3RwLi4uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIGZhaWw6IGNyb3NzLXNjaGVt YSBFWENFUFQgbm90IGFsbG93ZWQ7IGVhY2ggRVhDRVBUIGlzIGJvdW5kIHRvIGl0cyBpbW1lZGlh dGUgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfY3Jvc3NzY2hlbWEK KyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCwgcHVibGljIEVYQ0VQVCAoVEFCTEUg cHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1YmxpYy50ZXN0cHViX3RibDEpOworRVJST1I6ICB0 YWJsZSAicHViX3Rlc3QudGVzdHB1Yl90YmxfczEiIGluIEVYQ0VQVCBjbGF1c2UgZG9lcyBub3Qg YmVsb25nIHRvIHNjaGVtYSAicHVibGljIgorTElORSAyOiAuLi5SIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3QsIHB1YmxpYyBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnQuLi4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBN dWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVpciBvd24gRVhDRVBUIGNsYXVzZQorQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorICAgIEZPUiBUQUJMRVMg SU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEp LAorICAgICAgICAgICAgICAgICAgcHVibGljIEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwxKTsK K1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zY2hlbWFf ZXhjZXB0X211bHRpCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFs bCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBH ZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgor ICAgICJwdWJfdGVzdCIKKyAgICAicHVibGljIgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rl c3QudGVzdHB1Yl90YmxfczEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisKKy0tIEFMVEVS IFRBQkxFIC4uLiBTRVQgU0NIRU1BIG9uIGEgdGFibGUgZXhjbHVkZWQgYnkgYSBzY2hlbWEgcHVi bGljYXRpb246CistLSB0aGUgc2NoZW1hLXNjb3BlZCBleGNsdXNpb24gaXMgbm8gbG9uZ2VyIG1l YW5pbmdmdWwgb25jZSB0aGUgdGFibGUgbW92ZXMKKy0tIG91dCBvZiBpdHMgc2NoZW1hLCBzbyB0 aGUgZXhjbHV0aW9uIGlzIGF1dG8tZHJvcHBlZC4KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X3NjaGVtYV9leGNlcHRfc2V0c2NoCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3Qg RVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMik7CitcZFJwKyB0ZXN0cHViX3Nj aGVtYV9leGNlcHRfc2V0c2NoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3NjaGVtYV9leGNlcHRfc2V0c2NoCisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1u cyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAg ICAgICB8IGYgICAgICAgIHwgCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdCIK K0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyIgorCitBTFRFUiBU QUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMiBTRVQgU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRl c3RwdWJfc2NoZW1hX2V4Y2VwdF9zZXRzY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9z ZXRzY2gKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVl bmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRl ZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUg ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1 Yl90ZXN0IgorCistLSBSZXN0b3JlIHNvIHRoZSBleGlzdGluZyBjbGVhbnVwIGJlbG93IHN0aWxs IHdvcmtzCitBTFRFUiBUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmxfczIgU0VUIFNDSEVNQSBwdWJf dGVzdDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NldHNjaDsKKy0t IGZhaWw6IHRhYmxlIGFwcGVhcnMgaW4gYm90aCB0aGUgZXhwbGljaXQgdGFibGUgbGlzdCBhbmQg dGhlIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9jb25m bGljdAorICAgIEZPUiBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgVEFCTEVTIElOIFND SEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKTsKK0VS Uk9SOiAgdGFibGUgInB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxIiBjYW5ub3QgYXBwZWFyIGluIGJv dGggdGhlIHRhYmxlIGxpc3QgYW5kIHRoZSBFWENFUFQgY2xhdXNlCistLSBmYWlsOiBub25leGlz dGVudCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9l eGNlcHRfbm9yZWwKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRB QkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKK0VSUk9SOiAgcmVsYXRpb24gInB1Yl90 ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlIiBkb2VzIG5vdCBleGlzdAorLS0gZmFpbDogcGFydGl0aW9u IGNhbm5vdCBhcHBlYXIgaW4gRVhDRVBUIGNsYXVzZTsgb25seSByb290IHRhYmxlcyBhcmUgYWxs b3dlZAorQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgKGEgaW50KSBQQVJU SVRJT04gQlkgTElTVCAoYSk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3Mg UEFSVElUSU9OIE9GIHB1Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgRk9SIFZBTFVFUyBJTiAoMSk7 CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHRfcGFydGl0aW9uCisgICAgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3Bh cnRfcyk7CitFUlJPUjogIGNhbm5vdCBzcGVjaWZ5IHJlbGF0aW9uICJwdWJfdGVzdC50ZXN0cHVi X3BhcnRfcyIgaW4gdGhlIHB1YmxpY2F0aW9uIEVYQ0VQVCBjbGF1c2UKK0RFVEFJTDogIFRoaXMg b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGl2aWR1YWwgcGFydGl0aW9ucy4KKy0t IGZhaWw6IFRBQkxFIGtleXdvcmQgaXMgcmVxdWlyZWQgZm9yIHRoZSBmaXJzdCBlbnRyeSBpbiB0 aGUgRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X25va3cK KyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7 CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJ0ZXN0cHViX25vcGsiCitMSU5FIDI6 ICAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0t IENsZWFudXAKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitEUk9QIFRBQkxFIHB1Yl90ZXN0 LnRlc3RwdWJfdGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9zMjsKK0RST1AgVEFCTEUgcHVi X3Rlc3QudGVzdHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOworRFJPUCBUQUJMRSB0ZXN0cHViX25vcGss IHRlc3RwdWJfdGJsX3MxOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQx LCB0ZXN0cHViX3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGk7Cist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIFRlc3RzIGZv ciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTA7CiBD UkVBVEUgU0VRVUVOQ0UgcHViX3Rlc3QucmVncmVzc19wdWJfc2VxMTsKIC0tIEZPUiBBTEwgU0VR VUVOQ0VTCkBAIC0xOTUzLDYgKzIwODIsMjcgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFf Zm9yc2NoZW1hIEFERCBUQUJMRVMgSU4gU0NIRU1BIGZvbywgYmFyIChhLCBiKTsKIEVSUk9SOiAg Y29sdW1uIHNwZWNpZmljYXRpb24gbm90IGFsbG93ZWQgZm9yIHNjaGVtYQogTElORSAxOiAuLi5U SU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBBREQgVEFCTEVTIElOIFNDSEVNQSBmb28sIGJhciAoYSwg YikuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCistLSBFWENFUFQgY2xhdXNlIHdpdGggQ1VSUkVOVF9TQ0hFTUE6IGNyb3Nz LXNjaGVtYSBlbnRyeSBtdXN0IGJlIHJlamVjdGVkCitTRVQgc2VhcmNoX3BhdGggPSBwdWJfdGVz dDE7CistLSBxdWFsaWZpZWQgbmFtZSBmcm9tIHdyb25nIHNjaGVtYSAtPiBlcnJvcgorQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2VwdCBGT1IgVEFCTEVTIElOIFNDSEVNQSBD VVJSRU5UX1NDSEVNQSBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Mi50YmwxKTsKK0VSUk9SOiAgdGFi bGUgInB1Yl90ZXN0Mi50YmwxIiBpbiBFWENFUFQgY2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBz Y2hlbWEgInB1Yl90ZXN0MSIKKy0tIHVucXVhbGlmaWVkIG5hbWUgaW1wbGljaXRseSBxdWFsaWZp ZWQgd2l0aCBjdXJyZW50IHNjaGVtYSAocHViX3Rlc3QxLnRibCkKK1NFVCBjbGllbnRfbWluX21l c3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNl cHQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSB0Ymwp OworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK1xkUnArIHRlc3RwdWJfY3Vyc2NoX2V4Y2Vw dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3Jp cHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitU YWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJfdGVzdDEiCitFeGNlcHQgdGFibGVzOgorICAg ICJwdWJfdGVzdDEudGJsIgorCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfY3Vyc2NoX2V4Y2Vw dDsKK1JFU0VUIHNlYXJjaF9wYXRoOwogLS0gY2xlYW51cCBwdWJfdGVzdDEgc2NoZW1hIGZvciBp bnZhbGlkYXRpb24gdGVzdHMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIyX2ZvcnNjaGVtYSBE Uk9QIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHVi M19mb3JzY2hlbWEsIHRlc3RwdWI0X2ZvcnNjaGVtYSwgdGVzdHB1YjVfZm9yc2NoZW1hLCB0ZXN0 cHViNl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9ydGFibGU7CkBAIC0yMzA0LDYgKzI0NTQsNyBAQCBE Uk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyX2R1bW15OwogLS0gVGVzdCBwZ19nZXRf cHVibGljYXRpb25fdGFibGVzKHRleHRbXSwgb2lkKSBmdW5jdGlvbgogQ1JFQVRFIFNDSEVNQSBn cHRfdGVzdF9zY2g7CiBDUkVBVEUgVEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9zY2ggKGlkIGludCk7 CitDUkVBVEUgVEFCTEUgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gyIChpZCBpbnQpOwogQ1JFQVRFIFRB QkxFIHRibF9ub3JtYWwgKGlkIGludCk7CiBDUkVBVEUgVEFCTEUgdGJsX3BhcmVudCAoaWQxIGlu dCwgaWQyIGludCwgaWQzIGludCkgUEFSVElUSU9OIEJZIFJBTkdFIChpZDEpOwogQ1JFQVRFIFRB QkxFIHRibF9wYXJ0MSBQQVJUSVRJT04gT0YgdGJsX3BhcmVudCBGT1IgVkFMVUVTIEZST00gKDEp IFRPICgxMCk7CkBAIC0yMzE0LDYgKzI0NjUsNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gcHViX2Fs bF9ub192aWFyb290IEZPUiBBTEwgVEFCTEVTIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbgog Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAo VEFCTEUgdGJsX3BhcmVudCwgZ3B0X3Rlc3Rfc2NoLnRibF9zY2gpIFdJVEggKHB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290ID0gdHJ1ZSk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX2FsbF9leGNl cHRfbm9fdmlhcm9vdCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkxFIHRibF9wYXJlbnQsIGdw dF90ZXN0X3NjaC50Ymxfc2NoKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZh bHNlKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfc2NoZW1hIEZPUiBUQUJMRVMgSU4gU0NIRU1B IGdwdF90ZXN0X3NjaDsKK0NSRUFURSBQVUJMSUNBVElPTiBwdWJfc2NoZW1hX2V4Y2VwdCBGT1Ig VEFCTEVTIElOIFNDSEVNQSBncHRfdGVzdF9zY2ggRVhDRVBUIChUQUJMRSBncHRfdGVzdF9zY2gu dGJsX3NjaCk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX25vcm1hbCBGT1IgVEFCTEUgdGJsX25v cm1hbCBXSEVSRSAoaWQgPCAxMCk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX3BhcnRfbGVhZiBG T1IgVEFCTEUgdGJsX3BhcnQxIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFs c2UpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9wYXJ0X3BhcmVudCBGT1IgVEFCTEUgdGJsX3Bh cmVudCAoaWQxLCBpZDIpIFdIRVJFIChpZDEgPSAxMCkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3QgPSB0cnVlKTsKQEAgLTI0NjUsNiArMjYxNywxOCBAQCBTRUxFQ1QgKiBGUk9NIHRl c3RfZ3B0KEFSUkFZWydwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290J10sICd0YmxfcGFydDEnKTsg LS0gbm8gcgogLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLQogKDAgcm93cykKIAor LS0gdGVzdCBmb3IgRVhDRVBUIGNsYXVzZSB3aXRoIHNjaGVtYSBwdWJsaWNhdGlvbgorU0VMRUNU ICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX3NjaGVtYV9leGNlcHQnXSwgJ2dwdF90ZXN0X3Nj aC50Ymxfc2NoJyk7IC0tIG5vIHJlc3VsdCAoZXhjbHVkZWQpCisgcHVibmFtZSB8IHJlbG5hbWUg fCBhdHRycyB8IHF1YWwgCistLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tCisoMCBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfc2NoZW1hX2V4Y2VwdCdd LCAnZ3B0X3Rlc3Rfc2NoLnRibF9zY2gyJyk7IC0tIG9uZSByb3cgKGluY2x1ZGVkIHZpYSBzY2hl bWEpCisgICAgICBwdWJuYW1lICAgICAgfCByZWxuYW1lICB8IGF0dHJzIHwgcXVhbCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLQorIHB1Yl9zY2hlbWFfZXhj ZXB0IHwgdGJsX3NjaDIgfCAxICAgICB8IAorKDEgcm93KQorCiAtLSB0d28gcm93cyB3aXRoIGRp ZmZlcmVudCByb3cgZmlsdGVyCiBTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfYWxs JywgJ3B1Yl9ub3JtYWwnXSwgJ3RibF9ub3JtYWwnKTsKICAgcHVibmFtZSAgIHwgIHJlbG5hbWUg ICB8IGF0dHJzIHwgICBxdWFsICAgIApAQCAtMjUxNyw2ICsyNjgxLDcgQEAgRFJPUCBQVUJMSUNB VElPTiBwdWJfYWxsX25vX3ZpYXJvb3Q7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0 OwogRFJPUCBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdF9ub192aWFyb290OwogRFJPUCBQVUJM SUNBVElPTiBwdWJfc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiBwdWJfc2NoZW1hX2V4Y2VwdDsK IERST1AgUFVCTElDQVRJT04gcHViX25vcm1hbDsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRf bGVhZjsKIERST1AgUFVCTElDQVRJT04gcHViX3BhcnRfcGFyZW50OwpAQCAtMjUyNSw3ICsyNjkw LDkgQEAgRFJPUCBQVUJMSUNBVElPTiBwdWJfcGFydF9wYXJlbnRfY2hpbGQ7CiBEUk9QIFZJRVcg Z3B0X3Rlc3RfdmlldzsKIERST1AgVEFCTEUgdGJsX25vcm1hbCwgdGJsX3BhcmVudCwgdGJsX3Bh cnQxOwogRFJPUCBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoIENBU0NBREU7Ci1OT1RJQ0U6ICBkcm9wIGNh c2NhZGVzIHRvIHRhYmxlIGdwdF90ZXN0X3NjaC50Ymxfc2NoCitOT1RJQ0U6ICBkcm9wIGNhc2Nh ZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBn cHRfdGVzdF9zY2gudGJsX3NjaAorZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBncHRfdGVzdF9zY2gu dGJsX3NjaDIKIC0tIHN0YWdlIG9iamVjdHMgZm9yIHBnX2R1bXAgdGVzdHMKIENSRUFURSBTQ0hF TUEgcHVibWUgQ1JFQVRFIFRBQkxFIHQwIChjIGludCwgZCBpbnQpIENSRUFURSBUQUJMRSB0MSAo YyBpbnQpOwogQ1JFQVRFIFNDSEVNQSBwdWJtZTIgQ1JFQVRFIFRBQkxFIHQwIChjIGludCwgZCBp bnQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDA0MWUxNGE0ZGU2Li5h OTY1MjdhZGY5NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTIzLDYg KzEyMyw5IEBAIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0 YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMCiBcZCB0ZXN0cHViX3RibDEKIC0tIGZh aWwgLSBmaXJzdCB0YWJsZSBpbiB0aGUgRVhDRVBUIGxpc3Qgc2hvdWxkIHVzZSBUQUJMRSBrZXl3 b3JkCiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUy IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAodGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDIpOworLS0g ZmFpbCAtIEVYQ0VQVCBpcyBub3QgYWxsb3dlZCBmb3IgRk9SIFRBQkxFIHB1YmxpY2F0aW9ucwor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2VycgorICAgIEZPUiBUQUJMRSB0ZXN0 cHViX3RibDEsIHRlc3RwdWJfdGJsMiBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsMyk7CiAKIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLS0gU0VUIEFMTCBU QUJMRVMvU0VRVUVOQ0VTCkBAIC0yMjAsNyArMjIzLDgzIEBAIFJFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcm9vdCwgdGVzdHB1Yl9wYXJ0MSwgdGFiX21haW47 CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OwogCi0tLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9u cyB3aXRoIFNFUVVFTkNFUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCistLSBFWENFUFQgdGVzdHMgZm9yIFRBQkxFUyBJTiBTQ0hFTUEKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSAnRVJST1InOworLS0gQ3JlYXRlIHRhYmxlcyBpbiBwdWJfdGVzdCBmb3IgdGhlc2UgdGVz dHMKK0NSRUFURSBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSAoYSBpbnQgcHJpbWFyeSBr ZXksIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczIgKHggaW50 IHByaW1hcnkga2V5LCB5IHRleHQpOworLS0gQ3JlYXRlIHNhbWUtbmFtZWQgdGFibGVzIGluIHB1 YmxpYyB0byB2ZXJpZnkgdW5xdWFsaWZpZWQgRVhDRVBUIGVudHJpZXMKKy0tIGFyZSBxdWFsaWZp ZWQgd2l0aCB0aGUgbmFtZWQgc2NoZW1hLCBub3QgcHVibGljCitDUkVBVEUgVEFCTEUgdGVzdHB1 Yl9ub3BrIChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFURSBUQUJMRSB0ZXN0cHViX3RibF9zMSAo YSBpbnQgcHJpbWFyeSBrZXksIGIgdGV4dCk7CisKKy0tIEJhc2ljOiBleGNsdWRlIG9uZSB0YWJs ZSBmcm9tIGEgc2NoZW1hIHB1YmxpY2F0aW9uCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9z Y2hlbWFfZXhjZXB0MQorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAo VEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhj ZXB0MQorCistLSBFeGNsdWRlIG11bHRpcGxlIHRhYmxlcyB1c2luZyB1bnF1YWxpZmllZCBuYW1l czsgc2FtZS1uYW1lZCB0YWJsZXMgZXhpc3QgaW4KKy0tIHB1YmxpYyB0byBjb25maXJtIHVucXVh bGlmaWVkIG5hbWVzIHJlc29sdmUgdG8gcHViX3Rlc3QsIG5vdCBwdWJsaWMKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQyCisgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJfdGJsX3MxKTsKK1xk UnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIKKworLS0gZmFpbDogRVhDRVBUIHRhYmxlIGJlbG9u Z3MgdG8gYSBkaWZmZXJlbnQgc2NoZW1hCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNl cHRfd3JvbmdzY2hlbWEKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQg KFRBQkxFIHB1YmxpYy50ZXN0cHViX3RibDEpOworCistLSBmYWlsOiBjcm9zcy1zY2hlbWEgRVhD RVBUIG5vdCBhbGxvd2VkOyBlYWNoIEVYQ0VQVCBpcyBib3VuZCB0byBpdHMgaW1tZWRpYXRlIHNj aGVtYQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X2Nyb3Nzc2NoZW1hCisgICAg Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QsIHB1YmxpYyBFWENFUFQgKFRBQkxFIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MxLCBwdWJsaWMudGVzdHB1Yl90YmwxKTsKKworLS0gTXVsdGlwbGUg c2NoZW1hcyBlYWNoIHdpdGggdGhlaXIgb3duIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGkKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKSwKKyAgICAg ICAgICAgICAgICAgIHB1YmxpYyBFWENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsMSk7CitcZFJwKyB0 ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGkKKworLS0gQUxURVIgVEFCTEUgLi4uIFNFVCBTQ0hF TUEgb24gYSB0YWJsZSBleGNsdWRlZCBieSBhIHNjaGVtYSBwdWJsaWNhdGlvbjoKKy0tIHRoZSBz Y2hlbWEtc2NvcGVkIGV4Y2x1c2lvbiBpcyBubyBsb25nZXIgbWVhbmluZ2Z1bCBvbmNlIHRoZSB0 YWJsZSBtb3ZlcworLS0gb3V0IG9mIGl0cyBzY2hlbWEsIHNvIHRoZSBleGNsdXRpb24gaXMgYXV0 by1kcm9wcGVkLgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9zZXRz Y2gKKyAgICBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90 ZXN0LnRlc3RwdWJfdGJsX3MyKTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9zZXRzY2gK K0FMVEVSIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyIFNFVCBTQ0hFTUEgcHVibGljOwor XGRScCsgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X3NldHNjaAorLS0gUmVzdG9yZSBzbyB0aGUgZXhp c3RpbmcgY2xlYW51cCBiZWxvdyBzdGlsbCB3b3JrcworQUxURVIgVEFCTEUgcHVibGljLnRlc3Rw dWJfdGJsX3MyIFNFVCBTQ0hFTUEgcHViX3Rlc3Q7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJf c2NoZW1hX2V4Y2VwdF9zZXRzY2g7CisKKy0tIGZhaWw6IHRhYmxlIGFwcGVhcnMgaW4gYm90aCB0 aGUgZXhwbGljaXQgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1c2UKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9jb25mbGljdAorICAgIEZPUiBUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX3RibF9zMSwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1 Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKTsKKworLS0gZmFpbDogbm9uZXhpc3RlbnQgdGFibGUgaW4g RVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X25vcmVsCisg ICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC5u b25leGlzdGVudF90YWJsZSk7CisKKy0tIGZhaWw6IHBhcnRpdGlvbiBjYW5ub3QgYXBwZWFyIGlu IEVYQ0VQVCBjbGF1c2U7IG9ubHkgcm9vdCB0YWJsZXMgYXJlIGFsbG93ZWQKK0NSRUFURSBUQUJM RSBwdWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIChhIGludCkgUEFSVElUSU9OIEJZIExJU1QgKGEp OworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfcGFydF9zIFBBUlRJVElPTiBPRiBwdWJf dGVzdC50ZXN0cHViX3BhcnRlZF9zIEZPUiBWQUxVRVMgSU4gKDEpOworQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZXhjZXB0X3BhcnRpdGlvbgorICAgIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9wYXJ0X3MpOworCistLSBmYWls OiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUgZmlyc3QgZW50cnkgaW4gdGhlIEVY Q0VQVCBjbGF1c2UKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdF9ub2t3CisgICAg Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGspOworCist LSBDbGVhbnVwCitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworRFJPUCBUQUJMRSBwdWJfdGVz dC50ZXN0cHViX3RibF9zMSwgcHViX3Rlc3QudGVzdHB1Yl90YmxfczI7CitEUk9QIFRBQkxFIHB1 Yl90ZXN0LnRlc3RwdWJfcGFydGVkX3MgQ0FTQ0FERTsKK0RST1AgVEFCTEUgdGVzdHB1Yl9ub3Br LCB0ZXN0cHViX3RibF9zMTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0 MSwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpOwor CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIFRlc3Rz IGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTA7 CiBDUkVBVEUgU0VRVUVOQ0UgcHViX3Rlc3QucmVncmVzc19wdWJfc2VxMTsKIApAQCAtMTE4OSw2 ICsxMjY4LDE4IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBTRVQgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdDEsIHB1Yl90ZXN0MTsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWIxX2ZvcnNjaGVtYSBBREQgVEFCTEVTIElOIFNDSEVNQSBmb28gKGEsIGIpOwogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1hIEFERCBUQUJMRVMgSU4gU0NIRU1BIGZvbywg YmFyIChhLCBiKTsKIAorLS0gRVhDRVBUIGNsYXVzZSB3aXRoIENVUlJFTlRfU0NIRU1BOiBjcm9z cy1zY2hlbWEgZW50cnkgbXVzdCBiZSByZWplY3RlZAorU0VUIHNlYXJjaF9wYXRoID0gcHViX3Rl c3QxOworLS0gcXVhbGlmaWVkIG5hbWUgZnJvbSB3cm9uZyBzY2hlbWEgLT4gZXJyb3IKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2N1cnNjaF9leGNlcHQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEg Q1VSUkVOVF9TQ0hFTUEgRVhDRVBUIChUQUJMRSBwdWJfdGVzdDIudGJsMSk7CistLSB1bnF1YWxp ZmllZCBuYW1lIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggY3VycmVudCBzY2hlbWEgKHB1Yl90 ZXN0MS50YmwpCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9jdXJzY2hfZXhjZXB0IEZPUiBUQUJMRVMgSU4gU0NIRU1BIENVUlJF TlRfU0NIRU1BIEVYQ0VQVCAoVEFCTEUgdGJsKTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7 CitcZFJwKyB0ZXN0cHViX2N1cnNjaF9leGNlcHQKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9j dXJzY2hfZXhjZXB0OworUkVTRVQgc2VhcmNoX3BhdGg7CisKIC0tIGNsZWFudXAgcHViX3Rlc3Qx IHNjaGVtYSBmb3IgaW52YWxpZGF0aW9uIHRlc3RzCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi Ml9mb3JzY2hlbWEgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsKIERST1AgUFVCTElD QVRJT04gdGVzdHB1YjNfZm9yc2NoZW1hLCB0ZXN0cHViNF9mb3JzY2hlbWEsIHRlc3RwdWI1X2Zv cnNjaGVtYSwgdGVzdHB1YjZfZm9yc2NoZW1hLCB0ZXN0cHViX2ZvcnRhYmxlOwpAQCAtMTQ0Myw2 ICsxNTM0LDcgQEAgRFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcl9kdW1teTsKIC0t IFRlc3QgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyh0ZXh0W10sIG9pZCkgZnVuY3Rpb24KIENS RUFURSBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoOwogQ1JFQVRFIFRBQkxFIGdwdF90ZXN0X3NjaC50Ymxf c2NoIChpZCBpbnQpOworQ1JFQVRFIFRBQkxFIGdwdF90ZXN0X3NjaC50Ymxfc2NoMiAoaWQgaW50 KTsKIENSRUFURSBUQUJMRSB0Ymxfbm9ybWFsIChpZCBpbnQpOwogQ1JFQVRFIFRBQkxFIHRibF9w YXJlbnQgKGlkMSBpbnQsIGlkMiBpbnQsIGlkMyBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRSAoaWQx KTsKIENSRUFURSBUQUJMRSB0YmxfcGFydDEgUEFSVElUSU9OIE9GIHRibF9wYXJlbnQgRk9SIFZB TFVFUyBGUk9NICgxKSBUTyAoMTApOwpAQCAtMTQ1NCw2ICsxNTQ2LDcgQEAgQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1Yl9hbGxfbm9fdmlhcm9vdCBGT1IgQUxMIFRBQkxFUyBXSVRIIChwdWJsaXNoX3Zp YV9wYXJ0aXRpb24KIENSRUFURSBQVUJMSUNBVElPTiBwdWJfYWxsX2V4Y2VwdCBGT1IgQUxMIFRB QkxFUyBFWENFUFQgKFRBQkxFIHRibF9wYXJlbnQsIGdwdF90ZXN0X3NjaC50Ymxfc2NoKSBXSVRI IChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpOwogQ1JFQVRFIFBVQkxJQ0FUSU9O IHB1Yl9hbGxfZXhjZXB0X25vX3ZpYXJvb3QgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSB0 YmxfcGFyZW50LCBncHRfdGVzdF9zY2gudGJsX3NjaCkgV0lUSCAocHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3QgPSBmYWxzZSk7CiBDUkVBVEUgUFVCTElDQVRJT04gcHViX3NjaGVtYSBGT1IgVEFC TEVTIElOIFNDSEVNQSBncHRfdGVzdF9zY2g7CitDUkVBVEUgUFVCTElDQVRJT04gcHViX3NjaGVt YV9leGNlcHQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgZ3B0X3Rlc3Rfc2NoIEVYQ0VQVCAoVEFCTEUg Z3B0X3Rlc3Rfc2NoLnRibF9zY2gpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yl9ub3JtYWwgRk9S IFRBQkxFIHRibF9ub3JtYWwgV0hFUkUgKGlkIDwgMTApOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 Yl9wYXJ0X2xlYWYgRk9SIFRBQkxFIHRibF9wYXJ0MSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdCA9IGZhbHNlKTsKIENSRUFURSBQVUJMSUNBVElPTiBwdWJfcGFydF9wYXJlbnQgRk9S IFRBQkxFIHRibF9wYXJlbnQgKGlkMSwgaWQyKSBXSEVSRSAoaWQxID0gMTApIFdJVEggKHB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSk7CkBAIC0xNTEwLDYgKzE2MDMsMTAgQEAgU0VM RUNUICogRlJPTSB0ZXN0X2dwdChBUlJBWVsncHViX2FsbF9leGNlcHRfbm9fdmlhcm9vdCddLCAn Z3B0X3Rlc3Rfc2NoLnRibF9zY2gKIFNFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9h bGxfZXhjZXB0X25vX3ZpYXJvb3QnXSwgJ3RibF9wYXJlbnQnKTsgLS0gbm8gcmVzdWx0IChleGNs dWRlZCkKIFNFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9hbGxfZXhjZXB0X25vX3Zp YXJvb3QnXSwgJ3RibF9wYXJ0MScpOyAtLSBubyByZXN1bHQKIAorLS0gdGVzdCBmb3IgRVhDRVBU IGNsYXVzZSB3aXRoIHNjaGVtYSBwdWJsaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZXN0X2dwdChB UlJBWVsncHViX3NjaGVtYV9leGNlcHQnXSwgJ2dwdF90ZXN0X3NjaC50Ymxfc2NoJyk7IC0tIG5v IHJlc3VsdCAoZXhjbHVkZWQpCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ3B0KEFSUkFZWydwdWJfc2No ZW1hX2V4Y2VwdCddLCAnZ3B0X3Rlc3Rfc2NoLnRibF9zY2gyJyk7IC0tIG9uZSByb3cgKGluY2x1 ZGVkIHZpYSBzY2hlbWEpCisKIC0tIHR3byByb3dzIHdpdGggZGlmZmVyZW50IHJvdyBmaWx0ZXIK IFNFTEVDVCAqIEZST00gdGVzdF9ncHQoQVJSQVlbJ3B1Yl9hbGwnLCAncHViX25vcm1hbCddLCAn dGJsX25vcm1hbCcpOwogCkBAIC0xNTM4LDYgKzE2MzUsNyBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1 Yl9hbGxfbm9fdmlhcm9vdDsKIERST1AgUFVCTElDQVRJT04gcHViX2FsbF9leGNlcHQ7CiBEUk9Q IFBVQkxJQ0FUSU9OIHB1Yl9hbGxfZXhjZXB0X25vX3ZpYXJvb3Q7CiBEUk9QIFBVQkxJQ0FUSU9O IHB1Yl9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHB1Yl9zY2hlbWFfZXhjZXB0OwogRFJPUCBQ VUJMSUNBVElPTiBwdWJfbm9ybWFsOwogRFJPUCBQVUJMSUNBVElPTiBwdWJfcGFydF9sZWFmOwog RFJPUCBQVUJMSUNBVElPTiBwdWJfcGFydF9wYXJlbnQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3 X2V4Y2VwdC5wbAppbmRleCA4YzU4ZDI4MmVlZS4uMThjN2IyYzFmY2EgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDM3X2V4Y2VwdC5wbApAQCAtMjQsMTQgKzI0LDE3IEBAIG15ICRyZXN1bHQ7CiAK IHN1YiB0ZXN0X2V4Y2VwdF9yb290X3BhcnRpdGlvbgogewotCW15ICgkcHVidmlhcm9vdCkgPSBA XzsKKwlteSAoJHB1YnZpYXJvb3QsICRwdWJzcWwpID0gQF87CisJJHB1YnNxbCAvLz0KKwkgICJD UkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFC TEUgcm9vdDEpIjsKKwkkcHVic3FsIC49ICIgV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jv b3QgPSAkcHVidmlhcm9vdCkiOwogCiAJIyBJZiB0aGUgcm9vdCBwYXJ0aXRpb25lZCB0YWJsZSBp cyBpbiB0aGUgRVhDRVBUIGNsYXVzZSwgYWxsIGl0cwogCSMgcGFydGl0aW9ucyBhcmUgZXhjbHVk ZWQgZnJvbSBwdWJsaWNhdGlvbiwgcmVnYXJkbGVzcyBvZiB0aGUKIAkjIHB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290IHNldHRpbmcuCiAJJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAJCSdw b3N0Z3JlcycsIHFxKAotCQlDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBBTEwg VEFCTEVTIEVYQ0VQVCAoVEFCTEUgcm9vdDEpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290ID0gJHB1YnZpYXJvb3QpOworCQkkcHVic3FsOwogCQlJTlNFUlQgSU5UTyByb290MSBWQUxV RVMgKDEpLCAoMTAxKTsKIAkpKTsKIAkkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKQEAgLTIyMyw2ICsyMjYsMTMxIEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgK IHRlc3RfZXhjZXB0X3Jvb3RfcGFydGl0aW9uKCdmYWxzZScpOwogdGVzdF9leGNlcHRfcm9vdF9w YXJ0aXRpb24oJ3RydWUnKTsKIAorIyBTYW1lIHZhbGlkYXRpb24gdXNpbmcgVEFCTEVTIElOIFND SEVNQSBpbnN0ZWFkIG9mIEZPUiBBTEwgVEFCTEVTLgorbXkgJHNjaGVtYV9wdWIgPQorICAiQ1JF QVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWMg RVhDRVBUIChUQUJMRSBwdWJsaWMucm9vdDEpIjsKK3Rlc3RfZXhjZXB0X3Jvb3RfcGFydGl0aW9u KCdmYWxzZScsICRzY2hlbWFfcHViKTsKK3Rlc3RfZXhjZXB0X3Jvb3RfcGFydGl0aW9uKCd0cnVl JywgJHNjaGVtYV9wdWIpOworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisjIEVYQ0VQVCB0ZXN0IGNhc2VzIGZvciBUQUJMRVMgSU4gU0NIRU1BCisjID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyMgQ3JlYXRlIGEg ZGVkaWNhdGVkIHNjaGVtYSB3aXRoIHR3byB0YWJsZXM6IG9uZSB0byBiZSBwdWJsaXNoZWQgYW5k IG9uZSB0byBiZQorIyBleGNsdWRlZC4gIEFsc28gY3JlYXRlIGluaGVyaXRlZCB0YWJsZXMgdG8g dmVyaWZ5IE9OTFkgc2VtYW50aWNzLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bv c3RncmVzJywgcXEoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBUQUJMRSBzY2gxLnRh Yl9wdWJsaXNoZWQgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDUpIEFTIGE7CisJQ1JFQVRF IFRBQkxFIHNjaDEudGFiX2V4Y2x1ZGVkIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSw1KSBB UyBhOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcmVudCAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBz Y2gxLmNoaWxkIChiIGludCkgSU5IRVJJVFMgKHNjaDEucGFyZW50KTsKKykpOworCiskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFNDSEVNQSBz Y2gxOworCUNSRUFURSBUQUJMRSBzY2gxLnRhYl9wdWJsaXNoZWQgKGEgaW50KTsKKwlDUkVBVEUg VEFCTEUgc2NoMS50YWJfZXhjbHVkZWQgKGEgaW50KTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJl bnQgKGEgaW50KTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5jaGlsZCAoYiBpbnQpIElOSEVSSVRTIChz Y2gxLnBhcmVudCk7CispKTsKKworIyBCYXNpYyB0ZXN0OiBpbml0aWFsIHN5bmMgcmVzcGVjdHMg RVhDRVBULgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFBVQkxJQ0FUSU9OIHNjaF9wdWIgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgc2NoMSBFWENFUFQgKFRB QkxFIHNjaDEudGFiX2V4Y2x1ZGVkKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzY2hfc3ViIENPTk5FQ1RJT04gJyRw dWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1YiIKKyk7Ciskbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICdzY2hfc3Vi Jyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlzaGVkIik7CitpcygkcmVz dWx0LCBxcSg1KSwKKwknVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IGluaXRpYWwgc3luYyBjb3Bp ZXMgaW5jbHVkZWQgdGFibGUnKTsKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfZXhjbHVk ZWQiKTsKK2lzKCRyZXN1bHQsIHFxKDApLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogaW5p dGlhbCBzeW5jIHNraXBzIGV4Y2x1ZGVkIHRhYmxlJyk7CisKKyMgRE1MOiBvbmx5IHRoZSBpbmNs dWRlZCB0YWJsZSBzaG91bGQgYmUgcmVwbGljYXRlZC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHNjaDEudGFiX3B1Ymxpc2hlZCBW QUxVRVMgKDYpOworCUlOU0VSVCBJTlRPIHNjaDEudGFiX2V4Y2x1ZGVkIFZBTFVFUyAoNik7Cisp KTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2NoX3N1YicpOworCiskcmVz dWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVD VCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX3B1Ymxpc2hlZCIpOworaXMoJHJlc3VsdCwgcXEoNiks CisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBETUwgb24gaW5jbHVkZWQgdGFibGUgaXMgcmVw bGljYXRlZCcpOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLnRhYl9leGNsdWRlZCIpOworaXMo JHJlc3VsdCwgcXEoMCksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBETUwgb24gZXhjbHVk ZWQgdGFibGUgaXMgbm90IHJlcGxpY2F0ZWQnKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3ViJyk7Ciskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiBzY2hfcHViJyk7 CisKKyMgSW5oZXJpdGVkIHRhYmxlczogZXhjbHVkaW5nIHRoZSBwYXJlbnQgKHdpdGhvdXQgT05M WSkgYWxzbyBleGNsdWRlcyB0aGUgY2hpbGQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gc2NoX3B1YiBGT1IgVEFCTEVTIElOIFND SEVNQSBzY2gxIEVYQ0VQVCAoVEFCTEUgc2NoMS5wYXJlbnQpIgorKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHNjaF9zdWIg Q09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBzY2hfcHViIgorKTsK KyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxp c2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiSU5TRVJUIElOVE8gc2NoMS5jaGlsZCBWQUxVRVMgKGdlbmVyYXRlX3NlcmllcygxLDUp LCBnZW5lcmF0ZV9zZXJpZXMoMSw1KSkiCispOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9j YXRjaHVwKCdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEuY2hpbGQiKTsKK2lz KCRyZXN1bHQsIHFxKDApLAorCSdUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogZXhjbHVkaW5nIHBh cmVudCAod2l0aG91dCBPTkxZKSBhbHNvIGV4Y2x1ZGVzIGNoaWxkJworKTsKKworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiBzY2hfc3Vi Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNB VElPTiBzY2hfcHViJyk7CisKKyMgVGVzdCB0aGF0IEVYQ0VQVCAoVEFCTEUgT05MWSBwYXJlbnQp IGV4Y2x1ZGVzIG9ubHkgdGhlIHBhcmVudCBpdHNlbGYsIG5vdCBpdHMKKyMgY2hpbGQuICBUcnVu Y2F0ZSBjaGlsZCBmaXJzdCBzbyByb3dzIGZyb20gdGhlIHByZXZpb3VzIHRlc3QgYXJlIG5vdCBj b3BpZWQgYnkKKyMgdGhlIGluaXRpYWwgdGFibGUgc3luYyBvZiB0aGUgbmV4dCBzdWJzY3JpcHRp b24uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnVFJVTkNBVEUgc2No MS5jaGlsZCcpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdUUlVO Q0FURSBzY2gxLmNoaWxkJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgUFVCTElDQVRJT04gc2NoX3B1YiBGT1IgVEFCTEVTIElOIFNDSEVNQSBzY2gx IEVYQ0VQVCAoVEFCTEUgT05MWSBzY2gxLnBhcmVudCkiCispOworJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gc2NoX3N1YiBDT05O RUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHNjaF9wdWIiCispOworJG5v ZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVy LCAnc2NoX3N1YicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJJTlNFUlQgSU5UTyBzY2gxLmNoaWxkIFZBTFVFUyAoZ2VuZXJhdGVfc2VyaWVzKDEsNSksIGdl bmVyYXRlX3NlcmllcygxLDUpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNo dXAoJ3NjaF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS5jaGlsZCIpOworaXMoJHJl c3VsdCwgcXEoNSksCisJJ1RBQkxFUyBJTiBTQ0hFTUEgRVhDRVBUOiBPTkxZIHBhcmVudCBpbiBF WENFUFQgZG9lcyBub3QgZXhjbHVkZSBjaGlsZCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBUSU9OIHNjaF9zdWInKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWIn KTsKKworIyBDbGVhbnVwIHNjaGVtYSB0YWJsZXMgYmVmb3JlIHRoZSBtdWx0aS1wdWJsaWNhdGlv biBzZWN0aW9uLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1Ag U0NIRU1BIHNjaDEgQ0FTQ0FERScpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICdEUk9QIFNDSEVNQSBzY2gxIENBU0NBREUnKTsKKwogIyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIyBUZXN0IHdoZW4gYSBzdWJzY3JpcHRpb24g aXMgc3Vic2NyaWJpbmcgdG8gbXVsdGlwbGUgcHVibGljYXRpb25zCiAjID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0yNTQsNiArMzgyLDcgQEAgJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoCiAJRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMjsKIAlUUlVO Q0FURSB0YWIxOwogKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg J0RST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWInKTsKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCBxcShUUlVOQ0FURSB0YWIxKSk7CiAKICMgT0sgd2hlbiBhIHRhYmxlIGlz IGV4Y2x1ZGVkIGJ5IHB1YjEgRVhDRVBUIGNsYXVzZSwgYnV0IGl0IGlzIGluY2x1ZGVkIGJ5IHB1 YjIKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000042dac406545ca0f4 Content-Type: application/octet-stream; name="v14-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Disposition: attachment; filename="v14-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqgijifq1 RnJvbSAzZjgyMzMxZWEyYmQ1OTYxNTI5M2RlMzlkODRiYjZmNDE1YTc4NmVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDE2IEp1biAyMDI2IDExOjAwOjI2ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTQgMi80XSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gQUREIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgdGhlIEVYQ0VQVCBjbGF1c2Ugc3VwcG9ydCB0byBhbGxvdyB0 YWJsZXMgdG8gYmUgZXhjbHVkZWQgd2hlbgphZGRpbmcgYSBzY2hlbWEgdG8gYSBwdWJsaWNhdGlv biB2aWEgQUxURVIgUFVCTElDQVRJT04gLi4uIEFERC4KClN5bnRheDoKICBBTFRFUiBQVUJMSUNB VElPTiBwdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcyBFWENFUFQgKFRBQkxFIHMudDEpOwoKU2lu Y2UgcGdfZHVtcCB1c2VzIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQsIHN1cHBvcnQgZm9yIGl0 IGlzCmluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jICAgICAgfCAgMTkgKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMgICAgfCAxMDcgKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgfCAgMzAgKysrKystCiBzcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICB8ICAyNCArKysrKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgfCAgMTcgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgfCAgMzIgKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsICAgICAgfCAgMjAgKysrLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM3X2V4Y2VwdC5wbCAgICAgfCAgMzIgKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAyNjcg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5jCmluZGV4IDQwODliNTA1Zjg5Li5kMWZmODgzOTAzNyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfcHVibGljYXRpb24uYwpAQCAtNjQ5LDE1ICs2NDksMTggQEAgcHVibGljYXRpb25fYWRkX3Jl bGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJICogaGVyZSwgYXMg Q3JlYXRlUHVibGljYXRpb24oKSBmdW5jdGlvbiBpbnZhbGlkYXRlcyBhbGwgcmVsYXRpb25zIGFz IHBhcnQKIAkgKiBvZiBkZWZpbmluZyBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLgogCSAq Ci0JICogRm9yIEFMVEVSIFBVQkxJQ0FUSU9OLCBpbnZhbGlkYXRpb24gaXMgbmVlZGVkIG9ubHkg d2hlbiBhZGRpbmcgYW4KLQkgKiBFWENFUFQgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhbHJlYWR5 IG1hcmtlZCBhcyBBTEwgVEFCTEVTLiBGb3IKLQkgKiBwdWJsaWNhdGlvbnMgdGhhdCB3ZXJlIG9y aWdpbmFsbHkgZW1wdHkgb3IgZGVmaW5lZCBhcyBBTEwgU0VRVUVOQ0VTIGFuZAotCSAqIGFyZSBi ZWluZyBjb252ZXJ0ZWQgdG8gQUxMIFRBQkxFUywgaW52YWxpZGF0aW9uIGlzIHNraXBwZWQgaGVy ZSwgYXMKLQkgKiBBbHRlclB1YmxpY2F0aW9uQWxsRmxhZ3MoKSBmdW5jdGlvbiBpbnZhbGlkYXRl cyBhbGwgcmVsYXRpb25zIHdoaWxlCi0JICogbWFya2luZyB0aGUgcHVibGljYXRpb24gYXMgQUxM IFRBQkxFUyBwdWJsaWNhdGlvbi4KKwkgKiBGb3IgQUxURVIgUFVCTElDQVRJT04sIGludmFsaWRh dGlvbiBpcyBuZWVkZWQgd2hlbiBhZGRpbmcgYW4gRVhDRVBUCisJICogdGFibGUgdG8gZWl0aGVy IGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24gKHB1Yi0+YWxsdGFibGVzIGlzIHRydWUpCisJ ICogb3IgYSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiAoaXNfc2NoZW1hX3B1Ymxp Y2F0aW9uIGlzIHRydWUpLgorCSAqIFRoZSBleGNlcHRpb246IHdoZW4gYSBwdWJsaWNhdGlvbiBp cyBiZWluZyBjb252ZXJ0ZWQgdG8gRk9SIEFMTCBUQUJMRVMKKwkgKiAocHViLT5hbGx0YWJsZXMg aXMgc3RpbGwgZmFsc2UgYXQgdGhpcyBwb2ludCksCisJICogQWx0ZXJQdWJsaWNhdGlvbkFsbEZs YWdzKCkgd2lsbCBwZXJmb3JtIGEgZnVsbCBpbnZhbGlkYXRpb24sIHNvIHdlIHNraXAKKwkgKiBp dCBoZXJlLgogCSAqLwotCWludmFsX2V4Y2VwdF90YWJsZSA9IChhbHRlcl9zdG10ICE9IE5VTEwp ICYmIHB1Yi0+YWxsdGFibGVzICYmCi0JCShhbHRlcl9zdG10LT5mb3JfYWxsX3RhYmxlcyAmJiBw cmktPmV4Y2VwdCk7CisJaW52YWxfZXhjZXB0X3RhYmxlID0gKGFsdGVyX3N0bXQgIT0gTlVMTCkg JiYgcHJpLT5leGNlcHQgJiYKKwkJKHB1Yi0+YWxsdGFibGVzCisJCSA/IGFsdGVyX3N0bXQtPmZv cl9hbGxfdGFibGVzCisJCSA6IGlzX3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpOwogCiAJaWYg KCFwcmktPmV4Y2VwdCB8fCBpbnZhbF9leGNlcHRfdGFibGUpCiAJewpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA4NWQ0YjlkZWVmZS4uMzRmYWFjNTcyMjggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC03MCw2ICs3MCwxMyBAQCBzdGF0 aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BUYWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29s IG1pc3Npbmdfb2spOwogc3RhdGljIHZvaWQgUHVibGljYXRpb25BZGRTY2hlbWFzKE9pZCBwdWJp ZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJCQkgIEFsdGVyUHVi bGljYXRpb25TdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMo T2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIG1pc3Npbmdfb2spOworc3RhdGljIHZvaWQg QWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJ CQkJCQlIZWFwVHVwbGUgdHVwLCBMaXN0ICpzY2hlbWFpZGxpc3QsCisJCQkJCQkJCQlMaXN0ICpl eGNlcHRfcHVidGFibGVzKTsKK3N0YXRpYyB2b2lkIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNl cHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJCQkJCQkJCSAgIEhlYXBU dXBsZSB0dXAsCisJCQkJCQkJCQkJCSAgIExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJCQkJ CQkJCSAgIExpc3QgKnNjaGVtYWlkbGlzdCk7CiBzdGF0aWMgY2hhciBkZWZHZXRHZW5lcmF0ZWRD b2xzT3B0aW9uKERlZkVsZW0gKmRlZik7CiAKIApAQCAtMTUwMCw3ICsxNTA3LDggQEAgQWx0ZXJQ dWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1 cCwKICAqLwogc3RhdGljIHZvaWQKIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LAotCQkJCQkJSGVhcFR1cGxlIHR1cCwgTGlzdCAqc2NoZW1haWRsaXN0 KQorCQkJCQkJSGVhcFR1cGxlIHR1cCwgTGlzdCAqc2NoZW1haWRsaXN0LAorCQkJCQkJTGlzdCAq ZXhjZXB0X3B1YnRhYmxlcykKIHsKIAlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9y bV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CiAKQEAgLTE1NzcsNiArMTU4NSw5NyBA QCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJ ICovCiAJCVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJmb3JtLT5vaWQsIHNjaGVtYWlkbGlzdCwg dHJ1ZSwgc3RtdCk7CiAJfQorCisJLyoKKwkgKiBJbmNyZW1lbnQgdGhlIGNvbW1hbmQgY291bnRl ciBzbyB0aGF0IGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIGluCisJICogR2V0RXhjbHVkZWRQdWJs aWNhdGlvblRhYmxlcygpIGNhbiBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQgc2NoZW1hCisJICogcm93 cyB3aGVuIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0LgorCSAq LworCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfQWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rpb24gPT0g QVBfU2V0T2JqZWN0cykKKwkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCUFsdGVyUHVi bGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMoc3RtdCwgdHVwLCBleGNlcHRfcHVidGFibGVzLCBz Y2hlbWFpZGxpc3QpOworfQorCisvKgorICogQWx0ZXIgdGhlIEVYQ0VQVCBsaXN0IG9mIGEgc2No ZW1hLWxldmVsIHB1YmxpY2F0aW9uLgorICoKKyAqIEFkZHMsIHJlbW92ZXMsIG9yIHJlcGxhY2Vz IGV4Y2VwdC10YWJsZSBlbnRyaWVzIGluIHBnX3B1YmxpY2F0aW9uX3JlbAorICogKHJvd3Mgd2l0 aCBwcmV4Y2VwdCA9IHRydWUpLiAgVGhlc2UgZW50cmllcyBzdXBwcmVzcyBwdWJsaWNhdGlvbiBv ZiB0aGUKKyAqIG5hbWVkIHRhYmxlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBjb3ZlcmVkIGJ5 IGEgRk9SIFRBQkxFUyBJTiBTQ0hFTUEKKyAqIGNsYXVzZS4KKyAqLworc3RhdGljIHZvaWQKK0Fs dGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0 bXQsCisJCQkJCQkJIEhlYXBUdXBsZSB0dXAsIExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJ CQkJIExpc3QgKnNjaGVtYWlkbGlzdCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0g PSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBw dWJmb3JtLT5vaWQ7CisKKwkvKgorCSAqIE5vdGhpbmcgdG8gZG8gaWYgbm8gRVhDRVBUIGVudHJp ZXMuCisJICovCisJaWYgKCFleGNlcHRfcHVidGFibGVzKQorCQlyZXR1cm47CisKKwkvKgorCSAq IFRoaXMgZnVuY3Rpb24gaGFuZGxlcyBFWENFUFQgZW50cmllcyBmb3Igc2NoZW1hLWxldmVsIHB1 YmxpY2F0aW9ucworCSAqIG9ubHkuICBGb3IgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb25zLCBF WENFUFQgZW50cmllcyBhcmUgYWxyZWFkeQorCSAqIHByb2Nlc3NlZCBieSBBbHRlclB1YmxpY2F0 aW9uVGFibGVzKCkuCisJICovCisJaWYgKHNjaGVtYWlkbGlzdCA9PSBOSUwgJiYgIWlzX3NjaGVt YV9wdWJsaWNhdGlvbihwdWJpZCkpCisJCXJldHVybjsKKworCS8qCisJICogRHJvcHBpbmcgYSBz Y2hlbWEgZnJvbSBhIHB1YmxpY2F0aW9uIHJlbW92ZXMgYWxsIGl0cyBFWENFUFQgZW50cmllcyB2 aWEKKwkgKiBjYXNjYWRlLiBUaGUgY29uY2VwdCBvZiAiZHJvcCBhbGwgc2NoZW1hIHRhYmxlcyBm cm9tIHRoZSBwdWJsaWNhdGlvbgorCSAqIEVYQ0VQVCB0aGVzZSBvbmVzIiBpcyBub3Qgc3VwcG9y dGVkLgorCSAqLworCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfRHJvcE9iamVjdHMpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCSBlcnJtc2coIkVYQ0VQVCBjbGF1c2UgaXMgbm90IHN1cHBvcnRlZCB3aXRoIERST1AgaW4g QUxURVIgUFVCTElDQVRJT04iKSkpOworCisJLyoKKwkgKiBYWFggRVhDRVBUIHdpdGggU0VUIGlz IG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQuICBXb3JrYXJvdW5kOiBEUk9QIGFuZAorCSAqIHJl LUFERCB0aGUgc2NoZW1hIHdpdGggdGhlIGRlc2lyZWQgRVhDRVBUIGxpc3QuCisJICovCisJaWYg KHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRPYmplY3RzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJFWENF UFQgY2xhdXNlIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBTRVQgaW4gQUxURVIgUFVCTElDQVRJT04i KSwKKwkJCQkgZXJyaGludCgiRHJvcCBhbmQgcmUtYWRkIHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVz aXJlZCBFWENFUFQgbGlzdC4iKSkpOworCisJaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmpl Y3RzKQorCXsKKwkJTGlzdAkgICAqcmVsczsKKwkJTGlzdAkgICAqZXhwbGljaXRyZWxpZHM7CisK KwkJcmVscyA9IE9wZW5UYWJsZUxpc3QoZXhjZXB0X3B1YnRhYmxlcyk7CisKKwkJZXhwbGljaXRy ZWxpZHMgPSBHZXRJbmNsdWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAorCQkJCQkJCQkJ CQkJCQkgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKworCQkvKgorCQkgKiBWYWxpZGF0ZSB0aGF0 IGVhY2ggZXhjbHVkZWQgdGFibGUgaXMgbm90IGFsc28gaW4gdGhlIGV4cGxpY2l0IHRhYmxlCisJ CSAqIGxpc3QgKHdoaWNoIHdvdWxkIGJlIGNvbnRyYWRpY3RvcnkpLgorCQkgKi8KKwkJZm9yZWFj aF9wdHIoUHVibGljYXRpb25SZWxJbmZvLCBwcmksIHJlbHMpCisJCXsKKwkJCU9pZAkJCXJlbGlk ID0gUmVsYXRpb25HZXRSZWxpZChwcmktPnJlbGF0aW9uKTsKKworCQkJaWYgKGxpc3RfbWVtYmVy X29pZChleHBsaWNpdHJlbGlkcywgcmVsaWQpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQll cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJybXNnKCJ0 YWJsZSBcIiVzXCIgY2Fubm90IGFwcGVhciBpbiBib3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUg RVhDRVBUIGNsYXVzZSIsCisJCQkJCQkJICAgUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5h bWUocHJpLT5yZWxhdGlvbikpKTsKKwkJfQorCisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ymlk LCByZWxzLCBmYWxzZSwgc3RtdCk7CisKKwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJfQogfQog CiAvKgpAQCAtMTc4NiwxMCArMTg4NSwxMiBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCWVycm1zZygicHVibGlj YXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsK IAotCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsIGV4Y2VwdF9wdWJ0YWJsZXMp OworCQlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNh dChyZWxhdGlvbnMsIGV4Y2VwdF9wdWJ0YWJsZXMpOworCiAJCUFsdGVyUHVibGljYXRpb25UYWJs ZXMoc3RtdCwgdHVwLCByZWxhdGlvbnMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCSAg IHNjaGVtYWlkbGlzdCAhPSBOSUwpOwotCQlBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0 dXAsIHNjaGVtYWlkbGlzdCk7CisJCUFsdGVyUHVibGljYXRpb25TY2hlbWFzKHN0bXQsIHR1cCwg c2NoZW1haWRsaXN0LCBleGNlcHRfcHVidGFibGVzKTsKIAkJQWx0ZXJQdWJsaWNhdGlvbkFsbEZs YWdzKHN0bXQsIHJlbCwgdHVwKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGEwZjdmOGUyMTY4Li44 NWFiM2IwMDg3NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01MDE5LDYgKzUwMTksNyBAQCBkdW1wUHVibGlj YXRpb25OYW1lc3BhY2UoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25TY2hlbWFJbmZv ICpwdWJzaW5mbykKIAlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8gPSBwdWJzaW5mby0+cHVibGlj YXRpb247CiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAqdGFnOworCWJvb2wJCWhhc19l eGNlcHQgPSBmYWxzZTsKIAogCS8qIERvIG5vdGhpbmcgaWYgbm90IGR1bXBpbmcgc2NoZW1hICov CiAJaWYgKCFkb3B0LT5kdW1wU2NoZW1hKQpAQCAtNTAyOSw3ICs1MDMwLDM0IEBAIGR1bXBQdWJs aWNhdGlvbk5hbWVzcGFjZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblNjaGVtYUlu Zm8gKnB1YnNpbmZvKQogCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKIAogCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiQUxURVIgUFVCTElDQVRJT04gJXMgIiwgZm10SWQocHViaW5mby0+ ZG9iai5uYW1lKSk7Ci0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJBREQgVEFCTEVTIElOIFND SEVNQSAlcztcbiIsIGZtdElkKHNjaGVtYWluZm8tPmRvYmoubmFtZSkpOworCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiQUREIFRBQkxFUyBJTiBTQ0hFTUEgJXMiLCBmbXRJZChzY2hlbWFpbmZv LT5kb2JqLm5hbWUpKTsKKworCS8qCisJICogQXBwZW5kIEVYQ0VQVCBjbGF1c2UgZm9yIGFueSB0 YWJsZXMgdGhhdCBiZWxvbmcgdG8gdGhpcyBzY2hlbWEKKwkgKiBhbmQgYXJlIGV4Y2x1ZGVkIGZy b20gdGhlIHB1YmxpY2F0aW9uLgorCSAqLworCWZvciAoU2ltcGxlUHRyTGlzdENlbGwgKmNlbGwg PSBwdWJpbmZvLT5leGNlcHRfdGFibGVzLmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQor CXsKKwkJVGFibGVJbmZvICAqdGJpbmZvID0gKFRhYmxlSW5mbyAqKSBjZWxsLT5wdHI7CisKKwkJ aWYgKHN0cmNtcCh0YmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIHNjaGVtYWluZm8t PmRvYmoubmFtZSkgPT0gMCkKKwkJeworCQkJaWYgKCFoYXNfZXhjZXB0KQorCQkJeworCQkJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCAoIik7CisJCQkJaGFzX2V4Y2VwdCA9 IHRydWU7CisJCQl9CisJCQllbHNlCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIs ICIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIlRBQkxFIE9OTFkgJXMiLCBmbXRJ ZCh0YmluZm8tPmRvYmoubmFtZSkpOworCQl9CisJfQorCisJaWYgKGhhc19leGNlcHQpCisJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiKSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIo cXVlcnksICI7XG4iKTsKIAogCS8qCiAJICogVGhlcmUgaXMgbm8gcG9pbnQgaW4gY3JlYXRpbmcg ZHJvcCBxdWVyeSBhcyB0aGUgZHJvcCBpcyBkb25lIGJ5IHNjaGVtYQpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbAppbmRleCA5MjU4OTQ4YjU4My4uZDE4YjNiMGQ3YjkgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCkBAIC0zMjgzLDYgKzMyODMsMzAgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+ IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFU RSBQVUJMSUNBVElPTiBwdWIxMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0 ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjExIEZPUiBUQUJMRVMgSU4gU0NI RU1BIGR1bXBfdGVzdCBFWENFUFQgKFRBQkxFIHRlc3RfdGFibGUpOycsCisJCXJlZ2V4cCA9PiBx ci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWIxMSBXSVRIIChwdWJsaXNoID0gJ2luc2Vy dCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS4qPworCQkJXFFBTFRFUiBQVUJM SUNBVElPTiBwdWIxMSBBREQgVEFCTEVTIElOIFNDSEVNQSBkdW1wX3Rlc3QgRVhDRVBUIChUQUJM RSBPTkxZIHRlc3RfdGFibGUpO1xFCisJCQkveG1zLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NSRUFURSBQVUJMSUNBVElPTiBw dWIxMicgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAn Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCBF WENFUFQgKFRBQkxFIHRlc3RfdGFibGUsIGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSk7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyIFdJVEggKHB1 Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJLio/CisJ CQlcUUFMVEVSIFBVQkxJQ0FUSU9OIHB1YjEyIEFERCBUQUJMRVMgSU4gU0NIRU1BIGR1bXBfdGVz dCBFWENFUFQgKFRBQkxFIE9OTFkgdGVzdF90YWJsZSwgVEFCTEUgT05MWSB0ZXN0X3NlY29uZF90 YWJsZSk7XEUKKwkJCS94bXMsCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3Rf ZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJ CWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElP TiBzdWIxCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNTNiYjdjODY3OWIuLmEyOTA5MDJkNjFl IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzczLDYgKzIzNzMsMjMgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUllfUExVUyhR dWVyeV9mb3JfbGlzdF9vZl9zY2hlbWFzCiAJCQkJCQkJCSAiIEFORCBuc3BuYW1lIE5PVCBMSUtF IEUncGdcXFxcXyUlJyIsCiAJCQkJCQkJCSAiQ1VSUkVOVF9TQ0hFTUEiKTsKKwkvKiBBZnRlciBh IHNpbmdsZSBzY2hlbWEgbmFtZSBpbiBBREQgY29udGV4dCwgb2ZmZXIgRVhDRVBUICggVEFCTEUg Ki8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi QUREIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSkgJiYKKwkJCSAhZW5kc193 aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCAoIFRBQkxFIik7CisJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIs ICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnksICJFWENFUFQiKSkKKwkJQ09NUExF VEVfV0lUSCgiKCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FU SU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNoQW55 LCAiRVhDRVBUIiwgIigiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEUiKTsKKwllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIlRBQkxFUyIs ICJJTiIsICJTQ0hFTUEiLCAiQ1VSUkVOVF9TQ0hFTUEiLCAiRVhDRVBUIiwgIigiLCAiVEFCTEUi KSkKKwkJQ09NUExFVEVfV0lUSF9RVUVSWV9WRVJCQVRJTShRdWVyeV9mb3JfbGlzdF9vZl90YWJs ZXNfaW5fY3VycmVudF9zY2hlbWEpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIsIE1hdGNo QW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiKSkKKwl7CisJCXNldF9jb21wbGV0aW9uX3JlZmVy ZW5jZShwcmV2NF93ZCk7CisJCUNPTVBMRVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9y X2xpc3Rfb2ZfdGFibGVzX2luX3NjaGVtYSk7CisJfQorCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVN QSIsIE1hdGNoQW55LCAiRVhDRVBUIiwgIigiLCAiVEFCTEUiLCBNYXRjaEFueU4pICYmICFlbmRz X3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiKSIpOwogCS8qIEFMVEVSIFBV QkxJQ0FUSU9OIDxuYW1lPiBTRVQgKCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBV QkxJQ0FUSU9OIiwgTWF0Y2hBbnksIE1hdGNoQW55TiwgIlNFVCIsICIoIikpCiAJCUNPTVBMRVRF X1dJVEgoInB1Ymxpc2giLCAicHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyIsICJwdWJsaXNoX3Zp YV9wYXJ0aXRpb25fcm9vdCIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dAppbmRleCAyY2YzZmE0MDI1My4uNzM5NGQ2MGI1ZjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC01OTEsMTIgKzU5MSw0MiBAQCBDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9leGNlcHRfbm9rdwogRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3Ig bmVhciAidGVzdHB1Yl9ub3BrIgogTElORSAyOiAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGspOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCB0ZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04KKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0OworLS0gZmFpbDogbm9uLWV4aXN0aW5nIHRhYmxl IGluIEVYQ0VQVCBjbGF1c2UKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3Qubm9u ZXhpc3RlbnRfdGFibGUpOworRVJST1I6ICByZWxhdGlvbiAicHViX3Rlc3Qubm9uZXhpc3RlbnRf dGFibGUiIGRvZXMgbm90IGV4aXN0CistLSBmYWlsOiBFWENFUFQgdGFibGUgYmVsb25ncyB0byBh IGRpZmZlcmVudCBzY2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRlc3Rw dWJfdGJsMSk7CitFUlJPUjogIHRhYmxlICJwdWJsaWMudGVzdHB1Yl90YmwxIiBpbiBFWENFUFQg Y2xhdXNlIGRvZXMgbm90IGJlbG9uZyB0byBzY2hlbWEgInB1Yl90ZXN0IgorTElORSAxOiAuLi54 Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1YmxpYy50 ZXMuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCistLSBmYWlsOiBUQUJMRSBrZXl3b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUg Zmlyc3QgZW50cnkgaW4gRVhDRVBUIGNsYXVzZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9h bHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUICh0ZXN0cHVi X25vcGspOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAidGVzdHB1Yl9ub3BrIgor TElORSAxOiAuLi5sdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENF UFQgKHRlc3RwdWJfbm8uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCistLSBBREQ6IHF1YWxpZmllZCBhbmQgdW5xdWFsaWZp ZWQgbmFtZXM7IHVucXVhbGlmaWVkIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdpdGggdGhlIHNj aGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJ TiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwg dGVzdHB1Yl90YmxfczIpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAgICB8IAorVGFibGVzIGZyb20gc2No ZW1hczoKKyAgICAicHViX3Rlc3QiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0 cHViX3RibF9zMSIKKyAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCisKIC0tIENsZWFudXAK IFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJf dGJsX3MxLCBwdWJfdGVzdC50ZXN0cHViX3RibF9zMjsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVz dHB1Yl9wYXJ0ZWRfcyBDQVNDQURFOwogRFJPUCBUQUJMRSB0ZXN0cHViX25vcGssIHRlc3RwdWJf dGJsX3MxOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYV9leGNlcHQxLCB0ZXN0cHVi X3NjaGVtYV9leGNlcHQyLCB0ZXN0cHViX3NjaGVtYV9leGNlcHRfbXVsdGk7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRl c3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aSwgdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC0tIFRlc3RzIGZvciBwdWJs aWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IGE5NjUy N2FkZjk0Li5lNDk3ZDM0MmFiZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApA QCAtMjkwLDEyICsyOTAsMzAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X3Bh cnRpdGlvbgogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0X25va3cKICAgICBGT1Ig VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlc3RwdWJfbm9wayk7CiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIHRlc3Rz IGZvciBBTFRFUiBQVUJMSUNBVElPTgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQ7CisK Ky0tIGZhaWw6IG5vbi1leGlzdGluZyB0YWJsZSBpbiBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKKworLS0gZmFpbDog RVhDRVBUIHRhYmxlIGJlbG9uZ3MgdG8gYSBkaWZmZXJlbnQgc2NoZW1hCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cHViX3RibDEpOworCistLSBmYWlsOiBUQUJMRSBrZXl3 b3JkIGlzIHJlcXVpcmVkIGZvciB0aGUgZmlyc3QgZW50cnkgaW4gRVhDRVBUIGNsYXVzZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3QgRVhDRVBUICh0ZXN0cHViX25vcGspOworCistLSBBREQ6IHF1YWxpZmllZCBhbmQg dW5xdWFsaWZpZWQgbmFtZXM7IHVucXVhbGlmaWVkIGlzIGltcGxpY2l0bHkgcXVhbGlmaWVkIHdp dGggdGhlIHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQURE IFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHVi X3RibF9zMSwgdGVzdHB1Yl90YmxfczIpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwog LS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rl c3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwogRFJPUCBUQUJMRSBw dWJfdGVzdC50ZXN0cHViX3BhcnRlZF9zIENBU0NBREU7CiBEUk9QIFRBQkxFIHRlc3RwdWJfbm9w aywgdGVzdHB1Yl90YmxfczE7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hX2V4Y2Vw dDEsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdDIsIHRlc3RwdWJfc2NoZW1hX2V4Y2VwdF9tdWx0aTsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFfZXhjZXB0MSwgdGVzdHB1Yl9zY2hlbWFf ZXhjZXB0MiwgdGVzdHB1Yl9zY2hlbWFfZXhjZXB0X211bHRpLCB0ZXN0cHViX2FsdGVyX2V4Y2Vw dDsKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBU ZXN0cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM3X2V4Y2VwdC5wbAppbmRleCAxOGM3YjJjMWZjYS4uMGJhNmQ2ZjhiYjIgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwKKysrIGIvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbApAQCAtMzQ3LDYgKzM0NywzOCBAQCBpcygkcmVzdWx0 LCBxcSg1KSwKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBT VUJTQ1JJUFRJT04gc2NoX3N1YicpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgJ0RST1AgUFVCTElDQVRJT04gc2NoX3B1YicpOwogCisjID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEFMVEVSIFBVQkxJQ0FUSU9OIEVYQ0VQVCBm b3IgVEFCTEVTIElOIFNDSEVNQQorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorCisjIFRydW5jYXRlIHN1YnNjcmliZXIgdGFibGVzIHRvIHJlbW92ZSBkYXRh IGFjY3VtdWxhdGVkIGZyb20gcHJldmlvdXMgdGVzdHMuCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwknVFJVTkNBVEUgc2NoMS50YWJfcHVibGlzaGVkLCBzY2gxLnRh Yl9leGNsdWRlZCwgc2NoMS5wYXJlbnQsIHNjaDEuY2hpbGQnKTsKKworIyBBREQ6IGFkZCBhIHNj aGVtYSB3aXRoIGFuIGV4Y2VwdGVkIHRhYmxlOyB2ZXJpZnkgdGhlIGV4Y2VwdCBlbnRyeSB0YWtl cyBlZmZlY3QuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRF IFBVQkxJQ0FUSU9OIHNjaF9wdWIiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHNjaF9wdWIgQUREIFRBQkxFUyBJTiBTQ0hFTUEg c2NoMSBFWENFUFQgKFRBQkxFIHNjaDEudGFiX2V4Y2x1ZGVkKSIKKyk7Ciskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzY2hfc3Vi IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gc2NoX3B1YiIKKyk7 Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJs aXNoZXIsICdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWJfcHVibGlz aGVkIik7CitpcygkcmVzdWx0LCBxcSg2KSwKKwknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NI RU1BIEVYQ0VQVDogaW5jbHVkZWQgdGFibGUgc3luY2VkJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9N IHNjaDEudGFiX2V4Y2x1ZGVkIik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknQUxURVIgLi4uIEFE RCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogZXhjbHVkZWQgdGFibGUgbm90IHN5bmNlZCcpOwor Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NSSVBU SU9OIHNjaF9zdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdE Uk9QIFBVQkxJQ0FUSU9OIHNjaF9wdWInKTsKKwogIyBDbGVhbnVwIHNjaGVtYSB0YWJsZXMgYmVm b3JlIHRoZSBtdWx0aS1wdWJsaWNhdGlvbiBzZWN0aW9uLgogJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU0NIRU1BIHNjaDEgQ0FTQ0FERScpOwogJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNDSEVNQSBzY2gxIENBU0NBREUn KTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --00000000000042dac406545ca0f4 Content-Type: application/octet-stream; name="v14-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Disposition: attachment; filename="v14-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABL.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqgijkav2 RnJvbSBmNGI2ZDFlMzdjODZjYjJjZDUxYjJlMmM1NzMxNzY0YTY0ZTA1YThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDE2IEp1biAyMDI2IDExOjAxOjM5ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTQgMy80XSBBZGQgRVhDRVBUIHN1cHBvcnQgdG8gQUxURVIgUFVCTElDQVRJT04gU0VUIFRBQkxF UyBJTgogU0NIRU1BCgpFeHRlbmQgQWx0ZXJQdWJsaWNhdGlvbkV4Y2VwdFRhYmxlcygpIHdpdGgg dGhlIEFQX1NldE9iamVjdHMgY2FzZSwKd2hpY2ggcmVkZWZpbmVzIHRoZSBwdWJsaWNhdGlvbiBh bmQgcmVwbGFjZXMgdGhlIGVudGlyZSBFWENFUFQgbGlzdC4KClN5bnRheDoKQUxURVIgUFVCTElD QVRJT04gcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHMgRVhDRVBUIChUQUJMRSB0MSk7CgpUaGlz IHBhdGNoIGFsc28gY2xlYW5zIHVwIEVYQ0VQVCBlbnRyaWVzIHdoZW4gYSBzY2hlbWEgaXMgZHJv cHBlZApmcm9tIHRoZSBwdWJsaWNhdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuYyAgICAgIHwgMTM1ICsrKysrKysrKysrKysrKysrLS0tCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIHwgIDEwICstCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgIHwgIDE3ICsrKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICB8ICA4NiArKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgIHwgIDM4ICsrKysrKwogc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCAgICAgICB8ICA4NSArKysrKysrKysrKysK IDYgZmlsZXMgY2hhbmdlZCwgMzUwIGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggMzRmYWFjNTcyMjguLjZjN2Yx NTBjZDczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMTU4OCw4 ICsxNTg4LDggQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsCiAKIAkvKgogCSAqIEluY3JlbWVudCB0aGUgY29tbWFuZCBjb3VudGVyIHNvIHRoYXQg aXNfc2NoZW1hX3B1YmxpY2F0aW9uKCkgaW4KLQkgKiBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFi bGVzKCkgY2FuIHNlZSB0aGUganVzdC1pbnNlcnRlZCBzY2hlbWEKLQkgKiByb3dzIHdoZW4gQWx0 ZXJQdWJsaWNhdGlvblNjaGVtYUV4Y2VwdFRhYmxlcyBydW5zIG5leHQuCisJICogR2V0RXhjbHVk ZWRQdWJsaWNhdGlvblRhYmxlcygpIGNhbiBzZWUgdGhlIGp1c3QtaW5zZXJ0ZWQgc2NoZW1hIHJv d3MKKwkgKiB3aGVuIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRUYWJsZXMgcnVucyBuZXh0 LgogCSAqLwogCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfQWRkT2JqZWN0cyB8fCBzdG10LT5hY3Rp b24gPT0gQVBfU2V0T2JqZWN0cykKIAkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKQEAgLTE2 MDcsMTYgKzE2MDcsMTggQEAgQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsCiAgKi8KIHN0YXRpYyB2b2lkCiBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhj ZXB0VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAotCQkJCQkJCSBIZWFwVHVwbGUg dHVwLCBMaXN0ICpleGNlcHRfcHVidGFibGVzLAotCQkJCQkJCSBMaXN0ICpzY2hlbWFpZGxpc3Qp CisJCQkJCQkJCSAgIEhlYXBUdXBsZSB0dXAsIExpc3QgKmV4Y2VwdF9wdWJ0YWJsZXMsCisJCQkJ CQkJCSAgIExpc3QgKnNjaGVtYWlkbGlzdCkKIHsKIAlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZv cm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CiAJT2lkCQkJcHViaWQg PSBwdWJmb3JtLT5vaWQ7CiAKIAkvKgotCSAqIE5vdGhpbmcgdG8gZG8gaWYgbm8gRVhDRVBUIGVu dHJpZXMuCisJICogTm90aGluZyB0byBkbyBpZiB0aGVyZSBhcmUgbm8gRVhDRVBUIGVudHJpZXMs IHVubGVzcyBoYW5kbGluZyB0aGUgU0VUCisJICogY29tbWFuZCwgYmVjYXVzZSBpZiB0aGUgdXNl ciBoYXMgcmVtb3ZlZCBhbGwgZXhjZXB0aW9ucyB3ZSBuZWVkIHRvIGRyb3AKKwkgKiBhbnkgZXhp c3Rpbmcgb25lcy4KIAkgKi8KLQlpZiAoIWV4Y2VwdF9wdWJ0YWJsZXMpCisJaWYgKCFleGNlcHRf cHVidGFibGVzICYmIHN0bXQtPmFjdGlvbiAhPSBBUF9TZXRPYmplY3RzKQogCQlyZXR1cm47CiAK IAkvKgpAQCAtMTYzNywxNiArMTYzOSw2IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFFeGNlcHRU YWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coIkVYQ0VQVCBjbGF1c2UgaXMgbm90 IHN1cHBvcnRlZCB3aXRoIERST1AgaW4gQUxURVIgUFVCTElDQVRJT04iKSkpOwogCi0JLyoKLQkg KiBYWFggRVhDRVBUIHdpdGggU0VUIGlzIG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQuICBXb3Jr YXJvdW5kOiBEUk9QIGFuZAotCSAqIHJlLUFERCB0aGUgc2NoZW1hIHdpdGggdGhlIGRlc2lyZWQg RVhDRVBUIGxpc3QuCi0JICovCi0JaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRPYmplY3RzKQot CQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKLQkJCQkgZXJybXNnKCJFWENFUFQgY2xhdXNlIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBT RVQgaW4gQUxURVIgUFVCTElDQVRJT04iKSwKLQkJCQkgZXJyaGludCgiRHJvcCBhbmQgcmUtYWRk IHRoZSBzY2hlbWEgd2l0aCB0aGUgZGVzaXJlZCBFWENFUFQgbGlzdC4iKSkpOwotCiAJaWYgKHN0 bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzKQogCXsKIAkJTGlzdAkgICAqcmVsczsKQEAgLTE2 NzQsNiArMTY2Niw4NCBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hRXhjZXB0VGFibGVzKEFsdGVy UHVibGljYXRpb25TdG10ICpzdG10LAogCiAJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1YmlkLCBy ZWxzLCBmYWxzZSwgc3RtdCk7CiAKKwkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CisJfQorCWVsc2UJ CQkJCQkvKiBBUF9TZXRPYmplY3RzICovCisJeworCQlMaXN0CSAgICpvbGRleGNlcHRyZWxpZHMg PSBOSUw7CisJCUxpc3QJICAgKm5ld2V4Y2VwdHJlbGlkcyA9IE5JTDsKKwkJTGlzdAkgICAqZGVs cmVsaWRzID0gTklMOworCQlMaXN0CSAgICpyZWxzOworCQlMaXN0CSAgICpleHBsaWNpdHJlbGlk czsKKworCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNlcHRfcHVidGFibGVzKTsKKworCQkvKiBD b2xsZWN0IE9JRHMgb2YgdGhlIGRlc2lyZWQgbmV3IEVYQ0VQVCBsaXN0LiAqLworCQlmb3JlYWNo X3B0cihQdWJsaWNhdGlvblJlbEluZm8sIHByaSwgcmVscykKKwkJCW5ld2V4Y2VwdHJlbGlkcyA9 IGxhcHBlbmRfb2lkKG5ld2V4Y2VwdHJlbGlkcywKKwkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVs aWQocHJpLT5yZWxhdGlvbikpOworCisJCWV4cGxpY2l0cmVsaWRzID0gR2V0SW5jbHVkZWRQdWJs aWNhdGlvblJlbGF0aW9ucyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCk7CisKKwkJLyoKKwkJICogVmFsaWRhdGUgdGhhdCBlYWNoIGV4Y2x1ZGVkIHRhYmxlIGlz IG5vdCBhbHNvIGluIHRoZSBleHBsaWNpdCB0YWJsZQorCQkgKiBsaXN0ICh3aGljaCB3b3VsZCBi ZSBjb250cmFkaWN0b3J5KS4KKwkJICovCisJCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uUmVsSW5m bywgcHJpLCByZWxzKQorCQl7CisJCQlPaWQJCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocHJp LT5yZWxhdGlvbik7CisKKwkJCWlmIChsaXN0X21lbWJlcl9vaWQoZXhwbGljaXRyZWxpZHMsIHJl bGlkKSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURf UEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCWVycm1zZygidGFibGUgXCIlc1wiIGNhbm5vdCBhcHBl YXIgaW4gYm90aCB0aGUgdGFibGUgbGlzdCBhbmQgdGhlIEVYQ0VQVCBjbGF1c2UiLAorCQkJCQkJ CSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKHByaS0+cmVsYXRpb24pKSk7CisJ CX0KKworCQkvKgorCQkgKiBHZXQgdGhlIGN1cnJlbnQgc2V0IG9mIEVYQ0VQVCBlbnRyaWVzLiAg T25seSBGT1IgQUxMIFRBQkxFUyBhbmQKKwkJICogc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9ucyBj YW4gaGF2ZSBFWENFUFQgZW50cmllczsgZm9yIGFueSBvdGhlcgorCQkgKiBwdWJsaWNhdGlvbiB0 eXBlIG9sZGV4Y2VwdHJlbGlkcyBzdGF5cyBOSUwuCisJCSAqCisJCSAqIE5vdGU6IHdlIGNoZWNr IGlzX3NjaGVtYV9wdWJsaWNhdGlvbigpIGFnYWluc3QgdGhlIGN1cnJlbnQgY2F0YWxvZworCQkg KiBzdGF0ZSAoYmVmb3JlIEFsdGVyUHVibGljYXRpb25TY2hlbWFzIGhhcyBydW4pLCBzbyBpZiB0 aGUgY2FsbGVyIGlzCisJCSAqIGRvaW5nIFNFVCBUQUJMRSB0MSB0byBjb252ZXJ0IGEgc2NoZW1h IHB1YmxpY2F0aW9uIGludG8gYSBwbGFpbgorCQkgKiB0YWJsZSBwdWJsaWNhdGlvbiwgaXNfc2No ZW1hX3B1YmxpY2F0aW9uKCkgc3RpbGwgcmV0dXJucyB0cnVlIGhlcmUuCisJCSAqIFRoYXQgaXMg aW50ZW50aW9uYWw6IGl0IGxldHMgdXMgZGlzY292ZXIgYW5kIGNsZWFuIHVwIGFueSBzdGFsZQor CQkgKiBFWENFUFQgZW50cmllcyB0aGF0IGJlbG9uZyB0byB0aGUgb2xkIHNjaGVtYSBkZWZpbml0 aW9uLgorCQkgKi8KKwkJaWYgKEdldFB1YmxpY2F0aW9uKHB1YmlkKS0+YWxsdGFibGVzIHx8IGlz X3NjaGVtYV9wdWJsaWNhdGlvbihwdWJpZCkpCisJCQlvbGRleGNlcHRyZWxpZHMgPSBHZXRFeGNs dWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLAorCQkJCQkJCQkJCQkJCQkgICBQVUJMSUNBVElP Tl9QQVJUX1JPT1QpOworCisJCS8qIEJ1aWxkIGEgbGlzdCBvZiBvbGQgRVhDRVBUIGVudHJpZXMg bm90IHByZXNlbnQgaW4gdGhlIG5ldyBsaXN0LiAqLworCQlmb3JlYWNoX29pZChvbGRyZWxpZCwg b2xkZXhjZXB0cmVsaWRzKQorCQl7CisJCQlpZiAoIWxpc3RfbWVtYmVyX29pZChuZXdleGNlcHRy ZWxpZHMsIG9sZHJlbGlkKSkKKwkJCQlkZWxyZWxpZHMgPSBsYXBwZW5kX29pZChkZWxyZWxpZHMs IG9sZHJlbGlkKTsKKwkJfQorCisJCS8qIERyb3Agb2xkIEVYQ0VQVCBlbnRyaWVzIG5vdCBwcmVz ZW50IGluIHRoZSBuZXcgbGlzdC4gKi8KKwkJZm9yZWFjaF9vaWQocmVsaWQsIGRlbHJlbGlkcykK KwkJeworCQkJT2lkCQkJcHJvaWQ7CisJCQlPYmplY3RBZGRyZXNzIG9iajsKKworCQkJcHJvaWQg PSBHZXRTeXNDYWNoZU9pZDIoUFVCTElDQVRJT05SRUxNQVAsCisJCQkJCQkJCQlBbnVtX3BnX3B1 YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKSwKKwkJ CQkJCQkJCU9iamVjdElkR2V0RGF0dW0ocHViaWQpKTsKKwkJCWlmIChPaWRJc1ZhbGlkKHByb2lk KSkKKwkJCXsKKwkJCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHVibGljYXRpb25SZWxSZWxhdGlv bklkLCBwcm9pZCk7CisJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmosIERST1BfQ0FTQ0FERSwgMCk7 CisJCQl9CisJCX0KKworCQkvKiBBZGQgbmV3IEVYQ0VQVCBlbnRyaWVzLCBza2lwcGluZyBhbnkg YWxyZWFkeSBwcmVzZW50LiAqLworCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJpZCwgcmVscywg dHJ1ZSwgc3RtdCk7CisKIAkJQ2xvc2VUYWJsZUxpc3QocmVscyk7CiAJfQogfQpAQCAtMjM3Miw2 ICsyNDQyLDcgQEAgUHVibGljYXRpb25Ecm9wU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVt YXMsIGJvb2wgbWlzc2luZ19vaykKIAlmb3JlYWNoKGxjLCBzY2hlbWFzKQogCXsKIAkJT2lkCQkJ c2NoZW1haWQgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJTGlzdAkgICAqZXhjZXB0X3JlbGlkczsKIAog CQlwc2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OTkFNRVNQQUNFTUFQLAogCQkJCQkJ CSAgIEFudW1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNlX29pZCwKQEAgLTIzODgsOCArMjQ1OSw0 MCBAQCBQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywgYm9v bCBtaXNzaW5nX29rKQogCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShzY2hlbWFpZCkpKSk7CiAJ CX0KIAorCQkvKgorCQkgKiBDb2xsZWN0IEVYQ0VQVCBlbnRyaWVzIGZvciB0YWJsZXMgYmVsb25n aW5nIHRvIHRoaXMgc2NoZW1hIGJlZm9yZQorCQkgKiByZW1vdmluZyB0aGUgc2NoZW1hIGVudHJ5 LgorCQkgKi8KKwkJZXhjZXB0X3JlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMo cHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisKIAkJT2JqZWN0QWRkcmVzc1NldChvYmos IFB1YmxpY2F0aW9uTmFtZXNwYWNlUmVsYXRpb25JZCwgcHNpZCk7CiAJCXBlcmZvcm1EZWxldGlv bigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCisJCS8qCisJCSAqIERyb3AgYW55IHByZXhjZXB0 IHJvd3MgZm9yIHRhYmxlcyBiZWxvbmdpbmcgdG8gdGhpcyBzY2hlbWEuIFRoZXNlCisJCSAqIHJv d3MgaGF2ZSBubyBwZ19kZXBlbmQgZW50cnkgcG9pbnRpbmcgYXQgdGhlCisJCSAqIHBnX3B1Ymxp Y2F0aW9uX25hbWVzcGFjZSByb3csIHNvIHRoZXkgYXJlIG5vdCBjYXNjYWRlZCBieSB0aGUKKwkJ ICogcGVyZm9ybURlbGV0aW9uKCkgY2FsbCBhYm92ZSBhbmQgbXVzdCBiZSBjbGVhbmVkIHVwIGV4 cGxpY2l0bHkuCisJCSAqLworCQlmb3JlYWNoX29pZChyZWxpZCwgZXhjZXB0X3JlbGlkcykKKwkJ eworCQkJT2lkCQkJcHJvaWQ7CisKKwkJCWlmIChnZXRfcmVsX25hbWVzcGFjZShyZWxpZCkgIT0g c2NoZW1haWQpCisJCQkJY29udGludWU7CisKKwkJCXByb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBV QkxJQ0FUSU9OUkVMTUFQLAorCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfb2lkLAor CQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkJCQlPYmplY3RJZEdldERh dHVtKHB1YmlkKSk7CisJCQlpZiAoT2lkSXNWYWxpZChwcm9pZCkpCisJCQl7CisJCQkJT2JqZWN0 QWRkcmVzc1NldChvYmosIFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCwgcHJvaWQpOworCQkJCXBl cmZvcm1EZWxldGlvbigmb2JqLCBEUk9QX0NBU0NBREUsIDApOworCQkJfQorCQl9CisKKwkJbGlz dF9mcmVlKGV4Y2VwdF9yZWxpZHMpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggN2VlODRlYzFjODMuLjk4MzFiZTU0YjQ3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIyMjksNyAr MjIyOSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9u IHJlbGF0aW9uKQogCQkJICovCiAJCQlpZiAocHViLT5hbGx0YWJsZXMpCiAJCQl7Ci0JCQkJTGlz dAkgICAqZXhjZXB0cHViaWRzID0gTklMOworCQkJCUxpc3QJICAgKmV4Y2VwdF9wdWJpZHMgPSBO SUw7CiAKIAkJCQlpZiAoYW1fcGFydGl0aW9uKQogCQkJCXsKQEAgLTIyNTIsNyArMjI1Miw3IEBA IGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9u KQogCQkJCQkgKiBjbGF1c2UuIFRoZXJlZm9yZSwgZm9yIGEgcGFydGl0aW9uLCBleGNsdXNpb24g bXVzdCBiZQogCQkJCQkgKiBldmFsdWF0ZWQgYXQgdGhlIHRvcC1tb3N0IGFuY2VzdG9yLgogCQkJ CQkgKi8KLQkJCQkJZXhjZXB0cHViaWRzID0gR2V0UmVsYXRpb25FeGNsdWRlZFB1YmxpY2F0aW9u cyhsYXN0X2FuY2VzdG9yX3JlbGlkKTsKKwkJCQkJZXhjZXB0X3B1YmlkcyA9IEdldFJlbGF0aW9u RXhjbHVkZWRQdWJsaWNhdGlvbnMobGFzdF9hbmNlc3Rvcl9yZWxpZCk7CiAJCQkJfQogCQkJCWVs c2UKIAkJCQl7CkBAIC0yMjYwLDEzICsyMjYwLDEzIEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJCQkgKiBGb3IgYSByZWd1bGFy IHRhYmxlIG9yIGEgcm9vdCBwYXJ0aXRpb25lZCB0YWJsZSwgY2hlY2sKIAkJCQkJICogZXhjbHVz aW9uIG9uIHRhYmxlIGl0c2VsZi4KIAkJCQkJICovCi0JCQkJCWV4Y2VwdHB1YmlkcyA9IEdldFJl bGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMocHViX3JlbGlkKTsKKwkJCQkJZXhjZXB0X3B1Ymlk cyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMocHViX3JlbGlkKTsKIAkJCQl9CiAK LQkJCQlpZiAoIWxpc3RfbWVtYmVyX29pZChleGNlcHRwdWJpZHMsIHB1Yi0+b2lkKSkKKwkJCQlp ZiAoIWxpc3RfbWVtYmVyX29pZChleGNlcHRfcHViaWRzLCBwdWItPm9pZCkpCiAJCQkJCXB1Ymxp c2ggPSB0cnVlOwogCi0JCQkJbGlzdF9mcmVlKGV4Y2VwdHB1Ymlkcyk7CisJCQkJbGlzdF9mcmVl KGV4Y2VwdF9wdWJpZHMpOwogCiAJCQkJaWYgKCFwdWJsaXNoKQogCQkJCQljb250aW51ZTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwppbmRleCBhMjkwOTAyZDYxZS4uZThiZmIzNmNiMWMgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKQEAgLTIzOTAsNiArMjM5MCwyMyBAQCBtYXRjaF9wcmV2aW91c193b3Jk cyhpbnQgcGF0dGVybl9pZCwKIAl9CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJUQUJMRVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hB bnksICJFWENFUFQiLCAiKCIsICJUQUJMRSIsIE1hdGNoQW55TikgJiYgIWVuZHNfd2l0aChwcmV2 X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCIpIik7CisJLyogQWZ0ZXIgYSBzaW5nbGUgc2No ZW1hIG5hbWUgaW4gU0VUIGNvbnRleHQsIG9mZmVyIEVYQ0VQVCAoIFRBQkxFICovCisJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJM RVMiLCAiSU4iLCAiU0NIRU1BIiwgTWF0Y2hBbnkpICYmCisJCQkgIWVuZHNfd2l0aChwcmV2X3dk LCAnLCcpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCBUQUJMRSIpOworCWVsc2UgaWYgKE1h dGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJTRVQiLCAiVEFCTEVTIiwg IklOIiwgIlNDSEVNQSIsIE1hdGNoQW55LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIigg VEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQVCIs ICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJUQUJMRVMiLCAiSU4iLCAiU0NI RU1BIiwgIkNVUlJFTlRfU0NIRU1BIiwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIikpCisJCUNPTVBM RVRFX1dJVEhfUVVFUllfVkVSQkFUSU0oUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzX2luX2N1cnJl bnRfc2NoZW1hKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFueSwgIkVYQ0VQ VCIsICIoIiwgIlRBQkxFIikpCisJeworCQlzZXRfY29tcGxldGlvbl9yZWZlcmVuY2UocHJldjRf d2QpOworCQlDT01QTEVURV9XSVRIX1FVRVJZX1ZFUkJBVElNKFF1ZXJ5X2Zvcl9saXN0X29mX3Rh Ymxlc19pbl9zY2hlbWEpOworCX0KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiU0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiLCBNYXRjaEFu eSwgIkVYQ0VQVCIsICIoIiwgIlRBQkxFIiwgTWF0Y2hBbnlOKSAmJiAhZW5kc193aXRoKHByZXZf d2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIikiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8 bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIs IE1hdGNoQW55LCBNYXRjaEFueU4sICJTRVQiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJwdWJs aXNoIiwgInB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMiLCAicHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QiKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRp b24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXgg NzM5NGQ2MGI1ZjUuLjBlYTViNTgyODRiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dApAQCAtNjIxLDYgKzYyMSw5MiBAQCBFeGNlcHQgdGFibGVzOgogICAgICJw dWJfdGVzdC50ZXN0cHViX3RibF9zMSIKICAgICAicHViX3Rlc3QudGVzdHB1Yl90YmxfczIiCiAK Ky0tIFNFVDogcmVwbGFjZSB0aGUgZXhjZXB0IGxpc3QgKGtlZXAgc2FtZSBzY2hlbWEsIGRpZmZl cmVudCBleGNlcHQgdGFibGUpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2Vw dCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfdGJsX3MyKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVt YXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVzdHB1 Yl90YmxfczIiCisKKy0tIGZhaWw6IHRhYmxlIGluIEVYQ0VQVCBjbGF1c2UgYWxzbyBhcHBlYXJz IGluIHRoZSBleHBsaWNpdCB0YWJsZSBsaXN0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Fs dGVyX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIFRBQkxFUyBJTiBT Q0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSk7CitF UlJPUjogIHRhYmxlICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIgY2Fubm90IGFwcGVhciBpbiBi b3RoIHRoZSB0YWJsZSBsaXN0IGFuZCB0aGUgRVhDRVBUIGNsYXVzZQorLS0gZXJyb3I6IGV4Y2Vw dCB0YWJsZSdzIHNjaGVtYSAocHVibGljKSBub3QgaW4gdGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1h IGxpc3QgKHB1Yl90ZXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQg U0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1 Yl90YmwxKTsKK0VSUk9SOiAgdGFibGUgInB1YmxpYy50ZXN0cHViX3RibDEiIGluIEVYQ0VQVCBj bGF1c2UgZG9lcyBub3QgYmVsb25nIHRvIHNjaGVtYSAicHViX3Rlc3QiCitMSU5FIDE6IC4uLnhj ZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHVibGljLnRl cy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIFNFVDogdW5xdWFsaWZpZWQgbmFtZSBpbiBFWENFUFQgaXMgaW1wbGlj aXRseSBxdWFsaWZpZWQgd2l0aCB0aGUgc2NoZW1hCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxF IHRlc3RwdWJfdGJsX3MxKTsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxlcyBmcm9tIHNj aGVtYXM6CisgICAgInB1Yl90ZXN0IgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3Rlc3QudGVz dHB1Yl90YmxfczEiCisKKy0tIFNFVCB3aXRob3V0IEVYQ0VQVCBjbGVhcnMgdGhlIGV4aXN0aW5n IGV4Y2VwdCBsaXN0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQg VEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfYWx0ZXJfZXhjZXB0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAgICAgICAgfCAKK1RhYmxl cyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorCistLSBTRVQgdG8gYSBkaWZmZXJlbnQg c2NoZW1hIHJlbW92ZXMgb2xkIHNjaGVtYSdzIEVYQ0VQVCBlbnRyaWVzCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBF WENFUFQgKFRBQkxFIHRlc3RwdWJfdGJsX3MxKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf YWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK1xkUnArIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAg ICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1YmxpYyIKKworLS0gZmFpbDog bm9uZXhpc3RlbnQgdGFibGUgaW4gRVhDRVBUIGNsYXVzZSAoU0VUIHBhdGgpCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlKTsKK0VSUk9SOiAgcmVs YXRpb24gInB1Yl90ZXN0Lm5vbmV4aXN0ZW50X3RhYmxlIiBkb2VzIG5vdCBleGlzdAorLS0gU0VU OiBtdWx0aXBsZSBzY2hlbWFzIGVhY2ggd2l0aCB0aGVpciBvd24gRVhDRVBUIGNsYXVzZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHVibGljIEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmwxKTsKK1xkUnArIHRlc3RwdWJf YWx0ZXJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9hbHRlcl9leGNlcHQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZiAg ICAgICAgfCAKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorICAgICJwdWJs aWMiCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfdGVzdC50ZXN0cHViX3RibF9zMSIKKyAgICAi cHVibGljLnRlc3RwdWJfdGJsMSIKKworLS0gZXJyb3I6IEVYQ0VQVCBpcyBub3QgYWxsb3dlZCB3 aXRoIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJs X3MyKTsKK0VSUk9SOiAgRVhDRVBUIGNsYXVzZSBpcyBub3Qgc3VwcG9ydGVkIHdpdGggRFJPUCBp biBBTFRFUiBQVUJMSUNBVElPTgorLS0gRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNz b2NpYXRlZCBFWENFUFQgZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9l eGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRl cl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmICAgICAg ICB8IAorVGFibGVzIGZyb20gc2NoZW1hczoKKyAgICAicHVibGljIgorRXhjZXB0IHRhYmxlczoK KyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKwogLS0gQ2xlYW51cAogUkVTRVQgY2xpZW50X21p bl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1Yl90ZXN0 LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IGU0 OTdkMzQyYWJkLi4yN2M4ZDZmOTgxZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bApAQCAtMzA4LDYgKzMwOCw0NCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4 Y2VwdCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKHRlcwogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rl c3QgRVhDRVBUIChUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgdGVzdHB1Yl90YmxfczIp OwogXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKIAorLS0gU0VUOiByZXBsYWNlIHRoZSBleGNl cHQgbGlzdCAoa2VlcCBzYW1lIHNjaGVtYSwgZGlmZmVyZW50IGV4Y2VwdCB0YWJsZSkKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczIpOworXGRScCsgdGVz dHB1Yl9hbHRlcl9leGNlcHQKKworLS0gZmFpbDogdGFibGUgaW4gRVhDRVBUIGNsYXVzZSBhbHNv IGFwcGVhcnMgaW4gdGhlIGV4cGxpY2l0IHRhYmxlIGxpc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRSBwdWJfdGVzdC50ZXN0cHViX3RibF9zMSwgVEFC TEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJs X3MxKTsKKworLS0gZXJyb3I6IGV4Y2VwdCB0YWJsZSdzIHNjaGVtYSAocHVibGljKSBub3QgaW4g dGhlIHB1YmxpY2F0aW9uJ3Mgc2NoZW1hIGxpc3QgKHB1Yl90ZXN0KQorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhD RVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl90YmwxKTsKKworLS0gU0VUOiB1bnF1YWxpZmllZCBu YW1lIGluIEVYQ0VQVCBpcyBpbXBsaWNpdGx5IHF1YWxpZmllZCB3aXRoIHRoZSBzY2hlbWEKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1B IHB1Yl90ZXN0IEVYQ0VQVCAoVEFCTEUgdGVzdHB1Yl90YmxfczEpOworXGRScCsgdGVzdHB1Yl9h bHRlcl9leGNlcHQKKworLS0gU0VUIHdpdGhvdXQgRVhDRVBUIGNsZWFycyB0aGUgZXhpc3Rpbmcg ZXhjZXB0IGxpc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwor LS0gU0VUIHRvIGEgZGlmZmVyZW50IHNjaGVtYSByZW1vdmVzIG9sZCBzY2hlbWEncyBFWENFUFQg ZW50cmllcworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgU0VUIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3Rlc3QgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibF9zMSk7CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBw dWJsaWM7CitcZFJwKyB0ZXN0cHViX2FsdGVyX2V4Y2VwdAorCistLSBmYWlsOiBub25leGlzdGVu dCB0YWJsZSBpbiBFWENFUFQgY2xhdXNlIChTRVQgcGF0aCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfYWx0ZXJfZXhjZXB0IFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0IEVYQ0VQVCAo VEFCTEUgcHViX3Rlc3Qubm9uZXhpc3RlbnRfdGFibGUpOworCistLSBTRVQ6IG11bHRpcGxlIHNj aGVtYXMgZWFjaCB3aXRoIHRoZWlyIG93biBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2FsdGVyX2V4Y2VwdCBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdCBFWENF UFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MxKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg RVhDRVBUIChUQUJMRSB0ZXN0cHViX3RibDEpOworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQK KworLS0gZXJyb3I6IEVYQ0VQVCBpcyBub3QgYWxsb3dlZCB3aXRoIERST1AKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfYWx0ZXJfZXhjZXB0IERST1AgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dCBFWENFUFQgKFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfdGJsX3MyKTsKKworLS0gRFJPUCBUQUJM RVMgSU4gU0NIRU1BIHJlbW92ZXMgYXNzb2NpYXRlZCBFWENFUFQgZW50cmllcworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9hbHRlcl9leGNlcHQgRFJPUCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0OworXGRScCsgdGVzdHB1Yl9hbHRlcl9leGNlcHQKKwogLS0gQ2xlYW51cAogUkVTRVQgY2xp ZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl90YmxfczEsIHB1 Yl90ZXN0LnRlc3RwdWJfdGJsX3MyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM3X2V4Y2VwdC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19leGNlcHQucGwK aW5kZXggMGJhNmQ2ZjhiYjIuLjAxZWFmYjViN2M4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz N19leGNlcHQucGwKQEAgLTM3Niw2ICszNzYsNjEgQEAgJHJlc3VsdCA9CiBpcygkcmVzdWx0LCBx cSgwKSwKIAknQUxURVIgLi4uIEFERCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogZXhjbHVkZWQg dGFibGUgbm90IHN5bmNlZCcpOwogCisjIFNFVDogcmVwbGFjZSB0aGUgZXhjZXB0IGxpc3Q7IHRh Yl9leGNsdWRlZCBpcyBub3cgaW5jbHVkZWQgYW5kIHRhYl9wdWJsaXNoZWQgaXMgZXhjbHVkZWQu Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNB VElPTiBzY2hfcHViIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHNjaDEgRVhDRVBUIChUQUJMRSBzY2gx LnRhYl9wdWJsaXNoZWQpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gc2NoX3N1YiBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7 Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJs aXNoZXIsICdzY2hfc3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHNjaDEudGFiX3B1Ymxpc2hlZCBWQUxVRVMgKDcpOwor CUlOU0VSVCBJTlRPIHNjaDEudGFiX2V4Y2x1ZGVkIFZBTFVFUyAoNyk7CispKTsKKyRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2NoX3N1YicpOworCiskcmVzdWx0ID0KKyAgJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBG Uk9NIHNjaDEudGFiX2V4Y2x1ZGVkIFdIRVJFIGEgPSA3Iik7CitpcygkcmVzdWx0LCBxcSgxKSwK KwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVDogbmV3bHkgaW5jbHVkZWQg dGFibGUgaXMgcmVwbGljYXRlZCcKKyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSBGUk9NIHNjaDEudGFiX3B1 Ymxpc2hlZCBXSEVSRSBhID0gNyIpOworaXMoJHJlc3VsdCwgcXEoMCksCisJJ0FMVEVSIC4uLiBT RVQgVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IG5vdy1leGNsdWRlZCB0YWJsZSBpcyBub3QgcmVw bGljYXRlZCcKKyk7CisKKyMgU0VUIHdpdGhvdXQgRVhDRVBUOiBjbGVhcnMgdGhlIGV4Y2VwdCBs aXN0OyBib3RoIHRhYmxlcyBhcmUgbm93IHB1Ymxpc2hlZC4KKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHNjaF9wdWIgU0VUIFRBQkxF UyBJTiBTQ0hFTUEgc2NoMSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIkFMVEVSIFNVQlNDUklQVElPTiBzY2hfc3ViIFJFRlJFU0ggUFVCTElDQVRJT04iKTsK KyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxp c2hlciwgJ3NjaF9zdWInKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXEoCisJSU5TRVJUIElOVE8gc2NoMS50YWJfcHVibGlzaGVkIFZBTFVFUyAoOCk7CisJ SU5TRVJUIElOVE8gc2NoMS50YWJfZXhjbHVkZWQgVkFMVUVTICg4KTsKKykpOworJG5vZGVfcHVi bGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzY2hfc3ViJyk7CisKKyRyZXN1bHQgPQorICAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZS T00gc2NoMS50YWJfcHVibGlzaGVkIFdIRVJFIGEgPSA4Iik7CitpcygkcmVzdWx0LCBxcSgxKSwK KwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIChubyBFWENFUFQpOiB0YWJfcHVibGlz aGVkIHJlcGxpY2F0ZWQgYWZ0ZXIgZXhjZXB0IGxpc3QgY2xlYXJlZCcKKyk7CiskcmVzdWx0ID0K KyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3Vu dCgqKSBGUk9NIHNjaDEudGFiX2V4Y2x1ZGVkIFdIRVJFIGEgPSA4Iik7CitpcygkcmVzdWx0LCBx cSgxKSwKKwknQUxURVIgLi4uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIChubyBFWENFUFQpOiB0YWJf ZXhjbHVkZWQgcmVwbGljYXRlZCBhZnRlciBleGNlcHQgbGlzdCBjbGVhcmVkJworKTsKKwogJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiBz Y2hfc3ViJyk7CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQ VUJMSUNBVElPTiBzY2hfcHViJyk7CiAKQEAgLTQ0Myw2ICs0OTgsMzYgQEAgJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViJyk7 CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElP TiB0YXBfcHViMScpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RS T1AgUFVCTElDQVRJT04gdGFwX3B1YjInKTsKIAorIyBPSyB3aGVuIGEgdGFibGUgaXMgZXhjbHVk ZWQgYnkgYSBUQUJMRVMgSU4gU0NIRU1BIEVYQ0VQVCBwdWJsaWNhdGlvbiwKKyMgYnV0IGlzIGlu Y2x1ZGVkIGJ5IGFub3RoZXIgcHVibGljYXRpb24uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnVFJVTkNBVEUgdGFiMScpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICdUUlVOQ0FURSB0YWIxJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViMSBG T1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWMgRVhDRVBUIChUQUJMRSBwdWJsaWMudGFiMSk7CisJ Q1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWIyIEZPUiBUQUJMRSB0YWIxOworCUlOU0VSVCBJTlRP IHRhYjEgVkFMVUVTKDEpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5wc3FsKCdwb3N0Z3Jlcycs CisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nv bm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWIxLCB0YXBfcHViMiIKKyk7Ciskbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3Vi Jyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKElOU0VSVCBJ TlRPIHRhYjEgVkFMVUVTKDIpKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAo J3RhcF9zdWInKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIE9SREVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0 LCBxcSgxCisyKSwKKwkiVEFCTEVTIElOIFNDSEVNQSBFWENFUFQ6IHRhYmxlIGV4Y2x1ZGVkIGlu IHNjaGVtYSBwdWIgYnV0IGluY2x1ZGVkIGJ5IGFub3RoZXIgcHViIGlzIHJlcGxpY2F0ZWQiCisp OworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1AgU1VCU0NS SVBUSU9OIHRhcF9zdWInKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIxJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViMicpOworCiAkbm9kZV9wdWJs aXNoZXItPnN0b3AoJ2Zhc3QnKTsKIAogZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --00000000000042dac406545ca0f4 Content-Type: application/octet-stream; name="v14-0004-Documentation-Patch.patch" Content-Disposition: attachment; filename="v14-0004-Documentation-Patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqgijmvg3 RnJvbSA5MTc1NGZkM2M0ZDViMDc3MWQ5MTQwZjU5NTY5MDFiMGQ1YjFhNDA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXNoYSBNb29uZCA8bmlzaGEubW9vbmQ0MTJAZ21haWwuY29t PgpEYXRlOiBUdWUsIDE2IEp1biAyMDI2IDExOjEyOjAyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2 MTQgNC80XSBEb2N1bWVudGF0aW9uIFBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwgICAgfCAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNh dGlvbi5zZ21sICB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCB8IDI0ICsrKysrKystLQogMyBmaWxlcyBjaGFuZ2Vk LCA5MCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBs aWNhdGlvbi5zZ21sCmluZGV4IDllNzg2ODQ4N2RlLi4xNDMzZDI2NjBmZSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv bG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0xMTcsNyArMTE3LDggQEAKICAgIG9yIDxsaXRl cmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9saXRlcmFsPi4gVW5saWtlIHRhYmxlcywgc2VxdWVuY2Vz IGNhbiBiZQogICAgc3luY2hyb25pemVkIGF0IGFueSB0aW1lLiBGb3IgbW9yZSBpbmZvcm1hdGlv biwgc2VlCiAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLXNlcXVlbmNlcyIv Pi4gV2hlbiBhIHB1YmxpY2F0aW9uIGlzCi0gICBjcmVhdGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFM TCBUQUJMRVM8L2xpdGVyYWw+LCBhIHRhYmxlIG9yIHNldCBvZiB0YWJsZXMgY2FuCisgICBjcmVh dGVkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCisgICA8bGl0ZXJh bD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sIGEgdGFibGUgb3Igc2V0IG9mIHRhYmxl cyBjYW4KICAgIGJlIGV4cGxpY2l0bHkgZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbiB1c2luZyB0 aGUKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4 Y2VwdC10YWJsZSI+PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPjwvbGluaz4KICAgIGNsYXVzZS4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCA1MjExNGExNmEzOS4u MTUyZDMyNzk5MzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAg LTMxLDcgKzMxLDcgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKIDxwaHJhc2U+d2hlcmUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFi bGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVwbGFjZWFibGU+IFssIC4uLiBdCi0gICAg VEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFf bmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorICAgIFRBQkxF UyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc19pbl9zY2hl bWE8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fYWxsX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9u ZSBvZjo8L3BocmFzZT4KIApAQCAtNDcsNiArNDcsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8g PHIKIAogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9vYmplY3Q8L3Jl cGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXQogCis8cGhyYXNlPmFuZCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVzX2luX3NjaGVtYTwvcmVwbGFjZWFi bGU+IGlzOjwvcGhyYXNlPgorCisgICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWyBFWENFUFQgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFj ZWFibGU+IFssIC4uLiBdICkgXQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgog CiAgICAgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX29iamVjdDwv cmVwbGFjZWFibGU+IFssIC4uLiBdCkBAIC05Myw3ICs5NywxMSBAQCBBTFRFUiBQVUJMSUNBVElP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFN RSBUTyA8cgogICAgdXNlZCB3aXRoIGEgcHVibGljYXRpb24gZGVmaW5lZCB3aXRoIDxsaXRlcmFs PkZPUiBUQUJMRTwvbGl0ZXJhbD4gb3IKICAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1B PC9saXRlcmFsPiwgcmVwbGFjZXMgdGhlIGxpc3Qgb2YgdGFibGVzL3NjaGVtYXMKICAgIGluIHRo ZSBwdWJsaWNhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgbGlzdDsgdGhlIGV4aXN0aW5nIHRhYmxl cyBvciBzY2hlbWFzCi0gICB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUgcHVibGljYXRpb24gd2ls bCBiZSByZW1vdmVkLgorICAgdGhhdCB3ZXJlIHByZXNlbnQgaW4gdGhlIHB1YmxpY2F0aW9uIHdp bGwgYmUgcmVtb3ZlZC4gIFdoZW4KKyAgIDxsaXRlcmFsPlNFVCBUQUJMRVMgSU4gU0NIRU1BPC9s aXRlcmFsPiBpcyB1c2VkIHdpdGggYW4KKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xh dXNlLCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciBlYWNoIHNjaGVtYSBhcmUKKyAgIHJlcGxhY2Vk IHdpdGggdGhlIHNwZWNpZmllZCBsaXN0OyBpZiA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGlz IG9taXR0ZWQKKyAgIGZvciBhIHNjaGVtYSwgYW55IGV4aXN0aW5nIGV4Y2x1c2lvbnMgZm9yIHRo YXQgc2NoZW1hIGFyZSBjbGVhcmVkLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0xMTAsNiAr MTE4LDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgICA8bGl0ZXJhbD5BREQgVEFCTEU8 L2xpdGVyYWw+LgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+RVhDRVBU PC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgd2l0aAorICAgPGxpdGVyYWw+QUREIFRBQkxF UyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGV4Y2x1ZGUgc3BlY2lmaWMgdGFibGVzIGZyb20gYQor ICAgc2NoZW1hLWxldmVsIHB1YmxpY2F0aW9uLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBU aGUgZm91cnRoIHZhcmlhbnQgb2YgdGhpcyBjb21tYW5kIGxpc3RlZCBpbiB0aGUgc3lub3BzaXMg Y2FuIGNoYW5nZQogICAgYWxsIG9mIHRoZSBwdWJsaWNhdGlvbiBwcm9wZXJ0aWVzIHNwZWNpZmll ZCBpbgpAQCAtMTk4LDYgKzIxMiwzNSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBXaGVuIHVzZWQgd2l0aCA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFND SEVNQTwvbGl0ZXJhbD4KKyAgICAgIG9yIDxsaXRlcmFsPlNFVCBUQUJMRVMgSU4gU0NIRU1BPC9s aXRlcmFsPiwgc3BlY2lmaWVzCisgICAgICB0YWJsZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGUg cHVibGljYXRpb24uICBFYWNoIG5hbWVkCisgICAgICB0YWJsZSBtdXN0IGJlbG9uZyB0byB0aGUg c2NoZW1hIHNwZWNpZmllZCBpbiB0aGUgc2FtZQorICAgICAgPGxpdGVyYWw+VEFCTEVTIElOIFND SEVNQTwvbGl0ZXJhbD4gY2xhdXNlLiAgVGFibGUgbmFtZXMgbWF5IGJlCisgICAgICBzY2hlbWEt cXVhbGlmaWVkIG9yIHVucXVhbGlmaWVkOyB1bnF1YWxpZmllZCBuYW1lcyBhcmUgaW1wbGljaXRs eQorICAgICAgcXVhbGlmaWVkIHdpdGggdGhlIHNjaGVtYSBuYW1lZCBpbiB0aGUgc2FtZSBjbGF1 c2UuICBTZWUKKyAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbiIvPiBm b3IgZnVydGhlciBkZXRhaWxzIG9uIHRoZQorICAgICAgc2VtYW50aWNzIG9mIDxsaXRlcmFsPkVY Q0VQVDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBGb3IgPGxp dGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHB1YmxpY2F0aW9ucywgdGhlCisg ICAgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBpcyBzY2hlbWEtc2NvcGVkLiAg SWYgYSB0YWJsZSBsaXN0ZWQgaW4KKyAgICAgIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+ IGNsYXVzZSBpcyBsYXRlciBtb3ZlZCB0byBhIGRpZmZlcmVudCBzY2hlbWEKKyAgICAgIHVzaW5n IDxjb21tYW5kPkFMVEVSIFRBQkxFIC4uLiBTRVQgU0NIRU1BPC9jb21tYW5kPiwgdGhlIGV4Y2x1 c2lvbiBpcworICAgICAgcmVtb3ZlZDsgdGhlIHRhYmxlIHdpbGwgdGhlbiBiZSBwdWJsaXNoZWQg aWYgaXRzIG5ldyBzY2hlbWEgaXMgcGFydCBvZiBhCisgICAgICBwdWJsaWNhdGlvbi4gIElmIHRo ZSB0YWJsZSBpcyBzdWJzZXF1ZW50bHkgbW92ZWQgYmFjayB0byB0aGUgb3JpZ2luYWwKKyAgICAg IHNjaGVtYSwgdGhlIGV4Y2x1c2lvbiBpcyBub3QgcmVzdG9yZWQsIGFuZCBtdXN0IGJlIHJlLWVz dGFibGlzaGVkCisgICAgICBleHBsaWNpdGx5IHVzaW5nIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FU SU9OPC9jb21tYW5kPi4gIERyb3BwaW5nIGEgdGFibGUKKyAgICAgIGFsd2F5cyByZW1vdmVzIGl0 IGZyb20gdGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlLCByZWdhcmRsZXNzIG9m CisgICAgICBwdWJsaWNhdGlvbiB0eXBlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRl cmFsPlNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJh bWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFs dWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3Rp dGVtPgpAQCAtMjg4LDYgKzMzMSwyOCBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNh dGlvbiBBREQgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlz dGluZz4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgQWRkIHNjaGVtYSA8c3RydWN0bmFtZT5z YWxlczwvc3RydWN0bmFtZT4gdG8gdGhlIHB1YmxpY2F0aW9uCisgICA8c3RydWN0bmFtZT5zYWxl c19wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT4sIGV4Y2x1ZGluZyB0aGUKKyAgIDxzdHJ1Y3RuYW1l PnNhbGVzLmludGVybmFsPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzLmRy YWZ0czwvc3RydWN0bmFtZT4gdGFibGVzOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElD QVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgc2FsZXMgRVhDRVBU IChUQUJMRSBpbnRlcm5hbCwgZHJhZnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIFJlcGxhY2UgdGhlIHNjaGVtYSBsaXN0IG9mIDxzdHJ1Y3RuYW1lPnNh bGVzX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB3aXRoCisgICA8c3RydWN0bmFtZT5zYWxlczwv c3RydWN0bmFtZT4sIGV4Y2x1ZGluZyBvbmx5CisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFmdHM8 L3N0cnVjdG5hbWU+LiBPdGhlciB0aGFuCisgICA8c3RydWN0bmFtZT5zYWxlcy5kcmFmdHM8L3N0 cnVjdG5hbWU+LCBhbnkgcHJldmlvdXNseSBleGNsdWRlZCB0YWJsZXMgZm9yIHNjaGVtYQorICAg PHN0cnVjdG5hbWU+c2FsZXM8L3N0cnVjdG5hbWU+IGFyZSBubyBsb25nZXIgZXhjbHVkZWQuIEFu eSBzY2hlbWFzIHByZXZpb3VzbHkgaW4KKyAgIDxzdHJ1Y3RuYW1lPnNhbGVzX3B1YmxpY2F0aW9u PC9zdHJ1Y3RuYW1lPiBhcmUgcmVtb3ZlZDoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJ Q0FUSU9OIHNhbGVzX3B1YmxpY2F0aW9uIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHNhbGVzIEVYQ0VQ VCAoVEFCTEUgZHJhZnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFy YT4KICAgIEFkZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgPHN0 cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGY4MmQ2NDBlNmNhLi4xMDE3Mzk2ZjQ3 NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yOCw3ICsy OCw3IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+CiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJh c2U+CiAKICAgICBUQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfYW5k X2NvbHVtbnM8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQotICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8 IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKyAgICBUQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZXNfaW5fc2NoZW1hPC9yZXBsYWNlYWJsZT4gWywg Li4uIF0KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1Ymxp Y2F0aW9uX2FsbF9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKQEAg LTM5LDYgKzM5LDEwIEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAKICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdI RVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2Vh YmxlPiApIF0KIAorPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh Ymxlc19pbl9zY2hlbWE8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAgIHsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJS RU5UX1NDSEVNQSB9IFsgRVhDRVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4 Y2VwdF90YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKwogPHBocmFzZT5h bmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9vYmplY3Q8L3Jl cGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIAogICAgIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQpAQCAtMTQyLDYg KzE0Niw4IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1Ymxp Y2F0aW9uIGFzIG9uZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgog ICAgICAgdGhlIHNwZWNpZmllZCBsaXN0IG9mIHNjaGVtYXMsIGluY2x1ZGluZyB0YWJsZXMgY3Jl YXRlZCBpbiB0aGUgZnV0dXJlLgorICAgICAgVGFibGVzIGxpc3RlZCBpbiB0aGUgPGxpdGVyYWw+ RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgZm9yIGEgZ2l2ZW4gc2NoZW1hCisgICAgICBhcmUgZXhj bHVkZWQgZnJvbSB0aGUgcHVibGljYXRpb24uCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4K QEAgLTE3Myw3ICsxNzksNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICA8cGFyYT4KICAgICAgIE1hcmtz IHRoZSBwdWJsaWNhdGlvbiBhcyBvbmUgdGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0 YWJsZXMgaW4KICAgICAgIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGlu IHRoZSBmdXR1cmUuIFRhYmxlcyBsaXN0ZWQgaW4KLSAgICAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0 ZXJhbD4gY2xhdXNlIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KKyAgICAgIHRo ZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgZXhjbHVkZWQgZnJvbSB0aGUg cHVibGljYXRpb24uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CkBAIC0xOTgsNyArMjA0LDEwIEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPGxpc3RpdGVtPgog ICAgICA8cGFyYT4KICAgICAgIFRoaXMgY2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVz IHRvIGJlIGV4Y2x1ZGVkIGZyb20gdGhlCi0gICAgICBwdWJsaWNhdGlvbi4KKyAgICAgIHB1Ymxp Y2F0aW9uLiBJdCBjYW4gYmUgdXNlZCB3aXRoIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRl cmFsPiBvcgorICAgICAgPGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LiBG b3IgPGxpdGVyYWw+Rk9SIFRBQkxFUyBJTgorICAgICAgU0NIRU1BPC9saXRlcmFsPiwgdGhlIGV4 Y2x1c2lvbiBhcHBsaWVzIG9ubHkgdG8gdGFibGVzIGluIHRoZSBzY2hlbWEKKyAgICAgIGFzc29j aWF0ZWQgd2l0aCB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgog ICAgICA8cGFyYT4KICAgICAgIEZvciBpbmhlcml0ZWQgdGFibGVzLCBpZiA8bGl0ZXJhbD5PTkxZ PC9saXRlcmFsPiBpcyBzcGVjaWZpZWQgYmVmb3JlIHRoZQpAQCAtNTE1LDYgKzUyNCwxNSBAQCBD UkVBVEUgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBGT1IgVEFCTEUgdXNlcnMs IGRlcGFydG1lbnRzLCBUQUJMRVMgSQogQ1JFQVRFIFBVQkxJQ0FUSU9OIHNhbGVzX3B1YmxpY2F0 aW9uIEZPUiBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KIAorICA8cGFyYT4KKyAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVi bGlzaGVzIGFsbCBjaGFuZ2VzIGZvciBhbGwgdGhlIHRhYmxlcyBwcmVzZW50IGluCisgICB0aGUg c2NoZW1hIDxzdHJ1Y3RuYW1lPnNhbGVzPC9zdHJ1Y3RuYW1lPiwgZXhjZXB0CisgICA8c3RydWN0 bmFtZT5pbnRlcm5hbDwvc3RydWN0bmFtZT4gYW5kIDxzdHJ1Y3RuYW1lPmRyYWZ0czwvc3RydWN0 bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFVCTElDQVRJT04gc2FsZXNfZmlsdGVy ZWQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgc2FsZXMgRVhDRVBUIChUQUJMRSBpbnRlcm5hbCwgZHJh ZnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIENyZWF0 ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFuZ2VzIGZvciB0YWJsZSA8c3Ry dWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBidXQgcmVwbGljYXRlcyBvbmx5IGNvbHVt bnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFtZT4gYW5kCi0tIAoyLjUwLjEgKEFwcGxl IEdpdC0xNTUpCgo= --00000000000042dac406545ca0f4--