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.94.2) (envelope-from ) id 1razae-00CVAS-1l for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Feb 2024 14:53:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1razac-002UgF-D3 for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Feb 2024 14:53:22 +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.94.2) (envelope-from ) id 1razab-002Ug0-4R for pgsql-hackers@lists.postgresql.org; Fri, 16 Feb 2024 14:53:21 +0000 Received: from fhigh3-smtp.messagingengine.com ([103.168.172.154]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1razaU-00743F-Vj for pgsql-hackers@postgresql.org; Fri, 16 Feb 2024 14:53:19 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailfhigh.nyi.internal (Postfix) with ESMTP id 92D5211400BF for ; Fri, 16 Feb 2024 09:53:13 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Fri, 16 Feb 2024 09:53:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm3; t=1708095193; x=1708181593; bh=55JpU9Si5QwoWR8lwlAsljcvA1vkfe6l ajQLR24tO1E=; b=jIWikA1LXhbiBhWnzgTjrBN+qWWD5IopeqGV0dhBCaGebWQA ne4V+0BM/K6/SS+QI6alD4+O+WdFasxgEsMOmBQMud1Y3745jVATzQg8sCDIIy1d cdrg081Na0Zy3lilgEnSVw+KfNj15WChLimKZS3EUPCwe0UKjj7EuPVVSLTy27dm PUOGulX0MJ1hbS4bZwzgTxwIm3aFZJF0V+fJ1Xn1XfSviQnBKPkNKaMEYZgZJLu3 7YKT/rG4VG6wDyS+oPtfmTdVRFWXyZCJl9eAfaYUMzBfbDGwIpxZUgR2RVDqp3Q5 c4Ar2+PLO3t8uGFrS569WvL1PoChz+/koNUGsg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1708095193; x=1708181593; bh=55JpU9Si5QwoWR8lwlAsljcvA1vkfe6lajQ LR24tO1E=; b=U97pgD5HZBFCBYYJLW2FbOJ6Fevhw/P64zMBpuJrPY95nHfzObd I6EgbnLRVlRd97zBWE3ZpyBU8Gc+VwKiFadKZzaAB6RSVhiCiUhQJalab4Vp38eO e9r0gWdbryoAUinAL8Vn3ovS5qAXlKiz6u8uRpT2SAMJ6tJr9erQmibIZLo0CfRL bDUTH7rNkerIIcQjRLM3h9czy0g4ZS6Ilnxu+iubDKtZv9UZ3pAeYopUoyxNLGNt 2GVdT53hJ9xAnYos9HNQiN9ljeT1Vt9j2kGRcRIOau1qVyCxEbkewAUaLEAyMdFn IJoPlTnRhJEx14UGjPAp7TgYSz+a/5SFS+Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrvddvgdeilecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfhuffvsehmtderredtvd ejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegvihhs vghnthhrrghuthdrohhrgheqnecuggftrfgrthhtvghrnhepgfehfeeugfefleefkefghe etkeetleejgeelgeduhfdtudffvdeiffeujedtudefnecuffhomhgrihhnpehsghhmlhdr thhopdhorhgrtghlvgdqsggrshgvrdgtohhmpdgtihgurhgusgdrohhrghdpphhgtghonh drohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhm pehpvghtvghrsegvihhsvghnthhrrghuthdrohhrgh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Fri, 16 Feb 2024 09:53:12 -0500 (EST) Content-Type: multipart/mixed; boundary="------------IsQJ3G0x64pdQb6uTXXzvqnD" Message-ID: Date: Fri, 16 Feb 2024 15:53:11 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Peter Eisentraut Subject: SQL Property Graph Queries (SQL/PGQ) To: pgsql-hackers List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------IsQJ3G0x64pdQb6uTXXzvqnD Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here is a prototype implementation of SQL property graph queries (SQL/PGQ), following SQL:2023. This was talked about briefly at the FOSDEM developer meeting, and a few people were interested, so I wrapped up what I had in progress into a presentable form. There is some documentation to get started in doc/src/sgml/ddl.sgml and doc/src/sgml/queries.sgml. To learn more about this facility, here are some external resources: * An article about a competing product: https://oracle-base.com/articles/23c/sql-property-graphs-and-sql-pgq-23c (All the queries in the article work, except the ones using vertex_id() and edge_id(), which are non-standard, and the JSON examples at the end, which require some of the in-progress JSON functionality for PostgreSQL.) * An academic paper related to another competing product: https://www.cidrdb.org/cidr2023/papers/p66-wolde.pdf (The main part of this paper discusses advanced functionality that my patch doesn't have.) * A 2019 presentation about graph databases: https://www.pgcon.org/2019/schedule/events/1300.en.html (There is also a video.) * (Vik has a recent presentation "Property Graphs: When the Relational Model Is Not Enough", but I haven't found the content posted online.) The patch is quite fragile, and treading outside the tested paths will likely lead to grave misbehavior. Use with caution. But I feel that the general structure is ok, and we just need to fill in the proverbial few thousand lines of code in the designated areas. --------------IsQJ3G0x64pdQb6uTXXzvqnD Content-Type: text/plain; charset=UTF-8; name="v0-0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ.patch" Content-Disposition: attachment; filename="v0-0001-WIP-SQL-Property-Graph-Queries-SQL-PGQ.patch" Content-Transfer-Encoding: base64 RnJvbSAyMjY3MzgzMGMxMDZkYjk5NDA5M2IwYzc2NGY2MjQ1OWJiN2U1ZjU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAxNiBGZWIgMjAyNCAxNTo1MDo0MyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjBdIFdJUDogU1FMIFByb3BlcnR5IEdyYXBoIFF1ZXJpZXMgKFNRTC9QR1Ep CgpJbXBsZW1lbnRhdGlvbiBvZiBTUUwgcHJvcGVydHkgZ3JhcGggcXVlcmllcywgYWNjb3Jk aW5nIHRvIFNRTC9QR1EKc3RhbmRhcmQgKElTTyA5MDc1LTE2OjIwMjMpLgotLS0KIGRvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgNDggKy0KIGRv Yy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMjkgKysr LQogZG9jL3NyYy9zZ21sL2ZlYXR1cmVzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAg NCArLQogZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAxNSArCiBkb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwgICAgICAgICAg fCAgIDgwICsrCiAuLi4vc2dtbC9rZXl3b3Jkcy9zcWwyMDIzLTE2LW5vbnJlc2VydmVkLnR4 dCAgfCAgIDI3ICsKIGRvYy9zcmMvc2dtbC9rZXl3b3Jkcy9zcWwyMDIzLTE2LXJlc2VydmVk LnR4dCB8ICAgMTIgKwogZG9jL3NyYy9zZ21sL3F1ZXJpZXMuc2dtbCAgICAgICAgICAgICAg ICAgICAgIHwgIDE1NiArKysKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAg ICAgICAgICAgICB8ICAgIDMgKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9leHRlbnNpb24u c2dtbCAgICAgICAgIHwgICAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wcm9wZXJ0 eV9ncmFwaC5zZ21sICAgIHwgIDE1MCArKysKIGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5z Z21sICAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cHJvcGVydHlfZ3JhcGguc2dtbCAgIHwgIDIzMiArKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfcHJvcGVydHlfZ3JhcGguc2dtbCAgICAgfCAgMTExICsrCiBkb2Mvc3JjL3NnbWwvcmVm L2dyYW50LnNnbWwgICAgICAgICAgICAgICAgICAgfCAgICA3ICstCiBkb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgIDEzICstCiBkb2Mvc3JjL3Nn bWwvcmVmL3Jldm9rZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgICA3ICsKIGRvYy9zcmMv c2dtbC9yZWYvc2VjdXJpdHlfbGFiZWwuc2dtbCAgICAgICAgICB8ICAgIDEgKwogZG9jL3Ny Yy9zZ21sL3JlZi9zZWxlY3Quc2dtbCAgICAgICAgICAgICAgICAgIHwgICA0MyArCiBkb2Mv c3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIHNy Yy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0K IHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICAgMjQg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAy MCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwgICAgfCAg MzYzICsrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAg ICAgIHwgIDE0MCArKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3MuYyAgICAgICAg ICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0 ICAgICAgICAgIHwgIDEwMCArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgICAg ICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAg ICAgICAgICAgICAgICAgfCAgIDMxICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21k cy5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50 X3RyaWdnZXIuYyAgICAgICAgICB8ICAgIDYgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVz b24uYnVpbGQgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9w cm9wZ3JhcGhjbWRzLmMgICAgICAgICAgfCAxMDAxICsrKysrKysrKysrKysrKysrCiBzcmMv YmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICAgMTQgKwog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICAgMiAr LQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgICA3 MiArKwogc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyAgICAgICAgICAgICAgICAgIHwg ICAgNSArCiBzcmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMgICAgICAgICAg fCAgICA1ICsKIHNyYy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jICAgICAgICAgICAgICAg ICB8ICAgIDUgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYyAgICAg ICAgIHwgICAgNCArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUu YyAgICAgfCAgICA4ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDY5MyArKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9tZXNv bi5idWlsZCAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2NsYXVzZS5jICAgICAgICAgICAgIHwgICA4NSArKwogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2NvbGxhdGUuYyAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZ3JhcGh0YWJsZS5jICAgICAgICAgfCAgMjUxICsrKysrCiBzcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgIDk0ICsrCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAgICAgICAgfCAgICA1ICsKIHNyYy9i YWNrZW5kL3BhcnNlci9zY2FuLmwgICAgICAgICAgICAgICAgICAgICB8ICAgNDggKwogc3Jj L2JhY2tlbmQvcmV3cml0ZS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBz cmMvYmFja2VuZC9yZXdyaXRlL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgICAxICsK IHNyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuYyAgICAgICB8ICA0MjIg KysrKysrKwogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jICAgICAgICAg IHwgICAxMiArCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAg ICAgfCAgIDM0ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAg ICAgICB8ICA1MDIgKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgICAgICAg ICAgICAgICAgICAgICAgfCAgICAzICstCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmMgICAgICAgICAgfCAgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMg ICAgICAgICAgICAgICAgICAgICB8ICAgNjcgKy0KIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsICAgICAgICAgICAgICB8ICAgMTEgKwogc3JjL2Jpbi9wc3FsL2NvbW1hbmQu YyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MyArLQogc3JjL2Jpbi9wc3FsL2hl bHAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMgICAgICAgICAgICAgICAgICAgfCAgIDY1ICstCiBzcmMvZmVfdXRp bHMvcHNxbHNjYW4ubCAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4ICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNzLmggICAgICAgICAgICAgICAgfCAgICAxICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgIDMgKwog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudC5oICAgIHwgIDEwMyAr Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaCAgICAgIHwgICA1 OSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oICAgfCAg IDc0ICsrCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmggICAgICAgICAg fCAgIDIzICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAg ICB8ICAxMzUgKysrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAg ICAgICAgfCAgIDIyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAg ICAgICAgICB8ICAgMTAgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUu aCAgICAgICAgIHwgICAzMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24u aCAgICAgICAgICAgfCAgICA4ICsKIHNyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUdyYXBo VGFibGUuaCAgICAgICB8ICAgMjEgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFt LnkgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9hbHRlcl9nZW5lcmljLm91dCAgIHwgICA1MSArLQogLi4uL2V4cGVjdGVkL2NyZWF0ZV9w cm9wZXJ0eV9ncmFwaC5vdXQgICAgICAgIHwgIDM3MCArKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZ3JhcGhfdGFibGUub3V0ICAgICB8ICAxMjIgKysKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0ICB8ICAgMTQgKy0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0ICAgICAgICB8ICAgIDkgKwogc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAgNCArLQogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvYWx0ZXJfZ2VuZXJpYy5zcWwgICAgICAgIHwgICAzNCArCiAu Li4vcmVncmVzcy9zcWwvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNxbCAgICAgfCAgMTMwICsr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ3JhcGhfdGFibGUuc3FsICAgICAgICAgIHwgICA5 NiArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsICAgICAgIHwg ICAgNCArLQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAg IHwgICAxOSArCiA5NCBmaWxlcyBjaGFuZ2VkLCA2NjIwIGluc2VydGlvbnMoKyksIDQ5IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9rZXl3b3Jkcy9z cWwyMDIzLTE2LW5vbnJlc2VydmVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMv c2dtbC9rZXl3b3Jkcy9zcWwyMDIzLTE2LXJlc2VydmVkLnR4dAogY3JlYXRlIG1vZGUgMTAw NjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbAogY3JlYXRl IG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNn bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlf Z3JhcGguc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3By b3BncmFwaGNtZHMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ncmFwaHRhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVHcmFwaFRhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5oCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFwaHRhYmxl LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVHcmFw aFRhYmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2dyYXBoX3RhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ncmFwaF90YWJsZS5zcWwKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDg4MGY3MTdiMTAzLi42NzViOGIxYmE4ZSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwKQEAgLTI0MCw2ICsyNDAsMjEgQEAgPHRpdGxlPlN5c3RlbSBDYXRhbG9nczwv dGl0bGU+CiAgICAgICA8ZW50cnk+ZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzPC9lbnRyeT4K ICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5k PSJjYXRhbG9nLXBnLXByb3BncmFwaC1lbGVtZW50Ij48c3RydWN0bmFtZT5wZ19wcm9wZ3Jh cGhfZWxlbWVudDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5w cm9wZXJ0eSBncmFwaCBlbGVtZW50cyAodmVydGljZXMgYW5kIGVkZ2VzKTwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0i Y2F0YWxvZy1wZy1wcm9wZ3JhcGgtbGFiZWwiPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9s YWJlbDwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wcm9wZXJ0 eSBncmFwaCBsYWJlbHM8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctcHJvcGdyYXBoLXByb3BlcnR5 Ij48c3RydWN0bmFtZT5wZ19wcm9wZ3JhcGhfcHJvcGVydHk8L3N0cnVjdG5hbWU+PC9saW5r PjwvZW50cnk+CisgICAgICA8ZW50cnk+cHJvcGVydHkgZ3JhcGggcHJvcGVydGllczwvZW50 cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnk+PGxpbmsgbGlu a2VuZD0iY2F0YWxvZy1wZy1wdWJsaWNhdGlvbiI+PHN0cnVjdG5hbWU+cGdfcHVibGljYXRp b248L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50cnk+cHVibGljYXRp b25zIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uPC9lbnRyeT4KQEAgLTIxMTUsNyArMjEzMCw4 IEBAIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jbGFzczwvc3RydWN0bmFtZT4gQ29sdW1uczwv dGl0bGU+CiAgICAgICAgPGxpdGVyYWw+YzwvbGl0ZXJhbD4gPSBjb21wb3NpdGUgdHlwZSwK ICAgICAgICA8bGl0ZXJhbD5mPC9saXRlcmFsPiA9IGZvcmVpZ24gdGFibGUsCiAgICAgICAg PGxpdGVyYWw+cDwvbGl0ZXJhbD4gPSBwYXJ0aXRpb25lZCB0YWJsZSwKLSAgICAgICA8bGl0 ZXJhbD5JPC9saXRlcmFsPiA9IHBhcnRpdGlvbmVkIGluZGV4CisgICAgICAgPGxpdGVyYWw+ STwvbGl0ZXJhbD4gPSBwYXJ0aXRpb25lZCBpbmRleCwKKyAgICAgICA8bGl0ZXJhbD5nPC9s aXRlcmFsPiA9IHByb3BlcnR5IGdyYXBoCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAg PC9yb3c+CiAKQEAgLTYyNTgsNiArNjI3NCwzNiBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+cGdf cHJvYzwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CiAKICA8L3NlY3QxPgogCisgPHNl Y3QxIGlkPSJjYXRhbG9nLXBnLXByb3BncmFwaC1lbGVtZW50Ij4KKyAgPHRpdGxlPjxzdHJ1 Y3RuYW1lPnBnX3Byb3BncmFwaF9lbGVtZW50PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAg PGluZGV4dGVybSB6b25lPSJjYXRhbG9nLXBnLXByb3BncmFwaC1lbGVtZW50Ij4KKyAgIDxw cmltYXJ5PnBnX3Byb3BncmFwaF9lbGVtZW50PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4K KworICA8cGFyYT5UT0RPPC9wYXJhPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFs b2ctcGctcHJvcGdyYXBoLWxhYmVsIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3Bn cmFwaF9sYWJlbDwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0i Y2F0YWxvZy1wZy1wcm9wZ3JhcGgtbGFiZWwiPgorICAgPHByaW1hcnk+cGdfcHJvcGdyYXBo X2xhYmVsPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT5UT0RPPC9wYXJh PgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctcHJvcGdyYXBoLXByb3Bl cnR5Ij4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3Byb3BncmFwaF9wcm9wZXJ0eTwvc3Ry dWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxvZy1wZy1wcm9w Z3JhcGgtcHJvcGVydHkiPgorICAgPHByaW1hcnk+cGdfcHJvcGdyYXBoX3Byb3BlcnR5PC9w cmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT5UT0RPPC9wYXJhPgorIDwvc2Vj dDE+CisKICA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctcHVibGljYXRpb24iPgogICA8dGl0bGU+ PHN0cnVjdG5hbWU+cGdfcHVibGljYXRpb248L3N0cnVjdG5hbWU+PC90aXRsZT4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21s CmluZGV4IDlkN2UyYzc1NmJlLi43MzMzY2Y1N2UzNCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTk1MSw3ICsx OTUxLDcgQEAgPHRpdGxlPlByaXZpbGVnZXM8L3RpdGxlPgogICAgICAgPHBhcmE+CiAgICAg ICAgQWxsb3dzIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4gZnJvbQogICAgICAgIGFueSBj b2x1bW4sIG9yIHNwZWNpZmljIGNvbHVtbihzKSwgb2YgYSB0YWJsZSwgdmlldywgbWF0ZXJp YWxpemVkCi0gICAgICAgdmlldywgb3Igb3RoZXIgdGFibGUtbGlrZSBvYmplY3QuCisgICAg ICAgdmlldywgcHJvcGVydHkgZ3JhcGgsIG9yIG90aGVyIHRhYmxlLWxpa2Ugb2JqZWN0Lgog ICAgICAgIEFsc28gYWxsb3dzIHVzZSBvZiA8Y29tbWFuZD5DT1BZIFRPPC9jb21tYW5kPi4K ICAgICAgICBUaGlzIHByaXZpbGVnZSBpcyBhbHNvIG5lZWRlZCB0byByZWZlcmVuY2UgZXhp c3RpbmcgY29sdW1uIHZhbHVlcyBpbgogICAgICAgIDxjb21tYW5kPlVQREFURTwvY29tbWFu ZD4sIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sCkBAIC01MjY5LDYgKzUyNjksMjMzIEBA IDx0aXRsZT5Gb3JlaWduIERhdGE8L3RpdGxlPgogICAgPC9wYXJhPgogIDwvc2VjdDE+CiAK KyA8c2VjdDEgaWQ9ImRkbC1wcm9wZXJ0eS1ncmFwaHMiPgorICA8dGl0bGU+UHJvcGVydHkg R3JhcGhzPC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImRkbC1wcm9wZXJ0eS1ncmFw aHMiPgorICAgPHByaW1hcnk+cHJvcGVydHkgZ3JhcGg8L3ByaW1hcnk+CisgIDwvaW5kZXh0 ZXJtPgorCisgIDxwYXJhPgorICAgQSBwcm9wZXJ0eSBncmFwaCBpcyBhIHdheSB0byByZXBy ZXNlbnQgZGF0YWJhc2UgY29udGVudHMsIGluc3RlYWQgb2YgdXNpbmcKKyAgIHJlbGF0aW9u YWwgc3RydWN0dXJlcyBzdWNoIGFzIHRhYmxlcy4gIEEgcHJvcGVydHkgZ3JhcGggY2FuIHRo ZW4gYmUgcXVlcmllZAorICAgdXNpbmcgZ3JhcGggcGF0dGVybiBtYXRjaGluZyBzeW50YXgs IGluc3RlYWQgb2Ygam9pbiBxdWVyaWVzIHR5cGljYWwgb2YKKyAgIHJlbGF0aW9uYWwgZGF0 YWJhc2VzLiAgUG9zdGdyZVNRTCBpbXBsZW1lbnRzIFNRTC9QR1E8Zm9vdG5vdGU+PHBhcmE+ SGVyZSwKKyAgIFBHUSBzdGFuZHMgZm9yIDxxdW90ZT5wcm9wZXJ0eSBncmFwaCBxdWVyeTwv cXVvdGU+LiAgSW4gdGhlIGphcmdvbiBvZiBncmFwaAorICAgZGF0YWJhc2VzLCA8cXVvdGU+ cHJvcGVydHkgZ3JhcGg8L3F1b3RlPiBpcyBub3JtYWxseSBhYmJyZXZpYXRlZCBhcyBQRywK KyAgIHdoaWNoIGlzIGNsZWFybHkgY29uZnVzaW5nIGZvciBwcmFjdGlvbmVycyBvZiBQb3N0 Z3JlU1FMLCBhbHNvIHVzdWFsbHkKKyAgIGFiYnJldmlhdGVkIGFzIFBHLjwvcGFyYT48L2Zv b3Rub3RlPiwgd2hpY2ggaXMgcGFydCBvZiB0aGUgU1FMIHN0YW5kYXJkLAorICAgd2hlcmUg YSBwcm9wZXJ0eSBncmFwaCBpcyBkZWZpbmVkIGFzIGEga2luZCBvZiByZWFkLW9ubHkgdmll dyBvdmVyCisgICByZWxhdGlvbmFsIHRhYmxlcy4gIFNvIHRoZSBhY3R1YWwgZGF0YSBpcyBz dGlsbCBpbiB0YWJsZXMgb3IgdGFibGUtbGlrZQorICAgb2JqZWN0cywgYnV0IGlzIGV4cG9z ZWQgYXMgYSBncmFwaCBmb3IgZ3JhcGggcXVlcnlpbmcgb3BlcmF0aW9ucy4gIChUaGlzIGlz CisgICBpbiBjb250cmFzdCB0byBuYXRpdmUgZ3JhcGggZGF0YWJhc2VzLCB3aGVyZSB0aGUg ZGF0YSBpcyBzdG9yZWQgZGlyZWN0bHkgaW4KKyAgIGEgZ3JhcGggc3RydWN0dXJlLikgIFVu ZGVybmVhdGgsIGJvdGggcmVsYXRpb25hbCBxdWVyaWVzIGFuZCBncmFwaCBxdWVyaWVzCisg ICB1c2UgdGhlIHNhbWUgcXVlcnkgcGxhbm5pbmcgYW5kIGV4ZWN1dGlvbiBpbmZyYXN0dWN0 dXJlLCBhbmQgaW4gZmFjdAorICAgcmVsYXRpb25hbCBhbmQgZ3JhcGggcXVlcmllcyBjYW4g YmUgY29tYmluZWQgYW5kIG1peGVkIGluIHNpbmdsZSBxdWVyaWVzLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBBIGdyYXBoIGlzIGEgc2V0IG9mIHZlcnRpY2VzIGFuZCBlZGdlcy4g IEVhY2ggZWRnZSBoYXMgdHdvIGRpc3Rpbmd1aXNoYWJsZQorICAgYXNzb2NpYXRlZCB2ZXJ0 aWNlcyBjYWxsZWQgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gdmVydGljZXMuICAoU28g aW4KKyAgIHRoaXMgbW9kZWwgYWxsIGVkZ2VzIGFyZSBkaXJlY3RlZC4pICBWZXJ0aWNlcyBh bmQgZWRnZXMgdG9nZXRoZXIgYXJlIGNhbGxlZAorICAgdGhlIGVsZW1lbnRzIG9mIHRoZSBn cmFwaC4gIEEgcHJvcGVydHkgZ3JhcGggZXh0ZW5kcyB0aGlzIHdlbGwta25vd24KKyAgIG1h dGhlbWF0aWNhbCBzdHJ1Y3R1cmUgd2l0aCBhIHdheSB0byByZXByZXNlbnQgdXNlciBkYXRh LiAgSW4gYSBwcm9wZXJ0eQorICAgZ3JhcGgsIGVhY2ggdmVydGV4IG9yIGVkZ2UgaGFzIG9u ZSBvciBtb3JlIGFzc29jaWF0ZWQgbGFiZWxzLCBhbmQgZWFjaAorICAgbGFiZWwgaGFzIHpl cm8gb3IgbW9yZSBwcm9wZXJ0aWVzLiAgVGhlIGxhYmVscyBhcmUgc2ltaWxhciB0byB0YWJs ZSByb3cKKyAgIHR5cGVzIGluIHRoYXQgdGhleSBkZWZpbmUgdGhlIGtpbmQgb2YgdGhlIGNv bnRhaW5lZCBkYXRhIGFuZCBpdHMgc3RydWN0dXJlLgorICAgVGhlIHByb3BlcnRpZXMgYXJl IHNpbWlsYXIgdG8gY29sdW1ucyBpbiB0aGF0IHRoZXkgY29udGFpbiB0aGUgYWN0dWFsIGRh dGEuCisgICBJbiBmYWN0LCBieSBkZWZhdWx0LCBhIHByb3BlcnR5IGdyYXBoIGRlZmluaXRp b24gZXhwb3NlcyB0aGUgdW5kZXJseWluZworICAgdGFibGVzIGFuZCBjb2x1bW5zIGFzIGxh YmVscyBhbmQgcHJvcGVydGllcywgYnV0IG1vcmUgY29tcGxpY2F0ZWQKKyAgIGRlZmluaXRp b25zIGFyZSBwb3NzaWJsZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQ29uc2lkZXIg dGhlIGZvbGxvd2luZyB0YWJsZSBkZWZpbml0aW9uczoKKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBUQUJMRSBwcm9kdWN0cyAoCisgICAgcHJvZHVjdF9ubyBpbnRlZ2VyIFBSSU1BUlkg S0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBwcmljZSBudW1lcmljCispOworCitDUkVB VEUgVEFCTEUgY3VzdG9tZXJzICgKKyAgICBjdXN0b21lcl9pZCBpbnRlZ2VyIFBSSU1BUlkg S0VZLAorICAgIG5hbWUgdmFyY2hhciwKKyAgICBhZGRyZXNzIHZhcmNoYXIKKyk7CisKK0NS RUFURSBUQUJMRSBvcmRlcnMgKAorICAgIG9yZGVyX2lkIGludGVnZXIgUFJJTUFSWSBLRVks CisgICAgb3JkZXJlZF93aGVuIGRhdGUKKyk7CisKK0NSRUFURSBUQUJMRSBvcmRlcl9pdGVt cyAoCisgICAgb3JkZXJfaXRlbXNfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICBvcmRl cl9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCksCisgICAgcHJvZHVj dF9ubyBpbnRlZ2VyIFJFRkVSRU5DRVMgcHJvZHVjdHMgKHByb2R1Y3Rfbm8pLAorICAgIHF1 YW50aXR5IGludGVnZXIKKyk7CisKK0NSRUFURSBUQUJMRSBjdXN0b21lcl9vcmRlcnMgKAor ICAgIGN1c3RvbWVyX29yZGVyc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3Rv bWVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAg ICBvcmRlcl9pZCBpbnRlZ2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyk7Cis8 L3Byb2dyYW1saXN0aW5nPgorICAgV2hlbiBtYXBwaW5nIHRoaXMgdG8gYSBncmFwaCwgdGhl IGZpcnN0IHRocmVlIHRhYmxlcyB3b3VsZCBiZSB0aGUgdmVydGljZXMKKyAgIGFuZCB0aGUg bGFzdCB0d28gdGFibGVzIHdvdWxkIGJlIHRoZSBlZGdlcy4gIFRoZSBmb3JlaWduLWtleSBk ZWZpbml0aW9ucworICAgY29ycmVzcG9uZCB0byB0aGUgZmFjdCB0aGF0IGVkZ2VzIGxpbmsg dHdvIHZlcnRpY2VzLiAgKEdyYXBoIGRlZmluaXRpb25zCisgICB3b3JrIG1vcmUgbmF0dXJh bGx5IHdpdGggbWFueS10by1tYW55IHJlbGF0aW9uc2hpcHMsIHNvIHRoaXMgZXhhbXBsZSBp cworICAgb3JnYW5pemVkIGxpa2UgdGhhdCwgZXZlbiB0aG91Z2ggb25lLXRvLW1hbnkgcmVs YXRpb25zaGlwcyBtaWdodCBiZSB1c2VkCisgICBoZXJlIGluIGEgcHVyZSByZWxhdGlvbmFs IGFwcHJvYWNoLikKKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSGVyZSBpcyBhbiBleGFt cGxlIGhvdyBhIHByb3BlcnR5IGdyYXBoIGNvdWxkIGJlIGRlZmluZWQgb24gdG9wIG9mIHRo ZXNlCisgICB0YWJsZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggbXlzaG9wCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1Y3RzLAorICAg ICAgICBjdXN0b21lcnMsCisgICAgICAgIG9yZGVycworICAgICkKKyAgICBFREdFIFRBQkxF UyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIFNPVVJDRSBvcmRlcnMgREVTVElOQVRJT04gcHJv ZHVjdHMsCisgICAgICAgIGN1c3RvbWVyX29yZGVycyBTT1VSQ0UgY3VzdG9tZXJzIERFU1RJ TkFUSU9OIG9yZGVycworICAgICk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBUaGlzIGdyYXBoIGNvdWxkIHRoZW4gYmUgcXVlcmllZCBsaWtlIHRo aXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CistLSBnZXQgbGlzdCBvZiBjdXN0b21lcnMgYWN0aXZl IHRvZGF5CitTRUxFQ1QgY3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3Ag TUFUQ0ggKGMgSVMgY3VzdG9tZXJzKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3Jk ZXJzIFdIRVJFIG9yZGVyZWRfd2hlbiA9IGN1cnJlbnRfZGF0ZSkgQ09MVU1OUyAoYy5uYW1l IEFTIGN1c3RvbWVyX25hbWUpKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICBjb3JyZXNwb25k aW5nIGFwcHJveGltYXRlbHkgdG8gdGhpcyByZWxhdGlvbmFsIHF1ZXJ5OgorPHByb2dyYW1s aXN0aW5nPgorLS0gZ2V0IGxpc3Qgb2YgY3VzdG9tZXJzIGFjdGl2ZSB0b2RheQorU0VMRUNU IGN1c3RvbWVycy5uYW1lIEZST00gY3VzdG9tZXJzIEpPSU4gY3VzdG9tZXJfb3JkZXJzIFVT SU5HIChjdXN0b21lcl9pZCkgSk9JTiBvcmRlcnMgVVNJTkcgKG9yZGVyX2lkKSBXSEVSRSBv cmRlcnMub3JkZXJlZF93aGVuID0gY3VycmVudF9kYXRlOworPC9wcm9ncmFtbGlzdGluZz4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIGFib3ZlIGRlZmluaXRpb24gcmVxdWly ZXMgdGhhdCBhbGwgdGFibGVzIGhhdmUgcHJpbWFyeSBrZXlzIGFuZCB0aGF0CisgICBmb3Ig ZWFjaCBlZGdlIHRoZXJlIGlzIGFuIGFwcHJvcHJpYXRlIGZvcmVpZ24ga2V5LiAgT3RoZXJ3 aXNlLCBhZGRpdGlvbmFsCisgICBjbGF1c2VzIGhhdmUgdG8gYmUgc3BlY2lmaWVkIHRvIGlk ZW50aWZ5IHRoZSBrZXkgY29sdW1ucy4gIEZvciBleGFtcGxlLAorICAgdGhpcyB3b3VsZCBi ZSB0aGUgZnVsbHkgdmVyYm9zZSBkZWZpbml0aW9uIHRoYXQgZG9lcyBub3QgcmVseSBvbiBw cmltYXJ5CisgICBhbmQgZm9yZWlnbiBrZXlzOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRF IFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAgICAgICBw cm9kdWN0cyBLRVkgKHByb2R1Y3Rfbm8pLAorICAgICAgICBjdXN0b21lcnMgS0VZIChjdXN0 b21lcl9pZCksCisgICAgICAgIG9yZGVycyBLRVkgKG9yZGVyX2lkKQorICAgICkKKyAgICBF REdFIFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIEtFWSAob3JkZXJfaXRlbXNfaWQp CisgICAgICAgICAgICBTT1VSQ0UgS0VZIChvcmRlcl9pZCkgUkVGRVJFTkNFUyBvcmRlcnMg KG9yZGVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChwcm9kdWN0X25vKSBS RUZFUkVOQ0VTIHByb2R1Y3RzIChwcm9kdWN0X25vKSwKKyAgICAgICAgY3VzdG9tZXJfb3Jk ZXJzIEtFWSAoY3VzdG9tZXJfb3JkZXJzX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAo Y3VzdG9tZXJfaWQpIFJFRkVSRU5DRVMgY3VzdG9tZXJzIChjdXN0b21lcl9pZCkKKyAgICAg ICAgICAgIERFU1RJTkFUSU9OIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChv cmRlcl9pZCkKKyAgICApOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxw YXJhPgorICAgQXMgbWVudGlvbmVkIGFib3ZlLCBieSBkZWZhdWx0LCB0aGUgbmFtZXMgb2Yg dGhlIHRhYmxlcyBhbmQgY29sdW1ucyBhcmUKKyAgIGV4cG9zZWQgYXMgbGFiZWxzIGFuZCBw cm9wZXJ0aWVzLCByZXNwZWN0aXZlbHkuICBUaGUgY2xhdXNlcyA8bGl0ZXJhbD5JUworICAg Y3VzdG9tZXI8L2xpdGVyYWw+LCA8bGl0ZXJhbD5JUyBvcmRlcjwvbGl0ZXJhbD4sIGV0Yy4g aW4gdGhlCisgICA8bGl0ZXJhbD5NQVRDSDwvbGl0ZXJhbD4gY2xhdXNlIGluIGZhY3QgcmVm ZXIgdG8gbGFiZWxzLCBub3QgdGFibGUgbmFtZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4K KyAgIE9uZSB1c2Ugb2YgbGFiZWxzIGlzIHRvIGV4cG9zZSBhIHRhYmxlIHRocm91Z2ggYSBk aWZmZXJlbnQgbmFtZSBpbiB0aGUKKyAgIGdyYXBoLiAgRm9yIGV4YW1wbGUsIGluIGdyYXBo cywgdmVydGljZXMgdHlwaWNhbGx5IGhhdmUgc2luZ3VsYXIgbm91bgorICAgbGFiZWxzIGFu ZCBlZGdlcyB0eXBpY2FsbHkgaGF2ZSB2ZXJicyBhcyBsYWJlbHMsIHN1Y2ggYXMgPHF1b3Rl PmlzPC9xdW90ZT4sCisgICA8cXVvdGU+aGFzPC9xdW90ZT4sIDxxdW90ZT5jb250YWluczwv cXVvdGU+LCBvciBzb21ldGhpbmcgc3BlY2lmaWMgbGlrZQorICAgPHF1b3RlPmFwcHJvdmVz PC9xdW90ZT4uICBXZSBjYW4gaW50cm9kdWNlIHN1Y2ggbGFiZWxzIGludG8gb3VyIGV4YW1w bGUKKyAgIGxpa2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQUk9QRVJUWSBH UkFQSCBteXNob3AKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAgcHJvZHVjdHMgTEFC RUwgcHJvZHVjdCwKKyAgICAgICAgY3VzdG9tZXJzIExBQkVMIGN1c3RvbWVyLAorICAgICAg ICBvcmRlcnMgTEFCRUwgb3JkZXIKKyAgICApCisgICAgRURHRSBUQUJMRVMgKAorICAgICAg ICBvcmRlcl9pdGVtcyBTT1VSQ0Ugb3JkZXJzIERFU1RJTkFUSU9OIHByb2R1Y3RzIExBQkVM IGNvbnRhaW5zLAorICAgICAgICBjdXN0b21lcl9vcmRlcnMgU09VUkNFIGN1c3RvbWVycyBE RVNUSU5BVElPTiBvcmRlcnMgTEFCRUwgaGFzCisgICAgKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdpdGggdGhpcyBkZWZpbml0aW9uLCB3ZSBj YW4gd3JpdGUgYSBxdWVyeSBsaWtlIHRoaXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1Qg Y3VzdG9tZXJfbmFtZSBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGM6Y3VzdG9t ZXIpLVs6aGFzXS0+KG86b3JkZXIgV0hFUkUgb3JkZXJlZF93aGVuID0gY3VycmVudF9kYXRl KSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOworPC9wcm9ncmFtbGlzdGlu Zz4KKyAgIFdpdGggdGhlIG5ldyBsYWJlbHMgYW5kIHVzaW5nIHRoZSBjb2xvbiBpbnN0ZWFk IG9mIDxsaXRlcmFsPklTPC9saXRlcmFsPiwKKyAgIHdoaWNoIGFyZSBlcXVpdmFsZW50LCB0 aGUgPGxpdGVyYWw+TUFUQ0g8L2xpdGVyYWw+IGNsYXVzZSBpcyBub3cgbW9yZQorICAgY29t cGFjdCBhbmQgaW50dWl0aXZlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBbm90aGVy IHVzZSBpcyB0byBhcHBseSB0aGUgc2FtZSBsYWJlbCB0byBtdWx0aXBsZSBlbGVtZW50IHRh Ymxlcy4gIEZvcgorICAgZXhhbXBsZSwgY29uc2lkZXIgdGhpcyBhZGRpdGlvbmFsIHRhYmxl OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIGVtcGxveWVlcyAoCisgICAgZW1w bG95ZWVfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwKKyAgICBlbXBsb3llZV9uYW1lIHZhcmNo YXIsCisgICAgLi4uCispOworPC9wcm9ncmFtbGlzdGluZz4KK2FuZCB0aGUgZm9sbG93aW5n IGdyYXBoIGRlZmluaXRpb246Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFJPUEVSVFkg R1JBUEggbXlzaG9wCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1Y3RzIExB QkVMIHByb2R1Y3QsCisgICAgICAgIGN1c3RvbWVycyBMQUJFTCBjdXN0b21lciBMQUJFTCBw ZXJzb24gUFJPUEVSVElFUyAobmFtZSksCisgICAgICAgIG9yZGVycyBMQUJFTCBvcmRlciwK KyAgICAgICAgZW1wbG95ZWVzIExBQkVMIGVtcGxveWVlIExBQkVMIHBlcnNvbiBQUk9QRVJU SUVTIChlbXBsb3llZV9uYW1lIEFTIG5hbWUpCisgICAgKQorICAgIEVER0UgVEFCTEVTICgK KyAgICAgICAgb3JkZXJfaXRlbXMgU09VUkNFIG9yZGVycyBERVNUSU5BVElPTiBwcm9kdWN0 cyBMQUJFTCBjb250YWlucywKKyAgICAgICAgY3VzdG9tZXJfb3JkZXJzIFNPVVJDRSBjdXN0 b21lcnMgREVTVElOQVRJT04gb3JkZXJzIExBQkVMIGhhcworICAgICk7Cis8L3Byb2dyYW1s aXN0aW5nPgorICAgKEluIHByYWN0aWNlLCB0aGVyZSBvdWdodCB0byBiZSBhbiBlZGdlIGxp bmtpbmcgdGhlCisgICA8bGl0ZXJhbD5lbXBsb3llZXM8L2xpdGVyYWw+IHRhYmxlIHRvIHNv bWV0aGluZywgYnV0IGl0IGlzIGFsbG93ZWQgbGlrZQorICAgdGhpcy4pCisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIFRoZW4gd2UgY2FuIHJ1biBhIHF1ZXJ5IGxpa2UgdGhpcyAoaW5j b21wbGV0ZSk6Cis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgLi4uIEZST00gR1JBUEhfVEFC TEUgKG15c2hvcCBNQVRDSCAoOnBlcnNvbiBXSEVSRSBuYW1lID0gJy4uLicpLVtdLT4uLi4g Q09MVU1OUyAoLi4uKSk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgVGhpcyB3b3VsZCBhdXRv bWF0aWNhbGx5IGNvbnNpZGVyIGJvdGggdGhlIDxsaXRlcmFsPmN1c3RvbWVyczwvbGl0ZXJh bD4gYW5kCisgICB0aGUgPGxpdGVyYWw+ZW1wbG95ZWVzPC9saXRlcmFsPiB0YWJsZXMgd2hl biBsb29raW5nIGZvciBhbiBlZGdlIHdpdGggdGhlCisgICA8bGl0ZXJhbD5wZXJzb248L2xp dGVyYWw+IGxhYmVsLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBXaGVuIG1vcmUgdGhh biBvbmUgZWxlbWVudCB0YWJsZSBoYXMgdGhlIHNhbWUgbGFiZWwsIGl0IGlzIHJlcXVpcmVk IHRoYXQKKyAgIHRoZSBwcm9wZXJ0aWVzIG1hdGNoIGluIG51bWJlciwgbmFtZSwgYW5kIHR5 cGUuICBJbiB0aGUgZXhhbXBsZSwgd2Ugc3BlY2lmeQorICAgYW4gZXhwbGljaXQgcHJvcGVy dHkgbGlzdCBhbmQgaW4gb25lIGNhc2Ugb3ZlcnJpZGUgdGhlIG5hbWUgb2YgdGhlIGNvbHVt bgorICAgdG8gYWNoaWV2ZSB0aGlzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBGb3Ig bW9yZSBkZXRhaWxzIG9uIHRoZSBzeW50YXggZm9yIGNyZWF0aW5nIHByb3BlcnR5IGdyYXBo cywgc2VlIDxsaW5rCisgICBsaW5rZW5kPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIj48 Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkKKyAgIEdSQVBIPC9jb21tYW5kPjwvbGluaz4uICBN b3JlIGRldGFpbHMgYWJvdXQgdGhlIGdyYXBoIHF1ZXJ5IHN5bnRheCBpcyBpbgorICAgPHhy ZWYgbGlua2VuZD0icXVlcmllcy1ncmFwaCIvPi4KKyAgPC9wYXJhPgorIDwvc2VjdDE+CisK ICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgogICA8dGl0bGU+T3RoZXIgRGF0YWJhc2UgT2Jq ZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mZWF0dXJlcy5zZ21s IGIvZG9jL3NyYy9zZ21sL2ZlYXR1cmVzLnNnbWwKaW5kZXggOTY2ZmQzOTg4MjcuLjFhYmU2 Y2NkM2Q1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZmVhdHVyZXMuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvZmVhdHVyZXMuc2dtbApAQCAtNzAsMTAgKzcwLDEwIEBAIDx0aXRsZT5T UUwgQ29uZm9ybWFuY2U8L3RpdGxlPgogCiAgPHBhcmE+CiAgIFRoZSA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGNvcmUgY292ZXJzIHBhcnRzIDEsIDIsIDksCi0g IDExLCBhbmQgMTQuICBQYXJ0IDMgaXMgY292ZXJlZCBieSB0aGUgT0RCQyBkcml2ZXIsIGFu ZCBwYXJ0IDEzIGlzCisgIDExLCAxNCwgYW5kIDE2LiAgUGFydCAzIGlzIGNvdmVyZWQgYnkg dGhlIE9EQkMgZHJpdmVyLCBhbmQgcGFydCAxMyBpcwogICBjb3ZlcmVkIGJ5IHRoZSBQTC9K YXZhIHBsdWctaW4sIGJ1dCBleGFjdCBjb25mb3JtYW5jZSBpcyBjdXJyZW50bHkKICAgbm90 IGJlaW5nIHZlcmlmaWVkIGZvciB0aGVzZSBjb21wb25lbnRzLiAgVGhlcmUgYXJlIGN1cnJl bnRseSBubwotICBpbXBsZW1lbnRhdGlvbnMgb2YgcGFydHMgNCwgMTAsIDE1LCBhbmQgMTYK KyAgaW1wbGVtZW50YXRpb25zIG9mIHBhcnRzIDQsIDEwLCBhbmQgMTUKICAgZm9yIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4uCiAgPC9wYXJhPgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApp bmRleCBjZjNkZTgwMzk0ZS4uMjM3MTM2ZTJhZWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjUwMDAsNiAr MjUwMDAsMjEgQEAgPHRpdGxlPlN5c3RlbSBDYXRhbG9nIEluZm9ybWF0aW9uIEZ1bmN0aW9u czwvdGl0bGU+CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAg ICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAg PHByaW1hcnk+cGdfZ2V0X3Byb3BncmFwaGRlZjwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRl eHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ19nZXRfcHJvcGdyYXBoZGVmPC9mdW5jdGlv bj4gKCA8cGFyYW1ldGVyPnByb3BncmFwaDwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ ICkKKyAgICAgICAgPHJldHVybnZhbHVlPnRleHQ8L3JldHVybnZhbHVlPgorICAgICAgIDwv cGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgUmVjb25zdHJ1Y3RzIHRoZSBjcmVhdGlu ZyBjb21tYW5kIGZvciBhIHByb3BlcnR5IGdyYXBoLgorICAgICAgICAoVGhpcyBpcyBhIGRl Y29tcGlsZWQgcmVjb25zdHJ1Y3Rpb24sIG5vdCB0aGUgb3JpZ2luYWwgdGV4dAorICAgICAg ICBvZiB0aGUgY29tbWFuZC4pCisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jv dz4KKwogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAgICAgICA8aW5kZXh0ZXJtPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sIGIvZG9j L3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sCmluZGV4IDllNjZiZTRlODNkLi4w MmYxOGVlZGJkNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVt YS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbApAQCAt NDE3MSw2ICs0MTcxLDg2IEBAIDx0aXRsZT48c3RydWN0bmFtZT5wYXJhbWV0ZXJzPC9zdHJ1 Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAgPC90YWJsZT4KICA8L3NlY3QxPgogCisgPHNl Y3QxIGlkPSJpbmZvc2NoZW1hLXBnLWVkZ2UtdGFibGUtY29tcG9uZW50cyI+CisgIDx0aXRs ZT48bGl0ZXJhbD5wZ19lZGdlX3RhYmxlX2NvbXBvbmVudHM8L2xpdGVyYWw+PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRPRE8KKyAgPC9wYXJhPgorIDwvc2VjdDE+CisKKyA8c2VjdDEg aWQ9ImluZm9zY2hlbWEtcGctZWxlbWVudC10YWJsZS1rZXktY29sdW1ucyI+CisgIDx0aXRs ZT48bGl0ZXJhbD5wZ19lbGVtZW50X3RhYmxlX2tleV9jb2x1bW5zPC9saXRlcmFsPjwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUT0RPCisgIDwvcGFyYT4KKyA8L3NlY3QxPgorCisgPHNl Y3QxIGlkPSJpbmZvc2NoZW1hLXBnLWVsZW1lbnQtdGFibGUtbGFiZWxzIj4KKyAgPHRpdGxl PjxsaXRlcmFsPnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzPC9saXRlcmFsPjwvdGl0bGU+CisK KyAgPHBhcmE+CisgICBUT0RPCisgIDwvcGFyYT4KKyA8L3NlY3QxPgorCisgPHNlY3QxIGlk PSJpbmZvc2NoZW1hLXBnLWVsZW1lbnQtdGFibGUtcHJvcGVydGllcyI+CisgIDx0aXRsZT48 bGl0ZXJhbD5wZ19lbGVtZW50X3RhYmxlX3Byb3BlcnRpZXM8L2xpdGVyYWw+PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRPRE8KKyAgPC9wYXJhPgorIDwvc2VjdDE+CisKKyA8c2VjdDEg aWQ9ImluZm9zY2hlbWEtcGctZWxlbWVudC10YWJsZXMiPgorICA8dGl0bGU+PGxpdGVyYWw+ cGdfZWxlbWVudF90YWJsZXM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRP RE8KKyAgPC9wYXJhPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGct bGFiZWwtcHJvcGVydGllcyI+CisgIDx0aXRsZT48bGl0ZXJhbD5wZ19lbGVtZW50X2xhYmVs X3Byb3BlcnRpZXM8L2xpdGVyYWw+PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRPRE8KKyAg PC9wYXJhPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGctbGFiZWxz Ij4KKyAgPHRpdGxlPjxsaXRlcmFsPnBnX2VsZW1lbnRfbGFiZWxzPC9saXRlcmFsPjwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUT0RPCisgIDwvcGFyYT4KKyA8L3NlY3QxPgorCisgPHNl Y3QxIGlkPSJpbmZvc2NoZW1hLXBnLXByb3BlcnR5LWRhdGEtdHlwZXMiPgorICA8dGl0bGU+ PGxpdGVyYWw+cGdfcHJvcGVydHlfZGF0YV90eXBlczwvbGl0ZXJhbD48L3RpdGxlPgorCisg IDxwYXJhPgorICAgVE9ETworICA8L3BhcmE+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0i aW5mb3NjaGVtYS1wZy1wcm9wZXJ0eS1ncmFwaC1wcml2aWxlZ2VzIj4KKyAgPHRpdGxlPjxs aXRlcmFsPnBnX3Byb3BlcnR5X2dyYXBoX3ByaXZpbGVnZXM8L2xpdGVyYWw+PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRPRE8KKyAgPC9wYXJhPgorIDwvc2VjdDE+CisKKyA8c2VjdDEg aWQ9ImluZm9zY2hlbWEtcHJvcGVydHktZ3JhcGhzIj4KKyAgPHRpdGxlPjxsaXRlcmFsPnBy b3BlcnR5X2dyYXBoczwvbGl0ZXJhbD48L3RpdGxlPgorCisgIDxwYXJhPgorICAgVE9ETwor ICA8L3BhcmE+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1yZWZlcmVu dGlhbC1jb25zdHJhaW50cyI+CiAgIDx0aXRsZT48bGl0ZXJhbD5yZWZlcmVudGlhbF9jb25z dHJhaW50czwvbGl0ZXJhbD48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv a2V5d29yZHMvc3FsMjAyMy0xNi1ub25yZXNlcnZlZC50eHQgYi9kb2Mvc3JjL3NnbWwva2V5 d29yZHMvc3FsMjAyMy0xNi1ub25yZXNlcnZlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjM5NzU2YzYwNjdkCi0tLSAvZGV2L251bGwKKysrIGIvZG9j L3NyYy9zZ21sL2tleXdvcmRzL3NxbDIwMjMtMTYtbm9ucmVzZXJ2ZWQudHh0CkBAIC0wLDAg KzEsMjcgQEAKK0FDWUNMSUMKK0JJTkRJTkdTCitCT1VORAorREVTVElOQVRJT04KK0RJRkZF UkVOVAorRElSRUNURUQKK0VER0UKK0VER0VTCitFTEVNRU5UUworTEFCRUwKK0xBQkVMRUQK K05PREUKK1BBVEhTCitQUk9QRVJUSUVTCitQUk9QRVJUWQorUFJPUEVSVFlfR1JBUEhfQ0FU QUxPRworUFJPUEVSVFlfR1JBUEhfTkFNRQorUFJPUEVSVFlfR1JBUEhfU0NIRU1BCitSRUxB VElPTlNISVAKK1JFTEFUSU9OU0hJUFMKK1NIT1JURVNUCitTSU5HTEVUT05TCitTVEVQCitU QUJMRVMKK1RSQUlMCitWRVJURVgKK1dBTEsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9r ZXl3b3Jkcy9zcWwyMDIzLTE2LXJlc2VydmVkLnR4dCBiL2RvYy9zcmMvc2dtbC9rZXl3b3Jk cy9zcWwyMDIzLTE2LXJlc2VydmVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uM2JkZDdlMmIyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3Nn bWwva2V5d29yZHMvc3FsMjAyMy0xNi1yZXNlcnZlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor QUxMX0RJRkZFUkVOVAorQklORElOR19DT1VOVAorRUxFTUVOVF9JRAorRUxFTUVOVF9OVU1C RVIKK0VYUE9SVAorR1JBUEgKK0dSQVBIX1RBQkxFCitNQVRDSE5VTQorUEFUSF9MRU5HVEgK K1BBVEhfTkFNRQorUFJPUEVSVFlfRVhJU1RTCitTQU1FCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcXVlcmllcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3F1ZXJpZXMuc2dtbAppbmRleCA2 NDhiMjgzYjA2NC4uNWIwODgzMzFjNmUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9xdWVy aWVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3F1ZXJpZXMuc2dtbApAQCAtMjc0NCw0ICsy NzQ0LDE2MCBAQCA8dGl0bGU+RGF0YS1Nb2RpZnlpbmcgU3RhdGVtZW50cyBpbiA8bGl0ZXJh bD5XSVRIPC9saXRlcmFsPjwvdGl0bGU+CiAKICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJx dWVyaWVzLWdyYXBoIj4KKyAgPHRpdGxlPkdyYXBoIFF1ZXJpZXM8L3RpdGxlPgorCisgIDxw YXJhPgorICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgc3VibGFuZ3VhZ2UgZm9yIHF1 ZXJ5aW5nIHByb3BlcnR5IGdyYXBocywKKyAgIGRlZmluZWQgYXMgZGVzY3JpYmVkIGluIDx4 cmVmIGxpbmtlbmQ9ImRkbC1wcm9wZXJ0eS1ncmFwaHMiLz4uCisgIDwvcGFyYT4KKworICA8 c2VjdDIgaWQ9InF1ZXJpZXMtZ3JhcGgtb3ZlcnZpZXciPgorICAgPHRpdGxlPk92ZXJ2aWV3 PC90aXRsZT4KKworICAgPHBhcmE+CisgICAgQ29uc2lkZXIgdGhpcyBleGFtcGxlIGZyb20g PHhyZWYgbGlua2VuZD0iZGRsLXByb3BlcnR5LWdyYXBocyIvPjoKKzxwcm9ncmFtbGlzdGlu Zz4KKy0tIGdldCBsaXN0IG9mIGN1c3RvbWVycyBhY3RpdmUgdG9kYXkKK1NFTEVDVCBjdXN0 b21lcl9uYW1lIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21l cnMpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMgV0hFUkUgby5vcmRlcmVk X3doZW4gPSBjdXJyZW50X2RhdGUpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1l KSk7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgIFRoZSBncmFwaCBxdWVyeSBwYXJ0IGhhcHBl bnMgaW5zaWRlIHRoZSA8bGl0ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4KKyAgICBjb25z dHJ1Y3QuICBBcyBmYXIgYXMgdGhlIHJlc3Qgb2YgdGhlIHF1ZXJ5IGlzIGNvbmNlcm5lZCwg dGhpcyBhY3RzIGxpa2UgYQorICAgIHRhYmxlIGZ1bmN0aW9uIGluIHRoYXQgaXQgcHJvZHVj ZXMgYSBjb21wdXRlZCB0YWJsZSBhcyBvdXRwdXQuICBMaWtlIG90aGVyCisgICAgPGxpdGVy YWw+RlJPTTwvbGl0ZXJhbD4gY2xhdXNlIGVsZW1lbnRzLCB0YWJsZSBhbGlhcyBhbmQgY29s dW1uIGFsaWFzCisgICAgbmFtZXMgY2FuIGJlIGFzc2lnbmVkIHRvIHRoZSByZXN1bHQsIGFu ZCB0aGUgcmVzdWx0IGNhbiBiZSBqb2luZWQgd2l0aAorICAgIG90aGVyIHRhYmxlcywgc3Vi c2VxdWVudGx5IGZpbHRlcmVkLCBhbmQgc28gb24sIGZvciBleGFtcGxlOgorPHByb2dyYW1s aXN0aW5nPgorU0VMRUNUIC4uLiBGUk9NIEdSQVBIX1RBQkxFIChteWdyYXBoIE1BVENIIC4u LiBDT0xVTU5TICguLi4pKSBBUyBteXJlc3VsdCAoYSwgYiwgYykgSk9JTiBvdGhlcnRhYmxl IFVTSU5HIChhKSBXSEVSRSBiID4gMCBPUkRFUiBCWSBjOworPC9wcm9ncmFtbGlzdGluZz4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIDxsaXRlcmFsPkdSQVBIX1RBQkxF PC9saXRlcmFsPiBjbGF1c2UgY29uc2lzdHMgb2YgdGhlIGdyYXBoIG5hbWUsCisgICAgZm9s bG93ZWQgYnkgdGhlIGtleXdvcmQgPGxpdGVyYWw+TUFUQ0g8L2xpdGVyYWw+LCBmb2xsb3dl ZCBieSBhIGdyYXBoCisgICAgcGF0dGVybiBleHByZXNzaW9uIChzZWUgYmVsb3cpLCBmb2xs b3dlZCBieSB0aGUga2V5d29yZAorICAgIDxsaXRlcmFsPkNPTFVNTlM8L2xpdGVyYWw+IGFu ZCBhIGNvbHVtbiBsaXN0LgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0MiBp ZD0icXVlcmllcy1ncmFwaC1wYXR0ZXJucyI+CisgICA8dGl0bGU+R3JhcGggUGF0dGVybnM8 L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBUaGUgY29yZSBvZiB0aGUgZ3JhcGggcXVlcnlp bmcgZnVuY3Rpb25hbGl0eSBpcyB0aGUgZ3JhcGggcGF0dGVybiwgd2hpY2gKKyAgICBhcHBl YXJzIGFmdGVyIHRoZSBrZXl3b3JkIDxsaXRlcmFsPk1BVENIPC9saXRlcmFsPi4gIEZvcm1h bGx5LCBhIGdyYXBoCisgICAgcGF0dGVybiBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBwYXRo IHBhdHRlcm5zLiAgQSBwYXRoIGlzIGEgc2VxdWVuY2Ugb2YKKyAgICBncmFwaCBlbGVtZW50 cywgc3RhcnRpbmcgYW5kIGVuZGluZyB3aXRoIGEgdmVydGV4IGFuZCBhbHRlcm5hdGluZyBi ZXR3ZWVuCisgICAgdmVydGljZXMgYW5kIGVkZ2VzLiAgQSBwYXRoIHBhdHRlcm4gaXMgYSBz eW50YWN0aWMgZXhwcmVzc2lvbnMgdGhhdAorICAgIG1hdGNoZXMgcGF0aHMuCisgICA8L3Bh cmE+CisKKyAgIDxwYXJhPgorICAgIEEgcGF0aCBwYXR0ZXJuIHRodXMgbWF0Y2hlcyBhIHNl cXVlbmNlIG9mIHZlcnRpY2VzIGFuZCBlZGdlcy4gIFRoZQorICAgIHNpbXBsZXN0IHBvc3Np YmxlIHBhdGggcGF0dGVybiBpcworPHByb2dyYW1saXN0aW5nPgorKCkKKzwvcHJvZ3JhbWxp c3Rpbmc+CisgICAgd2hpY2ggbWF0Y2hlcyBhIHNpbmdsZSB2ZXJ0ZXguICBUaGUgbmV4dCBz aW1wbGVzdCBwYXR0ZXJuIHdvdWxkIGJlCis8cHJvZ3JhbWxpc3Rpbmc+CisoKS1bXS0+KCkK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgd2hpY2ggbWF0Y2hlcyBhIHZlcnRleCBmb2xsb3dl ZCBieSBhbiBlZGdlIGZvbGxvd2VkIGJ5IGEgdmVydGV4LiAgVGhlCisgICAgY2hhcmFjdGVy cyA8bGl0ZXJhbD4oKTwvbGl0ZXJhbD4gYXJlIGEgdmVydGV4IHBhdHRlcm4gYW5kIHRoZSBj aGFyYWN0ZXJzCisgICAgPGxpdGVyYWw+LVtdLT48L2xpdGVyYWw+IGFyZSBhbiBlZGdlIHBh dHRlcm4uCisgICA8L3BhcmE+CisKKyAgIDx0aXA+CisgICAgPHBhcmE+CisgICAgIEEgd2F5 IHRvIHJlbWVtYmVyIHRoZXNlIHN5bWJvbHMgaXMgdGhhdCBpbiB2aXN1YWwgcmVwcmVzZW50 YXRpb25zIG9mCisgICAgIHByb3BlcnR5IGdyYXBocywgdmVydGljZXMgYXJlIHVzdWFsbHkg Y2lyY2xlcyAobGlrZQorICAgICA8bGl0ZXJhbD4oKTwvbGl0ZXJhbD4pIGFuZCBlZGdlcyBo YXZlIHJlY3Rhbmd1bGFyIGxhYmVscyAobGlrZQorICAgICA8bGl0ZXJhbD5bXTwvbGl0ZXJh bD4pLgorICAgIDwvcGFyYT4KKyAgIDwvdGlwPgorCisgICA8cGFyYT4KKyAgICBUaGUgYWJv dmUgcGF0dGVybnMgd291bGQgbWF0Y2ggYW55IHZlcnRleCwgb3IgYW55IHR3byB2ZXJ0aWNl cyBjb25uZWN0ZWQKKyAgICBieSBhbnkgZWRnZSwgd2hpY2ggaXNuJ3QgdmVyeSBpbnRlcmVz dGluZy4gIE5vcm1hbGx5LCB3ZSB3YW50IHRvIHNlYXJjaAorICAgIGZvciBlbGVtZW50cyAo dmVydGljZXMgYW5kIGVkZ2VzKSB0aGF0IGhhdmUgY2VydGFpbiBjaGFyYWN0ZXJpc3RpY3Mu CisgICAgVGhlc2UgY2hhcmFjdGVyaXN0aWNzIGFyZSB3cml0dGVuIGluIGJldHdlZW4gdGhl IHBhcmVudGhlc2VzIG9yIGJyYWNrZXRzLgorICAgIChUaGlzIGlzIGFsc28gY2FsbGVkIGFu IGVsZW1lbnQgcGF0dGVybiBmaWxsZXIuKSAgVHlwaWNhbGx5LCB3ZSB3b3VsZAorICAgIHNl YXJjaCBmb3IgZWxlbWVudHMgd2l0aCBhIGNlcnRhaW4gbGFiZWwuICBUaGlzIGlzIHdyaXR0 ZW4gZWl0aGVyIGJ5CisgICAgPGxpdGVyYWw+SVMgPHJlcGxhY2VhYmxlPmxhYmVsbmFtZTwv cmVwbGFjZWFibGU+PC9saXRlcmFsPiBvciBlcXVpdmFsZW50bHkKKyAgICA8bGl0ZXJhbD46 PHJlcGxhY2VhYmxlPmxhYmVsbmFtZTwvcmVwbGFjZWFibGU+PC9saXRlcmFsPi4gIEZvciBl eGFtcGxlLAorICAgIHRoaXMgd291bGQgbWF0Y2ggYWxsIHZlcnRpY2VzIHdpdGggdGhlIGxh YmVsIDxsaXRlcmFsPnBlcnNvbjwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CisoSVMg cGVyc29uKQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICBvcgorPHByb2dyYW1saXN0aW5nPgor KDpwZXJzb24pCis8L3Byb2dyYW1saXN0aW5nPgorICAgIChGcm9tIG5vdyBvbiwgd2Ugd2ls bCBqdXN0IHVzZSB0aGUgY29sb24gc3ludGF4LCBmb3Igc2ltcGxpY2l0eS4gIEJ1dCBpdAor ICAgIGhlbHBzIHRvIHJlYWQgaXQgYXMgPHF1b3RlPmlzPC9xdW90ZT4gZm9yIHVuZGVyc3Rh bmRpbmcuKSAgVGhlIG5leHQKKyAgICBleGFtcGxlIHdvdWxkIG1hdGNoIGEgdmVydGV4IHdp dGggdGhlIGxhYmVsIDxsaXRlcmFsPnBlcnNvbjwvbGl0ZXJhbD4KKyAgICBjb25uZWN0ZWQg dG8gYSB2ZXJ0ZXggd2l0aCB0aGUgbGFiZWwgPGxpdGVyYWw+YWNjb3VudDwvbGl0ZXJhbD4g Y29ubmVjdGVkCisgICAgYnkgYW4gZWRnZSB3aXRoIHRoZSBsYWJlbCA8bGl0ZXJhbD5oYXM8 L2xpdGVyYWw+LgorPHByb2dyYW1saXN0aW5nPgorKDpwZXJzb24pLVs6aGFzXS0+KDphY2Nv dW50KQorPC9wcm9ncmFtbGlzdGluZz4KKyAgICBNdWx0aXBsZSBsYWJlbHMgY2FuIGFsc28g YmUgbWF0Y2hlZCwgdXNpbmcgPHF1b3RlPm9yPC9xdW90ZT4gc2VtYW50aWNzOgorPHByb2dy YW1saXN0aW5nPgorKDpwZXJzb24pLVs6aGFzXS0+KDphY2NvdW50fGNyZWRpdGNhcmQpCis8 L3Byb2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBSZWNhbGwg dGhhdCBlZGdlcyBhcmUgZGlyZWN0ZWQuICBUaGUgb3RoZXIgZGlyZWN0aW9uIGlzIGFsc28g cG9zc2libGUgaW4gYQorICAgIHBhdGggcGF0dGVybiwgZm9yIGV4YW1wbGU6Cis8cHJvZ3Jh bWxpc3Rpbmc+CisoOmFjY291bnQpJmx0Oy1bOmhhc10tKDpwZXJzb24pCis8L3Byb2dyYW1s aXN0aW5nPgorICAgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gbWF0Y2ggYm90aCBkaXJlY3Rp b25zOgorPHByb2dyYW1saXN0aW5nPgorKDpwZXJzb24pLVs6aXNfZnJpZW5kX29mXS0oOnBl cnNvbikKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgVGhpcyBoYXMgYSBtZWFuaW5nIG9mIDxx dW90ZT5vcjwvcXVvdGU+OiBBbiBlZGdlIGluIGVpdGhlciBkaXJlY3Rpb24gd291bGQKKyAg ICBtYXRjaC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgSW4gbWFueSBjYXNlcywg dGhlIGVkZ2UgcGF0dGVybnMgZG9uJ3QgbmVlZCBhIGZpbGxlci4gIChBbGwgdGhlIGZpbHRl cmluZworICAgIHRoZW4gaGFwcGVucyBvbiB0aGUgdmVydGljZXMuKSAgRm9yIHRoZXNlIGNh c2VzLCBhbiBhYmJyZXZpYXRlZCBlZGdlCisgICAgcGF0dGVybiBzeW50YXggaXMgYXZhaWxh YmxlIHRoYXQgb21pdHMgdGhlIGJyYWNrZXRzLCBmb3IgZXhhbXBsZToKKzxwcm9ncmFtbGlz dGluZz4KKyg6cGVyc29uKS0+KDphY2NvdW50KQorKDphY291bnQpJmx0Oy0oOnBlcnNvbikK Kyg6cGVyc29uKS0oOnBlcnNvbikKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgQXMgaXMgb2Z0 ZW4gdGhlIGNhc2UsIGFiYnJldmlhdGVkIHN5bnRheCBjYW4gbWFrZSBleHByZXNzaW9ucyBt b3JlIGNvbXBhY3QKKyAgICBidXQgYWxzbyBzb21ldGltZXMgaGFyZGVyIHRvIHVuZGVyc3Rh bmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEZ1cnRoZXJtb3JlLCBpdCBpcyBw b3NzaWJsZSB0byBkZWZpbmUgZ3JhcGggcGF0dGVybiB2YXJpYWJsZXMgaW4gdGhlIHBhdGgK KyAgICBwYXR0ZXJuIGV4cHJlc3Npb25zLiAgVGhlc2UgYXJlIGJvdW5kIHRvIHRoZSBtYXRj aGVkIGVsZW1lbnRzIGFuZCBjYW4gYmUKKyAgICB1c2VkIHRvIHJlZmVyIHRvIHRoZSBwcm9w ZXJ0eSB2YWx1ZXMgZnJvbSB0aG9zZSBlbGVtZW50cy4gIFRoZSBtb3N0CisgICAgaW1wb3J0 YW50IHVzZSBpcyB0byB1c2UgdGhlbSBpbiB0aGUgPGxpdGVyYWw+Q09MVU1OUzwvbGl0ZXJh bD4gY2xhdXNlIHRvCisgICAgZGVmaW5lIHRoZSB0YWJ1bGFyIHJlc3VsdCBvZiB0aGUgPGxp dGVyYWw+R1JBUEhfVEFCTEU8L2xpdGVyYWw+IGNsYXVzZS4KKyAgICBGb3IgZXhhbXBsZSAo YXNzdW1pbmcgYXBwcm9wcmlhdGUgZGVmaW5pdGlvbnMgb2YgdGhlIHByb3BlcnR5IGdyYXBo IGFzCisgICAgd2VsbCBhcyB0aGUgdW5kZXJseWluZyB0YWJsZXMpOgorPHByb2dyYW1saXN0 aW5nPgorR1JBUEhfVEFCTEUgKG15Z3JhcGggTUFUQ0ggKHA6cGVyc29uKS1baDpoYXNdLT4o YTphY2NvdW50KQorICAgICAgICAgICAgIENPTFVNTlMgKHAubmFtZSBBUyBwZXJzb25fbmFt ZSwgaC5zaW5jZSBBUyBoYXNfYWNjb3VudF9zaW5jZSwgYS5udW0gQVMgYWNjb3VudF9udW1i ZXIpCis8L3Byb2dyYW1saXN0aW5nPgorICAgIDxsaXRlcmFsPldIRVJFPC9saXRlcmFsPiBj bGF1c2VzIGNhbiBiZSB1c2VkIGluc2lkZSBlbGVtZW50IHBhdHRlcm5zIHRvCisgICAgZmls dGVyIG1hdGNoZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CisoOnBlcnNvbiktWzpoYXNdLT4oYTph Y2NvdW50IFdIRVJFIGEudHlwZSA9ICdzYXZpbmdzJykKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg ICA8L3BhcmE+CisKKyAgIDwhLS0gVE9ETzogbXVsdGlwbGUgcGF0aCBwYXR0ZXJucyBpbiBh IGdyYXBoIHBhdHRlcm4gKGNvbW1hLXNlcGFyYXRlZCkgLS0+CisKKyAgIDwhLS0gVE9ETzog cXVhbnRpZmllcnMgLS0+CisKKyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiA8L2NoYXB0ZXI+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggNGE0Mjk5OWIxODMuLjk5MGQyYjFhZjNj IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0yNyw2ICsyNyw3IEBACiA8IUVOVElU WSBhbHRlck9wZXJhdG9yRmFtaWx5IFNZU1RFTSAiYWx0ZXJfb3BmYW1pbHkuc2dtbCI+CiA8 IUVOVElUWSBhbHRlclBvbGljeSAgICAgICAgU1lTVEVNICJhbHRlcl9wb2xpY3kuc2dtbCI+ CiA8IUVOVElUWSBhbHRlclByb2NlZHVyZSAgICAgU1lTVEVNICJhbHRlcl9wcm9jZWR1cmUu c2dtbCI+Cis8IUVOVElUWSBhbHRlclByb3BlcnR5R3JhcGggU1lTVEVNICJhbHRlcl9wcm9w ZXJ0eV9ncmFwaC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyUHVibGljYXRpb24gICBTWVNURU0g ImFsdGVyX3B1YmxpY2F0aW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJSb2xlICAgICAgICAg IFNZU1RFTSAiYWx0ZXJfcm9sZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyUm91dGluZSAgICAg ICBTWVNURU0gImFsdGVyX3JvdXRpbmUuc2dtbCI+CkBAIC03OSw2ICs4MCw3IEBACiA8IUVO VElUWSBjcmVhdGVPcGVyYXRvckZhbWlseSBTWVNURU0gImNyZWF0ZV9vcGZhbWlseS5zZ21s Ij4KIDwhRU5USVRZIGNyZWF0ZVBvbGljeSAgICAgICBTWVNURU0gImNyZWF0ZV9wb2xpY3ku c2dtbCI+CiA8IUVOVElUWSBjcmVhdGVQcm9jZWR1cmUgICAgU1lTVEVNICJjcmVhdGVfcHJv Y2VkdXJlLnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlUHJvcGVydHlHcmFwaCBTWVNURU0gImNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVB1YmxpY2F0aW9u ICBTWVNURU0gImNyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVJv bGUgICAgICAgICBTWVNURU0gImNyZWF0ZV9yb2xlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRl UnVsZSAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3J1bGUuc2dtbCI+CkBAIC0xMjcsNiArMTI5 LDcgQEAKIDwhRU5USVRZIGRyb3BPd25lZCAgICAgICAgICBTWVNURU0gImRyb3Bfb3duZWQu c2dtbCI+CiA8IUVOVElUWSBkcm9wUG9saWN5ICAgICAgICAgU1lTVEVNICJkcm9wX3BvbGlj eS5zZ21sIj4KIDwhRU5USVRZIGRyb3BQcm9jZWR1cmUgICAgICBTWVNURU0gImRyb3BfcHJv Y2VkdXJlLnNnbWwiPgorPCFFTlRJVFkgZHJvcFByb3BlcnR5R3JhcGggIFNZU1RFTSAiZHJv cF9wcm9wZXJ0eV9ncmFwaC5zZ21sIj4KIDwhRU5USVRZIGRyb3BQdWJsaWNhdGlvbiAgICBT WVNURU0gImRyb3BfcHVibGljYXRpb24uc2dtbCI+CiA8IUVOVElUWSBkcm9wUm9sZSAgICAg ICAgICAgU1lTVEVNICJkcm9wX3JvbGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wUm91dGluZSAg ICAgICAgU1lTVEVNICJkcm9wX3JvdXRpbmUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX2V4dGVuc2lvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9leHRlbnNpb24uc2dtbAppbmRleCBjODE5YzdiYjRlMy4uNjAyMThmY2QwMWMgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZXh0ZW5zaW9uLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl9leHRlbnNpb24uc2dtbApAQCAtNDYsNiArNDYsNyBAQAog ICBPUEVSQVRPUiBGQU1JTFkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVj dF9uYW1lPC9yZXBsYWNlYWJsZT4gVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmluZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+IHwKICAgWyBQUk9DRURVUkFMIF0gTEFO R1VBR0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBs YWNlYWJsZT4gfAogICBQUk9DRURVUkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnByb2NlZHVyZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIFsgWyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+YXJnbW9kZTwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+YXJnbmFtZTwvcmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBd IHwKKyAgUFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9i amVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBST1VUSU5FIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb3V0aW5lX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFss IC4uLl0gXSApIF0gfAogICBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBTRVFVRU5DRSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CkBAIC0xNzks NyArMTgwLDcgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgICAgIFRoZSBuYW1l IG9mIGFuIG9iamVjdCB0byBiZSBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhlIGV4dGVu c2lvbi4KICAgICAgICBOYW1lcyBvZiB0YWJsZXMsCiAgICAgICAgYWdncmVnYXRlcywgZG9t YWlucywgZm9yZWlnbiB0YWJsZXMsIGZ1bmN0aW9ucywgb3BlcmF0b3JzLAotICAgICAgIG9w ZXJhdG9yIGNsYXNzZXMsIG9wZXJhdG9yIGZhbWlsaWVzLCBwcm9jZWR1cmVzLCByb3V0aW5l cywgc2VxdWVuY2VzLCB0ZXh0IHNlYXJjaCBvYmplY3RzLAorICAgICAgIG9wZXJhdG9yIGNs YXNzZXMsIG9wZXJhdG9yIGZhbWlsaWVzLCBwcm9jZWR1cmVzLCBwcm9wZXJ0eSBncmFwaHMs IHJvdXRpbmVzLCBzZXF1ZW5jZXMsIHRleHQgc2VhcmNoIG9iamVjdHMsCiAgICAgICAgdHlw ZXMsIGFuZCB2aWV3cyBjYW4gYmUgc2NoZW1hLXF1YWxpZmllZC4KICAgICAgIDwvcGFyYT4K ICAgICAgPC9saXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHJvcGVydHlfZ3JhcGguc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHJvcGVydHlf Z3JhcGguc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTRl NTZhZDY1MmQKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3By b3BlcnR5X2dyYXBoLnNnbWwKQEAgLTAsMCArMSwxNTAgQEAKKzwhLS0KK2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHJvcGVydHlfZ3JhcGguc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0 aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXItcHJvcGVydHktZ3JhcGgiPgor IDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVyLXByb3BlcnR5LWdyYXBoIj4KKyAgPHByaW1h cnk+QUxURVIgUFJPUEVSVFkgR1JBUEg8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8 cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgUFJPUEVSVFkgR1JBUEg8L3JlZmVu dHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+ U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgor CisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIFBST1BFUlRZIEdSQVBIPC9yZWZu YW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYW4gU1FMLXBy b3BlcnR5IGdyYXBoPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5v cHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQURECisgICAgWyB7VkVS VEVYfE5PREV9IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52ZXJ0 ZXhfdGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisgICAgWyB7RURHRXxS RUxBVElPTlNISVB9IFRBQkxFUyAoIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmVkZ2VfdGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFNPVVJDRSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+c291cmNlX3RhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBERVNUSU5B VElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVzdF90YWJsZV9uYW1lPC9y ZXBsYWNlYWJsZT4gfSBbLCAuLi5dICkgXQorCitBTFRFUiBQUk9QRVJUWSBHUkFQSCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AKKyAg ICB7VkVSVEVYfE5PREV9IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij52ZXJ0ZXhfdGFibGVfYWxpYXM8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgWyBDQVNDQURF IHwgUkVTVFJJQ1QgXQorCitBTFRFUiBQUk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AKKyAgICB7RURHRXxSRUxB VElPTlNISVB9IFRBQkxFUyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdl X3RhYmxlX2FsaWFzPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFsgQ0FTQ0FERSB8IFJFU1RS SUNUIF0KKworQUxURVIgUFJPUEVSVFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBTFRFUgorICAgIHtWRVJURVh8Tk9ERXxFREdF fFJFTEFUSU9OU0hJUH0gVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVs ZW1lbnRfdGFibGVfYWxpYXM8L3JlcGxhY2VhYmxlPgorICAgIHsgQUREIExBQkVMIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5sYWJlbF9uYW1lPC9yZXBsYWNlYWJsZT4gWyBO TyBQUk9QRVJUSUVTIHwgUFJPUEVSVElFUyBBTEwgQ09MVU1OUyB8IFBST1BFUlRJRVMgKCB7 IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJs ZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJvcGVydHlfbmFtZTwv cmVwbGFjZWFibGU+IF0gfSBbLCAuLi5dICkgXSB9IFsgLi4uIF0KKworQUxURVIgUFJPUEVS VFkgR1JBUEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBBTFRFUgorICAgIHtWRVJURVh8Tk9ERXxFREdFfFJFTEFUSU9OU0hJUH0gVEFCTEUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVsZW1lbnRfdGFibGVfYWxpYXM8L3Jl cGxhY2VhYmxlPgorICAgIERST1AgTEFCRUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmxhYmVsX25hbWU8L3JlcGxhY2VhYmxlPiBbIENBU0NBREUgfCBSRVNUUklDVCBdCisK K0FMVEVSIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4gQUxURVIKKyAgICB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElP TlNISVB9IFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVtZW50X3Rh YmxlX2FsaWFzPC9yZXBsYWNlYWJsZT4KKyAgICBBTFRFUiBMQUJFTCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bGFiZWxfbmFtZTwvcmVwbGFjZWFibGU+IEFERCBQUk9QRVJU SUVTICggeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVw bGFjZWFibGU+IFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb3BlcnR5 X25hbWU8L3JlcGxhY2VhYmxlPiBdIH0gWywgLi4uXSApCisKK0FMVEVSIFBST1BFUlRZIEdS QVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g QUxURVIKKyAgICB7VkVSVEVYfE5PREV8RURHRXxSRUxBVElPTlNISVB9IFRBQkxFIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVtZW50X3RhYmxlX2FsaWFzPC9yZXBsYWNl YWJsZT4KKyAgICBBTFRFUiBMQUJFTCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bGFiZWxfbmFtZTwvcmVwbGFjZWFibGU+IERST1AgUFJPUEVSVElFUyAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wcm9wZXJ0eV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4u XSApIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworQUxURVIgUFJPUEVSVFkgR1JBUEggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBU TyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2Vh YmxlPiB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBQUk9QRVJUWSBH UkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3Jl cGxhY2VhYmxlPgorQUxURVIgUFJPUEVSVFkgR1JBUEggWyBJRiBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxl PgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVE9ETworICA8L3Bh cmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIChv cHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIGEgcHJvcGVydHkgZ3JhcGggdG8gYmUg YWx0ZXJlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElT VFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHByb3BlcnR5IGdyYXBoIGRvZXMgbm90 IGV4aXN0LiAgQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+VE9ETzwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVE9ETworICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIHVzZXIgbmFt ZSBvZiB0aGUgbmV3IG93bmVyIG9mIHRoZSBwcm9wZXJ0eSBncmFwaC4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25h bWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgcHJvcGVydHkgZ3JhcGguCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19z Y2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIG5ldyBzY2hlbWEgZm9yIHRoZSBwcm9wZXJ0eSBncmFwaC4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJp YWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBST1BF UlRZIEdSQVBIIGcxIFJFTkFNRSBUTyBnMjsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRPRE8KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxp c3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0 ZS1wcm9wZXJ0eS1ncmFwaCIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5k PSJzcWwtZHJvcC1wcm9wZXJ0eS1ncmFwaCIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+ CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCmluZGV4 IDViNDNjNTZiMTMzLi43YjI1MTQ3NmUyNCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9jb21tZW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKQEAg LTQ3LDYgKzQ3LDcgQEAKICAgUE9MSUNZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5wb2xpY3lfbmFtZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBbIFBST0NFRFVSQUwgXSBM QU5HVUFHRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3Jl cGxhY2VhYmxlPiB8CiAgIFBST0NFRFVSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHJvY2VkdXJlX25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSAp IF0gfAorICBQUk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPgogICBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFJPTEUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJs ZT4gfAogICBST1VUSU5FIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb3V0aW5l X25hbWU8L3JlcGxhY2VhYmxlPiBbICggWyBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIF0gfApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLnNnbWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI1NzE4NmE2YTk1Ci0tLSAvZGV2L251bGwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlfZ3JhcGguc2dtbApAQCAt MCwwICsxLDIzMiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJvcGVydHlf Z3JhcGguc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBoIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNx bC1jcmVhdGUtcHJvcGVydHktZ3JhcGgiPgorICA8cHJpbWFyeT5DUkVBVEUgUFJPUEVSVFkg R1JBUEg8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVu dHJ5dGl0bGU+Q1JFQVRFIFBST1BFUlRZIEdSQVBIPC9yZWZlbnRyeXRpdGxlPgorICA8bWFu dm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0 YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2Pgor ICA8cmVmbmFtZT5DUkVBVEUgUFJPUEVSVFkgR1JBUEg8L3JlZm5hbWU+CisgIDxyZWZwdXJw b3NlPmRlZmluZSBhbiBTUUwtcHJvcGVydHkgZ3JhcGg8L3JlZnB1cnBvc2U+CisgPC9yZWZu YW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFsgVEVN UCB8IFRFTVBPUkFSWSBdIFBST1BFUlRZIEdSQVBIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KKyAgICBbIHtWRVJURVh8Tk9ERX0gVEFCTEVT ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZlcnRleF90YWJsZV9kZWZpbml0 aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0KKyAgICBbIHtFREdFfFJFTEFUSU9OU0hJ UH0gVEFCTEVTICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVkZ2VfdGFibGVf ZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisKKzxwaHJhc2U+d2hlcmUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZlcnRleF90YWJsZV9kZWZpbml0aW9u PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dmVydGV4X3RhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0gWyBLRVkg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dICkgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVt ZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzPC9yZXBsYWNlYWJsZT4gXQorCis8cGhy YXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWRnZV90YWJsZV9kZWZp bml0aW9uPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZWRnZV90YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPiBdIFsg S0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSApIF0KKyAgICAgICAgU09VUkNFIFsgS0VZICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4u XSApIFJFRkVSRU5DRVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c291cmNl X3RhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisgICAgICAgIERFU1RJ TkFUSU9OIFsgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFJFRkVSRU5DRVMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZGVzdF90YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li5dICkgXQorICAgICAgICBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbGVt ZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzPC9yZXBsYWNlYWJsZT4gXQorCis8cGhy YXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZWxlbWVudF90YWJsZV9s YWJlbF9hbmRfcHJvcGVydGllczwvcmVwbGFjZWFibGU+IGlzIGVpdGhlcjo8L3BocmFzZT4K KworICAgIE5PIFBST1BFUlRJRVMgfCBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TIHwgUFJPUEVS VElFUyAoIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3Jl cGxhY2VhYmxlPiBbIEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcm9wZXJ0 eV9uYW1lPC9yZXBsYWNlYWJsZT4gXSB9IFssIC4uLl0gKQorCis8cGhyYXNlPm9yOjwvcGhy YXNlPgorCisgICB7IHsgTEFCRUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxh YmVsPC9yZXBsYWNlYWJsZT4gfCBERUZBVUxUIExBQkVMIH0gWyBOTyBQUk9QRVJUSUVTIHwg UFJPUEVSVElFUyBBTEwgQ09MVU1OUyB8IFBST1BFUlRJRVMgKCB7IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBBUyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJvcGVydHlfbmFtZTwvcmVwbGFjZWFibGU+IF0g fSBbLCAuLi5dICkgXSB9IFsuLi5dCis8L3N5bm9wc2lzPgorPC9yZWZzeW5vcHNpc2Rpdj4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFy YT4KKyAgIDxjb21tYW5kPkNSRUFURSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4gZGVmaW5l cyBhIHByb3BlcnR5IGdyYXBoLiAgQQorICAgcHJvcGVydHkgZ3JhcGggY29uc2lzdHMgb2Yg dmVydGljZXMgYW5kIGVkZ2VzLCB0b2dldGhlciBjYWxsZWQgZWxlbWVudHMsCisgICBlYWNo IHdpdGggYXNzb2NpYXRlZCBsYWJlbHMgYW5kIHByb3BlcnRpZXMsIGFuZCBjYW4gYmUgcXVl cmllZCB1c2luZyB0aGUKKyAgIDxsaXRlcmFsPkdSQVBIX1RBQkxFPC9saXRlcmFsPiBjbGF1 c2Ugb2YgPHhyZWYgbGlua2VuZD0ic3FsLXNlbGVjdCIvPiB3aXRoCisgICBhIHNwZWNpYWwg cGF0aCBtYXRjaGluZyBzeW50YXguICBUaGUgZGF0YSBpbiB0aGUgZ3JhcGggaXMgc3RvcmVk IGluIHJlZ3VsYXIKKyAgIHRhYmxlcyAob3Igdmlld3MsIGZvcmVpZ24gdGFibGVzLCBldGMu KS4gIEVhY2ggdmVydGV4IG9yIGVkZ2UgY29ycmVzcG9uZHMKKyAgIHRvIGEgdGFibGUuICBU aGUgcHJvcGVydHkgZ3JhcGggZGVmaW5pdGlvbiBsaW5rcyB0aGVzZSB0YWJsZXMgdG9nZXRo ZXIgaW50bworICAgYSBncmFwaCBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgcXVlcmllZCB1c2lu ZyBncmFwaCBxdWVyeSB0ZWNobmlxdWVzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICA8 Y29tbWFuZD5DUkVBVEUgUFJPUEVSVFkgR1JBUEg8L2NvbW1hbmQ+IGRvZXMgbm90IHBoeXNp Y2FsbHkgbWF0ZXJpYWxpemUgYQorICAgZ3JhcGguICBJdCBpcyB0aHVzIHNpbWlsYXIgdG8g PGNvbW1hbmQ+Q1JFQVRFIFZJRVc8L2NvbW1hbmQ+IGluIHRoYXQgaXQKKyAgIHJlY29yZHMg YSBzdHJ1Y3R1cmUgdGhhdCBpcyB1c2VkIG9ubHkgd2hlbiB0aGUgZGVmaW5lZCBvYmplY3Qg aXMgcXVlcmllZC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgSWYgYSBzY2hlbWEgbmFt ZSBpcyBnaXZlbiAoZm9yIGV4YW1wbGUsIDxsaXRlcmFsPkNSRUFURSBQUk9QRVJUWSBHUkFQ SAorICAgbXlzY2hlbWEubXlncmFwaCAuLi48L2xpdGVyYWw+KSB0aGVuIHRoZSBwcm9wZXJ0 eSBncmFwaCBpcyBjcmVhdGVkIGluIHRoZQorICAgc3BlY2lmaWVkIHNjaGVtYS4gIE90aGVy d2lzZSBpdCBpcyBjcmVhdGVkIGluIHRoZSBjdXJyZW50IHNjaGVtYS4KKyAgIFRlbXBvcmFy eSBwcm9wZXJ0eSBncmFwaHMgZXhpc3QgaW4gYSBzcGVjaWFsIHNjaGVtYSwgc28gYSBzY2hl bWEgbmFtZQorICAgY2Fubm90IGJlIGdpdmVuIHdoZW4gY3JlYXRpbmcgYSB0ZW1wb3Jhcnkg cHJvcGVydHkgZ3JhcGguICBQcm9wZXJ0eSBncmFwaHMKKyAgIHNoYXJlIGEgbmFtZXNwYWNl IHdpdGggdGFibGVzIGFuZCBvdGhlciByZWxhdGlvbiB0eXBlcywgc28gdGhlIG5hbWUgb2Yg dGhlCisgICBwcm9wZXJ0eSBncmFwaCBtdXN0IGJlIGRpc3RpbmN0IGZyb20gdGhlIG5hbWUg b2YgYW55IG90aGVyIHJlbGF0aW9uICh0YWJsZSwKKyAgIHNlcXVlbmNlLCBpbmRleCwgdmll dywgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIGZvcmVpZ24gdGFibGUpIGluIHRoZSBzYW1lCisg ICBzY2hlbWEuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIG5hbWUgKG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhlIG5l dyBwcm9wZXJ0eSBncmFwaC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJh bD5WRVJURVg8L2xpdGVyYWw+LzxsaXRlcmFsPk5PREU8L2xpdGVyYWw+PC90ZXJtPgorICAg IDx0ZXJtPjxsaXRlcmFsPkVER0U8L2xpdGVyYWw+LzxsaXRlcmFsPlJFTEFUSU9OU0hJUDwv bGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZXNlIGtleXdvcmRzIGFyZSBzeW5vbnltcywgcmVzcGVjdGl2ZWx5LgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52ZXJ0ZXhf dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiBhIHRhYmxlIHRoYXQgd2lsbCBjb250YWluIHZl cnRpY2VzIGluIHRoZSBuZXcgcHJvcGVydHkKKyAgICAgIGdyYXBoLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lZGdlX3Rh YmxlX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhlIG5hbWUgb2YgYSB0YWJsZSB0aGF0IHdpbGwgY29udGFpbiBlZGdl cyBpbiB0aGUgbmV3IHByb3BlcnR5IGdyYXBoLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBIHVuaXF1ZSBp ZGVudGlmaWVyIGZvciB0aGUgdmVydGV4IG9yIGVkZ2UgdGFibGUuICBUaGlzIGRlZmF1bHRz IHRvIHRoZQorICAgICAgbmFtZSBvZiB0aGUgdGFibGUuICBBbGlhc2VzIG11c3QgYmUgdW5p cXVlIGluIGEgcHJvcGVydHkgZ3JhcGgKKyAgICAgIGRlZmluaXRpb24gKGFjcm9zcyBhbGwg dmVydGV4IHRhYmxlIGFuZCBlZGdlIHRhYmxlIGRlZmluaXRpb25zKS4KKyAgICAgIChUaGVy ZWZvcmUsIGlmIGEgdGFibGUgaXMgdXNlZCBtb3JlIHRoYW4gb25jZSBhcyBhIHZlcnRleCBv ciBlZGdlIHRhYmxlLAorICAgICAgdGhlbiBhbiBleHBsaWNpdCBhbGlhcyBtdXN0IGJlIHNw ZWNpZmllZCBmb3IgYXQgbGVhc3Qgb25lIG9mIHRoZW0gdG8KKyAgICAgIGRpc3Rpbmd1aXNo IHRoZW0uKQorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPktFWSAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLl0gKTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIEEgc2V0IG9mIGNvbHVtbnMgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGEg cm93IGluIHRoZSB2ZXJ0ZXggb3IgZWRnZQorICAgICAgdGFibGUuICBEZWZhdWx0cyB0byB0 aGUgcHJpbWFyeSBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNvdXJjZV90YWJsZTwvcmVwbGFjZWFibGU+PC90ZXJt PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZXN0X3RhYmxl PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFRoZSB2ZXJ0ZXggdGFibGVzIHRoYXQgdGhlIGVkZ2UgdGFibGUgaXMgbGlua2VkIHRv LiAgVGhlc2UgcmVmZXIgdG8gdGhlCisgICAgICBhbGlhc2VzIG9mIGEgdGhlIHZlcnRleCB0 YWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5LRVkgKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBb LCAuLi5dICkgUkVGRVJFTkNFUyAuLi4gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICk8L2xpdGVyYWw+PC90ZXJt PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUd28gc2V0cyBvZiBjb2x1 bW5zIHRoYXQgY29ubmVjdCB0aGUgZWRnZSB0YWJsZSBhbmQgdGhlIHNvdXJjZSBvcgorICAg ICAgZGVzdGluYXRpb24gdmVydGV4IHRhYmxlLCBsaWtlIGluIGEgZm9yZWlnbi1rZXkgcmVs YXRpb25zaGlwLiAgSWYgYQorICAgICAgZm9yZWlnbi1rZXkgY29uc3RyYWludCBiZXR3ZWVu IHRoZSB0d28gdGFibGVzIGV4aXN0cywgaXQgaXMgdXNlZCBieQorICAgICAgZGVmYXVsdC4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZWxlbWVudF90YWJsZV9sYWJlbF9hbmRfcHJvcGVydGllczwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEZWZpbmVzIHRo ZSBsYWJlbHMgYW5kIHByb3BlcnRpZXMgZm9yIHRoZSBlbGVtZW50ICh2ZXJ0ZXggb3IgZWRn ZSkKKyAgICAgIHRhYmxlLiAgRWFjaCBlbGVtZW50IGhhcyBhdCBsZWFzdCBvbmUgbGFiZWwu ICBCeSBkZWZhdWx0LCB0aGUgbGFiZWwgaXMKKyAgICAgIHRoZSBzYW1lIGFzIHRoZSBlbGVt ZW50IHRhYmxlIGFsaWFzLiAgVGhpcyBjYW4gYmUgc3BlY2lmaWVkIGV4cGxpY2l0bHkKKyAg ICAgIGFzIDxsaXRlcmFsPkRFRkFVTFQgTEFCRUw8L2xpdGVyYWw+LiAgQWx0ZXJuYXRpdmVs eSwgb25lIG9yIG1vcmUgZnJlZWx5CisgICAgICBjaG9zZW4gbGFiZWwgbmFtZXMgY2FuIGJl IHNwZWNpZmllZC4gIChMYWJlbCBuYW1lcyBkbyBub3QgaGF2ZSB0byBiZQorICAgICAgdW5p cXVlIGFjcm9zcyBhIHByb3BlcnR5IGdyYXBoLiAgSXQgaXMgY2FuIGJlIHVzZWZ1bCB0byBh c3NpZ24gdGhlIHNhbWUKKyAgICAgIGxhYmVsIHRvIGRpZmZlcmVudCBlbGVtZW50cy4pICBF YWNoIGxhYmVsIGhhcyBhIGxpc3QgKHBvc3NpYmx5IGVtcHR5KSBvZgorICAgICAgcHJvcGVy dGllcy4gIEJ5IGRlZmF1bHQsIGFsbCBjb2x1bW5zIG9mIGEgdGFibGUgYXJlIGF1dG9tYXRp Y2FsbHkKKyAgICAgIGV4cG9zZWQgYXMgcHJvcGVydGllcy4gIFRoaXMgY2FuIGJlIHNwZWNp ZmllZCBleHBsaWNpdGx5IGFzCisgICAgICA8bGl0ZXJhbD5QUk9QRVJUSUVTIEFMTCBDT0xV TU5TPC9saXRlcmFsPi4gIEFsdGVybmF0aXZlbHksIGEgbGlzdCBvZgorICAgICAgZXhwcmVz c2lvbnMsIHdoaWNoIGNhbiByZWZlciB0byB0aGUgY29sdW1ucyBvZiB0aGUgdW5kZXJseWlu ZyB0YWJsZSwgY2FuCisgICAgICBiZSBzcGVjaWZpZWQgYXMgcHJvcGVydGllcy4gIElmIHRo ZSBleHByZXNzaW9ucyBhcmUgbm90IGEgcGxhaW4gY29sdW1uCisgICAgICByZWZlcmVuY2Us IHRoZW4gYW4gZXhwbGljaXQgcHJvcGVydHkgbmFtZSBtdXN0IGFsc28gYmUgc3BlY2lmaWVk LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor ICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgUHJvcGVydHkgZ3JhcGhzIGFyZSBx dWVyaWVkIHVzaW5nIHRoZSA8bGl0ZXJhbD5HUkFQSF9UQUJMRTwvbGl0ZXJhbD4gY2xhdXNl CisgICBvZiA8eHJlZiBsaW5rZW5kPSJzcWwtc2VsZWN0Ii8+LgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKwor ICA8cGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBnMQor ICAgIFZFUlRFWCBUQUJMRVMgKHYxLCB2MiwgdjMpCisgICAgRURHRSBUQUJMRVMgKGUxIFNP VVJDRSB2MSBERVNUSU5BVElPTiB2MiwKKyAgICAgICAgICAgICAgICAgZTIgU09VUkNFIHYx IERFU1RJTkFUSU9OIHYzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFURSBQUk9QRVJUWSBHUkFQSDwvY29tbWFuZD4g Y29uZm9ybXMgdG8gSVNPL0lFQyA5MDc1LTE2CisgICAoU1FML1BHUSkuCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxl PgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxp bmtlbmQ9InNxbC1hbHRlci1wcm9wZXJ0eS1ncmFwaCIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1wcm9wZXJ0eS1ncmFwaCIvPjwvbWVtYmVyPgor ICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4zMWNiNzdhMmFmMQotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF9wcm9wZXJ0eV9ncmFwaC5zZ21sCkBAIC0wLDAgKzEsMTEx IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfcHJvcGVydHlfZ3JhcGguc2dtbAor UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtZHJv cC1wcm9wZXJ0eS1ncmFwaCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcC1wcm9wZXJ0 eS1ncmFwaCI+CisgIDxwcmltYXJ5PkRST1AgUFJPUEVSVFkgR1JBUEg8L3ByaW1hcnk+Cisg PC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBQUk9Q RVJUWSBHUkFQSDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+ CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5m bz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBQUk9Q RVJUWSBHUkFQSDwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGFuIFNRTC1wcm9w ZXJ0eSBncmFwaDwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3Bz aXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFBST1BFUlRZIEdSQVBIIFsgSUYgRVhJU1RTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNp c2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgUFJPUEVSVFkgR1JBUEg8L2NvbW1hbmQ+IGRy b3BzIGFuIGV4aXN0aW5nIHByb3BlcnR5IGdyYXBoLgorICAgVG8gZXhlY3V0ZSB0aGlzIGNv bW1hbmQgeW91IG11c3QgYmUgdGhlIG93bmVyIG9mIHRoZSBwcm9wZXJ0eSBncmFwaC4KKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhl IHByb3BlcnR5IGdyYXBoIGRvZXMgbm90IGV4aXN0LiAgQSBub3RpY2UgaXMKKyAgICAgIGlz c3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgKG9wdGlvbmFsbHkg c2NoZW1hLXF1YWxpZmllZCkgb2YgdGhlIHByb3BlcnR5IGdyYXBoIHRvIHJlbW92ZS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5DQVNDQURFPC9saXRlcmFsPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQXV0b21hdGljYWxs eSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIHByb3BlcnR5IGdyYXBoLCBhbmQg aW4KKyAgICAgIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhvc2Ugb2JqZWN0 cyAoc2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJkZGwtZGVwZW5kIi8+KS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZnVzZSB0byBkcm9wIHRo ZSBwcm9wZXJ0eSBncmFwaCBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24gaXQuICBUaGlzIGlz CisgICAgICB0aGUgZGVmYXVsdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKzxw cm9ncmFtbGlzdGluZz4KK0RST1AgUFJPUEVSVFkgR1JBUEggZzE7Cis8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29t cGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIFBST1BF UlRZIEdSQVBIPC9jb21tYW5kPiBjb25mb3JtcyB0byBJU08vSUVDIDkwNzUtMTYKKyAgIChT UUwvUEdRKSwgZXhjZXB0IHRoYXQgdGhlIHN0YW5kYXJkIG9ubHkgYWxsb3dzIG9uZSBwcm9w ZXJ0eSBncmFwaCB0byBiZQorICAgZHJvcHBlZCBwZXIgY29tbWFuZCwgYW5kIGFwYXJ0IGZy b20gdGhlIDxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJhbD4KKyAgIG9wdGlvbiwgd2hpY2gg aXMgYSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4u CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2Vl IEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtcHJvcGVydHktZ3JhcGgiLz48L21lbWJl cj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLXByb3BlcnR5LWdyYXBo Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRy eT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRleCA5ZDI3YjdmY2RlNS4uMzVhM2EwMjM0ZWMgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2dyYW50LnNnbWwKQEAgLTgyLDYgKzgyLDExIEBACiAgICAgVE8gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+ IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2Vh YmxlPiBdCiAKK0dSQU5UIHsgU0VMRUNUIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBP TiBQUk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGU+Z3JhcGhfbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLl0KKyAgICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9z cGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9O IF0KKyAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJv bGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KKwogR1JBTlQgeyB7IENSRUFURSB8 IFVTQUdFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CiAgICAgT04gU0NIRU1B IDxyZXBsYWNlYWJsZT5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KICAgICBU TyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KQEAgLTExOSw3ICsx MjQsNyBAQCA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgogICAgdGhhdCBncmFudHMgcHJp dmlsZWdlcyBvbiBhIGRhdGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVtbiwgdmlldywKICAg IGZvcmVpZ24gdGFibGUsIHNlcXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1kYXRhIHdyYXBw ZXIsIGZvcmVpZ24gc2VydmVyLAogICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJvY2VkdXJh bCBsYW5ndWFnZSwgbGFyZ2Ugb2JqZWN0LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0ZXIs IHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdCBncmFudHMKKyAg IHBhcmFtZXRlciwgcHJvcGVydHkgZ3JhcGgsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlw ZSksIGFuZCBvbmUgdGhhdCBncmFudHMKICAgIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhl c2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQKICAgIHRoZXkgYXJl IGRpZmZlcmVudCBlbm91Z2ggdG8gYmUgZGVzY3JpYmVkIHNlcGFyYXRlbHkuCiAgIDwvcGFy YT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCBjYzdkNzk3MTU5Yi4uYzYxM2YxNmI0 MzcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTEyMTgsNyArMTIxOCw3IEBAIDx0 aXRsZT5NZXRhLUNvbW1hbmRzPC90aXRsZT4KIAogICAgICAgICA8bGlzdGl0ZW0+CiAgICAg ICAgIDxwYXJhPgotICAgICAgICBGb3IgZWFjaCByZWxhdGlvbiAodGFibGUsIHZpZXcsIG1h dGVyaWFsaXplZCB2aWV3LCBpbmRleCwgc2VxdWVuY2UsCisgICAgICAgIEZvciBlYWNoIHJl bGF0aW9uICh0YWJsZSwgdmlldywgbWF0ZXJpYWxpemVkIHZpZXcsIGluZGV4LCBwcm9wZXJ0 eSBncmFwaCwgc2VxdWVuY2UsCiAgICAgICAgIG9yIGZvcmVpZ24gdGFibGUpCiAgICAgICAg IG9yIGNvbXBvc2l0ZSB0eXBlIG1hdGNoaW5nIHRoZQogICAgICAgICA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+LCBzaG93IGFsbApAQCAt MTI1OCw5ICsxMjU4LDkgQEAgPHRpdGxlPk1ldGEtQ29tbWFuZHM8L3RpdGxlPgogICAgICAg ICA8cGFyYT4KICAgICAgICAgSWYgPGNvbW1hbmQ+XGQ8L2NvbW1hbmQ+IGlzIHVzZWQgd2l0 aG91dCBhCiAgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJu PC9yZXBsYWNlYWJsZT4gYXJndW1lbnQsIGl0IGlzCi0gICAgICAgIGVxdWl2YWxlbnQgdG8g PGNvbW1hbmQ+XGR0dm1zRTwvY29tbWFuZD4gd2hpY2ggd2lsbCBzaG93IGEgbGlzdCBvZgot ICAgICAgICBhbGwgdmlzaWJsZSB0YWJsZXMsIHZpZXdzLCBtYXRlcmlhbGl6ZWQgdmlld3Ms IHNlcXVlbmNlcyBhbmQKLSAgICAgICAgZm9yZWlnbiB0YWJsZXMuCisgICAgICAgIGVxdWl2 YWxlbnQgdG8gPGNvbW1hbmQ+XGR0dm1zRUc8L2NvbW1hbmQ+IHdoaWNoIHdpbGwgc2hvdyBh IGxpc3Qgb2YKKyAgICAgICAgYWxsIHZpc2libGUgdGFibGVzLCB2aWV3cywgbWF0ZXJpYWxp emVkIHZpZXdzLCBzZXF1ZW5jZXMsCisgICAgICAgIGZvcmVpZ24gdGFibGVzLCBhbmQgcHJv cGVydHkgZ3JhcGhzLgogICAgICAgICBUaGlzIGlzIHB1cmVseSBhIGNvbnZlbmllbmNlIG1l YXN1cmUuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9ub3RlPgpAQCAtMTUyOCw2ICsx NTI4LDcgQEAgPHRpdGxlPk1ldGEtQ29tbWFuZHM8L3RpdGxlPgogCiAgICAgICA8dmFybGlz dGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQtZGUiPgogICAgICAgICA8dGVybT48 bGl0ZXJhbD5cZEVbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xp bms+IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cZEdbUytd IFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+ PC90ZXJtPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZGlbUytdIFsgPGxpbmsgbGlua2Vu ZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w YXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAg ICA8dGVybT48bGl0ZXJhbD5cZG1bUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0 dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNl YWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8dGVybT48bGl0ZXJh bD5cZHNbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08 L2xpdGVyYWw+PC90ZXJtPgpAQCAtMTUzNiwxMCArMTUzNywxMCBAQCA8dGl0bGU+TWV0YS1D b21tYW5kczwvdGl0bGU+CiAKICAgICAgICAgPGxpc3RpdGVtPgogICAgICAgICA8cGFyYT4K LSAgICAgICAgSW4gdGhpcyBncm91cCBvZiBjb21tYW5kcywgdGhlIGxldHRlcnMgPGxpdGVy YWw+RTwvbGl0ZXJhbD4sCisgICAgICAgIEluIHRoaXMgZ3JvdXAgb2YgY29tbWFuZHMsIHRo ZSBsZXR0ZXJzIDxsaXRlcmFsPkU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5HPC9saXRlcmFsPiwK ICAgICAgICAgPGxpdGVyYWw+aTwvbGl0ZXJhbD4sIDxsaXRlcmFsPm08L2xpdGVyYWw+LCA8 bGl0ZXJhbD5zPC9saXRlcmFsPiwKICAgICAgICAgPGxpdGVyYWw+dDwvbGl0ZXJhbD4sIGFu ZCA8bGl0ZXJhbD52PC9saXRlcmFsPgotICAgICAgICBzdGFuZCBmb3IgZm9yZWlnbiB0YWJs ZSwgaW5kZXgsIG1hdGVyaWFsaXplZCB2aWV3LAorICAgICAgICBzdGFuZCBmb3IgZm9yZWln biB0YWJsZSwgaW5kZXgsIHByb3BlcnR5IGdyYXBoLCBtYXRlcmlhbGl6ZWQgdmlldywKICAg ICAgICAgc2VxdWVuY2UsIHRhYmxlLCBhbmQgdmlldywKICAgICAgICAgcmVzcGVjdGl2ZWx5 LgogICAgICAgICBZb3UgY2FuIHNwZWNpZnkgYW55IG9yIGFsbCBvZgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tl LnNnbWwKaW5kZXggMmRiNjZiYmYzNzguLjhmNDNhMWJiZDcxIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tl LnNnbWwKQEAgLTEwNCw2ICsxMDQsMTMgQEAKICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+ IF0KICAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCiAKK1JFVk9LRSBbIEdSQU5UIE9QVElP TiBGT1IgXQorICAgIHsgU0VMRUNUIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBQ Uk9QRVJUWSBHUkFQSCA8cmVwbGFjZWFibGU+Z3JhcGhfbmFtZTwvcmVwbGFjZWFibGU+IFss IC4uLl0KKyAgICBGUk9NIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3Nw ZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgWyBHUkFOVEVEIEJZIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxh Y2VhYmxlPiBdCisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCiBSRVZPS0UgWyBHUkFO VCBPUFRJT04gRk9SIF0KICAgICB7IHsgQ1JFQVRFIHwgVVNBR0UgfSBbLCAuLi5dIHwgQUxM IFsgUFJJVklMRUdFUyBdIH0KICAgICBPTiBTQ0hFTUEgPHJlcGxhY2VhYmxlPnNjaGVtYV9u YW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9zZWN1cml0eV9sYWJlbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9zZWN1cml0eV9sYWJl bC5zZ21sCmluZGV4IDVmOTZiN2UxZGVkLi5mOWUzNWJhOWZjMSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9zZWN1cml0eV9sYWJlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvc2VjdXJpdHlfbGFiZWwuc2dtbApAQCAtMzUsNiArMzUsNyBAQAogICBNQVRFUklBTEla RUQgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3Jl cGxhY2VhYmxlPiB8CiAgIFsgUFJPQ0VEVVJBTCBdIExBTkdVQUdFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgUFJPQ0VE VVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcm9jZWR1cmVfbmFtZTwvcmVw bGFjZWFibGU+IFsgKCBbIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ21v ZGU8L3JlcGxhY2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFy Z25hbWU8L3JlcGxhY2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5h cmd0eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CisgIFBST1BFUlRZIEdSQVBI IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFi bGU+CiAgIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmpl Y3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgUk9MRSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFJPVVRJTkUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvdXRpbmVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KCBbIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ21vZGU8L3JlcGxhY2Vh YmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ25hbWU8L3JlcGxh Y2VhYmxlPiBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hcmd0eXBlPC9yZXBs YWNlYWJsZT4gWywgLi4uXSBdICkgXSB8CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L3NlbGVjdC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbAppbmRleCA5OTE3 ZGY3ODM5Yi4uMmFiM2VlY2I4MGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvc2Vs ZWN0LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dtbApAQCAtNTksNiAr NTksNyBAQAogICAgIFsgTEFURVJBTCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5mdW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5hcmd1bWVudDwvcmVwbGFjZWFibGU+IFssIC4uLl0gXSApIEFTICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9kZWZpbml0aW9uPC9yZXBsYWNl YWJsZT4gWywgLi4uXSApCiAgICAgWyBMQVRFUkFMIF0gUk9XUyBGUk9NKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+ICggWyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJndW1lbnQ8L3JlcGxhY2VhYmxlPiBb LCAuLi5dIF0gKSBbIEFTICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0gWywgLi4uXSApCiAgICAg ICAgICAgICAgICAgWyBXSVRIIE9SRElOQUxJVFkgXSBbIFsgQVMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9hbGlhczwvcmVwbGFjZWFibGU+IFssIC4uLl0g KSBdIF0KKyAgICBHUkFQSF9UQUJMRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5ncmFwaF9uYW1lPC9yZXBsYWNlYWJsZT4gTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmdyYXBoX3BhdHRlcm48L3JlcGxhY2VhYmxlPiBDT0xVTU5TICggeyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsg QVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBd IH0gWywgLi4uXSApICkgWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFsaWFzPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fYWxpYXM8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSBdCiAgICAgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5qb2luX3R5cGU8L3JlcGxhY2VhYmxlPiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4geyBP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+am9pbl9jb25kaXRpb248L3JlcGxh Y2VhYmxlPiB8IFVTSU5HICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmpvaW5f Y29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIFsgQVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmpvaW5fdXNpbmdfYWxpYXM8L3JlcGxhY2VhYmxlPiBdIH0KICAgICA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT4g TkFUVVJBTCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+am9pbl90eXBlPC9yZXBs YWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVw bGFjZWFibGU+CiAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRl bTwvcmVwbGFjZWFibGU+IENST1NTIEpPSU4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmZyb21faXRlbTwvcmVwbGFjZWFibGU+CkBAIC01ODcsNiArNTg4LDQ4IEBAIDx0aXRs ZT48bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiBDbGF1c2U8L3RpdGxlPgogICAgICAgPC9saXN0 aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgIDx0ZXJtPjxsaXRlcmFsPkdSQVBIX1RBQkxFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmdyYXBoX25hbWU8L3JlcGxhY2VhYmxlPiBNQVRDSCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Z3JhcGhfcGF0dGVybjwvcmVwbGFjZWFibGU+IENPTFVNTlMg KCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNl YWJsZT4gWyBBUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IF0gfSBbLCAuLi5dICkgKTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0 ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgY2xhdXNlIHByb2R1Y2VzIG91dHB1 dCBmcm9tIG1hdGNoaW5nIHRoZSBzcGVjaWZ5aW5nIGdyYXBoIHBhdHRlcm4KKyAgICAgICAg YWdhaW5zdCBhIHByb3BlcnR5IGdyYXBoLiAgU2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1wcm9w ZXJ0eS1ncmFwaHMiLz4KKyAgICAgICAgYW5kIDx4cmVmIGxpbmtlbmQ9InF1ZXJpZXMtZ3Jh cGgiLz4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgPC9wYXJhPgorCisgICAgICAg PHBhcmE+CisgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ncmFwaF9u YW1lPC9yZXBsYWNlYWJsZT4gaXMgdGhlIG5hbWUKKyAgICAgICAgKG9wdGlvbmFsbHkgc2No ZW1hLXF1YWxpZmllZCkgb2YgYW4gZXhpc3RpbmcgcHJvcGVydHkgZ3JhcGggKGRlZmluZWQK KyAgICAgICAgd2l0aCA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLXByb3BlcnR5LWdyYXBo Ii8+KS4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmdyYXBoX3BhdHRlcm48L3JlcGxhY2VhYmxlPiBp cyBhIGdyYXBoCisgICAgICAgIHBhdHRlcm4gaW4gYSBzcGVjaWFsIGdyYXBoIHBhdHRlcm4g c3VibGFuZ3VhZ2UuICBTZWUgPHhyZWYKKyAgICAgICAgbGlua2VuZD0icXVlcmllcy1ncmFw aC1wYXR0ZXJucyIvPi4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAg ICAgVGhlIDxsaXRlcmFsPkNPTFVNTlM8L2xpdGVyYWw+IGNsYXVzZSBkZWZpbmVzIHRoZSBv dXRwdXQgY29sdW1ucyBvZgorICAgICAgICB0aGUgPGxpdGVyYWw+R1JBUEhfVEFCTEU8L2xp dGVyYWw+IGNsYXVzZS4gIDxyZXBsYWNlYWJsZQorICAgICAgICBjbGFzcz0icGFyYW1ldGVy Ij5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gaXMgYSBzY2FsYXIgZXhwcmVzc2lvbgorICAg ICAgICB1c2luZyB0aGUgZ3JhcGggcGF0dGVybiB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUg PHJlcGxhY2VhYmxlCisgICAgICAgIGNsYXNzPSJwYXJhbWV0ZXIiPmdyYXBoX3BhdHRlcm48 L3JlcGxhY2VhYmxlPi4gIFRoZSBuYW1lIG9mIHRoZSBvdXRwdXQKKyAgICAgICAgY29sdW1u cyBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZSA8bGl0ZXJhbD5BUzwvbGl0ZXJhbD4gY2xhdXNl cy4gIElmIHRoZQorICAgICAgICBleHByZXNzaW9ucyBhcmUgc2ltcGxlIHByb3BlcnR5IHJl ZmVyZW5jZXMsIHRoZSBwcm9wZXJ0eSBuYW1lcyBhcmUKKyAgICAgICAgdXNlZCBhcyB0aGUg b3V0cHV0IG5hbWVzLCBvdGhlcndpc2UgYW4gZXhwbGljaXQgbmFtZSBtdXN0IGJlCisgICAg ICAgIHNwZWNpZmllZC4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAg ICAgTGlrZSBmb3Igb3RoZXIgPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4gY2xhdXNlIGl0ZW1z LCBhIHRhYmxlIGFsaWFzCisgICAgICAgIG5hbWUgYW5kIGNvbHVtbiBhbGlhcyBuYW1lcyBt YXkgZm9sbG93IHRoZSA8bGl0ZXJhbD5HUkFQSF9UQUJMRQorICAgICAgICAoLi4uKTwvbGl0 ZXJhbD4gY2xhdXNlLiAgKEEgY29sdW1uIGFsaWFzIGxpc3Qgd291bGQgYmUgcmVkdW5kYW50 IHdpdGgKKyAgICAgICAgdGhlIDxsaXRlcmFsPkNPTFVNTlM8L2xpdGVyYWw+IGNsYXVzZS4p CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50 cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5qb2luX3R5cGU8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICAg IDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBhYTk0ZjZhZGY2YS4uZDNmYjc4 MzYwODggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTU1LDYgKzU1LDcgQEAgPHRpdGxlPlNR TCBDb21tYW5kczwvdGl0bGU+CiAgICAmYWx0ZXJPcGVyYXRvckZhbWlseTsKICAgICZhbHRl clBvbGljeTsKICAgICZhbHRlclByb2NlZHVyZTsKKyAgICZhbHRlclByb3BlcnR5R3JhcGg7 CiAgICAmYWx0ZXJQdWJsaWNhdGlvbjsKICAgICZhbHRlclJvbGU7CiAgICAmYWx0ZXJSb3V0 aW5lOwpAQCAtMTA3LDYgKzEwOCw3IEBAIDx0aXRsZT5TUUwgQ29tbWFuZHM8L3RpdGxlPgog ICAgJmNyZWF0ZU9wZXJhdG9yRmFtaWx5OwogICAgJmNyZWF0ZVBvbGljeTsKICAgICZjcmVh dGVQcm9jZWR1cmU7CisgICAmY3JlYXRlUHJvcGVydHlHcmFwaDsKICAgICZjcmVhdGVQdWJs aWNhdGlvbjsKICAgICZjcmVhdGVSb2xlOwogICAgJmNyZWF0ZVJ1bGU7CkBAIC0xNTUsNiAr MTU3LDcgQEAgPHRpdGxlPlNRTCBDb21tYW5kczwvdGl0bGU+CiAgICAmZHJvcE93bmVkOwog ICAgJmRyb3BQb2xpY3k7CiAgICAmZHJvcFByb2NlZHVyZTsKKyAgICZkcm9wUHJvcGVydHlH cmFwaDsKICAgICZkcm9wUHVibGljYXRpb247CiAgICAmZHJvcFJvbGU7CiAgICAmZHJvcFJv dXRpbmU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCAxOTZlY2FmYzkwOS4uZTdmYzk3OWZj MjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtMTE4LDcgKzExOCwxMCBAQCBDQVRBTE9H X0hFQURFUlMgOj0gXAogCXBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwKIAlwZ19wdWJs aWNhdGlvbl9yZWwuaCBcCiAJcGdfc3Vic2NyaXB0aW9uLmggXAotCXBnX3N1YnNjcmlwdGlv bl9yZWwuaAorCXBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfcHJvcGdyYXBoX2VsZW1l bnQuaCBcCisJcGdfcHJvcGdyYXBoX2xhYmVsLmggXAorCXBnX3Byb3BncmFwaF9wcm9wZXJ0 eS5oCiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2Qu aCkgc2NoZW1hcGcuaCBzeXNjYWNoZV9pZHMuaCBzeXNjYWNoZV9pbmZvLmggc3lzdGVtX2Zr X2luZm8uaAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCAxZTQ0YTcxZjYxYy4uYjkzMjhm YmUxMzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMzA3LDYgKzMwNyw5IEBAIHJlc3Ry aWN0X2FuZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRp b25zLCBib29sIGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJ CXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7 CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJ R0hUU19QUk9QR1JBUEg7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwgb2JqdHlwZSk7CiAJCQkvKiBub3Qg cmVhY2hlZCwgYnV0IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KQEAgLTU1MSw2ICs1NTQsMTAg QEAgRXhlY3V0ZUdyYW50U3RtdChHcmFudFN0bXQgKnN0bXQpCiAJCQlhbGxfcHJpdmlsZWdl cyA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQllcnJvcm1zZyA9IGdldHRl eHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcGFyYW1ldGVyIik7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJYWxsX3ByaXZpbGVnZXMg PSBBQ0xfQUxMX1JJR0hUU19QUk9QR1JBUEg7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9v cCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3IgcHJvcGVydHkgZ3JhcGgiKTsKKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFu dFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBzdG10LT5vYmp0eXBlKTsKQEAgLTYy MSw2ICs2MjgsNyBAQCBFeGVjR3JhbnRTdG10X29pZHMoSW50ZXJuYWxHcmFudCAqaXN0bXQp CiAJewogCQljYXNlIE9CSkVDVF9UQUJMRToKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CisJ CWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJCUV4ZWNHcmFudF9SZWxhdGlvbihpc3RtdCk7 CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CkBAIC02OTMsNiArNzAxLDcg QEAgb2JqZWN0TmFtZXNUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmpuYW1l cywgYm9vbCBpc19ncmFudCkKIAl7CiAJCWNhc2UgT0JKRUNUX1RBQkxFOgogCQljYXNlIE9C SkVDVF9TRVFVRU5DRToKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQkJZm9yZWFjaChj ZWxsLCBvYmpuYW1lcykKIAkJCXsKIAkJCQlSYW5nZVZhciAgICpyZWx2YXIgPSAoUmFuZ2VW YXIgKikgbGZpcnN0KGNlbGwpOwpAQCAtODkzLDYgKzkwMiwxMCBAQCBvYmplY3RzSW5TY2hl bWFUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpuc3BuYW1lcykKIAkJCQlvYmpz ID0gZ2V0UmVsYXRpb25zSW5OYW1lc3BhY2UobmFtZXNwYWNlSWQsIFJFTEtJTkRfU0VRVUVO Q0UpOwogCQkJCW9iamVjdHMgPSBsaXN0X2NvbmNhdChvYmplY3RzLCBvYmpzKTsKIAkJCQli cmVhazsKKwkJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKKwkJCQlvYmpzID0gZ2V0UmVsYXRp b25zSW5OYW1lc3BhY2UobmFtZXNwYWNlSWQsIFJFTEtJTkRfUFJPUEdSQVBIKTsKKwkJCQlv YmplY3RzID0gbGlzdF9jb25jYXQob2JqZWN0cywgb2Jqcyk7CisJCQkJYnJlYWs7CiAJCQlj YXNlIE9CSkVDVF9GVU5DVElPTjoKIAkJCWNhc2UgT0JKRUNUX1BST0NFRFVSRToKIAkJCWNh c2UgT0JKRUNUX1JPVVRJTkU6CkBAIC0xMDk0LDYgKzExMDcsMTAgQEAgRXhlY0FsdGVyRGVm YXVsdFByaXZpbGVnZXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJEZWZhdWx0UHJp dmlsZWdlc1N0bXQgKnMKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfU0NI RU1BOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIHNjaGVtYSIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQ SDoKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfUFJPUEdSQVBIOworCQkJ ZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9y IHByb3BlcnR5IGdyYXBoIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkg YWN0aW9uLT5vYmp0eXBlKTsKQEAgLTI3NzgsNiArMjc5NSw5IEBAIGFjbGNoZWNrX2Vycm9y KEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpF Q1RfUFJPQ0VEVVJFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRl bmllZCBmb3IgcHJvY2VkdXJlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpF Q1RfUFJPUEdSQVBIOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRl bmllZCBmb3IgcHJvcGVydHkgZ3JhcGggJXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCQljYXNl IE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlz c2lvbiBkZW5pZWQgZm9yIHB1YmxpY2F0aW9uICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI5 MDQsNiArMjkyNCw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVj dFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfUFJPQ0VEVVJFOgogCQkJCQkJbXNn ID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHByb2NlZHVyZSAlcyIpOwogCQkJ CQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKKwkJCQkJCW1zZyA9IGdl dHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBwcm9wZXJ0eSBncmFwaCAlcyIpOworCQkJ CQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQkJCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHB1YmxpY2F0aW9uICVzIik7CiAJCQkJ CQlicmVhazsKQEAgLTMwNDAsNiArMzA2Myw3IEBAIHBnX2FjbG1hc2soT2JqZWN0VHlwZSBv Ymp0eXBlLCBPaWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0sIE9pZCByb2xlaWQs CiAJCQkJcGdfYXR0cmlidXRlX2FjbG1hc2sob2JqZWN0X29pZCwgYXR0bnVtLCByb2xlaWQs IG1hc2ssIGhvdyk7CiAJCWNhc2UgT0JKRUNUX1RBQkxFOgogCQljYXNlIE9CSkVDVF9TRVFV RU5DRToKKwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQkJcmV0dXJuIHBnX2NsYXNzX2Fj bG1hc2sob2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOwogCQljYXNlIE9CSkVDVF9E QVRBQkFTRToKIAkJCXJldHVybiBvYmplY3RfYWNsbWFzayhEYXRhYmFzZVJlbGF0aW9uSWQs IG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRl bmN5LmMKaW5kZXggZTc0MmM3OGVhMzUuLjczNjQxMGFmNzc2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYwpAQCAtNTAsNiArNTAsOSBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf cGFyYW1ldGVyX2FjbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3Jh cGhfZWxlbWVudC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2xhYmVsLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfcHJvcGVydHkuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJs aWNhdGlvbl9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9u X3JlbC5oIgpAQCAtNzAsNiArNzMsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3Ry aWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9leHRlbnNpb24uaCIKICNpbmNsdWRlICJj b21tYW5kcy9wb2xpY3kuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgpAQCAt MTg0LDYgKzE4OCw5IEBAIHN0YXRpYyBjb25zdCBPaWQgb2JqZWN0X2NsYXNzZXNbXSA9IHsK IAlFdmVudFRyaWdnZXJSZWxhdGlvbklkLAkJLyogT0NMQVNTX0VWRU5UX1RSSUdHRVIgKi8K IAlQYXJhbWV0ZXJBY2xSZWxhdGlvbklkLAkJLyogT0NMQVNTX1BBUkFNRVRFUl9BQ0wgKi8K IAlQb2xpY3lSZWxhdGlvbklkLAkJCS8qIE9DTEFTU19QT0xJQ1kgKi8KKwlQcm9wZ3JhcGhF bGVtZW50UmVsYXRpb25JZCwgLyogT0NMQVNTX1BST1BHUkFQSF9FTEVNRU5UICovCisJUHJv cGdyYXBoTGFiZWxSZWxhdGlvbklkLAkvKiBPQ0xBU1NfUFJPUEdSQVBIX0xBQkVMICovCisJ UHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkLAkvKiBPQ0xBU1NfUFJPUEdSQVBIX1BST1BF UlRZICovCiAJUHVibGljYXRpb25OYW1lc3BhY2VSZWxhdGlvbklkLCAvKiBPQ0xBU1NfUFVC TElDQVRJT05fTkFNRVNQQUNFICovCiAJUHVibGljYXRpb25SZWxhdGlvbklkLAkJLyogT0NM QVNTX1BVQkxJQ0FUSU9OICovCiAJUHVibGljYXRpb25SZWxSZWxhdGlvbklkLAkvKiBPQ0xB U1NfUFVCTElDQVRJT05fUkVMICovCkBAIC0xNTAwLDYgKzE1MDcsOSBAQCBkb0RlbGV0aW9u KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdzKQogCQljYXNlIE9DTEFT U19BTToKIAkJY2FzZSBPQ0xBU1NfQU1PUDoKIAkJY2FzZSBPQ0xBU1NfQU1QUk9DOgorCQlj YXNlIE9DTEFTU19QUk9QR1JBUEhfRUxFTUVOVDoKKwkJY2FzZSBPQ0xBU1NfUFJPUEdSQVBI X0xBQkVMOgorCQljYXNlIE9DTEFTU19QUk9QR1JBUEhfUFJPUEVSVFk6CiAJCWNhc2UgT0NM QVNTX1NDSEVNQToKIAkJY2FzZSBPQ0xBU1NfVFNQQVJTRVI6CiAJCWNhc2UgT0NMQVNTX1RT RElDVDoKQEAgLTIyMTIsNiArMjIyMiw3IEBAIGZpbmRfZXhwcl9yZWZlcmVuY2VzX3dhbGtl cihOb2RlICpub2RlLAogCQkJc3dpdGNoIChydGUtPnJ0ZWtpbmQpCiAJCQl7CiAJCQkJY2Fz ZSBSVEVfUkVMQVRJT046CisJCQkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CiAJCQkJCWFkZF9v YmplY3RfYWRkcmVzcyhPQ0xBU1NfQ0xBU1MsIHJ0ZS0+cmVsaWQsIDAsCiAJCQkJCQkJCQkg ICBjb250ZXh0LT5hZGRycyk7CiAJCQkJCWJyZWFrOwpAQCAtMjk1Miw2ICsyOTYzLDE1IEBA IGdldE9iamVjdENsYXNzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCkKIAkJY2FzZSBQ b2xpY3lSZWxhdGlvbklkOgogCQkJcmV0dXJuIE9DTEFTU19QT0xJQ1k7CiAKKwkJY2FzZSBQ cm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZDoKKwkJCXJldHVybiBPQ0xBU1NfUFJPUEdSQVBI X0VMRU1FTlQ7CisKKwkJY2FzZSBQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQ6CisJCQlyZXR1 cm4gT0NMQVNTX1BST1BHUkFQSF9MQUJFTDsKKworCQljYXNlIFByb3BncmFwaFByb3BlcnR5 UmVsYXRpb25JZDoKKwkJCXJldHVybiBPQ0xBU1NfUFJPUEdSQVBIX1BST1BFUlRZOworCiAJ CWNhc2UgUHVibGljYXRpb25OYW1lc3BhY2VSZWxhdGlvbklkOgogCQkJcmV0dXJuIE9DTEFT U19QVUJMSUNBVElPTl9OQU1FU1BBQ0U7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5m b3JtYXRpb25fc2NoZW1hLnNxbAppbmRleCBjNDAyYWU3Mjc0MS4uYWFiMjhmZDcwOGMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbAor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKQEAgLTMw MDksMyArMzAwOSwzNjYgQEAgQ1JFQVRFIFZJRVcgdXNlcl9tYXBwaW5ncyBBUwogICAgIEZS T00gX3BnX3VzZXJfbWFwcGluZ3M7CiAKIEdSQU5UIFNFTEVDVCBPTiB1c2VyX21hcHBpbmdz IFRPIFBVQkxJQzsKKworCistLSBTUUwvUEdRIHZpZXdzOyB0aGVzZSB1c2Ugc2VjdGlvbiBu dW1iZXJzIGZyb20gcGFydCAxNiBvZiB0aGUgc3RhbmRhcmQuCisKKy8qCisgKiAxNS4yCisg KiBQR19ERUZJTkVEX0xBQkVMX1NFVFMgdmlldworICovCisKKy0tIFRPRE8KKworCisvKgor ICogMTUuMworICogUEdfREVGSU5FRF9MQUJFTF9TRVRfTEFCRUxTIHZpZXcKKyAqLworCist LSBUT0RPCisKKworLyoKKyAqIDE1LjQKKyAqIFBHX0VER0VfREVGSU5FRF9MQUJFTF9TRVRT IHZpZXcKKyAqLworCistLSBUT0RPCisKKworLyoKKyAqIDE1LjUKKyAqIFBHX0VER0VfVEFC TEVfQ09NUE9ORU5UUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcGdfZWRnZV90YWJsZV9j b21wb25lbnRzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNx bF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAgICAgICAgICBD QVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9z Y2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikg QVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChlZy5wZ2VhbGlhcyBB UyBzcWxfaWRlbnRpZmllcikgQVMgZWRnZV90YWJsZV9hbGlhcywKKyAgICAgICAgICAgQ0FT VCh2LnBnZWFsaWFzIEFTIHNxbF9pZGVudGlmaWVyKSBBUyB2ZXJ0ZXhfdGFibGVfYWxpYXMs CisgICAgICAgICAgIENBU1QoQ0FTRSBlZy5lbmQgV0hFTiAnc3JjJyBUSEVOICdTT1VSQ0Un IFdIRU4gJ2Rlc3QnIFRIRU4gJ0RFU1RJTkFUSU9OJyBFTkQgQVMgY2hhcmFjdGVyX2RhdGEp IEFTIGVkZ2VfZW5kLAorICAgICAgICAgICBDQVNUKGFlLmF0dG5hbWUgQVMgc3FsX2lkZW50 aWZpZXIpIEFTIGVkZ2VfdGFibGVfY29sdW1uX25hbWUsCisgICAgICAgICAgIENBU1QoYXYu YXR0bmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdmVydGV4X3RhYmxlX2NvbHVtbl9uYW1l LAorICAgICAgICAgICBDQVNUKChlZy5lZ2tleSkubiBBUyBjYXJkaW5hbF9udW1iZXIpIEFT IG9yZGluYWxfcG9zaXRpb24KKyAgICBGUk9NIHBnX25hbWVzcGFjZSBucGcKKyAgICAgICAg IEpPSU4KKyAgICAgICAgIChTRUxFQ1QgKiBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbGtpbmQg PSAnZycpIEFTIHBnCisgICAgICAgICAgIE9OIG5wZy5vaWQgPSBwZy5yZWxuYW1lc3BhY2UK KyAgICAgICAgIEpPSU4KKyAgICAgICAgIChTRUxFQ1QgcGdlcGdpZCwgcGdlYWxpYXMsIHBn ZXJlbGlkLCAnc3JjJyBBUyBlbmQsIHBnZXNyY3ZlcnRleGlkIEFTIHZlcnRleGlkLCBfcGdf ZXhwYW5kYXJyYXkocGdlc3Jja2V5KSBBUyBlZ2tleSwgX3BnX2V4cGFuZGFycmF5KHBnZXNy Y3JlZikgQVMgZWdyZWYgRlJPTSBwZ19wcm9wZ3JhcGhfZWxlbWVudCBXSEVSRSBwZ2VraW5k ID0gJ2UnCisgICAgICAgICAgVU5JT04gQUxMCisgICAgICAgICAgU0VMRUNUIHBnZXBnaWQs IHBnZWFsaWFzLCBwZ2VyZWxpZCwgJ2Rlc3QnIEFTIGVuZCwgcGdlZGVzdHZlcnRleGlkIEFT IHZlcnRleGlkLCBfcGdfZXhwYW5kYXJyYXkocGdlZGVzdGtleSkgQVMgZWdrZXksIF9wZ19l eHBhbmRhcnJheShwZ2VkZXN0cmVmKSBBUyBlZ3JlZiBGUk9NIHBnX3Byb3BncmFwaF9lbGVt ZW50IFdIRVJFIHBnZWtpbmQgPSAnZScKKyAgICAgICAgICkgQVMgZWcKKyAgICAgICAgICAg T04gcGcub2lkID0gZWcucGdlcGdpZAorICAgICAgICAgSk9JTgorICAgICAgICAgKFNFTEVD VCAqIEZST00gcGdfcHJvcGdyYXBoX2VsZW1lbnQgV0hFUkUgcGdla2luZCA9ICd2JykgQVMg dgorICAgICAgICAgICBPTiBlZy52ZXJ0ZXhpZCA9IHYub2lkCisgICAgICAgICBKT0lOCisg ICAgICAgICAoU0VMRUNUICogRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgTk9UIGF0dGlzZHJv cHBlZCkgQVMgYWUKKyAgICAgICAgICAgT04gZWcucGdlcmVsaWQgPSBhZS5hdHRyZWxpZCBB TkQgKGVnLmVna2V5KS54ID0gYWUuYXR0bnVtCisgICAgICAgICBKT0lOCisgICAgICAgICAo U0VMRUNUICogRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgTk9UIGF0dGlzZHJvcHBlZCkgQVMg YXYKKyAgICAgICAgICAgT04gdi5wZ2VyZWxpZCA9IGF2LmF0dHJlbGlkIEFORCAoZWcuZWdy ZWYpLnggPSBhdi5hdHRudW0KKyAgICBXSEVSRSBOT1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hl bWEobnBnLm9pZCkKKyAgICAgICAgICBBTkQgKHBnX2hhc19yb2xlKHBnLnJlbG93bmVyLCAn VVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFzX3RhYmxlX3ByaXZpbGVnZShwZy5vaWQs ICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19lZGdlX3RhYmxlX2NvbXBvbmVu dHMgVE8gUFVCTElDOworCisKKy8qCisgKiAxNS42CisgKiBQR19FREdFX1RSSVBMRVRTIHZp ZXcKKyAqLworCistLSBUT0RPCisKKworLyoKKyAqIDE1LjcKKyAqIFBHX0VMRU1FTlRfVEFC TEVfS0VZX0NPTFVNTlMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX2VsZW1lbnRfdGFi bGVfa2V5X2NvbHVtbnMgQVMKKyAgICBTRUxFQ1QgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkg QVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX2NhdGFsb2csCisgICAgICAg ICAgIENBU1QobnBnLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dy YXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChwZy5yZWxuYW1lIEFTIHNxbF9pZGVudGlm aWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNUKHBnZWFsaWFz IEFTIHNxbF9pZGVudGlmaWVyKSBBUyBlbGVtZW50X3RhYmxlX2FsaWFzLAorICAgICAgICAg ICBDQVNUKGEuYXR0bmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29sdW1uX25hbWUsCisg ICAgICAgICAgIENBU1QoKGVsLmVrZXkpLm4gQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBvcmRp bmFsX3Bvc2l0aW9uCisgICAgRlJPTSBwZ19uYW1lc3BhY2UgbnBnCisgICAgICAgICBKT0lO CisgICAgICAgICAoU0VMRUNUICogRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxraW5kID0gJ2cn KSBBUyBwZworICAgICAgICAgICBPTiBucGcub2lkID0gcGcucmVsbmFtZXNwYWNlCisgICAg ICAgICBKT0lOCisgICAgICAgICAoU0VMRUNUIHBnZXBnaWQsIHBnZWFsaWFzLCBwZ2VyZWxp ZCwgX3BnX2V4cGFuZGFycmF5KHBnZWtleSkgQVMgZWtleSBGUk9NIHBnX3Byb3BncmFwaF9l bGVtZW50KSBBUyBlbAorICAgICAgICAgICBPTiBwZy5vaWQgPSBlbC5wZ2VwZ2lkCisgICAg ICAgICBKT0lOCisgICAgICAgICAoU0VMRUNUICogRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUg Tk9UIGF0dGlzZHJvcHBlZCkgQVMgYQorICAgICAgICAgICBPTiBlbC5wZ2VyZWxpZCA9IGEu YXR0cmVsaWQgQU5EIChlbC5la2V5KS54ID0gYS5hdHRudW0KKyAgICBXSEVSRSBOT1QgcGdf aXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkKKyAgICAgICAgICBBTkQgKHBnX2hhc19y b2xlKHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFzX3RhYmxl X3ByaXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19l bGVtZW50X3RhYmxlX2tleV9jb2x1bW5zIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuOAor ICogUEdfRUxFTUVOVF9UQUJMRV9MQUJFTFMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBn X2VsZW1lbnRfdGFibGVfbGFiZWxzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9kYXRh YmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAor ICAgICAgICAgICBDQVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9w ZXJ0eV9ncmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxf aWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChl LnBnZWFsaWFzIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBlbGVtZW50X3RhYmxlX2FsaWFzLAor ICAgICAgICAgICBDQVNUKGwucGdsbGFiZWwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGxhYmVs X25hbWUKKyAgICBGUk9NIHBnX25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBwZ19wcm9w Z3JhcGhfZWxlbWVudCBlLCBwZ19wcm9wZ3JhcGhfbGFiZWwgbAorICAgIFdIRVJFIHBnLnJl bG5hbWVzcGFjZSA9IG5wZy5vaWQKKyAgICAgICAgICBBTkQgZS5wZ2VwZ2lkID0gcGcub2lk CisgICAgICAgICAgQU5EIGwucGdsZWxpZCA9IGUub2lkCisgICAgICAgICAgQU5EIHBnLnJl bGtpbmQgPSAnZycKKyAgICAgICAgICBBTkQgKE5PVCBwZ19pc19vdGhlcl90ZW1wX3NjaGVt YShucGcub2lkKSkKKyAgICAgICAgICBBTkQgKHBnX2hhc19yb2xlKHBnLnJlbG93bmVyLCAn VVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFzX3RhYmxlX3ByaXZpbGVnZShwZy5vaWQs ICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19lbGVtZW50X3RhYmxlX2xhYmVs cyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjkKKyAqIFBHX0VMRU1FTlRfVEFCTEVfUFJP UEVSVElFUyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcGdfZWxlbWVudF90YWJsZV9wcm9w ZXJ0aWVzIEFTCisgICAgU0VMRUNUIERJU1RJTkNUCisgICAgICAgICAgIENBU1QoY3VycmVu dF9kYXRhYmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRh bG9nLAorICAgICAgICAgICBDQVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBB UyBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVsbmFtZSBB UyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAg Q0FTVChlLnBnZWFsaWFzIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBlbGVtZW50X3RhYmxlX2Fs aWFzLAorICAgICAgICAgICBDQVNUKHByLnBncG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFT IHByb3BlcnR5X25hbWUsCisgICAgICAgICAgIENBU1QocGdfZ2V0X2V4cHIocHIucGdwZXhw ciwgZS5wZ2VyZWxpZCkgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIHByb3BlcnR5X2V4cHJlc3Np b24KKyAgICBGUk9NIHBnX25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBwZ19wcm9wZ3Jh cGhfZWxlbWVudCBlLCBwZ19wcm9wZ3JhcGhfbGFiZWwgbCwgcGdfcHJvcGdyYXBoX3Byb3Bl cnR5IHByCisgICAgV0hFUkUgcGcucmVsbmFtZXNwYWNlID0gbnBnLm9pZAorICAgICAgICAg IEFORCBlLnBnZXBnaWQgPSBwZy5vaWQKKyAgICAgICAgICBBTkQgbC5wZ2xlbGlkID0gZS5v aWQKKyAgICAgICAgICBBTkQgcHIucGdwbGFiZWxpZCA9IGwub2lkCisgICAgICAgICAgQU5E IHBnLnJlbGtpbmQgPSAnZycKKyAgICAgICAgICBBTkQgKE5PVCBwZ19pc19vdGhlcl90ZW1w X3NjaGVtYShucGcub2lkKSkKKyAgICAgICAgICBBTkQgKHBnX2hhc19yb2xlKHBnLnJlbG93 bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFzX3RhYmxlX3ByaXZpbGVnZShw Zy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19lbGVtZW50X3RhYmxl X3Byb3BlcnRpZXMgVE8gUFVCTElDOworCisKKy8qCisgKiAxNS4xMAorICogUEdfRUxFTUVO VF9UQUJMRVMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX2VsZW1lbnRfdGFibGVzIEFT CisgICAgU0VMRUNUIENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNxbF9pZGVudGlmaWVy KSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5wZy5uc3Bu YW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEsCisgICAg ICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlf Z3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChlLnBnZWFsaWFzIEFTIHNxbF9pZGVudGlm aWVyKSBBUyBlbGVtZW50X3RhYmxlX2FsaWFzLAorICAgICAgICAgICBDQVNUKENBU0UgZS5w Z2VraW5kIFdIRU4gJ2UnIFRIRU4gJ0VER0UnIFdIRU4gJ3YnIFRIRU4gJ1ZFUlRFWCcgRU5E IEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBlbGVtZW50X3RhYmxlX2tpbmQsCisgICAgICAgICAg IENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyB0YWJsZV9j YXRhbG9nLAorICAgICAgICAgICBDQVNUKG50Lm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIp IEFTIHRhYmxlX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVCh0LnJlbG5hbWUgQVMgc3FsX2lk ZW50aWZpZXIpIEFTIHRhYmxlX25hbWUsCisgICAgICAgICAgIENBU1QoTlVMTCBBUyBjaGFy YWN0ZXJfZGF0YSkgQVMgZWxlbWVudF90YWJsZV9kZWZpbml0aW9uCisgICAgRlJPTSBwZ19u YW1lc3BhY2UgbnBnLCBwZ19jbGFzcyBwZywgcGdfcHJvcGdyYXBoX2VsZW1lbnQgZSwgcGdf Y2xhc3MgdCwgcGdfbmFtZXNwYWNlIG50CisgICAgV0hFUkUgcGcucmVsbmFtZXNwYWNlID0g bnBnLm9pZAorICAgICAgICAgIEFORCBlLnBnZXBnaWQgPSBwZy5vaWQKKyAgICAgICAgICBB TkQgZS5wZ2VyZWxpZCA9IHQub2lkCisgICAgICAgICAgQU5EIHQucmVsbmFtZXNwYWNlID0g bnQub2lkCisgICAgICAgICAgQU5EIHBnLnJlbGtpbmQgPSAnZycKKyAgICAgICAgICBBTkQg KE5PVCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShucGcub2lkKSkKKyAgICAgICAgICBBTkQg KHBnX2hhc19yb2xlKHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1Ig aGFzX3RhYmxlX3ByaXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVD VCBPTiBwZ19lbGVtZW50X3RhYmxlcyBUTyBQVUJMSUM7CisKKworLyoKKyAqIDE1LjExCisg KiBQR19MQUJFTF9QUk9QRVJUSUVTIHZpZXcKKyAqLworCitDUkVBVEUgVklFVyBwZ19sYWJl bF9wcm9wZXJ0aWVzIEFTCisgICAgU0VMRUNUIERJU1RJTkNUCisgICAgICAgICAgIENBU1Qo Y3VycmVudF9kYXRhYmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFw aF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5wZy5uc3BuYW1lIEFTIHNxbF9pZGVudGlm aWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEsCisgICAgICAgICAgIENBU1QocGcucmVs bmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJvcGVydHlfZ3JhcGhfbmFtZSwKKyAgICAg ICAgICAgQ0FTVChsLnBnbGxhYmVsIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBsYWJlbF9uYW1l LAorICAgICAgICAgICBDQVNUKHByLnBncG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHBy b3BlcnR5X25hbWUKKyAgICBGUk9NIHBnX25hbWVzcGFjZSBucGcsIHBnX2NsYXNzIHBnLCBw Z19wcm9wZ3JhcGhfZWxlbWVudCBlLCBwZ19wcm9wZ3JhcGhfbGFiZWwgbCwgcGdfcHJvcGdy YXBoX3Byb3BlcnR5IHByCisgICAgV0hFUkUgcGcucmVsbmFtZXNwYWNlID0gbnBnLm9pZAor ICAgICAgICAgIEFORCBlLnBnZXBnaWQgPSBwZy5vaWQKKyAgICAgICAgICBBTkQgbC5wZ2xl bGlkID0gZS5vaWQKKyAgICAgICAgICBBTkQgcHIucGdwbGFiZWxpZCA9IGwub2lkCisgICAg ICAgICAgQU5EIHBnLnJlbGtpbmQgPSAnZycKKyAgICAgICAgICBBTkQgKE5PVCBwZ19pc19v dGhlcl90ZW1wX3NjaGVtYShucGcub2lkKSkKKyAgICAgICAgICBBTkQgKHBnX2hhc19yb2xl KHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFzX3RhYmxlX3By aXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19sYWJl bF9wcm9wZXJ0aWVzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTIKKyAqIFBHX0xBQkVM UyB2aWV3CisgKi8KKworQ1JFQVRFIFZJRVcgcGdfbGFiZWxzIEFTCisgICAgU0VMRUNUIERJ U1RJTkNUCisgICAgICAgICAgIENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNxbF9pZGVu dGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5w Zy5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEs CisgICAgICAgICAgIENBU1QocGcucmVsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgcHJv cGVydHlfZ3JhcGhfbmFtZSwKKyAgICAgICAgICAgQ0FTVChsLnBnbGxhYmVsIEFTIHNxbF9p ZGVudGlmaWVyKSBBUyBsYWJlbF9uYW1lCisgICAgRlJPTSBwZ19uYW1lc3BhY2UgbnBnLCBw Z19jbGFzcyBwZywgcGdfcHJvcGdyYXBoX2VsZW1lbnQgZSwgcGdfcHJvcGdyYXBoX2xhYmVs IGwKKyAgICBXSEVSRSBwZy5yZWxuYW1lc3BhY2UgPSBucGcub2lkCisgICAgICAgICAgQU5E IGUucGdlcGdpZCA9IHBnLm9pZAorICAgICAgICAgIEFORCBsLnBnbGVsaWQgPSBlLm9pZAor ICAgICAgICAgIEFORCBwZy5yZWxraW5kID0gJ2cnCisgICAgICAgICAgQU5EIChOT1QgcGdf aXNfb3RoZXJfdGVtcF9zY2hlbWEobnBnLm9pZCkpCisgICAgICAgICAgQU5EIChwZ19oYXNf cm9sZShwZy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgIE9SIGhhc190YWJs ZV9wcml2aWxlZ2UocGcub2lkLCAnU0VMRUNUJykpOworCitHUkFOVCBTRUxFQ1QgT04gcGdf bGFiZWxzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTMKKyAqIFBHX1BST1BFUlRZX0RB VEFfVFlQRVMgdmlldworICovCisKK0NSRUFURSBWSUVXIHBnX3Byb3BlcnR5X2RhdGFfdHlw ZXMgQVMKKyAgICBTRUxFQ1QgRElTVElOQ1QKKyAgICAgICAgICAgQ0FTVChjdXJyZW50X2Rh dGFiYXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX2NhdGFsb2cs CisgICAgICAgICAgIENBU1QobnBnLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHBy b3BlcnR5X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChwZy5yZWxuYW1lIEFTIHNx bF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9uYW1lLAorICAgICAgICAgICBDQVNU KHBncC5wZ3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9uYW1lLAorCisg ICAgICAgICAgIENBU1QoCisgICAgICAgICAgICAgQ0FTRSBXSEVOIHQudHlwdHlwZSA9ICdk JyBUSEVOCisgICAgICAgICAgICAgICBDQVNFIFdIRU4gYnQudHlwZWxlbSA8PiAwIEFORCBi dC50eXBsZW4gPSAtMSBUSEVOICdBUlJBWScKKyAgICAgICAgICAgICAgICAgICAgV0hFTiBu YnQubnNwbmFtZSA9ICdwZ19jYXRhbG9nJyBUSEVOIGZvcm1hdF90eXBlKHQudHlwYmFzZXR5 cGUsIG51bGwpCisgICAgICAgICAgICAgICAgICAgIEVMU0UgJ1VTRVItREVGSU5FRCcgRU5E CisgICAgICAgICAgICAgRUxTRQorICAgICAgICAgICAgICAgQ0FTRSBXSEVOIHQudHlwZWxl bSA8PiAwIEFORCB0LnR5cGxlbiA9IC0xIFRIRU4gJ0FSUkFZJworICAgICAgICAgICAgICAg ICAgICBXSEVOIG50Lm5zcG5hbWUgPSAncGdfY2F0YWxvZycgVEhFTiBmb3JtYXRfdHlwZShw Z3AucGdwdHlwaWQsIG51bGwpCisgICAgICAgICAgICAgICAgICAgIEVMU0UgJ1VTRVItREVG SU5FRCcgRU5ECisgICAgICAgICAgICAgRU5ECisgICAgICAgICAgICAgQVMgY2hhcmFjdGVy X2RhdGEpCisgICAgICAgICAgICAgQVMgZGF0YV90eXBlLAorCisgICAgICAgICAgIENBU1Qo bnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIGNoYXJhY3Rlcl9tYXhpbXVtX2xlbmd0aCwK KyAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251bWJlcikgQVMgY2hhcmFjdGVy X29jdGV0X2xlbmd0aCwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVudGlmaWVy KSBBUyBjaGFyYWN0ZXJfc2V0X2NhdGFsb2csCisgICAgICAgICAgIENBU1QobnVsbCBBUyBz cWxfaWRlbnRpZmllcikgQVMgY2hhcmFjdGVyX3NldF9zY2hlbWEsCisgICAgICAgICAgIENB U1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMgY2hhcmFjdGVyX3NldF9uYW1lLAorICAg ICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNvbGxhdGlvbl9jYXRh bG9nLCAtLSBGSVhNRQorICAgICAgICAgICBDQVNUKG51bGwgQVMgc3FsX2lkZW50aWZpZXIp IEFTIGNvbGxhdGlvbl9zY2hlbWEsIC0tIEZJWE1FCisgICAgICAgICAgIENBU1QobnVsbCBB UyBzcWxfaWRlbnRpZmllcikgQVMgY29sbGF0aW9uX25hbWUsIC0tIEZJWE1FCisgICAgICAg ICAgIENBU1QobnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIG51bWVyaWNfcHJlY2lzaW9u LAorICAgICAgICAgICBDQVNUKG51bGwgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBudW1lcmlj X3ByZWNpc2lvbl9yYWRpeCwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRpbmFsX251 bWJlcikgQVMgbnVtZXJpY19zY2FsZSwKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIGNhcmRp bmFsX251bWJlcikgQVMgZGF0ZXRpbWVfcHJlY2lzaW9uLAorICAgICAgICAgICBDQVNUKG51 bGwgQVMgY2hhcmFjdGVyX2RhdGEpIEFTIGludGVydmFsX3R5cGUsCisgICAgICAgICAgIENB U1QobnVsbCBBUyBjYXJkaW5hbF9udW1iZXIpIEFTIGludGVydmFsX3ByZWNpc2lvbiwKKwor ICAgICAgICAgICBDQVNUKGN1cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikg QVMgdXNlcl9kZWZpbmVkX3R5cGVfY2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChjb2FsZXNj ZShuYnQubnNwbmFtZSwgbnQubnNwbmFtZSkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHVzZXJf ZGVmaW5lZF90eXBlX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChjb2FsZXNjZShidC50eXBu YW1lLCB0LnR5cG5hbWUpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyB1c2VyX2RlZmluZWRfdHlw ZV9uYW1lLAorCisgICAgICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRpZmllcikgQVMg c2NvcGVfY2F0YWxvZywKKyAgICAgICAgICAgQ0FTVChudWxsIEFTIHNxbF9pZGVudGlmaWVy KSBBUyBzY29wZV9zY2hlbWEsCisgICAgICAgICAgIENBU1QobnVsbCBBUyBzcWxfaWRlbnRp ZmllcikgQVMgc2NvcGVfbmFtZSwKKworICAgICAgICAgICBDQVNUKG51bGwgQVMgY2FyZGlu YWxfbnVtYmVyKSBBUyBtYXhpbXVtX2NhcmRpbmFsaXR5LAorICAgICAgICAgICBDQVNUKHBn cC5wZ3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBkdGRfaWRlbnRpZmllcgorCisgICAg RlJPTSBwZ19wcm9wZ3JhcGhfcHJvcGVydHkgcGdwCisgICAgICAgICBKT0lOIChwZ19jbGFz cyBwZyBKT0lOIHBnX25hbWVzcGFjZSBucGcgT04gKHBnLnJlbG5hbWVzcGFjZSA9IG5wZy5v aWQpKSBPTiBwZ3AucGdwcGdpZCA9IHBnLm9pZAorICAgICAgICAgSk9JTiAocGdfdHlwZSB0 IEpPSU4gcGdfbmFtZXNwYWNlIG50IE9OICh0LnR5cG5hbWVzcGFjZSA9IG50Lm9pZCkpIE9O IHBncC5wZ3B0eXBpZCA9IHQub2lkCisgICAgICAgICBMRUZUIEpPSU4gKHBnX3R5cGUgYnQg Sk9JTiBwZ19uYW1lc3BhY2UgbmJ0IE9OIChidC50eXBuYW1lc3BhY2UgPSBuYnQub2lkKSkK KyAgICAgICAgICAgT04gKHQudHlwdHlwZSA9ICdkJyBBTkQgdC50eXBiYXNldHlwZSA9IGJ0 Lm9pZCkKKworICAgIFdIRVJFIHBnLnJlbGtpbmQgPSAnZycKKyAgICAgICAgICBBTkQgKE5P VCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShucGcub2lkKSkKKyAgICAgICAgICBBTkQgKHBn X2hhc19yb2xlKHBnLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFz X3RhYmxlX3ByaXZpbGVnZShwZy5vaWQsICdTRUxFQ1QnKSk7CisKK0dSQU5UIFNFTEVDVCBP TiBwZ19wcm9wZXJ0eV9kYXRhX3R5cGVzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTQK KyAqIFBHX1BST1BFUlRZX0dSQVBIX1BSSVZJTEVHRVMgdmlldworICovCisKK0NSRUFURSBW SUVXIHBnX3Byb3BlcnR5X2dyYXBoX3ByaXZpbGVnZXMgQVMKKyAgICBTRUxFQ1QgQ0FTVCh1 X2dyYW50b3Iucm9sbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgZ3JhbnRvciwKKyAgICAg ICAgICAgQ0FTVChncmFudGVlLnJvbG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGdyYW50 ZWUsCisgICAgICAgICAgIENBU1QoY3VycmVudF9kYXRhYmFzZSgpIEFTIHNxbF9pZGVudGlm aWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nLAorICAgICAgICAgICBDQVNUKG5jLm5z cG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX3NjaGVtYSwKKyAg ICAgICAgICAgQ0FTVChjLnJlbG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHByb3BlcnR5 X2dyYXBoX25hbWUsCisgICAgICAgICAgIENBU1QoYy5wcnR5cGUgQVMgY2hhcmFjdGVyX2Rh dGEpIEFTIHByaXZpbGVnZV90eXBlLAorICAgICAgICAgICBDQVNUKAorICAgICAgICAgICAg IENBU0UgV0hFTgorICAgICAgICAgICAgICAgICAgLS0gb2JqZWN0IG93bmVyIGFsd2F5cyBo YXMgZ3JhbnQgb3B0aW9ucworICAgICAgICAgICAgICAgICAgcGdfaGFzX3JvbGUoZ3JhbnRl ZS5vaWQsIGMucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICAgICBPUiBjLmdy YW50YWJsZQorICAgICAgICAgICAgICAgICAgVEhFTiAnWUVTJyBFTFNFICdOTycgRU5EIEFT IHllc19vcl9ubykgQVMgaXNfZ3JhbnRhYmxlCisKKyAgICBGUk9NICgKKyAgICAgICAgICAg IFNFTEVDVCBvaWQsIHJlbG5hbWUsIHJlbG5hbWVzcGFjZSwgcmVsa2luZCwgcmVsb3duZXIs IChhY2xleHBsb2RlKGNvYWxlc2NlKHJlbGFjbCwgYWNsZGVmYXVsdCgncicsIHJlbG93bmVy KSkpKS4qIEZST00gcGdfY2xhc3MKKyAgICAgICAgICkgQVMgYyAob2lkLCByZWxuYW1lLCBy ZWxuYW1lc3BhY2UsIHJlbGtpbmQsIHJlbG93bmVyLCBncmFudG9yLCBncmFudGVlLCBwcnR5 cGUsIGdyYW50YWJsZSksCisgICAgICAgICBwZ19uYW1lc3BhY2UgbmMsCisgICAgICAgICBw Z19hdXRoaWQgdV9ncmFudG9yLAorICAgICAgICAgKAorICAgICAgICAgICBTRUxFQ1Qgb2lk LCByb2xuYW1lIEZST00gcGdfYXV0aGlkCisgICAgICAgICAgIFVOSU9OIEFMTAorICAgICAg ICAgICBTRUxFQ1QgMDo6b2lkLCAnUFVCTElDJworICAgICAgICAgKSBBUyBncmFudGVlIChv aWQsIHJvbG5hbWUpCisKKyAgICBXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG5jLm9pZAorICAg ICAgICAgIEFORCBjLnJlbGtpbmQgSU4gKCdnJykKKyAgICAgICAgICBBTkQgYy5ncmFudGVl ID0gZ3JhbnRlZS5vaWQKKyAgICAgICAgICBBTkQgYy5ncmFudG9yID0gdV9ncmFudG9yLm9p ZAorICAgICAgICAgIEFORCBjLnBydHlwZSBJTiAoJ1NFTEVDVCcpCisgICAgICAgICAgQU5E IChwZ19oYXNfcm9sZSh1X2dyYW50b3Iub2lkLCAnVVNBR0UnKQorICAgICAgICAgICAgICAg T1IgcGdfaGFzX3JvbGUoZ3JhbnRlZS5vaWQsICdVU0FHRScpCisgICAgICAgICAgICAgICBP UiBncmFudGVlLnJvbG5hbWUgPSAnUFVCTElDJyk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZ19w cm9wZXJ0eV9ncmFwaF9wcml2aWxlZ2VzIFRPIFBVQkxJQzsKKworCisvKgorICogMTUuMTUK KyAqIFBHX1ZFUlRFWF9ERUZJTkVEX0xBQkVMX1NFVFMgdmlldworICovCisKKy0tIFRPRE8K KworCisvKgorICogMTUuMTYKKyAqIFBST1BFUlRZX0dSQVBIUyB2aWV3CisgKi8KKworQ1JF QVRFIFZJRVcgcHJvcGVydHlfZ3JhcGhzIEFTCisgICAgU0VMRUNUIENBU1QoY3VycmVudF9k YXRhYmFzZSgpIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9n LAorICAgICAgICAgICBDQVNUKG5jLm5zcG5hbWUgQVMgc3FsX2lkZW50aWZpZXIpIEFTIHBy b3BlcnR5X2dyYXBoX3NjaGVtYSwKKyAgICAgICAgICAgQ0FTVChjLnJlbG5hbWUgQVMgc3Fs X2lkZW50aWZpZXIpIEFTIHByb3BlcnR5X2dyYXBoX25hbWUKKyAgICBGUk9NIHBnX25hbWVz cGFjZSBuYywgcGdfY2xhc3MgYworICAgIFdIRVJFIGMucmVsbmFtZXNwYWNlID0gbmMub2lk CisgICAgICAgICAgQU5EIGMucmVsa2luZCA9ICdnJworICAgICAgICAgIEFORCAoTk9UIHBn X2lzX290aGVyX3RlbXBfc2NoZW1hKG5jLm9pZCkpCisgICAgICAgICAgQU5EIChwZ19oYXNf cm9sZShjLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgT1IgaGFzX3RhYmxl X3ByaXZpbGVnZShjLm9pZCwgJ1NFTEVDVCcpKTsKKworR1JBTlQgU0VMRUNUIE9OIHByb3Bl cnR5X2dyYXBocyBUTyBQVUJMSUM7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5j CmluZGV4IDhiYjI5MjRiOWNkLi5iZjQzNzkwZDVhNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9v YmplY3RhZGRyZXNzLmMKQEAgLTQ5LDYgKzQ5LDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3BhcmFtZXRlcl9hY2wuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BvbGljeS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdy YXBoX2VsZW1lbnQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVi bGljYXRpb25fbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlv bl9yZWwuaCIKQEAgLTM3Myw2ICszNzYsNDggQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3Bl cnR5VHlwZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX09QRkFNSUxZLAogCQl0cnVl CiAJfSwKKwl7CisJCSJwcm9wZXJ0eSBncmFwaCBlbGVtZW50IiwKKwkJUHJvcGdyYXBoRWxl bWVudFJlbGF0aW9uSWQsCisJCVByb3BncmFwaEVsZW1lbnRPYmplY3RJbmRleElkLAorCQlQ Uk9QR1JBUEhFTE9JRCwKKwkJUFJPUEdSQVBIRUxBTElBUywKKwkJQW51bV9wZ19wcm9wZ3Jh cGhfZWxlbWVudF9vaWQsCisJCUFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlYWxpYXMs CisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJSW52YWxp ZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQorCX0sCisJeworCQkicHJvcGVydHkgZ3Jh cGggbGFiZWwiLAorCQlQcm9wZ3JhcGhMYWJlbFJlbGF0aW9uSWQsCisJCVByb3BncmFwaExh YmVsT2JqZWN0SW5kZXhJZCwKKwkJLTEsCisJCVBST1BHUkFQSExBQkVMTkFNRSwKKwkJQW51 bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkLAorCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9w Z2xsYWJlbCwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAor CQlJbnZhbGlkQXR0ck51bWJlciwKKwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJCSJwcm9w ZXJ0eSBncmFwaCBwcm9wZXJ0eSIsCisJCVByb3BncmFwaFByb3BlcnR5UmVsYXRpb25JZCwK KwkJUHJvcGdyYXBoUHJvcGVydHlPYmplY3RJbmRleElkLAorCQktMSwKKwkJUFJPUEdSQVBI UFJPUE5BTUUsCisJCUFudW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZCwKKwkJQW51bV9w Z19wcm9wZ3JhcGhfcHJvcGVydHlfcGdwbmFtZSwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJ CUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJLTEsCisJCWZh bHNlCisJfSwKIAl7CiAJCSJyb2xlIiwKIAkJQXV0aElkUmVsYXRpb25JZCwKQEAgLTY4Myw2 ICs3MjgsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCXsKIAkJ ImZvcmVpZ24gdGFibGUiLCBPQkpFQ1RfRk9SRUlHTl9UQUJMRQogCX0sCisJeworCQkicHJv cGVydHkgZ3JhcGgiLCBPQkpFQ1RfUFJPUEdSQVBICisJfSwKIAl7CiAJCSJ0YWJsZSBjb2x1 bW4iLCBPQkpFQ1RfQ09MVU1OCiAJfSwKQEAgLTg1Miw2ICs5MDAsMTggQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBvYmplY3RfdHlwZV9tYXAKIAl7CiAJCSJwb2xpY3kiLCBPQkpFQ1RfUE9M SUNZCiAJfSwKKwkvKiBPQ0xBU1NfUFJPUEdSQVBIX0VMRU1FTlQgKi8KKwl7CisJCSJwcm9w ZXJ0eSBncmFwaCBlbGVtZW50IiwgLTEKKwl9LAorCS8qIE9DTEFTU19QUk9QR1JBUEhfTEFC RUwgKi8KKwl7CisJCSJwcm9wZXJ0eSBncmFwaCBsYWJlbCIsIC0xCisJfSwKKwkvKiBPQ0xB U1NfUFJPUEdSQVBIX1BST1BFUlRZICovCisJeworCQkicHJvcGVydHkgZ3JhcGggcHJvcGVy dHkiLCAtMQorCX0sCiAJLyogT0NMQVNTX1BVQkxJQ0FUSU9OICovCiAJewogCQkicHVibGlj YXRpb24iLCBPQkpFQ1RfUFVCTElDQVRJT04KQEAgLTk5Miw2ICsxMDUyLDcgQEAgZ2V0X29i amVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJY2Fz ZSBPQkpFQ1RfVklFVzoKIAkJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCQljYXNlIE9CSkVD VF9GT1JFSUdOX1RBQkxFOgorCQkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQkJCWFkZHJl c3MgPQogCQkJCQlnZXRfcmVsYXRpb25fYnlfcXVhbGlmaWVkX25hbWUob2JqdHlwZSwgY2Fz dE5vZGUoTGlzdCwgb2JqZWN0KSwKIAkJCQkJCQkJCQkJCSAgICZyZWxhdGlvbiwgbG9ja21v ZGUsCkBAIC0xNDAwLDYgKzE0NjEsMTMgQEAgZ2V0X3JlbGF0aW9uX2J5X3F1YWxpZmllZF9u YW1lKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqZWN0LAogCQkJCQkJIGVycm1zZygi XCIlc1wiIGlzIG5vdCBhbiBpbmRleCIsCiAJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHJlbGF0aW9uKSkpKTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6 CisJCQlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1BST1BHUkFQ SCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19P QkpFQ1RfVFlQRSksCisJCQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgcHJvcGVydHkg Z3JhcGgiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikpKSk7 CisJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfU0VRVUVOQ0U6CiAJCQlpZiAocmVsYXRpb24t PnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1NFUVVFTkNFKQogCQkJCWVyZXBvcnQoRVJS T1IsCkBAIC0yMzE1LDYgKzIzODMsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVO Q1RJT05fQVJHUykKIAkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKIAkJY2FzZSBPQkpFQ1RfSU5E RVg6CiAJCWNhc2UgT0JKRUNUX0ZPUkVJR05fVEFCTEU6CisJCWNhc2UgT0JKRUNUX1BST1BH UkFQSDoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6 CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKQEAgLTI0MzQsNiArMjUwMyw3IEBAIGNoZWNr X29iamVjdF9vd25lcnNoaXAoT2lkIHJvbGVpZCwgT2JqZWN0VHlwZSBvYmp0eXBlLCBPYmpl Y3RBZGRyZXNzIGFkZHJlc3MsCiAJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCWNhc2UgT0JKRUNU X01BVFZJRVc6CiAJCWNhc2UgT0JKRUNUX0ZPUkVJR05fVEFCTEU6CisJCWNhc2UgT0JKRUNU X1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVDVF9SVUxF OgogCQljYXNlIE9CSkVDVF9UUklHR0VSOgpAQCAtMzk2NCw2ICs0MDM0LDQzIEBAIGdldE9i amVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNz aW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgT0NMQVNTX1BST1BHUkFQSF9F TEVNRU5UOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19wcm9wZ3Jh cGhfZWxlbWVudCBwZ2Vmb3JtOworCQkJCVN0cmluZ0luZm9EYXRhIHJlbDsKKworCQkJCXR1 cCA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwKKwkJCQkJCQkJCSAgT2JqZWN0 SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1Zh bGlkKHR1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBw cm9wZXJ0eSBncmFwaCBlbGVtZW50ICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsK KworCQkJCXBnZWZvcm0gPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNU KHR1cCk7CisKKwkJCQlpbml0U3RyaW5nSW5mbygmcmVsKTsKKwkJCQlnZXRSZWxhdGlvbkRl c2NyaXB0aW9uKCZyZWwsIHBnZWZvcm0tPnBnZXBnaWQsIGZhbHNlKTsKKworCQkJCS8qIHRy YW5zbGF0b3I6IHNlY29uZCAlcyBpcywgZS5nLiwgInByb3BlcnR5IGdyYXBoICVzIiAqLwor CQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygiZWxlbWVudCAlcyBpbiAlcyIpLAor CQkJCQkJCQkgTmFtZVN0cihwZ2Vmb3JtLT5wZ2VhbGlhcyksIHJlbC5kYXRhKTsKKwkJCQlw ZnJlZShyZWwuZGF0YSk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7 CisJCQl9CisKKwkJY2FzZSBPQ0xBU1NfUFJPUEdSQVBIX0xBQkVMOgorCQkJeworCQkJCWFw cGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgImxhYmVsICV1IFRPRE8iLCBvYmplY3QtPm9iamVj dElkKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIE9DTEFTU19QUk9QR1JBUEhfUFJP UEVSVFk6CisJCQl7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAicHJvcGVydHkg JXUgVE9ETyIsIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNh c2UgT0NMQVNTX1BVQkxJQ0FUSU9OOgogCQkJewogCQkJCWNoYXIJICAgKnB1Ym5hbWUgPSBn ZXRfcHVibGljYXRpb25fbmFtZShvYmplY3QtPm9iamVjdElkLApAQCAtNDE1MSw2ICs0MjU4 LDEwIEBAIGdldFJlbGF0aW9uRGVzY3JpcHRpb24oU3RyaW5nSW5mbyBidWZmZXIsIE9pZCBy ZWxpZCwgYm9vbCBtaXNzaW5nX29rKQogCQkJYXBwZW5kU3RyaW5nSW5mbyhidWZmZXIsIF8o ImZvcmVpZ24gdGFibGUgJXMiKSwKIAkJCQkJCQkgcmVsbmFtZSk7CiAJCQlicmVhazsKKwkJ Y2FzZSBSRUxLSU5EX1BST1BHUkFQSDoKKwkJCWFwcGVuZFN0cmluZ0luZm8oYnVmZmVyLCBf KCJwcm9wZXJ0eSBncmFwaCAlcyIpLAorCQkJCQkJCSByZWxuYW1lKTsKKwkJCWJyZWFrOwog CQlkZWZhdWx0OgogCQkJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJCQlhcHBlbmRTdHJp bmdJbmZvKGJ1ZmZlciwgXygicmVsYXRpb24gJXMiKSwKQEAgLTQ1NzEsNiArNDY4MiwxOCBA QCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0 LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIs ICJwb2xpY3kiKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0NMQVNTX1BST1BHUkFQSF9FTEVN RU5UOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAicHJvcGVydHkgZ3Jh cGggZWxlbWVudCIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1NfUFJPUEdSQVBIX0xB QkVMOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAicHJvcGVydHkgZ3Jh cGggbGFiZWwiKTsKKwkJCWJyZWFrOworCisJCWNhc2UgT0NMQVNTX1BST1BHUkFQSF9QUk9Q RVJUWToKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInByb3BlcnR5IGdy YXBoIHByb3BlcnR5Iik7CisJCQlicmVhazsKKwogCQljYXNlIE9DTEFTU19QVUJMSUNBVElP TjoKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInB1YmxpY2F0aW9uIik7 CiAJCQlicmVhazsKQEAgLTQ2NTQsNiArNDc3Nyw5IEBAIGdldFJlbGF0aW9uVHlwZURlc2Ny aXB0aW9uKFN0cmluZ0luZm8gYnVmZmVyLCBPaWQgcmVsaWQsIGludDMyIG9iamVjdFN1Yklk LAogCQljYXNlIFJFTEtJTkRfRk9SRUlHTl9UQUJMRToKIAkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmZmVyLCAiZm9yZWlnbiB0YWJsZSIpOwogCQkJYnJlYWs7CisJCWNhc2UgUkVM S0lORF9QUk9QR1JBUEg6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZmZlciwgInBy b3BlcnR5IGdyYXBoIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZG4n dCBnZXQgaGVyZSAqLwogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWZmZXIsICJyZWxh dGlvbiIpOwpAQCAtNTgxMyw2ICs1OTM5LDE4IEBAIGdldE9iamVjdElkZW50aXR5UGFydHMo Y29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNh c2UgT0NMQVNTX1BST1BHUkFQSF9FTEVNRU5UOgorCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVm ZmVyLCAiJXUgVE9ETyIsIG9iamVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKKwkJY2Fz ZSBPQ0xBU1NfUFJPUEdSQVBIX0xBQkVMOgorCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVy LCAiJXUgVE9ETyIsIG9iamVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKKwkJY2FzZSBP Q0xBU1NfUFJPUEdSQVBIX1BST1BFUlRZOgorCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVy LCAiJXUgVE9ETyIsIG9iamVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKIAkJY2FzZSBP Q0xBU1NfUFVCTElDQVRJT046CiAJCQl7CiAJCQkJY2hhcgkgICAqcHVibmFtZTsKQEAgLTYx MjEsNiArNjI1OSw4IEBAIGdldF9yZWxraW5kX29ianR5cGUoY2hhciByZWxraW5kKQogCQkJ cmV0dXJuIE9CSkVDVF9NQVRWSUVXOwogCQljYXNlIFJFTEtJTkRfRk9SRUlHTl9UQUJMRToK IAkJCXJldHVybiBPQkpFQ1RfRk9SRUlHTl9UQUJMRTsKKwkJY2FzZSBSRUxLSU5EX1BST1BH UkFQSDoKKwkJCXJldHVybiBPQkpFQ1RfUFJPUEdSQVBIOwogCQljYXNlIFJFTEtJTkRfVE9B U1RWQUxVRToKIAkJCXJldHVybiBPQkpFQ1RfVEFCTEU7CiAJCWRlZmF1bHQ6CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NsYXNzLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX2NsYXNzLmMKaW5kZXggZTA1YjBiYmIyZTAuLjc0OGYwNmIzZmY0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NsYXNzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jbGFzcy5jCkBAIC00NSw2ICs0NSw4IEBAIGVycmRldGFpbF9yZWxraW5k X25vdF9zdXBwb3J0ZWQoY2hhciByZWxraW5kKQogCQkJcmV0dXJuIGVycmRldGFpbCgiVGhp cyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgcGFydGl0aW9uZWQgdGFibGVzLiIp OwogCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVg6CiAJCQlyZXR1cm4gZXJyZGV0 YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBwYXJ0aXRpb25lZCBp bmRleGVzLiIpOworCQljYXNlIFJFTEtJTkRfUFJPUEdSQVBIOgorCQkJcmV0dXJuIGVycmRl dGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgcHJvcGVydHkgZ3Jh cGhzLiIpOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCByZWxr aW5kOiAnJWMnIiwgcmVsa2luZCk7CiAJCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3FsX2ZlYXR1cmVzLnR4dAppbmRleCA0MDg1YTJkMThkMi4uZmJmY2EyMDY4ZDggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dAorKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKQEAgLTM0OSw2ICszNDksMTA2IEBA IEY4NjYJRkVUQ0ggRklSU1QgY2xhdXNlOiBQRVJDRU5UIG9wdGlvbgkJCU5PCiBGODY3CUZF VENIIEZJUlNUIGNsYXVzZTogV0lUSCBUSUVTIG9wdGlvbgkJCVlFUwkKIEY4NjgJT1JERVIg QlkgaW4gZ3JvdXBlZCB0YWJsZQkJCVlFUwkKIEY4NjkJU1FMIGltcGxlbWVudGF0aW9uIGlu Zm8gcG9wdWxhdGlvbgkJCVlFUwkKK0cwMDAJR3JhcGggcGF0dGVybgkJCVlFUwlTUUwvUEdR IHJlcXVpcmVkCitHMDAxCVJlcGVhdGFibGUtZWxlbWVudHMgbWF0Y2ggbW9kZQkJCVlFUwlT UUwvUEdRIHJlcXVpcmVkIFhYWAorRzAwMglEaWZmZXJlbnQtZWRnZXMgbWF0Y2ggbW9kZQkJ CU5PCQorRzAwMwlFeHBsaWNpdCBSRVBFQVRBQkxFIEVMRU1FTlRTIGtleXdvcmQJCQlOTwkK K0cwMDQJUGF0aCB2YXJpYWJsZXMJCQlOTwkKK0cwMDUJUGF0aCBzZWFyY2ggcHJlZml4IGlu IGEgcGF0aCBwYXR0ZXJuCQkJTk8JCitHMDA2CUdyYXBoIHBhdHRlcm4gS0VFUCBjbGF1c2U6 IHBhdGggbW9kZSBwcmVmaXgJCQlOTwkKK0cwMDcJR3JhcGggcGF0dGVybiBLRUVQIGNsYXVz ZTogcGF0aCBzZWFyY2ggcHJlZml4CQkJTk8JCitHMDA4CUdyYXBoIHBhdHRlcm4gV0hFUkUg Y2xhdXNlCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cwMTAJRXhwbGljaXQgV0FMSyBrZXl3 b3JkCQkJTk8JCitHMDExCUFkdmFuY2VkIHBhdGggbW9kZXM6IFRSQUlMCQkJTk8JCitHMDEy CUFkdmFuY2VkIHBhdGggbW9kZXM6IFNJTVBMRQkJCU5PCQorRzAxMwlBZHZhbmNlZCBwYXRo IG1vZGVzOiBBQ1lDTElDCQkJTk8JCitHMDE0CUV4cGxpY2l0IFBBVEgvUEFUSFMga2V5d29y ZHMJCQlOTwkKK0cwMTUJQWxsIHBhdGggc2VhcmNoOiBleHBsaWNpdCBBTEwga2V5d29yZAkJ CU5PCQorRzAxNglBbnkgcGF0aCBzZWFyY2gJCQlOTwkKK0cwMTcJQWxsIHNob3J0ZXN0IHBh dGggc2VhcmNoCQkJTk8JCitHMDE4CUFueSBzaG9ydGVzdCBwYXRoIHNlYXJjaAkJCU5PCQor RzAxOQlDb3VudGVkIHNob3J0ZXN0IHBhdGggc2VhcmNoCQkJTk8JCitHMDIwCUNvdW50ZWQg c2hvcnRlc3QgZ3JvdXAgc2VhcmNoCQkJTk8JCitHMDMwCVBhdGggbXVsdGlzZXQgYWx0ZXJu YXRpb24JCQlOTwkKK0cwMzEJUGF0aCBtdWx0aXNldCBhbHRlcm5hdGlvbjogdmFyaWFibGUg bGVuZ3RoIHBhdGggb3BlcmFuZHMJCQlOTwkKK0cwMzIJUGF0aCBwYXR0ZXJuIHVuaW9uCQkJ Tk8JCitHMDMzCVBhdGggcGF0dGVybiB1bmlvbjogdmFyaWFibGUgbGVuZ3RoIHBhdGggb3Bl cmFuZHMJCQlOTwkKK0cwMzQJUGF0aCBjb25jYXRlbmF0aW9uCQkJWUVTCVNRTC9QR1EgcmVx dWlyZWQKK0cwMzUJUXVhbnRpZmllZCBwYXRocwkJCU5PCQorRzAzNglRdWFudGlmaWVkIGVk Z2VzCQkJTk8JCitHMDM3CVF1ZXN0aW9uZWQgcGF0aHMJCQlOTwkKK0cwMzgJUGFyZW50aGVz aXplZCBwYXRoIHBhdHRlcm4gZXhwcmVzc2lvbgkJCU5PCQorRzAzOQlTaW1wbGlmaWVkIHBh dGggcGF0dGVybiBleHByZXNzaW9uOiBmdWxsIGRlZmF1bHRpbmcJCQlOTwkKK0cwNDAJVmVy dGV4IHBhdHRlcm4JCQlZRVMJU1FML1BHUSByZXF1aXJlZAorRzA0MQlOb24tbG9jYWwgZWxl bWVudCBwYXR0ZXJuIHByZWRpY2F0ZXMJCQlOTwkKK0cwNDIJQmFzaWMgZnVsbCBlZGdlIHBh dHRlcm5zCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0cwNDMJQ29tcGxldGUgZnVsbCBlZGdl IHBhdHRlcm5zCQkJTk8JCitHMDQ0CUJhc2ljIGFiYnJldmlhdGVkIGVkZ2UgcGF0dGVybnMJ CQlZRVMJCitHMDQ1CUNvbXBsZXRlIGFiYnJldmlhdGVkIGVkZ2UgcGF0dGVybnMJCQlOTwkK K0cwNDYJUmVsYXhlZCB0b3BvbG9naWNhbCBjb25zaXN0ZW5jeTogYWRqYWNlbnQgdmVydGV4 IHBhdHRlcm5zCQkJTk8JCitHMDQ3CVJlbGF4ZWQgdG9wb2xvZ2ljYWwgY29uc2lzdGVuY3k6 IGNvbmNpc2UgZWRnZSBwYXR0ZXJucwkJCU5PCQorRzA0OAlQYXJlbnRoZXNpemVkIHBhdGgg cGF0dGVybjogc3VicGF0aCB2YXJpYWJsZSBkZWNsYXJhdGlvbgkJCU5PCQorRzA0OQlQYXJl bnRoZXNpemVkIHBhdGggcGF0dGVybjogcGF0aCBtb2RlIHByZWZpeAkJCU5PCQorRzA1MAlQ YXJlbnRoZXNpemVkIHBhdGggcGF0dGVybjogV0hFUkUgY2xhdXNlCQkJTk8JCitHMDUxCVBh cmVudGhlc2l6ZWQgcGF0aCBwYXR0ZXJuOiBub24tbG9jYWwgcHJlZGljYXRlcwkJCU5PCQor RzA2MAlCb3VuZGVkIGdyYXBoIHBhdHRlcm4gcXVhbnRpZmllcnMJCQlOTwkKK0cwNjEJVW5i b3VuZGVkIGdyYXBoIHBhdHRlcm4gcXVhbnRpZmllcnMJCQlOTwkKK0cwNzAJTGFiZWwgZXhw cmVzc2lvbjogbGFiZWwgZGlzanVuY3Rpb24JCQlOTwlTUUwvUEdRIHJlcXVpcmVkCitHMDcx CUxhYmVsIGV4cHJlc3Npb246IGxhYmVsIGNvbmp1bmN0aW9uCQkJTk8JCitHMDcyCUxhYmVs IGV4cHJlc3Npb246IGxhYmVsIG5lZ2F0aW9uCQkJTk8JCitHMDczCUxhYmVsIGV4cHJlc3Np b246IGluZGl2aWR1YWwgbGFiZWwgbmFtZQkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHMDc0 CUxhYmVsIGV4cHJlc3Npb246IHdpbGRjYXJkIGxhYmVsCQkJTk8JCitHMDc1CVBhcmVudGhl c2l6ZWQgbGFiZWwgZXhwcmVzc2lvbgkJCU5PCQorRzA4MAlTaW1wbGlmaWVkIHBhdGggcGF0 dGVybiBleHByZXNzaW9uOiBiYXNpYyBkZWZhdWx0aW5nCQkJTk8JCitHMDgxCVNpbXBsaWZp ZWQgcGF0aCBwYXR0ZXJuIGV4cHJlc3Npb246IGZ1bGwgb3ZlcnJpZGVzCQkJTk8JCitHMDgy CVNpbXBsaWZpZWQgcGF0aCBwYXR0ZXJuIGV4cHJlc3Npb246IGJhc2ljIG92ZXJyaWRlcwkJ CU5PCQorRzA5MAlQcm9wZXJ0eSByZWZlcmVuY2UJCQlZRVMJU1FML1BHUSByZXF1aXJlZAor RzEwMAlFTEVNRU5UX0lEIGZ1bmN0aW9uCQkJTk8JCitHMTEwCUlTIERJUkVDVEVEIHByZWRp Y2F0ZQkJCU5PCQorRzExMQlJUyBMQUJFTEVEIHByZWRpY2F0ZQkJCU5PCQorRzExMglJUyBT T1VSQ0UgYW5kIElTIERFU1RJTkFUSU9OIHByZWRpY2F0ZQkJCU5PCQorRzExMwlBTExfRElG RkVSRU5UIHByZWRpY2F0ZQkJCU5PCQorRzExNAlTQU1FIHByZWRpY2F0ZQkJCU5PCQorRzEx NQlQUk9QRVJUWV9FWElTVFMgcHJlZGljYXRlCQkJTk8JCitHMTIwCVdpdGhpbi1tYXRjaCBh Z2dyZWdhdGVzCQkJTk8JCitHODAwCVBBVEhfTkFNRSBmdW5jdGlvbgkJCU5PCQorRzgwMQlF TEVNRU5UX05VTUJFUiBmdW5jdGlvbgkJCU5PCQorRzgwMglQQVRIX0xFTkdUSCBmdW5jdGlv bgkJCU5PCQorRzgwMwlNQVRDSE5VTSBmdW5jdGlvbgkJCU5PCQorRzgxMAlJUyBCT1VORCBw cmVkaWNhdGUJCQlOTwkKK0c4MTEJSVMgQk9VTkQgcHJlZGljYXRlOiBBUyBvcHRpb24JCQlO TwkKK0c4MjAJQklORElOR19DT1VOVAkJCU5PCQorRzgzMAlDb2xvbiBpbiAnaXMgbGFiZWwn IGV4cHJlc3Npb24JCQlZRVMJCitHODQwCVBhdGgtb3JkZXJlZCBhZ2dyZWdhdGVzCQkJTk8J CitHODUwCVNRTC9QR1EgSW5mb3JtYXRpb24gU2NoZW1hIHZpZXdzCQkJWUVTCQorRzg2MAlH RVQgRElBR05PU1RJQ1MgZW5oYW5jZW1lbnRzIGZvciBTUUwtcHJvcGVydHkgZ3JhcGhzCQkJ Tk8JCitHOTAwCUdSQVBIX1RBQkxFCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0c5MDEJR1JB UEhfVEFCTEU6IE9ORSBST1cgUEVSIFZFUlRFWAkJCU5PCQorRzkwMglHUkFQSF9UQUJMRTog T05FIFJPVyBQRVIgU1RFUAkJCU5PCQorRzkwMwlHUkFQSF9UQUJMRTogZXhwbGljaXQgT05F IFJPVyBQRVIgTUFUQ0gga2V5d29yZHMJCQlOTwkKK0c5MDQJQWxsIHByb3BlcnRpZXMgcmVm ZXJlbmNlCQkJTk8JCitHOTA1CUdSQVBIX1RBQkxFOiBvcHRpb25hbCBDT0xVTU5TIGNsYXVz ZQkJCU5PCQorRzkwNglHUkFQSF9UQUJMRTogZXhwbGljaXQgRVhQT1JUIEFMTAkJCU5PCQor RzkwNwlHUkFQSF9UQUJMRTogRVhQT1JUIEFMTCBFWENFUFQJCQlOTwkKK0c5MDgJR1JBUEhf VEFCTEU6IEVYUE9SVCBTSU5HTEVUT05TIGxpc3QJCQlOTwkKK0c5MDkJR1JBUEhfVEFCTEU6 IGV4cGxpY2l0IEVYUE9SVCBOTyBTSU5HTEVUT05TCQkJTk8JCitHOTEwCUdSQVBIX1RBQkxF OiAnaW4gcGF0aHMgY2xhdXNlJwkJCU5PCQorRzkyMAlEREwtYmFzZWQgU1FMLXByb3BlcnR5 IGdyYXBocwkJCVlFUwlTUUwvUEdRIHJlcXVpcmVkCitHOTIxCUVtcHR5IFNRTC1wcm9wZXJ0 eSBncmFwaAkJCVlFUwkKK0c5MjIJVmlld3MgYXMgZWxlbWVudCB0YWJsZXMJCQlZRVMJCitH OTIzCUluLWxpbmUgdmlld3MgYXMgZWxlbWVudCB0YWJsZXMJCQlOTwkKK0c5MjQJRXhwbGlj aXQga2V5IGNsYXVzZSBmb3IgZWxlbWVudCB0YWJsZXMJCQlZRVMJU1FML1BHUSByZXF1aXJl ZAorRzkyNQlFeHBsaWNpdCBsYWJlbCBhbmQgcHJvcGVydGllcyBjbGF1c2UgZm9yIGVsZW1l bnQgdGFibGVzCQkJWUVTCVNRTC9QR1EgcmVxdWlyZWQKK0c5MjYJTW9yZSB0aGFuIG9uZSBs YWJlbCBmb3IgdmVydGV4IHRhYmxlcwkJCVlFUwkKK0c5MjcJTW9yZSB0aGFuIG9uZSBsYWJl bCBmb3IgZWRnZSB0YWJsZXMJCQlZRVMJCitHOTI4CVZhbHVlIGV4cHJlc3Npb25zIGFzIHBy b3BlcnRpZXMgYW5kIHJlbmFtaW5nIG9mIHByb3BlcnRpZXMJCQlZRVMJCitHOTI5CUxhYmVs cyBhbmQgcHJvcGVydGllczogRVhDRVBUIGxpc3QJCQlOTwkKK0c5NDAJTXVsdGktc291cmNl ZC9kZXN0aW5lZCBlZGdlcwkJCU5PCVhYWAorRzk0MQlJbXBsaWNpdCByZW1vdmFsIG9mIGlu Y29tcGxldGUgZWRnZXMJCQlOTwlYWFgKK0c5NTAJQWx0ZXIgcHJvcGVydHkgZ3JhcGggc3Rh dGVtZW50OiBBREQvRFJPUCBlbGVtZW50IHRhYmxlCQkJWUVTCQorRzk2MAlBbHRlciBlbGVt ZW50IHRhYmxlIGRlZmluaXRpb246IEFERC9EUk9QIExBQkVMCQkJWUVTCQorRzk3MAlBbHRl ciBlbGVtZW50IHRhYmxlIGRlZmluaXRpb246IEFMVEVSIExBQkVMCQkJWUVTCQorRzk4MAlE Uk9QIFBST1BFUlRZIEdSQVBIOiBDQVNDQURFIGRyb3AgYmVoYXZpb3IJCQlZRVMJCiBSMDEw CVJvdyBwYXR0ZXJuIHJlY29nbml0aW9uOiBGUk9NIGNsYXVzZQkJCU5PCQogUjAyMAlSb3cg cGF0dGVybiByZWNvZ25pdGlvbjogV0lORE9XIGNsYXVzZQkJCU5PCQogUjAzMAlSb3cgcGF0 dGVybiByZWNvZ25pdGlvbjogZnVsbCBhZ2dyZWdhdGUgc3VwcG9ydAkJCU5PCQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4ZjkxYy4uNjI2MGQ2Yjc5ZWQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL01ha2VmaWxlCkBAIC00Niw2ICs0Niw3IEBAIE9CSlMgPSBcCiAJcG9ydGFsY21k cy5vIFwKIAlwcmVwYXJlLm8gXAogCXByb2NsYW5nLm8gXAorCXByb3BncmFwaGNtZHMubyBc CiAJcHVibGljYXRpb25jbWRzLm8gXAogCXNjaGVtYWNtZHMubyBcCiAJc2VjbGFiZWwubyBc CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCBiMmU0MjYwYWVmNy4uZTgyMzRhYzM0YTAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtMzgzLDYgKzM4Myw3IEBAIEV4ZWNSZW5hbWVTdG10 KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX01BVFZJRVc6CiAJCWNhc2UgT0JK RUNUX0lOREVYOgogCQljYXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgorCQljYXNlIE9CSkVD VF9QUk9QR1JBUEg6CiAJCQlyZXR1cm4gUmVuYW1lUmVsYXRpb24oc3RtdCk7CiAKIAkJY2Fz ZSBPQkpFQ1RfQ09MVU1OOgpAQCAtNTM5LDYgKzU0MCw3IEBAIEV4ZWNBbHRlck9iamVjdFNj aGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9U QUJMRToKIAkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJY2FzZSBPQkpFQ1RfTUFUVklFVzoKKwkJ Y2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQkJYWRkcmVzcyA9IEFsdGVyVGFibGVOYW1lc3Bh Y2Uoc3RtdCwKIAkJCQkJCQkJCQkgIG9sZFNjaGVtYUFkZHIgPyAmb2xkTnNwT2lkIDogTlVM TCk7CiAJCQlicmVhazsKQEAgLTY5MCw2ICs2OTIsOSBAQCBBbHRlck9iamVjdE5hbWVzcGFj ZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lkIG5zcE9pZCwKIAkJY2FzZSBPQ0xB U1NfRVZFTlRfVFJJR0dFUjoKIAkJY2FzZSBPQ0xBU1NfUEFSQU1FVEVSX0FDTDoKIAkJY2Fz ZSBPQ0xBU1NfUE9MSUNZOgorCQljYXNlIE9DTEFTU19QUk9QR1JBUEhfRUxFTUVOVDoKKwkJ Y2FzZSBPQ0xBU1NfUFJPUEdSQVBIX0xBQkVMOgorCQljYXNlIE9DTEFTU19QUk9QR1JBUEhf UFJPUEVSVFk6CiAJCWNhc2UgT0NMQVNTX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9DTEFTU19Q VUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNhc2UgT0NMQVNTX1BVQkxJQ0FUSU9OX1JFTDoK QEAgLTkxMiw2ICs5MTcsNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQg KnN0bXQpCiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZ OgogCQljYXNlIE9CSkVDVF9QUk9DRURVUkU6CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoK IAkJY2FzZSBPQkpFQ1RfUk9VVElORToKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoK IAkJY2FzZSBPQkpFQ1RfVEFCTEVTUEFDRToKQEAgLTkyMSwxNiArOTI3LDI5IEBAIEV4ZWNB bHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAkJCQlSZWxhdGlvbglyZWxh dGlvbjsKIAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAKLQkJCQlhZGRyZXNzID0gZ2V0 X29iamVjdF9hZGRyZXNzKHN0bXQtPm9iamVjdFR5cGUsCi0JCQkJCQkJCQkJCSBzdG10LT5v YmplY3QsCi0JCQkJCQkJCQkJCSAmcmVsYXRpb24sCi0JCQkJCQkJCQkJCSBBY2Nlc3NFeGNs dXNpdmVMb2NrLAotCQkJCQkJCQkJCQkgZmFsc2UpOwotCQkJCUFzc2VydChyZWxhdGlvbiA9 PSBOVUxMKTsKKwkJCQlpZiAoc3RtdC0+cmVsYXRpb24pCisJCQkJCWFkZHJlc3MgPSBnZXRf b2JqZWN0X2FkZHJlc3NfcnYoc3RtdC0+b2JqZWN0VHlwZSwKKwkJCQkJCQkJCQkJCQlzdG10 LT5yZWxhdGlvbiwKKwkJCQkJCQkJCQkJCQlOSUwsCisJCQkJCQkJCQkJCQkJJnJlbGF0aW9u LAorCQkJCQkJCQkJCQkJCUFjY2Vzc0V4Y2x1c2l2ZUxvY2ssCisJCQkJCQkJCQkJCQkJZmFs c2UpOworCQkJCWVsc2UKKwkJCQl7CisJCQkJCWFkZHJlc3MgPSBnZXRfb2JqZWN0X2FkZHJl c3Moc3RtdC0+b2JqZWN0VHlwZSwKKwkJCQkJCQkJCQkJCSBzdG10LT5vYmplY3QsCisJCQkJ CQkJCQkJCQkgJnJlbGF0aW9uLAorCQkJCQkJCQkJCQkJIEFjY2Vzc0V4Y2x1c2l2ZUxvY2ss CisJCQkJCQkJCQkJCQkgZmFsc2UpOworCQkJCQlBc3NlcnQocmVsYXRpb24gPT0gTlVMTCk7 CisJCQkJfQogCiAJCQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChhZGRyZXNzLmNsYXNz SWQsIGFkZHJlc3Mub2JqZWN0SWQsCiAJCQkJCQkJCQkJICBuZXdvd25lcik7CiAKKwkJCQlp ZiAocmVsYXRpb24pCisJCQkJCXJlbGF0aW9uX2Nsb3NlKHJlbGF0aW9uLCBOb0xvY2spOwor CiAJCQkJcmV0dXJuIGFkZHJlc3M7CiAJCQl9CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9k cm9wY21kcy5jCmluZGV4IDg3YTJkYjRlMGY1Li43OWNlMDk2Nzk5NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jCkBAIC00ODcsNiArNDg3LDcgQEAgZG9lc19ub3RfZXhpc3Rfc2tp cHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QpCiAJCWNhc2UgT0JKRUNU X0ZPUkVJR05fVEFCTEU6CiAJCWNhc2UgT0JKRUNUX0lOREVYOgogCQljYXNlIE9CSkVDVF9N QVRWSUVXOgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJCWNhc2UgT0JKRUNUX1JPTEU6 CiAJCWNhc2UgT0JKRUNUX1NFUVVFTkNFOgogCQljYXNlIE9CSkVDVF9TVUJTQ1JJUFRJT046 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggYzhiNjYyMTMxYzMu LjI0M2JhOWUyYjMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90 cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBA IC0xMTY4LDYgKzExNjgsNyBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdFR5cGUoT2Jq ZWN0VHlwZSBvYnR5cGUpCiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNlIE9CSkVD VF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1BST0NFRFVSRToKKwkJY2FzZSBPQkpFQ1RfUFJP UEdSQVBIOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJY2FzZSBPQkpFQ1RfUFVC TElDQVRJT05fTkFNRVNQQUNFOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CkBA IC0xMjQ4LDYgKzEyNDksOSBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9i amVjdENsYXNzIG9iamNsYXNzKQogCQljYXNlIE9DTEFTU19ERUZBQ0w6CiAJCWNhc2UgT0NM QVNTX0VYVEVOU0lPTjoKIAkJY2FzZSBPQ0xBU1NfUE9MSUNZOgorCQljYXNlIE9DTEFTU19Q Uk9QR1JBUEhfRUxFTUVOVDoKKwkJY2FzZSBPQ0xBU1NfUFJPUEdSQVBIX0xBQkVMOgorCQlj YXNlIE9DTEFTU19QUk9QR1JBUEhfUFJPUEVSVFk6CiAJCWNhc2UgT0NMQVNTX1BVQkxJQ0FU SU9OOgogCQljYXNlIE9DTEFTU19QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNhc2UgT0NM QVNTX1BVQkxJQ0FUSU9OX1JFTDoKQEAgLTIyNjYsNiArMjI3MCw3IEBAIHN0cmluZ2lmeV9n cmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfT1BFUkFU T1I6CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgogCQljYXNlIE9CSkVDVF9QT0xJQ1k6CisJ CWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJ CWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfUFVC TElDQVRJT05fUkVMOgpAQCAtMjM1MCw2ICsyMzU1LDcgQEAgc3RyaW5naWZ5X2FkZWZwcml2 c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6 CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCWNhc2UgT0JKRUNUX1BPTElDWToK KwkJY2FzZSBPQkpFQ1RfUFJPUEdSQVBIOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoK IAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQljYXNlIE9CSkVDVF9Q VUJMSUNBVElPTl9SRUw6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNv bi5idWlsZCBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IDZkZDAw YTRhYmRlLi4zNGRkMTJkN2Q1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv bWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKQEAg LTM0LDYgKzM0LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncG9ydGFsY21k cy5jJywKICAgJ3ByZXBhcmUuYycsCiAgICdwcm9jbGFuZy5jJywKKyAgJ3Byb3BncmFwaGNt ZHMuYycsCiAgICdwdWJsaWNhdGlvbmNtZHMuYycsCiAgICdzY2hlbWFjbWRzLmMnLAogICAn c2VjbGFiZWwuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3Jh cGhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI1OTQ4ODYxMzQzCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJvcGdyYXBoY21kcy5jCkBAIC0w LDAgKzEsMTAwMSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcHJvcGdyYXBo Y21kcy5jCisgKgkgIHByb3BlcnR5IGdyYXBoIG1hbmlwdWxhdGlvbgorICoKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9m IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvYmFja2VuZC9jb21t YW5kcy9wcm9wZ3JhcGhjbWRzLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwor I2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNp bmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxl LmgiCisjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFs b2cuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudC5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvcGdyYXBoX2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhf cHJvcGVydHkuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCisjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNz LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCisjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3RhcmdldC5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCisjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgorI2lu Y2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKworc3RydWN0IGVsZW1lbnRfaW5mbworewor CU9pZAkJCWVsZW1lbnRpZDsKKwljaGFyCQlraW5kOworCU9pZAkJCXJlbGlkOworCWNoYXIJ ICAgKmFsaWFzbmFtZTsKKwlBcnJheVR5cGUgICprZXk7CisKKwljaGFyCSAgICpzcmN2ZXJ0 ZXg7CisJT2lkCQkJc3JjdmVydGV4aWQ7CisJQXJyYXlUeXBlICAqc3Jja2V5OworCUFycmF5 VHlwZSAgKnNyY3JlZjsKKworCWNoYXIJICAgKmRlc3R2ZXJ0ZXg7CisJT2lkCQkJZGVzdHZl cnRleGlkOworCUFycmF5VHlwZSAgKmRlc3RrZXk7CisJQXJyYXlUeXBlICAqZGVzdHJlZjsK KworCUxpc3QJICAgKmxhYmVsczsKK307CisKKworc3RhdGljIEFycmF5VHlwZSAqcHJvcGdy YXBoX2VsZW1lbnRfZ2V0X2tleShQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IExpc3QgKmtl eV9jbGF1c2UsIGludCBsb2NhdGlvbiwgUmVsYXRpb24gZWxlbWVudF9yZWwpOworc3RhdGlj IEFycmF5VHlwZSAqYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChQYXJzZVN0YXRlICpwc3RhdGUs IGNvbnN0IExpc3QgKmNvbG5hbWVzLCBpbnQgbG9jYXRpb24sIFJlbGF0aW9uIGVsZW1lbnRf cmVsKTsKK3N0YXRpYyB2b2lkIGluc2VydF9lbGVtZW50X3JlY29yZChPYmplY3RBZGRyZXNz IHBnYWRkcmVzcywgc3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm8pOworc3RhdGljIE9pZAlp bnNlcnRfbGFiZWxfcmVjb3JkKE9pZCBncmFwaGlkLCBPaWQgcGVvaWQsIGNvbnN0IGNoYXIg KmxhYmVsKTsKK3N0YXRpYyB2b2lkIGluc2VydF9wcm9wZXJ0eV9yZWNvcmRzKE9pZCBncmFw aGlkLCBPaWQgbGFiZWxvaWQsIE9pZCBwZ2VyZWxpZCwgY29uc3QgUHJvcEdyYXBoUHJvcGVy dGllcyAqcHJvcGVydGllcyk7CitzdGF0aWMgdm9pZCBpbnNlcnRfcHJvcGVydHlfcmVjb3Jk KE9pZCBncmFwaGlkLCBPaWQgbGFiZWxvaWQsIGNvbnN0IGNoYXIgKnByb3BuYW1lLCBjb25z dCBFeHByICpleHByKTsKK3N0YXRpYyBPaWQJZ2V0X3ZlcnRleF9vaWQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBPaWQgcGdyZWxpZCwgY29uc3QgY2hhciAqYWxpYXMsIGludCBsb2NhdGlvbik7 CitzdGF0aWMgT2lkCWdldF9lZGdlX29pZChQYXJzZVN0YXRlICpwc3RhdGUsIE9pZCBwZ3Jl bGlkLCBjb25zdCBjaGFyICphbGlhcywgaW50IGxvY2F0aW9uKTsKK3N0YXRpYyBPaWQJZ2V0 X2VsZW1lbnRfcmVsaWQoT2lkIHBlaWQpOworCisKKy8qCisgKiBDUkVBVEUgUFJPUEVSVFkg R1JBUEgKKyAqLworT2JqZWN0QWRkcmVzcworQ3JlYXRlUHJvcEdyYXBoKFBhcnNlU3RhdGUg KnBzdGF0ZSwgY29uc3QgQ3JlYXRlUHJvcEdyYXBoU3RtdCAqc3RtdCkKK3sKKwlDcmVhdGVT dG10ICpjc3RtdCA9IG1ha2VOb2RlKENyZWF0ZVN0bXQpOworCWNoYXIJCWNvbXBvbmVudHNf cGVyc2lzdGVuY2U7CisJTGlzdENlbGwgICAqbGM7CisJT2JqZWN0QWRkcmVzcyBwZ2FkZHJl c3M7CisJTGlzdAkgICAqdmVydGV4X2luZm9zID0gTklMOworCUxpc3QJICAgKmVkZ2VfaW5m b3MgPSBOSUw7CisJTGlzdAkgICAqZWxlbWVudF9hbGlhc2VzID0gTklMOworCisJaWYgKHN0 bXQtPnBnbmFtZS0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVU5MT0dHRUQp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCSBlcnJtc2coInByb3BlcnR5IGdyYXBocyBjYW5ub3QgYmUgdW5sb2dnZWQgYmVj YXVzZSB0aGV5IGRvIG5vdCBoYXZlIHN0b3JhZ2UiKSkpOworCisJY29tcG9uZW50c19wZXJz aXN0ZW5jZSA9IFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVDsKKworCWZvcmVhY2gobGMsIHN0 bXQtPnZlcnRleF90YWJsZXMpCisJeworCQlQcm9wR3JhcGhWZXJ0ZXggKnZlcnRleCA9IGxm aXJzdF9ub2RlKFByb3BHcmFwaFZlcnRleCwgbGMpOworCQlzdHJ1Y3QgZWxlbWVudF9pbmZv ICp2aW5mbzsKKwkJUmVsYXRpb24JcmVsOworCisJCXZpbmZvID0gcGFsbG9jMF9vYmplY3Qo c3RydWN0IGVsZW1lbnRfaW5mbyk7CisJCXZpbmZvLT5raW5kID0gUEdFS0lORF9WRVJURVg7 CisKKwkJdmluZm8tPnJlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHZlcnRleC0+ dnRhYmxlLCBBY2Nlc3NTaGFyZUxvY2ssIDAsIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRp b24sIE5VTEwpOworCisJCXJlbCA9IHRhYmxlX29wZW4odmluZm8tPnJlbGlkLCBOb0xvY2sp OworCisJCWlmIChyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVO Q0VfVEVNUCkKKwkJCWNvbXBvbmVudHNfcGVyc2lzdGVuY2UgPSBSRUxQRVJTSVNURU5DRV9U RU1QOworCisJCWlmICh2ZXJ0ZXgtPnZ0YWJsZS0+YWxpYXMpCisJCQl2aW5mby0+YWxpYXNu YW1lID0gdmVydGV4LT52dGFibGUtPmFsaWFzLT5hbGlhc25hbWU7CisJCWVsc2UKKwkJCXZp bmZvLT5hbGlhc25hbWUgPSB2ZXJ0ZXgtPnZ0YWJsZS0+cmVsbmFtZTsKKworCQlpZiAobGlz dF9tZW1iZXIoZWxlbWVudF9hbGlhc2VzLCBtYWtlU3RyaW5nKHZpbmZvLT5hbGlhc25hbWUp KSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X1RBQkxFKSwKKwkJCQkJIGVycm1zZygiYWxpYXMgXCIlc1wiIHVzZWQgbW9yZSB0aGFuIG9u Y2UgYXMgZWxlbWVudCB0YWJsZSIsIHZpbmZvLT5hbGlhc25hbWUpLAorCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgdmVydGV4LT5sb2NhdGlvbikpKTsKKworCQl2aW5mby0+ a2V5ID0gcHJvcGdyYXBoX2VsZW1lbnRfZ2V0X2tleShwc3RhdGUsIHZlcnRleC0+dmtleSwg dmVydGV4LT5sb2NhdGlvbiwgcmVsKTsKKworCQl2aW5mby0+bGFiZWxzID0gdmVydGV4LT5s YWJlbHM7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJCXZlcnRleF9pbmZv cyA9IGxhcHBlbmQodmVydGV4X2luZm9zLCB2aW5mbyk7CisKKwkJZWxlbWVudF9hbGlhc2Vz ID0gbGFwcGVuZChlbGVtZW50X2FsaWFzZXMsIG1ha2VTdHJpbmcodmluZm8tPmFsaWFzbmFt ZSkpOworCX0KKworCWZvcmVhY2gobGMsIHN0bXQtPmVkZ2VfdGFibGVzKQorCXsKKwkJUHJv cEdyYXBoRWRnZSAqZWRnZSA9IGxmaXJzdF9ub2RlKFByb3BHcmFwaEVkZ2UsIGxjKTsKKwkJ c3RydWN0IGVsZW1lbnRfaW5mbyAqZWluZm87CisJCVJlbGF0aW9uCXJlbDsKKwkJTGlzdENl bGwgICAqbGMyOworCQlPaWQJCQlzcmNyZWxpZDsKKwkJT2lkCQkJZGVzdHJlbGlkOworCQlS ZWxhdGlvbglzcmNyZWw7CisJCVJlbGF0aW9uCWRlc3RyZWw7CisKKwkJZWluZm8gPSBwYWxs b2MwX29iamVjdChzdHJ1Y3QgZWxlbWVudF9pbmZvKTsKKwkJZWluZm8tPmtpbmQgPSBQR0VL SU5EX0VER0U7CisKKwkJZWluZm8tPnJlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVk KGVkZ2UtPmV0YWJsZSwgQWNjZXNzU2hhcmVMb2NrLCAwLCBSYW5nZVZhckNhbGxiYWNrT3du c1JlbGF0aW9uLCBOVUxMKTsKKworCQlyZWwgPSB0YWJsZV9vcGVuKGVpbmZvLT5yZWxpZCwg Tm9Mb2NrKTsKKworCQlpZiAocmVsLT5yZF9yZWwtPnJlbHBlcnNpc3RlbmNlID09IFJFTFBF UlNJU1RFTkNFX1RFTVApCisJCQljb21wb25lbnRzX3BlcnNpc3RlbmNlID0gUkVMUEVSU0lT VEVOQ0VfVEVNUDsKKworCQlpZiAoZWRnZS0+ZXRhYmxlLT5hbGlhcykKKwkJCWVpbmZvLT5h bGlhc25hbWUgPSBlZGdlLT5ldGFibGUtPmFsaWFzLT5hbGlhc25hbWU7CisJCWVsc2UKKwkJ CWVpbmZvLT5hbGlhc25hbWUgPSBlZGdlLT5ldGFibGUtPnJlbG5hbWU7CisKKwkJaWYgKGxp c3RfbWVtYmVyKGVsZW1lbnRfYWxpYXNlcywgbWFrZVN0cmluZyhlaW5mby0+YWxpYXNuYW1l KSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FU RV9UQUJMRSksCisJCQkJCSBlcnJtc2coImFsaWFzIFwiJXNcIiB1c2VkIG1vcmUgdGhhbiBv bmNlIGFzIGVsZW1lbnQgdGFibGUiLCBlaW5mby0+YWxpYXNuYW1lKSwKKwkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGVkZ2UtPmxvY2F0aW9uKSkpOworCisJCWVpbmZvLT5r ZXkgPSBwcm9wZ3JhcGhfZWxlbWVudF9nZXRfa2V5KHBzdGF0ZSwgZWRnZS0+ZWtleSwgZWRn ZS0+bG9jYXRpb24sIHJlbCk7CisKKwkJZWluZm8tPnNyY3ZlcnRleCA9IGVkZ2UtPmVzcmN2 ZXJ0ZXg7CisJCWVpbmZvLT5kZXN0dmVydGV4ID0gZWRnZS0+ZWRlc3R2ZXJ0ZXg7CisKKwkJ c3JjcmVsaWQgPSAwOworCQlkZXN0cmVsaWQgPSAwOworCQlmb3JlYWNoKGxjMiwgdmVydGV4 X2luZm9zKQorCQl7CisJCQlzdHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbyA9IGxmaXJzdChs YzIpOworCisJCQlpZiAoc3RyY21wKHZpbmZvLT5hbGlhc25hbWUsIGVkZ2UtPmVzcmN2ZXJ0 ZXgpID09IDApCisJCQkJc3JjcmVsaWQgPSB2aW5mby0+cmVsaWQ7CisKKwkJCWlmIChzdHJj bXAodmluZm8tPmFsaWFzbmFtZSwgZWRnZS0+ZWRlc3R2ZXJ0ZXgpID09IDApCisJCQkJZGVz dHJlbGlkID0gdmluZm8tPnJlbGlkOworCisJCQlpZiAoc3JjcmVsaWQgJiYgZGVzdHJlbGlk KQorCQkJCWJyZWFrOworCQl9CisJCWlmICghc3JjcmVsaWQpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAor CQkJCQkgZXJybXNnKCJzb3VyY2UgdmVydGV4IFwiJXNcIiBvZiBlZGdlIFwiJXNcIiBkb2Vz IG5vdCBleGlzdCIsCisJCQkJCQkJZWRnZS0+ZXNyY3ZlcnRleCwgZWluZm8tPmFsaWFzbmFt ZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBlZGdlLT5sb2NhdGlvbikp KTsKKwkJaWYgKCFkZXN0cmVsaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJk ZXN0aW5hdGlvbiB2ZXJ0ZXggXCIlc1wiIG9mIGVkZ2UgXCIlc1wiIGRvZXMgbm90IGV4aXN0 IiwKKwkJCQkJCQllZGdlLT5lZGVzdHZlcnRleCwgZWluZm8tPmFsaWFzbmFtZSksCisJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBlZGdlLT5sb2NhdGlvbikpKTsKKworCQlp ZiAoIWVkZ2UtPmVzcmNrZXkgfHwgIWVkZ2UtPmVzcmN2ZXJ0ZXhjb2xzIHx8ICFlZGdlLT5l ZGVzdGtleSB8fCAhZWRnZS0+ZWRlc3R2ZXJ0ZXhjb2xzKQorCQkJZWxvZyhFUlJPUiwgIlRP RE8gZm9yZWlnbiBrZXkgc3VwcG9ydCIpOworCisJCXNyY3JlbCA9IHRhYmxlX29wZW4oc3Jj cmVsaWQsIE5vTG9jayk7CisJCWRlc3RyZWwgPSB0YWJsZV9vcGVuKGRlc3RyZWxpZCwgTm9M b2NrKTsKKworCQlpZiAobGlzdF9sZW5ndGgoZWRnZS0+ZXNyY2tleSkgIT0gbGlzdF9sZW5n dGgoZWRnZS0+ZXNyY3ZlcnRleGNvbHMpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJIGVycm1z ZygibWlzbWF0Y2hpbmcgbnVtYmVyIG9mIGNvbHVtbnMgaW4gc291cmNlIHZlcnRleCBkZWZp bml0aW9uIG9mIGVkZ2UgXCIlc1wiIiwKKwkJCQkJCQllaW5mby0+YWxpYXNuYW1lKSwKKwkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVkZ2UtPmxvY2F0aW9uKSkpOworCisJ CWlmIChsaXN0X2xlbmd0aChlZGdlLT5lZGVzdGtleSkgIT0gbGlzdF9sZW5ndGgoZWRnZS0+ ZWRlc3R2ZXJ0ZXhjb2xzKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCSBlcnJtc2coIm1pc21h dGNoaW5nIG51bWJlciBvZiBjb2x1bW5zIGluIGRlc3RpbmF0aW9uIHZlcnRleCBkZWZpbml0 aW9uIG9mIGVkZ2UgXCIlc1wiIiwKKwkJCQkJCQllaW5mby0+YWxpYXNuYW1lKSwKKwkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGVkZ2UtPmxvY2F0aW9uKSkpOworCisJCWVp bmZvLT5zcmNrZXkgPSBhcnJheV9mcm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwgZWRnZS0+ZXNy Y2tleSwgZWRnZS0+bG9jYXRpb24sIHJlbCk7CisJCWVpbmZvLT5zcmNyZWYgPSBhcnJheV9m cm9tX2NvbHVtbl9saXN0KHBzdGF0ZSwgZWRnZS0+ZXNyY3ZlcnRleGNvbHMsIGVkZ2UtPmxv Y2F0aW9uLCBzcmNyZWwpOworCQllaW5mby0+ZGVzdGtleSA9IGFycmF5X2Zyb21fY29sdW1u X2xpc3QocHN0YXRlLCBlZGdlLT5lZGVzdGtleSwgZWRnZS0+bG9jYXRpb24sIHJlbCk7CisJ CWVpbmZvLT5kZXN0cmVmID0gYXJyYXlfZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGVkZ2Ut PmVkZXN0dmVydGV4Y29scywgZWRnZS0+bG9jYXRpb24sIGRlc3RyZWwpOworCisJCS8qIFRP RE86IHZhcmlvdXMgY29uc2lzdGVuY3kgY2hlY2tzICovCisKKwkJZWluZm8tPmxhYmVscyA9 IGVkZ2UtPmxhYmVsczsKKworCQl0YWJsZV9jbG9zZShkZXN0cmVsLCBOb0xvY2spOworCQl0 YWJsZV9jbG9zZShzcmNyZWwsIE5vTG9jayk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBOb0xv Y2spOworCisJCWVkZ2VfaW5mb3MgPSBsYXBwZW5kKGVkZ2VfaW5mb3MsIGVpbmZvKTsKKwor CQllbGVtZW50X2FsaWFzZXMgPSBsYXBwZW5kKGVsZW1lbnRfYWxpYXNlcywgbWFrZVN0cmlu ZyhlaW5mby0+YWxpYXNuYW1lKSk7CisJfQorCisJY3N0bXQtPnJlbGF0aW9uID0gc3RtdC0+ cGduYW1lOworCWNzdG10LT5vbmNvbW1pdCA9IE9OQ09NTUlUX05PT1A7CisKKwkvKgorCSAq IEF1dG9tYXRpY2FsbHkgbWFrZSBpdCB0ZW1wb3JhcnkgaWYgYW55IGNvbXBvbmVudCB0YWJs ZXMgYXJlIHRlbXBvcmFyeQorCSAqIChzZWUgYWxzbyBEZWZpbmVWaWV3KCkpLgorCSAqLwor CWlmIChzdG10LT5wZ25hbWUtPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1BF Uk1BTkVOVAorCQkmJiBjb21wb25lbnRzX3BlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RFTkNF X1RFTVApCisJeworCQljc3RtdC0+cmVsYXRpb24gPSBjb3B5T2JqZWN0KGNzdG10LT5yZWxh dGlvbik7CisJCWNzdG10LT5yZWxhdGlvbi0+cmVscGVyc2lzdGVuY2UgPSBSRUxQRVJTSVNU RU5DRV9URU1QOworCQllcmVwb3J0KE5PVElDRSwKKwkJCQkoZXJybXNnKCJwcm9wZXJ0eSBn cmFwaCBcIiVzXCIgd2lsbCBiZSB0ZW1wb3JhcnkiLAorCQkJCQkJc3RtdC0+cGduYW1lLT5y ZWxuYW1lKSkpOworCX0KKworCXBnYWRkcmVzcyA9IERlZmluZVJlbGF0aW9uKGNzdG10LCBS RUxLSU5EX1BST1BHUkFQSCwgSW52YWxpZE9pZCwgTlVMTCwgTlVMTCk7CisKKwlmb3JlYWNo KGxjLCB2ZXJ0ZXhfaW5mb3MpCisJeworCQlzdHJ1Y3QgZWxlbWVudF9pbmZvICp2aW5mbyA9 IGxmaXJzdChsYyk7CisKKwkJaW5zZXJ0X2VsZW1lbnRfcmVjb3JkKHBnYWRkcmVzcywgdmlu Zm8pOworCX0KKworCWZvcmVhY2gobGMsIGVkZ2VfaW5mb3MpCisJeworCQlzdHJ1Y3QgZWxl bWVudF9pbmZvICplaW5mbyA9IGxmaXJzdChsYyk7CisJCUxpc3RDZWxsICAgKmxjMjsKKwor CQkvKgorCQkgKiBMb29rIHVwIHRoZSB2ZXJ0aWNlcyBhZ2Fpbi4gIE5vdyB0aGUgdmVydGlj ZXMgaGF2ZSBPSURzIGFzc2lnbmVkLAorCQkgKiB3aGljaCB3ZSBuZWVkLgorCQkgKi8KKwkJ Zm9yZWFjaChsYzIsIHZlcnRleF9pbmZvcykKKwkJeworCQkJc3RydWN0IGVsZW1lbnRfaW5m byAqdmluZm8gPSBsZmlyc3QobGMyKTsKKworCQkJaWYgKHN0cmNtcCh2aW5mby0+YWxpYXNu YW1lLCBlaW5mby0+c3JjdmVydGV4KSA9PSAwKQorCQkJCWVpbmZvLT5zcmN2ZXJ0ZXhpZCA9 IHZpbmZvLT5lbGVtZW50aWQ7CisJCQlpZiAoc3RyY21wKHZpbmZvLT5hbGlhc25hbWUsIGVp bmZvLT5kZXN0dmVydGV4KSA9PSAwKQorCQkJCWVpbmZvLT5kZXN0dmVydGV4aWQgPSB2aW5m by0+ZWxlbWVudGlkOworCQkJaWYgKGVpbmZvLT5zcmN2ZXJ0ZXhpZCAmJiBlaW5mby0+ZGVz dHZlcnRleGlkKQorCQkJCWJyZWFrOworCQl9CisJCUFzc2VydChlaW5mby0+c3JjdmVydGV4 aWQpOworCQlBc3NlcnQoZWluZm8tPmRlc3R2ZXJ0ZXhpZCk7CisJCWluc2VydF9lbGVtZW50 X3JlY29yZChwZ2FkZHJlc3MsIGVpbmZvKTsKKwl9CisKKwlyZXR1cm4gcGdhZGRyZXNzOwor fQorCisvKgorICogUHJvY2VzcyB0aGUga2V5IGNsYXVzZSBzcGVjaWZpZWQgZm9yIGFuIGVs ZW1lbnQuICBJZiBrZXlfY2xhdXNlIGlzIG5vbi1OSUwsCisgKiB0aGVuIGl0IGlzIGEgbGlz dCBvZiBjb2x1bW4gbmFtZXMuICBPdGhlcndpc2UsIHRoZSBwcmltYXJ5IGtleSBvZiB0aGUK KyAqIHJlbGF0aW9uIGlzIHVzZWQuICBUaGUgcmV0dXJuIHZhbHVlIGlzIGFuIGFycmF5IG9m IGNvbHVtbiBudW1iZXJzLgorICovCitzdGF0aWMgQXJyYXlUeXBlICoKK3Byb3BncmFwaF9l bGVtZW50X2dldF9rZXkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICprZXlfY2xh dXNlLCBpbnQgbG9jYXRpb24sIFJlbGF0aW9uIGVsZW1lbnRfcmVsKQoreworCUFycmF5VHlw ZSAgKmE7CisKKwlpZiAoa2V5X2NsYXVzZSA9PSBOSUwpCisJeworCQlPaWQJCQlwa2lkeCA9 IFJlbGF0aW9uR2V0UHJpbWFyeUtleUluZGV4KGVsZW1lbnRfcmVsKTsKKworCQlpZiAoIXBr aWR4KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJIGVycm1zZygiZWxlbWVudCB0YWJsZSBrZXkg bXVzdCBiZSBzcGVjaWZpZWQgZm9yIHRhYmxlIHdpdGhvdXQgcHJpbWFyeSBrZXkiKSwKKwkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCQllbHNlCisJ CXsKKwkJCVJlbGF0aW9uCWluZGV4RGVzYzsKKwkJCWludAkJCW51bWF0dHJzOworCQkJRGF0 dW0JICAgKmF0dG51bXNkOworCisJCQlpbmRleERlc2MgPSBpbmRleF9vcGVuKHBraWR4LCBB Y2Nlc3NTaGFyZUxvY2spOworCQkJbnVtYXR0cnMgPSBpbmRleERlc2MtPnJkX2luZGV4LT5p bmRrZXkuZGltMTsKKwkJCWF0dG51bXNkID0gcGFsbG9jX2FycmF5KERhdHVtLCBudW1hdHRy cyk7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IG51bWF0dHJzOyBpKyspCisJCQkJYXR0bnVt c2RbaV0gPSBJbnQxNkdldERhdHVtKGluZGV4RGVzYy0+cmRfaW5kZXgtPmluZGtleS52YWx1 ZXNbaV0pOworCQkJYSA9IGNvbnN0cnVjdF9hcnJheV9idWlsdGluKGF0dG51bXNkLCBudW1h dHRycywgSU5UMk9JRCk7CisJCQlpbmRleF9jbG9zZShpbmRleERlc2MsIE5vTG9jayk7CisJ CX0KKwl9CisJZWxzZQorCXsKKwkJYSA9IGFycmF5X2Zyb21fY29sdW1uX2xpc3QocHN0YXRl LCBrZXlfY2xhdXNlLCBsb2NhdGlvbiwgZWxlbWVudF9yZWwpOworCX0KKworCXJldHVybiBh OworfQorCisvKgorICogQ29udmVydCBsaXN0IG9mIGNvbHVtbiBuYW1lcyBpbiB0aGUgc3Bl Y2lmaWVkIHJlbGF0aW9uIGludG8gYW4gYXJyYXkgb2YKKyAqIGNvbHVtbiBudW1iZXJzLgor ICovCitzdGF0aWMgQXJyYXlUeXBlICoKK2FycmF5X2Zyb21fY29sdW1uX2xpc3QoUGFyc2VT dGF0ZSAqcHN0YXRlLCBjb25zdCBMaXN0ICpjb2xuYW1lcywgaW50IGxvY2F0aW9uLCBSZWxh dGlvbiBlbGVtZW50X3JlbCkKK3sKKwlpbnQJCQludW1hdHRyczsKKwlEYXR1bQkgICAqYXR0 bnVtc2Q7CisJaW50CQkJaTsKKwlMaXN0Q2VsbCAgICpsYzsKKworCW51bWF0dHJzID0gbGlz dF9sZW5ndGgoY29sbmFtZXMpOworCWF0dG51bXNkID0gcGFsbG9jX2FycmF5KERhdHVtLCBu dW1hdHRycyk7CisKKwlpID0gMDsKKwlmb3JlYWNoKGxjLCBjb2xuYW1lcykKKwl7CisJCWNo YXIJICAgKmNvbG5hbWUgPSBzdHJWYWwobGZpcnN0KGxjKSk7CisJCU9pZAkJCXJlbGlkID0g UmVsYXRpb25HZXRSZWxpZChlbGVtZW50X3JlbCk7CisJCUF0dHJOdW1iZXIJYXR0bnVtOwor CisJCWF0dG51bSA9IGdldF9hdHRudW0ocmVsaWQsIGNvbG5hbWUpOworCQlpZiAoIWF0dG51 bSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVE X0NPTFVNTiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQljb2xuYW1lLCBnZXRfcmVsX25hbWUocmVs aWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwor CQlhdHRudW1zZFtpKytdID0gSW50MTZHZXREYXR1bShhdHRudW0pOworCX0KKworCWZvciAo aW50IGogPSAwOyBqIDwgbnVtYXR0cnM7IGorKykKKwl7CisJCWZvciAoaW50IGsgPSBqICsg MTsgayA8IG51bWF0dHJzOyBrKyspCisJCXsKKwkJCWlmIChEYXR1bUdldEludDE2KGF0dG51 bXNkW2pdKSA9PSBEYXR1bUdldEludDE2KGF0dG51bXNkW2tdKSkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9O KSwKKwkJCQkJCSBlcnJtc2coImdyYXBoIGtleSBjb2x1bW5zIGxpc3QgbXVzdCBub3QgY29u dGFpbiBkdXBsaWNhdGVzIiksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg bG9jYXRpb24pKSk7CisJCX0KKwl9CisKKwlyZXR1cm4gY29uc3RydWN0X2FycmF5X2J1aWx0 aW4oYXR0bnVtc2QsIG51bWF0dHJzLCBJTlQyT0lEKTsKK30KKworLyoKKyAqIEluc2VydCBh IHJlY29yZCBmb3IgYW4gZWxlbWVudCBpbnRvIHRoZSBwZ19wcm9wZ3JhcGhfZWxlbWVudCBj YXRhbG9nLiAgQWxzbworICogaW5zZXJ0cyBsYWJlbHMgYW5kIHByb3BlcnRpZXMgaW50byB0 aGVpciByZXNwZWN0aXZlIGNhdGFsb2dzLgorICovCitzdGF0aWMgdm9pZAoraW5zZXJ0X2Vs ZW1lbnRfcmVjb3JkKE9iamVjdEFkZHJlc3MgcGdhZGRyZXNzLCBzdHJ1Y3QgZWxlbWVudF9p bmZvICplaW5mbykKK3sKKwlPaWQJCQlncmFwaGlkID0gcGdhZGRyZXNzLm9iamVjdElkOwor CVJlbGF0aW9uCXJlbDsKKwlOYW1lRGF0YQlhbGlhc25hbWU7CisJT2lkCQkJcGVvaWQ7CisJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wcm9wZ3JhcGhfZWxlbWVudF0gPSB7MH07CisJYm9v bAkJbnVsbHNbTmF0dHNfcGdfcHJvcGdyYXBoX2VsZW1lbnRdID0gezB9OworCUhlYXBUdXBs ZQl0dXA7CisJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2JqZWN0QWRkcmVzcyByZWZlcmVu Y2VkOworCisJcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwg Um93RXhjbHVzaXZlTG9jayk7CisKKwlwZW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWws IFByb3BncmFwaEVsZW1lbnRPYmplY3RJbmRleElkLCBBbnVtX3BnX3Byb3BncmFwaF9lbGVt ZW50X29pZCk7CisJZWluZm8tPmVsZW1lbnRpZCA9IHBlb2lkOworCXZhbHVlc1tBbnVtX3Bn X3Byb3BncmFwaF9lbGVtZW50X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwZW9pZCk7 CisJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlcGdpZCAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bShncmFwaGlkKTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxl bWVudF9wZ2VyZWxpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShlaW5mby0+cmVsaWQpOwor CW5hbWVzdHJjcHkoJmFsaWFzbmFtZSwgZWluZm8tPmFsaWFzbmFtZSk7CisJdmFsdWVzW0Fu dW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlYWxpYXMgLSAxXSA9IE5hbWVHZXREYXR1bSgm YWxpYXNuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VraW5k IC0gMV0gPSBDaGFyR2V0RGF0dW0oZWluZm8tPmtpbmQpOworCXZhbHVlc1tBbnVtX3BnX3By b3BncmFwaF9lbGVtZW50X3BnZXNyY3ZlcnRleGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KGVpbmZvLT5zcmN2ZXJ0ZXhpZCk7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1l bnRfcGdlZGVzdHZlcnRleGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGVpbmZvLT5kZXN0 dmVydGV4aWQpOworCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZWtleSAt IDFdID0gUG9pbnRlckdldERhdHVtKGVpbmZvLT5rZXkpOworCisJaWYgKGVpbmZvLT5zcmNr ZXkpCisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY2tleSAtIDFd ID0gUG9pbnRlckdldERhdHVtKGVpbmZvLT5zcmNrZXkpOworCWVsc2UKKwkJbnVsbHNbQW51 bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNrZXkgLSAxXSA9IHRydWU7CisJaWYgKGVp bmZvLT5zcmNyZWYpCisJCXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNy Y3JlZiAtIDFdID0gUG9pbnRlckdldERhdHVtKGVpbmZvLT5zcmNyZWYpOworCWVsc2UKKwkJ bnVsbHNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYgLSAxXSA9IHRydWU7 CisJaWYgKGVpbmZvLT5kZXN0a2V5KQorCQl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfZWxl bWVudF9wZ2VkZXN0a2V5IC0gMV0gPSBQb2ludGVyR2V0RGF0dW0oZWluZm8tPmRlc3RrZXkp OworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0a2V5 IC0gMV0gPSB0cnVlOworCWlmIChlaW5mby0+ZGVzdHJlZikKKwkJdmFsdWVzW0FudW1fcGdf cHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiAtIDFdID0gUG9pbnRlckdldERhdHVtKGVp bmZvLT5kZXN0cmVmKTsKKwllbHNlCisJCW51bGxzW0FudW1fcGdfcHJvcGdyYXBoX2VsZW1l bnRfcGdlZGVzdHJlZiAtIDFdID0gdHJ1ZTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShS ZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUlu c2VydChyZWwsIHR1cCk7CisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCU9iamVjdEFkZHJl c3NTZXQobXlzZWxmLCBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgcGVvaWQpOworCisJ LyogQWRkIGRlcGVuZGVuY3kgb24gdGhlIHByb3BlcnR5IGdyYXBoICovCisJcmVjb3JkRGVw ZW5kZW5jeU9uKCZteXNlbGYsICZwZ2FkZHJlc3MsIERFUEVOREVOQ1lfQVVUTyk7CisKKwkv KiBBZGQgZGVwZW5kZW5jeSBvbiB0aGUgcmVsYXRpb24gKi8KKwlPYmplY3RBZGRyZXNzU2V0 KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVsYXRpb25JZCwgZWluZm8tPnJlbGlkKTsKKwlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFM KTsKKworCS8qIEFkZCBkZXBlbmRlbmNpZXMgb24gdmVydGljZXMgKi8KKwkvKiBUT0RPOiBj b2x1bW5zICovCisJaWYgKGVpbmZvLT5zcmN2ZXJ0ZXhpZCkKKwl7CisJCU9iamVjdEFkZHJl c3NTZXQocmVmZXJlbmNlZCwgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9uSWQsIGVpbmZvLT5z cmN2ZXJ0ZXhpZCk7CisJCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNl ZCwgREVQRU5ERU5DWV9OT1JNQUwpOworCX0KKwlpZiAoZWluZm8tPmRlc3R2ZXJ0ZXhpZCkK Kwl7CisJCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUHJvcGdyYXBoRWxlbWVudFJl bGF0aW9uSWQsIGVpbmZvLT5kZXN0dmVydGV4aWQpOworCQlyZWNvcmREZXBlbmRlbmN5T24o Jm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFMKTsKKwl9CisKKwl0YWJs ZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlpZiAoZWluZm8tPmxhYmVscykKKwl7CisJCUxp c3RDZWxsICAgKmxjOworCisJCWZvcmVhY2gobGMsIGVpbmZvLT5sYWJlbHMpCisJCXsKKwkJ CVByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBsZmlyc3Rfbm9kZShQcm9wR3Jh cGhMYWJlbEFuZFByb3BlcnRpZXMsIGxjKTsKKwkJCU9pZAkJCWxhYmVsb2lkOworCisJCQlp ZiAobHAtPmxhYmVsKQorCQkJCWxhYmVsb2lkID0gaW5zZXJ0X2xhYmVsX3JlY29yZChncmFw aGlkLCBwZW9pZCwgbHAtPmxhYmVsKTsKKwkJCWVsc2UKKwkJCQlsYWJlbG9pZCA9IGluc2Vy dF9sYWJlbF9yZWNvcmQoZ3JhcGhpZCwgcGVvaWQsIGVpbmZvLT5hbGlhc25hbWUpOworCQkJ aW5zZXJ0X3Byb3BlcnR5X3JlY29yZHMoZ3JhcGhpZCwgbGFiZWxvaWQsIGVpbmZvLT5yZWxp ZCwgbHAtPnByb3BlcnRpZXMpOworCQl9CisJfQorCWVsc2UKKwl7CisJCU9pZAkJCWxhYmVs b2lkOworCQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpwciA9IG1ha2VOb2RlKFByb3BHcmFwaFBy b3BlcnRpZXMpOworCisJCXByLT5hbGwgPSB0cnVlOworCQlwci0+bG9jYXRpb24gPSAtMTsK KworCQlsYWJlbG9pZCA9IGluc2VydF9sYWJlbF9yZWNvcmQoZ3JhcGhpZCwgcGVvaWQsIGVp bmZvLT5hbGlhc25hbWUpOworCQlpbnNlcnRfcHJvcGVydHlfcmVjb3JkcyhncmFwaGlkLCBs YWJlbG9pZCwgZWluZm8tPnJlbGlkLCBwcik7CisJfQorfQorCisvKgorICogSW5zZXJ0IGEg cmVjb3JkIGZvciBhIGxhYmVsIGludG8gdGhlIHBnX3Byb3BncmFwaF9sYWJlbCBjYXRhbG9n LgorICovCitzdGF0aWMgT2lkCitpbnNlcnRfbGFiZWxfcmVjb3JkKE9pZCBncmFwaGlkLCBP aWQgcGVvaWQsIGNvbnN0IGNoYXIgKmxhYmVsKQoreworCVJlbGF0aW9uCXJlbDsKKwlOYW1l RGF0YQlsYWJlbG5hbWU7CisJT2lkCQkJbGFiZWxvaWQ7CisJRGF0dW0JCXZhbHVlc1tOYXR0 c19wZ19wcm9wZ3JhcGhfbGFiZWxdID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX3By b3BncmFwaF9sYWJlbF0gPSB7MH07CisJSGVhcFR1cGxlCXR1cDsKKwlPYmplY3RBZGRyZXNz IG15c2VsZjsKKwlPYmplY3RBZGRyZXNzIHJlZmVyZW5jZWQ7CisKKwlyZWwgPSB0YWJsZV9v cGVuKFByb3BncmFwaExhYmVsUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwls YWJlbG9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIFByb3BncmFwaExhYmVsT2JqZWN0 SW5kZXhJZCwgQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfb2lkKTsKKwl2YWx1ZXNbQW51bV9w Z19wcm9wZ3JhcGhfbGFiZWxfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGxhYmVsb2lk KTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcGdscGdpZCAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bShncmFwaGlkKTsKKwluYW1lc3RyY3B5KCZsYWJlbG5hbWUsIGxhYmVs KTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcGdsbGFiZWwgLSAxXSA9IE5h bWVHZXREYXR1bSgmbGFiZWxuYW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfbGFi ZWxfcGdsZWxpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwZW9pZCk7CisKKwl0dXAgPSBo ZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsK KwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOworCWhlYXBfZnJlZXR1cGxlKHR1cCk7 CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklk LCBsYWJlbG9pZCk7CisKKwkvKiBBZGQgZGVwZW5kZW5jeSBvbiB0aGUgcHJvcGVydHkgZ3Jh cGggZWxlbWVudCAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUHJvcGdyYXBo RWxlbWVudFJlbGF0aW9uSWQsIHBlb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2Vs ZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfQVVUTyk7CisKKwl0YWJsZV9jbG9zZShyZWws IE5vTG9jayk7CisKKwlyZXR1cm4gbGFiZWxvaWQ7Cit9CisKKy8qCisgKiBJbnNlcnQgcmVj b3JkcyBmb3IgcHJvcGVydGllcyBpbnRvIHRoZSBwZ19wcm9wZ3JhcGhfcHJvcGVydHkgY2F0 YWxvZy4KKyAqLworc3RhdGljIHZvaWQKK2luc2VydF9wcm9wZXJ0eV9yZWNvcmRzKE9pZCBn cmFwaGlkLCBPaWQgbGFiZWxvaWQsIE9pZCBwZ2VyZWxpZCwgY29uc3QgUHJvcEdyYXBoUHJv cGVydGllcyAqcHJvcGVydGllcykKK3sKKwlMaXN0CSAgICpwcm9wbGlzdCA9IE5JTDsKKwlQ YXJzZVN0YXRlICpwc3RhdGU7CisJUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW07CisJTGlz dAkgICAqdHA7CisJUmVsYXRpb24JcmVsOworCUxpc3RDZWxsICAgKmxjOworCisJaWYgKHBy b3BlcnRpZXMtPmFsbCkKKwl7CisJCVJlbGF0aW9uCWF0dFJlbGF0aW9uOworCQlTeXNTY2Fu RGVzYyBzY2FuOworCQlTY2FuS2V5RGF0YSBrZXlbMV07CisJCUhlYXBUdXBsZQlhdHRyaWJ1 dGVUdXBsZTsKKworCQlhdHRSZWxhdGlvbiA9IHRhYmxlX29wZW4oQXR0cmlidXRlUmVsYXRp b25JZCwgUm93U2hhcmVMb2NrKTsKKwkJU2NhbktleUluaXQoJmtleVswXSwKKwkJCQkJQW51 bV9wZ19hdHRyaWJ1dGVfYXR0cmVsaWQsCisJCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwg Rl9PSURFUSwKKwkJCQkJT2JqZWN0SWRHZXREYXR1bShwZ2VyZWxpZCkpOworCQlzY2FuID0g c3lzdGFibGVfYmVnaW5zY2FuKGF0dFJlbGF0aW9uLCBBdHRyaWJ1dGVSZWxpZE51bUluZGV4 SWQsCisJCQkJCQkJCSAgdHJ1ZSwgTlVMTCwgMSwga2V5KTsKKwkJd2hpbGUgKEhlYXBUdXBs ZUlzVmFsaWQoYXR0cmlidXRlVHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwkJ eworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRT VFJVQ1QoYXR0cmlidXRlVHVwbGUpOworCQkJQ29sdW1uUmVmICAqY3I7CisJCQlSZXNUYXJn ZXQgICpydDsKKworCQkJaWYgKGF0dC0+YXR0bnVtIDw9IDAgfHwgYXR0LT5hdHRpc2Ryb3Bw ZWQpCisJCQkJY29udGludWU7CisKKwkJCWNyID0gbWFrZU5vZGUoQ29sdW1uUmVmKTsKKwkJ CXJ0ID0gbWFrZU5vZGUoUmVzVGFyZ2V0KTsKKworCQkJY3ItPmZpZWxkcyA9IGxpc3RfbWFr ZTEobWFrZVN0cmluZyhOYW1lU3RyKGF0dC0+YXR0bmFtZSkpKTsKKwkJCWNyLT5sb2NhdGlv biA9IC0xOworCisJCQlydC0+bmFtZSA9IHBzdHJkdXAoTmFtZVN0cihhdHQtPmF0dG5hbWUp KTsKKwkJCXJ0LT52YWwgPSAoTm9kZSAqKSBjcjsKKwkJCXJ0LT5sb2NhdGlvbiA9IC0xOwor CisJCQlwcm9wbGlzdCA9IGxhcHBlbmQocHJvcGxpc3QsIHJ0KTsKKwkJfQorCQlzeXN0YWJs ZV9lbmRzY2FuKHNjYW4pOworCQl0YWJsZV9jbG9zZShhdHRSZWxhdGlvbiwgUm93U2hhcmVM b2NrKTsKKwl9CisJZWxzZQorCXsKKwkJcHJvcGxpc3QgPSBwcm9wZXJ0aWVzLT5wcm9wZXJ0 aWVzOworCisJCWZvcmVhY2gobGMsIHByb3BsaXN0KQorCQl7CisJCQlSZXNUYXJnZXQgICpy dCA9IGxmaXJzdF9ub2RlKFJlc1RhcmdldCwgbGMpOworCisJCQlpZiAoIXJ0LT5uYW1lICYm ICFJc0EocnQtPnZhbCwgQ29sdW1uUmVmKSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ ZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJtc2coInByb3BlcnR5 IG5hbWUgcmVxdWlyZWQiKSwKKwkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihOVUxMLCBydC0+ bG9jYXRpb24pKTsKKwkJfQorCX0KKworCXJlbCA9IHRhYmxlX29wZW4ocGdlcmVsaWQsIEFj Y2Vzc1NoYXJlTG9jayk7CisKKwlwc3RhdGUgPSBtYWtlX3BhcnNlc3RhdGUoTlVMTCk7CisJ bnNpdGVtID0gYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yUmVsYXRpb24ocHN0YXRlLAorCQkJCQkJ CQkJCSAgIHJlbCwKKwkJCQkJCQkJCQkgICBBY2Nlc3NTaGFyZUxvY2ssCisJCQkJCQkJCQkJ ICAgTlVMTCwKKwkJCQkJCQkJCQkgICBmYWxzZSwKKwkJCQkJCQkJCQkgICB0cnVlKTsKKwlh ZGROU0l0ZW1Ub1F1ZXJ5KHBzdGF0ZSwgbnNpdGVtLCB0cnVlLCB0cnVlLCB0cnVlKTsKKwor CXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKworCXRwID0gdHJhbnNmb3JtVGFyZ2V0TGlz dChwc3RhdGUsIHByb3BsaXN0LCBFWFBSX0tJTkRfT1RIRVIpOworCisJZm9yZWFjaChsYywg dHApCisJeworCQlUYXJnZXRFbnRyeSAqdGUgPSBsZmlyc3Rfbm9kZShUYXJnZXRFbnRyeSwg bGMpOworCisJCWluc2VydF9wcm9wZXJ0eV9yZWNvcmQoZ3JhcGhpZCwgbGFiZWxvaWQsIHRl LT5yZXNuYW1lLCB0ZS0+ZXhwcik7CisJfQorfQorCisvKgorICogSW5zZXJ0IG9uZSByZWNv cmQgZm9yIGEgcHJvcGVydHkgaW50byB0aGUgcGdfcHJvcGdyYXBoX3Byb3BlcnR5IGNhdGFs b2cuCisgKi8KK3N0YXRpYyB2b2lkCitpbnNlcnRfcHJvcGVydHlfcmVjb3JkKE9pZCBncmFw aGlkLCBPaWQgbGFiZWxvaWQsIGNvbnN0IGNoYXIgKnByb3BuYW1lLCBjb25zdCBFeHByICpl eHByKQoreworCVJlbGF0aW9uCXJlbDsKKwlOYW1lRGF0YQlwcm9wbmFtZWRhdGE7CisJT2lk CQkJcHJvcG9pZDsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Byb3BncmFwaF9wcm9wZXJ0 eV0gPSB7MH07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcHJvcGdyYXBoX3Byb3BlcnR5XSA9 IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCU9iamVjdEFkZHJlc3MgbXlzZWxmOworCU9iamVj dEFkZHJlc3MgcmVmZXJlbmNlZDsKKworCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoUHJv cGVydHlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXByb3BvaWQgPSBHZXRO ZXdPaWRXaXRoSW5kZXgocmVsLCBQcm9wZ3JhcGhQcm9wZXJ0eU9iamVjdEluZGV4SWQsIEFu dW1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZCk7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdy YXBoX3Byb3BlcnR5X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShwcm9wb2lkKTsKKwl2 YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdwcGdpZCAtIDFdID0gT2JqZWN0 SWRHZXREYXR1bShncmFwaGlkKTsKKwluYW1lc3RyY3B5KCZwcm9wbmFtZWRhdGEsIHByb3Bu YW1lKTsKKwl2YWx1ZXNbQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdwbmFtZSAtIDFd ID0gTmFtZUdldERhdHVtKCZwcm9wbmFtZWRhdGEpOworCXZhbHVlc1tBbnVtX3BnX3Byb3Bn cmFwaF9wcm9wZXJ0eV9wZ3B0eXBpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShleHByVHlw ZSgoY29uc3QgTm9kZSAqKSBleHByKSk7CisJdmFsdWVzW0FudW1fcGdfcHJvcGdyYXBoX3By b3BlcnR5X3BncGxhYmVsaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0obGFiZWxvaWQpOwor CXZhbHVlc1tBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9wZ3BleHByIC0gMV0gPSBDU3Ry aW5nR2V0VGV4dERhdHVtKG5vZGVUb1N0cmluZyhleHByKSk7CisKKwl0dXAgPSBoZWFwX2Zv cm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRh bG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOworCWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwlP YmplY3RBZGRyZXNzU2V0KG15c2VsZiwgUHJvcGdyYXBoUHJvcGVydHlSZWxhdGlvbklkLCBw cm9wb2lkKTsKKworCS8qIEFkZCBkZXBlbmRlbmN5IG9uIHRoZSBwcm9wZXJ0eSBncmFwaCBs YWJlbCAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgUHJvcGdyYXBoTGFiZWxS ZWxhdGlvbklkLCBsYWJlbG9pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZy ZWZlcmVuY2VkLCBERVBFTkRFTkNZX0FVVE8pOworCisJdGFibGVfY2xvc2UocmVsLCBOb0xv Y2spOworfQorCisvKgorICogQUxURVIgUFJPUEVSVFkgR1JBUEgKKyAqLworT2JqZWN0QWRk cmVzcworQWx0ZXJQcm9wR3JhcGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBBbHRlclBy b3BHcmFwaFN0bXQgKnN0bXQpCit7CisJT2lkCQkJcGdyZWxpZDsKKwlMaXN0Q2VsbCAgICps YzsKKwlPYmplY3RBZGRyZXNzIHBnYWRkcmVzczsKKworCXBncmVsaWQgPSBSYW5nZVZhckdl dFJlbGlkRXh0ZW5kZWQoc3RtdC0+cGduYW1lLAorCQkJCQkJCQkJICAgU2hhcmVSb3dFeGNs dXNpdmVMb2NrLAorCQkJCQkJCQkJICAgc3RtdC0+bWlzc2luZ19vayA/IFJWUl9NSVNTSU5H X09LIDogMCwKKwkJCQkJCQkJCSAgIFJhbmdlVmFyQ2FsbGJhY2tPd25zUmVsYXRpb24sCisJ CQkJCQkJCQkgICBOVUxMKTsKKwlpZiAocGdyZWxpZCA9PSBJbnZhbGlkT2lkKQorCXsKKwkJ ZXJlcG9ydChOT1RJQ0UsCisJCQkJKGVycm1zZygicmVsYXRpb24gXCIlc1wiIGRvZXMgbm90 IGV4aXN0LCBza2lwcGluZyIsCisJCQkJCQlzdG10LT5wZ25hbWUtPnJlbG5hbWUpKSk7CisJ CXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKwl9CisKKwlPYmplY3RBZGRyZXNzU2V0 KHBnYWRkcmVzcywgUmVsYXRpb25SZWxhdGlvbklkLCBwZ3JlbGlkKTsKKworCWZvcmVhY2go bGMsIHN0bXQtPmFkZF92ZXJ0ZXhfdGFibGVzKQorCXsKKwkJUHJvcEdyYXBoVmVydGV4ICp2 ZXJ0ZXggPSBsZmlyc3Rfbm9kZShQcm9wR3JhcGhWZXJ0ZXgsIGxjKTsKKwkJc3RydWN0IGVs ZW1lbnRfaW5mbyAqdmluZm87CisJCVJlbGF0aW9uCXJlbDsKKworCQl2aW5mbyA9IHBhbGxv YzBfb2JqZWN0KHN0cnVjdCBlbGVtZW50X2luZm8pOworCQl2aW5mby0+a2luZCA9IFBHRUtJ TkRfVkVSVEVYOworCisJCXZpbmZvLT5yZWxpZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRl ZCh2ZXJ0ZXgtPnZ0YWJsZSwgQWNjZXNzU2hhcmVMb2NrLCAwLCBSYW5nZVZhckNhbGxiYWNr T3duc1JlbGF0aW9uLCBOVUxMKTsKKworCQlyZWwgPSB0YWJsZV9vcGVuKHZpbmZvLT5yZWxp ZCwgTm9Mb2NrKTsKKworCQlpZiAocmVsLT5yZF9yZWwtPnJlbHBlcnNpc3RlbmNlID09IFJF TFBFUlNJU1RFTkNFX1RFTVApCisJCQllbG9nKEVSUk9SLCAiVE9ETyIpOworCisJCWlmICh2 ZXJ0ZXgtPnZ0YWJsZS0+YWxpYXMpCisJCQl2aW5mby0+YWxpYXNuYW1lID0gdmVydGV4LT52 dGFibGUtPmFsaWFzLT5hbGlhc25hbWU7CisJCWVsc2UKKwkJCXZpbmZvLT5hbGlhc25hbWUg PSB2ZXJ0ZXgtPnZ0YWJsZS0+cmVsbmFtZTsKKworCQl2aW5mby0+a2V5ID0gcHJvcGdyYXBo X2VsZW1lbnRfZ2V0X2tleShwc3RhdGUsIHZlcnRleC0+dmtleSwgdmVydGV4LT5sb2NhdGlv biwgcmVsKTsKKworCQl2aW5mby0+bGFiZWxzID0gdmVydGV4LT5sYWJlbHM7CisKKwkJdGFi bGVfY2xvc2UocmVsLCBOb0xvY2spOworCisJCWluc2VydF9lbGVtZW50X3JlY29yZChwZ2Fk ZHJlc3MsIHZpbmZvKTsKKwl9CisKKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJ Zm9yZWFjaChsYywgc3RtdC0+YWRkX2VkZ2VfdGFibGVzKQorCXsKKwkJUHJvcEdyYXBoRWRn ZSAqZWRnZSA9IGxmaXJzdF9ub2RlKFByb3BHcmFwaEVkZ2UsIGxjKTsKKwkJc3RydWN0IGVs ZW1lbnRfaW5mbyAqZWluZm87CisJCVJlbGF0aW9uCXJlbDsKKwkJT2lkCQkJc3JjcmVsaWQ7 CisJCU9pZAkJCWRlc3RyZWxpZDsKKwkJUmVsYXRpb24Jc3JjcmVsOworCQlSZWxhdGlvbglk ZXN0cmVsOworCisJCWVpbmZvID0gcGFsbG9jMF9vYmplY3Qoc3RydWN0IGVsZW1lbnRfaW5m byk7CisJCWVpbmZvLT5raW5kID0gUEdFS0lORF9FREdFOworCisJCWVpbmZvLT5yZWxpZCA9 IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChlZGdlLT5ldGFibGUsIEFjY2Vzc1NoYXJlTG9j aywgMCwgUmFuZ2VWYXJDYWxsYmFja093bnNSZWxhdGlvbiwgTlVMTCk7CisKKwkJcmVsID0g dGFibGVfb3BlbihlaW5mby0+cmVsaWQsIE5vTG9jayk7CisKKwkJaWYgKHJlbC0+cmRfcmVs LT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQkJZWxvZyhFUlJP UiwgIlRPRE8iKTsKKworCQlpZiAoZWRnZS0+ZXRhYmxlLT5hbGlhcykKKwkJCWVpbmZvLT5h bGlhc25hbWUgPSBlZGdlLT5ldGFibGUtPmFsaWFzLT5hbGlhc25hbWU7CisJCWVsc2UKKwkJ CWVpbmZvLT5hbGlhc25hbWUgPSBlZGdlLT5ldGFibGUtPnJlbG5hbWU7CisKKwkJZWluZm8t PmtleSA9IHByb3BncmFwaF9lbGVtZW50X2dldF9rZXkocHN0YXRlLCBlZGdlLT5la2V5LCBl ZGdlLT5sb2NhdGlvbiwgcmVsKTsKKworCQllaW5mby0+c3JjdmVydGV4aWQgPSBnZXRfdmVy dGV4X29pZChwc3RhdGUsIHBncmVsaWQsIGVkZ2UtPmVzcmN2ZXJ0ZXgsIGVkZ2UtPmxvY2F0 aW9uKTsKKwkJZWluZm8tPmRlc3R2ZXJ0ZXhpZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwg cGdyZWxpZCwgZWRnZS0+ZWRlc3R2ZXJ0ZXgsIGVkZ2UtPmxvY2F0aW9uKTsKKworCQlpZiAo IWVkZ2UtPmVzcmNrZXkgfHwgIWVkZ2UtPmVzcmN2ZXJ0ZXhjb2xzIHx8ICFlZGdlLT5lZGVz dGtleSB8fCAhZWRnZS0+ZWRlc3R2ZXJ0ZXhjb2xzKQorCQkJZWxvZyhFUlJPUiwgIlRPRE8g Zm9yZWlnbiBrZXkgc3VwcG9ydCIpOworCisJCXNyY3JlbGlkID0gZ2V0X2VsZW1lbnRfcmVs aWQoZWluZm8tPnNyY3ZlcnRleGlkKTsKKwkJZGVzdHJlbGlkID0gZ2V0X2VsZW1lbnRfcmVs aWQoZWluZm8tPmRlc3R2ZXJ0ZXhpZCk7CisKKwkJc3JjcmVsID0gdGFibGVfb3BlbihzcmNy ZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJZGVzdHJlbCA9IHRhYmxlX29wZW4oZGVzdHJl bGlkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCWlmIChsaXN0X2xlbmd0aChlZGdlLT5lc3Jj a2V5KSAhPSBsaXN0X2xlbmd0aChlZGdlLT5lc3JjdmVydGV4Y29scykpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJ T04pLAorCQkJCQkgZXJybXNnKCJtaXNtYXRjaGluZyBudW1iZXIgb2YgY29sdW1ucyBpbiBz b3VyY2UgdmVydGV4IGRlZmluaXRpb24gb2YgZWRnZSBcIiVzXCIiLAorCQkJCQkJCWVpbmZv LT5hbGlhc25hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZWRnZS0+ bG9jYXRpb24pKSk7CisKKwkJaWYgKGxpc3RfbGVuZ3RoKGVkZ2UtPmVkZXN0a2V5KSAhPSBs aXN0X2xlbmd0aChlZGdlLT5lZGVzdHZlcnRleGNvbHMpKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJ CQkJIGVycm1zZygibWlzbWF0Y2hpbmcgbnVtYmVyIG9mIGNvbHVtbnMgaW4gZGVzdGluYXRp b24gdmVydGV4IGRlZmluaXRpb24gb2YgZWRnZSBcIiVzXCIiLAorCQkJCQkJCWVpbmZvLT5h bGlhc25hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZWRnZS0+bG9j YXRpb24pKSk7CisKKwkJZWluZm8tPnNyY2tleSA9IGFycmF5X2Zyb21fY29sdW1uX2xpc3Qo cHN0YXRlLCBlZGdlLT5lc3Jja2V5LCBlZGdlLT5sb2NhdGlvbiwgcmVsKTsKKwkJZWluZm8t PnNyY3JlZiA9IGFycmF5X2Zyb21fY29sdW1uX2xpc3QocHN0YXRlLCBlZGdlLT5lc3JjdmVy dGV4Y29scywgZWRnZS0+bG9jYXRpb24sIHNyY3JlbCk7CisJCWVpbmZvLT5kZXN0a2V5ID0g YXJyYXlfZnJvbV9jb2x1bW5fbGlzdChwc3RhdGUsIGVkZ2UtPmVkZXN0a2V5LCBlZGdlLT5s b2NhdGlvbiwgcmVsKTsKKwkJZWluZm8tPmRlc3RyZWYgPSBhcnJheV9mcm9tX2NvbHVtbl9s aXN0KHBzdGF0ZSwgZWRnZS0+ZWRlc3R2ZXJ0ZXhjb2xzLCBlZGdlLT5sb2NhdGlvbiwgZGVz dHJlbCk7CisKKwkJLyogVE9ETzogdmFyaW91cyBjb25zaXN0ZW5jeSBjaGVja3MgKi8KKwor CQllaW5mby0+bGFiZWxzID0gZWRnZS0+bGFiZWxzOworCisJCXRhYmxlX2Nsb3NlKGRlc3Ry ZWwsIE5vTG9jayk7CisJCXRhYmxlX2Nsb3NlKHNyY3JlbCwgTm9Mb2NrKTsKKworCQl0YWJs ZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwkJaW5zZXJ0X2VsZW1lbnRfcmVjb3JkKHBnYWRk cmVzcywgZWluZm8pOworCX0KKworCWZvcmVhY2gobGMsIHN0bXQtPmRyb3BfdmVydGV4X3Rh YmxlcykKKwl7CisJCWNoYXIJICAgKmFsaWFzID0gc3RyVmFsKGxmaXJzdChsYykpOworCQlP aWQJCQlwZW9pZDsKKwkJT2JqZWN0QWRkcmVzcyBvYmo7CisKKwkJcGVvaWQgPSBnZXRfdmVy dGV4X29pZChwc3RhdGUsIHBncmVsaWQsIGFsaWFzLCAtMSk7CisJCU9iamVjdEFkZHJlc3NT ZXQob2JqLCBQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgcGVvaWQpOworCQlwZXJmb3Jt RGVsZXRpb24oJm9iaiwgc3RtdC0+ZHJvcF9iZWhhdmlvciwgMCk7CisJfQorCisJZm9yZWFj aChsYywgc3RtdC0+ZHJvcF9lZGdlX3RhYmxlcykKKwl7CisJCWNoYXIJICAgKmFsaWFzID0g c3RyVmFsKGxmaXJzdChsYykpOworCQlPaWQJCQlwZW9pZDsKKwkJT2JqZWN0QWRkcmVzcyBv Ymo7CisKKwkJcGVvaWQgPSBnZXRfZWRnZV9vaWQocHN0YXRlLCBwZ3JlbGlkLCBhbGlhcywg LTEpOworCQlPYmplY3RBZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoRWxlbWVudFJlbGF0aW9u SWQsIHBlb2lkKTsKKwkJcGVyZm9ybURlbGV0aW9uKCZvYmosIHN0bXQtPmRyb3BfYmVoYXZp b3IsIDApOworCX0KKworCWZvcmVhY2gobGMsIHN0bXQtPmFkZF9sYWJlbHMpCisJeworCQlQ cm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMgKmxwID0gbGZpcnN0X25vZGUoUHJvcEdyYXBo TGFiZWxBbmRQcm9wZXJ0aWVzLCBsYyk7CisJCU9pZAkJCXBlb2lkOworCQlPaWQJCQlwZ2Vy ZWxpZDsKKwkJT2lkCQkJbGFiZWxvaWQ7CisKKwkJQXNzZXJ0KGxwLT5sYWJlbCk7CisKKwkJ aWYgKHN0bXQtPmVsZW1lbnRfa2luZCA9PSBQUk9QR1JBUEhfRUxFTUVOVF9LSU5EX1ZFUlRF WCkKKwkJCXBlb2lkID0gZ2V0X3ZlcnRleF9vaWQocHN0YXRlLCBwZ3JlbGlkLCBzdG10LT5l bGVtZW50X2FsaWFzLCAtMSk7CisJCWVsc2UKKwkJCXBlb2lkID0gZ2V0X2VkZ2Vfb2lkKHBz dGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9hbGlhcywgLTEpOworCisJCXBnZXJlbGlk ID0gZ2V0X2VsZW1lbnRfcmVsaWQocGVvaWQpOworCisJCWxhYmVsb2lkID0gaW5zZXJ0X2xh YmVsX3JlY29yZChwZ3JlbGlkLCBwZW9pZCwgbHAtPmxhYmVsKTsKKwkJaW5zZXJ0X3Byb3Bl cnR5X3JlY29yZHMocGdyZWxpZCwgbGFiZWxvaWQsIHBnZXJlbGlkLCBscC0+cHJvcGVydGll cyk7CisJfQorCisJaWYgKHN0bXQtPmRyb3BfbGFiZWwpCisJeworCQlPaWQJCQlwZW9pZDsK KwkJT2lkCQkJbGFiZWxvaWQ7CisJCU9iamVjdEFkZHJlc3Mgb2JqOworCisJCWlmIChzdG10 LT5lbGVtZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9WRVJURVgpCisJCQlw ZW9pZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9h bGlhcywgLTEpOworCQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3RhdGUsIHBn cmVsaWQsIHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKworCQlsYWJlbG9pZCA9IEdldFN5 c0NhY2hlT2lkMihQUk9QR1JBUEhMQUJFTE5BTUUsCisJCQkJCQkJCSAgIEFudW1fcGdfcHJv cGdyYXBoX2xhYmVsX29pZCwKKwkJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwZW9pZCks CisJCQkJCQkJCSAgIENTdHJpbmdHZXREYXR1bShzdG10LT5kcm9wX2xhYmVsKSk7CisJCWlm ICghbGFiZWxvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygicHJvcGVydHkgZ3JhcGggXCIlc1wi IGVsZW1lbnQgXCIlc1wiIGhhcyBubyBsYWJlbCBcIiVzXCIiLAorCQkJCQkJICAgZ2V0X3Jl bF9uYW1lKHBncmVsaWQpLCBzdG10LT5lbGVtZW50X2FsaWFzLCBzdG10LT5kcm9wX2xhYmVs KSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgLTEpKTsKKworCQlPYmplY3RB ZGRyZXNzU2V0KG9iaiwgUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkLCBsYWJlbG9pZCk7CisJ CXBlcmZvcm1EZWxldGlvbigmb2JqLCBzdG10LT5kcm9wX2JlaGF2aW9yLCAwKTsKKwl9CisK KwlpZiAoc3RtdC0+YWRkX3Byb3BlcnRpZXMpCisJeworCQlPaWQJCQlwZW9pZDsKKwkJT2lk CQkJcGdlcmVsaWQ7CisJCU9pZAkJCWxhYmVsb2lkOworCisJCWlmIChzdG10LT5lbGVtZW50 X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9WRVJURVgpCisJCQlwZW9pZCA9IGdl dF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9hbGlhcywgLTEp OworCQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3RhdGUsIHBncmVsaWQsIHN0 bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKworCQlwZ2VyZWxpZCA9IGdldF9lbGVtZW50X3Jl bGlkKHBlb2lkKTsKKworCQlsYWJlbG9pZCA9IEdldFN5c0NhY2hlT2lkMihQUk9QR1JBUEhM QUJFTE5BTUUsCisJCQkJCQkJCSAgIEFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX29pZCwKKwkJ CQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwZW9pZCksCisJCQkJCQkJCSAgIENTdHJpbmdH ZXREYXR1bShzdG10LT5hbHRlcl9sYWJlbCkpOworCQlpZiAoIWxhYmVsb2lkKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAor CQkJCQllcnJtc2coInByb3BlcnR5IGdyYXBoIFwiJXNcIiBlbGVtZW50IFwiJXNcIiBoYXMg bm8gbGFiZWwgXCIlc1wiIiwKKwkJCQkJCSAgIGdldF9yZWxfbmFtZShwZ3JlbGlkKSwgc3Rt dC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+YWx0ZXJfbGFiZWwpLAorCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCAtMSkpOworCisJCWluc2VydF9wcm9wZXJ0eV9yZWNvcmRzKHBn cmVsaWQsIGxhYmVsb2lkLCBwZ2VyZWxpZCwgc3RtdC0+YWRkX3Byb3BlcnRpZXMpOworCX0K KworCWlmIChzdG10LT5kcm9wX3Byb3BlcnRpZXMpCisJeworCQlPaWQJCQlwZW9pZDsKKwkJ T2lkCQkJbGFiZWxvaWQ7CisJCU9iamVjdEFkZHJlc3Mgb2JqOworCisJCWlmIChzdG10LT5l bGVtZW50X2tpbmQgPT0gUFJPUEdSQVBIX0VMRU1FTlRfS0lORF9WRVJURVgpCisJCQlwZW9p ZCA9IGdldF92ZXJ0ZXhfb2lkKHBzdGF0ZSwgcGdyZWxpZCwgc3RtdC0+ZWxlbWVudF9hbGlh cywgLTEpOworCQllbHNlCisJCQlwZW9pZCA9IGdldF9lZGdlX29pZChwc3RhdGUsIHBncmVs aWQsIHN0bXQtPmVsZW1lbnRfYWxpYXMsIC0xKTsKKworCQlsYWJlbG9pZCA9IEdldFN5c0Nh Y2hlT2lkMihQUk9QR1JBUEhMQUJFTE5BTUUsCisJCQkJCQkJCSAgIEFudW1fcGdfcHJvcGdy YXBoX2xhYmVsX29pZCwKKwkJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwZW9pZCksCisJ CQkJCQkJCSAgIENTdHJpbmdHZXREYXR1bShzdG10LT5hbHRlcl9sYWJlbCkpOworCQlpZiAo IWxhYmVsb2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9PQkpFQ1QpLAorCQkJCQllcnJtc2coInByb3BlcnR5IGdyYXBoIFwiJXNcIiBl bGVtZW50IFwiJXNcIiBoYXMgbm8gbGFiZWwgXCIlc1wiIiwKKwkJCQkJCSAgIGdldF9yZWxf bmFtZShwZ3JlbGlkKSwgc3RtdC0+ZWxlbWVudF9hbGlhcywgc3RtdC0+ZHJvcF9sYWJlbCks CisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIC0xKSk7CisKKwkJZm9yZWFjaChs Yywgc3RtdC0+ZHJvcF9wcm9wZXJ0aWVzKQorCQl7CisJCQljaGFyCSAgICpwcm9wbmFtZSA9 IHN0clZhbChsZmlyc3QobGMpKTsKKwkJCU9pZAkJCXByb3BvaWQ7CisKKwkJCXByb3BvaWQg PSBHZXRTeXNDYWNoZU9pZDIoUFJPUEdSQVBIUFJPUE5BTUUsCisJCQkJCQkJCQkgIEFudW1f cGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZCwKKwkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1 bShsYWJlbG9pZCksCisJCQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShwcm9wbmFtZSkpOwor CQkJaWYgKCFwcm9wb2lkKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCQllcnJtc2coInByb3BlcnR5IGdyYXBo IFwiJXNcIiBlbGVtZW50IFwiJXNcIiBsYWJlbCBcIiVzXCIgaGFzIG5vIHByb3BlcnR5IFwi JXNcIiIsCisJCQkJCQkJICAgZ2V0X3JlbF9uYW1lKHBncmVsaWQpLCBzdG10LT5lbGVtZW50 X2FsaWFzLCBzdG10LT5hbHRlcl9sYWJlbCwgcHJvcG5hbWUpLAorCQkJCQkJcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgLTEpKTsKKworCQkJT2JqZWN0QWRkcmVzc1NldChvYmosIFBy b3BncmFwaFByb3BlcnR5UmVsYXRpb25JZCwgcHJvcG9pZCk7CisJCQlwZXJmb3JtRGVsZXRp b24oJm9iaiwgc3RtdC0+ZHJvcF9iZWhhdmlvciwgMCk7CisJCX0KKwl9CisKKwlyZXR1cm4g cGdhZGRyZXNzOworfQorCisvKgorICogR2V0IE9JRCBvZiB2ZXJ0ZXggZnJvbSBncmFwaCBP SUQgYW5kIGVsZW1lbnQgYWxpYXMuICBFbGVtZW50IG11c3QgYmUgYQorICogdmVydGV4LCBv dGhlcndpc2UgZXJyb3IuCisgKi8KK3N0YXRpYyBPaWQKK2dldF92ZXJ0ZXhfb2lkKFBhcnNl U3RhdGUgKnBzdGF0ZSwgT2lkIHBncmVsaWQsIGNvbnN0IGNoYXIgKmFsaWFzLCBpbnQgbG9j YXRpb24pCit7CisJSGVhcFR1cGxlCXR1cGxlOworCU9pZAkJCXBlb2lkOworCisJdHVwbGUg PSBTZWFyY2hTeXNDYWNoZTIoUFJPUEdSQVBIRUxBTElBUywgT2JqZWN0SWRHZXREYXR1bShw Z3JlbGlkKSwgQ1N0cmluZ0dldERhdHVtKGFsaWFzKSk7CisJaWYgKCF0dXBsZSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJ CQkJZXJybXNnKCJwcm9wZXJ0eSBncmFwaCBcIiVzXCIgaGFzIG5vIGVsZW1lbnQgd2l0aCBh bGlhcyBcIiVzXCIiLAorCQkJCQkgICBnZXRfcmVsX25hbWUocGdyZWxpZCksIGFsaWFzKSwK KwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpOworCisJaWYgKCgo Rm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cGxlKSktPnBnZWtpbmQg IT0gUEdFS0lORF9WRVJURVgpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJlbGVtZW50IFwiJXNcIiBvZiBwcm9w ZXJ0eSBncmFwaCBcIiVzXCIgaXMgbm90IGEgdmVydGV4IiwKKwkJCQkJICAgYWxpYXMsIGdl dF9yZWxfbmFtZShwZ3JlbGlkKSksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg bG9jYXRpb24pKTsKKworCXBlb2lkID0gKChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBH RVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKwor CXJldHVybiBwZW9pZDsKK30KKworLyoKKyAqIEdldCBPSUQgb2YgZWRnZSBmcm9tIGdyYXBo IE9JRCBhbmQgZWxlbWVudCBhbGlhcy4gIEVsZW1lbnQgbXVzdCBiZSBhbiBlZGdlLAorICog b3RoZXJ3aXNlIGVycm9yLgorICovCitzdGF0aWMgT2lkCitnZXRfZWRnZV9vaWQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBPaWQgcGdyZWxpZCwgY29uc3QgY2hhciAqYWxpYXMsIGludCBsb2Nh dGlvbikKK3sKKwlIZWFwVHVwbGUJdHVwbGU7CisJT2lkCQkJcGVvaWQ7CisKKwl0dXBsZSA9 IFNlYXJjaFN5c0NhY2hlMihQUk9QR1JBUEhFTEFMSUFTLCBPYmplY3RJZEdldERhdHVtKHBn cmVsaWQpLCBDU3RyaW5nR2V0RGF0dW0oYWxpYXMpKTsKKwlpZiAoIXR1cGxlKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJ CQllcnJtc2coInByb3BlcnR5IGdyYXBoIFwiJXNcIiBoYXMgbm8gZWxlbWVudCB3aXRoIGFs aWFzIFwiJXNcIiIsCisJCQkJCSAgIGdldF9yZWxfbmFtZShwZ3JlbGlkKSwgYWxpYXMpLAor CQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSk7CisKKwlpZiAoKChG b3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBHRVRTVFJVQ1QodHVwbGUpKS0+cGdla2luZCAh PSBQR0VLSU5EX0VER0UpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJZXJybXNnKCJlbGVtZW50IFwiJXNcIiBvZiBwcm9wZXJ0 eSBncmFwaCBcIiVzXCIgaXMgbm90IGFuIGVkZ2UiLAorCQkJCQkgICBhbGlhcywgZ2V0X3Jl bF9uYW1lKHBncmVsaWQpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2Nh dGlvbikpOworCisJcGVvaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdFVFNU UlVDVCh0dXBsZSkpLT5vaWQ7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJcmV0 dXJuIHBlb2lkOworfQorCisvKgorICogR2V0IHRoZSBlbGVtZW50IHRhYmxlIHJlbGF0aW9u IE9JRCBmcm9tIHRoZSBPSUQgb2YgdGhlIGVsZW1lbnQuCisgKi8KK3N0YXRpYyBPaWQKK2dl dF9lbGVtZW50X3JlbGlkKE9pZCBwZWlkKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlPaWQJ CQlwZ2VyZWxpZDsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQSEVMT0lE LCBPYmplY3RJZEdldERhdHVtKHBlaWQpKTsKKwlpZiAoIXR1cGxlKQorCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcHJvcGVydHkgZ3JhcGggZWxlbWVudCAldSIs IHBlaWQpOworCisJcGdlcmVsaWQgPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQpIEdF VFNUUlVDVCh0dXBsZSkpLT5wZ2VyZWxpZDsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7 CisKKwlyZXR1cm4gcGdlcmVsaWQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zZWNsYWJlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRl eCA1NjA3MjczYmY5Zi4uMGE1ZTM0YWJlOTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwu YwpAQCAtNDksNiArNDksNyBAQCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0xBUkdFT0JKRUNUOgogCQljYXNlIE9CSkVD VF9NQVRWSUVXOgogCQljYXNlIE9CSkVDVF9QUk9DRURVUkU6CisJCWNhc2UgT0JKRUNUX1BS T1BHUkFQSDoKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1JP TEU6CiAJCWNhc2UgT0JKRUNUX1JPVVRJTkU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CmluZGV4IDIzN2VlZWVjNjdlLi5hOWU5MGI1N2VjYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTMwMSw2ICszMDEsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm9w bXNnc3RyaW5ncyBkcm9wbXNnc3RyaW5nYXJyYXlbXSA9IHsKIAkJZ2V0dGV4dF9ub29wKCJp bmRleCBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiksCiAJCWdldHRleHRfbm9v cCgiXCIlc1wiIGlzIG5vdCBhbiBpbmRleCIpLAogCWdldHRleHRfbm9vcCgiVXNlIERST1Ag SU5ERVggdG8gcmVtb3ZlIGFuIGluZGV4LiIpfSwKKwl7UkVMS0lORF9QUk9QR1JBUEgsCisJ CUVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCwKKwkJZ2V0dGV4dF9ub29wKCJwcm9wZXJ0eSBn cmFwaCBcIiVzXCIgZG9lcyBub3QgZXhpc3QiKSwKKwkJZ2V0dGV4dF9ub29wKCJwcm9wZXJ0 eSBncmFwaCBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiksCisJCWdldHRleHRf bm9vcCgiXCIlc1wiIGlzIG5vdCBhIHByb3BlcnR5IGdyYXBoIiksCisJZ2V0dGV4dF9ub29w KCJVc2UgRFJPUCBQUk9QRVJUWSBHUkFQSCB0byByZW1vdmUgYSBwcm9wZXJ0eSBncmFwaC4i KX0sCiAJeydcMCcsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEx9CiB9OwogCkBAIC0xNTM5 LDYgKzE1NDUsMTAgQEAgUmVtb3ZlUmVsYXRpb25zKERyb3BTdG10ICpkcm9wKQogCQkJcmVs a2luZCA9IFJFTEtJTkRfRk9SRUlHTl9UQUJMRTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0JK RUNUX1BST1BHUkFQSDoKKwkJCXJlbGtpbmQgPSBSRUxLSU5EX1BST1BHUkFQSDsKKwkJCWJy ZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGRyb3Ag b2JqZWN0IHR5cGU6ICVkIiwKIAkJCQkgKGludCkgZHJvcC0+cmVtb3ZlVHlwZSk7CkBAIC0x Mzk3MCw2ICsxMzk4MCw5IEBAIFJlbWVtYmVyQWxsRGVwZW5kZW50Rm9yUmVidWlsZGluZyhB bHRlcmVkVGFibGVJbmZvICp0YWIsIEFsdGVyVGFibGVUeXBlIHN1YnR5cGUsCiAJCQljYXNl IE9DTEFTU19FWFRFTlNJT046CiAJCQljYXNlIE9DTEFTU19FVkVOVF9UUklHR0VSOgogCQkJ Y2FzZSBPQ0xBU1NfUEFSQU1FVEVSX0FDTDoKKwkJCWNhc2UgT0NMQVNTX1BST1BHUkFQSF9F TEVNRU5UOgorCQkJY2FzZSBPQ0xBU1NfUFJPUEdSQVBIX0xBQkVMOgorCQkJY2FzZSBPQ0xB U1NfUFJPUEdSQVBIX1BST1BFUlRZOgogCQkJY2FzZSBPQ0xBU1NfUFVCTElDQVRJT046CiAJ CQljYXNlIE9DTEFTU19QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCQljYXNlIE9DTEFTU19Q VUJMSUNBVElPTl9SRUw6CkBAIC0xNDc5NSw2ICsxNDgwOCw3IEBAIEFURXhlY0NoYW5nZU93 bmVyKE9pZCByZWxhdGlvbk9pZCwgT2lkIG5ld093bmVySWQsIGJvb2wgcmVjdXJzaW5nLCBM T0NLTU9ERSBsb2NrCiAJCWNhc2UgUkVMS0lORF9NQVRWSUVXOgogCQljYXNlIFJFTEtJTkRf Rk9SRUlHTl9UQUJMRToKIAkJY2FzZSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOgorCQlj YXNlIFJFTEtJTkRfUFJPUEdSQVBIOgogCQkJLyogb2sgdG8gY2hhbmdlIG93bmVyICovCiAJ CQlicmVhazsKIAkJY2FzZSBSRUxLSU5EX0lOREVYOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWlu LmMKaW5kZXggMTNhOWI3ZGE4M2IuLjczYTkxNGFjZGI2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMKQEAgLTYwMiw3ICs2MDIsNyBAQCBFeGVjQ2hlY2tQZXJtaXNzaW9ucyhMaXN0 ICpyYW5nZVRhYmxlLCBMaXN0ICpydGVwZXJtaW5mb3MsCiAJCQkgKi8KIAkJCUFzc2VydChy dGUtPnJ0ZWtpbmQgPT0gUlRFX1JFTEFUSU9OIHx8CiAJCQkJICAgKHJ0ZS0+cnRla2luZCA9 PSBSVEVfU1VCUVVFUlkgJiYKLQkJCQkJcnRlLT5yZWxraW5kID09IFJFTEtJTkRfVklFVykp OworCQkJCQkocnRlLT5yZWxraW5kID09IFJFTEtJTkRfVklFVyB8fCBydGUtPnJlbGtpbmQg PT0gUkVMS0lORF9QUk9QR1JBUEgpKSk7CiAKIAkJCSh2b2lkKSBnZXRSVEVQZXJtaXNzaW9u SW5mbyhydGVwZXJtaW5mb3MsIHJ0ZSk7CiAJCQkvKiBNYW55LXRvLW9uZSBtYXBwaW5nIG5v dCBhbGxvd2VkICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGUxYTViYzdlOTVkLi41 MjFiM2ZmYTAxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK KysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTI2NSw2ICsyNjUsOSBA QCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUGxhY2VIb2xkZXJWYXI6 CiAJCQl0eXBlID0gZXhwclR5cGUoKE5vZGUgKikgKChjb25zdCBQbGFjZUhvbGRlclZhciAq KSBleHByKS0+cGhleHByKTsKIAkJCWJyZWFrOworCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJl ZjoKKwkJCXR5cGUgPSAoKGNvbnN0IEdyYXBoUHJvcGVydHlSZWYgKikgZXhwciktPnR5cGVJ ZDsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXpl ZCBub2RlIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhleHByKSk7CiAJCQl0eXBlID0gSW52 YWxpZE9pZDsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAtNTAxLDYgKzUwNCw5IEBA IGV4cHJUeXBtb2QoY29uc3QgTm9kZSAqZXhwcikKIAkJCXJldHVybiAoKGNvbnN0IFNldFRv RGVmYXVsdCAqKSBleHByKS0+dHlwZU1vZDsKIAkJY2FzZSBUX1BsYWNlSG9sZGVyVmFyOgog CQkJcmV0dXJuIGV4cHJUeXBtb2QoKE5vZGUgKikgKChjb25zdCBQbGFjZUhvbGRlclZhciAq KSBleHByKS0+cGhleHByKTsKKwkJY2FzZSBUX0dyYXBoUHJvcGVydHlSZWY6CisJCQkvKiBU T0RPICovCisJCQlyZXR1cm4gLTE7CiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKIAl9CkBAIC0x MDAwLDYgKzEwMDYsOSBAQCBleHByQ29sbGF0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNh c2UgVF9QbGFjZUhvbGRlclZhcjoKIAkJCWNvbGwgPSBleHByQ29sbGF0aW9uKChOb2RlICop ICgoY29uc3QgUGxhY2VIb2xkZXJWYXIgKikgZXhwciktPnBoZXhwcik7CiAJCQlicmVhazsK KwkJY2FzZSBUX0dyYXBoUHJvcGVydHlSZWY6CisJCQljb2xsID0gREVGQVVMVF9DT0xMQVRJ T05fT0lEOwkvKiBGSVhNRSAqLworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVS Uk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIp KTsKIAkJCWNvbGwgPSBJbnZhbGlkT2lkOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBA IC0yMDM1LDYgKzIwNDQsNyBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAq bm9kZSwKIAkJY2FzZSBUX1JhbmdlVGJsUmVmOgogCQljYXNlIFRfU29ydEdyb3VwQ2xhdXNl OgogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgorCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJl ZjoKIAkJCS8qIHByaW1pdGl2ZSBub2RlIHR5cGVzIHdpdGggbm8gZXhwcmVzc2lvbiBzdWJu b2RlcyAqLwogCQkJYnJlYWs7CiAJCWNhc2UgVF9XaXRoQ2hlY2tPcHRpb246CkBAIC0yNTM1 LDYgKzI1NDUsMjYgQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUs CiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9HcmFwaEVs ZW1lbnRQYXR0ZXJuOgorCQkJeworCQkJCUdyYXBoRWxlbWVudFBhdHRlcm4gKmdlcCA9IChH cmFwaEVsZW1lbnRQYXR0ZXJuICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhnZXAtPnN1YmV4 cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhnZXAtPndoZXJlQ2xhdXNl KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSBUX0dyYXBo UGF0dGVybjoKKwkJCXsKKwkJCQlHcmFwaFBhdHRlcm4gKmdwID0gKEdyYXBoUGF0dGVybiAq KSBub2RlOworCisJCQkJaWYgKExJU1RfV0FMSyhncC0+cGF0aF9wYXR0ZXJuX2xpc3QpKQor CQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhncC0+d2hlcmVDbGF1c2UpKQorCQkJ CQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRh Zyhub2RlKSk7CkBAIC0yNzI4LDYgKzI3NTgsMTIgQEAgcmFuZ2VfdGFibGVfZW50cnlfd2Fs a2VyX2ltcGwoUmFuZ2VUYmxFbnRyeSAqcnRlLAogCQkJaWYgKFdBTEsocnRlLT52YWx1ZXNf bGlzdHMpKQogCQkJCXJldHVybiB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgUlRFX0dSQVBI X1RBQkxFOgorCQkJaWYgKFdBTEsocnRlLT5ncmFwaF9wYXR0ZXJuKSkKKwkJCQlyZXR1cm4g dHJ1ZTsKKwkJCWlmIChXQUxLKHJ0ZS0+Z3JhcGhfdGFibGVfY29sdW1ucykpCisJCQkJcmV0 dXJuIHRydWU7CisJCQlicmVhazsKIAkJY2FzZSBSVEVfQ1RFOgogCQljYXNlIFJURV9OQU1F RFRVUExFU1RPUkU6CiAJCWNhc2UgUlRFX1JFU1VMVDoKQEAgLTM3MjgsNiArMzc2NCwxMCBA QCByYW5nZV90YWJsZV9tdXRhdG9yX2ltcGwoTGlzdCAqcnRhYmxlLAogCQkJY2FzZSBSVEVf VkFMVUVTOgogCQkJCU1VVEFURShuZXdydGUtPnZhbHVlc19saXN0cywgcnRlLT52YWx1ZXNf bGlzdHMsIExpc3QgKik7CiAJCQkJYnJlYWs7CisJCQljYXNlIFJURV9HUkFQSF9UQUJMRToK KwkJCQlNVVRBVEUobmV3cnRlLT5ncmFwaF9wYXR0ZXJuLCBydGUtPmdyYXBoX3BhdHRlcm4s IEdyYXBoUGF0dGVybiAqKTsKKwkJCQlNVVRBVEUobmV3cnRlLT5ncmFwaF90YWJsZV9jb2x1 bW5zLCBydGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMsIExpc3QgKik7CisJCQkJYnJlYWs7CiAJ CQljYXNlIFJURV9DVEU6CiAJCQljYXNlIFJURV9OQU1FRFRVUExFU1RPUkU6CiAJCQljYXNl IFJURV9SRVNVTFQ6CkBAIC00Mjc5LDYgKzQzMTksMTggQEAgcmF3X2V4cHJlc3Npb25fdHJl ZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJ CWJyZWFrOworCQljYXNlIFRfUmFuZ2VHcmFwaFRhYmxlOgorCQkJeworCQkJCVJhbmdlR3Jh cGhUYWJsZSAqcmd0ID0gKFJhbmdlR3JhcGhUYWJsZSAqKSBub2RlOworCisJCQkJaWYgKFdB TEsocmd0LT5ncmFwaF9wYXR0ZXJuKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdB TEsocmd0LT5jb2x1bW5zKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsocmd0 LT5hbGlhcykpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2Ug VF9UeXBlTmFtZToKIAkJCXsKIAkJCQlUeXBlTmFtZSAgICp0biA9IChUeXBlTmFtZSAqKSBu b2RlOwpAQCAtNDQzNyw2ICs0NDg5LDI2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2Vy X2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsK KwkJY2FzZSBUX0dyYXBoRWxlbWVudFBhdHRlcm46CisJCQl7CisJCQkJR3JhcGhFbGVtZW50 UGF0dGVybiAqZ2VwID0gKEdyYXBoRWxlbWVudFBhdHRlcm4gKikgbm9kZTsKKworCQkJCWlm IChXQUxLKGdlcC0+c3ViZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxL KGdlcC0+d2hlcmVDbGF1c2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFr OworCQljYXNlIFRfR3JhcGhQYXR0ZXJuOgorCQkJeworCQkJCUdyYXBoUGF0dGVybiAqZ3Ag PSAoR3JhcGhQYXR0ZXJuICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhncC0+cGF0aF9wYXR0 ZXJuX2xpc3QpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhncC0+d2hlcmVD bGF1c2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQlkZWZhdWx0 OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkg KGludCkgbm9kZVRhZyhub2RlKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9v dXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYwppbmRleCAyNTE3MTg2 NGRiZi4uNTU1ZGI3MzBhNDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYwpAQCAtNTU1LDYgKzU1 NSwxMSBAQCBfb3V0UmFuZ2VUYmxFbnRyeShTdHJpbmdJbmZvIHN0ciwgY29uc3QgUmFuZ2VU YmxFbnRyeSAqbm9kZSkKIAkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxBVElPTiBmaWVsZHMs IHRvbzogKi8KIAkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7CiAJCQlicmVhazsKKwkJY2Fz ZSBSVEVfR1JBUEhfVEFCTEU6CisJCQlXUklURV9PSURfRklFTEQocmVsaWQpOworCQkJV1JJ VEVfTk9ERV9GSUVMRChncmFwaF9wYXR0ZXJuKTsKKwkJCVdSSVRFX05PREVfRklFTEQoZ3Jh cGhfdGFibGVfY29sdW1ucyk7CisJCQlicmVhazsKIAkJY2FzZSBSVEVfUkVTVUxUOgogCQkJ Lyogbm8gZXh0cmEgZmllbGRzICovCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5 anVtYmxlZnVuY3MuYwppbmRleCA4MmY3MjViYWFhNS4uN2E4MTk1OWQwNTcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1bmNzLmMKQEAgLTM5NCw2ICszOTQsMTEgQEAgX2p1 bWJsZVJhbmdlVGJsRW50cnkoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTm9kZSAqbm9kZSkKIAkJ Y2FzZSBSVEVfTkFNRURUVVBMRVNUT1JFOgogCQkJSlVNQkxFX1NUUklORyhlbnJuYW1lKTsK IAkJCWJyZWFrOworCQljYXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCUpVTUJMRV9GSUVMRChy ZWxpZCk7CisJCQlKVU1CTEVfTk9ERShncmFwaF9wYXR0ZXJuKTsKKwkJCUpVTUJMRV9OT0RF KGdyYXBoX3RhYmxlX2NvbHVtbnMpOworCQkJYnJlYWs7CiAJCWNhc2UgUlRFX1JFU1VMVDoK IAkJCWJyZWFrOwogCQlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMv cmVhZGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwppbmRleCBjZmI1 NTJmZGU3NC4uM2IyM2NmYTA2MTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL3Jl YWRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jCkBAIC01NjMs NiArNTYzLDExIEBAIF9yZWFkUmFuZ2VUYmxFbnRyeSh2b2lkKQogCQkJLyogd2UgcmUtdXNl IHRoZXNlIFJFTEFUSU9OIGZpZWxkcywgdG9vOiAqLwogCQkJUkVBRF9PSURfRklFTEQocmVs aWQpOwogCQkJYnJlYWs7CisJCWNhc2UgUlRFX0dSQVBIX1RBQkxFOgorCQkJUkVBRF9PSURf RklFTEQocmVsaWQpOworCQkJUkVBRF9OT0RFX0ZJRUxEKGdyYXBoX3BhdHRlcm4pOworCQkJ UkVBRF9OT0RFX0ZJRUxEKGdyYXBoX3RhYmxlX2NvbHVtbnMpOworCQkJYnJlYWs7CiAJCWNh c2UgUlRFX1JFU1VMVDoKIAkJCS8qIG5vIGV4dHJhIGZpZWxkcyAqLwogCQkJYnJlYWs7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwppbmRleCBkNDA0ZmJmMjYyYy4u MTAzZWMwYjk2ODEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Fs bHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwpA QCAtNzMxLDYgKzczMSwxMCBAQCBzZXRfcmVsX2NvbnNpZGVyX3BhcmFsbGVsKFBsYW5uZXJJ bmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJCQkgKi8KIAkJCXJldHVybjsKIAorCQlj YXNlIFJURV9HUkFQSF9UQUJMRToKKwkJCS8qIHNob3VsZG4ndCBoYXBwZW4gaGVyZSAqLwor CQkJYnJlYWs7CisKIAkJY2FzZSBSVEVfUkVTVUxUOgogCQkJLyogUkVTVUxUIFJURXMsIGlu IHRoZW1zZWx2ZXMsIGFyZSBubyBwcm9ibGVtLiAqLwogCQkJYnJlYWs7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCmluZGV4IGFhODNkZDM2MzZmLi5l MDJjNzFjZWEzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJl cGpvaW50cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50 cmVlLmMKQEAgLTExODgsNiArMTE4OCwxMCBAQCBwdWxsX3VwX3NpbXBsZV9zdWJxdWVyeShQ bGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBSYW5nZVRibEVudHJ5ICpydGUsCiAJ CQkJY2FzZSBSVEVfUkVTVUxUOgogCQkJCQkvKiB0aGVzZSBjYW4ndCBjb250YWluIGFueSBs YXRlcmFsIHJlZmVyZW5jZXMgKi8KIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBSVEVfR1JBUEhf VEFCTEU6CisJCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gaGVyZSAqLworCQkJCQlBc3NlcnQo ZmFsc2UpOworCQkJCQlicmVhazsKIAkJCX0KIAkJfQogCX0KQEAgLTIyNDksNiArMjI1Mywx MCBAQCByZXBsYWNlX3ZhcnNfaW5fam9pbnRyZWUoTm9kZSAqanRub2RlLAogCQkJCQkJLyog dGhlc2Ugc2hvdWxkbid0IGJlIG1hcmtlZCBMQVRFUkFMICovCiAJCQkJCQlBc3NlcnQoZmFs c2UpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlRFX0dSQVBIX1RBQkxFOgorCQkJCQkJ Lyogc2hvdWxkbid0IGhhcHBlbiBoZXJlICovCisJCQkJCQlBc3NlcnQoZmFsc2UpOworCQkJ CQkJYnJlYWs7CiAJCQkJfQogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9wYXJzZXIvTWFrZWZpbGUKaW5kZXggNDAx YzE2Njg2YzYuLmIwM2RjNGNkYjA1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv TWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL01ha2VmaWxlCkBAIC0yMyw2ICsy Myw3IEBAIE9CSlMgPSBcCiAJcGFyc2VfZW5yLm8gXAogCXBhcnNlX2V4cHIubyBcCiAJcGFy c2VfZnVuYy5vIFwKKwlwYXJzZV9ncmFwaHRhYmxlLm8gXAogCXBhcnNlX21lcmdlLm8gXAog CXBhcnNlX25vZGUubyBcCiAJcGFyc2Vfb3Blci5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDYw YjMxZDlmODUyLi40Yzc1OTM4Y2E3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yOTcsNiArMjk3 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJQ3JlYXRlU2NoZW1hU3RtdCBD cmVhdGVTZXFTdG10IENyZWF0ZVN0bXQgQ3JlYXRlU3RhdHNTdG10IENyZWF0ZVRhYmxlU3Bh Y2VTdG10CiAJCUNyZWF0ZUZkd1N0bXQgQ3JlYXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRl Rm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3NlcnRpb25TdG10IENyZWF0ZVRyYW5zZm9y bVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRUcmlnU3RtdAorCQlDcmVhdGVQcm9w R3JhcGhTdG10IEFsdGVyUHJvcEdyYXBoU3RtdAogCQlDcmVhdGVVc2VyU3RtdCBDcmVhdGVV c2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9sZVN0bXQgQ3JlYXRlUG9saWN5U3RtdAogCQlDcmVh dGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQgRGVmaW5lU3RtdCBEZWxldGVTdG10IERpc2Nh cmRTdG10IERvU3RtdAogCQlEcm9wT3BDbGFzc1N0bXQgRHJvcE9wRmFtaWx5U3RtdCBEcm9w U3RtdApAQCAtNjYwLDYgKzY2MSwzNiBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZp ZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CQkJCWpzb25fb2JqZWN0X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJCWpzb25f YXJyYXlfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAKKyV0eXBlIDxsaXN0Pgl2ZXJ0 ZXhfdGFibGVzX2NsYXVzZSBlZGdlX3RhYmxlc19jbGF1c2UKKwkJCQlvcHRfdmVydGV4X3Rh Ymxlc19jbGF1c2Ugb3B0X2VkZ2VfdGFibGVzX2NsYXVzZQorCQkJCXZlcnRleF90YWJsZV9s aXN0CisJCQkJb3B0X2dyYXBoX3RhYmxlX2tleV9jbGF1c2UKKwkJCQllZGdlX3RhYmxlX2xp c3QKKwkJCQlzb3VyY2VfdmVydGV4X3RhYmxlIGRlc3RpbmF0aW9uX3ZlcnRleF90YWJsZQor CQkJCW9wdF9lbGVtZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzCisJCQkJbGFiZWxf YW5kX3Byb3BlcnRpZXNfbGlzdAorCQkJCWFkZF9sYWJlbF9saXN0CisldHlwZSA8bm9kZT4J dmVydGV4X3RhYmxlX2RlZmluaXRpb24gZWRnZV90YWJsZV9kZWZpbml0aW9uCisldHlwZSA8 YWxpYXM+CW9wdF9wcm9wZ3JhcGhfdGFibGVfYWxpYXMKKyV0eXBlIDxzdHI+CQllbGVtZW50 X3RhYmxlX2xhYmVsX2NsYXVzZQorJXR5cGUgPG5vZGU+CWxhYmVsX2FuZF9wcm9wZXJ0aWVz IGVsZW1lbnRfdGFibGVfcHJvcGVydGllcworCQkJCWFkZF9sYWJlbAorJXR5cGUgPGl2YWw+ CXZlcnRleF9vcl9lZGdlCisKKyV0eXBlIDxsaXN0PglvcHRfZ3JhcGhfcGF0dGVybl9xdWFu dGlmaWVyCisJCQkJcGF0aF9wYXR0ZXJuX2xpc3QKKwkJCQlwYXRoX3BhdHRlcm4KKwkJCQlw YXRoX3BhdHRlcm5fZXhwcmVzc2lvbgorCQkJCXBhdGhfdGVybQorJXR5cGUgPG5vZGU+CWdy YXBoX3BhdHRlcm4KKwkJCQlwYXRoX2ZhY3RvcgorCQkJCXBhdGhfcHJpbWFyeQorCQkJCW9w dF9pc19sYWJlbF9leHByZXNzaW9uCisJCQkJbGFiZWxfZXhwcmVzc2lvbgorCQkJCWxhYmVs X2Rpc2p1bmN0aW9uCisJCQkJbGFiZWxfdGVybQorJXR5cGUgPHN0cj4JCW9wdF9jb2xpZAor CiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdp cmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTY3Nyw2ICs3MDgsNyBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogJXRva2VuIDxpdmFsPglJQ09OU1QgUEFSQU0KICV0b2tl bgkJCVRZUEVDQVNUIERPVF9ET1QgQ09MT05fRVFVQUxTIEVRVUFMU19HUkVBVEVSCiAldG9r ZW4JCQlMRVNTX0VRVUFMUyBHUkVBVEVSX0VRVUFMUyBOT1RfRVFVQUxTCisldG9rZW4JCQlC UkFDS0VUX1JJR0hUX0FSUk9XIExFRlRfQVJST1dfQlJBQ0tFVCBNSU5VU19MRUZUX0JSQUNL RVQgUklHSFRfQlJBQ0tFVF9NSU5VUwogCiAvKgogICogSWYgeW91IHdhbnQgdG8gbWFrZSBh bnkga2V5d29yZCBjaGFuZ2VzLCB1cGRhdGUgdGhlIGtleXdvcmQgdGFibGUgaW4KQEAgLTcw MywxOCArNzM1LDE4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChj aGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJQ1VSUkVOVF9U SU1FIENVUlJFTlRfVElNRVNUQU1QIENVUlJFTlRfVVNFUiBDVVJTT1IgQ1lDTEUKIAogCURB VEFfUCBEQVRBQkFTRSBEQVlfUCBERUFMTE9DQVRFIERFQyBERUNJTUFMX1AgREVDTEFSRSBE RUZBVUxUIERFRkFVTFRTCi0JREVGRVJSQUJMRSBERUZFUlJFRCBERUZJTkVSIERFTEVURV9Q IERFTElNSVRFUiBERUxJTUlURVJTIERFUEVORFMgREVQVEggREVTQworCURFRkVSUkFCTEUg REVGRVJSRUQgREVGSU5FUiBERUxFVEVfUCBERUxJTUlURVIgREVMSU1JVEVSUyBERVBFTkRT IERFUFRIIERFU0MgREVTVElOQVRJT04KIAlERVRBQ0ggRElDVElPTkFSWSBESVNBQkxFX1Ag RElTQ0FSRCBESVNUSU5DVCBETyBET0NVTUVOVF9QIERPTUFJTl9QCiAJRE9VQkxFX1AgRFJP UAogCi0JRUFDSCBFTFNFIEVOQUJMRV9QIEVOQ09ESU5HIEVOQ1JZUFRFRCBFTkRfUCBFTlVN X1AgRVNDQVBFIEVWRU5UIEVYQ0VQVAorCUVBQ0ggRURHRSBFTFNFIEVOQUJMRV9QIEVOQ09E SU5HIEVOQ1JZUFRFRCBFTkRfUCBFTlVNX1AgRVNDQVBFIEVWRU5UIEVYQ0VQVAogCUVYQ0xV REUgRVhDTFVESU5HIEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJ T04KIAlFWFRFTlNJT04gRVhURVJOQUwgRVhUUkFDVAogCiAJRkFMU0VfUCBGQU1JTFkgRkVU Q0ggRklMVEVSIEZJTkFMSVpFIEZJUlNUX1AgRkxPQVRfUCBGT0xMT1dJTkcgRk9SCiAJRk9S Q0UgRk9SRUlHTiBGT1JNQVQgRk9SV0FSRCBGUkVFWkUgRlJPTSBGVUxMIEZVTkNUSU9OIEZV TkNUSU9OUwogCi0JR0VORVJBVEVEIEdMT0JBTCBHUkFOVCBHUkFOVEVEIEdSRUFURVNUIEdS T1VQX1AgR1JPVVBJTkcgR1JPVVBTCisJR0VORVJBVEVEIEdMT0JBTCBHUkFOVCBHUkFOVEVE IEdSQVBIIEdSQVBIX1RBQkxFIEdSRUFURVNUIEdST1VQX1AgR1JPVVBJTkcgR1JPVVBTCiAK IAlIQU5ETEVSIEhBVklORyBIRUFERVJfUCBIT0xEIEhPVVJfUAogCkBAIC03MzUsNyArNzY3 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlNQVBQSU5HIE1BVENIIE1BVENI RUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FVEhPRAogCU1JTlVURV9QIE1JTlZB TFVFIE1PREUgTU9OVEhfUCBNT1ZFCiAKLQlOQU1FX1AgTkFNRVMgTkFUSU9OQUwgTkFUVVJB TCBOQ0hBUiBORVcgTkVYVCBORkMgTkZEIE5GS0MgTkZLRCBOTyBOT05FCisJTkFNRV9QIE5B TUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIgTkVXIE5FWFQgTkZDIE5GRCBORktDIE5GS0Qg Tk8gTk9ERSBOT05FCiAJTk9STUFMSVpFIE5PUk1BTElaRUQKIAlOT1QgTk9USElORyBOT1RJ RlkgTk9UTlVMTCBOT1dBSVQgTlVMTF9QIE5VTExJRgogCU5VTExTX1AgTlVNRVJJQwpAQCAt NzQ3LDE5ICs3NzksMTkgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0 KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlQQVJBTExF TCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBU1NJTkcgUEFTU1dPUkQK IAlQTEFDSU5HIFBMQU5TIFBPTElDWQogCVBPU0lUSU9OIFBSRUNFRElORyBQUkVDSVNJT04g UFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZCi0JUFJJT1IgUFJJVklMRUdFUyBQ Uk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBST0dSQU0gUFVCTElDQVRJT04KKwlQ UklPUiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJFIFBST0NFRFVSRVMgUFJPR1JB TSBQUk9QRVJUSUVTIFBST1BFUlRZIFBVQkxJQ0FUSU9OCiAKIAlRVU9URQogCiAJUkFOR0Ug UkVBRCBSRUFMIFJFQVNTSUdOIFJFQ0hFQ0sgUkVDVVJTSVZFIFJFRl9QIFJFRkVSRU5DRVMg UkVGRVJFTkNJTkcKLQlSRUZSRVNIIFJFSU5ERVggUkVMQVRJVkVfUCBSRUxFQVNFIFJFTkFN RSBSRVBFQVRBQkxFIFJFUExBQ0UgUkVQTElDQQorCVJFRlJFU0ggUkVJTkRFWCBSRUxBVElP TlNISVAgUkVMQVRJVkVfUCBSRUxFQVNFIFJFTkFNRSBSRVBFQVRBQkxFIFJFUExBQ0UgUkVQ TElDQQogCVJFU0VUIFJFU1RBUlQgUkVTVFJJQ1QgUkVUVVJOIFJFVFVSTklORyBSRVRVUk5T IFJFVk9LRSBSSUdIVCBST0xFIFJPTExCQUNLIFJPTExVUAogCVJPVVRJTkUgUk9VVElORVMg Uk9XIFJPV1MgUlVMRQogCiAJU0FWRVBPSU5UIFNDQUxBUiBTQ0hFTUEgU0NIRU1BUyBTQ1JP TEwgU0VBUkNIIFNFQ09ORF9QIFNFQ1VSSVRZIFNFTEVDVAogCVNFUVVFTkNFIFNFUVVFTkNF UwogCVNFUklBTElaQUJMRSBTRVJWRVIgU0VTU0lPTiBTRVNTSU9OX1VTRVIgU0VUIFNFVFMg U0VUT0YgU0hBUkUgU0hPVwotCVNJTUlMQVIgU0lNUExFIFNLSVAgU01BTExJTlQgU05BUFNI T1QgU09NRSBTUUxfUCBTVEFCTEUgU1RBTkRBTE9ORV9QCisJU0lNSUxBUiBTSU1QTEUgU0tJ UCBTTUFMTElOVCBTTkFQU0hPVCBTT01FIFNPVVJDRSBTUUxfUCBTVEFCTEUgU1RBTkRBTE9O RV9QCiAJU1RBUlQgU1RBVEVNRU5UIFNUQVRJU1RJQ1MgU1RESU4gU1RET1VUIFNUT1JBR0Ug U1RPUkVEIFNUUklDVF9QIFNUUklQX1AKIAlTVUJTQ1JJUFRJT04gU1VCU1RSSU5HIFNVUFBP UlQgU1lNTUVUUklDIFNZU0lEIFNZU1RFTV9QIFNZU1RFTV9VU0VSCiAKQEAgLTc3Miw3ICs4 MDQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVOTElTVEVOIFVOTE9HR0VE IFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKIAlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFM SURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJP U0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWRVJCT1NFIFZFUlNJT05fUCBW RVJURVggVklFVyBWSUVXUyBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1Ag V0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTgw OSw2ICs4NDEsMTEgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJTU9E RV9QTFBHU1FMX0FTU0lHTjIKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjMKIAorIC8q CisgICogRklYTUU6IFRoZSBicmFjZSBjaGFyYWN0ZXJzIGFyZSBhc3NpZ25lZCB0b2tlbiBz eW1ib2xzIGJlY2F1c2UgaWYgd2UKKyAgKiBtZW50aW9uIGxpdGVyYWwgYnJhY2VzIGluIHRo ZSBydWxlcyB0aGVuIHRoZSBlY3BnIHBhcnNlciBhc3NlbWJseSBicmVha3MuCisgICovCisl dG9rZW4JCUxFRlRfQlJBQ0UgUklHSFRfQlJBQ0UKIAogLyogUHJlY2VkZW5jZTogbG93ZXN0 IHRvIGhpZ2hlc3QgKi8KICVsZWZ0CQlVTklPTiBFWENFUFQKQEAgLTg2Nyw3ICs5MDQsNyBA QCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwg TGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJW5vbmFzc29jCVVOQk9VTkRFRAkJLyog aWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFz c29jCUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9X SU5HIENVQkUgUk9MTFVQCiAJCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBX SVRIIFdJVEhPVVQKLSVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9w cyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLworJWxlZnQJCU9wIE9QRVJBVE9SIExF RlRfQVJST1cgUklHSFRfQVJST1cJLyogbXVsdGktY2hhcmFjdGVyIG9wcyBhbmQgdXNlci1k ZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQknKicgJy8nICcl JwogJWxlZnQJCSdeJwpAQCAtOTk4LDYgKzEwMzUsNyBAQCBzdG10OgogCQkJfCBBbHRlck9w ZXJhdG9yU3RtdAogCQkJfCBBbHRlclR5cGVTdG10CiAJCQl8IEFsdGVyUG9saWN5U3RtdAor CQkJfCBBbHRlclByb3BHcmFwaFN0bXQKIAkJCXwgQWx0ZXJTZXFTdG10CiAJCQl8IEFsdGVy U3lzdGVtU3RtdAogCQkJfCBBbHRlclRhYmxlU3RtdApAQCAtMTAzOCw2ICsxMDc2LDcgQEAg c3RtdDoKIAkJCXwgQWx0ZXJPcEZhbWlseVN0bXQKIAkJCXwgQ3JlYXRlUG9saWN5U3RtdAog CQkJfCBDcmVhdGVQTGFuZ1N0bXQKKwkJCXwgQ3JlYXRlUHJvcEdyYXBoU3RtdAogCQkJfCBD cmVhdGVTY2hlbWFTdG10CiAJCQl8IENyZWF0ZVNlcVN0bXQKIAkJCXwgQ3JlYXRlU3RtdApA QCAtNjg5MSw2ICs2OTMwLDcgQEAgb2JqZWN0X3R5cGVfYW55X25hbWU6CiAJCQl8IE1BVEVS SUFMSVpFRCBWSUVXCQkJCQkJeyAkJCA9IE9CSkVDVF9NQVRWSUVXOyB9CiAJCQl8IElOREVY CQkJCQkJCQkJeyAkJCA9IE9CSkVDVF9JTkRFWDsgfQogCQkJfCBGT1JFSUdOIFRBQkxFCQkJ CQkJCXsgJCQgPSBPQkpFQ1RfRk9SRUlHTl9UQUJMRTsgfQorCQkJfCBQUk9QRVJUWSBHUkFQ SAkJCQkJCXsgJCQgPSBPQkpFQ1RfUFJPUEdSQVBIOyB9CiAJCQl8IENPTExBVElPTgkJCQkJ CQkJeyAkJCA9IE9CSkVDVF9DT0xMQVRJT047IH0KIAkJCXwgQ09OVkVSU0lPTl9QCQkJCQkJ CXsgJCQgPSBPQkpFQ1RfQ09OVkVSU0lPTjsgfQogCQkJfCBTVEFUSVNUSUNTCQkJCQkJCXsg JCQgPSBPQkpFQ1RfU1RBVElTVElDX0VYVDsgfQpAQCAtNzc0Nyw2ICs3Nzg3LDE1IEBAIHBy aXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJ CX0KKwkJCXwgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJ CQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRh cmdldCkpOworCisJCQkJCW4tPnRhcmd0eXBlID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJCQkJ CW4tPm9ianR5cGUgPSBPQkpFQ1RfUFJPUEdSQVBIOworCQkJCQluLT5vYmpzID0gJDM7CisJ CQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8IFNDSEVNQSBuYW1lX2xpc3QKIAkJCQl7CiAJCQkJ CVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJn ZXQpKTsKQEAgLTkwNjQsNiArOTExMywzNjYgQEAgb3B0X2lmX2V4aXN0czogSUZfUCBFWElT VFMJCQkJCQl7ICQkID0gdHJ1ZTsgfQogCQk7CiAKIAorLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisgKgorICoJCUNSRUFURSBQUk9QRVJUWSBHUkFQSAorICoJCUFMVEVSIFBST1BFUlRZ IEdSQVBICisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitDcmVhdGVQcm9wR3Jh cGhTdG10OiBDUkVBVEUgT3B0VGVtcCBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBv cHRfdmVydGV4X3RhYmxlc19jbGF1c2Ugb3B0X2VkZ2VfdGFibGVzX2NsYXVzZQorCQkJCXsK KwkJCQkJQ3JlYXRlUHJvcEdyYXBoU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVByb3BHcmFw aFN0bXQpOworCisJCQkJCW4tPnBnbmFtZSA9ICQ1OworCQkJCQluLT5wZ25hbWUtPnJlbHBl cnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPnZlcnRleF90YWJsZXMgPSAkNjsKKwkJCQkJbi0+ ZWRnZV90YWJsZXMgPSAkNzsKKworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCTsK Kworb3B0X3ZlcnRleF90YWJsZXNfY2xhdXNlOgorCQkJdmVydGV4X3RhYmxlc19jbGF1c2UJ CQkJeyAkJCA9ICQxOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQl7ICQkID0gTklMOyB9CisJ CTsKKwordmVydGV4X3RhYmxlc19jbGF1c2U6CisJCQl2ZXJ0ZXhfc3lub255bSBUQUJMRVMg JygnIHZlcnRleF90YWJsZV9saXN0ICcpJwl7ICQkID0gJDQ7IH0KKwkJOworCit2ZXJ0ZXhf c3lub255bTogTk9ERSB8IFZFUlRFWAorCQk7CisKK3ZlcnRleF90YWJsZV9saXN0OiB2ZXJ0 ZXhfdGFibGVfZGVmaW5pdGlvbgkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJ fCB2ZXJ0ZXhfdGFibGVfbGlzdCAnLCcgdmVydGV4X3RhYmxlX2RlZmluaXRpb24JCXsgJCQg PSBsYXBwZW5kKCQxLCAkMyk7IH0KKwkJOworCit2ZXJ0ZXhfdGFibGVfZGVmaW5pdGlvbjog cXVhbGlmaWVkX25hbWUgb3B0X3Byb3BncmFwaF90YWJsZV9hbGlhcyBvcHRfZ3JhcGhfdGFi bGVfa2V5X2NsYXVzZQorCQkJCW9wdF9lbGVtZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0 aWVzCisJCQkJeworCQkJCQlQcm9wR3JhcGhWZXJ0ZXggKm4gPSBtYWtlTm9kZShQcm9wR3Jh cGhWZXJ0ZXgpOworCisJCQkJCSQxLT5hbGlhcyA9ICQyOworCQkJCQluLT52dGFibGUgPSAk MTsKKwkJCQkJbi0+dmtleSA9ICQzOworCQkJCQluLT5sYWJlbHMgPSAkNDsKKwkJCQkJbi0+ bG9jYXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisK K29wdF9wcm9wZ3JhcGhfdGFibGVfYWxpYXM6CisJCQlBUyBuYW1lCisJCQkJeworCQkJCQkk JCA9IG1ha2VOb2RlKEFsaWFzKTsKKwkJCQkJJCQtPmFsaWFzbmFtZSA9ICQyOworCQkJCX0K KwkJCXwgLypFTVBUWSovCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKworb3B0X2dyYXBo X3RhYmxlX2tleV9jbGF1c2U6CisJCQlLRVkgJygnIGNvbHVtbkxpc3QgJyknCQkJCXsgJCQg PSAkMzsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJeyAkJCA9IE5JTDsgfQorCQk7CisKK29w dF9lZGdlX3RhYmxlc19jbGF1c2U6CisJCQllZGdlX3RhYmxlc19jbGF1c2UJCQkJCXsgJCQg PSAkMTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJeyAkJCA9IE5JTDsgfQorCQk7CisKK2Vk Z2VfdGFibGVzX2NsYXVzZToKKwkJCWVkZ2Vfc3lub255bSBUQUJMRVMgJygnIGVkZ2VfdGFi bGVfbGlzdAknKScJCQl7ICQkID0gJDQ7IH0KKwkJOworCitlZGdlX3N5bm9ueW06IEVER0Ug fCBSRUxBVElPTlNISVAKKwkJOworCitlZGdlX3RhYmxlX2xpc3Q6IGVkZ2VfdGFibGVfZGVm aW5pdGlvbgkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBlZGdlX3RhYmxl X2xpc3QgJywnIGVkZ2VfdGFibGVfZGVmaW5pdGlvbgkJeyAkJCA9IGxhcHBlbmQoJDEsICQz KTsgfQorCQk7CisKK2VkZ2VfdGFibGVfZGVmaW5pdGlvbjogcXVhbGlmaWVkX25hbWUgb3B0 X3Byb3BncmFwaF90YWJsZV9hbGlhcyBvcHRfZ3JhcGhfdGFibGVfa2V5X2NsYXVzZQorCQkJ CXNvdXJjZV92ZXJ0ZXhfdGFibGUgZGVzdGluYXRpb25fdmVydGV4X3RhYmxlIG9wdF9lbGVt ZW50X3RhYmxlX2xhYmVsX2FuZF9wcm9wZXJ0aWVzCisJCQkJeworCQkJCQlQcm9wR3JhcGhF ZGdlICpuID0gbWFrZU5vZGUoUHJvcEdyYXBoRWRnZSk7CisKKwkJCQkJJDEtPmFsaWFzID0g JDI7CisJCQkJCW4tPmV0YWJsZSA9ICQxOworCQkJCQluLT5la2V5ID0gJDM7CisJCQkJCW4t PmVzcmNrZXkgPSBsaW5pdGlhbCgkNCk7CisJCQkJCW4tPmVzcmN2ZXJ0ZXggPSBsc2Vjb25k KCQ0KTsKKwkJCQkJbi0+ZXNyY3ZlcnRleGNvbHMgPSBsdGhpcmQoJDQpOworCQkJCQluLT5l ZGVzdGtleSA9IGxpbml0aWFsKCQ1KTsKKwkJCQkJbi0+ZWRlc3R2ZXJ0ZXggPSBsc2Vjb25k KCQ1KTsKKwkJCQkJbi0+ZWRlc3R2ZXJ0ZXhjb2xzID0gbHRoaXJkKCQ1KTsKKwkJCQkJbi0+ bGFiZWxzID0gJDY7CisJCQkJCW4tPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9k ZSAqKSBuOworCQkJCX0KKwkJOworCitzb3VyY2VfdmVydGV4X3RhYmxlOiBTT1VSQ0UgbmFt ZQorCQkJCXsKKwkJCQkJJCQgPSBsaXN0X21ha2UzKE5VTEwsICQyLCBOVUxMKTsKKwkJCQl9 CisJCQkJfCBTT1VSQ0UgS0VZICcoJyBjb2x1bW5MaXN0ICcpJyBSRUZFUkVOQ0VTIG5hbWUg JygnIGNvbHVtbkxpc3QgJyknCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTMoJDQsICQ3 LCAkOSk7CisJCQkJfQorCQk7CisKK2Rlc3RpbmF0aW9uX3ZlcnRleF90YWJsZTogREVTVElO QVRJT04gbmFtZQorCQkJCXsKKwkJCQkJJCQgPSBsaXN0X21ha2UzKE5VTEwsICQyLCBOVUxM KTsKKwkJCQl9CisJCQkJfCBERVNUSU5BVElPTiBLRVkgJygnIGNvbHVtbkxpc3QgJyknIFJF RkVSRU5DRVMgbmFtZSAnKCcgY29sdW1uTGlzdCAnKScKKwkJCQl7CisJCQkJCSQkID0gbGlz dF9tYWtlMygkNCwgJDcsICQ5KTsKKwkJCQl9CisJCTsKKworb3B0X2VsZW1lbnRfdGFibGVf bGFiZWxfYW5kX3Byb3BlcnRpZXM6CisJCQllbGVtZW50X3RhYmxlX3Byb3BlcnRpZXMKKwkJ CQl7CisJCQkJCVByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyAqbHAgPSBtYWtlTm9kZShQ cm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMpOworCisJCQkJCWxwLT5wcm9wZXJ0aWVzID0g KFByb3BHcmFwaFByb3BlcnRpZXMgKikgJDE7CisJCQkJCWxwLT5sb2NhdGlvbiA9IEAxOwor CisJCQkJCSQkID0gbGlzdF9tYWtlMShscCk7CisJCQkJfQorCQkJfCBsYWJlbF9hbmRfcHJv cGVydGllc19saXN0CisJCQkJeworCQkJCQkkJCA9ICQxOworCQkJCX0KKwkJCXwgLypFTVBU WSovCisJCQkJeworCQkJCQlQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMgKmxwID0gbWFr ZU5vZGUoUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzKTsKKwkJCQkJUHJvcEdyYXBoUHJv cGVydGllcyAqcHIgPSBtYWtlTm9kZShQcm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQkJCQlw ci0+YWxsID0gdHJ1ZTsKKwkJCQkJcHItPmxvY2F0aW9uID0gLTE7CisJCQkJCWxwLT5wcm9w ZXJ0aWVzID0gcHI7CisJCQkJCWxwLT5sb2NhdGlvbiA9IC0xOworCisJCQkJCSQkID0gbGlz dF9tYWtlMShscCk7CisJCQkJfQorCQk7CisKK2VsZW1lbnRfdGFibGVfcHJvcGVydGllczoK KwkJCU5PIFBST1BFUlRJRVMKKwkJCQl7CisJCQkJCVByb3BHcmFwaFByb3BlcnRpZXMgKnBy ID0gbWFrZU5vZGUoUHJvcEdyYXBoUHJvcGVydGllcyk7CisKKwkJCQkJcHItPnByb3BlcnRp ZXMgPSBOSUw7CisJCQkJCXByLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUg KikgcHI7CisJCQkJfQorCQkJfCBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TCisJCQkvKnwgUFJP UEVSVElFUyBBUkUgQUxMIENPTFVNTlMgKi8KKwkJCQl7CisJCQkJCVByb3BHcmFwaFByb3Bl cnRpZXMgKnByID0gbWFrZU5vZGUoUHJvcEdyYXBoUHJvcGVydGllcyk7CisKKwkJCQkJcHIt PmFsbCA9IHRydWU7CisJCQkJCXByLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5v ZGUgKikgcHI7CisJCQkJfQorCQkJfCBQUk9QRVJUSUVTICcoJyB4bWxfYXR0cmlidXRlX2xp c3QgJyknCisJCQkJeworCQkJCQlQcm9wR3JhcGhQcm9wZXJ0aWVzICpwciA9IG1ha2VOb2Rl KFByb3BHcmFwaFByb3BlcnRpZXMpOworCisJCQkJCXByLT5wcm9wZXJ0aWVzID0gJDM7CisJ CQkJCXByLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUgKikgcHI7CisJCQkJ fQorCQk7CisKK2xhYmVsX2FuZF9wcm9wZXJ0aWVzX2xpc3Q6CisJCQlsYWJlbF9hbmRfcHJv cGVydGllcworCQkJCXsKKwkJCQkJJCQgPSBsaXN0X21ha2UxKCQxKTsKKwkJCQl9CisJCQl8 IGxhYmVsX2FuZF9wcm9wZXJ0aWVzX2xpc3QgbGFiZWxfYW5kX3Byb3BlcnRpZXMKKwkJCQl7 CisJCQkJCSQkID0gbGFwcGVuZCgkMSwgJDIpOworCQkJCX0KKwkJOworCitsYWJlbF9hbmRf cHJvcGVydGllczoKKwkJCWVsZW1lbnRfdGFibGVfbGFiZWxfY2xhdXNlCisJCQkJeworCQkJ CQlQcm9wR3JhcGhMYWJlbEFuZFByb3BlcnRpZXMgKmxwID0gbWFrZU5vZGUoUHJvcEdyYXBo TGFiZWxBbmRQcm9wZXJ0aWVzKTsKKwkJCQkJUHJvcEdyYXBoUHJvcGVydGllcyAqcHIgPSBt YWtlTm9kZShQcm9wR3JhcGhQcm9wZXJ0aWVzKTsKKworCQkJCQlwci0+YWxsID0gdHJ1ZTsK KwkJCQkJcHItPmxvY2F0aW9uID0gLTE7CisKKwkJCQkJbHAtPmxhYmVsID0gJDE7CisJCQkJ CWxwLT5wcm9wZXJ0aWVzID0gcHI7CisJCQkJCWxwLT5sb2NhdGlvbiA9IEAxOworCisJCQkJ CSQkID0gKE5vZGUgKikgbHA7CisJCQkJfQorCQkJfCBlbGVtZW50X3RhYmxlX2xhYmVsX2Ns YXVzZSBlbGVtZW50X3RhYmxlX3Byb3BlcnRpZXMKKwkJCQl7CisJCQkJCVByb3BHcmFwaExh YmVsQW5kUHJvcGVydGllcyAqbHAgPSBtYWtlTm9kZShQcm9wR3JhcGhMYWJlbEFuZFByb3Bl cnRpZXMpOworCisJCQkJCWxwLT5sYWJlbCA9ICQxOworCQkJCQlscC0+cHJvcGVydGllcyA9 IChQcm9wR3JhcGhQcm9wZXJ0aWVzICopICQyOworCQkJCQlscC0+bG9jYXRpb24gPSBAMTsK KworCQkJCQkkJCA9IChOb2RlICopIGxwOworCQkJCX0KKwkJOworCitlbGVtZW50X3RhYmxl X2xhYmVsX2NsYXVzZToKKwkJCUxBQkVMIG5hbWUKKwkJCQl7CisJCQkJCSQkID0gJDI7CisJ CQkJfQorCQkJfCBERUZBVUxUIExBQkVMCisJCQkJeworCQkJCQkkJCA9IE5VTEw7CisJCQkJ fQorCQk7CisKK0FsdGVyUHJvcEdyYXBoU3RtdDoKKwkJCUFMVEVSIFBST1BFUlRZIEdSQVBI IHF1YWxpZmllZF9uYW1lIEFERF9QIHZlcnRleF90YWJsZXNfY2xhdXNlCisJCQkJeworCQkJ CQlBbHRlclByb3BHcmFwaFN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQp OworCisJCQkJCW4tPnBnbmFtZSA9ICQ0OworCQkJCQluLT5hZGRfdmVydGV4X3RhYmxlcyA9 ICQ2OworCisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIFBST1BF UlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIEFERF9QIHZlcnRleF90YWJsZXNfY2xhdXNlIEFE RF9QIGVkZ2VfdGFibGVzX2NsYXVzZQorCQkJCXsKKwkJCQkJQWx0ZXJQcm9wR3JhcGhTdG10 ICpuID0gbWFrZU5vZGUoQWx0ZXJQcm9wR3JhcGhTdG10KTsKKworCQkJCQluLT5wZ25hbWUg PSAkNDsKKwkJCQkJbi0+YWRkX3ZlcnRleF90YWJsZXMgPSAkNjsKKwkJCQkJbi0+YWRkX2Vk Z2VfdGFibGVzID0gJDg7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwg QUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUREX1AgZWRnZV90YWJsZXNf Y2xhdXNlCisJCQkJeworCQkJCQlBbHRlclByb3BHcmFwaFN0bXQgKm4gPSBtYWtlTm9kZShB bHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBnbmFtZSA9ICQ0OworCQkJCQluLT5h ZGRfZWRnZV90YWJsZXMgPSAkNjsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBEUk9QIHZlcnRleF9z eW5vbnltIFRBQkxFUyAnKCcgbmFtZV9saXN0ICcpJyBvcHRfZHJvcF9iZWhhdmlvcgorCQkJ CXsKKwkJCQkJQWx0ZXJQcm9wR3JhcGhTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQcm9wR3Jh cGhTdG10KTsKKworCQkJCQluLT5wZ25hbWUgPSAkNDsKKwkJCQkJbi0+ZHJvcF92ZXJ0ZXhf dGFibGVzID0gJDk7CisJCQkJCW4tPmRyb3BfYmVoYXZpb3IgPSAkMTE7CisKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlm aWVkX25hbWUgRFJPUCBlZGdlX3N5bm9ueW0gVEFCTEVTICcoJyBuYW1lX2xpc3QgJyknIG9w dF9kcm9wX2JlaGF2aW9yCisJCQkJeworCQkJCQlBbHRlclByb3BHcmFwaFN0bXQgKm4gPSBt YWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBnbmFtZSA9ICQ0Owor CQkJCQluLT5kcm9wX2VkZ2VfdGFibGVzID0gJDk7CisJCQkJCW4tPmRyb3BfYmVoYXZpb3Ig PSAkMTE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgUFJP UEVSVFkgR1JBUEggcXVhbGlmaWVkX25hbWUgQUxURVIgdmVydGV4X29yX2VkZ2UgVEFCTEUg bmFtZQorCQkJCWFkZF9sYWJlbF9saXN0CisJCQkJeworCQkJCQlBbHRlclByb3BHcmFwaFN0 bXQgKm4gPSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCisJCQkJCW4tPnBnbmFt ZSA9ICQ0OworCQkJCQluLT5lbGVtZW50X2tpbmQgPSAkNjsKKwkJCQkJbi0+ZWxlbWVudF9h bGlhcyA9ICQ4OworCQkJCQluLT5hZGRfbGFiZWxzID0gJDk7CisKKwkJCQkJJCQgPSAoTm9k ZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgUFJPUEVSVFkgR1JBUEggcXVhbGlmaWVkX25h bWUgQUxURVIgdmVydGV4X29yX2VkZ2UgVEFCTEUgbmFtZQorCQkJCURST1AgTEFCRUwgbmFt ZSBvcHRfZHJvcF9iZWhhdmlvcgorCQkJCXsKKwkJCQkJQWx0ZXJQcm9wR3JhcGhTdG10ICpu ID0gbWFrZU5vZGUoQWx0ZXJQcm9wR3JhcGhTdG10KTsKKworCQkJCQluLT5wZ25hbWUgPSAk NDsKKwkJCQkJbi0+ZWxlbWVudF9raW5kID0gJDY7CisJCQkJCW4tPmVsZW1lbnRfYWxpYXMg PSAkODsKKwkJCQkJbi0+ZHJvcF9sYWJlbCA9ICQxMTsKKwkJCQkJbi0+ZHJvcF9iZWhhdmlv ciA9ICQxMjsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBxdWFsaWZpZWRfbmFtZSBBTFRFUiB2ZXJ0ZXhfb3JfZWRnZSBUQUJM RSBuYW1lCisJCQkJQUxURVIgTEFCRUwgbmFtZSBBRERfUCBQUk9QRVJUSUVTICcoJyB4bWxf YXR0cmlidXRlX2xpc3QgJyknCisJCQkJeworCQkJCQlBbHRlclByb3BHcmFwaFN0bXQgKm4g PSBtYWtlTm9kZShBbHRlclByb3BHcmFwaFN0bXQpOworCQkJCQlQcm9wR3JhcGhQcm9wZXJ0 aWVzICpwciA9IG1ha2VOb2RlKFByb3BHcmFwaFByb3BlcnRpZXMpOworCisJCQkJCW4tPnBn bmFtZSA9ICQ0OworCQkJCQluLT5lbGVtZW50X2tpbmQgPSAkNjsKKwkJCQkJbi0+ZWxlbWVu dF9hbGlhcyA9ICQ4OworCQkJCQluLT5hbHRlcl9sYWJlbCA9ICQxMTsKKworCQkJCQlwci0+ cHJvcGVydGllcyA9ICQxNTsKKwkJCQkJcHItPmxvY2F0aW9uID0gQDEzOworCQkJCQluLT5h ZGRfcHJvcGVydGllcyA9IHByOworCisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJ CQl8IEFMVEVSIFBST1BFUlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIEFMVEVSIHZlcnRleF9v cl9lZGdlIFRBQkxFIG5hbWUKKwkJCQlBTFRFUiBMQUJFTCBuYW1lIERST1AgUFJPUEVSVElF UyAnKCcgbmFtZV9saXN0ICcpJyBvcHRfZHJvcF9iZWhhdmlvcgorCQkJCXsKKwkJCQkJQWx0 ZXJQcm9wR3JhcGhTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQcm9wR3JhcGhTdG10KTsKKwor CQkJCQluLT5wZ25hbWUgPSAkNDsKKwkJCQkJbi0+ZWxlbWVudF9raW5kID0gJDY7CisJCQkJ CW4tPmVsZW1lbnRfYWxpYXMgPSAkODsKKwkJCQkJbi0+YWx0ZXJfbGFiZWwgPSAkMTE7CisJ CQkJCW4tPmRyb3BfcHJvcGVydGllcyA9ICQxNTsKKwkJCQkJbi0+ZHJvcF9iZWhhdmlvciA9 ICQxNzsKKworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKK3ZlcnRleF9v cl9lZGdlOgorCQkJdmVydGV4X3N5bm9ueW0JCQkJCQl7ICQkID0gUFJPUEdSQVBIX0VMRU1F TlRfS0lORF9WRVJURVg7IH0KKwkJCXwgZWRnZV9zeW5vbnltCQkJCQkJeyAkJCA9IFBST1BH UkFQSF9FTEVNRU5UX0tJTkRfRURHRTsgfQorCQk7CisKK2FkZF9sYWJlbF9saXN0OgorCQkJ YWRkX2xhYmVsCQkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBhZGRfbGFi ZWxfbGlzdCBhZGRfbGFiZWwJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDIpOwl9CisJCTsKKwor YWRkX2xhYmVsOiBBRERfUCBMQUJFTCBuYW1lIGVsZW1lbnRfdGFibGVfcHJvcGVydGllcwor CQkJCXsKKwkJCQkJUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzICpscCA9IG1ha2VOb2Rl KFByb3BHcmFwaExhYmVsQW5kUHJvcGVydGllcyk7CisKKwkJCQkJbHAtPmxhYmVsID0gJDM7 CisJCQkJCWxwLT5wcm9wZXJ0aWVzID0gKFByb3BHcmFwaFByb3BlcnRpZXMgKikgJDQ7CisJ CQkJCWxwLT5sb2NhdGlvbiA9IEAxOworCisJCQkJCSQkID0gKE5vZGUgKikgbHA7CisJCQkJ fQorCQk7CisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJCUNSRUFURSBU UkFOU0ZPUk0gLyBEUk9QIFRSQU5TRk9STQpAQCAtOTM2NCw2ICs5NzczLDE2IEBAIFJlbmFt ZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUg VE8gbmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUg KikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFBST1BFUlRZIEdSQVBIIHF1YWxpZmllZF9uYW1l IFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUo UmVuYW1lU3RtdCk7CisKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9QUk9QR1JBUEg7 CisJCQkJCW4tPnJlbGF0aW9uID0gJDQ7CisJCQkJCW4tPm5ld25hbWUgPSAkNzsKKwkJCQkJ bi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJ CQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVOQU1FIFRPIG5hbWUKIAkJCQl7CiAJCQkJ CVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKQEAgLTk5ODksNiArMTA0 MDgsMjYgQEAgQWx0ZXJPYmplY3RTY2hlbWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0g ZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFBST1BF UlRZIEdSQVBIIHF1YWxpZmllZF9uYW1lIFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJ QWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFT dG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1BST1BHUkFQSDsKKwkJCQkJ bi0+cmVsYXRpb24gPSAkNDsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDc7CisJCQkJCW4tPm1p c3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBB TFRFUiBQUk9QRVJUWSBHUkFQSCBJRl9QIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBTRVQgU0NI RU1BIG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VO b2RlKEFsdGVyT2JqZWN0U2NoZW1hU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9C SkVDVF9QUk9QR1JBUEg7CisJCQkJCW4tPnJlbGF0aW9uID0gJDY7CisJCQkJCW4tPm5ld3Nj aGVtYSA9ICQ5OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9k ZSAqKW47CisJCQkJfQogCQkJfCBBTFRFUiBST1VUSU5FIGZ1bmN0aW9uX3dpdGhfYXJndHlw ZXMgU0VUIFNDSEVNQSBuYW1lCiAJCQkJewogCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQg Km4gPSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOwpAQCAtMTAzMzIsNiArMTA3 NzEsMTUgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0 aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9ICQ2Owog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBQUk9QRVJUWSBHUkFQ SCBxdWFsaWZpZWRfbmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJP d25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2Jq ZWN0VHlwZSA9IE9CSkVDVF9QUk9QR1JBUEg7CisJCQkJCW4tPnJlbGF0aW9uID0gJDQ7CisJ CQkJCW4tPm5ld293bmVyID0gJDc7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJ CQl8IEFMVEVSIFJPVVRJTkUgZnVuY3Rpb25fd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xl U3BlYwogCQkJCXsKIAkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93 bmVyU3RtdCk7CkBAIC0xMzQwOCw2ICsxMzg1NiwxNyBAQCB0YWJsZV9yZWY6CXJlbGF0aW9u X2V4cHIgb3B0X2FsaWFzX2NsYXVzZQogCQkJCQluLT5hbGlhcyA9ICQzOwogCQkJCQkkJCA9 IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBHUkFQSF9UQUJMRSAnKCcgcXVhbGlmaWVkX25h bWUgTUFUQ0ggZ3JhcGhfcGF0dGVybiBDT0xVTU5TICcoJyB4bWxfYXR0cmlidXRlX2xpc3Qg JyknICcpJyBvcHRfYWxpYXNfY2xhdXNlCisJCQkJeworCQkJCQlSYW5nZUdyYXBoVGFibGUg Km4gPSBtYWtlTm9kZShSYW5nZUdyYXBoVGFibGUpOworCisJCQkJCW4tPmdyYXBoX25hbWUg PSAkMzsKKwkJCQkJbi0+Z3JhcGhfcGF0dGVybiA9IGNhc3ROb2RlKEdyYXBoUGF0dGVybiwg JDUpOworCQkJCQluLT5jb2x1bW5zID0gJDg7CisJCQkJCW4tPmFsaWFzID0gJDExOworCQkJ CQluLT5sb2NhdGlvbiA9IEAxOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQkJ fCBzZWxlY3Rfd2l0aF9wYXJlbnMgb3B0X2FsaWFzX2NsYXVzZQogCQkJCXsKIAkJCQkJUmFu Z2VTdWJzZWxlY3QgKm4gPSBtYWtlTm9kZShSYW5nZVN1YnNlbGVjdCk7CkBAIC0xNDU4OSw2 ICsxNTA0OCwxMCBAQCBhX2V4cHI6CQljX2V4cHIJCQkJCQkJCQl7ICQkID0gJDE7IH0KIAkJ CQl7ICQkID0gKE5vZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwgIj49IiwgJDEs ICQzLCBAMik7IH0KIAkJCXwgYV9leHByIE5PVF9FUVVBTFMgYV9leHByCiAJCQkJeyAkJCA9 IChOb2RlICopIG1ha2VTaW1wbGVBX0V4cHIoQUVYUFJfT1AsICI8PiIsICQxLCAkMywgQDIp OyB9CisJCQl8IGFfZXhwciBMRUZUX0FSUk9XIGFfZXhwcgorCQkJCXsgJCQgPSAoTm9kZSAq KSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCAiPC0iLCAkMSwgJDMsIEAyKTsgfQorCQkJ fCBhX2V4cHIgUklHSFRfQVJST1cgYV9leHByCisJCQkJeyAkJCA9IChOb2RlICopIG1ha2VT aW1wbGVBX0V4cHIoQUVYUFJfT1AsICItPiIsICQxLCAkMywgQDIpOyB9CiAKIAkJCXwgYV9l eHByIHF1YWxfT3AgYV9leHByCQkJCSVwcmVjIE9wCiAJCQkJeyAkJCA9IChOb2RlICopIG1h a2VBX0V4cHIoQUVYUFJfT1AsICQyLCAkMSwgJDMsIEAyKTsgfQpAQCAtMTUwNjgsNiArMTU1 MzEsMTAgQEAgYl9leHByOgkJY19leHByCiAJCQkJeyAkJCA9IChOb2RlICopIG1ha2VTaW1w bGVBX0V4cHIoQUVYUFJfT1AsICI+PSIsICQxLCAkMywgQDIpOyB9CiAJCQl8IGJfZXhwciBO T1RfRVFVQUxTIGJfZXhwcgogCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHBy KEFFWFBSX09QLCAiPD4iLCAkMSwgJDMsIEAyKTsgfQorCQkJfCBiX2V4cHIgTEVGVF9BUlJP VyBiX2V4cHIKKwkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVNpbXBsZUFfRXhwcihBRVhQUl9P UCwgIjwtIiwgJDEsICQzLCBAMik7IH0KKwkJCXwgYl9leHByIFJJR0hUX0FSUk9XIGJfZXhw cgorCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCAiLT4i LCAkMSwgJDMsIEAyKTsgfQogCQkJfCBiX2V4cHIgcXVhbF9PcCBiX2V4cHIJCQkJJXByZWMg T3AKIAkJCQl7ICQkID0gKE5vZGUgKikgbWFrZUFfRXhwcihBRVhQUl9PUCwgJDIsICQxLCAk MywgQDIpOyB9CiAJCQl8IHF1YWxfT3AgYl9leHByCQkJCQklcHJlYyBPcApAQCAtMTYxNzIs NiArMTY2MzksOCBAQCBNYXRoT3A6CQkgJysnCQkJCQkJCQkJeyAkJCA9ICIrIjsgfQogCQkJ fCBMRVNTX0VRVUFMUwkJCQkJCQl7ICQkID0gIjw9IjsgfQogCQkJfCBHUkVBVEVSX0VRVUFM UwkJCQkJCXsgJCQgPSAiPj0iOyB9CiAJCQl8IE5PVF9FUVVBTFMJCQkJCQkJeyAkJCA9ICI8 PiI7IH0KKwkJCXwgTEVGVF9BUlJPVwkJCQkJCQl7ICQkID0gIjwtIjsgfQorCQkJfCBSSUdI VF9BUlJPVwkJCQkJCQl7ICQkID0gIi0+IjsgfQogCQk7CiAKIHF1YWxfT3A6CU9wCkBAIC0x NjY4Myw2ICsxNzE1MiwxOTIgQEAganNvbl9hcnJheV9hZ2dyZWdhdGVfb3JkZXJfYnlfY2xh dXNlX29wdDoKIAkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IE5JTDsgfQogCQk7CiAK KworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJZ3JhcGggcGF0dGVybnMKKyAq CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK2dyYXBoX3BhdHRlcm46CisJCQlwYXRo X3BhdHRlcm5fbGlzdCB3aGVyZV9jbGF1c2UKKwkJCQl7CisJCQkJCUdyYXBoUGF0dGVybiAq Z3AgPSBtYWtlTm9kZShHcmFwaFBhdHRlcm4pOworCisJCQkJCWdwLT5wYXRoX3BhdHRlcm5f bGlzdCA9ICQxOworCQkJCQlncC0+d2hlcmVDbGF1c2UgPSAkMjsKKwkJCQkJJCQgPSAoTm9k ZSAqKSBncDsKKwkJCQl9CisJCTsKKworcGF0aF9wYXR0ZXJuX2xpc3Q6CisJCQlwYXRoX3Bh dHRlcm4JCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9CisJCQl8IHBhdGhfcGF0dGVy bl9saXN0ICcsJyBwYXRoX3BhdHRlcm4JeyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCQk7 CisKK3BhdGhfcGF0dGVybjoKKwkJCXBhdGhfcGF0dGVybl9leHByZXNzaW9uCQkJCQl7ICQk ID0gJDE7IH0KKwkJOworCisvKgorICogcGF0aCBwYXR0ZXJuIGV4cHJlc3Npb24KKyAqLwor CitwYXRoX3BhdHRlcm5fZXhwcmVzc2lvbjoKKwkJCXBhdGhfdGVybQkJCQkJCQkJeyAkJCA9 ICQxOyB9CisJCQkvKiB8IHBhdGhfbXVsdGlzZXRfYWx0ZXJuYXRpb24gKi8KKwkJCS8qIHwg cGF0aF9wYXR0ZXJuX3VuaW9uICovCisJCTsKKworcGF0aF90ZXJtOgorCQkJcGF0aF9mYWN0 b3IJCQkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBwYXRoX3Rlcm0gcGF0 aF9mYWN0b3IJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMik7IH0KKwkJOworCitwYXRoX2Zh Y3RvcjoKKwkJCXBhdGhfcHJpbWFyeSBvcHRfZ3JhcGhfcGF0dGVybl9xdWFudGlmaWVyCisJ CQkJeworCQkJCQlHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXAgPSAoR3JhcGhFbGVtZW50UGF0 dGVybiAqKSAkMTsKKworCQkJCQlnZXAtPnF1YW50aWZpZXIgPSAkMjsKKwkJCQl9CisJCTsK KworcGF0aF9wcmltYXJ5OgorCQkJJygnIG9wdF9jb2xpZCBvcHRfaXNfbGFiZWxfZXhwcmVz c2lvbiB3aGVyZV9jbGF1c2UgJyknCisJCQkJeworCQkJCQlHcmFwaEVsZW1lbnRQYXR0ZXJu ICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJCQlnZXAtPmtp bmQgPSBWRVJURVhfUEFUVEVSTjsKKwkJCQkJZ2VwLT52YXJpYWJsZSA9ICQyOworCQkJCQln ZXAtPmxhYmVsZXhwciA9ICQzOworCQkJCQlnZXAtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJ CWdlcC0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChOb2RlICopIGdlcDsKKwkJCQl9 CisJCQkvKiBmdWxsIGVkZ2UgcG9pbnRpbmcgbGVmdDogPC1bIHh4eCBdLSAqLworCQkJfCBM RUZUX0FSUk9XX0JSQUNLRVQgb3B0X2NvbGlkIG9wdF9pc19sYWJlbF9leHByZXNzaW9uIHdo ZXJlX2NsYXVzZSBSSUdIVF9CUkFDS0VUX01JTlVTCisJCQkJeworCQkJCQlHcmFwaEVsZW1l bnRQYXR0ZXJuICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJ CQlnZXAtPmtpbmQgPSBFREdFX1BBVFRFUk5fTEVGVDsKKwkJCQkJZ2VwLT52YXJpYWJsZSA9 ICQyOworCQkJCQlnZXAtPmxhYmVsZXhwciA9ICQzOworCQkJCQlnZXAtPndoZXJlQ2xhdXNl ID0gJDQ7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBAMTsKKworCQkJCQkkJCA9IChOb2RlICop IGdlcDsKKwkJCQl9CisJCQkvKiBmdWxsIGVkZ2UgcG9pbnRpbmcgcmlnaHQ6IC1bIHh4eCBd LT4gKi8KKwkJCXwgTUlOVVNfTEVGVF9CUkFDS0VUIG9wdF9jb2xpZCBvcHRfaXNfbGFiZWxf ZXhwcmVzc2lvbiB3aGVyZV9jbGF1c2UgQlJBQ0tFVF9SSUdIVF9BUlJPVworCQkJCXsKKwkJ CQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3JhcGhFbGVtZW50UGF0 dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX1JJR0hUOworCQkJCQln ZXAtPnZhcmlhYmxlID0gJDI7CisJCQkJCWdlcC0+bGFiZWxleHByID0gJDM7CisJCQkJCWdl cC0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJZ2VwLT5sb2NhdGlvbiA9IEAxOworCisJCQkJ CSQkID0gKE5vZGUgKikgZ2VwOworCQkJCX0KKwkJCS8qIGZ1bGwgZWRnZSBhbnkgZGlyZWN0 aW9uOiAtWyB4eHggXS0gKi8KKwkJCXwgTUlOVVNfTEVGVF9CUkFDS0VUIG9wdF9jb2xpZCBv cHRfaXNfbGFiZWxfZXhwcmVzc2lvbiB3aGVyZV9jbGF1c2UgUklHSFRfQlJBQ0tFVF9NSU5V UworCQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5vZGUoR3Jh cGhFbGVtZW50UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRURVJOX0FO WTsKKwkJCQkJZ2VwLT52YXJpYWJsZSA9ICQyOworCQkJCQlnZXAtPmxhYmVsZXhwciA9ICQz OworCQkJCQlnZXAtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBA MTsKKworCQkJCQkkJCA9IChOb2RlICopIGdlcDsKKwkJCQl9CisJCQkvKiBhYmJyZXZpYXRl ZCBlZGdlIHBhdHRlcm5zICovCisJCQl8IExFRlRfQVJST1cKKwkJCQl7CisJCQkJCUdyYXBo RWxlbWVudFBhdHRlcm4gKmdlcCA9IG1ha2VOb2RlKEdyYXBoRWxlbWVudFBhdHRlcm4pOwor CisJCQkJCWdlcC0+a2luZCA9IEVER0VfUEFUVEVSTl9MRUZUOworCQkJCQlnZXAtPmxvY2F0 aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJfQorCQkJfCBSSUdI VF9BUlJPVworCQkJCXsKKwkJCQkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbWFrZU5v ZGUoR3JhcGhFbGVtZW50UGF0dGVybik7CisKKwkJCQkJZ2VwLT5raW5kID0gRURHRV9QQVRU RVJOX1JJR0hUOworCQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisKKwkJCQkJJCQgPSAoTm9k ZSAqKSBnZXA7CisJCQkJfQorCQkJfCAnLScKKwkJCQl7CisJCQkJCUdyYXBoRWxlbWVudFBh dHRlcm4gKmdlcCA9IG1ha2VOb2RlKEdyYXBoRWxlbWVudFBhdHRlcm4pOworCisJCQkJCWdl cC0+a2luZCA9IEVER0VfUEFUVEVSTl9BTlk7CisJCQkJCWdlcC0+bG9jYXRpb24gPSBAMTsK KworCQkJCQkkJCA9IChOb2RlICopIGdlcDsKKwkJCQl9CisJCQl8ICcoJyBwYXRoX3BhdHRl cm5fZXhwcmVzc2lvbiB3aGVyZV9jbGF1c2UgJyknCisJCQkJeworCQkJCQlHcmFwaEVsZW1l bnRQYXR0ZXJuICpnZXAgPSBtYWtlTm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuKTsKKworCQkJ CQlnZXAtPmtpbmQgPSBQQVJFTl9FWFBSOworCQkJCQlnZXAtPnN1YmV4cHIgPSAkMjsKKwkJ CQkJZ2VwLT53aGVyZUNsYXVzZSA9ICQzOworCQkJCQlnZXAtPmxvY2F0aW9uID0gQDE7CisK KwkJCQkJJCQgPSAoTm9kZSAqKSBnZXA7CisJCQkJfQorCQk7CisKK29wdF9jb2xpZDoKKwkJ CUNvbElkCQkJeyAkJCA9ICQxOyB9CisJCQl8IC8qRU1QVFkqLwkJeyAkJCA9IE5VTEw7IH0K KwkJOworCitvcHRfaXNfbGFiZWxfZXhwcmVzc2lvbjoKKwkJCUlTIGxhYmVsX2V4cHJlc3Np b24JCXsgJCQgPSAkMjsgfQorCQkJfCAnOicgbGFiZWxfZXhwcmVzc2lvbgl7ICQkID0gJDI7 IH0KKwkJCXwgLypFTVBUWSovCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKworLyoKKyAqIGdy YXBoIHBhdHRlcm4gcXVhbnRpZmllcgorICovCisKK29wdF9ncmFwaF9wYXR0ZXJuX3F1YW50 aWZpZXI6CisJCQlMRUZUX0JSQUNFIEljb25zdCBSSUdIVF9CUkFDRQkJCQl7ICQkID0gbGlz dF9tYWtlMl9pbnQoJDIsICQyKTsgfQorCQkJfCBMRUZUX0JSQUNFICcsJyBJY29uc3QgUklH SFRfQlJBQ0UJCQl7ICQkID0gbGlzdF9tYWtlMl9pbnQoMCwgJDMpOyB9CisJCQl8IExFRlRf QlJBQ0UgSWNvbnN0ICcsJyBJY29uc3QgUklHSFRfQlJBQ0UJeyAkJCA9IGxpc3RfbWFrZTJf aW50KCQyLCAkNCk7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQkJeyAkJCA9IE5VTEw7IH0K KwkJOworCisvKgorICogbGFiZWwgZXhwcmVzc2lvbgorICovCisKK2xhYmVsX2V4cHJlc3Np b246CisJCQlsYWJlbF90ZXJtCisJCQl8IGxhYmVsX2Rpc2p1bmN0aW9uCisJCTsKKworbGFi ZWxfZGlzanVuY3Rpb246CisJCQlsYWJlbF9leHByZXNzaW9uICd8JyBsYWJlbF90ZXJtCisJ CQkJeyAkJCA9IG1ha2VPckV4cHIoJDEsICQzLCBAMik7IH0KKwkJOworCitsYWJlbF90ZXJt OgorCQkJbmFtZQorCQkJCXsgJCQgPSBtYWtlQ29sdW1uUmVmKCQxLCBOSUwsIEAxLCB5eXNj YW5uZXIpOyB9CisJCTsKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgl0 YXJnZXQgbGlzdCBmb3IgU0VMRUNUCkBAIC0xNzIwMSw2ICsxNzg1Niw3IEBAIHVucmVzZXJ2 ZWRfa2V5d29yZDoKIAkJCXwgREVMSU1JVEVSUwogCQkJfCBERVBFTkRTCiAJCQl8IERFUFRI CisJCQl8IERFU1RJTkFUSU9OCiAJCQl8IERFVEFDSAogCQkJfCBESUNUSU9OQVJZCiAJCQl8 IERJU0FCTEVfUApAQCAtMTcyMTAsNiArMTc4NjYsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6 CiAJCQl8IERPVUJMRV9QCiAJCQl8IERST1AKIAkJCXwgRUFDSAorCQkJfCBFREdFCiAJCQl8 IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCiAJCQl8IEVOQ1JZUFRFRApAQCAtMTcyMzcsNiAr MTc4OTQsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IEdFTkVSQVRFRAogCQkJfCBH TE9CQUwKIAkJCXwgR1JBTlRFRAorCQkJfCBHUkFQSAogCQkJfCBHUk9VUFMKIAkJCXwgSEFO RExFUgogCQkJfCBIRUFERVJfUApAQCAtMTcyOTksNiArMTc5NTcsNyBAQCB1bnJlc2VydmVk X2tleXdvcmQ6CiAJCQl8IE5GS0MKIAkJCXwgTkZLRAogCQkJfCBOTworCQkJfCBOT0RFCiAJ CQl8IE5PUk1BTElaRUQKIAkJCXwgTk9USElORwogCQkJfCBOT1RJRlkKQEAgLTE3MzM3LDYg KzE3OTk2LDggQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBQUk9DRURVUkUKIAkJCXwg UFJPQ0VEVVJFUwogCQkJfCBQUk9HUkFNCisJCQl8IFBST1BFUlRJRVMKKwkJCXwgUFJPUEVS VFkKIAkJCXwgUFVCTElDQVRJT04KIAkJCXwgUVVPVEUKIAkJCXwgUkFOR0UKQEAgLTE3MzQ4 LDYgKzE4MDA5LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBSRUZFUkVOQ0lORwog CQkJfCBSRUZSRVNICiAJCQl8IFJFSU5ERVgKKwkJCXwgUkVMQVRJT05TSElQCiAJCQl8IFJF TEFUSVZFX1AKIAkJCXwgUkVMRUFTRQogCQkJfCBSRU5BTUUKQEAgLTE3Mzg3LDYgKzE4MDQ5 LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBTSU1QTEUKIAkJCXwgU0tJUAogCQkJ fCBTTkFQU0hPVAorCQkJfCBTT1VSQ0UKIAkJCXwgU1FMX1AKIAkJCXwgU1RBQkxFCiAJCQl8 IFNUQU5EQUxPTkVfUApAQCAtMTc0MzMsNiArMTgwOTYsNyBAQCB1bnJlc2VydmVkX2tleXdv cmQ6CiAJCQl8IFZBTFVFX1AKIAkJCXwgVkFSWUlORwogCQkJfCBWRVJTSU9OX1AKKwkJCXwg VkVSVEVYCiAJCQl8IFZJRVcKIAkJCXwgVklFV1MKIAkJCXwgVk9MQVRJTEUKQEAgLTE3NDcx LDYgKzE4MTM1LDcgQEAgY29sX25hbWVfa2V5d29yZDoKIAkJCXwgRVhJU1RTCiAJCQl8IEVY VFJBQ1QKIAkJCXwgRkxPQVRfUAorCQkJfCBHUkFQSF9UQUJMRQogCQkJfCBHUkVBVEVTVAog CQkJfCBHUk9VUElORwogCQkJfCBJTk9VVApAQCAtMTc3NTYsNiArMTg0MjEsNyBAQCBiYXJl X2xhYmVsX2tleXdvcmQ6CiAJCQl8IERFUEVORFMKIAkJCXwgREVQVEgKIAkJCXwgREVTQwor CQkJfCBERVNUSU5BVElPTgogCQkJfCBERVRBQ0gKIAkJCXwgRElDVElPTkFSWQogCQkJfCBE SVNBQkxFX1AKQEAgLTE3NzY3LDYgKzE4NDMzLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgog CQkJfCBET1VCTEVfUAogCQkJfCBEUk9QCiAJCQl8IEVBQ0gKKwkJCXwgRURHRQogCQkJfCBF TFNFCiAJCQl8IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCkBAIC0xNzgwMiw2ICsxODQ2OSw4 IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgR0VORVJBVEVECiAJCQl8IEdMT0JBTAog CQkJfCBHUkFOVEVECisJCQl8IEdSQVBICisJCQl8IEdSQVBIX1RBQkxFCiAJCQl8IEdSRUFU RVNUCiAJCQl8IEdST1VQSU5HCiAJCQl8IEdST1VQUwpAQCAtMTc4OTAsNiArMTg1NTksNyBA QCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IE5GS0MKIAkJCXwgTkZLRAogCQkJfCBOTwor CQkJfCBOT0RFCiAJCQl8IE5PTkUKIAkJCXwgTk9STUFMSVpFCiAJCQl8IE5PUk1BTElaRUQK QEAgLTE3OTQxLDYgKzE4NjExLDggQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBQUk9D RURVUkUKIAkJCXwgUFJPQ0VEVVJFUwogCQkJfCBQUk9HUkFNCisJCQl8IFBST1BFUlRJRVMK KwkJCXwgUFJPUEVSVFkKIAkJCXwgUFVCTElDQVRJT04KIAkJCXwgUVVPVEUKIAkJCXwgUkFO R0UKQEAgLTE3OTU0LDYgKzE4NjI2LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBS RUZFUkVOQ0lORwogCQkJfCBSRUZSRVNICiAJCQl8IFJFSU5ERVgKKwkJCXwgUkVMQVRJT05T SElQCiAJCQl8IFJFTEFUSVZFX1AKIAkJCXwgUkVMRUFTRQogCQkJfCBSRU5BTUUKQEAgLTE4 MDAwLDYgKzE4NjczLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBTTUFMTElOVAog CQkJfCBTTkFQU0hPVAogCQkJfCBTT01FCisJCQl8IFNPVVJDRQogCQkJfCBTUUxfUAogCQkJ fCBTVEFCTEUKIAkJCXwgU1RBTkRBTE9ORV9QCkBAIC0xODA2NCw2ICsxODczOCw3IEBAIGJh cmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBW RVJTSU9OX1AKKwkJCXwgVkVSVEVYCiAJCQl8IFZJRVcKIAkJCXwgVklFV1MKIAkJCXwgVk9M QVRJTEUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9tZXNvbi5idWlsZCBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9tZXNvbi5idWlsZAppbmRleCA4ZTgyOTU2NDBiYy4uNGMwMzM0 NmRlYzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9tZXNvbi5idWlsZAorKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvbWVzb24uYnVpbGQKQEAgLTEwLDYgKzEwLDcgQEAgYmFj a2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncGFyc2VfZW5yLmMnLAogICAncGFyc2VfZXhw ci5jJywKICAgJ3BhcnNlX2Z1bmMuYycsCisgICdwYXJzZV9ncmFwaHRhYmxlLmMnLAogICAn cGFyc2VfbWVyZ2UuYycsCiAgICdwYXJzZV9ub2RlLmMnLAogICAncGFyc2Vfb3Blci5jJywK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwppbmRleCA0YjUwMjc4ZmQwZC4uNjkzYTQ5 YmI3ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAgLTM3LDYgKzM3LDcg QEAKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Z1bmMuaCIKKyNpbmNs dWRlICJwYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJz ZV9vcGVyLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgpAQCAtNjksNiArNzAsOCBAQCBzdGF0aWMgUGFy c2VOYW1lc3BhY2VJdGVtICp0cmFuc2Zvcm1SYW5nZUZ1bmN0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJCQkJCQkJCQkJCSAgUmFuZ2VGdW5jdGlvbiAqcik7CiBzdGF0aWMgUGFyc2VO YW1lc3BhY2VJdGVtICp0cmFuc2Zvcm1SYW5nZVRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJCQkJCQkJCQkgICBSYW5nZVRhYmxlRnVuYyAqcnRmKTsKK3N0YXRpYyBQYXJz ZU5hbWVzcGFjZUl0ZW0gKnRyYW5zZm9ybVJhbmdlR3JhcGhUYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsCisJCQkJCQkJCQkJCQkJUmFuZ2VHcmFwaFRhYmxlICpyZ3QpOwogc3RhdGljIFRh YmxlU2FtcGxlQ2xhdXNlICp0cmFuc2Zvcm1SYW5nZVRhYmxlU2FtcGxlKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQlSYW5nZVRhYmxlU2FtcGxlICpydHMpOwogc3RhdGlj IFBhcnNlTmFtZXNwYWNlSXRlbSAqZ2V0TlNJdGVtRm9yU3BlY2lhbFJlbGF0aW9uVHlwZXMo UGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtODk4LDYgKzkwMSw3NiBAQCB0cmFuc2Zvcm1SYW5n ZVRhYmxlRnVuYyhQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGFibGVGdW5jICpydGYpCiAJ CQkJCQkJCQkJICB0ZiwgcnRmLT5hbGlhcywgaXNfbGF0ZXJhbCwgdHJ1ZSk7CiB9CiAKKy8q CisgKiB0cmFuc2Zvcm1SYW5nZUdyYXBoVGFibGUgLS0gdHJhbnNmb3JtIGEgR1JBUEhfVEFC TEUgY2xhdXNlCisgKi8KK3N0YXRpYyBQYXJzZU5hbWVzcGFjZUl0ZW0gKgordHJhbnNmb3Jt UmFuZ2VHcmFwaFRhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VHcmFwaFRhYmxlICpy Z3QpCit7CisJUmVsYXRpb24JcmVsOworCU9pZAkJCWdyYXBoaWQ7CisJUGFyc2VTdGF0ZSAq cHN0YXRlMjsKKwlHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSA9IHBhbGxvYzBfb2Jq ZWN0KEdyYXBoVGFibGVQYXJzZVN0YXRlKTsKKwlOb2RlCSAgICpncDsKKwlMaXN0CSAgICpj b2x1bW5zID0gTklMOworCUxpc3QJICAgKmNvbG5hbWVzID0gTklMOworCUxpc3RDZWxsICAg KmxjOworCWludAkJCXJlc25vID0gMDsKKworCXJlbCA9IHBhcnNlck9wZW5UYWJsZShwc3Rh dGUsIHJndC0+Z3JhcGhfbmFtZSwgQWNjZXNzU2hhcmVMb2NrKTsKKwlpZiAocmVsLT5yZF9y ZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9QUk9QR1JBUEgpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQllcnJtc2coIlwi JXNcIiBpcyBub3QgYSBwcm9wZXJ0eSBncmFwaCIsCisJCQkJCSAgIFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpLAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHJndC0+ Z3JhcGhfbmFtZS0+bG9jYXRpb24pKTsKKworCWdyYXBoaWQgPSBSZWxhdGlvbkdldFJlbGlk KHJlbCk7CisKKwlncHN0YXRlLT5ncmFwaGlkID0gZ3JhcGhpZDsKKworCWdwID0gdHJhbnNm b3JtR3JhcGhQYXR0ZXJuKGdwc3RhdGUsIHJndC0+Z3JhcGhfcGF0dGVybik7CisKKwlwc3Rh dGUyID0gbWFrZV9wYXJzZXN0YXRlKE5VTEwpOworCXBzdGF0ZTItPnBfcHJlX2NvbHVtbnJl Zl9ob29rID0gZ3JhcGhfdGFibGVfcHJvcGVydHlfcmVmZXJlbmNlOworCXBzdGF0ZTItPnBf cmVmX2hvb2tfc3RhdGUgPSBncHN0YXRlOworCisJZm9yZWFjaChsYywgcmd0LT5jb2x1bW5z KQorCXsKKwkJUmVzVGFyZ2V0ICAqcnQgPSBsZmlyc3Rfbm9kZShSZXNUYXJnZXQsIGxjKTsK KwkJTm9kZQkgICAqY29sZXhwcjsKKwkJVGFyZ2V0RW50cnkgKnRlOworCQljaGFyCSAgICpj b2xuYW1lOworCisJCWNvbGV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZTIsIHJ0LT52YWws IEVYUFJfS0lORF9PVEhFUik7CisKKwkJaWYgKHJ0LT5uYW1lKQorCQkJY29sbmFtZSA9IHJ0 LT5uYW1lOworCQllbHNlCisJCXsKKwkJCWlmIChJc0EoY29sZXhwciwgR3JhcGhQcm9wZXJ0 eVJlZikpCisJCQkJY29sbmFtZSA9IHBzdHJkdXAoY2FzdE5vZGUoR3JhcGhQcm9wZXJ0eVJl ZiwgY29sZXhwciktPnByb3BuYW1lKTsKKwkJCWVsc2UKKwkJCXsKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJt c2coImNvbXBsZXggZ3JhcGggdGFibGUgY29sdW1uIG11c3Qgc3BlY2lmeSBhbiBleHBsaWNp dCBjb2x1bW4gbmFtZSIpLAorCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgcnQt PmxvY2F0aW9uKSk7CisJCQkJY29sbmFtZSA9IE5VTEw7CisJCQl9CisJCX0KKworCQljb2xu YW1lcyA9IGxhcHBlbmQoY29sbmFtZXMsIG1ha2VTdHJpbmcoY29sbmFtZSkpOworCisJCXRl ID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIGNvbGV4cHIsICsrcmVzbm8sIGNvbG5hbWUs IGZhbHNlKTsKKwkJY29sdW1ucyA9IGxhcHBlbmQoY29sdW1ucywgdGUpOworCX0KKworCXRh YmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKworCXJldHVybiBhZGRSYW5nZVRhYmxlRW50cnlG b3JHcmFwaFRhYmxlKHBzdGF0ZSwgZ3JhcGhpZCwgY2FzdE5vZGUoR3JhcGhQYXR0ZXJuLCBn cCksIGNvbHVtbnMsIGNvbG5hbWVzLCByZ3QtPmFsaWFzLCBmYWxzZSwgdHJ1ZSk7Cit9CisK IC8qCiAgKiB0cmFuc2Zvcm1SYW5nZVRhYmxlU2FtcGxlIC0tLSB0cmFuc2Zvcm0gYSBUQUJM RVNBTVBMRSBjbGF1c2UKICAqCkBAIC0xMTE3LDYgKzExOTAsMTggQEAgdHJhbnNmb3JtRnJv bUNsYXVzZUl0ZW0oUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpuLAogCQlydHItPnJ0aW5k ZXggPSBuc2l0ZW0tPnBfcnRpbmRleDsKIAkJcmV0dXJuIChOb2RlICopIHJ0cjsKIAl9CisJ ZWxzZSBpZiAoSXNBKG4sIFJhbmdlR3JhcGhUYWJsZSkpCisJeworCQlSYW5nZVRibFJlZiAq cnRyOworCQlQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbTsKKworCQluc2l0ZW0gPSB0cmFu c2Zvcm1SYW5nZUdyYXBoVGFibGUocHN0YXRlLCAoUmFuZ2VHcmFwaFRhYmxlICopIG4pOwor CQkqdG9wX25zaXRlbSA9IG5zaXRlbTsKKwkJKm5hbWVzcGFjZSA9IGxpc3RfbWFrZTEobnNp dGVtKTsKKwkJcnRyID0gbWFrZU5vZGUoUmFuZ2VUYmxSZWYpOworCQlydHItPnJ0aW5kZXgg PSBuc2l0ZW0tPnBfcnRpbmRleDsKKwkJcmV0dXJuIChOb2RlICopIHJ0cjsKKwl9CiAJZWxz ZSBpZiAoSXNBKG4sIFJhbmdlVGFibGVTYW1wbGUpKQogCXsKIAkJLyogVEFCTEVTQU1QTEUg Y2xhdXNlICh3cmFwcGluZyBzb21lIG90aGVyIHZhbGlkIEZST00gbm9kZSkgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCmluZGV4IDQ0NTI5YmI0OWU2Li4zM2ExZjNmMjQx MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCkBAIC01NzEsNiArNTcxLDEz IEBAIGFzc2lnbl9jb2xsYXRpb25zX3dhbGtlcihOb2RlICpub2RlLCBhc3NpZ25fY29sbGF0 aW9uc19jb250ZXh0ICpjb250ZXh0KQogCQkJbG9jYXRpb24gPSBleHByTG9jYXRpb24obm9k ZSk7CiAJCQlicmVhazsKIAorCQljYXNlIFRfR3JhcGhQcm9wZXJ0eVJlZjoKKwkJCS8qIEZJ WE1FICovCisJCQljb2xsYXRpb24gPSBERUZBVUxUX0NPTExBVElPTl9PSUQ7CisJCQlzdHJl bmd0aCA9IENPTExBVEVfSU1QTElDSVQ7CisJCQlsb2NhdGlvbiA9IC0xOworCQkJYnJlYWs7 CisKIAkJZGVmYXVsdDoKIAkJCXsKIAkJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2dyYXBodGFibGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9n cmFwaHRhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2 NzliNzI2Mjc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2dyYXBodGFibGUuYwpAQCAtMCwwICsxLDI1MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKgorICogcGFyc2VfZ3JhcGh0YWJsZS5jCisgKgkgIHBhcnNpbmcgb2YgR1JBUEhfVEFC TEUKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoK KyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ncmFw aHRhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAi cG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgorI2luY2x1ZGUgImFj Y2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9wZXJ0eS5oIgorI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1ZGUgInBhcnNl ci9wYXJzZV9jb2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKKyNp bmNsdWRlICJwYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIgorI2luY2x1ZGUgInBhcnNlci9w YXJzZV9ub2RlLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1 dGlscy9yZWxjYWNoZS5oIgorCisKKy8qCisgKiBHZXQgdGhlIHR5cGUgb2YgYSBwcm9wZXJ0 eS4KKyAqLworc3RhdGljIE9pZAorZ2V0X3Byb3BlcnR5X3R5cGUoT2lkIGdyYXBoaWQsIGNv bnN0IGNoYXIgKnByb3BuYW1lKQoreworCVJlbGF0aW9uCXJlbDsKKwlTeXNTY2FuRGVzYyBz Y2FuOworCVNjYW5LZXlEYXRhIGtleVsyXTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJT2lkCQkJ cmVzdWx0ID0gSW52YWxpZE9pZDsKKworCXJlbCA9IHRhYmxlX29wZW4oUHJvcGdyYXBoUHJv cGVydHlSZWxhdGlvbklkLCBSb3dTaGFyZUxvY2spOworCVNjYW5LZXlJbml0KCZrZXlbMF0s CisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfcHJvcGVydHlfcGdwcGdpZCwKKwkJCQlCVEVxdWFs U3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShncmFwaGlk KSk7CisJU2NhbktleUluaXQoJmtleVsxXSwKKwkJCQlBbnVtX3BnX3Byb3BncmFwaF9wcm9w ZXJ0eV9wZ3BuYW1lLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9OQU1FRVEsCisJ CQkJQ1N0cmluZ0dldERhdHVtKHByb3BuYW1lKSk7CisKKwlzY2FuID0gc3lzdGFibGVfYmVn aW5zY2FuKHJlbCwgUHJvcGdyYXBoUHJvcGVydHlHcmFwaE5hbWVJbmRleElkLCB0cnVlLCBO VUxMLCAyLCBrZXkpOworCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFi bGVfZ2V0bmV4dChzY2FuKSkpCisJeworCQlGb3JtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eSBw cm9wID0gKEZvcm1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5KSBHRVRTVFJVQ1QodHVwbGUpOwor CisJCXJlc3VsdCA9IHByb3AtPnBncHR5cGlkOworCQlicmVhazsKKwl9CisKKwlzeXN0YWJs ZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgUm93U2hhcmVMb2NrKTsKKwor CWlmICghcmVzdWx0KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9T WU5UQVhfRVJST1IpLAorCQkJCWVycm1zZygicHJvcGVydHkgXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwgcHJvcG5hbWUpKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBSZXNv bHZlIGEgcHJvcGVydHkgcmVmZXJlbmNlLgorICovCitOb2RlICoKK2dyYXBoX3RhYmxlX3By b3BlcnR5X3JlZmVyZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikK K3sKKwlHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSA9IHBzdGF0ZS0+cF9yZWZfaG9v a19zdGF0ZTsKKwlHcmFwaFByb3BlcnR5UmVmICpncHIgPSBtYWtlTm9kZShHcmFwaFByb3Bl cnR5UmVmKTsKKworCWdwci0+bG9jYXRpb24gPSBjcmVmLT5sb2NhdGlvbjsKKworCWlmIChs aXN0X2xlbmd0aChjcmVmLT5maWVsZHMpID09IDIpCisJeworCQlOb2RlCSAgICpmaWVsZDEg PSBsaW5pdGlhbChjcmVmLT5maWVsZHMpOworCQlOb2RlCSAgICpmaWVsZDIgPSBsc2Vjb25k KGNyZWYtPmZpZWxkcyk7CisJCWNoYXIJICAgKmVsdmFybmFtZTsKKwkJY2hhcgkgICAqcHJv cG5hbWU7CisKKwkJZWx2YXJuYW1lID0gc3RyVmFsKGZpZWxkMSk7CisJCXByb3BuYW1lID0g c3RyVmFsKGZpZWxkMik7CisKKwkJaWYgKCFsaXN0X21lbWJlcihncHN0YXRlLT52YXJpYWJs ZXMsIGZpZWxkMSkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJZXJybXNnKCJncmFwaCBwYXR0ZXJuIHZhcmlhYmxlIFwi JXNcIiBkb2VzIG5vdCBleGlzdCIsIGVsdmFybmFtZSksCisJCQkJCXBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSk7CisKKwkJZ3ByLT5lbHZhcm5hbWUgPSBl bHZhcm5hbWU7CisJCWdwci0+cHJvcG5hbWUgPSBwcm9wbmFtZTsKKworCX0KKwllbHNlCisJ CWVsb2coRVJST1IsICJpbnZhbGlkIHByb3BlcnR5IHJlZmVyZW5jZSIpOworCisJZ3ByLT50 eXBlSWQgPSBnZXRfcHJvcGVydHlfdHlwZShncHN0YXRlLT5ncmFwaGlkLCBncHItPnByb3Bu YW1lKTsKKworCXJldHVybiAoTm9kZSAqKSBncHI7Cit9CisKKy8qCisgKiBUcmFuc2Zvcm0g YSBsYWJlbCBleHByZXNzaW9uLgorICovCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1MYWJl bEV4cHIoR3JhcGhUYWJsZVBhcnNlU3RhdGUgKmdwc3RhdGUsIE5vZGUgKmxhYmVsZXhwcikK K3sKKwlOb2RlCSAgICpyZXN1bHQ7CisKKwlpZiAobGFiZWxleHByID09IE5VTEwpCisJCXJl dHVybiBOVUxMOworCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKworCXN3aXRjaCAobm9kZVRh ZyhsYWJlbGV4cHIpKQorCXsKKwkJY2FzZSBUX0NvbHVtblJlZjoKKwkJCXsKKwkJCQlDb2x1 bW5SZWYgICpjcmVmID0gKENvbHVtblJlZiAqKSBsYWJlbGV4cHI7CisJCQkJY29uc3QgY2hh ciAqbGFiZWxuYW1lOworCQkJCUdyYXBoTGFiZWxSZWYgKmxyZWY7CisKKwkJCQlBc3NlcnQo bGlzdF9sZW5ndGgoY3JlZi0+ZmllbGRzKSA9PSAxKTsKKwkJCQlsYWJlbG5hbWUgPSBzdHJW YWwobGluaXRpYWwoY3JlZi0+ZmllbGRzKSk7CisKKwkJCQlscmVmID0gbWFrZU5vZGUoR3Jh cGhMYWJlbFJlZik7CisJCQkJbHJlZi0+bGFiZWxuYW1lID0gbGFiZWxuYW1lOworCQkJCWxy ZWYtPmxvY2F0aW9uID0gY3JlZi0+bG9jYXRpb247CisKKwkJCQlyZXN1bHQgPSAoTm9kZSAq KSBscmVmOworCQkJCWJyZWFrOworCQkJfQorCisJCWNhc2UgVF9Cb29sRXhwcjoKKwkJCXsK KwkJCQlCb29sRXhwciAgICpiZSA9IChCb29sRXhwciAqKSBsYWJlbGV4cHI7CisJCQkJTGlz dENlbGwgICAqbGM7CisJCQkJTGlzdAkgICAqYXJncyA9IE5JTDsKKworCQkJCWZvcmVhY2go bGMsIGJlLT5hcmdzKQorCQkJCXsKKwkJCQkJTm9kZQkgICAqYXJnID0gKE5vZGUgKikgbGZp cnN0KGxjKTsKKworCQkJCQlhcmcgPSB0cmFuc2Zvcm1MYWJlbEV4cHIoZ3BzdGF0ZSwgYXJn KTsKKwkJCQkJYXJncyA9IGxhcHBlbmQoYXJncywgYXJnKTsKKwkJCQl9CisKKwkJCQlyZXN1 bHQgPSAoTm9kZSAqKSBtYWtlQm9vbEV4cHIoYmUtPmJvb2xvcCwgYXJncywgYmUtPmxvY2F0 aW9uKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQlkZWZhdWx0OgorCQkJLyogc2hvdWxkIG5v dCByZWFjaCBoZXJlICovCisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlw ZTogJWQiLCAoaW50KSBub2RlVGFnKGxhYmVsZXhwcikpOworCQkJcmVzdWx0ID0gTlVMTDsJ CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCWJyZWFrOworCX0KKworCXJldHVybiBy ZXN1bHQ7Cit9CisKKy8qCisgKiBUcmFuc2Zvcm0gYSBHcmFwaEVsZW1lbnRQYXR0ZXJuLgor ICovCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKEdyYXBo VGFibGVQYXJzZVN0YXRlICpncHN0YXRlLCBHcmFwaEVsZW1lbnRQYXR0ZXJuICpnZXApCit7 CisJUGFyc2VTdGF0ZSAqcHN0YXRlMjsKKworCXBzdGF0ZTIgPSBtYWtlX3BhcnNlc3RhdGUo TlVMTCk7CisJcHN0YXRlMi0+cF9wcmVfY29sdW1ucmVmX2hvb2sgPSBncmFwaF90YWJsZV9w cm9wZXJ0eV9yZWZlcmVuY2U7CisJcHN0YXRlMi0+cF9yZWZfaG9va19zdGF0ZSA9IGdwc3Rh dGU7CisKKwlpZiAoZ2VwLT52YXJpYWJsZSkKKwkJZ3BzdGF0ZS0+dmFyaWFibGVzID0gbGFw cGVuZChncHN0YXRlLT52YXJpYWJsZXMsIG1ha2VTdHJpbmcocHN0cmR1cChnZXAtPnZhcmlh YmxlKSkpOworCisJZ2VwLT5sYWJlbGV4cHIgPSB0cmFuc2Zvcm1MYWJlbEV4cHIoZ3BzdGF0 ZSwgZ2VwLT5sYWJlbGV4cHIpOworCisJZ2VwLT53aGVyZUNsYXVzZSA9IHRyYW5zZm9ybUV4 cHIocHN0YXRlMiwgZ2VwLT53aGVyZUNsYXVzZSwgRVhQUl9LSU5EX09USEVSKTsKKwlhc3Np Z25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZTIsIGdlcC0+d2hlcmVDbGF1c2UpOworCisJcmV0 dXJuIChOb2RlICopIGdlcDsKK30KKworLyoKKyAqIFRyYW5zZm9ybSBhIHBhdGggdGVybSAo bGlzdCBvZiBHcmFwaEVsZW1lbnRQYXR0ZXJuJ3MpLgorICovCitzdGF0aWMgTm9kZSAqCit0 cmFuc2Zvcm1QYXRoVGVybShHcmFwaFRhYmxlUGFyc2VTdGF0ZSAqZ3BzdGF0ZSwgTGlzdCAq cGF0aF90ZXJtKQoreworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0Q2VsbCAgICps YzsKKworCWZvcmVhY2gobGMsIHBhdGhfdGVybSkKKwl7CisJCU5vZGUJICAgKm4gPSB0cmFu c2Zvcm1HcmFwaEVsZW1lbnRQYXR0ZXJuKGdwc3RhdGUsIGxmaXJzdF9ub2RlKEdyYXBoRWxl bWVudFBhdHRlcm4sIGxjKSk7CisKKwkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4pOwor CX0KKworCXJldHVybiAoTm9kZSAqKSByZXN1bHQ7Cit9CisKKy8qCisgKiBUcmFuc2Zvcm0g YSBwYXRoIHBhdHRlcm4gbGlzdCAobGlzdCBvZiBwYXRoIHRlcm1zKS4KKyAqLworc3RhdGlj IE5vZGUgKgordHJhbnNmb3JtUGF0aFBhdHRlcm5MaXN0KEdyYXBoVGFibGVQYXJzZVN0YXRl ICpncHN0YXRlLCBMaXN0ICpwYXRoX3BhdHRlcm4pCit7CisJTGlzdAkgICAqcmVzdWx0ID0g TklMOworCUxpc3RDZWxsICAgKmxjOworCisJZm9yZWFjaChsYywgcGF0aF9wYXR0ZXJuKQor CXsKKwkJTm9kZQkgICAqbiA9IHRyYW5zZm9ybVBhdGhUZXJtKGdwc3RhdGUsIGxmaXJzdChs YykpOworCisJCXJlc3VsdCA9IGxhcHBlbmQocmVzdWx0LCBuKTsKKwl9CisKKwlyZXR1cm4g KE5vZGUgKikgcmVzdWx0OworfQorCisvKgorICogVHJhbnNmb3JtIGEgR3JhcGhQYXR0ZXJu LgorICovCitOb2RlICoKK3RyYW5zZm9ybUdyYXBoUGF0dGVybihHcmFwaFRhYmxlUGFyc2VT dGF0ZSAqZ3BzdGF0ZSwgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJuKQoreworCVBhcnNl U3RhdGUgKnBzdGF0ZTI7CisKKwlwc3RhdGUyID0gbWFrZV9wYXJzZXN0YXRlKE5VTEwpOwor CXBzdGF0ZTItPnBfcHJlX2NvbHVtbnJlZl9ob29rID0gZ3JhcGhfdGFibGVfcHJvcGVydHlf cmVmZXJlbmNlOworCXBzdGF0ZTItPnBfcmVmX2hvb2tfc3RhdGUgPSBncHN0YXRlOworCisJ Z3JhcGhfcGF0dGVybi0+cGF0aF9wYXR0ZXJuX2xpc3QgPSAoTGlzdCAqKSB0cmFuc2Zvcm1Q YXRoUGF0dGVybkxpc3QoZ3BzdGF0ZSwgZ3JhcGhfcGF0dGVybi0+cGF0aF9wYXR0ZXJuX2xp c3QpOworCWdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlID0gdHJhbnNmb3JtRXhwcihwc3Rh dGUyLCBncmFwaF9wYXR0ZXJuLT53aGVyZUNsYXVzZSwgRVhQUl9LSU5EX09USEVSKTsKKwlh c3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZTIsIGdyYXBoX3BhdHRlcm4tPndoZXJlQ2xh dXNlKTsKKworCXJldHVybiAoTm9kZSAqKSBncmFwaF9wYXR0ZXJuOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCAzNGEwZWM1OTAxOS4uYzRiMmI2MTM5MDQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0yMTI3LDYgKzIxMjcs OTggQEAgYWRkUmFuZ2VUYWJsZUVudHJ5Rm9yVGFibGVGdW5jKFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkJcnRlLT5jb2xjb2xsYXRpb25zKTsKIH0KIAorUGFyc2VOYW1lc3BhY2VJ dGVtICoKK2FkZFJhbmdlVGFibGVFbnRyeUZvckdyYXBoVGFibGUoUGFyc2VTdGF0ZSAqcHN0 YXRlLAorCQkJCQkJCQlPaWQgZ3JhcGhpZCwKKwkJCQkJCQkJR3JhcGhQYXR0ZXJuICpncmFw aF9wYXR0ZXJuLAorCQkJCQkJCQlMaXN0ICpjb2x1bW5zLAorCQkJCQkJCQlMaXN0ICpjb2xu YW1lcywKKwkJCQkJCQkJQWxpYXMgKmFsaWFzLAorCQkJCQkJCQlib29sIGxhdGVyYWwsCisJ CQkJCQkJCWJvb2wgaW5Gcm9tQ2wpCit7CisJUmFuZ2VUYmxFbnRyeSAqcnRlID0gbWFrZU5v ZGUoUmFuZ2VUYmxFbnRyeSk7CisJY2hhcgkgICAqcmVmbmFtZSA9IGFsaWFzID8gYWxpYXMt PmFsaWFzbmFtZSA6IHBzdHJkdXAoImdyYXBoX3RhYmxlIik7CisJQWxpYXMJICAgKmVyZWY7 CisJaW50CQkJbnVtYWxpYXNlczsKKwlpbnQJCQl2YXJhdHRubzsKKwlMaXN0Q2VsbCAgICps YzsKKwlMaXN0CSAgICpjb2x0eXBlcyA9IE5JTDsKKwlMaXN0CSAgICpjb2x0eXBtb2RzID0g TklMOworCUxpc3QJICAgKmNvbGNvbGxhdGlvbnMgPSBOSUw7CisJUlRFUGVybWlzc2lvbklu Zm8gKnBlcm1pbmZvOworCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCisJQXNzZXJ0 KHBzdGF0ZSAhPSBOVUxMKTsKKworCXJ0ZS0+cnRla2luZCA9IFJURV9HUkFQSF9UQUJMRTsK KwlydGUtPnJlbGlkID0gZ3JhcGhpZDsKKwlydGUtPnJlbGtpbmQgPSBSRUxLSU5EX1BST1BH UkFQSDsKKwlydGUtPmdyYXBoX3BhdHRlcm4gPSBncmFwaF9wYXR0ZXJuOworCXJ0ZS0+Z3Jh cGhfdGFibGVfY29sdW1ucyA9IGNvbHVtbnM7CisJcnRlLT5hbGlhcyA9IGFsaWFzOworCisJ ZXJlZiA9IGFsaWFzID8gY29weU9iamVjdChhbGlhcykgOiBtYWtlQWxpYXMocmVmbmFtZSwg TklMKTsKKworCWlmICghZXJlZi0+Y29sbmFtZXMpCisJCWVyZWYtPmNvbG5hbWVzID0gY29s bmFtZXM7CisKKwludW1hbGlhc2VzID0gbGlzdF9sZW5ndGgoZXJlZi0+Y29sbmFtZXMpOwor CisJLyogZmlsbCBpbiBhbnkgdW5zcGVjaWZpZWQgYWxpYXMgY29sdW1ucyAqLworCXZhcmF0 dG5vID0gMDsKKwlmb3JlYWNoKGxjLCBjb2xuYW1lcykKKwl7CisJCXZhcmF0dG5vKys7CisJ CWlmICh2YXJhdHRubyA+IG51bWFsaWFzZXMpCisJCQllcmVmLT5jb2xuYW1lcyA9IGxhcHBl bmQoZXJlZi0+Y29sbmFtZXMsIGxmaXJzdChsYykpOworCX0KKwlpZiAodmFyYXR0bm8gPCBu dW1hbGlhc2VzKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkgZXJybXNnKCJHUkFQSF9UQUJMRSBcIiVz XCIgaGFzICVkIGNvbHVtbnMgYXZhaWxhYmxlIGJ1dCAlZCBjb2x1bW5zIHNwZWNpZmllZCIs CisJCQkJCQlyZWZuYW1lLCB2YXJhdHRubywgbnVtYWxpYXNlcykpKTsKKworCXJ0ZS0+ZXJl ZiA9IGVyZWY7CisKKwlmb3JlYWNoKGxjLCBjb2x1bW5zKQorCXsKKwkJVGFyZ2V0RW50cnkg KnRlID0gbGZpcnN0X25vZGUoVGFyZ2V0RW50cnksIGxjKTsKKwkJTm9kZQkgICAqY29sZXhw ciA9IChOb2RlICopIHRlLT5leHByOworCisJCWNvbHR5cGVzID0gbGFwcGVuZF9vaWQoY29s dHlwZXMsIGV4cHJUeXBlKGNvbGV4cHIpKTsKKwkJY29sdHlwbW9kcyA9IGxhcHBlbmRfaW50 KGNvbHR5cG1vZHMsIGV4cHJUeXBtb2QoY29sZXhwcikpOworCQljb2xjb2xsYXRpb25zID0g bGFwcGVuZF9vaWQoY29sY29sbGF0aW9ucywgZXhwckNvbGxhdGlvbihjb2xleHByKSk7CisJ fQorCisJLyoKKwkgKiBTZXQgZmxhZ3MgYW5kIGFjY2VzcyBwZXJtaXNzaW9ucy4KKwkgKi8K KwlydGUtPmxhdGVyYWwgPSBsYXRlcmFsOworCXJ0ZS0+aW5Gcm9tQ2wgPSBpbkZyb21DbDsK KworCXBlcm1pbmZvID0gYWRkUlRFUGVybWlzc2lvbkluZm8oJnBzdGF0ZS0+cF9ydGVwZXJt aW5mb3MsIHJ0ZSk7CisJcGVybWluZm8tPnJlcXVpcmVkUGVybXMgPSBBQ0xfU0VMRUNUOwor CisJLyoKKwkgKiBBZGQgY29tcGxldGVkIFJURSB0byBwc3RhdGUncyByYW5nZSB0YWJsZSBs aXN0LCBzbyB0aGF0IHdlIGtub3cgaXRzCisJICogaW5kZXguICBCdXQgd2UgZG9uJ3QgYWRk IGl0IHRvIHRoZSBqb2luIGxpc3QgLS0tIGNhbGxlciBtdXN0IGRvIHRoYXQgaWYKKwkgKiBh cHByb3ByaWF0ZS4KKwkgKi8KKwlwc3RhdGUtPnBfcnRhYmxlID0gbGFwcGVuZChwc3RhdGUt PnBfcnRhYmxlLCBydGUpOworCisJLyoKKwkgKiBCdWlsZCBhIFBhcnNlTmFtZXNwYWNlSXRl bSwgYnV0IGRvbid0IGFkZCBpdCB0byB0aGUgcHN0YXRlJ3MgbmFtZXNwYWNlCisJICogbGlz dCAtLS0gY2FsbGVyIG11c3QgZG8gdGhhdCBpZiBhcHByb3ByaWF0ZS4KKwkgKi8KKwluc2l0 ZW0gPSBidWlsZE5TSXRlbUZyb21MaXN0cyhydGUsIGxpc3RfbGVuZ3RoKHBzdGF0ZS0+cF9y dGFibGUpLAorCQkJCQkJCQkgIGNvbHR5cGVzLCBjb2x0eXBtb2RzLCBjb2xjb2xsYXRpb25z KTsKKworCW5zaXRlbS0+cF9wZXJtaW5mbyA9IHBlcm1pbmZvOworCisJcmV0dXJuIG5zaXRl bTsKK30KKwogLyoKICAqIEFkZCBhbiBlbnRyeSBmb3IgYSBWQUxVRVMgbGlzdCB0byB0aGUg cHN0YXRlJ3MgcmFuZ2UgdGFibGUgKHBfcnRhYmxlKS4KICAqIFRoZW4sIGNvbnN0cnVjdCBh bmQgcmV0dXJuIGEgUGFyc2VOYW1lc3BhY2VJdGVtIGZvciB0aGUgbmV3IFJURS4KQEAgLTI5 NDEsNiArMzAzMyw3IEBAIGV4cGFuZFJURShSYW5nZVRibEVudHJ5ICpydGUsIGludCBydGlu ZGV4LCBpbnQgc3VibGV2ZWxzX3VwLAogCQljYXNlIFJURV9WQUxVRVM6CiAJCWNhc2UgUlRF X0NURToKIAkJY2FzZSBSVEVfTkFNRURUVVBMRVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9U QUJMRToKIAkJCXsKIAkJCQkvKiBUYWJsZWZ1bmMsIFZhbHVlcywgQ1RFLCBvciBFTlIgUlRF ICovCiAJCQkJTGlzdENlbGwgICAqYWxpYXNwX2l0ZW0gPSBsaXN0X2hlYWQocnRlLT5lcmVm LT5jb2xuYW1lcyk7CkBAIC0zMzE4LDYgKzM0MTEsNyBAQCBnZXRfcnRlX2F0dHJpYnV0ZV9p c19kcm9wcGVkKFJhbmdlVGJsRW50cnkgKnJ0ZSwgQXR0ck51bWJlciBhdHRudW0pCiAJCWNh c2UgUlRFX1RBQkxFRlVOQzoKIAkJY2FzZSBSVEVfVkFMVUVTOgogCQljYXNlIFJURV9DVEU6 CisJCWNhc2UgUlRFX0dSQVBIX1RBQkxFOgogCiAJCQkvKgogCQkJICogU3Vic2VsZWN0LCBU YWJsZSBGdW5jdGlvbnMsIFZhbHVlcywgQ1RFIFJURXMgbmV2ZXIgaGF2ZSBkcm9wcGVkCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggMGNkOTA0ZjhkYWMuLmEzZGE5NTY1 NmJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCkBAIC0zNjEsNiArMzYxLDEw IEBAIG1hcmtUYXJnZXRMaXN0T3JpZ2luKFBhcnNlU3RhdGUgKnBzdGF0ZSwgVGFyZ2V0RW50 cnkgKnRsZSwKIAkJCXRsZS0+cmVzb3JpZ3RibCA9IHJ0ZS0+cmVsaWQ7CiAJCQl0bGUtPnJl c29yaWdjb2wgPSBhdHRudW07CiAJCQlicmVhazsKKwkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6 CisJCQl0bGUtPnJlc29yaWd0YmwgPSBydGUtPnJlbGlkOworCQkJdGxlLT5yZXNvcmlnY29s ID0gSW52YWxpZEF0dHJOdW1iZXI7CisJCQlicmVhazsKIAkJY2FzZSBSVEVfU1VCUVVFUlk6 CiAJCQkvKiBTdWJzZWxlY3QtaW4tRlJPTTogY29weSB1cCBmcm9tIHRoZSBzdWJzZWxlY3Qg Ki8KIAkJCWlmIChhdHRudW0gIT0gSW52YWxpZEF0dHJOdW1iZXIpCkBAIC0xNTY1LDYgKzE1 NjksNyBAQCBleHBhbmRSZWNvcmRWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhciAq dmFyLCBpbnQgbGV2ZWxzdXApCiAJCWNhc2UgUlRFX1JFTEFUSU9OOgogCQljYXNlIFJURV9W QUxVRVM6CiAJCWNhc2UgUlRFX05BTUVEVFVQTEVTVE9SRToKKwkJY2FzZSBSVEVfR1JBUEhf VEFCTEU6CiAJCWNhc2UgUlRFX1JFU1VMVDoKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9zY2FuLmwgYi9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCmluZGV4 IDVlYWFkZjUzYjIwLi5hOGE1YmFlZjA5NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3NjYW4ubAorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvc2Nhbi5sCkBAIC0zNTMsNiAr MzUzLDExIEBAIHR5cGVjYXN0CQkiOjoiCiBkb3RfZG90CQkJXC5cLgogY29sb25fZXF1YWxz CSI6PSIKIAorYnJhY2tldF9yaWdodF9hcnJvdwkiXS0+IgorbGVmdF9hcnJvd19icmFja2V0 CSI8LVsiCittaW51c19sZWZ0X2JyYWNrZXQJIi1bIgorcmlnaHRfYnJhY2tldF9taW51cwki XS0iCisKIC8qCiAgKiBUaGVzZSBvcGVyYXRvci1saWtlIHRva2VucyAodW5saWtlIHRoZSBh Ym92ZSBvbmVzKSBhbHNvIG1hdGNoIHRoZSB7b3BlcmF0b3J9CiAgKiBydWxlLCB3aGljaCBt ZWFucyB0aGF0IHRoZXkgbWlnaHQgYmUgb3ZlcnJpZGRlbiBieSBhIGxvbmdlciBtYXRjaCBp ZiB0aGV5CkBAIC0zNjcsNiArMzcyLDkgQEAgZ3JlYXRlcl9lcXVhbHMJIj49IgogbGVzc19n cmVhdGVyCSI8PiIKIG5vdF9lcXVhbHMJCSIhPSIKIAorbGVmdF9hcnJvdwkJIjwtIgorcmln aHRfYXJyb3cJCSItPiIKKwogLyoKICAqICJzZWxmIiBpcyB0aGUgc2V0IG9mIGNoYXJzIHRo YXQgc2hvdWxkIGJlIHJldHVybmVkIGFzIHNpbmdsZS1jaGFyYWN0ZXIKICAqIHRva2Vucy4g ICJvcF9jaGFycyIgaXMgdGhlIHNldCBvZiBjaGFycyB0aGF0IGNhbiBtYWtlIHVwICJPcCIg dG9rZW5zLApAQCAtODUwLDYgKzg1OCwyNiBAQCBvdGhlcgkJCS4KIAkJCQkJcmV0dXJuIENP TE9OX0VRVUFMUzsKIAkJCQl9CiAKK3ticmFja2V0X3JpZ2h0X2Fycm93fSB7CisJCQkJCVNF VF9ZWUxMT0MoKTsKKwkJCQkJcmV0dXJuIEJSQUNLRVRfUklHSFRfQVJST1c7CisJCQkJfQor Cit7bGVmdF9hcnJvd19icmFja2V0fSB7CisJCQkJCVNFVF9ZWUxMT0MoKTsKKwkJCQkJcmV0 dXJuIExFRlRfQVJST1dfQlJBQ0tFVDsKKwkJCQl9CisKK3ttaW51c19sZWZ0X2JyYWNrZXR9 IHsKKwkJCQkJU0VUX1lZTExPQygpOworCQkJCQlyZXR1cm4gTUlOVVNfTEVGVF9CUkFDS0VU OworCQkJCX0KKwore3JpZ2h0X2JyYWNrZXRfbWludXN9IHsKKwkJCQkJU0VUX1lZTExPQygp OworCQkJCQlyZXR1cm4gUklHSFRfQlJBQ0tFVF9NSU5VUzsKKwkJCQl9CisKIHtlcXVhbHNf Z3JlYXRlcn0gewogCQkJCQlTRVRfWVlMTE9DKCk7CiAJCQkJCXJldHVybiBFUVVBTFNfR1JF QVRFUjsKQEAgLTg3NywxMSArOTA1LDMxIEBAIG90aGVyCQkJLgogCQkJCQlyZXR1cm4gTk9U X0VRVUFMUzsKIAkJCQl9CiAKK3tsZWZ0X2Fycm93fQl7CisJCQkJCVNFVF9ZWUxMT0MoKTsK KwkJCQkJcmV0dXJuIExFRlRfQVJST1c7CisJCQkJfQorCit7cmlnaHRfYXJyb3d9CXsKKwkJ CQkJU0VUX1lZTExPQygpOworCQkJCQlyZXR1cm4gUklHSFRfQVJST1c7CisJCQkJfQorCiB7 c2VsZn0JCQl7CiAJCQkJCVNFVF9ZWUxMT0MoKTsKIAkJCQkJcmV0dXJuIHl5dGV4dFswXTsK IAkJCQl9CiAKK1x7CQkJCXsKKwkJCQkJU0VUX1lZTExPQygpOworCQkJCQlyZXR1cm4gTEVG VF9CUkFDRTsKKwkJCQl9CisKK1x9CQkJCXsKKwkJCQkJU0VUX1lZTExPQygpOworCQkJCQly ZXR1cm4gUklHSFRfQlJBQ0U7CisJCQkJfQorCiB7b3BlcmF0b3J9CQl7CiAJCQkJCS8qCiAJ CQkJCSAqIENoZWNrIGZvciBlbWJlZGRlZCBzbGFzaC1zdGFyIG9yIGRhc2gtZGFzaDsgdGhv c2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvTWFrZWZpbGUgYi9zcmMvYmFj a2VuZC9yZXdyaXRlL01ha2VmaWxlCmluZGV4IDQ2ODA3NTJlNmE3Li4wOTA3MDA0N2I3ZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9NYWtlZmlsZQorKysgYi9zcmMvYmFj a2VuZC9yZXdyaXRlL01ha2VmaWxlCkBAIC0xNCw2ICsxNCw3IEBAIGluY2x1ZGUgJCh0b3Bf YnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKIAogT0JKUyA9IFwKIAlyZXdyaXRlRGVm aW5lLm8gXAorCXJld3JpdGVHcmFwaFRhYmxlLm8gXAogCXJld3JpdGVIYW5kbGVyLm8gXAog CXJld3JpdGVNYW5pcC5vIFwKIAlyZXdyaXRlUmVtb3ZlLm8gXApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmV3cml0ZS9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvbWVz b24uYnVpbGQKaW5kZXggMjMwNDNjYTZlNTYuLjJiZWEyMDIzM2E0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXdyaXRlL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL3Jld3Jp dGUvbWVzb24uYnVpbGQKQEAgLTIsNiArMiw3IEBACiAKIGJhY2tlbmRfc291cmNlcyArPSBm aWxlcygKICAgJ3Jld3JpdGVEZWZpbmUuYycsCisgICdyZXdyaXRlR3JhcGhUYWJsZS5jJywK ICAgJ3Jld3JpdGVIYW5kbGVyLmMnLAogICAncmV3cml0ZU1hbmlwLmMnLAogICAncmV3cml0 ZVJlbW92ZS5jJywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdy YXBoVGFibGUuYyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTRmMWJlM2RlNTYKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxl LmMKQEAgLTAsMCArMSw0MjIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHJl d3JpdGVHcmFwaFRhYmxlLmMKKyAqCQlTdXBwb3J0IGZvciByZXdyaXRpbmcgR1JBUEhfVEFC TEUgY2xhdXNlcy4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdy aXRlR3JhcGhUYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNs dWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudC5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvcGdyYXBoX2xhYmVsLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhf cHJvcGVydHkuaCIKKyNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKKyNpbmNsdWRlICJu b2Rlcy9ub2RlRnVuY3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVlLmgiCisjaW5j bHVkZSAicmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5oIgorI2luY2x1ZGUgInJld3JpdGUv cmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVNYW5pcC5oIgor I2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIK KyNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKworc3RhdGljIE9pZAlnZXRf bGFiZWxpZChPaWQgZ3JhcGhpZCwgY29uc3QgY2hhciAqbGFiZWxuYW1lKTsKK3N0YXRpYyBM aXN0ICpnZXRfZWxlbWVudHNfZm9yX2xhYmVsKE9pZCBncmFwaGlkLCBjb25zdCBjaGFyICps YWJlbG5hbWUpOworc3RhdGljIE9pZAlnZXRfdGFibGVfZm9yX2VsZW1lbnQoT2lkIGVsaWQp Oworc3RhdGljIE5vZGUgKnJlcGxhY2VfcHJvcGVydHlfcmVmcyhOb2RlICpub2RlLCBjb25z dCBMaXN0ICptYXBwaW5ncyk7CitzdGF0aWMgTGlzdCAqYnVpbGRfZWRnZV92ZXJ0ZXhfbGlu a19xdWFscyhIZWFwVHVwbGUgZWRnZXR1cCwgaW50IGVkZ2VydGksIGludCByZWZydGksIEF0 dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBBdHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0 dG51bSk7CisKK3N0cnVjdCBlbHZhcl9ydF9tYXBwaW5nCit7CisJY29uc3QgY2hhciAqZWx2 YXJuYW1lOworCU9pZAkJCWxhYmVsaWQ7CisJaW50CQkJcnRfaW5kZXg7Cit9OworCisKKy8q CisgKiBDb252ZXJ0IEdSQVBIX1RBQkxFIGNsYXVzZSBpbnRvIGEgc3VicXVlcnkgdXNpbmcg cmVsYXRpb25hbAorICogb3BlcmF0b3JzLgorICovCitRdWVyeSAqCityZXdyaXRlR3JhcGhU YWJsZShRdWVyeSAqcGFyc2V0cmVlLCBpbnQgcnRfaW5kZXgpCit7CisJUmFuZ2VUYmxFbnRy eSAqcnRlOworCVF1ZXJ5CSAgICpuZXdzdWJxdWVyeTsKKwlMaXN0Q2VsbCAgICpsYzsKKwlM aXN0CSAgICplbGVtZW50X3BhdHRlcm5zOworCUxpc3QJICAgKmVsZW1lbnRfaWRzID0gTklM OworCUxpc3QJICAgKmZyb21saXN0ID0gTklMOworCUxpc3QJICAgKnF1YWxfZXhwcnMgPSBO SUw7CisJTGlzdAkgICAqZWx2YXJfcnRfbWFwcGluZ3MgPSBOSUw7CisKKwlydGUgPSBydF9m ZXRjaChydF9pbmRleCwgcGFyc2V0cmVlLT5ydGFibGUpOworCisJbmV3c3VicXVlcnkgPSBt YWtlTm9kZShRdWVyeSk7CisJbmV3c3VicXVlcnktPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVD VDsKKworCWlmIChsaXN0X2xlbmd0aChydGUtPmdyYXBoX3BhdHRlcm4tPnBhdGhfcGF0dGVy bl9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgcGF0aCBwYXR0ZXJu IGxpc3QgbGVuZ3RoIik7CisKKwllbGVtZW50X3BhdHRlcm5zID0gbGluaXRpYWwocnRlLT5n cmFwaF9wYXR0ZXJuLT5wYXRoX3BhdHRlcm5fbGlzdCk7CisKKwlmb3JlYWNoKGxjLCBlbGVt ZW50X3BhdHRlcm5zKQorCXsKKwkJR3JhcGhFbGVtZW50UGF0dGVybiAqZ2VwID0gbGZpcnN0 X25vZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgbGMpOworCQlPaWQJCQlsYWJlbGlkID0gSW52 YWxpZE9pZDsKKwkJc3RydWN0IGVsdmFyX3J0X21hcHBpbmcgKmVybTsKKworCQlpZiAoIShn ZXAtPmtpbmQgPT0gVkVSVEVYX1BBVFRFUk4gfHwgZ2VwLT5raW5kID09IEVER0VfUEFUVEVS Tl9MRUZUIHx8IGdlcC0+a2luZCA9PSBFREdFX1BBVFRFUk5fUklHSFQpKQorCQkJZWxvZyhF UlJPUiwgInVuc3VwcG9ydGVkIGVsZW1lbnQgcGF0dGVybiBraW5kOiAldSIsIGdlcC0+a2lu ZCk7CisKKwkJaWYgKGdlcC0+cXVhbnRpZmllcikKKwkJCWVsb2coRVJST1IsICJlbGVtZW50 IHBhdHRlcm4gcXVhbnRpZmllciBub3Qgc3VwcG9ydGVkIHlldCIpOworCisJCWlmIChJc0Eo Z2VwLT5sYWJlbGV4cHIsIEdyYXBoTGFiZWxSZWYpKQorCQl7CisJCQlHcmFwaExhYmVsUmVm ICpnbHIgPSBjYXN0Tm9kZShHcmFwaExhYmVsUmVmLCBnZXAtPmxhYmVsZXhwcik7CisJCQlS YW5nZVRibEVudHJ5ICpyOworCQkJT2lkCQkJZWxpZDsKKwkJCU9pZAkJCXJlbGlkOworCQkJ UlRFUGVybWlzc2lvbkluZm8gKnJwaTsKKwkJCVJhbmdlVGJsUmVmICpydHI7CisKKwkJCXIg PSBtYWtlTm9kZShSYW5nZVRibEVudHJ5KTsKKwkJCXItPnJ0ZWtpbmQgPSBSVEVfUkVMQVRJ T047CisJCQllbGlkID0gbGluaXRpYWxfb2lkKGdldF9lbGVtZW50c19mb3JfbGFiZWwocnRl LT5yZWxpZCwgZ2xyLT5sYWJlbG5hbWUpKTsKKwkJCWVsZW1lbnRfaWRzID0gbGFwcGVuZF9v aWQoZWxlbWVudF9pZHMsIGVsaWQpOworCQkJcmVsaWQgPSBnZXRfdGFibGVfZm9yX2VsZW1l bnQoZWxpZCk7CisJCQlsYWJlbGlkID0gZ2V0X2xhYmVsaWQocnRlLT5yZWxpZCwgZ2xyLT5s YWJlbG5hbWUpOworCQkJci0+cmVsaWQgPSByZWxpZDsKKwkJCXItPnJlbGtpbmQgPSBnZXRf cmVsX3JlbGtpbmQocmVsaWQpOworCQkJci0+cmVsbG9ja21vZGUgPSBBY2Nlc3NTaGFyZUxv Y2s7CisJCQlyLT5pbmggPSB0cnVlOworCQkJbmV3c3VicXVlcnktPnJ0YWJsZSA9IGxhcHBl bmQobmV3c3VicXVlcnktPnJ0YWJsZSwgcik7CisKKwkJCXJwaSA9IG1ha2VOb2RlKFJURVBl cm1pc3Npb25JbmZvKTsKKwkJCXJwaS0+cmVsaWQgPSByZWxpZDsKKwkJCXJwaS0+Y2hlY2tB c1VzZXIgPSAwOworCQkJcnBpLT5yZXF1aXJlZFBlcm1zID0gQUNMX1NFTEVDVDsKKwkJCW5l d3N1YnF1ZXJ5LT5ydGVwZXJtaW5mb3MgPSBsYXBwZW5kKG5ld3N1YnF1ZXJ5LT5ydGVwZXJt aW5mb3MsIHJwaSk7CisKKwkJCXItPnBlcm1pbmZvaW5kZXggPSBsaXN0X2xlbmd0aChuZXdz dWJxdWVyeS0+cnRlcGVybWluZm9zKTsKKworCQkJcnRyID0gbWFrZU5vZGUoUmFuZ2VUYmxS ZWYpOworCQkJcnRyLT5ydGluZGV4ID0gbGlzdF9sZW5ndGgobmV3c3VicXVlcnktPnJ0YWJs ZSk7CisJCQlmcm9tbGlzdCA9IGxhcHBlbmQoZnJvbWxpc3QsIHJ0cik7CisJCX0KKwkJZWxz ZQorCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIGxhYmVsIGV4cHJlc3Npb24gdHlwZTog JWQiLCAoaW50KSBub2RlVGFnKGdlcC0+bGFiZWxleHByKSk7CisKKwkJZXJtID0gcGFsbG9j MF9vYmplY3Qoc3RydWN0IGVsdmFyX3J0X21hcHBpbmcpOworCisJCWVybS0+ZWx2YXJuYW1l ID0gZ2VwLT52YXJpYWJsZTsKKwkJZXJtLT5sYWJlbGlkID0gbGFiZWxpZDsKKwkJZXJtLT5y dF9pbmRleCA9IGxpc3RfbGVuZ3RoKG5ld3N1YnF1ZXJ5LT5ydGFibGUpOworCisJCWVsdmFy X3J0X21hcHBpbmdzID0gbGFwcGVuZChlbHZhcl9ydF9tYXBwaW5ncywgZXJtKTsKKworCQlp ZiAoZ2VwLT53aGVyZUNsYXVzZSkKKwkJeworCQkJTm9kZQkgICAqdHI7CisKKwkJCXRyID0g cmVwbGFjZV9wcm9wZXJ0eV9yZWZzKGdlcC0+d2hlcmVDbGF1c2UsIGxpc3RfbWFrZTEoZXJt KSk7CisKKwkJCXF1YWxfZXhwcnMgPSBsYXBwZW5kKHF1YWxfZXhwcnMsIHRyKTsKKwkJfQor CX0KKworCS8qIEl0ZXJhdGUgb3ZlciBlZGdlcyBvbmx5ICovCisJZm9yIChpbnQgayA9IDE7 IGsgPCBsaXN0X2xlbmd0aChlbGVtZW50X2lkcyk7IGsgKz0gMikKKwl7CisJCU9pZAkJCWVs aWQgPSBsaXN0X250aF9vaWQoZWxlbWVudF9pZHMsIGspOworCQlIZWFwVHVwbGUJdHVwbGU7 CisJCUZvcm1fcGdfcHJvcGdyYXBoX2VsZW1lbnQgcGdlZm9ybTsKKwkJR3JhcGhFbGVtZW50 UGF0dGVybiAqZ2VwID0gbGlzdF9udGhfbm9kZShHcmFwaEVsZW1lbnRQYXR0ZXJuLCBlbGVt ZW50X3BhdHRlcm5zLCBrKTsKKwkJaW50CQkJc3JjdmVydGV4b2Zmc2V0OworCQlpbnQJCQlk ZXN0dmVydGV4b2Zmc2V0OworCisJCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKFBST1BHUkFQ SEVMT0lELCBPYmplY3RJZEdldERhdHVtKGVsaWQpKTsKKwkJaWYgKCF0dXBsZSkKKwkJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwcm9wZXJ0eSBncmFwaCBlbGVt ZW50ICV1IiwgZWxpZCk7CisJCXBnZWZvcm0gPSAoKEZvcm1fcGdfcHJvcGdyYXBoX2VsZW1l bnQpIEdFVFNUUlVDVCh0dXBsZSkpOworCisJCWlmIChnZXAtPmtpbmQgPT0gRURHRV9QQVRU RVJOX1JJR0hUKQorCQl7CisJCQlzcmN2ZXJ0ZXhvZmZzZXQgPSAtMTsKKwkJCWRlc3R2ZXJ0 ZXhvZmZzZXQgPSArMTsKKwkJfQorCQllbHNlIGlmIChnZXAtPmtpbmQgPT0gRURHRV9QQVRU RVJOX0xFRlQpCisJCXsKKwkJCXNyY3ZlcnRleG9mZnNldCA9ICsxOworCQkJZGVzdHZlcnRl eG9mZnNldCA9IC0xOworCQl9CisJCWVsc2UKKwkJeworCQkJQXNzZXJ0KGZhbHNlKTsKKwkJ CXNyY3ZlcnRleG9mZnNldCA9IDA7CisJCQlkZXN0dmVydGV4b2Zmc2V0ID0gMDsKKwkJfQor CisJCS8qCisJCSAqIHNvdXJjZSBsaW5rCisJCSAqLworCQlpZiAocGdlZm9ybS0+cGdlc3Jj dmVydGV4aWQgIT0gbGlzdF9udGhfb2lkKGVsZW1lbnRfaWRzLCBrICsgc3JjdmVydGV4b2Zm c2V0KSkKKwkJeworCQkJcXVhbF9leHBycyA9IGxhcHBlbmQocXVhbF9leHBycywgbWFrZUJv b2xDb25zdChmYWxzZSwgZmFsc2UpKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCXF1YWxfZXhw cnMgPSBsaXN0X2NvbmNhdChxdWFsX2V4cHJzLAorCQkJCQkJCQkJIGJ1aWxkX2VkZ2VfdmVy dGV4X2xpbmtfcXVhbHModHVwbGUsIGsgKyAxLCBrICsgMSArIHNyY3ZlcnRleG9mZnNldCwK KwkJCQkJCQkJCQkJCQkJCQkgIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlc3Jja2V5 LCBBbnVtX3BnX3Byb3BncmFwaF9lbGVtZW50X3BnZXNyY3JlZikpOworCQl9CisKKwkJLyoK KwkJICogZGVzdCBsaW5rCisJCSAqLworCQlpZiAocGdlZm9ybS0+cGdlZGVzdHZlcnRleGlk ICE9IGxpc3RfbnRoX29pZChlbGVtZW50X2lkcywgayArIGRlc3R2ZXJ0ZXhvZmZzZXQpKQor CQl7CisJCQlxdWFsX2V4cHJzID0gbGFwcGVuZChxdWFsX2V4cHJzLCBtYWtlQm9vbENvbnN0 KGZhbHNlLCBmYWxzZSkpOworCQl9CisJCWVsc2UKKwkJeworCQkJcXVhbF9leHBycyA9IGxp c3RfY29uY2F0KHF1YWxfZXhwcnMsCisJCQkJCQkJCQkgYnVpbGRfZWRnZV92ZXJ0ZXhfbGlu a19xdWFscyh0dXBsZSwgayArIDEsIGsgKyAxICsgZGVzdHZlcnRleG9mZnNldCwKKwkJCQkJ CQkJCQkJCQkJCQkgIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdGtleSwgQW51 bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VkZXN0cmVmKSk7CisJCX0KKworCQlSZWxlYXNl U3lzQ2FjaGUodHVwbGUpOworCX0KKworCW5ld3N1YnF1ZXJ5LT5qb2ludHJlZSA9IG1ha2VG cm9tRXhwcihmcm9tbGlzdCwgKE5vZGUgKikgbWFrZUJvb2xFeHByKEFORF9FWFBSLCBxdWFs X2V4cHJzLCAtMSkpOworCisJZm9yZWFjaChsYywgcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5z KQorCXsKKwkJVGFyZ2V0RW50cnkgKnRlID0gbGZpcnN0X25vZGUoVGFyZ2V0RW50cnksIGxj KTsKKwkJTm9kZQkgICAqbnRlOworCisJCW50ZSA9IHJlcGxhY2VfcHJvcGVydHlfcmVmcygo Tm9kZSAqKSB0ZSwgZWx2YXJfcnRfbWFwcGluZ3MpOworCQluZXdzdWJxdWVyeS0+dGFyZ2V0 TGlzdCA9IGxhcHBlbmQobmV3c3VicXVlcnktPnRhcmdldExpc3QsIG50ZSk7CisJfQorCisJ QWNxdWlyZVJld3JpdGVMb2NrcyhuZXdzdWJxdWVyeSwgdHJ1ZSwgZmFsc2UpOworCisJcnRl LT5ydGVraW5kID0gUlRFX1NVQlFVRVJZOworCXJ0ZS0+c3VicXVlcnkgPSBuZXdzdWJxdWVy eTsKKworCS8qCisJICogUmVzZXQgbm8gbG9uZ2VyIGFwcGxpY2FibGUgZmllbGRzLCB0byBh cHBlYXNlCisJICogV1JJVEVfUkVBRF9QQVJTRV9QTEFOX1RSRUVTLgorCSAqLworCXJ0ZS0+ Z3JhcGhfcGF0dGVybiA9IE5VTEw7CisJcnRlLT5ncmFwaF90YWJsZV9jb2x1bW5zID0gTklM OworCisJcmV0dXJuIHBhcnNldHJlZTsKK30KKworLyoKKyAqIEdldCBsYWJlbCBPSUQgZnJv bSBncmFwaCBPSUQgYW5kIGxhYmVsIG5hbWUuCisgKgorICogVE9ETzogVGhpcyBjb3VsZCBt YXRjaCBtb3JlIHRoYW4gb25lIGVudHJ5LiAgUmlnaHQgbm93IGl0IG9ubHkgcmV0dXJucyB0 aGUKKyAqIGZpcnN0IG9uZS4KKyAqLworc3RhdGljIE9pZAorZ2V0X2xhYmVsaWQoT2lkIGdy YXBoaWQsIGNvbnN0IGNoYXIgKmxhYmVsbmFtZSkKK3sKKwlSZWxhdGlvbglyZWw7CisJU3lz U2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBrZXlbMl07CisJSGVhcFR1cGxlCXR1cDsK KwlPaWQJCQlyZXN1bHQgPSBJbnZhbGlkT2lkOworCisJcmVsID0gdGFibGVfb3BlbihQcm9w Z3JhcGhMYWJlbFJlbGF0aW9uSWQsIFJvd1NoYXJlTG9jayk7CisJU2NhbktleUluaXQoJmtl eVswXSwKKwkJCQlBbnVtX3BnX3Byb3BncmFwaF9sYWJlbF9wZ2xwZ2lkLAorCQkJCUJURXF1 YWxTdHJhdGVneU51bWJlciwKKwkJCQlGX09JREVRLCBPYmplY3RJZEdldERhdHVtKGdyYXBo aWQpKTsKKwlTY2FuS2V5SW5pdCgma2V5WzFdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBoX2xh YmVsX3BnbGxhYmVsLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwKKwkJCQlGX05BTUVF USwgQ1N0cmluZ0dldERhdHVtKGxhYmVsbmFtZSkpOworCisJc2NhbiA9IHN5c3RhYmxlX2Jl Z2luc2NhbihyZWwsIFByb3BncmFwaExhYmVsR3JhcGhOYW1lSW5kZXhJZCwKKwkJCQkJCQkg IHRydWUsIE5VTEwsIDIsIGtleSk7CisKKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXAg PSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCXJlc3VsdCA9ICgoRm9ybV9wZ19w cm9wZ3JhcGhfbGFiZWwpIEdFVFNUUlVDVCh0dXApKS0+b2lkOworCQlicmVhazsKKwl9CisK KwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Nsb3NlKHJlbCwgUm93U2hhcmVM b2NrKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBHZXQgbGlzdCBvZiBlbGVt ZW50IE9JRHMgdGhhdCBoYXZlIGEgZ2l2ZW4gbGFiZWwuCisgKi8KK3N0YXRpYyBMaXN0ICoK K2dldF9lbGVtZW50c19mb3JfbGFiZWwoT2lkIGdyYXBoaWQsIGNvbnN0IGNoYXIgKmxhYmVs bmFtZSkKK3sKKwlSZWxhdGlvbglyZWw7CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5 RGF0YSBrZXlbMl07CisJSGVhcFR1cGxlCXR1cDsKKwlMaXN0CSAgICpyZXN1bHQgPSBOSUw7 CisKKwlyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaExhYmVsUmVsYXRpb25JZCwgUm93U2hh cmVMb2NrKTsKKwlTY2FuS2V5SW5pdCgma2V5WzBdLAorCQkJCUFudW1fcGdfcHJvcGdyYXBo X2xhYmVsX3BnbHBnaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLAorCQkJCUZfT0lE RVEsIE9iamVjdElkR2V0RGF0dW0oZ3JhcGhpZCkpOworCVNjYW5LZXlJbml0KCZrZXlbMV0s CisJCQkJQW51bV9wZ19wcm9wZ3JhcGhfbGFiZWxfcGdsbGFiZWwsCisJCQkJQlRFcXVhbFN0 cmF0ZWd5TnVtYmVyLAorCQkJCUZfTkFNRUVRLCBDU3RyaW5nR2V0RGF0dW0obGFiZWxuYW1l KSk7CisKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgUHJvcGdyYXBoTGFiZWxH cmFwaE5hbWVJbmRleElkLAorCQkJCQkJCSAgdHJ1ZSwgTlVMTCwgMiwga2V5KTsKKworCXdo aWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cCA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQor CXsKKwkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCAoKEZvcm1fcGdfcHJvcGdyYXBo X2xhYmVsKSBHRVRTVFJVQ1QodHVwKSktPnBnbGVsaWQpOworCX0KKworCXN5c3RhYmxlX2Vu ZHNjYW4oc2Nhbik7CisJdGFibGVfY2xvc2UocmVsLCBSb3dTaGFyZUxvY2spOworCisJcmV0 dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIEdldCB0aGUgZWxlbWVudCB0YWJsZSBPSUQgZm9y IGEgZ2l2ZW4gZWxlbWVudC4KKyAqLworc3RhdGljIE9pZAorZ2V0X3RhYmxlX2Zvcl9lbGVt ZW50KE9pZCBlbGlkKQoreworCXJldHVybiBHZXRTeXNDYWNoZU9pZDEoUFJPUEdSQVBIRUxP SUQsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlcmVsaWQsIE9iamVjdElkR2V0RGF0 dW0oZWxpZCkpOworfQorCisvKgorICogTXV0YXRpbmcgcHJvcGVydHkgcmVmZXJlbmNlcyBp bnRvIHRhYmxlIHZhcmlhYmxlcworICovCisKK3N0cnVjdCByZXBsYWNlX3Byb3BlcnR5X3Jl ZnNfY29udGV4dAoreworCWNvbnN0IExpc3QgKm1hcHBpbmdzOworfTsKKworc3RhdGljIE5v ZGUgKgorcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX211dGF0b3IoTm9kZSAqbm9kZSwgc3RydWN0 IHJlcGxhY2VfcHJvcGVydHlfcmVmc19jb250ZXh0ICpjb250ZXh0KQoreworCWlmIChub2Rl ID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCWlmIChJc0Eobm9kZSwgR3JhcGhQcm9wZXJ0 eVJlZikpCisJeworCQlHcmFwaFByb3BlcnR5UmVmICpncHIgPSAoR3JhcGhQcm9wZXJ0eVJl ZiAqKSBub2RlOworCQlIZWFwVHVwbGUJdHVwOworCQlOb2RlCSAgICpuOworCQlMaXN0Q2Vs bCAgICpsYzsKKwkJc3RydWN0IGVsdmFyX3J0X21hcHBpbmcgKmZvdW5kX21hcHBpbmcgPSBO VUxMOworCisJCWZvcmVhY2gobGMsIGNvbnRleHQtPm1hcHBpbmdzKQorCQl7CisJCQlzdHJ1 Y3QgZWx2YXJfcnRfbWFwcGluZyAqbSA9IGxmaXJzdChsYyk7CisKKwkJCWlmIChtLT5lbHZh cm5hbWUgJiYgc3RyY21wKGdwci0+ZWx2YXJuYW1lLCBtLT5lbHZhcm5hbWUpID09IDApCisJ CQl7CisJCQkJZm91bmRfbWFwcGluZyA9IG07CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJ aWYgKCFmb3VuZF9tYXBwaW5nKQorCQkJZWxvZyhFUlJPUiwgInVuZGVmaW5lZCBlbGVtZW50 IHZhcmlhYmxlIFwiJXNcIiIsIGdwci0+ZWx2YXJuYW1lKTsKKworCQl0dXAgPSBTZWFyY2hT eXNDYWNoZTIoUFJPUEdSQVBIUFJPUE5BTUUsIE9iamVjdElkR2V0RGF0dW0oZm91bmRfbWFw cGluZy0+bGFiZWxpZCksIENTdHJpbmdHZXREYXR1bShncHItPnByb3BuYW1lKSk7CisJCWlm ICghdHVwKQorCQkJZWxvZyhFUlJPUiwgInByb3BlcnR5IFwiJXNcIiBvZiBsYWJlbCAldSBu b3QgZm91bmQiLCBncHItPnByb3BuYW1lLCBmb3VuZF9tYXBwaW5nLT5sYWJlbGlkKTsKKwor CQluID0gc3RyaW5nVG9Ob2RlKFRleHREYXR1bUdldENTdHJpbmcoU3lzQ2FjaGVHZXRBdHRy Tm90TnVsbChQUk9QR1JBUEhQUk9QTkFNRSwgdHVwLCBBbnVtX3BnX3Byb3BncmFwaF9wcm9w ZXJ0eV9wZ3BleHByKSkpOworCQlDaGFuZ2VWYXJOb2RlcyhuLCAxLCBmb3VuZF9tYXBwaW5n LT5ydF9pbmRleCwgMCk7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwkJcmV0dXJu IG47CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCByZXBsYWNl X3Byb3BlcnR5X3JlZnNfbXV0YXRvciwgY29udGV4dCk7Cit9CisKK3N0YXRpYyBOb2RlICoK K3JlcGxhY2VfcHJvcGVydHlfcmVmcyhOb2RlICpub2RlLCBjb25zdCBMaXN0ICptYXBwaW5n cykKK3sKKwlzdHJ1Y3QgcmVwbGFjZV9wcm9wZXJ0eV9yZWZzX2NvbnRleHQgY29udGV4dDsK KworCWNvbnRleHQubWFwcGluZ3MgPSBtYXBwaW5nczsKKworCXJldHVybiBleHByZXNzaW9u X3RyZWVfbXV0YXRvcihub2RlLCByZXBsYWNlX3Byb3BlcnR5X3JlZnNfbXV0YXRvciwgJmNv bnRleHQpOworfQorCisvKgorICogQnVpbGQgam9pbiBxdWFsaWZpY2F0aW9uIGV4cHJlc3Np b25zIGJldHdlZW4gZWRnZSBhbmQgdmVydGV4IHRhYmxlcy4KKyAqLworc3RhdGljIExpc3Qg KgorYnVpbGRfZWRnZV92ZXJ0ZXhfbGlua19xdWFscyhIZWFwVHVwbGUgZWRnZXR1cCwgaW50 IGVkZ2VydGksIGludCByZWZydGksIEF0dHJOdW1iZXIgY2F0YWxvZ19rZXlfYXR0bnVtLCBB dHRyTnVtYmVyIGNhdGFsb2dfcmVmX2F0dG51bSkKK3sKKwlMaXN0CSAgICpxdWFscyA9IE5J TDsKKwlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50IHBnZWZvcm07CisJRGF0dW0JCWRhdHVt OworCURhdHVtCSAgICpkMSwKKwkJCSAgICpkMjsKKwlpbnQJCQluMSwKKwkJCQluMjsKKwor CXBnZWZvcm0gPSAoRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKGVkZ2V0 dXApOworCisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFBST1BHUkFQSEVMT0lE LCBlZGdldHVwLCBjYXRhbG9nX2tleV9hdHRudW0pOworCWRlY29uc3RydWN0X2FycmF5X2J1 aWx0aW4oRGF0dW1HZXRBcnJheVR5cGVQKGRhdHVtKSwgSU5UMk9JRCwgJmQxLCBOVUxMLCAm bjEpOworCisJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFBST1BHUkFQSEVMT0lE LCBlZGdldHVwLCBjYXRhbG9nX3JlZl9hdHRudW0pOworCWRlY29uc3RydWN0X2FycmF5X2J1 aWx0aW4oRGF0dW1HZXRBcnJheVR5cGVQKGRhdHVtKSwgSU5UMk9JRCwgJmQyLCBOVUxMLCAm bjIpOworCisJaWYgKG4xICE9IG4yKQorCQllbG9nKEVSUk9SLCAiYXJyYXkgc2l6ZSBrZXkg KCVkKSB2cyByZWYgKCVkKSBtaXNtYXRjaCBmb3IgZWxlbWVudCBJRCAldSIsIGNhdGFsb2df a2V5X2F0dG51bSwgY2F0YWxvZ19yZWZfYXR0bnVtLCBwZ2Vmb3JtLT5vaWQpOworCisJZm9y IChpbnQgaSA9IDA7IGkgPCBuMTsgaSsrKQorCXsKKwkJQXR0ck51bWJlcglrZXlhdHRuID0g RGF0dW1HZXRJbnQxNihkMVtpXSk7CisJCUF0dHJOdW1iZXIJcmVmYXR0biA9IERhdHVtR2V0 SW50MTYoZDJbaV0pOworCQlPaWQJCQlhdHR0eXBpZDsKKwkJVHlwZUNhY2hlRW50cnkgKnR5 cGVudHJ5OworCQlPcEV4cHIJICAgKm9wOworCisJCS8qCisJCSAqIFRPRE86IEFzc3VtZXMg dHlwZXMgdGhlIHNhbWUgb24gYm90aCBzaWRlczsgbm8gY29sbGF0aW9ucyB5ZXQuIFNvbWUK KwkJICogb2YgdGhpcyBjb3VsZCBwcm9iYWJseSBiZSBzaGFyZWQgd2l0aCBmb3JlaWduIGtl eSB0cmlnZ2Vycy4KKwkJICovCisJCWF0dHR5cGlkID0gZ2V0X2F0dHR5cGUocGdlZm9ybS0+ cGdlcmVsaWQsIGtleWF0dG4pOworCQl0eXBlbnRyeSA9IGxvb2t1cF90eXBlX2NhY2hlKGF0 dHR5cGlkLCBUWVBFQ0FDSEVfRVFfT1BSKTsKKworCQlvcCA9IG1ha2VOb2RlKE9wRXhwcik7 CisJCW9wLT5sb2NhdGlvbiA9IC0xOworCQlvcC0+b3BubyA9IHR5cGVudHJ5LT5lcV9vcHI7 CisJCW9wLT5vcHJlc3VsdHR5cGUgPSBCT09MT0lEOworCQlvcC0+YXJncyA9IGxpc3RfbWFr ZTIobWFrZVZhcihlZGdlcnRpLCBrZXlhdHRuLCBhdHR0eXBpZCwgLTEsIDAsIDApLAorCQkJ CQkJCSAgbWFrZVZhcihyZWZydGksIHJlZmF0dG4sIGF0dHR5cGlkLCAtMSwgMCwgMCkpOwor CQlxdWFscyA9IGxhcHBlbmQocXVhbHMsIG9wKTsKKwl9CisKKwlyZXR1cm4gcXVhbHM7Cit9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgYi9z cmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKaW5kZXggZjYwYjM0ZGViNjQu LjZiODE5MmMwNzQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVI YW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBA IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0 ZURlZmluZS5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuaCIKICNp bmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9y ZXdyaXRlTWFuaXAuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVTZWFyY2hDeWNsZS5o IgpAQCAtMjAyNyw2ICsyMDI4LDE3IEBAIGZpcmVSSVJydWxlcyhRdWVyeSAqcGFyc2V0cmVl LCBMaXN0ICphY3RpdmVSSVJzKQogCiAJCXJ0ZSA9IHJ0X2ZldGNoKHJ0X2luZGV4LCBwYXJz ZXRyZWUtPnJ0YWJsZSk7CiAKKwkJLyoKKwkJICogQ29udmVydCBHUkFQSF9UQUJMRSBjbGF1 c2UgaW50byBhIHN1YnF1ZXJ5IHVzaW5nIHJlbGF0aW9uYWwKKwkJICogb3BlcmF0b3JzLiAg KFRoaXMgd2lsbCBjaGFuZ2UgdGhlIHJ0ZWtpbmQgdG8gc3VicXVlcnksIHNvIGl0IG11c3QK KwkJICogYmUgZG9uZSBiZWZvcmUgdGhlIHN1YnF1ZXJ5IGhhbmRsaW5nIGJlbG93LikKKwkJ ICovCisJCWlmIChydGUtPnJ0ZWtpbmQgPT0gUlRFX0dSQVBIX1RBQkxFKQorCQl7CisJCQlw YXJzZXRyZWUgPSByZXdyaXRlR3JhcGhUYWJsZShwYXJzZXRyZWUsIHJ0X2luZGV4KTsKKwkJ CWNvbnRpbnVlOworCQl9CisKIAkJLyoKIAkJICogQSBzdWJxdWVyeSBSVEUgY2FuJ3QgaGF2 ZSBhc3NvY2lhdGVkIHJ1bGVzLCBzbyB0aGVyZSdzIG5vdGhpbmcgdG8KIAkJICogZG8gdG8g dGhpcyBsZXZlbCBvZiB0aGUgcXVlcnksIGJ1dCB3ZSBtdXN0IHJlY3Vyc2UgaW50byB0aGUK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKaW5kZXggOGRlODIxZjk2MDcuLjA2YzJjM2EyYjliIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYwpAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3BvcnRh bGNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvcHJvY2xhbmcuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCkBA IC0xNTUsNiArMTU2LDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9k ZSAqcGFyc2V0cmVlKQogCQljYXNlIFRfQWx0ZXJPcGVyYXRvclN0bXQ6CiAJCWNhc2UgVF9B bHRlck93bmVyU3RtdDoKIAkJY2FzZSBUX0FsdGVyUG9saWN5U3RtdDoKKwkJY2FzZSBUX0Fs dGVyUHJvcEdyYXBoU3RtdDoKIAkJY2FzZSBUX0FsdGVyUHVibGljYXRpb25TdG10OgogCQlj YXNlIFRfQWx0ZXJSb2xlU2V0U3RtdDoKIAkJY2FzZSBUX0FsdGVyUm9sZVN0bXQ6CkBAIC0x ODUsNiArMTg3LDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAq cGFyc2V0cmVlKQogCQljYXNlIFRfQ3JlYXRlT3BGYW1pbHlTdG10OgogCQljYXNlIFRfQ3Jl YXRlUExhbmdTdG10OgogCQljYXNlIFRfQ3JlYXRlUG9saWN5U3RtdDoKKwkJY2FzZSBUX0Ny ZWF0ZVByb3BHcmFwaFN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAJ CWNhc2UgVF9DcmVhdGVSYW5nZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVSb2xlU3RtdDoKQEAg LTE3NDMsNiArMTc0NiwxNCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQkJCWNvbW1hbmRDb2xsZWN0ZWQgPSB0cnVlOwogCQkJCWJyZWFrOwogCisJCQlj YXNlIFRfQ3JlYXRlUHJvcEdyYXBoU3RtdDoKKwkJCQlhZGRyZXNzID0gQ3JlYXRlUHJvcEdy YXBoKHBzdGF0ZSwgKENyZWF0ZVByb3BHcmFwaFN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQli cmVhazsKKworCQkJY2FzZSBUX0FsdGVyUHJvcEdyYXBoU3RtdDoKKwkJCQlhZGRyZXNzID0g QWx0ZXJQcm9wR3JhcGgocHN0YXRlLCAoQWx0ZXJQcm9wR3JhcGhTdG10ICopIHBhcnNldHJl ZSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgVF9DcmVhdGVUcmFuc2Zvcm1TdG10OgogCQkJ CWFkZHJlc3MgPSBDcmVhdGVUcmFuc2Zvcm0oKENyZWF0ZVRyYW5zZm9ybVN0bXQgKikgcGFy c2V0cmVlKTsKIAkJCQlicmVhazsKQEAgLTIwMTEsNiArMjAyMiw3IEBAIEV4ZWNEcm9wU3Rt dChEcm9wU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQljYXNlIE9CSkVDVF9WSUVX OgogCQljYXNlIE9CSkVDVF9NQVRWSUVXOgogCQljYXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxF OgorCQljYXNlIE9CSkVDVF9QUk9QR1JBUEg6CiAJCQlSZW1vdmVSZWxhdGlvbnMoc3RtdCk7 CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTIyODgsNiArMjMwMCw5IEBAIEFsdGVyT2Jq ZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9Q Uk9DRURVUkU6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfUFJPQ0VEVVJFOwogCQkJYnJlYWs7 CisJCWNhc2UgT0JKRUNUX1BST1BHUkFQSDoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9QUk9Q RVJUWV9HUkFQSDsKKwkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9ST0xFOgogCQkJdGFnID0g Q01EVEFHX0FMVEVSX1JPTEU7CiAJCQlicmVhazsKQEAgLTI1NjQsNiArMjU3OSw5IEBAIENy ZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX0lOREVY OgogCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9JTkRFWDsKIAkJCQkJYnJlYWs7CisJCQkJY2Fz ZSBPQkpFQ1RfUFJPUEdSQVBIOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9QUk9QRVJUWV9H UkFQSDsKKwkJCQkJYnJlYWs7CiAJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJdGFnID0g Q01EVEFHX0RST1BfVFlQRTsKIAkJCQkJYnJlYWs7CkBAIC0yOTQ1LDYgKzI5NjMsMTQgQEAg Q3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJCQlicmVhazsKIAor CQljYXNlIFRfQ3JlYXRlUHJvcEdyYXBoU3RtdDoKKwkJCXRhZyA9IENNRFRBR19DUkVBVEVf UFJPUEVSVFlfR1JBUEg7CisJCQlicmVhazsKKworCQljYXNlIFRfQWx0ZXJQcm9wR3JhcGhT dG10OgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX1BST1BFUlRZX0dSQVBIOworCQkJYnJlYWs7 CisKIAkJY2FzZSBUX0NyZWF0ZVRyYW5zZm9ybVN0bXQ6CiAJCQl0YWcgPSBDTURUQUdfQ1JF QVRFX1RSQU5TRk9STTsKIAkJCWJyZWFrOwpAQCAtMzY0Miw2ICszNjY4LDE0IEBAIEdldENv bW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUpCiAJCQlsZXYgPSBMT0dTVE1UX0RETDsK IAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVQcm9wR3JhcGhTdG10OgorCQkJbGV2ID0g TE9HU1RNVF9EREw7CisJCQlicmVhazsKKworCQljYXNlIFRfQWx0ZXJQcm9wR3JhcGhTdG10 OgorCQkJbGV2ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwogCQljYXNlIFRfQ3JlYXRl VHJhbnNmb3JtU3RtdDoKIAkJCWxldiA9IExPR1NUTVRfRERMOwogCQkJYnJlYWs7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggYTkyOGE4YzU1ZGYuLmFhMTFjNGRlZjYw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0zNSw2ICszNSw5IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf cGFydGl0aW9uZWRfdGFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9lbGVtZW50LmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3Bn cmFwaF9wcm9wZXJ0eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdHlwZS5oIgpAQCAtMzQ2LDYgKzM0OSw5IEBAIHN0YXRpYyBjaGFyICpwZ19nZXRfaW5k ZXhkZWZfd29ya2VyKE9pZCBpbmRleHJlbGlkLCBpbnQgY29sbm8sCiAJCQkJCQkJCQlib29s IGF0dHJzT25seSwgYm9vbCBrZXlzT25seSwKIAkJCQkJCQkJCWJvb2wgc2hvd1RibFNwYywg Ym9vbCBpbmhlcml0cywKIAkJCQkJCQkJCWludCBwcmV0dHlGbGFncywgYm9vbCBtaXNzaW5n X29rKTsKK3N0YXRpYyB2b2lkIG1ha2VfcHJvcGdyYXBoZGVmX2VsZW1lbnRzKFN0cmluZ0lu Zm8gYnVmLCBPaWQgcGdyZWxpZCwgY2hhciBwZ2VraW5kKTsKK3N0YXRpYyB2b2lkIG1ha2Vf cHJvcGdyYXBoZGVmX2xhYmVscyhTdHJpbmdJbmZvIGJ1ZiwgT2lkIGVsaWQsIGNvbnN0IGNo YXIgKmVsYWxpYXMsIE9pZCBlbHJlbGlkKTsKK3N0YXRpYyB2b2lkIG1ha2VfcHJvcGdyYXBo ZGVmX3Byb3BlcnRpZXMoU3RyaW5nSW5mbyBidWYsIE9pZCBsYWJlbGlkLCBPaWQgZWxyZWxp ZCk7CiBzdGF0aWMgY2hhciAqcGdfZ2V0X3N0YXRpc3RpY3NvYmpfd29ya2VyKE9pZCBzdGF0 ZXh0aWQsIGJvb2wgY29sdW1uc19vbmx5LAogCQkJCQkJCQkJCSBib29sIG1pc3Npbmdfb2sp Owogc3RhdGljIGNoYXIgKnBnX2dldF9wYXJ0a2V5ZGVmX3dvcmtlcihPaWQgcmVsaWQsIGlu dCBwcmV0dHlGbGFncywKQEAgLTE1NzAsNiArMTU3NiwyOTggQEAgcGdfZ2V0X3F1ZXJ5ZGVm KFF1ZXJ5ICpxdWVyeSwgYm9vbCBwcmV0dHkpCiAJcmV0dXJuIGJ1Zi5kYXRhOwogfQogCisv KgorICogcGdfZ2V0X3Byb3BncmFwaGRlZiAtIGdldCB0aGUgZGVmaW5pdGlvbiBvZiBhIHBy b3BlcnR5IGdyYXBoCisgKi8KK0RhdHVtCitwZ19nZXRfcHJvcGdyYXBoZGVmKFBHX0ZVTkNU SU9OX0FSR1MpCit7CisJT2lkCQkJcGdyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJU3Ry aW5nSW5mb0RhdGEgYnVmOworCUhlYXBUdXBsZQljbGFzc3R1cDsKKwlGb3JtX3BnX2NsYXNz IGNsYXNzZm9ybTsKKwljaGFyCSAgICpuYW1lOworCWNoYXIJICAgKm5zcDsKKworCWluaXRT dHJpbmdJbmZvKCZidWYpOworCisJY2xhc3N0dXAgPSBTZWFyY2hTeXNDYWNoZTEoUkVMT0lE LCBPYmplY3RJZEdldERhdHVtKHBncmVsaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQo Y2xhc3N0dXApKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJY2xhc3Nmb3JtID0gKEZvcm1f cGdfY2xhc3MpIEdFVFNUUlVDVChjbGFzc3R1cCk7CisJbmFtZSA9IE5hbWVTdHIoY2xhc3Nm b3JtLT5yZWxuYW1lKTsKKworCWlmIChjbGFzc2Zvcm0tPnJlbGtpbmQgIT0gUkVMS0lORF9Q Uk9QR1JBUEgpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9O R19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHByb3BlcnR5 IGdyYXBoIiwgbmFtZSkpKTsKKworCW5zcCA9IGdldF9uYW1lc3BhY2VfbmFtZShjbGFzc2Zv cm0tPnJlbG5hbWVzcGFjZSk7CisKKwlhcHBlbmRTdHJpbmdJbmZvKCZidWYsICJDUkVBVEUg UFJPUEVSVFkgR1JBUEggJXMiLAorCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIo bnNwLCBuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUoY2xhc3N0dXApOworCisJbWFrZV9w cm9wZ3JhcGhkZWZfZWxlbWVudHMoJmJ1ZiwgcGdyZWxpZCwgUEdFS0lORF9WRVJURVgpOwor CW1ha2VfcHJvcGdyYXBoZGVmX2VsZW1lbnRzKCZidWYsIHBncmVsaWQsIFBHRUtJTkRfRURH RSk7CisKKwlQR19SRVRVUk5fVEVYVF9QKHN0cmluZ190b190ZXh0KGJ1Zi5kYXRhKSk7Cit9 CisKKy8qCisgKiBHZW5lcmF0ZXMgYSBWRVJURVggVEFCTEVTICguLi4pIG9yIEVER0UgVEFC TEVTICguLi4pIGNsYXVzZS4gIFBhc3MgaW4gdGhlCisgKiBwcm9wZXJ0eSBncmFwaCByZWxh dGlvbiBPSUQgYW5kIHRoZSBlbGVtZW50IGtpbmQgKHZlcnRleCBvciBlZGdlKS4gIFJlc3Vs dAorICogaXMgYXBwZW5kZWQgdG8gYnVmLgorICovCitzdGF0aWMgdm9pZAorbWFrZV9wcm9w Z3JhcGhkZWZfZWxlbWVudHMoU3RyaW5nSW5mbyBidWYsIE9pZCBwZ3JlbGlkLCBjaGFyIHBn ZWtpbmQpCit7CisJUmVsYXRpb24JcGdlcmVsOworCVNjYW5LZXlEYXRhIHNjYW5rZXlbMV07 CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlib29sCQlmaXJzdDsKKwlIZWFwVHVwbGUJdHVwOwor CisJcGdlcmVsID0gdGFibGVfb3BlbihQcm9wZ3JhcGhFbGVtZW50UmVsYXRpb25JZCwgQWNj ZXNzU2hhcmVMb2NrKTsKKworCVNjYW5LZXlJbml0KCZzY2Fua2V5WzBdLAorCQkJCUFudW1f cGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlcGdpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShwZ3JlbGlkKSk7CisKKwlzY2Fu ID0gc3lzdGFibGVfYmVnaW5zY2FuKHBnZXJlbCwgUHJvcGdyYXBoRWxlbWVudEFsaWFzSW5k ZXhJZCwgdHJ1ZSwgTlVMTCwgMSwgc2NhbmtleSk7CisKKwlmaXJzdCA9IHRydWU7CisJd2hp bGUgKCh0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcHJv cGdyYXBoX2VsZW1lbnQgcGdlZm9ybSA9IChGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50KSBH RVRTVFJVQ1QodHVwKTsKKwkJY2hhcgkgICAqcmVsbmFtZTsKKwkJRGF0dW0JCWRhdHVtOwor CQlib29sCQlpc251bGw7CisKKwkJaWYgKHBnZWZvcm0tPnBnZWtpbmQgIT0gcGdla2luZCkK KwkJCWNvbnRpbnVlOworCisJCWlmIChmaXJzdCkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5m byhidWYsICJcbiAgICAlcyBUQUJMRVMgKFxuIiwgcGdla2luZCA9PSBQR0VLSU5EX1ZFUlRF WCA/ICJWRVJURVgiIDogIkVER0UiKTsKKwkJCWZpcnN0ID0gZmFsc2U7CisJCX0KKwkJZWxz ZQorCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIsXG4iKTsKKworCQlyZWxuYW1lID0gZ2V0 X3JlbF9uYW1lKHBnZWZvcm0tPnBnZXJlbGlkKTsKKwkJaWYgKHJlbG5hbWUgJiYgc3RyY21w KHJlbG5hbWUsIE5hbWVTdHIocGdlZm9ybS0+cGdlYWxpYXMpKSA9PSAwKQorCQkJYXBwZW5k U3RyaW5nSW5mbyhidWYsICIgICAgICAgICVzIiwKKwkJCQkJCQkgZ2VuZXJhdGVfcmVsYXRp b25fbmFtZShwZ2Vmb3JtLT5wZ2VyZWxpZCwgTklMKSk7CisJCWVsc2UKKwkJCWFwcGVuZFN0 cmluZ0luZm8oYnVmLCAiICAgICAgICAlcyBBUyAlcyIsCisJCQkJCQkJIGdlbmVyYXRlX3Jl bGF0aW9uX25hbWUocGdlZm9ybS0+cGdlcmVsaWQsIE5JTCksCisJCQkJCQkJIE5hbWVTdHIo cGdlZm9ybS0+cGdlYWxpYXMpKTsKKworCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXAsIEFu dW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdla2V5LCBSZWxhdGlvbkdldERlc2NyKHBnZXJl bCksICZpc251bGwpOworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhidWYsICIgS0VZICgiKTsKKwkJCWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJy YXkoZGF0dW0sIHBnZWZvcm0tPnBnZXJlbGlkLCBidWYpOworCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhidWYsICIpIik7CisJCX0KKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgIm51bGwg cGdla2V5IGZvciBlbGVtZW50ICV1IiwgcGdlZm9ybS0+b2lkKTsKKworCQlpZiAocGdla2lu ZCA9PSBQR0VLSU5EX0VER0UpCisJCXsKKwkJCURhdHVtCQlzcmNrZXk7CisJCQlEYXR1bQkJ c3JjcmVmOworCQkJRGF0dW0JCWRlc3RrZXk7CisJCQlEYXR1bQkJZGVzdHJlZjsKKwkJCUhl YXBUdXBsZQl0dXAyOworCQkJRm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCBwZ2Vmb3JtMjsK KworCQkJZGF0dW0gPSBoZWFwX2dldGF0dHIodHVwLCBBbnVtX3BnX3Byb3BncmFwaF9lbGVt ZW50X3BnZXNyY2tleSwgUmVsYXRpb25HZXREZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJ CXNyY2tleSA9IGlzbnVsbCA/IDAgOiBkYXR1bTsKKwkJCWRhdHVtID0gaGVhcF9nZXRhdHRy KHR1cCwgQW51bV9wZ19wcm9wZ3JhcGhfZWxlbWVudF9wZ2VzcmNyZWYsIFJlbGF0aW9uR2V0 RGVzY3IocGdlcmVsKSwgJmlzbnVsbCk7CisJCQlzcmNyZWYgPSBpc251bGwgPyAwIDogZGF0 dW07CisJCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXAsIEFudW1fcGdfcHJvcGdyYXBoX2Vs ZW1lbnRfcGdlZGVzdGtleSwgUmVsYXRpb25HZXREZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsK KwkJCWRlc3RrZXkgPSBpc251bGwgPyAwIDogZGF0dW07CisJCQlkYXR1bSA9IGhlYXBfZ2V0 YXR0cih0dXAsIEFudW1fcGdfcHJvcGdyYXBoX2VsZW1lbnRfcGdlZGVzdHJlZiwgUmVsYXRp b25HZXREZXNjcihwZ2VyZWwpLCAmaXNudWxsKTsKKwkJCWRlc3RyZWYgPSBpc251bGwgPyAw IDogZGF0dW07CisKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIFNPVVJDRSIp OworCQkJdHVwMiA9IFNlYXJjaFN5c0NhY2hlMShQUk9QR1JBUEhFTE9JRCwgT2JqZWN0SWRH ZXREYXR1bShwZ2Vmb3JtLT5wZ2VzcmN2ZXJ0ZXhpZCkpOworCQkJaWYgKCF0dXAyKQorCQkJ CWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwcm9wZXJ0eSBncmFwaCBl bGVtZW50ICV1IiwgcGdlZm9ybS0+cGdlc3JjdmVydGV4aWQpOworCQkJcGdlZm9ybTIgPSAo Rm9ybV9wZ19wcm9wZ3JhcGhfZWxlbWVudCkgR0VUU1RSVUNUKHR1cDIpOworCQkJaWYgKHNy Y2tleSkKKwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBLRVkgKCIp OworCQkJCWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkoc3Jja2V5LCBwZ2Vmb3JtLT5w Z2VyZWxpZCwgYnVmKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIikgUkVGRVJFTkNF UyAlcyAoIiwgTmFtZVN0cihwZ2Vmb3JtMi0+cGdlYWxpYXMpKTsKKwkJCQlkZWNvbXBpbGVf Y29sdW1uX2luZGV4X2FycmF5KHNyY3JlZiwgcGdlZm9ybTItPnBnZXJlbGlkLCBidWYpOwor CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiKSIpOworCQkJfQorCQkJZWxzZQor CQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiICVzICIsIE5hbWVTdHIocGdlZm9ybTItPnBn ZWFsaWFzKSk7CisJCQlSZWxlYXNlU3lzQ2FjaGUodHVwMik7CisKKwkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoYnVmLCAiIERFU1RJTkFUSU9OIik7CisJCQl0dXAyID0gU2VhcmNoU3lz Q2FjaGUxKFBST1BHUkFQSEVMT0lELCBPYmplY3RJZEdldERhdHVtKHBnZWZvcm0tPnBnZWRl c3R2ZXJ0ZXhpZCkpOworCQkJaWYgKCF0dXAyKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciBwcm9wZXJ0eSBncmFwaCBlbGVtZW50ICV1IiwgcGdlZm9ybS0+ cGdlZGVzdHZlcnRleGlkKTsKKwkJCXBnZWZvcm0yID0gKEZvcm1fcGdfcHJvcGdyYXBoX2Vs ZW1lbnQpIEdFVFNUUlVDVCh0dXAyKTsKKwkJCWlmIChkZXN0a2V5KQorCQkJeworCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIEtFWSAoIik7CisJCQkJZGVjb21waWxlX2Nv bHVtbl9pbmRleF9hcnJheShkZXN0a2V5LCBwZ2Vmb3JtLT5wZ2VyZWxpZCwgYnVmKTsKKwkJ CQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIikgUkVGRVJFTkNFUyAlcyAoIiwgTmFtZVN0cihw Z2Vmb3JtMi0+cGdlYWxpYXMpKTsKKwkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5 KGRlc3RyZWYsIHBnZWZvcm0yLT5wZ2VyZWxpZCwgYnVmKTsKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIikiKTsKKwkJCX0KKwkJCWVsc2UKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKGJ1ZiwgIiAlcyIsIE5hbWVTdHIocGdlZm9ybTItPnBnZWFsaWFzKSk7CisJCQlSZWxl YXNlU3lzQ2FjaGUodHVwMik7CisJCX0KKworCQltYWtlX3Byb3BncmFwaGRlZl9sYWJlbHMo YnVmLCBwZ2Vmb3JtLT5vaWQsIE5hbWVTdHIocGdlZm9ybS0+cGdlYWxpYXMpLCBwZ2Vmb3Jt LT5wZ2VyZWxpZCk7CisJfQorCWlmICghZmlyc3QpCisJCWFwcGVuZFN0cmluZ0luZm8oYnVm LCAiXG4gICAgKSIpOworCisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwl0YWJsZV9jbG9z ZShwZ2VyZWwsIEFjY2Vzc1NoYXJlTG9jayk7Cit9CisKKy8qCisgKiBHZW5lcmF0ZXMgbGFi ZWwgYW5kIHByb3BlcnRpZXMgbGlzdC4gIFBhc3MgaW4gdGhlIGVsZW1lbnQgT0lELCB0aGUg ZWxlbWVudAorICogYWxpYXMsIGFuZCB0aGUgZ3JhcGggcmVsYXRpb24gT0lELiAgUmVzdWx0 IGlzIGFwcGVuZCB0byBidWYuCisgKi8KK3N0YXRpYyB2b2lkCittYWtlX3Byb3BncmFwaGRl Zl9sYWJlbHMoU3RyaW5nSW5mbyBidWYsIE9pZCBlbGlkLCBjb25zdCBjaGFyICplbGFsaWFz LCBPaWQgZWxyZWxpZCkKK3sKKwlSZWxhdGlvbglwZ2xyZWw7CisJU2NhbktleURhdGEgc2Nh bmtleVsxXTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCWludAkJCWNvdW50OworCUhlYXBUdXBs ZQl0dXA7CisKKwlwZ2xyZWwgPSB0YWJsZV9vcGVuKFByb3BncmFwaExhYmVsUmVsYXRpb25J ZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCVNjYW5LZXlJbml0KCZzY2Fua2V5WzBdLAorCQkJ CUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3BnbGVsaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0oZWxpZCkpOworCisJY291 bnQgPSAwOworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdscmVsLCBQcm9wZ3JhcGhM YWJlbExhYmVsSW5kZXhJZCwgdHJ1ZSwgTlVMTCwgMSwgc2NhbmtleSk7CisJd2hpbGUgKCh0 dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCWNvdW50Kys7CisJfQorCXN5 c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisKKwkvKiBYWFggbmVlZCB0byByZS1pbml0IHNjYW4g a2V5IGZvciBzZWNvbmQgc2NhbiAqLworCVNjYW5LZXlJbml0KCZzY2Fua2V5WzBdLAorCQkJ CUFudW1fcGdfcHJvcGdyYXBoX2xhYmVsX3BnbGVsaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0oZWxpZCkpOworCisJc2Nh biA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ2xyZWwsIFByb3BncmFwaExhYmVsTGFiZWxJbmRl eElkLCB0cnVlLCBOVUxMLCAxLCBzY2Fua2V5KTsKKworCXdoaWxlICgodHVwID0gc3lzdGFi bGVfZ2V0bmV4dChzY2FuKSkpCisJeworCQlGb3JtX3BnX3Byb3BncmFwaF9sYWJlbCBwZ2xm b3JtID0gKEZvcm1fcGdfcHJvcGdyYXBoX2xhYmVsKSBHRVRTVFJVQ1QodHVwKTsKKworCQlp ZiAoc3RyY21wKE5hbWVTdHIocGdsZm9ybS0+cGdsbGFiZWwpLCBlbGFsaWFzKSA9PSAwKQor CQl7CisJCQkvKiBJZiB0aGUgZGVmYXVsdCBsYWJlbCBpcyB0aGUgb25seSBsYWJlbCwgZG9u J3QgcHJpbnQgYW55dGhpbmcuICovCisJCQlpZiAoY291bnQgIT0gMSkKKwkJCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgIiBERUZBVUxUIExBQkVMIik7CisJCX0KKwkJZWxzZQorCQkJYXBw ZW5kU3RyaW5nSW5mbyhidWYsICIgTEFCRUwgJXMiLAorCQkJCQkJCSBxdW90ZV9pZGVudGlm aWVyKE5hbWVTdHIocGdsZm9ybS0+cGdsbGFiZWwpKSk7CisKKwkJbWFrZV9wcm9wZ3JhcGhk ZWZfcHJvcGVydGllcyhidWYsIHBnbGZvcm0tPm9pZCwgZWxyZWxpZCk7CisJfQorCisJc3lz dGFibGVfZW5kc2NhbihzY2FuKTsKKworCXRhYmxlX2Nsb3NlKHBnbHJlbCwgQWNjZXNzU2hh cmVMb2NrKTsKK30KKworLyoKKyAqIEdlbmVyYXRlcyBlbGVtZW50IHRhYmxlIHByb3BlcnRp ZXMgY2xhdXNlIChQUk9QRVJUSUVTICguLi4pIG9yIE5PCisgKiBQUk9QRVJUSUVTKS4gIFBh c3MgaW4gbGFiZWwgT0RJIGFuZCBlbGVtZW50IHRhYmxlIE9JRC4gIFJlc3VsdCBpcyBhcHBl bmRlZAorICogdG8gYnVmLgorICovCitzdGF0aWMgdm9pZAorbWFrZV9wcm9wZ3JhcGhkZWZf cHJvcGVydGllcyhTdHJpbmdJbmZvIGJ1ZiwgT2lkIGxhYmVsaWQsIE9pZCBlbHJlbGlkKQor eworCUxpc3QJICAgKmNvbnRleHQ7CisJUmVsYXRpb24JcGdwcmVsOworCVNjYW5LZXlEYXRh IHNjYW5rZXlbMV07CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlIZWFwVHVwbGUJdHVwOworCWJv b2wJCWZpcnN0OworCisJY29udGV4dCA9IGRlcGFyc2VfY29udGV4dF9mb3IoZ2V0X3JlbGF0 aW9uX25hbWUoZWxyZWxpZCksIGVscmVsaWQpOworCisJcGdwcmVsID0gdGFibGVfb3BlbihQ cm9wZ3JhcGhQcm9wZXJ0eVJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlTY2Fu S2V5SW5pdCgmc2NhbmtleVswXSwKKwkJCQlBbnVtX3BnX3Byb3BncmFwaF9wcm9wZXJ0eV9w Z3BsYWJlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQlP YmplY3RJZEdldERhdHVtKGxhYmVsaWQpKTsKKworCS8qCisJICogTm90ZTogVXNlIG9mIGlu ZGV4IG9uIHByb3BlcnR5IG5hbWUgYWxzbyBlbnN1cmVzIHRoYXQgcHJvcGVydGllcyBhcmUK KwkgKiBwdXQgb3V0IGluIGEgZGV0ZXJtaW5pc3RpYyBvcmRlci4KKwkgKi8KKwlzY2FuID0g c3lzdGFibGVfYmVnaW5zY2FuKHBncHJlbCwgUHJvcGdyYXBoUHJvcGVydHlOYW1lSW5kZXhJ ZCwgdHJ1ZSwgTlVMTCwgMSwgc2NhbmtleSk7CisKKwlmaXJzdCA9IHRydWU7CisJd2hpbGUg KCh0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcHJvcGdy YXBoX3Byb3BlcnR5IHBncGZvcm0gPSAoRm9ybV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkpIEdF VFNUUlVDVCh0dXApOworCQlEYXR1bQkJZXhwckRhdHVtOworCQlib29sCQlpc251bGw7CisJ CWNoYXIJICAgKnRtcDsKKwkJTm9kZQkgICAqZXhwcjsKKworCQlpZiAoZmlyc3QpCisJCXsK KwkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiIFBST1BFUlRJRVMgKCIpOworCQkJZmlyc3Qg PSBmYWxzZTsKKwkJfQorCQllbHNlCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiwgIik7 CisKKwkJZXhwckRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cCwgQW51bV9wZ19wcm9wZ3JhcGhf cHJvcGVydHlfcGdwZXhwciwgUmVsYXRpb25HZXREZXNjcihwZ3ByZWwpLCAmaXNudWxsKTsK KwkJQXNzZXJ0KCFpc251bGwpOworCQl0bXAgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGV4cHJE YXR1bSk7CisJCWV4cHIgPSBzdHJpbmdUb05vZGUodG1wKTsKKwkJcGZyZWUodG1wKTsKKwor CQlpZiAoSXNBKGV4cHIsIFZhcikgJiYgc3RyY21wKE5hbWVTdHIocGdwZm9ybS0+cGdwbmFt ZSksIGdldF9hdHRuYW1lKGVscmVsaWQsIGNhc3ROb2RlKFZhciwgZXhwciktPnZhcmF0dG5v LCBmYWxzZSkpID09IDApCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzIiwKKwkJCQkJ CQkgTmFtZVN0cihwZ3Bmb3JtLT5wZ3BuYW1lKSk7CisJCWVsc2UKKwkJCWFwcGVuZFN0cmlu Z0luZm8oYnVmLCAiJXMgQVMgJXMiLAorCQkJCQkJCSBkZXBhcnNlX2V4cHJlc3Npb25fcHJl dHR5KGV4cHIsIGNvbnRleHQsIGZhbHNlLCBmYWxzZSwgMCwgMCksCisJCQkJCQkJIE5hbWVT dHIocGdwZm9ybS0+cGdwbmFtZSkpOworCX0KKworCWlmIChmaXJzdCkKKwkJYXBwZW5kU3Ry aW5nSW5mbyhidWYsICIgTk8gUFJPUEVSVElFUyIpOworCWVsc2UKKwkJYXBwZW5kU3RyaW5n SW5mbyhidWYsICIpIik7CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Ns b3NlKHBncHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKK30KKwogLyoKICAqIHBnX2dldF9zdGF0 aXN0aWNzb2JqZGVmCiAgKgkJR2V0IHRoZSBkZWZpbml0aW9uIG9mIGFuIGV4dGVuZGVkIHN0 YXRpc3RpY3Mgb2JqZWN0CkBAIC03MjMyLDYgKzc1MzAsMTcxIEBAIGdldF91dGlsaXR5X3F1 ZXJ5X2RlZihRdWVyeSAqcXVlcnksIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAl9CiB9 CiAKKworLyoKKyAqIFBhcnNlIGJhY2sgYSBncmFwaCBsYWJlbCBleHByZXNzaW9uCisgKi8K K3N0YXRpYyB2b2lkCitnZXRfZ3JhcGhfbGFiZWxfZXhwcihOb2RlICpsYWJlbF9leHByLCBk ZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCit7CisJU3RyaW5nSW5mbwlidWYgPSBjb250ZXh0 LT5idWY7CisKKwljaGVja19zdGFja19kZXB0aCgpOworCisJc3dpdGNoIChub2RlVGFnKGxh YmVsX2V4cHIpKQorCXsKKwkJY2FzZSBUX0dyYXBoTGFiZWxSZWY6CisJCQl7CisJCQkJR3Jh cGhMYWJlbFJlZiAqbHJlZiA9IChHcmFwaExhYmVsUmVmICopIGxhYmVsX2V4cHI7CisKKwkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVvdGVfaWRlbnRpZmllcihscmVmLT5s YWJlbG5hbWUpKTsKKwkJCQlicmVhazsKKwkJCX0KKworCQljYXNlIFRfQm9vbEV4cHI6CisJ CQl7CisJCQkJQm9vbEV4cHIgICAqYmUgPSAoQm9vbEV4cHIgKikgbGFiZWxfZXhwcjsKKwkJ CQlMaXN0Q2VsbCAgICpsYzsKKwkJCQlib29sCQlmaXJzdCA9IHRydWU7CisKKwkJCQlBc3Nl cnQoYmUtPmJvb2xvcCA9PSBPUl9FWFBSKTsKKworCQkJCWZvcmVhY2gobGMsIGJlLT5hcmdz KQorCQkJCXsKKwkJCQkJaWYgKCFmaXJzdCkKKwkJCQkJeworCQkJCQkJaWYgKGJlLT5ib29s b3AgPT0gT1JfRVhQUikKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgInwi KTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCQlnZXRf Z3JhcGhfbGFiZWxfZXhwcihsZmlyc3QobGMpLCBjb250ZXh0KTsKKwkJCQl9CisKKwkJCQli cmVhazsKKwkJCX0KKworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXpl ZCBub2RlIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhsYWJlbF9leHByKSk7CisJCQlicmVh azsKKwl9Cit9CisKKy8qCisgKiBQYXJzZSBiYWNrIGEgcGF0aCBwYXR0ZXJuIGV4cHJlc3Np b24KKyAqLworc3RhdGljIHZvaWQKK2dldF9wYXRoX3BhdHRlcm5fZXhwcl9kZWYoTGlzdCAq cGF0aF9wYXR0ZXJuX2V4cHIsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKK3sKKwlTdHJp bmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVh Y2gobGMsIHBhdGhfcGF0dGVybl9leHByKQorCXsKKwkJR3JhcGhFbGVtZW50UGF0dGVybiAq Z2VwID0gbGZpcnN0X25vZGUoR3JhcGhFbGVtZW50UGF0dGVybiwgbGMpOworCQljb25zdCBj aGFyICpzZXAgPSAiIjsKKworCQlzd2l0Y2ggKGdlcC0+a2luZCkKKwkJeworCQkJY2FzZSBW RVJURVhfUEFUVEVSTjoKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIigiKTsK KwkJCQlicmVhazsKKwkJCWNhc2UgRURHRV9QQVRURVJOX0xFRlQ6CisJCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICI8LVsiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRURHRV9Q QVRURVJOX1JJR0hUOgorCQkJY2FzZSBFREdFX1BBVFRFUk5fQU5ZOgorCQkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoYnVmLCAiLVsiKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUEFSRU5f RVhQUjoKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIigiKTsKKwkJCQlicmVh azsKKwkJfQorCisJCWlmIChnZXAtPnZhcmlhYmxlKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgZ2VwLT52YXJpYWJsZSk7CisJCQlzZXAgPSAiICI7CisJCX0KKwor CQlpZiAoZ2VwLT5sYWJlbGV4cHIpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCBzZXApOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJJUyAiKTsKKwkJ CWdldF9ncmFwaF9sYWJlbF9leHByKGdlcC0+bGFiZWxleHByLCBjb250ZXh0KTsKKwkJCXNl cCA9ICIgIjsKKwkJfQorCisJCWlmIChnZXAtPnN1YmV4cHIpCisJCXsKKwkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoYnVmLCBzZXApOworCQkJZ2V0X3BhdGhfcGF0dGVybl9leHByX2Rl ZihnZXAtPnN1YmV4cHIsIGNvbnRleHQpOworCQkJc2VwID0gIiAiOworCQl9CisKKwkJaWYg KGdlcC0+d2hlcmVDbGF1c2UpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCBzZXApOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJXSEVSRSAiKTsKKwkJ CWdldF9ydWxlX2V4cHIoZ2VwLT53aGVyZUNsYXVzZSwgY29udGV4dCwgZmFsc2UpOworCQl9 CisKKwkJc3dpdGNoIChnZXAtPmtpbmQpCisJCXsKKwkJCWNhc2UgVkVSVEVYX1BBVFRFUk46 CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQkJYnJlYWs7CisJ CQljYXNlIEVER0VfUEFUVEVSTl9MRUZUOgorCQkJY2FzZSBFREdFX1BBVFRFUk5fQU5ZOgor CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiXS0iKTsKKwkJCQlicmVhazsKKwkJ CWNhc2UgRURHRV9QQVRURVJOX1JJR0hUOgorCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCAiXS0+Iik7CisJCQkJYnJlYWs7CisJCQljYXNlIFBBUkVOX0VYUFI6CisJCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIpIik7CisJCQkJYnJlYWs7CisJCX0KKworCQlp ZiAoZ2VwLT5xdWFudGlmaWVyKQorCQl7CisJCQlpbnQJCQlsb3dlciA9IGxpbml0aWFsX2lu dChnZXAtPnF1YW50aWZpZXIpOworCQkJaW50CQkJdXBwZXIgPSBsc2Vjb25kX2ludChnZXAt PnF1YW50aWZpZXIpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInslZCwlZH0iLCBs b3dlciwgdXBwZXIpOworCQl9CisJfQorfQorCisvKgorICogUGFyc2UgYmFjayBhIGdyYXBo IHBhdHRlcm4KKyAqLworc3RhdGljIHZvaWQKK2dldF9ncmFwaF9wYXR0ZXJuX2RlZihHcmFw aFBhdHRlcm4gKmdyYXBoX3BhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKK3sK KwlTdHJpbmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKKwlMaXN0Q2VsbCAgICpsYzsKKwli b29sCQlmaXJzdCA9IHRydWU7CisKKwlmb3JlYWNoKGxjLCBncmFwaF9wYXR0ZXJuLT5wYXRo X3BhdHRlcm5fbGlzdCkKKwl7CisJCUxpc3QJICAgKnBhdGhfcGF0dGVybl9leHByID0gbGZp cnN0X25vZGUoTGlzdCwgbGMpOworCisJCWlmICghZmlyc3QpCisJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIiwgIik7CisJCWVsc2UKKwkJCWZpcnN0ID0gZmFsc2U7CisKKwkJ Z2V0X3BhdGhfcGF0dGVybl9leHByX2RlZihwYXRoX3BhdHRlcm5fZXhwciwgY29udGV4dCk7 CisJfQorCisJaWYgKGdyYXBoX3BhdHRlcm4tPndoZXJlQ2xhdXNlKQorCXsKKwkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhidWYsICJXSEVSRSAiKTsKKwkJZ2V0X3J1bGVfZXhwcihncmFw aF9wYXR0ZXJuLT53aGVyZUNsYXVzZSwgY29udGV4dCwgZmFsc2UpOworCX0KK30KKwogLyoK ICAqIERpc3BsYXkgYSBWYXIgYXBwcm9wcmlhdGVseS4KICAqCkBAIC03Nzk0LDYgKzgyNTcs NyBAQCBnZXRfbmFtZV9mb3JfdmFyX2ZpZWxkKFZhciAqdmFyLCBpbnQgZmllbGRubywKIAkJ Y2FzZSBSVEVfUkVMQVRJT046CiAJCWNhc2UgUlRFX1ZBTFVFUzoKIAkJY2FzZSBSVEVfTkFN RURUVVBMRVNUT1JFOgorCQljYXNlIFJURV9HUkFQSF9UQUJMRToKIAkJY2FzZSBSVEVfUkVT VUxUOgogCiAJCQkvKgpAQCAtOTgxMyw2ICsxMDI3NywxNCBAQCBnZXRfcnVsZV9leHByKE5v ZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCWdldF90YWJsZWZ1bmMo KFRhYmxlRnVuYyAqKSBub2RlLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOwogCQkJYnJlYWs7 CiAKKwkJY2FzZSBUX0dyYXBoUHJvcGVydHlSZWY6CisJCQl7CisJCQkJR3JhcGhQcm9wZXJ0 eVJlZiAqZ3ByID0gKEdyYXBoUHJvcGVydHlSZWYgKikgbm9kZTsKKworCQkJCWFwcGVuZFN0 cmluZ0luZm8oYnVmLCAiJXMuJXMiLCBxdW90ZV9pZGVudGlmaWVyKGdwci0+ZWx2YXJuYW1l KSwgcXVvdGVfaWRlbnRpZmllcihncHItPnByb3BuYW1lKSk7CisJCQkJYnJlYWs7CisJCQl9 CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBl OiAlZCIsIChpbnQpIG5vZGVUYWcobm9kZSkpOwogCQkJYnJlYWs7CkBAIC0xMTQzOSw2ICsx MTkxMSwzNiBAQCBnZXRfZnJvbV9jbGF1c2VfaXRlbShOb2RlICpqdG5vZGUsIFF1ZXJ5ICpx dWVyeSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCQkJY2FzZSBSVEVfVEFCTEVGVU5D OgogCQkJCWdldF90YWJsZWZ1bmMocnRlLT50YWJsZWZ1bmMsIGNvbnRleHQsIHRydWUpOwog CQkJCWJyZWFrOworCQkJY2FzZSBSVEVfR1JBUEhfVEFCTEU6CisJCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZyhidWYsICJHUkFQSF9UQUJMRSAoIik7CisJCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhidWYsIGdlbmVyYXRlX3JlbGF0aW9uX25hbWUocnRlLT5yZWxpZCwgY29udGV4 dC0+bmFtZXNwYWNlcykpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIE1B VENIICIpOworCQkJCWdldF9ncmFwaF9wYXR0ZXJuX2RlZihydGUtPmdyYXBoX3BhdHRlcm4s IGNvbnRleHQpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIENPTFVNTlMg KCIpOworCQkJCXsKKwkJCQkJTGlzdENlbGwgICAqbGM7CisJCQkJCWJvb2wJCWZpcnN0ID0g dHJ1ZTsKKworCQkJCQlmb3JlYWNoKGxjLCBydGUtPmdyYXBoX3RhYmxlX2NvbHVtbnMpCisJ CQkJCXsKKwkJCQkJCVRhcmdldEVudHJ5ICp0ZSA9IGxmaXJzdF9ub2RlKFRhcmdldEVudHJ5 LCBsYyk7CisJCQkJCQlkZXBhcnNlX2NvbnRleHQgY29udGV4dCA9IHswfTsKKworCQkJCQkJ aWYgKCFmaXJzdCkKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiwgIik7 CisJCQkJCQllbHNlCisJCQkJCQkJZmlyc3QgPSBmYWxzZTsKKworCQkJCQkJY29udGV4dC5i dWYgPSBidWY7CisKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgdGUtPmV4cHIsICZj b250ZXh0LCBmYWxzZSk7CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiBB UyAiKTsKKwkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBxdW90ZV9pZGVudGlm aWVyKHRlLT5yZXNuYW1lKSk7CisJCQkJCX0KKwkJCQl9CisJCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhidWYsICIpIik7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIp Iik7CisJCQkJYnJlYWs7CiAJCQljYXNlIFJURV9WQUxVRVM6CiAJCQkJLyogVmFsdWVzIGxp c3QgUlRFICovCiAJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKCcpOwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1v bi5jCmluZGV4IDBlZDE4YjcyZDYzLi5iYzM0ZmM3ZDZiOSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ19kdW1wL2NvbW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpAQCAt NTE5LDcgKzUxOSw4IEBAIGZsYWdJbmhBdHRycyhBcmNoaXZlICpmb3V0LCBEdW1wT3B0aW9u cyAqZG9wdCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzCiAJCS8qIFNvbWUg a2luZHMgbmV2ZXIgaGF2ZSBwYXJlbnRzICovCiAJCWlmICh0YmluZm8tPnJlbGtpbmQgPT0g UkVMS0lORF9TRVFVRU5DRSB8fAogCQkJdGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfVklF VyB8fAotCQkJdGJpbmZvLT5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVykKKwkJCXRiaW5m by0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCXRiaW5mby0+cmVsa2luZCA9 PSBSRUxLSU5EX1BST1BHUkFQSCkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIERvbid0IGJvdGhl ciBjb21wdXRpbmcgYW55dGhpbmcgZm9yIG5vbi10YXJnZXQgdGFibGVzLCBlaXRoZXIgKi8K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCBkOTdlYmFmZjViOC4u ZWJkNzRlNDA1MzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJj aGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAg LTM0NTYsNiArMzQ1Niw3IEBAIF9nZXRPYmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBi dWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJc3RyY21wKHR5cGUsICJET01BSU4iKSA9PSAw IHx8CiAJCXN0cmNtcCh0eXBlLCAiRk9SRUlHTiBUQUJMRSIpID09IDAgfHwKIAkJc3RyY21w KHR5cGUsICJNQVRFUklBTElaRUQgVklFVyIpID09IDAgfHwKKwkJc3RyY21wKHR5cGUsICJQ Uk9QRVJUWSBHUkFQSCIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJTRVFVRU5DRSIpID09 IDAgfHwKIAkJc3RyY21wKHR5cGUsICJTVEFUSVNUSUNTIikgPT0gMCB8fAogCQlzdHJjbXAo dHlwZSwgIlRBQkxFIikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggMjIyNWExMjcxOGIu LjgwZjkzMzRlNmNlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE2MDEsMTAgKzE2MDEsMTAgQEAg ZXhwYW5kX3RhYmxlX25hbWVfcGF0dGVybnMoQXJjaGl2ZSAqZm91dCwKIAkJCQkJCSAgIlxu ICAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiIKIAkJCQkJCSAgIlxu ICAgICBPTiBuLm9pZCBPUEVSQVRPUihwZ19jYXRhbG9nLj0pIGMucmVsbmFtZXNwYWNlIgog CQkJCQkJICAiXG5XSEVSRSBjLnJlbGtpbmQgT1BFUkFUT1IocGdfY2F0YWxvZy49KSBBTlki Ci0JCQkJCQkgICJcbiAgICAoYXJyYXlbJyVjJywgJyVjJywgJyVjJywgJyVjJywgJyVjJywg JyVjJ10pXG4iLAorCQkJCQkJICAiXG4gICAgKGFycmF5WyclYycsICclYycsICclYycsICcl YycsICclYycsICclYycsICclYyddKVxuIiwKIAkJCQkJCSAgUkVMS0lORF9SRUxBVElPTiwg UkVMS0lORF9TRVFVRU5DRSwgUkVMS0lORF9WSUVXLAogCQkJCQkJICBSRUxLSU5EX01BVFZJ RVcsIFJFTEtJTkRfRk9SRUlHTl9UQUJMRSwKLQkJCQkJCSAgUkVMS0lORF9QQVJUSVRJT05F RF9UQUJMRSk7CisJCQkJCQkgIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUsIFJFTEtJTkRf UFJPUEdSQVBIKTsKIAkJaW5pdFBRRXhwQnVmZmVyKCZkYmJ1Zik7CiAJCXByb2Nlc3NTUUxO YW1lUGF0dGVybihHZXRDb25uZWN0aW9uKGZvdXQpLCBxdWVyeSwgY2VsbC0+dmFsLCB0cnVl LAogCQkJCQkJCSAgZmFsc2UsICJuLm5zcG5hbWUiLCAiYy5yZWxuYW1lIiwgTlVMTCwKQEAg LTI3NDgsNiArMjc0OCw5IEBAIG1ha2VUYWJsZURhdGFJbmZvKER1bXBPcHRpb25zICpkb3B0 LCBUYWJsZUluZm8gKnRiaW5mbykKIAlpZiAodGJpbmZvLT5kYXRhT2JqICE9IE5VTEwpCiAJ CXJldHVybjsKIAorCS8qIFNraXAgcHJvcGVydHkgZ3JhcGhzIChubyBkYXRhIHRvIGR1bXAp ICovCisJaWYgKHRiaW5mby0+cmVsa2luZCA9PSBSRUxLSU5EX1BST1BHUkFQSCkKKwkJcmV0 dXJuOwogCS8qIFNraXAgVklFV3MgKG5vIGRhdGEgdG8gZHVtcCkgKi8KIAlpZiAodGJpbmZv LT5yZWxraW5kID09IFJFTEtJTkRfVklFVykKIAkJcmV0dXJuOwpAQCAtNjgwNSw3ICs2ODA4 LDggQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJ IENwcEFzU3RyaW5nMihSRUxLSU5EX0NPTVBPU0lURV9UWVBFKSAiLCAiCiAJCQkJCQkgQ3Bw QXNTdHJpbmcyKFJFTEtJTkRfTUFUVklFVykgIiwgIgogCQkJCQkJIENwcEFzU3RyaW5nMihS RUxLSU5EX0ZPUkVJR05fVEFCTEUpICIsICIKLQkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSkgIilcbiIKKwkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSkgIiwgIgorCQkJCQkJIENwcEFzU3RyaW5nMihSRUxLSU5E X1BST1BHUkFQSCkgIilcbiIKIAkJCQkJCSAiT1JERVIgQlkgYy5vaWQiKTsKIAogCXJlcyA9 IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsK QEAgLTE1ODY5LDggKzE1ODczLDYgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQs IGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCiAJCXJlbHR5cGVuYW1lID0gIlZJRVciOwog Ci0JCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZJRVcgJXM7XG4iLCBxdWFscmVs bmFtZSk7Ci0KIAkJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlKQogCQkJYmluYXJ5X3VwZ3Jh ZGVfc2V0X3BnX2NsYXNzX29pZHMoZm91dCwgcSwKIAkJCQkJCQkJCQkJIHRiaW5mby0+ZG9i ai5jYXRJZC5vaWQsIGZhbHNlKTsKQEAgLTE1ODk2LDYgKzE1ODk4LDQ3IEBAIGR1bXBUYWJs ZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCWFw cGVuZFBRRXhwQnVmZmVyKHEsICJcbiAgV0lUSCAlcyBDSEVDSyBPUFRJT04iLCB0YmluZm8t PmNoZWNrb3B0aW9uKTsKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIjtcbiIpOwogCX0K KwllbHNlIGlmICh0YmluZm8tPnJlbGtpbmQgPT0gUkVMS0lORF9QUk9QR1JBUEgpCisJewor CQlQUUV4cEJ1ZmZlciBxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJCVBHcmVzdWx0 ICAgKnJlczsKKwkJaW50CQkJbGVuOworCisJCXJlbHR5cGVuYW1lID0gIlBST1BFUlRZIEdS QVBIIjsKKworCQlpZiAoZG9wdC0+YmluYXJ5X3VwZ3JhZGUpCisJCQliaW5hcnlfdXBncmFk ZV9zZXRfcGdfY2xhc3Nfb2lkcyhmb3V0LCBxLAorCQkJCQkJCQkJCQkgdGJpbmZvLT5kb2Jq LmNhdElkLm9pZCwgZmFsc2UpOworCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJ CQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3Byb3BncmFwaGRlZignJXUnOjpwZ19j YXRhbG9nLm9pZCkgQVMgcGdkZWYiLAorCQkJCQkJICB0YmluZm8tPmRvYmouY2F0SWQub2lk KTsKKworCQlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVT X1RVUExFU19PSyk7CisKKwkJaWYgKFBRbnR1cGxlcyhyZXMpICE9IDEpCisJCXsKKwkJCWlm IChQUW50dXBsZXMocmVzKSA8IDEpCisJCQkJcGdfZmF0YWwoInF1ZXJ5IHRvIG9idGFpbiBk ZWZpbml0aW9uIG9mIHByb3BlcnR5IGdyYXBoIFwiJXNcIiByZXR1cm5lZCBubyBkYXRhIiwK KwkJCQkJCSB0YmluZm8tPmRvYmoubmFtZSk7CisJCQllbHNlCisJCQkJcGdfZmF0YWwoInF1 ZXJ5IHRvIG9idGFpbiBkZWZpbml0aW9uIG9mIHByb3BlcnR5IGdyYXBoIFwiJXNcIiByZXR1 cm5lZCBtb3JlIHRoYW4gb25lIGRlZmluaXRpb24iLAorCQkJCQkJIHRiaW5mby0+ZG9iai5u YW1lKTsKKwkJfQorCisJCWxlbiA9IFBRZ2V0bGVuZ3RoKHJlcywgMCwgMCk7CisKKwkJaWYg KGxlbiA9PSAwKQorCQkJcGdfZmF0YWwoImRlZmluaXRpb24gb2YgcHJvcGVydHkgZ3JhcGgg XCIlc1wiIGFwcGVhcnMgdG8gYmUgZW1wdHkgKGxlbmd0aCB6ZXJvKSIsCisJCQkJCSB0Ymlu Zm8tPmRvYmoubmFtZSk7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgUFFnZXR2YWx1 ZShyZXMsIDAsIDApKTsKKworCQlQUWNsZWFyKHJlcyk7CisJCWRlc3Ryb3lQUUV4cEJ1ZmZl cihxdWVyeSk7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIjtcbiIpOworCX0KIAll bHNlCiAJewogCQljaGFyCSAgICpwYXJ0a2V5ZGVmID0gTlVMTDsKQEAgLTE1OTcxLDggKzE2 MDE0LDYgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5m byAqdGJpbmZvKQogCQludW1QYXJlbnRzID0gdGJpbmZvLT5udW1QYXJlbnRzOwogCQlwYXJl bnRzID0gdGJpbmZvLT5wYXJlbnRzOwogCi0JCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJE Uk9QICVzICVzO1xuIiwgcmVsdHlwZW5hbWUsIHF1YWxyZWxuYW1lKTsKLQogCQlpZiAoZG9w dC0+YmluYXJ5X3VwZ3JhZGUpCiAJCQliaW5hcnlfdXBncmFkZV9zZXRfcGdfY2xhc3Nfb2lk cyhmb3V0LCBxLAogCQkJCQkJCQkJCQkgdGJpbmZvLT5kb2JqLmNhdElkLm9pZCwgZmFsc2Up OwpAQCAtMTY1OTAsNiArMTY2MzEsOCBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91 dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJc bkFMVEVSIFRBQkxFIE9OTFkgJXMgRk9SQ0UgUk9XIExFVkVMIFNFQ1VSSVRZO1xuIiwKIAkJ CQkJCSAgcXVhbHJlbG5hbWUpOwogCisJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1Ag JXMgJXM7XG4iLCByZWx0eXBlbmFtZSwgcXVhbHJlbG5hbWUpOworCiAJaWYgKGRvcHQtPmJp bmFyeV91cGdyYWRlKQogCQliaW5hcnlfdXBncmFkZV9leHRlbnNpb25fbWVtYmVyKHEsICZ0 YmluZm8tPmRvYmosCiAJCQkJCQkJCQkJcmVsdHlwZW5hbWUsIHFyZWxuYW1lLApAQCAtMTg0 MjMsNiArMTg0NjYsMTYgQEAgZ2V0RGVwZW5kZW5jaWVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJ CQkgImNsYXNzaWQgPSAncGdfYW1wcm9jJzo6cmVnY2xhc3MgQU5EIG9iamlkID0gcC5vaWQg IgogCQkJCQkJICJBTkQgTk9UIChyZWZjbGFzc2lkID0gJ3BnX29wZmFtaWx5Jzo6cmVnY2xh c3MgQU5EIGFtcHJvY2ZhbWlseSA9IHJlZm9iamlkKVxuIik7CiAKKwkvKgorCSAqIFRyYW5z bGF0ZSBkZXBlbmRlbmNpZXMgb2YgcGdfcHJvcGdyYXBoX2VsZW1lbnQgZW50cmllcyBpbnRv CisJICogZGVwZW5kZW5jaWVzIG9mIHRoZWlyIHBhcmVudCBwZ19jbGFzcyBlbnRyeS4KKwkg Ki8KKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIlVOSU9OIEFMTFxuIgorCQkJCQkJ ICJTRUxFQ1QgJ3BnX2NsYXNzJzo6cmVnY2xhc3MgQVMgY2xhc3NpZCwgcGdlcGdpZCBBUyBv YmppZCwgcmVmY2xhc3NpZCwgcmVmb2JqaWQsIGRlcHR5cGUgIgorCQkJCQkJICJGUk9NIHBn X2RlcGVuZCBkLCBwZ19wcm9wZ3JhcGhfZWxlbWVudCBwZ2UgIgorCQkJCQkJICJXSEVSRSBk ZXB0eXBlIE5PVCBJTiAoJ3AnLCAnZScsICdpJykgQU5EICIKKwkJCQkJCSAiY2xhc3NpZCA9 ICdwZ19wcm9wZ3JhcGhfZWxlbWVudCc6OnJlZ2NsYXNzIEFORCBvYmppZCA9IHBnZS5vaWRc biIpOworCiAJLyogU29ydCB0aGUgb3V0cHV0IGZvciBlZmZpY2llbmN5IGJlbG93ICovCiAJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICJPUkRFUiBCWSAxLDIiKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCAwMGI1MDkyNzEzZC4uZWEwZDZiZWIwOTIgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0yOTU5LDYgKzI5NTksMTcgQEAKIAkJ fSwKIAl9LAogCisJJ0NSRUFURSBQUk9QRVJUWSBHUkFQSCBwcm9wZ3JhcGgnID0+IHsKKwkJ Y3JlYXRlX29yZGVyID0+IDIwLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBQUk9QRVJU WSBHUkFQSCBkdW1wX3Rlc3QucHJvcGdyYXBoOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlc UUNSRUFURSBQUk9QRVJUWSBHUkFQSCBkdW1wX3Rlc3QucHJvcGdyYXBoXEU7CisJCQkveG0s CisJCWxpa2UgPT4KKwkJICB7ICVmdWxsX3J1bnMsICVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMs IHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgZXhjbHVkZV9kdW1w X3Rlc3Rfc2NoZW1hID0+IDEsIG9ubHlfZHVtcF9tZWFzdXJlbWVudCA9PiAxLCB9LAorCX0s CisKIAknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+ IDUwLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgUFVCTElDQVRJT04gcHViMTsnLApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5k LmMKaW5kZXggNWM5MDZlNDgwNjguLmVhNTNkYTBmNWFkIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvY29tbWFuZC5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTc3NSw3 ICs3NzUsNyBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJv b2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQlzdWNjZXNzID0gZGVz Y3JpYmVUYWJsZURldGFpbHMocGF0dGVybiwgc2hvd192ZXJib3NlLCBzaG93X3N5c3RlbSk7 CiAJCQkJZWxzZQogCQkJCQkvKiBzdGFuZGFyZCBsaXN0aW5nIG9mIGludGVyZXN0aW5nIHRo aW5ncyAqLwotCQkJCQlzdWNjZXNzID0gbGlzdFRhYmxlcygidHZtc0UiLCBOVUxMLCBzaG93 X3ZlcmJvc2UsIHNob3dfc3lzdGVtKTsKKwkJCQkJc3VjY2VzcyA9IGxpc3RUYWJsZXMoInR2 bXNFRyIsIE5VTEwsIHNob3dfdmVyYm9zZSwgc2hvd19zeXN0ZW0pOwogCQkJCWJyZWFrOwog CQkJY2FzZSAnQSc6CiAJCQkJewpAQCAtOTA2LDYgKzkwNiw3IEBAIGV4ZWNfY29tbWFuZF9k KFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBj aGFyICpjbWQpCiAJCQljYXNlICdpJzoKIAkJCWNhc2UgJ3MnOgogCQkJY2FzZSAnRSc6CisJ CQljYXNlICdHJzoKIAkJCQlzdWNjZXNzID0gbGlzdFRhYmxlcygmY21kWzFdLCBwYXR0ZXJu LCBzaG93X3ZlcmJvc2UsIHNob3dfc3lzdGVtKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgJ3In OgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYwppbmRleCBiNmE0ZWIxZDU2NS4uNjBkMjMzMDc2MTMgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CkBAIC0xMDI1LDYgKzEwMjUsNyBAQCBwZXJtaXNzaW9uc0xpc3QoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCBzaG93U3lzdGVtKQogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5nMihS RUxLSU5EX01BVFZJRVcpICIgVEhFTiAnJXMnIgogCQkJCQkgICIgV0hFTiAiIENwcEFzU3Ry aW5nMihSRUxLSU5EX1NFUVVFTkNFKSAiIFRIRU4gJyVzJyIKIAkJCQkJICAiIFdIRU4gIiBD cHBBc1N0cmluZzIoUkVMS0lORF9GT1JFSUdOX1RBQkxFKSAiIFRIRU4gJyVzJyIKKwkJCQkJ ICAiIFdIRU4gIiBDcHBBc1N0cmluZzIoUkVMS0lORF9QUk9QR1JBUEgpICIgVEhFTiAnJXMn IgogCQkJCQkgICIgV0hFTiAiIENwcEFzU3RyaW5nMihSRUxLSU5EX1BBUlRJVElPTkVEX1RB QkxFKSAiIFRIRU4gJyVzJyIKIAkJCQkJICAiIEVORCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAg IiAgIiwKQEAgLTEwMzUsNiArMTAzNiw3IEBAIHBlcm1pc3Npb25zTGlzdChjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHNob3dTeXN0ZW0pCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJtYXRl cmlhbGl6ZWQgdmlldyIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgic2VxdWVuY2UiKSwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoImZvcmVpZ24gdGFibGUiKSwKKwkJCQkJICBnZXR0ZXh0X25v b3AoInByb3BlcnR5IGdyYXBoIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJwYXJ0aXRpb25l ZCB0YWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpKTsKIApAQCAtMTEyNiw2 ICsxMTI4LDcgQEAgcGVybWlzc2lvbnNMaXN0KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg c2hvd1N5c3RlbSkKIAkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9NQVRWSUVXKSAiLCIK IAkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lORF9TRVFVRU5DRSkgIiwiCiAJCQkJCQkgQ3Bw QXNTdHJpbmcyKFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkgIiwiCisJCQkJCQkgQ3BwQXNTdHJp bmcyKFJFTEtJTkRfUFJPUEdSQVBIKSAiLCIKIAkJCQkJCSBDcHBBc1N0cmluZzIoUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSkgIilcbiIpOwogCiAJaWYgKCFzaG93U3lzdGVtICYmICFw YXR0ZXJuKQpAQCAtMjAwOSw2ICsyMDEyLDEwIEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxz KGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxl LCBfKCJQYXJ0aXRpb25lZCB0YWJsZSBcIiVzLiVzXCIiKSwKIAkJCQkJCQkJICBzY2hlbWFu YW1lLCByZWxhdGlvbm5hbWUpOwogCQkJYnJlYWs7CisJCWNhc2UgUkVMS0lORF9QUk9QR1JB UEg6CisJCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlByb3BlcnR5IGdyYXBoIFwi JXMuJXNcIiIpLAorCQkJCQkJCSAgc2NoZW1hbmFtZSwgcmVsYXRpb25uYW1lKTsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJLyogdW50cmFuc2xhdGVkIHVua25vd24gcmVsa2luZCAq LwogCQkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCAiPyVjPyBcIiVzLiVzXCIiLApAQCAt MzA5OSw2ICszMTA2LDMyIEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIg KnNjaGVtYW5hbWUsCiAJCX0KIAl9CiAKKwkvKiBBZGQgcHJvcGVydHkgZ3JhcGggZGVmaW5p dGlvbiBpbiB2ZXJib3NlIG1vZGUgKi8KKwlpZiAodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVM S0lORF9QUk9QR1JBUEggJiYgdmVyYm9zZSkKKwl7CisJCVBHcmVzdWx0ICAgKnJlc3VsdDsK KwkJY2hhcgkgICAqcGdkZWYgPSBOVUxMOworCisJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYs CisJCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfcHJvcGdyYXBoZGVmKCclcyc6 OnBnX2NhdGFsb2cub2lkKTsiLAorCQkJCQkJICBvaWQpOworCQlyZXN1bHQgPSBQU1FMZXhl YyhidWYuZGF0YSk7CisJCWlmICghcmVzdWx0KQorCQkJZ290byBlcnJvcl9yZXR1cm47CisK KwkJaWYgKFBRbnR1cGxlcyhyZXN1bHQpID4gMCkKKwkJCXBnZGVmID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzdWx0LCAwLCAwKSk7CisKKwkJUFFjbGVhcihyZXN1bHQpOworCisJCWlm IChwZ2RlZikKKwkJeworCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgXygiUHJvcGVy dHkgZ3JhcGggZGVmaW5pdGlvbjoiKSk7CisJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAi ICVzIiwgcGdkZWYpOworCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgYnVmLmRhdGEp OworCQl9CisJfQorCiAJLyogR2V0IHZpZXdfZGVmIGlmIHRhYmxlIGlzIGEgdmlldyBvciBt YXRlcmlhbGl6ZWQgdmlldyAqLwogCWlmICgodGFibGVpbmZvLnJlbGtpbmQgPT0gUkVMS0lO RF9WSUVXIHx8CiAJCSB0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcpICYm IHZlcmJvc2UpCkBAIC0zOTUwLDYgKzM5ODMsNyBAQCBkZXNjcmliZVJvbGVHcmFudHMoY29u c3QgY2hhciAqcGF0dGVybiwgYm9vbCBzaG93U3lzdGVtKQogICogbSAtIG1hdGVyaWFsaXpl ZCB2aWV3cwogICogcyAtIHNlcXVlbmNlcwogICogRSAtIGZvcmVpZ24gdGFibGUgKE5vdGU6 IGRpZmZlcmVudCBmcm9tICdmJywgdGhlIHJlbGtpbmQgdmFsdWUpCisgKiBHIC0gcHJvcGVy dHkgZ3JhcGhzCiAgKiAoYW55IG9yZGVyIG9mIHRoZSBhYm92ZSBpcyBmaW5lKQogICovCiBi b29sCkBAIC0zOTYxLDYgKzM5OTUsNyBAQCBsaXN0VGFibGVzKGNvbnN0IGNoYXIgKnRhYnR5 cGVzLCBjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5cwog CWJvb2wJCXNob3dNYXRWaWV3cyA9IHN0cmNocih0YWJ0eXBlcywgJ20nKSAhPSBOVUxMOwog CWJvb2wJCXNob3dTZXEgPSBzdHJjaHIodGFidHlwZXMsICdzJykgIT0gTlVMTDsKIAlib29s CQlzaG93Rm9yZWlnbiA9IHN0cmNocih0YWJ0eXBlcywgJ0UnKSAhPSBOVUxMOworCWJvb2wJ CXNob3dQcm9wR3JhcGhzID0gc3RyY2hyKHRhYnR5cGVzLCAnRycpICE9IE5VTEw7CiAKIAlQ UUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKQEAgLTM5NjksOCArNDAw NCw4IEBAIGxpc3RUYWJsZXMoY29uc3QgY2hhciAqdGFidHlwZXMsIGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzCiAJYm9vbAkJdHJhbnNsYXRlX2Nv bHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJLyogSWYgdGFidHlwZXMgaXMgZW1wdHksIHdlIGRl ZmF1bHQgdG8gXGR0dm1zRSAoYnV0IHNlZSBhbHNvIGNvbW1hbmQuYykgKi8KLQlpZiAoIShz aG93VGFibGVzIHx8IHNob3dJbmRleGVzIHx8IHNob3dWaWV3cyB8fCBzaG93TWF0Vmlld3Mg fHwgc2hvd1NlcSB8fCBzaG93Rm9yZWlnbikpCi0JCXNob3dUYWJsZXMgPSBzaG93Vmlld3Mg PSBzaG93TWF0Vmlld3MgPSBzaG93U2VxID0gc2hvd0ZvcmVpZ24gPSB0cnVlOworCWlmICgh KHNob3dUYWJsZXMgfHwgc2hvd0luZGV4ZXMgfHwgc2hvd1ZpZXdzIHx8IHNob3dNYXRWaWV3 cyB8fCBzaG93U2VxIHx8IHNob3dGb3JlaWduIHx8IHNob3dQcm9wR3JhcGhzKSkKKwkJc2hv d1RhYmxlcyA9IHNob3dWaWV3cyA9IHNob3dNYXRWaWV3cyA9IHNob3dTZXEgPSBzaG93Rm9y ZWlnbiA9IHNob3dQcm9wR3JhcGhzID0gdHJ1ZTsKIAogCWluaXRQUUV4cEJ1ZmZlcigmYnVm KTsKIApAQCAtMzk4Nyw2ICs0MDIyLDcgQEAgbGlzdFRhYmxlcyhjb25zdCBjaGFyICp0YWJ0 eXBlcywgY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXMK IAkJCQkJICAiIFdIRU4gIiBDcHBBc1N0cmluZzIoUkVMS0lORF9GT1JFSUdOX1RBQkxFKSAi IFRIRU4gJyVzJyIKIAkJCQkJICAiIFdIRU4gIiBDcHBBc1N0cmluZzIoUkVMS0lORF9QQVJU SVRJT05FRF9UQUJMRSkgIiBUSEVOICclcyciCiAJCQkJCSAgIiBXSEVOICIgQ3BwQXNTdHJp bmcyKFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVgpICIgVEhFTiAnJXMnIgorCQkJCQkgICIg V0hFTiAiIENwcEFzU3RyaW5nMihSRUxLSU5EX1BST1BHUkFQSCkgIiBUSEVOICclcyciCiAJ CQkJCSAgIiBFTkQgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0 X3VzZXJieWlkKGMucmVsb3duZXIpIGFzIFwiJXNcIiIsCiAJCQkJCSAgZ2V0dGV4dF9ub29w KCJTY2hlbWEiKSwKQEAgLTQwMDAsNiArNDAzNiw3IEBAIGxpc3RUYWJsZXMoY29uc3QgY2hh ciAqdGFidHlwZXMsIGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBz aG93U3lzCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJmb3JlaWduIHRhYmxlIiksCiAJCQkJCSAg Z2V0dGV4dF9ub29wKCJwYXJ0aXRpb25lZCB0YWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9v cCgicGFydGl0aW9uZWQgaW5kZXgiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoInByb3BlcnR5 IGdyYXBoIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIiksCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJPd25lciIpKTsKIAljb2xzX3NvX2ZhciA9IDQ7CkBAIC00MDgzLDYgKzQxMjAs OCBAQCBsaXN0VGFibGVzKGNvbnN0IGNoYXIgKnRhYnR5cGVzLCBjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5cwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cigmYnVmLCAiJ3MnLCIpOyAvKiB3YXMgUkVMS0lORF9TUEVDSUFMICovCiAJaWYgKHNob3dG b3JlaWduKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBDcHBBc1N0cmluZzIoUkVM S0lORF9GT1JFSUdOX1RBQkxFKSAiLCIpOworCWlmIChzaG93UHJvcEdyYXBocykKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUFJPUEdSQVBI KSAiLCIpOwogCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIicnIik7CS8qIGR1bW15 ICovCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIilcbiIpOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggNGU3OWE4 MTlkODcuLmE4ZjA0YzE1NmI2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisr KyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAgLTI0Niw2ICsyNDYsNyBAQCBzbGFzaFVzYWdl KHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAlIRUxQMCgiICBcXGRGcFsrXSBbUEFUVEVS Tl0gICAgICBsaXN0IHRleHQgc2VhcmNoIHBhcnNlcnNcbiIpOwogCUhFTFAwKCIgIFxcZEZ0 WytdIFtQQVRURVJOXSAgICAgIGxpc3QgdGV4dCBzZWFyY2ggdGVtcGxhdGVzXG4iKTsKIAlI RUxQMCgiICBcXGRnW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHJvbGVzXG4iKTsKKwlIRUxQ MCgiICBcXGRHW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHByb3BlcnR5IGdyYXBocyIpOwog CUhFTFAwKCIgIFxcZGlbUytdIFtQQVRURVJOXSAgICAgIGxpc3QgaW5kZXhlc1xuIik7CiAJ SEVMUDAoIiAgXFxkbFsrXSAgICAgICAgICAgICAgICAgbGlzdCBsYXJnZSBvYmplY3RzLCBz YW1lIGFzIFxcbG9fbGlzdFxuIik7CiAJSEVMUDAoIiAgXFxkTFtTK10gW1BBVFRFUk5dICAg ICAgbGlzdCBwcm9jZWR1cmFsIGxhbmd1YWdlc1xuIik7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5k ZXggMTUxYTUyMTFlZTQuLjAxYzM5MjRmZWVmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC03 ODgsNiArNzg4LDE0IEBAIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlz dF9vZl9wYXJ0aXRpb25lZF9pbmRleGVzID0gewogCS5yZXN1bHQgPSAiYy5yZWxuYW1lIiwK IH07CiAKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9wcm9w Z3JhcGhzID0geworCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdfY2xhc3MgYyIsCisJLnNl bGNvbmRpdGlvbiA9ICJjLnJlbGtpbmQgSU4gKCIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfUFJP UEdSQVBIKSAiKSIsCisJLnZpc2NvbmRpdGlvbiA9ICJwZ19jYXRhbG9nLnBnX3RhYmxlX2lz X3Zpc2libGUoYy5vaWQpIiwKKwkubmFtZXNwYWNlID0gImMucmVsbmFtZXNwYWNlIiwKKwku cmVzdWx0ID0gInBnX2NhdGFsb2cucXVvdGVfaWRlbnQoYy5yZWxuYW1lKSIsCit9OworCiAK IC8qIEFsbCByZWxhdGlvbnMgKi8KIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9m b3JfbGlzdF9vZl9yZWxhdGlvbnMgPSB7CkBAIC0xMjU1LDYgKzEyNjMsNyBAQCBzdGF0aWMg Y29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAl7IlBBUlNF UiIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl90c19wYXJzZXJzLCBOVUxMLCBU SElOR19OT19TSE9XfSwKIAl7IlBPTElDWSIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCXsiUFJP Q0VEVVJFIiwgTlVMTCwgTlVMTCwgUXVlcnlfZm9yX2xpc3Rfb2ZfcHJvY2VkdXJlc30sCisJ eyJQUk9QRVJUWSBHUkFQSCIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9wcm9w Z3JhcGhzfSwKIAl7IlBVQkxJQ0FUSU9OIiwgTlVMTCwgUXVlcnlfZm9yX2xpc3Rfb2ZfcHVi bGljYXRpb25zfSwKIAl7IlJPTEUiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlc30sCiAJeyJS T1VUSU5FIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3JvdXRpbmVzLCBOVUxM LCBUSElOR19OT19DUkVBVEV9LApAQCAtMjMwNCw2ICsyMzEzLDEyIEBAIHBzcWxfY29tcGxl dGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAo TWF0Y2hlcygiQUxURVIiLCAiUE9MSUNZIiwgTWF0Y2hBbnksICJPTiIsIE1hdGNoQW55LCAi V0lUSCIsICJDSEVDSyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKKwkvKiBBTFRFUiBQ Uk9QRVJUWSBHUkFQSCAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBST1BFUlRZ IiwgIkdSQVBIIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX3Byb3BncmFwaHMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBST1BF UlRZIiwgIkdSQVBIIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIs ICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOworCiAJLyogQUxURVIgUlVMRSA8bmFtZT4s IGFkZCBPTiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlJVTEUiLCBNYXRjaEFu eSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9OIik7CkBAIC0yNzgxLDcgKzI3OTYsNyBAQCBwc3Fs X2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJ CQkgICJGT1JFSUdOIERBVEEgV1JBUFBFUiIsICJGT1JFSUdOIFRBQkxFIiwKIAkJCQkJICAi RlVOQ1RJT04iLCAiSU5ERVgiLCAiTEFOR1VBR0UiLCAiTEFSR0UgT0JKRUNUIiwKIAkJCQkJ ICAiTUFURVJJQUxJWkVEIFZJRVciLCAiT1BFUkFUT1IiLCAiUE9MSUNZIiwKLQkJCQkJICAi UFJPQ0VEVVJFIiwgIlBST0NFRFVSQUwgTEFOR1VBR0UiLCAiUFVCTElDQVRJT04iLCAiUk9M RSIsCisJCQkJCSAgIlBST0NFRFVSRSIsICJQUk9DRURVUkFMIExBTkdVQUdFIiwgIlBST1BF UlRZIEdSQVBIIiwgIlBVQkxJQ0FUSU9OIiwgIlJPTEUiLAogCQkJCQkgICJST1VUSU5FIiwg IlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJ U1RJQ1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIs ICJURVhUIFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKQEAgLTI4MTksNiArMjgzNCw4IEBA IHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQp CiAJfQogCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiUFJPQ0VEVVJBTCIs ICJMQU5HVUFHRSIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29m X2xhbmd1YWdlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJQUk9Q RVJUWSIsICJHUkFQSCIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9m b3JfbGlzdF9vZl9wcm9wZ3JhcGhzKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwg Ik9OIiwgIlJVTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9OIik7CiAJZWxz ZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJSVUxFIiwgTWF0Y2hBbnksICJPTiIp KQpAQCAtMzEzMyw2ICszMTUwLDMxIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0 ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IlBPTElDWSIsIE1hdGNoQW55LCAiT04iLCBNYXRjaEFueSwgIkFTIiwgTWF0Y2hBbnksICJV U0lORyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKKy8qIENSRUFURSBQUk9QRVJUWSBH UkFQSCAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQUk9QRVJUWSIpKQorCQlD T01QTEVURV9XSVRIKCJHUkFQSCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQ Uk9QRVJUWSIsICJHUkFQSCIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiVkVSVEVY Iik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIiwg TWF0Y2hBbnksICJWRVJURVh8Tk9ERSIpKQorCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiKTsK KwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiLCBNYXRj aEFueSwgIlZFUlRFWHxOT0RFIiwgIlRBQkxFUyIpKQorCQlDT01QTEVURV9XSVRIKCIoIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIiwgTWF0 Y2hBbnksICJWRVJURVh8Tk9ERSIsICJUQUJMRVMiLCAiKCIpKQorCQlDT01QTEVURV9XSVRI X1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOworCWVsc2UgaWYgKE1h dGNoZXMoIkNSRUFURSIsICJQUk9QRVJUWSIsICJHUkFQSCIsIE1hdGNoQW55LCAiVkVSVEVY fE5PREUiLCAiVEFCTEVTIiwgIigiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIiwi LCAiKSIpOworCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJDUkVBVEUiLCAiUFJPUEVSVFkiLCAi R1JBUEgiLCBNYXRjaEFueSwgIlZFUlRFWHxOT0RFIiwgIlRBQkxFUyIsICIoIikgJiYKKwkJ CSBUYWlsTWF0Y2hlcygiKSIpKQorCQlDT01QTEVURV9XSVRIKCJFREdFIik7CS8qIEZJWE1F OiBkb2Vzbid0IHNlZW0gdG8gd29yayAqLworCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJDUkVB VEUiLCAiUFJPUEVSVFkiLCAiR1JBUEgiKSAmJgorCQkJIFRhaWxNYXRjaGVzKCJFREdFfFJF TEFUSU9OU0hJUCIpKQorCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiKTsKKwllbHNlIGlmIChI ZWFkTWF0Y2hlcygiQ1JFQVRFIiwgIlBST1BFUlRZIiwgIkdSQVBIIikgJiYKKwkJCSBUYWls TWF0Y2hlcygiRURHRXxSRUxBVElPTlNISVAiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJ VEgoIigiKTsKKwllbHNlIGlmIChIZWFkTWF0Y2hlcygiQ1JFQVRFIiwgIlBST1BFUlRZIiwg IkdSQVBIIikgJiYKKwkJCSBUYWlsTWF0Y2hlcygiRURHRXxSRUxBVElPTlNISVAiLCAiVEFC TEVTIiwgIigiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2ZfdGFibGVzKTsKIAogLyogQ1JFQVRFIFBVQkxJQ0FUSU9OICovCiAJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnkpKQpAQCAtMzgwMCw2 ICszODQyLDEyIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3Rh cnQsIGludCBlbmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJQT0xJQ1kiLCBNYXRj aEFueSwgIk9OIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJF U1RSSUNUIik7CiAKKwkvKiBEUk9QIFBST1BFUlRZIEdSQVBIICovCisJZWxzZSBpZiAoTWF0 Y2hlcygiRFJPUCIsICJQUk9QRVJUWSIpKQorCQlDT01QTEVURV9XSVRIKCJHUkFQSCIpOwor CWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiUFJPUEVSVFkiLCAiR1JBUEgiKSkKKwkJQ09N UExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJvcGdyYXBocyk7 CisKIAkvKiBEUk9QIFJVTEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlJVTEUi LCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9OIik7CkBAIC00MDM0LDYgKzQwODIs NyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQg ZW5kKQogCQkJCQkJCQkJCQkiTEFSR0UgT0JKRUNUIiwKIAkJCQkJCQkJCQkJIlBBUkFNRVRF UiIsCiAJCQkJCQkJCQkJCSJQUk9DRURVUkUiLAorCQkJCQkJCQkJCQkiUFJPUEVSVFkgR1JB UEgiLAogCQkJCQkJCQkJCQkiUk9VVElORSIsCiAJCQkJCQkJCQkJCSJTQ0hFTUEiLAogCQkJ CQkJCQkJCQkiU0VRVUVOQ0UiLApAQCAtNDE2MCw2ICs0MjA5LDE0IEBAIHBzcWxfY29tcGxl dGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQlDT01QTEVU RV9XSVRIKCJGUk9NIik7CiAJfQogCisvKiBHUkFQSF9UQUJMRSAqLworCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJHUkFQSF9UQUJMRSIpKQorCQlDT01QTEVURV9XSVRIKCIoIik7CisJZWxz ZSBpZiAoVGFpbE1hdGNoZXMoIkdSQVBIX1RBQkxFIiwgIigiKSkKKwkJQ09NUExFVEVfV0lU SF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJvcGdyYXBocyk7CisJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkdSQVBIX1RBQkxFIiwgIigiLCBNYXRjaEFueSkpCisJCUNPTVBM RVRFX1dJVEgoIk1BVENIIik7CisKIC8qIEdST1VQIEJZICovCiAJZWxzZSBpZiAoVGFpbE1h dGNoZXMoIkZST00iLCBNYXRjaEFueSwgIkdST1VQIikpCiAJCUNPTVBMRVRFX1dJVEgoIkJZ Iik7CkBAIC00NDY1LDggKzQ1MjIsMTAgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIg KnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAi Q09MVU1OIiwgIkFHR1JFR0FURSIsICJEQVRBQkFTRSIsICJET01BSU4iLAogCQkJCQkgICJF VkVOVCBUUklHR0VSIiwgIkZPUkVJR04gVEFCTEUiLCAiRlVOQ1RJT04iLAogCQkJCQkgICJM QVJHRSBPQkpFQ1QiLCAiTUFURVJJQUxJWkVEIFZJRVciLCAiTEFOR1VBR0UiLAotCQkJCQkg ICJQVUJMSUNBVElPTiIsICJQUk9DRURVUkUiLCAiUk9MRSIsICJST1VUSU5FIiwgIlNDSEVN QSIsCisJCQkJCSAgIlBST1BFUlRZIEdSQVBIIiwgIlBVQkxJQ0FUSU9OIiwgIlBST0NFRFVS RSIsICJST0xFIiwgIlJPVVRJTkUiLCAiU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0UiLCAi U1VCU0NSSVBUSU9OIiwgIlRBQkxFU1BBQ0UiLCAiVFlQRSIsICJWSUVXIik7CisJZWxzZSBp ZiAoTWF0Y2hlcygiU0VDVVJJVFkiLCAiTEFCRUwiLCAiT04iLCAiUFJPUEVSVFkiLCAiR1JB UEgiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf cHJvcGdyYXBocyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiU0VDVVJJVFkiLCAiTEFCRUwiLCAi T04iLCBNYXRjaEFueSwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJJUyIpOwogCkBA IC00ODgzLDYgKzQ5NDIsOCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwg aW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJQ09NUExFVEVfV0lUSCgiT0JKRUNUIik7CiAJCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEV8QUxURVJ8RFJPUCIsICJNQVRFUklBTElaRUQi KSkKIAkJCUNPTVBMRVRFX1dJVEgoIlZJRVciKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNoZXMo IkNSRUFURXxBTFRFUnxEUk9QIiwgIlBST1BFUlRZIikpCisJCQlDT01QTEVURV9XSVRIKCJH UkFQSCIpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFfEFMVEVSfERST1AiLCAi VEVYVCIpKQogCQkJQ09NUExFVEVfV0lUSCgiU0VBUkNIIik7CiAJCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJDUkVBVEV8QUxURVJ8RFJPUCIsICJVU0VSIikpCmRpZmYgLS1naXQgYS9zcmMv ZmVfdXRpbHMvcHNxbHNjYW4ubCBiL3NyYy9mZV91dGlscy9wc3Fsc2Nhbi5sCmluZGV4IGM5 ZGYwNTk0ZmRhLi4zYTEwYTkyNDE4MCAxMDA2NDQKLS0tIGEvc3JjL2ZlX3V0aWxzL3BzcWxz Y2FuLmwKKysrIGIvc3JjL2ZlX3V0aWxzL3BzcWxzY2FuLmwKQEAgLTc4OCw2ICs3ODgsMTQg QEAgb3RoZXIJCQkuCiAJCQkJCUVDSE87CiAJCQkJfQogCitcewkJCQl7CisJCQkJCUVDSE87 CisJCQkJfQorCitcfQkJCQl7CisJCQkJCUVDSE87CisJCQkJfQorCiB7b3BlcmF0b3J9CQl7 CiAJCQkJCS8qCiAJCQkJCSAqIENoZWNrIGZvciBlbWJlZGRlZCBzbGFzaC1zdGFyIG9yIGRh c2gtZGFzaDsgdGhvc2UKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5k ZW5jeS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmgKaW5kZXggZmQ1ODg2 NTkwMTQuLmIyNjk5OTRmZmQ4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2Rl cGVuZGVuY3kuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaApAQCAt MTIzLDYgKzEyMyw5IEBAIHR5cGVkZWYgZW51bSBPYmplY3RDbGFzcwogCU9DTEFTU19FVkVO VF9UUklHR0VSLAkJLyogcGdfZXZlbnRfdHJpZ2dlciAqLwogCU9DTEFTU19QQVJBTUVURVJf QUNMLAkJLyogcGdfcGFyYW1ldGVyX2FjbCAqLwogCU9DTEFTU19QT0xJQ1ksCQkJCS8qIHBn X3BvbGljeSAqLworCU9DTEFTU19QUk9QR1JBUEhfRUxFTUVOVCwJLyogcGdfcHJvcGdyYXBo X2VsZW1lbnQgKi8KKwlPQ0xBU1NfUFJPUEdSQVBIX0xBQkVMLAkJLyogcGdfcHJvcGdyYXBo X2xhYmVsICovCisJT0NMQVNTX1BST1BHUkFQSF9QUk9QRVJUWSwJLyogcGdfcHJvcGdyYXBo X3Byb3BlcnR5ICovCiAJT0NMQVNTX1BVQkxJQ0FUSU9OLAkJCS8qIHBnX3B1YmxpY2F0aW9u ICovCiAJT0NMQVNTX1BVQkxJQ0FUSU9OX05BTUVTUEFDRSwJLyogcGdfcHVibGljYXRpb25f bmFtZXNwYWNlICovCiAJT0NMQVNTX1BVQkxJQ0FUSU9OX1JFTCwJCS8qIHBnX3B1YmxpY2F0 aW9uX3JlbCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWls ZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggNmIzYzU2YzIwZTgu LmU0YjdiNjI2YmUzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1 aWxkCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTY5LDYgKzY5 LDkgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwogICAncGdfcHVibGljYXRpb25fcmVsLmgnLAog ICAncGdfc3Vic2NyaXB0aW9uLmgnLAogICAncGdfc3Vic2NyaXB0aW9uX3JlbC5oJywKKyAg J3BnX3Byb3BncmFwaF9lbGVtZW50LmgnLAorICAncGdfcHJvcGdyYXBoX2xhYmVsLmgnLAor ICAncGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgnLAogXQogCiAjIFRoZSAuZGF0IGZpbGVzIHdl IG5lZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5LgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jbGFzcy5oCmluZGV4IDNiNzUzM2U3YmIzLi4xNjM1ZDJjNWIzNSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfY2xhc3MuaApAQCAtMTcxLDYgKzE3MSw3IEBAIE1BS0VfU1lTQ0FDSEUoUkVMTkFN RU5TUCwgcGdfY2xhc3NfcmVsbmFtZV9uc3BfaW5kZXgsIDEyOCk7CiAjZGVmaW5lCQkgIFJF TEtJTkRfRk9SRUlHTl9UQUJMRSAgICdmJwkvKiBmb3JlaWduIHRhYmxlICovCiAjZGVmaW5l CQkgIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgJ3AnIC8qIHBhcnRpdGlvbmVkIHRhYmxl ICovCiAjZGVmaW5lCQkgIFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVggJ0knIC8qIHBhcnRp dGlvbmVkIGluZGV4ICovCisjZGVmaW5lCQkgIFJFTEtJTkRfUFJPUEdSQVBICQkgICdnJwkv KiBwcm9wZXJ0eSBncmFwaCAqLwogCiAjZGVmaW5lCQkgIFJFTFBFUlNJU1RFTkNFX1BFUk1B TkVOVAkncCcgLyogcmVndWxhciB0YWJsZSAqLwogI2RlZmluZQkJICBSRUxQRVJTSVNURU5D RV9VTkxPR0dFRAkndScgLyogdW5sb2dnZWQgcGVybWFuZW50IHRhYmxlICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAppbmRleCA5YzEyMGZjMmI3Zi4uMjA3NTU4Zjk3YTggMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMzc4MCw2ICszNzgwLDkgQEAKICAgcHJvYXJn dHlwZXMgPT4gJ29pZCBvaWQnLCBwcm9zcmMgPT4gJ29pZGdlJyB9LAogCiAjIFN5c3RlbS12 aWV3IHN1cHBvcnQgZnVuY3Rpb25zCit7IG9pZCA9PiAnODMwMicsIGRlc2NyID0+ICdzb3Vy Y2UgdGV4dCBvZiBhIHByb3BlcnR5IGdyYXBoJywKKyAgcHJvbmFtZSA9PiAncGdfZ2V0X3By b3BncmFwaGRlZicsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAndGV4dCcs CisgIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX2dldF9wcm9wZ3JhcGhk ZWYnIH0sCiB7IG9pZCA9PiAnMTU3MycsIGRlc2NyID0+ICdzb3VyY2UgdGV4dCBvZiBhIHJ1 bGUnLAogICBwcm9uYW1lID0+ICdwZ19nZXRfcnVsZWRlZicsIHByb3ZvbGF0aWxlID0+ICdz JywgcHJvcmV0dHlwZSA9PiAndGV4dCcsCiAgIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBwcm9z cmMgPT4gJ3BnX2dldF9ydWxlZGVmJyB9LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfZWxlbWVudC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9wZ3JhcGhfZWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5mYjRiYmY4MTU0NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvcGdyYXBoX2VsZW1lbnQuaApAQCAtMCwwICsxLDEwMyBAQAorLyotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKgorICogcGdfcHJvcGdyYXBoX2VsZW1lbnQuaAorICoJICBkZWZp bml0aW9uIG9mIHRoZSAicHJvcGVydHkgZ3JhcGggZWxlbWVudHMiIHN5c3RlbSBjYXRhbG9n IChwZ19wcm9wZ3JhcGhfZWxlbWVudCkKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBv ZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhf ZWxlbWVudC5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJl YWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisg KgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfUFJPUEdSQVBIX0VM RU1FTlRfSAorI2RlZmluZSBQR19QUk9QR1JBUEhfRUxFTUVOVF9ICisKKyNpbmNsdWRlICJj YXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvcGdyYXBoX2VsZW1l bnRfZC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfcHJvcGdyYXBoX2VsZW1l bnQgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVj dCBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfZWxlbWVudAorICogLS0tLS0tLS0tLS0tLS0tLQor ICovCitDQVRBTE9HKHBnX3Byb3BncmFwaF9lbGVtZW50LDgyOTksUHJvcGdyYXBoRWxlbWVu dFJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCisJLyogT0lEIG9mIHRoZSBwcm9wZXJ0 eSBncmFwaCByZWxhdGlvbiAqLworCU9pZAkJCXBnZXBnaWQgQktJX0xPT0tVUChwZ19jbGFz cyk7CisKKwkvKiBPSUQgb2YgdGhlIGVsZW1lbnQgdGFibGUgKi8KKwlPaWQJCQlwZ2VyZWxp ZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsKKworCS8qIGVsZW1lbnQgYWxpYXMgKi8KKwlOYW1l RGF0YQlwZ2VhbGlhczsKKworCS8qIHZlcnRleCBvciBlZGdlPyAtLSBzZWUgUEdFS0lORF8q IGJlbG93ICovCisJY2hhcgkJcGdla2luZDsKKworCS8qIGZvciBlZGdlczogc291cmNlIHZl cnRleCAqLworCU9pZAkJCXBnZXNyY3ZlcnRleGlkIEJLSV9MT09LVVBfT1BUKHBnX3Byb3Bn cmFwaF9lbGVtZW50KTsKKworCS8qIGZvciBlZGdlczogZGVzdGluYXRpb24gdmVydGV4ICov CisJT2lkCQkJcGdlZGVzdHZlcnRleGlkIEJLSV9MT09LVVBfT1BUKHBnX3Byb3BncmFwaF9l bGVtZW50KTsKKworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3Ro IGZpZWxkcyBzdGFydCBoZXJlICovCisJLyogZWxlbWVudCBrZXkgKGNvbHVtbiBudW1iZXJz IGluIHBnZXJlbGlkIHJlbGF0aW9uKSAqLworCWludDE2CQlwZ2VrZXlbMV0gQktJX0ZPUkNF X05PVF9OVUxMOworCisJLyoKKwkgKiBmb3IgZWRnZXM6IHNvdXJjZSB2ZXJ0ZXgga2V5IChj b2x1bW4gbnVtYmVycyBpbiBwZ2VyZWxpZCByZWxhdGlvbikKKwkgKi8KKwlpbnQxNgkJcGdl c3Jja2V5WzFdOworCisJLyoKKwkgKiBmb3IgZWRnZXM6IHNvdXJjZSB2ZXJ0ZXggdGFibGUg cmVmZXJlbmNlZCBjb2x1bW5zIChjb2x1bW4gbnVtYmVycyBpbgorCSAqIHJlbGF0aW9uIHJl YWNoZWQgdmlhIHBnZXNyY3ZlcnRleGlkKQorCSAqLworCWludDE2CQlwZ2VzcmNyZWZbMV07 CisKKwkvKgorCSAqIGZvciBlZGdlczogZGVzdGluYXRpb24gdmVydGV4IGtleSAoY29sdW1u IG51bWJlcnMgaW4gcGdlcmVsaWQgcmVsYXRpb24pCisJICovCisJaW50MTYJCXBnZWRlc3Rr ZXlbMV07CisKKwkvKgorCSAqIGZvciBlZGdlczogZGVzdGluYXRpb24gdmVydGV4IHRhYmxl IHJlZmVyZW5jZWQgY29sdW1ucyAoY29sdW1uIG51bWJlcnMKKwkgKiBpbiByZWxhdGlvbiBy ZWFjaGVkIHZpYSBwZ2VkZXN0dmVydGV4aWQpCisJICovCisJaW50MTYJCXBnZWRlc3RyZWZb MV07CisjZW5kaWYKK30gRm9ybURhdGFfcGdfcHJvcGdyYXBoX2VsZW1lbnQ7CisKKy8qIC0t LS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3Byb3BncmFwaF9lbGVtZW50IGNvcnJlc3Bv bmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHBn X3Byb3BncmFwaF9lbGVtZW50IHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICov Cit0eXBlZGVmIEZvcm1EYXRhX3BnX3Byb3BncmFwaF9lbGVtZW50ICpGb3JtX3BnX3Byb3Bn cmFwaF9lbGVtZW50OworCitERUNMQVJFX1RPQVNUKHBnX3Byb3BncmFwaF9lbGVtZW50LCA4 MzEyLCA4MzEzKTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19wcm9wZ3JhcGhf ZWxlbWVudF9vaWRfaW5kZXgsIDgzMDAsIFByb3BncmFwaEVsZW1lbnRPYmplY3RJbmRleElk LCBwZ19wcm9wZ3JhcGhfZWxlbWVudCwgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVf VU5JUVVFX0lOREVYKHBnX3Byb3BncmFwaF9lbGVtZW50X2FsaWFzX2luZGV4LCA4MzAxLCBQ cm9wZ3JhcGhFbGVtZW50QWxpYXNJbmRleElkLCBwZ19wcm9wZ3JhcGhfZWxlbWVudCwgYnRy ZWUocGdlcGdpZCBvaWRfb3BzLCBwZ2VhbGlhcyBuYW1lX29wcykpOworCitNQUtFX1NZU0NB Q0hFKFBST1BHUkFQSEVMT0lELCBwZ19wcm9wZ3JhcGhfZWxlbWVudF9vaWRfaW5kZXgsIDEy OCk7CitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQSEVMQUxJQVMsIHBnX3Byb3BncmFwaF9lbGVt ZW50X2FsaWFzX2luZGV4LCAxMjgpOworCisjaWZkZWYgRVhQT1NFX1RPX0NMSUVOVF9DT0RF CisKKy8qCisgKiBTeW1ib2xpYyB2YWx1ZXMgZm9yIHBnZWtpbmQgY29sdW1uCisgKi8KKyNk ZWZpbmUgUEdFS0lORF9WRVJURVggJ3YnCisjZGVmaW5lIFBHRUtJTkRfRURHRSAnZScKKwor I2VuZGlmCQkJCQkJCS8qIEVYUE9TRV9UT19DTElFTlRfQ09ERSAqLworCisjZW5kaWYJCQkJ CQkJLyogUEdfUFJPUEdSQVBIX0VMRU1FTlRfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvcGdyYXBoX2xhYmVsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLmE3MDRiZGZhYmQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWwuaApAQCAtMCwwICsxLDU5IEBACisvKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wcm9wZ3JhcGhfbGFiZWwuaAorICoJICBkZWZpbml0 aW9uIG9mIHRoZSAicHJvcGVydHkgZ3JhcGggbGFiZWxzIiBzeXN0ZW0gY2F0YWxvZyAocGdf cHJvcGdyYXBoX2xhYmVsKQorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0y MDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFwaF9sYWJlbC5o CisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMg ZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfUFJPUEdSQVBIX0xBQkVMX0gKKyNk ZWZpbmUgUEdfUFJPUEdSQVBIX0xBQkVMX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtp LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9wZ3JhcGhfbGFiZWxfZC5oIgorCisvKiAt LS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfcHJvcGdyYXBoX2xhYmVsIGRlZmluaXRpb24uICBj cHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfcHJv cGdyYXBoX2xhYmVsCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfcHJv cGdyYXBoX2xhYmVsLDgzMDMsUHJvcGdyYXBoTGFiZWxSZWxhdGlvbklkKQoreworCU9pZAkJ CW9pZDsKKworCS8qCisJICogT0lEIG9mIHRoZSBwcm9wZXJ0eSBncmFwaCByZWxhdGlvbi4g IFRoaXMgY2FuIGFsc28gYmUgZm91bmQgb3V0IGJ5CisJICogY2hhc2luZyB2aWEgcGdsZWxp ZCwgYnV0IGhhdmluZyBpdCBoZXJlIGlzIG1vcmUgZWZmaWNpZW50LgorCSAqLworCU9pZAkJ CXBnbHBnaWQgQktJX0xPT0tVUChwZ19jbGFzcyk7CisKKwkvKiBsYWJlbCBuYW1lICovCisJ TmFtZURhdGEJcGdsbGFiZWw7CisKKwkvKiBPSUQgb2YgdGhlIHByb3BlcnR5IGdyYXBoIGVs ZW1lbnQgKi8KKwlPaWQJCQlwZ2xlbGlkIEJLSV9MT09LVVAocGdfcHJvcGdyYXBoX2VsZW1l bnQpOworfSBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfbGFiZWw7CisKKy8qIC0tLS0tLS0tLS0t LS0tLS0KKyAqCQlGb3JtX3BnX3Byb3BncmFwaF9sYWJlbCBjb3JyZXNwb25kcyB0byBhIHBv aW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiBwZ19wcm9wZ3JhcGhf bGFiZWwgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9y bURhdGFfcGdfcHJvcGdyYXBoX2xhYmVsICpGb3JtX3BnX3Byb3BncmFwaF9sYWJlbDsKKwor REVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19wcm9wZ3JhcGhfbGFiZWxfb2lkX2luZGV4 LCA4MzA0LCBQcm9wZ3JhcGhMYWJlbE9iamVjdEluZGV4SWQsIHBnX3Byb3BncmFwaF9sYWJl bCwgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3Byb3Bn cmFwaF9sYWJlbF9sYWJlbF9pbmRleCwgODMwNSwgUHJvcGdyYXBoTGFiZWxMYWJlbEluZGV4 SWQsIHBnX3Byb3BncmFwaF9sYWJlbCwgYnRyZWUocGdsZWxpZCBvaWRfb3BzLCBwZ2xsYWJl bCBuYW1lX29wcykpOworCitERUNMQVJFX0lOREVYKHBnX3Byb3BncmFwaF9sYWJlbF9ncmFw aF9uYW1lX2luZGV4LCA4MzE0LCBQcm9wZ3JhcGhMYWJlbEdyYXBoTmFtZUluZGV4SWQsIHBn X3Byb3BncmFwaF9sYWJlbCwgYnRyZWUocGdscGdpZCBvaWRfb3BzLCBwZ2xsYWJlbCBuYW1l X29wcykpOworCitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQSExBQkVMTkFNRSwgcGdfcHJvcGdy YXBoX2xhYmVsX2xhYmVsX2luZGV4LCAxMjgpOworCisjZW5kaWYJCQkJCQkJLyogUEdfUFJP UEdSQVBIX0xBQkVMX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvcGdyYXBoX3Byb3BlcnR5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb3BncmFw aF9wcm9wZXJ0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4y ZDVmMmI4ZmU3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvcGdyYXBoX3Byb3BlcnR5LmgKQEAgLTAsMCArMSw3NCBAQAorLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKgorICogcGdfcHJvcGdyYXBoX3Byb3BlcnR5LmgKKyAqCSAgZGVmaW5pdGlv biBvZiB0aGUgInByb3BlcnR5IGdyYXBoIHByb3BlcnRpZXMiIHN5c3RlbSBjYXRhbG9nIChw Z19wcm9wZ3JhcGhfcHJvcGVydHkpCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvcGdyYXBoX3By b3BlcnR5LmgKKyAqCisgKiBOT1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVh ZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAq CisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQR19QUk9QR1JBUEhfUFJP UEVSVFlfSAorI2RlZmluZSBQR19QUk9QR1JBUEhfUFJPUEVSVFlfSAorCisjaW5jbHVkZSAi Y2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb3BncmFwaF9wcm9w ZXJ0eV9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19wcm9wZ3JhcGhfcHJv cGVydHkgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0 cnVjdCBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhfcHJvcGVydHkKKyAqIC0tLS0tLS0tLS0tLS0t LS0KKyAqLworQ0FUQUxPRyhwZ19wcm9wZ3JhcGhfcHJvcGVydHksODMwNixQcm9wZ3JhcGhQ cm9wZXJ0eVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCisJLyoKKwkgKiBPSUQgb2Yg dGhlIHByb3BlcnR5IGdyYXBoIHJlbGF0aW9uLiAgVGhpcyBjYW4gYWxzbyBiZSBmb3VuZCBv dXQgYnkKKwkgKiBjaGFzaW5nIHZpYSBwZ3BsYWJlbGlkLCBidXQgaGF2aW5nIGl0IGhlcmUg aXMgbW9yZSBlZmZpY2llbnQuCisJICovCisJT2lkCQkJcGdwcGdpZCBCS0lfTE9PS1VQKHBn X2NsYXNzKTsKKworCS8qIHByb3BlcnR5IG5hbWUgKi8KKwlOYW1lRGF0YQlwZ3BuYW1lOwor CisJLyoKKwkgKiBUeXBlIG9mIHRoZSBwcm9wZXJ0eS4gIChUaGlzIGNhbiBiZSBjb21wdXRl ZCBmcm9tIHBncGV4cHIsIGJ1dCBzdG9yaW5nCisJICogaXQgbWFrZXMgcGFyc2luZyBHUkFQ SF9UQUJMRSBtb3JlIGVmZmljaWVudC4pCisJICovCisJT2lkCQkJcGdwdHlwaWQgQktJX0xP T0tVUF9PUFQocGdfdHlwZSk7CisKKwkvKiBPSUQgb2YgdGhlIGxhYmVsICovCisJT2lkCQkJ cGdwbGFiZWxpZCBCS0lfTE9PS1VQKHBnX3Byb3BncmFwaF9sYWJlbCk7CisKKyNpZmRlZiBD QVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAq LworCisJLyogcHJvcGVydHkgZXhwcmVzc2lvbiAqLworCXBnX25vZGVfdHJlZSBwZ3BleHBy IEJLSV9GT1JDRV9OT1RfTlVMTDsKKworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3Byb3BncmFw aF9wcm9wZXJ0eTsKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfcHJvcGdy YXBoX3Byb3BlcnR5IGNvcnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgK KyAqCQl0aGUgZm9ybWF0IG9mIHBnX3Byb3BncmFwaF9wcm9wZXJ0eSByZWxhdGlvbi4KKyAq IC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBGb3JtRGF0YV9wZ19wcm9wZ3JhcGhf cHJvcGVydHkgKkZvcm1fcGdfcHJvcGdyYXBoX3Byb3BlcnR5OworCitERUNMQVJFX1RPQVNU KHBnX3Byb3BncmFwaF9wcm9wZXJ0eSwgODMwOSwgODMxMCk7CisKK0RFQ0xBUkVfVU5JUVVF X0lOREVYX1BLRVkocGdfcHJvcGdyYXBoX3Byb3BlcnR5X29pZF9pbmRleCwgODMwNywgUHJv cGdyYXBoUHJvcGVydHlPYmplY3RJbmRleElkLCBwZ19wcm9wZ3JhcGhfcHJvcGVydHksIGJ0 cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wcm9wZ3JhcGhf cHJvcGVydHlfbmFtZV9pbmRleCwgODMwOCwgUHJvcGdyYXBoUHJvcGVydHlOYW1lSW5kZXhJ ZCwgcGdfcHJvcGdyYXBoX3Byb3BlcnR5LCBidHJlZShwZ3BsYWJlbGlkIG9pZF9vcHMsIHBn cG5hbWUgbmFtZV9vcHMpKTsKKworREVDTEFSRV9JTkRFWChwZ19wcm9wZ3JhcGhfcHJvcGVy dHlfZ3JhcGhfbmFtZV9pbmRleCwgODMxMSwgUHJvcGdyYXBoUHJvcGVydHlHcmFwaE5hbWVJ bmRleElkLCBwZ19wcm9wZ3JhcGhfcHJvcGVydHksIGJ0cmVlKHBncHBnaWQgb2lkX29wcywg cGdwbmFtZSBuYW1lX29wcykpOworCitNQUtFX1NZU0NBQ0hFKFBST1BHUkFQSFBST1BOQU1F LCBwZ19wcm9wZ3JhcGhfcHJvcGVydHlfbmFtZV9pbmRleCwgMTI4KTsKKworI2VuZGlmCQkJ CQkJCS8qIFBHX1BST1BHUkFQSF9QUk9QRVJUWV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9wcm9wZ3JhcGhjbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9w cm9wZ3JhcGhjbWRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjI0NDBiZDRhNjBjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv cHJvcGdyYXBoY21kcy5oCkBAIC0wLDAgKzEsMjMgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoKKyAqIHByb3BncmFwaGNtZHMuaAorICoJICBwcm90b3R5cGVzIGZvciBwcm9wZ3Jh cGhjbWRzLmMuCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQor ICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb3BncmFwaGNtZHMuaAorICoKKyAqLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgUFJPUEdSQVBIQ01EU19ICisjZGVm aW5lIFBST1BHUkFQSENNRFNfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNz LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQ3JlYXRlUHJvcEdyYXBoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQ3JlYXRl UHJvcEdyYXBoU3RtdCAqc3RtdCk7CitleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlclByb3BH cmFwaChQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IEFsdGVyUHJvcEdyYXBoU3RtdCAqc3Rt dCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQUk9QR1JBUEhDTURTX0ggKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAppbmRleCBkNWIwOGRlZDQ0Ni4uOGZhYjBkYWVjM2QgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKQEAgLTY2OSw2ICs2NjksMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgUmFu Z2VUYWJsZUZ1bmNDb2wKIAlpbnQJCQlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBv ciAtMSBpZiB1bmtub3duICovCiB9IFJhbmdlVGFibGVGdW5jQ29sOwogCisvKgorICogUmFu Z2VHcmFwaFRhYmxlIC0gcmF3IGZvcm0gb2YgR1JBUEhfVEFCTEUgY2xhdXNlCisgKi8KK3R5 cGVkZWYgc3RydWN0IFJhbmdlR3JhcGhUYWJsZQoreworCU5vZGVUYWcJCXR5cGU7CisJUmFu Z2VWYXIgICAqZ3JhcGhfbmFtZTsKKwlzdHJ1Y3QgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0 ZXJuOworCUxpc3QJICAgKmNvbHVtbnM7CisJQWxpYXMJICAgKmFsaWFzOwkJCS8qIHRhYmxl IGFsaWFzICYgb3B0aW9uYWwgY29sdW1uIGFsaWFzZXMgKi8KKwlpbnQJCQlsb2NhdGlvbjsJ CS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCit9IFJhbmdlR3JhcGhU YWJsZTsKKwogLyoKICAqIFJhbmdlVGFibGVTYW1wbGUgLSBUQUJMRVNBTVBMRSBhcHBlYXJp bmcgaW4gYSByYXcgRlJPTSBjbGF1c2UKICAqCkBAIC05MzQsNiArOTQ3LDM4IEBAIHR5cGVk ZWYgc3RydWN0IFBhcnRpdGlvbkNtZAogCWJvb2wJCWNvbmN1cnJlbnQ7CiB9IFBhcnRpdGlv bkNtZDsKIAorLyoKKyAqIE5vZGVzIGZvciBncmFwaCBwYXR0ZXJuCisgKi8KKwordHlwZWRl ZiBzdHJ1Y3QgR3JhcGhQYXR0ZXJuCit7CisJTm9kZVRhZwkJdHlwZTsKKwlMaXN0CSAgICpw YXRoX3BhdHRlcm5fbGlzdDsKKwlOb2RlCSAgICp3aGVyZUNsYXVzZTsKK30gR3JhcGhQYXR0 ZXJuOworCit0eXBlZGVmIGVudW0gR3JhcGhFbGVtZW50UGF0dGVybktpbmQKK3sKKwlWRVJU RVhfUEFUVEVSTiwKKwlFREdFX1BBVFRFUk5fTEVGVCwKKwlFREdFX1BBVFRFUk5fUklHSFQs CisJRURHRV9QQVRURVJOX0FOWSwKKwlQQVJFTl9FWFBSLAorfSBHcmFwaEVsZW1lbnRQYXR0 ZXJuS2luZDsKKwordHlwZWRlZiBzdHJ1Y3QgR3JhcGhFbGVtZW50UGF0dGVybgoreworCU5v ZGVUYWcJCXR5cGU7CisJR3JhcGhFbGVtZW50UGF0dGVybktpbmQga2luZDsKKwljb25zdCBj aGFyICp2YXJpYWJsZTsKKwlOb2RlCSAgICpsYWJlbGV4cHI7CisJTGlzdAkgICAqc3ViZXhw cjsKKwlOb2RlCSAgICp3aGVyZUNsYXVzZTsKKwlMaXN0CSAgICpxdWFudGlmaWVyOworCWlu dAkJCWxvY2F0aW9uOworfSBHcmFwaEVsZW1lbnRQYXR0ZXJuOworCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgogICoJTm9kZXMgZm9yIGEgUXVlcnkgdHJlZQogICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCkBAIC0xMDEwLDYgKzEwNTUsNyBAQCB0eXBlZGVmIGVudW0gUlRFS2luZAog CVJURV9WQUxVRVMsCQkJCQkvKiBWQUxVRVMgKDxleHBybGlzdD4pLCAoPGV4cHJsaXN0Piks IC4uLiAqLwogCVJURV9DVEUsCQkJCQkvKiBjb21tb24gdGFibGUgZXhwciAoV0lUSCBsaXN0 IGVsZW1lbnQpICovCiAJUlRFX05BTUVEVFVQTEVTVE9SRSwJCS8qIHR1cGxlc3RvcmUsIGUu Zy4gZm9yIEFGVEVSIHRyaWdnZXJzICovCisJUlRFX0dSQVBIX1RBQkxFLAkJCS8qIEdSQVBI X1RBQkxFIGNsYXVzZSAqLwogCVJURV9SRVNVTFQsCQkJCQkvKiBSVEUgcmVwcmVzZW50cyBh biBlbXB0eSBGUk9NIGNsYXVzZTsgc3VjaAogCQkJCQkJCQkgKiBSVEVzIGFyZSBhZGRlZCBi eSB0aGUgcGxhbm5lciwgdGhleSdyZSBub3QKIAkJCQkJCQkJICogcHJlc2VudCBkdXJpbmcg cGFyc2luZyBvciByZXdyaXRpbmcgKi8KQEAgLTExNDQsNiArMTE5MCwxMiBAQCB0eXBlZGVm IHN0cnVjdCBSYW5nZVRibEVudHJ5CiAJICovCiAJVGFibGVGdW5jICAqdGFibGVmdW5jOwog CisJLyoKKwkgKiBGaWVsZHMgdmFsaWQgZm9yIGEgZ3JhcGggdGFibGUgUlRFIChlbHNlIE5V TEwpOgorCSAqLworCUdyYXBoUGF0dGVybiAqZ3JhcGhfcGF0dGVybjsKKwlMaXN0CSAgICpn cmFwaF90YWJsZV9jb2x1bW5zOworCiAJLyoKIAkgKiBGaWVsZHMgdmFsaWQgZm9yIGEgdmFs dWVzIFJURSAoZWxzZSBOSUwpOgogCSAqLwpAQCAtMjEyMiw2ICsyMTc0LDcgQEAgdHlwZWRl ZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfUEFSQU1FVEVSX0FDTCwKIAlPQkpFQ1RfUE9M SUNZLAogCU9CSkVDVF9QUk9DRURVUkUsCisJT0JKRUNUX1BST1BHUkFQSCwKIAlPQkpFQ1Rf UFVCTElDQVRJT04sCiAJT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRSwKIAlPQkpFQ1Rf UFVCTElDQVRJT05fUkVMLApAQCAtMzg2MSw2ICszOTE0LDg4IEBAIHR5cGVkZWYgc3RydWN0 IENyZWF0ZUNhc3RTdG10CiAJYm9vbAkJaW5vdXQ7CiB9IENyZWF0ZUNhc3RTdG10OwogCisv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKglDUkVBVEUgUFJPUEVSVFkgR1JBUEggU3Rh dGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0 IENyZWF0ZVByb3BHcmFwaFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAg KnBnbmFtZTsKKwlMaXN0CSAgICp2ZXJ0ZXhfdGFibGVzOworCUxpc3QJICAgKmVkZ2VfdGFi bGVzOworfSBDcmVhdGVQcm9wR3JhcGhTdG10OworCit0eXBlZGVmIHN0cnVjdCBQcm9wR3Jh cGhWZXJ0ZXgKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZ0YWJsZTsKKwlM aXN0CSAgICp2a2V5OworCUxpc3QJICAgKmxhYmVsczsKKwlpbnQJCQlsb2NhdGlvbjsKK30g UHJvcEdyYXBoVmVydGV4OworCit0eXBlZGVmIHN0cnVjdCBQcm9wR3JhcGhFZGdlCit7CisJ Tm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICpldGFibGU7CisJTGlzdAkgICAqZWtleTsK KwlMaXN0CSAgICplc3Jja2V5OworCWNoYXIJICAgKmVzcmN2ZXJ0ZXg7CisJTGlzdAkgICAq ZXNyY3ZlcnRleGNvbHM7CisJTGlzdAkgICAqZWRlc3RrZXk7CisJY2hhcgkgICAqZWRlc3R2 ZXJ0ZXg7CisJTGlzdAkgICAqZWRlc3R2ZXJ0ZXhjb2xzOworCUxpc3QJICAgKmxhYmVsczsK KwlpbnQJCQlsb2NhdGlvbjsKK30gUHJvcEdyYXBoRWRnZTsKKwordHlwZWRlZiBzdHJ1Y3Qg UHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzCit7CisJTm9kZVRhZwkJdHlwZTsKKwljb25z dCBjaGFyICpsYWJlbDsKKwlzdHJ1Y3QgUHJvcEdyYXBoUHJvcGVydGllcyAqcHJvcGVydGll czsKKwlpbnQJCQlsb2NhdGlvbjsKK30gUHJvcEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzOwor Cit0eXBlZGVmIHN0cnVjdCBQcm9wR3JhcGhQcm9wZXJ0aWVzCit7CisJTm9kZVRhZwkJdHlw ZTsKKwlMaXN0CSAgICpwcm9wZXJ0aWVzOworCWJvb2wJCWFsbDsKKwlpbnQJCQlsb2NhdGlv bjsKK30gUHJvcEdyYXBoUHJvcGVydGllczsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICoJQUxURVIgUFJPUEVSVFkgR1JBUEggU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKi8KKwordHlwZWRlZiBlbnVtIEFsdGVyUHJvcEdyYXBoRWxlbWVudEtp bmQKK3sKKwlQUk9QR1JBUEhfRUxFTUVOVF9LSU5EX1ZFUlRFWCA9IDEsCisJUFJPUEdSQVBI X0VMRU1FTlRfS0lORF9FREdFID0gMiwKK30gQWx0ZXJQcm9wR3JhcGhFbGVtZW50S2luZDsK KwordHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQcm9wR3JhcGhTdG10Cit7CisJTm9kZVRhZwkJdHlw ZTsKKwlSYW5nZVZhciAgICpwZ25hbWU7CisJYm9vbAkJbWlzc2luZ19vazsKKwlMaXN0CSAg ICphZGRfdmVydGV4X3RhYmxlczsKKwlMaXN0CSAgICphZGRfZWRnZV90YWJsZXM7CisJTGlz dAkgICAqZHJvcF92ZXJ0ZXhfdGFibGVzOworCUxpc3QJICAgKmRyb3BfZWRnZV90YWJsZXM7 CisJRHJvcEJlaGF2aW9yIGRyb3BfYmVoYXZpb3I7CisJQWx0ZXJQcm9wR3JhcGhFbGVtZW50 S2luZCBlbGVtZW50X2tpbmQ7CisJY29uc3QgY2hhciAqZWxlbWVudF9hbGlhczsKKwlMaXN0 CSAgICphZGRfbGFiZWxzOworCWNvbnN0IGNoYXIgKmRyb3BfbGFiZWw7CisJY29uc3QgY2hh ciAqYWx0ZXJfbGFiZWw7CisJUHJvcEdyYXBoUHJvcGVydGllcyAqYWRkX3Byb3BlcnRpZXM7 CisJTGlzdAkgICAqZHJvcF9wcm9wZXJ0aWVzOworfSBBbHRlclByb3BHcmFwaFN0bXQ7CisK IC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCUNSRUFURSBUUkFOU0ZPUk0gU3RhdGVt ZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmlu ZGV4IDRhMTU0NjA2ZDJiLi40M2M5NGFhOWY5NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK QEAgLTE4NjAsNiArMTg2MCwyOCBAQCB0eXBlZGVmIHN0cnVjdCBJbmZlcmVuY2VFbGVtCiAJ T2lkCQkJaW5mZXJvcGNsYXNzOwkvKiBPSUQgb2YgYXR0IG9wY2xhc3MsIG9yIEludmFsaWRP aWQgKi8KIH0gSW5mZXJlbmNlRWxlbTsKIAorLyoKKyAqIEdyYXBoTGFiZWxSZWYgLSBsYWJl bCByZWZlcmVuY2UgaW4gbGFiZWwgZXhwcmVzc2lvbiBpbnNpZGUgR1JBUEhfVEFCTEUgY2xh dXNlCisgKi8KK3R5cGVkZWYgc3RydWN0IEdyYXBoTGFiZWxSZWYKK3sKKwlOb2RlVGFnCQl0 eXBlOworCWNvbnN0IGNoYXIgKmxhYmVsbmFtZTsKKwlpbnQJCQlsb2NhdGlvbjsKK30gR3Jh cGhMYWJlbFJlZjsKKworLyoKKyAqIEdyYXBoUHJvcGVydHlSZWYgLSBwcm9wZXJ0eSByZWZl cmVuY2UgaW5zaWRlIEdSQVBIX1RBQkxFIGNsYXVzZQorICovCit0eXBlZGVmIHN0cnVjdCBH cmFwaFByb3BlcnR5UmVmCit7CisJRXhwcgkJeHByOworCWNvbnN0IGNoYXIgKmVsdmFybmFt ZTsKKwljb25zdCBjaGFyICpwcm9wbmFtZTsKKwlPaWQJCQl0eXBlSWQ7CisJaW50CQkJbG9j YXRpb247Cit9IEdyYXBoUHJvcGVydHlSZWY7CisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAqIFRhcmdldEVudHJ5IC0KICAqCSAgIGEgdGFyZ2V0IGVudHJ5ICh1c2VkIGluIHF1ZXJ5 IHRhcmdldCBsaXN0cykKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCAyMzMxYWNhYzA5MS4uMzQw OTJlZDA3NWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBQR19L RVlXT1JEKCJkZWxpbWl0ZXJzIiwgREVMSU1JVEVSUywgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZGVwZW5kcyIsIERFUEVORFMsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImRlcHRoIiwgREVQVEgsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImRlc2MiLCBERVNDLCBS RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgiZGVzdGluYXRpb24i LCBERVNUSU5BVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgiZGV0YWNoIiwgREVUQUNILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJkaWN0aW9uYXJ5IiwgRElDVElPTkFSWSwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZGlzYWJsZSIsIERJU0FCTEVfUCwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMTQ2LDYgKzE0Nyw3IEBAIFBHX0tF WVdPUkQoImRvbWFpbiIsIERPTUFJTl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJkb3VibGUiLCBET1VCTEVfUCwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZHJvcCIsIERST1AsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImVhY2giLCBFQUNILCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJlZGdlIiwgRURHRSwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZWxzZSIsIEVMU0UsIFJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmFibGUiLCBFTkFC TEVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5j b2RpbmciLCBFTkNPRElORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAt MTg3LDYgKzE4OSw4IEBAIFBHX0tFWVdPUkQoImdlbmVyYXRlZCIsIEdFTkVSQVRFRCwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZ2xvYmFsIiwgR0xP QkFMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJncmFu dCIsIEdSQU5ULCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoImdy YW50ZWQiLCBHUkFOVEVELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19L RVlXT1JEKCJncmFwaCIsIEdSQVBILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CitQR19LRVlXT1JEKCJncmFwaF90YWJsZSIsIEdSQVBIX1RBQkxFLCBDT0xfTkFNRV9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZ3JlYXRlc3QiLCBHUkVBVEVTVCwgQ09M X05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImdyb3VwIiwgR1JPVVBf UCwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJncm91cGluZyIs IEdST1VQSU5HLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMjg0LDYgKzI4 OCw3IEBAIFBHX0tFWVdPUkQoIm5mZCIsIE5GRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgibmZrYyIsIE5GS0MsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm5ma2QiLCBORktELCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJubyIsIE5PLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJub2RlIiwgTk9ERSwgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibm9uZSIsIE5PTkUsIENPTF9OQU1F X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJub3JtYWxpemUiLCBOT1JNQUxJ WkUsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJub3JtYWxp emVkIiwgTk9STUFMSVpFRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAt MzQyLDYgKzM0Nyw4IEBAIFBHX0tFWVdPUkQoInByb2NlZHVyYWwiLCBQUk9DRURVUkFMLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwcm9jZWR1cmUi LCBQUk9DRURVUkUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInByb2NlZHVyZXMiLCBQUk9DRURVUkVTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJwcm9ncmFtIiwgUFJPR1JBTSwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicHJvcGVydGllcyIsIFBST1BFUlRJRVMs IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInByb3BlcnR5 IiwgUFJPUEVSVFksIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInB1YmxpY2F0aW9uIiwgUFVCTElDQVRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInF1b3RlIiwgUVVPVEUsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJhbmdlIiwgUkFOR0UsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKQEAgLTM1NSw2ICszNjIsNyBAQCBQR19LRVlXT1JEKCJy ZWZlcmVuY2VzIiwgUkVGRVJFTkNFUywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInJlZmVyZW5jaW5nIiwgUkVGRVJFTkNJTkcsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJlZnJlc2giLCBSRUZSRVNILCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJyZWluZGV4IiwgUkVJ TkRFWCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicmVs YXRpb25zaGlwIiwgUkVMQVRJT05TSElQLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJyZWxhdGl2ZSIsIFJFTEFUSVZFX1AsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJlbGVhc2UiLCBSRUxFQVNFLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJyZW5hbWUiLCBSRU5B TUUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAgLTQwMyw2ICs0MTEsNyBA QCBQR19LRVlXT1JEKCJza2lwIiwgU0tJUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgic21hbGxpbnQiLCBTTUFMTElOVCwgQ09MX05BTUVfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNuYXBzaG90IiwgU05BUFNIT1QsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNvbWUiLCBTT01FLCBS RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgic291cmNlIiwgU09V UkNFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJzcWwi LCBTUUxfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi c3RhYmxlIiwgU1RBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJzdGFuZGFsb25lIiwgU1RBTkRBTE9ORV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCkBAIC00NzAsNiArNDc5LDcgQEAgUEdfS0VZV09SRCgidmFyaWFkaWMi LCBWQVJJQURJQywgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InZhcnlpbmciLCBWQVJZSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdf S0VZV09SRCgidmVyYm9zZSIsIFZFUkJPU0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJzaW9uIiwgVkVSU0lPTl9QLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ2ZXJ0ZXgiLCBWRVJURVgsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZpZXciLCBWSUVX LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2aWV3cyIs IFZJRVdTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2 b2xhdGlsZSIsIFZPTEFUSUxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX2dyYXBodGFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uN2RlOThhNzFmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZ3JhcGh0YWJsZS5oCkBAIC0wLDAgKzEsMzEgQEAK Ky8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBhcnNlX2dyYXBodGFibGUuaAorICoJ CXBhcnNpbmcgb2YgR1JBUEhfVEFCTEUKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNp dHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ncmFw aHRhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRlZiBQQVJT RV9HUkFQSFRBQkxFX0gKKyNkZWZpbmUgUEFSU0VfR1JBUEhUQUJMRV9ICisKKyNpbmNsdWRl ICJub2Rlcy9wYXJzZW5vZGVzLmgiCisjaW5jbHVkZSAibm9kZXMvcGdfbGlzdC5oIgorI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisKK3R5cGVkZWYgc3RydWN0IEdyYXBoVGFi bGVQYXJzZVN0YXRlCit7CisJT2lkCQkJZ3JhcGhpZDsKKwlMaXN0CSAgICp2YXJpYWJsZXM7 Cit9IEdyYXBoVGFibGVQYXJzZVN0YXRlOworCitleHRlcm4gTm9kZSAqZ3JhcGhfdGFibGVf cHJvcGVydHlfcmVmZXJlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVm KTsKKworTm9kZQkgICAqdHJhbnNmb3JtR3JhcGhQYXR0ZXJuKEdyYXBoVGFibGVQYXJzZVN0 YXRlICpncHN0YXRlLCBHcmFwaFBhdHRlcm4gKmdyYXBoX3BhdHRlcm4pOworCisjZW5kaWYJ CQkJCQkJLyogUEFSU0VfR1JBUEhUQUJMRV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9y ZWxhdGlvbi5oCmluZGV4IGJlYTJkYTU0OTYxLi5jMTFiODk1YjdiYiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKQEAgLTgxLDYgKzgxLDE0IEBAIGV4dGVybiBQYXJz ZU5hbWVzcGFjZUl0ZW0gKmFkZFJhbmdlVGFibGVFbnRyeUZvclRhYmxlRnVuYyhQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJCSAgQWxpYXMgKmFsaWFzLAogCQkJCQkJCQkJ CQkJCQkgIGJvb2wgbGF0ZXJhbCwKIAkJCQkJCQkJCQkJCQkJICBib29sIGluRnJvbUNsKTsK K2V4dGVybiBQYXJzZU5hbWVzcGFjZUl0ZW0gKmFkZFJhbmdlVGFibGVFbnRyeUZvckdyYXBo VGFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQkJCQkgICBPaWQgZ3JhcGhp ZCwKKwkJCQkJCQkJCQkJCQkJICAgR3JhcGhQYXR0ZXJuICpncmFwaF9wYXR0ZXJuLAorCQkJ CQkJCQkJCQkJCQkgICBMaXN0ICpjb2x1bW5zLAorCQkJCQkJCQkJCQkJCQkgICBMaXN0ICpj b2xuYW1lcywKKwkJCQkJCQkJCQkJCQkJICAgQWxpYXMgKmFsaWFzLAorCQkJCQkJCQkJCQkJ CQkgICBib29sIGxhdGVyYWwsCisJCQkJCQkJCQkJCQkJCSAgIGJvb2wgaW5Gcm9tQ2wpOwog ZXh0ZXJuIFBhcnNlTmFtZXNwYWNlSXRlbSAqYWRkUmFuZ2VUYWJsZUVudHJ5Rm9ySm9pbihQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJIExpc3QgKmNvbG5hbWVzLAogCQkJ CQkJCQkJCQkJCSBQYXJzZU5hbWVzcGFjZUNvbHVtbiAqbnNjb2x1bW5zLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5oIGIvc3JjL2luY2x1 ZGUvcmV3cml0ZS9yZXdyaXRlR3JhcGhUYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi4wYzAzMTlmNWNmYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9p bmNsdWRlL3Jld3JpdGUvcmV3cml0ZUdyYXBoVGFibGUuaApAQCAtMCwwICsxLDIxIEBACisv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiByZXdyaXRlR3JhcGhUYWJsZS5oCisgKgkJ U3VwcG9ydCBmb3IgcmV3cml0aW5nIEdSQVBIX1RBQkxFIGNsYXVzZXMuCisgKgorICoKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVk ZS9yZXdyaXRlL3Jld3JpdGVHcmFwaFRhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAqLworI2lmbmRlZiBSRVdSSVRFR1JBUEhUQUJMRV9ICisjZGVmaW5lIFJFV1JJVEVH UkFQSFRBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKworZXh0ZXJu IFF1ZXJ5ICpyZXdyaXRlR3JhcGhUYWJsZShRdWVyeSAqcGFyc2V0cmVlLCBpbnQgcnRfaW5k ZXgpOworCisjZW5kaWYJCQkJCQkJLyogUkVXUklURUdSQVBIVEFCTEVfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaAppbmRleCA3ZmRjZWM2ZGQ5My4uNTU4MjQ4M2QwNmMgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oCkBAIC00OCw2ICs0OCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxU RVJfT1BFUkFUT1JfQ0xBU1MsICJBTFRFUiBPUEVSQVRPUiBDTEFTUyIsIHRydWUsIGZhbHNl LCBmYWxzCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX09QRVJBVE9SX0ZBTUlMWSwgIkFMVEVS IE9QRVJBVE9SIEZBTUlMWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQUxURVJfUE9MSUNZLCAiQUxURVIgUE9MSUNZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19BTFRFUl9QUk9DRURVUkUsICJBTFRFUiBQUk9DRURVUkUiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX1BST1BFUlRZX0dS QVBILCAiQUxURVIgUFJPUEVSVFkgR1JBUEgiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0FMVEVSX1BVQkxJQ0FUSU9OLCAiQUxURVIgUFVCTElDQVRJT04iLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1JPTEUsICJBTFRF UiBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJf Uk9VVElORSwgIkFMVEVSIFJPVVRJTkUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMDMs NiArMTA0LDcgQEAgUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfT1BFUkFUT1JfQ0xBU1MsICJD UkVBVEUgT1BFUkFUT1IgQ0xBU1MiLCB0cnVlLCBmYWxzZSwgZmEKIFBHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX09QRVJBVE9SX0ZBTUlMWSwgIkNSRUFURSBPUEVSQVRPUiBGQU1JTFkiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9QT0xJQ1ksICJD UkVBVEUgUE9MSUNZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19D UkVBVEVfUFJPQ0VEVVJFLCAiQ1JFQVRFIFBST0NFRFVSRSIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKK1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1BST1BFUlRZX0dSQVBILCAiQ1JFQVRFIFBS T1BFUlRZIEdSQVBIIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19D UkVBVEVfUFVCTElDQVRJT04sICJDUkVBVEUgUFVCTElDQVRJT04iLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9ST0xFLCAiQ1JFQVRFIFJPTEUiLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfUk9VVElORSwg IkNSRUFURSBST1VUSU5FIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTU2LDYgKzE1OCw3 IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9PUEVSQVRPUl9GQU1JTFksICJEUk9QIE9QRVJB VE9SIEZBTUlMWSIsIHRydWUsIGZhbHNlLCBmYWxzCiBQR19DTURUQUcoQ01EVEFHX0RST1Bf T1dORUQsICJEUk9QIE9XTkVEIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19EUk9QX1BPTElDWSwgIkRST1AgUE9MSUNZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19EUk9QX1BST0NFRFVSRSwgIkRST1AgUFJPQ0VEVVJFIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1BST1BFUlRZX0dSQVBI LCAiRFJPUCBQUk9QRVJUWSBHUkFQSCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfRFJPUF9QVUJMSUNBVElPTiwgIkRST1AgUFVCTElDQVRJT04iLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfUk9MRSwgIkRST1AgUk9MRSIs IGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfUk9VVElORSwg IkRST1AgUk9VVElORSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggYTgw M2ViMTI5MTAuLmI2NTkwNDA3MTZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9h Y2wuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY1LDYgKzE2NSw3IEBA IHR5cGVkZWYgc3RydWN0IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRT X0xBTkdVQUdFCQkoQUNMX1VTQUdFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19MQVJHRU9C SkVDVAkoQUNMX1NFTEVDVHxBQ0xfVVBEQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19Q QVJBTUVURVJfQUNMIChBQ0xfU0VUfEFDTF9BTFRFUl9TWVNURU0pCisjZGVmaW5lIEFDTF9B TExfUklHSFRTX1BST1BHUkFQSAkoQUNMX1NFTEVDVCkKICNkZWZpbmUgQUNMX0FMTF9SSUdI VFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklH SFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZ UEUJCQkoQUNMX1VTQUdFKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dy YW0ueSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKaW5kZXggZTYzMDQ5OGU4MmMu LjIxZTNmYzg0ZTgxIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55 CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKQEAgLTIzMyw2ICsyMzMsNyBA QCBzdGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3Jh aXNlICpzdG10KTsKICV0b2tlbiA8aXZhbD4JSUNPTlNUIFBBUkFNCiAldG9rZW4JCQlUWVBF Q0FTVCBET1RfRE9UIENPTE9OX0VRVUFMUyBFUVVBTFNfR1JFQVRFUgogJXRva2VuCQkJTEVT U19FUVVBTFMgR1JFQVRFUl9FUVVBTFMgTk9UX0VRVUFMUworJXRva2VuCQkJQlJBQ0tFVF9S SUdIVF9BUlJPVyBMRUZUX0FSUk9XX0JSQUNLRVQgTUlOVVNfTEVGVF9CUkFDS0VUIFJJR0hU X0JSQUNLRVRfTUlOVVMKIAogLyoKICAqIE90aGVyIHRva2VucyByZWNvZ25pemVkIGJ5IHBs cGdzcWwncyBsZXhlciBpbnRlcmZhY2UgbGF5ZXIgKHBsX3NjYW5uZXIuYykuCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX2dlbmVyaWMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl9nZW5lcmljLm91dAppbmRleCBhZTU0Y2Iy NTRmOS4uYWI5Y2U5ZTlhY2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvYWx0ZXJfZ2VuZXJpYy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9h bHRlcl9nZW5lcmljLm91dApAQCAtNTIwLDYgKzUyMCw0OSBAQCBFUlJPUjogIGxlZnQgYW5k IHJpZ2h0IGFzc29jaWF0ZWQgZGF0YSB0eXBlcyBmb3Igb3BlcmF0b3IgY2xhc3Mgb3B0aW9u cyBwYXJzaW5nCiBBTFRFUiBPUEVSQVRPUiBGQU1JTFkgYWx0X29wZjE5IFVTSU5HIGJ0cmVl IEFERCBGVU5DVElPTiA1IChpbnQ0KSB0ZXN0X29wY2xhc3Nfb3B0aW9uc19mdW5jKGludGVy bmFsKTsgLS0gT2sKIEFMVEVSIE9QRVJBVE9SIEZBTUlMWSBhbHRfb3BmMTkgVVNJTkcgYnRy ZWUgRFJPUCBGVU5DVElPTiA1IChpbnQ0LCBpbnQ0KTsKIERST1AgT1BFUkFUT1IgRkFNSUxZ IGFsdF9vcGYxOSBVU0lORyBidHJlZTsKKy0tCistLSBQcm9wZXJ0eSBHcmFwaAorLS0KK1NF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIxOwor Q1JFQVRFIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDE7CitDUkVBVEUgUFJPUEVSVFkgR1JB UEggYWx0X2dyYXBoMjsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgzOworQUxU RVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMSBSRU5BTUUgVE8gYWx0X2dyYXBoMjsgLS0g ZmFpbGVkIChuYW1lIGNvbmZsaWN0KQorRVJST1I6ICByZWxhdGlvbiAiYWx0X2dyYXBoMiIg YWxyZWFkeSBleGlzdHMKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDEgUkVOQU1F IFRPIGFsdF9ncmFwaDQ7IC0tIE9LCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgy IE9XTkVSIFRPIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMjsgIC0tIGZhaWxlZCAobm8g cm9sZSBtZW1iZXJzaGlwKQorRVJST1I6ICBtdXN0IGJlIGFibGUgdG8gU0VUIFJPTEUgInJl Z3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2VyMiIKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9n cmFwaDIgT1dORVIgVE8gcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIzOyAgLS0gT0sKK0FM VEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDQgU0VUIFNDSEVNQSBhbHRfbnNwMjsgIC0t IE9LCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfbnNwMi5hbHRfZ3JhcGg0IFJFTkFNRSBU TyBhbHRfZ3JhcGgyOyAgLS0gT0sKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDIg U0VUIFNDSEVNQSBhbHRfbnNwMjsgIC0tIGZhaWxlZCAobmFtZSBjb25mbGljdCkKK0VSUk9S OiAgcmVsYXRpb24gImFsdF9ncmFwaDIiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSAiYWx0 X25zcDIiCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJp Y191c2VyMjsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGg1OworQUxURVIgUFJP UEVSVFkgR1JBUEggYWx0X2dyYXBoMyBSRU5BTUUgVE8gYWx0X2dyYXBoNTsgIC0tIGZhaWxl ZCAobm90IG93bmVyKQorRVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIHByb3BlcnR5IGdyYXBo IGFsdF9ncmFwaDMKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDUgUkVOQU1FIFRP IGFsdF9ncmFwaDY7ICAtLSBPSworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMyBP V05FUiBUTyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjI7ICAtLSBmYWlsZWQgKG5vdCBv d25lcikKK0VSUk9SOiAgbXVzdCBiZSBvd25lciBvZiBwcm9wZXJ0eSBncmFwaCBhbHRfZ3Jh cGgzCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGg2IE9XTkVSIFRPIHJlZ3Jlc3Nf YWx0ZXJfZ2VuZXJpY191c2VyMzsgIC0tIGZhaWxlZCAobm8gcm9sZSBtZW1iZXJzaGlwKQor RVJST1I6ICBtdXN0IGJlIGFibGUgdG8gU0VUIFJPTEUgInJlZ3Jlc3NfYWx0ZXJfZ2VuZXJp Y191c2VyMyIKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDMgU0VUIFNDSEVNQSBh bHRfbnNwMjsgIC0tIGZhaWxlZCAobm90IG93bmVyKQorRVJST1I6ICBtdXN0IGJlIG93bmVy IG9mIHByb3BlcnR5IGdyYXBoIGFsdF9ncmFwaDMKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTjsKK1NFTEVDVCBuc3BuYW1lLCByZWxuYW1lLCByb2xuYW1lCisgIEZST00gcGdfY2xh c3MgYywgcGdfbmFtZXNwYWNlIG4sIHBnX2F1dGhpZCBhCisgIFdIRVJFIGMucmVsbmFtZXNw YWNlID0gbi5vaWQgQU5EIGMucmVsb3duZXIgPSBhLm9pZAorICAgIEFORCBuLm5zcG5hbWUg aW4gKCdhbHRfbnNwMScsICdhbHRfbnNwMicpCisgICAgQU5EIGMucmVsa2luZCA9ICdnJwor ICBPUkRFUiBCWSBuc3BuYW1lLCByZWxuYW1lOworIG5zcG5hbWUgIHwgIHJlbG5hbWUgICB8 ICAgICAgICAgICByb2xuYW1lICAgICAgICAgICAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgYWx0X25zcDEgfCBhbHRfZ3JhcGgy IHwgcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIzCisgYWx0X25zcDEgfCBhbHRfZ3JhcGgz IHwgcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIxCisgYWx0X25zcDEgfCBhbHRfZ3JhcGg2 IHwgcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIyCisgYWx0X25zcDIgfCBhbHRfZ3JhcGgy IHwgcmVncmVzc19hbHRlcl9nZW5lcmljX3VzZXIxCisoNCByb3dzKQorCiAtLQogLS0gU3Rh dGlzdGljcwogLS0KQEAgLTcxMCw3ICs3NTMsNyBAQCBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVz IHRvIHNlcnZlciBhbHRfZnNlcnYzCiBEUk9QIExBTkdVQUdFIGFsdF9sYW5nMiBDQVNDQURF OwogRFJPUCBMQU5HVUFHRSBhbHRfbGFuZzMgQ0FTQ0FERTsKIERST1AgU0NIRU1BIGFsdF9u c3AxIENBU0NBREU7Ci1OT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDI4IG90aGVyIG9iamVj dHMKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMzEgb3RoZXIgb2JqZWN0cwogREVUQUlM OiAgZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBhbHRfZnVuYzMoaW50ZWdlcikKIGRyb3Ag Y2FzY2FkZXMgdG8gZnVuY3Rpb24gYWx0X2FnZzMoaW50ZWdlcikKIGRyb3AgY2FzY2FkZXMg dG8gZnVuY3Rpb24gYWx0X2Z1bmM0KGludGVnZXIpCkBAIC03MjcsNiArNzcwLDkgQEAgZHJv cCBjYXNjYWRlcyB0byBvcGVyYXRvciBmYW1pbHkgYWx0X29wYzEgZm9yIGFjY2VzcyBtZXRo b2QgaGFzaAogZHJvcCBjYXNjYWRlcyB0byBvcGVyYXRvciBmYW1pbHkgYWx0X29wYzIgZm9y IGFjY2VzcyBtZXRob2QgaGFzaAogZHJvcCBjYXNjYWRlcyB0byBvcGVyYXRvciBmYW1pbHkg YWx0X29wZjQgZm9yIGFjY2VzcyBtZXRob2QgaGFzaAogZHJvcCBjYXNjYWRlcyB0byBvcGVy YXRvciBmYW1pbHkgYWx0X29wZjIgZm9yIGFjY2VzcyBtZXRob2QgaGFzaAorZHJvcCBjYXNj YWRlcyB0byBwcm9wZXJ0eSBncmFwaCBhbHRfZ3JhcGgyCitkcm9wIGNhc2NhZGVzIHRvIHBy b3BlcnR5IGdyYXBoIGFsdF9ncmFwaDMKK2Ryb3AgY2FzY2FkZXMgdG8gcHJvcGVydHkgZ3Jh cGggYWx0X2dyYXBoNgogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBhbHRfcmVncmVzc18xCiBk cm9wIGNhc2NhZGVzIHRvIHRhYmxlIGFsdF9yZWdyZXNzXzIKIGRyb3AgY2FzY2FkZXMgdG8g dGV4dCBzZWFyY2ggZGljdGlvbmFyeSBhbHRfdHNfZGljdDMKQEAgLTc0MCwxMiArNzg2LDEz IEBAIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBzZWFyY2ggdGVtcGxhdGUgYWx0X3RzX3RlbXAy CiBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIHBhcnNlciBhbHRfdHNfcHJzMwogZHJv cCBjYXNjYWRlcyB0byB0ZXh0IHNlYXJjaCBwYXJzZXIgYWx0X3RzX3ByczIKIERST1AgU0NI RU1BIGFsdF9uc3AyIENBU0NBREU7Ci1OT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDkgb3Ro ZXIgb2JqZWN0cworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxMCBvdGhlciBvYmplY3Rz CiBERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIGFsdF9uc3AyLmFsdF9mdW5j MihpbnRlZ2VyKQogZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBhbHRfbnNwMi5hbHRfYWdn MihpbnRlZ2VyKQogZHJvcCBjYXNjYWRlcyB0byBjb252ZXJzaW9uIGFsdF9uc3AyLmFsdF9j b252MgogZHJvcCBjYXNjYWRlcyB0byBvcGVyYXRvciBhbHRfbnNwMi5ALUAoaW50ZWdlcixp bnRlZ2VyKQogZHJvcCBjYXNjYWRlcyB0byBvcGVyYXRvciBmYW1pbHkgYWx0X25zcDIuYWx0 X29wZjIgZm9yIGFjY2VzcyBtZXRob2QgaGFzaAorZHJvcCBjYXNjYWRlcyB0byBwcm9wZXJ0 eSBncmFwaCBhbHRfbnNwMi5hbHRfZ3JhcGgyCiBkcm9wIGNhc2NhZGVzIHRvIHRleHQgc2Vh cmNoIGRpY3Rpb25hcnkgYWx0X25zcDIuYWx0X3RzX2RpY3QyCiBkcm9wIGNhc2NhZGVzIHRv IHRleHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24gYWx0X25zcDIuYWx0X3RzX2NvbmYyCiBkcm9w IGNhc2NhZGVzIHRvIHRleHQgc2VhcmNoIHRlbXBsYXRlIGFsdF9uc3AyLmFsdF90c190ZW1w MgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVy dHlfZ3JhcGgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvcGVy dHlfZ3JhcGgub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45 YWQyOGY2ZmMwNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX3Byb3BlcnR5X2dyYXBoLm91dApAQCAtMCwwICsxLDM3MCBAQAorQ1JFQVRF IFNDSEVNQSBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHM7CitHUkFOVCBVU0FHRSBPTiBT Q0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFy Y2hfcGF0aCA9IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0czsKK0NSRUFURSBST0xFIHJl Z3Jlc3NfZ3JhcGhfdXNlcjE7CitDUkVBVEUgUk9MRSByZWdyZXNzX2dyYXBoX3VzZXIyOwor Q1JFQVRFIFBST1BFUlRZIEdSQVBIIGcxOworQ09NTUVOVCBPTiBQUk9QRVJUWSBHUkFQSCBn MSBJUyAnYSBncmFwaCc7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzE7ICAtLSBlcnJvcjog ZHVwbGljYXRlCitFUlJPUjogIHJlbGF0aW9uICJnMSIgYWxyZWFkeSBleGlzdHMKK0NSRUFU RSBUQUJMRSB0MSAoYSBpbnQsIGIgdGV4dCk7CitDUkVBVEUgVEFCTEUgdDIgKGkgaW50IFBS SU1BUlkgS0VZLCBqIGludCwgayBpbnQpOworQ1JFQVRFIFRBQkxFIHQzICh4IGludCwgeSB0 ZXh0LCB6IHRleHQpOworQ1JFQVRFIFRBQkxFIGUxIChhIGludCwgaSBpbnQsIHQgdGV4dCwg UFJJTUFSWSBLRVkgKGEsIGkpKTsKK0NSRUFURSBUQUJMRSBlMiAoYSBpbnQsIHggaW50LCB0 IHRleHQpOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGcyCisgICAgVkVSVEVYIFRBQkxFUyAo dDEgS0VZIChhKSwgdDIgREVGQVVMVCBMQUJFTCwgdDMgS0VZICh4KSBMQUJFTCB0M2wxIExB QkVMIHQzbDIpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMQorICAgICAgICAgICAg U09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkKKyAgICAgICAgICAgIERFU1RJTkFU SU9OIEtFWSAoaSkgUkVGRVJFTkNFUyB0MiAoaSksCisgICAgICAgIGUyIEtFWSAoYSwgeCkK KyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpCisgICAgICAg ICAgICBERVNUSU5BVElPTiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMgKHgsIHkpCisgICAg KTsKKy0tIGxpa2UgZzIgYnV0IGFzc2VtYmxlZCB3aXRoIEFMVEVSCitDUkVBVEUgUFJPUEVS VFkgR1JBUEggZzM7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBBREQgVkVSVEVYIFRBQkxF UyAodDEgS0VZIChhKSwgdDIgREVGQVVMVCBMQUJFTCk7CitBTFRFUiBQUk9QRVJUWSBHUkFQ SCBnMworICAgIEFERCBWRVJURVggVEFCTEVTICh0MyBLRVkgKHgpIExBQkVMIHQzbDEpCisg ICAgQUREIEVER0UgVEFCTEVTICgKKyAgICAgICAgZTEgU09VUkNFIEtFWSAoYSkgUkVGRVJF TkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZIChpKSBSRUZFUkVOQ0VTIHQyIChpKSwKKyAg ICAgICAgZTIgS0VZIChhLCB4KSBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKSBE RVNUSU5BVElPTiBLRVkgKHgsIHQpIFJFRkVSRU5DRVMgdDMgKHgsIHkpCisgICAgKTsKK0FM VEVSIFBST1BFUlRZIEdSQVBIIGczIEFMVEVSIFZFUlRFWCBUQUJMRSB0MyBBREQgTEFCRUwg dDNsMiBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TIEFERCBMQUJFTCB0M2wzIFBST1BFUlRJRVMg QUxMIENPTFVNTlM7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJURVggVEFC TEUgdDMgRFJPUCBMQUJFTCB0M2wzeDsgIC0tIGVycm9yCitFUlJPUjogIHByb3BlcnR5IGdy YXBoICJnMyIgZWxlbWVudCAidDMiIGhhcyBubyBsYWJlbCAidDNsM3giCitBTFRFUiBQUk9Q RVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJURVggVEFCTEUgdDMgRFJPUCBMQUJFTCB0M2wzOwor QUxURVIgUFJPUEVSVFkgR1JBUEggZzMgRFJPUCBWRVJURVggVEFCTEVTICh0Mik7ICAtLSBm YWlsIChUT0RPOiBkdWJpb3VzIGVycm9yIG1lc3NhZ2UpCitFUlJPUjogIGNhbm5vdCBkcm9w IGVsZW1lbnQgdDIgaW4gcHJvcGVydHkgZ3JhcGggZzMgYmVjYXVzZSBvdGhlciBvYmplY3Rz IGRlcGVuZCBvbiBpdAorREVUQUlMOiAgZWxlbWVudCBlMSBpbiBwcm9wZXJ0eSBncmFwaCBn MyBkZXBlbmRzIG9uIGVsZW1lbnQgdDIgaW4gcHJvcGVydHkgZ3JhcGggZzMKK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28u CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBEUk9QIFZFUlRFWCBUQUJMRVMgKHQyKSBDQVND QURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBlbGVtZW50IGUxIGluIHByb3BlcnR5 IGdyYXBoIGczCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBEUk9QIEVER0UgVEFCTEVTIChl Mik7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzQKKyAgICBWRVJURVggVEFCTEVTICgKKyAg ICAgICAgdDEgS0VZIChhKSBOTyBQUk9QRVJUSUVTLAorICAgICAgICB0MiBERUZBVUxUIExB QkVMIFBST1BFUlRJRVMgKGkgKyBqIEFTIGlfaiwgayksCisgICAgICAgIHQzIEtFWSAoeCkg TEFCRUwgdDNsMSBQUk9QRVJUSUVTICh4LCB5IEFTIHl5KSBMQUJFTCB0M2wyIFBST1BFUlRJ RVMgKHgsIHogQVMgenopCisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZTEK KyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpCisgICAgICAg ICAgICBERVNUSU5BVElPTiBLRVkgKGkpIFJFRkVSRU5DRVMgdDIgKGkpCisgICAgICAgICAg ICBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TLAorICAgICAgICBlMiBLRVkgKGEsIHgpCisgICAg ICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAgICAgICAgICAg REVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVOQ0VTIHQzICh4LCB5KQorICAgICAgICAg ICAgUFJPUEVSVElFUyBBTEwgQ09MVU1OUworICAgICk7CitBTFRFUiBQUk9QRVJUWSBHUkFQ SCBnNCBBTFRFUiBWRVJURVggVEFCTEUgdDIgQUxURVIgTEFCRUwgdDIgQUREIFBST1BFUlRJ RVMgKGsgKiAyIEFTIGtrKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGc0IEFMVEVSIFZFUlRF WCBUQUJMRSB0MiBBTFRFUiBMQUJFTCB0MiBEUk9QIFBST1BFUlRJRVMgKGspOworLS0gZXJy b3IgY2FzZXMKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBneCBWRVJURVggVEFCTEVTICh4eCwg eXkpOworRVJST1I6ICByZWxhdGlvbiAieHgiIGRvZXMgbm90IGV4aXN0CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgS0VZIChpKSwg dDEgS0VZIChhKSk7CitFUlJPUjogIGFsaWFzICJ0MSIgdXNlZCBtb3JlIHRoYW4gb25jZSBh cyBlbGVtZW50IHRhYmxlCitMSU5FIDE6IC4uLlkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAo dDEgS0VZIChhKSwgdDIgS0VZIChpKSwgdDEgS0VZIChhKS4uLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0NSRUFU RSBQUk9QRVJUWSBHUkFQSCBneAorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEFTIHR0IEtFWSAo YSksIHQyIEtFWSAoaSkpCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBTT1VSQ0Ug dDEgREVTVElOQVRJT04gdDIKKyAgICApOworRVJST1I6ICBzb3VyY2UgdmVydGV4ICJ0MSIg b2YgZWRnZSAiZTEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDQ6ICAgICAgICAgZTEgU09VUkNF IHQxIERFU1RJTkFUSU9OIHQyCisgICAgICAgICAgICAgICAgXgorQ1JFQVRFIFBST1BFUlRZ IEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgS0VZIChpKSkK KyAgICBFREdFIFRBQkxFUyAoCisgICAgICAgIGUxIFNPVVJDRSB0MSBERVNUSU5BVElPTiB0 eAorICAgICk7CitFUlJPUjogIGRlc3RpbmF0aW9uIHZlcnRleCAidHgiIG9mIGVkZ2UgImUx IiBkb2VzIG5vdCBleGlzdAorTElORSA0OiAgICAgICAgIGUxIFNPVVJDRSB0MSBERVNUSU5B VElPTiB0eAorICAgICAgICAgICAgICAgIF4KK0NPTU1FTlQgT04gUFJPUEVSVFkgR1JBUEgg Z3ggSVMgJ25vdCBhIGdyYXBoJzsKK0VSUk9SOiAgcmVsYXRpb24gImd4IiBkb2VzIG5vdCBl eGlzdAorQUxURVIgUFJPUEVSVFkgR1JBUEggZzEgT1dORVIgVE8gcmVncmVzc19ncmFwaF91 c2VyMTsKK1NFVCBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjE7CitHUkFOVCBTRUxFQ1QgT04g UFJPUEVSVFkgR1JBUEggZzEgVE8gcmVncmVzc19ncmFwaF91c2VyMjsKK0dSQU5UIFVQREFU RSBPTiBQUk9QRVJUWSBHUkFQSCBnMSBUTyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFp bAorRVJST1I6ICBpbnZhbGlkIHByaXZpbGVnZSB0eXBlIFVQREFURSBmb3IgcHJvcGVydHkg Z3JhcGgKK1JFU0VUIFJPTEU7CistLSBpbmZvcm1hdGlvbiBzY2hlbWEKK1NFTEVDVCAqIEZS T00gaW5mb3JtYXRpb25fc2NoZW1hLnByb3BlcnR5X2dyYXBocyBPUkRFUiBCWSBwcm9wZXJ0 eV9ncmFwaF9uYW1lOworIHByb3BlcnR5X2dyYXBoX2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9n cmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9ncmFwaF9uYW1lIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMworIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNAorKDQgcm93cykKKworU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZXMgT1JERVIgQlkgcHJv cGVydHlfZ3JhcGhfbmFtZSwgZWxlbWVudF90YWJsZV9hbGlhczsKKyBwcm9wZXJ0eV9ncmFw aF9jYXRhbG9nIHwgICAgcHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3Jh cGhfbmFtZSB8IGVsZW1lbnRfdGFibGVfYWxpYXMgfCBlbGVtZW50X3RhYmxlX2tpbmQgfCB0 YWJsZV9jYXRhbG9nIHwgICAgICAgIHRhYmxlX3NjaGVtYSAgICAgICAgIHwgdGFibGVfbmFt ZSB8IGVsZW1lbnRfdGFibGVfZGVmaW5pdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAg ICAgICAgICAgICAgfCBFREdFICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZTEgICAgICAgICB8IAorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICAgICB8IEVER0UgICAgICAgICAgICAgICB8 IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBlMiAgICAg ICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgIHwg VkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IHQxICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQy ICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNzaW9uICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDIgICAgICAgICB8IAorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAg ICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IFZFUlRFWCAgICAgICAg ICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCB0 MyAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAg ICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IHQxICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAg ICB8IHQzICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDMgICAgICAgICB8IAor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnNCAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8IEVER0UgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBlMSAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAg ICAgICAgICAgIHwgRURHRSAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGUyICAgICAgICAgfCAKKyByZWdyZXNzaW9uICAg ICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAg ICAgICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBWRVJURVggICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgdDEgICAgICAg ICB8IAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IFZF UlRFWCAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCB0MiAgICAgICAgIHwgCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MyAg ICAgICAgICAgICAgICAgIHwgVkVSVEVYICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IHQzICAgICAgICAgfCAKKygxMiByb3dz KQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxl X2tleV9jb2x1bW5zIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFi bGVfYWxpYXMsIG9yZGluYWxfcG9zaXRpb247CisgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8 ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBl bGVtZW50X3RhYmxlX2FsaWFzIHwgY29sdW1uX25hbWUgfCBvcmRpbmFsX3Bvc2l0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAg ICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIg ICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAg ICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAg ICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAg ICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8 IHQxICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzMgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUxICAg ICAgICAgICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQg ICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAg ICAgICAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAg ICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAg ICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAg ICAgICB8IHQyICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICB8ICAgICAgICAgICAg ICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKygxNiByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lZGdlX3RhYmxlX2NvbXBvbmVudHMgT1JERVIg QlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgZWRnZV90YWJsZV9hbGlhcywgZWRnZV9lbmQgREVT Qywgb3JkaW5hbF9wb3NpdGlvbjsKKyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAgcHJv cGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IGVkZ2VfdGFi bGVfYWxpYXMgfCB2ZXJ0ZXhfdGFibGVfYWxpYXMgfCAgZWRnZV9lbmQgICB8IGVkZ2VfdGFi bGVfY29sdW1uX25hbWUgfCB2ZXJ0ZXhfdGFibGVfY29sdW1uX25hbWUgfCBvcmRpbmFsX3Bv c2l0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcy ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAgICAg ICAgIHwgU09VUkNFICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAg ICAgIHwgZTEgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAgICB8IERFU1RJTkFU SU9OIHwgaSAgICAgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAg ICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgfCBTT1VSQ0UgICAgICB8IGEgICAgICAg ICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgICAgICAgIHwgdDMg ICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCB4ICAgICAgICAgICAgICAgICAgICAg IHwgeCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgMQorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAg ICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAg ICB8IERFU1RJTkFUSU9OIHwgdCAgICAgICAgICAgICAgICAgICAgICB8IHkgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDIKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAg ICB8IGUxICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAgICAgfCBTT1VSQ0UgICAg ICB8IGEgICAgICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9w cm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAg ICAgICAgIHwgdDIgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04gfCBpICAgICAgICAg ICAgICAgICAgICAgIHwgaSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICAgICAgICB8IHQxICAg ICAgICAgICAgICAgICB8IFNPVVJDRSAgICAgIHwgYSAgICAgICAgICAgICAgICAgICAgICB8 IGEgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAg ICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAg fCBERVNUSU5BVElPTiB8IHggICAgICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAxCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAg fCBlMiAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAgICAgIHwgREVTVElOQVRJT04g fCB0ICAgICAgICAgICAgICAgICAgICAgIHwgeSAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgMgorKDEwIHJvd3MpCisKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRp b25fc2NoZW1hLnBnX2VsZW1lbnRfdGFibGVfbGFiZWxzIE9SREVSIEJZIHByb3BlcnR5X2dy YXBoX25hbWUsIGVsZW1lbnRfdGFibGVfYWxpYXMsIGxhYmVsX25hbWU7CisgcHJvcGVydHlf Z3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5 X2dyYXBoX25hbWUgfCBlbGVtZW50X3RhYmxlX2FsaWFzIHwgbGFiZWxfbmFtZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8IGUxCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcy ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgICAgICAgICAgIHwgZTIKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAg ICAgICAgICAgICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCB0MQorIHJlZ3Jlc3Npb24g ICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAg ICAgICAgICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IHQyCisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAg ICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgdDNsMQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAg ICAgIHwgdDMgICAgICAgICAgICAgICAgICB8IHQzbDIKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAg ICB8IHQxICAgICAgICAgICAgICAgICAgfCB0MQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwg dDMgICAgICAgICAgICAgICAgICB8IHQzbDEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQz ICAgICAgICAgICAgICAgICAgfCB0M2wyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAg ICAgICAgICAgICAgICAgIHwgZTEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyICAgICAg ICAgICAgICAgICAgfCBlMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJv cGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAg ICAgICAgICB8IHQxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAgICAg ICAgIHwgdDIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAg fCB0M2wxCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwg dDNsMgorKDE1IHJvd3MpCisKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBn X2VsZW1lbnRfdGFibGVfcHJvcGVydGllcyBPUkRFUiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1l LCBlbGVtZW50X3RhYmxlX2FsaWFzLCBwcm9wZXJ0eV9uYW1lOworIHByb3BlcnR5X2dyYXBo X2NhdGFsb2cgfCAgICBwcm9wZXJ0eV9ncmFwaF9zY2hlbWEgICAgfCBwcm9wZXJ0eV9ncmFw aF9uYW1lIHwgZWxlbWVudF90YWJsZV9hbGlhcyB8IHByb3BlcnR5X25hbWUgfCBwcm9wZXJ0 eV9leHByZXNzaW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAg ICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBh CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgaSAgICAg ICAgICAgICB8IGkKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAg ICAgfCB0ICAgICAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAg ICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAg ICAgfCBlMiAgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IHQKKyByZWdyZXNz aW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAg ICAgICAgICAgICAgICB8IGUyICAgICAgICAgICAgICAgICAgfCB4ICAgICAgICAgICAgIHwg eAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAgICAgICAgICB8IGEgICAg ICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0 eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MSAgICAgICAgICAgICAg ICAgIHwgYiAgICAgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQyICAg ICAgICAgICAgICAgICAgfCBpICAgICAgICAgICAgIHwgaQorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAg ICAgIHwgdDIgICAgICAgICAgICAgICAgICB8IGogICAgICAgICAgICAgfCBqCisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAgICAgICAgIHwgayAgICAgICAgICAgICB8 IGsKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rl c3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB4ICAg ICAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDMgICAgICAgICAgICAg ICAgICB8IHkgICAgICAgICAgICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNy ZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MyAg ICAgICAgICAgICAgICAgIHwgeiAgICAgICAgICAgICB8IHoKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAg ICAgICB8IHQxICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgIHwgYQorIHJlZ3Jl c3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAg ICAgICAgICAgICAgICAgIHwgdDEgICAgICAgICAgICAgICAgICB8IGIgICAgICAgICAgICAg fCBiCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgeCAg ICAgICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAg ICAgICAgfCB5ICAgICAgICAgICAgIHwgeQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgdDMg ICAgICAgICAgICAgICAgICB8IHogICAgICAgICAgICAgfCB6CisgcmVncmVzc2lvbiAgICAg ICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAg ICAgICAgfCBlMSAgICAgICAgICAgICAgICAgIHwgYSAgICAgICAgICAgICB8IGEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQg ICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgICAgICAgICAgfCBpICAgICAgICAgICAg IHwgaQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICAgICAgICAgICB8IHQg ICAgICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMiAgICAgICAgICAg ICAgICAgIHwgYSAgICAgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwg Y3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUy ICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAg ICAgICAgIHwgZTIgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAgfCB4CisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0 ICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgICAgICAgICAgIHwgaV9qICAgICAgICAg ICB8IChpICsgaikKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IHQyICAgICAgICAgICAgICAg ICAgfCBrayAgICAgICAgICAgIHwgKGsgKiAyKQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAg fCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwg dDMgICAgICAgICAgICAgICAgICB8IHggICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAg ICAgICAgICAgfCB0MyAgICAgICAgICAgICAgICAgIHwgeXkgICAgICAgICAgICB8IHkKKyBy ZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwg ZzQgICAgICAgICAgICAgICAgICB8IHQzICAgICAgICAgICAgICAgICAgfCB6eiAgICAgICAg ICAgIHwgegorKDMwIHJvd3MpCisKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1h LnBnX2xhYmVsX3Byb3BlcnRpZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgbGFi ZWxfbmFtZSwgcHJvcGVydHlfbmFtZTsKKyBwcm9wZXJ0eV9ncmFwaF9jYXRhbG9nIHwgICAg cHJvcGVydHlfZ3JhcGhfc2NoZW1hICAgIHwgcHJvcGVydHlfZ3JhcGhfbmFtZSB8IGxhYmVs X25hbWUgfCBwcm9wZXJ0eV9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCBlMSAgICAg ICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICB8IGkKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIg ICAgICAgICAgICAgICAgICB8IGUxICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAg ICAgfCBlMiAgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAg ICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgfCB4CisgcmVncmVz c2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAg ICAgICAgICAgICAgICAgfCB0MSAgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAg IHwgdDEgICAgICAgICB8IGIKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3By b3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHQyICAgICAgICAg fCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90 ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0MiAgICAgICAgIHwgagorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAg ICAgICAgICAgICAgIHwgdDIgICAgICAgICB8IGsKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8 IHQzbDEgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwg eQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVz dHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDNsMSAgICAgICB8IHoKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAg ICAgICAgICAgICB8IHQzbDIgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0 M2wyICAgICAgIHwgeQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVy dHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDNsMiAgICAgICB8IHoK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzMgICAgICAgICAgICAgICAgICB8IHQxICAgICAgICAgfCBhCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAg ICAgICAgICAgfCB0MSAgICAgICAgIHwgYgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgdDNs MSAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzbDEgICAgICAgfCB5Cisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGczICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgegorIHJlZ3Jlc3Npb24gICAg ICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAg ICAgICAgIHwgdDNsMiAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAgICB8IHQzbDIg ICAgICAgfCB5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0M2wyICAgICAgIHwgegorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NCAgICAgICAgICAgICAgICAgIHwgZTEgICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAg ICAgICB8IGUxICAgICAgICAgfCBpCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBlMSAgICAg ICAgIHwgdAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgZTIgICAgICAgICB8IGEKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQg ICAgICAgICAgICAgICAgICB8IGUyICAgICAgICAgfCB0CisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAg ICAgfCBlMiAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAg ICB8IGlfagorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIgICAgICAgICB8IGtrCisgcmVn cmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0 ICAgICAgICAgICAgICAgICAgfCB0M2wxICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAg ICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAg ICAgIHwgdDNsMSAgICAgICB8IHl5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB0M2wyICAg ICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDNsMiAgICAgICB8IHp6CisoMzcg cm93cykKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfbGFiZWxzIE9S REVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGxhYmVsX25hbWU7CisgcHJvcGVydHlfZ3Jh cGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dy YXBoX25hbWUgfCBsYWJlbF9uYW1lIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBo X3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGUxCisgcmVncmVzc2lvbiAgICAgICAg ICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAg ICAgfCBlMgorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgdDEKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAg ICAgICB8IHQyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0M2wxCisgcmVncmVzc2lvbiAg ICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAg ICAgICAgICAgfCB0M2wyCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB0MQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAg ICAgICAgICAgICAgIHwgdDNsMQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgdDNsMgorIHJl Z3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBn NCAgICAgICAgICAgICAgICAgIHwgZTEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGUyCisg cmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8 IGc0ICAgICAgICAgICAgICAgICAgfCB0MQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBj cmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgdDIK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzQgICAgICAgICAgICAgICAgICB8IHQzbDEKKyByZWdyZXNzaW9uICAgICAgICAgICAg IHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8 IHQzbDIKKygxNSByb3dzKQorCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5w Z19wcm9wZXJ0eV9kYXRhX3R5cGVzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIHBy b3BlcnR5X25hbWU7CisgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dy YXBoX3NjaGVtYSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBwcm9wZXJ0eV9uYW1lIHwg ZGF0YV90eXBlIHwgY2hhcmFjdGVyX21heGltdW1fbGVuZ3RoIHwgY2hhcmFjdGVyX29jdGV0 X2xlbmd0aCB8IGNoYXJhY3Rlcl9zZXRfY2F0YWxvZyB8IGNoYXJhY3Rlcl9zZXRfc2NoZW1h IHwgY2hhcmFjdGVyX3NldF9uYW1lIHwgY29sbGF0aW9uX2NhdGFsb2cgfCBjb2xsYXRpb25f c2NoZW1hIHwgY29sbGF0aW9uX25hbWUgfCBudW1lcmljX3ByZWNpc2lvbiB8IG51bWVyaWNf cHJlY2lzaW9uX3JhZGl4IHwgbnVtZXJpY19zY2FsZSB8IGRhdGV0aW1lX3ByZWNpc2lvbiB8 IGludGVydmFsX3R5cGUgfCBpbnRlcnZhbF9wcmVjaXNpb24gfCB1c2VyX2RlZmluZWRfdHlw ZV9jYXRhbG9nIHwgdXNlcl9kZWZpbmVkX3R5cGVfc2NoZW1hIHwgdXNlcl9kZWZpbmVkX3R5 cGVfbmFtZSB8IHNjb3BlX2NhdGFsb2cgfCBzY29wZV9zY2hlbWEgfCBzY29wZV9uYW1lIHwg bWF4aW11bV9jYXJkaW5hbGl0eSB8IGR0ZF9pZGVudGlmaWVyIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dy YXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRl Z2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAg ICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAgIHwgYiAgICAgICAg ICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lv biAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBiCisgcmVncmVzc2lvbiAgICAgICAgICAg ICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAg fCBpICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAg IHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IGkKKyByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAg ICAgICAgICAgICB8IGogICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAg ICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgagor IHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMg fCBnMiAgICAgICAgICAgICAgICAgIHwgayAgICAgICAgICAgICB8IGludGVnZXIgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBn X2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgfCBrCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9n cmFwaF90ZXN0cyB8IGcyICAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdGV4 dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAg ICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICB8IHQKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRl X3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzIgICAgICAgICAgICAgICAgICB8IHggICAgICAg ICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Np b24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeAorIHJlZ3Jlc3Npb24gICAgICAgICAg ICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMiAgICAgICAgICAgICAgICAg IHwgeSAgICAgICAgICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAg ICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB5CisgcmVncmVzc2lv biAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcyICAgICAg ICAgICAgICAgICAgfCB6ICAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAg ICAgICAgICAgICAgIHwgdGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHoK KyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3Rz IHwgZzMgICAgICAgICAgICAgICAgICB8IGEgICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBw Z19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHwgYQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlf Z3JhcGhfdGVzdHMgfCBnMyAgICAgICAgICAgICAgICAgIHwgYiAgICAgICAgICAgICB8IHRl eHQgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAg ICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgfCBiCisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGczICAgICAgICAgICAgICAgICAgfCB4ICAgICAg ICAgICAgIHwgaW50ZWdlciAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNz aW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHgKKyByZWdyZXNzaW9uICAgICAgICAg ICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzMgICAgICAgICAgICAgICAg ICB8IHkgICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAg ICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgeQorIHJlZ3Jlc3Np b24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnMyAgICAg ICAgICAgICAgICAgIHwgeiAgICAgICAgICAgICB8IHRleHQgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cg ICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCB6 CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0 cyB8IGc0ICAgICAgICAgICAgICAgICAgfCBhICAgICAgICAgICAgIHwgaW50ZWdlciAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwg cGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgaW50NCAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICB8IGEKKyByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5 X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAgICAgICB8IGkgICAgICAgICAgICAgfCBp bnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAg ICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAgICAgICAgfCBpbnQ0ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHwgaQorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVh dGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgaV9qICAg ICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVz c2lvbiAgICAgICAgICAgICAgICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCBpX2oKKyByZWdyZXNzaW9uICAgICAg ICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQgICAgICAgICAgICAg ICAgICB8IGtrICAgICAgICAgICAgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRhbG9nICAgICAgICAg ICAgICAgfCBpbnQ0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwga2sKKyByZWdy ZXNzaW9uICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzQg ICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ZXh0ICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3Npb24gICAgICAgICAgICAgICAgfCBwZ19jYXRh bG9nICAgICAgICAgICAgICAgfCB0ZXh0ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg IHwgdAorIHJlZ3Jlc3Npb24gICAgICAgICAgICAgfCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhf dGVzdHMgfCBnNCAgICAgICAgICAgICAgICAgIHwgeCAgICAgICAgICAgICB8IGludGVnZXIg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc2lvbiAgICAgICAgICAgICAg ICB8IHBnX2NhdGFsb2cgICAgICAgICAgICAgICB8IGludDQgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgfCB4CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8IGNyZWF0ZV9wcm9w ZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB5eSAgICAgICAgICAg IHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzaW9uICAg ICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwgdGV4dCAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICB8IHl5CisgcmVncmVzc2lvbiAgICAgICAgICAgICB8 IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGc0ICAgICAgICAgICAgICAgICAgfCB6 eiAgICAgICAgICAgIHwgdGV4dCAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBy ZWdyZXNzaW9uICAgICAgICAgICAgICAgIHwgcGdfY2F0YWxvZyAgICAgICAgICAgICAgIHwg dGV4dCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8IHp6CisoMjIgcm93cykKKwor U0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfcHJvcGVydHlfZ3JhcGhfcHJp dmlsZWdlcyBXSEVSRSBncmFudGVlIExJS0UgJ3JlZ3Jlc3MlJyBPUkRFUiBCWSBwcm9wZXJ0 eV9ncmFwaF9uYW1lOworICAgICAgIGdyYW50b3IgICAgICAgfCAgICAgICBncmFudGVlICAg ICAgIHwgcHJvcGVydHlfZ3JhcGhfY2F0YWxvZyB8ICAgIHByb3BlcnR5X2dyYXBoX3NjaGVt YSAgICB8IHByb3BlcnR5X2dyYXBoX25hbWUgfCBwcml2aWxlZ2VfdHlwZSB8IGlzX2dyYW50 YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisg cmVncmVzc19ncmFwaF91c2VyMSB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjEgfCByZWdyZXNzaW9u ICAgICAgICAgICAgIHwgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzEgICAgICAg ICAgICAgICAgICB8IFNFTEVDVCAgICAgICAgIHwgWUVTCisgcmVncmVzc19ncmFwaF91c2Vy MSB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjIgfCByZWdyZXNzaW9uICAgICAgICAgICAgIHwgY3Jl YXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzIHwgZzEgICAgICAgICAgICAgICAgICB8IFNFTEVD VCAgICAgICAgIHwgTk8KKygyIHJvd3MpCisKK1xhXHQKK1NFTEVDVCBwZ19nZXRfcHJvcGdy YXBoZGVmKCdnMic6OnJlZ2NsYXNzKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBjcmVhdGVf cHJvcGVydHlfZ3JhcGhfdGVzdHMuZzIKKyAgICBWRVJURVggVEFCTEVTICgKKyAgICAgICAg dDEgS0VZIChhKSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAgdDIgS0VZIChpKSBQUk9Q RVJUSUVTIChpLCBqLCBrKSwKKyAgICAgICAgdDMgS0VZICh4KSBMQUJFTCB0M2wxIFBST1BF UlRJRVMgKHgsIHksIHopIExBQkVMIHQzbDIgUFJPUEVSVElFUyAoeCwgeSwgeikKKyAgICAp CisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBLRVkgKGEsIGkpIFNPVVJDRSBLRVkg KGEpIFJFRkVSRU5DRVMgdDEgKGEpIERFU1RJTkFUSU9OIEtFWSAoaSkgUkVGRVJFTkNFUyB0 MiAoaSkgUFJPUEVSVElFUyAoYSwgaSwgdCksCisgICAgICAgIGUyIEtFWSAoYSwgeCkgU09V UkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJT04gS0VZICh4LCB0KSBS RUZFUkVOQ0VTIHQzICh4LCB5KSBQUk9QRVJUSUVTIChhLCB0LCB4KQorICAgICkKK1NFTEVD VCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdnMyc6OnJlZ2NsYXNzKTsKK0NSRUFURSBQUk9QRVJU WSBHUkFQSCBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzMKKyAgICBWRVJURVggVEFC TEVTICgKKyAgICAgICAgdDEgS0VZIChhKSBQUk9QRVJUSUVTIChhLCBiKSwKKyAgICAgICAg dDMgS0VZICh4KSBMQUJFTCB0M2wxIFBST1BFUlRJRVMgKHgsIHksIHopIExBQkVMIHQzbDIg UFJPUEVSVElFUyAoeCwgeSwgeikKKyAgICApCitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRl ZignZzQnOjpyZWdjbGFzcyk7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggY3JlYXRlX3Byb3Bl cnR5X2dyYXBoX3Rlc3RzLmc0CisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHQxIEtF WSAoYSkgTk8gUFJPUEVSVElFUywKKyAgICAgICAgdDIgS0VZIChpKSBQUk9QRVJUSUVTICgo aSArIGopIEFTIGlfaiwgKGsgKiAyKSBBUyBrayksCisgICAgICAgIHQzIEtFWSAoeCkgTEFC RUwgdDNsMSBQUk9QRVJUSUVTICh4LCB5IEFTIHl5KSBMQUJFTCB0M2wyIFBST1BFUlRJRVMg KHgsIHogQVMgenopCisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZTEgS0VZ IChhLCBpKSBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKSBERVNUSU5BVElPTiBL RVkgKGkpIFJFRkVSRU5DRVMgdDIgKGkpIFBST1BFUlRJRVMgKGEsIGksIHQpLAorICAgICAg ICBlMiBLRVkgKGEsIHgpIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpIERFU1RJ TkFUSU9OIEtFWSAoeCwgdCkgUkVGRVJFTkNFUyB0MyAoeCwgeSkgUFJPUEVSVElFUyAoYSwg dCwgeCkKKyAgICApCitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZigncGdfdHlwZSc6OnJl Z2NsYXNzKTsgIC0tIGVycm9yCitFUlJPUjogICJwZ190eXBlIiBpcyBub3QgYSBwcm9wZXJ0 eSBncmFwaAorXGFcdAorXGRHIGcxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgcmVsYXRpb25zCisgICAgICAgICAgIFNjaGVtYSAgICAgICAgICAgIHwgTmFtZSB8 ICAgICAgVHlwZSAgICAgIHwgICAgICAgIE93bmVyICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyB8IGcxICAgfCBwcm9wZXJ0 eSBncmFwaCB8IHJlZ3Jlc3NfZ3JhcGhfdXNlcjEKKygxIHJvdykKKworLS0gVE9ETworXGQg ZzEKK1Byb3BlcnR5IGdyYXBoICJjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEiCisg Q29sdW1uIHwgVHlwZSAKKy0tLS0tLS0tKy0tLS0tLQorCitcZCsgZzEKK1Byb3BlcnR5IGdy YXBoICJjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHMuZzEiCisgQ29sdW1uIHwgVHlwZSB8 IFN0b3JhZ2UgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tCitQcm9wZXJ0eSBncmFwaCBk ZWZpbml0aW9uOgorIENSRUFURSBQUk9QRVJUWSBHUkFQSCBjcmVhdGVfcHJvcGVydHlfZ3Jh cGhfdGVzdHMuZzEKKworRFJPUCBUQUJMRSBnMjsgIC0tIGVycm9yOiB3cm9uZyBvYmplY3Qg dHlwZQorRVJST1I6ICAiZzIiIGlzIG5vdCBhIHRhYmxlCitISU5UOiAgVXNlIERST1AgUFJP UEVSVFkgR1JBUEggdG8gcmVtb3ZlIGEgcHJvcGVydHkgZ3JhcGguCitEUk9QIFBST1BFUlRZ IEdSQVBIIGcxOworRFJPUCBQUk9QRVJUWSBHUkFQSCBnMTsgIC0tIGVycm9yOiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBwcm9wZXJ0eSBncmFwaCAiZzEiIGRvZXMgbm90IGV4aXN0CitE Uk9QIFBST1BFUlRZIEdSQVBIIElGIEVYSVNUUyBnMTsKK05PVElDRTogIHByb3BlcnR5IGdy YXBoICJnMSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCistLSBsZWF2ZSBmb3IgcGdfdXBn cmFkZS9wZ19kdW1wIHRlc3RzCistLURST1AgU0NIRU1BIGNyZWF0ZV9wcm9wZXJ0eV9ncmFw aF90ZXN0cyBDQVNDQURFOworRFJPUCBST0xFIHJlZ3Jlc3NfZ3JhcGhfdXNlcjEsIHJlZ3Jl c3NfZ3JhcGhfdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2dyYXBoX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3JhcGhfdGFi bGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMjJiYTA5 MWE3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ3Jh cGhfdGFibGUub3V0CkBAIC0wLDAgKzEsMTIyIEBACitDUkVBVEUgU0NIRU1BIGdyYXBoX3Rh YmxlX3Rlc3RzOworR1JBTlQgVVNBR0UgT04gU0NIRU1BIGdyYXBoX3RhYmxlX3Rlc3RzIFRP IFBVQkxJQzsKK1NFVCBzZWFyY2hfcGF0aCA9IGdyYXBoX3RhYmxlX3Rlc3RzOworQ1JFQVRF IFRBQkxFIHByb2R1Y3RzICgKKyAgICBwcm9kdWN0X25vIGludGVnZXIgUFJJTUFSWSBLRVks CisgICAgbmFtZSB2YXJjaGFyLAorICAgIHByaWNlIG51bWVyaWMKKyk7CitDUkVBVEUgVEFC TEUgY3VzdG9tZXJzICgKKyAgICBjdXN0b21lcl9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAor ICAgIG5hbWUgdmFyY2hhciwKKyAgICBhZGRyZXNzIHZhcmNoYXIKKyk7CitDUkVBVEUgVEFC TEUgb3JkZXJzICgKKyAgICBvcmRlcl9pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG9y ZGVyZWRfd2hlbiBkYXRlCispOworQ1JFQVRFIFRBQkxFIG9yZGVyX2l0ZW1zICgKKyAgICBv cmRlcl9pdGVtc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG9yZGVyX2lkIGludGVn ZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKSwKKyAgICBwcm9kdWN0X25vIGludGVn ZXIgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubyksCisgICAgcXVhbnRpdHkgaW50 ZWdlcgorKTsKK0NSRUFURSBUQUJMRSBjdXN0b21lcl9vcmRlcnMgKAorICAgIGN1c3RvbWVy X29yZGVyc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIGN1c3RvbWVyX2lkIGludGVn ZXIgUkVGRVJFTkNFUyBjdXN0b21lcnMgKGN1c3RvbWVyX2lkKSwKKyAgICBvcmRlcl9pZCBp bnRlZ2VyIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRlcl9pZCkKKyk7CitDUkVBVEUgUFJPUEVS VFkgR1JBUEggbXlzaG9wCisgICAgVkVSVEVYIFRBQkxFUyAoCisgICAgICAgIHByb2R1Y3Rz LAorICAgICAgICBjdXN0b21lcnMsCisgICAgICAgIG9yZGVycworICAgICkKKyAgICBFREdF IFRBQkxFUyAoCisgICAgICAgIG9yZGVyX2l0ZW1zIEtFWSAob3JkZXJfaXRlbXNfaWQpCisg ICAgICAgICAgICBTT1VSQ0UgS0VZIChvcmRlcl9pZCkgUkVGRVJFTkNFUyBvcmRlcnMgKG9y ZGVyX2lkKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZIChwcm9kdWN0X25vKSBSRUZF UkVOQ0VTIHByb2R1Y3RzIChwcm9kdWN0X25vKSwKKyAgICAgICAgY3VzdG9tZXJfb3JkZXJz IEtFWSAoY3VzdG9tZXJfb3JkZXJzX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAoY3Vz dG9tZXJfaWQpIFJFRkVSRU5DRVMgY3VzdG9tZXJzIChjdXN0b21lcl9pZCkKKyAgICAgICAg ICAgIERFU1RJTkFUSU9OIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5DRVMgb3JkZXJzIChvcmRl cl9pZCkKKyAgICApOworU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAo eHh4IE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMg Y3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3Vz dG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK0VSUk9SOiAgcmVsYXRpb24gInh4eCIgZG9lcyBu b3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJM RSAoeHh4IE1BVENIIChjIElTIGN1c3RvLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JB UEhfVEFCTEUgKHBnX2NsYXNzIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJl c3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5T IChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK0VSUk9SOiAgInBnX2Ns YXNzIiBpcyBub3QgYSBwcm9wZXJ0eSBncmFwaAorTElORSAxOiBTRUxFQ1QgY3VzdG9tZXJf bmFtZSBGUk9NIEdSQVBIX1RBQkxFIChwZ19jbGFzcyBNQVRDSCAoYyBJUyAuLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIGN1 c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3Rv bWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8g SVMgb3JkZXJzKSBDT0xVTU5TIChjeC5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsgIC0tIGVy cm9yCitFUlJPUjogIGdyYXBoIHBhdHRlcm4gdmFyaWFibGUgImN4IiBkb2VzIG5vdCBleGlz dAorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENI IChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJf b3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWV4IEFTIGN1c3RvbWVyX25h bWUpKTsgIC0tIGVycm9yCitFUlJPUjogIHByb3BlcnR5ICJuYW1leCIgZG9lcyBub3QgZXhp c3QKK0lOU0VSVCBJTlRPIHByb2R1Y3RzIFZBTFVFUworICAgICgxLCAncHJvZHVjdDEnLCAx MCksCisgICAgKDIsICdwcm9kdWN0MicsIDIwKSwKKyAgICAoMywgJ3Byb2R1Y3QzJywgMzAp OworSU5TRVJUIElOVE8gY3VzdG9tZXJzIFZBTFVFUworICAgICgxLCAnY3VzdG9tZXIxJywg J1VTJyksCisgICAgKDIsICdjdXN0b21lcjInLCAnQ0EnKSwKKyAgICAoMywgJ2N1c3RvbWVy MycsICdHTCcpOworSU5TRVJUIElOVE8gb3JkZXJzIFZBTFVFUworICAgICgxLCAnMjAyNC0w MS0wMScpLAorICAgICgyLCAnMjAyNC0wMS0wMicpLAorICAgICgzLCAnMjAyNC0wMS0wMycp OworSU5TRVJUIElOVE8gb3JkZXJfaXRlbXMgKG9yZGVyX2l0ZW1zX2lkLCBvcmRlcl9pZCwg cHJvZHVjdF9ubywgcXVhbnRpdHkpIFZBTFVFUworICAgICgxLCAxLCAxLCA1KSwKKyAgICAo MiwgMSwgMiwgMTApLAorICAgICgzLCAyLCAxLCA3KTsKK0lOU0VSVCBJTlRPIGN1c3RvbWVy X29yZGVycyAoY3VzdG9tZXJfb3JkZXJzX2lkLCBjdXN0b21lcl9pZCwgb3JkZXJfaWQpIFZB TFVFUworICAgICgxLCAxLCAxKSwKKyAgICAoMiwgMiwgMik7CitTRUxFQ1QgKiBGUk9NIEdS QVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKGMgSVMgY3VzdG9tZXJzIFdIRVJFIGMuYWRkcmVz cyA9ICdVUycpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4obyBJUyBvcmRlcnMpIENPTFVNTlMg KGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7CisgY3VzdG9tZXJfbmFtZSAKKy0tLS0tLS0t LS0tLS0tLQorIGN1c3RvbWVyMQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RB QkxFIChteXNob3AgTUFUQ0ggKGM6Y3VzdG9tZXJzKS1bY286Y3VzdG9tZXJfb3JkZXJzXS0+ KG86b3JkZXJzIFdIRVJFIG8ub3JkZXJlZF93aGVuID0gJzIwMjQtMDEtMDInKSBDT0xVTU5T IChjLm5hbWUsIGMuYWRkcmVzcykpOworICAgbmFtZSAgICB8IGFkZHJlc3MgCistLS0tLS0t LS0tLSstLS0tLS0tLS0KKyBjdXN0b21lcjIgfCBDQQorKDEgcm93KQorCitTRUxFQ1QgKiBG Uk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKG8gSVMgb3JkZXJzKS1bSVMgY3VzdG9t ZXJfb3JkZXJzXS0+KGMgSVMgY3VzdG9tZXJzKSBDT0xVTU5TIChjLm5hbWUsIG8ub3JkZXJl ZF93aGVuKSk7CisgbmFtZSB8IG9yZGVyZWRfd2hlbiAKKy0tLS0tLSstLS0tLS0tLS0tLS0t LQorKDAgcm93cykKKworU0VMRUNUICogRlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENI IChvIElTIG9yZGVycyk8LVtJUyBjdXN0b21lcl9vcmRlcnNdLShjIElTIGN1c3RvbWVycykg Q09MVU1OUyAoYy5uYW1lLCBvLm9yZGVyZWRfd2hlbikpOworICAgbmFtZSAgICB8IG9yZGVy ZWRfd2hlbiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgY3VzdG9tZXIxIHwgMDEt MDEtMjAyNAorIGN1c3RvbWVyMiB8IDAxLTAyLTIwMjQKKygyIHJvd3MpCisKKy0tIFRPRE86 IHNob3VsZCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoaXMgcXVlcnk6CitTRVQgZGVidWdfcHJp bnRfcGFyc2UgPSBvbjsKK1NFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gKAorICAgIFNFTEVD VCBjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZQorICAgIEZST00gY3VzdG9tZXJzIGMsIGN1c3Rv bWVyX29yZGVycyBfY28sIG9yZGVycyBvCisgICAgV0hFUkUgX2NvLmN1c3RvbWVyX2lkID0g Yy5jdXN0b21lcl9pZAorICAgICAgQU5EIF9jby5vcmRlcl9pZCA9IG8ub3JkZXJfaWQKKyAg ICAgIEFORCBjLmFkZHJlc3MgPSAnVVMnCispIG15c2hvcDsKKyBjdXN0b21lcl9uYW1lIAor LS0tLS0tLS0tLS0tLS0tCisgY3VzdG9tZXIxCisoMSByb3cpCisKK1JFU0VUIGRlYnVnX3By aW50X3BhcnNlOworQ1JFQVRFIFZJRVcgY3VzdG9tZXJzX3VzIEFTIFNFTEVDVCBjdXN0b21l cl9uYW1lIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMg V0hFUkUgYy5hZGRyZXNzID0gJ1VTJyktW0lTIGN1c3RvbWVyX29yZGVyc10tPihvIElTIG9y ZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUpKTsKK1NFTEVDVCBwZ19n ZXRfdmlld2RlZignY3VzdG9tZXJzX3VzJzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBTRUxFQ1Qg Y3VzdG9tZXJfbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZS T00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYyBJUyBjdXN0b21lcnMgV0hFUkUgKChj LmFkZHJlc3MpOjp0ZXh0ID0gJ1VTJzo6dGV4dCkpLVtJUyBjdXN0b21lcl9vcmRlcnNdLT4o byBJUyBvcmRlcnMpIENPTFVNTlMgKGMubmFtZSBBUyBjdXN0b21lcl9uYW1lKSk7CisoMSBy b3cpCisKKy0tIGxlYXZlIGZvciBwZ191cGdyYWRlL3BnX2R1bXAgdGVzdHMKKy0tRFJPUCBT Q0hFTUEgZ3JhcGhfdGFibGVfdGVzdHMgQ0FTQ0FERTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKaW5kZXggZmM0MmQ0MThiZjEuLjQzMmJh NDcxZmUzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9h ZGRyZXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRy ZXNzLm91dApAQCAtMzQsNiArMzQsNyBAQCBDUkVBVEUgRlVOQ1RJT04gYWRkcl9uc3AudHJp ZygpIFJFVFVSTlMgVFJJR0dFUiBMQU5HVUFHRSBwbHBnc3FsIEFTICQkIEJFR0lOIEVORAog Q1JFQVRFIFRSSUdHRVIgdCBCRUZPUkUgSU5TRVJUIE9OIGFkZHJfbnNwLmdlbnRhYmxlIEZP UiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBhZGRyX25zcC50cmlnKCk7CiBDUkVBVEUg UE9MSUNZIGdlbnBvbCBPTiBhZGRyX25zcC5nZW50YWJsZTsKIENSRUFURSBQUk9DRURVUkUg YWRkcl9uc3AucHJvYyhpbnQ0KSBMQU5HVUFHRSBTUUwgQVMgJCQgJCQ7CitDUkVBVEUgUFJP UEVSVFkgR1JBUEggYWRkcl9uc3AuZ2VuZ3JhcGg7CiBDUkVBVEUgU0VSVkVSICJpbnRlZ2Vy IiBGT1JFSUdOIERBVEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1BUFBJTkcg Rk9SIHJlZ3Jlc3NfYWRkcl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBERUZBVUxU IFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1BIHB1Ymxp YyBHUkFOVCBBTEwgT04gVEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwpAQCAtOTgsNyAr OTksNyBAQCBERUNMQVJFCiBCRUdJTgogICAgIEZPUiBvYmp0eXBlIElOIFZBTFVFUwogICAg ICAgICAoJ3RhYmxlJyksICgnaW5kZXgnKSwgKCdzZXF1ZW5jZScpLCAoJ3ZpZXcnKSwKLSAg ICAgICAgKCdtYXRlcmlhbGl6ZWQgdmlldycpLCAoJ2ZvcmVpZ24gdGFibGUnKSwKKyAgICAg ICAgKCdtYXRlcmlhbGl6ZWQgdmlldycpLCAoJ2ZvcmVpZ24gdGFibGUnKSwgKCdwcm9wZXJ0 eSBncmFwaCcpLAogICAgICAgICAoJ3RhYmxlIGNvbHVtbicpLCAoJ2ZvcmVpZ24gdGFibGUg Y29sdW1uJyksCiAgICAgICAgICgnYWdncmVnYXRlJyksICgnZnVuY3Rpb24nKSwgKCdwcm9j ZWR1cmUnKSwgKCd0eXBlJyksICgnY2FzdCcpLAogICAgICAgICAoJ3RhYmxlIGNvbnN0cmFp bnQnKSwgKCdkb21haW4gY29uc3RyYWludCcpLCAoJ2NvbnZlcnNpb24nKSwgKCdkZWZhdWx0 IHZhbHVlJyksCkBAIC0xNTksNiArMTYwLDEyIEBAIFdBUk5JTkc6ICBlcnJvciBmb3IgZm9y ZWlnbiB0YWJsZSx7YWRkcl9uc3AsendlaX0se306IHJlbGF0aW9uICJhZGRyX25zcC56d2Vp IiBkCiBXQVJOSU5HOiAgZXJyb3IgZm9yIGZvcmVpZ24gdGFibGUse2FkZHJfbnNwLHp3ZWl9 LHtpbnRlZ2VyfTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWkiIGRvZXMgbm90IGV4aXN0CiBX QVJOSU5HOiAgZXJyb3IgZm9yIGZvcmVpZ24gdGFibGUse2VpbnMsendlaSxkcmVpfSx7fTog Y3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAiZWlucy56 d2VpLmRyZWkiCiBXQVJOSU5HOiAgZXJyb3IgZm9yIGZvcmVpZ24gdGFibGUse2VpbnMsendl aSxkcmVpfSx7aW50ZWdlcn06IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZDogImVpbnMuendlaS5kcmVpIgorV0FSTklORzogIGVycm9yIGZvciBwcm9w ZXJ0eSBncmFwaCx7ZWluc30se306IHJlbGF0aW9uICJlaW5zIiBkb2VzIG5vdCBleGlzdAor V0FSTklORzogIGVycm9yIGZvciBwcm9wZXJ0eSBncmFwaCx7ZWluc30se2ludGVnZXJ9OiBy ZWxhdGlvbiAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgcHJv cGVydHkgZ3JhcGgse2FkZHJfbnNwLHp3ZWl9LHt9OiByZWxhdGlvbiAiYWRkcl9uc3Auendl aSIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgcHJvcGVydHkgZ3JhcGgs e2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWkiIGRv ZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIHByb3BlcnR5IGdyYXBoLHtlaW5z LHp3ZWksZHJlaX0se306IGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZDogImVpbnMuendlaS5kcmVpIgorV0FSTklORzogIGVycm9yIGZvciBwcm9wZXJ0 eSBncmFwaCx7ZWlucyx6d2VpLGRyZWl9LHtpbnRlZ2VyfTogY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAiZWlucy56d2VpLmRyZWkiCiBXQVJOSU5H OiAgZXJyb3IgZm9yIHRhYmxlIGNvbHVtbix7ZWluc30se306IGNvbHVtbiBuYW1lIG11c3Qg YmUgcXVhbGlmaWVkCiBXQVJOSU5HOiAgZXJyb3IgZm9yIHRhYmxlIGNvbHVtbix7ZWluc30s e2ludGVnZXJ9OiBjb2x1bW4gbmFtZSBtdXN0IGJlIHF1YWxpZmllZAogV0FSTklORzogIGVy cm9yIGZvciB0YWJsZSBjb2x1bW4se2FkZHJfbnNwLHp3ZWl9LHt9OiByZWxhdGlvbiAiYWRk cl9uc3AiIGRvZXMgbm90IGV4aXN0CkBAIC0zOTgsNiArNDA1LDcgQEAgV0lUSCBvYmplY3Rz ICh0eXBlLCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCiAgICAgKCd2aWV3JywgJ3thZGRyX25z cCwgZ2Vudmlld30nLCAne30nKSwKICAgICAoJ21hdGVyaWFsaXplZCB2aWV3JywgJ3thZGRy X25zcCwgZ2VubWF0dmlld30nLCAne30nKSwKICAgICAoJ2ZvcmVpZ24gdGFibGUnLCAne2Fk ZHJfbnNwLCBnZW5mdGFibGV9JywgJ3t9JyksCisgICAgKCdwcm9wZXJ0eSBncmFwaCcsICd7 YWRkcl9uc3AsIGdlbmdyYXBofScsICd7fScpLAogICAgICgndGFibGUgY29sdW1uJywgJ3th ZGRyX25zcCwgZ2VudGFibGUsIGJ9JywgJ3t9JyksCiAgICAgKCdmb3JlaWduIHRhYmxlIGNv bHVtbicsICd7YWRkcl9uc3AsIGdlbmZ0YWJsZSwgYX0nLCAne30nKSwKICAgICAoJ2FnZ3Jl Z2F0ZScsICd7YWRkcl9uc3AsIGdlbmFnZ3J9JywgJ3tpbnQ0fScpLApAQCAtNDc0LDYgKzQ4 Miw3IEBAIHZpZXd8YWRkcl9uc3B8Z2Vudmlld3xhZGRyX25zcC5nZW52aWV3fHQKIG1hdGVy aWFsaXplZCB2aWV3fGFkZHJfbnNwfGdlbm1hdHZpZXd8YWRkcl9uc3AuZ2VubWF0dmlld3x0 CiBmb3JlaWduIHRhYmxlfGFkZHJfbnNwfGdlbmZ0YWJsZXxhZGRyX25zcC5nZW5mdGFibGV8 dAogZm9yZWlnbiB0YWJsZSBjb2x1bW58YWRkcl9uc3B8Z2VuZnRhYmxlfGFkZHJfbnNwLmdl bmZ0YWJsZS5hfHQKK3Byb3BlcnR5IGdyYXBofGFkZHJfbnNwfGdlbmdyYXBofGFkZHJfbnNw LmdlbmdyYXBofHQKIHJvbGV8TlVMTHxyZWdyZXNzX2FkZHJfdXNlcnxyZWdyZXNzX2FkZHJf dXNlcnx0CiBzZXJ2ZXJ8TlVMTHxhZGRyX2ZzZXJ2fGFkZHJfZnNlcnZ8dAogdXNlciBtYXBw aW5nfE5VTEx8TlVMTHxyZWdyZXNzX2FkZHJfdXNlciBvbiBzZXJ2ZXIgaW50ZWdlcnx0CkBA IC01MTgsNyArNTI3LDcgQEAgRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1YjsKIERST1AgUFVC TElDQVRJT04gYWRkcl9wdWJfc2NoZW1hOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19h ZGRyX3N1YjsKIERST1AgU0NIRU1BIGFkZHJfbnNwIENBU0NBREU7Ci1OT1RJQ0U6ICBkcm9w IGNhc2NhZGVzIHRvIDE0IG90aGVyIG9iamVjdHMKK05PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gMTUgb3RoZXIgb2JqZWN0cwogREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNl YXJjaCBkaWN0aW9uYXJ5IGFkZHJfdHNfZGljdAogZHJvcCBjYXNjYWRlcyB0byB0ZXh0IHNl YXJjaCBjb25maWd1cmF0aW9uIGFkZHJfdHNfY29uZgogZHJvcCBjYXNjYWRlcyB0byB0ZXh0 IHNlYXJjaCB0ZW1wbGF0ZSBhZGRyX3RzX3RlbXAKQEAgLTUzMyw2ICs1NDIsNyBAQCBkcm9w IGNhc2NhZGVzIHRvIGZ1bmN0aW9uIGdlbmFnZ3IoaW50ZWdlcikKIGRyb3AgY2FzY2FkZXMg dG8gdHlwZSBnZW5kb21haW4KIGRyb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gdHJpZygpCiBk cm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHByb2MoaW50ZWdlcikKK2Ryb3AgY2FzY2FkZXMg dG8gcHJvcGVydHkgZ3JhcGggZ2VuZ3JhcGgKIERST1AgT1dORUQgQlkgcmVncmVzc19hZGRy X3VzZXI7CiBEUk9QIFVTRVIgcmVncmVzc19hZGRyX3VzZXI7CiAtLQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAyMTVlYjg5OWJlMy4uMDhiODQ5NjJj OGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBAIC0yNjYs MyArMjY2LDEyIEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3ViZGJp ZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlw dGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcg cGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9PiBw Z19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX2VsZW1lbnQg e3BnZXBnaWR9ID0+IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9w Z3JhcGhfZWxlbWVudCB7cGdlcmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBj aGVja2luZyBwZ19wcm9wZ3JhcGhfZWxlbWVudCB7cGdlc3JjdmVydGV4aWR9ID0+IHBnX3By b3BncmFwaF9lbGVtZW50IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19wcm9wZ3JhcGhf ZWxlbWVudCB7cGdlZGVzdHZlcnRleGlkfSA9PiBwZ19wcm9wZ3JhcGhfZWxlbWVudCB7b2lk fQorTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX2xhYmVsIHtwZ2xwZ2lkfSA9PiBw Z19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX2xhYmVsIHtw Z2xlbGlkfSA9PiBwZ19wcm9wZ3JhcGhfZWxlbWVudCB7b2lkfQorTk9USUNFOiAgY2hlY2tp bmcgcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHtwZ3BwZ2lkfSA9PiBwZ19jbGFzcyB7b2lkfQor Tk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX3Byb3BlcnR5IHtwZ3B0eXBpZH0gPT4g cGdfdHlwZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfcHJvcGdyYXBoX3Byb3BlcnR5 IHtwZ3BsYWJlbGlkfSA9PiBwZ19wcm9wZ3JhcGhfbGFiZWwge29pZH0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDFkOGE0MTRlZWE3Li4wOWU2OWUxNmNkOCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC00OCw3ICs0OCw3IEBAIHRlc3Q6 IGNyZWF0ZV9pbmRleCBjcmVhdGVfaW5kZXhfc3BnaXN0IGNyZWF0ZV92aWV3IGluZGV4X2lu Y2x1ZGluZyBpbmRleF9pbmNsdWRpCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBv ZiBwYXJhbGxlbCB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBjcmVhdGVfYWdncmVnYXRl IGNyZWF0ZV9mdW5jdGlvbl9zcWwgY3JlYXRlX2Nhc3QgY29uc3RyYWludHMgdHJpZ2dlcnMg c2VsZWN0IGluaGVyaXQgdHlwZWRfdGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3RzIHVwZGF0 YWJsZV92aWV3cyByb2xlYXR0cmlidXRlcyBjcmVhdGVfYW0gaGFzaF9mdW5jIGVycm9ycyBp bmZpbml0ZV9yZWN1cnNlCit0ZXN0OiBjcmVhdGVfYWdncmVnYXRlIGNyZWF0ZV9mdW5jdGlv bl9zcWwgY3JlYXRlX2Nhc3QgY29uc3RyYWludHMgdHJpZ2dlcnMgc2VsZWN0IGluaGVyaXQg dHlwZWRfdGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3RzIHVwZGF0YWJsZV92aWV3cyByb2xl YXR0cmlidXRlcyBjcmVhdGVfYW0gaGFzaF9mdW5jIGVycm9ycyBpbmZpbml0ZV9yZWN1cnNl IGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaAogCiAjIC0tLS0tLS0tLS0KICMgc2FuaXR5X2NoZWNr IGRvZXMgYSB2YWN1dW0sIGFmZmVjdGluZyB0aGUgc29ydCBvcmRlciBvZiBTRUxFQ1QgKgpA QCAtNzgsNyArNzgsNyBAQCB0ZXN0OiBicmluX2Jsb29tIGJyaW5fbXVsdGkKICMgcHNxbCBk ZXBlbmRzIG9uIGNyZWF0ZV9hbQogIyBhbXV0aWxzIGRlcGVuZHMgb24gZ2VvbWV0cnksIGNy ZWF0ZV9pbmRleF9zcGdpc3QsIGhhc2hfaW5kZXgsIGJyaW4KICMgLS0tLS0tLS0tLQotdGVz dDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNj IGFzeW5jIGRic2l6ZSBtZXJnZSBtaXNjX2Z1bmN0aW9ucyBzeXN2aWV3cyB0c3JmIHRpZCB0 aWRzY2FuIHRpZHJhbmdlc2NhbiBjb2xsYXRlLmljdS51dGY4IGluY3JlbWVudGFsX3NvcnQg Y3JlYXRlX3JvbGUgd2l0aG91dF9vdmVybGFwcwordGVzdDogY3JlYXRlX3RhYmxlX2xpa2Ug YWx0ZXJfZ2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBt aXNjX2Z1bmN0aW9ucyBzeXN2aWV3cyB0c3JmIHRpZCB0aWRzY2FuIHRpZHJhbmdlc2NhbiBj b2xsYXRlLmljdS51dGY4IGluY3JlbWVudGFsX3NvcnQgY3JlYXRlX3JvbGUgd2l0aG91dF9v dmVybGFwcyBncmFwaF90YWJsZQogCiAjIGNvbGxhdGUuKi51dGY4IHRlc3RzIGNhbm5vdCBi ZSBydW4gaW4gcGFyYWxsZWwgd2l0aCBlYWNoIG90aGVyCiB0ZXN0OiBydWxlcyBwc3FsIHBz cWxfY3Jvc3N0YWIgYW11dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxh dGUud2luZG93cy53aW4xMjUyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9h bHRlcl9nZW5lcmljLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FsdGVyX2dlbmVyaWMu c3FsCmluZGV4IGRlNThkMjY4ZDMxLi4wNjdkNWMyYjQ5MCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvYWx0ZXJfZ2VuZXJpYy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvYWx0ZXJfZ2VuZXJpYy5zcWwKQEAgLTQ1Niw2ICs0NTYsNDAgQEAgQ1JFQVRFIE9Q RVJBVE9SIEZBTUlMWSBhbHRfb3BmMTkgVVNJTkcgYnRyZWU7CiBBTFRFUiBPUEVSQVRPUiBG QU1JTFkgYWx0X29wZjE5IFVTSU5HIGJ0cmVlIERST1AgRlVOQ1RJT04gNSAoaW50NCwgaW50 NCk7CiBEUk9QIE9QRVJBVE9SIEZBTUlMWSBhbHRfb3BmMTkgVVNJTkcgYnRyZWU7CiAKKy0t CistLSBQcm9wZXJ0eSBHcmFwaAorLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVn cmVzc19hbHRlcl9nZW5lcmljX3VzZXIxOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGFsdF9n cmFwaDE7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMjsKK0NSRUFURSBQUk9Q RVJUWSBHUkFQSCBhbHRfZ3JhcGgzOworCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3Jh cGgxIFJFTkFNRSBUTyBhbHRfZ3JhcGgyOyAtLSBmYWlsZWQgKG5hbWUgY29uZmxpY3QpCitB TFRFUiBQUk9QRVJUWSBHUkFQSCBhbHRfZ3JhcGgxIFJFTkFNRSBUTyBhbHRfZ3JhcGg0OyAt LSBPSworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMiBPV05FUiBUTyByZWdyZXNz X2FsdGVyX2dlbmVyaWNfdXNlcjI7ICAtLSBmYWlsZWQgKG5vIHJvbGUgbWVtYmVyc2hpcCkK K0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDIgT1dORVIgVE8gcmVncmVzc19hbHRl cl9nZW5lcmljX3VzZXIzOyAgLS0gT0sKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFw aDQgU0VUIFNDSEVNQSBhbHRfbnNwMjsgIC0tIE9LCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBh bHRfbnNwMi5hbHRfZ3JhcGg0IFJFTkFNRSBUTyBhbHRfZ3JhcGgyOyAgLS0gT0sKK0FMVEVS IFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDIgU0VUIFNDSEVNQSBhbHRfbnNwMjsgIC0tIGZh aWxlZCAobmFtZSBjb25mbGljdCkKKworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjI7CitDUkVBVEUgUFJPUEVSVFkgR1JBUEggYWx0X2dy YXBoNTsKKworQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dyYXBoMyBSRU5BTUUgVE8gYWx0 X2dyYXBoNTsgIC0tIGZhaWxlZCAobm90IG93bmVyKQorQUxURVIgUFJPUEVSVFkgR1JBUEgg YWx0X2dyYXBoNSBSRU5BTUUgVE8gYWx0X2dyYXBoNjsgIC0tIE9LCitBTFRFUiBQUk9QRVJU WSBHUkFQSCBhbHRfZ3JhcGgzIE9XTkVSIFRPIHJlZ3Jlc3NfYWx0ZXJfZ2VuZXJpY191c2Vy MjsgIC0tIGZhaWxlZCAobm90IG93bmVyKQorQUxURVIgUFJPUEVSVFkgR1JBUEggYWx0X2dy YXBoNiBPV05FUiBUTyByZWdyZXNzX2FsdGVyX2dlbmVyaWNfdXNlcjM7ICAtLSBmYWlsZWQg KG5vIHJvbGUgbWVtYmVyc2hpcCkKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGFsdF9ncmFwaDMg U0VUIFNDSEVNQSBhbHRfbnNwMjsgIC0tIGZhaWxlZCAobm90IG93bmVyKQorCitSRVNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT047CisKK1NFTEVDVCBuc3BuYW1lLCByZWxuYW1lLCByb2xu YW1lCisgIEZST00gcGdfY2xhc3MgYywgcGdfbmFtZXNwYWNlIG4sIHBnX2F1dGhpZCBhCisg IFdIRVJFIGMucmVsbmFtZXNwYWNlID0gbi5vaWQgQU5EIGMucmVsb3duZXIgPSBhLm9pZAor ICAgIEFORCBuLm5zcG5hbWUgaW4gKCdhbHRfbnNwMScsICdhbHRfbnNwMicpCisgICAgQU5E IGMucmVsa2luZCA9ICdnJworICBPUkRFUiBCWSBuc3BuYW1lLCByZWxuYW1lOworCiAtLQog LS0gU3RhdGlzdGljcwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Ny ZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVf cHJvcGVydHlfZ3JhcGguc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi4yZjBiNDJlY2QyZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NyZWF0ZV9wcm9wZXJ0eV9ncmFwaC5zcWwKQEAgLTAsMCArMSwxMzAgQEAKK0NSRUFU RSBTQ0hFTUEgY3JlYXRlX3Byb3BlcnR5X2dyYXBoX3Rlc3RzOworR1JBTlQgVVNBR0UgT04g U0NIRU1BIGNyZWF0ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyBUTyBQVUJMSUM7CitTRVQgc2Vh cmNoX3BhdGggPSBjcmVhdGVfcHJvcGVydHlfZ3JhcGhfdGVzdHM7CisKK0NSRUFURSBST0xF IHJlZ3Jlc3NfZ3JhcGhfdXNlcjE7CitDUkVBVEUgUk9MRSByZWdyZXNzX2dyYXBoX3VzZXIy OworCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzE7CisKK0NPTU1FTlQgT04gUFJPUEVSVFkg R1JBUEggZzEgSVMgJ2EgZ3JhcGgnOworCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzE7ICAt LSBlcnJvcjogZHVwbGljYXRlCisKK0NSRUFURSBUQUJMRSB0MSAoYSBpbnQsIGIgdGV4dCk7 CitDUkVBVEUgVEFCTEUgdDIgKGkgaW50IFBSSU1BUlkgS0VZLCBqIGludCwgayBpbnQpOwor Q1JFQVRFIFRBQkxFIHQzICh4IGludCwgeSB0ZXh0LCB6IHRleHQpOworCitDUkVBVEUgVEFC TEUgZTEgKGEgaW50LCBpIGludCwgdCB0ZXh0LCBQUklNQVJZIEtFWSAoYSwgaSkpOworQ1JF QVRFIFRBQkxFIGUyIChhIGludCwgeCBpbnQsIHQgdGV4dCk7CisKK0NSRUFURSBQUk9QRVJU WSBHUkFQSCBnMgorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEtFWSAoYSksIHQyIERFRkFVTFQg TEFCRUwsIHQzIEtFWSAoeCkgTEFCRUwgdDNsMSBMQUJFTCB0M2wyKQorICAgIEVER0UgVEFC TEVTICgKKyAgICAgICAgZTEKKyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5D RVMgdDEgKGEpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKGkpIFJFRkVSRU5DRVMg dDIgKGkpLAorICAgICAgICBlMiBLRVkgKGEsIHgpCisgICAgICAgICAgICBTT1VSQ0UgS0VZ IChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAgICAgICAgICAgREVTVElOQVRJT04gS0VZICh4 LCB0KSBSRUZFUkVOQ0VTIHQzICh4LCB5KQorICAgICk7CisKKy0tIGxpa2UgZzIgYnV0IGFz c2VtYmxlZCB3aXRoIEFMVEVSCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzM7CitBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBnMyBBREQgVkVSVEVYIFRBQkxFUyAodDEgS0VZIChhKSwgdDIgREVG QVVMVCBMQUJFTCk7CitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMworICAgIEFERCBWRVJURVgg VEFCTEVTICh0MyBLRVkgKHgpIExBQkVMIHQzbDEpCisgICAgQUREIEVER0UgVEFCTEVTICgK KyAgICAgICAgZTEgU09VUkNFIEtFWSAoYSkgUkVGRVJFTkNFUyB0MSAoYSkgREVTVElOQVRJ T04gS0VZIChpKSBSRUZFUkVOQ0VTIHQyIChpKSwKKyAgICAgICAgZTIgS0VZIChhLCB4KSBT T1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKSBERVNUSU5BVElPTiBLRVkgKHgsIHQp IFJFRkVSRU5DRVMgdDMgKHgsIHkpCisgICAgKTsKK0FMVEVSIFBST1BFUlRZIEdSQVBIIGcz IEFMVEVSIFZFUlRFWCBUQUJMRSB0MyBBREQgTEFCRUwgdDNsMiBQUk9QRVJUSUVTIEFMTCBD T0xVTU5TIEFERCBMQUJFTCB0M2wzIFBST1BFUlRJRVMgQUxMIENPTFVNTlM7CitBTFRFUiBQ Uk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJURVggVEFCTEUgdDMgRFJPUCBMQUJFTCB0M2wz eDsgIC0tIGVycm9yCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBBTFRFUiBWRVJURVggVEFC TEUgdDMgRFJPUCBMQUJFTCB0M2wzOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgRFJPUCBW RVJURVggVEFCTEVTICh0Mik7ICAtLSBmYWlsIChUT0RPOiBkdWJpb3VzIGVycm9yIG1lc3Nh Z2UpCitBTFRFUiBQUk9QRVJUWSBHUkFQSCBnMyBEUk9QIFZFUlRFWCBUQUJMRVMgKHQyKSBD QVNDQURFOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzMgRFJPUCBFREdFIFRBQkxFUyAoZTIp OworCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZzQKKyAgICBWRVJURVggVEFCTEVTICgKKyAg ICAgICAgdDEgS0VZIChhKSBOTyBQUk9QRVJUSUVTLAorICAgICAgICB0MiBERUZBVUxUIExB QkVMIFBST1BFUlRJRVMgKGkgKyBqIEFTIGlfaiwgayksCisgICAgICAgIHQzIEtFWSAoeCkg TEFCRUwgdDNsMSBQUk9QRVJUSUVTICh4LCB5IEFTIHl5KSBMQUJFTCB0M2wyIFBST1BFUlRJ RVMgKHgsIHogQVMgenopCisgICAgKQorICAgIEVER0UgVEFCTEVTICgKKyAgICAgICAgZTEK KyAgICAgICAgICAgIFNPVVJDRSBLRVkgKGEpIFJFRkVSRU5DRVMgdDEgKGEpCisgICAgICAg ICAgICBERVNUSU5BVElPTiBLRVkgKGkpIFJFRkVSRU5DRVMgdDIgKGkpCisgICAgICAgICAg ICBQUk9QRVJUSUVTIEFMTCBDT0xVTU5TLAorICAgICAgICBlMiBLRVkgKGEsIHgpCisgICAg ICAgICAgICBTT1VSQ0UgS0VZIChhKSBSRUZFUkVOQ0VTIHQxIChhKQorICAgICAgICAgICAg REVTVElOQVRJT04gS0VZICh4LCB0KSBSRUZFUkVOQ0VTIHQzICh4LCB5KQorICAgICAgICAg ICAgUFJPUEVSVElFUyBBTEwgQ09MVU1OUworICAgICk7CisKK0FMVEVSIFBST1BFUlRZIEdS QVBIIGc0IEFMVEVSIFZFUlRFWCBUQUJMRSB0MiBBTFRFUiBMQUJFTCB0MiBBREQgUFJPUEVS VElFUyAoayAqIDIgQVMga2spOworQUxURVIgUFJPUEVSVFkgR1JBUEggZzQgQUxURVIgVkVS VEVYIFRBQkxFIHQyIEFMVEVSIExBQkVMIHQyIERST1AgUFJPUEVSVElFUyAoayk7CisKKy0t IGVycm9yIGNhc2VzCitDUkVBVEUgUFJPUEVSVFkgR1JBUEggZ3ggVkVSVEVYIFRBQkxFUyAo eHgsIHl5KTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQSCBneCBWRVJURVggVEFCTEVTICh0MSBL RVkgKGEpLCB0MiBLRVkgKGkpLCB0MSBLRVkgKGEpKTsKK0NSRUFURSBQUk9QRVJUWSBHUkFQ SCBneAorICAgIFZFUlRFWCBUQUJMRVMgKHQxIEFTIHR0IEtFWSAoYSksIHQyIEtFWSAoaSkp CisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBlMSBTT1VSQ0UgdDEgREVTVElOQVRJT04g dDIKKyAgICApOworQ1JFQVRFIFBST1BFUlRZIEdSQVBIIGd4CisgICAgVkVSVEVYIFRBQkxF UyAodDEgS0VZIChhKSwgdDIgS0VZIChpKSkKKyAgICBFREdFIFRBQkxFUyAoCisgICAgICAg IGUxIFNPVVJDRSB0MSBERVNUSU5BVElPTiB0eAorICAgICk7CitDT01NRU5UIE9OIFBST1BF UlRZIEdSQVBIIGd4IElTICdub3QgYSBncmFwaCc7CisKKworQUxURVIgUFJPUEVSVFkgR1JB UEggZzEgT1dORVIgVE8gcmVncmVzc19ncmFwaF91c2VyMTsKK1NFVCBST0xFIHJlZ3Jlc3Nf Z3JhcGhfdXNlcjE7CitHUkFOVCBTRUxFQ1QgT04gUFJPUEVSVFkgR1JBUEggZzEgVE8gcmVn cmVzc19ncmFwaF91c2VyMjsKK0dSQU5UIFVQREFURSBPTiBQUk9QRVJUWSBHUkFQSCBnMSBU TyByZWdyZXNzX2dyYXBoX3VzZXIyOyAgLS0gZmFpbAorUkVTRVQgUk9MRTsKKworCistLSBp bmZvcm1hdGlvbiBzY2hlbWEKKworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEu cHJvcGVydHlfZ3JhcGhzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWU7CitTRUxFQ1Qg KiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlcyBPUkRFUiBCWSBw cm9wZXJ0eV9ncmFwaF9uYW1lLCBlbGVtZW50X3RhYmxlX2FsaWFzOworU0VMRUNUICogRlJP TSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9rZXlfY29sdW1ucyBPUkRF UiBCWSBwcm9wZXJ0eV9ncmFwaF9uYW1lLCBlbGVtZW50X3RhYmxlX2FsaWFzLCBvcmRpbmFs X3Bvc2l0aW9uOworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWRnZV90 YWJsZV9jb21wb25lbnRzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVkZ2VfdGFi bGVfYWxpYXMsIGVkZ2VfZW5kIERFU0MsIG9yZGluYWxfcG9zaXRpb247CitTRUxFQ1QgKiBG Uk9NIGluZm9ybWF0aW9uX3NjaGVtYS5wZ19lbGVtZW50X3RhYmxlX2xhYmVscyBPUkRFUiBC WSBwcm9wZXJ0eV9ncmFwaF9uYW1lLCBlbGVtZW50X3RhYmxlX2FsaWFzLCBsYWJlbF9uYW1l OworU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEucGdfZWxlbWVudF90YWJsZV9w cm9wZXJ0aWVzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGVsZW1lbnRfdGFibGVf YWxpYXMsIHByb3BlcnR5X25hbWU7CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVt YS5wZ19sYWJlbF9wcm9wZXJ0aWVzIE9SREVSIEJZIHByb3BlcnR5X2dyYXBoX25hbWUsIGxh YmVsX25hbWUsIHByb3BlcnR5X25hbWU7CitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3Nj aGVtYS5wZ19sYWJlbHMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgbGFiZWxfbmFt ZTsKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX3Byb3BlcnR5X2RhdGFf dHlwZXMgT1JERVIgQlkgcHJvcGVydHlfZ3JhcGhfbmFtZSwgcHJvcGVydHlfbmFtZTsKK1NF TEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnBnX3Byb3BlcnR5X2dyYXBoX3ByaXZp bGVnZXMgV0hFUkUgZ3JhbnRlZSBMSUtFICdyZWdyZXNzJScgT1JERVIgQlkgcHJvcGVydHlf Z3JhcGhfbmFtZTsKKworCitcYVx0CitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZignZzIn OjpyZWdjbGFzcyk7CitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZignZzMnOjpyZWdjbGFz cyk7CitTRUxFQ1QgcGdfZ2V0X3Byb3BncmFwaGRlZignZzQnOjpyZWdjbGFzcyk7CisKK1NF TEVDVCBwZ19nZXRfcHJvcGdyYXBoZGVmKCdwZ190eXBlJzo6cmVnY2xhc3MpOyAgLS0gZXJy b3IKK1xhXHQKKworXGRHIGcxCisKKy0tIFRPRE8KK1xkIGcxCitcZCsgZzEKKworRFJPUCBU QUJMRSBnMjsgIC0tIGVycm9yOiB3cm9uZyBvYmplY3QgdHlwZQorCitEUk9QIFBST1BFUlRZ IEdSQVBIIGcxOworCitEUk9QIFBST1BFUlRZIEdSQVBIIGcxOyAgLS0gZXJyb3I6IGRvZXMg bm90IGV4aXN0CisKK0RST1AgUFJPUEVSVFkgR1JBUEggSUYgRVhJU1RTIGcxOworCistLSBs ZWF2ZSBmb3IgcGdfdXBncmFkZS9wZ19kdW1wIHRlc3RzCistLURST1AgU0NIRU1BIGNyZWF0 ZV9wcm9wZXJ0eV9ncmFwaF90ZXN0cyBDQVNDQURFOworCitEUk9QIFJPTEUgcmVncmVzc19n cmFwaF91c2VyMSwgcmVncmVzc19ncmFwaF91c2VyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2dyYXBoX3RhYmxlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dy YXBoX3RhYmxlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MDYzMmNiZGE4YjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9n cmFwaF90YWJsZS5zcWwKQEAgLTAsMCArMSw5NiBAQAorQ1JFQVRFIFNDSEVNQSBncmFwaF90 YWJsZV90ZXN0czsKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBncmFwaF90YWJsZV90ZXN0cyBU TyBQVUJMSUM7CitTRVQgc2VhcmNoX3BhdGggPSBncmFwaF90YWJsZV90ZXN0czsKKworQ1JF QVRFIFRBQkxFIHByb2R1Y3RzICgKKyAgICBwcm9kdWN0X25vIGludGVnZXIgUFJJTUFSWSBL RVksCisgICAgbmFtZSB2YXJjaGFyLAorICAgIHByaWNlIG51bWVyaWMKKyk7CisKK0NSRUFU RSBUQUJMRSBjdXN0b21lcnMgKAorICAgIGN1c3RvbWVyX2lkIGludGVnZXIgUFJJTUFSWSBL RVksCisgICAgbmFtZSB2YXJjaGFyLAorICAgIGFkZHJlc3MgdmFyY2hhcgorKTsKKworQ1JF QVRFIFRBQkxFIG9yZGVycyAoCisgICAgb3JkZXJfaWQgaW50ZWdlciBQUklNQVJZIEtFWSwK KyAgICBvcmRlcmVkX3doZW4gZGF0ZQorKTsKKworQ1JFQVRFIFRBQkxFIG9yZGVyX2l0ZW1z ICgKKyAgICBvcmRlcl9pdGVtc19pZCBpbnRlZ2VyIFBSSU1BUlkgS0VZLAorICAgIG9yZGVy X2lkIGludGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKSwKKyAgICBwcm9kdWN0 X25vIGludGVnZXIgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubyksCisgICAgcXVh bnRpdHkgaW50ZWdlcgorKTsKKworQ1JFQVRFIFRBQkxFIGN1c3RvbWVyX29yZGVycyAoCisg ICAgY3VzdG9tZXJfb3JkZXJzX2lkIGludGVnZXIgUFJJTUFSWSBLRVksCisgICAgY3VzdG9t ZXJfaWQgaW50ZWdlciBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9tZXJfaWQpLAorICAg IG9yZGVyX2lkIGludGVnZXIgUkVGRVJFTkNFUyBvcmRlcnMgKG9yZGVyX2lkKQorKTsKKwor Q1JFQVRFIFBST1BFUlRZIEdSQVBIIG15c2hvcAorICAgIFZFUlRFWCBUQUJMRVMgKAorICAg ICAgICBwcm9kdWN0cywKKyAgICAgICAgY3VzdG9tZXJzLAorICAgICAgICBvcmRlcnMKKyAg ICApCisgICAgRURHRSBUQUJMRVMgKAorICAgICAgICBvcmRlcl9pdGVtcyBLRVkgKG9yZGVy X2l0ZW1zX2lkKQorICAgICAgICAgICAgU09VUkNFIEtFWSAob3JkZXJfaWQpIFJFRkVSRU5D RVMgb3JkZXJzIChvcmRlcl9pZCkKKyAgICAgICAgICAgIERFU1RJTkFUSU9OIEtFWSAocHJv ZHVjdF9ubykgUkVGRVJFTkNFUyBwcm9kdWN0cyAocHJvZHVjdF9ubyksCisgICAgICAgIGN1 c3RvbWVyX29yZGVycyBLRVkgKGN1c3RvbWVyX29yZGVyc19pZCkKKyAgICAgICAgICAgIFNP VVJDRSBLRVkgKGN1c3RvbWVyX2lkKSBSRUZFUkVOQ0VTIGN1c3RvbWVycyAoY3VzdG9tZXJf aWQpCisgICAgICAgICAgICBERVNUSU5BVElPTiBLRVkgKG9yZGVyX2lkKSBSRUZFUkVOQ0VT IG9yZGVycyAob3JkZXJfaWQpCisgICAgKTsKKworU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJP TSBHUkFQSF9UQUJMRSAoeHh4IE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJl c3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5T IChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IKK1NFTEVDVCBjdXN0b21l cl9uYW1lIEZST00gR1JBUEhfVEFCTEUgKHBnX2NsYXNzIE1BVENIIChjIElTIGN1c3RvbWVy cyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMg b3JkZXJzKSBDT0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOyAgLS0gZXJyb3IK K1NFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAo YyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRyZXNzID0gJ1VTJyktW0lTIGN1c3RvbWVyX29y ZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoY3gubmFtZSBBUyBjdXN0b21lcl9uYW1l KSk7ICAtLSBlcnJvcgorU0VMRUNUIGN1c3RvbWVyX25hbWUgRlJPTSBHUkFQSF9UQUJMRSAo bXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBjLmFkZHJlc3MgPSAnVVMnKS1b SVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBDT0xVTU5TIChjLm5hbWV4IEFT IGN1c3RvbWVyX25hbWUpKTsgIC0tIGVycm9yCisKK0lOU0VSVCBJTlRPIHByb2R1Y3RzIFZB TFVFUworICAgICgxLCAncHJvZHVjdDEnLCAxMCksCisgICAgKDIsICdwcm9kdWN0MicsIDIw KSwKKyAgICAoMywgJ3Byb2R1Y3QzJywgMzApOworSU5TRVJUIElOVE8gY3VzdG9tZXJzIFZB TFVFUworICAgICgxLCAnY3VzdG9tZXIxJywgJ1VTJyksCisgICAgKDIsICdjdXN0b21lcjIn LCAnQ0EnKSwKKyAgICAoMywgJ2N1c3RvbWVyMycsICdHTCcpOworSU5TRVJUIElOVE8gb3Jk ZXJzIFZBTFVFUworICAgICgxLCAnMjAyNC0wMS0wMScpLAorICAgICgyLCAnMjAyNC0wMS0w MicpLAorICAgICgzLCAnMjAyNC0wMS0wMycpOworSU5TRVJUIElOVE8gb3JkZXJfaXRlbXMg KG9yZGVyX2l0ZW1zX2lkLCBvcmRlcl9pZCwgcHJvZHVjdF9ubywgcXVhbnRpdHkpIFZBTFVF UworICAgICgxLCAxLCAxLCA1KSwKKyAgICAoMiwgMSwgMiwgMTApLAorICAgICgzLCAyLCAx LCA3KTsKK0lOU0VSVCBJTlRPIGN1c3RvbWVyX29yZGVycyAoY3VzdG9tZXJfb3JkZXJzX2lk LCBjdXN0b21lcl9pZCwgb3JkZXJfaWQpIFZBTFVFUworICAgICgxLCAxLCAxKSwKKyAgICAo MiwgMiwgMik7CisKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAo YyBJUyBjdXN0b21lcnMgV0hFUkUgYy5hZGRyZXNzID0gJ1VTJyktW0lTIGN1c3RvbWVyX29y ZGVyc10tPihvIElTIG9yZGVycykgQ09MVU1OUyAoYy5uYW1lIEFTIGN1c3RvbWVyX25hbWUp KTsKK1NFTEVDVCAqIEZST00gR1JBUEhfVEFCTEUgKG15c2hvcCBNQVRDSCAoYzpjdXN0b21l cnMpLVtjbzpjdXN0b21lcl9vcmRlcnNdLT4obzpvcmRlcnMgV0hFUkUgby5vcmRlcmVkX3do ZW4gPSAnMjAyNC0wMS0wMicpIENPTFVNTlMgKGMubmFtZSwgYy5hZGRyZXNzKSk7CitTRUxF Q1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFUQ0ggKG8gSVMgb3JkZXJzKS1bSVMg Y3VzdG9tZXJfb3JkZXJzXS0+KGMgSVMgY3VzdG9tZXJzKSBDT0xVTU5TIChjLm5hbWUsIG8u b3JkZXJlZF93aGVuKSk7CitTRUxFQ1QgKiBGUk9NIEdSQVBIX1RBQkxFIChteXNob3AgTUFU Q0ggKG8gSVMgb3JkZXJzKTwtW0lTIGN1c3RvbWVyX29yZGVyc10tKGMgSVMgY3VzdG9tZXJz KSBDT0xVTU5TIChjLm5hbWUsIG8ub3JkZXJlZF93aGVuKSk7CisKKy0tIFRPRE86IHNob3Vs ZCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoaXMgcXVlcnk6CitTRVQgZGVidWdfcHJpbnRfcGFy c2UgPSBvbjsKK1NFTEVDVCBjdXN0b21lcl9uYW1lIEZST00gKAorICAgIFNFTEVDVCBjLm5h bWUgQVMgY3VzdG9tZXJfbmFtZQorICAgIEZST00gY3VzdG9tZXJzIGMsIGN1c3RvbWVyX29y ZGVycyBfY28sIG9yZGVycyBvCisgICAgV0hFUkUgX2NvLmN1c3RvbWVyX2lkID0gYy5jdXN0 b21lcl9pZAorICAgICAgQU5EIF9jby5vcmRlcl9pZCA9IG8ub3JkZXJfaWQKKyAgICAgIEFO RCBjLmFkZHJlc3MgPSAnVVMnCispIG15c2hvcDsKK1JFU0VUIGRlYnVnX3ByaW50X3BhcnNl OworCitDUkVBVEUgVklFVyBjdXN0b21lcnNfdXMgQVMgU0VMRUNUIGN1c3RvbWVyX25hbWUg RlJPTSBHUkFQSF9UQUJMRSAobXlzaG9wIE1BVENIIChjIElTIGN1c3RvbWVycyBXSEVSRSBj LmFkZHJlc3MgPSAnVVMnKS1bSVMgY3VzdG9tZXJfb3JkZXJzXS0+KG8gSVMgb3JkZXJzKSBD T0xVTU5TIChjLm5hbWUgQVMgY3VzdG9tZXJfbmFtZSkpOworCitTRUxFQ1QgcGdfZ2V0X3Zp ZXdkZWYoJ2N1c3RvbWVyc191cyc6OnJlZ2NsYXNzKTsKKworLS0gbGVhdmUgZm9yIHBnX3Vw Z3JhZGUvcGdfZHVtcCB0ZXN0cworLS1EUk9QIFNDSEVNQSBncmFwaF90YWJsZV90ZXN0cyBD QVNDQURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJl c3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCmluZGV4 IDFhNmM2MWY0OWQ1Li45M2Y5ZjljNzA0ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29i amVjdF9hZGRyZXNzLnNxbApAQCAtMzcsNiArMzcsNyBAQCBDUkVBVEUgRlVOQ1RJT04gYWRk cl9uc3AudHJpZygpIFJFVFVSTlMgVFJJR0dFUiBMQU5HVUFHRSBwbHBnc3FsIEFTICQkIEJF R0lOIEVORAogQ1JFQVRFIFRSSUdHRVIgdCBCRUZPUkUgSU5TRVJUIE9OIGFkZHJfbnNwLmdl bnRhYmxlIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBhZGRyX25zcC50cmlnKCk7 CiBDUkVBVEUgUE9MSUNZIGdlbnBvbCBPTiBhZGRyX25zcC5nZW50YWJsZTsKIENSRUFURSBQ Uk9DRURVUkUgYWRkcl9uc3AucHJvYyhpbnQ0KSBMQU5HVUFHRSBTUUwgQVMgJCQgJCQ7CitD UkVBVEUgUFJPUEVSVFkgR1JBUEggYWRkcl9uc3AuZ2VuZ3JhcGg7CiBDUkVBVEUgU0VSVkVS ICJpbnRlZ2VyIiBGT1JFSUdOIERBVEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VS IE1BUFBJTkcgRk9SIHJlZ3Jlc3NfYWRkcl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NI RU1BIHB1YmxpYyBHUkFOVCBBTEwgT04gVEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwpA QCAtOTAsNyArOTEsNyBAQCBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9z dGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKIEJFR0lOCiAgICAgRk9SIG9i anR5cGUgSU4gVkFMVUVTCiAgICAgICAgICgndGFibGUnKSwgKCdpbmRleCcpLCAoJ3NlcXVl bmNlJyksICgndmlldycpLAotICAgICAgICAoJ21hdGVyaWFsaXplZCB2aWV3JyksICgnZm9y ZWlnbiB0YWJsZScpLAorICAgICAgICAoJ21hdGVyaWFsaXplZCB2aWV3JyksICgnZm9yZWln biB0YWJsZScpLCAoJ3Byb3BlcnR5IGdyYXBoJyksCiAgICAgICAgICgndGFibGUgY29sdW1u JyksICgnZm9yZWlnbiB0YWJsZSBjb2x1bW4nKSwKICAgICAgICAgKCdhZ2dyZWdhdGUnKSwg KCdmdW5jdGlvbicpLCAoJ3Byb2NlZHVyZScpLCAoJ3R5cGUnKSwgKCdjYXN0JyksCiAgICAg ICAgICgndGFibGUgY29uc3RyYWludCcpLCAoJ2RvbWFpbiBjb25zdHJhaW50JyksICgnY29u dmVyc2lvbicpLCAoJ2RlZmF1bHQgdmFsdWUnKSwKQEAgLTE2Myw2ICsxNjQsNyBAQCBDUkVB VEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRy X25zcC5nZW50YWJsZTsKICAgICAoJ3ZpZXcnLCAne2FkZHJfbnNwLCBnZW52aWV3fScsICd7 fScpLAogICAgICgnbWF0ZXJpYWxpemVkIHZpZXcnLCAne2FkZHJfbnNwLCBnZW5tYXR2aWV3 fScsICd7fScpLAogICAgICgnZm9yZWlnbiB0YWJsZScsICd7YWRkcl9uc3AsIGdlbmZ0YWJs ZX0nLCAne30nKSwKKyAgICAoJ3Byb3BlcnR5IGdyYXBoJywgJ3thZGRyX25zcCwgZ2VuZ3Jh cGh9JywgJ3t9JyksCiAgICAgKCd0YWJsZSBjb2x1bW4nLCAne2FkZHJfbnNwLCBnZW50YWJs ZSwgYn0nLCAne30nKSwKICAgICAoJ2ZvcmVpZ24gdGFibGUgY29sdW1uJywgJ3thZGRyX25z cCwgZ2VuZnRhYmxlLCBhfScsICd7fScpLAogICAgICgnYWdncmVnYXRlJywgJ3thZGRyX25z cCwgZ2VuYWdncn0nLCAne2ludDR9JyksCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IGQ4MDhhYWQ4YjA1Li5kMmQ3MjUwZGEwOCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKQEAgLTQwNTIsMyArNDA1MiwyMiBAQCByZmlsZQogd3Nfb3B0aW9ucwogd3NfZmls ZV9pbmZvCiBQYXRoS2V5SW5mbworCisjIFRPRE8KK0FsdGVyUHJvcEdyYXBoRWxlbWVudEtp bmQKK0FsdGVyUHJvcEdyYXBoU3RtdAorQ3JlYXRlUHJvcEdyYXBoU3RtdAorRm9ybURhdGFf cGdfcHJvcGdyYXBoX2VsZW1lbnQKK0Zvcm1EYXRhX3BnX3Byb3BncmFwaF9sYWJlbAorRm9y bURhdGFfcGdfcHJvcGdyYXBoX3Byb3BlcnR5CitHcmFwaEVsZW1lbnRQYXR0ZXJuCitHcmFw aEVsZW1lbnRQYXR0ZXJuS2luZAorR3JhcGhMYWJlbFJlZgorR3JhcGhQYXR0ZXJuCitHcmFw aFByb3BlcnR5UmVmCitHcmFwaFRhYmxlUGFyc2VTdGF0ZQorUHJvcEdyYXBoRWRnZQorUHJv cEdyYXBoTGFiZWxBbmRQcm9wZXJ0aWVzCitQcm9wR3JhcGhQcm9wZXJ0aWVzCitQcm9wR3Jh cGhWZXJ0ZXgKK1JhbmdlR3JhcGhUYWJsZQoKYmFzZS1jb21taXQ6IDA0MTNhNTU2OTkwYmE2 MjhhM2RlOGEwYjU4YmUwMjBmZDlhMTRlZDAKLS0gCjIuNDMuMQoK --------------IsQJ3G0x64pdQb6uTXXzvqnD--