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 1waArg-001aAu-09 for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jun 2026 11:24:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1waAre-00Awpv-2I for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jun 2026 11:24:54 +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 1waAre-00Awpn-0L for pgsql-hackers@lists.postgresql.org; Thu, 18 Jun 2026 11:24:54 +0000 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1waArb-0000000158N-0GHi for pgsql-hackers@lists.postgresql.org; Thu, 18 Jun 2026 11:24:53 +0000 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-5ad4f39064bso590056e87.3 for ; Thu, 18 Jun 2026 04:24:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1781781889; cv=none; d=google.com; s=arc-20240605; b=MjU5+U7vbp/+lBmVL/teSjdLt/zs7oS/273e0ryLwLbtwZHsl8Frd16fm6Khyd/Qd4 sHtSvYrEx5SBVCSeW2tt2CSy2S1gSlcC/Be+b+gDfXp7is2J/qgTMPYp1ZK0dONXFsJw eT8NM0iSa53ICgCG4t8/or+2DGd4QVZbNPFDTFKaFb+2PJ3IwR2JujhGiMN/Byst/12h jmYkum28ddGXlzhl7RSE+T8xGiUlapKWPFAO1SvKzSYH/LuIY1hhsKEa6JhxOdy7Cq1S JbjjORCk0J1goHy9B0gNU/iPVVlILCVJNJx/pKKiFgnycsXnuNt41GJb9QQB7jB8BSC5 Pemw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=faeSFge0dK6XCZ4ovCs9AjKxu0ktp1fF/YmsonbZ9N8=; fh=pHtrQADCXCLffCxsIxbLkfg5RIA7MSx53Wn8cy33sTU=; b=Pwr8RkMfpMHqhq8zc5xaU0KrWMY/s2zxChozBEIH4VAkIxhxAIKvQ54QvD5ctc1oyG vY/Gg+ULPzjoQ6vVVYKqEiCvHsL9juMX0a6KUmY7HezXsjAT6Ksb9QrbvoRIhGLvAKV3 N4hx83k6Zy6jyLoWd4ATVgUmGCx3REyvYN6KofKeldZzbkBnqLBEi52BQQOxN1MCuwno UwAZdNQg4ho4WZTvQqJE4dukSWeM5H9G+buG1oJ+vOC+rhD8YKyhVzijz2piUdckdjIp oCT86CQEXxnWAAXhyHMWl488Z6pwYf5Z2lIkdSK6Q7+NOY5tNYh3XqoCtHF5IKVsRma1 00ZA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781781888; x=1782386688; 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=faeSFge0dK6XCZ4ovCs9AjKxu0ktp1fF/YmsonbZ9N8=; b=BrRi2q4914Y0Yy3dyRPNszY/x8kFcBDexi+HnBgwBSp9TN8ORf05fhyw9t2jAACyEF 8ZW1qK7sKCcnl2GY747871rHCzW8LGI376SFZpFdxLcyhrAkNPt9UL9jrLUOpqQ7gb6d 9oaT+7PYVkOESDhK9ZQZz4/ezTF9tJexllgrQVCDiXn/nD2XNwbBLJpqDv9t7TD9y04x zfRonsBkOg6CnAvJowwNIswSqQl6OSq21WHisNPRT2WFpSYxQYtK3nwaW7VqoShX3UgN 2YkqQCkgN/l5pahtSvDy4Sx185U5/WQcgCWWetjJX8ZNR3BGE5R9n69Rk/HlbpvpB6cL Z41w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781781889; x=1782386689; 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=faeSFge0dK6XCZ4ovCs9AjKxu0ktp1fF/YmsonbZ9N8=; b=TpxYSXfeQ+kleS8GmbClcVNYM3vmhziMis0TLDBUwzndEtofQSLJrcongOGceBEjpA VqRayyCivfpIcXZy/94UdOE/h3XK39kGgvEBZAi9NCklvjr7if5yhbs8dCOEV3xlzaAg 7JtoqmrnPq/6aKSedi+Y/Lo2MomlaixcjcY8Xy5luvgVadDizlDxDTW81HnN/AayGiax MvTPHVFeeZy+J4pmQb+neFdNOh5rra1tmNTR7OaD71CRntgD+4HSNG99OVcU3bi9K5g4 aNHvNE9BmFuH45r0Cti0oljWmxlFsaKzrCijS21Gpwoy9wTXGQLJAPUCOd6SonVtqkG8 Q0+A== X-Forwarded-Encrypted: i=1; AFNElJ+XO82sTTWLB8ICB7g3Vq4IN89YqIS3fR6GKZjv3vF0LUaux1IIvvHpU1IEk+jEd+O9y6h3esH3s9sNcmWM@lists.postgresql.org X-Gm-Message-State: AOJu0YwAHV9rhzxGMy/eTwr88Qxz8vwH+eWUgXc1jUu7xZfok4mJJQJv RbPWV4CulYFqMlxn9xaZDVEpeked/AydVMnRqwdA7pB1idR4Ff+Emq9/giGoTZWUbOsXweWGgDX lBQ4A7X3sYMjHRGg8i3c05NOHDPEJiYE= X-Gm-Gg: AfdE7cm3X+ENUBhpU6u1WC2TpdXiDpFFE12YPXK0GsCehJkP7+mBYj00pvdQ7Tv/D3X YHu8wcmZIM8asmlws13PscxRvUzIBaGoQydTe+rSCDAn/YTqwyczuJw2dGd0A4fgVlbr37xWuwj 3B3ITu2vSeqaGrng1qxL2azxFNFc6Tcw83/xQy6Lql7uAbUk8+eVDkJ5WI/v64veSnL733WzyaY XR3IFPXnJXnBjfeODe6coADu6Q5p/Ph+dtK0rJmHM6pQrlVYIoDXnDcrjAM63ZxcKc0EBxkBO/b DW/ayHrXaYAlkaDN5XiScrQpVy/e6LjFy0plPfc= X-Received: by 2002:a05:6512:2c0b:b0:5aa:6ec6:2579 with SMTP id 2adb3069b0e04-5ad47050e96mr2534089e87.43.1781781888190; Thu, 18 Jun 2026 04:24:48 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Thu, 18 Jun 2026 16:54:29 +0530 X-Gm-Features: AVVi8CeZBIc5juTSBXXG3Fbyj9hXVYs8ZdZo46yHJDOiZaS_vy8o3juAxjXsPT8 Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Shlok Kyal Cc: vignesh C , Peter Smith , Nisha Moond , Amit Kapila , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers , shveta malik Content-Type: multipart/mixed; boundary="000000000000836a4f0654856cfe" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000836a4f0654856cfe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jun 18, 2026 at 11:29=E2=80=AFAM Shlok Kyal wrote: > > On Wed, 17 Jun 2026 at 18:31, vignesh C wrote: > > > > On Tue, 16 Jun 2026 at 05:19, Peter Smith wrote= : > > > > > > On Mon, Jun 8, 2026 at 9:39=E2=80=AFPM vignesh C wrote: > > > > > > > > On Fri, 5 Jun 2026 at 07:59, Peter Smith wr= ote: > > > > > > > > > > Hi Vignesh. > > > > > > > > > > Some review comments for the patch v45-0004. > > > > > > > > > > 4c. > > > > > IMO there should be a separate function for handling the subscrip= tion > > > > > footer/s, same as there is already a function > > > > > addFooterToPublicationDesc. > > > > > > > > It is not required in this case as we don't have multiple footers f= rom > > > > different places to be added here. > > > > > > > > > > Sure, it's not "required", but I think: > > > A) Separating the footer code from the non-footer code makes it easie= r to read > > > B) The 'describeSubscriptions' function is too long. This would make > > > it 20 lines shorter. > > > C) Consistent footer handling for pub/sub describes. > > > > Ok, Let's keep it consistent > > > > > ////// > > > > > > More review comments for v50-0005 > > > > > > =3D=3D=3D=3D=3D=3D > > > src/bin/psql/describe.c > > > > > > 1. > > > + /* Conflict log destination is supported in v19 and higher */ > > > + if (pset.sversion >=3D 190000) > > > > > > The CLT is targeting PG20, right? So, that comment ought to say "is > > > supported in v20 and higher". > > > > > > Ideally, there should be some "TODO" reminder comments here to ensure > > > the appropriate 190000's get replaced by 200000 as soon as the versio= n > > > number is bumped. Better to flag/comment all those places now, so tha= t > > > nothing gets missed later. > > > > > > (A similar review comment probably applies also to the pg_dump change= s > > > in the previous v50-0004 patch). > > > > I felt it is better to mention it in the commit message of the patch > > instead of mentioning it in the code. > > > > The attached v51 version patch has the changes for the same. > > The patch also addresses the comment from [1]. > > [1] - https://www.postgresql.org/message-id/CANhcyEUjc9TCcW1YAQVMTs6-hu= WBZoy%2BsVkz5C8b72os5p-f%2Bg%40mail.gmail.com > > > Hi Dilip/ Vignesh, > > I reviewed the patch and here are some comments: > > 1. I further tested for the object which can be created in 'pg_conflict' = schemas > and found that operations such CREATE EXTENSION, CREATE OPERATOR, > CREATE COLLATION, CREATE TEXT SEARCH DICTIONARY on the schema > pg_conflict. > Is this expected? > > postgres=3D# CREATE EXTENSION hstore WITH SCHEMA pg_conflict; > CREATE EXTENSION > postgres=3D# CREATE EXTENSION pg_walinspect WITH SCHEMA pg_conflict; > CREATE EXTENSION > postgres=3D# CREATE COLLATION pg_conflict.mycollation (provider =3D > libc,locale =3D 'C'); > CREATE COLLATION > postgres=3D# CREATE TEXT SEARCH DICTIONARY pg_conflict.simple_dict > (TEMPLATE =3D pg_catalog.simple); > CREATE TEXT SEARCH DICTIONARY > postgres=3D# CREATE OPERATOR pg_conflict.=3D=3D=3D (LEFTARG =3D int, RIGH= TARG =3D > int, PROCEDURE =3D int4eq); > CREATE OPERATOR > > Also, when we create extension several objects are created in the schema: > eg: > extname | object > ---------+---------------------------------------------------------------= --------------------------------------------- > hstore | type pg_conflict.hstore > hstore | function pg_conflict.hstore_in(cstring) > hstore | function pg_conflict.hstore_out(pg_conflict.hstore) > hstore | function pg_conflict.hstore_recv(internal) > hstore | function pg_conflict.hstore_send(pg_conflict.hstore) > hstore | type pg_conflict.hstore[] > hstore | function pg_conflict.hstore_version_diag(pg_conflict.hstore) > . > . > > So, should it be allowed? > > 2. When we try to DROP conflict log table we get an ERROR: > postgres=3D# DROP TABLE pg_conflict.pg_conflict_log_16395; > ERROR: permission denied: "pg_conflict_log_16395" is a system catalog > > But for other restricted operation such as UPDATE/INSERT we get the error= as: > postgres=3D# INSERT INTO pg_conflict.pg_conflict_log_16395 VALUES (1); > ERROR: cannot modify or insert data into conflict log table > "pg_conflict_log_16395" > DETAIL: Conflict log tables are system-managed and only support > cleanup via DELETE or TRUNCATE. > > I think for the DROP case we should throw a similar error. Thoughts? Please find the updated patch version (rebased on current HEAD), which fixes all the open comments in 0001 and 0002. We are still working on 0003 regarding handling conflict log table insertion errors. --=20 Regards, Dilip Kumar Google --000000000000836a4f0654856cfe Content-Type: application/octet-stream; name="v52-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Disposition: attachment; filename="v52-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqjeukm61 RnJvbSAxZDA5ODE2NjQzN2Y2ZmFiMzgzZGU0MjhmZDQ4NmZmYTljZmQyYjNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxMCBKdW4gMjAyNiAxNjo1Mjo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjUy IDIvNl0gUmVwb3J0IGVycm9yIGZvciBkZGxzIG9uIGNvbmZsaWN0IGxvZyB0YWJsZXMKCi0tLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgfCAgOCArKysrCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9sb2NrY21kcy5jICAgICB8IDIxICsrKysrKysrLQogc3JjL2JhY2tlbmQvY29t bWFuZHMvcG9saWN5LmMgICAgICAgfCAxMiArKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Rh dHNjbWRzLmMgICAgfCAxNCArKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j ICAgIHwgNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RyaWdnZXIuYyAgICAgIHwgMjUgKysrKysrKysrKwogc3JjL2JhY2tlbmQvcmV3cml0ZS9y ZXdyaXRlRGVmaW5lLmMgfCAyMiArKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTc0IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L2FjbGNoay5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCA2NGUxNzY2NTJk MS4uYWU1OGRlNDUyZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMzY3NCw2ICszNjc0LDE0IEBA IHBnX25hbWVzcGFjZV9hY2xtYXNrX2V4dChPaWQgbnNwX29pZCwgT2lkIHJvbGVpZCwKIAlBY2wJ CSAgICphY2w7CiAJT2lkCQkJb3duZXJJZDsKIAorCS8qCisJICogRGlzYWxsb3cgY3JlYXRpb24g aW4gdGhlIGNvbmZsaWN0IHNjaGVtYSBmb3IgZXZlcnlvbmUsIGluY2x1ZGluZworCSAqIHN1cGVy dXNlcnMsIHVubGVzcyBpbiBiaW5hcnktdXBncmFkZSBtb2RlLgorCSAqLworCWlmICghSXNCaW5h cnlVcGdyYWRlICYmIChtYXNrICYgQUNMX0NSRUFURSkgJiYKKwkJSXNDb25mbGljdExvZ1RhYmxl TmFtZXNwYWNlKG5zcF9vaWQpKQorCQlyZXR1cm4gbWFzayAmIH5BQ0xfQ1JFQVRFOworCiAJLyog U3VwZXJ1c2VycyBieXBhc3MgYWxsIHBlcm1pc3Npb24gY2hlY2tpbmcuICovCiAJaWYgKHN1cGVy dXNlcl9hcmcocm9sZWlkKSkKIAkJcmV0dXJuIG1hc2s7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9sb2NrY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYwpp bmRleCBmNjZiOGYxN2I5Yi4uMTI4YzExY2MzNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2xvY2tjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYwpA QCAtMTYsNiArMTYsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAi YWNjZXNzL3hhY3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJj YXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfaW5oZXJpdHMuaCIKICNp bmNsdWRlICJjb21tYW5kcy9sb2NrY21kcy5oIgpAQCAtODMsNyArODQsMTggQEAgUmFuZ2VWYXJD YWxsYmFja0ZvckxvY2tUYWJsZShjb25zdCBSYW5nZVZhciAqcnYsIE9pZCByZWxpZCwgT2lkIG9s ZHJlbGlkLAogCQlyZXR1cm47CQkJCQkvKiB3b29wcywgY29uY3VycmVudGx5IGRyb3BwZWQ7IG5v IHBlcm1pc3Npb25zCiAJCQkJCQkJCSAqIGNoZWNrICovCiAKLQkvKiBDdXJyZW50bHksIHdlIG9u bHkgYWxsb3cgcGxhaW4gdGFibGVzIG9yIHZpZXdzIHRvIGJlIGxvY2tlZCAqLworCS8qCisJICog Tm90ZTogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgZGVsaWJlcmF0ZWx5IE5PVCBibG9ja2VkIGhl cmUsIGV2ZW4gdGhvdWdoCisJICogb3RoZXIgZGlyZWN0IERETCBvbiB0aGVtIGlzIHJlamVjdGVk IGVsc2V3aGVyZS4gcGdfZHVtcCByZWxpZXMgb24gYmVpbmcKKwkgKiBhYmxlIHRvIHRha2UgYW4g QUNDRVNTIFNIQVJFIGxvY2sgb24gdGhlc2UgdGFibGVzIHRvIHNhZmVseSBkdW1wIHRoZWlyCisJ ICogZGVmaW5pdGlvbnMgZHVyaW5nIGEgYmluYXJ5IHVwZ3JhZGUsIHNvIHdlIHBlcm1pdCBMT0NL IGNvbW1hbmRzIG9uIHRoZW0KKwkgKiBhbmQgdHJlYXQgdGhlbSBsaWtlIG9yZGluYXJ5IHRhYmxl cyBoZXJlLiBJdCdzIHRydWUgdGhhdCBhIHN0cm9uZyBsb2NrCisJICogKFNoYXJlTG9jayBvciBh Ym92ZSkgb24gc3VjaCBhIHRhYmxlIHdvdWxkIGNvbmZsaWN0IHdpdGggdGhlCisJICogUm93RXhj bHVzaXZlTG9jayB0YWtlbiBieSB0aGUgYXBwbHkgd29ya2VyJ3MgaW5zZXJ0cyBhbmQgY291bGQg c3RhbGwKKwkgKiBjb25mbGljdCBsb2dnaW5nIGFzIHdlbGwgYXMgdGhlIGFwcGx5IHdvcmtlciBm b3IgYXMgbG9uZyBhcyBpdCBpcyBoZWxkLgorCSAqIEJ1dCBsb2NraW5nIGEgc3lzdGVtLW1hbmFn ZWQgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGFuIHVudXN1YWwgdGhpbmcgdG8KKwkgKiBkbywgYW5k IGl0IGRvZXNuJ3Qgc2VlbSB3b3J0aCB0aGUgdHJvdWJsZSBvZiBmaWx0ZXJpbmcgYnkgbG9jayBt b2RlIGhlcmUuCisJICovCiAJaWYgKHJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTiAmJiByZWxr aW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgJiYKIAkJcmVsa2luZCAhPSBSRUxLSU5E X1ZJRVcpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0xOTgsNiArMjEwLDEzIEBAIExvY2tWaWV3UmVj dXJzZV93YWxrZXIoTm9kZSAqbm9kZSwgTG9ja1ZpZXdSZWN1cnNlX2NvbnRleHQgKmNvbnRleHQp CiAJCQkJcmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcpCiAJCQkJY29udGludWU7CiAKKwkJCS8qCisJ CQkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0gZm9yIGxv Z2ljYWwKKwkJCSAqIGFuZCBzaG91bGQgbm90IGJlIGxvY2tlZCBleHBsaWNpdGx5LgorCQkJICov CisJCQlpZiAoSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlKGdldF9yZWxfbmFtZXNwYWNlKHJl bGlkKSkpCisJCQkJY29udGludWU7CisKIAkJCS8qCiAJCQkgKiBXZSBtaWdodCBiZSBkZWFsaW5n IHdpdGggYSBzZWxmLXJlZmVyZW50aWFsIHZpZXcuICBJZiBzbywgd2UKIAkJCSAqIGNhbiBqdXN0 IHN0b3AgcmVjdXJzaW5nLCBzaW5jZSB3ZSBhbHJlYWR5IGxvY2tlZCBpdC4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvbGljeS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9s aWN5LmMKaW5kZXggMjFiOGVlYmUzMmQuLjEwZWE1OTliYWMwIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wb2xpY3kuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wb2xpY3ku YwpAQCAtNzksNiArNzksMTggQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclBvbGljeShjb25zdCBSYW5n ZVZhciAqcnYsIE9pZCByZWxpZCwgT2lkIG9sZHJlbGlkLAogCWlmICghb2JqZWN0X293bmVyY2hl Y2soUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCwgR2V0VXNlcklkKCkpKQogCQlhY2xjaGVja19l cnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxr aW5kKHJlbGlkKSksIHJ2LT5yZWxuYW1lKTsKIAorCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxl cyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0CisJ ICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBkaXJlY3RseSwgYXMgaXQgY291 bGQgZGlzcnVwdAorCSAqIGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RM b2dUYWJsZUNsYXNzKGNsYXNzZm9ybSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9u IGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCXJ2LT5yZWxu YW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFu YWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAkv KiBObyBzeXN0ZW0gdGFibGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2Vk LiAqLwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwg Y2xhc3Nmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3N0YXRzY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMKaW5k ZXggYjM1NDcyM2JlNDQuLmU4ZmE4MWVmNTU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zdGF0c2NtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwpA QCAtMTQ3LDYgKzE0NywyMCBAQCBDcmVhdGVTdGF0aXN0aWNzKENyZWF0ZVN0YXRzU3RtdCAqc3Rt dCwgYm9vbCBjaGVja19yaWdodHMpCiAJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dO RVIsIGdldF9yZWxraW5kX29ianR5cGUocmVsLT5yZF9yZWwtPnJlbGtpbmQpLAogCQkJCQkJICAg UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CiAKKwkJLyoKKwkJICogQ29uZmxpY3QgbG9n IHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIHVzZWQgaW50ZXJuYWxseSBmb3IKKwkJ ICogbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdCBsb2dnaW5nLiBVbmxpa2UgdXNlciB0YWJs ZXMsIHRoZXkgYXJlCisJCSAqIG5vdCBleHBlY3RlZCB0byBoYXZlIGNvbXBsZXggcXVlcnkgdXNh Z2UsIHNvIHRvIGtlZXAgdGhpbmdzIHNpbXBsZSwKKwkJICogdXNlci1kZWZpbmVkIGV4dGVuZGVk IHN0YXRpc3RpY3MgYXJlIG5vdCByZXF1aXJlZCBvciBzdXBwb3J0ZWQgYXQKKwkJICogcHJlc2Vu dC4KKwkJICovCisJCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWwtPnJkX3JlbCkpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklW SUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29u ZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwK KwkJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQg dGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJCS8qIENy ZWF0aW5nIHN0YXRpc3RpY3Mgb24gc3lzdGVtIGNhdGFsb2dzIGlzIG5vdCBhbGxvd2VkICovCiAJ CWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihyZWwpKQogCQkJ ZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggOWFmM2I2MTZiZmEu LmFjMGE1NzM2NzAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjc1MCw2ICsyNzUw LDE4IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBMaXN0ICpzdXBlcnMs IGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJCSBlcnJtc2coImNhbm5vdCBpbmhlcml0IGZyb20g cGFydGl0aW9uIFwiJXNcIiIsCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRp b24pKSkpOwogCisJCS8qCisJCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG1hbmFnZWQgYnkg dGhlIHN5c3RlbSBmb3IgbG9naWNhbAorCQkgKiByZXBsaWNhdGlvbiBhbmQgc2hvdWxkIG5vdCBi ZSB1c2VkIGFzIHBhcmVudCB0YWJsZXMsIGFzCisJCSAqIGluaGVyaXRhbmNlIGNvdWxkIGludGVy ZmVyZSB3aXRoIHRoZSBsb2dnaW5nIGJlaGF2aW9yLgorCQkgKi8KKwkJaWYgKElzQ29uZmxpY3RM b2dUYWJsZU5hbWVzcGFjZShyZWxhdGlvbi0+cmRfcmVsLT5yZWxuYW1lc3BhY2UpKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJ CQkJCSBlcnJtc2coImNhbm5vdCBpbmhlcml0IGZyb20gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNc IiIsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSwKKwkJCQkJIGVy cmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZv ciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJCWlmIChyZWxhdGlvbi0+ cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYKIAkJCXJlbGF0aW9uLT5yZF9y ZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFICYmCiAJCQlyZWxhdGlvbi0+cmRf cmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCkBAIC0zODg3LDYgKzM4 OTksMTkgQEAgcmVuYW1lYXR0X2NoZWNrKE9pZCBteXJlbGlkLCBGb3JtX3BnX2NsYXNzIGNsYXNz Zm9ybSwgYm9vbCByZWN1cnNpbmcpCiAJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJl bGF0aW9uSWQsIG15cmVsaWQsIEdldFVzZXJJZCgpKSkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hF Q0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKGdldF9yZWxfcmVsa2luZChteXJlbGlk KSksCiAJCQkJCSAgIE5hbWVTdHIoY2xhc3Nmb3JtLT5yZWxuYW1lKSk7CisKKwkvKgorCSAqIENv bmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNh dGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgZGly ZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQKKwkgKiBjb25mbGljdCBsb2dnaW5nLgorCSAqLwor CWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhjbGFzc2Zvcm0pKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVy cm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIs CisJCQkJCQlOYW1lU3RyKGNsYXNzZm9ybS0+cmVsbmFtZSkpLAorCQkJCSBlcnJkZXRhaWwoIkNv bmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMg JiYgSXNTeXN0ZW1DbGFzcyhteXJlbGlkLCBjbGFzc2Zvcm0pKQogCQllcmVwb3J0KEVSUk9SLAog CQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCkBAIC02ODg5LDYg KzY5MTQsMTggQEAgQVRTaW1wbGVQZXJtaXNzaW9ucyhBbHRlclRhYmxlVHlwZSBjbWR0eXBlLCBS ZWxhdGlvbiByZWwsIGludCBhbGxvd2VkX3RhcmdldHMpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENI RUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShyZWwtPnJkX3JlbC0+cmVsa2luZCks CiAJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpOwogCisJLyoKKwkgKiBDb25m bGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRp b24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGJlIGFsdGVyZWQgZGlyZWN0 bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLworCWlm IChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWwtPnJkX3JlbCkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJy bXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwK KwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNv bmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMg JiYgSXNTeXN0ZW1SZWxhdGlvbihyZWwpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCkBAIC0xMDE5OCw2ICsxMDIzNSwxOCBA QCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCSBlcnJtc2coInJlZmVyZW5jZWQgcmVsYXRpb24g XCIlc1wiIGlzIG5vdCBhIHRhYmxlIiwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHBr cmVsKSkpKTsKIAorCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5h bGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hv dWxkIG5vdCBiZSByZWZlcmVuY2VkIGJ5IGZvcmVpZ24ga2V5cywgYXMgaXQgY291bGQKKwkgKiBk aXNydXB0IGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNs YXNzKHBrcmVsLT5yZF9yZWwpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5p ZWQ6IFwiJXNcIiBpcyBhIGNvbmZsaWN0IGxvZyB0YWJsZSIsCisJCQkJCQlSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShwa3JlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGlj dHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlv bihwa3JlbCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJ Q0lFTlRfUFJJVklMRUdFKSwKQEAgLTE5ODE4LDYgKzE5ODY3LDE4IEBAIFJhbmdlVmFyQ2FsbGJh Y2tPd25zUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQlhY2xjaGVja19lcnJv cihBQ0xDSEVDS19OT1RfT1dORVIsIGdldF9yZWxraW5kX29ianR5cGUoZ2V0X3JlbF9yZWxraW5k KHJlbElkKSksCiAJCQkJCSAgIHJlbGF0aW9uLT5yZWxuYW1lKTsKIAorCS8qCisJICogQ29uZmxp Y3QgbG9nIHRhYmxlcyBhcmUgdXNlZCBpbnRlcm5hbGx5IGZvciBsb2dpY2FsIHJlcGxpY2F0aW9u IGNvbmZsaWN0CisJICogbG9nZ2luZyBhbmQgc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBkaXJlY3Rs eSwgYXMgaXQgY291bGQgZGlzcnVwdAorCSAqIGNvbmZsaWN0IGxvZ2dpbmcuCisJICovCisJaWYg KElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKChGb3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QodHVwbGUp KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9Q UklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBj b25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJcmVsYXRpb24tPnJlbG5hbWUpLAorCQkJCSBlcnJk ZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3Ig bG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0ZW1U YWJsZU1vZHMgJiYKIAkJSXNTeXN0ZW1DbGFzcyhyZWxJZCwgKEZvcm1fcGdfY2xhc3MpIEdFVFNU UlVDVCh0dXBsZSkpKQogCQllcmVwb3J0KEVSUk9SLApAQCAtMTk4NTMsNiArMTk5MTQsMTggQEAg UmFuZ2VWYXJDYWxsYmFja0ZvckFsdGVyUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQg cmVsaWQsIE9pZCBvbGRyZWxpZCwKIAlpZiAoIW9iamVjdF9vd25lcmNoZWNrKFJlbGF0aW9uUmVs YXRpb25JZCwgcmVsaWQsIEdldFVzZXJJZCgpKSkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tf Tk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKGdldF9yZWxfcmVsa2luZChyZWxpZCkpLCBy di0+cmVsbmFtZSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50 ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5k IHNob3VsZCBub3QgYmUgYWx0ZXJlZCBkaXJlY3RseSwgYXMgaXQgY291bGQgZGlzcnVwdCBjb25m bGljdAorCSAqIGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGNs YXNzZm9ybSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJ Q0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wi IGlzIGEgY29uZmxpY3QgbG9nIHRhYmxlIiwKKwkJCQkJCXJ2LT5yZWxuYW1lKSwKKwkJCQkgZXJy ZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAkvKiBObyBzeXN0ZW0gdGFi bGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkLiAqLwogCWlmICghYWxs b3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgY2xhc3Nmb3JtKSkKIAkJ ZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCBiODdiNGI0MGQwNy4uZGU3 OTU3YTE1ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTMxNCw2ICszMTQsMTggQEAgQ3Jl YXRlVHJpZ2dlckZpcmluZ09uKGNvbnN0IENyZWF0ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFy ICpxdWVyeVN0cmluZywKIAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAogCQkJ CSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkp OwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90 IGhhdmUgdHJpZ2dlcnMsIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5n LgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWwtPnJkX3JlbCkpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdF KSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgY29uZmxpY3Qg bG9nIHRhYmxlIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCSBl cnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBm b3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dTeXN0 ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihyZWwpKQogCQllcmVwb3J0KEVSUk9SLAog CQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCkBAIC0xNDQzLDYg KzE0NTUsMTkgQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVRyaWdnZXIoY29uc3QgUmFuZ2VW YXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAkvKiB5b3UgbXVzdCBvd24gdGhlIHRh YmxlIHRvIHJlbmFtZSBvbmUgb2YgaXRzIHRyaWdnZXJzICovCiAJaWYgKCFvYmplY3Rfb3duZXJj aGVjayhSZWxhdGlvblJlbGF0aW9uSWQsIHJlbGlkLCBHZXRVc2VySWQoKSkpCiAJCWFjbGNoZWNr X2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShnZXRfcmVsX3Jl bGtpbmQocmVsaWQpKSwgcnYtPnJlbG5hbWUpOworCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFi bGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QK KwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGhhdmUgdHJpZ2dlcnMsIGFzIGl0IGNvdWxkIGRp c3J1cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFi bGVDbGFzcyhmb3JtKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lO U1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBc IiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJ CSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxl cyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCWlmICghYWxsb3dT eXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgZm9ybSkpCiAJCWVyZXBvcnQo RVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZURlZmluZS5jIGIvc3JjL2JhY2tl bmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMKaW5kZXggNmEyMjNmYmVhYTQuLmQwMGQ3NjYxM2Ex IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUuYworKysgYi9z cmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUuYwpAQCAtMjYyLDYgKzI2MiwxNyBAQCBE ZWZpbmVRdWVyeVJld3JpdGUoY29uc3QgY2hhciAqcnVsZW5hbWUsCiAJCQkJCQlSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShldmVudF9yZWxhdGlvbikpLAogCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9u b3Rfc3VwcG9ydGVkKGV2ZW50X3JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAKKwkvKgor CSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgaGF2ZSBydWxl cywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0Nv bmZsaWN0TG9nVGFibGVDbGFzcyhldmVudF9yZWxhdGlvbi0+cmRfcmVsKSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJ CSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFi bGUiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoZXZlbnRfcmVsYXRpb24pKSwKKwkJ CQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJs ZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAlpZiAoIWFsbG93 U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtUmVsYXRpb24oZXZlbnRfcmVsYXRpb24pKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVH RSksCkBAIC03NzIsNiArNzgzLDE3IEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JSZW5hbWVSdWxlKGNv bnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCQkJIGVycm1zZygi cmVsYXRpb24gXCIlc1wiIGNhbm5vdCBoYXZlIHJ1bGVzIiwgcnYtPnJlbG5hbWUpLAogCQkJCSBl cnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKGZvcm0tPnJlbGtpbmQpKSk7CiAKKwkvKgor CSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgaGF2ZSBydWxl cywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0Nv bmZsaWN0TG9nVGFibGVDbGFzcyhmb3JtKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Np b24gZGVuaWVkOiBcIiVzXCIgaXMgYSBjb25mbGljdCBsb2cgdGFibGUiLAorCQkJCQkJcnYtPnJl bG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1t YW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwog CWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgZm9ybSkp CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJ VklMRUdFKSwKLS0gCjIuNDkuMAoK --000000000000836a4f0654856cfe Content-Type: application/octet-stream; name="v52-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v52-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqjeukmb2 RnJvbSBmMjJiZDg5ZGE3OGE3MzU1NjE1NGE0OTA0ODVhMWViYzE2YjM1NGViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU2F0LCAzMCBNYXkgMjAyNiAxMzozNTowNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjUy IDMvNl0gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIHBnX2Nv bmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18xNjM5NjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCBy ZW1vdGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7 ImEiOjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3 NSAgICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiAuLi4vcmVwbGljYXRpb24vbG9naWNh bC9hcHBseXBhcmFsbGVsd29ya2VyLmMgfCAgMzcgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvY29uZmxpY3QuYyAgICB8IDY0NyArKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYyAgICB8ICAgMSArCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgMTggKy0KIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAgIDcgKwogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMwX29yaWdpbi5wbCAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzVfY29uZmxpY3RzLnBsICAgICAgfCAgNDcgKy0KIDggZmlsZXMgY2hhbmdlZCwg NzE1IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxlbHdvcmtlci5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKaW5kZXggMDEyZDU1 ZTlkM2QuLmQyNGM1MmQ0M2U2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYwpAQCAtOTg2LDcgKzk4Niw0MiBAQCBQYXJh bGxlbEFwcGx5V29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAogCXNldF9hcHBseV9lcnJvcl9j b250ZXh0X29yaWdpbihvcmlnaW5uYW1lKTsKIAotCUxvZ2ljYWxQYXJhbGxlbEFwcGx5TG9vcCht cWgpOworCVBHX1RSWSgpOworCXsKKwkJTG9naWNhbFBhcmFsbGVsQXBwbHlMb29wKG1xaCk7CisJ fQorCVBHX0NBVENIKCk7CisJeworCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisJCUVycm9y RGF0YSAqZWRhdGE7CisKKwkJLyoKKwkJICogQ29weSB0aGUgRXJyb3JEYXRhIGJlZm9yZSBkb2lu ZyBhbnkgZnVydGhlciB3b3JrLiBUaGUgZXJyb3IgbWF5CisJCSAqIGhhdmUgYmVlbiByYWlzZWQg d2hpbGUgcnVubmluZyB1bmRlciBFcnJvckNvbnRleHQsIHNvIHN3aXRjaCB0bworCQkgKiBhIHNh ZmUgY29udGV4dCAoVG9wTWVtb3J5Q29udGV4dCkgdG8gYXZvaWQgYXNzZXJ0aW9ucyBhbmQgZW5z dXJlCisJCSAqIHRoZSBlcnJvciBkYXRhIHN1cnZpdmVzIHN1YnNlcXVlbnQgY2xlYW51cC4KKwkJ ICovCisJCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wTWVtb3J5Q29udGV4 dCk7CisJCWVkYXRhID0gQ29weUVycm9yRGF0YSgpOworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY29udGV4dCk7CisKKwkJRmx1c2hFcnJvclN0YXRlKCk7CisKKwkJLyoKKwkJICogUmVzZXQg dGhlIG9yaWdpbiBzdGF0ZSB0byBwcmV2ZW50IHRoZSBhZHZhbmNlbWVudCBvZiBvcmlnaW4KKwkJ ICogcHJvZ3Jlc3MgaWYgd2UgZmFpbCB0byBhcHBseS4gT3RoZXJ3aXNlLCB0aGlzIHdpbGwgcmVz dWx0IGluCisJCSAqIHRyYW5zYWN0aW9uIGxvc3MgYXMgdGhhdCB0cmFuc2FjdGlvbiB3b24ndCBi ZSBzZW50IGFnYWluIGJ5IHRoZQorCQkgKiBzZXJ2ZXIuCisJCSAqLworCQlyZXBsb3JpZ2luX3hh Y3RfY2xlYXIodHJ1ZSk7CisKKwkJQWJvcnRPdXRPZkFueVRyYW5zYWN0aW9uKCk7CisJCVByb2Nl c3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpOworCisJCS8qIFJlLXRocm93IHRoZSBvcmlnaW5h bCBlcnJvci4gKi8KKwkJUmVUaHJvd0Vycm9yKGVkYXRhKTsKKwl9CisJUEdfRU5EX1RSWSgpOwog CiAJLyoKIAkgKiBUaGUgcGFyYWxsZWwgYXBwbHkgd29ya2VyIG11c3Qgbm90IGdldCBoZXJlIGJl Y2F1c2UgdGhlIHBhcmFsbGVsIGFwcGx5CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2NvbmZsaWN0LmMKaW5kZXggNGE2NDcyNzdkMWYuLjZiZjNkNmQ1YTQ0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCkBAIC0xNiwxNyArMTYsMjQgQEAKIAog I2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIK KyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIK KyNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNs dWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtl cl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxz L2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9s c3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0aWxz L3BnX2xzbi5oIgogCiAvKgogICogU3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgdGhlIHN1cHBv cnRlZCBjb25mbGljdCBsb2dnaW5nIGRlc3RpbmF0aW9ucy4KQEAgLTQwLDcgKzQ3LDYgQEAgY29u c3QgY2hhciAqY29uc3QgQ29uZmxpY3RMb2dEZXN0TmFtZXNbXSA9IHsKIFN0YXRpY0Fzc2VydERl Y2wobGVuZ3Rob2YoQ29uZmxpY3RMb2dEZXN0TmFtZXMpID09IENPTkZMSUNUX0xPR19ERVNUX0FM TCArIDEsCiAJCQkJICJDb25mbGljdExvZ0Rlc3ROYW1lcyBsZW5ndGggbWlzbWF0Y2giKTsKIAot CiAvKiBTdHJ1Y3R1cmUgdG8gaG9sZCBtZXRhZGF0YSBmb3Igb25lIGNvbHVtbiBvZiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlICovCiB0eXBlZGVmIHN0cnVjdCBDb25mbGljdExvZ0NvbHVtbkRlZgog ewpAQCAtNzIsNiArNzgsMTggQEAgc3RhdGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVmIENv bmZsaWN0TG9nU2NoZW1hW10gPSB7CiAKICNkZWZpbmUgTlVNX0NPTkZMSUNUX0FUVFJTIGxlbmd0 aG9mKENvbmZsaWN0TG9nU2NoZW1hKQogCisvKiBTY2hlbWEgZm9yIHRoZSBlbGVtZW50cyB3aXRo aW4gdGhlICdsb2NhbF9jb25mbGljdHMnIEpTT04gYXJyYXkgKi8KK3N0YXRpYyBjb25zdCBDb25m bGljdExvZ0NvbHVtbkRlZiBMb2NhbENvbmZsaWN0U2NoZW1hW10gPQoreworCXsgLmF0dG5hbWUg PSAieGlkIiwgICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0sCisJeyAuYXR0bmFtZSA9ICJjb21t aXRfdHMiLCAuYXR0dHlwaWQgPSBUSU1FU1RBTVBUWk9JRCB9LAorCXsgLmF0dG5hbWUgPSAib3Jp Z2luIiwgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAia2V5IiwgICAg ICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAidHVwbGUiLCAgICAgLmF0 dHR5cGlkID0gSlNPTk9JRCB9Cit9OworCisjZGVmaW5lIE5VTV9MT0NBTF9DT05GTElDVF9BVFRS UyBsZW5ndGhvZihMb2NhbENvbmZsaWN0U2NoZW1hKQorCiBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgQ29uZmxpY3RUeXBlTmFtZXNbXSA9IHsKIAlbQ1RfSU5TRVJUX0VYSVNUU10gPSAiaW5zZXJ0 X2V4aXN0cyIsCiAJW0NUX1VQREFURV9PUklHSU5fRElGRkVSU10gPSAidXBkYXRlX29yaWdpbl9k aWZmZXJzIiwKQEAgLTk5LDggKzExNywyNyBAQCBzdGF0aWMgdm9pZCBnZXRfdHVwbGVfZGVzYyhF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCSAgIFR1cGxlVGFi bGVTbG90ICpyZW1vdGVzbG90LCBjaGFyICoqcmVtb3RlX2Rlc2MsCiAJCQkJCQkgICBUdXBsZVRh YmxlU2xvdCAqc2VhcmNoc2xvdCwgY2hhciAqKnNlYXJjaF9kZXNjLAogCQkJCQkJICAgT2lkIGlu ZGV4b2lkKTsKK3N0YXRpYyB2b2lkIGJ1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoRVN0YXRl ICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAq c2xvdCwKKwkJCQkJCQkJCQkgUmVsYXRpb24gaW5kZXhEZXNjLCBEYXR1bSAqdmFsdWVzLAorCQkJ CQkJCQkJCSBib29sICppc251bGwpOwogc3RhdGljIGNoYXIgKmJ1aWxkX2luZGV4X3ZhbHVlX2Rl c2MoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAogCQkJCQkJCQkJVHVwbGVUYWJs ZVNsb3QgKnNsb3QsIE9pZCBpbmRleG9pZCk7CitzdGF0aWMgRGF0dW0gdHVwbGVfdGFibGVfc2xv dF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0YXRpYyBEYXR1bSB0dXBs ZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oRVN0YXRlICplc3RhdGUsCisJCQkJCQkJCQkJ CSAgIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkJCQkgICBPaWQgcmVwbGljYV9pbmRleCwK KwkJCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNsb3QpOworc3RhdGljIFR1cGxlRGVzYyBi dWlsZF9jb25mbGljdF90dXBsZWRlc2Modm9pZCk7CitzdGF0aWMgRGF0dW0gYnVpbGRfbG9jYWxf Y29uZmxpY3RzX2pzb25fYXJyYXkoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJ CQkJCQkJICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJICBMaXN0ICpj b25mbGljdHR1cGxlcyk7CitzdGF0aWMgdm9pZCBwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZShF U3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkJICAgUmVsYXRpb24gY29uZmxp Y3Rsb2dyZWwsCisJCQkJCQkJCQkgICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJCQkJ CQkJCSAgIFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAorCQkJCQkJCQkJICAgTGlzdCAqY29u ZmxpY3R0dXBsZXMsCisJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCk7CiAK IC8qCiAgKiBCdWlsZHMgdGhlIFR1cGxlRGVzYyBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4K QEAgLTI4MSwzMCArMzE4LDE3MCBAQCBSZXBvcnRBcHBseUNvbmZsaWN0KEVTdGF0ZSAqZXN0YXRl LCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLCBpbnQgZWxldmVsLAogCQkJCQlDb25mbGljdFR5cGUg dHlwZSwgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCVR1cGxlVGFibGVTbG90ICpy ZW1vdGVzbG90LCBMaXN0ICpjb25mbGljdHR1cGxlcykKIHsKLQlSZWxhdGlvbglsb2NhbHJlbCA9 IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKLQlTdHJpbmdJbmZvRGF0YSBlcnJfZGV0YWlsOwor CVJlbGF0aW9uCQlsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlDb25mbGlj dExvZ0Rlc3QJZGVzdDsKKwlSZWxhdGlvbgkJY29uZmxpY3Rsb2dyZWw7CisJYm9vbAkJCWxvZ19k ZXN0X3RhYmxlOworCWJvb2wgCQkJbG9nX2Rlc3RfbG9nZmlsZTsKIAotCWluaXRTdHJpbmdJbmZv KCZlcnJfZGV0YWlsKTsKKwlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9jb25mbGljdChNeVN1 YnNjcmlwdGlvbi0+b2lkLCB0eXBlKTsKIAotCS8qIEZvcm0gZXJyZGV0YWlsIG1lc3NhZ2UgYnkg Y29tYmluaW5nIGNvbmZsaWN0aW5nIHR1cGxlcyBpbmZvcm1hdGlvbi4gKi8KLQlmb3JlYWNoX3B0 cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxpY3R0dXBsZXMpCi0JCWVy cmRldGFpbF9hcHBseV9jb25mbGljdChlc3RhdGUsIHJlbGluZm8sIHR5cGUsIHNlYXJjaHNsb3Qs Ci0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT5zbG90LCByZW1vdGVzbG90LAotCQkJCQkJCQkgY29u ZmxpY3R0dXBsZS0+aW5kZXhvaWQsCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT54bWluLAotCQkJ CQkJCQkgY29uZmxpY3R0dXBsZS0+b3JpZ2luLAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+dHMs Ci0JCQkJCQkJCSAmZXJyX2RldGFpbCk7CisJLyoKKwkgKiBHZXQgdGhlIGNvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbi4gQWxzbywgKGlmIHRoZXJlIGlzIG9uZSkgcmV0dXJuIHRoZQorCSAqIENMVCBy ZWxhdGlvbiBhbHJlYWR5IG9wZW5lZCBhbmQgcmVhZHkgZm9yIGluc2VydGlvbi4KKwkgKi8KKwlj b25mbGljdGxvZ3JlbCA9IEdldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKCZkZXN0KTsKIAotCXBn c3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2NvbmZsaWN0KE15U3Vic2NyaXB0aW9uLT5vaWQsIHR5 cGUpOworCWxvZ19kZXN0X3RhYmxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRShkZXN0KTsK Kwlsb2dfZGVzdF9sb2dmaWxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19MT0coZGVzdCk7CisKKwkv KiBJbnNlcnQgdG8gdGFibGUgaWYgcmVxdWVzdGVkLiAqLworCWlmIChsb2dfZGVzdF90YWJsZSkK Kwl7CisJCUFzc2VydChjb25mbGljdGxvZ3JlbCAhPSBOVUxMKTsKKworCQkvKgorCQkgKiBQcmVw YXJlIHRoZSBjb25mbGljdCBsb2cgdHVwbGUuIElmIHRoZSBlcnJvciBsZXZlbCBpcyBiZWxvdyBF UlJPUiwKKwkJICogaW5zZXJ0IGl0IGltbWVkaWF0ZWx5LiBPdGhlcndpc2UsIGRlZmVyIHRoZSBp bnNlcnRpb24gdG8gYSBuZXcKKwkJICogdHJhbnNhY3Rpb24gYWZ0ZXIgdGhlIGN1cnJlbnQgb25l IGFib3J0cywgZW5zdXJpbmcgdGhlIGluc2VydGlvbiBvZgorCQkgKiB0aGUgbG9nIHR1cGxlIGlz IG5vdCByb2xsZWQgYmFjay4KKwkJICovCisJCXByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKGVz dGF0ZSwKKwkJCQkJCQkJICAgcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjLAorCQkJCQkJCQkgICBj b25mbGljdGxvZ3JlbCwKKwkJCQkJCQkJICAgdHlwZSwKKwkJCQkJCQkJICAgc2VhcmNoc2xvdCwK KwkJCQkJCQkJICAgY29uZmxpY3R0dXBsZXMsCisJCQkJCQkJCSAgIHJlbW90ZXNsb3QpOworCQlp ZiAoZWxldmVsIDwgRVJST1IpCisJCQlJbnNlcnRDb25mbGljdExvZ1R1cGxlKGNvbmZsaWN0bG9n cmVsKTsKKworCQlpZiAoIWxvZ19kZXN0X2xvZ2ZpbGUpCisJCXsKKwkJCS8qCisJCQkgKiBOb3Qg bG9nZ2luZyBjb25mbGljdCBkZXRhaWxzIHRvIHRoZSBzZXJ2ZXIgbG9nOyBSZXBvcnQgdGhlIGVy cm9yCisJCQkgKiBtc2cgYnV0IG9taXQgcmF3IHR1cGxlIGRhdGEgZnJvbSBzZXJ2ZXIgbG9ncyBz aW5jZSBpdCdzIGFscmVhZHkKKwkJCSAqIGNhcHR1cmVkIGluIHRoZSBjb25mbGljdCBsb2cgdGFi bGUuCisJCQkgKi8KKwkJCWVyZXBvcnQoZWxldmVsLAorCQkJCQllcnJjb2RlX2FwcGx5X2NvbmZs aWN0KHR5cGUpLAorCQkJCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwi JXNcIjogY29uZmxpY3Q9JXMiLAorCQkJCQkJUmVsYXRpb25HZXRRdWFsaWZpZWRSZWxhdGlvbk5h bWUobG9jYWxyZWwpLAorCQkJCQkJQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCQllcnJk ZXRhaWwoIkNvbmZsaWN0IGRldGFpbHMgYXJlIGxvZ2dlZCB0byB0aGUgY29uZmxpY3QgbG9nIHRh YmxlOiAlcyIsCisJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShjb25mbGljdGxvZ3Jl bCkpKTsKKwkJfQorCisJCXRhYmxlX2Nsb3NlKGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVM b2NrKTsKKwl9CisKKwkvKiBMb2cgaW50byB0aGUgc2VydmVyIGxvZyBpZiByZXF1ZXN0ZWQuICov CisJaWYgKGxvZ19kZXN0X2xvZ2ZpbGUpCisJeworCQlTdHJpbmdJbmZvRGF0YQllcnJfZGV0YWls OworCisJCWluaXRTdHJpbmdJbmZvKCZlcnJfZGV0YWlsKTsKKworCQkvKiBGb3JtIGVycmRldGFp bCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBsZXMgaW5mb3JtYXRpb24uICov CisJCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGlj dHR1cGxlcykKKwkJCWVycmRldGFpbF9hcHBseV9jb25mbGljdChlc3RhdGUsIHJlbGluZm8sIHR5 cGUsIHNlYXJjaHNsb3QsCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT5zbG90LCByZW1vdGVzbG90 LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+aW5kZXhvaWQsCisJCQkJCQkJCQljb25mbGljdHR1 cGxlLT54bWluLAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+b3JpZ2luLAorCQkJCQkJCQkJY29u ZmxpY3R0dXBsZS0+dHMsCisJCQkJCQkJCQkmZXJyX2RldGFpbCk7CisKKwkJLyogU3RhbmRhcmQg cmVwb3J0aW5nIHdpdGggZnVsbCBpbnRlcm5hbCBkZXRhaWxzLiAqLworCQllcmVwb3J0KGVsZXZl bCwKKwkJCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAorCQkJCWVycm1zZygiY29uZmxp Y3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gXCIlc1wiOiBjb25mbGljdD0lcyIsCisJCQkJCSAgIFJl bGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKGxvY2FscmVsKSwKKwkJCQkJICAgQ29uZmxp Y3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFpbF9pbnRlcm5hbCgiJXMiLCBlcnJfZGV0 YWlsLmRhdGEpKTsKKwl9Cit9CisKKy8qCisgKiBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVw bGUKKyAqICAgICAgSW5zZXJ0IGFueSBkZWZlcnJlZCBjb25mbGljdCBsb2cgdHVwbGUgaW4gYSBz ZXBhcmF0ZSB0cmFuc2FjdGlvbi4KKyAqCisgKiBGb3IgY29uZmxpY3RzIHJhaXNlZCBhdCBFUlJP UiBsZXZlbCwgdGhlIGNvbmZsaWN0IGxvZyB0dXBsZSBjYW5ub3QgYmUKKyAqIGluc2VydGVkIGlt bWVkaWF0ZWx5IGJlY2F1c2UgdGhlIHN1cnJvdW5kaW5nIHRyYW5zYWN0aW9uIHdpbGwgYWJvcnQu CisgKiBUbyBlbnN1cmUgdGhhdCBjb25mbGljdCBpbmZvcm1hdGlvbiBpcyBub3QgbG9zdCwgc3Vj aCB0dXBsZXMgYXJlIHByZXBhcmVkCisgKiBkdXJpbmcgZXJyb3IgcHJvY2Vzc2luZyAoc2VlIHBy ZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKCkpIGJ1dCB0aGVpcgorICogaW5zZXJ0aW9uIGlzIGRl ZmVycmVkLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGNvbXBsZXRp bmcgdGhhdCBkZWZlcnJlZCBpbnNlcnRpb24gYWZ0ZXIKKyAqIHRoZSBmYWlsaW5nIHRyYW5zYWN0 aW9uIGhhcyBiZWVuIGFib3J0ZWQgYW5kIHRoZSBzeXN0ZW0gaGFzIHJldHVybmVkIHRvIGFuCisg KiBpZGxlIHN0YXRlLiAgSXQgZXhlY3V0ZXMgdGhlIGluc2VydGlvbiBpbiBhIG5ldywgaW5kZXBl bmRlbnQgdHJhbnNhY3Rpb24sCisgKiBlbnN1cmluZyB0aGF0IHRoZSBjb25mbGljdCBsb2cgZW50 cnkgaXMgZHVyYWJsZSBhbmQgbm90IHJvbGxlZCBiYWNrCisgKiB0b2dldGhlciB3aXRoIHRoZSBm YWlsZWQgYXBwbHkgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1Byb2Nlc3NQZW5kaW5nQ29uZmxp Y3RMb2dUdXBsZSh2b2lkKQoreworCVJlbGF0aW9uCWNvbmZsaWN0bG9ncmVsOworCUNvbmZsaWN0 TG9nRGVzdCBkZXN0OworCisJLyogTm90aGluZyB0byBkbyAqLworCWlmIChNeUxvZ2ljYWxSZXBX b3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlQR19UUlko KTsKKwl7CisJCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJCVB1c2hBY3RpdmVTbmFwc2hv dChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOworCisJCS8qIE9wZW4gY29uZmxpY3QgbG9nIHRh YmxlIGFuZCBpbnNlcnQgdGhlIHR1cGxlICovCisJCWNvbmZsaWN0bG9ncmVsID0gR2V0Q29uZmxp Y3RMb2dEZXN0QW5kVGFibGUoJmRlc3QpOworCQlBc3NlcnQoY29uZmxpY3Rsb2dyZWwpOworCisJ CUluc2VydENvbmZsaWN0TG9nVHVwbGUoY29uZmxpY3Rsb2dyZWwpOworCisJCXRhYmxlX2Nsb3Nl KGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlQb3BBY3RpdmVTbmFwc2hv dCgpOworCQlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwl9CisJUEdfQ0FUQ0goKTsKKwl7 CisJCUVycm9yRGF0YSAgKmVkYXRhOworCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKworCQkvKiBT YXZlIGVycm9yIGluZm8gaW4gb3VyIG1lbW9yeSBjb250ZXh0ICovCisJCW9sZGN0eCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwkJZWRhdGEgPSBDb3B5RXJyb3JE YXRhKCk7CisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjdHgpOworCisJCS8qIENsZWFyIHRo ZSBlcnJvciBzdGF0ZSBzbyB3ZSBjYW4gY29udGludWUgKi8KKwkJRmx1c2hFcnJvclN0YXRlKCk7 CiAKLQllcmVwb3J0KGVsZXZlbCwKLQkJCWVycmNvZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCi0J CQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxp Y3Q9JXMiLAotCQkJCSAgIGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShs b2NhbHJlbCkpLAotCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxvY2FscmVsKSwKLQkJ CQkgICBDb25mbGljdFR5cGVOYW1lc1t0eXBlXSksCi0JCQllcnJkZXRhaWxfaW50ZXJuYWwoIiVz IiwgZXJyX2RldGFpbC5kYXRhKSk7CisJCS8qIEFib3J0IHRoZSB0cmFuc2FjdGlvbiB3ZSBzdGFy dGVkIGFib3ZlICovCisJCUFib3J0T3V0T2ZBbnlUcmFuc2FjdGlvbigpOworCisJCS8qCisJCSAq IFJlcG9ydCB0aGUgZXJyb3IgYXMgYSB3YXJuaW5nLiBXZSB1c2UgV0FSTklORyBiZWNhdXNlIHdl IGRvbid0IHdhbnQKKwkJICogdGhpcyB0byBiZSBhIGZhdGFsIGVycm9yIGZvciB0aGUgd29ya2Vy LCBhbmQgd2Ugd2FudCB0byBhbGxvdyB0aGUKKwkJICogY2FsbGVyJ3Mgb3JpZ2luYWwgZXJyb3Ig dG8gcmVtYWluIHByaW1hcnkuCisJCSAqLworCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycm1z ZygiY291bGQgbm90IGxvZyBjb25mbGljdCB0byB0YWJsZSBmb3Igc3Vic2NyaXB0aW9uIFwiJXNc IjogJXMiLAorCQkJCQkJTXlTdWJzY3JpcHRpb24tPm5hbWUsIGVkYXRhLT5tZXNzYWdlKSkpOwor CisJCUZyZWVFcnJvckRhdGEoZWRhdGEpOworCisJCS8qCisJCSAqIEZyZWUgdGhlIGNvbmZsaWN0 IGxvZyB0dXBsZSBhbmQgc2V0IGl0IHRvIE5VTEwuIFRoaXMgZW5zdXJlcyB3ZQorCQkgKiBkb24n dCB0cnkgdG8gaW5zZXJ0IHRoZSBzYW1lIHByb2JsZW1hdGljIHR1cGxlIGFnYWluLgorCQkgKi8K KwkJaWYgKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlICE9IE5VTEwpCisJ CXsKKwkJCWhlYXBfZnJlZXR1cGxlKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1 cGxlKTsKKwkJCU15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0gTlVMTDsK KwkJfQorCX0KKwlQR19FTkRfVFJZKCk7CiB9CiAKIC8qCkBAIC0zMzgsNiArNTE1LDU2IEBAIElu aXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbykKIAlyZWxJbmZvLT5yaV9v bkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSB1bmlxdWVJbmRleGVzOwogfQogCisvKgorICogR2V0 Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUKKyAqCisgKiBGZXRjaGVzIGNvbmZsaWN0IGxvZ2dpbmcg bWV0YWRhdGEgZnJvbSB0aGUgY2FjaGVkIE15U3Vic2NyaXB0aW9uIHBvaW50ZXIuCisgKiBTZXRz IHRoZSBkZXN0aW5hdGlvbiBlbnVtIGluICpsb2dfZGVzdCBhbmQsIGlmIGFwcGxpY2FibGUsIG9w ZW5zIGFuZAorICogcmV0dXJucyB0aGUgcmVsYXRpb24gaGFuZGxlIGZvciB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlLgorICovCitSZWxhdGlvbgorR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUoQ29u ZmxpY3RMb2dEZXN0ICpsb2dfZGVzdCkKK3sKKwlPaWQJCQljb25mbGljdGxvZ3JlbGlkOworCisJ LyoKKwkgKiBDb252ZXJ0IHRoZSB0ZXh0IGxvZyBkZXN0aW5hdGlvbiB0byB0aGUgaW50ZXJuYWwg ZW51bS4gIE15U3Vic2NyaXB0aW9uCisJICogYWxyZWFkeSBjb250YWlucyB0aGUgZGF0YSBmcm9t IHBnX3N1YnNjcmlwdGlvbi4KKwkgKi8KKwkqbG9nX2Rlc3QgPSBHZXRDb25mbGljdExvZ0Rlc3Qo TXlTdWJzY3JpcHRpb24tPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkvKiBRdWljayBleGl0IGlmIGEg Y29uZmxpY3QgbG9nIHRhYmxlIHdhcyBub3QgcmVxdWVzdGVkLiAqLworCWlmICghQ09ORkxJQ1RT X0xPR0dFRF9UT19UQUJMRSgqbG9nX2Rlc3QpKQorCQlyZXR1cm4gTlVMTDsKKworCWNvbmZsaWN0 bG9ncmVsaWQgPSBNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dyZWxpZDsKKworCUFzc2VydChP aWRJc1ZhbGlkKGNvbmZsaWN0bG9ncmVsaWQpKTsKKworCXJldHVybiB0YWJsZV9vcGVuKGNvbmZs aWN0bG9ncmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQorCisvKgorICogSW5zZXJ0Q29uZmxp Y3RMb2dUdXBsZQorICoKKyAqIEluc2VydCBjb25mbGljdCBsb2cgdHVwbGUgaW50byB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlLiBJdCB1c2VzCisgKiBIRUFQX0lOU0VSVF9OT19MT0dJQ0FMIHRvIGV4 cGxpY2l0bHkgYmxvY2sgbG9naWNhbCBkZWNvZGluZyBvZiB0aGUgdHVwbGUKKyAqIGluc2VydGVk IGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLwordm9pZAorSW5zZXJ0Q29uZmxpY3RM b2dUdXBsZShSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCkKK3sKKwkvKiBBIHZhbGlkIHR1cGxlIG11 c3QgYmUgcHJlcGFyZWQgYW5kIHN0b3JlZCBpbiBNeUxvZ2ljYWxSZXBXb3JrZXIuICovCisJQXNz ZXJ0KE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlICE9IE5VTEwpOworCisJ aGVhcF9pbnNlcnQoY29uZmxpY3Rsb2dyZWwsIE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3Rf bG9nX3R1cGxlLAorCQkJCUdldEN1cnJlbnRDb21tYW5kSWQodHJ1ZSksIEhFQVBfSU5TRVJUX05P X0xPR0lDQUwsIE5VTEwpOworCisJLyogRnJlZSBjb25mbGljdCBsb2cgdHVwbGUuICovCisJaGVh cF9mcmVldHVwbGUoTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUpOworCU15 TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0gTlVMTDsKK30KKwogLyoKICAq IEFkZCBTUUxTVEFURSBlcnJvciBjb2RlIHRvIHRoZSBjdXJyZW50IGNvbmZsaWN0IHJlcG9ydC4K ICAqLwpAQCAtNzcxLDYgKzk5OCw0MCBAQCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwg UmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgQ29uZmxpY3RUeXBlIHR5cGUsCiAJfQogfQogCisvKgor ICogSGVscGVyIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlICJyYXciIGluZGV4IGtleSBEYXR1bXMg YW5kIHRoZWlyIG51bGwgZmxhZ3MKKyAqIGZyb20gYSBUdXBsZVRhYmxlU2xvdCwgZ2l2ZW4gYW4g YWxyZWFkeSBvcGVuIGluZGV4IGRlc2NyaXB0b3IuCisgKiBUaGlzIGlzIHRoZSByZXVzYWJsZSBj b3JlIGxvZ2ljLgorICovCitzdGF0aWMgdm9pZAorYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xv dChFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gbG9jYWxyZWwsCisJCQkJCQkJIFR1cGxlVGFibGVT bG90ICpzbG90LAorCQkJCQkJCSBSZWxhdGlvbiBpbmRleERlc2MsIERhdHVtICp2YWx1ZXMsCisJ CQkJCQkJIGJvb2wgKmlzbnVsbCkKK3sKKwlUdXBsZVRhYmxlU2xvdCAqdGFibGVzbG90ID0gc2xv dDsKKworCS8qCisJICogSWYgdGhlIHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50 byBhIGhlYXAgdHVwbGUgc2xvdCBhcworCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0 aCBoZWFwIHR1cGxlIHNsb3RzLgorCSAqLworCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwl7 CisJCS8qIFNsb3QgaXMgY3JlYXRlZCB3aXRoaW4gdGhlIEVTdGF0ZSdzIHR1cGxlIHRhYmxlICov CisJCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5lc190 dXBsZVRhYmxlKTsKKwkJdGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xvdCk7 CisJfQorCisJLyoKKwkgKiBJbml0aWFsaXplIGVjeHRfc2NhbnR1cGxlIGZvciBwb3RlbnRpYWwg dXNlIGluIEZvcm1JbmRleERhdHVtCisJICovCisJR2V0UGVyVHVwbGVFeHByQ29udGV4dChlc3Rh dGUpLT5lY3h0X3NjYW50dXBsZSA9IHRhYmxlc2xvdDsKKworCS8qIEZvcm0gdGhlIGluZGV4IGRh dHVtcyAqLworCUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJbmZvKGluZGV4RGVzYyksIHRhYmxl c2xvdCwgZXN0YXRlLCB2YWx1ZXMsCisJCQkJICAgaXNudWxsKTsKK30KKwogLyoKICAqIEhlbHBl ciBmdW5jdGlvbnMgdG8gY29uc3RydWN0IGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGNvbnRlbnRz IG9mIGFuIGluZGV4CiAgKiBlbnRyeS4gU2VlIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIGZv ciBkZXRhaWxzLgpAQCAtNzg2LDQxICsxMDQ3LDMzOSBAQCBidWlsZF9pbmRleF92YWx1ZV9kZXNj KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwgVHVwbGVUYWJsZVNsb3QgKnNsb3Qs CiAJUmVsYXRpb24JaW5kZXhEZXNjOwogCURhdHVtCQl2YWx1ZXNbSU5ERVhfTUFYX0tFWVNdOwog CWJvb2wJCWlzbnVsbFtJTkRFWF9NQVhfS0VZU107Ci0JVHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xv dCA9IHNsb3Q7CiAKLQlpZiAoIXRhYmxlc2xvdCkKKwlpZiAoIXNsb3QpCiAJCXJldHVybiBOVUxM OwogCiAJQXNzZXJ0KENoZWNrUmVsYXRpb25PaWRMb2NrZWRCeU1lKGluZGV4b2lkLCBSb3dFeGNs dXNpdmVMb2NrLCB0cnVlKSk7CiAKIAlpbmRleERlc2MgPSBpbmRleF9vcGVuKGluZGV4b2lkLCBO b0xvY2spOwogCi0JLyoKLQkgKiBJZiB0aGUgc2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBp dCBpbnRvIGEgaGVhcCB0dXBsZSBzbG90IGFzCi0JICogRm9ybUluZGV4RGF0dW0gb25seSB3b3Jr cyB3aXRoIGhlYXAgdHVwbGUgc2xvdHMuCi0JICovCi0JaWYgKFRUU19JU19WSVJUVUFMKHNsb3Qp KQorCWJ1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoZXN0YXRlLCBsb2NhbHJlbCwgc2xvdCwg aW5kZXhEZXNjLCB2YWx1ZXMsCisJCQkJCQkJCSBpc251bGwpOworCisJaW5kZXhfdmFsdWUgPSBC dWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbihpbmRleERlc2MsIHZhbHVlcywgaXNudWxsKTsKKwor CWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKworCXJldHVybiBpbmRleF92YWx1ZTsK K30KKworLyoKKyAqIHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bQorICoKKyAqIEhlbHBl ciBmdW5jdGlvbiB0byBjb252ZXJ0IGEgVHVwbGVUYWJsZVNsb3QgdG8gSlNPTi4KKyAqLworc3Rh dGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0oVHVwbGVUYWJsZVNsb3Qg KnNsb3QpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCURhdHVtCQlkYXR1bTsKKwlEYXR1bQkJanNv bjsKKworCUFzc2VydChzbG90ICE9IE5VTEwpOworCisJdHVwbGUgPSBFeGVjQ29weVNsb3RIZWFw VHVwbGUoc2xvdCk7CisJZGF0dW0gPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0odHVwbGUsIHNs b3QtPnR0c190dXBsZURlc2NyaXB0b3IpOworCisJanNvbiA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEo cm93X3RvX2pzb24sIGRhdHVtKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisKKwlyZXR1cm4g anNvbjsKK30KKworLyoKKyAqIHR1cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbgorICoK KyAqIEZldGNoIHJlcGxpY2EgaWRlbnRpdHkga2V5IGZyb20gdGhlIHR1cGxlIHRhYmxlIHNsb3Qg YW5kIGNvbnZlcnQgaW50byBhCisgKiBKU09OIGRhdHVtLgorICovCitzdGF0aWMgRGF0dW0KK3R1 cGxlX3RhYmxlX3Nsb3RfdG9faW5kZXh0dXBfanNvbihFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24g bG9jYWxyZWwsCisJCQkJCQkJCSAgT2lkIGluZGV4aWQsIFR1cGxlVGFibGVTbG90ICpzbG90KQor eworCVJlbGF0aW9uCWluZGV4RGVzYzsKKwlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsK Kwlib29sCQlpc251bGxbSU5ERVhfTUFYX0tFWVNdOworCUhlYXBUdXBsZQl0dXBsZTsKKwlUdXBs ZURlc2MJdHVwZGVzYzsKKwlEYXR1bQkJZGF0dW07CisKKwlBc3NlcnQoc2xvdCAhPSBOVUxMKTsK KworCUFzc2VydChDaGVja1JlbGF0aW9uT2lkTG9ja2VkQnlNZShpbmRleGlkLCBSb3dFeGNsdXNp dmVMb2NrLCB0cnVlKSk7CisKKwlpbmRleERlc2MgPSBpbmRleF9vcGVuKGluZGV4aWQsIE5vTG9j ayk7CisKKwlidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNs b3QsIGluZGV4RGVzYywgdmFsdWVzLAorCQkJCQkJCQkgaXNudWxsKTsKKwl0dXBkZXNjID0gQ3Jl YXRlVHVwbGVEZXNjQ29weShSZWxhdGlvbkdldERlc2NyKGluZGV4RGVzYykpOworCisJLyogQmxl c3MgdGhlIHR1cGRlc2Mgc28gaXQgY2FuIGJlIGxvb2tlZCB1cCBieSByb3dfdG9fanNvbi4gKi8K KwlCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsKKworCS8qIEZvcm0gdGhlIHJlcGxpY2EgaWRlbnRp dHkgdHVwbGUuICovCisJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBp c251bGwpOworCWRhdHVtID0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCB0dXBkZXNj KTsKKworCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKKwlGcmVlVHVwbGVEZXNjKHR1cGRlc2MpOwor CWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKworCS8qIENvbnZlcnQgdG8gYSBKU09O IGRhdHVtLiAqLworCXJldHVybiBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1 bSk7Cit9CisKKy8qCisgKiBidWlsZF9jb25mbGljdF90dXBsZWRlc2MKKyAqCisgKiBCdWlsZCBh bmQgYmxlc3MgYSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGJh c2VkIG9uIHRoZQorICogcHJlZGVmaW5lZCBMb2NhbENvbmZsaWN0U2NoZW1hLgorICovCitzdGF0 aWMgVHVwbGVEZXNjCitidWlsZF9jb25mbGljdF90dXBsZWRlc2Modm9pZCkKK3sKKwlzdGF0aWMg VHVwbGVEZXNjIGNhY2hlZF90dXBkZXNjID0gTlVMTDsKKworCWlmIChjYWNoZWRfdHVwZGVzYyA9 PSBOVUxMKQogCXsKLQkJdGFibGVzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUobG9jYWxyZWwsICZl c3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCQl0YWJsZXNsb3QgPSBFeGVjQ29weVNsb3QodGFibGVz bG90LCBzbG90KTsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJb2xkY3h0ID0gTWVtb3J5 Q29udGV4dFN3aXRjaFRvKENhY2hlTWVtb3J5Q29udGV4dCk7CisKKwkJY2FjaGVkX3R1cGRlc2Mg PSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhOVU1fTE9DQUxfQ09ORkxJQ1RfQVRUUlMpOworCisJ CWZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTOyBpKyspCisJCQlU dXBsZURlc2NJbml0RW50cnkoY2FjaGVkX3R1cGRlc2MsCisJCQkJCQkJICAgKEF0dHJOdW1iZXIp IChpICsgMSksCisJCQkJCQkJICAgTG9jYWxDb25mbGljdFNjaGVtYVtpXS5hdHRuYW1lLAorCQkJ CQkJCSAgIExvY2FsQ29uZmxpY3RTY2hlbWFbaV0uYXR0dHlwaWQsCisJCQkJCQkJICAgLTEsIDAp OworCisJCVR1cGxlRGVzY0ZpbmFsaXplKGNhY2hlZF90dXBkZXNjKTsKKworCQkvKgorCQkgKiBC bGVzcyBvbmNlIHNvIGl0IGNhbiBiZSB1c2VkIGFzIGEgUkVDT1JEIHR5cGUgKGUuZy4gZm9yCisJ CSAqIHJvd190b19qc29uIG9yIG90aGVyIHJlY29yZC1iYXNlZCBvcGVyYXRpb25zKS4KKwkJICov CisJCUJsZXNzVHVwbGVEZXNjKGNhY2hlZF90dXBkZXNjKTsKKworCQlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY3h0KTsKIAl9CiAKLQkvKgotCSAqIEluaXRpYWxpemUgZWN4dF9zY2FudHVwbGUg Zm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0dW0gd2hlbgotCSAqIGluZGV4IGV4cHJl c3Npb25zIGFyZSBwcmVzZW50LgotCSAqLwotCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRl KS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNsb3Q7CisJcmV0dXJuIGNhY2hlZF90dXBkZXNjOwor fQogCi0JLyoKLQkgKiBUaGUgdmFsdWVzL251bGxzIGFycmF5cyBwYXNzZWQgdG8gQnVpbGRJbmRl eFZhbHVlRGVzY3JpcHRpb24gc2hvdWxkIGJlCi0JICogdGhlIHJlc3VsdHMgb2YgRm9ybUluZGV4 RGF0dW0sIHdoaWNoIGFyZSB0aGUgInJhdyIgaW5wdXQgdG8gdGhlIGluZGV4Ci0JICogQU0uCi0J ICovCi0JRm9ybUluZGV4RGF0dW0oQnVpbGRJbmRleEluZm8oaW5kZXhEZXNjKSwgdGFibGVzbG90 LCBlc3RhdGUsIHZhbHVlcywgaXNudWxsKTsKKy8qCisgKiBCdWlsZHMgdGhlIGxvY2FsIGNvbmZs aWN0cyBKU09OIGFycmF5IGNvbHVtbiBmcm9tIHRoZSBsaXN0IG9mCisgKiBDb25mbGljdFR1cGxl SW5mbyBvYmplY3RzLgorICoKKyAqIEV4YW1wbGUgb3V0cHV0IHN0cnVjdHVyZToKKyAqIFsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIi4uLiIsICJvcmlnaW4iOiAiLi4uIiwgInR1cGxl Ijogey4uLn0gfSwgLi4uIF0KKyAqLworc3RhdGljIERhdHVtCitidWlsZF9sb2NhbF9jb25mbGlj dHNfanNvbl9hcnJheShFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkgQ29u ZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCSBMaXN0ICpjb25mbGljdHR1cGxlcykK K3sKKwlMaXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpqc29uX2RhdHVtcyA9IE5JTDsKKwlEYXR1 bQkgICAqanNvbl9kYXR1bV9hcnJheTsKKwlEYXR1bQkJanNvbl9hcnJheV9kYXR1bTsKKwlpbnQJ CQludW1fY29uZmxpY3RzOworCWludAkJCWk7CisJaW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBi eXZhbDsKKwljaGFyCQl0eXBhbGlnbjsKKwlUdXBsZURlc2MJdHVwZGVzYzsKIAotCWluZGV4X3Zh bHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVs bCk7CisJLyogQnVpbGQgbG9jYWwgY29uZmxpY3RzIHR1cGxlIGRlc2NyaXB0b3IuICovCisJdHVw ZGVzYyA9IGJ1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYygpOwogCi0JaW5kZXhfY2xvc2UoaW5kZXhE ZXNjLCBOb0xvY2spOworCS8qIFByb2Nlc3MgbG9jYWwgY29uZmxpY3QgdHVwbGUgbGlzdCBhbmQg cHJlcGFyZSBhbiBhcnJheSBvZiBKU09OLiAqLworCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJ bmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykKKwl7CisJCURhdHVtCQl2YWx1ZXNb TlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwkJYm9vbAkJbnVsbHNbTlVNX0xPQ0FM X0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwkJY2hhcgkgICAqb3JpZ2luX25hbWUgPSBOVUxMOwor CQlIZWFwVHVwbGUJdHVwbGU7CisJCURhdHVtCQlqc29uX2RhdHVtOworCQlpbnQJCQlhdHRubzsK KworCQlhdHRubyA9IDA7CisJCXZhbHVlc1thdHRubysrXSA9IFRyYW5zYWN0aW9uSWRHZXREYXR1 bShjb25mbGljdHR1cGxlLT54bWluKTsKKworCQlpZiAoY29uZmxpY3R0dXBsZS0+dHMpCisJCQl2 YWx1ZXNbYXR0bm8rK10gPSBUaW1lc3RhbXBUekdldERhdHVtKGNvbmZsaWN0dHVwbGUtPnRzKTsK KwkJZWxzZQorCQkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOwogCi0JcmV0dXJuIGluZGV4X3ZhbHVl OworCQlpZiAoY29uZmxpY3R0dXBsZS0+b3JpZ2luICE9IEludmFsaWRSZXBsT3JpZ2luSWQpCisJ CQlyZXBsb3JpZ2luX2J5X29pZChjb25mbGljdHR1cGxlLT5vcmlnaW4sIHRydWUsICZvcmlnaW5f bmFtZSk7CisKKwkJLyogU3RvcmUgZW1wdHkgc3RyaW5nIGlmIG9yaWdpbiBuYW1lIGZvciB0aGUg dHVwbGUgaXMgTlVMTC4gKi8KKwkJaWYgKG9yaWdpbl9uYW1lICE9IE5VTEwpCisJCQl2YWx1ZXNb YXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG9yaWdpbl9uYW1lKTsKKwkJZWxzZQorCQkJ bnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJCS8qCisJCSAqIEFkZCB0aGUgY29uZmxpY3Rpbmcg a2V5IHZhbHVlcyBpbiB0aGUgY2FzZSBvZiBhIHVuaXF1ZSBjb25zdHJhaW50CisJCSAqIHZpb2xh dGlvbi4KKwkJICovCisJCWlmIChjb25mbGljdF90eXBlID09IENUX0lOU0VSVF9FWElTVFMgfHwK KwkJCWNvbmZsaWN0X3R5cGUgPT0gQ1RfVVBEQVRFX0VYSVNUUyB8fAorCQkJY29uZmxpY3RfdHlw ZSA9PSBDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTKQorCQl7CisJCQlPaWQJaW5kZXhvaWQg PSBjb25mbGljdHR1cGxlLT5pbmRleG9pZDsKKworCQkJQXNzZXJ0KE9pZElzVmFsaWQoaW5kZXhv aWQpICYmIGNvbmZsaWN0dHVwbGUtPnNsb3QgJiYKKwkJCQkgICBDaGVja1JlbGF0aW9uT2lkTG9j a2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywKKwkJCQkJCQkJCQkJICB0cnVlKSk7 CisJCQl2YWx1ZXNbYXR0bm8rK10gPQorCQkJCQl0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVw X2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJICBpbmRleG9pZCwKKwkJCQkJCQkJCQkJ CQkgIGNvbmZsaWN0dHVwbGUtPnNsb3QpOworCQl9CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytd ID0gdHJ1ZTsKKworCQkvKiBDb252ZXJ0IGNvbmZsaWN0aW5nIHR1cGxlIHRvIEpTT04gZGF0dW0u ICovCisJCWlmIChjb25mbGljdHR1cGxlLT5zbG90KQorCQkJdmFsdWVzW2F0dG5vXSA9IHR1cGxl X3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShjb25mbGljdHR1cGxlLT5zbG90KTsKKwkJZWxzZQor CQkJbnVsbHNbYXR0bm9dID0gdHJ1ZTsKKworCQlBc3NlcnQoYXR0bm8gKyAxID09IE5VTV9MT0NB TF9DT05GTElDVF9BVFRSUyk7CisKKwkJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywg dmFsdWVzLCBudWxscyk7CisKKwkJanNvbl9kYXR1bSA9IGhlYXBfY29weV90dXBsZV9hc19kYXR1 bSh0dXBsZSwgdHVwZGVzYyk7CisKKwkJLyoKKwkJICogQnVpbGQgdGhlIGhpZ2hlciBsZXZlbCBK U09OIGRhdHVtIGluIGZvcm1hdCBkZXNjcmliZWQgaW4gZnVuY3Rpb24KKwkJICogaGVhZGVyLgor CQkgKi8KKwkJanNvbl9kYXR1bSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGpz b25fZGF0dW0pOworCisJCS8qIERvbmUgd2l0aCB0aGUgdGVtcG9yYXJ5IHR1cGxlLiAqLworCQlo ZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisKKwkJLyogQWRkIHRvIHRoZSBhcnJheSBlbGVtZW50LiAq LworCQlqc29uX2RhdHVtcyA9IGxhcHBlbmQoanNvbl9kYXR1bXMsICh2b2lkICopIGpzb25fZGF0 dW0pOworCX0KKworCW51bV9jb25mbGljdHMgPSBsaXN0X2xlbmd0aChqc29uX2RhdHVtcyk7CisK Kwlqc29uX2RhdHVtX2FycmF5ID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1fY29uZmxpY3RzKTsK KworCWkgPSAwOworCWZvcmVhY2gobGMsIGpzb25fZGF0dW1zKQorCXsKKwkJanNvbl9kYXR1bV9h cnJheVtpXSA9IChEYXR1bSkgbGZpcnN0KGxjKTsKKwkJaSsrOworCX0KKworCS8qIENvbnN0cnVj dCB0aGUgSlNPTiBhcnJheSBEYXR1bS4gKi8KKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihKU09OT0lE LCAmdHlwbGVuLCAmdHlwYnl2YWwsICZ0eXBhbGlnbik7CisJanNvbl9hcnJheV9kYXR1bSA9IFBv aW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXkoanNvbl9kYXR1bV9hcnJheSwKKwkJCQkJCQkJ CQkJCQkgICBudW1fY29uZmxpY3RzLAorCQkJCQkJCQkJCQkJCSAgIEpTT05PSUQsCisJCQkJCQkJ CQkJCQkJICAgdHlwbGVuLAorCQkJCQkJCQkJCQkJCSAgIHR5cGJ5dmFsLAorCQkJCQkJCQkJCQkJ CSAgIHR5cGFsaWduKSk7CisJcGZyZWUoanNvbl9kYXR1bV9hcnJheSk7CisKKwlyZXR1cm4ganNv bl9hcnJheV9kYXR1bTsKK30KKworLyoKKyAqIHByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlCisg KgorICogVGhpcyByb3V0aW5lIHByZXBhcmVzIGEgdHVwbGUgZGV0YWlsaW5nIGEgY29uZmxpY3Qg ZW5jb3VudGVyZWQgZHVyaW5nCisgKiBsb2dpY2FsIHJlcGxpY2F0aW9uLiBUaGUgcHJlcGFyZWQg dHVwbGUgd2lsbCBiZSBzdG9yZWQgaW4KKyAqIE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3Rf bG9nX3R1cGxlIHdoaWNoIHNob3VsZCBiZSBpbnNlcnRlZCBpbnRvIHRoZQorICogY29uZmxpY3Qg bG9nIHRhYmxlIGJ5IGNhbGxpbmcgSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZS4KKyAqLworc3RhdGlj IHZvaWQKK3ByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlv biByZWwsCisJCQkJCQkgICBSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCwKKwkJCQkJCSAgIENvbmZs aWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNs b3QsCisJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1cGxlcywKKwkJCQkJCSAgIFR1cGxlVGFibGVT bG90ICpyZW1vdGVzbG90KQoreworCURhdHVtCQl2YWx1ZXNbTlVNX0NPTkZMSUNUX0FUVFJTXSA9 IHswfTsKKwlib29sCQludWxsc1tOVU1fQ09ORkxJQ1RfQVRUUlNdID0gezB9OworCWludAkJCWF0 dG5vOworCWNoYXIJICAgKnJlbW90ZV9vcmlnaW4gPSBOVUxMOworCU1lbW9yeUNvbnRleHQJb2xk Y3R4OworCisJQXNzZXJ0KE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID09 IE5VTEwpOworCisJLyogUG9wdWxhdGUgdGhlIHZhbHVlcyBhbmQgbnVsbHMgYXJyYXlzLiAqLwor CWF0dG5vID0gMDsKKwl2YWx1ZXNbYXR0bm8rK10gPSBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9u R2V0UmVsaWQocmVsKSk7CisKKwl2YWx1ZXNbYXR0bm8rK10gPQorCQkJQ1N0cmluZ0dldFRleHRE YXR1bShnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSkpOworCisJ dmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHREYXR1bShSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oQ29u ZmxpY3RUeXBlTmFtZXNbY29uZmxpY3RfdHlwZV0pOworCisJaWYgKFRyYW5zYWN0aW9uSWRJc1Zh bGlkKHJlbW90ZV94aWQpKQorCQl2YWx1ZXNbYXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0 dW0ocmVtb3RlX3hpZCk7CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwl2YWx1 ZXNbYXR0bm8rK10gPSBMU05HZXREYXR1bShyZW1vdGVfZmluYWxfbHNuKTsKKworCWlmIChyZW1v dGVfY29tbWl0X3RzID4gMCkKKwkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1wVHpHZXREYXR1 bShyZW1vdGVfY29tbWl0X3RzKTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKwor CWlmIChyZXBsb3JpZ2luX3hhY3Rfc3RhdGUub3JpZ2luICE9IEludmFsaWRSZXBsT3JpZ2luSWQp CisJCXJlcGxvcmlnaW5fYnlfb2lkKHJlcGxvcmlnaW5feGFjdF9zdGF0ZS5vcmlnaW4sIHRydWUs ICZyZW1vdGVfb3JpZ2luKTsKKworCWlmIChyZW1vdGVfb3JpZ2luICE9IE5VTEwpCisJCXZhbHVl c1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocmVtb3RlX29yaWdpbik7CisJZWxzZQor CQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAoIVR1cElzTnVsbChyZW1vdGVzbG90KSkK KwkJdmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHJlbW90 ZXNsb3QpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJaWYgKCFUdXBJc051 bGwoc2VhcmNoc2xvdCkpCisJeworCQlPaWQJCXJlcGxpY2FfaW5kZXggPSBHZXRSZWxhdGlvbklk ZW50aXR5T3JQSyhyZWwpOworCisJCS8qCisJCSAqIElmIHRoZSB0YWJsZSBoYXMgYSB2YWxpZCBy ZXBsaWNhIGlkZW50aXR5IGluZGV4LCBidWlsZCB0aGUgaW5kZXgKKwkJICogSlNPTiBkYXR1bSBm cm9tIGtleSB2YWx1ZS4gT3RoZXJ3aXNlLCBjb25zdHJ1Y3QgaXQgZnJvbSB0aGUgY29tcGxldGUK KwkJICogdHVwbGUgaW4gUkVQTElDQSBJREVOVElUWSBGVUxMIGNhc2VzLgorCQkgKi8KKwkJaWYg KE9pZElzVmFsaWQocmVwbGljYV9pbmRleCkpCisJCQl2YWx1ZXNbYXR0bm8rK10gPSB0dXBsZV90 YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJCQkJ cmVwbGljYV9pbmRleCwKKwkJCQkJCQkJCQkJCQkJCQlzZWFyY2hzbG90KTsKKwkJZWxzZQorCQkJ dmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHNlYXJjaHNs b3QpOworCX0KKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCXZhbHVlc1thdHRu b10gPSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9hcnJheShlc3RhdGUsIHJlbCwKKwkJCQkJ CQkJCQkJCQkgY29uZmxpY3RfdHlwZSwKKwkJCQkJCQkJCQkJCQkgY29uZmxpY3R0dXBsZXMpOwor CisJQXNzZXJ0KGF0dG5vICsgMSA9PSBOVU1fQ09ORkxJQ1RfQVRUUlMpOworCisJb2xkY3R4ID0g TWVtb3J5Q29udGV4dFN3aXRjaFRvKEFwcGx5Q29udGV4dCk7CisJTXlMb2dpY2FsUmVwV29ya2Vy LT5jb25mbGljdF9sb2dfdHVwbGUgPQorCQloZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNj cihjb25mbGljdGxvZ3JlbCksIHZhbHVlcywgbnVsbHMpOworCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjdHgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9sYXVuY2hlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5j CmluZGV4IDMxM2UzMWZmMmUzLi4wNWEzMDM0MmY2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYwpAQCAtNDg3LDYgKzQ4Nyw3IEBAIHJldHJ5OgogCXdvcmtl ci0+b2xkZXN0X25vbnJlbW92YWJsZV94aWQgPSByZXRhaW5fZGVhZF90dXBsZXMKIAkJPyBNeVJl cGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluCiAJCTogSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJd29y a2VyLT5jb25mbGljdF9sb2dfdHVwbGUgPSBOVUxMOwogCXdvcmtlci0+bGFzdF9sc24gPSBJbnZh bGlkWExvZ1JlY1B0cjsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXItPmxhc3Rfc2VuZF90aW1l KTsKIAlUSU1FU1RBTVBfTk9CRUdJTih3b3JrZXItPmxhc3RfcmVjdl90aW1lKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDc3OTkyNjZjNjE0Li4zMjdkOGMw N2NiMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIu YworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC00ODcs NyArNDg3LDkgQEAgc3RhdGljIGJvb2wgTXlTdWJzY3JpcHRpb25WYWxpZCA9IGZhbHNlOwogc3Rh dGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29ya2Vyc19zdWJpZHMgPSBOSUw7CiAKIGJvb2wJ CWluX3JlbW90ZV90cmFuc2FjdGlvbiA9IGZhbHNlOwotc3RhdGljIFhMb2dSZWNQdHIgcmVtb3Rl X2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworWExvZ1JlY1B0ciByZW1vdGVfZmluYWxf bHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CitUcmFuc2FjdGlvbklkCXJlbW90ZV94aWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKK1RpbWVzdGFtcFR6CXJlbW90ZV9jb21taXRfdHMgPSAwOwogCiAv KiBmaWVsZHMgdmFsaWQgb25seSB3aGVuIHByb2Nlc3Npbmcgc3RyZWFtZWQgdHJhbnNhY3Rpb24g Ki8KIHN0YXRpYyBib29sIGluX3N0cmVhbWVkX3RyYW5zYWN0aW9uID0gZmFsc2U7CkBAIC0xMjM2 LDYgKzEyMzgsOCBAQCBhcHBseV9oYW5kbGVfYmVnaW4oU3RyaW5nSW5mbyBzKQogCXNldF9hcHBs eV9lcnJvcl9jb250ZXh0X3hhY3QoYmVnaW5fZGF0YS54aWQsIGJlZ2luX2RhdGEuZmluYWxfbHNu KTsKIAogCXJlbW90ZV9maW5hbF9sc24gPSBiZWdpbl9kYXRhLmZpbmFsX2xzbjsKKwlyZW1vdGVf Y29tbWl0X3RzID0gYmVnaW5fZGF0YS5jb21taXR0aW1lOworCXJlbW90ZV94aWQgPSBiZWdpbl9k YXRhLnhpZDsKIAogCW1heWJlX3N0YXJ0X3NraXBwaW5nX2NoYW5nZXMoYmVnaW5fZGF0YS5maW5h bF9sc24pOwogCkBAIC0xMjk2LDYgKzEzMDAsOCBAQCBhcHBseV9oYW5kbGVfYmVnaW5fcHJlcGFy ZShTdHJpbmdJbmZvIHMpCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChiZWdpbl9kYXRh LnhpZCwgYmVnaW5fZGF0YS5wcmVwYXJlX2xzbik7CiAKIAlyZW1vdGVfZmluYWxfbHNuID0gYmVn aW5fZGF0YS5wcmVwYXJlX2xzbjsKKwlyZW1vdGVfeGlkID0gYmVnaW5fZGF0YS54aWQ7CisJcmVt b3RlX2NvbW1pdF90cyA9IDA7CiAKIAltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2VzKGJlZ2lu X2RhdGEucHJlcGFyZV9sc24pOwogCkBAIC0xNzY3LDYgKzE3NzMsMTAgQEAgYXBwbHlfaGFuZGxl X3N0cmVhbV9zdGFydChTdHJpbmdJbmZvIHMpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NP TF9WSU9MQVRJT04pLAogCQkJCSBlcnJtc2dfaW50ZXJuYWwoImludmFsaWQgdHJhbnNhY3Rpb24g SUQgaW4gc3RyZWFtZWQgcmVwbGljYXRpb24gdHJhbnNhY3Rpb24iKSkpOwogCisJcmVtb3RlX3hp ZCA9IHN0cmVhbV94aWQ7CisJcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwor CXJlbW90ZV9jb21taXRfdHMgPSAwOworCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChz dHJlYW1feGlkLCBJbnZhbGlkWExvZ1JlY1B0cik7CiAKIAkvKiBUcnkgdG8gYWxsb2NhdGUgYSB3 b3JrZXIgZm9yIHRoZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb24uICovCkBAIC0yNDI4LDYgKzI0Mzgs OSBAQCBhcHBseV9oYW5kbGVfc3RyZWFtX2NvbW1pdChTdHJpbmdJbmZvIHMpCiAJewogCQljYXNl IFRSQU5TX0xFQURFUl9BUFBMWToKIAorCQkJLyogU2V0IHJlbW90ZV9jb21taXRfdHMgZm9yIGNv bmZsaWN0IGxvZ2dpbmcuICovCisJCQlyZW1vdGVfY29tbWl0X3RzID0gY29tbWl0X2RhdGEuY29t bWl0dGltZTsKKwogCQkJLyoKIAkJCSAqIFRoZSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBzZXJpYWxp emVkIHRvIGZpbGUsIHNvIHJlcGxheSBhbGwgdGhlCiAJCQkgKiBzcG9vbGVkIG9wZXJhdGlvbnMu CkBAIC01NjY2LDYgKzU2NzksNyBAQCBzdGFydF9hcHBseShYTG9nUmVjUHRyIG9yaWdpbl9zdGFy dHBvcykKIAkJCSAqLwogCQkJQWJvcnRPdXRPZkFueVRyYW5zYWN0aW9uKCk7CiAJCQlwZ3N0YXRf cmVwb3J0X3N1YnNjcmlwdGlvbl9lcnJvcihNeVN1YnNjcmlwdGlvbi0+b2lkKTsKKwkJCVByb2Nl c3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpOwogCiAJCQlQR19SRV9USFJPVygpOwogCQl9CkBA IC02MDQwLDYgKzYwNTQsOCBAQCBEaXNhYmxlU3Vic2NyaXB0aW9uQW5kRXhpdCh2b2lkKQogCSAq LwogCXBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2Vycm9yKE15TG9naWNhbFJlcFdvcmtlci0+ c3ViaWQpOwogCisJUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCk7CisKIAkvKiBEaXNh YmxlIHRoZSBzdWJzY3JpcHRpb24gKi8KIAlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAppbmRleCBhMDE3ZTFlNmNiNS4uYjcyN2NjMjg1ZTkg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKKysrIGIvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaApAQCAtMTE1LDUgKzExNSw4IEBAIGV4dGVy biB2b2lkIFJlcG9ydEFwcGx5Q29uZmxpY3QoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8g KnJlbGluZm8sCiAJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAogCQkJCQkJCQlU dXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJTGlzdCAqY29uZmxpY3R0dXBsZXMp OworZXh0ZXJuIHZvaWQgUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKHZvaWQpOwogZXh0 ZXJuIHZvaWQgSW5pdENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJbmZvICpyZWxJbmZvKTsKK2V4 dGVybiBSZWxhdGlvbiBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExvZ0Rlc3Qg KmxvZ19kZXN0KTsKK2V4dGVybiB2b2lkIEluc2VydENvbmZsaWN0TG9nVHVwbGUoUmVsYXRpb24g Y29uZmxpY3Rsb2dyZWwpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9p bnRlcm5hbC5oCmluZGV4IDc0NWI3ZDllOTY5Li42YjY1MjVkYzJlMiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKQEAgLTEwMCw2ICsxMDAsOSBAQCB0eXBlZGVm IHN0cnVjdCBMb2dpY2FsUmVwV29ya2VyCiAJICovCiAJVHJhbnNhY3Rpb25JZCBvbGRlc3Rfbm9u cmVtb3ZhYmxlX3hpZDsKIAorCS8qIEEgY29uZmxpY3QgbG9nIHR1cGxlIHRoYXQgaXMgcHJlcGFy ZWQgYnV0IG5vdCB5ZXQgaW5zZXJ0ZWQuICovCisJSGVhcFR1cGxlCWNvbmZsaWN0X2xvZ190dXBs ZTsKKwogCS8qIFN0YXRzLiAqLwogCVhMb2dSZWNQdHIJbGFzdF9sc247CiAJVGltZXN0YW1wVHog bGFzdF9zZW5kX3RpbWU7CkBAIC0yNTUsNiArMjU4LDEwIEBAIGV4dGVybiBQR0RMTElNUE9SVCBi b29sIEluaXRpYWxpemluZ0FwcGx5V29ya2VyOwogCiBleHRlcm4gUEdETExJTVBPUlQgTGlzdCAq dGFibGVfc3RhdGVzX25vdF9yZWFkeTsKIAorZXh0ZXJuIFhMb2dSZWNQdHIgcmVtb3RlX2ZpbmFs X2xzbjsKK2V4dGVybiBUaW1lc3RhbXBUeiByZW1vdGVfY29tbWl0X3RzOworZXh0ZXJuIFRyYW5z YWN0aW9uSWQgcmVtb3RlX3hpZDsKKwogZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93b3JrZXJfYXR0 YWNoKGludCBzbG90KTsKIGV4dGVybiBMb2dpY2FsUmVwV29ya2VyICpsb2dpY2FscmVwX3dvcmtl cl9maW5kKExvZ2ljYWxSZXBXb3JrZXJUeXBlIHd0eXBlLAogCQkJCQkJCQkJCQkJT2lkIHN1Ymlk LCBPaWQgcmVsaWQsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3Jp Z2luLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5wbAppbmRleCA2YmM2 Yjc4NzRjMi4uNWY0ZDAwYmRkMzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzMF9vcmlnaW4ucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5w bApAQCAtMTY2LDcgKzE2Niw3IEBAIGlzKCRyZXN1bHQsIHFxKDMyKSwgJ1RoZSBub2RlX0EgZGF0 YSByZXBsaWNhdGVkIHRvIG5vZGVfQicpOwogJG5vZGVfQy0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJVUERBVEUgJHRhYiBTRVQgYSA9IDMzIFdIRVJFIGEgPSAzMjsiKTsKIAogJG5vZGVfQi0+d2Fp dF9mb3JfbG9nKAotCXFyL2NvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRh Yl91bnF1b3RlZCI6IGNvbmZsaWN0PXVwZGF0ZV9vcmlnaW5fZGlmZmVycy4qXG4uKkRFVEFJTDou KiBVcGRhdGluZyB0aGUgcm93IHRoYXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdp biAiLioiIGluIHRyYW5zYWN0aW9uIFswLTldKyBhdCAuKjogbG9jYWwgcm93IFwoMzJcKSwgcmVt b3RlIHJvdyBcKDMzXCksIHJlcGxpY2EgaWRlbnRpdHkgXChhXCk9XCgzMlwpLi8KKwlxci9jb25m bGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiAicHVibGljLiR0YWIiOiBjb25mbGljdD11cGRhdGVf b3JpZ2luX2RpZmZlcnMuKlxuLipERVRBSUw6LiogVXBkYXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBt b2RpZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0cmFuc2FjdGlvbiBbMC05XSsg YXQgLio6IGxvY2FsIHJvdyBcKDMyXCksIHJlbW90ZSByb3cgXCgzM1wpLCByZXBsaWNhIGlkZW50 aXR5IFwoYVwpPVwoMzJcKS4vCiApOwogCiAkbm9kZV9CLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkRFTEVURSBGUk9NICR0YWI7Iik7CkBAIC0xODIsNyArMTgyLDcgQEAgaXMoJHJlc3VsdCwgcXEo MzMpLCAnVGhlIG5vZGVfQSBkYXRhIHJlcGxpY2F0ZWQgdG8gbm9kZV9CJyk7CiAkbm9kZV9DLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRFTEVURSBGUk9NICR0YWIgV0hFUkUgYSA9IDMzOyIpOwog CiAkbm9kZV9CLT53YWl0X2Zvcl9sb2coCi0JcXIvY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRp b24gInB1YmxpYy4kdGFiX3VucXVvdGVkIjogY29uZmxpY3Q9ZGVsZXRlX29yaWdpbl9kaWZmZXJz Lipcbi4qREVUQUlMOi4qIERlbGV0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9kaWZpZWQgYnkgYSBk aWZmZXJlbnQgb3JpZ2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0IC4qOiBsb2NhbCBy b3cgXCgzM1wpLCByZXBsaWNhIGlkZW50aXR5IFwoYVwpPVwoMzNcKS4qLworCXFyL2NvbmZsaWN0 IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYiI6IGNvbmZsaWN0PWRlbGV0ZV9vcmln aW5fZGlmZmVycy4qXG4uKkRFVEFJTDouKiBEZWxldGluZyB0aGUgcm93IHRoYXQgd2FzIG1vZGlm aWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAiLioiIGluIHRyYW5zYWN0aW9uIFswLTldKyBhdCAu KjogbG9jYWwgcm93IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1cKDMzXCkuKi8KICk7 CiAKICMgVGhlIHJlbWFpbmluZyB0ZXN0cyBubyBsb25nZXIgdGVzdCBjb25mbGljdCBkZXRlY3Rp b24uCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBs IGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5wbAppbmRleCBmMjNmZTZh ZjJhNS4uZGUyZDM3Yzg3NTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz NV9jb25mbGljdHMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0 cy5wbApAQCAtNTAsNyArNTAsNyBAQCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCiAJJ3Bv c3RncmVzJywKIAkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWJfdGFiCiAJIENPTk5FQ1RJT04gJyRw dWJsaXNoZXJfY29ubnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBuYW1lJwotCSBQVUJMSUNBVElP TiBwdWJfdGFiOyIpOworCSBQVUJMSUNBVElPTiBwdWJfdGFiIFdJVEggKGNvbmZsaWN0X2xvZ19k ZXN0aW5hdGlvbj1hbGwpIik7CiAKICMgV2FpdCBmb3IgaW5pdGlhbCB0YWJsZSBzeW5jIHRvIGZp bmlzaAogJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVf cHVibGlzaGVyLCAkYXBwbmFtZSk7CkBAIC04NCwxMCArODQsMzUgQEAgJG5vZGVfc3Vic2NyaWJl ci0+d2FpdF9mb3JfbG9nKAogLipLZXkgYWxyZWFkeSBleGlzdHMgaW4gdW5pcXVlIGluZGV4IFwi Y29uZl90YWJfY19rZXlcIiwgbW9kaWZpZWQgaW4gdHJhbnNhY3Rpb24gLio6IGtleSBcKGNcKT1c KDRcKSwgbG9jYWwgcm93IFwoNCwgNCwgNFwpLi8sCiAJJGxvZ19vZmZzZXQpOwogCisjIFZlcmlm eSB0aGUgY29udGVudHMgb2YgdGhlIENvbmZsaWN0IExvZyBUYWJsZSAoQ0xUKQorIyBUaGlzIHNl Y3Rpb24gZW5zdXJlcyB0aGF0IHRoZSBDTFQgY29udGFpbnMgdGhlIGV4cGVjdGVkCisjIHR5cGUg YW5kIHNwZWNpZmljIGtleSBkYXRhLgorbXkgJHN1YmlkID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hF UkUgc3VibmFtZSA9ICdzdWJfdGFiJzsiKTsKK215ICRjbHQgPSAicGdfY29uZmxpY3QucGdfY29u ZmxpY3RfbG9nXyRzdWJpZCI7CisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJlIGxvZ2dl ZCBpbiB0aGUgQ0xUCitteSAkbG9nX2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVy eV91bnRpbCgKKyAgICAncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAwIEZST00g JGNsdDsiCispOworCitteSAkY29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID49IDEgRlJPTSAkY2x0IFdI RVJFIGNvbmZsaWN0X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7Citpcygk Y29uZmxpY3RfY2hlY2ssICd0JywgJ1ZlcmlmaWVkIG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMg bG9nZ2VkIGludG8gY29uZmxpY3QgbG9nIHRhYmxlJyk7CisKK215ICRqc29uX3F1ZXJ5ID0gIlNF TEVDVCBsb2NhbF9jb25mbGljdHMgRlJPTSAkY2x0OyI7CitteSAkcmF3X2pzb24gPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkpOworCisjIFZlcmlm eSB0aGF0ICcyJyBpcyBwcmVzZW50IGluc2lkZSB0aGUgSlNPTiBzdHJ1Y3R1cmUgdXNpbmcgYSBy ZWdleAorIyBUaGlzIG1hdGNoZXMgdGhlIGtleS92YWx1ZSBwYXR0ZXJuIGZvciAiYSI6IDIKK2xp a2UoJHJhd19qc29uLCBxci9cXCJhXFwiOjIvLCAnVmVyaWZpZWQgdGhhdCBrZXkgMiBleGlzdHMg aW4gdGhlIGxvY2FsX2NvbmZsaWN0cycpOworCiBwYXNzKCdtdWx0aXBsZV91bmlxdWVfY29uZmxp Y3RzIGRldGVjdGVkIGR1cmluZyBpbnNlcnQnKTsKIAogIyBUcnVuY2F0ZSB0YWJsZSB0byBnZXQg cmlkIG9mIHRoZSBlcnJvcgogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJUUlVOQ0FURSBjb25mX3RhYjsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiREVMRVRFIEZST00gJGNsdCIpOwogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBUZXN0IG11bHRpcGxlX3VuaXF1ZV9jb25mbGlj dHMgZHVlIHRvIFVQREFURQpAQCAtMTE0LDYgKzEzOSwyNiBAQCAkbm9kZV9zdWJzY3JpYmVyLT53 YWl0X2Zvcl9sb2coCiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUgaW5kZXggXCJjb25m X3RhYl9jX2tleVwiLCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjoga2V5IFwoY1wpPVwoOFwp LCBsb2NhbCByb3cgXCg4LCA4LCA4XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMgVmVyaWZ5IHRo ZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRoaXMgc2VjdGlv biBlbnN1cmVzIHRoYXQgdGhlIENMVCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMgdHlwZSBhbmQg c3BlY2lmaWMga2V5IGRhdGEuCisKKyMgV2FpdCBmb3IgdGhlIGNvbmZsaWN0IHRvIGJlIGxvZ2dl ZCBpbiB0aGUgQ0xUCiskbG9nX2NoZWNrID0gJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91 bnRpbCgKKyAgICAncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAwIEZST00gJGNs dDsiCispOworCiskY29uZmxpY3RfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopID49IDEgRlJPTSAkY2x0IFdIRVJFIGNv bmZsaWN0X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29uZmxp Y3RfY2hlY2ssICd0JywgJ1ZlcmlmaWVkIG11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgbG9nZ2Vk IGludG8gY29uZmxpY3QgbG9nIHRhYmxlJyk7CisKKyRyYXdfanNvbiA9ICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkanNvbl9xdWVyeSk7CisKKyMgVmVyaWZ5IHRoYXQg JzYnIGlzIHByZXNlbnQgaW5zaWRlIHRoZSBKU09OIHN0cnVjdHVyZSB1c2luZyBhIHJlZ2V4Cisj IFRoaXMgbWF0Y2hlcyB0aGUga2V5L3ZhbHVlIHBhdHRlcm4gZm9yICJhIjogNgorbGlrZSgkcmF3 X2pzb24sIHFyL1xcImFcXCI6Ni8sICdWZXJpZmllZCB0aGF0IGtleSA2IGV4aXN0cyBpbiB0aGUg bG9jYWxfY29uZmxpY3RzJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1ZV9jb25mbGljdHMgZGV0 ZWN0ZWQgZHVyaW5nIHVwZGF0ZScpOwogCiAjIFRydW5jYXRlIHRhYmxlIHRvIGdldCByaWQgb2Yg dGhlIGVycm9yCi0tIAoyLjQ5LjAKCg== --000000000000836a4f0654856cfe Content-Type: application/octet-stream; name="v52-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v52-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqjeuklv0 RnJvbSA4YWUxNzg4MjNiMTVkMmRlMTFlYzBlN2NkYTk3NjE2Y2M5YmEyMDIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogVGh1LCAxOCBKdW4gMjAyNiAxNDo1MjoyOSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjUy IDEvNl0gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGlzIHBhdGNoIGFk ZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9m IGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2gg b2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFr ZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXplLCBhbmQKdXNlIGZvciBleHRlcm5hbCBt b25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBwYXRjaCBhZGRyZXNzZXMgdGhlc2UgbGlt aXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1cmFibGUKY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRpb24gaW4gdGhlIENSRUFURSBTVUJTQ1JJ UFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29zZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8g YSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3IgJ2FsbCcpLAphbiBpbnRlcm5hbCBsb2dn aW5nIHRhYmxlIG5hbWVkIHBnX2NvbmZsaWN0X2xvZ188c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkK Y3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5c3RlbS1tYW5hZ2VkICdwZ19jb25mbGljdCcg bmFtZXNwYWNlIHRvIHByZXZlbnQKdXNlcnMgZnJvbSBtYW51YWxseSBkcm9wcGluZyBvciBhbHRl cmluZyBpdC4gVGhpcyBhbHNvIHByZXZlbnRzIGFjY2lkZW50YWwKbmFtZSBjb2xsaXNpb25zIHdp dGggdXNlci1jcmVhdGVkIHRhYmxlcy4gVGhpcyB0YWJsZSBpcyBsaW5rZWQgdG8gdGhlCnN1YnNj cmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5zdXJpbmcgaXQgaXMgYXV0b21h dGljYWxseSBkcm9wcGVkCndoZW4gdGhlIHN1YnNjcmlwdGlvbiBpcyByZW1vdmVkCgpUaGUgcGVy LXN1YnNjcmlwdGlvbiB0YWJsZSBtb2RlbCB3YXMgY2hvc2VuIG92ZXIgYSBzaW5nbGUgZ2xvYmFs IGxvZyB0byBlbnN1cmUKc3VwZXJpb3IgaXNvbGF0aW9uIGFuZCBhZG1pbmlzdHJhdGl2ZSBmbGV4 aWJpbGl0eSBieSBkaXJlY3RseSBhbGlnbmluZyB0YWJsZSBvd25lcnNoaXAKd2l0aCB0aGUgc3Vi c2NyaXB0aW9u4oCZcyBsaWZlY3ljbGUuIFRoaXMgYXBwcm9hY2ggYWxsb3dzIGZvciBncmFudWxh ciBwZXJtaXNzaW9uCm1hbmFnZW1lbnQsIGVuYWJsaW5nIHRoZSBzdWJzY3JpcHRpb24gb3duZXIg dG8gcGVyZm9ybSBuZWNlc3NhcnkgbWFpbnRlbmFuY2UKdGFza3MgbGlrZSBTRUxFQ1QsIERFTEVU RSwgYW5kIFRSVU5DQVRFIHdpdGhvdXQgdGhlIHNlY3VyaXR5IHJpc2tzIG9yIGNvbXBsZXgKUm93 LUxldmVsIFNlY3VyaXR5IHJlcXVpcmVkIGJ5IGEgc2hhcmVkIGdsb2JhbCB0YWJsZS4KClRoZSBj b25mbGljdCBkZXRhaWxzLCBpbmNsdWRpbmcgdGhlIG9yaWdpbmFsIGFuZCByZW1vdGUgdHVwbGVz LCBhcmUgc3RvcmVkIGluIEpTT04KY29sdW1ucywgcHJvdmlkaW5nIGEgZmxleGlibGUgZm9ybWF0 IHRvIGFjY29tbW9kYXRlIGRpZmZlcmVudCB0YWJsZSBzY2hlbWFzLgoKVGhlIGxvZyB0YWJsZSBj YXB0dXJlcyBlc3NlbnRpYWwgYXR0cmlidXRlcyBzdWNoIGFzIGxvY2FsIGFuZCByZW1vdGUgdHJh bnNhY3Rpb24gSURzLApMU05zLCBjb21taXQgdGltZXN0YW1wcywgYW5kIGNvbmZsaWN0IHR5cGUs IHByb3ZpZGluZyBhIGNvbXBsZXRlIHJlY29yZCBmb3IgcG9zdC1tb3J0ZW0KYW5hbHlzaXMuCgpU aGlzIGZlYXR1cmUgd2lsbCBtYWtlIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzIGVhc2ll ciB0byBtb25pdG9yIGFuZCBtYW5hZ2UsCnNpZ25pZmljYW50bHkgaW1wcm92aW5nIHRoZSBvdmVy YWxsIHJlc2lsaWVuY2UgYW5kIG9wZXJhYmlsaXR5IG9mIHJlcGxpY2F0aW9uIHNldHVwcy4KClRo ZSBjb25mbGljdCBsb2cgdGFibGVzIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIGEgcHVibGljYXRp b24sIGV2ZW4gaWYgdGhlIHB1YmxpY2F0aW9uCmlzIGNvbmZpZ3VyZWQgdG8gaW5jbHVkZSBBTEwg VEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4gU0NIRU1BLgoKTm90ZTogQnVtcCBjYXRhbG9nIHZlcnNp b24gYXMgdGhpcyBhZGQgbmV3IGNvbHVtbiB0byBwZ19zdWJzY3JpcHRpb24gY2F0YWxvZwotLS0K IHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICB8ICA1MCArKy0tCiBz cmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYyAgICAgICAgICAgICAgfCAgMjkgKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAgICAgICAgICAgICB8ICAzMiArKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAxMSArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMgICAgfCAyMTIgKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYyAgICAgICAgICAgIHwgIDI4ICsrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2NvbmZsaWN0LmMgfCAxNzUgKysrKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYyAgICAgICAgfCAgIDIgKy0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5j ICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oICAg ICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQg ICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAg IHwgIDExICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICB8ICAy NyArKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAgIHwgICAyICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCAzMDkgKysrKysr KysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAg ICAgfCAyNTYgKysrKysrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0ICAgICAgICAgICB8ICAgMiArCiAyMiBmaWxlcyBjaGFuZ2VkLCAxMTQ3IGluc2VydGlvbnMo KyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNs Y2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDAwN2VkZTk5N2M1Li42 NGUxNzY2NTJkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCkBAIC0zMzM3LDI1ICszMzM3LDM5IEBAIHBn X2NsYXNzX2FjbG1hc2tfZXh0KE9pZCB0YWJsZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUgbWFz aywKIAogCWNsYXNzRm9ybSA9IChGb3JtX3BnX2NsYXNzKSBHRVRTVFJVQ1QodHVwbGUpOwogCi0J LyoKLQkgKiBEZW55IGFueW9uZSBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhIHN5c3RlbSBjYXRhbG9n IHVubGVzcwotCSAqIHBnX2F1dGhpZC5yb2xzdXBlciBpcyBzZXQuCi0JICoKLQkgKiBBcyBvZiA3 LjQgd2UgaGF2ZSBzb21lIHVwZGF0YWJsZSBzeXN0ZW0gdmlld3M7IHRob3NlIHNob3VsZG4ndCBi ZQotCSAqIHByb3RlY3RlZCBpbiB0aGlzIHdheS4gIEFzc3VtZSB0aGUgdmlldyBydWxlcyBjYW4g dGFrZSBjYXJlIG9mCi0JICogdGhlbXNlbHZlcy4gIEFDTF9VU0FHRSBpcyBpZiB3ZSBldmVyIGhh dmUgc3lzdGVtIHNlcXVlbmNlcy4KLQkgKi8KLQlpZiAoKG1hc2sgJiAoQUNMX0lOU0VSVCB8IEFD TF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwgQUNMX1VTQUdFKSkgJiYKLQkJ SXNTeXN0ZW1DbGFzcyh0YWJsZV9vaWQsIGNsYXNzRm9ybSkgJiYKLQkJY2xhc3NGb3JtLT5yZWxr aW5kICE9IFJFTEtJTkRfVklFVyAmJgotCQkhc3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQotCQltYXNr ICY9IH4oQUNMX0lOU0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRF IHwgQUNMX1VTQUdFKTsKLQotCS8qCi0JICogT3RoZXJ3aXNlLCBzdXBlcnVzZXJzIGJ5cGFzcyBh bGwgcGVybWlzc2lvbi1jaGVja2luZy4KLQkgKi8KLQlpZiAoc3VwZXJ1c2VyX2FyZyhyb2xlaWQp KQorCWlmICghc3VwZXJ1c2VyX2FyZyhyb2xlaWQpKQorCXsKKwkJaWYgKG1hc2sgJiAoQUNMX0lO U0VSVCB8IEFDTF9VUERBVEUgfCBBQ0xfREVMRVRFIHwgQUNMX1RSVU5DQVRFIHwgQUNMX1VTQUdF KSkKKwkJeworCQkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGNsYXNzRm9ybSkpCisJCQl7 CisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3QgbG9nIHRhYmxlcywgYWxsb3cgbm9uLXN1cGVy dXNlcnMgdG8gcGVyZm9ybQorCQkJCSAqIERFTEVURSBhbmQgVFJVTkNBVEUgZm9yIGNsZWFudXAg YW5kIG1haW50ZW5hbmNlLCB3aGlsZSBzdGlsbAorCQkJCSAqIHJlc3RyaWN0aW5nIElOU0VSVCwg VVBEQVRFLCBhbmQgVVNBR0UuCisJCQkJICovCisJCQkJbWFzayAmPSB+KEFDTF9JTlNFUlQgfCBB Q0xfVVBEQVRFIHwgQUNMX1VTQUdFKTsKKwkJCX0KKwkJCWVsc2UgaWYgKElzU3lzdGVtQ2xhc3Mo dGFibGVfb2lkLCBjbGFzc0Zvcm0pICYmCisJCQkJY2xhc3NGb3JtLT5yZWxraW5kICE9IFJFTEtJ TkRfVklFVykKKwkJCXsKKwkJCQkvKgorCQkJCSAqIERlbnkgYW55b25lIHBlcm1pc3Npb24gdG8g dXBkYXRlIGEgc3lzdGVtIGNhdGFsb2cgdW5sZXNzCisJCQkJICogcGdfYXV0aGlkLnJvbHN1cGVy IGlzIHNldC4KKwkJCQkgKgorCQkJCSAqIEFzIG9mIDcuNCB3ZSBoYXZlIHNvbWUgdXBkYXRhYmxl IHN5c3RlbSB2aWV3czsgdGhvc2UKKwkJCQkgKiBzaG91bGRuJ3QgYmUgcHJvdGVjdGVkIGluIHRo aXMgd2F5LiAgQXNzdW1lIHRoZSB2aWV3IHJ1bGVzCisJCQkJICogY2FuIHRha2UgY2FyZSBvZiB0 aGVtc2VsdmVzLiAgQUNMX1VTQUdFIGlzIGlmIHdlIGV2ZXIgaGF2ZQorCQkJCSAqIHN5c3RlbSBz ZXF1ZW5jZXMuCisJCQkJICovCisJCQkJbWFzayAmPSB+KEFDTF9JTlNFUlQgfCBBQ0xfVVBEQVRF IHwgQUNMX0RFTEVURSB8IEFDTF9UUlVOQ0FURSB8CisJCQkJCQkgIEFDTF9VU0FHRSk7CisJCQl9 CisJCX0KKwl9CisJZWxzZQogCXsKKwkJLyogU3VwZXJ1c2VycyBieXBhc3MgYWxsIHBlcm1pc3Np b24tY2hlY2tpbmcuICovCiAJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJCXJldHVybiBtYXNr OwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMKaW5kZXggN2JlNDkwMzI5MzQuLmJlODc5MWFmODc1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2NhdGFsb2cuYwpAQCAtODYsNyArODYsOSBAQCBib29sCiBJc1N5c3RlbUNsYXNz KE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIHsKIAkvKiBJc0NhdGFsb2dSZWxh dGlvbk9pZCBpcyBhIGJpdCBmYXN0ZXIsIHNvIHRlc3QgdGhhdCBmaXJzdCAqLwotCXJldHVybiAo SXNDYXRhbG9nUmVsYXRpb25PaWQocmVsaWQpIHx8IElzVG9hc3RDbGFzcyhyZWx0dXBsZSkpOwor CXJldHVybiAoSXNDYXRhbG9nUmVsYXRpb25PaWQocmVsaWQpIHx8CisJCQlJc1RvYXN0Q2xhc3Mo cmVsdHVwbGUpIHx8CisJCQlJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWx0dXBsZSkpOwogfQog CiAvKgpAQCAtMjMwLDYgKzIzMiwyMCBAQCBJc1RvYXN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0 dXBsZSkKIAlyZXR1cm4gSXNUb2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpOwogfQogCisvKgor ICogSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MKKyAqCQlUcnVlIGlmZiBwZ19jbGFzcyB0dXBsZSBy ZXByZXNlbnRzIGEgQ29uZmxpY3QgTG9nIFRhYmxlLgorICoKKyAqCQlEb2VzIG5vdCBwZXJmb3Jt IGFueSBjYXRhbG9nIGFjY2Vzc2VzLgorICovCitib29sCitJc0NvbmZsaWN0TG9nVGFibGVDbGFz cyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQoreworCU9pZAkJCXJlbG5hbWVzcGFjZSA9IHJlbHR1 cGxlLT5yZWxuYW1lc3BhY2U7CisKKwlyZXR1cm4gSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNl KHJlbG5hbWVzcGFjZSk7Cit9CisKIC8qCiAgKiBJc0NhdGFsb2dOYW1lc3BhY2UKICAqCQlUcnVl IGlmZiBuYW1lc3BhY2UgaXMgcGdfY2F0YWxvZy4KQEAgLTI2NCw2ICsyODAsMTcgQEAgSXNUb2Fz dE5hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpCiAJCWlzVGVtcFRvYXN0TmFtZXNwYWNlKG5hbWVz cGFjZUlkKTsKIH0KIAorLyoKKyAqIElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZQorICoJCVRy dWUgaWZmIG5hbWVzcGFjZSBpcyBwZ19jb25mbGljdC4KKyAqCisgKgkJRG9lcyBub3QgcGVyZm9y bSBhbnkgY2F0YWxvZyBhY2Nlc3Nlcy4KKyAqLworYm9vbAorSXNDb25mbGljdExvZ1RhYmxlTmFt ZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCkKK3sKKwlyZXR1cm4gbmFtZXNwYWNlSWQgPT0gUEdfQ09O RkxJQ1RfTkFNRVNQQUNFOworfQogCiAvKgogICogSXNSZXNlcnZlZE5hbWUKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMK aW5kZXggODgwODc2NTRkZTkuLjVkMDdkY2MxYzViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL2hlYXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpAQCAtMzA1LDIz ICszMDUsMzEgQEAgaGVhcF9jcmVhdGUoY29uc3QgY2hhciAqcmVsbmFtZSwKIAlBc3NlcnQoT2lk SXNWYWxpZChyZWxpZCkpOwogCiAJLyoKLQkgKiBEb24ndCBhbGxvdyBjcmVhdGluZyByZWxhdGlv bnMgaW4gcGdfY2F0YWxvZyBkaXJlY3RseSwgZXZlbiB0aG91Z2ggaXQKLQkgKiBpcyBhbGxvd2Vk IHRvIG1vdmUgdXNlciBkZWZpbmVkIHJlbGF0aW9ucyB0aGVyZS4gU2VtYW50aWNzIHdpdGggc2Vh cmNoCi0JICogcGF0aHMgaW5jbHVkaW5nIHBnX2NhdGFsb2cgYXJlIHRvbyBjb25mdXNpbmcgZm9y IG5vdy4KKwkgKiBEb24ndCBhbGxvdyBjcmVhdGluZyByZWxhdGlvbnMgaW4gcGdfY2F0YWxvZyBv ciBwZ19jb25mbGljdCBkaXJlY3RseSwKKwkgKiBldmVuIHRob3VnaCBpdCBpcyBhbGxvd2VkIHRv IG1vdmUgdXNlciBkZWZpbmVkIHJlbGF0aW9ucyB0aGVyZS4gU2VtYW50aWNzCisJICogd2l0aCBz ZWFyY2ggcGF0aHMgaW5jbHVkaW5nIHBnX2NhdGFsb2cgYXJlIHRvbyBjb25mdXNpbmcgZm9yIG5v dy4KIAkgKgogCSAqIEJ1dCBhbGxvdyBjcmVhdGluZyBpbmRleGVzIG9uIHJlbGF0aW9ucyBpbiBw Z19jYXRhbG9nIGV2ZW4gaWYKIAkgKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyA9IG9mZiwgdXBw ZXIgbGF5ZXJzIGFscmVhZHkgZ3VhcmFudGVlIGl0J3Mgb24gYQogCSAqIHVzZXIgZGVmaW5lZCBy ZWxhdGlvbiwgbm90IGEgc3lzdGVtIG9uZS4KIAkgKi8KLQlpZiAoIWFsbG93X3N5c3RlbV90YWJs ZV9tb2RzICYmCi0JCSgoSXNDYXRhbG9nTmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkgJiYgcmVsa2lu ZCAhPSBSRUxLSU5EX0lOREVYKSB8fAotCQkgSXNUb2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2Up KSAmJgotCQlJc05vcm1hbFByb2Nlc3NpbmdNb2RlKCkpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkgZXJybXNnKCJw ZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgXCIlcy4lc1wiIiwKLQkJCQkJCWdldF9uYW1lc3Bh Y2VfbmFtZShyZWxuYW1lc3BhY2UpLCByZWxuYW1lKSwKLQkJCQkgZXJyZGV0YWlsKCJTeXN0ZW0g Y2F0YWxvZyBtb2RpZmljYXRpb25zIGFyZSBjdXJyZW50bHkgZGlzYWxsb3dlZC4iKSkpOworCWlm ICghYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgJiYgSXNOb3JtYWxQcm9jZXNzaW5nTW9kZSgpKQor CXsKKwkJaWYgKChJc0NhdGFsb2dOYW1lc3BhY2UocmVsbmFtZXNwYWNlKSAmJiByZWxraW5kICE9 IFJFTEtJTkRfSU5ERVgpIHx8CisJCQlJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklW SUxFR0UpLAorCQkJCQkgZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZCB0byBjcmVhdGUgXCIlc1wi IiwKKwkJCQkJCQlnZXRfcXVhbGlmaWVkX29iam5hbWUocmVsbmFtZXNwYWNlLCByZWxuYW1lKSks CisJCQkJCSBlcnJkZXRhaWwoIlN5c3RlbSBjYXRhbG9nIG1vZGlmaWNhdGlvbnMgYXJlIGN1cnJl bnRseSBkaXNhbGxvd2VkLiIpKSk7CisKKwkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFj ZShyZWxuYW1lc3BhY2UpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5p ZWQgdG8gY3JlYXRlIFwiJXNcIiIsCisJCQkJCQkJZ2V0X3F1YWxpZmllZF9vYmpuYW1lKHJlbG5h bWVzcGFjZSwgcmVsbmFtZSkpLAorCQkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBzY2hlbWEgbW9k aWZpY2F0aW9ucyBhcmUgY3VycmVudGx5IGRpc2FsbG93ZWQuIikpKTsKKwl9CiAKIAkqcmVsZnJv emVueGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJKnJlbG1pbm14aWQgPSBJbnZhbGlkTXVs dGlYYWN0SWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA1NmI4N2Q4NzhlOC4uNWJkOWJl Mzk4M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtMzUyMyw5ICszNTIzLDggQEAgTG9v a3VwQ3JlYXRpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqbnNwbmFtZSkKIC8qCiAgKiBDb21tb24g Y2hlY2tzIG9uIHN3aXRjaGluZyBuYW1lc3BhY2VzLgogICoKLSAqIFdlIGNvbXBsYWluIGlmIGVp dGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIGEgdGVtcG9yYXJ5IHNjaGVtYQotICog KG9yIHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEpLCBvciBpZiBlaXRoZXIgdGhlIG9sZCBvciBuZXcg bmFtZXNwYWNlcyBpcyB0aGUKLSAqIFRPQVNUIHNjaGVtYS4KKyAqIFdlIGNvbXBsYWluIGlmIGVp dGhlciB0aGUgb2xkIG9yIG5ldyBuYW1lc3BhY2VzIGlzIGEgdGVtcG9yYXJ5IHNjaGVtYSwKKyAq IHRlbXBvcmFyeSB0b2FzdCBzY2hlbWEsIHRoZSBUT0FTVCBzY2hlbWEsIG9yIHRoZSBjb25mbGlj dCBzY2hlbWEuCiAgKi8KIHZvaWQKIENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9p ZCBuc3BPaWQpCkBAIC0zNTQxLDYgKzM1NDAsMTIgQEAgQ2hlY2tTZXROYW1lc3BhY2UoT2lkIG9s ZE5zcE9pZCwgT2lkIG5zcE9pZCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygiY2Fubm90IG1vdmUgb2Jq ZWN0cyBpbnRvIG9yIG91dCBvZiBUT0FTVCBzY2hlbWEiKSkpOworCisJLyogc2ltaWxhcmx5IGZv ciBjb25mbGljdCBzY2hlbWEgKi8KKwlpZiAobnNwT2lkID09IFBHX0NPTkZMSUNUX05BTUVTUEFD RSB8fCBvbGROc3BPaWQgPT0gUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJy bXNnKCJjYW5ub3QgbW92ZSBvYmplY3RzIGludG8gb3Igb3V0IG9mIHRoZSBjb25mbGljdCBzY2hl bWEiKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDVj NDU3ZDlhY2E4Li4xZWM5NGM4NTFiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24u YwpAQCAtOTIsNiArOTIsMTMgQEAgY2hlY2tfcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKFB1Ymxp Y2F0aW9uUmVsSW5mbyAqcHJpKQogCQkJCSBlcnJtc2coZXJyb3Jtc2csIHJlbG5hbWUpLAogCQkJ CSBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHN5c3RlbSB0 YWJsZXMuIikpKTsKIAorCS8qIENhbid0IGJlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCWlmIChJ c0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoUmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVs KSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCisJCQkJIGVycm1zZyhlcnJvcm1zZywgcmVsbmFtZSksCisJCQkJIGVycmRl dGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgY29uZmxpY3QgbG9nIHRh Ymxlcy4iKSkpOworCiAJLyogVU5MT0dHRUQgYW5kIFRFTVAgcmVsYXRpb25zIGNhbm5vdCBiZSBw YXJ0IG9mIHB1YmxpY2F0aW9uLiAqLwogCWlmICh0YXJnZXRyZWwtPnJkX3JlbC0+cmVscGVyc2lz dGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTExMyw3 ICsxMjAsOCBAQCBzdGF0aWMgdm9pZAogY2hlY2tfcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQg c2NoZW1haWQpCiB7CiAJLyogQ2FuJ3QgYmUgc3lzdGVtIG5hbWVzcGFjZSAqLwotCWlmIChJc0Nh dGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElzVG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpKQor CWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElzVG9hc3ROYW1lc3BhY2Uoc2No ZW1haWQpIHx8CisJCUlzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShzY2hlbWFpZCkpCiAJCWVy ZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxV RSksCiAJCQkJIGVycm1zZygiY2Fubm90IGFkZCBzY2hlbWEgXCIlc1wiIHRvIHB1YmxpY2F0aW9u IiwKQEAgLTE0OCw3ICsxNTYsOCBAQCBjaGVja19wdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBz Y2hlbWFpZCkKICAqIGlzIHJlYWxseSBpbmFkZXF1YXRlIGZvciB0aGF0LCBzaW5jZSB0aGUgaW5m b3JtYXRpb25fc2NoZW1hIGNvdWxkIGJlCiAgKiBkcm9wcGVkIGFuZCByZWxvYWRlZCBhbmQgdGhl biBpdCdsbCBiZSBjb25zaWRlcmVkIHB1Ymxpc2hhYmxlLiAgVGhlIGJlc3QKICAqIGxvbmctdGVy bSBzb2x1dGlvbiBtYXkgYmUgdG8gYWRkIGEgInJlbGlzcHVibGlzaGFibGUiIGJvb2wgdG8gcGdf Y2xhc3MsCi0gKiBhbmQgZGVwZW5kIG9uIHRoYXQgaW5zdGVhZCBvZiBPSUQgY2hlY2tzLgorICog YW5kIGRlcGVuZCBvbiB0aGF0IGluc3RlYWQgb2YgT0lEIGNoZWNrcy4gIElzQ29uZmxpY3RMb2dU YWJsZUNsYXNzKCkKKyAqIGV4Y2x1ZGVzIHRhYmxlcyBpbiBjb25mbGljdCBzY2hlbWEuCiAgKi8K IHN0YXRpYyBib29sCiBpc19wdWJsaXNoYWJsZV9jbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xh c3MgcmVsdHVwbGUpCkBAIC0xNTcsNiArMTY2LDcgQEAgaXNfcHVibGlzaGFibGVfY2xhc3MoT2lk IHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVM S0lORF9TRVFVRU5DRSkgJiYKIAkJIUlzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSAmJgorCQkh SXNDb25mbGljdExvZ1RhYmxlQ2xhc3MocmVsdHVwbGUpICYmCiAJCXJlbHR1cGxlLT5yZWxwZXJz aXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9QRVJNQU5FTlQgJiYKIAkJcmVsaWQgPj0gRmlyc3RO b3JtYWxPYmplY3RJZDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4 IGI1Y2IzMDFkYjg4Li4yMDY4ZTAzYzU3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5jCkBAIC0xMzIsNiArMTMyLDcgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9v bCBtaXNzaW5nX29rLCBib29sIGNvbm5pbmZvX25lZWRlZCwKIAlzdWItPnJldGFpbmRlYWR0dXBs ZXMgPSBzdWJmb3JtLT5zdWJyZXRhaW5kZWFkdHVwbGVzOwogCXN1Yi0+bWF4cmV0ZW50aW9uID0g c3ViZm9ybS0+c3VibWF4cmV0ZW50aW9uOwogCXN1Yi0+cmV0ZW50aW9uYWN0aXZlID0gc3ViZm9y bS0+c3VicmV0ZW50aW9uYWN0aXZlOworCXN1Yi0+Y29uZmxpY3Rsb2dyZWxpZCA9IHN1YmZvcm0t PnN1YmNvbmZsaWN0bG9ncmVsaWQ7CiAKIAlpZiAoY29ubmluZm9fbmVlZGVkKQogCXsKQEAgLTIw Myw2ICsyMDQsMTIgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29r LCBib29sIGNvbm5pbmZvX25lZWRlZCwKIAkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25f c3Vib3JpZ2luKTsKIAlzdWItPm9yaWdpbiA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOwog CisJLyogR2V0IGNvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAqLworCWRhdHVtID0gU3lzQ2FjaGVH ZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQsCisJCQkJCQkJCSAgIHR1cCwKKwkJCQkJCQkJ ICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0KTsKKwlzdWItPmNvbmZs aWN0bG9nZGVzdCA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCiAJLyogSXMgdGhlIHN1 YnNjcmlwdGlvbiBvd25lciBhIHN1cGVydXNlcj8gKi8KIAlzdWItPm93bmVyc3VwZXJ1c2VyID0g c3VwZXJ1c2VyX2FyZyhzdWItPm93bmVyKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsCmluZGV4IDhmMTI5YmFlYzkwLi41OTY3NzYyZTYwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbApAQCAtMTUyNyw4ICsxNTI3LDggQEAgR1JBTlQgU0VMRUNUIChvaWQsIHN1 YmRiaWQsIHN1YnNraXBsc24sIHN1Ym5hbWUsIHN1Ym93bmVyLCBzdWJlbmFibGVkLAogICAgICAg ICAgICAgICBzdWJiaW5hcnksIHN1YnN0cmVhbSwgc3VidHdvcGhhc2VzdGF0ZSwgc3ViZGlzYWJs ZW9uZXJyLAogCQkJICBzdWJwYXNzd29yZHJlcXVpcmVkLCBzdWJydW5hc293bmVyLCBzdWJmYWls b3ZlciwKICAgICAgICAgICAgICAgc3VicmV0YWluZGVhZHR1cGxlcywgc3VibWF4cmV0ZW50aW9u LCBzdWJyZXRlbnRpb25hY3RpdmUsCi0gICAgICAgICAgICAgIHN1YnNlcnZlciwgc3Vic2xvdG5h bWUsIHN1YnN5bmNjb21taXQsIHN1YndhbHJjdnRpbWVvdXQsCi0gICAgICAgICAgICAgIHN1YnB1 YmxpY2F0aW9ucywgc3Vib3JpZ2luKQorICAgICAgICAgICAgICBzdWJzZXJ2ZXIsIHN1YmNvbmZs aWN0bG9ncmVsaWQsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3Vic2xvdG5hbWUsCisgICAgICAgICAg ICAgIHN1YnN5bmNjb21taXQsIHN1YndhbHJjdnRpbWVvdXQsIHN1YnB1YmxpY2F0aW9ucywgc3Vi b3JpZ2luKQogICAgIE9OIHBnX3N1YnNjcmlwdGlvbiBUTyBwdWJsaWM7CiAKIENSRUFURSBWSUVX IHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3Jp cHRpb25jbWRzLmMKaW5kZXggYzlmYWY2OGNiYzUuLmE3NmZjZjNhM2UzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19hdXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2ZXIuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190eXBlLmgiCkBAIC0zNSw2ICszNiw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMu aCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImZvcmVpZ24vZm9y ZWlnbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgpAQCAtNzksNiArODEsNyBAQAogI2RlZmlu ZSBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQJCQkweDAwMDEwMDAwCiAjZGVmaW5lIFNVQk9Q VF9MU04JCQkJCTB4MDAwMjAwMDAKICNkZWZpbmUgU1VCT1BUX09SSUdJTgkJCQkweDAwMDQwMDAw CisjZGVmaW5lIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVAkweDAwMDgwMDAwCiAKIC8qIGNoZWNr IGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAqLwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMp ICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykpCkBAIC0xMDcsNiArMTEwLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXJldGFpbmRlYWR0dXBsZXM7CiAJaW50MzIJCW1heHJl dGVudGlvbjsKIAljaGFyCSAgICpvcmlnaW47CisJQ29uZmxpY3RMb2dEZXN0IGNvbmZsaWN0bG9n ZGVzdDsKIAlYTG9nUmVjUHRyCWxzbjsKIAljaGFyCSAgICp3YWxfcmVjZWl2ZXJfdGltZW91dDsK IH0gU3ViT3B0czsKQEAgLTE0MCw3ICsxNDQsMTIgQEAgc3RhdGljIExpc3QgKm1lcmdlX3B1Ymxp Y2F0aW9ucyhMaXN0ICpvbGRwdWJsaXN0LCBMaXN0ICpuZXdwdWJsaXN0LCBib29sIGFkZHB1YiwK IHN0YXRpYyB2b2lkIFJlcG9ydFNsb3RDb25uZWN0aW9uRXJyb3IoTGlzdCAqcnN0YXRlcywgT2lk IHN1YmlkLCBjaGFyICpzbG90bmFtZSwgY2hhciAqZXJyKTsKIHN0YXRpYyB2b2lkIENoZWNrQWx0 ZXJTdWJPcHRpb24oU3Vic2NyaXB0aW9uICpzdWIsIGNvbnN0IGNoYXIgKm9wdGlvbiwKIAkJCQkJ CQkJYm9vbCBzbG90X25lZWRzX3VwZGF0ZSwgYm9vbCBpc1RvcExldmVsKTsKLQorc3RhdGljIGJv b2wgYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLAorCQkJCQkJ CQkJCUNvbmZsaWN0TG9nRGVzdCBvbGRsb2dkZXN0LAorCQkJCQkJCQkJCUNvbmZsaWN0TG9nRGVz dCBuZXdsb2dkZXN0LAorCQkJCQkJCQkJCU9pZCAqY29uZmxpY3R0YWJsZXJlbGlkKTsKK3N0YXRp YyB2b2lkIGRyb3Bfc3ViX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5h bWUsCisJCQkJCQkJCQkJT2lkIHN1YmNvbmZsaWN0bG9ncmVsaWQpOwogCiAvKgogICogQ29tbW9u IG9wdGlvbiBwYXJzaW5nIGZ1bmN0aW9uIGZvciBDUkVBVEUgYW5kIEFMVEVSIFNVQlNDUklQVElP TiBjb21tYW5kcy4KQEAgLTE5Niw2ICsyMDUsOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9u cyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJb3B0cy0+bWF4cmV0 ZW50aW9uID0gMDsKIAlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9PUklHSU4pKQog CQlvcHRzLT5vcmlnaW4gPSBwc3RyZHVwKExPR0lDQUxSRVBfT1JJR0lOX0FOWSk7CisJaWYgKElz U2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQorCQlvcHRzLT5j b25mbGljdGxvZ2Rlc3QgPSBDT05GTElDVF9MT0dfREVTVF9MT0c7CiAKIAkvKiBQYXJzZSBvcHRp b25zICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRpb25zKQpAQCAtNDM2LDYgKzQ0NywxOCBAQCBw YXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRf b3B0aW9ucywKIAkJCQkJCQkJCQkgUEdDX0JBQ0tFTkQsIFBHQ19TX1RFU1QsIEdVQ19BQ1RJT05f U0VULAogCQkJCQkJCQkJCSBmYWxzZSwgMCwgZmFsc2UpOwogCQl9CisJCWVsc2UgaWYgKElzU2V0 KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpICYmCisJCQkJIHN0cmNt cChkZWZlbC0+ZGVmbmFtZSwgImNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiIpID09IDApCisJCXsK KwkJCWNoYXIgKnZhbDsKKworCQkJaWYgKElzU2V0KG9wdHMtPnNwZWNpZmllZF9vcHRzLCBTVUJP UFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVs LCBwc3RhdGUpOworCisJCQl2YWwgPSBkZWZHZXRTdHJpbmcoZGVmZWwpOworCQkJb3B0cy0+Y29u ZmxpY3Rsb2dkZXN0ID0gR2V0Q29uZmxpY3RMb2dEZXN0KHZhbCk7CisJCQlvcHRzLT5zcGVjaWZp ZWRfb3B0cyB8PSBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1Q7CisJCX0KIAkJZWxzZQogCQkJZXJl cG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtNjYw LDYgKzY4Myw3IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0 ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdWludDMyCQlzdXBwb3J0ZWRfb3B0czsKIAlTdWJP cHRzCQlvcHRzID0gezB9OwogCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lkCQkJbG9ncmVsaWQg PSBJbnZhbGlkT2lkOwogCiAJLyoKIAkgKiBQYXJzZSBhbmQgY2hlY2sgb3B0aW9ucy4KQEAgLTY3 NCw3ICs2OTgsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBT VUJPUFRfRkFJTE9WRVIgfAogCQkJCQkgIFNVQk9QVF9SRVRBSU5fREVBRF9UVVBMRVMgfAogCQkJ CQkgIFNVQk9QVF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwKLQkJCQkJICBTVUJPUFRfV0FMX1JF Q0VJVkVSX1RJTUVPVVQgfCBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJICBTVUJPUFRfV0FMX1JFQ0VJ VkVSX1RJTUVPVVQgfCBTVUJPUFRfT1JJR0lOIHwKKwkJCQkJICBTVUJPUFRfQ09ORkxJQ1RfTE9H X0RFU1QpOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9u cywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAogCS8qCkBAIC04NDgsNiArODczLDIwIEBAIENy ZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0 bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdpbiAtIDFdID0K IAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7CiAKKwl2YWx1ZXNbQW51bV9wZ19z dWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPQorCQlDU3RyaW5nR2V0VGV4dERh dHVtKENvbmZsaWN0TG9nRGVzdE5hbWVzW29wdHMuY29uZmxpY3Rsb2dkZXN0XSk7CisKKwkvKgor CSAqIFdlIGNyZWF0ZSB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGhlcmUsIGlmIHJlcXVpcmVkLCBz byB0aGF0IGl0cyByZWxhdGlvbgorCSAqIE9JRCBjYW4gYmUgc3RvcmVkIHdoZW4gaW5zZXJ0aW5n IHRoZSBwZ19zdWJzY3JpcHRpb24gdHVwbGUgYmVsb3cuCisJICovCisJaWYgKENPTkZMSUNUU19M T0dHRURfVE9fVEFCTEUob3B0cy5jb25mbGljdGxvZ2Rlc3QpKQorCQlsb2dyZWxpZCA9IGNyZWF0 ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViaWQsIHN0bXQtPnN1Ym5hbWUsIG93bmVyKTsKKworCS8q IFN0b3JlIHRhYmxlIE9JRCBpbiB0aGUgY2F0YWxvZy4gKi8KKwl2YWx1ZXNbQW51bV9wZ19zdWJz Y3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCU9iamVjdElkR2V0RGF0 dW0obG9ncmVsaWQpOworCiAJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3Io cmVsKSwgdmFsdWVzLCBudWxscyk7CiAKIAkvKiBJbnNlcnQgdHVwbGUgaW50byBjYXRhbG9nLiAq LwpAQCAtODY4LDYgKzkwNywyNSBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQlyZWNvcmREZXBlbmRlbmN5T24o Jm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKIAl9CiAKKwkvKgorCSAq IEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZSBhbmQKKwkgKiB0aGUgc3Vic2NyaXB0aW9uLgorCSAqCisJICogV2UgdXNlIERFUEVO REVOQ1lfSU5URVJOQUwgdG8gc2lnbmlmeSB0aGF0IHRoZSB0YWJsZSdzIGxpZmVjeWNsZSBpcwor CSAqIHN0cmljdGx5IHRpZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiwgc2ltaWxhciB0byBob3cgYSBU T0FTVCB0YWJsZSByZWxhdGVzCisJICogdG8gaXRzIG1haW4gdGFibGUgb3IgYSBzZXF1ZW5jZSBy ZWxhdGVzIHRvIGFuIGlkZW50aXR5IGNvbHVtbi4KKwkgKgorCSAqIFRoaXMgZW5zdXJlcyB0aGUg Y29uZmxpY3QgbG9nIHRhYmxlIGlzIGF1dG9tYXRpY2FsbHkgcmVhcGVkIGR1cmluZyBhCisJICog RFJPUCBTVUJTQ1JJUFRJT04gdmlhIHBlcmZvcm1EZWxldGlvbigpLgorCSAqLworCWlmIChPaWRJ c1ZhbGlkKGxvZ3JlbGlkKSkKKwl7CisJCU9iamVjdEFkZHJlc3MgY2x0YWRkcjsKKworCQlPYmpl Y3RBZGRyZXNzU2V0KGNsdGFkZHIsIFJlbGF0aW9uUmVsYXRpb25JZCwgbG9ncmVsaWQpOworCQly ZWNvcmREZXBlbmRlbmN5T24oJmNsdGFkZHIsICZteXNlbGYsIERFUEVOREVOQ1lfSU5URVJOQUwp OworCX0KKwogCS8qCiAJICogQSByZXBsaWNhdGlvbiBvcmlnaW4gaXMgY3VycmVudGx5IGNyZWF0 ZWQgZm9yIGFsbCBzdWJzY3JpcHRpb25zLAogCSAqIGluY2x1ZGluZyB0aG9zZSB0aGF0IG9ubHkg Y29udGFpbiBzZXF1ZW5jZXMgb3IgYXJlIG90aGVyd2lzZSBlbXB0eS4KQEAgLTE0MzcsNiArMTQ5 NSw3MSBAQCBDaGVja0FsdGVyU3ViT3B0aW9uKFN1YnNjcmlwdGlvbiAqc3ViLCBjb25zdCBjaGFy ICpvcHRpb24sCiAJfQogfQogCisvKgorICogYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0Cisg KgorICogV2hlbiB0aGUgc3Vic2NyaXB0aW9uJ3MgJ2NvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbicg aXMgY2hhbmdlZCwgdXBkYXRlIHRoZQorICogY29uZmxpY3QgbG9nIHRhYmxlIGlmIHJlcXVpcmVk LgorICoKKyAqIElmIHRoZSBuZXcgZGVzdGluYXRpb24gbm8gbG9uZ2VyIHJlcXVpcmVzIGEgY29u ZmxpY3QgbG9nIHRhYmxlLCB0aGUgZXhpc3RpbmcKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBhc3Nv Y2lhdGVkIHdpdGggdGhlIHN1YnNjcmlwdGlvbiBpcyByZW1vdmVkIHZpYSBpbnRlcm5hbAorICog ZGVwZW5kZW5jeSBjbGVhbnVwIHRvIHByZXZlbnQgb3JwaGFuZWQgcmVsYXRpb25zLgorICoKKyAq IE9uIHN1Y2Nlc3MsICpjb25mbGljdHRhYmxlcmVsaWQgaXMgc2V0IHRvIHRoZSBPSUQgb2YgdGhl IGNvbmZsaWN0IGxvZyB0YWJsZQorICogdGhhdCB3YXMgY3JlYXRlZCBvciB2YWxpZGF0ZWQsIG9y IHRvIEludmFsaWRPaWQgaWYgbm8gdGFibGUgaXMgcmVxdWlyZWQuCisgKgorICogUmV0dXJucyB0 cnVlIGlmIHRoZSBzdWJzY3JpcHRpb24ncyBjb25mbGljdCBsb2cgdGFibGUgcmVmZXJlbmNlIG11 c3QgYmUKKyAqIHVwZGF0ZWQgYXMgYSByZXN1bHQgb2YgdGhlIGRlc3RpbmF0aW9uIGNoYW5nZTsg ZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9vbAorYWx0ZXJfc3ViX2NvbmZsaWN0X2xv Z19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLCBDb25mbGljdExvZ0Rlc3Qgb2xkbG9nZGVzdCwKKwkJ CQkJCQlDb25mbGljdExvZ0Rlc3QgbmV3bG9nZGVzdCwKKwkJCQkJCQlPaWQgKmNvbmZsaWN0dGFi bGVyZWxpZCkKK3sKKwlib29sCQl3YW50X3RhYmxlOworCWJvb2wJCWhhc19vbGR0YWJsZTsKKwli b29sCQl1cGRhdGVfcmVsaWQgPSBmYWxzZTsKKwlPaWQJCQlyZWxpZCA9IEludmFsaWRPaWQ7CisK Kwl3YW50X3RhYmxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19UQUJMRShuZXdsb2dkZXN0KTsKKwlo YXNfb2xkdGFibGUgPSBDT05GTElDVFNfTE9HR0VEX1RPX1RBQkxFKG9sZGxvZ2Rlc3QpOworCisJ aWYgKGhhc19vbGR0YWJsZSkKKwl7CisJCS8qIFRoZXJlIGlzIGEgY29uZmxpY3QgbG9nIHRhYmxl IGFscmVhZHkuICovCisJCWlmICghd2FudF90YWJsZSkKKwkJeworCQkJZHJvcF9zdWJfY29uZmxp Y3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWItPm5hbWUsCisJCQkJCQkJCQkJc3ViLT5jb25mbGlj dGxvZ3JlbGlkKTsKKwkJCXVwZGF0ZV9yZWxpZCA9IHRydWU7CisJCX0KKwl9CisJZWxzZQorCXsK KwkJLyogVGhlcmUgd2FzIG5vIHByZXZpb3VzIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KKwkJaWYg KHdhbnRfdGFibGUpCisJCXsKKwkJCU9iamVjdEFkZHJlc3MgY2x0YWRkcjsKKwkJCU9iamVjdEFk ZHJlc3Mgc3Vib2JqOworCisJCQlyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3Vi LT5vaWQsIHN1Yi0+bmFtZSwgc3ViLT5vd25lcik7CisJCQl1cGRhdGVfcmVsaWQgPSB0cnVlOwor CisJCQkvKgorCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0 aGUgY29uZmxpY3QgbG9nIHRhYmxlCisJCQkgKiBhbmQgdGhlIHN1YnNjcmlwdGlvbi4gIEZvciBk ZXRhaWxzIHJlZmVyIGNvbW1lbnRzIGluCisJCQkgKiBDcmVhdGVTdWJzY3JpcHRpb24gZnVuY3Rp b24uCisJCQkgKi8KKwkJCU9iamVjdEFkZHJlc3NTZXQoY2x0YWRkciwgUmVsYXRpb25SZWxhdGlv bklkLCByZWxpZCk7CisJCQlPYmplY3RBZGRyZXNzU2V0KHN1Ym9iaiwgU3Vic2NyaXB0aW9uUmVs YXRpb25JZCwgc3ViLT5vaWQpOworCQkJcmVjb3JkRGVwZW5kZW5jeU9uKCZjbHRhZGRyLCAmc3Vi b2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKwkJfQorCX0KKworCSpjb25mbGljdHRhYmxlcmVs aWQgPSByZWxpZDsKKwlyZXR1cm4gdXBkYXRlX3JlbGlkOworfQorCiAvKgogICogQWx0ZXIgdGhl IGV4aXN0aW5nIHN1YnNjcmlwdGlvbi4KICAqLwpAQCAtMTQ5OSw3ICsxNjIyLDggQEAgQWx0ZXJT dWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0 bXQsCiAJCQkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKIAkJCQkJCQkgIFNVQk9Q VF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwKIAkJCQkJCQkgIFNVQk9QVF9XQUxfUkVDRUlWRVJf VElNRU9VVCB8Ci0JCQkJCQkJICBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJCQkgIFNVQk9QVF9PUklH SU4gfAorCQkJCQkJCSAgU1VCT1BUX0NPTkZMSUNUX0xPR19ERVNUKTsKIAkJCWJyZWFrOwogCiAJ CWNhc2UgQUxURVJfU1VCU0NSSVBUSU9OX0VOQUJMRUQ6CkBAIC0xODU4LDYgKzE5ODIsMzQgQEAg QWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0 bXQgKnN0bXQsCiAJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YndhbHJjdnRp bWVvdXQgLSAxXSA9IHRydWU7CiAJCQkJfQogCisJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVk X29wdHMsIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVCkpCisJCQkJeworCQkJCQlDb25mbGljdExv Z0Rlc3Qgb2xkX2Rlc3QgPQorCQkJCQkJCUdldENvbmZsaWN0TG9nRGVzdChzdWItPmNvbmZsaWN0 bG9nZGVzdCk7CisKKwkJCQkJaWYgKG9wdHMuY29uZmxpY3Rsb2dkZXN0ICE9IG9sZF9kZXN0KQor CQkJCQl7CisJCQkJCQlib29sCQl1cGRhdGVfcmVsaWQ7CisJCQkJCQlPaWQJCQlyZWxpZCA9IElu dmFsaWRPaWQ7CisKKwkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGlj dGxvZ2Rlc3QgLSAxXSA9CisJCQkJCQkJQ1N0cmluZ0dldFRleHREYXR1bShDb25mbGljdExvZ0Rl c3ROYW1lc1tvcHRzLmNvbmZsaWN0bG9nZGVzdF0pOworCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19z dWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0gPSB0cnVlOworCisJCQkJCQl1cGRh dGVfcmVsaWQgPSBhbHRlcl9zdWJfY29uZmxpY3RfbG9nX2Rlc3Qoc3ViLAorCQkJCQkJCQkJCQkJ CQkJCSAgIG9sZF9kZXN0LAorCQkJCQkJCQkJCQkJCQkJCSAgIG9wdHMuY29uZmxpY3Rsb2dkZXN0 LAorCQkJCQkJCQkJCQkJCQkJCSAgICZyZWxpZCk7CisJCQkJCQlpZiAodXBkYXRlX3JlbGlkKQor CQkJCQkJeworCQkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxv Z3JlbGlkIC0gMV0gPQorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwkJCQkJCQly ZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQor CQkJCQkJCQl0cnVlOworCQkJCQkJfQorCQkJCQl9CisJCQkJfQorCiAJCQkJdXBkYXRlX3R1cGxl ID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTIyNjAsNiArMjQxMiw1MSBAQCBBbHRlclN1 YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3Rt dCwKIAlyZXR1cm4gbXlzZWxmOwogfQogCisvKgorICogRHJvcCBzdWJzY3JpcHRpb24ncyBjb25m bGljdCBsb2cgdGFibGUKKyAqCisgKiBUaGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIHJlZ2lzdGVy ZWQgYXMgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSBvZiB0aGUKKyAqIHN1YnNjcmlwdGlvbi4gVGhp cyBmdW5jdGlvbiByZW1vdmVzIHRoZSBkZXBlbmRlbmN5IGJ5IHBlcmZvcm1pbmcgYQorICogY2Fz Y2FkaW5nIGRlbGV0aW9uIG9uIHRoZSBzdWJzY3JpcHRpb24gb2JqZWN0LCB3aGljaCBpbiB0dXJu IGRyb3BzIHRoZQorICogYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUuCisgKgorICogVGhp cyBpcyB1c2VkIHRvIGNsZWFuIHVwIGNvbmZsaWN0IGxvZyB0YWJsZXMgdGhhdCBhcmUgbm8gbG9u Z2VyIHJlcXVpcmVkLAorICogcHJldmVudGluZyBhY2N1bXVsYXRpb24gb2Ygc3RhbGUgb3Igb3Jw aGFuZWQgcmVsYXRpb25zLgorICoKKyAqIE5PVEU6CisgKiBPbmx5IGNvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIGN1cnJlbnRseSBtYW5hZ2VkIHZpYSB0aGlzIGludGVybmFsIGRlcGVuZGVuY3kKKyAq IG1lY2hhbmlzbS4KKyAqLworc3RhdGljIHZvaWQKK2Ryb3Bfc3ViX2NvbmZsaWN0X2xvZ190YWJs ZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsIE9pZCBzdWJjb25mbGljdGxvZ3JlbGlkKQorewor CS8qIERyb3AgYW55IGRlcGVuZGVudCBjb25mbGljdCBsb2cgdGFibGUgKi8KKwlpZiAoT2lkSXNW YWxpZChzdWJjb25mbGljdGxvZ3JlbGlkKSkKKwl7CisJCU9iamVjdEFkZHJlc3Mgb2JqZWN0Owor CQljaGFyIAkJICpjb25mbGljdHJlbG5hbWU7CisKKwkJY29uZmxpY3RyZWxuYW1lID0gZ2V0X3Jl bF9uYW1lKHN1YmNvbmZsaWN0bG9ncmVsaWQpOworCQlpZiAoY29uZmxpY3RyZWxuYW1lID09IE5V TEwpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcmVsYXRpb24gJXUi LAorCQkJCSBzdWJjb25mbGljdGxvZ3JlbGlkKTsKKworCQkvKgorCQkgKiBCeSB1c2luZyBQRVJG T1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwsIHdlIGVuc3VyZSB0aGF0IG9ubHkgdGhlCisJCSAq IGNvbmZsaWN0IGxvZyB0YWJsZSBpcyBkZWxldGVkIHdoaWxlIHRoZSBzdWJzY3JpcHRpb24gcmVt YWlucy4KKwkJICovCisJCU9iamVjdEFkZHJlc3NTZXQob2JqZWN0LCBTdWJzY3JpcHRpb25SZWxh dGlvbklkLCBzdWJpZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqZWN0LCBEUk9QX0NBU0NBREUs CisJCQkJCQlQRVJGT1JNX0RFTEVUSU9OX0lOVEVSTkFMIHwKKwkJCQkJCVBFUkZPUk1fREVMRVRJ T05fU0tJUF9PUklHSU5BTCk7CisKKwkJZXJlcG9ydChOT1RJQ0UsCisJCQkJZXJybXNnKCJkcm9w cGVkIGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIgZm9yIHN1YnNjcmlwdGlvbiBcIiVzXCIiLAor CQkJCQkJZ2V0X3F1YWxpZmllZF9vYmpuYW1lKFBHX0NPTkZMSUNUX05BTUVTUEFDRSwgY29uZmxp Y3RyZWxuYW1lKSwKKwkJCQkJCXN1Ym5hbWUpKTsKKwl9Cit9CisKIC8qCiAgKiBEcm9wIGEgc3Vi c2NyaXB0aW9uCiAgKi8KQEAgLTIyNzEsNiArMjQ2OCw3IEBAIERyb3BTdWJzY3JpcHRpb24oRHJv cFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlIZWFwVHVwbGUJdHVw OwogCU9pZAkJCXN1YmlkOwogCU9pZAkJCXN1Ym93bmVyOworCU9pZAkJCXN1YmNvbmZsaWN0bG9n cmVsaWQ7CiAJRGF0dW0JCWRhdHVtOwogCWJvb2wJCWlzbnVsbDsKIAljaGFyCSAgICpzdWJuYW1l OwpAQCAtMjMxNiw2ICsyNTE0LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCWZvcm0gPSAoRm9ybV9wZ19zdWJzY3JpcHRp b24pIEdFVFNUUlVDVCh0dXApOwogCXN1YmlkID0gZm9ybS0+b2lkOwogCXN1Ym93bmVyID0gZm9y bS0+c3Vib3duZXI7CisJc3ViY29uZmxpY3Rsb2dyZWxpZCA9IGZvcm0tPnN1YmNvbmZsaWN0bG9n cmVsaWQ7CiAJbXVzdF91c2VfcGFzc3dvcmQgPSAhc3VwZXJ1c2VyX2FyZyhzdWJvd25lcikgJiYg Zm9ybS0+c3VicGFzc3dvcmRyZXF1aXJlZDsKIAogCS8qIG11c3QgYmUgb3duZXIgKi8KQEAgLTI0 NzAsNiArMjY2OSw4IEBAIERyb3BTdWJzY3JpcHRpb24oRHJvcFN1YnNjcmlwdGlvblN0bXQgKnN0 bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlkZWxldGVEZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3Jp cHRpb25SZWxhdGlvbklkLCBzdWJpZCwgZmFsc2UpOwogCWRlbGV0ZVNoYXJlZERlcGVuZGVuY3lS ZWNvcmRzRm9yKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1YmlkLCAwKTsKIAorCWRyb3Bfc3Vi X2NvbmZsaWN0X2xvZ190YWJsZShzdWJpZCwgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dyZWxpZCk7 CisKIAkvKiBSZW1vdmUgYW55IGFzc29jaWF0ZWQgcmVsYXRpb24gc3luY2hyb25pemF0aW9uIHN0 YXRlcy4gKi8KIAlSZW1vdmVTdWJzY3JpcHRpb25SZWwoc3ViaWQsIEludmFsaWRPaWQpOwogCkBA IC0yNzA1LDYgKzI5MDYsMTEgQEAgQWx0ZXJTdWJzY3JpcHRpb25Pd25lcl9pbnRlcm5hbChSZWxh dGlvbiByZWwsIEhlYXBUdXBsZSB0dXAsIE9pZCBuZXdPd25lcklkKQogCWZvcm0tPnN1Ym93bmVy ID0gbmV3T3duZXJJZDsKIAlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIHR1 cCk7CiAKKwkvKiBVcGRhdGUgb3duZXIgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBpZiBpdCBl eGlzdHMuICovCisJaWYgKE9pZElzVmFsaWQoZm9ybS0+c3ViY29uZmxpY3Rsb2dyZWxpZCkpCisJ CUFURXhlY0NoYW5nZU93bmVyKGZvcm0tPnN1YmNvbmZsaWN0bG9ncmVsaWQsIG5ld093bmVySWQs IHRydWUsCisJCQkJCQkgIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworCiAJLyogVXBkYXRlIG93bmVy IGRlcGVuZGVuY3kgcmVmZXJlbmNlICovCiAJY2hhbmdlRGVwZW5kZW5jeU9uT3duZXIoU3Vic2Ny aXB0aW9uUmVsYXRpb25JZCwKIAkJCQkJCQlmb3JtLT5vaWQsCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCmluZGV4IDI2NWRjZmU3ZmRhLi45YWYzYjYxNmJmYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKQEAgLTI0NTcsOSArMjQ1NywxMSBAQCB0cnVuY2F0ZV9jaGVja19yZWwoT2lkIHJlbGlk LCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCSAqIHBnX2xhcmdlb2JqZWN0IGFuZCBwZ19sYXJn ZW9iamVjdF9tZXRhZGF0YSB0byBiZSB0cnVuY2F0ZWQgYXMgcGFydCBvZgogCSAqIHBnX3VwZ3Jh ZGUsIGJlY2F1c2Ugd2UgbmVlZCB0byBjaGFuZ2UgaXRzIHJlbGZpbGVub2RlIHRvIG1hdGNoIHRo ZSBvbGQKIAkgKiBjbHVzdGVyLCBhbmQgYWxsb3dpbmcgYSBUUlVOQ0FURSBjb21tYW5kIHRvIGJl IGV4ZWN1dGVkIGlzIHRoZSBlYXNpZXN0Ci0JICogd2F5IG9mIGRvaW5nIHRoYXQuCisJICogd2F5 IG9mIGRvaW5nIHRoYXQuIFdlIGFsc28gYWxsb3cgVFJVTkNBVEUgb24gdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZXMsCisJICogdG8gcGVybWl0IHVzZXJzIHRvIG1hbnVhbGx5IHBydW5lIGNvbmZsaWN0 IGRhdGEgdG8gbWFuYWdlIGRpc2sgc3BhY2UuCiAJICovCi0JaWYgKCFhbGxvd1N5c3RlbVRhYmxl TW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCByZWx0dXBsZSkKKwlpZiAoIWFsbG93U3lzdGVt VGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQsIHJlbHR1cGxlKSAmJgorCQkhSXNDb25m bGljdExvZ1RhYmxlQ2xhc3MocmVsdHVwbGUpCiAJCSYmICghSXNCaW5hcnlVcGdyYWRlIHx8CiAJ CQkocmVsaWQgIT0gTGFyZ2VPYmplY3RSZWxhdGlvbklkICYmCiAJCQkgcmVsaWQgIT0gTGFyZ2VP YmplY3RNZXRhZGF0YVJlbGF0aW9uSWQpKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDRi MzBmNzY4NjgwLi5mODdlZjY1ZjM0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0xMTg3 LDYgKzExODcsMjQgQEAgQ2hlY2tWYWxpZFJlc3VsdFJlbChSZXN1bHRSZWxJbmZvICpyZXN1bHRS ZWxJbmZvLCBDbWRUeXBlIG9wZXJhdGlvbiwKIAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShyZXN1bHRSZWwpKSkpOwogCQkJYnJlYWs7CiAJfQorCisJLyoKKwkgKiBDb25mbGljdCBsb2cg dGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0gdG8gcmVjb3JkIGxvZ2ljYWwKKwkgKiBy ZXBsaWNhdGlvbiBjb25mbGljdHMuICBXZSBhbGxvdyBERUxFVEUgYW5kIFRSVU5DQVRFIHRvIHBl cm1pdCB1c2VycyB0bworCSAqIG1hbnVhbGx5IHBydW5lIHRoZXNlIGxvZ3MsIGJ1dCBtYW51YWwg ZGF0YSBpbnNlcnRpb24gb3IgbW9kaWZpY2F0aW9uCisJICogKElOU0VSVCwgVVBEQVRFLCBNRVJH RSkgaXMgcHJvaGliaXRlZCB0byBtYWludGFpbiB0aGUgaW50ZWdyaXR5IG9mIHRoZQorCSAqIHN5 c3RlbS1nZW5lcmF0ZWQgbG9ncy4KKwkgKgorCSAqIFNpbmNlIFRSVU5DQVRFIGlzIGhhbmRsZWQg YXMgYSBzZXBhcmF0ZSB1dGlsaXR5IGNvbW1hbmQsIHdlIG9ubHkgbmVlZAorCSAqIHRvIGV4cGxp Y2l0bHkgcGVybWl0IENNRF9ERUxFVEUgaGVyZS4KKwkgKi8KKwlpZiAoSXNDb25mbGljdExvZ1Rh YmxlTmFtZXNwYWNlKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlc3VsdFJlbCkpICYmCisJCW9wZXJh dGlvbiAhPSBDTURfREVMRVRFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImNhbm5vdCBtb2RpZnkgb3IgaW5z ZXJ0IGRhdGEgaW50byBjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlc3VsdFJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIkNvbmZsaWN0IGxv ZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIGFuZCBvbmx5IHN1cHBvcnQgY2xlYW51cCB2aWEg REVMRVRFIG9yIFRSVU5DQVRFLiIpKSk7CiB9CiAKIC8qCkBAIC0xMjU4LDYgKzEyNzYsMTYgQEAg Q2hlY2tWYWxpZFJvd01hcmtSZWwoUmVsYXRpb24gcmVsLCBSb3dNYXJrVHlwZSBtYXJrVHlwZSkK IAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogCQkJYnJlYWs7CiAJfQor CisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0g dG8gcmVjb3JkIGxvZ2ljYWwKKwkgKiByZXBsaWNhdGlvbiBjb25mbGljdHMuCisJICovCisJaWYg KElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZWwpKSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBF KSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbG9jayByb3dzIGluIHRoZSBjb25mbGljdCBsb2cgdGFi bGUgXCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CiB9CiAK IC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0 LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKaW5kZXggMWY4 ZDY3ZmRkOTAuLjRhNjQ3Mjc3ZDFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9jb25mbGljdC5jCkBAIC0xNyw2ICsxNywxMCBAQAogI2luY2x1ZGUgImFjY2Vzcy9jb21taXRf dHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGVh bS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0u aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cv dG9hc3RpbmcuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgInBn c3RhdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCkBAIC0yNCw2ICsyOCw1 MCBAQAogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgogCisvKgorICogU3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgdGhlIHN1cHBvcnRlZCBj b25mbGljdCBsb2dnaW5nIGRlc3RpbmF0aW9ucy4KKyAqLworY29uc3QgY2hhciAqY29uc3QgQ29u ZmxpY3RMb2dEZXN0TmFtZXNbXSA9IHsKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfTE9HXSA9ICJsb2ci LAorCVtDT05GTElDVF9MT0dfREVTVF9UQUJMRV0gPSAidGFibGUiLAorCVtDT05GTElDVF9MT0df REVTVF9BTExdID0gImFsbCIKK307CisKK1N0YXRpY0Fzc2VydERlY2wobGVuZ3Rob2YoQ29uZmxp Y3RMb2dEZXN0TmFtZXMpID09IENPTkZMSUNUX0xPR19ERVNUX0FMTCArIDEsCisJCQkJICJDb25m bGljdExvZ0Rlc3ROYW1lcyBsZW5ndGggbWlzbWF0Y2giKTsKKworCisvKiBTdHJ1Y3R1cmUgdG8g aG9sZCBtZXRhZGF0YSBmb3Igb25lIGNvbHVtbiBvZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlICov Cit0eXBlZGVmIHN0cnVjdCBDb25mbGljdExvZ0NvbHVtbkRlZgoreworCWNvbnN0IGNoYXIgKmF0 dG5hbWU7ICAgIC8qIENvbHVtbiBuYW1lICovCisJT2lkICAgICAgICAgYXR0dHlwaWQ7ICAgLyog RGF0YSB0eXBlIE9JRCAqLworfSBDb25mbGljdExvZ0NvbHVtbkRlZjsKKworLyoKKyAqIFNjaGVt YSBkZWZpbml0aW9uIGZvciBjb25mbGljdCBsb2cgdGFibGVzLgorICoKKyAqIERlZmluZXMgdGhl IGZpeGVkIHNjaGVtYSBvZiB0aGUgcGVyLXN1YnNjcmlwdGlvbiBjb25mbGljdCBsb2cgdGFibGUg Y3JlYXRlZAorICogaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZS4gRWFjaCBlbnRyeSBzcGVj aWZpZXMgdGhlIGNvbHVtbiBuYW1lIGFuZCBpdHMKKyAqIHR5cGUgT0lEOyB0aGUgdGFibGUgaXMg Y3JlYXRlZCBpbiB0aGlzIGNvbHVtbiBvcmRlciBieQorICogY3JlYXRlX2NvbmZsaWN0X2xvZ190 YWJsZSgpLgorICovCitzdGF0aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgQ29uZmxpY3RM b2dTY2hlbWFbXSA9IHsKKwl7IC5hdHRuYW1lID0gInJlbGlkIiwgICAgICAgICAgICAuYXR0dHlw aWQgPSBPSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInNjaGVtYW5hbWUiLCAgICAgICAuYXR0dHlw aWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZWxuYW1lIiwgICAgICAgICAgLmF0dHR5 cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAiY29uZmxpY3RfdHlwZSIsICAgIC5hdHR0 eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV94aWQiLCAgICAgICAuYXR0 dHlwaWQgPSBYSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9jb21taXRfbHNuIiwuYXR0 dHlwaWQgPSBMU05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9jb21taXRfdHMiLCAuYXR0 dHlwaWQgPSBUSU1FU1RBTVBUWk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVtb3RlX29yaWdpbiIs ICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV90dXBsZSIs ICAgICAuYXR0dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZXBsaWNhX2lkZW50 aXR5IiwgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAibG9jYWxfY29uZmxp Y3RzIiwgIC5hdHR0eXBpZCA9IEpTT05BUlJBWU9JRCB9Cit9OworCisjZGVmaW5lIE5VTV9DT05G TElDVF9BVFRSUyBsZW5ndGhvZihDb25mbGljdExvZ1NjaGVtYSkKKwogc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IENvbmZsaWN0VHlwZU5hbWVzW10gPSB7CiAJW0NUX0lOU0VSVF9FWElTVFNdID0g Imluc2VydF9leGlzdHMiLAogCVtDVF9VUERBVEVfT1JJR0lOX0RJRkZFUlNdID0gInVwZGF0ZV9v cmlnaW5fZGlmZmVycyIsCkBAIC01NCw2ICsxMDIsMTMzIEBAIHN0YXRpYyB2b2lkIGdldF90dXBs ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogc3RhdGljIGNo YXIgKmJ1aWxkX2luZGV4X3ZhbHVlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2Fs cmVsLAogCQkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNsb3QsIE9pZCBpbmRleG9pZCk7CiAKKy8q CisgKiBCdWlsZHMgdGhlIFR1cGxlRGVzYyBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAq Lworc3RhdGljIFR1cGxlRGVzYworY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZV90dXBkZXNjKHZv aWQpCit7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisKKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVU dXBsZURlc2MoTlVNX0NPTkZMSUNUX0FUVFJTKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgTlVN X0NPTkZMSUNUX0FUVFJTOyBpKyspCisJCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCBpICsg MSwKKwkJCQkJCSAgIENvbmZsaWN0TG9nU2NoZW1hW2ldLmF0dG5hbWUsCisJCQkJCQkgICBDb25m bGljdExvZ1NjaGVtYVtpXS5hdHR0eXBpZCwKKwkJCQkJCSAgIC0xLCAwKTsKKworCVR1cGxlRGVz Y0ZpbmFsaXplKHR1cGRlc2MpOworCisJcmV0dXJuIHR1cGRlc2M7Cit9CisKKy8qCisgKiBDcmVh dGUgYSBzdHJ1Y3R1cmVkIGNvbmZsaWN0IGxvZyB0YWJsZSBmb3IgYSBzdWJzY3JpcHRpb24uCisg KgorICogVGhlIHRhYmxlIGlzIGNyZWF0ZWQgd2l0aGluIHRoZSBzeXN0ZW0tbWFuYWdlZCAncGdf Y29uZmxpY3QnIG5hbWVzcGFjZSB0bworICogcHJldmVudCB1c2VycyBmcm9tIG1hbnVhbGx5IGRy b3BwaW5nIG9yIGFsdGVyaW5nIGl0LiAgVGhpcyBhbHNvIHByZXZlbnRzCisgKiBhY2NpZGVudGFs IG5hbWUgY29sbGlzaW9ucyB3aXRoIHVzZXItY3JlYXRlZCB0YWJsZXMgd2l0aCB0aGUgc2FtZSBu YW1lLgorICoKKyAqIFRoZSB0YWJsZSBuYW1lIGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IHVz aW5nIHRoZSBzdWJzY3JpcHRpb24ncyBPSUQKKyAqIChlLmcuLCAicGdfY29uZmxpY3RfbG9nXzxz dWJpZD4iKSB0byBlbnN1cmUgdW5pcXVlbmVzcyB3aXRoaW4gdGhlCisgKiBjbHVzdGVyIGFuZCB0 byBhdm9pZCBjb2xsaXNpb25zIGR1cmluZyBzdWJzY3JpcHRpb24gcmVuYW1lcy4KKyAqLworT2lk CitjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3VibmFtZSwgT2lk IHN1Ym93bmVyKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCU9pZAkJCXJlbGlkOworCWNoYXIg ICAgCXJlbG5hbWVbTkFNRURBVEFMRU5dOworCisJc25wcmludGYocmVsbmFtZSwgTkFNRURBVEFM RU4sICJwZ19jb25mbGljdF9sb2dfJXUiLCBzdWJpZCk7CisKKwkvKgorCSAqIENoZWNrIGZvciBh biBleGlzdGluZyB0YWJsZSB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gdGhlIHBnX2NvbmZsaWN0IG5h bWVzcGFjZS4KKwkgKiBBIGNvbGxpc2lvbiBzaG91bGQgbm90IG9jY3VyIHVuZGVyIG5vcm1hbCBv cGVyYXRpb24sIGJ1dCB3ZSBtdXN0IGhhbmRsZSBjYXNlcworCSAqIHdoZXJlIGEgdGFibGUgaGFz IGJlZW4gY3JlYXRlZCBtYW51YWxseSB3aGVuIGFsbG93X3N5c3RlbV90YWJsZXNfbW9kcyBpcwor CSAqIE9OLgorCSAqLworCWlmIChPaWRJc1ZhbGlkKGdldF9yZWxuYW1lX3JlbGlkKHJlbG5hbWUs IFBHX0NPTkZMSUNUX05BTUVTUEFDRSkpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfRFVQTElDQVRFX1RBQkxFKSwKKwkJCQkgZXJybXNnKCJjb25mbGljdCBsb2cgdGFi bGUgcGdfY29uZmxpY3QuXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgcmVsbmFtZSksCisJCQkJIGVy cmhpbnQoIlRvIHByb2NlZWQsIGRyb3AgdGhlIGV4aXN0aW5nIHRhYmxlIGFuZCByZXRyeS4iKSkp OworCisJLyogQnVpbGQgdGhlIHR1cGxlIGRlc2NyaXB0b3IgZm9yIHRoZSBuZXcgdGFibGUuICov CisJdHVwZGVzYyA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVfdHVwZGVzYygpOworCisJLyog Q3JlYXRlIGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KKwlyZWxpZCA9IGhlYXBfY3JlYXRlX3dpdGhf Y2F0YWxvZyhyZWxuYW1lLAorCQkJCQkJCQkJIFBHX0NPTkZMSUNUX05BTUVTUEFDRSwKKwkJCQkJ CQkJCSAwLAkvKiB0YWJsZXNwYWNlICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsaWQg Ki8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWx0eXBlaWQgKi8KKwkJCQkJCQkJCSBJbnZh bGlkT2lkLCAvKiByZWxvZnR5cGVpZCAqLworCQkJCQkJCQkJIHN1Ym93bmVyLAorCQkJCQkJCQkJ IEhFQVBfVEFCTEVfQU1fT0lELAorCQkJCQkJCQkJIHR1cGRlc2MsCisJCQkJCQkJCQkgTklMLAor CQkJCQkJCQkJIFJFTEtJTkRfUkVMQVRJT04sCisJCQkJCQkJCQkgUkVMUEVSU0lTVEVOQ0VfUEVS TUFORU5ULAorCQkJCQkJCQkJIGZhbHNlLCAvKiBzaGFyZWRfcmVsYXRpb24gKi8KKwkJCQkJCQkJ CSBmYWxzZSwgLyogbWFwcGVkX3JlbGF0aW9uICovCisJCQkJCQkJCQkgT05DT01NSVRfTk9PUCwK KwkJCQkJCQkJCSAoRGF0dW0pIDAsIC8qIHJlbG9wdGlvbnMgKi8KKwkJCQkJCQkJCSBmYWxzZSwg LyogdXNlX3VzZXJfYWNsICovCisJCQkJCQkJCQkgdHJ1ZSwgLyogYWxsb3dfc3lzdGVtX3RhYmxl X21vZHMgKi8KKwkJCQkJCQkJCSB0cnVlLCAvKiBpc19pbnRlcm5hbCAqLworCQkJCQkJCQkJIElu dmFsaWRPaWQsIC8qIHJlbHJld3JpdGUgKi8KKwkJCQkJCQkJCSBOVUxMKTsgLyogdHlwYWRkcmVz cyAqLworCUFzc2VydChPaWRJc1ZhbGlkKHJlbGlkKSk7CisKKwkvKiBSZWxlYXNlIHR1cGxlIGRl c2NyaXB0b3IgbWVtb3J5LiAqLworCUZyZWVUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKgorCSAq IFdlIG11c3QgYnVtcCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1ha2UgdGhlIG5ld2x5LWNyZWF0 ZWQgcmVsYXRpb24KKwkgKiB0dXBsZSB2aXNpYmxlIGZvciBvcGVuaW5nLgorCSAqLworCUNvbW1h bmRDb3VudGVySW5jcmVtZW50KCk7CisKKwkvKgorCSAqIENyZWF0ZSBhIFRPQVNUIHRhYmxlIGZv ciB0aGUgY29uZmxpY3QgbG9nIHRvIHN1cHBvcnQgb3V0LW9mLWxpbmUgc3RvcmFnZQorCSAqIG9m IGxhcmdlIEpTT04gZGF0YS4KKwkgKi8KKwlOZXdSZWxhdGlvbkNyZWF0ZVRvYXN0VGFibGUocmVs aWQsIChEYXR1bSkgMCk7CisKKwllcmVwb3J0KE5PVElDRSwKKwkJCShlcnJtc2coImNyZWF0ZWQg Y29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiIsCisJCQkJ CWdldF9xdWFsaWZpZWRfb2JqbmFtZShQR19DT05GTElDVF9OQU1FU1BBQ0UsIHJlbG5hbWUpLAor CQkJCQlzdWJuYW1lKSkpOworCisJcmV0dXJuIHJlbGlkOworfQorCisvKgorICogQ29udmVydCB0 aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgY29uZmxpY3QgbG9nZ2luZyBkZXN0aW5hdGlv biB0byBpdHMKKyAqIGNvcnJlc3BvbmRpbmcgZW51bSB2YWx1ZS4KKyAqLworQ29uZmxpY3RMb2dE ZXN0CitHZXRDb25mbGljdExvZ0Rlc3QoY29uc3QgY2hhciAqZGVzdCkKK3sKKwkvKiBFbXB0eSBz dHJpbmcgb3IgTlVMTCBkZWZhdWx0cyB0byBMT0cuICovCisJaWYgKGRlc3QgPT0gTlVMTCB8fCBk ZXN0WzBdID09ICdcMCcgfHwgcGdfc3RyY2FzZWNtcChkZXN0LCAibG9nIikgPT0gMCkKKwkJcmV0 dXJuIENPTkZMSUNUX0xPR19ERVNUX0xPRzsKKworCWlmIChwZ19zdHJjYXNlY21wKGRlc3QsICJ0 YWJsZSIpID09IDApCisJCXJldHVybiBDT05GTElDVF9MT0dfREVTVF9UQUJMRTsKKworCWlmIChw Z19zdHJjYXNlY21wKGRlc3QsICJhbGwiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RF U1RfQUxMOworCisJLyogVW5yZWNvZ25pemVkIHN0cmluZy4gKi8KKwllcmVwb3J0KEVSUk9SLAor CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkgZXJybXNn KCJ1bnJlY29nbml6ZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHZhbHVlOiBcIiVzXCIiLCBk ZXN0KSwKKwkJCSBlcnJoaW50KCJWYWxpZCB2YWx1ZXMgYXJlIFwibG9nXCIsIFwidGFibGVcIiwg YW5kIFwiYWxsXCIuIikpKTsKK30KKwogLyoKICAqIEdldCB0aGUgeG1pbiBhbmQgY29tbWl0IHRp bWVzdGFtcCBkYXRhIChvcmlnaW4gYW5kIHRpbWVzdGFtcCkgYXNzb2NpYXRlZAogICogd2l0aCB0 aGUgcHJvdmlkZWQgbG9jYWwgcm93LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRl eCAwMzZkZTVmNzllZi4uZTUyZDRjY2QwODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNo ZS5jCkBAIC0zNzA5LDcgKzM3MDksNyBAQCBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcChPaWQg bnNwaWQpCiAgKgkJb2JqZWN0IGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlIElEIGFuZCBvYmplY3Qg bmFtZS4KICAqLwogY2hhciAqCi1nZXRfcXVhbGlmaWVkX29iam5hbWUoT2lkIG5zcGlkLCBjaGFy ICpvYmpuYW1lKQorZ2V0X3F1YWxpZmllZF9vYmpuYW1lKE9pZCBuc3BpZCwgY29uc3QgY2hhciAq b2JqbmFtZSkKIHsKIAljaGFyCSAgICpuc3BuYW1lOwogCWNoYXIJICAgKnJlc3VsdDsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMK aW5kZXggMTRjYjc5YzI2YmUuLjgwM2NhNDExMmQ0IDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRk Yi9pbml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAtMTgzOSw2ICsxODM5 LDEyIEBAIHNldHVwX3ByaXZpbGVnZXMoRklMRSAqY21kZmQpCiAJCQkJICAiICBBTkQgcmVsYWNs IElTIE5VTEw7XG5cbiIsCiAJCQkJICBlc2NhcGVfcXVvdGVzKHVzZXJuYW1lKSk7CiAJUEdfQ01E X1BVVFMoIkdSQU5UIFVTQUdFIE9OIFNDSEVNQSBwZ19jYXRhbG9nLCBwdWJsaWMgVE8gUFVCTElD O1xuXG4iKTsKKworCS8qCisJICogQWxsb3cgbm9uLXN1cGVydXNlciBzdWJzY3JpcHRpb24gb3du ZXJzIHRvIGFjY2VzcyB0aGVpciBhc3NvY2lhdGVkCisJICogY29uZmxpY3QgbG9nIHRhYmxlcyBp biB0aGUgcGdfY29uZmxpY3Qgc2NoZW1hLgorCSAqLworCVBHX0NNRF9QVVRTKCJHUkFOVCBVU0FH RSBPTiBTQ0hFTUEgcGdfY29uZmxpY3QgVE8gUFVCTElDO1xuXG4iKTsKIAlQR19DTURfUFVUUygi UkVWT0tFIEFMTCBPTiBwZ19sYXJnZW9iamVjdCBGUk9NIFBVQkxJQztcblxuIik7CiAJUEdfQ01E X1BVVFMoIklOU0VSVCBJTlRPIHBnX2luaXRfcHJpdnMgIgogCQkJCSIgIChvYmpvaWQsIGNsYXNz b2lkLCBvYmpzdWJpZCwgaW5pdHByaXZzLCBwcml2dHlwZSkiCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMK aW5kZXggZGU1NDdhOGNiMzcuLjY2ZWUxYjZjMmE0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBA IC0yMzc2LDggKzIzNzYsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwK IAkJQ09NUExFVEVfV0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQ VElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJ UFRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiU0VUIiwgIigiKSkKLQkJQ09NUExFVEVfV0lU SCgiYmluYXJ5IiwgImRpc2FibGVfb25fZXJyb3IiLCAiZmFpbG92ZXIiLAotCQkJCQkgICJtYXhf cmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIs ICJjb25mbGljdF9sb2dfZGVzdGluYXRpb24iLCAiZGlzYWJsZV9vbl9lcnJvciIsCisJCQkJCSAg ImZhaWxvdmVyIiwgIm1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAi cGFzc3dvcmRfcmVxdWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2Fz X293bmVyIiwgInNsb3RfbmFtZSIsICJzdHJlYW1pbmciLAogCQkJCQkgICJzeW5jaHJvbm91c19j b21taXQiLCAidHdvX3BoYXNlIik7CkBAIC0zOTYwLDggKzM5NjAsOCBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiV0lUSCAoIik7CiAJLyog Q29tcGxldGUgIkNSRUFURSBTVUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAq LwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueU4s ICJXSVRIIiwgIigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbm5lY3QiLCAiY29w eV9kYXRhIiwgImNyZWF0ZV9zbG90IiwKLQkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFi bGVkIiwgImZhaWxvdmVyIiwKKwkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiIsICJjb25uZWN0IiwgImNvcHlfZGF0YSIsCisJCQkJCSAgImNyZWF0ZV9z bG90IiwgImRpc2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsCiAJCQkJCSAg Im1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVx dWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNs b3RfbmFtZSIsICJzdHJlYW1pbmciLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9j YXRhbG9nLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaAppbmRleCBhOWQ2ZThlYTk4 Ni4uZmVhYjM5ODJjZjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCkBAIC0yNSw2ICsyNSw3IEBAIGV4 dGVybiBib29sIElzSW5wbGFjZVVwZGF0ZVJlbGF0aW9uKFJlbGF0aW9uIHJlbGF0aW9uKTsKIAog ZXh0ZXJuIGJvb2wgSXNTeXN0ZW1DbGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVw bGUpOwogZXh0ZXJuIGJvb2wgSXNUb2FzdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwor ZXh0ZXJuIGJvb2wgSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBs ZSk7CiAKIGV4dGVybiBib29sIElzQ2F0YWxvZ1JlbGF0aW9uT2lkKE9pZCByZWxpZCk7CiBleHRl cm4gYm9vbCBJc0NhdGFsb2dUZXh0VW5pcXVlSW5kZXhPaWQoT2lkIHJlbGlkKTsKQEAgLTMyLDYg KzMzLDcgQEAgZXh0ZXJuIGJvb2wgSXNJbnBsYWNlVXBkYXRlT2lkKE9pZCByZWxpZCk7CiAKIGV4 dGVybiBib29sIElzQ2F0YWxvZ05hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOwogZXh0ZXJuIGJv b2wgSXNUb2FzdE5hbWVzcGFjZShPaWQgbmFtZXNwYWNlSWQpOworZXh0ZXJuIGJvb2wgSXNDb25m bGljdExvZ1RhYmxlTmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCk7CiAKIGV4dGVybiBib29sIElz UmVzZXJ2ZWROYW1lKGNvbnN0IGNoYXIgKm5hbWUpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVz cGFjZS5kYXQKaW5kZXggMzA3NWUxNDJjNzMuLmI0NWNiOTM4M2E4IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19uYW1lc3BhY2UuZGF0CkBAIC0xOCw2ICsxOCw5IEBACiB7IG9pZCA9PiAnOTknLCBvaWRf c3ltYm9sID0+ICdQR19UT0FTVF9OQU1FU1BBQ0UnLAogICBkZXNjciA9PiAncmVzZXJ2ZWQgc2No ZW1hIGZvciBUT0FTVCB0YWJsZXMnLAogICBuc3BuYW1lID0+ICdwZ190b2FzdCcsIG5zcGFjbCA9 PiAnX251bGxfJyB9LAoreyBvaWQgPT4gJzEzODInLCBvaWRfc3ltYm9sID0+ICdQR19DT05GTElD VF9OQU1FU1BBQ0UnLAorICBkZXNjciA9PiAncmVzZXJ2ZWQgc2NoZW1hIGZvciBzdWJzY3JpcHRp b24tc3BlY2lmaWMgY29uZmxpY3QgbG9nIHRhYmxlcycsCisgIG5zcG5hbWUgPT4gJ3BnX2NvbmZs aWN0JywgbnNwYWNsID0+ICdfbnVsbF8nIH0sCiAjIHVwZGF0ZSBkdW1wTmFtZXNwYWNlKCkgaWYg Y2hhbmdpbmcgdGhpcyBkZXNjcgogeyBvaWQgPT4gJzIyMDAnLCBvaWRfc3ltYm9sID0+ICdQR19Q VUJMSUNfTkFNRVNQQUNFJywKICAgZGVzY3IgPT4gJ3N0YW5kYXJkIHB1YmxpYyBzY2hlbWEnLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggNDg5NDQyMDE4ODkuLjQzMzhl NjYyMGI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKQEAgLTk1LDcgKzk1 LDE2IEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25J ZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAJT2lkCQkJc3Vic2VydmVyIEJLSV9MT09L VVBfT1BUKHBnX2ZvcmVpZ25fc2VydmVyKTsJLyogSWYgY29ubmVjdGlvbiB1c2VzCiAJCQkJCQkJ CQkJCQkJCQkJICogc2VydmVyICovCiAKKwlPaWQJCQlzdWJjb25mbGljdGxvZ3JlbGlkOyAvKiBS ZWxpZCBvZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiAqLwogI2lmZGVmIENBVEFMT0dfVkFSTEVO CQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisJLyoKKwkgKiBTdHJh dGVneSBmb3IgbG9nZ2luZyByZXBsaWNhdGlvbiBjb25mbGljdHM6CisJICogJ2xvZycgLSBzZXJ2 ZXIgbG9nIG9ubHksCisJICogJ3RhYmxlJyAtIGNvbmZsaWN0IGxvZyB0YWJsZSBvbmx5LAorCSAq ICdhbGwnIC0gYm90aCBsb2cgYW5kIHRhYmxlLgorCSAqLworCXRleHQJCXN1YmNvbmZsaWN0bG9n ZGVzdCBCS0lfRk9SQ0VfTk9UX05VTEw7CisKIAkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUg cHVibGlzaGVyICovCiAJdGV4dAkJc3ViY29ubmluZm87CS8qIFNldCBpZiBjb25uZWN0aW5nIHdp dGggY29ubmVjdGlvbiBzdHJpbmcgKi8KIApAQCAtMTY0LDYgKzE3Myw3IEBAIHR5cGVkZWYgc3Ry dWN0IFN1YnNjcmlwdGlvbgogCQkJCQkJCQkJICogYW5kIHRoZSByZXRlbnRpb24gZHVyYXRpb24g aGFzIG5vdAogCQkJCQkJCQkJICogZXhjZWVkZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hl bgogCQkJCQkJCQkJICogZGVmaW5lZCAqLworCU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CS8qIGNv bmZsaWN0IGxvZyB0YWJsZSBPaWQgKi8KIAljaGFyCSAgICpjb25uaW5mbzsJCS8qIENvbm5lY3Rp b24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAljaGFyCSAgICpzbG90bmFtZTsJCS8qIE5h bWUgb2YgdGhlIHJlcGxpY2F0aW9uIHNsb3QgKi8KIAljaGFyCSAgICpzeW5jY29tbWl0OwkJLyog U3luY2hyb25vdXMgY29tbWl0IHNldHRpbmcgZm9yIHdvcmtlciAqLwpAQCAtMTcxLDYgKzE4MSw3 IEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGlvbgogCUxpc3QJICAgKnB1YmxpY2F0aW9uczsJ LyogTGlzdCBvZiBwdWJsaWNhdGlvbiBuYW1lcyB0byBzdWJzY3JpYmUgdG8gKi8KIAljaGFyCSAg ICpvcmlnaW47CQkJLyogT25seSBwdWJsaXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUKIAkJ CQkJCQkJICogc3BlY2lmaWVkIG9yaWdpbiAqLworCWNoYXIJICAgKmNvbmZsaWN0bG9nZGVzdDsJ LyogQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uICovCiB9IFN1YnNjcmlwdGlvbjsKIAogI2lmZGVm IEVYUE9TRV9UT19DTElFTlRfQ09ERQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vY29uZmxpY3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKaW5kZXgg MmQ5ZGJjZjRkMGQuLmEwMTdlMWU2Y2I1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9jb25mbGljdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgK QEAgLTEwLDYgKzEwLDcgQEAKICNkZWZpbmUgQ09ORkxJQ1RfSAogCiAjaW5jbHVkZSAiYWNjZXNz L3hsb2dkZWZzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiZGF0 YXR5cGUvdGltZXN0YW1wLmgiCiAjaW5jbHVkZSAibm9kZXMvcGdfbGlzdC5oIgogCkBAIC03OSw2 ICs4MCwzMiBAQCB0eXBlZGVmIHN0cnVjdCBDb25mbGljdFR1cGxlSW5mbwogCQkJCQkJCQkgKiBj b25mbGljdGluZyBsb2NhbCByb3cgb2NjdXJyZWQgKi8KIH0gQ29uZmxpY3RUdXBsZUluZm87CiAK Ky8qCisgKiBEZWZpbmVzIHdoZXJlIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QgZGV0YWls cyBhcmUgcmVjb3JkZWQuCisgKgorICogV2hpbGUgc3RvcmVkIGFzIGEgdGV4dC1iYXNlZCBhcnJh eS9zdHJpbmcgaW4KKyAqIHBnX3N1YnNjcmlwdGlvbi5zdWJjb25mbGljdGxvZ2Rlc3QgZm9yIHVz ZXIgcmVhZGFiaWxpdHkgYW5kIGV4dGVuc2liaWxpdHksCisgKiB3ZSBtYXAgdGhlc2UgdG8gYW4g aW50ZXJuYWwgZW51bSB0byBhbGxvdyBmb3IgZWZmaWNpZW50IGNoZWNrcy4KKyAqLwordHlwZWRl ZiBlbnVtIENvbmZsaWN0TG9nRGVzdAoreworCUNPTkZMSUNUX0xPR19ERVNUX0xPRyA9IDAsCS8q IEVtaXQgdG8gc2VydmVyIGxvZ3MgKi8KKwlDT05GTElDVF9MT0dfREVTVF9UQUJMRSwJLyogSW5z ZXJ0IGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCUNPTkZMSUNUX0xPR19ERVNUX0FM TAkJLyogQm90aCBsb2cgYW5kIHRhYmxlICovCit9IENvbmZsaWN0TG9nRGVzdDsKKworI2RlZmlu ZSBDT05GTElDVFNfTE9HR0VEX1RPX1RBQkxFKGRlc3QpIFwKKwkoKGRlc3QgPT0gQ09ORkxJQ1Rf TE9HX0RFU1RfVEFCTEUpIHx8IChkZXN0ID09IENPTkZMSUNUX0xPR19ERVNUX0FMTCkpCisjZGVm aW5lIENPTkZMSUNUU19MT0dHRURfVE9fTE9HKGRlc3QpIFwKKwkoKGRlc3QgPT0gQ09ORkxJQ1Rf TE9HX0RFU1RfTE9HKSB8fCAoZGVzdCA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwpKQorCisvKgor ICogQXJyYXkgbWFwcGluZyBmb3IgY29udmVydGluZyBpbnRlcm5hbCBlbnVtIHRvIHN0cmluZy4K KyAqLworZXh0ZXJuIFBHRExMSU1QT1JUIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0TG9nRGVz dE5hbWVzW107CisKK2V4dGVybiBPaWQgY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3Vi aWQsIGNoYXIgKnN1Ym5hbWUsIE9pZCBzdWJvd25lcik7CitleHRlcm4gQ29uZmxpY3RMb2dEZXN0 IEdldENvbmZsaWN0TG9nRGVzdChjb25zdCBjaGFyICpkZXN0KTsKIGV4dGVybiBib29sIEdldFR1 cGxlVHJhbnNhY3Rpb25JbmZvKFR1cGxlVGFibGVTbG90ICpsb2NhbHNsb3QsCiAJCQkJCQkJCQlU cmFuc2FjdGlvbklkICp4bWluLAogCQkJCQkJCQkJUmVwbE9yaWdpbklkICpsb2NhbG9yaWdpbiwK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmgKaW5kZXggODY1OTgwY2IwZjEuLjUzYzJhOWU4NjczIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy9sc3lzY2FjaGUuaApAQCAtMjAyLDcgKzIwMiw3IEBAIGV4dGVybiBib29sIGdldF9hdHRzdGF0 c3Nsb3QoQXR0U3RhdHNTbG90ICpzc2xvdCwgSGVhcFR1cGxlIHN0YXRzdHVwbGUsCiBleHRlcm4g dm9pZCBmcmVlX2F0dHN0YXRzc2xvdChBdHRTdGF0c1Nsb3QgKnNzbG90KTsKIGV4dGVybiBjaGFy ICpnZXRfbmFtZXNwYWNlX25hbWUoT2lkIG5zcGlkKTsKIGV4dGVybiBjaGFyICpnZXRfbmFtZXNw YWNlX25hbWVfb3JfdGVtcChPaWQgbnNwaWQpOwotZXh0ZXJuIGNoYXIgKmdldF9xdWFsaWZpZWRf b2JqbmFtZShPaWQgbnNwaWQsIGNoYXIgKm9iam5hbWUpOworZXh0ZXJuIGNoYXIgKmdldF9xdWFs aWZpZWRfb2JqbmFtZShPaWQgbnNwaWQsIGNvbnN0IGNoYXIgKm9iam5hbWUpOwogZXh0ZXJuIE9p ZAlnZXRfcmFuZ2Vfc3VidHlwZShPaWQgcmFuZ2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2Vf Y29sbGF0aW9uKE9pZCByYW5nZU9pZCk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9jb25zdHJ1Y3Rv cjIoT2lkIHJhbmdlT2lkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3Vic2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9u Lm91dAppbmRleCA2MTIzNjY3MmNlNC4uMTdlNjJiN2FlM2EgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKQEAgLTYxOCw2ICs2MTgsMzE1IEBAIENPTU1JVDsK IC0tIG9rLCBvd25pbmcgaXQgaXMgZW5vdWdoIGZvciB0aGlzIHN0dWZmCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CistLQorLS0gQ09ORkxJQ1QgTE9HIERFU1RJTkFUSU9O IFRFU1RTCistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19zdWJzY3JpcHRp b25fdXNlcic7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CistLSBmYWlsIC0g dW5yZWNvZ25pemVkIHBhcmFtZXRlciB2YWx1ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X2ZhaWwgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQ VUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uID0gJ2ludmFsaWQnKTsKK0VSUk9SOiAgdW5yZWNvZ25pemVkIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiB2YWx1ZTogImludmFsaWQiCitISU5UOiAgVmFsaWQgdmFsdWVzIGFyZSAi bG9nIiwgInRhYmxlIiwgYW5kICJhbGwiLgorLS0gdmVyaWZ5IHN1YmNvbmZsaWN0bG9nZGVzdCBp cyAnbG9nJyBhbmQgc3ViY29uZmxpY3Rsb2dyZWxpZCBpcyAwIChJbnZhbGlkT2lkKSBmb3IgZGVm YXVsdCBjYXNlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1 bHQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0 ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdh cyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxp Y2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVu YWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZy ZXNoIHB1YmxpY2F0aW9ucy4KK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1 YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCc7CisgICAgICAgICAgIHN1Ym5hbWUgICAgICAg ICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCB8IGxvZyAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIDAKKygxIHJvdykKKworLS0gdmVyaWZ5IGVtcHR5IHN0 cmluZyBkZWZhdWx0cyB0byAnbG9nJworQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X2VtcHR5X3N0ciBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBV QkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVz dGluYXRpb24gPSAnJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQg aXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVz dCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2Ny aXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9u cy4KK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVs aWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF9lbXB0eV9zdHInOworICAgICAgICAgIHN1Ym5hbWUgICAgICAgICAgIHwgc3ViY29uZmxpY3Rs b2dkZXN0IHwgc3ViY29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19j b25mbGljdF9lbXB0eV9zdHIgfCBsb2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAwCisoMSByb3cpCisKKy0tIHRoaXMgc2hvdWxkIGdlbmVyYXRlIGFuIGNvbmZsaWN0IGxvZyB0 YWJsZSBuYW1lZCBwZ19jb25mbGljdF9sb2dfJHN1YmlkJAorQ1JFQVRFIFNVQlNDUklQVElPTiBy ZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVz aCBwdWJsaWNhdGlvbnMuCistLSBjaGVjayBtZXRhZGF0YSBpbiBwZ19zdWJzY3JpcHRpb246IGRl c3RpbmF0aW9uIHNob3VsZCBiZSAndGFibGUnIGFuZCBzdWJjb25mbGljdGxvZ3JlbGlkIHZhbGlk CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlk ID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICAgICAgIHN1Ym5hbWUgICAgICAgICB8IHN1YmNv bmZsaWN0bG9nZGVzdCB8IGhhc19yZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgfCB0 YWJsZSAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwg dGFibGUgZXhpc3RzLCBpdHMgT0lEIG1hdGNoZXMgc3ViY29uZmxpY3Rsb2dyZWxpZCwKKy0tIGFu ZCBpdCBpcyBsb2NhdGVkIGluIHRoZSAncGdfY29uZmxpY3QnIG5hbWVzcGFjZQorU0VMRUNUIG4u bnNwbmFtZSwgKGMub2lkID0gcy5zdWJjb25mbGljdGxvZ3JlbGlkKSBBUyAib2lkX21hdGNoZXMi CitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0g J3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVs bmFtZXNwYWNlID0gbi5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rl c3QxJzsKKyAgIG5zcG5hbWUgICB8IG9pZF9tYXRjaGVzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgcGdfY29uZmxpY3QgfCB0CisoMSByb3cpCisKKy0tIGNoZWNrIGlmIHRoZSBjb25m bGljdCBsb2cgdGFibGUgaGFzIHRoZSBjb3JyZWN0IHNjaGVtYQorU0VMRUNUIGEuYXR0bnVtLCBh LmF0dG5hbWUKK0ZST00gcGdfYXR0cmlidXRlIGEKK0pPSU4gcGdfY2xhc3MgYyBPTiBhLmF0dHJl bGlkID0gYy5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2Nv bmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF90ZXN0MScgQU5EIGEuYXR0bnVtID4gMAorICAgIE9SREVSIEJZIGEuYXR0bnVtOworIGF0dG51 bSB8ICAgICAgYXR0bmFtZSAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgMSB8IHJlbGlkCisgICAgICAyIHwgc2NoZW1hbmFtZQorICAgICAgMyB8IHJlbG5hbWUKKyAg ICAgIDQgfCBjb25mbGljdF90eXBlCisgICAgICA1IHwgcmVtb3RlX3hpZAorICAgICAgNiB8IHJl bW90ZV9jb21taXRfbHNuCisgICAgICA3IHwgcmVtb3RlX2NvbW1pdF90cworICAgICAgOCB8IHJl bW90ZV9vcmlnaW4KKyAgICAgIDkgfCByZW1vdGVfdHVwbGUKKyAgICAgMTAgfCByZXBsaWNhX2lk ZW50aXR5CisgICAgIDExIHwgbG9jYWxfY29uZmxpY3RzCisoMTEgcm93cykKKworLS0gQ2hhbmdp bmcgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBzaG91bGQgYWxzbyB1cGRhdGUgdGhlIG93bmVyCist LSBvZiB0aGUgYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUuCitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05FUiBUTyByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyMjsKK1NFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBv d25lcgorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxvZy5wZ19zdWJz Y3JpcHRpb24gcworICAgICAgICBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwg cy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKyAgICAg ICAgICAgb3duZXIgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMgorKDEgcm93KQorCistLSBWZXJpZnkgdGhhdCBhIG5v bi1zdXBlcnVzZXIgc3Vic2NyaXB0aW9uIG93bmVyIGNhbiB0cnVuY2F0ZSwKKy0tIGRlbGV0ZSBm cm9tLCBhbmQgc2VsZWN0IGZyb20gdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgor U0VUIFJPTEUgJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyJzsKK1NFTEVDVCBmb3JtYXQoJyVJ LiVJJywgbi5uc3BuYW1lLCBjLnJlbG5hbWUpIEFTIGNvbmZsaWN0X2xvZ190YWJsZQorRlJPTSBw Z19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbgorCU9O IG4ub2lkID0gYy5yZWxuYW1lc3BhY2UKK0pPSU4gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24g cworCU9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5z dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnCitcZ3NldAorVFJVTkNBVEUgVEFCTEUg OmNvbmZsaWN0X2xvZ190YWJsZTsKK0RFTEVURSBGUk9NIDpjb25mbGljdF9sb2dfdGFibGU7CitT RUxFQ1QgQ09VTlQoKikgRlJPTSA6Y29uZmxpY3RfbG9nX3RhYmxlOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKK1JFU0VUIFJPTEU7CistLSBSZXN0b3JlIHRoZSBvcmlnaW5h bCBzdWJzY3JpcHRpb24gb3duZXIuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF90ZXN0MSBPV05FUiBUTyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOworLS0KKy0tIEFMVEVS IFNVQlNDUklQVElPTiAtIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiBzdGF0ZSB0cmFuc2l0aW9u cworLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGUgdHJhbnNpdGlvbiBsb2dpYyBiZXR3ZWVu IGRpZmZlcmVudCBsb2dnaW5nCistLSBkZXN0aW5hdGlvbnMsIGVuc3VyaW5nIGNvbmZsaWN0IGxv ZyB0YWJsZXMgYXJlIGNyZWF0ZWQgb3IgZHJvcHBlZCBhcworLS0gZXhwZWN0ZWQKKy0tCistLSB0 cmFuc2l0aW9uIGZyb20gJ2xvZycgdG8gJ2FsbCcKKy0tIGEgbmV3IGNvbmZsaWN0IGxvZyB0YWJs ZSBzaG91bGQgYmUgY3JlYXRlZAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJ T04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv biA9ICdsb2cnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBu b3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1h bnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRp b24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAnYWxsJyk7CistLSB2ZXJpZnkgbWV0YWRhdGEgYWZ0ZXIgQUxURVIg KGRlc3RpbmF0aW9uIHNob3VsZCBiZSAnYWxsJykKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGlj dGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19z dWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyAg ICAgICAgc3VibmFtZSAgICAgICAgIHwgc3ViY29uZmxpY3Rsb2dkZXN0IHwgaGFzX3JlbGlkIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgcmVncmVzc19jb25mbGljdF90ZXN0MiB8IGFsbCAgICAgICAgICAgICAgICB8IHQKKygxIHJv dykKKworLS0gdHJhbnNpdGlvbiBmcm9tICdhbGwnIHRvICd0YWJsZScKKy0tIHNob3VsZCBOT1Qg ZHJvcCB0aGUgdGFibGUsIG9ubHkgY2hhbmdlIGRlc3RpbmF0aW9uIHN0cmluZworU0VMRUNUIHN1 YmNvbmZsaWN0bG9ncmVsaWQgQVMgb2xkX3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJF IHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MicgXGdzZXQKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u ID0gJ3RhYmxlJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3Jl bGlkID0gOm9sZF9yZWxpZCBBUyByZWxpZF91bmNoYW5nZWQKK0ZST00gcGdfc3Vic2NyaXB0aW9u IFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7Cisgc3ViY29uZmxpY3Rs b2dkZXN0IHwgcmVsaWRfdW5jaGFuZ2VkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0KKyB0YWJsZSAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIHRyYW5zaXRp b24gZnJvbSAndGFibGUnIHRvICdsb2cnCistLSBzaG91bGQgZHJvcCB0aGUgdGFibGUgYW5kIGNs ZWFyIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOworU0VMRUNU IHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3Jp cHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyBzdWJjb25m bGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbG9nICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgMAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGlzIGdvbmUK K1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKKy0tCistLSBQVUJMSUNBVElPTjogVmVyaWZ5IGNvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIG5vdCBwdWJsaXNoYWJsZQorLS0KKy0tIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxl IHNob3VsZCByZXR1cm4gZmFsc2UgZm9yIGNvbmZsaWN0IGxvZyB0YWJsZXMgdG8KKy0tIHByZXZl bnQgdGhlbSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbmNsdWRlZCBpbiBwdWJsaWNhdGlvbnMK Ky0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZShjLm9pZCkK K0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9 IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMuc3ViY29uZmxpY3Rsb2dyZWxpZCA9 IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICBu c3BuYW1lICAgfCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSAKKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHBnX2NvbmZsaWN0IHwgZgorKDEgcm93KQorCist LQorLS0gVGFibGUgUHJvdGVjdGlvbiBhbmQgTGlmZWN5Y2xlIE1hbmFnZW1lbnQKKy0tCistLSBU aGVzZSB0ZXN0cyB2ZXJpZnkgdGhhdDoKKy0tIE1hbnVhbCBEUk9QIFRBQkxFIGlzIGRpc2FsbG93 ZWQKKy0tIERST1AgU1VCU0NSSVBUSU9OIGF1dG9tYXRpY2FsbHkgcmVhcHMgdGhlIHRhYmxlCist LQorLS0gcmUtZW5hYmxlIHRhYmxlIGxvZ2dpbmcgZm9yIHZlcmlmaWNhdGlvbgorQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChjb25mbGljdF9sb2dfZGVzdGlu YXRpb24gPSAndGFibGUnKTsKKy0tIFdlIHVzZSBhIERPIGJsb2NrIHdpdGggZHluYW1pYyBTUUwg YmVjYXVzZSB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCistLSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJz Y3JpcHRpb24gT0lELCB3aGljaCBpcyBub24tZGV0ZXJtaW5pc3RpYy4gVGhpcworLS0gYXBwcm9h Y2ggYWxsb3dzIHVzIHRvIGF0dGVtcHQgdGhlIERST1AgYW5kIGNhcHR1cmUgdGhlIGV4cGVjdGVk IGVycm9yCistLSB3aXRob3V0IGhhcmQtY29kaW5nIGEgc3BlY2lmaWMgT0lEIGluIHRoZSBleHBl Y3RlZCBvdXRwdXQKKy0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2VkIGR1ZSB0byBpbnRl cm5hbCBkZXBlbmRlbmN5CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5PVElDRTsKK0RPICQk CitCRUdJTgorICAgIEVYRUNVVEUgJ0RST1AgVEFCTEUgJyB8fCAoU0VMRUNUICdwZ19jb25mbGlj dC5wZ19jb25mbGljdF9sb2dfJyB8fCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZp Y2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVk IGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAkJDsKK05PVElDRTogIGNhcHR1 cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlCistLSBDTEVBTlVQOiBE Uk9QIFNVQlNDUklQVElPTiByZWFwcyB0aGUgdGFibGUKK0FMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X3Rlc3QxIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF90ZXN0MSBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworLS0gVmVyaWZ5IHRoZSB0YWJs ZSBPSUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9n XycgfHwgb2lkIEFTIGludGVybmFsX3RhYmxlbmFtZSBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIFxnc2V0CitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9IFdBUk5JTkc7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxOworLS0gc2hvdWxkIHJldHVybiBOVUxMLCBtZWFuaW5nIHRoZSBjb25mbGljdCBsb2cg dGFibGUgd2FzIHJlYXBlZCB2aWEgZGVwZW5kZW5jeQorU0VMRUNUIHRvX3JlZ2NsYXNzKDonaW50 ZXJuYWxfdGFibGVuYW1lJyk7CisgdG9fcmVnY2xhc3MgCistLS0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKKy0tCistLSBBZGRpdGlvbmFsIE5hbWVzcGFjZSBhbmQgVGFibGUgUHJvdGVjdGlvbiBU ZXN0cworLS0KKy0tIFNldHVwOiBFbnN1cmUgd2UgaGF2ZSBhIHN1YnNjcmlwdGlvbiB3aXRoIGEg Y29uZmxpY3QgbG9nIHRhYmxlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf cHJvdGVjdGlvbl90ZXN0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcK KyAgICBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3Rf bG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBj cmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0 aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJs ZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNo IHB1YmxpY2F0aW9ucy4KKy0tIFRyeWluZyB0byBBTFRFUiB0aGUgY29uZmxpY3QgbG9nIHRhYmxl CistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2Vk CistLSBBcyBtZW50aW9uZWQgaW4gcHJldmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEgRE8gYmxv Y2sgdG8gaGlkZSBkeW5hbWljIE9JRHMKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gTk9USUNF OworRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1Qg J3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFz cyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xv Z18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0JzsKKworICAgIFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBBTFRFUiBUQUJM RSBvbiBjb25mbGljdCBsb2cgdGFibGUnOworICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwg dGFiX25hbWUgfHwgJyBBREQgQ09MVU1OIGV4dHJhX2luZm8gdGV4dCc7CitFWENFUFRJT04gV0hF TiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVk IGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBBTFRFUic7CitF TkQgJCQ7CitOT1RJQ0U6ICBBdHRlbXB0aW5nIEFMVEVSIFRBQkxFIG9uIGNvbmZsaWN0IGxvZyB0 YWJsZQorTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2 aWxlZ2UgZHVyaW5nIEFMVEVSCistLSBUZXN0IE1hbnVhbCBJTlNFUlQgb24gY29uZmxpY3QgbG9n IHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1t YW5hZ2VkCistLSBIaWRpbmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGlu ZyB0aGUgZXhjZXB0aW9uCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJ TgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAg ICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAn cGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAnSU5TRVJUIElOVE8g JyB8fCB0YWJfbmFtZSB8fCAnIChyZWxuYW1lKSBWQUxVRVMgKCcnbXl0ZXN0JycpJzsKK0VYQ0VQ VElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1 cmVkIGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgSU5TRVJUJzsKK0VO RCAkJDsKK05PVElDRTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlw ZSBkdXJpbmcgSU5TRVJUCistLSBUZXN0IE1hbnVhbCBVUERBVEUgb24gY29uZmxpY3QgbG9nIHRh YmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5h Z2VkCistLSBIaWRpbmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGluZyB0 aGUgZXhjZXB0aW9uCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgor ICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBG Uk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdf Y29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAnVVBEQVRFICcgfHwgdGFi X25hbWUgfHwgJyBTRVQgcmVsbmFtZSA9ICcnbXl0ZXN0JycgJzsKK0VYQ0VQVElPTiBXSEVOIHdy b25nX29iamVjdF90eXBlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVk IGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgVVBEQVRFJzsKK0VORCAkJDsKK05PVElD RTogIGNhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgVVBE QVRFCistLSBUcnlpbmcgdG8gcGVyZm9ybSBUUlVOQ0FURS9ERUxFVEUgb24gdGhlIGNvbmZsaWN0 IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgYmUgYWxsb3dlZCBzbyB0aGF0IHVzZXIgY2FuIHBl cmZvcm0gY2xlYW51cAorU0VMRUNUICdwZ19jb25mbGljdC4nIHx8IHJlbG5hbWUgQVMgY29uZmxp Y3RfdGFiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxu YW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnIFxnc2V0CitUUlVOQ0FURSA6Y29uZmxpY3Rf dGFiOworREVMRVRFIEZST00gOmNvbmZsaWN0X3RhYjsKKy0tIFRyeWluZyB0byBjcmVhdGUgYSBu ZXcgdGFibGUgbWFudWFsbHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVGhpcyBz aG91bGQgZmFpbCBhcyB0aGUgbmFtZXNwYWNlIGlzIHJlc2VydmVkIGZvciBjb25mbGljdCBsb2dz IHRhYmxlcworQ1JFQVRFIFRBQkxFIHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJsZSAoaWQgaW50KTsK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNjaGVtYSBwZ19jb25mbGljdAorTElORSAx OiBDUkVBVEUgVEFCTEUgcGdfY29uZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOworICAgICAg ICAgICAgICAgICAgICAgXgorLS0gTW92aW5nIGFuIGV4aXN0aW5nIHRhYmxlIGludG8gdGhlIHBn X2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIG1vdmUg dGhlaXIgb3duIHRhYmxlcyB3aXRoaW4gdGhpcyBuYW1lc3BhY2UKK0NSRUFURSBUQUJMRSBwdWJs aWMudGVzdF9tb3ZlIChpZCBpbnQpOworQUxURVIgVEFCTEUgcHVibGljLnRlc3RfbW92ZSBTRVQg U0NIRU1BIHBnX2NvbmZsaWN0OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2NoZW1h IHBnX2NvbmZsaWN0CitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7CitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9IFdBUk5JTkc7CistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3Jp cHRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJ U0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF9sb2dfZGVmYXVsdDsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5 X3N0ciBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlf c3RyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2Nv bmZsaWN0X2VtcHR5X3N0cjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rl c3QyIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF90ZXN0MjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25f dGVzdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVj dGlvbl90ZXN0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdDsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElP TjsKIERST1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwK aW5kZXggNjY1YjUxMGYxODAuLjY2OTNlZGIzNjZmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNj cmlwdGlvbi5zcWwKQEAgLTQ3NSw2ICs0NzUsMjYyIEBAIENPTU1JVDsKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKIAorLS0KKy0tIENPTkZMSUNUIExPRyBERVNUSU5BVElP TiBURVNUUworLS0KKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19zdWJzY3Jp cHRpb25fdXNlcic7CisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKKworLS0g ZmFpbCAtIHVucmVjb2duaXplZCBwYXJhbWV0ZXIgdmFsdWUKK0NSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF9mYWlsIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbiA9ICdpbnZhbGlkJyk7CisKKy0tIHZlcmlmeSBzdWJjb25mbGljdGxv Z2Rlc3QgaXMgJ2xvZycgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgaXMgMCAoSW52YWxpZE9pZCkg Zm9yIGRlZmF1bHQgY2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xv Z19kZWZhdWx0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElD QVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworU0VMRUNUIHN1Ym5hbWUsIHN1 YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRp b24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0JzsKKworLS0g dmVyaWZ5IGVtcHR5IHN0cmluZyBkZWZhdWx0cyB0byAnbG9nJworQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBj b25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnJyk7CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxp Y3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVS RSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKworLS0gdGhpcyBzaG91 bGQgZ2VuZXJhdGUgYW4gY29uZmxpY3QgbG9nIHRhYmxlIG5hbWVkIHBnX2NvbmZsaWN0X2xvZ18k c3ViaWQkCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJ VEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7 CisKKy0tIGNoZWNrIG1ldGFkYXRhIGluIHBnX3N1YnNjcmlwdGlvbjogZGVzdGluYXRpb24gc2hv dWxkIGJlICd0YWJsZScgYW5kIHN1YmNvbmZsaWN0bG9ncmVsaWQgdmFsaWQKK1NFTEVDVCBzdWJu YW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19y ZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Rlc3QxJzsKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBleGlzdHMsIGl0cyBP SUQgbWF0Y2hlcyBzdWJjb25mbGljdGxvZ3JlbGlkLAorLS0gYW5kIGl0IGlzIGxvY2F0ZWQgaW4g dGhlICdwZ19jb25mbGljdCcgbmFtZXNwYWNlCitTRUxFQ1Qgbi5uc3BuYW1lLCAoYy5vaWQgPSBz LnN1YmNvbmZsaWN0bG9ncmVsaWQpIEFTICJvaWRfbWF0Y2hlcyIKK0ZST00gcGdfY2xhc3MgYwor Sk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycg fHwgcy5vaWQKK0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAor V0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSBjaGVjayBp ZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGhhcyB0aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVDVCBh LmF0dG51bSwgYS5hdHRuYW1lCitGUk9NIHBnX2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMg T04gYS5hdHRyZWxpZCA9IGMub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFt ZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jl c3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0dG51 bTsKKworLS0gQ2hhbmdpbmcgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBzaG91bGQgYWxzbyB1cGRh dGUgdGhlIG93bmVyCistLSBvZiB0aGUgYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFibGUuCitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05FUiBUTyByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyMjsKK1NFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChj LnJlbG93bmVyKSBBUyBvd25lcgorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdf Y2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcworICAgICAgICBPTiBjLnJlbG5hbWUgPSAncGdfY29u ZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxJzsKKworLS0gVmVyaWZ5IHRoYXQgYSBub24tc3VwZXJ1c2VyIHN1YnNjcmlwdGlvbiBv d25lciBjYW4gdHJ1bmNhdGUsCistLSBkZWxldGUgZnJvbSwgYW5kIHNlbGVjdCBmcm9tIHRoZSBh c3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4KK1NFVCBST0xFICdyZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyMic7CisKK1NFTEVDVCBmb3JtYXQoJyVJLiVJJywgbi5uc3BuYW1lLCBjLnJlbG5h bWUpIEFTIGNvbmZsaWN0X2xvZ190YWJsZQorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pP SU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbgorCU9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UK K0pPSU4gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcworCU9OIGMucmVsbmFtZSA9ICdwZ19j b25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEnCitcZ3NldAorCitUUlVOQ0FURSBUQUJMRSA6Y29uZmxpY3RfbG9nX3RhYmxlOwor REVMRVRFIEZST00gOmNvbmZsaWN0X2xvZ190YWJsZTsKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIDpj b25mbGljdF9sb2dfdGFibGU7CisKK1JFU0VUIFJPTEU7CisKKy0tIFJlc3RvcmUgdGhlIG9yaWdp bmFsIHN1YnNjcmlwdGlvbiBvd25lci4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QxIE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CisKKy0tCistLSBB TFRFUiBTVUJTQ1JJUFRJT04gLSBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gc3RhdGUgdHJhbnNp dGlvbnMKKy0tCistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRpb24gbG9naWMgYmV0 d2VlbiBkaWZmZXJlbnQgbG9nZ2luZworLS0gZGVzdGluYXRpb25zLCBlbnN1cmluZyBjb25mbGlj dCBsb2cgdGFibGVzIGFyZSBjcmVhdGVkIG9yIGRyb3BwZWQgYXMKKy0tIGV4cGVjdGVkCistLQor LS0gdHJhbnNpdGlvbiBmcm9tICdsb2cnIHRvICdhbGwnCistLSBhIG5ldyBjb25mbGljdCBsb2cg dGFibGUgc2hvdWxkIGJlIGNyZWF0ZWQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJ Q0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGlu YXRpb24gPSAnbG9nJyk7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdhbGwnKTsKKworLS0gdmVyaWZ5IG1l dGFkYXRhIGFmdGVyIEFMVEVSIChkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ2FsbCcpCitTRUxFQ1Qg c3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBo YXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF90ZXN0Mic7CisKKy0tIHRyYW5zaXRpb24gZnJvbSAnYWxsJyB0byAndGFibGUnCist LSBzaG91bGQgTk9UIGRyb3AgdGhlIHRhYmxlLCBvbmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJp bmcKK1NFTEVDVCBzdWJjb25mbGljdGxvZ3JlbGlkIEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNj cmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3Vi Y29uZmxpY3Rsb2dyZWxpZCA9IDpvbGRfcmVsaWQgQVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBn X3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOwor CistLSB0cmFuc2l0aW9uIGZyb20gJ3RhYmxlJyB0byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhl IHRhYmxlIGFuZCBjbGVhciBzdWJjb25mbGljdGxvZ3JlbGlkCitBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICds b2cnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZS T00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0 Mic7CisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgaXMgZ29uZQorU0VMRUNUIGNvdW50 KCopCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1l ID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF90ZXN0Mic7CisKKy0tCistLSBQVUJMSUNBVElPTjogVmVyaWZ5IGNvbmZsaWN0 IGxvZyB0YWJsZXMgYXJlIG5vdCBwdWJsaXNoYWJsZQorLS0KKy0tIHBnX3JlbGF0aW9uX2lzX3B1 Ymxpc2hhYmxlIHNob3VsZCByZXR1cm4gZmFsc2UgZm9yIGNvbmZsaWN0IGxvZyB0YWJsZXMgdG8K Ky0tIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbmNsdWRlZCBpbiBwdWJs aWNhdGlvbnMKKy0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJs ZShjLm9pZCkKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5h bWVzcGFjZSA9IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMuc3ViY29uZmxpY3Rs b2dyZWxpZCA9IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0 MSc7CisKKy0tCistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3ljbGUgTWFuYWdlbWVudAor LS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFsIERST1AgVEFCTEUgaXMg ZGlzYWxsb3dlZAorLS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGljYWxseSByZWFwcyB0aGUg dGFibGUKKy0tCistLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVyaWZpY2F0aW9uCitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCistLSBXZSB1c2UgYSBETyBibG9jayB3aXRoIGR5 bmFtaWMgU1FMIGJlY2F1c2UgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gbmFtZSBjb250YWlu cyB0aGUgc3Vic2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMgbm9uLWRldGVybWluaXN0aWMuIFRoaXMK Ky0tIGFwcHJvYWNoIGFsbG93cyB1cyB0byBhdHRlbXB0IHRoZSBEUk9QIGFuZCBjYXB0dXJlIHRo ZSBleHBlY3RlZCBlcnJvcgorLS0gd2l0aG91dCBoYXJkLWNvZGluZyBhIHNwZWNpZmljIE9JRCBp biB0aGUgZXhwZWN0ZWQgb3V0cHV0CisKKy0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2Vk IGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRlbmN5CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5P VElDRTsKK0RPICQkCitCRUdJTgorICAgIEVYRUNVVEUgJ0RST1AgVEFCTEUgJyB8fCAoU0VMRUNU ICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJyB8fCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRp b24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyk7CitFWENFUFRJT04g V0hFTiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1 cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlJzsKK0VORCAkJDsKKwor LS0gQ0xFQU5VUDogRFJPUCBTVUJTQ1JJUFRJT04gcmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChzbG90X25hbWUgPSBOT05FKTsKKworLS0g VmVyaWZ5IHRoZSB0YWJsZSBPSUQgZm9yIHJlYXAgY2hlY2sKK1NFTEVDVCAncGdfY29uZmxpY3Qu cGdfY29uZmxpY3RfbG9nXycgfHwgb2lkIEFTIGludGVybmFsX3RhYmxlbmFtZSBGUk9NIHBnX3N1 YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIFxnc2V0 CisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKK0RST1AgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDE7CisKKy0tIHNob3VsZCByZXR1cm4gTlVMTCwgbWVhbmlu ZyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIHdhcyByZWFwZWQgdmlhIGRlcGVuZGVuY3kKK1NFTEVD VCB0b19yZWdjbGFzcyg6J2ludGVybmFsX3RhYmxlbmFtZScpOworCistLQorLS0gQWRkaXRpb25h bCBOYW1lc3BhY2UgYW5kIFRhYmxlIFByb3RlY3Rpb24gVGVzdHMKKy0tCisKKy0tIFNldHVwOiBF bnN1cmUgd2UgaGF2ZSBhIHN1YnNjcmlwdGlvbiB3aXRoIGEgY29uZmxpY3QgbG9nIHRhYmxlCitD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IENPTk5F Q1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcKKyAgICBQVUJMSUNBVElPTiB0ZXN0 cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3Rh YmxlJyk7CisKKy0tIFRyeWluZyB0byBBTFRFUiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCistLSBU aGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBB cyBtZW50aW9uZWQgaW4gcHJldmlvdXMgdGVzdCBjYXNlcywgd2UgdXNlIGEgRE8gYmxvY2sgdG8g aGlkZSBkeW5hbWljIE9JRHMKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7CitE TyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdf Y29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMg Sk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycg fHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0 aW9uX3Rlc3QnOworCisgICAgUkFJU0UgTk9USUNFICdBdHRlbXB0aW5nIEFMVEVSIFRBQkxFIG9u IGNvbmZsaWN0IGxvZyB0YWJsZSc7CisgICAgRVhFQ1VURSAnQUxURVIgVEFCTEUgJyB8fCB0YWJf bmFtZSB8fCAnIEFERCBDT0xVTU4gZXh0cmFfaW5mbyB0ZXh0JzsKK0VYQ0VQVElPTiBXSEVOIGlu c3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhw ZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5nIEFMVEVSJzsKK0VORCAk JDsKKworLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhp cyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlk aW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlv bgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1Qg J3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFz cyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xv Z18nIHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ0lOU0VSVCBJTlRPICcgfHwgdGFiX25hbWUg fHwgJyAocmVsbmFtZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7CitFWENFUFRJT04gV0hFTiB3cm9u Z19vYmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBl cnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVCc7CitFTkQgJCQ7CisKKy0tIFRl c3QgTWFudWFsIFVQREFURSBvbiBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZh aWwgYmVjYXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhpZGluZyB0aGUgT0lE IGluIHRoZSBlcnJvciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KK0RPICQkCitE RUNMQVJFCisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGlj dC4nIHx8IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBn X3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9p ZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVz dCc7CisKKyAgICBFWEVDVVRFICdVUERBVEUgJyB8fCB0YWJfbmFtZSB8fCAnIFNFVCByZWxuYW1l ID0gJydteXRlc3QnJyAnOworRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhFTgor ICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVjdF90 eXBlIGR1cmluZyBVUERBVEUnOworRU5EICQkOworCistLSBUcnlpbmcgdG8gcGVyZm9ybSBUUlVO Q0FURS9ERUxFVEUgb24gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgYmUg YWxsb3dlZCBzbyB0aGF0IHVzZXIgY2FuIHBlcmZvcm0gY2xlYW51cAorU0VMRUNUICdwZ19jb25m bGljdC4nIHx8IHJlbG5hbWUgQVMgY29uZmxpY3RfdGFiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4g cGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMu b2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3Qn IFxnc2V0CitUUlVOQ0FURSA6Y29uZmxpY3RfdGFiOworREVMRVRFIEZST00gOmNvbmZsaWN0X3Rh YjsKKworLS0gVHJ5aW5nIHRvIGNyZWF0ZSBhIG5ldyB0YWJsZSBtYW51YWxseSBpbiB0aGUgcGdf Y29uZmxpY3QgbmFtZXNwYWNlCistLSBUaGlzIHNob3VsZCBmYWlsIGFzIHRoZSBuYW1lc3BhY2Ug aXMgcmVzZXJ2ZWQgZm9yIGNvbmZsaWN0IGxvZ3MgdGFibGVzCitDUkVBVEUgVEFCTEUgcGdfY29u ZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOworCistLSBNb3ZpbmcgYW4gZXhpc3RpbmcgdGFi bGUgaW50byB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlCistLSBVc2VycyBzaG91bGQgbm90IGJl IGFibGUgdG8gbW92ZSB0aGVpciBvd24gdGFibGVzIHdpdGhpbiB0aGlzIG5hbWVzcGFjZQorQ1JF QVRFIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGludCk7CitBTFRFUiBUQUJMRSBwdWJsaWMu dGVzdF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7CitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0 X21vdmU7CisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKKworLS0gQ2xlYW4g dXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7CisKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOworQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cjsKKworQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyOworCitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsKK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rl c3Q7CisKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyOwpk aWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBmOWViMjNlNTJjOS4uNjU5YmM1MDcxYjUgMTAw NjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC01MTUsNiArNTE1LDggQEAgQ29uZGl0aW9uYWxT dGFjawogQ29uZGl0aW9uYWxTdGFja0RhdGEKIENvbmZpZ0RhdGEKIENvbmZpZ1ZhcmlhYmxlCitD b25mbGljdExvZ0NvbHVtbkRlZgorQ29uZmxpY3RMb2dEZXN0CiBDb25mbGljdFR1cGxlSW5mbwog Q29uZmxpY3RUeXBlCiBDb25uQ2FjaGVFbnRyeQotLSAKMi40OS4wCgo= --000000000000836a4f0654856cfe Content-Type: application/octet-stream; name="v52-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Disposition: attachment; filename="v52-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqjeukmf3 RnJvbSBlMTAyNzk0MzNkYTFiZjIwZDYyZmYxMTFhZGQxMGJlMGIyNzgxYTNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCA1IEp1biAyMDI2IDE1OjUxOjIyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NTIg NC82XSBQcmVzZXJ2ZSBjb25mbGljdCBsb2cgZGVzdGluYXRpb24gYW5kIHN1YnNjcmlwdGlvbgog T0lEIGZvciBzdWJzY3JpcHRpb25zCgpTdXBwb3J0IHBnX2R1bXAgdG8gZHVtcCBhbmQgcmVzdG9y ZSB0aGUgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHNldHRpbmcgZm9yCnN1YnNjcmlwdGlvbnMu CgpEdXJpbmcgYSBub3JtYWwgQ1JFQVRFIFNVQlNDUklQVElPTiwgYSBjb25mbGljdCBsb2cgdGFi bGUgaXMgY3JlYXRlZAphdXRvbWF0aWNhbGx5IHdoZW4gcmVxdWlyZWQuIEhvd2V2ZXIsIGR1cmlu ZyBiaW5hcnkgdXBncmFkZSwgdGhlIGNvbmZsaWN0CmxvZyB0YWJsZSB3aWxsIGFscmVhZHkgZXhp c3QgYW5kIG11c3QgYmUgcmV1c2VkIHJhdGhlciB0aGFuIHJlY3JlYXRlZCwgYW5kCnRoZSBzdWJz Y3JpcHRpb24gbXVzdCByZXRhaW4gaXRzIG9yaWdpbmFsIE9JRCB0byBjb3JyZWN0bHkgcmUtZXN0 YWJsaXNoCmNhdGFsb2cgcmVsYXRpb25zaGlwcy4KClRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW9y LCBwZ19kdW1wIG5vdyBlbWl0cyBhbiBBTFRFUiBTVUJTQ1JJUFRJT04gY29tbWFuZAphZnRlciBz dWJzY3JpcHRpb24gY3JlYXRpb24gdG8gcmVzdG9yZSB0aGUgY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uIHNldHRpbmcuCgpUT0RPOiBFbnN1cmUgYWxsIDE5MDAwMCBzZXJpZXMgcmVmZXJlbmNlcyBh cmUgdXBkYXRlZCB0byAyMDAwMDAKd2hlbiB0aGUgdmVyc2lvbiBudW1iZXIgaXMgYnVtcGVkLgot LS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAgICAgICAgICAgICAgICB8ICAgNCAr LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgIDU2ICsr KysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgICAgfCAg IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyAgICB8ICAx MCArKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTI1 ICsrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAg ICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAg ICAgICAgICB8ICAzMSArKysrKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAg ICAgICAgICAgIHwgICA1ICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jICAgICAg ICAgICAgICAgfCAgIDQgKwogc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5w bCAgICAgIHwgIDE0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmggICAg ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAg ICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAgICAg ICB8ICAgMyArCiAuLi4vZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dCAgICAgICAgICAgICAg fCAgIDYgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDVkMDdkY2MxYzViLi4xZDliZDkwM2E1MSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMKQEAgLTMxMiw2ICszMTIsOCBAQCBoZWFwX2NyZWF0ZShjb25zdCBjaGFyICpyZWxu YW1lLAogCSAqIEJ1dCBhbGxvdyBjcmVhdGluZyBpbmRleGVzIG9uIHJlbGF0aW9ucyBpbiBwZ19j YXRhbG9nIGV2ZW4gaWYKIAkgKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyA9IG9mZiwgdXBwZXIg bGF5ZXJzIGFscmVhZHkgZ3VhcmFudGVlIGl0J3Mgb24gYQogCSAqIHVzZXIgZGVmaW5lZCByZWxh dGlvbiwgbm90IGEgc3lzdGVtIG9uZS4KKwkgKgorCSAqIEFsbG93IGNyZWF0aW9uIG9mIHRoZSBj b25mbGljdCBsb2cgdGFibGUgaW4gYmluYXJ5LXVwZ3JhZGUgbW9kZS4KIAkgKi8KIAlpZiAoIWFs bG93X3N5c3RlbV90YWJsZV9tb2RzICYmIElzTm9ybWFsUHJvY2Vzc2luZ01vZGUoKSkKIAl7CkBA IC0zMjMsNyArMzI1LDcgQEAgaGVhcF9jcmVhdGUoY29uc3QgY2hhciAqcmVsbmFtZSwKIAkJCQkJ CQlnZXRfcXVhbGlmaWVkX29iam5hbWUocmVsbmFtZXNwYWNlLCByZWxuYW1lKSksCiAJCQkJCSBl cnJkZXRhaWwoIlN5c3RlbSBjYXRhbG9nIG1vZGlmaWNhdGlvbnMgYXJlIGN1cnJlbnRseSBkaXNh bGxvd2VkLiIpKSk7CiAKLQkJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShyZWxuYW1l c3BhY2UpKQorCQlpZiAoIUlzQmluYXJ5VXBncmFkZSAmJiBJc0NvbmZsaWN0TG9nVGFibGVOYW1l c3BhY2UocmVsbmFtZXNwYWNlKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCiAJCQkJCSBlcnJtc2coInBlcm1pc3Npb24g ZGVuaWVkIHRvIGNyZWF0ZSBcIiVzXCIiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9u Y21kcy5jCmluZGV4IGE3NmZjZjNhM2UzLi5lNGY5NTE0YTIxMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgImFjY2Vz cy90YWJsZS5oIgogI2luY2x1ZGUgImFjY2Vzcy90d29waGFzZS5oIgogI2luY2x1ZGUgImFjY2Vz cy94YWN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKQEAgLTg2LDYgKzg3LDEyIEBACiAvKiBjaGVjayBp ZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNkZWZpbmUgSXNTZXQodmFsLCBiaXRzKSAg KCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQogCisvKgorICogVGhpcyB3aWxsIGJlIHNldCBi eSB0aGUgcGdfdXBncmFkZV9zdXBwb3J0IGZ1bmN0aW9uIC0tCisgKiBiaW5hcnlfdXBncmFkZV9z ZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKCkuCisgKi8KK09pZAkJCWJpbmFyeV91cGdyYWRl X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IEludmFsaWRPaWQ7CisKIC8qCiAgKiBTdHJ1Y3R1 cmUgdG8gaG9sZCBhIGJpdG1hcCByZXByZXNlbnRpbmcgdGhlIHVzZXItcHJvdmlkZWQgQ1JFQVRF L0FMVEVSCiAgKiBTVUJTQ1JJUFRJT04gY29tbWFuZCBvcHRpb25zIGFuZCB0aGUgcGFyc2VkL2Rl ZmF1bHQgdmFsdWVzIG9mIGVhY2ggb2YgdGhlbS4KQEAgLTgyOCw4ICs4MzUsMjEgQEAgQ3JlYXRl U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAq c3RtdCwKIAltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CiAJbWVtc2V0KG51bGxz LCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CiAKLQlzdWJpZCA9IEdldE5ld09pZFdpdGhJbmRleChy ZWwsIFN1YnNjcmlwdGlvbk9iamVjdEluZGV4SWQsCi0JCQkJCQkJICAgQW51bV9wZ19zdWJzY3Jp cHRpb25fb2lkKTsKKwkvKiBVc2UgYmluYXJ5LXVwZ3JhZGUgb3ZlcnJpZGUgZm9yIHBnX3N1YnNj cmlwdGlvbi5vaWQ/ICovCisJaWYgKElzQmluYXJ5VXBncmFkZSkKKwl7CisJCWlmICghT2lkSXNW YWxpZChiaW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQpKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks CisJCQkJCSBlcnJtc2coInBnX3N1YnNjcmlwdGlvbiBPSUQgdmFsdWUgbm90IHNldCB3aGVuIGlu IGJpbmFyeSB1cGdyYWRlIG1vZGUiKSkpOworCisJCXN1YmlkID0gYmluYXJ5X3VwZ3JhZGVfbmV4 dF9wZ19zdWJzY3JpcHRpb25fb2lkOworCQliaW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlw dGlvbl9vaWQgPSBJbnZhbGlkT2lkOworCX0KKwllbHNlCisJCXN1YmlkID0gR2V0TmV3T2lkV2l0 aEluZGV4KHJlbCwgU3Vic2NyaXB0aW9uT2JqZWN0SW5kZXhJZCwKKwkJCQkJCQkJICAgQW51bV9w Z19zdWJzY3JpcHRpb25fb2lkKTsKKwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9vaWQg LSAxXSA9IE9iamVjdElkR2V0RGF0dW0oc3ViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlw dGlvbl9zdWJkYmlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKE15RGF0YWJhc2VJZCk7CiAJdmFs dWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNraXBsc24gLSAxXSA9IExTTkdldERhdHVtKElu dmFsaWRYTG9nUmVjUHRyKTsKQEAgLTE1NDEsMTggKzE1NjEsNDAgQEAgYWx0ZXJfc3ViX2NvbmZs aWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLCBDb25mbGljdExvZ0Rlc3Qgb2xkbG9nZGVz dCwKIAkJewogCQkJT2JqZWN0QWRkcmVzcyBjbHRhZGRyOwogCQkJT2JqZWN0QWRkcmVzcyBzdWJv Ymo7CisJCQljaGFyICAgICAgICAgIHJlbG5hbWVbTkFNRURBVEFMRU5dOwogCi0JCQlyZWxpZCA9 IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwgc3ViLT5vd25l cik7Ci0JCQl1cGRhdGVfcmVsaWQgPSB0cnVlOworCQkJc25wcmludGYocmVsbmFtZSwgTkFNRURB VEFMRU4sIENPTkZMSUNUX0xPR19SRUxBVElPTl9OQU1FX0ZNVCwgc3ViLT5vaWQpOwogCiAJCQkv KgotCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29u ZmxpY3QgbG9nIHRhYmxlCi0JCQkgKiBhbmQgdGhlIHN1YnNjcmlwdGlvbi4gIEZvciBkZXRhaWxz IHJlZmVyIGNvbW1lbnRzIGluCi0JCQkgKiBDcmVhdGVTdWJzY3JpcHRpb24gZnVuY3Rpb24uCisJ CQkgKiBJbiB1cGdyYWRlIHNjZW5hcmlvcywgb2xkX2Rlc3QgcmVmbGVjdHMgdGhlIGRlZmF1bHQg YmVoYXZpb3Igb2YKKwkJCSAqIGEgbmV3bHkgY3JlYXRlZCBzdWJzY3JpcHRpb24gKGkuZS4sIG5v IGNvbmZsaWN0IGxvZ2dpbmcgdG8KKwkJCSAqIHRhYmxlKSBIb3dldmVyLCB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlIHdpbGwgYWxyZWFkeSBleGlzdCBmcm9tCisJCQkgKiB0aGUgdXBncmFkZWQgY2x1 c3Rlci4gIEluIHN1Y2ggY2FzZXMsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoZQorCQkJICogcHJlLWV4 aXN0aW5nIHRhYmxlIGFuZCB1cGRhdGUgdGhlIGNhdGFsb2cgc3RhdGUgdG8gYXNzb2NpYXRlIGl0 CisJCQkgKiB3aXRoIHRoZSBzdWJzY3JpcHRpb24gaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBv bmUuCisJCQkgKi8KKwkJCXJlbGlkID0gZ2V0X3JlbG5hbWVfcmVsaWQocmVsbmFtZSwgUEdfQ09O RkxJQ1RfTkFNRVNQQUNFKTsKKwkJCWlmIChPaWRJc1ZhbGlkKHJlbGlkKSkKKwkJCXsKKwkJCQkv KiBFeGlzdGluZyB0YWJsZSBmcm9tIHVwZ3JhZGUgKi8KKwkJCQlBc3NlcnQoSXNCaW5hcnlVcGdy YWRlKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9s b2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwKKwkJCQkJCQkJCQkJCSAgc3ViLT5vd25lcik7 CisJCQl9CisKKwkJCS8qCisJCQkgKiBFc3RhYmxpc2ggYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSBi ZXR3ZWVuIHRoZSBjb25mbGljdCBsb2cKKwkJCSAqIHRhYmxlIGFuZCB0aGUgc3Vic2NyaXB0aW9u LiAgUmVmZXIgdG8gY29tbWVudHMgaW4gdGhlCisJCQkgKiBDcmVhdGVTdWJzY3JpcHRpb24gZnVu Y3Rpb24gZm9yIGRldGFpbHMuCiAJCQkgKi8KIAkJCU9iamVjdEFkZHJlc3NTZXQoY2x0YWRkciwg UmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CiAJCQlPYmplY3RBZGRyZXNzU2V0KHN1Ym9iaiwg U3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQpOwogCQkJcmVjb3JkRGVwZW5kZW5jeU9u KCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKworCQkJdXBkYXRlX3Jl bGlkID0gdHJ1ZTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9j b25mbGljdC5jCmluZGV4IDZiZjNkNmQ1YTQ0Li40Y2FkMGVhZjcwYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTc4LDcgKzE3OCw3IEBAIGNyZWF0 ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lLCBPaWQgc3Vib3du ZXIpCiAJT2lkCQkJcmVsaWQ7CiAJY2hhciAgICAJcmVsbmFtZVtOQU1FREFUQUxFTl07CiAKLQlz bnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgInBnX2NvbmZsaWN0X2xvZ18ldSIsIHN1Ymlk KTsKKwlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgQ09ORkxJQ1RfTE9HX1JFTEFUSU9O X05BTUVfRk1ULCBzdWJpZCk7CiAKIAkvKgogCSAqIENoZWNrIGZvciBhbiBleGlzdGluZyB0YWJs ZSB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZS4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYwppbmRleCBiNTA1YTZiNGZlZS4u NTljM2U3ZjAxNDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRl X3N1cHBvcnQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0 LmMKQEAgLTE4MSw2ICsxODEsMTYgQEAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlk X29pZChQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9WT0lEKCk7CiB9CiAKK0RhdHVtCiti aW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisJT2lkCQkJc3ViaWQgPSBQR19HRVRBUkdfT0lEKDApOworCisJQ0hFQ0tfSVNfQklO QVJZX1VQR1JBREU7CisJYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkID0g c3ViaWQ7CisJUEdfUkVUVVJOX1ZPSUQoKTsKK30KKwogRGF0dW0KIGJpbmFyeV91cGdyYWRlX2Ny ZWF0ZV9lbXB0eV9leHRlbnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIHsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IGEwZjdmOGUyMTY4Li5hMmQ2NjJhYzY5ZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xOTgxLDYgKzE5ODEs OCBAQCBjaGVja0V4dGVuc2lvbk1lbWJlcnNoaXAoRHVtcGFibGVPYmplY3QgKmRvYmosIEFyY2hp dmUgKmZvdXQpCiBzdGF0aWMgdm9pZAogc2VsZWN0RHVtcGFibGVOYW1lc3BhY2UoTmFtZXNwYWNl SW5mbyAqbnNpbmZvLCBBcmNoaXZlICpmb3V0KQogeworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91 dC0+ZG9wdDsKKwogCS8qCiAJICogRFVNUF9DT01QT05FTlRfREVGSU5JVElPTiB0eXBpY2FsbHkg aW1wbGllcyBhIENSRUFURSBTQ0hFTUEgc3RhdGVtZW50CiAJICogYW5kIChmb3IgLS1jbGVhbikg YSBEUk9QIFNDSEVNQSBzdGF0ZW1lbnQuICAoSW4gdGhlIGFic2VuY2Ugb2YKQEAgLTIwMTAsNiAr MjAxMiwzMiBAQCBzZWxlY3REdW1wYWJsZU5hbWVzcGFjZShOYW1lc3BhY2VJbmZvICpuc2luZm8s IEFyY2hpdmUgKmZvdXQpCiAJCSAqLwogCQluc2luZm8tPmRvYmouZHVtcF9jb250YWlucyA9IG5z aW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05FTlRfQUNMOwogCX0KKwllbHNlIGlmIChzdHJj bXAobnNpbmZvLT5kb2JqLm5hbWUsICJwZ19jb25mbGljdCIpID09IDApCisJeworCQlpZiAoZG9w dC0+YmluYXJ5X3VwZ3JhZGUpCisJCXsKKwkJCS8qCisJCQkgKiBUaGUgcGdfY29uZmxpY3Qgc2No ZW1hIGlzIGEgc3RyYW5nZSBiZWFzdCB0aGF0IHNpdHMgaW4gYSBzb3J0CisJCQkgKiBvZiBuby1t YW5zLWxhbmQgYmV0d2VlbiBiZWluZyBhIHN5c3RlbSBvYmplY3QgYW5kIGEgdXNlcgorCQkJICog b2JqZWN0LiBDUkVBVEUgU0NIRU1BIHdvdWxkIGZhaWwsIHNvIGl0cworCQkJICogRFVNUF9DT01Q T05FTlRfREVGSU5JVElPTiBpcyBqdXN0IGEgY29tbWVudC4KKwkJCSAqLworCQkJbnNpbmZvLT5j cmVhdGUgPSBmYWxzZTsKKwkJCW5zaW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05FTlRfQUxM OworCQkJbnNpbmZvLT5kb2JqLmR1bXAgJj0gfkRVTVBfQ09NUE9ORU5UX0RFRklOSVRJT047CisJ CQluc2luZm8tPmRvYmouZHVtcF9jb250YWlucyA9IERVTVBfQ09NUE9ORU5UX0FMTDsKKworCQkJ LyoKKwkJCSAqIEFsc28sIG1ha2UgbGlrZSBpdCBoYXMgYSBjb21tZW50IGV2ZW4gaWYgaXQgZG9l c24ndDsgdGhpcyBpcyBzbworCQkJICogdGhhdCB3ZSdsbCBlbWl0IGEgY29tbWFuZCB0byBkcm9w IHRoZSBjb21tZW50LCBpZiBhcHByb3ByaWF0ZS4KKwkJCSAqIChXaXRob3V0IHRoaXMsIHdlJ2Qg bm90IGNhbGwgZHVtcENvbW1lbnRFeHRlbmRlZCBmb3IgaXQuKQorCQkJICovCisJCQluc2luZm8t PmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9DT01NRU5UOworCQl9CisJCWVsc2UK KwkJCW5zaW5mby0+ZG9iai5kdW1wX2NvbnRhaW5zID0gbnNpbmZvLT5kb2JqLmR1bXAgPQorCQkJ CURVTVBfQ09NUE9ORU5UX05PTkU7CisJfQogCWVsc2UgaWYgKHN0cm5jbXAobnNpbmZvLT5kb2Jq Lm5hbWUsICJwZ18iLCAzKSA9PSAwIHx8CiAJCQkgc3RyY21wKG5zaW5mby0+ZG9iai5uYW1lLCAi aW5mb3JtYXRpb25fc2NoZW1hIikgPT0gMCkKIAl7CkBAIC0yMDY3LDkgKzIwOTUsMzggQEAgc2Vs ZWN0RHVtcGFibGVOYW1lc3BhY2UoTmFtZXNwYWNlSW5mbyAqbnNpbmZvLCBBcmNoaXZlICpmb3V0 KQogc3RhdGljIHZvaWQKIHNlbGVjdER1bXBhYmxlVGFibGUoVGFibGVJbmZvICp0YmluZm8sIEFy Y2hpdmUgKmZvdXQpCiB7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCiAJaWYg KGNoZWNrRXh0ZW5zaW9uTWVtYmVyc2hpcCgmdGJpbmZvLT5kb2JqLCBmb3V0KSkKIAkJcmV0dXJu OwkJCQkJLyogZXh0ZW5zaW9uIG1lbWJlcnNoaXAgb3ZlcnJpZGVzIGFsbCBlbHNlICovCiAKKwlp ZiAoc3RyY21wKHRiaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgInBnX2NvbmZsaWN0 IikgPT0gMCkKKwl7CisJCS8qCisJCSAqIER1bXAgcGdfY29uZmxpY3QgdGFibGVzIG9ubHkgZHVy aW5nIGJpbmFyeSB1cGdyYWRlLiBUaGUgc2NoZW1hIGlzCisJCSAqIGFzc3VtZWQgdG8gYWxyZWFk eSBleGlzdC4KKwkJICovCisJCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSkKKwkJeworCQkJdGJp bmZvLT5kb2JqLmR1bXAgPSBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OOworCisJCQkvKgorCQkJ ICogU3VwcHJlc3MgdGhlICJBTFRFUiBUQUJMRSAuLi4gT1dORVIgVE8gLi4uIiBjb21tYW5kIGZv ciB0aGlzCisJCQkgKiB0YWJsZS4gVGhpcyBwcmV2ZW50cyBwZ19kdW1wIGZyb20gb3V0cHV0dGlu ZyB0aGUgb3duZXIgY2hhbmdlLgorCQkJICovCisJCQl0YmluZm8tPnJvbG5hbWUgPSBOVUxMOwor CQl9CisJCWVsc2UKKwkJCXRiaW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05FTlRfTk9ORTsK KworCQkvKgorCQkgKiBEbyBub3QgYXBwbHkgdGFibGUgc2VsZWN0aW9uIG9yIGV4Y2x1c2lvbiBy dWxlcyB0byBwZ19jb25mbGljdAorCQkgKiB0YWJsZXMuIER1cmluZyBiaW5hcnkgdXBncmFkZSwg dGhlc2UgdGFibGVzIGFyZSBkdW1wZWQgdG8gcHJlc2VydmUKKwkJICogY2F0YWxvZyBzdGF0ZTsg b3RoZXJ3aXNlLCB0aGV5IGFyZSBub3QgZHVtcGVkIGF0IGFsbC4KKwkJICovCisJCXJldHVybjsK Kwl9CisKIAkvKgogCSAqIElmIHNwZWNpZmljIHRhYmxlcyBhcmUgYmVpbmcgZHVtcGVkLCBkdW1w IGp1c3QgdGhvc2UgdGFibGVzOyBlbHNlLCBkdW1wCiAJICogYWNjb3JkaW5nIHRvIHRoZSBwYXJl bnQgbmFtZXNwYWNlJ3MgZHVtcCBmbGFnLgpAQCAtNTE4NCw2ICs1MjQxLDggQEAgZ2V0U3Vic2Ny aXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfc3ViZmFpbG92ZXI7CiAJaW50CQkJaV9z dWJyZXRhaW5kZWFkdHVwbGVzOwogCWludAkJCWlfc3VibWF4cmV0ZW50aW9uOworCWludAkJCWlf c3ViY29uZmxpY3Rsb2dyZWxpZDsKKwlpbnQJCQlpX3N1YmxvZ2Rlc3RpbmF0aW9uOwogCWludAkJ CWksCiAJCQkJbnR1cHM7CiAKQEAgLTUyODIsOSArNTM0MSwxNiBAQCBnZXRTdWJzY3JpcHRpb25z KEFyY2hpdmUgKmZvdXQpCiAJCQkJCQkJICIgJy0xJyBBUyBzdWJ3YWxyY3Z0aW1lb3V0LFxuIik7 CiAKIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAwMDApCi0JCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LCAiIGZzLnNydm5hbWUgQVMgc3Vic2VydmVybmFtZVxuIik7CisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIGZzLnNydm5hbWUgQVMgc3Vic2VydmVybmFtZSxcbiIp OworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgTlVMTCBBUyBzdWJzZXJ2 ZXJuYW1lLFxuIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAwMDApCisJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiIHMuc3ViY29uZmxpY3Rsb2dyZWxp ZCwgcy5zdWJjb25mbGljdGxvZ2Rlc3RcbiIpOwogCWVsc2UKLQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgTlVMTCBBUyBzdWJzZXJ2ZXJuYW1lXG4iKTsKKwkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksCisJCQkJCQkJICIgTlVMTCBBUyBzdWJjb25mbGljdGxvZ3JlbGlkLCBOVUxM IEFTIHN1YmNvbmZsaWN0bG9nZGVzdFxuIik7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwKIAkJCQkJCSAiRlJPTSBwZ19zdWJzY3JpcHRpb24gc1xuIik7CkBAIC01MzMzLDYgKzUzOTks OCBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaV9zdWJwdWJsaWNhdGlvbnMg PSBQUWZudW1iZXIocmVzLCAic3VicHVibGljYXRpb25zIik7CiAJaV9zdWJvcmlnaW4gPSBQUWZu dW1iZXIocmVzLCAic3Vib3JpZ2luIik7CiAJaV9zdWJvcmlnaW5yZW1vdGVsc24gPSBQUWZudW1i ZXIocmVzLCAic3Vib3JpZ2lucmVtb3RlbHNuIik7CisJaV9zdWJjb25mbGljdGxvZ3JlbGlkID0g UFFmbnVtYmVyKHJlcywgInN1YmNvbmZsaWN0bG9ncmVsaWQiKTsKKwlpX3N1YmxvZ2Rlc3RpbmF0 aW9uID0gUFFmbnVtYmVyKHJlcywgInN1YmNvbmZsaWN0bG9nZGVzdCIpOwogCiAJc3ViaW5mbyA9 IHBnX21hbGxvY19hcnJheShTdWJzY3JpcHRpb25JbmZvLCBudHVwcyk7CiAKQEAgLTUzOTEsNiAr NTQ1OSwzMiBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJCQlzdWJpbmZvW2ld LnN1Ym9yaWdpbnJlbW90ZWxzbiA9CiAJCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3N1Ym9yaWdpbnJlbW90ZWxzbikpOwogCisJCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfc3Vi Y29uZmxpY3Rsb2dyZWxpZCkpCisJCQlzdWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9ncmVsaWQgPSBJ bnZhbGlkT2lkOworCQllbHNlCisJCXsKKwkJCXN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dyZWxp ZCA9CisJCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmNvbmZsaWN0bG9ncmVsaWQp KTsKKworCQkJaWYgKHN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dyZWxpZCkKKwkJCXsKKwkJCQlU YWJsZUluZm8gICp0YWJsZUluZm87CisKKwkJCQl0YWJsZUluZm8gPSBmaW5kVGFibGVCeU9pZChz dWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9ncmVsaWQpOworCQkJCWlmICghdGFibGVJbmZvKQorCQkJ CQlwZ19mYXRhbCgiY291bGQgbm90IGZpbmQgY29uZmxpY3QgbG9nIHRhYmxlIHdpdGggT0lEICV1 IiwKKwkJCQkJCQkgc3ViaW5mb1tpXS5zdWJjb25mbGljdGxvZ3JlbGlkKTsKKworCQkJCWFkZE9i amVjdERlcGVuZGVuY3koJnN1YmluZm9baV0uZG9iaiwgdGFibGVJbmZvLT5kb2JqLmR1bXBJZCk7 CisJCQl9CisJCX0KKworCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3N1YmxvZ2Rlc3RpbmF0 aW9uKSkKKwkJCXN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dkZXN0ID0gTlVMTDsKKwkJZWxzZQor CQkJc3ViaW5mb1tpXS5zdWJjb25mbGljdGxvZ2Rlc3QgPQorCQkJCXBnX3N0cmR1cChQUWdldHZh bHVlKHJlcywgaSwgaV9zdWJsb2dkZXN0aW5hdGlvbikpOworCiAJCS8qIERlY2lkZSB3aGV0aGVy IHdlIHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHN1YmluZm9b aV0uZG9iaiksIGZvdXQpOwogCX0KQEAgLTU1ODMsNiArNTY3NywxNCBAQCBkdW1wU3Vic2NyaXB0 aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pCiAJYXBw ZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgU1VCU0NSSVBUSU9OICVzO1xuIiwKIAkJCQkJICBx c3VibmFtZSk7CiAKKwlpZiAoZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCisJeworCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIlxuLS0gRm9yIGJpbmFyeSB1cGdyYWRlLCBtdXN0IHByZXNlcnZl IHBnX3N1YnNjcmlwdGlvbi5vaWRcbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJ CQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLmJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNj cmlwdGlvbl9vaWQoJyV1Jzo6cGdfY2F0YWxvZy5vaWQpO1xuXG4iLAorCQkJCQkJICBzdWJpbmZv LT5kb2JqLmNhdElkLm9pZCk7CisJfQorCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVB VEUgU1VCU0NSSVBUSU9OICVzICIsCiAJCQkJCSAgcXN1Ym5hbWUpOwogCWlmIChzdWJpbmZvLT5z dWJzZXJ2ZXJuYW1lKQpAQCAtNTY1Niw2ICs1NzU4LDI1IEBAIGR1bXBTdWJzY3JpcHRpb24oQXJj aGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3ViaW5mbykKIAogCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LCAiKTtcbiIpOwogCisJLyoKKwkgKiBSZXN0b3JlIHRoZSBjb25m bGljdCBsb2cgZGVzdGluYXRpb24gc2VwYXJhdGVseSBmcm9tIENSRUFURSBTVUJTQ1JJUFRJT04u CisJICogU2V0dGluZyBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gdG8gJ3RhYmxlJyBtYXkgY3Jl YXRlIGFuZCBhc3NvY2lhdGUKKwkgKiBhIGNvbmZsaWN0IGxvZyB0YWJsZSB3aG9zZSBuYW1lIGlz IGRlcml2ZWQgZnJvbSB0aGUgc3Vic2NyaXB0aW9uIE9JRC4KKwkgKiBTaW5jZSB0aGUgc3Vic2Ny aXB0aW9uIG11c3QgYWxyZWFkeSBleGlzdCBiZWZvcmUgdGhhdCBPSUQgaXMga25vd24sCisJICog ZW1pdCB0aGlzIGFzIGEgc2VwYXJhdGUgQUxURVIgU1VCU0NSSVBUSU9OIHNvIHRoYXQgYW55IHJl cXVpcmVkIGNvbmZsaWN0CisJICogbG9nIHRhYmxlIGNhbiBiZSBjcmVhdGVkIGFuZCBsaW5rZWQg YWZ0ZXIgdGhlIHN1YnNjcmlwdGlvbiBpdHNlbGYgaGFzCisJICogYmVlbiByZXN0b3JlZC4KKwkg KgorCSAqIFdlIHNraXAgdGhlIGRlZmF1bHQgdmFsdWUgKCdsb2cnKSB0byBtYXRjaCB0aGUgaGFu ZGxpbmcgb2Ygb3RoZXIKKwkgKiBzdWJzY3JpcHRpb24gb3B0aW9ucy4KKwkgKi8KKwlpZiAoc3Vi aW5mby0+c3ViY29uZmxpY3Rsb2dkZXN0ICYmCisJCShwZ19zdHJjYXNlY21wKHN1YmluZm8tPnN1 YmNvbmZsaWN0bG9nZGVzdCwgImxvZyIpICE9IDApKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwKKwkJCQkJCSAgIlxuXG5BTFRFUiBTVUJTQ1JJUFRJT04gJXMgU0VUIChjb25mbGljdF9sb2df ZGVzdGluYXRpb24gPSAlcyk7XG4iLAorCQkJCQkJICBxc3VibmFtZSwKKwkJCQkJCSAgc3ViaW5m by0+c3ViY29uZmxpY3Rsb2dkZXN0KTsKKwogCS8qCiAJICogSW4gYmluYXJ5LXVwZ3JhZGUgbW9k ZSwgd2UgYWxsb3cgdGhlIHJlcGxpY2F0aW9uIHRvIGNvbnRpbnVlIGFmdGVyIHRoZQogCSAqIHVw Z3JhZGUuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaAppbmRleCA1YTY3MjZkOGIxMi4uYTQzYTMwNDkzNDMgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaApAQCAtNzIyLDYgKzcyMiw3IEBAIHR5cGVkZWYgc3RydWN0IF9TdWJzY3JpcHRpb25JbmZv CiAJYm9vbAkJc3ViZmFpbG92ZXI7CiAJYm9vbAkJc3VicmV0YWluZGVhZHR1cGxlczsKIAlpbnQJ CQlzdWJtYXhyZXRlbnRpb247CisJT2lkCQkJc3ViY29uZmxpY3Rsb2dyZWxpZDsKIAljaGFyCSAg ICpzdWJzZXJ2ZXJuYW1lOwogCWNoYXIJICAgKnN1YmNvbm5pbmZvOwogCWNoYXIJICAgKnN1YnNs b3RuYW1lOwpAQCAtNzMwLDYgKzczMSw3IEBAIHR5cGVkZWYgc3RydWN0IF9TdWJzY3JpcHRpb25J bmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogCWNoYXIJICAgKnN1Ym9yaWdpbjsKIAlj aGFyCSAgICpzdWJvcmlnaW5yZW1vdGVsc247CisJY2hhcgkgICAqc3ViY29uZmxpY3Rsb2dkZXN0 OwogfSBTdWJzY3JpcHRpb25JbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDAz ZTVjMWMxMTE2Li5jMjdiMjMyZTc5OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtMTEzMSw2 ICsxMTMxLDE5IEBAIHJlcGFpclRhYmxlQXR0ckRlZk11bHRpTG9vcChEdW1wYWJsZU9iamVjdCAq dGFibGVvYmosCiAJYWRkT2JqZWN0RGVwZW5kZW5jeShhdHRyZGVmb2JqLCB0YWJsZW9iai0+ZHVt cElkKTsKIH0KIAorLyoKKyAqIEJlY2F1c2Ugd2UgbWFrZSBzdWJzY3JpcHRpb25zIGRlcGVuZCBv biB0aGVpciBjb25mbGljdCBsb2cgdGFibGVzLCB3aGlsZQorICogdGhlcmUgaXMgYW4gYXV0b21h dGljIGRlcGVuZGVuY3kgaW4gdGhlIG90aGVyIGRpcmVjdGlvbiwgd2UgbmVlZCB0byBicmVhawor ICogdGhlIGxvb3AuIFJlbW92ZSB0aGUgYXV0b21hdGljIGRlcGVuZGVuY3ksIGFsbG93aW5nIHRo ZSB0YWJsZSB0byBiZSBjcmVhdGVkCisgKiBmaXJzdC4KKyAqLworc3RhdGljIHZvaWQKK3JlcGFp clN1YnNjcmlwdGlvblRhYmxlTG9vcChEdW1wYWJsZU9iamVjdCAqc3Vib2JqLCBEdW1wYWJsZU9i amVjdCAqdGFibGVvYmopCit7CisJLyogUmVtb3ZlIHRhYmxlJ3MgZGVwZW5kZW5jeSBvbiBzdWJz Y3JpcHRpb24gKi8KKwlyZW1vdmVPYmplY3REZXBlbmRlbmN5KHRhYmxlb2JqLCBzdWJvYmotPmR1 bXBJZCk7Cit9CisKIC8qCiAgKiBDSEVDSywgTk9UIE5VTEwgY29uc3RyYWludHMgb24gZG9tYWlu cyB3b3JrIGp1c3QgbGlrZSB0aG9zZSBvbiB0YWJsZXMgLi4uCiAgKi8KQEAgLTEzNjEsNiArMTM3 NCwyNCBAQCByZXBhaXJEZXBlbmRlbmN5TG9vcChEdW1wYWJsZU9iamVjdCAqKmxvb3AsCiAJCXJl dHVybjsKIAl9CiAKKwkvKgorCSAqIFN1YnNjcmlwdGlvbiBhbmQgaXRzIENvbmZsaWN0IExvZyBU YWJsZQorCSAqLworCWlmIChuTG9vcCA9PSAyICYmCisJCWxvb3BbMF0tPm9ialR5cGUgPT0gRE9f VEFCTEUgJiYKKwkJbG9vcFsxXS0+b2JqVHlwZSA9PSBET19TVUJTQ1JJUFRJT04pCisJeworCQly ZXBhaXJTdWJzY3JpcHRpb25UYWJsZUxvb3AobG9vcFsxXSwgbG9vcFswXSk7CisJCXJldHVybjsK Kwl9CisJaWYgKG5Mb29wID09IDIgJiYKKwkJbG9vcFswXS0+b2JqVHlwZSA9PSBET19TVUJTQ1JJ UFRJT04gJiYKKwkJbG9vcFsxXS0+b2JqVHlwZSA9PSBET19UQUJMRSkKKwl7CisJCXJlcGFpclN1 YnNjcmlwdGlvblRhYmxlTG9vcChsb29wWzBdLCBsb29wWzFdKTsKKwkJcmV0dXJuOworCX0KKwog CS8qIGluZGV4IG9uIHBhcnRpdGlvbmVkIHRhYmxlIGFuZCBjb3JyZXNwb25kaW5nIGluZGV4IG9u IHBhcnRpdGlvbiAqLwogCWlmIChuTG9vcCA9PSAyICYmCiAJCWxvb3BbMF0tPm9ialR5cGUgPT0g RE9fSU5ERVggJiYKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs IGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggOTI1ODk0OGI1ODMuLjhj MjY1M2U4NTJlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAor KysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzMxNyw5ICszMzE3LDEw IEBAIG15ICV0ZXN0cyA9ICgKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVfc3FsID0+ ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjMKIAkJCQkJCSBDT05ORUNUSU9OIFwnZGJuYW1lPWRv ZXNub3RleGlzdFwnIFBVQkxJQ0FUSU9OIHB1YjEKLQkJCQkJCSBXSVRIIChjb25uZWN0ID0gZmFs c2UsIG9yaWdpbiA9IGFueSwgc3RyZWFtaW5nID0gb24pOycsCisJCQkJCQkgV0lUSCAoY29ubmVj dCA9IGZhbHNlLCBvcmlnaW4gPSBhbnksIHN0cmVhbWluZyA9IG9uLCBjb25mbGljdF9sb2dfZGVz dGluYXRpb249IHRhYmxlKTsnLAogCQlyZWdleHAgPT4gcXIvXgotCQkJXFFDUkVBVEUgU1VCU0NS SVBUSU9OIHN1YjMgQ09OTkVDVElPTiAnZGJuYW1lPWRvZXNub3RleGlzdCcgUFVCTElDQVRJT04g cHViMSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHNsb3RfbmFtZSA9ICdzdWIzJywgc3RyZWFtaW5n ID0gb24pO1xFCisJCQlcUUNSRUFURSBTVUJTQ1JJUFRJT04gc3ViMyBDT05ORUNUSU9OICdkYm5h bWU9ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiBwdWIxIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg c2xvdF9uYW1lID0gJ3N1YjMnLCBzdHJlYW1pbmcgPSBvbik7XEVcblxuXG4KKwkJCVxRQUxURVIg U1VCU0NSSVBUSU9OIHN1YjMgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSB0YWJsZSk7 XEUKIAkJCS94bSwKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+ IDEsIH0sCiAJCXVubGlrZSA9PiB7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdf dXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwppbmRleCAyMTI3ZDI5 N2JmZS4uMTM1ZWY2NThjMmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdy YWRlLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwpAQCAtMzUsNiArMzUs MTAgQEAKICAqCiAgKglXZSBjb250cm9sIGFsbCBhc3NpZ25tZW50cyBvZiBwZ19kYXRhYmFzZS5v aWQgYmVjYXVzZSB3ZSB3YW50IHRoZSBkaXJlY3RvcnkKICAqCW5hbWVzIHRvIG1hdGNoIGJldHdl ZW4gdGhlIG9sZCBhbmQgbmV3IGNsdXN0ZXIuCisgKgorICoJV2UgY29udHJvbCBhc3NpZ25tZW50 IG9mIHBnX3N1YnNjcmlwdGlvbi5vaWQgYmVjYXVzZSB3ZSB3YW50IHRoZSBvaWQgdG8KKyAqCW1h dGNoIGJldHdlZW4gdGhlIG9sZCBhbmQgbmV3IGNsdXN0ZXIgdG8gbWFrZSB1c2Ugb2Ygc3Vic2Ny aXB0aW9uJ3MKKyAqCWNvbmZsaWN0IGxvZyB0YWJsZSB3aGljaCBpcyBuYW1lZCB1c2luZyB0aGUg c3Vic2NyaXB0aW9uIG9pZC4KICAqLwogCiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFk ZS90LzAwNF9zdWJzY3JpcHRpb24ucGwgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRfc3Vic2Ny aXB0aW9uLnBsCmluZGV4IGM5NGE4MmRlYWUwLi43M2YwMGQyNDI2YyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbAorKysgYi9zcmMvYmluL3BnX3Vw Z3JhZGUvdC8wMDRfc3Vic2NyaXB0aW9uLnBsCkBAIC0yOTAsNyArMjkwLDcgQEAgJHB1Ymxpc2hl ci0+c2FmZV9wc3FsKAogJG9sZF9zdWItPnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcVsKIAkJ Q1JFQVRFIFRBQkxFIHRhYl91cGdyYWRlZDIoaWQgaW50KTsKLQkJQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX3N1YjUgQ09OTkVDVElPTiAnJGNvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3Nf cHViNTsKKwkJQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3N1YjUgQ09OTkVDVElPTiAnJGNv bm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViNSB3aXRoIChjb25mbGljdF9sb2dfZGVzdGlu YXRpb24gPSAndGFibGUnKTsKIF0pOwogCiAjIFRoZSB0YWJsZSB0YWJfdXBncmFkZWQyIHdpbGwg YmUgaW4gdGhlIGluaXQgc3RhdGUgYXMgdGhlIHN1YnNjcmliZXIncwpAQCAtMzEyLDcgKzMxMiwx MCBAQCBteSAkdGFiX3VwZ3JhZGVkMV9vaWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCiAJIlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3RhYl91cGdy YWRlZDEnIik7CiBteSAkdGFiX3VwZ3JhZGVkMl9vaWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCiAJIlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Rh Yl91cGdyYWRlZDInIik7Ci0KK215ICRzdWI1X29pZCA9ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiB3aGVyZSBzdWJuYW1l ID0gJ3JlZ3Jlc3Nfc3ViNSciKTsKK215ICRzdWJfY2x0X3JlbGlkID0gJG9sZF9zdWItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dyZWxpZCBGUk9NIHBnX3N1 YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3Nfc3ViNSciKTsKICRvbGRfc3ViLT5z dG9wOwogCiAjIENoYW5nZSBjb25maWd1cmF0aW9uIHNvIHRoYXQgaW5pdGlhbCB0YWJsZSBzeW5j IGRvZXMgbm90IGdldCBzdGFydGVkCkBAIC0zOTQsNiArMzk3LDEzIEBAICRyZXN1bHQgPSAkbmV3 X3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiApOwogaXMoJHJlc3VsdCwgcXEodCksICJjb25m bGljdCBkZXRlY3Rpb24gc2xvdCBleGlzdHMiKTsKIAorIyBUaGUgc3Vic2NyaXB0aW9uIG9pZCBh bmQgdGhlIHN1YnNjcmlwdGlvbiBjb25mbGljdCBsb2cgdGFibGUgcmVsaWQgc2hvdWxkIGJlIHBy ZXNlcnZlZAorJHJlc3VsdCA9ICRuZXdfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCBvaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX3N1YjUn Iik7CitpcygkcmVzdWx0LCBxcSgkc3ViNV9vaWQpLCAic3Vic2NyaXB0aW9uIG9pZCBzaG91bGQg aGF2ZSBiZWVuIHByZXNlcnZlZCIpOworCiskcmVzdWx0ID0gJG5ld19zdWItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiU0VMRUNUIHN1YmNvbmZsaWN0bG9ncmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRp b24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX3N1YjUnIik7CitpcygkcmVzdWx0LCBxcSgkc3Vi X2NsdF9yZWxpZCksICJzdWJzY3JpcHRpb24gY29uZmxpY3QgbG9nIHRhYmxlIHJlbGlkIHNob3Vs ZCBoYXZlIGJlZW4gcHJlc2VydmVkIik7CisKICMgUmVzdW1lIHRoZSBpbml0aWFsIHN5bmMgYW5k IHdhaXQgdW50aWwgYWxsIHRhYmxlcyBvZiBzdWJzY3JpcHRpb24KICMgJ3JlZ3Jlc3Nfc3ViNScg YXJlIHN5bmNocm9uaXplZAogJG5ld19zdWItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYn LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oCmluZGV4IDdiZjdhZTQ0Mzg1Li5iMTVi MThlN2RjOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3JhZGUuaApAQCAtMzIsNiArMzIs NyBAQCBleHRlcm4gUEdETExJTVBPUlQgUmVsRmlsZU51bWJlciBiaW5hcnlfdXBncmFkZV9uZXh0 X3RvYXN0X3BnX2NsYXNzX3JlbGZpbGVudW1iZQogCiBleHRlcm4gUEdETExJTVBPUlQgT2lkIGJp bmFyeV91cGdyYWRlX25leHRfcGdfZW51bV9vaWQ7CiBleHRlcm4gUEdETExJTVBPUlQgT2lkIGJp bmFyeV91cGdyYWRlX25leHRfcGdfYXV0aGlkX29pZDsKK2V4dGVybiBQR0RMTElNUE9SVCBPaWQg YmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkOwogCiBleHRlcm4gUEdETExJ TVBPUlQgYm9vbCBiaW5hcnlfdXBncmFkZV9yZWNvcmRfaW5pdF9wcml2czsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggYmUxNTdhNWZiZTkuLjNiNTU1NDE1Y2JjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKQEAgLTExOTY5LDYgKzExOTY5LDEwIEBACiAgIHByb2lzc3RyaWN0ID0+ICdm JywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9wYXJhbGxlbCA9PiAndScsCiAgIHByb3JldHR5cGUg PT4gJ3ZvaWQnLCBwcm9hcmd0eXBlcyA9PiAnJywKICAgcHJvc3JjID0+ICdiaW5hcnlfdXBncmFk ZV9jcmVhdGVfY29uZmxpY3RfZGV0ZWN0aW9uX3Nsb3QnIH0sCit7IG9pZCA9PiAnODQwNycsIGRl c2NyID0+ICdmb3IgdXNlIGJ5IHBnX3VwZ3JhZGUnLAorICBwcm9uYW1lID0+ICdiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLAor ICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3ZvaWQnLCBwcm9hcmd0eXBlcyA9 PiAnb2lkJywKKyAgcHJvc3JjID0+ICdiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3Jp cHRpb25fb2lkJyB9LAogCiAjIGNvbnZlcnNpb24gZnVuY3Rpb25zCiB7IG9pZCA9PiAnNDMxMCcs IGRlc2NyID0+ICdpbnRlcm5hbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciBLT0k4UiB0byBXSU4x MjUxJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCmluZGV4IDQzMzhlNjYyMGI0 Li5lMjU0ZGVjYjQ0ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC0y MjEsNiArMjIxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAgKi8KICNkZWZpbmUg TE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwgJ3AnCiAKKy8qIENvbmZsaWN0IGxvZyB0YWJsZSBu YW1lIGZvcm1hdC4gJXUgaXMgcmVwbGFjZWQgd2l0aCB0aGUgc3Vic2NyaXB0aW9uIE9JRC4gKi8K KyNkZWZpbmUgQ09ORkxJQ1RfTE9HX1JFTEFUSU9OX05BTUVfRk1UICJwZ19jb25mbGljdF9sb2df JXUiCisKICNlbmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KIAogZXh0ZXJu IFN1YnNjcmlwdGlvbiAqR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29r LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9zcGdpc3RfbmFtZV9vcHMvZXhwZWN0ZWQv c3BnaXN0X25hbWVfb3BzLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVfb3BzL2V4 cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQKaW5kZXggMWVlNjVlZGUyNDMuLjM5ZDQzMzY4YzQy IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3RlZC9z cGdpc3RfbmFtZV9vcHMub3V0CisrKyBiL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVfb3Bz L2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQKQEAgLTU5LDExICs1OSwxMiBAQCBzZWxlY3Qg KiBmcm9tIHQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVfb2lk ICAgICAgIHwgIDEgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVf b2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZCAgICAgICAgICAgICAg ICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZAogIGJpbmFyeV91 cGdyYWRlX3NldF9uZXh0X3BnX2VudW1fb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX2VudW1fb2lkCisgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRf cGdfc3Vic2NyaXB0aW9uX29pZCAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25l eHRfcGdfc3Vic2NyaXB0aW9uX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3RhYmxl c3BhY2Vfb2lkICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3Rh Ymxlc3BhY2Vfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQgICAgICAg ICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQKICBi aW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQgICAgICAgICAgIHwgIDEg fCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQKICBiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF90b2FzdF9yZWxmaWxlbm9kZSAgICAgICAgICAgIHwgICAgfCBiaW5hcnlf dXBncmFkZV9zZXRfbmV4dF90b2FzdF9yZWxmaWxlbm9kZQotKDEzIHJvd3MpCisoMTQgcm93cykK IAogLS0gVmVyaWZ5IGNsZWFuIGZhaWx1cmUgd2hlbiBJTkNMVURFJ2QgY29sdW1ucyByZXN1bHQg aW4gb3Zlcmxlbmd0aCB0dXBsZQogLS0gVGhlIGVycm9yIG1lc3NhZ2UgZGV0YWlscyBhcmUgcGxh dGZvcm0tZGVwZW5kZW50LCBzbyBzaG93IG9ubHkgU1FMU1RBVEUKQEAgLTEwOCwxMSArMTA5LDEy IEBAIHNlbGVjdCAqIGZyb20gdAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFuZ2Vf cGdfdHlwZV9vaWQgICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFu Z2VfcGdfdHlwZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lkICAg ICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lk CiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQgICAgICAgICAgICAgICAgICB8 ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQKKyBiaW5hcnlfdXBncmFk ZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25l eHRfcGdfdGFibGVzcGFjZV9vaWQgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0 X25leHRfcGdfdGFibGVzcGFjZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190eXBl X29pZCAgICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190 eXBlX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZCAgICAg ICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZAog IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlICAgICAgICAgICAgfCAg ICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlCi0oMTMgcm93cykK KygxNCByb3dzKQogCiBcc2V0IFZFUkJPU0lUWSBzcWxzdGF0ZQogaW5zZXJ0IGludG8gdCB2YWx1 ZXMocmVwZWF0KCd4eXp6eScsIDEyKSwgNDIsIHJlcGVhdCgneHl6enknLCA0MDAwKSk7Ci0tIAoy LjQ5LjAKCg== --000000000000836a4f0654856cfe Content-Type: application/octet-stream; name="v52-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Disposition: attachment; filename="v52-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqjeukmp4 RnJvbSBiZGU0Y2M1NzA1OWM0ODlhY2RjNDdlYTM2OTNlMjc3ZGM0N2ZmZDhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTEgSnVuIDIwMjYgMTc6Mzc6MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1MiA1LzZd IEFkZCBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gdG8gZGVzY3JpYmUKIHN1YnNjcmlw dGlvbiBvdXRwdXQKCkRpc3BsYXkgdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIGFz IGEgZm9vdGVyIGluIFxkUnMrCm91dHB1dCB3aGVuIGNvbmZsaWN0IGxvZ2dpbmcgdG8gdGFibGUv YWxsIGlzIGVuYWJsZWQgZm9yIGEKc3Vic2NyaXB0aW9uLgoKUHJldmlvdXNseSwgc3Vic2NyaXB0 aW9ucyB3ZXJlIGRpc3BsYXllZCB1c2luZyBhIHNpbmdsZSB0YWJ1bGFyCm91dHB1dCBmb3JtYXQu IFNpbmNlIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaW5mb3JtYXRpb24gaXMgc3BlY2lmaWMKdG8g ZWFjaCBzdWJzY3JpcHRpb24gYW5kIGlzIGJldHRlciBzdWl0ZWQgYXMgYXV4aWxpYXJ5IGluZm9y bWF0aW9uLApjaGFuZ2UgdGhlIG91dHB1dCB0byBkaXNwbGF5IGVhY2ggc3Vic2NyaXB0aW9uIGlu ZGl2aWR1YWxseSBpbiBhCnJvdy13aXNlIHRhYmxlIGZvcm1hdCBhbmQgc2hvdyB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlIGFzIGEgZm9vdGVyCndoZW4gYXBwbGljYWJsZS4KClRPRE86IEVuc3VyZSBh bGwgMTkwMDAwIHNlcmllcyByZWZlcmVuY2VzIGFyZSB1cGRhdGVkIHRvIDIwMDAwMAp3aGVuIHRo ZSB2ZXJzaW9uIG51bWJlciBpcyBidW1wZWQuCgpUaGlzIGFwcHJvYWNoIHdhcyBjaG9zZW4gYmFz ZWQgb24gc3VnZ2VzdGlvbnMgYXQ6Cmh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvQ0FBNGVLMUtkS3FLa2FUcWNqM2luNmVoRF9oZzZvT2FDRl8tSnNWZmQ4TjZuUzhvVjlnJTQw bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKy0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAg ICB8IDQxMCArKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJz Y3JpcHRpb24ub3V0IHwgMTc2ICsrKystLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0MjkgaW5zZXJ0 aW9ucygrKSwgMTY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21t YW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDAxYjhmMTFhYWRkLi43NzdkMDU1 MzI0NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3Bz cWwvY29tbWFuZC5jCkBAIC0xMjIwLDcgKzEyMjAsMTAgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkK IAkJCQkJCQlzdWNjZXNzID0gbGlzdFB1YmxpY2F0aW9ucyhwYXR0ZXJuKTsKIAkJCQkJCWJyZWFr OwogCQkJCQljYXNlICdzJzoKLQkJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZVN1YnNjcmlwdGlvbnMo cGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQkJCWlmIChzaG93X3ZlcmJvc2UpCisJCQkJCQkJ c3VjY2VzcyA9IGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhwYXR0ZXJuKTsKKwkJCQkJCWVsc2UKKwkJ CQkJCQlzdWNjZXNzID0gbGlzdFN1YnNjcmlwdGlvbnMocGF0dGVybik7CiAJCQkJCQlicmVhazsK IAkJCQkJZGVmYXVsdDoKIAkJCQkJCXN0YXR1cyA9IFBTUUxfQ01EX1VOS05PV047CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmlu ZGV4IGFmMzkzNWIwMDc4Li42MzJjZWIxMmJlZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTIzLDYgKzIzLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbl9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jb25zdHJhaW50X2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RlZmF1bHRfYWNsX2QuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZV9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9jX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50X2QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX2QuaCIKQEAgLTcwODEsMTkgKzcwODIs MTcgQEAgZXJyb3JfcmV0dXJuOgogCiAvKgogICogXGRScwotICogRGVzY3JpYmVzIHN1YnNjcmlw dGlvbnMuCisgKiBMaXN0cyBzdWJzY3JpcHRpb25zLgogICoKICAqIFRha2VzIGFuIG9wdGlvbmFs IHJlZ2V4cCB0byBzZWxlY3QgcGFydGljdWxhciBzdWJzY3JpcHRpb25zCiAgKi8KIGJvb2wKLWRl c2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCits aXN0U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogewogCVBRRXhwQnVmZmVyRGF0 YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBv cHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwKLQkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0 ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQu c3ZlcnNpb24gPCAxMDAwMDApCiAJewpAQCAtNzEwOCwxMDEgKzcxMDcsMjM1IEBAIGRlc2NyaWJl U3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJaW5pdFBR RXhwQnVmZmVyKCZidWYpOwogCiAJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVzICovXG4i LCBfKCJHZXQgbWF0Y2hpbmcgc3Vic2NyaXB0aW9ucyIpKTsKKworCS8qIE9ubHkgZGlzcGxheSBz dWJzY3JpcHRpb25zIGluIGN1cnJlbnQgZGF0YWJhc2UuICovCiAJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJICAiU0VMRUNUIHN1Ym5hbWUgQVMgXCIlc1wiXG4iCiAJCQkJCSAgIiwgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHN1Ym93bmVyKSBBUyBcIiVzXCJcbiIKIAkJCQkJICAi LCAgc3ViZW5hYmxlZCBBUyBcIiVzXCJcbiIKLQkJCQkJICAiLCAgc3VicHVibGljYXRpb25zIEFT IFwiJXNcIlxuIiwKKwkJCQkJICAiLCAgc3VicHVibGljYXRpb25zIEFTIFwiJXNcIlxuIgorCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uXG4iCisJCQkJCSAgIldIRVJFIHN1 YmRiaWQgPSAoU0VMRUNUIG9pZFxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIEZST00gcGdf Y2F0YWxvZy5wZ19kYXRhYmFzZVxuIgorCQkJCQkgICIgICAgICAgICAgICAgICAgIFdIRVJFIGRh dG5hbWUgPSBwZ19jYXRhbG9nLmN1cnJlbnRfZGF0YWJhc2UoKSkiLAogCQkJCQkgIGdldHRleHRf bm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIkVuYWJsZWQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlB1YmxpY2F0aW9uIikp OwogCi0JaWYgKHZlcmJvc2UpCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBh dHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQlOVUxMLCAic3VibmFtZSIsIE5VTEwsCisJCQkJ CQkJCU5VTEwsCisJCQkJCQkJCU5VTEwsIDEpKQogCXsKLQkJLyogQmluYXJ5IG1vZGUgYW5kIHN0 cmVhbWluZyBhcmUgb25seSBzdXBwb3J0ZWQgaW4gdjE0IGFuZCBoaWdoZXIgKi8KLQkJaWYgKHBz ZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsi KTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7 CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCW15b3B0LnRpdGxlID0gXygiTGlzdCBv ZiBzdWJzY3JpcHRpb25zIik7CisJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJbXlv cHQudHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwlteW9wdC5uX3RyYW5z bGF0ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJcHJpbnRRdWVy eShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJ UFFjbGVhcihyZXMpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBBZGQgZm9vdGVyIHRv IHN1YnNjcmlwdGlvbiBkZXNjcmlwdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2FkZEZvb3RlclRv U3Vic2NyaXB0aW9uRGVzYyhjaGFyICpsb2dkZXN0LCBjaGFyICpjb25mbGljdF9zY2hlbWEsIE9p ZCBzdWJpZCwKKwkJCQkJCQlwcmludFRhYmxlQ29udGVudCAqY29uc3QgY29udCkKK3sKKwlpZiAo cHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJeworCQlpZiAoc3RyY21wKGxvZ2Rlc3QsICJ0YWJs ZSIpID09IDAgfHwgc3RyY21wKGxvZ2Rlc3QsICJhbGwiKSA9PSAwKQogCQl7Ci0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3ViYmluYXJ5IEFTIFwiJXNcIlxuIiwKLQkJ CQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IikpOworCQkJLyoKKwkJCSAqIFRoZSBzaXplIGFj Y291bnRzIGZvciBzY2hlbWEgbmFtZSAoTkFNRURBVEFMRU4pLCByZWxhdGlvbgorCQkJICogbmFt ZSAoTkFNRURBVEFMRU4pLCBzZXBhcmF0b3IgJy4nIGFuZCBudWxsIHRlcm1pbmF0b3IuCisJCQkg Ki8KKwkJCWNoYXIJCWNvbmZsaWN0bG9ndGFibGVbTkFNRURBVEFMRU4gKyBOQU1FREFUQUxFTiAr IDJdOwogCi0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCi0JCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwKLQkJCQkJCQkJICAiLCAoQ0FTRSBzdWJzdHJlYW1cbiIKLQkJCQkJCQkJICAi ICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJFQU1fT0ZGKSAiIFRIRU4gJ29m ZidcbiIKLQkJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJF QU1fT04pICIgVEhFTiAnb24nXG4iCi0JCQkJCQkJCSAgIiAgICBXSEVOICIgQ3BwQXNTdHJpbmcy KExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMKSAiIFRIRU4gJ3BhcmFsbGVsJ1xuIgotCQkJCQkJ CQkgICIgICBFTkQpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN0cmVh bWluZyIpKTsKLQkJCWVsc2UKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCQkg ICIsIHN1YnN0cmVhbSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTdHJl YW1pbmciKSk7CisJCQlzbnByaW50Zihjb25mbGljdGxvZ3RhYmxlLAorCQkJCQkJc2l6ZW9mKGNv bmZsaWN0bG9ndGFibGUpLAorCQkJCQkJIiVzLiIgQ09ORkxJQ1RfTE9HX1JFTEFUSU9OX05BTUVf Rk1ULAorCQkJCQkJY29uZmxpY3Rfc2NoZW1hLCBzdWJpZCk7CisKKwkJCXByaW50VGFibGVBZGRG b290ZXIoY29udCwgXygiQ29uZmxpY3QgbG9nIHRhYmxlOiIpKTsKKwkJCXByaW50VGFibGVBZGRG b290ZXIoY29udCwKKwkJCQkJCQkJcHNwcmludGYoIiAgICBcIiVzXCIiLCBjb25mbGljdGxvZ3Rh YmxlKSk7CiAJCX0KKwl9Cit9CiAKLQkJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9y IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5kIGhpZ2hlciAqLwotCQlpZiAocHNldC5zdmVy c2lvbiA+PSAxNTAwMDApCi0JCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwg c3VidHdvcGhhc2VzdGF0ZSBBUyBcIiVzXCJcbiIKLQkJCQkJCQkgICIsIHN1YmRpc2FibGVvbmVy ciBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21taXQi KSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiRGlzYWJsZSBvbiBlcnJvciIpKTsKKy8qCisgKiBc ZFJzKworICogRGVzY3JpYmVzIHN1YnNjcmlwdGlvbnMuCisgKgorICogVGFrZXMgYW4gb3B0aW9u YWwgcmVnZXhwIHRvIHNlbGVjdCBwYXJ0aWN1bGFyIHN1YnNjcmlwdGlvbnMKKyAqLworYm9vbAor ZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCit7CisJUFFFeHBCdWZm ZXJEYXRhIGJ1ZjsKKwlpbnQJCQlpOworCVBHcmVzdWx0ICAgKnJlczsKKwlpbnQJCQluY29sczsK KwlpbnQJCQlucm93cyA9IDE7CiAKLQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTYwMDAwKQotCQkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJc biIKLQkJCQkJCQkgICIsIHN1YnBhc3N3b3JkcmVxdWlyZWQgQVMgXCIlc1wiXG4iCi0JCQkJCQkJ ICAiLCBzdWJydW5hc293bmVyIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgi T3JpZ2luIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIlJ1biBhcyBvd25lcj8iKSk7CisJUFFFeHBCdWZmZXJEYXRh IHRpdGxlOworCXByaW50VGFibGVDb250ZW50IGNvbnQ7CiAKLQkJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTcwMDAwKQorCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQorCXsKKwkJY2hhcgkJc3Zl cmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2Vz IG5vdCBzdXBwb3J0IHN1YnNjcmlwdGlvbnMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJl cihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3Zl cmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwor CisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVzICovXG4iLCBfKCJHZXQgbWF0Y2hpbmcg c3Vic2NyaXB0aW9ucyIpKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxF Q1Qgb2lkLCBzdWJuYW1lIEFTIFwiJXNcIlxuIgorCQkJCQkgICIsICAoU0VMRUNUIG5zcG5hbWUg RlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0gIiBDcHBBc1N0cmluZzIoUEdfQ09ORkxJQ1Rf TkFNRVNQQUNFKSAiKSAgQVMgIFwiJXNcIlxuIgorCQkJCQkgICIsICBwZ19jYXRhbG9nLnBnX2dl dF91c2VyYnlpZChzdWJvd25lcikgQVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YmVuYWJsZWQg QVMgXCIlc1wiXG4iCisJCQkJCSAgIiwgIHN1YnB1YmxpY2F0aW9ucyBBUyBcIiVzXCJcbiIsCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25mbGlj dF9zY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJFbmFibGVkIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJQdWJsaWNhdGlvbiIpKTsK KworCS8qCisJICogb2lkLCBzdWJuYW1lIGFuZCBjb25mbGljdF9zY2hlbWEgY29sdW1ucyBhcmUg aW50ZXJuYWwgYW5kIG5vdCBkaXNwbGF5ZWQsCisJICogc28gb25seSAzIHZpc2libGUgY29sdW1u cy4KKwkgKi8KKwluY29scyA9IDM7CisKKwkvKiBCaW5hcnkgbW9kZSBhbmQgc3RyZWFtaW5nIGFy ZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTQgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE0MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1 YmJpbmFyeSBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiQmluYXJ5IikpOwor CQluY29scysrOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKIAkJCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJmYWlsb3ZlciBBUyBcIiVzXCJcbiIsCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIkZhaWxvdmVyIikpOwotCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxOTAwMDApCi0JCXsKKwkJCQkJCQkgICIsIChDQVNFIHN1YnN0cmVhbVxuIgorCQkJCQkJCSAg IiAgICBXSEVOICIgQ3BwQXNTdHJpbmcyKExPR0lDQUxSRVBfU1RSRUFNX09GRikgIiBUSEVOICdv ZmYnXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIoTE9HSUNBTFJFUF9TVFJF QU1fT04pICIgVEhFTiAnb24nXG4iCisJCQkJCQkJICAiICAgIFdIRU4gIiBDcHBBc1N0cmluZzIo TE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpICIgVEhFTiAncGFyYWxsZWwnXG4iCisJCQkJCQkJ ICAiICAgRU5EKSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN0cmVhbWlu ZyIpKTsKKwkJZWxzZQogCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIChz ZWxlY3Qgc3J2bmFtZSBmcm9tIHBnX2NhdGFsb2cucGdfZm9yZWlnbl9zZXJ2ZXIgd2hlcmUgb2lk PXN1YnNlcnZlcikgQVMgXCIlc1wiXG4iLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIi KSk7CisJCQkJCQkJICAiLCBzdWJzdHJlYW0gQVMgXCIlc1wiXG4iLAorCQkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJTdHJlYW1pbmciKSk7CiAKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJ CQkJICAiLCBzdWJyZXRhaW5kZWFkdHVwbGVzIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdldHRl eHRfbm9vcCgiUmV0YWluIGRlYWQgdHVwbGVzIikpOworCQluY29scysrOworCX0KIAotCQkJYXBw ZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICIsIHN1Ym1heHJldGVudGlvbiBBUyBcIiVz XCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIk1heCByZXRlbnRpb24gZHVyYXRpb24iKSk7 CisJLyogVHdvX3BoYXNlIGFuZCBkaXNhYmxlX29uX2Vycm9yIGFyZSBvbmx5IHN1cHBvcnRlZCBp biB2MTUgYW5kIGhpZ2hlciAqLworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHN1YnR3b3BoYXNlc3RhdGUgQVMg XCIlc1wiXG4iCisJCQkJCQkgICIsIHN1YmRpc2FibGVvbmVyciBBUyBcIiVzXCJcbiIsCisJCQkJ CQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAorCQkJCQkJICBnZXR0ZXh0X25v b3AoIkRpc2FibGUgb24gZXJyb3IiKSk7CisJCW5jb2xzICs9IDI7CisJfQogCi0JCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCSAgIiwgc3VicmV0ZW50aW9uYWN0aXZlIEFTIFwiJXNc IlxuIiwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0ZW50aW9uIGFjdGl2ZSIpKTsKLQkJfQor CWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCQkgICIsIHN1Ym9yaWdpbiBBUyBcIiVzXCJcbiIKKwkJCQkJCSAgIiwgc3VicGFz c3dvcmRyZXF1aXJlZCBBUyBcIiVzXCJcbiIKKwkJCQkJCSAgIiwgc3VicnVuYXNvd25lciBBUyBc IiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiT3JpZ2luIiksCisJCQkJCQkgIGdldHRl eHRfbm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJSdW4g YXMgb3duZXI/IikpOworCQluY29scyArPSAzOworCX0KIAorCWlmIChwc2V0LnN2ZXJzaW9uID49 IDE3MDAwMCkKKwl7CiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkgICIsICBzdWJz eW5jY29tbWl0IEFTIFwiJXNcIlxuIgotCQkJCQkJICAiLCAgc3ViY29ubmluZm8gQVMgXCIlc1wi XG4iLAotCQkJCQkJICBnZXR0ZXh0X25vb3AoIlN5bmNocm9ub3VzIGNvbW1pdCIpLAotCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIkNvbm5pbmZvIikpOworCQkJCQkJICAiLCBzdWJmYWlsb3ZlciBBUyBc IiVzXCJcbiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRmFpbG92ZXIiKSk7CisJCW5jb2xzKys7 CisJfQogCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJ3YWxyY3Z0aW1lb3V0IEFTIFwiJXNcIlxuIiwKLQkJ CQkJCQkgIGdldHRleHRfbm9vcCgiUmVjZWl2ZXIgdGltZW91dCIpKTsKKwlpZiAocHNldC5zdmVy c2lvbiA+PSAxOTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAi LCAoc2VsZWN0IHNydm5hbWUgZnJvbSBwZ19jYXRhbG9nLnBnX2ZvcmVpZ25fc2VydmVyIHdoZXJl IG9pZD1zdWJzZXJ2ZXIpIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJyZXRhaW5kZWFkdHVw bGVzIEFTIFwiJXNcIlxuIgorCQkJCQkJICAiLCBzdWJtYXhyZXRlbnRpb24gQVMgXCIlc1wiXG4i CisJCQkJCQkgICIsIHN1YnJldGVudGlvbmFjdGl2ZSBBUyBcIiVzXCJcbiIsCisJCQkJCQkgIGdl dHRleHRfbm9vcCgiU2VydmVyIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiUmV0YWluIGRlYWQg dHVwbGVzIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiTWF4IHJldGVudGlvbiBkdXJhdGlvbiIp LAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJldGVudGlvbiBhY3RpdmUiKSk7CisJCW5jb2xzICs9 IDQ7CisJfQogCi0JCS8qIFNraXAgTFNOIGlzIG9ubHkgc3VwcG9ydGVkIGluIHYxNSBhbmQgaGln aGVyICovCi0JCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKLQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJICAiLCBzdWJza2lwbHNuIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkg IGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSk7CisJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKKwkJCQkJICAiLCAgc3ViY29ubmlu Zm8gQVMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU3luY2hyb25vdXMgY29tbWl0 IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb25uaW5mbyIpKTsKKwluY29scyArPSAyOwogCisJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCXsKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwKLQkJCQkJCSAgIiwgIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3N1YnNj cmlwdGlvbicpIEFTIFwiJXNcIlxuIiwKLQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlv biIpKTsKKwkJCQkJCSAgIiwgc3Vid2FscmN2dGltZW91dCBBUyBcIiVzXCJcbiIsCisJCQkJCQkg IGdldHRleHRfbm9vcCgiUmVjZWl2ZXIgdGltZW91dCIpKTsKKwkJbmNvbHMrKzsKKwl9CisKKwkv KiBTa2lwIExTTiBpcyBvbmx5IHN1cHBvcnRlZCBpbiB2MTUgYW5kIGhpZ2hlciAqLworCWlmIChw c2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJ CQkJCQkgICIsIHN1YnNraXBsc24gQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3Ao IlNraXAgTFNOIikpOworCQluY29scysrOworCX0KKworCS8qIENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiBpcyBzdXBwb3J0ZWQgaW4gdjE5IGFuZCBoaWdoZXIgKi8KKwlpZiAocHNldC5zdmVyc2lv biA+PSAxOTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCBz dWJjb25mbGljdGxvZ2Rlc3QgQVMgXCIlc1wiXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkNv bmZsaWN0IGxvZyBkZXN0aW5hdGlvbiIpKTsKKwkJbmNvbHMrKzsKIAl9CiAKKwlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIsICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQs ICdwZ19zdWJzY3JpcHRpb24nKSBBUyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJE ZXNjcmlwdGlvbiIpKTsKKwluY29scysrOworCiAJLyogT25seSBkaXNwbGF5IHN1YnNjcmlwdGlv bnMgaW4gY3VycmVudCBkYXRhYmFzZS4gKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAog CQkJCQkJICJGUk9NIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uXG4iCkBAIC03MjE5LDIwICs3 MzUyLDE0MyBAQCBkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIk9SREVSIEJZIDE7Iik7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVS IEJZIHN1Ym5hbWU7Iik7CiAKIAlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CiAJdGVybVBRRXhw QnVmZmVyKCZidWYpOwogCWlmICghcmVzKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlteW9wdC50aXRs ZSA9IF8oIkxpc3Qgb2Ygc3Vic2NyaXB0aW9ucyIpOwotCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIg PSB0cnVlOwotCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7Ci0J bXlvcHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsK KwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCkKKwl7CisJCWlmICghcHNldC5xdWlldCkKKwkJewor CQkJaWYgKHBhdHRlcm4pCisJCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNj cmlwdGlvbiBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCQkgcGF0dGVybik7CisJCQllbHNlCisJCQkJ cGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHN1YnNjcmlwdGlvbnMuIik7CisJCX0KIAot CXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dm aWxlKTsKKwkJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCQlQUWNsZWFyKHJlcyk7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgUFFudHVwbGVzKHJlcyk7IGkrKykKKwl7 CisJCWNvbnN0IGNoYXIJYWxpZ24gPSAnbCc7CisJCU9pZAkJCXN1YmlkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCAwKSk7CisJCWNoYXIJICAgKnN1Ym5hbWUgPSBQUWdldHZhbHVlKHJlcywg aSwgMSk7CisJCWNoYXIJICAgKmNvbmZsaWN0X3NjaGVtYSA9IFBRZ2V0dmFsdWUocmVzLCBpLCAy KTsKKwkJaW50CQkJY3VycmVudF9jb2wgPSAzOworCQljaGFyCSAgICpsb2dkZXN0ID0gImxvZyI7 CisJCXByaW50VGFibGVPcHQgbXlvcHQgPSBwc2V0LnBvcHQudG9wdDsKKworCQlpbml0UFFFeHBC dWZmZXIoJnRpdGxlKTsKKwkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTdWJzY3JpcHRp b24gJXMiKSwgc3VibmFtZSk7CisJCXByaW50VGFibGVJbml0KCZjb250LCAmbXlvcHQsIHRpdGxl LmRhdGEsIG5jb2xzLCBucm93cyk7CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0 dGV4dF9ub29wKCJPd25lciIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFibGVBZGRIZWFkZXIo JmNvbnQsIGdldHRleHRfbm9vcCgiRW5hYmxlZCIpLCB0cnVlLCBhbGlnbik7CisJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUHVibGljYXRpb24iKSwgdHJ1ZSwgYWxp Z24pOworCisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQ UWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZh bHNlLCBmYWxzZSk7CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTQwMDAwKQorCQl7CisJCQlw cmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkJpbmFyeSIpLCB0cnVlLCBh bGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1 cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCQlwcmludFRhYmxlQWRkSGVhZGVyKCZj b250LCBnZXR0ZXh0X25vb3AoIlN0cmVhbWluZyIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRh YmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxz ZSwgZmFsc2UpOworCQl9CisKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQl7CisJ CQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlR3by1waGFzZSBjb21t aXQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIiksIHRydWUs IGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwg Y3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lv biA+PSAxNjAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRf bm9vcCgiT3JpZ2luIiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250 LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisKKwkJ CXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiUGFzc3dvcmQgcmVxdWly ZWQiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFs dWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJs ZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJSdW4gYXMgb3duZXI/IiksIHRydWUsIGFs aWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3Vy cmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJCX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+ PSAxNzAwMDApCisJCXsKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9v cCgiRmFpbG92ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQs IFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQor CisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhl YWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTZXJ2ZXIiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJp bnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwg ZmFsc2UsIGZhbHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9u b29wKCJSZXRhaW4gZGVhZCB0dXBsZXMiKSwgdHJ1ZSwgYWxpZ24pOworCQkJcHJpbnRUYWJsZUFk ZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2NvbCsrKSwgZmFsc2UsIGZh bHNlKTsKKworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIiksCisJCQkJCQkJCXRydWUsIGFsaWduKTsKKwkJCXByaW50VGFi bGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNl LCBmYWxzZSk7CiAKKwkJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgi UmV0ZW50aW9uIGFjdGl2ZSIpLCB0cnVlLCBhbGlnbik7CisJCQlwcmludFRhYmxlQWRkQ2VsbCgm Y29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOwor CQl9CisKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTeW5jaHJv bm91cyBjb21taXQiKSwgdHJ1ZSwgYWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwg UFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCXBy aW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiQ29ubmluZm8iKSwgdHJ1ZSwg YWxpZ24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1 cnJlbnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5 MDAwMCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJS ZWNlaXZlciB0aW1lb3V0IiksIHRydWUsIGFsaWduKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZj b250LCBQUWdldHZhbHVlKHJlcywgaSwgY3VycmVudF9jb2wrKyksIGZhbHNlLCBmYWxzZSk7CisJ CX0KKworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCXsKKwkJCXByaW50VGFibGVB ZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiU2tpcCBMU04iKSwgdHJ1ZSwgYWxpZ24pOwor CQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCBjdXJyZW50X2Nv bCsrKSwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAw MCkKKwkJeworCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJDb25m bGljdCBsb2cgZGVzdGluYXRpb24iKSwKKwkJCQkJCQkJdHJ1ZSwgYWxpZ24pOworCisJCQlsb2dk ZXN0ID0gUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJlbnRfY29sKyspOworCisJCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgbG9nZGVzdCwgZmFsc2UsIGZhbHNlKTsKKwkJfQorCisJCXByaW50VGFi bGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSwgdHJ1ZSwgYWxp Z24pOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGN1cnJl bnRfY29sKyspLCBmYWxzZSwgZmFsc2UpOworCisJCWFkZEZvb3RlclRvU3Vic2NyaXB0aW9uRGVz Yyhsb2dkZXN0LCBjb25mbGljdF9zY2hlbWEsIHN1YmlkLCAmY29udCk7CisKKwkJcHJpbnRUYWJs ZSgmY29udCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCQlwcmludFRh YmxlQ2xlYW51cCgmY29udCk7CisKKwkJdGVybVBRRXhwQnVmZmVyKCZ0aXRsZSk7CisJfQorCisJ dGVybVBRRXhwQnVmZmVyKCZidWYpOwogCVBRY2xlYXIocmVzKTsKIAlyZXR1cm4gdHJ1ZTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmgKaW5kZXggNDdmYWU1Y2VhZmIuLjE1YzZjNjg1MzIzIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTI2LDcg KzEyNiwxMCBAQCBib29sCQlsaXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pOwog Ym9vbAkJZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybik7CiAKIC8qIFxk UnMgKi8KLWJvb2wJCWRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpOworYm9vbAkJbGlzdFN1YnNjcmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVy bik7CisKKy8qIFxkUnMrICovCitib29sCQlkZXNjcmliZVN1YnNjcmlwdGlvbnMoY29uc3QgY2hh ciAqcGF0dGVybik7CiAKIC8qIFxkQWMgKi8KIGV4dGVybiBib29sIGxpc3RPcGVyYXRvckNsYXNz ZXMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9wYXR0ZXJuLApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IDE3ZTYyYjdhZTNhLi40MmE3ODliNzhmNyAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAtMTM5LDE4 ICsxMzksMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJzY3JpcHRp b24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUg cmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xv dCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRv IHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJl Z3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24g ZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBD b25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAg ICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0 aW9uIHJlZ3Jlc3NfdGVzdHN1YjQKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViMzsKQEAgLTIzNiwxMCArMjM2LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9SOiAgaW52YWxpZCBjb25u ZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJmb29iYXIiIGluIGNvbm5l Y3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVz Y3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRpb24KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8 IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0ZXN0IHN1YnNjcmlwdGlv bgogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCBQVUJM SUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKQEAgLTI0 OCwxMCArMjQ4LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz bG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUpOwogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8ICAgIERlc2NyaXB0aW9uICAgIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IHRlc3Qgc3Vic2NyaXB0aW9uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vi c2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1l b3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0 aW9uICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAg ICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdDIgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAg ICAgICAgICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMjY3 LDEwICsyNjcsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRl cjogImNyZWF0ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0tJUCAobHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8 ICBTa2lwIExTTiAgfCAgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAgICAgICAgICAg ICB8IDAvMDAwMTIzNDUgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQ dWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCAgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMTIzNDUgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCB0ZXN0 IHN1YnNjcmlwdGlvbgogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9ORQpAQCAtMjc5 LDEwICsyNzksMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChs c24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNu ID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNOKTogMC8wCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAg ICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAg Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgdGVzdCBzdWJzY3JpcHRp b24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJl Y2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwg ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1 YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAg ICAgICAgICAgICAgICAgICAgIHwgdGVzdCBzdWJzY3JpcHRpb24KICgxIHJvdykKIAogQkVHSU47 CkBAIC0zMTgsMTAgKzMxOCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi X2ZvbyBTRVQgKHdhbF9yZWNlaXZlcl90aW1lb3V0ID0gJzgwcycpOwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUICh3YWxfcmVjZWl2ZXJfdGltZW91dCA9ICdmb29i YXInKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyICJ3YWxfcmVjZWl2ZXJf dGltZW91dCI6ICJmb29iYXIiCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAg U2tpcCBMU04gIHwgICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBsb2Nh bCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgODBzICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAgfCB0ZXN0IHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViX2ZvbworICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8ICAgIERlc2NyaXB0aW9uICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IHBh cmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBm ICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIg fCA4MHMgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IHRlc3Qgc3Vic2NyaXB0aW9uCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNrIHRvIGtlZXAg dGhlIHJlc3Qgc2ltcGxlCkBAIC0zNTAsMTkgKzM1MCwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qn IFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25u ZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkg Y3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5k IGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGlt ZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg IDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlw dGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4 IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNr aXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8 IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAg ICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFu eSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jl c3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZs aWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAg ICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWI7CkBAIC0zNzQsMjcgKzM3NCwyNyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBz dWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCBy ZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lw IExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAg ICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAg ICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNz X3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGlj dCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAg ICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJh bGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQg ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAt MSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1 YgorICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg U2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJl dGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBw YXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0 aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3Jp cHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAg ICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIg fCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9u IGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0 aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAg ICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtNDA5LDEw ICs0MDksMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElD QVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChy ZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVh ZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg UmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAg IHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24g cmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAg ICAgICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVz IHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0 IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhh biBvbmNlCkBAIC00MjcsMTAgKzQyNywxMCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHVi MyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxl dGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1Ag UFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2 ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1 YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAg fCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViOwpAQCAtNDY2LDE5ICs0NjYsMTkgQEAgQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVy IHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJz Y3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tp cCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwg bG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIHdlIGNhbiBhbHRlciBz dHJlYW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBM U04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190 ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92 ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9u IHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3Qg bG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCAgICAg ICAgfCBmICAgICAgICAgICAgICAgICAgfCAwICAgICAgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ4OCwxMCArNDg4LDEwIEBAIENSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4K IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBP d25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1p bmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3 b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWlu IGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNl aXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwg TWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwg IFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IERlc2NyaXB0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgMCAgICAgICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAgICAgIHwgMC8wMDAwMDAw MCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC01MDQsMTgg KzUwNCwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlv biB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSBy ZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90 LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8g cmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBEZXNjcmlw dGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAgICAg ICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdyZXNzX3Rlc3RzdWIKKyAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8 IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24g YWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRp b24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAgICAgICB8IGYgICAgICAg ICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgLTEgICAg ICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAKICgx IHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVf b25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8 IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2NyaXB0aW9u IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAgICAg ICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBS ZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBk ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAgICAg ICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAgICAg ICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0g Tk9ORSk7CkBAIC01MjgsMTAgKzUyOCwxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FS TklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJ TlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRo ZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRo ZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBT a2lwIExTTiAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8ICAg ICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAg ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdGlvbiByZWdy ZXNzX3Rlc3RzdWIKKyAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFNlcnZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVy YXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgUmVjZWl2ZXIgdGltZW91dCB8ICBTa2lwIExTTiAgfCBDb25m bGljdCBsb2cgZGVzdGluYXRpb24gfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8IDAgICAgICAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgLTEgICAgICAgICAgICAgICB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNTQ4LDEwICs1NDgsMTAgQEAgTk9USUNF OiAgbWF4X3JldGVudGlvbl9kdXJhdGlvbiBpcyBpbmVmZmVjdGl2ZSB3aGVuIHJldGFpbl9kZWFk X3R1cGxlcyBpcyBkaXNhYmwKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1 dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBt dXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJz Y3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRp b25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBS ZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFj dGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFJlY2VpdmVyIHRpbWVvdXQgfCAgU2tpcCBMU04gIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAxMDAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAwMDAw MDAwIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTdWJzY3JpcHRpb24gcmVncmVzc190ZXN0c3ViCisgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTZXJ2ZXIgfCBSZXRhaW4gZGVhZCB0dXBs ZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFJlY2VpdmVyIHRpbWVv dXQgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgRGVzY3JpcHRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAxMDAw ICAgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IC0xICAgICAgICAgICAgICAgfCAwLzAw MDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIC0tIGZhaWwg LSBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlCkBAIC01NjAsMTAg KzU2MCwxMCBAQCBFUlJPUjogIG1heF9yZXRlbnRpb25fZHVyYXRpb24gY2Fubm90IGJlIG5lZ2F0 aXZlCiAtLSBvawogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1heF9y ZXRlbnRpb25fZHVyYXRpb24gPSAwKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU2VydmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IERlc2Ny aXB0aW9uIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAgICAg ICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaXB0aW9uIHJlZ3Jlc3NfdGVzdHN1YgorICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU2VydmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBSZWNlaXZlciB0aW1lb3V0IHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5h dGlvbiB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgICAgICAgIHwgZiAgICAg ICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAtMSAg ICAgICAgICAgICAgIHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IAog KDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7Ci0tIAoyLjQ5LjAKCg== --000000000000836a4f0654856cfe Content-Type: application/octet-stream; name="v52-0006-Documentation-patch.patch" Content-Disposition: attachment; filename="v52-0006-Documentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqjeukmx5 RnJvbSBiODU1YzIwZmE5OTdiOTY1NzdjODM1ZmE5YTE2MzQxZGU1ZWI1Mzk3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hckBEaWxpcC5sb2NhbD4K RGF0ZTogU3VuLCA1IEFwciAyMDI2IDE3OjAyOjAxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NTIg Ni82XSBEb2N1bWVudGF0aW9uIHBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAg ICAgICAgICAgICAgICAgIHwgIDIwICsKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAg ICAgICAgICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg ICAgIHwgNjY5ICsrKysrKysrKysrKystLS0tLS0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgIHwgIDEzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJz Y3JpcHRpb24uc2dtbCB8ICA1MSArKwogNSBmaWxlcyBjaGFuZ2VkLCA0OTQgaW5zZXJ0aW9ucygr KSwgMjcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBi L2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA3NDdmOTI5YWVlMy4uYzE2ZTM1ZGRmNTkgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKQEAgLTM3NTksNiArMzc1OSwyNiBAQCBSRVZPS0UgQ1JFQVRFIE9OIFNDSEVNQSBwdWJsaWMg RlJPTSBQVUJMSUM7CiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJkZGwt c2NoZW1hcy1jb25mbGljdCI+CisgICA8dGl0bGU+VGhlIENvbmZsaWN0IFNjaGVtYTwvdGl0bGU+ CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNjaGVtYXMtY29uZmxpY3QiPgorICAgIDxwcmlt YXJ5PmNvbmZsaWN0PC9wcmltYXJ5PgorICAgIDxzZWNvbmRhcnk+c2NoZW1hPC9zZWNvbmRhcnk+ CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2ltaWxhcmx5LCB0aGUgPGxpdGVy YWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+IHNjaGVtYSAoc29tZXRpbWVzIHJlZmVycmVkIHRvCisg ICAgYXMgdGhlIDxlbXBoYXNpcz5jb25mbGljdCBzY2hlbWE8L2VtcGhhc2lzPikgY29udGFpbnMg c3lzdGVtIG1hbmFnZWQKKyAgICBjb25mbGljdCBsb2cgdGFibGVzIHVzZWQgZm9yIGxvZ2ljYWwg cmVwbGljYXRpb24gY29uZmxpY3QgdHJhY2tpbmcuIFRoZXNlCisgICAgdGFibGVzIGFyZSBjcmVh dGVkIGFuZCBtYWludGFpbmVkIGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBub3QgaW50ZW5kZWQgZm9y CisgICAgZGlyZWN0IHVzZXIgbWFuaXB1bGF0aW9uLiBVbmxpa2UgPGxpdGVyYWw+cGdfY2F0YWxv ZzwvbGl0ZXJhbD4sIHRoZQorICAgIDxsaXRlcmFsPnBnX2NhdGFsb2c8L2xpdGVyYWw+IHNjaGVt YSBpcyBub3QgaW1wbGljaXRseSBpbmNsdWRlZCBpbiB0aGUKKyAgICBzZWFyY2ggcGF0aCwgc28g b2JqZWN0cyB3aXRoaW4gaXQgbXVzdCBiZSByZWZlcmVuY2VkIGV4cGxpY2l0bHkgb3IgYnkKKyAg ICBhZGp1c3RpbmcgdGhlIHNlYXJjaCBwYXRoLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCiAg IDxzZWN0MiBpZD0iZGRsLXNjaGVtYXMtcGF0dGVybnMiPgogICAgPHRpdGxlPlVzYWdlIFBhdHRl cm5zPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBiODgxYWU3MTE5OC4uNTdiNjk3MGFkOWYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sCkBAIC01MDYsNiArNTA2LDE4IEBACiAgICA8L2dsb3NzZGVmPgogICA8 L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbmZsaWN0LXNjaGVt YSI+CisgICA8Z2xvc3N0ZXJtPmNvbmZsaWN0IHNjaGVtYTwvZ2xvc3N0ZXJtPgorICAgPGdsb3Nz ZGVmPgorICAgIDxwYXJhPgorICAgICBUaGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+ IHNjaGVtYSB0aGF0IGNvbnRhaW5zIHN5c3RlbS1tYW5hZ2VkCisgICAgIGNvbmZsaWN0IGxvZyB0 YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24uIFRoZXNlIHRhYmxlcyBhcmUgY3JlYXRlZAor ICAgICBhbmQgbWFpbnRhaW5lZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBzeXN0ZW0gYW5kIGFyZSBu b3QgaW50ZW5kZWQgZm9yCisgICAgIGRpcmVjdCB1c2VyIG1hbmlwdWxhdGlvbi4gU2VlIDx4cmVm IGxpbmtlbmQ9ImRkbC1zY2hlbWFzLWNvbmZsaWN0Ii8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xv c3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3NhcnktY29u bmVjdGlvbiI+CiAgICA8Z2xvc3N0ZXJtPkNvbm5lY3Rpb248L2dsb3NzdGVybT4KICAgIDxnbG9z c2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDllNzg2ODQ4N2Rl Li5mYjg1Y2IyNjI5NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0y OTMsNiArMjkzLDIxIEBACiAgICBvcHRpb24gb2YgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElP TjwvY29tbWFuZD4gZm9yIGRldGFpbHMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIDxsaW5r IGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3RzIj5Db25mbGljdHM8L2xpbms+ IHRoYXQgb2NjdXIKKyAgIGR1cmluZyByZXBsaWNhdGlvbiBhcmUsIGJ5IGRlZmF1bHQsIGxvZ2dl ZCBhcyBwbGFpbiB0ZXh0IGluIHRoZSBzZXJ2ZXIgbG9nLAorICAgd2hpY2ggY2FuIG1ha2UgYXV0 b21hdGVkIG1vbml0b3JpbmcgYW5kIGFuYWx5c2lzIGRpZmZpY3VsdC4gVGhlCisgICA8Y29tbWFu ZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9jb21tYW5kPiBjb21tYW5kIHByb3ZpZGVzIHRoZQorICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGlj dC1sb2ctZGVzdGluYXRpb24iPgorICAgPGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u PC9saXRlcmFsPjwvbGluaz4gb3B0aW9uIHRvIHJlY29yZCBkZXRhaWxlZAorICAgY29uZmxpY3Qg aW5mb3JtYXRpb24gaW4gYSBzdHJ1Y3R1cmVkLCBxdWVyeWFibGUgZm9ybWF0LiBXaGVuIHRoaXMg cGFyYW1ldGVyCisgICBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxsaXRl cmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgIGF1dG9tYXRpY2FsbHkgbWFuYWdlcyBh IGRlZGljYXRlZCA8Zmlyc3R0ZXJtPmNvbmZsaWN0IGxvZyB0YWJsZTwvZmlyc3R0ZXJtPiwKKyAg IHdoaWNoIGlzIGNyZWF0ZWQgYW4gZHJvcHBlZCBhbG9uZyB3aXRoIHRoZSBzdWJzY3JpcHRpb24u IFRoaXMgc2lnbmlmaWNhbnRseQorICAgaW1wcm92ZXMgcG9zdC1tb3J0ZW0gYW5hbHlzaXMgYW5k IG9wZXJhdGlvbmFsIHZpc2liaWxpdHkgb2YgdGhlIHJlcGxpY2F0aW9uCisgICBzZXR1cC4KKyAg PC9wYXJhPgorCiAgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1zdWJzY3JpcHRpb24t c2xvdCI+CiAgICA8dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBTbG90IE1hbmFnZW1lbnQ8L3Rp dGxlPgogCkBAIC0yMDA5LDEyMCArMjAyNCwyMjUgQEAgSW5jbHVkZWQgaW4gcHVibGljYXRpb25z OgogICAgb3BlcmF0aW9ucyB3aWxsIHNpbXBseSBiZSBza2lwcGVkLgogICA8L3BhcmE+CiAKLSAg PHBhcmE+Ci0gICBBZGRpdGlvbmFsIGxvZ2dpbmcgaXMgdHJpZ2dlcmVkLCBhbmQgdGhlIGNvbmZs aWN0IHN0YXRpc3RpY3MgYXJlIGNvbGxlY3RlZCAoZGlzcGxheWVkIGluIHRoZQotICAgPGxpbmsg bGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0cnVjdG5h bWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2aWV3KQot ICAgaW4gdGhlIGZvbGxvd2luZyA8Zmlyc3R0ZXJtPmNvbmZsaWN0PC9maXJzdHRlcm0+IGNhc2Vz OgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1pbnNl cnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgotICAgICA8dGVybT48bGl0ZXJh bD5pbnNlcnRfZXhpc3RzPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAg PHBhcmE+Ci0gICAgICAgSW5zZXJ0aW5nIGEgcm93IHRoYXQgdmlvbGF0ZXMgYSA8bGl0ZXJhbD5O T1QgREVGRVJSQUJMRTwvbGl0ZXJhbD4KLSAgICAgICB1bmlxdWUgY29uc3RyYWludC4gTm90ZSB0 aGF0IHRvIGxvZyB0aGUgb3JpZ2luIGFuZCBjb21taXQKLSAgICAgICB0aW1lc3RhbXAgZGV0YWls cyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFj ay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJu YW1lPjwvbGluaz4KLSAgICAgICBzaG91bGQgYmUgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4g SW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlCi0gICAgICAgcmFpc2VkIHVudGlsIHRoZSBj b25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0 aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtb3JpZ2luLWRpZmZlcnMiIHhyZWZsYWJlbD0idXBkYXRlX29yaWdpbl9kaWZmZXJz Ij4KLSAgICAgPHRlcm0+PGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwv dGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVXBkYXRpbmcgYSBy b3cgdGhhdCB3YXMgcHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4KLSAgICAg ICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4gb25seSBiZSBkZXRlY3RlZCB3aGVuCi0gICAg ICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2YXJuYW1lPnRy YWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIGlzIGVuYWJsZWQg b24gdGhlIHN1YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIHVwZGF0ZSBpcyBhbHdheXMgYXBwbGll ZAotICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgotICAg ICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LXVwZGF0ZS1leGlzdHMiIHhyZWZsYWJlbD0idXBkYXRl X2V4aXN0cyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+PC90 ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICBUaGUgdXBkYXRlZCB2 YWx1ZSBvZiBhIHJvdyB2aW9sYXRlcyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFs PgotICAgICAgIHVuaXF1ZSBjb25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4g YW5kIGNvbW1pdAotICAgICAgIHRpbWVzdGFtcCBkZXRhaWxzIG9mIHRoZSBjb25mbGljdGluZyBr ZXksCi0gICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2 YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgotICAgICAgIHNo b3VsZCBiZSBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9y IHdpbGwgYmUKLSAgICAgICByYWlzZWQgdW50aWwgdGhlIGNvbmZsaWN0IGlzIHJlc29sdmVkIG1h bnVhbGx5LiBOb3RlIHRoYXQgd2hlbiB1cGRhdGluZyBhCi0gICAgICAgcGFydGl0aW9uZWQgdGFi bGUsIGlmIHRoZSB1cGRhdGVkIHJvdyB2YWx1ZSBzYXRpc2ZpZXMgYW5vdGhlciBwYXJ0aXRpb24K LSAgICAgICBjb25zdHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGlu dG8gYSBuZXcgcGFydGl0aW9uLCB0aGUKLSAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3RzPC9s aXRlcmFsPiBjb25mbGljdCBtYXkgYXJpc2UgaWYgdGhlIG5ldyByb3cKLSAgICAgICB2aW9sYXRl cyBhIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWludC4K LSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAg ICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1 cGRhdGVfZGVsZXRlZCI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVwZGF0ZV9kZWxldGVkPC9saXRl cmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIHR1 cGxlIHRvIGJlIHVwZGF0ZWQgd2FzIGNvbmN1cnJlbnRseSBkZWxldGVkIGJ5IGFub3RoZXIgb3Jp Z2luLiBUaGUKLSAgICAgICB1cGRhdGUgd2lsbCBzaW1wbHkgYmUgc2tpcHBlZCBpbiB0aGlzIHNj ZW5hcmlvLiBOb3RlIHRoYXQgdGhpcyBjb25mbGljdAotICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KLSAgICAgICA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFt cCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAg ICAgYW5kIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgt cmV0YWluLWRlYWQtdHVwbGVzIj48bGl0ZXJhbD5yZXRhaW5fZGVhZF90dXBsZXM8L2xpdGVyYWw+ PC9saW5rPgotICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5ub3Qg YmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZwotICAgICAgIHRydW5jYXRlZCwgb25seSBh IDxsaXRlcmFsPnVwZGF0ZV9taXNzaW5nPC9saXRlcmFsPiBjb25mbGljdCB3aWxsCi0gICAgICAg YXJpc2UuIEFkZGl0aW9uYWxseSwgaWYgdGhlIHR1cGxlIHdhcyBkZWxldGVkIGJ5IHRoZSBzYW1l IG9yaWdpbiwgYW4KLSAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29u ZmxpY3Qgd2lsbCBhcmlzZS4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtbWlz c2luZyIgeHJlZmxhYmVsPSJ1cGRhdGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPnVw ZGF0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSB1cGRhdGVkIHdhcyBub3QgZm91bmQuIFRoZSB1cGRh dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 ImRlbGV0ZV9vcmlnaW5fZGlmZmVycyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRlbGV0ZV9vcmln aW5fZGlmZmVyczwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4KLSAgICAgIDxwYXJh PgotICAgICAgIERlbGV0aW5nIGEgcm93IHRoYXQgd2FzIHByZXZpb3VzbHkgbW9kaWZpZWQgYnkg YW5vdGhlciBvcmlnaW4uIE5vdGUgdGhhdAotICAgICAgIHRoaXMgY29uZmxpY3QgY2FuIG9ubHkg YmUgZGV0ZWN0ZWQgd2hlbgotICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQt dGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGlu az4KLSAgICAgICBpcyBlbmFibGVkIG9uIHRoZSBzdWJzY3JpYmVyLiBDdXJyZW50bHksIHRoZSBk ZWxldGUgaXMgYWx3YXlzIGFwcGxpZWQKLSAgICAgICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4g b2YgdGhlIGxvY2FsIHJvdy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8 L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGljdC1kZWxldGUtbWlz c2luZyIgeHJlZmxhYmVsPSJkZWxldGVfbWlzc2luZyI+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPmRl bGV0ZV9taXNzaW5nPC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBh cmE+Ci0gICAgICAgVGhlIHJvdyB0byBiZSBkZWxldGVkIHdhcyBub3QgZm91bmQuIFRoZSBkZWxl dGUgd2lsbCBzaW1wbHkgYmUKLSAgICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCi0gICAg ICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtbXVsdGlwbGUtdW5pcXVlLWNvbmZsaWN0cyIgeHJlZmxh YmVsPSJtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIj4KLSAgICAgPHRlcm0+PGxpdGVyYWw+bXVs dGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgIDxsaXN0aXRlbT4K LSAgICAgIDxwYXJhPgotICAgICAgIEluc2VydGluZyBvciB1cGRhdGluZyBhIHJvdyB2aW9sYXRl cyBtdWx0aXBsZQotICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlx dWUgY29uc3RyYWludHMuIE5vdGUgdGhhdCB0byBsb2cKLSAgICAgICB0aGUgb3JpZ2luIGFuZCBj b21taXQgdGltZXN0YW1wIGRldGFpbHMgb2YgY29uZmxpY3Rpbmcga2V5cywgZW5zdXJlCi0gICAg ICAgdGhhdCA8bGluayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5h bWU+dHJhY2tfY29tbWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+Ci0gICAgICAgaXMgZW5h YmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJh aXNlZCB1bnRpbAotICAgICAgIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KLSAg ICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwv dmFyaWFibGVsaXN0PgotICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2Nl bmFyaW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50Ci0gICAgdmlvbGF0aW9ucy4gQ3Vy cmVudGx5LCB3ZSBkbyBub3QgcHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbHMgZm9yIHRoZW0gaW4g dGhlCi0gICAgbG9nLgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlv bi1jb25mbGljdC1sb2dnaW5nIj4KKyAgIDx0aXRsZT5Db25mbGljdCBsb2dnaW5nPC90aXRsZT4K KyAgIDxwYXJhPgorICAgIEFkZGl0aW9uYWwgbG9nZ2luZyBpcyB0cmlnZ2VyZWQsIGFuZCB0aGUg Y29uZmxpY3Qgc3RhdGlzdGljcyBhcmUgY29sbGVjdGVkIChkaXNwbGF5ZWQgaW4gdGhlCisgICAg PGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0LXN1YnNjcmlwdGlvbi1zdGF0cyI+PHN0 cnVjdG5hbWU+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3N0cnVjdG5hbWU+PC9saW5rPiB2 aWV3KQorICAgIGluIHRoZSBmb2xsb3dpbmcgPGZpcnN0dGVybT5jb25mbGljdDwvZmlyc3R0ZXJt PiBjYXNlczoKKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25m bGljdC1pbnNlcnQtZXhpc3RzIiB4cmVmbGFiZWw9Imluc2VydF9leGlzdHMiPgorICAgICAgPHRl cm0+PGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEluc2VydGluZyBhIHJvdyB0aGF0IHZpb2xhdGVz IGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBjb25z dHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAgICB0 aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVkIG9u IHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAgICAg cmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZh cmxpc3RlbnRyeSBpZD0iY29uZmxpY3QtdXBkYXRlLW9yaWdpbi1kaWZmZXJzIiB4cmVmbGFiZWw9 InVwZGF0ZV9vcmlnaW5fZGlmZmVycyI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfb3Jp Z2luX2RpZmZlcnM8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBVcGRhdGluZyBhIHJvdyB0aGF0IHdhcyBwcmV2aW91c2x5IG1vZGlmaWVk IGJ5IGFub3RoZXIgb3JpZ2luLgorICAgICAgICBOb3RlIHRoYXQgdGhpcyBjb25mbGljdCBjYW4g b25seSBiZSBkZXRlY3RlZCB3aGVuCisgICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1j b21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19jb21taXRfdGltZXN0YW1wPC92YXJuYW1l PjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0aGUgc3Vic2NyaWJlci4gQ3VycmVudGx5 LCB0aGUgdXBkYXRlIGlzIGFsd2F5cyBhcHBsaWVkCisgICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhl IG9yaWdpbiBvZiB0aGUgbG9jYWwgcm93LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb25mbGlj dC11cGRhdGUtZXhpc3RzIiB4cmVmbGFiZWw9InVwZGF0ZV9leGlzdHMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB1cGRhdGVkIHZhbHVlIG9mIGEgcm93IHZpb2xh dGVzIGEgPGxpdGVyYWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+CisgICAgICAgIHVuaXF1ZSBj b25zdHJhaW50LiBOb3RlIHRoYXQgdG8gbG9nIHRoZSBvcmlnaW4gYW5kIGNvbW1pdAorICAgICAg ICB0aW1lc3RhbXAgZGV0YWlscyBvZiB0aGUgY29uZmxpY3Rpbmcga2V5LAorICAgICAgICA8bGlu ayBsaW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29t bWl0X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIHNob3VsZCBiZSBlbmFibGVk IG9uIHRoZSBzdWJzY3JpYmVyLiBJbiB0aGlzIGNhc2UsIGFuIGVycm9yIHdpbGwgYmUKKyAgICAg ICAgcmFpc2VkIHVudGlsIHRoZSBjb25mbGljdCBpcyByZXNvbHZlZCBtYW51YWxseS4gTm90ZSB0 aGF0IHdoZW4gdXBkYXRpbmcgYQorICAgICAgICBwYXJ0aXRpb25lZCB0YWJsZSwgaWYgdGhlIHVw ZGF0ZWQgcm93IHZhbHVlIHNhdGlzZmllcyBhbm90aGVyIHBhcnRpdGlvbgorICAgICAgICBjb25z dHJhaW50IHJlc3VsdGluZyBpbiB0aGUgcm93IGJlaW5nIGluc2VydGVkIGludG8gYSBuZXcgcGFy dGl0aW9uLCB0aGUKKyAgICAgICAgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4gY29u ZmxpY3QgbWF5IGFyaXNlIGlmIHRoZSBuZXcgcm93CisgICAgICAgIHZpb2xhdGVzIGEgPGxpdGVy YWw+Tk9UIERFRkVSUkFCTEU8L2xpdGVyYWw+IHVuaXF1ZSBjb25zdHJhaW50LgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8dmFy bGlzdGVudHJ5IGlkPSJjb25mbGljdC11cGRhdGUtZGVsZXRlZCIgeHJlZmxhYmVsPSJ1cGRhdGVf ZGVsZXRlZCI+CisgICAgICA8dGVybT48bGl0ZXJhbD51cGRhdGVfZGVsZXRlZDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSB0dXBs ZSB0byBiZSB1cGRhdGVkIHdhcyBjb25jdXJyZW50bHkgZGVsZXRlZCBieSBhbm90aGVyIG9yaWdp bi4gVGhlCisgICAgICAgIHVwZGF0ZSB3aWxsIHNpbXBseSBiZSBza2lwcGVkIGluIHRoaXMgc2Nl bmFyaW8uIE5vdGUgdGhhdCB0aGlzIGNvbmZsaWN0CisgICAgICAgIGNhbiBvbmx5IGJlIGRldGVj dGVkIHdoZW4KKyAgICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3Rh bXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgorICAg ICAgICBhbmQgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1yZXRhaW4tZGVhZC10dXBsZXMiPjxsaXRlcmFsPnJldGFpbl9kZWFkX3R1cGxlczwvbGl0ZXJh bD48L2xpbms+CisgICAgICAgIGFyZSBlbmFibGVkLiBOb3RlIHRoYXQgaWYgYSB0dXBsZSBjYW5u b3QgYmUgZm91bmQgZHVlIHRvIHRoZSB0YWJsZSBiZWluZworICAgICAgICB0cnVuY2F0ZWQsIG9u bHkgYSA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJhbD4gY29uZmxpY3Qgd2lsbAorICAg ICAgICBhcmlzZS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdHVwbGUgd2FzIGRlbGV0ZWQgYnkgdGhl IHNhbWUgb3JpZ2luLCBhbgorICAgICAgICA8bGl0ZXJhbD51cGRhdGVfbWlzc2luZzwvbGl0ZXJh bD4gY29uZmxpY3Qgd2lsbCBhcmlzZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iY29uZmxpY3Qt dXBkYXRlLW1pc3NpbmciIHhyZWZsYWJlbD0idXBkYXRlX21pc3NpbmciPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+dXBkYXRlX21pc3Npbmc8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRvIGJlIHVwZGF0ZWQgd2FzIG5vdCBm b3VuZC4gVGhlIHVwZGF0ZSB3aWxsIHNpbXBseSBiZQorICAgICAgICBza2lwcGVkIGluIHRoaXMg c2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNvbmZsaWN0LWRlbGV0ZS1vcmlnaW4t ZGlmZmVycyIgeHJlZmxhYmVsPSJkZWxldGVfb3JpZ2luX2RpZmZlcnMiPgorICAgICAgPHRlcm0+ PGxpdGVyYWw+ZGVsZXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRGVsZXRpbmcgYSByb3cgdGhhdCB3YXMg cHJldmlvdXNseSBtb2RpZmllZCBieSBhbm90aGVyIG9yaWdpbi4gTm90ZSB0aGF0CisgICAgICAg IHRoaXMgY29uZmxpY3QgY2FuIG9ubHkgYmUgZGV0ZWN0ZWQgd2hlbgorICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1 YnNjcmliZXIuIEN1cnJlbnRseSwgdGhlIGRlbGV0ZSBpcyBhbHdheXMgYXBwbGllZAorICAgICAg ICByZWdhcmRsZXNzIG9mIHRoZSBvcmlnaW4gb2YgdGhlIGxvY2FsIHJvdy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iY29uZmxpY3QtZGVsZXRlLW1pc3NpbmciIHhyZWZsYWJlbD0iZGVsZXRlX21p c3NpbmciPgorICAgICAgPHRlcm0+PGxpdGVyYWw+ZGVsZXRlX21pc3Npbmc8L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgcm93IHRv IGJlIGRlbGV0ZWQgd2FzIG5vdCBmb3VuZC4gVGhlIGRlbGV0ZSB3aWxsIHNpbXBseSBiZQorICAg ICAgICBza2lwcGVkIGluIHRoaXMgc2NlbmFyaW8uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNv bmZsaWN0LW11bHRpcGxlLXVuaXF1ZS1jb25mbGljdHMiIHhyZWZsYWJlbD0ibXVsdGlwbGVfdW5p cXVlX2NvbmZsaWN0cyI+CisgICAgICA8dGVybT48bGl0ZXJhbD5tdWx0aXBsZV91bmlxdWVfY29u ZmxpY3RzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgSW5zZXJ0aW5nIG9yIHVwZGF0aW5nIGEgcm93IHZpb2xhdGVzIG11bHRpcGxlCisg ICAgICAgIDxsaXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWlu dHMuIE5vdGUgdGhhdCB0byBsb2cKKyAgICAgICAgdGhlIG9yaWdpbiBhbmQgY29tbWl0IHRpbWVz dGFtcCBkZXRhaWxzIG9mIGNvbmZsaWN0aW5nIGtleXMsIGVuc3VyZQorICAgICAgICB0aGF0IDxs aW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFja19j b21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KKyAgICAgICAgaXMgZW5hYmxlZCBvbiB0 aGUgc3Vic2NyaWJlci4gSW4gdGhpcyBjYXNlLCBhbiBlcnJvciB3aWxsIGJlIHJhaXNlZCB1bnRp bAorICAgICAgICB0aGUgY29uZmxpY3QgaXMgcmVzb2x2ZWQgbWFudWFsbHkuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJp YWJsZWxpc3Q+CisgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgb3RoZXIgY29uZmxpY3Qgc2NlbmFy aW9zLCBzdWNoIGFzIGV4Y2x1c2lvbiBjb25zdHJhaW50CisgICAgIHZpb2xhdGlvbnMuIEN1cnJl bnRseSwgd2UgZG8gbm90IHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWxzIGZvciB0aGVtIGluIHRo ZQorICAgICBsb2cuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CiAKLSAgPHBhcmE+Ci0gICBUaGUg bG9nIGZvcm1hdCBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMgaXMgYXMgZm9sbG93 czoKKyAgPHNlY3QyIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0LXRhYmxlLWJhc2Vk LWxvZ2dpbmciPgorICAgPHRpdGxlPlRhYmxlLWJhc2VkIGxvZ2dpbmc8L3RpdGxlPgorICAgPHBh cmE+CisgICAgSWYgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgcGFyYW1ldGVyIGlzIHNldCB0byA8bGl0ZXJh bD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+YWxsPC9saXRlcmFsPiB0aGVuCisgICAgYSBk ZWRpY2F0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIHdpbGwgYmUgYXV0b21hdGljYWxseSBjcmVhdGVk LiBUaGlzIHRhYmxlIGlzCisgICAgY3JlYXRlZCBpbiB0aGUgPGxpdGVyYWw+cGdfY29uZmxpY3Q8 L2xpdGVyYWw+IG5hbWVzcGFjZS4gVGhlIG5hbWUgb2YgdGhlCisgICAgY29uZmxpY3QgbG9nIHRh YmxlIGlzCisgICAgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9zdWJpZF8mbHQ7c3ViaWQm Z3Q7PC9saXRlcmFsPi4gVGhlIHByZWRlZmluZWQKKyAgICBzY2hlbWEgb2YgdGhpcyB0YWJsZSBp cyBkZXRhaWxlZCBpbgorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtbG9nLXNjaGVtYSIvPi4KKyAgIDwvcGFyYT4KKworICAgPHRhYmxlIGlkPSJsb2dpY2Fs LXJlcGxpY2F0aW9uLWNvbmZsaWN0LWxvZy1zY2hlbWEiPgorICAgIDx0aXRsZT5Db25mbGljdCBM b2cgVGFibGUgU2NoZW1hPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhl YWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5Db2x1bW48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5 Pjx0eXBlPm9pZDwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgT0lEIG9mIHRoZSBs b2NhbCB0YWJsZSB3aGVyZSB0aGUgY29uZmxpY3Qgb2NjdXJyZWQuPC9lbnRyeT4KKyAgICAgIDwv cm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+c2NoZW1hbmFtZTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBlPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PlRoZSBzY2hlbWEgbmFtZSBvZiB0aGUgY29uZmxpY3RpbmcgdGFibGUuPC9l bnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ cmVsbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50ZXh0PC90eXBl PjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25mbGljdGluZyB0YWJs ZS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0 ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBl PnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+VGhlIHR5cGUgb2YgY29uZmxpY3Qg dGhhdCBvY2N1cnJlZCAoZS5nLiwgPGxpdGVyYWw+aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4pLjwv ZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFs PnJlbW90ZV94aWQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+eGlkPC90 eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5PlRoZSByZW1vdGUgdHJhbnNhY3Rpb24gSUQgdGhh dCBjYXVzZWQgdGhlIGNvbmZsaWN0LjwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV9jb21taXRfbHNuPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2xzbjwvdHlwZT48L2VudHJ5PgorICAgICAgIDxl bnRyeT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAg ICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2Nv bW1pdF90czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT50aW1lc3RhbXB0 ejwvdHlwZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgcmVtb3RlIGNvbW1pdCB0aW1lc3Rh bXAgb2YgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbi48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5yZW1vdGVfb3JpZ2luPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+VGhlIG9yaWdpbiBvZiB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uLjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbW90ZV90dXBs ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dHlwZT5qc29uPC90eXBlPjwvZW50 cnk+CisgICAgICAgPGVudHJ5PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWlu ZyByZW1vdGUgcm93IHRoYXQgY2F1c2VkCisgICAgICAgdGhlIGNvbmZsaWN0LjwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlcGxpY2Ff aWRlbnRpdHk8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlw ZT48L2VudHJ5PgorICAgICAgIDxlbnRyeT5UaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUg cmVwbGljYSBpZGVudGl0eS48L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PHR5cGU+anNvbltdPC90eXBlPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pgor ICAgICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBzdGF0ZSBv ZiBleGlzdGluZyBsb2NhbAorICAgICAgICByb3cocykgdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0 LiBFYWNoIG9iamVjdCBpbmNsdWRlcyB0aGUgbG9jYWwKKyAgICAgICAgdHJhbnNhY3Rpb24gSUQg KDxsaXRlcmFsPnhpZDwvbGl0ZXJhbD4pLCBjb21taXQgdGltZXN0YW1wCisgICAgICAgICg8bGl0 ZXJhbD5jb21taXRfdHM8L2xpdGVyYWw+KSwgb3JpZ2luICg8bGl0ZXJhbD5vcmlnaW48L2xpdGVy YWw+KSwKKyAgICAgICAgY29uZmxpY3Rpbmcga2V5IGRhdGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJh bD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAgICAgIGltYWdlICg8bGl0ZXJhbD50dXBs ZTwvbGl0ZXJhbD4pLgorICAgICAgIDwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9k eT4KKyAgICA8L3Rncm91cD4KKyAgIDwvdGFibGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjb25m bGljdGluZyByb3cgZGF0YSwgaW5jbHVkaW5nIHRoZSBpbmNvbWluZyByZW1vdGUgcm93ICg8bGl0 ZXJhbD5yZW1vdGVfdHVwbGU8L2xpdGVyYWw+KQorICAgIGFuZCB0aGUgYXNzb2NpYXRlZCBsb2Nh bCBjb25mbGljdCBkZXRhaWxzICg8bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+KSwg aXMgc3RvcmVkIGluCisgICAgPHR5cGU+SlNPTjwvdHlwZT4gZm9ybWF0cyBmb3IgZmxleGlibGUg cXVlcnlpbmcgYW5kIGFuYWx5c2lzLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0 MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1maWxlLWJhc2VkLWxvZ2dpbmciPgor ICAgPHRpdGxlPkZpbGUtYmFzZWQgbG9nZ2luZzwvdGl0bGU+CisgICA8cGFyYT4KKyAgICBJZiA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0 LWxvZy1kZXN0aW5hdGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRl cmFsPjwvbGluaz4KKyAgICBpcyBzZXQgdG8gPGxpdGVyYWw+bG9nPC9saXRlcmFsPiBvciA8bGl0 ZXJhbD5hbGw8L2xpdGVyYWw+IHRoZW4gY29uZmxpY3RzCisgICAgYXJlIGxvZ2dlZCB0byB0aGUg c2VydmVyIHVzaW5nIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9HOiAgY29u ZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1lPC9yZXBs YWNlYWJsZT4uPHJlcGxhY2VhYmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29uZmxpY3Q9 PHJlcGxhY2VhYmxlPmNvbmZsaWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJs ZT5bOiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IFssIC4uLiBdXS4KQEAgLTIxMzUsMTgyICsyMjU1LDE4NSBAQCBERVRBSUw6ICA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsZWRfZXhwbGFuYXRpb248L3JlcGxhY2Vh YmxlPls6IDxyZQogICAgIDxsaXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHsoPHJl cGxhY2VhYmxlPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4uPC9vcHRp b25hbD4pPSg8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFs PiwgLi4uPC9vcHRpb25hbD4pIHwgZnVsbCA8b3B0aW9uYWw+KDxyZXBsYWNlYWJsZT5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD4sIC4uLjwvb3B0aW9uYWw+KT08L29wdGlvbmFs Pig8cmVwbGFjZWFibGU+Y29sdW1uX3ZhbHVlPC9yZXBsYWNlYWJsZT4gPG9wdGlvbmFsPiwgLi4u PC9vcHRpb25hbD4pfQogPC9zeW5vcHNpcz4KIAotICAgVGhlIGxvZyBwcm92aWRlcyB0aGUgZm9s bG93aW5nIGluZm9ybWF0aW9uOgotICAgPHZhcmlhYmxlbGlzdD4KLSAgICA8dmFybGlzdGVudHJ5 PgotICAgICA8dGVybT48bGl0ZXJhbD5MT0c8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3Rp dGVtPgorICAgIFRoZSBsb2cgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKyAg ICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVy YWw+TE9HPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxpdGVt aXplZGxpc3Q+CisgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgPHJlcGxhY2VhYmxlPnNjaGVtYW5hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGU+dGFi bGVuYW1lPC9yZXBsYWNlYWJsZT4KKyAgICAgICAgICBpZGVudGlmaWVzIHRoZSBsb2NhbCByZWxh dGlvbiBpbnZvbHZlZCBpbiB0aGUgY29uZmxpY3QuCisgICAgICAgICAgPC9wYXJhPgorICAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICA8cmVwbGFjZWFibGU+Y29uZmxpY3RfdHlwZTwvcmVwbGFjZWFibGU+IGlzIHRoZSB0 eXBlIG9mIGNvbmZsaWN0IHRoYXQgb2NjdXJyZWQKKyAgICAgICAgICAoZS5nLiwgPGxpdGVyYWw+ aW5zZXJ0X2V4aXN0czwvbGl0ZXJhbD4sIDxsaXRlcmFsPnVwZGF0ZV9leGlzdHM8L2xpdGVyYWw+ KS4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICA8L2l0 ZW1pemVkbGlzdD4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPGl0ZW1pemVkbGlzdD4KICAgICAg ICAgPGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+Ci0gICAgICAgICA8cmVwbGFjZWFibGU+c2No ZW1hbmFtZTwvcmVwbGFjZWFibGU+LjxyZXBsYWNlYWJsZT50YWJsZW5hbWU8L3JlcGxhY2VhYmxl PgotICAgICAgICAgaWRlbnRpZmllcyB0aGUgbG9jYWwgcmVsYXRpb24gaW52b2x2ZWQgaW4gdGhl IGNvbmZsaWN0LgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxlZF9leHBsYW5hdGlvbjwvcmVwbGFjZWFibGU+IGluY2x1ZGVzCisgICAgICAgICAgdGhlIG9y aWdpbiwgdHJhbnNhY3Rpb24gSUQsIGFuZCBjb21taXQgdGltZXN0YW1wIG9mIHRoZSB0cmFuc2Fj dGlvbiB0aGF0CisgICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxl LgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgICA8bGlzdGl0 ZW0+CiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgIDxyZXBsYWNlYWJsZT5jb25mbGljdF90eXBl PC9yZXBsYWNlYWJsZT4gaXMgdGhlIHR5cGUgb2YgY29uZmxpY3QgdGhhdCBvY2N1cnJlZAotICAg ICAgICAgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51 cGRhdGVfZXhpc3RzPC9saXRlcmFsPikuCisgICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0 ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKKyAgICAg ICAgICByb3cgdGhhdCB2aW9sYXRlZCBhIHVuaXF1ZSBjb25zdHJhaW50IGZvcgorICAgICAgICAg IDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3Rz PC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGlj dHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IDxsaXRlcmFsPmxvY2FsIHJvdzwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgbG9jYWwg cm93IGlmIGl0cworICAgICAgICAgIG9yaWdpbiBkaWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cg Zm9yCisgICAgICAgICAgPGxpdGVyYWw+dXBkYXRlX29yaWdpbl9kaWZmZXJzPC9saXRlcmFsPiBv ciA8bGl0ZXJhbD5kZWxldGVfb3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+CisgICAgICAgICAgY29u ZmxpY3RzLCBvciBpZiB0aGUga2V5IHZhbHVlIGNvbmZsaWN0cyB3aXRoIHRoZSByZW1vdGUgcm93 IGZvcgorICAgICAgICAgIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJh bD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgorICAgICAgICAgIDxsaXRlcmFsPm11bHRpcGxl X3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4KKyAgICAgICAgIDwvcGFyYT4K KyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+ CisgICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xpdGVyYWw+IHNlY3Rpb24gaW5j bHVkZXMgdGhlIG5ldyByb3cgZnJvbQorICAgICAgICAgIHRoZSByZW1vdGUgaW5zZXJ0IG9yIHVw ZGF0ZSBvcGVyYXRpb24gdGhhdCBjYXVzZWQgdGhlIGNvbmZsaWN0LiBOb3RlIHRoYXQKKyAgICAg ICAgICBmb3IgYW4gdXBkYXRlIG9wZXJhdGlvbiwgdGhlIGNvbHVtbiB2YWx1ZSBvZiB0aGUgbmV3 IHJvdyB3aWxsIGJlIG51bGwKKyAgICAgICAgICBpZiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkIGFu ZCB0b2FzdGVkLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgPGxpdGVyYWw+cmVw bGljYSBpZGVudGl0eTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRlcyB0aGUgcmVwbGljYQorICAg ICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2VhcmNoIGZvciB0 aGUgZXhpc3RpbmcgbG9jYWwKKyAgICAgICAgICByb3cgdG8gYmUgdXBkYXRlZCBvciBkZWxldGVk LiBUaGlzIG1heSBpbmNsdWRlIHRoZSBmdWxsIHJvdyB2YWx1ZQorICAgICAgICAgIGlmIHRoZSBs b2NhbCByZWxhdGlvbiBpcyBtYXJrZWQgd2l0aAorICAgICAgICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElDQSBJREVO VElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IGlzIHRoZSBjb2x1bW4gbmFtZS4KKyAgICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAorICAgICAgICAgIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHkgZnVsbDwvbGl0ZXJhbD4gY2FzZXMsIGNvbHVtbiBuYW1l cyBhcmUKKyAgICAgICAgICBsb2dnZWQgb25seSBpZiB0aGUgdXNlciBsYWNrcyB0aGUgcHJpdmls ZWdlIHRvIGFjY2VzcyBhbGwgY29sdW1ucyBvZgorICAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29s dW1uIG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgorICAg ICAgICAgIGFzIHRoZSBjb3JyZXNwb25kaW5nIGNvbHVtbiB2YWx1ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFs dWU8L3JlcGxhY2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgorICAgICAgICAgIFRoZSBsYXJn ZSBjb2x1bW4gdmFsdWVzIGFyZSB0cnVuY2F0ZWQgdG8gNjQgYnl0ZXMuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxw YXJhPgorICAgICAgICAgIE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3Vu aXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0LAorICAgICAgICAgIG11bHRpcGxlIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRhaWxlZF9leHBsYW5hdGlvbjwvcmVwbGFj ZWFibGU+CisgICAgICAgICAgYW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXRh aWxfdmFsdWVzPC9yZXBsYWNlYWJsZT4gbGluZXMKKyAgICAgICAgICB3aWxsIGJlIGdlbmVyYXRl ZCwgZWFjaCBkZXRhaWxpbmcgdGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKKyAg ICAgICAgICB3aXRoIGRpc3RpbmN0IHVuaXF1ZSBjb25zdHJhaW50cy4KICAgICAgICAgIDwvcGFy YT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L2l0ZW1pemVkbGlzdD4KICAgICAgIDwv bGlzdGl0ZW0+Ci0gICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAg ICA8dGVybT48bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3RpdGVt PgotICAgICAgPGl0ZW1pemVkbGlzdD4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJh PgotICAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxh bmF0aW9uPC9yZXBsYWNlYWJsZT4gaW5jbHVkZXMKLSAgICAgICAgIHRoZSBvcmlnaW4sIHRyYW5z YWN0aW9uIElELCBhbmQgY29tbWl0IHRpbWVzdGFtcCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdAot ICAgICAgICAgbW9kaWZpZWQgdGhlIGxvY2FsIHJvdywgaWYgYXZhaWxhYmxlLgotICAgICAgICA8 L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxw YXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4gc2VjdGlvbiBpbmNsdWRl cyB0aGUga2V5IHZhbHVlcyBvZiB0aGUgbG9jYWwKLSAgICAgICAgIHJvdyB0aGF0IHZpb2xhdGVk IGEgdW5pcXVlIGNvbnN0cmFpbnQgZm9yCi0gICAgICAgICA8bGl0ZXJhbD5pbnNlcnRfZXhpc3Rz PC9saXRlcmFsPiwgPGxpdGVyYWw+dXBkYXRlX2V4aXN0czwvbGl0ZXJhbD4gb3IKLSAgICAgICAg IDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8L2xpdGVyYWw+IGNvbmZsaWN0cy4K LSAgICAgICAgPC9wYXJhPgotICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgot ICAgICAgICA8cGFyYT4KLSAgICAgICAgIFRoZSA8bGl0ZXJhbD5sb2NhbCByb3c8L2xpdGVyYWw+ IHNlY3Rpb24gaW5jbHVkZXMgdGhlIGxvY2FsIHJvdyBpZiBpdHMKLSAgICAgICAgIG9yaWdpbiBk aWZmZXJzIGZyb20gdGhlIHJlbW90ZSByb3cgZm9yCi0gICAgICAgICA8bGl0ZXJhbD51cGRhdGVf b3JpZ2luX2RpZmZlcnM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPmRlbGV0ZV9vcmlnaW5fZGlmZmVy czwvbGl0ZXJhbD4KLSAgICAgICAgIGNvbmZsaWN0cywgb3IgaWYgdGhlIGtleSB2YWx1ZSBjb25m bGljdHMgd2l0aCB0aGUgcmVtb3RlIHJvdyBmb3IKLSAgICAgICAgIDxsaXRlcmFsPmluc2VydF9l eGlzdHM8L2xpdGVyYWw+LCA8bGl0ZXJhbD51cGRhdGVfZXhpc3RzPC9saXRlcmFsPiBvcgotICAg ICAgICAgPGxpdGVyYWw+bXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0czwvbGl0ZXJhbD4gY29uZmxp Y3RzLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0aXRlbT4KLSAgICAgICA8bGlzdGl0 ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxsaXRlcmFsPnJlbW90ZSByb3c8L2xp dGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIG5ldyByb3cgZnJvbQotICAgICAgICAgdGhlIHJl bW90ZSBpbnNlcnQgb3IgdXBkYXRlIG9wZXJhdGlvbiB0aGF0IGNhdXNlZCB0aGUgY29uZmxpY3Qu IE5vdGUgdGhhdAotICAgICAgICAgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIHRoZSBjb2x1bW4g dmFsdWUgb2YgdGhlIG5ldyByb3cgd2lsbCBiZSBudWxsCi0gICAgICAgICBpZiB0aGUgdmFsdWUg aXMgdW5jaGFuZ2VkIGFuZCB0b2FzdGVkLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgPC9saXN0 aXRlbT4KLSAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgVGhlIDxs aXRlcmFsPnJlcGxpY2EgaWRlbnRpdHk8L2xpdGVyYWw+IHNlY3Rpb24gaW5jbHVkZXMgdGhlIHJl cGxpY2EKLSAgICAgICAgIGlkZW50aXR5IGtleSB2YWx1ZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc2Vh cmNoIGZvciB0aGUgZXhpc3RpbmcgbG9jYWwKLSAgICAgICAgIHJvdyB0byBiZSB1cGRhdGVkIG9y IGRlbGV0ZWQuIFRoaXMgbWF5IGluY2x1ZGUgdGhlIGZ1bGwgcm93IHZhbHVlCi0gICAgICAgICBp ZiB0aGUgbG9jYWwgcmVsYXRpb24gaXMgbWFya2VkIHdpdGgKLSAgICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnRhYmxlLXJlcGxpY2EtaWRlbnRpdHktZnVsbCI+PGxpdGVyYWw+UkVQTElD QSBJREVOVElUWSBGVUxMPC9saXRlcmFsPjwvbGluaz4uCi0gICAgICAgIDwvcGFyYT4KLSAgICAg ICA8L2xpc3RpdGVtPgotICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAg ICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBpcyB0aGUgY29sdW1uIG5hbWUuCi0gICAgICAgICBGb3IgPGxpdGVyYWw+bG9jYWwgcm93PC9s aXRlcmFsPiwgPGxpdGVyYWw+cmVtb3RlIHJvdzwvbGl0ZXJhbD4sIGFuZAotICAgICAgICAgPGxp dGVyYWw+cmVwbGljYSBpZGVudGl0eSBmdWxsPC9saXRlcmFsPiBjYXNlcywgY29sdW1uIG5hbWVz IGFyZQotICAgICAgICAgbG9nZ2VkIG9ubHkgaWYgdGhlIHVzZXIgbGFja3MgdGhlIHByaXZpbGVn ZSB0byBhY2Nlc3MgYWxsIGNvbHVtbnMgb2YKLSAgICAgICAgIHRoZSB0YWJsZS4gSWYgY29sdW1u IG5hbWVzIGFyZSBwcmVzZW50LCB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlcgotICAgICAg ICAgYXMgdGhlIGNvcnJlc3BvbmRpbmcgY29sdW1uIHZhbHVlcy4KLSAgICAgICAgPC9wYXJhPgot ICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAg ICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fdmFsdWU8L3JlcGxh Y2VhYmxlPiBpcyB0aGUgY29sdW1uIHZhbHVlLgotICAgICAgICAgVGhlIGxhcmdlIGNvbHVtbiB2 YWx1ZXMgYXJlIHRydW5jYXRlZCB0byA2NCBieXRlcy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICAgPGxpc3RpdGVtPgotICAgICAgICA8cGFyYT4KLSAgICAgICAg IE5vdGUgdGhhdCBpbiBjYXNlIG9mIDxsaXRlcmFsPm11bHRpcGxlX3VuaXF1ZV9jb25mbGljdHM8 L2xpdGVyYWw+IGNvbmZsaWN0LAotICAgICAgICAgbXVsdGlwbGUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBsYWNlYWJsZT4KLSAgICAgICAg IGFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGV0YWlsX3ZhbHVlczwvcmVwbGFj ZWFibGU+IGxpbmVzCi0gICAgICAgICB3aWxsIGJlIGdlbmVyYXRlZCwgZWFjaCBkZXRhaWxpbmcg dGhlIGNvbmZsaWN0IGluZm9ybWF0aW9uIGFzc29jaWF0ZWQKLSAgICAgICAgIHdpdGggZGlzdGlu Y3QgdW5pcXVlCi0gICAgICAgICBjb25zdHJhaW50cy4KLSAgICAgICAgPC9wYXJhPgotICAgICAg IDwvbGlzdGl0ZW0+Ci0gICAgICA8L2l0ZW1pemVkbGlzdD4KLSAgICAgPC9saXN0aXRlbT4KLSAg ICA8L3Zhcmxpc3RlbnRyeT4KLSAgIDwvdmFyaWFibGVsaXN0PgotICA8L3BhcmE+CisgICAgIDwv dmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3NlY3Qy PgogCi0gIDxwYXJhPgotICAgTG9naWNhbCByZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJm b3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBvZiB0aGUgcm9sZQotICAgd2hpY2ggb3ducyB0aGUg c3Vic2NyaXB0aW9uLiAgUGVybWlzc2lvbnMgZmFpbHVyZXMgb24gdGFyZ2V0IHRhYmxlcyB3aWxs Ci0gICBjYXVzZSByZXBsaWNhdGlvbiBjb25mbGljdHMsIGFzIHdpbGwgZW5hYmxlZAotICAgPGxp bmsgbGlua2VuZD0iZGRsLXJvd3NlY3VyaXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9u IHRhcmdldCB0YWJsZXMKLSAgIHRoYXQgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBpcyBzdWJqZWN0 IHRvLCB3aXRob3V0IHJlZ2FyZCB0byB3aGV0aGVyIGFueQotICAgcG9saWN5IHdvdWxkIG9yZGlu YXJpbHkgcmVqZWN0IHRoZSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+LAotICAgPGNvbW1hbmQ+ VVBEQVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgotICAgPGNvbW1h bmQ+VFJVTkNBVEU8L2NvbW1hbmQ+IHdoaWNoIGlzIGJlaW5nIHJlcGxpY2F0ZWQuICBUaGlzIHJl c3RyaWN0aW9uIG9uCi0gICByb3ctbGV2ZWwgc2VjdXJpdHkgbWF5IGJlIGxpZnRlZCBpbiBhIGZ1 dHVyZSB2ZXJzaW9uIG9mCi0gICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+ LgotICA8L3BhcmE+CisgIDxzZWN0MiBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1u b3RlcyI+CisgICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorICAgPHBhcmE+CisgICAgTG9naWNhbCBy ZXBsaWNhdGlvbiBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgd2l0aCB0aGUgcHJpdmlsZWdlcyBv ZiB0aGUgcm9sZQorICAgIHdoaWNoIG93bnMgdGhlIHN1YnNjcmlwdGlvbi4gIFBlcm1pc3Npb25z IGZhaWx1cmVzIG9uIHRhcmdldCB0YWJsZXMgd2lsbAorICAgIGNhdXNlIHJlcGxpY2F0aW9uIGNv bmZsaWN0cywgYXMgd2lsbCBlbmFibGVkCisgICAgPGxpbmsgbGlua2VuZD0iZGRsLXJvd3NlY3Vy aXR5Ij5yb3ctbGV2ZWwgc2VjdXJpdHk8L2xpbms+IG9uIHRhcmdldCB0YWJsZXMKKyAgICB0aGF0 IHRoZSBzdWJzY3JpcHRpb24gb3duZXIgaXMgc3ViamVjdCB0bywgd2l0aG91dCByZWdhcmQgdG8g d2hldGhlciBhbnkKKyAgICBwb2xpY3kgd291bGQgb3JkaW5hcmlseSByZWplY3QgdGhlIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sCisgICAgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwgPGNv bW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcgorICAgIDxjb21tYW5kPlRSVU5DQVRFPC9jb21tYW5k PiB3aGljaCBpcyBiZWluZyByZXBsaWNhdGVkLiAgVGhpcyByZXN0cmljdGlvbiBvbgorICAgIHJv dy1sZXZlbCBzZWN1cml0eSBtYXkgYmUgbGlmdGVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YKKyAg ICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LgorICAgPC9wYXJhPgogCi0g IDxwYXJhPgotICAgQSBjb25mbGljdCB0aGF0IHByb2R1Y2VzIGFuIGVycm9yIHdpbGwgc3RvcCB0 aGUgcmVwbGljYXRpb247IGl0IG11c3QgYmUKLSAgIHJlc29sdmVkIG1hbnVhbGx5IGJ5IHRoZSB1 c2VyLiAgRGV0YWlscyBhYm91dCB0aGUgY29uZmxpY3QgY2FuIGJlIGZvdW5kIGluCi0gICB0aGUg c3Vic2NyaWJlcidzIHNlcnZlciBsb2cuCi0gIDwvcGFyYT4KKyAgIDxwYXJhPgorICAgIEEgY29u ZmxpY3QgdGhhdCBwcm9kdWNlcyBhbiBlcnJvciB3aWxsIHN0b3AgdGhlIHJlcGxpY2F0aW9uOyBp dCBtdXN0IGJlCisgICAgcmVzb2x2ZWQgbWFudWFsbHkgYnkgdGhlIHVzZXIuICBEZXRhaWxzIGFi b3V0IHRoZSBjb25mbGljdCBjYW4gYmUgZm91bmQgaW4KKyAgICB0aGUgc3Vic2NyaWJlcidzIHNl cnZlciBsb2cuCisgICA8L3BhcmE+CiAKLSAgPHBhcmE+Ci0gICBUaGUgcmVzb2x1dGlvbiBjYW4g YmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNzaW9ucyBvbiB0aGUgc3Vi c2NyaWJlciBzbwotICAgdGhhdCBpdCBkb2VzIG5vdCBjb25mbGljdCB3aXRoIHRoZSBpbmNvbWlu ZyBjaGFuZ2Ugb3IgYnkgc2tpcHBpbmcgdGhlCi0gICB0cmFuc2FjdGlvbiB0aGF0IGNvbmZsaWN0 cyB3aXRoIHRoZSBleGlzdGluZyBkYXRhLiAgV2hlbiBhIGNvbmZsaWN0IHByb2R1Y2VzCi0gICBh biBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQsIGFuZCB0aGUgbG9naWNhbCBy ZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAotICAgZW1pdCB0aGUgZm9sbG93aW5nIGtpbmQgb2YgbWVz c2FnZSB0byB0aGUgc3Vic2NyaWJlcidzIHNlcnZlciBsb2c6CisgICA8cGFyYT4KKyAgICBUaGUg cmVzb2x1dGlvbiBjYW4gYmUgZG9uZSBlaXRoZXIgYnkgY2hhbmdpbmcgZGF0YSBvciBwZXJtaXNz aW9ucyBvbiB0aGUgc3Vic2NyaWJlciBzbworICAgIHRoYXQgaXQgZG9lcyBub3QgY29uZmxpY3Qg d2l0aCB0aGUgaW5jb21pbmcgY2hhbmdlIG9yIGJ5IHNraXBwaW5nIHRoZQorICAgIHRyYW5zYWN0 aW9uIHRoYXQgY29uZmxpY3RzIHdpdGggdGhlIGV4aXN0aW5nIGRhdGEuICBXaGVuIGEgY29uZmxp Y3QgcHJvZHVjZXMKKyAgICBhbiBlcnJvciwgdGhlIHJlcGxpY2F0aW9uIHdvbid0IHByb2NlZWQs IGFuZCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXIgd2lsbAorICAgIGVtaXQgdGhlIGZv bGxvd2luZyBraW5kIG9mIG1lc3NhZ2UgdG8gdGhlIHN1YnNjcmliZXIncyBzZXJ2ZXIgbG9nOgog PHNjcmVlbj4KIEVSUk9SOiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy50 ZXN0IjogY29uZmxpY3Q9aW5zZXJ0X2V4aXN0cwogREVUQUlMOiAgQ291bGQgbm90IGFwcGx5IHJl bW90ZSBjaGFuZ2U6IHJlbW90ZSByb3cgKDEsICdyZW1vdGUnKS4KIEtleSBhbHJlYWR5IGV4aXN0 cyBpbiB1bmlxdWUgaW5kZXggInRlc3RfcGtleSIsIG1vZGlmaWVkIGxvY2FsbHkgaW4gdHJhbnNh Y3Rpb24gODAwIGF0IDIwMjYtMDEtMTYgMTg6MTU6MjUuNjUyNzU5KzA5OiBrZXkgKGMpPSgxKSwg bG9jYWwgcm93ICgxLCAnbG9jYWwnKS4KIENPTlRFWFQ6ICBwcm9jZXNzaW5nIHJlbW90ZSBkYXRh IGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBkdXJpbmcgIklOU0VSVCIgZm9yIHJl cGxpY2F0aW9uIHRhcmdldCByZWxhdGlvbiAicHVibGljLnRlc3QiIGluIHRyYW5zYWN0aW9uIDcy NSBmaW5pc2hlZCBhdCAwLzAxNEMwMzc4CiA8L3NjcmVlbj4KLSAgIFRoZSBMU04gb2YgdGhlIHRy YW5zYWN0aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFp bnQgYW5kCi0gICB0aGUgcmVwbGljYXRpb24gb3JpZ2luIG5hbWUgY2FuIGJlIGZvdW5kIGZyb20g dGhlIHNlcnZlciBsb2cgKExTTiAwLzAxNEMwMzc4IGFuZAotICAgcmVwbGljYXRpb24gb3JpZ2lu IDxsaXRlcmFsPnBnXzE2Mzk1PC9saXRlcmFsPiBpbiB0aGUgYWJvdmUgY2FzZSkuICBUaGUKLSAg IHRyYW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5 IHVzaW5nCi0gICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXNr aXAiPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gU0tJUDwvY29tbWFuZD48L2xpbms+ Ci0gICB3aXRoIHRoZSBmaW5pc2ggTFNOCi0gICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgotICAg aXMgY29tbWl0dGVkIG9yIHByZXBhcmVkIG9uIHRoZSBwdWJsaXNoZXIuICBBbHRlcm5hdGl2ZWx5 LCB0aGUgdHJhbnNhY3Rpb24gY2FuCi0gICBhbHNvIGJlIHNraXBwZWQgYnkgY2FsbGluZyB0aGUg PGxpbmsgbGlua2VuZD0icGctcmVwbGljYXRpb24tb3JpZ2luLWFkdmFuY2UiPgotICAgPGZ1bmN0 aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4gZnVu Y3Rpb24uCi0gICBCZWZvcmUgdXNpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIHN1YnNjcmlwdGlvbiBu ZWVkcyB0byBiZSBkaXNhYmxlZCB0ZW1wb3JhcmlseQotICAgZWl0aGVyIGJ5IDxsaW5rIGxpbmtl bmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtZGlzYWJsZSI+Ci0gICA8Y29tbWFuZD5B TFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwgdGhlCi0g ICBzdWJzY3JpcHRpb24gY2FuIGJlIHVzZWQgd2l0aCB0aGUKLSAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVy YWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48L2xpbms+Ci0gICBvcHRpb24uIFRoZW4sIHlv dSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5jZSgpPC9mdW5j dGlvbj4KLSAgIGZ1bmN0aW9uIHdpdGggdGhlIDxwYXJhbWV0ZXI+bm9kZV9uYW1lPC9wYXJhbWV0 ZXI+IChpLmUuLCA8bGl0ZXJhbD5wZ18xNjM5NTwvbGl0ZXJhbD4pCi0gICBhbmQgdGhlIG5leHQg TFNOIG9mIHRoZSBmaW5pc2ggTFNOIChpLmUuLCAwLzAxNEMwMzc5KS4gIFRoZSBjdXJyZW50IHBv c2l0aW9uIG9mCi0gICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGluayBsaW5rZW5kPSJ2 aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgotICAgPHN0cnVjdG5hbWU+cGdfcmVw bGljYXRpb25fb3JpZ2luX3N0YXR1czwvc3RydWN0bmFtZT48L2xpbms+IHN5c3RlbSB2aWV3Lgot ICAgUGxlYXNlIG5vdGUgdGhhdCBza2lwcGluZyB0aGUgd2hvbGUgdHJhbnNhY3Rpb24gaW5jbHVk ZXMgc2tpcHBpbmcgY2hhbmdlcyB0aGF0Ci0gICBtaWdodCBub3QgdmlvbGF0ZSBhbnkgY29uc3Ry YWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVyCi0gICBpbmNvbnNpc3Rl bnQuCi0gICBUaGUgYWRkaXRpb25hbCBkZXRhaWxzIHJlZ2FyZGluZyBjb25mbGljdGluZyByb3dz LCBzdWNoIGFzIHRoZWlyIG9yaWdpbiBhbmQKLSAgIGNvbW1pdCB0aW1lc3RhbXAgY2FuIGJlIHNl ZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGluZSBvZiB0aGUKLSAgIGxvZy4g QnV0IG5vdGUgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4KLSAg IDxsaW5rIGxpbmtlbmQ9Imd1Yy10cmFjay1jb21taXQtdGltZXN0YW1wIj48dmFybmFtZT50cmFj a19jb21taXRfdGltZXN0YW1wPC92YXJuYW1lPjwvbGluaz4KLSAgIGlzIGVuYWJsZWQgb24gdGhl IHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUKLSAg IHdoZXRoZXIgdG8gcmV0YWluIHRoZSBsb2NhbCBjaGFuZ2Ugb3IgYWRvcHQgdGhlIHJlbW90ZSBh bHRlcmF0aW9uLiBGb3IKLSAgIGluc3RhbmNlLCB0aGUgPGxpdGVyYWw+REVUQUlMPC9saXRlcmFs PiBsaW5lIGluIHRoZSBhYm92ZSBsb2cgaW5kaWNhdGVzIHRoYXQKLSAgIHRoZSBleGlzdGluZyBy b3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNhbiBtYW51YWxseSBwZXJmb3JtIGEKLSAg IHJlbW90ZS1jaGFuZ2Utd2luLgotICA8L3BhcmE+Ci0KLSAgPHBhcmE+Ci0gICBXaGVuIHRoZQot ICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zdHJl YW1pbmciPjxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD48L2xpbms+Ci0gICBtb2RlIGlzIDxs aXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwgdGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5z YWN0aW9ucwotICAgbWF5IG5vdCBiZSBsb2dnZWQuIEluIHRoYXQgY2FzZSwgaXQgbWF5IGJlIG5l Y2Vzc2FyeSB0byBjaGFuZ2UgdGhlIHN0cmVhbWluZwotICAgbW9kZSB0byA8bGl0ZXJhbD5vbjwv bGl0ZXJhbD4gb3IgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPiBhbmQgY2F1c2UgdGhlIHNhbWUKLSAg IGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUgZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0 aW9uIHdpbGwgYmUgd3JpdHRlbgotICAgdG8gdGhlIHNlcnZlciBsb2cuIEZvciB0aGUgdXNhZ2Ug b2YgZmluaXNoIExTTiwgcGxlYXNlIHJlZmVyIHRvIDxsaW5rCi0gICBsaW5rZW5kPSJzcWwtYWx0 ZXJzdWJzY3JpcHRpb24iPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4KLSAgIFNLSVA8 L2NvbW1hbmQ+PC9saW5rPi4KLSAgPC9wYXJhPgorICAgIFRoZSBMU04gb2YgdGhlIHRyYW5zYWN0 aW9uIHRoYXQgY29udGFpbnMgdGhlIGNoYW5nZSB2aW9sYXRpbmcgdGhlIGNvbnN0cmFpbnQgYW5k CisgICAgdGhlIHJlcGxpY2F0aW9uIG9yaWdpbiBuYW1lIGNhbiBiZSBmb3VuZCBmcm9tIHRoZSBz ZXJ2ZXIgbG9nIChMU04gMC8wMTRDMDM3OCBhbmQKKyAgICByZXBsaWNhdGlvbiBvcmlnaW4gPGxp dGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+IGluIHRoZSBhYm92ZSBjYXNlKS4gIFRoZQorICAgIHRy YW5zYWN0aW9uIHRoYXQgcHJvZHVjZWQgdGhlIGNvbmZsaWN0IGNhbiBiZSBza2lwcGVkIGJ5IHVz aW5nCisgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1za2lw Ij48Y29tbWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIFNLSVA8L2NvbW1hbmQ+PC9saW5rPgor ICAgIHdpdGggdGhlIGZpbmlzaCBMU04KKyAgICAoaS5lLiwgTFNOIDAvMDE0QzAzNzgpLiAgVGhl IGZpbmlzaCBMU04gY291bGQgYmUgYW4gTFNOIGF0IHdoaWNoIHRoZSB0cmFuc2FjdGlvbgorICAg IGlzIGNvbW1pdHRlZCBvciBwcmVwYXJlZCBvbiB0aGUgcHVibGlzaGVyLiAgQWx0ZXJuYXRpdmVs eSwgdGhlIHRyYW5zYWN0aW9uIGNhbgorICAgIGFsc28gYmUgc2tpcHBlZCBieSBjYWxsaW5nIHRo ZSA8bGluayBsaW5rZW5kPSJwZy1yZXBsaWNhdGlvbi1vcmlnaW4tYWR2YW5jZSI+CisgICAgPGZ1 bmN0aW9uPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9hZHZhbmNlKCk8L2Z1bmN0aW9uPjwvbGluaz4g ZnVuY3Rpb24uCisgICAgQmVmb3JlIHVzaW5nIHRoaXMgZnVuY3Rpb24sIHRoZSBzdWJzY3JpcHRp b24gbmVlZHMgdG8gYmUgZGlzYWJsZWQgdGVtcG9yYXJpbHkKKyAgICBlaXRoZXIgYnkgPGxpbmsg bGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1kaXNhYmxlIj4KKyAgICA8Y29t bWFuZD5BTFRFUiBTVUJTQ1JJUFRJT04gLi4uIERJU0FCTEU8L2NvbW1hbmQ+PC9saW5rPiBvciwg dGhlCisgICAgc3Vic2NyaXB0aW9uIGNhbiBiZSB1c2VkIHdpdGggdGhlCisgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1kaXNhYmxlLW9uLWVycm9y Ij48bGl0ZXJhbD5kaXNhYmxlX29uX2Vycm9yPC9saXRlcmFsPjwvbGluaz4KKyAgICBvcHRpb24u IFRoZW4sIHlvdSBjYW4gdXNlIDxmdW5jdGlvbj5wZ19yZXBsaWNhdGlvbl9vcmlnaW5fYWR2YW5j ZSgpPC9mdW5jdGlvbj4KKyAgICBmdW5jdGlvbiB3aXRoIHRoZSA8cGFyYW1ldGVyPm5vZGVfbmFt ZTwvcGFyYW1ldGVyPiAoaS5lLiwgPGxpdGVyYWw+cGdfMTYzOTU8L2xpdGVyYWw+KQorICAgIGFu ZCB0aGUgbmV4dCBMU04gb2YgdGhlIGZpbmlzaCBMU04gKGkuZS4sIDAvMDE0QzAzNzkpLiAgVGhl IGN1cnJlbnQgcG9zaXRpb24gb2YKKyAgICBvcmlnaW5zIGNhbiBiZSBzZWVuIGluIHRoZSA8bGlu ayBsaW5rZW5kPSJ2aWV3LXBnLXJlcGxpY2F0aW9uLW9yaWdpbi1zdGF0dXMiPgorICAgIDxzdHJ1 Y3RuYW1lPnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXM8L3N0cnVjdG5hbWU+PC9saW5rPiBz eXN0ZW0gdmlldy4KKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHNraXBwaW5nIHRoZSB3aG9sZSB0cmFu c2FjdGlvbiBpbmNsdWRlcyBza2lwcGluZyBjaGFuZ2VzIHRoYXQKKyAgICBtaWdodCBub3Qgdmlv bGF0ZSBhbnkgY29uc3RyYWludC4gIFRoaXMgY2FuIGVhc2lseSBtYWtlIHRoZSBzdWJzY3JpYmVy CisgICAgaW5jb25zaXN0ZW50LgorICAgIFRoZSBhZGRpdGlvbmFsIGRldGFpbHMgcmVnYXJkaW5n IGNvbmZsaWN0aW5nIHJvd3MsIHN1Y2ggYXMgdGhlaXIgb3JpZ2luIGFuZAorICAgIGNvbW1pdCB0 aW1lc3RhbXAgY2FuIGJlIHNlZW4gaW4gdGhlIDxsaXRlcmFsPkRFVEFJTDwvbGl0ZXJhbD4gbGlu ZSBvZiB0aGUKKyAgICBsb2cuIEJ1dCBub3RlIHRoYXQgdGhpcyBpbmZvcm1hdGlvbiBpcyBvbmx5 IGF2YWlsYWJsZSB3aGVuCisgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1l c3RhbXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgor ICAgIGlzIGVuYWJsZWQgb24gdGhlIHN1YnNjcmliZXIuIFVzZXJzIGNhbiB1c2UgdGhpcyBpbmZv cm1hdGlvbiB0byBkZWNpZGUKKyAgICB3aGV0aGVyIHRvIHJldGFpbiB0aGUgbG9jYWwgY2hhbmdl IG9yIGFkb3B0IHRoZSByZW1vdGUgYWx0ZXJhdGlvbi4gRm9yCisgICAgaW5zdGFuY2UsIHRoZSA8 bGl0ZXJhbD5ERVRBSUw8L2xpdGVyYWw+IGxpbmUgaW4gdGhlIGFib3ZlIGxvZyBpbmRpY2F0ZXMg dGhhdAorICAgIHRoZSBleGlzdGluZyByb3cgd2FzIG1vZGlmaWVkIGxvY2FsbHkuIFVzZXJzIGNh biBtYW51YWxseSBwZXJmb3JtIGEKKyAgICByZW1vdGUtY2hhbmdlLXdpbi4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgV2hlbiB0aGUKKyAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl c3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXN0cmVhbWluZyI+PGxpdGVyYWw+c3RyZWFtaW5nPC9s aXRlcmFsPjwvbGluaz4KKyAgICBtb2RlIGlzIDxsaXRlcmFsPnBhcmFsbGVsPC9saXRlcmFsPiwg dGhlIGZpbmlzaCBMU04gb2YgZmFpbGVkIHRyYW5zYWN0aW9ucworICAgIG1heSBub3QgYmUgbG9n Z2VkLiBJbiB0aGF0IGNhc2UsIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBzdHJl YW1pbmcKKyAgICBtb2RlIHRvIDxsaXRlcmFsPm9uPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5vZmY8 L2xpdGVyYWw+IGFuZCBjYXVzZSB0aGUgc2FtZQorICAgIGNvbmZsaWN0cyBhZ2FpbiBzbyB0aGUg ZmluaXNoIExTTiBvZiB0aGUgZmFpbGVkIHRyYW5zYWN0aW9uIHdpbGwgYmUgd3JpdHRlbgorICAg IHRvIHRoZSBzZXJ2ZXIgbG9nLiBGb3IgdGhlIHVzYWdlIG9mIGZpbmlzaCBMU04sIHBsZWFzZSBy ZWZlciB0byA8bGluaworICAgIGxpbmtlbmQ9InNxbC1hbHRlcnN1YnNjcmlwdGlvbiI+PGNvbW1h bmQ+QUxURVIgU1VCU0NSSVBUSU9OIC4uLgorICAgIFNLSVA8L2NvbW1hbmQ+PC9saW5rPi4KKyAg IDwvcGFyYT4KKyAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJsb2dpY2FsLXJl cGxpY2F0aW9uLXJlc3RyaWN0aW9ucyI+CkBAIC0yNDE1LDYgKzI1MzgsMTQgQEAgQ09OVEVYVDog IHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUi IGR1cmluZyAiSU5TRVIKICAgICAga2V5IG9yIHJlcGxpY2EgaWRlbnRpdHkgZGVmaW5lZCBmb3Ig aXQuCiAgICAgPC9wYXJhPgogICAgPC9saXN0aXRlbT4KKworICAgPGxpc3RpdGVtPgorICAgIDxw YXJhPgorICAgICBDb25mbGljdCBsb2cgdGFibGVzIChzZWUgPGxpbmsgbGlua2VuZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxs aXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+IHBhcmFtZXRl cikKKyAgICAgYXJlIG5ldmVyIHB1Ymxpc2hlZCwgZXZlbiB3aGVuIHVzaW5nIDxsaXRlcmFsPkZP UiBBTEwgVEFCTEVTPC9saXRlcmFsPiBpbiBhCisgICAgIHB1YmxpY2F0aW9uLgorICAgIDwvcGFy YT4KKyAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogIDwvc2VjdDE+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGU0ZjBiNmIxNmM3Li4xM2I0 MTNkMTQyZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y OTMsOCArMjkzLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxsaXRlcmFs PmZhaWxvdmVyPC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXR3by1waGFzZSI+PGxpdGVyYWw+dHdvX3BoYXNl PC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2Ny aXB0aW9uLXBhcmFtcy13aXRoLXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0YWluX2Rl YWRfdHVwbGVzPC9saXRlcmFsPjwvbGluaz4sCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW1heC1yZXRlbnRpb24tZHVyYXRpb24iPjxsaXRl cmFsPm1heF9yZXRlbnRpb25fZHVyYXRpb248L2xpdGVyYWw+PC9saW5rPiwgYW5kCi0gICAgICA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNl aXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxfcmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xp bms+LgorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1tYXgtcmV0ZW50aW9uLWR1cmF0aW9uIj48bGl0ZXJhbD5tYXhfcmV0ZW50aW9uX2R1cmF0 aW9uPC9saXRlcmFsPjwvbGluaz4sCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uLXBhcmFtcy13aXRoLXdhbC1yZWNlaXZlci10aW1lb3V0Ij48bGl0ZXJhbD53YWxf cmVjZWl2ZXJfdGltZW91dDwvbGl0ZXJhbD48L2xpbms+LCBhbmQKKyAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3Rp bmF0aW9uIj48bGl0ZXJhbD5jb25mbGljdF9sb2dfZGVzdGluYXRpb248L2xpdGVyYWw+PC9saW5r Pi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNldCA8bGl0ZXJhbD5wYXNzd29yZF9yZXF1 aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgogCkBAIC0zNTIsNiArMzUzLDE0 IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICA8cXVvdGU+PGxpdGVyYWw+cGdfY29u ZmxpY3RfZGV0ZWN0aW9uPC9saXRlcmFsPjwvcXVvdGU+LCBjcmVhdGVkIHRvIHJldGFpbgogICAg ICAgZGVhZCB0dXBsZXMgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiwgd2lsbCBiZSBkcm9wcGVkLgog ICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIHRoZSA8bGluayBsaW5rZW5k PSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5h dGlvbiI+PGxpdGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4K KyAgICAgIHBhcmFtZXRlciBpcyBzZXQgdG8gPGxpdGVyYWw+dGFibGU8L2xpdGVyYWw+IG9yIDxs aXRlcmFsPmFsbDwvbGl0ZXJhbD4sIHRoZSBzeXN0ZW0KKyAgICAgIGF1dG9tYXRpY2FsbHkgY3Jl YXRlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLiBDb252ZXJzZWx5LCBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgPGxpdGVyYWw+bG9nPC9saXRlcmFsPiwgbG9nZ2luZyB0 byB0aGUgdGFibGUgc3RvcHMgYW5kIHRoZSBjb25mbGljdCBsb2cKKyAgICAgIHRhYmxlIGlzIGF1 dG9tYXRpY2FsbHkgZHJvcHBlZC4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bAppbmRleCAwN2Q1YjFiZDc3Yy4uNTI3ZjVhYjg3NGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yNjEsNiArMjYxLDU3IEBAIENSRUFURSBTVUJTQ1JJ UFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9y ZXBsYWNlYWJsCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13 aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gKDx0eXBlPmVudW08L3R5cGU+KTwvdGVy bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lm aWVzIHRoZSBkZXN0aW5hdGlvbiBmb3IgcmVjb3JkaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24gY29u ZmxpY3RzLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhl IGF2YWlsYWJsZSBkZXN0aW5hdGlvbnMgYXJlOgorICAgICAgICAgIDxpdGVtaXplZGxpc3Q+Cisg ICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxs aXRlcmFsPmxvZzwvbGl0ZXJhbD46IENvbmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVkIGluIHRo ZSBzZXJ2ZXIgbG9nLgorICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3Iu IFNlZQorICAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29u ZmxpY3QtZmlsZS1iYXNlZC1sb2dnaW5nIi8+CisgICAgICAgICAgICAgZm9yIGRldGFpbHMuCisg ICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPnRhYmxl PC9saXRlcmFsPjogVGhlIHN5c3RlbSBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBzdHJ1Y3R1cmVk IHRhYmxlCisgICAgICAgICAgICAgbmFtZWQgPGxpdGVyYWw+cGdfY29uZmxpY3RfbG9nX2Zvcl9z dWJpZF8mbHQ7c3ViaWQmZ3Q7PC9saXRlcmFsPgorICAgICAgICAgICAgIGluIHRoZSA8bGl0ZXJh bD5wZ19jb25mbGljdDwvbGl0ZXJhbD4gc2NoZW1hLiBUaGlzIGFsbG93cyBmb3IgZWFzeQorICAg ICAgICAgICAgIHF1ZXJ5aW5nIGFuZCBhbmFseXNpcyBvZiBjb25mbGljdHMuIFNlZQorICAgICAg ICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29uZmxpY3QtdGFibGUt YmFzZWQtbG9nZ2luZyIvPgorICAgICAgICAgICAgIGZvciBkZXRhaWxzLgorICAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgICAgPGNhdXRpb24+CisgICAgICAgICAgICAgPHBhcmE+CisgICAg ICAgICAgICAgIFRoZSBjb25mbGljdCBsb2cgdGFibGUgaXMgc3RyaWN0bHkgdGllZCB0byB0aGUg bGlmZWN5Y2xlIG9mIHRoZQorICAgICAgICAgICAgICBzdWJzY3JpcHRpb24gb3IgdGhlIDxsaXRl cmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD4gc2V0dGluZy4gSWYKKyAgICAg ICAgICAgICAgdGhlIHN1YnNjcmlwdGlvbiBpcyBkcm9wcGVkLCBvciBpZiB0aGUgZGVzdGluYXRp b24gaXMgY2hhbmdlZCB0bworICAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+LCB0 aGUgdGFibGUgYW5kIGFsbCBpdHMgcmVjb3JkZWQgY29uZmxpY3QgZGF0YSBhcmUKKyAgICAgICAg ICAgICAgPGVtcGhhc2lzPnBlcm1hbmVudGx5IGRlbGV0ZWQ8L2VtcGhhc2lzPi4KKyAgICAgICAg ICAgICA8L3BhcmE+CisgICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIElmIGNvbmZs aWN0IGhpc3RvcnkgbWF5IGJlIG5lZWRlZCBsYXRlciwgYmFjayB1cCB0aGUgY29uZmxpY3QgbG9n CisgICAgICAgICAgICAgIHRhYmxlIGJlZm9yZSBpdCBnZXRzIHJlbW92ZWQuCisgICAgICAgICAg ICAgPC9wYXJhPgorICAgICAgICAgICAgPC9jYXV0aW9uPgorICAgICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAg ICA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+OiBSZWNvcmRzIGNvbmZsaWN0IGRldGFpbHMgdG8gYm90 aCBkZXN0aW5hdGlvbnMKKyAgICAgICAgICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+IGFuZCA8 bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4uCisgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICAgICAgPC9pdGVtaXplZGxpc3Q+CisgICAgICAgICA8L3BhcmE+ CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvcHkt ZGF0YSI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvcHlfZGF0YTwvbGl0ZXJhbD4gKDx0eXBl PmJvb2xlYW48L3R5cGU+KTwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgotLSAKMi40OS4wCgo= --000000000000836a4f0654856cfe--