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 1tVYhf-009YNn-Br for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jan 2025 16:14:44 +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 1tVYhe-002xxu-At for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jan 2025 16:14:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tVYhd-002xxl-65 for pgsql-hackers@lists.postgresql.org; Wed, 08 Jan 2025 16:14:41 +0000 Received: from fhigh-a2-smtp.messagingengine.com ([103.168.172.153]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tVYhX-000Yx6-0A for pgsql-hackers@postgresql.org; Wed, 08 Jan 2025 16:14:40 +0000 Received: from phl-compute-04.internal (phl-compute-04.phl.internal [10.202.2.44]) by mailfhigh.phl.internal (Postfix) with ESMTP id 7488F1140109; Wed, 8 Jan 2025 11:14:33 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Wed, 08 Jan 2025 11:14:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm1; t=1736352873; x= 1736439273; bh=xylG8O0pADqGWjkCAqEDZocMOwMk2BkrIY6BinPSZhM=; b=o fnnm9RkUbOm99zz6yX8puhikkmmpbzF9TKx5NNIEgXWZhVR6r1pll5t2dylSXWX2 LYuUSsrd2VBjxoZtb8nkG+zeWjODIUA/ly2bEBQ+hdiBLidfTXFdmjiL9R/w6KRQ 8vSWCz5rawbXYN1D7grfBcMNtGr3QJZUyehXnmaNiEq4JBZKunPZ71Z53VkCOrrT D/ILU/Sj4nlxnnwptY8u2HdRL5YZwNj5srjOgEanTVWH2Y2O6P1rgDx5S3ncjsv1 oTqQuc1lbDviQAUvQK2CME0/XyktNyZ5Jqh+zmE1qUlNqvt0D5JKwYJrej8vQC5x 6IkML/j/OI2MhzP6ZToEg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1736352873; x=1736439273; bh=xylG8O0pADqGWjkCAqEDZocMOwMk2BkrIY6 BinPSZhM=; b=OsVP/gSgJkmIBka+wJPX8wg9lhIRKHFogU8L24+upgyYgv+87aJ v09syVDlSM49wphPQJDkjnk0xc2yeJOG9EBW1FzpEoiB6h3SVuPVw/04iaKhsvc/ e0A2qakkOKFepstEQWfi0KzdzSoBRaEN3rK8iVN6XMdodoOwNf1l64CJ5WwGq5Ai UMcbc83ziom2Xst9pGKS4Q38CNMDLD3+4/pyagamNtIbvG3fba6hL2R10upy0FvL yJCoZAZztC4jAhnSRvwHOKoKHbwfZg9l8Oc2bKuoBIBJvjni+yw9636HaEgAGCZ+ egR8bxwPVJ5b7O8kqNDe+eXnfLxdBqlVIhg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrudeggedgkeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurheptgfkffggfgfuhffvvehfjgesmhdtreertddvjeen ucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhesvghishgvnh htrhgruhhtrdhorhhgqeenucggtffrrghtthgvrhhnpeeltdehkeelffeiveeftdekleev veefkeekveehhedvjeefgfevtefhteeitdeuvdenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrsegvihhsvghnthhrrghuthdrohhr ghdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepph hgshhqlhdqhhgrtghkvghrshesphhoshhtghhrvghsqhhlrdhorhhgpdhrtghpthhtohep jhhirghnrdhunhhivhgvrhhsrghlihhthiesghhmrghilhdrtghomhdprhgtphhtthhope guvggrnhdrrgdrrhgrshhhvggvugesghhmrghilhdrtghomh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 8 Jan 2025 11:14:31 -0500 (EST) Content-Type: multipart/mixed; boundary="------------wGYRogyMlqXHI1BR0EqG08Eg" Message-ID: <84adfb1b-826c-42b2-a907-b327d3760c7e@eisentraut.org> Date: Wed, 8 Jan 2025 17:14:30 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Virtual generated columns From: Peter Eisentraut To: pgsql-hackers Cc: jian he , Dean Rasheed References: <732a9543-0312-4f0c-a471-857b507a3546@eisentraut.org> <0f811f71-8c86-4e1b-b3bb-6a535674a440@eisentraut.org> <09800cb1-43aa-4239-8918-46b71ede4900@eisentraut.org> <536b281b-2cb3-4477-971f-c64838bc6263@eisentraut.org> <51875199-d5f5-41ed-92dc-3e7b1b996991@eisentraut.org> Content-Language: en-US In-Reply-To: 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. --------------wGYRogyMlqXHI1BR0EqG08Eg Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here is a new patch version where I have gathered various pieces of feedback and improvement suggestions that are scattered over this thread. I hope I got them all. I will respond to the respective messages directly to give my response to each item. One thing I could use some review on is the access control handling and security in general. You can create virtual generated columns that have their own access privileges but which can read columns that the user does not have access to. Kind of like a view. This all appears to work correctly, but maybe someone wants to poke a hole into it. Here is an example: create user foo; create user bar; grant create on schema public to foo; \c - foo create table t1 (id int, ccnum text, ccredacted text generated always as (repeat('*', 12) || substr(ccnum, 13, 4)) virtual); grant select (id, ccredacted) on table t1 to bar; insert into t1 values (1, '1234567890123456'); \c - bar select * from t1; -- permission denied select id, ccredacted from t1; -- ok --------------wGYRogyMlqXHI1BR0EqG08Eg Content-Type: text/plain; charset=UTF-8; name="v11-0001-Virtual-generated-columns.patch" Content-Disposition: attachment; filename="v11-0001-Virtual-generated-columns.patch" Content-Transfer-Encoding: base64 RnJvbSA4MDFjZjAyNGY2ODg2NjdmZmY0ZWI2MmExYmNhNmVjMjdjOTZkNzhiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCA4IEphbiAyMDI1IDE2OjU5OjQyICswMTAwClN1YmplY3Q6 IFtQQVRDSCB2MTFdIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKClRoaXMgYWRkcyBhIG5l dyB2YXJpYW50IG9mIGdlbmVyYXRlZCBjb2x1bW5zIHRoYXQgYXJlIGNvbXB1dGVkIG9uIHJl YWQKKGxpa2UgYSB2aWV3LCB1bmxpa2UgdGhlIGV4aXN0aW5nIHN0b3JlZCBnZW5lcmF0ZWQg Y29sdW1ucywgd2hpY2ggYXJlCmNvbXB1dGVkIG9uIHdyaXRlLCBsaWtlIGEgbWF0ZXJpYWxp emVkIHZpZXcpLgoKVGhlIHN5bnRheCBmb3IgdGhlIGNvbHVtbiBkZWZpbml0aW9uIGlzCgog ICAgLi4uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKC4uLikgVklSVFVBTAoKYW5kIFZJUlRVQUwg aXMgYWxzbyBvcHRpb25hbC4gIFZJUlRVQUwgaXMgdGhlIGRlZmF1bHQgcmF0aGVyIHRoYW4K U1RPUkVEIHRvIG1hdGNoIHZhcmlvdXMgb3RoZXIgU1FMIHByb2R1Y3RzLiAgKFRoZSBTUUwg c3RhbmRhcmQgbWFrZXMKbm8gc3BlY2lmaWNhdGlvbiBhYm91dCB0aGlzLCBidXQgaXQgYWxz byBkb2Vzbid0IGtub3cgYWJvdXQgVklSVFVBTCBvcgpTVE9SRUQuKSAgKEFsc28sIHZpcnR1 YWwgdmlld3MgYXJlIHRoZSBkZWZhdWx0LCByYXRoZXIgdGhhbgptYXRlcmlhbGl6ZWQgdmll d3MuKQoKVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgc3RvcmVkIGluIHR1cGxlcyBh cyBudWxsIHZhbHVlcy4gIChBCnZlcnkgZWFybHkgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGhh ZCB0aGUgYW1iaXRpb24gdG8gbm90IHN0b3JlIHRoZW0gYXQKYWxsLiAgQnV0IHNvIG11Y2gg c3R1ZmYgYnJlYWtzIG9yIGdldHMgY29uZnVzZWQgaWYgeW91IGhhdmUgdHVwbGVzCndoZXJl IGEgY29sdW1uIGluIHRoZSBtaWRkbGUgaXMgY29tcGxldGVseSBtaXNzaW5nLiAgVGhpcyBp cyBhCmNvbXByb21pc2UsIGFuZCBpdCBzdGlsbCBzYXZlcyBzcGFjZSBvdmVyIGJlaW5nIGZv cmNlZCB0byB1c2Ugc3RvcmVkCmdlbmVyYXRlZCBjb2x1bW5zLiAgSWYgd2UgZXZlciBmaW5k IGEgd2F5IHRvIGltcHJvdmUgdGhpcywgYSBiaXQgb2YKcGdfdXBncmFkZSBjbGV2ZXJuZXNz IGNvdWxkIGFsbG93IGZvciB1cGdyYWRlcyB0byBhIG5ld2VyIHNjaGVtZS4pCgpUaGUgY2Fw YWJpbGl0aWVzIGFuZCByZXN0cmljdGlvbnMgb2YgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBhcmUKbW9zdGx5IHRoZSBzYW1lIGFzIGZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMu ICBJbiBzb21lIGNhc2VzLCB0aGlzCnBhdGNoIGtlZXBzIHZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbnMgbW9yZSByZXN0cmljdGVkIHRoYW4gdGhleSBtaWdodAp0ZWNobmljYWxseSBuZWVk IHRvIGJlLCB0byBrZWVwIHRoZSB0d28ga2luZHMgY29uc2lzdGVudC4gIFNvbWUgb2YKdGhh dCBjb3VsZCBtYXliZSBiZSByZWxheGVkIGxhdGVyIGFmdGVyIHNlcGFyYXRlIGNhcmVmdWwK Y29uc2lkZXJhdGlvbnMuCgpTb21lIGZ1bmN0aW9uYWxpdHkgdGhhdCBpcyBjdXJyZW50bHkg bm90IHN1cHBvcnRlZCwgYnV0IGNvdWxkIHBvc3NpYmx5CmJlIGFkZGVkIGFzIGluY3JlbWVu dGFsIGZlYXR1cmVzLCBzb21lIGVhc2llciB0aGFuIG90aGVyczoKCi0gaW5kZXggb24gb3Ig dXNpbmcgYSB2aXJ0dWFsIGNvbHVtbgotIGhlbmNlIGFsc28gbm8gdW5pcXVlIGNvbnN0cmFp bnRzIG9uIHZpcnR1YWwgY29sdW1ucwotIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb24gdmlydHVh bCBjb2x1bW5zCi0gZm9yZWlnbiBrZXkgY29uc3RyYWludHMgb24gdmlydHVhbCBjb2x1bW5z Ci0gbm90LW51bGwgY29uc3RyYWludHMgb24gdmlydHVhbCBjb2x1bW5zIChjaGVjayBjb25z dHJhaW50cyBhcmUgc3VwcG9ydGVkKQotIEFMVEVSIFRBQkxFIC8gRFJPUCBFWFBSRVNTSU9O Ci0gdmlydHVhbCBjb2x1bW4gY2Fubm90IGhhdmUgZG9tYWluIHR5cGUKClRoZSB0ZXN0cyBp biBnZW5lcmF0ZWRfdmlydHVhbC5zcWwgaGF2ZSBiZWVuIGNvcGllZCBvdmVyIGZyb20KZ2Vu ZXJhdGVkX3N0b3JlZC5zcWwgd2l0aCB0aGUga2V5d29yZCByZXBsYWNlZC4gIFRoaXMgd2F5 IHdlIGNhbiBtYWtlCnN1cmUgdGhlIGJlaGF2aW9yIGlzIG1vc3RseSBhbGlnbmVkLCBhbmQg dGhlIGRpZmZlcmVuY2VzIGNhbiBiZQp2aXNpYmxlLiAgU29tZSB0ZXN0cyBmb3IgY3VycmVu dGx5IG5vdCBzdXBwb3J0ZWQgZmVhdHVyZXMgYXJlCmN1cnJlbnRseSBjb21tZW50ZWQgb3V0 LgoKVE9ETzoKLSBoYW5kbGluZyBvZiBwdWJsaWNhdGlvbiBvcHRpb24gcHVibGlzaF9nZW5l cmF0ZWRfY29sdW1ucwoKY29udHJpYnV0aW9ucyBieSBKaWFuIEhlLCBEZWFuIFJhc2hlZWQK CkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxh dC9hMzY4MjQ4ZS02OWU0LTQwYmUtOWMwNy02YzNiNTg4MGIwYTZAZWlzZW50cmF1dC5vcmcK LS0tCiBjb250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3BhZ2Uub3V0ICAgICAgICAgfCAg MzcgKwogY29udHJpYi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwgICAgICAgICAgICAgIHwg IDE5ICsKIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8 ICA4MSArLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgICAg IHwgICA5ICstCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAg ICAgfCAgIDYgKy0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0NSArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sICAgICAg ICAgICAgIHwgIDE1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxl LnNnbWwgICAgfCAgMTEgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwg ICAgICAgICAgICB8ICAyMiArLQogZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbCAgICAgICAg ICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVz Yy5jICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f aGFuZGxlci5jICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAg ICAgICAgICAgICAgICAgIHwgIDIzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXpl LmMgICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhj bWRzLmMgICAgICAgICAgICAgIHwgIDMzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuYyAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Rh dHNjbWRzLmMgICAgICAgICAgICAgIHwgIDIwICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAxOTYgKysrLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHJpZ2dlci5jICAgICAgICAgICAgICAgIHwgIDQ1ICstCiBzcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjVXRpbHMuYyAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jICAgICAgICB8ICA0MSArLQogc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxNiArLQogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyAgIHwgICAzICstCiBz cmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgICAgICAgICAgfCAxMTUgKyst CiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAgIDMg Kwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgICAz ICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAg NiArLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwg ICA2ICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNjLmggICAgICAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaCAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5oICAgICAg ICB8ICAgNiArLQogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAg ICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oICAg ICAgICAgIHwgICAyICsKIHNyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIu b3V0ICAgICB8ICAgNyArLQogc3JjL3BsL3BscGVybC9wbHBlcmwuYyAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAzICsKIHNyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2VyLnNx bCAgICAgICAgICB8ICAgMyArLQogc3JjL3BsL3BscHl0aG9uL2V4cGVjdGVkL3BscHl0aG9u X3RyaWdnZXIub3V0IHwgICA3ICstCiBzcmMvcGwvcGxweXRob24vcGxweV90eXBlaW8uYyAg ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3BsL3BscHl0aG9uL3NxbC9wbHB5dGhvbl90 cmlnZ2VyLnNxbCAgICAgIHwgICAzICstCiBzcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3Ry aWdnZXIub3V0ICAgICAgICAgfCAgMTkgKy0KIHNyYy9wbC90Y2wvcGx0Y2wuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvcGwvdGNsL3NxbC9wbHRjbF90cmln Z2VyLnNxbCAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2Nv bGxhdGUuaWN1LnV0Zjgub3V0ICAgICB8ICAyMCArCiAuLi4vcmVncmVzcy9leHBlY3RlZC9j cmVhdGVfdGFibGVfbGlrZS5vdXQgICAgfCAgMjMgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dCAgICB8ICAxMiArCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9nZW5lcmF0ZWRfc3RvcmVkLm91dCAgICAgfCAxMTMgKystCiAuLi5yYXRlZF9zdG9yZWQu b3V0ID0+IGdlbmVyYXRlZF92aXJ0dWFsLm91dH0gfCA4NTggKysrKysrKysrLS0tLS0tLS0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAgMTgg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0ICAgICB8ICAy OSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQgICAgICAgfCAg MjMgKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwg ICAzICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsICAgICB8 ICAxNSArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwgICAg fCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwgICAgICAg ICB8ICAxMSArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbCAg ICAgfCAgNTQgKy0KIC4uLnJhdGVkX3N0b3JlZC5zcWwgPT4gZ2VuZXJhdGVkX3ZpcnR1YWwu c3FsfSB8IDMzNiArKysrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5z cWwgICAgICAgICAgfCAgMTQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jvd3NlY3VyaXR5 LnNxbCAgICAgICAgICB8ICAyNyArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19leHQu c3FsICAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dl bmVyYXRlZC5wbCAgICAgIHwgIDM5ICstCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjhf cm93X2ZpbHRlci5wbCAgICAgfCAgMzggKy0KIDY4IGZpbGVzIGNoYW5nZWQsIDE3NDQgaW5z ZXJ0aW9ucygrKSwgNzc3IGRlbGV0aW9ucygtKQogY29weSBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3tnZW5lcmF0ZWRfc3RvcmVkLm91dCA9PiBnZW5lcmF0ZWRfdmlydHVhbC5vdXR9 ICg2NyUpCiBjb3B5IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3tnZW5lcmF0ZWRfc3RvcmVkLnNx bCA9PiBnZW5lcmF0ZWRfdmlydHVhbC5zcWx9ICg2NyUpCgpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dCBiL2NvbnRyaWIvcGFnZWluc3BlY3Qv ZXhwZWN0ZWQvcGFnZS5vdXQKaW5kZXggM2ZkMzg2OWM4MmEuLmU0MmZkOTc0N2ZkIDEwMDY0 NAotLS0gYS9jb250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3BhZ2Uub3V0CisrKyBiL2Nv bnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQKQEAgLTIwOCw2ICsyMDgsNDMg QEAgc2VsZWN0IHR1cGxlX2RhdGFfc3BsaXQoJ3Rlc3Q4Jzo6cmVnY2xhc3MsIHRfZGF0YSwg dF9pbmZvbWFzaywgdF9pbmZvbWFzazIsIHRfYmkKICgxIHJvdykKIAogZHJvcCB0YWJsZSB0 ZXN0ODsKKy0tIGNoZWNrIHN0b3JhZ2Ugb2YgZ2VuZXJhdGVkIGNvbHVtbnMKKy0tIHN0b3Jl ZAorY3JlYXRlIHRhYmxlIHRlc3Q5cyAoYSBpbnQgbm90IG51bGwsIGIgaW50IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQpOworaW5zZXJ0IGludG8gdGVzdDlzIHZhbHVl cyAoMTMxNTg0KTsKK3NlbGVjdCByYXdfZmxhZ3MsIHRfYml0cywgdF9kYXRhCisgICAgZnJv bSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXMnLCAwKSksIGxhdGVyYWwg aGVhcF90dXBsZV9pbmZvbWFza19mbGFncyh0X2luZm9tYXNrLCB0X2luZm9tYXNrMik7Cisg ICAgICByYXdfZmxhZ3MgICAgICB8IHRfYml0cyB8ICAgICAgIHRfZGF0YSAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtI RUFQX1hNQVhfSU5WQUxJRH0gfCAgICAgICAgfCBceDAwMDIwMjAwMDAwNDA0MDAKKygxIHJv dykKKworc2VsZWN0IHR1cGxlX2RhdGFfc3BsaXQoJ3Rlc3Q5cyc6OnJlZ2NsYXNzLCB0X2Rh dGEsIHRfaW5mb21hc2ssIHRfaW5mb21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3Bh Z2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXMnLCAwKSk7CisgICAgICAgdHVwbGVfZGF0 YV9zcGxpdCAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJc XHgwMDAyMDIwMCIsIlxceDAwMDQwNDAwIn0KKygxIHJvdykKKworZHJvcCB0YWJsZSB0ZXN0 OXM7CistLSB2aXJ0dWFsCitjcmVhdGUgdGFibGUgdGVzdDl2IChhIGludCBub3QgbnVsbCwg YiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHZpcnR1YWwpOworaW5zZXJ0IGlu dG8gdGVzdDl2IHZhbHVlcyAoMTMxNTg0KTsKK3NlbGVjdCByYXdfZmxhZ3MsIHRfYml0cywg dF9kYXRhCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXYn LCAwKSksIGxhdGVyYWwgaGVhcF90dXBsZV9pbmZvbWFza19mbGFncyh0X2luZm9tYXNrLCB0 X2luZm9tYXNrMik7CisgICAgICAgICAgICByYXdfZmxhZ3MgICAgICAgICAgICAgfCAgdF9i aXRzICB8ICAgdF9kYXRhICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisge0hFQVBfSEFTTlVMTCxIRUFQX1hNQVhfSU5W QUxJRH0gfCAxMDAwMDAwMCB8IFx4MDAwMjAyMDAKKygxIHJvdykKKworc2VsZWN0IHR1cGxl X2RhdGFfc3BsaXQoJ3Rlc3Q5dic6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRf aW5mb21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19w YWdlKCd0ZXN0OXYnLCAwKSk7CisgICB0dXBsZV9kYXRhX3NwbGl0ICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgeyJcXHgwMDAyMDIwMCIsTlVMTH0KKygxIHJvdykKKworZHJvcCB0 YWJsZSB0ZXN0OXY7CiAtLSBGYWlsdXJlIHdpdGggaW5jb3JyZWN0IHBhZ2Ugc2l6ZQogLS0g U3VwcHJlc3MgdGhlIERFVEFJTCBtZXNzYWdlLCB0byBhbGxvdyB0aGUgdGVzdHMgdG8gd29y ayBhY3Jvc3MgdmFyaW91cwogLS0gcGFnZSBzaXplcy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIv cGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsIGIvY29udHJpYi9wYWdlaW5zcGVjdC9zcWwvcGFn ZS5zcWwKaW5kZXggMzQ2ZTRlZTE0MmMuLmM3NWZlMTE0N2Y2IDEwMDY0NAotLS0gYS9jb250 cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbAorKysgYi9jb250cmliL3BhZ2VpbnNwZWN0 L3NxbC9wYWdlLnNxbApAQCAtODQsNiArODQsMjUgQEAgQ1JFQVRFIFRFTVAgVEFCTEUgdGVz dDEgKGEgaW50LCBiIGludCk7CiAgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19w YWdlKCd0ZXN0OCcsIDApKTsKIGRyb3AgdGFibGUgdGVzdDg7CiAKKy0tIGNoZWNrIHN0b3Jh Z2Ugb2YgZ2VuZXJhdGVkIGNvbHVtbnMKKy0tIHN0b3JlZAorY3JlYXRlIHRhYmxlIHRlc3Q5 cyAoYSBpbnQgbm90IG51bGwsIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBz dG9yZWQpOworaW5zZXJ0IGludG8gdGVzdDlzIHZhbHVlcyAoMTMxNTg0KTsKK3NlbGVjdCBy YXdfZmxhZ3MsIHRfYml0cywgdF9kYXRhCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0 X3Jhd19wYWdlKCd0ZXN0OXMnLCAwKSksIGxhdGVyYWwgaGVhcF90dXBsZV9pbmZvbWFza19m bGFncyh0X2luZm9tYXNrLCB0X2luZm9tYXNrMik7CitzZWxlY3QgdHVwbGVfZGF0YV9zcGxp dCgndGVzdDlzJzo6cmVnY2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFzaywgdF9pbmZvbWFzazIs IHRfYml0cykKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5 cycsIDApKTsKK2Ryb3AgdGFibGUgdGVzdDlzOworCistLSB2aXJ0dWFsCitjcmVhdGUgdGFi bGUgdGVzdDl2IChhIGludCBub3QgbnVsbCwgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAo YSAqIDIpIHZpcnR1YWwpOworaW5zZXJ0IGludG8gdGVzdDl2IHZhbHVlcyAoMTMxNTg0KTsK K3NlbGVjdCByYXdfZmxhZ3MsIHRfYml0cywgdF9kYXRhCisgICAgZnJvbSBoZWFwX3BhZ2Vf aXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXYnLCAwKSksIGxhdGVyYWwgaGVhcF90dXBsZV9p bmZvbWFza19mbGFncyh0X2luZm9tYXNrLCB0X2luZm9tYXNrMik7CitzZWxlY3QgdHVwbGVf ZGF0YV9zcGxpdCgndGVzdDl2Jzo6cmVnY2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFzaywgdF9p bmZvbWFzazIsIHRfYml0cykKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3Bh Z2UoJ3Rlc3Q5dicsIDApKTsKK2Ryb3AgdGFibGUgdGVzdDl2OworCiAtLSBGYWlsdXJlIHdp dGggaW5jb3JyZWN0IHBhZ2Ugc2l6ZQogLS0gU3VwcHJlc3MgdGhlIERFVEFJTCBtZXNzYWdl LCB0byBhbGxvdyB0aGUgdGVzdHMgdG8gd29yayBhY3Jvc3MgdmFyaW91cwogLS0gcGFnZSBz aXplcy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3Rn cmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19m ZHcub3V0CmluZGV4IGJmMzIyMTk4YTIwLi4zMmQ1ODFlODQyMiAxMDA2NDQKLS0tIGEvY29u dHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC03MjgzLDY1 ICs3MjgzLDY4IEBAIHNlbGVjdCAqIGZyb20gcmVtMTsKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGNy ZWF0ZSB0YWJsZSBnbG9jMSAoCiAgIGEgaW50LAotICBiIGludCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChhICogMikgc3RvcmVkKTsKKyAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAq IDIpIHN0b3JlZCwKKyAgYyBpbnQKKyk7CiBhbHRlciB0YWJsZSBnbG9jMSBzZXQgKGF1dG92 YWN1dW1fZW5hYmxlZCA9ICdmYWxzZScpOwogY3JlYXRlIGZvcmVpZ24gdGFibGUgZ3JlbTEg KAogICBhIGludCwKLSAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3Jl ZCkKLSAgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnModGFibGVfbmFtZSAnZ2xvYzEnKTsKKyAg YiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCwKKyAgYyBpbnQgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpIHZpcnR1YWwKKykgc2VydmVyIGxvb3BiYWNrIG9w dGlvbnModGFibGVfbmFtZSAnZ2xvYzEnKTsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9m ZikKIGluc2VydCBpbnRvIGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgSW5zZXJ0IG9uIHB1YmxpYy5ncmVtMQotICAgUmVtb3Rl IFNRTDogSU5TRVJUIElOVE8gcHVibGljLmdsb2MxKGEsIGIpIFZBTFVFUyAoJDEsIERFRkFV TFQpCisgICBSZW1vdGUgU1FMOiBJTlNFUlQgSU5UTyBwdWJsaWMuZ2xvYzEoYSwgYiwgYykg VkFMVUVTICgkMSwgREVGQVVMVCwgREVGQVVMVCkKICAgIEJhdGNoIFNpemU6IDEKICAgIC0+ ICBWYWx1ZXMgU2NhbiBvbiAiKlZBTFVFUyoiCi0gICAgICAgICBPdXRwdXQ6ICIqVkFMVUVT KiIuY29sdW1uMSwgTlVMTDo6aW50ZWdlcgorICAgICAgICAgT3V0cHV0OiAiKlZBTFVFUyoi LmNvbHVtbjEsIE5VTEw6OmludGVnZXIsIE5VTEw6OmludGVnZXIKICg1IHJvd3MpCiAKIGlu c2VydCBpbnRvIGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7CiBleHBsYWluICh2ZXJib3Nl LCBjb3N0cyBvZmYpCiB1cGRhdGUgZ3JlbTEgc2V0IGEgPSAyMiB3aGVyZSBhID0gMjsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy5ncmVtMQotICAg UmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5nbG9jMSBTRVQgYSA9ICQyLCBiID0gREVGQVVM VCBXSEVSRSBjdGlkID0gJDEKKyAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMuZ2xvYzEg U0VUIGEgPSAkMiwgYiA9IERFRkFVTFQsIGMgPSBERUZBVUxUIFdIRVJFIGN0aWQgPSAkMQog ICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZ3JlbTEKICAgICAgICAgIE91dHB1dDog MjIsIGN0aWQsIGdyZW0xLioKLSAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBj dGlkIEZST00gcHVibGljLmdsb2MxIFdIRVJFICgoYSA9IDIpKSBGT1IgVVBEQVRFCisgICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgYywgY3RpZCBGUk9NIHB1YmxpYy5nbG9j MSBXSEVSRSAoKGEgPSAyKSkgRk9SIFVQREFURQogKDUgcm93cykKIAogdXBkYXRlIGdyZW0x IHNldCBhID0gMjIgd2hlcmUgYSA9IDI7CiBzZWxlY3QgKiBmcm9tIGdsb2MxOwotIGEgIHwg YiAgCi0tLS0tKy0tLS0KLSAgMSB8ICAyCi0gMjIgfCA0NAorIGEgIHwgYiAgfCBjIAorLS0t LSstLS0tKy0tLQorICAxIHwgIDIgfCAgCisgMjIgfCA0NCB8ICAKICgyIHJvd3MpCiAKIHNl bGVjdCAqIGZyb20gZ3JlbTE7Ci0gYSAgfCBiICAKLS0tLS0rLS0tLQotICAxIHwgIDIKLSAy MiB8IDQ0CisgYSAgfCBiICB8IGMgIAorLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAyIHwgIDMK KyAyMiB8IDQ0IHwgNjYKICgyIHJvd3MpCiAKIGRlbGV0ZSBmcm9tIGdyZW0xOwogLS0gdGVz dCBjb3B5IGZyb20KIGNvcHkgZ3JlbTEgZnJvbSBzdGRpbjsKIHNlbGVjdCAqIGZyb20gZ2xv YzE7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSAyIHwgNAorIGEgfCBiIHwgYyAKKy0t LSstLS0rLS0tCisgMSB8IDIgfCAgCisgMiB8IDQgfCAgCiAoMiByb3dzKQogCiBzZWxlY3Qg KiBmcm9tIGdyZW0xOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCi0gMiB8IDQKKyBhIHwg YiB8IGMgCistLS0rLS0tKy0tLQorIDEgfCAyIHwgMworIDIgfCA0IHwgNgogKDIgcm93cykK IAogZGVsZXRlIGZyb20gZ3JlbTE7CkBAIC03MzQ5LDI4ICs3MzUyLDI4IEBAIGRlbGV0ZSBm cm9tIGdyZW0xOwogYWx0ZXIgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnMgKGFkZCBiYXRjaF9z aXplICcxMCcpOwogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogaW5zZXJ0IGludG8g Z3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBJbnNlcnQgb24gcHVibGljLmdyZW0xCi0gICBSZW1vdGUgU1FMOiBJTlNFUlQgSU5U TyBwdWJsaWMuZ2xvYzEoYSwgYikgVkFMVUVTICgkMSwgREVGQVVMVCkKKyAgIFJlbW90ZSBT UUw6IElOU0VSVCBJTlRPIHB1YmxpYy5nbG9jMShhLCBiLCBjKSBWQUxVRVMgKCQxLCBERUZB VUxULCBERUZBVUxUKQogICAgQmF0Y2ggU2l6ZTogMTAKICAgIC0+ICBWYWx1ZXMgU2NhbiBv biAiKlZBTFVFUyoiCi0gICAgICAgICBPdXRwdXQ6ICIqVkFMVUVTKiIuY29sdW1uMSwgTlVM TDo6aW50ZWdlcgorICAgICAgICAgT3V0cHV0OiAiKlZBTFVFUyoiLmNvbHVtbjEsIE5VTEw6 OmludGVnZXIsIE5VTEw6OmludGVnZXIKICg1IHJvd3MpCiAKIGluc2VydCBpbnRvIGdyZW0x IChhKSB2YWx1ZXMgKDEpLCAoMik7CiBzZWxlY3QgKiBmcm9tIGdsb2MxOwotIGEgfCBiIAot LS0tKy0tLQotIDEgfCAyCi0gMiB8IDQKKyBhIHwgYiB8IGMgCistLS0rLS0tKy0tLQorIDEg fCAyIHwgIAorIDIgfCA0IHwgIAogKDIgcm93cykKIAogc2VsZWN0ICogZnJvbSBncmVtMTsK LSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgMgotIDIgfCA0CisgYSB8IGIgfCBjIAorLS0tKy0t LSstLS0KKyAxIHwgMiB8IDMKKyAyIHwgNCB8IDYKICgyIHJvd3MpCiAKIGRlbGV0ZSBmcm9t IGdyZW0xOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVz X2Zkdy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbApp bmRleCAzOTAwNTIyY2NiNS4uNzFhMjcyODIxMzggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNf ZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0xODM2LDEyICsxODM2LDE1IEBAIENSRUFU RSBWSUVXIHJ3X3ZpZXcgQVMgU0VMRUNUICogRlJPTSBwYXJlbnRfdGJsIFdIRVJFIGEgPCA1 IFdJVEggQ0hFQ0sgT1BUSU9OOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogY3JlYXRlIHRhYmxlIGds b2MxICgKICAgYSBpbnQsCi0gIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBz dG9yZWQpOworICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkLAor ICBjIGludAorKTsKIGFsdGVyIHRhYmxlIGdsb2MxIHNldCAoYXV0b3ZhY3V1bV9lbmFibGVk ID0gJ2ZhbHNlJyk7CiBjcmVhdGUgZm9yZWlnbiB0YWJsZSBncmVtMSAoCiAgIGEgaW50LAot ICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkKQotICBzZXJ2ZXIg bG9vcGJhY2sgb3B0aW9ucyh0YWJsZV9uYW1lICdnbG9jMScpOworICBiIGludCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkLAorICBjIGludCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChhICogMykgdmlydHVhbAorKSBzZXJ2ZXIgbG9vcGJhY2sgb3B0aW9ucyh0YWJsZV9u YW1lICdnbG9jMScpOwogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogaW5zZXJ0IGlu dG8gZ3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKIGluc2VydCBpbnRvIGdyZW0xIChhKSB2 YWx1ZXMgKDEpLCAoMik7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGNjNmNmOWJlZjA5Li4xZjU5 MDY2MjRiZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTEzMDcsOCArMTMwNywxMCBAQCA8dGl0 bGU+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRs ZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAgIElmIGEgemVybyBieXRl ICg8bGl0ZXJhbD4nJzwvbGl0ZXJhbD4pLCB0aGVuIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4u Ci0gICAgICAgT3RoZXJ3aXNlLCA8bGl0ZXJhbD5zPC9saXRlcmFsPiA9IHN0b3JlZC4gIChP dGhlciB2YWx1ZXMgbWlnaHQgYmUgYWRkZWQKLSAgICAgICBpbiB0aGUgZnV0dXJlLikKKyAg ICAgICBPdGhlcndpc2UsIDxsaXRlcmFsPnM8L2xpdGVyYWw+ID0gc3RvcmVkLCA8bGl0ZXJh bD52PC9saXRlcmFsPiA9CisgICAgICAgdmlydHVhbC4gIEEgc3RvcmVkIGdlbmVyYXRlZCBj b2x1bW4gaXMgcGh5c2ljYWxseSBzdG9yZWQgbGlrZSBhIG5vcm1hbAorICAgICAgIGNvbHVt bi4gIEEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIGlzIHBoeXNpY2FsbHkgc3RvcmVkIGFz IGEgbnVsbAorICAgICAgIHZhbHVlLCB3aXRoIHRoZSBhY3R1YWwgdmFsdWUgYmVpbmcgY29t cHV0ZWQgYXQgcnVuIHRpbWUuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+ CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbAppbmRleCBkZWEwNGQ2NGRiNi4uNTAyZGQxNTQ2NDUgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTM2 MSw3ICszNjEsNiBAQCA8dGl0bGU+R2VuZXJhdGVkIENvbHVtbnM8L3RpdGxlPgogICAgc3Rv cmFnZSBhbmQgaXMgY29tcHV0ZWQgd2hlbiBpdCBpcyByZWFkLiAgVGh1cywgYSB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW4KICAgIGlzIHNpbWlsYXIgdG8gYSB2aWV3IGFuZCBhIHN0b3Jl ZCBnZW5lcmF0ZWQgY29sdW1uIGlzIHNpbWlsYXIgdG8gYQogICAgbWF0ZXJpYWxpemVkIHZp ZXcgKGV4Y2VwdCB0aGF0IGl0IGlzIGFsd2F5cyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkpLgot ICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBjdXJyZW50bHkgaW1w bGVtZW50cyBvbmx5IHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucy4KICAgPC9wYXJhPgogCiAg IDxwYXJhPgpAQCAtMzcxLDEyICszNzAsMTIgQEAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5z PC90aXRsZT4KIENSRUFURSBUQUJMRSBwZW9wbGUgKAogICAgIC4uLiwKICAgICBoZWlnaHRf Y20gbnVtZXJpYywKLSAgICBoZWlnaHRfaW4gbnVtZXJpYyA8ZW1waGFzaXM+R0VORVJBVEVE IEFMV0FZUyBBUyAoaGVpZ2h0X2NtIC8gMi41NCkgU1RPUkVEPC9lbXBoYXNpcz4KKyAgICBo ZWlnaHRfaW4gbnVtZXJpYyA8ZW1waGFzaXM+R0VORVJBVEVEIEFMV0FZUyBBUyAoaGVpZ2h0 X2NtIC8gMi41NCk8L2VtcGhhc2lzPgogKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICBUaGUg a2V5d29yZCA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IG11c3QgYmUgc3BlY2lmaWVkIHRv IGNob29zZSB0aGUKLSAgIHN0b3JlZCBraW5kIG9mIGdlbmVyYXRlZCBjb2x1bW4uICBTZWUg PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXRhYmxlIi8+IGZvcgotICAgbW9yZSBkZXRhaWxz LgorICAgQSBnZW5lcmF0ZWQgY29sdW1uIGlzIGJ5IGRlZmF1bHQgb2YgdGhlIHZpcnR1YWwg a2luZC4gIFVzZSB0aGUga2V5d29yZHMKKyAgIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+ IG9yIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gdG8gbWFrZSB0aGUgY2hvaWNlCisgICBl eHBsaWNpdC4gIFNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUiLz4gZm9yIG1v cmUgZGV0YWlscy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtNDQyLDEyICs0NDEsMTgg QEAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRsZT4KICAgICAgIDxsaXN0aXRlbT4K ICAgICAgICA8cGFyYT4KICAgICAgICAgSWYgYSBwYXJlbnQgY29sdW1uIGlzIGEgZ2VuZXJh dGVkIGNvbHVtbiwgaXRzIGNoaWxkIGNvbHVtbiBtdXN0IGFsc28KLSAgICAgICAgYmUgYSBn ZW5lcmF0ZWQgY29sdW1uOyBob3dldmVyLCB0aGUgY2hpbGQgY29sdW1uIGNhbiBoYXZlIGEK LSAgICAgICAgZGlmZmVyZW50IGdlbmVyYXRpb24gZXhwcmVzc2lvbi4gIFRoZSBnZW5lcmF0 aW9uIGV4cHJlc3Npb24gdGhhdCBpcworICAgICAgICBiZSBhIGdlbmVyYXRlZCBjb2x1bW4g b2YgdGhlIHNhbWUga2luZCAoc3RvcmVkIG9yIHZpcnR1YWwpOyBob3dldmVyLAorICAgICAg ICB0aGUgY2hpbGQgY29sdW1uIGNhbiBoYXZlIGEgZGlmZmVyZW50IGdlbmVyYXRpb24gZXhw cmVzc2lvbi4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgRm9y IHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucywgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbiB0 aGF0IGlzCiAgICAgICAgIGFjdHVhbGx5IGFwcGxpZWQgZHVyaW5nIGluc2VydCBvciB1cGRh dGUgb2YgYSByb3cgaXMgdGhlIG9uZQotICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIHRh YmxlIHRoYXQgdGhlIHJvdyBpcyBwaHlzaWNhbGx5IGluLgotICAgICAgICAoVGhpcyBpcyB1 bmxpa2UgdGhlIGJlaGF2aW9yIGZvciBjb2x1bW4gZGVmYXVsdHM6IGZvciB0aG9zZSwgdGhl Ci0gICAgICAgIGRlZmF1bHQgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWJsZSBuYW1l ZCBpbiB0aGUgcXVlcnkgYXBwbGllcy4pCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUg dGFibGUgdGhhdCB0aGUgcm93IGlzIHBoeXNpY2FsbHkgaW4uICAoVGhpcyBpcworICAgICAg ICB1bmxpa2UgdGhlIGJlaGF2aW9yIGZvciBjb2x1bW4gZGVmYXVsdHM6IGZvciB0aG9zZSwg dGhlIGRlZmF1bHQgdmFsdWUKKyAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWJsZSBu YW1lZCBpbiB0aGUgcXVlcnkgYXBwbGllcy4pICBGb3IgdmlydHVhbAorICAgICAgICBnZW5l cmF0ZWQgY29sdW1ucywgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBvZiB0aGUgdGFibGUg bmFtZWQgaW4gdGhlCisgICAgICAgIHF1ZXJ5IGFwcGxpZXMgd2hlbiBhIHRhYmxlIGlzIHJl YWQuCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgIDxsaXN0aXRl bT4KQEAgLTUwMiw2ICs1MDcsMjYgQEAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRs ZT4KICAgICAgIHBhcnRpY3VsYXIgcm9sZSBjYW4gcmVhZCBmcm9tIGEgZ2VuZXJhdGVkIGNv bHVtbiBidXQgbm90IGZyb20gdGhlCiAgICAgICB1bmRlcmx5aW5nIGJhc2UgY29sdW1ucy4K ICAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgRm9yIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMsIHRoaXMgaXMgb25seSBmdWxseSBzZWN1cmUgaWYgdGhlCisgICAgICBn ZW5lcmF0aW9uIGV4cHJlc3Npb24gdXNlcyBvbmx5IGxlYWtwcm9vZiBmdW5jdGlvbnMgKHNl ZSA8eHJlZgorICAgICAgbGlua2VuZD0ic3FsLWNyZWF0ZWZ1bmN0aW9uIi8+KSwgYnV0IHRo aXMgaXMgbm90IGVuZm9yY2VkIGJ5IHRoZSBzeXN0ZW0uCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBQcml2aWxl Z2VzIG9mIGZ1bmN0aW9ucyB1c2VkIGluIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgYXJlIGNo ZWNrZWQgd2hlbgorICAgICAgdGhlIGV4cHJlc3Npb24gaXMgYWN0dWFsbHkgZXhlY3V0ZWQs IG9uIHdyaXRlIG9yIHJlYWQgcmVzcGVjdGl2ZWx5LCBhcworICAgICAgaWYgdGhlIGdlbmVy YXRpb24gZXhwcmVzc2lvbiBoYWQgYmVlbiBjYWxsZWQgZGlyZWN0bHkgZnJvbSB0aGUgcXVl cnkKKyAgICAgIHVzaW5nIHRoZSBnZW5lcmF0ZWQgY29sdW1uLiAgVGhlIHVzZXIgb2YgYSBn ZW5lcmF0ZWQgY29sdW1uIG11c3QgaGF2ZQorICAgICAgcGVybWlzc2lvbnMgdG8gY2FsbCBh bGwgZnVuY3Rpb25zIHVzZWQgYnkgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbi4KKyAgICAg IEZ1bmN0aW9ucyBpbiB0aGUgZ2VuZXJhdGlvbiBleHByZXNzaW9uIGFyZSBleGVjdXRlZCB3 aXRoIHRoZSBwcml2aWxlZ2VzCisgICAgICBvZiB0aGUgdXNlciBleGVjdXRpbmcgdGhlIHF1 ZXJ5IG9yIHRoZSBmdW5jdGlvbiBvd25lciwgZGVwZW5kaW5nIG9uCisgICAgICB3aGV0aGVy IHRoZSBmdW5jdGlvbnMgYXJlIGRlZmluZWQgYXMgPGxpdGVyYWw+U0VDVVJJVFkgSU5WT0tF UjwvbGl0ZXJhbD4KKyAgICAgIG9yIDxsaXRlcmFsPlNFQ1VSSVRZIERFRklORVI8L2xpdGVy YWw+LgorICAgICAgPCEtLSBtYXRjaGVzIGNyZWF0ZV92aWV3LnNnbWwgLS0+CisgICAgIDwv cGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKaW5kZXggYzhmN2FiN2Q5NTYuLmVmZjA0MDc0 MmQyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCkBAIC0xMDIsNyArMTAyLDcg QEAKICAgTlVMTCB8CiAgIENIRUNLICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIFsgTk8gSU5IRVJJVCBdIHwKICAgREVGQVVM VCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gfAotICBHRU5FUkFU RUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFi bGU+ICkgU1RPUkVEIHwKKyAgR0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5n ZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RPUkVEIHwgVklSVFVBTCBdIHwK ICAgR0VORVJBVEVEIHsgQUxXQVlTIHwgQlkgREVGQVVMVCB9IEFTIElERU5USVRZIFsgKCA8 cmVwbGFjZWFibGU+c2VxdWVuY2Vfb3B0aW9uczwvcmVwbGFjZWFibGU+ICkgXSB8CiAgIFVO SVFVRSBbIE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKICAgUFJJTUFSWSBL RVkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3Jl cGxhY2VhYmxlPiB8CkBAIC0yNjQsOCArMjY0LDggQEAgPHRpdGxlPkRlc2NyaXB0aW9uPC90 aXRsZT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgVGhpcyBmb3JtIHJl cGxhY2VzIHRoZSBleHByZXNzaW9uIG9mIGEgZ2VuZXJhdGVkIGNvbHVtbi4gIEV4aXN0aW5n IGRhdGEKLSAgICAgIGluIHRoZSBjb2x1bW4gaXMgcmV3cml0dGVuIGFuZCBhbGwgdGhlIGZ1 dHVyZSBjaGFuZ2VzIHdpbGwgYXBwbHkgdGhlIG5ldwotICAgICAgZ2VuZXJhdGlvbiBleHBy ZXNzaW9uLgorICAgICAgaW4gYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiBpcyByZXdyaXR0 ZW4gYW5kIGFsbCB0aGUgZnV0dXJlIGNoYW5nZXMKKyAgICAgIHdpbGwgYXBwbHkgdGhlIG5l dyBnZW5lcmF0aW9uIGV4cHJlc3Npb24uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC0yNzksMTAgKzI3OSwxNSBAQCA8dGl0bGU+RGVz Y3JpcHRpb248L3RpdGxlPgogICAgICAgbG9uZ2VyIGFwcGx5IHRoZSBnZW5lcmF0aW9uIGV4 cHJlc3Npb24uCiAgICAgIDwvcGFyYT4KIAorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9y bSBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgZm9yIHN0b3JlZCBnZW5lcmF0ZWQgY29s dW1ucyAobm90CisgICAgICB2aXJ0dWFsIG9uZXMpLgorICAgICA8L3BhcmE+CisKICAgICAg PHBhcmE+CiAgICAgICBJZiA8bGl0ZXJhbD5EUk9QIEVYUFJFU1NJT04gSUYgRVhJU1RTPC9s aXRlcmFsPiBpcyBzcGVjaWZpZWQgYW5kIHRoZQotICAgICAgY29sdW1uIGlzIG5vdCBhIHN0 b3JlZCBnZW5lcmF0ZWQgY29sdW1uLCBubyBlcnJvciBpcyB0aHJvd24uICBJbiB0aGlzCi0g ICAgICBjYXNlIGEgbm90aWNlIGlzIGlzc3VlZCBpbnN0ZWFkLgorICAgICAgY29sdW1uIGlz IG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4sIG5vIGVycm9yIGlzIHRocm93bi4gIEluIHRoaXMg Y2FzZSBhCisgICAgICBub3RpY2UgaXMgaXNzdWVkIGluc3RlYWQuCiAgICAgIDwvcGFyYT4K ICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwKaW5kZXggZmM4MWJhM2M0OTguLjdmZTEz ZTZlNTg0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3Rh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5z Z21sCkBAIC00Nyw3ICs0Nyw3IEBACiAgIE5VTEwgfAogICBDSEVDSyAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBbIE5PIElO SEVSSVQgXSB8CiAgIERFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFj ZWFibGU+IHwKLSAgR0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0 aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFNUT1JFRCB9CisgIEdFTkVSQVRFRCBBTFdBWVMg QVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNU T1JFRCB8IFZJUlRVQUwgXSB9CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+ CiAKQEAgLTI4MSw3ICsyODEsNyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KIAogICAgPHZhcmxpc3RlbnRyeT4KLSAgICA8dGVybT48bGl0ZXJh bD5HRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwv cmVwbGFjZWFibGU+ICkgU1RPUkVEPC9saXRlcmFsPjxpbmRleHRlcm0+PHByaW1hcnk+Z2Vu ZXJhdGVkIGNvbHVtbjwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisgICAgPHRlcm0+ PGxpdGVyYWw+R0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9u X2V4cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RPUkVEIHwgVklSVFVBTCBdPC9saXRlcmFsPjxp bmRleHRlcm0+PHByaW1hcnk+Z2VuZXJhdGVkIGNvbHVtbjwvcHJpbWFyeT48L2luZGV4dGVy bT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIFRoaXMgY2xh dXNlIGNyZWF0ZXMgdGhlIGNvbHVtbiBhcyBhIDxmaXJzdHRlcm0+Z2VuZXJhdGVkCkBAIC0y OTAsMTAgKzI5MCwxMyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgIDwvcGFy YT4KIAogICAgICA8cGFyYT4KLSAgICAgIFRoZSBrZXl3b3JkIDxsaXRlcmFsPlNUT1JFRDwv bGl0ZXJhbD4gaXMgcmVxdWlyZWQgdG8gc2lnbmlmeSB0aGF0IHRoZQorICAgICAgV2hlbiA8 bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBjb2x1bW4gd2ls bCBiZQorICAgICAgY29tcHV0ZWQgd2hlbiBpdCBpcyByZWFkLiAgKFRoZSBmb3JlaWduLWRh dGEgd3JhcHBlciB3aWxsIHNlZSBpdCBhcyBhCisgICAgICBudWxsIHZhbHVlIGluIG5ldyBy b3dzIGFuZCBtYXkgY2hvb3NlIHRvIHN0b3JlIGl0IGFzIGEgbnVsbCB2YWx1ZSBvcgorICAg ICAgaWdub3JlIGl0IGFsdG9nZXRoZXIuKSAgV2hlbiA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVy YWw+IGlzIHNwZWNpZmllZCwgdGhlCiAgICAgICBjb2x1bW4gd2lsbCBiZSBjb21wdXRlZCBv biB3cml0ZS4gIChUaGUgY29tcHV0ZWQgdmFsdWUgd2lsbCBiZSBwcmVzZW50ZWQKICAgICAg IHRvIHRoZSBmb3JlaWduLWRhdGEgd3JhcHBlciBmb3Igc3RvcmFnZSBhbmQgbXVzdCBiZSBy ZXR1cm5lZCBvbgotICAgICAgcmVhZGluZy4pCisgICAgICByZWFkaW5nLikgIDxsaXRlcmFs PlZJUlRVQUw8L2xpdGVyYWw+IGlzIHRoZSBkZWZhdWx0LgogICAgICA8L3BhcmE+CiAKICAg ICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAppbmRleCA3MGZhOTI5 Y2FhNC4uM2JmZjljNjBlYmYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApA QCAtNjUsNyArNjUsNyBAQAogICBOVUxMIHwKICAgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklU IF0gfAogICBERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxl PiB8Ci0gIEdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9l eHByPC9yZXBsYWNlYWJsZT4gKSBTVE9SRUQgfAorICBHRU5FUkFURUQgQUxXQVlTIEFTICgg PHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBTVE9SRUQg fCBWSVJUVUFMIF0gfAogICBHRU5FUkFURUQgeyBBTFdBWVMgfCBCWSBERUZBVUxUIH0gQVMg SURFTlRJVFkgWyAoIDxyZXBsYWNlYWJsZT5zZXF1ZW5jZV9vcHRpb25zPC9yZXBsYWNlYWJs ZT4gKSBdIHwKICAgVU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBESVNUSU5DVCBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4g fAogICBQUklNQVJZIEtFWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhf cGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKQEAgLTcyNSw4ICs3MjUsOSBAQCA8dGl0bGU+ UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPklOQ0xVRElORyBH RU5FUkFURUQ8L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAg ICA8cGFyYT4KLSAgICAgICAgICBBbnkgZ2VuZXJhdGlvbiBleHByZXNzaW9ucyBvZiBjb3Bp ZWQgY29sdW1uIGRlZmluaXRpb25zIHdpbGwgYmUKLSAgICAgICAgICBjb3BpZWQuICBCeSBk ZWZhdWx0LCBuZXcgY29sdW1ucyB3aWxsIGJlIHJlZ3VsYXIgYmFzZSBjb2x1bW5zLgorICAg ICAgICAgIEFueSBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIGFzIHdlbGwgYXMgdGhlIHN0b3Jl ZC92aXJ0dWFsIGNob2ljZSBvZgorICAgICAgICAgIGNvcGllZCBjb2x1bW4gZGVmaW5pdGlv bnMgd2lsbCBiZSBjb3BpZWQuICBCeSBkZWZhdWx0LCBuZXcgY29sdW1ucworICAgICAgICAg IHdpbGwgYmUgcmVndWxhciBiYXNlIGNvbHVtbnMuCiAgICAgICAgICA8L3BhcmE+CiAgICAg ICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC05MDcsNyArOTA4 LDcgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgPC92YXJsaXN0ZW50cnk+CiAK ICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1nZW5lcmF0ZWQt c3RvcmVkIj4KLSAgICA8dGVybT48bGl0ZXJhbD5HRU5FUkFURUQgQUxXQVlTIEFTICggPHJl cGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgU1RPUkVEPC9saXRl cmFsPjxpbmRleHRlcm0+PHByaW1hcnk+Z2VuZXJhdGVkIGNvbHVtbjwvcHJpbWFyeT48L2lu ZGV4dGVybT48L3Rlcm0+CisgICAgPHRlcm0+PGxpdGVyYWw+R0VORVJBVEVEIEFMV0FZUyBB UyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RP UkVEIHwgVklSVFVBTCBdPC9saXRlcmFsPjxpbmRleHRlcm0+PHByaW1hcnk+Z2VuZXJhdGVk IGNvbHVtbjwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgog ICAgICA8cGFyYT4KICAgICAgIFRoaXMgY2xhdXNlIGNyZWF0ZXMgdGhlIGNvbHVtbiBhcyBh IDxmaXJzdHRlcm0+Z2VuZXJhdGVkCkBAIC05MTYsOCArOTE3LDExIEBAIDx0aXRsZT5QYXJh bWV0ZXJzPC90aXRsZT4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgotICAgICAgVGhl IGtleXdvcmQgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBpcyByZXF1aXJlZCB0byBzaWdu aWZ5IHRoYXQgdGhlCi0gICAgICBjb2x1bW4gd2lsbCBiZSBjb21wdXRlZCBvbiB3cml0ZSBh bmQgd2lsbCBiZSBzdG9yZWQgb24gZGlzay4KKyAgICAgIFdoZW4gPGxpdGVyYWw+VklSVFVB TDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgY29sdW1uIHdpbGwgYmUKKyAgICAgIGNv bXB1dGVkIHdoZW4gaXQgaXMgcmVhZCwgYW5kIGl0IHdpbGwgbm90IG9jY3VweSBhbnkgc3Rv cmFnZS4gIFdoZW4KKyAgICAgIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgc3BlY2lm aWVkLCB0aGUgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQgb24KKyAgICAgIHdyaXRlIGFuZCB3 aWxsIGJlIHN0b3JlZCBvbiBkaXNrLiAgPGxpdGVyYWw+VklSVFVBTDwvbGl0ZXJhbD4gaXMg dGhlCisgICAgICBkZWZhdWx0LgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+CkBAIC0y NDU5LDkgKzI0NjMsOSBAQCA8dGl0bGU+TXVsdGlwbGUgSWRlbnRpdHkgQ29sdW1uczwvdGl0 bGU+CiAgICA8dGl0bGU+R2VuZXJhdGVkIENvbHVtbnM8L3RpdGxlPgogCiAgICA8cGFyYT4K LSAgICBUaGUgb3B0aW9uIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgbm90IHN0YW5k YXJkIGJ1dCBpcyBhbHNvIHVzZWQgYnkKLSAgICBvdGhlciBTUUwgaW1wbGVtZW50YXRpb25z LiAgVGhlIFNRTCBzdGFuZGFyZCBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBzdG9yYWdlCi0gICAg b2YgZ2VuZXJhdGVkIGNvbHVtbnMuCisgICAgVGhlIG9wdGlvbnMgPGxpdGVyYWw+U1RPUkVE PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+VklSVFVBTDwvbGl0ZXJhbD4gYXJlCisgICAgbm90 IHN0YW5kYXJkIGJ1dCBhcmUgYWxzbyB1c2VkIGJ5IG90aGVyIFNRTCBpbXBsZW1lbnRhdGlv bnMuICBUaGUgU1FMCisgICAgc3RhbmRhcmQgZG9lcyBub3Qgc3BlY2lmeSB0aGUgc3RvcmFn ZSBvZiBnZW5lcmF0ZWQgY29sdW1ucy4KICAgIDwvcGFyYT4KICAgPC9yZWZzZWN0Mj4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC90 cmlnZ2VyLnNnbWwKaW5kZXggYTlhYmFhYjkwNTYuLjQ2YzZjMmYxMjZmIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC90cmlnZ2Vy LnNnbWwKQEAgLTI4OSw2ICsyODksMTAgQEAgPHRpdGxlPk92ZXJ2aWV3IG9mIFRyaWdnZXIg QmVoYXZpb3I8L3RpdGxlPgogICAgIDxsaXRlcmFsPkJFRk9SRTwvbGl0ZXJhbD4gdHJpZ2dl ci4gIENoYW5nZXMgdG8gdGhlIHZhbHVlIG9mIGEgZ2VuZXJhdGVkCiAgICAgY29sdW1uIGlu IGEgPGxpdGVyYWw+QkVGT1JFPC9saXRlcmFsPiB0cmlnZ2VyIGFyZSBpZ25vcmVkIGFuZCB3 aWxsIGJlCiAgICAgb3ZlcndyaXR0ZW4uCisgICAgVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBhcmUgbmV2ZXIgY29tcHV0ZWQgd2hlbiB0cmlnZ2VycyBmaXJlLiAgSW4gdGhlIEMKKyAg ICBsYW5ndWFnZSBpbnRlcmZhY2UsIHRoZWlyIGNvbnRlbnQgaXMgdW5kZWZpbmVkIGluIGEg dHJpZ2dlciBmdW5jdGlvbi4KKyAgICBIaWdoZXItbGV2ZWwgcHJvZ3JhbW1pbmcgbGFuZ3Vh Z2VzIHNob3VsZCBwcmV2ZW50IGFjY2VzcyB0byB2aXJ0dWFsCisgICAgZ2VuZXJhdGVkIGNv bHVtbnMgaW4gdHJpZ2dlcnMuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvY29tbW9uL3R1cGRlc2MuYwppbmRleCBjYzk0MDc0MjE5Ny4uNzczYTIwYWIzZjgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCkBAIC0zNDMsNiArMzQzLDcg QEAgQ3JlYXRlVHVwbGVEZXNjQ29weUNvbnN0cihUdXBsZURlc2MgdHVwZGVzYykKIAogCQlj cHktPmhhc19ub3RfbnVsbCA9IGNvbnN0ci0+aGFzX25vdF9udWxsOwogCQljcHktPmhhc19n ZW5lcmF0ZWRfc3RvcmVkID0gY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZDsKKwkJY3B5 LT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwgPSBjb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVh bDsKIAogCQlpZiAoKGNweS0+bnVtX2RlZnZhbCA9IGNvbnN0ci0+bnVtX2RlZnZhbCkgPiAw KQogCQl7CkBAIC02NDAsNiArNjQxLDggQEAgZXF1YWxUdXBsZURlc2NzKFR1cGxlRGVzYyB0 dXBkZXNjMSwgVHVwbGVEZXNjIHR1cGRlc2MyKQogCQkJcmV0dXJuIGZhbHNlOwogCQlpZiAo Y29uc3RyMS0+aGFzX2dlbmVyYXRlZF9zdG9yZWQgIT0gY29uc3RyMi0+aGFzX2dlbmVyYXRl ZF9zdG9yZWQpCiAJCQlyZXR1cm4gZmFsc2U7CisJCWlmIChjb25zdHIxLT5oYXNfZ2VuZXJh dGVkX3ZpcnR1YWwgIT0gY29uc3RyMi0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCQkJcmV0 dXJuIGZhbHNlOwogCQluID0gY29uc3RyMS0+bnVtX2RlZnZhbDsKIAkJaWYgKG4gIT0gKGlu dCkgY29uc3RyMi0+bnVtX2RlZnZhbCkKIAkJCXJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCmluZGV4IGU4MTdmOGY4Zjg0Li43M2Iz MDdkZDA4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hh bmRsZXIuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5j CkBAIC0yMDQ3LDYgKzIwNDcsOCBAQCBoZWFwYW1fcmVsYXRpb25fbmVlZHNfdG9hc3RfdGFi bGUoUmVsYXRpb24gcmVsKQogCiAJCWlmIChhdHQtPmF0dGlzZHJvcHBlZCkKIAkJCWNvbnRp bnVlOworCQlpZiAoYXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9W SVJUVUFMKQorCQkJY29udGludWU7CiAJCWRhdGFfbGVuZ3RoID0gYXR0X2FsaWduX25vbWlu YWwoZGF0YV9sZW5ndGgsIGF0dC0+YXR0YWxpZ24pOwogCQlpZiAoYXR0LT5hdHRsZW4gPiAw KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDAyNDUyMWM2NmMwLi4yZTBmZDY3ZTkyZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9oZWFwLmMKQEAgLTUwNiw3ICs1MDYsNyBAQCBDaGVja0F0dHJpYnV0ZU5h bWVzVHlwZXMoVHVwbGVEZXNjIHR1cGRlc2MsIGNoYXIgcmVsa2luZCwKIAkJCQkJCSAgIFR1 cGxlRGVzY0F0dHIodHVwZGVzYywgaSktPmF0dHR5cGlkLAogCQkJCQkJICAgVHVwbGVEZXNj QXR0cih0dXBkZXNjLCBpKS0+YXR0Y29sbGF0aW9uLAogCQkJCQkJICAgTklMLCAvKiBhc3N1 bWUgd2UncmUgY3JlYXRpbmcgYSBuZXcgcm93dHlwZSAqLwotCQkJCQkJICAgZmxhZ3MpOwor CQkJCQkJICAgZmxhZ3MgfCAoVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0Z2VuZXJh dGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCA/IENIS0FUWVBFX0lTX1ZJUlRV QUwgOiAwKSk7CiAJfQogfQogCkBAIC01ODEsNiArNTgxLDE3IEBAIENoZWNrQXR0cmlidXRl VHlwZShjb25zdCBjaGFyICphdHRuYW1lLAogCX0KIAllbHNlIGlmIChhdHRfdHlwdHlwZSA9 PSBUWVBUWVBFX0RPTUFJTikKIAl7CisJCS8qCisJCSAqIFByZXZlbnQgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBmcm9tIGhhdmluZyBhIGRvbWFpbiB0eXBlLiAgV2UKKwkJICogd291 bGQgaGF2ZSB0byBlbmZvcmNlIGRvbWFpbiBjb25zdHJhaW50cyB3aGVuIGNvbHVtbnMgdW5k ZXJseWluZworCQkgKiB0aGUgZ2VuZXJhdGVkIGNvbHVtbiBjaGFuZ2UuICBUaGlzIGNvdWxk IHBvc3NpYmx5IGJlIGltcGxlbWVudGVkLAorCQkgKiBidXQgaXQncyBub3QuCisJCSAqLwor CQlpZiAoZmxhZ3MgJiBDSEtBVFlQRV9JU19WSVJUVUFMKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkg ZXJybXNnKCJ2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gXCIlc1wiIGNhbm5vdCBoYXZlIGEg ZG9tYWluIHR5cGUiLCBhdHRuYW1lKSkpOworCiAJCS8qCiAJCSAqIElmIGl0J3MgYSBkb21h aW4sIHJlY3Vyc2UgdG8gY2hlY2sgaXRzIGJhc2UgdHlwZS4KIAkJICovCkBAIC0yNTQ1LDYg KzI1NTYsMTEgQEAgQWRkUmVsYXRpb25OZXdDb25zdHJhaW50cyhSZWxhdGlvbiByZWwsCiAJ CQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJCWVy cm1zZygiY2Fubm90IGFkZCBub3QtbnVsbCBjb25zdHJhaW50IG9uIHN5c3RlbSBjb2x1bW4g XCIlc1wiIiwKIAkJCQkJCQkgICBzdHJWYWwobGluaXRpYWwoY2RlZi0+a2V5cykpKSk7CisJ CQkvKiBUT0RPOiBzZWUgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbigpICovCisJCQlpZiAo Z2V0X2F0dGdlbmVyYXRlZChSZWxhdGlvbkdldFJlbGlkKHJlbCksIGNvbG51bSkgPT0gQVRU UklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNn KCJub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2aXJ0dWFsIGdl bmVyYXRlZCBjb2x1bW5zIikpKTsKIAogCQkJLyoKIAkJCSAqIElmIHRoZSBjb2x1bW4gYWxy ZWFkeSBoYXMgYSBub3QtbnVsbCBjb25zdHJhaW50LCB3ZSBkb24ndCB3YW50CkBAIC0yODMz LDYgKzI4NDksMTEgQEAgQWRkUmVsYXRpb25Ob3ROdWxsQ29uc3RyYWludHMoUmVsYXRpb24g cmVsLCBMaXN0ICpjb25zdHJhaW50cywKIAkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCiAJCQkJCWVycm1zZygiY2Fubm90IGFkZCBub3QtbnVsbCBjb25z dHJhaW50IG9uIHN5c3RlbSBjb2x1bW4gXCIlc1wiIiwKIAkJCQkJCSAgIHN0clZhbChsaW5p dGlhbChjb25zdHItPmtleXMpKSkpOworCQkvKiBUT0RPOiBzZWUgdHJhbnNmb3JtQ29sdW1u RGVmaW5pdGlvbigpICovCisJCWlmIChnZXRfYXR0Z2VuZXJhdGVkKFJlbGF0aW9uR2V0UmVs aWQocmVsKSwgYXR0bnVtKSA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisJCQkJCSBlcnJtc2coIm5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBub3Qgc3Vw cG9ydGVkIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMiKSkpOwogCiAJCS8qCiAJCSAq IEEgY29sdW1uIGNhbiBvbmx5IGhhdmUgb25lIG5vdC1udWxsIGNvbnN0cmFpbnQsIHNvIGRp c2NhcmQgYW55CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKaW5kZXggMmE3NzY5YjFmZDEuLjMx OTI2ZDdkMDU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jCkBAIC0xMDM3LDYgKzEwMzcs MTAgQEAgZXhhbWluZV9hdHRyaWJ1dGUoUmVsYXRpb24gb25lcmVsLCBpbnQgYXR0bnVtLCBO b2RlICppbmRleF9leHByKQogCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQpCiAJCXJldHVybiBO VUxMOwogCisJLyogRG9uJ3QgYW5hbHl6ZSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zICov CisJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRV QUwpCisJCXJldHVybiBOVUxMOworCiAJLyoKIAkgKiBHZXQgYXR0c3RhdHRhcmdldCB2YWx1 ZS4gIFNldCB0byAtMSBpZiBudWxsLiAgKEFuYWx5emUgZnVuY3Rpb25zIGV4cGVjdAogCSAq IC0xIHRvIG1lYW4gdXNlIGRlZmF1bHRfc3RhdGlzdGljc190YXJnZXQ7IHNlZSBmb3IgZXhh bXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRleCBkNmUyM2NhZWYxNy4uMTc0 NTQxZjZhZjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCkBAIC0xMTExLDYgKzEx MTEsOSBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkvKgogCSAqIFdlIGRpc2FsbG93 IGluZGV4ZXMgb24gc3lzdGVtIGNvbHVtbnMuICBUaGV5IHdvdWxkIG5vdCBuZWNlc3Nhcmls eSBnZXQKIAkgKiB1cGRhdGVkIGNvcnJlY3RseSwgYW5kIHRoZXkgZG9uJ3Qgc2VlbSB1c2Vm dWwgYW55d2F5LgorCSAqCisJICogQWxzbyBkaXNhbGxvdyB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zIGluIGluZGV4ZXMgKHVzZSBleHByZXNzaW9uCisJICogaW5kZXggaW5zdGVhZCku CiAJICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleEluZm8tPmlpX051bUluZGV4QXR0 cnM7IGkrKykKIAl7CkBAIC0xMTIwLDE0ICsxMTIzLDI0IEBAIERlZmluZUluZGV4KE9pZCB0 YWJsZUlkLAogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJpbmRleCBjcmVhdGlvbiBvbiBz eXN0ZW0gY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKworCisJCWlmIChUdXBsZURl c2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bm8gLSAxKS0+YXR0Z2VuZXJhdGVk ID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIHN0 bXQtPmlzY29uc3RyYWludCA/CisJCQkJCSBlcnJtc2coInVuaXF1ZSBjb25zdHJhaW50cyBv biB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIikgOgorCQkJ CQkgZXJybXNnKCJpbmRleGVzIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5v dCBzdXBwb3J0ZWQiKSkpOwogCX0KIAogCS8qCi0JICogQWxzbyBjaGVjayBmb3Igc3lzdGVt IGNvbHVtbnMgdXNlZCBpbiBleHByZXNzaW9ucyBvciBwcmVkaWNhdGVzLgorCSAqIEFsc28g Y2hlY2sgZm9yIHN5c3RlbSBhbmQgZ2VuZXJhdGVkIGNvbHVtbnMgdXNlZCBpbiBleHByZXNz aW9ucyBvcgorCSAqIHByZWRpY2F0ZXMuCiAJICovCiAJaWYgKGluZGV4SW5mby0+aWlfRXhw cmVzc2lvbnMgfHwgaW5kZXhJbmZvLT5paV9QcmVkaWNhdGUpCiAJewogCQlCaXRtYXBzZXQg ICppbmRleGF0dHJzID0gTlVMTDsKKwkJaW50CQkJajsKIAogCQlwdWxsX3ZhcmF0dG5vcygo Tm9kZSAqKSBpbmRleEluZm8tPmlpX0V4cHJlc3Npb25zLCAxLCAmaW5kZXhhdHRycyk7CiAJ CXB1bGxfdmFyYXR0bm9zKChOb2RlICopIGluZGV4SW5mby0+aWlfUHJlZGljYXRlLCAxLCAm aW5kZXhhdHRycyk7CkBAIC0xMTQwLDYgKzExNTMsMjQgQEAgRGVmaW5lSW5kZXgoT2lkIHRh YmxlSWQsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CiAJCQkJCQkgZXJybXNnKCJpbmRleCBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBpcyBu b3Qgc3VwcG9ydGVkIikpKTsKIAkJfQorCisJCS8qCisJCSAqIFhYWCBWaXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW5zIGluIGluZGV4IGV4cHJlc3Npb25zIG9yIHByZWRpY2F0ZXMKKwkJICog Y291bGQgYmUgc3VwcG9ydGVkLCBidXQgaXQgbmVlZHMgc3VwcG9ydCBpbgorCQkgKiBSZWxh dGlvbkdldEluZGV4RXhwcmVzc2lvbnMoKSBhbmQgUmVsYXRpb25HZXRJbmRleFByZWRpY2F0 ZSgpLgorCQkgKi8KKwkJaiA9IC0xOworCQl3aGlsZSAoKGogPSBibXNfbmV4dF9tZW1iZXIo aW5kZXhhdHRycywgaikpID49IDApCisJCXsKKwkJCUF0dHJOdW1iZXIJYXR0bm8gPSBqICsg Rmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcjsKKworCQkJaWYgKFR1cGxlRGVz Y0F0dHIoUmVsYXRpb25HZXREZXNjcihyZWwpLCBhdHRubyAtIDEpLT5hdHRnZW5lcmF0ZWQg PT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkg c3RtdC0+aXNjb25zdHJhaW50ID8KKwkJCQkJCSBlcnJtc2coInVuaXF1ZSBjb25zdHJhaW50 cyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIikgOgor CQkJCQkJIGVycm1zZygiaW5kZXhlcyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFy ZSBub3Qgc3VwcG9ydGVkIikpKTsKKwkJfQogCX0KIAogCS8qIElzIGluZGV4IHNhZmUgZm9y IG90aGVycyB0byBpZ25vcmU/ICBTZWUgc2V0X2luZGV4c2FmZV9wcm9jZmxhZ3MoKSAqLwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCAzNTc0N2IzZGY1 Zi4uYjQ5MTRlZTU5OTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21k cy5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NsYXVzZS5o IgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmgiCisjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5o IgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC02ODcsNiArNjg4LDggQEAgVHJhbnNm b3JtUHViV2hlcmVDbGF1c2VzKExpc3QgKnRhYmxlcywgY29uc3QgY2hhciAqcXVlcnlTdHJp bmcsCiAJCS8qIEZpeCB1cCBjb2xsYXRpb24gaW5mb3JtYXRpb24gKi8KIAkJYXNzaWduX2V4 cHJfY29sbGF0aW9ucyhwc3RhdGUsIHdoZXJlY2xhdXNlKTsKIAorCQl3aGVyZWNsYXVzZSA9 IChOb2RlICopIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKHdoZXJlY2xhdXNl LCBwcmktPnJlbGF0aW9uLCAxKTsKKwogCQkvKgogCQkgKiBXZSBhbGxvdyBvbmx5IHNpbXBs ZSBleHByZXNzaW9ucyBpbiByb3cgZmlsdGVycy4gU2VlCiAJCSAqIGNoZWNrX3NpbXBsZV9y b3dmaWx0ZXJfZXhwcl93YWxrZXIuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zdGF0c2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCmluZGV4 IGE4MTc4MjFiZjZkLi5lMjRkNTQwY2Q0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc3RhdHNjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRz LmMKQEAgLTI0Niw2ICsyNDYsMTIgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0 bXQgKnN0bXQpCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCiAJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHN5c3RlbSBjb2x1 bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOwogCisJCQkvKiBEaXNhbGxvdyB1c2Ugb2Ygdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJaWYgKGF0 dEZvcm0tPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwogCQkJLyog RGlzYWxsb3cgZGF0YSB0eXBlcyB3aXRob3V0IGEgbGVzcy10aGFuIG9wZXJhdG9yICovCiAJ CQl0eXBlID0gbG9va3VwX3R5cGVfY2FjaGUoYXR0Rm9ybS0+YXR0dHlwaWQsIFRZUEVDQUNI RV9MVF9PUFIpOwogCQkJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQpAQCAtMjY5 LDYgKzI3NSwxMiBAQCBDcmVhdGVTdGF0aXN0aWNzKENyZWF0ZVN0YXRzU3RtdCAqc3RtdCkK IAkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJ CSBlcnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMgaXMgbm90 IHN1cHBvcnRlZCIpKSk7CiAKKwkJCS8qIERpc2FsbG93IHVzZSBvZiB2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW5zIGluIGV4dGVuZGVkIHN0YXRzICovCisJCQlpZiAoZ2V0X2F0dGdlbmVy YXRlZChyZWxpZCwgdmFyLT52YXJhdHRubykgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJU VUFMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9u IG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisK IAkJCS8qIERpc2FsbG93IGRhdGEgdHlwZXMgd2l0aG91dCBhIGxlc3MtdGhhbiBvcGVyYXRv ciAqLwogCQkJdHlwZSA9IGxvb2t1cF90eXBlX2NhY2hlKHZhci0+dmFydHlwZSwgVFlQRUNB Q0hFX0xUX09QUik7CiAJCQlpZiAodHlwZS0+bHRfb3ByID09IEludmFsaWRPaWQpCkBAIC0y OTAsNyArMzAyLDYgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQgKnN0bXQp CiAKIAkJCUFzc2VydChleHByICE9IE5VTEwpOwogCi0JCQkvKiBEaXNhbGxvdyBleHByZXNz aW9ucyByZWZlcmVuY2luZyBzeXN0ZW0gYXR0cmlidXRlcy4gKi8KIAkJCXB1bGxfdmFyYXR0 bm9zKGV4cHIsIDEsICZhdHRudW1zKTsKIAogCQkJayA9IC0xOwpAQCAtMjk4LDEwICszMDks MTcgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQgKnN0bXQpCiAJCQl7CiAJ CQkJQXR0ck51bWJlcglhdHRudW0gPSBrICsgRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0 ZU51bWJlcjsKIAorCQkJCS8qIERpc2FsbG93IGV4cHJlc3Npb25zIHJlZmVyZW5jaW5nIHN5 c3RlbSBhdHRyaWJ1dGVzLiAqLwogCQkJCWlmIChhdHRudW0gPD0gMCkKIAkJCQkJZXJlcG9y dChFUlJPUiwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCiAJCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiBzeXN0ZW0gY29s dW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKworCQkJCS8qIERpc2FsbG93IHVzZSBvZiB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGV4dGVuZGVkIHN0YXRzICovCisJCQkJaWYg KGdldF9hdHRnZW5lcmF0ZWQocmVsaWQsIGF0dG51bSkgPT0gQVRUUklCVVRFX0dFTkVSQVRF RF9WSVJUVUFMKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNz IGNyZWF0aW9uIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRl ZCIpKSk7CiAJCQl9CiAKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4 IDQxODFjMTEwZWI3Li5lNjVjZGU5YzlhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKQEAgLTMwMjUsNiArMzAyNSwxNSBAQCBNZXJnZUF0dHJpYnV0ZXMoTGlzdCAqY29sdW1u cywgY29uc3QgTGlzdCAqc3VwZXJzLCBjaGFyIHJlbHBlcnNpc3RlbmNlLAogCQkJCQkJCQkJ IGVycmhpbnQoIkEgY2hpbGQgdGFibGUgY29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5s ZXNzIGl0cyBwYXJlbnQgY29sdW1uIGlzLiIpKSk7CiAJCQkJCX0KIAorCQkJCQlpZiAoY29s ZGVmLT5nZW5lcmF0ZWQgJiYgcmVzdGRlZi0+Z2VuZXJhdGVkICYmIGNvbGRlZi0+Z2VuZXJh dGVkICE9IHJlc3RkZWYtPmdlbmVyYXRlZCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fREVGSU5JVElPTiksCisJCQkJ CQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29s dW1uIG9mIGRpZmZlcmVudCBraW5kIiwKKwkJCQkJCQkJCQlyZXN0ZGVmLT5jb2xuYW1lKSwK KwkJCQkJCQkJIGVycmRldGFpbCgiUGFyZW50IGNvbHVtbiBpcyAlcywgY2hpbGQgY29sdW1u IGlzICVzLiIsCisJCQkJCQkJCQkJICAgY29sZGVmLT5nZW5lcmF0ZWQgPT0gQVRUUklCVVRF X0dFTkVSQVRFRF9TVE9SRUQgPyAiU1RPUkVEIiA6ICJWSVJUVUFMIiwKKwkJCQkJCQkJCQkg ICByZXN0ZGVmLT5nZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQgPyAi U1RPUkVEIiA6ICJWSVJUVUFMIikpKTsKKwogCQkJCQkvKgogCQkJCQkgKiBPdmVycmlkZSB0 aGUgcGFyZW50J3MgZGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBjb2x1bW4KIAkJCQkJICogKGNv bGRlZi0+Y29va2VkX2RlZmF1bHQpIHdpdGggdGhlIHBhcnRpdGlvbidzIGxvY2FsCkBAIC0z Mjk3LDYgKzMzMDYsMTUgQEAgTWVyZ2VDaGlsZEF0dHJpYnV0ZShMaXN0ICppbmhfY29sdW1u cywgaW50IGV4aXN0X2F0dG5vLCBpbnQgbmV3Y29sX2F0dG5vLCBjb25zdAogCQkJCQkgZXJy aGludCgiQSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fubm90IGJlIGdlbmVyYXRlZCB1bmxlc3Mg aXRzIHBhcmVudCBjb2x1bW4gaXMuIikpKTsKIAl9CiAKKwlpZiAoaW5oZGVmLT5nZW5lcmF0 ZWQgJiYgbmV3ZGVmLT5nZW5lcmF0ZWQgJiYgbmV3ZGVmLT5nZW5lcmF0ZWQgIT0gaW5oZGVm LT5nZW5lcmF0ZWQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX0NPTFVNTl9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wi IGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZCIsCisJ CQkJCQlpbmhkZWYtPmNvbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIlBhcmVudCBjb2x1bW4g aXMgJXMsIGNoaWxkIGNvbHVtbiBpcyAlcy4iLAorCQkJCQkJICAgaW5oZGVmLT5nZW5lcmF0 ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQgPyAiU1RPUkVEIiA6ICJWSVJUVUFM IiwKKwkJCQkJCSAgIG5ld2RlZi0+Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURf U1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIpKSk7CisKIAkvKgogCSAqIElmIG5ldyBk ZWYgaGFzIGEgZGVmYXVsdCwgb3ZlcnJpZGUgcHJldmlvdXMgZGVmYXVsdAogCSAqLwpAQCAt NjA5OCw3ICs2MTE2LDcgQEAgQVRSZXdyaXRlVGFibGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFi LCBPaWQgT0lETmV3SGVhcCwgTE9DS01PREUgbG9ja21vZGUpCiAJCXsKIAkJCWNhc2UgQ09O U1RSX0NIRUNLOgogCQkJCW5lZWRzY2FuID0gdHJ1ZTsKLQkJCQljb24tPnF1YWxzdGF0ZSA9 IEV4ZWNQcmVwYXJlRXhwcigoRXhwciAqKSBjb24tPnF1YWwsIGVzdGF0ZSk7CisJCQkJY29u LT5xdWFsc3RhdGUgPSBFeGVjUHJlcGFyZUV4cHIoKEV4cHIgKikgZXhwYW5kX2dlbmVyYXRl ZF9jb2x1bW5zX2luX2V4cHIoY29uLT5xdWFsLCBuZXdyZWwgPyBuZXdyZWwgOiBvbGRyZWws IDEpLCBlc3RhdGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBDT05TVFJfRk9SRUlHTjoKIAkJ CQkvKiBOb3RoaW5nIHRvIGRvIGhlcmUgKi8KQEAgLTcyNzYsNyArNzI5NCw3IEBAIEFURXhl Y0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0 aW9uIHJlbCwKIAkJICogREVGQVVMVCB2YWx1ZSBvdXRzaWRlIG9mIHRoZSBoZWFwLiAgVGhp cyBtYXkgYmUgZGlzYWJsZWQgaW5zaWRlCiAJCSAqIEFkZFJlbGF0aW9uTmV3Q29uc3RyYWlu dHMgaWYgdGhlIG9wdGltaXphdGlvbiBjYW5ub3QgYmUgYXBwbGllZC4KIAkJICovCi0JCXJh d0VudC0+bWlzc2luZ01vZGUgPSAoIWNvbERlZi0+Z2VuZXJhdGVkKTsKKwkJcmF3RW50LT5t aXNzaW5nTW9kZSA9IChjb2xEZWYtPmdlbmVyYXRlZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVE X1NUT1JFRCk7CiAKIAkJcmF3RW50LT5nZW5lcmF0ZWQgPSBjb2xEZWYtPmdlbmVyYXRlZDsK IApAQCAtNzc1Myw2ICs3NzcxLDE0IEBAIEFURXhlY1NldE5vdE51bGwoTGlzdCAqKndxdWV1 ZSwgUmVsYXRpb24gcmVsLCBjaGFyICpjb25OYW1lLCBjaGFyICpjb2xOYW1lLAogCQkJCSBl cnJtc2coImNhbm5vdCBhbHRlciBzeXN0ZW0gY29sdW1uIFwiJXNcIiIsCiAJCQkJCQljb2xO YW1lKSkpOwogCisJLyogVE9ETzogc2VlIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24oKSAq LworCWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bnVtIC0g MSktPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAorCQkJCSBlcnJtc2coIm5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBub3Qgc3VwcG9y dGVkIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMiKSwKKwkJCQkgZXJyZGV0YWlsKCJD b2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbi4iLAorCQkJCQkJICAgY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo cmVsKSkpKTsKKwogCS8qIFNlZSBpZiB0aGVyZSdzIGFscmVhZHkgYSBjb25zdHJhaW50ICov CiAJdHVwbGUgPSBmaW5kTm90TnVsbENvbnN0cmFpbnRBdHRudW0oUmVsYXRpb25HZXRSZWxp ZChyZWwpLCBhdHRudW0pOwogCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKQEAgLTgz NzksNiArODQwNSw4IEBAIEFURXhlY1NldEV4cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJSGVhcFR1cGxlCXR1 cGxlOwogCUZvcm1fcGdfYXR0cmlidXRlIGF0dFR1cDsKIAlBdHRyTnVtYmVyCWF0dG51bTsK KwljaGFyCQlhdHRnZW5lcmF0ZWQ7CisJYm9vbAkJcmV3cml0ZTsKIAlPaWQJCQlhdHRyZGVm b2lkOwogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAlFeHByCSAgICpkZWZ2YWw7CkBAIC04 MzkzLDM2ICs4NDIxLDcwIEBAIEFURXhlY1NldEV4cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5m byAqdGFiLCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJCQkJCQljb2xO YW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogCiAJYXR0VHVwID0gKEZv cm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QodHVwbGUpOwotCWF0dG51bSA9IGF0dFR1cC0+ YXR0bnVtOwogCisJYXR0bnVtID0gYXR0VHVwLT5hdHRudW07CiAJaWYgKGF0dG51bSA8PSAw KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgc3lzdGVtIGNvbHVtbiBc IiVzXCIiLAogCQkJCQkJY29sTmFtZSkpKTsKIAotCWlmIChhdHRUdXAtPmF0dGdlbmVyYXRl ZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwlhdHRnZW5lcmF0ZWQgPSBhdHRU dXAtPmF0dGdlbmVyYXRlZDsKKwlpZiAoIWF0dGdlbmVyYXRlZCkKIAkJZXJlcG9ydChFUlJP UiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NU QVRFKSwKIAkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBp cyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uIiwKIAkJCQkJCWNvbE5hbWUsIFJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0JUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKIAogCS8q Ci0JICogQ2xlYXIgYWxsIHRoZSBtaXNzaW5nIHZhbHVlcyBpZiB3ZSdyZSByZXdyaXRpbmcg dGhlIHRhYmxlLCBzaW5jZSB0aGlzCi0JICogcmVuZGVycyB0aGVtIHBvaW50bGVzcy4KKwkg KiBUT0RPOiBUaGlzIGNvdWxkIGJlIGRvbmUsIGp1c3QgbmVlZCB0byByZWNoZWNrIGFueSBj b25zdHJhaW50cworCSAqIGFmdGVyd2FyZHMuCiAJICovCi0JUmVsYXRpb25DbGVhck1pc3Np bmcocmVsKTsKLQotCS8qIG1ha2Ugc3VyZSB3ZSBkb24ndCBjb25mbGljdCB3aXRoIGxhdGVy IGF0dHJpYnV0ZSBtb2RpZmljYXRpb25zICovCi0JQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQo KTsKKwlpZiAoYXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCAm JgorCQlyZWwtPnJkX2F0dC0+Y29uc3RyICYmIHJlbC0+cmRfYXR0LT5jb25zdHItPm51bV9j aGVjayA+IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIkFMVEVSIFRBQkxFIC8gU0VUIEVY UFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBvbiB0YWJsZXMgd2l0aCBjaGVjayBjb25zdHJhaW50cyIpLAorCQkJCSBlcnJkZXRhaWwo IkNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIGEgdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1uLiIsCisJCQkJCQkgICBjb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShyZWwpKSkpOwogCiAJLyoKLQkgKiBGaW5kIGV2ZXJ5dGhpbmcgdGhhdCBkZXBlbmRzIG9u IHRoZSBjb2x1bW4gKGNvbnN0cmFpbnRzLCBpbmRleGVzLCBldGMpLAotCSAqIGFuZCByZWNv cmQgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGxldCB1cyByZWNyZWF0ZSB0aGUgb2JqZWN0cyBh ZnRlcgotCSAqIHJld3JpdGUuCisJICogV2UgbmVlZCB0byBwcmV2ZW50IHRoaXMgYmVjYXVz ZSBhIGNoYW5nZSBvZiBleHByZXNzaW9uIGNvdWxkIGFmZmVjdCBhCisJICogcm93IGZpbHRl ciBhbmQgaW5qZWN0IGV4cHJlc3Npb25zIHRoYXQgYXJlIG5vdCBwZXJtaXR0ZWQgaW4gYSBy b3cKKwkgKiBmaWx0ZXIuICBYWFggV2UgY291bGQgdHJ5IHRvIGhhdmUgYSBtb3JlIHByZWNp c2UgY2hlY2sgdG8gY2F0Y2ggb25seQorCSAqIHB1YmxpY2F0aW9ucyB3aXRoIHJvdyBmaWx0 ZXJzLCBvciBldmVuIHJlLXZlcmlmeSB0aGUgcm93IGZpbHRlcgorCSAqIGV4cHJlc3Npb25z LgogCSAqLwotCVJlbWVtYmVyQWxsRGVwZW5kZW50Rm9yUmVidWlsZGluZyh0YWIsIEFUX1Nl dEV4cHJlc3Npb24sIHJlbCwgYXR0bnVtLCBjb2xOYW1lKTsKKwlpZiAoYXR0Z2VuZXJhdGVk ID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCAmJgorCQlHZXRSZWxhdGlvblB1Ymxp Y2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCkpICE9IE5JTCkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ IGVycm1zZygiQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVk IGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIG9uIHRhYmxlcyB0aGF0IGFyZSBwYXJ0 IG9mIGEgcHVibGljYXRpb24iKSwKKwkJCQkgZXJyZGV0YWlsKCJDb2x1bW4gXCIlc1wiIG9m IHJlbGF0aW9uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4iLAorCQkJ CQkJICAgY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKworCXJl d3JpdGUgPSAoYXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKTsK KworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwlpZiAocmV3cml0ZSkKKwl7CisJCS8q CisJCSAqIENsZWFyIGFsbCB0aGUgbWlzc2luZyB2YWx1ZXMgaWYgd2UncmUgcmV3cml0aW5n IHRoZSB0YWJsZSwgc2luY2UKKwkJICogdGhpcyByZW5kZXJzIHRoZW0gcG9pbnRsZXNzLgor CQkgKi8KKwkJUmVsYXRpb25DbGVhck1pc3NpbmcocmVsKTsKKworCQkvKiBtYWtlIHN1cmUg d2UgZG9uJ3QgY29uZmxpY3Qgd2l0aCBsYXRlciBhdHRyaWJ1dGUgbW9kaWZpY2F0aW9ucyAq LworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJCS8qCisJCSAqIEZpbmQgZXZl cnl0aGluZyB0aGF0IGRlcGVuZHMgb24gdGhlIGNvbHVtbiAoY29uc3RyYWludHMsIGluZGV4 ZXMsCisJCSAqIGV0YyksIGFuZCByZWNvcmQgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGxldCB1 cyByZWNyZWF0ZSB0aGUgb2JqZWN0cworCQkgKiBhZnRlciByZXdyaXRlLgorCQkgKi8KKwkJ UmVtZW1iZXJBbGxEZXBlbmRlbnRGb3JSZWJ1aWxkaW5nKHRhYiwgQVRfU2V0RXhwcmVzc2lv biwgcmVsLCBhdHRudW0sIGNvbE5hbWUpOworCX0KIAogCS8qCiAJICogRHJvcCB0aGUgZGVw ZW5kZW5jeSByZWNvcmRzIG9mIHRoZSBHRU5FUkFURUQgZXhwcmVzc2lvbiwgaW4gcGFydGlj dWxhcgpAQCAtODQ1MSw3ICs4NTEzLDcgQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVk VGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAly YXdFbnQtPmF0dG51bSA9IGF0dG51bTsKIAlyYXdFbnQtPnJhd19kZWZhdWx0ID0gbmV3RXhw cjsKIAlyYXdFbnQtPm1pc3NpbmdNb2RlID0gZmFsc2U7Ci0JcmF3RW50LT5nZW5lcmF0ZWQg PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRDsKKwlyYXdFbnQtPmdlbmVyYXRlZCA9IGF0 dGdlbmVyYXRlZDsKIAogCS8qIFN0b3JlIHRoZSBnZW5lcmF0ZWQgZXhwcmVzc2lvbiAqLwog CUFkZFJlbGF0aW9uTmV3Q29uc3RyYWludHMocmVsLCBsaXN0X21ha2UxKHJhd0VudCksIE5J TCwKQEAgLTg0NjAsMTYgKzg1MjIsMTkgQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVk VGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkv KiBNYWtlIGFib3ZlIG5ldyBleHByZXNzaW9uIHZpc2libGUgKi8KIAlDb21tYW5kQ291bnRl ckluY3JlbWVudCgpOwogCi0JLyogUHJlcGFyZSBmb3IgdGFibGUgcmV3cml0ZSAqLwotCWRl ZnZhbCA9IChFeHByICopIGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJlbCwgYXR0bnVtKTsKKwlp ZiAocmV3cml0ZSkKKwl7CisJCS8qIFByZXBhcmUgZm9yIHRhYmxlIHJld3JpdGUgKi8KKwkJ ZGVmdmFsID0gKEV4cHIgKikgYnVpbGRfY29sdW1uX2RlZmF1bHQocmVsLCBhdHRudW0pOwog Ci0JbmV3dmFsID0gKE5ld0NvbHVtblZhbHVlICopIHBhbGxvYzAoc2l6ZW9mKE5ld0NvbHVt blZhbHVlKSk7Ci0JbmV3dmFsLT5hdHRudW0gPSBhdHRudW07Ci0JbmV3dmFsLT5leHByID0g ZXhwcmVzc2lvbl9wbGFubmVyKGRlZnZhbCk7Ci0JbmV3dmFsLT5pc19nZW5lcmF0ZWQgPSB0 cnVlOworCQluZXd2YWwgPSAoTmV3Q29sdW1uVmFsdWUgKikgcGFsbG9jMChzaXplb2YoTmV3 Q29sdW1uVmFsdWUpKTsKKwkJbmV3dmFsLT5hdHRudW0gPSBhdHRudW07CisJCW5ld3ZhbC0+ ZXhwciA9IGV4cHJlc3Npb25fcGxhbm5lcihkZWZ2YWwpOworCQluZXd2YWwtPmlzX2dlbmVy YXRlZCA9IHRydWU7CiAKLQl0YWItPm5ld3ZhbHMgPSBsYXBwZW5kKHRhYi0+bmV3dmFscywg bmV3dmFsKTsKLQl0YWItPnJld3JpdGUgfD0gQVRfUkVXUklURV9ERUZBVUxUX1ZBTDsKKwkJ dGFiLT5uZXd2YWxzID0gbGFwcGVuZCh0YWItPm5ld3ZhbHMsIG5ld3ZhbCk7CisJCXRhYi0+ cmV3cml0ZSB8PSBBVF9SRVdSSVRFX0RFRkFVTFRfVkFMOworCX0KIAogCS8qIERyb3AgYW55 IHBnX3N0YXRpc3RpYyBlbnRyeSBmb3IgdGhlIGNvbHVtbiAqLwogCVJlbW92ZVN0YXRpc3Rp Y3MoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBhdHRudW0pOwpAQCAtODU1OCwxNyArODYyMywz MCBAQCBBVEV4ZWNEcm9wRXhwcmVzc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNv bE5hbWUsIGJvb2wgbWlzc2luZ19vaywgTE9DS01PRAogCQkJCSBlcnJtc2coImNhbm5vdCBh bHRlciBzeXN0ZW0gY29sdW1uIFwiJXNcIiIsCiAJCQkJCQljb2xOYW1lKSkpOwogCi0JaWYg KGF0dFR1cC0+YXR0Z2VuZXJhdGVkICE9IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQor CS8qCisJICogVE9ETzogVGhpcyBjb3VsZCBiZSBkb25lLCBidXQgaXQgd291bGQgbmVlZCBh IHRhYmxlIHJld3JpdGUgdG8KKwkgKiBtYXRlcmlhbGl6ZSB0aGUgZ2VuZXJhdGVkIHZhbHVl cy4gIE5vdGUgdGhhdCBmb3IgdGhlIHRpbWUgYmVpbmcsIHdlCisJICogc3RpbGwgZXJyb3Ig d2l0aCBtaXNzaW5nX29rLCBzbyB0aGF0IHdlIGRvbid0IHNpbGVudGx5IGxlYXZlIHRoZSBj b2x1bW4KKwkgKiBhcyBnZW5lcmF0ZWQuCisJICovCisJaWYgKGF0dFR1cC0+YXR0Z2VuZXJh dGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVy cm1zZygiQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBm b3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyIpLAorCQkJCSBlcnJkZXRhaWwoIkNvbHVt biBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1uLiIsCisJCQkJCQkgICBjb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KSkpOworCisJaWYgKCFhdHRUdXAtPmF0dGdlbmVyYXRlZCkKIAl7CiAJCWlmICghbWlzc2lu Z19vaykKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNU X05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAotCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIl c1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVt biIsCisJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlz IG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4iLAogCQkJCQkJCWNvbE5hbWUsIFJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbCkpKSk7CiAJCWVsc2UKIAkJewogCQkJZXJlcG9ydChOT1RJQ0Us Ci0JCQkJCShlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIG5v dCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uLCBza2lwcGluZyIsCisJCQkJCShlcnJtc2co ImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIGdlbmVyYXRlZCBj b2x1bW4sIHNraXBwaW5nIiwKIAkJCQkJCQljb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKSkpOwogCQkJaGVhcF9mcmVldHVwbGUodHVwbGUpOwogCQkJdGFibGVfY2xv c2UoYXR0cmVsYXRpb24sIFJvd0V4Y2x1c2l2ZUxvY2spOwpAQCAtODcxMSw2ICs4Nzg5LDE2 IEBAIEFURXhlY1NldFN0YXRpc3RpY3MoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xO YW1lLCBpbnQxNiBjb2xOdW0sIE5vZGUgKm5ld1ZhCiAJCQkJIGVycm1zZygiY2Fubm90IGFs dGVyIHN5c3RlbSBjb2x1bW4gXCIlc1wiIiwKIAkJCQkJCWNvbE5hbWUpKSk7CiAKKwkvKgor CSAqIFByZXZlbnQgdGhpcyBhcyBsb25nIGFzIHRoZSBBTkFMWVpFIGNvZGUgc2tpcHMgdmly dHVhbCBnZW5lcmF0ZWQKKwkgKiBjb2x1bW5zLgorCSAqLworCWlmIChhdHRydHVwbGUtPmF0 dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBzdGF0aXN0aWNzIG9uIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbiBcIiVzXCIiLAorCQkJCQkJY29sTmFtZSkpKTsKKwogCWlmIChyZWwtPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0lOREVYIHx8CiAJCXJlbC0+cmRfcmVsLT5yZWxr aW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVgpCiAJewpAQCAtOTkwMyw2ICs5OTkx LDE5IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJl ZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkJCQkgZXJybXNnKCJpbnZhbGlk ICVzIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCBjb250YWluaW5nIGdlbmVy YXRlZCBjb2x1bW4iLAogCQkJCQkJCQkiT04gREVMRVRFIikpKTsKIAkJfQorCisJCS8qCisJ CSAqIEZLcyBvbiB2aXJ0dWFsIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQuICBUaGlzIHdv dWxkIHJlcXVpcmUKKwkJICogdmFyaW91cyBhZGRpdGlvbmFsIHN1cHBvcnQgaW4gcmlfdHJp Z2dlcnMuYywgaW5jbHVkaW5nIHNwZWNpYWwKKwkJICogaGFuZGxpbmcgaW4gcmlfTnVsbENo ZWNrKCksIHJpX0tleXNFcXVhbCgpLAorCQkgKiBSSV9GS2V5X2ZrX3VwZF9jaGVja19yZXF1 aXJlZCgpIChzaW5jZSBhbGwgdmlydHVhbCBjb2x1bW5zIGFwcGVhcgorCQkgKiBhcyBOVUxM IHRoZXJlKS4gIEFsc28gbm90IHJlYWxseSBwcmFjdGljYWwgYXMgbG9uZyBhcyB5b3UgY2Fu J3QKKwkJICogaW5kZXggdmlydHVhbCBjb2x1bW5zLgorCQkgKi8KKwkJaWYgKGF0dGdlbmVy YXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ CSBlcnJtc2coImZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIG9uIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKSkpOwogCX0KIAogCS8qCkBAIC0xMjEwNCw3 ICsxMjIwNSw3IEBAIEFURXhlY1ZhbGlkYXRlQ29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBS ZWxhdGlvbiByZWwsIGNoYXIgKmNvbnN0ck5hbWUsCiAJCQl2YWwgPSBTeXNDYWNoZUdldEF0 dHJOb3ROdWxsKENPTlNUUk9JRCwgdHVwbGUsCiAJCQkJCQkJCQkJIEFudW1fcGdfY29uc3Ry YWludF9jb25iaW4pOwogCQkJY29uYmluID0gVGV4dERhdHVtR2V0Q1N0cmluZyh2YWwpOwot CQkJbmV3Y29uLT5xdWFsID0gKE5vZGUgKikgc3RyaW5nVG9Ob2RlKGNvbmJpbik7CisJCQlu ZXdjb24tPnF1YWwgPSAoTm9kZSAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhw cihzdHJpbmdUb05vZGUoY29uYmluKSwgcmVsLCAxKTsKIAogCQkJLyogRmluZCBvciBjcmVh dGUgd29yayBxdWV1ZSBlbnRyeSBmb3IgdGhpcyB0YWJsZSAqLwogCQkJdGFiID0gQVRHZXRR dWV1ZUVudHJ5KHdxdWV1ZSwgcmVsKTsKQEAgLTEzMjkwLDggKzEzMzkxLDEyIEBAIEFUUHJl cEFsdGVyQ29sdW1uVHlwZShMaXN0ICoqd3F1ZXVlLAogCQkJCQkgICBsaXN0X21ha2UxX29p ZChyZWwtPnJkX3JlbC0+cmVsdHlwZSksCiAJCQkJCSAgIDApOwogCi0JaWYgKHRhYi0+cmVs a2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8Ci0JCXRhYi0+cmVsa2luZCA9PSBSRUxLSU5E X1BBUlRJVElPTkVEX1RBQkxFKQorCWlmIChhdHRUdXAtPmF0dGdlbmVyYXRlZCA9PSBBVFRS SUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJeworCQkvKiBkbyBub3RoaW5nICovCisJfQor CWVsc2UgaWYgKHRhYi0+cmVsa2luZCA9PSBSRUxLSU5EX1JFTEFUSU9OIHx8CisJCQkgdGFi LT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJewogCQkvKgogCQkg KiBTZXQgdXAgYW4gZXhwcmVzc2lvbiB0byB0cmFuc2Zvcm0gdGhlIG9sZCBkYXRhIHZhbHVl IHRvIHRoZSBuZXcKQEAgLTEzMzY0LDExICsxMzQ2OSwxMiBAQCBBVFByZXBBbHRlckNvbHVt blR5cGUoTGlzdCAqKndxdWV1ZSwKIAkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgdGFi bGUiLAogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAotCWlmICgh UkVMS0lORF9IQVNfU1RPUkFHRSh0YWItPnJlbGtpbmQpKQorCWlmICghUkVMS0lORF9IQVNf U1RPUkFHRSh0YWItPnJlbGtpbmQpIHx8IGF0dFR1cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJ QlVURV9HRU5FUkFURURfVklSVFVBTCkKIAl7CiAJCS8qCi0JCSAqIEZvciByZWxhdGlvbnMg d2l0aG91dCBzdG9yYWdlLCBkbyB0aGlzIGNoZWNrIG5vdy4gIFJlZ3VsYXIgdGFibGVzCi0J CSAqIHdpbGwgY2hlY2sgaXQgbGF0ZXIgd2hlbiB0aGUgdGFibGUgaXMgYmVpbmcgcmV3cml0 dGVuLgorCQkgKiBGb3IgcmVsYXRpb25zIG9yIGNvbHVtbnMgd2l0aG91dCBzdG9yYWdlLCBk byB0aGlzIGNoZWNrIG5vdy4KKwkJICogUmVndWxhciB0YWJsZXMgd2lsbCBjaGVjayBpdCBs YXRlciB3aGVuIHRoZSB0YWJsZSBpcyBiZWluZworCQkgKiByZXdyaXR0ZW4uCiAJCSAqLwog CQlmaW5kX2NvbXBvc2l0ZV90eXBlX2RlcGVuZGVuY2llcyhyZWwtPnJkX3JlbC0+cmVsdHlw ZSwgcmVsLCBOVUxMKTsKIAl9CkBAIC0xNjM1NCw2ICsxNjQ2MCwxNCBAQCBNZXJnZUF0dHJp YnV0ZXNJbnRvRXhpc3RpbmcoUmVsYXRpb24gY2hpbGRfcmVsLCBSZWxhdGlvbiBwYXJlbnRf cmVsLCBib29sIGlzcGFydAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNN QVRDSCksCiAJCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGluIGNoaWxkIHRhYmxlIG11 c3Qgbm90IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbiIsIHBhcmVudF9hdHRuYW1lKSkpOwogCisJ CQlpZiAocGFyZW50X2F0dC0+YXR0Z2VuZXJhdGVkICYmIGNoaWxkX2F0dC0+YXR0Z2VuZXJh dGVkICYmIGNoaWxkX2F0dC0+YXR0Z2VuZXJhdGVkICE9IHBhcmVudF9hdHQtPmF0dGdlbmVy YXRlZCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRB VFlQRV9NSVNNQVRDSCksCisJCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGluaGVyaXRz IGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZCIsIHBhcmVudF9hdHRu YW1lKSwKKwkJCQkJCSBlcnJkZXRhaWwoIlBhcmVudCBjb2x1bW4gaXMgJXMsIGNoaWxkIGNv bHVtbiBpcyAlcy4iLAorCQkJCQkJCQkgICBwYXJlbnRfYXR0LT5hdHRnZW5lcmF0ZWQgPT0g QVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQgPyAiU1RPUkVEIiA6ICJWSVJUVUFMIiwKKwkJ CQkJCQkJICAgY2hpbGRfYXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRF RF9TVE9SRUQgPyAiU1RPUkVEIiA6ICJWSVJUVUFMIikpKTsKKwogCQkJLyoKIAkJCSAqIFJl Z3VsYXIgaW5oZXJpdGFuY2UgY2hpbGRyZW4gYXJlIGluZGVwZW5kZW50IGVub3VnaCBub3Qg dG8KIAkJCSAqIGluaGVyaXQgaWRlbnRpdHkgY29sdW1ucy4gIEJ1dCBwYXJ0aXRpb25zIGFy ZSBpbnRlZ3JhbCBwYXJ0IG9mCkBAIC0xODU4OSw4ICsxODcwMywxMSBAQCBDb21wdXRlUGFy dGl0aW9uQXR0cnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZWxhdGlvbiByZWwsIExpc3QgKnBh cnRQYXJhbXMsIEF0dHJOdQogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHBl bGVtLT5sb2NhdGlvbikpKTsKIAogCQkJLyoKLQkJCSAqIEdlbmVyYXRlZCBjb2x1bW5zIGNh bm5vdCB3b3JrOiBUaGV5IGFyZSBjb21wdXRlZCBhZnRlciBCRUZPUkUKLQkJCSAqIHRyaWdn ZXJzLCBidXQgcGFydGl0aW9uIHJvdXRpbmcgaXMgZG9uZSBiZWZvcmUgYWxsIHRyaWdnZXJz LgorCQkJICogU3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGNhbm5vdCB3b3JrOiBUaGV5IGFy ZSBjb21wdXRlZCBhZnRlcgorCQkJICogQkVGT1JFIHRyaWdnZXJzLCBidXQgcGFydGl0aW9u IHJvdXRpbmcgaXMgZG9uZSBiZWZvcmUgYWxsCisJCQkgKiB0cmlnZ2Vycy4gIE1heWJlIHZp cnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgY291bGQgYmUgbWFkZSB0bworCQkJICogd29yaywg YnV0IHRoZW4gdGhleSB3b3VsZCBuZWVkIHRvIGJlIGhhbmRsZWQgYXMgYW4gZXhwcmVzc2lv bgorCQkJICogYmVsb3cuCiAJCQkgKi8KIAkJCWlmIChhdHRmb3JtLT5hdHRnZW5lcmF0ZWQp CiAJCQkJZXJlcG9ydChFUlJPUiwKQEAgLTE4NjcyLDkgKzE4Nzg5LDEyIEBAIENvbXB1dGVQ YXJ0aXRpb25BdHRycyhQYXJzZVN0YXRlICpwc3RhdGUsIFJlbGF0aW9uIHJlbCwgTGlzdCAq cGFydFBhcmFtcywgQXR0ck51CiAJCQkJfQogCiAJCQkJLyoKLQkJCQkgKiBHZW5lcmF0ZWQg Y29sdW1ucyBjYW5ub3Qgd29yazogVGhleSBhcmUgY29tcHV0ZWQgYWZ0ZXIKLQkJCQkgKiBC RUZPUkUgdHJpZ2dlcnMsIGJ1dCBwYXJ0aXRpb24gcm91dGluZyBpcyBkb25lIGJlZm9yZSBh bGwKLQkJCQkgKiB0cmlnZ2Vycy4KKwkJCQkgKiBTdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMg Y2Fubm90IHdvcms6IFRoZXkgYXJlIGNvbXB1dGVkCisJCQkJICogYWZ0ZXIgQkVGT1JFIHRy aWdnZXJzLCBidXQgcGFydGl0aW9uIHJvdXRpbmcgaXMgZG9uZSBiZWZvcmUKKwkJCQkgKiBh bGwgdHJpZ2dlcnMuICBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGNvdWxkIHByb2JhYmx5 CisJCQkJICogd29yaywgYnV0IGl0IHdvdWxkIHJlcXVpcmUgbW9yZSB3b3JrIGVsc2V3aGVy ZSAoZm9yIGV4YW1wbGUKKwkJCQkgKiBTRVQgRVhQUkVTU0lPTiB3b3VsZCBuZWVkIHRvIGNo ZWNrIHdoZXRoZXIgdGhlIGNvbHVtbiBpcworCQkJCSAqIHVzZWQgaW4gcGFydGl0aW9uIGtl eXMpLiAgU2VlbXMgc2FmZXIgdG8gcHJvaGliaXQgZm9yIG5vdy4KIAkJCQkgKi8KIAkJCQlp ID0gLTE7CiAJCQkJd2hpbGUgKChpID0gYm1zX25leHRfbWVtYmVyKGV4cHJfYXR0cnMsIGkp KSA+PSAwKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCmluZGV4IDMyZjI1ZjRkOTExLi5lMTlj NDk3YmRlNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpAQCAtNDMsNiArNDMsNyBAQAog I2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUgInBhcnRpdGlv bmluZy9wYXJ0ZGVzYy5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgorI2luY2x1ZGUgInJld3Jp dGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVNYW5pcC5o IgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgpA QCAtMTAxLDYgKzEwMiw3IEBAIHN0YXRpYyB2b2lkIEFmdGVyVHJpZ2dlclNhdmVFdmVudChF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJCQkJCQkJICBib29s IGlzX2Nyb3NzcGFydF91cGRhdGUpOwogc3RhdGljIHZvaWQgQWZ0ZXJUcmlnZ2VyRW5sYXJn ZVF1ZXJ5U3RhdGUodm9pZCk7CiBzdGF0aWMgYm9vbCBiZWZvcmVfc3RtdF90cmlnZ2Vyc19m aXJlZChPaWQgcmVsaWQsIENtZFR5cGUgY21kVHlwZSk7CitzdGF0aWMgSGVhcFR1cGxlIGNo ZWNrX21vZGlmaWVkX3ZpcnR1YWxfZ2VuZXJhdGVkKFR1cGxlRGVzYyB0dXBkZXNjLCBIZWFw VHVwbGUgdHVwbGUpOwogCiAKIC8qCkBAIC02NDEsNyArNjQzLDggQEAgQ3JlYXRlVHJpZ2dl ckZpcmluZ09uKENyZWF0ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmlu ZywKIAkJCQkJaWYgKFRSSUdHRVJfRk9SX0JFRk9SRSh0Z3R5cGUpICYmCiAJCQkJCQl2YXIt PnZhcmF0dG5vID09IDAgJiYKIAkJCQkJCVJlbGF0aW9uR2V0RGVzY3IocmVsKS0+Y29uc3Ry ICYmCi0JCQkJCQlSZWxhdGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dlbmVyYXRl ZF9zdG9yZWQpCisJCQkJCQkoUmVsYXRpb25HZXREZXNjcihyZWwpLT5jb25zdHItPmhhc19n ZW5lcmF0ZWRfc3RvcmVkIHx8CisJCQkJCQkgUmVsYXRpb25HZXREZXNjcihyZWwpLT5jb25z dHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkpCiAJCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAogCQkJ CQkJCQkgZXJybXNnKCJCRUZPUkUgdHJpZ2dlcidzIFdIRU4gY29uZGl0aW9uIGNhbm5vdCBy ZWZlcmVuY2UgTkVXIGdlbmVyYXRlZCBjb2x1bW5zIiksCkBAIC0yNTAzLDYgKzI1MDYsOCBA QCBFeGVjQlJJbnNlcnRUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAq cmVsaW5mbywKIAkJfQogCQllbHNlIGlmIChuZXd0dXBsZSAhPSBvbGR0dXBsZSkKIAkJewor CQkJbmV3dHVwbGUgPSBjaGVja19tb2RpZmllZF92aXJ0dWFsX2dlbmVyYXRlZChSZWxhdGlv bkdldERlc2NyKHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYyksIG5ld3R1cGxlKTsKKwogCQkJ RXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUobmV3dHVwbGUsIHNsb3QsIGZhbHNlKTsKIAogCQkJ LyoKQEAgLTMwNjAsNiArMzA2NSw4IEBAIEV4ZWNCUlVwZGF0ZVRyaWdnZXJzKEVTdGF0ZSAq ZXN0YXRlLCBFUFFTdGF0ZSAqZXBxc3RhdGUsCiAJCX0KIAkJZWxzZSBpZiAobmV3dHVwbGUg IT0gb2xkdHVwbGUpCiAJCXsKKwkJCW5ld3R1cGxlID0gY2hlY2tfbW9kaWZpZWRfdmlydHVh bF9nZW5lcmF0ZWQoUmVsYXRpb25HZXREZXNjcihyZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2Mp LCBuZXd0dXBsZSk7CisKIAkJCUV4ZWNGb3JjZVN0b3JlSGVhcFR1cGxlKG5ld3R1cGxlLCBu ZXdzbG90LCBmYWxzZSk7CiAKIAkJCS8qCkBAIC0zNDkwLDYgKzM0OTcsOCBAQCBUcmlnZ2Vy RW5hYmxlZChFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAogCQkJ b2xkQ29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1ZXJ5X2N4 dCk7CiAJCQl0Z3F1YWwgPSBzdHJpbmdUb05vZGUodHJpZ2dlci0+dGdxdWFsKTsKKwkJCXRn cXVhbCA9IChOb2RlICopIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKHRncXVh bCwgcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjLCBQUlMyX09MRF9WQVJOTyk7CisJCQl0Z3F1 YWwgPSAoTm9kZSAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhwcih0Z3F1YWws IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYywgUFJTMl9ORVdfVkFSTk8pOwogCQkJLyogQ2hh bmdlIHJlZmVyZW5jZXMgdG8gT0xEIGFuZCBORVcgdG8gSU5ORVJfVkFSIGFuZCBPVVRFUl9W QVIgKi8KIAkJCUNoYW5nZVZhck5vZGVzKHRncXVhbCwgUFJTMl9PTERfVkFSTk8sIElOTkVS X1ZBUiwgMCk7CiAJCQlDaGFuZ2VWYXJOb2Rlcyh0Z3F1YWwsIFBSUzJfTkVXX1ZBUk5PLCBP VVRFUl9WQVIsIDApOwpAQCAtNjYwMCwzICs2NjA5LDM3IEBAIHBnX3RyaWdnZXJfZGVwdGgo UEdfRlVOQ1RJT05fQVJHUykKIHsKIAlQR19SRVRVUk5fSU5UMzIoTXlUcmlnZ2VyRGVwdGgp OwogfQorCisvKgorICogQ2hlY2sgd2hldGhlciBhIHRyaWdnZXIgbW9kaWZpZWQgYSB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW4gYW5kIHJlcGxhY2UgdGhlCisgKiB2YWx1ZSB3aXRoIG51 bGwgaWYgc28uCisgKgorICogV2UgbmVlZCB0byBjaGVjayB0aGlzIHNvIHRoYXQgd2UgZG9u J3QgZW5kIHVwIHN0b3JpbmcgYSBub24tbnVsbCB2YWx1ZSBpbiBhCisgKiB2aXJ0dWFsIGdl bmVyYXRlZCBjb2x1bW4uCisgKgorICogV2UgZG9uJ3QgbmVlZCB0byBjaGVjayBmb3Igc3Rv cmVkIGdlbmVyYXRlZCBjb2x1bW5zLCBzaW5jZSB0aG9zZSB3aWxsIGJlCisgKiBvdmVyd3Jp dHRlbiBsYXRlciBhbnl3YXkuCisgKi8KK3N0YXRpYyBIZWFwVHVwbGUKK2NoZWNrX21vZGlm aWVkX3ZpcnR1YWxfZ2VuZXJhdGVkKFR1cGxlRGVzYyB0dXBkZXNjLCBIZWFwVHVwbGUgdHVw bGUpCit7CisJaWYgKCEodHVwZGVzYy0+Y29uc3RyICYmIHR1cGRlc2MtPmNvbnN0ci0+aGFz X2dlbmVyYXRlZF92aXJ0dWFsKSkKKwkJcmV0dXJuIHR1cGxlOworCisJZm9yIChpbnQgaSA9 IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCXsKKwkJaWYgKFR1cGxlRGVzY0F0dHIo dHVwZGVzYywgaSktPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRV QUwpCisJCXsKKwkJCWlmICghaGVhcF9hdHRpc251bGwodHVwbGUsIGkgKyAxLCB0dXBkZXNj KSkKKwkJCXsKKwkJCQlpbnQJCQlyZXBsQ29sID0gaSArIDE7CisJCQkJRGF0dW0JCXJlcGxW YWx1ZSA9IDA7CisJCQkJYm9vbAkJcmVwbElzbnVsbCA9IHRydWU7CisKKwkJCQl0dXBsZSA9 IGhlYXBfbW9kaWZ5X3R1cGxlX2J5X2NvbHModHVwbGUsIHR1cGRlc2MsIDEsICZyZXBsQ29s LCAmcmVwbFZhbHVlLCAmcmVwbElzbnVsbCk7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4g dHVwbGU7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwcklu dGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCBi MmMwMGEwYTFiMS4uMGFiZmIwMzU3ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYwpAQCAtMjE5NSw2ICsyMTk1LDEwIEBAIENoZWNrVmFyU2xvdENvbXBhdGli aWxpdHkoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBhdHRudW0sIE9pZCB2YXJ0eXBlKQog CiAJCWF0dHIgPSBUdXBsZURlc2NBdHRyKHNsb3RfdHVwZGVzYywgYXR0bnVtIC0gMSk7CiAK KwkJLyogSW50ZXJuYWwgZXJyb3I6IHNvbWVib2R5IGZvcmdvdCB0byBleHBhbmQgaXQuICov CisJCWlmIChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJU VUFMKQorCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1uIHJlZmVyZW5jZSIpOworCiAJCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQpCiAJCQllcmVw b3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggYTA2Mjk1YjZiYTcuLmM2ZTg0ODUyZDRk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTE3NTcsNiArMTc1Nyw3IEBAIEV4 ZWNSZWxDaGVjayhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQkJRXhwcgkgICAq Y2hlY2tjb25zdHI7CiAKIAkJCWNoZWNrY29uc3RyID0gc3RyaW5nVG9Ob2RlKGNoZWNrW2ld LmNjYmluKTsKKwkJCWNoZWNrY29uc3RyID0gKEV4cHIgKikgZXhwYW5kX2dlbmVyYXRlZF9j b2x1bW5zX2luX2V4cHIoKE5vZGUgKikgY2hlY2tjb25zdHIsIHJlbCwgMSk7CiAJCQlyZXN1 bHRSZWxJbmZvLT5yaV9Db25zdHJhaW50RXhwcnNbaV0gPQogCQkJCUV4ZWNQcmVwYXJlRXhw cihjaGVja2NvbnN0ciwgZXN0YXRlKTsKIAkJfQpAQCAtMjMwNCw3ICsyMzA1LDkgQEAgRXhl Y0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24oT2lkIHJlbG9pZCwKIAogCQlpZiAodGFibGVf cGVybSB8fCBjb2x1bW5fcGVybSkKIAkJewotCQkJaWYgKHNsb3QtPnR0c19pc251bGxbaV0p CisJCQlpZiAoYXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJU VUFMKQorCQkJCXZhbCA9ICJ2aXJ0dWFsIjsKKwkJCWVsc2UgaWYgKHNsb3QtPnR0c19pc251 bGxbaV0pCiAJCQkJdmFsID0gIm51bGwiOwogCQkJZWxzZQogCQkJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjVXRpbHMuYwppbmRleCBmNzE4OTk0NjNiOC4uODNkOWUyNWMxNjMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNVdGlscy5jCkBAIC0xMzU0LDggKzEzNTQsOCBAQCBCaXRtYXBzZXQg KgogRXhlY0dldEV4dHJhVXBkYXRlZENvbHMoUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgRVN0 YXRlICplc3RhdGUpCiB7CiAJLyogQ29tcHV0ZSB0aGUgaW5mbyBpZiB3ZSBkaWRuJ3QgYWxy ZWFkeSAqLwotCWlmIChyZWxpbmZvLT5yaV9HZW5lcmF0ZWRFeHByc1UgPT0gTlVMTCkKLQkJ RXhlY0luaXRTdG9yZWRHZW5lcmF0ZWQocmVsaW5mbywgZXN0YXRlLCBDTURfVVBEQVRFKTsK KwlpZiAoIXJlbGluZm8tPnJpX0dlbmVyYXRlZF92YWxpZCkKKwkJRXhlY0luaXRHZW5lcmF0 ZWQocmVsaW5mbywgZXN0YXRlLCBDTURfVVBEQVRFKTsKIAlyZXR1cm4gcmVsaW5mby0+cmlf ZXh0cmFVcGRhdGVkQ29sczsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5 VGFibGUuYwppbmRleCAxYWY4YzljYWY2Yy4uNDg2ZTRhNDg4MmMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC0zMzcsMTEgKzMzNywxNCBAQCBFeGVj Q2hlY2tUSURWaXNpYmxlKEVTdGF0ZSAqZXN0YXRlLAogfQogCiAvKgotICogSW5pdGlhbGl6 ZSB0byBjb21wdXRlIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBmb3IgYSB0dXBsZQorICog SW5pdGlhbGl6ZSBnZW5lcmF0ZWQgY29sdW1ucyBoYW5kbGluZyBmb3IgYSB0dXBsZQorICoK KyAqIFRoaXMgZmlsbHMgdGhlIHJlc3VsdFJlbEluZm8ncyByaV9HZW5lcmF0ZWRFeHByc0kv cmlfTnVtR2VuZXJhdGVkTmVlZGVkSSBvcgorICogcmlfR2VuZXJhdGVkRXhwcnNVL3JpX051 bUdlbmVyYXRlZE5lZWRlZFUgZmllbGRzLCBkZXBlbmRpbmcgb24gY21kdHlwZS4KKyAqIFRo aXMgaXMgdXNlZCBvbmx5IGZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMuCiAgKgotICog VGhpcyBmaWxscyB0aGUgcmVzdWx0UmVsSW5mbydzIHJpX0dlbmVyYXRlZEV4cHJzSS9yaV9O dW1HZW5lcmF0ZWROZWVkZWRJCi0gKiBvciByaV9HZW5lcmF0ZWRFeHByc1UvcmlfTnVtR2Vu ZXJhdGVkTmVlZGVkVSBmaWVsZHMsIGRlcGVuZGluZyBvbiBjbWR0eXBlLgogICogSWYgY21k VHlwZSA9PSBDTURfVVBEQVRFLCB0aGUgcmlfZXh0cmFVcGRhdGVkQ29scyBmaWVsZCBpcyBm aWxsZWQgdG9vLgorICogVGhpcyBpcyB1c2VkIGJ5IGJvdGggc3RvcmVkIGFuZCB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zLgogICoKICAqIE5vdGU6IHVzdWFsbHksIGEgZ2l2ZW4gcXVl cnkgd291bGQgbmVlZCBvbmx5IG9uZSBvZiByaV9HZW5lcmF0ZWRFeHByc0kgYW5kCiAgKiBy aV9HZW5lcmF0ZWRFeHByc1UgcGVyIHJlc3VsdCByZWw7IGJ1dCBNRVJHRSBjYW4gbmVlZCBi b3RoLCBhbmQgc28gY2FuCkBAIC0zNDksOSArMzUyLDkgQEAgRXhlY0NoZWNrVElEVmlzaWJs ZShFU3RhdGUgKmVzdGF0ZSwKICAqIFVQREFURSBhbmQgSU5TRVJUIGFjdGlvbnMuCiAgKi8K IHZvaWQKLUV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJl bEluZm8sCi0JCQkJCQlFU3RhdGUgKmVzdGF0ZSwKLQkJCQkJCUNtZFR5cGUgY21kdHlwZSkK K0V4ZWNJbml0R2VuZXJhdGVkKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCisJCQkJ ICBFU3RhdGUgKmVzdGF0ZSwKKwkJCQkgIENtZFR5cGUgY21kdHlwZSkKIHsKIAlSZWxhdGlv bglyZWwgPSByZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2M7CiAJVHVwbGVEZXNjCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CkBAIC0zNjIsNyArMzY1LDcgQEAgRXhl Y0luaXRTdG9yZWRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAlN ZW1vcnlDb250ZXh0IG9sZENvbnRleHQ7CiAKIAkvKiBOb3RoaW5nIHRvIGRvIGlmIG5vIGdl bmVyYXRlZCBjb2x1bW5zICovCi0JaWYgKCEodHVwZGVzYy0+Y29uc3RyICYmIHR1cGRlc2Mt PmNvbnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9yZWQpKQorCWlmICghKHR1cGRlc2MtPmNvbnN0 ciAmJiAodHVwZGVzYy0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCB8fCB0dXBkZXNj LT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkpKQogCQlyZXR1cm47CiAKIAkvKgpA QCAtMzg4LDcgKzM5MSw5IEBAIEV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKFJlc3VsdFJlbElu Zm8gKnJlc3VsdFJlbEluZm8sCiAKIAlmb3IgKGludCBpID0gMDsgaSA8IG5hdHRzOyBpKysp CiAJewotCQlpZiAoVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0Z2VuZXJhdGVkID09 IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQorCQljaGFyCQlhdHRnZW5lcmF0ZWQgPSBU dXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHRnZW5lcmF0ZWQ7CisKKwkJaWYgKGF0dGdl bmVyYXRlZCkKIAkJewogCQkJRXhwcgkgICAqZXhwcjsKIApAQCAtNDEzLDggKzQxOCwxMSBA QCBFeGVjSW5pdFN0b3JlZEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZv LAogCQkJfQogCiAJCQkvKiBObyBsdWNrLCBzbyBwcmVwYXJlIHRoZSBleHByZXNzaW9uIGZv ciBleGVjdXRpb24gKi8KLQkJCXJpX0dlbmVyYXRlZEV4cHJzW2ldID0gRXhlY1ByZXBhcmVF eHByKGV4cHIsIGVzdGF0ZSk7Ci0JCQlyaV9OdW1HZW5lcmF0ZWROZWVkZWQrKzsKKwkJCWlm IChhdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJCQl7CisJ CQkJcmlfR2VuZXJhdGVkRXhwcnNbaV0gPSBFeGVjUHJlcGFyZUV4cHIoZXhwciwgZXN0YXRl KTsKKwkJCQlyaV9OdW1HZW5lcmF0ZWROZWVkZWQrKzsKKwkJCX0KIAogCQkJLyogSWYgVVBE QVRFLCBtYXJrIGNvbHVtbiBpbiByZXN1bHRSZWxJbmZvLT5yaV9leHRyYVVwZGF0ZWRDb2xz ICovCiAJCQlpZiAoY21kdHlwZSA9PSBDTURfVVBEQVRFKQpAQCAtNDI0LDYgKzQzMiwxMyBA QCBFeGVjSW5pdFN0b3JlZEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZv LAogCQl9CiAJfQogCisJaWYgKHJpX051bUdlbmVyYXRlZE5lZWRlZCA9PSAwKQorCXsKKwkJ LyogZGlkbid0IG5lZWQgaXQgYWZ0ZXIgYWxsICovCisJCXBmcmVlKHJpX0dlbmVyYXRlZEV4 cHJzKTsKKwkJcmlfR2VuZXJhdGVkRXhwcnMgPSBOVUxMOworCX0KKwogCS8qIFNhdmUgaW4g YXBwcm9wcmlhdGUgc2V0IG9mIGZpZWxkcyAqLwogCWlmIChjbWR0eXBlID09IENNRF9VUERB VEUpCiAJewpAQCAtNDQyLDYgKzQ1Nyw4IEBAIEV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKFJl c3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCXJlc3VsdFJlbEluZm8tPnJpX051bUdl bmVyYXRlZE5lZWRlZEkgPSByaV9OdW1HZW5lcmF0ZWROZWVkZWQ7CiAJfQogCisJcmVzdWx0 UmVsSW5mby0+cmlfR2VuZXJhdGVkX3ZhbGlkID0gdHJ1ZTsKKwogCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRDb250ZXh0KTsKIH0KIApAQCAtNDcyLDcgKzQ4OSw3IEBAIEV4ZWNDb21w dXRlU3RvcmVkR2VuZXJhdGVkKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJaWYg KGNtZHR5cGUgPT0gQ01EX1VQREFURSkKIAl7CiAJCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9H ZW5lcmF0ZWRFeHByc1UgPT0gTlVMTCkKLQkJCUV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKHJl c3VsdFJlbEluZm8sIGVzdGF0ZSwgY21kdHlwZSk7CisJCQlFeGVjSW5pdEdlbmVyYXRlZChy ZXN1bHRSZWxJbmZvLCBlc3RhdGUsIGNtZHR5cGUpOwogCQlpZiAocmVzdWx0UmVsSW5mby0+ cmlfTnVtR2VuZXJhdGVkTmVlZGVkVSA9PSAwKQogCQkJcmV0dXJuOwogCQlyaV9HZW5lcmF0 ZWRFeHBycyA9IHJlc3VsdFJlbEluZm8tPnJpX0dlbmVyYXRlZEV4cHJzVTsKQEAgLTQ4MCw3 ICs0OTcsNyBAQCBFeGVjQ29tcHV0ZVN0b3JlZEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpy ZXN1bHRSZWxJbmZvLAogCWVsc2UKIAl7CiAJCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9HZW5l cmF0ZWRFeHByc0kgPT0gTlVMTCkKLQkJCUV4ZWNJbml0U3RvcmVkR2VuZXJhdGVkKHJlc3Vs dFJlbEluZm8sIGVzdGF0ZSwgY21kdHlwZSk7CisJCQlFeGVjSW5pdEdlbmVyYXRlZChyZXN1 bHRSZWxJbmZvLCBlc3RhdGUsIGNtZHR5cGUpOwogCQkvKiBFYXJseSBleGl0IGlzIGltcG9z c2libGUgZ2l2ZW4gdGhlIHByaW9yIEFzc2VydCAqLwogCQlBc3NlcnQocmVzdWx0UmVsSW5m by0+cmlfTnVtR2VuZXJhdGVkTmVlZGVkSSA+IDApOwogCQlyaV9HZW5lcmF0ZWRFeHBycyA9 IHJlc3VsdFJlbEluZm8tPnJpX0dlbmVyYXRlZEV4cHJzSTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4 IGI0YzFlMmM2OWRkLi4wYzA3OGUzZTViZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02MjgsNyAr NjI4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxzdHI+CQlvcHRf ZXhpc3Rpbmdfd2luZG93X25hbWUKICV0eXBlIDxib29sZWFuPiBvcHRfaWZfbm90X2V4aXN0 cwogJXR5cGUgPGJvb2xlYW4+IG9wdF91bmlxdWVfbnVsbF90cmVhdG1lbnQKLSV0eXBlIDxp dmFsPglnZW5lcmF0ZWRfd2hlbiBvdmVycmlkZV9raW5kCisldHlwZSA8aXZhbD4JZ2VuZXJh dGVkX3doZW4gb3ZlcnJpZGVfa2luZCBvcHRfdmlydHVhbF9vcl9zdG9yZWQKICV0eXBlIDxw YXJ0c3BlYz4JUGFydGl0aW9uU3BlYyBPcHRQYXJ0aXRpb25TcGVjCiAldHlwZSA8cGFydGVs ZW0+CXBhcnRfZWxlbQogJXR5cGUgPGxpc3Q+CQlwYXJ0X3BhcmFtcwpAQCAtNzc2LDcgKzc3 Niw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxu YW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVU5MSVNURU4gVU5MT0dHRUQg VU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAogCVZBQ1VVTSBWQUxJRCBWQUxJREFURSBWQUxJ REFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZSU5HCi0JVkVSQk9T RSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQorCVZFUkJPU0UgVkVSU0lPTl9QIFZJ RVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1Ag V0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTM5 ODUsNyArMzk4NSw3IEBAIENvbENvbnN0cmFpbnRFbGVtOgogCQkJCQluLT5sb2NhdGlvbiA9 IEAxOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBHRU5FUkFURUQgZ2Vu ZXJhdGVkX3doZW4gQVMgJygnIGFfZXhwciAnKScgU1RPUkVECisJCQl8IEdFTkVSQVRFRCBn ZW5lcmF0ZWRfd2hlbiBBUyAnKCcgYV9leHByICcpJyBvcHRfdmlydHVhbF9vcl9zdG9yZWQK IAkJCQl7CiAJCQkJCUNvbnN0cmFpbnQgKm4gPSBtYWtlTm9kZShDb25zdHJhaW50KTsKIApA QCAtMzk5Myw2ICszOTkzLDcgQEAgQ29sQ29uc3RyYWludEVsZW06CiAJCQkJCW4tPmdlbmVy YXRlZF93aGVuID0gJDI7CiAJCQkJCW4tPnJhd19leHByID0gJDU7CiAJCQkJCW4tPmNvb2tl ZF9leHByID0gTlVMTDsKKwkJCQkJbi0+Z2VuZXJhdGVkX2tpbmQgPSAkNzsKIAkJCQkJbi0+ bG9jYXRpb24gPSBAMTsKIAogCQkJCQkvKgpAQCAtNDAzOSw2ICs0MDQwLDEyIEBAIGdlbmVy YXRlZF93aGVuOgogCQkJfCBCWSBERUZBVUxUCXsgJCQgPSBBVFRSSUJVVEVfSURFTlRJVFlf QllfREVGQVVMVDsgfQogCQk7CiAKK29wdF92aXJ0dWFsX29yX3N0b3JlZDoKKwkJCVNUT1JF RAkJCXsgJCQgPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRDsgfQorCQkJfCBWSVJUVUFM CQl7ICQkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMOyB9CisJCQl8IC8qRU1QVFkq LwkJeyAkJCA9IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTDsgfQorCQk7CisKIC8qCiAg KiBDb25zdHJhaW50QXR0ciByZXByZXNlbnRzIGNvbnN0cmFpbnQgYXR0cmlidXRlcywgd2hp Y2ggd2UgcGFyc2UgYXMgaWYKICAqIHRoZXkgd2VyZSBpbmRlcGVuZGVudCBjb25zdHJhaW50 IGNsYXVzZXMsIGluIG9yZGVyIHRvIGF2b2lkIHNoaWZ0L3JlZHVjZQpAQCAtMTc5MjEsNiAr MTc5MjgsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFZFUlNJT05fUAogCQkJfCBW SUVXCiAJCQl8IFZJRVdTCisJCQl8IFZJUlRVQUwKIAkJCXwgVk9MQVRJTEUKIAkJCXwgV0hJ VEVTUEFDRV9QCiAJCQl8IFdJVEhJTgpAQCAtMTg1NzUsNiArMTg1ODMsNyBAQCBiYXJlX2xh YmVsX2tleXdvcmQ6CiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCiAJCQl8IFZJRVdTCisJ CQl8IFZJUlRVQUwKIAkJCXwgVk9MQVRJTEUKIAkJCXwgV0hFTgogCQkJfCBXSElURVNQQUNF X1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTJhMDRlMzVkZmYu LjU5MTNmNWRlMWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVs YXRpb24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAt NzA0LDcgKzcwNCwxMSBAQCBzY2FuTlNJdGVtRm9yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJCQljb2xuYW1lKSwKIAkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAKLQkvKiBJbiBnZW5l cmF0ZWQgY29sdW1uLCBubyBzeXN0ZW0gY29sdW1uIGlzIGFsbG93ZWQgZXhjZXB0IHRhYmxl T2lkICovCisJLyoKKwkgKiBJbiBnZW5lcmF0ZWQgY29sdW1uLCBubyBzeXN0ZW0gY29sdW1u IGlzIGFsbG93ZWQgZXhjZXB0IHRhYmxlT2lkLgorCSAqIChSZXF1aXJlZCBmb3Igc3RvcmVk IGdlbmVyYXRlZCwgYnV0IHdlIGFsc28gZG8gaXQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkCisJ ICogZm9yIG5vdyBmb3IgY29uc2lzdGVuY3kuKQorCSAqLwogCWlmIChwc3RhdGUtPnBfZXhw cl9raW5kID09IEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OICYmCiAJCWF0dG51bSA8IElu dmFsaWRBdHRyTnVtYmVyICYmIGF0dG51bSAhPSBUYWJsZU9pZEF0dHJpYnV0ZU51bWJlcikK IAkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4 IGQyZDgyYzljNTk2Li42MDljZDZkNzE2MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRp bGNtZC5jCkBAIC04ODksNyArODg5LDcgQEAgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbihD cmVhdGVTdG10Q29udGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNvbHVtbikKIAkJCQkJCQkJCWNv bHVtbi0+Y29sbmFtZSwgY3h0LT5yZWxhdGlvbi0+cmVsbmFtZSksCiAJCQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwKIAkJCQkJCQkJCQkJCWNvbnN0cmFpbnQtPmxv Y2F0aW9uKSkpOwotCQkJCWNvbHVtbi0+Z2VuZXJhdGVkID0gQVRUUklCVVRFX0dFTkVSQVRF RF9TVE9SRUQ7CisJCQkJY29sdW1uLT5nZW5lcmF0ZWQgPSBjb25zdHJhaW50LT5nZW5lcmF0 ZWRfa2luZDsKIAkJCQljb2x1bW4tPnJhd19kZWZhdWx0ID0gY29uc3RyYWludC0+cmF3X2V4 cHI7CiAJCQkJQXNzZXJ0KGNvbnN0cmFpbnQtPmNvb2tlZF9leHByID09IE5VTEwpOwogCQkJ CXNhd19nZW5lcmF0ZWQgPSB0cnVlOwpAQCAtOTg2LDYgKzk4NiwyMCBAQCB0cmFuc2Zvcm1D b2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29s dW1uKQogCQkJCQkJCWNvbHVtbi0+Y29sbmFtZSwgY3h0LT5yZWxhdGlvbi0+cmVsbmFtZSks CiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oY3h0LT5wc3RhdGUsCiAJCQkJCQkJCQkJY29u c3RyYWludC0+bG9jYXRpb24pKSk7CisKKwkJLyoKKwkJICogVE9ETzogU3RyYWlnaHRmb3J3 YXJkIG5vdC1udWxsIGNvbnN0cmFpbnRzIHdvbid0IHdvcmsgb24gdmlydHVhbAorCQkgKiBn ZW5lcmF0ZWQgY29sdW1ucywgYmVjYXVzZSB0aGVyZSBpcyBubyBzdXBwb3J0IGZvciBleHBh bmRpbmcgdGhlCisJCSAqIGNvbHVtbiB3aGVuIHRoZSBjb25zdHJhaW50IGlzIGNoZWNrZWQu ICBNYXliZSB3ZSBjb3VsZCBjb252ZXJ0IHRoZQorCQkgKiBub3QtbnVsbCBjb25zdHJhaW50 IGludG8gYSBmdWxsIGNoZWNrIGNvbnN0cmFpbnQsIHNvIHRoYXQgdGhlCisJCSAqIGdlbmVy YXRpb24gZXhwcmVzc2lvbiBjYW4gYmUgZXhwYW5kZWQgYXQgY2hlY2sgdGltZS4KKwkJICov CisJCWlmIChjb2x1bW4tPmlzX25vdF9udWxsICYmIGNvbHVtbi0+Z2VuZXJhdGVkID09IEFU VFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygi bm90LW51bGwgY29uc3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+cHN0YXRl LAorCQkJCQkJCQkJCWNvbnN0cmFpbnQtPmxvY2F0aW9uKSkpOwogCX0KIAogCS8qCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCAyYjc0 OTliMzRiOS4uMmVlNDhlMWI0YzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v cGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgInJlcGxp Y2F0aW9uL2xvZ2ljYWxwcm90by5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL29yaWdpbi5o IgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Bnb3V0cHV0LmgiCisjaW5jbHVkZSAicmV3cml0 ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5j bHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAg LTEwMDQsNyArMTAwNSw3IEBAIHBnb3V0cHV0X3Jvd19maWx0ZXJfaW5pdChQR091dHB1dERh dGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAkJCQljb250aW51ZTsKIAogCQkJZm9y ZWFjaChsYywgcmZub2Rlc1tpZHhdKQotCQkJCWZpbHRlcnMgPSBsYXBwZW5kKGZpbHRlcnMs IHN0cmluZ1RvTm9kZSgoY2hhciAqKSBsZmlyc3QobGMpKSk7CisJCQkJZmlsdGVycyA9IGxh cHBlbmQoZmlsdGVycywgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIoc3RyaW5n VG9Ob2RlKChjaGFyICopIGxmaXJzdChsYykpLCByZWxhdGlvbiwgMSkpOwogCiAJCQkvKiBj b21iaW5lIHRoZSByb3cgZmlsdGVyIGFuZCBjYWNoZSB0aGUgRXhwclN0YXRlICovCiAJCQly Zm5vZGUgPSBtYWtlX29yY2xhdXNlKGZpbHRlcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdy aXRlSGFuZGxlci5jCmluZGV4IDFhNWRmZDBhYTQ3Li4wZjIxY2NmMzNiZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCisrKyBiL3NyYy9iYWNr ZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYwpAQCAtOTYsNiArOTYsNyBAQCBzdGF0aWMg TGlzdCAqbWF0Y2hMb2NrcyhDbWRUeXBlIGV2ZW50LCBSZWxhdGlvbiByZWxhdGlvbiwKIAkJ CQkJCWludCB2YXJubywgUXVlcnkgKnBhcnNldHJlZSwgYm9vbCAqaGFzVXBkYXRlKTsKIHN0 YXRpYyBRdWVyeSAqZmlyZVJJUnJ1bGVzKFF1ZXJ5ICpwYXJzZXRyZWUsIExpc3QgKmFjdGl2 ZVJJUnMpOwogc3RhdGljIEJpdG1hcHNldCAqYWRqdXN0X3ZpZXdfY29sdW1uX3NldChCaXRt YXBzZXQgKmNvbHMsIExpc3QgKnRhcmdldGxpc3QpOworc3RhdGljIE5vZGUgKmV4cGFuZF9n ZW5lcmF0ZWRfY29sdW1uc19pbnRlcm5hbChOb2RlICpub2RlLCBSZWxhdGlvbiByZWwsIGlu dCBydF9pbmRleCwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsKIAogCiAvKgpAQCAtOTgwLDcgKzk4 MSw4IEBAIHJld3JpdGVUYXJnZXRMaXN0SVUoTGlzdCAqdGFyZ2V0TGlzdCwKIAkJaWYgKGF0 dF90dXAtPmF0dGdlbmVyYXRlZCkKIAkJewogCQkJLyoKLQkJCSAqIHN0b3JlZCBnZW5lcmF0 ZWQgY29sdW1uIHdpbGwgYmUgZml4ZWQgaW4gZXhlY3V0b3IKKwkJCSAqIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbiBzdG9yZXMgYSBudWxsIHZhbHVlOyBzdG9yZWQgZ2VuZXJhdGVkCisJ CQkgKiBjb2x1bW4gd2lsbCBiZSBmaXhlZCBpbiBleGVjdXRvcgogCQkJICovCiAJCQluZXdf dGxlID0gTlVMTDsKIAkJfQpAQCAtMjIwMyw2ICsyMjA1LDEwIEBAIGZpcmVSSVJydWxlcyhR dWVyeSAqcGFyc2V0cmVlLCBMaXN0ICphY3RpdmVSSVJzKQogCSAqIHJlcXVpcmVzIHNwZWNp YWwgcmVjdXJzaW9uIGRldGVjdGlvbiBpZiB0aGUgbmV3IHF1YWxzIGhhdmUgc3VibGluawog CSAqIHN1YnF1ZXJpZXMsIGFuZCBpZiB3ZSBkaWQgaXQgaW4gdGhlIGxvb3AgYWJvdmUgcXVl cnlfdHJlZV93YWxrZXIgd291bGQKIAkgKiB0aGVuIHJlY3Vyc2UgaW50byB0aG9zZSBxdWFs cyBhIHNlY29uZCB0aW1lLgorCSAqCisJICogRmluYWxseSwgd2UgZXhwYW5kIGFueSB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zLiAgV2UgZG8gdGhpcyBhZnRlcgorCSAqIGVhY2ggdGFi bGUncyBSTFMgcG9saWNpZXMgYXJlIGFwcGxpZWQgYmVjYXVzZSB0aGUgUkxTIHBvbGljaWVz IG1pZ2h0CisJICogYWxzbyByZWZlciB0byB0aGUgdGFibGUncyB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW5zLgogCSAqLwogCXJ0X2luZGV4ID0gMDsKIAlmb3JlYWNoKGxjLCBwYXJzZXRy ZWUtPnJ0YWJsZSkKQEAgLTIyMTYsMTAgKzIyMjIsMTEgQEAgZmlyZVJJUnJ1bGVzKFF1ZXJ5 ICpwYXJzZXRyZWUsIExpc3QgKmFjdGl2ZVJJUnMpCiAKIAkJKytydF9pbmRleDsKIAotCQkv KiBPbmx5IG5vcm1hbCByZWxhdGlvbnMgY2FuIGhhdmUgUkxTIHBvbGljaWVzICovCi0JCWlm IChydGUtPnJ0ZWtpbmQgIT0gUlRFX1JFTEFUSU9OIHx8Ci0JCQkocnRlLT5yZWxraW5kICE9 IFJFTEtJTkRfUkVMQVRJT04gJiYKLQkJCSBydGUtPnJlbGtpbmQgIT0gUkVMS0lORF9QQVJU SVRJT05FRF9UQUJMRSkpCisJCS8qCisJCSAqIE9ubHkgbm9ybWFsIHJlbGF0aW9ucyBjYW4g aGF2ZSBSTFMgcG9saWNpZXMgb3IgdmlydHVhbCBnZW5lcmF0ZWQKKwkJICogY29sdW1ucy4K KwkJICovCisJCWlmIChydGUtPnJ0ZWtpbmQgIT0gUlRFX1JFTEFUSU9OKQogCQkJY29udGlu dWU7CiAKIAkJcmVsID0gdGFibGVfb3BlbihydGUtPnJlbGlkLCBOb0xvY2spOwpAQCAtMjMw OCw2ICsyMzE1LDE0IEBAIGZpcmVSSVJydWxlcyhRdWVyeSAqcGFyc2V0cmVlLCBMaXN0ICph Y3RpdmVSSVJzKQogCQlpZiAoaGFzU3ViTGlua3MpCiAJCQlwYXJzZXRyZWUtPmhhc1N1Ykxp bmtzID0gdHJ1ZTsKIAorCQkvKgorCQkgKiBFeHBhbmQgYW55IHJlZmVyZW5jZXMgdG8gdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBvZiB0aGlzIHRhYmxlLgorCQkgKiBOb3RlIHRoYXQg c3VicXVlcmllcyBpbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gZXhwcmVzc2lvbnMgYXJl CisJCSAqIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLCBzbyB0aGlzIGNhbm5vdCBhZGQgYW55 IG1vcmUgc3VibGlua3MuCisJCSAqLworCQlwYXJzZXRyZWUgPSAoUXVlcnkgKikgZXhwYW5k X2dlbmVyYXRlZF9jb2x1bW5zX2ludGVybmFsKChOb2RlICopIHBhcnNldHJlZSwKKwkJCQkJ CQkJCQkJCQkJCQlyZWwsIHJ0X2luZGV4LCBydGUpOworCiAJCXRhYmxlX2Nsb3NlKHJlbCwg Tm9Mb2NrKTsKIAl9CiAKQEAgLTQ0MTksNiArNDQzNCw5NiBAQCBSZXdyaXRlUXVlcnkoUXVl cnkgKnBhcnNldHJlZSwgTGlzdCAqcmV3cml0ZV9ldmVudHMsIGludCBvcmlnX3J0X2xlbmd0 aCkKIH0KIAogCisvKgorICogRXhwYW5kIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKKyAq CisgKiBJZiB0aGUgdGFibGUgY29udGFpbnMgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucywg YnVpbGQgYSB0YXJnZXQgbGlzdAorICogY29udGFpbmluZyB0aGUgZXhwYW5kZWQgZXhwcmVz c2lvbnMgYW5kIHVzZSBSZXBsYWNlVmFyc0Zyb21UYXJnZXRMaXN0KCkgdG8KKyAqIGRvIHRo ZSByZXBsYWNlbWVudHMuCisgKi8KK3N0YXRpYyBOb2RlICoKK2V4cGFuZF9nZW5lcmF0ZWRf Y29sdW1uc19pbnRlcm5hbChOb2RlICpub2RlLCBSZWxhdGlvbiByZWwsIGludCBydF9pbmRl eCwgUmFuZ2VUYmxFbnRyeSAqcnRlKQoreworCVR1cGxlRGVzYwl0dXBkZXNjOworCisJdHVw ZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKKwlpZiAodHVwZGVzYy0+Y29uc3RyICYm IHR1cGRlc2MtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCXsKKwkJTGlzdAkg ICAqdGxpc3QgPSBOSUw7CisKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0 czsgaSsrKQorCQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyID0gVHVwbGVEZXNjQXR0 cih0dXBkZXNjLCBpKTsKKworCQkJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQl7CisJCQkJTm9kZQkgICAqZGVmZXhwcjsKKwkJ CQlpbnQJCQlhdHRudW0gPSBpICsgMTsKKwkJCQlPaWQJCQlhdHRjb2xsaWQ7CisJCQkJVGFy Z2V0RW50cnkgKnRlOworCisJCQkJZGVmZXhwciA9IGJ1aWxkX2NvbHVtbl9kZWZhdWx0KHJl bCwgYXR0bnVtKTsKKwkJCQlpZiAoZGVmZXhwciA9PSBOVUxMKQorCQkJCQllbG9nKEVSUk9S LCAibm8gZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvdW5kIGZvciBjb2x1bW4gbnVtYmVyICVk IG9mIHRhYmxlIFwiJXNcIiIsCisJCQkJCQkgYXR0bnVtLCBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKTsKKworCQkJCS8qCisJCQkJICogSWYgdGhlIGNvbHVtbiBkZWZpbml0aW9u IGhhcyBhIGNvbGxhdGlvbiBhbmQgaXQgaXMKKwkJCQkgKiBkaWZmZXJlbnQgZnJvbSB0aGUg Y29sbGF0aW9uIG9mIHRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24sCisJCQkJICogcHV0IGEg Q09MTEFURSBjbGF1c2UgYXJvdW5kIHRoZSBleHByZXNzaW9uLgorCQkJCSAqLworCQkJCWF0 dGNvbGxpZCA9IGF0dHItPmF0dGNvbGxhdGlvbjsKKwkJCQlpZiAoYXR0Y29sbGlkICYmIGF0 dGNvbGxpZCAhPSBleHByQ29sbGF0aW9uKGRlZmV4cHIpKQorCQkJCXsKKwkJCQkJQ29sbGF0 ZUV4cHIgKmNlID0gbWFrZU5vZGUoQ29sbGF0ZUV4cHIpOworCisJCQkJCWNlLT5hcmcgPSAo RXhwciAqKSBkZWZleHByOworCQkJCQljZS0+Y29sbE9pZCA9IGF0dGNvbGxpZDsKKwkJCQkJ Y2UtPmxvY2F0aW9uID0gLTE7CisKKwkJCQkJZGVmZXhwciA9IChOb2RlICopIGNlOworCQkJ CX0KKworCQkJCUNoYW5nZVZhck5vZGVzKGRlZmV4cHIsIDEsIHJ0X2luZGV4LCAwKTsKKwor CQkJCXRlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIGRlZmV4cHIsIGF0dG51bSwgMCwg ZmFsc2UpOworCQkJCXRsaXN0ID0gbGFwcGVuZCh0bGlzdCwgdGUpOworCQkJfQorCQl9CisK KwkJQXNzZXJ0KGxpc3RfbGVuZ3RoKHRsaXN0KSA+IDApOworCisJCW5vZGUgPSBSZXBsYWNl VmFyc0Zyb21UYXJnZXRMaXN0KG5vZGUsIHJ0X2luZGV4LCAwLCBydGUsIHRsaXN0LCBSRVBM QUNFVkFSU19DSEFOR0VfVkFSTk8sIHJ0X2luZGV4LCBOVUxMKTsKKwl9CisKKwlyZXR1cm4g bm9kZTsKK30KKworLyoKKyAqIEV4cGFuZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlu IGFuIGV4cHJlc3Npb24KKyAqCisgKiBUaGlzIGlzIGZvciBleHByZXNzaW9ucyB0aGF0IGFy ZSBub3QgcGFydCBvZiBhIHF1ZXJ5LCBzdWNoIGFzIGRlZmF1bHQKKyAqIGV4cHJlc3Npb25z IG9yIGluZGV4IHByZWRpY2F0ZXMuICBUaGUgcnRfaW5kZXggaXMgdXN1YWxseSAxLgorICov CitOb2RlICoKK2V4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKE5vZGUgKm5vZGUs IFJlbGF0aW9uIHJlbCwgaW50IHJ0X2luZGV4KQoreworCVR1cGxlRGVzYwl0dXBkZXNjID0g UmVsYXRpb25HZXREZXNjcihyZWwpOworCisJaWYgKHR1cGRlc2MtPmNvbnN0ciAmJiB0dXBk ZXNjLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwl7CisJCVJhbmdlVGJsRW50 cnkgKnJ0ZTsKKworCQlydGUgPSBtYWtlTm9kZShSYW5nZVRibEVudHJ5KTsKKwkJcnRlLT5y ZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsKTsKKworCQlub2RlID0gZXhwYW5kX2dlbmVy YXRlZF9jb2x1bW5zX2ludGVybmFsKG5vZGUsIHJlbCwgcnRfaW5kZXgsIHJ0ZSk7CisJfQor CisJcmV0dXJuIG5vZGU7Cit9CisKKwogLyoKICAqIFF1ZXJ5UmV3cml0ZSAtCiAgKgkgIFBy aW1hcnkgZW50cnkgcG9pbnQgdG8gdGhlIHF1ZXJ5IHJld3JpdGVyLgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3JlbGNhY2hlLmMKaW5kZXggM2ZlNzRiNTgwYTUuLjcyOGRlZDUyYjk1IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU5Miw2ICs1OTIsOCBAQCBSZWxh dGlvbkJ1aWxkVHVwbGVEZXNjKFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJY29uc3RyLT5oYXNf bm90X251bGwgPSB0cnVlOwogCQlpZiAoYXR0cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVU RV9HRU5FUkFURURfU1RPUkVEKQogCQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCA9 IHRydWU7CisJCWlmIChhdHRwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRF RF9WSVJUVUFMKQorCQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwgPSB0cnVlOwog CQlpZiAoYXR0cC0+YXR0aGFzZGVmKQogCQkJbmRlZisrOwogCkBAIC02NzQsNiArNjc2LDcg QEAgUmVsYXRpb25CdWlsZFR1cGxlRGVzYyhSZWxhdGlvbiByZWxhdGlvbikKIAkgKi8KIAlp ZiAoY29uc3RyLT5oYXNfbm90X251bGwgfHwKIAkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0 b3JlZCB8fAorCQljb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCB8fAogCQluZGVmID4g MCB8fAogCQlhdHRybWlzcyB8fAogCQlyZWxhdGlvbi0+cmRfcmVsLT5yZWxjaGVja3MgPiAw KQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKaW5kZXggOGY3M2E1ZGY5NTYuLjE1MzJjMjdmN2MxIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKQEAgLTE2MTg5LDYgKzE2MTg5LDkgQEAgZHVtcFRhYmxlU2NoZW1hKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJCQkJaWYgKHRiaW5mby0+ YXR0Z2VuZXJhdGVkW2pdID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQogCQkJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgR0VORVJBVEVEIEFMV0FZUyBBUyAoJXMpIFNUT1JF RCIsCiAJCQkJCQkJCQkJCSAgdGJpbmZvLT5hdHRyZGVmc1tqXS0+YWRlZl9leHByKTsKKwkJ CQkJCWVsc2UgaWYgKHRiaW5mby0+YXR0Z2VuZXJhdGVkW2pdID09IEFUVFJJQlVURV9HRU5F UkFURURfVklSVFVBTCkKKwkJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIEdFTkVSQVRF RCBBTFdBWVMgQVMgKCVzKSIsCisJCQkJCQkJCQkJCSAgdGJpbmZvLT5hdHRyZGVmc1tqXS0+ YWRlZl9leHByKTsKIAkJCQkJCWVsc2UKIAkJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAi IERFRkFVTFQgJXMiLAogCQkJCQkJCQkJCQkgIHRiaW5mby0+YXR0cmRlZnNbal0tPmFkZWZf ZXhwcik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBi L3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IGJmNjVkNDRiOTQyLi4z YjhmYjZmZTRlOCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTM2NDEsMTIg KzM2NDEsMTQgQEAKIAkJY3JlYXRlX29yZGVyID0+IDMsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NS RUFURSBUQUJMRSBkdW1wX3Rlc3QudGVzdF90YWJsZV9nZW5lcmF0ZWQgKAogCQkJCQkJICAg Y29sMSBpbnQgcHJpbWFyeSBrZXksCi0JCQkJCQkgICBjb2wyIGludCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChjb2wxICogMikgc3RvcmVkCisJCQkJCQkgICBjb2wyIGludCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChjb2wxICogMikgc3RvcmVkLAorCQkJCQkJICAgY29sMyBpbnQgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoY29sMSAqIDMpIHZpcnR1YWwKIAkJCQkJICAgKTsnLAogCQlyZWdl eHAgPT4gcXIvXgogCQkJXFFDUkVBVEUgVEFCTEUgZHVtcF90ZXN0LnRlc3RfdGFibGVfZ2Vu ZXJhdGVkIChcRVxuCiAJCQlccytcUWNvbDEgaW50ZWdlciBOT1QgTlVMTCxcRVxuCi0JCQlc cytcUWNvbDIgaW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgoY29sMSAqIDIpKSBTVE9S RURcRVxuCisJCQlccytcUWNvbDIgaW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgoY29s MSAqIDIpKSBTVE9SRUQsXEVcbgorCQkJXHMrXFFjb2wzIGludGVnZXIgR0VORVJBVEVEIEFM V0FZUyBBUyAoKGNvbDEgKiAzKSlcRVxuCiAJCQlcKTsKIAkJCS94bXMsCiAJCWxpa2UgPT4K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKaW5kZXggZDU1NDNmZDYyYjAuLmRkZDdlYjE2MDU1IDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpA QCAtMjEwNyw2ICsyMTA3LDEyIEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNo YXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCQkgICBQUWdldHZhbHVlKHJlcywgaSwgYXR0cmRl Zl9jb2wpKTsKIAkJCQltdXN0ZnJlZSA9IHRydWU7CiAJCQl9CisJCQllbHNlIGlmIChnZW5l cmF0ZWRbMF0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJeworCQkJCWRl ZmF1bHRfc3RyID0gcHNwcmludGYoImdlbmVyYXRlZCBhbHdheXMgYXMgKCVzKSIsCisJCQkJ CQkJCQkgICBQUWdldHZhbHVlKHJlcywgaSwgYXR0cmRlZl9jb2wpKTsKKwkJCQltdXN0ZnJl ZSA9IHRydWU7CisJCQl9CiAJCQllbHNlCiAJCQkJZGVmYXVsdF9zdHIgPSBQUWdldHZhbHVl KHJlcywgaSwgYXR0cmRlZl9jb2wpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvdHVwZGVzYy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaAppbmRleCBhZWU4 NzFiMGU4Zi4uN2I1NGY4Mjc1ZTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90 dXBkZXNjLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaApAQCAtNDMsNiAr NDMsNyBAQCB0eXBlZGVmIHN0cnVjdCBUdXBsZUNvbnN0cgogCXVpbnQxNgkJbnVtX2NoZWNr OwogCWJvb2wJCWhhc19ub3RfbnVsbDsKIAlib29sCQloYXNfZ2VuZXJhdGVkX3N0b3JlZDsK Kwlib29sCQloYXNfZ2VuZXJhdGVkX3ZpcnR1YWw7CiB9IFR1cGxlQ29uc3RyOwogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL2hlYXAuaAppbmRleCA5ZGVhNDljNTJiNC4uOWFkYzRiYTczNDQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvaGVhcC5oCkBAIC0yMyw2ICsyMyw3IEBACiAjZGVmaW5lIENIS0FUWVBFX0FOWUFSUkFZ CQkweDAxCS8qIGFsbG93IEFOWUFSUkFZICovCiAjZGVmaW5lIENIS0FUWVBFX0FOWVJFQ09S RAkJMHgwMgkvKiBhbGxvdyBSRUNPUkQgYW5kIFJFQ09SRFtdICovCiAjZGVmaW5lIENIS0FU WVBFX0lTX1BBUlRLRVkJCTB4MDQJLyogYXR0bmFtZSBpcyBwYXJ0IGtleSAjIG5vdCBjb2x1 bW4gKi8KKyNkZWZpbmUgQ0hLQVRZUEVfSVNfVklSVFVBTAkJMHgwOAkvKiBpcyB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW4gKi8KIAogdHlwZWRlZiBzdHJ1Y3QgUmF3Q29sdW1uRGVmYXVs dAogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKaW5kZXggNTU3Mjg2ZjA0ODAu LjM3ODZmYjUyYTJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJp YnV0ZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKQEAgLTIy NSw2ICsyMjUsNyBAQCBNQUtFX1NZU0NBQ0hFKEFUVE5VTSwgcGdfYXR0cmlidXRlX3JlbGlk X2F0dG51bV9pbmRleCwgMTI4KTsKICNkZWZpbmUJCSAgQVRUUklCVVRFX0lERU5USVRZX0JZ X0RFRkFVTFQgJ2QnCiAKICNkZWZpbmUJCSAgQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQJ J3MnCisjZGVmaW5lCQkgIEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTAkndicKIAogI2Vu ZGlmCQkJCQkJCS8qIEVYUE9TRV9UT19DTElFTlRfQ09ERSAqLwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuaCBiL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5oCmluZGV4IGQxZGRjMzlhZDM3Li5iZjNiNTkyZTI4 ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmgKQEAgLTE1LDkg KzE1LDkgQEAKIAogI2luY2x1ZGUgIm5vZGVzL2V4ZWNub2Rlcy5oIgogCi1leHRlcm4gdm9p ZCBFeGVjSW5pdFN0b3JlZEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZv LAotCQkJCQkJCQkJRVN0YXRlICplc3RhdGUsCi0JCQkJCQkJCQlDbWRUeXBlIGNtZHR5cGUp OworZXh0ZXJuIHZvaWQgRXhlY0luaXRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0 UmVsSW5mbywKKwkJCQkJCQkgIEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJCSAgQ21kVHlwZSBj bWR0eXBlKTsKIAogZXh0ZXJuIHZvaWQgRXhlY0NvbXB1dGVTdG9yZWRHZW5lcmF0ZWQoUmVz dWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCQkJCQkJCSAgIEVTdGF0ZSAqZXN0YXRl LCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggYjNm N2FhMjk5ZjUuLmJjMmQ1YjNmMTZkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNTQw LDYgKzU0MCw5IEBAIHR5cGVkZWYgc3RydWN0IFJlc3VsdFJlbEluZm8KIAlpbnQJCQlyaV9O dW1HZW5lcmF0ZWROZWVkZWRJOwogCWludAkJCXJpX051bUdlbmVyYXRlZE5lZWRlZFU7CiAK KwkvKiB0cnVlIGlmIHRoZSBhYm92ZSBoYXZlIGJlZW4gY29tcHV0ZWQgKi8KKwlib29sCQly aV9HZW5lcmF0ZWRfdmFsaWQ7CisKIAkvKiBsaXN0IG9mIFJFVFVSTklORyBleHByZXNzaW9u cyAqLwogCUxpc3QJICAgKnJpX3JldHVybmluZ0xpc3Q7CiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCAzOGQ2YWQ3ZGNiZC4uODExYjgwODQ1ZGIgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKQEAgLTI3NjUsNiArMjc2NSw3IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0cmFp bnQKIAljaGFyCSAgICpjb29rZWRfZXhwcjsJLyogQ0hFQ0sgb3IgREVGQVVMVCBleHByZXNz aW9uLCBhcwogCQkJCQkJCQkgKiBub2RlVG9TdHJpbmcgcmVwcmVzZW50YXRpb24gKi8KIAlj aGFyCQlnZW5lcmF0ZWRfd2hlbjsgLyogQUxXQVlTIG9yIEJZIERFRkFVTFQgKi8KKwljaGFy CQlnZW5lcmF0ZWRfa2luZDsgLyogU1RPUkVEIG9yIFZJUlRVQUwgKi8KIAlib29sCQludWxs c19ub3RfZGlzdGluY3Q7IC8qIG51bGwgdHJlYXRtZW50IGZvciBVTklRVUUgY29uc3RyYWlu dHMgKi8KIAlMaXN0CSAgICprZXlzOwkJCS8qIFN0cmluZyBub2RlcyBuYW1pbmcgcmVmZXJl bmNlZCBrZXkKIAkJCQkJCQkJICogY29sdW1uKHMpOyBmb3IgVU5JUVVFL1BLL05PVCBOVUxM ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5j bHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggMjRjMjJhODY5NGIuLmVkNGVkMDc5M2YzIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC00OTAsNiArNDkwLDcgQEAgUEdfS0VZV09SRCgidmVy Ym9zZSIsIFZFUkJPU0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ2ZXJzaW9uIiwgVkVSU0lPTl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2aWV3IiwgVklFVywgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmlld3MiLCBWSUVXUywgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgidmlydHVhbCIsIFZJUlRVQUwsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZvbGF0aWxlIiwg Vk9MQVRJTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo IndoZW4iLCBXSEVOLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgid2hlcmUiLCBXSEVSRSwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmggYi9zcmMvaW5jbHVk ZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgKaW5kZXggZDI1OGIyNjM3NWYuLjg4ZmUxM2M1 ZjRmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgK KysrIGIvc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oCkBAIC0zOCw0ICsz OCw2IEBAIGV4dGVybiB2b2lkIGVycm9yX3ZpZXdfbm90X3VwZGF0YWJsZShSZWxhdGlvbiB2 aWV3LAogCQkJCQkJCQkJIExpc3QgKm1lcmdlQWN0aW9uTGlzdCwKIAkJCQkJCQkJCSBjb25z dCBjaGFyICpkZXRhaWwpOwogCitleHRlcm4gTm9kZSAqZXhwYW5kX2dlbmVyYXRlZF9jb2x1 bW5zX2luX2V4cHIoTm9kZSAqbm9kZSwgUmVsYXRpb24gcmVsLCBpbnQgcnRfaW5kZXgpOwor CiAjZW5kaWYJCQkJCQkJLyogUkVXUklURUhBTkRMRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L3BsL3BscGVybC9leHBlY3RlZC9wbHBlcmxfdHJpZ2dlci5vdXQgYi9zcmMvcGwvcGxwZXJs L2V4cGVjdGVkL3BscGVybF90cmlnZ2VyLm91dAppbmRleCBkNDg3OWUyZjAzYi4uNDJjNTJl Y2JiYTggMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdn ZXIub3V0CisrKyBiL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIub3V0 CkBAIC04LDcgKzgsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0ICgKICk7CiBDUkVB VEUgVEFCTEUgdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZCAoCiAgICAgaSBpbnQsCi0gICAgaiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRAorICAgIGogaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgayBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiB0cmlnZ2VyX2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZXJsIEFTICQk CiAKQEAgLTM4Niw3ICszODcsNyBAQCBJTlNFUlQgSU5UTyB0cmlnZ2VyX3Rlc3RfZ2VuZXJh dGVkIChpKSBWQUxVRVMgKDEpOwogRVJST1I6ICBjYW5ub3Qgc2V0IGdlbmVyYXRlZCBjb2x1 bW4gImoiCiBDT05URVhUOiAgUEwvUGVybCBmdW5jdGlvbiAiZ2VuZXJhdGVkX3Rlc3RfZnVu YzEiCiBTRUxFQ1QgKiBGUk9NIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0t LS0rLS0tCisgaSB8IGogfCBrIAorLS0tKy0tLSstLS0KICgwIHJvd3MpCiAKZGlmZiAtLWdp dCBhL3NyYy9wbC9wbHBlcmwvcGxwZXJsLmMgYi9zcmMvcGwvcGxwZXJsL3BscGVybC5jCmlu ZGV4IDFiMTY3N2UzMzNiLi5lYmY1NWZlNjYzYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVy bC9wbHBlcmwuYworKysgYi9zcmMvcGwvcGxwZXJsL3BscGVybC5jCkBAIC0zMDQ3LDYgKzMw NDcsOSBAQCBwbHBlcmxfaGFzaF9mcm9tX3R1cGxlKEhlYXBUdXBsZSB0dXBsZSwgVHVwbGVE ZXNjIHR1cGRlc2MsIGJvb2wgaW5jbHVkZV9nZW5lcmF0ZQogCQkJLyogZG9uJ3QgaW5jbHVk ZSB1bmxlc3MgcmVxdWVzdGVkICovCiAJCQlpZiAoIWluY2x1ZGVfZ2VuZXJhdGVkKQogCQkJ CWNvbnRpbnVlOworCQkJLyogbmV2ZXIgaW5jbHVkZSB2aXJ0dWFsIGNvbHVtbnMgKi8KKwkJ CWlmIChhdHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwp CisJCQkJY29udGludWU7CiAJCX0KIAogCQlhdHRuYW1lID0gTmFtZVN0cihhdHQtPmF0dG5h bWUpOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIuc3Fs IGIvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIuc3FsCmluZGV4IDRhZGRkZWI4 MGFjLi4yNzk4YTAyZmExMiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJs X3RyaWdnZXIuc3FsCisrKyBiL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2VyLnNx bApAQCAtMTAsNyArMTAsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0ICgKIAogQ1JF QVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogICAgIGkgaW50LAotICAgIGog aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAgICBqIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAorICAgIGsgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogCiBDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiB0cmlnZ2VyX2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZXJsIEFT ICQkCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJp Z2dlci5vdXQgYi9zcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dlci5v dXQKaW5kZXggNGNiOTBjYjUyMDQuLjY0ZWFiMmZhM2Y0IDEwMDY0NAotLS0gYS9zcmMvcGwv cGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dlci5vdXQKKysrIGIvc3JjL3BsL3Bs cHl0aG9uL2V4cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0CkBAIC02OSw3ICs2OSw4IEBA IENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rlc3QKIAkoaSBpbnQsIHYgdGV4dCApOwogQ1JFQVRF IFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogCWkgaW50LAotICAgICAgICBqIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisgICAgICAgIGogaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgICAgIGsgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogQ1JFQVRFIEZVTkNUSU9OIHRy aWdnZXJfZGF0YSgpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHB5dGhvbjN1IEFTICQk CiAKQEAgLTYxNCw4ICs2MTUsOCBAQCBFUlJPUjogIGNhbm5vdCBzZXQgZ2VuZXJhdGVkIGNv bHVtbiAiaiIKIENPTlRFWFQ6ICB3aGlsZSBtb2RpZnlpbmcgdHJpZ2dlciByb3cKIFBML1B5 dGhvbiBmdW5jdGlvbiAiZ2VuZXJhdGVkX3Rlc3RfZnVuYzEiCiBTRUxFQ1QgKiBGUk9NIHRy aWdnZXJfdGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisgaSB8IGogfCBrIAor LS0tKy0tLSstLS0KICgwIHJvd3MpCiAKIC0tIHJlY3Vyc2l2ZSBjYWxsIG9mIGEgdHJpZ2dl ciBtdXN0bid0IGNvcnJ1cHQgVEQgKGJ1ZyAjMTg0NTYpCmRpZmYgLS1naXQgYS9zcmMvcGwv cGxweXRob24vcGxweV90eXBlaW8uYyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVpby5j CmluZGV4IGRiMTRjNWY4ZGFlLi41MWUxZDYxMDI1OSAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cHl0aG9uL3BscHlfdHlwZWlvLmMKKysrIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfdHlwZWlv LmMKQEAgLTg0NCw2ICs4NDQsOSBAQCBQTHlEaWN0X0Zyb21UdXBsZShQTHlEYXR1bVRvT2Ig KmFyZywgSGVhcFR1cGxlIHR1cGxlLCBUdXBsZURlc2MgZGVzYywgYm9vbCBpbmNsdQogCQkJ CS8qIGRvbid0IGluY2x1ZGUgdW5sZXNzIHJlcXVlc3RlZCAqLwogCQkJCWlmICghaW5jbHVk ZV9nZW5lcmF0ZWQpCiAJCQkJCWNvbnRpbnVlOworCQkJCS8qIG5ldmVyIGluY2x1ZGUgdmly dHVhbCBjb2x1bW5zICovCisJCQkJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJCWNvbnRpbnVlOwogCQkJfQogCiAJCQlrZXkg PSBOYW1lU3RyKGF0dHItPmF0dG5hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0aG9u L3NxbC9wbHB5dGhvbl90cmlnZ2VyLnNxbCBiL3NyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRo b25fdHJpZ2dlci5zcWwKaW5kZXggZjZjMmVmOGQ2YTAuLjQ0MDU0OWMwNzg1IDEwMDY0NAot LS0gYS9zcmMvcGwvcGxweXRob24vc3FsL3BscHl0aG9uX3RyaWdnZXIuc3FsCisrKyBiL3Ny Yy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25fdHJpZ2dlci5zcWwKQEAgLTY5LDcgKzY5LDgg QEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdAogCiBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90 ZXN0X2dlbmVyYXRlZCAoCiAJaSBpbnQsCi0gICAgICAgIGogaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAgICAgICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoaSAqIDIpIFNUT1JFRCwKKyAgICAgICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo aSAqIDMpIFZJUlRVQUwKICk7CiAKIENSRUFURSBGVU5DVElPTiB0cmlnZ2VyX2RhdGEoKSBS RVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxweXRob24zdSBBUyAkJApkaWZmIC0tZ2l0IGEv c3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90cmlnZ2VyLm91dCBiL3NyYy9wbC90Y2wvZXhw ZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQKaW5kZXggMTI5YWJkNWJhNjcuLjUyOThlNTBhNWVj IDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0Cisr KyBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQKQEAgLTYzLDcgKzYz LDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdCAoCiBBTFRFUiBUQUJMRSB0cmlnZ2Vy X3Rlc3QgRFJPUCBkcm9wbWU7CiBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0X2dlbmVyYXRl ZCAoCiAgICBpIGludCwKLSAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBT VE9SRUQKKyAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisg ICBrIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMykgVklSVFVBTAogKTsKIENSRUFU RSBWSUVXIHRyaWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dlcl90 ZXN0OwogQ1JFQVRFIEZVTkNUSU9OIHRyaWdnZXJfZGF0YSgpIHJldHVybnMgdHJpZ2dlciBs YW5ndWFnZSBwbHRjbCBhcyAkXyQKQEAgLTY0Nyw3ICs2NDgsNyBAQCBOT1RJQ0U6ICBPTEQ6 IHt9CiBOT1RJQ0U6ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3Ry aWdnZXJfZGF0YV90cmlnX2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IElOU0VSVAotTk9USUNF OiAgVEdfcmVsYXR0czoge3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGog a30KIE5PVElDRTogIFRHX3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVf bmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1h OiBwdWJsaWMKQEAgLTY1OCw3ICs2NTksNyBAQCBOT1RJQ0U6ICBPTEQ6IHt9CiBOT1RJQ0U6 ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90 cmlnX2FmdGVyCiBOT1RJQ0U6ICBUR19vcDogSU5TRVJUCi1OT1RJQ0U6ICBUR19yZWxhdHRz OiB7e30gaSBqfQorTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgaiBrfQogTk9USUNFOiAg VEdfcmVsaWQ6IGJvZ3VzOjEyMzQ1CiBOT1RJQ0U6ICBUR190YWJsZV9uYW1lOiB0cmlnZ2Vy X3Rlc3RfZ2VuZXJhdGVkCiBOT1RJQ0U6ICBUR190YWJsZV9zY2hlbWE6IHB1YmxpYwpAQCAt NjcwLDcgKzY3MSw3IEBAIE5PVElDRTogIE9MRDoge2k6IDEsIGo6IDJ9CiBOT1RJQ0U6ICBU R19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmln X2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IFVQREFURQotTk9USUNFOiAgVEdfcmVsYXR0czog e3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRH X3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90 ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTY4 MSw3ICs2ODIsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxLCBqOiAyfQogTk9USUNFOiAgVEdf bGV2ZWw6IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJpZ19h ZnRlcgogTk9USUNFOiAgVEdfb3A6IFVQREFURQotTk9USUNFOiAgVEdfcmVsYXR0czoge3t9 IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRHX3Jl bGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90ZXN0 X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTY5Myw3 ICs2OTQsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxMSwgajogMjJ9CiBOT1RJQ0U6ICBUR19s ZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmlnX2Jl Zm9yZQogTk9USUNFOiAgVEdfb3A6IERFTEVURQotTk9USUNFOiAgVEdfcmVsYXR0czoge3t9 IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRHX3Jl bGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90ZXN0 X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTcwNCw3 ICs3MDUsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxMSwgajogMjJ9CiBOT1RJQ0U6ICBUR19s ZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmlnX2Fm dGVyCiBOT1RJQ0U6ICBUR19vcDogREVMRVRFCi1OT1RJQ0U6ICBUR19yZWxhdHRzOiB7e30g aSBqfQorTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgaiBrfQogTk9USUNFOiAgVEdfcmVs aWQ6IGJvZ3VzOjEyMzQ1CiBOT1RJQ0U6ICBUR190YWJsZV9uYW1lOiB0cmlnZ2VyX3Rlc3Rf Z2VuZXJhdGVkCiBOT1RJQ0U6ICBUR190YWJsZV9zY2hlbWE6IHB1YmxpYwpAQCAtODgyLDcg Kzg4Myw3IEBAIFRSVU5DQVRFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7CiBJTlNFUlQgSU5U TyB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkIChpKSBWQUxVRVMgKDEpOwogRVJST1I6ICBjYW5u b3Qgc2V0IGdlbmVyYXRlZCBjb2x1bW4gImoiCiBTRUxFQ1QgKiBGUk9NIHRyaWdnZXJfdGVz dF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisgaSB8IGogfCBrIAorLS0tKy0tLSst LS0KICgwIHJvd3MpCiAKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wvcGx0Y2wuYyBiL3NyYy9w bC90Y2wvcGx0Y2wuYwppbmRleCBmZWI2YTc2YjU2Yy4uMDhjODQ5MjA1MGUgMTAwNjQ0Ci0t LSBhL3NyYy9wbC90Y2wvcGx0Y2wuYworKysgYi9zcmMvcGwvdGNsL3BsdGNsLmMKQEAgLTMy MDYsNiArMzIwNiw5IEBAIHBsdGNsX2J1aWxkX3R1cGxlX2FyZ3VtZW50KEhlYXBUdXBsZSB0 dXBsZSwgVHVwbGVEZXNjIHR1cGRlc2MsIGJvb2wgaW5jbHVkZV9nZW5lCiAJCQkvKiBkb24n dCBpbmNsdWRlIHVubGVzcyByZXF1ZXN0ZWQgKi8KIAkJCWlmICghaW5jbHVkZV9nZW5lcmF0 ZWQpCiAJCQkJY29udGludWU7CisJCQkvKiBuZXZlciBpbmNsdWRlIHZpcnR1YWwgY29sdW1u cyAqLworCQkJaWYgKGF0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURf VklSVFVBTCkKKwkJCQljb250aW51ZTsKIAkJfQogCiAJCS8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBh L3NyYy9wbC90Y2wvc3FsL3BsdGNsX3RyaWdnZXIuc3FsIGIvc3JjL3BsL3RjbC9zcWwvcGx0 Y2xfdHJpZ2dlci5zcWwKaW5kZXggMmEyNDRkZTgzYmMuLjBlZDAwZjQ5NTI2IDEwMDY0NAot LS0gYS9zcmMvcGwvdGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbAorKysgYi9zcmMvcGwvdGNs L3NxbC9wbHRjbF90cmlnZ2VyLnNxbApAQCAtNzMsNyArNzMsOCBAQCBDUkVBVEUgVEFCTEUg dHJpZ2dlcl90ZXN0ICgKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQg KAogICAgaSBpbnQsCi0gICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RP UkVECisgICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAorICAg ayBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiAKIENSRUFU RSBWSUVXIHRyaWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dlcl90 ZXN0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmlj dS51dGY4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRm OC5vdXQKaW5kZXggZDRmMzI3NjM2ZmQuLmI1MTczMzdkNmQ4IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKQEAgLTI1MzEsNiAr MjUzMSwyNiBAQCBEUk9QIFRBQkxFIHBhZ2dfdGFiNjsKIFJFU0VUIGVuYWJsZV9wYXJ0aXRp b253aXNlX2FnZ3JlZ2F0ZTsKIFJFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRo ZXI7CiBSRVNFVCBlbmFibGVfaW5jcmVtZW50YWxfc29ydDsKKy0tIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMKK0NSRUFURSBUQUJMRSB0NSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0 IGNvbGxhdGUgIkMiLAorICAgIGMgdGV4dCBjb2xsYXRlICJDIiBHRU5FUkFURUQgQUxXQVlT IEFTIChiIENPTExBVEUgY2FzZV9pbnNlbnNpdGl2ZSkKKyk7CitJTlNFUlQgSU5UTyB0NSAo YSwgYikgdmFsdWVzICgxLCAnRDEnKSwgKDIsICdEMicpLCAoMywgJ2QxJyk7CistLSBDb2xs YXRpb24gb2YgYyBzaG91bGQgYmUgdGhlIG9uZSBkZWZpbmVkIGZvciB0aGUgY29sdW1uICgi QyIpLCBub3QKKy0tIHRoZSBvbmUgb2YgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbi4gIChO b3RlIHRoYXQgd2UgY2Fubm90IGp1c3QKKy0tIHRlc3Qgd2l0aCwgc2F5LCB1c2luZyBDT0xM QVRJT04gRk9SLCBiZWNhdXNlIHRoZSBjb2xsYXRpb24gb2YKKy0tIGZ1bmN0aW9uIGNhbGxz IGlzIGFscmVhZHkgZGV0ZXJtaW5lZCBpbiB0aGUgcGFyc2VyIGJlZm9yZQorLS0gcmV3cml0 aW5nLikKK1NFTEVDVCAqIEZST00gdDUgT1JERVIgQlkgYyBBU0MsIGEgQVNDOworIGEgfCBi ICB8IGMgIAorLS0tKy0tLS0rLS0tLQorIDEgfCBEMSB8IEQxCisgMiB8IEQyIHwgRDIKKyAz IHwgZDEgfCBkMQorKDMgcm93cykKKwogLS0gY2xlYW51cAogUkVTRVQgc2VhcmNoX3BhdGg7 CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyBUTyB3YXJuaW5nOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dAppbmRleCBkMDkxZGE1 YTFlZi4uNDkwZWM5ODZiMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0CkBAIC0xMTMsMTkgKzExMywyMCBAQCBTRUxFQ1Qg KiBGUk9NIHRlc3RfbGlrZV9pZF8zOyAgLS0gaWRlbnRpdHkgd2FzIGNvcGllZCBhbmQgYXBw bGllZAogKDEgcm93KQogCiBEUk9QIFRBQkxFIHRlc3RfbGlrZV9pZF8xLCB0ZXN0X2xpa2Vf aWRfMiwgdGVzdF9saWtlX2lkXzM7Ci1DUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChh IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVB VEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMp IFZJUlRVQUwpOwogXGQgdGVzdF9saWtlX2dlbl8xCiAgICAgICAgICAgICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnRlc3RfbGlrZV9nZW5fMSIKICBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgIAogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGMgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAzKQogCiBJTlNFUlQgSU5UTyB0ZXN0X2xpa2VfZ2VuXzEgKGEpIFZBTFVFUyAo MSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9nZW5fMTsKLSBhIHwgYiAKLS0tLSstLS0K LSAxIHwgMgorIGEgfCBiIHwgYyAKKy0tLSstLS0rLS0tCisgMSB8IDIgfCAzCiAoMSByb3cp CiAKIENSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzIgKExJS0UgdGVzdF9saWtlX2dlbl8x KTsKQEAgLTEzNSwxMiArMTM2LDEzIEBAIENSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzIg KExJS0UgdGVzdF9saWtlX2dlbl8xKTsKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IAogIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogCiBJ TlNFUlQgSU5UTyB0ZXN0X2xpa2VfZ2VuXzIgKGEpIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBG Uk9NIHRlc3RfbGlrZV9nZW5fMjsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgIAorIGEgfCBi IHwgYyAKKy0tLSstLS0rLS0tCisgMSB8ICAgfCAgCiAoMSByb3cpCiAKIENSRUFURSBUQUJM RSB0ZXN0X2xpa2VfZ2VuXzMgKExJS0UgdGVzdF9saWtlX2dlbl8xIElOQ0xVRElORyBHRU5F UkFURUQpOwpAQCAtMTUwLDEyICsxNTIsMTMgQEAgQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9n ZW5fMyAoTElLRSB0ZXN0X2xpa2VfZ2VuXzEgSU5DTFVESU5HIEdFTkVSQVRFRCk7CiAtLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKICBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCisgYyAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMp CiAKIElOU0VSVCBJTlRPIHRlc3RfbGlrZV9nZW5fMyAoYSkgVkFMVUVTICgxKTsKIFNFTEVD VCAqIEZST00gdGVzdF9saWtlX2dlbl8zOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCisg YSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAxIHwgMiB8IDMKICgxIHJvdykKIAogRFJPUCBU QUJMRSB0ZXN0X2xpa2VfZ2VuXzEsIHRlc3RfbGlrZV9nZW5fMiwgdGVzdF9saWtlX2dlbl8z OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CmluZGV4 IDU5MzY1ZGFkOTY0Li4yNzJiNTdlNDhjZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZmFzdF9kZWZhdWx0Lm91dApAQCAtNTgsNiArNTgsMTggQEAgQUxURVIgVEFCTEUg aGFzX3ZvbGF0aWxlIEFERCBjb2wyIGludCBERUZBVUxUIDE7CiBBTFRFUiBUQUJMRSBoYXNf dm9sYXRpbGUgQUREIGNvbDMgdGltZXN0YW1wdHogREVGQVVMVCBjdXJyZW50X3RpbWVzdGFt cDsKIEFMVEVSIFRBQkxFIGhhc192b2xhdGlsZSBBREQgY29sNCBpbnQgREVGQVVMVCAocmFu ZG9tKCkgKiAxMDAwMCk6OmludDsKIE5PVElDRTogIHJld3JpdGluZyB0YWJsZSBoYXNfdm9s YXRpbGUgZm9yIHJlYXNvbiAyCistLSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGRvbid0 IG5lZWQgYSByZXdyaXRlCitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUREIGNvbDUgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkOjppbnQgKyBjb2wyKSBWSVJUVUFMOwor QUxURVIgVEFCTEUgaGFzX3ZvbGF0aWxlIEFMVEVSIENPTFVNTiBjb2w1IFRZUEUgZmxvYXQ4 OworQUxURVIgVEFCTEUgaGFzX3ZvbGF0aWxlIEFMVEVSIENPTFVNTiBjb2w1IFRZUEUgbnVt ZXJpYzsKK0FMVEVSIFRBQkxFIGhhc192b2xhdGlsZSBBTFRFUiBDT0xVTU4gY29sNSBUWVBF IG51bWVyaWM7CistLSBoZXJlLCB3ZSBkbyBuZWVkIGEgcmV3cml0ZQorQUxURVIgVEFCTEUg aGFzX3ZvbGF0aWxlIEFMVEVSIENPTFVNTiBjb2wxIFNFVCBEQVRBIFRZUEUgZmxvYXQ4LAor ICBBREQgQ09MVU1OIGNvbDYgZmxvYXQ4IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGNvbDEgKiA0 KSBWSVJUVUFMOworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIGhhc192b2xhdGlsZSBmb3Ig cmVhc29uIDQKKy0tIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBuZWVkIGEgcmV3cml0ZQor QUxURVIgVEFCTEUgaGFzX3ZvbGF0aWxlIEFERCBjb2w3IGludCBHRU5FUkFURUQgQUxXQVlT IEFTICg1NSkgc3RvcmVkOworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIGhhc192b2xhdGls ZSBmb3IgcmVhc29uIDIKIC0tIFRlc3QgYSBsYXJnZSBzYW1wbGUgb2YgZGlmZmVyZW50IGRh dGF0eXBlcwogQ1JFQVRFIFRBQkxFIFQocGsgSU5UIE5PVCBOVUxMIFBSSU1BUlkgS0VZLCBj X2ludCBJTlQgREVGQVVMVCAxKTsKIFNFTEVDVCBzZXQoJ3QnKTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CmluZGV4IDBkMDM3ZDQ4 Y2EwLi43MTRlZWZkMzhlMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9nZW5lcmF0ZWRfc3RvcmVkLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2dlbmVyYXRlZF9zdG9yZWQub3V0CkBAIC0xLDkgKzEsNCBAQAotLS0gc2FuaXR5IGNoZWNr IG9mIHN5c3RlbSBjYXRhbG9nCi1TRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVy YXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywg J3MnKTsKLSBhdHRyZWxpZCB8IGF0dG5hbWUgfCBhdHRnZW5lcmF0ZWQgCi0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQotKDAgcm93cykKLQorLS0ga2VlcCB0aGVzZSB0 ZXN0cyBhbGlnbmVkIHdpdGggZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCiBDUkVBVEUgU0NIRU1B IGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7CiBHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJh dGVkX3N0b3JlZF90ZXN0cyBUTyBQVUJMSUM7CiBTRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0 ZWRfc3RvcmVkX3Rlc3RzOwpAQCAtMTI4LDYgKzEyMywyNCBAQCBTRUxFQ1QgKiBGUk9NIGd0 ZXN0MSBPUkRFUiBCWSBhOwogIDQgfCA4CiAoNCByb3dzKQogCitTRUxFQ1QgZ3Rlc3QxIEZS T00gZ3Rlc3QxIE9SREVSIEJZIGE7ICAtLSB3aG9sZS1yb3cgcmVmZXJlbmNlCisgZ3Rlc3Qx IAorLS0tLS0tLS0KKyAoMSwyKQorICgyLDQpCisgKDMsNikKKyAoNCw4KQorKDQgcm93cykK KworU0VMRUNUIGEsIChTRUxFQ1QgZ3Rlc3QxLmIpIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7 ICAtLSBzdWJsaW5rCisgYSB8IGIgCistLS0rLS0tCisgMSB8IDIKKyAyIHwgNAorIDMgfCA2 CisgNCB8IDgKKyg0IHJvd3MpCisKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID49IDM7 CiBVUERBVEUgZ3Rlc3QxIFNFVCBiID0gREVGQVVMVCBXSEVSRSBhID0gMTsKIFVQREFURSBn dGVzdDEgU0VUIGIgPSAxMSBXSEVSRSBhID0gMTsgIC0tIGVycm9yCkBAIC0yMTcsNiArMjMw LDI3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3RtIE9SREVSIEJZIGlkOwogICAyIHwgMjAgfCAy MDAgfCA0MCB8IDQwMAogKDIgcm93cykKIAorRFJPUCBUQUJMRSBndGVzdG07CitDUkVBVEUg VEFCTEUgZ3Rlc3RtICgKKyAgYSBpbnQgUFJJTUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQKKyk7CitJTlNFUlQgSU5UTyBndGVzdG0gKGEp IFNFTEVDVCBnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworTUVSR0UgSU5UTyBn dGVzdG0gdCBVU0lORyBndGVzdG0gQVMgcyBPTiAyICogdC5hID0gcy5iIFdIRU4gTUFUQ0hF RCBUSEVOIERFTEVURSBSRVRVUk5JTkcgKjsKKyBhICB8IGIgIHwgYSAgfCBiICAKKy0tLS0r LS0tLSstLS0tKy0tLS0KKyAgMSB8ICAyIHwgIDEgfCAgMgorICAyIHwgIDQgfCAgMiB8ICA0 CisgIDMgfCAgNiB8ICAzIHwgIDYKKyAgNCB8ICA4IHwgIDQgfCAgOAorICA1IHwgMTAgfCAg NSB8IDEwCisgIDYgfCAxMiB8ICA2IHwgMTIKKyAgNyB8IDE0IHwgIDcgfCAxNAorICA4IHwg MTYgfCAgOCB8IDE2CisgIDkgfCAxOCB8ICA5IHwgMTgKKyAxMCB8IDIwIHwgMTAgfCAyMAor KDEwIHJvd3MpCisKIERST1AgVEFCTEUgZ3Rlc3RtOwogLS0gdmlld3MKIENSRUFURSBWSUVX IGd0ZXN0MXYgQVMgU0VMRUNUICogRlJPTSBndGVzdDE7CkBAIC0zMTIsNiArMzQ2LDEwIEBA IEVSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0 IHNwZWNpZmllcyBkZWZhdWx0CiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBl cnJvcgogTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmlu aXRpb24KIEVSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1 bW4gYnV0IHNwZWNpZmllcyBpZGVudGl0eQorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgVklSVFVBTCkgSU5IRVJJVFMg KGd0ZXN0MSk7ICAtLSBlcnJvcgorTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGgg aW5oZXJpdGVkIGRlZmluaXRpb24KK0VSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0cyBmcm9t IGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQKK0RFVEFJTDogIFBhcmVudCBj b2x1bW4gaXMgU1RPUkVELCBjaGlsZCBjb2x1bW4gaXMgVklSVFVBTC4KIENSRUFURSBUQUJM RSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNU T1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVzIHBhcmVudAogTk9U SUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIFxk KyBndGVzdHgKQEAgLTU0Nyw3ICs1ODUsNyBAQCBDUkVBVEUgRlVOQ1RJT04gZ2YxKGEgaW50 KSBSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgYSAqIDMgJCQgSU1NVVRBQkxFIExBTkdVQUdF CiBSRVZPS0UgQUxMIE9OIEZVTkNUSU9OIGdmMShpbnQpIEZST00gUFVCTElDOwogQ1JFQVRF IFRBQkxFIGd0ZXN0MTJzIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgU1RPUkVEKTsKIElOU0VSVCBJTlRPIGd0ZXN0MTJz IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwotR1JBTlQgU0VMRUNUIChhLCBjKSBPTiBndGVz dDEycyBUTyByZWdyZXNzX3VzZXIxMTsKK0dSQU5UIFNFTEVDVCAoYSwgYyksIElOU0VSVCBP TiBndGVzdDEycyBUTyByZWdyZXNzX3VzZXIxMTsKIFNFVCBST0xFIHJlZ3Jlc3NfdXNlcjEx OwogU0VMRUNUIGEsIGIgRlJPTSBndGVzdDExczsgIC0tIG5vdCBhbGxvd2VkCiBFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBndGVzdDExcwpAQCAtNTYwLDcgKzU5OCw5 IEBAIFNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMXM7ICAtLSBhbGxvd2VkCiAKIFNFTEVDVCBn ZjEoMTApOyAgLS0gbm90IGFsbG93ZWQKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IGZ1bmN0aW9uIGdmMQotU0VMRUNUIGEsIGMgRlJPTSBndGVzdDEyczsgIC0tIGFsbG93ZWQK K0lOU0VSVCBJTlRPIGd0ZXN0MTJzIFZBTFVFUyAoMywgMzApLCAoNCwgNDApOyAgLS0gY3Vy cmVudGx5IG5vdCBhbGxvd2VkIGJlY2F1c2Ugb2YgZnVuY3Rpb24gcGVybWlzc2lvbnMsIHNo b3VsZCBhcmd1YWJseSBiZSBhbGxvd2VkCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBmdW5jdGlvbiBnZjEKK1NFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnM7ICAtLSBhbGxvd2Vk IChkb2VzIG5vdCBhY3R1YWxseSBpbnZva2UgdGhlIGZ1bmN0aW9uKQogIGEgfCBjICAKIC0t LSstLS0tCiAgMSB8IDMwCkBAIC03NjQsNiArODA0LDExIEBAIENSRUFURSBUQUJMRSBndGVz dDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqCiBJTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sK IElOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgogRVJST1I6 ICB2YWx1ZSBmb3IgZG9tYWluIGd0ZXN0ZG9tYWluMSB2aW9sYXRlcyBjaGVjayBjb25zdHJh aW50ICJndGVzdGRvbWFpbjFfY2hlY2siCitDUkVBVEUgVFlQRSBndGVzdGRvbWFpbjFyYW5n ZSBBUyByYW5nZSAoc3VidHlwZSA9IGd0ZXN0ZG9tYWluMSk7CitDUkVBVEUgVEFCTEUgZ3Rl c3QyNHIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMXJhbmdlIEdFTkVSQVRF RCBBTFdBWVMgQVMgKGd0ZXN0ZG9tYWluMXJhbmdlKGEsIGEgKyA1KSkgU1RPUkVEKTsKK0lO U0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKK0lOU0VSVCBJTlRP IGd0ZXN0MjRyIChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKK0VSUk9SOiAgdmFsdWUgZm9y IGRvbWFpbiBndGVzdGRvbWFpbjEgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3Rk b21haW4xX2NoZWNrIgogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50bHkgbm90IHN1cHBvcnRl ZCkKIENSRUFURSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVnZXIsIGYyIHRleHQsIGYz IGJpZ2ludCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRI IE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFNUT1JFRCk7CkBAIC03OTQs NiArODM5LDExIEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0 ZXN0X3BhcmVudCAoCiAgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMg SURFTlRJVFkgIC0tIGVycm9yCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBU TyAoJzIwMTYtMTAtMDEnKTsKIEVSUk9SOiAgaWRlbnRpdHkgY29sdW1ucyBhcmUgbm90IHN1 cHBvcnRlZCBvbiBwYXJ0aXRpb25zCitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJ VElPTiBPRiBndGVzdF9wYXJlbnQgKAorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgVklSVFVBTCAgLS0gZXJyb3IKKykgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0w MScpIFRPICgnMjAxNi0xMC0wMScpOworRVJST1I6ICBjb2x1bW4gImYzIiBpbmhlcml0cyBm cm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQKK0RFVEFJTDogIFBhcmVu dCBjb2x1bW4gaXMgU1RPUkVELCBjaGlsZCBjb2x1bW4gaXMgVklSVFVBTC4KIENSRUFURSBU QUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmln aW50KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0 X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAx Jyk7IC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiZjMiIGluIGNoaWxkIHRhYmxlIG11c3Qg YmUgYSBnZW5lcmF0ZWQgY29sdW1uCkBAIC04MDcsNiArODU3LDExIEBAIEFMVEVSIFRBQkxF IGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVT IEZST00gKCcyMDE2LTA5CiBFUlJPUjogIHRhYmxlICJndGVzdF9jaGlsZDMiIGJlaW5nIGF0 dGFjaGVkIGNvbnRhaW5zIGFuIGlkZW50aXR5IGNvbHVtbiAiZjMiCiBERVRBSUw6ICBUaGUg bmV3IHBhcnRpdGlvbiBtYXkgbm90IGNvbnRhaW4gYW4gaWRlbnRpdHkgY29sdW1uLgogRFJP UCBUQUJMRSBndGVzdF9jaGlsZDM7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDMzKSBWSVJUVUFMKTsKK0FMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0gg UEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykg VE8gKCcyMDE2LTEwLTAxJyk7IC0tIGVycm9yCitFUlJPUjogIGNvbHVtbiAiZjMiIGluaGVy aXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZAorREVUQUlMOiAg UGFyZW50IGNvbHVtbiBpcyBTVE9SRUQsIGNoaWxkIGNvbHVtbiBpcyBWSVJUVUFMLgorRFJP UCBUQUJMRSBndGVzdF9jaGlsZDM7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDMzKSBTVE9SRUQpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQ QVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBU TyAoJzIwMTYtMTAtMDEnKTsKIFxkIGd0ZXN0X2NoaWxkCkBAIC0xMDk0LDkgKzExNDksOSBA QCBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENP TFVNTiBhIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBlcnJvcgogRVJST1I6ICBj b2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29s dW1uCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIERST1AgRVhQUkVTU0lP TjsgIC0tIGVycm9yCi1FUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0Mjki IGlzIG5vdCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uCitFUlJPUjogIGNvbHVtbiAiYSIg b2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVS IFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEgRFJPUCBFWFBSRVNTSU9OIElGIEVYSVNU UzsgIC0tIG5vdGljZQotTk9USUNFOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3Qy OSIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nCitOT1RJQ0U6 ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQg Y29sdW1uLCBza2lwcGluZwogLS0gQ2hhbmdlIHRoZSBleHByZXNzaW9uCiBBTFRFUiBUQUJM RSBndGVzdDI5IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CiBT RUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CkBAIC0xMTkwLDYgKzEyNDUsMTggQEAgSW5oZXJpdHM6 IGd0ZXN0MzAKIAogQUxURVIgVEFCTEUgZ3Rlc3QzMF8xIEFMVEVSIENPTFVNTiBiIERST1Ag RVhQUkVTU0lPTjsgIC0tIGVycm9yCiBFUlJPUjogIGNhbm5vdCBkcm9wIGdlbmVyYXRpb24g ZXhwcmVzc2lvbiBmcm9tIGluaGVyaXRlZCBjb2x1bW4KKy0tIGNvbXBvc2l0ZSB0eXBlIGRl cGVuZGVuY2llcworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4dCBHRU5F UkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSBTVE9SRUQsIGMgdGV4dCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3QzMV8yICh4IGludCwgeSBndGVzdDMxXzEpOworQUxURVIgVEFCTEUgZ3Rlc3Qz MV8xIEFMVEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsgIC0tIGZhaWxzCitFUlJPUjogIGNh bm5vdCBhbHRlciB0YWJsZSAiZ3Rlc3QzMV8xIiBiZWNhdXNlIGNvbHVtbiAiZ3Rlc3QzMV8y LnkiIHVzZXMgaXRzIHJvdyB0eXBlCitEUk9QIFRBQkxFIGd0ZXN0MzFfMSwgZ3Rlc3QzMV8y OworLS0gQ2hlY2sgaXQgZm9yIGEgcGFydGl0aW9uZWQgdGFibGUsIHRvbworQ1JFQVRFIFRB QkxFIGd0ZXN0MzFfMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVs bG8nKSBTVE9SRUQsIGMgdGV4dCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOworQ1JFQVRFIFRB QkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKK0FMVEVSIFRBQkxFIGd0ZXN0 MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscworRVJST1I6ICBj YW5ub3QgYWx0ZXIgdGFibGUgImd0ZXN0MzFfMSIgYmVjYXVzZSBjb2x1bW4gImd0ZXN0MzFf Mi55IiB1c2VzIGl0cyByb3cgdHlwZQorRFJPUCBUQUJMRSBndGVzdDMxXzEsIGd0ZXN0MzFf MjsKIC0tIHRyaWdnZXJzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNiAoCiAgICAgYSBpbnQgUFJJ TUFSWSBLRVksCkBAIC0xMzExLDIwICsxMzc4LDI4IEBAIEJFR0lOCiAgIFJFVFVSTiBORVc7 CiBFTkQ7CiAkJDsKLUNSRUFURSBUUklHR0VSIGd0ZXN0MTJfMDEgQkVGT1JFIFVQREFURSBP TiBndGVzdDI2CitDUkVBVEUgVFJJR0dFUiBndGVzdDEyXzAxIEJFRk9SRSBJTlNFUlQgT1Ig VVBEQVRFIE9OIGd0ZXN0MjYKICAgRk9SIEVBQ0ggUk9XCiAgIEVYRUNVVEUgUFJPQ0VEVVJF IGd0ZXN0X3RyaWdnZXJfZnVuYygpOwotQ1JFQVRFIFRSSUdHRVIgZ3Rlc3QxMl8wMiBCRUZP UkUgVVBEQVRFIE9OIGd0ZXN0MjYKK0NSRUFURSBUUklHR0VSIGd0ZXN0MTJfMDIgQkVGT1JF IElOU0VSVCBPUiBVUERBVEUgT04gZ3Rlc3QyNgogICBGT1IgRUFDSCBST1cKICAgRVhFQ1VU RSBQUk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9mdW5jNCgpOwotQ1JFQVRFIFRSSUdHRVIgZ3Rl c3QxMl8wMyBCRUZPUkUgVVBEQVRFIE9OIGd0ZXN0MjYKK0NSRUFURSBUUklHR0VSIGd0ZXN0 MTJfMDMgQkVGT1JFIElOU0VSVCBPUiBVUERBVEUgT04gZ3Rlc3QyNgogICBGT1IgRUFDSCBS T1cKICAgRVhFQ1VURSBQUk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9mdW5jKCk7CiBJTlNFUlQg SU5UTyBndGVzdDI2IChhKSBWQUxVRVMgKDEpOwotVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAx MSBXSEVSRSBhID0gMTsKLUlORk86ICBndGVzdDEyXzAxOiBCRUZPUkU6IG9sZCA9ICgxLDIp CitJTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JFOiBuZXcgPSAoMSwpCitJTkZPOiAgZ3Rlc3Qx Ml8wMzogQkVGT1JFOiBuZXcgPSAoMTAsMzAwKQorU0VMRUNUICogRlJPTSBndGVzdDI2IE9S REVSIEJZIGE7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKwor VVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBhID0gMTA7CitJTkZPOiAgZ3Rlc3Qx Ml8wMTogQkVGT1JFOiBvbGQgPSAoMTAsMjApCiBJTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JF OiBuZXcgPSAoMTEsKQotSU5GTzogIGd0ZXN0MTJfMDM6IEJFRk9SRTogb2xkID0gKDEsMikK K0lORk86ICBndGVzdDEyXzAzOiBCRUZPUkU6IG9sZCA9ICgxMCwyMCkKIElORk86ICBndGVz dDEyXzAzOiBCRUZPUkU6IG5ldyA9ICgxMCwpCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JE RVIgQlkgYTsKICBhICB8IGIgIApAQCAtMTM1NiwzICsxNDMxLDkgQEAgQ1JFQVRFIFRBQkxF IGd0ZXN0MjhiIChMSUtFIGd0ZXN0MjhhIElOQ0xVRElORyBHRU5FUkFURUQpOwogIGMgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIHggICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAy KSBzdG9yZWQKIAorLS0gc2FuaXR5IGNoZWNrIG9mIHN5c3RlbSBjYXRhbG9nCitTRUxFQ1Qg YXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVS RSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnLCAndicpOworIGF0dHJlbGlkIHwgYXR0 bmFtZSB8IGF0dGdlbmVyYXRlZCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tCisoMCByb3dzKQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2dlbmVyYXRlZF9zdG9yZWQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5l cmF0ZWRfdmlydHVhbC5vdXQKc2ltaWxhcml0eSBpbmRleCA2NyUKY29weSBmcm9tIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKY29weSB0byBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dAppbmRleCAwZDAz N2Q0OGNhMC4uYzJmYjU1ODk0YTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKQEAgLTEsMTUgKzEsMTAgQEAKLS0tIHNhbml0 eSBjaGVjayBvZiBzeXN0ZW0gY2F0YWxvZwotU0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBh dHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJ TiAoJycsICdzJyk7Ci0gYXR0cmVsaWQgfCBhdHRuYW1lIHwgYXR0Z2VuZXJhdGVkIAotLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KLSgwIHJvd3MpCi0KLUNSRUFURSBT Q0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKLUdSQU5UIFVTQUdFIE9OIFNDSEVNQSBn ZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzIFRPIFBVQkxJQzsKLVNFVCBzZWFyY2hfcGF0aCA9IGdl bmVyYXRlZF9zdG9yZWRfdGVzdHM7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QwIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIFNUT1JFRCk7Ci1DUkVB VEUgVEFCTEUgZ3Rlc3QxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25h bWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcmF0 aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVSRSB0 YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMjsK Ky0tIGtlZXAgdGhlc2UgdGVzdHMgYWxpZ25lZCB3aXRoIGdlbmVyYXRlZF9zdG9yZWQuc3Fs CitDUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOworR1JBTlQgVVNBR0Ug T04gU0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFy Y2hfcGF0aCA9IGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOworQ1JFQVRFIFRBQkxFIGd0ZXN0 MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBW SVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitTRUxFQ1QgdGFibGVf bmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2Vu ZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEu Y29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMn IE9SREVSIEJZIDEsIDI7CiAgdGFibGVfbmFtZSB8IGNvbHVtbl9uYW1lIHwgY29sdW1uX2Rl ZmF1bHQgfCBpc19udWxsYWJsZSB8IGlzX2dlbmVyYXRlZCB8IGdlbmVyYXRpb25fZXhwcmVz c2lvbiAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGd0 ZXN0MCAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgTk8gICAgICAgICAg fCBORVZFUiAgICAgICAgfCAKQEAgLTE4LDg5ICsxMyw4OSBAQCBTRUxFQ1QgdGFibGVfbmFt ZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJh dGVkLCBnZW5lcgogIGd0ZXN0MSAgICAgfCBiICAgICAgICAgICB8ICAgICAgICAgICAgICAg IHwgWUVTICAgICAgICAgfCBBTFdBWVMgICAgICAgfCAoYSAqIDIpCiAoNCByb3dzKQogCi1T RUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9jb2x1bW4gRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBXSEVSRSB0YWJsZV9zY2hl bWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKK1NFTEVD VCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9y bWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9 ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKICB0YWJsZV9u YW1lIHwgY29sdW1uX25hbWUgfCBkZXBlbmRlbnRfY29sdW1uIAogLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCiAgZ3Rlc3QxICAgICB8IGEgICAgICAg ICAgIHwgYgogKDEgcm93KQogCiBcZCBndGVzdDEKLSAgICAgICAgICAgICAgICAgICAgVGFi bGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxIgotIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJs ZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QxIgorIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAK Ky0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5v dCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQog SW5kZXhlczoKICAgICAiZ3Rlc3QxX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKIAog LS0gZHVwbGljYXRlIGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8xIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JF RCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBWSVJUVUFMIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFM KTsKIEVSUk9SOiAgbXVsdGlwbGUgZ2VuZXJhdGlvbiBjbGF1c2VzIHNwZWNpZmllZCBmb3Ig Y29sdW1uICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzEiCi1MSU5FIDE6IC4uLkFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgR0VORVJBVEVEIC4u LgorTElORSAxOiAuLi5SWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBWSVJUVUFMIEdFTkVSQVRFRCAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSByZWZlcmVuY2VzIHRvIG90 aGVyIGdlbmVyYXRlZCBjb2x1bW5zLCBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2VzCi1DUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJy XzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAq IDIpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gImIi IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KLUxJTkUgMTogLi4uMmEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPLi4u CitMSU5FIDE6IC4uLjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYiAqIDIpIFZJUi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIEEgZ2VuZXJhdGVk IGNvbHVtbiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVtbi4KLUNS RUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChiICogMykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVB TCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUlRVQUwpOwogRVJST1I6 ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gImIiIGluIGNvbHVtbiBnZW5lcmF0aW9u IGV4cHJlc3Npb24KLUxJTkUgMTogLi4uQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgU1RPLi4uCitMSU5FIDE6IC4uLllTIEFTIChh ICogMikgVklSVFVBTCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUi4u LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIERFVEFJTDogIEEgZ2VuZXJhdGVkIGNvbHVtbiBjYW5ub3QgcmVmZXJl bmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVtbi4KIC0tIGEgd2hvbGUtcm93IHZhciBpcyBh IHNlbGYtcmVmZXJlbmNlIG9uIHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0aGF0IHRvbwogQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl8yYyAoYSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFNUT1JFRCk7 CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8y YykpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIHdob2xlLXJvdyB2YXJpYWJsZSBp biBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCi1MSU5FIDI6ICAgICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgU1RPUi4uLgorTElO RSAyOiAgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vy cl8yYykpIFZJUlQuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiBERVRBSUw6ICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQg Y29sdW1uIHRvIGRlcGVuZCBvbiBpdHMgb3duIHZhbHVlLgogLS0gaW52YWxpZCByZWZlcmVu Y2UKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYyAqIDIpIFZJUlRVQUwpOwogRVJST1I6ICBjb2x1bW4gImMiIGRvZXMgbm90IGV4aXN0 Ci1MSU5FIDE6IC4uLl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYyAqIDIpIFNUTy4uLgorTElORSAxOiAuLi5fMyAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBWSVIuLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CiAtLSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBpbW11dGFibGUKLUNSRUFURSBU QUJMRSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNpc2lv biBHRU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJM RSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNpc2lvbiBH RU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgVklSVFVBTCk7CiBFUlJPUjogIGdlbmVy YXRpb24gZXhwcmVzc2lvbiBpcyBub3QgaW1tdXRhYmxlCiAtLSAuLi4gYnV0IGJlIHN1cmUg dGhhdCB0aGUgaW1tdXRhYmlsaXR5IHRlc3QgaXMgYWNjdXJhdGUKLUNSRUFURSBUQUJMRSBn dGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNlYycp IFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0ZXh0IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgfHwgJyBzZWMnKSBWSVJUVUFMKTsKIERST1AgVEFCTEUgZ3Rlc3Qy OwogLS0gY2Fubm90IGhhdmUgZGVmYXVsdC9pZGVudGl0eSBhbmQgZ2VuZXJhdGVkCi1DUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzVhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgREVGQVVM VCA1IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBFUlJPUjogIGJvdGggZGVmYXVs dCBhbmQgZ2VuZXJhdGlvbiBleHByZXNzaW9uIHNwZWNpZmllZCBmb3IgY29sdW1uICJiIiBv ZiB0YWJsZSAiZ3Rlc3RfZXJyXzVhIgogTElORSAxOiAuLi4gZ3Rlc3RfZXJyXzVhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCAuLi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEVSUk9SOiAgYm90aCBpZGVudGl0eSBhbmQgZ2Vu ZXJhdGlvbiBleHByZXNzaW9uIHNwZWNpZmllZCBmb3IgY29sdW1uICJiIiBvZiB0YWJsZSAi Z3Rlc3RfZXJyXzViIgogTElORSAxOiAuLi50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCAuLi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSByZWZl cmVuY2UgdG8gc3lzdGVtIGNvbHVtbiBub3QgYWxsb3dlZCBpbiBnZW5lcmF0ZWQgY29sdW1u CiAtLSAoZXhjZXB0IHRhYmxlb2lkLCB3aGljaCB3ZSB0ZXN0IGJlbG93KQotQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQg QUxXQVlTIEFTICh4bWluIDw+IDM3KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh4 bWluIDw+IDM3KSBWSVJUVUFMKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBzeXN0ZW0gY29sdW1u ICJ4bWluIiBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBMSU5FIDE6IC4uLmEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAoeG1pbiA8 PiAzNy4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIC0tIHZhcmlvdXMgcHJvaGliaXRlZCBjb25zdHJ1Y3RzCi1D UkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGF2ZyhhKSkgVklSVFVBTCk7CiBFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCi1MSU5FIDE6IC4u LjdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZn KGEpKSBTVC4uLgorTElORSAxOiAuLi43YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgVkkuLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1DUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAocm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl83YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKHJvd19udW1iZXIoKSBPVkVSIChPUkRFUiBCWSBhKSkgVklSVFVB TCk7CiBFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNvbHVt biBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCiBMSU5FIDE6IC4uLjdiIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJlci4uLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEpKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKChTRUxFQ1QgYSkpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIHN1 YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIExJTkUgMTogLi4uN2Mg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNU IGEpLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3Nlcmllcygx LCBhKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMoMSwg YSkpIFZJUlRVQUwpOwogRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90 IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMKIExJTkUgMTogLi4u N2QgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5l cmF0ZV9zLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgogLS0gR0VORVJBVEVEIEJZIERFRkFVTFQgbm90IGFsbG93 ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJM RSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBE RUZBVUxUIEFTIChhICogMikgVklSVFVBTCk7CiBFUlJPUjogIGZvciBhIGdlbmVyYXRlZCBj b2x1bW4sIEdFTkVSQVRFRCBBTFdBWVMgbXVzdCBiZSBzcGVjaWZpZWQKIExJTkUgMTogLi4u RSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBE RUZBVUxULi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgpAQCAtMTI4LDYgKzEyMywyNCBAQCBTRUxFQ1QgKiBGUk9N IGd0ZXN0MSBPUkRFUiBCWSBhOwogIDQgfCA4CiAoNCByb3dzKQogCitTRUxFQ1QgZ3Rlc3Qx IEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7ICAtLSB3aG9sZS1yb3cgcmVmZXJlbmNlCisgZ3Rl c3QxIAorLS0tLS0tLS0KKyAoMSwyKQorICgyLDQpCisgKDMsNikKKyAoNCw4KQorKDQgcm93 cykKKworU0VMRUNUIGEsIChTRUxFQ1QgZ3Rlc3QxLmIpIEZST00gZ3Rlc3QxIE9SREVSIEJZ IGE7ICAtLSBzdWJsaW5rCisgYSB8IGIgCistLS0rLS0tCisgMSB8IDIKKyAyIHwgNAorIDMg fCA2CisgNCB8IDgKKyg0IHJvd3MpCisKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID49 IDM7CiBVUERBVEUgZ3Rlc3QxIFNFVCBiID0gREVGQVVMVCBXSEVSRSBhID0gMTsKIFVQREFU RSBndGVzdDEgU0VUIGIgPSAxMSBXSEVSRSBhID0gMTsgIC0tIGVycm9yCkBAIC0xNTMsMTYg KzE2NiwxMCBAQCBTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MSBXSEVSRSBiID0gNCBPUkRFUiBC WSBhOwogIDIgfCA0CiAoMSByb3cpCiAKLS0tIHRlc3QgdGhhdCBvdmVyZmxvdyBlcnJvciBo YXBwZW5zIG9uIHdyaXRlCistLSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBv biByZWFkCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgyMDAwMDAwMDAwKTsKLUVSUk9S OiAgaW50ZWdlciBvdXQgb2YgcmFuZ2UKIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwotIGEgfCBi IAotLS0tKy0tLQotIDIgfCA0Ci0gMSB8IDIKLSgyIHJvd3MpCi0KK0VSUk9SOiAgaW50ZWdl ciBvdXQgb2YgcmFuZ2UKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID0gMjAwMDAwMDAw MDsKIC0tIHRlc3Qgd2l0aCBqb2lucwogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIHkg aW50KTsKQEAgLTIwMyw4ICsyMTAsOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKICAgaWQg aW50IFBSSU1BUlkgS0VZLAogICBmMSBpbnQsCiAgIGYyIGludCwKLSAgZjMgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGYxICogMikgU1RPUkVELAotICBmNCBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQKKyAgZjMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYxICogMikgVklSVFVBTCwKKyAgZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0bSBWQUxVRVMgKDEsIDUsIDEwMCk7 CiBNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIChWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKSkg dihpZCwgZjEpIE9OIHQuaWQgPSB2LmlkCkBAIC0yMTcsNiArMjI0LDI3IEBAIFNFTEVDVCAq IEZST00gZ3Rlc3RtIE9SREVSIEJZIGlkOwogICAyIHwgMjAgfCAyMDAgfCA0MCB8IDQwMAog KDIgcm93cykKIAorRFJPUCBUQUJMRSBndGVzdG07CitDUkVBVEUgVEFCTEUgZ3Rlc3RtICgK KyAgYSBpbnQgUFJJTUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBWSVJUVUFMCispOworSU5TRVJUIElOVE8gZ3Rlc3RtIChhKSBTRUxFQ1QgZyBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKK01FUkdFIElOVE8gZ3Rlc3RtIHQgVVNJTkcg Z3Rlc3RtIEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1BVENIRUQgVEhFTiBERUxFVEUg UkVUVVJOSU5HICo7CisgYSAgfCBiICB8IGEgIHwgYiAgCistLS0tKy0tLS0rLS0tLSstLS0t CisgIDEgfCAgMiB8ICAxIHwgIDIKKyAgMiB8ICA0IHwgIDIgfCAgNAorICAzIHwgIDYgfCAg MyB8ICA2CisgIDQgfCAgOCB8ICA0IHwgIDgKKyAgNSB8IDEwIHwgIDUgfCAxMAorICA2IHwg MTIgfCAgNiB8IDEyCisgIDcgfCAxNCB8ICA3IHwgMTQKKyAgOCB8IDE2IHwgIDggfCAxNgor ICA5IHwgMTggfCAgOSB8IDE4CisgMTAgfCAyMCB8IDEwIHwgMjAKKygxMCByb3dzKQorCiBE Uk9QIFRBQkxFIGd0ZXN0bTsKIC0tIHZpZXdzCiBDUkVBVEUgVklFVyBndGVzdDF2IEFTIFNF TEVDVCAqIEZST00gZ3Rlc3QxOwpAQCAtMjczLDExICszMDEsMTEgQEAgU0VMRUNUICogRlJP TSBndGVzdDFfMTsKICgwIHJvd3MpCiAKIFxkIGd0ZXN0MV8xCi0gICAgICAgICAgICAgICAg ICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxXzEiCi0gQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MV8xIgorIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMg KGEgKiAyKQogSW5oZXJpdHM6IGd0ZXN0MQogCiBJTlNFUlQgSU5UTyBndGVzdDFfMSBWQUxV RVMgKDQpOwpAQCAtMjk2LDEyICszMjQsMTIgQEAgU0VMRUNUICogRlJPTSBndGVzdDE7CiAK IC0tIGNhbid0IGhhdmUgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIGEgY2hpbGQgb2Ygbm9y bWFsIGNvbHVtbgogQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbCAoYSBpbnQsIGIgaW50KTsK LUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3Rfbm9ybWFsKTsg IC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGludCwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpIElOSEVSSVRTIChndGVz dF9ub3JtYWwpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJhIiB3aXRo IGluaGVyaXRlZCBkZWZpbml0aW9uCiBOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0 aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogRVJST1I6ICBjaGlsZCBjb2x1bW4gImIiIHNwZWNp ZmllcyBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIEhJTlQ6ICBBIGNoaWxkIHRhYmxlIGNvbHVt biBjYW5ub3QgYmUgZ2VuZXJhdGVkIHVubGVzcyBpdHMgcGFyZW50IGNvbHVtbiBpcy4KLUNS RUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxf Y2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVB TCk7CiBBTFRFUiBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgSU5IRVJJVCBndGVzdF9ub3Jt YWw7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImIiIGluIGNoaWxkIHRhYmxlIG11c3Qg bm90IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgogRFJPUCBUQUJMRSBndGVzdF9ub3JtYWwsIGd0 ZXN0X25vcm1hbF9jaGlsZDsKQEAgLTMxMiwyNSArMzQwLDQ0IEBAIEVSUk9SOiAgY29sdW1u ICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNwZWNpZmllcyBkZWZh dWx0CiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyBJREVOVElUWSkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgogTk9USUNFOiAg bWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIEVSUk9SOiAg Y29sdW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNwZWNpZmll cyBpZGVudGl0eQotQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9r LCBvdmVycmlkZXMgcGFyZW50CitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEp OyAgLS0gZXJyb3IKK05PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRl ZCBkZWZpbml0aW9uCitFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0 ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kCitERVRBSUw6ICBQYXJlbnQgY29sdW1uIGlz IFZJUlRVQUwsIGNoaWxkIGNvbHVtbiBpcyBTVE9SRUQuCitDUkVBVEUgVEFCTEUgZ3Rlc3R4 ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBWSVJUVUFMKSBJ TkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CiBOT1RJQ0U6ICBt ZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogXGQrIGd0ZXN0 eAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5l cmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0eCIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICB8 IFN0b3JhZ2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBh ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKLSBi ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChhICogMjIpIHN0b3JlZCB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKLSB4 ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmly dHVhbF90ZXN0cy5ndGVzdHgiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICB8IFN0b3JhZ2UgfCBTdGF0 cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFp biAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIyKSB8IHBsYWluICAgfCAg ICAgICAgICAgICAgfCAKKyB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAg ICAgICB8IAogTm90LW51bGwgY29uc3RyYWludHM6CiAgICAgImd0ZXN0MV9hX25vdF9udWxs IiBOT1QgTlVMTCAiYSIgKGluaGVyaXRlZCkKIEluaGVyaXRzOiBndGVzdDEKIAorSU5TRVJU IElOVE8gZ3Rlc3R4IChhLCB4KSBWQUxVRVMgKDExLCAyMik7CitTRUxFQ1QgKiBGUk9NIGd0 ZXN0MTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgIDMgfCAgNgorICA0IHwgIDgKKyAxMSB8 IDIyCisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIGd0ZXN0eDsKKyBhICB8ICBiICB8IHgg IAorLS0tLSstLS0tLSstLS0tCisgMTEgfCAyNDIgfCAyMgorKDEgcm93KQorCiBDUkVBVEUg VEFCTEUgZ3Rlc3R4eF8xIChhIGludCBOT1QgTlVMTCwgYiBpbnQpOwogQUxURVIgVEFCTEUg Z3Rlc3R4eF8xIElOSEVSSVQgZ3Rlc3QxOyAgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJi IiBpbiBjaGlsZCB0YWJsZSBtdXN0IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRB QkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9U IE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFM VEVSIFRBQkxFIGd0ZXN0eHhfMyBJTkhFUklUIGd0ZXN0MTsgIC0tIG9rCi1DUkVBVEUgVEFC TEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE LCBhIGludCBOT1QgTlVMTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R4eF80IChiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgYSBpbnQgTk9UIE5VTEwpOwogQUxU RVIgVEFCTEUgZ3Rlc3R4eF80IElOSEVSSVQgZ3Rlc3QxOyAgLS0gb2sKIC0tIHRlc3QgbXVs dGlwbGUgaW5oZXJpdGFuY2UgbWlzbWF0Y2hlcwogQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBp bnQsIGIgaW50IERFRkFVTFQgNTUpOwpAQCAtMzQzLDI4ICszOTAsMjggQEAgQ1JFQVRFIFRB QkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBlcnJvcgog Tk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29s dW1uICJiIgogRVJST1I6ICBpbmhlcml0ZWQgY29sdW1uICJiIiBoYXMgYSBnZW5lcmF0aW9u IGNvbmZsaWN0CiBEUk9QIFRBQkxFIGd0ZXN0eTsKLUNSRUFURSBUQUJMRSBndGVzdHkgKHgg aW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIpIFNUT1JFRCk7CitDUkVB VEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAq IDIyKSBWSVJUVUFMKTsKIENSRUFURSBUQUJMRSBndGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rl c3QxLCBndGVzdHkpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5o ZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKIEVSUk9SOiAgY29sdW1uICJiIiBp bmhlcml0cyBjb25mbGljdGluZyBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCiBISU5UOiAgVG8g cmVzb2x2ZSB0aGUgY29uZmxpY3QsIHNwZWNpZnkgYSBnZW5lcmF0aW9uIGV4cHJlc3Npb24g ZXhwbGljaXRseS4KLUNSRUFURSBUQUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoeCArIDEpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0t IG9rCitDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KHggKyAxKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sKIE5P VElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVt biAiYiIKIE5PVElDRTogIG1vdmluZyBhbmQgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5o ZXJpdGVkIGRlZmluaXRpb24KIERFVEFJTDogIFVzZXItc3BlY2lmaWVkIGNvbHVtbiBtb3Zl ZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIGluaGVyaXRlZCBjb2x1bW4uCiBcZCBndGVzdDFf eQotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MV95IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5n dGVzdDFfeSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAotIGIgICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKHggKyAx KSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzICh4ICsgMSkKICB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKIEluaGVyaXRzOiBndGVzdDEsCiAgICAgICAgICAgZ3Rlc3R5 CiAKIC0tIHRlc3QgY29ycmVjdCBoYW5kbGluZyBvZiBHRU5FUkFURUQgY29sdW1uIHRoYXQn cyBvbmx5IGluIGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3RwIChmMSBpbnQpOwotQ1JFQVRF IFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEpIFNUT1JF RCkgSU5IRVJJVFMoZ3Rlc3RwKTsKK0NSRUFURSBUQUJMRSBndGVzdGMgKGYyIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChmMSsxKSBWSVJUVUFMKSBJTkhFUklUUyhndGVzdHApOwogSU5T RVJUIElOVE8gZ3Rlc3RjIHZhbHVlcyg0Mik7CiBUQUJMRSBndGVzdGM7CiAgZjEgfCBmMiAK QEAgLTM4MSw4ICs0MjgsOCBAQCBUQUJMRSBndGVzdGM7CiAKIERST1AgVEFCTEUgZ3Rlc3Rw IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGd0ZXN0YwotLS0g dGVzdCBzdG9yZWQgdXBkYXRlCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzIChhIGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JFRCk7CistLSB0ZXN0IHVwZGF0ZSBY WFgKK0NSRUFURSBUQUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMykgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDMgKGEpIFZBTFVFUyAo MSksICgyKSwgKDMpLCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBh OwogIGEgfCBiIApAQCAtNDAzLDcgKzQ1MCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9S REVSIEJZIGE7CiAgICAgfCAgIAogKDQgcm93cykKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0M2Eg KGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJysnIHx8IGEpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRleHQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVz dDNhIChhKSBWQUxVRVMgKCdhJyksICgnYicpLCAoJ2MnKSwgKE5VTEwpOwogU0VMRUNUICog RlJPTSBndGVzdDNhIE9SREVSIEJZIGE7CiAgYSB8ICBiICAKQEAgLTQ2OCw3ICs1MTUsNyBA QCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwogKDQgcm93cykKIAogLS0gbnVs bCB2YWx1ZXMKLUNSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChOVUxMKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0MiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKE5V TEwpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyIFZBTFVFUyAoMSk7CiBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjsKICBhIHwgYiAKQEAgLTQ3Nyw3ICs1MjQsNyBAQCBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjsKICgxIHJvdykKIAogLS0gc2ltcGxlIGNvbHVtbiByZWZlcmVuY2UgZm9y IHZhcmxlbmEgdHlwZXMKLUNSRUFURSBUQUJMRSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIs IGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFTIChhKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFM VUVTKCcwMTIzNDU2Nzg5MDEyMzQ1Njc4OScpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVu YSAoYSkgVkFMVUVTKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVzdF92YXJsZW5hIE9SREVS IEJZIGE7CkBAIC00OTIsNyArNTM5LDcgQEAgRFJPUCBUQUJMRSBndGVzdF92YXJsZW5hOwog Q1JFQVRFIFRZUEUgZG91YmxlX2ludCBhcyAoYSBpbnQsIGIgaW50KTsKIENSRUFURSBUQUJM RSBndGVzdDQgKAogICAgIGEgaW50LAotICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxX QVlTIEFTICgoYSAqIDIsIGEgKiAzKSkgU1RPUkVECisgICAgYiBkb3VibGVfaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKChhICogMiwgYSAqIDMpKSBWSVJUVUFMCiApOwogSU5TRVJUIElO VE8gZ3Rlc3Q0IFZBTFVFUyAoMSksICg2KTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Q0OwpAQCAt NTA3LDExICs1NTQsMTEgQEAgRFJPUCBUWVBFIGRvdWJsZV9pbnQ7CiAtLSB1c2luZyB0YWJs ZW9pZCBpcyBhbGxvd2VkCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfdGFibGVvaWQgKAogICBhIGlu dCBQUklNQVJZIEtFWSwKLSAgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lk ID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3MpIFNUT1JFRAorICBiIGJvb2wgR0VORVJB VEVEIEFMV0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rlc3RfdGFibGVvaWQnOjpyZWdjbGFzcykg VklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3RhYmxlb2lkIFZBTFVFUyAoMSksICgy KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3RhYmxlb2lkIEFERCBDT0xVTU4KLSAgYyByZWdjbGFz cyBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCkgU1RPUkVEOworICBjIHJlZ2NsYXNz IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkKSBWSVJUVUFMOwogU0VMRUNUICogRlJP TSBndGVzdF90YWJsZW9pZDsKICBhIHwgYiB8ICAgICAgIGMgICAgICAgIAogLS0tKy0tLSst LS0tLS0tLS0tLS0tLS0tCkBAIC01MjAsNyArNTY3LDcgQEAgU0VMRUNUICogRlJPTSBndGVz dF90YWJsZW9pZDsKICgyIHJvd3MpCiAKIC0tIGRyb3AgY29sdW1uIGJlaGF2aW9yCi1DUkVB VEUgVEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDEw IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBDT0xVTU4gYjsg IC0tIGZhaWxzCiBFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBiIG9mIHRhYmxlIGd0ZXN0 MTAgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAogREVUQUlMOiAgY29sdW1u IGMgb2YgdGFibGUgZ3Rlc3QxMCBkZXBlbmRzIG9uIGNvbHVtbiBiIG9mIHRhYmxlIGd0ZXN0 MTAKQEAgLTUyOCwzMCArNTc1LDMwIEBAIEhJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCiBBTFRFUiBUQUJMRSBndGVzdDEw IERST1AgQ09MVU1OIGIgQ0FTQ0FERTsgIC0tIGRyb3BzIGMgdG9vCiBOT1RJQ0U6ICBkcm9w IGNhc2NhZGVzIHRvIGNvbHVtbiBjIG9mIHRhYmxlIGd0ZXN0MTAKIFxkIGd0ZXN0MTAKLSAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MTAiCisgICAgICBUYWJs ZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QxMCIKICBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAogLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiBJbmRleGVzOgogICAgICJndGVzdDEwX3BrZXki IFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTBhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVz dDEwYSBEUk9QIENPTFVNTiBiOwogSU5TRVJUIElOVE8gZ3Rlc3QxMGEgKGEpIFZBTFVFUyAo MSk7CiAtLSBwcml2aWxlZ2VzCiBDUkVBVEUgVVNFUiByZWdyZXNzX3VzZXIxMTsKLUNSRUFU RSBUQUJMRSBndGVzdDExcyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MTFz IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwotR1JBTlQgU0VMRUNUIChhLCBjKSBPTiBndGVz dDExcyBUTyByZWdyZXNzX3VzZXIxMTsKK0NSRUFURSBUQUJMRSBndGVzdDExdiAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikg VklSVFVBTCk7CitJTlNFUlQgSU5UTyBndGVzdDExdiBWQUxVRVMgKDEsIDEwKSwgKDIsIDIw KTsKK0dSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMXYgVE8gcmVncmVzc191c2VyMTE7 CiBDUkVBVEUgRlVOQ1RJT04gZ2YxKGEgaW50KSBSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1Qg YSAqIDMgJCQgSU1NVVRBQkxFIExBTkdVQUdFIFNRTDsKIFJFVk9LRSBBTEwgT04gRlVOQ1RJ T04gZ2YxKGludCkgRlJPTSBQVUJMSUM7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QxMnMgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ2YxKGIp KSBTVE9SRUQpOwotSU5TRVJUIElOVE8gZ3Rlc3QxMnMgVkFMVUVTICgxLCAxMCksICgyLCAy MCk7Ci1HUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTJzIFRPIHJlZ3Jlc3NfdXNlcjEx OworQ1JFQVRFIFRBQkxFIGd0ZXN0MTJ2IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgVklSVFVBTCk7CitJTlNFUlQgSU5U TyBndGVzdDEydiBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKK0dSQU5UIFNFTEVDVCAoYSwg YyksIElOU0VSVCBPTiBndGVzdDEydiBUTyByZWdyZXNzX3VzZXIxMTsKIFNFVCBST0xFIHJl Z3Jlc3NfdXNlcjExOwotU0VMRUNUIGEsIGIgRlJPTSBndGVzdDExczsgIC0tIG5vdCBhbGxv d2VkCi1FUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBndGVzdDExcwotU0VM RUNUIGEsIGMgRlJPTSBndGVzdDExczsgIC0tIGFsbG93ZWQKK1NFTEVDVCBhLCBiIEZST00g Z3Rlc3QxMXY7ICAtLSBub3QgYWxsb3dlZAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBm b3IgdGFibGUgZ3Rlc3QxMXYKK1NFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMXY7ICAtLSBhbGxv d2VkCiAgYSB8IGMgIAogLS0tKy0tLS0KICAxIHwgMjAKQEAgLTU2MCwyMzEgKzYwNywxNTIg QEAgU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExczsgIC0tIGFsbG93ZWQKIAogU0VMRUNUIGdm MSgxMCk7ICAtLSBub3QgYWxsb3dlZAogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig ZnVuY3Rpb24gZ2YxCi1TRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTJzOyAgLS0gYWxsb3dlZAot IGEgfCBjICAKLS0tLSstLS0tCi0gMSB8IDMwCi0gMiB8IDYwCi0oMiByb3dzKQotCitJTlNF UlQgSU5UTyBndGVzdDEydiBWQUxVRVMgKDMsIDMwKSwgKDQsIDQwKTsgIC0tIGFsbG93ZWQg KGRvZXMgbm90IGFjdHVhbGx5IGludm9rZSB0aGUgZnVuY3Rpb24pCitTRUxFQ1QgYSwgYyBG Uk9NIGd0ZXN0MTJ2OyAgLS0gY3VycmVudGx5IG5vdCBhbGxvd2VkIGJlY2F1c2Ugb2YgZnVu Y3Rpb24gcGVybWlzc2lvbnMsIHNob3VsZCBhcmd1YWJseSBiZSBhbGxvd2VkCitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBmdW5jdGlvbiBnZjEKIFJFU0VUIFJPTEU7CiBEUk9Q IEZVTkNUSU9OIGdmMShpbnQpOyAgLS0gZmFpbAogRVJST1I6ICBjYW5ub3QgZHJvcCBmdW5j dGlvbiBnZjEoaW50ZWdlcikgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAot REVUQUlMOiAgY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMnMgZGVwZW5kcyBvbiBmdW5jdGlv biBnZjEoaW50ZWdlcikKK0RFVEFJTDogIGNvbHVtbiBjIG9mIHRhYmxlIGd0ZXN0MTJ2IGRl cGVuZHMgb24gZnVuY3Rpb24gZ2YxKGludGVnZXIpCiBISU5UOiAgVXNlIERST1AgLi4uIENB U0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgotRFJPUCBUQUJMRSBn dGVzdDExcywgZ3Rlc3QxMnM7CitEUk9QIFRBQkxFIGd0ZXN0MTF2LCBndGVzdDEydjsKIERS T1AgRlVOQ1RJT04gZ2YxKGludCk7CiBEUk9QIFVTRVIgcmVncmVzc191c2VyMTE7CiAtLSBj aGVjayBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIENIRUNLIChi IDwgNTApKTsKK0NSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgQ0hFQ0sgKGIgPCA1MCkp OwogSU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgxMCk7ICAtLSBvawogSU5TRVJU IElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgzMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50 CiBFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJndGVzdDIwIiB2aW9sYXRlcyBjaGVj ayBjb25zdHJhaW50ICJndGVzdDIwX2JfY2hlY2siCi1ERVRBSUw6ICBGYWlsaW5nIHJvdyBj b250YWlucyAoMzAsIDYwKS4KLUFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIg U0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAot RVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJndGVzdDIwX2JfY2hlY2siIG9mIHJlbGF0aW9u ICJndGVzdDIwIiBpcyB2aW9sYXRlZCBieSBzb21lIHJvdwotQUxURVIgVEFCTEUgZ3Rlc3Qy MCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sKLUNS RUFURSBUQUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworREVUQUlMOiAgRmFpbGluZyByb3cgY29u dGFpbnMgKDMwLCB2aXJ0dWFsKS4KK0FMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1O IGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWlu dCAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VU IEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucyBvbiB0YWJsZXMgd2l0aCBjaGVjayBjb25zdHJhaW50cworREVUQUlMOiAgQ29sdW1u ICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1 bW4uCitBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9O IEFTIChhICogMyk7ICAtLSBvayAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCitFUlJPUjog IEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3Igdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBvbiB0YWJsZXMgd2l0aCBjaGVjayBjb25zdHJhaW50 cworREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMCIgaXMgYSB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW4uCitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7 CiBJTlNFUlQgSU5UTyBndGVzdDIwYSAoYSkgVkFMVUVTICgxMCk7CiBJTlNFUlQgSU5UTyBn dGVzdDIwYSAoYSkgVkFMVUVTICgzMCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYSBBREQgQ0hF Q0sgKGIgPCA1MCk7ICAtLSBmYWlscyBvbiBleGlzdGluZyByb3cKIEVSUk9SOiAgY2hlY2sg Y29uc3RyYWludCAiZ3Rlc3QyMGFfYl9jaGVjayIgb2YgcmVsYXRpb24gImd0ZXN0MjBhIiBp cyB2aW9sYXRlZCBieSBzb21lIHJvdwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDIw YiAoYSkgVkFMVUVTICgxMCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYiAoYSkgVkFMVUVTICgz MCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYiBBREQgQ09OU1RSQUlOVCBjaGsgQ0hFQ0sgKGIg PCA1MCkgTk9UIFZBTElEOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGIgVkFMSURBVEUgQ09OU1RS QUlOVCBjaGs7ICAtLSBmYWlscyBvbiBleGlzdGluZyByb3cKIEVSUk9SOiAgY2hlY2sgY29u c3RyYWludCAiY2hrIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMGIiIGlzIHZpb2xhdGVkIGJ5IHNv bWUgcm93Ci0tLSBub3QtbnVsbCBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjFh IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlm KGEsIDApKSBTVE9SRUQgTk9UIE5VTEwpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZB TFVFUyAoMSk7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMCk7 ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50Ci1FUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1u ICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMWEiIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFp bnQKLURFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgwLCBudWxsKS4KLUNSRUFURSBU QUJMRSBndGVzdDIxYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVEKTsKKy0tIG5vdC1udWxsIGNvbnN0cmFpbnRz IChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkKK0NSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAw KSkgVklSVFVBTCBOT1QgTlVMTCk7CitFUlJPUjogIG5vdC1udWxsIGNvbnN0cmFpbnRzIGFy ZSBub3Qgc3VwcG9ydGVkIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0xJTkUgMTog Li4uIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCBO T1QgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorLS1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVT ICgxKTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAg LS0gdmlvbGF0ZXMgY29uc3RyYWludAorLS0gYWxzbyBjaGVjayB3aXRoIHRhYmxlIGNvbnN0 cmFpbnQgc3ludGF4CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWF4IChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBWSVJUVUFMLCBD T05TVFJBSU5UIGNjIE5PVCBOVUxMIGIpOyAgLS0gZXJyb3IKK0VSUk9SOiAgbm90LW51bGwg Y29uc3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucworQ1JFQVRFIFRBQkxFIGd0ZXN0MjFheCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCk7CitBTFRFUiBU QUJMRSBndGVzdDIxYXggQUREIENPTlNUUkFJTlQgY2MgTk9UIE5VTEwgYjsgIC0tIGVycm9y CitFUlJPUjogIG5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHZp cnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RST1AgVEFCTEUgZ3Rlc3QyMWF4OworQ1JFQVRF IFRBQkxFIGd0ZXN0MjFiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAobnVsbGlmKGEsIDApKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjFi IEFMVEVSIENPTFVNTiBiIFNFVCBOT1QgTlVMTDsKLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChh KSBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMg KDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAotRVJST1I6ICBudWxsIHZhbHVlIGluIGNv bHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFiIiB2aW9sYXRlcyBub3QtbnVsbCBjb25z dHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMCwgbnVsbCkuCitFUlJP UjogIG5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0 ZXN0MjFiIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KKy0tSU5TRVJUIElOVE8g Z3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIx YiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxF IGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIERST1AgTk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBn dGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdworLS1JTlNFUlQgSU5UTyBndGVz dDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdwogLS0gaW5kZXggY29uc3RyYWludHMK LUNSRUFURSBUQUJMRSBndGVzdDIyYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBTVE9SRUQgVU5JUVVFKTsKLUlOU0VSVCBJTlRPIGd0 ZXN0MjJhIFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDMpOwot RVJST1I6ICBkdXBsaWNhdGUga2V5IHZhbHVlIHZpb2xhdGVzIHVuaXF1ZSBjb25zdHJhaW50 ICJndGVzdDIyYV9iX2tleSIKLURFVEFJTDogIEtleSAoYik9KDEpIGFscmVhZHkgZXhpc3Rz LgotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKLUNSRUFURSBUQUJMRSBndGVz dDIyYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBTVE9SRUQs IFBSSU1BUlkgS0VZIChhLCBiKSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIp OwotSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVTICgyKTsKLUVSUk9SOiAgZHVwbGljYXRl IGtleSB2YWx1ZSB2aW9sYXRlcyB1bmlxdWUgY29uc3RyYWludCAiZ3Rlc3QyMmJfcGtleSIK LURFVEFJTDogIEtleSAoYSwgYik9KDIsIDEpIGFscmVhZHkgZXhpc3RzLgorQ1JFQVRFIFRB QkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAvIDIpIFZJUlRVQUwgVU5JUVVFKTsKK0VSUk9SOiAgdW5pcXVlIGNvbnN0cmFp bnRzIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQKKy0t SU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy MmEgVkFMVUVTICgzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKK0NS RUFURSBUQUJMRSBndGVzdDIyYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgLyAyKSBWSVJUVUFMLCBQUklNQVJZIEtFWSAoYSwgYikpOworRVJST1I6ICBub3QtbnVs bCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zCistLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CistLUlOU0VSVCBJ TlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CiAtLSBpbmRleGVzCi1DUkVBVEUgVEFCTEUgZ3Rl c3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE KTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7Ci1DUkVB VEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHggT04gZ3Rlc3QyMmMgKChiICogMykpOwotQ1JF QVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4g MDsKLVxkIGd0ZXN0MjJjCi0gICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9z dG9yZWRfdGVzdHMuZ3Rlc3QyMmMiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKLUluZGV4ZXM6Ci0gICAgImd0 ZXN0MjJjX2JfaWR4IiBidHJlZSAoYikKLSAgICAiZ3Rlc3QyMmNfZXhwcl9pZHgiIGJ0cmVl ICgoYiAqIDMpKQotICAgICJndGVzdDIyY19wcmVkX2lkeCIgYnRyZWUgKGEpIFdIRVJFIGIg PiAwCi0KLUlOU0VSVCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgyKSwgKDMpOwotU0VU IGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKLVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7 Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9 IDQ7Ci0gICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNj YW4gdXNpbmcgZ3Rlc3QyMmNfYl9pZHggb24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6IChi ID0gNCkKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDQ7 Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMiB8IDQKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKLSAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1c2lu ZyBndGVzdDIyY19leHByX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKChiICog MykgPSA2KQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICog MyA9IDY7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSgxIHJvdykKLQotRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4g MDsKLSAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5k ZXggU2NhbiB1c2luZyBndGVzdDIyY19wcmVkX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXgg Q29uZDogKGEgPSAxKQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVS RSBhID0gMSBBTkQgYiA+IDA7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSgxIHJvdykK LQotQUxURVIgVEFCTEUgZ3Rlc3QyMmMgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04g QVMgKGEgKiA0KTsKLUFOQUxZWkUgZ3Rlc3QyMmM7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci0gICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNfYl9pZHgg b24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6IChiID0gOCkKLSgyIHJvd3MpCi0KLVNFTEVD VCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMiB8 IDgKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0 MjJjIFdIRVJFIGIgKiAzID0gMTI7Ci0gICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNfZXhwcl9pZHggb24g Z3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6ICgoYiAqIDMpID0gMTIpCi0oMiByb3dzKQotCi1T RUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7Ci0gYSB8IGIgCi0tLS0r LS0tCi0gMSB8IDQKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLSAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1c2luZyBndGVzdDIy Y19wcmVkX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKGEgPSAxKQotKDIgcm93 cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci0g YSB8IGIgCi0tLS0rLS0tCi0gMSB8IDQKLSgxIHJvdykKLQotUkVTRVQgZW5hYmxlX3NlcXNj YW47Ci1SRVNFVCBlbmFibGVfYml0bWFwc2NhbjsKK0NSRUFURSBUQUJMRSBndGVzdDIyYyAo YSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKKy0t Q1JFQVRFIElOREVYIGd0ZXN0MjJjX2JfaWR4IE9OIGd0ZXN0MjJjIChiKTsKKy0tQ1JFQVRF IElOREVYIGd0ZXN0MjJjX2V4cHJfaWR4IE9OIGd0ZXN0MjJjICgoYiAqIDMpKTsKKy0tQ1JF QVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4g MDsKKy0tXGQgZ3Rlc3QyMmMKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmMgVkFMVUVTICgxKSwg KDIpLCAoMyk7CistLVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvZmY7CistLVNFVCBlbmFibGVf Yml0bWFwc2NhbiBUTyBvZmY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVS RSBiID0gNDsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJj IFdIRVJFIGIgKiAzID0gNjsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICog MyA9IDY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUg YSA9IDEgQU5EIGIgPiAwOworLS1BTFRFUiBUQUJMRSBndGVzdDIyYyBBTFRFUiBDT0xVTU4g YiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpOworLS1BTkFMWVpFIGd0ZXN0MjJjOworLS1F WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7 CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7CistLUVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOworLS1T RUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7CistLUVYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7 CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOworLS1S RVNFVCBlbmFibGVfc2Vxc2NhbjsKKy0tUkVTRVQgZW5hYmxlX2JpdG1hcHNjYW47CiAtLSBm b3JlaWduIGtleXMKIENSRUFURSBUQUJMRSBndGVzdDIzYSAoeCBpbnQgUFJJTUFSWSBLRVks IHkgaW50KTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwgMTEpLCAoMiwgMjIp LCAoMywgMzMpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0 ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgorLS1JTlNFUlQgSU5U TyBndGVzdDIzYSBWQUxVRVMgKDEsIDExKSwgKDIsIDIyKSwgKDMsIDMzKTsKK0NSRUFURSBU QUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIFVQREFU RSBDQVNDQURFKTsgIC0tIGVycm9yCiBFUlJPUjogIGludmFsaWQgT04gVVBEQVRFIGFjdGlv biBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCBjb250YWluaW5nIGdlbmVyYXRlZCBjb2x1 bW4KLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAo eCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3Qy M3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBERUxFVEUgU0VUIE5VTEwp OyAgLS0gZXJyb3IKIEVSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3Jl aWduIGtleSBjb25zdHJhaW50IGNvbnRhaW5pbmcgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRF IFRBQkxFIGd0ZXN0MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSk7Ci1cZCBn dGVzdDIzYgotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzLmd0ZXN0MjNiIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwg fCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCi1JbmRleGVzOgotICAgICJndGVzdDIzYl9w a2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCi1Gb3JlaWduLWtleSBjb25zdHJhaW50czoK LSAgICAiZ3Rlc3QyM2JfYl9ma2V5IiBGT1JFSUdOIEtFWSAoYikgUkVGRVJFTkNFUyBndGVz dDIzYSh4KQotCi1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0gb2sKLUlO U0VSVCBJTlRPIGd0ZXN0MjNiIFZBTFVFUyAoNSk7ICAtLSBlcnJvcgotRVJST1I6ICBpbnNl cnQgb3IgdXBkYXRlIG9uIHRhYmxlICJndGVzdDIzYiIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAiZ3Rlc3QyM2JfYl9ma2V5IgotREVUQUlMOiAgS2V5IChiKT0oMTApIGlz IG5vdCBwcmVzZW50IGluIHRhYmxlICJndGVzdDIzYSIuCi1BTFRFUiBUQUJMRSBndGVzdDIz YiBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDUpOyAtLSBlcnJvcgot RVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJndGVzdDIzYiIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAiZ3Rlc3QyM2JfYl9ma2V5IgotREVUQUlMOiAgS2V5 IChiKT0oNSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgImd0ZXN0MjNhIi4KLUFMVEVSIFRB QkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMSk7 IC0tIG9rCi1EUk9QIFRBQkxFIGd0ZXN0MjNiOwotRFJPUCBUQUJMRSBndGVzdDIzYTsKLUNS RUFURSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KHggKiAyKSBTVE9SRUQsIFBSSU1BUlkgS0VZICh5KSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIz cCBWQUxVRVMgKDEpLCAoMiksICgzKTsKK0NSRUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFM IFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgY29uc3Ry YWludHMgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZAor LS1cZCBndGVzdDIzYgorLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0g b2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVTICg1KTsgIC0tIGVycm9yCistLUFM VEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChh ICogNSk7IC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBi IFNFVCBFWFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCistLURST1AgVEFCTEUgZ3Rlc3Qy M2I7CistLURST1AgVEFCTEUgZ3Rlc3QyM2E7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHgg aW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgVklSVFVBTCwgUFJJTUFS WSBLRVkgKHkpKTsKK0VSUk9SOiAgbm90LW51bGwgY29uc3RyYWludHMgYXJlIG5vdCBzdXBw b3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworLS1JTlNFUlQgSU5UTyBndGVz dDIzcCBWQUxVRVMgKDEpLCAoMiksICgzKTsKIENSRUFURSBUQUJMRSBndGVzdDIzcSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IFJFRkVSRU5DRVMgZ3Rlc3QyM3AgKHkpKTsKLUlOU0VS VCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rl c3QyM3EgVkFMVUVTICgyLCA1KTsgIC0tIGVycm9yCi1FUlJPUjogIGluc2VydCBvciB1cGRh dGUgb24gdGFibGUgImd0ZXN0MjNxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJndGVzdDIzcV9iX2ZrZXkiCi1ERVRBSUw6ICBLZXkgKGIpPSg1KSBpcyBub3QgcHJlc2Vu dCBpbiB0YWJsZSAiZ3Rlc3QyM3AiLgorRVJST1I6ICByZWxhdGlvbiAiZ3Rlc3QyM3AiIGRv ZXMgbm90IGV4aXN0CistLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAt LSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IK IC0tIGRvbWFpbnMKIENSRUFURSBET01BSU4gZ3Rlc3Rkb21haW4xIEFTIGludCBDSEVDSyAo VkFMVUUgPCAxMCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyNCAoYSBpbnQgUFJJTUFSWSBLRVks IGIgZ3Rlc3Rkb21haW4xIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwot SU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCi1JTlNFUlQgSU5U TyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKLUVSUk9SOiAgdmFsdWUgZm9y IGRvbWFpbiBndGVzdGRvbWFpbjEgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3Rk b21haW4xX2NoZWNrIgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7 CitFUlJPUjogIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgY2Fubm90IGhhdmUgYSBk b21haW4gdHlwZQorLS1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0g b2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCitD UkVBVEUgVFlQRSBndGVzdGRvbWFpbjFyYW5nZSBBUyByYW5nZSAoc3VidHlwZSA9IGd0ZXN0 ZG9tYWluMSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyNHIgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGd0ZXN0ZG9tYWluMXJhbmdlIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGd0ZXN0ZG9tYWluMXJh bmdlKGEsIGEgKyA1KSkgVklSVFVBTCk7CitFUlJPUjogIHZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbiAiYiIgY2Fubm90IGhhdmUgYSBkb21haW4gdHlwZQorLS1JTlNFUlQgSU5UTyBndGVz dDI0ciAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjRyIChh KSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKIC0tIHR5cGVkIHRhYmxlcyAoY3VycmVudGx5IG5v dCBzdXBwb3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVzdF90eXBlIEFTIChmMSBpbnRlZ2VyLCBm MiB0ZXh0LCBmMyBiaWdpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlw ZSAoZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBTVE9SRUQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBPUFRJT05T IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBWSVJUVUFMKTsKIEVSUk9SOiAgZ2VuZXJh dGVkIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdHlwZWQgdGFibGVzCiBEUk9QIFRZ UEUgZ3Rlc3RfdHlwZSBDQVNDQURFOwogLS0gcGFydGl0aW9uaW5nIGNhc2VzCiBDUkVBVEUg VEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJp Z2ludCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdF TkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVECisgICAgZjMgV0lUSCBPUFRJT05T IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTAogKSBGT1IgVkFMVUVTIEZS T00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7IC0tIGVycm9yCiBFUlJPUjog IGNoaWxkIGNvbHVtbiAiZjMiIHNwZWNpZmllcyBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIEhJ TlQ6ICBBIGNoaWxkIHRhYmxlIGNvbHVtbiBjYW5ub3QgYmUgZ2VuZXJhdGVkIHVubGVzcyBp dHMgcGFyZW50IGNvbHVtbiBpcy4KLUNSRUFURSBUQUJMRSBndGVzdF9jaGlsZCAoZjEgZGF0 ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo ZjIgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIChmMSBkYXRlIE5P VCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAq IDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJ T04gZ3Rlc3RfY2hpbGQgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAx Ni0wOC0wMScpOyAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImYzIiBpbiBjaGlsZCB0YWJs ZSBtdXN0IG5vdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KIERST1AgVEFCTEUgZ3Rlc3RfcGFy ZW50LCBndGVzdF9jaGlsZDsKLUNSRUFURSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRhdGUg Tk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsKK0NSRUFURSBUQUJMRSBn dGVzdF9wYXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdF IChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0X3Bh cmVudAogICBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAx Jyk7ICAtLSBpbmhlcml0cyBnZW4gZXhwcgogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMiBQ QVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKLSAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJB VEVEIEFMV0FZUyBBUyAoZjIgKiAyMikgU1RPUkVEICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIK KyAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyMikgVklS VFVBTCAgLS0gb3ZlcnJpZGVzIGdlbiBleHByCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYt MDgtMDEnKSBUTyAoJzIwMTYtMDktMDEnKTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMg UEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgREVGQVVMVCA0MiAgLS0gZXJy b3IKQEAgLTc5NCw2ICs3NjIsMTEgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJU SVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVE IEFMV0FZUyBBUyBJREVOVElUWSAgLS0gZXJyb3IKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAx Ni0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogRVJST1I6ICBpZGVudGl0eSBjb2x1bW5z IGFyZSBub3Qgc3VwcG9ydGVkIG9uIHBhcnRpdGlvbnMKK0NSRUFURSBUQUJMRSBndGVzdF9j aGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCisgICAgZjMgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQgIC0tIGVycm9yCispIEZPUiBWQUxVRVMgRlJPTSAo JzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKK0VSUk9SOiAgY29sdW1uICJmMyIg aW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kCitERVRB SUw6ICBQYXJlbnQgY29sdW1uIGlzIFZJUlRVQUwsIGNoaWxkIGNvbHVtbiBpcyBTVE9SRUQu CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdp bnQsIGYzIGJpZ2ludCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJ VElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgn MjAxNi0xMC0wMScpOyAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImYzIiBpbiBjaGlsZCB0 YWJsZSBtdXN0IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgpAQCAtODA4LDMyICs3ODEsMzcgQEAg RVJST1I6ICB0YWJsZSAiZ3Rlc3RfY2hpbGQzIiBiZWluZyBhdHRhY2hlZCBjb250YWlucyBh biBpZGVudGl0eSBjb2x1bW4gImYzIgogREVUQUlMOiAgVGhlIG5ldyBwYXJ0aXRpb24gbWF5 IG5vdCBjb250YWluIGFuIGlkZW50aXR5IGNvbHVtbi4KIERST1AgVEFCTEUgZ3Rlc3RfY2hp bGQzOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIg YmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAzMykgU1RPUkVE KTsKK0FMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2No aWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7 IC0tIGVycm9yCitFUlJPUjogIGNvbHVtbiAiZjMiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVk IGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZAorREVUQUlMOiAgUGFyZW50IGNvbHVtbiBpcyBW SVJUVUFMLCBjaGlsZCBjb2x1bW4gaXMgU1RPUkVELgorRFJPUCBUQUJMRSBndGVzdF9jaGls ZDM7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBi aWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSBWSVJUVUFM KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2No aWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7 CiBcZCBndGVzdF9jaGlsZAotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9z dG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVk X3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChmMiAqIDIpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKQogUGFydGl0aW9uIG9mOiBndGVz dF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDctMDEtMjAxNicpIFRPICgnMDgtMDEtMjAx NicpCiAKIFxkIGd0ZXN0X2NoaWxkMgotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVy YXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQyIgotIENvbHVtbiB8ICBUeXBlICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAi Z2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQyIgorIENvbHVtbiB8ICBUeXBl ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChmMiAqIDIyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAg ICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMjIpCiBQYXJ0 aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwOC0wMS0yMDE2Jykg VE8gKCcwOS0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQzCi0gICAgICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDMiCi0gQ29sdW1u IHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDMiCisg Q29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUg ICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAg ICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMzMpIHN0b3JlZAorIGYzICAgICB8 IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAo ZjIgKiAzMykKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAo JzA5LTAxLTIwMTYnKSBUTyAoJzEwLTAxLTIwMTYnKQogCiBJTlNFUlQgSU5UTyBndGVzdF9w YXJlbnQgKGYxLCBmMikgVkFMVUVTICgnMjAxNi0wNy0xNScsIDEpOwpAQCAtODQ0LDEwMyAr ODIyLDEyMSBAQCBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFy ZW50IE9SREVSIEJZIDEsIDIsIDM7CiAtLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LSstLS0tCiAgZ3Rlc3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAxIHwgIDIKICBndGVzdF9j aGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIgfCAgNAotIGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIw MTYgfCAgMyB8IDY2CisgZ3Rlc3RfY2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAzIHwgIDYKICgz IHJvd3MpCiAKK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9jaGls ZCBPUkRFUiBCWSAxLCAyLCAzOworICB0YWJsZW9pZCAgIHwgICAgIGYxICAgICB8IGYyIHwg ZjMgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tKy0tLS0KKyBndGVzdF9jaGls ZCB8IDA3LTE1LTIwMTYgfCAgMSB8ICAyCisgZ3Rlc3RfY2hpbGQgfCAwNy0xNS0yMDE2IHwg IDIgfCAgNAorKDIgcm93cykKKworU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9N IGd0ZXN0X2NoaWxkMiBPUkRFUiBCWSAxLCAyLCAzOyAgLS0gdXNlcyBjaGlsZCdzIGdlbmVy YXRpb24gZXhwcmVzc2lvbiwgbm90IHBhcmVudCdzCisgICB0YWJsZW9pZCAgIHwgICAgIGYx ICAgICB8IGYyIHwgZjMgCistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLSstLS0t CisgZ3Rlc3RfY2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAzIHwgNjYKKygxIHJvdykKKworU0VM RUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X2NoaWxkMyBPUkRFUiBCWSAx LCAyLCAzOworIHRhYmxlb2lkIHwgZjEgfCBmMiB8IGYzIAorLS0tLS0tLS0tLSstLS0tKy0t LS0rLS0tLQorKDAgcm93cykKKwogVVBEQVRFIGd0ZXN0X3BhcmVudCBTRVQgZjEgPSBmMSAr IDYwIFdIRVJFIGYyID0gMTsKIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBn dGVzdF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKICAgIHRhYmxlb2lkICAgfCAgICAgZjEg ICAgIHwgZjIgfCBmMyAKIC0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tKy0tLS0K ICBndGVzdF9jaGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIgfCAgNAotIGd0ZXN0X2NoaWxkMiB8 IDA4LTE1LTIwMTYgfCAgMyB8IDY2Ci0gZ3Rlc3RfY2hpbGQzIHwgMDktMTMtMjAxNiB8ICAx IHwgMzMKKyBndGVzdF9jaGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMgfCAgNgorIGd0ZXN0X2No aWxkMyB8IDA5LTEzLTIwMTYgfCAgMSB8ICAyCiAoMyByb3dzKQogCiAtLSBhbHRlciBvbmx5 IHBhcmVudCdzIGFuZCBvbmUgY2hpbGQncyBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIEFMVEVS IFRBQkxFIE9OTFkgZ3Rlc3RfcGFyZW50IEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVTU0lP TiBBUyAoZjIgKiA0KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X2NoaWxkIEFMVEVSIENPTFVNTiBm MyBTRVQgRVhQUkVTU0lPTiBBUyAoZjIgKiAxMCk7CiBcZCBndGVzdF9wYXJlbnQKLSAgICAg ICAgICAgUGFydGl0aW9uZWQgdGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3Rf cGFyZW50IgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICBQYXJ0aXRpb25lZCB0YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVz dHMuZ3Rlc3RfcGFyZW50IgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAg fCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiA0KSBz dG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVy YXRlZCBhbHdheXMgYXMgKGYyICogNCkKIFBhcnRpdGlvbiBrZXk6IFJBTkdFIChmMSkKIE51 bWJlciBvZiBwYXJ0aXRpb25zOiAzIChVc2UgXGQrIHRvIGxpc3QgdGhlbS4pCiAKIFxkIGd0 ZXN0X2NoaWxkCi0gICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90 ZXN0cy5ndGVzdF9jaGlsZCIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0 dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAog IGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwg YmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChm MiAqIDEwKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAg ICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMTApCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0 X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwNy0wMS0yMDE2JykgVE8gKCcwOC0wMS0yMDE2 JykKIAogXGQgZ3Rlc3RfY2hpbGQyCi0gICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJh dGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDIiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDIiCisgQ29sdW1uIHwgIFR5cGUg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8 IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAg fCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGYyICogMjIpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyMikKIFBhcnRp dGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA4LTAxLTIwMTYnKSBU TyAoJzA5LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDMKLSAgICAgICAgICAgICAgICAg IFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKLSBDb2x1bW4g fCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKKyBD b2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgRGVm YXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAg IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAzMykgc3RvcmVkCisgZjMgICAgIHwg YmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChm MiAqIDMzKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgn MDktMDEtMjAxNicpIFRPICgnMTAtMDEtMjAxNicpCiAKIFNFTEVDVCB0YWJsZW9pZDo6cmVn Y2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKICAgIHRhYmxl b2lkICAgfCAgICAgZjEgICAgIHwgZjIgfCBmMyAKIC0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tKy0tLS0KLSBndGVzdF9jaGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIgfCAyMAot IGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8IDY2Ci0gZ3Rlc3RfY2hpbGQzIHwg MDktMTMtMjAxNiB8ICAxIHwgMzMKKyBndGVzdF9jaGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIg fCAgOAorIGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8IDEyCisgZ3Rlc3RfY2hp bGQzIHwgMDktMTMtMjAxNiB8ICAxIHwgIDQKICgzIHJvd3MpCiAKIC0tIGFsdGVyIGdlbmVy YXRpb24gZXhwcmVzc2lvbiBvZiBwYXJlbnQgYW5kIGFsbCBpdHMgY2hpbGRyZW4gYWx0b2dl dGhlcgogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQ UkVTU0lPTiBBUyAoZjIgKiAyKTsKIFxkIGd0ZXN0X3BhcmVudAotICAgICAgICAgICBQYXJ0 aXRpb25lZCB0YWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9wYXJlbnQiCi0g Q29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgIFBhcnRpdGlvbmVkIHRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9w YXJlbnQiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAg fCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAg IHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpIHN0b3JlZAorIGYz ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoZjIgKiAyKQogUGFydGl0aW9uIGtleTogUkFOR0UgKGYxKQogTnVtYmVyIG9mIHBh cnRpdGlvbnM6IDMgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKIAogXGQgZ3Rlc3RfY2hpbGQK LSAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0 X2NoaWxkIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0 ZXN0X2NoaWxkIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEg ICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdp bnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQK KyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKGYyICogMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxV RVMgRlJPTSAoJzA3LTAxLTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYnKQogCiBcZCBndGVzdF9j aGlsZDIKLSAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3RfY2hpbGQyIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVz dHMuZ3Rlc3RfY2hpbGQyIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAg fCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBz dG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVy YXRlZCBhbHdheXMgYXMgKGYyICogMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZP UiBWQUxVRVMgRlJPTSAoJzA4LTAxLTIwMTYnKSBUTyAoJzA5LTAxLTIwMTYnKQogCiBcZCBn dGVzdF9jaGlsZDMKLSAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRf dGVzdHMuZ3Rlc3RfY2hpbGQzIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1 YWxfdGVzdHMuZ3Rlc3RfY2hpbGQzIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBm MiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJp Z2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIg KiAyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFy ZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA5LTAxLTIwMTYnKSBUTyAoJzEwLTAxLTIwMTYnKQog CiBTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVS IEJZIDEsIDIsIDM7CkBAIC05NTMsMjAgKzk0OSwyMCBAQCBTRUxFQ1QgdGFibGVvaWQ6OnJl Z2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAKIC0tIHdl IGxlYXZlIHRoZXNlIHRhYmxlcyBhcm91bmQgZm9yIHB1cnBvc2VzIG9mIHRlc3RpbmcgZHVt cC9yZWxvYWQvdXBncmFkZQogLS0gZ2VuZXJhdGVkIGNvbHVtbnMgaW4gcGFydGl0aW9uIGtl eSAobm90IGFsbG93ZWQpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUg Tk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKK0NSRUFURSBUQUJMRSBn dGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFO R0UgKGYzKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBnZW5lcmF0ZWQgY29sdW1uIGluIHBhcnRp dGlvbiBrZXkKLUxJTkUgMTogLi4uRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JF RCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CitMSU5FIDE6IC4uLk5FUkFURUQgQUxXQVlT IEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIERFVEFJTDogIENvbHVtbiAiZjMiIGlzIGEgZ2VuZXJhdGVkIGNvbHVtbi4K LUNSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmln aW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBB UlRJVElPTiBCWSBSQU5HRSAoKGYzICogMykpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRf a2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQg QUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoKGYzICog MykpOwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gaW4gcGFydGl0aW9u IGtleQotTElORSAxOiAuLi5FRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJ T04gQlkgUkFOR0UgKChmMyAqIDMpKTsKK0xJTkUgMTogLi4uRCBBTFdBWVMgQVMgKGYyICog MikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgog REVUQUlMOiAgQ29sdW1uICJmMyIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uLgogLS0gQUxURVIg VEFCTEUgLi4uIEFERCBDT0xVTU4KIENSRUFURSBUQUJMRSBndGVzdDI1IChhIGludCBQUklN QVJZIEtFWSk7CiBJTlNFUlQgSU5UTyBndGVzdDI1IFZBTFVFUyAoMyksICg0KTsKLUFMVEVS IFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChh ICogMikgU1RPUkVELCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMp OworQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBB UyAoYSAqIDMpOwogU0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7CiAgYSB8IGIg IAogLS0tKy0tLS0KQEAgLTk3NCwxNiArOTcwLDE2IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3Qy NSBPUkRFUiBCWSBhOwogIDQgfCAxMgogKDIgcm93cykKIAotQUxURVIgVEFCTEUgZ3Rlc3Qy NSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiA0KSBTVE9SRUQ7 ICAtLSBlcnJvcgorQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGIgKiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKIEVSUk9SOiAgY2Fu bm90IHVzZSBnZW5lcmF0ZWQgY29sdW1uICJiIiBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHBy ZXNzaW9uCiBERVRBSUw6ICBBIGdlbmVyYXRlZCBjb2x1bW4gY2Fubm90IHJlZmVyZW5jZSBh bm90aGVyIGdlbmVyYXRlZCBjb2x1bW4uCi1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xV TU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeiAqIDQpIFNUT1JFRDsgIC0tIGVycm9y CitBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoeiAqIDQpIFZJUlRVQUw7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gInoiIGRv ZXMgbm90IGV4aXN0CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYyBpbnQgREVG QVVMVCA0MiwKLSAgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICog NCkgU1RPUkVEOworICBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMg KiA0KSBWSVJUVUFMOwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGQgaW50IERF RkFVTFQgMTAxOwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBTFRFUiBDT0xVTU4gZCBTRVQgREFU QSBUWVBFIGZsb2F0OCwKLSAgQUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlT IEFTIChkICogNCkgU1RPUkVEOworICBBREQgQ09MVU1OIHkgZmxvYXQ4IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGQgKiA0KSBWSVJUVUFMOwogU0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVS IEJZIGE7CiAgYSB8IGIgIHwgYyAgfCAgeCAgfCAgZCAgfCAgeSAgCiAtLS0rLS0tLSstLS0t Ky0tLS0tKy0tLS0tKy0tLS0tCkBAIC05OTIsMTUgKzk4OCwxNSBAQCBTRUxFQ1QgKiBGUk9N IGd0ZXN0MjUgT1JERVIgQlkgYTsKICgyIHJvd3MpCiAKIFxkIGd0ZXN0MjUKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz Lmd0ZXN0MjUiCi0gQ29sdW1uIHwgICAgICAgVHlwZSAgICAgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVk X3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyNSIKKyBDb2x1bW4gfCAgICAgICBUeXBlICAgICAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgICAgICAgfCBub3Qg bnVsbCB8IAotIGIgICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAzKSBzdG9yZWQKKyBiICAgICAgfCBp bnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChhICogMykKICBjICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAg IHwgICAgICAgICAgfCA0MgotIHggICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGMgKiA0KSBzdG9yZWQKKyB4 ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5l cmF0ZWQgYWx3YXlzIGFzIChjICogNCkKICBkICAgICAgfCBkb3VibGUgcHJlY2lzaW9uIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAxMDEKLSB5ICAgICAgfCBkb3VibGUgcHJlY2lzaW9u IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkICogNDo6 ZG91YmxlIHByZWNpc2lvbikgc3RvcmVkCisgeSAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZCAqIDQ6OmRv dWJsZSBwcmVjaXNpb24pCiBJbmRleGVzOgogICAgICJndGVzdDI1X3BrZXkiIFBSSU1BUlkg S0VZLCBidHJlZSAoYSkKIApAQCAtMTAwOCw3ICsxMDA0LDcgQEAgSW5kZXhlczoKIENSRUFU RSBUQUJMRSBndGVzdDI3ICgKICAgICBhIGludCwKICAgICBiIGludCwKLSAgICB4IGludCBH RU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgU1RPUkVECisgICAgeCBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5U TyBndGVzdDI3IChhLCBiKSBWQUxVRVMgKDMsIDcpLCAoNCwgMTEpOwogQUxURVIgVEFCTEUg Z3Rlc3QyNyBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7ICAtLSBlcnJvcgpAQCAtMTAxNiwx MiArMTAxMiwxMiBAQCBFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlIG9mIGEgY29sdW1uIHVz ZWQgYnkgYSBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6ICBDb2x1bW4gImEiIGlzIHVzZWQg YnkgZ2VuZXJhdGVkIGNvbHVtbiAieCIuCiBBTFRFUiBUQUJMRSBndGVzdDI3IEFMVEVSIENP TFVNTiB4IFRZUEUgbnVtZXJpYzsKIFxkIGd0ZXN0MjcKLSAgICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjciCi0gQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3Rz Lmd0ZXN0MjciCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0geCAgICAg IHwgbnVtZXJpYyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoKChhICsgYikgKiAyKSkgc3RvcmVkCisgeCAgICAgIHwgbnVtZXJpYyB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKChhICsgYikgKiAyKSkKIAog U0VMRUNUICogRlJPTSBndGVzdDI3OwogIGEgfCBiICB8IHggIApAQCAtMTAzNSwyMCArMTAz MSwxOSBAQCBFUlJPUjogIGNhbm5vdCBzcGVjaWZ5IFVTSU5HIHdoZW4gYWx0ZXJpbmcgdHlw ZSBvZiBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6ICBDb2x1bW4gIngiIGlzIGEgZ2VuZXJh dGVkIGNvbHVtbi4KIEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIHggRFJPUCBE RUZBVUxUOyAgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJ4IiBvZiByZWxhdGlvbiAiZ3Rl c3QyNyIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uCi1ISU5UOiAgVXNlIEFMVEVSIFRBQkxFIC4u LiBBTFRFUiBDT0xVTU4gLi4uIERST1AgRVhQUkVTU0lPTiBpbnN0ZWFkLgogLS0gSXQncyBw b3NzaWJsZSB0byBhbHRlciB0aGUgY29sdW1uIHR5cGVzIHRoaXMgd2F5OgogQUxURVIgVEFC TEUgZ3Rlc3QyNwogICBEUk9QIENPTFVNTiB4LAogICBBTFRFUiBDT0xVTU4gYSBUWVBFIGJp Z2ludCwKICAgQUxURVIgQ09MVU1OIGIgVFlQRSBiaWdpbnQsCi0gIEFERCBDT0xVTU4geCBi aWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRDsKKyAgQURE IENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgVklS VFVBTDsKIFxkIGd0ZXN0MjcKLSAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJh dGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI3IgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAg ICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyNyIKKyBDb2x1bW4gfCAgVHlw ZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAg ICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBiaWdpbnQgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAogIGIgICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCi0geCAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgoYSArIGIpICogMikgc3RvcmVkCisgeCAgICAgIHwg YmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgo YSArIGIpICogMikKIAogLS0gSWRlYWxseSB5b3UgY291bGQganVzdCBkbyB0aGlzLCBidXQg bm90IHRvZGF5IChhbmQgc2hvdWxkIHggY2hhbmdlIHR5cGU/KToKIEFMVEVSIFRBQkxFIGd0 ZXN0MjcKQEAgLTEwNTcsMTIgKzEwNTIsMTIgQEAgQUxURVIgVEFCTEUgZ3Rlc3QyNwogRVJS T1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5IGEgZ2VuZXJhdGVk IGNvbHVtbgogREVUQUlMOiAgQ29sdW1uICJhIiBpcyB1c2VkIGJ5IGdlbmVyYXRlZCBjb2x1 bW4gIngiLgogXGQgZ3Rlc3QyNwotICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5l cmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjciCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg IFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI3IgorIENvbHVtbiB8ICBU eXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGJpZ2ludCB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAgIHwgYmlnaW50IHwgICAgICAgICAg IHwgICAgICAgICAgfCAKLSB4ICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAg ICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKChhICsgYikgKiAyKSBzdG9yZWQKKyB4ICAgICAg fCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMg KChhICsgYikgKiAyKQogCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjc7CiAgYSB8IGIgIHwgeCAg CkBAIC0xMDc0LDcgKzEwNjksNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjc7CiAtLSBBTFRF UiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIC4uLiBEUk9QIEVYUFJFU1NJT04KIENSRUFURSBU QUJMRSBndGVzdDI5ICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDI5IChhKSBWQUxVRVMgKDMpLCAo NCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CkBAIC0xMDg1LDE4ICsxMDgwLDE4IEBAIFNF TEVDVCAqIEZST00gZ3Rlc3QyOTsKICgyIHJvd3MpCiAKIFxkIGd0ZXN0MjkKLSAgICAgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIKLSBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjkiCisg Q29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCisg YiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoYSAqIDIpCiAKIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEg U0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAi YSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFM VEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEgRFJPUCBFWFBSRVNTSU9OOyAgLS0g ZXJyb3IKLUVSUk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90 IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4KK0VSUk9SOiAgY29sdW1uICJhIiBvZiByZWxh dGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgZ2VuZXJhdGVkIGNvbHVtbgogQUxURVIgVEFCTEUg Z3Rlc3QyOSBBTFRFUiBDT0xVTU4gYSBEUk9QIEVYUFJFU1NJT04gSUYgRVhJU1RTOyAgLS0g bm90aWNlCi1OT1RJQ0U6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBu b3QgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiwgc2tpcHBpbmcKK05PVElDRTogIGNvbHVt biAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4s IHNraXBwaW5nCiAtLSBDaGFuZ2UgdGhlIGV4cHJlc3Npb24KIEFMVEVSIFRBQkxFIGd0ZXN0 MjkgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKIFNFTEVDVCAq IEZST00gZ3Rlc3QyOTsKQEAgLTExMDcsOTMgKzExMDIsMTE0IEBAIFNFTEVDVCAqIEZST00g Z3Rlc3QyOTsKICgyIHJvd3MpCiAKIFxkIGd0ZXN0MjkKLSAgICAgICAgICAgICAgICAgICAg VGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIKLSBDb2x1bW4gfCAgVHlw ZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAgICAg ICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg VGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjkiCisgQ29sdW1uIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAg ICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMykgc3RvcmVkCisgYiAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAq IDMpCiAKIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNT SU9OOworRVJST1I6ICBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lPTiBpcyBub3Qgc3Vw cG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4g ImIiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bi4KIElOU0VSVCBJTlRPIGd0ZXN0MjkgKGEpIFZBTFVFUyAoNSk7CiBJTlNFUlQgSU5UTyBn dGVzdDI5IChhLCBiKSBWQUxVRVMgKDYsIDY2KTsKK0VSUk9SOiAgY2Fubm90IGluc2VydCBh IG5vbi1ERUZBVUxUIHZhbHVlIGludG8gY29sdW1uICJiIgorREVUQUlMOiAgQ29sdW1uICJi IiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4uCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CiAgYSB8 IGIgIAogLS0tKy0tLS0KICAzIHwgIDkKICA0IHwgMTIKLSA1IHwgICAKLSA2IHwgNjYKLSg0 IHJvd3MpCisgNSB8IDE1CisoMyByb3dzKQogCiBcZCBndGVzdDI5Ci0gICAgICBUYWJsZSAi Z2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI5IgotIENvbHVtbiB8ICBUeXBlICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJsZSAi Z2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyOSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKGEgKiAzKQogCiAtLSBjaGVjayB0aGF0IGRlcGVuZGVuY2llcyBiZXR3ZWVu IGNvbHVtbnMgaGF2ZSBhbHNvIGJlZW4gcmVtb3ZlZAogQUxURVIgVEFCTEUgZ3Rlc3QyOSBE Uk9QIENPTFVNTiBhOyAgLS0gc2hvdWxkIG5vdCBkcm9wIGIKK0VSUk9SOiAgY2Fubm90IGRy b3AgY29sdW1uIGEgb2YgdGFibGUgZ3Rlc3QyOSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVw ZW5kIG9uIGl0CitERVRBSUw6ICBjb2x1bW4gYiBvZiB0YWJsZSBndGVzdDI5IGRlcGVuZHMg b24gY29sdW1uIGEgb2YgdGFibGUgZ3Rlc3QyOQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVND QURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KIFxkIGd0ZXN0MjkKLSAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQotIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVtbiB8ICBUeXBlICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAK Ky0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpCiAKIC0tIHdpdGggaW5oZXJpdGFuY2UKIENS RUFURSBUQUJMRSBndGVzdDMwICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVS SVRTIChndGVzdDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJP UCBFWFBSRVNTSU9OOworRVJST1I6ICBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lPTiBp cyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6 ICBDb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDMwIiBpcyBhIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbi4KIFxkIGd0ZXN0MzAKLSAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVk X3Rlc3RzLmd0ZXN0MzAiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVh bF90ZXN0cy5ndGVzdDMwIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIp CiBOdW1iZXIgb2YgY2hpbGQgdGFibGVzOiAxIChVc2UgXGQrIHRvIGxpc3QgdGhlbS4pCiAK IFxkIGd0ZXN0MzBfMQotICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVz dDMwXzEiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLQorICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0 ZXN0MzBfMSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGIgICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogSW5oZXJp dHM6IGd0ZXN0MzAKIAogRFJPUCBUQUJMRSBndGVzdDMwIENBU0NBREU7CiBOT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIHRhYmxlIGd0ZXN0MzBfMQogQ1JFQVRFIFRBQkxFIGd0ZXN0MzAg KAogICAgIGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBT VE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAog KTsKIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogQUxU RVIgVEFCTEUgT05MWSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsg IC0tIGVycm9yCiBFUlJPUjogIEFMVEVSIFRBQkxFIC8gRFJPUCBFWFBSRVNTSU9OIG11c3Qg YmUgYXBwbGllZCB0byBjaGlsZCB0YWJsZXMgdG9vCiBcZCBndGVzdDMwCi0gICAgICAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MzAiCi0gQ29s dW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMwIgorIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdh eXMgYXMgKGEgKiAyKQogTnVtYmVyIG9mIGNoaWxkIHRhYmxlczogMSAoVXNlIFxkKyB0byBs aXN0IHRoZW0uKQogCiBcZCBndGVzdDMwXzEKLSAgICAgICAgICAgICAgICAgICBUYWJsZSAi Z2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDMwXzEiCi0gQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgVGFibGUg ImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MzBfMSIKKyBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg CistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikK IEluaGVyaXRzOiBndGVzdDMwCiAKIEFMVEVSIFRBQkxFIGd0ZXN0MzBfMSBBTFRFUiBDT0xV TU4gYiBEUk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgogRVJST1I6ICBjYW5ub3QgZHJvcCBn ZW5lcmF0aW9uIGV4cHJlc3Npb24gZnJvbSBpbmhlcml0ZWQgY29sdW1uCistLSBjb21wb3Np dGUgdHlwZSBkZXBlbmRlbmNpZXMKK0NSRUFURSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBi IHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgVklSVFVBTCwgYyB0ZXh0KTsK K0NSRUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0ZXN0MzFfMSk7CitBTFRFUiBU QUJMRSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMK K0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJndGVzdDMxXzEiIGJlY2F1c2UgY29sdW1u ICJndGVzdDMxXzIueSIgdXNlcyBpdHMgcm93IHR5cGUKK0RST1AgVEFCTEUgZ3Rlc3QzMV8x LCBndGVzdDMxXzI7CistLSBDaGVjayBpdCBmb3IgYSBwYXJ0aXRpb25lZCB0YWJsZSwgdG9v CitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdB WVMgQVMgKCdoZWxsbycpIFZJUlRVQUwsIGMgdGV4dCkgUEFSVElUSU9OIEJZIExJU1QgKGEp OworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKK0FMVEVS IFRBQkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWls cworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgImd0ZXN0MzFfMSIgYmVjYXVzZSBjb2x1 bW4gImd0ZXN0MzFfMi55IiB1c2VzIGl0cyByb3cgdHlwZQorRFJPUCBUQUJMRSBndGVzdDMx XzEsIGd0ZXN0MzFfMjsKIC0tIHRyaWdnZXJzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNiAoCiAg ICAgYSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMCiApOwogQ1JFQVRFIEZVTkNUSU9OIGd0ZXN0X3RyaWdnZXJfZnVuYygpIFJFVFVS TlMgdHJpZ2dlcgogICBMQU5HVUFHRSBwbHBnc3FsCkBAIC0xMjQ2LDcgKzEyNjIsNyBAQCBD UkVBVEUgVFJJR0dFUiBndGVzdDQgQUZURVIgSU5TRVJUIE9SIFVQREFURSBPTiBndGVzdDI2 CiAgIEVYRUNVVEUgUFJPQ0VEVVJFIGd0ZXN0X3RyaWdnZXJfZnVuYygpOwogSU5TRVJUIElO VE8gZ3Rlc3QyNiAoYSkgVkFMVUVTICgtMiksICgwKSwgKDMpOwogSU5GTzogIGd0ZXN0Mjog QkVGT1JFOiBuZXcgPSAoLTIsKQotSU5GTzogIGd0ZXN0NDogQUZURVI6IG5ldyA9ICgtMiwt NCkKK0lORk86ICBndGVzdDQ6IEFGVEVSOiBuZXcgPSAoLTIsKQogU0VMRUNUICogRlJPTSBn dGVzdDI2IE9SREVSIEJZIGE7CiAgYSAgfCBiICAKIC0tLS0rLS0tLQpAQCAtMTI1NiwxMiAr MTI3MiwxMiBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICgzIHJvd3Mp CiAKIFVQREFURSBndGVzdDI2IFNFVCBhID0gYSAqIC0yOwotSU5GTzogIGd0ZXN0MTogQkVG T1JFOiBvbGQgPSAoLTIsLTQpCitJTkZPOiAgZ3Rlc3QxOiBCRUZPUkU6IG9sZCA9ICgtMiwp CiBJTkZPOiAgZ3Rlc3QxOiBCRUZPUkU6IG5ldyA9ICg0LCkKLUlORk86ICBndGVzdDM6IEFG VEVSOiBvbGQgPSAoLTIsLTQpCi1JTkZPOiAgZ3Rlc3QzOiBBRlRFUjogbmV3ID0gKDQsOCkK LUlORk86ICBndGVzdDQ6IEFGVEVSOiBvbGQgPSAoMyw2KQotSU5GTzogIGd0ZXN0NDogQUZU RVI6IG5ldyA9ICgtNiwtMTIpCitJTkZPOiAgZ3Rlc3QzOiBBRlRFUjogb2xkID0gKC0yLCkK K0lORk86ICBndGVzdDM6IEFGVEVSOiBuZXcgPSAoNCwpCitJTkZPOiAgZ3Rlc3Q0OiBBRlRF Ujogb2xkID0gKDMsKQorSU5GTzogIGd0ZXN0NDogQUZURVI6IG5ldyA9ICgtNiwpCiBTRUxF Q1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICBhICB8ICBiICAKIC0tLS0rLS0tLS0K QEAgLTEyNzEsOCArMTI4Nyw4IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBh OwogKDMgcm93cykKIAogREVMRVRFIEZST00gZ3Rlc3QyNiBXSEVSRSBhID0gLTY7Ci1JTkZP OiAgZ3Rlc3QxOiBCRUZPUkU6IG9sZCA9ICgtNiwtMTIpCi1JTkZPOiAgZ3Rlc3QzOiBBRlRF Ujogb2xkID0gKC02LC0xMikKK0lORk86ICBndGVzdDE6IEJFRk9SRTogb2xkID0gKC02LCkK K0lORk86ICBndGVzdDM6IEFGVEVSOiBvbGQgPSAoLTYsKQogU0VMRUNUICogRlJPTSBndGVz dDI2IE9SREVSIEJZIGE7CiAgYSB8IGIgCiAtLS0rLS0tCkBAIC0xMzAwLDcgKzEzMTYsNyBA QCBVUERBVEUgZ3Rlc3QyNiBTRVQgYSA9IDEgV0hFUkUgYSA9IDA7CiBOT1RJQ0U6ICBPSwog RFJPUCBUUklHR0VSIGd0ZXN0MTEgT04gZ3Rlc3QyNjsKIFRSVU5DQVRFIGd0ZXN0MjY7Ci0t LSBjaGVjayB0aGF0IG1vZGlmaWNhdGlvbnMgb2Ygc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5z IGluIHRyaWdnZXJzIGRvCistLSBjaGVjayB0aGF0IG1vZGlmaWNhdGlvbnMgb2YgZ2VuZXJh dGVkIGNvbHVtbnMgaW4gdHJpZ2dlcnMgZG8KIC0tIG5vdCBnZXQgcHJvcGFnYXRlZAogQ1JF QVRFIEZVTkNUSU9OIGd0ZXN0X3RyaWdnZXJfZnVuYzQoKSBSRVRVUk5TIHRyaWdnZXIKICAg TEFOR1VBR0UgcGxwZ3NxbApAQCAtMTMxMSwyMCArMTMyNywyOCBAQCBCRUdJTgogICBSRVRV Uk4gTkVXOwogRU5EOwogJCQ7Ci1DUkVBVEUgVFJJR0dFUiBndGVzdDEyXzAxIEJFRk9SRSBV UERBVEUgT04gZ3Rlc3QyNgorQ1JFQVRFIFRSSUdHRVIgZ3Rlc3QxMl8wMSBCRUZPUkUgSU5T RVJUIE9SIFVQREFURSBPTiBndGVzdDI2CiAgIEZPUiBFQUNIIFJPVwogICBFWEVDVVRFIFBS T0NFRFVSRSBndGVzdF90cmlnZ2VyX2Z1bmMoKTsKLUNSRUFURSBUUklHR0VSIGd0ZXN0MTJf MDIgQkVGT1JFIFVQREFURSBPTiBndGVzdDI2CitDUkVBVEUgVFJJR0dFUiBndGVzdDEyXzAy IEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRk9SIEVBQ0ggUk9XCiAg IEVYRUNVVEUgUFJPQ0VEVVJFIGd0ZXN0X3RyaWdnZXJfZnVuYzQoKTsKLUNSRUFURSBUUklH R0VSIGd0ZXN0MTJfMDMgQkVGT1JFIFVQREFURSBPTiBndGVzdDI2CitDUkVBVEUgVFJJR0dF UiBndGVzdDEyXzAzIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRk9S IEVBQ0ggUk9XCiAgIEVYRUNVVEUgUFJPQ0VEVVJFIGd0ZXN0X3RyaWdnZXJfZnVuYygpOwog SU5TRVJUIElOVE8gZ3Rlc3QyNiAoYSkgVkFMVUVTICgxKTsKLVVQREFURSBndGVzdDI2IFNF VCBhID0gMTEgV0hFUkUgYSA9IDE7Ci1JTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JFOiBvbGQg PSAoMSwyKQorSU5GTzogIGd0ZXN0MTJfMDE6IEJFRk9SRTogbmV3ID0gKDEsKQorSU5GTzog IGd0ZXN0MTJfMDM6IEJFRk9SRTogbmV3ID0gKDEwLCkKK1NFTEVDVCAqIEZST00gZ3Rlc3Qy NiBPUkRFUiBCWSBhOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cp CisKK1VQREFURSBndGVzdDI2IFNFVCBhID0gMTEgV0hFUkUgYSA9IDEwOworSU5GTzogIGd0 ZXN0MTJfMDE6IEJFRk9SRTogb2xkID0gKDEwLCkKIElORk86ICBndGVzdDEyXzAxOiBCRUZP UkU6IG5ldyA9ICgxMSwpCi1JTkZPOiAgZ3Rlc3QxMl8wMzogQkVGT1JFOiBvbGQgPSAoMSwy KQorSU5GTzogIGd0ZXN0MTJfMDM6IEJFRk9SRTogb2xkID0gKDEwLCkKIElORk86ICBndGVz dDEyXzAzOiBCRUZPUkU6IG5ldyA9ICgxMCwpCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JE RVIgQlkgYTsKICBhICB8IGIgIApAQCAtMTMzNywyMiArMTM2MSwyOCBAQCBDUkVBVEUgVEFC TEUgZ3Rlc3QyOGEgKAogICBhIGludCwKICAgYiBpbnQsCiAgIGMgaW50LAotICB4IGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVECisgIHggaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMCiApOwogQUxURVIgVEFCTEUgZ3Rlc3QyOGEgRFJP UCBDT0xVTU4gYTsKIENSRUFURSBUQUJMRSBndGVzdDI4YiAoTElLRSBndGVzdDI4YSBJTkNM VURJTkcgR0VORVJBVEVEKTsKIFxkIGd0ZXN0MjgqCi0gICAgICAgICAgICAgICAgICAgVGFi bGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOGEiCi0gQ29sdW1uIHwgIFR5cGUg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAg ICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgVGFi bGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjhhIgorIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCiAgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCi0geCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoYiAqIDIpIHN0b3JlZAorIHggICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKQogCi0gICAg ICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOGIi Ci0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0Mjhi IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYiAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYyAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCi0geCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYiAqIDIpIHN0b3JlZAorIHggICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGIgKiAyKQorCistLSBzYW5pdHkgY2hlY2sgb2Ygc3lzdGVtIGNhdGFsb2cKK1NFTEVD VCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdI RVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CisgYXR0cmVsaWQgfCBh dHRuYW1lIHwgYXR0Z2VuZXJhdGVkIAorLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0KKygwIHJvd3MpCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNh dGlvbi5vdXQKaW5kZXggYzQ4ZjExZjI5MzUuLjdjYzQwNWUwMDJkIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtNDQyLDcgKzQ0Miw3IEBA IExJTkUgMTogLi4uSUNBVElPTiB0ZXN0cHViNiBGT1IgVEFCTEUgdGVzdHB1Yl9yZl90Ymwz IFdIRVJFIChlID0jPiAyNyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVXNlci1kZWZpbmVkIG9w ZXJhdG9ycyBhcmUgbm90IGFsbG93ZWQuCiAtLSBmYWlsIC0gdXNlci1kZWZpbmVkIGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQKLUNSRUFURSBGVU5DVElPTiB0ZXN0cHViX3JmX2Z1bmMy KCkgUkVUVVJOUyBpbnRlZ2VyIEFTICQkIEJFR0lOIFJFVFVSTiAxMjM7IEVORDsgJCQgTEFO R1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5DVElPTiB0ZXN0cHViX3JmX2Z1bmMyKCkgUkVU VVJOUyBpbnRlZ2VyIElNTVVUQUJMRSBBUyAkJCBCRUdJTiBSRVRVUk4gMTIzOyBFTkQ7ICQk IExBTkdVQUdFIHBscGdzcWw7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViNSBBREQgVEFC TEUgdGVzdHB1Yl9yZl90YmwxIFdIRVJFIChhID49IHRlc3RwdWJfcmZfZnVuYzIoKSk7CiBF UlJPUjogIGludmFsaWQgcHVibGljYXRpb24gV0hFUkUgZXhwcmVzc2lvbgogTElORSAxOiAu Li5PTiB0ZXN0cHViNSBBREQgVEFCTEUgdGVzdHB1Yl9yZl90YmwxIFdIRVJFIChhID49IHRl c3RwdWJfcmYuLi4KQEAgLTUyMywxNyArNTIzLDMzIEBAIFRhYmxlczoKIFRhYmxlcyBmcm9t IHNjaGVtYXM6CiAgICAgInRlc3RwdWJfcmZfc2NoZW1hMiIKIAorLS0gZmFpbCAtIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbiB1c2VzIHVzZXItZGVmaW5lZCBmdW5jdGlvbgorQ1JFQVRF IFRBQkxFIHRlc3RwdWJfcmZfdGJsNiAoaWQgaW50IFBSSU1BUlkgS0VZLCB4IGludCwgeSBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIHRlc3RwdWJfcmZfZnVuYzIoKSkgVklSVFVB TCk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjcgRk9SIFRBQkxFIHRlc3RwdWJfcmZf dGJsNiBXSEVSRSAoeSA+IDEwMCk7CitFUlJPUjogIGludmFsaWQgcHVibGljYXRpb24gV0hF UkUgZXhwcmVzc2lvbgorREVUQUlMOiAgVXNlci1kZWZpbmVkIG9yIGJ1aWx0LWluIG11dGFi bGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZC4KKy0tIHRlc3QgdGhhdCBTRVQgRVhQUkVT U0lPTiBpcyByZWplY3RlZCwgYmVjYXVzZSBpdCBjb3VsZCBhZmZlY3QgYSByb3cgZmlsdGVy CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgVEFCTEUgdGVz dHB1Yl9yZl90Ymw3IChpZCBpbnQgUFJJTUFSWSBLRVksIHggaW50LCB5IGludCBHRU5FUkFU RUQgQUxXQVlTIEFTICh4ICogMTExKSBWSVJUVUFMKTsKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViOCBGT1IgVEFCTEUgdGVzdHB1Yl9yZl90Ymw3IFdIRVJFICh5ID4gMTAwKTsKK0FM VEVSIFRBQkxFIHRlc3RwdWJfcmZfdGJsNyBBTFRFUiBDT0xVTU4geSBTRVQgRVhQUkVTU0lP TiBBUyAoeCAqIHRlc3RwdWJfcmZfZnVuYzIoKSk7CitFUlJPUjogIEFMVEVSIFRBQkxFIC8g U0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1ucyBvbiB0YWJsZXMgdGhhdCBhcmUgcGFydCBvZiBhIHB1YmxpY2F0aW9uCitERVRB SUw6ICBDb2x1bW4gInkiIG9mIHJlbGF0aW9uICJ0ZXN0cHViX3JmX3RibDciIGlzIGEgdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1uLgorUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERS T1AgVEFCTEUgdGVzdHB1Yl9yZl90YmwxOwogRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3RibDI7 CiBEUk9QIFRBQkxFIHRlc3RwdWJfcmZfdGJsMzsKIERST1AgVEFCTEUgdGVzdHB1Yl9yZl90 Ymw0OwogRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3RibDU7CitEUk9QIFRBQkxFIHRlc3RwdWJf cmZfdGJsNjsKIERST1AgVEFCTEUgdGVzdHB1Yl9yZl9zY2hlbWExLnRlc3RwdWJfcmZfdGJs NTsKIERST1AgVEFCTEUgdGVzdHB1Yl9yZl9zY2hlbWEyLnRlc3RwdWJfcmZfdGJsNjsKIERS T1AgU0NIRU1BIHRlc3RwdWJfcmZfc2NoZW1hMTsKIERST1AgU0NIRU1BIHRlc3RwdWJfcmZf c2NoZW1hMjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjU7CiBEUk9QIFBVQkxJQ0FUSU9O IHRlc3RwdWI2OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViODsKK0RST1AgVEFCTEUgdGVz dHB1Yl9yZl90Ymw3OwogRFJPUCBPUEVSQVRPUiA9Iz4oaW50ZWdlciwgaW50ZWdlcik7CiBE Uk9QIEZVTkNUSU9OIHRlc3RwdWJfcmZfZnVuYzEoaW50ZWdlciwgaW50ZWdlcik7CiBEUk9Q IEZVTkNUSU9OIHRlc3RwdWJfcmZfZnVuYzIoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9yb3dzZWN1cml0eS5vdXQKaW5kZXggZmQ1NjU0ZGYzNWUuLjg3OTI5MTkxZDA2IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dApAQCAtNDM3 OSw2ICs0Mzc5LDM1IEBAIEVSUk9SOiAgbmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2Vj dXJpdHkgcG9saWN5IGZvciB0YWJsZSAicjEiCiBJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDEw KQogICAgIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgcjFfcGtleSBETyBVUERBVEUgU0VU IGEgPSAzMDsKIEVSUk9SOiAgbmV3IHJvdyB2aW9sYXRlcyByb3ctbGV2ZWwgc2VjdXJpdHkg cG9saWN5IGZvciB0YWJsZSAicjEiCitEUk9QIFRBQkxFIHIxOworLS0KKy0tIFRlc3QgcG9s aWNpZXMgdXNpbmcgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworLS0KK1NFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CitTRVQgcm93X3NlY3VyaXR5ID0g b247CitDUkVBVEUgVEFCTEUgcjEgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMTApIFZJUlRVQUwpOworQUxURVIgVEFCTEUgcjEgQUREIGMgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAxMDApIFZJUlRVQUw7CitJTlNFUlQgSU5UTyByMSBWQUxVRVMg KDEpLCAoMiksICg0KTsKK0NSRUFURSBQT0xJQ1kgcDAgT04gcjEgVVNJTkcgKGIgKiAxMCA9 IGMpOworQ1JFQVRFIFBPTElDWSBwMSBPTiByMSBBUyBSRVNUUklDVElWRSBVU0lORyAoYiA+ IDEwKTsKK0NSRUFURSBQT0xJQ1kgcDIgT04gcjEgQVMgUkVTVFJJQ1RJVkUgVVNJTkcgKChT RUxFQ1QgYykgPCA0MDApOworQUxURVIgVEFCTEUgcjEgRU5BQkxFIFJPVyBMRVZFTCBTRUNV UklUWTsKK0FMVEVSIFRBQkxFIHIxIEZPUkNFIFJPVyBMRVZFTCBTRUNVUklUWTsKKy0tIFNo b3VsZCBmYWlsIHAxCitJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDApOworRVJST1I6ICBuZXcg cm93IHZpb2xhdGVzIHJvdy1sZXZlbCBzZWN1cml0eSBwb2xpY3kgInAxIiBmb3IgdGFibGUg InIxIgorLS0gU2hvdWxkIGZhaWwgcDIKK0lOU0VSVCBJTlRPIHIxIFZBTFVFUyAoNCk7CitF UlJPUjogIG5ldyByb3cgdmlvbGF0ZXMgcm93LWxldmVsIHNlY3VyaXR5IHBvbGljeSAicDIi IGZvciB0YWJsZSAicjEiCistLSBPSworSU5TRVJUIElOVE8gcjEgVkFMVUVTICgzKTsKK1NF TEVDVCAqIEZST00gcjE7CisgYSB8IGIgIHwgIGMgIAorLS0tKy0tLS0rLS0tLS0KKyAyIHwg MjAgfCAyMDAKKyAzIHwgMzAgfCAzMDAKKygyIHJvd3MpCisKIERST1AgVEFCTEUgcjE7CiAt LSBDaGVjayBkZXBlbmRlbmN5IGhhbmRsaW5nCiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T047CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQKaW5kZXggYTRj N2JlNDg3ZWYuLjlhODIwNDA0ZDNmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N0YXRzX2V4dC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dGF0c19leHQub3V0CkBAIC02Niw2ICs2NiwyOSBAQCBFUlJPUjogIHN5bnRheCBlcnJvciBh dCBvciBuZWFyICIsIgogTElORSAxOiBDUkVBVEUgU1RBVElTVElDUyB0c3QgT04gKHgsIHkp IEZST00gZXh0X3N0YXRzX3Rlc3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KIERST1AgVEFCTEUgZXh0X3N0YXRzX3Rlc3Q7CistLSBzdGF0aXN0aWNzIG9uIHZp cnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiBub3QgYWxsb3dlZAorQ1JFQVRFIFRBQkxFIGV4dF9z dGF0c190ZXN0MSAoeCBpbnQsIHkgaW50LCB6IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4 K3kpIFZJUlRVQUwsIHcgeGlkKTsKK0NSRUFURSBTVEFUSVNUSUNTIHRzdCBvbiB6IGZyb20g ZXh0X3N0YXRzX3Rlc3QxOworRVJST1I6ICBzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZAorQ1JFQVRFIFNUQVRJU1RJ Q1MgdHN0IG9uICh6KSBmcm9tIGV4dF9zdGF0c190ZXN0MTsKK0VSUk9SOiAgc3RhdGlzdGlj cyBjcmVhdGlvbiBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0 ZWQKK0NSRUFURSBTVEFUSVNUSUNTIHRzdCBvbiAoeisxKSBmcm9tIGV4dF9zdGF0c190ZXN0 MTsKK0VSUk9SOiAgc3RhdGlzdGljcyBjcmVhdGlvbiBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQKK0NSRUFURSBTVEFUSVNUSUNTIHRzdCAobmRpc3Rp bmN0KSBPTiB6IGZyb20gZXh0X3N0YXRzX3Rlc3QxOworRVJST1I6ICBzdGF0aXN0aWNzIGNy ZWF0aW9uIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZAor LS0gc3RhdGlzdGljcyBvbiBzeXN0ZW0gY29sdW1uIG5vdCBhbGxvd2VkCitDUkVBVEUgU1RB VElTVElDUyB0c3Qgb24gdGFibGVvaWQgZnJvbSBleHRfc3RhdHNfdGVzdDE7CitFUlJPUjog IHN0YXRpc3RpY3MgY3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRl ZAorQ1JFQVRFIFNUQVRJU1RJQ1MgdHN0IG9uICh0YWJsZW9pZCkgZnJvbSBleHRfc3RhdHNf dGVzdDE7CitFUlJPUjogIHN0YXRpc3RpY3MgY3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMg aXMgbm90IHN1cHBvcnRlZAorQ1JFQVRFIFNUQVRJU1RJQ1MgdHN0IG9uICh0YWJsZW9pZDo6 aW50KzEpIGZyb20gZXh0X3N0YXRzX3Rlc3QxOworRVJST1I6ICBzdGF0aXN0aWNzIGNyZWF0 aW9uIG9uIHN5c3RlbSBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQKK0NSRUFURSBTVEFUSVNU SUNTIHRzdCAobmRpc3RpbmN0KSBPTiB4bWluIGZyb20gZXh0X3N0YXRzX3Rlc3QxOworRVJS T1I6ICBzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHN5c3RlbSBjb2x1bW5zIGlzIG5vdCBzdXBw b3J0ZWQKKy0tIHN0YXRpc3RpY3Mgd2l0aG91dCBhIGxlc3MtdGhhbiBvcGVyYXRvciBub3Qg c3VwcG9ydGVkCitDUkVBVEUgU1RBVElTVElDUyB0c3QgKG5kaXN0aW5jdCkgT04gdyBmcm9t IGV4dF9zdGF0c190ZXN0MTsKK0VSUk9SOiAgY29sdW1uICJ3IiBjYW5ub3QgYmUgdXNlZCBp biBzdGF0aXN0aWNzIGJlY2F1c2UgaXRzIHR5cGUgeGlkIGhhcyBubyBkZWZhdWx0IGJ0cmVl IG9wZXJhdG9yIGNsYXNzCitEUk9QIFRBQkxFIGV4dF9zdGF0c190ZXN0MTsKIC0tIEVuc3Vy ZSBzdGF0cyBhcmUgZHJvcHBlZCBzYW5lbHksIGFuZCB0ZXN0IElGIE5PVCBFWElTVFMgd2hp bGUgYXQgaXQKIENSRUFURSBUQUJMRSBhYjEgKGEgSU5URUdFUiwgYiBJTlRFR0VSLCBjIElO VEVHRVIpOwogQ1JFQVRFIFNUQVRJU1RJQ1MgSUYgTk9UIEVYSVNUUyBhYjFfYV9iX3N0YXRz IE9OIGEsIGIgRlJPTSBhYjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFs bGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRl eCAxZWRkOWU0NWViYi4uN2QwOTZjN2EyOTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZQpAQCAtNjgsNiArNjgsOSBAQCB0ZXN0OiBzZWxlY3RfaW50byBzZWxlY3RfZGlz dGluY3Qgc2VsZWN0X2Rpc3RpbmN0X29uIHNlbGVjdF9pbXBsaWNpdCBzZWxlY3RfaGF2aQog IyAtLS0tLS0tLS0tCiB0ZXN0OiBicmluIGdpbiBnaXN0IHNwZ2lzdCBwcml2aWxlZ2VzIGlu aXRfcHJpdnMgc2VjdXJpdHlfbGFiZWwgY29sbGF0ZSBtYXR2aWV3IGxvY2sgcmVwbGljYV9p ZGVudGl0eSByb3dzZWN1cml0eSBvYmplY3RfYWRkcmVzcyB0YWJsZXNhbXBsZSBncm91cGlu Z3NldHMgZHJvcF9vcGVyYXRvciBwYXNzd29yZCBpZGVudGl0eSBnZW5lcmF0ZWRfc3RvcmVk IGpvaW5faGFzaAogCisjIFRPRE86IGZpbmQgYSBwbGFjZSBmb3IgdGhpcyAoYWJvdmUgZ3Jv dXAgaXMgZnVsbCkKK3Rlc3Q6IGdlbmVyYXRlZF92aXJ0dWFsCisKICMgLS0tLS0tLS0tLQog IyBBZGRpdGlvbmFsIEJSSU4gdGVzdHMKICMgLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbAppbmRleCA1ZWUyZGE0ZTBlMC4uYTdjN2Ex NDAzMWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0 Zjguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3Fs CkBAIC05NTAsNiArOTUwLDIxIEBAIENSRUFURSBUQUJMRSBwYWdnX3RhYjZfcDIgUEFSVElU SU9OIE9GIHBhZ2dfdGFiNiBGT1IgVkFMVUVTIElOICgnYycsICdkJyk7CiBSRVNFVCBtYXhf cGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOwogUkVTRVQgZW5hYmxlX2luY3JlbWVudGFs X3NvcnQ7CiAKKy0tIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0NSRUFURSBUQUJMRSB0 NSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IGNvbGxhdGUgIkMiLAorICAgIGMgdGV4dCBj b2xsYXRlICJDIiBHRU5FUkFURUQgQUxXQVlTIEFTIChiIENPTExBVEUgY2FzZV9pbnNlbnNp dGl2ZSkKKyk7CitJTlNFUlQgSU5UTyB0NSAoYSwgYikgdmFsdWVzICgxLCAnRDEnKSwgKDIs ICdEMicpLCAoMywgJ2QxJyk7CistLSBDb2xsYXRpb24gb2YgYyBzaG91bGQgYmUgdGhlIG9u ZSBkZWZpbmVkIGZvciB0aGUgY29sdW1uICgiQyIpLCBub3QKKy0tIHRoZSBvbmUgb2YgdGhl IGdlbmVyYXRpb24gZXhwcmVzc2lvbi4gIChOb3RlIHRoYXQgd2UgY2Fubm90IGp1c3QKKy0t IHRlc3Qgd2l0aCwgc2F5LCB1c2luZyBDT0xMQVRJT04gRk9SLCBiZWNhdXNlIHRoZSBjb2xs YXRpb24gb2YKKy0tIGZ1bmN0aW9uIGNhbGxzIGlzIGFscmVhZHkgZGV0ZXJtaW5lZCBpbiB0 aGUgcGFyc2VyIGJlZm9yZQorLS0gcmV3cml0aW5nLikKK1NFTEVDVCAqIEZST00gdDUgT1JE RVIgQlkgYyBBU0MsIGEgQVNDOworCisKIC0tIGNsZWFudXAKIFJFU0VUIHNlYXJjaF9wYXRo OwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgVE8gd2FybmluZzsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAppbmRleCBkZWE4OTQyYzcxZi4uNjNm ZDg5Nzk2OWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJs ZV9saWtlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlr ZS5zcWwKQEAgLTUxLDcgKzUxLDcgQEAgQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9pZF8zIChM SUtFIHRlc3RfbGlrZV9pZF8xIElOQ0xVRElORyBJREVOVElUWSk7CiBTRUxFQ1QgKiBGUk9N IHRlc3RfbGlrZV9pZF8zOyAgLS0gaWRlbnRpdHkgd2FzIGNvcGllZCBhbmQgYXBwbGllZAog RFJPUCBUQUJMRSB0ZXN0X2xpa2VfaWRfMSwgdGVzdF9saWtlX2lkXzIsIHRlc3RfbGlrZV9p ZF8zOwogCi1DUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGludCwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgdGVzdF9s aWtlX2dlbl8xIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNU T1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwpOwogXGQg dGVzdF9saWtlX2dlbl8xCiBJTlNFUlQgSU5UTyB0ZXN0X2xpa2VfZ2VuXzEgKGEpIFZBTFVF UyAoMSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9nZW5fMTsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9mYXN0X2RlZmF1bHQuc3FsCmluZGV4IGRjOWRmNzhhMzVkLi42ZTdmMzdiMTdiMiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3FsCkBAIC02Niw2ICs2Niwx NyBAQCBDUkVBVEUgRVZFTlQgVFJJR0dFUiBoYXNfdm9sYXRpbGVfcmV3cml0ZQogQUxURVIg VEFCTEUgaGFzX3ZvbGF0aWxlIEFERCBjb2wzIHRpbWVzdGFtcHR6IERFRkFVTFQgY3VycmVu dF90aW1lc3RhbXA7CiBBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUREIGNvbDQgaW50IERF RkFVTFQgKHJhbmRvbSgpICogMTAwMDApOjppbnQ7CiAKKy0tIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbnMgZG9uJ3QgbmVlZCBhIHJld3JpdGUKK0FMVEVSIFRBQkxFIGhhc192b2xhdGls ZSBBREQgY29sNSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQ6OmludCArIGNv bDIpIFZJUlRVQUw7CitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUxURVIgQ09MVU1OIGNv bDUgVFlQRSBmbG9hdDg7CitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUxURVIgQ09MVU1O IGNvbDUgVFlQRSBudW1lcmljOworQUxURVIgVEFCTEUgaGFzX3ZvbGF0aWxlIEFMVEVSIENP TFVNTiBjb2w1IFRZUEUgbnVtZXJpYzsKKy0tIGhlcmUsIHdlIGRvIG5lZWQgYSByZXdyaXRl CitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUxURVIgQ09MVU1OIGNvbDEgU0VUIERBVEEg VFlQRSBmbG9hdDgsCisgIEFERCBDT0xVTU4gY29sNiBmbG9hdDggR0VORVJBVEVEIEFMV0FZ UyBBUyAoY29sMSAqIDQpIFZJUlRVQUw7CistLSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMg bmVlZCBhIHJld3JpdGUKK0FMVEVSIFRBQkxFIGhhc192b2xhdGlsZSBBREQgY29sNyBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoNTUpIHN0b3JlZDsKKwogCiAKIC0tIFRlc3QgYSBsYXJn ZSBzYW1wbGUgb2YgZGlmZmVyZW50IGRhdGF0eXBlcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9nZW5lcmF0ZWRfc3RvcmVkLnNxbAppbmRleCBjMThlMGUxZjY1NS4uMmFlYWM0NTk0NDUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsCkBAIC0x LDUgKzEsNCBAQAotLS0gc2FuaXR5IGNoZWNrIG9mIHN5c3RlbSBjYXRhbG9nCi1TRUxFQ1Qg YXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVS RSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnKTsKKy0tIGtlZXAgdGhlc2UgdGVzdHMg YWxpZ25lZCB3aXRoIGdlbmVyYXRlZF92aXJ0dWFsLnNxbAogCiAKIENSRUFURSBTQ0hFTUEg Z2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKQEAgLTYwLDYgKzU5LDggQEAgQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEJZIERF RkFVTFQgQVMgKGEgKgogSU5TRVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAoMywgREVGQVVMVCks ICg0LCBERUZBVUxUKTsgIC0tIG9rCiAKIFNFTEVDVCAqIEZST00gZ3Rlc3QxIE9SREVSIEJZ IGE7CitTRUxFQ1QgZ3Rlc3QxIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7ICAtLSB3aG9sZS1y b3cgcmVmZXJlbmNlCitTRUxFQ1QgYSwgKFNFTEVDVCBndGVzdDEuYikgRlJPTSBndGVzdDEg T1JERVIgQlkgYTsgIC0tIHN1YmxpbmsKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID49 IDM7CiAKIFVQREFURSBndGVzdDEgU0VUIGIgPSBERUZBVUxUIFdIRVJFIGEgPSAxOwpAQCAt MTAzLDYgKzEwNCwxNCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKIFNFTEVDVCAqIEZST00g Z3Rlc3RtIE9SREVSIEJZIGlkOwogRFJPUCBUQUJMRSBndGVzdG07CiAKK0NSRUFURSBUQUJM RSBndGVzdG0gKAorICBhIGludCBQUklNQVJZIEtFWSwKKyAgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorKTsKK0lOU0VSVCBJTlRPIGd0ZXN0bSAoYSkgU0VM RUNUIGcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIGc7CitNRVJHRSBJTlRPIGd0ZXN0 bSB0IFVTSU5HIGd0ZXN0bSBBUyBzIE9OIDIgKiB0LmEgPSBzLmIgV0hFTiBNQVRDSEVEIFRI RU4gREVMRVRFIFJFVFVSTklORyAqOworRFJPUCBUQUJMRSBndGVzdG07CisKIC0tIHZpZXdz CiBDUkVBVEUgVklFVyBndGVzdDF2IEFTIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwogU0VMRUNU ICogRlJPTSBndGVzdDF2OwpAQCAtMTQyLDYgKzE1MSw3IEBAIENSRUFURSBUQUJMRSBndGVz dF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgU1RPUkVECiAtLSB0ZXN0IGluaGVyaXRhbmNlIG1pc21hdGNoZXMgYmV0d2VlbiBwYXJl bnQgYW5kIGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgREVGQVVM VCAxMCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgogQ1JFQVRFIFRBQkxFIGd0ZXN0 eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpIElOSEVSSVRT IChndGVzdDEpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFZJUlRVQUwpIElOSEVSSVRTIChndGVz dDEpOyAgLS0gZXJyb3IKIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAt LSBvaywgb3ZlcnJpZGVzIHBhcmVudAogXGQrIGd0ZXN0eAogCkBAIC0yNzgsMTMgKzI4OCwx NCBAQCBDUkVBVEUgRlVOQ1RJT04gZ2YxKGEgaW50KSBSRVRVUk5TIGludCBBUyAkJCBTRUxF Q1QgYSAqIDMgJCQgSU1NVVRBQkxFIExBTkdVQUdFCiAKIENSRUFURSBUQUJMRSBndGVzdDEy cyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChnZjEoYikpIFNUT1JFRCk7CiBJTlNFUlQgSU5UTyBndGVzdDEycyBWQUxVRVMgKDEsIDEw KSwgKDIsIDIwKTsKLUdSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMnMgVE8gcmVncmVz c191c2VyMTE7CitHUkFOVCBTRUxFQ1QgKGEsIGMpLCBJTlNFUlQgT04gZ3Rlc3QxMnMgVE8g cmVncmVzc191c2VyMTE7CiAKIFNFVCBST0xFIHJlZ3Jlc3NfdXNlcjExOwogU0VMRUNUIGEs IGIgRlJPTSBndGVzdDExczsgIC0tIG5vdCBhbGxvd2VkCiBTRUxFQ1QgYSwgYyBGUk9NIGd0 ZXN0MTFzOyAgLS0gYWxsb3dlZAogU0VMRUNUIGdmMSgxMCk7ICAtLSBub3QgYWxsb3dlZAot U0VMRUNUIGEsIGMgRlJPTSBndGVzdDEyczsgIC0tIGFsbG93ZWQKK0lOU0VSVCBJTlRPIGd0 ZXN0MTJzIFZBTFVFUyAoMywgMzApLCAoNCwgNDApOyAgLS0gY3VycmVudGx5IG5vdCBhbGxv d2VkIGJlY2F1c2Ugb2YgZnVuY3Rpb24gcGVybWlzc2lvbnMsIHNob3VsZCBhcmd1YWJseSBi ZSBhbGxvd2VkCitTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTJzOyAgLS0gYWxsb3dlZCAoZG9l cyBub3QgYWN0dWFsbHkgaW52b2tlIHRoZSBmdW5jdGlvbikKIFJFU0VUIFJPTEU7CiAKIERS T1AgRlVOQ1RJT04gZ2YxKGludCk7ICAtLSBmYWlsCkBAIC0zOTAsNiArNDAxLDEwIEBAIENS RUFURSBET01BSU4gZ3Rlc3Rkb21haW4xIEFTIGludCBDSEVDSyAoVkFMVUUgPCAxMCk7CiBD UkVBVEUgVEFCTEUgZ3Rlc3QyNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4x IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwogSU5TRVJUIElOVE8gZ3Rl c3QyNCAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDI0IChhKSBW QUxVRVMgKDYpOyAgLS0gZXJyb3IKK0NSRUFURSBUWVBFIGd0ZXN0ZG9tYWluMXJhbmdlIEFT IHJhbmdlIChzdWJ0eXBlID0gZ3Rlc3Rkb21haW4xKTsKK0NSRUFURSBUQUJMRSBndGVzdDI0 ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xcmFuZ2UgR0VORVJBVEVEIEFM V0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2UoYSwgYSArIDUpKSBTVE9SRUQpOworSU5TRVJU IElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNCk7ICAtLSBvaworSU5TRVJUIElOVE8gZ3Rl c3QyNHIgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgogCiAtLSB0eXBlZCB0YWJsZXMgKGN1 cnJlbnRseSBub3Qgc3VwcG9ydGVkKQogQ1JFQVRFIFRZUEUgZ3Rlc3RfdHlwZSBBUyAoZjEg aW50ZWdlciwgZjIgdGV4dCwgZjMgYmlnaW50KTsKQEAgLTQxNyw2ICs0MzIsOSBAQCBDUkVB VEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAogQ1JF QVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKICAg ICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSAgLS0gZXJy b3IKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScp OworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50 ICgKKyAgICBmMyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwgIC0tIGVy cm9yCispIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEn KTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJp Z2ludCwgZjMgYmlnaW50KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFS VElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8g KCcyMDE2LTEwLTAxJyk7IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKQEAg LTQyNiw2ICs0NDQsOSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5P VCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBERUZBVUxUIDQyKTsKIENSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFy ZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIw MTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rl c3RfY2hpbGQzOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAzMykg VklSVFVBTCk7CitBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBn dGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0x MC0wMScpOyAtLSBlcnJvcgorRFJPUCBUQUJMRSBndGVzdF9jaGlsZDM7CiBDUkVBVEUgVEFC TEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2lu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSBTVE9SRUQpOwogQUxURVIgVEFCTEUg Z3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMg RlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKIFxkIGd0ZXN0X2NoaWxk CkBAIC01NDksNiArNTcwLDE4IEBAIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJ VFMgKGd0ZXN0MzApOwogXGQgZ3Rlc3QzMF8xCiBBTFRFUiBUQUJMRSBndGVzdDMwXzEgQUxU RVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKIAorLS0gY29tcG9zaXRl IHR5cGUgZGVwZW5kZW5jaWVzCitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8xIChhIGludCwgYiB0 ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCdoZWxsbycpIFNUT1JFRCwgYyB0ZXh0KTsKK0NS RUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0ZXN0MzFfMSk7CitBTFRFUiBUQUJM RSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKK0RS T1AgVEFCTEUgZ3Rlc3QzMV8xLCBndGVzdDMxXzI7CisKKy0tIENoZWNrIGl0IGZvciBhIHBh cnRpdGlvbmVkIHRhYmxlLCB0b28KK0NSRUFURSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBi IHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgU1RPUkVELCBjIHRleHQpIFBB UlRJVElPTiBCWSBMSVNUIChhKTsKK0NSRUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5 IGd0ZXN0MzFfMSk7CitBTFRFUiBUQUJMRSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQ RSB2YXJjaGFyOyAgLS0gZmFpbHMKK0RST1AgVEFCTEUgZ3Rlc3QzMV8xLCBndGVzdDMxXzI7 CisKIC0tIHRyaWdnZXJzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNiAoCiAgICAgYSBpbnQgUFJJ TUFSWSBLRVksCkBAIC02NDYsMjAgKzY3OSwyMSBAQCBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3Rf dHJpZ2dlcl9mdW5jNCgpIFJFVFVSTlMgdHJpZ2dlcgogRU5EOwogJCQ7CiAKLUNSRUFURSBU UklHR0VSIGd0ZXN0MTJfMDEgQkVGT1JFIFVQREFURSBPTiBndGVzdDI2CitDUkVBVEUgVFJJ R0dFUiBndGVzdDEyXzAxIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9OIGd0ZXN0MjYKICAg Rk9SIEVBQ0ggUk9XCiAgIEVYRUNVVEUgUFJPQ0VEVVJFIGd0ZXN0X3RyaWdnZXJfZnVuYygp OwogCi1DUkVBVEUgVFJJR0dFUiBndGVzdDEyXzAyIEJFRk9SRSBVUERBVEUgT04gZ3Rlc3Qy NgorQ1JFQVRFIFRSSUdHRVIgZ3Rlc3QxMl8wMiBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBP TiBndGVzdDI2CiAgIEZPUiBFQUNIIFJPVwogICBFWEVDVVRFIFBST0NFRFVSRSBndGVzdF90 cmlnZ2VyX2Z1bmM0KCk7CiAKLUNSRUFURSBUUklHR0VSIGd0ZXN0MTJfMDMgQkVGT1JFIFVQ REFURSBPTiBndGVzdDI2CitDUkVBVEUgVFJJR0dFUiBndGVzdDEyXzAzIEJFRk9SRSBJTlNF UlQgT1IgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRk9SIEVBQ0ggUk9XCiAgIEVYRUNVVEUgUFJP Q0VEVVJFIGd0ZXN0X3RyaWdnZXJfZnVuYygpOwogCiBJTlNFUlQgSU5UTyBndGVzdDI2IChh KSBWQUxVRVMgKDEpOwotVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBhID0gMTsK K1NFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOworVVBEQVRFIGd0ZXN0MjYgU0VU IGEgPSAxMSBXSEVSRSBhID0gMTA7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkg YTsKIAogLS0gTElLRSBJTkNMVURJTkcgR0VORVJBVEVEIGFuZCBkcm9wcGVkIGNvbHVtbiBo YW5kbGluZwpAQCAtNjc1LDMgKzcwOSw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI4YSAoCiBD UkVBVEUgVEFCTEUgZ3Rlc3QyOGIgKExJS0UgZ3Rlc3QyOGEgSU5DTFVESU5HIEdFTkVSQVRF RCk7CiAKIFxkIGd0ZXN0MjgqCisKKworLS0gc2FuaXR5IGNoZWNrIG9mIHN5c3RlbSBjYXRh bG9nCitTRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0 dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnLCAndicpOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwKc2ltaWxhcml0eSBp bmRleCA2NyUKY29weSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9y ZWQuc3FsCmNvcHkgdG8gc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwu c3FsCmluZGV4IGMxOGUwZTFmNjU1Li5iNWFlMjBjYWE3YyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCkBAIC0xLDU1ICsxLDU0IEBACi0tLSBz YW5pdHkgY2hlY2sgb2Ygc3lzdGVtIGNhdGFsb2cKLVNFTEVDVCBhdHRyZWxpZCwgYXR0bmFt ZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRlZCBO T1QgSU4gKCcnLCAncycpOworLS0ga2VlcCB0aGVzZSB0ZXN0cyBhbGlnbmVkIHdpdGggZ2Vu ZXJhdGVkX3N0b3JlZC5zcWwKIAogCi1DUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRf dGVzdHM7Ci1HUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cyBU TyBQVUJMSUM7Ci1TRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwor Q1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0czsKK0dSQU5UIFVTQUdFIE9O IFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cyBUTyBQVUJMSUM7CitTRVQgc2VhcmNo X3BhdGggPSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0czsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0 MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBT VE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1 KSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiAKLVNFTEVDVCB0 YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxlLCBp c19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhwcmVzc2lvbiBGUk9NIGluZm9ybWF0aW9uX3Nj aGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzJyBPUkRFUiBCWSAxLCAyOworU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBj b2x1bW5fZGVmYXVsdCwgaXNfbnVsbGFibGUsIGlzX2dlbmVyYXRlZCwgZ2VuZXJhdGlvbl9l eHByZXNzaW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVf c2NoZW1hID0gJ2dlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzJyBPUkRFUiBCWSAxLCAyOwogCi1T RUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9jb2x1bW4gRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBXSEVSRSB0YWJsZV9zY2hl bWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKK1NFTEVD VCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9y bWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9 ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKIAogXGQgZ3Rl c3QxCiAKIC0tIGR1cGxpY2F0ZSBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJf MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykg VklSVFVBTCk7CiAKIC0tIHJlZmVyZW5jZXMgdG8gb3RoZXIgZ2VuZXJhdGVkIGNvbHVtbnMs IGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZXMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikg U1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9l cnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChi ICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJiIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAzKSBWSVJUVUFMKTsKIC0tIGEgd2hvbGUt cm93IHZhciBpcyBhIHNlbGYtcmVmZXJlbmNlIG9uIHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0 aGF0IHRvbwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYyAoYSBpbnQgUFJJTUFSWSBLRVks Ci0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8y YykpIFNUT1JFRCk7CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxz KGd0ZXN0X2Vycl8yYykpIFZJUlRVQUwpOwogCiAtLSBpbnZhbGlkIHJlZmVyZW5jZQotQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYyAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJy XzMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICog MikgVklSVFVBTCk7CiAKIC0tIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBtdXN0IGJlIGltbXV0 YWJsZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQUklNQVJZIEtFWSwgYiBk b3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJhbmRvbSgpKSBTVE9SRUQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQUklNQVJZIEtFWSwgYiBkb3Vi bGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJhbmRvbSgpKSBWSVJUVUFMKTsK IC0tIC4uLiBidXQgYmUgc3VyZSB0aGF0IHRoZSBpbW11dGFiaWxpdHkgdGVzdCBpcyBhY2N1 cmF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxX QVlTIEFTIChhIHx8ICcgc2VjJykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIgKGEg aW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNlYycpIFZJUlRVQUwp OwogRFJPUCBUQUJMRSBndGVzdDI7CiAKIC0tIGNhbm5vdCBoYXZlIGRlZmF1bHQvaWRlbnRp dHkgYW5kIGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTCk7CiAKIC0tIHJlZmVyZW5jZSB0byBzeXN0ZW0gY29s dW1uIG5vdCBhbGxvd2VkIGluIGdlbmVyYXRlZCBjb2x1bW4KIC0tIChleGNlcHQgdGFibGVv aWQsIHdoaWNoIHdlIHRlc3QgYmVsb3cpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChh IGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4g MzcpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQUklNQVJZ IEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIFZJUlRVQUwp OwogCiAtLSB2YXJpb3VzIHByb2hpYml0ZWQgY29uc3RydWN0cwotQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGF2ZyhhKSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkg T1ZFUiAoT1JERVIgQlkgYSkpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdj IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKFNFTEVD VCBhKSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMoMSwg YSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBWSVJUVUFMKTsKK0NS RUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgYSkpIFZJUlRV QUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIFZJUlRVQUwpOworQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkgVklSVFVBTCk7CiAKIC0tIEdF TkVSQVRFRCBCWSBERUZBVUxUIG5vdCBhbGxvd2VkCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJy XzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyAo YSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzggKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyAoYSAqIDIpIFZJUlRVQUwp OwogCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgxKTsKIElOU0VSVCBJTlRPIGd0ZXN0 MSBWQUxVRVMgKDIsIERFRkFVTFQpOyAgLS0gb2sKQEAgLTYwLDYgKzU5LDggQEAgQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEJZIERFRkFVTFQgQVMgKGEgKgogSU5TRVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAoMywgREVG QVVMVCksICg0LCBERUZBVUxUKTsgIC0tIG9rCiAKIFNFTEVDVCAqIEZST00gZ3Rlc3QxIE9S REVSIEJZIGE7CitTRUxFQ1QgZ3Rlc3QxIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7ICAtLSB3 aG9sZS1yb3cgcmVmZXJlbmNlCitTRUxFQ1QgYSwgKFNFTEVDVCBndGVzdDEuYikgRlJPTSBn dGVzdDEgT1JERVIgQlkgYTsgIC0tIHN1YmxpbmsKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVS RSBhID49IDM7CiAKIFVQREFURSBndGVzdDEgU0VUIGIgPSBERUZBVUxUIFdIRVJFIGEgPSAx OwpAQCAtNzAsNyArNzEsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzggKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyAoYSAqCiBTRUxFQ1Qg YSwgYiwgYiAqIDIgQVMgYjIgRlJPTSBndGVzdDEgT1JERVIgQlkgYTsKIFNFTEVDVCBhLCBi IEZST00gZ3Rlc3QxIFdIRVJFIGIgPSA0IE9SREVSIEJZIGE7CiAKLS0tIHRlc3QgdGhhdCBv dmVyZmxvdyBlcnJvciBoYXBwZW5zIG9uIHdyaXRlCistLSB0ZXN0IHRoYXQgb3ZlcmZsb3cg ZXJyb3IgaGFwcGVucyBvbiByZWFkCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgyMDAw MDAwMDAwKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwogREVMRVRFIEZST00gZ3Rlc3QxIFdI RVJFIGEgPSAyMDAwMDAwMDAwOwpAQCAtOTMsOCArOTQsOCBAQCBDUkVBVEUgVEFCTEUgZ3Rl c3RtICgKICAgaWQgaW50IFBSSU1BUlkgS0VZLAogICBmMSBpbnQsCiAgIGYyIGludCwKLSAg ZjMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxICogMikgU1RPUkVELAotICBmNCBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQKKyAgZjMgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGYxICogMikgVklSVFVBTCwKKyAgZjQgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0bSBWQUxVRVMg KDEsIDUsIDEwMCk7CiBNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIChWQUxVRVMgKDEsIDEw KSwgKDIsIDIwKSkgdihpZCwgZjEpIE9OIHQuaWQgPSB2LmlkCkBAIC0xMDMsNiArMTA0LDE0 IEBAIENSRUFURSBUQUJMRSBndGVzdG0gKAogU0VMRUNUICogRlJPTSBndGVzdG0gT1JERVIg QlkgaWQ7CiBEUk9QIFRBQkxFIGd0ZXN0bTsKIAorQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCisg IGEgaW50IFBSSU1BUlkgS0VZLAorICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTAorKTsKK0lOU0VSVCBJTlRPIGd0ZXN0bSAoYSkgU0VMRUNUIGcgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTApIGc7CitNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIGd0 ZXN0bSBBUyBzIE9OIDIgKiB0LmEgPSBzLmIgV0hFTiBNQVRDSEVEIFRIRU4gREVMRVRFIFJF VFVSTklORyAqOworRFJPUCBUQUJMRSBndGVzdG07CisKIC0tIHZpZXdzCiBDUkVBVEUgVklF VyBndGVzdDF2IEFTIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwogU0VMRUNUICogRlJPTSBndGVz dDF2OwpAQCAtMTM0LDIyICsxNDMsMjYgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MV8xICgpIElO SEVSSVRTIChndGVzdDEpOwogCiAtLSBjYW4ndCBoYXZlIGdlbmVyYXRlZCBjb2x1bW4gdGhh dCBpcyBhIGNoaWxkIG9mIG5vcm1hbCBjb2x1bW4KIENSRUFURSBUQUJMRSBndGVzdF9ub3Jt YWwgKGEgaW50LCBiIGludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChh IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCkgSU5IRVJJ VFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1h bF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3Rfbm9y bWFsKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogQUxURVIg VEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIElOSEVSSVQgZ3Rlc3Rfbm9ybWFsOyAgLS0gZXJy b3IKIERST1AgVEFCTEUgZ3Rlc3Rfbm9ybWFsLCBndGVzdF9ub3JtYWxfY2hpbGQ7CiAKIC0t IHRlc3QgaW5oZXJpdGFuY2UgbWlzbWF0Y2hlcyBiZXR3ZWVuIHBhcmVudCBhbmQgY2hpbGQK IENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBERUZBVUxUIDEwKSBJTkhFUklU UyAoZ3Rlc3QxKTsgIC0tIGVycm9yCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAt LSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBv dmVycmlkZXMgcGFyZW50CitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdDEpOyAg LS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMjIpIFZJUlRVQUwpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gb2ss IG92ZXJyaWRlcyBwYXJlbnQKIFxkKyBndGVzdHgKK0lOU0VSVCBJTlRPIGd0ZXN0eCAoYSwg eCkgVkFMVUVTICgxMSwgMjIpOworU0VMRUNUICogRlJPTSBndGVzdDE7CitTRUxFQ1QgKiBG Uk9NIGd0ZXN0eDsKIAogQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMSAoYSBpbnQgTk9UIE5VTEws IGIgaW50KTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfMSBJTkhFUklUIGd0ZXN0MTsgIC0tIGVy cm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4eF8zIChhIGludCBOT1QgTlVMTCwgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R4 eF8zIChhIGludCBOT1QgTlVMTCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF8zIElOSEVSSVQgZ3Rlc3QxOyAgLS0g b2sKLUNSRUFURSBUQUJMRSBndGVzdHh4XzQgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQsIGEgaW50IE5PVCBOVUxMKTsKK0NSRUFURSBUQUJMRSBndGVzdHh4 XzQgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMLCBhIGludCBO T1QgTlVMTCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzQgSU5IRVJJVCBndGVzdDE7ICAtLSBv awogCiAtLSB0ZXN0IG11bHRpcGxlIGluaGVyaXRhbmNlIG1pc21hdGNoZXMKQEAgLTE2MSwy OCArMTc0LDI4IEBAIENSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBiIGludCk7CiBDUkVB VEUgVEFCTEUgZ3Rlc3QxX3kgKCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIGVy cm9yCiBEUk9QIFRBQkxFIGd0ZXN0eTsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgU1RPUkVEKTsKK0NSRUFURSBU QUJMRSBndGVzdHkgKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIp IFZJUlRVQUwpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEs IGd0ZXN0eSk7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0MV95IChiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTICh4ICsgMSkgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVz dHkpOyAgLS0gb2sKK0NSRUFURSBUQUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoeCArIDEpIFZJUlRVQUwpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAt LSBvawogXGQgZ3Rlc3QxX3kKIAogLS0gdGVzdCBjb3JyZWN0IGhhbmRsaW5nIG9mIEdFTkVS QVRFRCBjb2x1bW4gdGhhdCdzIG9ubHkgaW4gY2hpbGQKIENSRUFURSBUQUJMRSBndGVzdHAg KGYxIGludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RjIChmMiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjErMSkgU1RPUkVEKSBJTkhFUklUUyhndGVzdHApOworQ1JFQVRFIFRBQkxFIGd0 ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEpIFZJUlRVQUwpIElOSEVS SVRTKGd0ZXN0cCk7CiBJTlNFUlQgSU5UTyBndGVzdGMgdmFsdWVzKDQyKTsKIFRBQkxFIGd0 ZXN0YzsKIFVQREFURSBndGVzdHAgU0VUIGYxID0gZjEgKiAxMDsKIFRBQkxFIGd0ZXN0YzsK IERST1AgVEFCTEUgZ3Rlc3RwIENBU0NBREU7CiAKLS0tIHRlc3Qgc3RvcmVkIHVwZGF0ZQot Q1JFQVRFIFRBQkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAzKSBTVE9SRUQpOworLS0gdGVzdCB1cGRhdGUgWFhYCitDUkVBVEUgVEFCTEUgZ3Rl c3QzIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwp OwogSU5TRVJUIElOVE8gZ3Rlc3QzIChhKSBWQUxVRVMgKDEpLCAoMiksICgzKSwgKE5VTEwp OwogU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsKIFVQREFURSBndGVzdDMgU0VU IGEgPSAyMiBXSEVSRSBhID0gMjsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7 CiAKLUNSRUFURSBUQUJMRSBndGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxX QVlTIEFTIChhIHx8ICcrJyB8fCBhKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0M2Eg KGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJysnIHx8IGEpIFZJ UlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QzYSAoYSkgVkFMVUVTICgnYScpLCAoJ2InKSwg KCdjJyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzYSBPUkRFUiBCWSBhOwogVVBE QVRFIGd0ZXN0M2EgU0VUIGEgPSAnYmInIFdIRVJFIGEgPSAnYic7CkBAIC0yMjIsMTIgKzIz NSwxMiBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRleHQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgU1RPUkVEKQogU0VMRUNUICogRlJPTSBndGVz dDMgT1JERVIgQlkgYTsKIAogLS0gbnVsbCB2YWx1ZXMKLUNSRUFURSBUQUJMRSBndGVzdDIg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChOVUxMKSBT VE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKE5VTEwpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rl c3QyIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjsKIAogLS0gc2ltcGxlIGNv bHVtbiByZWZlcmVuY2UgZm9yIHZhcmxlbmEgdHlwZXMKLUNSRUFURSBUQUJMRSBndGVzdF92 YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFTIChhKSBT VE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJj aGFyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rl c3RfdmFybGVuYSAoYSkgVkFMVUVTKCcwMTIzNDU2Nzg5MDEyMzQ1Njc4OScpOwogSU5TRVJU IElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFMVUVTKE5VTEwpOwogU0VMRUNUICogRlJPTSBn dGVzdF92YXJsZW5hIE9SREVSIEJZIGE7CkBAIC0yMzcsNyArMjUwLDcgQEAgQ1JFQVRFIFRB QkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEpIFNUT1JFRCkKIENSRUFURSBUWVBFIGRvdWJsZV9pbnQgYXMgKGEgaW50LCBi IGludCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3Q0ICgKICAgICBhIGludCwKLSAgICBiIGRvdWJs ZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKiAyLCBhICogMykpIFNUT1JFRAorICAg IGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAqIDIsIGEgKiAzKSkgVklS VFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0NCBWQUxVRVMgKDEpLCAoNik7CiBTRUxFQ1Qg KiBGUk9NIGd0ZXN0NDsKQEAgLTI0OCwxNjggKzI2MSwxNzkgQEAgQ1JFQVRFIFRBQkxFIGd0 ZXN0NCAoCiAtLSB1c2luZyB0YWJsZW9pZCBpcyBhbGxvd2VkCiBDUkVBVEUgVEFCTEUgZ3Rl c3RfdGFibGVvaWQgKAogICBhIGludCBQUklNQVJZIEtFWSwKLSAgYiBib29sIEdFTkVSQVRF RCBBTFdBWVMgQVMgKHRhYmxlb2lkID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3MpIFNU T1JFRAorICBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rlc3Rf dGFibGVvaWQnOjpyZWdjbGFzcykgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3Rh Ymxlb2lkIFZBTFVFUyAoMSksICgyKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3RhYmxlb2lkIEFE RCBDT0xVTU4KLSAgYyByZWdjbGFzcyBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCkg U1RPUkVEOworICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkKSBW SVJUVUFMOwogU0VMRUNUICogRlJPTSBndGVzdF90YWJsZW9pZDsKIAogLS0gZHJvcCBjb2x1 bW4gYmVoYXZpb3IKLUNSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0MTAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3Qx MCBEUk9QIENPTFVNTiBiOyAgLS0gZmFpbHMKIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBD T0xVTU4gYiBDQVNDQURFOyAgLS0gZHJvcHMgYyB0b28KIAogXGQgZ3Rlc3QxMAogCi1DUkVB VEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDEwYSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTBhIERST1AgQ09MVU1OIGI7CiBJTlNFUlQgSU5U TyBndGVzdDEwYSAoYSkgVkFMVUVTICgxKTsKIAogLS0gcHJpdmlsZWdlcwogQ1JFQVRFIFVT RVIgcmVncmVzc191c2VyMTE7CiAKLUNSRUFURSBUQUJMRSBndGVzdDExcyAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RP UkVEKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MTFzIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwot R1JBTlQgU0VMRUNUIChhLCBjKSBPTiBndGVzdDExcyBUTyByZWdyZXNzX3VzZXIxMTsKK0NS RUFURSBUQUJMRSBndGVzdDExdiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CitJTlNFUlQgSU5UTyBndGVz dDExdiBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKK0dSQU5UIFNFTEVDVCAoYSwgYykgT04g Z3Rlc3QxMXYgVE8gcmVncmVzc191c2VyMTE7CiAKIENSRUFURSBGVU5DVElPTiBnZjEoYSBp bnQpIFJFVFVSTlMgaW50IEFTICQkIFNFTEVDVCBhICogMyAkJCBJTU1VVEFCTEUgTEFOR1VB R0UgU1FMOwogUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBnZjEoaW50KSBGUk9NIFBVQkxJQzsK IAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTJzIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgU1RPUkVEKTsKLUlOU0VSVCBJTlRP IGd0ZXN0MTJzIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwotR1JBTlQgU0VMRUNUIChhLCBj KSBPTiBndGVzdDEycyBUTyByZWdyZXNzX3VzZXIxMTsKK0NSRUFURSBUQUJMRSBndGVzdDEy diAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChnZjEoYikpIFZJUlRVQUwpOworSU5TRVJUIElOVE8gZ3Rlc3QxMnYgVkFMVUVTICgxLCAx MCksICgyLCAyMCk7CitHUkFOVCBTRUxFQ1QgKGEsIGMpLCBJTlNFUlQgT04gZ3Rlc3QxMnYg VE8gcmVncmVzc191c2VyMTE7CiAKIFNFVCBST0xFIHJlZ3Jlc3NfdXNlcjExOwotU0VMRUNU IGEsIGIgRlJPTSBndGVzdDExczsgIC0tIG5vdCBhbGxvd2VkCi1TRUxFQ1QgYSwgYyBGUk9N IGd0ZXN0MTFzOyAgLS0gYWxsb3dlZAorU0VMRUNUIGEsIGIgRlJPTSBndGVzdDExdjsgIC0t IG5vdCBhbGxvd2VkCitTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTF2OyAgLS0gYWxsb3dlZAog U0VMRUNUIGdmMSgxMCk7ICAtLSBub3QgYWxsb3dlZAotU0VMRUNUIGEsIGMgRlJPTSBndGVz dDEyczsgIC0tIGFsbG93ZWQKK0lOU0VSVCBJTlRPIGd0ZXN0MTJ2IFZBTFVFUyAoMywgMzAp LCAoNCwgNDApOyAgLS0gYWxsb3dlZCAoZG9lcyBub3QgYWN0dWFsbHkgaW52b2tlIHRoZSBm dW5jdGlvbikKK1NFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnY7ICAtLSBjdXJyZW50bHkgbm90 IGFsbG93ZWQgYmVjYXVzZSBvZiBmdW5jdGlvbiBwZXJtaXNzaW9ucywgc2hvdWxkIGFyZ3Vh Ymx5IGJlIGFsbG93ZWQKIFJFU0VUIFJPTEU7CiAKIERST1AgRlVOQ1RJT04gZ2YxKGludCk7 ICAtLSBmYWlsCi1EUk9QIFRBQkxFIGd0ZXN0MTFzLCBndGVzdDEyczsKK0RST1AgVEFCTEUg Z3Rlc3QxMXYsIGd0ZXN0MTJ2OwogRFJPUCBGVU5DVElPTiBnZjEoaW50KTsKIERST1AgVVNF UiByZWdyZXNzX3VzZXIxMTsKIAogLS0gY2hlY2sgY29uc3RyYWludHMKLUNSRUFURSBUQUJM RSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRCBDSEVDSyAoYiA8IDUwKSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3Qy MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBWSVJUVUFMIENIRUNLIChiIDwgNTApKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZB TFVFUyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMzAp OyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogCi1BTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVS IENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0tIHZpb2xhdGVzIGNv bnN0cmFpbnQKLUFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJF U1NJT04gQVMgKGEgKiAzKTsgIC0tIG9rCitBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENP TFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0tIHZpb2xhdGVzIGNvbnN0 cmFpbnQgKGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkKQorQUxURVIgVEFCTEUgZ3Rlc3QyMCBB TFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sgKGN1cnJl bnRseSBub3Qgc3VwcG9ydGVkKQogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsK K0NSRUFURSBUQUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBh IChhKSBWQUxVRVMgKDEwKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBhIChhKSBWQUxVRVMgKDMw KTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBhIEFERCBDSEVDSyAoYiA8IDUwKTsgIC0tIGZhaWxz IG9uIGV4aXN0aW5nIHJvdwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMGIgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NS RUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBiIChh KSBWQUxVRVMgKDEwKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBiIChhKSBWQUxVRVMgKDMwKTsK IEFMVEVSIFRBQkxFIGd0ZXN0MjBiIEFERCBDT05TVFJBSU5UIGNoayBDSEVDSyAoYiA8IDUw KSBOT1QgVkFMSUQ7CiBBTFRFUiBUQUJMRSBndGVzdDIwYiBWQUxJREFURSBDT05TVFJBSU5U IGNoazsgIC0tIGZhaWxzIG9uIGV4aXN0aW5nIHJvdwogCi0tLSBub3QtbnVsbCBjb25zdHJh aW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjFhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBTVE9SRUQgTk9UIE5VTEwpOwot SU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMSk7ICAtLSBvawotSU5TRVJUIElO VE8gZ3Rlc3QyMWEgKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50Cist LSBub3QtbnVsbCBjb25zdHJhaW50cyAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCitDUkVB VEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwgTk9UIE5VTEwpOworLS1JTlNFUlQg SU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0 ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogCi1DUkVB VEUgVEFCTEUgZ3Rlc3QyMWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFNUT1JFRCk7CistLSBhbHNvIGNoZWNrIHdpdGgg dGFibGUgY29uc3RyYWludCBzeW50YXgKK0NSRUFURSBUQUJMRSBndGVzdDIxYXggKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkp IFZJUlRVQUwsIENPTlNUUkFJTlQgY2MgTk9UIE5VTEwgYik7ICAtLSBlcnJvcgorQ1JFQVRF IFRBQkxFIGd0ZXN0MjFheCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCk7CitBTFRFUiBUQUJMRSBndGVzdDIx YXggQUREIENPTlNUUkFJTlQgY2MgTk9UIE5VTEwgYjsgIC0tIGVycm9yCitEUk9QIFRBQkxF IGd0ZXN0MjFheDsKKworQ1JFQVRFIFRBQkxFIGd0ZXN0MjFiIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBWSVJUVUFMKTsK IEFMVEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIFNFVCBOT1QgTlVMTDsKLUlO U0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VSVCBJTlRP IGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAorLS1J TlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCistLUlOU0VSVCBJ TlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAog QUxURVIgVEFCTEUgZ3Rlc3QyMWIgQUxURVIgQ09MVU1OIGIgRFJPUCBOT1QgTlVMTDsKLUlO U0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gb2sgbm93CistLUlOU0VS VCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gb2sgbm93CiAKIC0tIGluZGV4 IGNvbnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgU1RPUkVEIFVOSVFVRSk7Ci1J TlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDIpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmEg VkFMVUVTICgzKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoNCk7Ci1DUkVBVEUg VEFCTEUgZ3Rlc3QyMmIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8g MikgU1RPUkVELCBQUklNQVJZIEtFWSAoYSwgYikpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmIg VkFMVUVTICgyKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CitDUkVBVEUg VEFCTEUgZ3Rlc3QyMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhIC8gMikgVklSVFVBTCBVTklRVUUpOworLS1JTlNFUlQgSU5UTyBndGVzdDIy YSBWQUxVRVMgKDIpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDMpOworLS1J TlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjJi IChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFZJUlRVQUwsIFBS SU1BUlkgS0VZIChhLCBiKSk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7 CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CiAKIC0tIGluZGV4ZXMKLUNS RUFURSBUQUJMRSBndGVzdDIyYyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2JfaWR4IE9OIGd0ZXN0 MjJjIChiKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAo KGIgKiAzKSk7Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfcHJlZF9pZHggT04gZ3Rlc3QyMmMg KGEpIFdIRVJFIGIgPiAwOwotXGQgZ3Rlc3QyMmMKLQotSU5TRVJUIElOVE8gZ3Rlc3QyMmMg VkFMVUVTICgxKSwgKDIpLCAoMyk7Ci1TRVQgZW5hYmxlX3NlcXNjYW4gVE8gb2ZmOwotU0VU IGVuYWJsZV9iaXRtYXBzY2FuIFRPIG9mZjsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiA9IDQ7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3Qy MmMgV0hFUkUgYiAqIDMgPSA2OwotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICog MyA9IDY7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hF UkUgYSA9IDEgQU5EIGIgPiAwOwotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0g MSBBTkQgYiA+IDA7Ci0KLUFMVEVSIFRBQkxFIGd0ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTIChhICogNCk7Ci1BTkFMWVpFIGd0ZXN0MjJjOwotRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OwotU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOwotU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotUkVTRVQgZW5hYmxlX3NlcXNjYW47 Ci1SRVNFVCBlbmFibGVfYml0bWFwc2NhbjsKK0NSRUFURSBUQUJMRSBndGVzdDIyYyAoYSBp bnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKKy0tQ1JF QVRFIElOREVYIGd0ZXN0MjJjX2JfaWR4IE9OIGd0ZXN0MjJjIChiKTsKKy0tQ1JFQVRFIElO REVYIGd0ZXN0MjJjX2V4cHJfaWR4IE9OIGd0ZXN0MjJjICgoYiAqIDMpKTsKKy0tQ1JFQVRF IElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4gMDsK Ky0tXGQgZ3Rlc3QyMmMKKworLS1JTlNFUlQgSU5UTyBndGVzdDIyYyBWQUxVRVMgKDEpLCAo MiksICgzKTsKKy0tU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKKy0tU0VUIGVuYWJsZV9i aXRtYXBzY2FuIFRPIG9mZjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IGd0ZXN0MjJjIFdIRVJFIGIgPSA0OworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJF IGIgPSA0OworLS1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiAqIDMgPSA2OworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAz ID0gNjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdI RVJFIGEgPSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBh ID0gMSBBTkQgYiA+IDA7CisKKy0tQUxURVIgVEFCTEUgZ3Rlc3QyMmMgQUxURVIgQ09MVU1O IGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiA0KTsKKy0tQU5BTFlaRSBndGVzdDIyYzsKKy0t RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4 OworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OworLS1FWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKKy0t U0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOworLS1FWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAw OworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0t UkVTRVQgZW5hYmxlX3NlcXNjYW47CistLVJFU0VUIGVuYWJsZV9iaXRtYXBzY2FuOwogCiAt LSBmb3JlaWduIGtleXMKIENSRUFURSBUQUJMRSBndGVzdDIzYSAoeCBpbnQgUFJJTUFSWSBL RVksIHkgaW50KTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwgMTEpLCAoMiwg MjIpLCAoMywgMzMpOworLS1JTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxVRVMgKDEsIDExKSwg KDIsIDIyKSwgKDMsIDMzKTsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZF UkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgotQ1JF QVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBE RUxFVEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIFVQREFURSBDQVNDQURFKTsgIC0tIGVy cm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNh ICh4KSBPTiBERUxFVEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IKIAotQ1JFQVRFIFRBQkxFIGd0 ZXN0MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSk7Ci1cZCBndGVzdDIzYgor Q1JFQVRFIFRBQkxFIGd0ZXN0MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkp OworLS1cZCBndGVzdDIzYgogCi1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAg LS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjNiIFZBTFVFUyAoNSk7ICAtLSBlcnJvcgotQUxU RVIgVEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEg KiA1KTsgLS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNi IFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDUp OyAgLS0gZXJyb3IKKy0tQUxURVIgVEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1OIGIgU0VU IEVYUFJFU1NJT04gQVMgKGEgKiA1KTsgLS0gZXJyb3IKKy0tQUxURVIgVEFCTEUgZ3Rlc3Qy M2IgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxKTsgLS0gb2sKIAot RFJPUCBUQUJMRSBndGVzdDIzYjsKLURST1AgVEFCTEUgZ3Rlc3QyM2E7CistLURST1AgVEFC TEUgZ3Rlc3QyM2I7CistLURST1AgVEFCTEUgZ3Rlc3QyM2E7CiAKLUNSRUFURSBUQUJMRSBn dGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyKSBTVE9S RUQsIFBSSU1BUlkgS0VZICh5KSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzcCBWQUxVRVMgKDEp LCAoMiksICgzKTsKK0NSRUFURSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKHggKiAyKSBWSVJUVUFMLCBQUklNQVJZIEtFWSAoeSkpOworLS1J TlNFUlQgSU5UTyBndGVzdDIzcCBWQUxVRVMgKDEpLCAoMiksICgzKTsKIAogQ1JFQVRFIFRB QkxFIGd0ZXN0MjNxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgUkVGRVJFTkNFUyBndGVz dDIzcCAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgxLCAyKTsgIC0tIG9r Ci1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IKKy0tSU5T RVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgxLCAyKTsgIC0tIG9rCistLUlOU0VSVCBJTlRP IGd0ZXN0MjNxIFZBTFVFUyAoMiwgNSk7ICAtLSBlcnJvcgogCiAtLSBkb21haW5zCiBDUkVB VEUgRE9NQUlOIGd0ZXN0ZG9tYWluMSBBUyBpbnQgQ0hFQ0sgKFZBTFVFIDwgMTApOwotQ1JF QVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLUlOU0VSVCBJTlRPIGd0ZXN0 MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFM VUVTICg2KTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyNCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgZ3Rlc3Rkb21haW4xIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCist LUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRF IFRZUEUgZ3Rlc3Rkb21haW4xcmFuZ2UgQVMgcmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRvbWFp bjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRyIChhIGludCBQUklNQVJZIEtFWSwgYiBndGVz dGRvbWFpbjFyYW5nZSBHRU5FUkFURUQgQUxXQVlTIEFTIChndGVzdGRvbWFpbjFyYW5nZShh LCBhICsgNSkpIFZJUlRVQUwpOworLS1JTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVT ICg0KTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDYpOyAg LS0gZXJyb3IKIAogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkK IENSRUFURSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVnZXIsIGYyIHRleHQsIGYzIGJp Z2ludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9Q VElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFNUT1JFRCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKjIpIFZJUlRVQUwpOwogRFJPUCBUWVBFIGd0ZXN0X3R5cGUgQ0FTQ0FE RTsKIAogLS0gcGFydGl0aW9uaW5nIGNhc2VzCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50 IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCkgUEFSVElUSU9OIEJZ IFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0 ZXN0X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYyICogMikgU1RPUkVECisgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgVklSVFVBTAogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykg VE8gKCcyMDE2LTA4LTAxJyk7IC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9jaGlsZCAoZjEg ZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0gg UEFSVElUSU9OIGd0ZXN0X2NoaWxkIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBU TyAoJzIwMTYtMDgtMDEnKTsgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3RfcGFyZW50LCBn dGVzdF9jaGlsZDsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1Qg TlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAy KSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYx KTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZCBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50 CiAgIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsg IC0tIGluaGVyaXRzIGdlbiBleHByCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQyIFBBUlRJ VElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQg QUxXQVlTIEFTIChmMiAqIDIyKSBTVE9SRUQgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgorICAg IGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSBWSVJUVUFM ICAtLSBvdmVycmlkZXMgZ2VuIGV4cHIKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOC0w MScpIFRPICgnMjAxNi0wOS0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJU SVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBERUZBVUxUIDQyICAtLSBlcnJvcgpA QCAtNDE3LDYgKzQ0MSw5IEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9O IE9GIGd0ZXN0X3BhcmVudCAoCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElP TiBPRiBndGVzdF9wYXJlbnQgKAogICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxX QVlTIEFTIElERU5USVRZICAtLSBlcnJvcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5 LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBB UlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYyICogMikgU1RPUkVEICAtLSBlcnJvcgorKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5 LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChm MSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCk7CiBBTFRFUiBUQUJMRSBn dGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBG Uk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgogRFJPUCBU QUJMRSBndGVzdF9jaGlsZDM7CkBAIC00MjcsNiArNDU0LDkgQEAgQ1JFQVRFIFRBQkxFIGd0 ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VO RVJBVEVEIEFMV0EKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9O IGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2 LTEwLTAxJyk7IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKIENSRUFURSBU QUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmln aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CitBTFRFUiBUQUJM RSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVF UyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgorRFJP UCBUQUJMRSBndGVzdF9jaGlsZDM7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDMzKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0gg UEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykg VE8gKCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9jaGlsZAogXGQgZ3Rlc3RfY2hpbGQyCkBA IC00MzUsNiArNDY1LDkgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBO T1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0EKIElOU0VSVCBJ TlRPIGd0ZXN0X3BhcmVudCAoZjEsIGYyKSBWQUxVRVMgKCcyMDE2LTA3LTE1JywgMik7CiBJ TlNFUlQgSU5UTyBndGVzdF9wYXJlbnQgKGYxLCBmMikgVkFMVUVTICgnMjAxNi0wOC0xNScs IDMpOwogU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBP UkRFUiBCWSAxLCAyLCAzOworU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0 ZXN0X2NoaWxkIE9SREVSIEJZIDEsIDIsIDM7CitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNz LCAqIEZST00gZ3Rlc3RfY2hpbGQyIE9SREVSIEJZIDEsIDIsIDM7ICAtLSB1c2VzIGNoaWxk J3MgZ2VuZXJhdGlvbiBleHByZXNzaW9uLCBub3QgcGFyZW50J3MKK1NFTEVDVCB0YWJsZW9p ZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9jaGlsZDMgT1JERVIgQlkgMSwgMiwgMzsKIFVQ REFURSBndGVzdF9wYXJlbnQgU0VUIGYxID0gZjEgKyA2MCBXSEVSRSBmMiA9IDE7CiBTRUxF Q1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEs IDIsIDM7CiAKQEAgLTQ1NywyMSArNDkwLDIxIEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGls ZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBB TFdBCiAtLSB3ZSBsZWF2ZSB0aGVzZSB0YWJsZXMgYXJvdW5kIGZvciBwdXJwb3NlcyBvZiB0 ZXN0aW5nIGR1bXAvcmVsb2FkL3VwZ3JhZGUKIAogLS0gZ2VuZXJhdGVkIGNvbHVtbnMgaW4g cGFydGl0aW9uIGtleSAobm90IGFsbG93ZWQpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9r ZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKLUNS RUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJ VElPTiBCWSBSQU5HRSAoKGYzICogMykpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5 IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxX QVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOworQ1JF QVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQs IGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJ VElPTiBCWSBSQU5HRSAoKGYzICogMykpOwogCiAtLSBBTFRFUiBUQUJMRSAuLi4gQUREIENP TFVNTgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjUgKGEgaW50IFBSSU1BUlkgS0VZKTsKIElOU0VS VCBJTlRPIGd0ZXN0MjUgVkFMVUVTICgzKSwgKDQpOwotQUxURVIgVEFCTEUgZ3Rlc3QyNSBB REQgQ09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIEFM VEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CitBTFRFUiBUQUJMRSBn dGVzdDI1IEFERCBDT0xVTU4gYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJ UlRVQUwsIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CiBTRUxF Q1QgKiBGUk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQURE IENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgU1RPUkVEOyAgLS0g ZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQg QUxXQVlTIEFTICh6ICogNCkgU1RPUkVEOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0 MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgVklSVFVB TDsgIC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoeiAqIDQpIFZJUlRVQUw7ICAtLSBlcnJvcgogQUxURVIgVEFC TEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGMgaW50IERFRkFVTFQgNDIsCi0gIEFERCBDT0xVTU4g eCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDQpIFNUT1JFRDsKKyAgQUREIENPTFVN TiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkgVklSVFVBTDsKIEFMVEVSIFRB QkxFIGd0ZXN0MjUgQUREIENPTFVNTiBkIGludCBERUZBVUxUIDEwMTsKIEFMVEVSIFRBQkxF IGd0ZXN0MjUgQUxURVIgQ09MVU1OIGQgU0VUIERBVEEgVFlQRSBmbG9hdDgsCi0gIEFERCBD T0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQpIFNUT1JFRDsKKyAg QUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChkICogNCkgVklSVFVB TDsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwogXGQgZ3Rlc3QyNQogCkBA IC00NzksNyArNTEyLDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjUgKGEgaW50IFBSSU1BUlkg S0VZKTsKIENSRUFURSBUQUJMRSBndGVzdDI3ICgKICAgICBhIGludCwKICAgICBiIGludCwK LSAgICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgU1RPUkVECisg ICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRVQUwKICk7 CiBJTlNFUlQgSU5UTyBndGVzdDI3IChhLCBiKSBWQUxVRVMgKDMsIDcpLCAoNCwgMTEpOwog QUxURVIgVEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7ICAtLSBlcnJv cgpAQCAtNDkzLDcgKzUyNiw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI3ICgKICAgRFJPUCBD T0xVTU4geCwKICAgQUxURVIgQ09MVU1OIGEgVFlQRSBiaWdpbnQsCiAgIEFMVEVSIENPTFVN TiBiIFRZUEUgYmlnaW50LAotICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKChhICsgYikgKiAyKSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geCBiaWdpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRVQUw7CiBcZCBndGVzdDI3CiAt LSBJZGVhbGx5IHlvdSBjb3VsZCBqdXN0IGRvIHRoaXMsIGJ1dCBub3QgdG9kYXkgKGFuZCBz aG91bGQgeCBjaGFuZ2UgdHlwZT8pOgogQUxURVIgVEFCTEUgZ3Rlc3QyNwpAQCAtNTA1LDcg KzUzOCw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI3ICgKIC0tIEFMVEVSIFRBQkxFIC4uLiBB TFRFUiBDT0xVTU4gLi4uIERST1AgRVhQUkVTU0lPTgogQ1JFQVRFIFRBQkxFIGd0ZXN0Mjkg KAogICAgIGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBT VE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAog KTsKIElOU0VSVCBJTlRPIGd0ZXN0MjkgKGEpIFZBTFVFUyAoMyksICg0KTsKIFNFTEVDVCAq IEZST00gZ3Rlc3QyOTsKQEAgLTUzMiw3ICs1NjUsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3Qy OSAoCiAtLSB3aXRoIGluaGVyaXRhbmNlCiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAg YSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAor ICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogQ1JF QVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJM RSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsKQEAgLTU0MSw3ICs1 NzQsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsK IERST1AgVEFCTEUgZ3Rlc3QzMCBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzAgKAog ICAgIGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAogKTsK IENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogQUxURVIg VEFCTEUgT05MWSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsgIC0t IGVycm9yCkBAIC01NDksMTAgKzU4MiwyMiBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgp IElOSEVSSVRTIChndGVzdDMwKTsKIFxkIGd0ZXN0MzBfMQogQUxURVIgVEFCTEUgZ3Rlc3Qz MF8xIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsgIC0tIGVycm9yCiAKKy0tIGNv bXBvc2l0ZSB0eXBlIGRlcGVuZGVuY2llcworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBp bnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSBWSVJUVUFMLCBjIHRl eHQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKK0FM VEVSIFRBQkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBm YWlscworRFJPUCBUQUJMRSBndGVzdDMxXzEsIGd0ZXN0MzFfMjsKKworLS0gQ2hlY2sgaXQg Zm9yIGEgcGFydGl0aW9uZWQgdGFibGUsIHRvbworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAo YSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSBWSVJUVUFMLCBj IHRleHQpIFBBUlRJVElPTiBCWSBMSVNUIChhKTsKK0NSRUFURSBUQUJMRSBndGVzdDMxXzIg KHggaW50LCB5IGd0ZXN0MzFfMSk7CitBTFRFUiBUQUJMRSBndGVzdDMxXzEgQUxURVIgQ09M VU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKK0RST1AgVEFCTEUgZ3Rlc3QzMV8xLCBn dGVzdDMxXzI7CisKIC0tIHRyaWdnZXJzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNiAoCiAgICAg YSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMCiApOwogCiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dlcl9mdW5jKCkgUkVUVVJO UyB0cmlnZ2VyCkBAIC02MzQsNyArNjc5LDcgQEAgQ1JFQVRFIFRSSUdHRVIgZ3Rlc3QxMSBC RUZPUkUgVVBEQVRFIE9GIGIgT04gZ3Rlc3QyNgogRFJPUCBUUklHR0VSIGd0ZXN0MTEgT04g Z3Rlc3QyNjsKIFRSVU5DQVRFIGd0ZXN0MjY7CiAKLS0tIGNoZWNrIHRoYXQgbW9kaWZpY2F0 aW9ucyBvZiBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gdHJpZ2dlcnMgZG8KKy0tIGNo ZWNrIHRoYXQgbW9kaWZpY2F0aW9ucyBvZiBnZW5lcmF0ZWQgY29sdW1ucyBpbiB0cmlnZ2Vy cyBkbwogLS0gbm90IGdldCBwcm9wYWdhdGVkCiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJp Z2dlcl9mdW5jNCgpIFJFVFVSTlMgdHJpZ2dlcgogICBMQU5HVUFHRSBwbHBnc3FsCkBAIC02 NDYsMjAgKzY5MSwyMSBAQCBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dlcl9mdW5jNCgp IFJFVFVSTlMgdHJpZ2dlcgogRU5EOwogJCQ7CiAKLUNSRUFURSBUUklHR0VSIGd0ZXN0MTJf MDEgQkVGT1JFIFVQREFURSBPTiBndGVzdDI2CitDUkVBVEUgVFJJR0dFUiBndGVzdDEyXzAx IEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRk9SIEVBQ0ggUk9XCiAg IEVYRUNVVEUgUFJPQ0VEVVJFIGd0ZXN0X3RyaWdnZXJfZnVuYygpOwogCi1DUkVBVEUgVFJJ R0dFUiBndGVzdDEyXzAyIEJFRk9SRSBVUERBVEUgT04gZ3Rlc3QyNgorQ1JFQVRFIFRSSUdH RVIgZ3Rlc3QxMl8wMiBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPTiBndGVzdDI2CiAgIEZP UiBFQUNIIFJPVwogICBFWEVDVVRFIFBST0NFRFVSRSBndGVzdF90cmlnZ2VyX2Z1bmM0KCk7 CiAKLUNSRUFURSBUUklHR0VSIGd0ZXN0MTJfMDMgQkVGT1JFIFVQREFURSBPTiBndGVzdDI2 CitDUkVBVEUgVFJJR0dFUiBndGVzdDEyXzAzIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9O IGd0ZXN0MjYKICAgRk9SIEVBQ0ggUk9XCiAgIEVYRUNVVEUgUFJPQ0VEVVJFIGd0ZXN0X3Ry aWdnZXJfZnVuYygpOwogCiBJTlNFUlQgSU5UTyBndGVzdDI2IChhKSBWQUxVRVMgKDEpOwot VVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBhID0gMTsKK1NFTEVDVCAqIEZST00g Z3Rlc3QyNiBPUkRFUiBCWSBhOworVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBh ID0gMTA7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKIAogLS0gTElLRSBJ TkNMVURJTkcgR0VORVJBVEVEIGFuZCBkcm9wcGVkIGNvbHVtbiBoYW5kbGluZwpAQCAtNjY3 LDcgKzcxMyw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI4YSAoCiAgIGEgaW50LAogICBiIGlu dCwKICAgYyBpbnQsCi0gIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE9S RUQKKyAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwKICk7CiAK IEFMVEVSIFRBQkxFIGd0ZXN0MjhhIERST1AgQ09MVU1OIGE7CkBAIC02NzUsMyArNzIxLDcg QEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjhhICgKIENSRUFURSBUQUJMRSBndGVzdDI4YiAoTElL RSBndGVzdDI4YSBJTkNMVURJTkcgR0VORVJBVEVEKTsKIAogXGQgZ3Rlc3QyOCoKKworCist LSBzYW5pdHkgY2hlY2sgb2Ygc3lzdGVtIGNhdGFsb2cKK1NFTEVDVCBhdHRyZWxpZCwgYXR0 bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRl ZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlv bi5zcWwKaW5kZXggYzRjMjFhOTVkMGUuLjNiMDNmYjY0N2YxIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0yMTQsNyArMjE0LDcgQEAgQ1JFQVRFIEZVTkNU SU9OIHRlc3RwdWJfcmZfZnVuYzEoaW50ZWdlciwgaW50ZWdlcikgUkVUVVJOUyBib29sZWFu IEFTICQkIFNFTEVDVAogQ1JFQVRFIE9QRVJBVE9SID0jPiAoUFJPQ0VEVVJFID0gdGVzdHB1 Yl9yZl9mdW5jMSwgTEVGVEFSRyA9IGludGVnZXIsIFJJR0hUQVJHID0gaW50ZWdlcik7CiBD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjYgRk9SIFRBQkxFIHRlc3RwdWJfcmZfdGJsMyBX SEVSRSAoZSA9Iz4gMjcpOwogLS0gZmFpbCAtIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYXJl IG5vdCBhbGxvd2VkCi1DUkVBVEUgRlVOQ1RJT04gdGVzdHB1Yl9yZl9mdW5jMigpIFJFVFVS TlMgaW50ZWdlciBBUyAkJCBCRUdJTiBSRVRVUk4gMTIzOyBFTkQ7ICQkIExBTkdVQUdFIHBs cGdzcWw7CitDUkVBVEUgRlVOQ1RJT04gdGVzdHB1Yl9yZl9mdW5jMigpIFJFVFVSTlMgaW50 ZWdlciBJTU1VVEFCTEUgQVMgJCQgQkVHSU4gUkVUVVJOIDEyMzsgRU5EOyAkJCBMQU5HVUFH RSBwbHBnc3FsOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjUgQUREIFRBQkxFIHRlc3Rw dWJfcmZfdGJsMSBXSEVSRSAoYSA+PSB0ZXN0cHViX3JmX2Z1bmMyKCkpOwogLS0gZmFpbCAt IG5vbi1pbW11dGFibGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZC4gcmFuZG9tKCkgaXMg dm9sYXRpbGUuCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViNSBBREQgVEFCTEUgdGVzdHB1 Yl9yZl90YmwxIFdIRVJFIChhIDwgcmFuZG9tKCkpOwpAQCAtMjYxLDE4ICsyNjEsMzAgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBUQUJMRVMgSU4gU0NIRU1BIHRlc3Rw dWJfcmZfc2NoZW1hMjsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IFNFVCBUQUJMRVMg SU4gU0NIRU1BIHRlc3RwdWJfcmZfc2NoZW1hMiwgVEFCTEUgdGVzdHB1Yl9yZl9zY2hlbWEy LnRlc3RwdWJfcmZfdGJsNiBXSEVSRSAoaSA8IDk5KTsKIFJFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CiBcZFJwKyB0ZXN0cHViNgorLS0gZmFpbCAtIHZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbiB1c2VzIHVzZXItZGVmaW5lZCBmdW5jdGlvbgorQ1JFQVRFIFRBQkxFIHRlc3RwdWJf cmZfdGJsNiAoaWQgaW50IFBSSU1BUlkgS0VZLCB4IGludCwgeSBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoeCAqIHRlc3RwdWJfcmZfZnVuYzIoKSkgVklSVFVBTCk7CitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1YjcgRk9SIFRBQkxFIHRlc3RwdWJfcmZfdGJsNiBXSEVSRSAoeSA+ IDEwMCk7CistLSB0ZXN0IHRoYXQgU0VUIEVYUFJFU1NJT04gaXMgcmVqZWN0ZWQsIGJlY2F1 c2UgaXQgY291bGQgYWZmZWN0IGEgcm93IGZpbHRlcgorU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSAnRVJST1InOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfcmZfdGJsNyAoaWQgaW50IFBS SU1BUlkgS0VZLCB4IGludCwgeSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDExMSkg VklSVFVBTCk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjggRk9SIFRBQkxFIHRlc3Rw dWJfcmZfdGJsNyBXSEVSRSAoeSA+IDEwMCk7CitBTFRFUiBUQUJMRSB0ZXN0cHViX3JmX3Ri bDcgQUxURVIgQ09MVU1OIHkgU0VUIEVYUFJFU1NJT04gQVMgKHggKiB0ZXN0cHViX3JmX2Z1 bmMyKCkpOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIAogRFJPUCBUQUJMRSB0ZXN0 cHViX3JmX3RibDE7CiBEUk9QIFRBQkxFIHRlc3RwdWJfcmZfdGJsMjsKIERST1AgVEFCTEUg dGVzdHB1Yl9yZl90YmwzOwogRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3RibDQ7CiBEUk9QIFRB QkxFIHRlc3RwdWJfcmZfdGJsNTsKK0RST1AgVEFCTEUgdGVzdHB1Yl9yZl90Ymw2OwogRFJP UCBUQUJMRSB0ZXN0cHViX3JmX3NjaGVtYTEudGVzdHB1Yl9yZl90Ymw1OwogRFJPUCBUQUJM RSB0ZXN0cHViX3JmX3NjaGVtYTIudGVzdHB1Yl9yZl90Ymw2OwogRFJPUCBTQ0hFTUEgdGVz dHB1Yl9yZl9zY2hlbWExOwogRFJPUCBTQ0hFTUEgdGVzdHB1Yl9yZl9zY2hlbWEyOwogRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViNTsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjY7CitE Uk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OworRFJPUCBUQUJMRSB0ZXN0cHViX3JmX3RibDc7 CiBEUk9QIE9QRVJBVE9SID0jPihpbnRlZ2VyLCBpbnRlZ2VyKTsKIERST1AgRlVOQ1RJT04g dGVzdHB1Yl9yZl9mdW5jMShpbnRlZ2VyLCBpbnRlZ2VyKTsKIERST1AgRlVOQ1RJT04gdGVz dHB1Yl9yZl9mdW5jMigpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcm93 c2VjdXJpdHkuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcm93c2VjdXJpdHkuc3FsCmlu ZGV4IGNmMDlmNjJlYWJhLi5mNjFkYmJmOTU4MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcm93c2VjdXJpdHkuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jv d3NlY3VyaXR5LnNxbApAQCAtMjA3Miw2ICsyMDcyLDMzIEBAIENSRUFURSBQT0xJQ1kgcDMg T04gcjEgRk9SIElOU0VSVCBXSVRIIENIRUNLICh0cnVlKTsKIAogRFJPUCBUQUJMRSByMTsK IAorLS0KKy0tIFRlc3QgcG9saWNpZXMgdXNpbmcgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cworLS0KK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19ybHNfYWxpY2U7CitT RVQgcm93X3NlY3VyaXR5ID0gb247CitDUkVBVEUgVEFCTEUgcjEgKGEgaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMTApIFZJUlRVQUwpOworQUxURVIgVEFCTEUgcjEg QUREIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAxMDApIFZJUlRVQUw7CitJTlNF UlQgSU5UTyByMSBWQUxVRVMgKDEpLCAoMiksICg0KTsKKworQ1JFQVRFIFBPTElDWSBwMCBP TiByMSBVU0lORyAoYiAqIDEwID0gYyk7CitDUkVBVEUgUE9MSUNZIHAxIE9OIHIxIEFTIFJF U1RSSUNUSVZFIFVTSU5HIChiID4gMTApOworQ1JFQVRFIFBPTElDWSBwMiBPTiByMSBBUyBS RVNUUklDVElWRSBVU0lORyAoKFNFTEVDVCBjKSA8IDQwMCk7CitBTFRFUiBUQUJMRSByMSBF TkFCTEUgUk9XIExFVkVMIFNFQ1VSSVRZOworQUxURVIgVEFCTEUgcjEgRk9SQ0UgUk9XIExF VkVMIFNFQ1VSSVRZOworCistLSBTaG91bGQgZmFpbCBwMQorSU5TRVJUIElOVE8gcjEgVkFM VUVTICgwKTsKKworLS0gU2hvdWxkIGZhaWwgcDIKK0lOU0VSVCBJTlRPIHIxIFZBTFVFUyAo NCk7CisKKy0tIE9LCitJTlNFUlQgSU5UTyByMSBWQUxVRVMgKDMpOworU0VMRUNUICogRlJP TSByMTsKKworRFJPUCBUQUJMRSByMTsKKwogLS0gQ2hlY2sgZGVwZW5kZW5jeSBoYW5kbGlu ZwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogQ1JFQVRFIFRBQkxFIGRlcDEgKGMx IGludCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19leHQuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfZXh0LnNxbAppbmRleCA1Yzc4NmIxNmM2 Zi4uNzViMDRlNWExMzYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRz X2V4dC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfZXh0LnNxbApAQCAt NDUsNiArNDUsMjAgQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgdHN0IE9OICh5KSBGUk9NIGV4dF9z dGF0c190ZXN0OyAtLSBzaW5nbGUgY29sdW1uIHJlZmVyZW5jZQogQ1JFQVRFIFNUQVRJU1RJ Q1MgdHN0IE9OIHkgKyB6IEZST00gZXh0X3N0YXRzX3Rlc3Q7IC0tIG1pc3NpbmcgcGFyZW50 aGVzZXMKIENSRUFURSBTVEFUSVNUSUNTIHRzdCBPTiAoeCwgeSkgRlJPTSBleHRfc3RhdHNf dGVzdDsgLS0gdHVwbGUgZXhwcmVzc2lvbgogRFJPUCBUQUJMRSBleHRfc3RhdHNfdGVzdDsK Ky0tIHN0YXRpc3RpY3Mgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIG5vdCBhbGxvd2Vk CitDUkVBVEUgVEFCTEUgZXh0X3N0YXRzX3Rlc3QxICh4IGludCwgeSBpbnQsIHogaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKHgreSkgVklSVFVBTCwgdyB4aWQpOworQ1JFQVRFIFNUQVRJ U1RJQ1MgdHN0IG9uIHogZnJvbSBleHRfc3RhdHNfdGVzdDE7CitDUkVBVEUgU1RBVElTVElD UyB0c3Qgb24gKHopIGZyb20gZXh0X3N0YXRzX3Rlc3QxOworQ1JFQVRFIFNUQVRJU1RJQ1Mg dHN0IG9uICh6KzEpIGZyb20gZXh0X3N0YXRzX3Rlc3QxOworQ1JFQVRFIFNUQVRJU1RJQ1Mg dHN0IChuZGlzdGluY3QpIE9OIHogZnJvbSBleHRfc3RhdHNfdGVzdDE7CistLSBzdGF0aXN0 aWNzIG9uIHN5c3RlbSBjb2x1bW4gbm90IGFsbG93ZWQKK0NSRUFURSBTVEFUSVNUSUNTIHRz dCBvbiB0YWJsZW9pZCBmcm9tIGV4dF9zdGF0c190ZXN0MTsKK0NSRUFURSBTVEFUSVNUSUNT IHRzdCBvbiAodGFibGVvaWQpIGZyb20gZXh0X3N0YXRzX3Rlc3QxOworQ1JFQVRFIFNUQVRJ U1RJQ1MgdHN0IG9uICh0YWJsZW9pZDo6aW50KzEpIGZyb20gZXh0X3N0YXRzX3Rlc3QxOwor Q1JFQVRFIFNUQVRJU1RJQ1MgdHN0IChuZGlzdGluY3QpIE9OIHhtaW4gZnJvbSBleHRfc3Rh dHNfdGVzdDE7CistLSBzdGF0aXN0aWNzIHdpdGhvdXQgYSBsZXNzLXRoYW4gb3BlcmF0b3Ig bm90IHN1cHBvcnRlZAorQ1JFQVRFIFNUQVRJU1RJQ1MgdHN0IChuZGlzdGluY3QpIE9OIHcg ZnJvbSBleHRfc3RhdHNfdGVzdDE7CitEUk9QIFRBQkxFIGV4dF9zdGF0c190ZXN0MTsKIAog LS0gRW5zdXJlIHN0YXRzIGFyZSBkcm9wcGVkIHNhbmVseSwgYW5kIHRlc3QgSUYgTk9UIEVY SVNUUyB3aGlsZSBhdCBpdAogQ1JFQVRFIFRBQkxFIGFiMSAoYSBJTlRFR0VSLCBiIElOVEVH RVIsIGMgSU5URUdFUik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MTFfZ2VuZXJhdGVkLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dlbmVyYXRl ZC5wbAppbmRleCA0NTU4NzM3MTQwMC4uNmU3M2RiN2I0MTcgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwKKysrIGIvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDExX2dlbmVyYXRlZC5wbApAQCAtMjEsMTEgKzIxLDExIEBACiBteSAk cHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAnIGRibmFt ZT1wb3N0Z3Jlcyc7CiAKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs Ci0JIkNSRUFURSBUQUJMRSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCkiCisJIkNSRUFURSBUQUJMRSB0YWIxIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNU T1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRVQUwpIgogKTsK IAogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JIkNSRUFURSBU QUJMRSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIyKSBTVE9SRUQsIGMgaW50KSIKKwkiQ1JFQVRFIFRBQkxFIHRhYjEgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JF RCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMzKSBWSVJUVUFMLCBkIGludCki CiApOwogCiAjIGRhdGEgZm9yIGluaXRpYWwgc3luYwpAQCAtNDIsMTAgKzQyLDExIEBACiAj IFdhaXQgZm9yIGluaXRpYWwgc3luYyBvZiBhbGwgc3Vic2NyaXB0aW9ucwogJG5vZGVfc3Vi c2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7CiAKLW15ICRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBhLCBiIEZS T00gdGFiMSIpOwotaXMoICRyZXN1bHQsIHFxKDF8MjIKLTJ8NDQKLTN8NjYpLCAnZ2VuZXJh dGVkIGNvbHVtbnMgaW5pdGlhbCBzeW5jJyk7CitteSAkcmVzdWx0ID0KKyAgJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgYSwgYiwgYyBGUk9NIHRh YjEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxfDIyfDMzCisyfDQ0fDY2CiszfDY2fDk5KSwgJ2dl bmVyYXRlZCBjb2x1bW5zIGluaXRpYWwgc3luYycpOwogCiAjIGRhdGEgdG8gcmVwbGljYXRl CiAKQEAgLTU2LDExICs1NywxMSBAQAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCdzdWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSIpOwotaXMoICRyZXN1bHQsIHFxKDF8 MjJ8Ci0yfDQ0fAotM3w2NnwKLTR8ODh8Ci02fDEzMnwpLCAnZ2VuZXJhdGVkIGNvbHVtbnMg cmVwbGljYXRlZCcpOworaXMoICRyZXN1bHQsIHFxKDF8MjJ8MzN8CisyfDQ0fDY2fAorM3w2 Nnw5OXwKKzR8ODh8MTMyfAorNnwxMzJ8MTk4fCksICdnZW5lcmF0ZWQgY29sdW1ucyByZXBs aWNhdGVkJyk7CiAKICMgdHJ5IGl0IHdpdGggYSBzdWJzY3JpYmVyLXNpZGUgdHJpZ2dlcgog CkBAIC02OSw3ICs3MCw3IEBACiBDUkVBVEUgRlVOQ1RJT04gdGFiMV90cmlnZ2VyX2Z1bmMo KSBSRVRVUk5TIHRyaWdnZXIKIExBTkdVQUdFIHBscGdzcWwgQVMgJCQKIEJFR0lOCi0gIE5F Vy5jIDo9IE5FVy5hICsgMTA7CisgIE5FVy5kIDo9IE5FVy5hICsgMTA7CiAgIFJFVFVSTiBO RVc7CiBFTkQgJCQ7CiAKQEAgLTg4LDEzICs4OSwxMyBAQCBCRUdJTgogCiAkcmVzdWx0ID0K ICAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBG Uk9NIHRhYjEgT1JERVIgQlkgMSIpOwotaXMoICRyZXN1bHQsIHFxKDF8MjJ8Ci0yfDQ0fAot M3w2NnwKLTR8ODh8Ci02fDEzMnwKLTh8MTc2fDE4Ci05fDE5OHwxOSksICdnZW5lcmF0ZWQg Y29sdW1ucyByZXBsaWNhdGVkIHdpdGggdHJpZ2dlcicpOworaXMoICRyZXN1bHQsIHFxKDF8 MjJ8MzN8CisyfDQ0fDY2fAorM3w2Nnw5OXwKKzR8ODh8MTMyfAorNnwxMzJ8MTk4fAorOHwx NzZ8MjY0fDE4Cis5fDE5OHwyOTd8MTkpLCAnZ2VuZXJhdGVkIGNvbHVtbnMgcmVwbGljYXRl ZCB3aXRoIHRyaWdnZXInKTsKIAogIyBjbGVhbnVwCiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHN1YjEiKTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyOF9yb3dfZmlsdGVyLnBsIGIvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDI4X3Jvd19maWx0ZXIucGwKaW5kZXggZTNhNmQ2OWRhN2Uu LmUyYzgzNjcwMDUzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjhf cm93X2ZpbHRlci5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjhfcm93X2Zp bHRlci5wbApAQCAtMjQwLDYgKzI0MCw5IEBACiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAogCSJDUkVBVEUgVEFCTEUgdGFiX3Jvd2ZpbHRlcl9jaGlsZF9zeW5j IFBBUlRJVElPTiBPRiB0YWJfcm93ZmlsdGVyX3BhcmVudF9zeW5jIEZPUiBWQUxVRVMgRlJP TSAoMSkgVE8gKDIwKSIKICk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJDUkVBVEUgVEFCTEUgdGFiX3Jvd2ZpbHRlcl92aXJ0dWFsIChpZCBpbnQgUFJJ TUFSWSBLRVksIHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgVklS VFVBTCkiCispOwogCiAjIHNldHVwIHN0cnVjdHVyZSBvbiBzdWJzY3JpYmVyCiAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKQEAgLTI5NCw2ICsyOTcsOSBAQAog CSJDUkVBVEUgVEFCTEUgdGFiX3Jvd2ZpbHRlcl9wYXJlbnRfc3luYyAoYSBpbnQpIik7CiAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiQ1JFQVRFIFRBQkxF IHRhYl9yb3dmaWx0ZXJfY2hpbGRfc3luYyAoYSBpbnQpIik7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYl9yb3dmaWx0ZXJf dmlydHVhbCAoaWQgaW50IFBSSU1BUlkgS0VZLCB4IGludCwgeSBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoeCAqIDIpIFZJUlRVQUwpIgorKTsKIAogIyBzZXR1cCBsb2dpY2FsIHJlcGxp Y2F0aW9uCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLApAQCAtMzU5 LDYgKzM2NSwxMSBAQAogCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9jaGlsZF9zeW5j IEZPUiBUQUJMRSB0YWJfcm93ZmlsdGVyX2NoaWxkX3N5bmMgV0hFUkUgKGEgPCAxNSkiCiAp OwogCisjIHB1YmxpY2F0aW9uIHVzaW5nIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiBpbiBy b3cgZmlsdGVyIGV4cHJlc3Npb24KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3ZpcnR1YWwgRk9SIFRBQkxF IHRhYl9yb3dmaWx0ZXJfdmlydHVhbCBXSEVSRSAoeSA+IDEwKSIKKyk7CisKICMKICMgVGhl IGZvbGxvd2luZyBJTlNFUlRzIGFyZSBleGVjdXRlZCBiZWZvcmUgdGhlIENSRUFURSBTVUJT Q1JJUFRJT04sIHNvIHRoZXNlCiAjIFNRTCBjb21tYW5kcyBhcmUgZm9yIHRlc3RpbmcgdGhl IGluaXRpYWwgZGF0YSBjb3B5IHVzaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24uCkBAIC00MDcs OCArNDE4LDEyIEBACiAJIklOU0VSVCBJTlRPIHRhYl9yb3dmaWx0ZXJfY2hpbGQoYSwgYikg VkFMVUVTKDAsJzAnKSwoMzAsJzMwJyksKDQwLCc0MCcpIgogKTsKIAorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX3Jvd2ZpbHRl cl92aXJ0dWFsIChpZCwgeCkgVkFMVUVTICgxLCAyKSwgKDIsIDQpLCAoMywgNikiCispOwor CiAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKLQkiQ1JFQVRFIFNV QlNDUklQVElPTiB0YXBfc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0ciBhcHBs aWNhdGlvbl9uYW1lPSRhcHBuYW1lJyBQVUJMSUNBVElPTiB0YXBfcHViXzEsIHRhcF9wdWJf MiwgdGFwX3B1Yl8zLCB0YXBfcHViXzRhLCB0YXBfcHViXzRiLCB0YXBfcHViXzVhLCB0YXBf cHViXzViLCB0YXBfcHViX3RvYXN0LCB0YXBfcHViX2luaGVyaXRzLCB0YXBfcHViX3ZpYXJv b3RfMiwgdGFwX3B1Yl92aWFyb290XzEsIHRhcF9wdWJfcGFyZW50X3N5bmMsIHRhcF9wdWJf Y2hpbGRfc3luYyIKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViIENPTk5FQ1RJT04g JyRwdWJsaXNoZXJfY29ubnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBuYW1lJyBQVUJMSUNB VElPTiB0YXBfcHViXzEsIHRhcF9wdWJfMiwgdGFwX3B1Yl8zLCB0YXBfcHViXzRhLCB0YXBf cHViXzRiLCB0YXBfcHViXzVhLCB0YXBfcHViXzViLCB0YXBfcHViX3RvYXN0LCB0YXBfcHVi X2luaGVyaXRzLCB0YXBfcHViX3ZpYXJvb3RfMiwgdGFwX3B1Yl92aWFyb290XzEsIHRhcF9w dWJfcGFyZW50X3N5bmMsIHRhcF9wdWJfY2hpbGRfc3luYywgdGFwX3B1Yl92aXJ0dWFsIgog KTsKIAogIyB3YWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmNocm9uaXphdGlvbiB0byBmaW5p c2gKQEAgLTU1MCw2ICs1NjUsMTYgQEAKIAkiU0VMRUNUIGEgRlJPTSB0YWJfcm93ZmlsdGVy X2NoaWxkX3N5bmMgT1JERVIgQlkgMSIpOwogaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIGlu aXRpYWwgZGF0YSBjb3B5IGZyb20gdGFiX3Jvd2ZpbHRlcl9jaGlsZF9zeW5jJyk7CiAKKyMg Q2hlY2sgZXhwZWN0ZWQgcmVwbGljYXRlZCByb3dzIGZvciB0YWJfcm93ZmlsdGVyX3ZpcnR1 YWwKKyMgdGFwX3B1Yl92aXJ0dWFsIGZpbHRlciBpczogKHkgPiAxMCksIHdoZXJlIHkgaXMg Z2VuZXJhdGVkIGFzICh4ICogMikKKyMgLSBJTlNFUlQgKDEsIDIpICAgICAgTk8sIDIgKiAy IDw9IDEwCisjIC0gSU5TRVJUICgyLCA0KSAgICAgIE5PLCA0ICogMiA8PSAxMAorIyAtIElO U0VSVCAoMywgNikgICAgICBZRVMsIDYgKiAyID4gMTAKKyRyZXN1bHQgPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGlkLCB4IEZST00gdGFi X3Jvd2ZpbHRlcl92aXJ0dWFsIE9SREVSIEJZIGlkIik7CitpcygkcmVzdWx0LCBxcSgzfDYp LAorCSdjaGVjayBpbml0aWFsIGRhdGEgY29weSBmcm9tIHRhYmxlIHRhYl9yb3dmaWx0ZXJf dmlydHVhbCcpOworCiAjIFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYXJlIGV4ZWN1dGVkIGFm dGVyIENSRUFURSBTVUJTQ1JJUFRJT04sIHNvIHRoZXNlIFNRTAogIyBjb21tYW5kcyBhcmUg Zm9yIHRlc3Rpbmcgbm9ybWFsIGxvZ2ljYWwgcmVwbGljYXRpb24gYmVoYXZpb3IuCiAjCkBA IC01ODIsNiArNjA3LDggQEAKIAkiSU5TRVJUIElOVE8gdGFiX3Jvd2ZpbHRlcl9jaGlsZCAo YSwgYikgVkFMVUVTICgxMywgJzEzJyksICgxNywgJzE3JykiKTsKICRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIklOU0VSVCBJTlRPIHRhYl9yb3dmaWx0ZXJf dmlhcm9vdF9wYXJ0IChhKSBWQUxVRVMgKDE0KSwgKDE1KSwgKDE2KSIpOworJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX3Jvd2Zp bHRlcl92aXJ0dWFsIChpZCwgeCkgVkFMVUVTICg0LCAzKSwgKDUsIDcpIik7CiAKICRub2Rl X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgkYXBwbmFtZSk7CiAKQEAgLTcyNSw2ICs3 NTIsMTUgQEAKIAknY2hlY2sgcmVwbGljYXRlZCByb3dzIHRvIHRhYl9yb3dmaWx0ZXJfaW5o ZXJpdGVkIGFuZCB0YWJfcm93ZmlsdGVyX2NoaWxkJwogKTsKIAorIyBDaGVjayBleHBlY3Rl ZCByZXBsaWNhdGVkIHJvd3MgZm9yIHRhYl9yb3dmaWx0ZXJfdmlydHVhbAorIyB0YXBfcHVi X3ZpcnR1YWwgZmlsdGVyIGlzOiAoeSA+IDEwKSwgd2hlcmUgeSBpcyBnZW5lcmF0ZWQgYXMg KHggKiAyKQorIyAtIElOU0VSVCAoNCwgMykgICAgICBOTywgMyAqIDIgPD0gMTAKKyMgLSBJ TlNFUlQgKDUsIDcpICAgICAgWUVTLCA3ICogMiA+IDEwCiskcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBpZCwgeCBGUk9NIHRh Yl9yb3dmaWx0ZXJfdmlydHVhbCBPUkRFUiBCWSBpZCIpOworaXMoICRyZXN1bHQsIHFxKDN8 NgorNXw3KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgcm93cyB0byB0YWJfcm93ZmlsdGVyX3ZpcnR1 YWwnKTsKKwogIyBVUERBVEUgdGhlIG5vbi10b2FzdGVkIGNvbHVtbiBmb3IgdGFibGUgdGFi X3Jvd2ZpbHRlcl90b2FzdAogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKIAkiVVBEQVRFIHRhYl9yb3dmaWx0ZXJfdG9hc3QgU0VUIGIgPSAnMSciKTsKCmJhc2Ut Y29tbWl0OiA3YjI3ZjVmZDM2Y2IzMjcwZThhYzI1YWVmZDczYjU1MjY2M2QxMzkyCi0tIAoy LjQ3LjEKCg== --------------wGYRogyMlqXHI1BR0EqG08Eg--