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 1vfbde-003JQa-1u for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Jan 2026 10:28:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vfbdd-004AZq-2b for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Jan 2026 10:28:38 +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 1vfbdd-004AZh-0s for pgsql-hackers@lists.postgresql.org; Tue, 13 Jan 2026 10:28:37 +0000 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vfbda-000CKe-2y for pgsql-hackers@lists.postgresql.org; Tue, 13 Jan 2026 10:28:36 +0000 Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-59b6f59c4f5so8134735e87.3 for ; Tue, 13 Jan 2026 02:28:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768300113; x=1768904913; 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=FbUoHSLJtjElZgbCr6ltS3wNv+dqtsu9ighEDFJkaro=; b=YEetki6M3VUMoFcdodgoXYOkrIhGAPVVc9Ik0DpuGnNa0ytswJOn4uvA4PUJaNbxFA oaQQMp6tFINpL/pXMxnSa3kx+n3d2fRygXI3/6Gdp/doy487YIRKo2xpIZFoBlIiLSQV 4vwTKNQGTupTm0oNSoFTq0Zf8Ims5/2YmMyoU4fXTb3lxEkIGRIZ1Yi9+JewGcdtYklT vyYLmr2sPIUQA1HJYNrHS4gJMTdTtrgHt8BptYlu5KHeTgsTV4Fu6B2f/87+0o1uCvmj N98h9ULfuu+nWvKhut8upWScibjAJ5ynR5CfM88xlPyt4W55po99nucz25NxR1J6ryZl I6nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768300113; x=1768904913; 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=FbUoHSLJtjElZgbCr6ltS3wNv+dqtsu9ighEDFJkaro=; b=nqbIgJUN/UHau6ArnwAUgbJcoAAsh4xfZQ9H1/Tg71X4vQpbXKX7BaH0KXJW8+b77z n6RORk30spb1iFb8sQoqZpnEoUbW/bSSust3TbWpsMlH4wR2IvZ8srVMRn/r+JS+8dtl 14ywX6960+YddgWP3zAjS6IlcMA06LizCCdcASwX0I4AUHOmojCFq02o/0hwSkacKjts gHvu1H4TuWT4B74viOgX5hwctH+l/4A9hkKK0xIoZUN//TE7HqxZNqt715jWz392uXKb m0kHfYpXRGDbLueXRdwwfke3jBBZEkk1kU+yrT4y94T/XD7jmIHj7WMGZGXDuFAnWgst p4sA== X-Forwarded-Encrypted: i=1; AJvYcCXdh8sWSBTTDtOBkxNzFXYCA7dTrC5DSRag7GKXugC5kzumWYcHG/HirRLUPX7gSgiacN8q9r4XLhm2yckg@lists.postgresql.org X-Gm-Message-State: AOJu0Ywj34xjshM3bmX2IXXzf+6nmZc+jFeitxRg228jEO36CWruTw8x rzjV4xiRYf7Y6TEc0i+NCkRdsXB21WeLyPmZ190PCR+d/Gkr1XkHHCjo+LrrrnsfK+sxEAIibON Fd5XWo+jedahvxzFCA0BPqCXPwpM2q9Q= X-Gm-Gg: AY/fxX7p7gp0U02KuGI+cVpn6gkbEChUDooVPQcvujESBe2NvOzADZ5ybTf5DS8+zw8 dxzq8AeCfiFFP+roQHHIDqhwk7+Z/iPeMHxWIDLyOTylRNpl2+N92cO68YNdCBrKiU9JxwUjHWk H2b9BmiJKiX9al+TqwPBY2n47RuWZ6qFw/7tJMe+oYSv4lrMLypqaoX+tQfbezSz6P6nrLsr0kq ZGDstunUIEJiyPGbNK/fvohraYbme4g7bGXXSkwB2B23FvEMTh8zkupXfLfZ56g+GI6GmI= X-Google-Smtp-Source: AGHT+IEGJt1Anj9PDEa+ll8U5QmofNCfY84gLPxb17NboMEWxV/PgiK1F8wVW0iuzJ0LA4cHl1ueDzbzkhRvX/0/qXk= X-Received: by 2002:a05:6512:3b12:b0:59b:72aa:58e4 with SMTP id 2adb3069b0e04-59b72aa5a88mr6558806e87.16.1768300112589; Tue, 13 Jan 2026 02:28:32 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Tue, 13 Jan 2026 15:58:15 +0530 X-Gm-Features: AZwV_QhrHN_dZ_wKgjugsqO8BqBW9HULVH4xz5k7BSIWivXuRfPrb8fPtiZv_xc Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Peter Smith Cc: vignesh C , shveta malik , Amit Kapila , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000001155df064842747b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001155df064842747b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jan 13, 2026 at 3:25=E2=80=AFAM Peter Smith = wrote: > > Hi Dilip. > > Some comments about the v20-0002 (test code only) > > =3D=3D=3D=3D=3D=3D > src/test/subscription/t/035_conflicts.pl > > 1. > +my $subid =3D $node_subscriber->safe_psql('postgres', > + "SELECT oid FROM pg_subscription WHERE subname =3D 'sub_tab';"); > +my $conflict_table =3D "pg_conflict.pg_conflict_$subid"; > > 1a. > Maybe there should be a comment somewhere near here to describe that > the remainder of this test part is for verifying the contents of the > CLT. Done > ~ > > 1b. > Consider renaming the variable '$conflict_table' as '$clt', so it > cannot be confused with "the table that has the conflict". Done > ~~~ > > 2. > +# Wait for the conflict to be logged > +my $log_check =3D $node_subscriber->poll_query_until( > + 'postgres', > + "SELECT count(*) > 0 FROM $conflict_table;" > +); > > /to be logged/to be logged in the CLT/ Done > ~~~ > 3. > +# Verify that '2' is present in the resulting string > +like($all_keys, qr/2/, 'Verified that key 2 exists in the > local_conflicts log'); > > The check just for '2' seemed vague. IIUC, this would also match 12, > 25, 102, or anything else with a 2 in it. Is it possible for this test > to compare a longer string so it is guaranteed to be a more unique > match for what you are expecting? How about matching specifically 2 using like($all_keys, qr/\b2\b/, 'Verified that key 2 exists in the local_conflicts log'); ? > ~~~ > > 4. > +# Wait for the conflict to be logged > +$log_check =3D $node_subscriber->poll_query_until( > + 'postgres', > + "SELECT count(*) > 0 FROM $conflict_table;" > +); > + > +$conflict_check =3D $node_subscriber->safe_psql('postgres', > + "SELECT count(*) FROM $conflict_table WHERE conflict_type =3D > 'multiple_unique_conflicts';"); > +is($conflict_check, 1, 'Verified multiple_unique_conflicts logged > into internal table'); > + > +$json_query =3D qq[ > + SELECT string_agg((unnested.j::json)->'key'->>'a', ',') > + FROM ( > + SELECT unnest(local_conflicts) AS j > + FROM $conflict_table > + ) AS unnested; > +]; > + > +$all_keys =3D $node_subscriber->safe_psql('postgres', $json_query); > + > +# Verify that '6' is present in the resulting string > +like($all_keys, qr/6/, 'Verified that key 6 exists in the > local_conflicts log'); > + > > All the same review comments above apply here, too. > > - Comment to say all this is for verifying the CLT > - /to be logged/to be logged in the CLT/ > - The check just for '6' seemed vague. Done same treatment as above. I am not sure does it makes sense to check the tuple from clt for all the test cases in 035_conflict.pl or just checking in a few of them is sufficient? Thoughts? --=20 Regards, Dilip Kumar Google --0000000000001155df064842747b Content-Type: application/octet-stream; name="v21-0003-Doccumentation-patch.patch" Content-Disposition: attachment; filename="v21-0003-Doccumentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkcg5n742 RnJvbSAzN2UzYmVkZTdlYjFlNDRmMWU3MDcwNDMxZjI3MzMxMDYyMGM5M2NhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU3VuLCAyMSBEZWMgMjAyNSAxODo1MTo1NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDMvM10gRG9jY3VtZW50YXRpb24gcGF0Y2gKCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCAgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgfCAgMTQgKystCiBkb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCB8ICAzNCArKysrKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDE2MSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1y ZXBsaWNhdGlvbi5zZ21sCmluZGV4IDY4ZDZlZmU1MTE0Li40MTUxN2JmMjcxNiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0yODksNiArMjg5LDE5IEBACiAgICBvcHRp b24gb2YgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElPTjwvY29tbWFuZD4gZm9yIGRldGFpbHMu CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIENvbmZsaWN0cyB0aGF0IG9jY3VyIGR1cmluZyBy ZXBsaWNhdGlvbiBhcmUsIGJ5IGRlZmF1bHQsIGxvZ2dlZCBhcyBwbGFpbiB0ZXh0CisgICBpbiB0 aGUgc2VydmVyIGxvZywgd2hpY2ggY2FuIG1ha2UgYXV0b21hdGVkIG1vbml0b3JpbmcgYW5kIGFu YWx5c2lzIGRpZmZpY3VsdC4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9j b21tYW5kPiBjb21tYW5kIHByb3ZpZGVzIHRoZQorICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0 ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPgorICAg PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4gb3B0aW9u IHRvIHJlY29yZCBkZXRhaWxlZAorICAgY29uZmxpY3QgaW5mb3JtYXRpb24gaW4gYSBzdHJ1Y3R1 cmVkLCBxdWVyeWFibGUgZm9ybWF0LiBXaGVuIHRoaXMgcGFyYW1ldGVyCisgICBpcyBzZXQgdG8g PGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBz eXN0ZW0KKyAgIGF1dG9tYXRpY2FsbHkgbWFuYWdlcyBhIGRlZGljYXRlZCBjb25mbGljdCBsb2cg dGFibGUsIHdoaWNoIGlzIGNyZWF0ZWQgYW5kCisgICBkcm9wcGVkIGFsb25nIHdpdGggdGhlIHN1 YnNjcmlwdGlvbi4gVGhpcyBzaWduaWZpY2FudGx5IGltcHJvdmVzIHBvc3QtbW9ydGVtCisgICBh bmFseXNpcyBhbmQgb3BlcmF0aW9uYWwgdmlzaWJpbGl0eSBvZiB0aGUgcmVwbGljYXRpb24gc2V0 dXAuCisgIDwvcGFyYT4KKwogICA8c2VjdDIgaWQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tc3Vic2Ny aXB0aW9uLXNsb3QiPgogICAgPHRpdGxlPkxvZ2ljYWwgUmVwbGljYXRpb24gU2xvdCBNYW5hZ2Vt ZW50PC90aXRsZT4KIApAQCAtMjExOCw3ICsyMTMxLDk4IEBAIFB1YmxpY2F0aW9uczoKICAgPC9w YXJhPgogCiAgIDxwYXJhPgotICAgVGhlIGxvZyBmb3JtYXQgZm9yIGxvZ2ljYWwgcmVwbGljYXRp b24gY29uZmxpY3RzIGlzIGFzIGZvbGxvd3M6CisgICBXaGVuIHRoZSA8bGluayBsaW5rZW5kPSJz cWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlv biI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4KKyAg IGlzIHNldCB0byA8bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRl cmFsPiwgdGhlIHN5c3RlbQorICAgYXV0b21hdGljYWxseSBjcmVhdGVzIGEgbmV3IHRhYmxlIHdp dGggYSBwcmVkZWZpbmVkIHNjaGVtYSB0byBsb2cgY29uZmxpY3QKKyAgIGRldGFpbHMuIFRoaXMg dGFibGUgaXMgY3JlYXRlZCBpbiB0aGUgZGVkaWNhdGVkCisgICA8bGl0ZXJhbD5wZ19jb25mbGlj dDwvbGl0ZXJhbD4gbmFtZXNwYWNlLiAgVGhlIG5hbWUgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJs ZQorICAgaXMgcGdfY29uZmxpY3RfPHJlcGxhY2VhYmxlPnN1YnNjcmlwdGlvbl9vaWQ8L3JlcGxh Y2VhYmxlPi4gVGhlIHNjaGVtYSBvZiB0aGlzCisgICB0YWJsZSBpcyBkZXRhaWxlZCBpbgorICAg PHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1sb2ctc2NoZW1hIi8+ LgorICA8L3BhcmE+CisKKyAgPHRhYmxlIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0 LWxvZy1zY2hlbWEiPgorICAgPHRpdGxlPkNvbmZsaWN0IExvZyBUYWJsZSBTY2hlbWE8L3RpdGxl PgorICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8 ZW50cnk+Q29sdW1uPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgIDxl bnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisgICAg PHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFs PjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+b2lkPC90eXBlPjwvZW50cnk+CisgICAgICA8 ZW50cnk+VGhlIE9JRCBvZiB0aGUgbG9jYWwgdGFibGUgd2hlcmUgdGhlIGNvbmZsaWN0IG9jY3Vy cmVkLjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRl cmFsPnNjaGVtYW5hbWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT50ZXh0 PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHNjaGVtYSBuYW1lIG9mIHRoZSBjb25m bGljdGluZyB0YWJsZS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5yZWxuYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5 cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25m bGljdGluZyB0YWJsZS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50 cnk+PHR5cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSB0eXBlIG9mIGNv bmZsaWN0IHRoYXQgb2NjdXJyZWQgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVy YWw+KS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0 ZXJhbD5yZW1vdGVfeGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+eGlk PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHJlbW90ZSB0cmFuc2FjdGlvbiBJRCB0 aGF0IGNhdXNlZCB0aGUgY29uZmxpY3QuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+ CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2NvbW1pdF9sc248L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT48dHlwZT5wZ19sc248L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2NvbW1pdF90 czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnRpbWVzdGFtcHR6PC90eXBl PjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHJlbW90ZSBjb21taXQgdGltZXN0YW1wIG9mIHRo ZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX29yaWdpbjwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UaGUgb3Jp Z2luIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX3R1cGxlPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5 PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWluZyByZW1vdGUgcm93IHRoYXQg Y2F1c2VkIHRoZSBjb25mbGljdC48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT48dHlwZT5qc29uW108L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT4KKyAg ICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBsb2NhbCBzdGF0 ZSBmb3IgZWFjaCBjb25mbGljdCBhdHRlbXB0LgorICAgICAgIEVhY2ggb2JqZWN0IGluY2x1ZGVz IHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJRCAoPGxpdGVyYWw+eGlkPC9saXRlcmFsPiksIGNvbW1p dAorICAgICAgIHRpbWVzdGFtcCAoPGxpdGVyYWw+Y29tbWl0X3RzPC9saXRlcmFsPiksIG9yaWdp biAoPGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPiksCisgICAgICAgY29uZmxpY3Rpbmcga2V5IGRh dGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAg ICAgaW1hZ2UgKDxsaXRlcmFsPnR1cGxlPC9saXRlcmFsPikuCisgICAgICA8L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisKKyAgPHBh cmE+CisgICBUaGUgY29uZmxpY3Rpbmcgcm93IGRhdGEsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwg bG9jYWwgdHVwbGUgYW5kCisgICB0aGUgcmVtb3RlIHR1cGxlLCBpcyBzdG9yZWQgaW4gPHR5cGU+ SlNPTjwvdHlwZT4gY29sdW1ucyAoPGxpdGVyYWw+bG9jYWxfdHVwbGU8L2xpdGVyYWw+CisgICBh bmQgPGxpdGVyYWw+cmVtb3RlX3R1cGxlPC9saXRlcmFsPikgZm9yIGZsZXhpYmxlIHF1ZXJ5aW5n IGFuZCBhbmFseXNpcy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSWYgPGxpbmsgbGlua2Vu ZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGlu YXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+ CisgICBpcyBsZWZ0IGF0IHRoZSBkZWZhdWx0IHNldHRpbmcgb3IgZXhwbGljaXRseSBjb25maWd1 cmVkIGFzIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4KKyAgIG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJh bD4sIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzIGFyZSBsb2dnZWQgaW4gdGhlCisgICBm b2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9HOiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24g cmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1lPC9yZXBsYWNlYWJsZT4uPHJlcGxhY2Vh YmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29uZmxpY3Q9PHJlcGxhY2VhYmxlPmNvbmZs aWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJsZT4uCkBAIC0yNDEyLDYgKzI1 MTYsMTYgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9u IG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKICAgICAga2V5IG9yIHJlcGxpY2EgaWRl bnRpdHkgZGVmaW5lZCBmb3IgaXQuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KKworICAg PGxpc3RpdGVtPgorICAgIDxwYXJhPgorICAgICBUaGUgaW50ZXJuYWwgdGFibGUgYXV0b21hdGlj YWxseSBjcmVhdGVkIHdoZW4KKyAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZs aWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgIGlzIHNldCB0byA8bGl0 ZXJhbD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRlcmFsPiBpcyBleGNsdWRl ZCBmcm9tCisgICAgIGxvZ2ljYWwgcmVwbGljYXRpb24uIEl0IHdpbGwgbm90IGJlIHB1Ymxpc2hl ZCwgZXZlbiBpZiBhIHB1YmxpY2F0aW9uIG9uIHRoZQorICAgICBzdWJzY3JpYmVyIGlzIGRlZmlu ZWQgdXNpbmcgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LgorICAgIDwvcGFyYT4K KyAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogIDwvc2VjdDE+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDI3YzA2NDM5ZjRmLi4yZGUyYzNj NTJmYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yODAs OCArMjgwLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtb3JpZ2luIj48bGl0ZXJhbD5vcmln aW48L2xpdGVyYWw+PC9saW5rPiwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJz Y3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFs PjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBh cmFtcy13aXRoLXR3by1waGFzZSI+PGxpdGVyYWw+dHdvX3BoYXNlPC9saXRlcmFsPjwvbGluaz4s Ci0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRo LXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0YWluX2RlYWRfdHVwbGVzPC9saXRlcmFs PjwvbGluaz4sIGFuZAotICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlv bi1wYXJhbXMtd2l0aC1tYXgtcmV0ZW50aW9uLWR1cmF0aW9uIj48bGl0ZXJhbD5tYXhfcmV0ZW50 aW9uX2R1cmF0aW9uPC9saXRlcmFsPjwvbGluaz4uCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwt Y3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVy YWw+cmV0YWluX2RlYWRfdHVwbGVzPC9saXRlcmFsPjwvbGluaz4sCisgICAgICA8bGluayBsaW5r ZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVy YXRpb24iPjxsaXRlcmFsPm1heF9yZXRlbnRpb25fZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPiBh bmQsCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13 aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uPC9saXRlcmFsPjwvbGluaz4uCiAgICAgICBPbmx5IGEgc3VwZXJ1c2VyIGNhbiBzZXQg PGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxzZTwvbGl0ZXJhbD4uCiAgICAgIDwvcGFy YT4KIApAQCAtMzM5LDYgKzM0MCwxNSBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPAogICAgICAg PHF1b3RlPjxsaXRlcmFsPnBnX2NvbmZsaWN0X2RldGVjdGlvbjwvbGl0ZXJhbD48L3F1b3RlPiwg Y3JlYXRlZCB0byByZXRhaW4KICAgICAgIGRlYWQgdHVwbGVzIGZvciBjb25mbGljdCBkZXRlY3Rp b24sIHdpbGwgYmUgZHJvcHBlZC4KICAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAg V2hlbiB0aGUgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgICBwYXJhbWV0ZXIgaXMgc2V0IHRvIDxsaXRlcmFs PnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+LCB0aGUgc3lzdGVtCisg ICAgICBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJs ZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5CisgICAgICBleGlzdC4gQ29udmVyc2VseSwgaWYgdGhl IGRlc3RpbmF0aW9uIGlzIGNoYW5nZWQgdG8KKyAgICAgIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4s IGxvZ2dpbmcgdG8gdGhlIHRhYmxlIHN0b3BzIGFuZCB0aGUgaW50ZXJuYWwKKyAgICAgIHRhYmxl IGlzIGF1dG9tYXRpY2FsbHkgZHJvcHBlZC4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRp b24uc2dtbAppbmRleCBiN2RkMzYxMjk0Yi4uMDVlNGE3MDBlZmYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yNDcsNiArMjQ3LDQwIEBAIENSRUFURSBT VUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9u YW1lPC9yZXBsYWNlYWJsCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50 cnk+CiAKKyAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBh cmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+CisgICAgICAgIDx0ZXJtPjxsaXRl cmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gKDx0eXBlPmVudW08L3R5cGU+ KTwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAg U3BlY2lmaWVzIHRoZSBkZXN0aW5hdGlvbiBmb3IgcmVjb3JkaW5nIGxvZ2ljYWwgcmVwbGljYXRp b24gY29uZmxpY3RzLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgVGhlIGF2YWlsYWJsZSBkZXN0aW5hdGlvbnMgYXJlOgorICAgICAgICAgIDxpdGVtaXplZGxp c3Q+CisgICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAg ICAgIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD46IENvbmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVk IGluIHRoZSBzZXJ2ZXIgbG9nLgorICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVo YXZpb3IuCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAg ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRl cmFsPnRhYmxlPC9saXRlcmFsPjogVGhlIHN5c3RlbSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBz dHJ1Y3R1cmVkIHRhYmxlCisgICAgICAgICAgICAgbmFtZWQgPGxpdGVyYWw+cGdfY29uZmxpY3Rf Jmx0O3N1YmlkJmd0OzwvbGl0ZXJhbD4gaW4gdGhlCisgICAgICAgICAgICAgPGxpdGVyYWw+cGdf Y29uZmxpY3Q8L2xpdGVyYWw+IHNjaGVtYS4gVGhpcyBhbGxvd3MgZm9yIGVhc3kgcXVlcnlpbmcg YW5kCisgICAgICAgICAgICAgYW5hbHlzaXMgb2YgY29uZmxpY3RzLiBUaGlzIHRhYmxlIGlzIGF1 dG9tYXRpY2FsbHkgZHJvcHBlZCB3aGVuIHRoZQorICAgICAgICAgICAgIHN1YnNjcmlwdGlvbiBp cyByZW1vdmVkLgorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICA8 bGl0ZXJhbD5hbGw8L2xpdGVyYWw+OiBSZWNvcmRzIHRvIGJvdGggdGhlIHNlcnZlciBsb2cgYW5k IHRoZSB0YWJsZS4KKyAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICAgPC9saXN0aXRlbT4K KyAgICAgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICAgIDx2YXJsaXN0ZW50cnkg aWQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29weS1kYXRhIj4KICAgICAg ICAgPHRlcm0+PGxpdGVyYWw+Y29weV9kYXRhPC9saXRlcmFsPiAoPHR5cGU+Ym9vbGVhbjwvdHlw ZT4pPC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+Ci0tIAoyLjQ5LjAKCg== --0000000000001155df064842747b Content-Type: application/octet-stream; name="v21-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v21-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkcg5n711 RnJvbSA2MzMxNzA2NTNmNzg4ZGZkNWFlNGUyOTMwNThmYTBjOTNiOGY1Yjg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogTW9uLCAxMiBKYW4gMjAyNiAyMDoyMTowMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDIvM10gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y IAogdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBjb3Jl IGxvZ2ljIHRvIHBvcHVsYXRlIHRoZSBjb25mbGljdCBsb2cgdGFibGUgd2hlbmV2ZXIKYSBsb2dp Y2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0IGlzIGRldGVjdGVkLiBJdCBjYXB0dXJlcyB0aGUgcmVt b3RlIHRyYW5zYWN0aW9uCmRldGFpbHMgYWxvbmcgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBsb2Nh bCBzdGF0ZSBhdCB0aGUgdGltZSBvZiB0aGUgY29uZmxpY3QuCgpIYW5kbGluZyBNdWx0aS1yb3cg Q29uZmxpY3RzOiBBIHNpbmdsZSByZW1vdGUgdHVwbGUgbWF5IGNvbmZsaWN0IHdpdGggbXVsdGlw bGUKbG9jYWwgdHVwbGVzIChlLmcuLCBpbiB0aGUgY2FzZSBvZiBtdWx0aXBsZV91bmlxdWVfY29u ZmxpY3RzKS4gVG8gaGFuZGxlIHRoaXMsCnRoZSBpbmZyYXN0cnVjdHVyZSBjcmVhdGVzIGEgc2lu Z2xlIHJvdyBpbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGZvciBlYWNoCnJlbW90ZSB0dXBsZS4g VGhlIGRldGFpbHMgb2YgYWxsIGNvbmZsaWN0aW5nIGxvY2FsIHJvd3MgYXJlIGFnZ3JlZ2F0ZWQg aW50byBhCnNpbmdsZSBKU09OIGFycmF5IGluIHRoZSBsb2NhbF9jb25mbGljdHMgY29sdW1uLgoK VGhlIEpTT04gYXJyYXkgdXNlcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZWQgZm9ybWF0OgpbIHsg InhpZCI6ICIxMDAxIiwgImNvbW1pdF90cyI6ICIyMDI1LTEyLTI1IDEwOjAwOjAwKzA1OjMwIiwg Im9yaWdpbiI6ICJub2RlXzEiLAoia2V5IjogeyJpZCI6IDF9LCAidHVwbGUiOiB7ImlkIjogMSwg InZhbCI6ICJvbGRfZGF0YSJ9IH0sIC4uLiBdCgpFeGFtcGxlIG9mIHF1ZXJ5aW5nIHRoZSBzdHJ1 Y3R1cmVkIGNvbmZsaWN0IGRhdGE6CgpTRUxFQ1QgcmVtb3RlX3hpZCwgcmVsbmFtZSwgcmVtb3Rl X29yaWdpbiwgbG9jYWxfY29uZmxpY3RzWzFdIC0+PiAneGlkJyBBUyBsb2NhbF94aWQsCiAgICAg ICBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd0dXBsZScgQVMgbG9jYWxfdHVwbGUKRlJPTSBteXNj aGVtYS5jb25mbGljdF9sb2dfaGlzdG9yeTI7CgogcmVtb3RlX3hpZCB8IHJlbG5hbWUgIHwgcmVt b3RlX29yaWdpbiB8IGxvY2FsX3hpZCB8ICAgICBsb2NhbF90dXBsZQotLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgICAgNzYwIHwgdGVzdCAgICAgfCBwZ18xNjQwNiAgICAgIHwgNzcxICAgICAgIHwgeyJh IjoxLCJiIjoxMH0KICAgICAgICA3NjUgfCBjb25mX3RhYiB8IHBnXzE2NDA2ICAgICAgfCA3NzUg ICAgICAgfCB7ImEiOjIsImIiOjIsImMiOjJ9Ci0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9jb25mbGljdC5jIHwgNTYwICsrKysrKysrKysrKysrKysrKystLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jIHwgICAxICsKIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICB8ICAzMSArLQogc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vY29uZmxpY3QuaCAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oICB8ICAgNyArCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVf Y29uZmxpY3RzLnBsICAgfCAgNjAgKystCiA2IGZpbGVzIGNoYW5nZWQsIDYxNyBpbnNlcnRpb25z KCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2NvbmZsaWN0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2Nv bmZsaWN0LmMKaW5kZXggOTMyMjJlZTNiODguLmQwNWFmMmZiZDZmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCkBAIC0xNSwxMyArMTUsMjAgQEAKICNpbmNs dWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL2NvbW1pdF90cy5oIgorI2luY2x1 ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGVhbS5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNs dWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtl cl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxz L2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRlICJ1dGls cy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKKyNpbmNsdWRlICJ1dGls cy9qc29uYi5oIgogCiBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQ29uZmxpY3RUeXBlTmFtZXNb XSA9IHsKIAlbQ1RfSU5TRVJUX0VYSVNUU10gPSAiaW5zZXJ0X2V4aXN0cyIsCkBAIC0zNCw2ICs0 MSwxOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQ29uZmxpY3RUeXBlTmFtZXNbXSA9IHsK IAlbQ1RfTVVMVElQTEVfVU5JUVVFX0NPTkZMSUNUU10gPSAibXVsdGlwbGVfdW5pcXVlX2NvbmZs aWN0cyIKIH07CiAKKy8qIFNjaGVtYSBmb3IgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUgJ2xvY2Fs X2NvbmZsaWN0cycgSlNPTiBhcnJheSAqLworc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1u RGVmIExvY2FsQ29uZmxpY3RTY2hlbWFbXSA9Cit7CisJeyAuYXR0bmFtZSA9ICJ4aWQiLCAgICAg ICAuYXR0dHlwaWQgPSBYSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gImNvbW1pdF90cyIsIC5hdHR0 eXBpZCA9IFRJTUVTVEFNUFRaT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJvcmlnaW4iLCAgICAuYXR0 dHlwaWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJrZXkiLCAgICAgICAuYXR0dHlwaWQg PSBKU09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJ0dXBsZSIsICAgICAuYXR0dHlwaWQgPSBKU09O T0lEIH0KK307CisKKyNkZWZpbmUgTUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlMgbGVuZ3Ro b2YoTG9jYWxDb25mbGljdFNjaGVtYSkKKwogc3RhdGljIGludAllcnJjb2RlX2FwcGx5X2NvbmZs aWN0KENvbmZsaWN0VHlwZSB0eXBlKTsKIHN0YXRpYyB2b2lkIGVycmRldGFpbF9hcHBseV9jb25m bGljdChFU3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCSBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLApA QCAtNTAsOCArNjksMjcgQEAgc3RhdGljIGNoYXIgKmJ1aWxkX3R1cGxlX3ZhbHVlX2RldGFpbHMo RVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkJCQkJCQkgICBUdXBs ZVRhYmxlU2xvdCAqbG9jYWxzbG90LAogCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnJlbW90 ZXNsb3QsCiAJCQkJCQkJCQkgICBPaWQgaW5kZXhvaWQpOworc3RhdGljIHZvaWQgYnVpbGRfaW5k ZXhfZGF0dW1zX2Zyb21fc2xvdChFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gbG9jYWxyZWwsCisJ CQkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LAorCQkJCQkJCQkJCSBSZWxhdGlvbiBpbmRl eERlc2MsIERhdHVtICp2YWx1ZXMsCisJCQkJCQkJCQkJIGJvb2wgKmlzbnVsbCk7CiBzdGF0aWMg Y2hhciAqYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gbG9j YWxyZWwsCiAJCQkJCQkJCQlUdXBsZVRhYmxlU2xvdCAqc2xvdCwgT2lkIGluZGV4b2lkKTsKK3N0 YXRpYyBEYXR1bSB0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0oVHVwbGVUYWJsZVNsb3Qg KnNsb3QpOworc3RhdGljIERhdHVtIHR1cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbihF U3RhdGUgKmVzdGF0ZSwKKwkJCQkJCQkJCQkJICAgUmVsYXRpb24gbG9jYWxyZWwsCisJCQkJCQkJ CQkJCSAgIE9pZCByZXBsaWNhX2luZGV4LAorCQkJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAq c2xvdCk7CitzdGF0aWMgVHVwbGVEZXNjIGJ1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYyh2b2lkKTsK K3N0YXRpYyBEYXR1bSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9hcnJheShFU3RhdGUgKmVz dGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkJCQkgIENvbmZsaWN0VHlwZSBjb25mbGljdF90 eXBlLAorCQkJCQkJCQkJCQkgIExpc3QgKmNvbmZsaWN0dHVwbGVzKTsKK3N0YXRpYyB2b2lkIHBy ZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJ CQkJCQkJCQkgICBSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCwKKwkJCQkJCQkJCSAgIENvbmZsaWN0 VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNs b3QsCisJCQkJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1cGxlcywKKwkJCQkJCQkJCSAgIFR1cGxl VGFibGVTbG90ICpyZW1vdGVzbG90KTsKIAogLyoKICAqIEdldCB0aGUgeG1pbiBhbmQgY29tbWl0 IHRpbWVzdGFtcCBkYXRhIChvcmlnaW4gYW5kIHRpbWVzdGFtcCkgYXNzb2NpYXRlZApAQCAtMTA1 LDMwICsxNDMsOTAgQEAgUmVwb3J0QXBwbHlDb25mbGljdChFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0 UmVsSW5mbyAqcmVsaW5mbywgaW50IGVsZXZlbCwKIAkJCQkJQ29uZmxpY3RUeXBlIHR5cGUsIFR1 cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAogCQkJCQlUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xv dCwgTGlzdCAqY29uZmxpY3R0dXBsZXMpCiB7Ci0JUmVsYXRpb24JbG9jYWxyZWwgPSByZWxpbmZv LT5yaV9SZWxhdGlvbkRlc2M7Ci0JU3RyaW5nSW5mb0RhdGEgZXJyX2RldGFpbDsKKwlSZWxhdGlv bgkJbG9jYWxyZWwgPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJQ29uZmxpY3RMb2dEZXN0 CWRlc3Q7CisJUmVsYXRpb24JCWNvbmZsaWN0bG9ncmVsOworCWJvb2wJCQlsb2dfZGVzdF9jbHQ7 CisJYm9vbCAJCQlsb2dfZGVzdF9sb2dmaWxlOwogCi0JaW5pdFN0cmluZ0luZm8oJmVycl9kZXRh aWwpOworCXBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2NvbmZsaWN0KE15U3Vic2NyaXB0aW9u LT5vaWQsIHR5cGUpOwogCi0JLyogRm9ybSBlcnJkZXRhaWwgbWVzc2FnZSBieSBjb21iaW5pbmcg Y29uZmxpY3RpbmcgdHVwbGVzIGluZm9ybWF0aW9uLiAqLwotCWZvcmVhY2hfcHRyKENvbmZsaWN0 VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykKLQkJZXJyZGV0YWlsX2Fw cGx5X2NvbmZsaWN0KGVzdGF0ZSwgcmVsaW5mbywgdHlwZSwgc2VhcmNoc2xvdCwKLQkJCQkJCQkJ IGNvbmZsaWN0dHVwbGUtPnNsb3QsIHJlbW90ZXNsb3QsCi0JCQkJCQkJCSBjb25mbGljdHR1cGxl LT5pbmRleG9pZCwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPnhtaW4sCi0JCQkJCQkJCSBjb25m bGljdHR1cGxlLT5vcmlnaW4sCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT50cywKLQkJCQkJCQkJ ICZlcnJfZGV0YWlsKTsKKwkvKgorCSAqIEdldCBib3RoIHRoZSBjb25mbGljdCBsb2cgZGVzdGlu YXRpb24gYW5kIHRoZSBvcGVuZWQgY29uZmxpY3QgbG9nCisJICogcmVsYXRpb24gZm9yIGluc2Vy dGlvbi4KKwkgKi8KKwljb25mbGljdGxvZ3JlbCA9IEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxl KCZkZXN0KTsKIAotCXBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2NvbmZsaWN0KE15U3Vic2Ny aXB0aW9uLT5vaWQsIHR5cGUpOworCWxvZ19kZXN0X2NsdCA9ICgoZGVzdCAmIENPTkZMSUNUX0xP R19ERVNUX1RBQkxFKSAhPSAwKTsKKwlsb2dfZGVzdF9sb2dmaWxlID0gKChkZXN0ICYgQ09ORkxJ Q1RfTE9HX0RFU1RfTE9HKSAhPSAwKTsKKworCS8qIEluc2VydCB0byB0YWJsZSBpZiByZXF1ZXN0 ZWQuICovCisJaWYgKGxvZ19kZXN0X2NsdCkKKwl7CisJCUFzc2VydChjb25mbGljdGxvZ3JlbCAh PSBOVUxMKTsKKworCQkvKgorCQkgKiBQcmVwYXJlIHRoZSBjb25mbGljdCBsb2cgdHVwbGUuIElm IHRoZSBlcnJvciBsZXZlbCBpcyBiZWxvdyBFUlJPUiwKKwkJICogaW5zZXJ0IGl0IGltbWVkaWF0 ZWx5LiBPdGhlcndpc2UsIGRlZmVyIHRoZSBpbnNlcnRpb24gdG8gYSBuZXcKKwkJICogdHJhbnNh Y3Rpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgb25lIGFib3J0cywgZW5zdXJpbmcgdGhlIGluc2VydGlv biBvZgorCQkgKiB0aGUgbG9nIHR1cGxlIGlzIG5vdCByb2xsZWQgYmFjay4KKwkJICovCisJCXBy ZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKGVzdGF0ZSwKKwkJCQkJCQkJICAgcmVsaW5mby0+cmlf UmVsYXRpb25EZXNjLAorCQkJCQkJCQkgICBjb25mbGljdGxvZ3JlbCwKKwkJCQkJCQkJICAgdHlw ZSwKKwkJCQkJCQkJICAgc2VhcmNoc2xvdCwKKwkJCQkJCQkJICAgY29uZmxpY3R0dXBsZXMsCisJ CQkJCQkJCSAgIHJlbW90ZXNsb3QpOworCQlpZiAoZWxldmVsIDwgRVJST1IpCisJCQlJbnNlcnRD b25mbGljdExvZ1R1cGxlKGNvbmZsaWN0bG9ncmVsKTsKKworCQl0YWJsZV9jbG9zZShjb25mbGlj dGxvZ3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJaWYgKCFsb2dfZGVzdF9sb2dmaWxlKQor CQl7CisJCQkvKgorCQkJICogTm90IGxvZ2dpbmcgY29uZmxpY3QgZGV0YWlscyB0byB0aGUgc2Vy dmVyIGxvZzsgUmVwb3J0IHRoZSBlcnJvcgorCQkJICogbXNnIGJ1dCBvbWl0IHJhdyB0dXBsZSBk YXRhIGZyb20gc2VydmVyIGxvZ3Mgc2luY2UgaXQncyBhbHJlYWR5CisJCQkgKiBjYXB0dXJlZCBp biB0aGUgaW50ZXJuYWwgdGFibGUuCisJCQkgKi8KKwkJCWVyZXBvcnQoZWxldmVsLAorCQkJCQll cnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAorCQkJCQllcnJtc2coImNvbmZsaWN0IGRldGVj dGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9JXMiLAorCQkJCQkJZ2V0X25hbWVz cGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKGxvY2FscmVsKSksCisJCQkJCQlSZWxhdGlv bkdldFJlbGF0aW9uTmFtZShsb2NhbHJlbCksCisJCQkJCQlDb25mbGljdFR5cGVOYW1lc1t0eXBl XSksCisJCQkJCWVycmRldGFpbCgiQ29uZmxpY3QgZGV0YWlscyBsb2dnZWQgdG8gaW50ZXJuYWwg dGFibGUgd2l0aCBPSUQgJXUuIiwKKwkJCQkJCQlNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dy ZWxpZCkpOworCQl9CisJfQogCi0JZXJlcG9ydChlbGV2ZWwsCi0JCQllcnJjb2RlX2FwcGx5X2Nv bmZsaWN0KHR5cGUpLAotCQkJZXJybXNnKCJjb25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiBc IiVzLiVzXCI6IGNvbmZsaWN0PSVzIiwKLQkJCQkgICBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRp b25HZXROYW1lc3BhY2UobG9jYWxyZWwpKSwKLQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShsb2NhbHJlbCksCi0JCQkJICAgQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAotCQkJZXJyZGV0 YWlsX2ludGVybmFsKCIlcyIsIGVycl9kZXRhaWwuZGF0YSkpOworCS8qIExvZyBpbnRvIHRoZSBz ZXJ2ZXIgbG9nIGlmIHJlcXVlc3RlZC4gKi8KKwlpZiAobG9nX2Rlc3RfbG9nZmlsZSkKKwl7CisJ CVN0cmluZ0luZm9EYXRhCWVycl9kZXRhaWw7CisKKwkJaW5pdFN0cmluZ0luZm8oJmVycl9kZXRh aWwpOworCisJCS8qIEZvcm0gZXJyZGV0YWlsIG1lc3NhZ2UgYnkgY29tYmluaW5nIGNvbmZsaWN0 aW5nIHR1cGxlcyBpbmZvcm1hdGlvbi4gKi8KKwkJZm9yZWFjaF9wdHIoQ29uZmxpY3RUdXBsZUlu Zm8sIGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0dHVwbGVzKQorCQkJZXJyZGV0YWlsX2FwcGx5X2Nv bmZsaWN0KGVzdGF0ZSwgcmVsaW5mbywgdHlwZSwgc2VhcmNoc2xvdCwKKwkJCQkJCQkJCWNvbmZs aWN0dHVwbGUtPnNsb3QsIHJlbW90ZXNsb3QsCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT5pbmRl eG9pZCwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPnhtaW4sCisJCQkJCQkJCQljb25mbGljdHR1 cGxlLT5vcmlnaW4sCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT50cywKKwkJCQkJCQkJCSZlcnJf ZGV0YWlsKTsKKworCQkvKiBTdGFuZGFyZCByZXBvcnRpbmcgd2l0aCBmdWxsIGludGVybmFsIGRl dGFpbHMuICovCisJCWVyZXBvcnQoZWxldmVsLAorCQkJCWVycmNvZGVfYXBwbHlfY29uZmxpY3Qo dHlwZSksCisJCQkJZXJybXNnKCJjb25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzLiVz XCI6IGNvbmZsaWN0PSVzIiwKKwkJCQkJICAgZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0 TmFtZXNwYWNlKGxvY2FscmVsKSksCisJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxv Y2FscmVsKSwKKwkJCQkJICAgQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFp bF9pbnRlcm5hbCgiJXMiLCBlcnJfZGV0YWlsLmRhdGEpKTsKKwl9CiB9CiAKIC8qCkBAIC0xNjIs NiArMjYwLDY0IEBAIEluaXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbykK IAlyZWxJbmZvLT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSB1bmlxdWVJbmRleGVzOwog fQogCisvKgorICogR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUKKyAqCisgKiBGZXRjaGVzIGNv bmZsaWN0IGxvZ2dpbmcgbWV0YWRhdGEgZnJvbSB0aGUgY2FjaGVkIE15U3Vic2NyaXB0aW9uIHBv aW50ZXIuCisgKiBTZXRzIHRoZSBkZXN0aW5hdGlvbiBlbnVtIGluICpsb2dfZGVzdCBhbmQsIGlm IGFwcGxpY2FibGUsIG9wZW5zIGFuZAorICogcmV0dXJucyB0aGUgcmVsYXRpb24gaGFuZGxlIGZv ciB0aGUgaW50ZXJuYWwgbG9nIHRhYmxlLgorICovCitSZWxhdGlvbgorR2V0Q29uZmxpY3RMb2dE ZXN0QW5kVGFibGUoQ29uZmxpY3RMb2dEZXN0ICpsb2dfZGVzdCkKK3sKKwlPaWQJCQljb25mbGlj dGxvZ3JlbGlkOworCVJlbGF0aW9uCWNvbmZsaWN0bG9ncmVsID0gTlVMTDsKKworCS8qCisJICog Q29udmVydCB0aGUgdGV4dCBsb2cgZGVzdGluYXRpb24gdG8gdGhlIGludGVybmFsIGVudW0uICBN eVN1YnNjcmlwdGlvbgorCSAqIGFscmVhZHkgY29udGFpbnMgdGhlIGRhdGEgZnJvbSBwZ19zdWJz Y3JpcHRpb24uCisJICovCisJKmxvZ19kZXN0ID0gR2V0TG9nRGVzdGluYXRpb24oTXlTdWJzY3Jp cHRpb24tPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkvKiBRdWljayBleGl0IGlmIGEgY29uZmxpY3Qg bG9nIHRhYmxlIHdhcyBub3QgcmVxdWVzdGVkLiAqLworCWlmICgoKmxvZ19kZXN0ICYgQ09ORkxJ Q1RfTE9HX0RFU1RfVEFCTEUpID09IDApCisJCXJldHVybiBOVUxMOworCisJY29uZmxpY3Rsb2dy ZWxpZCA9IE15U3Vic2NyaXB0aW9uLT5jb25mbGljdGxvZ3JlbGlkOworCisJQXNzZXJ0KE9pZElz VmFsaWQoY29uZmxpY3Rsb2dyZWxpZCkpOworCisJY29uZmxpY3Rsb2dyZWwgPSB0YWJsZV9vcGVu KGNvbmZsaWN0bG9ncmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCWlmIChjb25mbGljdGxvZ3Jl bCA9PSBOVUxMKQorCQllbG9nKEVSUk9SLCAiY291bGQgbm90IG9wZW4gY29uZmxpY3QgbG9nIHRh YmxlIChPSUQgJXUpIiwKKwkJCSBjb25mbGljdGxvZ3JlbGlkKTsKKworCXJldHVybiBjb25mbGlj dGxvZ3JlbDsKK30KKworLyoKKyAqIEluc2VydENvbmZsaWN0TG9nVHVwbGUKKyAqCisgKiBJbnNl cnQgY29uZmxpY3QgbG9nIHR1cGxlIGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4gSXQgdXNl cworICogSEVBUF9JTlNFUlRfTk9fTE9HSUNBTCB0byBleHBsaWNpdGx5IGJsb2NrIGxvZ2ljYWwg ZGVjb2Rpbmcgb2YgdGhlIHR1cGxlCisgKiBpbnNlcnRlZCBpbnRvIHRoZSBjb25mbGljdCBsb2cg dGFibGUuCisgKi8KK3ZvaWQKK0luc2VydENvbmZsaWN0TG9nVHVwbGUoUmVsYXRpb24gY29uZmxp Y3Rsb2dyZWwpCit7CisJaW50CQkJb3B0aW9ucyA9IEhFQVBfSU5TRVJUX05PX0xPR0lDQUw7CisK KwkvKiBBIHZhbGlkIHR1cGxlIG11c3QgYmUgcHJlcGFyZWQgYW5kIHN0b3JlZCBpbiBNeUxvZ2lj YWxSZXBXb3JrZXIuICovCisJQXNzZXJ0KE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9n X3R1cGxlICE9IE5VTEwpOworCisJaGVhcF9pbnNlcnQoY29uZmxpY3Rsb2dyZWwsIE15TG9naWNh bFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlLAorCQkJCUdldEN1cnJlbnRDb21tYW5kSWQo dHJ1ZSksIG9wdGlvbnMsIE5VTEwpOworCisJLyogRnJlZSBjb25mbGljdCBsb2cgdHVwbGUuICov CisJaGVhcF9mcmVldHVwbGUoTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUp OworCU15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0gTlVMTDsKK30KKwog LyoKICAqIEFkZCBTUUxTVEFURSBlcnJvciBjb2RlIHRvIHRoZSBjdXJyZW50IGNvbmZsaWN0IHJl cG9ydC4KICAqLwpAQCAtNDcyLDYgKzYyOCw0MCBAQCBidWlsZF90dXBsZV92YWx1ZV9kZXRhaWxz KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCXJldHVybiB0dXBsZV92 YWx1ZS5kYXRhOwogfQogCisvKgorICogSGVscGVyIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlICJy YXciIGluZGV4IGtleSBEYXR1bXMgYW5kIHRoZWlyIG51bGwgZmxhZ3MKKyAqIGZyb20gYSBUdXBs ZVRhYmxlU2xvdCwgZ2l2ZW4gYW4gYWxyZWFkeSBvcGVuIGluZGV4IGRlc2NyaXB0b3IuCisgKiBU aGlzIGlzIHRoZSByZXVzYWJsZSBjb3JlIGxvZ2ljLgorICovCitzdGF0aWMgdm9pZAorYnVpbGRf aW5kZXhfZGF0dW1zX2Zyb21fc2xvdChFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gbG9jYWxyZWws CisJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LAorCQkJCQkJCSBSZWxhdGlvbiBpbmRleERl c2MsIERhdHVtICp2YWx1ZXMsCisJCQkJCQkJIGJvb2wgKmlzbnVsbCkKK3sKKwlUdXBsZVRhYmxl U2xvdCAqdGFibGVzbG90ID0gc2xvdDsKKworCS8qCisJICogSWYgdGhlIHNsb3QgaXMgYSB2aXJ0 dWFsIHNsb3QsIGNvcHkgaXQgaW50byBhIGhlYXAgdHVwbGUgc2xvdCBhcworCSAqIEZvcm1JbmRl eERhdHVtIG9ubHkgd29ya3Mgd2l0aCBoZWFwIHR1cGxlIHNsb3RzLgorCSAqLworCWlmIChUVFNf SVNfVklSVFVBTChzbG90KSkKKwl7CisJCS8qIFNsb3QgaXMgY3JlYXRlZCB3aXRoaW4gdGhlIEVT dGF0ZSdzIHR1cGxlIHRhYmxlICovCisJCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxv Y2FscmVsLCAmZXN0YXRlLT5lc190dXBsZVRhYmxlKTsKKwkJdGFibGVzbG90ID0gRXhlY0NvcHlT bG90KHRhYmxlc2xvdCwgc2xvdCk7CisJfQorCisJLyoKKwkgKiBJbml0aWFsaXplIGVjeHRfc2Nh bnR1cGxlIGZvciBwb3RlbnRpYWwgdXNlIGluIEZvcm1JbmRleERhdHVtCisJICovCisJR2V0UGVy VHVwbGVFeHByQ29udGV4dChlc3RhdGUpLT5lY3h0X3NjYW50dXBsZSA9IHRhYmxlc2xvdDsKKwor CS8qIEZvcm0gdGhlIGluZGV4IGRhdHVtcyAqLworCUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJ bmZvKGluZGV4RGVzYyksIHRhYmxlc2xvdCwgZXN0YXRlLCB2YWx1ZXMsCisJCQkJICAgaXNudWxs KTsKK30KKwogLyoKICAqIEhlbHBlciBmdW5jdGlvbnMgdG8gY29uc3RydWN0IGEgc3RyaW5nIGRl c2NyaWJpbmcgdGhlIGNvbnRlbnRzIG9mIGFuIGluZGV4CiAgKiBlbnRyeS4gU2VlIEJ1aWxkSW5k ZXhWYWx1ZURlc2NyaXB0aW9uIGZvciBkZXRhaWxzLgpAQCAtNDg3LDQxICs2NzcsMzI1IEBAIGJ1 aWxkX2luZGV4X3ZhbHVlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLCBU dXBsZVRhYmxlU2xvdCAqc2xvdCwKIAlSZWxhdGlvbglpbmRleERlc2M7CiAJRGF0dW0JCXZhbHVl c1tJTkRFWF9NQVhfS0VZU107CiAJYm9vbAkJaXNudWxsW0lOREVYX01BWF9LRVlTXTsKLQlUdXBs ZVRhYmxlU2xvdCAqdGFibGVzbG90ID0gc2xvdDsKIAotCWlmICghdGFibGVzbG90KQorCWlmICgh c2xvdCkKIAkJcmV0dXJuIE5VTEw7CiAKIAlBc3NlcnQoQ2hlY2tSZWxhdGlvbk9pZExvY2tlZEJ5 TWUoaW5kZXhvaWQsIFJvd0V4Y2x1c2l2ZUxvY2ssIHRydWUpKTsKIAogCWluZGV4RGVzYyA9IGlu ZGV4X29wZW4oaW5kZXhvaWQsIE5vTG9jayk7CiAKLQkvKgotCSAqIElmIHRoZSBzbG90IGlzIGEg dmlydHVhbCBzbG90LCBjb3B5IGl0IGludG8gYSBoZWFwIHR1cGxlIHNsb3QgYXMKLQkgKiBGb3Jt SW5kZXhEYXR1bSBvbmx5IHdvcmtzIHdpdGggaGVhcCB0dXBsZSBzbG90cy4KLQkgKi8KLQlpZiAo VFRTX0lTX1ZJUlRVQUwoc2xvdCkpCisJYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xvdChlc3Rh dGUsIGxvY2FscmVsLCBzbG90LCBpbmRleERlc2MsIHZhbHVlcywKKwkJCQkJCQkJIGlzbnVsbCk7 CisKKwlpbmRleF92YWx1ZSA9IEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uKGluZGV4RGVzYywg dmFsdWVzLCBpc251bGwpOworCisJaW5kZXhfY2xvc2UoaW5kZXhEZXNjLCBOb0xvY2spOworCisJ cmV0dXJuIGluZGV4X3ZhbHVlOworfQorCisvKgorICogdHVwbGVfdGFibGVfc2xvdF90b19qc29u X2RhdHVtCisgKgorICogSGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgYSBUdXBsZVRhYmxlU2xv dCB0byBKc29uYi4KKyAqLworc3RhdGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2pzb25f ZGF0dW0oVHVwbGVUYWJsZVNsb3QgKnNsb3QpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCURhdHVt CQlkYXR1bTsKKwlEYXR1bQkJanNvbjsKKworCUFzc2VydChzbG90ICE9IE5VTEwpOworCisJdHVw bGUgPSBFeGVjQ29weVNsb3RIZWFwVHVwbGUoc2xvdCk7CisJZGF0dW0gPSBoZWFwX2NvcHlfdHVw bGVfYXNfZGF0dW0odHVwbGUsIHNsb3QtPnR0c190dXBsZURlc2NyaXB0b3IpOworCisJanNvbiA9 IERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGRhdHVtKTsKKwloZWFwX2ZyZWV0dXBs ZSh0dXBsZSk7CisKKwlyZXR1cm4ganNvbjsKK30KKworLyoKKyAqIHR1cGxlX3RhYmxlX3Nsb3Rf dG9faW5kZXh0dXBfanNvbgorICoKKyAqIEZldGNoIHJlcGxpY2EgaWRlbnRpdHkga2V5IGZyb20g dGhlIHR1cGxlIHRhYmxlIHNsb3QgYW5kIGNvbnZlcnQgaW50byBhCisgKiBqc29uYiBkYXR1bS4K KyAqLworc3RhdGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oRVN0 YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkgIE9pZCBpbmRleGlkLCBU dXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlSZWxhdGlvbglpbmRleERlc2M7CisJRGF0dW0JCXZh bHVlc1tJTkRFWF9NQVhfS0VZU107CisJYm9vbAkJaXNudWxsW0lOREVYX01BWF9LRVlTXTsKKwlI ZWFwVHVwbGUJdHVwbGU7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0dW0JCWRhdHVtOworCisJ QXNzZXJ0KHNsb3QgIT0gTlVMTCk7CisKKwlBc3NlcnQoQ2hlY2tSZWxhdGlvbk9pZExvY2tlZEJ5 TWUoaW5kZXhpZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOworCisJaW5kZXhEZXNjID0gaW5k ZXhfb3BlbihpbmRleGlkLCBOb0xvY2spOworCisJYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xv dChlc3RhdGUsIGxvY2FscmVsLCBzbG90LCBpbmRleERlc2MsIHZhbHVlcywKKwkJCQkJCQkJIGlz bnVsbCk7CisJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IoaW5kZXhEZXNjKTsKKworCS8qIEJs ZXNzIHRoZSB0dXBkZXNjIHNvIGl0IGNhbiBiZSBsb29rZWQgdXAgYnkgcm93X3RvX2pzb24uICov CisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKiBGb3JtIHRoZSByZXBsaWNhIGlkZW50 aXR5IHR1cGxlLiAqLworCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywg aXNudWxsKTsKKwlkYXR1bSA9IGhlYXBfY29weV90dXBsZV9hc19kYXR1bSh0dXBsZSwgdHVwZGVz Yyk7CisKKwlpbmRleF9jbG9zZShpbmRleERlc2MsIE5vTG9jayk7CisJaGVhcF9mcmVldHVwbGUo dHVwbGUpOworCisJLyogQ29udmVydCB0byBhIEpTT05CIGRhdHVtLiAqLworCXJldHVybiBEaXJl Y3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1bSk7Cit9CisKKy8qCisgKiBidWlsZF9j b25mbGljdF90dXBsZWRlc2MKKyAqCisgKiBCdWlsZCBhbmQgYmxlc3MgYSB0dXBsZSBkZXNjcmlw dG9yIGZvciB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlCisgKiBiYXNlZCBvbiB0aGUg cHJlZGVmaW5lZCBMb2NhbENvbmZsaWN0U2NoZW1hLgorICovCitzdGF0aWMgVHVwbGVEZXNjCiti dWlsZF9jb25mbGljdF90dXBsZWRlc2Modm9pZCkKK3sKKwlUdXBsZURlc2MgICB0dXBkZXNjOwor CisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKE1BWF9MT0NBTF9DT05GTElDVF9J TkZPX0FUVFJTKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgTUFYX0xPQ0FMX0NPTkZMSUNUX0lO Rk9fQVRUUlM7IGkrKykKKwkJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSAoaSArIDEpLAorCQkJCQkJICAgTG9jYWxDb25mbGljdFNjaGVtYVtpXS5hdHRuYW1lLAorCQkJ CQkJICAgTG9jYWxDb25mbGljdFNjaGVtYVtpXS5hdHR0eXBpZCwKKwkJCQkJCSAgIC0xLCAwKTsK KworCUJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOworCisJcmV0dXJuIHR1cGRlc2M7Cit9CisKKy8q CisgKiBCdWlsZHMgdGhlIGxvY2FsIGNvbmZsaWN0cyBKU09OQiBhcnJheSBjb2x1bW4gZnJvbSB0 aGUgbGlzdCBvZgorICogQ29uZmxpY3RUdXBsZUluZm8gb2JqZWN0cy4KKyAqCisgKiBFeGFtcGxl IG91dHB1dCBzdHJ1Y3R1cmU6CisgKiBbIHsgInhpZCI6ICIxMDAxIiwgImNvbW1pdF90cyI6ICIu Li4iLCAib3JpZ2luIjogIi4uLiIsICJ0dXBsZSI6IHsuLi59IH0sIC4uLiBdCisgKi8KK3N0YXRp YyBEYXR1bQorYnVpbGRfbG9jYWxfY29uZmxpY3RzX2pzb25fYXJyYXkoRVN0YXRlICplc3RhdGUs IFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJ CQkJCQkgTGlzdCAqY29uZmxpY3R0dXBsZXMpCit7CisJTGlzdENlbGwgICAqbGM7CisJTGlzdAkg ICAqanNvbl9kYXR1bXMgPSBOSUw7IC8qIExpc3QgdG8gaG9sZCB0aGUgcm93X3RvX2pzb24gcmVz dWx0cyAodHlwZSBqc29uKSAqLworCURhdHVtCSAgICpqc29uX2RhdHVtX2FycmF5OworCWJvb2wJ ICAgKmpzb25fbnVsbF9hcnJheTsKKwlEYXR1bQkJanNvbl9hcnJheV9kYXR1bTsKKwlpbnQJCQlu dW1fY29uZmxpY3RzOworCWludAkJCWk7CisJaW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBieXZh bDsKKwljaGFyCQl0eXBhbGlnbjsKKwlUdXBsZURlc2MJdHVwZGVzYzsKKworCS8qIEJ1aWxkIGxv Y2FsIGNvbmZsaWN0cyB0dXBsZSBkZXNjcmlwdG9yLiAqLworCXR1cGRlc2MgPSBidWlsZF9jb25m bGljdF90dXBsZWRlc2MoKTsKKworCS8qIFByb2Nlc3MgbG9jYWwgY29uZmxpY3QgdHVwbGUgbGlz dCBhbmQgcHJlcGFyZSBhbiBhcnJheSBvZiBKU09OLiAqLworCWZvcmVhY2hfcHRyKENvbmZsaWN0 VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykKIAl7Ci0JCXRhYmxlc2xv dCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5lc190dXBsZVRhYmxlKTsK LQkJdGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xvdCk7CisJCURhdHVtCQl2 YWx1ZXNbTUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlNdID0gezB9OworCQlib29sCQludWxs c1tNQVhfTE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSU10gPSB7MH07CisJCWNoYXIJICAgKm9yaWdp bl9uYW1lID0gTlVMTDsKKwkJSGVhcFR1cGxlCXR1cGxlOworCQlEYXR1bQkJanNvbl9kYXR1bTsK KwkJaW50CQkJYXR0bm87CisKKwkJYXR0bm8gPSAwOworCQl2YWx1ZXNbYXR0bm8rK10gPSBUcmFu c2FjdGlvbklkR2V0RGF0dW0oY29uZmxpY3R0dXBsZS0+eG1pbik7CisKKwkJaWYgKGNvbmZsaWN0 dHVwbGUtPnRzKQorCQkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1wVHpHZXREYXR1bShjb25m bGljdHR1cGxlLT50cyk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCQlp ZiAoY29uZmxpY3R0dXBsZS0+b3JpZ2luICE9IEludmFsaWRSZXBPcmlnaW5JZCkKKwkJCXJlcGxv cmlnaW5fYnlfb2lkKGNvbmZsaWN0dHVwbGUtPm9yaWdpbiwgdHJ1ZSwgJm9yaWdpbl9uYW1lKTsK KworCQkvKiBTdG9yZSBlbXB0eSBzdHJpbmcgaWYgb3JpZ2luIG5hbWUgZm9yIHRoZSB0dXBsZSBp cyBOVUxMLiAqLworCQlpZiAob3JpZ2luX25hbWUgIT0gTlVMTCkKKwkJCXZhbHVlc1thdHRubysr XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ob3JpZ2luX25hbWUpOworCQllbHNlCisJCQludWxsc1th dHRubysrXSA9IHRydWU7CisKKwkJLyoKKwkJICogQWRkIHRoZSBjb25mbGljdGluZyBrZXkgdmFs dWVzIGluIHRoZSBjYXNlIG9mIGEgdW5pcXVlIGNvbnN0cmFpbnQKKwkJICogdmlvbGF0aW9uLgor CQkgKi8KKwkJaWYgKGNvbmZsaWN0X3R5cGUgPT0gQ1RfSU5TRVJUX0VYSVNUUyB8fAorCQkJY29u ZmxpY3RfdHlwZSA9PSBDVF9VUERBVEVfRVhJU1RTIHx8CisJCQljb25mbGljdF90eXBlID09IENU X01VTFRJUExFX1VOSVFVRV9DT05GTElDVFMpCisJCXsKKwkJCU9pZAlpbmRleG9pZCA9IGNvbmZs aWN0dHVwbGUtPmluZGV4b2lkOworCisJCQlBc3NlcnQoT2lkSXNWYWxpZChpbmRleG9pZCkgJiYg Y29uZmxpY3R0dXBsZS0+c2xvdCAmJgorCQkJCSAgIENoZWNrUmVsYXRpb25PaWRMb2NrZWRCeU1l KGluZGV4b2lkLCBSb3dFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkgIHRydWUpKTsKKwkJCXZh bHVlc1thdHRubysrXSA9CisJCQkJCXR1cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbihl c3RhdGUsIHJlbCwKKwkJCQkJCQkJCQkJCQkgIGluZGV4b2lkLAorCQkJCQkJCQkJCQkJCSAgY29u ZmxpY3R0dXBsZS0+c2xvdCk7CisJCX0KKwkJZWxzZQorCQkJbnVsbHNbYXR0bm8rK10gPSB0cnVl OworCisJCS8qIENvbnZlcnQgY29uZmxpY3RpbmcgdHVwbGUgdG8gSlNPTiBkYXR1bS4gKi8KKwkJ aWYgKGNvbmZsaWN0dHVwbGUtPnNsb3QpCisJCQl2YWx1ZXNbYXR0bm9dID0gdHVwbGVfdGFibGVf c2xvdF90b19qc29uX2RhdHVtKGNvbmZsaWN0dHVwbGUtPnNsb3QpOworCQllbHNlCisJCQludWxs c1thdHRub10gPSB0cnVlOworCisJCUFzc2VydChhdHRubyArIDEgPT0gTUFYX0xPQ0FMX0NPTkZM SUNUX0lORk9fQVRUUlMpOworCisJCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZh bHVlcywgbnVsbHMpOworCisJCWpzb25fZGF0dW0gPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0o dHVwbGUsIHR1cGRlc2MpOworCisJCS8qCisJCSAqIEJ1aWxkIHRoZSBoaWdoZXIgbGV2ZWwgSlNP TiBkYXR1bSBpbiBmb3JtYXQgZGVzY3JpYmVkIGluIGZ1bmN0aW9uCisJCSAqIGhlYWRlci4KKwkJ ICovCisJCWpzb25fZGF0dW0gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBqc29u X2RhdHVtKTsKKworCQkvKiBEb25lIHdpdGggdGhlIHRlbXBvcmFyeSB0dXBsZS4gKi8KKwkJaGVh cF9mcmVldHVwbGUodHVwbGUpOworCisJCS8qIEFkZCB0byB0aGUgYXJyYXkgZWxlbWVudC4gKi8K KwkJanNvbl9kYXR1bXMgPSBsYXBwZW5kKGpzb25fZGF0dW1zLCAodm9pZCAqKSBqc29uX2RhdHVt KTsKIAl9CiAKLQkvKgotCSAqIEluaXRpYWxpemUgZWN4dF9zY2FudHVwbGUgZm9yIHBvdGVudGlh bCB1c2UgaW4gRm9ybUluZGV4RGF0dW0gd2hlbgotCSAqIGluZGV4IGV4cHJlc3Npb25zIGFyZSBw cmVzZW50LgotCSAqLwotCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKS0+ZWN4dF9zY2Fu dHVwbGUgPSB0YWJsZXNsb3Q7CisJbnVtX2NvbmZsaWN0cyA9IGxpc3RfbGVuZ3RoKGpzb25fZGF0 dW1zKTsKIAotCS8qCi0JICogVGhlIHZhbHVlcy9udWxscyBhcnJheXMgcGFzc2VkIHRvIEJ1aWxk SW5kZXhWYWx1ZURlc2NyaXB0aW9uIHNob3VsZCBiZQotCSAqIHRoZSByZXN1bHRzIG9mIEZvcm1J bmRleERhdHVtLCB3aGljaCBhcmUgdGhlICJyYXciIGlucHV0IHRvIHRoZSBpbmRleAotCSAqIEFN LgotCSAqLwotCUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJbmZvKGluZGV4RGVzYyksIHRhYmxl c2xvdCwgZXN0YXRlLCB2YWx1ZXMsIGlzbnVsbCk7CisJanNvbl9kYXR1bV9hcnJheSA9IHBhbGxv Y19hcnJheShEYXR1bSwgbnVtX2NvbmZsaWN0cyk7CisJanNvbl9udWxsX2FycmF5ID0gcGFsbG9j MF9hcnJheShib29sLCBudW1fY29uZmxpY3RzKTsKIAotCWluZGV4X3ZhbHVlID0gQnVpbGRJbmRl eFZhbHVlRGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisJaSA9IDA7CisJ Zm9yZWFjaChsYywganNvbl9kYXR1bXMpCisJeworCQlqc29uX2RhdHVtX2FycmF5W2ldID0gKERh dHVtKSBsZmlyc3QobGMpOworCQlpKys7CisJfQogCi0JaW5kZXhfY2xvc2UoaW5kZXhEZXNjLCBO b0xvY2spOworCS8qIENvbnN0cnVjdCB0aGUganNvbltdIGFycmF5IERhdHVtLiAqLworCWdldF90 eXBsZW5ieXZhbGFsaWduKEpTT05PSUQsICZ0eXBsZW4sICZ0eXBieXZhbCwgJnR5cGFsaWduKTsK Kwlqc29uX2FycmF5X2RhdHVtID0gUG9pbnRlckdldERhdHVtKGNvbnN0cnVjdF9hcnJheShqc29u X2RhdHVtX2FycmF5LAorCQkJCQkJCQkJCQkJCSAgIG51bV9jb25mbGljdHMsCisJCQkJCQkJCQkJ CQkJICAgSlNPTk9JRCwKKwkJCQkJCQkJCQkJCQkgICB0eXBsZW4sCisJCQkJCQkJCQkJCQkJICAg dHlwYnl2YWwsCisJCQkJCQkJCQkJCQkJICAgdHlwYWxpZ24pKTsKKwlwZnJlZShqc29uX2RhdHVt X2FycmF5KTsKKwlwZnJlZShqc29uX251bGxfYXJyYXkpOworCisJcmV0dXJuIGpzb25fYXJyYXlf ZGF0dW07Cit9CiAKLQlyZXR1cm4gaW5kZXhfdmFsdWU7CisvKgorICogcHJlcGFyZV9jb25mbGlj dF9sb2dfdHVwbGUKKyAqCisgKiBUaGlzIHJvdXRpbmUgcHJlcGFyZXMgYSB0dXBsZSBkZXRhaWxp bmcgYSBjb25mbGljdCBlbmNvdW50ZXJlZCBkdXJpbmcKKyAqIGxvZ2ljYWwgcmVwbGljYXRpb24u IFRoZSBwcmVwYXJlZCB0dXBsZSB3aWxsIGJlIHN0b3JlZCBpbgorICogTXlMb2dpY2FsUmVwV29y a2VyLT5jb25mbGljdF9sb2dfdHVwbGUgd2hpY2ggc2hvdWxkIGJlIGluc2VydGVkIGludG8gdGhl CisgKiBjb25mbGljdCBsb2cgdGFibGUgYnkgY2FsbGluZyBJbnNlcnRDb25mbGljdExvZ1R1cGxl LgorICovCitzdGF0aWMgdm9pZAorcHJlcGFyZV9jb25mbGljdF9sb2dfdHVwbGUoRVN0YXRlICpl c3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCSAgIFJlbGF0aW9uIGNvbmZsaWN0bG9ncmVsLAor CQkJCQkJICAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkgICBUdXBsZVRhYmxl U2xvdCAqc2VhcmNoc2xvdCwKKwkJCQkJCSAgIExpc3QgKmNvbmZsaWN0dHVwbGVzLAorCQkJCQkJ ICAgVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNsb3QpCit7CisJRGF0dW0JCXZhbHVlc1tNQVhfQ09O RkxJQ1RfQVRUUl9OVU1dID0gezB9OworCWJvb2wJCW51bGxzW01BWF9DT05GTElDVF9BVFRSX05V TV0gPSB7MH07CisJaW50CQkJYXR0bm87CisJY2hhcgkgICAqcmVtb3RlX29yaWdpbiA9IE5VTEw7 CisJTWVtb3J5Q29udGV4dAlvbGRjdHg7CisKKwlBc3NlcnQoTXlMb2dpY2FsUmVwV29ya2VyLT5j b25mbGljdF9sb2dfdHVwbGUgPT0gTlVMTCk7CisKKwkvKiBQb3B1bGF0ZSB0aGUgdmFsdWVzIGFu ZCBudWxscyBhcnJheXMuICovCisJYXR0bm8gPSAwOworCXZhbHVlc1thdHRubysrXSA9IE9iamVj dElkR2V0RGF0dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpKTsKKworCXZhbHVlc1thdHRubysrXSA9 CisJCQlDU3RyaW5nR2V0VGV4dERhdHVtKGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5h bWVzcGFjZShyZWwpKSk7CisKKwl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVt KFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpOworCisJdmFsdWVzW2F0dG5vKytdID0gQ1N0 cmluZ0dldFRleHREYXR1bShDb25mbGljdFR5cGVOYW1lc1tjb25mbGljdF90eXBlXSk7CisKKwlp ZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQocmVtb3RlX3hpZCkpCisJCXZhbHVlc1thdHRubysrXSA9 IFRyYW5zYWN0aW9uSWRHZXREYXR1bShyZW1vdGVfeGlkKTsKKwllbHNlCisJCW51bGxzW2F0dG5v KytdID0gdHJ1ZTsKKworCXZhbHVlc1thdHRubysrXSA9IExTTkdldERhdHVtKHJlbW90ZV9maW5h bF9sc24pOworCisJaWYgKHJlbW90ZV9jb21taXRfdHMgPiAwKQorCQl2YWx1ZXNbYXR0bm8rK10g PSBUaW1lc3RhbXBUekdldERhdHVtKHJlbW90ZV9jb21taXRfdHMpOworCWVsc2UKKwkJbnVsbHNb YXR0bm8rK10gPSB0cnVlOworCisJaWYgKHJlcGxvcmlnaW5fc2Vzc2lvbl9vcmlnaW4gIT0gSW52 YWxpZFJlcE9yaWdpbklkKQorCQlyZXBsb3JpZ2luX2J5X29pZChyZXBsb3JpZ2luX3Nlc3Npb25f b3JpZ2luLCB0cnVlLCAmcmVtb3RlX29yaWdpbik7CisKKwlpZiAocmVtb3RlX29yaWdpbiAhPSBO VUxMKQorCQl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHJlbW90ZV9vcmln aW4pOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJaWYgKCFUdXBJc051bGwo c2VhcmNoc2xvdCkpCisJeworCQlPaWQJCXJlcGxpY2FfaW5kZXggPSBHZXRSZWxhdGlvbklkZW50 aXR5T3JQSyhyZWwpOworCisJCS8qCisJCSAqIElmIHRoZSB0YWJsZSBoYXMgYSB2YWxpZCByZXBs aWNhIGlkZW50aXR5IGluZGV4LCBidWlsZCB0aGUgaW5kZXgKKwkJICoganNvbiBkYXR1bSBmcm9t IGtleSB2YWx1ZS4gT3RoZXJ3aXNlLCBjb25zdHJ1Y3QgaXQgZnJvbSB0aGUgY29tcGxldGUKKwkJ ICogdHVwbGUgaW4gUkVQTElDQSBJREVOVElUWSBGVUxMIGNhc2VzLgorCQkgKi8KKwkJaWYgKE9p ZElzVmFsaWQocmVwbGljYV9pbmRleCkpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSB0dXBsZV90YWJs ZV9zbG90X3RvX2luZGV4dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJCQkJcmVw bGljYV9pbmRleCwKKwkJCQkJCQkJCQkJCQkJCQlzZWFyY2hzbG90KTsKKwkJZWxzZQorCQkJdmFs dWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHNlYXJjaHNsb3Qp OworCX0KKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCWlmICghVHVwSXNOdWxs KHJlbW90ZXNsb3QpKQorCQl2YWx1ZXNbYXR0bm8rK10gPSB0dXBsZV90YWJsZV9zbG90X3RvX2pz b25fZGF0dW0ocmVtb3Rlc2xvdCk7CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisK Kwl2YWx1ZXNbYXR0bm9dID0gYnVpbGRfbG9jYWxfY29uZmxpY3RzX2pzb25fYXJyYXkoZXN0YXRl LCByZWwsCisJCQkJCQkJCQkJCQkJIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCQkJCQkJIGNvbmZs aWN0dHVwbGVzKTsKKworCUFzc2VydChhdHRubyArIDEgPT0gTUFYX0NPTkZMSUNUX0FUVFJfTlVN KTsKKworCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhBcHBseUNvbnRleHQpOworCU15 TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0KKwkJaGVhcF9mb3JtX3R1cGxl KFJlbGF0aW9uR2V0RGVzY3IoY29uZmxpY3Rsb2dyZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbGF1bmNoZXIuYwppbmRleCAzZWQ4NjQ4MGJlMi4uMmRkYTVhNDQyMTggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYworKysgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMKQEAgLTQ3Nyw2ICs0NzcsNyBA QCByZXRyeToKIAl3b3JrZXItPm9sZGVzdF9ub25yZW1vdmFibGVfeGlkID0gcmV0YWluX2RlYWRf dHVwbGVzCiAJCT8gTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEueG1pbgogCQk6IEludmFsaWRUcmFu c2FjdGlvbklkOworCXdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0gTlVMTDsKIAl3b3JrZXIt Pmxhc3RfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CiAJVElNRVNUQU1QX05PQkVHSU4od29ya2Vy LT5sYXN0X3NlbmRfdGltZSk7CiAJVElNRVNUQU1QX05PQkVHSU4od29ya2VyLT5sYXN0X3JlY3Zf dGltZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtl ci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCBhZDI4 MWU3MDY5Yi4uZDRiZTExMjI2MDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93 b3JrZXIuYwpAQCAtNDgyLDcgKzQ4Miw5IEBAIHN0YXRpYyBib29sIE15U3Vic2NyaXB0aW9uVmFs aWQgPSBmYWxzZTsKIHN0YXRpYyBMaXN0ICpvbl9jb21taXRfd2FrZXVwX3dvcmtlcnNfc3ViaWRz ID0gTklMOwogCiBib29sCQlpbl9yZW1vdGVfdHJhbnNhY3Rpb24gPSBmYWxzZTsKLXN0YXRpYyBY TG9nUmVjUHRyIHJlbW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKK1hMb2dSZWNQ dHIgcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworVHJhbnNhY3Rpb25JZAly ZW1vdGVfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CitUaW1lc3RhbXBUeglyZW1vdGVfY29t bWl0X3RzID0gMDsKIAogLyogZmllbGRzIHZhbGlkIG9ubHkgd2hlbiBwcm9jZXNzaW5nIHN0cmVh bWVkIHRyYW5zYWN0aW9uICovCiBzdGF0aWMgYm9vbCBpbl9zdHJlYW1lZF90cmFuc2FjdGlvbiA9 IGZhbHNlOwpAQCAtMTIxOSw2ICsxMjIxLDggQEAgYXBwbHlfaGFuZGxlX2JlZ2luKFN0cmluZ0lu Zm8gcykKIAlzZXRfYXBwbHlfZXJyb3JfY29udGV4dF94YWN0KGJlZ2luX2RhdGEueGlkLCBiZWdp bl9kYXRhLmZpbmFsX2xzbik7CiAKIAlyZW1vdGVfZmluYWxfbHNuID0gYmVnaW5fZGF0YS5maW5h bF9sc247CisJcmVtb3RlX2NvbW1pdF90cyA9IGJlZ2luX2RhdGEuY29tbWl0dGltZTsKKwlyZW1v dGVfeGlkID0gYmVnaW5fZGF0YS54aWQ7CiAKIAltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2Vz KGJlZ2luX2RhdGEuZmluYWxfbHNuKTsKIApAQCAtMTc0NSw2ICsxNzQ5LDEwIEBAIGFwcGx5X2hh bmRsZV9zdHJlYW1fc3RhcnQoU3RyaW5nSW5mbyBzKQogCS8qIGV4dHJhY3QgWElEIG9mIHRoZSB0 b3AtbGV2ZWwgdHJhbnNhY3Rpb24gKi8KIAlzdHJlYW1feGlkID0gbG9naWNhbHJlcF9yZWFkX3N0 cmVhbV9zdGFydChzLCAmZmlyc3Rfc2VnbWVudCk7CiAKKwlyZW1vdGVfeGlkID0gc3RyZWFtX3hp ZDsKKwlyZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CisJcmVtb3RlX2NvbW1p dF90cyA9IDA7CisKIAlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHN0cmVhbV94aWQpKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPVE9DT0xfVklPTEFUSU9OKSwK QEAgLTU2MDksNiArNTYxNywyNyBAQCBzdGFydF9hcHBseShYTG9nUmVjUHRyIG9yaWdpbl9zdGFy dHBvcykKIAkJCXBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2Vycm9yKE15U3Vic2NyaXB0aW9u LT5vaWQsCiAJCQkJCQkJCQkJCSBNeUxvZ2ljYWxSZXBXb3JrZXItPnR5cGUpOwogCisJCQkvKgor CQkJICogSW5zZXJ0IGFueSBwZW5kaW5nIGNvbmZsaWN0IGxvZyB0dXBsZSB1bmRlciBhIG5ldyB0 cmFuc2FjdGlvbi4KKwkJCSAqLworCQkJaWYgKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3Rf bG9nX3R1cGxlICE9IE5VTEwpCisJCQl7CisJCQkJUmVsYXRpb24JY29uZmxpY3Rsb2dyZWw7CisJ CQkJQ29uZmxpY3RMb2dEZXN0CWRlc3Q7CisKKwkJCQlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgp OworCQkJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCisJ CQkJLyogT3BlbiBjb25mbGljdCBsb2cgdGFibGUgYW5kIGluc2VydCB0aGUgdHVwbGUuICovCisJ CQkJY29uZmxpY3Rsb2dyZWwgPSBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZSgmZGVzdCk7CisJ CQkJQXNzZXJ0KChkZXN0ICYgQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUpICE9IDApOworCQkJCUlu c2VydENvbmZsaWN0TG9nVHVwbGUoY29uZmxpY3Rsb2dyZWwpOworCQkJCXRhYmxlX2Nsb3NlKGNv bmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQkJCVBvcEFjdGl2ZVNuYXBzaG90 KCk7CisJCQkJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJCQl9CisKIAkJCVBHX1JFX1RI Uk9XKCk7CiAJCX0KIAl9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25m bGljdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAppbmRleCBlY2RmYWNk NGYwMC4uMDA5MTA0YjA1MDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2Nv bmZsaWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaApAQCAtMTQ0 LDQgKzE0NCw3IEBAIGV4dGVybiB2b2lkIFJlcG9ydEFwcGx5Q29uZmxpY3QoRVN0YXRlICplc3Rh dGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpyZW1v dGVzbG90LAogCQkJCQkJCQlMaXN0ICpjb25mbGljdHR1cGxlcyk7CiBleHRlcm4gdm9pZCBJbml0 Q29uZmxpY3RJbmRleGVzKFJlc3VsdFJlbEluZm8gKnJlbEluZm8pOworZXh0ZXJuIFJlbGF0aW9u IEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKENvbmZsaWN0TG9nRGVzdCAqbG9nX2Rlc3QpOwor ZXh0ZXJuIHZvaWQgSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShSZWxhdGlvbiBjb25mbGljdGxvZ3Jl bCk7CitleHRlcm4gYm9vbCBWYWxpZGF0ZUNvbmZsaWN0TG9nVGFibGUoUmVsYXRpb24gcmVsKTsK ICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVy bmFsLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAppbmRleCBj MTI4NWZkZDFiYy4uNWJlZGZjNTQ1MGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dvcmtlcl9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtl cl9pbnRlcm5hbC5oCkBAIC0xMDEsNiArMTAxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgTG9naWNhbFJl cFdvcmtlcgogCSAqLwogCVRyYW5zYWN0aW9uSWQgb2xkZXN0X25vbnJlbW92YWJsZV94aWQ7CiAK KwkvKiBBIGNvbmZsaWN0IGxvZyB0dXBsZSB0aGF0IGlzIHByZXBhcmVkIGJ1dCBub3QgeWV0IGlu c2VydGVkLiAqLworCUhlYXBUdXBsZQljb25mbGljdF9sb2dfdHVwbGU7CisKIAkvKiBTdGF0cy4g Ki8KIAlYTG9nUmVjUHRyCWxhc3RfbHNuOwogCVRpbWVzdGFtcFR6IGxhc3Rfc2VuZF90aW1lOwpA QCAtMjU2LDYgKzI1OSwxMCBAQCBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBJbml0aWFsaXppbmdB cHBseVdvcmtlcjsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIExpc3QgKnRhYmxlX3N0YXRlc19ub3Rf cmVhZHk7CiAKK2V4dGVybiBYTG9nUmVjUHRyIHJlbW90ZV9maW5hbF9sc247CitleHRlcm4gVGlt ZXN0YW1wVHogcmVtb3RlX2NvbW1pdF90czsKK2V4dGVybiBUcmFuc2FjdGlvbklkCXJlbW90ZV94 aWQ7CisKIGV4dGVybiB2b2lkIGxvZ2ljYWxyZXBfd29ya2VyX2F0dGFjaChpbnQgc2xvdCk7CiBl eHRlcm4gTG9naWNhbFJlcFdvcmtlciAqbG9naWNhbHJlcF93b3JrZXJfZmluZChMb2dpY2FsUmVw V29ya2VyVHlwZSB3dHlwZSwKIAkJCQkJCQkJCQkJCU9pZCBzdWJpZCwgT2lkIHJlbGlkLApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbCBiL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMucGwKaW5kZXggZGRjNzVlMjNmYjAuLjRi MmIzNmVkYmE1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxp Y3RzLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMucGwKQEAg LTUwLDcgKzUwLDcgQEAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAogCSdwb3N0Z3Jlcycs CiAJIkNSRUFURSBTVUJTQ1JJUFRJT04gc3ViX3RhYgogCSBDT05ORUNUSU9OICckcHVibGlzaGVy X2Nvbm5zdHIgYXBwbGljYXRpb25fbmFtZT0kYXBwbmFtZScKLQkgUFVCTElDQVRJT04gcHViX3Rh YjsiKTsKKwkgUFVCTElDQVRJT04gcHViX3RhYiBXSVRIIChjb25mbGljdF9sb2dfZGVzdGluYXRp b249YWxsKSIpOwogCiAjIFdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKICRu b2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hl ciwgJGFwcG5hbWUpOwpAQCAtODYsMTAgKzg2LDQxIEBAICRub2RlX3N1YnNjcmliZXItPndhaXRf Zm9yX2xvZygKIC4qS2V5IFwoY1wpPVwoNFwpOyBleGlzdGluZyBsb2NhbCByb3cgXCg0LCA0LCA0 XCk7IHJlbW90ZSByb3cgXCgyLCAzLCA0XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMgVmVyaWZ5 IHRoZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRoaXMgc2Vj dGlvbiBlbnN1cmVzIHRoYXQgdGhlIGNsdCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMgdHlwZSBh bmQgc3BlY2lmaWMga2V5IGRhdGEuCitteSAkc3ViaWQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3N1Yl90YWInOyIpOworbXkgJGNsdCA9ICJwZ19jb25mbGljdC5wZ19jb25m bGljdF8kc3ViaWQiOworCisjIFdhaXQgZm9yIHRoZSBjb25mbGljdCB0byBiZSBsb2dnZWQgaW4g dGhlIENMVAorbXkgJGxvZ19jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50 aWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID4gMCBGUk9NICRjbHQ7 IgorKTsKKworbXkgJGNvbmZsaWN0X2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSBGUk9NICRjbHQgV0hFUkUgY29uZmxp Y3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsiKTsKK2lzKCRjb25mbGljdF9j aGVjaywgMSwgJ1ZlcmlmaWVkIG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgbG9nZ2VkIGludG8g aW50ZXJuYWwgdGFibGUnKTsKKworbXkgJGpzb25fcXVlcnkgPSBxcVsKKyAgICBTRUxFQ1Qgc3Ry aW5nX2FnZygodW5uZXN0ZWQuajo6anNvbiktPidrZXknLT4+J2EnLCAnLCcpCisgICAgRlJPTSAo CisgICAgICAgIFNFTEVDVCB1bm5lc3QobG9jYWxfY29uZmxpY3RzKSBBUyBqCisgICAgICAgIEZS T00gJGNsdAorICAgICkgQVMgdW5uZXN0ZWQ7CitdOworCitteSAkYWxsX2tleXMgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkpOworCisjIFZlcmlm eSB0aGF0ICcyJyBpcyBwcmVzZW50IGluIHRoZSByZXN1bHRpbmcgc3RyaW5nCitsaWtlKCRhbGxf a2V5cywgcXIvXGIyXGIvLCAnVmVyaWZpZWQgdGhhdCBrZXkgMiBleGlzdHMgaW4gdGhlIGxvY2Fs X2NvbmZsaWN0cyBsb2cnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBkZXRl Y3RlZCBkdXJpbmcgaW5zZXJ0Jyk7CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0IHJpZCBvZiB0 aGUgZXJyb3IKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiVFJVTkNB VEUgY29uZl90YWI7Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkRFTEVURSBGUk9NICRjbHQiKTsKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKICMgVGVzdCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGR1ZSB0 byBVUERBVEUKQEAgLTExOCw2ICsxNDksMzMgQEAgJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jf bG9nKAogLipLZXkgXChjXCk9XCg4XCk7IGV4aXN0aW5nIGxvY2FsIHJvdyBcKDgsIDgsIDhcKTsg cmVtb3RlIHJvdyBcKDYsIDcsIDhcKS4vLAogCSRsb2dfb2Zmc2V0KTsKIAorIyBWZXJpZnkgdGhl IGNvbnRlbnRzIG9mIHRoZSBDb25mbGljdCBMb2cgVGFibGUgKENMVCkKKyMgVGhpcyBzZWN0aW9u IGVuc3VyZXMgdGhhdCB0aGUgQ0xUIGNvbnRhaW5zIHRoZSBleHBlY3RlZAorIyB0eXBlIGFuZCBz cGVjaWZpYyBrZXkgZGF0YS4KKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUgbG9nZ2Vk IGluIHRoZSBDTFQKKyRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1ZXJ5X3Vu dGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAgRlJPTSAkY2x0 OyIKKyk7CisKKyRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgRlJPTSAkY2x0IFdIRVJFIGNvbmZsaWN0 X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29uZmxpY3RfY2hl Y2ssIDEsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGxvZ2dlZCBpbnRvIGlu dGVybmFsIHRhYmxlJyk7CisKKyRqc29uX3F1ZXJ5ID0gcXFbCisgICAgU0VMRUNUIHN0cmluZ19h Z2coKHVubmVzdGVkLmo6Ompzb24pLT4na2V5Jy0+PidhJywgJywnKQorICAgIEZST00gKAorICAg ICAgICBTRUxFQ1QgdW5uZXN0KGxvY2FsX2NvbmZsaWN0cykgQVMgagorICAgICAgICBGUk9NICRj bHQKKyAgICApIEFTIHVubmVzdGVkOworXTsKKworJGFsbF9rZXlzID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJpZnkgdGhhdCAn NicgaXMgcHJlc2VudCBpbiB0aGUgcmVzdWx0aW5nIHN0cmluZworbGlrZSgkYWxsX2tleXMsIHFy L1xiNlxiLywgJ1ZlcmlmaWVkIHRoYXQga2V5IDYgZXhpc3RzIGluIHRoZSBsb2NhbF9jb25mbGlj dHMgbG9nJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgZGV0ZWN0ZWQgZHVy aW5nIHVwZGF0ZScpOwogCiAjIFRydW5jYXRlIHRhYmxlIHRvIGdldCByaWQgb2YgdGhlIGVycm9y Ci0tIAoyLjQ5LjAKCg== --0000000000001155df064842747b Content-Type: application/octet-stream; name="v21-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v21-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkcg5n6s0 RnJvbSA4MzQ1ZjkzNDQ3M2UwMWJjYjY2Mjc5NTY5Zjg1ZmM1ZTAwZTRjMWQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxNyBEZWMgMjAyNSAxMTo1Mzo0NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDEvM10gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCgpUaGlzIHBhdGNoIGFkZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1 cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9mIGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2ggb2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4 dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFrZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXpl LCBhbmQKdXNlIGZvciBleHRlcm5hbCBtb25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBw YXRjaCBhZGRyZXNzZXMgdGhlc2UgbGltaXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1 cmFibGUKY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRp b24gaW4gdGhlIENSRUFURSBTVUJTQ1JJUFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29z ZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8gYSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3Ig J2FsbCcpLAphbiBpbnRlcm5hbCBsb2dnaW5nIHRhYmxlIG5hbWVkIGNvbmZsaWN0X2xvZ190YWJs ZV88c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkKY3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5 c3RlbS1tYW5hZ2VkIG5hbWVzcGFjZSBuYW1lZCBwZ19jb25mbGljdC4gVGhpcyB0YWJsZQppcyBs aW5rZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5z dXJpbmcgaXQgaXMKYXV0b21hdGljYWxseSBkcm9wcGVkIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBp cyByZW1vdmVkLgoKVGhlIGNvbmZsaWN0IGRldGFpbHMsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwg YW5kIHJlbW90ZSB0dXBsZXMsIGFyZSBzdG9yZWQgaW4gSlNPTgpjb2x1bW5zLCBwcm92aWRpbmcg YSBmbGV4aWJsZSBmb3JtYXQgdG8gYWNjb21tb2RhdGUgZGlmZmVyZW50IHRhYmxlIHNjaGVtYXMu CgpUaGUgbG9nIHRhYmxlIGNhcHR1cmVzIGVzc2VudGlhbCBhdHRyaWJ1dGVzIHN1Y2ggYXMgbG9j YWwgYW5kIHJlbW90ZSB0cmFuc2FjdGlvbiBJRHMsCkxTTnMsIGNvbW1pdCB0aW1lc3RhbXBzLCBh bmQgY29uZmxpY3QgdHlwZSwgcHJvdmlkaW5nIGEgY29tcGxldGUgcmVjb3JkIGZvciBwb3N0LW1v cnRlbQphbmFseXNpcy4KClRoaXMgZmVhdHVyZSB3aWxsIG1ha2UgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdHMgZWFzaWVyIHRvIG1vbml0b3IgYW5kIG1hbmFnZSwKc2lnbmlmaWNhbnRseSBp bXByb3ZpbmcgdGhlIG92ZXJhbGwgcmVzaWxpZW5jZSBhbmQgb3BlcmFiaWxpdHkgb2YgcmVwbGlj YXRpb24gc2V0dXBzLgoKVGhlIGNvbmZsaWN0IGxvZyB0YWJsZXMgd2lsbCBub3QgYmUgaW5jbHVk ZWQgaW4gYSBwdWJsaWNhdGlvbiwgZXZlbiBpZiB0aGUgcHVibGljYXRpb24KaXMgY29uZmlndXJl ZCB0byBpbmNsdWRlIEFMTCBUQUJMRVMgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEuCi0tLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgICAgICAgICAgICAgIHwgIDI3ICstCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jICAgIHwgMjM5ICsrKysrKysrKysrLQogc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgICAgICAgICAgICAgICAgICAgIHwgIDIxICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxv Zy5oICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFj ZS5kYXQgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u aCAgICAgIHwgIDExICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCAg ICB8ICAgMyArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oICAgICAgICAgfCAg NTUgKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCA0MjEg KysrKysrKysrKysrKysrKy0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24u c3FsICAgICAgfCAxOTQgKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICAgICAgIHwgICAyICsKIDE2IGZpbGVzIGNoYW5nZWQsIDkxMyBpbnNlcnRpb25zKCsp LCAxMDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRh bG9nLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYwppbmRleCA3YmU0OTAzMjkzNC4u ZDQzOGRjNjgyZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCkBAIC04Niw3ICs4Niw4IEBAIGJvb2wK IElzU3lzdGVtQ2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogewogCS8q IElzQ2F0YWxvZ1JlbGF0aW9uT2lkIGlzIGEgYml0IGZhc3Rlciwgc28gdGVzdCB0aGF0IGZpcnN0 ICovCi0JcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNz KHJlbHR1cGxlKSk7CisJcmV0dXJuIChJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNU b2FzdENsYXNzKHJlbHR1cGxlKQorCQkJfHwgSXNDb25mbGljdENsYXNzKHJlbHR1cGxlKSk7CiB9 CiAKIC8qCkBAIC0yMzAsNiArMjMxLDE4IEBAIElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJl bHR1cGxlKQogCXJldHVybiBJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSk7CiB9CiAKKy8q CisgKiBJc0NvbmZsaWN0Q2xhc3MgLSBDaGVjayBpZiB0aGUgZ2l2ZW4gcGdfY2xhc3MgdHVwbGUg YmVsb25ncyB0byB0aGUgY29uZmxpY3QKKyAqCQkJCQkgbmFtZXNwYWNlLgorICovCitib29sCitJ c0NvbmZsaWN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKK3sKKwlPaWQJCQlyZWxuYW1l c3BhY2UgPSByZWx0dXBsZS0+cmVsbmFtZXNwYWNlOworCisJcmV0dXJuIElzQ29uZmxpY3ROYW1l c3BhY2UocmVsbmFtZXNwYWNlKTsKK30KKwogLyoKICAqIElzQ2F0YWxvZ05hbWVzcGFjZQogICoJ CVRydWUgaWZmIG5hbWVzcGFjZSBpcyBwZ19jYXRhbG9nLgpAQCAtMjY0LDYgKzI3NywxOCBAQCBJ c1RvYXN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKIAkJaXNUZW1wVG9hc3ROYW1lc3BhY2Uo bmFtZXNwYWNlSWQpOwogfQogCisvKgorICogSXNDb25mbGljdE5hbWVzcGFjZQorICoJCVRydWUg aWZmIG5hbWVzcGFjZSBpcyBwZ19jb25mbGljdC4KKyAqCisgKgkJRG9lcyBub3QgcGVyZm9ybSBh bnkgY2F0YWxvZyBhY2Nlc3Nlcy4KKyAqLworYm9vbAorSXNDb25mbGljdE5hbWVzcGFjZShPaWQg bmFtZXNwYWNlSWQpCit7CisJcmV0dXJuIG5hbWVzcGFjZUlkID09IFBHX0NPTkZMSUNUX05BTUVT UEFDRTsKK30KKwogCiAvKgogICogSXNSZXNlcnZlZE5hbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggNjA2 NDM0ODIzY2YuLjEwZGFkZjM3OGE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hl YXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMzE0LDcgKzMxNCw4IEBA IGhlYXBfY3JlYXRlKGNvbnN0IGNoYXIgKnJlbG5hbWUsCiAJICovCiAJaWYgKCFhbGxvd19zeXN0 ZW1fdGFibGVfbW9kcyAmJgogCQkoKElzQ2F0YWxvZ05hbWVzcGFjZShyZWxuYW1lc3BhY2UpICYm IHJlbGtpbmQgIT0gUkVMS0lORF9JTkRFWCkgfHwKLQkJIElzVG9hc3ROYW1lc3BhY2UocmVsbmFt ZXNwYWNlKSkgJiYKKwkJIElzVG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKSB8fAorCQkgSXND b25mbGljdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpKSAmJgogCQlJc05vcm1hbFByb2Nlc3NpbmdN b2RlKCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lF TlRfUFJJVklMRUdFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGMzYjc5YTJiYTQ4Li40 MDAyOTJmZDA2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNTIzLDcgKzM1MjMsNyBA QCBMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKQogICoKICAqIFdl IGNvbXBsYWluIGlmIGVpdGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIGEgdGVtcG9y YXJ5IHNjaGVtYQogICogKG9yIHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEpLCBvciBpZiBlaXRoZXIg dGhlIG9sZCBvciBuZXcgbmFtZXNwYWNlcyBpcyB0aGUKLSAqIFRPQVNUIHNjaGVtYS4KKyAqIFRP QVNUIHNjaGVtYSBvciB0aGUgQ09ORkxJQ1Qgc2NoZW1hLgogICovCiB2b2lkCiBDaGVja1NldE5h bWVzcGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKQpAQCAtMzUzOSw2ICszNTM5LDEyIEBA IENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpCiAJCWVyZXBvcnQo RVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJ CSBlcnJtc2coImNhbm5vdCBtb3ZlIG9iamVjdHMgaW50byBvciBvdXQgb2YgVE9BU1Qgc2NoZW1h IikpKTsKKworCS8qIHNpbWlsYXJseSBmb3IgQ09ORkxJQ1Qgc2NoZW1hICovCisJaWYgKG5zcE9p ZCA9PSBQR19DT05GTElDVF9OQU1FU1BBQ0UgfHwgb2xkTnNwT2lkID09IFBHX0NPTkZMSUNUX05B TUVTUEFDRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiY2Fubm90IG1vdmUgb2JqZWN0cyBpbnRvIG9y IG91dCBvZiBDT05GTElDVCBzY2hlbWEiKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jCmluZGV4IDlhNDc5MWM1NzNlLi5kZTI3MGZmMTc1NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfcHVibGljYXRpb24uYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfcHVibGljYXRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJ1dGls cy9hcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC04NSw2ICs4NiwxNSBA QCBjaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oUmVsYXRpb24gdGFyZ2V0cmVsKQogCQkJ CSBlcnJtc2coImNhbm5vdCBhZGQgcmVsYXRpb24gXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKIAkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAogCQkJCSBlcnJkZXRhaWwo IlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHVubG9nZ2VkIHRhYmxlcy4iKSkp OworCisJLyogQ2FuJ3QgYmUgY29uZmxpY3QgbG9nIHRhYmxlICovCisJaWYgKElzQ29uZmxpY3RO YW1lc3BhY2UoUmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSkpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJ IGVycm1zZygiY2Fubm90IGFkZCByZWxhdGlvbiBcIiVzLiVzXCIgdG8gcHVibGljYXRpb24iLAor CQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHRhcmdldHJlbCkp LAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSksCisJCQkJIGVycmRl dGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRh Ymxlcy4iKSkpOwogfQogCiAvKgpAQCAtOTUsNyArMTA1LDggQEAgc3RhdGljIHZvaWQKIGNoZWNr X3B1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHNjaGVtYWlkKQogewogCS8qIENhbid0IGJlIHN5 c3RlbSBuYW1lc3BhY2UgKi8KLQlpZiAoSXNDYXRhbG9nTmFtZXNwYWNlKHNjaGVtYWlkKSB8fCBJ c1RvYXN0TmFtZXNwYWNlKHNjaGVtYWlkKSkKKwlpZiAoSXNDYXRhbG9nTmFtZXNwYWNlKHNjaGVt YWlkKSB8fCBJc1RvYXN0TmFtZXNwYWNlKHNjaGVtYWlkKSB8fAorCQlJc0NvbmZsaWN0TmFtZXNw YWNlKHNjaGVtYWlkKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWRkIHNjaGVtYSBc IiVzXCIgdG8gcHVibGljYXRpb24iLApAQCAtMTM5LDYgKzE1MCw3IEBAIGlzX3B1Ymxpc2hhYmxl X2NsYXNzKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAkJCXJlbHR1cGxlLT5y ZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgfHwKIAkJCXJlbHR1cGxlLT5yZWxr aW5kID09IFJFTEtJTkRfU0VRVUVOQ0UpICYmCiAJCSFJc0NhdGFsb2dSZWxhdGlvbk9pZChyZWxp ZCkgJiYKKwkJIUlzQ29uZmxpY3RDbGFzcyhyZWx0dXBsZSkgJiYKIAkJcmVsdHVwbGUtPnJlbHBl cnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVCAmJgogCQlyZWxpZCA+PSBGaXJz dE5vcm1hbE9iamVjdElkOwogfQpAQCAtODkwLDYgKzkwMiw3IEBAIEdldEFsbFB1YmxpY2F0aW9u UmVsYXRpb25zKGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQogCQlGb3JtX3BnX2NsYXNz IHJlbEZvcm0gPSAoRm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKHR1cGxlKTsKIAkJT2lkCQkJcmVs aWQgPSByZWxGb3JtLT5vaWQ7CiAKKwkJLyogU3Vic2NyaXB0aW9uIGNvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIG5vdCBwdWJsaXNoZWQgKi8KIAkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlk LCByZWxGb3JtKSAmJgogCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290 KSkKIAkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggMmIxMDMyNDUyOTAuLjI4NWE1OTg0OTdkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKQEAgLTEwNiw2ICsxMDYsNyBAQCBHZXRT dWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAJc3ViLT5yZXRhaW5kZWFk dHVwbGVzID0gc3ViZm9ybS0+c3VicmV0YWluZGVhZHR1cGxlczsKIAlzdWItPm1heHJldGVudGlv biA9IHN1YmZvcm0tPnN1Ym1heHJldGVudGlvbjsKIAlzdWItPnJldGVudGlvbmFjdGl2ZSA9IHN1 YmZvcm0tPnN1YnJldGVudGlvbmFjdGl2ZTsKKwlzdWItPmNvbmZsaWN0bG9ncmVsaWQgPSBzdWJm b3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkOwogCiAJLyogR2V0IGNvbm5pbmZvICovCiAJZGF0dW0g PSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwKQEAgLTE0MSw2ICsxNDIs MTIgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCQkJ CQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmlnaW4pOwogCXN1Yi0+b3JpZ2luID0gVGV4 dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CiAKKwkvKiBHZXQgY29uZmxpY3QgbG9nIGRlc3RpbmF0 aW9uICovCisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwK KwkJCQkJCQkJICAgdHVwLAorCQkJCQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25m bGljdGxvZ2Rlc3QpOworCXN1Yi0+Y29uZmxpY3Rsb2dkZXN0ID0gVGV4dERhdHVtR2V0Q1N0cmlu ZyhkYXR1bSk7CisKIAkvKiBJcyB0aGUgc3Vic2NyaXB0aW9uIG93bmVyIGEgc3VwZXJ1c2VyPyAq LwogCXN1Yi0+b3duZXJzdXBlcnVzZXIgPSBzdXBlcnVzZXJfYXJnKHN1Yi0+b3duZXIpOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggZDY2NzRmMjBmYzIuLmZl YmYyNGQ5OGNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25j bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0x NSwyNSArMTUsMzEgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNz L2NvbW1pdF90cy5oIgorI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNsdWRlICJhY2Nl c3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAi YWNjZXNzL3R3b3BoYXNlLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJj YXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNs dWRlICJjYXRhbG9nL2hlYXAuaCIKICNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vz cy5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfYW1fZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkX2QuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2RhdGFiYXNlX2QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFj ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgi CisjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJl bS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t YW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIK KyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAi bm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCkBAIC01MSw2ICs1Nyw3IEBA CiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMu aCIKICNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKKyNpbmNsdWRlICJ1dGlscy9yZWdwcm9jLmgi CiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAogLyoKQEAgLTc1LDYgKzgyLDcgQEAKICNk ZWZpbmUgU1VCT1BUX01BWF9SRVRFTlRJT05fRFVSQVRJT04JMHgwMDAwODAwMAogI2RlZmluZSBT VUJPUFRfTFNOCQkJCQkweDAwMDEwMDAwCiAjZGVmaW5lIFNVQk9QVF9PUklHSU4JCQkJMHgwMDAy MDAwMAorI2RlZmluZSBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QJMHgwMDA0MDAwMAogCiAvKiBj aGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNkZWZpbmUgSXNTZXQodmFsLCBi aXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQpAQCAtMTAzLDYgKzExMSw3IEBAIHR5 cGVkZWYgc3RydWN0IFN1Yk9wdHMKIAlib29sCQlyZXRhaW5kZWFkdHVwbGVzOwogCWludDMyCQlt YXhyZXRlbnRpb247CiAJY2hhcgkgICAqb3JpZ2luOworCUNvbmZsaWN0TG9nRGVzdCBsb2dkZXN0 OwogCVhMb2dSZWNQdHIJbHNuOwogfSBTdWJPcHRzOwogCkBAIC0xMzUsNyArMTQ0LDcgQEAgc3Rh dGljIExpc3QgKm1lcmdlX3B1YmxpY2F0aW9ucyhMaXN0ICpvbGRwdWJsaXN0LCBMaXN0ICpuZXdw dWJsaXN0LCBib29sIGFkZHB1YiwKIHN0YXRpYyB2b2lkIFJlcG9ydFNsb3RDb25uZWN0aW9uRXJy b3IoTGlzdCAqcnN0YXRlcywgT2lkIHN1YmlkLCBjaGFyICpzbG90bmFtZSwgY2hhciAqZXJyKTsK IHN0YXRpYyB2b2lkIENoZWNrQWx0ZXJTdWJPcHRpb24oU3Vic2NyaXB0aW9uICpzdWIsIGNvbnN0 IGNoYXIgKm9wdGlvbiwKIAkJCQkJCQkJYm9vbCBzbG90X25lZWRzX3VwZGF0ZSwgYm9vbCBpc1Rv cExldmVsKTsKLQorc3RhdGljIE9pZCBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJp ZCwgY2hhciAqc3VibmFtZSk7CiAKIC8qCiAgKiBDb21tb24gb3B0aW9uIHBhcnNpbmcgZnVuY3Rp b24gZm9yIENSRUFURSBhbmQgQUxURVIgU1VCU0NSSVBUSU9OIGNvbW1hbmRzLgpAQCAtMTkxLDYg KzIwMCw4IEBAIHBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGlzdCAqc3RtdF9vcHRpb25zLAogCQlvcHRzLT5tYXhyZXRlbnRpb24gPSAwOwogCWlmIChJc1Nl dChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX09SSUdJTikpCiAJCW9wdHMtPm9yaWdpbiA9IHBzdHJk dXAoTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKKwlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNV Qk9QVF9DT05GTElDVF9MT0dfREVTVCkpCisJCW9wdHMtPmxvZ2Rlc3QgPSBDT05GTElDVF9MT0df REVTVF9MT0c7CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRp b25zKQpAQCAtNDAyLDYgKzQxMywxOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJz ZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJCW9wdHMtPnNwZWNpZmllZF9v cHRzIHw9IFNVQk9QVF9MU047CiAJCQlvcHRzLT5sc24gPSBsc247CiAJCX0KKwkJZWxzZSBpZiAo SXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVCkgJiYKKwkJCQkg c3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIikgPT0gMCkK KwkJeworCQkJY2hhciAqdmFsOworCisJCQlpZiAoSXNTZXQob3B0cy0+c3BlY2lmaWVkX29wdHMs IFNVQk9QVF9DT05GTElDVF9MT0dfREVTVCkpCisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0o ZGVmZWwsIHBzdGF0ZSk7CisKKwkJCXZhbCA9IGRlZkdldFN0cmluZyhkZWZlbCk7CisJCQlvcHRz LT5sb2dkZXN0ID0gR2V0TG9nRGVzdGluYXRpb24odmFsKTsKKwkJCW9wdHMtPnNwZWNpZmllZF9v cHRzIHw9IFNVQk9QVF9DT05GTElDVF9MT0dfREVTVDsKKwkJfQogCQllbHNlCiAJCQllcmVwb3J0 KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCkBAIC01OTksNiAr NjIyLDcgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vi c2NyaXB0aW9uU3RtdCAqc3RtdCwKIAliaXRzMzIJCXN1cHBvcnRlZF9vcHRzOwogCVN1Yk9wdHMJ CW9wdHMgPSB7MH07CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJCQlsb2dyZWxpZCA9IElu dmFsaWRPaWQ7CiAKIAkvKgogCSAqIFBhcnNlIGFuZCBjaGVjayBvcHRpb25zLgpAQCAtNjEyLDcg KzYzNiw4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1 YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwgU1VC T1BUX1BBU1NXT1JEX1JFUVVJUkVEIHwKIAkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VC T1BUX0ZBSUxPVkVSIHwKIAkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKLQkJCQkJ ICBTVUJPUFRfTUFYX1JFVEVOVElPTl9EVVJBVElPTiB8IFNVQk9QVF9PUklHSU4pOworCQkJCQkg IFNVQk9QVF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCSAg U1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKTsKIAlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhw c3RhdGUsIHN0bXQtPm9wdGlvbnMsIHN1cHBvcnRlZF9vcHRzLCAmb3B0cyk7CiAKIAkvKgpAQCAt NzQ3LDYgKzc3MiwxOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJvcmlnaW4gLSAxXSA9CiAJCUNTdHJpbmdHZXRUZXh0RGF0dW0ob3B0cy5vcmlnaW4pOwog CisJLyogQWx3YXlzIHNldCB0aGUgZGVzdGluYXRpb24sIGRlZmF1bHQgd2lsbCBiZSAnbG9nJy4g Ki8KKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0g PQorCQlDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZsaWN0TG9nRGVzdE5hbWVzW29wdHMubG9nZGVz dF0pOworCisJLyogSWYgbG9nZ2luZyB0byBhIHRhYmxlIGlzIHJlcXVpcmVkLCBwaHlzaWNhbGx5 IGNyZWF0ZSB0aGUgdGFibGUuICovCisJaWYgKElzU2V0KG9wdHMubG9nZGVzdCwgQ09ORkxJQ1Rf TE9HX0RFU1RfVEFCTEUpKQorCQlsb2dyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUo c3ViaWQsIHN0bXQtPnN1Ym5hbWUpOworCisJLyogU3RvcmUgdGFibGUgT0lEIGluIHRoZSBjYXRh bG9nLiAqLworCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlk IC0gMV0gPQorCQkJCQkJT2JqZWN0SWRHZXREYXR1bShsb2dyZWxpZCk7CisKIAl0dXAgPSBoZWFw X2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKIAogCS8q IEluc2VydCB0dXBsZSBpbnRvIGNhdGFsb2cuICovCkBAIC0xNDEwLDcgKzE0NDcsOCBAQCBBbHRl clN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAkJCQkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX0ZBSUxPVkVSIHwK IAkJCQkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKIAkJCQkJCQkJICBTVUJPUFRf TUFYX1JFVEVOVElPTl9EVVJBVElPTiB8Ci0JCQkJCQkJCSAgU1VCT1BUX09SSUdJTik7CisJCQkJ CQkJCSAgU1VCT1BUX09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNU KTsKIAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9u cywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTY2NSw2ICsxNzAz LDYzIEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3Jp cHRpb25TdG10ICpzdG10LAogCQkJCQlvcmlnaW4gPSBvcHRzLm9yaWdpbjsKIAkJCQl9CiAKKwkJ CQlpZiAoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNU KSkKKwkJCQl7CisJCQkJCUNvbmZsaWN0TG9nRGVzdCBvbGRfZGVzdCA9CisJCQkJCQkJR2V0TG9n RGVzdGluYXRpb24oc3ViLT5jb25mbGljdGxvZ2Rlc3QpOworCisJCQkJCWlmIChvcHRzLmxvZ2Rl c3QgIT0gb2xkX2Rlc3QpCisJCQkJCXsKKwkJCQkJCWJvb2wgd2FudF90YWJsZSA9CisJCQkJCQkJ CUlzU2V0KG9wdHMubG9nZGVzdCwgQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUpOworCQkJCQkJYm9v bCBoYXNfb2xkdGFibGUgPQorCQkJCQkJCQlJc1NldChvbGRfZGVzdCwgQ09ORkxJQ1RfTE9HX0RF U1RfVEFCTEUpOworCisJCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxp Y3Rsb2dkZXN0IC0gMV0gPQorCQkJCQkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RMb2dE ZXN0TmFtZXNbb3B0cy5sb2dkZXN0XSk7CisJCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlw dGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9IHRydWU7CisKKwkJCQkJCWlmICh3YW50X3Rh YmxlICYmICFoYXNfb2xkdGFibGUpCisJCQkJCQl7CisJCQkJCQkJT2lkCQlyZWxpZDsKKworCQkJ CQkJCXJlbGlkID0gY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShzdWJpZCwgc3ViLT5uYW1lKTsK KworCQkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlk IC0gMV0gPQorCQkJCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwkJCQkJCQly ZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQor CQkJCQkJCQkJCQkJCQl0cnVlOworCQkJCQkJfQorCQkJCQkJZWxzZSBpZiAoIXdhbnRfdGFibGUg JiYgaGFzX29sZHRhYmxlKQorCQkJCQkJeworCQkJCQkJCU9iamVjdEFkZHJlc3Mgb2JqZWN0Owor CisJCQkJCQkJLyoKKwkJCQkJCQkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSByZWNvcmRlZCBh cyBpbnRlcm5hbAorCQkJCQkJCSAqIGRlcGVuZGVuY2llcyBvZiB0aGUgc3Vic2NyaXB0aW9uLiAg RHJvcCB0aGUKKwkJCQkJCQkgKiB0YWJsZSBpZiBpdCBpcyBub3QgcmVxdWlyZWQgYW55bW9yZSB0 byBhdm9pZAorCQkJCQkJCSAqIHN0YWxlIG9yIG9ycGhhbmVkIHJlbGF0aW9ucy4KKwkJCQkJCQkg KgorCQkJCQkJCSAqIFhYWDogQXQgcHJlc2VudCwgb25seSBjb25mbGljdCBsb2cgdGFibGVzIGFy ZQorCQkJCQkJCSAqIG1hbmFnZWQgdGhpcyB3YXkuICBJbiBmdXR1cmUgaWYgd2UgaW50cm9kdWNl CisJCQkJCQkJICogYWRkaXRpb25hbCBpbnRlcm5hbCBkZXBlbmRlbmNpZXMsIHdlIG1heSBuZWVk CisJCQkJCQkJICogYSB0YXJnZXRlZCBkZWxldGlvbiB0byBhdm9pZCBkZWxldGlvbiBvZiBhbnkK KwkJCQkJCQkgKiBvdGhlciBvYmplY3RzLgorCQkJCQkJCSAqLworCQkJCQkJCU9iamVjdEFkZHJl c3NTZXQob2JqZWN0LCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLAorCQkJCQkJCQkJCQkgc3ViaWQp OworCQkJCQkJCXBlcmZvcm1EZWxldGlvbigmb2JqZWN0LCBEUk9QX0NBU0NBREUsCisJCQkJCQkJ CQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJCQkJCQlQRVJGT1JNX0RFTEVU SU9OX1NLSVBfT1JJR0lOQUwpOworCisJCQkJCQkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9u X3N1YmNvbmZsaWN0bG9ncmVsaWQgLSAxXSA9CisJCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVt KEludmFsaWRPaWQpOworCQkJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmNv bmZsaWN0bG9ncmVsaWQgLSAxXSA9CisJCQkJCQkJCQkJCQl0cnVlOworCQkJCQkJfQorCQkJCQl9 CisJCQkJfQorCiAJCQkJdXBkYXRlX3R1cGxlID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAg LTIwMjcsNiArMjEyMiw3IEBAIERyb3BTdWJzY3JpcHRpb24oRHJvcFN1YnNjcmlwdGlvblN0bXQg KnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlGb3JtX3BnX3N1YnNjcmlwdGlvbiBmb3JtOwogCUxp c3QJICAgKnJzdGF0ZXM7CiAJYm9vbAkJbXVzdF91c2VfcGFzc3dvcmQ7CisJT2JqZWN0QWRkcmVz cwlvYmplY3Q7CiAKIAkvKgogCSAqIFRoZSBsYXVuY2hlciBtYXkgY29uY3VycmVudGx5IHN0YXJ0 IGEgbmV3IHdvcmtlciBmb3IgdGhpcyBzdWJzY3JpcHRpb24uCkBAIC0yMTg0LDYgKzIyODAsMTkg QEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1Rv cExldmVsKQogCS8qIENsZWFuIHVwIGRlcGVuZGVuY2llcyAqLwogCWRlbGV0ZVNoYXJlZERlcGVu ZGVuY3lSZWNvcmRzRm9yKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCAwKTsKIAorCS8q CisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgcmVjb3JkZWQgYXMgaW50ZXJuYWwgZGVwZW5k ZW5jaWVzIG9mIHRoZQorCSAqIHN1YnNjcmlwdGlvbi4gIFdlIG11c3QgZHJvcCB0aGUgZGVwZW5k ZW50IG9iamVjdHMgYmVmb3JlIHRoZQorCSAqIHN1YnNjcmlwdGlvbiBpdHNlbGYgaXMgcmVtb3Zl ZC4gIEJ5IHVzaW5nCisJICogUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMLCB3ZSBlbnN1 cmUgdGhhdCBvbmx5IHRoZSBjb25mbGljdCBsb2cKKwkgKiB0YWJsZSBpcyByZWFwZWQgd2hpbGUg dGhlIHN1YnNjcmlwdGlvbiByZW1haW5zIGZvciB0aGUgZmluYWwgZGVsZXRpb24KKwkgKiBzdGVw LgorCSAqLworCU9iamVjdEFkZHJlc3NTZXQob2JqZWN0LCBTdWJzY3JpcHRpb25SZWxhdGlvbklk LCBzdWJpZCk7CisJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJ UEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCB8CisJCQkJCVBFUkZPUk1fREVMRVRJT05fU0tJUF9P UklHSU5BTCk7CisKIAkvKiBSZW1vdmUgYW55IGFzc29jaWF0ZWQgcmVsYXRpb24gc3luY2hyb25p emF0aW9uIHN0YXRlcy4gKi8KIAlSZW1vdmVTdWJzY3JpcHRpb25SZWwoc3ViaWQsIEludmFsaWRP aWQpOwogCkBAIC0zMTkwLDMgKzMyOTksMTI3IEBAIGRlZkdldFN0cmVhbWluZ01vZGUoRGVmRWxl bSAqZGVmKQogCQkJCQlkZWYtPmRlZm5hbWUpKSk7CiAJcmV0dXJuIExPR0lDQUxSRVBfU1RSRUFN X09GRjsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwogfQorCisvKgorICogQnVpbGRzIHRoZSBU dXBsZURlc2MgZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUuCisgKi8KK3N0YXRpYyBUdXBsZURl c2MKK2NyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVfdHVwZGVzYyh2b2lkKQoreworCVR1cGxlRGVz Ywl0dXBkZXNjOworCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKE1BWF9DT05G TElDVF9BVFRSX05VTSk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IE1BWF9DT05GTElDVF9BVFRS X05VTTsgaSsrKQorCXsKKwkJT2lkIHR5cGVfb2lkID0gQ29uZmxpY3RMb2dTY2hlbWFbaV0uYXR0 dHlwaWQ7CisKKwkJLyoKKwkJICogU3BlY2lhbCBoYW5kbGluZyBmb3IgdGhlIEpTT04gYXJyYXkg dHlwZSBmb3IgcHJvcGVyCisJCSAqIFR1cGxlRGVzY0luaXRFbnRyeSBjYWxsLgorCQkgKi8KKwkJ aWYgKHR5cGVfb2lkID09IEpTT05BUlJBWU9JRCkKKwkJCXR5cGVfb2lkID0gZ2V0X2FycmF5X3R5 cGUoSlNPTk9JRCk7CisKKwkJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIGkgKyAxLAorCQkJ CQkJICAgQ29uZmxpY3RMb2dTY2hlbWFbaV0uYXR0bmFtZSwKKwkJCQkJCSAgIHR5cGVfb2lkLAor CQkJCQkJICAgLTEsIDApOworCX0KKworCXJldHVybiBCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsK K30KKworLyoKKyAqIENyZWF0ZSBhIHN0cnVjdHVyZWQgY29uZmxpY3QgbG9nIHRhYmxlIGZvciBh IHN1YnNjcmlwdGlvbi4KKyAqCisgKiBUaGUgdGFibGUgaXMgY3JlYXRlZCB3aXRoaW4gdGhlIHN5 c3RlbS1tYW5hZ2VkICdwZ19jb25mbGljdCcgbmFtZXNwYWNlLgorICogVGhlIHRhYmxlIG5hbWUg aXMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgdXNpbmcgdGhlIHN1YnNjcmlwdGlvbidzIE9JRAor ICogKGUuZy4sICJwZ19jb25mbGljdF88c3ViaWQ+IikgdG8gZW5zdXJlIHVuaXF1ZW5lc3Mgd2l0 aGluIHRoZSBjbHVzdGVyIGFuZAorICogdG8gYXZvaWQgY29sbGlzaW9ucyBkdXJpbmcgc3Vic2Ny aXB0aW9uIHJlbmFtZXMuCisgKi8KK3N0YXRpYyBPaWQKK2NyZWF0ZV9jb25mbGljdF9sb2dfdGFi bGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCU9p ZAkJCXJlbGlkOworCU9iamVjdEFkZHJlc3MJbXlzZWxmOworCU9iamVjdEFkZHJlc3MJc3ViYWRk cjsKKwljaGFyICAgIAlyZWxuYW1lW05BTUVEQVRBTEVOXTsKKworCXNucHJpbnRmKHJlbG5hbWUs IE5BTUVEQVRBTEVOLCAicGdfY29uZmxpY3RfJXUiLCBzdWJpZCk7CisKKwkvKiBUaGVyZSBjYW4g bm90IGJlIGFuIGV4aXN0aW5nIHRhYmxlIHdpdGggdGhlIHNhbWUgbmFtZS4gKi8KKwlBc3NlcnQo IU9pZElzVmFsaWQoZ2V0X3JlbG5hbWVfcmVsaWQocmVsbmFtZSwgUEdfQ09ORkxJQ1RfTkFNRVNQ QUNFKSkpOworCisJLyogQnVpbGQgdGhlIHR1cGxlIGRlc2NyaXB0b3IgZm9yIHRoZSBuZXcgdGFi bGUuICovCisJdHVwZGVzYyA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVfdHVwZGVzYygpOwor CisJLyogQ3JlYXRlIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KKwlyZWxpZCA9IGhlYXBfY3JlYXRl X3dpdGhfY2F0YWxvZyhyZWxuYW1lLAorCQkJCQkJCQkJIFBHX0NPTkZMSUNUX05BTUVTUEFDRSwK KwkJCQkJCQkJCSAwLAkvKiB0YWJsZXNwYWNlICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyog cmVsaWQgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWx0eXBlaWQgKi8KKwkJCQkJCQkJ CSBJbnZhbGlkT2lkLCAvKiByZWxvZnR5cGVpZCAqLworCQkJCQkJCQkJIEdldFVzZXJJZCgpLAor CQkJCQkJCQkJIEhFQVBfVEFCTEVfQU1fT0lELAorCQkJCQkJCQkJIHR1cGRlc2MsCisJCQkJCQkJ CQkgTklMLAorCQkJCQkJCQkJIFJFTEtJTkRfUkVMQVRJT04sCisJCQkJCQkJCQkgUkVMUEVSU0lT VEVOQ0VfUEVSTUFORU5ULAorCQkJCQkJCQkJIGZhbHNlLCAvKiBzaGFyZWRfcmVsYXRpb24gKi8K KwkJCQkJCQkJCSBmYWxzZSwgLyogbWFwcGVkX3JlbGF0aW9uICovCisJCQkJCQkJCQkgT05DT01N SVRfTk9PUCwKKwkJCQkJCQkJCSAoRGF0dW0pIDAsIC8qIHJlbG9wdGlvbnMgKi8KKwkJCQkJCQkJ CSBmYWxzZSwgLyogdXNlX3VzZXJfYWNsICovCisJCQkJCQkJCQkgdHJ1ZSwgLyogYWxsb3dfc3lz dGVtX3RhYmxlX21vZHMgKi8KKwkJCQkJCQkJCSB0cnVlLCAvKiBpc19pbnRlcm5hbCAqLworCQkJ CQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbHJld3JpdGUgKi8KKwkJCQkJCQkJCSBOVUxMKTsgLyog dHlwYWRkcmVzcyAqLworCisJLyoKKwkgKiBFc3RhYmxpc2ggYW4gaW50ZXJuYWwgZGVwZW5kZW5j eSBiZXR3ZWVuIHRoZSBjb25mbGljdCBsb2cgdGFibGUgYW5kCisJICogdGhlIHN1YnNjcmlwdGlv bi4KKwkgKgorCSAqIFdlIHVzZSBERVBFTkRFTkNZX0lOVEVSTkFMIHRvIHNpZ25pZnkgdGhhdCB0 aGUgdGFibGUncyBsaWZlY3ljbGUgaXMKKwkgKiBzdHJpY3RseSB0aWVkIHRvIHRoZSBzdWJzY3Jp cHRpb24sIHNpbWlsYXIgdG8gaG93IGEgVE9BU1QgdGFibGUgcmVsYXRlcworCSAqIHRvIGl0cyBt YWluIHRhYmxlIG9yIGEgc2VxdWVuY2UgcmVsYXRlcyB0byBhbiBpZGVudGl0eSBjb2x1bW4uCisJ ICoKKwkgKiBUaGlzIGVuc3VyZXMgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBpcyBhdXRvbWF0aWNh bGx5IHJlYXBlZCBkdXJpbmcgYQorCSAqIERST1AgU1VCU0NSSVBUSU9OIHZpYSBwZXJmb3JtRGVs ZXRpb24oKS4KKwkgKi8KKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgUmVsYXRpb25SZWxhdGlv bklkLCByZWxpZCk7CisJT2JqZWN0QWRkcmVzc1NldChzdWJhZGRyLCBTdWJzY3JpcHRpb25SZWxh dGlvbklkLCBzdWJpZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZzdWJhZGRyLCBE RVBFTkRFTkNZX0lOVEVSTkFMKTsKKworCS8qIFJlbGVhc2UgdHVwbGUgZGVzY3JpcHRvciBtZW1v cnkuICovCisJRnJlZVR1cGxlRGVzYyh0dXBkZXNjKTsKKworCXJldHVybiByZWxpZDsKK30KKwor LyoKKyAqIEdldExvZ0Rlc3RpbmF0aW9uCisgKgorICogQ29udmVydCBzdHJpbmcgdG8gZW51bSBi eSBjb21wYXJpbmcgYWdhaW5zdCBzdGFuZGFyZGl6ZWQgbGFiZWxzLgorICovCitDb25mbGljdExv Z0Rlc3QKK0dldExvZ0Rlc3RpbmF0aW9uKGNvbnN0IGNoYXIgKmRlc3QpCit7CisJLyogRW1wdHkg c3RyaW5nIG9yIE5VTEwgZGVmYXVsdHMgdG8gTE9HLiAqLworCWlmIChkZXN0ID09IE5VTEwgfHwg ZGVzdFswXSA9PSAnXDAnIHx8IHBnX3N0cmNhc2VjbXAoZGVzdCwgImxvZyIpID09IDApCisJCXJl dHVybiBDT05GTElDVF9MT0dfREVTVF9MT0c7CisKKwlpZiAocGdfc3RyY2FzZWNtcChkZXN0LCAi dGFibGUiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEU7CisKKwlpZiAo cGdfc3RyY2FzZWNtcChkZXN0LCAiYWxsIikgPT0gMCkKKwkJcmV0dXJuIENPTkZMSUNUX0xPR19E RVNUX0FMTDsKKworCS8qIFVucmVjb2duaXplZCBzdHJpbmcuICovCisJZXJlcG9ydChFUlJPUiwK KwkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJIGVycm1z ZygidW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1ZTogXCIlc1wiIiwg ZGVzdCksCisJCQkgZXJyaGludCgiVmFsaWQgdmFsdWVzIGFyZSBcImxvZ1wiLCBcInRhYmxlXCIs IGFuZCBcImFsbFwiLiIpKSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM1ODRjNGUxNDI4Li4yMGYwOGU1NDhi YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKQEAgLTY4MDYsNyArNjgwNiw3IEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhj b25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9 IHBzZXQucG9wdDsKIAlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2Zh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAogCQlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKLQlmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZX07CisJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAog CWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTY5MDAsMTUgKzY5MDAsMjIgQEAg ZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkK IAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJICAiLCBzdWJza2lwbHNuIEFTIFwi JXNcIlxuIiwKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSk7CisKKwkJLyogQ29u ZmxpY3QgbG9nIGRlc3RpbmF0aW9uIGlzIHN1cHBvcnRlZCBpbiB2MTkgYW5kIGhpZ2hlciAqLwor CQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVmZmVy KCZidWYsCisJCQkJCQkJICAiLCBzdWJjb25mbGljdGxvZ2Rlc3QgQVMgXCIlc1wiXG4iLAorCQkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGljdCBsb2cgZGVzdGluYXRpb24iKSk7CisJCX0KIAl9 CiAKIAkvKiBPbmx5IGRpc3BsYXkgc3Vic2NyaXB0aW9ucyBpbiBjdXJyZW50IGRhdGFiYXNlLiAq LwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCi0JCQkJCQkgIkZST00gcGdfY2F0YWxvZy5w Z19zdWJzY3JpcHRpb25cbiIKLQkJCQkJCSAiV0hFUkUgc3ViZGJpZCA9IChTRUxFQ1Qgb2lkXG4i Ci0JCQkJCQkgIiAgICAgICAgICAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX2RhdGFiYXNlXG4i Ci0JCQkJCQkgIiAgICAgICAgICAgICAgICAgV0hFUkUgZGF0bmFtZSA9IHBnX2NhdGFsb2cuY3Vy cmVudF9kYXRhYmFzZSgpKSIpOwotCisJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAi RlJPTSBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiAiCisJCQkJCSAgIldIRVJFIHN1YmRiaWQg PSAoU0VMRUNUIG9pZFxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIEZST00gcGdfY2F0YWxv Zy5wZ19kYXRhYmFzZVxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIFdIRVJFIGRhdG5hbWUg PSBwZ19jYXRhbG9nLmN1cnJlbnRfZGF0YWJhc2UoKSkiKTsKIAlpZiAoIXZhbGlkYXRlU1FMTmFt ZVBhdHRlcm4oJmJ1ZiwgcGF0dGVybiwgdHJ1ZSwgZmFsc2UsCiAJCQkJCQkJCU5VTEwsICJzdWJu YW1lIiwgTlVMTCwKIAkJCQkJCQkJTlVMTCwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA4Yjkx YmMwMDA2Mi4uMTJlZWU4YTBkNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIzNDQsOCAr MjM0NCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQlDT01QTEVU RV9XSVRIKCIoIiwgIlBVQkxJQ0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1l PiBTRVQgKCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNVQlNDUklQVElPTiIsIE1h dGNoQW55LCBNYXRjaEFueU4sICJTRVQiLCAiKCIpKQotCQlDT01QTEVURV9XSVRIKCJiaW5hcnki LCAiZGlzYWJsZV9vbl9lcnJvciIsICJmYWlsb3ZlciIsCi0JCQkJCSAgIm1heF9yZXRlbnRpb25f ZHVyYXRpb24iLCAib3JpZ2luIiwKKwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbiIsICJkaXNhYmxlX29uX2Vycm9yIiwKKwkJCQkJICAiZmFpbG92ZXIi LCAibWF4X3JldGVudGlvbl9kdXJhdGlvbiIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29yZF9y ZXF1aXJlZCIsICJyZXRhaW5fZGVhZF90dXBsZXMiLAogCQkJCQkgICJydW5fYXNfb3duZXIiLCAi c2xvdF9uYW1lIiwgInN0cmVhbWluZyIsCiAJCQkJCSAgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0 d29fcGhhc2UiKTsKQEAgLTM4NjAsOCArMzg2MCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKIAkvKiBDb21wbGV0ZSAi Q1JFQVRFIFNVQlNDUklQVElPTiA8bmFtZT4gLi4uICBXSVRIICggPG9wdD4iICovCiAJZWxzZSBp ZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQVElPTiIsIE1hdGNoQW55TiwgIldJVEgiLCAi KCIpKQotCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29ubmVjdCIsICJjb3B5X2RhdGEiLCAi Y3JlYXRlX3Nsb3QiLAotCQkJCQkgICJkaXNhYmxlX29uX2Vycm9yIiwgImVuYWJsZWQiLCAiZmFp bG92ZXIiLAorCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uIiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwKKwkJCQkJICAiY3JlYXRlX3Nsb3QiLCAiZGlz YWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZhaWxvdmVyIiwKIAkJCQkJICAibWF4X3JldGVu dGlvbl9kdXJhdGlvbiIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29yZF9yZXF1aXJlZCIsICJy ZXRhaW5fZGVhZF90dXBsZXMiLAogCQkJCQkgICJydW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwg InN0cmVhbWluZyIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCmluZGV4IGE5ZDZlOGVhOTg2Li44MTkzMjI5 ZjJlMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKQEAgLTI1LDYgKzI1LDcgQEAgZXh0ZXJuIGJvb2wg SXNJbnBsYWNlVXBkYXRlUmVsYXRpb24oUmVsYXRpb24gcmVsYXRpb24pOwogCiBleHRlcm4gYm9v bCBJc1N5c3RlbUNsYXNzKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CiBleHRl cm4gYm9vbCBJc1RvYXN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CitleHRlcm4gYm9v bCBJc0NvbmZsaWN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CiAKIGV4dGVybiBib29s IElzQ2F0YWxvZ1JlbGF0aW9uT2lkKE9pZCByZWxpZCk7CiBleHRlcm4gYm9vbCBJc0NhdGFsb2dU ZXh0VW5pcXVlSW5kZXhPaWQoT2lkIHJlbGlkKTsKQEAgLTMyLDYgKzMzLDcgQEAgZXh0ZXJuIGJv b2wgSXNJbnBsYWNlVXBkYXRlT2lkKE9pZCByZWxpZCk7CiAKIGV4dGVybiBib29sIElzQ2F0YWxv Z05hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOwogZXh0ZXJuIGJvb2wgSXNUb2FzdE5hbWVzcGFj ZShPaWQgbmFtZXNwYWNlSWQpOworZXh0ZXJuIGJvb2wgSXNDb25mbGljdE5hbWVzcGFjZShPaWQg bmFtZXNwYWNlSWQpOwogCiBleHRlcm4gYm9vbCBJc1Jlc2VydmVkTmFtZShjb25zdCBjaGFyICpu YW1lKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0CmluZGV4IDMwNzVlMTQyYzcz Li5iNDVjYjkzODNhOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3Bh Y2UuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdApAQCAtMTgs NiArMTgsOSBAQAogeyBvaWQgPT4gJzk5Jywgb2lkX3N5bWJvbCA9PiAnUEdfVE9BU1RfTkFNRVNQ QUNFJywKICAgZGVzY3IgPT4gJ3Jlc2VydmVkIHNjaGVtYSBmb3IgVE9BU1QgdGFibGVzJywKICAg bnNwbmFtZSA9PiAncGdfdG9hc3QnLCBuc3BhY2wgPT4gJ19udWxsXycgfSwKK3sgb2lkID0+ICcx MzgyJywgb2lkX3N5bWJvbCA9PiAnUEdfQ09ORkxJQ1RfTkFNRVNQQUNFJywKKyAgZGVzY3IgPT4g J3Jlc2VydmVkIHNjaGVtYSBmb3Igc3Vic2NyaXB0aW9uLXNwZWNpZmljIGNvbmZsaWN0IGxvZyB0 YWJsZXMnLAorICBuc3BuYW1lID0+ICdwZ19jb25mbGljdCcsIG5zcGFjbCA9PiAnX251bGxfJyB9 LAogIyB1cGRhdGUgZHVtcE5hbWVzcGFjZSgpIGlmIGNoYW5naW5nIHRoaXMgZGVzY3IKIHsgb2lk ID0+ICcyMjAwJywgb2lkX3N5bWJvbCA9PiAnUEdfUFVCTElDX05BTUVTUEFDRScsCiAgIGRlc2Ny ID0+ICdzdGFuZGFyZCBwdWJsaWMgc2NoZW1hJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5oCmluZGV4IGYzNTcxZDJiZmNmLi40YWEyOWVhMTVkNCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05MCw2ICs5MCw3IEBAIENBVEFMT0cocGdfc3Vic2NyaXB0 aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lf Uk9XCiAJCQkJCQkJCQkgKiBleGNlZWRlZCBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uLCB3aGVuCiAJ CQkJCQkJCQkgKiBkZWZpbmVkICovCiAKKwlPaWQgICAgICAgICBzdWJjb25mbGljdGxvZ3JlbGlk OyAvKiBSZWxpZCBvZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiAqLwogI2lmZGVmIENBVEFMT0df VkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCiAJLyogQ29u bmVjdGlvbiBzdHJpbmcgdG8gdGhlIHB1Ymxpc2hlciAqLwogCXRleHQJCXN1YmNvbm5pbmZvIEJL SV9GT1JDRV9OT1RfTlVMTDsKQEAgLTEwMyw2ICsxMDQsMTQgQEAgQ0FUQUxPRyhwZ19zdWJzY3Jp cHRpb24sNjEwMCxTdWJzY3JpcHRpb25SZWxhdGlvbklkKSBCS0lfU0hBUkVEX1JFTEFUSU9OIEJL SV9ST1cKIAkvKiBMaXN0IG9mIHB1YmxpY2F0aW9ucyBzdWJzY3JpYmVkIHRvICovCiAJdGV4dAkJ c3VicHVibGljYXRpb25zWzFdIEJLSV9GT1JDRV9OT1RfTlVMTDsKIAorCS8qCisJICogU3RyYXRl Z3kgZm9yIGxvZ2dpbmcgcmVwbGljYXRpb24gY29uZmxpY3RzOgorCSAqICdsb2cnIC0gc2VydmVy IGxvZyBvbmx5LAorCSAqICd0YWJsZScgLSBpbnRlcm5hbCB0YWJsZSBvbmx5LAorCSAqICdhbGwn IC0gYm90aCBsb2cgYW5kIHRhYmxlLgorCSAqLworCXRleHQJCXN1YmNvbmZsaWN0bG9nZGVzdDsK KwogCS8qIE9ubHkgcHVibGlzaCBkYXRhIG9yaWdpbmF0aW5nIGZyb20gdGhlIHNwZWNpZmllZCBv cmlnaW4gKi8KIAl0ZXh0CQlzdWJvcmlnaW4gQktJX0RFRkFVTFQoTE9HSUNBTFJFUF9PUklHSU5f QU5ZKTsKICNlbmRpZgpAQCAtMTUyLDEyICsxNjEsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2Ny aXB0aW9uCiAJCQkJCQkJCQkgKiBhbmQgdGhlIHJldGVudGlvbiBkdXJhdGlvbiBoYXMgbm90CiAJ CQkJCQkJCQkgKiBleGNlZWRlZCBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uLCB3aGVuCiAJCQkJCQkJ CQkgKiBkZWZpbmVkICovCisJT2lkCQkJY29uZmxpY3Rsb2dyZWxpZDsJLyogY29uZmxpY3QgbG9n IHRhYmxlIE9pZCAqLwogCWNoYXIJICAgKmNvbm5pbmZvOwkJLyogQ29ubmVjdGlvbiBzdHJpbmcg dG8gdGhlIHB1Ymxpc2hlciAqLwogCWNoYXIJICAgKnNsb3RuYW1lOwkJLyogTmFtZSBvZiB0aGUg cmVwbGljYXRpb24gc2xvdCAqLwogCWNoYXIJICAgKnN5bmNjb21taXQ7CQkvKiBTeW5jaHJvbm91 cyBjb21taXQgc2V0dGluZyBmb3Igd29ya2VyICovCiAJTGlzdAkgICAqcHVibGljYXRpb25zOwkv KiBMaXN0IG9mIHB1YmxpY2F0aW9uIG5hbWVzIHRvIHN1YnNjcmliZSB0byAqLwogCWNoYXIJICAg Km9yaWdpbjsJCQkvKiBPbmx5IHB1Ymxpc2ggZGF0YSBvcmlnaW5hdGluZyBmcm9tIHRoZQogCQkJ CQkJCQkgKiBzcGVjaWZpZWQgb3JpZ2luICovCisJY2hhcgkgICAqY29uZmxpY3Rsb2dkZXN0Owkv KiBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gKi8KIH0gU3Vic2NyaXB0aW9uOwogCiAjaWZkZWYg RVhQT1NFX1RPX0NMSUVOVF9DT0RFCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRz LmgKaW5kZXggNjM1MDQyMzJhMTQuLmE4OTUxMjdmOGZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5oCkBAIC0xNyw2ICsxNyw3IEBACiAKICNpbmNsdWRlICJjYXRhbG9n L29iamVjdGFkZHJlc3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgorI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCiAKIGV4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0 ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQg KnN0bXQsCiAJCQkJCQkJCQkJYm9vbCBpc1RvcExldmVsKTsKQEAgLTM2LDQgKzM3LDYgQEAgZXh0 ZXJuIHZvaWQgQ2hlY2tTdWJEZWFkVHVwbGVSZXRlbnRpb24oYm9vbCBjaGVja19ndWMsIGJvb2wg c3ViX2Rpc2FibGVkLAogCQkJCQkJCQkJICAgYm9vbCByZXRlbnRpb25fYWN0aXZlLAogCQkJCQkJ CQkJICAgYm9vbCBtYXhfcmV0ZW50aW9uX3NldCk7CiAKK2V4dGVybiBDb25mbGljdExvZ0Rlc3Qg R2V0TG9nRGVzdGluYXRpb24oY29uc3QgY2hhciAqZGVzdCk7CisKICNlbmRpZgkJCQkJCQkvKiBT VUJTQ1JJUFRJT05DTURTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L2NvbmZsaWN0LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCmluZGV4IGQ1 MzgyNzQ2MzdmLi5lY2RmYWNkNGYwMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vY29uZmxpY3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCkBA IC0xMCw2ICsxMCw3IEBACiAjZGVmaW5lIENPTkZMSUNUX0gKIAogI2luY2x1ZGUgImFjY2Vzcy94 bG9nZGVmcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm5vZGVz L3BnX2xpc3QuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKIApAQCAtNzksNiArODAs NjAgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uZmxpY3RUdXBsZUluZm8KIAkJCQkJCQkJICogY29uZmxp Y3RpbmcgbG9jYWwgcm93IG9jY3VycmVkICovCiB9IENvbmZsaWN0VHVwbGVJbmZvOwogCisvKgor ICogQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHR5cGVzLgorICoKKyAqIFRoZXNlIHZhbHVlcyBh cmUgZGVmaW5lZCBhcyBiaXRtYXNrIGZsYWdzIHRvIGFsbG93IGZvciBtdWx0aXBsZSBzaW11bHRh bmVvdXMKKyAqIGxvZ2dpbmcgZGVzdGluYXRpb25zIChlLmcuLCBsb2dnaW5nIHRvIGJvdGggc3lz dGVtIGxvZ3MgYW5kIGEgdGFibGUpLgorICogSW50ZXJuYWxseSwgd2UgdXNlIHRoZXNlIGZvciBi aXR3aXNlIGNvbXBhcmlzb25zIChJc1NldCksIGJ1dCB0aGUgc3RyaW5nCisgKiByZXByZXNlbnRh dGlvbiBpcyBzdG9yZWQgaW4gcGdfc3Vic2NyaXB0aW9uLnN1YmNvbmZsaWN0bG9nZGVzdC4KKyAq LwordHlwZWRlZiBlbnVtIENvbmZsaWN0TG9nRGVzdAoreworCS8qIExvZyBjb25mbGljdHMgdG8g dGhlIHNlcnZlciBsb2dzICovCisJQ09ORkxJQ1RfTE9HX0RFU1RfTE9HICAgPSAxIDw8IDAsICAg LyogMHgwMSAqLworCisJLyogTG9nIGNvbmZsaWN0cyB0byBhbiBpbnRlcm5hbGx5IG1hbmFnZWQg dGFibGUgKi8KKwlDT05GTElDVF9MT0dfREVTVF9UQUJMRSA9IDEgPDwgMSwgICAvKiAweDAyICov CisKKwkvKiBDb252ZW5pZW5jZSBmbGFnIGZvciBhbGwgc3VwcG9ydGVkIGRlc3RpbmF0aW9ucyAq LworCUNPTkZMSUNUX0xPR19ERVNUX0FMTCAgID0gKENPTkZMSUNUX0xPR19ERVNUX0xPRyB8IENP TkZMSUNUX0xPR19ERVNUX1RBQkxFKQorfSBDb25mbGljdExvZ0Rlc3Q7CisKKy8qCisgKiBBcnJh eSBtYXBwaW5nIGZvciBjb252ZXJ0aW5nIGludGVybmFsIGVudW0gdG8gc3RyaW5nLgorICovCitz dGF0aWMgY29uc3QgY2hhciAqY29uc3QgQ29uZmxpY3RMb2dEZXN0TmFtZXNbXSA9IHsKKwlbQ09O RkxJQ1RfTE9HX0RFU1RfTE9HXSA9ICJsb2ciLAorCVtDT05GTElDVF9MT0dfREVTVF9UQUJMRV0g PSAidGFibGUiLAorCVtDT05GTElDVF9MT0dfREVTVF9BTExdID0gImFsbCIKK307CisKKy8qIFN0 cnVjdHVyZSB0byBob2xkIG1ldGFkYXRhIGZvciBvbmUgY29sdW1uIG9mIHRoZSBjb25mbGljdCBs b2cgdGFibGUgKi8KK3R5cGVkZWYgc3RydWN0IENvbmZsaWN0TG9nQ29sdW1uRGVmCit7CisJY29u c3QgY2hhciAqYXR0bmFtZTsgICAgLyogQ29sdW1uIG5hbWUgKi8KKwlPaWQgICAgICAgICBhdHR0 eXBpZDsgICAvKiBEYXRhIHR5cGUgT0lEICovCit9IENvbmZsaWN0TG9nQ29sdW1uRGVmOworCisv KiBUaGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBz Y2hlbWEgKi8KK3N0YXRpYyBjb25zdCBDb25mbGljdExvZ0NvbHVtbkRlZiBDb25mbGljdExvZ1Nj aGVtYVtdID0KK3sKKwl7IC5hdHRuYW1lID0gInJlbGlkIiwgICAgICAgICAgICAuYXR0dHlwaWQg PSBPSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInNjaGVtYW5hbWUiLCAgICAgICAuYXR0dHlwaWQg PSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZWxuYW1lIiwgICAgICAgICAgLmF0dHR5cGlk ID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAiY29uZmxpY3RfdHlwZSIsICAgIC5hdHR0eXBp ZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV94aWQiLCAgICAgICAuYXR0dHlw aWQgPSBYSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9jb21taXRfbHNuIiwuYXR0dHlw aWQgPSBMU05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9jb21taXRfdHMiLCAuYXR0dHlw aWQgPSBUSU1FU1RBTVBUWk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVtb3RlX29yaWdpbiIsICAg IC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlcGxpY2FfaWRlbnRpdHki LCAuYXR0dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfdHVwbGUiLCAg ICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAibG9jYWxfY29uZmxpY3Rz IiwgIC5hdHR0eXBpZCA9IEpTT05BUlJBWU9JRCB9Cit9OworCisjZGVmaW5lIE1BWF9DT05GTElD VF9BVFRSX05VTSBsZW5ndGhvZihDb25mbGljdExvZ1NjaGVtYSkKKwogZXh0ZXJuIGJvb2wgR2V0 VHVwbGVUcmFuc2FjdGlvbkluZm8oVHVwbGVUYWJsZVNsb3QgKmxvY2Fsc2xvdCwKIAkJCQkJCQkJ CVRyYW5zYWN0aW9uSWQgKnhtaW4sCiAJCQkJCQkJCQlSZXBPcmlnaW5JZCAqbG9jYWxvcmlnaW4s CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggYjNlY2Nk OGFmZTMuLmE3MWJiODdmMGUyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3Jp cHRpb24ub3V0CkBAIC0xMTYsMTggKzExNiwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YjQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVQog V0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQK IEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRl IHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVy IHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKyByZWdyZXNz X3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisg ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogXGRScysgcmVn cmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIERST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjM7CkBAIC0xNDUsMTAgKzE0NSwxMCBAQCBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiBFUlJP UjogIGludmFsaWQgY29ubmVjdGlvbiBzdHJpbmcgc3ludGF4OiBtaXNzaW5nICI9IiBhZnRlciAi Zm9vYmFyIiBpbiBjb25uZWN0aW9uIGluZm8gc3RyaW5nCiAKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg UmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBh Y3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8 IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxs ZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8 IGxvZwogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCBQ VUJMSUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKQEAg LTE1NywxMCArMTU3LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VU IChzbG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUpOwogXGRScysKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAg IFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1 cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVs ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAgICAg ICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAwMDAwMDAwCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29u ZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYg ICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIg fCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMTc2LDEwICsxNzYs MTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogImNyZWF0 ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAo bHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi Mix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg MCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAxMjM0NQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNh dGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJs ZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8 IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAxMjM0NSB8IGxvZwogKDEgcm93 KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9ORQpAQCAtMTg4LDEwICsxODgsMTAgQEAgQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSBOT05FKTsKIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gJzAvMCcpOwogRVJST1I6ICBp bnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNOKTogMC8wCiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24g ICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z CisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVz dGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxs ZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAwMDAg fCBsb2cKICgxIHJvdykKIAogQkVHSU47CkBAIC0yMjMsMTAgKzIyMywxMCBAQCBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViX2ZvbyBTRVQgKHN5bmNocm9ub3VzX2NvbW1pdCA9IGZv b2Jhcik7CiBFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAic3luY2hyb25vdXNf Y29tbWl0IjogImZvb2JhciIKIEhJTlQ6ICBBdmFpbGFibGUgdmFsdWVzOiBsb2NhbCwgcmVtb3Rl X3dyaXRlLCByZW1vdGVfYXBwbHksIG9uLCBvZmYuCiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICAgTmFtZSAg ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGlj YXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBsb2NhbCAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAwMAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgICBOYW1lICAgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNO ICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0 c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIy LHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAw IHwgZiAgICAgICAgICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdDIgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBi YWNrIHRvIGtlZXAgdGhlIHJlc3Qgc2ltcGxlCkBAIC0yNTUsMTkgKzI1NSwxOSBAQCBDUkVBVEUg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0 IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11 c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNj cmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlv bnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwg UmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IHQgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwg ZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJl dGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJl Z3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8 IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8w MDAwMDAwMCB8IGxvZwogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI7CkBAIC0yNzksMjcgKzI3OSwyNyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBz dWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAg fCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAg ICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAg fCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQg KHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQg dHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04g IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBw YXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAw MDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxv ZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZwogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0g ZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9u IAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIC0tIGZhaWwg LSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMzE0LDEwICszMTQsMTAgQEAgQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRl c3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQURE IFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwog RVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVhZHkgaW4gc3Vic2NyaXB0aW9u ICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAg ICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAg TFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIC0t IGZhaWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhhbiBvbmNlCkBAIC0zMzIsMTAgKzMzMiwx MCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlwdGlv biAicmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRl c3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cK ICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMzcxLDE5 ICszNzEsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElP TiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRp b24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUg cmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xv dCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRv IHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAg Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBh cmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAw MDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJl dGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9n IGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBwICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cp CiAKIC0tIHdlIGNhbiBhbHRlciBzdHJlYW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwog XGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1 cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRp b24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxv dmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVu dGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTM5MywxMCArMzkzLDEw IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBj cmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0 aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJs ZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNo IHB1YmxpY2F0aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAg fCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZwogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBA IC00MDksMTggKzQwOSwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3Jp cHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMg fCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cK ICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2Fi bGVfb25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVw bGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAot LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAw CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZwogKDEgcm93KQog CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9O RSk7CkBAIC00MzMsMTAgKzQzMywxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBz dWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAg fCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAg fCBsb2cKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQg KHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNDUwLDE5ICs0NTAsMTkgQEAgTk9USUNFOiAgbWF4X3Jl dGVudGlvbl9kdXJhdGlvbiBpcyBpbmVmZmVjdGl2ZSB3aGVuIHJldGFpbl9kZWFkX3R1cGxlcyBp cyBkaXNhYmwKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAxMDAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgMTAwMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAobWF4X3JldGVudGlvbl9kdXJhdGlvbiA9IDApOwogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAwMDAwMDAwIHwgbG9nCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTUxNyw2ICs1MTcsMjUxIEBA IENPTU1JVDsKIC0tIG9rLCBvd25pbmcgaXQgaXMgZW5vdWdoIGZvciB0aGlzIHN0dWZmCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CistLQorLS0gQ09ORkxJQ1QgTE9HIERF U1RJTkFUSU9OIFRFU1RTCistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19z dWJzY3JpcHRpb25fdXNlcic7CistLSBmYWlsIC0gdW5yZWNvZ25pemVkIHBhcmFtZXRlciB2YWx1 ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2ZhaWwgQ09OTkVDVElPTiAn ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNv bm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2ludmFsaWQnKTsKK0VS Uk9SOiAgdW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1ZTogImludmFs aWQiCitISU5UOiAgVmFsaWQgdmFsdWVzIGFyZSAibG9nIiwgInRhYmxlIiwgYW5kICJhbGwiLgor LS0gdmVyaWZ5IHN1YmNvbmZsaWN0bG9nZGVzdCBpcyAnbG9nJyBhbmQgcmVsaWQgaXMgMCAoSW52 YWxpZE9pZCkgZm9yIGRlZmF1bHQgY2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2Nv bmZsaWN0X2xvZ19kZWZhdWx0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworV0FSTklORzog IHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBU byBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBs aWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJz Y3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29u ZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBX SEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQnOworICAgICAgICAg ICBzdWJuYW1lICAgICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxv Z3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQg fCBsb2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisKKy0t IHZlcmlmeSBlbXB0eSBzdHJpbmcgZGVmYXVsdHMgdG8gJ2xvZycKK0NSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJycpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3 YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBs aWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBl bmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVm cmVzaCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBz dWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKyAgICAgICAgICBzdWJuYW1lICAgICAgICAg ICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIHwgbG9nICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCistLSB0aGlzIHNob3VsZCBnZW5lcmF0ZSBh biBpbnRlcm5hbCB0YWJsZSBuYW1lZCBwZ19jb25mbGljdF8kc3ViaWQkCitDUkVBVEUgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0 aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRl IHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNs b3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0 byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KKy0tIGNoZWNrIG1ldGFkYXRhIGluIHBnX3N1YnNjcmlw dGlvbjogZGVzdGluYXRpb24gc2hvdWxkIGJlICd0YWJsZScgYW5kIHJlbGlkIHZhbGlkCitTRUxF Q1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBB UyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF90ZXN0MSc7CisgICAgICAgIHN1Ym5hbWUgICAgICAgICB8IHN1YmNvbmZsaWN0 bG9nZGVzdCB8IGhhc19yZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgfCB0YWJsZSAg ICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUg ZXhpc3RzLCBpdHMgT0lEIG1hdGNoZXMgc3ViY29uZmxpY3Rsb2dyZWxpZCwKKy0tIGFuZCBpdCBp cyBsb2NhdGVkIGluIHRoZSAncGdfY29uZmxpY3QnIG5hbWVzcGFjZS4KK1NFTEVDVCBuLm5zcG5h bWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9pZF9tYXRjaGVzIgorRlJP TSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF8nIHx8IHMub2lkCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNl ID0gbi5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAg IG5zcG5hbWUgICB8IG9pZF9tYXRjaGVzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cGdfY29uZmxpY3QgfCB0CisoMSByb3cpCisKKy0tIGNoZWNrIGlmIHRoZSBpbnRlcm5hbCB0YWJs ZSBoYXMgdGhlIGNvcnJlY3Qgc2NoZW1hCitTRUxFQ1QgYS5hdHRudW0sIGEuYXR0bmFtZQorRlJP TSBwZ19hdHRyaWJ1dGUgYQorSk9JTiBwZ19jbGFzcyBjIE9OIGEuYXR0cmVsaWQgPSBjLm9pZAor Sk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBz Lm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0 dG51bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0dG51bTsKKyBhdHRudW0gfCAgICAgIGF0dG5hbWUg ICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIDEgfCByZWxpZAorICAg ICAgMiB8IHNjaGVtYW5hbWUKKyAgICAgIDMgfCByZWxuYW1lCisgICAgICA0IHwgY29uZmxpY3Rf dHlwZQorICAgICAgNSB8IHJlbW90ZV94aWQKKyAgICAgIDYgfCByZW1vdGVfY29tbWl0X2xzbgor ICAgICAgNyB8IHJlbW90ZV9jb21taXRfdHMKKyAgICAgIDggfCByZW1vdGVfb3JpZ2luCisgICAg ICA5IHwgcmVwbGljYV9pZGVudGl0eQorICAgICAxMCB8IHJlbW90ZV90dXBsZQorICAgICAxMSB8 IGxvY2FsX2NvbmZsaWN0cworKDExIHJvd3MpCisKKy0tCistLSBBTFRFUiBTVUJTQ1JJUFRJT04g LSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gc3RhdGUgdHJhbnNpdGlvbnMKKy0tCistLSBUaGVz ZSB0ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRpb24gbG9naWMgYmV0d2VlbiBkaWZmZXJlbnQgbG9n Z2luZworLS0gZGVzdGluYXRpb25zLCBlbnN1cmluZyBpbnRlcm5hbCB0YWJsZXMgYXJlIGNyZWF0 ZWQgb3IgZHJvcHBlZCBhcyBleHBlY3RlZC4KKy0tCistLSB0cmFuc2l0aW9uIGZyb20gJ2xvZycg dG8gJ2FsbCcKKy0tIGEgbmV3IGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZSBzaG91bGQgYmUg Y3JlYXRlZAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIENPTk5F Q1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBX SVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsK K1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVk CitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0 ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRl ciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRp b24gPSAnYWxsJyk7CistLSB2ZXJpZnkgbWV0YWRhdGEgYWZ0ZXIgQUxURVIgKGRlc3RpbmF0aW9u IHNob3VsZCBiZSAnYWxsJykKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1 YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24g V0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyAgICAgICAgc3VibmFt ZSAgICAgICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0IHwgaGFzX3JlbGlkIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgcmVncmVzc19j b25mbGljdF90ZXN0MiB8IGFsbCAgICAgICAgICAgICAgICB8IHQKKygxIHJvdykKKworLS0gdHJh bnNpdGlvbiBmcm9tICdhbGwnIHRvICd0YWJsZScKKy0tIHNob3VsZCBOT1QgZHJvcCB0aGUgdGFi bGUsIG9ubHkgY2hhbmdlIGRlc3RpbmF0aW9uIHN0cmluZworU0VMRUNUIHN1YmNvbmZsaWN0bG9n cmVsaWQgQVMgb2xkX3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF90ZXN0MicgXGdzZXQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7 CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID0gOm9sZF9y ZWxpZCBBUyByZWxpZF91bmNoYW5nZWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7Cisgc3ViY29uZmxpY3Rsb2dkZXN0IHwgcmVs aWRfdW5jaGFuZ2VkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyB0 YWJsZSAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIHRyYW5zaXRpb24gZnJvbSAndGFi bGUnIHRvICdsb2cnCistLSBzaG91bGQgZHJvcCB0aGUgdGFibGUgYW5kIGNsZWFyIHJlbGlkCitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNv bmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF90ZXN0Mic7Cisgc3ViY29uZmxpY3Rsb2dkZXN0IHwgc3ViY29uZmxpY3Rs b2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxv ZyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIDAKKygxIHJvdykKKworLS0gdmVy aWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBpcyBnb25lCitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdf Y2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxp Y3RfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDIn OworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tCistLSBQVUJMSUNBVElP TjogVmVyaWZ5IGludGVybmFsIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0gcGdf cmVsYXRpb25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgaW50ZXJuYWwg Y29uZmxpY3QgbG9nCistLSB0YWJsZXMgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNjaWRl bnRhbGx5IGluY2x1ZGVkIGluIHB1YmxpY2F0aW9ucy4KKy0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBw Z19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZShjLm9pZCkKK0ZST00gcGdfY2xhc3MgYworSk9JTiBw Z19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlw dGlvbiBzIE9OIHMuc3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICBuc3BuYW1lICAgfCBwZ19yZWxhdGlvbl9p c19wdWJsaXNoYWJsZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHBnX2NvbmZsaWN0IHwgZgorKDEgcm93KQorCistLQorLS0gVGFibGUgUHJvdGVjdGlvbiBh bmQgTGlmZWN5Y2xlIE1hbmFnZW1lbnQKKy0tCistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhhdDoK Ky0tIE1hbnVhbCBEUk9QIFRBQkxFIGlzIGRpc2FsbG93ZWQuCistLSBEUk9QIFNVQlNDUklQVElP TiBhdXRvbWF0aWNhbGx5IHJlYXBzIHRoZSB0YWJsZS4KKy0tCistLSByZS1lbmFibGUgdGFibGUg bG9nZ2luZyBmb3IgdmVyaWZpY2F0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MSBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworLS0g V2UgdXNlIGEgRE8gYmxvY2sgd2l0aCBkeW5hbWljIFNRTCBiZWNhdXNlIHRoZSBpbnRlcm5hbCBj b25mbGljdCBsb2cgdGFibGUKKy0tIG5hbWUgY29udGFpbnMgdGhlIHN1YnNjcmlwdGlvbiBPSUQs IHdoaWNoIGlzIG5vbi1kZXRlcm1pbmlzdGljLiBUaGlzCistLSBhcHByb2FjaCBhbGxvd3MgdXMg dG8gYXR0ZW1wdCB0aGUgRFJPUCBhbmQgY2FwdHVyZSB0aGUgZXhwZWN0ZWQgZXJyb3IKKy0tIHdp dGhvdXQgaGFyZC1jb2RpbmcgYSBzcGVjaWZpYyBPSUQgaW4gdGhlIGV4cGVjdGVkIG91dHB1dC4K Ky0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRl bmN5CitETyAkJAorQkVHSU4KKyAgICBFWEVDVVRFICdEUk9QIFRBQkxFICcgfHwgKFNFTEVDVCAn cGdfY29uZmxpY3QucGdfY29uZmxpY3RfJyB8fCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hF UkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENFUFRJT04gV0hFTiBp bnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4 cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAkJDsKK05PVElDRTog IGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlCistLSBDTEVB TlVQOiBEUk9QIFNVQlNDUklQVElPTiByZWFwcyB0aGUgdGFibGUKK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MSBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworLS0gVmVyaWZ5IHRo ZSB0YWJsZSBPSUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxpY3RfJyB8fCBvaWQg QVMgaW50ZXJuYWxfdGFibGVuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfdGVzdDE7CistLSBzaG91bGQgcmV0dXJuIE5VTEwsIG1lYW5pbmcgdGhlIGlu dGVybmFsIHRhYmxlIHdhcyByZWFwZWQgdmlhIGRlcGVuZGVuY3kKK1NFTEVDVCB0b19yZWdjbGFz cyg6J2ludGVybmFsX3RhYmxlbmFtZScpOworIHRvX3JlZ2NsYXNzIAorLS0tLS0tLS0tLS0tLQor IAorKDEgcm93KQorCistLQorLS0gQWRkaXRpb25hbCBOYW1lc3BhY2UgYW5kIFRhYmxlIFByb3Rl Y3Rpb24gVGVzdHMKKy0tCistLSBTZXR1cDogRW5zdXJlIHdlIGhhdmUgYSBzdWJzY3JpcHRpb24g d2l0aCBhIGNvbmZsaWN0IGxvZyB0YWJsZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2Nv bmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QnCisgICAgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworV0FSTklORzogIHN1YnNjcmlwdGlv biB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSBy ZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90 LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8g cmVmcmVzaCBwdWJsaWNhdGlvbnMuCistLSBUcnlpbmcgdG8gQUxURVIgdGhlIGludGVybmFsIGNv bmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBp cyBzeXN0ZW0tbWFuYWdlZC4KKy0tIEFzIG1lbnRpb25lZCBpbiBwcmV2aW91cyB0ZXN0IGNhc2Vz LCB3ZSB1c2UgYSBETyBibG9jayB0byBoaWRlIGR5bmFtaWMgT0lEcy4KK0RPICQkCitERUNMQVJF CisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8 IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNj cmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCisgICAgV0hF UkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAg IFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBpbnRlcm5hbCBjb25mbGlj dCB0YWJsZSc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAnIEFE RCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0JzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9w cml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6 IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFMVEVSJzsKK0VORCAkJDsKK05PVElDRTog IEF0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gaW50ZXJuYWwgY29uZmxpY3QgdGFibGUKK05PVElD RTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmlu ZyBBTFRFUgorLS0gVHJ5aW5nIHRvIFRSVU5DQVRFIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cg dGFibGUKKy0tIFRoaXMgc2hvdWxkIGJlIGFsbG93ZWQuCistLSBBcyBtZW50aW9uZWQgaW4gcHJl dmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEgRE8gYmxvY2sgdG8gaGlkZSBkeW5hbWljIE9JRHMu CitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAn cGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNz IGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8 fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rp b25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJQ0UgJ0F0dGVtcHRpbmcgVFJVTkNBVEUgb24gaW50 ZXJuYWwgY29uZmxpY3QgdGFibGUnOworICAgIEVYRUNVVEUgJ1RSVU5DQVRFICcgfHwgdGFiX25h bWU7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlT RSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdl IGR1cmluZyBUUlVOQ0FURSc7CitFTkQgJCQ7CitOT1RJQ0U6ICBBdHRlbXB0aW5nIFRSVU5DQVRF IG9uIGludGVybmFsIGNvbmZsaWN0IHRhYmxlCitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBl cnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgVFJVTkNBVEUKKy0tIFRyeWluZyB0 byBjcmVhdGUgYSBuZXcgdGFibGUgbWFudWFsbHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFj ZQorLS0gVGhpcyBzaG91bGQgZmFpbCBhcyB0aGUgbmFtZXNwYWNlIGlzIHJlc2VydmVkIGZvciBj b25mbGljdCBsb2dzIHRhYmxlcy4KK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFi bGUgKGlkIGludCk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSAicGdfY29u ZmxpY3QubWFudWFsX3RhYmxlIgorREVUQUlMOiAgU3lzdGVtIGNhdGFsb2cgbW9kaWZpY2F0aW9u cyBhcmUgY3VycmVudGx5IGRpc2FsbG93ZWQuCistLSBNb3ZpbmcgYW4gZXhpc3RpbmcgdGFibGUg aW50byB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBVc2VycyBzaG91bGQgbm90IGJlIGFi bGUgdG8gbW92ZSB0aGVpciBvd24gdGFibGVzIHdpdGhpbiB0aGlzIG5hbWVzcGFjZS4KK0NSRUFU RSBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIChpZCBpbnQpOworQUxURVIgVEFCTEUgcHVibGljLnRl c3RfbW92ZSBTRVQgU0NIRU1BIHBnX2NvbmZsaWN0OworRVJST1I6ICBjYW5ub3QgbW92ZSBvYmpl Y3RzIGludG8gb3Igb3V0IG9mIENPTkZMSUNUIHNjaGVtYQorRFJPUCBUQUJMRSBwdWJsaWMudGVz dF9tb3ZlOworLS0gQ2xlYW4gdXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOworQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgU0VUIChzbG90X25hbWUg PSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7 CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgRElTQUJMRTsK K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBTRVQgKHNsb3Rf bmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9z dHI7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBESVNBQkxFOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChzbG90X25hbWUg PSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDI7CitBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsK K0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQg KHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9w cm90ZWN0aW9uX3Rlc3Q7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIERST1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCmluZGV4IGVmMGMyOThk MmRmLi4wMWYyZWEwNjNlZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2Ny aXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBA IC0zNjUsNiArMzY1LDIwMCBAQCBDT01NSVQ7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWI7CiAKKy0tCistLSBDT05GTElDVCBMT0cgREVTVElOQVRJT04gVEVTVFMKKy0tCisK K1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXInOwor CistLSBmYWlsIC0gdW5yZWNvZ25pemVkIHBhcmFtZXRlciB2YWx1ZQorQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X2ZhaWwgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29u ZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2ludmFsaWQnKTsKKworLS0gdmVyaWZ5IHN1YmNvbmZs aWN0bG9nZGVzdCBpcyAnbG9nJyBhbmQgcmVsaWQgaXMgMCAoSW52YWxpZE9pZCkgZm9yIGRlZmF1 bHQgY2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0 IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVz dHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0 bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUg c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0JzsKKworLS0gdmVyaWZ5IGVt cHR5IHN0cmluZyBkZWZhdWx0cyB0byAnbG9nJworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X2VtcHR5X3N0ciBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAnJyk7CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0 LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKworLS0gdGhpcyBzaG91bGQgZ2VuZXJh dGUgYW4gaW50ZXJuYWwgdGFibGUgbmFtZWQgcGdfY29uZmxpY3RfJHN1YmlkJAorQ1JFQVRFIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFs c2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCistLSBjaGVjayBtZXRh ZGF0YSBpbiBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNob3VsZCBiZSAndGFibGUnIGFu ZCByZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29u ZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSB2ZXJpZnkgdGhlIHBo eXNpY2FsIHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVsaWQs CistLSBhbmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UuCitT RUxFQ1Qgbi5uc3BuYW1lLCAoYy5vaWQgPSBzLnN1YmNvbmZsaWN0bG9ncmVsaWQpIEFTICJvaWRf bWF0Y2hlcyIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJl bG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBj LnJlbG5hbWVzcGFjZSA9IG4ub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF90ZXN0MSc7CisKKy0tIGNoZWNrIGlmIHRoZSBpbnRlcm5hbCB0YWJsZSBoYXMgdGhlIGNvcnJl Y3Qgc2NoZW1hCitTRUxFQ1QgYS5hdHRudW0sIGEuYXR0bmFtZQorRlJPTSBwZ19hdHRyaWJ1dGUg YQorSk9JTiBwZ19jbGFzcyBjIE9OIGEuYXR0cmVsaWQgPSBjLm9pZAorSk9JTiBwZ19zdWJzY3Jp cHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorV0hFUkUgcy5z dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBP UkRFUiBCWSBhLmF0dG51bTsKKworLS0KKy0tIEFMVEVSIFNVQlNDUklQVElPTiAtIGNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0tIFRoZXNlIHRlc3RzIHZl cmlmeSB0aGUgdHJhbnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVudCBsb2dnaW5nCistLSBk ZXN0aW5hdGlvbnMsIGVuc3VyaW5nIGludGVybmFsIHRhYmxlcyBhcmUgY3JlYXRlZCBvciBkcm9w cGVkIGFzIGV4cGVjdGVkLgorLS0KKworLS0gdHJhbnNpdGlvbiBmcm9tICdsb2cnIHRvICdhbGwn CistLSBhIG5ldyBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUgc2hvdWxkIGJlIGNyZWF0ZWQK K0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBDT05ORUNUSU9OICdk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29u bmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbiA9ICdhbGwnKTsKKworLS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVyIEFMVEVSIChkZXN0 aW5hdGlvbiBzaG91bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dk ZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2Ny aXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHRy YW5zaXRpb24gZnJvbSAnYWxsJyB0byAndGFibGUnCistLSBzaG91bGQgTk9UIGRyb3AgdGhlIHRh YmxlLCBvbmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBzdWJjb25mbGljdGxv Z3JlbGlkIEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScp OworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA9IDpvbGRf cmVsaWQgQVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworCistLSB0cmFuc2l0aW9uIGZyb20gJ3Rh YmxlJyB0byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBjbGVhciByZWxpZAor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJj b25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfdGVzdDInOworCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGlz IGdvbmUKK1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlw dGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tCistLSBQVUJMSUNBVElPTjog VmVyaWZ5IGludGVybmFsIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0gcGdfcmVs YXRpb25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgaW50ZXJuYWwgY29u ZmxpY3QgbG9nCistLSB0YWJsZXMgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRh bGx5IGluY2x1ZGVkIGluIHB1YmxpY2F0aW9ucy4KKy0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19y ZWxhdGlvbl9pc19wdWJsaXNoYWJsZShjLm9pZCkKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19u YW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlv biBzIE9OIHMuc3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0tCistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBM aWZlY3ljbGUgTWFuYWdlbWVudAorLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0g TWFudWFsIERST1AgVEFCTEUgaXMgZGlzYWxsb3dlZC4KKy0tIERST1AgU1VCU0NSSVBUSU9OIGF1 dG9tYXRpY2FsbHkgcmVhcHMgdGhlIHRhYmxlLgorLS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBsb2dn aW5nIGZvciB2ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIFdl IHVzZSBhIERPIGJsb2NrIHdpdGggZHluYW1pYyBTUUwgYmVjYXVzZSB0aGUgaW50ZXJuYWwgY29u ZmxpY3QgbG9nIHRhYmxlCistLSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJzY3JpcHRpb24gT0lELCB3 aGljaCBpcyBub24tZGV0ZXJtaW5pc3RpYy4gVGhpcworLS0gYXBwcm9hY2ggYWxsb3dzIHVzIHRv IGF0dGVtcHQgdGhlIERST1AgYW5kIGNhcHR1cmUgdGhlIGV4cGVjdGVkIGVycm9yCistLSB3aXRo b3V0IGhhcmQtY29kaW5nIGEgc3BlY2lmaWMgT0lEIGluIHRoZSBleHBlY3RlZCBvdXRwdXQuCisK Ky0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRl bmN5CitETyAkJAorQkVHSU4KKyAgICBFWEVDVVRFICdEUk9QIFRBQkxFICcgfHwgKFNFTEVDVCAn cGdfY29uZmxpY3QucGdfY29uZmxpY3RfJyB8fCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hF UkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENFUFRJT04gV0hFTiBp bnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4 cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAkJDsKKworLS0gQ0xF QU5VUDogRFJPUCBTVUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKworLS0gVmVyaWZ5 IHRoZSB0YWJsZSBPSUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxpY3RfJyB8fCBv aWQgQVMgaW50ZXJuYWxfdGFibGVuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKKworRFJPUCBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MTsKKworLS0gc2hvdWxkIHJldHVybiBOVUxMLCBtZWFuaW5n IHRoZSBpbnRlcm5hbCB0YWJsZSB3YXMgcmVhcGVkIHZpYSBkZXBlbmRlbmN5CitTRUxFQ1QgdG9f cmVnY2xhc3MoOidpbnRlcm5hbF90YWJsZW5hbWUnKTsKKworLS0KKy0tIEFkZGl0aW9uYWwgTmFt ZXNwYWNlIGFuZCBUYWJsZSBQcm90ZWN0aW9uIFRlc3RzCistLQorCistLSBTZXR1cDogRW5zdXJl IHdlIGhhdmUgYSBzdWJzY3JpcHRpb24gd2l0aCBhIGNvbmZsaWN0IGxvZyB0YWJsZQorQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnCisgICAgUFVCTElDQVRJT04gdGVzdHB1YiBX SVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScp OworCistLSBUcnlpbmcgdG8gQUxURVIgdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZQor LS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZC4K Ky0tIEFzIG1lbnRpb25lZCBpbiBwcmV2aW91cyB0ZXN0IGNhc2VzLCB3ZSB1c2UgYSBETyBibG9j ayB0byBoaWRlIGR5bmFtaWMgT0lEcy4KK0RPICQkCitERUNMQVJFCisgICAgdGFiX25hbWUgdGV4 dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJf bmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVs bmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3Jl Z3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAgIFJBSVNFIE5PVElDRSAnQXR0 ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBpbnRlcm5hbCBjb25mbGljdCB0YWJsZSc7CisgICAgRVhF Q1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJfbmFtZSB8fCAnIEFERCBDT0xVTU4gZXh0cmFfaW5m byB0ZXh0JzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAg IFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2 aWxlZ2UgZHVyaW5nIEFMVEVSJzsKK0VORCAkJDsKKworLS0gVHJ5aW5nIHRvIFRSVU5DQVRFIHRo ZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGJlIGFsbG93ZWQu CistLSBBcyBtZW50aW9uZWQgaW4gcHJldmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEgRE8gYmxv Y2sgdG8gaGlkZSBkeW5hbWljIE9JRHMuCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRl eHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFi X25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJl bG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdy ZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJQ0UgJ0F0 dGVtcHRpbmcgVFJVTkNBVEUgb24gaW50ZXJuYWwgY29uZmxpY3QgdGFibGUnOworICAgIEVYRUNV VEUgJ1RSVU5DQVRFICcgfHwgdGFiX25hbWU7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRf cHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9y OiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBUUlVOQ0FURSc7CitFTkQgJCQ7CisKKy0t IFRyeWluZyB0byBjcmVhdGUgYSBuZXcgdGFibGUgbWFudWFsbHkgaW4gdGhlIHBnX2NvbmZsaWN0 IG5hbWVzcGFjZQorLS0gVGhpcyBzaG91bGQgZmFpbCBhcyB0aGUgbmFtZXNwYWNlIGlzIHJlc2Vy dmVkIGZvciBjb25mbGljdCBsb2dzIHRhYmxlcy4KK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5t YW51YWxfdGFibGUgKGlkIGludCk7CisKKy0tIE1vdmluZyBhbiBleGlzdGluZyB0YWJsZSBpbnRv IHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFVzZXJzIHNob3VsZCBub3QgYmUgYWJsZSB0 byBtb3ZlIHRoZWlyIG93biB0YWJsZXMgd2l0aGluIHRoaXMgbmFtZXNwYWNlLgorQ1JFQVRFIFRB QkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGludCk7CitBTFRFUiBUQUJMRSBwdWJsaWMudGVzdF9t b3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7CitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7 CisKKy0tIENsZWFuIHVwIHJlbWFpbmluZyB0ZXN0IHN1YnNjcmlwdGlvbgorQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgRElTQUJMRTsKK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IFNFVCAoc2xvdF9uYW1lID0gTk9O RSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0OworCitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgRElTQUJMRTsKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHI7 CisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MjsKKworQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IERJU0FCTEU7 CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgU0VU IChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf cHJvdGVjdGlvbl90ZXN0OworCisKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1Ag Uk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAwOWU3ZjFkNDIwZS4u NGI0NmM2Njk5MTkgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC01MDAsNiArNTAwLDgg QEAgQ29uZGl0aW9uVmFyaWFibGVNaW5pbWFsbHlQYWRkZWQKIENvbmRpdGlvbmFsU3RhY2sKIENv bmZpZ0RhdGEKIENvbmZpZ1ZhcmlhYmxlCitDb25mbGljdExvZ0NvbHVtbkRlZgorQ29uZmxpY3RM b2dEZXN0CiBDb25mbGljdFR1cGxlSW5mbwogQ29uZmxpY3RUeXBlCiBDb25uQ2FjaGVFbnRyeQot LSAKMi40OS4wCgo= --0000000000001155df064842747b--