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 1weWz5-004qst-2t for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jun 2026 11:50:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1weWz4-007wMI-1h for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jun 2026 11:50:34 +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 1weWz3-007wMA-1H for pgsql-hackers@lists.postgresql.org; Tue, 30 Jun 2026 11:50:34 +0000 Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1weWz0-00000000uVO-1fia for pgsql-hackers@lists.postgresql.org; Tue, 30 Jun 2026 11:50:32 +0000 Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-39acf7c6d59so36299091fa.0 for ; Tue, 30 Jun 2026 04:50:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782820229; cv=none; d=google.com; s=arc-20260327; b=S+mYcVUU9fgNKNfokA/+TodIdO75RTDhBXabWphLRmuj88rQOmOBYTBGyB0hfn12w1 EC9AvLq+ptqnRGx7812YLI/iPM8RV0uNnnyFOX7JcNlCglFcsJXAUCubmcxRiDD4Pkwu sMKGMrRZAERmLPtNKXHHTxZGfODwk4mu7G3/yundGu2vKfKElTe5grFqDlBcfXvtBXsG HGq0Bzxi54I9gmHJOqDGRQkd7bFNYV704YgyKsRBWaE988VMgILG0aKetG5u78REIXKp i5zb51+uF0xONJ3lqtEUd5NCzrxLKWVbv+IuipSDYbpcKaj1ArZpatJHU8WfNTEj4FHO 87Kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=kTa6BANl1ftD2ICFnEHFVn7Hz68yGf0cRXYIX+OtFcQ=; fh=J3MVPdOU6glbk4Cm5wiw6DV3c4hOhCQdBDvAPGDInw8=; b=rDGYO1yQ4OSO5hdaod8isdXNkH48zvSeElww1EhW7I4PY1D5CscodtTeUZh296FUEh siTZZmUm1xzsdUxPpNXO1u/rXcQXNF6LQvjy/CySzkzGXGHnh6LT9DE6XRPhoHrPHx1j c2WOpWINkonu4o43GJ7JTc0KSpKeOjMsMMQCeSpOMV8zyC9VdhLerVQAXa6p6CLQOOsP GGfVlhAI1QlA0LSfMOHs/JP5pQ3RwS0bMQcx7hpm1TVVKFzpP1mxjXCQ5ApAES9Mt7FL DqfigGwm+pQhH22ZiFNRphXYVG7WQJJ3Bq03LbW3ZOzs1oLOGOVYqv1EVwAY8TgOJBmU PHRA==; 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=1782820229; x=1783425029; 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=kTa6BANl1ftD2ICFnEHFVn7Hz68yGf0cRXYIX+OtFcQ=; b=JD31OcU/wyqtP+aL0JJyU+t5e/PxgdA9BMYioLQrLYZcjphacdDXDqlDgci8723Vjo h44tcn0iCbsSAy6Ix+hO+ak6W+25/4UcZNrxJtxcbZ/mr9Qk5mNtCjzRsIEEPLdXiWX9 eTSIYZLXMUj23LxtapWrUXXxels0LUg4CaNU7mmRz9iw7kgXm/ZKnVKFw26b21pt+BY+ o2oUOxj6wUq7hKWlbxXaBNFhl0Ft4Z3m/dAV1O4+fdHgnlS8yDDpMhpdDeXyfGgNeSU0 QHk0RlyRDQkK13M8u+iIA+tIAAmZVmFqJUos4gN8NTOHkJ3Tcd3cgRMC3+hUumuX53es 4ziQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782820229; x=1783425029; 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=kTa6BANl1ftD2ICFnEHFVn7Hz68yGf0cRXYIX+OtFcQ=; b=TxmH1M0o++MTRMoShe6Roi45qSdDxhZTaAXlrV3IjUY1IhFQgwOZmmYHaSMAt7VOmb li3hEUdHMrj5zDklljRg4vCnhQXQcaJC9Jia83Gp4n4rnsVkwYX+TlHip5TePj9dFUOP 7f8Tcto50pdw200MWHLEyFRbaHFiaazAGH338luJZ6GGHv26bheTcL1z5ASL+mgNcSUz l/JSNLwPE3+h3tDiInGQhoQNjwTwnqYr35+x+ANDgUag07/vpY5QhgruGxWsSRn1dBXF Kn+PtcLa0is+EoP/3Ev2ra456tHYrFsSDQKvnk9niGNUdLvXOWwHY7/J9ulTTbNcNatg +7EQ== X-Forwarded-Encrypted: i=1; AHgh+RqRCAt15vK/fFarH+6SpC0gX+OJLHk5fH3F4vwZnqeonumGkxSbDvKGZ0AmVxVd5KvrJWVTyciwY04ZAxF+@lists.postgresql.org X-Gm-Message-State: AOJu0YyJUIaAwDyguSeZbniNtO2vF/YD9sZX+dDkiCwJTqEQtGb3RhE1 gjlBj2qKYrknwW/Iob9NuTBW3jogilKYBnoYKb3+wBCioaY8Ne3PEmGU6oBjuBdsZYdxabTbKjU Jot1VZjva96E2k4UNosVmGMxdQm0aWv4= X-Gm-Gg: AfdE7cnjriv+JHZbj6Tqh62oOoj3MMN5+syC+3KUKZG9sZC8kpzVbbxdB8/1DD8oKtF MC6qVdg3PE+MtYtAZEcEWwWpW0aJB1U2EGd95MaHrYXZj++0zchTfjMdob8Wwmu5mkJIuiK4fvt WIFozLuhYlo2KzTgKQHGEa3O/9eGmiS/t6+cIQX3N8yGPH1Jh+t6yBhwScIkJTPejYU8rs1ZWep +t/407mWg5AJ5f6Md6AkIImRDohnBxnZS/Gpz/DWL9nXmgxa0OvAwMDzLTFEwuPY3BT5+jmhQ== X-Received: by 2002:a05:6512:800b:10b0:5ae:bb31:4b98 with SMTP id 2adb3069b0e04-5aec10abb79mr93807e87.20.1782820228467; Tue, 30 Jun 2026 04:50:28 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Tue, 30 Jun 2026 17:20:10 +0530 X-Gm-Features: AVVi8Ccvb9uTZSfMj1GuOhncMHghhS9szZ0l2JWabDpQYuu5ST-fwaPWEd_mqQQ Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Amit Kapila Cc: Peter Smith , vignesh C , Nisha Moond , shveta malik , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000006aae320655772e96" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006aae320655772e96 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jun 30, 2026 at 2:30=E2=80=AFPM Amit Kapila wrote: > > On Tue, Jun 30, 2026 at 11:02=E2=80=AFAM Amit Kapila wrote: > > > > On Tue, Jun 30, 2026 at 9:22=E2=80=AFAM Dilip Kumar wrote: > > > > > > > =3D=3D=3D=3D=3D=3D > > > > src/backend/commands/tablecmds.c > > > > > > > > 2. > > > > + /* > > > > + * Conflict log tables are managed by the system for logical > > > > + * replication and should not be used as parent tables, as > > > > + * inheritance could interfere with the logging behavior. > > > > + */ > > > > + if (IsConflictLogTableNamespace(relation->rd_rel->relnamespace)) > > > > + ereport(ERROR, > > > > + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), > > > > + errmsg("permission denied: cannot inherit from conflict log table= \"%s\"", > > > > + RelationGetRelationName(relation)), > > > > + errdetail("Conflict log tables are system-managed tables for logi= cal > > > > replication conflicts."))); > > > > > > > > It is not really a lack of "privilege" preventing this -- it is jus= t > > > > disallowed for everybody. Would ERRCODE_WRONG_OBJECT_TYPE be a more > > > > appropriate errcode? > > > > > > I agree that we currently restrict most operations on CLTs, but the > > > issue isn't that the CLT is the wrong object type, they are still > > > relations. While we might open up certain operations in the future > > > based on business needs (such as allowing index creation), I still > > > believe this is a matter of privileges rather than object type. > > > > > > > If we look from this POV where we want to support some features in > > future, ERRCODE_FEATURE_NOT_SUPPORTED sounds like a better option. > > OTOH, in execMain.c, in 0001, WRONG_OBJECT_TYPE is any way a better > > fit because we never want to allow INSERT/UPDATE/MERGE. Having, single > > error_code makes it easy to understand/explain/extend this feature, > > otherwise, the future users will always be confused as to which > > error_code is better fit. I think insuffcient_privilige doesn't suit > > even if we want to support such features in future because those won't > > require a new grant kind of privilege. Even though WRONG_OBJECT_TYPE > > is slightly over stretched for some cases but I think consistency > > helps, so, I would prefer WRONG_OBJECT_TYPE in the case Peter pointed > > out and other DDL operations where we have a similar check. > > > > I have changed the error code to WRONG_OBJECT_TYPE in the attached > v59_amit_2.txt. The other thing that bothers me about this patch is > the usage of DO blocks in the tests to hide the CLT name (as the same > has OID in its name which is non-deterministic) which doesn't seem to > be the best way as that bloats the test code and make the test cases > difficult to read. I have changed those specific tests in the attached > v59_amit_3.txt by using \gset and \set VERBOSITY sqlstate which we > also use in arrays.sql and a few other places. Let me know what you > think of attached top-up patches. Also, now let's merge your 0001 and > 0002 patches. I have merged these patches and also merged 0001 and 0002. Also fixed other open comments from Nisha, Shlok, and Peter --=20 Regards, Dilip Kumar Google --0000000000006aae320655772e96 Content-Type: application/octet-stream; name="v60-0003-Preserve-conflict-log-destination-and-subscripti.patch" Content-Disposition: attachment; filename="v60-0003-Preserve-conflict-log-destination-and-subscripti.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0l3qn62 RnJvbSA0NjAxYWY0NWY5MzRiMTE3ZjU1NzIzNTYyMGM2ZmIzN2I4OWMyYTU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAyNCBKdW4gMjAyNiAxMToxMDowMSArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjYw IDMvNV0gUHJlc2VydmUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIGFuZCBzdWJzY3JpcHRpb24K IE9JRCBmb3Igc3Vic2NyaXB0aW9ucwoKU3VwcG9ydCBwZ19kdW1wIHRvIGR1bXAgYW5kIHJlc3Rv cmUgdGhlIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiBzZXR0aW5nIGZvcgpzdWJzY3JpcHRpb25z LgoKRHVyaW5nIGEgbm9ybWFsIENSRUFURSBTVUJTQ1JJUFRJT04sIGEgY29uZmxpY3QgbG9nIHRh YmxlIGlzIGNyZWF0ZWQKYXV0b21hdGljYWxseSB3aGVuIHJlcXVpcmVkLiBIb3dldmVyLCBkdXJp bmcgYmluYXJ5IHVwZ3JhZGUsIHRoZSBjb25mbGljdApsb2cgdGFibGUgd2lsbCBhbHJlYWR5IGV4 aXN0IGFuZCBtdXN0IGJlIHJldXNlZCByYXRoZXIgdGhhbiByZWNyZWF0ZWQsIGFuZAp0aGUgc3Vi c2NyaXB0aW9uIG11c3QgcmV0YWluIGl0cyBvcmlnaW5hbCBPSUQgdG8gY29ycmVjdGx5IHJlLWVz dGFibGlzaApjYXRhbG9nIHJlbGF0aW9uc2hpcHMuCgpUbyBlbnN1cmUgY29ycmVjdCBiZWhhdmlv ciwgcGdfZHVtcCBub3cgZW1pdHMgYW4gQUxURVIgU1VCU0NSSVBUSU9OIGNvbW1hbmQKYWZ0ZXIg c3Vic2NyaXB0aW9uIGNyZWF0aW9uIHRvIHJlc3RvcmUgdGhlIGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiBzZXR0aW5nLgoKVE9ETzogRW5zdXJlIGFsbCAxOTAwMDAgc2VyaWVzIHJlZmVyZW5jZXMg YXJlIHVwZGF0ZWQgdG8gMjAwMDAwCndoZW4gdGhlIHZlcnNpb24gbnVtYmVyIGlzIGJ1bXBlZC4K LS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgIDU2ICsr KysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgICAgfCAg IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyAgICB8ICAx MCArKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTI1 ICsrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAg ICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAg ICAgICAgICB8ICAzMSArKysrKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAg ICAgICAgICAgIHwgICA1ICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jICAgICAg ICAgICAgICAgfCAgIDQgKwogc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5w bCAgICAgIHwgIDE0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmggICAg ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAg ICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAgICAg ICB8ICAgMyArCiAuLi4vZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dCAgICAgICAgICAgICAg fCAgIDYgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDI0OSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDg4MDg3NjU0ZGU5Li4wOGQxNWRlNDA4MyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMKQEAgLTMxMiw2ICszMTIsOCBAQCBoZWFwX2NyZWF0ZShjb25zdCBjaGFyICpyZWxu YW1lLAogCSAqIEJ1dCBhbGxvdyBjcmVhdGluZyBpbmRleGVzIG9uIHJlbGF0aW9ucyBpbiBwZ19j YXRhbG9nIGV2ZW4gaWYKIAkgKiBhbGxvd19zeXN0ZW1fdGFibGVfbW9kcyA9IG9mZiwgdXBwZXIg bGF5ZXJzIGFscmVhZHkgZ3VhcmFudGVlIGl0J3Mgb24gYQogCSAqIHVzZXIgZGVmaW5lZCByZWxh dGlvbiwgbm90IGEgc3lzdGVtIG9uZS4KKwkgKgorCSAqIEFsbG93IGNyZWF0aW9uIG9mIHRoZSBj b25mbGljdCBsb2cgdGFibGUgaW4gYmluYXJ5LXVwZ3JhZGUgbW9kZS4KIAkgKi8KIAlpZiAoIWFs bG93X3N5c3RlbV90YWJsZV9tb2RzICYmCiAJCSgoSXNDYXRhbG9nTmFtZXNwYWNlKHJlbG5hbWVz cGFjZSkgJiYgcmVsa2luZCAhPSBSRUxLSU5EX0lOREVYKSB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IGUzMGUwZTBkZmU3Li5jZWUyNjYwOGEwNiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwpAQCAtMTksNiArMTksNyBAQAogI2lu Y2x1ZGUgImFjY2Vzcy90YWJsZS5oIgogI2luY2x1ZGUgImFjY2Vzcy90d29waGFzZS5oIgogI2lu Y2x1ZGUgImFjY2Vzcy94YWN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5k ZW5jeS5oIgogI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKQEAgLTg2LDYgKzg3LDEyIEBA CiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNkZWZpbmUgSXNTZXQo dmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQogCisvKgorICogVGhpcyB3 aWxsIGJlIHNldCBieSB0aGUgcGdfdXBncmFkZV9zdXBwb3J0IGZ1bmN0aW9uIC0tCisgKiBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKCkuCisgKi8KK09pZAkJCWJp bmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IEludmFsaWRPaWQ7CisKIC8q CiAgKiBTdHJ1Y3R1cmUgdG8gaG9sZCBhIGJpdG1hcCByZXByZXNlbnRpbmcgdGhlIHVzZXItcHJv dmlkZWQgQ1JFQVRFL0FMVEVSCiAgKiBTVUJTQ1JJUFRJT04gY29tbWFuZCBvcHRpb25zIGFuZCB0 aGUgcGFyc2VkL2RlZmF1bHQgdmFsdWVzIG9mIGVhY2ggb2YgdGhlbS4KQEAgLTgyOCw4ICs4MzUs MjEgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2Ny aXB0aW9uU3RtdCAqc3RtdCwKIAltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CiAJ bWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CiAKLQlzdWJpZCA9IEdldE5ld09p ZFdpdGhJbmRleChyZWwsIFN1YnNjcmlwdGlvbk9iamVjdEluZGV4SWQsCi0JCQkJCQkJICAgQW51 bV9wZ19zdWJzY3JpcHRpb25fb2lkKTsKKwkvKiBVc2UgYmluYXJ5LXVwZ3JhZGUgb3ZlcnJpZGUg Zm9yIHBnX3N1YnNjcmlwdGlvbi5vaWQ/ICovCisJaWYgKElzQmluYXJ5VXBncmFkZSkKKwl7CisJ CWlmICghT2lkSXNWYWxpZChiaW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQp KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCisJCQkJCSBlcnJtc2coInBnX3N1YnNjcmlwdGlvbiBPSUQgdmFsdWUgbm90 IHNldCB3aGVuIGluIGJpbmFyeSB1cGdyYWRlIG1vZGUiKSkpOworCisJCXN1YmlkID0gYmluYXJ5 X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkOworCQliaW5hcnlfdXBncmFkZV9uZXh0 X3BnX3N1YnNjcmlwdGlvbl9vaWQgPSBJbnZhbGlkT2lkOworCX0KKwllbHNlCisJCXN1YmlkID0g R2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgU3Vic2NyaXB0aW9uT2JqZWN0SW5kZXhJZCwKKwkJCQkJ CQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fb2lkKTsKKwogCXZhbHVlc1tBbnVtX3BnX3N1YnNj cmlwdGlvbl9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oc3ViaWQpOwogCXZhbHVlc1tBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJkYmlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKE15RGF0YWJh c2VJZCk7CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YnNraXBsc24gLSAxXSA9IExT TkdldERhdHVtKEludmFsaWRYTG9nUmVjUHRyKTsKQEAgLTE1NDEsMTggKzE1NjEsNDAgQEAgYWx0 ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLCBDb25mbGljdExvZ0Rl c3Qgb2xkbG9nZGVzdCwKIAkJewogCQkJT2JqZWN0QWRkcmVzcyBjbHRhZGRyOwogCQkJT2JqZWN0 QWRkcmVzcyBzdWJvYmo7CisJCQljaGFyICAgICAgICAgIHJlbG5hbWVbTkFNRURBVEFMRU5dOwog Ci0JCQlyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFt ZSwgc3ViLT5vd25lcik7Ci0JCQl1cGRhdGVfcmVsaWQgPSB0cnVlOworCQkJc25wcmludGYocmVs bmFtZSwgTkFNRURBVEFMRU4sIENPTkZMSUNUX0xPR19SRUxBVElPTl9OQU1FX0ZNVCwgc3ViLT5v aWQpOwogCiAJCQkvKgotCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0 d2VlbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCi0JCQkgKiBhbmQgdGhlIHN1YnNjcmlwdGlvbi4g IEZvciBkZXRhaWxzIHJlZmVyIGNvbW1lbnRzIGluCi0JCQkgKiBDcmVhdGVTdWJzY3JpcHRpb24g ZnVuY3Rpb24uCisJCQkgKiBJbiB1cGdyYWRlIHNjZW5hcmlvcywgb2xkX2Rlc3QgcmVmbGVjdHMg dGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YKKwkJCSAqIGEgbmV3bHkgY3JlYXRlZCBzdWJzY3JpcHRp b24gKGkuZS4sIG5vIGNvbmZsaWN0IGxvZ2dpbmcgdG8KKwkJCSAqIHRhYmxlKSBIb3dldmVyLCB0 aGUgY29uZmxpY3QgbG9nIHRhYmxlIHdpbGwgYWxyZWFkeSBleGlzdCBmcm9tCisJCQkgKiB0aGUg dXBncmFkZWQgY2x1c3Rlci4gIEluIHN1Y2ggY2FzZXMsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoZQor CQkJICogcHJlLWV4aXN0aW5nIHRhYmxlIGFuZCB1cGRhdGUgdGhlIGNhdGFsb2cgc3RhdGUgdG8g YXNzb2NpYXRlIGl0CisJCQkgKiB3aXRoIHRoZSBzdWJzY3JpcHRpb24gaW5zdGVhZCBvZiBjcmVh dGluZyBhIG5ldyBvbmUuCisJCQkgKi8KKwkJCXJlbGlkID0gZ2V0X3JlbG5hbWVfcmVsaWQocmVs bmFtZSwgUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKTsKKwkJCWlmIChPaWRJc1ZhbGlkKHJlbGlkKSkK KwkJCXsKKwkJCQkvKiBFeGlzdGluZyB0YWJsZSBmcm9tIHVwZ3JhZGUgKi8KKwkJCQlBc3NlcnQo SXNCaW5hcnlVcGdyYWRlKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlyZWxpZCA9IGNyZWF0 ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwKKwkJCQkJCQkJCQkJCSAg c3ViLT5vd25lcik7CisJCQl9CisKKwkJCS8qCisJCQkgKiBFc3RhYmxpc2ggYW4gaW50ZXJuYWwg ZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBjb25mbGljdCBsb2cKKwkJCSAqIHRhYmxlIGFuZCB0aGUg c3Vic2NyaXB0aW9uLiAgUmVmZXIgdG8gY29tbWVudHMgaW4gdGhlCisJCQkgKiBDcmVhdGVTdWJz Y3JpcHRpb24gZnVuY3Rpb24gZm9yIGRldGFpbHMuCiAJCQkgKi8KIAkJCU9iamVjdEFkZHJlc3NT ZXQoY2x0YWRkciwgUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CiAJCQlPYmplY3RBZGRyZXNz U2V0KHN1Ym9iaiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQpOwogCQkJcmVjb3Jk RGVwZW5kZW5jeU9uKCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKwor CQkJdXBkYXRlX3JlbGlkID0gdHJ1ZTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9jb25mbGljdC5jCmluZGV4IDgzMzhhOGNlMTExLi43YzI4MzU4ZjJkNyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMjA3LDcgKzIw Nyw3IEBAIGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoT2lkIHN1YmlkLCBjaGFyICpzdWJuYW1l LCBPaWQgc3Vib3duZXIpCiAJT2lkCQkJcmVsaWQ7CiAJY2hhciAgICAJcmVsbmFtZVtOQU1FREFU QUxFTl07CiAKLQlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgInBnX2NvbmZsaWN0X2xv Z18ldSIsIHN1YmlkKTsKKwlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgQ09ORkxJQ1Rf TE9HX1JFTEFUSU9OX05BTUVfRk1ULCBzdWJpZCk7CiAKIAkvKiBCdWlsZCB0aGUgdHVwbGUgZGVz Y3JpcHRvciBmb3IgdGhlIG5ldyB0YWJsZS4gKi8KIAl0dXBkZXNjID0gY3JlYXRlX2NvbmZsaWN0 X2xvZ190YWJsZV90dXBkZXNjKCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv cGdfdXBncmFkZV9zdXBwb3J0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9z dXBwb3J0LmMKaW5kZXggYjUwNWE2YjRmZWUuLjU5YzNlN2YwMTQ2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCkBAIC0xODEsNiArMTgxLDE2IEBAIGJpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX2F1dGhpZF9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19S RVRVUk5fVk9JRCgpOwogfQogCitEYXR1bQorYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vi c2NyaXB0aW9uX29pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXN1YmlkID0gUEdfR0VU QVJHX09JRCgwKTsKKworCUNIRUNLX0lTX0JJTkFSWV9VUEdSQURFOworCWJpbmFyeV91cGdyYWRl X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IHN1YmlkOworCVBHX1JFVFVSTl9WT0lEKCk7Cit9 CisKIERhdHVtCiBiaW5hcnlfdXBncmFkZV9jcmVhdGVfZW1wdHlfZXh0ZW5zaW9uKFBHX0ZVTkNU SU9OX0FSR1MpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBjNTY0MzdkNjA1Ny4uNTc1ZDJlY2I4OGEgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYwpAQCAtMTk4MSw2ICsxOTgxLDggQEAgY2hlY2tFeHRlbnNpb25NZW1iZXJzaGlw KER1bXBhYmxlT2JqZWN0ICpkb2JqLCBBcmNoaXZlICpmb3V0KQogc3RhdGljIHZvaWQKIHNlbGVj dER1bXBhYmxlTmFtZXNwYWNlKE5hbWVzcGFjZUluZm8gKm5zaW5mbywgQXJjaGl2ZSAqZm91dCkK IHsKKwlEdW1wT3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKIAkvKgogCSAqIERVTVBfQ09N UE9ORU5UX0RFRklOSVRJT04gdHlwaWNhbGx5IGltcGxpZXMgYSBDUkVBVEUgU0NIRU1BIHN0YXRl bWVudAogCSAqIGFuZCAoZm9yIC0tY2xlYW4pIGEgRFJPUCBTQ0hFTUEgc3RhdGVtZW50LiAgKElu IHRoZSBhYnNlbmNlIG9mCkBAIC0yMDEwLDYgKzIwMTIsMzIgQEAgc2VsZWN0RHVtcGFibGVOYW1l c3BhY2UoTmFtZXNwYWNlSW5mbyAqbnNpbmZvLCBBcmNoaXZlICpmb3V0KQogCQkgKi8KIAkJbnNp bmZvLT5kb2JqLmR1bXBfY29udGFpbnMgPSBuc2luZm8tPmRvYmouZHVtcCA9IERVTVBfQ09NUE9O RU5UX0FDTDsKIAl9CisJZWxzZSBpZiAoc3RyY21wKG5zaW5mby0+ZG9iai5uYW1lLCAicGdfY29u ZmxpY3QiKSA9PSAwKQorCXsKKwkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQorCQl7CisJCQkv KgorCQkJICogVGhlIHBnX2NvbmZsaWN0IHNjaGVtYSBpcyBhIHN0cmFuZ2UgYmVhc3QgdGhhdCBz aXRzIGluIGEgc29ydAorCQkJICogb2Ygbm8tbWFucy1sYW5kIGJldHdlZW4gYmVpbmcgYSBzeXN0 ZW0gb2JqZWN0IGFuZCBhIHVzZXIKKwkJCSAqIG9iamVjdC4gQ1JFQVRFIFNDSEVNQSB3b3VsZCBm YWlsLCBzbyBpdHMKKwkJCSAqIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04gaXMganVzdCBhIGNv bW1lbnQuCisJCQkgKi8KKwkJCW5zaW5mby0+Y3JlYXRlID0gZmFsc2U7CisJCQluc2luZm8tPmRv YmouZHVtcCA9IERVTVBfQ09NUE9ORU5UX0FMTDsKKwkJCW5zaW5mby0+ZG9iai5kdW1wICY9IH5E VU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OOworCQkJbnNpbmZvLT5kb2JqLmR1bXBfY29udGFpbnMg PSBEVU1QX0NPTVBPTkVOVF9BTEw7CisKKwkJCS8qCisJCQkgKiBBbHNvLCBtYWtlIGxpa2UgaXQg aGFzIGEgY29tbWVudCBldmVuIGlmIGl0IGRvZXNuJ3Q7IHRoaXMgaXMgc28KKwkJCSAqIHRoYXQg d2UnbGwgZW1pdCBhIGNvbW1hbmQgdG8gZHJvcCB0aGUgY29tbWVudCwgaWYgYXBwcm9wcmlhdGUu CisJCQkgKiAoV2l0aG91dCB0aGlzLCB3ZSdkIG5vdCBjYWxsIGR1bXBDb21tZW50RXh0ZW5kZWQg Zm9yIGl0LikKKwkJCSAqLworCQkJbnNpbmZvLT5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01Q T05FTlRfQ09NTUVOVDsKKwkJfQorCQllbHNlCisJCQluc2luZm8tPmRvYmouZHVtcF9jb250YWlu cyA9IG5zaW5mby0+ZG9iai5kdW1wID0KKwkJCQlEVU1QX0NPTVBPTkVOVF9OT05FOworCX0KIAll bHNlIGlmIChzdHJuY21wKG5zaW5mby0+ZG9iai5uYW1lLCAicGdfIiwgMykgPT0gMCB8fAogCQkJ IHN0cmNtcChuc2luZm8tPmRvYmoubmFtZSwgImluZm9ybWF0aW9uX3NjaGVtYSIpID09IDApCiAJ ewpAQCAtMjA2Nyw5ICsyMDk1LDM4IEBAIHNlbGVjdER1bXBhYmxlTmFtZXNwYWNlKE5hbWVzcGFj ZUluZm8gKm5zaW5mbywgQXJjaGl2ZSAqZm91dCkKIHN0YXRpYyB2b2lkCiBzZWxlY3REdW1wYWJs ZVRhYmxlKFRhYmxlSW5mbyAqdGJpbmZvLCBBcmNoaXZlICpmb3V0KQogeworCUR1bXBPcHRpb25z ICpkb3B0ID0gZm91dC0+ZG9wdDsKKwogCWlmIChjaGVja0V4dGVuc2lvbk1lbWJlcnNoaXAoJnRi aW5mby0+ZG9iaiwgZm91dCkpCiAJCXJldHVybjsJCQkJCS8qIGV4dGVuc2lvbiBtZW1iZXJzaGlw IG92ZXJyaWRlcyBhbGwgZWxzZSAqLwogCisJaWYgKHN0cmNtcCh0YmluZm8tPmRvYmoubmFtZXNw YWNlLT5kb2JqLm5hbWUsICJwZ19jb25mbGljdCIpID09IDApCisJeworCQkvKgorCQkgKiBEdW1w IHBnX2NvbmZsaWN0IHRhYmxlcyBvbmx5IGR1cmluZyBiaW5hcnkgdXBncmFkZS4gVGhlIHNjaGVt YSBpcworCQkgKiBhc3N1bWVkIHRvIGFscmVhZHkgZXhpc3QuCisJCSAqLworCQlpZiAoZG9wdC0+ YmluYXJ5X3VwZ3JhZGUpCisJCXsKKwkJCXRiaW5mby0+ZG9iai5kdW1wID0gRFVNUF9DT01QT05F TlRfREVGSU5JVElPTjsKKworCQkJLyoKKwkJCSAqIFN1cHByZXNzIHRoZSAiQUxURVIgVEFCTEUg Li4uIE9XTkVSIFRPIC4uLiIgY29tbWFuZCBmb3IgdGhpcworCQkJICogdGFibGUuIFRoaXMgcHJl dmVudHMgcGdfZHVtcCBmcm9tIG91dHB1dHRpbmcgdGhlIG93bmVyIGNoYW5nZS4KKwkJCSAqLwor CQkJdGJpbmZvLT5yb2xuYW1lID0gTlVMTDsKKwkJfQorCQllbHNlCisJCQl0YmluZm8tPmRvYmou ZHVtcCA9IERVTVBfQ09NUE9ORU5UX05PTkU7CisKKwkJLyoKKwkJICogRG8gbm90IGFwcGx5IHRh YmxlIHNlbGVjdGlvbiBvciBleGNsdXNpb24gcnVsZXMgdG8gcGdfY29uZmxpY3QKKwkJICogdGFi bGVzLiBEdXJpbmcgYmluYXJ5IHVwZ3JhZGUsIHRoZXNlIHRhYmxlcyBhcmUgZHVtcGVkIHRvIHBy ZXNlcnZlCisJCSAqIGNhdGFsb2cgc3RhdGU7IG90aGVyd2lzZSwgdGhleSBhcmUgbm90IGR1bXBl ZCBhdCBhbGwuCisJCSAqLworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBJZiBzcGVjaWZpYyB0 YWJsZXMgYXJlIGJlaW5nIGR1bXBlZCwgZHVtcCBqdXN0IHRob3NlIHRhYmxlczsgZWxzZSwgZHVt cAogCSAqIGFjY29yZGluZyB0byB0aGUgcGFyZW50IG5hbWVzcGFjZSdzIGR1bXAgZmxhZy4KQEAg LTUxODQsNiArNTI0MSw4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJ CQlpX3N1YmZhaWxvdmVyOwogCWludAkJCWlfc3VicmV0YWluZGVhZHR1cGxlczsKIAlpbnQJCQlp X3N1Ym1heHJldGVudGlvbjsKKwlpbnQJCQlpX3N1YmNvbmZsaWN0bG9ncmVsaWQ7CisJaW50CQkJ aV9zdWJsb2dkZXN0aW5hdGlvbjsKIAlpbnQJCQlpLAogCQkJCW50dXBzOwogCkBAIC01MjgyLDkg KzUzNDEsMTYgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQkJCQkJCSAiICct MScgQVMgc3Vid2FscmN2dGltZW91dCxcbiIpOwogCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24g Pj0gMTkwMDAwKQotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmcy5zcnZuYW1lIEFT IHN1YnNlcnZlcm5hbWVcbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmcy5z cnZuYW1lIEFTIHN1YnNlcnZlcm5hbWUsXG4iKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiIE5VTEwgQVMgc3Vic2VydmVybmFtZSxcbiIpOworCisJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPj0gMTkwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJ CQkJCQkgIiBzLnN1YmNvbmZsaWN0bG9ncmVsaWQsIHMuc3ViY29uZmxpY3Rsb2dkZXN0XG4iKTsK IAllbHNlCi0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIE5VTEwgQVMgc3Vic2VydmVy bmFtZVxuIik7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiIE5VTEwg QVMgc3ViY29uZmxpY3Rsb2dyZWxpZCwgTlVMTCBBUyBzdWJjb25mbGljdGxvZ2Rlc3RcbiIpOwog CiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkgIkZST00gcGdfc3Vic2NyaXB0 aW9uIHNcbiIpOwpAQCAtNTMzMyw2ICs1Mzk5LDggQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZl ICpmb3V0KQogCWlfc3VicHVibGljYXRpb25zID0gUFFmbnVtYmVyKHJlcywgInN1YnB1YmxpY2F0 aW9ucyIpOwogCWlfc3Vib3JpZ2luID0gUFFmbnVtYmVyKHJlcywgInN1Ym9yaWdpbiIpOwogCWlf c3Vib3JpZ2lucmVtb3RlbHNuID0gUFFmbnVtYmVyKHJlcywgInN1Ym9yaWdpbnJlbW90ZWxzbiIp OworCWlfc3ViY29uZmxpY3Rsb2dyZWxpZCA9IFBRZm51bWJlcihyZXMsICJzdWJjb25mbGljdGxv Z3JlbGlkIik7CisJaV9zdWJsb2dkZXN0aW5hdGlvbiA9IFBRZm51bWJlcihyZXMsICJzdWJjb25m bGljdGxvZ2Rlc3QiKTsKIAogCXN1YmluZm8gPSBwZ19tYWxsb2NfYXJyYXkoU3Vic2NyaXB0aW9u SW5mbywgbnR1cHMpOwogCkBAIC01MzkxLDYgKzU0NTksMzIgQEAgZ2V0U3Vic2NyaXB0aW9ucyhB cmNoaXZlICpmb3V0KQogCQkJc3ViaW5mb1tpXS5zdWJvcmlnaW5yZW1vdGVsc24gPQogCQkJCXBn X3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJvcmlnaW5yZW1vdGVsc24pKTsKIAorCQlp ZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3N1YmNvbmZsaWN0bG9ncmVsaWQpKQorCQkJc3ViaW5m b1tpXS5zdWJjb25mbGljdGxvZ3JlbGlkID0gSW52YWxpZE9pZDsKKwkJZWxzZQorCQl7CisJCQlz dWJpbmZvW2ldLnN1YmNvbmZsaWN0bG9ncmVsaWQgPQorCQkJCWF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV9zdWJjb25mbGljdGxvZ3JlbGlkKSk7CisKKwkJCWlmIChzdWJpbmZvW2ldLnN1YmNv bmZsaWN0bG9ncmVsaWQpCisJCQl7CisJCQkJVGFibGVJbmZvICAqdGFibGVJbmZvOworCisJCQkJ dGFibGVJbmZvID0gZmluZFRhYmxlQnlPaWQoc3ViaW5mb1tpXS5zdWJjb25mbGljdGxvZ3JlbGlk KTsKKwkJCQlpZiAoIXRhYmxlSW5mbykKKwkJCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBmaW5kIGNv bmZsaWN0IGxvZyB0YWJsZSB3aXRoIE9JRCAldSIsCisJCQkJCQkJIHN1YmluZm9baV0uc3ViY29u ZmxpY3Rsb2dyZWxpZCk7CisKKwkJCQlhZGRPYmplY3REZXBlbmRlbmN5KCZzdWJpbmZvW2ldLmRv YmosIHRhYmxlSW5mby0+ZG9iai5kdW1wSWQpOworCQkJfQorCQl9CisKKwkJaWYgKFBRZ2V0aXNu dWxsKHJlcywgaSwgaV9zdWJsb2dkZXN0aW5hdGlvbikpCisJCQlzdWJpbmZvW2ldLnN1YmNvbmZs aWN0bG9nZGVzdCA9IE5VTEw7CisJCWVsc2UKKwkJCXN1YmluZm9baV0uc3ViY29uZmxpY3Rsb2dk ZXN0ID0KKwkJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3VibG9nZGVzdGluYXRp b24pKTsKKwogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2Vs ZWN0RHVtcGFibGVPYmplY3QoJihzdWJpbmZvW2ldLmRvYmopLCBmb3V0KTsKIAl9CkBAIC01NTgz LDYgKzU2NzcsMTQgQEAgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJz Y3JpcHRpb25JbmZvICpzdWJpbmZvKQogCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFNV QlNDUklQVElPTiAlcztcbiIsCiAJCQkJCSAgcXN1Ym5hbWUpOwogCisJaWYgKGRvcHQtPmJpbmFy eV91cGdyYWRlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJcbi0tIEZvciBi aW5hcnkgdXBncmFkZSwgbXVzdCBwcmVzZXJ2ZSBwZ19zdWJzY3JpcHRpb24ub2lkXG4iKTsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxvZy5iaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkKCcldSc6OnBnX2NhdGFsb2cu b2lkKTtcblxuIiwKKwkJCQkJCSAgc3ViaW5mby0+ZG9iai5jYXRJZC5vaWQpOworCX0KKwogCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFNVQlNDUklQVElPTiAlcyAiLAogCQkJCQkg IHFzdWJuYW1lKTsKIAlpZiAoc3ViaW5mby0+c3Vic2VydmVybmFtZSkKQEAgLTU2NTYsNiArNTc1 OCwyNSBAQCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlv bkluZm8gKnN1YmluZm8pCiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4iKTsK IAorCS8qCisJICogUmVzdG9yZSB0aGUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHNlcGFyYXRl bHkgZnJvbSBDUkVBVEUgU1VCU0NSSVBUSU9OLgorCSAqIFNldHRpbmcgY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uIHRvICd0YWJsZScgbWF5IGNyZWF0ZSBhbmQgYXNzb2NpYXRlCisJICogYSBjb25m bGljdCBsb2cgdGFibGUgd2hvc2UgbmFtZSBpcyBkZXJpdmVkIGZyb20gdGhlIHN1YnNjcmlwdGlv biBPSUQuCisJICogU2luY2UgdGhlIHN1YnNjcmlwdGlvbiBtdXN0IGFscmVhZHkgZXhpc3QgYmVm b3JlIHRoYXQgT0lEIGlzIGtub3duLAorCSAqIGVtaXQgdGhpcyBhcyBhIHNlcGFyYXRlIEFMVEVS IFNVQlNDUklQVElPTiBzbyB0aGF0IGFueSByZXF1aXJlZCBjb25mbGljdAorCSAqIGxvZyB0YWJs ZSBjYW4gYmUgY3JlYXRlZCBhbmQgbGlua2VkIGFmdGVyIHRoZSBzdWJzY3JpcHRpb24gaXRzZWxm IGhhcworCSAqIGJlZW4gcmVzdG9yZWQuCisJICoKKwkgKiBXZSBza2lwIHRoZSBkZWZhdWx0IHZh bHVlICgnbG9nJykgdG8gbWF0Y2ggdGhlIGhhbmRsaW5nIG9mIG90aGVyCisJICogc3Vic2NyaXB0 aW9uIG9wdGlvbnMuCisJICovCisJaWYgKHN1YmluZm8tPnN1YmNvbmZsaWN0bG9nZGVzdCAmJgor CQkocGdfc3RyY2FzZWNtcChzdWJpbmZvLT5zdWJjb25mbGljdGxvZ2Rlc3QsICJsb2ciKSAhPSAw KSkKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICJcblxuQUxURVIgU1VCU0NS SVBUSU9OICVzIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJXMpO1xuIiwKKwkJCQkJ CSAgcXN1Ym5hbWUsCisJCQkJCQkgIHN1YmluZm8tPnN1YmNvbmZsaWN0bG9nZGVzdCk7CisKIAkv KgogCSAqIEluIGJpbmFyeS11cGdyYWRlIG1vZGUsIHdlIGFsbG93IHRoZSByZXBsaWNhdGlvbiB0 byBjb250aW51ZSBhZnRlciB0aGUKIAkgKiB1cGdyYWRlLgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNWE2NzI2 ZDhiMTIuLmE0M2EzMDQ5MzQzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcyMiw2ICs3MjIsNyBAQCB0eXBl ZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWJvb2wJCXN1YmZhaWxvdmVyOwogCWJvb2wJ CXN1YnJldGFpbmRlYWR0dXBsZXM7CiAJaW50CQkJc3VibWF4cmV0ZW50aW9uOworCU9pZAkJCXN1 YmNvbmZsaWN0bG9ncmVsaWQ7CiAJY2hhcgkgICAqc3Vic2VydmVybmFtZTsKIAljaGFyCSAgICpz dWJjb25uaW5mbzsKIAljaGFyCSAgICpzdWJzbG90bmFtZTsKQEAgLTczMCw2ICs3MzEsNyBAQCB0 eXBlZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWNoYXIJICAgKnN1YnB1YmxpY2F0aW9u czsKIAljaGFyCSAgICpzdWJvcmlnaW47CiAJY2hhcgkgICAqc3Vib3JpZ2lucmVtb3RlbHNuOwor CWNoYXIJICAgKnN1YmNvbmZsaWN0bG9nZGVzdDsKIH0gU3Vic2NyaXB0aW9uSW5mbzsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCAwM2U1YzFjMTExNi4uYzI3YjIzMmU3OTkgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTExMzEsNiArMTEzMSwxOSBAQCByZXBhaXJUYWJsZUF0dHJE ZWZNdWx0aUxvb3AoRHVtcGFibGVPYmplY3QgKnRhYmxlb2JqLAogCWFkZE9iamVjdERlcGVuZGVu Y3koYXR0cmRlZm9iaiwgdGFibGVvYmotPmR1bXBJZCk7CiB9CiAKKy8qCisgKiBCZWNhdXNlIHdl IG1ha2Ugc3Vic2NyaXB0aW9ucyBkZXBlbmQgb24gdGhlaXIgY29uZmxpY3QgbG9nIHRhYmxlcywg d2hpbGUKKyAqIHRoZXJlIGlzIGFuIGF1dG9tYXRpYyBkZXBlbmRlbmN5IGluIHRoZSBvdGhlciBk aXJlY3Rpb24sIHdlIG5lZWQgdG8gYnJlYWsKKyAqIHRoZSBsb29wLiBSZW1vdmUgdGhlIGF1dG9t YXRpYyBkZXBlbmRlbmN5LCBhbGxvd2luZyB0aGUgdGFibGUgdG8gYmUgY3JlYXRlZAorICogZmly c3QuCisgKi8KK3N0YXRpYyB2b2lkCityZXBhaXJTdWJzY3JpcHRpb25UYWJsZUxvb3AoRHVtcGFi bGVPYmplY3QgKnN1Ym9iaiwgRHVtcGFibGVPYmplY3QgKnRhYmxlb2JqKQoreworCS8qIFJlbW92 ZSB0YWJsZSdzIGRlcGVuZGVuY3kgb24gc3Vic2NyaXB0aW9uICovCisJcmVtb3ZlT2JqZWN0RGVw ZW5kZW5jeSh0YWJsZW9iaiwgc3Vib2JqLT5kdW1wSWQpOworfQorCiAvKgogICogQ0hFQ0ssIE5P VCBOVUxMIGNvbnN0cmFpbnRzIG9uIGRvbWFpbnMgd29yayBqdXN0IGxpa2UgdGhvc2Ugb24gdGFi bGVzIC4uLgogICovCkBAIC0xMzYxLDYgKzEzNzQsMjQgQEAgcmVwYWlyRGVwZW5kZW5jeUxvb3Ao RHVtcGFibGVPYmplY3QgKipsb29wLAogCQlyZXR1cm47CiAJfQogCisJLyoKKwkgKiBTdWJzY3Jp cHRpb24gYW5kIGl0cyBDb25mbGljdCBMb2cgVGFibGUKKwkgKi8KKwlpZiAobkxvb3AgPT0gMiAm JgorCQlsb29wWzBdLT5vYmpUeXBlID09IERPX1RBQkxFICYmCisJCWxvb3BbMV0tPm9ialR5cGUg PT0gRE9fU1VCU0NSSVBUSU9OKQorCXsKKwkJcmVwYWlyU3Vic2NyaXB0aW9uVGFibGVMb29wKGxv b3BbMV0sIGxvb3BbMF0pOworCQlyZXR1cm47CisJfQorCWlmIChuTG9vcCA9PSAyICYmCisJCWxv b3BbMF0tPm9ialR5cGUgPT0gRE9fU1VCU0NSSVBUSU9OICYmCisJCWxvb3BbMV0tPm9ialR5cGUg PT0gRE9fVEFCTEUpCisJeworCQlyZXBhaXJTdWJzY3JpcHRpb25UYWJsZUxvb3AobG9vcFswXSwg bG9vcFsxXSk7CisJCXJldHVybjsKKwl9CisKIAkvKiBpbmRleCBvbiBwYXJ0aXRpb25lZCB0YWJs ZSBhbmQgY29ycmVzcG9uZGluZyBpbmRleCBvbiBwYXJ0aXRpb24gKi8KIAlpZiAobkxvb3AgPT0g MiAmJgogCQlsb29wWzBdLT5vYmpUeXBlID09IERPX0lOREVYICYmCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCmluZGV4IDkyNTg5NDhiNTgzLi44YzI2NTNlODUyZSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwKQEAgLTMzMTcsOSArMzMxNywxMCBAQCBteSAldGVzdHMgPSAoCiAJCWNyZWF0ZV9v cmRlciA9PiA1MCwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIzCiAJ CQkJCQkgQ09OTkVDVElPTiBcJ2RibmFtZT1kb2Vzbm90ZXhpc3RcJyBQVUJMSUNBVElPTiBwdWIx Ci0JCQkJCQkgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBvcmlnaW4gPSBhbnksIHN0cmVhbWluZyA9 IG9uKTsnLAorCQkJCQkJIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgb3JpZ2luID0gYW55LCBzdHJl YW1pbmcgPSBvbiwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPSB0YWJsZSk7JywKIAkJcmVnZXhw ID0+IHFyL14KLQkJCVxRQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIzIENPTk5FQ1RJT04gJ2RibmFt ZT1kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHB1YjEgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBz bG90X25hbWUgPSAnc3ViMycsIHN0cmVhbWluZyA9IG9uKTtcRQorCQkJXFFDUkVBVEUgU1VCU0NS SVBUSU9OIHN1YjMgQ09OTkVDVElPTiAnZGJuYW1lPWRvZXNub3RleGlzdCcgUFVCTElDQVRJT04g cHViMSBXSVRIIChjb25uZWN0ID0gZmFsc2UsIHNsb3RfbmFtZSA9ICdzdWIzJywgc3RyZWFtaW5n ID0gb24pO1xFXG5cblxuCisJCQlcUUFMVEVSIFNVQlNDUklQVElPTiBzdWIzIFNFVCAoY29uZmxp Y3RfbG9nX2Rlc3RpbmF0aW9uID0gdGFibGUpO1xFCiAJCQkveG0sCiAJCWxpa2UgPT4geyAlZnVs bF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCQl1bmxpa2UgPT4gewpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmMKaW5kZXggMjEyN2QyOTdiZmUuLjEzNWVmNjU4YzJjIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmMKQEAgLTM1LDYgKzM1LDEwIEBACiAgKgogICoJV2UgY29udHJvbCBhbGwg YXNzaWdubWVudHMgb2YgcGdfZGF0YWJhc2Uub2lkIGJlY2F1c2Ugd2Ugd2FudCB0aGUgZGlyZWN0 b3J5CiAgKgluYW1lcyB0byBtYXRjaCBiZXR3ZWVuIHRoZSBvbGQgYW5kIG5ldyBjbHVzdGVyLgor ICoKKyAqCVdlIGNvbnRyb2wgYXNzaWdubWVudCBvZiBwZ19zdWJzY3JpcHRpb24ub2lkIGJlY2F1 c2Ugd2Ugd2FudCB0aGUgb2lkIHRvCisgKgltYXRjaCBiZXR3ZWVuIHRoZSBvbGQgYW5kIG5ldyBj bHVzdGVyIHRvIG1ha2UgdXNlIG9mIHN1YnNjcmlwdGlvbidzCisgKgljb25mbGljdCBsb2cgdGFi bGUgd2hpY2ggaXMgbmFtZWQgdXNpbmcgdGhlIHN1YnNjcmlwdGlvbiBvaWQuCiAgKi8KIAogCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRfc3Vic2NyaXB0aW9uLnBsIGIvc3Jj L2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbAppbmRleCAzNmYwNTlmYWEyZS4u Mjc3MzE2ODZkODcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3Jp cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbApA QCAtMjkwLDcgKzI5MCw3IEBAICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKICRvbGRfc3ViLT5zYWZl X3BzcWwoCiAJJ3Bvc3RncmVzJywgcXFbCiAJCUNSRUFURSBUQUJMRSB0YWJfdXBncmFkZWQyKGlk IGludCk7Ci0JCUNSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19zdWI1IENPTk5FQ1RJT04gJyRj b25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX3B1YjU7CisJCUNSRUFURSBTVUJTQ1JJUFRJT04g cmVncmVzc19zdWI1IENPTk5FQ1RJT04gJyRjb25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX3B1 YjUgd2l0aCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CiBdKTsKIAogIyBU aGUgdGFibGUgdGFiX3VwZ3JhZGVkMiB3aWxsIGJlIGluIHRoZSBpbml0IHN0YXRlIGFzIHRoZSBz dWJzY3JpYmVyJ3MKQEAgLTMxMiw3ICszMTIsMTAgQEAgbXkgJHRhYl91cGdyYWRlZDFfb2lkID0g JG9sZF9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1Qgb2lkIEZST00gcGdfY2xh c3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJfdXBncmFkZWQxJyIpOwogbXkgJHRhYl91cGdyYWRlZDJf b2lkID0gJG9sZF9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1Qgb2lkIEZST00g cGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd0YWJfdXBncmFkZWQyJyIpOwotCitteSAkc3ViNV9v aWQgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBvaWQgRlJPTSBw Z19zdWJzY3JpcHRpb24gd2hlcmUgc3VibmFtZSA9ICdyZWdyZXNzX3N1YjUnIik7CitteSAkc3Vi X2NsdF9yZWxpZCA9ICRvbGRfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHN1 YmNvbmZsaWN0bG9ncmVsaWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdy ZWdyZXNzX3N1YjUnIik7CiAkb2xkX3N1Yi0+c3RvcDsKIAogIyBDaGFuZ2UgY29uZmlndXJhdGlv biBzbyB0aGF0IGluaXRpYWwgdGFibGUgc3luYyBkb2VzIG5vdCBnZXQgc3RhcnRlZApAQCAtMzk0 LDYgKzM5NywxMyBAQCAkcmVzdWx0ID0gJG5ld19zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAog KTsKIGlzKCRyZXN1bHQsIHFxKHQpLCAiY29uZmxpY3QgZGV0ZWN0aW9uIHNsb3QgZXhpc3RzIik7 CiAKKyMgVGhlIHN1YnNjcmlwdGlvbiBvaWQgYW5kIHRoZSBzdWJzY3JpcHRpb24gY29uZmxpY3Qg bG9nIHRhYmxlIHJlbGlkIHNob3VsZCBiZSBwcmVzZXJ2ZWQKKyRyZXN1bHQgPSAkbmV3X3N1Yi0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qgb2lkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdI RVJFIHN1Ym5hbWUgPSAncmVncmVzc19zdWI1JyIpOworaXMoJHJlc3VsdCwgcXEoJHN1YjVfb2lk KSwgInN1YnNjcmlwdGlvbiBvaWQgc2hvdWxkIGhhdmUgYmVlbiBwcmVzZXJ2ZWQiKTsKKworJHJl c3VsdCA9ICRuZXdfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBzdWJjb25mbGlj dGxvZ3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19z dWI1JyIpOworaXMoJHJlc3VsdCwgcXEoJHN1Yl9jbHRfcmVsaWQpLCAic3Vic2NyaXB0aW9uIGNv bmZsaWN0IGxvZyB0YWJsZSByZWxpZCBzaG91bGQgaGF2ZSBiZWVuIHByZXNlcnZlZCIpOworCiAj IFJlc3VtZSB0aGUgaW5pdGlhbCBzeW5jIGFuZCB3YWl0IHVudGlsIGFsbCB0YWJsZXMgb2Ygc3Vi c2NyaXB0aW9uCiAjICdyZWdyZXNzX3N1YjUnIGFyZSBzeW5jaHJvbml6ZWQKICRuZXdfc3ViLT5h cHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvYmluYXJ5X3VwZ3JhZGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3Jh ZGUuaAppbmRleCA3YmY3YWU0NDM4NS4uYjE1YjE4ZTdkYzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3JhZGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2Jp bmFyeV91cGdyYWRlLmgKQEAgLTMyLDYgKzMyLDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIFJlbEZp bGVOdW1iZXIgYmluYXJ5X3VwZ3JhZGVfbmV4dF90b2FzdF9wZ19jbGFzc19yZWxmaWxlbnVtYmUK IAogZXh0ZXJuIFBHRExMSU1QT1JUIE9pZCBiaW5hcnlfdXBncmFkZV9uZXh0X3BnX2VudW1fb2lk OwogZXh0ZXJuIFBHRExMSU1QT1JUIE9pZCBiaW5hcnlfdXBncmFkZV9uZXh0X3BnX2F1dGhpZF9v aWQ7CitleHRlcm4gUEdETExJTVBPUlQgT2lkIGJpbmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2Ny aXB0aW9uX29pZDsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgYmluYXJ5X3VwZ3JhZGVfcmVj b3JkX2luaXRfcHJpdnM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGVmZTEzYjc4NjZh Li41NTg3OTVjMTM4ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMTk2Niw2ICsxMTk2 NiwxMCBAQAogICBwcm9pc3N0cmljdCA9PiAnZicsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcGFy YWxsZWwgPT4gJ3UnLAogICBwcm9yZXR0eXBlID0+ICd2b2lkJywgcHJvYXJndHlwZXMgPT4gJycs CiAgIHByb3NyYyA9PiAnYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2NvbmZsaWN0X2RldGVjdGlvbl9z bG90JyB9LAoreyBvaWQgPT4gJzg0MDcnLCBkZXNjciA9PiAnZm9yIHVzZSBieSBwZ191cGdyYWRl JywKKyAgcHJvbmFtZSA9PiAnYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9u X29pZCcsIHByb3ZvbGF0aWxlID0+ICd2JywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0 eXBlID0+ICd2b2lkJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAnYmluYXJ5 X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCcgfSwKIAogIyBjb252ZXJzaW9u IGZ1bmN0aW9ucwogeyBvaWQgPT4gJzQzMTAnLCBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lv biBmdW5jdGlvbiBmb3IgS09JOFIgdG8gV0lOMTI1MScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb24uaAppbmRleCA0MzM4ZTY2MjBiNC4uZTI1NGRlY2I0NGUgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb24uaApAQCAtMjIxLDYgKzIyMSw5IEBAIHR5cGVkZWYgc3RydWN0 IFN1YnNjcmlwdGlvbgogICovCiAjZGVmaW5lIExPR0lDQUxSRVBfU1RSRUFNX1BBUkFMTEVMICdw JwogCisvKiBDb25mbGljdCBsb2cgdGFibGUgbmFtZSBmb3JtYXQuICV1IGlzIHJlcGxhY2VkIHdp dGggdGhlIHN1YnNjcmlwdGlvbiBPSUQuICovCisjZGVmaW5lIENPTkZMSUNUX0xPR19SRUxBVElP Tl9OQU1FX0ZNVCAicGdfY29uZmxpY3RfbG9nXyV1IgorCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NF X1RPX0NMSUVOVF9DT0RFICovCiAKIGV4dGVybiBTdWJzY3JpcHRpb24gKkdldFN1YnNjcmlwdGlv bihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVs ZXMvc3BnaXN0X25hbWVfb3BzL2V4cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQgYi9zcmMvdGVz dC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0Cmlu ZGV4IDFlZTY1ZWRlMjQzLi4zOWQ0MzM2OGM0MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxl cy9zcGdpc3RfbmFtZV9vcHMvZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9leHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0 CkBAIC01OSwxMSArNTksMTIgQEAgc2VsZWN0ICogZnJvbSB0CiAgYmluYXJ5X3VwZ3JhZGVfc2V0 X25leHRfbXVsdGlyYW5nZV9wZ190eXBlX29pZCAgICAgICB8ICAxIHwgYmluYXJ5X3VwZ3JhZGVf c2V0X25leHRfbXVsdGlyYW5nZV9wZ190eXBlX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0 X3BnX2F1dGhpZF9vaWQgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9u ZXh0X3BnX2F1dGhpZF9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19lbnVtX29pZCAg ICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19lbnVtX29p ZAorIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQgICAgICAgICAg fCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQKICBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9wZ190YWJsZXNwYWNlX29pZCAgICAgICAgICAgIHwgICAgfCBi aW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190YWJsZXNwYWNlX29pZAogIGJpbmFyeV91cGdyYWRl X3NldF9uZXh0X3BnX3R5cGVfb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdy YWRlX3NldF9uZXh0X3BnX3R5cGVfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3Rf cGdfY2xhc3Nfb2lkICAgICAgICAgICB8ICAxIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9h c3RfcGdfY2xhc3Nfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3RfcmVsZmlsZW5v ZGUgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3RfcmVsZmls ZW5vZGUKLSgxMyByb3dzKQorKDE0IHJvd3MpCiAKIC0tIFZlcmlmeSBjbGVhbiBmYWlsdXJlIHdo ZW4gSU5DTFVERSdkIGNvbHVtbnMgcmVzdWx0IGluIG92ZXJsZW5ndGggdHVwbGUKIC0tIFRoZSBl cnJvciBtZXNzYWdlIGRldGFpbHMgYXJlIHBsYXRmb3JtLWRlcGVuZGVudCwgc28gc2hvdyBvbmx5 IFNRTFNUQVRFCkBAIC0xMDgsMTEgKzEwOSwxMiBAQCBzZWxlY3QgKiBmcm9tIHQKICBiaW5hcnlf dXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVfb2lkICAgICAgIHwgIDEgfCBiaW5h cnlfdXBncmFkZV9zZXRfbmV4dF9tdWx0aXJhbmdlX3BnX3R5cGVfb2lkCiAgYmluYXJ5X3VwZ3Jh ZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZCAgICAgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3Vw Z3JhZGVfc2V0X25leHRfcGdfYXV0aGlkX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3Bn X2VudW1fb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0 X3BnX2VudW1fb2lkCisgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29p ZCAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9u X29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3RhYmxlc3BhY2Vfb2lkICAgICAgICAg ICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3RhYmxlc3BhY2Vfb2lkCiAgYmlu YXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQgICAgICAgICAgICAgICAgICB8ICAgIHwg YmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfdHlwZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRf bmV4dF90b2FzdF9wZ19jbGFzc19vaWQgICAgICAgICAgIHwgIDEgfCBiaW5hcnlfdXBncmFkZV9z ZXRfbmV4dF90b2FzdF9wZ19jbGFzc19vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90b2Fz dF9yZWxmaWxlbm9kZSAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF90 b2FzdF9yZWxmaWxlbm9kZQotKDEzIHJvd3MpCisoMTQgcm93cykKIAogXHNldCBWRVJCT1NJVFkg c3Fsc3RhdGUKIGluc2VydCBpbnRvIHQgdmFsdWVzKHJlcGVhdCgneHl6enknLCAxMiksIDQyLCBy ZXBlYXQoJ3h5enp5JywgNDAwMCkpOwotLSAKMi40OS4wCgo= --0000000000006aae320655772e96 Content-Type: application/octet-stream; name="v60-0005-Documentation-patch.patch" Content-Disposition: attachment; filename="v60-0005-Documentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0l3qne4 RnJvbSBlMmE0YjFlMjg5MDRjZjUyODJiZTU4NzU0Mjg5NDg5ODU1M2Y3ZDRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hckBEaWxpcC5sb2NhbD4K RGF0ZTogU3VuLCA1IEFwciAyMDI2IDE3OjAyOjAxICswNTMwClN1YmplY3Q6IFtQQVRDSCB2NjAg NS81XSBEb2N1bWVudGF0aW9uIHBhdGNoCgotLS0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAg ICAgICAgICAgICAgICAgIHwgIDIwICsKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAg ICAgICAgICAgIHwgIDEyICsKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwg ICAgIHwgNjY5ICsrKysrKysrKysrKystLS0tLS0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwgIHwgIDEzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJz Y3JpcHRpb24uc2dtbCB8ICA1MSArKwogNSBmaWxlcyBjaGFuZ2VkLCA0OTQgaW5zZXJ0aW9ucygr KSwgMjcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBi L2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCBmYmQwZWJiZjEwZi4uYWI0NWZlYTdlZDYgMTAw 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 Yi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDViZWZlZmQ5YzVh Li5lMWQ2Yzk0MjNiMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp 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= --0000000000006aae320655772e96 Content-Type: application/octet-stream; name="v60-0004-Add-conflict-log-table-information-to-describe-s.patch" Content-Disposition: attachment; filename="v60-0004-Add-conflict-log-table-information-to-describe-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0l3qnb3 RnJvbSA1Nzk0NDBkM2Q5MTIzMmFhMDA1Mzk2MTI0YjlmMjNiN2RjNDcwY2U2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTEgSnVuIDIwMjYgMTc6Mzc6MDQgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2MCA0LzVd 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 eHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IGQyMDFhZDc2NGYwLi41NmQ2YWE5NGE0YyAx 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== --0000000000006aae320655772e96 Content-Type: application/octet-stream; name="v60-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v60-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0l3qn11 RnJvbSA3NzVmZjg3Njg5YTRhMDQ4NGU1ZTA0MjllZTRiMjRiZTkxYzA4MzBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogVHVlLCAzMCBKdW4gMjAyNiAxNjozNDowOCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjYw IDIvNV0gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y 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 L2xvZ2ljYWwvY29uZmxpY3QuYyAgICB8IDc3OCArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICA2NSArLQogc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS91 dGlscy9yZWwuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKy0KIHNyYy90ZXN0L3N1YnNj cmlwdGlvbi9tZXNvbi5idWlsZCAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzBfb3JpZ2luLnBsICAgICAgICAgfCAgIDQgKy0KIHNyYy90ZXN0L3N1YnNjcmlw dGlvbi90LzAzNV9jb25mbGljdHMucGwgICAgICB8ICA0OSArLQogLi4uL3QvMDM5X3BhX2NvbmZs aWN0X2xvZ19sb2NrX3dhaXQucGwgICAgICAgIHwgMjAzICsrKysrCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogMTEgZmlsZXMgY2hhbmdlZCwg MTE0NiBpbnNlcnRpb25zKCspLCA2MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzlfcGFfY29uZmxpY3RfbG9nX2xvY2tfd2FpdC5wbAoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvYXBwbHlwYXJhbGxl bHdvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVs d29ya2VyLmMKaW5kZXggMDEyZDU1ZTlkM2QuLmEzZjViOWIxMjJkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYwpAQCAt OTg2LDcgKzk4Niw2NSBAQCBQYXJhbGxlbEFwcGx5V29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykK IAogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X29yaWdpbihvcmlnaW5uYW1lKTsKIAotCUxvZ2lj YWxQYXJhbGxlbEFwcGx5TG9vcChtcWgpOworCVBHX1RSWSgpOworCXsKKwkJTG9naWNhbFBhcmFs bGVsQXBwbHlMb29wKG1xaCk7CisJfQorCVBHX0NBVENIKCk7CisJeworCQlNZW1vcnlDb250ZXh0 IG9sZGNvbnRleHQ7CisJCUVycm9yRGF0YSAgKmVkYXRhOworCisJCS8qCisJCSAqIFJlc2V0IHRo ZSBvcmlnaW4gc3RhdGUgdG8gcHJldmVudCB0aGUgYWR2YW5jZW1lbnQgb2Ygb3JpZ2luCisJCSAq IHByb2dyZXNzIGlmIHdlIGZhaWwgdG8gYXBwbHkuIE90aGVyd2lzZSwgdGhpcyB3aWxsIHJlc3Vs dCBpbgorCQkgKiB0cmFuc2FjdGlvbiBsb3NzIGFzIHRoYXQgdHJhbnNhY3Rpb24gd29uJ3QgYmUg c2VudCBhZ2FpbiBieSB0aGUKKwkJICogc2VydmVyLgorCQkgKi8KKwkJcmVwbG9yaWdpbl94YWN0 X2NsZWFyKHRydWUpOworCisJCS8qCisJCSAqIENvcHkgdGhlIGVycm9yIGFuZCByZWNvdmVyIHRv IGFuIGlkbGUgc3RhdGUgc28gd2UgY2FuIGluc2VydCB0aGUKKwkJICogZGVmZXJyZWQgY29uZmxp Y3QgbG9nIHR1cGxlIChpZiBhbnkpIGJlZm9yZSByZS10aHJvd2luZy4gIENvcHkgdGhlCisJCSAq IGVycm9yIGludG8gYSBsb25nZXItbGl2ZWQgY29udGV4dCBmaXJzdCwgYXMgaXQgbWF5IGhhdmUg YmVlbiByYWlzZWQKKwkJICogdW5kZXIgRXJyb3JDb250ZXh0LiAgQWxzbyByZXNldCB0aGUgZXJy b3IgY29udGV4dCBzdGFjazogdGhlCisJCSAqIGNhbGxiYWNrcyBpbiBlZmZlY3Qgd2hlbiB0aGUg ZXJyb3Igd2FzIHRocm93biBiZWxvbmcgdG8gdW53b3VuZCBzdGFjaworCQkgKiBmcmFtZXMsIGFu ZCB0aGUgZGVmZXJyZWQgaW5zZXJ0IGluc3RhbGxzIGl0cyBvd24uCisJCSAqLworCQlvbGRjb250 ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFRvcE1lbW9yeUNvbnRleHQpOworCQllZGF0YSA9 IENvcHlFcnJvckRhdGEoKTsKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOwor CisJCUZsdXNoRXJyb3JTdGF0ZSgpOworCQllcnJvcl9jb250ZXh0X3N0YWNrID0gTlVMTDsKKwor CQkvKgorCQkgKiBUZWxsIHRoZSBsZWFkZXIgd2UgZmFpbGVkIGFuZCBhcmUgYWJvdXQgdG8gcmVw b3J0IHRoZSBlcnJvciBhbmQgbG9nCisJCSAqIHRoZSBjb25mbGljdC4gIFRoaXMgbXVzdCBiZSBz ZXQgYmVmb3JlIEFib3J0T3V0T2ZBbnlUcmFuc2FjdGlvbigpCisJCSAqIGJlbG93IHJlbGVhc2Vz IHRoZSB0cmFuc2FjdGlvbiBsb2NrIHRoYXQgdGhlIGxlYWRlciB3YWl0cyBvbiBpbgorCQkgKiBw YV93YWl0X2Zvcl94YWN0X2ZpbmlzaCgpOyBvdGhlcndpc2UgdGhlIGxlYWRlciB3b3VsZCBzZWUg YQorCQkgKiBub24tZmluaXNoZWQgc3RhdGUsIGFzc3VtZSB0aGUgY29ubmVjdGlvbiB3YXMgbG9z dCwgYW5kIHRlYXIgdGhpcworCQkgKiB3b3JrZXIgZG93biB3aGlsZSBpdCBpcyBzdGlsbCB3cml0 aW5nIHRoZSBjb25mbGljdCBsb2cgdHVwbGUuCisJCSAqLworCQlwYV9zZXRfeGFjdF9zdGF0ZShN eVBhcmFsbGVsU2hhcmVkLCBQQVJBTExFTF9UUkFOU19FUlJPUik7CisKKwkJQWJvcnRPdXRPZkFu eVRyYW5zYWN0aW9uKCk7CisKKwkJLyoKKwkJICogSW5zZXJ0IHRoZSBkZWZlcnJlZCBjb25mbGlj dCBsb2cgdHVwbGUgYmVmb3JlIHJlLXRocm93aW5nLgorCQkgKiBSZS10aHJvd2luZyBpcyB3aGF0 IHJlcG9ydHMgdGhlIGVycm9yIHRvIHRoZSBsZWFkZXIgKHZpYSB0aGUgZXJyb3IKKwkJICogcXVl dWUgc2V0IHVwIGFib3ZlKSwgc28gdGhlIGluc2VydGlvbiBtdXN0IGhhcHBlbiBmaXJzdDogb3Ro ZXJ3aXNlCisJCSAqIHRoZSBsZWFkZXIgY291bGQgc3RhcnQgdGVhcmluZyBkb3duIHRoaXMgd29y a2VyIHdoaWxlIGl0IGlzIHN0aWxsCisJCSAqIHdyaXRpbmcgdGhlIGNvbmZsaWN0IGxvZyB0dXBs ZS4gIElmIHRoZSBpbnNlcnRpb24gaXRzZWxmIGZhaWxzLCB0aGF0CisJCSAqIGVycm9yIChhbm5v dGF0ZWQgd2l0aCB0aGUgY29uZmxpY3QgY29udGV4dCwgc2VlIEluc2VydENvbmZsaWN0TG9nVHVw bGUpCisJCSAqIHByb3BhZ2F0ZXMgdG8gdGhlIGxlYWRlciBpbnN0ZWFkIG9mIHRoZSBvcmlnaW5h bC4KKwkJICovCisJCVByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpOworCisJCS8qIFJl LXRocm93IHRoZSBvcmlnaW5hbCBlcnJvciwgd2hpY2ggcmVwb3J0cyBpdCB0byB0aGUgbGVhZGVy LiAqLworCQlSZVRocm93RXJyb3IoZWRhdGEpOworCX0KKwlQR19FTkRfVFJZKCk7CiAKIAkvKgog CSAqIFRoZSBwYXJhbGxlbCBhcHBseSB3b3JrZXIgbXVzdCBub3QgZ2V0IGhlcmUgYmVjYXVzZSB0 aGUgcGFyYWxsZWwgYXBwbHkKQEAgLTEzMTQsOSArMTM3MiwzMyBAQCBwYV93YWl0X2Zvcl94YWN0 X2ZpbmlzaChQYXJhbGxlbEFwcGx5V29ya2VySW5mbyAqd2luZm8pCiAJICogcmVsZWFzZWQuCiAJ ICovCiAJaWYgKHBhX2dldF94YWN0X3N0YXRlKHdpbmZvLT5zaGFyZWQpICE9IFBBUkFMTEVMX1RS QU5TX0ZJTklTSEVEKQorCXsKKwkJLyoKKwkJICogSWYgdGhlIHdvcmtlciBzaWduYWxsZWQgdGhh dCBpdCBlcnJvcmVkIChQQVJBTExFTF9UUkFOU19FUlJPUiksIGl0IGlzCisJCSAqIGxvZ2dpbmcg dGhlIGNvbmZsaWN0IGFuZCB3aWxsIHJlcG9ydCB0aGUgYWN0dWFsIGVycm9yIHZpYSB0aGUgZXJy b3IKKwkJICogcXVldWUgYmVmb3JlIGV4aXRpbmcuICBXYWl0IGZvciB0aGF0IHJhdGhlciB0aGFu IHJlcG9ydGluZyBhIGdlbmVyaWMKKwkJICogbG9zdCBjb25uZWN0aW9uOiBDSEVDS19GT1JfSU5U RVJSVVBUUygpIGRyaXZlcworCQkgKiBQcm9jZXNzUGFyYWxsZWxBcHBseU1lc3NhZ2VzKCksIHdo aWNoIHJhaXNlcyB0aGUgcmVhbCBlcnJvciBvbiB0aGUKKwkJICogd29ya2VyJ3MgRXJyb3JSZXNw b25zZSAob3IgImxvc3QgY29ubmVjdGlvbiIgaWYgdGhlIHdvcmtlciBkaWVkCisJCSAqIHdpdGhv dXQgcmVwb3J0aW5nKS4gIFdhaXRpbmcgaGVyZSBhbHNvIGtlZXBzIHRoZSB3b3JrZXIgYWxpdmUg bG9uZworCQkgKiBlbm91Z2ggdG8gZmluaXNoIHdyaXRpbmcgdGhlIGNvbmZsaWN0IGxvZyB0dXBs ZS4KKwkJICovCisJCXdoaWxlIChwYV9nZXRfeGFjdF9zdGF0ZSh3aW5mby0+c2hhcmVkKSA9PSBQ QVJBTExFTF9UUkFOU19FUlJPUikKKwkJeworCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwor CQkJKHZvaWQpIFdhaXRMYXRjaChNeUxhdGNoLAorCQkJCQkJCSBXTF9MQVRDSF9TRVQgfCBXTF9U SU1FT1VUIHwgV0xfRVhJVF9PTl9QTV9ERUFUSCwKKwkJCQkJCQkgMTBMLAorCQkJCQkJCSBXQUlU X0VWRU5UX0xPR0lDQUxfUEFSQUxMRUxfQVBQTFlfU1RBVEVfQ0hBTkdFKTsKKworCQkJUmVzZXRM YXRjaChNeUxhdGNoKTsKKwkJfQorCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygibG9z dCBjb25uZWN0aW9uIHRvIHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIGFwcGx5IHdv cmtlciIpKSk7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9j b25mbGljdC5jCmluZGV4IDViMTdlZDQxZjRiLi44MzM4YThjZTExMSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTYsMTcgKzE2LDI1IEBACiAKICNp bmNsdWRlICJhY2Nlc3MvY29tbWl0X3RzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCisj aW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCisj aW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL2hlYXAuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0 b3IuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vY29uZmxpY3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJf aW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvaW5q ZWN0aW9uX3BvaW50LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAi dXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKIAogLyoKICAqIFN0 cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIHRoZSBzdXBwb3J0ZWQgY29uZmxpY3QgbG9nZ2luZyBk ZXN0aW5hdGlvbnMuCkBAIC00MCw3ICs0OCw2IEBAIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0 TG9nRGVzdE5hbWVzW10gPSB7CiBTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9mKENvbmZsaWN0TG9n RGVzdE5hbWVzKSA9PSBDT05GTElDVF9MT0dfREVTVF9BTEwgKyAxLAogCQkJCSAiQ29uZmxpY3RM b2dEZXN0TmFtZXMgbGVuZ3RoIG1pc21hdGNoIik7CiAKLQogLyogU3RydWN0dXJlIHRvIGhvbGQg bWV0YWRhdGEgZm9yIG9uZSBjb2x1bW4gb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSAqLwogdHlw ZWRlZiBzdHJ1Y3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYKIHsKQEAgLTgxLDYgKzg4LDE4IEBAIHN0 YXRpYyBjb25zdCBDb25mbGljdExvZ0NvbHVtbkRlZiBDb25mbGljdExvZ1NjaGVtYVtdID0gewog CiAjZGVmaW5lIE5VTV9DT05GTElDVF9BVFRSUyBsZW5ndGhvZihDb25mbGljdExvZ1NjaGVtYSkK IAorLyogU2NoZW1hIGZvciB0aGUgZWxlbWVudHMgd2l0aGluIHRoZSAnbG9jYWxfY29uZmxpY3Rz JyBKU09OIGFycmF5ICovCitzdGF0aWMgY29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgTG9jYWxD b25mbGljdFNjaGVtYVtdID0KK3sKKwl7IC5hdHRuYW1lID0gInhpZCIsICAgICAgIC5hdHR0eXBp ZCA9IFhJRE9JRCB9LAorCXsgLmF0dG5hbWUgPSAiY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElN RVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRuYW1lID0gIm9yaWdpbiIsICAgIC5hdHR0eXBpZCA9IFRF WFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gImtleSIsICAgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQg fSwKKwl7IC5hdHRuYW1lID0gInR1cGxlIiwgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfQorfTsK KworI2RlZmluZSBOVU1fTE9DQUxfQ09ORkxJQ1RfQVRUUlMgbGVuZ3Rob2YoTG9jYWxDb25mbGlj dFNjaGVtYSkKKwogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0VHlwZU5hbWVzW10g PSB7CiAJW0NUX0lOU0VSVF9FWElTVFNdID0gImluc2VydF9leGlzdHMiLAogCVtDVF9VUERBVEVf T1JJR0lOX0RJRkZFUlNdID0gInVwZGF0ZV9vcmlnaW5fZGlmZmVycyIsCkBAIC05Miw2ICsxMTEs MjUgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IENvbmZsaWN0VHlwZU5hbWVzW10gPSB7CiAJ W0NUX01VTFRJUExFX1VOSVFVRV9DT05GTElDVFNdID0gIm11bHRpcGxlX3VuaXF1ZV9jb25mbGlj dHMiCiB9OwogCisvKgorICogV29ya2VyLXByaXZhdGUgc3RhdGUgZm9yIGEgY29uZmxpY3QgdGhh dCBoYXMgYmVlbiBwcmVwYXJlZCBmb3IgdGhlIGNvbmZsaWN0CisgKiBsb2cgdGFibGUgYnV0IG5v dCB5ZXQgaW5zZXJ0ZWQuICBJdCBjYXJyaWVzIHRoZSBwcmVwYXJlZCB0dXBsZSwgYW5kIGEKKyAq IGRlc2NyaXB0aW9uIG9mIHRoZSBjb25mbGljdCB1c2VkIGZvciBlcnJvciBjb250ZXh0LCBmcm9t CisgKiBwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZSgpIGFjcm9zcyB0aGUgYXBwbHkgZXJyb3Ig Ym91bmRhcnkgdG8KKyAqIFByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpL0luc2VydENv bmZsaWN0TG9nVHVwbGUoKS4gIEJvdGggcG9pbnRlcnMKKyAqIHJlZmVyZW5jZSBtZW1vcnkgYWxs b2NhdGVkIGluIEFwcGx5Q29udGV4dC4KKyAqCisgKiBUaGlzIGlzIHB1cmVseSBwcm9jZXNzLWxv Y2FsIHN0YXRlLCBzbyBpdCBsaXZlcyBoZXJlIHJhdGhlciB0aGFuIGluIHRoZQorICogc2hhcmVk IExvZ2ljYWxSZXBXb3JrZXIgc3RydWN0LgorICovCit0eXBlZGVmIHN0cnVjdCBQZW5kaW5nQ29u ZmxpY3RMb2dEYXRhCit7CisJSGVhcFR1cGxlCXR1cGxlOwkJCS8qIHByZXBhcmVkLCBub3QteWV0 LWluc2VydGVkIGNvbmZsaWN0IHR1cGxlICovCisJY2hhcgkgICAqZXJyY29udGV4dF9zdHI7CS8q IGNvbmZsaWN0IGRlc2NyaXB0aW9uIGZvciBlcnJvciBjb250ZXh0ICovCit9IFBlbmRpbmdDb25m bGljdExvZ0RhdGE7CisKK3N0YXRpYyBQZW5kaW5nQ29uZmxpY3RMb2dEYXRhIHBlbmRpbmdfY29u ZmxpY3RfbG9nID0gezB9OworCiBzdGF0aWMgaW50CWVycmNvZGVfYXBwbHlfY29uZmxpY3QoQ29u ZmxpY3RUeXBlIHR5cGUpOwogc3RhdGljIHZvaWQgZXJyZGV0YWlsX2FwcGx5X2NvbmZsaWN0KEVT dGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkJIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCkBAIC0xMDgs OCArMTQ2LDI3IEBAIHN0YXRpYyB2b2lkIGdldF90dXBsZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBS ZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNs b3QsIGNoYXIgKipyZW1vdGVfZGVzYywKIAkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzZWFyY2hz bG90LCBjaGFyICoqc2VhcmNoX2Rlc2MsCiAJCQkJCQkgICBPaWQgaW5kZXhvaWQpOworc3RhdGlj IHZvaWQgYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xvdChFU3RhdGUgKmVzdGF0ZSwgUmVsYXRp b24gbG9jYWxyZWwsCisJCQkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LAorCQkJCQkJCQkJ CSBSZWxhdGlvbiBpbmRleERlc2MsIERhdHVtICp2YWx1ZXMsCisJCQkJCQkJCQkJIGJvb2wgKmlz bnVsbCk7CiBzdGF0aWMgY2hhciAqYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0 ZSwgUmVsYXRpb24gbG9jYWxyZWwsCiAJCQkJCQkJCQlUdXBsZVRhYmxlU2xvdCAqc2xvdCwgT2lk IGluZGV4b2lkKTsKK3N0YXRpYyBEYXR1bSB0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0o VHVwbGVUYWJsZVNsb3QgKnNsb3QpOworc3RhdGljIERhdHVtIHR1cGxlX3RhYmxlX3Nsb3RfdG9f aW5kZXh0dXBfanNvbihFU3RhdGUgKmVzdGF0ZSwKKwkJCQkJCQkJCQkJICAgUmVsYXRpb24gbG9j YWxyZWwsCisJCQkJCQkJCQkJCSAgIE9pZCByZXBsaWNhX2luZGV4LAorCQkJCQkJCQkJCQkgICBU dXBsZVRhYmxlU2xvdCAqc2xvdCk7CitzdGF0aWMgVHVwbGVEZXNjIGJ1aWxkX2NvbmZsaWN0X3R1 cGxlZGVzYyh2b2lkKTsKK3N0YXRpYyBEYXR1bSBidWlsZF9sb2NhbF9jb25mbGljdHNfanNvbl9h cnJheShFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJCQkJCQkgIENvbmZsaWN0 VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJCQkJCQkgIExpc3QgKmNvbmZsaWN0dHVwbGVzKTsK K3N0YXRpYyB2b2lkIHByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxlKEVTdGF0ZSAqZXN0YXRlLCBS ZWxhdGlvbiByZWwsCisJCQkJCQkJCQkgICBSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCwKKwkJCQkJ CQkJCSAgIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJCQkJICAgVHVwbGVUYWJs ZVNsb3QgKnNlYXJjaHNsb3QsCisJCQkJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1cGxlcywKKwkJ CQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90KTsKIAogLyoKICAqIEJ1aWxkcyB0 aGUgVHVwbGVEZXNjIGZvciB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLgpAQCAtMjc4LDMwICszMzUs MjIwIEBAIFJlcG9ydEFwcGx5Q29uZmxpY3QoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8g KnJlbGluZm8sIGludCBlbGV2ZWwsCiAJCQkJCUNvbmZsaWN0VHlwZSB0eXBlLCBUdXBsZVRhYmxl U2xvdCAqc2VhcmNoc2xvdCwKIAkJCQkJVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNsb3QsIExpc3Qg KmNvbmZsaWN0dHVwbGVzKQogewotCVJlbGF0aW9uCWxvY2FscmVsID0gcmVsaW5mby0+cmlfUmVs YXRpb25EZXNjOwotCVN0cmluZ0luZm9EYXRhIGVycl9kZXRhaWw7CisJUmVsYXRpb24JCWxvY2Fs cmVsID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUNvbmZsaWN0TG9nRGVzdAlkZXN0Owor CVJlbGF0aW9uCQljb25mbGljdGxvZ3JlbDsKKwlib29sCQkJbG9nX2Rlc3RfdGFibGU7CisJYm9v bCAJCQlsb2dfZGVzdF9sb2dmaWxlOwogCi0JaW5pdFN0cmluZ0luZm8oJmVycl9kZXRhaWwpOwor CXBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2NvbmZsaWN0KE15U3Vic2NyaXB0aW9uLT5vaWQs IHR5cGUpOwogCi0JLyogRm9ybSBlcnJkZXRhaWwgbWVzc2FnZSBieSBjb21iaW5pbmcgY29uZmxp Y3RpbmcgdHVwbGVzIGluZm9ybWF0aW9uLiAqLwotCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJ bmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykKLQkJZXJyZGV0YWlsX2FwcGx5X2Nv bmZsaWN0KGVzdGF0ZSwgcmVsaW5mbywgdHlwZSwgc2VhcmNoc2xvdCwKLQkJCQkJCQkJIGNvbmZs aWN0dHVwbGUtPnNsb3QsIHJlbW90ZXNsb3QsCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT5pbmRl eG9pZCwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPnhtaW4sCi0JCQkJCQkJCSBjb25mbGljdHR1 cGxlLT5vcmlnaW4sCi0JCQkJCQkJCSBjb25mbGljdHR1cGxlLT50cywKLQkJCQkJCQkJICZlcnJf ZGV0YWlsKTsKKwkvKgorCSAqIEdldCB0aGUgY29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uLiAgQWxz bywgaWYgYSB0YWJsZSBpcyBvbmUgb2YgdGhlCisJICogZGVzdGluYXRpb25zLCByZXR1cm4gdGhl IENMVCByZWxhdGlvbiBhbHJlYWR5IG9wZW5lZCBhbmQgcmVhZHkgZm9yCisJICogaW5zZXJ0aW9u IC0tIG9yIE5VTEwgaWYgaXQgaGFzIGJlZW4gZHJvcHBlZCBjb25jdXJyZW50bHkuCisJICovCisJ Y29uZmxpY3Rsb2dyZWwgPSBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZSgmZGVzdCk7CiAKLQlw Z3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9jb25mbGljdChNeVN1YnNjcmlwdGlvbi0+b2lkLCB0 eXBlKTsKKwlsb2dfZGVzdF90YWJsZSA9IENPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUoZGVzdCk7 CisJbG9nX2Rlc3RfbG9nZmlsZSA9IENPTkZMSUNUU19MT0dHRURfVE9fTE9HKGRlc3QpOworCisJ LyoKKwkgKiBJZiBhIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgcmVxdWVzdGVkIGJ1dCBpdCBoYXMg YmVlbiBkcm9wcGVkCisJICogY29uY3VycmVudGx5IChlLmcuIGEgY29uY3VycmVudCBBTFRFUiBT VUJTQ1JJUFRJT04gY2hhbmdlZAorCSAqIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiksIEdldENv bmZsaWN0TG9nRGVzdEFuZFRhYmxlKCkgcmV0dXJuZWQgTlVMTC4KKwkgKiBGYWxsIGJhY2sgdG8g bG9nZ2luZyB0aGUgZnVsbCBjb25mbGljdCBkZXRhaWxzIHRvIHRoZSBzZXJ2ZXIgbG9nIHNvIHRo YXQKKwkgKiB0aGUgY29uZmxpY3QgaXMgbm90IGxvc3QuCisJICovCisJaWYgKGxvZ19kZXN0X3Rh YmxlICYmIGNvbmZsaWN0bG9ncmVsID09IE5VTEwpCisJeworCQlsb2dfZGVzdF90YWJsZSA9IGZh bHNlOworCQlsb2dfZGVzdF9sb2dmaWxlID0gdHJ1ZTsKKwl9CisKKwkvKgorCSAqIFByZXBhcmUg dGhlIGNvbmZsaWN0IGxvZyB0dXBsZSBmaXJzdCB3aGVuIHRoZSBkZXN0aW5hdGlvbiBpbmNsdWRl cyB0aGUKKwkgKiB0YWJsZS4gIFRoaXMgbXVzdCBoYXBwZW4gYmVmb3JlIHRoZSBlcmVwb3J0KCkg YmVsb3csIGJlY2F1c2UgZm9yIGFuCisJICogRVJST1ItbGV2ZWwgY29uZmxpY3QgdGhhdCBlcmVw b3J0KCkgcmFpc2VzIHRoZSBlcnJvciBhbmQgZGVmZXJzIHRoZQorCSAqIGFjdHVhbCBpbnNlcnRp b24gdG8gUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCksIHdoaWNoIHJlbGllcyBvbiB0 aGUKKwkgKiB0dXBsZSBoYXZpbmcgYmVlbiBwcmVwYXJlZC4KKwkgKi8KKwlpZiAobG9nX2Rlc3Rf dGFibGUpCisJeworCQlBc3NlcnQoY29uZmxpY3Rsb2dyZWwgIT0gTlVMTCk7CisJCXByZXBhcmVf Y29uZmxpY3RfbG9nX3R1cGxlKGVzdGF0ZSwKKwkJCQkJCQkJICAgcmVsaW5mby0+cmlfUmVsYXRp b25EZXNjLAorCQkJCQkJCQkgICBjb25mbGljdGxvZ3JlbCwKKwkJCQkJCQkJICAgdHlwZSwKKwkJ CQkJCQkJICAgc2VhcmNoc2xvdCwKKwkJCQkJCQkJICAgY29uZmxpY3R0dXBsZXMsCisJCQkJCQkJ CSAgIHJlbW90ZXNsb3QpOworCX0KKworCS8qCisJICogUmVwb3J0IHRoZSBjb25mbGljdCB0byB0 aGUgc2VydmVyIGxvZyBiZWZvcmUgaW5zZXJ0aW5nIGl0IGludG8gdGhlCisJICogY29uZmxpY3Qg bG9nIHRhYmxlLiAgRW1pdHRpbmcgaXQgZmlyc3QgZ3VhcmFudGVlcyB0aGUgY29uZmxpY3QgaXMK KwkgKiByZWNvcmRlZCBldmVuIGlmIHRoZSB0YWJsZSBpbnNlcnQgYmVsb3cgZmFpbHM7IGl0IGlz IGFsc28gd2hhdCByYWlzZXMgdGhlCisJICogZXJyb3IgZm9yIEVSUk9SLWxldmVsIGNvbmZsaWN0 cy4gIFdoZW4gdGhlIHNlcnZlciBsb2cgaXMgb25lIG9mIHRoZQorCSAqIGRlc3RpbmF0aW9ucyB3 ZSBlbWl0IHRoZSBmdWxsIGRldGFpbHMsIG90aGVyd2lzZSAodGFibGUtb25seSkgd2UgZW1pdCBh CisJICogc2hvcnRlciBtZXNzYWdlIHNpbmNlIHRoZSBkZXRhaWxzIGFyZSBjYXB0dXJlZCBpbiB0 aGUgdGFibGUuCisJICovCisJaWYgKGxvZ19kZXN0X2xvZ2ZpbGUpCisJeworCQlTdHJpbmdJbmZv RGF0YQllcnJfZGV0YWlsOworCisJCWluaXRTdHJpbmdJbmZvKCZlcnJfZGV0YWlsKTsKKworCQkv KiBGb3JtIGVycmRldGFpbCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBsZXMg aW5mb3JtYXRpb24uICovCisJCWZvcmVhY2hfcHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGlj dHR1cGxlLCBjb25mbGljdHR1cGxlcykKKwkJCWVycmRldGFpbF9hcHBseV9jb25mbGljdChlc3Rh dGUsIHJlbGluZm8sIHR5cGUsIHNlYXJjaHNsb3QsCisJCQkJCQkJCQljb25mbGljdHR1cGxlLT5z bG90LCByZW1vdGVzbG90LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+aW5kZXhvaWQsCisJCQkJ CQkJCQljb25mbGljdHR1cGxlLT54bWluLAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+b3JpZ2lu LAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+dHMsCisJCQkJCQkJCQkmZXJyX2RldGFpbCk7CisK KwkJLyogU3RhbmRhcmQgcmVwb3J0aW5nIHdpdGggZnVsbCBpbnRlcm5hbCBkZXRhaWxzLiAqLwor CQllcmVwb3J0KGVsZXZlbCwKKwkJCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUpLAorCQkJ CWVycm1zZygiY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gXCIlc1wiOiBjb25mbGljdD0l cyIsCisJCQkJCSAgIFJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKGxvY2FscmVsKSwK KwkJCQkJICAgQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFpbF9pbnRlcm5h bCgiJXMiLCBlcnJfZGV0YWlsLmRhdGEpKTsKKwl9CisJZWxzZSBpZiAobG9nX2Rlc3RfdGFibGUp CisJeworCQkvKgorCQkgKiBOb3QgbG9nZ2luZyBjb25mbGljdCBkZXRhaWxzIHRvIHRoZSBzZXJ2 ZXIgbG9nOyByZXBvcnQgdGhlIGNvbmZsaWN0CisJCSAqIGJ1dCBvbWl0IHJhdyB0dXBsZSBkYXRh IHNpbmNlIGl0IGlzIGNhcHR1cmVkIGluIHRoZSBjb25mbGljdCBsb2cKKwkJICogdGFibGUuCisJ CSAqLworCQllcmVwb3J0KGVsZXZlbCwKKwkJCQllcnJjb2RlX2FwcGx5X2NvbmZsaWN0KHR5cGUp LAorCQkJCWVycm1zZygiY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gXCIlc1wiOiBjb25m bGljdD0lcyIsCisJCQkJCVJlbGF0aW9uR2V0UXVhbGlmaWVkUmVsYXRpb25OYW1lKGxvY2FscmVs KSwKKwkJCQkJQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAorCQkJCWVycmRldGFpbCgiQ29uZmxp Y3QgZGV0YWlscyBhcmUgbG9nZ2VkIHRvIHRoZSBjb25mbGljdCBsb2cgdGFibGU6ICVzIiwKKwkJ CQkJCSAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoY29uZmxpY3Rsb2dyZWwpKSk7CisJfQorCisJ LyoKKwkgKiBJbnNlcnQgaW50byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlmIHJlcXVlc3RlZC4g IEZvciBjb25mbGljdHMgYmVsb3cKKwkgKiBFUlJPUiB0aGUgYXBwbHkgdHJhbnNhY3Rpb24gY29u dGludWVzLCBzbyBpbnNlcnQgaW1tZWRpYXRlbHk7IGZvcgorCSAqIEVSUk9SLWxldmVsIGNvbmZs aWN0cyB0aGUgZXJlcG9ydCgpIGFib3ZlIGFscmVhZHkgcmFpc2VkIHRoZSBlcnJvciBhbmQKKwkg KiB0aGUgaW5zZXJ0aW9uIGlzIGRlZmVycmVkIHRvIGEgbmV3IHRyYW5zYWN0aW9uCisJICogKFBy b2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSkgc28gdGhhdCBpdCBpcyBub3Qgcm9sbGVkIGJh Y2suCisJICovCisJaWYgKGxvZ19kZXN0X3RhYmxlKQorCXsKKwkJaWYgKGVsZXZlbCA8IEVSUk9S KQorCQl7CisJCQlQR19UUlkoKTsKKwkJCXsKKwkJCQlJbnNlcnRDb25mbGljdExvZ1R1cGxlKGNv bmZsaWN0bG9ncmVsKTsKKwkJCX0KKwkJCVBHX0NBVENIKCk7CisJCQl7CisJCQkJLyoKKwkJCQkg KiBUaGUgaW5zZXJ0IGZhaWxlZCwgc28gdGhlIGFwcGx5IHRyYW5zYWN0aW9uIHdpbGwgYWJvcnQg YW5kCisJCQkJICogdGhlIGVycm9yIHdpbGwgcHJvcGFnYXRlIHRvIHRoZSB3b3JrZXIncyBlcnJv ciBoYW5kbGVyLiAgVGhlCisJCQkJICogY29uZmxpY3Qgd2FzIGFscmVhZHkgcmVwb3J0ZWQgdG8g dGhlIHNlcnZlciBsb2cgYWJvdmUsIHNvIGl0CisJCQkJICogaXMgbm90IGxvc3QuICBEaXNjYXJk IHRoZSBwcmVwYXJlZCB0dXBsZSBzbyB0aGF0IHRoZSBkZWZlcnJlZAorCQkJCSAqIGluc2VydGlv biBwYXRoIChQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUpIGRvZXMgbm90IHJldHJ5CisJ CQkJICogdGhpcyBzYW1lIGZhaWxpbmcgaW5zZXJ0LgorCQkJCSAqLworCQkJCWlmIChwZW5kaW5n X2NvbmZsaWN0X2xvZy50dXBsZSAhPSBOVUxMKQorCQkJCXsKKwkJCQkJaGVhcF9mcmVldHVwbGUo cGVuZGluZ19jb25mbGljdF9sb2cudHVwbGUpOworCQkJCQlwZW5kaW5nX2NvbmZsaWN0X2xvZy50 dXBsZSA9IE5VTEw7CisJCQkJfQorCQkJCWlmIChwZW5kaW5nX2NvbmZsaWN0X2xvZy5lcnJjb250 ZXh0X3N0ciAhPSBOVUxMKQorCQkJCXsKKwkJCQkJcGZyZWUocGVuZGluZ19jb25mbGljdF9sb2cu ZXJyY29udGV4dF9zdHIpOworCQkJCQlwZW5kaW5nX2NvbmZsaWN0X2xvZy5lcnJjb250ZXh0X3N0 ciA9IE5VTEw7CisJCQkJfQorCQkJCVBHX1JFX1RIUk9XKCk7CisJCQl9CisJCQlQR19FTkRfVFJZ KCk7CisJCX0KKworCQl0YWJsZV9jbG9zZShjb25mbGljdGxvZ3JlbCwgUm93RXhjbHVzaXZlTG9j ayk7CisJfQorfQorCisvKgorICogUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlCisgKiAg ICAgIEluc2VydCBhbnkgZGVmZXJyZWQgY29uZmxpY3QgbG9nIHR1cGxlIGluIGEgc2VwYXJhdGUg dHJhbnNhY3Rpb24uCisgKgorICogRm9yIGNvbmZsaWN0cyByYWlzZWQgYXQgRVJST1IgbGV2ZWws IHRoZSBjb25mbGljdCBsb2cgdHVwbGUgY2Fubm90IGJlCisgKiBpbnNlcnRlZCBpbW1lZGlhdGVs eSBiZWNhdXNlIHRoZSBzdXJyb3VuZGluZyB0cmFuc2FjdGlvbiB3aWxsIGFib3J0LgorICogVG8g ZW5zdXJlIHRoYXQgY29uZmxpY3QgaW5mb3JtYXRpb24gaXMgbm90IGxvc3QsIHN1Y2ggdHVwbGVz IGFyZSBwcmVwYXJlZAorICogZHVyaW5nIGVycm9yIHByb2Nlc3NpbmcgKHNlZSBwcmVwYXJlX2Nv bmZsaWN0X2xvZ190dXBsZSgpKSBidXQgdGhlaXIKKyAqIGluc2VydGlvbiBpcyBkZWZlcnJlZC4K KyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBjb21wbGV0aW5nIHRoYXQg ZGVmZXJyZWQgaW5zZXJ0aW9uIGFmdGVyCisgKiB0aGUgZmFpbGluZyB0cmFuc2FjdGlvbiBoYXMg YmVlbiBhYm9ydGVkIGFuZCB0aGUgc3lzdGVtIGhhcyByZXR1cm5lZCB0byBhbgorICogaWRsZSBz dGF0ZS4gIEl0IGV4ZWN1dGVzIHRoZSBpbnNlcnRpb24gaW4gYSBuZXcsIGluZGVwZW5kZW50IHRy YW5zYWN0aW9uLAorICogZW5zdXJpbmcgdGhhdCB0aGUgY29uZmxpY3QgbG9nIGVudHJ5IGlzIGR1 cmFibGUgYW5kIG5vdCByb2xsZWQgYmFjaworICogdG9nZXRoZXIgd2l0aCB0aGUgZmFpbGVkIGFw cGx5IHRyYW5zYWN0aW9uLgorICovCit2b2lkCitQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVw bGUodm9pZCkKK3sKKwlSZWxhdGlvbgljb25mbGljdGxvZ3JlbDsKKwlDb25mbGljdExvZ0Rlc3Qg ZGVzdDsKKworCS8qIE5vdGhpbmcgdG8gZG8gKi8KKwlpZiAocGVuZGluZ19jb25mbGljdF9sb2cu dHVwbGUgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJbnNlcnQgdGhlIGRlZmVycmVk IGNvbmZsaWN0IGxvZyB0dXBsZSBpbiBpdHMgb3duIHRyYW5zYWN0aW9uLiAgQQorCSAqIGZhaWx1 cmUgaGVyZSAoZS5nLiBhbiBvdXQtb2YtZGlzay1zcGFjZSBlcnJvcikgaXMgdHJlYXRlZCBsaWtl IGFueSBvdGhlcgorCSAqIGFwcGx5IGVycm9yIGFuZCByYWlzZXMgYW4gRVJST1I7IHN1Y2ggZmFp bHVyZXMgYXJlIGV4cGVjdGVkIHRvIGJlIHJhcmUKKwkgKiBhbmQgcGVyc2lzdGVudC4gIENhbGxl cnMgbXVzdCB0aGVyZWZvcmUgaGF2ZSBhbHJlYWR5IHJlcG9ydGVkIChhbmQKKwkgKiBjbGVhcmVk KSBhbnkgaW4tcHJvZ3Jlc3MgYXBwbHkgZXJyb3IgYmVmb3JlIGNhbGxpbmcgdGhpcywgc28gdGhh dCB0aGlzCisJICogZXJyb3IgZG9lcyBub3QgbWFzayB0aGUgb3JpZ2luYWwgb25lLgorCSAqLwor CVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5z YWN0aW9uU25hcHNob3QoKSk7CisKKwkvKgorCSAqIFRlc3QgaG9vazogcGF1c2UgaGVyZSBzbyBh IFRBUCB0ZXN0IGNhbiB0YWtlIGEgY29uZmxpY3RpbmcgbG9jayBvbgorCSAqIHRoZSBjb25mbGlj dCBsb2cgdGFibGUgYmVmb3JlIHRoaXMgdHJhbnNhY3Rpb24gdHJpZXMgdG8gb3BlbiBpdC4KKwkg KiBTZWUgc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM5X3BhX2NvbmZsaWN0X2xvZ19sb2NrX3dh aXQucGwuCisJICovCisJSU5KRUNUSU9OX1BPSU5UKCJjbHQtcGVuZGluZy1mbHVzaC1iZWZvcmUt b3BlbiIsIE5VTEwpOwogCi0JZXJlcG9ydChlbGV2ZWwsCi0JCQllcnJjb2RlX2FwcGx5X2NvbmZs aWN0KHR5cGUpLAotCQkJZXJybXNnKCJjb25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVz LiVzXCI6IGNvbmZsaWN0PSVzIiwKLQkJCQkgICBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25H ZXROYW1lc3BhY2UobG9jYWxyZWwpKSwKLQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShs b2NhbHJlbCksCi0JCQkJICAgQ29uZmxpY3RUeXBlTmFtZXNbdHlwZV0pLAotCQkJZXJyZGV0YWls X2ludGVybmFsKCIlcyIsIGVycl9kZXRhaWwuZGF0YSkpOworCS8qIE9wZW4gdGhlIGNvbmZsaWN0 IGxvZyB0YWJsZSBhbmQgaW5zZXJ0IHRoZSB0dXBsZS4gKi8KKwljb25mbGljdGxvZ3JlbCA9IEdl dENvbmZsaWN0TG9nRGVzdEFuZFRhYmxlKCZkZXN0KTsKKworCWlmIChjb25mbGljdGxvZ3JlbCAh PSBOVUxMKQorCXsKKwkJSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisJ CXRhYmxlX2Nsb3NlKGNvbmZsaWN0bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwl9CisJZWxz ZQorCXsKKwkJLyoKKwkJICogVGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgZHJvcHBlZCBjb25j dXJyZW50bHkgKGUuZy4gYnkgYW4gQUxURVIKKwkJICogU1VCU0NSSVBUSU9OIHRoYXQgY2hhbmdl ZCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24pIGFmdGVyIHRoZQorCQkgKiBjb25mbGljdCB3YXMg YWxyZWFkeSByZXBvcnRlZCB0byB0aGUgc2VydmVyIGxvZyBieQorCQkgKiBSZXBvcnRBcHBseUNv bmZsaWN0KCkuICBOb3RoaW5nIG1vcmUgdG8gZG87IGp1c3QgZGlzY2FyZCB0aGUgcHJlcGFyZWQK KwkJICogdHVwbGUgYW5kIGl0cyBjb250ZXh0IHN0cmluZy4KKwkJICovCisJCWhlYXBfZnJlZXR1 cGxlKHBlbmRpbmdfY29uZmxpY3RfbG9nLnR1cGxlKTsKKwkJcGVuZGluZ19jb25mbGljdF9sb2cu dHVwbGUgPSBOVUxMOworCQlpZiAocGVuZGluZ19jb25mbGljdF9sb2cuZXJyY29udGV4dF9zdHIp CisJCXsKKwkJCXBmcmVlKHBlbmRpbmdfY29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3RyKTsKKwkJ CXBlbmRpbmdfY29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3RyID0gTlVMTDsKKwkJfQorCX0KKwor CVBvcEFjdGl2ZVNuYXBzaG90KCk7CisJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiB9CiAK IC8qCkBAIC0zMzUsNiArNTgyLDk4IEBAIEluaXRDb25mbGljdEluZGV4ZXMoUmVzdWx0UmVsSW5m byAqcmVsSW5mbykKIAlyZWxJbmZvLT5yaV9vbkNvbmZsaWN0QXJiaXRlckluZGV4ZXMgPSB1bmlx dWVJbmRleGVzOwogfQogCisvKgorICogR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUKKyAqCisg KiBGZXRjaGVzIGNvbmZsaWN0IGxvZ2dpbmcgbWV0YWRhdGEgZnJvbSB0aGUgY2FjaGVkIE15U3Vi c2NyaXB0aW9uIHBvaW50ZXIuCisgKiBTZXRzIHRoZSBkZXN0aW5hdGlvbiBlbnVtIGluICpsb2df ZGVzdCBhbmQsIGlmIGEgdGFibGUgaXMgb25lIG9mIHRoZQorICogZGVzdGluYXRpb25zLCBvcGVu cyBhbmQgcmV0dXJucyB0aGUgcmVsYXRpb24gaGFuZGxlIGZvciB0aGUgY29uZmxpY3QgbG9nCisg KiB0YWJsZS4KKyAqCisgKiBUaGUgdGFibGUgaXMgb3BlbmVkIHdpdGggdHJ5X3RhYmxlX29wZW4o KSwgc28gTlVMTCBpcyByZXR1cm5lZCBpZiB0aGUKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBoYXMg YmVlbiBkcm9wcGVkIGNvbmN1cnJlbnRseSAoZS5nLiBieSBhbiBBTFRFUgorICogU1VCU0NSSVBU SU9OIHRoYXQgY2hhbmdlZCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24pLiAgQ2FsbGVycyBtdXN0 IHRyZWF0IGEKKyAqIE5VTEwgcmVzdWx0IGZvciBhIHRhYmxlIGRlc3RpbmF0aW9uIGFzICJ0YWJs ZSB1bmF2YWlsYWJsZSIgYW5kIGZhbGwgYmFjayB0bworICogc2VydmVyLWxvZyByZXBvcnRpbmcg cmF0aGVyIHRoYW4gZmFpbGluZy4KKyAqLworUmVsYXRpb24KK0dldENvbmZsaWN0TG9nRGVzdEFu ZFRhYmxlKENvbmZsaWN0TG9nRGVzdCAqbG9nX2Rlc3QpCit7CisJT2lkCQkJY29uZmxpY3Rsb2dy ZWxpZDsKKworCS8qCisJICogQ29udmVydCB0aGUgdGV4dCBsb2cgZGVzdGluYXRpb24gdG8gdGhl IGludGVybmFsIGVudW0uICBNeVN1YnNjcmlwdGlvbgorCSAqIGFscmVhZHkgY29udGFpbnMgdGhl IGRhdGEgZnJvbSBwZ19zdWJzY3JpcHRpb24uCisJICovCisJKmxvZ19kZXN0ID0gR2V0Q29uZmxp Y3RMb2dEZXN0KE15U3Vic2NyaXB0aW9uLT5jb25mbGljdGxvZ2Rlc3QpOworCisJLyogUXVpY2sg ZXhpdCBpZiBhIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgbm90IHJlcXVlc3RlZC4gKi8KKwlpZiAo IUNPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUoKmxvZ19kZXN0KSkKKwkJcmV0dXJuIE5VTEw7CisK Kwljb25mbGljdGxvZ3JlbGlkID0gTXlTdWJzY3JpcHRpb24tPmNvbmZsaWN0bG9ncmVsaWQ7CisK KwlBc3NlcnQoT2lkSXNWYWxpZChjb25mbGljdGxvZ3JlbGlkKSk7CisKKwkvKgorCSAqIFVzZSB0 cnlfdGFibGVfb3BlbigpOiB0aGUgdGFibGUgbWF5IGhhdmUgYmVlbiBkcm9wcGVkIGNvbmN1cnJl bnRseSBieSBhbgorCSAqIEFMVEVSIFNVQlNDUklQVElPTiB0aGF0IGNoYW5nZWQgY29uZmxpY3Rf bG9nX2Rlc3RpbmF0aW9uLiAgUmV0dXJuaW5nIE5VTEwKKwkgKiBsZXRzIHRoZSBjYWxsZXIgZmFs bCBiYWNrIHRvIHRoZSBzZXJ2ZXIgbG9nIGluc3RlYWQgb2YgZmFpbGluZy4KKwkgKi8KKwlyZXR1 cm4gdHJ5X3RhYmxlX29wZW4oY29uZmxpY3Rsb2dyZWxpZCwgUm93RXhjbHVzaXZlTG9jayk7Cit9 CisKKy8qCisgKiBFcnJvciBjb250ZXh0IGNhbGxiYWNrIGZvciBmYWlsdXJlcyB3aGlsZSBpbnNl cnRpbmcgaW50byB0aGUgY29uZmxpY3QgbG9nCisgKiB0YWJsZS4gIEFkZHMgYSBsaW5lIGlkZW50 aWZ5aW5nIHRoZSBjb25mbGljdCB0aGF0IHdhcyBiZWluZyBsb2dnZWQuCisgKi8KK3N0YXRpYyB2 b2lkCitjb25mbGljdF9sb2dfaW5zZXJ0X2VycmNvbnRleHQodm9pZCAqYXJnKQoreworCWNoYXIJ ICAgKmN0eCA9IChjaGFyICopIGFyZzsKKworCWlmIChjdHgpCisJCWVycmNvbnRleHQoIiVzIiwg Y3R4KTsKK30KKworLyoKKyAqIEluc2VydENvbmZsaWN0TG9nVHVwbGUKKyAqCisgKiBJbnNlcnQg Y29uZmxpY3QgbG9nIHR1cGxlIGludG8gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLwordm9p ZAorSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShSZWxhdGlvbiBjb25mbGljdGxvZ3JlbCkKK3sKKwlF cnJvckNvbnRleHRDYWxsYmFjayBlcnJjYWxsYmFjazsKKworCS8qIEEgdmFsaWQgdHVwbGUgbXVz dCBiZSBwcmVwYXJlZCBhbmQgc3RvcmVkIGluIE15TG9naWNhbFJlcFdvcmtlci4gKi8KKwlBc3Nl cnQocGVuZGluZ19jb25mbGljdF9sb2cudHVwbGUgIT0gTlVMTCk7CisKKwkvKgorCSAqIFNldCB1 cCBhbiBlcnJvciBjb250ZXh0IHNvIHRoYXQgYSBmYWlsdXJlIHRvIGluc2VydCAoZS5nLiB0aGUg Y29uZmxpY3QKKwkgKiBsb2cgdGFibGUgd2FzIGRyb3BwZWQsIG9yIGFuIG91dC1vZi1zcGFjZSBl cnJvcikgY2FycmllcyBpbmZvcm1hdGlvbgorCSAqIGlkZW50aWZ5aW5nIHRoZSBjb25mbGljdCB3 ZSB3ZXJlIHRyeWluZyB0byBsb2cuCisJICovCisJZXJyY2FsbGJhY2suY2FsbGJhY2sgPSBjb25m bGljdF9sb2dfaW5zZXJ0X2VycmNvbnRleHQ7CisJZXJyY2FsbGJhY2suYXJnID0gcGVuZGluZ19j b25mbGljdF9sb2cuZXJyY29udGV4dF9zdHI7CisJZXJyY2FsbGJhY2sucHJldmlvdXMgPSBlcnJv cl9jb250ZXh0X3N0YWNrOworCWVycm9yX2NvbnRleHRfc3RhY2sgPSAmZXJyY2FsbGJhY2s7CisK KwloZWFwX2luc2VydChjb25mbGljdGxvZ3JlbCwgcGVuZGluZ19jb25mbGljdF9sb2cudHVwbGUs CisJCQkJR2V0Q3VycmVudENvbW1hbmRJZCh0cnVlKSwgMCwgTlVMTCk7CisKKwllcnJvcl9jb250 ZXh0X3N0YWNrID0gZXJyY2FsbGJhY2sucHJldmlvdXM7CisKKwkvKiBGcmVlIHRoZSBjb25mbGlj dCBsb2cgdHVwbGUgYW5kIGl0cyBjb250ZXh0IHN0cmluZy4gKi8KKwloZWFwX2ZyZWV0dXBsZShw ZW5kaW5nX2NvbmZsaWN0X2xvZy50dXBsZSk7CisJcGVuZGluZ19jb25mbGljdF9sb2cudHVwbGUg PSBOVUxMOworCWlmIChwZW5kaW5nX2NvbmZsaWN0X2xvZy5lcnJjb250ZXh0X3N0cikKKwl7CisJ CXBmcmVlKHBlbmRpbmdfY29uZmxpY3RfbG9nLmVycmNvbnRleHRfc3RyKTsKKwkJcGVuZGluZ19j b25mbGljdF9sb2cuZXJyY29udGV4dF9zdHIgPSBOVUxMOworCX0KK30KKwogLyoKICAqIEFkZCBT UUxTVEFURSBlcnJvciBjb2RlIHRvIHRoZSBjdXJyZW50IGNvbmZsaWN0IHJlcG9ydC4KICAqLwpA QCAtNzY4LDYgKzExMDcsNDAgQEAgZ2V0X3R1cGxlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlc3Vs dFJlbEluZm8gKnJlbGluZm8sIENvbmZsaWN0VHlwZSB0eXBlLAogCX0KIH0KIAorLyoKKyAqIEhl bHBlciBmdW5jdGlvbiB0byBleHRyYWN0IHRoZSAicmF3IiBpbmRleCBrZXkgRGF0dW1zIGFuZCB0 aGVpciBudWxsIGZsYWdzCisgKiBmcm9tIGEgVHVwbGVUYWJsZVNsb3QsIGdpdmVuIGFuIGFscmVh ZHkgb3BlbiBpbmRleCBkZXNjcmlwdG9yLgorICogVGhpcyBpcyB0aGUgcmV1c2FibGUgY29yZSBs b2dpYy4KKyAqLworc3RhdGljIHZvaWQKK2J1aWxkX2luZGV4X2RhdHVtc19mcm9tX3Nsb3QoRVN0 YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAq c2xvdCwKKwkJCQkJCQkgUmVsYXRpb24gaW5kZXhEZXNjLCBEYXR1bSAqdmFsdWVzLAorCQkJCQkJ CSBib29sICppc251bGwpCit7CisJVHVwbGVUYWJsZVNsb3QgKnRhYmxlc2xvdCA9IHNsb3Q7CisK KwkvKgorCSAqIElmIHRoZSBzbG90IGlzIGEgdmlydHVhbCBzbG90LCBjb3B5IGl0IGludG8gYSBo ZWFwIHR1cGxlIHNsb3QgYXMKKwkgKiBGb3JtSW5kZXhEYXR1bSBvbmx5IHdvcmtzIHdpdGggaGVh cCB0dXBsZSBzbG90cy4KKwkgKi8KKwlpZiAoVFRTX0lTX1ZJUlRVQUwoc2xvdCkpCisJeworCQkv KiBTbG90IGlzIGNyZWF0ZWQgd2l0aGluIHRoZSBFU3RhdGUncyB0dXBsZSB0YWJsZSAqLworCQl0 YWJsZXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShsb2NhbHJlbCwgJmVzdGF0ZS0+ZXNfdHVwbGVU YWJsZSk7CisJCXRhYmxlc2xvdCA9IEV4ZWNDb3B5U2xvdCh0YWJsZXNsb3QsIHNsb3QpOworCX0K KworCS8qCisJICogSW5pdGlhbGl6ZSBlY3h0X3NjYW50dXBsZSBmb3IgcG90ZW50aWFsIHVzZSBp biBGb3JtSW5kZXhEYXR1bQorCSAqLworCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKS0+ ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNsb3Q7CisKKwkvKiBGb3JtIHRoZSBpbmRleCBkYXR1bXMg Ki8KKwlGb3JtSW5kZXhEYXR1bShCdWlsZEluZGV4SW5mbyhpbmRleERlc2MpLCB0YWJsZXNsb3Qs IGVzdGF0ZSwgdmFsdWVzLAorCQkJCSAgIGlzbnVsbCk7Cit9CisKIC8qCiAgKiBIZWxwZXIgZnVu Y3Rpb25zIHRvIGNvbnN0cnVjdCBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBjb250ZW50cyBvZiBh biBpbmRleAogICogZW50cnkuIFNlZSBCdWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbiBmb3IgZGV0 YWlscy4KQEAgLTc4Myw0MSArMTE1NiwzNTggQEAgYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3Rh dGUgKmVzdGF0ZSwgUmVsYXRpb24gbG9jYWxyZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCVJl bGF0aW9uCWluZGV4RGVzYzsKIAlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAlib29s CQlpc251bGxbSU5ERVhfTUFYX0tFWVNdOwotCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBz bG90OwogCi0JaWYgKCF0YWJsZXNsb3QpCisJaWYgKCFzbG90KQogCQlyZXR1cm4gTlVMTDsKIAog CUFzc2VydChDaGVja1JlbGF0aW9uT2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZl TG9jaywgdHJ1ZSkpOwogCiAJaW5kZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleG9pZCwgTm9Mb2Nr KTsKIAotCS8qCi0JICogSWYgdGhlIHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50 byBhIGhlYXAgdHVwbGUgc2xvdCBhcwotCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0 aCBoZWFwIHR1cGxlIHNsb3RzLgotCSAqLwotCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwli dWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNsb3QsIGluZGV4 RGVzYywgdmFsdWVzLAorCQkJCQkJCQkgaXNudWxsKTsKKworCWluZGV4X3ZhbHVlID0gQnVpbGRJ bmRleFZhbHVlRGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwlpbmRl eF9jbG9zZShpbmRleERlc2MsIE5vTG9jayk7CisKKwlyZXR1cm4gaW5kZXhfdmFsdWU7Cit9CisK Ky8qCisgKiB0dXBsZV90YWJsZV9zbG90X3RvX2pzb25fZGF0dW0KKyAqCisgKiBIZWxwZXIgZnVu Y3Rpb24gdG8gY29udmVydCBhIFR1cGxlVGFibGVTbG90IHRvIEpTT04uCisgKi8KK3N0YXRpYyBE YXR1bQordHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90 KQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlEYXR1bQkJZGF0dW07CisJRGF0dW0JCWpzb247CisK KwlBc3NlcnQoc2xvdCAhPSBOVUxMKTsKKworCXR1cGxlID0gRXhlY0NvcHlTbG90SGVhcFR1cGxl KHNsb3QpOworCWRhdHVtID0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCBzbG90LT50 dHNfdHVwbGVEZXNjcmlwdG9yKTsKKworCWpzb24gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190 b19qc29uLCBkYXR1bSk7CisJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJcmV0dXJuIGpzb247 Cit9CisKKy8qCisgKiB0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24KKyAqCisgKiBG ZXRjaCByZXBsaWNhIGlkZW50aXR5IGtleSBmcm9tIHRoZSB0dXBsZSB0YWJsZSBzbG90IGFuZCBj b252ZXJ0IGludG8gYQorICogSlNPTiBkYXR1bS4KKyAqLworc3RhdGljIERhdHVtCit0dXBsZV90 YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2Fs cmVsLAorCQkJCQkJCQkgIE9pZCBpbmRleGlkLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlS ZWxhdGlvbglpbmRleERlc2M7CisJRGF0dW0JCXZhbHVlc1tJTkRFWF9NQVhfS0VZU107CisJYm9v bAkJaXNudWxsW0lOREVYX01BWF9LRVlTXTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJVHVwbGVEZXNj CXR1cGRlc2M7CisJRGF0dW0JCWRhdHVtOworCisJQXNzZXJ0KHNsb3QgIT0gTlVMTCk7CisKKwlB c3NlcnQoQ2hlY2tSZWxhdGlvbk9pZExvY2tlZEJ5TWUoaW5kZXhpZCwgUm93RXhjbHVzaXZlTG9j aywgdHJ1ZSkpOworCisJaW5kZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleGlkLCBOb0xvY2spOwor CisJYnVpbGRfaW5kZXhfZGF0dW1zX2Zyb21fc2xvdChlc3RhdGUsIGxvY2FscmVsLCBzbG90LCBp bmRleERlc2MsIHZhbHVlcywKKwkJCQkJCQkJIGlzbnVsbCk7CisJdHVwZGVzYyA9IENyZWF0ZVR1 cGxlRGVzY0NvcHkoUmVsYXRpb25HZXREZXNjcihpbmRleERlc2MpKTsKKworCS8qIEJsZXNzIHRo ZSB0dXBkZXNjIHNvIGl0IGNhbiBiZSBsb29rZWQgdXAgYnkgcm93X3RvX2pzb24uICovCisJQmxl c3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKiBGb3JtIHRoZSByZXBsaWNhIGlkZW50aXR5IHR1 cGxlLiAqLworCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgaXNudWxs KTsKKwlkYXR1bSA9IGhlYXBfY29weV90dXBsZV9hc19kYXR1bSh0dXBsZSwgdHVwZGVzYyk7CisK KwloZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisJRnJlZVR1cGxlRGVzYyh0dXBkZXNjKTsKKwlpbmRl eF9jbG9zZShpbmRleERlc2MsIE5vTG9jayk7CisKKwkvKiBDb252ZXJ0IHRvIGEgSlNPTiBkYXR1 bS4gKi8KKwlyZXR1cm4gRGlyZWN0RnVuY3Rpb25DYWxsMShyb3dfdG9fanNvbiwgZGF0dW0pOwor fQorCisvKgorICogYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjCisgKgorICogQnVpbGQgYW5kIGJs ZXNzIGEgdHVwbGUgZGVzY3JpcHRvciBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBiYXNlZCBv biB0aGUKKyAqIHByZWRlZmluZWQgTG9jYWxDb25mbGljdFNjaGVtYS4KKyAqLworc3RhdGljIFR1 cGxlRGVzYworYnVpbGRfY29uZmxpY3RfdHVwbGVkZXNjKHZvaWQpCit7CisJc3RhdGljIFR1cGxl RGVzYyBjYWNoZWRfdHVwZGVzYyA9IE5VTEw7CisKKwlpZiAoY2FjaGVkX3R1cGRlc2MgPT0gTlVM TCkKIAl7Ci0JCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRl LT5lc190dXBsZVRhYmxlKTsKLQkJdGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwg c2xvdCk7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCW9sZGN4dCA9IE1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOworCisJCWNhY2hlZF90dXBkZXNjID0gQ3Jl YXRlVGVtcGxhdGVUdXBsZURlc2MoTlVNX0xPQ0FMX0NPTkZMSUNUX0FUVFJTKTsKKworCQlmb3Ig KGludCBpID0gMDsgaSA8IE5VTV9MT0NBTF9DT05GTElDVF9BVFRSUzsgaSsrKQorCQkJVHVwbGVE ZXNjSW5pdEVudHJ5KGNhY2hlZF90dXBkZXNjLAorCQkJCQkJCSAgIChBdHRyTnVtYmVyKSAoaSAr IDEpLAorCQkJCQkJCSAgIExvY2FsQ29uZmxpY3RTY2hlbWFbaV0uYXR0bmFtZSwKKwkJCQkJCQkg ICBMb2NhbENvbmZsaWN0U2NoZW1hW2ldLmF0dHR5cGlkLAorCQkJCQkJCSAgIC0xLCAwKTsKKwor CQlUdXBsZURlc2NGaW5hbGl6ZShjYWNoZWRfdHVwZGVzYyk7CisKKwkJLyoKKwkJICogQmxlc3Mg b25jZSBzbyBpdCBjYW4gYmUgdXNlZCBhcyBhIFJFQ09SRCB0eXBlIChlLmcuIGZvcgorCQkgKiBy b3dfdG9fanNvbiBvciBvdGhlciByZWNvcmQtYmFzZWQgb3BlcmF0aW9ucykuCisJCSAqLworCQlC bGVzc1R1cGxlRGVzYyhjYWNoZWRfdHVwZGVzYyk7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRv KG9sZGN4dCk7CiAJfQogCi0JLyoKLQkgKiBJbml0aWFsaXplIGVjeHRfc2NhbnR1cGxlIGZvciBw b3RlbnRpYWwgdXNlIGluIEZvcm1JbmRleERhdHVtIHdoZW4KLQkgKiBpbmRleCBleHByZXNzaW9u cyBhcmUgcHJlc2VudC4KLQkgKi8KLQlHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSktPmVj eHRfc2NhbnR1cGxlID0gdGFibGVzbG90OworCXJldHVybiBjYWNoZWRfdHVwZGVzYzsKK30KIAot CS8qCi0JICogVGhlIHZhbHVlcy9udWxscyBhcnJheXMgcGFzc2VkIHRvIEJ1aWxkSW5kZXhWYWx1 ZURlc2NyaXB0aW9uIHNob3VsZCBiZQotCSAqIHRoZSByZXN1bHRzIG9mIEZvcm1JbmRleERhdHVt LCB3aGljaCBhcmUgdGhlICJyYXciIGlucHV0IHRvIHRoZSBpbmRleAotCSAqIEFNLgotCSAqLwot CUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJbmZvKGluZGV4RGVzYyksIHRhYmxlc2xvdCwgZXN0 YXRlLCB2YWx1ZXMsIGlzbnVsbCk7CisvKgorICogQnVpbGRzIHRoZSBsb2NhbCBjb25mbGljdHMg SlNPTiBhcnJheSBjb2x1bW4gZnJvbSB0aGUgbGlzdCBvZgorICogQ29uZmxpY3RUdXBsZUluZm8g b2JqZWN0cy4KKyAqCisgKiBFeGFtcGxlIG91dHB1dCBzdHJ1Y3R1cmU6CisgKiBbIHsgInhpZCI6 ICIxMDAxIiwgImNvbW1pdF90cyI6ICIuLi4iLCAib3JpZ2luIjogIi4uLiIsICJ0dXBsZSI6IHsu Li59IH0sIC4uLiBdCisgKi8KK3N0YXRpYyBEYXR1bQorYnVpbGRfbG9jYWxfY29uZmxpY3RzX2pz b25fYXJyYXkoRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJIENvbmZsaWN0 VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJCQkgTGlzdCAqY29uZmxpY3R0dXBsZXMpCit7CisJ TGlzdENlbGwgICAqbGM7CisJTGlzdAkgICAqanNvbl9kYXR1bXMgPSBOSUw7CisJRGF0dW0JICAg Kmpzb25fZGF0dW1fYXJyYXk7CisJRGF0dW0JCWpzb25fYXJyYXlfZGF0dW07CisJaW50CQkJbnVt X2NvbmZsaWN0czsKKwlpbnQJCQlpOworCWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7 CisJY2hhcgkJdHlwYWxpZ247CisJVHVwbGVEZXNjCXR1cGRlc2M7CiAKLQlpbmRleF92YWx1ZSA9 IEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uKGluZGV4RGVzYywgdmFsdWVzLCBpc251bGwpOwor CS8qIEJ1aWxkIGxvY2FsIGNvbmZsaWN0cyB0dXBsZSBkZXNjcmlwdG9yLiAqLworCXR1cGRlc2Mg PSBidWlsZF9jb25mbGljdF90dXBsZWRlc2MoKTsKIAotCWluZGV4X2Nsb3NlKGluZGV4RGVzYywg Tm9Mb2NrKTsKKwkvKiBQcm9jZXNzIGxvY2FsIGNvbmZsaWN0IHR1cGxlIGxpc3QgYW5kIHByZXBh cmUgYW4gYXJyYXkgb2YgSlNPTi4gKi8KKwlmb3JlYWNoX3B0cihDb25mbGljdFR1cGxlSW5mbywg Y29uZmxpY3R0dXBsZSwgY29uZmxpY3R0dXBsZXMpCisJeworCQlEYXR1bQkJdmFsdWVzW05VTV9M T0NBTF9DT05GTElDVF9BVFRSU10gPSB7MH07CisJCWJvb2wJCW51bGxzW05VTV9MT0NBTF9DT05G TElDVF9BVFRSU10gPSB7MH07CisJCWNoYXIJICAgKm9yaWdpbl9uYW1lID0gTlVMTDsKKwkJSGVh cFR1cGxlCXR1cGxlOworCQlEYXR1bQkJanNvbl9kYXR1bTsKKwkJaW50CQkJYXR0bm87CisKKwkJ YXR0bm8gPSAwOworCQl2YWx1ZXNbYXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0oY29u ZmxpY3R0dXBsZS0+eG1pbik7CisKKwkJaWYgKGNvbmZsaWN0dHVwbGUtPnRzKQorCQkJdmFsdWVz W2F0dG5vKytdID0gVGltZXN0YW1wVHpHZXREYXR1bShjb25mbGljdHR1cGxlLT50cyk7CisJCWVs c2UKKwkJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKIAotCXJldHVybiBpbmRleF92YWx1ZTsKKwkJ aWYgKGNvbmZsaWN0dHVwbGUtPm9yaWdpbiAhPSBJbnZhbGlkUmVwbE9yaWdpbklkKQorCQkJcmVw bG9yaWdpbl9ieV9vaWQoY29uZmxpY3R0dXBsZS0+b3JpZ2luLCB0cnVlLCAmb3JpZ2luX25hbWUp OworCisJCS8qIFN0b3JlIGVtcHR5IHN0cmluZyBpZiBvcmlnaW4gbmFtZSBmb3IgdGhlIHR1cGxl IGlzIE5VTEwuICovCisJCWlmIChvcmlnaW5fbmFtZSAhPSBOVUxMKQorCQkJdmFsdWVzW2F0dG5v KytdID0gQ1N0cmluZ0dldFRleHREYXR1bShvcmlnaW5fbmFtZSk7CisJCWVsc2UKKwkJCW51bGxz W2F0dG5vKytdID0gdHJ1ZTsKKworCQkvKgorCQkgKiBBZGQgdGhlIGNvbmZsaWN0aW5nIGtleSB2 YWx1ZXMgaW4gdGhlIGNhc2Ugb2YgYSB1bmlxdWUgY29uc3RyYWludAorCQkgKiB2aW9sYXRpb24u CisJCSAqLworCQlpZiAoY29uZmxpY3RfdHlwZSA9PSBDVF9JTlNFUlRfRVhJU1RTIHx8CisJCQlj b25mbGljdF90eXBlID09IENUX1VQREFURV9FWElTVFMgfHwKKwkJCWNvbmZsaWN0X3R5cGUgPT0g Q1RfTVVMVElQTEVfVU5JUVVFX0NPTkZMSUNUUykKKwkJeworCQkJT2lkCWluZGV4b2lkID0gY29u ZmxpY3R0dXBsZS0+aW5kZXhvaWQ7CisKKwkJCUFzc2VydChPaWRJc1ZhbGlkKGluZGV4b2lkKSAm JiBjb25mbGljdHR1cGxlLT5zbG90ICYmCisJCQkJICAgQ2hlY2tSZWxhdGlvbk9pZExvY2tlZEJ5 TWUoaW5kZXhvaWQsIFJvd0V4Y2x1c2l2ZUxvY2ssCisJCQkJCQkJCQkJCSAgdHJ1ZSkpOworCQkJ dmFsdWVzW2F0dG5vKytdID0KKwkJCQkJdHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29u KGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJCQkJCSAgaW5kZXhvaWQsCisJCQkJCQkJCQkJCQkJICBj b25mbGljdHR1cGxlLT5zbG90KTsKKwkJfQorCQllbHNlCisJCQludWxsc1thdHRubysrXSA9IHRy dWU7CisKKwkJLyogQ29udmVydCBjb25mbGljdGluZyB0dXBsZSB0byBKU09OIGRhdHVtLiAqLwor CQlpZiAoY29uZmxpY3R0dXBsZS0+c2xvdCkKKwkJCXZhbHVlc1thdHRub10gPSB0dXBsZV90YWJs ZV9zbG90X3RvX2pzb25fZGF0dW0oY29uZmxpY3R0dXBsZS0+c2xvdCk7CisJCWVsc2UKKwkJCW51 bGxzW2F0dG5vXSA9IHRydWU7CisKKwkJQXNzZXJ0KGF0dG5vICsgMSA9PSBOVU1fTE9DQUxfQ09O RkxJQ1RfQVRUUlMpOworCisJCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVl cywgbnVsbHMpOworCisJCWpzb25fZGF0dW0gPSBoZWFwX2NvcHlfdHVwbGVfYXNfZGF0dW0odHVw bGUsIHR1cGRlc2MpOworCisJCS8qCisJCSAqIEJ1aWxkIHRoZSBoaWdoZXIgbGV2ZWwgSlNPTiBk YXR1bSBpbiBmb3JtYXQgZGVzY3JpYmVkIGluIGZ1bmN0aW9uCisJCSAqIGhlYWRlci4KKwkJICov CisJCWpzb25fZGF0dW0gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBqc29uX2Rh dHVtKTsKKworCQkvKiBEb25lIHdpdGggdGhlIHRlbXBvcmFyeSB0dXBsZS4gKi8KKwkJaGVhcF9m cmVldHVwbGUodHVwbGUpOworCisJCS8qIEFkZCB0byB0aGUgYXJyYXkgZWxlbWVudC4gKi8KKwkJ anNvbl9kYXR1bXMgPSBsYXBwZW5kKGpzb25fZGF0dW1zLCAodm9pZCAqKSBqc29uX2RhdHVtKTsK Kwl9CisKKwludW1fY29uZmxpY3RzID0gbGlzdF9sZW5ndGgoanNvbl9kYXR1bXMpOworCisJanNv bl9kYXR1bV9hcnJheSA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtX2NvbmZsaWN0cyk7CisKKwlp ID0gMDsKKwlmb3JlYWNoKGxjLCBqc29uX2RhdHVtcykKKwl7CisJCWpzb25fZGF0dW1fYXJyYXlb aV0gPSAoRGF0dW0pIGxmaXJzdChsYyk7CisJCWkrKzsKKwl9CisKKwkvKiBDb25zdHJ1Y3QgdGhl IEpTT04gYXJyYXkgRGF0dW0uICovCisJZ2V0X3R5cGxlbmJ5dmFsYWxpZ24oSlNPTk9JRCwgJnR5 cGxlbiwgJnR5cGJ5dmFsLCAmdHlwYWxpZ24pOworCWpzb25fYXJyYXlfZGF0dW0gPSBQb2ludGVy R2V0RGF0dW0oY29uc3RydWN0X2FycmF5KGpzb25fZGF0dW1fYXJyYXksCisJCQkJCQkJCQkJCQkJ ICAgbnVtX2NvbmZsaWN0cywKKwkJCQkJCQkJCQkJCQkgICBKU09OT0lELAorCQkJCQkJCQkJCQkJ CSAgIHR5cGxlbiwKKwkJCQkJCQkJCQkJCQkgICB0eXBieXZhbCwKKwkJCQkJCQkJCQkJCQkgICB0 eXBhbGlnbikpOworCXBmcmVlKGpzb25fZGF0dW1fYXJyYXkpOworCisJcmV0dXJuIGpzb25fYXJy YXlfZGF0dW07Cit9CisKKy8qCisgKiBwcmVwYXJlX2NvbmZsaWN0X2xvZ190dXBsZQorICoKKyAq IFRoaXMgcm91dGluZSBwcmVwYXJlcyBhIHR1cGxlIGRldGFpbGluZyBhIGNvbmZsaWN0IGVuY291 bnRlcmVkIGR1cmluZworICogbG9naWNhbCByZXBsaWNhdGlvbi4gVGhlIHByZXBhcmVkIHR1cGxl IHdpbGwgYmUgc3RvcmVkIGluCisgKiBwZW5kaW5nX2NvbmZsaWN0X2xvZy50dXBsZSB3aGljaCBz aG91bGQgYmUgaW5zZXJ0ZWQgaW50byB0aGUKKyAqIGNvbmZsaWN0IGxvZyB0YWJsZSBieSBjYWxs aW5nIEluc2VydENvbmZsaWN0TG9nVHVwbGUuCisgKi8KK3N0YXRpYyB2b2lkCitwcmVwYXJlX2Nv bmZsaWN0X2xvZ190dXBsZShFU3RhdGUgKmVzdGF0ZSwgUmVsYXRpb24gcmVsLAorCQkJCQkJICAg UmVsYXRpb24gY29uZmxpY3Rsb2dyZWwsCisJCQkJCQkgICBDb25mbGljdFR5cGUgY29uZmxpY3Rf dHlwZSwKKwkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAorCQkJCQkJICAgTGlz dCAqY29uZmxpY3R0dXBsZXMsCisJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCkK K3sKKwlEYXR1bQkJdmFsdWVzW05VTV9DT05GTElDVF9BVFRSU10gPSB7MH07CisJYm9vbAkJbnVs bHNbTlVNX0NPTkZMSUNUX0FUVFJTXSA9IHswfTsKKwlpbnQJCQlhdHRubzsKKwljaGFyCSAgICpy ZW1vdGVfb3JpZ2luID0gTlVMTDsKKwlNZW1vcnlDb250ZXh0CW9sZGN0eDsKKworCUFzc2VydChw ZW5kaW5nX2NvbmZsaWN0X2xvZy50dXBsZSA9PSBOVUxMKTsKKworCS8qIFBvcHVsYXRlIHRoZSB2 YWx1ZXMgYW5kIG51bGxzIGFycmF5cy4gKi8KKwlhdHRubyA9IDA7CisJdmFsdWVzW2F0dG5vKytd ID0gT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpOworCisJdmFsdWVzW2F0 dG5vKytdID0KKwkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0 aW9uR2V0TmFtZXNwYWNlKHJlbCkpKTsKKworCXZhbHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRU ZXh0RGF0dW0oUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisKKwl2YWx1ZXNbYXR0bm8r K10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZsaWN0VHlwZU5hbWVzW2NvbmZsaWN0X3R5cGVd KTsKKworCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZChyZW1vdGVfeGlkKSkKKwkJdmFsdWVzW2F0 dG5vKytdID0gVHJhbnNhY3Rpb25JZEdldERhdHVtKHJlbW90ZV94aWQpOworCWVsc2UKKwkJbnVs bHNbYXR0bm8rK10gPSB0cnVlOworCisJdmFsdWVzW2F0dG5vKytdID0gTFNOR2V0RGF0dW0ocmVt b3RlX2ZpbmFsX2xzbik7CisKKwlpZiAocmVtb3RlX2NvbW1pdF90cyA+IDApCisJCXZhbHVlc1th dHRubysrXSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0ocmVtb3RlX2NvbW1pdF90cyk7CisJZWxzZQor CQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAocmVwbG9yaWdpbl94YWN0X3N0YXRlLm9y aWdpbiAhPSBJbnZhbGlkUmVwbE9yaWdpbklkKQorCQlyZXBsb3JpZ2luX2J5X29pZChyZXBsb3Jp Z2luX3hhY3Rfc3RhdGUub3JpZ2luLCB0cnVlLCAmcmVtb3RlX29yaWdpbik7CisKKwlpZiAocmVt b3RlX29yaWdpbiAhPSBOVUxMKQorCQl2YWx1ZXNbYXR0bm8rK10gPSBDU3RyaW5nR2V0VGV4dERh dHVtKHJlbW90ZV9vcmlnaW4pOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJ aWYgKCFUdXBJc051bGwoc2VhcmNoc2xvdCkpCisJeworCQlPaWQJCXJlcGxpY2FfaW5kZXggPSBH ZXRSZWxhdGlvbklkZW50aXR5T3JQSyhyZWwpOworCisJCS8qCisJCSAqIElmIHRoZSB0YWJsZSBo YXMgYSB2YWxpZCByZXBsaWNhIGlkZW50aXR5IGluZGV4LCBidWlsZCB0aGUgaW5kZXgKKwkJICog SlNPTiBkYXR1bSBmcm9tIGtleSB2YWx1ZS4gT3RoZXJ3aXNlLCBjb25zdHJ1Y3QgaXQgZnJvbSB0 aGUgY29tcGxldGUKKwkJICogdHVwbGUgaW4gUkVQTElDQSBJREVOVElUWSBGVUxMIGNhc2VzLgor CQkgKi8KKwkJaWYgKE9pZElzVmFsaWQocmVwbGljYV9pbmRleCkpCisJCXsKKwkJCXZhbHVlc1th dHRubysrXSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisJCQl2YWx1ZXNbYXR0bm8rK10gPSB0dXBs ZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24oZXN0YXRlLCByZWwsCisJCQkJCQkJCQkJCQkJ CQkJcmVwbGljYV9pbmRleCwKKwkJCQkJCQkJCQkJCQkJCQlzZWFyY2hzbG90KTsKKwkJfQorCQll bHNlCisJCXsKKwkJCXZhbHVlc1thdHRubysrXSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKwkJCXZh bHVlc1thdHRubysrXSA9IHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShzZWFyY2hzbG90 KTsKKwkJfQorCX0KKwllbHNlCisJeworCQludWxsc1thdHRubysrXSA9IHRydWU7CisJCW51bGxz W2F0dG5vKytdID0gdHJ1ZTsKKwl9CisKKwlpZiAoIVR1cElzTnVsbChyZW1vdGVzbG90KSkKKwkJ dmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKHJlbW90ZXNs b3QpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10gPSB0cnVlOworCisJdmFsdWVzW2F0dG5vXSA9 IGJ1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2FycmF5KGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJ CQkJCSBjb25mbGljdF90eXBlLAorCQkJCQkJCQkJCQkJCSBjb25mbGljdHR1cGxlcyk7CisKKwlB c3NlcnQoYXR0bm8gKyAxID09IE5VTV9DT05GTElDVF9BVFRSUyk7CisKKwlvbGRjdHggPSBNZW1v cnlDb250ZXh0U3dpdGNoVG8oQXBwbHlDb250ZXh0KTsKKwlwZW5kaW5nX2NvbmZsaWN0X2xvZy50 dXBsZSA9CisJCWhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKGNvbmZsaWN0bG9ncmVs KSwgdmFsdWVzLCBudWxscyk7CisKKwkvKgorCSAqIFN0YXNoIGEgY29udGV4dCBzdHJpbmcgZGVz Y3JpYmluZyB0aGlzIGNvbmZsaWN0LCBzbyB0aGF0IGlmIGluc2VydGluZworCSAqIHRoZSB0dXBs ZSBpbnRvIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZmFpbHMsIHRoZSByZXN1bHRpbmcgZXJyb3Ig Y2FycmllcworCSAqIGVub3VnaCBjb250ZXh0IHRvIGlkZW50aWZ5IHRoZSBjb25mbGljdCAoc2Vl IEluc2VydENvbmZsaWN0TG9nVHVwbGUpLgorCSAqLworCXBlbmRpbmdfY29uZmxpY3RfbG9nLmVy cmNvbnRleHRfc3RyID0KKwkJcHNwcmludGYoIndoaWxlIGxvZ2dpbmcgY29uZmxpY3QgXCIlc1wi IGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJIENvbmZsaWN0VHlwZU5hbWVzW2Nv bmZsaWN0X3R5cGVdLAorCQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKKwlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3dvcmtlci5jCmluZGV4IDc3OTkyNjZjNjE0Li5jMzRhMjMzNmM1NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC00ODcsNyArNDg3LDkgQEAgc3RhdGlj IGJvb2wgTXlTdWJzY3JpcHRpb25WYWxpZCA9IGZhbHNlOwogc3RhdGljIExpc3QgKm9uX2NvbW1p dF93YWtldXBfd29ya2Vyc19zdWJpZHMgPSBOSUw7CiAKIGJvb2wJCWluX3JlbW90ZV90cmFuc2Fj dGlvbiA9IGZhbHNlOwotc3RhdGljIFhMb2dSZWNQdHIgcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFs aWRYTG9nUmVjUHRyOworWExvZ1JlY1B0ciByZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dS ZWNQdHI7CitUcmFuc2FjdGlvbklkCXJlbW90ZV94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsK K1RpbWVzdGFtcFR6CXJlbW90ZV9jb21taXRfdHMgPSAwOwogCiAvKiBmaWVsZHMgdmFsaWQgb25s eSB3aGVuIHByb2Nlc3Npbmcgc3RyZWFtZWQgdHJhbnNhY3Rpb24gKi8KIHN0YXRpYyBib29sIGlu X3N0cmVhbWVkX3RyYW5zYWN0aW9uID0gZmFsc2U7CkBAIC0xMjM2LDYgKzEyMzgsOCBAQCBhcHBs eV9oYW5kbGVfYmVnaW4oU3RyaW5nSW5mbyBzKQogCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hh Y3QoYmVnaW5fZGF0YS54aWQsIGJlZ2luX2RhdGEuZmluYWxfbHNuKTsKIAogCXJlbW90ZV9maW5h bF9sc24gPSBiZWdpbl9kYXRhLmZpbmFsX2xzbjsKKwlyZW1vdGVfY29tbWl0X3RzID0gYmVnaW5f ZGF0YS5jb21taXR0aW1lOworCXJlbW90ZV94aWQgPSBiZWdpbl9kYXRhLnhpZDsKIAogCW1heWJl X3N0YXJ0X3NraXBwaW5nX2NoYW5nZXMoYmVnaW5fZGF0YS5maW5hbF9sc24pOwogCkBAIC0xMjk2 LDYgKzEzMDAsOCBAQCBhcHBseV9oYW5kbGVfYmVnaW5fcHJlcGFyZShTdHJpbmdJbmZvIHMpCiAJ c2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChiZWdpbl9kYXRhLnhpZCwgYmVnaW5fZGF0YS5w cmVwYXJlX2xzbik7CiAKIAlyZW1vdGVfZmluYWxfbHNuID0gYmVnaW5fZGF0YS5wcmVwYXJlX2xz bjsKKwlyZW1vdGVfeGlkID0gYmVnaW5fZGF0YS54aWQ7CisJcmVtb3RlX2NvbW1pdF90cyA9IDA7 CiAKIAltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2VzKGJlZ2luX2RhdGEucHJlcGFyZV9sc24p OwogCkBAIC0xNzY3LDYgKzE3NzMsMTAgQEAgYXBwbHlfaGFuZGxlX3N0cmVhbV9zdGFydChTdHJp bmdJbmZvIHMpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04pLAogCQkJ CSBlcnJtc2dfaW50ZXJuYWwoImludmFsaWQgdHJhbnNhY3Rpb24gSUQgaW4gc3RyZWFtZWQgcmVw bGljYXRpb24gdHJhbnNhY3Rpb24iKSkpOwogCisJcmVtb3RlX3hpZCA9IHN0cmVhbV94aWQ7CisJ cmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworCXJlbW90ZV9jb21taXRfdHMg PSAwOworCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChzdHJlYW1feGlkLCBJbnZhbGlk WExvZ1JlY1B0cik7CiAKIAkvKiBUcnkgdG8gYWxsb2NhdGUgYSB3b3JrZXIgZm9yIHRoZSBzdHJl YW1pbmcgdHJhbnNhY3Rpb24uICovCkBAIC0yNDI4LDYgKzI0MzgsOSBAQCBhcHBseV9oYW5kbGVf c3RyZWFtX2NvbW1pdChTdHJpbmdJbmZvIHMpCiAJewogCQljYXNlIFRSQU5TX0xFQURFUl9BUFBM WToKIAorCQkJLyogU2V0IHJlbW90ZV9jb21taXRfdHMgZm9yIGNvbmZsaWN0IGxvZ2dpbmcuICov CisJCQlyZW1vdGVfY29tbWl0X3RzID0gY29tbWl0X2RhdGEuY29tbWl0dGltZTsKKwogCQkJLyoK IAkJCSAqIFRoZSB0cmFuc2FjdGlvbiBoYXMgYmVlbiBzZXJpYWxpemVkIHRvIGZpbGUsIHNvIHJl cGxheSBhbGwgdGhlCiAJCQkgKiBzcG9vbGVkIG9wZXJhdGlvbnMuCkBAIC01NjQ3LDYgKzU2NjAs OSBAQCBzdGFydF9hcHBseShYTG9nUmVjUHRyIG9yaWdpbl9zdGFydHBvcykKIAl9CiAJUEdfQ0FU Q0goKTsKIAl7CisJCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKwkJRXJyb3JEYXRhICAqZWRh dGE7CisKIAkJLyoKIAkJICogUmVzZXQgdGhlIG9yaWdpbiBzdGF0ZSB0byBwcmV2ZW50IHRoZSBh ZHZhbmNlbWVudCBvZiBvcmlnaW4KIAkJICogcHJvZ3Jlc3MgaWYgd2UgZmFpbCB0byBhcHBseS4g T3RoZXJ3aXNlLCB0aGlzIHdpbGwgcmVzdWx0IGluCkBAIC01NjYwLDE0ICs1Njc2LDMzIEBAIHN0 YXJ0X2FwcGx5KFhMb2dSZWNQdHIgb3JpZ2luX3N0YXJ0cG9zKQogCQllbHNlCiAJCXsKIAkJCS8q Ci0JCQkgKiBSZXBvcnQgdGhlIHdvcmtlciBmYWlsZWQgd2hpbGUgYXBwbHlpbmcgY2hhbmdlcy4g QWJvcnQgdGhlCi0JCQkgKiBjdXJyZW50IHRyYW5zYWN0aW9uIHNvIHRoYXQgdGhlIHN0YXRzIG1l c3NhZ2UgaXMgc2VudCBpbiBhbgotCQkJICogaWRsZSBzdGF0ZS4KKwkJCSAqIFNhdmUgdGhlIGVy cm9yIGFuZCByZWNvdmVyIHRvIGFuIGlkbGUgc3RhdGUgc28gd2UgY2FuIGluc2VydCB0aGUKKwkJ CSAqIGRlZmVycmVkIGNvbmZsaWN0IGxvZyB0dXBsZSAoaWYgYW55KSBiZWZvcmUgcmUtdGhyb3dp bmcuICBDb3B5CisJCQkgKiB0aGUgZXJyb3IgaW50byBhIGxvbmctbGl2ZWQgY29udGV4dCBmaXJz dCwgYXMgaXQgbWF5IGhhdmUgYmVlbgorCQkJICogcmFpc2VkIHVuZGVyIEVycm9yQ29udGV4dC4g IEFsc28gcmVzZXQgdGhlIGVycm9yIGNvbnRleHQgc3RhY2s6CisJCQkgKiB0aGUgY2FsbGJhY2tz IGluIGVmZmVjdCB3aGVuIHRoZSBlcnJvciB3YXMgdGhyb3duIGJlbG9uZyB0bworCQkJICogdW53 b3VuZCBzdGFjayBmcmFtZXMsIGFuZCB0aGUgZGVmZXJyZWQgaW5zZXJ0IGluc3RhbGxzIGl0cyBv d24uCiAJCQkgKi8KKwkJCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oVG9wTWVt b3J5Q29udGV4dCk7CisJCQllZGF0YSA9IENvcHlFcnJvckRhdGEoKTsKKwkJCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKworCQkJRmx1c2hFcnJvclN0YXRlKCk7CisJCQllcnJv cl9jb250ZXh0X3N0YWNrID0gTlVMTDsKIAkJCUFib3J0T3V0T2ZBbnlUcmFuc2FjdGlvbigpOwog CQkJcGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25fZXJyb3IoTXlTdWJzY3JpcHRpb24tPm9pZCk7 CiAKLQkJCVBHX1JFX1RIUk9XKCk7CisJCQkvKgorCQkJICogSW5zZXJ0IHRoZSBkZWZlcnJlZCBj b25mbGljdCBsb2cgdHVwbGUgaW4gaXRzIG93biB0cmFuc2FjdGlvbi4KKwkJCSAqIElmIHRoaXMg ZmFpbHMsIHRoYXQgZXJyb3IgKGFubm90YXRlZCB3aXRoIHRoZSBjb25mbGljdCBjb250ZXh0LAor CQkJICogc2VlIEluc2VydENvbmZsaWN0TG9nVHVwbGUpIHByb3BhZ2F0ZXMgaW5zdGVhZCBvZiB0 aGUgb3JpZ2luYWw7CisJCQkgKiBzdWNoIGZhaWx1cmVzIGFyZSBleHBlY3RlZCB0byBiZSByYXJl IGFuZCBwZXJzaXN0ZW50IChlLmcuIG91dCBvZgorCQkJICogZGlzayBzcGFjZSkuCisJCQkgKi8K KwkJCVByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBsZSgpOworCisJCQkvKiBSZS10aHJvdyB0 aGUgb3JpZ2luYWwgZXJyb3IuICovCisJCQlSZVRocm93RXJyb3IoZWRhdGEpOwogCQl9CiAJfQog CVBHX0VORF9UUlkoKTsKQEAgLTYwMzQsNiArNjA2OSwxMyBAQCBEaXNhYmxlU3Vic2NyaXB0aW9u QW5kRXhpdCh2b2lkKQogCiAJUkVTVU1FX0lOVEVSUlVQVFMoKTsKIAorCS8qCisJICogVGhlIGVy cm9yIGNvbnRleHQgY2FsbGJhY2tzIGluIGVmZmVjdCB3aGVuIHRoZSBlcnJvciB3YXMgdGhyb3du IGJlbG9uZworCSAqIHRvIG5vdy11bndvdW5kIHN0YWNrIGZyYW1lczsgcmVzZXQgdGhlIHN0YWNr IGJlZm9yZSBydW5uaW5nIGZ1cnRoZXIgY29kZQorCSAqIChpbmNsdWRpbmcgdGhlIGRlZmVycmVk IGNvbmZsaWN0IGxvZyBpbnNlcnRpb24sIHdoaWNoIGluc3RhbGxzIGl0cyBvd24pLgorCSAqLwor CWVycm9yX2NvbnRleHRfc3RhY2sgPSBOVUxMOworCiAJLyoKIAkgKiBSZXBvcnQgdGhlIHdvcmtl ciBmYWlsZWQgZHVyaW5nIHNlcXVlbmNlIHN5bmNocm9uaXphdGlvbiwgdGFibGUKIAkgKiBzeW5j aHJvbml6YXRpb24sIG9yIGFwcGx5LgpAQCAtNjA2Miw2ICs2MTA0LDE5IEBAIERpc2FibGVTdWJz Y3JpcHRpb25BbmRFeGl0KHZvaWQpCiAJCQllcnJtc2coInN1YnNjcmlwdGlvbiBcIiVzXCIgaGFz IGJlZW4gZGlzYWJsZWQgYmVjYXVzZSBvZiBhbiBlcnJvciIsCiAJCQkJICAgTXlTdWJzY3JpcHRp b24tPm5hbWUpKTsKIAorCS8qCisJICogSW5zZXJ0IHRoZSBkZWZlcnJlZCBjb25mbGljdCBsb2cg dHVwbGUgKGlmIGFueSkgbm93IHRoYXQgdGhlCisJICogc3Vic2NyaXB0aW9uIGhhcyBiZWVuIGRp c2FibGVkIGFuZCBjb21taXR0ZWQuICBEb2luZyBpdCBhZnRlciB0aGUKKwkgKiBkaXNhYmxlIG1l YW5zIGEgZmFpbHVyZSB0byBsb2cgdGhlIGNvbmZsaWN0ICh0cmVhdGVkIGFzIGEgaGFyZCBlcnJv ciwKKwkgKiBzZWUgUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKSBjYW5ub3QgcHJldmVu dCB0aGUgc3Vic2NyaXB0aW9uIGZyb20KKwkgKiBiZWluZyBkaXNhYmxlZCBhbmQgc28gY2Fubm90 IGxlYXZlIHRoZSB3b3JrZXIgcmVzdGFydGluZyBhbmQgZmFpbGluZworCSAqIGZvcmV2ZXIuICBE byBpdCBiZWZvcmUgdGhlIGRlYWQtdHVwbGUgcmV0ZW50aW9uIGNoZWNrIGJlbG93OiB0aGF0IGNo ZWNrCisJICogb25seSB3YXJucyB0b2RheSwgYnV0IGl0IHRha2VzIGFuIGVsZXZlbCBhbmQgY291 bGQgcmFpc2UgYW4gZXJyb3IsIHdoaWNoCisJICogbXVzdCBub3QgcHJldmVudCB0aGUgY29uZmxp Y3QgZnJvbSBiZWluZyByZWNvcmRlZC4gIFRoZSBvcmlnaW5hbCBlcnJvcgorCSAqIHdhcyBhbHJl YWR5IHJlcG9ydGVkIGFib3ZlLgorCSAqLworCVByb2Nlc3NQZW5kaW5nQ29uZmxpY3RMb2dUdXBs ZSgpOworCiAJLyoKIAkgKiBTa2lwIHRoZSB0cmFja19jb21taXRfdGltZXN0YW1wIGNoZWNrIHdo ZW4gZGlzYWJsaW5nIHRoZSB3b3JrZXIgZHVlIHRvCiAJICogYW4gZXJyb3IsIGFzIHZlcmlmeWlu ZyBjb21taXQgdGltZXN0YW1wcyBpcyB1bm5lY2Vzc2FyeSBpbiB0aGlzCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vY29uZmxpY3QuaAppbmRleCBhMDE3ZTFlNmNiNS4uYjcyN2NjMjg1ZTkgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vY29uZmxpY3QuaApAQCAtMTE1LDUgKzExNSw4IEBAIGV4dGVybiB2b2lkIFJlcG9y dEFwcGx5Q29uZmxpY3QoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJ CQkJCQkJCVR1cGxlVGFibGVTbG90ICpzZWFyY2hzbG90LAogCQkJCQkJCQlUdXBsZVRhYmxlU2xv dCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJTGlzdCAqY29uZmxpY3R0dXBsZXMpOworZXh0ZXJuIHZv aWQgUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKHZvaWQpOwogZXh0ZXJuIHZvaWQgSW5p dENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJbmZvICpyZWxJbmZvKTsKK2V4dGVybiBSZWxhdGlv biBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExvZ0Rlc3QgKmxvZ19kZXN0KTsK K2V4dGVybiB2b2lkIEluc2VydENvbmZsaWN0TG9nVHVwbGUoUmVsYXRpb24gY29uZmxpY3Rsb2dy ZWwpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJf aW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmlu ZGV4IDc0NWI3ZDllOTY5Li4wMGFkMGQ4NmE3OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d29ya2VyX2ludGVybmFsLmgKQEAgLTEyMSw2ICsxMjEsOCBAQCB0eXBlZGVmIGVudW0gUGFyYWxs ZWxUcmFuc1N0YXRlCiAJUEFSQUxMRUxfVFJBTlNfVU5LTk9XTiwKIAlQQVJBTExFTF9UUkFOU19T VEFSVEVELAogCVBBUkFMTEVMX1RSQU5TX0ZJTklTSEVELAorCVBBUkFMTEVMX1RSQU5TX0VSUk9S LAkJLyogd29ya2VyIGZhaWxlZDsgaXQgd2lsbCByZXBvcnQgdGhlIGVycm9yIChhbmQKKwkJCQkJ CQkJICogbG9nIHRoZSBjb25mbGljdCwgaWYgYW55KSBiZWZvcmUgZXhpdGluZyAqLwogfSBQYXJh bGxlbFRyYW5zU3RhdGU7CiAKIC8qCkBAIC0yNTUsNiArMjU3LDEwIEBAIGV4dGVybiBQR0RMTElN UE9SVCBib29sIEluaXRpYWxpemluZ0FwcGx5V29ya2VyOwogCiBleHRlcm4gUEdETExJTVBPUlQg TGlzdCAqdGFibGVfc3RhdGVzX25vdF9yZWFkeTsKIAorZXh0ZXJuIFhMb2dSZWNQdHIgcmVtb3Rl X2ZpbmFsX2xzbjsKK2V4dGVybiBUaW1lc3RhbXBUeiByZW1vdGVfY29tbWl0X3RzOworZXh0ZXJu IFRyYW5zYWN0aW9uSWQgcmVtb3RlX3hpZDsKKwogZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93b3Jr ZXJfYXR0YWNoKGludCBzbG90KTsKIGV4dGVybiBMb2dpY2FsUmVwV29ya2VyICpsb2dpY2FscmVw X3dvcmtlcl9maW5kKExvZ2ljYWxSZXBXb3JrZXJUeXBlIHd0eXBlLAogCQkJCQkJCQkJCQkJT2lk IHN1YmlkLCBPaWQgcmVsaWQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaCBi L3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4IGZhMDdlYmY4ZmY3Li41NTI3OWVkZmRhNiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvcmVsLmgKQEAgLTcxMywxNiArNzEzLDE5IEBAIFJlbGF0aW9uQ2xvc2VTbWdyKFJlbGF0aW9u IHJlbGF0aW9uKQogICoKICAqIFdlIGRvbid0IGxvZyBpbmZvcm1hdGlvbiBmb3IgdW5sb2dnZWQg dGFibGVzIChzaW5jZSB0aGV5IGRvbid0IFdBTCBsb2cKICAqIGFueXdheSksIGZvciBmb3JlaWdu IHRhYmxlcyAoc2luY2UgdGhleSBkb24ndCBXQUwgbG9nLCBlaXRoZXIpLAotICogYW5kIGZvciBz eXN0ZW0gdGFibGVzICh0aGVpciBjb250ZW50IGlzIGhhcmQgdG8gbWFrZSBzZW5zZSBvZiwgYW5k Ci0gKiBpdCB3b3VsZCBjb21wbGljYXRlIGRlY29kaW5nIHNsaWdodGx5IGZvciBsaXR0bGUgZ2Fp bikuIE5vdGUgdGhhdCB3ZSAqZG8qCi0gKiBsb2cgaW5mb3JtYXRpb24gZm9yIHVzZXIgZGVmaW5l ZCBjYXRhbG9nIHRhYmxlcyBzaW5jZSB0aGV5IHByZXN1bWFibHkgYXJlCi0gKiBpbnRlcmVzdGlu ZyB0byB0aGUgdXNlci4uLgorICogZm9yIHN5c3RlbSB0YWJsZXMgKHRoZWlyIGNvbnRlbnQgaXMg aGFyZCB0byBtYWtlIHNlbnNlIG9mLCBhbmQKKyAqIGl0IHdvdWxkIGNvbXBsaWNhdGUgZGVjb2Rp bmcgc2xpZ2h0bHkgZm9yIGxpdHRsZSBnYWluKSwgYW5kIGZvciBjb25mbGljdAorICogbG9nIHRh YmxlcyBpbiB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlICh3aGljaCBhcmUgc3lzdGVtLW1hbmFn ZWQgdGFibGVzCisgKiB1c2VkIGludGVybmFsbHkgb24gc3Vic2NyaWJlcnMpLiBOb3RlIHRoYXQg d2UgKmRvKiBsb2cgaW5mb3JtYXRpb24gZm9yCisgKiB1c2VyIGRlZmluZWQgY2F0YWxvZyB0YWJs ZXMgc2luY2UgdGhleSBwcmVzdW1hYmx5IGFyZSBpbnRlcmVzdGluZyB0byB0aGUKKyAqIHVzZXIu Li4KICAqLwogI2RlZmluZSBSZWxhdGlvbklzTG9naWNhbGx5TG9nZ2VkKHJlbGF0aW9uKSBcCiAJ KFhMb2dMb2dpY2FsSW5mb0FjdGl2ZSgpICYmIFwKIAkgUmVsYXRpb25OZWVkc1dBTChyZWxhdGlv bikgJiYgXAogCSAocmVsYXRpb24pLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9GT1JFSUdO X1RBQkxFICYmCVwKLQkgIUlzQ2F0YWxvZ1JlbGF0aW9uKHJlbGF0aW9uKSkKKwkgIUlzQ2F0YWxv Z1JlbGF0aW9uKHJlbGF0aW9uKSAmJiBcCisJICFJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2Uo UmVsYXRpb25HZXROYW1lc3BhY2UocmVsYXRpb24pKSkKIAogLyogcm91dGluZXMgaW4gdXRpbHMv Y2FjaGUvcmVsY2FjaGUuYyAqLwogZXh0ZXJuIHZvaWQgUmVsYXRpb25JbmNyZW1lbnRSZWZlcmVu Y2VDb3VudChSZWxhdGlvbiByZWwpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmluZGV4IGU3 MWU5NWM2Mjk3Li4yMjVmOTBhMzdiMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZApAQCAt NDgsNiArNDgsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wMzZfc2VxdWVuY2VzLnBsJywKICAg ICAgICd0LzAzN19leGNlcHQucGwnLAogICAgICAgJ3QvMDM4X3dhbHNuZF9zaHV0ZG93bl90aW1l b3V0LnBsJywKKyAgICAgICd0LzAzOV9wYV9jb25mbGljdF9sb2dfbG9ja193YWl0LnBsJywKICAg ICAgICd0LzEwMF9idWdzLnBsJywKICAgICBdLAogICB9LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz MF9vcmlnaW4ucGwKaW5kZXggNmJjNmI3ODc0YzIuLjVmNGQwMGJkZDMzIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2luLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNj cmlwdGlvbi90LzAzMF9vcmlnaW4ucGwKQEAgLTE2Niw3ICsxNjYsNyBAQCBpcygkcmVzdWx0LCBx cSgzMiksICdUaGUgbm9kZV9BIGRhdGEgcmVwbGljYXRlZCB0byBub2RlX0InKTsKICRub2RlX0Mt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiVVBEQVRFICR0YWIgU0VUIGEgPSAzMyBXSEVSRSBhID0g MzI7Iik7CiAKICRub2RlX0ItPndhaXRfZm9yX2xvZygKLQlxci9jb25mbGljdCBkZXRlY3RlZCBv biByZWxhdGlvbiAicHVibGljLiR0YWJfdW5xdW90ZWQiOiBjb25mbGljdD11cGRhdGVfb3JpZ2lu X2RpZmZlcnMuKlxuLipERVRBSUw6LiogVXBkYXRpbmcgdGhlIHJvdyB0aGF0IHdhcyBtb2RpZmll ZCBieSBhIGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0cmFuc2FjdGlvbiBbMC05XSsgYXQgLio6 IGxvY2FsIHJvdyBcKDMyXCksIHJlbW90ZSByb3cgXCgzM1wpLCByZXBsaWNhIGlkZW50aXR5IFwo YVwpPVwoMzJcKS4vCisJcXIvY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpYy4k dGFiIjogY29uZmxpY3Q9dXBkYXRlX29yaWdpbl9kaWZmZXJzLipcbi4qREVUQUlMOi4qIFVwZGF0 aW5nIHRoZSByb3cgdGhhdCB3YXMgbW9kaWZpZWQgYnkgYSBkaWZmZXJlbnQgb3JpZ2luICIuKiIg aW4gdHJhbnNhY3Rpb24gWzAtOV0rIGF0IC4qOiBsb2NhbCByb3cgXCgzMlwpLCByZW1vdGUgcm93 IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1cKDMyXCkuLwogKTsKIAogJG5vZGVfQi0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSAkdGFiOyIpOwpAQCAtMTgyLDcgKzE4 Miw3IEBAIGlzKCRyZXN1bHQsIHFxKDMzKSwgJ1RoZSBub2RlX0EgZGF0YSByZXBsaWNhdGVkIHRv IG5vZGVfQicpOwogJG5vZGVfQy0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSAk dGFiIFdIRVJFIGEgPSAzMzsiKTsKIAogJG5vZGVfQi0+d2FpdF9mb3JfbG9nKAotCXFyL2NvbmZs aWN0IGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMuJHRhYl91bnF1b3RlZCI6IGNvbmZsaWN0 PWRlbGV0ZV9vcmlnaW5fZGlmZmVycy4qXG4uKkRFVEFJTDouKiBEZWxldGluZyB0aGUgcm93IHRo YXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAiLioiIGluIHRyYW5zYWN0aW9u IFswLTldKyBhdCAuKjogbG9jYWwgcm93IFwoMzNcKSwgcmVwbGljYSBpZGVudGl0eSBcKGFcKT1c KDMzXCkuKi8KKwlxci9jb25mbGljdCBkZXRlY3RlZCBvbiByZWxhdGlvbiAicHVibGljLiR0YWIi OiBjb25mbGljdD1kZWxldGVfb3JpZ2luX2RpZmZlcnMuKlxuLipERVRBSUw6LiogRGVsZXRpbmcg dGhlIHJvdyB0aGF0IHdhcyBtb2RpZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4gIi4qIiBpbiB0 cmFuc2FjdGlvbiBbMC05XSsgYXQgLio6IGxvY2FsIHJvdyBcKDMzXCksIHJlcGxpY2EgaWRlbnRp dHkgXChhXCk9XCgzM1wpLiovCiApOwogCiAjIFRoZSByZW1haW5pbmcgdGVzdHMgbm8gbG9uZ2Vy IHRlc3QgY29uZmxpY3QgZGV0ZWN0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDM1X2NvbmZsaWN0cy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25m bGljdHMucGwKaW5kZXggMzkxMGE0OWMwYWEuLjZhN2QwOTQ3MTJkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNj cmlwdGlvbi90LzAzNV9jb25mbGljdHMucGwKQEAgLTg0LDEwICs4NCwzNSBAQCAkbm9kZV9zdWJz Y3JpYmVyLT53YWl0X2Zvcl9sb2coCiAuKktleSBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUgaW5k ZXggXCJjb25mX3RhYl9jX2tleVwiLCBtb2RpZmllZCBpbiB0cmFuc2FjdGlvbiAuKjoga2V5IFwo Y1wpPVwoNFwpLCBsb2NhbCByb3cgXCg0LCA0LCA0XCkuLywKIAkkbG9nX29mZnNldCk7CiAKKyMg VmVyaWZ5IHRoZSBjb250ZW50cyBvZiB0aGUgQ29uZmxpY3QgTG9nIFRhYmxlIChDTFQpCisjIFRo aXMgc2VjdGlvbiBlbnN1cmVzIHRoYXQgdGhlIENMVCBjb250YWlucyB0aGUgZXhwZWN0ZWQKKyMg dHlwZSBhbmQgc3BlY2lmaWMga2V5IGRhdGEuCitteSAkc3ViaWQgPSAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlv biBXSEVSRSBzdWJuYW1lID0gJ3N1Yl90YWInOyIpOworbXkgJGNsdCA9ICJwZ19jb25mbGljdC5w Z19jb25mbGljdF9sb2dfJHN1YmlkIjsKKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUg bG9nZ2VkIGluIHRoZSBDTFQKK215ICRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xs X3F1ZXJ5X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAg RlJPTSAkY2x0OyIKKyk7CisKK215ICRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPj0gMSBGUk9NICRj bHQgV0hFUkUgY29uZmxpY3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsiKTsK K2lzKCRjb25mbGljdF9jaGVjaywgJ3QnLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZs aWN0cyBsb2dnZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworbXkgJGpzb25fcXVlcnkg PSAiU0VMRUNUIGxvY2FsX2NvbmZsaWN0cyBGUk9NICRjbHQ7IjsKK215ICRyYXdfanNvbiA9ICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkanNvbl9xdWVyeSk7CisKKyMg VmVyaWZ5IHRoYXQgJzInIGlzIHByZXNlbnQgaW5zaWRlIHRoZSBKU09OIHN0cnVjdHVyZSB1c2lu ZyBhIHJlZ2V4CisjIFRoaXMgbWF0Y2hlcyB0aGUga2V5L3ZhbHVlIHBhdHRlcm4gZm9yICJhIjog MgorbGlrZSgkcmF3X2pzb24sIHFyL1xcImFcXCI6Mi8sICdWZXJpZmllZCB0aGF0IGtleSAyIGV4 aXN0cyBpbiB0aGUgbG9jYWxfY29uZmxpY3RzJyk7CisKIHBhc3MoJ211bHRpcGxlX3VuaXF1ZV9j b25mbGljdHMgZGV0ZWN0ZWQgZHVyaW5nIGluc2VydCcpOwogCiAjIFRydW5jYXRlIHRhYmxlIHRv IGdldCByaWQgb2YgdGhlIGVycm9yCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIlRSVU5DQVRFIGNvbmZfdGFiOyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJERUxFVEUgRlJPTSAkY2x0Iik7CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRlc3QgbXVsdGlwbGVfdW5pcXVlX2Nv bmZsaWN0cyBkdWUgdG8gVVBEQVRFCkBAIC0xMTQsNiArMTM5LDI2IEBAICRub2RlX3N1YnNjcmli ZXItPndhaXRfZm9yX2xvZygKIC4qS2V5IGFscmVhZHkgZXhpc3RzIGluIHVuaXF1ZSBpbmRleCBc ImNvbmZfdGFiX2Nfa2V5XCIsIG1vZGlmaWVkIGluIHRyYW5zYWN0aW9uIC4qOiBrZXkgXChjXCk9 XCg4XCksIGxvY2FsIHJvdyBcKDgsIDgsIDhcKS4vLAogCSRsb2dfb2Zmc2V0KTsKIAorIyBWZXJp ZnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBDb25mbGljdCBMb2cgVGFibGUgKENMVCkKKyMgVGhpcyBz ZWN0aW9uIGVuc3VyZXMgdGhhdCB0aGUgQ0xUIGNvbnRhaW5zIHRoZSBleHBlY3RlZAorIyB0eXBl IGFuZCBzcGVjaWZpYyBrZXkgZGF0YS4KKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUg bG9nZ2VkIGluIHRoZSBDTFQKKyRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1 ZXJ5X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAgRlJP TSAkY2x0OyIKKyk7CisKKyRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgPj0gMSBGUk9NICRjbHQgV0hF UkUgY29uZmxpY3RfdHlwZSA9ICdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzJzsiKTsKK2lzKCRj b25mbGljdF9jaGVjaywgJ3QnLCAnVmVyaWZpZWQgbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyBs b2dnZWQgaW50byBjb25mbGljdCBsb2cgdGFibGUnKTsKKworJHJhd19qc29uID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJpZnkg dGhhdCAnNicgaXMgcHJlc2VudCBpbnNpZGUgdGhlIEpTT04gc3RydWN0dXJlIHVzaW5nIGEgcmVn ZXgKKyMgVGhpcyBtYXRjaGVzIHRoZSBrZXkvdmFsdWUgcGF0dGVybiBmb3IgImEiOiA2CitsaWtl KCRyYXdfanNvbiwgcXIvXFwiYVxcIjo2LywgJ1ZlcmlmaWVkIHRoYXQga2V5IDYgZXhpc3RzIGlu IHRoZSBsb2NhbF9jb25mbGljdHMnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0 cyBkZXRlY3RlZCBkdXJpbmcgdXBkYXRlJyk7CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0IHJp ZCBvZiB0aGUgZXJyb3IKQEAgLTY3NCwxMCArNzE5LDYgQEAgb2soICRub2RlX0EtPnBvbGxfcXVl cnlfdW50aWwoCiAjIEEgY29uZmxpY3QgbG9nIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkIGFuZCBj YW5ub3QgYmUgYWx0ZXJlZCBkaXJlY3RseSwgc28KICMgbW92aW5nIGl0IHRvIGFub3RoZXIgdGFi bGVzcGFjZSBtdXN0IGJlIHJlamVjdGVkLgogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotbXkgJHN1 YmlkID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JIlNFTEVDVCBv aWQgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdzdWJfdGFiJzsiKTsKLW15 ICRjbHQgPSAicGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9nXyRzdWJpZCI7Ci0KICh1bmRlZiwg dW5kZWYsICRzdGRlcnIpID0gJG5vZGVfc3Vic2NyaWJlci0+cHNxbCgncG9zdGdyZXMnLAogCSJB TFRFUiBUQUJMRSAkY2x0IFNFVCBUQUJMRVNQQUNFIHBnX2RlZmF1bHQiKTsKIGxpa2UoCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzlfcGFfY29uZmxpY3RfbG9nX2xvY2tf d2FpdC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOV9wYV9jb25mbGljdF9sb2dfbG9j a193YWl0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mODAwNDdk Y2I1MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOV9wYV9j b25mbGljdF9sb2dfbG9ja193YWl0LnBsCkBAIC0wLDAgKzEsMjAzIEBACisjIENvcHlyaWdodCAo YykgMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUZXN0IHRo YXQgYSBwYXJhbGxlbCBhcHBseSAoUEEpIHdvcmtlciBjb3JyZWN0bHkgaW5zZXJ0cyBhIGRlZmVy cmVkCisjIGNvbmZsaWN0LWxvZyB0dXBsZSBldmVuIHdoZW4sIGJ5IHRoZSB0aW1lIGl0IHJlYWNo ZXMKKyMgUHJvY2Vzc1BlbmRpbmdDb25mbGljdExvZ1R1cGxlKCksIHRoZSBjb25mbGljdCBsb2cg dGFibGUgaXMgaGVsZCB1bmRlcgorIyBBQ0NFU1MgRVhDTFVTSVZFIGJ5IGFub3RoZXIgc2Vzc2lv bi4KKyMKKyMgVGhlIHdpbmRvdyB3ZSB3YW50IHRvIGV4ZXJjaXNlIGlzIG5hcnJvdzogUEEgbXVz dCBhbHJlYWR5IGJlIHBhc3QKKyMgUmVwb3J0QXBwbHlDb25mbGljdCgpIChzbyB0aGUgZXJyb3Ig aGFzIGZpcmVkIGFuZCBQQSBpcyBpbiBQR19DQVRDSCksCisjIGFuZCB0aGUgbG9ja2VyIG11c3Qg dGFrZSB0aGUgQ0xUIGxvY2sgKmJlZm9yZSogUEEgcmVhY2hlcyB0aGUgc2Vjb25kCisjIENMVCBv cGVuIGluc2lkZSBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKS4gIEFuIGluamVjdGlv biBwb2ludAorIyBwYXVzZXMgUEEgYXQgZXhhY3RseSB0aGF0IHBvaW50IHNvIHRoZSBsb2NrZXIg Y2FuIGdyYWIgdGhlIGxvY2sgZmlyc3Q7CisjIHdpdGhvdXQgaXQsIHRoZSBsb2NrZXIgZWl0aGVy IHRha2VzIHRoZSBsb2NrIHRvbyBlYXJseSAoUEEgYmxvY2tzIGluCisjIHRoZSBpbmxpbmUgQ0xU IG9wZW4gaW5zaWRlIFJlcG9ydEFwcGx5Q29uZmxpY3QsIGJlZm9yZSB0aGUgZXJyb3IgaGFzCisj IGZpcmVkKSBvciB0b28gbGF0ZSAoUEEgaW5zZXJ0cyBiZWZvcmUgdGhlIGxvY2sgaXMgdGFrZW4p LgorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwordXNlIFBvc3Rn cmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2Ug VGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7ZW5hYmxlX2luamVjdGlvbl9wb2ludHN9IG5lICd5ZXMn KQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0luamVjdGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCBi eSB0aGlzIGJ1aWxkJzsKK30KKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU2V0IHVwIHB1Ymxpc2hlciBh bmQgc3Vic2NyaWJlci4gIEZvcmNlIGV2ZXJ5IHRyYW5zYWN0aW9uIHRvIHN0cmVhbSBzbworIyB0 aGUgY29uZmxpY3QgaXMgaGFuZGxlZCBieSBhIHBhcmFsbGVsIGFwcGx5IHdvcmtlciByYXRoZXIg dGhhbiB0aGUKKyMgbGVhZGVyLgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK215ICRub2RlX3B1YiA9IFBvc3Rn cmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWItPmluaXQo YWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHViLT5hcHBlbmRfY29uZign cG9zdGdyZXNxbC5jb25mJywgcXsKK2RlYnVnX2xvZ2ljYWxfcmVwbGljYXRpb25fc3RyZWFtaW5n ID0gaW1tZWRpYXRlCitsb2dpY2FsX2RlY29kaW5nX3dvcmtfbWVtID0gNjRrQgorfSk7Ciskbm9k ZV9wdWItPnN0YXJ0OworCitteSAkbm9kZV9zdWIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVy LT5uZXcoJ3N1YnNjcmliZXInKTsKKyRub2RlX3N1Yi0+aW5pdDsKKyRub2RlX3N1Yi0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHF7CitzaGFyZWRfcHJlbG9hZF9saWJyYXJpZXMgPSAn aW5qZWN0aW9uX3BvaW50cycKK21heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnMgPSA0Citt YXhfcGFyYWxsZWxfYXBwbHlfd29ya2Vyc19wZXJfc3Vic2NyaXB0aW9uID0gMgorfSk7Ciskbm9k ZV9zdWItPnN0YXJ0OworCisjIFJlcGxpY2F0ZWQgdGFibGU7IHRoZSBwcmUtZXhpc3Rpbmcgcm93 IG9uIHRoZSBzdWJzY3JpYmVyIGlzIHdoYXQgbWFrZXMKKyMgdGhlIHB1Ymxpc2hlcidzIElOU0VS VCAoaWQ9MSkgdHJpZ2dlciBhbiBJTlNFUlRfRVhJU1RTIGNvbmZsaWN0LgorJG5vZGVfcHViLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKKwlDUkVBVEUgVEFCTEUgdCAoaWQgaW50IFBSSU1BUlkg S0VZLCB2YWwgdGV4dCk7CisJQUxURVIgVEFCTEUgdCBSRVBMSUNBIElERU5USVRZIEZVTEw7CisJ Q1JFQVRFIFBVQkxJQ0FUSU9OIHAgRk9SIFRBQkxFIHQ7Cit9KTsKKworJG5vZGVfc3ViLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXsKKwlDUkVBVEUgVEFCTEUgdCAoaWQgaW50IFBSSU1BUlkgS0VZ LCB2YWwgdGV4dCk7CisJSU5TRVJUIElOVE8gdCBWQUxVRVMgKDEsICdwcmUtZXhpc3RpbmcnKTsK KwlDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHM7Cit9KTsKKworbXkgJHB1Yl9jb25u c3RyID0gJG5vZGVfcHViLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfc3Vi LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJQ1JFQVRFIFNVQlNDUklQVElPTiBzCisJQ09O TkVDVElPTiAnJHB1Yl9jb25uc3RyJworCVBVQkxJQ0FUSU9OIHAKKwlXSVRIIChzdHJlYW1pbmcg PSBwYXJhbGxlbCwKKwkgICAgICBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnYWxsJywKKwkg ICAgICBkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7Cit9KTsKKworJG5vZGVfc3ViLT53YWl0X2Zv cl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWIsICdzJyk7CisKKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisj IFNlbmQgYSBub24tY29uZmxpY3RpbmcgSU5TRVJUIGFuZCB0aGVuIHdhaXQgdW50aWwgcGdfc3Vi c2NyaXB0aW9uX3JlbAorIyByZWFjaGVzICdyJyAocmVhZHkpIG9uIGV2ZXJ5IHJlbGF0aW9uLiAg cGFfY2FuX3N0YXJ0KCkgcmVxdWlyZXMKKyMgQWxsVGFibGVzeW5jc1JlYWR5KCksIHdoaWNoIHJl dHVybnMgdHJ1ZSBvbmx5IHdoZW4gZXZlcnkKKyMgcGdfc3Vic2NyaXB0aW9uX3JlbCByb3cgaXMg J3InLiAgVGhlICdzJyAoc3luY2RvbmUpIC0+ICdyJyB0cmFuc2l0aW9uCisjIGZpcmVzIGluc2lk ZSBQcm9jZXNzU3luY2luZ1RhYmxlc0ZvckFwcGx5LCB3aGljaCBvbmx5IGZsaXBzIHRoZSBzdGF0 ZQorIyB3aGVuIHRoZSBhcHBseSB3b3JrZXIncyBsYXN0X3JlY2VpdmVkIExTTiBoYXMgYWR2YW5j ZWQgcGFzdCB0aGUKKyMgdGFibGVzeW5jIGVuZCBMU04gLS0gc28gd2UgbmVlZCBhIHRyaWdnZXJp bmcgY29tbWl0IG9uIHRoZSBwdWJsaXNoZXIKKyMgdG8gZHJpdmUgbGFzdF9yZWNlaXZlZCBmb3J3 YXJkLiAgV2l0aG91dCB0aGlzIHN0ZXAsIHRoZSBjb25mbGljdCB0eG4KKyMgYmVsb3cgd291bGQg YXJyaXZlIHdoaWxlIHRoZSB0YWJsZSBpcyBzdGlsbCAncycsIHBhX2Nhbl9zdGFydCgpIHdvdWxk CisjIHJldHVybiBmYWxzZSwgdGhlIGxlYWRlciB3b3VsZCBzcG9vbCB0byBmaWxlIGFuZCBhcHBs eSBzZXJpYWxseSwgYW5kCisjIG5vIHBhcmFsbGVsIGFwcGx5IHdvcmtlciB3b3VsZCBldmVyIHNw YXduLgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyRub2RlX3B1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJ TlNFUlQgSU5UTyB0IFZBTFVFUyAoMTAwMCwgJ3dhcm11cCcpOyIpOworJG5vZGVfc3ViLT5wb2xs X3F1ZXJ5X3VudGlsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgxKSA9IDAgRlJPTSBwZ19z dWJzY3JpcHRpb25fcmVsIFdIRVJFIHNyc3Vic3RhdGUgTk9UIElOICgncicpOyIKKykgb3IgZGll ICJzdWJzY3JpcHRpb24gdGFibGVzIGRpZCBub3QgcmVhY2ggUkVBRFkgc3RhdGUiOworCisjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIyBMb29rIHVwIHRoZSBwZXItc3Vic2NyaXB0aW9uIENMVCBuYW1lLgorIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KK215ICRzdWJfb2lkID0gJG5vZGVfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3Mn Iik7CitteSAkY2x0ID0gInBnX2NvbmZsaWN0LnBnX2NvbmZsaWN0X2xvZ18kc3ViX29pZCI7Citu b3RlICJjb25mbGljdCBsb2cgdGFibGUgZm9yIHN1YnNjcmlwdGlvbiBzOiAkY2x0IjsKKworIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyMgQXJtIHRoZSBpbmplY3Rpb24gcG9pbnQuICBUaGlzIHBhdXNlcyB0aGUg UEEgd29ya2VyIGluc2lkZQorIyBQcm9jZXNzUGVuZGluZ0NvbmZsaWN0TG9nVHVwbGUoKSDigJQg aS5lLiAqYWZ0ZXIqIHRoZSBlcnJvciBoYXMgZmlyZWQKKyMgYW5kIHRoZSBQR19DQVRDSCBoYXMg cnVuLCAqYmVmb3JlKiB0aGUgc2Vjb25kIG9wZW4gb2YgdGhlIENMVC4gIFRoaXMKKyMgaXMgdGhl IGV4YWN0IHdpbmRvdyB0aGUgZGVmZXJyZWQtaW5zZXJ0IHBhdGggbmVlZHMgdG8gYmUgdGVzdGVk IGluLgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyRub2RlX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IlNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnY2x0LXBlbmRpbmctZmx1c2gtYmVmb3Jl LW9wZW4nLCAnd2FpdCcpOyIpOworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEcml2ZSB0aGUgY29uZmxp Y3QuICBQQSByZWNlaXZlcyB0aGUgc3RyZWFtZWQgdHhuLCBoaXRzIElOU0VSVF9FWElTVFMKKyMg aW5zaWRlIFJlcG9ydEFwcGx5Q29uZmxpY3QgKHdoaWNoIG9wZW5zL2Nsb3NlcyB0aGUgQ0xUIGNs ZWFubHkgd2hpbGUKKyMgcHJlcGFyaW5nIHRoZSBkZWZlcnJlZCB0dXBsZSksIHRoZW4gZXJlcG9y dChFUlJPUikgZmlyZXMsIFBHX0NBVENICisjIHJ1bnMsIGFuZCBQQSBlbnRlcnMgUHJvY2Vzc1Bl bmRpbmdDb25mbGljdExvZ1R1cGxlIOKAlCB3aGVyZSBpdCBwYXVzZXMKKyMgYXQgdGhlIGluamVj dGlvbiBwb2ludC4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitteSAkbG9nX29mZnNldCA9IC1zICRub2RlX3N1 Yi0+bG9nZmlsZTsKKworJG5vZGVfcHViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKKwlCRUdJ TjsKKwlJTlNFUlQgSU5UTyB0IFNFTEVDVCBnLCByZXBlYXQoJ3gnLCAxMDAwKSBGUk9NIGdlbmVy YXRlX3NlcmllcygyLCAyMDApIGc7CisJSU5TRVJUIElOVE8gdCBWQUxVRVMgKDEsICdjb25mbGlj dCcpOworCUNPTU1JVDsKK30pOworCisjIFdhaXQgdW50aWwgUEEgaXMgcGFya2VkIGF0IHRoZSBp bmplY3Rpb24gcG9pbnQuCiskbm9kZV9zdWItPndhaXRfZm9yX2V2ZW50KCdsb2dpY2FsIHJlcGxp Y2F0aW9uIHBhcmFsbGVsIHdvcmtlcicsCisJJ2NsdC1wZW5kaW5nLWZsdXNoLWJlZm9yZS1vcGVu Jyk7CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE5vdyB0YWtlIEFDQ0VTUyBFWENMVVNJVkUgb24gdGhl IENMVC4gIFRSVU5DQVRFIGlzIHBlcm1pdHRlZCBvbiBDTFRzOworIyBBdCB0aGlzIHBvaW50IHRo ZSBDTFQgaXMgZW1wdHksIHNvIHRoZSBUUlVOQ0FURSBpcyBlZmZlY3RpdmVseSBhIG5vLW9wCisj IHRoYXQganVzdCBhY3F1aXJlcyB0aGUgbG9jay4KKyMgQmVjYXVzZSBQQSBpcyBwYXVzZWQgYXQg dGhlIGluamVjdGlvbiBwb2ludCwgdGhpcyBsb2NrIGlzIGd1YXJhbnRlZWQKKyMgdG8gYmUgYWNx dWlyZWQgKmJlZm9yZSogUEEgdHJpZXMgdG8gb3BlbiB0aGUgQ0xULgorIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K K215ICRsb2NrZXIgPSAkbm9kZV9zdWItPmJhY2tncm91bmRfcHNxbCgncG9zdGdyZXMnKTsKKyRs b2NrZXItPnF1ZXJ5X3NhZmUocXF7CisJQkVHSU47CisJVFJVTkNBVEUgJGNsdDsKK30pOworCisj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIyBXYWtlIHRoZSBQQSBmcm9tIHRoZSBpbmplY3Rpb24gcG9pbnQuICBJ dCB3aWxsIG5vdyB0cnkgdG8gb3BlbiB0aGUKKyMgQ0xUIGluc2lkZSBQcm9jZXNzUGVuZGluZ0Nv bmZsaWN0TG9nVHVwbGUgYW5kIGJsb2NrIG9uIHRoZSBsb2NrIHRoZQorIyBsb2NrZXIgc2Vzc2lv biBob2xkcy4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiskbm9kZV9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2NsdC1wZW5kaW5nLWZsdXNoLWJl Zm9yZS1vcGVuJyk7CisJIFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnY2x0LXBlbmRp bmctZmx1c2gtYmVmb3JlLW9wZW4nKTsiKTsKKworIyBDb25maXJtIHRoZSBQQSB3b3JrZXIgaXMg YWN0dWFsbHkgcGFya2VkIHdhaXRpbmcgb24gdGhlIENMVCBsb2NrIOKAlAorIyB0aGlzIHZlcmlm aWVzIHdlIGFyZSBleGVyY2lzaW5nIHRoZSBkZWZlcnJlZC1pbnNlcnQgbG9jay13YWl0IHBhdGgs CisjIG5vdCByYWNpbmcgcGFzdCBpdC4KK215ICRjbHRfb2lkID0gJG5vZGVfc3ViLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICckY2x0Jzo6cmVnY2xhc3M6Om9pZCIpOworb2soICRu b2RlX3N1Yi0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywgcXF7CisJCVNFTEVDVCBF WElTVFMgKAorCQkJU0VMRUNUIDEKKwkJCUZST00gcGdfbG9ja3MgbAorCQkJSk9JTiBwZ19zdGF0 X2FjdGl2aXR5IGEgT04gbC5waWQgPSBhLnBpZAorCQkJV0hFUkUgTk9UIGwuZ3JhbnRlZAorCQkJ ICBBTkQgbC5yZWxhdGlvbiA9ICRjbHRfb2lkCisJCQkgIEFORCBhLmJhY2tlbmRfdHlwZSA9ICds b2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIHdvcmtlcicKKwkJKTsKKwl9LCAndCcpLAorCSdQ QSB3b3JrZXIgaXMgYmxvY2tlZCBvbiB0aGUgQ0xUIGxvY2sgaW5zaWRlIFByb2Nlc3NQZW5kaW5n Q29uZmxpY3RMb2dUdXBsZScpOworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBSZWxlYXNlIHRoZSBsb2Nr LiAgUEEgd2FrZXMsIGluc2VydHMgdGhlIGRlZmVycmVkIHJvdywgY29tbWl0cyBpdHMKKyMgQ0xU IHR4biwgcmUtdGhyb3dzIHRoZSBvcmlnaW5hbCBlcnJvciB0byB0aGUgbGVhZGVyLCBhbmQgdGhl IGxlYWRlcgorIyBkaXNhYmxlcyB0aGUgc3Vic2NyaXB0aW9uIChkaXNhYmxlX29uX2Vycm9yID0g dHJ1ZSkuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorJGxvY2tlci0+cXVlcnlfc2FmZSgnQ09NTUlUOycpOwor b2soJGxvY2tlci0+cXVpdCwgJ2xvY2tlciBzZXNzaW9uIGNsb3NlZCBjbGVhbmx5Jyk7CisKK29r KCAkbm9kZV9zdWItPnBvbGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3JlcycsCisJCSJTRUxFQ1Qg c3ViZW5hYmxlZCA9IGZhbHNlIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cyciLAorCQkndCcpLAorCSdzdWJzY3JpcHRpb24gZGlzYWJsZWQgYWZ0ZXIgdGhlIGNvbmZsaWN0 Jyk7CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFZlcmlmeSB0aGUgZGVmZXJyZWQgY29uZmxpY3QgbG9n IHR1cGxlIHN1cnZpdmVkIHRoZSBsb2NrIHdhaXQuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbXkgJHJvd3Mg PSAkbm9kZV9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJP TSAkY2x0IFdIRVJFIGNvbmZsaWN0X3R5cGUgPSAnaW5zZXJ0X2V4aXN0cyciKTsKK2lzKCRyb3dz LCAnMScsCisJJ2RlZmVycmVkIENMVCBpbnNlcnQgYnkgUEEgd29ya2VyIHN1Y2NlZWRlZCBhZnRl ciBsb2NrIHJlbGVhc2UnKTsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQWxzbyB2ZXJpZnkgdGhlIGNv bmZsaWN0IHdhcyByZXBvcnRlZCBpbiB0aGUgc2VydmVyIGxvZworIyAoY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uID0gJ2FsbCcgbG9ncyB0byBib3RoIHRoZSB0YWJsZSBhbmQgdGhlIGxvZykuCisj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorbXkgJGxvZ19jb250ZW50cyA9IHNsdXJwX2ZpbGUoJG5vZGVfc3ViLT5s b2dmaWxlLCAkbG9nX29mZnNldCk7CitsaWtlKAorCSRsb2dfY29udGVudHMsCisJcXIvRVJST1I6 XHMrY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gInB1YmxpY1wudCI6IGNvbmZsaWN0PWlu c2VydF9leGlzdHMvLAorCSdjb25mbGljdCByZXBvcnRlZCBpbiBzZXJ2ZXIgbG9nJyk7CisKK2Rv bmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAzZDZkMWMxNjEzMi4u YjJkMWJmNTMzMjAgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMjQ4LDYgKzIyNDgs NyBAQCBQYXR0ZXJuSW5mbwogUGF0dGVybkluZm9BcnJheQogUGF0dGVybl9QcmVmaXhfU3RhdHVz CiBQYXR0ZXJuX1R5cGUKK1BlbmRpbmdDb25mbGljdExvZ0RhdGEKIFBlbmRpbmdGc3luY0VudHJ5 CiBQZW5kaW5nTGlzdGVuQWN0aW9uCiBQZW5kaW5nTGlzdGVuRW50cnkKLS0gCjIuNDkuMAoK --0000000000006aae320655772e96 Content-Type: application/octet-stream; name="v60-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v60-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr0l3qms0 RnJvbSBjYTkyOGY1NGVhNDdhNTFkOTAzMWJjNTU5ZDIwNjU2ODBiZmFjYjg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogVGh1LCAyNSBKdW4gMjAyNiAxNzo1NjoyNyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjYw IDEvNV0gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl 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 IHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICB8ICA1OCArKy0tCiBz cmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYyAgICAgICAgICAgICAgfCAgMjkgKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyAgICAgICB8ICAxNCArLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyAgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvbG9ja2NtZHMuYyAgICAgICAgICAgIHwgIDI0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9w b2xpY3kuYyAgICAgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNj bWRzLmMgICAgICAgICAgIHwgIDE0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlv bmNtZHMuYyAgICB8IDIxMyArKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jICAgICAgICAgICB8ICA5MiArKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 cmlnZ2VyLmMgICAgICAgICAgICAgfCAgMjUgKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMgICAgICAgICAgICB8ICAyOCArKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9jb25mbGljdC5jIHwgMTcyICsrKysrKysrKysrKwogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdy aXRlRGVmaW5lLmMgICAgICAgIHwgIDIyICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lz Y2FjaGUuYyAgICAgICAgfCAgIDIgKy0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5jICAgICAgICAg ICAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAg ICAgICAgfCAgIDggKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQgICAgICAgfCAg IDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCAgICAgIHwgIDExICsK IHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICB8ICAyNyArKwogc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgfCAyOTUgKysrKysrKysrKysrKysr KysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAgfCAyMzQg KysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5w bCAgIHwgIDY3ICsrKystCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAg ICAgfCAgIDIgKwogMjYgZmlsZXMgY2hhbmdlZCwgMTMzNSBpbnNlcnRpb25zKCspLCAzOCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCAwMDdlZGU5OTdjNS4uNjZhY2E1ODNjODUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMzMzNywyNSArMzMzNywzOSBAQCBwZ19jbGFzc19hY2xt YXNrX2V4dChPaWQgdGFibGVfb2lkLCBPaWQgcm9sZWlkLCBBY2xNb2RlIG1hc2ssCiAKIAljbGFz c0Zvcm0gPSAoRm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKHR1cGxlKTsKIAotCS8qCi0JICogRGVu eSBhbnlvbmUgcGVybWlzc2lvbiB0byB1cGRhdGUgYSBzeXN0ZW0gY2F0YWxvZyB1bmxlc3MKLQkg KiBwZ19hdXRoaWQucm9sc3VwZXIgaXMgc2V0LgotCSAqCi0JICogQXMgb2YgNy40IHdlIGhhdmUg c29tZSB1cGRhdGFibGUgc3lzdGVtIHZpZXdzOyB0aG9zZSBzaG91bGRuJ3QgYmUKLQkgKiBwcm90 ZWN0ZWQgaW4gdGhpcyB3YXkuICBBc3N1bWUgdGhlIHZpZXcgcnVsZXMgY2FuIHRha2UgY2FyZSBv ZgotCSAqIHRoZW1zZWx2ZXMuICBBQ0xfVVNBR0UgaXMgaWYgd2UgZXZlciBoYXZlIHN5c3RlbSBz ZXF1ZW5jZXMuCi0JICovCi0JaWYgKChtYXNrICYgKEFDTF9JTlNFUlQgfCBBQ0xfVVBEQVRFIHwg QUNMX0RFTEVURSB8IEFDTF9UUlVOQ0FURSB8IEFDTF9VU0FHRSkpICYmCi0JCUlzU3lzdGVtQ2xh c3ModGFibGVfb2lkLCBjbGFzc0Zvcm0pICYmCi0JCWNsYXNzRm9ybS0+cmVsa2luZCAhPSBSRUxL SU5EX1ZJRVcgJiYKLQkJIXN1cGVydXNlcl9hcmcocm9sZWlkKSkKLQkJbWFzayAmPSB+KEFDTF9J TlNFUlQgfCBBQ0xfVVBEQVRFIHwgQUNMX0RFTEVURSB8IEFDTF9UUlVOQ0FURSB8IEFDTF9VU0FH RSk7Ci0KLQkvKgotCSAqIE90aGVyd2lzZSwgc3VwZXJ1c2VycyBieXBhc3MgYWxsIHBlcm1pc3Np b24tY2hlY2tpbmcuCi0JICovCi0JaWYgKHN1cGVydXNlcl9hcmcocm9sZWlkKSkKKwlpZiAoIXN1 cGVydXNlcl9hcmcocm9sZWlkKSkKIAl7CisJCWlmIChtYXNrICYgKEFDTF9JTlNFUlQgfCBBQ0xf VVBEQVRFIHwgQUNMX0RFTEVURSB8IEFDTF9UUlVOQ0FURSB8IEFDTF9VU0FHRSkpCisJCXsKKwkJ CWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhjbGFzc0Zvcm0pKQorCQkJeworCQkJCS8qCisJ CQkJICogRm9yIGNvbmZsaWN0IGxvZyB0YWJsZXMsIGFsbG93IG5vbi1zdXBlcnVzZXJzIHRvIHBl cmZvcm0KKwkJCQkgKiBERUxFVEUgYW5kIFRSVU5DQVRFIGZvciBjbGVhbnVwIGFuZCBtYWludGVu YW5jZSwgd2hpbGUgc3RpbGwKKwkJCQkgKiByZXN0cmljdGluZyBJTlNFUlQsIFVQREFURSwgYW5k IFVTQUdFLgorCQkJCSAqLworCQkJCW1hc2sgJj0gfihBQ0xfSU5TRVJUIHwgQUNMX1VQREFURSB8 IEFDTF9VU0FHRSk7CisJCQl9CisJCQllbHNlIGlmIChJc1N5c3RlbUNsYXNzKHRhYmxlX29pZCwg Y2xhc3NGb3JtKSAmJgorCQkJCQkgY2xhc3NGb3JtLT5yZWxraW5kICE9IFJFTEtJTkRfVklFVykK KwkJCXsKKwkJCQkvKgorCQkJCSAqIERlbnkgYW55b25lIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEg c3lzdGVtIGNhdGFsb2cgdW5sZXNzCisJCQkJICogcGdfYXV0aGlkLnJvbHN1cGVyIGlzIHNldC4K KwkJCQkgKgorCQkJCSAqIEFzIG9mIDcuNCB3ZSBoYXZlIHNvbWUgdXBkYXRhYmxlIHN5c3RlbSB2 aWV3czsgdGhvc2UKKwkJCQkgKiBzaG91bGRuJ3QgYmUgcHJvdGVjdGVkIGluIHRoaXMgd2F5LiAg QXNzdW1lIHRoZSB2aWV3IHJ1bGVzCisJCQkJICogY2FuIHRha2UgY2FyZSBvZiB0aGVtc2VsdmVz LiAgQUNMX1VTQUdFIGlzIGlmIHdlIGV2ZXIgaGF2ZQorCQkJCSAqIHN5c3RlbSBzZXF1ZW5jZXMu CisJCQkJICovCisJCQkJbWFzayAmPSB+KEFDTF9JTlNFUlQgfCBBQ0xfVVBEQVRFIHwgQUNMX0RF TEVURSB8IEFDTF9UUlVOQ0FURSB8CisJCQkJCQkgIEFDTF9VU0FHRSk7CisJCQl9CisJCX0KKwl9 CisJZWxzZQorCXsKKwkJLyogU3VwZXJ1c2VycyBieXBhc3MgYWxsIHBlcm1pc3Npb24tY2hlY2tp bmcuICovCiAJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJCXJldHVybiBtYXNrOwogCX0KQEAg LTM2NjAsNiArMzY3NCwxNCBAQCBwZ19uYW1lc3BhY2VfYWNsbWFza19leHQoT2lkIG5zcF9vaWQs IE9pZCByb2xlaWQsCiAJQWNsCQkgICAqYWNsOwogCU9pZAkJCW93bmVySWQ7CiAKKwkvKgorCSAq IERpc2FsbG93IGNyZWF0aW9uIGluIHRoZSBjb25mbGljdCBzY2hlbWEgZm9yIGV2ZXJ5b25lLCBp bmNsdWRpbmcKKwkgKiBzdXBlcnVzZXJzLCB1bmxlc3MgaW4gYmluYXJ5LXVwZ3JhZGUgbW9kZS4K KwkgKi8KKwlpZiAoIUlzQmluYXJ5VXBncmFkZSAmJiAobWFzayAmIEFDTF9DUkVBVEUpICYmCisJ CUlzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShuc3Bfb2lkKSkKKwkJcmV0dXJuIG1hc2sgJiB+ QUNMX0NSRUFURTsKKwogCS8qIFN1cGVydXNlcnMgYnlwYXNzIGFsbCBwZXJtaXNzaW9uIGNoZWNr aW5nLiAqLwogCWlmIChzdXBlcnVzZXJfYXJnKHJvbGVpZCkpCiAJCXJldHVybiBtYXNrOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2NhdGFsb2cuYwppbmRleCA3YmU0OTAzMjkzNC4uYmU4NzkxYWY4NzUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv Y2F0YWxvZy5jCkBAIC04Niw3ICs4Niw5IEBAIGJvb2wKIElzU3lzdGVtQ2xhc3MoT2lkIHJlbGlk LCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogewogCS8qIElzQ2F0YWxvZ1JlbGF0aW9uT2lkIGlz IGEgYml0IGZhc3Rlciwgc28gdGVzdCB0aGF0IGZpcnN0ICovCi0JcmV0dXJuIChJc0NhdGFsb2dS ZWxhdGlvbk9pZChyZWxpZCkgfHwgSXNUb2FzdENsYXNzKHJlbHR1cGxlKSk7CisJcmV0dXJuIChJ c0NhdGFsb2dSZWxhdGlvbk9pZChyZWxpZCkgfHwKKwkJCUlzVG9hc3RDbGFzcyhyZWx0dXBsZSkg fHwKKwkJCUlzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbHR1cGxlKSk7CiB9CiAKIC8qCkBAIC0y MzAsNiArMjMyLDIwIEBAIElzVG9hc3RDbGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCXJl dHVybiBJc1RvYXN0TmFtZXNwYWNlKHJlbG5hbWVzcGFjZSk7CiB9CiAKKy8qCisgKiBJc0NvbmZs aWN0TG9nVGFibGVDbGFzcworICoJCVRydWUgaWZmIHBnX2NsYXNzIHR1cGxlIHJlcHJlc2VudHMg YSBDb25mbGljdCBMb2cgVGFibGUuCisgKgorICoJCURvZXMgbm90IHBlcmZvcm0gYW55IGNhdGFs b2cgYWNjZXNzZXMuCisgKi8KK2Jvb2wKK0lzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKEZvcm1fcGdf Y2xhc3MgcmVsdHVwbGUpCit7CisJT2lkCQkJcmVsbmFtZXNwYWNlID0gcmVsdHVwbGUtPnJlbG5h bWVzcGFjZTsKKworCXJldHVybiBJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UocmVsbmFtZXNw YWNlKTsKK30KKwogLyoKICAqIElzQ2F0YWxvZ05hbWVzcGFjZQogICoJCVRydWUgaWZmIG5hbWVz cGFjZSBpcyBwZ19jYXRhbG9nLgpAQCAtMjY0LDYgKzI4MCwxNyBAQCBJc1RvYXN0TmFtZXNwYWNl KE9pZCBuYW1lc3BhY2VJZCkKIAkJaXNUZW1wVG9hc3ROYW1lc3BhY2UobmFtZXNwYWNlSWQpOwog fQogCisvKgorICogSXNDb25mbGljdExvZ1RhYmxlTmFtZXNwYWNlCisgKgkJVHJ1ZSBpZmYgbmFt ZXNwYWNlIGlzIHBnX2NvbmZsaWN0LgorICoKKyAqCQlEb2VzIG5vdCBwZXJmb3JtIGFueSBjYXRh bG9nIGFjY2Vzc2VzLgorICovCitib29sCitJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoT2lk IG5hbWVzcGFjZUlkKQoreworCXJldHVybiBuYW1lc3BhY2VJZCA9PSBQR19DT05GTElDVF9OQU1F U1BBQ0U7Cit9CiAKIC8qCiAgKiBJc1Jlc2VydmVkTmFtZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jCmluZGV4IDVjNDU3ZDlhY2E4Li4xZWM5NGM4NTFiMiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfcHVibGljYXRpb24uYwpAQCAtOTIsNiArOTIsMTMgQEAgY2hlY2tfcHVibGljYXRpb25f YWRkX3JlbGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpKQogCQkJCSBlcnJtc2coZXJyb3Jt c2csIHJlbG5hbWUpLAogCQkJCSBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgZm9yIHN5c3RlbSB0YWJsZXMuIikpKTsKIAorCS8qIENhbid0IGJlIGNvbmZsaWN0IGxv ZyB0YWJsZSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVOYW1lc3BhY2UoUmVsYXRpb25HZXRO YW1lc3BhY2UodGFyZ2V0cmVsKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZyhlcnJvcm1zZywgcmVs bmFtZSksCisJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBm b3IgY29uZmxpY3QgbG9nIHRhYmxlcy4iKSkpOworCiAJLyogVU5MT0dHRUQgYW5kIFRFTVAgcmVs YXRpb25zIGNhbm5vdCBiZSBwYXJ0IG9mIHB1YmxpY2F0aW9uLiAqLwogCWlmICh0YXJnZXRyZWwt PnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKIAkJZXJlcG9y dChFUlJPUiwKQEAgLTExMyw3ICsxMjAsOCBAQCBzdGF0aWMgdm9pZAogY2hlY2tfcHVibGljYXRp b25fYWRkX3NjaGVtYShPaWQgc2NoZW1haWQpCiB7CiAJLyogQ2FuJ3QgYmUgc3lzdGVtIG5hbWVz cGFjZSAqLwotCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElzVG9hc3ROYW1l c3BhY2Uoc2NoZW1haWQpKQorCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElz VG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpIHx8CisJCUlzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFj ZShzY2hlbWFpZCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJIGVycm1zZygiY2Fubm90IGFkZCBzY2hlbWEgXCIl c1wiIHRvIHB1YmxpY2F0aW9uIiwKQEAgLTE0OCw3ICsxNTYsOCBAQCBjaGVja19wdWJsaWNhdGlv bl9hZGRfc2NoZW1hKE9pZCBzY2hlbWFpZCkKICAqIGlzIHJlYWxseSBpbmFkZXF1YXRlIGZvciB0 aGF0LCBzaW5jZSB0aGUgaW5mb3JtYXRpb25fc2NoZW1hIGNvdWxkIGJlCiAgKiBkcm9wcGVkIGFu ZCByZWxvYWRlZCBhbmQgdGhlbiBpdCdsbCBiZSBjb25zaWRlcmVkIHB1Ymxpc2hhYmxlLiAgVGhl IGJlc3QKICAqIGxvbmctdGVybSBzb2x1dGlvbiBtYXkgYmUgdG8gYWRkIGEgInJlbGlzcHVibGlz aGFibGUiIGJvb2wgdG8gcGdfY2xhc3MsCi0gKiBhbmQgZGVwZW5kIG9uIHRoYXQgaW5zdGVhZCBv ZiBPSUQgY2hlY2tzLgorICogYW5kIGRlcGVuZCBvbiB0aGF0IGluc3RlYWQgb2YgT0lEIGNoZWNr cy4gIElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKCkKKyAqIGV4Y2x1ZGVzIHRhYmxlcyBpbiBjb25m bGljdCBzY2hlbWEuCiAgKi8KIHN0YXRpYyBib29sCiBpc19wdWJsaXNoYWJsZV9jbGFzcyhPaWQg cmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCkBAIC0xNTcsNiArMTY2LDcgQEAgaXNfcHVi bGlzaGFibGVfY2xhc3MoT2lkIHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCQkJcmVs dHVwbGUtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAogCQkJcmVsdHVw bGUtPnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkgJiYKIAkJIUlzQ2F0YWxvZ1JlbGF0aW9u T2lkKHJlbGlkKSAmJgorCQkhSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MocmVsdHVwbGUpICYmCiAJ CXJlbHR1cGxlLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9QRVJNQU5FTlQgJiYK IAkJcmVsaWQgPj0gRmlyc3ROb3JtYWxPYmplY3RJZDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1 YnNjcmlwdGlvbi5jCmluZGV4IGI1Y2IzMDFkYjg4Li4yMDY4ZTAzYzU3MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCkBAIC0xMzIsNiArMTMyLDcgQEAgR2V0U3Vic2NyaXB0 aW9uKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rLCBib29sIGNvbm5pbmZvX25lZWRlZCwKIAlz dWItPnJldGFpbmRlYWR0dXBsZXMgPSBzdWJmb3JtLT5zdWJyZXRhaW5kZWFkdHVwbGVzOwogCXN1 Yi0+bWF4cmV0ZW50aW9uID0gc3ViZm9ybS0+c3VibWF4cmV0ZW50aW9uOwogCXN1Yi0+cmV0ZW50 aW9uYWN0aXZlID0gc3ViZm9ybS0+c3VicmV0ZW50aW9uYWN0aXZlOworCXN1Yi0+Y29uZmxpY3Rs b2dyZWxpZCA9IHN1YmZvcm0tPnN1YmNvbmZsaWN0bG9ncmVsaWQ7CiAKIAlpZiAoY29ubmluZm9f bmVlZGVkKQogCXsKQEAgLTIwMyw2ICsyMDQsMTIgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJp ZCwgYm9vbCBtaXNzaW5nX29rLCBib29sIGNvbm5pbmZvX25lZWRlZCwKIAkJCQkJCQkJICAgQW51 bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luKTsKIAlzdWItPm9yaWdpbiA9IFRleHREYXR1bUdl dENTdHJpbmcoZGF0dW0pOwogCisJLyogR2V0IGNvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiAqLwor CWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChTVUJTQ1JJUFRJT05PSUQsCisJCQkJCQkJ CSAgIHR1cCwKKwkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dk ZXN0KTsKKwlzdWItPmNvbmZsaWN0bG9nZGVzdCA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0p OworCiAJLyogSXMgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBhIHN1cGVydXNlcj8gKi8KIAlzdWIt Pm93bmVyc3VwZXJ1c2VyID0gc3VwZXJ1c2VyX2FyZyhzdWItPm93bmVyKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDhmMTI5YmFlYzkwLi41OTY3NzYyZTYwMyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTUyNyw4ICsxNTI3LDggQEAgR1JB TlQgU0VMRUNUIChvaWQsIHN1YmRiaWQsIHN1YnNraXBsc24sIHN1Ym5hbWUsIHN1Ym93bmVyLCBz dWJlbmFibGVkLAogICAgICAgICAgICAgICBzdWJiaW5hcnksIHN1YnN0cmVhbSwgc3VidHdvcGhh c2VzdGF0ZSwgc3ViZGlzYWJsZW9uZXJyLAogCQkJICBzdWJwYXNzd29yZHJlcXVpcmVkLCBzdWJy dW5hc293bmVyLCBzdWJmYWlsb3ZlciwKICAgICAgICAgICAgICAgc3VicmV0YWluZGVhZHR1cGxl cywgc3VibWF4cmV0ZW50aW9uLCBzdWJyZXRlbnRpb25hY3RpdmUsCi0gICAgICAgICAgICAgIHN1 YnNlcnZlciwgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YndhbHJjdnRpbWVvdXQsCi0g ICAgICAgICAgICAgIHN1YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQorICAgICAgICAgICAgICBz dWJzZXJ2ZXIsIHN1YmNvbmZsaWN0bG9ncmVsaWQsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3Vic2xv dG5hbWUsCisgICAgICAgICAgICAgIHN1YnN5bmNjb21taXQsIHN1YndhbHJjdnRpbWVvdXQsIHN1 YnB1YmxpY2F0aW9ucywgc3Vib3JpZ2luKQogICAgIE9OIHBnX3N1YnNjcmlwdGlvbiBUTyBwdWJs aWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzIEFTCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvbG9ja2NtZHMuYwppbmRleCBmNjZiOGYxN2I5Yi4uODVmZmU3MDkyY2UgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvbG9ja2NtZHMuYwpAQCAtMTYsNiArMTYsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxl LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cu aCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf aW5oZXJpdHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9sb2NrY21kcy5oIgpAQCAtODMsNyArODQs MTggQEAgUmFuZ2VWYXJDYWxsYmFja0ZvckxvY2tUYWJsZShjb25zdCBSYW5nZVZhciAqcnYsIE9p ZCByZWxpZCwgT2lkIG9sZHJlbGlkLAogCQlyZXR1cm47CQkJCQkvKiB3b29wcywgY29uY3VycmVu dGx5IGRyb3BwZWQ7IG5vIHBlcm1pc3Npb25zCiAJCQkJCQkJCSAqIGNoZWNrICovCiAKLQkvKiBD dXJyZW50bHksIHdlIG9ubHkgYWxsb3cgcGxhaW4gdGFibGVzIG9yIHZpZXdzIHRvIGJlIGxvY2tl ZCAqLworCS8qCisJICogTm90ZTogQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgZGVsaWJlcmF0ZWx5 IE5PVCBibG9ja2VkIGhlcmUsIGV2ZW4gdGhvdWdoCisJICogb3RoZXIgZGlyZWN0IERETCBvbiB0 aGVtIGlzIHJlamVjdGVkIGVsc2V3aGVyZS4gcGdfZHVtcCByZWxpZXMgb24gYmVpbmcKKwkgKiBh YmxlIHRvIHRha2UgYW4gQUNDRVNTIFNIQVJFIGxvY2sgb24gdGhlc2UgdGFibGVzIHRvIHNhZmVs eSBkdW1wIHRoZWlyCisJICogZGVmaW5pdGlvbnMgZHVyaW5nIGEgYmluYXJ5IHVwZ3JhZGUsIHNv IHdlIHBlcm1pdCBMT0NLIGNvbW1hbmRzIG9uIHRoZW0KKwkgKiBhbmQgdHJlYXQgdGhlbSBsaWtl IG9yZGluYXJ5IHRhYmxlcyBoZXJlLiBJdCdzIHRydWUgdGhhdCBhIHN0cm9uZyBsb2NrCisJICog KFNoYXJlTG9jayBvciBhYm92ZSkgb24gc3VjaCBhIHRhYmxlIHdvdWxkIGNvbmZsaWN0IHdpdGgg dGhlCisJICogUm93RXhjbHVzaXZlTG9jayB0YWtlbiBieSB0aGUgYXBwbHkgd29ya2VyJ3MgaW5z ZXJ0cyBhbmQgY291bGQgc3RhbGwKKwkgKiBjb25mbGljdCBsb2dnaW5nIGFzIHdlbGwgYXMgdGhl IGFwcGx5IHdvcmtlciBmb3IgYXMgbG9uZyBhcyBpdCBpcyBoZWxkLgorCSAqIEJ1dCBsb2NraW5n IGEgc3lzdGVtLW1hbmFnZWQgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGFuIHVudXN1YWwgdGhpbmcg dG8KKwkgKiBkbywgYW5kIGl0IGRvZXNuJ3Qgc2VlbSB3b3J0aCB0aGUgdHJvdWJsZSBvZiBmaWx0 ZXJpbmcgYnkgbG9jayBtb2RlIGhlcmUuCisJICovCiAJaWYgKHJlbGtpbmQgIT0gUkVMS0lORF9S RUxBVElPTiAmJiByZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgJiYKIAkJcmVs a2luZCAhPSBSRUxLSU5EX1ZJRVcpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0xOTgsNiArMjEwLDE2 IEBAIExvY2tWaWV3UmVjdXJzZV93YWxrZXIoTm9kZSAqbm9kZSwgTG9ja1ZpZXdSZWN1cnNlX2Nv bnRleHQgKmNvbnRleHQpCiAJCQkJcmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcpCiAJCQkJY29udGlu dWU7CiAKKwkJCS8qCisJCQkgKiBDb25mbGljdCBsb2cgdGFibGVzIG9ubHkgc3VwcG9ydCBTRUxF Q1QsIERFTEVURSwgYW5kIFRSVU5DQVRFLgorCQkJICogQSBkaXJlY3QgTE9DSyBvbiB0aGVtIGlz IHBlcm1pdHRlZCBzb2xlbHkgc28gdGhhdCBwZ19kdW1wIGNhbgorCQkJICogbG9jayB0aGVtIGR1 cmluZyBhIGJpbmFyeSB1cGdyYWRlOyBsb2NraW5nIG9uZSBpbmRpcmVjdGx5IGJ5CisJCQkgKiBs b2NraW5nIGEgdmlldyBvdmVyIGl0IGlzIG5vdCBuZWVkZWQgZm9yIHRoYXQsIHNvIHNraXAgaXQg aGVyZQorCQkJICogcmF0aGVyIHRoYW4gbG9ja2luZyBpdC4KKwkJCSAqLworCQkJaWYgKElzQ29u ZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShnZXRfcmVsX25hbWVzcGFjZShyZWxpZCkpKQorCQkJCWNv bnRpbnVlOworCiAJCQkvKgogCQkJICogV2UgbWlnaHQgYmUgZGVhbGluZyB3aXRoIGEgc2VsZi1y ZWZlcmVudGlhbCB2aWV3LiAgSWYgc28sIHdlCiAJCQkgKiBjYW4ganVzdCBzdG9wIHJlY3Vyc2lu Zywgc2luY2Ugd2UgYWxyZWFkeSBsb2NrZWQgaXQuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9wb2xpY3kuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvbGljeS5jCmluZGV4IDIx YjhlZWJlMzJkLi5lYmFiMmVkZGU5MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv cG9saWN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9saWN5LmMKQEAgLTc5LDYgKzc5 LDE4IEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JQb2xpY3koY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQg cmVsaWQsIE9pZCBvbGRyZWxpZCwKIAlpZiAoIW9iamVjdF9vd25lcmNoZWNrKFJlbGF0aW9uUmVs YXRpb25JZCwgcmVsaWQsIEdldFVzZXJJZCgpKSkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tf Tk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKGdldF9yZWxfcmVsa2luZChyZWxpZCkpLCBy di0+cmVsbmFtZSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50 ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5k IHNob3VsZCBub3QgYmUgbW9kaWZpZWQgZGlyZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQKKwkg KiBjb25mbGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhj bGFzc2Zvcm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImNhbm5vdCBjcmVhdGUgcG9saWN5IG9uIGNvbmZs aWN0IGxvZyB0YWJsZSBcIiVzXCIiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRh aWwoIkNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9n aWNhbCByZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCS8qIE5vIHN5c3RlbSB0YWJsZSBt b2RpZmljYXRpb25zIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQuICovCiAJaWYgKCFhbGxvd1N5 c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBjbGFzc2Zvcm0pKQogCQllcmVw b3J0KEVSUk9SLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwppbmRleCBiMzU0NzIzYmU0NC4uY2U5 OGViYjM1ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCkBAIC0xNDcsNiArMTQ3LDIwIEBA IENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10LCBib29sIGNoZWNrX3JpZ2h0 cykKIAkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2Jq dHlwZShyZWwtPnJkX3JlbC0+cmVsa2luZCksCiAJCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKTsKIAorCQkvKgorCQkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0t bWFuYWdlZCB0YWJsZXMgdXNlZCBpbnRlcm5hbGx5IGZvcgorCQkgKiBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNvbmZsaWN0IGxvZ2dpbmcuIFVubGlrZSB1c2VyIHRhYmxlcywgdGhleSBhcmUKKwkJICog bm90IGV4cGVjdGVkIHRvIGhhdmUgY29tcGxleCBxdWVyeSB1c2FnZSwgc28gdG8ga2VlcCB0aGlu Z3Mgc2ltcGxlLAorCQkgKiB1c2VyLWRlZmluZWQgZXh0ZW5kZWQgc3RhdGlzdGljcyBhcmUgbm90 IHJlcXVpcmVkIG9yIHN1cHBvcnRlZCBhdAorCQkgKiBwcmVzZW50LgorCQkgKi8KKwkJaWYgKElz Q29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbC0+cmRfcmVsKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCJj YW5ub3QgY3JlYXRlIHN0YXRpc3RpY3Mgb24gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJ CQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJCSBlcnJkZXRhaWwoIkNv bmZsaWN0IGxvZyB0YWJsZXMgYXJlIHN5c3RlbS1tYW5hZ2VkIHRhYmxlcyBmb3IgbG9naWNhbCBy ZXBsaWNhdGlvbiBjb25mbGljdHMuIikpKTsKKwogCQkvKiBDcmVhdGluZyBzdGF0aXN0aWNzIG9u IHN5c3RlbSBjYXRhbG9ncyBpcyBub3QgYWxsb3dlZCAqLwogCQlpZiAoIWFsbG93U3lzdGVtVGFi bGVNb2RzICYmIElzU3lzdGVtUmVsYXRpb24ocmVsKSkKIAkJCWVyZXBvcnQoRVJST1IsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXggZWUwNmE3MjZmNDIuLmUzMGUw ZTBkZmU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRz LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCkBAIC0yOCw2 ICsyOCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWRfZC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfZGF0YWJhc2VfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9zZXJ2 ZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3JpcHRpb25f cmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCkBAIC0zNSw2ICszNiw3IEBACiAj aW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgog I2luY2x1ZGUgImZvcmVpZ24vZm9yZWlnbi5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgpAQCAt NzksNiArODEsNyBAQAogI2RlZmluZSBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQJCQkweDAw MDEwMDAwCiAjZGVmaW5lIFNVQk9QVF9MU04JCQkJCTB4MDAwMjAwMDAKICNkZWZpbmUgU1VCT1BU X09SSUdJTgkJCQkweDAwMDQwMDAwCisjZGVmaW5lIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVAkw eDAwMDgwMDAwCiAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAqLwogI2Rl ZmluZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykpCkBAIC0x MDcsNiArMTEwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXJldGFpbmRlYWR0 dXBsZXM7CiAJaW50MzIJCW1heHJldGVudGlvbjsKIAljaGFyCSAgICpvcmlnaW47CisJQ29uZmxp Y3RMb2dEZXN0IGNvbmZsaWN0bG9nZGVzdDsKIAlYTG9nUmVjUHRyCWxzbjsKIAljaGFyCSAgICp3 YWxfcmVjZWl2ZXJfdGltZW91dDsKIH0gU3ViT3B0czsKQEAgLTE0MCw3ICsxNDQsMTIgQEAgc3Rh dGljIExpc3QgKm1lcmdlX3B1YmxpY2F0aW9ucyhMaXN0ICpvbGRwdWJsaXN0LCBMaXN0ICpuZXdw dWJsaXN0LCBib29sIGFkZHB1YiwKIHN0YXRpYyB2b2lkIFJlcG9ydFNsb3RDb25uZWN0aW9uRXJy b3IoTGlzdCAqcnN0YXRlcywgT2lkIHN1YmlkLCBjaGFyICpzbG90bmFtZSwgY2hhciAqZXJyKTsK IHN0YXRpYyB2b2lkIENoZWNrQWx0ZXJTdWJPcHRpb24oU3Vic2NyaXB0aW9uICpzdWIsIGNvbnN0 IGNoYXIgKm9wdGlvbiwKIAkJCQkJCQkJYm9vbCBzbG90X25lZWRzX3VwZGF0ZSwgYm9vbCBpc1Rv cExldmVsKTsKLQorc3RhdGljIGJvb2wgYWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNj cmlwdGlvbiAqc3ViLAorCQkJCQkJCQkJCUNvbmZsaWN0TG9nRGVzdCBvbGRsb2dkZXN0LAorCQkJ CQkJCQkJCUNvbmZsaWN0TG9nRGVzdCBuZXdsb2dkZXN0LAorCQkJCQkJCQkJCU9pZCAqY29uZmxp Y3R0YWJsZXJlbGlkKTsKK3N0YXRpYyB2b2lkIGRyb3Bfc3ViX2NvbmZsaWN0X2xvZ190YWJsZShP aWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsCisJCQkJCQkJCQkJT2lkIHN1YmNvbmZsaWN0bG9ncmVs aWQpOwogCiAvKgogICogQ29tbW9uIG9wdGlvbiBwYXJzaW5nIGZ1bmN0aW9uIGZvciBDUkVBVEUg YW5kIEFMVEVSIFNVQlNDUklQVElPTiBjb21tYW5kcy4KQEAgLTE5Niw2ICsyMDUsOCBAQCBwYXJz ZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0 aW9ucywKIAkJb3B0cy0+bWF4cmV0ZW50aW9uID0gMDsKIAlpZiAoSXNTZXQoc3VwcG9ydGVkX29w dHMsIFNVQk9QVF9PUklHSU4pKQogCQlvcHRzLT5vcmlnaW4gPSBwc3RyZHVwKExPR0lDQUxSRVBf T1JJR0lOX0FOWSk7CisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1Rf TE9HX0RFU1QpKQorCQlvcHRzLT5jb25mbGljdGxvZ2Rlc3QgPSBDT05GTElDVF9MT0dfREVTVF9M T0c7CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRpb25zKQpA QCAtNDM2LDYgKzQ0NywxOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJCQkJCQkJCQkgUEdDX0JBQ0tFTkQsIFBH Q19TX1RFU1QsIEdVQ19BQ1RJT05fU0VULAogCQkJCQkJCQkJCSBmYWxzZSwgMCwgZmFsc2UpOwog CQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9H X0RFU1QpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbiIpID09IDApCisJCXsKKwkJCWNoYXIgKnZhbDsKKworCQkJaWYgKElzU2V0KG9wdHMt PnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQorCQkJCWVycm9yQ29u ZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCisJCQl2YWwgPSBkZWZHZXRTdHJpbmco ZGVmZWwpOworCQkJb3B0cy0+Y29uZmxpY3Rsb2dkZXN0ID0gR2V0Q29uZmxpY3RMb2dEZXN0KHZh bCk7CisJCQlvcHRzLT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1Q7 CisJCX0KIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9T WU5UQVhfRVJST1IpLApAQCAtNjYwLDYgKzY4Myw3IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdWludDMyCQlz dXBwb3J0ZWRfb3B0czsKIAlTdWJPcHRzCQlvcHRzID0gezB9OwogCUFjbFJlc3VsdAlhY2xyZXN1 bHQ7CisJT2lkCQkJbG9ncmVsaWQgPSBJbnZhbGlkT2lkOwogCiAJLyoKIAkgKiBQYXJzZSBhbmQg Y2hlY2sgb3B0aW9ucy4KQEAgLTY3NCw3ICs2OTgsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkgIFNV Qk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfRkFJTE9WRVIgfAogCQkJCQkgIFNVQk9QVF9SRVRB SU5fREVBRF9UVVBMRVMgfAogCQkJCQkgIFNVQk9QVF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwK LQkJCQkJICBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfCBTVUJPUFRfT1JJR0lOKTsKKwkJ CQkJICBTVUJPUFRfV0FMX1JFQ0VJVkVSX1RJTUVPVVQgfCBTVUJPUFRfT1JJR0lOIHwKKwkJCQkJ ICBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25z KHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAogCS8qCkBA IC04NDgsNiArODczLDIwIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1Ym9yaWdpbiAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7 CiAKKwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0g PQorCQlDU3RyaW5nR2V0VGV4dERhdHVtKENvbmZsaWN0TG9nRGVzdE5hbWVzW29wdHMuY29uZmxp Y3Rsb2dkZXN0XSk7CisKKwkvKgorCSAqIFdlIGNyZWF0ZSB0aGUgY29uZmxpY3QgbG9nIHRhYmxl IGhlcmUsIGlmIHJlcXVpcmVkLCBzbyB0aGF0IGl0cyByZWxhdGlvbgorCSAqIE9JRCBjYW4gYmUg c3RvcmVkIHdoZW4gaW5zZXJ0aW5nIHRoZSBwZ19zdWJzY3JpcHRpb24gdHVwbGUgYmVsb3cuCisJ ICovCisJaWYgKENPTkZMSUNUU19MT0dHRURfVE9fVEFCTEUob3B0cy5jb25mbGljdGxvZ2Rlc3Qp KQorCQlsb2dyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2dfdGFibGUoc3ViaWQsIHN0bXQtPnN1 Ym5hbWUsIG93bmVyKTsKKworCS8qIFN0b3JlIHRhYmxlIE9JRCBpbiB0aGUgY2F0YWxvZy4gKi8K Kwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0K KwkJCQkJCU9iamVjdElkR2V0RGF0dW0obG9ncmVsaWQpOworCiAJdHVwID0gaGVhcF9mb3JtX3R1 cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CiAKIAkvKiBJbnNlcnQg dHVwbGUgaW50byBjYXRhbG9nLiAqLwpAQCAtODY4LDYgKzkwNywyNSBAQCBDcmVhdGVTdWJzY3Jp cHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAog CQlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9S TUFMKTsKIAl9CiAKKwkvKgorCSAqIEVzdGFibGlzaCBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IGJl dHdlZW4gdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBhbmQKKwkgKiB0aGUgc3Vic2NyaXB0aW9uLgor CSAqCisJICogV2UgdXNlIERFUEVOREVOQ1lfSU5URVJOQUwgdG8gc2lnbmlmeSB0aGF0IHRoZSB0 YWJsZSdzIGxpZmVjeWNsZSBpcworCSAqIHN0cmljdGx5IHRpZWQgdG8gdGhlIHN1YnNjcmlwdGlv biwgc2ltaWxhciB0byBob3cgYSBUT0FTVCB0YWJsZSByZWxhdGVzCisJICogdG8gaXRzIG1haW4g dGFibGUgb3IgYSBzZXF1ZW5jZSByZWxhdGVzIHRvIGFuIGlkZW50aXR5IGNvbHVtbi4KKwkgKgor CSAqIFRoaXMgZW5zdXJlcyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlzIGF1dG9tYXRpY2FsbHkg cmVhcGVkIGR1cmluZyBhCisJICogRFJPUCBTVUJTQ1JJUFRJT04gdmlhIHBlcmZvcm1EZWxldGlv bigpLgorCSAqLworCWlmIChPaWRJc1ZhbGlkKGxvZ3JlbGlkKSkKKwl7CisJCU9iamVjdEFkZHJl c3MgY2x0YWRkcjsKKworCQlPYmplY3RBZGRyZXNzU2V0KGNsdGFkZHIsIFJlbGF0aW9uUmVsYXRp b25JZCwgbG9ncmVsaWQpOworCQlyZWNvcmREZXBlbmRlbmN5T24oJmNsdGFkZHIsICZteXNlbGYs IERFUEVOREVOQ1lfSU5URVJOQUwpOworCX0KKwogCS8qCiAJICogQSByZXBsaWNhdGlvbiBvcmln aW4gaXMgY3VycmVudGx5IGNyZWF0ZWQgZm9yIGFsbCBzdWJzY3JpcHRpb25zLAogCSAqIGluY2x1 ZGluZyB0aG9zZSB0aGF0IG9ubHkgY29udGFpbiBzZXF1ZW5jZXMgb3IgYXJlIG90aGVyd2lzZSBl bXB0eS4KQEAgLTE0MzcsNiArMTQ5NSw3MSBAQCBDaGVja0FsdGVyU3ViT3B0aW9uKFN1YnNjcmlw dGlvbiAqc3ViLCBjb25zdCBjaGFyICpvcHRpb24sCiAJfQogfQogCisvKgorICogYWx0ZXJfc3Vi X2NvbmZsaWN0X2xvZ19kZXN0CisgKgorICogV2hlbiB0aGUgc3Vic2NyaXB0aW9uJ3MgJ2NvbmZs aWN0X2xvZ19kZXN0aW5hdGlvbicgaXMgY2hhbmdlZCwgdXBkYXRlIHRoZQorICogY29uZmxpY3Qg bG9nIHRhYmxlIGlmIHJlcXVpcmVkLgorICoKKyAqIElmIHRoZSBuZXcgZGVzdGluYXRpb24gbm8g bG9uZ2VyIHJlcXVpcmVzIGEgY29uZmxpY3QgbG9nIHRhYmxlLCB0aGUgZXhpc3RpbmcKKyAqIGNv bmZsaWN0IGxvZyB0YWJsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN1YnNjcmlwdGlvbiBpcyByZW1v dmVkIHZpYSBpbnRlcm5hbAorICogZGVwZW5kZW5jeSBjbGVhbnVwIHRvIHByZXZlbnQgb3JwaGFu ZWQgcmVsYXRpb25zLgorICoKKyAqIE9uIHN1Y2Nlc3MsICpjb25mbGljdHRhYmxlcmVsaWQgaXMg c2V0IHRvIHRoZSBPSUQgb2YgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZQorICogdGhhdCB3YXMgY3Jl YXRlZCBvciB2YWxpZGF0ZWQsIG9yIHRvIEludmFsaWRPaWQgaWYgbm8gdGFibGUgaXMgcmVxdWly ZWQuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBzdWJzY3JpcHRpb24ncyBjb25mbGljdCBs b2cgdGFibGUgcmVmZXJlbmNlIG11c3QgYmUKKyAqIHVwZGF0ZWQgYXMgYSByZXN1bHQgb2YgdGhl IGRlc3RpbmF0aW9uIGNoYW5nZTsgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9vbAor YWx0ZXJfc3ViX2NvbmZsaWN0X2xvZ19kZXN0KFN1YnNjcmlwdGlvbiAqc3ViLCBDb25mbGljdExv Z0Rlc3Qgb2xkbG9nZGVzdCwKKwkJCQkJCQlDb25mbGljdExvZ0Rlc3QgbmV3bG9nZGVzdCwKKwkJ CQkJCQlPaWQgKmNvbmZsaWN0dGFibGVyZWxpZCkKK3sKKwlib29sCQl3YW50X3RhYmxlOworCWJv b2wJCWhhc19vbGR0YWJsZTsKKwlib29sCQl1cGRhdGVfcmVsaWQgPSBmYWxzZTsKKwlPaWQJCQly ZWxpZCA9IEludmFsaWRPaWQ7CisKKwl3YW50X3RhYmxlID0gQ09ORkxJQ1RTX0xPR0dFRF9UT19U QUJMRShuZXdsb2dkZXN0KTsKKwloYXNfb2xkdGFibGUgPSBDT05GTElDVFNfTE9HR0VEX1RPX1RB QkxFKG9sZGxvZ2Rlc3QpOworCisJaWYgKGhhc19vbGR0YWJsZSkKKwl7CisJCS8qIFRoZXJlIGlz IGEgY29uZmxpY3QgbG9nIHRhYmxlIGFscmVhZHkuICovCisJCWlmICghd2FudF90YWJsZSkKKwkJ eworCQkJZHJvcF9zdWJfY29uZmxpY3RfbG9nX3RhYmxlKHN1Yi0+b2lkLCBzdWItPm5hbWUsCisJ CQkJCQkJCQkJc3ViLT5jb25mbGljdGxvZ3JlbGlkKTsKKwkJCXVwZGF0ZV9yZWxpZCA9IHRydWU7 CisJCX0KKwl9CisJZWxzZQorCXsKKwkJLyogVGhlcmUgd2FzIG5vIHByZXZpb3VzIGNvbmZsaWN0 IGxvZyB0YWJsZS4gKi8KKwkJaWYgKHdhbnRfdGFibGUpCisJCXsKKwkJCU9iamVjdEFkZHJlc3Mg Y2x0YWRkcjsKKwkJCU9iamVjdEFkZHJlc3Mgc3Vib2JqOworCisJCQlyZWxpZCA9IGNyZWF0ZV9j b25mbGljdF9sb2dfdGFibGUoc3ViLT5vaWQsIHN1Yi0+bmFtZSwgc3ViLT5vd25lcik7CisJCQl1 cGRhdGVfcmVsaWQgPSB0cnVlOworCisJCQkvKgorCQkJICogRXN0YWJsaXNoIGFuIGludGVybmFs IGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCisJCQkgKiBhbmQgdGhl IHN1YnNjcmlwdGlvbi4gIEZvciBkZXRhaWxzIHJlZmVyIGNvbW1lbnRzIGluCisJCQkgKiBDcmVh dGVTdWJzY3JpcHRpb24gZnVuY3Rpb24uCisJCQkgKi8KKwkJCU9iamVjdEFkZHJlc3NTZXQoY2x0 YWRkciwgUmVsYXRpb25SZWxhdGlvbklkLCByZWxpZCk7CisJCQlPYmplY3RBZGRyZXNzU2V0KHN1 Ym9iaiwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViLT5vaWQpOworCQkJcmVjb3JkRGVwZW5k ZW5jeU9uKCZjbHRhZGRyLCAmc3Vib2JqLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKwkJfQorCX0K KworCSpjb25mbGljdHRhYmxlcmVsaWQgPSByZWxpZDsKKwlyZXR1cm4gdXBkYXRlX3JlbGlkOwor fQorCiAvKgogICogQWx0ZXIgdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbi4KICAqLwpAQCAtMTQ5 OSw3ICsxNjIyLDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQ TEVTIHwKIAkJCQkJCQkgIFNVQk9QVF9NQVhfUkVURU5USU9OX0RVUkFUSU9OIHwKIAkJCQkJCQkg IFNVQk9QVF9XQUxfUkVDRUlWRVJfVElNRU9VVCB8Ci0JCQkJCQkJICBTVUJPUFRfT1JJR0lOKTsK KwkJCQkJCQkgIFNVQk9QVF9PUklHSU4gfAorCQkJCQkJCSAgU1VCT1BUX0NPTkZMSUNUX0xPR19E RVNUKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgQUxURVJfU1VCU0NSSVBUSU9OX0VOQUJMRUQ6CkBA IC0xODU4LDYgKzE5ODIsMzQgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRl LCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vi c2NyaXB0aW9uX3N1YndhbHJjdnRpbWVvdXQgLSAxXSA9IHRydWU7CiAJCQkJfQogCisJCQkJaWYg KElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVCkpCisJ CQkJeworCQkJCQlDb25mbGljdExvZ0Rlc3Qgb2xkX2Rlc3QgPQorCQkJCQkJCUdldENvbmZsaWN0 TG9nRGVzdChzdWItPmNvbmZsaWN0bG9nZGVzdCk7CisKKwkJCQkJaWYgKG9wdHMuY29uZmxpY3Rs b2dkZXN0ICE9IG9sZF9kZXN0KQorCQkJCQl7CisJCQkJCQlib29sCQl1cGRhdGVfcmVsaWQ7CisJ CQkJCQlPaWQJCQlyZWxpZCA9IEludmFsaWRPaWQ7CisKKwkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9CisJCQkJCQkJQ1N0cmluZ0dldFRl eHREYXR1bShDb25mbGljdExvZ0Rlc3ROYW1lc1tvcHRzLmNvbmZsaWN0bG9nZGVzdF0pOworCQkJ CQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0IC0gMV0g PSB0cnVlOworCisJCQkJCQl1cGRhdGVfcmVsaWQgPSBhbHRlcl9zdWJfY29uZmxpY3RfbG9nX2Rl c3Qoc3ViLAorCQkJCQkJCQkJCQkJCQkJCSAgIG9sZF9kZXN0LAorCQkJCQkJCQkJCQkJCQkJCSAg IG9wdHMuY29uZmxpY3Rsb2dkZXN0LAorCQkJCQkJCQkJCQkJCQkJCSAgICZyZWxpZCk7CisJCQkJ CQlpZiAodXBkYXRlX3JlbGlkKQorCQkJCQkJeworCQkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNj cmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQorCQkJCQkJCQlPYmplY3RJZEdldERh dHVtKHJlbGlkKTsKKwkJCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25m bGljdGxvZ3JlbGlkIC0gMV0gPQorCQkJCQkJCQl0cnVlOworCQkJCQkJfQorCQkJCQl9CisJCQkJ fQorCiAJCQkJdXBkYXRlX3R1cGxlID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTIyOTcs NiArMjQ0OSw1MSBAQCBjb25zdHJ1Y3Rfc3Vic2VydmVyX2Nvbm5pbmZvKE9pZCBzdWJzZXJ2ZXIs IE9pZCBzdWJvd25lciwgY2hhciAqKmVycikKIAlyZXR1cm4gRm9yZWlnblNlcnZlckNvbm5lY3Rp b25TdHJpbmcoc3Vib3duZXIsIHNlcnZlcik7CiB9CiAKKy8qCisgKiBEcm9wIHN1YnNjcmlwdGlv bidzIGNvbmZsaWN0IGxvZyB0YWJsZQorICoKKyAqIFRoZSBjb25mbGljdCBsb2cgdGFibGUgaXMg cmVnaXN0ZXJlZCBhcyBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5IG9mIHRoZQorICogc3Vic2NyaXB0 aW9uLiBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGRlcGVuZGVuY3kgYnkgcGVyZm9ybWluZyBh CisgKiBjYXNjYWRpbmcgZGVsZXRpb24gb24gdGhlIHN1YnNjcmlwdGlvbiBvYmplY3QsIHdoaWNo IGluIHR1cm4gZHJvcHMgdGhlCisgKiBhc3NvY2lhdGVkIGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAq CisgKiBUaGlzIGlzIHVzZWQgdG8gY2xlYW4gdXAgY29uZmxpY3QgbG9nIHRhYmxlcyB0aGF0IGFy ZSBubyBsb25nZXIgcmVxdWlyZWQsCisgKiBwcmV2ZW50aW5nIGFjY3VtdWxhdGlvbiBvZiBzdGFs ZSBvciBvcnBoYW5lZCByZWxhdGlvbnMuCisgKgorICogTk9URToKKyAqIE9ubHkgY29uZmxpY3Qg bG9nIHRhYmxlcyBhcmUgY3VycmVudGx5IG1hbmFnZWQgdmlhIHRoaXMgaW50ZXJuYWwgZGVwZW5k ZW5jeQorICogbWVjaGFuaXNtLgorICovCitzdGF0aWMgdm9pZAorZHJvcF9zdWJfY29uZmxpY3Rf bG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3VibmFtZSwgT2lkIHN1YmNvbmZsaWN0bG9ncmVs aWQpCit7CisJLyogRHJvcCBhbnkgZGVwZW5kZW50IGNvbmZsaWN0IGxvZyB0YWJsZSAqLworCWlm IChPaWRJc1ZhbGlkKHN1YmNvbmZsaWN0bG9ncmVsaWQpKQorCXsKKwkJT2JqZWN0QWRkcmVzcyBv YmplY3Q7CisJCWNoYXIgCQkgKmNvbmZsaWN0cmVsbmFtZTsKKworCQljb25mbGljdHJlbG5hbWUg PSBnZXRfcmVsX25hbWUoc3ViY29uZmxpY3Rsb2dyZWxpZCk7CisJCWlmIChjb25mbGljdHJlbG5h bWUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciByZWxh dGlvbiAldSIsCisJCQkJIHN1YmNvbmZsaWN0bG9ncmVsaWQpOworCisJCS8qCisJCSAqIEJ5IHVz aW5nIFBFUkZPUk1fREVMRVRJT05fU0tJUF9PUklHSU5BTCwgd2UgZW5zdXJlIHRoYXQgb25seSB0 aGUKKwkJICogY29uZmxpY3QgbG9nIHRhYmxlIGlzIGRlbGV0ZWQgd2hpbGUgdGhlIHN1YnNjcmlw dGlvbiByZW1haW5zLgorCQkgKi8KKwkJT2JqZWN0QWRkcmVzc1NldChvYmplY3QsIFN1YnNjcmlw dGlvblJlbGF0aW9uSWQsIHN1YmlkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3QsIERST1Bf Q0FTQ0FERSwKKwkJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJCQkJUEVSRk9S TV9ERUxFVElPTl9TS0lQX09SSUdJTkFMKTsKKworCQllcmVwb3J0KE5PVElDRSwKKwkJCQllcnJt c2coImRyb3BwZWQgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBmb3Igc3Vic2NyaXB0aW9uIFwi JXNcIiIsCisJCQkJCQlnZXRfcXVhbGlmaWVkX29iam5hbWUoUEdfQ09ORkxJQ1RfTkFNRVNQQUNF LCBjb25mbGljdHJlbG5hbWUpLAorCQkJCQkJc3VibmFtZSkpOworCX0KK30KKwogLyoKICAqIERy b3AgYSBzdWJzY3JpcHRpb24KICAqLwpAQCAtMjMwOSw2ICsyNTA2LDcgQEAgRHJvcFN1YnNjcmlw dGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCU9pZAkJ CXN1YmlkOwogCU9pZAkJCXN1Ym93bmVyOwogCU9pZAkJCXN1YnNlcnZlcjsKKwlPaWQJCQlzdWJj b25mbGljdGxvZ3JlbGlkOwogCWNoYXIJICAgKnN1YmNvbm5pbmZvID0gTlVMTDsKIAlEYXR1bQkJ ZGF0dW07CiAJYm9vbAkJaXNudWxsOwpAQCAtMjM2MSw2ICsyNTU5LDcgQEAgRHJvcFN1YnNjcmlw dGlvbihEcm9wU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCXN1Ymlk ID0gZm9ybS0+b2lkOwogCXN1Ym93bmVyID0gZm9ybS0+c3Vib3duZXI7CiAJc3Vic2VydmVyID0g Zm9ybS0+c3Vic2VydmVyOworCXN1YmNvbmZsaWN0bG9ncmVsaWQgPSBmb3JtLT5zdWJjb25mbGlj dGxvZ3JlbGlkOwogCW11c3RfdXNlX3Bhc3N3b3JkID0gIXN1cGVydXNlcl9hcmcoc3Vib3duZXIp ICYmIGZvcm0tPnN1YnBhc3N3b3JkcmVxdWlyZWQ7CiAKIAkvKiBtdXN0IGJlIG93bmVyICovCkBA IC0yNDc4LDYgKzI2NzcsOSBAQCBEcm9wU3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10 ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCXJlcGxvcmlnaW5fZHJvcF9ieV9uYW1lKG9yaWdp bm5hbWUsIHRydWUsIGZhbHNlKTsKIAl9CiAKKwkvKiBEcm9wIHN1YnNjcmlwdGlvbidzIGNvbmZs aWN0IGxvZyB0YWJsZSAqLworCWRyb3Bfc3ViX2NvbmZsaWN0X2xvZ190YWJsZShzdWJpZCwgc3Vi bmFtZSwgc3ViY29uZmxpY3Rsb2dyZWxpZCk7CisKIAkvKiBDbGVhbiB1cCBkZXBlbmRlbmNpZXMg Ki8KIAlkZWxldGVEZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBz dWJpZCwgZmFsc2UpOwogCWRlbGV0ZVNoYXJlZERlcGVuZGVuY3lSZWNvcmRzRm9yKFN1YnNjcmlw dGlvblJlbGF0aW9uSWQsIHN1YmlkLCAwKTsKQEAgLTI3MjIsNiArMjkyNCwxMSBAQCBBbHRlclN1 YnNjcmlwdGlvbk93bmVyX2ludGVybmFsKFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCwgT2lk IG5ld093bmVySWQpCiAJZm9ybS0+c3Vib3duZXIgPSBuZXdPd25lcklkOwogCUNhdGFsb2dUdXBs ZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKIAorCS8qIFVwZGF0ZSBvd25lciBvZiB0 aGUgY29uZmxpY3QgbG9nIHRhYmxlIGlmIGl0IGV4aXN0cy4gKi8KKwlpZiAoT2lkSXNWYWxpZChm b3JtLT5zdWJjb25mbGljdGxvZ3JlbGlkKSkKKwkJQVRFeGVjQ2hhbmdlT3duZXIoZm9ybS0+c3Vi Y29uZmxpY3Rsb2dyZWxpZCwgbmV3T3duZXJJZCwgdHJ1ZSwKKwkJCQkJCSAgQWNjZXNzRXhjbHVz aXZlTG9jayk7CisKIAkvKiBVcGRhdGUgb3duZXIgZGVwZW5kZW5jeSByZWZlcmVuY2UgKi8KIAlj aGFuZ2VEZXBlbmRlbmN5T25Pd25lcihTdWJzY3JpcHRpb25SZWxhdGlvbklkLAogCQkJCQkJCWZv cm0tPm9pZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNDcyZGIxMTJmYTcuLmM5NDVh NDQ5NDNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjQ2NCw5ICsyNDY0LDExIEBA IHRydW5jYXRlX2NoZWNrX3JlbChPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCiAJ ICogcGdfbGFyZ2VvYmplY3QgYW5kIHBnX2xhcmdlb2JqZWN0X21ldGFkYXRhIHRvIGJlIHRydW5j YXRlZCBhcyBwYXJ0IG9mCiAJICogcGdfdXBncmFkZSwgYmVjYXVzZSB3ZSBuZWVkIHRvIGNoYW5n ZSBpdHMgcmVsZmlsZW5vZGUgdG8gbWF0Y2ggdGhlIG9sZAogCSAqIGNsdXN0ZXIsIGFuZCBhbGxv d2luZyBhIFRSVU5DQVRFIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQgaXMgdGhlIGVhc2llc3QKLQkg KiB3YXkgb2YgZG9pbmcgdGhhdC4KKwkgKiB3YXkgb2YgZG9pbmcgdGhhdC4gV2UgYWxzbyBhbGxv dyBUUlVOQ0FURSBvbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlcywKKwkgKiB0byBwZXJtaXQgdXNl cnMgdG8gbWFudWFsbHkgcHJ1bmUgY29uZmxpY3QgZGF0YSB0byBtYW5hZ2UgZGlzayBzcGFjZS4K IAkgKi8KLQlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQs IHJlbHR1cGxlKQorCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhy ZWxpZCwgcmVsdHVwbGUpICYmCisJCSFJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWx0dXBsZSkK IAkJJiYgKCFJc0JpbmFyeVVwZ3JhZGUgfHwKIAkJCShyZWxpZCAhPSBMYXJnZU9iamVjdFJlbGF0 aW9uSWQgJiYKIAkJCSByZWxpZCAhPSBMYXJnZU9iamVjdE1ldGFkYXRhUmVsYXRpb25JZCkpKQpA QCAtMjc1NSw2ICsyNzU3LDE4IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25z dCBMaXN0ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAJCQkJCSBlcnJtc2coImNhbm5v dCBpbmhlcml0IGZyb20gcGFydGl0aW9uIFwiJXNcIiIsCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsYXRpb24pKSkpOwogCisJCS8qCisJCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMg YXJlIG1hbmFnZWQgYnkgdGhlIHN5c3RlbSBmb3IgbG9naWNhbAorCQkgKiByZXBsaWNhdGlvbiBh bmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIHBhcmVudCB0YWJsZXMsIGFzCisJCSAqIGluaGVyaXRh bmNlIGNvdWxkIGludGVyZmVyZSB3aXRoIHRoZSBsb2dnaW5nIGJlaGF2aW9yLgorCQkgKi8KKwkJ aWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShyZWxhdGlvbi0+cmRfcmVsLT5yZWxuYW1l c3BhY2UpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19P QkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coImNhbm5vdCBpbmhlcml0IGZyb20gY29uZmxpY3Qg bG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRp b24pKSwKKwkJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1h bmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJ CWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYKIAkJ CXJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFICYmCiAJ CQlyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUp CkBAIC0zODkyLDYgKzM5MDYsMTkgQEAgcmVuYW1lYXR0X2NoZWNrKE9pZCBteXJlbGlkLCBGb3Jt X3BnX2NsYXNzIGNsYXNzZm9ybSwgYm9vbCByZWN1cnNpbmcpCiAJaWYgKCFvYmplY3Rfb3duZXJj aGVjayhSZWxhdGlvblJlbGF0aW9uSWQsIG15cmVsaWQsIEdldFVzZXJJZCgpKSkKIAkJYWNsY2hl Y2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKGdldF9yZWxf cmVsa2luZChteXJlbGlkKSksCiAJCQkJCSAgIE5hbWVTdHIoY2xhc3Nmb3JtLT5yZWxuYW1lKSk7 CisKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3Ig bG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3Qg YmUgbW9kaWZpZWQgZGlyZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQKKwkgKiBjb25mbGljdCBs b2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhjbGFzc2Zvcm0pKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUp LAorCQkJCSBlcnJtc2coImNhbm5vdCByZW5hbWUgY29sdW1ucyBvZiBjb25mbGljdCBsb2cgdGFi bGUgXCIlc1wiIiwKKwkJCQkJCU5hbWVTdHIoY2xhc3Nmb3JtLT5yZWxuYW1lKSksCisJCQkJIGVy cmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZv ciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJaWYgKCFhbGxvd1N5c3Rl bVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKG15cmVsaWQsIGNsYXNzZm9ybSkpCiAJCWVyZXBv cnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwK QEAgLTY4OTQsNiArNjkyMSwyMiBAQCBBVFNpbXBsZVBlcm1pc3Npb25zKEFsdGVyVGFibGVUeXBl IGNtZHR5cGUsIFJlbGF0aW9uIHJlbCwgaW50IGFsbG93ZWRfdGFyZ2V0cykKIAkJYWNsY2hlY2tf ZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKHJlbC0+cmRfcmVs LT5yZWxraW5kKSwKIAkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CiAKKwkv KgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9naWNh bCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgYmUgYWx0 ZXJlZCBkaXJlY3RseSwgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdAorCSAqIGxvZ2dpbmcu IERpcmVjdCBBTFRFUiBjb21tYW5kcyBhcmUgYWxyZWFkeSByZWplY3RlZCBkdXJpbmcgcmVsYXRp b24KKwkgKiBsb29rdXAgaW4gUmFuZ2VWYXJDYWxsYmFja0ZvckFsdGVyUmVsYXRpb24oKSwgYW5k IEFsdGVyVGFibGVNb3ZlQWxsKCkKKwkgKiBza2lwcyB0aGVzZSB0YWJsZXMsIHNvIGEgY29uZmxp Y3QgbG9nIHRhYmxlIGRvZXMgbm90IG5vcm1hbGx5IHJlYWNoIGhlcmU7CisJICogdGhpcyBjaGVj ayBndWFyZHMgYW55IGludGVybmFsIGNhbGxlciB0aGF0IGFycml2ZXMgdmlhCisJICogQWx0ZXJU YWJsZUludGVybmFsKCkuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKHJlbC0+ cmRfcmVsKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09C SkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgY29uZmxpY3QgbG9nIHRhYmxl IFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQkgZXJy ZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVt VGFibGVNb2RzICYmIElzU3lzdGVtUmVsYXRpb24ocmVsKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLApAQCAtMTAyMDMsNiAr MTAyNDYsMTggQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRl cmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkgZXJybXNnKCJyZWZlcmVuY2Vk IHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSB0YWJsZSIsCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShwa3JlbCkpKSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVz ZWQgaW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dp bmcgYW5kIHNob3VsZCBub3QgYmUgcmVmZXJlbmNlZCBieSBmb3JlaWduIGtleXMsIGFzIGl0IGNv dWxkCisJICogZGlzcnVwdCBjb25mbGljdCBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0 TG9nVGFibGVDbGFzcyhwa3JlbC0+cmRfcmVsKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgcmVm ZXJlbmNlIGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocGtyZWwpKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFy ZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3Rz LiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtUmVsYXRpb24o cGtyZWwpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJ RU5UX1BSSVZJTEVHRSksCkBAIC0xNzUzOSwxMyArMTc1OTQsMTggQEAgQWx0ZXJUYWJsZU1vdmVB bGwoQWx0ZXJUYWJsZU1vdmVBbGxTdG10ICpzdG10KQogCQkgKiByZWFsbHkgd2lzaGVzIHRvIGRv IHNvLCB0aGV5IGNhbiBpc3N1ZSB0aGUgaW5kaXZpZHVhbCBBTFRFUgogCQkgKiBjb21tYW5kcyBk aXJlY3RseS4KIAkJICoKLQkJICogQWxzbywgZXhwbGljaXRseSBhdm9pZCBhbnkgc2hhcmVkIHRh YmxlcywgdGVtcCB0YWJsZXMsIG9yIFRPQVNUCisJCSAqIEFsc28sIGV4cGxpY2l0bHkgYXZvaWQg YW55IHNoYXJlZCB0YWJsZXMsIHRlbXAgdGFibGVzLCBUT0FTVAogCQkgKiAoVE9BU1Qgd2lsbCBi ZSBtb3ZlZCB3aXRoIHRoZSBtYWluIHRhYmxlKS4KKwkJICoKKwkJICogQ29uZmxpY3QgbG9nIHRh YmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gYW5kCisJCSAq IGNhbm5vdCBiZSBhbHRlcmVkIGRpcmVjdGx5LCBzbyBza2lwIHRoZW0gYXMgd2VsbDsgb3RoZXJ3 aXNlIGEgc2luZ2xlCisJCSAqIHN1Y2ggdGFibGUgaW4gdGhlIHNvdXJjZSB0YWJsZXNwYWNlIHdv dWxkIGFib3J0IHRoZSB3aG9sZSBidWxrIG1vdmUuCiAJCSAqLwogCQlpZiAoSXNDYXRhbG9nTmFt ZXNwYWNlKHJlbEZvcm0tPnJlbG5hbWVzcGFjZSkgfHwKIAkJCXJlbEZvcm0tPnJlbGlzc2hhcmVk IHx8CiAJCQlpc0FueVRlbXBOYW1lc3BhY2UocmVsRm9ybS0+cmVsbmFtZXNwYWNlKSB8fAotCQkJ SXNUb2FzdE5hbWVzcGFjZShyZWxGb3JtLT5yZWxuYW1lc3BhY2UpKQorCQkJSXNUb2FzdE5hbWVz cGFjZShyZWxGb3JtLT5yZWxuYW1lc3BhY2UpIHx8CisJCQlJc0NvbmZsaWN0TG9nVGFibGVOYW1l c3BhY2UocmVsRm9ybS0+cmVsbmFtZXNwYWNlKSkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9ubHkg bW92ZSB0aGUgb2JqZWN0IHR5cGUgcmVxdWVzdGVkICovCkBAIC0yMDAzNCw2ICsyMDA5NCwxOCBA QCBSYW5nZVZhckNhbGxiYWNrT3duc1JlbGF0aW9uKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwK IAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBl KGdldF9yZWxfcmVsa2luZChyZWxJZCkpLAogCQkJCQkgICByZWxhdGlvbi0+cmVsbmFtZSk7CiAK KwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJuYWxseSBmb3IgbG9n aWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNob3VsZCBub3QgYmUg bW9kaWZpZWQgZGlyZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQKKwkgKiBjb25mbGljdCBsb2dn aW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcygoRm9ybV9wZ19jbGFzcykg R0VUU1RSVUNUKHR1cGxlKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fubm90IGNoYW5nZSBjb25mbGlj dCBsb2cgdGFibGUgXCIlc1wiIiwKKwkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSwKKwkJCQkgZXJy ZGV0YWlsKCJDb25mbGljdCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9y IGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVt VGFibGVNb2RzICYmCiAJCUlzU3lzdGVtQ2xhc3MocmVsSWQsIChGb3JtX3BnX2NsYXNzKSBHRVRT VFJVQ1QodHVwbGUpKSkKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTIwMDY5LDYgKzIwMTQxLDE4IEBA IFJhbmdlVmFyQ2FsbGJhY2tGb3JBbHRlclJlbGF0aW9uKGNvbnN0IFJhbmdlVmFyICpydiwgT2lk IHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJl bGF0aW9uSWQsIHJlbGlkLCBHZXRVc2VySWQoKSkpCiAJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNL X05PVF9PV05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShnZXRfcmVsX3JlbGtpbmQocmVsaWQpKSwg cnYtPnJlbG5hbWUpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGlu dGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFu ZCBzaG91bGQgbm90IGJlIGFsdGVyZWQgZGlyZWN0bHksIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29u ZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhj bGFzc2Zvcm0pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBjb25mbGljdCBsb2cgdGFi bGUgXCIlc1wiIiwKKwkJCQkJCXJ2LT5yZWxuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGlj dCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3RzLiIpKSk7CisKIAkvKiBObyBzeXN0ZW0gdGFibGUgbW9kaWZpY2F0aW9u cyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkLiAqLwogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1v ZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgY2xhc3Nmb3JtKSkKIAkJZXJlcG9ydChFUlJPUiwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYwppbmRleCBiODdiNGI0MGQwNy4uMDBkM2M5MGI1OTkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy90cmlnZ2VyLmMKQEAgLTMxNCw2ICszMTQsMTggQEAgQ3JlYXRlVHJpZ2dlckZpcmlu Z09uKGNvbnN0IENyZWF0ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywK IAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAogCQkJCSBlcnJkZXRhaWxfcmVs a2luZF9ub3Rfc3VwcG9ydGVkKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogCisJLyoKKwkgKiBD b25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIGxvZ2ljYWwgcmVwbGlj YXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQgbm90IGhhdmUgdHJpZ2dlcnMs IGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QKKwkgKiBsb2dnaW5nLgorCSAqLworCWlmIChJ c0NvbmZsaWN0TG9nVGFibGVDbGFzcyhyZWwtPnJkX3JlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiY2Fu bm90IGNyZWF0ZSB0cmlnZ2VyIG9uIGNvbmZsaWN0IGxvZyB0YWJsZSBcIiVzXCIiLAorCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3Qg bG9nIHRhYmxlcyBhcmUgc3lzdGVtLW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNvbmZsaWN0cy4iKSkpOworCiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5 c3RlbVJlbGF0aW9uKHJlbCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKQEAgLTE0NDMsNiArMTQ1NSwxOSBAQCBSYW5nZVZh ckNhbGxiYWNrRm9yUmVuYW1lVHJpZ2dlcihjb25zdCBSYW5nZVZhciAqcnYsIE9pZCByZWxpZCwg T2lkIG9sZHJlbGlkLAogCS8qIHlvdSBtdXN0IG93biB0aGUgdGFibGUgdG8gcmVuYW1lIG9uZSBv ZiBpdHMgdHJpZ2dlcnMgKi8KIAlpZiAoIW9iamVjdF9vd25lcmNoZWNrKFJlbGF0aW9uUmVsYXRp b25JZCwgcmVsaWQsIEdldFVzZXJJZCgpKSkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9U X09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKGdldF9yZWxfcmVsa2luZChyZWxpZCkpLCBydi0+ cmVsbmFtZSk7CisKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQgaW50ZXJu YWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcgYW5kIHNo b3VsZCBub3QgaGF2ZSB0cmlnZ2VycywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdAorCSAq IGxvZ2dpbmcuCisJICovCisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZUNsYXNzKGZvcm0pKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAor CQkJCSBlcnJtc2coImNhbm5vdCByZW5hbWUgdHJpZ2dlciBvbiBjb25mbGljdCBsb2cgdGFibGUg XCIlc1wiIiwKKwkJCQkJCXJ2LT5yZWxuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBs b2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCB0YWJsZXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRp b24gY29uZmxpY3RzLiIpKSk7CisKIAlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lz dGVtQ2xhc3MocmVsaWQsIGZvcm0pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRl eCBjM2FmOTY5ODliYS4uZmRlNTAyZWZkMzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAt MTE5Niw2ICsxMTk2LDI0IEBAIENoZWNrVmFsaWRSZXN1bHRSZWwoUmVzdWx0UmVsSW5mbyAqcmVz dWx0UmVsSW5mbywgQ21kVHlwZSBvcGVyYXRpb24sCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVzdWx0UmVsKSkpKTsKIAkJCWJyZWFrOwogCX0KKworCS8qCisJICogQ29uZmxpY3Qg bG9nIHRhYmxlcyBhcmUgbWFuYWdlZCBieSB0aGUgc3lzdGVtIHRvIHJlY29yZCBsb2dpY2FsCisJ ICogcmVwbGljYXRpb24gY29uZmxpY3RzLiAgV2UgYWxsb3cgREVMRVRFIGFuZCBUUlVOQ0FURSB0 byBwZXJtaXQgdXNlcnMgdG8KKwkgKiBtYW51YWxseSBwcnVuZSB0aGVzZSBsb2dzLCBidXQgbWFu dWFsIGRhdGEgaW5zZXJ0aW9uIG9yIG1vZGlmaWNhdGlvbgorCSAqIChJTlNFUlQsIFVQREFURSwg TUVSR0UpIGlzIHByb2hpYml0ZWQgdG8gbWFpbnRhaW4gdGhlIGludGVncml0eSBvZiB0aGUKKwkg KiBzeXN0ZW0tZ2VuZXJhdGVkIGxvZ3MuCisJICoKKwkgKiBTaW5jZSBUUlVOQ0FURSBpcyBoYW5k bGVkIGFzIGEgc2VwYXJhdGUgdXRpbGl0eSBjb21tYW5kLCB3ZSBvbmx5IG5lZWQKKwkgKiB0byBl eHBsaWNpdGx5IHBlcm1pdCBDTURfREVMRVRFIGhlcmUuCisJICovCisJaWYgKElzQ29uZmxpY3RM b2dUYWJsZU5hbWVzcGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZXN1bHRSZWwpKSAmJgorCQlv cGVyYXRpb24gIT0gQ01EX0RFTEVURSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbW9kaWZ5IG9y IGluc2VydCBkYXRhIGludG8gY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQlSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShyZXN1bHRSZWwpKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGlj dCBsb2cgdGFibGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCBhbmQgb25seSBzdXBwb3J0IGNsZWFudXAg dXNpbmcgREVMRVRFIG9yIFRSVU5DQVRFLiIpKSk7CiB9CiAKIC8qCkBAIC0xMjY3LDYgKzEyODUs MTYgQEAgQ2hlY2tWYWxpZFJvd01hcmtSZWwoUmVsYXRpb24gcmVsLCBSb3dNYXJrVHlwZSBtYXJr VHlwZSkKIAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogCQkJYnJlYWs7 CiAJfQorCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBz eXN0ZW0gdG8gcmVjb3JkIGxvZ2ljYWwKKwkgKiByZXBsaWNhdGlvbiBjb25mbGljdHMuCisJICov CisJaWYgKElzQ29uZmxpY3RMb2dUYWJsZU5hbWVzcGFjZShSZWxhdGlvbkdldE5hbWVzcGFjZShy ZWwpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVD VF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbG9jayByb3dzIGluIHRoZSBjb25mbGljdCBs b2cgdGFibGUgXCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7 CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2Nv bmZsaWN0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKaW5k ZXggMWY4ZDY3ZmRkOTAuLjViMTdlZDQxZjRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9jb25mbGljdC5jCkBAIC0xNyw2ICsxNywxMCBAQAogI2luY2x1ZGUgImFjY2Vzcy9j b21taXRfdHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJhY2Nlc3Mv dGFibGVhbS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfYW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNh dGFsb2cvdG9hc3RpbmcuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1 ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCkBAIC0yNCw2 ICsyOCw1OSBAQAogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0aWxzL2xz eXNjYWNoZS5oIgogCisvKgorICogU3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgdGhlIHN1cHBv cnRlZCBjb25mbGljdCBsb2dnaW5nIGRlc3RpbmF0aW9ucy4KKyAqLworY29uc3QgY2hhciAqY29u c3QgQ29uZmxpY3RMb2dEZXN0TmFtZXNbXSA9IHsKKwlbQ09ORkxJQ1RfTE9HX0RFU1RfTE9HXSA9 ICJsb2ciLAorCVtDT05GTElDVF9MT0dfREVTVF9UQUJMRV0gPSAidGFibGUiLAorCVtDT05GTElD VF9MT0dfREVTVF9BTExdID0gImFsbCIKK307CisKK1N0YXRpY0Fzc2VydERlY2wobGVuZ3Rob2Yo Q29uZmxpY3RMb2dEZXN0TmFtZXMpID09IENPTkZMSUNUX0xPR19ERVNUX0FMTCArIDEsCisJCQkJ ICJDb25mbGljdExvZ0Rlc3ROYW1lcyBsZW5ndGggbWlzbWF0Y2giKTsKKworCisvKiBTdHJ1Y3R1 cmUgdG8gaG9sZCBtZXRhZGF0YSBmb3Igb25lIGNvbHVtbiBvZiB0aGUgY29uZmxpY3QgbG9nIHRh YmxlICovCit0eXBlZGVmIHN0cnVjdCBDb25mbGljdExvZ0NvbHVtbkRlZgoreworCWNvbnN0IGNo YXIgKmF0dG5hbWU7ICAgIC8qIENvbHVtbiBuYW1lICovCisJT2lkICAgICAgICAgYXR0dHlwaWQ7 ICAgLyogRGF0YSB0eXBlIE9JRCAqLworfSBDb25mbGljdExvZ0NvbHVtbkRlZjsKKworLyoKKyAq IFNjaGVtYSBkZWZpbml0aW9uIGZvciBjb25mbGljdCBsb2cgdGFibGVzLgorICoKKyAqIERlZmlu ZXMgdGhlIGZpeGVkIHNjaGVtYSBvZiB0aGUgcGVyLXN1YnNjcmlwdGlvbiBjb25mbGljdCBsb2cg dGFibGUgY3JlYXRlZAorICogaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZS4gRWFjaCBlbnRy eSBzcGVjaWZpZXMgdGhlIGNvbHVtbiBuYW1lIGFuZCBpdHMKKyAqIHR5cGUgT0lEOyB0aGUgdGFi bGUgaXMgY3JlYXRlZCBpbiB0aGlzIGNvbHVtbiBvcmRlciBieQorICogY3JlYXRlX2NvbmZsaWN0 X2xvZ190YWJsZSgpLgorICoKKyAqIFRoZSB0dXBsZS9rZXkgY29sdW1ucyAocmVwbGljYV9pZGVu dGl0eSwgcmVtb3RlX3R1cGxlLCBsb2NhbF9jb25mbGljdHMpIGFyZQorICogdHlwZWQganNvbiBy YXRoZXIgdGhhbiBqc29uYiBvbiBwdXJwb3NlOiB0aGV5IGhvbGQgYW4gZXhhY3QgYXVkaXQgc25h cHNob3QKKyAqIG9mIHRoZSBhcHBsaWVkIHR1cGxlcyBhbmQgcmVwbGljYSBpZGVudGl0eSwgYW5k IGpzb24gcHJlc2VydmVzIHRoZSB2ZXJiYXRpbQorICogcmVwcmVzZW50YXRpb24gd2hlcmVhcyBq c29uYiB3b3VsZCBub3JtYWxpemUgaXQuIEluZGV4aW5nIHRoZW0gKGpzb25iJ3MgbWFpbgorICog YWR2YW50YWdlKSB3b3VsZG4ndCBoZWxwIGFueXdheSwgYXMgdGhlIGNvbmZsaWN0IGxvZyBpcyBs b29rZWQgdXAgYnkgaXRzCisgKiBzY2FsYXIgY29sdW1ucyAocmVsaWQsIGNvbmZsaWN0X3R5cGUs IGNvbW1pdCB0aW1lc3RhbXApIHdoaWxlIHRoZXNlIGpzb24KKyAqIGNvbHVtbnMgYXJlIHBlci1j b25mbGljdCBwYXlsb2FkIHRvIGluc3BlY3QsIG5vdCBzZWFyY2gga2V5cy4KKyAqLworc3RhdGlj IGNvbnN0IENvbmZsaWN0TG9nQ29sdW1uRGVmIENvbmZsaWN0TG9nU2NoZW1hW10gPSB7CisJeyAu YXR0bmFtZSA9ICJyZWxpZCIsICAgICAgICAgICAgLmF0dHR5cGlkID0gT0lET0lEIH0sCisJeyAu YXR0bmFtZSA9ICJzY2hlbWFuYW1lIiwgICAgICAgLmF0dHR5cGlkID0gVEVYVE9JRCB9LAorCXsg LmF0dG5hbWUgPSAicmVsbmFtZSIsICAgICAgICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7 IC5hdHRuYW1lID0gImNvbmZsaWN0X3R5cGUiLCAgICAuYXR0dHlwaWQgPSBURVhUT0lEIH0sCisJ eyAuYXR0bmFtZSA9ICJyZW1vdGVfeGlkIiwgICAgICAgLmF0dHR5cGlkID0gWElET0lEIH0sCisJ eyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0X2xzbiIsLmF0dHR5cGlkID0gTFNOT0lEIH0sCisJ eyAuYXR0bmFtZSA9ICJyZW1vdGVfY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpP SUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9vcmlnaW4iLCAgICAuYXR0dHlwaWQgPSBURVhU T0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZXBsaWNhX2lkZW50aXR5X2Z1bGwiLCAuYXR0dHlwaWQg PSBCT09MT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZXBsaWNhX2lkZW50aXR5IiwgICAgICAuYXR0 dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfdHVwbGUiLCAgICAgICAg ICAuYXR0dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJsb2NhbF9jb25mbGljdHMi LCAgICAgICAuYXR0dHlwaWQgPSBKU09OQVJSQVlPSUQgfQorfTsKKworI2RlZmluZSBOVU1fQ09O RkxJQ1RfQVRUUlMgbGVuZ3Rob2YoQ29uZmxpY3RMb2dTY2hlbWEpCisKIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9 ICJpbnNlcnRfZXhpc3RzIiwKIAlbQ1RfVVBEQVRFX09SSUdJTl9ESUZGRVJTXSA9ICJ1cGRhdGVf b3JpZ2luX2RpZmZlcnMiLApAQCAtNTQsNiArMTExLDEyMSBAQCBzdGF0aWMgdm9pZCBnZXRfdHVw bGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIHN0YXRpYyBj aGFyICpidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2Nh bHJlbCwKIAkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpzbG90LCBPaWQgaW5kZXhvaWQpOwogCisv KgorICogQnVpbGRzIHRoZSBUdXBsZURlc2MgZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUuCisg Ki8KK3N0YXRpYyBUdXBsZURlc2MKK2NyZWF0ZV9jb25mbGljdF9sb2dfdGFibGVfdHVwZGVzYyh2 b2lkKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCisJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRl VHVwbGVEZXNjKE5VTV9DT05GTElDVF9BVFRSUyk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IE5V TV9DT05GTElDVF9BVFRSUzsgaSsrKQorCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgaSAr IDEsCisJCQkJCQkgICBDb25mbGljdExvZ1NjaGVtYVtpXS5hdHRuYW1lLAorCQkJCQkJICAgQ29u ZmxpY3RMb2dTY2hlbWFbaV0uYXR0dHlwaWQsCisJCQkJCQkgICAtMSwgMCk7CisKKwlUdXBsZURl c2NGaW5hbGl6ZSh0dXBkZXNjKTsKKworCXJldHVybiB0dXBkZXNjOworfQorCisvKgorICogQ3Jl YXRlIGEgc3RydWN0dXJlZCBjb25mbGljdCBsb2cgdGFibGUgZm9yIGEgc3Vic2NyaXB0aW9uLgor ICoKKyAqIFRoZSB0YWJsZSBpcyBjcmVhdGVkIHdpdGhpbiB0aGUgc3lzdGVtLW1hbmFnZWQgJ3Bn X2NvbmZsaWN0JyBuYW1lc3BhY2UgdG8KKyAqIHByZXZlbnQgdXNlcnMgZnJvbSBtYW51YWxseSBk cm9wcGluZyBvciBhbHRlcmluZyBpdC4gIFRoaXMgYWxzbyBwcmV2ZW50cworICogYWNjaWRlbnRh bCBuYW1lIGNvbGxpc2lvbnMgd2l0aCB1c2VyLWNyZWF0ZWQgdGFibGVzIHdpdGggdGhlIHNhbWUg bmFtZS4KKyAqCisgKiBUaGUgdGFibGUgbmFtZSBpcyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSB1 c2luZyB0aGUgc3Vic2NyaXB0aW9uJ3MgT0lECisgKiAoZS5nLiwgInBnX2NvbmZsaWN0X2xvZ188 c3ViaWQ+IikgdG8gZW5zdXJlIHVuaXF1ZW5lc3Mgd2l0aGluIHRoZQorICogY2x1c3RlciBhbmQg dG8gYXZvaWQgY29sbGlzaW9ucyBkdXJpbmcgc3Vic2NyaXB0aW9uIHJlbmFtZXMuCisgKi8KK09p ZAorY3JlYXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUsIE9p ZCBzdWJvd25lcikKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPaWQJCQlyZWxpZDsKKwljaGFy ICAgIAlyZWxuYW1lW05BTUVEQVRBTEVOXTsKKworCXNucHJpbnRmKHJlbG5hbWUsIE5BTUVEQVRB TEVOLCAicGdfY29uZmxpY3RfbG9nXyV1Iiwgc3ViaWQpOworCisJLyogQnVpbGQgdGhlIHR1cGxl IGRlc2NyaXB0b3IgZm9yIHRoZSBuZXcgdGFibGUuICovCisJdHVwZGVzYyA9IGNyZWF0ZV9jb25m bGljdF9sb2dfdGFibGVfdHVwZGVzYygpOworCisJLyogQ3JlYXRlIGNvbmZsaWN0IGxvZyB0YWJs ZS4gKi8KKwlyZWxpZCA9IGhlYXBfY3JlYXRlX3dpdGhfY2F0YWxvZyhyZWxuYW1lLAorCQkJCQkJ CQkJIFBHX0NPTkZMSUNUX05BTUVTUEFDRSwKKwkJCQkJCQkJCSAwLAkvKiB0YWJsZXNwYWNlICov CisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsaWQgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lk LCAvKiByZWx0eXBlaWQgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiByZWxvZnR5cGVpZCAq LworCQkJCQkJCQkJIHN1Ym93bmVyLAorCQkJCQkJCQkJIEhFQVBfVEFCTEVfQU1fT0lELAorCQkJ CQkJCQkJIHR1cGRlc2MsCisJCQkJCQkJCQkgTklMLAorCQkJCQkJCQkJIFJFTEtJTkRfUkVMQVRJ T04sCisJCQkJCQkJCQkgUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5ULAorCQkJCQkJCQkJIGZhbHNl LCAvKiBzaGFyZWRfcmVsYXRpb24gKi8KKwkJCQkJCQkJCSBmYWxzZSwgLyogbWFwcGVkX3JlbGF0 aW9uICovCisJCQkJCQkJCQkgT05DT01NSVRfTk9PUCwKKwkJCQkJCQkJCSAoRGF0dW0pIDAsIC8q IHJlbG9wdGlvbnMgKi8KKwkJCQkJCQkJCSBmYWxzZSwgLyogdXNlX3VzZXJfYWNsICovCisJCQkJ CQkJCQkgdHJ1ZSwgLyogYWxsb3dfc3lzdGVtX3RhYmxlX21vZHMgKi8KKwkJCQkJCQkJCSB0cnVl LCAvKiBpc19pbnRlcm5hbCAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbHJld3JpdGUg Ki8KKwkJCQkJCQkJCSBOVUxMKTsgLyogdHlwYWRkcmVzcyAqLworCUFzc2VydChPaWRJc1ZhbGlk KHJlbGlkKSk7CisKKwkvKiBSZWxlYXNlIHR1cGxlIGRlc2NyaXB0b3IgbWVtb3J5LiAqLworCUZy ZWVUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKgorCSAqIFdlIG11c3QgYnVtcCB0aGUgY29tbWFu ZCBjb3VudGVyIHRvIG1ha2UgdGhlIG5ld2x5LWNyZWF0ZWQgcmVsYXRpb24KKwkgKiB0dXBsZSB2 aXNpYmxlIGZvciBvcGVuaW5nLgorCSAqLworCUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisK KwkvKgorCSAqIENyZWF0ZSBhIFRPQVNUIHRhYmxlIGZvciB0aGUgY29uZmxpY3QgbG9nIHRvIHN1 cHBvcnQgb3V0LW9mLWxpbmUgc3RvcmFnZQorCSAqIG9mIGxhcmdlIGpzb24gZGF0YS4KKwkgKi8K KwlOZXdSZWxhdGlvbkNyZWF0ZVRvYXN0VGFibGUocmVsaWQsIChEYXR1bSkgMCk7CisKKwllcmVw b3J0KE5PVElDRSwKKwkJCShlcnJtc2coImNyZWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNc IiBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIiIsCisJCQkJCWdldF9xdWFsaWZpZWRfb2JqbmFtZShQ R19DT05GTElDVF9OQU1FU1BBQ0UsIHJlbG5hbWUpLAorCQkJCQlzdWJuYW1lKSkpOworCisJcmV0 dXJuIHJlbGlkOworfQorCisvKgorICogQ29udmVydCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9u IG9mIGEgY29uZmxpY3QgbG9nZ2luZyBkZXN0aW5hdGlvbiB0byBpdHMKKyAqIGNvcnJlc3BvbmRp bmcgZW51bSB2YWx1ZS4KKyAqLworQ29uZmxpY3RMb2dEZXN0CitHZXRDb25mbGljdExvZ0Rlc3Qo Y29uc3QgY2hhciAqZGVzdCkKK3sKKwkvKiBOVUxMIGRlZmF1bHRzIHRvIExPRy4gKi8KKwlpZiAo ZGVzdCA9PSBOVUxMIHx8IHBnX3N0cmNhc2VjbXAoZGVzdCwgImxvZyIpID09IDApCisJCXJldHVy biBDT05GTElDVF9MT0dfREVTVF9MT0c7CisKKwlpZiAocGdfc3RyY2FzZWNtcChkZXN0LCAidGFi bGUiKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1RfVEFCTEU7CisKKwlpZiAocGdf c3RyY2FzZWNtcChkZXN0LCAiYWxsIikgPT0gMCkKKwkJcmV0dXJuIENPTkZMSUNUX0xPR19ERVNU X0FMTDsKKworCS8qIFVucmVjb2duaXplZCBzdHJpbmcuICovCisJZXJlcG9ydChFUlJPUiwKKwkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJIGVycm1zZygi dW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1ZTogXCIlc1wiIiwgZGVz dCksCisJCQkgZXJyaGludCgiVmFsaWQgdmFsdWVzIGFyZSBcImxvZ1wiLCBcInRhYmxlXCIsIGFu ZCBcImFsbFwiLiIpKSk7Cit9CisKIC8qCiAgKiBHZXQgdGhlIHhtaW4gYW5kIGNvbW1pdCB0aW1l c3RhbXAgZGF0YSAob3JpZ2luIGFuZCB0aW1lc3RhbXApIGFzc29jaWF0ZWQKICAqIHdpdGggdGhl IHByb3ZpZGVkIGxvY2FsIHJvdy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3 cml0ZURlZmluZS5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMKaW5kZXgg NmEyMjNmYmVhYTQuLjk2OGVkOGNjZmNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRl L3Jld3JpdGVEZWZpbmUuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUu YwpAQCAtMjYyLDYgKzI2MiwxNyBAQCBEZWZpbmVRdWVyeVJld3JpdGUoY29uc3QgY2hhciAqcnVs ZW5hbWUsCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShldmVudF9yZWxhdGlvbikpLAog CQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKGV2ZW50X3JlbGF0aW9uLT5yZF9y ZWwtPnJlbGtpbmQpKSk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIHVzZWQg aW50ZXJuYWxseSBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdAorCSAqIGxvZ2dpbmcg YW5kIHNob3VsZCBub3QgaGF2ZSBydWxlcywgYXMgaXQgY291bGQgZGlzcnVwdCBjb25mbGljdCBs b2dnaW5nLgorCSAqLworCWlmIChJc0NvbmZsaWN0TG9nVGFibGVDbGFzcyhldmVudF9yZWxhdGlv bi0+cmRfcmVsKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05H X09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjb25mbGljdCBsb2cgdGFibGUgXCIlc1wiIGNh bm5vdCBoYXZlIHJ1bGVzIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGV2ZW50X3Jl bGF0aW9uKSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVt LW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOwor CiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbVJlbGF0aW9uKGV2ZW50X3Jl bGF0aW9uKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklD SUVOVF9QUklWSUxFR0UpLApAQCAtNzcyLDYgKzc4MywxNyBAQCBSYW5nZVZhckNhbGxiYWNrRm9y UmVuYW1lUnVsZShjb25zdCBSYW5nZVZhciAqcnYsIE9pZCByZWxpZCwgT2lkIG9sZHJlbGlkLAog CQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBjYW5ub3QgaGF2ZSBydWxlcyIsIHJ2LT5yZWxu YW1lKSwKIAkJCQkgZXJyZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRlZChmb3JtLT5yZWxraW5k KSkpOwogCisJLyoKKwkgKiBDb25mbGljdCBsb2cgdGFibGVzIGFyZSB1c2VkIGludGVybmFsbHkg Zm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3QKKwkgKiBsb2dnaW5nIGFuZCBzaG91bGQg bm90IGhhdmUgcnVsZXMsIGFzIGl0IGNvdWxkIGRpc3J1cHQgY29uZmxpY3QgbG9nZ2luZy4KKwkg Ki8KKwlpZiAoSXNDb25mbGljdExvZ1RhYmxlQ2xhc3MoZm9ybSkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygi Y29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiBjYW5ub3QgaGF2ZSBydWxlcyIsCisJCQkJCQlydi0+ cmVsbmFtZSksCisJCQkJIGVycmRldGFpbCgiQ29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgc3lzdGVt LW1hbmFnZWQgdGFibGVzIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cy4iKSkpOwor CiAJaWYgKCFhbGxvd1N5c3RlbVRhYmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKHJlbGlkLCBmb3Jt KSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9Q UklWSUxFR0UpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hl LmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCAwMzZkZTVmNzll Zi4uZTUyZDRjY2QwODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNj YWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zNzA5 LDcgKzM3MDksNyBAQCBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcChPaWQgbnNwaWQpCiAgKgkJ b2JqZWN0IGZvciB0aGUgZ2l2ZW4gbmFtZXNwYWNlIElEIGFuZCBvYmplY3QgbmFtZS4KICAqLwog Y2hhciAqCi1nZXRfcXVhbGlmaWVkX29iam5hbWUoT2lkIG5zcGlkLCBjaGFyICpvYmpuYW1lKQor Z2V0X3F1YWxpZmllZF9vYmpuYW1lKE9pZCBuc3BpZCwgY29uc3QgY2hhciAqb2JqbmFtZSkKIHsK IAljaGFyCSAgICpuc3BuYW1lOwogCWNoYXIJICAgKnJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKaW5kZXggMTRjYjc5 YzI2YmUuLjgwM2NhNDExMmQ0IDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwor KysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAtMTgzOSw2ICsxODM5LDEyIEBAIHNldHVw X3ByaXZpbGVnZXMoRklMRSAqY21kZmQpCiAJCQkJICAiICBBTkQgcmVsYWNsIElTIE5VTEw7XG5c biIsCiAJCQkJICBlc2NhcGVfcXVvdGVzKHVzZXJuYW1lKSk7CiAJUEdfQ01EX1BVVFMoIkdSQU5U IFVTQUdFIE9OIFNDSEVNQSBwZ19jYXRhbG9nLCBwdWJsaWMgVE8gUFVCTElDO1xuXG4iKTsKKwor CS8qCisJICogQWxsb3cgbm9uLXN1cGVydXNlciBzdWJzY3JpcHRpb24gb3duZXJzIHRvIGFjY2Vz cyB0aGVpciBhc3NvY2lhdGVkCisJICogY29uZmxpY3QgbG9nIHRhYmxlcyBpbiB0aGUgcGdfY29u ZmxpY3Qgc2NoZW1hLgorCSAqLworCVBHX0NNRF9QVVRTKCJHUkFOVCBVU0FHRSBPTiBTQ0hFTUEg cGdfY29uZmxpY3QgVE8gUFVCTElDO1xuXG4iKTsKIAlQR19DTURfUFVUUygiUkVWT0tFIEFMTCBP TiBwZ19sYXJnZW9iamVjdCBGUk9NIFBVQkxJQztcblxuIik7CiAJUEdfQ01EX1BVVFMoIklOU0VS VCBJTlRPIHBnX2luaXRfcHJpdnMgIgogCQkJCSIgIChvYmpvaWQsIGNsYXNzb2lkLCBvYmpzdWJp ZCwgaW5pdHByaXZzLCBwcml2dHlwZSkiCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNDZiOWFk ZDA2MDQuLmYzMzE0NjRmMmMxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzc2LDggKzIz NzYsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVf V0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFtZT4g U0VUICggKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRj aEFueSwgTWF0Y2hBbnlOLCAiU0VUIiwgIigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5Iiwg ImRpc2FibGVfb25fZXJyb3IiLCAiZmFpbG92ZXIiLAotCQkJCQkgICJtYXhfcmV0ZW50aW9uX2R1 cmF0aW9uIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25mbGljdF9s b2dfZGVzdGluYXRpb24iLCAiZGlzYWJsZV9vbl9lcnJvciIsCisJCQkJCSAgImZhaWxvdmVyIiwg Im1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVx dWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNs b3RfbmFtZSIsICJzdHJlYW1pbmciLAogCQkJCQkgICJzeW5jaHJvbm91c19jb21taXQiLCAidHdv X3BoYXNlIiwKQEAgLTM5NjEsOCArMzk2MSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKIAkvKiBDb21wbGV0ZSAiQ1JF QVRFIFNVQlNDUklQVElPTiA8bmFtZT4gLi4uICBXSVRIICggPG9wdD4iICovCiAJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQVElPTiIsIE1hdGNoQW55TiwgIldJVEgiLCAiKCIp KQotCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29ubmVjdCIsICJjb3B5X2RhdGEiLCAiY3Jl YXRlX3Nsb3QiLAotCQkJCQkgICJkaXNhYmxlX29uX2Vycm9yIiwgImVuYWJsZWQiLCAiZmFpbG92 ZXIiLAorCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwKKwkJCQkJICAiY3JlYXRlX3Nsb3QiLCAiZGlzYWJs ZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZhaWxvdmVyIiwKIAkJCQkJICAibWF4X3JldGVudGlv bl9kdXJhdGlvbiIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29yZF9yZXF1aXJlZCIsICJyZXRh aW5fZGVhZF90dXBsZXMiLAogCQkJCQkgICJydW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwgInN0 cmVhbWluZyIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdGFsb2cuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCmluZGV4IGE5ZDZlOGVhOTg2Li5mZWFiMzk4MmNm NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmgKQEAgLTI1LDYgKzI1LDcgQEAgZXh0ZXJuIGJvb2wgSXNJ bnBsYWNlVXBkYXRlUmVsYXRpb24oUmVsYXRpb24gcmVsYXRpb24pOwogCiBleHRlcm4gYm9vbCBJ c1N5c3RlbUNsYXNzKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CiBleHRlcm4g Ym9vbCBJc1RvYXN0Q2xhc3MoRm9ybV9wZ19jbGFzcyByZWx0dXBsZSk7CitleHRlcm4gYm9vbCBJ c0NvbmZsaWN0TG9nVGFibGVDbGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKTsKIAogZXh0ZXJu IGJvb2wgSXNDYXRhbG9nUmVsYXRpb25PaWQoT2lkIHJlbGlkKTsKIGV4dGVybiBib29sIElzQ2F0 YWxvZ1RleHRVbmlxdWVJbmRleE9pZChPaWQgcmVsaWQpOwpAQCAtMzIsNiArMzMsNyBAQCBleHRl cm4gYm9vbCBJc0lucGxhY2VVcGRhdGVPaWQoT2lkIHJlbGlkKTsKIAogZXh0ZXJuIGJvb2wgSXND YXRhbG9nTmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCk7CiBleHRlcm4gYm9vbCBJc1RvYXN0TmFt ZXNwYWNlKE9pZCBuYW1lc3BhY2VJZCk7CitleHRlcm4gYm9vbCBJc0NvbmZsaWN0TG9nVGFibGVO YW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKTsKIAogZXh0ZXJuIGJvb2wgSXNSZXNlcnZlZE5hbWUo Y29uc3QgY2hhciAqbmFtZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf bmFtZXNwYWNlLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdAppbmRl eCAzMDc1ZTE0MmM3My4uZGU4MzE2ZTQwZGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfbmFtZXNwYWNlLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFj ZS5kYXQKQEAgLTE4LDYgKzE4LDkgQEAKIHsgb2lkID0+ICc5OScsIG9pZF9zeW1ib2wgPT4gJ1BH X1RPQVNUX05BTUVTUEFDRScsCiAgIGRlc2NyID0+ICdyZXNlcnZlZCBzY2hlbWEgZm9yIFRPQVNU IHRhYmxlcycsCiAgIG5zcG5hbWUgPT4gJ3BnX3RvYXN0JywgbnNwYWNsID0+ICdfbnVsbF8nIH0s Cit7IG9pZCA9PiAnODk4OCcsIG9pZF9zeW1ib2wgPT4gJ1BHX0NPTkZMSUNUX05BTUVTUEFDRScs CisgIGRlc2NyID0+ICdyZXNlcnZlZCBzY2hlbWEgZm9yIHN1YnNjcmlwdGlvbi1zcGVjaWZpYyBj b25mbGljdCBsb2cgdGFibGVzJywKKyAgbnNwbmFtZSA9PiAncGdfY29uZmxpY3QnLCBuc3BhY2wg PT4gJ19udWxsXycgfSwKICMgdXBkYXRlIGR1bXBOYW1lc3BhY2UoKSBpZiBjaGFuZ2luZyB0aGlz IGRlc2NyCiB7IG9pZCA9PiAnMjIwMCcsIG9pZF9zeW1ib2wgPT4gJ1BHX1BVQkxJQ19OQU1FU1BB Q0UnLAogICBkZXNjciA9PiAnc3RhbmRhcmQgcHVibGljIHNjaGVtYScsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uaAppbmRleCA0ODk0NDIwMTg4OS4uNDMzOGU2NjIwYjQgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaApAQCAtOTUsNyArOTUsMTYgQEAgQ0FUQUxP RyhwZ19zdWJzY3JpcHRpb24sNjEwMCxTdWJzY3JpcHRpb25SZWxhdGlvbklkKSBCS0lfU0hBUkVE X1JFTEFUSU9OIEJLSV9ST1cKIAlPaWQJCQlzdWJzZXJ2ZXIgQktJX0xPT0tVUF9PUFQocGdfZm9y ZWlnbl9zZXJ2ZXIpOwkvKiBJZiBjb25uZWN0aW9uIHVzZXMKIAkJCQkJCQkJCQkJCQkJCQkgKiBz ZXJ2ZXIgKi8KIAorCU9pZAkJCXN1YmNvbmZsaWN0bG9ncmVsaWQ7IC8qIFJlbGlkIG9mIHRoZSBj b25mbGljdCBsb2cgdGFibGUuICovCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJs ZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwkvKgorCSAqIFN0cmF0ZWd5IGZvciBsb2dn aW5nIHJlcGxpY2F0aW9uIGNvbmZsaWN0czoKKwkgKiAnbG9nJyAtIHNlcnZlciBsb2cgb25seSwK KwkgKiAndGFibGUnIC0gY29uZmxpY3QgbG9nIHRhYmxlIG9ubHksCisJICogJ2FsbCcgLSBib3Ro IGxvZyBhbmQgdGFibGUuCisJICovCisJdGV4dAkJc3ViY29uZmxpY3Rsb2dkZXN0IEJLSV9GT1JD RV9OT1RfTlVMTDsKKwogCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8K IAl0ZXh0CQlzdWJjb25uaW5mbzsJLyogU2V0IGlmIGNvbm5lY3Rpbmcgd2l0aCBjb25uZWN0aW9u IHN0cmluZyAqLwogCkBAIC0xNjQsNiArMTczLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0 aW9uCiAJCQkJCQkJCQkgKiBhbmQgdGhlIHJldGVudGlvbiBkdXJhdGlvbiBoYXMgbm90CiAJCQkJ CQkJCQkgKiBleGNlZWRlZCBtYXhfcmV0ZW50aW9uX2R1cmF0aW9uLCB3aGVuCiAJCQkJCQkJCQkg KiBkZWZpbmVkICovCisJT2lkCQkJY29uZmxpY3Rsb2dyZWxpZDsJLyogY29uZmxpY3QgbG9nIHRh YmxlIE9pZCAqLwogCWNoYXIJICAgKmNvbm5pbmZvOwkJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8g dGhlIHB1Ymxpc2hlciAqLwogCWNoYXIJICAgKnNsb3RuYW1lOwkJLyogTmFtZSBvZiB0aGUgcmVw bGljYXRpb24gc2xvdCAqLwogCWNoYXIJICAgKnN5bmNjb21taXQ7CQkvKiBTeW5jaHJvbm91cyBj b21taXQgc2V0dGluZyBmb3Igd29ya2VyICovCkBAIC0xNzEsNiArMTgxLDcgQEAgdHlwZWRlZiBz dHJ1Y3QgU3Vic2NyaXB0aW9uCiAJTGlzdAkgICAqcHVibGljYXRpb25zOwkvKiBMaXN0IG9mIHB1 YmxpY2F0aW9uIG5hbWVzIHRvIHN1YnNjcmliZSB0byAqLwogCWNoYXIJICAgKm9yaWdpbjsJCQkv KiBPbmx5IHB1Ymxpc2ggZGF0YSBvcmlnaW5hdGluZyBmcm9tIHRoZQogCQkJCQkJCQkgKiBzcGVj aWZpZWQgb3JpZ2luICovCisJY2hhcgkgICAqY29uZmxpY3Rsb2dkZXN0OwkvKiBDb25mbGljdCBs b2cgZGVzdGluYXRpb24gKi8KIH0gU3Vic2NyaXB0aW9uOwogCiAjaWZkZWYgRVhQT1NFX1RPX0NM SUVOVF9DT0RFCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5o IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaAppbmRleCAyZDlkYmNmNGQwZC4u YTAxN2UxZTZjYjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0 LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaApAQCAtMTAsNiArMTAs NyBAQAogI2RlZmluZSBDT05GTElDVF9ICiAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJkYXRhdHlwZS90aW1lc3Rh bXAuaCIKICNpbmNsdWRlICJub2Rlcy9wZ19saXN0LmgiCiAKQEAgLTc5LDYgKzgwLDMyIEBAIHR5 cGVkZWYgc3RydWN0IENvbmZsaWN0VHVwbGVJbmZvCiAJCQkJCQkJCSAqIGNvbmZsaWN0aW5nIGxv Y2FsIHJvdyBvY2N1cnJlZCAqLwogfSBDb25mbGljdFR1cGxlSW5mbzsKIAorLyoKKyAqIERlZmlu ZXMgd2hlcmUgbG9naWNhbCByZXBsaWNhdGlvbiBjb25mbGljdCBkZXRhaWxzIGFyZSByZWNvcmRl ZC4KKyAqCisgKiBXaGlsZSBzdG9yZWQgYXMgYSB0ZXh0LWJhc2VkIGFycmF5L3N0cmluZyBpbgor ICogcGdfc3Vic2NyaXB0aW9uLnN1YmNvbmZsaWN0bG9nZGVzdCBmb3IgdXNlciByZWFkYWJpbGl0 eSBhbmQgZXh0ZW5zaWJpbGl0eSwKKyAqIHdlIG1hcCB0aGVzZSB0byBhbiBpbnRlcm5hbCBlbnVt IHRvIGFsbG93IGZvciBlZmZpY2llbnQgY2hlY2tzLgorICovCit0eXBlZGVmIGVudW0gQ29uZmxp Y3RMb2dEZXN0Cit7CisJQ09ORkxJQ1RfTE9HX0RFU1RfTE9HID0gMCwJLyogRW1pdCB0byBzZXJ2 ZXIgbG9ncyAqLworCUNPTkZMSUNUX0xPR19ERVNUX1RBQkxFLAkvKiBJbnNlcnQgaW50byB0aGUg Y29uZmxpY3QgbG9nIHRhYmxlICovCisJQ09ORkxJQ1RfTE9HX0RFU1RfQUxMCQkvKiBCb3RoIGxv ZyBhbmQgdGFibGUgKi8KK30gQ29uZmxpY3RMb2dEZXN0OworCisjZGVmaW5lIENPTkZMSUNUU19M T0dHRURfVE9fVEFCTEUoZGVzdCkgXAorCSgoZGVzdCA9PSBDT05GTElDVF9MT0dfREVTVF9UQUJM RSkgfHwgKGRlc3QgPT0gQ09ORkxJQ1RfTE9HX0RFU1RfQUxMKSkKKyNkZWZpbmUgQ09ORkxJQ1RT X0xPR0dFRF9UT19MT0coZGVzdCkgXAorCSgoZGVzdCA9PSBDT05GTElDVF9MT0dfREVTVF9MT0cp IHx8IChkZXN0ID09IENPTkZMSUNUX0xPR19ERVNUX0FMTCkpCisKKy8qCisgKiBBcnJheSBtYXBw aW5nIGZvciBjb252ZXJ0aW5nIGludGVybmFsIGVudW0gdG8gc3RyaW5nLgorICovCitleHRlcm4g UEdETExJTVBPUlQgY29uc3QgY2hhciAqY29uc3QgQ29uZmxpY3RMb2dEZXN0TmFtZXNbXTsKKwor ZXh0ZXJuIE9pZCBjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3Vi bmFtZSwgT2lkIHN1Ym93bmVyKTsKK2V4dGVybiBDb25mbGljdExvZ0Rlc3QgR2V0Q29uZmxpY3RM b2dEZXN0KGNvbnN0IGNoYXIgKmRlc3QpOwogZXh0ZXJuIGJvb2wgR2V0VHVwbGVUcmFuc2FjdGlv bkluZm8oVHVwbGVUYWJsZVNsb3QgKmxvY2Fsc2xvdCwKIAkJCQkJCQkJCVRyYW5zYWN0aW9uSWQg KnhtaW4sCiAJCQkJCQkJCQlSZXBsT3JpZ2luSWQgKmxvY2Fsb3JpZ2luLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2Fj aGUuaAppbmRleCA4NjU5ODBjYjBmMS4uNTNjMmE5ZTg2NzMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o CkBAIC0yMDIsNyArMjAyLDcgQEAgZXh0ZXJuIGJvb2wgZ2V0X2F0dHN0YXRzc2xvdChBdHRTdGF0 c1Nsb3QgKnNzbG90LCBIZWFwVHVwbGUgc3RhdHN0dXBsZSwKIGV4dGVybiB2b2lkIGZyZWVfYXR0 c3RhdHNzbG90KEF0dFN0YXRzU2xvdCAqc3Nsb3QpOwogZXh0ZXJuIGNoYXIgKmdldF9uYW1lc3Bh Y2VfbmFtZShPaWQgbnNwaWQpOwogZXh0ZXJuIGNoYXIgKmdldF9uYW1lc3BhY2VfbmFtZV9vcl90 ZW1wKE9pZCBuc3BpZCk7Ci1leHRlcm4gY2hhciAqZ2V0X3F1YWxpZmllZF9vYmpuYW1lKE9pZCBu c3BpZCwgY2hhciAqb2JqbmFtZSk7CitleHRlcm4gY2hhciAqZ2V0X3F1YWxpZmllZF9vYmpuYW1l KE9pZCBuc3BpZCwgY29uc3QgY2hhciAqb2JqbmFtZSk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9z dWJ0eXBlKE9pZCByYW5nZU9pZCk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9jb2xsYXRpb24oT2lk IHJhbmdlT2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX2NvbnN0cnVjdG9yMihPaWQgcmFuZ2VP aWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IDhk YmZhYzY2MzI2Li5kMjAxYWQ3NjRmMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zdWJzY3JpcHRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vi c2NyaXB0aW9uLm91dApAQCAtNjE5LDYgKzYxOSwzMDEgQEAgQ09NTUlUOwogLS0gb2ssIG93bmlu ZyBpdCBpcyBlbm91Z2ggZm9yIHRoaXMgc3R1ZmYKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YjsKKy0tCistLSBDT05GTElDVCBMT0cgREVTVElOQVRJT04gVEVTVFMKKy0tCitT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyJzsKK1NF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gV0FSTklORzsKKy0tIGZhaWwgLSB1bnJlY29nbml6ZWQg cGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZmFp bCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRl c3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAn aW52YWxpZCcpOworRVJST1I6ICB1bnJlY29nbml6ZWQgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9u IHZhbHVlOiAiaW52YWxpZCIKK0hJTlQ6ICBWYWxpZCB2YWx1ZXMgYXJlICJsb2ciLCAidGFibGUi LCBhbmQgImFsbCIuCistLSB2ZXJpZnkgc3ViY29uZmxpY3Rsb2dkZXN0IGlzICdsb2cnIGFuZCBz dWJjb25mbGljdGxvZ3JlbGlkIGlzIDAgKEludmFsaWRPaWQpIGZvciBkZWZhdWx0IGNhc2UKK0NS RUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBDT05ORUNUSU9O ICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAo Y29ubmVjdCA9IGZhbHNlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1 dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBt dXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJz Y3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRp b25zLgorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dy ZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X2xvZ19kZWZhdWx0JzsKKyAgICAgICAgICAgc3VibmFtZSAgICAgICAgICAgIHwgc3ViY29u ZmxpY3Rsb2dkZXN0IHwgc3ViY29uZmxpY3Rsb2dyZWxpZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IHwgbG9nICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgMAorKDEgcm93KQorCistLSBmYWlsIC0gZW1wdHkgc3RyaW5nIHBhcmFtZXRl ciB2YWx1ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3Rw dWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnJyk7 CitFUlJPUjogIHVucmVjb2duaXplZCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gdmFsdWU6ICIi CitISU5UOiAgVmFsaWQgdmFsdWVzIGFyZSAibG9nIiwgInRhYmxlIiwgYW5kICJhbGwiLgorLS0g dGhpcyBzaG91bGQgZ2VuZXJhdGUgYSBjb25mbGljdCBsb2cgdGFibGUgbmFtZWQgcGdfY29uZmxp Y3RfbG9nXyRzdWJpZCQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0 MSBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRl c3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAn dGFibGUnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgorLS0g Y2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vic2NyaXB0aW9uOiBkZXN0aW5hdGlvbiBzaG91bGQgYmUg J3RhYmxlJyBhbmQgc3ViY29uZmxpY3Rsb2dyZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1 YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitG Uk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVz dDEnOworICAgICAgICBzdWJuYW1lICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBoYXNf cmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIHwgdGFibGUgICAgICAgICAgICAgIHwg dAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGV4aXN0cywgaXRzIE9J RCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVsaWQsCistLSBhbmQgaXQgaXMgbG9jYXRlZCBpbiB0 aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UKK1NFTEVDVCBuLm5zcG5hbWUsIChjLm9pZCA9IHMu c3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9pZF9tYXRjaGVzIgorRlJPTSBwZ19jbGFzcyBjCitK T0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8 fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitX SEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MSc7CisgICBuc3BuYW1lICAg fCBvaWRfbWF0Y2hlcyAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHBnX2NvbmZsaWN0 IHwgdAorKDEgcm93KQorCistLSBjaGVjayBpZiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIGhhcyB0 aGUgY29ycmVjdCBzY2hlbWEKK1NFTEVDVCBhLmF0dG51bSwgYS5hdHRuYW1lCitGUk9NIHBnX2F0 dHJpYnV0ZSBhCitKT0lOIHBnX2NsYXNzIGMgT04gYS5hdHRyZWxpZCA9IGMub2lkCitKT0lOIHBn X3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9p ZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0dG51 bSA+IDAKKyAgICBPUkRFUiBCWSBhLmF0dG51bTsKKyBhdHRudW0gfCAgICAgICAgYXR0bmFtZSAg ICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgMSB8IHJlbGlk CisgICAgICAyIHwgc2NoZW1hbmFtZQorICAgICAgMyB8IHJlbG5hbWUKKyAgICAgIDQgfCBjb25m bGljdF90eXBlCisgICAgICA1IHwgcmVtb3RlX3hpZAorICAgICAgNiB8IHJlbW90ZV9jb21taXRf bHNuCisgICAgICA3IHwgcmVtb3RlX2NvbW1pdF90cworICAgICAgOCB8IHJlbW90ZV9vcmlnaW4K KyAgICAgIDkgfCByZXBsaWNhX2lkZW50aXR5X2Z1bGwKKyAgICAgMTAgfCByZXBsaWNhX2lkZW50 aXR5CisgICAgIDExIHwgcmVtb3RlX3R1cGxlCisgICAgIDEyIHwgbG9jYWxfY29uZmxpY3RzCiso MTIgcm93cykKKworLS0gQ2hhbmdpbmcgdGhlIHN1YnNjcmlwdGlvbiBvd25lciBzaG91bGQgYWxz byB1cGRhdGUgdGhlIG93bmVyCistLSBvZiB0aGUgYXNzb2NpYXRlZCBjb25mbGljdCBsb2cgdGFi bGUuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05FUiBUTyBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKK1NFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF91c2Vy YnlpZChjLnJlbG93bmVyKSBBUyBvd25lcgorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pP SU4gcGdfY2F0YWxvZy5wZ19zdWJzY3JpcHRpb24gcworICAgICAgICBPTiBjLnJlbG5hbWUgPSAn cGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2Nv bmZsaWN0X3Rlc3QxJzsKKyAgICAgICAgICAgb3duZXIgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMgorKDEgcm93KQor CistLSBWZXJpZnkgdGhhdCBhIG5vbi1zdXBlcnVzZXIgc3Vic2NyaXB0aW9uIG93bmVyIGNhbiB0 cnVuY2F0ZSwKKy0tIGRlbGV0ZSBmcm9tLCBhbmQgc2VsZWN0IGZyb20gdGhlIGFzc29jaWF0ZWQg Y29uZmxpY3QgbG9nIHRhYmxlLgorU0VUIFJPTEUgJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIy JzsKK1NFTEVDVCBmb3JtYXQoJyVJLiVJJywgbi5uc3BuYW1lLCBjLnJlbG5hbWUpIEFTIGNvbmZs aWN0X2xvZ190YWJsZQorRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKK0pPSU4gcGdfY2F0YWxv Zy5wZ19uYW1lc3BhY2UgbgorCU9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UKK0pPSU4gcGdfY2F0 YWxvZy5wZ19zdWJzY3JpcHRpb24gcworCU9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2df JyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnCitc Z3NldAorVFJVTkNBVEUgVEFCTEUgOmNvbmZsaWN0X2xvZ190YWJsZTsKK0RFTEVURSBGUk9NIDpj b25mbGljdF9sb2dfdGFibGU7CitTRUxFQ1QgQ09VTlQoKikgRlJPTSA6Y29uZmxpY3RfbG9nX3Rh YmxlOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK1JFU0VUIFJPTEU7Cist LSBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzdWJzY3JpcHRpb24gb3duZXIuCitBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBPV05FUiBUTyByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyOworLS0KKy0tIEFMVEVSIFNVQlNDUklQVElPTiAtIGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGUgdHJh bnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVudCBsb2dnaW5nCistLSBkZXN0aW5hdGlvbnMs IGVuc3VyaW5nIGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIGNyZWF0ZWQgb3IgZHJvcHBlZCBhcwor LS0gZXhwZWN0ZWQKKy0tCistLSB0cmFuc2l0aW9uIGZyb20gJ2xvZycgdG8gJ2FsbCcKKy0tIGEg bmV3IGNvbmZsaWN0IGxvZyB0YWJsZSBzaG91bGQgYmUgY3JlYXRlZAorQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24g d2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVw bGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwg ZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJl ZnJlc2ggcHVibGljYXRpb25zLgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3Rf dGVzdDIgU0VUIChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnYWxsJyk7CistLSB2ZXJpZnkg bWV0YWRhdGEgYWZ0ZXIgQUxURVIgKGRlc3RpbmF0aW9uIHNob3VsZCBiZSAnYWxsJykKK1NFTEVD VCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFT IGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNz X2NvbmZsaWN0X3Rlc3QyJzsKKyAgICAgICAgc3VibmFtZSAgICAgICAgIHwgc3ViY29uZmxpY3Rs b2dkZXN0IHwgaGFzX3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgcmVncmVzc19jb25mbGljdF90ZXN0MiB8IGFsbCAgICAg ICAgICAgICAgICB8IHQKKygxIHJvdykKKworLS0gdHJhbnNpdGlvbiBmcm9tICdhbGwnIHRvICd0 YWJsZScKKy0tIHNob3VsZCBOT1QgZHJvcCB0aGUgdGFibGUsIG9ubHkgY2hhbmdlIGRlc3RpbmF0 aW9uIHN0cmluZworU0VMRUNUIHN1YmNvbmZsaWN0bG9ncmVsaWQgQVMgb2xkX3JlbGlkIEZST00g cGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Micg XGdzZXQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29u ZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dk ZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID0gOm9sZF9yZWxpZCBBUyByZWxpZF91bmNoYW5nZWQK K0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90 ZXN0Mic7Cisgc3ViY29uZmxpY3Rsb2dkZXN0IHwgcmVsaWRfdW5jaGFuZ2VkIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0KKyB0YWJsZSAgICAgICAgICAgICAgfCB0Ciso MSByb3cpCisKKy0tIHRyYW5zaXRpb24gZnJvbSAndGFibGUnIHRvICdsb2cnCistLSBzaG91bGQg ZHJvcCB0aGUgdGFibGUgYW5kIGNsZWFyIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0 aW9uID0gJ2xvZycpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dy ZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Rlc3QyJzsKKyBzdWJjb25mbGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbG9nICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhlIHBo eXNpY2FsIHRhYmxlIGlzIGdvbmUKK1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19jbGFzcyBjCitK T0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8 fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDInOworIGNv dW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tCistLSBQVUJMSUNBVElPTjogVmVy aWZ5IGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIG5vdCBwdWJsaXNoYWJsZQorLS0KKy0tIHBnX3Jl bGF0aW9uX2lzX3B1Ymxpc2hhYmxlIHNob3VsZCByZXR1cm4gZmFsc2UgZm9yIGNvbmZsaWN0IGxv ZyB0YWJsZXMgdG8KKy0tIHByZXZlbnQgdGhlbSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbmNs dWRlZCBpbiBwdWJsaWNhdGlvbnMKKy0tCitTRUxFQ1Qgbi5uc3BuYW1lLCBwZ19yZWxhdGlvbl9p c19wdWJsaXNoYWJsZShjLm9pZCkKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIHMu c3ViY29uZmxpY3Rsb2dyZWxpZCA9IGMub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF90ZXN0MSc7CisgICBuc3BuYW1lICAgfCBwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJs ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHBnX2NvbmZs aWN0IHwgZgorKDEgcm93KQorCistLQorLS0gVGFibGUgUHJvdGVjdGlvbiBhbmQgTGlmZWN5Y2xl IE1hbmFnZW1lbnQKKy0tCistLSBUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhhdDoKKy0tIE1hbnVhbCBE Uk9QIFRBQkxFIGlzIGRpc2FsbG93ZWQKKy0tIERST1AgU1VCU0NSSVBUSU9OIGF1dG9tYXRpY2Fs bHkgcmVhcHMgdGhlIHRhYmxlCistLQorLS0gcmUtZW5hYmxlIHRhYmxlIGxvZ2dpbmcgZm9yIHZl cmlmaWNhdGlvbgorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgU0VU IChjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKKy0tIFRoZSBjb25mbGljdCBs b2cgdGFibGUgbmFtZSBjb250YWlucyB0aGUgc3Vic2NyaXB0aW9uIE9JRCwgd2hpY2ggaXMKKy0t IG5vbi1kZXRlcm1pbmlzdGljLiAgQ2FwdHVyZSBpdCBpbnRvIGEgcHNxbCB2YXJpYWJsZSBhbmQg cmVwb3J0IG9ubHkgdGhlCistLSBTUUxTVEFURSwgc28gdGhlIGV4cGVjdGVkIG91dHB1dCBkb2Vz IG5vdCBkZXBlbmQgb24gdGhlIE9JRC4KKy0tIGZhaWwgLSBkcm9wIHRhYmxlIG5vdCBhbGxvd2Vk IGR1ZSB0byBpbnRlcm5hbCBkZXBlbmRlbmN5CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9IE5P VElDRTsKK1NFTEVDVCAncGdfY29uZmxpY3QucGdfY29uZmxpY3RfbG9nXycgfHwgb2lkIEFTIGNs dDEKKyAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29u ZmxpY3RfdGVzdDEnIFxnc2V0Citcc2V0IFZFUkJPU0lUWSBzcWxzdGF0ZQorRFJPUCBUQUJMRSA6 Y2x0MTsKK0VSUk9SOiAgNDI1MDEKK1xzZXQgVkVSQk9TSVRZIGRlZmF1bHQKKy0tIENMRUFOVVA6 IERST1AgU1VCU0NSSVBUSU9OIHJlYXBzIHRoZSB0YWJsZQorQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfdGVzdDEgRElTQUJMRTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QxIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CistLSBWZXJpZnkgdGhlIHRh YmxlIE9JRCBmb3IgcmVhcCBjaGVjaworU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9s b2dfJyB8fCBvaWQgQVMgaW50ZXJuYWxfdGFibGVuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdI RVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKK1NFVCBjbGllbnRf bWluX21lc3NhZ2VzID0gV0FSTklORzsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfdGVzdDE7CistLSBzaG91bGQgcmV0dXJuIE5VTEwsIG1lYW5pbmcgdGhlIGNvbmZsaWN0IGxv ZyB0YWJsZSB3YXMgcmVhcGVkIHZpYSBkZXBlbmRlbmN5CitTRUxFQ1QgdG9fcmVnY2xhc3MoOidp bnRlcm5hbF90YWJsZW5hbWUnKTsKKyB0b19yZWdjbGFzcyAKKy0tLS0tLS0tLS0tLS0KKyAKKygx IHJvdykKKworLS0KKy0tIEFkZGl0aW9uYWwgTmFtZXNwYWNlIGFuZCBUYWJsZSBQcm90ZWN0aW9u IFRlc3RzCistLQorLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZlIGEgc3Vic2NyaXB0aW9uIHdpdGgg YSBjb25mbGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF9wcm90ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 JworICAgIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGlj dF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2Fz IGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGlj YXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5h YmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJl c2ggcHVibGljYXRpb25zLgorLS0gVGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBpcyBzeXN0ZW0tbWFu YWdlZDsgaXRzIG5hbWUgY29udGFpbnMgdGhlCistLSBzdWJzY3JpcHRpb24gT0lELCB3aGljaCBp cyBub24tZGV0ZXJtaW5pc3RpYy4gIENhcHR1cmUgdGhlIG5hbWUgaW50byBhIHBzcWwKKy0tIHZh cmlhYmxlIGFuZCByZXBvcnQgb25seSB0aGUgU1FMU1RBVEUgZm9yIHRoZSBvcGVyYXRpb25zIHRo YXQgbXVzdCBiZQorLS0gcmVqZWN0ZWQsIHNvIHRoZSBleHBlY3RlZCBvdXRwdXQgc3RheXMgZnJl ZSBvZiB0aGUgZHluYW1pYyBPSUQuICBFdmVyeQorLS0gc3RhdGVtZW50IGluIHRoZSBWRVJCT1NJ VFktc3Fsc3RhdGUgYmxvY2sgYmVsb3cgbXVzdCBmYWlsIHdpdGggNDI4MDkKKy0tICh3cm9uZ19v YmplY3RfdHlwZSksIGV4Y2VwdCBhZGRpbmcgdGhlIHRhYmxlIHRvIGEgcHVibGljYXRpb24sIHdo aWNoIGZhaWxzCistLSB3aXRoIDIyMDIzIChpbnZhbGlkX3BhcmFtZXRlcl92YWx1ZSkuCitTRUxF Q1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBBUyBjbHQKKyAgICBGUk9NIHBnX2NsYXNzIGMg Sk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycg fHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0 aW9uX3Rlc3QnIFxnc2V0CistLSBUcmlnZ2VyIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIENSRUFURSBU UklHR0VSIGNoZWNrIGJlbG93LgorQ1JFQVRFIEZVTkNUSU9OIHB1YmxpYy5kdW1teV90cmlnZ2Vy X2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKK0JFR0lOCisgICAgUkVUVVJOIE5FVzsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7Citcc2V0IFZFUkJPU0lUWSBzcWxzdGF0ZQorQUxURVIg VEFCTEUgOmNsdCBBREQgQ09MVU1OIGV4dHJhX2luZm8gdGV4dDsKK0VSUk9SOiAgNDI4MDkKK0lO U0VSVCBJTlRPIDpjbHQgKHJlbG5hbWUpIFZBTFVFUyAoJ215dGVzdCcpOworRVJST1I6ICA0Mjgw OQorVVBEQVRFIDpjbHQgU0VUIHJlbG5hbWUgPSAnbXl0ZXN0JzsKK0VSUk9SOiAgNDI4MDkKK0NS RUFURSBQT0xJQ1kgcDEgT04gOmNsdCBVU0lORyAodHJ1ZSk7CitFUlJPUjogIDQyODA5CitDUkVB VEUgU1RBVElTVElDUyBzMSBPTiByZWxuYW1lLCBzY2hlbWFuYW1lIEZST00gOmNsdDsKK0VSUk9S OiAgNDI4MDkKK0NSRUFURSBUQUJMRSBwdWJsaWMuY29uZmxpY3RfY2hpbGQgKCkgSU5IRVJJVFMg KDpjbHQpOworRVJST1I6ICA0MjgwOQorQUxURVIgVEFCTEUgOmNsdCBSRU5BTUUgQ09MVU1OIHJl bG5hbWUgVE8gbmV3X3JlbG5hbWU7CitFUlJPUjogIDQyODA5CitDUkVBVEUgVEFCTEUgcHVibGlj LmNvbmZsaWN0X2ZrIChyZWxuYW1lIHRleHQgUkVGRVJFTkNFUyA6Y2x0KHJlbG5hbWUpKTsKK0VS Uk9SOiAgNDI4MDkKK0FMVEVSIFRBQkxFIDpjbHQgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRp b25fdXNlcl9kdW1teTsKK0VSUk9SOiAgNDI4MDkKK0FMVEVSIFRBQkxFIDpjbHQgU0VUIFNDSEVN QSBwdWJsaWM7CitFUlJPUjogIDQyODA5CitDUkVBVEUgVFJJR0dFUiB0MSBCRUZPUkUgSU5TRVJU IE9OIDpjbHQgRk9SIEVBQ0ggUk9XIEVYRUNVVEUgRlVOQ1RJT04gcHVibGljLmR1bW15X3RyaWdn ZXJfZnVuYygpOworRVJST1I6ICA0MjgwOQorQUxURVIgVFJJR0dFUiBub25fZXhpc3RlbnRfdHJp Z2dlciBPTiA6Y2x0IFJFTkFNRSBUTyBuZXdfdHJpZ2dlcjsKK0VSUk9SOiAgNDI4MDkKK0NSRUFU RSBSVUxFIHIxIEFTIE9OIElOU0VSVCBUTyA6Y2x0IERPIElOU1RFQUQgTk9USElORzsKK0VSUk9S OiAgNDI4MDkKK0FMVEVSIFJVTEUgbm9uX2V4aXN0ZW50X3J1bGUgT04gOmNsdCBSRU5BTUUgVE8g bmV3X3J1bGU7CitFUlJPUjogIDQyODA5CitDUkVBVEUgSU5ERVggaWR4MSBPTiA6Y2x0IChyZWxu YW1lKTsKK0VSUk9SOiAgNDI4MDkKK1NFTEVDVCAxIEZST00gOmNsdCBGT1IgVVBEQVRFOworRVJS T1I6ICA0MjgwOQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yX2NsdCBGT1IgVEFCTEUg OmNsdDsKK0VSUk9SOiAgMjIwMjMKK1xzZXQgVkVSQk9TSVRZIGRlZmF1bHQKKy0tIENsZWFuIHVw IHRoZSB0cmlnZ2VyIGZ1bmN0aW9uIHVzZWQgYWJvdmUuCitEUk9QIEZVTkNUSU9OIHB1YmxpYy5k dW1teV90cmlnZ2VyX2Z1bmMoKTsKKy0tIFRSVU5DQVRFIGFuZCBERUxFVEUgYXJlIGFsbG93ZWQg c28gdGhhdCB1c2VycyBjYW4gcHJ1bmUgdGhlIGNvbmZsaWN0IGxvZy4KK1RSVU5DQVRFIDpjbHQ7 CitERUxFVEUgRlJPTSA6Y2x0OworLS0gQ3JlYXRpbmcgYSB0YWJsZSBkaXJlY3RseSBpbiB0aGUg cGdfY29uZmxpY3QgbmFtZXNwYWNlIGlzIHJlamVjdGVkIGZvcgorLS0gZXZlcnlvbmUgKHRoZSBz Y2hlbWEgaXMgcmVzZXJ2ZWQgZm9yIGNvbmZsaWN0IGxvZyB0YWJsZXMpLgorQ1JFQVRFIFRBQkxF IHBnX2NvbmZsaWN0Lm1hbnVhbF90YWJsZSAoaWQgaW50KTsKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHNjaGVtYSBwZ19jb25mbGljdAorTElORSAxOiBDUkVBVEUgVEFCTEUgcGdfY29u ZmxpY3QubWFudWFsX3RhYmxlIChpZCBpbnQpOworICAgICAgICAgICAgICAgICAgICAgXgorLS0g TW92aW5nIGEgdXNlciB0YWJsZSBpbnRvIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UgaXMgbGlr ZXdpc2UgcmVqZWN0ZWQuCitDUkVBVEUgVEFCTEUgcHVibGljLnRlc3RfbW92ZSAoaWQgaW50KTsK K0FMVEVSIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgU0VUIFNDSEVNQSBwZ19jb25mbGljdDsKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNjaGVtYSBwZ19jb25mbGljdAorRFJPUCBUQUJM RSBwdWJsaWMudGVzdF9tb3ZlOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSBXQVJOSU5HOwor LS0gQ2xlYW4gdXAgcmVtYWluaW5nIHRlc3Qgc3Vic2NyaXB0aW9uCitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgU0VUIChzbG90X25hbWUgPSBOT05FKTsK K0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQ7CitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBESVNBQkxFOworQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDI7CitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgRElTQUJMRTsKK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBTRVQgKHNsb3RfbmFtZSA9 IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rl c3Q7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlcjsKIERST1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMjsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCmluZGV4IDA1NTMzZDY2Njc1Li44NmM0MDJj NTlhYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCkBAIC00NzQsNiArNDc0 LDI0MCBAQCBDT01NSVQ7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo c2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiAK Ky0tCistLSBDT05GTElDVCBMT0cgREVTVElOQVRJT04gVEVTVFMKKy0tCisKK1NFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXInOworCitTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9IFdBUk5JTkc7CisKKy0tIGZhaWwgLSB1bnJlY29nbml6ZWQgcGFyYW1l dGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZmFpbCBDT05O RUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIg V0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAnaW52YWxp ZCcpOworCistLSB2ZXJpZnkgc3ViY29uZmxpY3Rsb2dkZXN0IGlzICdsb2cnIGFuZCBzdWJjb25m bGljdGxvZ3JlbGlkIGlzIDAgKEludmFsaWRPaWQpIGZvciBkZWZhdWx0IGNhc2UKK0NSRUFURSBT VUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBDT05ORUNUSU9OICdkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVj dCA9IGZhbHNlKTsKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZs aWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVz c19jb25mbGljdF9sb2dfZGVmYXVsdCc7CisKKy0tIGZhaWwgLSBlbXB0eSBzdHJpbmcgcGFyYW1l dGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3Ry IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVz dHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICcn KTsKKworLS0gdGhpcyBzaG91bGQgZ2VuZXJhdGUgYSBjb25mbGljdCBsb2cgdGFibGUgbmFtZWQg cGdfY29uZmxpY3RfbG9nXyRzdWJpZCQKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MSBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJ Q0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGlu YXRpb24gPSAndGFibGUnKTsKKworLS0gY2hlY2sgbWV0YWRhdGEgaW4gcGdfc3Vic2NyaXB0aW9u OiBkZXN0aW5hdGlvbiBzaG91bGQgYmUgJ3RhYmxlJyBhbmQgc3ViY29uZmxpY3Rsb2dyZWxpZCB2 YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dy ZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRh YmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVsaWQsCistLSBhbmQg aXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UKK1NFTEVDVCBuLm5z cG5hbWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9pZF9tYXRjaGVzIgor RlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9ICdw Z19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJlbG5h bWVzcGFjZSA9IG4ub2lkCitXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0 MSc7CisKKy0tIGNoZWNrIGlmIHRoZSBjb25mbGljdCBsb2cgdGFibGUgaGFzIHRoZSBjb3JyZWN0 IHNjaGVtYQorU0VMRUNUIGEuYXR0bnVtLCBhLmF0dG5hbWUKK0ZST00gcGdfYXR0cmlidXRlIGEK K0pPSU4gcGdfY2xhc3MgYyBPTiBhLmF0dHJlbGlkID0gYy5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0 aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBz LnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgQU5EIGEuYXR0bnVtID4gMAorICAg IE9SREVSIEJZIGEuYXR0bnVtOworCistLSBDaGFuZ2luZyB0aGUgc3Vic2NyaXB0aW9uIG93bmVy IHNob3VsZCBhbHNvIHVwZGF0ZSB0aGUgb3duZXIKKy0tIG9mIHRoZSBhc3NvY2lhdGVkIGNvbmZs aWN0IGxvZyB0YWJsZS4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx IE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyOworU0VMRUNUIHBnX2NhdGFsb2cu cGdfZ2V0X3VzZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyCitGUk9NIHBnX2NhdGFsb2cucGdf Y2xhc3MgYworSk9JTiBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBzCisgICAgICAgIE9OIGMu cmVsbmFtZSA9ICdwZ19jb25mbGljdF9sb2dfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0g J3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSBWZXJpZnkgdGhhdCBhIG5vbi1zdXBlcnVz ZXIgc3Vic2NyaXB0aW9uIG93bmVyIGNhbiB0cnVuY2F0ZSwKKy0tIGRlbGV0ZSBmcm9tLCBhbmQg c2VsZWN0IGZyb20gdGhlIGFzc29jaWF0ZWQgY29uZmxpY3QgbG9nIHRhYmxlLgorU0VUIFJPTEUg J3JlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyJzsKKworU0VMRUNUIGZvcm1hdCgnJUkuJUknLCBu Lm5zcG5hbWUsIGMucmVsbmFtZSkgQVMgY29uZmxpY3RfbG9nX3RhYmxlCitGUk9NIHBnX2NhdGFs b2cucGdfY2xhc3MgYworSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuCisJT04gbi5vaWQg PSBjLnJlbG5hbWVzcGFjZQorSk9JTiBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiBzCisJT04g Yy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0X2xvZ18nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0MScKK1xnc2V0CisKK1RSVU5DQVRFIFRBQkxFIDpjb25m bGljdF9sb2dfdGFibGU7CitERUxFVEUgRlJPTSA6Y29uZmxpY3RfbG9nX3RhYmxlOworU0VMRUNU IENPVU5UKCopIEZST00gOmNvbmZsaWN0X2xvZ190YWJsZTsKKworUkVTRVQgUk9MRTsKKworLS0g UmVzdG9yZSB0aGUgb3JpZ2luYWwgc3Vic2NyaXB0aW9uIG93bmVyLgorQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgT1dORVIgVE8gcmVncmVzc19zdWJzY3JpcHRpb25f dXNlcjsKKworLS0KKy0tIEFMVEVSIFNVQlNDUklQVElPTiAtIGNvbmZsaWN0X2xvZ19kZXN0aW5h dGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGUgdHJh bnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVudCBsb2dnaW5nCistLSBkZXN0aW5hdGlvbnMs IGVuc3VyaW5nIGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIGNyZWF0ZWQgb3IgZHJvcHBlZCBhcwor LS0gZXhwZWN0ZWQKKy0tCistLSB0cmFuc2l0aW9uIGZyb20gJ2xvZycgdG8gJ2FsbCcKKy0tIGEg bmV3IGNvbmZsaWN0IGxvZyB0YWJsZSBzaG91bGQgYmUgY3JlYXRlZAorQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2FsbCcp OworCistLSB2ZXJpZnkgbWV0YWRhdGEgYWZ0ZXIgQUxURVIgKGRlc3RpbmF0aW9uIHNob3VsZCBi ZSAnYWxsJykKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0 bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0gdHJhbnNpdGlvbiBmcm9tICdh bGwnIHRvICd0YWJsZScKKy0tIHNob3VsZCBOT1QgZHJvcCB0aGUgdGFibGUsIG9ubHkgY2hhbmdl IGRlc3RpbmF0aW9uIHN0cmluZworU0VMRUNUIHN1YmNvbmZsaWN0bG9ncmVsaWQgQVMgb2xkX3Jl bGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF90ZXN0MicgXGdzZXQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3Qy IFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CitTRUxFQ1Qgc3ViY29u ZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID0gOm9sZF9yZWxpZCBBUyByZWxpZF91 bmNoYW5nZWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19j b25mbGljdF90ZXN0Mic7CisKKy0tIHRyYW5zaXRpb24gZnJvbSAndGFibGUnIHRvICdsb2cnCist LSBzaG91bGQgZHJvcCB0aGUgdGFibGUgYW5kIGNsZWFyIHN1YmNvbmZsaWN0bG9ncmVsaWQKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uID0gJ2xvZycpOworU0VMRUNUIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29u ZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0gdmVyaWZ5IHRoZSBwaHlzaWNhbCB0YWJsZSBpcyBn b25lCitTRUxFQ1QgY291bnQoKikKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRp b24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKK1dIRVJFIHMu c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0KKy0tIFBVQkxJQ0FUSU9O OiBWZXJpZnkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0g cGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgY29uZmxp Y3QgbG9nIHRhYmxlcyB0bworLS0gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5 IGluY2x1ZGVkIGluIHB1YmxpY2F0aW9ucworLS0KK1NFTEVDVCBuLm5zcG5hbWUsIHBnX3JlbGF0 aW9uX2lzX3B1Ymxpc2hhYmxlKGMub2lkKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX25hbWVz cGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMg T04gcy5zdWJjb25mbGljdGxvZ3JlbGlkID0gYy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdy ZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKworLS0KKy0tIFRhYmxlIFByb3RlY3Rpb24gYW5kIExpZmVj eWNsZSBNYW5hZ2VtZW50CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQ6CistLSBNYW51 YWwgRFJPUCBUQUJMRSBpcyBkaXNhbGxvd2VkCistLSBEUk9QIFNVQlNDUklQVElPTiBhdXRvbWF0 aWNhbGx5IHJlYXBzIHRoZSB0YWJsZQorLS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBsb2dnaW5nIGZv ciB2ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx IFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0tIFRoZSBjb25m bGljdCBsb2cgdGFibGUgbmFtZSBjb250YWlucyB0aGUgc3Vic2NyaXB0aW9uIE9JRCwgd2hpY2gg aXMKKy0tIG5vbi1kZXRlcm1pbmlzdGljLiAgQ2FwdHVyZSBpdCBpbnRvIGEgcHNxbCB2YXJpYWJs ZSBhbmQgcmVwb3J0IG9ubHkgdGhlCistLSBTUUxTVEFURSwgc28gdGhlIGV4cGVjdGVkIG91dHB1 dCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIE9JRC4KKworLS0gZmFpbCAtIGRyb3AgdGFibGUgbm90 IGFsbG93ZWQgZHVlIHRvIGludGVybmFsIGRlcGVuZGVuY3kKK1NFVCBjbGllbnRfbWluX21lc3Nh Z2VzID0gTk9USUNFOworU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJyB8fCBv aWQgQVMgY2x0MQorICAgIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVn cmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKK1xzZXQgVkVSQk9TSVRZIHNxbHN0YXRlCitEUk9Q IFRBQkxFIDpjbHQxOworXHNldCBWRVJCT1NJVFkgZGVmYXVsdAorCistLSBDTEVBTlVQOiBEUk9Q IFNVQlNDUklQVElPTiByZWFwcyB0aGUgdGFibGUKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X3Rlc3QxIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25m bGljdF90ZXN0MSBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworCistLSBWZXJpZnkgdGhlIHRhYmxl IE9JRCBmb3IgcmVhcCBjaGVjaworU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2df JyB8fCBvaWQgQVMgaW50ZXJuYWxfdGFibGVuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJF IHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0MScgXGdzZXQKKworU0VUIGNsaWVudF9t aW5fbWVzc2FnZXMgPSBXQVJOSU5HOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGlj dF90ZXN0MTsKKworLS0gc2hvdWxkIHJldHVybiBOVUxMLCBtZWFuaW5nIHRoZSBjb25mbGljdCBs b2cgdGFibGUgd2FzIHJlYXBlZCB2aWEgZGVwZW5kZW5jeQorU0VMRUNUIHRvX3JlZ2NsYXNzKDon aW50ZXJuYWxfdGFibGVuYW1lJyk7CisKKy0tCistLSBBZGRpdGlvbmFsIE5hbWVzcGFjZSBhbmQg VGFibGUgUHJvdGVjdGlvbiBUZXN0cworLS0KKworLS0gU2V0dXA6IEVuc3VyZSB3ZSBoYXZlIGEg c3Vic2NyaXB0aW9uIHdpdGggYSBjb25mbGljdCBsb2cgdGFibGUKK0NSRUFURSBTVUJTQ1JJUFRJ T04gcmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0JworICAgIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVj dCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKKworLS0gVGhl IGNvbmZsaWN0IGxvZyB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZDsgaXRzIG5hbWUgY29udGFpbnMg dGhlCistLSBzdWJzY3JpcHRpb24gT0lELCB3aGljaCBpcyBub24tZGV0ZXJtaW5pc3RpYy4gIENh cHR1cmUgdGhlIG5hbWUgaW50byBhIHBzcWwKKy0tIHZhcmlhYmxlIGFuZCByZXBvcnQgb25seSB0 aGUgU1FMU1RBVEUgZm9yIHRoZSBvcGVyYXRpb25zIHRoYXQgbXVzdCBiZQorLS0gcmVqZWN0ZWQs IHNvIHRoZSBleHBlY3RlZCBvdXRwdXQgc3RheXMgZnJlZSBvZiB0aGUgZHluYW1pYyBPSUQuICBF dmVyeQorLS0gc3RhdGVtZW50IGluIHRoZSBWRVJCT1NJVFktc3Fsc3RhdGUgYmxvY2sgYmVsb3cg bXVzdCBmYWlsIHdpdGggNDI4MDkKKy0tICh3cm9uZ19vYmplY3RfdHlwZSksIGV4Y2VwdCBhZGRp bmcgdGhlIHRhYmxlIHRvIGEgcHVibGljYXRpb24sIHdoaWNoIGZhaWxzCistLSB3aXRoIDIyMDIz IChpbnZhbGlkX3BhcmFtZXRlcl92YWx1ZSkuCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVs bmFtZSBBUyBjbHQKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBP TiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfbG9nXycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnIFxnc2V0CisKKy0tIFRy aWdnZXIgZnVuY3Rpb24gdXNlZCBieSB0aGUgQ1JFQVRFIFRSSUdHRVIgY2hlY2sgYmVsb3cuCitD UkVBVEUgRlVOQ1RJT04gcHVibGljLmR1bW15X3RyaWdnZXJfZnVuYygpIFJFVFVSTlMgdHJpZ2dl ciBBUyAkJAorQkVHSU4KKyAgICBSRVRVUk4gTkVXOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKworXHNldCBWRVJCT1NJVFkgc3Fsc3RhdGUKK0FMVEVSIFRBQkxFIDpjbHQgQUREIENPTFVN TiBleHRyYV9pbmZvIHRleHQ7CitJTlNFUlQgSU5UTyA6Y2x0IChyZWxuYW1lKSBWQUxVRVMgKCdt eXRlc3QnKTsKK1VQREFURSA6Y2x0IFNFVCByZWxuYW1lID0gJ215dGVzdCc7CitDUkVBVEUgUE9M SUNZIHAxIE9OIDpjbHQgVVNJTkcgKHRydWUpOworQ1JFQVRFIFNUQVRJU1RJQ1MgczEgT04gcmVs bmFtZSwgc2NoZW1hbmFtZSBGUk9NIDpjbHQ7CitDUkVBVEUgVEFCTEUgcHVibGljLmNvbmZsaWN0 X2NoaWxkICgpIElOSEVSSVRTICg6Y2x0KTsKK0FMVEVSIFRBQkxFIDpjbHQgUkVOQU1FIENPTFVN TiByZWxuYW1lIFRPIG5ld19yZWxuYW1lOworQ1JFQVRFIFRBQkxFIHB1YmxpYy5jb25mbGljdF9m ayAocmVsbmFtZSB0ZXh0IFJFRkVSRU5DRVMgOmNsdChyZWxuYW1lKSk7CitBTFRFUiBUQUJMRSA6 Y2x0IE9XTkVSIFRPIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXJfZHVtbXk7CitBTFRFUiBUQUJM RSA6Y2x0IFNFVCBTQ0hFTUEgcHVibGljOworQ1JFQVRFIFRSSUdHRVIgdDEgQkVGT1JFIElOU0VS VCBPTiA6Y2x0IEZPUiBFQUNIIFJPVyBFWEVDVVRFIEZVTkNUSU9OIHB1YmxpYy5kdW1teV90cmln Z2VyX2Z1bmMoKTsKK0FMVEVSIFRSSUdHRVIgbm9uX2V4aXN0ZW50X3RyaWdnZXIgT04gOmNsdCBS RU5BTUUgVE8gbmV3X3RyaWdnZXI7CitDUkVBVEUgUlVMRSByMSBBUyBPTiBJTlNFUlQgVE8gOmNs dCBETyBJTlNURUFEIE5PVEhJTkc7CitBTFRFUiBSVUxFIG5vbl9leGlzdGVudF9ydWxlIE9OIDpj bHQgUkVOQU1FIFRPIG5ld19ydWxlOworQ1JFQVRFIElOREVYIGlkeDEgT04gOmNsdCAocmVsbmFt ZSk7CitTRUxFQ1QgMSBGUk9NIDpjbHQgRk9SIFVQREFURTsKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2Zvcl9jbHQgRk9SIFRBQkxFIDpjbHQ7Citcc2V0IFZFUkJPU0lUWSBkZWZhdWx0CisK Ky0tIENsZWFuIHVwIHRoZSB0cmlnZ2VyIGZ1bmN0aW9uIHVzZWQgYWJvdmUuCitEUk9QIEZVTkNU SU9OIHB1YmxpYy5kdW1teV90cmlnZ2VyX2Z1bmMoKTsKKworLS0gVFJVTkNBVEUgYW5kIERFTEVU RSBhcmUgYWxsb3dlZCBzbyB0aGF0IHVzZXJzIGNhbiBwcnVuZSB0aGUgY29uZmxpY3QgbG9nLgor VFJVTkNBVEUgOmNsdDsKK0RFTEVURSBGUk9NIDpjbHQ7CisKKy0tIENyZWF0aW5nIGEgdGFibGUg ZGlyZWN0bHkgaW4gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZSBpcyByZWplY3RlZCBmb3IKKy0t IGV2ZXJ5b25lICh0aGUgc2NoZW1hIGlzIHJlc2VydmVkIGZvciBjb25mbGljdCBsb2cgdGFibGVz KS4KK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFibGUgKGlkIGludCk7CisKKy0t IE1vdmluZyBhIHVzZXIgdGFibGUgaW50byB0aGUgcGdfY29uZmxpY3QgbmFtZXNwYWNlIGlzIGxp a2V3aXNlIHJlamVjdGVkLgorQ1JFQVRFIFRBQkxFIHB1YmxpYy50ZXN0X21vdmUgKGlkIGludCk7 CitBTFRFUiBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNFVCBTQ0hFTUEgcGdfY29uZmxpY3Q7CitE Uk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7CisKKworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMg PSBXQVJOSU5HOworCistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3JpcHRpb24KK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBTRVQgKHNsb3Rf bmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVm YXVsdDsKKworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBESVNB QkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChzbG90 X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDI7 CisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBE SVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90 ZXN0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2Nv bmZsaWN0X3Byb3RlY3Rpb25fdGVzdDsKKwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwog RFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBEUk9QIFJPTEUgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MzVfY29uZmxpY3RzLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM1X2NvbmZsaWN0cy5w bAppbmRleCBmMjNmZTZhZjJhNS4uMzkxMGE0OWMwYWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM1X2NvbmZsaWN0cy5wbApAQCAtNTAsNyArNTAsNyBAQCAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoCiAJJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWJfdGFiCiAJ IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBuYW1l JwotCSBQVUJMSUNBVElPTiBwdWJfdGFiOyIpOworCSBQVUJMSUNBVElPTiBwdWJfdGFiIFdJVEgg KGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbj1hbGwpIik7CiAKICMgV2FpdCBmb3IgaW5pdGlhbCB0 YWJsZSBzeW5jIHRvIGZpbmlzaAogJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0 aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAkYXBwbmFtZSk7CkBAIC02NzAsNCArNjcwLDY5IEBA IG9rKCAkbm9kZV9BLT5wb2xsX3F1ZXJ5X3VudGlsKAogCSksCiAJInRoZSBzbG90ICdwZ19jb25m bGljdF9kZXRlY3Rpb24nIGhhcyBiZWVuIGRyb3BwZWQgb24gTm9kZSBBIik7CiAKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMgQSBjb25mbGljdCBsb2cgdGFibGUgaXMgc3lzdGVtLW1hbmFnZWQg YW5kIGNhbm5vdCBiZSBhbHRlcmVkIGRpcmVjdGx5LCBzbworIyBtb3ZpbmcgaXQgdG8gYW5vdGhl ciB0YWJsZXNwYWNlIG11c3QgYmUgcmVqZWN0ZWQuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitt eSAkc3ViaWQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3N1Yl90YWInOyIp OworbXkgJGNsdCA9ICJwZ19jb25mbGljdC5wZ19jb25mbGljdF9sb2dfJHN1YmlkIjsKKworKHVu ZGVmLCB1bmRlZiwgJHN0ZGVycikgPSAkbm9kZV9zdWJzY3JpYmVyLT5wc3FsKCdwb3N0Z3Jlcycs CisJIkFMVEVSIFRBQkxFICRjbHQgU0VUIFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCIpOworbGlrZSgK Kwkkc3RkZXJyLAorCXFyL2Nhbm5vdCBhbHRlciBjb25mbGljdCBsb2cgdGFibGUgInBnX2NvbmZs aWN0X2xvZ19cZCsiLywKKwkibW92aW5nIGEgY29uZmxpY3QgbG9nIHRhYmxlIHdpdGggQUxURVIg VEFCTEUgU0VUIFRBQkxFU1BBQ0UgaXMgcmVqZWN0ZWQiKTsKKworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIyBBTFRFUiBUQUJMRSBBTEwgSU4gVEFCTEVTUEFDRSBtdXN0IHNraXAgY29uZmxpY3Qg bG9nIHRhYmxlcywgdGhlIHNhbWUgd2F5IGl0CisjIHNraXBzIGNhdGFsb2cgYW5kIFRPQVNUIHRh YmxlcywgaW5zdGVhZCBvZiBmYWlsaW5nLiAgVXNlIGFuIGlzb2xhdGVkIGRhdGFiYXNlCisjIHNv IHRoZSBidWxrIG1vdmUgb25seSB0b3VjaGVzIHRoZSBvYmplY3RzIGNyZWF0ZWQgaGVyZS4KKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiQ1JFQVRFIERBVEFCQVNFIGNsdF90c190ZXN0Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ2NsdF90c190ZXN0JywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWJfdHNfdGVz dAorCSAgICAgQ09OTkVDVElPTiAnZGJuYW1lPW5vbmV4aXN0ZW50JworCSAgICAgUFVCTElDQVRJ T04gcHViCisJICAgICBXSVRIIChjb25uZWN0PWZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRp b249J3RhYmxlJykiKTsKKworIyBBIHBsYWluIHVzZXIgdGFibGUgdGhhdCBzaG91bGQgYmUgbW92 ZWQsIGFsb25nc2lkZSB0aGUgQ0xUIHRoYXQgbXVzdCBub3QgYmUuCiskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ2NsdF90c190ZXN0JywgIkNSRUFURSBUQUJMRSB1c2VyX3RibCAoaSBpbnQp Iik7CisKKyMgQ3JlYXRlIGEgdGFibGVzcGFjZSBiYWNrZWQgYnkgYSBkaXJlY3RvcnkgaW5zaWRl IHRoZSBkYXRhIGRpci4KK215ICR0c19kaXIgPSAkbm9kZV9zdWJzY3JpYmVyLT5kYXRhX2RpciAu ICcvYmFja3VwX3NwYWNlJzsKK21rZGlyKCR0c19kaXIpCisgIG9yIGRpZSAiY291bGQgbm90IGNy ZWF0ZSB0YWJsZXNwYWNlIGRpcmVjdG9yeSAkdHNfZGlyOiAkISI7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFU1BBQ0UgYmFja3VwX3NwYWNl IExPQ0FUSU9OICckdHNfZGlyJyIpOworCisjIFRoZSBidWxrIG1vdmUgc3VjY2VlZHM6IHRoZSB1 c2VyIHRhYmxlIGlzIHJlbG9jYXRlZCB3aGlsZSB0aGUgQ0xUIGlzIHNraXBwZWQuCiskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ2NsdF90c190ZXN0JywKKwkiQUxURVIgVEFCTEUgQUxMIElO IFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCBTRVQgVEFCTEVTUEFDRSBiYWNrdXBfc3BhY2UiKTsKKwor aXMoICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkJJ2NsdF90c190ZXN0JywKKwkJIlNF TEVDVCByZWx0YWJsZXNwYWNlIDw+IDAgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Vz ZXJfdGJsJyIpLAorCSd0JywKKwkiQUxURVIgVEFCTEUgQUxMIElOIFRBQkxFU1BBQ0UgbW92ZXMg YW4gb3JkaW5hcnkgdXNlciB0YWJsZSIpOworCitpcyggJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKAorCQknY2x0X3RzX3Rlc3QnLAorCQkiU0VMRUNUIGNvdW50KCopIEZST00gcGdfY2xhc3Mg YyBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzCisJCSAgIE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGlj dF9sb2dfJyB8fCBzLm9pZAorCQkgV0hFUkUgcy5zdWJuYW1lID0gJ3N1Yl90c190ZXN0JyBBTkQg Yy5yZWx0YWJsZXNwYWNlIDw+IDAiKSwKKwknMCcsCisJIkFMVEVSIFRBQkxFIEFMTCBJTiBUQUJM RVNQQUNFIHNraXBzIHRoZSBjb25mbGljdCBsb2cgdGFibGUiKTsKKworIyBDbGVhbnVwLiAgVGhl IHN1YnNjcmlwdGlvbiBoYXMgbm8gcmVhbCBwdWJsaXNoZXIgY29ubmVjdGlvbiwgc28gZGV0YWNo IGl0cworIyBzbG90IGJlZm9yZSBkcm9wcGluZyBpdC4KKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgnY2x0X3RzX3Rlc3QnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gc3ViX3RzX3Rlc3QgRElT QUJMRSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdjbHRfdHNfdGVzdCcsCisJIkFM VEVSIFNVQlNDUklQVElPTiBzdWJfdHNfdGVzdCBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpIik7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ2NsdF90c190ZXN0JywgIkRST1AgU1VCU0NSSVBU SU9OIHN1Yl90c190ZXN0Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIkRST1AgREFUQUJBU0UgY2x0X3RzX3Rlc3QiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiRFJPUCBUQUJMRVNQQUNFIGJhY2t1cF9zcGFjZSIpOworCiBkb25l X3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggM2EyNzIwZmI1ZjkuLjNk NmQxYzE2MTMyIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAor KysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNTE1LDYgKzUxNSw4IEBA IENvbmRpdGlvbmFsU3RhY2sKIENvbmRpdGlvbmFsU3RhY2tEYXRhCiBDb25maWdEYXRhCiBDb25m aWdWYXJpYWJsZQorQ29uZmxpY3RMb2dDb2x1bW5EZWYKK0NvbmZsaWN0TG9nRGVzdAogQ29uZmxp Y3RUdXBsZUluZm8KIENvbmZsaWN0VHlwZQogQ29ubkNhY2hlRW50cnkKLS0gCjIuNDkuMAoK --0000000000006aae320655772e96--