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 1wbgTk-002lMh-2Q for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Jun 2026 15:22:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wbgTj-007DNx-1D for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Jun 2026 15:22:27 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wbgTh-007DNl-2u for pgsql-hackers@lists.postgresql.org; Mon, 22 Jun 2026 15:22:26 +0000 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wbgTf-00000001bf6-06Cw for pgsql-hackers@lists.postgresql.org; Mon, 22 Jun 2026 15:22:25 +0000 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-5ad0abf1f7bso3554419e87.3 for ; Mon, 22 Jun 2026 08:22:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782141741; cv=none; d=google.com; s=arc-20240605; b=hgN5S8fkzAZQ5lWeUpQUJQ0jnEflHS05g4vvIR9RsDoc3T5Kl084iDRPDpuexW34hI VU34AB/4FRHBL/3pRtHMsesjd/MEKOhJ3qZfYQWB8yOTReJeeplsUdZXgK4blit0Gwcs ojwYyE4QN9K1r90uDxkhClb/In57/UOJqZLEOq3kVj67ti55gclLizI5RY346au5MMmY v/U3jmM21BdSGro8cKLN52MV8K1qyUnhk7MWqbzLUXiC8wiGv22crA18tqLr28PG3JIu aE0fkiqqyOJ8CXGUbWFpRLIrgjKEGuTdkU9I2Me47A4Tn+nATujnWp/EO6XrFpzMYRzw CcaA== 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=/maQtRvXqs3Qr+aLiWUF0oW6R9JfpQnUPDhsmE3Z0DU=; fh=Xb+aHyxg5q6kyHTh2MKNB8WBSfzjRRcsJuM5QYwrbjI=; b=Tia8ABDtUcTekoo/8tnBxkNVlcj4ReXNkivQizcIe5juH5VVVazrdtLyAr+oCt+hRm xlF0KTh8YGs+9mmGn8lmNwLX6uI1NoBQ3hDOK/gnQ0lptfg+ZuQ5vIjqT1vekJSrCiic H9DEoPGizG7Qb/vOOr0BfG+YepDfYYI0YOB1u5euadbDs6KW7CvKkkVM7L5sDOE+bQJS RzYTX1567yh26uVIW8LZoGqyCmnU6s7LuEMtEBsqdgLok+D+HfdoLXZ+Uj+eWJinAmpO bUFhCRVF1QdtLeHtAbeNtLeqK/xLgOLtoYoXS5v8i1zmXSU+BhYEWVOCD4obKz9kUwJ4 wQjg==; 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=1782141741; x=1782746541; 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=/maQtRvXqs3Qr+aLiWUF0oW6R9JfpQnUPDhsmE3Z0DU=; b=r28i1PDdqPA3NfFu7QNCwFW7fxXNrLTagLcQQGTG0iP8lJgCo8d1PRDZ9A+sfpJmCC qd7Ehev0aCKel/r5Ifa6YDk2caId5Tv5rInuwU+JCn7F66E1L4Flo0/e0/TPttZbsSIg XiHWeS5jJ9ISrmmc4yDwryAenx2CFLwnwcGQPLAIMDucImGLl+X6EEdQeshNrNXbGCwX FHk2Rouuicnb7P2WEqfGJinU9Zm8Yp8Su28bOL3qZp4XBg3OdCkfcxumC3iNQ0Z2uEA4 fw4Si4vVG0BgAbIOmLeI5v+y7POU+ekyehC1Wk6+pnQSHhpnFAUIIEnnYI/XG1qpg/hD GT3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782141741; x=1782746541; 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=/maQtRvXqs3Qr+aLiWUF0oW6R9JfpQnUPDhsmE3Z0DU=; b=H9ZKmJx5qI/IG70Lbo97ccSlk4NLmS2xNXMfihcdvZBCRR0Rn1rFfHUp6gNhQafkzu miMiwql5LJsUCmOUiIfLGGuk6EjvdxAfyAqOUVylwmRP7lQciSp2V7aPz++IqiEbnxqJ sJPavIV17g1B9SWSCtOcCTiVeo4LNqJqV/Jgsnn8shBl9i7Iw6TiqI+g5tRvPOZsSqzN kWrhfsqNTxOzbSqCcm+OaAKEtR3R+lTqjWRg/RU1ayHDwXQmTXPwNHd8MCCNFrwb0KHu 5GdPccgkM5JAGLDEn2THuqGxus/Fu6uMedMdGawIOKQWgAdF8pezqezpBgYA/5EGdfaY xQ3w== X-Forwarded-Encrypted: i=1; AFNElJ/WG7i7m3HdF6HztjyjjiB64S5RlewNzbnMv0nMKnThQdjeMUUyfO73X4KO3cg+Mj2aReZZS/On8Kk+/mzD@lists.postgresql.org X-Gm-Message-State: AOJu0YxLcPXcVrAF2iwV8zTToqm5GjUK50ee4fipnVuloCfH/iSC/n/5 u1W8/wIGRF47/6Ivpw2nxrdj7K9MSHtFp78yj8HUhC06uqYJsrr20nwioXI65X0LpCrJRND5rV1 gMiT90wGPPLm3l+8168Se+miU78eSKpM= X-Gm-Gg: AfdE7ckVs2xcLiblQ2wWYv7FrLREEtsN7kbrWNFKvyUx31Gzs7lFQJEb8LNOrqaX3Iy 9MWFpCqsRvP1+e+VD4l9SUMqk8Soclx9TbB5TFHDJ1CztdHGXTP37dpiAfuN0298LqYezVZNY4a qRw+PEX0QeLKTFg22Gob8d/IlFpz1H4bNcsa1FEMlnEkNPrJWnLY/B4+KBczdBSdFqEld997cx1 aSloz+Ol7K6RLgdatwXIbo08ATpgYakFMGmhgLTROK63V2XSwB5B4BkDXs+pBzMvVBethS+rSHP TNExgzNktYbwSz3Zb79zzzZnqAGX X-Received: by 2002:a05:6512:8013:20b0:5aa:6b6c:ac54 with SMTP id 2adb3069b0e04-5ad57715a01mr3264280e87.42.1782141740499; Mon, 22 Jun 2026 08:22:20 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Mon, 22 Jun 2026 20:52:01 +0530 X-Gm-Features: AVVi8CfGANWVZMcla6Mh0J8ag815yuw3Agx70q1M7m2JjuFcDWXiD42qrH3uRws Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Nisha Moond Cc: Amit Kapila , shveta malik , vignesh C , Peter Smith , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000061f3890654d935d6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000061f3890654d935d6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jun 22, 2026 at 4:32=E2=80=AFPM Nisha Moond wrote: > > On Sun, Jun 21, 2026 at 7:19=E2=80=AFPM Amit Kapila wrote: > > > > On Thu, Jun 18, 2026 at 9:33=E2=80=AFAM shveta malik wrote: > > > > > > On Tue, Jun 16, 2026 at 6:54=E2=80=AFPM Dilip Kumar wrote: > > > > > > > > IMHO we should just log WARNING and continue the apply worker on > > > > conflict insertion failure, lets see what other thinks on this. > > > > > > > > > > I have the same opinion. Allowing CLT to block the apply worker would > > > be undesirable; CLT is a history/logs collection feature and should > > > not interrupt core logical replication work. > > > > > > > I think the insert can fail in rare cases like disk getting full while > > writing WAL or some internal memory ERROR and the ERROR could be > > persistent which means the LOG will be filled with the same WARNING if > > there are many conflicts. Also, users may not like missing out on > > conflict information. So, we can ERROR out and let users fix the > > situation. Additionally, the nested try-catch to downgrade ERROR to > > WARNING also looks ugly and a source of future bugs and maintenance > > burden. The attached patch tries to fix this by ERRORing out on > > insertion failure and attaching the required conflict info as a > > context of ERROR. The patch also improved the ReportApplyConflict() > > non-ERROR paths by displaying the conflict information in server LOGs > > before inserting the same into CLT so that if insertion fails, the > > complete conflict info can be present in server LOGs. See > > v52-1-amit.Improve-error-handling-for-conflict-log-table-ins. > > > > Additionally, there is another problem with 0003 where when a parallel > > apply worker hits an ERROR-level conflict it logs the conflict to the > > conflict log table in a new transaction in its error path, after > > aborting the failed apply transaction. But the leader detects worker > > failure in pa_wait_for_xact_finish() by waiting on the worker's > > transaction lock, and AbortOutOfAnyTransaction() releases that lock: > > the leader unblocks, sees a non-finished state, raises "lost > > connection to the logical replication parallel apply worker", and > > tears the worker down -- which can SIGTERM it mid-insert and lose the > > conflict log row, besides being a misleading message. The attached > > top-up patch v52-2-amit.fix_parallel_apply_logging fixes that by > > introducing PARALLEL_TRANS_ERROR state. > > I reproduced the above issue and verified the fix for it in > v52-2-amit.fix_parallel_apply_logging. Here is a TAP test for the > same. > The attached top-up patch applies on top of the latest v53-0005 patch. > I have merged Amit's patch and Nisha's tap test patch and tested all the cases discussed, and those are working fine. --=20 Regards, Dilip Kumar Google --00000000000061f3890654d935d6 Content-Type: application/octet-stream; name="v54-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Disposition: attachment; filename="v54-0004-Preserve-conflict-log-destination-and-subscripti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqpd5e693 RnJvbSAyODlhMDk3NTNhNTgwMTAwMTBjMDU2OWM2YzFlYzY2ZjdjNzAzZWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogRnJpLCA1IEp1biAyMDI2IDE1OjUxOjIyICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NTQg 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 Y21kcy5jCmluZGV4IDUyMDc3NDU5OTI4Li41NDMwMjk3ZWFiNSAxMDA2NDQKLS0tIGEvc3JjL2Jh 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 b25mbGljdC5jCmluZGV4IGNlMWM4OTkwMTdjLi43NzNiMzhjNTRhYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTc5LDcgKzE3OSw3IEBAIGNyZWF0 ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1lLCBPaWQgc3Vib3du ZXIpCiAJT2lkCQkJcmVsaWQ7CiAJY2hhciAgICAJcmVsbmFtZVtOQU1FREFUQUxFTl07CiAKLQlz bnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgInBnX2NvbmZsaWN0X2xvZ18ldSIsIHN1Ymlk KTsKKwlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgQ09ORkxJQ1RfTE9HX1JFTEFUSU9O X05BTUVfRk1ULCBzdWJpZCk7CiAKIAkvKgogCSAqIENoZWNrIGZvciBhbiBleGlzdGluZyB0YWJs ZSB3aXRoIHRoZSBzYW1lIG5hbWUgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZS4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYwppbmRleCBiNTA1YTZiNGZlZS4u NTljM2U3ZjAxNDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRl X3N1cHBvcnQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0 LmMKQEAgLTE4MSw2ICsxODEsMTYgQEAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfYXV0aGlk X29pZChQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9WT0lEKCk7CiB9CiAKK0RhdHVtCiti aW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKFBHX0ZVTkNUSU9OX0FS R1MpCit7CisJT2lkCQkJc3ViaWQgPSBQR19HRVRBUkdfT0lEKDApOworCisJQ0hFQ0tfSVNfQklO QVJZX1VQR1JBREU7CisJYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkID0g c3ViaWQ7CisJUEdfUkVUVVJOX1ZPSUQoKTsKK30KKwogRGF0dW0KIGJpbmFyeV91cGdyYWRlX2Ny ZWF0ZV9lbXB0eV9leHRlbnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIHsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IGM1NjQzN2Q2MDU3Li41NzVkMmVjYjg4YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn 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== --00000000000061f3890654d935d6 Content-Type: application/octet-stream; name="v54-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v54-0003-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqpd5e652 RnJvbSAyYWY3NjkyNmE5YzNlZmY2YjNmNGIwM2JlODkwZTVmY2U1NWJhZWUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU2F0LCAzMCBNYXkgMjAyNiAxMzozNTowNCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU0 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 bC9hcHBseXBhcmFsbGVsd29ya2VyLmMgfCAgODQgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvY29uZmxpY3QuYyAgICB8IDc1MiArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbGF1bmNoZXIuYyAgICB8ICAgMSArCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgNjUgKy0KIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAgMTYgKwogc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMwX29yaWdpbi5wbCAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzVfY29uZmxpY3RzLnBsICAgICAgfCAgNDcgKy0KIDggZmlsZXMgY2hhbmdlZCwg OTE5IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxlbHdvcmtlci5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMKaW5kZXggMDEyZDU1 ZTlkM2QuLmEzZjViOWIxMjJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYwpAQCAtOTg2LDcgKzk4Niw2NSBAQCBQYXJh bGxlbEFwcGx5V29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAogCXNldF9hcHBseV9lcnJvcl9j b250ZXh0X29yaWdpbihvcmlnaW5uYW1lKTsKIAotCUxvZ2ljYWxQYXJhbGxlbEFwcGx5TG9vcCht cWgpOworCVBHX1RSWSgpOworCXsKKwkJTG9naWNhbFBhcmFsbGVsQXBwbHlMb29wKG1xaCk7CisJ fQorCVBHX0NBVENIKCk7CisJeworCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisJCUVycm9y RGF0YSAgKmVkYXRhOworCisJCS8qCisJCSAqIFJlc2V0IHRoZSBvcmlnaW4gc3RhdGUgdG8gcHJl dmVudCB0aGUgYWR2YW5jZW1lbnQgb2Ygb3JpZ2luCisJCSAqIHByb2dyZXNzIGlmIHdlIGZhaWwg dG8gYXBwbHkuIE90aGVyd2lzZSwgdGhpcyB3aWxsIHJlc3VsdCBpbgorCQkgKiB0cmFuc2FjdGlv biBsb3NzIGFzIHRoYXQgdHJhbnNhY3Rpb24gd29uJ3QgYmUgc2VudCBhZ2FpbiBieSB0aGUKKwkJ ICogc2VydmVyLgorCQkgKi8KKwkJcmVwbG9yaWdpbl94YWN0X2NsZWFyKHRydWUpOworCisJCS8q CisJCSAqIENvcHkgdGhlIGVycm9yIGFuZCByZWNvdmVyIHRvIGFuIGlkbGUgc3RhdGUgc28gd2Ug Y2FuIGluc2VydCB0aGUKKwkJICogZGVmZXJyZWQgY29uZmxpY3QgbG9nIHR1cGxlIChpZiBhbnkp IGJlZm9yZSByZS10aHJvd2luZy4gIENvcHkgdGhlCisJCSAqIGVycm9yIGludG8gYSBsb25nZXIt bGl2ZWQgY29udGV4dCBmaXJzdCwgYXMgaXQgbWF5IGhhdmUgYmVlbiByYWlzZWQKKwkJICogdW5k ZXIgRXJyb3JDb250ZXh0LiAgQWxzbyByZXNldCB0aGUgZXJyb3IgY29udGV4dCBzdGFjazogdGhl CisJCSAqIGNhbGxiYWNrcyBpbiBlZmZlY3Qgd2hlbiB0aGUgZXJyb3Igd2FzIHRocm93biBiZWxv bmcgdG8gdW53b3VuZCBzdGFjaworCQkgKiBmcmFtZXMsIGFuZCB0aGUgZGVmZXJyZWQgaW5zZXJ0 IGluc3RhbGxzIGl0cyBvd24uCisJCSAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3 aXRjaFRvKFRvcE1lbW9yeUNvbnRleHQpOworCQllZGF0YSA9IENvcHlFcnJvckRhdGEoKTsKKwkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCisJCUZsdXNoRXJyb3JTdGF0ZSgp OworCQllcnJvcl9jb250ZXh0X3N0YWNrID0gTlVMTDsKKworCQkvKgorCQkgKiBUZWxsIHRoZSBs ZWFkZXIgd2UgZmFpbGVkIGFuZCBhcmUgYWJvdXQgdG8gcmVwb3J0IHRoZSBlcnJvciBhbmQgbG9n CisJCSAqIHRoZSBjb25mbGljdC4gIFRoaXMgbXVzdCBiZSBzZXQgYmVmb3JlIEFib3J0T3V0T2ZB bnlUcmFuc2FjdGlvbigpCisJCSAqIGJlbG93IHJlbGVhc2VzIHRoZSB0cmFuc2FjdGlvbiBsb2Nr IHRoYXQgdGhlIGxlYWRlciB3YWl0cyBvbiBpbgorCQkgKiBwYV93YWl0X2Zvcl94YWN0X2Zpbmlz aCgpOyBvdGhlcndpc2UgdGhlIGxlYWRlciB3b3VsZCBzZWUgYQorCQkgKiBub24tZmluaXNoZWQg c3RhdGUsIGFzc3VtZSB0aGUgY29ubmVjdGlvbiB3YXMgbG9zdCwgYW5kIHRlYXIgdGhpcworCQkg KiB3b3JrZXIgZG93biB3aGlsZSBpdCBpcyBzdGlsbCB3cml0aW5nIHRoZSBjb25mbGljdCBsb2cg dHVwbGUuCisJCSAqLworCQlwYV9zZXRfeGFjdF9zdGF0ZShNeVBhcmFsbGVsU2hhcmVkLCBQQVJB TExFTF9UUkFOU19FUlJPUik7CisKKwkJQWJvcnRPdXRPZkFueVRyYW5zYWN0aW9uKCk7CisKKwkJ LyoKKwkJICogSW5zZXJ0IHRoZSBkZWZlcnJlZCBjb25mbGljdCBsb2cgdHVwbGUgYmVmb3JlIHJl LXRocm93aW5nLgorCQkgKiBSZS10aHJvd2luZyBpcyB3aGF0IHJlcG9ydHMgdGhlIGVycm9yIHRv IHRoZSBsZWFkZXIgKHZpYSB0aGUgZXJyb3IKKwkJICogcXVldWUgc2V0IHVwIGFib3ZlKSwgc28g dGhlIGluc2VydGlvbiBtdXN0IGhhcHBlbiBmaXJzdDogb3RoZXJ3aXNlCisJCSAqIHRoZSBsZWFk ZXIgY291bGQgc3RhcnQgdGVhcmluZyBkb3duIHRoaXMgd29ya2VyIHdoaWxlIGl0IGlzIHN0aWxs CisJCSAqIHdyaXRpbmcgdGhlIGNvbmZsaWN0IGxvZyB0dXBsZS4gIElmIHRoZSBpbnNlcnRpb24g aXRzZWxmIGZhaWxzLCB0aGF0CisJCSAqIGVycm9yIChhbm5vdGF0ZWQgd2l0aCB0aGUgY29uZmxp Y3QgY29udGV4dCwgc2VlIEluc2VydENvbmZsaWN0TG9nVHVwbGUpCisJCSAqIHByb3BhZ2F0ZXMg dG8gdGhlIGxlYWRlciBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hbC4KKwkJICovCisJCVByb2Nlc3NQ ZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpOworCisJCS8qIFJlLXRocm93IHRoZSBvcmlnaW5hbCBl cnJvciwgd2hpY2ggcmVwb3J0cyBpdCB0byB0aGUgbGVhZGVyLiAqLworCQlSZVRocm93RXJyb3Io ZWRhdGEpOworCX0KKwlQR19FTkRfVFJZKCk7CiAKIAkvKgogCSAqIFRoZSBwYXJhbGxlbCBhcHBs eSB3b3JrZXIgbXVzdCBub3QgZ2V0IGhlcmUgYmVjYXVzZSB0aGUgcGFyYWxsZWwgYXBwbHkKQEAg LTEzMTQsOSArMTM3MiwzMyBAQCBwYV93YWl0X2Zvcl94YWN0X2ZpbmlzaChQYXJhbGxlbEFwcGx5 V29ya2VySW5mbyAqd2luZm8pCiAJICogcmVsZWFzZWQuCiAJICovCiAJaWYgKHBhX2dldF94YWN0 X3N0YXRlKHdpbmZvLT5zaGFyZWQpICE9IFBBUkFMTEVMX1RSQU5TX0ZJTklTSEVEKQorCXsKKwkJ LyoKKwkJICogSWYgdGhlIHdvcmtlciBzaWduYWxsZWQgdGhhdCBpdCBlcnJvcmVkIChQQVJBTExF TF9UUkFOU19FUlJPUiksIGl0IGlzCisJCSAqIGxvZ2dpbmcgdGhlIGNvbmZsaWN0IGFuZCB3aWxs IHJlcG9ydCB0aGUgYWN0dWFsIGVycm9yIHZpYSB0aGUgZXJyb3IKKwkJICogcXVldWUgYmVmb3Jl IGV4aXRpbmcuICBXYWl0IGZvciB0aGF0IHJhdGhlciB0aGFuIHJlcG9ydGluZyBhIGdlbmVyaWMK KwkJICogbG9zdCBjb25uZWN0aW9uOiBDSEVDS19GT1JfSU5URVJSVVBUUygpIGRyaXZlcworCQkg KiBQcm9jZXNzUGFyYWxsZWxBcHBseU1lc3NhZ2VzKCksIHdoaWNoIHJhaXNlcyB0aGUgcmVhbCBl cnJvciBvbiB0aGUKKwkJICogd29ya2VyJ3MgRXJyb3JSZXNwb25zZSAob3IgImxvc3QgY29ubmVj dGlvbiIgaWYgdGhlIHdvcmtlciBkaWVkCisJCSAqIHdpdGhvdXQgcmVwb3J0aW5nKS4gIFdhaXRp bmcgaGVyZSBhbHNvIGtlZXBzIHRoZSB3b3JrZXIgYWxpdmUgbG9uZworCQkgKiBlbm91Z2ggdG8g ZmluaXNoIHdyaXRpbmcgdGhlIGNvbmZsaWN0IGxvZyB0dXBsZS4KKwkJICovCisJCXdoaWxlIChw YV9nZXRfeGFjdF9zdGF0ZSh3aW5mby0+c2hhcmVkKSA9PSBQQVJBTExFTF9UUkFOU19FUlJPUikK KwkJeworCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQkJKHZvaWQpIFdhaXRMYXRjaChN eUxhdGNoLAorCQkJCQkJCSBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfRVhJVF9PTl9Q TV9ERUFUSCwKKwkJCQkJCQkgMTBMLAorCQkJCQkJCSBXQUlUX0VWRU5UX0xPR0lDQUxfUEFSQUxM RUxfQVBQTFlfU1RBVEVfQ0hBTkdFKTsKKworCQkJUmVzZXRMYXRjaChNeUxhdGNoKTsKKwkJfQor CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BS RVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygibG9zdCBjb25uZWN0aW9uIHRvIHRoZSBs b2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIGFwcGx5IHdvcmtlciIpKSk7CisJfQogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5j IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCmluZGV4IDRhNjQ3 Mjc3ZDFmLi5jZTFjODk5MDE3YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv Y29uZmxpY3QuYwpAQCAtMTYsMTcgKzE2LDI1IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvY29tbWl0 X3RzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBh bS5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL3hhY3Qu aCIKICNpbmNsdWRlICJjYXRhbG9nL2hlYXAuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Rv YXN0aW5nLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKKyNpbmNsdWRlICJmdW5j YXBpLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vY29uZmxp Y3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgorI2luY2x1ZGUgInV0 aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50LmgiCiAjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNp bmNsdWRlICJ1dGlscy9wZ19sc24uaCIKIAogLyoKICAqIFN0cmluZyByZXByZXNlbnRhdGlvbnMg Zm9yIHRoZSBzdXBwb3J0ZWQgY29uZmxpY3QgbG9nZ2luZyBkZXN0aW5hdGlvbnMuCkBAIC00MCw3 ICs0OCw2IEBAIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVzW10gPSB7CiBT dGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKENvbmZsaWN0TG9nRGVzdE5hbWVzKSA9PSBDT05GTElD VF9MT0dfREVTVF9BTEwgKyAxLAogCQkJCSAiQ29uZmxpY3RMb2dEZXN0TmFtZXMgbGVuZ3RoIG1p c21hdGNoIik7CiAKLQogLyogU3RydWN0dXJlIHRvIGhvbGQgbWV0YWRhdGEgZm9yIG9uZSBjb2x1 bW4gb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLwogdHlwZWRlZiBzdHJ1Y3QgQ29uZmxpY3RM b2dDb2x1bW5EZWYKIHsKQEAgLTcyLDYgKzc5LDE4IEBAIHN0YXRpYyBjb25zdCBDb25mbGljdExv Z0NvbHVtbkRlZiBDb25mbGljdExvZ1NjaGVtYVtdID0gewogCiAjZGVmaW5lIE5VTV9DT05GTElD VF9BVFRSUyBsZW5ndGhvZihDb25mbGljdExvZ1NjaGVtYSkKIAorLyogU2NoZW1hIGZvciB0aGUg ZWxlbWVudHMgd2l0aGluIHRoZSAnbG9jYWxfY29uZmxpY3RzJyBKU09OIGFycmF5ICovCitzdGF0 aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgTG9jYWxDb25mbGljdFNjaGVtYVtdID0KK3sK Kwl7IC5hdHRuYW1lID0gInhpZCIsICAgICAgIC5hdHR0eXBpZCA9IFhJRE9JRCB9LAorCXsgLmF0 dG5hbWUgPSAiY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5h dHRuYW1lID0gIm9yaWdpbiIsICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1l ID0gImtleSIsICAgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInR1 cGxlIiwgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfQorfTsKKworI2RlZmluZSBOVU1fTE9DQUxf Q09ORkxJQ1RfQVRUUlMgbGVuZ3Rob2YoTG9jYWxDb25mbGljdFNjaGVtYSkKKwogc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0VHlwZU5hbWVzW10gPSB7CiAJW0NUX0lOU0VSVF9FWElT VFNdID0gImluc2VydF9leGlzdHMiLAogCVtDVF9VUERBVEVfT1JJR0lOX0RJRkZFUlNdID0gInVw ZGF0ZV9vcmlnaW5fZGlmZmVycyIsCkBAIC05OSw4ICsxMTgsMjcgQEAgc3RhdGljIHZvaWQgZ2V0 X3R1cGxlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCQkJ CQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwgY2hhciAqKnJlbW90ZV9kZXNjLAogCQkJ CQkJICAgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsIGNoYXIgKipzZWFyY2hfZGVzYywKIAkJ CQkJCSAgIE9pZCBpbmRleG9pZCk7CitzdGF0aWMgdm9pZCBidWlsZF9pbmRleF9kYXR1bXNfZnJv bV9zbG90KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkgVHVw bGVUYWJsZVNsb3QgKnNsb3QsCisJCQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4RGVzYywgRGF0dW0g KnZhbHVlcywKKwkJCQkJCQkJCQkgYm9vbCAqaXNudWxsKTsKIHN0YXRpYyBjaGFyICpidWlsZF9p bmRleF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKIAkJCQkJ CQkJCVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5kZXhvaWQpOworc3RhdGljIERhdHVtIHR1 cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShUdXBsZVRhYmxlU2xvdCAqc2xvdCk7CitzdGF0 aWMgRGF0dW0gdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKEVTdGF0ZSAqZXN0YXRl LAorCQkJCQkJCQkJCQkgICBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkJICAgT2lkIHJl cGxpY2FfaW5kZXgsCisJCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0YXRp YyBUdXBsZURlc2MgYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjKHZvaWQpOworc3RhdGljIERhdHVt IGJ1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2FycmF5KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlv biByZWwsCisJCQkJCQkJCQkJCSAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJ CQkJCSAgTGlzdCAqY29uZmxpY3R0dXBsZXMpOworc3RhdGljIHZvaWQgcHJlcGFyZV9jb25mbGlj dF9sb2dfdHVwbGUoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJCSAgIFJl bGF0aW9uIGNvbmZsaWN0bG9ncmVsLAorCQkJCQkJCQkJICAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0 X3R5cGUsCisJCQkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqc2VhcmNoc2xvdCwKKwkJCQkJCQkJ CSAgIExpc3QgKmNvbmZsaWN0dHVwbGVzLAorCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnJl bW90ZXNsb3QpOwogCiAvKgogICogQnVpbGRzIHRoZSBUdXBsZURlc2MgZm9yIHRoZSBjb25mbGlj dCBsb2cgdGFibGUuCkBAIC0yODEsMzAgKzMxOSwyMjAgQEAgUmVwb3J0QXBwbHlDb25mbGljdChF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgaW50IGVsZXZlbCwKIAkJCQkJ Q29uZmxpY3RUeXBlIHR5cGUsIFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAogCQkJCQlUdXBs ZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwgTGlzdCAqY29uZmxpY3R0dXBsZXMpCiB7Ci0JUmVsYXRp b24JbG9jYWxyZWwgPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7Ci0JU3RyaW5nSW5mb0RhdGEg ZXJyX2RldGFpbDsKKwlSZWxhdGlvbgkJbG9jYWxyZWwgPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRl c2M7CisJQ29uZmxpY3RMb2dEZXN0CWRlc3Q7CisJUmVsYXRpb24JCWNvbmZsaWN0bG9ncmVsOwor CWJvb2wJCQlsb2dfZGVzdF90YWJsZTsKKwlib29sIAkJCWxvZ19kZXN0X2xvZ2ZpbGU7CiAKLQlp bml0U3RyaW5nSW5mbygmZXJyX2RldGFpbCk7CisJcGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25f Y29uZmxpY3QoTXlTdWJzY3JpcHRpb24tPm9pZCwgdHlwZSk7CiAKLQkvKiBGb3JtIGVycmRldGFp bCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBsZXMgaW5mb3JtYXRpb24uICov Ci0JZm9yZWFjaF9wdHIoQ29uZmxpY3RUdXBsZUluZm8sIGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0 dHVwbGVzKQotCQllcnJkZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0YXRlLCByZWxpbmZvLCB0eXBl LCBzZWFyY2hzbG90LAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+c2xvdCwgcmVtb3Rlc2xvdCwK LQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPmluZGV4b2lkLAotCQkJCQkJCQkgY29uZmxpY3R0dXBs ZS0+eG1pbiwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPm9yaWdpbiwKLQkJCQkJCQkJIGNvbmZs aWN0dHVwbGUtPnRzLAotCQkJCQkJCQkgJmVycl9kZXRhaWwpOworCS8qCisJICogR2V0IHRoZSBj b25mbGljdCBsb2cgZGVzdGluYXRpb24uICBBbHNvLCBpZiBhIHRhYmxlIGlzIG9uZSBvZiB0aGUK KwkgKiBkZXN0aW5hdGlvbnMsIHJldHVybiB0aGUgQ0xUIHJlbGF0aW9uIGFscmVhZHkgb3BlbmVk IGFuZCByZWFkeSBmb3IKKwkgKiBpbnNlcnRpb24gLS0gb3IgTlVMTCBpZiBpdCBoYXMgYmVlbiBk cm9wcGVkIGNvbmN1cnJlbnRseS4KKwkgKi8KKwljb25mbGljdGxvZ3JlbCA9IEdldENvbmZsaWN0 TG9nRGVzdEFuZFRhYmxlKCZkZXN0KTsKIAotCXBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2Nv bmZsaWN0KE15U3Vic2NyaXB0aW9uLT5vaWQsIHR5cGUpOworCWxvZ19kZXN0X3RhYmxlID0gQ09O RkxJQ1RTX0xPR0dFRF9UT19UQUJMRShkZXN0KTsKKwlsb2dfZGVzdF9sb2dmaWxlID0gQ09ORkxJ Q1RTX0xPR0dFRF9UT19MT0coZGVzdCk7CisKKwkvKgorCSAqIElmIGEgY29uZmxpY3QgbG9nIHRh YmxlIHdhcyByZXF1ZXN0ZWQgYnV0IGl0IGhhcyBiZWVuIGRyb3BwZWQKKwkgKiBjb25jdXJyZW50 bHkgKGUuZy4gYSBjb25jdXJyZW50IEFMVEVSIFNVQlNDUklQVElPTiBjaGFuZ2VkCisJICogY29u ZmxpY3RfbG9nX2Rlc3RpbmF0aW9uKSwgR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUoKSByZXR1 cm5lZCBOVUxMLgorCSAqIEZhbGwgYmFjayB0byBsb2dnaW5nIHRoZSBmdWxsIGNvbmZsaWN0IGRl dGFpbHMgdG8gdGhlIHNlcnZlciBsb2cgc28gdGhhdAorCSAqIHRoZSBjb25mbGljdCBpcyBub3Qg bG9zdC4KKwkgKi8KKwlpZiAobG9nX2Rlc3RfdGFibGUgJiYgY29uZmxpY3Rsb2dyZWwgPT0gTlVM TCkKKwl7CisJCWxvZ19kZXN0X3RhYmxlID0gZmFsc2U7CisJCWxvZ19kZXN0X2xvZ2ZpbGUgPSB0 cnVlOworCX0KKworCS8qCisJICogUHJlcGFyZSB0aGUgY29uZmxpY3QgbG9nIHR1cGxlIGZpcnN0 IHdoZW4gdGhlIGRlc3RpbmF0aW9uIGluY2x1ZGVzIHRoZQorCSAqIHRhYmxlLiAgVGhpcyBtdXN0 IGhhcHBlbiBiZWZvcmUgdGhlIGVyZXBvcnQoKSBiZWxvdywgYmVjYXVzZSBmb3IgYW4KKwkgKiBF UlJPUi1sZXZlbCBjb25mbGljdCB0aGF0IGVyZXBvcnQoKSByYWlzZXMgdGhlIGVycm9yIGFuZCBk ZWZlcnMgdGhlCisJICogYWN0dWFsIGluc2VydGlvbiB0byBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0 TG9nVHVwbGUoKSwgd2hpY2ggcmVsaWVzIG9uIHRoZQorCSAqIHR1cGxlIGhhdmluZyBiZWVuIHBy ZXBhcmVkLgorCSAqLworCWlmIChsb2dfZGVzdF90YWJsZSkKKwl7CisJCUFzc2VydChjb25mbGlj dGxvZ3JlbCAhPSBOVUxMKTsKKwkJcHJlcGFyZV9jb25mbGljdF9sb2dfdHVwbGUoZXN0YXRlLAor CQkJCQkJCQkgICByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgIGNvbmZsaWN0 bG9ncmVsLAorCQkJCQkJCQkgICB0eXBlLAorCQkJCQkJCQkgICBzZWFyY2hzbG90LAorCQkJCQkJ CQkgICBjb25mbGljdHR1cGxlcywKKwkJCQkJCQkJICAgcmVtb3Rlc2xvdCk7CisJfQorCisJLyoK KwkgKiBSZXBvcnQgdGhlIGNvbmZsaWN0IHRvIHRoZSBzZXJ2ZXIgbG9nIGJlZm9yZSBpbnNlcnRp bmcgaXQgaW50byB0aGUKKwkgKiBjb25mbGljdCBsb2cgdGFibGUuICBFbWl0dGluZyBpdCBmaXJz dCBndWFyYW50ZWVzIHRoZSBjb25mbGljdCBpcworCSAqIHJlY29yZGVkIGV2ZW4gaWYgdGhlIHRh YmxlIGluc2VydCBiZWxvdyBmYWlsczsgaXQgaXMgYWxzbyB3aGF0IHJhaXNlcyB0aGUKKwkgKiBl cnJvciBmb3IgRVJST1ItbGV2ZWwgY29uZmxpY3RzLiAgV2hlbiB0aGUgc2VydmVyIGxvZyBpcyBv bmUgb2YgdGhlCisJICogZGVzdGluYXRpb25zIHdlIGVtaXQgdGhlIGZ1bGwgZGV0YWlscywgb3Ro ZXJ3aXNlICh0YWJsZS1vbmx5KSB3ZSBlbWl0IGEKKwkgKiBzaG9ydGVyIG1lc3NhZ2Ugc2luY2Ug dGhlIGRldGFpbHMgYXJlIGNhcHR1cmVkIGluIHRoZSB0YWJsZS4KKwkgKi8KKwlpZiAobG9nX2Rl c3RfbG9nZmlsZSkKKwl7CisJCVN0cmluZ0luZm9EYXRhCWVycl9kZXRhaWw7CisKKwkJaW5pdFN0 cmluZ0luZm8oJmVycl9kZXRhaWwpOworCisJCS8qIEZvcm0gZXJyZGV0YWlsIG1lc3NhZ2UgYnkg Y29tYmluaW5nIGNvbmZsaWN0aW5nIHR1cGxlcyBpbmZvcm1hdGlvbi4gKi8KKwkJZm9yZWFjaF9w dHIoQ29uZmxpY3RUdXBsZUluZm8sIGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0dHVwbGVzKQorCQkJ ZXJyZGV0YWlsX2FwcGx5X2NvbmZsaWN0KGVzdGF0ZSwgcmVsaW5mbywgdHlwZSwgc2VhcmNoc2xv dCwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPnNsb3QsIHJlbW90ZXNsb3QsCisJCQkJCQkJCQlj b25mbGljdHR1cGxlLT5pbmRleG9pZCwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPnhtaW4sCisJ CQkJCQkJCQljb25mbGljdHR1cGxlLT5vcmlnaW4sCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT50 cywKKwkJCQkJCQkJCSZlcnJfZGV0YWlsKTsKKworCQkvKiBTdGFuZGFyZCByZXBvcnRpbmcgd2l0 aCBmdWxsIGludGVybmFsIGRldGFpbHMuICovCisJCWVyZXBvcnQoZWxldmVsLAorCQkJCWVycmNv ZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCisJCQkJZXJybXNnKCJjb25mbGljdCBkZXRlY3RlZCBv biByZWxhdGlvbiBcIiVzXCI6IGNvbmZsaWN0PSVzIiwKKwkJCQkJICAgUmVsYXRpb25HZXRRdWFs aWZpZWRSZWxhdGlvbk5hbWUobG9jYWxyZWwpLAorCQkJCQkgICBDb25mbGljdFR5cGVOYW1lc1t0 eXBlXSksCisJCQkJZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVycl9kZXRhaWwuZGF0YSkpOwor CX0KKwllbHNlIGlmIChsb2dfZGVzdF90YWJsZSkKKwl7CisJCS8qCisJCSAqIE5vdCBsb2dnaW5n IGNvbmZsaWN0IGRldGFpbHMgdG8gdGhlIHNlcnZlciBsb2c7IHJlcG9ydCB0aGUgY29uZmxpY3QK KwkJICogYnV0IG9taXQgcmF3IHR1cGxlIGRhdGEgc2luY2UgaXQgaXMgY2FwdHVyZWQgaW4gdGhl IGNvbmZsaWN0IGxvZworCQkgKiB0YWJsZS4KKwkJICovCisJCWVyZXBvcnQoZWxldmVsLAorCQkJ CWVycmNvZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCisJCQkJZXJybXNnKCJjb25mbGljdCBkZXRl Y3RlZCBvbiByZWxhdGlvbiBcIiVzXCI6IGNvbmZsaWN0PSVzIiwKKwkJCQkJUmVsYXRpb25HZXRR dWFsaWZpZWRSZWxhdGlvbk5hbWUobG9jYWxyZWwpLAorCQkJCQlDb25mbGljdFR5cGVOYW1lc1t0 eXBlXSksCisJCQkJZXJyZGV0YWlsKCJDb25mbGljdCBkZXRhaWxzIGFyZSBsb2dnZWQgdG8gdGhl IGNvbmZsaWN0IGxvZyB0YWJsZTogJXMiLAorCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShjb25mbGljdGxvZ3JlbCkpKTsKKwl9CisKKwkvKgorCSAqIEluc2VydCBpbnRvIHRoZSBjb25m bGljdCBsb2cgdGFibGUgaWYgcmVxdWVzdGVkLiAgRm9yIGNvbmZsaWN0cyBiZWxvdworCSAqIEVS Uk9SIHRoZSBhcHBseSB0cmFuc2FjdGlvbiBjb250aW51ZXMsIHNvIGluc2VydCBpbW1lZGlhdGVs eTsgZm9yCisJICogRVJST1ItbGV2ZWwgY29uZmxpY3RzIHRoZSBlcmVwb3J0KCkgYWJvdmUgYWxy ZWFkeSByYWlzZWQgdGhlIGVycm9yIGFuZAorCSAqIHRoZSBpbnNlcnRpb24gaXMgZGVmZXJyZWQg dG8gYSBuZXcgdHJhbnNhY3Rpb24KKwkgKiAoUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxl KSBzbyB0aGF0IGl0IGlzIG5vdCByb2xsZWQgYmFjay4KKwkgKi8KKwlpZiAobG9nX2Rlc3RfdGFi bGUpCisJeworCQlpZiAoZWxldmVsIDwgRVJST1IpCisJCXsKKwkJCVBHX1RSWSgpOworCQkJewor CQkJCUluc2VydENvbmZsaWN0TG9nVHVwbGUoY29uZmxpY3Rsb2dyZWwpOworCQkJfQorCQkJUEdf Q0FUQ0goKTsKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFRoZSBpbnNlcnQgZmFpbGVkLCBzbyB0aGUg YXBwbHkgdHJhbnNhY3Rpb24gd2lsbCBhYm9ydCBhbmQKKwkJCQkgKiB0aGUgZXJyb3Igd2lsbCBw cm9wYWdhdGUgdG8gdGhlIHdvcmtlcidzIGVycm9yIGhhbmRsZXIuICBUaGUKKwkJCQkgKiBjb25m bGljdCB3YXMgYWxyZWFkeSByZXBvcnRlZCB0byB0aGUgc2VydmVyIGxvZyBhYm92ZSwgc28gaXQK KwkJCQkgKiBpcyBub3QgbG9zdC4gIERpc2NhcmQgdGhlIHByZXBhcmVkIHR1cGxlIHNvIHRoYXQg dGhlIGRlZmVycmVkCisJCQkJICogaW5zZXJ0aW9uIHBhdGggKFByb2Nlc3NQZW5kaW5nQ29uZmxp Y3RMb2dUdXBsZSkgZG9lcyBub3QgcmV0cnkKKwkJCQkgKiB0aGlzIHNhbWUgZmFpbGluZyBpbnNl cnQuCisJCQkJICovCisJCQkJaWYgKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1 cGxlICE9IE5VTEwpCisJCQkJeworCQkJCQloZWFwX2ZyZWV0dXBsZShNeUxvZ2ljYWxSZXBXb3Jr ZXItPmNvbmZsaWN0X2xvZ190dXBsZSk7CisJCQkJCU15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxp Y3RfbG9nX3R1cGxlID0gTlVMTDsKKwkJCQl9CisJCQkJaWYgKE15TG9naWNhbFJlcFdvcmtlci0+ Y29uZmxpY3RfbG9nX2VycmNvbnRleHQgIT0gTlVMTCkKKwkJCQl7CisJCQkJCXBmcmVlKE15TG9n aWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX2VycmNvbnRleHQpOworCQkJCQlNeUxvZ2ljYWxS ZXBXb3JrZXItPmNvbmZsaWN0X2xvZ19lcnJjb250ZXh0ID0gTlVMTDsKKwkJCQl9CisJCQkJUEdf UkVfVEhST1coKTsKKwkJCX0KKwkJCVBHX0VORF9UUlkoKTsKKwkJfQorCisJCXRhYmxlX2Nsb3Nl KGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwl9Cit9CisKKy8qCisgKiBQcm9j ZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUKKyAqICAgICAgSW5zZXJ0IGFueSBkZWZlcnJlZCBj b25mbGljdCBsb2cgdHVwbGUgaW4gYSBzZXBhcmF0ZSB0cmFuc2FjdGlvbi4KKyAqCisgKiBGb3Ig Y29uZmxpY3RzIHJhaXNlZCBhdCBFUlJPUiBsZXZlbCwgdGhlIGNvbmZsaWN0IGxvZyB0dXBsZSBj YW5ub3QgYmUKKyAqIGluc2VydGVkIGltbWVkaWF0ZWx5IGJlY2F1c2UgdGhlIHN1cnJvdW5kaW5n IHRyYW5zYWN0aW9uIHdpbGwgYWJvcnQuCisgKiBUbyBlbnN1cmUgdGhhdCBjb25mbGljdCBpbmZv cm1hdGlvbiBpcyBub3QgbG9zdCwgc3VjaCB0dXBsZXMgYXJlIHByZXBhcmVkCisgKiBkdXJpbmcg ZXJyb3IgcHJvY2Vzc2luZyAoc2VlIHByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKCkpIGJ1dCB0 aGVpcgorICogaW5zZXJ0aW9uIGlzIGRlZmVycmVkLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMg cmVzcG9uc2libGUgZm9yIGNvbXBsZXRpbmcgdGhhdCBkZWZlcnJlZCBpbnNlcnRpb24gYWZ0ZXIK KyAqIHRoZSBmYWlsaW5nIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGFib3J0ZWQgYW5kIHRoZSBzeXN0 ZW0gaGFzIHJldHVybmVkIHRvIGFuCisgKiBpZGxlIHN0YXRlLiAgSXQgZXhlY3V0ZXMgdGhlIGlu c2VydGlvbiBpbiBhIG5ldywgaW5kZXBlbmRlbnQgdHJhbnNhY3Rpb24sCisgKiBlbnN1cmluZyB0 aGF0IHRoZSBjb25mbGljdCBsb2cgZW50cnkgaXMgZHVyYWJsZSBhbmQgbm90IHJvbGxlZCBiYWNr CisgKiB0b2dldGhlciB3aXRoIHRoZSBmYWlsZWQgYXBwbHkgdHJhbnNhY3Rpb24uCisgKi8KK3Zv aWQKK1Byb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSh2b2lkKQoreworCVJlbGF0aW9uCWNv bmZsaWN0bG9ncmVsOworCUNvbmZsaWN0TG9nRGVzdCBkZXN0OworCisJLyogTm90aGluZyB0byBk byAqLworCWlmIChNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9PSBOVUxM KQorCQlyZXR1cm47CisKKwkvKgorCSAqIEluc2VydCB0aGUgZGVmZXJyZWQgY29uZmxpY3QgbG9n IHR1cGxlIGluIGl0cyBvd24gdHJhbnNhY3Rpb24uICBBCisJICogZmFpbHVyZSBoZXJlIChlLmcu IGFuIG91dC1vZi1kaXNrLXNwYWNlIGVycm9yKSBpcyB0cmVhdGVkIGxpa2UgYW55IG90aGVyCisJ ICogYXBwbHkgZXJyb3IgYW5kIHJhaXNlcyBhbiBFUlJPUjsgc3VjaCBmYWlsdXJlcyBhcmUgZXhw ZWN0ZWQgdG8gYmUgcmFyZQorCSAqIGFuZCBwZXJzaXN0ZW50LiAgQ2FsbGVycyBtdXN0IHRoZXJl Zm9yZSBoYXZlIGFscmVhZHkgcmVwb3J0ZWQgKGFuZAorCSAqIGNsZWFyZWQpIGFueSBpbi1wcm9n cmVzcyBhcHBseSBlcnJvciBiZWZvcmUgY2FsbGluZyB0aGlzLCBzbyB0aGF0IHRoaXMKKwkgKiBl cnJvciBkb2VzIG5vdCBtYXNrIHRoZSBvcmlnaW5hbCBvbmUuCisJICovCisJU3RhcnRUcmFuc2Fj dGlvbkNvbW1hbmQoKTsKKwlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hv dCgpKTsKKworCS8qCisJICogVGVzdCBob29rOiBwYXVzZSBoZXJlIHNvIGEgVEFQIHRlc3QgY2Fu IHRha2UgYSBjb25mbGljdGluZyBsb2NrIG9uCisJICogdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBi ZWZvcmUgdGhpcyB0cmFuc2FjdGlvbiB0cmllcyB0byBvcGVuIGl0LgorCSAqIFNlZSBzcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMzlfcGFfY29uZmxpY3RfbG9nX2xvY2tfd2FpdC5wbC4KKwkgKi8K KwlJTkpFQ1RJT05fUE9JTlQoImNsdC1wZW5kaW5nLWZsdXNoLWJlZm9yZS1vcGVuIiwgTlVMTCk7 CisKKwkvKiBPcGVuIHRoZSBjb25mbGljdCBsb2cgdGFibGUgYW5kIGluc2VydCB0aGUgdHVwbGUu ICovCisJY29uZmxpY3Rsb2dyZWwgPSBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZSgmZGVzdCk7 CisKKwlpZiAoY29uZmxpY3Rsb2dyZWwgIT0gTlVMTCkKKwl7CisJCUluc2VydENvbmZsaWN0TG9n VHVwbGUoY29uZmxpY3Rsb2dyZWwpOworCQl0YWJsZV9jbG9zZShjb25mbGljdGxvZ3JlbCwgUm93 RXhjbHVzaXZlTG9jayk7CisJfQorCWVsc2UKKwl7CisJCS8qCisJCSAqIFRoZSBjb25mbGljdCBs b2cgdGFibGUgd2FzIGRyb3BwZWQgY29uY3VycmVudGx5IChlLmcuIGJ5IGFuIEFMVEVSCisJCSAq IFNVQlNDUklQVElPTiB0aGF0IGNoYW5nZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uKSBhZnRl ciB0aGUKKwkJICogY29uZmxpY3Qgd2FzIGFscmVhZHkgcmVwb3J0ZWQgdG8gdGhlIHNlcnZlciBs b2cgYnkKKwkJICogUmVwb3J0QXBwbHlDb25mbGljdCgpLiAgTm90aGluZyBtb3JlIHRvIGRvOyBq dXN0IGRpc2NhcmQgdGhlIHByZXBhcmVkCisJCSAqIHR1cGxlIGFuZCBpdHMgY29udGV4dCBzdHJp bmcuCisJCSAqLworCQloZWFwX2ZyZWV0dXBsZShNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0 X2xvZ190dXBsZSk7CisJCU15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0g TlVMTDsKKwkJaWYgKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX2VycmNvbnRleHQp CisJCXsKKwkJCXBmcmVlKE15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX2VycmNvbnRl eHQpOworCQkJTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfZXJyY29udGV4dCA9IE5V TEw7CisJCX0KKwl9CiAKLQllcmVwb3J0KGVsZXZlbCwKLQkJCWVycmNvZGVfYXBwbHlfY29uZmxp Y3QodHlwZSksCi0JCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMu JXNcIjogY29uZmxpY3Q9JXMiLAotCQkJCSAgIGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdl dE5hbWVzcGFjZShsb2NhbHJlbCkpLAotCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxv Y2FscmVsKSwKLQkJCQkgICBDb25mbGljdFR5cGVOYW1lc1t0eXBlXSksCi0JCQllcnJkZXRhaWxf aW50ZXJuYWwoIiVzIiwgZXJyX2RldGFpbC5kYXRhKSk7CisJUG9wQWN0aXZlU25hcHNob3QoKTsK KwlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKIH0KIAogLyoKQEAgLTMzOCw2ICs1NjYsMTAw IEBAIEluaXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5mbyAqcmVsSW5mbykKIAlyZWxJbmZv LT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSB1bmlxdWVJbmRleGVzOwogfQogCisvKgor ICogR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUKKyAqCisgKiBGZXRjaGVzIGNvbmZsaWN0IGxv Z2dpbmcgbWV0YWRhdGEgZnJvbSB0aGUgY2FjaGVkIE15U3Vic2NyaXB0aW9uIHBvaW50ZXIuCisg KiBTZXRzIHRoZSBkZXN0aW5hdGlvbiBlbnVtIGluICpsb2dfZGVzdCBhbmQsIGlmIGEgdGFibGUg aXMgb25lIG9mIHRoZQorICogZGVzdGluYXRpb25zLCBvcGVucyBhbmQgcmV0dXJucyB0aGUgcmVs YXRpb24gaGFuZGxlIGZvciB0aGUgY29uZmxpY3QgbG9nCisgKiB0YWJsZS4KKyAqCisgKiBUaGUg dGFibGUgaXMgb3BlbmVkIHdpdGggdHJ5X3RhYmxlX29wZW4oKSwgc28gTlVMTCBpcyByZXR1cm5l ZCBpZiB0aGUKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBoYXMgYmVlbiBkcm9wcGVkIGNvbmN1cnJl bnRseSAoZS5nLiBieSBhbiBBTFRFUgorICogU1VCU0NSSVBUSU9OIHRoYXQgY2hhbmdlZCBjb25m bGljdF9sb2dfZGVzdGluYXRpb24pLiAgQ2FsbGVycyBtdXN0IHRyZWF0IGEKKyAqIE5VTEwgcmVz dWx0IGZvciBhIHRhYmxlIGRlc3RpbmF0aW9uIGFzICJ0YWJsZSB1bmF2YWlsYWJsZSIgYW5kIGZh bGwgYmFjayB0bworICogc2VydmVyLWxvZyByZXBvcnRpbmcgcmF0aGVyIHRoYW4gZmFpbGluZy4K KyAqLworUmVsYXRpb24KK0dldENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKENvbmZsaWN0TG9nRGVz dCAqbG9nX2Rlc3QpCit7CisJT2lkCQkJY29uZmxpY3Rsb2dyZWxpZDsKKworCS8qCisJICogQ29u dmVydCB0aGUgdGV4dCBsb2cgZGVzdGluYXRpb24gdG8gdGhlIGludGVybmFsIGVudW0uICBNeVN1 YnNjcmlwdGlvbgorCSAqIGFscmVhZHkgY29udGFpbnMgdGhlIGRhdGEgZnJvbSBwZ19zdWJzY3Jp cHRpb24uCisJICovCisJKmxvZ19kZXN0ID0gR2V0Q29uZmxpY3RMb2dEZXN0KE15U3Vic2NyaXB0 aW9uLT5jb25mbGljdGxvZ2Rlc3QpOworCisJLyogUXVpY2sgZXhpdCBpZiBhIGNvbmZsaWN0IGxv ZyB0YWJsZSB3YXMgbm90IHJlcXVlc3RlZC4gKi8KKwlpZiAoIUNPTkZMSUNUU19MT0dHRURfVE9f VEFCTEUoKmxvZ19kZXN0KSkKKwkJcmV0dXJuIE5VTEw7CisKKwljb25mbGljdGxvZ3JlbGlkID0g TXlTdWJzY3JpcHRpb24tPmNvbmZsaWN0bG9ncmVsaWQ7CisKKwlBc3NlcnQoT2lkSXNWYWxpZChj b25mbGljdGxvZ3JlbGlkKSk7CisKKwkvKgorCSAqIFVzZSB0cnlfdGFibGVfb3BlbigpOiB0aGUg dGFibGUgbWF5IGhhdmUgYmVlbiBkcm9wcGVkIGNvbmN1cnJlbnRseSBieSBhbgorCSAqIEFMVEVS IFNVQlNDUklQVElPTiB0aGF0IGNoYW5nZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uLiAgUmV0 dXJuaW5nIE5VTEwKKwkgKiBsZXRzIHRoZSBjYWxsZXIgZmFsbCBiYWNrIHRvIHRoZSBzZXJ2ZXIg bG9nIGluc3RlYWQgb2YgZmFpbGluZy4KKwkgKi8KKwlyZXR1cm4gdHJ5X3RhYmxlX29wZW4oY29u ZmxpY3Rsb2dyZWxpZCwgUm93RXhjbHVzaXZlTG9jayk7Cit9CisKKy8qCisgKiBFcnJvciBjb250 ZXh0IGNhbGxiYWNrIGZvciBmYWlsdXJlcyB3aGlsZSBpbnNlcnRpbmcgaW50byB0aGUgY29uZmxp Y3QgbG9nCisgKiB0YWJsZS4gIEFkZHMgYSBsaW5lIGlkZW50aWZ5aW5nIHRoZSBjb25mbGljdCB0 aGF0IHdhcyBiZWluZyBsb2dnZWQuCisgKi8KK3N0YXRpYyB2b2lkCitjb25mbGljdF9sb2dfaW5z ZXJ0X2VycmNvbnRleHQodm9pZCAqYXJnKQoreworCWNoYXIJICAgKmN0eCA9IChjaGFyICopIGFy ZzsKKworCWlmIChjdHgpCisJCWVycmNvbnRleHQoIiVzIiwgY3R4KTsKK30KKworLyoKKyAqIElu c2VydENvbmZsaWN0TG9nVHVwbGUKKyAqCisgKiBJbnNlcnQgY29uZmxpY3QgbG9nIHR1cGxlIGlu dG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4gSXQgdXNlcworICogSEVBUF9JTlNFUlRfTk9fTE9H SUNBTCB0byBleHBsaWNpdGx5IGJsb2NrIGxvZ2ljYWwgZGVjb2Rpbmcgb2YgdGhlIHR1cGxlCisg KiBpbnNlcnRlZCBpbnRvIHRoZSBjb25mbGljdCBsb2cgdGFibGUuCisgKi8KK3ZvaWQKK0luc2Vy dENvbmZsaWN0TG9nVHVwbGUoUmVsYXRpb24gY29uZmxpY3Rsb2dyZWwpCit7CisJRXJyb3JDb250 ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7CisKKwkvKiBBIHZhbGlkIHR1cGxlIG11c3QgYmUgcHJl cGFyZWQgYW5kIHN0b3JlZCBpbiBNeUxvZ2ljYWxSZXBXb3JrZXIuICovCisJQXNzZXJ0KE15TG9n aWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlICE9IE5VTEwpOworCisJLyoKKwkgKiBT ZXQgdXAgYW4gZXJyb3IgY29udGV4dCBzbyB0aGF0IGEgZmFpbHVyZSB0byBpbnNlcnQgKGUuZy4g dGhlIGNvbmZsaWN0CisJICogbG9nIHRhYmxlIHdhcyBkcm9wcGVkLCBvciBhbiBvdXQtb2Ytc3Bh Y2UgZXJyb3IpIGNhcnJpZXMgaW5mb3JtYXRpb24KKwkgKiBpZGVudGlmeWluZyB0aGUgY29uZmxp Y3Qgd2Ugd2VyZSB0cnlpbmcgdG8gbG9nLgorCSAqLworCWVycmNhbGxiYWNrLmNhbGxiYWNrID0g Y29uZmxpY3RfbG9nX2luc2VydF9lcnJjb250ZXh0OworCWVycmNhbGxiYWNrLmFyZyA9IE15TG9n aWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX2VycmNvbnRleHQ7CisJZXJyY2FsbGJhY2sucHJl dmlvdXMgPSBlcnJvcl9jb250ZXh0X3N0YWNrOworCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJy Y2FsbGJhY2s7CisKKwloZWFwX2luc2VydChjb25mbGljdGxvZ3JlbCwgTXlMb2dpY2FsUmVwV29y a2VyLT5jb25mbGljdF9sb2dfdHVwbGUsCisJCQkJR2V0Q3VycmVudENvbW1hbmRJZCh0cnVlKSwg SEVBUF9JTlNFUlRfTk9fTE9HSUNBTCwgTlVMTCk7CisKKwllcnJvcl9jb250ZXh0X3N0YWNrID0g ZXJyY2FsbGJhY2sucHJldmlvdXM7CisKKwkvKiBGcmVlIHRoZSBjb25mbGljdCBsb2cgdHVwbGUg YW5kIGl0cyBjb250ZXh0IHN0cmluZy4gKi8KKwloZWFwX2ZyZWV0dXBsZShNeUxvZ2ljYWxSZXBX b3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSk7CisJTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGlj dF9sb2dfdHVwbGUgPSBOVUxMOworCWlmIChNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xv Z19lcnJjb250ZXh0KQorCXsKKwkJcGZyZWUoTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9s b2dfZXJyY29udGV4dCk7CisJCU15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX2VycmNv bnRleHQgPSBOVUxMOworCX0KK30KKwogLyoKICAqIEFkZCBTUUxTVEFURSBlcnJvciBjb2RlIHRv IHRoZSBjdXJyZW50IGNvbmZsaWN0IHJlcG9ydC4KICAqLwpAQCAtNzcxLDYgKzEwOTMsNDAgQEAg Z2V0X3R1cGxlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sIENv bmZsaWN0VHlwZSB0eXBlLAogCX0KIH0KIAorLyoKKyAqIEhlbHBlciBmdW5jdGlvbiB0byBleHRy YWN0IHRoZSAicmF3IiBpbmRleCBrZXkgRGF0dW1zIGFuZCB0aGVpciBudWxsIGZsYWdzCisgKiBm cm9tIGEgVHVwbGVUYWJsZVNsb3QsIGdpdmVuIGFuIGFscmVhZHkgb3BlbiBpbmRleCBkZXNjcmlw dG9yLgorICogVGhpcyBpcyB0aGUgcmV1c2FibGUgY29yZSBsb2dpYy4KKyAqLworc3RhdGljIHZv aWQKK2J1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9u IGxvY2FscmVsLAorCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKKwkJCQkJCQkgUmVsYXRp b24gaW5kZXhEZXNjLCBEYXR1bSAqdmFsdWVzLAorCQkJCQkJCSBib29sICppc251bGwpCit7CisJ VHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xvdCA9IHNsb3Q7CisKKwkvKgorCSAqIElmIHRoZSBzbG90 IGlzIGEgdmlydHVhbCBzbG90LCBjb3B5IGl0IGludG8gYSBoZWFwIHR1cGxlIHNsb3QgYXMKKwkg KiBGb3JtSW5kZXhEYXR1bSBvbmx5IHdvcmtzIHdpdGggaGVhcCB0dXBsZSBzbG90cy4KKwkgKi8K KwlpZiAoVFRTX0lTX1ZJUlRVQUwoc2xvdCkpCisJeworCQkvKiBTbG90IGlzIGNyZWF0ZWQgd2l0 aGluIHRoZSBFU3RhdGUncyB0dXBsZSB0YWJsZSAqLworCQl0YWJsZXNsb3QgPSB0YWJsZV9zbG90 X2NyZWF0ZShsb2NhbHJlbCwgJmVzdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7CisJCXRhYmxlc2xvdCA9 IEV4ZWNDb3B5U2xvdCh0YWJsZXNsb3QsIHNsb3QpOworCX0KKworCS8qCisJICogSW5pdGlhbGl6 ZSBlY3h0X3NjYW50dXBsZSBmb3IgcG90ZW50aWFsIHVzZSBpbiBGb3JtSW5kZXhEYXR1bQorCSAq LworCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJs ZXNsb3Q7CisKKwkvKiBGb3JtIHRoZSBpbmRleCBkYXR1bXMgKi8KKwlGb3JtSW5kZXhEYXR1bShC dWlsZEluZGV4SW5mbyhpbmRleERlc2MpLCB0YWJsZXNsb3QsIGVzdGF0ZSwgdmFsdWVzLAorCQkJ CSAgIGlzbnVsbCk7Cit9CisKIC8qCiAgKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBh IHN0cmluZyBkZXNjcmliaW5nIHRoZSBjb250ZW50cyBvZiBhbiBpbmRleAogICogZW50cnkuIFNl ZSBCdWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbiBmb3IgZGV0YWlscy4KQEAgLTc4Niw0MSArMTE0 MiwzNDkgQEAgYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24g bG9jYWxyZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCVJlbGF0aW9uCWluZGV4RGVzYzsKIAlE YXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAlib29sCQlpc251bGxbSU5ERVhfTUFYX0tF WVNdOwotCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OwogCi0JaWYgKCF0YWJsZXNs b3QpCisJaWYgKCFzbG90KQogCQlyZXR1cm4gTlVMTDsKIAogCUFzc2VydChDaGVja1JlbGF0aW9u T2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOwogCiAJaW5k ZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleG9pZCwgTm9Mb2NrKTsKIAotCS8qCi0JICogSWYgdGhl IHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50byBhIGhlYXAgdHVwbGUgc2xvdCBh cwotCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0aCBoZWFwIHR1cGxlIHNsb3RzLgot CSAqLwotCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwlidWlsZF9pbmRleF9kYXR1bXNfZnJv bV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNsb3QsIGluZGV4RGVzYywgdmFsdWVzLAorCQkJCQkJ CQkgaXNudWxsKTsKKworCWluZGV4X3ZhbHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24o aW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwlpbmRleF9jbG9zZShpbmRleERlc2MsIE5v TG9jayk7CisKKwlyZXR1cm4gaW5kZXhfdmFsdWU7Cit9CisKKy8qCisgKiB0dXBsZV90YWJsZV9z bG90X3RvX2pzb25fZGF0dW0KKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBhIFR1 cGxlVGFibGVTbG90IHRvIEpTT04uCisgKi8KK3N0YXRpYyBEYXR1bQordHVwbGVfdGFibGVfc2xv dF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90KQoreworCUhlYXBUdXBsZQl0dXBs ZTsKKwlEYXR1bQkJZGF0dW07CisJRGF0dW0JCWpzb247CisKKwlBc3NlcnQoc2xvdCAhPSBOVUxM KTsKKworCXR1cGxlID0gRXhlY0NvcHlTbG90SGVhcFR1cGxlKHNsb3QpOworCWRhdHVtID0gaGVh cF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCBzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yKTsK KworCWpzb24gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1bSk7CisJaGVh cF9mcmVldHVwbGUodHVwbGUpOworCisJcmV0dXJuIGpzb247Cit9CisKKy8qCisgKiB0dXBsZV90 YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24KKyAqCisgKiBGZXRjaCByZXBsaWNhIGlkZW50aXR5 IGtleSBmcm9tIHRoZSB0dXBsZSB0YWJsZSBzbG90IGFuZCBjb252ZXJ0IGludG8gYQorICogSlNP TiBkYXR1bS4KKyAqLworc3RhdGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVw X2pzb24oRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkgIE9pZCBp bmRleGlkLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlSZWxhdGlvbglpbmRleERlc2M7CisJ RGF0dW0JCXZhbHVlc1tJTkRFWF9NQVhfS0VZU107CisJYm9vbAkJaXNudWxsW0lOREVYX01BWF9L RVlTXTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0dW0JCWRh dHVtOworCisJQXNzZXJ0KHNsb3QgIT0gTlVMTCk7CisKKwlBc3NlcnQoQ2hlY2tSZWxhdGlvbk9p ZExvY2tlZEJ5TWUoaW5kZXhpZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOworCisJaW5kZXhE ZXNjID0gaW5kZXhfb3BlbihpbmRleGlkLCBOb0xvY2spOworCisJYnVpbGRfaW5kZXhfZGF0dW1z X2Zyb21fc2xvdChlc3RhdGUsIGxvY2FscmVsLCBzbG90LCBpbmRleERlc2MsIHZhbHVlcywKKwkJ CQkJCQkJIGlzbnVsbCk7CisJdHVwZGVzYyA9IENyZWF0ZVR1cGxlRGVzY0NvcHkoUmVsYXRpb25H ZXREZXNjcihpbmRleERlc2MpKTsKKworCS8qIEJsZXNzIHRoZSB0dXBkZXNjIHNvIGl0IGNhbiBi ZSBsb29rZWQgdXAgYnkgcm93X3RvX2pzb24uICovCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7 CisKKwkvKiBGb3JtIHRoZSByZXBsaWNhIGlkZW50aXR5IHR1cGxlLiAqLworCXR1cGxlID0gaGVh cF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgaXNudWxsKTsKKwlkYXR1bSA9IGhlYXBfY29w eV90dXBsZV9hc19kYXR1bSh0dXBsZSwgdHVwZGVzYyk7CisKKwloZWFwX2ZyZWV0dXBsZSh0dXBs ZSk7CisJRnJlZVR1cGxlRGVzYyh0dXBkZXNjKTsKKwlpbmRleF9jbG9zZShpbmRleERlc2MsIE5v TG9jayk7CisKKwkvKiBDb252ZXJ0IHRvIGEgSlNPTiBkYXR1bS4gKi8KKwlyZXR1cm4gRGlyZWN0 RnVuY3Rpb25DYWxsMShyb3dfdG9fanNvbiwgZGF0dW0pOworfQorCisvKgorICogYnVpbGRfY29u ZmxpY3RfdHVwbGVkZXNjCisgKgorICogQnVpbGQgYW5kIGJsZXNzIGEgdHVwbGUgZGVzY3JpcHRv ciBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBiYXNlZCBvbiB0aGUKKyAqIHByZWRlZmluZWQg TG9jYWxDb25mbGljdFNjaGVtYS4KKyAqLworc3RhdGljIFR1cGxlRGVzYworYnVpbGRfY29uZmxp Y3RfdHVwbGVkZXNjKHZvaWQpCit7CisJc3RhdGljIFR1cGxlRGVzYyBjYWNoZWRfdHVwZGVzYyA9 IE5VTEw7CisKKwlpZiAoY2FjaGVkX3R1cGRlc2MgPT0gTlVMTCkKIAl7Ci0JCXRhYmxlc2xvdCA9 IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5lc190dXBsZVRhYmxlKTsKLQkJ dGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xvdCk7CisJCU1lbW9yeUNvbnRl eHQgb2xkY3h0OworCisJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9y eUNvbnRleHQpOworCisJCWNhY2hlZF90dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2Mo TlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTKTsKKworCQlmb3IgKGludCBpID0gMDsgaSA8IE5VTV9M T0NBTF9DT05GTElDVF9BVFRSUzsgaSsrKQorCQkJVHVwbGVEZXNjSW5pdEVudHJ5KGNhY2hlZF90 dXBkZXNjLAorCQkJCQkJCSAgIChBdHRyTnVtYmVyKSAoaSArIDEpLAorCQkJCQkJCSAgIExvY2Fs Q29uZmxpY3RTY2hlbWFbaV0uYXR0bmFtZSwKKwkJCQkJCQkgICBMb2NhbENvbmZsaWN0U2NoZW1h W2ldLmF0dHR5cGlkLAorCQkJCQkJCSAgIC0xLCAwKTsKKworCQlUdXBsZURlc2NGaW5hbGl6ZShj YWNoZWRfdHVwZGVzYyk7CisKKwkJLyoKKwkJICogQmxlc3Mgb25jZSBzbyBpdCBjYW4gYmUgdXNl ZCBhcyBhIFJFQ09SRCB0eXBlIChlLmcuIGZvcgorCQkgKiByb3dfdG9fanNvbiBvciBvdGhlciBy ZWNvcmQtYmFzZWQgb3BlcmF0aW9ucykuCisJCSAqLworCQlCbGVzc1R1cGxlRGVzYyhjYWNoZWRf dHVwZGVzYyk7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJfQogCi0JLyoK LQkgKiBJbml0aWFsaXplIGVjeHRfc2NhbnR1cGxlIGZvciBwb3RlbnRpYWwgdXNlIGluIEZvcm1J bmRleERhdHVtIHdoZW4KLQkgKiBpbmRleCBleHByZXNzaW9ucyBhcmUgcHJlc2VudC4KLQkgKi8K LQlHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSktPmVjeHRfc2NhbnR1cGxlID0gdGFibGVz bG90OworCXJldHVybiBjYWNoZWRfdHVwZGVzYzsKK30KIAotCS8qCi0JICogVGhlIHZhbHVlcy9u dWxscyBhcnJheXMgcGFzc2VkIHRvIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIHNob3VsZCBi ZQotCSAqIHRoZSByZXN1bHRzIG9mIEZvcm1JbmRleERhdHVtLCB3aGljaCBhcmUgdGhlICJyYXci IGlucHV0IHRvIHRoZSBpbmRleAotCSAqIEFNLgotCSAqLwotCUZvcm1JbmRleERhdHVtKEJ1aWxk SW5kZXhJbmZvKGluZGV4RGVzYyksIHRhYmxlc2xvdCwgZXN0YXRlLCB2YWx1ZXMsIGlzbnVsbCk7 CisvKgorICogQnVpbGRzIHRoZSBsb2NhbCBjb25mbGljdHMgSlNPTiBhcnJheSBjb2x1bW4gZnJv bSB0aGUgbGlzdCBvZgorICogQ29uZmxpY3RUdXBsZUluZm8gb2JqZWN0cy4KKyAqCisgKiBFeGFt cGxlIG91dHB1dCBzdHJ1Y3R1cmU6CisgKiBbIHsgInhpZCI6ICIxMDAxIiwgImNvbW1pdF90cyI6 ICIuLi4iLCAib3JpZ2luIjogIi4uLiIsICJ0dXBsZSI6IHsuLi59IH0sIC4uLiBdCisgKi8KK3N0 YXRpYyBEYXR1bQorYnVpbGRfbG9jYWxfY29uZmxpY3RzX2pzb25fYXJyYXkoRVN0YXRlICplc3Rh dGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAor CQkJCQkJCQkgTGlzdCAqY29uZmxpY3R0dXBsZXMpCit7CisJTGlzdENlbGwgICAqbGM7CisJTGlz dAkgICAqanNvbl9kYXR1bXMgPSBOSUw7CisJRGF0dW0JICAgKmpzb25fZGF0dW1fYXJyYXk7CisJ RGF0dW0JCWpzb25fYXJyYXlfZGF0dW07CisJaW50CQkJbnVtX2NvbmZsaWN0czsKKwlpbnQJCQlp OworCWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7CisJY2hhcgkJdHlwYWxpZ247CisJ VHVwbGVEZXNjCXR1cGRlc2M7CiAKLQlpbmRleF92YWx1ZSA9IEJ1aWxkSW5kZXhWYWx1ZURlc2Ny aXB0aW9uKGluZGV4RGVzYywgdmFsdWVzLCBpc251bGwpOworCS8qIEJ1aWxkIGxvY2FsIGNvbmZs aWN0cyB0dXBsZSBkZXNjcmlwdG9yLiAqLworCXR1cGRlc2MgPSBidWlsZF9jb25mbGljdF90dXBs ZWRlc2MoKTsKIAotCWluZGV4X2Nsb3NlKGluZGV4RGVzYywgTm9Mb2NrKTsKKwkvKiBQcm9jZXNz IGxvY2FsIGNvbmZsaWN0IHR1cGxlIGxpc3QgYW5kIHByZXBhcmUgYW4gYXJyYXkgb2YgSlNPTi4g Ki8KKwlmb3JlYWNoX3B0cihDb25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxp Y3R0dXBsZXMpCisJeworCQlEYXR1bQkJdmFsdWVzW05VTV9MT0NBTF9DT05GTElDVF9BVFRSU10g PSB7MH07CisJCWJvb2wJCW51bGxzW05VTV9MT0NBTF9DT05GTElDVF9BVFRSU10gPSB7MH07CisJ CWNoYXIJICAgKm9yaWdpbl9uYW1lID0gTlVMTDsKKwkJSGVhcFR1cGxlCXR1cGxlOworCQlEYXR1 bQkJanNvbl9kYXR1bTsKKwkJaW50CQkJYXR0bm87CisKKwkJYXR0bm8gPSAwOworCQl2YWx1ZXNb YXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0oY29uZmxpY3R0dXBsZS0+eG1pbik7CisK KwkJaWYgKGNvbmZsaWN0dHVwbGUtPnRzKQorCQkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1w VHpHZXREYXR1bShjb25mbGljdHR1cGxlLT50cyk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytd ID0gdHJ1ZTsKIAotCXJldHVybiBpbmRleF92YWx1ZTsKKwkJaWYgKGNvbmZsaWN0dHVwbGUtPm9y aWdpbiAhPSBJbnZhbGlkUmVwbE9yaWdpbklkKQorCQkJcmVwbG9yaWdpbl9ieV9vaWQoY29uZmxp Y3R0dXBsZS0+b3JpZ2luLCB0cnVlLCAmb3JpZ2luX25hbWUpOworCisJCS8qIFN0b3JlIGVtcHR5 IHN0cmluZyBpZiBvcmlnaW4gbmFtZSBmb3IgdGhlIHR1cGxlIGlzIE5VTEwuICovCisJCWlmIChv cmlnaW5fbmFtZSAhPSBOVUxMKQorCQkJdmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHRE YXR1bShvcmlnaW5fbmFtZSk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKwor CQkvKgorCQkgKiBBZGQgdGhlIGNvbmZsaWN0aW5nIGtleSB2YWx1ZXMgaW4gdGhlIGNhc2Ugb2Yg YSB1bmlxdWUgY29uc3RyYWludAorCQkgKiB2aW9sYXRpb24uCisJCSAqLworCQlpZiAoY29uZmxp Y3RfdHlwZSA9PSBDVF9JTlNFUlRfRVhJU1RTIHx8CisJCQljb25mbGljdF90eXBlID09IENUX1VQ REFURV9FWElTVFMgfHwKKwkJCWNvbmZsaWN0X3R5cGUgPT0gQ1RfTVVMVElQTEVfVU5JUVVFX0NP TkZMSUNUUykKKwkJeworCQkJT2lkCWluZGV4b2lkID0gY29uZmxpY3R0dXBsZS0+aW5kZXhvaWQ7 CisKKwkJCUFzc2VydChPaWRJc1ZhbGlkKGluZGV4b2lkKSAmJiBjb25mbGljdHR1cGxlLT5zbG90 ICYmCisJCQkJICAgQ2hlY2tSZWxhdGlvbk9pZExvY2tlZEJ5TWUoaW5kZXhvaWQsIFJvd0V4Y2x1 c2l2ZUxvY2ssCisJCQkJCQkJCQkJCSAgdHJ1ZSkpOworCQkJdmFsdWVzW2F0dG5vKytdID0KKwkJ CQkJdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKGVzdGF0ZSwgcmVsLAorCQkJCQkJ CQkJCQkJCSAgaW5kZXhvaWQsCisJCQkJCQkJCQkJCQkJICBjb25mbGljdHR1cGxlLT5zbG90KTsK KwkJfQorCQllbHNlCisJCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwkJLyogQ29udmVydCBj b25mbGljdGluZyB0dXBsZSB0byBKU09OIGRhdHVtLiAqLworCQlpZiAoY29uZmxpY3R0dXBsZS0+ c2xvdCkKKwkJCXZhbHVlc1thdHRub10gPSB0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0o Y29uZmxpY3R0dXBsZS0+c2xvdCk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vXSA9IHRydWU7CisK KwkJQXNzZXJ0KGF0dG5vICsgMSA9PSBOVU1fTE9DQUxfQ09ORkxJQ1RfQVRUUlMpOworCisJCXR1 cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCisJCWpzb25f ZGF0dW0gPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0odHVwbGUsIHR1cGRlc2MpOworCisJCS8q CisJCSAqIEJ1aWxkIHRoZSBoaWdoZXIgbGV2ZWwgSlNPTiBkYXR1bSBpbiBmb3JtYXQgZGVzY3Jp YmVkIGluIGZ1bmN0aW9uCisJCSAqIGhlYWRlci4KKwkJICovCisJCWpzb25fZGF0dW0gPSBEaXJl Y3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBqc29uX2RhdHVtKTsKKworCQkvKiBEb25lIHdp dGggdGhlIHRlbXBvcmFyeSB0dXBsZS4gKi8KKwkJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJ CS8qIEFkZCB0byB0aGUgYXJyYXkgZWxlbWVudC4gKi8KKwkJanNvbl9kYXR1bXMgPSBsYXBwZW5k KGpzb25fZGF0dW1zLCAodm9pZCAqKSBqc29uX2RhdHVtKTsKKwl9CisKKwludW1fY29uZmxpY3Rz ID0gbGlzdF9sZW5ndGgoanNvbl9kYXR1bXMpOworCisJanNvbl9kYXR1bV9hcnJheSA9IHBhbGxv Y19hcnJheShEYXR1bSwgbnVtX2NvbmZsaWN0cyk7CisKKwlpID0gMDsKKwlmb3JlYWNoKGxjLCBq c29uX2RhdHVtcykKKwl7CisJCWpzb25fZGF0dW1fYXJyYXlbaV0gPSAoRGF0dW0pIGxmaXJzdChs Yyk7CisJCWkrKzsKKwl9CisKKwkvKiBDb25zdHJ1Y3QgdGhlIEpTT04gYXJyYXkgRGF0dW0uICov CisJZ2V0X3R5cGxlbmJ5dmFsYWxpZ24oSlNPTk9JRCwgJnR5cGxlbiwgJnR5cGJ5dmFsLCAmdHlw YWxpZ24pOworCWpzb25fYXJyYXlfZGF0dW0gPSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2Fy cmF5KGpzb25fZGF0dW1fYXJyYXksCisJCQkJCQkJCQkJCQkJICAgbnVtX2NvbmZsaWN0cywKKwkJ CQkJCQkJCQkJCQkgICBKU09OT0lELAorCQkJCQkJCQkJCQkJCSAgIHR5cGxlbiwKKwkJCQkJCQkJ CQkJCQkgICB0eXBieXZhbCwKKwkJCQkJCQkJCQkJCQkgICB0eXBhbGlnbikpOworCXBmcmVlKGpz b25fZGF0dW1fYXJyYXkpOworCisJcmV0dXJuIGpzb25fYXJyYXlfZGF0dW07Cit9CisKKy8qCisg KiBwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZQorICoKKyAqIFRoaXMgcm91dGluZSBwcmVwYXJl cyBhIHR1cGxlIGRldGFpbGluZyBhIGNvbmZsaWN0IGVuY291bnRlcmVkIGR1cmluZworICogbG9n aWNhbCByZXBsaWNhdGlvbi4gVGhlIHByZXBhcmVkIHR1cGxlIHdpbGwgYmUgc3RvcmVkIGluCisg KiBNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSB3aGljaCBzaG91bGQgYmUg aW5zZXJ0ZWQgaW50byB0aGUKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBieSBjYWxsaW5nIEluc2Vy dENvbmZsaWN0TG9nVHVwbGUuCisgKi8KK3N0YXRpYyB2b2lkCitwcmVwYXJlX2NvbmZsaWN0X2xv Z190dXBsZShFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJICAgUmVsYXRpb24g Y29uZmxpY3Rsb2dyZWwsCisJCQkJCQkgICBDb25mbGljdFR5cGUgY29uZmxpY3RfdHlwZSwKKwkJ CQkJCSAgIFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAorCQkJCQkJICAgTGlzdCAqY29uZmxp Y3R0dXBsZXMsCisJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCkKK3sKKwlEYXR1 bQkJdmFsdWVzW05VTV9DT05GTElDVF9BVFRSU10gPSB7MH07CisJYm9vbAkJbnVsbHNbTlVNX0NP TkZMSUNUX0FUVFJTXSA9IHswfTsKKwlpbnQJCQlhdHRubzsKKwljaGFyCSAgICpyZW1vdGVfb3Jp Z2luID0gTlVMTDsKKwlNZW1vcnlDb250ZXh0CW9sZGN0eDsKKworCUFzc2VydChNeUxvZ2ljYWxS ZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9PSBOVUxMKTsKKworCS8qIFBvcHVsYXRlIHRo ZSB2YWx1ZXMgYW5kIG51bGxzIGFycmF5cy4gKi8KKwlhdHRubyA9IDA7CisJdmFsdWVzW2F0dG5v KytdID0gT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpOworCisJdmFsdWVz W2F0dG5vKytdID0KKwkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oZ2V0X25hbWVzcGFjZV9uYW1lKFJl bGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpKTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0oUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisKKwl2YWx1ZXNbYXR0 bm8rK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZsaWN0VHlwZU5hbWVzW2NvbmZsaWN0X3R5 cGVdKTsKKworCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZChyZW1vdGVfeGlkKSkKKwkJdmFsdWVz W2F0dG5vKytdID0gVHJhbnNhY3Rpb25JZEdldERhdHVtKHJlbW90ZV94aWQpOworCWVsc2UKKwkJ bnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJdmFsdWVzW2F0dG5vKytdID0gTFNOR2V0RGF0dW0o cmVtb3RlX2ZpbmFsX2xzbik7CisKKwlpZiAocmVtb3RlX2NvbW1pdF90cyA+IDApCisJCXZhbHVl c1thdHRubysrXSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0ocmVtb3RlX2NvbW1pdF90cyk7CisJZWxz ZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAocmVwbG9yaWdpbl94YWN0X3N0YXRl Lm9yaWdpbiAhPSBJbnZhbGlkUmVwbE9yaWdpbklkKQorCQlyZXBsb3JpZ2luX2J5X29pZChyZXBs b3JpZ2luX3hhY3Rfc3RhdGUub3JpZ2luLCB0cnVlLCAmcmVtb3RlX29yaWdpbik7CisKKwlpZiAo cmVtb3RlX29yaWdpbiAhPSBOVUxMKQorCQl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKHJlbW90ZV9vcmlnaW4pOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOwor CisJaWYgKCFUdXBJc051bGwocmVtb3Rlc2xvdCkpCisJCXZhbHVlc1thdHRubysrXSA9IHR1cGxl X3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShyZW1vdGVzbG90KTsKKwllbHNlCisJCW51bGxzW2F0 dG5vKytdID0gdHJ1ZTsKKworCWlmICghVHVwSXNOdWxsKHNlYXJjaHNsb3QpKQorCXsKKwkJT2lk CQlyZXBsaWNhX2luZGV4ID0gR2V0UmVsYXRpb25JZGVudGl0eU9yUEsocmVsKTsKKworCQkvKgor CQkgKiBJZiB0aGUgdGFibGUgaGFzIGEgdmFsaWQgcmVwbGljYSBpZGVudGl0eSBpbmRleCwgYnVp bGQgdGhlIGluZGV4CisJCSAqIEpTT04gZGF0dW0gZnJvbSBrZXkgdmFsdWUuIE90aGVyd2lzZSwg Y29uc3RydWN0IGl0IGZyb20gdGhlIGNvbXBsZXRlCisJCSAqIHR1cGxlIGluIFJFUExJQ0EgSURF TlRJVFkgRlVMTCBjYXNlcy4KKwkJICovCisJCWlmIChPaWRJc1ZhbGlkKHJlcGxpY2FfaW5kZXgp KQorCQkJdmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29u KGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJCQkJCQkJCXJlcGxpY2FfaW5kZXgsCisJCQkJCQkJCQkJ CQkJCQkJc2VhcmNoc2xvdCk7CisJCWVsc2UKKwkJCXZhbHVlc1thdHRubysrXSA9IHR1cGxlX3Rh YmxlX3Nsb3RfdG9fanNvbl9kYXR1bShzZWFyY2hzbG90KTsKKwl9CisJZWxzZQorCQludWxsc1th dHRubysrXSA9IHRydWU7CisKKwl2YWx1ZXNbYXR0bm9dID0gYnVpbGRfbG9jYWxfY29uZmxpY3Rz X2pzb25fYXJyYXkoZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJIGNvbmZsaWN0X3R5cGUsCisJ CQkJCQkJCQkJCQkJIGNvbmZsaWN0dHVwbGVzKTsKKworCUFzc2VydChhdHRubyArIDEgPT0gTlVN X0NPTkZMSUNUX0FUVFJTKTsKKworCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhBcHBs eUNvbnRleHQpOworCU15TG9naWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID0KKwkJ aGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IoY29uZmxpY3Rsb2dyZWwpLCB2YWx1ZXMs IG51bGxzKTsKKworCS8qCisJICogU3Rhc2ggYSBjb250ZXh0IHN0cmluZyBkZXNjcmliaW5nIHRo aXMgY29uZmxpY3QsIHNvIHRoYXQgaWYgaW5zZXJ0aW5nCisJICogdGhlIHR1cGxlIGludG8gdGhl IGNvbmZsaWN0IGxvZyB0YWJsZSBmYWlscywgdGhlIHJlc3VsdGluZyBlcnJvciBjYXJyaWVzCisJ ICogZW5vdWdoIGNvbnRleHQgdG8gaWRlbnRpZnkgdGhlIGNvbmZsaWN0IChzZWUgSW5zZXJ0Q29u ZmxpY3RMb2dUdXBsZSkuCisJICovCisJTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2df ZXJyY29udGV4dCA9CisJCXBzcHJpbnRmKCJ3aGlsZSBsb2dnaW5nIGNvbmZsaWN0IFwiJXNcIiBk ZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCSBDb25mbGljdFR5cGVOYW1lc1tjb25m bGljdF90eXBlXSwKKwkJCQkgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisJTWVtb3J5 Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2xhdW5jaGVyLmMKaW5kZXggMzEzZTMxZmYyZTMuLjA1YTMwMzQyZjY5IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jCkBAIC00ODcsNiArNDg3LDcgQEAg cmV0cnk6CiAJd29ya2VyLT5vbGRlc3Rfbm9ucmVtb3ZhYmxlX3hpZCA9IHJldGFpbl9kZWFkX3R1 cGxlcwogCQk/IE15UmVwbGljYXRpb25TbG90LT5kYXRhLnhtaW4KIAkJOiBJbnZhbGlkVHJhbnNh Y3Rpb25JZDsKKwl3b3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9IE5VTEw7CiAJd29ya2VyLT5s YXN0X2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCVRJTUVTVEFNUF9OT0JFR0lOKHdvcmtlci0+ bGFzdF9zZW5kX3RpbWUpOwogCVRJTUVTVEFNUF9OT0JFR0lOKHdvcmtlci0+bGFzdF9yZWN2X3Rp bWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKaW5kZXggNzc5OTI2 NmM2MTQuLmMzNGEyMzM2YzU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29y a2VyLmMKQEAgLTQ4Nyw3ICs0ODcsOSBAQCBzdGF0aWMgYm9vbCBNeVN1YnNjcmlwdGlvblZhbGlk ID0gZmFsc2U7CiBzdGF0aWMgTGlzdCAqb25fY29tbWl0X3dha2V1cF93b3JrZXJzX3N1YmlkcyA9 IE5JTDsKIAogYm9vbAkJaW5fcmVtb3RlX3RyYW5zYWN0aW9uID0gZmFsc2U7Ci1zdGF0aWMgWExv Z1JlY1B0ciByZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CitYTG9nUmVjUHRy IHJlbW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKK1RyYW5zYWN0aW9uSWQJcmVt b3RlX3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworVGltZXN0YW1wVHoJcmVtb3RlX2NvbW1p dF90cyA9IDA7CiAKIC8qIGZpZWxkcyB2YWxpZCBvbmx5IHdoZW4gcHJvY2Vzc2luZyBzdHJlYW1l ZCB0cmFuc2FjdGlvbiAqLwogc3RhdGljIGJvb2wgaW5fc3RyZWFtZWRfdHJhbnNhY3Rpb24gPSBm YWxzZTsKQEAgLTEyMzYsNiArMTIzOCw4IEBAIGFwcGx5X2hhbmRsZV9iZWdpbihTdHJpbmdJbmZv IHMpCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChiZWdpbl9kYXRhLnhpZCwgYmVnaW5f ZGF0YS5maW5hbF9sc24pOwogCiAJcmVtb3RlX2ZpbmFsX2xzbiA9IGJlZ2luX2RhdGEuZmluYWxf bHNuOworCXJlbW90ZV9jb21taXRfdHMgPSBiZWdpbl9kYXRhLmNvbW1pdHRpbWU7CisJcmVtb3Rl X3hpZCA9IGJlZ2luX2RhdGEueGlkOwogCiAJbWF5YmVfc3RhcnRfc2tpcHBpbmdfY2hhbmdlcyhi ZWdpbl9kYXRhLmZpbmFsX2xzbik7CiAKQEAgLTEyOTYsNiArMTMwMCw4IEBAIGFwcGx5X2hhbmRs ZV9iZWdpbl9wcmVwYXJlKFN0cmluZ0luZm8gcykKIAlzZXRfYXBwbHlfZXJyb3JfY29udGV4dF94 YWN0KGJlZ2luX2RhdGEueGlkLCBiZWdpbl9kYXRhLnByZXBhcmVfbHNuKTsKIAogCXJlbW90ZV9m aW5hbF9sc24gPSBiZWdpbl9kYXRhLnByZXBhcmVfbHNuOworCXJlbW90ZV94aWQgPSBiZWdpbl9k YXRhLnhpZDsKKwlyZW1vdGVfY29tbWl0X3RzID0gMDsKIAogCW1heWJlX3N0YXJ0X3NraXBwaW5n X2NoYW5nZXMoYmVnaW5fZGF0YS5wcmVwYXJlX2xzbik7CiAKQEAgLTE3NjcsNiArMTc3MywxMCBA QCBhcHBseV9oYW5kbGVfc3RyZWFtX3N0YXJ0KFN0cmluZ0luZm8gcykKIAkJCQkoZXJyY29kZShF UlJDT0RFX1BST1RPQ09MX1ZJT0xBVElPTiksCiAJCQkJIGVycm1zZ19pbnRlcm5hbCgiaW52YWxp ZCB0cmFuc2FjdGlvbiBJRCBpbiBzdHJlYW1lZCByZXBsaWNhdGlvbiB0cmFuc2FjdGlvbiIpKSk7 CiAKKwlyZW1vdGVfeGlkID0gc3RyZWFtX3hpZDsKKwlyZW1vdGVfZmluYWxfbHNuID0gSW52YWxp ZFhMb2dSZWNQdHI7CisJcmVtb3RlX2NvbW1pdF90cyA9IDA7CisKIAlzZXRfYXBwbHlfZXJyb3Jf Y29udGV4dF94YWN0KHN0cmVhbV94aWQsIEludmFsaWRYTG9nUmVjUHRyKTsKIAogCS8qIFRyeSB0 byBhbGxvY2F0ZSBhIHdvcmtlciBmb3IgdGhlIHN0cmVhbWluZyB0cmFuc2FjdGlvbi4gKi8KQEAg LTI0MjgsNiArMjQzOCw5IEBAIGFwcGx5X2hhbmRsZV9zdHJlYW1fY29tbWl0KFN0cmluZ0luZm8g cykKIAl7CiAJCWNhc2UgVFJBTlNfTEVBREVSX0FQUExZOgogCisJCQkvKiBTZXQgcmVtb3RlX2Nv bW1pdF90cyBmb3IgY29uZmxpY3QgbG9nZ2luZy4gKi8KKwkJCXJlbW90ZV9jb21taXRfdHMgPSBj b21taXRfZGF0YS5jb21taXR0aW1lOworCiAJCQkvKgogCQkJICogVGhlIHRyYW5zYWN0aW9uIGhh cyBiZWVuIHNlcmlhbGl6ZWQgdG8gZmlsZSwgc28gcmVwbGF5IGFsbCB0aGUKIAkJCSAqIHNwb29s ZWQgb3BlcmF0aW9ucy4KQEAgLTU2NDcsNiArNTY2MCw5IEBAIHN0YXJ0X2FwcGx5KFhMb2dSZWNQ dHIgb3JpZ2luX3N0YXJ0cG9zKQogCX0KIAlQR19DQVRDSCgpOwogCXsKKwkJTWVtb3J5Q29udGV4 dCBvbGRjb250ZXh0OworCQlFcnJvckRhdGEgICplZGF0YTsKKwogCQkvKgogCQkgKiBSZXNldCB0 aGUgb3JpZ2luIHN0YXRlIHRvIHByZXZlbnQgdGhlIGFkdmFuY2VtZW50IG9mIG9yaWdpbgogCQkg KiBwcm9ncmVzcyBpZiB3ZSBmYWlsIHRvIGFwcGx5LiBPdGhlcndpc2UsIHRoaXMgd2lsbCByZXN1 bHQgaW4KQEAgLTU2NjAsMTQgKzU2NzYsMzMgQEAgc3RhcnRfYXBwbHkoWExvZ1JlY1B0ciBvcmln aW5fc3RhcnRwb3MpCiAJCWVsc2UKIAkJewogCQkJLyoKLQkJCSAqIFJlcG9ydCB0aGUgd29ya2Vy IGZhaWxlZCB3aGlsZSBhcHBseWluZyBjaGFuZ2VzLiBBYm9ydCB0aGUKLQkJCSAqIGN1cnJlbnQg dHJhbnNhY3Rpb24gc28gdGhhdCB0aGUgc3RhdHMgbWVzc2FnZSBpcyBzZW50IGluIGFuCi0JCQkg KiBpZGxlIHN0YXRlLgorCQkJICogU2F2ZSB0aGUgZXJyb3IgYW5kIHJlY292ZXIgdG8gYW4gaWRs ZSBzdGF0ZSBzbyB3ZSBjYW4gaW5zZXJ0IHRoZQorCQkJICogZGVmZXJyZWQgY29uZmxpY3QgbG9n IHR1cGxlIChpZiBhbnkpIGJlZm9yZSByZS10aHJvd2luZy4gIENvcHkKKwkJCSAqIHRoZSBlcnJv ciBpbnRvIGEgbG9uZy1saXZlZCBjb250ZXh0IGZpcnN0LCBhcyBpdCBtYXkgaGF2ZSBiZWVuCisJ CQkgKiByYWlzZWQgdW5kZXIgRXJyb3JDb250ZXh0LiAgQWxzbyByZXNldCB0aGUgZXJyb3IgY29u dGV4dCBzdGFjazoKKwkJCSAqIHRoZSBjYWxsYmFja3MgaW4gZWZmZWN0IHdoZW4gdGhlIGVycm9y IHdhcyB0aHJvd24gYmVsb25nIHRvCisJCQkgKiB1bndvdW5kIHN0YWNrIGZyYW1lcywgYW5kIHRo ZSBkZWZlcnJlZCBpbnNlcnQgaW5zdGFsbHMgaXRzIG93bi4KIAkJCSAqLworCQkJb2xkY29udGV4 dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsKKwkJCWVkYXRhID0g Q29weUVycm9yRGF0YSgpOworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwor CisJCQlGbHVzaEVycm9yU3RhdGUoKTsKKwkJCWVycm9yX2NvbnRleHRfc3RhY2sgPSBOVUxMOwog CQkJQWJvcnRPdXRPZkFueVRyYW5zYWN0aW9uKCk7CiAJCQlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlw dGlvbl9lcnJvcihNeVN1YnNjcmlwdGlvbi0+b2lkKTsKIAotCQkJUEdfUkVfVEhST1coKTsKKwkJ CS8qCisJCQkgKiBJbnNlcnQgdGhlIGRlZmVycmVkIGNvbmZsaWN0IGxvZyB0dXBsZSBpbiBpdHMg b3duIHRyYW5zYWN0aW9uLgorCQkJICogSWYgdGhpcyBmYWlscywgdGhhdCBlcnJvciAoYW5ub3Rh dGVkIHdpdGggdGhlIGNvbmZsaWN0IGNvbnRleHQsCisJCQkgKiBzZWUgSW5zZXJ0Q29uZmxpY3RM b2dUdXBsZSkgcHJvcGFnYXRlcyBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5hbDsKKwkJCSAqIHN1Y2gg ZmFpbHVyZXMgYXJlIGV4cGVjdGVkIHRvIGJlIHJhcmUgYW5kIHBlcnNpc3RlbnQgKGUuZy4gb3V0 IG9mCisJCQkgKiBkaXNrIHNwYWNlKS4KKwkJCSAqLworCQkJUHJvY2Vzc1BlbmRpbmdDb25mbGlj dExvZ1R1cGxlKCk7CisKKwkJCS8qIFJlLXRocm93IHRoZSBvcmlnaW5hbCBlcnJvci4gKi8KKwkJ CVJlVGhyb3dFcnJvcihlZGF0YSk7CiAJCX0KIAl9CiAJUEdfRU5EX1RSWSgpOwpAQCAtNjAzNCw2 ICs2MDY5LDEzIEBAIERpc2FibGVTdWJzY3JpcHRpb25BbmRFeGl0KHZvaWQpCiAKIAlSRVNVTUVf SU5URVJSVVBUUygpOwogCisJLyoKKwkgKiBUaGUgZXJyb3IgY29udGV4dCBjYWxsYmFja3MgaW4g ZWZmZWN0IHdoZW4gdGhlIGVycm9yIHdhcyB0aHJvd24gYmVsb25nCisJICogdG8gbm93LXVud291 bmQgc3RhY2sgZnJhbWVzOyByZXNldCB0aGUgc3RhY2sgYmVmb3JlIHJ1bm5pbmcgZnVydGhlciBj b2RlCisJICogKGluY2x1ZGluZyB0aGUgZGVmZXJyZWQgY29uZmxpY3QgbG9nIGluc2VydGlvbiwg d2hpY2ggaW5zdGFsbHMgaXRzIG93bikuCisJICovCisJZXJyb3JfY29udGV4dF9zdGFjayA9IE5V TEw7CisKIAkvKgogCSAqIFJlcG9ydCB0aGUgd29ya2VyIGZhaWxlZCBkdXJpbmcgc2VxdWVuY2Ug c3luY2hyb25pemF0aW9uLCB0YWJsZQogCSAqIHN5bmNocm9uaXphdGlvbiwgb3IgYXBwbHkuCkBA IC02MDYyLDYgKzYxMDQsMTkgQEAgRGlzYWJsZVN1YnNjcmlwdGlvbkFuZEV4aXQodm9pZCkKIAkJ CWVycm1zZygic3Vic2NyaXB0aW9uIFwiJXNcIiBoYXMgYmVlbiBkaXNhYmxlZCBiZWNhdXNlIG9m IGFuIGVycm9yIiwKIAkJCQkgICBNeVN1YnNjcmlwdGlvbi0+bmFtZSkpOwogCisJLyoKKwkgKiBJ bnNlcnQgdGhlIGRlZmVycmVkIGNvbmZsaWN0IGxvZyB0dXBsZSAoaWYgYW55KSBub3cgdGhhdCB0 aGUKKwkgKiBzdWJzY3JpcHRpb24gaGFzIGJlZW4gZGlzYWJsZWQgYW5kIGNvbW1pdHRlZC4gIERv aW5nIGl0IGFmdGVyIHRoZQorCSAqIGRpc2FibGUgbWVhbnMgYSBmYWlsdXJlIHRvIGxvZyB0aGUg Y29uZmxpY3QgKHRyZWF0ZWQgYXMgYSBoYXJkIGVycm9yLAorCSAqIHNlZSBQcm9jZXNzUGVuZGlu Z0NvbmZsaWN0TG9nVHVwbGUpIGNhbm5vdCBwcmV2ZW50IHRoZSBzdWJzY3JpcHRpb24gZnJvbQor CSAqIGJlaW5nIGRpc2FibGVkIGFuZCBzbyBjYW5ub3QgbGVhdmUgdGhlIHdvcmtlciByZXN0YXJ0 aW5nIGFuZCBmYWlsaW5nCisJICogZm9yZXZlci4gIERvIGl0IGJlZm9yZSB0aGUgZGVhZC10dXBs ZSByZXRlbnRpb24gY2hlY2sgYmVsb3c6IHRoYXQgY2hlY2sKKwkgKiBvbmx5IHdhcm5zIHRvZGF5 LCBidXQgaXQgdGFrZXMgYW4gZWxldmVsIGFuZCBjb3VsZCByYWlzZSBhbiBlcnJvciwgd2hpY2gK KwkgKiBtdXN0IG5vdCBwcmV2ZW50IHRoZSBjb25mbGljdCBmcm9tIGJlaW5nIHJlY29yZGVkLiAg VGhlIG9yaWdpbmFsIGVycm9yCisJICogd2FzIGFscmVhZHkgcmVwb3J0ZWQgYWJvdmUuCisJICov CisJUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCk7CisKIAkvKgogCSAqIFNraXAgdGhl IHRyYWNrX2NvbW1pdF90aW1lc3RhbXAgY2hlY2sgd2hlbiBkaXNhYmxpbmcgdGhlIHdvcmtlciBk dWUgdG8KIAkgKiBhbiBlcnJvciwgYXMgdmVyaWZ5aW5nIGNvbW1pdCB0aW1lc3RhbXBzIGlzIHVu bmVjZXNzYXJ5IGluIHRoaXMKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2Nv bmZsaWN0LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCmluZGV4IGEwMTdl MWU2Y2I1Li5iNzI3Y2MyODVlOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v Y29uZmxpY3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCkBAIC0x MTUsNSArMTE1LDggQEAgZXh0ZXJuIHZvaWQgUmVwb3J0QXBwbHlDb25mbGljdChFU3RhdGUgKmVz dGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNl YXJjaHNsb3QsCiAJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90LAogCQkJCQkJCQlM aXN0ICpjb25mbGljdHR1cGxlcyk7CitleHRlcm4gdm9pZCBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0 TG9nVHVwbGUodm9pZCk7CiBleHRlcm4gdm9pZCBJbml0Q29uZmxpY3RJbmRleGVzKFJlc3VsdFJl bEluZm8gKnJlbEluZm8pOworZXh0ZXJuIFJlbGF0aW9uIEdldENvbmZsaWN0TG9nRGVzdEFuZFRh YmxlKENvbmZsaWN0TG9nRGVzdCAqbG9nX2Rlc3QpOworZXh0ZXJuIHZvaWQgSW5zZXJ0Q29uZmxp Y3RMb2dUdXBsZShSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKaW5kZXggNzQ1YjdkOWU5NjkuLjc5YzkwZGRk ZDg5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwu aAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAtMTAw LDYgKzEwMCwxNiBAQCB0eXBlZGVmIHN0cnVjdCBMb2dpY2FsUmVwV29ya2VyCiAJICovCiAJVHJh bnNhY3Rpb25JZCBvbGRlc3Rfbm9ucmVtb3ZhYmxlX3hpZDsKIAorCS8qIEEgY29uZmxpY3QgbG9n IHR1cGxlIHRoYXQgaXMgcHJlcGFyZWQgYnV0IG5vdCB5ZXQgaW5zZXJ0ZWQuICovCisJSGVhcFR1 cGxlCWNvbmZsaWN0X2xvZ190dXBsZTsKKworCS8qCisJICogRXJyb3ItY29udGV4dCBzdHJpbmcg ZGVzY3JpYmluZyB0aGUgY29uZmxpY3QgYWJvdmUsIHVzZWQgdG8gYW5ub3RhdGUgYW55CisJICog ZXJyb3IgcmFpc2VkIHdoaWxlIGluc2VydGluZyBjb25mbGljdF9sb2dfdHVwbGUgaW50byB0aGUg Y29uZmxpY3QgbG9nCisJICogdGFibGUuICBBbGxvY2F0ZWQsIGxpa2UgY29uZmxpY3RfbG9nX3R1 cGxlLCBpbiBBcHBseUNvbnRleHQuCisJICovCisJY2hhcgkgICAqY29uZmxpY3RfbG9nX2VycmNv bnRleHQ7CisKIAkvKiBTdGF0cy4gKi8KIAlYTG9nUmVjUHRyCWxhc3RfbHNuOwogCVRpbWVzdGFt cFR6IGxhc3Rfc2VuZF90aW1lOwpAQCAtMTIxLDYgKzEzMSw4IEBAIHR5cGVkZWYgZW51bSBQYXJh bGxlbFRyYW5zU3RhdGUKIAlQQVJBTExFTF9UUkFOU19VTktOT1dOLAogCVBBUkFMTEVMX1RSQU5T X1NUQVJURUQsCiAJUEFSQUxMRUxfVFJBTlNfRklOSVNIRUQsCisJUEFSQUxMRUxfVFJBTlNfRVJS T1IsCQkvKiB3b3JrZXIgZmFpbGVkOyBpdCB3aWxsIHJlcG9ydCB0aGUgZXJyb3IgKGFuZAorCQkJ CQkJCQkgKiBsb2cgdGhlIGNvbmZsaWN0LCBpZiBhbnkpIGJlZm9yZSBleGl0aW5nICovCiB9IFBh cmFsbGVsVHJhbnNTdGF0ZTsKIAogLyoKQEAgLTI1NSw2ICsyNjcsMTAgQEAgZXh0ZXJuIFBHRExM SU1QT1JUIGJvb2wgSW5pdGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKIGV4dGVybiBQR0RMTElNUE9S VCBMaXN0ICp0YWJsZV9zdGF0ZXNfbm90X3JlYWR5OwogCitleHRlcm4gWExvZ1JlY1B0ciByZW1v dGVfZmluYWxfbHNuOworZXh0ZXJuIFRpbWVzdGFtcFR6IHJlbW90ZV9jb21taXRfdHM7CitleHRl cm4gVHJhbnNhY3Rpb25JZCByZW1vdGVfeGlkOworCiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dv cmtlcl9hdHRhY2goaW50IHNsb3QpOwogZXh0ZXJuIExvZ2ljYWxSZXBXb3JrZXIgKmxvZ2ljYWxy ZXBfd29ya2VyX2ZpbmQoTG9naWNhbFJlcFdvcmtlclR5cGUgd3R5cGUsCiAJCQkJCQkJCQkJCQlP aWQgc3ViaWQsIE9pZCByZWxpZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzMF9vcmlnaW4ucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2luLnBsCmlu ZGV4IDZiYzZiNzg3NGMyLi41ZjRkMDBiZGQzMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDMwX29yaWdpbi5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBf b3JpZ2luLnBsCkBAIC0xNjYsNyArMTY2LDcgQEAgaXMoJHJlc3VsdCwgcXEoMzIpLCAnVGhlIG5v ZGVfQSBkYXRhIHJlcGxpY2F0ZWQgdG8gbm9kZV9CJyk7CiAkbm9kZV9DLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlVQREFURSAkdGFiIFNFVCBhID0gMzMgV0hFUkUgYSA9IDMyOyIpOwogCiAkbm9k ZV9CLT53YWl0X2Zvcl9sb2coCi0JcXIvY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1 YmxpYy4kdGFiX3VucXVvdGVkIjogY29uZmxpY3Q9dXBkYXRlX29yaWdpbl9kaWZmZXJzLipcbi4q REVUQUlMOi4qIFVwZGF0aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9kaWZpZWQgYnkgYSBkaWZmZXJl bnQgb3JpZ2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0IC4qOiBsb2NhbCByb3cgXCgz MlwpLCByZW1vdGUgcm93IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1cKDMyXCkuLwor CXFyL2NvbmZsaWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYiI6IGNvbmZsaWN0 PXVwZGF0ZV9vcmlnaW5fZGlmZmVycy4qXG4uKkRFVEFJTDouKiBVcGRhdGluZyB0aGUgcm93IHRo YXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAiLioiIGluIHRyYW5zYWN0aW9u IFswLTldKyBhdCAuKjogbG9jYWwgcm93IFwoMzJcKSwgcmVtb3RlIHJvdyBcKDMzXCksIHJlcGxp Y2EgaWRlbnRpdHkgXChhXCk9XCgzMlwpLi8KICk7CiAKICRub2RlX0ItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiREVMRVRFIEZST00gJHRhYjsiKTsKQEAgLTE4Miw3ICsxODIsNyBAQCBpcygkcmVz dWx0LCBxcSgzMyksICdUaGUgbm9kZV9BIGRhdGEgcmVwbGljYXRlZCB0byBub2RlX0InKTsKICRu b2RlX0MtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiREVMRVRFIEZST00gJHRhYiBXSEVSRSBhID0g MzM7Iik7CiAKICRub2RlX0ItPndhaXRfZm9yX2xvZygKLQlxci9jb25mbGljdCBkZXRlY3RlZCBv biByZWxhdGlvbiAicHVibGljLiR0YWJfdW5xdW90ZWQiOiBjb25mbGljdD1kZWxldGVfb3JpZ2lu X2RpZmZlcnMuKlxuLipERVRBSUw6LiogRGVsZXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBtb2RpZmll ZCBieSBhIGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0cmFuc2FjdGlvbiBbMC05XSsgYXQgLio6 IGxvY2FsIHJvdyBcKDMzXCksIHJlcGxpY2EgaWRlbnRpdHkgXChhXCk9XCgzM1wpLiovCisJcXIv Y29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy4kdGFiIjogY29uZmxpY3Q9ZGVs ZXRlX29yaWdpbl9kaWZmZXJzLipcbi4qREVUQUlMOi4qIERlbGV0aW5nIHRoZSByb3cgdGhhdCB3 YXMgbW9kaWZpZWQgYnkgYSBkaWZmZXJlbnQgb3JpZ2luICIuKiIgaW4gdHJhbnNhY3Rpb24gWzAt OV0rIGF0IC4qOiBsb2NhbCByb3cgXCgzM1wpLCByZXBsaWNhIGlkZW50aXR5IFwoYVwpPVwoMzNc KS4qLwogKTsKIAogIyBUaGUgcmVtYWluaW5nIHRlc3RzIG5vIGxvbmdlciB0ZXN0IGNvbmZsaWN0 IGRldGVjdGlvbi4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25m bGljdHMucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCmluZGV4 IGYyM2ZlNmFmMmE1Li5kZTJkMzdjODc1NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDM1X2NvbmZsaWN0cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVf Y29uZmxpY3RzLnBsCkBAIC01MCw3ICs1MCw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgKIAkncG9zdGdyZXMnLAogCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1Yl90YWIKIAkgQ09OTkVD VElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyIGFwcGxpY2F0aW9uX25hbWU9JGFwcG5hbWUnCi0JIFBV QkxJQ0FUSU9OIHB1Yl90YWI7Iik7CisJIFBVQkxJQ0FUSU9OIHB1Yl90YWIgV0lUSCAoY29uZmxp Y3RfbG9nX2Rlc3RpbmF0aW9uPWFsbCkiKTsKIAogIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5 bmMgdG8gZmluaXNoCiAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3lu Yygkbm9kZV9wdWJsaXNoZXIsICRhcHBuYW1lKTsKQEAgLTg0LDEwICs4NCwzNSBAQCAkbm9kZV9z dWJzY3JpYmVyLT53YWl0X2Zvcl9sb2coCiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUg aW5kZXggXCJjb25mX3RhYl9jX2tleVwiLCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjoga2V5 IFwoY1wpPVwoNFwpLCBsb2NhbCByb3cgXCg0LCA0LCA0XCkuLywKIAkkbG9nX29mZnNldCk7CiAK KyMgVmVyaWZ5IHRoZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisj IFRoaXMgc2VjdGlvbiBlbnN1cmVzIHRoYXQgdGhlIENMVCBjb250YWlucyB0aGUgZXhwZWN0ZWQK KyMgdHlwZSBhbmQgc3BlY2lmaWMga2V5IGRhdGEuCitteSAkc3ViaWQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlw dGlvbiBXSEVSRSBzdWJuYW1lID0gJ3N1Yl90YWInOyIpOworbXkgJGNsdCA9ICJwZ19jb25mbGlj dC5wZ19jb25mbGljdF9sb2dfJHN1YmlkIjsKKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8g YmUgbG9nZ2VkIGluIHRoZSBDTFQKK215ICRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5w b2xsX3F1ZXJ5X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+ IDAgRlJPTSAkY2x0OyIKKyk7CisKK215ICRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPj0gMSBGUk9N ICRjbHQgV0hFUkUgY29uZmxpY3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsi KTsKK2lzKCRjb25mbGljdF9jaGVjaywgJ3QnLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2Nv bmZsaWN0cyBsb2dnZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworbXkgJGpzb25fcXVl cnkgPSAiU0VMRUNUIGxvY2FsX2NvbmZsaWN0cyBGUk9NICRjbHQ7IjsKK215ICRyYXdfanNvbiA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkanNvbl9xdWVyeSk7CisK KyMgVmVyaWZ5IHRoYXQgJzInIGlzIHByZXNlbnQgaW5zaWRlIHRoZSBKU09OIHN0cnVjdHVyZSB1 c2luZyBhIHJlZ2V4CisjIFRoaXMgbWF0Y2hlcyB0aGUga2V5L3ZhbHVlIHBhdHRlcm4gZm9yICJh IjogMgorbGlrZSgkcmF3X2pzb24sIHFyL1xcImFcXCI6Mi8sICdWZXJpZmllZCB0aGF0IGtleSAy IGV4aXN0cyBpbiB0aGUgbG9jYWxfY29uZmxpY3RzJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1 ZV9jb25mbGljdHMgZGV0ZWN0ZWQgZHVyaW5nIGluc2VydCcpOwogCiAjIFRydW5jYXRlIHRhYmxl IHRvIGdldCByaWQgb2YgdGhlIGVycm9yCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlRSVU5DQVRFIGNvbmZfdGFiOyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSAkY2x0Iik7CiAKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRlc3QgbXVsdGlwbGVfdW5pcXVl X2NvbmZsaWN0cyBkdWUgdG8gVVBEQVRFCkBAIC0xMTQsNiArMTM5LDI2IEBAICRub2RlX3N1YnNj cmliZXItPndhaXRfZm9yX2xvZygKIC4qS2V5IGFscmVhZHkgZXhpc3RzIGluIHVuaXF1ZSBpbmRl eCBcImNvbmZfdGFiX2Nfa2V5XCIsIG1vZGlmaWVkIGluIHRyYW5zYWN0aW9uIC4qOiBrZXkgXChj XCk9XCg4XCksIGxvY2FsIHJvdyBcKDgsIDgsIDhcKS4vLAogCSRsb2dfb2Zmc2V0KTsKIAorIyBW ZXJpZnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBDb25mbGljdCBMb2cgVGFibGUgKENMVCkKKyMgVGhp cyBzZWN0aW9uIGVuc3VyZXMgdGhhdCB0aGUgQ0xUIGNvbnRhaW5zIHRoZSBleHBlY3RlZAorIyB0 eXBlIGFuZCBzcGVjaWZpYyBrZXkgZGF0YS4KKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8g YmUgbG9nZ2VkIGluIHRoZSBDTFQKKyRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xs X3F1ZXJ5X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAg RlJPTSAkY2x0OyIKKyk7CisKKyRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPj0gMSBGUk9NICRjbHQg V0hFUkUgY29uZmxpY3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsiKTsKK2lz KCRjb25mbGljdF9jaGVjaywgJ3QnLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0 cyBsb2dnZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworJHJhd19qc29uID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJp ZnkgdGhhdCAnNicgaXMgcHJlc2VudCBpbnNpZGUgdGhlIEpTT04gc3RydWN0dXJlIHVzaW5nIGEg cmVnZXgKKyMgVGhpcyBtYXRjaGVzIHRoZSBrZXkvdmFsdWUgcGF0dGVybiBmb3IgImEiOiA2Cits aWtlKCRyYXdfanNvbiwgcXIvXFwiYVxcIjo2LywgJ1ZlcmlmaWVkIHRoYXQga2V5IDYgZXhpc3Rz IGluIHRoZSBsb2NhbF9jb25mbGljdHMnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZs aWN0cyBkZXRlY3RlZCBkdXJpbmcgdXBkYXRlJyk7CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0 IHJpZCBvZiB0aGUgZXJyb3IKLS0gCjIuNDkuMAoK --00000000000061f3890654d935d6 Content-Type: application/octet-stream; name="v54-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Disposition: attachment; filename="v54-0002-Report-error-for-ddls-on-conflict-log-tables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqpd5e621 RnJvbSBhMzQ2ZTg1MjIwNzI1Y2RmY2E1MzcyODUyY2IyZDA3NDZmN2ZjZmFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxMCBKdW4gMjAyNiAxNjo1Mjo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU0 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 --00000000000061f3890654d935d6 Content-Type: application/octet-stream; name="v54-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Disposition: attachment; filename="v54-0005-Add-conflict-log-table-information-to-describe-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqpd5e6c4 RnJvbSA0MjE0NmVjYjg1M2FmYTgxMDljZDZkZGZjZGUyNTk2Y2MyNzBlMTM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTEgSnVuIDIwMjYgMTc6Mzc6MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1NCA1LzZd 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 eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IDZmYTBlOGQxNmZhLi45MGZlNWUzN2E2MyAx 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 cmVzc190ZXN0c3ViMzsKQEAgLTIzNywxMCArMjM3LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiBy 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 OSwxMCArMjQ5LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChz 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 TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMjY4 LDEwICsyNjgsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRl 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 IHN1YnNjcmlwdGlvbgogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9ORQpAQCAtMjgw LDEwICsyODAsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChs 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 CkBAIC0zMTksMTAgKzMxOSwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi 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 dGhlIHJlc3Qgc2ltcGxlCkBAIC0zNTEsMTkgKzM1MSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9O 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 dWI7CkBAIC0zNzUsMjcgKzM3NSwyNyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz 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 MSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtNDEwLDEw ICs0MTAsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElD 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 biBvbmNlCkBAIC00MjgsMTAgKzQyOCwxMCBAQCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHVi 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 T04gcmVncmVzc190ZXN0c3ViOwpAQCAtNDY3LDE5ICs0NjcsMTkgQEAgQ1JFQVRFIFNVQlNDUklQ 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 U0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTQ4OSwxMCArNDg5LDEwIEBAIENSRUFURSBTVUJT 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 UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC01MDUsMTgg KzUwNSwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9O 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 Tk9ORSk7CkBAIC01MjksMTAgKzUyOSwxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf 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 dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNTQ5LDEwICs1NDksMTAgQEAgTk9USUNF 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 LSBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlCkBAIC01NjEsMTAg KzU2MSwxMCBAQCBFUlJPUjogIG1heF9yZXRlbnRpb25fZHVyYXRpb24gY2Fubm90IGJlIG5lZ2F0 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== --00000000000061f3890654d935d6 Content-Type: application/octet-stream; name="v54-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v54-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqpd5e5u0 RnJvbSBjMGNhMDdhNTc5MTliNzA5NmE3MGE3ZjRlMzBmODc5YzQ1YTAwYjg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogTW9uLCAyMiBKdW4gMjAyNiAxNTo1Nzo1NCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU0 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 cHRpb25jbWRzLmMKaW5kZXggZWUwNmE3MjZmNDIuLjUyMDc3NDU5OTI4IDEwMDY0NAotLS0gYS9z 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 ID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTIyOTcsNiArMjQ0OSw1MSBAQCBjb25zdHJ1 Y3Rfc3Vic2VydmVyX2Nvbm5pbmZvKE9pZCBzdWJzZXJ2ZXIsIE9pZCBzdWJvd25lciwgY2hhciAq KmVycikKIAlyZXR1cm4gRm9yZWlnblNlcnZlckNvbm5lY3Rpb25TdHJpbmcoc3Vib3duZXIsIHNl cnZlcik7CiB9CiAKKy8qCisgKiBEcm9wIHN1YnNjcmlwdGlvbidzIGNvbmZsaWN0IGxvZyB0YWJs ZQorICoKKyAqIFRoZSBjb25mbGljdCBsb2cgdGFibGUgaXMgcmVnaXN0ZXJlZCBhcyBhbiBpbnRl cm5hbCBkZXBlbmRlbmN5IG9mIHRoZQorICogc3Vic2NyaXB0aW9uLiBUaGlzIGZ1bmN0aW9uIHJl bW92ZXMgdGhlIGRlcGVuZGVuY3kgYnkgcGVyZm9ybWluZyBhCisgKiBjYXNjYWRpbmcgZGVsZXRp b24gb24gdGhlIHN1YnNjcmlwdGlvbiBvYmplY3QsIHdoaWNoIGluIHR1cm4gZHJvcHMgdGhlCisg KiBhc3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqCisgKiBUaGlzIGlzIHVzZWQgdG8g Y2xlYW4gdXAgY29uZmxpY3QgbG9nIHRhYmxlcyB0aGF0IGFyZSBubyBsb25nZXIgcmVxdWlyZWQs CisgKiBwcmV2ZW50aW5nIGFjY3VtdWxhdGlvbiBvZiBzdGFsZSBvciBvcnBoYW5lZCByZWxhdGlv bnMuCisgKgorICogTk9URToKKyAqIE9ubHkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgY3VycmVu dGx5IG1hbmFnZWQgdmlhIHRoaXMgaW50ZXJuYWwgZGVwZW5kZW5jeQorICogbWVjaGFuaXNtLgor ICovCitzdGF0aWMgdm9pZAorZHJvcF9zdWJfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwg Y2hhciAqc3VibmFtZSwgT2lkIHN1YmNvbmZsaWN0bG9ncmVsaWQpCit7CisJLyogRHJvcCBhbnkg ZGVwZW5kZW50IGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCWlmIChPaWRJc1ZhbGlkKHN1YmNvbmZs aWN0bG9ncmVsaWQpKQorCXsKKwkJT2JqZWN0QWRkcmVzcyBvYmplY3Q7CisJCWNoYXIgCQkgKmNv bmZsaWN0cmVsbmFtZTsKKworCQljb25mbGljdHJlbG5hbWUgPSBnZXRfcmVsX25hbWUoc3ViY29u ZmxpY3Rsb2dyZWxpZCk7CisJCWlmIChjb25mbGljdHJlbG5hbWUgPT0gTlVMTCkKKwkJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciByZWxhdGlvbiAldSIsCisJCQkJIHN1YmNv bmZsaWN0bG9ncmVsaWQpOworCisJCS8qCisJCSAqIEJ5IHVzaW5nIFBFUkZPUk1fREVMRVRJT05f U0tJUF9PUklHSU5BTCwgd2UgZW5zdXJlIHRoYXQgb25seSB0aGUKKwkJICogY29uZmxpY3QgbG9n IHRhYmxlIGlzIGRlbGV0ZWQgd2hpbGUgdGhlIHN1YnNjcmlwdGlvbiByZW1haW5zLgorCQkgKi8K KwkJT2JqZWN0QWRkcmVzc1NldChvYmplY3QsIFN1YnNjcmlwdGlvblJlbGF0aW9uSWQsIHN1Ymlk KTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1BfQ0FTQ0FERSwKKwkJCQkJCVBFUkZP Uk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJ TkFMKTsKKworCQllcmVwb3J0KE5PVElDRSwKKwkJCQllcnJtc2coImRyb3BwZWQgY29uZmxpY3Qg bG9nIHRhYmxlIFwiJXNcIiBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiIsCisJCQkJCQlnZXRfcXVh bGlmaWVkX29iam5hbWUoUEdfQ09ORkxJQ1RfTkFNRVNQQUNFLCBjb25mbGljdHJlbG5hbWUpLAor CQkJCQkJc3VibmFtZSkpOworCX0KK30KKwogLyoKICAqIERyb3AgYSBzdWJzY3JpcHRpb24KICAq LwpAQCAtMjMwOSw2ICsyNTA2LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCU9pZAkJCXN1YmlkOwogCU9pZAkJCXN1Ym93 bmVyOwogCU9pZAkJCXN1YnNlcnZlcjsKKwlPaWQJCQlzdWJjb25mbGljdGxvZ3JlbGlkOwogCWNo YXIJICAgKnN1YmNvbm5pbmZvID0gTlVMTDsKIAlEYXR1bQkJZGF0dW07CiAJYm9vbAkJaXNudWxs OwpAQCAtMjM2MSw2ICsyNTU5LDcgQEAgRHJvcFN1YnNjcmlwdGlvbihEcm9wU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCXN1YmlkID0gZm9ybS0+b2lkOwogCXN1Ym93 bmVyID0gZm9ybS0+c3Vib3duZXI7CiAJc3Vic2VydmVyID0gZm9ybS0+c3Vic2VydmVyOworCXN1 YmNvbmZsaWN0bG9ncmVsaWQgPSBmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkOwogCW11c3RfdXNl X3Bhc3N3b3JkID0gIXN1cGVydXNlcl9hcmcoc3Vib3duZXIpICYmIGZvcm0tPnN1YnBhc3N3b3Jk cmVxdWlyZWQ7CiAKIAkvKiBtdXN0IGJlIG93bmVyICovCkBAIC0yNDgyLDYgKzI2ODEsOCBAQCBE cm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2 ZWwpCiAJZGVsZXRlRGVwZW5kZW5jeVJlY29yZHNGb3IoU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwg c3ViaWQsIGZhbHNlKTsKIAlkZWxldGVTaGFyZWREZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3Jp cHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7CiAKKwlkcm9wX3N1Yl9jb25mbGljdF9sb2dfdGFi bGUoc3ViaWQsIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9ncmVsaWQpOworCiAJLyogUmVtb3ZlIGFu eSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNocm9uaXphdGlvbiBzdGF0ZXMuICovCiAJUmVtb3Zl U3Vic2NyaXB0aW9uUmVsKHN1YmlkLCBJbnZhbGlkT2lkKTsKIApAQCAtMjcyMiw2ICsyOTIzLDEx IEBAIEFsdGVyU3Vic2NyaXB0aW9uT3duZXJfaW50ZXJuYWwoUmVsYXRpb24gcmVsLCBIZWFwVHVw bGUgdHVwLCBPaWQgbmV3T3duZXJJZCkKIAlmb3JtLT5zdWJvd25lciA9IG5ld093bmVySWQ7CiAJ Q2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOwogCisJLyogVXBkYXRl IG93bmVyIG9mIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaWYgaXQgZXhpc3RzLiAqLworCWlmIChP aWRJc1ZhbGlkKGZvcm0tPnN1YmNvbmZsaWN0bG9ncmVsaWQpKQorCQlBVEV4ZWNDaGFuZ2VPd25l cihmb3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkLCBuZXdPd25lcklkLCB0cnVlLAorCQkJCQkJICBB Y2Nlc3NFeGNsdXNpdmVMb2NrKTsKKwogCS8qIFVwZGF0ZSBvd25lciBkZXBlbmRlbmN5IHJlZmVy ZW5jZSAqLwogCWNoYW5nZURlcGVuZGVuY3lPbk93bmVyKFN1YnNjcmlwdGlvblJlbGF0aW9uSWQs CiAJCQkJCQkJZm9ybS0+b2lkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAyNjVkY2Zl N2ZkYS4uOWFmM2I2MTZiZmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yNDU3LDkg KzI0NTcsMTEgQEAgdHJ1bmNhdGVfY2hlY2tfcmVsKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyBy ZWx0dXBsZSkKIAkgKiBwZ19sYXJnZW9iamVjdCBhbmQgcGdfbGFyZ2VvYmplY3RfbWV0YWRhdGEg dG8gYmUgdHJ1bmNhdGVkIGFzIHBhcnQgb2YKIAkgKiBwZ191cGdyYWRlLCBiZWNhdXNlIHdlIG5l ZWQgdG8gY2hhbmdlIGl0cyByZWxmaWxlbm9kZSB0byBtYXRjaCB0aGUgb2xkCiAJICogY2x1c3Rl ciwgYW5kIGFsbG93aW5nIGEgVFJVTkNBVEUgY29tbWFuZCB0byBiZSBleGVjdXRlZCBpcyB0aGUg ZWFzaWVzdAotCSAqIHdheSBvZiBkb2luZyB0aGF0LgorCSAqIHdheSBvZiBkb2luZyB0aGF0LiBX ZSBhbHNvIGFsbG93IFRSVU5DQVRFIG9uIHRoZSBjb25mbGljdCBsb2cgdGFibGVzLAorCSAqIHRv IHBlcm1pdCB1c2VycyB0byBtYW51YWxseSBwcnVuZSBjb25mbGljdCBkYXRhIHRvIG1hbmFnZSBk aXNrIHNwYWNlLgogCSAqLwotCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1D bGFzcyhyZWxpZCwgcmVsdHVwbGUpCisJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5 c3RlbUNsYXNzKHJlbGlkLCByZWx0dXBsZSkgJiYKKwkJIUlzQ29uZmxpY3RMb2dUYWJsZUNsYXNz KHJlbHR1cGxlKQogCQkmJiAoIUlzQmluYXJ5VXBncmFkZSB8fAogCQkJKHJlbGlkICE9IExhcmdl T2JqZWN0UmVsYXRpb25JZCAmJgogCQkJIHJlbGlkICE9IExhcmdlT2JqZWN0TWV0YWRhdGFSZWxh dGlvbklkKSkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCA0YjMwZjc2ODY4MC4uZjg3ZWY2 NWYzNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMTE4Nyw2ICsxMTg3LDI0IEBAIENo ZWNrVmFsaWRSZXN1bHRSZWwoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywgQ21kVHlwZSBv cGVyYXRpb24sCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVzdWx0UmVsKSkpKTsK IAkJCWJyZWFrOwogCX0KKworCS8qCisJICogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdl ZCBieSB0aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dpY2FsCisJICogcmVwbGljYXRpb24gY29uZmxp Y3RzLiAgV2UgYWxsb3cgREVMRVRFIGFuZCBUUlVOQ0FURSB0byBwZXJtaXQgdXNlcnMgdG8KKwkg KiBtYW51YWxseSBwcnVuZSB0aGVzZSBsb2dzLCBidXQgbWFudWFsIGRhdGEgaW5zZXJ0aW9uIG9y IG1vZGlmaWNhdGlvbgorCSAqIChJTlNFUlQsIFVQREFURSwgTUVSR0UpIGlzIHByb2hpYml0ZWQg dG8gbWFpbnRhaW4gdGhlIGludGVncml0eSBvZiB0aGUKKwkgKiBzeXN0ZW0tZ2VuZXJhdGVkIGxv Z3MuCisJICoKKwkgKiBTaW5jZSBUUlVOQ0FURSBpcyBoYW5kbGVkIGFzIGEgc2VwYXJhdGUgdXRp bGl0eSBjb21tYW5kLCB3ZSBvbmx5IG5lZWQKKwkgKiB0byBleHBsaWNpdGx5IHBlcm1pdCBDTURf REVMRVRFIGhlcmUuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShSZWxh dGlvbkdldE5hbWVzcGFjZShyZXN1bHRSZWwpKSAmJgorCQlvcGVyYXRpb24gIT0gQ01EX0RFTEVU RSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9U WVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbW9kaWZ5IG9yIGluc2VydCBkYXRhIGludG8gY29u ZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZXN1bHRSZWwpKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0 ZW0tbWFuYWdlZCBhbmQgb25seSBzdXBwb3J0IGNsZWFudXAgdmlhIERFTEVURSBvciBUUlVOQ0FU RS4iKSkpOwogfQogCiAvKgpAQCAtMTI1OCw2ICsxMjc2LDE2IEBAIENoZWNrVmFsaWRSb3dNYXJr UmVsKFJlbGF0aW9uIHJlbCwgUm93TWFya1R5cGUgbWFya1R5cGUpCiAJCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAkJCWJyZWFrOwogCX0KKworCS8qCisJICogQ29uZmxp Y3QgbG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dpY2Fs CisJICogcmVwbGljYXRpb24gY29uZmxpY3RzLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFi bGVOYW1lc3BhY2UoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygi Y2Fubm90IGxvY2sgcm93cyBpbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCmluZGV4IDFmOGQ2N2ZkZDkwLi40YTY0NzI3 N2QxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGlj dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAt MTcsNiArMTcsMTAgQEAKICNpbmNsdWRlICJhY2Nlc3MvY29tbWl0X3RzLmgiCiAjaW5jbHVkZSAi YWNjZXNzL2dlbmFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIKKyNpbmNsdWRlICJj YXRhbG9nL2hlYXAuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRl ICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgpAQCAtMjQsNiArMjgsNTAgQEAKICNpbmNsdWRlICJz dG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKIAorLyoKKyAqIFN0 cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIHRoZSBzdXBwb3J0ZWQgY29uZmxpY3QgbG9nZ2luZyBk ZXN0aW5hdGlvbnMuCisgKi8KK2NvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0TG9nRGVzdE5hbWVz W10gPSB7CisJW0NPTkZMSUNUX0xPR19ERVNUX0xPR10gPSAibG9nIiwKKwlbQ09ORkxJQ1RfTE9H X0RFU1RfVEFCTEVdID0gInRhYmxlIiwKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfQUxMXSA9ICJhbGwi Cit9OworCitTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKENvbmZsaWN0TG9nRGVzdE5hbWVzKSA9 PSBDT05GTElDVF9MT0dfREVTVF9BTEwgKyAxLAorCQkJCSAiQ29uZmxpY3RMb2dEZXN0TmFtZXMg bGVuZ3RoIG1pc21hdGNoIik7CisKKworLyogU3RydWN0dXJlIHRvIGhvbGQgbWV0YWRhdGEgZm9y IG9uZSBjb2x1bW4gb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLwordHlwZWRlZiBzdHJ1Y3Qg Q29uZmxpY3RMb2dDb2x1bW5EZWYKK3sKKwljb25zdCBjaGFyICphdHRuYW1lOyAgICAvKiBDb2x1 bW4gbmFtZSAqLworCU9pZCAgICAgICAgIGF0dHR5cGlkOyAgIC8qIERhdGEgdHlwZSBPSUQgKi8K K30gQ29uZmxpY3RMb2dDb2x1bW5EZWY7CisKKy8qCisgKiBTY2hlbWEgZGVmaW5pdGlvbiBmb3Ig Y29uZmxpY3QgbG9nIHRhYmxlcy4KKyAqCisgKiBEZWZpbmVzIHRoZSBmaXhlZCBzY2hlbWEgb2Yg dGhlIHBlci1zdWJzY3JpcHRpb24gY29uZmxpY3QgbG9nIHRhYmxlIGNyZWF0ZWQKKyAqIGluIHRo ZSBwZ19jb25mbGljdCBuYW1lc3BhY2UuIEVhY2ggZW50cnkgc3BlY2lmaWVzIHRoZSBjb2x1bW4g bmFtZSBhbmQgaXRzCisgKiB0eXBlIE9JRDsgdGhlIHRhYmxlIGlzIGNyZWF0ZWQgaW4gdGhpcyBj b2x1bW4gb3JkZXIgYnkKKyAqIGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoKS4KKyAqLworc3Rh dGljIGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVmIENvbmZsaWN0TG9nU2NoZW1hW10gPSB7CisJ eyAuYXR0bmFtZSA9ICJyZWxpZCIsICAgICAgICAgICAgLmF0dHR5cGlkID0gT0lET0lEIH0sCisJ eyAuYXR0bmFtZSA9ICJzY2hlbWFuYW1lIiwgICAgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAor CXsgLmF0dG5hbWUgPSAicmVsbmFtZSIsICAgICAgICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwK Kwl7IC5hdHRuYW1lID0gImNvbmZsaWN0X3R5cGUiLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0s CisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfeGlkIiwgICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0s CisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0X2xzbiIsLmF0dHR5cGlkID0gTFNOT0lEIH0s CisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1Q VFpPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9vcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBU RVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfdHVwbGUiLCAgICAgLmF0dHR5cGlkID0g SlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVwbGljYV9pZGVudGl0eSIsIC5hdHR0eXBpZCA9 IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gImxvY2FsX2NvbmZsaWN0cyIsICAuYXR0dHlwaWQg PSBKU09OQVJSQVlPSUQgfQorfTsKKworI2RlZmluZSBOVU1fQ09ORkxJQ1RfQVRUUlMgbGVuZ3Ro b2YoQ29uZmxpY3RMb2dTY2hlbWEpCisKIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBDb25mbGlj dFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9ICJpbnNlcnRfZXhpc3RzIiwK IAlbQ1RfVVBEQVRFX09SSUdJTl9ESUZGRVJTXSA9ICJ1cGRhdGVfb3JpZ2luX2RpZmZlcnMiLApA QCAtNTQsNiArMTAyLDEzMyBAQCBzdGF0aWMgdm9pZCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVz dGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIHN0YXRpYyBjaGFyICpidWlsZF9pbmRleF92 YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKIAkJCQkJCQkJCVR1 cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5kZXhvaWQpOwogCisvKgorICogQnVpbGRzIHRoZSBU dXBsZURlc2MgZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUuCisgKi8KK3N0YXRpYyBUdXBsZURl c2MKK2NyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVfdHVwZGVzYyh2b2lkKQoreworCVR1cGxlRGVz Ywl0dXBkZXNjOworCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKE5VTV9DT05G TElDVF9BVFRSUyk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IE5VTV9DT05GTElDVF9BVFRSUzsg aSsrKQorCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgaSArIDEsCisJCQkJCQkgICBDb25m bGljdExvZ1NjaGVtYVtpXS5hdHRuYW1lLAorCQkJCQkJICAgQ29uZmxpY3RMb2dTY2hlbWFbaV0u YXR0dHlwaWQsCisJCQkJCQkgICAtMSwgMCk7CisKKwlUdXBsZURlc2NGaW5hbGl6ZSh0dXBkZXNj KTsKKworCXJldHVybiB0dXBkZXNjOworfQorCisvKgorICogQ3JlYXRlIGEgc3RydWN0dXJlZCBj b25mbGljdCBsb2cgdGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLgorICoKKyAqIFRoZSB0YWJsZSBp cyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lzdGVtLW1hbmFnZWQgJ3BnX2NvbmZsaWN0JyBuYW1lc3Bh Y2UgdG8KKyAqIHByZXZlbnQgdXNlcnMgZnJvbSBtYW51YWxseSBkcm9wcGluZyBvciBhbHRlcmlu ZyBpdC4gIFRoaXMgYWxzbyBwcmV2ZW50cworICogYWNjaWRlbnRhbCBuYW1lIGNvbGxpc2lvbnMg d2l0aCB1c2VyLWNyZWF0ZWQgdGFibGVzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyAqCisgKiBUaGUg dGFibGUgbmFtZSBpcyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSB1c2luZyB0aGUgc3Vic2NyaXB0 aW9uJ3MgT0lECisgKiAoZS5nLiwgInBnX2NvbmZsaWN0X2xvZ188c3ViaWQ+IikgdG8gZW5zdXJl IHVuaXF1ZW5lc3Mgd2l0aGluIHRoZQorICogY2x1c3RlciBhbmQgdG8gYXZvaWQgY29sbGlzaW9u cyBkdXJpbmcgc3Vic2NyaXB0aW9uIHJlbmFtZXMuCisgKi8KK09pZAorY3JlYXRlX2NvbmZsaWN0 X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsIE9pZCBzdWJvd25lcikKK3sKKwlU dXBsZURlc2MJdHVwZGVzYzsKKwlPaWQJCQlyZWxpZDsKKwljaGFyICAgIAlyZWxuYW1lW05BTUVE QVRBTEVOXTsKKworCXNucHJpbnRmKHJlbG5hbWUsIE5BTUVEQVRBTEVOLCAicGdfY29uZmxpY3Rf bG9nXyV1Iiwgc3ViaWQpOworCisJLyoKKwkgKiBDaGVjayBmb3IgYW4gZXhpc3RpbmcgdGFibGUg d2l0aCB0aGUgc2FtZSBuYW1lIGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UuCisJICogQSBj b2xsaXNpb24gc2hvdWxkIG5vdCBvY2N1ciB1bmRlciBub3JtYWwgb3BlcmF0aW9uLCBidXQgd2Ug bXVzdCBoYW5kbGUgY2FzZXMKKwkgKiB3aGVyZSBhIHRhYmxlIGhhcyBiZWVuIGNyZWF0ZWQgbWFu dWFsbHkgd2hlbiBhbGxvd19zeXN0ZW1fdGFibGVzX21vZHMgaXMKKwkgKiBPTi4KKwkgKi8KKwlp ZiAoT2lkSXNWYWxpZChnZXRfcmVsbmFtZV9yZWxpZChyZWxuYW1lLCBQR19DT05GTElDVF9OQU1F U1BBQ0UpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FU RV9UQUJMRSksCisJCQkJIGVycm1zZygiY29uZmxpY3QgbG9nIHRhYmxlIHBnX2NvbmZsaWN0Llwi JXNcIiBhbHJlYWR5IGV4aXN0cyIsIHJlbG5hbWUpLAorCQkJCSBlcnJoaW50KCJUbyBwcm9jZWVk LCBkcm9wIHRoZSBleGlzdGluZyB0YWJsZSBhbmQgcmV0cnkuIikpKTsKKworCS8qIEJ1aWxkIHRo ZSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgbmV3IHRhYmxlLiAqLworCXR1cGRlc2MgPSBjcmVh dGVfY29uZmxpY3RfbG9nX3RhYmxlX3R1cGRlc2MoKTsKKworCS8qIENyZWF0ZSBjb25mbGljdCBs b2cgdGFibGUuICovCisJcmVsaWQgPSBoZWFwX2NyZWF0ZV93aXRoX2NhdGFsb2cocmVsbmFtZSwK KwkJCQkJCQkJCSBQR19DT05GTElDVF9OQU1FU1BBQ0UsCisJCQkJCQkJCQkgMCwJLyogdGFibGVz cGFjZSAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbGlkICovCisJCQkJCQkJCQkgSW52 YWxpZE9pZCwgLyogcmVsdHlwZWlkICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsb2Z0 eXBlaWQgKi8KKwkJCQkJCQkJCSBzdWJvd25lciwKKwkJCQkJCQkJCSBIRUFQX1RBQkxFX0FNX09J RCwKKwkJCQkJCQkJCSB0dXBkZXNjLAorCQkJCQkJCQkJIE5JTCwKKwkJCQkJCQkJCSBSRUxLSU5E X1JFTEFUSU9OLAorCQkJCQkJCQkJIFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVCwKKwkJCQkJCQkJ CSBmYWxzZSwgLyogc2hhcmVkX3JlbGF0aW9uICovCisJCQkJCQkJCQkgZmFsc2UsIC8qIG1hcHBl ZF9yZWxhdGlvbiAqLworCQkJCQkJCQkJIE9OQ09NTUlUX05PT1AsCisJCQkJCQkJCQkgKERhdHVt KSAwLCAvKiByZWxvcHRpb25zICovCisJCQkJCQkJCQkgZmFsc2UsIC8qIHVzZV91c2VyX2FjbCAq LworCQkJCQkJCQkJIHRydWUsIC8qIGFsbG93X3N5c3RlbV90YWJsZV9tb2RzICovCisJCQkJCQkJ CQkgdHJ1ZSwgLyogaXNfaW50ZXJuYWwgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWxy ZXdyaXRlICovCisJCQkJCQkJCQkgTlVMTCk7IC8qIHR5cGFkZHJlc3MgKi8KKwlBc3NlcnQoT2lk SXNWYWxpZChyZWxpZCkpOworCisJLyogUmVsZWFzZSB0dXBsZSBkZXNjcmlwdG9yIG1lbW9yeS4g Ki8KKwlGcmVlVHVwbGVEZXNjKHR1cGRlc2MpOworCisJLyoKKwkgKiBXZSBtdXN0IGJ1bXAgdGhl IGNvbW1hbmQgY291bnRlciB0byBtYWtlIHRoZSBuZXdseS1jcmVhdGVkIHJlbGF0aW9uCisJICog dHVwbGUgdmlzaWJsZSBmb3Igb3BlbmluZy4KKwkgKi8KKwlDb21tYW5kQ291bnRlckluY3JlbWVu dCgpOworCisJLyoKKwkgKiBDcmVhdGUgYSBUT0FTVCB0YWJsZSBmb3IgdGhlIGNvbmZsaWN0IGxv ZyB0byBzdXBwb3J0IG91dC1vZi1saW5lIHN0b3JhZ2UKKwkgKiBvZiBsYXJnZSBKU09OIGRhdGEu CisJICovCisJTmV3UmVsYXRpb25DcmVhdGVUb2FzdFRhYmxlKHJlbGlkLCAoRGF0dW0pIDApOwor CisJZXJlcG9ydChOT1RJQ0UsCisJCQkoZXJybXNnKCJjcmVhdGVkIGNvbmZsaWN0IGxvZyB0YWJs ZSBcIiVzXCIgZm9yIHN1YnNjcmlwdGlvbiBcIiVzXCIiLAorCQkJCQlnZXRfcXVhbGlmaWVkX29i am5hbWUoUEdfQ09ORkxJQ1RfTkFNRVNQQUNFLCByZWxuYW1lKSwKKwkJCQkJc3VibmFtZSkpKTsK KworCXJldHVybiByZWxpZDsKK30KKworLyoKKyAqIENvbnZlcnQgdGhlIHN0cmluZyByZXByZXNl bnRhdGlvbiBvZiBhIGNvbmZsaWN0IGxvZ2dpbmcgZGVzdGluYXRpb24gdG8gaXRzCisgKiBjb3Jy ZXNwb25kaW5nIGVudW0gdmFsdWUuCisgKi8KK0NvbmZsaWN0TG9nRGVzdAorR2V0Q29uZmxpY3RM b2dEZXN0KGNvbnN0IGNoYXIgKmRlc3QpCit7CisJLyogRW1wdHkgc3RyaW5nIG9yIE5VTEwgZGVm YXVsdHMgdG8gTE9HLiAqLworCWlmIChkZXN0ID09IE5VTEwgfHwgZGVzdFswXSA9PSAnXDAnIHx8 IHBnX3N0cmNhc2VjbXAoZGVzdCwgImxvZyIpID09IDApCisJCXJldHVybiBDT05GTElDVF9MT0df REVTVF9MT0c7CisKKwlpZiAocGdfc3RyY2FzZWNtcChkZXN0LCAidGFibGUiKSA9PSAwKQorCQly ZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEU7CisKKwlpZiAocGdfc3RyY2FzZWNtcChkZXN0 LCAiYWxsIikgPT0gMCkKKwkJcmV0dXJuIENPTkZMSUNUX0xPR19ERVNUX0FMTDsKKworCS8qIFVu cmVjb2duaXplZCBzdHJpbmcuICovCisJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJIGVycm1zZygidW5yZWNvZ25pemVkIGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1ZTogXCIlc1wiIiwgZGVzdCksCisJCQkgZXJyaGlu dCgiVmFsaWQgdmFsdWVzIGFyZSBcImxvZ1wiLCBcInRhYmxlXCIsIGFuZCBcImFsbFwiLiIpKSk7 Cit9CisKIC8qCiAgKiBHZXQgdGhlIHhtaW4gYW5kIGNvbW1pdCB0aW1lc3RhbXAgZGF0YSAob3Jp Z2luIGFuZCB0aW1lc3RhbXApIGFzc29jaWF0ZWQKICAqIHdpdGggdGhlIHByb3ZpZGVkIGxvY2Fs IHJvdy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggMDM2ZGU1Zjc5ZWYuLmU1 MmQ0Y2NkMDg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzcwOSw3ICsz NzA5LDcgQEAgZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoT2lkIG5zcGlkKQogICoJCW9iamVj dCBmb3IgdGhlIGdpdmVuIG5hbWVzcGFjZSBJRCBhbmQgb2JqZWN0IG5hbWUuCiAgKi8KIGNoYXIg KgotZ2V0X3F1YWxpZmllZF9vYmpuYW1lKE9pZCBuc3BpZCwgY2hhciAqb2JqbmFtZSkKK2dldF9x dWFsaWZpZWRfb2JqbmFtZShPaWQgbnNwaWQsIGNvbnN0IGNoYXIgKm9iam5hbWUpCiB7CiAJY2hh cgkgICAqbnNwbmFtZTsKIAljaGFyCSAgICpyZXN1bHQ7CmRpZmYgLS1naXQgYS9zcmMvYmluL2lu aXRkYi9pbml0ZGIuYyBiL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IDE0Y2I3OWMyNmJl Li44MDNjYTQxMTJkNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIv c3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTE4MzksNiArMTgzOSwxMiBAQCBzZXR1cF9wcml2 aWxlZ2VzKEZJTEUgKmNtZGZkKQogCQkJCSAgIiAgQU5EIHJlbGFjbCBJUyBOVUxMO1xuXG4iLAog CQkJCSAgZXNjYXBlX3F1b3Rlcyh1c2VybmFtZSkpOwogCVBHX0NNRF9QVVRTKCJHUkFOVCBVU0FH RSBPTiBTQ0hFTUEgcGdfY2F0YWxvZywgcHVibGljIFRPIFBVQkxJQztcblxuIik7CisKKwkvKgor CSAqIEFsbG93IG5vbi1zdXBlcnVzZXIgc3Vic2NyaXB0aW9uIG93bmVycyB0byBhY2Nlc3MgdGhl aXIgYXNzb2NpYXRlZAorCSAqIGNvbmZsaWN0IGxvZyB0YWJsZXMgaW4gdGhlIHBnX2NvbmZsaWN0 IHNjaGVtYS4KKwkgKi8KKwlQR19DTURfUFVUUygiR1JBTlQgVVNBR0UgT04gU0NIRU1BIHBnX2Nv bmZsaWN0IFRPIFBVQkxJQztcblxuIik7CiAJUEdfQ01EX1BVVFMoIlJFVk9LRSBBTEwgT04gcGdf bGFyZ2VvYmplY3QgRlJPTSBQVUJMSUM7XG5cbiIpOwogCVBHX0NNRF9QVVRTKCJJTlNFUlQgSU5U TyBwZ19pbml0X3ByaXZzICIKIAkJCQkiICAob2Jqb2lkLCBjbGFzc29pZCwgb2Jqc3ViaWQsIGlu aXRwcml2cywgcHJpdnR5cGUpIgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGRlNTQ3YThjYjM3 Li42NmVlMWI2YzJhNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjM3Niw4ICsyMzc2LDgg QEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgo IigiLCAiUFVCTElDQVRJT04iKTsKIAkvKiBBTFRFUiBTVUJTQ1JJUFRJT04gPG5hbWU+IFNFVCAo ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnks IE1hdGNoQW55TiwgIlNFVCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJkaXNh YmxlX29uX2Vycm9yIiwgImZhaWxvdmVyIiwKLQkJCQkJICAibWF4X3JldGVudGlvbl9kdXJhdGlv biIsICJvcmlnaW4iLAorCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uIiwgImRpc2FibGVfb25fZXJyb3IiLAorCQkJCQkgICJmYWlsb3ZlciIsICJtYXhf cmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdpbiIsCiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVk IiwgInJldGFpbl9kZWFkX3R1cGxlcyIsCiAJCQkJCSAgInJ1bl9hc19vd25lciIsICJzbG90X25h bWUiLCAic3RyZWFtaW5nIiwKIAkJCQkJICAic3luY2hyb25vdXNfY29tbWl0IiwgInR3b19waGFz ZSIpOwpAQCAtMzk2MCw4ICszOTYwLDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRl cm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIldJVEggKCIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUg U1VCU0NSSVBUSU9OIDxuYW1lPiAuLi4gIFdJVEggKCA8b3B0PiIgKi8KIAllbHNlIGlmIChNYXRj aGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnlOLCAiV0lUSCIsICIoIikpCi0J CUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25uZWN0IiwgImNvcHlfZGF0YSIsICJjcmVhdGVf c2xvdCIsCi0JCQkJCSAgImRpc2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIs CisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25mbGljdF9sb2dfZGVzdGluYXRpb24iLCAi Y29ubmVjdCIsICJjb3B5X2RhdGEiLAorCQkJCQkgICJjcmVhdGVfc2xvdCIsICJkaXNhYmxlX29u X2Vycm9yIiwgImVuYWJsZWQiLCAiZmFpbG92ZXIiLAogCQkJCQkgICJtYXhfcmV0ZW50aW9uX2R1 cmF0aW9uIiwgIm9yaWdpbiIsCiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJldGFpbl9k ZWFkX3R1cGxlcyIsCiAJCQkJCSAgInJ1bl9hc19vd25lciIsICJzbG90X25hbWUiLCAic3RyZWFt aW5nIiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKaW5kZXggYTlkNmU4ZWE5ODYuLmZlYWIzOTgyY2Y1IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL2NhdGFsb2cuaApAQCAtMjUsNiArMjUsNyBAQCBleHRlcm4gYm9vbCBJc0lucGxh Y2VVcGRhdGVSZWxhdGlvbihSZWxhdGlvbiByZWxhdGlvbik7CiAKIGV4dGVybiBib29sIElzU3lz dGVtQ2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKTsKIGV4dGVybiBib29s IElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKTsKK2V4dGVybiBib29sIElzQ29u ZmxpY3RMb2dUYWJsZUNsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogCiBleHRlcm4gYm9v bCBJc0NhdGFsb2dSZWxhdGlvbk9pZChPaWQgcmVsaWQpOwogZXh0ZXJuIGJvb2wgSXNDYXRhbG9n VGV4dFVuaXF1ZUluZGV4T2lkKE9pZCByZWxpZCk7CkBAIC0zMiw2ICszMyw3IEBAIGV4dGVybiBi b29sIElzSW5wbGFjZVVwZGF0ZU9pZChPaWQgcmVsaWQpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFs b2dOYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKTsKIGV4dGVybiBib29sIElzVG9hc3ROYW1lc3Bh Y2UoT2lkIG5hbWVzcGFjZUlkKTsKK2V4dGVybiBib29sIElzQ29uZmxpY3RMb2dUYWJsZU5hbWVz cGFjZShPaWQgbmFtZXNwYWNlSWQpOwogCiBleHRlcm4gYm9vbCBJc1Jlc2VydmVkTmFtZShjb25z dCBjaGFyICpuYW1lKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1l c3BhY2UuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19uYW1lc3BhY2UuZGF0CmluZGV4IDMw NzVlMTQyYzczLi5iNDVjYjkzODNhOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19uYW1lc3BhY2UuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRh dApAQCAtMTgsNiArMTgsOSBAQAogeyBvaWQgPT4gJzk5Jywgb2lkX3N5bWJvbCA9PiAnUEdfVE9B U1RfTkFNRVNQQUNFJywKICAgZGVzY3IgPT4gJ3Jlc2VydmVkIHNjaGVtYSBmb3IgVE9BU1QgdGFi bGVzJywKICAgbnNwbmFtZSA9PiAncGdfdG9hc3QnLCBuc3BhY2wgPT4gJ19udWxsXycgfSwKK3sg b2lkID0+ICcxMzgyJywgb2lkX3N5bWJvbCA9PiAnUEdfQ09ORkxJQ1RfTkFNRVNQQUNFJywKKyAg ZGVzY3IgPT4gJ3Jlc2VydmVkIHNjaGVtYSBmb3Igc3Vic2NyaXB0aW9uLXNwZWNpZmljIGNvbmZs aWN0IGxvZyB0YWJsZXMnLAorICBuc3BuYW1lID0+ICdwZ19jb25mbGljdCcsIG5zcGFjbCA9PiAn X251bGxfJyB9LAogIyB1cGRhdGUgZHVtcE5hbWVzcGFjZSgpIGlmIGNoYW5naW5nIHRoaXMgZGVz Y3IKIHsgb2lkID0+ICcyMjAwJywgb2lkX3N5bWJvbCA9PiAnUEdfUFVCTElDX05BTUVTUEFDRScs CiAgIGRlc2NyID0+ICdzdGFuZGFyZCBwdWJsaWMgc2NoZW1hJywKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbi5oCmluZGV4IDQ4OTQ0MjAxODg5Li40MzM4ZTY2MjBiNCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05NSw3ICs5NSwxNiBAQCBDQVRBTE9HKHBn X3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9uSWQpIEJLSV9TSEFSRURfUkVM QVRJT04gQktJX1JPVwogCU9pZAkJCXN1YnNlcnZlciBCS0lfTE9PS1VQX09QVChwZ19mb3JlaWdu X3NlcnZlcik7CS8qIElmIGNvbm5lY3Rpb24gdXNlcwogCQkJCQkJCQkJCQkJCQkJCSAqIHNlcnZl ciAqLwogCisJT2lkCQkJc3ViY29uZmxpY3Rsb2dyZWxpZDsgLyogUmVsaWQgb2YgdGhlIGNvbmZs aWN0IGxvZyB0YWJsZS4gKi8KICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxl bmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLworCS8qCisJICogU3RyYXRlZ3kgZm9yIGxvZ2dpbmcg cmVwbGljYXRpb24gY29uZmxpY3RzOgorCSAqICdsb2cnIC0gc2VydmVyIGxvZyBvbmx5LAorCSAq ICd0YWJsZScgLSBjb25mbGljdCBsb2cgdGFibGUgb25seSwKKwkgKiAnYWxsJyAtIGJvdGggbG9n IGFuZCB0YWJsZS4KKwkgKi8KKwl0ZXh0CQlzdWJjb25mbGljdGxvZ2Rlc3QgQktJX0ZPUkNFX05P VF9OVUxMOworCiAJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8gdGhlIHB1Ymxpc2hlciAqLwogCXRl eHQJCXN1YmNvbm5pbmZvOwkvKiBTZXQgaWYgY29ubmVjdGluZyB3aXRoIGNvbm5lY3Rpb24gc3Ry aW5nICovCiAKQEAgLTE2NCw2ICsxNzMsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24K IAkJCQkJCQkJCSAqIGFuZCB0aGUgcmV0ZW50aW9uIGR1cmF0aW9uIGhhcyBub3QKIAkJCQkJCQkJ CSAqIGV4Y2VlZGVkIG1heF9yZXRlbnRpb25fZHVyYXRpb24sIHdoZW4KIAkJCQkJCQkJCSAqIGRl ZmluZWQgKi8KKwlPaWQJCQljb25mbGljdGxvZ3JlbGlkOwkvKiBjb25mbGljdCBsb2cgdGFibGUg T2lkICovCiAJY2hhcgkgICAqY29ubmluZm87CQkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUg cHVibGlzaGVyICovCiAJY2hhcgkgICAqc2xvdG5hbWU7CQkvKiBOYW1lIG9mIHRoZSByZXBsaWNh dGlvbiBzbG90ICovCiAJY2hhcgkgICAqc3luY2NvbW1pdDsJCS8qIFN5bmNocm9ub3VzIGNvbW1p dCBzZXR0aW5nIGZvciB3b3JrZXIgKi8KQEAgLTE3MSw2ICsxODEsNyBAQCB0eXBlZGVmIHN0cnVj dCBTdWJzY3JpcHRpb24KIAlMaXN0CSAgICpwdWJsaWNhdGlvbnM7CS8qIExpc3Qgb2YgcHVibGlj YXRpb24gbmFtZXMgdG8gc3Vic2NyaWJlIHRvICovCiAJY2hhcgkgICAqb3JpZ2luOwkJCS8qIE9u bHkgcHVibGlzaCBkYXRhIG9yaWdpbmF0aW5nIGZyb20gdGhlCiAJCQkJCQkJCSAqIHNwZWNpZmll ZCBvcmlnaW4gKi8KKwljaGFyCSAgICpjb25mbGljdGxvZ2Rlc3Q7CS8qIENvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbiAqLwogfSBTdWJzY3JpcHRpb247CiAKICNpZmRlZiBFWFBPU0VfVE9fQ0xJRU5U X0NPREUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggYi9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCmluZGV4IDJkOWRiY2Y0ZDBkLi5hMDE3 ZTFlNmNiNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAor KysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCkBAIC0xMCw2ICsxMCw3IEBA CiAjZGVmaW5lIENPTkZMSUNUX0gKIAogI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImRhdGF0eXBlL3RpbWVzdGFtcC5o IgogI2luY2x1ZGUgIm5vZGVzL3BnX2xpc3QuaCIKIApAQCAtNzksNiArODAsMzIgQEAgdHlwZWRl ZiBzdHJ1Y3QgQ29uZmxpY3RUdXBsZUluZm8KIAkJCQkJCQkJICogY29uZmxpY3RpbmcgbG9jYWwg cm93IG9jY3VycmVkICovCiB9IENvbmZsaWN0VHVwbGVJbmZvOwogCisvKgorICogRGVmaW5lcyB3 aGVyZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0IGRldGFpbHMgYXJlIHJlY29yZGVkLgor ICoKKyAqIFdoaWxlIHN0b3JlZCBhcyBhIHRleHQtYmFzZWQgYXJyYXkvc3RyaW5nIGluCisgKiBw Z19zdWJzY3JpcHRpb24uc3ViY29uZmxpY3Rsb2dkZXN0IGZvciB1c2VyIHJlYWRhYmlsaXR5IGFu ZCBleHRlbnNpYmlsaXR5LAorICogd2UgbWFwIHRoZXNlIHRvIGFuIGludGVybmFsIGVudW0gdG8g YWxsb3cgZm9yIGVmZmljaWVudCBjaGVja3MuCisgKi8KK3R5cGVkZWYgZW51bSBDb25mbGljdExv Z0Rlc3QKK3sKKwlDT05GTElDVF9MT0dfREVTVF9MT0cgPSAwLAkvKiBFbWl0IHRvIHNlcnZlciBs b2dzICovCisJQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEUsCS8qIEluc2VydCBpbnRvIHRoZSBjb25m bGljdCBsb2cgdGFibGUgKi8KKwlDT05GTElDVF9MT0dfREVTVF9BTEwJCS8qIEJvdGggbG9nIGFu ZCB0YWJsZSAqLworfSBDb25mbGljdExvZ0Rlc3Q7CisKKyNkZWZpbmUgQ09ORkxJQ1RTX0xPR0dF RF9UT19UQUJMRShkZXN0KSBcCisJKChkZXN0ID09IENPTkZMSUNUX0xPR19ERVNUX1RBQkxFKSB8 fCAoZGVzdCA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwpKQorI2RlZmluZSBDT05GTElDVFNfTE9H R0VEX1RPX0xPRyhkZXN0KSBcCisJKChkZXN0ID09IENPTkZMSUNUX0xPR19ERVNUX0xPRykgfHwg KGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMKSkKKworLyoKKyAqIEFycmF5IG1hcHBpbmcg Zm9yIGNvbnZlcnRpbmcgaW50ZXJuYWwgZW51bSB0byBzdHJpbmcuCisgKi8KK2V4dGVybiBQR0RM TElNUE9SVCBjb25zdCBjaGFyICpjb25zdCBDb25mbGljdExvZ0Rlc3ROYW1lc1tdOworCitleHRl cm4gT2lkIGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1l LCBPaWQgc3Vib3duZXIpOworZXh0ZXJuIENvbmZsaWN0TG9nRGVzdCBHZXRDb25mbGljdExvZ0Rl c3QoY29uc3QgY2hhciAqZGVzdCk7CiBleHRlcm4gYm9vbCBHZXRUdXBsZVRyYW5zYWN0aW9uSW5m byhUdXBsZVRhYmxlU2xvdCAqbG9jYWxzbG90LAogCQkJCQkJCQkJVHJhbnNhY3Rpb25JZCAqeG1p biwKIAkJCQkJCQkJCVJlcGxPcmlnaW5JZCAqbG9jYWxvcmlnaW4sCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o CmluZGV4IDg2NTk4MGNiMGYxLi41M2MyYTllODY3MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAg LTIwMiw3ICsyMDIsNyBAQCBleHRlcm4gYm9vbCBnZXRfYXR0c3RhdHNzbG90KEF0dFN0YXRzU2xv dCAqc3Nsb3QsIEhlYXBUdXBsZSBzdGF0c3R1cGxlLAogZXh0ZXJuIHZvaWQgZnJlZV9hdHRzdGF0 c3Nsb3QoQXR0U3RhdHNTbG90ICpzc2xvdCk7CiBleHRlcm4gY2hhciAqZ2V0X25hbWVzcGFjZV9u YW1lKE9pZCBuc3BpZCk7CiBleHRlcm4gY2hhciAqZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAo T2lkIG5zcGlkKTsKLWV4dGVybiBjaGFyICpnZXRfcXVhbGlmaWVkX29iam5hbWUoT2lkIG5zcGlk LCBjaGFyICpvYmpuYW1lKTsKK2V4dGVybiBjaGFyICpnZXRfcXVhbGlmaWVkX29iam5hbWUoT2lk IG5zcGlkLCBjb25zdCBjaGFyICpvYmpuYW1lKTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX3N1YnR5 cGUoT2lkIHJhbmdlT2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX2NvbGxhdGlvbihPaWQgcmFu Z2VPaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmFuZ2VfY29uc3RydWN0b3IyKE9pZCByYW5nZU9pZCk7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggOGRiZmFj NjYzMjYuLjZmYTBlOGQxNmZhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3Jp cHRpb24ub3V0CkBAIC02MTksNiArNjE5LDMxNSBAQCBDT01NSVQ7CiAtLSBvaywgb3duaW5nIGl0 IGlzIGVub3VnaCBmb3IgdGhpcyBzdHVmZgogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViOworLS0KKy0tIENPTkZMSUNUIExPRyBERVNUSU5BVElPTiBURVNUUworLS0KK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXInOworU0VUIGNs aWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOworLS0gZmFpbCAtIHVucmVjb2duaXplZCBwYXJh bWV0ZXIgdmFsdWUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9mYWlsIENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1 YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdpbnZh bGlkJyk7CitFUlJPUjogIHVucmVjb2duaXplZCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gdmFs dWU6ICJpbnZhbGlkIgorSElOVDogIFZhbGlkIHZhbHVlcyBhcmUgImxvZyIsICJ0YWJsZSIsIGFu ZCAiYWxsIi4KKy0tIHZlcmlmeSBzdWJjb25mbGljdGxvZ2Rlc3QgaXMgJ2xvZycgYW5kIHN1YmNv bmZsaWN0bG9ncmVsaWQgaXMgMCAoSW52YWxpZE9pZCkgZm9yIGRlZmF1bHQgY2FzZQorQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IENPTk5FQ1RJT04gJ2Ri bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25u ZWN0ID0gZmFsc2UpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlz IG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMu CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlk CitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf bG9nX2RlZmF1bHQnOworICAgICAgICAgICBzdWJuYW1lICAgICAgICAgICAgfCBzdWJjb25mbGlj dGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgfCBsb2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAwCisoMSByb3cpCisKKy0tIHZlcmlmeSBlbXB0eSBzdHJpbmcgZGVmYXVsdHMgdG8g J2xvZycKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgQ09O TkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHVi IFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJycpOwor V0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQK K0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRl IHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVy IHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFt ZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNj cmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKyAg ICAgICAgICBzdWJuYW1lICAgICAgICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZs aWN0bG9ncmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3Ry IHwgbG9nICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCist LSB0aGlzIHNob3VsZCBnZW5lcmF0ZSBhbiBjb25mbGljdCBsb2cgdGFibGUgbmFtZWQgcGdfY29u ZmxpY3RfbG9nXyRzdWJpZCQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90 ZXN0MSBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9O IHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24g PSAndGFibGUnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBu b3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1h bnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRp b24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgor LS0gY2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vic2NyaXB0aW9uOiBkZXN0aW5hdGlvbiBzaG91bGQg YmUgJ3RhYmxlJyBhbmQgc3ViY29uZmxpY3Rsb2dyZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUs IHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlk CitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEnOworICAgICAgICBzdWJuYW1lICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBo YXNfcmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIHwgdGFibGUgICAgICAgICAgICAg IHwgdAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGV4aXN0cywgaXRz IE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVsaWQsCistLSBhbmQgaXQgaXMgbG9jYXRlZCBp biB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UKK1NFTEVDVCBuLm5zcG5hbWUsIChjLm9pZCA9 IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9pZF9tYXRjaGVzIgorRlJPTSBwZ19jbGFzcyBj CitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2df JyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lk CitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICBuc3BuYW1l ICAgfCBvaWRfbWF0Y2hlcyAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHBnX2NvbmZs aWN0IHwgdAorKDEgcm93KQorCistLSBjaGVjayBpZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGhh cyB0aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVDVCBhLmF0dG51bSwgYS5hdHRuYW1lCitGUk9NIHBn X2F0dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRyZWxpZCA9IGMub2lkCitKT0lO IHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBz Lm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0 dG51bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0dG51bTsKKyBhdHRudW0gfCAgICAgIGF0dG5hbWUg ICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIDEgfCByZWxpZAorICAg ICAgMiB8IHNjaGVtYW5hbWUKKyAgICAgIDMgfCByZWxuYW1lCisgICAgICA0IHwgY29uZmxpY3Rf dHlwZQorICAgICAgNSB8IHJlbW90ZV94aWQKKyAgICAgIDYgfCByZW1vdGVfY29tbWl0X2xzbgor ICAgICAgNyB8IHJlbW90ZV9jb21taXRfdHMKKyAgICAgIDggfCByZW1vdGVfb3JpZ2luCisgICAg ICA5IHwgcmVtb3RlX3R1cGxlCisgICAgIDEwIHwgcmVwbGljYV9pZGVudGl0eQorICAgICAxMSB8 IGxvY2FsX2NvbmZsaWN0cworKDExIHJvd3MpCisKKy0tIENoYW5naW5nIHRoZSBzdWJzY3JpcHRp b24gb3duZXIgc2hvdWxkIGFsc28gdXBkYXRlIHRoZSBvd25lcgorLS0gb2YgdGhlIGFzc29jaWF0 ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjI7CitTRUxFQ1QgcGdf Y2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMgb3duZXIKK0ZST00gcGdfY2F0 YWxvZy5wZ19jbGFzcyBjCitKT0lOIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uIHMKKyAgICAg ICAgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICAgICAgICAgIG93bmVyICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlcjIKKygxIHJvdykKKworLS0gVmVyaWZ5IHRoYXQgYSBub24tc3VwZXJ1c2VyIHN1YnNj cmlwdGlvbiBvd25lciBjYW4gdHJ1bmNhdGUsCistLSBkZWxldGUgZnJvbSwgYW5kIHNlbGVjdCBm cm9tIHRoZSBhc3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4KK1NFVCBST0xFICdyZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyMic7CitTRUxFQ1QgZm9ybWF0KCclSS4lSScsIG4ubnNwbmFtZSwg Yy5yZWxuYW1lKSBBUyBjb25mbGljdF9sb2dfdGFibGUKK0ZST00gcGdfY2F0YWxvZy5wZ19jbGFz cyBjCitKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4KKwlPTiBuLm9pZCA9IGMucmVsbmFt ZXNwYWNlCitKT0lOIHBnX2NhdGFsb2cucGdfc3Vic2NyaXB0aW9uIHMKKwlPTiBjLnJlbG5hbWUg PSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QxJworXGdzZXQKK1RSVU5DQVRFIFRBQkxFIDpjb25mbGljdF9sb2dfdGFi bGU7CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfbG9nX3RhYmxlOworU0VMRUNUIENPVU5UKCopIEZS T00gOmNvbmZsaWN0X2xvZ190YWJsZTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93 KQorCitSRVNFVCBST0xFOworLS0gUmVzdG9yZSB0aGUgb3JpZ2luYWwgc3Vic2NyaXB0aW9uIG93 bmVyLgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgT1dORVIgVE8g cmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsKKy0tCistLSBBTFRFUiBTVUJTQ1JJUFRJT04gLSBj b25mbGljdF9sb2dfZGVzdGluYXRpb24gc3RhdGUgdHJhbnNpdGlvbnMKKy0tCistLSBUaGVzZSB0 ZXN0cyB2ZXJpZnkgdGhlIHRyYW5zaXRpb24gbG9naWMgYmV0d2VlbiBkaWZmZXJlbnQgbG9nZ2lu ZworLS0gZGVzdGluYXRpb25zLCBlbnN1cmluZyBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBjcmVh dGVkIG9yIGRyb3BwZWQgYXMKKy0tIGV4cGVjdGVkCistLQorLS0gdHJhbnNpdGlvbiBmcm9tICds b2cnIHRvICdhbGwnCistLSBhIG5ldyBjb25mbGljdCBsb2cgdGFibGUgc2hvdWxkIGJlIGNyZWF0 ZWQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAo Y29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitXQVJO SU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAorSElO VDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhl IHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0aW9ucy4KK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0g J2FsbCcpOworLS0gdmVyaWZ5IG1ldGFkYXRhIGFmdGVyIEFMVEVSIChkZXN0aW5hdGlvbiBzaG91 bGQgYmUgJ2FsbCcpCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25m bGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJF IHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisgICAgICAgIHN1Ym5hbWUgICAg ICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IGhhc19yZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxp Y3RfdGVzdDIgfCBhbGwgICAgICAgICAgICAgICAgfCB0CisoMSByb3cpCisKKy0tIHRyYW5zaXRp b24gZnJvbSAnYWxsJyB0byAndGFibGUnCistLSBzaG91bGQgTk9UIGRyb3AgdGhlIHRhYmxlLCBv bmx5IGNoYW5nZSBkZXN0aW5hdGlvbiBzdHJpbmcKK1NFTEVDVCBzdWJjb25mbGljdGxvZ3JlbGlk IEFTIG9sZF9yZWxpZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jl c3NfY29uZmxpY3RfdGVzdDInIFxnc2V0CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworU0VM RUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA9IDpvbGRfcmVsaWQg QVMgcmVsaWRfdW5jaGFuZ2VkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworIHN1YmNvbmZsaWN0bG9nZGVzdCB8IHJlbGlkX3Vu Y2hhbmdlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgdGFibGUg ICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSB0cmFuc2l0aW9uIGZyb20gJ3RhYmxlJyB0 byAnbG9nJworLS0gc2hvdWxkIGRyb3AgdGhlIHRhYmxlIGFuZCBjbGVhciBzdWJjb25mbGljdGxv Z3JlbGlkCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rl c3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7Cisgc3ViY29uZmxpY3Rsb2dkZXN0IHwgc3Vi Y29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIGxvZyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIDAKKygxIHJvdykK KworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBpcyBnb25lCitTRUxFQ1QgY291bnQoKikK K0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAn cGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2Nv bmZsaWN0X3Rlc3QyJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLQor LS0gUFVCTElDQVRJT046IFZlcmlmeSBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBub3QgcHVibGlz aGFibGUKKy0tCistLSBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSBzaG91bGQgcmV0dXJuIGZh bHNlIGZvciBjb25mbGljdCBsb2cgdGFibGVzIHRvCistLSBwcmV2ZW50IHRoZW0gZnJvbSBiZWlu ZyBhY2NpZGVudGFsbHkgaW5jbHVkZWQgaW4gcHVibGljYXRpb25zCistLQorU0VMRUNUIG4ubnNw bmFtZSwgcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoYy5vaWQpCitGUk9NIHBnX2NsYXNzIGMK K0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAorSk9JTiBwZ19z dWJzY3JpcHRpb24gcyBPTiBzLnN1YmNvbmZsaWN0bG9ncmVsaWQgPSBjLm9pZAorV0hFUkUgcy5z dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAgbnNwbmFtZSAgIHwgcGdfcmVs YXRpb25faXNfcHVibGlzaGFibGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBwZ19jb25mbGljdCB8IGYKKygxIHJvdykKKworLS0KKy0tIFRhYmxlIFByb3Rl Y3Rpb24gYW5kIExpZmVjeWNsZSBNYW5hZ2VtZW50CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5 IHRoYXQ6CistLSBNYW51YWwgRFJPUCBUQUJMRSBpcyBkaXNhbGxvd2VkCistLSBEUk9QIFNVQlND UklQVElPTiBhdXRvbWF0aWNhbGx5IHJlYXBzIHRoZSB0YWJsZQorLS0KKy0tIHJlLWVuYWJsZSB0 YWJsZSBsb2dnaW5nIGZvciB2ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QxIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7 CistLSBXZSB1c2UgYSBETyBibG9jayB3aXRoIGR5bmFtaWMgU1FMIGJlY2F1c2UgdGhlIGNvbmZs aWN0IGxvZyB0YWJsZQorLS0gbmFtZSBjb250YWlucyB0aGUgc3Vic2NyaXB0aW9uIE9JRCwgd2hp Y2ggaXMgbm9uLWRldGVybWluaXN0aWMuIFRoaXMKKy0tIGFwcHJvYWNoIGFsbG93cyB1cyB0byBh dHRlbXB0IHRoZSBEUk9QIGFuZCBjYXB0dXJlIHRoZSBleHBlY3RlZCBlcnJvcgorLS0gd2l0aG91 dCBoYXJkLWNvZGluZyBhIHNwZWNpZmljIE9JRCBpbiB0aGUgZXhwZWN0ZWQgb3V0cHV0CistLSBm YWlsIC0gZHJvcCB0YWJsZSBub3QgYWxsb3dlZCBkdWUgdG8gaW50ZXJuYWwgZGVwZW5kZW5jeQor U0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7CitETyAkJAorQkVHSU4KKyAgICBFWEVD VVRFICdEUk9QIFRBQkxFICcgfHwgKFNFTEVDVCAncGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9n XycgfHwgb2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF90ZXN0MScpOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBU SEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNp ZW50X3ByaXZpbGVnZSc7CitFTkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBleHBlY3RlZCBlcnJv cjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZQorLS0gQ0xFQU5VUDogRFJPUCBTVUJTQ1JJUFRJT04g cmVhcHMgdGhlIHRhYmxlCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MSBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VU IChzbG90X25hbWUgPSBOT05FKTsKKy0tIFZlcmlmeSB0aGUgdGFibGUgT0lEIGZvciByZWFwIGNo ZWNrCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18nIHx8IG9pZCBBUyBpbnRl cm5hbF90YWJsZW5hbWUgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Rlc3QxJyBcZ3NldAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJO SU5HOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MTsKKy0tIHNob3Vs ZCByZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIHdhcyByZWFwZWQg dmlhIGRlcGVuZGVuY3kKK1NFTEVDVCB0b19yZWdjbGFzcyg6J2ludGVybmFsX3RhYmxlbmFtZScp OworIHRvX3JlZ2NsYXNzIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLQorLS0gQWRk aXRpb25hbCBOYW1lc3BhY2UgYW5kIFRhYmxlIFByb3RlY3Rpb24gVGVzdHMKKy0tCistLSBTZXR1 cDogRW5zdXJlIHdlIGhhdmUgYSBzdWJzY3JpcHRpb24gd2l0aCBhIGNvbmZsaWN0IGxvZyB0YWJs ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnCisgICAgUFVCTElDQVRJT04g dGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9 ICd0YWJsZScpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5v dCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFu dWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlv biwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCist LSBUcnlpbmcgdG8gQUxURVIgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQg ZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gQXMgbWVudGlvbmVk IGluIHByZXZpb3VzIHRlc3QgY2FzZXMsIHdlIHVzZSBhIERPIGJsb2NrIHRvIGhpZGUgZHluYW1p YyBPSURzCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5PVElDRTsKK0RPICQkCitERUNMQVJF CisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8 IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNj cmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAg IFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisK KyAgICBSQUlTRSBOT1RJQ0UgJ0F0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gY29uZmxpY3QgbG9n IHRhYmxlJzsKKyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQURE IENPTFVNTiBleHRyYV9pbmZvIHRleHQnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3By aXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjog aW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxURVInOworRU5EICQkOworTk9USUNFOiAg QXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBjb25mbGljdCBsb2cgdGFibGUKK05PVElDRTogIGNh cHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBBTFRF UgorLS0gVGVzdCBNYW51YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBz aG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5n IHRoZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgor RE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3Bn X2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBj IEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18n IHx8IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVj dGlvbl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ0lOU0VSVCBJTlRPICcgfHwgdGFiX25hbWUgfHwg JyAocmVsbmFtZSkgVkFMVUVTICgnJ215dGVzdCcnKSc7CitFWENFUFRJT04gV0hFTiB3cm9uZ19v YmplY3RfdHlwZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJv cjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVCc7CitFTkQgJCQ7CitOT1RJQ0U6ICBj YXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIElOU0VSVAor LS0gVGVzdCBNYW51YWwgVVBEQVRFIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91 bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRo ZSBPSUQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8g JCQKK0RFQ0xBUkUKKyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2Nv bmZsaWN0LicgfHwgcmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpP SU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8 IHMub2lkCisgICAgV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlv bl90ZXN0JzsKKworICAgIEVYRUNVVEUgJ1VQREFURSAnIHx8IHRhYl9uYW1lIHx8ICcgU0VUIHJl bG5hbWUgPSAnJ215dGVzdCcnICc7CitFWENFUFRJT04gV0hFTiB3cm9uZ19vYmplY3RfdHlwZSBU SEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogd3Jvbmdfb2Jq ZWN0X3R5cGUgZHVyaW5nIFVQREFURSc7CitFTkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBleHBl Y3RlZCBlcnJvcjogd3Jvbmdfb2JqZWN0X3R5cGUgZHVyaW5nIFVQREFURQorLS0gVHJ5aW5nIHRv IHBlcmZvcm0gVFJVTkNBVEUvREVMRVRFIG9uIHRoZSBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRo aXMgc2hvdWxkIGJlIGFsbG93ZWQgc28gdGhhdCB1c2VyIGNhbiBwZXJmb3JtIGNsZWFudXAKK1NF TEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIEFTIGNvbmZsaWN0X3RhYgorRlJPTSBwZ19j bGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGlj dF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJv dGVjdGlvbl90ZXN0JyBcZ3NldAorVFJVTkNBVEUgOmNvbmZsaWN0X3RhYjsKK0RFTEVURSBGUk9N IDpjb25mbGljdF90YWI7CistLSBUcnlpbmcgdG8gY3JlYXRlIGEgbmV3IHRhYmxlIG1hbnVhbGx5 IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYXMgdGhl IG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgY29uZmxpY3QgbG9ncyB0YWJsZXMKK0NSRUFURSBU QUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFibGUgKGlkIGludCk7CitFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciBzY2hlbWEgcGdfY29uZmxpY3QKK0xJTkUgMTogQ1JFQVRFIFRBQkxFIHBn X2NvbmZsaWN0Lm1hbnVhbF90YWJsZSAoaWQgaW50KTsKKyAgICAgICAgICAgICAgICAgICAgIF4K Ky0tIE1vdmluZyBhbiBleGlzdGluZyB0YWJsZSBpbnRvIHRoZSBwZ19jb25mbGljdCBuYW1lc3Bh Y2UKKy0tIFVzZXJzIHNob3VsZCBub3QgYmUgYWJsZSB0byBtb3ZlIHRoZWlyIG93biB0YWJsZXMg d2l0aGluIHRoaXMgbmFtZXNwYWNlCitDUkVBVEUgVEFCTEUgcHVibGljLnRlc3RfbW92ZSAoaWQg aW50KTsKK0FMVEVSIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgU0VUIFNDSEVNQSBwZ19jb25mbGlj dDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNjaGVtYSBwZ19jb25mbGljdAorRFJP UCBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJO SU5HOworLS0gQ2xlYW4gdXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOworQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgU0VUIChzbG90X25hbWUgPSBO T05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgRElTQUJMRTsKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHI7 CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBESVNBQkxFOworQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChzbG90X25hbWUgPSBO T05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDI7CitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQgKHNs b3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90 ZWN0aW9uX3Rlc3Q7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlcjsKIERST1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCmluZGV4IDA1NTMzZDY2Njc1 Li5lM2IyMDczMDE1NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0 aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC00 NzQsNiArNDc0LDI2MiBAQCBDT01NSVQ7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWI7CiAKKy0tCistLSBDT05GTElDVCBMT0cgREVTVElOQVRJT04gVEVTVFMKKy0tCisKK1NF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXInOworCitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CisKKy0tIGZhaWwgLSB1bnJlY29nbml6 ZWQgcGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf ZmFpbCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9O IHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24g PSAnaW52YWxpZCcpOworCistLSB2ZXJpZnkgc3ViY29uZmxpY3Rsb2dkZXN0IGlzICdsb2cnIGFu ZCBzdWJjb25mbGljdGxvZ3JlbGlkIGlzIDAgKEludmFsaWRPaWQpIGZvciBkZWZhdWx0IGNhc2UK K0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBDT05ORUNU SU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lU SCAoY29ubmVjdCA9IGZhbHNlKTsKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3Qs IHN1YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCc7CisKKy0tIHZlcmlmeSBlbXB0eSBzdHJp bmcgZGVmYXVsdHMgdG8gJ2xvZycKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF9lbXB0eV9zdHIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJM SUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3Rp bmF0aW9uID0gJycpOworU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29u ZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X2VtcHR5X3N0cic7CisKKy0tIHRoaXMgc2hvdWxkIGdlbmVyYXRlIGFuIGNv bmZsaWN0IGxvZyB0YWJsZSBuYW1lZCBwZ19jb25mbGljdF9sb2dfJHN1YmlkJAorQ1JFQVRFIFNV QlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFs c2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCistLSBjaGVjayBtZXRh ZGF0YSBpbiBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNob3VsZCBiZSAndGFibGUnIGFu ZCBzdWJjb25mbGljdGxvZ3JlbGlkIHZhbGlkCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rs b2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID4gMCBBUyBoYXNfcmVsaWQKK0ZST00gcGdfc3Vi c2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0t IHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUgZXhpc3RzLCBpdHMgT0lEIG1hdGNoZXMgc3ViY29u ZmxpY3Rsb2dyZWxpZCwKKy0tIGFuZCBpdCBpcyBsb2NhdGVkIGluIHRoZSAncGdfY29uZmxpY3Qn IG5hbWVzcGFjZQorU0VMRUNUIG4ubnNwbmFtZSwgKGMub2lkID0gcy5zdWJjb25mbGljdGxvZ3Jl bGlkKSBBUyAib2lkX21hdGNoZXMiCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2NyaXB0 aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitKT0lOIHBn X25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK1dIRVJFIHMuc3VibmFtZSA9 ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKworLS0gY2hlY2sgaWYgdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZSBoYXMgdGhlIGNvcnJlY3Qgc2NoZW1hCitTRUxFQ1QgYS5hdHRudW0sIGEuYXR0bmFt ZQorRlJPTSBwZ19hdHRyaWJ1dGUgYQorSk9JTiBwZ19jbGFzcyBjIE9OIGEuYXR0cmVsaWQgPSBj Lm9pZAorSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3Rf bG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx JyBBTkQgYS5hdHRudW0gPiAwCisgICAgT1JERVIgQlkgYS5hdHRudW07CisKKy0tIENoYW5naW5n IHRoZSBzdWJzY3JpcHRpb24gb3duZXIgc2hvdWxkIGFsc28gdXBkYXRlIHRoZSBvd25lcgorLS0g b2YgdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgorQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25fdXNl cjI7CitTRUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMgb3du ZXIKK0ZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjCitKT0lOIHBnX2NhdGFsb2cucGdfc3Vic2Ny aXB0aW9uIHMKKyAgICAgICAgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMu b2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisKKy0tIFZl cmlmeSB0aGF0IGEgbm9uLXN1cGVydXNlciBzdWJzY3JpcHRpb24gb3duZXIgY2FuIHRydW5jYXRl LAorLS0gZGVsZXRlIGZyb20sIGFuZCBzZWxlY3QgZnJvbSB0aGUgYXNzb2NpYXRlZCBjb25mbGlj dCBsb2cgdGFibGUuCitTRVQgUk9MRSAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjInOworCitT RUxFQ1QgZm9ybWF0KCclSS4lSScsIG4ubnNwbmFtZSwgYy5yZWxuYW1lKSBBUyBjb25mbGljdF9s b2dfdGFibGUKK0ZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjCitKT0lOIHBnX2NhdGFsb2cucGdf bmFtZXNwYWNlIG4KKwlPTiBuLm9pZCA9IGMucmVsbmFtZXNwYWNlCitKT0lOIHBnX2NhdGFsb2cu cGdfc3Vic2NyaXB0aW9uIHMKKwlPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwg cy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJworXGdzZXQK KworVFJVTkNBVEUgVEFCTEUgOmNvbmZsaWN0X2xvZ190YWJsZTsKK0RFTEVURSBGUk9NIDpjb25m bGljdF9sb2dfdGFibGU7CitTRUxFQ1QgQ09VTlQoKikgRlJPTSA6Y29uZmxpY3RfbG9nX3RhYmxl OworCitSRVNFVCBST0xFOworCistLSBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzdWJzY3JpcHRpb24g b3duZXIuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05FUiBU TyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOworCistLQorLS0gQUxURVIgU1VCU0NSSVBUSU9O IC0gY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHN0YXRlIHRyYW5zaXRpb25zCistLQorLS0gVGhl c2UgdGVzdHMgdmVyaWZ5IHRoZSB0cmFuc2l0aW9uIGxvZ2ljIGJldHdlZW4gZGlmZmVyZW50IGxv Z2dpbmcKKy0tIGRlc3RpbmF0aW9ucywgZW5zdXJpbmcgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUg Y3JlYXRlZCBvciBkcm9wcGVkIGFzCistLSBleHBlY3RlZAorLS0KKy0tIHRyYW5zaXRpb24gZnJv bSAnbG9nJyB0byAnYWxsJworLS0gYSBuZXcgY29uZmxpY3QgbG9nIHRhYmxlIHNob3VsZCBiZSBj cmVhdGVkCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJ VEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAnYWxsJyk7CisKKy0tIHZlcmlmeSBtZXRhZGF0YSBhZnRlciBBTFRF UiAoZGVzdGluYXRpb24gc2hvdWxkIGJlICdhbGwnKQorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZs aWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBn X3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOwor CistLSB0cmFuc2l0aW9uIGZyb20gJ2FsbCcgdG8gJ3RhYmxlJworLS0gc2hvdWxkIE5PVCBkcm9w IHRoZSB0YWJsZSwgb25seSBjaGFuZ2UgZGVzdGluYXRpb24gc3RyaW5nCitTRUxFQ1Qgc3ViY29u ZmxpY3Rsb2dyZWxpZCBBUyBvbGRfcmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJyBcZ3NldAorQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAn dGFibGUnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQg PSA6b2xkX3JlbGlkIEFTIHJlbGlkX3VuY2hhbmdlZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hF UkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0gdHJhbnNpdGlvbiBm cm9tICd0YWJsZScgdG8gJ2xvZycKKy0tIHNob3VsZCBkcm9wIHRoZSB0YWJsZSBhbmQgY2xlYXIg c3ViY29uZmxpY3Rsb2dyZWxpZAorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnbG9nJyk7CitTRUxFQ1Qgc3Vi Y29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlv biBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworCistLSB2ZXJpZnkg dGhlIHBoeXNpY2FsIHRhYmxlIGlzIGdvbmUKK1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19jbGFz cyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9s b2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDIn OworCistLQorLS0gUFVCTElDQVRJT046IFZlcmlmeSBjb25mbGljdCBsb2cgdGFibGVzIGFyZSBu b3QgcHVibGlzaGFibGUKKy0tCistLSBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSBzaG91bGQg cmV0dXJuIGZhbHNlIGZvciBjb25mbGljdCBsb2cgdGFibGVzIHRvCistLSBwcmV2ZW50IHRoZW0g ZnJvbSBiZWluZyBhY2NpZGVudGFsbHkgaW5jbHVkZWQgaW4gcHVibGljYXRpb25zCistLQorU0VM RUNUIG4ubnNwbmFtZSwgcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoYy5vaWQpCitGUk9NIHBn X2NsYXNzIGMKK0pPSU4gcGdfbmFtZXNwYWNlIG4gT04gYy5yZWxuYW1lc3BhY2UgPSBuLm9pZAor Sk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBzLnN1YmNvbmZsaWN0bG9ncmVsaWQgPSBjLm9pZAor V0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLQorLS0gVGFi bGUgUHJvdGVjdGlvbiBhbmQgTGlmZWN5Y2xlIE1hbmFnZW1lbnQKKy0tCistLSBUaGVzZSB0ZXN0 cyB2ZXJpZnkgdGhhdDoKKy0tIE1hbnVhbCBEUk9QIFRBQkxFIGlzIGRpc2FsbG93ZWQKKy0tIERS T1AgU1VCU0NSSVBUSU9OIGF1dG9tYXRpY2FsbHkgcmVhcHMgdGhlIHRhYmxlCistLQorLS0gcmUt ZW5hYmxlIHRhYmxlIGxvZ2dpbmcgZm9yIHZlcmlmaWNhdGlvbgorQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAn dGFibGUnKTsKKworLS0gV2UgdXNlIGEgRE8gYmxvY2sgd2l0aCBkeW5hbWljIFNRTCBiZWNhdXNl IHRoZSBjb25mbGljdCBsb2cgdGFibGUKKy0tIG5hbWUgY29udGFpbnMgdGhlIHN1YnNjcmlwdGlv biBPSUQsIHdoaWNoIGlzIG5vbi1kZXRlcm1pbmlzdGljLiBUaGlzCistLSBhcHByb2FjaCBhbGxv d3MgdXMgdG8gYXR0ZW1wdCB0aGUgRFJPUCBhbmQgY2FwdHVyZSB0aGUgZXhwZWN0ZWQgZXJyb3IK Ky0tIHdpdGhvdXQgaGFyZC1jb2RpbmcgYSBzcGVjaWZpYyBPSUQgaW4gdGhlIGV4cGVjdGVkIG91 dHB1dAorCistLSBmYWlsIC0gZHJvcCB0YWJsZSBub3QgYWxsb3dlZCBkdWUgdG8gaW50ZXJuYWwg ZGVwZW5kZW5jeQorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBOT1RJQ0U7CitETyAkJAorQkVH SU4KKyAgICBFWEVDVVRFICdEUk9QIFRBQkxFICcgfHwgKFNFTEVDVCAncGdfY29uZmxpY3QucGdf Y29uZmxpY3RfbG9nXycgfHwgb2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0MScpOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50 X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJv cjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSc7CitFTkQgJCQ7CisKKy0tIENMRUFOVVA6IERST1Ag U1VCU0NSSVBUSU9OIHJlYXBzIHRoZSB0YWJsZQorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf Y29uZmxpY3RfdGVzdDEgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QxIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CisKKy0tIFZlcmlmeSB0aGUgdGFibGUg T0lEIGZvciByZWFwIGNoZWNrCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18n IHx8IG9pZCBBUyBpbnRlcm5hbF90YWJsZW5hbWUgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUg c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyBcZ3NldAorCitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9IFdBUk5JTkc7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxOworCistLSBzaG91bGQgcmV0dXJuIE5VTEwsIG1lYW5pbmcgdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZSB3YXMgcmVhcGVkIHZpYSBkZXBlbmRlbmN5CitTRUxFQ1QgdG9fcmVnY2xhc3MoOidp bnRlcm5hbF90YWJsZW5hbWUnKTsKKworLS0KKy0tIEFkZGl0aW9uYWwgTmFtZXNwYWNlIGFuZCBU YWJsZSBQcm90ZWN0aW9uIFRlc3RzCistLQorCistLSBTZXR1cDogRW5zdXJlIHdlIGhhdmUgYSBz dWJzY3JpcHRpb24gd2l0aCBhIGNvbmZsaWN0IGxvZyB0YWJsZQorQ1JFQVRFIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBDT05ORUNUSU9OICdkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QnCisgICAgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0 ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCistLSBUcnlp bmcgdG8gQUxURVIgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBi ZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gQXMgbWVudGlvbmVkIGluIHBy ZXZpb3VzIHRlc3QgY2FzZXMsIHdlIHVzZSBhIERPIGJsb2NrIHRvIGhpZGUgZHluYW1pYyBPSURz CisKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gTk9USUNFOworRE8gJCQKK0RFQ0xBUkUKKyAg ICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVs bmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0 aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCisgICAgV0hF UkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JzsKKworICAg IFJBSVNFIE5PVElDRSAnQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBvbiBjb25mbGljdCBsb2cgdGFi bGUnOworICAgIEVYRUNVVEUgJ0FMVEVSIFRBQkxFICcgfHwgdGFiX25hbWUgfHwgJyBBREQgQ09M VU1OIGV4dHJhX2luZm8gdGV4dCc7CitFWENFUFRJT04gV0hFTiBpbnN1ZmZpY2llbnRfcHJpdmls ZWdlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiBpbnN1 ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBBTFRFUic7CitFTkQgJCQ7CisKKy0tIFRlc3QgTWFu dWFsIElOU0VSVCBvbiBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGZhaWwgYmVj YXVzZSB0aGUgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQKKy0tIEhpZGluZyB0aGUgT0lEIGluIHRo ZSBlcnJvciBtZXNzYWdlIGJ5IGNhdGNoaW5nIHRoZSBleGNlcHRpb24KK0RPICQkCitERUNMQVJF CisgICAgdGFiX25hbWUgdGV4dDsKK0JFR0lOCisgICAgU0VMRUNUICdwZ19jb25mbGljdC4nIHx8 IHJlbG5hbWUgSU5UTyB0YWJfbmFtZQorICAgIEZST00gcGdfY2xhc3MgYyBKT0lOIHBnX3N1YnNj cmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorICAg IFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisK KyAgICBFWEVDVVRFICdJTlNFUlQgSU5UTyAnIHx8IHRhYl9uYW1lIHx8ICcgKHJlbG5hbWUpIFZB TFVFUyAoJydteXRlc3QnJyknOworRVhDRVBUSU9OIFdIRU4gd3Jvbmdfb2JqZWN0X3R5cGUgVEhF TgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IHdyb25nX29iamVj dF90eXBlIGR1cmluZyBJTlNFUlQnOworRU5EICQkOworCistLSBUZXN0IE1hbnVhbCBVUERBVEUg b24gY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2UgdGhlIHRh YmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBIaWRpbmcgdGhlIE9JRCBpbiB0aGUgZXJyb3IgbWVz c2FnZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0aW9uCitETyAkJAorREVDTEFSRQorICAgIHRhYl9u YW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElO VE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBP TiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VU RSAnVVBEQVRFICcgfHwgdGFiX25hbWUgfHwgJyBTRVQgcmVsbmFtZSA9ICcnbXl0ZXN0JycgJzsK K0VYQ0VQVElPTiBXSEVOIHdyb25nX29iamVjdF90eXBlIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0Ug J2NhcHR1cmVkIGV4cGVjdGVkIGVycm9yOiB3cm9uZ19vYmplY3RfdHlwZSBkdXJpbmcgVVBEQVRF JzsKK0VORCAkJDsKKworLS0gVHJ5aW5nIHRvIHBlcmZvcm0gVFJVTkNBVEUvREVMRVRFIG9uIHRo ZSBjb25mbGljdCBsb2cgdGFibGUKKy0tIFRoaXMgc2hvdWxkIGJlIGFsbG93ZWQgc28gdGhhdCB1 c2VyIGNhbiBwZXJmb3JtIGNsZWFudXAKK1NFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1l IEFTIGNvbmZsaWN0X3RhYgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JyBcZ3NldAorVFJVTkNBVEUg OmNvbmZsaWN0X3RhYjsKK0RFTEVURSBGUk9NIDpjb25mbGljdF90YWI7CisKKy0tIFRyeWluZyB0 byBjcmVhdGUgYSBuZXcgdGFibGUgbWFudWFsbHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFj ZQorLS0gVGhpcyBzaG91bGQgZmFpbCBhcyB0aGUgbmFtZXNwYWNlIGlzIHJlc2VydmVkIGZvciBj b25mbGljdCBsb2dzIHRhYmxlcworQ1JFQVRFIFRBQkxFIHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJs ZSAoaWQgaW50KTsKKworLS0gTW92aW5nIGFuIGV4aXN0aW5nIHRhYmxlIGludG8gdGhlIHBnX2Nv bmZsaWN0IG5hbWVzcGFjZQorLS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIG1vdmUgdGhl aXIgb3duIHRhYmxlcyB3aXRoaW4gdGhpcyBuYW1lc3BhY2UKK0NSRUFURSBUQUJMRSBwdWJsaWMu dGVzdF9tb3ZlIChpZCBpbnQpOworQUxURVIgVEFCTEUgcHVibGljLnRlc3RfbW92ZSBTRVQgU0NI RU1BIHBnX2NvbmZsaWN0OworRFJPUCBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlOworCitTRVQgY2xp ZW50X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CisKKy0tIENsZWFuIHVwIHJlbWFpbmluZyB0ZXN0 IHN1YnNjcmlwdGlvbgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2Rl ZmF1bHQgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19k ZWZhdWx0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X2xvZ19kZWZhdWx0OworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF9lbXB0eV9zdHIgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X2VtcHR5X3N0ciBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF9lbXB0eV9zdHI7CisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QyIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVn cmVzc19jb25mbGljdF90ZXN0MjsKKworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfcHJvdGVjdGlvbl90ZXN0IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19j b25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0OworCiBSRVNFVCBTRVNT SU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjsK IERST1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKaW5kZXggYzVkYjZjYTY3MDUuLjRlMjc3ODYzYjJjIDEwMDY0NAotLS0gYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdApAQCAtNTE1LDYgKzUxNSw4IEBAIENvbmRpdGlvbmFsU3RhY2sKIENvbmRpdGlvbmFs U3RhY2tEYXRhCiBDb25maWdEYXRhCiBDb25maWdWYXJpYWJsZQorQ29uZmxpY3RMb2dDb2x1bW5E ZWYKK0NvbmZsaWN0TG9nRGVzdAogQ29uZmxpY3RUdXBsZUluZm8KIENvbmZsaWN0VHlwZQogQ29u bkNhY2hlRW50cnkKLS0gCjIuNDkuMAoK --00000000000061f3890654d935d6 Content-Type: application/octet-stream; name="v54-0006-Documentation-patch.patch" Content-Disposition: attachment; filename="v54-0006-Documentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqpd5e6f5 RnJvbSAxMDNkNTc1YzFiZWZmYTJlZWI5YjM3ZDk2OWViNzcyODc0NzA4NjQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hckBEaWxpcC5sb2NhbD4K RGF0ZTogU3VuLCA1IEFwciAyMDI2IDE3OjAyOjAxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NTQg 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= --00000000000061f3890654d935d6--