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 1t8MFm-003gxk-Nd for pgsql-hackers@arkaria.postgresql.org; Tue, 05 Nov 2024 16:18:02 +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 1t8MFj-00Fjgq-I2 for pgsql-hackers@arkaria.postgresql.org; Tue, 05 Nov 2024 16:18:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t8MFh-00FjgM-Ff for pgsql-hackers@lists.postgresql.org; Tue, 05 Nov 2024 16:17:59 +0000 Received: from fhigh-b2-smtp.messagingengine.com ([202.12.124.153]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t8MFc-000KRW-En for pgsql-hackers@postgresql.org; Tue, 05 Nov 2024 16:17:56 +0000 Received: from phl-compute-08.internal (phl-compute-08.phl.internal [10.202.2.48]) by mailfhigh.stl.internal (Postfix) with ESMTP id 6AB23254007A; Tue, 5 Nov 2024 11:17:51 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-08.internal (MEProxy); Tue, 05 Nov 2024 11:17:51 -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=fm2; t=1730823471; x= 1730909871; bh=8CWfxhXVPyjdVXUhXbWwIXqn9fk6N3g8HB2NjOzANjM=; b=b 7g8o/dEaXkl7Fiej4u+d0hfC8FQtmOQJtGwutG8EF3ztrLG5qV/Im3eOnaBGqvyQ LA4jicetmlEQ+VUeAxh54zrSj273BELVcL9SOuX86MPQDbbWfZyyL0C4RI5EfCG1 wWteqcwPW3/84tuDj6zAKnN17NBEWMI/7XgFe2viX+A3Zi+M46SaKVbVzqfAtnP6 YKj+aL8M2E/Ts94McHEAvCkVqgpLSHQ4fgIYDVOC9Gr/KV6UlVYXI1vWzIhR2mq9 Ywe8A/T1p1S7arA/TH9aVuZUp9jsUPI0iTmFjGz1212qGC2H9oqSA9ob4t+yEjGh yC2Bpec2VFWwh6MYVg16w== 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=fm3; t= 1730823471; x=1730909871; bh=8CWfxhXVPyjdVXUhXbWwIXqn9fk6N3g8HB2 NjOzANjM=; b=FyvObnC/c/ozYxUC0SDPQnjCO1ppYXOgzy7Wp0Am4opERQhqYy9 tQzu5mQQTzT615cHHmJ7XUp6RexeeabS/1cNdKGaakFgzXqmFFBV2qVPnPv/VDb/ r0FK3BWX+Aoz2NF71Y3Pf8Pc9m0+2LvWSt4YtKZmM4HekialahrSJ4GRLI/FFKh1 bxCaWs3O0dWI5hXeHiqflze8fIoXNERCRHtkpZyWJgTDK706niPuxpY2zRHZrIZ7 jiHlxaqeqlbu5FiCUjCssZ43Y39YwqnSLFEOa/W7nKRhDR3Tg2X9G3ZeUQsLrDtY 6MnOQIw2ZcwRdIx6hGbPtHFBCYY6Zq2gyPw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrtddtgdehkecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth hsucdlqddutddtmdenucfjughrpegtkfffgggfuffhvfevfhgjsehmtderredtvdejnecu hfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegvihhsvghnth hrrghuthdrohhrgheqnecuggftrfgrthhtvghrnhepledtheekleffieevfedtkeelveev feekkeevheehvdejfefgveethfetiedtuedvnecuvehluhhsthgvrhfuihiivgeptdenuc frrghrrghmpehmrghilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhg pdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehpgh hsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrghdprhgtphhtthhopehj ihgrnhdruhhnihhvvghrshgrlhhithihsehgmhgrihhlrdgtohhmpdhrtghpthhtohepug gvrghnrdgrrdhrrghshhgvvggusehgmhgrihhlrdgtohhm X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 5 Nov 2024 11:17:49 -0500 (EST) Content-Type: multipart/mixed; boundary="------------3saYgba2qETkQSy2YgsymdsF" Message-ID: <536b281b-2cb3-4477-971f-c64838bc6263@eisentraut.org> Date: Tue, 5 Nov 2024 17:17:48 +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> Content-Language: en-US In-Reply-To: <09800cb1-43aa-4239-8918-46b71ede4900@eisentraut.org> 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. --------------3saYgba2qETkQSy2YgsymdsF Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 30.09.24 04:09, Peter Eisentraut wrote: > I'm attaching a consolidated patch here, so we have something up to date > on the record.  I haven't worked through all the other recent feedback > from Jian He yet; I'll do that next. New patch version. I've gone through the whole thread again and looked at all the feedback and various bug reports and test cases and made sure they are all addressed in the latest patch version. (I'll send some separate messages to respond to some individual messages, but I'm keeping the latest patch here.) --------------3saYgba2qETkQSy2YgsymdsF Content-Type: text/plain; charset=UTF-8; name="v8-0001-Virtual-generated-columns.patch" Content-Disposition: attachment; filename="v8-0001-Virtual-generated-columns.patch" Content-Transfer-Encoding: base64 RnJvbSA4NDJmYWVlMjk2NDY3OWUxODNiMTY0ZjNiZjlmNDE4YmE0YWU0NjBlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCA1IE5vdiAyMDI0IDE2OjQ4OjQyICswMTAwClN1YmplY3Q6 IFtQQVRDSCB2OF0gVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucwoKVGhpcyBhZGRzIGEgbmV3 IHZhcmlhbnQgb2YgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgY29tcHV0ZWQgb24gcmVh ZAoobGlrZSBhIHZpZXcsIHVubGlrZSB0aGUgZXhpc3Rpbmcgc3RvcmVkIGdlbmVyYXRlZCBj b2x1bW5zLCB3aGljaCBhcmUKY29tcHV0ZWQgb24gd3JpdGUsIGxpa2UgYSBtYXRlcmlhbGl6 ZWQgdmlldykuCgpTb21lIGZ1bmN0aW9uYWxpdHkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0 ZWQgKGJ1dCBjb3VsZCBwb3NzaWJseSBiZQphZGRlZCBhcyBpbmNyZW1lbnRhbCBmZWF0dXJl cywgc29tZSBlYXNpZXIgdGhhbiBvdGhlcnMpOgoKLSBpbmRleCBvbiB2aXJ0dWFsIGNvbHVt bgotIGV4cHJlc3Npb24gaW5kZXggdXNpbmcgYSB2aXJ0dWFsIGNvbHVtbgotIGhlbmNlIGFs c28gbm8gdW5pcXVlIGNvbnN0cmFpbnRzIG9uIHZpcnR1YWwgY29sdW1ucwotIG5vdC1udWxs IGNvbnN0cmFpbnRzIG9uIHZpcnR1YWwgY29sdW1ucwotIChjaGVjayBjb25zdHJhaW50cyBh cmUgc3VwcG9ydGVkKQotIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzIG9uIHZpcnR1YWwgY29s dW1ucwotIGV4dGVuZGVkIHN0YXRpc3RpY3Mgb24gdmlydHVhbCBjb2x1bW5zCi0gQUxURVIg VEFCTEUgLyBTRVQgRVhQUkVTU0lPTgotIEFMVEVSIFRBQkxFIC8gRFJPUCBFWFBSRVNTSU9O Ci0gdmlydHVhbCBjb2x1bW5zIGFzIHRyaWdnZXIgY29sdW1ucwotIHZpcnR1YWwgY29sdW1u IGNhbm5vdCBoYXZlIGRvbWFpbiB0eXBlCgpUT0RPOgotIGFuYWx5c2lzIG9mIGFjY2VzcyBj b250cm9sCgpjb250cmlidXRpb25zIGJ5IEppYW4gSGUsIERlYW4gUmFzaGVlZAoKRGlzY3Vz c2lvbjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0L2EzNjgy NDhlLTY5ZTQtNDBiZS05YzA3LTZjM2I1ODgwYjBhNkBlaXNlbnRyYXV0Lm9yZwotLS0KIGNv bnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQgICAgICAgICB8ICAzNyArCiBj b250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbCAgICAgICAgICAgICAgfCAgMTkgKwog Li4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwgIDgxICst CiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCAgICAgfCAgIDkg Ky0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDI1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgICAgICAgICAgICAg fCAgMTYgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbCAg ICB8ICAxMSArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAg ICAgIHwgIDIyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwgICAg ICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyAg ICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRs ZXIuYyAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAgICAg ICAgICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jICAg ICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5j ICAgICAgICAgICAgICB8ICAyOSArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRz LmMgICAgICAgICAgICAgIHwgIDIwICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyAgICAgICAgICAgICAgfCAxMjYgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy90cmln Z2VyLmMgICAgICAgICAgICAgICAgfCAgNDggKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHBySW50ZXJwLmMgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9leGVjdXRvci9l eGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAxNSArLQogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICAgMyArLQogc3JjL2JhY2tlbmQv cmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jICAgICAgICAgIHwgMTAyICstCiBzcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9wYXJ0Y2FjaGUuYyAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMv aW5jbHVkZS9hY2Nlc3MvdHVwZGVzYy5oICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmggICAgICAgICAgICB8ICAgMSArCiBz cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCAgICAgICAgICB8ICAgMiAr CiBzcmMvcGwvcGxwZXJsL2V4cGVjdGVkL3BscGVybF90cmlnZ2VyLm91dCAgICAgfCAgIDcg Ky0KIHNyYy9wbC9wbHBlcmwvcGxwZXJsLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MyArCiBzcmMvcGwvcGxwZXJsL3NxbC9wbHBlcmxfdHJpZ2dlci5zcWwgICAgICAgICAgfCAg IDMgKy0KIHNyYy9wbC9wbHB5dGhvbi9leHBlY3RlZC9wbHB5dGhvbl90cmlnZ2VyLm91dCB8 ICAgNyArLQogc3JjL3BsL3BscHl0aG9uL3BscHlfdHlwZWlvLmMgICAgICAgICAgICAgICAg IHwgICAzICsKIHNyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25fdHJpZ2dlci5zcWwgICAg ICB8ICAgMyArLQogc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90cmlnZ2VyLm91dCAgICAg ICAgIHwgIDE5ICstCiBzcmMvcGwvdGNsL3BsdGNsLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDMgKwogc3JjL3BsL3RjbC9zcWwvcGx0Y2xfdHJpZ2dlci5zcWwgICAgICAg ICAgICAgIHwgICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4 Lm91dCAgICAgfCAgMjAgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xp a2Uub3V0ICAgIHwgIDIzICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVm YXVsdC5vdXQgICAgfCAgMTIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0 b3JlZC5vdXQgICAgIHwgIDc3ICstCiAuLi5yYXRlZF9zdG9yZWQub3V0ID0+IGdlbmVyYXRl ZF92aXJ0dWFsLm91dH0gfCA4NjggKysrKysrKysrLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwgICAgIHwgIDE0ICsKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCAgICB8ICAgMiArLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbCAgICAgICAgIHwgIDExICsKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsICAgICB8ICAzOCArLQogLi4ucmF0 ZWRfc3RvcmVkLnNxbCA9PiBnZW5lcmF0ZWRfdmlydHVhbC5zcWx9IHwgMzEzICsrKystLS0K IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwgICAgICB8ICAzOCAr LQogNTggZmlsZXMgY2hhbmdlZCwgMTQxMiBpbnNlcnRpb25zKCspLCA3MTAgZGVsZXRpb25z KC0pCiBjb3B5IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQve2dlbmVyYXRlZF9zdG9yZWQu b3V0ID0+IGdlbmVyYXRlZF92aXJ0dWFsLm91dH0gKDY3JSkKIGNvcHkgc3JjL3Rlc3QvcmVn cmVzcy9zcWwve2dlbmVyYXRlZF9zdG9yZWQuc3FsID0+IGdlbmVyYXRlZF92aXJ0dWFsLnNx bH0gKDY5JSkKCmRpZmYgLS1naXQgYS9jb250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3Bh Z2Uub3V0IGIvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dAppbmRleCAz ZmQzODY5YzgyYS4uZTQyZmQ5NzQ3ZmQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3Bl Y3QvZXhwZWN0ZWQvcGFnZS5vdXQKKysrIGIvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3Rl ZC9wYWdlLm91dApAQCAtMjA4LDYgKzIwOCw0MyBAQCBzZWxlY3QgdHVwbGVfZGF0YV9zcGxp dCgndGVzdDgnOjpyZWdjbGFzcywgdF9kYXRhLCB0X2luZm9tYXNrLCB0X2luZm9tYXNrMiwg dF9iaQogKDEgcm93KQogCiBkcm9wIHRhYmxlIHRlc3Q4OworLS0gY2hlY2sgc3RvcmFnZSBv ZiBnZW5lcmF0ZWQgY29sdW1ucworLS0gc3RvcmVkCitjcmVhdGUgdGFibGUgdGVzdDlzIChh IGludCBub3QgbnVsbCwgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3Jl ZCk7CitpbnNlcnQgaW50byB0ZXN0OXMgdmFsdWVzICgxMzE1ODQpOworc2VsZWN0IHJhd19m bGFncywgdF9iaXRzLCB0X2RhdGEKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3 X3BhZ2UoJ3Rlc3Q5cycsIDApKSwgbGF0ZXJhbCBoZWFwX3R1cGxlX2luZm9tYXNrX2ZsYWdz KHRfaW5mb21hc2ssIHRfaW5mb21hc2syKTsKKyAgICAgIHJhd19mbGFncyAgICAgIHwgdF9i aXRzIHwgICAgICAgdF9kYXRhICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisge0hFQVBfWE1BWF9JTlZBTElEfSB8ICAgICAg ICB8IFx4MDAwMjAyMDAwMDA0MDQwMAorKDEgcm93KQorCitzZWxlY3QgdHVwbGVfZGF0YV9z cGxpdCgndGVzdDlzJzo6cmVnY2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFzaywgdF9pbmZvbWFz azIsIHRfYml0cykKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rl c3Q5cycsIDApKTsKKyAgICAgICB0dXBsZV9kYXRhX3NwbGl0ICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IlxceDAwMDIwMjAwIiwiXFx4MDAwNDA0MDAi fQorKDEgcm93KQorCitkcm9wIHRhYmxlIHRlc3Q5czsKKy0tIHZpcnR1YWwKK2NyZWF0ZSB0 YWJsZSB0ZXN0OXYgKGEgaW50IG5vdCBudWxsLCBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChhICogMikgdmlydHVhbCk7CitpbnNlcnQgaW50byB0ZXN0OXYgdmFsdWVzICgxMzE1ODQp Oworc2VsZWN0IHJhd19mbGFncywgdF9iaXRzLCB0X2RhdGEKKyAgICBmcm9tIGhlYXBfcGFn ZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5dicsIDApKSwgbGF0ZXJhbCBoZWFwX3R1cGxl X2luZm9tYXNrX2ZsYWdzKHRfaW5mb21hc2ssIHRfaW5mb21hc2syKTsKKyAgICAgICAgICAg IHJhd19mbGFncyAgICAgICAgICAgICB8ICB0X2JpdHMgIHwgICB0X2RhdGEgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyB7SEVBUF9IQVNOVUxMLEhFQVBfWE1BWF9JTlZBTElEfSB8IDEwMDAwMDAwIHwgXHgwMDAy MDIwMAorKDEgcm93KQorCitzZWxlY3QgdHVwbGVfZGF0YV9zcGxpdCgndGVzdDl2Jzo6cmVn Y2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFzaywgdF9pbmZvbWFzazIsIHRfYml0cykKKyAgICBm cm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5dicsIDApKTsKKyAgIHR1 cGxlX2RhdGFfc3BsaXQgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IlxceDAwMDIw MjAwIixOVUxMfQorKDEgcm93KQorCitkcm9wIHRhYmxlIHRlc3Q5djsKIC0tIEZhaWx1cmUg d2l0aCBpbmNvcnJlY3QgcGFnZSBzaXplCiAtLSBTdXBwcmVzcyB0aGUgREVUQUlMIG1lc3Nh Z2UsIHRvIGFsbG93IHRoZSB0ZXN0cyB0byB3b3JrIGFjcm9zcyB2YXJpb3VzCiAtLSBwYWdl IHNpemVzLgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwg Yi9jb250cmliL3BhZ2VpbnNwZWN0L3NxbC9wYWdlLnNxbAppbmRleCAzNDZlNGVlMTQyYy4u Yzc1ZmUxMTQ3ZjYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uu c3FsCisrKyBiL2NvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsCkBAIC04NCw2ICs4 NCwyNSBAQCBDUkVBVEUgVEVNUCBUQUJMRSB0ZXN0MSAoYSBpbnQsIGIgaW50KTsKICAgICBm cm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q4JywgMCkpOwogZHJvcCB0 YWJsZSB0ZXN0ODsKIAorLS0gY2hlY2sgc3RvcmFnZSBvZiBnZW5lcmF0ZWQgY29sdW1ucwor LS0gc3RvcmVkCitjcmVhdGUgdGFibGUgdGVzdDlzIChhIGludCBub3QgbnVsbCwgYiBpbnQg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCk7CitpbnNlcnQgaW50byB0ZXN0 OXMgdmFsdWVzICgxMzE1ODQpOworc2VsZWN0IHJhd19mbGFncywgdF9iaXRzLCB0X2RhdGEK KyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5cycsIDApKSwg bGF0ZXJhbCBoZWFwX3R1cGxlX2luZm9tYXNrX2ZsYWdzKHRfaW5mb21hc2ssIHRfaW5mb21h c2syKTsKK3NlbGVjdCB0dXBsZV9kYXRhX3NwbGl0KCd0ZXN0OXMnOjpyZWdjbGFzcywgdF9k YXRhLCB0X2luZm9tYXNrLCB0X2luZm9tYXNrMiwgdF9iaXRzKQorICAgIGZyb20gaGVhcF9w YWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDlzJywgMCkpOworZHJvcCB0YWJsZSB0ZXN0 OXM7CisKKy0tIHZpcnR1YWwKK2NyZWF0ZSB0YWJsZSB0ZXN0OXYgKGEgaW50IG5vdCBudWxs LCBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgdmlydHVhbCk7CitpbnNlcnQg aW50byB0ZXN0OXYgdmFsdWVzICgxMzE1ODQpOworc2VsZWN0IHJhd19mbGFncywgdF9iaXRz LCB0X2RhdGEKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5 dicsIDApKSwgbGF0ZXJhbCBoZWFwX3R1cGxlX2luZm9tYXNrX2ZsYWdzKHRfaW5mb21hc2ss IHRfaW5mb21hc2syKTsKK3NlbGVjdCB0dXBsZV9kYXRhX3NwbGl0KCd0ZXN0OXYnOjpyZWdj bGFzcywgdF9kYXRhLCB0X2luZm9tYXNrLCB0X2luZm9tYXNrMiwgdF9iaXRzKQorICAgIGZy b20gaGVhcF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDl2JywgMCkpOworZHJvcCB0 YWJsZSB0ZXN0OXY7CisKIC0tIEZhaWx1cmUgd2l0aCBpbmNvcnJlY3QgcGFnZSBzaXplCiAt LSBTdXBwcmVzcyB0aGUgREVUQUlMIG1lc3NhZ2UsIHRvIGFsbG93IHRoZSB0ZXN0cyB0byB3 b3JrIGFjcm9zcyB2YXJpb3VzCiAtLSBwYWdlIHNpemVzLgpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9z dGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggZjJiY2Q2YWE5OGMu LjYxNGU4MTM1ZTBlIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3Rl ZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVk L3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTcyODMsNjUgKzcyODMsNjggQEAgc2VsZWN0ICogZnJv bSByZW0xOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogY3JlYXRlIHRhYmxlIGdsb2MxICgKICAgYSBp bnQsCi0gIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQpOworICBi IGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkLAorICBjIGludAorKTsK IGFsdGVyIHRhYmxlIGdsb2MxIHNldCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gJ2ZhbHNlJyk7 CiBjcmVhdGUgZm9yZWlnbiB0YWJsZSBncmVtMSAoCiAgIGEgaW50LAotICBiIGludCBnZW5l cmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkKQotICBzZXJ2ZXIgbG9vcGJhY2sgb3B0 aW9ucyh0YWJsZV9uYW1lICdnbG9jMScpOworICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChhICogMikgc3RvcmVkLAorICBjIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMykg dmlydHVhbAorKSBzZXJ2ZXIgbG9vcGJhY2sgb3B0aW9ucyh0YWJsZV9uYW1lICdnbG9jMScp OwogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogaW5zZXJ0IGludG8gZ3JlbTEgKGEp IHZhbHVlcyAoMSksICgyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBJbnNl cnQgb24gcHVibGljLmdyZW0xCi0gICBSZW1vdGUgU1FMOiBJTlNFUlQgSU5UTyBwdWJsaWMu Z2xvYzEoYSwgYikgVkFMVUVTICgkMSwgREVGQVVMVCkKKyAgIFJlbW90ZSBTUUw6IElOU0VS VCBJTlRPIHB1YmxpYy5nbG9jMShhLCBiLCBjKSBWQUxVRVMgKCQxLCBERUZBVUxULCBERUZB VUxUKQogICAgQmF0Y2ggU2l6ZTogMQogICAgLT4gIFZhbHVlcyBTY2FuIG9uICIqVkFMVUVT KiIKLSAgICAgICAgIE91dHB1dDogIipWQUxVRVMqIi5jb2x1bW4xLCBOVUxMOjppbnRlZ2Vy CisgICAgICAgICBPdXRwdXQ6ICIqVkFMVUVTKiIuY29sdW1uMSwgTlVMTDo6aW50ZWdlciwg TlVMTDo6aW50ZWdlcgogKDUgcm93cykKIAogaW5zZXJ0IGludG8gZ3JlbTEgKGEpIHZhbHVl cyAoMSksICgyKTsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIHVwZGF0ZSBncmVt MSBzZXQgYSA9IDIyIHdoZXJlIGEgPSAyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBVcGRhdGUgb24gcHVibGljLmdyZW0xCi0gICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGlj Lmdsb2MxIFNFVCBhID0gJDIsIGIgPSBERUZBVUxUIFdIRVJFIGN0aWQgPSAkMQorICAgUmVt b3RlIFNRTDogVVBEQVRFIHB1YmxpYy5nbG9jMSBTRVQgYSA9ICQyLCBiID0gREVGQVVMVCwg YyA9IERFRkFVTFQgV0hFUkUgY3RpZCA9ICQxCiAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1 YmxpYy5ncmVtMQogICAgICAgICAgT3V0cHV0OiAyMiwgY3RpZCwgZ3JlbTEuKgotICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQgRlJPTSBwdWJsaWMuZ2xvYzEgV0hF UkUgKChhID0gMikpIEZPUiBVUERBVEUKKyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBh LCBiLCBjLCBjdGlkIEZST00gcHVibGljLmdsb2MxIFdIRVJFICgoYSA9IDIpKSBGT1IgVVBE QVRFCiAoNSByb3dzKQogCiB1cGRhdGUgZ3JlbTEgc2V0IGEgPSAyMiB3aGVyZSBhID0gMjsK IHNlbGVjdCAqIGZyb20gZ2xvYzE7Ci0gYSAgfCBiICAKLS0tLS0rLS0tLQotICAxIHwgIDIK LSAyMiB8IDQ0CisgYSAgfCBiICB8IGMgCistLS0tKy0tLS0rLS0tCisgIDEgfCAgMiB8ICAK KyAyMiB8IDQ0IHwgIAogKDIgcm93cykKIAogc2VsZWN0ICogZnJvbSBncmVtMTsKLSBhICB8 IGIgIAotLS0tLSstLS0tCi0gIDEgfCAgMgotIDIyIHwgNDQKKyBhICB8IGIgIHwgYyAgCist LS0tKy0tLS0rLS0tLQorICAxIHwgIDIgfCAgMworIDIyIHwgNDQgfCA2NgogKDIgcm93cykK IAogZGVsZXRlIGZyb20gZ3JlbTE7CiAtLSB0ZXN0IGNvcHkgZnJvbQogY29weSBncmVtMSBm cm9tIHN0ZGluOwogc2VsZWN0ICogZnJvbSBnbG9jMTsKLSBhIHwgYiAKLS0tLSstLS0KLSAx IHwgMgotIDIgfCA0CisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAxIHwgMiB8ICAKKyAy IHwgNCB8ICAKICgyIHJvd3MpCiAKIHNlbGVjdCAqIGZyb20gZ3JlbTE7Ci0gYSB8IGIgCi0t LS0rLS0tCi0gMSB8IDIKLSAyIHwgNAorIGEgfCBiIHwgYyAKKy0tLSstLS0rLS0tCisgMSB8 IDIgfCAzCisgMiB8IDQgfCA2CiAoMiByb3dzKQogCiBkZWxldGUgZnJvbSBncmVtMTsKQEAg LTczNDksMjggKzczNTIsMjggQEAgZGVsZXRlIGZyb20gZ3JlbTE7CiBhbHRlciBzZXJ2ZXIg bG9vcGJhY2sgb3B0aW9ucyAoYWRkIGJhdGNoX3NpemUgJzEwJyk7CiBleHBsYWluICh2ZXJi b3NlLCBjb3N0cyBvZmYpCiBpbnNlcnQgaW50byBncmVtMSAoYSkgdmFsdWVzICgxKSwgKDIp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEluc2VydCBvbiBwdWJsaWMuZ3Jl bTEKLSAgIFJlbW90ZSBTUUw6IElOU0VSVCBJTlRPIHB1YmxpYy5nbG9jMShhLCBiKSBWQUxV RVMgKCQxLCBERUZBVUxUKQorICAgUmVtb3RlIFNRTDogSU5TRVJUIElOVE8gcHVibGljLmds b2MxKGEsIGIsIGMpIFZBTFVFUyAoJDEsIERFRkFVTFQsIERFRkFVTFQpCiAgICBCYXRjaCBT aXplOiAxMAogICAgLT4gIFZhbHVlcyBTY2FuIG9uICIqVkFMVUVTKiIKLSAgICAgICAgIE91 dHB1dDogIipWQUxVRVMqIi5jb2x1bW4xLCBOVUxMOjppbnRlZ2VyCisgICAgICAgICBPdXRw dXQ6ICIqVkFMVUVTKiIuY29sdW1uMSwgTlVMTDo6aW50ZWdlciwgTlVMTDo6aW50ZWdlcgog KDUgcm93cykKIAogaW5zZXJ0IGludG8gZ3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKIHNl bGVjdCAqIGZyb20gZ2xvYzE7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSAyIHwgNAor IGEgfCBiIHwgYyAKKy0tLSstLS0rLS0tCisgMSB8IDIgfCAgCisgMiB8IDQgfCAgCiAoMiBy b3dzKQogCiBzZWxlY3QgKiBmcm9tIGdyZW0xOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAy Ci0gMiB8IDQKKyBhIHwgYiB8IGMgCistLS0rLS0tKy0tLQorIDEgfCAyIHwgMworIDIgfCA0 IHwgNgogKDIgcm93cykKIAogZGVsZXRlIGZyb20gZ3JlbTE7CmRpZmYgLS1naXQgYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmluZGV4IDM3MmZlNmRhZDE1Li4zMmUxNmJm YzBlMiAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zk dy5zcWwKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwK QEAgLTE4MzYsMTIgKzE4MzYsMTUgQEAgQ1JFQVRFIFZJRVcgcndfdmlldyBBUyBTRUxFQ1Qg KiBGUk9NIHBhcmVudF90YmwgV0hFUkUgYSA8IDUgV0lUSCBDSEVDSyBPUFRJT047CiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiBjcmVhdGUgdGFibGUgZ2xvYzEgKAogICBhIGludCwKLSAgYiBpbnQg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCk7CisgIGIgaW50IGdlbmVyYXRl ZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQsCisgIGMgaW50CispOwogYWx0ZXIgdGFibGUg Z2xvYzEgc2V0IChhdXRvdmFjdXVtX2VuYWJsZWQgPSAnZmFsc2UnKTsKIGNyZWF0ZSBmb3Jl aWduIHRhYmxlIGdyZW0xICgKICAgYSBpbnQsCi0gIGIgaW50IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAyKSBzdG9yZWQpCi0gIHNlcnZlciBsb29wYmFjayBvcHRpb25zKHRhYmxlX25h bWUgJ2dsb2MxJyk7CisgIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9y ZWQsCisgIGMgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAzKSB2aXJ0dWFsCispIHNl cnZlciBsb29wYmFjayBvcHRpb25zKHRhYmxlX25hbWUgJ2dsb2MxJyk7CiBleHBsYWluICh2 ZXJib3NlLCBjb3N0cyBvZmYpCiBpbnNlcnQgaW50byBncmVtMSAoYSkgdmFsdWVzICgxKSwg KDIpOwogaW5zZXJ0IGludG8gZ3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKaW5kZXggOTY0YzgxOWEwMmQuLjhjMmI1MDM4MTMyIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bApAQCAtMTMxOCw4ICsxMzE4LDggQEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0 ZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8 cGFyYT4KICAgICAgICBJZiBhIHplcm8gYnl0ZSAoPGxpdGVyYWw+Jyc8L2xpdGVyYWw+KSwg dGhlbiBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLgotICAgICAgIE90aGVyd2lzZSwgPGxpdGVy YWw+czwvbGl0ZXJhbD4gPSBzdG9yZWQuICAoT3RoZXIgdmFsdWVzIG1pZ2h0IGJlIGFkZGVk Ci0gICAgICAgaW4gdGhlIGZ1dHVyZS4pCisgICAgICAgT3RoZXJ3aXNlLCA8bGl0ZXJhbD5z PC9saXRlcmFsPiA9IHN0b3JlZCwgPGxpdGVyYWw+djwvbGl0ZXJhbD4gPQorICAgICAgIHZp cnR1YWwuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRl eCBmMDJmNjdkN2I4Ni4uMmQ3YzUxNmQ1NjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTM2MSw3ICszNjEsNiBA QCA8dGl0bGU+R2VuZXJhdGVkIENvbHVtbnM8L3RpdGxlPgogICAgc3RvcmFnZSBhbmQgaXMg Y29tcHV0ZWQgd2hlbiBpdCBpcyByZWFkLiAgVGh1cywgYSB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW4KICAgIGlzIHNpbWlsYXIgdG8gYSB2aWV3IGFuZCBhIHN0b3JlZCBnZW5lcmF0ZWQg Y29sdW1uIGlzIHNpbWlsYXIgdG8gYQogICAgbWF0ZXJpYWxpemVkIHZpZXcgKGV4Y2VwdCB0 aGF0IGl0IGlzIGFsd2F5cyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkpLgotICAgPHByb2R1Y3Ru YW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBjdXJyZW50bHkgaW1wbGVtZW50cyBvbmx5 IHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAt MzcxLDEyICszNzAsMTIgQEAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRsZT4KIENS RUFURSBUQUJMRSBwZW9wbGUgKAogICAgIC4uLiwKICAgICBoZWlnaHRfY20gbnVtZXJpYywK LSAgICBoZWlnaHRfaW4gbnVtZXJpYyA8ZW1waGFzaXM+R0VORVJBVEVEIEFMV0FZUyBBUyAo aGVpZ2h0X2NtIC8gMi41NCkgU1RPUkVEPC9lbXBoYXNpcz4KKyAgICBoZWlnaHRfaW4gbnVt ZXJpYyA8ZW1waGFzaXM+R0VORVJBVEVEIEFMV0FZUyBBUyAoaGVpZ2h0X2NtIC8gMi41NCk8 L2VtcGhhc2lzPgogKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICBUaGUga2V5d29yZCA8bGl0 ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IG11c3QgYmUgc3BlY2lmaWVkIHRvIGNob29zZSB0aGUK LSAgIHN0b3JlZCBraW5kIG9mIGdlbmVyYXRlZCBjb2x1bW4uICBTZWUgPHhyZWYgbGlua2Vu ZD0ic3FsLWNyZWF0ZXRhYmxlIi8+IGZvcgotICAgbW9yZSBkZXRhaWxzLgorICAgQSBnZW5l cmF0ZWQgY29sdW1uIGlzIGJ5IGRlZmF1bHQgb2YgdGhlIHZpcnR1YWwga2luZC4gIFVzZSB0 aGUga2V5d29yZHMKKyAgIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IG9yIDxsaXRlcmFs PlNUT1JFRDwvbGl0ZXJhbD4gdG8gbWFrZSB0aGUgY2hvaWNlCisgICBleHBsaWNpdC4gIFNl ZSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUiLz4gZm9yIG1vcmUgZGV0YWlscy4K ICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtNDQyLDEyICs0NDEsMTggQEAgPHRpdGxlPkdl bmVyYXRlZCBDb2x1bW5zPC90aXRsZT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFy YT4KICAgICAgICAgSWYgYSBwYXJlbnQgY29sdW1uIGlzIGEgZ2VuZXJhdGVkIGNvbHVtbiwg aXRzIGNoaWxkIGNvbHVtbiBtdXN0IGFsc28KLSAgICAgICAgYmUgYSBnZW5lcmF0ZWQgY29s dW1uOyBob3dldmVyLCB0aGUgY2hpbGQgY29sdW1uIGNhbiBoYXZlIGEKLSAgICAgICAgZGlm ZmVyZW50IGdlbmVyYXRpb24gZXhwcmVzc2lvbi4gIFRoZSBnZW5lcmF0aW9uIGV4cHJlc3Np b24gdGhhdCBpcworICAgICAgICBiZSBhIGdlbmVyYXRlZCBjb2x1bW4gb2YgdGhlIHNhbWUg a2luZCAoc3RvcmVkIG9yIHZpcnR1YWwpOyBob3dldmVyLAorICAgICAgICB0aGUgY2hpbGQg Y29sdW1uIGNhbiBoYXZlIGEgZGlmZmVyZW50IGdlbmVyYXRpb24gZXhwcmVzc2lvbi4KKyAg ICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgRm9yIHN0b3JlZCBnZW5l cmF0ZWQgY29sdW1ucywgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbiB0aGF0IGlzCiAgICAg ICAgIGFjdHVhbGx5IGFwcGxpZWQgZHVyaW5nIGluc2VydCBvciB1cGRhdGUgb2YgYSByb3cg aXMgdGhlIG9uZQotICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIHRhYmxlIHRoYXQgdGhl IHJvdyBpcyBwaHlzaWNhbGx5IGluLgotICAgICAgICAoVGhpcyBpcyB1bmxpa2UgdGhlIGJl aGF2aW9yIGZvciBjb2x1bW4gZGVmYXVsdHM6IGZvciB0aG9zZSwgdGhlCi0gICAgICAgIGRl ZmF1bHQgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWJsZSBuYW1lZCBpbiB0aGUgcXVl cnkgYXBwbGllcy4pCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGFibGUgdGhhdCB0 aGUgcm93IGlzIHBoeXNpY2FsbHkgaW4uICAoVGhpcyBpcworICAgICAgICB1bmxpa2UgdGhl IGJlaGF2aW9yIGZvciBjb2x1bW4gZGVmYXVsdHM6IGZvciB0aG9zZSwgdGhlIGRlZmF1bHQg dmFsdWUKKyAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YWJsZSBuYW1lZCBpbiB0aGUg cXVlcnkgYXBwbGllcy4pICBGb3IgdmlydHVhbAorICAgICAgICBnZW5lcmF0ZWQgY29sdW1u cywgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBvZiB0aGUgdGFibGUgbmFtZWQgaW4gdGhl CisgICAgICAgIHF1ZXJ5IGFwcGxpZXMgd2hlbiBhIHRhYmxlIGlzIHJlYWQuCiAgICAgICAg PC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdGFibGUuc2dtbAppbmRleCAzNjc3MGMwMTJhNi4uYzU1YWIyNWUwNmEgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKQEAgLTEwMiw3ICsxMDIsNyBAQAogICBO VUxMIHwKICAgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVz c2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklUIF0gfAogICBERUZBVUxUIDxyZXBs YWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiB8Ci0gIEdFTkVSQVRFRCBBTFdB WVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBT VE9SRUQgfAorICBHRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRp b25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBTVE9SRUQgfCBWSVJUVUFMIF0gfAogICBHRU5F UkFURUQgeyBBTFdBWVMgfCBCWSBERUZBVUxUIH0gQVMgSURFTlRJVFkgWyAoIDxyZXBsYWNl YWJsZT5zZXF1ZW5jZV9vcHRpb25zPC9yZXBsYWNlYWJsZT4gKSBdIHwKICAgVU5JUVVFIFsg TlVMTFMgWyBOT1QgXSBESVNUSU5DVCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAogICBQUklNQVJZIEtFWSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFi bGU+IHwKQEAgLTI2Niw2ICsyNjYsMTEgQEAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4K ICAgICAgIGluIHRoZSBjb2x1bW4gaXMgcmV3cml0dGVuIGFuZCBhbGwgdGhlIGZ1dHVyZSBj aGFuZ2VzIHdpbGwgYXBwbHkgdGhlIG5ldwogICAgICAgZ2VuZXJhdGlvbiBleHByZXNzaW9u LgogICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gaXMgY3Vy cmVudGx5IG9ubHkgc3VwcG9ydGVkIGZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgKG5v dAorICAgICAgdmlydHVhbCBvbmVzKS4KKyAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtMjc4LDEwICsyODMsMTUgQEAgPHRpdGxlPkRl c2NyaXB0aW9uPC90aXRsZT4KICAgICAgIGxvbmdlciBhcHBseSB0aGUgZ2VuZXJhdGlvbiBl eHByZXNzaW9uLgogICAgICA8L3BhcmE+CiAKKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZv cm0gaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGZvciBzdG9yZWQgZ2VuZXJhdGVkIGNv bHVtbnMgKG5vdAorICAgICAgdmlydHVhbCBvbmVzKS4KKyAgICAgPC9wYXJhPgorCiAgICAg IDxwYXJhPgogICAgICAgSWYgPGxpdGVyYWw+RFJPUCBFWFBSRVNTSU9OIElGIEVYSVNUUzwv bGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGFuZCB0aGUKLSAgICAgIGNvbHVtbiBpcyBub3QgYSBz dG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiwgbm8gZXJyb3IgaXMgdGhyb3duLiAgSW4gdGhpcwot ICAgICAgY2FzZSBhIG5vdGljZSBpcyBpc3N1ZWQgaW5zdGVhZC4KKyAgICAgIGNvbHVtbiBp cyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLCBubyBlcnJvciBpcyB0aHJvd24uICBJbiB0aGlz IGNhc2UgYQorICAgICAgbm90aWNlIGlzIGlzc3VlZCBpbnN0ZWFkLgogICAgICA8L3BhcmE+ CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sCmluZGV4IGRjNGI5MDc1OTkwLi4yMWI1 ZDZhMTRkMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90 YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUu c2dtbApAQCAtNDcsNyArNDcsNyBAQAogICBOVUxMIHwKICAgQ0hFQ0sgKCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJ TkhFUklUIF0gfAogICBERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxh Y2VhYmxlPiB8Ci0gIEdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJh dGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBTVE9SRUQgfQorICBHRU5FUkFURUQgQUxXQVlT IEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBT VE9SRUQgfCBWSVJUVUFMIF0gfQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNl PgogCkBAIC0yNzUsNyArMjc1LDcgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAg PC92YXJsaXN0ZW50cnk+CiAKICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGxpdGVy YWw+R0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8 L3JlcGxhY2VhYmxlPiApIFNUT1JFRDwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5Pmdl bmVyYXRlZCBjb2x1bW48L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorICAgIDx0ZXJt PjxsaXRlcmFsPkdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlv bl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNUT1JFRCB8IFZJUlRVQUwgXTwvbGl0ZXJhbD48 aW5kZXh0ZXJtPjxwcmltYXJ5PmdlbmVyYXRlZCBjb2x1bW48L3ByaW1hcnk+PC9pbmRleHRl cm0+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBUaGlzIGNs YXVzZSBjcmVhdGVzIHRoZSBjb2x1bW4gYXMgYSA8Zmlyc3R0ZXJtPmdlbmVyYXRlZApAQCAt Mjg0LDEwICsyODQsMTMgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgICA8L3Bh cmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBUaGUga2V5d29yZCA8bGl0ZXJhbD5TVE9SRUQ8 L2xpdGVyYWw+IGlzIHJlcXVpcmVkIHRvIHNpZ25pZnkgdGhhdCB0aGUKKyAgICAgIFdoZW4g PGxpdGVyYWw+VklSVFVBTDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgY29sdW1uIHdp bGwgYmUKKyAgICAgIGNvbXB1dGVkIHdoZW4gaXQgaXMgcmVhZC4gIChUaGUgZm9yZWlnbi1k YXRhIHdyYXBwZXIgd2lsbCBzZWUgaXQgYXMgYQorICAgICAgbnVsbCB2YWx1ZSBpbiBuZXcg cm93cyBhbmQgbWF5IGNob29zZSB0byBzdG9yZSBpdCBhcyBhIG51bGwgdmFsdWUgb3IKKyAg ICAgIGlnbm9yZSBpdCBhbHRvZ2V0aGVyLikgIFdoZW4gPGxpdGVyYWw+U1RPUkVEPC9saXRl cmFsPiBpcyBzcGVjaWZpZWQsIHRoZQogICAgICAgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQg b24gd3JpdGUuICAoVGhlIGNvbXB1dGVkIHZhbHVlIHdpbGwgYmUgcHJlc2VudGVkCiAgICAg ICB0byB0aGUgZm9yZWlnbi1kYXRhIHdyYXBwZXIgZm9yIHN0b3JhZ2UgYW5kIG11c3QgYmUg cmV0dXJuZWQgb24KLSAgICAgIHJlYWRpbmcuKQorICAgICAgcmVhZGluZy4pICA8bGl0ZXJh bD5WSVJUVUFMPC9saXRlcmFsPiBpcyB0aGUgZGVmYXVsdC4KICAgICAgPC9wYXJhPgogCiAg ICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggODM4NTli YWM3NmYuLjUwOTYyNGIyNTBjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwK QEAgLTY1LDcgKzY1LDcgQEAKICAgTlVMTCB8CiAgIENIRUNLICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIFsgTk8gSU5IRVJJ VCBdIHwKICAgREVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJs ZT4gfAotICBHRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25f ZXhwcjwvcmVwbGFjZWFibGU+ICkgU1RPUkVEIHwKKyAgR0VORVJBVEVEIEFMV0FZUyBBUyAo IDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RPUkVE IHwgVklSVFVBTCBdIHwKICAgR0VORVJBVEVEIHsgQUxXQVlTIHwgQlkgREVGQVVMVCB9IEFT IElERU5USVRZIFsgKCA8cmVwbGFjZWFibGU+c2VxdWVuY2Vfb3B0aW9uczwvcmVwbGFjZWFi bGU+ICkgXSB8CiAgIFVOSVFVRSBbIE5VTExTIFsgTk9UIF0gRElTVElOQ1QgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+ IHwKICAgUFJJTUFSWSBLRVkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4 X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CkBAIC03MjQsOCArNzI0LDkgQEAgPHRpdGxl PlBhcmFtZXRlcnM8L3RpdGxlPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5JTkNMVURJTkcg R0VORVJBVEVEPC9saXRlcmFsPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVtPgogICAgICAg ICAgPHBhcmE+Ci0gICAgICAgICAgQW55IGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgb2YgY29w aWVkIGNvbHVtbiBkZWZpbml0aW9ucyB3aWxsIGJlCi0gICAgICAgICAgY29waWVkLiAgQnkg ZGVmYXVsdCwgbmV3IGNvbHVtbnMgd2lsbCBiZSByZWd1bGFyIGJhc2UgY29sdW1ucy4KKyAg ICAgICAgICBBbnkgZ2VuZXJhdGlvbiBleHByZXNzaW9ucyBhcyB3ZWxsIGFzIHRoZSBzdG9y ZWQvdmlydHVhbCBjaG9pY2Ugb2YKKyAgICAgICAgICBjb3BpZWQgY29sdW1uIGRlZmluaXRp b25zIHdpbGwgYmUgY29waWVkLiAgQnkgZGVmYXVsdCwgbmV3IGNvbHVtbnMKKyAgICAgICAg ICB3aWxsIGJlIHJlZ3VsYXIgYmFzZSBjb2x1bW5zLgogICAgICAgICAgPC9wYXJhPgogICAg ICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtOTAxLDcgKzkw Miw3IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgIDwvdmFybGlzdGVudHJ5Pgog CiAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMtZ2VuZXJhdGVk LXN0b3JlZCI+Ci0gICAgPHRlcm0+PGxpdGVyYWw+R0VORVJBVEVEIEFMV0FZUyBBUyAoIDxy ZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFNUT1JFRDwvbGl0 ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PmdlbmVyYXRlZCBjb2x1bW48L3ByaW1hcnk+PC9p bmRleHRlcm0+PC90ZXJtPgorICAgIDx0ZXJtPjxsaXRlcmFsPkdFTkVSQVRFRCBBTFdBWVMg QVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNU T1JFRCB8IFZJUlRVQUwgXTwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PmdlbmVyYXRl ZCBjb2x1bW48L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4K ICAgICAgPHBhcmE+CiAgICAgICBUaGlzIGNsYXVzZSBjcmVhdGVzIHRoZSBjb2x1bW4gYXMg YSA8Zmlyc3R0ZXJtPmdlbmVyYXRlZApAQCAtOTEwLDggKzkxMSwxMSBAQCA8dGl0bGU+UGFy YW1ldGVyczwvdGl0bGU+CiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KLSAgICAgIFRo ZSBrZXl3b3JkIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgcmVxdWlyZWQgdG8gc2ln bmlmeSB0aGF0IHRoZQotICAgICAgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQgb24gd3JpdGUg YW5kIHdpbGwgYmUgc3RvcmVkIG9uIGRpc2suCisgICAgICBXaGVuIDxsaXRlcmFsPlZJUlRV QUw8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlIGNvbHVtbiB3aWxsIGJlCisgICAgICBj b21wdXRlZCB3aGVuIGl0IGlzIHJlYWQsIGFuZCBpdCB3aWxsIG5vdCBvY2N1cHkgYW55IHN0 b3JhZ2UuICBXaGVuCisgICAgICA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlzIHNwZWNp ZmllZCwgdGhlIGNvbHVtbiB3aWxsIGJlIGNvbXB1dGVkIG9uCisgICAgICB3cml0ZSBhbmQg d2lsbCBiZSBzdG9yZWQgb24gZGlzay4gIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IGlz IHRoZQorICAgICAgZGVmYXVsdC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgpAQCAt MjQ1MSw5ICsyNDU1LDkgQEAgPHRpdGxlPk11bHRpcGxlIElkZW50aXR5IENvbHVtbnM8L3Rp dGxlPgogICAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRsZT4KIAogICAgPHBhcmE+ Ci0gICAgVGhlIG9wdGlvbiA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlzIG5vdCBzdGFu ZGFyZCBidXQgaXMgYWxzbyB1c2VkIGJ5Ci0gICAgb3RoZXIgU1FMIGltcGxlbWVudGF0aW9u cy4gIFRoZSBTUUwgc3RhbmRhcmQgZG9lcyBub3Qgc3BlY2lmeSB0aGUgc3RvcmFnZQotICAg IG9mIGdlbmVyYXRlZCBjb2x1bW5zLgorICAgIFRoZSBvcHRpb25zIDxsaXRlcmFsPlNUT1JF RDwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IGFyZQorICAgIG5v dCBzdGFuZGFyZCBidXQgYXJlIGFsc28gdXNlZCBieSBvdGhlciBTUUwgaW1wbGVtZW50YXRp b25zLiAgVGhlIFNRTAorICAgIHN0YW5kYXJkIGRvZXMgbm90IHNwZWNpZnkgdGhlIHN0b3Jh Z2Ugb2YgZ2VuZXJhdGVkIGNvbHVtbnMuCiAgICA8L3BhcmE+CiAgIDwvcmVmc2VjdDI+CiAK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RyaWdnZXIuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RyaWdnZXIuc2dtbAppbmRleCA5ODJhYjZmM2VlNC4u NzUyZmU1MDg2MGEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RyaWdn ZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwKQEAg LTI3OSw3ICsyNzksNyBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgIDxwYXJh PgogICAgICAgPGxpdGVyYWw+SU5TVEVBRCBPRiBVUERBVEU8L2xpdGVyYWw+IGV2ZW50cyBk byBub3QgYWxsb3cgYSBsaXN0IG9mIGNvbHVtbnMuCiAgICAgICBBIGNvbHVtbiBsaXN0IGNh bm5vdCBiZSBzcGVjaWZpZWQgd2hlbiByZXF1ZXN0aW5nIHRyYW5zaXRpb24gcmVsYXRpb25z LAotICAgICAgZWl0aGVyLgorICAgICAgZWl0aGVyLiAgVmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGUgY29sdW1uIGxpc3QuCiAgICAgIDwvcGFy YT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbApp bmRleCBhOWFiYWFiOTA1Ni4uNDZjNmMyZjEyNmYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC90cmlnZ2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbApAQCAtMjg5 LDYgKzI4OSwxMCBAQCA8dGl0bGU+T3ZlcnZpZXcgb2YgVHJpZ2dlciBCZWhhdmlvcjwvdGl0 bGU+CiAgICAgPGxpdGVyYWw+QkVGT1JFPC9saXRlcmFsPiB0cmlnZ2VyLiAgQ2hhbmdlcyB0 byB0aGUgdmFsdWUgb2YgYSBnZW5lcmF0ZWQKICAgICBjb2x1bW4gaW4gYSA8bGl0ZXJhbD5C RUZPUkU8L2xpdGVyYWw+IHRyaWdnZXIgYXJlIGlnbm9yZWQgYW5kIHdpbGwgYmUKICAgICBv dmVyd3JpdHRlbi4KKyAgICBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBuZXZlciBj b21wdXRlZCB3aGVuIHRyaWdnZXJzIGZpcmUuICBJbiB0aGUgQworICAgIGxhbmd1YWdlIGlu dGVyZmFjZSwgdGhlaXIgY29udGVudCBpcyB1bmRlZmluZWQgaW4gYSB0cmlnZ2VyIGZ1bmN0 aW9uLgorICAgIEhpZ2hlci1sZXZlbCBwcm9ncmFtbWluZyBsYW5ndWFnZXMgc2hvdWxkIHBy ZXZlbnQgYWNjZXNzIHRvIHZpcnR1YWwKKyAgICBnZW5lcmF0ZWQgY29sdW1ucyBpbiB0cmln Z2Vycy4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v dHVwZGVzYy5jCmluZGV4IDQ3Mzc5ZmVmMjIwLi4xMzg0MGJhNTMzYyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi90dXBkZXNjLmMKQEAgLTE5MCw2ICsxOTAsNyBAQCBDcmVhdGVUdXBs ZURlc2NDb3B5Q29uc3RyKFR1cGxlRGVzYyB0dXBkZXNjKQogCiAJCWNweS0+aGFzX25vdF9u dWxsID0gY29uc3RyLT5oYXNfbm90X251bGw7CiAJCWNweS0+aGFzX2dlbmVyYXRlZF9zdG9y ZWQgPSBjb25zdHItPmhhc19nZW5lcmF0ZWRfc3RvcmVkOworCQljcHktPmhhc19nZW5lcmF0 ZWRfdmlydHVhbCA9IGNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsOwogCiAJCWlmICgo Y3B5LT5udW1fZGVmdmFsID0gY29uc3RyLT5udW1fZGVmdmFsKSA+IDApCiAJCXsKQEAgLTQ5 NCw2ICs0OTUsOCBAQCBlcXVhbFR1cGxlRGVzY3MoVHVwbGVEZXNjIHR1cGRlc2MxLCBUdXBs ZURlc2MgdHVwZGVzYzIpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCWlmIChjb25zdHIxLT5oYXNf Z2VuZXJhdGVkX3N0b3JlZCAhPSBjb25zdHIyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZCkKIAkJ CXJldHVybiBmYWxzZTsKKwkJaWYgKGNvbnN0cjEtPmhhc19nZW5lcmF0ZWRfdmlydHVhbCAh PSBjb25zdHIyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpCisJCQlyZXR1cm4gZmFsc2U7CiAJ CW4gPSBjb25zdHIxLT5udW1fZGVmdmFsOwogCQlpZiAobiAhPSAoaW50KSBjb25zdHIyLT5u dW1fZGVmdmFsKQogCQkJcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV9oYW5kbGVyLmMKaW5kZXggYThkOTVlMGYxYzEuLmVjYzNmNTk5YjQxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKQEAgLTIwNDcsNiAr MjA0Nyw4IEBAIGhlYXBhbV9yZWxhdGlvbl9uZWVkc190b2FzdF90YWJsZShSZWxhdGlvbiBy ZWwpCiAKIAkJaWYgKGF0dC0+YXR0aXNkcm9wcGVkKQogCQkJY29udGludWU7CisJCWlmIChh dHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQlj b250aW51ZTsKIAkJZGF0YV9sZW5ndGggPSBhdHRfYWxpZ25fbm9taW5hbChkYXRhX2xlbmd0 aCwgYXR0LT5hdHRhbGlnbik7CiAJCWlmIChhdHQtPmF0dGxlbiA+IDApCiAJCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMKaW5kZXggYzU0YTU0M2M1MzYuLjdhOTU0Y2Y2Y2MzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hl YXAuYwpAQCAtNTEyLDcgKzUxMiw3IEBAIENoZWNrQXR0cmlidXRlTmFtZXNUeXBlcyhUdXBs ZURlc2MgdHVwZGVzYywgY2hhciByZWxraW5kLAogCQkJCQkJICAgVHVwbGVEZXNjQXR0cih0 dXBkZXNjLCBpKS0+YXR0dHlwaWQsCiAJCQkJCQkgICBUdXBsZURlc2NBdHRyKHR1cGRlc2Ms IGkpLT5hdHRjb2xsYXRpb24sCiAJCQkJCQkgICBOSUwsIC8qIGFzc3VtZSB3ZSdyZSBjcmVh dGluZyBhIG5ldyByb3d0eXBlICovCi0JCQkJCQkgICBmbGFncyk7CisJCQkJCQkgICBmbGFn cyB8IChUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklC VVRFX0dFTkVSQVRFRF9WSVJUVUFMID8gQ0hLQVRZUEVfSVNfVklSVFVBTCA6IDApKTsKIAl9 CiB9CiAKQEAgLTU4Nyw2ICs1ODcsMTcgQEAgQ2hlY2tBdHRyaWJ1dGVUeXBlKGNvbnN0IGNo YXIgKmF0dG5hbWUsCiAJfQogCWVsc2UgaWYgKGF0dF90eXB0eXBlID09IFRZUFRZUEVfRE9N QUlOKQogCXsKKwkJLyoKKwkJICogUHJldmVudCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5z IGZyb20gaGF2aW5nIGEgZG9tYWluIHR5cGUuICBXZQorCQkgKiB3b3VsZCBoYXZlIHRvIGVu Zm9yY2UgZG9tYWluIGNvbnN0cmFpbnRzIHdoZW4gY29sdW1ucyB1bmRlcmx5aW5nCisJCSAq IHRoZSBnZW5lcmF0ZWQgY29sdW1uIGNoYW5nZS4gIFRoaXMgY291bGQgcG9zc2libHkgYmUg aW1wbGVtZW50ZWQsCisJCSAqIGJ1dCBpdCdzIG5vdC4KKwkJICovCisJCWlmIChmbGFncyAm IENIS0FUWVBFX0lTX1ZJUlRVQUwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coInZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbiBcIiVzXCIgY2Fubm90IGhhdmUgYSBkb21haW4gdHlwZSIs IGF0dG5hbWUpKSk7CisKIAkJLyoKIAkJICogSWYgaXQncyBhIGRvbWFpbiwgcmVjdXJzZSB0 byBjaGVjayBpdHMgYmFzZSB0eXBlLgogCQkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FuYWx5emUuYwpp bmRleCA5YTU2ZGUyMjgyZi4uYmE3YjI4NTIzZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXpl LmMKQEAgLTEwMzcsNiArMTAzNywxMCBAQCBleGFtaW5lX2F0dHJpYnV0ZShSZWxhdGlvbiBv bmVyZWwsIGludCBhdHRudW0sIE5vZGUgKmluZGV4X2V4cHIpCiAJaWYgKGF0dHItPmF0dGlz ZHJvcHBlZCkKIAkJcmV0dXJuIE5VTEw7CiAKKwkvKiBEb24ndCBhbmFseXplIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbnMgKi8KKwlpZiAoYXR0ci0+YXR0Z2VuZXJhdGVkID09IEFUVFJJ QlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJcmV0dXJuIE5VTEw7CisKIAkvKgogCSAqIEdl dCBhdHRzdGF0dGFyZ2V0IHZhbHVlLiAgU2V0IHRvIC0xIGlmIG51bGwuICAoQW5hbHl6ZSBm dW5jdGlvbnMgZXhwZWN0CiAJICogLTEgdG8gbWVhbiB1c2UgZGVmYXVsdF9zdGF0aXN0aWNz X3RhcmdldDsgc2VlIGZvciBleGFtcGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9pbmRleGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCmlu ZGV4IDJmNjUyNDYzZTNjLi40ZTQ4ODJhM2JkMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhj bWRzLmMKQEAgLTExMDQsNiArMTEwNCw5IEBAIERlZmluZUluZGV4KE9pZCB0YWJsZUlkLAog CS8qCiAJICogV2UgZGlzYWxsb3cgaW5kZXhlcyBvbiBzeXN0ZW0gY29sdW1ucy4gIFRoZXkg d291bGQgbm90IG5lY2Vzc2FyaWx5IGdldAogCSAqIHVwZGF0ZWQgY29ycmVjdGx5LCBhbmQg dGhleSBkb24ndCBzZWVtIHVzZWZ1bCBhbnl3YXkuCisJICoKKwkgKiBBbHNvIGRpc2FsbG93 IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gaW5kZXhlcyAodXNlIGV4cHJlc3Npb24K KwkgKiBpbmRleCBpbnN0ZWFkKS4KIAkgKi8KIAlmb3IgKGludCBpID0gMDsgaSA8IGluZGV4 SW5mby0+aWlfTnVtSW5kZXhBdHRyczsgaSsrKQogCXsKQEAgLTExMTMsMTQgKzExMTYsMjIg QEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCSBlcnJtc2co ImluZGV4IGNyZWF0aW9uIG9uIHN5c3RlbSBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkp OworCisKKwkJaWYgKFR1cGxlRGVzY0F0dHIoUmVsYXRpb25HZXREZXNjcihyZWwpLCBhdHRu byAtIDEpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQor CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJpbmRleCBjcmVhdGlvbiBvbiB2aXJ0dWFsIGdl bmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOwogCX0KIAogCS8qCi0JICog QWxzbyBjaGVjayBmb3Igc3lzdGVtIGNvbHVtbnMgdXNlZCBpbiBleHByZXNzaW9ucyBvciBw cmVkaWNhdGVzLgorCSAqIEFsc28gY2hlY2sgZm9yIHN5c3RlbSBhbmQgZ2VuZXJhdGVkIGNv bHVtbnMgdXNlZCBpbiBleHByZXNzaW9ucyBvcgorCSAqIHByZWRpY2F0ZXMuCiAJICovCiAJ aWYgKGluZGV4SW5mby0+aWlfRXhwcmVzc2lvbnMgfHwgaW5kZXhJbmZvLT5paV9QcmVkaWNh dGUpCiAJewogCQlCaXRtYXBzZXQgICppbmRleGF0dHJzID0gTlVMTDsKKwkJaW50CQkJajsK IAogCQlwdWxsX3ZhcmF0dG5vcygoTm9kZSAqKSBpbmRleEluZm8tPmlpX0V4cHJlc3Npb25z LCAxLCAmaW5kZXhhdHRycyk7CiAJCXB1bGxfdmFyYXR0bm9zKChOb2RlICopIGluZGV4SW5m by0+aWlfUHJlZGljYXRlLCAxLCAmaW5kZXhhdHRycyk7CkBAIC0xMTMzLDYgKzExNDQsMjIg QEAgRGVmaW5lSW5kZXgoT2lkIHRhYmxlSWQsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCQkgZXJybXNnKCJpbmRleCBjcmVhdGlvbiBv biBzeXN0ZW0gY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKIAkJfQorCisJCS8qCisJ CSAqIFhYWCBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGluZGV4IGV4cHJlc3Npb25z IG9yIHByZWRpY2F0ZXMKKwkJICogY291bGQgYmUgc3VwcG9ydGVkLCBidXQgaXQgbmVlZHMg c3VwcG9ydCBpbgorCQkgKiBSZWxhdGlvbkdldEluZGV4RXhwcmVzc2lvbnMoKSBhbmQgUmVs YXRpb25HZXRJbmRleFByZWRpY2F0ZSgpLgorCQkgKi8KKwkJaiA9IC0xOworCQl3aGlsZSAo KGogPSBibXNfbmV4dF9tZW1iZXIoaW5kZXhhdHRycywgaikpID49IDApCisJCXsKKwkJCUF0 dHJOdW1iZXIJYXR0bm8gPSBqICsgRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJl cjsKKworCQkJaWYgKFR1cGxlRGVzY0F0dHIoUmVsYXRpb25HZXREZXNjcihyZWwpLCBhdHRu byAtIDEpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJpbmRleCBjcmVhdGlvbiBvbiB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCQl9CiAJfQogCiAJ LyogSXMgaW5kZXggc2FmZSBmb3Igb3RoZXJzIHRvIGlnbm9yZT8gIFNlZSBzZXRfaW5kZXhz YWZlX3Byb2NmbGFncygpICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z dGF0c2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCmluZGV4IDFk YjNlZjY5ZDIyLi43NDRiMzUwOGMyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3RhdHNjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRzLmMK QEAgLTI0Niw2ICsyNDYsMTIgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQg KnN0bXQpCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CiAJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHN5c3RlbSBjb2x1bW5z IGlzIG5vdCBzdXBwb3J0ZWQiKSkpOwogCisJCQkvKiBEaXNhbGxvdyB1c2Ugb2YgdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJaWYgKGF0dEZv cm0tPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwogCQkJLyogRGlz YWxsb3cgZGF0YSB0eXBlcyB3aXRob3V0IGEgbGVzcy10aGFuIG9wZXJhdG9yICovCiAJCQl0 eXBlID0gbG9va3VwX3R5cGVfY2FjaGUoYXR0Rm9ybS0+YXR0dHlwaWQsIFRZUEVDQUNIRV9M VF9PUFIpOwogCQkJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQpAQCAtMjY5LDYg KzI3NSwxMiBAQCBDcmVhdGVTdGF0aXN0aWNzKENyZWF0ZVN0YXRzU3RtdCAqc3RtdCkKIAkJ CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJCSBl cnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMgaXMgbm90IHN1 cHBvcnRlZCIpKSk7CiAKKwkJCS8qIERpc2FsbG93IHVzZSBvZiB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW5zIGluIGV4dGVuZGVkIHN0YXRzICovCisJCQlpZiAoZ2V0X2F0dGdlbmVyYXRl ZChyZWxpZCwgdmFyLT52YXJhdHRubykgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFM KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9u IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKIAkJ CS8qIERpc2FsbG93IGRhdGEgdHlwZXMgd2l0aG91dCBhIGxlc3MtdGhhbiBvcGVyYXRvciAq LwogCQkJdHlwZSA9IGxvb2t1cF90eXBlX2NhY2hlKHZhci0+dmFydHlwZSwgVFlQRUNBQ0hF X0xUX09QUik7CiAJCQlpZiAodHlwZS0+bHRfb3ByID09IEludmFsaWRPaWQpCkBAIC0yOTAs NyArMzAyLDYgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQgKnN0bXQpCiAK IAkJCUFzc2VydChleHByICE9IE5VTEwpOwogCi0JCQkvKiBEaXNhbGxvdyBleHByZXNzaW9u cyByZWZlcmVuY2luZyBzeXN0ZW0gYXR0cmlidXRlcy4gKi8KIAkJCXB1bGxfdmFyYXR0bm9z KGV4cHIsIDEsICZhdHRudW1zKTsKIAogCQkJayA9IC0xOwpAQCAtMjk4LDEwICszMDksMTcg QEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQgKnN0bXQpCiAJCQl7CiAJCQkJ QXR0ck51bWJlcglhdHRudW0gPSBrICsgRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51 bWJlcjsKIAorCQkJCS8qIERpc2FsbG93IGV4cHJlc3Npb25zIHJlZmVyZW5jaW5nIHN5c3Rl bSBhdHRyaWJ1dGVzLiAqLwogCQkJCWlmIChhdHRudW0gPD0gMCkKIAkJCQkJZXJlcG9ydChF UlJPUiwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CiAJCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1u cyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKworCQkJCS8qIERpc2FsbG93IHVzZSBvZiB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIGV4dGVuZGVkIHN0YXRzICovCisJCQkJaWYgKGdl dF9hdHRnZW5lcmF0ZWQocmVsaWQsIGF0dG51bSkgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9W SVJUVUFMKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNy ZWF0aW9uIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIp KSk7CiAJCQl9CiAKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDQz NDViOTZkZTVlLi4yMjU5MWMyMzNlOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMK QEAgLTI5NjYsNiArMjk2NiwxNSBAQCBNZXJnZUF0dHJpYnV0ZXMoTGlzdCAqY29sdW1ucywg Y29uc3QgTGlzdCAqc3VwZXJzLCBjaGFyIHJlbHBlcnNpc3RlbmNlLAogCQkJCQkJCQkJIGVy cmhpbnQoIkEgY2hpbGQgdGFibGUgY29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5sZXNz IGl0cyBwYXJlbnQgY29sdW1uIGlzLiIpKSk7CiAJCQkJCX0KIAorCQkJCQlpZiAoY29sZGVm LT5nZW5lcmF0ZWQgJiYgcmVzdGRlZi0+Z2VuZXJhdGVkICYmIGNvbGRlZi0+Z2VuZXJhdGVk ICE9IHJlc3RkZWYtPmdlbmVyYXRlZCkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fREVGSU5JVElPTiksCisJCQkJCQkJ CSBlcnJtc2coImNvbHVtbiBcIiVzXCIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1u IG9mIGRpZmZlcmVudCBraW5kIiwKKwkJCQkJCQkJCQlyZXN0ZGVmLT5jb2xuYW1lKSwKKwkJ CQkJCQkJIGVycmRldGFpbCgiUGFyZW50IGNvbHVtbiBpcyAlcywgY2hpbGQgY29sdW1uIGlz ICVzLiIsCisJCQkJCQkJCQkJICAgY29sZGVmLT5nZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dF TkVSQVRFRF9TVE9SRUQgPyAiU1RPUkVEIiA6ICJWSVJUVUFMIiwKKwkJCQkJCQkJCQkgICBy ZXN0ZGVmLT5nZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQgPyAiU1RP UkVEIiA6ICJWSVJUVUFMIikpKTsKKwogCQkJCQkvKgogCQkJCQkgKiBPdmVycmlkZSB0aGUg cGFyZW50J3MgZGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBjb2x1bW4KIAkJCQkJICogKGNvbGRl Zi0+Y29va2VkX2RlZmF1bHQpIHdpdGggdGhlIHBhcnRpdGlvbidzIGxvY2FsCkBAIC0zMjM3 LDYgKzMyNDYsMTUgQEAgTWVyZ2VDaGlsZEF0dHJpYnV0ZShMaXN0ICppbmhfY29sdW1ucywg aW50IGV4aXN0X2F0dG5vLCBpbnQgbmV3Y29sX2F0dG5vLCBjb25zdAogCQkJCQkgZXJyaGlu dCgiQSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fubm90IGJlIGdlbmVyYXRlZCB1bmxlc3MgaXRz IHBhcmVudCBjb2x1bW4gaXMuIikpKTsKIAl9CiAKKwlpZiAoaW5oZGVmLT5nZW5lcmF0ZWQg JiYgbmV3ZGVmLT5nZW5lcmF0ZWQgJiYgbmV3ZGVmLT5nZW5lcmF0ZWQgIT0gaW5oZGVmLT5n ZW5lcmF0ZWQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX0NPTFVNTl9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGlu aGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZCIsCisJCQkJ CQlpbmhkZWYtPmNvbG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIlBhcmVudCBjb2x1bW4gaXMg JXMsIGNoaWxkIGNvbHVtbiBpcyAlcy4iLAorCQkJCQkJICAgaW5oZGVmLT5nZW5lcmF0ZWQg PT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQgPyAiU1RPUkVEIiA6ICJWSVJUVUFMIiwK KwkJCQkJCSAgIG5ld2RlZi0+Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RP UkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIpKSk7CisKIAkvKgogCSAqIElmIG5ldyBkZWYg aGFzIGEgZGVmYXVsdCwgb3ZlcnJpZGUgcHJldmlvdXMgZGVmYXVsdAogCSAqLwpAQCAtNjA2 MSw3ICs2MDc5LDcgQEAgQVRSZXdyaXRlVGFibGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBP aWQgT0lETmV3SGVhcCwgTE9DS01PREUgbG9ja21vZGUpCiAJCXsKIAkJCWNhc2UgQ09OU1RS X0NIRUNLOgogCQkJCW5lZWRzY2FuID0gdHJ1ZTsKLQkJCQljb24tPnF1YWxzdGF0ZSA9IEV4 ZWNQcmVwYXJlRXhwcigoRXhwciAqKSBjb24tPnF1YWwsIGVzdGF0ZSk7CisJCQkJY29uLT5x dWFsc3RhdGUgPSBFeGVjUHJlcGFyZUV4cHIoKEV4cHIgKikgZXhwYW5kX2dlbmVyYXRlZF9j b2x1bW5zX2luX2V4cHIoY29uLT5xdWFsLCBuZXdyZWwgPyBuZXdyZWwgOiBvbGRyZWwpLCBl c3RhdGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBDT05TVFJfRk9SRUlHTjoKIAkJCQkvKiBO b3RoaW5nIHRvIGRvIGhlcmUgKi8KQEAgLTcyNDEsNyArNzI1OSw3IEBAIEFURXhlY0FkZENv bHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIAkJICogREVGQVVMVCB2YWx1ZSBvdXRzaWRlIG9mIHRoZSBoZWFwLiAgVGhpcyBtYXkg YmUgZGlzYWJsZWQgaW5zaWRlCiAJCSAqIEFkZFJlbGF0aW9uTmV3Q29uc3RyYWludHMgaWYg dGhlIG9wdGltaXphdGlvbiBjYW5ub3QgYmUgYXBwbGllZC4KIAkJICovCi0JCXJhd0VudC0+ bWlzc2luZ01vZGUgPSAoIWNvbERlZi0+Z2VuZXJhdGVkKTsKKwkJcmF3RW50LT5taXNzaW5n TW9kZSA9IChjb2xEZWYtPmdlbmVyYXRlZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JF RCk7CiAKIAkJcmF3RW50LT5nZW5lcmF0ZWQgPSBjb2xEZWYtPmdlbmVyYXRlZDsKIApAQCAt Nzc2MCw2ICs3Nzc4LDE0IEBAIEFURXhlY1NldE5vdE51bGwoQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLCBSZWxhdGlvbiByZWwsCiAJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHN5c3RlbSBj b2x1bW4gXCIlc1wiIiwKIAkJCQkJCWNvbE5hbWUpKSk7CiAKKwkvKiBUT0RPOiBzZWUgdHJh bnNmb3JtQ29sdW1uRGVmaW5pdGlvbigpICovCisJaWYgKGF0dFR1cC0+YXR0Z2VuZXJhdGVk ID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1z Zygibm90LW51bGwgY29uc3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1ucyIpLAorCQkJCSBlcnJkZXRhaWwoIkNvbHVtbiBcIiVzXCIgb2Yg cmVsYXRpb24gXCIlc1wiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLiIsCisJCQkJ CQkgICBjb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCiAJLyoK IAkgKiBPa2F5LCBhY3R1YWxseSBwZXJmb3JtIHRoZSBjYXRhbG9nIGNoYW5nZSAuLi4gaWYg bmVlZGVkCiAJICovCkBAIC04MzU3LDcgKzgzODMsMTggQEAgQVRFeGVjU2V0RXhwcmVzc2lv bihBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29s TmFtZSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgc3lzdGVtIGNvbHVtbiBcIiVzXCIi LAogCQkJCQkJY29sTmFtZSkpKTsKIAotCWlmIChhdHRUdXAtPmF0dGdlbmVyYXRlZCAhPSBB VFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwkvKgorCSAqIFRPRE86IFRoaXMgY291bGQg YmUgZG9uZSwgYnV0IGl0IHdvdWxkIG5lZWQgYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb246 CisJICogbm8gcmV3cml0aW5nLCBidXQgc3RpbGwgbmVlZCB0byByZWNoZWNrIGFueSBjb25z dHJhaW50cy4KKwkgKi8KKwlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRF X0dFTkVSQVRFRF9WSVJUVUFMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJBTFRFUiBUQUJM RSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMiKSwKKwkJCQkgZXJyZGV0YWlsKCJDb2x1bW4gXCIlc1wiIG9mIHJlbGF0 aW9uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4iLAorCQkJCQkJICAg Y29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKworCWlmICghYXR0 VHVwLT5hdHRnZW5lcmF0ZWQpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygi Y29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgZ2VuZXJhdGVkIGNv bHVtbiIsCkBAIC04NTE0LDE3ICs4NTUxLDMwIEBAIEFURXhlY0Ryb3BFeHByZXNzaW9uKFJl bGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwgYm9vbCBtaXNzaW5nX29rLCBMT0NL TU9ECiAJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHN5c3RlbSBjb2x1bW4gXCIlc1wiIiwK IAkJCQkJCWNvbE5hbWUpKSk7CiAKLQlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgIT0gQVRU UklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJLyoKKwkgKiBUT0RPOiBUaGlzIGNvdWxkIGJl IGRvbmUsIGJ1dCBpdCB3b3VsZCBuZWVkIGEgdGFibGUgcmV3cml0ZSB0bworCSAqIG1hdGVy aWFsaXplIHRoZSBnZW5lcmF0ZWQgdmFsdWVzLiAgTm90ZSB0aGF0IGZvciB0aGUgdGltZSBi ZWluZywgd2UKKwkgKiBzdGlsbCBlcnJvciB3aXRoIG1pc3Npbmdfb2ssIHNvIHRoYXQgd2Ug ZG9uJ3Qgc2lsZW50bHkgbGVhdmUgdGhlIGNvbHVtbgorCSAqIGFzIGdlbmVyYXRlZC4KKwkg Ki8KKwlpZiAoYXR0VHVwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9W SVJUVUFMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIERST1AgRVhQ UkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5z IiksCisJCQkJIGVycmRldGFpbCgiQ29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIg aXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uIiwKKwkJCQkJCSAgIGNvbE5hbWUsIFJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisKKwlpZiAoIWF0dFR1cC0+YXR0Z2Vu ZXJhdGVkKQogCXsKIAkJaWYgKCFtaXNzaW5nX29rKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSks Ci0JCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIG5v dCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uIiwKKwkJCQkJIGVycm1zZygiY29sdW1uIFwi JXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgZ2VuZXJhdGVkIGNvbHVtbiIsCiAJ CQkJCQkJY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKIAkJZWxz ZQogCQl7CiAJCQllcmVwb3J0KE5PVElDRSwKLQkJCQkJKGVycm1zZygiY29sdW1uIFwiJXNc IiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4s IHNraXBwaW5nIiwKKwkJCQkJKGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBc IiVzXCIgaXMgbm90IGEgZ2VuZXJhdGVkIGNvbHVtbiwgc2tpcHBpbmciLAogCQkJCQkJCWNv bE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CiAJCQloZWFwX2ZyZWV0 dXBsZSh0dXBsZSk7CiAJCQl0YWJsZV9jbG9zZShhdHRyZWxhdGlvbiwgUm93RXhjbHVzaXZl TG9jayk7CkBAIC04NjY3LDYgKzg3MTcsMTYgQEAgQVRFeGVjU2V0U3RhdGlzdGljcyhSZWxh dGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsIGludDE2IGNvbE51bSwgTm9kZSAqbmV3 VmEKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgc3lzdGVtIGNvbHVtbiBcIiVzXCIiLAog CQkJCQkJY29sTmFtZSkpKTsKIAorCS8qCisJICogUHJldmVudCB0aGlzIGFzIGxvbmcgYXMg dGhlIEFOQUxZWkUgY29kZSBza2lwcyB2aXJ0dWFsIGdlbmVyYXRlZAorCSAqIGNvbHVtbnMu CisJICovCisJaWYgKGF0dHJ0dXBsZS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5F UkFURURfVklSVFVBTCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHN0 YXRpc3RpY3Mgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIFwiJXNcIiIsCisJCQkJCQlj b2xOYW1lKSkpOworCiAJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfSU5E RVggfHwKIAkJcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9J TkRFWCkKIAl7CkBAIC05Nzc3LDYgKzk4MzcsMTkgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3Ry YWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIAkJCQkJCSBlcnJtc2coImludmFsaWQgJXMgYWN0aW9uIGZvciBmb3JlaWduIGtleSBj b25zdHJhaW50IGNvbnRhaW5pbmcgZ2VuZXJhdGVkIGNvbHVtbiIsCiAJCQkJCQkJCSJPTiBE RUxFVEUiKSkpOwogCQl9CisKKwkJLyoKKwkJICogRktzIG9uIHZpcnR1YWwgY29sdW1ucyBh cmUgbm90IHN1cHBvcnRlZC4gIFRoaXMgd291bGQgcmVxdWlyZQorCQkgKiB2YXJpb3VzIGFk ZGl0aW9uYWwgc3VwcG9ydCBpbiByaV90cmlnZ2Vycy5jLCBpbmNsdWRpbmcgc3BlY2lhbAor CQkgKiBoYW5kbGluZyBpbiByaV9OdWxsQ2hlY2soKSwgcmlfS2V5c0VxdWFsKCksCisJCSAq IFJJX0ZLZXlfZmtfdXBkX2NoZWNrX3JlcXVpcmVkKCkgKHNpbmNlIGFsbCB2aXJ0dWFsIGNv bHVtbnMgYXBwZWFyCisJCSAqIGFzIE5VTEwgdGhlcmUpLiAgQWxzbyBub3QgcmVhbGx5IHBy YWN0aWNhbCBhcyBsb25nIGFzIHlvdSBjYW4ndAorCQkgKiBpbmRleCB2aXJ0dWFsIGNvbHVt bnMuCisJCSAqLworCQlpZiAoYXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURf VklSVFVBTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiZm9yZWlnbiBrZXkgY29uc3Ry YWludHMgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZCIp KSk7CiAJfQogCiAJLyoKQEAgLTExOTMzLDcgKzEyMDA2LDcgQEAgQVRFeGVjVmFsaWRhdGVD b25zdHJhaW50KExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgY2hhciAqY29uc3RyTmFt ZSwKIAkJCXZhbCA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09OU1RST0lELCB0dXBsZSwK IAkJCQkJCQkJCQkgQW51bV9wZ19jb25zdHJhaW50X2NvbmJpbik7CiAJCQljb25iaW4gPSBU ZXh0RGF0dW1HZXRDU3RyaW5nKHZhbCk7Ci0JCQluZXdjb24tPnF1YWwgPSAoTm9kZSAqKSBz dHJpbmdUb05vZGUoY29uYmluKTsKKwkJCW5ld2Nvbi0+cXVhbCA9IChOb2RlICopIGV4cGFu ZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKHN0cmluZ1RvTm9kZShjb25iaW4pLCByZWwp OwogCiAJCQkvKiBGaW5kIG9yIGNyZWF0ZSB3b3JrIHF1ZXVlIGVudHJ5IGZvciB0aGlzIHRh YmxlICovCiAJCQl0YWIgPSBBVEdldFF1ZXVlRW50cnkod3F1ZXVlLCByZWwpOwpAQCAtMTI5 OTQsOCArMTMwNjcsMTIgQEAgQVRQcmVwQWx0ZXJDb2x1bW5UeXBlKExpc3QgKip3cXVldWUs CiAJCQkJCSAgIGxpc3RfbWFrZTFfb2lkKHJlbC0+cmRfcmVsLT5yZWx0eXBlKSwKIAkJCQkJ ICAgMCk7CiAKLQlpZiAodGFiLT5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJ dGFiLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJaWYgKGF0dFR1 cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwl7CisJ CS8qIGRvIG5vdGhpbmcgKi8KKwl9CisJZWxzZSBpZiAodGFiLT5yZWxraW5kID09IFJFTEtJ TkRfUkVMQVRJT04gfHwKKwkJCSB0YWItPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05F RF9UQUJMRSkKIAl7CiAJCS8qCiAJCSAqIFNldCB1cCBhbiBleHByZXNzaW9uIHRvIHRyYW5z Zm9ybSB0aGUgb2xkIGRhdGEgdmFsdWUgdG8gdGhlIG5ldwpAQCAtMTMwNjgsMTEgKzEzMTQ1 LDEyIEBAIEFUUHJlcEFsdGVyQ29sdW1uVHlwZShMaXN0ICoqd3F1ZXVlLAogCQkJCSBlcnJt c2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSIsCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKSkpOwogCi0JaWYgKCFSRUxLSU5EX0hBU19TVE9SQUdFKHRhYi0+cmVsa2lu ZCkpCisJaWYgKCFSRUxLSU5EX0hBU19TVE9SQUdFKHRhYi0+cmVsa2luZCkgfHwgYXR0VHVw LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQogCXsKIAkJ LyoKLQkJICogRm9yIHJlbGF0aW9ucyB3aXRob3V0IHN0b3JhZ2UsIGRvIHRoaXMgY2hlY2sg bm93LiAgUmVndWxhciB0YWJsZXMKLQkJICogd2lsbCBjaGVjayBpdCBsYXRlciB3aGVuIHRo ZSB0YWJsZSBpcyBiZWluZyByZXdyaXR0ZW4uCisJCSAqIEZvciByZWxhdGlvbnMgb3IgY29s dW1ucyB3aXRob3V0IHN0b3JhZ2UsIGRvIHRoaXMgY2hlY2sgbm93LgorCQkgKiBSZWd1bGFy IHRhYmxlcyB3aWxsIGNoZWNrIGl0IGxhdGVyIHdoZW4gdGhlIHRhYmxlIGlzIGJlaW5nCisJ CSAqIHJld3JpdHRlbi4KIAkJICovCiAJCWZpbmRfY29tcG9zaXRlX3R5cGVfZGVwZW5kZW5j aWVzKHJlbC0+cmRfcmVsLT5yZWx0eXBlLCByZWwsIE5VTEwpOwogCX0KQEAgLTE2MDMzLDYg KzE2MTExLDE0IEBAIE1lcmdlQXR0cmlidXRlc0ludG9FeGlzdGluZyhSZWxhdGlvbiBjaGls ZF9yZWwsIFJlbGF0aW9uIHBhcmVudF9yZWwsIGJvb2wgaXNwYXJ0CiAJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKIAkJCQkJCSBlcnJtc2coImNvbHVtbiBc IiVzXCIgaW4gY2hpbGQgdGFibGUgbXVzdCBub3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1uIiwg cGFyZW50X2F0dG5hbWUpKSk7CiAKKwkJCWlmIChwYXJlbnRfYXR0LT5hdHRnZW5lcmF0ZWQg JiYgY2hpbGRfYXR0LT5hdHRnZW5lcmF0ZWQgJiYgY2hpbGRfYXR0LT5hdHRnZW5lcmF0ZWQg IT0gcGFyZW50X2F0dC0+YXR0Z2VuZXJhdGVkKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJCSBlcnJtc2co ImNvbHVtbiBcIiVzXCIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZl cmVudCBraW5kIiwgcGFyZW50X2F0dG5hbWUpLAorCQkJCQkJIGVycmRldGFpbCgiUGFyZW50 IGNvbHVtbiBpcyAlcywgY2hpbGQgY29sdW1uIGlzICVzLiIsCisJCQkJCQkJCSAgIHBhcmVu dF9hdHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCA/ICJT VE9SRUQiIDogIlZJUlRVQUwiLAorCQkJCQkJCQkgICBjaGlsZF9hdHQtPmF0dGdlbmVyYXRl ZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCA/ICJTVE9SRUQiIDogIlZJUlRVQUwi KSkpOworCiAJCQkvKgogCQkJICogUmVndWxhciBpbmhlcml0YW5jZSBjaGlsZHJlbiBhcmUg aW5kZXBlbmRlbnQgZW5vdWdoIG5vdCB0bwogCQkJICogaW5oZXJpdCBpZGVudGl0eSBjb2x1 bW5zLiAgQnV0IHBhcnRpdGlvbnMgYXJlIGludGVncmFsIHBhcnQgb2YKQEAgLTE4MTY3LDgg KzE4MjUzLDExIEBAIENvbXB1dGVQYXJ0aXRpb25BdHRycyhQYXJzZVN0YXRlICpwc3RhdGUs IFJlbGF0aW9uIHJlbCwgTGlzdCAqcGFydFBhcmFtcywgQXR0ck51CiAJCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgcGVsZW0tPmxvY2F0aW9uKSkpOwogCiAJCQkvKgotCQkJ ICogR2VuZXJhdGVkIGNvbHVtbnMgY2Fubm90IHdvcms6IFRoZXkgYXJlIGNvbXB1dGVkIGFm dGVyIEJFRk9SRQotCQkJICogdHJpZ2dlcnMsIGJ1dCBwYXJ0aXRpb24gcm91dGluZyBpcyBk b25lIGJlZm9yZSBhbGwgdHJpZ2dlcnMuCisJCQkgKiBTdG9yZWQgZ2VuZXJhdGVkIGNvbHVt bnMgY2Fubm90IHdvcms6IFRoZXkgYXJlIGNvbXB1dGVkIGFmdGVyCisJCQkgKiBCRUZPUkUg dHJpZ2dlcnMsIGJ1dCBwYXJ0aXRpb24gcm91dGluZyBpcyBkb25lIGJlZm9yZSBhbGwKKwkJ CSAqIHRyaWdnZXJzLiAgTWF5YmUgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBjb3VsZCBi ZSBtYWRlIHRvCisJCQkgKiB3b3JrLCBidXQgdGhlbiB0aGV5IHdvdWxkIG5lZWQgdG8gYmUg aGFuZGxlZCBhcyBhbiBleHByZXNzaW9uCisJCQkgKiBiZWxvdy4KIAkJCSAqLwogCQkJaWYg KGF0dGZvcm0tPmF0dGdlbmVyYXRlZCkKIAkJCQllcmVwb3J0KEVSUk9SLApAQCAtMTgyNTAs OSArMTgzMzksMTIgQEAgQ29tcHV0ZVBhcnRpdGlvbkF0dHJzKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUmVsYXRpb24gcmVsLCBMaXN0ICpwYXJ0UGFyYW1zLCBBdHRyTnUKIAkJCQl9CiAKIAkJ CQkvKgotCQkJCSAqIEdlbmVyYXRlZCBjb2x1bW5zIGNhbm5vdCB3b3JrOiBUaGV5IGFyZSBj b21wdXRlZCBhZnRlcgotCQkJCSAqIEJFRk9SRSB0cmlnZ2VycywgYnV0IHBhcnRpdGlvbiBy b3V0aW5nIGlzIGRvbmUgYmVmb3JlIGFsbAotCQkJCSAqIHRyaWdnZXJzLgorCQkJCSAqIFN0 b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBjYW5ub3Qgd29yazogVGhleSBhcmUgY29tcHV0ZWQK KwkJCQkgKiBhZnRlciBCRUZPUkUgdHJpZ2dlcnMsIGJ1dCBwYXJ0aXRpb24gcm91dGluZyBp cyBkb25lIGJlZm9yZQorCQkJCSAqIGFsbCB0cmlnZ2Vycy4gIFZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbnMgY291bGQgcHJvYmFibHkKKwkJCQkgKiB3b3JrLCBidXQgaXQgd291bGQgcmVx dWlyZSBtb3JlIHdvcmsgZWxzZXdoZXJlIChmb3IgZXhhbXBsZQorCQkJCSAqIFNFVCBFWFBS RVNTSU9OIHdvdWxkIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgY29sdW1uIGlzCisJCQkJ ICogdXNlZCBpbiBwYXJ0aXRpb24ga2V5cykuICBTZWVtcyBzYWZlciB0byBwcm9oaWJpdCBm b3Igbm93LgogCQkJCSAqLwogCQkJCWkgPSAtMTsKIAkJCQl3aGlsZSAoKGkgPSBibXNfbmV4 dF9tZW1iZXIoZXhwcl9hdHRycywgaSkpID49IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMK aW5kZXggMDkzNTZlNDZkMTYuLjIyMjhkMWEzYmNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dl ci5jCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9u LmgiCiAjaW5jbHVkZSAicGFydGl0aW9uaW5nL3BhcnRkZXNjLmgiCiAjaW5jbHVkZSAicGdz dGF0LmgiCisjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUg InJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAj aW5jbHVkZSAidXRpbHMvYWNsLmgiCkBAIC0xMDEsNiArMTAyLDcgQEAgc3RhdGljIHZvaWQg QWZ0ZXJUcmlnZ2VyU2F2ZUV2ZW50KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpy ZWxpbmZvLAogCQkJCQkJCQkgIGJvb2wgaXNfY3Jvc3NwYXJ0X3VwZGF0ZSk7CiBzdGF0aWMg dm9pZCBBZnRlclRyaWdnZXJFbmxhcmdlUXVlcnlTdGF0ZSh2b2lkKTsKIHN0YXRpYyBib29s IGJlZm9yZV9zdG10X3RyaWdnZXJzX2ZpcmVkKE9pZCByZWxpZCwgQ21kVHlwZSBjbWRUeXBl KTsKK3N0YXRpYyB2b2lkIGNoZWNrX21vZGlmaWVkX3ZpcnR1YWxfZ2VuZXJhdGVkKFR1cGxl RGVzYyB0dXBkZXNjLCBIZWFwVHVwbGUgdHVwbGUpOwogCiAKIC8qCkBAIC02NDEsNyArNjQz LDggQEAgQ3JlYXRlVHJpZ2dlckZpcmluZ09uKENyZWF0ZVRyaWdTdG10ICpzdG10LCBjb25z dCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJaWYgKFRSSUdHRVJfRk9SX0JFRk9SRSh0Z3R5 cGUpICYmCiAJCQkJCQl2YXItPnZhcmF0dG5vID09IDAgJiYKIAkJCQkJCVJlbGF0aW9uR2V0 RGVzY3IocmVsKS0+Y29uc3RyICYmCi0JCQkJCQlSZWxhdGlvbkdldERlc2NyKHJlbCktPmNv bnN0ci0+aGFzX2dlbmVyYXRlZF9zdG9yZWQpCisJCQkJCQkoUmVsYXRpb25HZXREZXNjcihy ZWwpLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfc3RvcmVkIHx8CisJCQkJCQkgUmVsYXRpb25H ZXREZXNjcihyZWwpLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkpCiAJCQkJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNU X0RFRklOSVRJT04pLAogCQkJCQkJCQkgZXJybXNnKCJCRUZPUkUgdHJpZ2dlcidzIFdIRU4g Y29uZGl0aW9uIGNhbm5vdCByZWZlcmVuY2UgTkVXIGdlbmVyYXRlZCBjb2x1bW5zIiksCkBA IC05NDMsNiArOTQ2LDEzIEBAIENyZWF0ZVRyaWdnZXJGaXJpbmdPbihDcmVhdGVUcmlnU3Rt dCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkgZXJybXNnKCJjb2x1 bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCiAJCQkJCQkJ CW5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CiAKKwkJCS8qIEN1cnJl bnRseSBkb2Vzbid0IHdvcmsuICovCisJCQlpZiAoVHVwbGVEZXNjQXR0cihSZWxhdGlvbkdl dERlc2NyKHJlbCksIGF0dG51bSAtIDEpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dF TkVSQVRFRF9WSVJUVUFMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCWVycm1zZygidmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZCBhcyB0cmlnZ2VyIGNvbHVtbnMi KSwKKwkJCQkJCWVycmRldGFpbCgiQ29sdW1uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbi4iLCBuYW1lKSk7CisKIAkJCS8qIENoZWNrIGZvciBkdXBsaWNhdGVzICov CiAJCQlmb3IgKGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pCiAJCQl7CkBAIC0yNTAzLDYgKzI1 MTMsOCBAQCBFeGVjQlJJbnNlcnRUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVs SW5mbyAqcmVsaW5mbywKIAkJfQogCQllbHNlIGlmIChuZXd0dXBsZSAhPSBvbGR0dXBsZSkK IAkJeworCQkJY2hlY2tfbW9kaWZpZWRfdmlydHVhbF9nZW5lcmF0ZWQoUmVsYXRpb25HZXRE ZXNjcihyZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2MpLCBuZXd0dXBsZSk7CisKIAkJCUV4ZWNG b3JjZVN0b3JlSGVhcFR1cGxlKG5ld3R1cGxlLCBzbG90LCBmYWxzZSk7CiAKIAkJCS8qCkBA IC0zMDYwLDYgKzMwNzIsOCBAQCBFeGVjQlJVcGRhdGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0 ZSwgRVBRU3RhdGUgKmVwcXN0YXRlLAogCQl9CiAJCWVsc2UgaWYgKG5ld3R1cGxlICE9IG9s ZHR1cGxlKQogCQl7CisJCQljaGVja19tb2RpZmllZF92aXJ0dWFsX2dlbmVyYXRlZChSZWxh dGlvbkdldERlc2NyKHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYyksIG5ld3R1cGxlKTsKKwog CQkJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUobmV3dHVwbGUsIG5ld3Nsb3QsIGZhbHNlKTsK IAogCQkJLyoKQEAgLTM0OTAsNiArMzUwNCw3IEBAIFRyaWdnZXJFbmFibGVkKEVTdGF0ZSAq ZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCiAJCQlvbGRDb250ZXh0ID0gTWVt b3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKIAkJCXRncXVhbCA9 IHN0cmluZ1RvTm9kZSh0cmlnZ2VyLT50Z3F1YWwpOworCQkJdGdxdWFsID0gKE5vZGUgKikg ZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIodGdxdWFsLCByZWxpbmZvLT5yaV9S ZWxhdGlvbkRlc2MpOwogCQkJLyogQ2hhbmdlIHJlZmVyZW5jZXMgdG8gT0xEIGFuZCBORVcg dG8gSU5ORVJfVkFSIGFuZCBPVVRFUl9WQVIgKi8KIAkJCUNoYW5nZVZhck5vZGVzKHRncXVh bCwgUFJTMl9PTERfVkFSTk8sIElOTkVSX1ZBUiwgMCk7CiAJCQlDaGFuZ2VWYXJOb2Rlcyh0 Z3F1YWwsIFBSUzJfTkVXX1ZBUk5PLCBPVVRFUl9WQVIsIDApOwpAQCAtNjYwMCwzICs2NjE1 LDM0IEBAIHBnX3RyaWdnZXJfZGVwdGgoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlQR19SRVRV Uk5fSU5UMzIoTXlUcmlnZ2VyRGVwdGgpOwogfQorCisvKgorICogQ2hlY2sgd2hldGhlciBh IHRyaWdnZXIgbW9kaWZpZWQgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gYW5kIGVycm9y IGlmCisgKiBzby4KKyAqCisgKiBXZSBuZWVkIHRvIGNoZWNrIHRoaXMgc28gdGhhdCB3ZSBk b24ndCBlbmQgdXAgc3RvcmluZyBhIG5vbi1udWxsIHZhbHVlIGluIGEKKyAqIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbi4KKyAqCisgKiBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciBz dG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMsIHNpbmNlIHRob3NlIHdpbGwgYmUKKyAqIG92ZXJ3 cml0dGVuIGxhdGVyIGFueXdheS4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX21vZGlmaWVk X3ZpcnR1YWxfZ2VuZXJhdGVkKFR1cGxlRGVzYyB0dXBkZXNjLCBIZWFwVHVwbGUgdHVwbGUp Cit7CisJaWYgKCEodHVwZGVzYy0+Y29uc3RyICYmIHR1cGRlc2MtPmNvbnN0ci0+aGFzX2dl bmVyYXRlZF92aXJ0dWFsKSkKKwkJcmV0dXJuOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCB0 dXBkZXNjLT5uYXR0czsgaSsrKQorCXsKKwkJaWYgKFR1cGxlRGVzY0F0dHIodHVwZGVzYywg aSktPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCXsK KwkJCWJvb2wJCWlzbnVsbDsKKworCQkJZmFzdGdldGF0dHIodHVwbGUsIGkgKyAxLCB0dXBk ZXNjLCAmaXNudWxsKTsKKwkJCWlmICghaXNudWxsKQorCQkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0VfUl9JX0VfVFJJR0dFUl9QUk9UT0NPTF9WSU9MQVRF RCksCisJCQkJCQkgZXJybXNnKCJ0cmlnZ2VyIG1vZGlmaWVkIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbiB2YWx1ZSIpKSk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHJJbnRlcnAuYwppbmRleCAzMGM1YTE5YWFkNi4uMWM1MDE5N2FlNzIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtMjEyMSw2ICsyMTIxLDEwIEBA IENoZWNrVmFyU2xvdENvbXBhdGliaWxpdHkoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBh dHRudW0sIE9pZCB2YXJ0eXBlKQogCiAJCWF0dHIgPSBUdXBsZURlc2NBdHRyKHNsb3RfdHVw ZGVzYywgYXR0bnVtIC0gMSk7CiAKKwkJLyogSW50ZXJuYWwgZXJyb3I6IHNvbWVib2R5IGZv cmdvdCB0byBleHBhbmQgaXQuICovCisJCWlmIChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRU UklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQg dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHJlZmVyZW5jZSIpOworCiAJCWlmIChhdHRyLT5h dHRpc2Ryb3BwZWQpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RF X1VOREVGSU5FRF9DT0xVTU4pLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggY2M5 YTU5NGNiYTUuLjVmMGQwOWFiNzAzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAg LTE3NTIsNiArMTc1Miw3IEBAIEV4ZWNSZWxDaGVjayhSZXN1bHRSZWxJbmZvICpyZXN1bHRS ZWxJbmZvLAogCQkJRXhwcgkgICAqY2hlY2tjb25zdHI7CiAKIAkJCWNoZWNrY29uc3RyID0g c3RyaW5nVG9Ob2RlKGNoZWNrW2ldLmNjYmluKTsKKwkJCWNoZWNrY29uc3RyID0gKEV4cHIg KikgZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIoKE5vZGUgKikgY2hlY2tjb25z dHIsIHJlbCk7CiAJCQlyZXN1bHRSZWxJbmZvLT5yaV9Db25zdHJhaW50RXhwcnNbaV0gPQog CQkJCUV4ZWNQcmVwYXJlRXhwcihjaGVja2NvbnN0ciwgZXN0YXRlKTsKIAkJfQpAQCAtMjI5 OSw3ICsyMzAwLDkgQEAgRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24oT2lkIHJlbG9p ZCwKIAogCQlpZiAodGFibGVfcGVybSB8fCBjb2x1bW5fcGVybSkKIAkJewotCQkJaWYgKHNs b3QtPnR0c19pc251bGxbaV0pCisJCQlpZiAoYXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklC VVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCXZhbCA9ICJ2aXJ0dWFsIjsKKwkJCWVsc2Ug aWYgKHNsb3QtPnR0c19pc251bGxbaV0pCiAJCQkJdmFsID0gIm51bGwiOwogCQkJZWxzZQog CQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggODlmZGI5NGMyMzcuLjY1Njg4ZmZkMzYzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTYyOCw3ICs2MjgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vy c2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVl cnkpOwogJXR5cGUgPHN0cj4JCW9wdF9leGlzdGluZ193aW5kb3dfbmFtZQogJXR5cGUgPGJv b2xlYW4+IG9wdF9pZl9ub3RfZXhpc3RzCiAldHlwZSA8Ym9vbGVhbj4gb3B0X3VuaXF1ZV9u dWxsX3RyZWF0bWVudAotJXR5cGUgPGl2YWw+CWdlbmVyYXRlZF93aGVuIG92ZXJyaWRlX2tp bmQKKyV0eXBlIDxpdmFsPglnZW5lcmF0ZWRfd2hlbiBvdmVycmlkZV9raW5kIG9wdF92aXJ0 dWFsX29yX3N0b3JlZAogJXR5cGUgPHBhcnRzcGVjPglQYXJ0aXRpb25TcGVjIE9wdFBhcnRp dGlvblNwZWMKICV0eXBlIDxwYXJ0ZWxlbT4JcGFydF9lbGVtCiAldHlwZSA8bGlzdD4JCXBh cnRfcGFyYW1zCkBAIC03NzYsNyArNzc2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5 KTsKIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNFUiBVU0lORwogCiAJVkFD VVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZB UklBRElDIFZBUllJTkcKLQlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxF CisJVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCiAKIAlX SEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBXT1JL IFdSQVBQRVIgV1JJVEUKIApAQCAtMzk4Miw3ICszOTgyLDcgQEAgQ29sQ29uc3RyYWludEVs ZW06CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9Ci0JCQl8IEdFTkVSQVRFRCBnZW5lcmF0ZWRfd2hlbiBBUyAnKCcgYV9leHByICcpJyBT VE9SRUQKKwkJCXwgR0VORVJBVEVEIGdlbmVyYXRlZF93aGVuIEFTICcoJyBhX2V4cHIgJykn IG9wdF92aXJ0dWFsX29yX3N0b3JlZAogCQkJCXsKIAkJCQkJQ29uc3RyYWludCAqbiA9IG1h a2VOb2RlKENvbnN0cmFpbnQpOwogCkBAIC0zOTkwLDYgKzM5OTAsNyBAQCBDb2xDb25zdHJh aW50RWxlbToKIAkJCQkJbi0+Z2VuZXJhdGVkX3doZW4gPSAkMjsKIAkJCQkJbi0+cmF3X2V4 cHIgPSAkNTsKIAkJCQkJbi0+Y29va2VkX2V4cHIgPSBOVUxMOworCQkJCQluLT5nZW5lcmF0 ZWRfa2luZCA9ICQ3OwogCQkJCQluLT5sb2NhdGlvbiA9IEAxOwogCiAJCQkJCS8qCkBAIC00 MDM2LDYgKzQwMzcsMTIgQEAgZ2VuZXJhdGVkX3doZW46CiAJCQl8IEJZIERFRkFVTFQJeyAk JCA9IEFUVFJJQlVURV9JREVOVElUWV9CWV9ERUZBVUxUOyB9CiAJCTsKIAorb3B0X3ZpcnR1 YWxfb3Jfc3RvcmVkOgorCQkJU1RPUkVECQkJeyAkJCA9IEFUVFJJQlVURV9HRU5FUkFURURf U1RPUkVEOyB9CisJCQl8IFZJUlRVQUwJCXsgJCQgPSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJ UlRVQUw7IH0KKwkJCXwgLypFTVBUWSovCQl7ICQkID0gQVRUUklCVVRFX0dFTkVSQVRFRF9W SVJUVUFMOyB9CisJCTsKKwogLyoKICAqIENvbnN0cmFpbnRBdHRyIHJlcHJlc2VudHMgY29u c3RyYWludCBhdHRyaWJ1dGVzLCB3aGljaCB3ZSBwYXJzZSBhcyBpZgogICogdGhleSB3ZXJl IGluZGVwZW5kZW50IGNvbnN0cmFpbnQgY2xhdXNlcywgaW4gb3JkZXIgdG8gYXZvaWQgc2hp ZnQvcmVkdWNlCkBAIC0xNzkwNCw2ICsxNzkxMSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoK IAkJCXwgVkVSU0lPTl9QCiAJCQl8IFZJRVcKIAkJCXwgVklFV1MKKwkJCXwgVklSVFVBTAog CQkJfCBWT0xBVElMRQogCQkJfCBXSElURVNQQUNFX1AKIAkJCXwgV0lUSElOCkBAIC0xODU1 OCw2ICsxODU2Niw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkVSU0lPTl9QCiAJ CQl8IFZJRVcKIAkJCXwgVklFV1MKKwkJCXwgVklSVFVBTAogCQkJfCBWT0xBVElMRQogCQkJ fCBXSEVOCiAJCQl8IFdISVRFU1BBQ0VfUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRp b24uYwppbmRleCA4MDc1YjFiOGExYi4uNmY4Zjk2YjM0ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5jCkBAIC03MDQsNyArNzA0LDExIEBAIHNjYW5OU0l0ZW1Gb3JD b2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwK IAkJCQkJCWNvbG5hbWUpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2Nh dGlvbikpKTsKIAotCS8qIEluIGdlbmVyYXRlZCBjb2x1bW4sIG5vIHN5c3RlbSBjb2x1bW4g aXMgYWxsb3dlZCBleGNlcHQgdGFibGVPaWQgKi8KKwkvKgorCSAqIEluIGdlbmVyYXRlZCBj b2x1bW4sIG5vIHN5c3RlbSBjb2x1bW4gaXMgYWxsb3dlZCBleGNlcHQgdGFibGVPaWQuCisJ ICogKFJlcXVpcmVkIGZvciBzdG9yZWQgZ2VuZXJhdGVkLCBidXQgd2UgYWxzbyBkbyBpdCBm b3IgdmlydHVhbCBnZW5lcmF0ZWQKKwkgKiBmb3Igbm93IGZvciBjb25zaXN0ZW5jeS4pCisJ ICovCiAJaWYgKHBzdGF0ZS0+cF9leHByX2tpbmQgPT0gRVhQUl9LSU5EX0dFTkVSQVRFRF9D T0xVTU4gJiYKIAkJYXR0bnVtIDwgSW52YWxpZEF0dHJOdW1iZXIgJiYgYXR0bnVtICE9IFRh YmxlT2lkQXR0cmlidXRlTnVtYmVyKQogCQllcmVwb3J0KEVSUk9SLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV91dGlsY21kLmMKaW5kZXggMWUxNWNlMTBiNDguLjQ3MDcxMzlhOTFmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTc3OSw3ICs3NzksNyBAQCB0cmFu c2Zvcm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRl ZiAqY29sdW1uKQogCQkJCQkJCQkJY29sdW1uLT5jb2xuYW1lLCBjeHQtPnJlbGF0aW9uLT5y ZWxuYW1lKSwKIAkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+cHN0YXRlLAogCQkJ CQkJCQkJCQkJY29uc3RyYWludC0+bG9jYXRpb24pKSk7Ci0JCQkJY29sdW1uLT5nZW5lcmF0 ZWQgPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRDsKKwkJCQljb2x1bW4tPmdlbmVyYXRl ZCA9IGNvbnN0cmFpbnQtPmdlbmVyYXRlZF9raW5kOwogCQkJCWNvbHVtbi0+cmF3X2RlZmF1 bHQgPSBjb25zdHJhaW50LT5yYXdfZXhwcjsKIAkJCQlBc3NlcnQoY29uc3RyYWludC0+Y29v a2VkX2V4cHIgPT0gTlVMTCk7CiAJCQkJc2F3X2dlbmVyYXRlZCA9IHRydWU7CkBAIC04Njcs NiArODY3LDE4IEBAIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24oQ3JlYXRlU3RtdENvbnRl eHQgKmN4dCwgQ29sdW1uRGVmICpjb2x1bW4pCiAJCQkJCQkJY29sdW1uLT5jb2xuYW1lLCBj eHQtPnJlbGF0aW9uLT5yZWxuYW1lKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjeHQt PnBzdGF0ZSwKIAkJCQkJCQkJCQljb25zdHJhaW50LT5sb2NhdGlvbikpKTsKKworCQkvKgor CQkgKiBUT0RPOiBTdHJhaWdodGZvcndhcmQgbm90LW51bGwgY29uc3RyYWludHMgd29uJ3Qg d29yayBvbiB2aXJ0dWFsCisJCSAqIGdlbmVyYXRlZCBjb2x1bW5zLCBiZWNhdXNlIHRoZXJl IGlzIG5vIHN1cHBvcnQgZm9yIGV4cGFuZGluZyB0aGUKKwkJICogY29sdW1uIHdoZW4gdGhl IGNvbnN0cmFpbnQgaXMgY2hlY2tlZC4gIE1heWJlIHdlIGNvdWxkIGNvbnZlcnQgdGhlCisJ CSAqIG5vdC1udWxsIGNvbnN0cmFpbnQgaW50byBhIGZ1bGwgY2hlY2sgY29uc3RyYWludCwg c28gdGhhdCB0aGUKKwkJICogZ2VuZXJhdGlvbiBleHByZXNzaW9uIGNhbiBiZSBleHBhbmRl ZCBhdCBjaGVjayB0aW1lLgorCQkgKi8KKwkJaWYgKGNvbHVtbi0+aXNfbm90X251bGwgJiYg Y29sdW1uLT5nZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCQkgZXJybXNnKCJub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1 cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIikpKTsKIAl9CiAKIAkvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXgg MTJjMTczNTkwNjMuLjIxNWM2NjZhZjdhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi9sb2dpY2FscHJvdG8uaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9vcmln aW4uaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9wZ291dHB1dC5oIgorI2luY2x1ZGUgInJl d3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgog I2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgi CkBAIC05OTIsNyArOTkzLDcgQEAgcGdvdXRwdXRfcm93X2ZpbHRlcl9pbml0KFBHT3V0cHV0 RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCQkJCWNvbnRpbnVlOwogCiAJCQlm b3JlYWNoKGxjLCByZm5vZGVzW2lkeF0pCi0JCQkJZmlsdGVycyA9IGxhcHBlbmQoZmlsdGVy cywgc3RyaW5nVG9Ob2RlKChjaGFyICopIGxmaXJzdChsYykpKTsKKwkJCQlmaWx0ZXJzID0g bGFwcGVuZChmaWx0ZXJzLCBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhwcihzdHJp bmdUb05vZGUoKGNoYXIgKikgbGZpcnN0KGxjKSksIHJlbGF0aW9uKSk7CiAKIAkJCS8qIGNv bWJpbmUgdGhlIHJvdyBmaWx0ZXIgYW5kIGNhY2hlIHRoZSBFeHByU3RhdGUgKi8KIAkJCXJm bm9kZSA9IG1ha2Vfb3JjbGF1c2UoZmlsdGVycyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3Jp dGVIYW5kbGVyLmMKaW5kZXggNmQ1OWEyYmI4ZGMuLmVmODZkZWRkOWMwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tl bmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBAIC05MCw2ICs5MCw3IEBAIHN0YXRpYyBM aXN0ICptYXRjaExvY2tzKENtZFR5cGUgZXZlbnQsIFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJ CQkJaW50IHZhcm5vLCBRdWVyeSAqcGFyc2V0cmVlLCBib29sICpoYXNVcGRhdGUpOwogc3Rh dGljIFF1ZXJ5ICpmaXJlUklScnVsZXMoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqYWN0aXZl UklScyk7CiBzdGF0aWMgQml0bWFwc2V0ICphZGp1c3Rfdmlld19jb2x1bW5fc2V0KEJpdG1h cHNldCAqY29scywgTGlzdCAqdGFyZ2V0bGlzdCk7CitzdGF0aWMgTm9kZSAqZXhwYW5kX2dl bmVyYXRlZF9jb2x1bW5zX2ludGVybmFsKE5vZGUgKm5vZGUsIFJlbGF0aW9uIHJlbCwgaW50 IHJ0X2luZGV4LCBSYW5nZVRibEVudHJ5ICpydGUpOwogCiAKIC8qCkBAIC05NzQsNyArOTc1 LDggQEAgcmV3cml0ZVRhcmdldExpc3RJVShMaXN0ICp0YXJnZXRMaXN0LAogCQlpZiAoYXR0 X3R1cC0+YXR0Z2VuZXJhdGVkKQogCQl7CiAJCQkvKgotCQkJICogc3RvcmVkIGdlbmVyYXRl ZCBjb2x1bW4gd2lsbCBiZSBmaXhlZCBpbiBleGVjdXRvcgorCQkJICogdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1uIHN0b3JlcyBhIG51bGwgdmFsdWU7IHN0b3JlZCBnZW5lcmF0ZWQKKwkJ CSAqIGNvbHVtbiB3aWxsIGJlIGZpeGVkIGluIGV4ZWN1dG9yCiAJCQkgKi8KIAkJCW5ld190 bGUgPSBOVUxMOwogCQl9CkBAIC0yMTM1LDYgKzIxMzcsMTUgQEAgZmlyZVJJUnJ1bGVzKFF1 ZXJ5ICpwYXJzZXRyZWUsIExpc3QgKmFjdGl2ZVJJUnMpCiAJCQl9CiAJCX0KIAorCQkvKgor CQkgKiBFeHBhbmQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBvZiB0aGlzIHRhYmxlCisJ CSAqCisJCSAqIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkb25lIGFmdGVyIGFwcGx5aW5nIFJM UyBwb2xpY2llcyBiZWxvdywgc2luY2UKKwkJICogdGhvc2UgY291bGQgYWxzbyBjb250YWlu IHZpcnR1YWwgY29sdW1ucy4gIEJ1dCB0aGF0IGN1cnJlbnRseSBtYWtlcworCQkgKiBzb21l IHRlc3RzIGZhaWwsIHNvIGl0IG5lZWRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4KKwkJICov CisJCXBhcnNldHJlZSA9IChRdWVyeSAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW50 ZXJuYWwoKE5vZGUgKikgcGFyc2V0cmVlLCByZWwsIHJ0X2luZGV4LCBydGUpOworCiAJCXRh YmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKIAl9CiAKQEAgLTQzNjUsNiArNDM3Niw5NSBAQCBS ZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqcmV3cml0ZV9ldmVudHMsIGlu dCBvcmlnX3J0X2xlbmd0aCkKIH0KIAogCisvKgorICogRXhwYW5kIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMKKyAqCisgKiBJZiB0aGUgdGFibGUgY29udGFpbnMgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucywgYnVpbGQgYSB0YXJnZXQgbGlzdAorICogY29udGFpbmluZyB0aGUg ZXhwYW5kZWQgZXhwcmVzc2lvbnMgYW5kIHVzZSBSZXBsYWNlVmFyc0Zyb21UYXJnZXRMaXN0 KCkgdG8KKyAqIGRvIHRoZSByZXBsYWNlbWVudHMuCisgKi8KK3N0YXRpYyBOb2RlICoKK2V4 cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbnRlcm5hbChOb2RlICpub2RlLCBSZWxhdGlvbiBy ZWwsIGludCBydF9pbmRleCwgUmFuZ2VUYmxFbnRyeSAqcnRlKQoreworCVR1cGxlRGVzYwl0 dXBkZXNjOworCisJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKKwlpZiAodHVw ZGVzYy0+Y29uc3RyICYmIHR1cGRlc2MtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFs KQorCXsKKwkJTGlzdAkgICAqdGxpc3QgPSBOSUw7CisKKwkJZm9yIChpbnQgaSA9IDA7IGkg PCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRy ID0gVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKTsKKworCQkJaWYgKGF0dHItPmF0dGdlbmVy YXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQl7CisJCQkJTm9kZQkg ICAqZGVmZXhwcjsKKwkJCQlpbnQJCQlhdHRudW0gPSBpICsgMTsKKwkJCQlPaWQJCQlhdHRj b2xsaWQ7CisJCQkJVGFyZ2V0RW50cnkgKnRlOworCisJCQkJZGVmZXhwciA9IGJ1aWxkX2Nv bHVtbl9kZWZhdWx0KHJlbCwgYXR0bnVtKTsKKwkJCQlpZiAoZGVmZXhwciA9PSBOVUxMKQor CQkJCQllbG9nKEVSUk9SLCAibm8gZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZvdW5kIGZvciBj b2x1bW4gbnVtYmVyICVkIG9mIHRhYmxlIFwiJXNcIiIsCisJCQkJCQkgYXR0bnVtLCBSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKKworCQkJCS8qCisJCQkJICogSWYgdGhlIGNv bHVtbiBkZWZpbml0aW9uIGhhcyBhIGNvbGxhdGlvbiBhbmQgaXQgaXMKKwkJCQkgKiBkaWZm ZXJlbnQgZnJvbSB0aGUgY29sbGF0aW9uIG9mIHRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24s CisJCQkJICogcHV0IGEgQ09MTEFURSBjbGF1c2UgYXJvdW5kIHRoZSBleHByZXNzaW9uLgor CQkJCSAqLworCQkJCWF0dGNvbGxpZCA9IGF0dHItPmF0dGNvbGxhdGlvbjsKKwkJCQlpZiAo YXR0Y29sbGlkICYmIGF0dGNvbGxpZCAhPSBleHByQ29sbGF0aW9uKGRlZmV4cHIpKQorCQkJ CXsKKwkJCQkJQ29sbGF0ZUV4cHIgKmNlID0gbWFrZU5vZGUoQ29sbGF0ZUV4cHIpOworCisJ CQkJCWNlLT5hcmcgPSAoRXhwciAqKSBkZWZleHByOworCQkJCQljZS0+Y29sbE9pZCA9IGF0 dGNvbGxpZDsKKwkJCQkJY2UtPmxvY2F0aW9uID0gLTE7CisKKwkJCQkJZGVmZXhwciA9IChO b2RlICopIGNlOworCQkJCX0KKworCQkJCUNoYW5nZVZhck5vZGVzKGRlZmV4cHIsIDEsIHJ0 X2luZGV4LCAwKTsKKworCQkJCXRlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIGRlZmV4 cHIsIGF0dG51bSwgMCwgZmFsc2UpOworCQkJCXRsaXN0ID0gbGFwcGVuZCh0bGlzdCwgdGUp OworCQkJfQorCQl9CisKKwkJQXNzZXJ0KGxpc3RfbGVuZ3RoKHRsaXN0KSA+IDApOworCisJ CW5vZGUgPSBSZXBsYWNlVmFyc0Zyb21UYXJnZXRMaXN0KG5vZGUsIHJ0X2luZGV4LCAwLCBy dGUsIHRsaXN0LCBSRVBMQUNFVkFSU19DSEFOR0VfVkFSTk8sIHJ0X2luZGV4LCBOVUxMKTsK Kwl9CisKKwlyZXR1cm4gbm9kZTsKK30KKworTm9kZSAqCitleHBhbmRfZ2VuZXJhdGVkX2Nv bHVtbnNfaW5fZXhwcihOb2RlICpub2RlLCBSZWxhdGlvbiByZWwpCit7CisJVHVwbGVEZXNj CXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwlpZiAodHVwZGVzYy0+Y29u c3RyICYmIHR1cGRlc2MtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCXsKKwkJ UmFuZ2VUYmxFbnRyeSAqcnRlOworCisJCXJ0ZSA9IG1ha2VOb2RlKFJhbmdlVGJsRW50cnkp OworCQlydGUtPnJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOworCisJCS8qCisJCSAq IFhYWCBGb3IgdGhlIGJlbmVmaXQgb2YgdHJpZ2dlcnMsIG1ha2UgdHdvIHBhc3Nlcywgc28g aXQgY292ZXJzCisJCSAqIFBSUzJfT0xEX1ZBUk5PIGFuZCBQUlMyX05FV19WQVJOTy4KKwkJ ICovCisJCW5vZGUgPSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW50ZXJuYWwobm9kZSwg cmVsLCAxLCBydGUpOworCQlub2RlID0gZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2ludGVy bmFsKG5vZGUsIHJlbCwgMiwgcnRlKTsKKwl9CisKKwlyZXR1cm4gbm9kZTsKK30KKworCiAv KgogICogUXVlcnlSZXdyaXRlIC0KICAqCSAgUHJpbWFyeSBlbnRyeSBwb2ludCB0byB0aGUg cXVlcnkgcmV3cml0ZXIuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9w YXJ0Y2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BhcnRjYWNoZS5jCmluZGV4 IGJlZWM2Y2RkYmM0Li4xZGVlN2MxZTg5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcGFydGNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGFy dGNhY2hlLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3Mu aCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicGFydGl0 aW9uaW5nL3BhcnRib3VuZHMuaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVy LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lz Y2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgpAQCAtMTQ4LDYgKzE0OSw4 IEBAIFJlbGF0aW9uQnVpbGRQYXJ0aXRpb25LZXkoUmVsYXRpb24gcmVsYXRpb24pCiAJCWV4 cHIgPSBzdHJpbmdUb05vZGUoZXhwclN0cmluZyk7CiAJCXBmcmVlKGV4cHJTdHJpbmcpOwog CisJCWV4cHIgPSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhwcihleHByLCByZWxh dGlvbik7CisKIAkJLyoKIAkJICogUnVuIHRoZSBleHByZXNzaW9ucyB0aHJvdWdoIGNvbnN0 LXNpbXBsaWZpY2F0aW9uIHNpbmNlIHRoZSBwbGFubmVyCiAJCSAqIHdpbGwgYmUgY29tcGFy aW5nIHRoZW0gdG8gc2ltaWxhcmx5LXByb2Nlc3NlZCBxdWFsIGNsYXVzZSBvcGVyYW5kcywK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDViYmI2NTRhNWRiLi44ZDNi MDg0NzVjMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCkBAIC01OTAsNiAr NTkwLDggQEAgUmVsYXRpb25CdWlsZFR1cGxlRGVzYyhSZWxhdGlvbiByZWxhdGlvbikKIAkJ CWNvbnN0ci0+aGFzX25vdF9udWxsID0gdHJ1ZTsKIAkJaWYgKGF0dHAtPmF0dGdlbmVyYXRl ZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKIAkJCWNvbnN0ci0+aGFzX2dlbmVy YXRlZF9zdG9yZWQgPSB0cnVlOworCQlpZiAoYXR0cC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJ QlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCWNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0 dWFsID0gdHJ1ZTsKIAkJaWYgKGF0dHAtPmF0dGhhc2RlZikKIAkJCW5kZWYrKzsKIApAQCAt Njg2LDYgKzY4OCw3IEBAIFJlbGF0aW9uQnVpbGRUdXBsZURlc2MoUmVsYXRpb24gcmVsYXRp b24pCiAJICovCiAJaWYgKGNvbnN0ci0+aGFzX25vdF9udWxsIHx8CiAJCWNvbnN0ci0+aGFz X2dlbmVyYXRlZF9zdG9yZWQgfHwKKwkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwg fHwKIAkJbmRlZiA+IDAgfHwKIAkJYXR0cm1pc3MgfHwKIAkJcmVsYXRpb24tPnJkX3JlbC0+ cmVsY2hlY2tzID4gMCkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGQ4YzYzMzA3MzJlLi4yNTQ4MGUx YjEyNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xNjAyMCw2ICsxNjAyMCw5IEBAIGR1bXBUYWJs ZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJ CWlmICh0YmluZm8tPmF0dGdlbmVyYXRlZFtqXSA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NU T1JFRCkKIAkJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIEdFTkVSQVRFRCBBTFdBWVMg QVMgKCVzKSBTVE9SRUQiLAogCQkJCQkJCQkJCQkgIHRiaW5mby0+YXR0cmRlZnNbal0tPmFk ZWZfZXhwcik7CisJCQkJCQllbHNlIGlmICh0YmluZm8tPmF0dGdlbmVyYXRlZFtqXSA9PSBB VFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIo cSwgIiBHRU5FUkFURUQgQUxXQVlTIEFTICglcykiLAorCQkJCQkJCQkJCQkgIHRiaW5mby0+ YXR0cmRlZnNbal0tPmFkZWZfZXhwcik7CiAJCQkJCQllbHNlCiAJCQkJCQkJYXBwZW5kUFFF eHBCdWZmZXIocSwgIiBERUZBVUxUICVzIiwKIAkJCQkJCQkJCQkJICB0YmluZm8tPmF0dHJk ZWZzW2pdLT5hZGVmX2V4cHIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBh YzYwODI5ZDY4Ni4uZjU3MWEyNTliMDYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90 LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CkBAIC0zNjMxLDEyICszNjMxLDE0IEBACiAJCWNyZWF0ZV9vcmRlciA9PiAzLAogCQljcmVh dGVfc3FsID0+ICdDUkVBVEUgVEFCTEUgZHVtcF90ZXN0LnRlc3RfdGFibGVfZ2VuZXJhdGVk ICgKIAkJCQkJCSAgIGNvbDEgaW50IHByaW1hcnkga2V5LAotCQkJCQkJICAgY29sMiBpbnQg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoY29sMSAqIDIpIHN0b3JlZAorCQkJCQkJICAgY29sMiBp bnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoY29sMSAqIDIpIHN0b3JlZCwKKwkJCQkJCSAgIGNv bDMgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGNvbDEgKiAzKSB2aXJ0dWFsCiAJCQkJCSAg ICk7JywKIAkJcmVnZXhwID0+IHFyL14KIAkJCVxRQ1JFQVRFIFRBQkxFIGR1bXBfdGVzdC50 ZXN0X3RhYmxlX2dlbmVyYXRlZCAoXEVcbgogCQkJXHMrXFFjb2wxIGludGVnZXIgTk9UIE5V TEwsXEVcbgotCQkJXHMrXFFjb2wyIGludGVnZXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGNv bDEgKiAyKSkgU1RPUkVEXEVcbgorCQkJXHMrXFFjb2wyIGludGVnZXIgR0VORVJBVEVEIEFM V0FZUyBBUyAoKGNvbDEgKiAyKSkgU1RPUkVELFxFXG4KKwkJCVxzK1xRY29sMyBpbnRlZ2Vy IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChjb2wxICogMykpXEVcbgogCQkJXCk7CiAJCQkveG1z LAogCQlsaWtlID0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM2M2E2NmU3MTg1Li5kNjFjNGFlNzk5OSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKQEAgLTIwODUsNiArMjA4NSwxMiBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkJICAgUFFnZXR2YWx1ZShy ZXMsIGksIGF0dHJkZWZfY29sKSk7CiAJCQkJbXVzdGZyZWUgPSB0cnVlOwogCQkJfQorCQkJ ZWxzZSBpZiAoZ2VuZXJhdGVkWzBdID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkK KwkJCXsKKwkJCQlkZWZhdWx0X3N0ciA9IHBzcHJpbnRmKCJnZW5lcmF0ZWQgYWx3YXlzIGFz ICglcykiLAorCQkJCQkJCQkJICAgUFFnZXR2YWx1ZShyZXMsIGksIGF0dHJkZWZfY29sKSk7 CisJCQkJbXVzdGZyZWUgPSB0cnVlOworCQkJfQogCQkJZWxzZQogCQkJCWRlZmF1bHRfc3Ry ID0gUFFnZXR2YWx1ZShyZXMsIGksIGF0dHJkZWZfY29sKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNj LmgKaW5kZXggODkzMGEyOGQ2NjAuLjZlZjQwMjQ5NTgzIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvdHVwZGVzYy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNj LmgKQEAgLTQzLDYgKzQzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVHVwbGVDb25zdHIKIAl1aW50 MTYJCW51bV9jaGVjazsKIAlib29sCQloYXNfbm90X251bGw7CiAJYm9vbAkJaGFzX2dlbmVy YXRlZF9zdG9yZWQ7CisJYm9vbAkJaGFzX2dlbmVyYXRlZF92aXJ0dWFsOwogfSBUdXBsZUNv bnN0cjsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmgKaW5kZXggZDZhMmM3OTEyOTAuLjMzYjk1MGFk NmRmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL2hlYXAuaApAQCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBDSEtB VFlQRV9BTllBUlJBWQkJMHgwMQkvKiBhbGxvdyBBTllBUlJBWSAqLwogI2RlZmluZSBDSEtB VFlQRV9BTllSRUNPUkQJCTB4MDIJLyogYWxsb3cgUkVDT1JEIGFuZCBSRUNPUkRbXSAqLwog I2RlZmluZSBDSEtBVFlQRV9JU19QQVJUS0VZCQkweDA0CS8qIGF0dG5hbWUgaXMgcGFydCBr ZXkgIyBub3QgY29sdW1uICovCisjZGVmaW5lIENIS0FUWVBFX0lTX1ZJUlRVQUwJCTB4MDgJ LyogaXMgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uICovCiAKIHR5cGVkZWYgc3RydWN0IFJh d0NvbHVtbkRlZmF1bHQKIHsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YXR0cmlidXRlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCmluZGV4 IDFjNjJiOGJmY2I1Li44ZjE1OGRjNjA4MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19hdHRyaWJ1dGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJp YnV0ZS5oCkBAIC0yMzQsNiArMjM0LDcgQEAgTUFLRV9TWVNDQUNIRShBVFROVU0sIHBnX2F0 dHJpYnV0ZV9yZWxpZF9hdHRudW1faW5kZXgsIDEyOCk7CiAjZGVmaW5lCQkgIEFUVFJJQlVU RV9JREVOVElUWV9CWV9ERUZBVUxUICdkJwogCiAjZGVmaW5lCQkgIEFUVFJJQlVURV9HRU5F UkFURURfU1RPUkVECSdzJworI2RlZmluZQkJICBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRV QUwJJ3YnCiAKICNlbmRpZgkJCQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDBkOTZkYjU2Mzg2Li4xNWQ4OThlZjVkYyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjc2NSw2ICsyNzY1LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgQ29uc3RyYWludAogCWNoYXIJICAgKmNvb2tlZF9leHByOwkvKiBDSEVDSyBv ciBERUZBVUxUIGV4cHJlc3Npb24sIGFzCiAJCQkJCQkJCSAqIG5vZGVUb1N0cmluZyByZXBy ZXNlbnRhdGlvbiAqLwogCWNoYXIJCWdlbmVyYXRlZF93aGVuOyAvKiBBTFdBWVMgb3IgQlkg REVGQVVMVCAqLworCWNoYXIJCWdlbmVyYXRlZF9raW5kOyAvKiBTVE9SRUQgb3IgVklSVFVB TCAqLwogCWJvb2wJCW51bGxzX25vdF9kaXN0aW5jdDsgLyogbnVsbCB0cmVhdG1lbnQgZm9y IFVOSVFVRSBjb25zdHJhaW50cyAqLwogCUxpc3QJICAgKmtleXM7CQkJLyogU3RyaW5nIG5v ZGVzIG5hbWluZyByZWZlcmVuY2VkIGtleQogCQkJCQkJCQkgKiBjb2x1bW4ocyk7IGZvciBV TklRVUUvUEsvTk9UIE5VTEwgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA4OTlkNjRhZDU1 Zi4uZWZlMjVkN2RlMGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTQ5MCw2ICs0OTAsNyBA QCBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwgVFlQRV9GVU5DX05BTUVfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZlcnNpb24iLCBWRVJTSU9OX1AsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZpZXciLCBWSUVXLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2aWV3cyIsIFZJ RVdTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ2aXJ0 dWFsIiwgVklSVFVBTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgidm9sYXRpbGUiLCBWT0xBVElMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgid2hlbiIsIFdIRU4sIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJ3aGVyZSIsIFdIRVJFLCBSRVNFUlZFRF9LRVlXT1JELCBB U19MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRs ZXIuaCBiL3NyYy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaAppbmRleCAxYjY1 Y2RhNzFjZi4uYTY0NmEyMDY3NWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jld3JpdGUv cmV3cml0ZUhhbmRsZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXdyaXRlL3Jld3JpdGVIYW5k bGVyLmgKQEAgLTM4LDQgKzM4LDYgQEAgZXh0ZXJuIHZvaWQgZXJyb3Jfdmlld19ub3RfdXBk YXRhYmxlKFJlbGF0aW9uIHZpZXcsCiAJCQkJCQkJCQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0 LAogCQkJCQkJCQkJIGNvbnN0IGNoYXIgKmRldGFpbCk7CiAKK2V4dGVybiBOb2RlICpleHBh bmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhwcihOb2RlICpub2RlLCBSZWxhdGlvbiByZWwp OworCiAjZW5kaWYJCQkJCQkJLyogUkVXUklURUhBTkRMRVJfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL3BsL3BscGVybC9leHBlY3RlZC9wbHBlcmxfdHJpZ2dlci5vdXQgYi9zcmMvcGwvcGxw ZXJsL2V4cGVjdGVkL3BscGVybF90cmlnZ2VyLm91dAppbmRleCBkNDg3OWUyZjAzYi4uNDJj NTJlY2JiYTggMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3Ry aWdnZXIub3V0CisrKyBiL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIu b3V0CkBAIC04LDcgKzgsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0ICgKICk7CiBD UkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZCAoCiAgICAgaSBpbnQsCi0gICAg aiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRAorICAgIGogaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgayBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiBDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiB0cmlnZ2VyX2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZXJsIEFT ICQkCiAKQEAgLTM4Niw3ICszODcsNyBAQCBJTlNFUlQgSU5UTyB0cmlnZ2VyX3Rlc3RfZ2Vu ZXJhdGVkIChpKSBWQUxVRVMgKDEpOwogRVJST1I6ICBjYW5ub3Qgc2V0IGdlbmVyYXRlZCBj b2x1bW4gImoiCiBDT05URVhUOiAgUEwvUGVybCBmdW5jdGlvbiAiZ2VuZXJhdGVkX3Rlc3Rf ZnVuYzEiCiBTRUxFQ1QgKiBGUk9NIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGog Ci0tLS0rLS0tCisgaSB8IGogfCBrIAorLS0tKy0tLSstLS0KICgwIHJvd3MpCiAKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBlcmwvcGxwZXJsLmMgYi9zcmMvcGwvcGxwZXJsL3BscGVybC5j CmluZGV4IDFiMTY3N2UzMzNiLi5lYmY1NWZlNjYzYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3Bs cGVybC9wbHBlcmwuYworKysgYi9zcmMvcGwvcGxwZXJsL3BscGVybC5jCkBAIC0zMDQ3LDYg KzMwNDcsOSBAQCBwbHBlcmxfaGFzaF9mcm9tX3R1cGxlKEhlYXBUdXBsZSB0dXBsZSwgVHVw bGVEZXNjIHR1cGRlc2MsIGJvb2wgaW5jbHVkZV9nZW5lcmF0ZQogCQkJLyogZG9uJ3QgaW5j bHVkZSB1bmxlc3MgcmVxdWVzdGVkICovCiAJCQlpZiAoIWluY2x1ZGVfZ2VuZXJhdGVkKQog CQkJCWNvbnRpbnVlOworCQkJLyogbmV2ZXIgaW5jbHVkZSB2aXJ0dWFsIGNvbHVtbnMgKi8K KwkJCWlmIChhdHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRV QUwpCisJCQkJY29udGludWU7CiAJCX0KIAogCQlhdHRuYW1lID0gTmFtZVN0cihhdHQtPmF0 dG5hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIu c3FsIGIvc3JjL3BsL3BscGVybC9zcWwvcGxwZXJsX3RyaWdnZXIuc3FsCmluZGV4IDRhZGRk ZWI4MGFjLi4yNzk4YTAyZmExMiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9zcWwvcGxw ZXJsX3RyaWdnZXIuc3FsCisrKyBiL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2Vy LnNxbApAQCAtMTAsNyArMTAsOCBAQCBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0ICgKIAog Q1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogICAgIGkgaW50LAotICAg IGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAgICBqIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAorICAgIGsgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogCiBDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB0cmlnZ2VyX2RhdGEoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxwZXJs IEFTICQkCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25f dHJpZ2dlci5vdXQgYi9zcmMvcGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dl ci5vdXQKaW5kZXggNGNiOTBjYjUyMDQuLjY0ZWFiMmZhM2Y0IDEwMDY0NAotLS0gYS9zcmMv cGwvcGxweXRob24vZXhwZWN0ZWQvcGxweXRob25fdHJpZ2dlci5vdXQKKysrIGIvc3JjL3Bs L3BscHl0aG9uL2V4cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0CkBAIC02OSw3ICs2OSw4 IEBAIENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rlc3QKIAkoaSBpbnQsIHYgdGV4dCApOwogQ1JF QVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogCWkgaW50LAotICAgICAgICBq IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisgICAgICAgIGogaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQsCisgICAgICAgIGsgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogQ1JFQVRFIEZVTkNUSU9O IHRyaWdnZXJfZGF0YSgpIFJFVFVSTlMgdHJpZ2dlciBMQU5HVUFHRSBwbHB5dGhvbjN1IEFT ICQkCiAKQEAgLTYxNCw4ICs2MTUsOCBAQCBFUlJPUjogIGNhbm5vdCBzZXQgZ2VuZXJhdGVk IGNvbHVtbiAiaiIKIENPTlRFWFQ6ICB3aGlsZSBtb2RpZnlpbmcgdHJpZ2dlciByb3cKIFBM L1B5dGhvbiBmdW5jdGlvbiAiZ2VuZXJhdGVkX3Rlc3RfZnVuYzEiCiBTRUxFQ1QgKiBGUk9N IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisgaSB8IGogfCBr IAorLS0tKy0tLSstLS0KICgwIHJvd3MpCiAKIC0tIHJlY3Vyc2l2ZSBjYWxsIG9mIGEgdHJp Z2dlciBtdXN0bid0IGNvcnJ1cHQgVEQgKGJ1ZyAjMTg0NTYpCmRpZmYgLS1naXQgYS9zcmMv cGwvcGxweXRob24vcGxweV90eXBlaW8uYyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVp by5jCmluZGV4IGRiMTRjNWY4ZGFlLi41MWUxZDYxMDI1OSAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscHl0aG9uL3BscHlfdHlwZWlvLmMKKysrIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfdHlw ZWlvLmMKQEAgLTg0NCw2ICs4NDQsOSBAQCBQTHlEaWN0X0Zyb21UdXBsZShQTHlEYXR1bVRv T2IgKmFyZywgSGVhcFR1cGxlIHR1cGxlLCBUdXBsZURlc2MgZGVzYywgYm9vbCBpbmNsdQog CQkJCS8qIGRvbid0IGluY2x1ZGUgdW5sZXNzIHJlcXVlc3RlZCAqLwogCQkJCWlmICghaW5j bHVkZV9nZW5lcmF0ZWQpCiAJCQkJCWNvbnRpbnVlOworCQkJCS8qIG5ldmVyIGluY2x1ZGUg dmlydHVhbCBjb2x1bW5zICovCisJCQkJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRS SUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJCWNvbnRpbnVlOwogCQkJfQogCiAJCQlr ZXkgPSBOYW1lU3RyKGF0dHItPmF0dG5hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0 aG9uL3NxbC9wbHB5dGhvbl90cmlnZ2VyLnNxbCBiL3NyYy9wbC9wbHB5dGhvbi9zcWwvcGxw eXRob25fdHJpZ2dlci5zcWwKaW5kZXggZjZjMmVmOGQ2YTAuLjQ0MDU0OWMwNzg1IDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxweXRob24vc3FsL3BscHl0aG9uX3RyaWdnZXIuc3FsCisrKyBi L3NyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25fdHJpZ2dlci5zcWwKQEAgLTY5LDcgKzY5 LDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdAogCiBDUkVBVEUgVEFCTEUgdHJpZ2dl cl90ZXN0X2dlbmVyYXRlZCAoCiAJaSBpbnQsCi0gICAgICAgIGogaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAgICAgICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoaSAqIDIpIFNUT1JFRCwKKyAgICAgICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoaSAqIDMpIFZJUlRVQUwKICk7CiAKIENSRUFURSBGVU5DVElPTiB0cmlnZ2VyX2RhdGEo KSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxweXRob24zdSBBUyAkJApkaWZmIC0tZ2l0 IGEvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90cmlnZ2VyLm91dCBiL3NyYy9wbC90Y2wv ZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQKaW5kZXggMTI5YWJkNWJhNjcuLjUyOThlNTBh NWVjIDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0 CisrKyBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQKQEAgLTYzLDcg KzYzLDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdCAoCiBBTFRFUiBUQUJMRSB0cmln Z2VyX3Rlc3QgRFJPUCBkcm9wbWU7CiBDUkVBVEUgVEFCTEUgdHJpZ2dlcl90ZXN0X2dlbmVy YXRlZCAoCiAgICBpIGludCwKLSAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAy KSBTVE9SRUQKKyAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQs CisgICBrIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMykgVklSVFVBTAogKTsKIENS RUFURSBWSUVXIHRyaWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dl cl90ZXN0OwogQ1JFQVRFIEZVTkNUSU9OIHRyaWdnZXJfZGF0YSgpIHJldHVybnMgdHJpZ2dl ciBsYW5ndWFnZSBwbHRjbCBhcyAkXyQKQEAgLTY0Nyw3ICs2NDgsNyBAQCBOT1RJQ0U6ICBP TEQ6IHt9CiBOT1RJQ0U6ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93 X3RyaWdnZXJfZGF0YV90cmlnX2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IElOU0VSVAotTk9U SUNFOiAgVEdfcmVsYXR0czoge3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBp IGoga30KIE5PVElDRTogIFRHX3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFi bGVfbmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2No ZW1hOiBwdWJsaWMKQEAgLTY1OCw3ICs2NTksNyBAQCBOT1RJQ0U6ICBPTEQ6IHt9CiBOT1RJ Q0U6ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0 YV90cmlnX2FmdGVyCiBOT1RJQ0U6ICBUR19vcDogSU5TRVJUCi1OT1RJQ0U6ICBUR19yZWxh dHRzOiB7e30gaSBqfQorTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgaiBrfQogTk9USUNF OiAgVEdfcmVsaWQ6IGJvZ3VzOjEyMzQ1CiBOT1RJQ0U6ICBUR190YWJsZV9uYW1lOiB0cmln Z2VyX3Rlc3RfZ2VuZXJhdGVkCiBOT1RJQ0U6ICBUR190YWJsZV9zY2hlbWE6IHB1YmxpYwpA QCAtNjcwLDcgKzY3MSw3IEBAIE5PVElDRTogIE9MRDoge2k6IDEsIGo6IDJ9CiBOT1RJQ0U6 ICBUR19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90 cmlnX2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IFVQREFURQotTk9USUNFOiAgVEdfcmVsYXR0 czoge3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTog IFRHX3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dl cl90ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAg LTY4MSw3ICs2ODIsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxLCBqOiAyfQogTk9USUNFOiAg VEdfbGV2ZWw6IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJp Z19hZnRlcgogTk9USUNFOiAgVEdfb3A6IFVQREFURQotTk9USUNFOiAgVEdfcmVsYXR0czog e3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRH X3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90 ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTY5 Myw3ICs2OTQsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxMSwgajogMjJ9CiBOT1RJQ0U6ICBU R19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmln X2JlZm9yZQogTk9USUNFOiAgVEdfb3A6IERFTEVURQotTk9USUNFOiAgVEdfcmVsYXR0czog e3t9IGkgan0KK05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRH X3JlbGlkOiBib2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90 ZXN0X2dlbmVyYXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTcw NCw3ICs3MDUsNyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxMSwgajogMjJ9CiBOT1RJQ0U6ICBU R19sZXZlbDogUk9XCiBOT1RJQ0U6ICBUR19uYW1lOiBzaG93X3RyaWdnZXJfZGF0YV90cmln X2FmdGVyCiBOT1RJQ0U6ICBUR19vcDogREVMRVRFCi1OT1RJQ0U6ICBUR19yZWxhdHRzOiB7 e30gaSBqfQorTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgaiBrfQogTk9USUNFOiAgVEdf cmVsaWQ6IGJvZ3VzOjEyMzQ1CiBOT1RJQ0U6ICBUR190YWJsZV9uYW1lOiB0cmlnZ2VyX3Rl c3RfZ2VuZXJhdGVkCiBOT1RJQ0U6ICBUR190YWJsZV9zY2hlbWE6IHB1YmxpYwpAQCAtODgy LDcgKzg4Myw3IEBAIFRSVU5DQVRFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQ7CiBJTlNFUlQg SU5UTyB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkIChpKSBWQUxVRVMgKDEpOwogRVJST1I6ICBj YW5ub3Qgc2V0IGdlbmVyYXRlZCBjb2x1bW4gImoiCiBTRUxFQ1QgKiBGUk9NIHRyaWdnZXJf dGVzdF9nZW5lcmF0ZWQ7Ci0gaSB8IGogCi0tLS0rLS0tCisgaSB8IGogfCBrIAorLS0tKy0t LSstLS0KICgwIHJvd3MpCiAKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wvcGx0Y2wuYyBiL3Ny Yy9wbC90Y2wvcGx0Y2wuYwppbmRleCA4MGRlMGRiNDBkZS4uMGRlNDgxNDhiNDcgMTAwNjQ0 Ci0tLSBhL3NyYy9wbC90Y2wvcGx0Y2wuYworKysgYi9zcmMvcGwvdGNsL3BsdGNsLmMKQEAg LTMyMDIsNiArMzIwMiw5IEBAIHBsdGNsX2J1aWxkX3R1cGxlX2FyZ3VtZW50KEhlYXBUdXBs ZSB0dXBsZSwgVHVwbGVEZXNjIHR1cGRlc2MsIGJvb2wgaW5jbHVkZV9nZW5lCiAJCQkvKiBk b24ndCBpbmNsdWRlIHVubGVzcyByZXF1ZXN0ZWQgKi8KIAkJCWlmICghaW5jbHVkZV9nZW5l cmF0ZWQpCiAJCQkJY29udGludWU7CisJCQkvKiBuZXZlciBpbmNsdWRlIHZpcnR1YWwgY29s dW1ucyAqLworCQkJaWYgKGF0dC0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFU RURfVklSVFVBTCkKKwkJCQljb250aW51ZTsKIAkJfQogCiAJCS8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdp dCBhL3NyYy9wbC90Y2wvc3FsL3BsdGNsX3RyaWdnZXIuc3FsIGIvc3JjL3BsL3RjbC9zcWwv cGx0Y2xfdHJpZ2dlci5zcWwKaW5kZXggMmEyNDRkZTgzYmMuLjBlZDAwZjQ5NTI2IDEwMDY0 NAotLS0gYS9zcmMvcGwvdGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbAorKysgYi9zcmMvcGwv dGNsL3NxbC9wbHRjbF90cmlnZ2VyLnNxbApAQCAtNzMsNyArNzMsOCBAQCBDUkVBVEUgVEFC TEUgdHJpZ2dlcl90ZXN0ICgKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0 ZWQgKAogICAgaSBpbnQsCi0gICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikg U1RPUkVECisgICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAor ICAgayBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiAKIENS RUFURSBWSUVXIHRyaWdnZXJfdGVzdF92aWV3IEFTIFNFTEVDVCBpLCB2IEZST00gdHJpZ2dl cl90ZXN0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRl LmljdS51dGY4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3Uu dXRmOC5vdXQKaW5kZXggZmFhMzc2ZTA2MGMuLjVhOTRjZTEzYWZhIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKQEAgLTIwNTQs NiArMjA1NCwyNiBAQCBTRUxFQ1QgKFNFTEVDVCBjb3VudCgqKSBGUk9NIHRlc3QzM18wKSA8 PiAoU0VMRUNUIGNvdW50KCopIEZST00gdGVzdDMzXzEpOwogIHQKICgxIHJvdykKIAorLS0g dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworQ1JFQVRFIFRBQkxFIHQ1ICgKKyAgICBhIGlu dCwKKyAgICBiIHRleHQgY29sbGF0ZSAiQyIsCisgICAgYyB0ZXh0IGNvbGxhdGUgIkMiIEdF TkVSQVRFRCBBTFdBWVMgQVMgKGIgQ09MTEFURSBjYXNlX2luc2Vuc2l0aXZlKQorKTsKK0lO U0VSVCBJTlRPIHQ1IChhLCBiKSB2YWx1ZXMgKDEsICdEMScpLCAoMiwgJ0QyJyksICgzLCAn ZDEnKTsKKy0tIENvbGxhdGlvbiBvZiBjIHNob3VsZCBiZSB0aGUgb25lIGRlZmluZWQgZm9y IHRoZSBjb2x1bW4gKCJDIiksIG5vdAorLS0gdGhlIG9uZSBvZiB0aGUgZ2VuZXJhdGlvbiBl eHByZXNzaW9uLiAgKE5vdGUgdGhhdCB3ZSBjYW5ub3QganVzdAorLS0gdGVzdCB3aXRoLCBz YXksIHVzaW5nIENPTExBVElPTiBGT1IsIGJlY2F1c2UgdGhlIGNvbGxhdGlvbiBvZgorLS0g ZnVuY3Rpb24gY2FsbHMgaXMgYWxyZWFkeSBkZXRlcm1pbmVkIGluIHRoZSBwYXJzZXIgYmVm b3JlCistLSByZXdyaXRpbmcuKQorU0VMRUNUICogRlJPTSB0NSBPUkRFUiBCWSBjIEFTQywg YSBBU0M7CisgYSB8IGIgIHwgYyAgCistLS0rLS0tLSstLS0tCisgMSB8IEQxIHwgRDEKKyAy IHwgRDIgfCBEMgorIDMgfCBkMSB8IGQxCisoMyByb3dzKQorCiAtLSBjbGVhbnVwCiBSRVNF VCBzZWFyY2hfcGF0aDsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzIFRPIHdhcm5pbmc7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtl Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0 CmluZGV4IDZiZmM2ZDA0MGZmLi45NzE1N2RjNjM1YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKQEAgLTExMywxOSArMTEz LDIwIEBAIFNFTEVDVCAqIEZST00gdGVzdF9saWtlX2lkXzM7ICAtLSBpZGVudGl0eSB3YXMg Y29waWVkIGFuZCBhcHBsaWVkCiAoMSByb3cpCiAKIERST1AgVEFCTEUgdGVzdF9saWtlX2lk XzEsIHRlc3RfbGlrZV9pZF8yLCB0ZXN0X2xpa2VfaWRfMzsKLUNSRUFURSBUQUJMRSB0ZXN0 X2xpa2VfZ2VuXzEgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSB0ZXN0X2xpa2VfZ2VuXzEgKGEgaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMykgVklSVFVBTCk7CiBcZCB0ZXN0X2xpa2VfZ2VuXzEKICAgICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVzdF9saWtlX2dlbl8xIgogIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKICBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikg c3RvcmVkCisgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDMpCiAKIElOU0VSVCBJTlRPIHRlc3RfbGlrZV9nZW5f MSAoYSkgVkFMVUVTICgxKTsKIFNFTEVDVCAqIEZST00gdGVzdF9saWtlX2dlbl8xOwotIGEg fCBiIAotLS0tKy0tLQotIDEgfCAyCisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAxIHwg MiB8IDMKICgxIHJvdykKIAogQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9nZW5fMiAoTElLRSB0 ZXN0X2xpa2VfZ2VuXzEpOwpAQCAtMTM1LDEyICsxMzYsMTMgQEAgQ1JFQVRFIFRBQkxFIHRl c3RfbGlrZV9nZW5fMiAoTElLRSB0ZXN0X2xpa2VfZ2VuXzEpOwogLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCiAKIElOU0VSVCBJTlRPIHRlc3RfbGlrZV9nZW5fMiAoYSkgVkFMVUVTICgx KTsKIFNFTEVDVCAqIEZST00gdGVzdF9saWtlX2dlbl8yOwotIGEgfCBiIAotLS0tKy0tLQot IDEgfCAgCisgYSB8IGIgfCBjIAorLS0tKy0tLSstLS0KKyAxIHwgICB8ICAKICgxIHJvdykK IAogQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9nZW5fMyAoTElLRSB0ZXN0X2xpa2VfZ2VuXzEg SU5DTFVESU5HIEdFTkVSQVRFRCk7CkBAIC0xNTAsMTIgKzE1MiwxMyBAQCBDUkVBVEUgVEFC TEUgdGVzdF9saWtlX2dlbl8zIChMSUtFIHRlc3RfbGlrZV9nZW5fMSBJTkNMVURJTkcgR0VO RVJBVEVEKTsKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGIgICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKKyBj ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChhICogMykKIAogSU5TRVJUIElOVE8gdGVzdF9saWtlX2dlbl8zIChhKSBWQUxV RVMgKDEpOwogU0VMRUNUICogRlJPTSB0ZXN0X2xpa2VfZ2VuXzM7Ci0gYSB8IGIgCi0tLS0r LS0tCi0gMSB8IDIKKyBhIHwgYiB8IGMgCistLS0rLS0tKy0tLQorIDEgfCAyIHwgMwogKDEg cm93KQogCiBEUk9QIFRBQkxFIHRlc3RfbGlrZV9nZW5fMSwgdGVzdF9saWtlX2dlbl8yLCB0 ZXN0X2xpa2VfZ2VuXzM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2Zhc3RfZGVmYXVsdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVm YXVsdC5vdXQKaW5kZXggNTkzNjVkYWQ5NjQuLjI3MmI1N2U0OGNkIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CkBAIC01OCw2ICs1OCwxOCBA QCBBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUREIGNvbDIgaW50IERFRkFVTFQgMTsKIEFM VEVSIFRBQkxFIGhhc192b2xhdGlsZSBBREQgY29sMyB0aW1lc3RhbXB0eiBERUZBVUxUIGN1 cnJlbnRfdGltZXN0YW1wOwogQUxURVIgVEFCTEUgaGFzX3ZvbGF0aWxlIEFERCBjb2w0IGlu dCBERUZBVUxUIChyYW5kb20oKSAqIDEwMDAwKTo6aW50OwogTk9USUNFOiAgcmV3cml0aW5n IHRhYmxlIGhhc192b2xhdGlsZSBmb3IgcmVhc29uIDIKKy0tIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbnMgZG9uJ3QgbmVlZCBhIHJld3JpdGUKK0FMVEVSIFRBQkxFIGhhc192b2xhdGls ZSBBREQgY29sNSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQ6OmludCArIGNv bDIpIFZJUlRVQUw7CitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUxURVIgQ09MVU1OIGNv bDUgVFlQRSBmbG9hdDg7CitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUxURVIgQ09MVU1O IGNvbDUgVFlQRSBudW1lcmljOworQUxURVIgVEFCTEUgaGFzX3ZvbGF0aWxlIEFMVEVSIENP TFVNTiBjb2w1IFRZUEUgbnVtZXJpYzsKKy0tIGhlcmUsIHdlIGRvIG5lZWQgYSByZXdyaXRl CitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUxURVIgQ09MVU1OIGNvbDEgU0VUIERBVEEg VFlQRSBmbG9hdDgsCisgIEFERCBDT0xVTU4gY29sNiBmbG9hdDggR0VORVJBVEVEIEFMV0FZ UyBBUyAoY29sMSAqIDQpIFZJUlRVQUw7CitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUgaGFz X3ZvbGF0aWxlIGZvciByZWFzb24gNAorLS0gc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIG5l ZWQgYSByZXdyaXRlCitBTFRFUiBUQUJMRSBoYXNfdm9sYXRpbGUgQUREIGNvbDcgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBzdG9yZWQ7CitOT1RJQ0U6ICByZXdyaXRpbmcgdGFi bGUgaGFzX3ZvbGF0aWxlIGZvciByZWFzb24gMgogLS0gVGVzdCBhIGxhcmdlIHNhbXBsZSBv ZiBkaWZmZXJlbnQgZGF0YXR5cGVzCiBDUkVBVEUgVEFCTEUgVChwayBJTlQgTk9UIE5VTEwg UFJJTUFSWSBLRVksIGNfaW50IElOVCBERUZBVUxUIDEpOwogU0VMRUNUIHNldCgndCcpOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVk Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQK aW5kZXggOGVhOGEzYTkyZDIuLjc2NmNiNGZjMGFmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKQEAgLTEsNSArMSw2IEBACist LSBrZWVwIHRoZXNlIHRlc3RzIGFsaWduZWQgd2l0aCBnZW5lcmF0ZWRfdmlydHVhbC5zcWwK IC0tIHNhbml0eSBjaGVjayBvZiBzeXN0ZW0gY2F0YWxvZwotU0VMRUNUIGF0dHJlbGlkLCBh dHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJh dGVkIE5PVCBJTiAoJycsICdzJyk7CitTRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdl bmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgn JywgJ3MnLCAndicpOwogIGF0dHJlbGlkIHwgYXR0bmFtZSB8IGF0dGdlbmVyYXRlZCAKIC0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQpAQCAtMTI4LDYg KzEyOSwyNCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MSBPUkRFUiBCWSBhOwogIDQgfCA4CiAo NCByb3dzKQogCitTRUxFQ1QgZ3Rlc3QxIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7ICAtLSB3 aG9sZS1yb3cgcmVmZXJlbmNlCisgZ3Rlc3QxIAorLS0tLS0tLS0KKyAoMSwyKQorICgyLDQp CisgKDMsNikKKyAoNCw4KQorKDQgcm93cykKKworU0VMRUNUIGEsIChTRUxFQ1QgZ3Rlc3Qx LmIpIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7ICAtLSBzdWJsaW5rCisgYSB8IGIgCistLS0r LS0tCisgMSB8IDIKKyAyIHwgNAorIDMgfCA2CisgNCB8IDgKKyg0IHJvd3MpCisKIERFTEVU RSBGUk9NIGd0ZXN0MSBXSEVSRSBhID49IDM7CiBVUERBVEUgZ3Rlc3QxIFNFVCBiID0gREVG QVVMVCBXSEVSRSBhID0gMTsKIFVQREFURSBndGVzdDEgU0VUIGIgPSAxMSBXSEVSRSBhID0g MTsgIC0tIGVycm9yCkBAIC0yMTcsNiArMjM2LDI3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3Rt IE9SREVSIEJZIGlkOwogICAyIHwgMjAgfCAyMDAgfCA0MCB8IDQwMAogKDIgcm93cykKIAor RFJPUCBUQUJMRSBndGVzdG07CitDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKKyAgYSBpbnQgUFJJ TUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQK Kyk7CitJTlNFUlQgSU5UTyBndGVzdG0gKGEpIFNFTEVDVCBnIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwKSBnOworTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyBndGVzdG0gQVMgcyBP TiAyICogdC5hID0gcy5iIFdIRU4gTUFUQ0hFRCBUSEVOIERFTEVURSBSRVRVUk5JTkcgKjsK KyBhICB8IGIgIHwgYSAgfCBiICAKKy0tLS0rLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAyIHwg IDEgfCAgMgorICAyIHwgIDQgfCAgMiB8ICA0CisgIDMgfCAgNiB8ICAzIHwgIDYKKyAgNCB8 ICA4IHwgIDQgfCAgOAorICA1IHwgMTAgfCAgNSB8IDEwCisgIDYgfCAxMiB8ICA2IHwgMTIK KyAgNyB8IDE0IHwgIDcgfCAxNAorICA4IHwgMTYgfCAgOCB8IDE2CisgIDkgfCAxOCB8ICA5 IHwgMTgKKyAxMCB8IDIwIHwgMTAgfCAyMAorKDEwIHJvd3MpCisKIERST1AgVEFCTEUgZ3Rl c3RtOwogLS0gdmlld3MKIENSRUFURSBWSUVXIGd0ZXN0MXYgQVMgU0VMRUNUICogRlJPTSBn dGVzdDE7CkBAIC0zMTIsNiArMzUyLDEwIEBAIEVSUk9SOiAgY29sdW1uICJiIiBpbmhlcml0 cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNwZWNpZmllcyBkZWZhdWx0CiBDUkVBVEUg VEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElU WSkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgogTk9USUNFOiAgbWVyZ2luZyBjb2x1 bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIEVSUk9SOiAgY29sdW1uICJiIiBp bmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNwZWNpZmllcyBpZGVudGl0eQor Q1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgorTk9USUNF OiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KK0VSUk9S OiAgY29sdW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVy ZW50IGtpbmQKK0RFVEFJTDogIFBhcmVudCBjb2x1bW4gaXMgU1RPUkVELCBjaGlsZCBjb2x1 bW4gaXMgVklSVFVBTC4KIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAt LSBvaywgb3ZlcnJpZGVzIHBhcmVudAogTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdp dGggaW5oZXJpdGVkIGRlZmluaXRpb24KIFxkKyBndGVzdHgKQEAgLTc2Miw2ICs4MDYsMTEg QEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9t YWluMSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICoKIElOU0VSVCBJTlRPIGd0ZXN0MjQgKGEp IFZBTFVFUyAoNCk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg2 KTsgIC0tIGVycm9yCiBFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZ3Rlc3Rkb21haW4xIHZp b2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImd0ZXN0ZG9tYWluMV9jaGVjayIKK0NSRUFURSBU WVBFIGd0ZXN0ZG9tYWluMXJhbmdlIEFTIHJhbmdlIChzdWJ0eXBlID0gZ3Rlc3Rkb21haW4x KTsKK0NSRUFURSBUQUJMRSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rk b21haW4xcmFuZ2UgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2UoYSwg YSArIDUpKSBTVE9SRUQpOworSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNCk7 ICAtLSBvaworSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJv cgorRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGd0ZXN0ZG9tYWluMSB2aW9sYXRlcyBjaGVj ayBjb25zdHJhaW50ICJndGVzdGRvbWFpbjFfY2hlY2siCiAtLSB0eXBlZCB0YWJsZXMgKGN1 cnJlbnRseSBub3Qgc3VwcG9ydGVkKQogQ1JFQVRFIFRZUEUgZ3Rlc3RfdHlwZSBBUyAoZjEg aW50ZWdlciwgZjIgdGV4dCwgZjMgYmlnaW50KTsKIENSRUFURSBUQUJMRSBndGVzdDI4IE9G IGd0ZXN0X3R5cGUgKGYxIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAq MikgU1RPUkVEKTsKQEAgLTc5Miw2ICs4NDEsMTEgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2No aWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBXSVRIIE9QVElPTlMg R0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSAgLS0gZXJyb3IKICkgRk9SIFZBTFVFUyBG Uk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogRVJST1I6ICBpZGVudGl0 eSBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHBhcnRpdGlvbnMKK0NSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCisgICAgZjMgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMICAtLSBlcnJvcgorKSBGT1IgVkFM VUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7CitFUlJPUjogIGNv bHVtbiAiZjMiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQg a2luZAorREVUQUlMOiAgUGFyZW50IGNvbHVtbiBpcyBTVE9SRUQsIGNoaWxkIGNvbHVtbiBp cyBWSVJUVUFMLgogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFU VEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDkt MDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJmMyIg aW4gY2hpbGQgdGFibGUgbXVzdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KQEAgLTgwNSw2ICs4 NTksMTEgQEAgQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rl c3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDkKIEVSUk9SOiAgdGFibGUgImd0 ZXN0X2NoaWxkMyIgYmVpbmcgYXR0YWNoZWQgY29udGFpbnMgYW4gaWRlbnRpdHkgY29sdW1u ICJmMyIKIERFVEFJTDogIFRoZSBuZXcgcGFydGl0aW9uIG1heSBub3QgY29udGFpbiBhbiBp ZGVudGl0eSBjb2x1bW4uCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKK0NSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFZJUlRVQUwpOworQUxURVIgVEFCTEUg Z3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMg RlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKK0VSUk9S OiAgY29sdW1uICJmMyIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZl cmVudCBraW5kCitERVRBSUw6ICBQYXJlbnQgY29sdW1uIGlzIFNUT1JFRCwgY2hpbGQgY29s dW1uIGlzIFZJUlRVQUwuCitEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKIENSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CiBBTFRFUiBUQUJMRSBn dGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBG Uk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogXGQgZ3Rlc3RfY2hpbGQK QEAgLTEwOTIsOSArMTE1MSw5IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKIEFMVEVSIFRB QkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsg IC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlz IG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09M VU1OIGEgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKLUVSUk9SOiAgY29sdW1uICJhIiBv ZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4K K0VSUk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90IGEgZ2Vu ZXJhdGVkIGNvbHVtbgogQUxURVIgVEFCTEUgZ3Rlc3QyOSBBTFRFUiBDT0xVTU4gYSBEUk9Q IEVYUFJFU1NJT04gSUYgRVhJU1RTOyAgLS0gbm90aWNlCi1OT1RJQ0U6ICBjb2x1bW4gImEi IG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVt biwgc2tpcHBpbmcKK05PVElDRTogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0Mjki IGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nCiAtLSBDaGFuZ2UgdGhlIGV4 cHJlc3Npb24KIEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJF U1NJT04gQVMgKGEgKiAzKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKQEAgLTExODgsNiAr MTI0NywxOCBAQCBJbmhlcml0czogZ3Rlc3QzMAogCiBBTFRFUiBUQUJMRSBndGVzdDMwXzEg QUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKIEVSUk9SOiAgY2Fu bm90IGRyb3AgZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZyb20gaW5oZXJpdGVkIGNvbHVtbgor LS0gY29tcG9zaXRlIHR5cGUgZGVwZW5kZW5jaWVzCitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8x IChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKCdoZWxsbycpIFNUT1JFRCwg YyB0ZXh0KTsKK0NSRUFURSBUQUJMRSBndGVzdDMxXzIgKHggaW50LCB5IGd0ZXN0MzFfMSk7 CitBTFRFUiBUQUJMRSBndGVzdDMxXzEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAg LS0gZmFpbHMKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJndGVzdDMxXzEiIGJlY2F1 c2UgY29sdW1uICJndGVzdDMxXzIueSIgdXNlcyBpdHMgcm93IHR5cGUKK0RST1AgVEFCTEUg Z3Rlc3QzMV8xLCBndGVzdDMxXzI7CistLSBDaGVjayBpdCBmb3IgYSBwYXJ0aXRpb25lZCB0 YWJsZSwgdG9vCitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8xIChhIGludCwgYiB0ZXh0IEdFTkVS QVRFRCBBTFdBWVMgQVMgKCdoZWxsbycpIFNUT1JFRCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkg TElTVCAoYSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8yICh4IGludCwgeSBndGVzdDMxXzEp OworQUxURVIgVEFCTEUgZ3Rlc3QzMV8xIEFMVEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsg IC0tIGZhaWxzCitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAiZ3Rlc3QzMV8xIiBiZWNh dXNlIGNvbHVtbiAiZ3Rlc3QzMV8yLnkiIHVzZXMgaXRzIHJvdyB0eXBlCitEUk9QIFRBQkxF IGd0ZXN0MzFfMSwgZ3Rlc3QzMV8yOwogLS0gdHJpZ2dlcnMKIENSRUFURSBUQUJMRSBndGVz dDI2ICgKICAgICBhIGludCBQUklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dApzaW1pbGFyaXR5IGluZGV4IDY3JQpj b3B5IGZyb20gc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91 dApjb3B5IHRvIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwu b3V0CmluZGV4IDhlYThhM2E5MmQyLi44ODY0ZmU4YmIxOCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dApAQCAtMSwxNSArMSwx NiBAQAorLS0ga2VlcCB0aGVzZSB0ZXN0cyBhbGlnbmVkIHdpdGggZ2VuZXJhdGVkX3N0b3Jl ZC5zcWwKIC0tIHNhbml0eSBjaGVjayBvZiBzeXN0ZW0gY2F0YWxvZwotU0VMRUNUIGF0dHJl bGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0 Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdzJyk7CitTRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUs IGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9U IElOICgnJywgJ3MnLCAndicpOwogIGF0dHJlbGlkIHwgYXR0bmFtZSB8IGF0dGdlbmVyYXRl ZCAKIC0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCi1D UkVBVEUgU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRfdGVzdHM7Ci1HUkFOVCBVU0FHRSBPTiBT Q0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cyBUTyBQVUJMSUM7Ci1TRVQgc2VhcmNoX3Bh dGggPSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBTVE9SRUQp OwotQ1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwotU0VMRUNUIHRhYmxlX25hbWUsIGNv bHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVsdCwgaXNfbnVsbGFibGUsIGlzX2dlbmVyYXRlZCwg Z2VuZXJhdGlvbl9leHByZXNzaW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMg V0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF9zdG9yZWRfdGVzdHMnIE9SREVSIEJZ IDEsIDI7CitDUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOworR1JBTlQg VVNBR0UgT04gU0NIRU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzIFRPIFBVQkxJQzsKK1NF VCBzZWFyY2hfcGF0aCA9IGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOworQ1JFQVRFIFRBQkxF IGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KDU1KSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitTRUxFQ1Qg dGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwg aXNfZ2VuZXJhdGVkLCBnZW5lcmF0aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZvcm1hdGlvbl9z Y2hlbWEuY29sdW1ucyBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHMnIE9SREVSIEJZIDEsIDI7CiAgdGFibGVfbmFtZSB8IGNvbHVtbl9uYW1lIHwgY29s dW1uX2RlZmF1bHQgfCBpc19udWxsYWJsZSB8IGlzX2dlbmVyYXRlZCB8IGdlbmVyYXRpb25f ZXhwcmVzc2lvbiAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIGd0ZXN0MCAgICAgfCBhICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgTk8gICAg ICAgICAgfCBORVZFUiAgICAgICAgfCAKQEAgLTE4LDg5ICsxOSw4OSBAQCBTRUxFQ1QgdGFi bGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNf Z2VuZXJhdGVkLCBnZW5lcgogIGd0ZXN0MSAgICAgfCBiICAgICAgICAgICB8ICAgICAgICAg ICAgICAgIHwgWUVTICAgICAgICAgfCBBTFdBWVMgICAgICAgfCAoYSAqIDIpCiAoNCByb3dz KQogCi1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9jb2x1bW4g RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBXSEVSRSB0YWJs ZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsK K1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9N IGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3Nj aGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKICB0 YWJsZV9uYW1lIHwgY29sdW1uX25hbWUgfCBkZXBlbmRlbnRfY29sdW1uIAogLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCiAgZ3Rlc3QxICAgICB8IGEg ICAgICAgICAgIHwgYgogKDEgcm93KQogCiBcZCBndGVzdDEKLSAgICAgICAgICAgICAgICAg ICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxIgotIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QxIgorIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAg ICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEg KiAyKQogSW5kZXhlczoKICAgICAiZ3Rlc3QxX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAo YSkKIAogLS0gZHVwbGljYXRlIGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8x IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKK0NSRUFURSBU QUJMRSBndGVzdF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBW SVJUVUFMKTsKIEVSUk9SOiAgbXVsdGlwbGUgZ2VuZXJhdGlvbiBjbGF1c2VzIHNwZWNpZmll ZCBmb3IgY29sdW1uICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzEiCi1MSU5FIDE6IC4uLkFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgR0VORVJB VEVEIC4uLgorTElORSAxOiAuLi5SWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBWSVJUVUFMIEdFTkVSQVRFRCAuLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSByZWZlcmVuY2Vz IHRvIG90aGVyIGdlbmVyYXRlZCBjb2x1bW5zLCBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2Vz Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYiAqIDIpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1 bW4gImIiIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KLUxJTkUgMTogLi4uMmEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikg U1RPLi4uCitMSU5FIDE6IC4uLjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUi4uLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIEEgZ2Vu ZXJhdGVkIGNvbHVtbiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVt bi4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChiICogMykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg VklSVFVBTCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUlRVQUwpOwog RVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gImIiIGluIGNvbHVtbiBnZW5l cmF0aW9uIGV4cHJlc3Npb24KLUxJTkUgMTogLi4uQVlTIEFTIChhICogMikgU1RPUkVELCBj IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgU1RPLi4uCitMSU5FIDE6IC4uLllT IEFTIChhICogMikgVklSVFVBTCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMp IFZJUi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIEEgZ2VuZXJhdGVkIGNvbHVtbiBjYW5ub3Qg cmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVtbi4KIC0tIGEgd2hvbGUtcm93IHZh ciBpcyBhIHNlbGYtcmVmZXJlbmNlIG9uIHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0aGF0IHRv bwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYyAoYSBpbnQgUFJJTUFSWSBLRVksCi0gICAg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFNU T1JFRCk7CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0 X2Vycl8yYykpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIHdob2xlLXJvdyB2YXJp YWJsZSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCi1MSU5FIDI6ICAgICBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgU1RPUi4u LgorTElORSAyOiAgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0 ZXN0X2Vycl8yYykpIFZJUlQuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5l cmF0ZWQgY29sdW1uIHRvIGRlcGVuZCBvbiBpdHMgb3duIHZhbHVlLgogLS0gaW52YWxpZCBy ZWZlcmVuY2UKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMyAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYyAqIDIpIFZJUlRVQUwpOwogRVJST1I6ICBjb2x1bW4gImMiIGRvZXMgbm90 IGV4aXN0Ci1MSU5FIDE6IC4uLl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYyAqIDIpIFNUTy4uLgorTElORSAxOiAuLi5fMyAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBWSVIuLi4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiAtLSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBpbW11dGFibGUKLUNS RUFURSBUQUJMRSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHBy ZWNpc2lvbiBHRU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgU1RPUkVEKTsKK0NSRUFU RSBUQUJMRSBndGVzdF9lcnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNp c2lvbiBHRU5FUkFURUQgQUxXQVlTIEFTIChyYW5kb20oKSkgVklSVFVBTCk7CiBFUlJPUjog IGdlbmVyYXRpb24gZXhwcmVzc2lvbiBpcyBub3QgaW1tdXRhYmxlCiAtLSAuLi4gYnV0IGJl IHN1cmUgdGhhdCB0aGUgaW1tdXRhYmlsaXR5IHRlc3QgaXMgYWNjdXJhdGUKLUNSRUFURSBU QUJMRSBndGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAn IHNlYycpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0ZXh0IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJyBzZWMnKSBWSVJUVUFMKTsKIERST1AgVEFCTEUg Z3Rlc3QyOwogLS0gY2Fubm90IGhhdmUgZGVmYXVsdC9pZGVudGl0eSBhbmQgZ2VuZXJhdGVk Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzVhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg REVGQVVMVCA1IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQg NSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBFUlJPUjogIGJvdGgg ZGVmYXVsdCBhbmQgZ2VuZXJhdGlvbiBleHByZXNzaW9uIHNwZWNpZmllZCBmb3IgY29sdW1u ICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzVhIgogTElORSAxOiAuLi4gZ3Rlc3RfZXJyXzVh IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCAuLi4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEVSUk9SOiAgYm90aCBpZGVudGl0eSBh bmQgZ2VuZXJhdGlvbiBleHByZXNzaW9uIHNwZWNpZmllZCBmb3IgY29sdW1uICJiIiBvZiB0 YWJsZSAiZ3Rlc3RfZXJyXzViIgogTElORSAxOiAuLi50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCAuLi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAt LSByZWZlcmVuY2UgdG8gc3lzdGVtIGNvbHVtbiBub3QgYWxsb3dlZCBpbiBnZW5lcmF0ZWQg Y29sdW1uCiAtLSAoZXhjZXB0IHRhYmxlb2lkLCB3aGljaCB3ZSB0ZXN0IGJlbG93KQotQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBHRU5F UkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlT IEFTICh4bWluIDw+IDM3KSBWSVJUVUFMKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBzeXN0ZW0g Y29sdW1uICJ4bWluIiBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBMSU5FIDE6 IC4uLmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAo eG1pbiA8PiAzNy4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIHZhcmlvdXMgcHJvaGliaXRlZCBjb25zdHJ1 Y3RzCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGF2ZyhhKSkgVklSVFVBTCk7CiBFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCi1MSU5F IDE6IC4uLjdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYXZnKGEpKSBTVC4uLgorTElORSAxOiAuLi43YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgVkkuLi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1DUkVB VEUgVEFCTEUgZ3Rlc3RfZXJyXzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAocm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBTVE9SRUQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJvd19udW1iZXIoKSBPVkVSIChPUkRFUiBCWSBhKSkg VklSVFVBTCk7CiBFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGlu IGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCiBMSU5FIDE6IC4uLjdiIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJlci4uLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2MgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEpKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3Qg dXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIExJTkUgMTog Li4uN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgo U0VMRUNUIGEpLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3Nl cmllcygxLCBhKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJp ZXMoMSwgYSkpIFZJUlRVQUwpOwogRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMKIExJTkUg MTogLi4uN2QgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChnZW5lcmF0ZV9zLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gR0VORVJBVEVEIEJZIERFRkFVTFQgbm90 IGFsbG93ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFU RSBUQUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBCWSBERUZBVUxUIEFTIChhICogMikgVklSVFVBTCk7CiBFUlJPUjogIGZvciBhIGdlbmVy YXRlZCBjb2x1bW4sIEdFTkVSQVRFRCBBTFdBWVMgbXVzdCBiZSBzcGVjaWZpZWQKIExJTkUg MTogLi4uRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBCWSBERUZBVUxULi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgpAQCAtMTI4LDYgKzEyOSwyNCBAQCBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MSBPUkRFUiBCWSBhOwogIDQgfCA4CiAoNCByb3dzKQogCitTRUxFQ1Qg Z3Rlc3QxIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7ICAtLSB3aG9sZS1yb3cgcmVmZXJlbmNl CisgZ3Rlc3QxIAorLS0tLS0tLS0KKyAoMSwyKQorICgyLDQpCisgKDMsNikKKyAoNCw4KQor KDQgcm93cykKKworU0VMRUNUIGEsIChTRUxFQ1QgZ3Rlc3QxLmIpIEZST00gZ3Rlc3QxIE9S REVSIEJZIGE7ICAtLSBzdWJsaW5rCisgYSB8IGIgCistLS0rLS0tCisgMSB8IDIKKyAyIHwg NAorIDMgfCA2CisgNCB8IDgKKyg0IHJvd3MpCisKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVS RSBhID49IDM7CiBVUERBVEUgZ3Rlc3QxIFNFVCBiID0gREVGQVVMVCBXSEVSRSBhID0gMTsK IFVQREFURSBndGVzdDEgU0VUIGIgPSAxMSBXSEVSRSBhID0gMTsgIC0tIGVycm9yCkBAIC0x NTMsMTYgKzE3MiwxMCBAQCBTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MSBXSEVSRSBiID0gNCBP UkRFUiBCWSBhOwogIDIgfCA0CiAoMSByb3cpCiAKLS0tIHRlc3QgdGhhdCBvdmVyZmxvdyBl cnJvciBoYXBwZW5zIG9uIHdyaXRlCistLSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFw cGVucyBvbiByZWFkCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgyMDAwMDAwMDAwKTsK LUVSUk9SOiAgaW50ZWdlciBvdXQgb2YgcmFuZ2UKIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwot IGEgfCBiIAotLS0tKy0tLQotIDIgfCA0Ci0gMSB8IDIKLSgyIHJvd3MpCi0KK0VSUk9SOiAg aW50ZWdlciBvdXQgb2YgcmFuZ2UKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID0gMjAw MDAwMDAwMDsKIC0tIHRlc3Qgd2l0aCBqb2lucwogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBp bnQsIHkgaW50KTsKQEAgLTIwMyw4ICsyMTYsOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgK ICAgaWQgaW50IFBSSU1BUlkgS0VZLAogICBmMSBpbnQsCiAgIGYyIGludCwKLSAgZjMgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxICogMikgU1RPUkVELAotICBmNCBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQKKyAgZjMgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYxICogMikgVklSVFVBTCwKKyAgZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYyICogMikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0bSBWQUxVRVMgKDEsIDUs IDEwMCk7CiBNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIChWQUxVRVMgKDEsIDEwKSwgKDIs IDIwKSkgdihpZCwgZjEpIE9OIHQuaWQgPSB2LmlkCkBAIC0yMTcsNiArMjMwLDI3IEBAIFNF TEVDVCAqIEZST00gZ3Rlc3RtIE9SREVSIEJZIGlkOwogICAyIHwgMjAgfCAyMDAgfCA0MCB8 IDQwMAogKDIgcm93cykKIAorRFJPUCBUQUJMRSBndGVzdG07CitDUkVBVEUgVEFCTEUgZ3Rl c3RtICgKKyAgYSBpbnQgUFJJTUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBWSVJUVUFMCispOworSU5TRVJUIElOVE8gZ3Rlc3RtIChhKSBTRUxFQ1Qg ZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKK01FUkdFIElOVE8gZ3Rlc3RtIHQg VVNJTkcgZ3Rlc3RtIEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1BVENIRUQgVEhFTiBE RUxFVEUgUkVUVVJOSU5HICo7CisgYSAgfCBiICB8IGEgIHwgYiAgCistLS0tKy0tLS0rLS0t LSstLS0tCisgIDEgfCAgMiB8ICAxIHwgIDIKKyAgMiB8ICA0IHwgIDIgfCAgNAorICAzIHwg IDYgfCAgMyB8ICA2CisgIDQgfCAgOCB8ICA0IHwgIDgKKyAgNSB8IDEwIHwgIDUgfCAxMAor ICA2IHwgMTIgfCAgNiB8IDEyCisgIDcgfCAxNCB8ICA3IHwgMTQKKyAgOCB8IDE2IHwgIDgg fCAxNgorICA5IHwgMTggfCAgOSB8IDE4CisgMTAgfCAyMCB8IDEwIHwgMjAKKygxMCByb3dz KQorCiBEUk9QIFRBQkxFIGd0ZXN0bTsKIC0tIHZpZXdzCiBDUkVBVEUgVklFVyBndGVzdDF2 IEFTIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwpAQCAtMjczLDExICszMDcsMTEgQEAgU0VMRUNU ICogRlJPTSBndGVzdDFfMTsKICgwIHJvd3MpCiAKIFxkIGd0ZXN0MV8xCi0gICAgICAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxXzEiCi0gQ29s dW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MV8xIgorIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdh eXMgYXMgKGEgKiAyKQogSW5oZXJpdHM6IGd0ZXN0MQogCiBJTlNFUlQgSU5UTyBndGVzdDFf MSBWQUxVRVMgKDQpOwpAQCAtMjk2LDEyICszMzAsMTIgQEAgU0VMRUNUICogRlJPTSBndGVz dDE7CiAKIC0tIGNhbid0IGhhdmUgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIGEgY2hpbGQg b2Ygbm9ybWFsIGNvbHVtbgogQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbCAoYSBpbnQsIGIg aW50KTsKLUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3Rfbm9y bWFsKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpIElOSEVSSVRT IChndGVzdF9ub3JtYWwpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJh IiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCiBOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAi YiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogRVJST1I6ICBjaGlsZCBjb2x1bW4gImIi IHNwZWNpZmllcyBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIEhJTlQ6ICBBIGNoaWxkIHRhYmxl IGNvbHVtbiBjYW5ub3QgYmUgZ2VuZXJhdGVkIHVubGVzcyBpdHMgcGFyZW50IGNvbHVtbiBp cy4KLUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9u b3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg VklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgSU5IRVJJVCBndGVz dF9ub3JtYWw7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImIiIGluIGNoaWxkIHRhYmxl IG11c3Qgbm90IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgogRFJPUCBUQUJMRSBndGVzdF9ub3Jt YWwsIGd0ZXN0X25vcm1hbF9jaGlsZDsKQEAgLTMxMiwyMyArMzQ2LDQyIEBAIEVSUk9SOiAg Y29sdW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNwZWNpZmll cyBkZWZhdWx0CiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyBJREVOVElUWSkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgogTk9U SUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIEVS Uk9SOiAgY29sdW1uICJiIiBpbmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gYnV0IHNw ZWNpZmllcyBpZGVudGl0eQotQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsg IC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRTIChn dGVzdDEpOyAgLS0gZXJyb3IKK05PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGlu aGVyaXRlZCBkZWZpbml0aW9uCitFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBn ZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kCitERVRBSUw6ICBQYXJlbnQgY29s dW1uIGlzIFZJUlRVQUwsIGNoaWxkIGNvbHVtbiBpcyBTVE9SRUQuCitDUkVBVEUgVEFCTEUg Z3Rlc3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBWSVJU VUFMKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CiBOT1RJ Q0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogXGQr IGd0ZXN0eAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0eCIKLSBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICB8IFN0b3JhZ2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0KLSBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAg fCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChhICogMjIpIHN0b3JlZCB8IHBsYWluICAgfCAgICAgICAgICAgICAg fCAKLSB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAg fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0 ZWRfdmlydHVhbF90ZXN0cy5ndGVzdHgiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICB8IFN0b3JhZ2Ug fCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIyKSB8IHBsYWlu ICAgfCAgICAgICAgICAgICAgfCAKKyB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAg ICAgICAgICAgICB8IAogSW5oZXJpdHM6IGd0ZXN0MQogCitJTlNFUlQgSU5UTyBndGVzdHgg KGEsIHgpIFZBTFVFUyAoMTEsIDIyKTsKK1NFTEVDVCAqIEZST00gZ3Rlc3QxOworIGEgIHwg YiAgCistLS0tKy0tLS0KKyAgMyB8ICA2CisgIDQgfCAgOAorIDExIHwgMjIKKygzIHJvd3Mp CisKK1NFTEVDVCAqIEZST00gZ3Rlc3R4OworIGEgIHwgIGIgIHwgeCAgCistLS0tKy0tLS0t Ky0tLS0KKyAxMSB8IDI0MiB8IDIyCisoMSByb3cpCisKIENSRUFURSBUQUJMRSBndGVzdHh4 XzEgKGEgaW50IE5PVCBOVUxMLCBiIGludCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzEgSU5I RVJJVCBndGVzdDE7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImIiIGluIGNoaWxkIHRh YmxlIG11c3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1uCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4eF8z IChhIGludCBOT1QgTlVMTCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R4eF8zIChhIGludCBOT1QgTlVMTCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rl c3R4eF8zIElOSEVSSVQgZ3Rlc3QxOyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdHh4XzQg KGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGEgaW50IE5PVCBO VUxMKTsKK0NSRUFURSBUQUJMRSBndGVzdHh4XzQgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBWSVJUVUFMLCBhIGludCBOT1QgTlVMTCk7CiBBTFRFUiBUQUJMRSBndGVz dHh4XzQgSU5IRVJJVCBndGVzdDE7ICAtLSBvawogLS0gdGVzdCBtdWx0aXBsZSBpbmhlcml0 YW5jZSBtaXNtYXRjaGVzCiBDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQgREVG QVVMVCA1NSk7CkBAIC0zNDEsMjggKzM5NCwyOCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kg KCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIGVycm9yCiBOT1RJQ0U6ICBtZXJn aW5nIG11bHRpcGxlIGluaGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImIiCiBFUlJP UjogIGluaGVyaXRlZCBjb2x1bW4gImIiIGhhcyBhIGdlbmVyYXRpb24gY29uZmxpY3QKIERS T1AgVEFCTEUgZ3Rlc3R5OwotQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBpbnQsIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVz dHkgKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIpIFZJUlRVQUwp OwogQ1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7 ICAtLSBlcnJvcgogTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5p dGlvbnMgb2YgY29sdW1uICJiIgogRVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGNvbmZs aWN0aW5nIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMKIEhJTlQ6ICBUbyByZXNvbHZlIHRoZSBj b25mbGljdCwgc3BlY2lmeSBhIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBleHBsaWNpdGx5Lgot Q1JFQVRFIFRBQkxFIGd0ZXN0MV95IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICsg MSkgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sKK0NSRUFURSBU QUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEpIFZJUlRV QUwpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBvawogTk9USUNFOiAgbWVyZ2lu ZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJiIgogTk9USUNF OiAgbW92aW5nIGFuZCBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5p dGlvbgogREVUQUlMOiAgVXNlci1zcGVjaWZpZWQgY29sdW1uIG1vdmVkIHRvIHRoZSBwb3Np dGlvbiBvZiB0aGUgaW5oZXJpdGVkIGNvbHVtbi4KIFxkIGd0ZXN0MV95Ci0gICAgICAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxX3kiCi0gQ29s dW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MV95IgorIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoeCArIDEpIHN0b3JlZAorIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdh eXMgYXMgKHggKyAxKQogIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAogSW5oZXJpdHM6IGd0ZXN0MSwKICAgICAgICAgICBndGVzdHkKIAogLS0gdGVzdCBj b3JyZWN0IGhhbmRsaW5nIG9mIEdFTkVSQVRFRCBjb2x1bW4gdGhhdCdzIG9ubHkgaW4gY2hp bGQKIENSRUFURSBUQUJMRSBndGVzdHAgKGYxIGludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3Rj IChmMiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjErMSkgU1RPUkVEKSBJTkhFUklUUyhn dGVzdHApOworQ1JFQVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYxKzEpIFZJUlRVQUwpIElOSEVSSVRTKGd0ZXN0cCk7CiBJTlNFUlQgSU5UTyBndGVz dGMgdmFsdWVzKDQyKTsKIFRBQkxFIGd0ZXN0YzsKICBmMSB8IGYyIApAQCAtMzc5LDggKzQz Miw4IEBAIFRBQkxFIGd0ZXN0YzsKIAogRFJPUCBUQUJMRSBndGVzdHAgQ0FTQ0FERTsKIE5P VElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZ3Rlc3RjCi0tLSB0ZXN0IHN0b3JlZCB1 cGRhdGUKLUNSRUFURSBUQUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMykgU1RPUkVEKTsKKy0tIHRlc3QgdXBkYXRlIFhYWAorQ1JFQVRFIFRB QkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBW SVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MyAoYSkgVkFMVUVTICgxKSwgKDIpLCAoMyks IChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAgYSB8IGIgCkBA IC00MDEsNyArNDU0LDcgQEAgU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsKICAg ICB8ICAgCiAoNCByb3dzKQogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRl eHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgU1RPUkVEKTsKK0NSRUFU RSBUQUJMRSBndGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTIChh IHx8ICcrJyB8fCBhKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0M2EgKGEpIFZBTFVF UyAoJ2EnKSwgKCdiJyksICgnYycpLCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0M2Eg T1JERVIgQlkgYTsKICBhIHwgIGIgIApAQCAtNDY2LDcgKzUxOSw3IEBAIFNFTEVDVCAqIEZS T00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAoNCByb3dzKQogCiAtLSBudWxsIHZhbHVlcwotQ1JF QVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKE5VTEwpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgVklSVFVBTCk7 CiBJTlNFUlQgSU5UTyBndGVzdDIgVkFMVUVTICgxKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Qy OwogIGEgfCBiIApAQCAtNDc1LDcgKzUyOCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyOwog KDEgcm93KQogCiAtLSBzaW1wbGUgY29sdW1uIHJlZmVyZW5jZSBmb3IgdmFybGVuYSB0eXBl cwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfdmFy bGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNoYXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSkgVklS VFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdF92YXJsZW5hIChhKSBWQUxVRVMoJzAxMjM0NTY3 ODkwMTIzNDU2Nzg5Jyk7CiBJTlNFUlQgSU5UTyBndGVzdF92YXJsZW5hIChhKSBWQUxVRVMo TlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3ZhcmxlbmEgT1JERVIgQlkgYTsKQEAgLTQ5 MCw3ICs1NDMsNyBAQCBEUk9QIFRBQkxFIGd0ZXN0X3ZhcmxlbmE7CiBDUkVBVEUgVFlQRSBk b3VibGVfaW50IGFzIChhIGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0NCAoCiAg ICAgYSBpbnQsCi0gICAgYiBkb3VibGVfaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICog MiwgYSAqIDMpKSBTVE9SRUQKKyAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoKGEgKiAyLCBhICogMykpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDQgVkFM VUVTICgxKSwgKDYpOwogU0VMRUNUICogRlJPTSBndGVzdDQ7CkBAIC01MDUsMTEgKzU1OCwx MSBAQCBEUk9QIFRZUEUgZG91YmxlX2ludDsKIC0tIHVzaW5nIHRhYmxlb2lkIGlzIGFsbG93 ZWQKIENSRUFURSBUQUJMRSBndGVzdF90YWJsZW9pZCAoCiAgIGEgaW50IFBSSU1BUlkgS0VZ LAotICBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rlc3RfdGFi bGVvaWQnOjpyZWdjbGFzcykgU1RPUkVECisgIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFT ICh0YWJsZW9pZCA9ICdndGVzdF90YWJsZW9pZCc6OnJlZ2NsYXNzKSBWSVJUVUFMCiApOwog SU5TRVJUIElOVE8gZ3Rlc3RfdGFibGVvaWQgVkFMVUVTICgxKSwgKDIpOwogQUxURVIgVEFC TEUgZ3Rlc3RfdGFibGVvaWQgQUREIENPTFVNTgotICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBB TFdBWVMgQVMgKHRhYmxlb2lkKSBTVE9SRUQ7CisgIGMgcmVnY2xhc3MgR0VORVJBVEVEIEFM V0FZUyBBUyAodGFibGVvaWQpIFZJUlRVQUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxl b2lkOwogIGEgfCBiIHwgICAgICAgYyAgICAgICAgCiAtLS0rLS0tKy0tLS0tLS0tLS0tLS0t LS0KQEAgLTUxOCw3ICs1NzEsNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0X3RhYmxlb2lkOwog KDIgcm93cykKIAogLS0gZHJvcCBjb2x1bW4gYmVoYXZpb3IKLUNSRUFURSBUQUJMRSBndGVz dDEwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGIgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTAgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRV QUwpOwogQUxURVIgVEFCTEUgZ3Rlc3QxMCBEUk9QIENPTFVNTiBiOyAgLS0gZmFpbHMKIEVS Uk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QxMCBiZWNhdXNlIG90 aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CiBERVRBSUw6ICBjb2x1bW4gYyBvZiB0YWJsZSBn dGVzdDEwIGRlcGVuZHMgb24gY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QxMApAQCAtNTI2LDMw ICs1NzksMzEgQEAgSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRl cGVuZGVudCBvYmplY3RzIHRvby4KIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBDT0xVTU4g YiBDQVNDQURFOyAgLS0gZHJvcHMgYyB0b28KIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g Y29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMAogXGQgZ3Rlc3QxMAotICAgICAgVGFibGUgImdl bmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxMCIKKyAgICAgIFRhYmxlICJnZW5lcmF0ZWRf dmlydHVhbF90ZXN0cy5ndGVzdDEwIgogIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQgCiAtLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg bm90IG51bGwgfCAKIEluZGV4ZXM6CiAgICAgImd0ZXN0MTBfcGtleSIgUFJJTUFSWSBLRVks IGJ0cmVlIChhKQogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBU QUJMRSBndGVzdDEwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTBhIERST1AgQ09M VU1OIGI7CiBJTlNFUlQgSU5UTyBndGVzdDEwYSAoYSkgVkFMVUVTICgxKTsKIC0tIHByaXZp bGVnZXMKIENSRUFURSBVU0VSIHJlZ3Jlc3NfdXNlcjExOwotQ1JFQVRFIFRBQkxFIGd0ZXN0 MTFzIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGIgKiAyKSBTVE9SRUQpOwotSU5TRVJUIElOVE8gZ3Rlc3QxMXMgVkFMVUVTICgxLCAx MCksICgyLCAyMCk7Ci1HUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTFzIFRPIHJlZ3Jl c3NfdXNlcjExOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTF2IChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBWSVJUVUFMKTsKK0lO U0VSVCBJTlRPIGd0ZXN0MTF2IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworR1JBTlQgU0VM RUNUIChhLCBjKSBPTiBndGVzdDExdiBUTyByZWdyZXNzX3VzZXIxMTsKIENSRUFURSBGVU5D VElPTiBnZjEoYSBpbnQpIFJFVFVSTlMgaW50IEFTICQkIFNFTEVDVCBhICogMyAkJCBJTU1V VEFCTEUgTEFOR1VBR0UgU1FMOwogUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBnZjEoaW50KSBG Uk9NIFBVQkxJQzsKLUNSRUFURSBUQUJMRSBndGVzdDEycyAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFNUT1JFRCk7Ci1J TlNFUlQgSU5UTyBndGVzdDEycyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKK0NSRUFURSBU QUJMRSBndGVzdDEydiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChnZjEoYikpIFZJUlRVQUwpOworSU5TRVJUIElOVE8gZ3Rlc3QxMnYg VkFMVUVTICgxLCAxMCksICgyLCAyMCk7CiBHUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0 MTJzIFRPIHJlZ3Jlc3NfdXNlcjExOworRVJST1I6ICByZWxhdGlvbiAiZ3Rlc3QxMnMiIGRv ZXMgbm90IGV4aXN0CiBTRVQgUk9MRSByZWdyZXNzX3VzZXIxMTsKLVNFTEVDVCBhLCBiIEZS T00gZ3Rlc3QxMXM7ICAtLSBub3QgYWxsb3dlZAotRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3IgdGFibGUgZ3Rlc3QxMXMKLVNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMXM7ICAtLSBh bGxvd2VkCitTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MTF2OyAgLS0gbm90IGFsbG93ZWQKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGd0ZXN0MTF2CitTRUxFQ1QgYSwg YyBGUk9NIGd0ZXN0MTF2OyAgLS0gYWxsb3dlZAogIGEgfCBjICAKIC0tLSstLS0tCiAgMSB8 IDIwCkBAIC01NTgsMjMxICs2MTIsMTQyIEBAIFNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMXM7 ICAtLSBhbGxvd2VkCiAKIFNFTEVDVCBnZjEoMTApOyAgLS0gbm90IGFsbG93ZWQKIEVSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIGZ1bmN0aW9uIGdmMQotU0VMRUNUIGEsIGMgRlJP TSBndGVzdDEyczsgIC0tIGFsbG93ZWQKLSBhIHwgYyAgCi0tLS0rLS0tLQotIDEgfCAzMAot IDIgfCA2MAotKDIgcm93cykKLQorU0VMRUNUIGEsIGMgRlJPTSBndGVzdDEydjsgIC0tIG5v dCBhbGxvd2VkOyBUT0RPOiBvdWdodCB0byBiZSBhbGxvd2VkCitFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciB0YWJsZSBndGVzdDEydgogUkVTRVQgUk9MRTsKIERST1AgRlVOQ1RJ T04gZ2YxKGludCk7ICAtLSBmYWlsCiBFUlJPUjogIGNhbm5vdCBkcm9wIGZ1bmN0aW9uIGdm MShpbnRlZ2VyKSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0Ci1ERVRBSUw6 ICBjb2x1bW4gYyBvZiB0YWJsZSBndGVzdDEycyBkZXBlbmRzIG9uIGZ1bmN0aW9uIGdmMShp bnRlZ2VyKQorREVUQUlMOiAgY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMnYgZGVwZW5kcyBv biBmdW5jdGlvbiBnZjEoaW50ZWdlcikKIEhJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCi1EUk9QIFRBQkxFIGd0ZXN0MTFz LCBndGVzdDEyczsKK0RST1AgVEFCTEUgZ3Rlc3QxMXYsIGd0ZXN0MTJ2OwogRFJPUCBGVU5D VElPTiBnZjEoaW50KTsKIERST1AgVVNFUiByZWdyZXNzX3VzZXIxMTsKIC0tIGNoZWNrIGNv bnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgQ0hFQ0sgKGIgPCA1MCkp OworQ1JFQVRFIFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBDSEVDSyAoYiA8IDUwKSk7CiBJTlNF UlQgSU5UTyBndGVzdDIwIChhKSBWQUxVRVMgKDEwKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBn dGVzdDIwIChhKSBWQUxVRVMgKDMwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9S OiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gImd0ZXN0MjAiIHZpb2xhdGVzIGNoZWNrIGNvbnN0 cmFpbnQgImd0ZXN0MjBfYl9jaGVjayIKLURFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5z ICgzMCwgNjApLgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDMwLCB2aXJ0dWFs KS4KIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04g QVMgKGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAotRVJST1I6ICBjaGVjayBj b25zdHJhaW50ICJndGVzdDIwX2JfY2hlY2siIG9mIHJlbGF0aW9uICJndGVzdDIwIiBpcyB2 aW9sYXRlZCBieSBzb21lIHJvdworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNT SU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RF VEFJTDogIENvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjAiIGlzIGEgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1uLgogQUxURVIgVEFCTEUgZ3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBT RVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdDIw YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQpOworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5v dCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENv bHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjAiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1uLgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8g Z3Rlc3QyMGEgKGEpIFZBTFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZB TFVFUyAoMzApOwogQUxURVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChiIDwgNTApOyAg LS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiBFUlJPUjogIGNoZWNrIGNvbnN0cmFpbnQgImd0 ZXN0MjBhX2JfY2hlY2siIG9mIHJlbGF0aW9uICJndGVzdDIwYSIgaXMgdmlvbGF0ZWQgYnkg c29tZSByb3cKLUNSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxF IGd0ZXN0MjBiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAo MTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMzApOwogQUxURVIgVEFC TEUgZ3Rlc3QyMGIgQUREIENPTlNUUkFJTlQgY2hrIENIRUNLIChiIDwgNTApIE5PVCBWQUxJ RDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIFZBTElEQVRFIENPTlNUUkFJTlQgY2hrOyAgLS0g ZmFpbHMgb24gZXhpc3Rpbmcgcm93CiBFUlJPUjogIGNoZWNrIGNvbnN0cmFpbnQgImNoayIg b2YgcmVsYXRpb24gImd0ZXN0MjBiIiBpcyB2aW9sYXRlZCBieSBzb21lIHJvdwotLS0gbm90 LW51bGwgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAwKSkgU1RPUkVE IE5PVCBOVUxMKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0g b2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMg Y29uc3RyYWludAotRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRp b24gImd0ZXN0MjFhIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRBSUw6ICBG YWlsaW5nIHJvdyBjb250YWlucyAoMCwgbnVsbCkuCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMWIg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYo YSwgMCkpIFNUT1JFRCk7CistLSBub3QtbnVsbCBjb25zdHJhaW50cyAoY3VycmVudGx5IG5v dCBzdXBwb3J0ZWQpCitDUkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwgTk9U IE5VTEwpOworRVJST1I6ICBub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1cHBvcnRl ZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCistLUlOU0VSVCBJTlRPIGd0ZXN0MjFh IChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZB TFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CitDUkVBVEUgVEFCTEUgZ3Rlc3Qy MWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxs aWYoYSwgMCkpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3QyMWIgQUxURVIgQ09MVU1O IGIgU0VUIE5PVCBOVUxMOwotSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7 ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9s YXRlcyBjb25zdHJhaW50Ci1FUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiBy ZWxhdGlvbiAiZ3Rlc3QyMWIiIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKLURFVEFJ TDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgwLCBudWxsKS4KK0VSUk9SOiAgbm90LW51bGwg Y29uc3RyYWludHMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucworREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMWIiIGlzIGEg dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgorLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkg VkFMVUVTICgxKTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMg KDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogQUxURVIgVEFCTEUgZ3Rlc3QyMWIgQUxU RVIgQ09MVU1OIGIgRFJPUCBOT1QgTlVMTDsKLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBW QUxVRVMgKDApOyAgLS0gb2sgbm93CistLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxV RVMgKDApOyAgLS0gb2sgbm93CiAtLSBpbmRleCBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxF IGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAvIDIpIFNUT1JFRCBVTklRVUUpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVT ICgyKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMyk7Ci1FUlJPUjogIGR1cGxp Y2F0ZSBrZXkgdmFsdWUgdmlvbGF0ZXMgdW5pcXVlIGNvbnN0cmFpbnQgImd0ZXN0MjJhX2Jf a2V5IgotREVUQUlMOiAgS2V5IChiKT0oMSkgYWxyZWFkeSBleGlzdHMuCi1JTlNFUlQgSU5U TyBndGVzdDIyYSBWQUxVRVMgKDQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJiIChhIGludCwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JFRCwgUFJJTUFSWSBLRVkg KGEsIGIpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5U TyBndGVzdDIyYiBWQUxVRVMgKDIpOwotRVJST1I6ICBkdXBsaWNhdGUga2V5IHZhbHVlIHZp b2xhdGVzIHVuaXF1ZSBjb25zdHJhaW50ICJndGVzdDIyYl9wa2V5IgotREVUQUlMOiAgS2V5 IChhLCBiKT0oMiwgMSkgYWxyZWFkeSBleGlzdHMuCitDUkVBVEUgVEFCTEUgZ3Rlc3QyMmEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikg VklSVFVBTCBVTklRVUUpOworRVJST1I6ICBpbmRleCBjcmVhdGlvbiBvbiB2aXJ0dWFsIGdl bmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy MmEgVkFMVUVTICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgzKTsKKy0t SU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKK0NSRUFURSBUQUJMRSBndGVzdDIy YiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBWSVJUVUFMLCBQ UklNQVJZIEtFWSAoYSwgYikpOworRVJST1I6ICBpbmRleCBjcmVhdGlvbiBvbiB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQKKy0tSU5TRVJUIElOVE8gZ3Rl c3QyMmIgVkFMVUVTICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVTICgyKTsK IC0tIGluZGV4ZXMKLUNSRUFURSBUQUJMRSBndGVzdDIyYyAoYSBpbnQsIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJj X2JfaWR4IE9OIGd0ZXN0MjJjIChiKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lk eCBPTiBndGVzdDIyYyAoKGIgKiAzKSk7Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfcHJlZF9p ZHggT04gZ3Rlc3QyMmMgKGEpIFdIRVJFIGIgPiAwOwotXGQgZ3Rlc3QyMmMKLSAgICAgICAg ICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDIyYyIKLSBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gYSAg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAq IDIpIHN0b3JlZAotSW5kZXhlczoKLSAgICAiZ3Rlc3QyMmNfYl9pZHgiIGJ0cmVlIChiKQot ICAgICJndGVzdDIyY19leHByX2lkeCIgYnRyZWUgKChiICogMykpCi0gICAgImd0ZXN0MjJj X3ByZWRfaWR4IiBidHJlZSAoYSkgV0hFUkUgYiA+IDAKLQotSU5TRVJUIElOVE8gZ3Rlc3Qy MmMgVkFMVUVTICgxKSwgKDIpLCAoMyk7Ci1TRVQgZW5hYmxlX3NlcXNjYW4gVE8gb2ZmOwot U0VUIGVuYWJsZV9iaXRtYXBzY2FuIFRPIG9mZjsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKLSAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1c2luZyBndGVzdDIyY19iX2lkeCBv biBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKGIgPSA0KQotKDIgcm93cykKLQotU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKLSBhIHwgYiAKLS0tLSstLS0KLSAyIHwg NAotKDEgcm93KQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3Qy MmMgV0hFUkUgYiAqIDMgPSA2OwotICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBJbmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX2V4cHJfaWR4IG9uIGd0 ZXN0MjJjCi0gICBJbmRleCBDb25kOiAoKGIgKiAzKSA9IDYpCi0oMiByb3dzKQotCi1TRUxF Q1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKLSBhIHwgYiAKLS0tLSstLS0K LSAxIHwgMgotKDEgcm93KQotCi1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBJbmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX3By ZWRfaWR4IG9uIGd0ZXN0MjJjCi0gICBJbmRleCBDb25kOiAoYSA9IDEpCi0oMiByb3dzKQot Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLSBhIHwg YiAKLS0tLSstLS0KLSAxIHwgMgotKDEgcm93KQotCi1BTFRFUiBUQUJMRSBndGVzdDIyYyBB TFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpOwotQU5BTFlaRSBndGVz dDIyYzsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVS RSBiID0gODsKLSAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5k ZXggU2NhbiB1c2luZyBndGVzdDIyY19iX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29u ZDogKGIgPSA4KQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBi ID0gODsKLSBhIHwgYiAKLS0tLSstLS0KLSAyIHwgOAotKDEgcm93KQotCi1FWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLSAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2Nh biB1c2luZyBndGVzdDIyY19leHByX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29uZDog KChiICogMykgPSAxMikKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hF UkUgYiAqIDMgPSAxMjsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgNAotKDEgcm93KQotCi1F WFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEg QU5EIGIgPiAwOwotICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSBJbmRleCBTY2FuIHVzaW5nIGd0ZXN0MjJjX3ByZWRfaWR4IG9uIGd0ZXN0MjJjCi0g ICBJbmRleCBDb25kOiAoYSA9IDEpCi0oMiByb3dzKQotCi1TRUxFQ1QgKiBGUk9NIGd0ZXN0 MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLSBhIHwgYiAKLS0tLSstLS0KLSAxIHwgNAot KDEgcm93KQotCi1SRVNFVCBlbmFibGVfc2Vxc2NhbjsKLVJFU0VUIGVuYWJsZV9iaXRtYXBz Y2FuOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjJjIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOworLS1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfYl9p ZHggT04gZ3Rlc3QyMmMgKGIpOworLS1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHgg T04gZ3Rlc3QyMmMgKChiICogMykpOworLS1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfcHJlZF9p ZHggT04gZ3Rlc3QyMmMgKGEpIFdIRVJFIGIgPiAwOworLS1cZCBndGVzdDIyYworLS1JTlNF UlQgSU5UTyBndGVzdDIyYyBWQUxVRVMgKDEpLCAoMiksICgzKTsKKy0tU0VUIGVuYWJsZV9z ZXFzY2FuIFRPIG9mZjsKKy0tU0VUIGVuYWJsZV9iaXRtYXBzY2FuIFRPIG9mZjsKKy0tRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0Owor LS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OworLS1FWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSA2OworLS1TRUxF Q1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKKy0tRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0t U0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLUFMVEVS IFRBQkxFIGd0ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICog NCk7CistLUFOQUxZWkUgZ3Rlc3QyMmM7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIy YyBXSEVSRSBiID0gODsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0 ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hF UkUgYiAqIDMgPSAxMjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0 ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIy YyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVJFU0VUIGVuYWJsZV9zZXFzY2FuOworLS1S RVNFVCBlbmFibGVfYml0bWFwc2NhbjsKIC0tIGZvcmVpZ24ga2V5cwogQ1JFQVRFIFRBQkxF IGd0ZXN0MjNhICh4IGludCBQUklNQVJZIEtFWSwgeSBpbnQpOwotSU5TRVJUIElOVE8gZ3Rl c3QyM2EgVkFMVUVTICgxLCAxMSksICgyLCAyMiksICgzLCAzMyk7Ci1DUkVBVEUgVEFCTEUg Z3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgU1RPUkVEIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIFVQREFURSBDQVND QURFKTsgIC0tIGVycm9yCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwgMTEp LCAoMiwgMjIpLCAoMywgMzMpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVG RVJFTkNFUyBndGVzdDIzYSAoeCkgT04gVVBEQVRFIENBU0NBREUpOyAgLS0gZXJyb3IKIEVS Uk9SOiAgaW52YWxpZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJh aW50IGNvbnRhaW5pbmcgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4 IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBERUxFVEUgU0VUIE5VTEwpOyAg LS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rl c3QyM2EgKHgpIE9OIERFTEVURSBTRVQgTlVMTCk7ICAtLSBlcnJvcgogRVJST1I6ICBpbnZh bGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgY29udGFp bmluZyBnZW5lcmF0ZWQgY29sdW1uCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyM2IgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIFJF RkVSRU5DRVMgZ3Rlc3QyM2EgKHgpKTsKLVxkIGd0ZXN0MjNiCi0gICAgICAgICAgICAgICAg ICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyM2IiCi0gQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAotIGIgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9y ZWQKLUluZGV4ZXM6Ci0gICAgImd0ZXN0MjNiX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAo YSkKLUZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgotICAgICJndGVzdDIzYl9iX2ZrZXkiIEZP UkVJR04gS0VZIChiKSBSRUZFUkVOQ0VTIGd0ZXN0MjNhKHgpCi0KLUlOU0VSVCBJTlRPIGd0 ZXN0MjNiIFZBTFVFUyAoMSk7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyM2IgVkFMVUVT ICg1KTsgIC0tIGVycm9yCi1FUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgImd0 ZXN0MjNiIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJndGVzdDIzYl9iX2Zr ZXkiCi1ERVRBSUw6ICBLZXkgKGIpPSgxMCkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgImd0 ZXN0MjNhIi4KLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBS RVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCi1FUlJPUjogIGluc2VydCBvciB1cGRhdGUg b24gdGFibGUgImd0ZXN0MjNiIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJn dGVzdDIzYl9iX2ZrZXkiCi1ERVRBSUw6ICBLZXkgKGIpPSg1KSBpcyBub3QgcHJlc2VudCBp biB0YWJsZSAiZ3Rlc3QyM2EiLgotQUxURVIgVEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1O IGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxKTsgLS0gb2sKLURST1AgVEFCTEUgZ3Rlc3Qy M2I7Ci1EUk9QIFRBQkxFIGd0ZXN0MjNhOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjNwICh4IGlu dCwgeSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIpIFNUT1JFRCwgUFJJTUFSWSBL RVkgKHkpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNwIFZBTFVFUyAoMSksICgyKSwgKDMpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkp OworRVJST1I6ICBmb3JlaWduIGtleSBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkCistLVxkIGd0ZXN0MjNiCistLUlOU0VSVCBJ TlRPIGd0ZXN0MjNiIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIz YiBWQUxVRVMgKDUpOyAgLS0gZXJyb3IKKy0tQUxURVIgVEFCTEUgZ3Rlc3QyM2IgQUxURVIg Q09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiA1KTsgLS0gZXJyb3IKKy0tQUxURVIg VEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAx KTsgLS0gb2sKKy0tRFJPUCBUQUJMRSBndGVzdDIzYjsKKy0tRFJPUCBUQUJMRSBndGVzdDIz YTsKK0NSRUFURSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKHggKiAyKSBWSVJUVUFMLCBQUklNQVJZIEtFWSAoeSkpOworRVJST1I6ICBpbmRl eCBjcmVhdGlvbiBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0 ZWQKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CiBDUkVB VEUgVEFCTEUgZ3Rlc3QyM3EgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBSRUZFUkVOQ0VT IGd0ZXN0MjNwICh5KSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDEsIDIpOyAg LS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMiwgNSk7ICAtLSBlcnJvcgot RVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJndGVzdDIzcSIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAiZ3Rlc3QyM3FfYl9ma2V5IgotREVUQUlMOiAgS2V5 IChiKT0oNSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgImd0ZXN0MjNwIi4KK0VSUk9SOiAg cmVsYXRpb24gImd0ZXN0MjNwIiBkb2VzIG5vdCBleGlzdAorLS1JTlNFUlQgSU5UTyBndGVz dDIzcSBWQUxVRVMgKDEsIDIpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFM VUVTICgyLCA1KTsgIC0tIGVycm9yCiAtLSBkb21haW5zCiBDUkVBVEUgRE9NQUlOIGd0ZXN0 ZG9tYWluMSBBUyBpbnQgQ0hFQ0sgKFZBTFVFIDwgMTApOwotQ1JFQVRFIFRBQkxFIGd0ZXN0 MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgU1RPUkVEKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAo NCk7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg2KTsgIC0tIGVy cm9yCi1FUlJPUjogIHZhbHVlIGZvciBkb21haW4gZ3Rlc3Rkb21haW4xIHZpb2xhdGVzIGNo ZWNrIGNvbnN0cmFpbnQgImd0ZXN0ZG9tYWluMV9jaGVjayIKK0NSRUFURSBUQUJMRSBndGVz dDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwpOworRVJST1I6ICB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1 bW4gImIiIGNhbm5vdCBoYXZlIGEgZG9tYWluIHR5cGUKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy NCAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZB TFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRFIFRZUEUgZ3Rlc3Rkb21haW4xcmFuZ2UgQVMg cmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRvbWFpbjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRy IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjFyYW5nZSBHRU5FUkFURUQgQUxX QVlTIEFTIChndGVzdGRvbWFpbjFyYW5nZShhLCBhICsgNSkpIFZJUlRVQUwpOworRVJST1I6 ICB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gImIiIGNhbm5vdCBoYXZlIGEgZG9tYWluIHR5 cGUKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNCk7ICAtLSBvaworLS1J TlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCiAtLSB0eXBl ZCB0YWJsZXMgKGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkKQogQ1JFQVRFIFRZUEUgZ3Rlc3Rf dHlwZSBBUyAoZjEgaW50ZWdlciwgZjIgdGV4dCwgZjMgYmlnaW50KTsKLUNSRUFURSBUQUJM RSBndGVzdDI4IE9GIGd0ZXN0X3R5cGUgKGYxIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxX QVlTIEFTIChmMiAqMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDI4IE9GIGd0ZXN0 X3R5cGUgKGYxIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqMikgVklS VFVBTCk7CiBFUlJPUjogIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkIG9u IHR5cGVkIHRhYmxlcwogRFJPUCBUWVBFIGd0ZXN0X3R5cGUgQ0FTQ0FERTsKIC0tIHBhcnRp dGlvbmluZyBjYXNlcwogQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1Qg TlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOwog Q1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAot ICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JF RAorICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJ UlRVQUwKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wNy0wMScpIFRPICgnMjAxNi0wOC0w MScpOyAtLSBlcnJvcgogRVJST1I6ICBjaGlsZCBjb2x1bW4gImYzIiBzcGVjaWZpZXMgZ2Vu ZXJhdGlvbiBleHByZXNzaW9uCiBISU5UOiAgQSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fubm90 IGJlIGdlbmVyYXRlZCB1bmxlc3MgaXRzIHBhcmVudCBjb2x1bW4gaXMuCi1DUkVBVEUgVEFC TEUgZ3Rlc3RfY2hpbGQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdF9jaGlsZCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0 X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkIEZPUiBWQUxVRVMgRlJPTSAo JzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY29s dW1uICJmMyIgaW4gY2hpbGQgdGFibGUgbXVzdCBub3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1u CiBEUk9QIFRBQkxFIGd0ZXN0X3BhcmVudCwgZ3Rlc3RfY2hpbGQ7Ci1DUkVBVEUgVEFCTEUg Z3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBH RU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdF IChmMSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChmMSBkYXRlIE5PVCBOVUxMLCBm MiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRV QUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxk IFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQKICAgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0w Ny0wMScpIFRPICgnMjAxNi0wOC0wMScpOyAgLS0gaW5oZXJpdHMgZ2VuIGV4cHIKIENSRUFU RSBUQUJMRSBndGVzdF9jaGlsZDIgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCi0gICAg ZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMjIpIFNUT1JFRCAg LS0gb3ZlcnJpZGVzIGdlbiBleHByCisgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICogMjIpIFZJUlRVQUwgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgogKSBG T1IgVkFMVUVTIEZST00gKCcyMDE2LTA4LTAxJykgVE8gKCcyMDE2LTA5LTAxJyk7CiBDUkVB VEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAogICAg IGYzIERFRkFVTFQgNDIgIC0tIGVycm9yCkBAIC03OTIsNiArNzU3LDExIEBAIENSRUFURSBU QUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMg V0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgIC0tIGVycm9yCiAp IEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsKIEVS Uk9SOiAgaWRlbnRpdHkgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZCBvbiBwYXJ0aXRpb25z CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQg KAorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEICAtLSBlcnJv cgorKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7 CitFUlJPUjogIGNvbHVtbiAiZjMiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBv ZiBkaWZmZXJlbnQga2luZAorREVUQUlMOiAgUGFyZW50IGNvbHVtbiBpcyBWSVJUVUFMLCBj aGlsZCBjb2x1bW4gaXMgU1RPUkVELgogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEg ZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQpOwogQUxURVIgVEFCTEUgZ3Rl c3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJP TSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAg Y29sdW1uICJmMyIgaW4gY2hpbGQgdGFibGUgbXVzdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4K QEAgLTgwNiwzMiArNzc2LDM3IEBAIEVSUk9SOiAgdGFibGUgImd0ZXN0X2NoaWxkMyIgYmVp bmcgYXR0YWNoZWQgY29udGFpbnMgYW4gaWRlbnRpdHkgY29sdW1uICJmMyIKIERFVEFJTDog IFRoZSBuZXcgcGFydGl0aW9uIG1heSBub3QgY29udGFpbiBhbiBpZGVudGl0eSBjb2x1bW4u CiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CitBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRU QUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0w MScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgorRVJST1I6ICBjb2x1bW4gImYzIiBp bmhlcml0cyBmcm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQKK0RFVEFJ TDogIFBhcmVudCBjb2x1bW4gaXMgVklSVFVBTCwgY2hpbGQgY29sdW1uIGlzIFNUT1JFRC4K K0RST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAo ZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKiAzMykgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRU QUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0w MScpIFRPICgnMjAxNi0xMC0wMScpOwogXGQgZ3Rlc3RfY2hpbGQKLSAgICAgICAgICAgICAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkIgotIENvbHVt biB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkIgorIENv bHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdp bnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICog MikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3LTAx LTIwMTYnKSBUTyAoJzA4LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDIKLSAgICAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMiIK LSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAg ICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2No aWxkMiIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAg IHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQg fCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyMikgc3RvcmVkCisg ZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChmMiAqIDIyKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVF UyBGUk9NICgnMDgtMDEtMjAxNicpIFRPICgnMDktMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2No aWxkMwotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3RfY2hpbGQzIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHMuZ3Rlc3RfY2hpbGQzIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYy ICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmln aW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAq IDMzKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMzMpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3Bh cmVudCBGT1IgVkFMVUVTIEZST00gKCcwOS0wMS0yMDE2JykgVE8gKCcxMC0wMS0yMDE2JykK IAogSU5TRVJUIElOVE8gZ3Rlc3RfcGFyZW50IChmMSwgZjIpIFZBTFVFUyAoJzIwMTYtMDct MTUnLCAxKTsKQEAgLTg0MiwxMDMgKzgxNywxMjcgQEAgU0VMRUNUIHRhYmxlb2lkOjpyZWdj bGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAxLCAyLCAzOwogLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0rLS0tLQogIGd0ZXN0X2NoaWxkICB8IDA3LTE1LTIw MTYgfCAgMSB8ICAyCiAgZ3Rlc3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAyIHwgIDQKLSBn dGVzdF9jaGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMgfCA2NgorIGd0ZXN0X2NoaWxkMiB8IDA4 LTE1LTIwMTYgfCAgMyB8ICA2CiAoMyByb3dzKQogCitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2Ns YXNzLCAqIEZST00gZ3Rlc3RfY2hpbGQgT1JERVIgQlkgMSwgMiwgMzsKKyAgdGFibGVvaWQg ICB8ICAgICBmMSAgICAgfCBmMiB8IGYzIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLSstLS0tCisgZ3Rlc3RfY2hpbGQgfCAwNy0xNS0yMDE2IHwgIDEgfCAgMgorIGd0ZXN0 X2NoaWxkIHwgMDctMTUtMjAxNiB8ICAyIHwgIDQKKygyIHJvd3MpCisKK1NFTEVDVCB0YWJs ZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9jaGlsZDIgT1JERVIgQlkgMSwgMiwgMzsg IC0tIHVzZXMgY2hpbGQncyBnZW5lcmF0aW9uIGV4cHJlc3Npb24sIG5vdCBwYXJlbnQncwor ICAgdGFibGVvaWQgICB8ICAgICBmMSAgICAgfCBmMiB8IGYzIAorLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0rLS0tLQorIGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAg MyB8IDY2CisoMSByb3cpCisKK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBn dGVzdF9jaGlsZDMgT1JERVIgQlkgMSwgMiwgMzsKKyB0YWJsZW9pZCB8IGYxIHwgZjIgfCBm MyAKKy0tLS0tLS0tLS0rLS0tLSstLS0tKy0tLS0KKygwIHJvd3MpCisKIFVQREFURSBndGVz dF9wYXJlbnQgU0VUIGYxID0gZjEgKyA2MCBXSEVSRSBmMiA9IDE7CiBTRUxFQ1QgdGFibGVv aWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIsIDM7CiAg ICB0YWJsZW9pZCAgIHwgICAgIGYxICAgICB8IGYyIHwgZjMgCiAtLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLSstLS0tCiAgZ3Rlc3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAy IHwgIDQKLSBndGVzdF9jaGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMgfCA2NgotIGd0ZXN0X2No aWxkMyB8IDA5LTEzLTIwMTYgfCAgMSB8IDMzCisgZ3Rlc3RfY2hpbGQyIHwgMDgtMTUtMjAx NiB8ICAzIHwgIDYKKyBndGVzdF9jaGlsZDMgfCAwOS0xMy0yMDE2IHwgIDEgfCAgMgogKDMg cm93cykKIAogLS0gYWx0ZXIgb25seSBwYXJlbnQncyBhbmQgb25lIGNoaWxkJ3MgZ2VuZXJh dGlvbiBleHByZXNzaW9uCiBBTFRFUiBUQUJMRSBPTkxZIGd0ZXN0X3BhcmVudCBBTFRFUiBD T0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMgKGYyICogNCk7CitFUlJPUjogIEFMVEVSIFRB QkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJmMyIgb2YgcmVsYXRpb24gImd0ZXN0 X3BhcmVudCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBBTFRFUiBUQUJMRSBn dGVzdF9jaGlsZCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMgKGYyICogMTAp OworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0 ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiZjMi IG9mIHJlbGF0aW9uICJndGVzdF9jaGlsZCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1 bW4uCiBcZCBndGVzdF9wYXJlbnQKLSAgICAgICAgICAgUGFydGl0aW9uZWQgdGFibGUgImdl bmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfcGFyZW50IgotIENvbHVtbiB8ICBUeXBlICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICBQYXJ0aXRpb25lZCB0 YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfcGFyZW50IgorIENvbHVtbiB8 ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAg ICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiA0KSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikKIFBh cnRpdGlvbiBrZXk6IFJBTkdFIChmMSkKIE51bWJlciBvZiBwYXJ0aXRpb25zOiAzIChVc2Ug XGQrIHRvIGxpc3QgdGhlbS4pCiAKIFxkIGd0ZXN0X2NoaWxkCi0gICAgICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZCIKLSBDb2x1bW4g fCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkIgorIENv bHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1 bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAxMCkgc3RvcmVkCisgZjMgICAgIHwgYmln aW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAq IDIpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwNy0w MS0yMDE2JykgVE8gKCcwOC0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQyCi0gICAgICAg ICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDIi Ci0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9j aGlsZDIiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgIERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAg ICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50 IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAg ICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMjIpIHN0b3JlZAor IGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZjIgKiAyMikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxV RVMgRlJPTSAoJzA4LTAxLTIwMTYnKSBUTyAoJzA5LTAxLTIwMTYnKQogCiBcZCBndGVzdF9j aGlsZDMKLSAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz Lmd0ZXN0X2NoaWxkMyIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFs X3Rlc3RzLmd0ZXN0X2NoaWxkMyIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBm MiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJp Z2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIg KiAzMykgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAg fCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDMzKQogUGFydGl0aW9uIG9mOiBndGVzdF9w YXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDktMDEtMjAxNicpIFRPICgnMTAtMDEtMjAxNicp CiAKIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JE RVIgQlkgMSwgMiwgMzsKICAgIHRhYmxlb2lkICAgfCAgICAgZjEgICAgIHwgZjIgfCBmMyAK IC0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tKy0tLS0KLSBndGVzdF9jaGlsZCAg fCAwNy0xNS0yMDE2IHwgIDIgfCAyMAotIGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAg MyB8IDY2Ci0gZ3Rlc3RfY2hpbGQzIHwgMDktMTMtMjAxNiB8ICAxIHwgMzMKKyBndGVzdF9j aGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIgfCAgNAorIGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIw MTYgfCAgMyB8ICA2CisgZ3Rlc3RfY2hpbGQzIHwgMDktMTMtMjAxNiB8ICAxIHwgIDIKICgz IHJvd3MpCiAKIC0tIGFsdGVyIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBvZiBwYXJlbnQgYW5k IGFsbCBpdHMgY2hpbGRyZW4gYWx0b2dldGhlcgogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50 IEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVTU0lPTiBBUyAoZjIgKiAyKTsKK0VSUk9SOiAg QUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImYzIiBvZiByZWxhdGlv biAiZ3Rlc3RfcGFyZW50IiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KIFxkIGd0 ZXN0X3BhcmVudAotICAgICAgICAgICBQYXJ0aXRpb25lZCB0YWJsZSAiZ2VuZXJhdGVkX3N0 b3JlZF90ZXN0cy5ndGVzdF9wYXJlbnQiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIFBhcnRpdGlvbmVkIHRhYmxlICJnZW5l cmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9wYXJlbnQiCisgQ29sdW1uIHwgIFR5cGUgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAor LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3Qg bnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0g ZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChmMiAqIDIpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKQogUGFydGl0aW9uIGtl eTogUkFOR0UgKGYxKQogTnVtYmVyIG9mIHBhcnRpdGlvbnM6IDMgKFVzZSBcZCsgdG8gbGlz dCB0aGVtLikKIAogXGQgZ3Rlc3RfY2hpbGQKLSAgICAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkIgotIENvbHVtbiB8ICBUeXBlICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgVGFibGUg ImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkIgorIENvbHVtbiB8ICBUeXBl ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAgICAgICAgIHwg bm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAg ICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikKIFBhcnRpdGlv biBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3LTAxLTIwMTYnKSBUTyAo JzA4LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDIKLSAgICAgICAgICAgICAgICAgVGFi bGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQyIgotIENvbHVtbiB8ICBU eXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg VGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkMiIKKyBDb2x1bW4g fCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwgICAg ICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwg Z2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMjIp CiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwOC0wMS0y MDE2JykgVE8gKCcwOS0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQzCi0gICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKLSBD b2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDMi CisgQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAg IERlZmF1bHQgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRh dGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAg ICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikgc3RvcmVkCisgZjMgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChmMiAqIDMzKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9N ICgnMDktMDEtMjAxNicpIFRPICgnMTAtMDEtMjAxNicpCiAKIFNFTEVDVCB0YWJsZW9pZDo6 cmVnY2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKQEAgLTk1 MSw1NCArOTUwLDU0IEBAIFNFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBndGVz dF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKIAogLS0gd2UgbGVhdmUgdGhlc2UgdGFibGVz IGFyb3VuZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyBkdW1wL3JlbG9hZC91cGdyYWRlCiAt LSBnZW5lcmF0ZWQgY29sdW1ucyBpbiBwYXJ0aXRpb24ga2V5IChub3QgYWxsb3dlZCkKLUNS RUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJ VElPTiBCWSBSQU5HRSAoZjMpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFT IChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOwogRVJST1I6ICBj YW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gaW4gcGFydGl0aW9uIGtleQotTElORSAxOiAu Li5FTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFO R0UgKGYzKTsKK0xJTkUgMTogLi4uTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVB TCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAg Q29sdW1uICJmMyIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uLgotQ1JFQVRFIFRBQkxFIGd0ZXN0 X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5F UkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFICgo ZjMgKiAzKSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5V TEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikg VklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CiBFUlJPUjogIGNhbm5v dCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiBpbiBwYXJ0aXRpb24ga2V5Ci1MSU5FIDE6IC4uLkVE IEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoKGYzICog MykpOworTElORSAxOiAuLi5EIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJ T04gQlkgUkFOR0UgKChmMyAqIDMpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBDb2x1bW4gImYz IiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4uCiAtLSBBTFRFUiBUQUJMRSAuLi4gQUREIENPTFVN TgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjUgKGEgaW50IFBSSU1BUlkgS0VZKTsKIElOU0VSVCBJ TlRPIGd0ZXN0MjUgVkFMVUVTICgzKSwgKDQpOwotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQg Q09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIEFMVEVS IENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CitBTFRFUiBUQUJMRSBndGVz dDI1IEFERCBDT0xVTU4gYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRV QUwsIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CitFUlJPUjog IEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3Igdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlv biAiZ3Rlc3QyNSIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKLSBhIHwgYiAgCi0tLS0rLS0tLQotIDMgfCAgOQot IDQgfCAxMgorIGEgCistLS0KKyAzCisgNAogKDIgcm93cykKIAotQUxURVIgVEFCTEUgZ3Rl c3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiA0KSBTVE9S RUQ7ICAtLSBlcnJvcgotRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gImIi IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KLURFVEFJTDogIEEgZ2VuZXJhdGVk IGNvbHVtbiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVtbi4KLUFM VEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFT ICh6ICogNCkgU1RPUkVEOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENP TFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgVklSVFVBTDsgIC0tIGVy cm9yCitFUlJPUjogIGNvbHVtbiAiYiIgZG9lcyBub3QgZXhpc3QKK0FMVEVSIFRBQkxFIGd0 ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh6ICogNCkgVklS VFVBTDsgIC0tIGVycm9yCiBFUlJPUjogIGNvbHVtbiAieiIgZG9lcyBub3QgZXhpc3QKIEFM VEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBjIGludCBERUZBVUxUIDQyLAotICBBREQg Q09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiA0KSBTVE9SRUQ7CisgIEFE RCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDQpIFZJUlRVQUw7CiBB TFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gZCBpbnQgREVGQVVMVCAxMDE7CiBBTFRF UiBUQUJMRSBndGVzdDI1IEFMVEVSIENPTFVNTiBkIFNFVCBEQVRBIFRZUEUgZmxvYXQ4LAot ICBBREQgQ09MVU1OIHkgZmxvYXQ4IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGQgKiA0KSBTVE9S RUQ7CisgIEFERCBDT0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQp IFZJUlRVQUw7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKLSBhIHwgYiAg fCBjICB8ICB4ICB8ICBkICB8ICB5ICAKLS0tLSstLS0tKy0tLS0rLS0tLS0rLS0tLS0rLS0t LS0KLSAzIHwgIDkgfCA0MiB8IDE2OCB8IDEwMSB8IDQwNAotIDQgfCAxMiB8IDQyIHwgMTY4 IHwgMTAxIHwgNDA0CisgYSB8IGMgIHwgIHggIHwgIGQgIHwgIHkgIAorLS0tKy0tLS0rLS0t LS0rLS0tLS0rLS0tLS0KKyAzIHwgNDIgfCAxNjggfCAxMDEgfCA0MDQKKyA0IHwgNDIgfCAx NjggfCAxMDEgfCA0MDQKICgyIHJvd3MpCiAKIFxkIGd0ZXN0MjUKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0 MjUiCi0gQ29sdW1uIHwgICAgICAgVHlwZSAgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAg ICAKLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1 YWxfdGVzdHMuZ3Rlc3QyNSIKKyBDb2x1bW4gfCAgICAgICBUeXBlICAgICAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIGEgICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8 IAotIGIgICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAzKSBzdG9yZWQKICBjICAgICAgfCBpbnRlZ2Vy ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCA0MgotIHggICAgICB8IGludGVn ZXIgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGMgKiA0KSBzdG9yZWQKKyB4ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChjICogNCkKICBkICAgICAg fCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICAgICAgIHwgICAgICAgICAgfCAxMDEKLSB5ICAg ICAgfCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChkICogNDo6ZG91YmxlIHByZWNpc2lvbikgc3RvcmVkCisgeSAgICAg IHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoZCAqIDQ6OmRvdWJsZSBwcmVjaXNpb24pCiBJbmRleGVzOgogICAgICJn dGVzdDI1X3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKIApAQCAtMTAwNiw3ICsxMDA1 LDcgQEAgSW5kZXhlczoKIENSRUFURSBUQUJMRSBndGVzdDI3ICgKICAgICBhIGludCwKICAg ICBiIGludCwKLSAgICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikg U1RPUkVECisgICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJ UlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdDI3IChhLCBiKSBWQUxVRVMgKDMsIDcpLCAo NCwgMTEpOwogQUxURVIgVEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7 ICAtLSBlcnJvcgpAQCAtMTAxNCwxMiArMTAxMywxMiBAQCBFUlJPUjogIGNhbm5vdCBhbHRl ciB0eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkgYSBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6 ICBDb2x1bW4gImEiIGlzIHVzZWQgYnkgZ2VuZXJhdGVkIGNvbHVtbiAieCIuCiBBTFRFUiBU QUJMRSBndGVzdDI3IEFMVEVSIENPTFVNTiB4IFRZUEUgbnVtZXJpYzsKIFxkIGd0ZXN0MjcK LSAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz Lmd0ZXN0MjciCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgVGFibGUgImdl bmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjciCisgQ29sdW1uIHwgIFR5cGUgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCi0geCAgICAgIHwgbnVtZXJpYyB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKChhICsgYikgKiAyKSkgc3RvcmVkCisgeCAgICAg IHwgbnVtZXJpYyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBh cyAoKChhICsgYikgKiAyKSkKIAogU0VMRUNUICogRlJPTSBndGVzdDI3OwogIGEgfCBiICB8 IHggIApAQCAtMTAzMywyMCArMTAzMiwxOSBAQCBFUlJPUjogIGNhbm5vdCBzcGVjaWZ5IFVT SU5HIHdoZW4gYWx0ZXJpbmcgdHlwZSBvZiBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6ICBD b2x1bW4gIngiIGlzIGEgZ2VuZXJhdGVkIGNvbHVtbi4KIEFMVEVSIFRBQkxFIGd0ZXN0Mjcg QUxURVIgQ09MVU1OIHggRFJPUCBERUZBVUxUOyAgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1u ICJ4IiBvZiByZWxhdGlvbiAiZ3Rlc3QyNyIgaXMgYSBnZW5lcmF0ZWQgY29sdW1uCi1ISU5U OiAgVXNlIEFMVEVSIFRBQkxFIC4uLiBBTFRFUiBDT0xVTU4gLi4uIERST1AgRVhQUkVTU0lP TiBpbnN0ZWFkLgogLS0gSXQncyBwb3NzaWJsZSB0byBhbHRlciB0aGUgY29sdW1uIHR5cGVz IHRoaXMgd2F5OgogQUxURVIgVEFCTEUgZ3Rlc3QyNwogICBEUk9QIENPTFVNTiB4LAogICBB TFRFUiBDT0xVTU4gYSBUWVBFIGJpZ2ludCwKICAgQUxURVIgQ09MVU1OIGIgVFlQRSBiaWdp bnQsCi0gIEFERCBDT0xVTU4geCBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBi KSAqIDIpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlT IEFTICgoYSArIGIpICogMikgVklSVFVBTDsKIFxkIGd0ZXN0MjcKLSAgICAgICAgICAgICAg ICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI3IgotIENvbHVt biB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rl c3QyNyIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBhICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGIgICAgICB8 IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0geCAgICAgIHwgYmlnaW50IHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzICgoYSArIGIpICog Mikgc3RvcmVkCisgeCAgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzICgoYSArIGIpICogMikKIAogLS0gSWRlYWxseSB5b3UgY291 bGQganVzdCBkbyB0aGlzLCBidXQgbm90IHRvZGF5IChhbmQgc2hvdWxkIHggY2hhbmdlIHR5 cGU/KToKIEFMVEVSIFRBQkxFIGd0ZXN0MjcKQEAgLTEwNTUsMTIgKzEwNTMsMTIgQEAgQUxU RVIgVEFCTEUgZ3Rlc3QyNwogRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVt biB1c2VkIGJ5IGEgZ2VuZXJhdGVkIGNvbHVtbgogREVUQUlMOiAgQ29sdW1uICJhIiBpcyB1 c2VkIGJ5IGdlbmVyYXRlZCBjb2x1bW4gIngiLgogXGQgZ3Rlc3QyNwotICAgICAgICAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjciCi0gQ29s dW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5n dGVzdDI3IgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogIGEgICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSB4ICAgICAgfCBiaWdpbnQg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKChhICsgYikg KiAyKSBzdG9yZWQKKyB4ICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKChhICsgYikgKiAyKQogCiBTRUxFQ1QgKiBGUk9NIGd0 ZXN0Mjc7CiAgYSB8IGIgIHwgeCAgCkBAIC0xMDcyLDcgKzEwNzAsNyBAQCBTRUxFQ1QgKiBG Uk9NIGd0ZXN0Mjc7CiAtLSBBTFRFUiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIC4uLiBEUk9Q IEVYUFJFU1NJT04KIENSRUFURSBUQUJMRSBndGVzdDI5ICgKICAgICBhIGludCwKLSAgICBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVz dDI5IChhKSBWQUxVRVMgKDMpLCAoNCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CkBAIC0x MDgzLDExNSArMTA4MSwxMzggQEAgU0VMRUNUICogRlJPTSBndGVzdDI5OwogKDIgcm93cykK IAogXGQgZ3Rlc3QyOQotICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0 b3JlZF90ZXN0cy5ndGVzdDI5IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3Zp cnR1YWxfdGVzdHMuZ3Rlc3QyOSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdh eXMgYXMgKGEgKiAyKSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg ICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIAogQUxURVIgVEFCTEUg Z3Rlc3QyOSBBTFRFUiBDT0xVTU4gYSBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0g ZXJyb3IKIEVSUk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90 IGEgZ2VuZXJhdGVkIGNvbHVtbgogQUxURVIgVEFCTEUgZ3Rlc3QyOSBBTFRFUiBDT0xVTU4g YSBEUk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgotRVJST1I6ICBjb2x1bW4gImEiIG9mIHJl bGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbgorRVJS T1I6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0 ZWQgY29sdW1uCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIERST1AgRVhQ UkVTU0lPTiBJRiBFWElTVFM7ICAtLSBub3RpY2UKLU5PVElDRTogIGNvbHVtbiAiYSIgb2Yg cmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uLCBz a2lwcGluZworTk9USUNFOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMg bm90IGEgZ2VuZXJhdGVkIGNvbHVtbiwgc2tpcHBpbmcKIC0tIENoYW5nZSB0aGUgZXhwcmVz c2lvbgogQUxURVIgVEFCTEUgZ3Rlc3QyOSBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lP TiBBUyAoYSAqIDMpOworRVJST1I6ICBBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlz IG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDog IENvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIGEgdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1uLgogU0VMRUNUICogRlJPTSBndGVzdDI5OwotIGEgfCBiICAKLS0tLSstLS0t Ci0gMyB8ICA5Ci0gNCB8IDEyCisgYSB8IGIgCistLS0rLS0tCisgMyB8IDYKKyA0IHwgOAog KDIgcm93cykKIAogXGQgZ3Rlc3QyOQotICAgICAgICAgICAgICAgICAgICBUYWJsZSAiZ2Vu ZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI5IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAg Ci0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJsZSAiZ2Vu ZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyOSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVy YXRlZCBhbHdheXMgYXMgKGEgKiAzKSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIAogQUxU RVIgVEFCTEUgZ3Rlc3QyOSBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047CitFUlJP UjogIEFMVEVSIFRBQkxFIC8gRFJPUCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9y IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiYiIgb2YgcmVs YXRpb24gImd0ZXN0MjkiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgogSU5TRVJU IElOVE8gZ3Rlc3QyOSAoYSkgVkFMVUVTICg1KTsKIElOU0VSVCBJTlRPIGd0ZXN0MjkgKGEs IGIpIFZBTFVFUyAoNiwgNjYpOworRVJST1I6ICBjYW5ub3QgaW5zZXJ0IGEgbm9uLURFRkFV TFQgdmFsdWUgaW50byBjb2x1bW4gImIiCitERVRBSUw6ICBDb2x1bW4gImIiIGlzIGEgZ2Vu ZXJhdGVkIGNvbHVtbi4KIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKICBhIHwgYiAgCiAtLS0r LS0tLQotIDMgfCAgOQotIDQgfCAxMgotIDUgfCAgIAotIDYgfCA2NgotKDQgcm93cykKKyAz IHwgIDYKKyA0IHwgIDgKKyA1IHwgMTAKKygzIHJvd3MpCiAKIFxkIGd0ZXN0MjkKLSAgICAg IFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1uIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorICAgICAgICAgICAgICAg IFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAg ICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2Vu ZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiAKIC0tIGNoZWNrIHRoYXQgZGVwZW5kZW5jaWVz IGJldHdlZW4gY29sdW1ucyBoYXZlIGFsc28gYmVlbiByZW1vdmVkCiBBTFRFUiBUQUJMRSBn dGVzdDI5IERST1AgQ09MVU1OIGE7ICAtLSBzaG91bGQgbm90IGRyb3AgYgorRVJST1I6ICBj YW5ub3QgZHJvcCBjb2x1bW4gYSBvZiB0YWJsZSBndGVzdDI5IGJlY2F1c2Ugb3RoZXIgb2Jq ZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIGNvbHVtbiBiIG9mIHRhYmxlIGd0ZXN0Mjkg ZGVwZW5kcyBvbiBjb2x1bW4gYSBvZiB0YWJsZSBndGVzdDI5CitISU5UOiAgVXNlIERST1Ag Li4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgogXGQgZ3Rl c3QyOQotICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIKLSBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAotLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCi0gYiAg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgICAgICAgICAgICAg ICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjkiCisgQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIAogLS0gd2l0aCBpbmhlcml0 YW5jZQogQ1JFQVRFIFRBQkxFIGd0ZXN0MzAgKAogICAgIGEgaW50LAotICAgIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTAogKTsKIENSRUFURSBUQUJMRSBndGVzdDMwXzEg KCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogQUxURVIgVEFCTEUgZ3Rlc3QzMCBBTFRFUiBDT0xV TU4gYiBEUk9QIEVYUFJFU1NJT047CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gRFJPUCBFWFBS RVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMK K0RFVEFJTDogIENvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MzAiIGlzIGEgdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1uLgogXGQgZ3Rlc3QzMAotICAgICAgVGFibGUgImdlbmVyYXRl ZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMCIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9u IHwgTnVsbGFibGUgfCBEZWZhdWx0IAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRl ZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MzAiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK LSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChhICogMikKIE51bWJlciBvZiBjaGlsZCB0YWJsZXM6IDEgKFVzZSBcZCsgdG8gbGlzdCB0 aGVtLikKIAogXGQgZ3Rlc3QzMF8xCi0gICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzLmd0ZXN0MzBfMSIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFi bGUgfCBEZWZhdWx0IAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tCisgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHMuZ3Rlc3QzMF8xIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdl ciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIp CiBJbmhlcml0czogZ3Rlc3QzMAogCiBEUk9QIFRBQkxFIGd0ZXN0MzAgQ0FTQ0FERTsKIE5P VElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZ3Rlc3QzMF8xCiBDUkVBVEUgVEFCTEUg Z3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMCiApOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3Qz MCk7CiBBTFRFUiBUQUJMRSBPTkxZIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBS RVNTSU9OOyAgLS0gZXJyb3IKIEVSUk9SOiAgQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJFU1NJ T04gbXVzdCBiZSBhcHBsaWVkIHRvIGNoaWxkIHRhYmxlcyB0b28KIFxkIGd0ZXN0MzAKLSAg ICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3Qz MCIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0 MzAiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3Rv cmVkCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBOdW1iZXIgb2YgY2hpbGQgdGFibGVzOiAxIChVc2Ug XGQrIHRvIGxpc3QgdGhlbS4pCiAKIFxkIGd0ZXN0MzBfMQotICAgICAgICAgICAgICAgICAg IFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MzBfMSIKLSBDb2x1bW4gfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QzMF8xIgorIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMg KGEgKiAyKQogSW5oZXJpdHM6IGd0ZXN0MzAKIAogQUxURVIgVEFCTEUgZ3Rlc3QzMF8xIEFM VEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsgIC0tIGVycm9yCiBFUlJPUjogIGNhbm5v dCBkcm9wIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmcm9tIGluaGVyaXRlZCBjb2x1bW4KKy0t IGNvbXBvc2l0ZSB0eXBlIGRlcGVuZGVuY2llcworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAo YSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSBWSVJUVUFMLCBj IHRleHQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsK K0FMVEVSIFRBQkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAt LSBmYWlscworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgImd0ZXN0MzFfMSIgYmVjYXVz ZSBjb2x1bW4gImd0ZXN0MzFfMi55IiB1c2VzIGl0cyByb3cgdHlwZQorRFJPUCBUQUJMRSBn dGVzdDMxXzEsIGd0ZXN0MzFfMjsKKy0tIENoZWNrIGl0IGZvciBhIHBhcnRpdGlvbmVkIHRh YmxlLCB0b28KK0NSRUFURSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBiIHRleHQgR0VORVJB VEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgVklSVFVBTCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkg TElTVCAoYSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzMV8yICh4IGludCwgeSBndGVzdDMxXzEp OworQUxURVIgVEFCTEUgZ3Rlc3QzMV8xIEFMVEVSIENPTFVNTiBiIFRZUEUgdmFyY2hhcjsg IC0tIGZhaWxzCitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAiZ3Rlc3QzMV8xIiBiZWNh dXNlIGNvbHVtbiAiZ3Rlc3QzMV8yLnkiIHVzZXMgaXRzIHJvdyB0eXBlCitEUk9QIFRBQkxF IGd0ZXN0MzFfMSwgZ3Rlc3QzMV8yOwogLS0gdHJpZ2dlcnMKIENSRUFURSBUQUJMRSBndGVz dDI2ICgKICAgICBhIGludCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFZJUlRVQUwKICk7CiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dlcl9mdW5j KCkgUkVUVVJOUyB0cmlnZ2VyCiAgIExBTkdVQUdFIHBscGdzcWwKQEAgLTEyNDQsNyArMTI2 NSw3IEBAIENSRUFURSBUUklHR0VSIGd0ZXN0NCBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9O IGd0ZXN0MjYKICAgRVhFQ1VURSBQUk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9mdW5jKCk7CiBJ TlNFUlQgSU5UTyBndGVzdDI2IChhKSBWQUxVRVMgKC0yKSwgKDApLCAoMyk7CiBJTkZPOiAg Z3Rlc3QyOiBCRUZPUkU6IG5ldyA9ICgtMiwpCi1JTkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3 ID0gKC0yLC00KQorSU5GTzogIGd0ZXN0NDogQUZURVI6IG5ldyA9ICgtMiwpCiBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICBhICB8IGIgIAogLS0tLSstLS0tCkBAIC0x MjU0LDEyICsxMjc1LDEyIEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwog KDMgcm93cykKIAogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSBhICogLTI7Ci1JTkZPOiAgZ3Rl c3QxOiBCRUZPUkU6IG9sZCA9ICgtMiwtNCkKK0lORk86ICBndGVzdDE6IEJFRk9SRTogb2xk ID0gKC0yLCkKIElORk86ICBndGVzdDE6IEJFRk9SRTogbmV3ID0gKDQsKQotSU5GTzogIGd0 ZXN0MzogQUZURVI6IG9sZCA9ICgtMiwtNCkKLUlORk86ICBndGVzdDM6IEFGVEVSOiBuZXcg PSAoNCw4KQotSU5GTzogIGd0ZXN0NDogQUZURVI6IG9sZCA9ICgzLDYpCi1JTkZPOiAgZ3Rl c3Q0OiBBRlRFUjogbmV3ID0gKC02LC0xMikKK0lORk86ICBndGVzdDM6IEFGVEVSOiBvbGQg PSAoLTIsKQorSU5GTzogIGd0ZXN0MzogQUZURVI6IG5ldyA9ICg0LCkKK0lORk86ICBndGVz dDQ6IEFGVEVSOiBvbGQgPSAoMywpCitJTkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3ID0gKC02 LCkKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogIGEgIHwgIGIgIAogLS0t LSstLS0tLQpAQCAtMTI2OSw4ICsxMjkwLDggQEAgU0VMRUNUICogRlJPTSBndGVzdDI2IE9S REVSIEJZIGE7CiAoMyByb3dzKQogCiBERUxFVEUgRlJPTSBndGVzdDI2IFdIRVJFIGEgPSAt NjsKLUlORk86ICBndGVzdDE6IEJFRk9SRTogb2xkID0gKC02LC0xMikKLUlORk86ICBndGVz dDM6IEFGVEVSOiBvbGQgPSAoLTYsLTEyKQorSU5GTzogIGd0ZXN0MTogQkVGT1JFOiBvbGQg PSAoLTYsKQorSU5GTzogIGd0ZXN0MzogQUZURVI6IG9sZCA9ICgtNiwpCiBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKICBhIHwgYiAKIC0tLSstLS0KQEAgLTEyODEsNiAr MTMwMiw4IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogRFJPUCBUUklH R0VSIGd0ZXN0MSBPTiBndGVzdDI2OwogRFJPUCBUUklHR0VSIGd0ZXN0MiBPTiBndGVzdDI2 OwogRFJPUCBUUklHR0VSIGd0ZXN0MyBPTiBndGVzdDI2OworLS0gY2hlY2sgZGlzYWxsb3dl ZCBtb2RpZmljYXRpb24gb2YgdmlydHVhbCBjb2x1bW5zCistLSBUT0RPCiAtLSBDaGVjayB0 aGF0IGFuIFVQREFURSBvZiAiYSIgZmlyZXMgdGhlIHRyaWdnZXIgZm9yIFVQREFURSBPRiBi LCBwZXIKIC0tIFNRTCBzdGFuZGFyZC4KIENSRUFURSBGVU5DVElPTiBndGVzdF90cmlnZ2Vy X2Z1bmMzKCkgUkVUVVJOUyB0cmlnZ2VyCkBAIC0xMjk0LDkgKzEzMTcsMTEgQEAgJCQ7CiBD UkVBVEUgVFJJR0dFUiBndGVzdDExIEJFRk9SRSBVUERBVEUgT0YgYiBPTiBndGVzdDI2CiAg IEZPUiBFQUNIIFJPVwogICBFWEVDVVRFIFBST0NFRFVSRSBndGVzdF90cmlnZ2VyX2Z1bmMz KCk7CitFUlJPUjogIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0 ZWQgYXMgdHJpZ2dlciBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIGlzIGEgdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1uLgogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxIFdIRVJFIGEg PSAwOwotTk9USUNFOiAgT0sKIERST1AgVFJJR0dFUiBndGVzdDExIE9OIGd0ZXN0MjY7CitF UlJPUjogIHRyaWdnZXIgImd0ZXN0MTEiIGZvciB0YWJsZSAiZ3Rlc3QyNiIgZG9lcyBub3Qg ZXhpc3QKIFRSVU5DQVRFIGd0ZXN0MjY7CiAtLSBjaGVjayB0aGF0IG1vZGlmaWNhdGlvbnMg b2Ygc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRyaWdnZXJzIGRvCiAtLSBub3QgZ2V0 IHByb3BhZ2F0ZWQKQEAgLTEzMjAsMTQgKzEzNDUsMTMgQEAgQ1JFQVRFIFRSSUdHRVIgZ3Rl c3QxMl8wMyBCRUZPUkUgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRVhFQ1VURSBQUk9DRURVUkUg Z3Rlc3RfdHJpZ2dlcl9mdW5jKCk7CiBJTlNFUlQgSU5UTyBndGVzdDI2IChhKSBWQUxVRVMg KDEpOwogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBhID0gMTsKLUlORk86ICBn dGVzdDEyXzAxOiBCRUZPUkU6IG9sZCA9ICgxLDIpCitJTkZPOiAgZ3Rlc3QxMl8wMTogQkVG T1JFOiBvbGQgPSAoMSwpCiBJTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JFOiBuZXcgPSAoMTEs KQotSU5GTzogIGd0ZXN0MTJfMDM6IEJFRk9SRTogb2xkID0gKDEsMikKLUlORk86ICBndGVz dDEyXzAzOiBCRUZPUkU6IG5ldyA9ICgxMCwpCitFUlJPUjogIHRyaWdnZXIgbW9kaWZpZWQg dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHZhbHVlCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYg T1JERVIgQlkgYTsKLSBhICB8IGIgIAotLS0tLSstLS0tCi0gMTAgfCAyMAorIGEgfCBiIAor LS0tKy0tLQorIDEgfCAyCiAoMSByb3cpCiAKIC0tIExJS0UgSU5DTFVESU5HIEdFTkVSQVRF RCBhbmQgZHJvcHBlZCBjb2x1bW4gaGFuZGxpbmcKQEAgLTEzMzUsMjIgKzEzNTksMjIgQEAg Q1JFQVRFIFRBQkxFIGd0ZXN0MjhhICgKICAgYSBpbnQsCiAgIGIgaW50LAogICBjIGludCwK LSAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRAorICB4IGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTAogKTsKIEFMVEVSIFRBQkxFIGd0 ZXN0MjhhIERST1AgQ09MVU1OIGE7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGIgKExJS0UgZ3Rl c3QyOGEgSU5DTFVESU5HIEdFTkVSQVRFRCk7CiBcZCBndGVzdDI4KgotICAgICAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjhhIgotIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI4YSIKKyBDb2x1 bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGIgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAogIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IAotIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKSBzdG9yZWQKKyB4ICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChiICog MikKIAotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz Lmd0ZXN0MjhiIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0 cy5ndGVzdDI4YiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGMgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKSBzdG9y ZWQKKyB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChiICogMikKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUK aW5kZXggODFlNDIyMmQyNmEuLjc4MmQ3ZDExZGNiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKQEAgLTY4LDYgKzY4LDkgQEAgdGVzdDogc2VsZWN0X2ludG8gc2VsZWN0 X2Rpc3RpbmN0IHNlbGVjdF9kaXN0aW5jdF9vbiBzZWxlY3RfaW1wbGljaXQgc2VsZWN0X2hh dmkKICMgLS0tLS0tLS0tLQogdGVzdDogYnJpbiBnaW4gZ2lzdCBzcGdpc3QgcHJpdmlsZWdl cyBpbml0X3ByaXZzIHNlY3VyaXR5X2xhYmVsIGNvbGxhdGUgbWF0dmlldyBsb2NrIHJlcGxp Y2FfaWRlbnRpdHkgcm93c2VjdXJpdHkgb2JqZWN0X2FkZHJlc3MgdGFibGVzYW1wbGUgZ3Jv dXBpbmdzZXRzIGRyb3Bfb3BlcmF0b3IgcGFzc3dvcmQgaWRlbnRpdHkgZ2VuZXJhdGVkX3N0 b3JlZCBqb2luX2hhc2gKIAorIyBUT0RPOiBmaW5kIGEgcGxhY2UgZm9yIHRoaXMgKGFib3Zl IGdyb3VwIGlzIGZ1bGwpCit0ZXN0OiBnZW5lcmF0ZWRfdmlydHVhbAorCiAjIC0tLS0tLS0t LS0KICMgQWRkaXRpb25hbCBCUklOIHRlc3RzCiAjIC0tLS0tLS0tLS0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwKaW5kZXggODBmMjhhOTdkNzguLjU3 Y2MxMWEzZWVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmlj dS51dGY4LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4 LnNxbApAQCAtNzk2LDYgKzc5NiwyMCBAQCBDUkVBVEUgVEFCTEUgdGVzdDMzXzEgUEFSVElU SU9OIE9GIHRlc3QzMyBGT1IgVkFMVUVTIFdJVEggKE1PRFVMVVMgMiwgUkVNQUlOREVSCiAt LSB0aGV5IGVuZCB1cCBpbiB0aGUgc2FtZSBwYXJ0aXRpb24gKGJ1dCBpdCdzIHBsYXRmb3Jt LWRlcGVuZGVudCB3aGljaCBvbmUpCiBTRUxFQ1QgKFNFTEVDVCBjb3VudCgqKSBGUk9NIHRl c3QzM18wKSA8PiAoU0VMRUNUIGNvdW50KCopIEZST00gdGVzdDMzXzEpOwogCistLSB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zCitDUkVBVEUgVEFCTEUgdDUgKAorICAgIGEgaW50LAor ICAgIGIgdGV4dCBjb2xsYXRlICJDIiwKKyAgICBjIHRleHQgY29sbGF0ZSAiQyIgR0VORVJB VEVEIEFMV0FZUyBBUyAoYiBDT0xMQVRFIGNhc2VfaW5zZW5zaXRpdmUpCispOworSU5TRVJU IElOVE8gdDUgKGEsIGIpIHZhbHVlcyAoMSwgJ0QxJyksICgyLCAnRDInKSwgKDMsICdkMScp OworLS0gQ29sbGF0aW9uIG9mIGMgc2hvdWxkIGJlIHRoZSBvbmUgZGVmaW5lZCBmb3IgdGhl IGNvbHVtbiAoIkMiKSwgbm90CistLSB0aGUgb25lIG9mIHRoZSBnZW5lcmF0aW9uIGV4cHJl c3Npb24uICAoTm90ZSB0aGF0IHdlIGNhbm5vdCBqdXN0CistLSB0ZXN0IHdpdGgsIHNheSwg dXNpbmcgQ09MTEFUSU9OIEZPUiwgYmVjYXVzZSB0aGUgY29sbGF0aW9uIG9mCistLSBmdW5j dGlvbiBjYWxscyBpcyBhbHJlYWR5IGRldGVybWluZWQgaW4gdGhlIHBhcnNlciBiZWZvcmUK Ky0tIHJld3JpdGluZy4pCitTRUxFQ1QgKiBGUk9NIHQ1IE9SREVSIEJZIGMgQVNDLCBhIEFT QzsKKwogCiAtLSBjbGVhbnVwCiBSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAppbmRleCAwNDAwOGEwMjdiOC4uZGRm ODkzZjdlYzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJs 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 bC9nZW5lcmF0ZWRfc3RvcmVkLnNxbAppbmRleCBjMThlMGUxZjY1NS4uMDJmYTE3Mzg2YzQg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsCkBAIC0x LDUgKzEsOCBAQAorLS0ga2VlcCB0aGVzZSB0ZXN0cyBhbGlnbmVkIHdpdGggZ2VuZXJhdGVk X3ZpcnR1YWwuc3FsCisKKwogLS0gc2FuaXR5IGNoZWNrIG9mIHN5c3RlbSBjYXRhbG9nCi1T RUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0 ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnKTsKK1NFTEVDVCBhdHRyZWxp ZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdl bmVyYXRlZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CiAKIAogQ1JFQVRFIFNDSEVNQSBnZW5l cmF0ZWRfc3RvcmVkX3Rlc3RzOwpAQCAtNjAsNiArNjMsOCBAQCBDUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVM VCBBUyAoYSAqCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgzLCBERUZBVUxUKSwgKDQs IERFRkFVTFQpOyAgLS0gb2sKIAogU0VMRUNUICogRlJPTSBndGVzdDEgT1JERVIgQlkgYTsK K1NFTEVDVCBndGVzdDEgRlJPTSBndGVzdDEgT1JERVIgQlkgYTsgIC0tIHdob2xlLXJvdyBy ZWZlcmVuY2UKK1NFTEVDVCBhLCAoU0VMRUNUIGd0ZXN0MS5iKSBGUk9NIGd0ZXN0MSBPUkRF UiBCWSBhOyAgLS0gc3VibGluawogREVMRVRFIEZST00gZ3Rlc3QxIFdIRVJFIGEgPj0gMzsK IAogVVBEQVRFIGd0ZXN0MSBTRVQgYiA9IERFRkFVTFQgV0hFUkUgYSA9IDE7CkBAIC0xMDMs NiArMTA4LDE0IEBAIENSRUFURSBUQUJMRSBndGVzdG0gKAogU0VMRUNUICogRlJPTSBndGVz dG0gT1JERVIgQlkgaWQ7CiBEUk9QIFRBQkxFIGd0ZXN0bTsKIAorQ1JFQVRFIFRBQkxFIGd0 ZXN0bSAoCisgIGEgaW50IFBSSU1BUlkgS0VZLAorICBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgU1RPUkVECispOworSU5TRVJUIElOVE8gZ3Rlc3RtIChhKSBTRUxFQ1Qg ZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkgZzsKK01FUkdFIElOVE8gZ3Rlc3RtIHQg VVNJTkcgZ3Rlc3RtIEFTIHMgT04gMiAqIHQuYSA9IHMuYiBXSEVOIE1BVENIRUQgVEhFTiBE RUxFVEUgUkVUVVJOSU5HICo7CitEUk9QIFRBQkxFIGd0ZXN0bTsKKwogLS0gdmlld3MKIENS RUFURSBWSUVXIGd0ZXN0MXYgQVMgU0VMRUNUICogRlJPTSBndGVzdDE7CiBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MXY7CkBAIC0xNDIsNiArMTU1LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X25v cm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBT VE9SRUQKIC0tIHRlc3QgaW5oZXJpdGFuY2UgbWlzbWF0Y2hlcyBiZXR3ZWVuIHBhcmVudCBh bmQgY2hpbGQKIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBERUZBVUxUIDEw KSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9yCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4 IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSkgSU5IRVJJVFMgKGd0 ZXN0MSk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0MSk7 ICAtLSBlcnJvcgogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9r LCBvdmVycmlkZXMgcGFyZW50CiBcZCsgZ3Rlc3R4CiAKQEAgLTM5MCw2ICs0MDQsMTAgQEAg Q1JFQVRFIERPTUFJTiBndGVzdGRvbWFpbjEgQVMgaW50IENIRUNLIChWQUxVRSA8IDEwKTsK IENSRUFURSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFp bjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CiBJTlNFUlQgSU5UTyBn dGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjQgKGEp IFZBTFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRFIFRZUEUgZ3Rlc3Rkb21haW4xcmFuZ2Ug QVMgcmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRvbWFpbjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0 MjRyIChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjFyYW5nZSBHRU5FUkFURUQg QUxXQVlTIEFTIChndGVzdGRvbWFpbjFyYW5nZShhLCBhICsgNSkpIFNUT1JFRCk7CitJTlNF UlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCitJTlNFUlQgSU5UTyBn dGVzdDI0ciAoYSkgVkFMVUVTICg2KTsgIC0tIGVycm9yCiAKIC0tIHR5cGVkIHRhYmxlcyAo Y3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVzdF90eXBlIEFTIChm MSBpbnRlZ2VyLCBmMiB0ZXh0LCBmMyBiaWdpbnQpOwpAQCAtNDE3LDYgKzQzNSw5IEBAIENS RUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiBD UkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAog ICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZICAtLSBl cnJvcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAx Jyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJl bnQgKAorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCAgLS0g ZXJyb3IKKykgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0w MScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIg YmlnaW50LCBmMyBiaWdpbnQpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQ QVJUSVRJT04gZ3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBU TyAoJzIwMTYtMTAtMDEnKTsgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOwpA QCAtNDI2LDYgKzQ0Nyw5IEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUg Tk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IERFRkFVTFQgNDIpOwogQ1JFQVRFIFRB QkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSk7CiBBTFRFUiBUQUJMRSBndGVzdF9w YXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgn MjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgogRFJPUCBUQUJMRSBn dGVzdF9jaGlsZDM7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBO VUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMz KSBWSVJUVUFMKTsKK0FMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9O IGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2 LTEwLTAxJyk7IC0tIGVycm9yCitEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKIENSRUFURSBU QUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmln aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CiBBTFRFUiBUQUJM RSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVF UyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogXGQgZ3Rlc3RfY2hp bGQKQEAgLTU0OSw2ICs1NzMsMTggQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhF UklUUyAoZ3Rlc3QzMCk7CiBcZCBndGVzdDMwXzEKIEFMVEVSIFRBQkxFIGd0ZXN0MzBfMSBB TFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047ICAtLSBlcnJvcgogCistLSBjb21wb3Np dGUgdHlwZSBkZXBlbmRlbmNpZXMKK0NSRUFURSBUQUJMRSBndGVzdDMxXzEgKGEgaW50LCBi IHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJykgU1RPUkVELCBjIHRleHQpOwor Q1JFQVRFIFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKK0FMVEVSIFRB QkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWlscwor RFJPUCBUQUJMRSBndGVzdDMxXzEsIGd0ZXN0MzFfMjsKKworLS0gQ2hlY2sgaXQgZm9yIGEg cGFydGl0aW9uZWQgdGFibGUsIHRvbworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBpbnQs IGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSBTVE9SRUQsIGMgdGV4dCkg UEFSVElUSU9OIEJZIExJU1QgKGEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQs IHkgZ3Rlc3QzMV8xKTsKK0FMVEVSIFRBQkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBU WVBFIHZhcmNoYXI7ICAtLSBmYWlscworRFJPUCBUQUJMRSBndGVzdDMxXzEsIGd0ZXN0MzFf MjsKKwogLS0gdHJpZ2dlcnMKIENSRUFURSBUQUJMRSBndGVzdDI2ICgKICAgICBhIGludCBQ UklNQVJZIEtFWSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRl ZF9zdG9yZWQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwu c3FsCnNpbWlsYXJpdHkgaW5kZXggNjklCmNvcHkgZnJvbSBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9nZW5lcmF0ZWRfc3RvcmVkLnNxbApjb3B5IHRvIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dl bmVyYXRlZF92aXJ0dWFsLnNxbAppbmRleCBjMThlMGUxZjY1NS4uY2I3MjdjNDRjZmIgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF92aXJ0dWFsLnNxbApAQCAtMSw1 NSArMSw1OCBAQAorLS0ga2VlcCB0aGVzZSB0ZXN0cyBhbGlnbmVkIHdpdGggZ2VuZXJhdGVk X3N0b3JlZC5zcWwKKworCiAtLSBzYW5pdHkgY2hlY2sgb2Ygc3lzdGVtIGNhdGFsb2cKLVNF TEVDVCBhdHRyZWxpZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRl IFdIRVJFIGF0dGdlbmVyYXRlZCBOT1QgSU4gKCcnLCAncycpOworU0VMRUNUIGF0dHJlbGlk LCBhdHRuYW1lLCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2Vu ZXJhdGVkIE5PVCBJTiAoJycsICdzJywgJ3YnKTsKIAogCi1DUkVBVEUgU0NIRU1BIGdlbmVy YXRlZF9zdG9yZWRfdGVzdHM7Ci1HUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3N0 b3JlZF90ZXN0cyBUTyBQVUJMSUM7Ci1TRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfc3Rv cmVkX3Rlc3RzOworQ1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0czsKK0dS QU5UIFVTQUdFIE9OIFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cyBUTyBQVUJMSUM7 CitTRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0czsKIAotQ1JFQVRF IFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKDU1KSBTVE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JF QVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKDU1KSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7 CiAKLVNFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2RlZmF1bHQsIGlz X251bGxhYmxlLCBpc19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhwcmVzc2lvbiBGUk9NIGlu Zm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0 ZWRfc3RvcmVkX3Rlc3RzJyBPUkRFUiBCWSAxLCAyOworU0VMRUNUIHRhYmxlX25hbWUsIGNv bHVtbl9uYW1lLCBjb2x1bW5fZGVmYXVsdCwgaXNfbnVsbGFibGUsIGlzX2dlbmVyYXRlZCwg Z2VuZXJhdGlvbl9leHByZXNzaW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMg V0hFUkUgdGFibGVfc2NoZW1hID0gJ2dlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzJyBPUkRFUiBC WSAxLCAyOwogCi1TRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9j b2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBXSEVS RSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwg MiwgMzsKK1NFTEVDVCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVt biBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRh YmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMiwg MzsKIAogXGQgZ3Rlc3QxCiAKIC0tIGR1cGxpY2F0ZSBnZW5lcmF0ZWQKLUNSRUFURSBUQUJM RSBndGVzdF9lcnJfMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMykgVklSVFVBTCk7CiAKIC0tIHJlZmVyZW5jZXMgdG8gb3RoZXIgZ2VuZXJh dGVkIGNvbHVtbnMsIGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZXMKLUNSRUFURSBUQUJMRSBn dGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChiICogMikgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMykgU1RPUkVEKTsKK0NSRUFURSBU QUJMRSBndGVzdF9lcnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJi IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFZJUlRVQUwsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAzKSBWSVJUVUFMKTsK IC0tIGEgd2hvbGUtcm93IHZhciBpcyBhIHNlbGYtcmVmZXJlbmNlIG9uIHN0ZXJvaWRzLCBz byBkaXNhbGxvdyB0aGF0IHRvbwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYyAoYSBpbnQg UFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxz KGd0ZXN0X2Vycl8yYykpIFNUT1JFRCk7CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFZJUlRVQUwpOwogCiAtLSBpbnZhbGlkIHJl ZmVyZW5jZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChjICogMikgVklSVFVBTCk7CiAKIC0tIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBt dXN0IGJlIGltbXV0YWJsZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQUklN QVJZIEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJhbmRv bSgpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQUklNQVJZ IEtFWSwgYiBkb3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJhbmRvbSgp KSBWSVJUVUFMKTsKIC0tIC4uLiBidXQgYmUgc3VyZSB0aGF0IHRoZSBpbW11dGFiaWxpdHkg dGVzdCBpcyBhY2N1cmF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQsIGIgdGV4dCBH RU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcgc2VjJykgU1RPUkVEKTsKK0NSRUFURSBUQUJM RSBndGVzdDIgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNl YycpIFZJUlRVQUwpOwogRFJPUCBUQUJMRSBndGVzdDI7CiAKIC0tIGNhbm5vdCBoYXZlIGRl ZmF1bHQvaWRlbnRpdHkgYW5kIGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81 YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl81YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiAKIC0tIHJlZmVyZW5jZSB0 byBzeXN0ZW0gY29sdW1uIG5vdCBhbGxvd2VkIGluIGdlbmVyYXRlZCBjb2x1bW4KIC0tIChl eGNlcHQgdGFibGVvaWQsIHdoaWNoIHdlIHRlc3QgYmVsb3cpCi1DUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzZhIChhIGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMg QVMgKHhtaW4gPD4gMzcpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChh IGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4g MzcpIFZJUlRVQUwpOwogCiAtLSB2YXJpb3VzIHByb2hpYml0ZWQgY29uc3RydWN0cwotQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChy b3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgYSkpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzdjIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoKFNFTEVDVCBhKSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2Qg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0 ZV9zZXJpZXMoMSwgYSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBW SVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIg QlkgYSkpIFZJUlRVQUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIFZJUlRV QUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkgVklSVFVB TCk7CiAKIC0tIEdFTkVSQVRFRCBCWSBERUZBVUxUIG5vdCBhbGxvd2VkCi1DUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkg REVGQVVMVCBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzgg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyAoYSAq IDIpIFZJUlRVQUwpOwogCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgxKTsKIElOU0VS VCBJTlRPIGd0ZXN0MSBWQUxVRVMgKDIsIERFRkFVTFQpOyAgLS0gb2sKQEAgLTYwLDYgKzYz LDggQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgKGEgKgogSU5TRVJUIElOVE8gZ3Rlc3QxIFZB TFVFUyAoMywgREVGQVVMVCksICg0LCBERUZBVUxUKTsgIC0tIG9rCiAKIFNFTEVDVCAqIEZS T00gZ3Rlc3QxIE9SREVSIEJZIGE7CitTRUxFQ1QgZ3Rlc3QxIEZST00gZ3Rlc3QxIE9SREVS IEJZIGE7ICAtLSB3aG9sZS1yb3cgcmVmZXJlbmNlCitTRUxFQ1QgYSwgKFNFTEVDVCBndGVz dDEuYikgRlJPTSBndGVzdDEgT1JERVIgQlkgYTsgIC0tIHN1YmxpbmsKIERFTEVURSBGUk9N IGd0ZXN0MSBXSEVSRSBhID49IDM7CiAKIFVQREFURSBndGVzdDEgU0VUIGIgPSBERUZBVUxU IFdIRVJFIGEgPSAxOwpAQCAtNzAsNyArNzUsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJy XzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyAo YSAqCiBTRUxFQ1QgYSwgYiwgYiAqIDIgQVMgYjIgRlJPTSBndGVzdDEgT1JERVIgQlkgYTsK IFNFTEVDVCBhLCBiIEZST00gZ3Rlc3QxIFdIRVJFIGIgPSA0IE9SREVSIEJZIGE7CiAKLS0t IHRlc3QgdGhhdCBvdmVyZmxvdyBlcnJvciBoYXBwZW5zIG9uIHdyaXRlCistLSB0ZXN0IHRo YXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBvbiByZWFkCiBJTlNFUlQgSU5UTyBndGVzdDEg VkFMVUVTICgyMDAwMDAwMDAwKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwogREVMRVRFIEZS T00gZ3Rlc3QxIFdIRVJFIGEgPSAyMDAwMDAwMDAwOwpAQCAtOTMsOCArOTgsOCBAQCBDUkVB VEUgVEFCTEUgZ3Rlc3RtICgKICAgaWQgaW50IFBSSU1BUlkgS0VZLAogICBmMSBpbnQsCiAg IGYyIGludCwKLSAgZjMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxICogMikgU1RPUkVE LAotICBmNCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQKKyAgZjMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxICogMikgVklSVFVBTCwKKyAgZjQgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0 ZXN0bSBWQUxVRVMgKDEsIDUsIDEwMCk7CiBNRVJHRSBJTlRPIGd0ZXN0bSB0IFVTSU5HIChW QUxVRVMgKDEsIDEwKSwgKDIsIDIwKSkgdihpZCwgZjEpIE9OIHQuaWQgPSB2LmlkCkBAIC0x MDMsNiArMTA4LDE0IEBAIENSRUFURSBUQUJMRSBndGVzdG0gKAogU0VMRUNUICogRlJPTSBn dGVzdG0gT1JERVIgQlkgaWQ7CiBEUk9QIFRBQkxFIGd0ZXN0bTsKIAorQ1JFQVRFIFRBQkxF IGd0ZXN0bSAoCisgIGEgaW50IFBSSU1BUlkgS0VZLAorICBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTAorKTsKK0lOU0VSVCBJTlRPIGd0ZXN0bSAoYSkgU0VM RUNUIGcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIGc7CitNRVJHRSBJTlRPIGd0ZXN0 bSB0IFVTSU5HIGd0ZXN0bSBBUyBzIE9OIDIgKiB0LmEgPSBzLmIgV0hFTiBNQVRDSEVEIFRI RU4gREVMRVRFIFJFVFVSTklORyAqOworRFJPUCBUQUJMRSBndGVzdG07CisKIC0tIHZpZXdz CiBDUkVBVEUgVklFVyBndGVzdDF2IEFTIFNFTEVDVCAqIEZST00gZ3Rlc3QxOwogU0VMRUNU ICogRlJPTSBndGVzdDF2OwpAQCAtMTM0LDIyICsxNDcsMjYgQEAgQ1JFQVRFIFRBQkxFIGd0 ZXN0MV8xICgpIElOSEVSSVRTIChndGVzdDEpOwogCiAtLSBjYW4ndCBoYXZlIGdlbmVyYXRl ZCBjb2x1bW4gdGhhdCBpcyBhIGNoaWxkIG9mIG5vcm1hbCBjb2x1bW4KIENSRUFURSBUQUJM RSBndGVzdF9ub3JtYWwgKGEgaW50LCBiIGludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9y bWFsX2NoaWxkIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNU T1JFRCkgSU5IRVJJVFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxF IGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBp bnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKSBJTkhFUklU UyAoZ3Rlc3Rfbm9ybWFsKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFs X2NoaWxkIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRV QUwpOwogQUxURVIgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIElOSEVSSVQgZ3Rlc3Rfbm9y bWFsOyAgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3Rfbm9ybWFsLCBndGVzdF9ub3JtYWxf Y2hpbGQ7CiAKIC0tIHRlc3QgaW5oZXJpdGFuY2UgbWlzbWF0Y2hlcyBiZXR3ZWVuIHBhcmVu dCBhbmQgY2hpbGQKIENSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGludCBERUZBVUxU IDEwKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9yCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4 ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSkgSU5IRVJJVFMg KGd0ZXN0MSk7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3Qx KTsgIC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CitDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQpIElOSEVSSVRT IChndGVzdDEpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdHggKHggaW50LCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFZJUlRVQUwpIElOSEVSSVRTIChndGVz dDEpOyAgLS0gb2ssIG92ZXJyaWRlcyBwYXJlbnQKIFxkKyBndGVzdHgKK0lOU0VSVCBJTlRP IGd0ZXN0eCAoYSwgeCkgVkFMVUVTICgxMSwgMjIpOworU0VMRUNUICogRlJPTSBndGVzdDE7 CitTRUxFQ1QgKiBGUk9NIGd0ZXN0eDsKIAogQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMSAoYSBp bnQgTk9UIE5VTEwsIGIgaW50KTsKIEFMVEVSIFRBQkxFIGd0ZXN0eHhfMSBJTkhFUklUIGd0 ZXN0MTsgIC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4eF8zIChhIGludCBOT1QgTlVM TCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3R4eF8zIChhIGludCBOT1QgTlVMTCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3R4eF8zIElOSEVSSVQg Z3Rlc3QxOyAgLS0gb2sKLUNSRUFURSBUQUJMRSBndGVzdHh4XzQgKGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGEgaW50IE5PVCBOVUxMKTsKK0NSRUFURSBU QUJMRSBndGVzdHh4XzQgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMLCBhIGludCBOT1QgTlVMTCk7CiBBTFRFUiBUQUJMRSBndGVzdHh4XzQgSU5IRVJJVCBn dGVzdDE7ICAtLSBvawogCiAtLSB0ZXN0IG11bHRpcGxlIGluaGVyaXRhbmNlIG1pc21hdGNo ZXMKQEAgLTE2MSwyOCArMTc4LDI4IEBAIENSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBi IGludCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rl c3R5KTsgIC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0eTsKIAotQ1JFQVRFIFRBQkxFIGd0 ZXN0eSAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyMikgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTICh4ICogMjIpIFZJUlRVQUwpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgpIElOSEVS SVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0MV95 IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICsgMSkgU1RPUkVEKSBJTkhFUklUUyAo Z3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sKK0NSRUFURSBUQUJMRSBndGVzdDFfeSAoYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEpIFZJUlRVQUwpIElOSEVSSVRTIChndGVzdDEs IGd0ZXN0eSk7ICAtLSBvawogXGQgZ3Rlc3QxX3kKIAogLS0gdGVzdCBjb3JyZWN0IGhhbmRs aW5nIG9mIEdFTkVSQVRFRCBjb2x1bW4gdGhhdCdzIG9ubHkgaW4gY2hpbGQKIENSRUFURSBU QUJMRSBndGVzdHAgKGYxIGludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RjIChmMiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoZjErMSkgU1RPUkVEKSBJTkhFUklUUyhndGVzdHApOworQ1JF QVRFIFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEpIFZJ UlRVQUwpIElOSEVSSVRTKGd0ZXN0cCk7CiBJTlNFUlQgSU5UTyBndGVzdGMgdmFsdWVzKDQy KTsKIFRBQkxFIGd0ZXN0YzsKIFVQREFURSBndGVzdHAgU0VUIGYxID0gZjEgKiAxMDsKIFRB QkxFIGd0ZXN0YzsKIERST1AgVEFCTEUgZ3Rlc3RwIENBU0NBREU7CiAKLS0tIHRlc3Qgc3Rv cmVkIHVwZGF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworLS0gdGVzdCB1cGRhdGUgWFhYCitDUkVB VEUgVEFCTEUgZ3Rlc3QzIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDMpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QzIChhKSBWQUxVRVMgKDEpLCAoMiks ICgzKSwgKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsKIFVQREFU RSBndGVzdDMgU0VUIGEgPSAyMiBXSEVSRSBhID0gMjsKIFNFTEVDVCAqIEZST00gZ3Rlc3Qz IE9SREVSIEJZIGE7CiAKLUNSRUFURSBUQUJMRSBndGVzdDNhIChhIHRleHQsIGIgdGV4dCBH RU5FUkFURUQgQUxXQVlTIEFTIChhIHx8ICcrJyB8fCBhKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwg JysnIHx8IGEpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QzYSAoYSkgVkFMVUVTICgn YScpLCAoJ2InKSwgKCdjJyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzYSBPUkRF UiBCWSBhOwogVVBEQVRFIGd0ZXN0M2EgU0VUIGEgPSAnYmInIFdIRVJFIGEgPSAnYic7CkBA IC0yMjIsMTIgKzIzOSwxMiBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRl eHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgU1RPUkVEKQogU0VMRUNU ICogRlJPTSBndGVzdDMgT1JERVIgQlkgYTsKIAogLS0gbnVsbCB2YWx1ZXMKLUNSRUFURSBU QUJMRSBndGVzdDIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChOVUxMKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKE5VTEwpIFZJUlRVQUwpOwogSU5T RVJUIElOVE8gZ3Rlc3QyIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjsKIAog LS0gc2ltcGxlIGNvbHVtbiByZWZlcmVuY2UgZm9yIHZhcmxlbmEgdHlwZXMKLUNSRUFURSBU QUJMRSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxX QVlTIEFTIChhKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFy Y2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEpIFZJUlRVQUwpOwogSU5T RVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFMVUVTKCcwMTIzNDU2Nzg5MDEyMzQ1Njc4 OScpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFMVUVTKE5VTEwpOwogU0VM RUNUICogRlJPTSBndGVzdF92YXJsZW5hIE9SREVSIEJZIGE7CkBAIC0yMzcsNyArMjU0LDcg QEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEpIFNUT1JFRCkKIENSRUFURSBUWVBFIGRvdWJsZV9pbnQg YXMgKGEgaW50LCBiIGludCk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3Q0ICgKICAgICBhIGludCwK LSAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKiAyLCBhICogMykp IFNUT1JFRAorICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSAqIDIs IGEgKiAzKSkgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0NCBWQUxVRVMgKDEpLCAo Nik7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0NDsKQEAgLTI0OCwxNjggKzI2NSwxNzIgQEAgQ1JF QVRFIFRBQkxFIGd0ZXN0NCAoCiAtLSB1c2luZyB0YWJsZW9pZCBpcyBhbGxvd2VkCiBDUkVB VEUgVEFCTEUgZ3Rlc3RfdGFibGVvaWQgKAogICBhIGludCBQUklNQVJZIEtFWSwKLSAgYiBi b29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkID0gJ2d0ZXN0X3RhYmxlb2lkJzo6 cmVnY2xhc3MpIFNUT1JFRAorICBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAodGFibGVv aWQgPSAnZ3Rlc3RfdGFibGVvaWQnOjpyZWdjbGFzcykgVklSVFVBTAogKTsKIElOU0VSVCBJ TlRPIGd0ZXN0X3RhYmxlb2lkIFZBTFVFUyAoMSksICgyKTsKIEFMVEVSIFRBQkxFIGd0ZXN0 X3RhYmxlb2lkIEFERCBDT0xVTU4KLSAgYyByZWdjbGFzcyBHRU5FUkFURUQgQUxXQVlTIEFT ICh0YWJsZW9pZCkgU1RPUkVEOworICBjIHJlZ2NsYXNzIEdFTkVSQVRFRCBBTFdBWVMgQVMg KHRhYmxlb2lkKSBWSVJUVUFMOwogU0VMRUNUICogRlJPTSBndGVzdF90YWJsZW9pZDsKIAog LS0gZHJvcCBjb2x1bW4gYmVoYXZpb3IKLUNSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBT VE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MTAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwpOwogQUxURVIg VEFCTEUgZ3Rlc3QxMCBEUk9QIENPTFVNTiBiOyAgLS0gZmFpbHMKIEFMVEVSIFRBQkxFIGd0 ZXN0MTAgRFJPUCBDT0xVTU4gYiBDQVNDQURFOyAgLS0gZHJvcHMgYyB0b28KIAogXGQgZ3Rl c3QxMAogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBn dGVzdDEwYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTBhIERST1AgQ09MVU1OIGI7 CiBJTlNFUlQgSU5UTyBndGVzdDEwYSAoYSkgVkFMVUVTICgxKTsKIAogLS0gcHJpdmlsZWdl cwogQ1JFQVRFIFVTRVIgcmVncmVzc191c2VyMTE7CiAKLUNSRUFURSBUQUJMRSBndGVzdDEx cyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChiICogMikgU1RPUkVEKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MTFzIFZBTFVFUyAoMSwgMTAp LCAoMiwgMjApOwotR1JBTlQgU0VMRUNUIChhLCBjKSBPTiBndGVzdDExcyBUTyByZWdyZXNz X3VzZXIxMTsKK0NSRUFURSBUQUJMRSBndGVzdDExdiAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgVklSVFVBTCk7CitJTlNF UlQgSU5UTyBndGVzdDExdiBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKK0dSQU5UIFNFTEVD VCAoYSwgYykgT04gZ3Rlc3QxMXYgVE8gcmVncmVzc191c2VyMTE7CiAKIENSRUFURSBGVU5D VElPTiBnZjEoYSBpbnQpIFJFVFVSTlMgaW50IEFTICQkIFNFTEVDVCBhICogMyAkJCBJTU1V VEFCTEUgTEFOR1VBR0UgU1FMOwogUkVWT0tFIEFMTCBPTiBGVU5DVElPTiBnZjEoaW50KSBG Uk9NIFBVQkxJQzsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTJzIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgU1RPUkVEKTsK LUlOU0VSVCBJTlRPIGd0ZXN0MTJzIFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOworQ1JFQVRF IFRBQkxFIGd0ZXN0MTJ2IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGdmMShiKSkgVklSVFVBTCk7CitJTlNFUlQgSU5UTyBndGVzdDEy diBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKIEdSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rl c3QxMnMgVE8gcmVncmVzc191c2VyMTE7CiAKIFNFVCBST0xFIHJlZ3Jlc3NfdXNlcjExOwot U0VMRUNUIGEsIGIgRlJPTSBndGVzdDExczsgIC0tIG5vdCBhbGxvd2VkCi1TRUxFQ1QgYSwg YyBGUk9NIGd0ZXN0MTFzOyAgLS0gYWxsb3dlZAorU0VMRUNUIGEsIGIgRlJPTSBndGVzdDEx djsgIC0tIG5vdCBhbGxvd2VkCitTRUxFQ1QgYSwgYyBGUk9NIGd0ZXN0MTF2OyAgLS0gYWxs b3dlZAogU0VMRUNUIGdmMSgxMCk7ICAtLSBub3QgYWxsb3dlZAotU0VMRUNUIGEsIGMgRlJP TSBndGVzdDEyczsgIC0tIGFsbG93ZWQKK1NFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnY7ICAt LSBub3QgYWxsb3dlZDsgVE9ETzogb3VnaHQgdG8gYmUgYWxsb3dlZAogUkVTRVQgUk9MRTsK IAogRFJPUCBGVU5DVElPTiBnZjEoaW50KTsgIC0tIGZhaWwKLURST1AgVEFCTEUgZ3Rlc3Qx MXMsIGd0ZXN0MTJzOworRFJPUCBUQUJMRSBndGVzdDExdiwgZ3Rlc3QxMnY7CiBEUk9QIEZV TkNUSU9OIGdmMShpbnQpOwogRFJPUCBVU0VSIHJlZ3Jlc3NfdXNlcjExOwogCiAtLSBjaGVj ayBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIENIRUNLIChiIDwg NTApKTsKK0NSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgQ0hFQ0sgKGIgPCA1MCkpOwog SU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgxMCk7ICAtLSBvawogSU5TRVJUIElO VE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgzMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiAK IEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMg KGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogQUxURVIgVEFCTEUgZ3Rlc3Qy MCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sKIAot Q1JFQVRFIFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg VklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYSAoYSkgVkFMVUVTICgxMCk7CiBJTlNF UlQgSU5UTyBndGVzdDIwYSAoYSkgVkFMVUVTICgzMCk7CiBBTFRFUiBUQUJMRSBndGVzdDIw YSBBREQgQ0hFQ0sgKGIgPCA1MCk7ICAtLSBmYWlscyBvbiBleGlzdGluZyByb3cKIAotQ1JF QVRFIFRBQkxFIGd0ZXN0MjBiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMGIgKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDIwYiAoYSkgVkFMVUVTICgxMCk7CiBJTlNFUlQg SU5UTyBndGVzdDIwYiAoYSkgVkFMVUVTICgzMCk7CiBBTFRFUiBUQUJMRSBndGVzdDIwYiBB REQgQ09OU1RSQUlOVCBjaGsgQ0hFQ0sgKGIgPCA1MCkgTk9UIFZBTElEOwogQUxURVIgVEFC TEUgZ3Rlc3QyMGIgVkFMSURBVEUgQ09OU1RSQUlOVCBjaGs7ICAtLSBmYWlscyBvbiBleGlz dGluZyByb3cKIAotLS0gbm90LW51bGwgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVz dDIxYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51 bGxpZihhLCAwKSkgU1RPUkVEIE5PVCBOVUxMKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChh KSBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMg KDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAorLS0gbm90LW51bGwgY29uc3RyYWludHMg KGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkKQorQ1JFQVRFIFRBQkxFIGd0ZXN0MjFhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDAp KSBWSVJUVUFMIE5PVCBOVUxMKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWEgKGEpIFZBTFVF UyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgwKTsg IC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjFiIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDAp KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjFiIChhIGludCBQUklNQVJZIEtFWSwg YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDApKSBWSVJUVUFMKTsKIEFM VEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIFNFVCBOT1QgTlVMTDsKLUlOU0VS VCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0 ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAorLS1JTlNF UlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCistLUlOU0VSVCBJTlRP IGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAogQUxU RVIgVEFCTEUgZ3Rlc3QyMWIgQUxURVIgQ09MVU1OIGIgRFJPUCBOT1QgTlVMTDsKLUlOU0VS VCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gb2sgbm93CistLUlOU0VSVCBJ TlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDApOyAgLS0gb2sgbm93CiAKIC0tIGluZGV4IGNv bnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikgU1RPUkVEIFVOSVFVRSk7Ci1JTlNF UlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDIpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFM VUVTICgzKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoNCk7Ci1DUkVBVEUgVEFC TEUgZ3Rlc3QyMmIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8gMikg U1RPUkVELCBQUklNQVJZIEtFWSAoYSwgYikpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFM VUVTICgyKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CitDUkVBVEUgVEFC TEUgZ3Rlc3QyMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhIC8gMikgVklSVFVBTCBVTklRVUUpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYSBW QUxVRVMgKDIpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDMpOworLS1JTlNF UlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjJiIChh IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFZJUlRVQUwsIFBSSU1B UlkgS0VZIChhLCBiKSk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7Cist LUlOU0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CiAKIC0tIGluZGV4ZXMKLUNSRUFU RSBUQUJMRSBndGVzdDIyYyAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX2JfaWR4IE9OIGd0ZXN0MjJj IChiKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAoKGIg KiAzKSk7Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfcHJlZF9pZHggT04gZ3Rlc3QyMmMgKGEp IFdIRVJFIGIgPiAwOwotXGQgZ3Rlc3QyMmMKLQotSU5TRVJUIElOVE8gZ3Rlc3QyMmMgVkFM VUVTICgxKSwgKDIpLCAoMyk7Ci1TRVQgZW5hYmxlX3NlcXNjYW4gVE8gb2ZmOwotU0VUIGVu YWJsZV9iaXRtYXBzY2FuIFRPIG9mZjsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hF UkUgYiA9IDQ7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMg V0hFUkUgYiAqIDMgPSA2OwotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9 IDY7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUg YSA9IDEgQU5EIGIgPiAwOwotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBB TkQgYiA+IDA7Ci0KLUFMVEVSIFRBQkxFIGd0ZXN0MjJjIEFMVEVSIENPTFVNTiBiIFNFVCBF WFBSRVNTSU9OIEFTIChhICogNCk7Ci1BTkFMWVpFIGd0ZXN0MjJjOwotRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OwotU0VMRUNUICog RlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOwotU0VMRUNUICogRlJPTSBndGVz dDIyYyBXSEVSRSBiICogMyA9IDEyOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVNFTEVDVCAqIEZST00gZ3Rl c3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotUkVTRVQgZW5hYmxlX3NlcXNjYW47Ci1S RVNFVCBlbmFibGVfYml0bWFwc2NhbjsKK0NSRUFURSBUQUJMRSBndGVzdDIyYyAoYSBpbnQs IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKKy0tQ1JFQVRF IElOREVYIGd0ZXN0MjJjX2JfaWR4IE9OIGd0ZXN0MjJjIChiKTsKKy0tQ1JFQVRFIElOREVY IGd0ZXN0MjJjX2V4cHJfaWR4IE9OIGd0ZXN0MjJjICgoYiAqIDMpKTsKKy0tQ1JFQVRFIElO REVYIGd0ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4gMDsKKy0t XGQgZ3Rlc3QyMmMKKworLS1JTlNFUlQgSU5UTyBndGVzdDIyYyBWQUxVRVMgKDEpLCAoMiks ICgzKTsKKy0tU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKKy0tU0VUIGVuYWJsZV9iaXRt YXBzY2FuIFRPIG9mZjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0 ZXN0MjJjIFdIRVJFIGIgPSA0OworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIg PSA0OworLS1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hF UkUgYiAqIDMgPSA2OworLS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0g NjsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJF IGEgPSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0g MSBBTkQgYiA+IDA7CisKKy0tQUxURVIgVEFCTEUgZ3Rlc3QyMmMgQUxURVIgQ09MVU1OIGIg U0VUIEVYUFJFU1NJT04gQVMgKGEgKiA0KTsKKy0tQU5BTFlaRSBndGVzdDIyYzsKKy0tRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4Owor LS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA4OworLS1FWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKKy0tU0VM RUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOworLS1FWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwor LS1TRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKKy0tUkVT RVQgZW5hYmxlX3NlcXNjYW47CistLVJFU0VUIGVuYWJsZV9iaXRtYXBzY2FuOwogCiAtLSBm b3JlaWduIGtleXMKIENSRUFURSBUQUJMRSBndGVzdDIzYSAoeCBpbnQgUFJJTUFSWSBLRVks IHkgaW50KTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwgMTEpLCAoMiwgMjIp LCAoMywgMzMpOworLS1JTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxVRVMgKDEsIDExKSwgKDIs IDIyKSwgKDMsIDMzKTsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVO Q0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgotQ1JFQVRF IFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBERUxF VEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IKK0NSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFM IFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIFVQREFURSBDQVNDQURFKTsgIC0tIGVycm9y CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4 KSBPTiBERUxFVEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0 MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSk7Ci1cZCBndGVzdDIzYgorQ1JF QVRFIFRBQkxFIGd0ZXN0MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOwor LS1cZCBndGVzdDIzYgogCi1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0g b2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjNiIFZBTFVFUyAoNSk7ICAtLSBlcnJvcgotQUxURVIg VEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiA1 KTsgLS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBF WFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNiIFZB TFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDUpOyAg LS0gZXJyb3IKKy0tQUxURVIgVEFCTEUgZ3Rlc3QyM2IgQUxURVIgQ09MVU1OIGIgU0VUIEVY UFJFU1NJT04gQVMgKGEgKiA1KTsgLS0gZXJyb3IKKy0tQUxURVIgVEFCTEUgZ3Rlc3QyM2Ig QUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxKTsgLS0gb2sKIAotRFJP UCBUQUJMRSBndGVzdDIzYjsKLURST1AgVEFCTEUgZ3Rlc3QyM2E7CistLURST1AgVEFCTEUg Z3Rlc3QyM2I7CistLURST1AgVEFCTEUgZ3Rlc3QyM2E7CiAKLUNSRUFURSBUQUJMRSBndGVz dDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyKSBTVE9SRUQs IFBSSU1BUlkgS0VZICh5KSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzcCBWQUxVRVMgKDEpLCAo MiksICgzKTsKK0NSRUFURSBUQUJMRSBndGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKHggKiAyKSBWSVJUVUFMLCBQUklNQVJZIEtFWSAoeSkpOworLS1JTlNF UlQgSU5UTyBndGVzdDIzcCBWQUxVRVMgKDEpLCAoMiksICgzKTsKIAogQ1JFQVRFIFRBQkxF IGd0ZXN0MjNxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgUkVGRVJFTkNFUyBndGVzdDIz cCAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgxLCAyKTsgIC0tIG9rCi1J TlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IKKy0tSU5TRVJU IElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgxLCAyKTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0 ZXN0MjNxIFZBTFVFUyAoMiwgNSk7ICAtLSBlcnJvcgogCiAtLSBkb21haW5zCiBDUkVBVEUg RE9NQUlOIGd0ZXN0ZG9tYWluMSBBUyBpbnQgQ0hFQ0sgKFZBTFVFIDwgMTApOwotQ1JFQVRF IFRBQkxFIGd0ZXN0MjQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjQg KGEpIFZBTFVFUyAoNCk7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVT ICg2KTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyNCAoYSBpbnQgUFJJTUFSWSBL RVksIGIgZ3Rlc3Rkb21haW4xIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFM KTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNCAoYSkgVkFMVUVTICg0KTsgIC0tIG9rCistLUlO U0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRFIFRZ UEUgZ3Rlc3Rkb21haW4xcmFuZ2UgQVMgcmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRvbWFpbjEp OworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRyIChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRv bWFpbjFyYW5nZSBHRU5FUkFURUQgQUxXQVlTIEFTIChndGVzdGRvbWFpbjFyYW5nZShhLCBh ICsgNSkpIFZJUlRVQUwpOworLS1JTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg0 KTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDYpOyAgLS0g ZXJyb3IKIAogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkKIENS RUFURSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVnZXIsIGYyIHRleHQsIGYzIGJpZ2lu dCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElP TlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUg Z3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZ UyBBUyAoZjIgKjIpIFZJUlRVQUwpOwogRFJPUCBUWVBFIGd0ZXN0X3R5cGUgQ0FTQ0FERTsK IAogLS0gcGFydGl0aW9uaW5nIGNhc2VzCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFyZW50IChm MSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCkgUEFSVElUSU9OIEJZIFJB TkdFIChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9GIGd0ZXN0 X3BhcmVudCAoCi0gICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgU1RPUkVECisgICAgZjMgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMg KGYyICogMikgVklSVFVBTAogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8g KCcyMDE2LTA4LTAxJyk7IC0tIGVycm9yCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYx IGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGYyICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9jaGlsZCAoZjEgZGF0 ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo ZjIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFS VElUSU9OIGd0ZXN0X2NoaWxkIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAo JzIwMTYtMDgtMDEnKTsgLS0gZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3RfcGFyZW50LCBndGVz dF9jaGlsZDsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVM TCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBT VE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3Bh cmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsK IENSRUFURSBUQUJMRSBndGVzdF9jaGlsZCBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50CiAg IEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgIC0t IGluaGVyaXRzIGdlbiBleHByCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQyIFBBUlRJVElP TiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxX QVlTIEFTIChmMiAqIDIyKSBTVE9SRUQgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgorICAgIGYz IFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSBWSVJUVUFMICAt LSBvdmVycmlkZXMgZ2VuIGV4cHIKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOC0wMScp IFRPICgnMjAxNi0wOS0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJ T04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBERUZBVUxUIDQyICAtLSBlcnJvcgpAQCAt NDE3LDYgKzQzOCw5IEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgUEFSVElUSU9OIE9G IGd0ZXN0X3BhcmVudCAoCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBP RiBndGVzdF9wYXJlbnQgKAogICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlT IEFTIElERU5USVRZICAtLSBlcnJvcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAx JykgVE8gKCcyMDE2LTEwLTAxJyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJ VElPTiBPRiBndGVzdF9wYXJlbnQgKAorICAgIGYzIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYy ICogMikgU1RPUkVEICAtLSBlcnJvcgorKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAx JykgVE8gKCcyMDE2LTEwLTAxJyk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBk YXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCk7CiBBTFRFUiBUQUJMRSBndGVz dF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9N ICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgogRFJPUCBUQUJM RSBndGVzdF9jaGlsZDM7CkBAIC00MjcsNiArNDUxLDkgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0 X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJB VEVEIEFMV0EKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0 ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEw LTAxJyk7IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X2NoaWxkMzsKIENSRUFURSBUQUJM RSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMpIFNUT1JFRCk7CitBTFRFUiBUQUJMRSBn dGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBG Uk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOyAtLSBlcnJvcgorRFJPUCBU QUJMRSBndGVzdF9jaGlsZDM7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRl IE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChm MiAqIDMzKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFS VElUSU9OIGd0ZXN0X2NoaWxkMyBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8g KCcyMDE2LTEwLTAxJyk7CiBcZCBndGVzdF9jaGlsZAogXGQgZ3Rlc3RfY2hpbGQyCkBAIC00 MzUsNiArNDYyLDkgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1Qg TlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0EKIElOU0VSVCBJTlRP IGd0ZXN0X3BhcmVudCAoZjEsIGYyKSBWQUxVRVMgKCcyMDE2LTA3LTE1JywgMik7CiBJTlNF UlQgSU5UTyBndGVzdF9wYXJlbnQgKGYxLCBmMikgVkFMVUVTICgnMjAxNi0wOC0xNScsIDMp OwogU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRF UiBCWSAxLCAyLCAzOworU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0 X2NoaWxkIE9SREVSIEJZIDEsIDIsIDM7CitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAq IEZST00gZ3Rlc3RfY2hpbGQyIE9SREVSIEJZIDEsIDIsIDM7ICAtLSB1c2VzIGNoaWxkJ3Mg Z2VuZXJhdGlvbiBleHByZXNzaW9uLCBub3QgcGFyZW50J3MKK1NFTEVDVCB0YWJsZW9pZDo6 cmVnY2xhc3MsICogRlJPTSBndGVzdF9jaGlsZDMgT1JERVIgQlkgMSwgMiwgMzsKIFVQREFU RSBndGVzdF9wYXJlbnQgU0VUIGYxID0gZjEgKyA2MCBXSEVSRSBmMiA9IDE7CiBTRUxFQ1Qg dGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gZ3Rlc3RfcGFyZW50IE9SREVSIEJZIDEsIDIs IDM7CiAKQEAgLTQ1NywyMSArNDg3LDIxIEBAIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdB CiAtLSB3ZSBsZWF2ZSB0aGVzZSB0YWJsZXMgYXJvdW5kIGZvciBwdXJwb3NlcyBvZiB0ZXN0 aW5nIGR1bXAvcmVsb2FkL3VwZ3JhZGUKIAogLS0gZ2VuZXJhdGVkIGNvbHVtbnMgaW4gcGFy dGl0aW9uIGtleSAobm90IGFsbG93ZWQpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYzKTsKLUNSRUFU RSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBm MyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElP TiBCWSBSQU5HRSAoKGYzICogMykpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChm MSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlT IEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMpOworQ1JFQVRF IFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYz IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElP TiBCWSBSQU5HRSAoKGYzICogMykpOwogCiAtLSBBTFRFUiBUQUJMRSAuLi4gQUREIENPTFVN TgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjUgKGEgaW50IFBSSU1BUlkgS0VZKTsKIElOU0VSVCBJ TlRPIGd0ZXN0MjUgVkFMVUVTICgzKSwgKDQpOwotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQg Q09MVU1OIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIEFMVEVS IENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CitBTFRFUiBUQUJMRSBndGVz dDI1IEFERCBDT0xVTU4gYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRV QUwsIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CiBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjUgT1JERVIgQlkgYTsKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENP TFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgU1RPUkVEOyAgLS0gZXJy b3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxX QVlTIEFTICh6ICogNCkgU1RPUkVEOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0MjUg QUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogNCkgVklSVFVBTDsg IC0tIGVycm9yCitBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4geCBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoeiAqIDQpIFZJUlRVQUw7ICAtLSBlcnJvcgogQUxURVIgVEFCTEUg Z3Rlc3QyNSBBREQgQ09MVU1OIGMgaW50IERFRkFVTFQgNDIsCi0gIEFERCBDT0xVTU4geCBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDQpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB4 IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkgVklSVFVBTDsKIEFMVEVSIFRBQkxF IGd0ZXN0MjUgQUREIENPTFVNTiBkIGludCBERUZBVUxUIDEwMTsKIEFMVEVSIFRBQkxFIGd0 ZXN0MjUgQUxURVIgQ09MVU1OIGQgU0VUIERBVEEgVFlQRSBmbG9hdDgsCi0gIEFERCBDT0xV TU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQpIFNUT1JFRDsKKyAgQURE IENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChkICogNCkgVklSVFVBTDsK IFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwogXGQgZ3Rlc3QyNQogCkBAIC00 NzksNyArNTA5LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjUgKGEgaW50IFBSSU1BUlkgS0VZ KTsKIENSRUFURSBUQUJMRSBndGVzdDI3ICgKICAgICBhIGludCwKICAgICBiIGludCwKLSAg ICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgU1RPUkVECisgICAg eCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRVQUwKICk7CiBJ TlNFUlQgSU5UTyBndGVzdDI3IChhLCBiKSBWQUxVRVMgKDMsIDcpLCAoNCwgMTEpOwogQUxU RVIgVEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7ICAtLSBlcnJvcgpA QCAtNDkzLDcgKzUyMyw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI3ICgKICAgRFJPUCBDT0xV TU4geCwKICAgQUxURVIgQ09MVU1OIGEgVFlQRSBiaWdpbnQsCiAgIEFMVEVSIENPTFVNTiBi IFRZUEUgYmlnaW50LAotICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKChhICsgYikgKiAyKSBTVE9SRUQ7CisgIEFERCBDT0xVTU4geCBiaWdpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFZJUlRVQUw7CiBcZCBndGVzdDI3CiAtLSBJ ZGVhbGx5IHlvdSBjb3VsZCBqdXN0IGRvIHRoaXMsIGJ1dCBub3QgdG9kYXkgKGFuZCBzaG91 bGQgeCBjaGFuZ2UgdHlwZT8pOgogQUxURVIgVEFCTEUgZ3Rlc3QyNwpAQCAtNTA1LDcgKzUz NSw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI3ICgKIC0tIEFMVEVSIFRBQkxFIC4uLiBBTFRF UiBDT0xVTU4gLi4uIERST1AgRVhQUkVTU0lPTgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjkgKAog ICAgIGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAogKTsK IElOU0VSVCBJTlRPIGd0ZXN0MjkgKGEpIFZBTFVFUyAoMyksICg0KTsKIFNFTEVDVCAqIEZS T00gZ3Rlc3QyOTsKQEAgLTUzMiw3ICs1NjIsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyOSAo CiAtLSB3aXRoIGluaGVyaXRhbmNlCiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBp bnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAg IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogQ1JFQVRF IFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBn dGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsKQEAgLTU0MSw3ICs1NzEs NyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsKIERS T1AgVEFCTEUgZ3Rlc3QzMCBDQVNDQURFOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzAgKAogICAg IGEgaW50LAotICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQK KyAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAogKTsKIENS RUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMgKGd0ZXN0MzApOwogQUxURVIgVEFC TEUgT05MWSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsgIC0tIGVy cm9yCkBAIC01NDksMTAgKzU3OSwyMiBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElO SEVSSVRTIChndGVzdDMwKTsKIFxkIGd0ZXN0MzBfMQogQUxURVIgVEFCTEUgZ3Rlc3QzMF8x IEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsgIC0tIGVycm9yCiAKKy0tIGNvbXBv c2l0ZSB0eXBlIGRlcGVuZGVuY2llcworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBpbnQs IGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSBWSVJUVUFMLCBjIHRleHQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMiAoeCBpbnQsIHkgZ3Rlc3QzMV8xKTsKK0FMVEVS IFRBQkxFIGd0ZXN0MzFfMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZhcmNoYXI7ICAtLSBmYWls cworRFJPUCBUQUJMRSBndGVzdDMxXzEsIGd0ZXN0MzFfMjsKKworLS0gQ2hlY2sgaXQgZm9y IGEgcGFydGl0aW9uZWQgdGFibGUsIHRvbworQ1JFQVRFIFRBQkxFIGd0ZXN0MzFfMSAoYSBp bnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSBWSVJUVUFMLCBjIHRl eHQpIFBBUlRJVElPTiBCWSBMSVNUIChhKTsKK0NSRUFURSBUQUJMRSBndGVzdDMxXzIgKHgg aW50LCB5IGd0ZXN0MzFfMSk7CitBTFRFUiBUQUJMRSBndGVzdDMxXzEgQUxURVIgQ09MVU1O IGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKK0RST1AgVEFCTEUgZ3Rlc3QzMV8xLCBndGVz dDMxXzI7CisKIC0tIHRyaWdnZXJzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNiAoCiAgICAgYSBp bnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFM CiApOwogCiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dlcl9mdW5jKCkgUkVUVVJOUyB0 cmlnZ2VyCkBAIC02MTQsNiArNjU2LDkgQEAgQ1JFQVRFIFRSSUdHRVIgZ3Rlc3Q0IEFGVEVS IElOU0VSVCBPUiBVUERBVEUgT04gZ3Rlc3QyNgogRFJPUCBUUklHR0VSIGd0ZXN0MiBPTiBn dGVzdDI2OwogRFJPUCBUUklHR0VSIGd0ZXN0MyBPTiBndGVzdDI2OwogCistLSBjaGVjayBk aXNhbGxvd2VkIG1vZGlmaWNhdGlvbiBvZiB2aXJ0dWFsIGNvbHVtbnMKKy0tIFRPRE8KKwog LS0gQ2hlY2sgdGhhdCBhbiBVUERBVEUgb2YgImEiIGZpcmVzIHRoZSB0cmlnZ2VyIGZvciBV UERBVEUgT0YgYiwgcGVyCiAtLSBTUUwgc3RhbmRhcmQuCiBDUkVBVEUgRlVOQ1RJT04gZ3Rl c3RfdHJpZ2dlcl9mdW5jMygpIFJFVFVSTlMgdHJpZ2dlcgpAQCAtNjY3LDcgKzcxMiw3IEBA IENSRUFURSBUQUJMRSBndGVzdDI4YSAoCiAgIGEgaW50LAogICBiIGludCwKICAgYyBpbnQs Ci0gIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBTVE9SRUQKKyAgeCBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwKICk7CiAKIEFMVEVSIFRBQkxF IGd0ZXN0MjhhIERST1AgQ09MVU1OIGE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMTFfZ2VuZXJhdGVkLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDEx X2dlbmVyYXRlZC5wbAppbmRleCA4YjJlNWY0NzA4ZS4uZmFlZTE1NWRhYTcgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwKKysrIGIvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dlbmVyYXRlZC5wbApAQCAtMjEsMTEgKzIxLDEx IEBACiBteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIg LiAnIGRibmFtZT1wb3N0Z3Jlcyc7CiAKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCi0JIkNSRUFURSBUQUJMRSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCkiCisJIkNSRUFURSBUQUJM RSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFZJUlRV QUwpIgogKTsKIAogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0J IkNSRUFURSBUQUJMRSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQsIGMgaW50KSIKKwkiQ1JFQVRFIFRBQkxFIHRh YjEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MjIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMzKSBWSVJUVUFM LCBkIGludCkiCiApOwogCiAjIGRhdGEgZm9yIGluaXRpYWwgc3luYwpAQCAtNDIsMTAgKzQy LDEwIEBACiAjIFdhaXQgZm9yIGluaXRpYWwgc3luYyBvZiBhbGwgc3Vic2NyaXB0aW9ucwog JG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7CiAKLW15ICRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCBhLCBiIEZST00gdGFiMSIpOwotaXMoICRyZXN1bHQsIHFxKDF8MjIKLTJ8NDQKLTN8NjYp LCAnZ2VuZXJhdGVkIGNvbHVtbnMgaW5pdGlhbCBzeW5jJyk7CitteSAkcmVzdWx0ID0gJG5v ZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgYSwgYiwgYyBG Uk9NIHRhYjEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxfDIyfDMzCisyfDQ0fDY2CiszfDY2fDk5 KSwgJ2dlbmVyYXRlZCBjb2x1bW5zIGluaXRpYWwgc3luYycpOwogCiAjIGRhdGEgdG8gcmVw bGljYXRlCiAKQEAgLTU2LDExICs1NiwxMSBAQAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCdzdWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMSIpOwotaXMoICRyZXN1bHQs IHFxKDF8MjJ8Ci0yfDQ0fAotM3w2NnwKLTR8ODh8Ci02fDEzMnwpLCAnZ2VuZXJhdGVkIGNv bHVtbnMgcmVwbGljYXRlZCcpOworaXMoICRyZXN1bHQsIHFxKDF8MjJ8MzN8CisyfDQ0fDY2 fAorM3w2Nnw5OXwKKzR8ODh8MTMyfAorNnwxMzJ8MTk4fCksICdnZW5lcmF0ZWQgY29sdW1u cyByZXBsaWNhdGVkJyk7CiAKICMgdHJ5IGl0IHdpdGggYSBzdWJzY3JpYmVyLXNpZGUgdHJp Z2dlcgogCkBAIC02OSw3ICs2OSw3IEBACiBDUkVBVEUgRlVOQ1RJT04gdGFiMV90cmlnZ2Vy X2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIKIExBTkdVQUdFIHBscGdzcWwgQVMgJCQKIEJFR0lO Ci0gIE5FVy5jIDo9IE5FVy5hICsgMTA7CisgIE5FVy5kIDo9IE5FVy5hICsgMTA7CiAgIFJF VFVSTiBORVc7CiBFTkQgJCQ7CiAKQEAgLTg4LDEyICs4OCwxMiBAQCBCRUdJTgogCiAkcmVz dWx0ID0KICAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgKiBGUk9NIHRhYjEgT1JERVIgQlkgMSIpOwotaXMoICRyZXN1bHQsIHFxKDF8MjJ8Ci0y fDQ0fAotM3w2NnwKLTR8ODh8Ci02fDEzMnwKLTh8MTc2fDE4Ci05fDE5OHwxOSksICdnZW5l cmF0ZWQgY29sdW1ucyByZXBsaWNhdGVkIHdpdGggdHJpZ2dlcicpOworaXMoICRyZXN1bHQs IHFxKDF8MjJ8MzN8CisyfDQ0fDY2fAorM3w2Nnw5OXwKKzR8ODh8MTMyfAorNnwxMzJ8MTk4 fAorOHwxNzZ8MjY0fDE4Cis5fDE5OHwyOTd8MTkpLCAnZ2VuZXJhdGVkIGNvbHVtbnMgcmVw bGljYXRlZCB3aXRoIHRyaWdnZXInKTsKIAogZG9uZV90ZXN0aW5nKCk7CgpiYXNlLWNvbW1p dDogN2Q4NWQ4N2Y0ZDVjMzVmZDViMmQzOGFkYWVmNjNkZmJmYTU0MmNjYwotLSAKMi40Ny4w Cgo= --------------3saYgba2qETkQSy2YgsymdsF--