Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pSqq5-0007Rh-B5 for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Feb 2023 02:51:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pSqq3-00081z-6x for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Feb 2023 02:51:07 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pSqq2-00081p-HT for pgsql-hackers@lists.postgresql.org; Fri, 17 Feb 2023 02:51:06 +0000 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pSqpu-0008Ve-Lf for pgsql-hackers@lists.postgresql.org; Fri, 17 Feb 2023 02:51:06 +0000 Received: by mail-ed1-x532.google.com with SMTP id ee31so702853edb.3 for ; Thu, 16 Feb 2023 18:50:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=FoSa+OgQ04qGo2xeb57m5p2NDyhfp8D8RUE0eLcjTgI=; b=mZqEnMdDavVdV6dut1itE4WJ7Sx3dVr1JgrAWY6PhmXwGToRXXLB+HU3MMiV2uKut3 qo+TSGHjqJcix0BI+pCezFOdAyvth57Y510PX0Z1KYt5rvXp69EQPXi7rTHzbn1yQQUt J6EDBn/TrX0SGMRTjH0ADWlxeLU06qQsqtLKtYplQuqTmrHPTF0F2LcQScoJeYC5dwTZ M1s1tjEH6BfurYFMGtaLN453c0cAXdC47bFu1X1vgyWcZ1dd1VSUDwAGzX397D57hq5n ghhjFL2/L77gsHd7VsZlh/bBgItiqIgZZO98mWIckboPNAmja1WRi+YOhbObGgWqEAvP BNFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:to:from:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=FoSa+OgQ04qGo2xeb57m5p2NDyhfp8D8RUE0eLcjTgI=; b=tNszxS9EQ0vemQRyeUNvrMsyt618YpcBlNgwU0w9mKU9JIetFGSes3hw0czk1b1rMv O3+Jhs90/L+Jf7HNkiFkXss7g6Fx/rabVffma+ZJS7YFsWKeoiH77wVRNWQzOdy+xRsB DUP94nLSDvEIE8vYWtmFVixh1zrJues9qwinIupVEBDMpfJejSsoWMX+lFVawsDd+LeO uYm2zlxZ8OOIYvHu7M+b7qXWCAWYPvk1Bf20TpJ7ii/UJefGV/9n9ZwViw8YgFiVBnEI Ek+69VcdmDIrqYVQzvtXjsWuTofMY0t0KJgYUi+OjwL1OI+LD99hHY9AbtTGKHPHLbbv CpDg== X-Gm-Message-State: AO0yUKUcZnoUhcjTcGV5l+RnSEWOZiBPhwvFp4kEUFvtEDes1OwsuUWw ud7Kg8kFVOLeDx6lOf4ivW7F7kicSnBRV11s2JYHTdCYDaCBZHRQ9x3rIqyltblQsnLKMcPCWB2 g0ymwoYEiTDs0PiYSyyaCdPvB0mNPVmKwbMoptRUqve9S+fJuwsOz7lGToNyMwVlzaJypezDLL6 VuDg5gtDmz4zRYp7uFOWamXWeAakF1ueP2Dh8EyV4tjKsRRmgpSFXJAL5sAZHHkYxKVhBRONfMb wsQO9t0CzC1MtHuhGl+eMPZQhXyNbWKgRRIs6MeyFORt03m1Te0ZFpQ X-Google-Smtp-Source: AK7set9mJn4c9Bcv5lyL1twVN07kh5lMcdjir776XCdOYVPBYNn82QplymQWyoksVaY8EVk1JgJa7g== X-Received: by 2002:a17:906:198f:b0:8b1:77bf:5b9f with SMTP id g15-20020a170906198f00b008b177bf5b9fmr2278769ejd.13.1676602256774; Thu, 16 Feb 2023 18:50:56 -0800 (PST) Received: from [10.137.0.17] (ip-86-49-228-162.bb.vodafone.cz. [86.49.228.162]) by smtp.gmail.com with ESMTPSA id gy26-20020a170906f25a00b008b14cbb46e2sm1508391ejb.145.2023.02.16.18.50.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Feb 2023 18:50:56 -0800 (PST) Content-Type: multipart/mixed; boundary="------------EQljBVuNRDzcOLsmSlN0ELww" Message-ID: <57020b2e-d9c9-9bc7-4892-b36d9bb07563@enterprisedb.com> Date: Fri, 17 Feb 2023 03:50:54 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: BRIN indexes vs. SK_SEARCHARRAY (and preprocessing scan keys) Content-Language: en-US From: Tomas Vondra To: PostgreSQL Hackers References: <0e1f3350-c9cf-ab62-43a5-5dae314de89c@enterprisedb.com> In-Reply-To: <0e1f3350-c9cf-ab62-43a5-5dae314de89c@enterprisedb.com> X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 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. --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit cfbot identified a couple issues in the pathes: 1) not handling NULLs correctly (or rather at all). There was a FIXME, so I took this as a sign it's time to finally address that. 2) minmax-multi did not fully adopt the preprocessed values in the second part of the _consistent function The patches also add a bunch of regression tests to improve coverage. While adding those, I ran into an interesting behavior with BRIN bloom indexes. If you have such index on a bigint column, then this won't use the index: SELECT * FROM t WHERE b = 82; unless you cast the constant to bigint like this: SELECT * FROM t WHERE b = 82::bigint; I vaguely remember dealing with this while working on the bloom indexes, and concluding this is OK. But what's interesting is that with multiple values in the IN clause it works and this will use the index: SELECT * FROM t WHERE b IN (82, 83); That's a bit surprising. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0001-BRIN-bloom-cleanup-20230217.patch" Content-Disposition: attachment; filename="0001-BRIN-bloom-cleanup-20230217.patch" Content-Transfer-Encoding: base64 RnJvbSA4N2NmNzExMWY4NmM2YmNkODQ3ZmU3ZDAwMWQxYzI3ZjU4MmRjZjBlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogV2VkLCAxNSBGZWIgMjAyMyAxMjozOToyMyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMS85XSBCUklOIGJsb29tIGNsZWFudXAKCk1pbm9yIGNsZWFudXAgb2YgdGhlIEJS SU4gYmxvb20gY29kZSAtIHVzZSB0aGUgcHJvcGVyIGRhdGEgdHlwZSBmb3IgdGhlCmJvb2xl YW4gdmFyaWFibGUsIGFuZCBjb3JyZWN0IGNvbW1lbnQgY29waWVkIGZyb20gbWlubWF4Lgot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20uYyB8IDEyICsrKysrKy0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMKaW5kZXggZTQ5NTNhOWQzN2Iu LjZjNzE2OTI0ZmZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmlu X2Jsb29tLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCkBA IC01NzQsNyArNTc0LDcgQEAgYnJpbl9ibG9vbV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FS R1MpCiAJT2lkCQkJY29sbG9pZCA9IFBHX0dFVF9DT0xMQVRJT04oKTsKIAlBdHRyTnVtYmVy CWF0dG5vOwogCURhdHVtCQl2YWx1ZTsKLQlEYXR1bQkJbWF0Y2hlczsKKwlib29sCQltYXRj aGVzOwogCUZtZ3JJbmZvICAgKmZpbmZvOwogCXVpbnQzMgkJaGFzaFZhbHVlOwogCUJsb29t RmlsdGVyICpmaWx0ZXI7CkBAIC01ODQsNiArNTg0LDcgQEAgYnJpbl9ibG9vbV9jb25zaXN0 ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlBc3NlcnQoZmlsdGVyKTsKIAorCS8qIGFzc3Vt ZSBhbGwgc2NhbiBrZXlzIG1hdGNoICovCiAJbWF0Y2hlcyA9IHRydWU7CiAKIAlmb3IgKGtl eW5vID0gMDsga2V5bm8gPCBua2V5czsga2V5bm8rKykKQEAgLTYwMSw5ICs2MDIsOCBAQCBi cmluX2Jsb29tX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWNhc2UgQmxvb21F cXVhbFN0cmF0ZWd5TnVtYmVyOgogCiAJCQkJLyoKLQkJCQkgKiBJbiB0aGUgZXF1YWxpdHkg Y2FzZSAoV0hFUkUgY29sID0gc29tZXZhbCksIHdlIHdhbnQgdG8KLQkJCQkgKiByZXR1cm4g dGhlIGN1cnJlbnQgcGFnZSByYW5nZSBpZiB0aGUgbWluaW11bSB2YWx1ZSBpbiB0aGUKLQkJ CQkgKiByYW5nZSA8PSBzY2FuIGtleSwgYW5kIHRoZSBtYXhpbXVtIHZhbHVlID49IHNjYW4g a2V5LgorCQkJCSAqIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHBhZ2UgcmFuZ2Ug aWYgdGhlIGJsb29tIGZpbHRlcgorCQkJCSAqIHNlZW1zIHRvIGNvbnRhaW4gdGhlIHZhbHVl LgogCQkJCSAqLwogCQkJCWZpbmZvID0gYmxvb21fZ2V0X3Byb2NpbmZvKGJkZXNjLCBhdHRu bywgUFJPQ05VTV9IQVNIKTsKIApAQCAtNjE0LDcgKzYxNCw3IEBAIGJyaW5fYmxvb21fY29u c2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCiAJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVy ICVkIiwga2V5LT5za19zdHJhdGVneSk7Ci0JCQkJbWF0Y2hlcyA9IDA7CisJCQkJbWF0Y2hl cyA9IGZhbHNlOwogCQkJCWJyZWFrOwogCQl9CiAKQEAgLTYyMiw3ICs2MjIsNyBAQCBicmlu X2Jsb29tX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWJyZWFrOwogCX0KIAot CVBHX1JFVFVSTl9EQVRVTShtYXRjaGVzKTsKKwlQR19SRVRVUk5fQk9PTChtYXRjaGVzKTsK IH0KIAogLyoKLS0gCjIuMzkuMQoK --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0002-BRIN-minmax-multi-cleanup-20230217.patch" Content-Disposition: attachment; filename="0002-BRIN-minmax-multi-cleanup-20230217.patch" Content-Transfer-Encoding: base64 RnJvbSAzNWM5YTc2ZDc4YjNmMzJkYmVkNTI1MjcyMDZmZDc2YTc5MTc3MmY2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogV2VkLCAxNSBGZWIgMjAyMyAxMjo1Mzo0NyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMi85XSBCUklOIG1pbm1heC1tdWx0aSBjbGVhbnVwCgpXaGVuIGFzc2lnbmluZyB0 byBhIERhdHVtIHZhcmlhYmxlLCB1c2UgQm9vbEdldERhdHVtKCkgY29uc2lzdGVudGx5LgpT aW1ucGxpZnkgdGhlIGNvZGUgYnkgdXNpbmcgUEdfUkVUVVJOX0JPT0woKS4KLS0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jIHwgMTQgKysrKysrKy0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVs dGkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4X211bHRpLmMKaW5k ZXggMGFjZTYwMzViZWIuLjg1OWUwMDIyZmI0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9icmluL2JyaW5fbWlubWF4X211bHRpLmMKQEAgLTI2MjcsNyArMjYyNyw3IEBAIGJyaW5f bWlubWF4X211bHRpX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCUZtZ3JJ bmZvICAgKmNtcEZuOwogCiAJCQkJCQkvKiBieSBkZWZhdWx0IHRoaXMgcmFuZ2UgZG9lcyBu b3QgbWF0Y2ggKi8KLQkJCQkJCW1hdGNoZXMgPSBmYWxzZTsKKwkJCQkJCW1hdGNoZXMgPSBC b29sR2V0RGF0dW0oZmFsc2UpOwogCiAJCQkJCQkvKgogCQkJCQkJICogT3RoZXJ3aXNlLCBu ZWVkIHRvIGNvbXBhcmUgdGhlIG5ldyB2YWx1ZSB3aXRoCkBAIC0yNjU1LDcgKzI2NTUsNyBA QCBicmluX21pbm1heF9tdWx0aV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJ CQkgKiBXZSBoYXZlbid0IG1hbmFnZWQgdG8gZWxpbWluYXRlIHRoaXMgcmFuZ2UsIHNvCiAJ CQkJCQkgKiBjb25zaWRlciBpdCBtYXRjaGluZy4KIAkJCQkJCSAqLwotCQkJCQkJbWF0Y2hl cyA9IHRydWU7CisJCQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVtKHRydWUpOwogCiAJCQkJ CQlicmVhazsKIAkJCQkJfQpAQCAtMjY3MCw3ICsyNjcwLDcgQEAgYnJpbl9taW5tYXhfbXVs dGlfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQkJCWRlZmF1bHQ6CiAJCQkJCS8q IHNob3VsZG4ndCBoYXBwZW4gKi8KIAkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRl Z3kgbnVtYmVyICVkIiwga2V5LT5za19zdHJhdGVneSk7Ci0JCQkJCW1hdGNoZXMgPSAwOwor CQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVtKGZhbHNlKTsKIAkJCQkJYnJlYWs7CiAJCQl9 CiAKQEAgLTI2ODYsNyArMjY4Niw3IEBAIGJyaW5fbWlubWF4X211bHRpX2NvbnNpc3RlbnQo UEdfRlVOQ1RJT05fQVJHUykKIAkJICogaGF2ZSB3ZSBmb3VuZCBhIHJhbmdlIG1hdGNoaW5n IGFsbCBzY2FuIGtleXM/IGlmIHllcywgd2UncmUgZG9uZQogCQkgKi8KIAkJaWYgKG1hdGNo aW5nKQotCQkJUEdfUkVUVVJOX0RBVFVNKEJvb2xHZXREYXR1bSh0cnVlKSk7CisJCQlQR19S RVRVUk5fQk9PTCh0cnVlKTsKIAl9CiAKIAkvKgpAQCAtMjcyOSw3ICsyNzI5LDcgQEAgYnJp bl9taW5tYXhfbXVsdGlfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQkJCWRlZmF1 bHQ6CiAJCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KIAkJCQkJZWxvZyhFUlJPUiwgImlu dmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwga2V5LT5za19zdHJhdGVneSk7Ci0JCQkJCW1h dGNoZXMgPSAwOworCQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVtKGZhbHNlKTsKIAkJCQkJ YnJlYWs7CiAJCQl9CiAKQEAgLTI3NDMsMTAgKzI3NDMsMTAgQEAgYnJpbl9taW5tYXhfbXVs dGlfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCiAJCS8qIGhhdmUgd2UgZm91bmQg YSByYW5nZSBtYXRjaGluZyBhbGwgc2NhbiBrZXlzPyBpZiB5ZXMsIHdlJ3JlIGRvbmUgKi8K IAkJaWYgKG1hdGNoaW5nKQotCQkJUEdfUkVUVVJOX0RBVFVNKEJvb2xHZXREYXR1bSh0cnVl KSk7CisJCQlQR19SRVRVUk5fQk9PTCh0cnVlKTsKIAl9CiAKLQlQR19SRVRVUk5fREFUVU0o Qm9vbEdldERhdHVtKGZhbHNlKSk7CisJUEdfUkVUVVJOX0JPT0woZmFsc2UpOwogfQogCiAv KgotLSAKMi4zOS4xCgo= --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0003-Introduce-bloom_filter_size-20230217.patch" Content-Disposition: attachment; filename="0003-Introduce-bloom_filter_size-20230217.patch" Content-Transfer-Encoding: base64 RnJvbSA2NzUwYjBjNmJhODcyZGQyOWNiNzJhNzJhMjBhOWI0ZWYyODMxYzkyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogVHVlLCAxNCBGZWIgMjAyMyAyMDoyODowOCArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMy85XSBJbnRyb2R1Y2UgYmxvb21fZmlsdGVyX3NpemUKCldyYXAgY2FsY3VsYXRp b24gb2YgQmxvb20gZmlsdGVyIHBhcmFtZXRlcnMgKGZyb20gbmRpc3RpbmN0IGFuZCBmYWxz ZQpwb3NpdGl2ZSByYXRlKSBpbnRvIGEgZnVuY3Rpb24uIFdlJ2xsIG5lZWQgdG8gZG8gdGhp cyBjYWxjdWxhdGlvbiBpbgpvdGhlciBwbGFjZXMsIGFuZCB0aGlzIG1ha2VzIGl0IG1vcmUg Y29uc2lzdGVudC4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2Jsb29tLmMg fCA2MyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDcg aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4v YnJpbl9ibG9vbS5jCmluZGV4IDZjNzE2OTI0ZmZmLi40ZmY4MGFlYjBjYyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9icmluL2JyaW5fYmxvb20uYwpAQCAtMjU5LDYgKzI1OSw0OCBAQCB0eXBl ZGVmIHN0cnVjdCBCbG9vbUZpbHRlcgogCWNoYXIJCWRhdGFbRkxFWElCTEVfQVJSQVlfTUVN QkVSXTsKIH0gQmxvb21GaWx0ZXI7CiAKKy8qCisgKiBibG9vbV9maWx0ZXJfc2l6ZQorICoJ CUNhbGN1bGF0ZSBCbG9vbSBmaWx0ZXIgcGFyYW1ldGVycyAobmJpdHMsIG5ieXRlcywgbmhh c2hlcykuCisgKgorICogR2l2ZW4gZXhwZWN0ZWQgbnVtYmVyIG9mIGRpc3RpbmN0IHZhbHVl cyBhbmQgZGVzaXJlZCBmYWxzZSBwb3NpdGl2ZSByYXRlLAorICogY2FsY3VsYXRlcyB0aGUg b3B0aW1hbCBwYXJhbWV0ZXJzIG9mIHRoZSBCbG9vbSBmaWx0ZXIuCisgKgorICogVGhlIHJl c3VsdGluZyBwYXJhbWV0ZXJzIGFyZSByZXR1cm5lZCB0aHJvdWdoIG5ieXRlc3AgKG51bWJl ciBvZiBieXRlcyksCisgKiBuYml0c3AgKG51bWJlciBvZiBiaXRzKSBhbmQgbmhhc2hlc3Ag KG51bWJlciBvZiBoYXNoIGZ1bmN0aW9ucykuIElmIGEKKyAqIHBvaW50ZXIgaXMgTlVMTCwg dGhlIHBhcmFtZXRlciBpcyBub3QgcmV0dXJuZWQuCisgKi8KK3N0YXRpYyB2b2lkCitibG9v bV9maWx0ZXJfc2l6ZShpbnQgbmRpc3RpbmN0LCBkb3VibGUgZmFsc2VfcG9zaXRpdmVfcmF0 ZSwKKwkJCQkgIGludCAqbmJ5dGVzcCwgaW50ICpuYml0c3AsIGludCAqbmhhc2hlc3ApCit7 CisJZG91YmxlCWs7CisJaW50CQluYml0cywKKwkJCW5ieXRlczsKKworCS8qIHNpemluZyBi bG9vbSBmaWx0ZXI6IC0obiAqIGxuKHApKSAvIChsbigyKSleMiAqLworCW5iaXRzID0gY2Vp bCgtKG5kaXN0aW5jdCAqIGxvZyhmYWxzZV9wb3NpdGl2ZV9yYXRlKSkgLyBwb3cobG9nKDIu MCksIDIpKTsKKworCS8qIHJvdW5kIG0gdG8gd2hvbGUgYnl0ZXMgKi8KKwluYnl0ZXMgPSAo KG5iaXRzICsgNykgLyA4KTsKKwluYml0cyA9IG5ieXRlcyAqIDg7CisKKwkvKgorCSAqIHJv dW5kKGxvZygyLjApICogbSAvIG5kaXN0aW5jdCksIGJ1dCBhc3N1bWUgcm91bmQoKSBtYXkg bm90IGJlCisJICogYXZhaWxhYmxlIG9uIFdpbmRvd3MKKwkgKi8KKwlrID0gbG9nKDIuMCkg KiBuYml0cyAvIG5kaXN0aW5jdDsKKwlrID0gKGsgLSBmbG9vcihrKSA+PSAwLjUpID8gY2Vp bChrKSA6IGZsb29yKGspOworCisJaWYgKG5ieXRlc3ApCisJCSpuYnl0ZXNwID0gbmJ5dGVz OworCisJaWYgKG5iaXRzcCkKKwkJKm5iaXRzcCA9IG5iaXRzOworCisJaWYgKG5oYXNoZXNw KQorCQkqbmhhc2hlc3AgPSAoaW50KSBrOworfQogCiAvKgogICogYmxvb21faW5pdApAQCAt Mjc1LDE5ICszMTcsMTUgQEAgYmxvb21faW5pdChpbnQgbmRpc3RpbmN0LCBkb3VibGUgZmFs c2VfcG9zaXRpdmVfcmF0ZSkKIAogCWludAkJCW5iaXRzOwkJCS8qIHNpemUgb2YgZmlsdGVy IC8gbnVtYmVyIG9mIGJpdHMgKi8KIAlpbnQJCQluYnl0ZXM7CQkJLyogc2l6ZSBvZiBmaWx0 ZXIgLyBudW1iZXIgb2YgYnl0ZXMgKi8KLQotCWRvdWJsZQkJazsJCQkJLyogbnVtYmVyIG9m IGhhc2ggZnVuY3Rpb25zICovCisJaW50CQkJbmhhc2hlczsJCS8qIG51bWJlciBvZiBoYXNo IGZ1bmN0aW9ucyAqLwogCiAJQXNzZXJ0KG5kaXN0aW5jdCA+IDApOwogCUFzc2VydCgoZmFs c2VfcG9zaXRpdmVfcmF0ZSA+PSBCTE9PTV9NSU5fRkFMU0VfUE9TSVRJVkVfUkFURSkgJiYK IAkJICAgKGZhbHNlX3Bvc2l0aXZlX3JhdGUgPCBCTE9PTV9NQVhfRkFMU0VfUE9TSVRJVkVf UkFURSkpOwogCi0JLyogc2l6aW5nIGJsb29tIGZpbHRlcjogLShuICogbG4ocCkpIC8gKGxu KDIpKV4yICovCi0JbmJpdHMgPSBjZWlsKC0obmRpc3RpbmN0ICogbG9nKGZhbHNlX3Bvc2l0 aXZlX3JhdGUpKSAvIHBvdyhsb2coMi4wKSwgMikpOwotCi0JLyogcm91bmQgbSB0byB3aG9s ZSBieXRlcyAqLwotCW5ieXRlcyA9ICgobmJpdHMgKyA3KSAvIDgpOwotCW5iaXRzID0gbmJ5 dGVzICogODsKKwkvKiBjYWxjdWxhdGUgYmxvb20gZmlsdGVyIHNpemUgLyBwYXJhbWV0ZXJz ICovCisJYmxvb21fZmlsdGVyX3NpemUobmRpc3RpbmN0LCBmYWxzZV9wb3NpdGl2ZV9yYXRl LAorCQkJCQkgICZuYnl0ZXMsICZuYml0cywgJm5oYXNoZXMpOwogCiAJLyoKIAkgKiBSZWpl Y3QgZmlsdGVycyB0aGF0IGFyZSBvYnZpb3VzbHkgdG9vIGxhcmdlIHRvIHN0b3JlIG9uIGEg cGFnZS4KQEAgLTMxMCwxMyArMzQ4LDYgQEAgYmxvb21faW5pdChpbnQgbmRpc3RpbmN0LCBk b3VibGUgZmFsc2VfcG9zaXRpdmVfcmF0ZSkKIAkJZWxvZyhFUlJPUiwgInRoZSBibG9vbSBm aWx0ZXIgaXMgdG9vIGxhcmdlICglZCA+ICV6dSkiLCBuYnl0ZXMsCiAJCQkgQmxvb21NYXhG aWx0ZXJTaXplKTsKIAotCS8qCi0JICogcm91bmQobG9nKDIuMCkgKiBtIC8gbmRpc3RpbmN0 KSwgYnV0IGFzc3VtZSByb3VuZCgpIG1heSBub3QgYmUKLQkgKiBhdmFpbGFibGUgb24gV2lu ZG93cwotCSAqLwotCWsgPSBsb2coMi4wKSAqIG5iaXRzIC8gbmRpc3RpbmN0OwotCWsgPSAo ayAtIGZsb29yKGspID49IDAuNSkgPyBjZWlsKGspIDogZmxvb3Ioayk7Ci0KIAkvKgogCSAq IFdlIGFsbG9jYXRlIHRoZSB3aG9sZSBmaWx0ZXIuIE1vc3Qgb2YgaXQgaXMgZ29pbmcgdG8g YmUgMCBiaXRzLCBzbyB0aGUKIAkgKiB2YXJsZW5hIGlzIGVhc3kgdG8gY29tcHJlc3MuCkBA IC0zMjYsNyArMzU3LDcgQEAgYmxvb21faW5pdChpbnQgbmRpc3RpbmN0LCBkb3VibGUgZmFs c2VfcG9zaXRpdmVfcmF0ZSkKIAlmaWx0ZXIgPSAoQmxvb21GaWx0ZXIgKikgcGFsbG9jMChs ZW4pOwogCiAJZmlsdGVyLT5mbGFncyA9IDA7Ci0JZmlsdGVyLT5uaGFzaGVzID0gKGludCkg azsKKwlmaWx0ZXItPm5oYXNoZXMgPSBuaGFzaGVzOwogCWZpbHRlci0+bmJpdHMgPSBuYml0 czsKIAogCVNFVF9WQVJTSVpFKGZpbHRlciwgbGVuKTsKLS0gCjIuMzkuMQoK --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0004-Add-minmax-multi-inequality-tests-20230217.patch" Content-Disposition: attachment; filename="0004-Add-minmax-multi-inequality-tests-20230217.patch" Content-Transfer-Encoding: base64 RnJvbSA5MzcxZmViNzQ2MmJmNTY1Mzk5Y2RiZjg0NDg0OWE0MWJlMTM1ODAzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAxNyBGZWIgMjAyMyAwMjoyNTo1MiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNC85XSBBZGQgbWlubWF4LW11bHRpIGluZXF1YWxpdHkgdGVzdHMKCkFk ZCB0ZXN0cyBleGVyY2lzaW5nIHRoZSBvdGhlciBzY2FuIGtleSBzdHJhdGVnaWVzLCB0byBp bXByb3ZlIHRlc3QKY292ZXJhZ2UuCi0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9i cmluX211bHRpLm91dCB8IDM2MyArKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvYnJpbl9tdWx0aS5zcWwgICAgICB8IDEzNiArKysrKysrKysKIDIgZmls ZXMgY2hhbmdlZCwgNDk5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2JyaW5fbXVsdGkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9icmluX211bHRpLm91dAppbmRleCBmMzMwOWY0MzNmOC4uOThlMWNkYWEzNjEgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbl9tdWx0aS5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluX211bHRpLm91dApAQCAtNDYwLDMg KzQ2MCwzNjYgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGJyaW5fdGVz dF9tdWx0aSBXSEVSRSBiID0gMTsKICAgIEZpbHRlcjogKGIgPSAxKQogKDIgcm93cykKIAor LS0gZG8gc29tZSBpbmVxdWFsaXR5IHRlc3RzCitDUkVBVEUgVEFCTEUgYnJpbl90ZXN0X211 bHRpXzEgKGEgSU5ULCBiIEJJR0lOVCkgV0lUSCAoZmlsbGZhY3Rvcj0xMCk7CitJTlNFUlQg SU5UTyBicmluX3Rlc3RfbXVsdGlfMQorU0VMRUNUIGkvNSArIG1vZCg5MTEgKiBpICsgNDgz LCAyNSksCisgICAgICAgaS8xMCArIG1vZCg3NTEgKiBpICsgMjIxLCA0MSkKKyAgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpOworQ1JFQVRFIElOREVYIGJyaW5fdGVzdF9t dWx0aV8xX2lkeF8xIE9OIGJyaW5fdGVzdF9tdWx0aV8xIFVTSU5HIGJyaW4gKGEgaW50NF9t aW5tYXhfbXVsdGlfb3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9NSk7CitDUkVBVEUgSU5E RVggYnJpbl90ZXN0X211bHRpXzFfaWR4XzIgT04gYnJpbl90ZXN0X211bHRpXzEgVVNJTkcg YnJpbiAoYiBpbnQ4X21pbm1heF9tdWx0aV9vcHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT01 KTsKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CistLSBpbnQ6IGxlc3MgdGhhbgorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYSA8IDM3OworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPCAzNykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3Rf bXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPCAzNykKKyg1 IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgPCAzNzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDEyNAorKDEgcm93KQorCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBX SEVSRSBhIDwgMTEzOworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPCAxMTMpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl90ZXN0 X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhIDwgMTEzKQor KDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hF UkUgYSA8IDExMzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDUwNAorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlf MSBXSEVSRSBhIDw9IDE3NzsKKyAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRt YXAgSGVhcCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENv bmQ6IChhIDw9IDE3NykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmlu X3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPD0g MTc3KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRp XzEgV0hFUkUgYSA8PSAxNzc7CisgY291bnQgCistLS0tLS0tCisgICA4MjkKKygxIHJvdykK KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0 X211bHRpXzEgV0hFUkUgYSA8PSAyNTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChhIDw9IDI1KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9u IGJyaW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo YSA8PSAyNSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9t dWx0aV8xIFdIRVJFIGEgPD0gMjU7CisgY291bnQgCistLS0tLS0tCisgICAgNjkKKygxIHJv dykKKworLS0gaW50OiBncmVhdGVyIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiAxMjA7CisgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rl c3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IDEyMCkKKyAgICAgICAg IC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPiAxMjApCisoNSByb3dzKQorCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID4gMTIwOworIGNvdW50 IAorLS0tLS0tLQorICAgNDU2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gMTgwOwor ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJp bl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPj0gMTgwKQorICAg ICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xX2lkeF8x CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+PSAxODApCisoNSByb3dzKQorCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IDE4MDsK KyBjb3VudCAKKy0tLS0tLS0KKyAgIDE2MQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID4g NzE7CisgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IDcxKQor ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xX2lk eF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+IDcxKQorKDUgcm93cykKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IDcxOwor IGNvdW50IAorLS0tLS0tLQorICAgNzAxCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0g NjM7CisgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+PSA2MykK KyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMV9p ZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPj0gNjMpCisoNSByb3dzKQor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IDYz OworIGNvdW50IAorLS0tLS0tLQorICAgNzQ2CisoMSByb3cpCisKKy0tIGJpZ2ludDogbGVz cyB0aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgNzM7CisgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAg UmVjaGVjayBDb25kOiAoYiA8IDczKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJyaW5fdGVzdF9tdWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoYiA8IDczKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0 X211bHRpXzEgV0hFUkUgYiA8IDczOworIGNvdW50IAorLS0tLS0tLQorICAgNTI5CisoMSBy b3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPD0gNDc7CisgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAg UmVjaGVjayBDb25kOiAoYiA8PSA0NykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiBicmluX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKGIgPD0gNDcpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rl c3RfbXVsdGlfMSBXSEVSRSBiIDw9IDQ3OworIGNvdW50IAorLS0tLS0tLQorICAgMjc5Ciso MSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCAxOTk7CisgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRl CisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMQorICAgICAg ICAgUmVjaGVjayBDb25kOiAoYiA8IDE5OSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGIgPCAxOTkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgMTk5OworIGNvdW50IAorLS0tLS0tLQorICAxMDAw CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPD0gMTUwOworICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAg ICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPD0gMTUwKQorICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYiA8PSAxNTApCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDw9IDE1MDsKKyBjb3VudCAKKy0tLS0tLS0K KyAgMTAwMAorKDEgcm93KQorCistLSBiaWdpbnQ6IGdyZWF0ZXIgdGhhbgorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hF UkUgYiA+IDkzOworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIg PiA5MykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVs dGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPiA5MykKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIg PiA5MzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDI2MQorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVS RSBiID4gMzc7CisgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAg U2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA+ IDM3KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0 aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+IDM3KQorKDUgcm93 cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+ IDM3OworIGNvdW50IAorLS0tLS0tLQorICAgODIxCisoMSByb3cpCisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJF IGIgPj0gMjE1OworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIg Pj0gMjE1KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9t dWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+PSAyMTUpCiso NSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVS RSBiID49IDIxNTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlf MSBXSEVSRSBiID4gMjAxOworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1h cCBIZWFwIFNjYW4gb24gYnJpbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKGIgPiAyMDEpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl90 ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID4gMjAx KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA+IDIwMTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitE Uk9QIFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8xOworUkVTRVQgZW5hYmxlX3NlcXNjYW47Cist LSBkbyBzb21lIGluZXF1YWxpdHkgdGVzdHMgZm9yIHZhcmxlbmEgZGF0YSB0eXBlcworQ1JF QVRFIFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8yIChhIFVVSUQpIFdJVEggKGZpbGxmYWN0b3I9 MTApOworSU5TRVJUIElOVE8gYnJpbl90ZXN0X211bHRpXzIKK1NFTEVDVCB2Ojp1dWlkIEZS T00gKFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgdikgYywgdiBGUk9NIChT RUxFQ1QgbWQ1KChpLzEzKTo6dGV4dCkgQVMgdiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw MDApIHMoaSkpIGZvbykgYmFyIE9SREVSIEJZIGMgKyAyNSAqIHJhbmRvbSgpOworQ1JFQVRF IElOREVYIGJyaW5fdGVzdF9tdWx0aV8yX2lkeCBPTiBicmluX3Rlc3RfbXVsdGlfMiBVU0lO RyBicmluIChhIHV1aWRfbWlubWF4X211bHRpX29wcykgV0lUSCAocGFnZXNfcGVyX3Jhbmdl PTUpOworU0VUIGVuYWJsZV9zZXFzY2FuPW9mZjsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPCAnMzNlNzVm ZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JzsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMgorICAgICAgICAgUmVjaGVjayBD b25kOiAoYSA8ICczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknOjp1dWlk KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8y X2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPCAnMzNlNzVmZjAtOWRkNi0w MWJiLWU2OWYtMzUxMDM5MTUyMTg5Jzo6dXVpZCkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPCAnMzNlNzVmZjAtOWRkNi0w MWJiLWU2OWYtMzUxMDM5MTUyMTg5JzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDE5NQorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X3Rlc3RfbXVsdGlfMiBXSEVSRSBhID4gJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAz OTE1MjE4OSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl90 ZXN0X211bHRpXzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiAnMzNlNzVmZjAtOWRk Ni0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5Jzo6dXVpZCkKKyAgICAgICAgIC0+ICBCaXRtYXAg SW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMl9pZHgKKyAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChhID4gJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OSc6 OnV1aWQpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVs dGlfMiBXSEVSRSBhID4gJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OSc7 CisgY291bnQgCistLS0tLS0tCisgICA3OTIKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzIgV0hFUkUgYSA8 PSAnZjQ1N2M1NDUtYTlkZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwJzsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUK KyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5fdGVzdF9tdWx0aV8yCisgICAgICAg ICBSZWNoZWNrIENvbmQ6IChhIDw9ICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1 YTcyYzAnOjp1dWlkKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f dGVzdF9tdWx0aV8yX2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPD0gJ2Y0 NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCc6OnV1aWQpCisoNSByb3dzKQor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIDw9ICdm NDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1YTcyYzAnOworIGNvdW50IAorLS0tLS0t LQorICAgOTYxCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPj0gJ2M1MWNlNDEwLWMxMjQt YTEwZS0wZGI1LWU0Yjk3ZmMyYWYzOSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhl YXAgU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMgorICAgICAgICAgUmVjaGVjayBDb25kOiAo YSA+PSAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5Jzo6dXVpZCkKKyAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX3Rlc3RfbXVsdGlfMl9pZHgK KyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID49ICdjNTFjZTQxMC1jMTI0LWExMGUt MGRiNS1lNGI5N2ZjMmFmMzknOjp1dWlkKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl90ZXN0X211bHRpXzIgV0hFUkUgYSA+PSAnYzUxY2U0MTAtYzEyNC1hMTBl LTBkYjUtZTRiOTdmYzJhZjM5JzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDI3MgorKDEgcm93 KQorCitEUk9QIFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8yOworUkVTRVQgZW5hYmxlX3NlcXNj YW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmluX211bHRpLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW5fbXVsdGkuc3FsCmluZGV4IDIxODliNmNjZjQy Li5hNTllMTgyYmMyNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9t dWx0aS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9tdWx0aS5zcWwKQEAg LTQxNCwzICs0MTQsMTM5IEBAIFZBQ1VVTSBBTkFMWVpFIGJyaW5fdGVzdF9tdWx0aTsKIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBicmluX3Rlc3RfbXVsdGkgV0hFUkUg YSA9IDE7CiAtLSBFbnN1cmUgYnJpbiBpbmRleCBpcyBub3QgdXNlZCB3aGVuIHZhbHVlcyBh cmUgbm90IGNvcnJlbGF0ZWQKIEVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBi cmluX3Rlc3RfbXVsdGkgV0hFUkUgYiA9IDE7CisKKworLS0gZG8gc29tZSBpbmVxdWFsaXR5 IHRlc3RzCitDUkVBVEUgVEFCTEUgYnJpbl90ZXN0X211bHRpXzEgKGEgSU5ULCBiIEJJR0lO VCkgV0lUSCAoZmlsbGZhY3Rvcj0xMCk7CitJTlNFUlQgSU5UTyBicmluX3Rlc3RfbXVsdGlf MQorU0VMRUNUIGkvNSArIG1vZCg5MTEgKiBpICsgNDgzLCAyNSksCisgICAgICAgaS8xMCAr IG1vZCg3NTEgKiBpICsgMjIxLCA0MSkKKyAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAw KSBzKGkpOworCitDUkVBVEUgSU5ERVggYnJpbl90ZXN0X211bHRpXzFfaWR4XzEgT04gYnJp bl90ZXN0X211bHRpXzEgVVNJTkcgYnJpbiAoYSBpbnQ0X21pbm1heF9tdWx0aV9vcHMpIFdJ VEggKHBhZ2VzX3Blcl9yYW5nZT01KTsKK0NSRUFURSBJTkRFWCBicmluX3Rlc3RfbXVsdGlf MV9pZHhfMiBPTiBicmluX3Rlc3RfbXVsdGlfMSBVU0lORyBicmluIChiIGludDhfbWlubWF4 X211bHRpX29wcykgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTUpOworCitTRVQgZW5hYmxlX3Nl cXNjYW49b2ZmOworCistLSBpbnQ6IGxlc3MgdGhhbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IDM3Owor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgMzc7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVz dF9tdWx0aV8xIFdIRVJFIGEgPCAxMTM7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f dGVzdF9tdWx0aV8xIFdIRVJFIGEgPCAxMTM7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPD0gMTc3Owor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDw9IDE3 NzsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90 ZXN0X211bHRpXzEgV0hFUkUgYSA8PSAyNTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl90ZXN0X211bHRpXzEgV0hFUkUgYSA8PSAyNTsKKworLS0gaW50OiBncmVhdGVyIHRoYW4K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9t dWx0aV8xIFdIRVJFIGEgPiAxMjA7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVz dF9tdWx0aV8xIFdIRVJFIGEgPiAxMjA7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gMTgwOworCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IDE4MDsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0 X211bHRpXzEgV0hFUkUgYSA+IDcxOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rl c3RfbXVsdGlfMSBXSEVSRSBhID4gNzE7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gNjM7CisKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gNjM7CisK Ky0tIGJpZ2ludDogbGVzcyB0aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgNzM7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCA3MzsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA8PSA0NzsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRp XzEgV0hFUkUgYiA8PSA0NzsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IDE5OTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IDE5OTsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA8PSAxNTA7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0 aV8xIFdIRVJFIGIgPD0gMTUwOworCistLSBiaWdpbnQ6IGdyZWF0ZXIgdGhhbgorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA+IDkzOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlf MSBXSEVSRSBiID4gOTM7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiAzNzsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+IDM3OworCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3RfbXVsdGlfMSBXSEVS RSBiID49IDIxNTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzEg V0hFUkUgYiA+PSAyMTU7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiAyMDE7CisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiAyMDE7CisKK0RST1AgVEFC TEUgYnJpbl90ZXN0X211bHRpXzE7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKKworCistLSBk byBzb21lIGluZXF1YWxpdHkgdGVzdHMgZm9yIHZhcmxlbmEgZGF0YSB0eXBlcworQ1JFQVRF IFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8yIChhIFVVSUQpIFdJVEggKGZpbGxmYWN0b3I9MTAp OworSU5TRVJUIElOVE8gYnJpbl90ZXN0X211bHRpXzIKK1NFTEVDVCB2Ojp1dWlkIEZST00g KFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgdikgYywgdiBGUk9NIChTRUxF Q1QgbWQ1KChpLzEzKTo6dGV4dCkgQVMgdiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDAp IHMoaSkpIGZvbykgYmFyIE9SREVSIEJZIGMgKyAyNSAqIHJhbmRvbSgpOworCitDUkVBVEUg SU5ERVggYnJpbl90ZXN0X211bHRpXzJfaWR4IE9OIGJyaW5fdGVzdF9tdWx0aV8yIFVTSU5H IGJyaW4gKGEgdXVpZF9taW5tYXhfbXVsdGlfb3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9 NSk7CisKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPCAnMzNl NzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JzsKKworU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl90ZXN0X211bHRpXzIgV0hFUkUgYSA8ICczM2U3NWZmMC05ZGQ2LTAxYmIt ZTY5Zi0zNTEwMzkxNTIxODknOworCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPiAnMzNlNzVmZjAtOWRk Ni0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JzsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl90ZXN0X211bHRpXzIgV0hFUkUgYSA+ICczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEw MzkxNTIxODknOworCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgPD0gJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0x OGVjLWVlNDcxNDVhNzJjMCc7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5fdGVzdF9t dWx0aV8yIFdIRVJFIGEgPD0gJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJj MCc7CisKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl90ZXN0X211bHRpXzIgV0hFUkUgYSA+PSAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRi OTdmYzJhZjM5JzsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl90ZXN0X211bHRpXzIg V0hFUkUgYSA+PSAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5JzsKKwor RFJPUCBUQUJMRSBicmluX3Rlc3RfbXVsdGlfMjsKK1JFU0VUIGVuYWJsZV9zZXFzY2FuOwot LSAKMi4zOS4xCgo= --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0005-Introduce-BRIN_PROCNUM_PREPROCESS-procedure-20230217.patch" Content-Disposition: attachment; filename*0="0005-Introduce-BRIN_PROCNUM_PREPROCESS-procedure-20230217.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyMmI5MDZkZGZmMGVhNGY1OGEzNTc3MmYxNjBhMGM5OWQ2NzFhMDFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzQDJuZHF1YWRyYW50 LmNvbT4KRGF0ZTogVHVlLCAxNCBGZWIgMjAyMyAyMDoyOTozMyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggNS85XSBJbnRyb2R1Y2UgQlJJTl9QUk9DTlVNX1BSRVBST0NFU1MgcHJvY2VkdXJl CgpBbGxvdyBCUklOIG9wY2xhc3NlcyB0byBkZWZpbmUgYW4gb3B0aW9uYWwgcHJvY2VkdXJl IHRvIHByZXByb2Nlc3Mgc2NhbgprZXlzLCBhbmQgY2FsbCBpdCBmcm9tIGJyaW5yZXNjYW4o KS4gVGhpcyBhbGxvd3MgdGhlIG9wY2xhc3MgdG8gbW9kaWZ5CnRoZSBrZXlzIGluIHZhcmlv dXMgd2F5cyAtIHNvcnQgYXJyYXlzLCBjYWxjdWxhdGUgaGFzaGVzLCAuLi4KCk5vdGU6IFRo ZSBwcm9jZWR1cmUgaXMgb3B0aW9uYWwsIHNvIGV4aXN0aW5nIG9wY2xhc3NlcyBkb24ndCBu ZWVkIHRvIGFkZAppdC4gQnV0IGlmIGl0IHVzZXMgdGhlIGV4aXN0aW5nIEJSSU5fUFJPQ05V TV9DT05TSVNURU5UIGZ1bmN0aW9uLCBpdCdsbApnZXQgYnJva2VuLiBJZiB3ZSB3YW50IHRv IG1ha2UgdGhpcyBiYWNrd2FyZHMtY29tcGF0aWJsZSwgd2UgbWlnaHQgY2hlY2sKaWYgQlJJ Tl9QUk9DTlVNX1BSRVBST0NFU1MgZXhpc3QgZnJvbSBCUklOX1BST0NOVU1fQ09OU0lTVEVO VCwgYW5kCmFkanVzdCBiZWhhdmlvciBiYXNlZCBvbiB0aGF0LgotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9icmluL2JyaW4uYyAgICAgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9icmluX2ludGVybmFsLmggfCAgMSArCiAyIGZp bGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2JyaW4vYnJpbi5jCmluZGV4IGRlMTQyN2ExZTBlLi5hNjhlY2Y3MjJjNSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtNjYsNiArNjYsMTIgQEAgdHlwZWRlZiBzdHJ1Y3Qg QnJpbk9wYXF1ZQogCUJsb2NrTnVtYmVyIGJvX3BhZ2VzUGVyUmFuZ2U7CiAJQnJpblJldm1h cCAqYm9fcm1BY2Nlc3M7CiAJQnJpbkRlc2MgICAqYm9fYmRlc2M7CisKKwkvKiBwcmVwcm9j ZXNzZWQgc2NhbiBrZXlzICovCisJaW50CQkJYm9fbnVtU2NhbktleXM7CQkvKiBudW1iZXIg b2YgKHByZXByb2Nlc3NlZCkgc2NhbiBrZXlzICovCisJU2NhbktleQkgICAqYm9fc2Nhbktl eXM7CQkvKiBtb2RpZmllZCBjb3B5IG9mIHNjYW4tPmtleURhdGEgKi8KKwlNZW1vcnlDb250 ZXh0IGJvX3NjYW5LZXlzQ3h0OwkvKiBzY2FuLWxpZmVzcGFuIGNvbnRleHQgZm9yIGtleSBk YXRhICovCisKIH0gQnJpbk9wYXF1ZTsKIAogI2RlZmluZSBCUklOX0FMTF9CTE9DS1JBTkdF UwlJbnZhbGlkQmxvY2tOdW1iZXIKQEAgLTMzNCw2ICszNDAsMTEgQEAgYnJpbmJlZ2luc2Nh bihSZWxhdGlvbiByLCBpbnQgbmtleXMsIGludCBub3JkZXJieXMpCiAJb3BhcXVlLT5ib19y bUFjY2VzcyA9IGJyaW5SZXZtYXBJbml0aWFsaXplKHIsICZvcGFxdWUtPmJvX3BhZ2VzUGVy UmFuZ2UsCiAJCQkJCQkJCQkJCSAgIHNjYW4tPnhzX3NuYXBzaG90KTsKIAlvcGFxdWUtPmJv X2JkZXNjID0gYnJpbl9idWlsZF9kZXNjKHIpOworCisJb3BhcXVlLT5ib19udW1TY2FuS2V5 cyA9IDA7CisJb3BhcXVlLT5ib19zY2FuS2V5cyA9IE5VTEw7CisJb3BhcXVlLT5ib19zY2Fu S2V5c0N4dCA9IE5VTEw7CisKIAlzY2FuLT5vcGFxdWUgPSBvcGFxdWU7CiAKIAlyZXR1cm4g c2NhbjsKQEAgLTQ1Niw3ICs0NjcsNyBAQCBicmluZ2V0Yml0bWFwKEluZGV4U2NhbkRlc2Mg c2NhbiwgVElEQml0bWFwICp0Ym0pCiAJLyogUHJlcHJvY2VzcyB0aGUgc2NhbiBrZXlzIC0g c3BsaXQgdGhlbSBpbnRvIHBlci1hdHRyaWJ1dGUgYXJyYXlzLiAqLwogCWZvciAoaW50IGtl eW5vID0gMDsga2V5bm8gPCBzY2FuLT5udW1iZXJPZktleXM7IGtleW5vKyspCiAJewotCQlT Y2FuS2V5CQlrZXkgPSAmc2Nhbi0+a2V5RGF0YVtrZXlub107CisJCVNjYW5LZXkJCWtleSA9 IG9wYXF1ZS0+Ym9fc2NhbktleXNba2V5bm9dOwogCQlBdHRyTnVtYmVyCWtleWF0dG5vID0g a2V5LT5za19hdHRubzsKIAogCQkvKgpAQCAtNzI4LDE3ICs3MzksNjIgQEAgdm9pZAogYnJp bnJlc2NhbihJbmRleFNjYW5EZXNjIHNjYW4sIFNjYW5LZXkgc2NhbmtleSwgaW50IG5zY2Fu a2V5cywKIAkJICAgU2NhbktleSBvcmRlcmJ5cywgaW50IG5vcmRlcmJ5cykKIHsKLQkvKgot CSAqIE90aGVyIGluZGV4IEFNcyBwcmVwcm9jZXNzIHRoZSBzY2FuIGtleXMgYXQgdGhpcyBw b2ludCwgb3Igc29tZXRpbWUKLQkgKiBlYXJseSBkdXJpbmcgdGhlIHNjYW47IHRoaXMgbGV0 cyB0aGVtIG9wdGltaXplIGJ5IHJlbW92aW5nIHJlZHVuZGFudAotCSAqIGtleXMsIG9yIGRv aW5nIGVhcmx5IHJldHVybnMgd2hlbiB0aGV5IGFyZSBpbXBvc3NpYmxlIHRvIHNhdGlzZnk7 IHNlZQotCSAqIF9idF9wcmVwcm9jZXNzX2tleXMgZm9yIGFuIGV4YW1wbGUuICBTb21ldGhp bmcgbGlrZSB0aGF0IGNvdWxkIGJlIGFkZGVkCi0JICogaGVyZSBzb21lZGF5LCB0b28uCi0J ICovCisJQnJpbk9wYXF1ZSAqYm8gPSAoQnJpbk9wYXF1ZSAqKSBzY2FuLT5vcGFxdWU7CisJ UmVsYXRpb24JaWR4UmVsID0gc2Nhbi0+aW5kZXhSZWxhdGlvbjsKKwlNZW1vcnlDb250ZXh0 CW9sZGN4dDsKIAogCWlmIChzY2Fua2V5ICYmIHNjYW4tPm51bWJlck9mS2V5cyA+IDApCiAJ CW1lbW1vdmUoc2Nhbi0+a2V5RGF0YSwgc2NhbmtleSwKIAkJCQlzY2FuLT5udW1iZXJPZktl eXMgKiBzaXplb2YoU2NhbktleURhdGEpKTsKKworCS8qCisJICogVXNlIHRoZSBCUklOX1BS T0NOVU1fUFJFUFJPQ0VTUyBwcm9jZWR1cmUgKGlmIGRlZmluZWQpIHRvIHByZXByb2Nlc3MK KwkgKiB0aGUgc2NhbiBrZXlzLiBUaGUgcHJvY2VkdXJlIG1heSBkbyBhbnl0aGluZywgYXMg bG9uZyBhcyB0aGUgcmVzdWx0CisJICogbG9va3MgbGlrZSBhIFNjYW5LZXkuIElmIHRoZXJl J3Mgbm8gcHJvY2VkdXJlLCB3ZSBrZWVwIHRoZSBvcmlnaW5hbAorCSAqIHNjYW4ga2V5Lgor CSAqCisJICogRklYTUUgUHJvYmFibHkgbmVlZCBmaXhlcyB0byBoYW5kbGUgTlVMTHMgY29y cmVjdGx5LgorCSAqLworCWlmIChiby0+Ym9fc2NhbktleXNDeHQgPT0gTlVMTCkKKwkJYm8t PmJvX3NjYW5LZXlzQ3h0ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlD b250ZXh0LAorCQkJCQkJCQkJCQkJICAgIkJSSU4gc2NhbiBrZXlzIGNvbnRleHQiLAorCQkJ CQkJCQkJCQkJICAgQUxMT0NTRVRfU01BTExfU0laRVMpOworCWVsc2UKKwkJTWVtb3J5Q29u dGV4dFJlc2V0KGJvLT5ib19zY2FuS2V5c0N4dCk7CisKKwlvbGRjeHQgPSBNZW1vcnlDb250 ZXh0U3dpdGNoVG8oYm8tPmJvX3NjYW5LZXlzQ3h0KTsKKworCWJvLT5ib19zY2FuS2V5cyA9 IHBhbGxvYzAoc2l6ZW9mKFNjYW5LZXkpICogbnNjYW5rZXlzKTsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgbnNjYW5rZXlzOyBpKyspCisJeworCQlGbWdySW5mbyAgICpmaW5mbzsKKwkJ U2NhbktleQkJa2V5ID0gJnNjYW4tPmtleURhdGFbaV07CisJCU9pZAkJCXByb2NpZDsKKwkJ RGF0dW0JCXJldDsKKworCQkvKiBmZXRjaCBrZXkgcHJlcHJvY2VzcyBzdXBwb3J0IHByb2Nl ZHVyZSBpZiBzcGVjaWZpZWQgKi8KKwkJcHJvY2lkID0gaW5kZXhfZ2V0cHJvY2lkKGlkeFJl bCwga2V5LT5za19hdHRubywKKwkJCQkJCQkJIEJSSU5fUFJPQ05VTV9QUkVQUk9DRVNTKTsK KworCQkvKiBub3Qgc3BlY2lmaWVkLCBqdXN0IHBvaW50IHRvIHRoZSBvcmlnaW5hbCBrZXkg Ki8KKwkJaWYgKCFPaWRJc1ZhbGlkKHByb2NpZCkpCisJCXsKKwkJCWJvLT5ib19zY2FuS2V5 c1tpXSA9IGtleTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJZmluZm8gPSBpbmRleF9nZXRw cm9jaW5mbyhpZHhSZWwsIGtleS0+c2tfYXR0bm8sCisJCQkJCQkJCSAgQlJJTl9QUk9DTlVN X1BSRVBST0NFU1MpOworCisJCXJldCA9IEZ1bmN0aW9uQ2FsbDIoZmluZm8sCisJCQkJCQkJ UG9pbnRlckdldERhdHVtKGJvLT5ib19iZGVzYyksCisJCQkJCQkJUG9pbnRlckdldERhdHVt KGtleSkpOworCisJCWJvLT5ib19zY2FuS2V5c1tpXSA9IChTY2FuS2V5KSBEYXR1bUdldFBv aW50ZXIocmV0KTsKKwl9CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIH0K IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9icmluX2ludGVybmFsLmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvYnJpbl9pbnRlcm5hbC5oCmluZGV4IDk3ZGRjOTI1YjI3 Li5kNmE1MWYyYmM0OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2JyaW5faW50 ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYnJpbl9pbnRlcm5hbC5oCkBAIC03 Myw2ICs3Myw3IEBAIHR5cGVkZWYgc3RydWN0IEJyaW5EZXNjCiAjZGVmaW5lIEJSSU5fUFJP Q05VTV9VTklPTgkJCTQKICNkZWZpbmUgQlJJTl9NQU5EQVRPUllfTlBST0NTCQk0CiAjZGVm aW5lIEJSSU5fUFJPQ05VTV9PUFRJT05TIAkJNQkvKiBvcHRpb25hbCAqLworI2RlZmluZSBC UklOX1BST0NOVU1fUFJFUFJPQ0VTUwkJNgkvKiBvcHRpb25hbCAqLwogLyogcHJvY2VkdXJl IG51bWJlcnMgdXAgdG8gMTAgYXJlIHJlc2VydmVkIGZvciBCUklOIGZ1dHVyZSBleHBhbnNp b24gKi8KICNkZWZpbmUgQlJJTl9GSVJTVF9PUFRJT05BTF9QUk9DTlVNIDExCiAjZGVmaW5l IEJSSU5fTEFTVF9PUFRJT05BTF9QUk9DTlVNCTE1Ci0tIAoyLjM5LjEKCg== --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0006-Support-SK_SEARCHARRAY-in-BRIN-minmax-20230217.patch" Content-Disposition: attachment; filename*0="0006-Support-SK_SEARCHARRAY-in-BRIN-minmax-20230217.patch" Content-Transfer-Encoding: base64 RnJvbSBhNjNlNDdlNzhiYWJkYjdlMTY4MTM0ODBhN2JjYzZhODVlZmI2NzY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAxMCBGZWIgMjAyMyAxNjowNzo1NyArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNi85XSBTdXBwb3J0IFNLX1NFQVJDSEFSUkFZIGluIEJSSU4gbWlubWF4 CgpTZXQgImFtc2VhcmNoYXJyYXk9dHJ1ZSIgZm9yIEJSSU4sIGFuZCBleHRlbmQgdGhlIG1p bm1heCBvcGNsYXNzIHRvCmhhbmRsZSBib3RoIHNjYWxhciB2YWx1ZXMgYW5kIGFycmF5cy4g VGhpcyBhbGxvd3MgaGFuZGxpbmcgY29uZGl0aW9ucwoKICAgIC4uLiBXSEVSRSBhIElOICgx LCAyLCA0MywgMjEzMiwgMTM0KQoKICAgIC4uLiBXSEVSRSBhID0gQU5ZKEFSUkFZWzM0LCA0 NSwgLTEsIDIzNF0pCgogICAgLi4uIFdIRVJFIGEgPD0gQU5ZKEFSUkFZWzQ5MzgsIDI4Miwg MjkzNF0pCgptb3JlIGVmZmljaWVudGx5IC0gdW50aWwgbm93IHdlIHNpbXBseSBidWlsdCB0 aGUgYml0bWFwIGZvciBlYWNoCnNjYWxhciB2YWx1ZSwgc28gd2Ugd2Fsa2VkIHRoZSBCUklO IGluZGV4IG1hbnkgdGltZXMuIFdoaWNoIG1heSBiZSBxdWl0ZQpleHBlbnNpdmUgZm9yIGlu ZGV4ZXMgd2l0aCBtYW55IHJhbmdlcyAobGFyZ2UgdGFibGVzIGFuZC9vciBsb3cKcGFnZXNf cGVyX3JhbmdlKS4KClRoZXJlJ3MgYSBjb3VwbGUgcHJvYmxlbXMgLyBvcGVuIHF1ZXN0aW9u cyAvIFRPRE8gaXRlbXM6CgotIFRoZSBvdGhlciBvcGNsYXNzZXMgZG9uJ3QgaGFuZGxlIFNL X1NFQVJDSEFSUkFZIHlldC4KCi0gVGhlIGFycmF5IGlzIGFsd2F5cyBzZWFyY2hlZCBsaW5l YXJseSwgc28gdGhpcyBtYXkgYmUgY29zdGx5IGZvciBsYXJnZQogIGFycmF5cyAod2l0aCBt YW55IGVsZW1lbnRzKS4KCi0gVGhlIGFycmF5IGlzIGRlY29uc3RydWN0ZWQgYWdhaW4gZm9y IGVhY2ggcmFuZ2UuIFdlIHNob3VsZCByZXVzZSB0aGlzLAogIHNvbWVob3cuCi0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgIHwgICAzICstCiBzcmMvYmFj a2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heC5jICAgfCAzNzUgKysrKysrKysrLS0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYyB8ICAgNCArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgfCAgNjQgKysKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FtdXRpbHMub3V0ICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvYnJpbi5vdXQgICAgICB8IDg1OCArKysrKysrKysrKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW4uc3FsICAgICAgICAgICB8IDI4MyArKysrKysrKwog OCBmaWxlcyBjaGFuZ2VkLCAxNTUyIGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9icmluL2JyaW4uYwppbmRleCBhNjhlY2Y3MjJjNS4uNGI3NjFkMjhkOWQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl ICJ1dGlscy9kYXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0 aWxzL2luZGV4X3NlbGZ1bmNzLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAj aW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKIApA QCAtMTA3LDcgKzEwOCw3IEBAIGJyaW5oYW5kbGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJYW1y b3V0aW5lLT5hbWNhbnVuaXF1ZSA9IGZhbHNlOwogCWFtcm91dGluZS0+YW1jYW5tdWx0aWNv bCA9IHRydWU7CiAJYW1yb3V0aW5lLT5hbW9wdGlvbmFsa2V5ID0gdHJ1ZTsKLQlhbXJvdXRp bmUtPmFtc2VhcmNoYXJyYXkgPSBmYWxzZTsKKwlhbXJvdXRpbmUtPmFtc2VhcmNoYXJyYXkg PSB0cnVlOwogCWFtcm91dGluZS0+YW1zZWFyY2hudWxscyA9IHRydWU7CiAJYW1yb3V0aW5l LT5hbXN0b3JhZ2UgPSB0cnVlOwogCWFtcm91dGluZS0+YW1jbHVzdGVyYWJsZSA9IGZhbHNl OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXguYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4LmMKaW5kZXggMjQzMTU5MWJl NjUuLmQ3NzQ3NGZhMWRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9i cmluX21pbm1heC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fbWlubWF4 LmMKQEAgLTE2LDExICsxNiwyMSBAQAogI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2Nh Y2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc29ydHN1cHBvcnQuaCIKKworLyoKKyAqIFdlIHVz ZSBzb21lIHByaXZhdGUgc2tfZmxhZ3MgYml0cyBpbiBwcmVwcm9jZXNzZWQgc2NhbiBrZXlz LiAgV2UncmUgYWxsb3dlZAorICogdG8gdXNlIGJpdHMgMTYtMzEgKHNlZSBza2V5LmgpLiAg VGhlIHVwcGVybW9zdCBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUKKyAqIGluZGV4J3MgaW5k b3B0aW9uW10gYXJyYXkgZW50cnkgZm9yIHRoZSBpbmRleCBhdHRyaWJ1dGUuCisgKi8KKyNk ZWZpbmUgU0tfQlJJTl9TT1JURUQJMHgwMDAxMDAwMAkvKiBkZWNvbnN0cnVjdGVkIGFuZCBz b3J0ZWQgYXJyYXkgKi8KKwogCiB0eXBlZGVmIHN0cnVjdCBNaW5tYXhPcGFxdWUKIHsKQEAg LTEyNiw2ICsxMzYsMTU4IEBAIGJyaW5fbWlubWF4X2FkZF92YWx1ZShQR19GVU5DVElPTl9B UkdTKQogCVBHX1JFVFVSTl9CT09MKHVwZGF0ZWQpOwogfQogCisKK3N0YXRpYyBpbnQKK2Nv bXBhcmVfYXJyYXlfdmFsdWVzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIsIHZvaWQg KmFyZykKK3sKKwlEYXR1bQlkYSA9ICogKERhdHVtICopIGE7CisJRGF0dW0JZGIgPSAqIChE YXR1bSAqKSBiOworCVNvcnRTdXBwb3J0CXNzdXAgPSAoU29ydFN1cHBvcnQpIGFyZzsKKwor CXJldHVybiBBcHBseVNvcnRDb21wYXJhdG9yKGRhLCBmYWxzZSwgZGIsIGZhbHNlLCBzc3Vw KTsKK30KKworLyoKKyAqIGxvd2VyX2JvdW5kYXJ5CisgKgkJRGV0ZXJtaW5lIGxvd2VzdCBp bmRleCBzbyB0aGF0ICh2YWx1ZXNbaW5kZXhdID49IG1pbnZhbHVlKS4KKyAqCisgKiBUaGUg YXJyYXkgb2YgdmFsdWVzIGlzIGV4cGVjdGVkIHRvIGJlIHNvcnRlZCwgc28gdGhpcyBpcyB0 aGUgZmlyc3QgdmFsdWUKKyAqIHRoYXQgbWF5IGZhbGwgaW50byB0aGUgW21pbnZhbHVlLCBt YXh2YWx1ZV0gcmFuZ2UsIGFzIGl0IGV4Y2VlZHMgbWludmFsLgorICogSXQncyBub3QgZ3Vh cmFudGVlZCwgdGhvdWdoLCBhcyBpdCBtaWdodCBleGNlZWQgbWF4dmFsdWUgdG9vLgorICov CitzdGF0aWMgaW50Citsb3dlcl9ib3VuZGFyeShEYXR1bSAqdmFsdWVzLCBpbnQgbnZhbHVl cywgRGF0dW0gbWludmFsdWUsIFNvcnRTdXBwb3J0IHNzdXApCit7CisJaW50CQlzdGFydCA9 IDAsCisJCQllbmQgPSAobnZhbHVlcyAtIDEpOworCisJLyogZXZlcnl0aGluZyBleGNlZWRz IG1pbnZhbCBhbmQgbWlnaHQgbWF0Y2ggKi8KKwlpZiAoY29tcGFyZV9hcnJheV92YWx1ZXMo Jm1pbnZhbHVlLCAmdmFsdWVzW3N0YXJ0XSwgc3N1cCkgPD0gMCkKKwkJcmV0dXJuIDA7CisK KwkvKiBub3RoaW5nIGNvdWxkIG1hdGNoICovCisJaWYgKGNvbXBhcmVfYXJyYXlfdmFsdWVz KCZtaW52YWx1ZSwgJnZhbHVlc1tlbmRdLCBzc3VwKSA+IDApCisJCXJldHVybiBudmFsdWVz OworCisJd2hpbGUgKChlbmQgLSBzdGFydCkgPiAwKQorCXsKKwkJaW50IG1pZHBvaW50Owor CQlpbnQgcjsKKworCQltaWRwb2ludCA9IHN0YXJ0ICsgKGVuZCAtIHN0YXJ0KSAvIDI7CisK KwkJciA9IGNvbXBhcmVfYXJyYXlfdmFsdWVzKCZtaW52YWx1ZSwgJnZhbHVlc1ttaWRwb2lu dF0sIHNzdXApOworCisJCWlmIChyID4gMCkKKwkJCXN0YXJ0ID0gTWF4KG1pZHBvaW50LCBz dGFydCArIDEpOworCQllbHNlCisJCQllbmQgPSBtaWRwb2ludDsKKwl9CisKKwkvKiB0aGUg dmFsdWUgc2hvdWxkIG1lZXQgdGhlICh2ID49bWludmFsdWUpIHJlcXVpcmVtZW50ICovCisJ QXNzZXJ0KGNvbXBhcmVfYXJyYXlfdmFsdWVzKCZ2YWx1ZXNbc3RhcnRdLCAmbWludmFsdWUs IHNzdXApID49IDApOworCisJLyogd2Uga25vdyBzdGFydCBjYW4ndCBiZSAwLCBzbyBpdCdz IGxlZ2FsIHRvIHN1YnRyYWN0IDEgKi8KKwlBc3NlcnQoY29tcGFyZV9hcnJheV92YWx1ZXMo JnZhbHVlc1tzdGFydC0xXSwgJm1pbnZhbHVlLCBzc3VwKSA8IDApOworCisJcmV0dXJuIHN0 YXJ0OworfQorCit0eXBlZGVmIHN0cnVjdCBTY2FuS2V5QXJyYXkgeworCU9pZAkJdHlwZWlk OworCWludAkJbmVsZW1lbnRzOworCURhdHVtICAqZWxlbWVudHM7Cit9IFNjYW5LZXlBcnJh eTsKKworRGF0dW0KK2JyaW5fbWlubWF4X3ByZXByb2Nlc3MoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwkvLyBCcmluRGVzYyAgICpiZGVzYyA9IChCcmluRGVzYyAqKSBQR19HRVRBUkdfUE9J TlRFUigwKTsKKwlTY2FuS2V5CQlrZXkgPSAoU2NhbktleSkgUEdfR0VUQVJHX1BPSU5URVIo MSk7CisJU2NhbktleQkJbmV3a2V5OworCVNjYW5LZXlBcnJheSAqc2NhbmFycmF5OworCisJ QXJyYXlUeXBlICAqYXJyYXl2YWw7CisJaW50MTYJCWVsbWxlbjsKKwlib29sCQllbG1ieXZh bDsKKwljaGFyCQllbG1hbGlnbjsKKwlpbnQJCQludW1fZWxlbXM7CisJRGF0dW0JICAgKmVs ZW1fdmFsdWVzOworCWJvb2wJICAgKmVsZW1fbnVsbHM7CisJVHlwZUNhY2hlRW50cnkgKnR5 cGU7CisJU29ydFN1cHBvcnREYXRhIHNzdXA7CisKKwkvKiBudW1iZXIgb2Ygbm9uLW51bGwg ZWxlbWVudHMgaW4gdGhlIGFycmF5ICovCisJaW50CQkJbnVtX25vbm51bGxzOworCisJLyoK KwkgKiBpZ25vcmUgc2NhbGFyIGtleXMKKwkgKgorCSAqIFhYWCBNYXliZSB3ZSBzaG91bGQg cHJlcHJvY2VzcyBzY2FsYXIga2V5cyB0b28uIEl0J2QgbWFrZSB0aGUgY29uc2lzdGVudAor CSAqIGZ1bmN0aW9uIHNpbXBsZXIgYnkgcmVtb3ZpbmcgdGhlIGJyYW5jaGluZy4KKwkgKi8K KwlpZiAoIShrZXktPnNrX2ZsYWdzICYgU0tfU0VBUkNIQVJSQVkpKQorCQlQR19SRVRVUk5f UE9JTlRFUihrZXkpOworCisJYXJyYXl2YWwgPSBEYXR1bUdldEFycmF5VHlwZVAoa2V5LT5z a19hcmd1bWVudCk7CisKKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihBUlJfRUxFTVRZUEUoYXJy YXl2YWwpLAorCQkJCQkJICZlbG1sZW4sICZlbG1ieXZhbCwgJmVsbWFsaWduKTsKKworCWRl Y29uc3RydWN0X2FycmF5KGFycmF5dmFsLAorCQkJCQkgIEFSUl9FTEVNVFlQRShhcnJheXZh bCksCisJCQkJCSAgZWxtbGVuLCBlbG1ieXZhbCwgZWxtYWxpZ24sCisJCQkJCSAgJmVsZW1f dmFsdWVzLCAmZWxlbV9udWxscywgJm51bV9lbGVtcyk7CisKKwkvKiBlbGltaW5hdGUgTlVM TCBlbGVtZW50cyAqLworCW51bV9ub25udWxscyA9IDA7CisJZm9yIChpbnQgaSA9IDA7IGkg PCBudW1fZWxlbXM7IGkrKykKKwl7CisJCS8qIHNraXAgTlVMTCBlbGVtZW50cyAqLworCQlp ZiAoZWxlbV9udWxsc1tpXSkKKwkJCWNvbnRpbnVlOworCisJCS8qIGlmIG5lZWRlZCwgbW92 ZSB0aGUgbm9uLU5VTEwgb25lcyAqLworCQlpZiAobnVtX25vbm51bGxzICE9IGkpCisJCQll bGVtX3ZhbHVlc1tudW1fbm9ubnVsbHNdID0gZWxlbV92YWx1ZXNbaV07CisKKwkJbnVtX25v bm51bGxzKys7CisJfQorCisJbnVtX2VsZW1zID0gbnVtX25vbm51bGxzOworCisJdHlwZSA9 IGxvb2t1cF90eXBlX2NhY2hlKEFSUl9FTEVNVFlQRShhcnJheXZhbCksIFRZUEVDQUNIRV9M VF9PUFIpOworCisJbWVtc2V0KCZzc3VwLCAwLCBzaXplb2YoU29ydFN1cHBvcnREYXRhKSk7 CisKKwlzc3VwLnNzdXBfY29sbGF0aW9uID0ga2V5LT5za19jb2xsYXRpb247CisJc3N1cC5z c3VwX2N4dCA9IEN1cnJlbnRNZW1vcnlDb250ZXh0OworCisJUHJlcGFyZVNvcnRTdXBwb3J0 RnJvbU9yZGVyaW5nT3AodHlwZS0+bHRfb3ByLCAmc3N1cCk7CisKKwlxc29ydF9pbnRlcnJ1 cHRpYmxlKGVsZW1fdmFsdWVzLCBudW1fZWxlbXMsIHNpemVvZihEYXR1bSksCisJCQkJCQlj b21wYXJlX2FycmF5X3ZhbHVlcywgJnNzdXApOworCisJc2NhbmFycmF5ID0gcGFsbG9jMChz aXplb2YoU2NhbktleUFycmF5KSk7CisJc2NhbmFycmF5LT50eXBlaWQgPSBBUlJfRUxFTVRZ UEUoYXJyYXl2YWwpOworCXNjYW5hcnJheS0+bmVsZW1lbnRzID0gbnVtX2VsZW1zOworCXNj YW5hcnJheS0+ZWxlbWVudHMgPSBlbGVtX3ZhbHVlczsKKworCW5ld2tleSA9IHBhbGxvYzAo c2l6ZW9mKFNjYW5LZXlEYXRhKSk7CisKKwlTY2FuS2V5RW50cnlJbml0aWFsaXplV2l0aElu Zm8obmV3a2V5LAorCQkJCQkJCQkgICAoa2V5LT5za19mbGFncyB8IFNLX0JSSU5fU09SVEVE KSwKKwkJCQkJCQkJICAga2V5LT5za19hdHRubywKKwkJCQkJCQkJICAga2V5LT5za19zdHJh dGVneSwKKwkJCQkJCQkJICAga2V5LT5za19zdWJ0eXBlLAorCQkJCQkJCQkgICBrZXktPnNr X2NvbGxhdGlvbiwKKwkJCQkJCQkJICAgJmtleS0+c2tfZnVuYywKKwkJCQkJCQkJICAgUG9p bnRlckdldERhdHVtKHNjYW5hcnJheSkpOworCisJUEdfUkVUVVJOX1BPSU5URVIobmV3a2V5 KTsKK30KKworCiAvKgogICogR2l2ZW4gYW4gaW5kZXggdHVwbGUgY29ycmVzcG9uZGluZyB0 byBhIGNlcnRhaW4gcGFnZSByYW5nZSBhbmQgYSBzY2FuIGtleSwKICAqIHJldHVybiB3aGV0 aGVyIHRoZSBzY2FuIGtleSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGluZGV4IHR1cGxlJ3Mg bWluL21heApAQCAtMTU3LDQ2ICszMTksMTgzIEBAIGJyaW5fbWlubWF4X2NvbnNpc3RlbnQo UEdfRlVOQ1RJT05fQVJHUykKIAlhdHRubyA9IGtleS0+c2tfYXR0bm87CiAJc3VidHlwZSA9 IGtleS0+c2tfc3VidHlwZTsKIAl2YWx1ZSA9IGtleS0+c2tfYXJndW1lbnQ7Ci0Jc3dpdGNo IChrZXktPnNrX3N0cmF0ZWd5KQorCisJLyoKKwkgKiBGb3IgcmVndWxhciAoc2NhbGFyKSBz Y2FuIGtleXMsIHdlIHNpbXBseSBjb21wYXJlIHRoZSB2YWx1ZSB0byB0aGUKKwkgKiByYW5n ZSBtaW4vbWF4IHZhbHVlcywgYW5kIHdlJ3JlIGRvbmUuIEZvciBwcmVwcm9jZXNzZWQgU0tf U0VBUkNIQVJSQVkKKwkgKiBrZXlzIHdlIG5lZWQgdG8gbG9vcCB0aHJvdWdoIHRoZSBkZXBh cnNlZCB2YWx1ZXMuCisJICovCisJaWYgKGxpa2VseSghKGtleS0+c2tfZmxhZ3MgJiBTS19C UklOX1NPUlRFRCkpKQogCXsKLQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoKLQkJY2Fz ZSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgotCQkJZmluZm8gPSBtaW5tYXhfZ2V0X3N0 cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKLQkJCQkJCQkJCQkJCSBr ZXktPnNrX3N0cmF0ZWd5KTsKLQkJCW1hdGNoZXMgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5m bywgY29sbG9pZCwgY29sdW1uLT5idl92YWx1ZXNbMF0sCi0JCQkJCQkJCQkJdmFsdWUpOwot CQkJYnJlYWs7Ci0JCWNhc2UgQlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgotCi0JCQkvKgotCQkJ ICogSW4gdGhlIGVxdWFsaXR5IGNhc2UgKFdIRVJFIGNvbCA9IHNvbWV2YWwpLCB3ZSB3YW50 IHRvIHJldHVybgotCQkJICogdGhlIGN1cnJlbnQgcGFnZSByYW5nZSBpZiB0aGUgbWluaW11 bSB2YWx1ZSBpbiB0aGUgcmFuZ2UgPD0KLQkJCSAqIHNjYW4ga2V5LCBhbmQgdGhlIG1heGlt dW0gdmFsdWUgPj0gc2NhbiBrZXkuCi0JCQkgKi8KLQkJCWZpbmZvID0gbWlubWF4X2dldF9z dHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCi0JCQkJCQkJCQkJCQkg QlRMZXNzRXF1YWxTdHJhdGVneU51bWJlcik7Ci0JCQltYXRjaGVzID0gRnVuY3Rpb25DYWxs MkNvbGwoZmluZm8sIGNvbGxvaWQsIGNvbHVtbi0+YnZfdmFsdWVzWzBdLAotCQkJCQkJCQkJ CXZhbHVlKTsKLQkJCWlmICghRGF0dW1HZXRCb29sKG1hdGNoZXMpKQorCQlzd2l0Y2ggKGtl eS0+c2tfc3RyYXRlZ3kpCisJCXsKKwkJCWNhc2UgQlRMZXNzU3RyYXRlZ3lOdW1iZXI6CisJ CQljYXNlIEJUTGVzc0VxdWFsU3RyYXRlZ3lOdW1iZXI6CisJCQkJZmluZm8gPSBtaW5tYXhf Z2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJ CQkJCQkga2V5LT5za19zdHJhdGVneSk7CisJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJD b2xsKGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4tPmJ2X3ZhbHVlc1swXSwKKwkJCQkJCQkJCQkJ dmFsdWUpOworCQkJCWJyZWFrOworCQkJY2FzZSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXI6CisK KwkJCQkvKgorCQkJCSAqIEluIHRoZSBlcXVhbGl0eSBjYXNlIChXSEVSRSBjb2wgPSBzb21l dmFsKSwgd2Ugd2FudCB0byByZXR1cm4KKwkJCQkgKiB0aGUgY3VycmVudCBwYWdlIHJhbmdl IGlmIHRoZSBtaW5pbXVtIHZhbHVlIGluIHRoZSByYW5nZSA8PQorCQkJCSAqIHNjYW4ga2V5 LCBhbmQgdGhlIG1heGltdW0gdmFsdWUgPj0gc2NhbiBrZXkuCisJCQkJICovCisJCQkJZmlu Zm8gPSBtaW5tYXhfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlw ZSwKKwkJCQkJCQkJCQkJCQkgQlRMZXNzRXF1YWxTdHJhdGVneU51bWJlcik7CisJCQkJbWF0 Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4tPmJ2X3Zh bHVlc1swXSwKKwkJCQkJCQkJCQkJdmFsdWUpOworCQkJCWlmICghRGF0dW1HZXRCb29sKG1h dGNoZXMpKQorCQkJCQlicmVhazsKKwkJCQkvKiBtYXgoKSA+PSBzY2Fua2V5ICovCisJCQkJ ZmluZm8gPSBtaW5tYXhfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3Vi dHlwZSwKKwkJCQkJCQkJCQkJCQkgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcik7CisJ CQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4t PmJ2X3ZhbHVlc1sxXSwKKwkJCQkJCQkJCQkJdmFsdWUpOworCQkJCWJyZWFrOworCQkJY2Fz ZSBCVEdyZWF0ZXJFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJY2FzZSBCVEdyZWF0ZXJTdHJh dGVneU51bWJlcjoKKwkJCQlmaW5mbyA9IG1pbm1heF9nZXRfc3RyYXRlZ3lfcHJvY2luZm8o YmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJCSBrZXktPnNrX3N0cmF0ZWd5 KTsKKwkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIGNv bHVtbi0+YnZfdmFsdWVzWzFdLAorCQkJCQkJCQkJCQl2YWx1ZSk7CisJCQkJYnJlYWs7CisJ CQlkZWZhdWx0OgorCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KKwkJCQllbG9nKEVSUk9S LCAiaW52YWxpZCBzdHJhdGVneSBudW1iZXIgJWQiLCBrZXktPnNrX3N0cmF0ZWd5KTsKKwkJ CQltYXRjaGVzID0gMDsKKwkJCQlicmVhazsKKwkJfQorCX0KKwllbHNlCisJeworCQlTY2Fu S2V5QXJyYXkgKmFycmF5ID0gKFNjYW5LZXlBcnJheSAqKSB2YWx1ZTsKKworCQkvKiBjYW4g aGFwcGVuIGlmIHRoZSBJTiBsaXN0IGNvbnRhaW5lZCBqdXN0IE5VTExzICovCisJCWlmIChh cnJheS0+bmVsZW1lbnRzID09IDApCisJCQlQR19SRVRVUk5fQk9PTChmYWxzZSk7CisKKwkJ c3dpdGNoIChrZXktPnNrX3N0cmF0ZWd5KQorCQl7CisJCQljYXNlIEJUTGVzc1N0cmF0ZWd5 TnVtYmVyOgorCQkJY2FzZSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJCS8qCisJ CQkJICogQ2hlY2sgdGhlIGxhc3QgKGxhcmdlc3QpIHZhbHVlIGluIHRoZSBhcnJheSAtIGF0 IGxlYXN0IHRoaXMKKwkJCQkgKiB2YWx1ZSBoYXMgdG8gZXhjZWVkIHRoZSByYW5nZSBtaW52 YWwuCisJCQkJICovCisJCQkJZmluZm8gPSBtaW5tYXhfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZv KGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJCQkJCQkga2V5LT5za19zdHJhdGVn eSk7CisJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCBj b2x1bW4tPmJ2X3ZhbHVlc1swXSwKKwkJCQkJCQkJCQkJYXJyYXktPmVsZW1lbnRzW2FycmF5 LT5uZWxlbWVudHMtMV0pOworCQkJCWJyZWFrOworCQkJY2FzZSBCVEVxdWFsU3RyYXRlZ3lO dW1iZXI6CisKKwkJCQkvKgorCQkJCSAqIEluIHRoZSBlcXVhbGl0eSBjYXNlIChXSEVSRSBj b2wgPSBzb21ldmFsKSwgd2Ugd2FudCB0byByZXR1cm4KKwkJCQkgKiB0aGUgY3VycmVudCBw YWdlIHJhbmdlIGlmIHRoZSBtaW5pbXVtIHZhbHVlIGluIHRoZSByYW5nZSA8PQorCQkJCSAq IHNjYW4ga2V5LCBhbmQgdGhlIG1heGltdW0gdmFsdWUgPj0gc2NhbiBrZXkuCisJCQkJICoK KwkJCQkgKiBXZSBkbyB0aGlzIGluIHR3byBwaGFzZXMuIFdlIGNoZWNrIHRoZSBhcnJheSBt aW4vbWF4IHZhbHVlcyB0byBzZWUKKwkJCQkgKiBpZiB0aGVyZSBldmVuIGNhbiBiZSBhIG1h dGNoaW5nIHZhbHVlLCBhbmQgaWYgeWVzIHdlIGRvIGEgYmluYXJ5CisJCQkJICogc2VhcmNo IHRvIGZpbmQgdGhlIGZpcnN0IHZhbHVlIHRoYXQgZXhjZWVkcyByYW5nZSBtaW52YWwuIEFu ZCB0aGVuCisJCQkJICogd2UgY2hlY2sgaWYgaXQgYWN0dWFsbHkgbWF0Y2hlcyB0aGUgcmFu Z2UuCisJCQkJICoKKwkJCQkgKiBYWFggVGhlIGZpcnN0IHBoYXNlIGlzIHByb2JhYmx5IHVu bmVjZXNzYXJ5LCBiZWNhdXNlIGxvd2VyX2JvdW5kKCkKKwkJCQkgKiBkb2VzIHByZXR0eSBt dWNoIGV4YWN0bHkgdGhhdCB0b28uCisJCQkJICovCisJCQkJeworCQkJCQlEYXR1bSB2YWw7 CisJCQkJCVNvcnRTdXBwb3J0RGF0YSBzc3VwOworCQkJCQlpbnQJCQlsb3dlcjsKKwkJCQkJ VHlwZUNhY2hlRW50cnkgKnR5cGU7CisKKwkJCQkJLyogSXMgdGhlIGZpcnN0IChzbWFsbGVz dCkgdmFsdWUgYWZ0ZXIgdGhlIEJSSU4gcmFuZ2U/ICovCisJCQkJCXZhbCA9IGFycmF5LT5l bGVtZW50c1swXTsKKworCQkJCQlmaW5mbyA9IG1pbm1heF9nZXRfc3RyYXRlZ3lfcHJvY2lu Zm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJCQkgQlRMZXNzRXF1YWxT dHJhdGVneU51bWJlcik7CisJCQkJCW1hdGNoZXMgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5m bywgY29sbG9pZCwgdmFsLCBjb2x1bW4tPmJ2X3ZhbHVlc1sxXSk7CisKKwkJCQkJLyogbWlu dmFsID4gbWF4KHJhbmdlIHZhbHVlcykgKi8KKwkJCQkJaWYgKCFEYXR1bUdldEJvb2wobWF0 Y2hlcykpCisJCQkJCQlicmVhazsKKworCQkJCQkvKiBJcyB0aGUgbGFzdCAobGFyZ2VzdCkg dmFsdWUgYmVmb3JlIHRoZSBCUklOIHJhbmdlPyAqLworCQkJCQl2YWwgPSBhcnJheS0+ZWxl bWVudHNbYXJyYXktPm5lbGVtZW50cy0xXTsKKworCQkJCQlmaW5mbyA9IG1pbm1heF9nZXRf c3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJ CQkgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcik7CisJCQkJCW1hdGNoZXMgPSBGdW5j dGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgdmFsLCBjb2x1bW4tPmJ2X3ZhbHVlc1sw XSk7CisKKwkJCQkJLyogbWF4dmFsIDwgbWluKHJhbmdlIHZhbHVlcykgKi8KKwkJCQkJaWYg KCFEYXR1bUdldEJvb2wobWF0Y2hlcykpCisJCQkJCQlicmVhazsKKworCQkJCQkvKgorCQkJ CQkgKiBPSywgdGhlcmUgbWlnaHQgYmUgc29tZSB2YWx1ZXMgbWF0Y2hpbmcgdGhlIHJhbmdl LiBXZSBoYXZlCisJCQkJCSAqIHRvIHNlYXJjaCB0aGVtIG9uZSBieSBvbmUsIG9yIHBlcmhh cHMgdHJ5IGJpbnNlYXJjaC4KKwkJCQkJICovCisJCQkJCXR5cGUgPSBsb29rdXBfdHlwZV9j YWNoZShhcnJheS0+dHlwZWlkLCBUWVBFQ0FDSEVfTFRfT1BSKTsKKworCQkJCQltZW1zZXQo JnNzdXAsIDAsIHNpemVvZihTb3J0U3VwcG9ydERhdGEpKTsKKworCQkJCQlzc3VwLnNzdXBf Y29sbGF0aW9uID0ga2V5LT5za19jb2xsYXRpb247CisJCQkJCXNzdXAuc3N1cF9jeHQgPSBD dXJyZW50TWVtb3J5Q29udGV4dDsKKworCQkJCQlQcmVwYXJlU29ydFN1cHBvcnRGcm9tT3Jk ZXJpbmdPcCh0eXBlLT5sdF9vcHIsICZzc3VwKTsKKworCQkJCQlsb3dlciA9IGxvd2VyX2Jv dW5kYXJ5KGFycmF5LT5lbGVtZW50cywgYXJyYXktPm5lbGVtZW50cywgY29sdW1uLT5idl92 YWx1ZXNbMF0sICZzc3VwKTsKKworCQkJCQkvKiBubyBlbGVtZW50cyBjYW4gcG9zc2libHkg bWF0Y2ggKi8KKwkJCQkJaWYgKGxvd2VyID09IGFycmF5LT5uZWxlbWVudHMpCisJCQkJCXsK KwkJCQkJCW1hdGNoZXMgPSBCb29sR2V0RGF0dW0oZmFsc2UpOworCQkJCQkJYnJlYWs7CisJ CQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBPSywgdGhlIGZpcnN0IGVsZW1lbnQgbXVzdCBt YXRjaCB0aGUgdXBwZXIgYm91bmRhcnkgdG9vCisJCQkJCSAqIChpZiBpdCBkb2VzIG5vdCwg bm8gZm9sbG93aW5nIGVsZW1lbnRzIGNhbikuCisJCQkJCSAqLworCQkJCQl2YWwgPSBhcnJh eS0+ZWxlbWVudHNbbG93ZXJdOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoZSBlcXVhbGl0 eSBjYXNlIChXSEVSRSBjb2wgPSBzb21ldmFsKSwgd2Ugd2FudCB0byByZXR1cm4KKwkJCQkJ ICogdGhlIGN1cnJlbnQgcGFnZSByYW5nZSBpZiB0aGUgbWluaW11bSB2YWx1ZSBpbiB0aGUg cmFuZ2UgPD0KKwkJCQkJICogc2NhbiBrZXksIGFuZCB0aGUgbWF4aW11bSB2YWx1ZSA+PSBz Y2FuIGtleS4KKwkJCQkJICovCisJCQkJCWZpbmZvID0gbWlubWF4X2dldF9zdHJhdGVneV9w cm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCSBCVExlc3NF cXVhbFN0cmF0ZWd5TnVtYmVyKTsKKwkJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xs KGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4tPmJ2X3ZhbHVlc1swXSwKKwkJCQkJCQkJCQkJCXZh bCk7CisJCQkJCWlmICghRGF0dW1HZXRCb29sKG1hdGNoZXMpKQorCQkJCQkJYnJlYWs7CisJ CQkJCS8qIG1heCgpID49IHNjYW5rZXkgKi8KKwkJCQkJZmluZm8gPSBtaW5tYXhfZ2V0X3N0 cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJCQkJCQkJ IEJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXIpOworCQkJCQltYXRjaGVzID0gRnVuY3Rp b25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIGNvbHVtbi0+YnZfdmFsdWVzWzFdLAorCQkJ CQkJCQkJCQkJdmFsKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJY2FzZSBCVEdyZWF0ZXJF cXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcjoK KwkJCQkvKgorCQkJCSAqIENoZWNrIHRoZSBmaXJzdCAoc21hbGxlc3QpIHZhbHVlIGluIHRo ZSBhcnJheSAtIGF0IGxlYXN0IHRoaXMKKwkJCQkgKiB2YWx1ZSBoYXMgdG8gYmUgc21hbGxl ciB0aGFuIHRoZSByYW5nZSBtYXh2YWwuCisJCQkJICovCisJCQkJZmluZm8gPSBtaW5tYXhf Z2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJ CQkJCQkga2V5LT5za19zdHJhdGVneSk7CisJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJD b2xsKGZpbmZvLCBjb2xsb2lkLCBjb2x1bW4tPmJ2X3ZhbHVlc1sxXSwKKwkJCQkJCQkJCQkJ YXJyYXktPmVsZW1lbnRzWzBdKTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJLyog c2hvdWxkbid0IGhhcHBlbiAqLworCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5 IG51bWJlciAlZCIsIGtleS0+c2tfc3RyYXRlZ3kpOworCQkJCW1hdGNoZXMgPSAwOwogCQkJ CWJyZWFrOwotCQkJLyogbWF4KCkgPj0gc2NhbmtleSAqLwotCQkJZmluZm8gPSBtaW5tYXhf Z2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKLQkJCQkJCQkJ CQkJCSBCVEdyZWF0ZXJFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKLQkJCW1hdGNoZXMgPSBGdW5j dGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgY29sdW1uLT5idl92YWx1ZXNbMV0sCi0J CQkJCQkJCQkJdmFsdWUpOwotCQkJYnJlYWs7Ci0JCWNhc2UgQlRHcmVhdGVyRXF1YWxTdHJh dGVneU51bWJlcjoKLQkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcjoKLQkJCWZpbmZv ID0gbWlubWF4X2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUs Ci0JCQkJCQkJCQkJCQkga2V5LT5za19zdHJhdGVneSk7Ci0JCQltYXRjaGVzID0gRnVuY3Rp b25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIGNvbHVtbi0+YnZfdmFsdWVzWzFdLAotCQkJ CQkJCQkJCXZhbHVlKTsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJLyogc2hvdWxkbid0 IGhhcHBlbiAqLwotCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVk Iiwga2V5LT5za19zdHJhdGVneSk7Ci0JCQltYXRjaGVzID0gMDsKLQkJCWJyZWFrOworCQl9 CiAJfQogCiAJUEdfUkVUVVJOX0RBVFVNKG1hdGNoZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2JyaW4vYnJpbl92YWxpZGF0ZS5jCmluZGV4IGM4ZWRmYjM3NTkxLi4wODg5ZTI0YmMwMSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYwpAQCAtMTA4LDYg KzEwOCwxMCBAQCBicmludmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQljYXNlIEJSSU5f UFJPQ05VTV9PUFRJT05TOgogCQkJCW9rID0gY2hlY2tfYW1vcHRzcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYyk7CiAJCQkJYnJlYWs7CisJCQljYXNlIEJSSU5fUFJPQ05VTV9Q UkVQUk9DRVNTOgorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQkJCQkJCQkJMiwgMiwgSU5URVJOQUxP SUQsIElOVEVSTkFMT0lEKTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogQ29t cGxhaW4gaWYgaXQncyBub3QgYSB2YWxpZCBvcHRpb25hbCBwcm9jIG51bWJlciAqLwogCQkJ CWlmIChwcm9jZm9ybS0+YW1wcm9jbnVtIDwgQlJJTl9GSVJTVF9PUFRJT05BTF9QUk9DTlVN IHx8CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKaW5kZXggNWI5NTAxMjlkZTAuLjE2 NjY4MWMzMWVmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC04MDQsNiAr ODA0LDggQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vYnl0ZWFfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICdieXRlYScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbXByb2NudW0g PT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vYnl0ZWFfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdieXRl YScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbXByb2NudW0gPT4gJzYnLCBh bXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAKICMgYmxvb20gYnl0ZWEK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdieXRlYScsCkBAIC04MzUsNiArODM3LDggQEAKICAgYW1wcm9jID0+ICdicmlu X21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vY2hhcl9t aW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ2NoYXInLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4 X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vY2hhcl9taW5tYXhfb3BzJywg YW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2NoYXIn LCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nlc3Mn IH0sCiAKICMgYmxvb20gImNoYXIiCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9jaGFyX2Js b29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdjaGFyJywKQEAgLTg2NCw2ICs4NjgsOCBA QAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0sCiB7IGFtcHJvY2Zh bWlseSA9PiAnYnJpbi9uYW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbmFt ZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9PiAnNCcsIGFt cHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9uYW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbmFtZScsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogIyBibG9vbSBuYW1lCiB7IGFtcHJvY2ZhbWls eSA9PiAnYnJpbi9uYW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICduYW1lJywK QEAgLTg5Myw2ICs4OTksOCBAQAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3Rl bnQnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnaW50OCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcs IGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnaW50OCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251 bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ2ludDInLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDInLCBhbXByb2NudW0g PT4gJzEnLApAQCAtOTA1LDYgKzkxMyw4IEBACiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhf Y29uc2lzdGVudCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4 X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICdpbnQyJywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlv bicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbnQyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywg YW1wcm9jbnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9 LAogCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnaW50NCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50NCcsIGFt cHJvY251bSA9PiAnMScsCkBAIC05MTcsNiArOTI3LDggQEAKICAgYW1wcm9jID0+ICdicmlu X21pbm1heF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdl cl9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAogICBhbXByb2NyaWdo dHR5cGUgPT4gJ2ludDQnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlu bWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9taW5tYXhf b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAorICBhbXByb2NyaWdodHR5cGUgPT4g J2ludDQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXBy b2Nlc3MnIH0sCiAKICMgbWlubWF4IG11bHRpIGludGVnZXI6IGludDIsIGludDQsIGludDgK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbnQyJywKQEAgLTEwMzQsNiArMTA0Niw4IEBACiAgIGFtcHJv YyA9PiAnYnJpbl9taW5tYXhfY29uc2lzdGVudCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL3RleHRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0ZXh0JywKICAgYW1w cm9jcmlnaHR0eXBlID0+ICd0ZXh0JywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdi cmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RleHRfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0ZXh0JywKKyAgYW1wcm9jcmlnaHR0eXBl ID0+ICd0ZXh0JywgYW1wcm9jbnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9w cmVwcm9jZXNzJyB9LAogCiAjIGJsb29tIHRleHQKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmlu L3RleHRfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RleHQnLApAQCAtMTA2Miw2 ICsxMDc2LDggQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9jb25zaXN0ZW50JyB9LAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vb2lkX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAnb2lkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4g JzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vb2lkX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lkJywKKyAg YW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4g J2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAKICMgbWlubWF4IG11bHRpIG9pZAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vb2lkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnb2lkJywKQEAgLTExMTAsNiArMTEyNiw4IEBACiAgIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfY29uc2lzdGVudCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9t aW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpZCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAndGlkJywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91 bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9taW5tYXhfb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ3RpZCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGlkJywgYW1w cm9jbnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAog CiAjIGJsb29tIHRpZAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlkX2Jsb29tX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICd0aWQnLApAQCAtMTE2MCw2ICsxMTc4LDkgQEAKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnZmxvYXQ0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdmbG9hdDQnLCBhbXByb2NudW0g PT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2Nm YW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdm bG9hdDQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2Zsb2F0NCcsIGFtcHJvY251bSA9PiAn NicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdmbG9hdDgnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2Zsb2F0OCcsIGFtcHJvY251bSA9 PiAnMScsCkBAIC0xMTczLDYgKzExOTQsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v ZmxvYXRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDgnLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ2Zsb2F0OCcsIGFtcHJvY251bSA9PiAnNCcsCiAgIGFtcHJvYyA9 PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9h dF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0OCcsCisgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnZmxvYXQ4JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdi cmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1pbm1heCBtdWx0aSBmbG9hdAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdmbG9hdDQnLApAQCAtMTI2MSw2ICsxMjg1LDkgQEAKIHsgYW1wcm9jZmFt aWx5ID0+ICdicmluL21hY2FkZHJfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdt YWNhZGRyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVtID0+ ICc0JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFt aWx5ID0+ICdicmluL21hY2FkZHJfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdt YWNhZGRyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVtID0+ ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1p bm1heCBtdWx0aSBtYWNhZGRyCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyX21p bm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbWFjYWRkcicsCkBAIC0xMzE0 LDYgKzEzNDEsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbWFjYWRkcjhfbWlubWF4 X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyOCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnbWFjYWRkcjgnLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbWFjYWRkcjhfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyOCcsCisgIGFtcHJvY3JpZ2h0 dHlwZSA9PiAnbWFjYWRkcjgnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2Jy aW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAKICMgbWlubWF4IG11bHRpIG1hY2FkZHI4CiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyOF9taW5tYXhfbXVsdGlfb3BzJywKQEAg LTEzNjYsNiArMTM5Niw4IEBACiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfY29uc2lzdGVu dCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfbWlubWF4X29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0Jywg YW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sg YW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdpbmV0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVt ID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1p bm1heCBtdWx0aSBpbmV0CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9uZXR3b3JrX21pbm1h eF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCkBAIC0xNDM2LDYgKzE0 NjgsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYnBjaGFyX21pbm1heF9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNo YXInLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9u JyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYnBjaGFyX21pbm1heF9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXIn LCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nl c3MnIH0sCiAKICMgYmxvb20gY2hhcmFjdGVyCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9i cGNoYXJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2JwY2hhcicsCkBAIC0xNDY3 LDYgKzE1MDIsOCBAQAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X2NvbnNpc3RlbnQnIH0s CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAndGltZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZScsIGFtcHJvY251 bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2Zh bWlseSA9PiAnYnJpbi90aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGlt ZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZScsIGFtcHJvY251bSA9PiAnNicsIGFt cHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogIyBtaW5tYXggbXVsdGkg dGltZSB3aXRob3V0IHRpbWUgem9uZQogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGltZV9t aW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWUnLApAQCAtMTUxNyw2 ICsxNTU0LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX21pbm1heF9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wJywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICd0aW1lc3RhbXAnLCBhbXByb2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXAnLAorICBhbXByb2NyaWdo dHR5cGUgPT4gJ3RpbWVzdGFtcCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAn YnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v ZGF0ZXRpbWVfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eics CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wdHonLCBhbXByb2NudW0gPT4gJzEn LApAQCAtMTUzMCw2ICsxNTcwLDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0 aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wdHonLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgYW1wcm9jbnVtID0+ICc0JywKICAg YW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL2RhdGV0aW1lX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1w dHonLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgYW1wcm9jbnVtID0+ ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5 cGUgPT4gJ2RhdGUnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2RhdGUnLCBhbXByb2NudW0g PT4gJzEnLApAQCAtMTU0Miw2ICsxNTg1LDggQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1h eF9jb25zaXN0ZW50JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlu bWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91 bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX21pbm1heF9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnZGF0ZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZGF0 ZScsIGFtcHJvY251bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2Vz cycgfSwKIAogIyBtaW5tYXggbXVsdGkgZGF0ZXRpbWUgKGRhdGUsIHRpbWVzdGFtcCwgdGlt ZXN0YW1wdHopCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhfbXVs dGlfb3BzJywKQEAgLTE2NjgsNiArMTcxMyw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9pbnRlcnZhbF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFsJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNCcsCiAg IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfdW5pb24nIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi9pbnRlcnZhbF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFs JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2VzcycgfSwKIAogIyBtaW5tYXgg bXVsdGkgaW50ZXJ2YWwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX21pbm1h eF9tdWx0aV9vcHMnLApAQCAtMTcyMSw2ICsxNzY5LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ ICdicmluL3RpbWV0el9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWV0eics CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXR6JywgYW1wcm9jbnVtID0+ICc0JywKICAg YW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL3RpbWV0el9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWV0eicsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXR6JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1pbm1heCBtdWx0aSB0 aW1lIHdpdGggdGltZSB6b25lCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1ldHpfbWlu bWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLApAQCAtMTc3MSw2 ICsxODIyLDggQEAKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9jb25zaXN0ZW50JyB9LAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYml0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAnYml0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdiaXQnLCBhbXByb2NudW0gPT4g JzQnLCBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vYml0X21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYml0JywKKyAg YW1wcm9jcmlnaHR0eXBlID0+ICdiaXQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4g J2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAKICMgbWlubWF4IGJpdCB2YXJ5aW5nCiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi92YXJiaXRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICd2YXJiaXQnLApAQCAtMTc4NSw2ICsxODM4LDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL3ZhcmJpdF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3ZhcmJp dCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndmFyYml0JywgYW1wcm9jbnVtID0+ICc0JywK ICAgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL3ZhcmJpdF9taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3ZhcmJpdCcs CisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndmFyYml0JywgYW1wcm9jbnVtID0+ICc2JywKKyAg YW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1pbm1heCBudW1l cmljCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9udW1lcmljX21pbm1heF9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnbnVtZXJpYycsCkBAIC0xNzk5LDYgKzE4NTUsOSBAQAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vbnVtZXJpY19taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ251bWVyaWMnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ251bWVyaWMnLCBhbXByb2Nu dW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vbnVtZXJpY19taW5tYXhfb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ251bWVyaWMnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ251bWVyaWMnLCBhbXByb2Nu dW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAK ICMgbWlubWF4IG11bHRpIG51bWVyaWMKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL251bWVy aWNfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdudW1lcmljJywKQEAg LTE4NTEsNiArMTkxMCw4IEBACiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfY29uc2lzdGVu dCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3V1aWRfbWlubWF4X29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICd1dWlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd1dWlkJywgYW1w cm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX21pbm1heF91bmlvbicgfSwKK3sgYW1w cm9jZmFtaWx5ID0+ICdicmluL3V1aWRfbWlubWF4X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICd1dWlkJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd1dWlkJywgYW1wcm9jbnVtID0+ICc2 JywgYW1wcm9jID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAjIG1pbm1heCBt dWx0aSB1dWlkCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91dWlkX21pbm1heF9tdWx0aV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCkBAIC0xOTI0LDYgKzE5ODUsOSBAQAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNuX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAncGdfbHNuJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19sc24nLCBhbXBy b2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3VuaW9uJyB9LAoreyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNuX21pbm1heF9vcHMnLCBhbXByb2NsZWZ0dHlw ZSA9PiAncGdfbHNuJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19sc24nLCBhbXByb2Nu dW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X3ByZXByb2Nlc3MnIH0sCiAK ICMgbWlubWF4IG11bHRpIHBnX2xzbgogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNu X21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDY2YjczYzM5MDBkLi42NjM4NTUyYmQwNSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC04NDk2LDYgKzg0OTYsOSBAQAogeyBvaWQg PT4gJzMzODYnLCBkZXNjciA9PiAnQlJJTiBtaW5tYXggc3VwcG9ydCcsCiAgIHByb25hbWUg PT4gJ2JyaW5fbWlubWF4X3VuaW9uJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCiAgIHByb2Fy Z3R5cGVzID0+ICdpbnRlcm5hbCBpbnRlcm5hbCBpbnRlcm5hbCcsIHByb3NyYyA9PiAnYnJp bl9taW5tYXhfdW5pb24nIH0sCit7IG9pZCA9PiAnOTMyNycsIGRlc2NyID0+ICdCUklOIG1p bm1heCBzdXBwb3J0JywKKyAgcHJvbmFtZSA9PiAnYnJpbl9taW5tYXhfcHJlcHJvY2Vzcycs IHByb3JldHR5cGUgPT4gJ2ludGVybmFsJywKKyAgcHJvYXJndHlwZXMgPT4gJ2ludGVybmFs IGludGVybmFsJywgcHJvc3JjID0+ICdicmluX21pbm1heF9wcmVwcm9jZXNzJyB9LAogCiAj IEJSSU4gbWlubWF4IG11bHRpCiB7IG9pZCA9PiAnNDYxNicsIGRlc2NyID0+ICdCUklOIG11 bHRpIG1pbm1heCBzdXBwb3J0JywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvYW11dGlscy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FtdXRpbHMu b3V0CmluZGV4IDdhYjYxMTNjNjE5Li5mM2UxZmJkMmFlMyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9hbXV0aWxzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FtdXRpbHMub3V0CkBAIC0xMDIsNyArMTAyLDcgQEAgc2VsZWN0IHByb3As CiAgb3JkZXJhYmxlICAgICAgICAgIHwgdCAgICAgfCBmICAgIHwgZiAgICB8IGYgICAgICAg ICAgICB8IGYgICAgICAgICAgIHwgZiAgIHwgZgogIGRpc3RhbmNlX29yZGVyYWJsZSB8IGYg ICAgIHwgZiAgICB8IHQgICAgfCBmICAgICAgICAgICAgfCB0ICAgICAgICAgICB8IGYgICB8 IGYKICByZXR1cm5hYmxlICAgICAgICAgfCB0ICAgICB8IGYgICAgfCBmICAgIHwgdCAgICAg ICAgICAgIHwgdCAgICAgICAgICAgfCBmICAgfCBmCi0gc2VhcmNoX2FycmF5ICAgICAgIHwg dCAgICAgfCBmICAgIHwgZiAgICB8IGYgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAg IHwgZgorIHNlYXJjaF9hcnJheSAgICAgICB8IHQgICAgIHwgZiAgICB8IGYgICAgfCBmICAg ICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICB8IHQKICBzZWFyY2hfbnVsbHMgICAgICAg fCB0ICAgICB8IGYgICAgfCB0ICAgIHwgdCAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCBm ICAgfCB0CiAgYm9ndXMgICAgICAgICAgICAgIHwgICAgICAgfCAgICAgIHwgICAgICB8ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgIHwgCiAoMTAgcm93cykKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2JyaW4ub3V0CmluZGV4IDczZmEzODM5NmU0Li45M2Q3MzE0ZTU5OSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW4ub3V0CkBAIC01NzIsMyArNTcyLDg2MSBA QCBDUkVBVEUgVU5MT0dHRUQgVEFCTEUgYnJpbnRlc3RfdW5sb2dnZWQgKG4gbnVtcmFuZ2Up OwogQ1JFQVRFIElOREVYIGJyaW5pZHhfdW5sb2dnZWQgT04gYnJpbnRlc3RfdW5sb2dnZWQg VVNJTkcgYnJpbiAobik7CiBJTlNFUlQgSU5UTyBicmludGVzdF91bmxvZ2dlZCBWQUxVRVMg KG51bXJhbmdlKDAsIDJeMTAwMDo6bnVtZXJpYykpOwogRFJPUCBUQUJMRSBicmludGVzdF91 bmxvZ2dlZDsKKy0tIGRvIHNvbWUgdGVzdHMgb24gSU4gY2xhdXNlcyBmb3Igc2ltcGxlIGRh dGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfMSAoYSBJTlQsIGIgQklHSU5U KSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF8xCitT RUxFQ1QgaS81ICsgbW9kKDk5MSAqIGkgKyA2MTcsIDIwKSwKKyAgICAgICBpLzEwICsgbW9k KDg1MyAqIGkgKyA0OTEsIDMwKQorICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIHMo aSk7CitDUkVBVEUgSU5ERVggYnJpbl9pbl90ZXN0XzFfaWR4XzEgT04gYnJpbl9pbl90ZXN0 XzEgVVNJTkcgYnJpbiAoYSBpbnQ0X21pbm1heF9vcHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5n ZT0xKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rlc3RfMV9pZHhfMiBPTiBicmluX2luX3Rl c3RfMSBVU0lORyBicmluIChiIGludDhfbWlubWF4X29wcykgV0lUSCAocGFnZXNfcGVyX3Jh bmdlPTEpOworU0VUIGVuYWJsZV9zZXFzY2FuPW9mZjsKKy0tIGludDogZXF1YWxpdGllcwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYSBJTiAoMTEzKTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChh ID0gMTEzKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVz dF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDExMykKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4g KDExMyk7CisgY291bnQgCistLS0tLS0tCisgICAgIDgKKygxIHJvdykKKworRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUg YSBJTiAoMTEzLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVj aGVjayBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsTlVMTH0nOjppbnRlZ2VyW10pKQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsTlVMTH0nOjppbnRlZ2Vy W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEg V0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgOAorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBhIElOIChOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5f dGVzdF8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgne05VTEwsTlVMTH0n OjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f aW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAo J3tOVUxMLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKDExMywgMTc3 KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBB TlkgKCd7MTEzLDE3N30nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBD b25kOiAoYSA9IEFOWSAoJ3sxMTMsMTc3fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIElOICgxMTMsIDE3 Nyk7CisgY291bnQgCistLS0tLS0tCisgICAgMTYKKygxIHJvdykKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJ TiAoMTEzLCAxNzcsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFn Z3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAg ICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7MTEzLDE3NyxOVUxMfSc6OmludGVn ZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0 XzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezExMywx NzcsTlVMTH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOworIGNvdW50 IAorLS0tLS0tLQorICAgIDE2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKDExMywgMTc3 LCAyNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNoZWNrIENv bmQ6IChhID0gQU5ZICgnezExMywxNzcsMjV9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRlZ2VyW10p KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hF UkUgYSBJTiAoMTEzLCAxNzcsIDI1KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyNAorKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBhIElOIChOVUxMLCAxMTMsIDE3NywgMjUpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEg PSBBTlkgKCd7TlVMTCwxMTMsMTc3LDI1fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzEKKyAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgne05VTEwsMTEzLDE3NywyNX0nOjppbnRlZ2Vy W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEg V0hFUkUgYSBJTiAoTlVMTCwgMTEzLCAxNzcsIDI1KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAyNAorKDEgcm93KQorCistLSBpbnQ6IGxlc3MgdGhhbgorRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8IEFOWSAo QVJSQVlbMzBdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAg U2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA8IEFO WSAoJ3szMH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo YSA8IEFOWSAoJ3szMH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbMzBdKTsKKyBj b3VudCAKKy0tLS0tLS0KKyAgIDEwMworKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChB UlJBWVsyMCwgTlVMTF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAt PiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYSA8IEFOWSAoJ3syMCxOVUxMfSc6OmludGVnZXJbXSkpCisgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzEKKyAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChhIDwgQU5ZICgnezIwLE5VTEx9Jzo6aW50ZWdlcltdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGEgPCBBTlkgKEFSUkFZWzIwLCBOVUxMXSk7CisgY291bnQgCistLS0tLS0tCisgICAgNTEK KygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbTlVMTCwgTlVMTF06OmludFtd KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChh IDwgQU5ZICgne05VTEwsTlVMTH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYSA8IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPCBB TlkgKEFSUkFZW05VTEwsIE5VTExdOjppbnRbXSk7CisgY291bnQgCistLS0tLS0tCisgICAg IDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbMzUsIDI5XSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJp bl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPCBBTlkgKCd7MzUsMjl9 Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmlu X2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPCBBTlkg KCd7MzUsMjl9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPCBBTlkgKEFSUkFZWzM1LCAyOV0pOworIGNv dW50IAorLS0tLS0tLQorICAgMTI3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPD0gQU5ZIChB UlJBWVs0NSwgNjAsIE5VTExdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdn cmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAg ICAgICAgUmVjaGVjayBDb25kOiAoYSA8PSBBTlkgKCd7NDUsNjAsTlVMTH0nOjppbnRlZ2Vy W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8x X2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8PSBBTlkgKCd7NDUsNjAs TlVMTH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8PSBBTlkgKEFSUkFZWzQ1LCA2MCwgTlVMTF0pOwor IGNvdW50IAorLS0tLS0tLQorICAgMjU1CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPCBBTlkg KEFSUkFZWzQxLCAzNywgNTVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRl CisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAg UmVjaGVjayBDb25kOiAoYSA8IEFOWSAoJ3s0MSwzNyw1NX0nOjppbnRlZ2VyW10pKQorICAg ICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8xCisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8IEFOWSAoJ3s0MSwzNyw1NX0nOjppbnRl Z2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbNDEsIDM3LCA1NV0pOworIGNvdW50IAorLS0tLS0t LQorICAgMjI3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPD0gQU5ZIChBUlJBWVtOVUxMLCA2 MCwgNDMsIDk0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPD0gQU5ZICgne05VTEwsNjAsNDMsOTR9Jzo6aW50ZWdl cltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3Rf MV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPD0gQU5ZICgne05VTEws NjAsNDMsOTR9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPD0gQU5ZIChBUlJBWVtOVUxMLCA2MCwgNDMs IDk0XSk7CisgY291bnQgCistLS0tLS0tCisgICA0MjcKKygxIHJvdykKKworLS0gaW50OiBn cmVhdGVyIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzIwMF0pOworICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0 XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiBBTlkgKCd7MjAwfSc6OmludGVnZXJb XSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFf aWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID4gQU5ZICgnezIwMH0nOjpp bnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0XzEgV0hFUkUgYSA+IEFOWSAoQVJSQVlbMjAwXSk7CisgY291bnQgCistLS0tLS0tCisg ICAgNDUKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA+IEFOWSAoQVJSQVlbMTc3LCBOVUxMXSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiBB TlkgKCd7MTc3LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGEgPiBBTlkgKCd7MTc3LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFS UkFZWzE3NywgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQorICAgMTU3CisoMSByb3cpCisK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjppbnRbXSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IEFOWSAoJ3tO VUxMLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiBicmluX2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPiBBTlkgKCd7TlVMTCxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhID4gQU5ZIChBUlJBWVtO VUxMLCBOVUxMXTo6aW50W10pOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cp CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzE1MywgMTQwXSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5f dGVzdF8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID4gQU5ZICgnezE1MywxNDB9Jzo6 aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2lu X3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPiBBTlkgKCd7 MTUzLDE0MH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA+IEFOWSAoQVJSQVlbMTUzLCAxNDBdKTsKKyBj b3VudCAKKy0tLS0tLS0KKyAgIDM0NQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhID49IEFOWSAo QVJSQVlbMTczLCAxOTEsIE5VTExdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0 XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPj0gQU5ZICgnezE3MywxOTEsTlVMTH0n OjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f aW5fdGVzdF8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+PSBBTlkg KCd7MTczLDE5MSxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhID49IEFOWSAoQVJSQVlbMTczLCAx OTEsIE5VTExdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDE4NQorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBX SEVSRSBhID4gQU5ZIChBUlJBWVsxMjAsIDE4NCwgMTY0XSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJp bl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiBBTlkgKCd7MTIwLDE4 NCwxNjR9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBv biBicmluX2luX3Rlc3RfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEg PiBBTlkgKCd7MTIwLDE4NCwxNjR9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzEy MCwgMTg0LCAxNjRdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDQ0NQorKDEgcm93KQorCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3Rf MSBXSEVSRSBhID49IEFOWSAoQVJSQVlbTlVMTCwgMTMwLCAxODEsIDE2OV0pOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNoZWNrIENv bmQ6IChhID49IEFOWSAoJ3tOVUxMLDEzMCwxODEsMTY5fSc6OmludGVnZXJbXSkpCisgICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzEKKyAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID49IEFOWSAoJ3tOVUxMLDEzMCwxODEsMTY5 fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBhID49IEFOWSAoQVJSQVlbTlVMTCwgMTMwLCAxODEsIDE2OV0p OworIGNvdW50IAorLS0tLS0tLQorICAgMzk3CisoMSByb3cpCisKKy0tIGJpZ2ludDogZXFh bGl0aWVzCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBiIElOICg4Mik7CisgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAg Qml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBD b25kOiAoYiA9IDgyKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f aW5fdGVzdF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IDgyKQor KDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUg YiBJTiAoODIpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEwCisoMSByb3cpCisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGIgSU4gKDgyLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAg IC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChiID0gQU5ZICgnezgyLE5VTEx9Jzo6YmlnaW50W10pKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3s4MixOVUxMfSc6OmJpZ2ludFtdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGIgSU4gKDgyLCBOVUxMKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEgcm93KQor CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfMSBXSEVSRSBiIElOIChOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQor ICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6YmlnaW50 W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8x X2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3tOVUxMLE5V TEx9Jzo6YmlnaW50W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYiBJTiAoTlVMTCwgTlVMTCk7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiBJTiAoODIsIDQxKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90 ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPSBBTlkgKCd7ODIsNDF9Jzo6Ymln aW50W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVz dF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0 MX0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEpOworIGNvdW50IAorLS0tLS0tLQorICAg IDIwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3s4 Miw0MSxOVUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiBicmluX2luX3Rlc3RfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGIgPSBBTlkgKCd7ODIsNDEsTlVMTH0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQorCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEsIE5V TEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDIwCisoMSByb3cpCisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIg SU4gKDgyLCA0MSwgMTUpOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAt PiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0MSwxNX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzIKKyAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5ZICgnezgyLDQxLDE1fSc6OmJpZ2ludFtdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGIgSU4gKDgyLCA0MSwgMTUpOworIGNvdW50IAorLS0tLS0tLQorICAgIDI1CisoMSByb3cp CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwgMTUpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPSBBTlkgKCd7TlVM TCw4Miw0MSwxNX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChiID0gQU5ZICgne05VTEwsODIsNDEsMTV9Jzo6YmlnaW50W10pKQorKDUgcm93cykKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiBJTiAoTlVMTCwg ODIsIDQxLCAxNSk7CisgY291bnQgCistLS0tLS0tCisgICAgMjUKKygxIHJvdykKKworLS0g YmlnaW50OiBsZXNzIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZWzMxXSk7CisgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90 ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPCBBTlkgKCd7MzF9Jzo6aW50ZWdl cltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3Rf MV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPCBBTlkgKCd7MzF9Jzo6 aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZWzMxXSk7CisgY291bnQgCistLS0tLS0tCisg ICAxNjQKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbNTUsIE5VTExdKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPCBBTlkg KCd7NTUsTlVMTH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoYiA8IEFOWSAoJ3s1NSxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIDwgQU5ZIChBUlJBWVs1 NSwgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQorICAgNDA0CisoMSByb3cpCisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGIgPCBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJp bl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPCBBTlkgKCd7TlVMTCxO VUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPCBB TlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZW05VTEwsIE5V TExdOjpiaWdpbnRbXSk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYiA8PSBBTlkgKEFSUkFZWzczLCA1MV0pOworICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEK KyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPD0gQU5ZICgnezczLDUxfSc6OmludGVnZXJb XSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFf aWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiIDw9IEFOWSAoJ3s3Myw1MX0n OjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzEgV0hFUkUgYiA8PSBBTlkgKEFSUkFZWzczLCA1MV0pOworIGNvdW50IAorLS0t LS0tLQorICAgNTk0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZWzY5LCA4 NywgTlVMTF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAt PiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYiA8IEFOWSAoJ3s2OSw4NyxOVUxMfSc6OmludGVnZXJbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzIKKyAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChiIDwgQU5ZICgnezY5LDg3LE5VTEx9Jzo6aW50ZWdl cltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8x IFdIRVJFIGIgPCBBTlkgKEFSUkFZWzY5LCA4NywgTlVMTF0pOworIGNvdW50IAorLS0tLS0t LQorICAgNzI0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPD0gQU5ZIChBUlJBWVs4MiwgOTEs IDM1XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBDb25k OiAoYiA8PSBBTlkgKCd7ODIsOTEsMzV9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhfMgorICAgICAgICAgICAg ICAgSW5kZXggQ29uZDogKGIgPD0gQU5ZICgnezgyLDkxLDM1fSc6OmludGVnZXJbXSkpCiso NSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBi IDw9IEFOWSAoQVJSQVlbODIsIDkxLCAzNV0pOworIGNvdW50IAorLS0tLS0tLQorICAgNzc0 CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPCBBTlkgKEFSUkFZW05VTEwsIDYzLCAyMSwgODVd KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4g IEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sg Q29uZDogKGIgPCBBTlkgKCd7TlVMTCw2MywyMSw4NX0nOjppbnRlZ2VyW10pKQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYiA8IEFOWSAoJ3tOVUxMLDYzLDIxLDg1fSc6Omlu dGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfMSBXSEVSRSBiIDwgQU5ZIChBUlJBWVtOVUxMLCA2MywgMjEsIDg1XSk7CisgY291bnQg CistLS0tLS0tCisgICA3MDQKKygxIHJvdykKKworLS0gYmlnaW50OiBncmVhdGVyIHRoYW4K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzk0XSk7CisgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJl Y2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7OTR9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhfMgorICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGIgPiBBTlkgKCd7OTR9Jzo6aW50ZWdlcltdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBB TlkgKEFSUkFZWzk0XSk7CisgY291bnQgCistLS0tLS0tCisgICAxOTYKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYiA+IEFOWSAoQVJSQVlbODAsIE5VTExdKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0 XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7ODAsTlVMTH0nOjppbnRl Z2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVz dF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+IEFOWSAoJ3s4MCxO VUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMSBXSEVSRSBiID4gQU5ZIChBUlJBWVs4MCwgTlVMTF0pOworIGNvdW50 IAorLS0tLS0tLQorICAgMzM2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZ W05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkK KyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMV9pZHhf MgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPiBBTlkgKCd7TlVMTCxOVUxMfSc6 OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7Cisg Y291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA+IEFOWSAo QVJSQVlbMTk5LCAxMDddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAg LT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzEKKyAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGIgPiBBTlkgKCd7MTk5LDEwN30nOjppbnRlZ2VyW10pKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYiA+IEFOWSAoJ3sxOTksMTA3fSc6OmludGVnZXJbXSkp CisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVS RSBiID4gQU5ZIChBUlJBWVsxOTksIDEwN10pOworIGNvdW50IAorLS0tLS0tLQorICAgIDc4 CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPj0gQU5ZIChBUlJBWVsxODIsIDEwMSwgTlVMTF0p OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAg Qml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAgUmVjaGVjayBD b25kOiAoYiA+PSBBTlkgKCd7MTgyLDEwMSxOVUxMfSc6OmludGVnZXJbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzFfaWR4XzIKKyAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChiID49IEFOWSAoJ3sxODIsMTAxLE5VTEx9Jzo6aW50 ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGIgPj0gQU5ZIChBUlJBWVsxODIsIDEwMSwgTlVMTF0pOworIGNvdW50IAor LS0tLS0tLQorICAgMTM3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzMw MCwgMTA2LCAyNTFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRl CisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMQorICAgICAgICAg UmVjaGVjayBDb25kOiAoYiA+IEFOWSAoJ3szMDAsMTA2LDI1MX0nOjppbnRlZ2VyW10pKQor ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8xX2lkeF8y CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+IEFOWSAoJ3szMDAsMTA2LDI1MX0n OjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzEgV0hFUkUgYiA+IEFOWSAoQVJSQVlbMzAwLCAxMDYsIDI1MV0pOworIGNvdW50 IAorLS0tLS0tLQorICAgIDg2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZ W05VTEwsIDE4MiwgMTAxLCAxNTVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9p bl90ZXN0XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7TlVMTCwxODIs MTAxLDE1NX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJyaW5faW5fdGVzdF8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo YiA+IEFOWSAoJ3tOVUxMLDE4MiwxMDEsMTU1fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiID4gQU5ZIChB UlJBWVtOVUxMLCAxODIsIDEwMSwgMTU1XSk7CisgY291bnQgCistLS0tLS0tCisgICAxMjcK KygxIHJvdykKKworRFJPUCBUQUJMRSBicmluX2luX3Rlc3RfMTsKK1JFU0VUIGVuYWJsZV9z ZXFzY2FuOworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2VzIGZvciB2YXJsZW5hIGRh dGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfMiAoYSBURVhUKSBXSVRIIChm aWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF8yCitTRUxFQ1QgdiBG Uk9NIChTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgKE9SREVSIEJZIHYpIGMsIHYgRlJPTSAo U0VMRUNUIG1kNSgoaS8xMyk6OnRleHQpIEFTIHYgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwx MDAwKSBzKGkpKSBmb28pIGJhciBPUkRFUiBCWSBjICsgMjUgKiByYW5kb20oKTsKK0NSRUFU RSBJTkRFWCBicmluX2luX3Rlc3RfMl9pZHggT04gYnJpbl9pbl90ZXN0XzIgVVNJTkcgYnJp biAoYSB0ZXh0X21pbm1heF9vcHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKK1NFVCBl bmFibGVfc2Vxc2Nhbj1vZmY7CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2 OWYzNTEwMzkxNTIxODknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9p bl90ZXN0XzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAnMzNlNzVmZjA5ZGQ2MDFi YmU2OWYzNTEwMzkxNTIxODknOjp0ZXh0KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIGJyaW5faW5fdGVzdF8yX2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSAnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknOjp0ZXh0KQorKDUgcm93 cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAo JzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5Jyk7CisgY291bnQgCistLS0tLS0t CisgICAgMTMKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJl NjlmMzUxMDM5MTUyMTg5JywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdh dGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8yCisgICAgICAg ICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5 MTUyMTg5LE5VTEx9Jzo6dGV4dFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2Nh biBvbiBicmluX2luX3Rlc3RfMl9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChh ID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LE5VTEx9Jzo6dGV4 dFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8y IFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsIE5VTEwp OworIGNvdW50IAorLS0tLS0tLQorICAgIDEzCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4g KE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0XzIKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKGEgPSBBTlkgKCd7TlVMTCxOVUxMfSc6OnRleHRbXSkpCisgICAgICAgICAtPiAgQml0 bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzJfaWR4CisgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYSA9IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6dGV4dFtdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKE5V TEwsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdI RVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0 NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBB Z2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8yCisg ICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlm MzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwfSc6OnRleHRb XSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzJf aWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3szM2U3NWZmMDlk ZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OSxmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJj MH0nOjp0ZXh0W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5 JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJyk7CisgY291bnQgCistLS0t LS0tCisgICAgMjYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAx YmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMw JywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUK KyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8yCisgICAgICAgICBS ZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUy MTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwLE5VTEx9Jzo6dGV4dFtdKSkK KyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMl9pZHgK KyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAx YmJlNjlmMzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwLE5V TEx9Jzo6dGV4dFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4 OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsIE5VTEwpOworIGNvdW50 IAorLS0tLS0tLQorICAgIDI2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZm MDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcx NDVhNzJjMCcsICdjNTFjZTQxMGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOScpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8yCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChh ID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlk ZWQ4OGYxOGVjZWU0NzE0NWE3MmMwLGM1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5 fSc6OnRleHRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9p bl90ZXN0XzJfaWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3sz M2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OSxmNDU3YzU0NWE5ZGVkODhmMThlY2Vl NDcxNDVhNzJjMCxjNTFjZTQxMGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOX0nOjp0ZXh0W10p KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hF UkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1 YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdm YzJhZjM5Jyk7CisgY291bnQgCistLS0tLS0tCisgICAgMzkKKygxIHJvdykKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hF UkUgYSBJTiAoTlVMTCwgJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0 NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1 ZTRiOTdmYzJhZjM5Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5f dGVzdF8yCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgne05VTEwsMzNlNzVm ZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODksZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1 YTcyYzAsYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzl9Jzo6dGV4dFtdKSkKKyAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfMl9pZHgKKyAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgne05VTEwsMzNlNzVmZjA5ZGQ2 MDFiYmU2OWYzNTEwMzkxNTIxODksZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1YTcyYzAs YzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzl9Jzo6dGV4dFtdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKE5V TEwsICczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVk ODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQxMGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYz OScpOworIGNvdW50IAorLS0tLS0tLQorICAgIDM5CisoMSByb3cpCisKK0RST1AgVEFCTEUg YnJpbl9pbl90ZXN0XzI7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJp bi5zcWwKaW5kZXggZTY4ZTllMThkZjUuLjk1ZGEwMjcwNDdlIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9icmluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9i cmluLnNxbApAQCAtNTE1LDMgKzUxNSwyODYgQEAgQ1JFQVRFIFVOTE9HR0VEIFRBQkxFIGJy aW50ZXN0X3VubG9nZ2VkIChuIG51bXJhbmdlKTsKIENSRUFURSBJTkRFWCBicmluaWR4X3Vu bG9nZ2VkIE9OIGJyaW50ZXN0X3VubG9nZ2VkIFVTSU5HIGJyaW4gKG4pOwogSU5TRVJUIElO VE8gYnJpbnRlc3RfdW5sb2dnZWQgVkFMVUVTIChudW1yYW5nZSgwLCAyXjEwMDA6Om51bWVy aWMpKTsKIERST1AgVEFCTEUgYnJpbnRlc3RfdW5sb2dnZWQ7CisKKy0tIGRvIHNvbWUgdGVz dHMgb24gSU4gY2xhdXNlcyBmb3Igc2ltcGxlIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSBi cmluX2luX3Rlc3RfMSAoYSBJTlQsIGIgQklHSU5UKSBXSVRIIChmaWxsZmFjdG9yPTEwKTsK K0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF8xCitTRUxFQ1QgaS81ICsgbW9kKDk5MSAqIGkg KyA2MTcsIDIwKSwKKyAgICAgICBpLzEwICsgbW9kKDg1MyAqIGkgKyA0OTEsIDMwKQorICBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIHMoaSk7CisKK0NSRUFURSBJTkRFWCBicmlu X2luX3Rlc3RfMV9pZHhfMSBPTiBicmluX2luX3Rlc3RfMSBVU0lORyBicmluIChhIGludDRf bWlubWF4X29wcykgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTEpOworQ1JFQVRFIElOREVYIGJy aW5faW5fdGVzdF8xX2lkeF8yIE9OIGJyaW5faW5fdGVzdF8xIFVTSU5HIGJyaW4gKGIgaW50 OF9taW5tYXhfb3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9MSk7CisKK1NFVCBlbmFibGVf c2Vxc2Nhbj1vZmY7CisKKy0tIGludDogZXF1YWxpdGllcworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEz KTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAo MTEzKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKworU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hF UkUgYSBJTiAoTlVMTCwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIElOICgxMTMs IDE3Nyk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEg SU4gKDExMywgMTc3KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOworCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIElOICgxMTMsIDE3 NywgTlVMTCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKDExMywgMTc3LCAyNSk7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKDExMywgMTc3LCAyNSk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8xIFdIRVJFIGEgSU4gKE5VTEwsIDExMywgMTc3LCAyNSk7CisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgSU4gKE5VTEwsIDExMywgMTc3LCAy NSk7CisKKy0tIGludDogbGVzcyB0aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChBUlJBWVszMF0p OworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5Z IChBUlJBWVszMF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChBUlJBWVsyMCwgTlVMTF0pOwor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChB UlJBWVsyMCwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwgQU5ZIChBUlJBWVtOVUxMLCBOVUxM XTo6aW50W10pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVS RSBhIDwgQU5ZIChBUlJBWVtOVUxMLCBOVUxMXTo6aW50W10pOworCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBhIDwg QU5ZIChBUlJBWVszNSwgMjldKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0XzEgV0hFUkUgYSA8IEFOWSAoQVJSQVlbMzUsIDI5XSk7CisKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPD0g QU5ZIChBUlJBWVs0NSwgNjAsIE5VTExdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYSA8PSBBTlkgKEFSUkFZWzQ1LCA2MCwgTlVMTF0pOworCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3Rf MSBXSEVSRSBhIDwgQU5ZIChBUlJBWVs0MSwgMzcsIDU1XSk7CisKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPCBBTlkgKEFSUkFZWzQxLCAzNywgNTVd KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzEgV0hFUkUgYSA8PSBBTlkgKEFSUkFZW05VTEwsIDYwLCA0MywgOTRdKTsKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA8PSBBTlkgKEFS UkFZW05VTEwsIDYwLCA0MywgOTRdKTsKKworCistLSBpbnQ6IGdyZWF0ZXIgdGhhbgorRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEg V0hFUkUgYSA+IEFOWSAoQVJSQVlbMjAwXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzIwMF0pOworCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBh ID4gQU5ZIChBUlJBWVsxNzcsIE5VTExdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYSA+IEFOWSAoQVJSQVlbMTc3LCBOVUxMXSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGEgPiBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjppbnRbXSk7CisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZW05VTEwsIE5V TExdOjppbnRbXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFSUkFZWzE1MywgMTQwXSk7CisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPiBBTlkgKEFS UkFZWzE1MywgMTQwXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPj0gQU5ZIChBUlJBWVsxNzMsIDE5MSwg TlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBh ID49IEFOWSAoQVJSQVlbMTczLCAxOTEsIE5VTExdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYSA+IEFOWSAo QVJSQVlbMTIwLCAxODQsIDE2NF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfMSBXSEVSRSBhID4gQU5ZIChBUlJBWVsxMjAsIDE4NCwgMTY0XSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGEgPj0gQU5ZIChBUlJBWVtOVUxMLCAxMzAsIDE4MSwgMTY5XSk7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGEgPj0gQU5ZIChBUlJBWVtOVUxM LCAxMzAsIDE4MSwgMTY5XSk7CisKKworLS0gYmlnaW50OiBlcWFsaXRpZXMKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGIgSU4gKDgyKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hF UkUgYiBJTiAoODIpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgTlVMTCk7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgSU4gKDgyLCBOVUxMKTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYiBJTiAoTlVMTCwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF8xIFdIRVJFIGIgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElO ICg4MiwgNDEpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVS RSBiIElOICg4MiwgNDEpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEsIE5VTEwpOworCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEs IE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMSBXSEVSRSBiIElOICg4MiwgNDEsIDE1KTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiBJTiAoODIsIDQxLCAxNSk7CisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8x IFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwgMTUpOworCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIElOIChOVUxMLCA4MiwgNDEsIDE1KTsKKworCist LSBiaWdpbnQ6IGxlc3MgdGhhbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbMzFdKTsKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJS QVlbMzFdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbNTUsIE5VTExdKTsKKworU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlb NTUsIE5VTExdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbTlVMTCwgTlVMTF06OmJp Z2ludFtdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUg YiA8IEFOWSAoQVJSQVlbTlVMTCwgTlVMTF06OmJpZ2ludFtdKTsKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8 PSBBTlkgKEFSUkFZWzczLCA1MV0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfMSBXSEVSRSBiIDw9IEFOWSAoQVJSQVlbNzMsIDUxXSk7CisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIg PCBBTlkgKEFSUkFZWzY5LCA4NywgTlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMSBXSEVSRSBiIDwgQU5ZIChBUlJBWVs2OSwgODcsIE5VTExdKTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 XzEgV0hFUkUgYiA8PSBBTlkgKEFSUkFZWzgyLCA5MSwgMzVdKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA8PSBBTlkgKEFSUkFZWzgyLCA5MSwg MzVdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0XzEgV0hFUkUgYiA8IEFOWSAoQVJSQVlbTlVMTCwgNjMsIDIxLCA4NV0pOwor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBXSEVSRSBiIDwgQU5ZIChB UlJBWVtOVUxMLCA2MywgMjEsIDg1XSk7CisKKworLS0gYmlnaW50OiBncmVhdGVyIHRoYW4K K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzk0XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzk0XSk7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJF IGIgPiBBTlkgKEFSUkFZWzgwLCBOVUxMXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzgwLCBOVUxMXSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdI RVJFIGIgPiBBTlkgKEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZW05VTEws IE5VTExdOjpiaWdpbnRbXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZWzE5OSwgMTA3 XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPiBB TlkgKEFSUkFZWzE5OSwgMTA3XSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8xIFdIRVJFIGIgPj0gQU5ZIChBUlJBWVsxODIs IDEwMSwgTlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMSBX SEVSRSBiID49IEFOWSAoQVJSQVlbMTgyLCAxMDEsIE5VTExdKTsKKworRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA+ IEFOWSAoQVJSQVlbMzAwLCAxMDYsIDI1MV0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMSBXSEVSRSBiID4gQU5ZIChBUlJBWVszMDAsIDEwNiwgMjUxXSk7CisK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF8xIFdIRVJFIGIgPiBBTlkgKEFSUkFZW05VTEwsIDE4MiwgMTAxLCAxNTVdKTsKKworU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzEgV0hFUkUgYiA+IEFOWSAoQVJSQVlb TlVMTCwgMTgyLCAxMDEsIDE1NV0pOworCisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0XzE7 CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKKworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1 c2VzIGZvciB2YXJsZW5hIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3Rf MiAoYSBURVhUKSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5f dGVzdF8yCitTRUxFQ1QgdiBGUk9NIChTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgKE9SREVS IEJZIHYpIGMsIHYgRlJPTSAoU0VMRUNUIG1kNSgoaS8xMyk6OnRleHQpIEFTIHYgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpKSBmb28pIGJhciBPUkRFUiBCWSBjICsgMjUg KiByYW5kb20oKTsKKworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF8yX2lkeCBPTiBicmlu X2luX3Rlc3RfMiBVU0lORyBicmluIChhIHRleHRfbWlubWF4X29wcykgV0lUSCAocGFnZXNf cGVyX3JhbmdlPTEpOworCitTRVQgZW5hYmxlX3NlcXNjYW49b2ZmOworCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMiBXSEVSRSBh IElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknKTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAx YmJlNjlmMzUxMDM5MTUyMTg5Jyk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYw MWJiZTY5ZjM1MTAzOTE1MjE4OScsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkx NTIxODknLCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoTlVMTCwgTlVMTCk7CisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwp OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODkn LCAnZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1YTcyYzAnKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJl NjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJyk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScs ICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsIE5VTEwpOworCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2 MDFiYmU2OWYzNTEwMzkxNTIxODknLCAnZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1YTcy YzAnLCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUx MDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNl NDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5Jyk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAz OTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQx MGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOScpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMiBXSEVSRSBhIElOIChOVUxMLCAn MzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknLCAnZjQ1N2M1NDVhOWRlZDg4ZjE4 ZWNlZTQ3MTQ1YTcyYzAnLCAnYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzknKTsK KworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzIgV0hFUkUgYSBJTiAoTlVM TCwgJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4 OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5 Jyk7CisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0XzI7CitSRVNFVCBlbmFibGVfc2Vxc2Nh bjsKLS0gCjIuMzkuMQoK --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0007-Support-SK_SEARCHARRAY-in-BRIN-minmax-multi-20230217.patch" Content-Disposition: attachment; filename*0="0007-Support-SK_SEARCHARRAY-in-BRIN-minmax-multi-20230217.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyMzcxYWVmNGM2MGFkNGRkYjFmNjgzOTg1Y2I5YzkxNzdlMmFmZTg4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogRnJpLCAxNyBGZWIgMjAyMyAwMjo0NToxNCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNy85XSBTdXBwb3J0IFNLX1NFQVJDSEFSUkFZIGluIEJSSU4gbWlubWF4 LW11bHRpCgpTaW1pbGFyIGFwcHJvYWNoIHRvIG1pbm1heCwgYnV0IHRoZSBpc3N1ZXMgd2l0 aCBkZWNvbnN0cnVjdGluZyB0aGUgYXJyYXkKb3ZlciBhbmQgb3ZlciBhcmUgZXZlbiBtb3Jl IHNlcmlvdXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVs dGkuYyB8IDUwMiArKysrKysrKystLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2Mu ZGF0ICAgICAgICAgICB8ICA1NyArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dCAgICAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW5f bXVsdGkub3V0ICAgIHwgOTI2ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9icmluX211bHRpLnNxbCAgICAgICAgIHwgMzAxICsrKysrKysKIDUgZmlsZXMg Y2hhbmdlZCwgMTcyNSBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX21pbm1heF9tdWx0aS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9taW5tYXhfbXVsdGkuYwppbmRleCA4NTllMDAy MmZiNC4uZGQyMmIzZTNjMDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW5fbWlubWF4X211bHRpLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bl9taW5tYXhfbXVsdGkuYwpAQCAtMTA5LDYgKzEwOSwxNCBAQAogI2RlZmluZQkJTUlOTUFY X0JVRkZFUl9NQVgJCQkJODE5MgogI2RlZmluZQkJTUlOTUFYX0JVRkZFUl9MT0FEX0ZBQ1RP UgkJMC41CiAKKy8qCisgKiBXZSB1c2Ugc29tZSBwcml2YXRlIHNrX2ZsYWdzIGJpdHMgaW4g cHJlcHJvY2Vzc2VkIHNjYW4ga2V5cy4gIFdlJ3JlIGFsbG93ZWQKKyAqIHRvIHVzZSBiaXRz IDE2LTMxIChzZWUgc2tleS5oKS4gIFRoZSB1cHBlcm1vc3QgYml0cyBhcmUgY29waWVkIGZy b20gdGhlCisgKiBpbmRleCdzIGluZG9wdGlvbltdIGFycmF5IGVudHJ5IGZvciB0aGUgaW5k ZXggYXR0cmlidXRlLgorICovCisjZGVmaW5lIFNLX0JSSU5fU09SVEVECTB4MDAwMTAwMDAJ LyogZGVjb25zdHJ1Y3RlZCBhbmQgc29ydGVkIGFycmF5ICovCisKKwogdHlwZWRlZiBzdHJ1 Y3QgTWlubWF4TXVsdGlPcGFxdWUKIHsKIAlGbWdySW5mbwlleHRyYV9wcm9jaW5mb3NbTUlO TUFYX01BWF9QUk9DTlVNU107CkBAIC0yNTYyLDYgKzI1NzAsMTU3IEBAIGJyaW5fbWlubWF4 X211bHRpX2FkZF92YWx1ZShQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9CT09MKG1v ZGlmaWVkKTsKIH0KIAorCitzdGF0aWMgaW50Citjb21wYXJlX2FycmF5X3ZhbHVlcyhjb25z dCB2b2lkICphLCBjb25zdCB2b2lkICpiLCB2b2lkICphcmcpCit7CisJRGF0dW0JZGEgPSAq IChEYXR1bSAqKSBhOworCURhdHVtCWRiID0gKiAoRGF0dW0gKikgYjsKKwlTb3J0U3VwcG9y dAlzc3VwID0gKFNvcnRTdXBwb3J0KSBhcmc7CisKKwlyZXR1cm4gQXBwbHlTb3J0Q29tcGFy YXRvcihkYSwgZmFsc2UsIGRiLCBmYWxzZSwgc3N1cCk7Cit9CisKKy8qCisgKiBsb3dlcl9i b3VuZGFyeQorICoJCURldGVybWluZSBsb3dlc3QgaW5kZXggc28gdGhhdCAodmFsdWVzW2lu ZGV4XSA+PSBtaW52YWx1ZSkuCisgKgorICogVGhlIGFycmF5IG9mIHZhbHVlcyBpcyBleHBl Y3RlZCB0byBiZSBzb3J0ZWQsIHNvIHRoaXMgaXMgdGhlIGZpcnN0IHZhbHVlCisgKiB0aGF0 IG1heSBmYWxsIGludG8gdGhlIFttaW52YWx1ZSwgbWF4dmFsdWVdIHJhbmdlLCBhcyBpdCBl eGNlZWRzIG1pbnZhbC4KKyAqIEl0J3Mgbm90IGd1YXJhbnRlZWQsIHRob3VnaCwgYXMgaXQg bWlnaHQgZXhjZWVkIG1heHZhbHVlIHRvby4KKyAqLworc3RhdGljIGludAorbG93ZXJfYm91 bmRhcnkoRGF0dW0gKnZhbHVlcywgaW50IG52YWx1ZXMsIERhdHVtIG1pbnZhbHVlLCBTb3J0 U3VwcG9ydCBzc3VwKQoreworCWludAkJc3RhcnQgPSAwLAorCQkJZW5kID0gKG52YWx1ZXMg LSAxKTsKKworCS8qIGV2ZXJ5dGhpbmcgZXhjZWVkcyBtaW52YWwgYW5kIG1pZ2h0IG1hdGNo ICovCisJaWYgKGNvbXBhcmVfYXJyYXlfdmFsdWVzKCZtaW52YWx1ZSwgJnZhbHVlc1tzdGFy dF0sIHNzdXApIDw9IDApCisJCXJldHVybiAwOworCisJLyogbm90aGluZyBjb3VsZCBtYXRj aCAqLworCWlmIChjb21wYXJlX2FycmF5X3ZhbHVlcygmbWludmFsdWUsICZ2YWx1ZXNbZW5k XSwgc3N1cCkgPiAwKQorCQlyZXR1cm4gbnZhbHVlczsKKworCXdoaWxlICgoZW5kIC0gc3Rh cnQpID4gMCkKKwl7CisJCWludCBtaWRwb2ludDsKKwkJaW50IHI7CisKKwkJbWlkcG9pbnQg PSBzdGFydCArIChlbmQgLSBzdGFydCkgLyAyOworCisJCXIgPSBjb21wYXJlX2FycmF5X3Zh bHVlcygmbWludmFsdWUsICZ2YWx1ZXNbbWlkcG9pbnRdLCBzc3VwKTsKKworCQlpZiAociA+ IDApCisJCQlzdGFydCA9IE1heChtaWRwb2ludCwgc3RhcnQgKyAxKTsKKwkJZWxzZQorCQkJ ZW5kID0gbWlkcG9pbnQ7CisJfQorCisJLyogdGhlIHZhbHVlIHNob3VsZCBtZWV0IHRoZSAo diA+PW1pbnZhbHVlKSByZXF1aXJlbWVudCAqLworCUFzc2VydChjb21wYXJlX2FycmF5X3Zh bHVlcygmdmFsdWVzW3N0YXJ0XSwgJm1pbnZhbHVlLCBzc3VwKSA+PSAwKTsKKworCS8qIHdl IGtub3cgc3RhcnQgY2FuJ3QgYmUgMCwgc28gaXQncyBsZWdhbCB0byBzdWJ0cmFjdCAxICov CisJQXNzZXJ0KGNvbXBhcmVfYXJyYXlfdmFsdWVzKCZ2YWx1ZXNbc3RhcnQtMV0sICZtaW52 YWx1ZSwgc3N1cCkgPCAwKTsKKworCXJldHVybiBzdGFydDsKK30KKwordHlwZWRlZiBzdHJ1 Y3QgU2NhbktleUFycmF5IHsKKwlPaWQJCXR5cGVpZDsKKwlpbnQJCW5lbGVtZW50czsKKwlE YXR1bSAgKmVsZW1lbnRzOworfSBTY2FuS2V5QXJyYXk7CisKK0RhdHVtCiticmluX21pbm1h eF9tdWx0aV9wcmVwcm9jZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLy8gQnJpbkRlc2Mg ICAqYmRlc2MgPSAoQnJpbkRlc2MgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisJU2Nhbktl eQkJa2V5ID0gKFNjYW5LZXkpIFBHX0dFVEFSR19QT0lOVEVSKDEpOworCVNjYW5LZXkJCW5l d2tleTsKKwlTY2FuS2V5QXJyYXkgKnNjYW5hcnJheTsKKworCUFycmF5VHlwZSAgKmFycmF5 dmFsOworCWludDE2CQllbG1sZW47CisJYm9vbAkJZWxtYnl2YWw7CisJY2hhcgkJZWxtYWxp Z247CisJaW50CQkJbnVtX2VsZW1zOworCURhdHVtCSAgICplbGVtX3ZhbHVlczsKKwlib29s CSAgICplbGVtX251bGxzOworCVR5cGVDYWNoZUVudHJ5ICp0eXBlOworCVNvcnRTdXBwb3J0 RGF0YSBzc3VwOworCisJLyogbnVtYmVyIG9mIG5vbi1udWxsIGVsZW1lbnRzIGluIHRoZSBh cnJheSAqLworCWludAkJCW51bV9ub25udWxsczsKKworCS8qCisJICogaWdub3JlIHNjYWxh ciBrZXlzCisJICoKKwkgKiBYWFggTWF5YmUgd2Ugc2hvdWxkIHByZXByb2Nlc3Mgc2NhbGFy IGtleXMgdG9vLiBJdCdkIG1ha2UgdGhlIGNvbnNpc3RlbnQKKwkgKiBmdW5jdGlvbiBzaW1w bGVyIGJ5IHJlbW92aW5nIHRoZSBicmFuY2hpbmcuCisJICovCisJaWYgKCEoa2V5LT5za19m bGFncyAmIFNLX1NFQVJDSEFSUkFZKSkKKwkJUEdfUkVUVVJOX1BPSU5URVIoa2V5KTsKKwor CWFycmF5dmFsID0gRGF0dW1HZXRBcnJheVR5cGVQKGtleS0+c2tfYXJndW1lbnQpOworCisJ Z2V0X3R5cGxlbmJ5dmFsYWxpZ24oQVJSX0VMRU1UWVBFKGFycmF5dmFsKSwKKwkJCQkJCSAm ZWxtbGVuLCAmZWxtYnl2YWwsICZlbG1hbGlnbik7CisKKwlkZWNvbnN0cnVjdF9hcnJheShh cnJheXZhbCwKKwkJCQkJICBBUlJfRUxFTVRZUEUoYXJyYXl2YWwpLAorCQkJCQkgIGVsbWxl biwgZWxtYnl2YWwsIGVsbWFsaWduLAorCQkJCQkgICZlbGVtX3ZhbHVlcywgJmVsZW1fbnVs bHMsICZudW1fZWxlbXMpOworCisJLyogZWxpbWluYXRlIE5VTEwgZWxlbWVudHMgKi8KKwlu dW1fbm9ubnVsbHMgPSAwOworCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX2VsZW1zOyBpKysp CisJeworCQkvKiBza2lwIE5VTEwgZWxlbWVudHMgKi8KKwkJaWYgKGVsZW1fbnVsbHNbaV0p CisJCQljb250aW51ZTsKKworCQkvKiBpZiBuZWVkZWQsIG1vdmUgdGhlIG5vbi1OVUxMIG9u ZXMgKi8KKwkJaWYgKG51bV9ub25udWxscyAhPSBpKQorCQkJZWxlbV92YWx1ZXNbbnVtX25v bm51bGxzXSA9IGVsZW1fdmFsdWVzW2ldOworCisJCW51bV9ub25udWxscysrOworCX0KKwor CW51bV9lbGVtcyA9IG51bV9ub25udWxsczsKKworCXR5cGUgPSBsb29rdXBfdHlwZV9jYWNo ZShBUlJfRUxFTVRZUEUoYXJyYXl2YWwpLCBUWVBFQ0FDSEVfTFRfT1BSKTsKKworCW1lbXNl dCgmc3N1cCwgMCwgc2l6ZW9mKFNvcnRTdXBwb3J0RGF0YSkpOworCisJc3N1cC5zc3VwX2Nv bGxhdGlvbiA9IGtleS0+c2tfY29sbGF0aW9uOworCXNzdXAuc3N1cF9jeHQgPSBDdXJyZW50 TWVtb3J5Q29udGV4dDsKKworCVByZXBhcmVTb3J0U3VwcG9ydEZyb21PcmRlcmluZ09wKHR5 cGUtPmx0X29wciwgJnNzdXApOworCisJcXNvcnRfaW50ZXJydXB0aWJsZShlbGVtX3ZhbHVl cywgbnVtX2VsZW1zLCBzaXplb2YoRGF0dW0pLAorCQkJCQkJY29tcGFyZV9hcnJheV92YWx1 ZXMsICZzc3VwKTsKKworCXNjYW5hcnJheSA9IHBhbGxvYzAoc2l6ZW9mKFNjYW5LZXlBcnJh eSkpOworCXNjYW5hcnJheS0+dHlwZWlkID0gQVJSX0VMRU1UWVBFKGFycmF5dmFsKTsKKwlz Y2FuYXJyYXktPm5lbGVtZW50cyA9IG51bV9lbGVtczsKKwlzY2FuYXJyYXktPmVsZW1lbnRz ID0gZWxlbV92YWx1ZXM7CisKKwluZXdrZXkgPSBwYWxsb2MwKHNpemVvZihTY2FuS2V5RGF0 YSkpOworCisJU2NhbktleUVudHJ5SW5pdGlhbGl6ZVdpdGhJbmZvKG5ld2tleSwKKwkJCQkJ CQkJICAgKGtleS0+c2tfZmxhZ3MgfCBTS19CUklOX1NPUlRFRCksCisJCQkJCQkJCSAgIGtl eS0+c2tfYXR0bm8sCisJCQkJCQkJCSAgIGtleS0+c2tfc3RyYXRlZ3ksCisJCQkJCQkJCSAg IGtleS0+c2tfc3VidHlwZSwKKwkJCQkJCQkJICAga2V5LT5za19jb2xsYXRpb24sCisJCQkJ CQkJCSAgICZrZXktPnNrX2Z1bmMsCisJCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShzY2Fu YXJyYXkpKTsKKworCVBHX1JFVFVSTl9QT0lOVEVSKG5ld2tleSk7Cit9CisKIC8qCiAgKiBH aXZlbiBhbiBpbmRleCB0dXBsZSBjb3JyZXNwb25kaW5nIHRvIGEgY2VydGFpbiBwYWdlIHJh bmdlIGFuZCBhIHNjYW4ga2V5LAogICogcmV0dXJuIHdoZXRoZXIgdGhlIHNjYW4ga2V5IGlz IGNvbnNpc3RlbnQgd2l0aCB0aGUgaW5kZXggdHVwbGUncyBtaW4vbWF4CkBAIC0yNTkxLDYg KzI3NTAsMTUgQEAgYnJpbl9taW5tYXhfbXVsdGlfY29uc2lzdGVudChQR19GVU5DVElPTl9B UkdTKQogCXNlcmlhbGl6ZWQgPSAoU2VyaWFsaXplZFJhbmdlcyAqKSBQR19ERVRPQVNUX0RB VFVNKGNvbHVtbi0+YnZfdmFsdWVzWzBdKTsKIAlyYW5nZXMgPSBicmluX3JhbmdlX2Rlc2Vy aWFsaXplKHNlcmlhbGl6ZWQtPm1heHZhbHVlcywgc2VyaWFsaXplZCk7CiAKKwkvKgorCSAq IFhYWCBXb3VsZCBpdCBtYWtlIHNlbnNlIHRvIGhhdmUgYSBxdWljayBpbml0aWFsIGNoZWNr IG9uIHRoZSB3aG9sZQorCSAqIHN1bW1hcnk/IFdlIGtub3cgbW9zdCBwYWdlIHJhbmdlcyBh cmUgbm90IGV4cGVjdGVkIHRvIG1hdGNoLCBhbmQgd2UKKwkgKiBrbm93IHRoZSByYW5nZXMv dmFsdWVzIGFyZSBzb3J0ZWQgc28gd2UgY291bGQgY2hlY2sgZ2xvYmFsIG1pbi9tYXgKKwkg KiAoZXNzZW50aWFsbHkgd2hhdCByZWd1bGFyIG1pbm1heCBpcyBkb2luZykgYW5kIGJhaWwg aWYgbm8gbWF0Y2ggaXMKKwkgKiBwb3NzaWJsZS4gVGhhdCBzaG91bGQgYmUgY2hlYXAgYW5k IG1pZ2h0IHNhdmUgYSBsb3Qgb24gaW5zcGVjdGluZworCSAqIHRoZSBpbmRpdmlkdWFsIHJh bmdlcy92YWx1ZXMuCisJICovCisKIAkvKiBpbnNwZWN0IHRoZSByYW5nZXMsIGFuZCBmb3Ig ZWFjaCBvbmUgZXZhbHVhdGUgdGhlIHNjYW4ga2V5cyAqLwogCWZvciAocmFuZ2VubyA9IDA7 IHJhbmdlbm8gPCByYW5nZXMtPm5yYW5nZXM7IHJhbmdlbm8rKykKIAl7CkBAIC0yNjExLDY3 ICsyNzc5LDE4MyBAQCBicmluX21pbm1heF9tdWx0aV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9O X0FSR1MpCiAJCQlhdHRubyA9IGtleS0+c2tfYXR0bm87CiAJCQlzdWJ0eXBlID0ga2V5LT5z a19zdWJ0eXBlOwogCQkJdmFsdWUgPSBrZXktPnNrX2FyZ3VtZW50OwotCQkJc3dpdGNoIChr ZXktPnNrX3N0cmF0ZWd5KQorCisJCQlpZiAobGlrZWx5KCEoa2V5LT5za19mbGFncyAmIFNL X0JSSU5fU09SVEVEKSkpCiAJCQl7Ci0JCQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoK LQkJCQljYXNlIEJUTGVzc0VxdWFsU3RyYXRlZ3lOdW1iZXI6Ci0JCQkJCWZpbmZvID0gbWlu bWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUs Ci0JCQkJCQkJCQkJCQkJCQkgICBrZXktPnNrX3N0cmF0ZWd5KTsKLQkJCQkJLyogZmlyc3Qg dmFsdWUgZnJvbSB0aGUgYXJyYXkgKi8KLQkJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJD b2xsKGZpbmZvLCBjb2xsb2lkLCBtaW52YWwsIHZhbHVlKTsKLQkJCQkJYnJlYWs7CisJCQkJ c3dpdGNoIChrZXktPnNrX3N0cmF0ZWd5KQorCQkJCXsKKwkJCQkJY2FzZSBCVExlc3NTdHJh dGVneU51bWJlcjoKKwkJCQkJY2FzZSBCVExlc3NFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJ CQkJZmluZm8gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBh dHRubywgc3VidHlwZSwKKwkJCQkJCQkJCQkJCQkJCQkgICBrZXktPnNrX3N0cmF0ZWd5KTsK KwkJCQkJCS8qIGZpcnN0IHZhbHVlIGZyb20gdGhlIGFycmF5ICovCisJCQkJCQltYXRjaGVz ID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIG1pbnZhbCwgdmFsdWUpOwor CQkJCQkJYnJlYWs7CiAKLQkJCQljYXNlIEJURXF1YWxTdHJhdGVneU51bWJlcjoKLQkJCQkJ ewotCQkJCQkJRGF0dW0JCWNvbXBhcjsKLQkJCQkJCUZtZ3JJbmZvICAgKmNtcEZuOworCQkJ CQljYXNlIEJURXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCQkJCXsKKwkJCQkJCQlEYXR1bQkJ Y29tcGFyOworCQkJCQkJCUZtZ3JJbmZvICAgKmNtcEZuOworCisJCQkJCQkJLyogYnkgZGVm YXVsdCB0aGlzIHJhbmdlIGRvZXMgbm90IG1hdGNoICovCisJCQkJCQkJbWF0Y2hlcyA9IEJv b2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIE90aGVyd2lzZSwg bmVlZCB0byBjb21wYXJlIHRoZSBuZXcgdmFsdWUgd2l0aAorCQkJCQkJCSAqIGJvdW5kYXJp ZXMgb2YgYWxsIHRoZSByYW5nZXMuIEZpcnN0IGNoZWNrIGlmIGl0J3MKKwkJCQkJCQkgKiBs ZXNzIHRoYW4gdGhlIGFic29sdXRlIG1pbmltdW0sIHdoaWNoIGlzIHRoZSBmaXJzdAorCQkJ CQkJCSAqIHZhbHVlIGluIHRoZSBhcnJheS4KKwkJCQkJCQkgKi8KKwkJCQkJCQljbXBGbiA9 IG1pbm1heF9tdWx0aV9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0 eXBlLAorCQkJCQkJCQkJCQkJCQkJCQkgICBCVEdyZWF0ZXJTdHJhdGVneU51bWJlcik7CisJ CQkJCQkJY29tcGFyID0gRnVuY3Rpb25DYWxsMkNvbGwoY21wRm4sIGNvbGxvaWQsIG1pbnZh bCwgdmFsdWUpOworCisJCQkJCQkJLyogc21hbGxlciB0aGFuIHRoZSBzbWFsbGVzdCB2YWx1 ZSBpbiB0aGlzIHJhbmdlICovCisJCQkJCQkJaWYgKERhdHVtR2V0Qm9vbChjb21wYXIpKQor CQkJCQkJCQlicmVhazsKKworCQkJCQkJCWNtcEZuID0gbWlubWF4X211bHRpX2dldF9zdHJh dGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJ CSAgIEJUTGVzc1N0cmF0ZWd5TnVtYmVyKTsKKwkJCQkJCQljb21wYXIgPSBGdW5jdGlvbkNh bGwyQ29sbChjbXBGbiwgY29sbG9pZCwgbWF4dmFsLCB2YWx1ZSk7CisKKwkJCQkJCQkvKiBs YXJnZXIgdGhhbiB0aGUgbGFyZ2VzdCB2YWx1ZSBpbiB0aGlzIHJhbmdlICovCisJCQkJCQkJ aWYgKERhdHVtR2V0Qm9vbChjb21wYXIpKQorCQkJCQkJCQlicmVhazsKKworCQkJCQkJCS8q CisJCQkJCQkJICogV2UgaGF2ZW4ndCBtYW5hZ2VkIHRvIGVsaW1pbmF0ZSB0aGlzIHJhbmdl LCBzbworCQkJCQkJCSAqIGNvbnNpZGVyIGl0IG1hdGNoaW5nLgorCQkJCQkJCSAqLworCQkJ CQkJCW1hdGNoZXMgPSBCb29sR2V0RGF0dW0odHJ1ZSk7CiAKLQkJCQkJCS8qIGJ5IGRlZmF1 bHQgdGhpcyByYW5nZSBkb2VzIG5vdCBtYXRjaCAqLwotCQkJCQkJbWF0Y2hlcyA9IEJvb2xH ZXREYXR1bShmYWxzZSk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJCQkJCWNhc2UgQlRH cmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCQkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVn eU51bWJlcjoKKwkJCQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9j aW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJICAga2V5LT5z a19zdHJhdGVneSk7CisJCQkJCQkvKiBsYXN0IHZhbHVlIGZyb20gdGhlIGFycmF5ICovCisJ CQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIG1heHZh bCwgdmFsdWUpOworCQkJCQkJYnJlYWs7CiAKLQkJCQkJCS8qCi0JCQkJCQkgKiBPdGhlcndp c2UsIG5lZWQgdG8gY29tcGFyZSB0aGUgbmV3IHZhbHVlIHdpdGgKLQkJCQkJCSAqIGJvdW5k YXJpZXMgb2YgYWxsIHRoZSByYW5nZXMuIEZpcnN0IGNoZWNrIGlmIGl0J3MKLQkJCQkJCSAq IGxlc3MgdGhhbiB0aGUgYWJzb2x1dGUgbWluaW11bSwgd2hpY2ggaXMgdGhlIGZpcnN0Ci0J CQkJCQkgKiB2YWx1ZSBpbiB0aGUgYXJyYXkuCi0JCQkJCQkgKi8KLQkJCQkJCWNtcEZuID0g bWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5 cGUsCi0JCQkJCQkJCQkJCQkJCQkJICAgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXIpOwotCQkJ CQkJY29tcGFyID0gRnVuY3Rpb25DYWxsMkNvbGwoY21wRm4sIGNvbGxvaWQsIG1pbnZhbCwg dmFsdWUpOworCQkJCQlkZWZhdWx0OgorCQkJCQkJLyogc2hvdWxkbid0IGhhcHBlbiAqLwor CQkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwga2V5LT5z a19zdHJhdGVneSk7CisJCQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKwkJ CQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlTY2FuS2V5QXJy YXkgKmFycmF5ID0gKFNjYW5LZXlBcnJheSAqKSB2YWx1ZTsKIAotCQkJCQkJLyogc21hbGxl ciB0aGFuIHRoZSBzbWFsbGVzdCB2YWx1ZSBpbiB0aGlzIHJhbmdlICovCi0JCQkJCQlpZiAo RGF0dW1HZXRCb29sKGNvbXBhcikpCi0JCQkJCQkJYnJlYWs7CisJCQkJLyogY2FuIGhhcHBl biBpZiB0aGUgSU4gbGlzdCBjb250YWluZWQganVzdCBOVUxMcyAqLworCQkJCWlmIChhcnJh eS0+bmVsZW1lbnRzID09IDApCisJCQkJCVBHX1JFVFVSTl9CT09MKGZhbHNlKTsKIAotCQkJ CQkJY21wRm4gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBh dHRubywgc3VidHlwZSwKLQkJCQkJCQkJCQkJCQkJCQkgICBCVExlc3NTdHJhdGVneU51bWJl cik7Ci0JCQkJCQljb21wYXIgPSBGdW5jdGlvbkNhbGwyQ29sbChjbXBGbiwgY29sbG9pZCwg bWF4dmFsLCB2YWx1ZSk7CisJCQkJc3dpdGNoIChrZXktPnNrX3N0cmF0ZWd5KQorCQkJCXsK KwkJCQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoKKwkJCQkJY2FzZSBCVExlc3NFcXVh bFN0cmF0ZWd5TnVtYmVyOgorCQkJCQkJZmluZm8gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0 ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJCQkJCQkJCQkJCQkg ICBrZXktPnNrX3N0cmF0ZWd5KTsKKwkJCQkJCS8qIGZpcnN0IHZhbHVlIGZyb20gdGhlIGFy cmF5ICovCisJCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxv aWQsIG1pbnZhbCwKKwkJCQkJCQkJCQkJCQlhcnJheS0+ZWxlbWVudHNbYXJyYXktPm5lbGVt ZW50cy0xXSk7CisJCQkJCQlicmVhazsKIAotCQkJCQkJLyogbGFyZ2VyIHRoYW4gdGhlIGxh cmdlc3QgdmFsdWUgaW4gdGhpcyByYW5nZSAqLwotCQkJCQkJaWYgKERhdHVtR2V0Qm9vbChj b21wYXIpKQotCQkJCQkJCWJyZWFrOworCQkJCQljYXNlIEJURXF1YWxTdHJhdGVneU51bWJl cjoKIAogCQkJCQkJLyoKLQkJCQkJCSAqIFdlIGhhdmVuJ3QgbWFuYWdlZCB0byBlbGltaW5h dGUgdGhpcyByYW5nZSwgc28KLQkJCQkJCSAqIGNvbnNpZGVyIGl0IG1hdGNoaW5nLgorCQkJ CQkJICogU2VlIGJyaW5fbWlubWF4LmMgZm9yIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyBp cyBkb2luZy4KIAkJCQkJCSAqLwotCQkJCQkJbWF0Y2hlcyA9IEJvb2xHZXREYXR1bSh0cnVl KTsKLQorCQkJCQkJeworCQkJCQkJCURhdHVtIHZhbDsKKwkJCQkJCQlTb3J0U3VwcG9ydERh dGEgc3N1cDsKKwkJCQkJCQlpbnQJCQlsb3dlcjsKKwkJCQkJCQlUeXBlQ2FjaGVFbnRyeSAq dHlwZTsKKworCQkJCQkJCS8qIElzIHRoZSBmaXJzdCAoc21hbGxlc3QpIHZhbHVlIGFmdGVy IHRoZSBCUklOIHJhbmdlPyAqLworCQkJCQkJCXZhbCA9IGFycmF5LT5lbGVtZW50c1swXTsK KworCQkJCQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhi ZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJCSAgIEJUTGVzc0VxdWFs U3RyYXRlZ3lOdW1iZXIpOworCQkJCQkJCW1hdGNoZXMgPSBGdW5jdGlvbkNhbGwyQ29sbChm aW5mbywgY29sbG9pZCwgdmFsLCBtYXh2YWwpOworCisJCQkJCQkJLyogbWludmFsID4gbWF4 KHJhbmdlIHZhbHVlcykgKi8KKwkJCQkJCQlpZiAoIURhdHVtR2V0Qm9vbChtYXRjaGVzKSkK KwkJCQkJCQkJYnJlYWs7CisKKwkJCQkJCQkvKiBJcyB0aGUgbGFzdCAobGFyZ2VzdCkgdmFs dWUgYmVmb3JlIHRoZSBCUklOIHJhbmdlPyAqLworCQkJCQkJCXZhbCA9IGFycmF5LT5lbGVt ZW50c1thcnJheS0+bmVsZW1lbnRzLTFdOworCisJCQkJCQkJZmluZm8gPSBtaW5tYXhfbXVs dGlfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKKwkJCQkJ CQkJCQkJCQkJCQkJICAgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcik7CisJCQkJCQkJ bWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB2YWwsIG1pbnZh bCk7CisKKwkJCQkJCQkvKiBtYXh2YWwgPCBtaW4ocmFuZ2UgdmFsdWVzKSAqLworCQkJCQkJ CWlmICghRGF0dW1HZXRCb29sKG1hdGNoZXMpKQorCQkJCQkJCQlicmVhazsKKworCQkJCQkJ CS8qCisJCQkJCQkJICogT0ssIHRoZXJlIG1pZ2h0IGJlIHNvbWUgdmFsdWVzIG1hdGNoaW5n IHRoZSByYW5nZS4gV2UgaGF2ZQorCQkJCQkJCSAqIHRvIHNlYXJjaCB0aGVtIG9uZSBieSBv bmUsIG9yIHBlcmhhcHMgdHJ5IGJpbnNlYXJjaC4KKwkJCQkJCQkgKi8KKwkJCQkJCQl0eXBl ID0gbG9va3VwX3R5cGVfY2FjaGUoYXJyYXktPnR5cGVpZCwgVFlQRUNBQ0hFX0xUX09QUik7 CisKKwkJCQkJCQltZW1zZXQoJnNzdXAsIDAsIHNpemVvZihTb3J0U3VwcG9ydERhdGEpKTsK KworCQkJCQkJCXNzdXAuc3N1cF9jb2xsYXRpb24gPSBrZXktPnNrX2NvbGxhdGlvbjsKKwkJ CQkJCQlzc3VwLnNzdXBfY3h0ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7CisKKwkJCQkJCQlQ cmVwYXJlU29ydFN1cHBvcnRGcm9tT3JkZXJpbmdPcCh0eXBlLT5sdF9vcHIsICZzc3VwKTsK KworCQkJCQkJCWxvd2VyID0gbG93ZXJfYm91bmRhcnkoYXJyYXktPmVsZW1lbnRzLCBhcnJh eS0+bmVsZW1lbnRzLCBtaW52YWwsICZzc3VwKTsKKworCQkJCQkJCS8qIG5vIGVsZW1lbnRz IGNhbiBwb3NzaWJseSBtYXRjaCAqLworCQkJCQkJCWlmIChsb3dlciA9PSBhcnJheS0+bmVs ZW1lbnRzKQorCQkJCQkJCXsKKwkJCQkJCQkJbWF0Y2hlcyA9IEJvb2xHZXREYXR1bShmYWxz ZSk7CisJCQkJCQkJCWJyZWFrOworCQkJCQkJCX0KKworCQkJCQkJCS8qCisJCQkJCQkJICog T0ssIHRoZSBmaXJzdCBlbGVtZW50IG11c3QgbWF0Y2ggdGhlIHVwcGVyIGJvdW5kYXJ5IHRv bworCQkJCQkJCSAqIChpZiBpdCBkb2VzIG5vdCwgbm8gZm9sbG93aW5nIGVsZW1lbnRzIGNh bikuCisJCQkJCQkJICovCisJCQkJCQkJdmFsID0gYXJyYXktPmVsZW1lbnRzW2xvd2VyXTsK KworCQkJCQkJCS8qCisJCQkJCQkJICogSW4gdGhlIGVxdWFsaXR5IGNhc2UgKFdIRVJFIGNv bCA9IHNvbWV2YWwpLCB3ZSB3YW50IHRvIHJldHVybgorCQkJCQkJCSAqIHRoZSBjdXJyZW50 IHBhZ2UgcmFuZ2UgaWYgdGhlIG1pbmltdW0gdmFsdWUgaW4gdGhlIHJhbmdlIDw9CisJCQkJ CQkJICogc2NhbiBrZXksIGFuZCB0aGUgbWF4aW11bSB2YWx1ZSA+PSBzY2FuIGtleS4KKwkJ CQkJCQkgKi8KKwkJCQkJCQlmaW5mbyA9IG1pbm1heF9tdWx0aV9nZXRfc3RyYXRlZ3lfcHJv Y2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJCQkJCQkgICBCVExl c3NFcXVhbFN0cmF0ZWd5TnVtYmVyKTsKKwkJCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxs MkNvbGwoZmluZm8sIGNvbGxvaWQsIG1pbnZhbCwgdmFsKTsKKwkJCQkJCQlpZiAoIURhdHVt R2V0Qm9vbChtYXRjaGVzKSkKKwkJCQkJCQkJYnJlYWs7CisJCQkJCQkJLyogbWF4KCkgPj0g c2NhbmtleSAqLworCQkJCQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9w cm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJCSAgIEJU R3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXIpOworCQkJCQkJCW1hdGNoZXMgPSBGdW5jdGlv bkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgbWF4dmFsLCB2YWwpOworCQkJCQkJCWJyZWFr OworCQkJCQkJfQorCQkJCQljYXNlIEJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJ CQkJCWNhc2UgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXI6CisJCQkJCQlmaW5mbyA9IG1pbm1h eF9tdWx0aV9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAor CQkJCQkJCQkJCQkJCQkJCSAgIGtleS0+c2tfc3RyYXRlZ3kpOworCQkJCQkJLyogbGFzdCB2 YWx1ZSBmcm9tIHRoZSBhcnJheSAqLworCQkJCQkJbWF0Y2hlcyA9IEZ1bmN0aW9uQ2FsbDJD b2xsKGZpbmZvLCBjb2xsb2lkLCBtYXh2YWwsCisJCQkJCQkJCQkJCQkJYXJyYXktPmVsZW1l bnRzWzBdKTsKIAkJCQkJCWJyZWFrOwotCQkJCQl9Ci0JCQkJY2FzZSBCVEdyZWF0ZXJFcXVh bFN0cmF0ZWd5TnVtYmVyOgotCQkJCWNhc2UgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXI6Ci0J CQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywg YXR0bm8sIHN1YnR5cGUsCi0JCQkJCQkJCQkJCQkJCQkgICBrZXktPnNrX3N0cmF0ZWd5KTsK LQkJCQkJLyogbGFzdCB2YWx1ZSBmcm9tIHRoZSBhcnJheSAqLwotCQkJCQltYXRjaGVzID0g RnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIG1heHZhbCwgdmFsdWUpOwotCQkJ CQlicmVhazsKIAotCQkJCWRlZmF1bHQ6Ci0JCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8K LQkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwga2V5LT5z a19zdHJhdGVneSk7Ci0JCQkJCW1hdGNoZXMgPSBCb29sR2V0RGF0dW0oZmFsc2UpOwotCQkJ CQlicmVhazsKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8K KwkJCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5IG51bWJlciAlZCIsIGtleS0+ c2tfc3RyYXRlZ3kpOworCQkJCQkJbWF0Y2hlcyA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisJ CQkJCQlicmVhazsKKwkJCQl9CiAJCQl9CiAKIAkJCS8qIHRoZSByYW5nZSBoYXMgdG8gbWF0 Y2ggYWxsIHRoZSBzY2FuIGtleXMgKi8KQEAgLTI3MTMsMjQgKzI5OTcsMTEyIEBAIGJyaW5f bWlubWF4X211bHRpX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCWF0dG5vID0g a2V5LT5za19hdHRubzsKIAkJCXN1YnR5cGUgPSBrZXktPnNrX3N1YnR5cGU7CiAJCQl2YWx1 ZSA9IGtleS0+c2tfYXJndW1lbnQ7Ci0JCQlzd2l0Y2ggKGtleS0+c2tfc3RyYXRlZ3kpCisJ CQlpZiAobGlrZWx5KCEoa2V5LT5za19mbGFncyAmIFNLX1NFQVJDSEFSUkFZKSkpCiAJCQl7 Ci0JCQkJY2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoKLQkJCQljYXNlIEJUTGVzc0VxdWFs U3RyYXRlZ3lOdW1iZXI6Ci0JCQkJY2FzZSBCVEVxdWFsU3RyYXRlZ3lOdW1iZXI6Ci0JCQkJ Y2FzZSBCVEdyZWF0ZXJFcXVhbFN0cmF0ZWd5TnVtYmVyOgotCQkJCWNhc2UgQlRHcmVhdGVy U3RyYXRlZ3lOdW1iZXI6Ci0KLQkJCQkJZmluZm8gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0 ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKLQkJCQkJCQkJCQkJCQkJCSAg IGtleS0+c2tfc3RyYXRlZ3kpOwotCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwo ZmluZm8sIGNvbGxvaWQsIHZhbCwgdmFsdWUpOwotCQkJCQlicmVhazsKKwkJCQlzd2l0Y2gg KGtleS0+c2tfc3RyYXRlZ3kpCisJCQkJeworCQkJCQljYXNlIEJUTGVzc1N0cmF0ZWd5TnVt YmVyOgorCQkJCQljYXNlIEJUTGVzc0VxdWFsU3RyYXRlZ3lOdW1iZXI6CisJCQkJCWNhc2Ug QlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJCQljYXNlIEJUR3JlYXRlckVxdWFsU3RyYXRl Z3lOdW1iZXI6CisJCQkJCWNhc2UgQlRHcmVhdGVyU3RyYXRlZ3lOdW1iZXI6CisKKwkJCQkJ CWZpbmZvID0gbWlubWF4X211bHRpX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0 bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJCQkJICAga2V5LT5za19zdHJhdGVneSk7CisJ CQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIHZhbCwg dmFsdWUpOworCQkJCQkJYnJlYWs7CiAKLQkJCQlkZWZhdWx0OgotCQkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCi0JCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5IG51bWJl ciAlZCIsIGtleS0+c2tfc3RyYXRlZ3kpOwotCQkJCQltYXRjaGVzID0gQm9vbEdldERhdHVt KGZhbHNlKTsKLQkJCQkJYnJlYWs7CisJCQkJCWRlZmF1bHQ6CisJCQkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCisJCQkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBzdHJhdGVneSBudW1i ZXIgJWQiLCBrZXktPnNrX3N0cmF0ZWd5KTsKKwkJCQkJCW1hdGNoZXMgPSBCb29sR2V0RGF0 dW0oZmFsc2UpOworCQkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJZWxzZQorCQkJewor CQkJCVNjYW5LZXlBcnJheSAqYXJyYXkgPSAoU2NhbktleUFycmF5ICopIHZhbHVlOworCisJ CQkJLyogY2FuIGhhcHBlbiBpZiB0aGUgSU4gbGlzdCBjb250YWluZWQganVzdCBOVUxMcyAq LworCQkJCWlmIChhcnJheS0+bmVsZW1lbnRzID09IDApCisJCQkJCVBHX1JFVFVSTl9CT09M KGZhbHNlKTsKKworCQkJCS8qCisJCQkJICogWFhYIFdlIHNob3VsZCBiZSBhYmxlIHRvIGJl IHNtYXJ0ZXIgZm9yIHRoZSBzY2FsYXIgdmFsdWVzLCBhcworCQkJCSAqIHdlIGtlZXAgdGhl bSBzb3J0ZWQgdG9vLiBTbyB3ZSBzaG91bGQgYmUgYWJsZSB0byBxdWlja2x5IGNoZWNrCisJ CQkJICogaWYgYW55IG9mIHRoZSB2YWx1ZXMgY2FuIG1hdGNoIHRoZSBzb3J0ZWQga2V5IHZh bHVlcy4KKwkJCQkgKi8KKwkJCQlzd2l0Y2ggKGtleS0+c2tfc3RyYXRlZ3kpCisJCQkJewor CQkJCQljYXNlIEJUTGVzc1N0cmF0ZWd5TnVtYmVyOgorCQkJCQljYXNlIEJUTGVzc0VxdWFs U3RyYXRlZ3lOdW1iZXI6CisJCQkJCQlmaW5mbyA9IG1pbm1heF9tdWx0aV9nZXRfc3RyYXRl Z3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAorCQkJCQkJCQkJCQkJCQkJCSAg IGtleS0+c2tfc3RyYXRlZ3kpOworCQkJCQkJLyogZmlyc3QgdmFsdWUgZnJvbSB0aGUgYXJy YXkgKi8KKwkJCQkJCW1hdGNoZXMgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9p ZCwgdmFsLAorCQkJCQkJCQkJCQkJCWFycmF5LT5lbGVtZW50c1thcnJheS0+bmVsZW1lbnRz LTFdKTsKKwkJCQkJCWJyZWFrOworCisJCQkJCWNhc2UgQlRFcXVhbFN0cmF0ZWd5TnVtYmVy OgorCisJCQkJCQkvKgorCQkJCQkJICogU2VlIGJyaW5fbWlubWF4LmMgZm9yIGRlc2NyaXB0 aW9uIG9mIHdoYXQgdGhpcyBpcyBkb2luZy4KKwkJCQkJCSAqLworCQkJCQkJeworCQkJCQkJ CVNvcnRTdXBwb3J0RGF0YSBzc3VwOworCQkJCQkJCWludAkJCWxvd2VyOworCQkJCQkJCVR5 cGVDYWNoZUVudHJ5ICp0eXBlOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBPSywgdGhlcmUg bWlnaHQgYmUgc29tZSB2YWx1ZXMgbWF0Y2hpbmcgdGhlIHJhbmdlLiBXZSBoYXZlCisJCQkJ CQkJICogdG8gc2VhcmNoIHRoZW0gb25lIGJ5IG9uZSwgb3IgcGVyaGFwcyB0cnkgYmluc2Vh cmNoLgorCQkJCQkJCSAqLworCQkJCQkJCXR5cGUgPSBsb29rdXBfdHlwZV9jYWNoZShhcnJh eS0+dHlwZWlkLCBUWVBFQ0FDSEVfTFRfT1BSKTsKKworCQkJCQkJCW1lbXNldCgmc3N1cCwg MCwgc2l6ZW9mKFNvcnRTdXBwb3J0RGF0YSkpOworCisJCQkJCQkJc3N1cC5zc3VwX2NvbGxh dGlvbiA9IGtleS0+c2tfY29sbGF0aW9uOworCQkJCQkJCXNzdXAuc3N1cF9jeHQgPSBDdXJy ZW50TWVtb3J5Q29udGV4dDsKKworCQkJCQkJCVByZXBhcmVTb3J0U3VwcG9ydEZyb21PcmRl cmluZ09wKHR5cGUtPmx0X29wciwgJnNzdXApOworCisJCQkJCQkJbG93ZXIgPSBsb3dlcl9i b3VuZGFyeShhcnJheS0+ZWxlbWVudHMsIGFycmF5LT5uZWxlbWVudHMsIHZhbCwgJnNzdXAp OworCisJCQkJCQkJLyogbm8gZWxlbWVudHMgY2FuIHBvc3NpYmx5IG1hdGNoICovCisJCQkJ CQkJaWYgKGxvd2VyID09IGFycmF5LT5uZWxlbWVudHMpCisJCQkJCQkJeworCQkJCQkJCQlt YXRjaGVzID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKwkJCQkJCQkJYnJlYWs7CisJCQkJCQkJ fQorCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBPSywgY2hlY2sgdGhlIGZpcnN0IGVsZW1lbnQg bXVzdCBtYXRjaCB0aGUgdXBwZXIgYm91bmRhcnkgdG9vCisJCQkJCQkJICogKGlmIGl0IGRv ZXMgbm90LCBubyBmb2xsb3dpbmcgZWxlbWVudHMgY2FuKS4KKwkJCQkJCQkgKgorCQkJCQkJ CSAqIEluIHRoZSBlcXVhbGl0eSBjYXNlIChXSEVSRSBjb2wgPSBzb21ldmFsKSwgd2Ugd2Fu dCB0byByZXR1cm4KKwkJCQkJCQkgKiB0aGUgY3VycmVudCBwYWdlIHJhbmdlIGlmIHRoZSBt aW5pbXVtIHZhbHVlIGluIHRoZSByYW5nZSA8PQorCQkJCQkJCSAqIHNjYW4ga2V5LCBhbmQg dGhlIG1heGltdW0gdmFsdWUgPj0gc2NhbiBrZXkuCisJCQkJCQkJICovCisJCQkJCQkJZmlu Zm8gPSBtaW5tYXhfbXVsdGlfZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywg c3VidHlwZSwKKwkJCQkJCQkJCQkJCQkJCQkJICAgQlRFcXVhbFN0cmF0ZWd5TnVtYmVyKTsK KwkJCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIHZh bCwgYXJyYXktPmVsZW1lbnRzW2xvd2VyXSk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJ CQkJCWNhc2UgQlRHcmVhdGVyRXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCQkJY2FzZSBCVEdy ZWF0ZXJTdHJhdGVneU51bWJlcjoKKwkJCQkJCWZpbmZvID0gbWlubWF4X211bHRpX2dldF9z dHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCisJCQkJCQkJCQkJCQkJ CQkJICAga2V5LT5za19zdHJhdGVneSk7CisJCQkJCQkvKiBsYXN0IHZhbHVlIGZyb20gdGhl IGFycmF5ICovCisJCQkJCQltYXRjaGVzID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNv bGxvaWQsIHZhbCwKKwkJCQkJCQkJCQkJCQlhcnJheS0+ZWxlbWVudHNbMF0pOworCQkJCQkJ YnJlYWs7CisKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8K KwkJCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5IG51bWJlciAlZCIsIGtleS0+ c2tfc3RyYXRlZ3kpOworCQkJCQkJbWF0Y2hlcyA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisJ CQkJCQlicmVhazsKKwkJCQl9CiAJCQl9CiAKIAkJCS8qIHRoZSByYW5nZSBoYXMgdG8gbWF0 Y2ggYWxsIHRoZSBzY2FuIGtleXMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApp bmRleCAxNjY2ODFjMzFlZi4uNGYxN2YwZDU4YzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYW1wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ft cHJvYy5kYXQKQEAgLTk0Niw2ICs5NDYsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v aW50ZWdlcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDInLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDInLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn aW50MicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50MicsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9j bnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2Vf aW50MicgfSwKQEAgLTk2NSw2ICs5NjgsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v aW50ZWdlcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDQnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn aW50NCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50NCcsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnQ0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQ0JywgYW1wcm9j bnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2Vf aW50NCcgfSwKQEAgLTk4NCw2ICs5OTAsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v aW50ZWdlcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDgnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ2ludDgnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9pbnRlZ2VyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn aW50OCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnQ4JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQ4JywgYW1wcm9j bnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2Vf aW50OCcgfSwKQEAgLTEwOTUsNiArMTEwNCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9vaWRfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdvaWQnLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ29pZCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9 PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL29pZF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ29pZCcsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnb2lkJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9j ID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vb2lkX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lk JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzExJywKICAg YW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV9pbnQ0JyB9LApAQCAtMTE2 MSw2ICsxMTczLDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9taW5tYXhfbXVs dGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpZCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAndGlkJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9t dWx0aV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlkX21pbm1heF9t dWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGlkJywKKyAgYW1wcm9jcmlnaHR0eXBl ID0+ICd0aWQnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4 X211bHRpX3ByZXByb2Nlc3MnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aWRfbWlu bWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aWQnLAogICBhbXByb2NyaWdo dHR5cGUgPT4gJ3RpZCcsIGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ2JyaW5f bWlubWF4X211bHRpX2Rpc3RhbmNlX3RpZCcgfSwKQEAgLTEyMTQsNiArMTIyOSw5IEBACiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2Zsb2F0NCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZmxvYXQ0Jywg YW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9vcHRp b25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X211bHRpX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDQnLAorICBhbXByb2NyaWdodHR5cGUgPT4g J2Zsb2F0NCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhf bXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21p bm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ0JywKICAgYW1wcm9j cmlnaHR0eXBlID0+ICdmbG9hdDQnLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV9mbG9hdDQnIH0sCkBAIC0xMjMzLDYgKzEy NTEsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfbWlubWF4X211bHRpX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDgnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2Zsb2F0OCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhf bXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X21pbm1h eF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ4JywKKyAgYW1wcm9jcmln aHR0eXBlID0+ICdmbG9hdDgnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2Jy aW5fbWlubWF4X211bHRpX3ByZXByb2Nlc3MnIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJp bi9mbG9hdF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0OCcs CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZmxvYXQ4JywgYW1wcm9jbnVtID0+ICcxMScsCiAg IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfZmxvYXQ4JyB9LApAQCAt MTMwNSw2ICsxMzI2LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHJfbWlu bWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdtYWNhZGRyJywKICAgYW1wcm9j cmlnaHR0eXBlID0+ICdtYWNhZGRyJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ ICdicmluX21pbm1heF9tdWx0aV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vbWFjYWRkcl9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2Fk ZHInLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzYn LAorICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX3ByZXByb2Nlc3MnIH0sCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAnbWFjYWRkcicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcics IGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX2Rp c3RhbmNlX21hY2FkZHInIH0sCkBAIC0xMzYxLDYgKzEzODUsOSBAQAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vbWFjYWRkcjhfbWlubWF4X211bHRpX29wcycsCiAgIGFtcHJvY2xlZnR0 eXBlID0+ICdtYWNhZGRyOCcsIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcjgnLCBhbXBy b2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMn IH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9tYWNhZGRyOF9taW5tYXhfbXVsdGlfb3Bz JywKKyAgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHI4JywgYW1wcm9jcmlnaHR0eXBlID0+ ICdtYWNhZGRyOCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9taW5t YXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2Fk ZHI4X21pbm1heF9tdWx0aV9vcHMnLAogICBhbXByb2NsZWZ0dHlwZSA9PiAnbWFjYWRkcjgn LCBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHI4JywKICAgYW1wcm9jbnVtID0+ICcxMScs IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfbWFjYWRkcjgnIH0sCkBA IC0xNDE1LDYgKzE0NDIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19t aW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2Jy aW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9u ZXR3b3JrX21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCisg IGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJv YyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL25ldHdvcmtfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICcx MScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfaW5ldCcgfSwK QEAgLTE1MjEsNiArMTU1MSw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX21p bm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZScsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAndGltZScsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJp bl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3Rp bWVfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4g J2JyaW4vdGltZV9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWUn LAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWUnLCBhbXByb2NudW0gPT4gJzExJywKICAg YW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV90aW1lJyB9LApAQCAtMTYw NCw2ICsxNjM3LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX21pbm1h eF9tdWx0aV9vcHMnLAogICBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wJywgYW1wcm9j cmlnaHR0eXBlID0+ICd0aW1lc3RhbXAnLAogICBhbXByb2NudW0gPT4gJzUnLCBhbXByb2Mg PT4gJ2JyaW5fbWlubWF4X211bHRpX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn YnJpbi9kYXRldGltZV9taW5tYXhfbXVsdGlfb3BzJywKKyAgYW1wcm9jbGVmdHR5cGUgPT4g J3RpbWVzdGFtcCcsIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wJywKKyAgYW1wcm9j bnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9 LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycs CiAgIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXAnLCBhbXByb2NyaWdodHR5cGUgPT4g J3RpbWVzdGFtcCcsCiAgIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2JyaW5fbWlu bWF4X211bHRpX2Rpc3RhbmNlX3RpbWVzdGFtcCcgfSwKQEAgLTE2MjMsNiArMTY1OSw5IEBA CiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9taW5tYXhfbXVsdGlfb3BzJywK ICAgYW1wcm9jbGVmdHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aW1lc3RhbXB0eicsCiAgIGFtcHJvY251bSA9PiAnNScsIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0 aW1lX21pbm1heF9tdWx0aV9vcHMnLAorICBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1w dHonLCBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWVzdGFtcHR6JywKKyAgYW1wcm9jbnVtID0+ ICc2JywgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycsCiAgIGFt cHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eicsIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGlt ZXN0YW1wdHonLAogICBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdicmluX21pbm1h eF9tdWx0aV9kaXN0YW5jZV90aW1lc3RhbXAnIH0sCkBAIC0xNjQyLDYgKzE2ODEsOSBAQAog eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRpX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdkYXRlJywg YW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9vcHRp b25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfbWlubWF4X211bHRp X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ ICdkYXRlJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9t dWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVf bWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9j cmlnaHR0eXBlID0+ICdkYXRlJywgYW1wcm9jbnVtID0+ICcxMScsCiAgIGFtcHJvYyA9PiAn YnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfZGF0ZScgfSwKQEAgLTE3MzMsNiArMTc3NSw5 IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlcnZhbF9taW5tYXhfbXVsdGlfb3Bz JywKICAgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludGVydmFsJywgYW1wcm9jcmlnaHR0eXBlID0+ ICdpbnRlcnZhbCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5t YXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFs X21pbm1heF9tdWx0aV9vcHMnLAorICBhbXByb2NsZWZ0dHlwZSA9PiAnaW50ZXJ2YWwnLCBh bXByb2NyaWdodHR5cGUgPT4gJ2ludGVydmFsJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1w cm9jID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vaW50ZXJ2YWxfbWlubWF4X211bHRpX29wcycsCiAgIGFtcHJvY2xlZnR0 eXBlID0+ICdpbnRlcnZhbCcsIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50ZXJ2YWwnLAogICBh bXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5j ZV9pbnRlcnZhbCcgfSwKQEAgLTE3ODksNiArMTgzNCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi90aW1ldHpfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0 aW1ldHonLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAn NScsCiAgIGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1w cm9jZmFtaWx5ID0+ICdicmluL3RpbWV0el9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVm dHR5cGUgPT4gJ3RpbWV0eicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXR6JywgYW1w cm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9j ZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGltZXR6X21pbm1heF9tdWx0aV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGltZXR6JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aW1ldHonLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ICdicmluX21pbm1h eF9tdWx0aV9kaXN0YW5jZV90aW1ldHonIH0sCkBAIC0xODc1LDYgKzE5MjMsOSBAQAogeyBh bXByb2NmYW1pbHkgPT4gJ2JyaW4vbnVtZXJpY19taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ251bWVyaWMnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ251bWVyaWMn LCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX29w dGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9udW1lcmljX21pbm1heF9tdWx0 aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVtZXJpYycsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL251 bWVyaWNfbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdudW1lcmljJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICdudW1lcmljJywgYW1wcm9jbnVtID0+ICcxMScsCiAg IGFtcHJvYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfZGlzdGFuY2VfbnVtZXJpYycgfSwKQEAg LTE5MjksNiArMTk4MCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi91dWlkX21pbm1h eF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCiAgIGFtcHJvY3JpZ2h0 dHlwZSA9PiAndXVpZCcsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9PiAnYnJpbl9t aW5tYXhfbXVsdGlfb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3V1aWRf bWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd1dWlkJywKKyAgYW1wcm9j cmlnaHR0eXBlID0+ICd1dWlkJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdi cmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vdXVpZF9taW5tYXhfbXVsdGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3V1aWQnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ3V1aWQnLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1w cm9jID0+ICdicmluX21pbm1heF9tdWx0aV9kaXN0YW5jZV91dWlkJyB9LApAQCAtMjAwNSw2 ICsyMDU5LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9taW5tYXhfbXVs dGlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2xzbicsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAncGdfbHNuJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX21p bm1heF9tdWx0aV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcGdfbHNu X21pbm1heF9tdWx0aV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICdwZ19sc24nLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2Mg PT4gJ2JyaW5fbWlubWF4X211bHRpX3ByZXByb2Nlc3MnIH0sCiB7IGFtcHJvY2ZhbWlseSA9 PiAnYnJpbi9wZ19sc25fbWlubWF4X211bHRpX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdw Z19sc24nLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3BnX2xzbicsIGFtcHJvY251bSA9PiAn MTEnLAogICBhbXByb2MgPT4gJ2JyaW5fbWlubWF4X211bHRpX2Rpc3RhbmNlX3BnX2xzbicg fSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDY2Mzg1NTJiZDA1Li40ZThkNjY2 ODY0OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC04NTIwLDYgKzg1MjAsMTAg QEAKICAgcHJvbmFtZSA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycsIHByb2lzc3Ry aWN0ID0+ICdmJywKICAgcHJvcmV0dHlwZSA9PiAndm9pZCcsIHByb2FyZ3R5cGVzID0+ICdp bnRlcm5hbCcsCiAgIHByb3NyYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfb3B0aW9ucycgfSwK K3sgb2lkID0+ICc5MzI2JywgZGVzY3IgPT4gJ0JSSU4gbXVsdGkgbWlubWF4IHN1cHBvcnQn LAorICBwcm9uYW1lID0+ICdicmluX21pbm1heF9tdWx0aV9wcmVwcm9jZXNzJywgcHJvaXNz dHJpY3QgPT4gJ2YnLAorICBwcm9yZXR0eXBlID0+ICdpbnRlcm5hbCcsIHByb2FyZ3R5cGVz ID0+ICdpbnRlcm5hbCBpbnRlcm5hbCcsCisgIHByb3NyYyA9PiAnYnJpbl9taW5tYXhfbXVs dGlfcHJlcHJvY2VzcycgfSwKIAogeyBvaWQgPT4gJzQ2MjEnLCBkZXNjciA9PiAnQlJJTiBt dWx0aSBtaW5tYXggaW50MiBkaXN0YW5jZScsCiAgIHByb25hbWUgPT4gJ2JyaW5fbWlubWF4 X211bHRpX2Rpc3RhbmNlX2ludDInLCBwcm9yZXR0eXBlID0+ICdmbG9hdDgnLApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluX211bHRpLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbl9tdWx0aS5vdXQKaW5kZXggOThlMWNkYWEzNjEu LjE1MzU1YjY5OWQ3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Jy aW5fbXVsdGkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbl9tdWx0 aS5vdXQKQEAgLTgyMywzICs4MjMsOTI5IEBAIFNFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f dGVzdF9tdWx0aV8yIFdIRVJFIGEgPj0gJ2M1MWNlNDEwLWMxMjQtYTEwZS0wZGI1LWU0Yjk3 CiAKIERST1AgVEFCTEUgYnJpbl90ZXN0X211bHRpXzI7CiBSRVNFVCBlbmFibGVfc2Vxc2Nh bjsKKy0tIGRvIHNvbWUgdGVzdHMgb24gSU4gY2xhdXNlcyBmb3Igc2ltcGxlIGRhdGEgdHlw ZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfbXVsdGlfMSAoYSBJTlQsIGIgQklHSU5U KSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF9tdWx0 aV8xCitTRUxFQ1QgaS81ICsgbW9kKDk5MSAqIGkgKyA2MTcsIDIwKSwKKyAgICAgICBpLzEw ICsgbW9kKDg1MyAqIGkgKyA0OTEsIDMwKQorICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw MDApIHMoaSk7CitDUkVBVEUgSU5ERVggYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEgT04g YnJpbl9pbl90ZXN0X211bHRpXzEgVVNJTkcgYnJpbiAoYSBpbnQ0X21pbm1heF9tdWx0aV9v cHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rl c3RfbXVsdGlfMV9pZHhfMiBPTiBicmluX2luX3Rlc3RfbXVsdGlfMSBVU0lORyBicmluIChi IGludDhfbWlubWF4X211bHRpX29wcykgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTEpOworU0VU IGVuYWJsZV9zZXFzY2FuPW9mZjsKKy0tIGludDogZXF1YWxpdHkKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgSU4gKDExMyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYSA9IDExMykKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSAxMTMpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfbXVsdGlfMSBXSEVSRSBhIElOICgxMTMpOworIGNvdW50IAorLS0tLS0tLQorICAgICA4 CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKDExMywgTlVMTCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkg KCd7MTEzLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGEgPSBBTlkgKCd7MTEzLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEg SU4gKDExMywgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDgKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYSBJTiAoTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rl c3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IEFOWSAoJ3tOVUxMLE5V TEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPSBBTlkgKCd7TlVMTCxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElOIChOVUxM LCBOVUxMKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBhIElOICgxMTMsIDE3Nyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdh dGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisg ICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezExMywxNzd9Jzo6aW50ZWdlcltd KSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVs dGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MTEz LDE3N30nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcpOworIGNvdW50IAor LS0tLS0tLQorICAgIDE2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKC0xMTMs IC0xNzcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGEgPSBBTlkgKCd7LTExMywtMTc3fSc6OmludGVnZXJbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEK KyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgney0xMTMsLTE3N30nOjpp bnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoLTExMywgLTE3Nyk7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMzEzLCAzNzcpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9 IEFOWSAoJ3szMTMsMzc3fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChhID0gQU5ZICgnezMxMywzNzd9Jzo6aW50ZWdlcltdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgSU4gKDMxMywgMzc3KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQor CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfbXVsdGlfMSBXSEVSRSBhIElOICgxMTMsIDE3NywgTlVMTCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBv biBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IEFO WSAoJ3sxMTMsMTc3LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAg SW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAg ICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MTEzLDE3NyxOVUxMfSc6OmludGVnZXJbXSkp CisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBhIElOICgxMTMsIDE3NywgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisgICAg MTYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIDI1KTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPSBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsMTc3LDI1fSc6OmludGVnZXJb XSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVs dGlfMSBXSEVSRSBhIElOICgxMTMsIDE3NywgMjUpOworIGNvdW50IAorLS0tLS0tLQorICAg IDI0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKE5VTEwsIDExMywgMTc3LCAy NSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAg ICAgUmVjaGVjayBDb25kOiAoYSA9IEFOWSAoJ3tOVUxMLDExMywxNzcsMjV9Jzo6aW50ZWdl cltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3Rf bXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7 TlVMTCwxMTMsMTc3LDI1fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElOIChOVUxMLCAxMTMs IDE3NywgMjUpOworIGNvdW50IAorLS0tLS0tLQorICAgIDI0CisoMSByb3cpCisKKy0tIGlu dDogbGVzcyB0aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzExM10pOworICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPCBBTlkg KCd7MTEzfSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4g b24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENv bmQ6IChhIDwgQU5ZICgnezExM30nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IEFOWShBUlJB WVsxMTNdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDUxNQorKDEgcm93KQorCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzExMywgTlVMTF0pOworICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVz dF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhIDwgQU5ZICgnezExMyxOVUxM fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJp bl9pbl90ZXN0X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChh IDwgQU5ZICgnezExMyxOVUxMfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZ WzExMywgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQorICAgNTE1CisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGEgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmludFtdKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2Fu IG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhIDwg QU5ZICgne05VTEwsTlVMTH0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoYSA8IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1 IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdI RVJFIGEgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmludFtdKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDw9IEFOWShBUlJBWVsx MTMsIDE3N10pOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChhIDw9IEFOWSAoJ3sxMTMsMTc3fSc6OmludGVnZXJbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzEK KyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhIDw9IEFOWSAoJ3sxMTMsMTc3fSc6Omlu dGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfbXVsdGlfMSBXSEVSRSBhIDw9IEFOWShBUlJBWVsxMTMsIDE3N10pOworIGNvdW50IAor LS0tLS0tLQorICAgODQzCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPCBBTlkoQVJS QVlbMTEzLCAxNzcsIE5VTExdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBB Z2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0 aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhIDwgQU5ZICgnezExMywxNzcsTlVMTH0n OjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5f aW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8 IEFOWSAoJ3sxMTMsMTc3LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPCBBTlkoQVJS QVlbMTEzLCAxNzcsIE5VTExdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDgzNQorKDEgcm93 KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDw9IEFOWShBUlJBWVsxMTMsIDE3NywgMjVdKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhl YXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25k OiAoYSA8PSBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4g IEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA8PSBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRl Z2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYSA8PSBBTlkoQVJSQVlbMTEzLCAxNzcsIDI1XSk7CisgY291bnQg CistLS0tLS0tCisgICA4NDMKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IEFOWShB UlJBWVtOVUxMLCAxMTMsIDE3NywgMjVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5f aW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhIDwgQU5ZICgne05V TEwsMTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYSA8IEFOWSAoJ3tOVUxMLDExMywxNzcsMjV9Jzo6aW50ZWdlcltdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGEgPCBBTlkoQVJSQVlbTlVMTCwgMTEzLCAxNzcsIDI1XSk7CisgY291bnQgCist LS0tLS0tCisgICA4MzUKKygxIHJvdykKKworLS0gaW50OiBncmVhdGVyIHRoYW4KK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0 aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzXSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdn cmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlf MQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA+IEFOWSAoJ3sxMTN9Jzo6aW50ZWdlcltd KSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVs dGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPiBBTlkgKCd7MTEz fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID4gQU5ZKEFSUkFZWzExM10pOworIGNvdW50IAor LS0tLS0tLQorICAgNDc3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJS QVlbMTEzLCBOVUxMXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAg LT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAg IFJlY2hlY2sgQ29uZDogKGEgPiBBTlkgKCd7MTEzLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAg ICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9p ZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPiBBTlkgKCd7MTEzLE5VTEx9 Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzLCBOVUxMXSk7CisgY291 bnQgCistLS0tLS0tCisgICA0NzcKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFO WShBUlJBWVtOVUxMLCBOVUxMXTo6aW50W10pOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211 bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPiBBTlkgKCd7TlVMTCxOVUxMfSc6 OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9p bl90ZXN0X211bHRpXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID4g QU5ZICgne05VTEwsTlVMTH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVtO VUxMLCBOVUxMXTo6aW50W10pOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cp CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGEgPj0gQU5ZKEFSUkFZWzExMywgMTc3XSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPj0gQU5Z ICgnezExMywxNzd9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXgg U2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGEgPj0gQU5ZICgnezExMywxNzd9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEg Pj0gQU5ZKEFSUkFZWzExMywgMTc3XSk7CisgY291bnQgCistLS0tLS0tCisgICA0ODUKKygx IHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVsxMTMsIDE3NywgTlVMTF0p OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGEgPiBBTlkgKCd7MTEzLDE3NyxOVUxMfSc6OmludGVnZXJbXSkpCisgICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4 XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID4gQU5ZICgnezExMywxNzcsTlVM TH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVsxMTMsIDE3NywgTlVMTF0p OworIGNvdW50IAorLS0tLS0tLQorICAgNDc3CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgPiBBTlkoQVJSQVlbMTEzLCAxNzcsIDI1XSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVz dF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID4gQU5ZICgnezExMywxNzcs MjV9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGEgPiBBTlkgKCd7MTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShB UlJBWVsxMTMsIDE3NywgMjVdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDkxNworKDEgcm93 KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IEFOWShBUlJBWVtOVUxMLCAxMTMsIDE3NywgMjVd KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPj0gQU5ZICgne05VTEwsMTEzLDE3NywyNX0nOjppbnRl Z2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVz dF9tdWx0aV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA+PSBBTlkg KCd7TlVMTCwxMTMsMTc3LDI1fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IEFOWShBUlJB WVtOVUxMLCAxMTMsIDE3NywgMjVdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDkyNQorKDEg cm93KQorCistLSBiaWdpbnQ6IGVxdWFsaXR5CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOICg4Mik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9 IDgyKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9t dWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IDgyKQorKDUg cm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hF UkUgYiBJTiAoODIpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEwCisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGIgSU4gKDgyLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dy ZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8x CisgICAgICAgICBSZWNoZWNrIENvbmQ6IChiID0gQU5ZICgnezgyLE5VTEx9Jzo6YmlnaW50 W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9t dWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3s4 MixOVUxMfSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyLCBOVUxMKTsKKyBjb3VudCAK Ky0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOIChOVUxM LCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0 bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVj ayBDb25kOiAoYiA9IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6YmlnaW50W10pKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8yCisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6Ymln aW50W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYiBJTiAoTlVMTCwgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisg ICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoODIsIDQxKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJy aW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChiID0gQU5ZICgn ezgyLDQxfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBv biBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKGIgPSBBTlkgKCd7ODIsNDF9Jzo6YmlnaW50W10pKQorKDUgcm93cykKKworU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoODIsIDQx KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVS RSBiIElOICgtODIsIC0xNDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAg ICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3stODIsLTE0MX0nOjpiaWdpbnRbXSkpCisg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFf aWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5ZICgney04MiwtMTQx fSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKC04MiwgLTE0MSk7CisgY291bnQgCistLS0t LS0tCisgICAgIDAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoMzgyLCA0NDEp OworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIg PSBBTlkgKCd7MzgyLDQ0MX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChiID0gQU5ZICgnezM4Miw0NDF9Jzo6YmlnaW50W10pKQorKDUgcm93 cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUg YiBJTiAoMzgyLCA0NDEpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisK K0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2lu X3Rlc3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0 MSxOVUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBv biBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29u ZDogKGIgPSBBTlkgKCd7ODIsNDEsTlVMTH0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQorCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOICg4 MiwgNDEsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDIwCisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgMTUpOworICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVs dGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0MSwxNX0nOjpi aWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90 ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5Z ICgnezgyLDQxLDE1fSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgMTUpOwor IGNvdW50IAorLS0tLS0tLQorICAgIDI1CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIg SU4gKE5VTEwsIDgyLCA0MSwgMTUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211 bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPSBBTlkgKCd7TlVMTCw4Miw0MSwx NX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJp bl9pbl90ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChi ID0gQU5ZICgne05VTEwsODIsNDEsMTV9Jzo6YmlnaW50W10pKQorKDUgcm93cykKKworU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoTlVM TCwgODIsIDQxLCAxNSk7CisgY291bnQgCistLS0tLS0tCisgICAgMjUKKygxIHJvdykKKwor LS0gYmlnaW50OiBsZXNzIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlbODJd KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBT Y2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChi IDwgQU5ZICgnezgyfSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4 IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChiIDwgQU5ZICgnezgyfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgQU5Z KEFSUkFZWzgyXSk7CisgY291bnQgCistLS0tLS0tCisgICA2NzQKKygxIHJvdykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211 bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVs4MiwgTlVMTF0pOworICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rl c3RfbXVsdGlfMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA8IEFOWSAoJ3s4MixOVUxM fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJp bl9pbl90ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChi IDwgQU5ZICgnezgyLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlb ODIsIE5VTExdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDY3NAorKDEgcm93KQorCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVs dGlfMSBXSEVSRSBiIDwgQU5ZKEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gYnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPCBB TlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGIgPCBBTlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGIgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmJpZ2ludFtdKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDw9IEFOWShBUlJBWVs4 MiwgNDFdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAg SGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENv bmQ6IChiIDw9IEFOWSAoJ3s4Miw0MX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8yCisgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoYiA8PSBBTlkgKCd7ODIsNDF9Jzo6aW50ZWdlcltdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGIgPD0gQU5ZKEFSUkFZWzgyLCA0MV0pOworIGNvdW50IAorLS0tLS0tLQorICAg Njg0CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlbODIsIDQxLCBO VUxMXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChiIDwgQU5ZICgnezgyLDQxLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhf MgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPCBBTlkgKCd7ODIsNDEsTlVMTH0n OjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVs4MiwgNDEsIE5VTExdKTsKKyBj b3VudCAKKy0tLS0tLS0KKyAgIDY3NAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDw9 IEFOWShBUlJBWVs4MiwgNDEsIDE1XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdn cmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlf MQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA8PSBBTlkgKCd7ODIsNDEsMTV9Jzo6aW50 ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rl c3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPD0gQU5Z ICgnezgyLDQxLDE1fSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDw9IEFOWShBUlJBWVs4Miwg NDEsIDE1XSk7CisgY291bnQgCistLS0tLS0tCisgICA2ODQKKygxIHJvdykKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRp XzEgV0hFUkUgYiA8IEFOWShBUlJBWVtOVUxMLCA4MiwgNDEsIDE1XSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBT Y2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChi IDwgQU5ZICgne05VTEwsODIsNDEsMTV9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAg ICAgICAgICAgSW5kZXggQ29uZDogKGIgPCBBTlkgKCd7TlVMTCw4Miw0MSwxNX0nOjppbnRl Z2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVtOVUxMLCA4MiwgNDEsIDE1XSk7CisgY291 bnQgCistLS0tLS0tCisgICA2NzQKKygxIHJvdykKKworLS0gYmlnaW50OiBncmVhdGVyIHRo YW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbODJdKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVz dF9tdWx0aV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChiID4gQU5ZICgnezgyfSc6Omlu dGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90 ZXN0X211bHRpXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID4gQU5Z ICgnezgyfSc6OmludGVnZXJbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5ZKEFSUkFZWzgyXSk7CisgY291 bnQgCistLS0tLS0tCisgICAzMTYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+IEFO WShBUlJBWVs4MiwgTlVMTF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMQorICAgICAg ICAgUmVjaGVjayBDb25kOiAoYiA+IEFOWSAoJ3s4MixOVUxMfSc6OmludGVnZXJbXSkpCisg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzFf aWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChiID4gQU5ZICgnezgyLE5VTEx9 Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbODIsIE5VTExdKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgIDMxNgorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5Z KEFSUkFZW05VTEwsIE5VTExdOjpiaWdpbnRbXSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211 bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7TlVMTCxOVUxMfSc6 OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2lu X3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPiBB TlkgKCd7TlVMTCxOVUxMfSc6OmJpZ2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbTlVM TCwgTlVMTF06OmJpZ2ludFtdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93 KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5ZKEFSUkFZWzgyLCA0MV0pOworICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9p bl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7ODIs NDF9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBi cmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAgSW5kZXggQ29uZDog KGIgPiBBTlkgKCd7ODIsNDF9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlb ODIsIDQxXSk7CisgY291bnQgCistLS0tLS0tCisgICA3MjYKKygxIHJvdykKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRp XzEgV0hFUkUgYiA+PSBBTlkoQVJSQVlbODIsIDQxLCBOVUxMXSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24g YnJpbl9pbl90ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPj0gQU5Z ICgnezgyLDQxLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMV9pZHhfMgorICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGIgPj0gQU5ZICgnezgyLDQxLE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1 IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdI RVJFIGIgPj0gQU5ZKEFSUkFZWzgyLCA0MSwgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQor ICAgNzM2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPj0gQU5ZKEFSUkFZWzgyLCA0 MSwgMTVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChiID49IEFOWSAoJ3s4Miw0MSwxNX0nOjppbnRlZ2VyW10pKQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8y CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA+PSBBTlkgKCd7ODIsNDEsMTV9Jzo6 aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPj0gQU5ZKEFSUkFZWzgyLCA0MSwgMTVdKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgIDk2MQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5Z KEFSUkFZW05VTEwsIDgyLCA0MSwgMTVdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90 ZXN0X211bHRpXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPiBBTlkgKCd7TlVMTCw4 Miw0MSwxNX0nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2Fu IG9uIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBD b25kOiAoYiA+IEFOWSAoJ3tOVUxMLDgyLDQxLDE1fSc6OmludGVnZXJbXSkpCisoNSByb3dz KQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBi ID4gQU5ZKEFSUkFZW05VTEwsIDgyLCA0MSwgMTVdKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAg IDk1NgorKDEgcm93KQorCitEUk9QIFRBQkxFIGJyaW5faW5fdGVzdF9tdWx0aV8xOworUkVT RVQgZW5hYmxlX3NlcXNjYW47CistLSBkbyBzb21lIHRlc3RzIG9uIElOIGNsYXVzZXMgZm9y IHZhcmxlbmEgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIGJyaW5faW5fdGVzdF9tdWx0aV8y IChhIFVVSUQpIFdJVEggKGZpbGxmYWN0b3I9MTApOworSU5TRVJUIElOVE8gYnJpbl9pbl90 ZXN0X211bHRpXzIKK1NFTEVDVCB2Ojp1dWlkIEZST00gKFNFTEVDVCByb3dfbnVtYmVyKCkg T1ZFUiAoT1JERVIgQlkgdikgYywgdiBGUk9NIChTRUxFQ1QgbWQ1KChpLzEzKTo6dGV4dCkg QVMgdiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIHMoaSkpIGZvbykgYmFyIE9SREVS IEJZIGMgKyAyNSAqIHJhbmRvbSgpOworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF9tdWx0 aV8yX2lkeCBPTiBicmluX2luX3Rlc3RfbXVsdGlfMiBVU0lORyBicmluIChhIHV1aWRfbWlu bWF4X211bHRpX29wcykgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTEpOworU0VUIGVuYWJsZV9z ZXFzY2FuPW9mZjsKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMC05ZGQ2LTAxYmIt ZTY5Zi0zNTEwMzkxNTIxODknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfbXVsdGlfMgorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9 ICczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknOjp1dWlkKQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8yX2lkeAor ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAnMzNlNzVmZjAtOWRkNi0wMWJiLWU2 OWYtMzUxMDM5MTUyMTg5Jzo6dXVpZCkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMC05ZGQ2LTAx YmItZTY5Zi0zNTEwMzkxNTIxODknKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMworKDEg cm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYt MzUxMDM5MTUyMTg5JywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFn Z3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRp XzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAtOWRkNi0w MWJiLWU2OWYtMzUxMDM5MTUyMTg5LE5VTEx9Jzo6dXVpZFtdKSkKKyAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMl9pZHgKKyAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlm LTM1MTAzOTE1MjE4OSxOVUxMfSc6OnV1aWRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAt OWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgTlVMTCk7CisgY291bnQgCistLS0tLS0t CisgICAgMTMKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoTlVMTCwgTlVMTCk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfbXVsdGlfMgorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9 IEFOWSAoJ3tOVUxMLE5VTEx9Jzo6dXVpZFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5k ZXggU2NhbiBvbiBicmluX2luX3Rlc3RfbXVsdGlfMl9pZHgKKyAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6IChhID0gQU5ZICgne05VTEwsTlVMTH0nOjp1dWlkW10pKQorKDUgcm93cykK KworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJ TiAoTlVMTCwgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1 MjE4OScsICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1YTcyYzAnKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJp dG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzIKKyAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUy MTg5LGY0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMH0nOjp1dWlkW10pKQor ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8y X2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAt OWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5LGY0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVl NDcxNDVhNzJjMH0nOjp1dWlkW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwLTlkZDYtMDFi Yi1lNjlmLTM1MTAzOTE1MjE4OScsICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1 YTcyYzAnKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyNgorKDEgcm93KQorCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5Jywg J2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsIE5VTEwpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzIKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYt MzUxMDM5MTUyMTg5LGY0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCxOVUxM fSc6OnV1aWRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9p bl90ZXN0X211bHRpXzJfaWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFO WSAoJ3szM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODksZjQ1N2M1NDUtYTlk ZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwLE5VTEx9Jzo6dXVpZFtdKSkKKyg1IHJvd3MpCisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4g KCczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknLCAnZjQ1N2M1NDUtYTlk ZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwJywgTlVMTCk7CisgY291bnQgCistLS0tLS0tCisg ICAgMjYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwLTlkZDYt MDFiYi1lNjlmLTM1MTAzOTE1MjE4OScsICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3 MTQ1YTcyYzAnLCAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5Jyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0 X211bHRpXzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7MzNlNzVmZjAt OWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5LGY0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVl NDcxNDVhNzJjMCxjNTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5N2ZjMmFmMzl9Jzo6dXVp ZFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3Rf bXVsdGlfMl9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezMz ZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OSxmNDU3YzU0NS1hOWRlLWQ4OGYt MThlYy1lZTQ3MTQ1YTcyYzAsYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5 fSc6OnV1aWRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUx MDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsICdj NTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5N2ZjMmFmMzknKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAzOQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOIChOVUxMLCAnMzNl NzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4 Zi0xOGVjLWVlNDcxNDVhNzJjMCcsICdjNTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5N2Zj MmFmMzknKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0X211bHRpXzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPSBBTlkgKCd7TlVMTCwzM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODks ZjQ1N2M1NDUtYTlkZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwLGM1MWNlNDEwLWMxMjQtYTEw ZS0wZGI1LWU0Yjk3ZmMyYWYzOX0nOjp1dWlkW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9tdWx0aV8yX2lkeAorICAgICAgICAgICAgICAg SW5kZXggQ29uZDogKGEgPSBBTlkgKCd7TlVMTCwzM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0z NTEwMzkxNTIxODksZjQ1N2M1NDUtYTlkZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMwLGM1MWNl NDEwLWMxMjQtYTEwZS0wZGI1LWU0Yjk3ZmMyYWYzOX0nOjp1dWlkW10pKQorKDUgcm93cykK KworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJ TiAoTlVMTCwgJzMzZTc1ZmYwLTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OScsICdmNDU3 YzU0NS1hOWRlLWQ4OGYtMThlYy1lZTQ3MTQ1YTcyYzAnLCAnYzUxY2U0MTAtYzEyNC1hMTBl LTBkYjUtZTRiOTdmYzJhZjM5Jyk7CisgY291bnQgCistLS0tLS0tCisgICAgMzkKKygxIHJv dykKKworRFJPUCBUQUJMRSBicmluX2luX3Rlc3RfbXVsdGlfMjsKK1JFU0VUIGVuYWJsZV9z ZXFzY2FuOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9tdWx0aS5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmluX211bHRpLnNxbAppbmRleCBhNTllMTgy YmMyNS4uZmExZDVmN2RmZWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Jy aW5fbXVsdGkuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW5fbXVsdGkuc3Fs CkBAIC01NTAsMyArNTUwLDMwNCBAQCBTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX3Rlc3Rf bXVsdGlfMiBXSEVSRSBhID49ICdjNTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5NwogCiBE Uk9QIFRBQkxFIGJyaW5fdGVzdF9tdWx0aV8yOwogUkVTRVQgZW5hYmxlX3NlcXNjYW47CisK KworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2VzIGZvciBzaW1wbGUgZGF0YSB0eXBl cworQ1JFQVRFIFRBQkxFIGJyaW5faW5fdGVzdF9tdWx0aV8xIChhIElOVCwgYiBCSUdJTlQp IFdJVEggKGZpbGxmYWN0b3I9MTApOworSU5TRVJUIElOVE8gYnJpbl9pbl90ZXN0X211bHRp XzEKK1NFTEVDVCBpLzUgKyBtb2QoOTkxICogaSArIDYxNywgMjApLAorICAgICAgIGkvMTAg KyBtb2QoODUzICogaSArIDQ5MSwgMzApCisgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAw MCkgcyhpKTsKKworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF9tdWx0aV8xX2lkeF8xIE9O IGJyaW5faW5fdGVzdF9tdWx0aV8xIFVTSU5HIGJyaW4gKGEgaW50NF9taW5tYXhfbXVsdGlf b3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9MSk7CitDUkVBVEUgSU5ERVggYnJpbl9pbl90 ZXN0X211bHRpXzFfaWR4XzIgT04gYnJpbl9pbl90ZXN0X211bHRpXzEgVVNJTkcgYnJpbiAo YiBpbnQ4X21pbm1heF9tdWx0aV9vcHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKKwor U0VUIGVuYWJsZV9zZXFzY2FuPW9mZjsKKworLS0gaW50OiBlcXVhbGl0eQorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEg V0hFUkUgYSBJTiAoMTEzKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYSBJTiAoMTEzKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMTEz LCBOVUxMKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEg V0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoTlVMTCwg TlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdI RVJFIGEgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElOICgxMTMsIDE3 Nyk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgSU4gKDExMywgMTc3KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoLTExMywgLTE3Nyk7 CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEg SU4gKC0xMTMsIC0xNzcpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElOICgzMTMsIDM3Nyk7CisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4g KDMxMywgMzc3KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOwor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIElO ICgxMTMsIDE3NywgTlVMTCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKDExMywgMTc3LCAy NSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgSU4gKDExMywgMTc3LCAyNSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgSU4gKE5VTEwsIDEx MywgMTc3LCAyNSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0 aV8xIFdIRVJFIGEgSU4gKE5VTEwsIDExMywgMTc3LCAyNSk7CisKKy0tIGludDogbGVzcyB0 aGFuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzExM10pOworCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzEx M10pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZWzExMywgTlVMTF0pOworCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5Z KEFSUkFZWzExMywgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDwgQU5ZKEFSUkFZW05V TEwsIE5VTExdOjppbnRbXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVz dF9tdWx0aV8xIFdIRVJFIGEgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmludFtdKTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYSA8PSBBTlkoQVJSQVlbMTEzLCAxNzddKTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8PSBBTlkoQVJSQVlb MTEzLCAxNzddKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IEFOWShBUlJBWVsxMTMsIDE3Nywg TlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBX SEVSRSBhIDwgQU5ZKEFSUkFZWzExMywgMTc3LCBOVUxMXSk7CisKK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJF IGEgPD0gQU5ZKEFSUkFZWzExMywgMTc3LCAyNV0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhIDw9IEFOWShBUlJBWVsxMTMsIDE3Nywg MjVdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA8IEFOWShBUlJBWVtOVUxMLCAxMTMsIDE3Nywg MjVdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hF UkUgYSA8IEFOWShBUlJBWVtOVUxMLCAxMTMsIDE3NywgMjVdKTsKKworLS0gaW50OiBncmVh dGVyIHRoYW4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzXSk7CisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJS QVlbMTEzXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzLCBOVUxMXSk7 CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEg PiBBTlkoQVJSQVlbMTEzLCBOVUxMXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGEgPiBBTlkoQVJS QVlbTlVMTCwgTlVMTF06OmludFtdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVtOVUxMLCBOVUxMXTo6aW50W10p OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IEFOWShBUlJBWVsxMTMsIDE3N10pOworCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID49IEFOWShB UlJBWVsxMTMsIDE3N10pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBhID4gQU5ZKEFSUkFZWzExMywg MTc3LCBOVUxMXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0 aV8xIFdIRVJFIGEgPiBBTlkoQVJSQVlbMTEzLCAxNzcsIE5VTExdKTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEg V0hFUkUgYSA+IEFOWShBUlJBWVsxMTMsIDE3NywgMjVdKTsKKworU0VMRUNUIENPVU5UKCop IEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+IEFOWShBUlJBWVsxMTMsIDE3 NywgMjVdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYSA+PSBBTlkoQVJSQVlbTlVMTCwgMTEzLCAx NzcsIDI1XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGEgPj0gQU5ZKEFSUkFZW05VTEwsIDExMywgMTc3LCAyNV0pOworCistLSBiaWdp bnQ6IGVxdWFsaXR5CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOICg4Mik7CisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyKTsKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211 bHRpXzEgV0hFUkUgYiBJTiAoODIsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOICg4MiwgTlVMTCk7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGIgSU4gKE5VTEwsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIElOIChOVUxMLCBOVUxMKTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEg V0hFUkUgYiBJTiAoODIsIDQxKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoODIsIDQxKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJ TiAoLTgyLCAtMTQxKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211 bHRpXzEgV0hFUkUgYiBJTiAoLTgyLCAtMTQxKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAo MzgyLCA0NDEpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBiIElOICgzODIsIDQ0MSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgyLCA0 MSwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8x IFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgSU4gKDgy LCA0MSwgMTUpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MSBXSEVSRSBiIElOICg4MiwgNDEsIDE1KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiBJTiAoTlVM TCwgODIsIDQxLCAxNSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwgMTUpOworCistLSBiaWdpbnQ6IGxl c3MgdGhhbgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVs4Ml0pOworCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgQU5ZKEFSUkFZ WzgyXSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlbODIsIE5VTExdKTsKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA8IEFO WShBUlJBWVs4MiwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgQU5ZKEFSUkFZW05V TEwsIE5VTExdOjpiaWdpbnRbXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmJpZ2ludFtd KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0X211bHRpXzEgV0hFUkUgYiA8PSBBTlkoQVJSQVlbODIsIDQxXSk7CisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPD0gQU5ZKEFS UkFZWzgyLCA0MV0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiIDwgQU5ZKEFSUkFZWzgyLCA0MSwg TlVMTF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBX SEVSRSBiIDwgQU5ZKEFSUkFZWzgyLCA0MSwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBi IDw9IEFOWShBUlJBWVs4MiwgNDEsIDE1XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPD0gQU5ZKEFSUkFZWzgyLCA0MSwgMTVdKTsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X211bHRpXzEgV0hFUkUgYiA8IEFOWShBUlJBWVtOVUxMLCA4MiwgNDEsIDE1XSk7CisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPCBB TlkoQVJSQVlbTlVMTCwgODIsIDQxLCAxNV0pOworCistLSBiaWdpbnQ6IGdyZWF0ZXIgdGhh bgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X211bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJBWVs4Ml0pOworCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5ZKEFSUkFZWzgyXSk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbODIsIE5VTExdKTsKKworU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJB WVs4MiwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID4gQU5ZKEFSUkFZW05VTEwsIE5V TExdOjpiaWdpbnRbXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9t dWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJSQVlbTlVMTCwgTlVMTF06OmJpZ2ludFtdKTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X211bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJBWVs4MiwgNDFdKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJBWVs4Miwg NDFdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJp bl9pbl90ZXN0X211bHRpXzEgV0hFUkUgYiA+PSBBTlkoQVJSQVlbODIsIDQxLCBOVUxMXSk7 CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIg Pj0gQU5ZKEFSUkFZWzgyLCA0MSwgTlVMTF0pOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMSBXSEVSRSBiID49IEFO WShBUlJBWVs4MiwgNDEsIDE1XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8xIFdIRVJFIGIgPj0gQU5ZKEFSUkFZWzgyLCA0MSwgMTVdKTsKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211 bHRpXzEgV0hFUkUgYiA+IEFOWShBUlJBWVtOVUxMLCA4MiwgNDEsIDE1XSk7CisKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8xIFdIRVJFIGIgPiBBTlkoQVJS QVlbTlVMTCwgODIsIDQxLCAxNV0pOworCisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0X211 bHRpXzE7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKKworCistLSBkbyBzb21lIHRlc3RzIG9u IElOIGNsYXVzZXMgZm9yIHZhcmxlbmEgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIGJyaW5f aW5fdGVzdF9tdWx0aV8yIChhIFVVSUQpIFdJVEggKGZpbGxmYWN0b3I9MTApOworSU5TRVJU IElOVE8gYnJpbl9pbl90ZXN0X211bHRpXzIKK1NFTEVDVCB2Ojp1dWlkIEZST00gKFNFTEVD VCByb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgdikgYywgdiBGUk9NIChTRUxFQ1QgbWQ1 KChpLzEzKTo6dGV4dCkgQVMgdiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIHMoaSkp IGZvbykgYmFyIE9SREVSIEJZIGMgKyAyNSAqIHJhbmRvbSgpOworCitDUkVBVEUgSU5ERVgg YnJpbl9pbl90ZXN0X211bHRpXzJfaWR4IE9OIGJyaW5faW5fdGVzdF9tdWx0aV8yIFVTSU5H IGJyaW4gKGEgdXVpZF9taW5tYXhfbXVsdGlfb3BzKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9 MSk7CisKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4g KCczM2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknKTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYw LTlkZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OScpOworCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElO ICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgTlVMTCk7CisKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKCcz M2U3NWZmMC05ZGQ2LTAxYmItZTY5Zi0zNTEwMzkxNTIxODknLCBOVUxMKTsKKworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X211bHRp XzIgV0hFUkUgYSBJTiAoTlVMTCwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlO IChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlf MiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5Jywg J2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcpOworCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAt OWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVj LWVlNDcxNDVhNzJjMCcpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRk Ni0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVl NDcxNDVhNzJjMCcsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rl c3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5 MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsIE5VTEwp OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOICgnMzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUx MDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUtZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsICdj NTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5N2ZjMmFmMzknKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X211bHRpXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwLTlk ZDYtMDFiYi1lNjlmLTM1MTAzOTE1MjE4OScsICdmNDU3YzU0NS1hOWRlLWQ4OGYtMThlYy1l ZTQ3MTQ1YTcyYzAnLCAnYzUxY2U0MTAtYzEyNC1hMTBlLTBkYjUtZTRiOTdmYzJhZjM5Jyk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9tdWx0aV8yIFdIRVJFIGEgSU4gKE5VTEwsICczM2U3NWZmMC05ZGQ2LTAxYmItZTY5 Zi0zNTEwMzkxNTIxODknLCAnZjQ1N2M1NDUtYTlkZS1kODhmLTE4ZWMtZWU0NzE0NWE3MmMw JywgJ2M1MWNlNDEwLWMxMjQtYTEwZS0wZGI1LWU0Yjk3ZmMyYWYzOScpOworCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfbXVsdGlfMiBXSEVSRSBhIElOIChOVUxMLCAn MzNlNzVmZjAtOWRkNi0wMWJiLWU2OWYtMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1LWE5ZGUt ZDg4Zi0xOGVjLWVlNDcxNDVhNzJjMCcsICdjNTFjZTQxMC1jMTI0LWExMGUtMGRiNS1lNGI5 N2ZjMmFmMzknKTsKKworRFJPUCBUQUJMRSBicmluX2luX3Rlc3RfbXVsdGlfMjsKK1JFU0VU IGVuYWJsZV9zZXFzY2FuOwotLSAKMi4zOS4xCgo= --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0008-Support-SK_SEARCHARRAY-in-BRIN-inclusion-20230217.patch" Content-Disposition: attachment; filename*0="0008-Support-SK_SEARCHARRAY-in-BRIN-inclusion-20230217.patch" Content-Transfer-Encoding: base64 RnJvbSBjZWNmNjg0YjQ3ODM2Y2U0ZDNjMGE0ODViYmZkN2Y0Y2MxZmYxOTYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAxMSBGZWIgMjAyMyAxNToyMzoyNSArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggOC85XSBTdXBwb3J0IFNLX1NFQVJDSEFSUkFZIGluIEJSSU4gaW5jbHVz aW9uCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5faW5jbHVzaW9uLmMgfCAy NDYgKysrKysrKysrKysrKysrKysrLS0tLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1w cm9jLmRhdCAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dCAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW4ub3V0 ICAgICAgIHwgMTMyICsrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbi5z cWwgICAgICAgICAgICB8ICA1MyArKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAzOTAgaW5zZXJ0 aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2JyaW4vYnJpbl9pbmNsdXNpb24uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW5faW5jbHVzaW9uLmMKaW5kZXggMjQ4MTE2YzE0OTQuLjg0ODU4NDMwOTUwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX2luY2x1c2lvbi5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5faW5jbHVzaW9uLmMKQEAgLTMwLDYgKzMwLDcg QEAKICNpbmNsdWRlICJhY2Nlc3Mvc2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW1v cC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgInV0aWxzL2Fy cmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9k YXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtNzIsNiArNzMsMTMg QEAKICNkZWZpbmUgSU5DTFVTSU9OX1VOTUVSR0VBQkxFCQkxCiAjZGVmaW5lIElOQ0xVU0lP Tl9DT05UQUlOU19FTVBUWQkyCiAKKy8qCisgKiBXZSB1c2Ugc29tZSBwcml2YXRlIHNrX2Zs YWdzIGJpdHMgaW4gcHJlcHJvY2Vzc2VkIHNjYW4ga2V5cy4gIFdlJ3JlIGFsbG93ZWQKKyAq IHRvIHVzZSBiaXRzIDE2LTMxIChzZWUgc2tleS5oKS4gIFRoZSB1cHBlcm1vc3QgYml0cyBh cmUgY29waWVkIGZyb20gdGhlCisgKiBpbmRleCdzIGluZG9wdGlvbltdIGFycmF5IGVudHJ5 IGZvciB0aGUgaW5kZXggYXR0cmlidXRlLgorICovCisjZGVmaW5lIFNLX0JSSU5fQVJSQVkJ MHgwMDAxMDAwMAkvKiBkZWNvbnN0cnVjdGVkIGFycmF5ICovCisKIAogdHlwZWRlZiBzdHJ1 Y3QgSW5jbHVzaW9uT3BhcXVlCiB7CkBAIC0yMzgsNDQgKzI0Niw5NCBAQCBicmluX2luY2x1 c2lvbl9hZGRfdmFsdWUoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fQk9PTCh0cnVl KTsKIH0KIAordHlwZWRlZiBzdHJ1Y3QgU2NhbktleUFycmF5IHsKKwlpbnQJCW5lbGVtZW50 czsKKwlEYXR1bSAgKmVsZW1lbnRzOworfSBTY2FuS2V5QXJyYXk7CisKK0RhdHVtCiticmlu X2luY2x1c2lvbl9wcmVwcm9jZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLy8gQnJpbkRl c2MgICAqYmRlc2MgPSAoQnJpbkRlc2MgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7CisJU2Nh bktleQkJa2V5ID0gKFNjYW5LZXkpIFBHX0dFVEFSR19QT0lOVEVSKDEpOworCVNjYW5LZXkJ CW5ld2tleTsKKwlTY2FuS2V5QXJyYXkgKnNjYW5hcnJheTsKKworCUFycmF5VHlwZSAgKmFy cmF5dmFsOworCWludDE2CQllbG1sZW47CisJYm9vbAkJZWxtYnl2YWw7CisJY2hhcgkJZWxt YWxpZ247CisJaW50CQkJbnVtX2VsZW1zOworCURhdHVtCSAgICplbGVtX3ZhbHVlczsKKwli b29sCSAgICplbGVtX251bGxzOworCisJLyogbnVtYmVyIG9mIG5vbi1udWxsIGVsZW1lbnRz IGluIHRoZSBhcnJheSAqLworCWludAkJCW51bV9ub25udWxsczsKKworCS8qIGlnbm9yZSBz Y2FsYXIga2V5cyAqLworCWlmICghKGtleS0+c2tfZmxhZ3MgJiBTS19TRUFSQ0hBUlJBWSkp CisJCVBHX1JFVFVSTl9QT0lOVEVSKGtleSk7CisKKwlhcnJheXZhbCA9IERhdHVtR2V0QXJy YXlUeXBlUChrZXktPnNrX2FyZ3VtZW50KTsKKworCWdldF90eXBsZW5ieXZhbGFsaWduKEFS Ul9FTEVNVFlQRShhcnJheXZhbCksCisJCQkJCQkgJmVsbWxlbiwgJmVsbWJ5dmFsLCAmZWxt YWxpZ24pOworCisJZGVjb25zdHJ1Y3RfYXJyYXkoYXJyYXl2YWwsCisJCQkJCSAgQVJSX0VM RU1UWVBFKGFycmF5dmFsKSwKKwkJCQkJICBlbG1sZW4sIGVsbWJ5dmFsLCBlbG1hbGlnbiwK KwkJCQkJICAmZWxlbV92YWx1ZXMsICZlbGVtX251bGxzLCAmbnVtX2VsZW1zKTsKKworCS8q IGVsaW1pbmF0ZSBOVUxMIGVsZW1lbnRzICovCisJbnVtX25vbm51bGxzID0gMDsKKwlmb3Ig KGludCBpID0gMDsgaSA8IG51bV9lbGVtczsgaSsrKQorCXsKKwkJLyogc2tpcCBOVUxMIGVs ZW1lbnRzICovCisJCWlmIChlbGVtX251bGxzW2ldKQorCQkJY29udGludWU7CisKKwkJLyog aWYgbmVlZGVkLCBtb3ZlIHRoZSBub24tTlVMTCBvbmVzICovCisJCWlmIChudW1fbm9ubnVs bHMgIT0gaSkKKwkJCWVsZW1fdmFsdWVzW251bV9ub25udWxsc10gPSBlbGVtX3ZhbHVlc1tp XTsKKworCQludW1fbm9ubnVsbHMrKzsKKwl9CisKKwludW1fZWxlbXMgPSBudW1fbm9ubnVs bHM7CisKKwlzY2FuYXJyYXkgPSBwYWxsb2MwKHNpemVvZihTY2FuS2V5QXJyYXkpKTsKKwlz Y2FuYXJyYXktPm5lbGVtZW50cyA9IG51bV9lbGVtczsKKwlzY2FuYXJyYXktPmVsZW1lbnRz ID0gZWxlbV92YWx1ZXM7CisKKwluZXdrZXkgPSBwYWxsb2MwKHNpemVvZihTY2FuS2V5RGF0 YSkpOworCisJU2NhbktleUVudHJ5SW5pdGlhbGl6ZVdpdGhJbmZvKG5ld2tleSwKKwkJCQkJ CQkJICAgKGtleS0+c2tfZmxhZ3MgfCBTS19CUklOX0FSUkFZKSwKKwkJCQkJCQkJICAga2V5 LT5za19hdHRubywKKwkJCQkJCQkJICAga2V5LT5za19zdHJhdGVneSwKKwkJCQkJCQkJICAg a2V5LT5za19zdWJ0eXBlLAorCQkJCQkJCQkgICBrZXktPnNrX2NvbGxhdGlvbiwKKwkJCQkJ CQkJICAgJmtleS0+c2tfZnVuYywKKwkJCQkJCQkJICAgUG9pbnRlckdldERhdHVtKHNjYW5h cnJheSkpOworCisJUEdfUkVUVVJOX1BPSU5URVIobmV3a2V5KTsKK30KKwogLyoKLSAqIEJS SU4gaW5jbHVzaW9uIGNvbnNpc3RlbnQgZnVuY3Rpb24KLSAqCi0gKiBXZSdyZSBubyBsb25n ZXIgZGVhbGluZyB3aXRoIE5VTEwga2V5cyBpbiB0aGUgY29uc2lzdGVudCBmdW5jdGlvbiwg dGhhdCBpcwotICogbm93IGhhbmRsZWQgYnkgdGhlIEFNIGNvZGUuIFRoYXQgbWVhbnMgd2Ug c2hvdWxkIG5vdCBnZXQgYW55IGFsbC1OVUxMIHJhbmdlcwotICogZWl0aGVyLCBiZWNhdXNl IHRob3NlIGNhbid0IGJlIGNvbnNpc3RlbnQgd2l0aCByZWd1bGFyIChub3QgW0lTXSBOVUxM KSBrZXlzLgorICogQ2hlY2sgY29uc2lzdGVuY3kgb2YgYSBzaW5nbGUgc2NhbGFyIHZhbHVl IHdpdGggdGhlIEJSSU4gcmFuZ2UuCiAgKgotICogQWxsIG9mIHRoZSBzdHJhdGVnaWVzIGFy ZSBvcHRpb25hbC4KKyAqIENhbGxlZCBmb3IgYm90aCBzY2FsYXIgc2NhbmtleXMgYW5kIGZv ciBlYWNoIHZhbHVlIGluIFNLX1NFQVJDSEFSUkFZLgogICovCi1EYXR1bQotYnJpbl9pbmNs dXNpb25fY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQorc3RhdGljIGJvb2wKK2JyaW5f aW5jbHVzaW9uX2NvbnNpc3RlbnRfdmFsdWUoQnJpbkRlc2MgKmJkZXNjLCBCcmluVmFsdWVz ICpjb2x1bW4sCisJCQkJCQkJCUF0dHJOdW1iZXIgYXR0bm8sCisJCQkJCQkJCVN0cmF0ZWd5 TnVtYmVyIHN0cmF0ZWd5LCBPaWQgc3VidHlwZSwKKwkJCQkJCQkJT2lkIGNvbGxvaWQsIERh dHVtIHVuaW9udmFsLCBEYXR1bSBxdWVyeSkKIHsKLQlCcmluRGVzYyAgICpiZGVzYyA9IChC cmluRGVzYyAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKLQlCcmluVmFsdWVzICpjb2x1bW4g PSAoQnJpblZhbHVlcyAqKSBQR19HRVRBUkdfUE9JTlRFUigxKTsKLQlTY2FuS2V5CQlrZXkg PSAoU2NhbktleSkgUEdfR0VUQVJHX1BPSU5URVIoMik7Ci0JT2lkCQkJY29sbG9pZCA9IFBH X0dFVF9DT0xMQVRJT04oKSwKLQkJCQlzdWJ0eXBlOwotCURhdHVtCQl1bmlvbnZhbDsKLQlB dHRyTnVtYmVyCWF0dG5vOwotCURhdHVtCQlxdWVyeTsKIAlGbWdySW5mbyAgICpmaW5mbzsK IAlEYXR1bQkJcmVzdWx0OwogCi0JLyogVGhpcyBvcGNsYXNzIHVzZXMgdGhlIG9sZCBzaWdu YXR1cmUgd2l0aCBvbmx5IHRocmVlIGFyZ3VtZW50cy4gKi8KLQlBc3NlcnQoUEdfTkFSR1Mo KSA9PSAzKTsKLQotCS8qIFNob3VsZCBub3QgYmUgZGVhbGluZyB3aXRoIGFsbC1OVUxMIHJh bmdlcy4gKi8KLQlBc3NlcnQoIWNvbHVtbi0+YnZfYWxsbnVsbHMpOwotCi0JLyogSXQgaGFz IHRvIGJlIGNoZWNrZWQsIGlmIGl0IGNvbnRhaW5zIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBt ZXJnZWFibGUuICovCi0JaWYgKERhdHVtR2V0Qm9vbChjb2x1bW4tPmJ2X3ZhbHVlc1tJTkNM VVNJT05fVU5NRVJHRUFCTEVdKSkKLQkJUEdfUkVUVVJOX0JPT0wodHJ1ZSk7Ci0KLQlhdHRu byA9IGtleS0+c2tfYXR0bm87Ci0Jc3VidHlwZSA9IGtleS0+c2tfc3VidHlwZTsKLQlxdWVy eSA9IGtleS0+c2tfYXJndW1lbnQ7Ci0JdW5pb252YWwgPSBjb2x1bW4tPmJ2X3ZhbHVlc1tJ TkNMVVNJT05fVU5JT05dOwotCXN3aXRjaCAoa2V5LT5za19zdHJhdGVneSkKKwlzd2l0Y2gg KHN0cmF0ZWd5KQogCXsKIAkJCS8qCiAJCQkgKiBQbGFjZW1lbnQgc3RyYXRlZ2llcwpAQCAt Mjk0LDQ5ICszNTIsNDkgQEAgYnJpbl9pbmNsdXNpb25fY29uc2lzdGVudChQR19GVU5DVElP Tl9BUkdTKQogCQkJZmluZm8gPSBpbmNsdXNpb25fZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJk ZXNjLCBhdHRubywgc3VidHlwZSwKIAkJCQkJCQkJCQkJCQlSVE92ZXJSaWdodFN0cmF0ZWd5 TnVtYmVyKTsKIAkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lk LCB1bmlvbnZhbCwgcXVlcnkpOwotCQkJUEdfUkVUVVJOX0JPT0woIURhdHVtR2V0Qm9vbChy ZXN1bHQpKTsKKwkJCXJldHVybiAoIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKIAogCQljYXNl IFJUT3ZlckxlZnRTdHJhdGVneU51bWJlcjoKIAkJCWZpbmZvID0gaW5jbHVzaW9uX2dldF9z dHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJ UlRSaWdodFN0cmF0ZWd5TnVtYmVyKTsKIAkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2FsbDJDb2xs KGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVlcnkpOwotCQkJUEdfUkVUVVJOX0JPT0wo IURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKKwkJCXJldHVybiAoIURhdHVtR2V0Qm9vbChyZXN1 bHQpKTsKIAogCQljYXNlIFJUT3ZlclJpZ2h0U3RyYXRlZ3lOdW1iZXI6CiAJCQlmaW5mbyA9 IGluY2x1c2lvbl9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBl LAogCQkJCQkJCQkJCQkJCVJUTGVmdFN0cmF0ZWd5TnVtYmVyKTsKIAkJCXJlc3VsdCA9IEZ1 bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVlcnkpOwotCQkJ UEdfUkVUVVJOX0JPT0woIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKKwkJCXJldHVybiAoIURh dHVtR2V0Qm9vbChyZXN1bHQpKTsKIAogCQljYXNlIFJUUmlnaHRTdHJhdGVneU51bWJlcjoK IAkJCWZpbmZvID0gaW5jbHVzaW9uX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0 bm8sIHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJUlRPdmVyTGVmdFN0cmF0ZWd5TnVtYmVyKTsK IAkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZh bCwgcXVlcnkpOwotCQkJUEdfUkVUVVJOX0JPT0woIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsK KwkJCXJldHVybiAoIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKIAogCQljYXNlIFJUQmVsb3dT dHJhdGVneU51bWJlcjoKIAkJCWZpbmZvID0gaW5jbHVzaW9uX2dldF9zdHJhdGVneV9wcm9j aW5mbyhiZGVzYywgYXR0bm8sIHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJUlRPdmVyQWJvdmVT dHJhdGVneU51bWJlcik7CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywg Y29sbG9pZCwgdW5pb252YWwsIHF1ZXJ5KTsKLQkJCVBHX1JFVFVSTl9CT09MKCFEYXR1bUdl dEJvb2wocmVzdWx0KSk7CisJCQlyZXR1cm4gKCFEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAK IAkJY2FzZSBSVE92ZXJCZWxvd1N0cmF0ZWd5TnVtYmVyOgogCQkJZmluZm8gPSBpbmNsdXNp b25fZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBhdHRubywgc3VidHlwZSwKIAkJCQkJ CQkJCQkJCQlSVEFib3ZlU3RyYXRlZ3lOdW1iZXIpOwogCQkJcmVzdWx0ID0gRnVuY3Rpb25D YWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIHVuaW9udmFsLCBxdWVyeSk7Ci0JCQlQR19SRVRV Uk5fQk9PTCghRGF0dW1HZXRCb29sKHJlc3VsdCkpOworCQkJcmV0dXJuICghRGF0dW1HZXRC b29sKHJlc3VsdCkpOwogCiAJCWNhc2UgUlRPdmVyQWJvdmVTdHJhdGVneU51bWJlcjoKIAkJ CWZpbmZvID0gaW5jbHVzaW9uX2dldF9zdHJhdGVneV9wcm9jaW5mbyhiZGVzYywgYXR0bm8s IHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJUlRCZWxvd1N0cmF0ZWd5TnVtYmVyKTsKIAkJCXJl c3VsdCA9IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVl cnkpOwotCQkJUEdfUkVUVVJOX0JPT0woIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKKwkJCXJl dHVybiAoIURhdHVtR2V0Qm9vbChyZXN1bHQpKTsKIAogCQljYXNlIFJUQWJvdmVTdHJhdGVn eU51bWJlcjoKIAkJCWZpbmZvID0gaW5jbHVzaW9uX2dldF9zdHJhdGVneV9wcm9jaW5mbyhi ZGVzYywgYXR0bm8sIHN1YnR5cGUsCiAJCQkJCQkJCQkJCQkJUlRPdmVyQmVsb3dTdHJhdGVn eU51bWJlcik7CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9p ZCwgdW5pb252YWwsIHF1ZXJ5KTsKLQkJCVBHX1JFVFVSTl9CT09MKCFEYXR1bUdldEJvb2wo cmVzdWx0KSk7CisJCQlyZXR1cm4gKCFEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAKIAkJCS8q CiAJCQkgKiBPdmVybGFwIGFuZCBjb250YWlucyBzdHJhdGVnaWVzCkBAIC0zNTIsOSArNDEw LDkgQEAgYnJpbl9pbmNsdXNpb25fY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQlj YXNlIFJUU3ViU3RyYXRlZ3lOdW1iZXI6CiAJCWNhc2UgUlRTdWJFcXVhbFN0cmF0ZWd5TnVt YmVyOgogCQkJZmluZm8gPSBpbmNsdXNpb25fZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNj LCBhdHRubywgc3VidHlwZSwKLQkJCQkJCQkJCQkJCQlrZXktPnNrX3N0cmF0ZWd5KTsKKwkJ CQkJCQkJCQkJCQlzdHJhdGVneSk7CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChm aW5mbywgY29sbG9pZCwgdW5pb252YWwsIHF1ZXJ5KTsKLQkJCVBHX1JFVFVSTl9EQVRVTShy ZXN1bHQpOworCQkJcmV0dXJuIChEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAKIAkJCS8qCiAJ CQkgKiBDb250YWluZWQgYnkgc3RyYXRlZ2llcwpAQCAtMzc0LDkgKzQzMiw5IEBAIGJyaW5f aW5jbHVzaW9uX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCQkJCQlS VE92ZXJsYXBTdHJhdGVneU51bWJlcik7CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29s bChmaW5mbywgY29sbG9pZCwgdW5pb252YWwsIHF1ZXJ5KTsKIAkJCWlmIChEYXR1bUdldEJv b2wocmVzdWx0KSkKLQkJCQlQR19SRVRVUk5fQk9PTCh0cnVlKTsKKwkJCQlyZXR1cm4gKHRy dWUpOwogCi0JCQlQR19SRVRVUk5fREFUVU0oY29sdW1uLT5idl92YWx1ZXNbSU5DTFVTSU9O X0NPTlRBSU5TX0VNUFRZXSk7CisJCQlyZXR1cm4gKGNvbHVtbi0+YnZfdmFsdWVzW0lOQ0xV U0lPTl9DT05UQUlOU19FTVBUWV0pOwogCiAJCQkvKgogCQkJICogQWRqYWNlbnQgc3RyYXRl Z3kKQEAgLTM5MywxMiArNDUxLDEyIEBAIGJyaW5faW5jbHVzaW9uX2NvbnNpc3RlbnQoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCQkJCQlSVE92ZXJsYXBTdHJhdGVneU51bWJlcik7 CiAJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgdW5pb252 YWwsIHF1ZXJ5KTsKIAkJCWlmIChEYXR1bUdldEJvb2wocmVzdWx0KSkKLQkJCQlQR19SRVRV Uk5fQk9PTCh0cnVlKTsKKwkJCQlyZXR1cm4gKHRydWUpOwogCiAJCQlmaW5mbyA9IGluY2x1 c2lvbl9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAogCQkJ CQkJCQkJCQkJCVJUQWRqYWNlbnRTdHJhdGVneU51bWJlcik7CiAJCQlyZXN1bHQgPSBGdW5j dGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgdW5pb252YWwsIHF1ZXJ5KTsKLQkJCVBH X1JFVFVSTl9EQVRVTShyZXN1bHQpOworCQkJcmV0dXJuIChEYXR1bUdldEJvb2wocmVzdWx0 KSk7CiAKIAkJCS8qCiAJCQkgKiBCYXNpYyBjb21wYXJpc29uIHN0cmF0ZWdpZXMKQEAgLTQy OCw5ICs0ODYsOSBAQCBicmluX2luY2x1c2lvbl9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FS R1MpCiAJCQkJCQkJCQkJCQkJUlRSaWdodFN0cmF0ZWd5TnVtYmVyKTsKIAkJCXJlc3VsdCA9 IEZ1bmN0aW9uQ2FsbDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVlcnkpOwog CQkJaWYgKCFEYXR1bUdldEJvb2wocmVzdWx0KSkKLQkJCQlQR19SRVRVUk5fQk9PTCh0cnVl KTsKKwkJCQlyZXR1cm4gKHRydWUpOwogCi0JCQlQR19SRVRVUk5fREFUVU0oY29sdW1uLT5i dl92YWx1ZXNbSU5DTFVTSU9OX0NPTlRBSU5TX0VNUFRZXSk7CisJCQlyZXR1cm4gKGNvbHVt bi0+YnZfdmFsdWVzW0lOQ0xVU0lPTl9DT05UQUlOU19FTVBUWV0pOwogCiAJCWNhc2UgUlRT YW1lU3RyYXRlZ3lOdW1iZXI6CiAJCWNhc2UgUlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgpAQCAt NDM4LDMwICs0OTYsMTEwIEBAIGJyaW5faW5jbHVzaW9uX2NvbnNpc3RlbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAkJCQkJCQkJCQkJCQlSVENvbnRhaW5zU3RyYXRlZ3lOdW1iZXIpOwogCQkJ cmVzdWx0ID0gRnVuY3Rpb25DYWxsMkNvbGwoZmluZm8sIGNvbGxvaWQsIHVuaW9udmFsLCBx dWVyeSk7CiAJCQlpZiAoRGF0dW1HZXRCb29sKHJlc3VsdCkpCi0JCQkJUEdfUkVUVVJOX0JP T0wodHJ1ZSk7CisJCQkJcmV0dXJuICh0cnVlKTsKIAotCQkJUEdfUkVUVVJOX0RBVFVNKGNv bHVtbi0+YnZfdmFsdWVzW0lOQ0xVU0lPTl9DT05UQUlOU19FTVBUWV0pOworCQkJcmV0dXJu IChjb2x1bW4tPmJ2X3ZhbHVlc1tJTkNMVVNJT05fQ09OVEFJTlNfRU1QVFldKTsKIAogCQlj YXNlIFJUR3JlYXRlckVxdWFsU3RyYXRlZ3lOdW1iZXI6CiAJCQlmaW5mbyA9IGluY2x1c2lv bl9nZXRfc3RyYXRlZ3lfcHJvY2luZm8oYmRlc2MsIGF0dG5vLCBzdWJ0eXBlLAogCQkJCQkJ CQkJCQkJCVJUTGVmdFN0cmF0ZWd5TnVtYmVyKTsKIAkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2Fs bDJDb2xsKGZpbmZvLCBjb2xsb2lkLCB1bmlvbnZhbCwgcXVlcnkpOwogCQkJaWYgKCFEYXR1 bUdldEJvb2wocmVzdWx0KSkKLQkJCQlQR19SRVRVUk5fQk9PTCh0cnVlKTsKKwkJCQlyZXR1 cm4gKHRydWUpOwogCi0JCQlQR19SRVRVUk5fREFUVU0oY29sdW1uLT5idl92YWx1ZXNbSU5D TFVTSU9OX0NPTlRBSU5TX0VNUFRZXSk7CisJCQlyZXR1cm4gKGNvbHVtbi0+YnZfdmFsdWVz W0lOQ0xVU0lPTl9DT05UQUlOU19FTVBUWV0pOwogCiAJCWNhc2UgUlRHcmVhdGVyU3RyYXRl Z3lOdW1iZXI6CiAJCQkvKiBubyBuZWVkIHRvIGNoZWNrIGZvciBlbXB0eSBlbGVtZW50cyAq LwogCQkJZmluZm8gPSBpbmNsdXNpb25fZ2V0X3N0cmF0ZWd5X3Byb2NpbmZvKGJkZXNjLCBh dHRubywgc3VidHlwZSwKIAkJCQkJCQkJCQkJCQlSVExlZnRTdHJhdGVneU51bWJlcik7CiAJ CQlyZXN1bHQgPSBGdW5jdGlvbkNhbGwyQ29sbChmaW5mbywgY29sbG9pZCwgdW5pb252YWws IHF1ZXJ5KTsKLQkJCVBHX1JFVFVSTl9CT09MKCFEYXR1bUdldEJvb2wocmVzdWx0KSk7CisJ CQlyZXR1cm4gKCFEYXR1bUdldEJvb2wocmVzdWx0KSk7CiAKIAkJZGVmYXVsdDoKIAkJCS8q IHNob3VsZG4ndCBoYXBwZW4gKi8KLQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHN0cmF0ZWd5 IG51bWJlciAlZCIsIGtleS0+c2tfc3RyYXRlZ3kpOwotCQkJUEdfUkVUVVJOX0JPT0woZmFs c2UpOworCQkJZWxvZyhFUlJPUiwgImludmFsaWQgc3RyYXRlZ3kgbnVtYmVyICVkIiwgc3Ry YXRlZ3kpOworCQkJcmV0dXJuIChmYWxzZSk7CisJfQorfQorCisvKgorICogQlJJTiBpbmNs dXNpb24gY29uc2lzdGVudCBmdW5jdGlvbgorICoKKyAqIFdlJ3JlIG5vIGxvbmdlciBkZWFs aW5nIHdpdGggTlVMTCBrZXlzIGluIHRoZSBjb25zaXN0ZW50IGZ1bmN0aW9uLCB0aGF0IGlz CisgKiBub3cgaGFuZGxlZCBieSB0aGUgQU0gY29kZS4gVGhhdCBtZWFucyB3ZSBzaG91bGQg bm90IGdldCBhbnkgYWxsLU5VTEwgcmFuZ2VzCisgKiBlaXRoZXIsIGJlY2F1c2UgdGhvc2Ug Y2FuJ3QgYmUgY29uc2lzdGVudCB3aXRoIHJlZ3VsYXIgKG5vdCBbSVNdIE5VTEwpIGtleXMu CisgKgorICogQWxsIG9mIHRoZSBzdHJhdGVnaWVzIGFyZSBvcHRpb25hbC4KKyAqLworRGF0 dW0KK2JyaW5faW5jbHVzaW9uX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlC cmluRGVzYyAgICpiZGVzYyA9IChCcmluRGVzYyAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsK KwlCcmluVmFsdWVzICpjb2x1bW4gPSAoQnJpblZhbHVlcyAqKSBQR19HRVRBUkdfUE9JTlRF UigxKTsKKwlTY2FuS2V5CQlrZXkgPSAoU2NhbktleSkgUEdfR0VUQVJHX1BPSU5URVIoMik7 CisJT2lkCQkJY29sbG9pZCA9IFBHX0dFVF9DT0xMQVRJT04oKSwKKwkJCQlzdWJ0eXBlOwor CURhdHVtCQl1bmlvbnZhbDsKKwlBdHRyTnVtYmVyCWF0dG5vOworCURhdHVtCQlxdWVyeTsK KworCS8qIFRoaXMgb3BjbGFzcyB1c2VzIHRoZSBvbGQgc2lnbmF0dXJlIHdpdGggb25seSB0 aHJlZSBhcmd1bWVudHMuICovCisJQXNzZXJ0KFBHX05BUkdTKCkgPT0gMyk7CisKKwkvKiBT aG91bGQgbm90IGJlIGRlYWxpbmcgd2l0aCBhbGwtTlVMTCByYW5nZXMuICovCisJQXNzZXJ0 KCFjb2x1bW4tPmJ2X2FsbG51bGxzKTsKKworCS8qIEl0IGhhcyB0byBiZSBjaGVja2VkLCBp ZiBpdCBjb250YWlucyBlbGVtZW50cyB0aGF0IGFyZSBub3QgbWVyZ2VhYmxlLiAqLworCWlm IChEYXR1bUdldEJvb2woY29sdW1uLT5idl92YWx1ZXNbSU5DTFVTSU9OX1VOTUVSR0VBQkxF XSkpCisJCVBHX1JFVFVSTl9CT09MKHRydWUpOworCisJYXR0bm8gPSBrZXktPnNrX2F0dG5v OworCXN1YnR5cGUgPSBrZXktPnNrX3N1YnR5cGU7CisJcXVlcnkgPSBrZXktPnNrX2FyZ3Vt ZW50OworCXVuaW9udmFsID0gY29sdW1uLT5idl92YWx1ZXNbSU5DTFVTSU9OX1VOSU9OXTsK KworCS8qCisJICogRm9yIHJlZ3VsYXIgKHNjYWxhcikgc2NhbiBrZXlzLCB3ZSBzaW1wbHkg Y29tcGFyZSB0aGUgdmFsdWUgdG8gdGhlCisJICogcmFuZ2UgbWluL21heCB2YWx1ZXMsIGFu ZCB3ZSdyZSBkb25lLiBGb3IgU0tfU0VBUkNIQVJSQVkga2V5cyB3ZQorCSAqIG5lZWQgdG8g ZGVwYXJzZSB0aGUgYXJyYXkgYW5kIGxvb3AgdGhyb3VnaCB0aGUgdmFsdWVzLgorCSAqLwor CWlmIChsaWtlbHkoIShrZXktPnNrX2ZsYWdzICYgU0tfU0VBUkNIQVJSQVkpKSkKKwl7CisJ CWJvb2wgdG1wOworCisJCXRtcCA9IGJyaW5faW5jbHVzaW9uX2NvbnNpc3RlbnRfdmFsdWUo YmRlc2MsIGNvbHVtbiwgYXR0bm8sCisJCQkJCQkJCQkJCSAga2V5LT5za19zdHJhdGVneSwK KwkJCQkJCQkJCQkJICBzdWJ0eXBlLCBjb2xsb2lkLAorCQkJCQkJCQkJCQkgIHVuaW9udmFs LCBxdWVyeSk7CisJCVBHX1JFVFVSTl9CT09MKHRtcCk7CisJfQorCWVsc2UKKwl7CisJCVNj YW5LZXlBcnJheSAqYXJyYXkgPSAoU2NhbktleUFycmF5ICopIHF1ZXJ5OworCQlib29sCQlt YXRjaGVzID0gZmFsc2U7CisKKwkJLyoKKwkJICogTG9vcCB0aHJvdWdoIGFsbCBwcmUtY2Fs Y3VsYXRlZCBoYXNoZXMsIGNoZWNrIHRoZSBibG9vbSBmaWx0ZXIuCisJCSAqCisJCSAqIFhY WCBXaXRoIGVtcHR5IGNhY2hlICh3aGljaCBjYW4gaGFwcGVuIGZvciBJTiBjbGF1c2Ugd2l0 aCBvbmx5IE5VTEwKKwkJICogdmFsdWVzKSwgd2UgbGVhdmUgdGhlIG1hdGNoZXMgZmxhZyBz ZXQgdG8gZmFsc2UuCisJCSAqLworCQlmb3IgKGludCBpID0gMDsgaSA8IGFycmF5LT5uZWxl bWVudHM7IGkrKykKKwkJeworCQkJRGF0dW0gCXF1ZXJ5X2VsZW1lbnQgPSBhcnJheS0+ZWxl bWVudHNbaV07CisKKwkJCW1hdGNoZXMgPSBicmluX2luY2x1c2lvbl9jb25zaXN0ZW50X3Zh bHVlKGJkZXNjLCBjb2x1bW4sIGF0dG5vLAorCQkJCQkJCQkJCQkJCSAga2V5LT5za19zdHJh dGVneSwKKwkJCQkJCQkJCQkJCQkgIHN1YnR5cGUsIGNvbGxvaWQsCisJCQkJCQkJCQkJCQkJ ICB1bmlvbnZhbCwgcXVlcnlfZWxlbWVudCk7CisKKwkJCWlmIChtYXRjaGVzKQorCQkJCWJy ZWFrOworCQl9CisKKwkJLyogd2UgY291bGQgZ2V0IGhlcmUgZm9yIGVtcHR5IGFycmF5LCBl LmcuIHdpdGggIkA+ICd7fSc6OnBvaW50W10iICovCisJCVBHX1JFVFVSTl9CT09MKG1hdGNo ZXMpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXBy b2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CmluZGV4IDRmMTdm MGQ1OGMxLi5lZDViMjFlN2Y5YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19hbXByb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdApA QCAtMTQ3OCw2ICsxNDc4LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtf aW5jbHVzaW9uX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmln aHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICc0JywKICAgYW1wcm9jID0+ICdicmlu X2luY2x1c2lvbl91bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtf aW5jbHVzaW9uX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdpbmV0JywKKyAgYW1wcm9jcmln aHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmlu X2luY2x1c2lvbl9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0 d29ya19pbmNsdXNpb25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdp bmV0X21lcmdlJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vbmV0d29ya19pbmNsdXNp b25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLApAQCAtMjAxNiw2ICsyMDE5LDkg QEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3JhbmdlX2luY2x1c2lvbl9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJh bmdlJywgYW1wcm9jbnVtID0+ICc0JywKICAgYW1wcm9jID0+ICdicmluX2luY2x1c2lvbl91 bmlvbicgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3JhbmdlX2luY2x1c2lvbl9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBhbXByb2NyaWdodHR5cGUgPT4g J2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICc2JywKKyAgYW1wcm9jID0+ICdicmluX2luY2x1 c2lvbl9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vcmFuZ2VfaW5j bHVzaW9uX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnYW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ ICdyYW5nZV9tZXJnZShhbnlyYW5nZSxhbnlyYW5nZSknIH0sCkBAIC0yMDk3LDYgKzIxMDMs OSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYm94X2luY2x1c2lvbl9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAnYm94JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdib3gnLCBhbXBy b2NudW0gPT4gJzQnLAogICBhbXByb2MgPT4gJ2JyaW5faW5jbHVzaW9uX3VuaW9uJyB9LAor eyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vYm94X2luY2x1c2lvbl9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnYm94JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdib3gnLCBhbXByb2NudW0g PT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5faW5jbHVzaW9uX3ByZXByb2Nlc3MnIH0sCiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9ib3hfaW5jbHVzaW9uX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdib3gnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJvY251bSA9 PiAnMTEnLCBhbXByb2MgPT4gJ2JvdW5kX2JveCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL2JveF9pbmNsdXNpb25fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2JveCcsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA0ZThkNjY2ODY0OC4uNzUzYzQxZDVjZDAgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtODYxMCw2ICs4NjEwLDEwIEBACiAgIHBy b25hbWUgPT4gJ2JyaW5faW5jbHVzaW9uX3VuaW9uJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcs CiAgIHByb2FyZ3R5cGVzID0+ICdpbnRlcm5hbCBpbnRlcm5hbCBpbnRlcm5hbCcsCiAgIHBy b3NyYyA9PiAnYnJpbl9pbmNsdXNpb25fdW5pb24nIH0sCit7IG9pZCA9PiAnOTMyNCcsIGRl c2NyID0+ICdCUklOIGluY2x1c2lvbiBzdXBwb3J0JywKKyAgcHJvbmFtZSA9PiAnYnJpbl9p bmNsdXNpb25fcHJlcHJvY2VzcycsIHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0dHlw ZSA9PiAnaW50ZXJuYWwnLCBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwgaW50ZXJuYWwnLAor ICBwcm9zcmMgPT4gJ2JyaW5faW5jbHVzaW9uX3ByZXByb2Nlc3MnIH0sCiAKICMgQlJJTiBi bG9vbQogeyBvaWQgPT4gJzQ1OTEnLCBkZXNjciA9PiAnQlJJTiBibG9vbSBzdXBwb3J0JywK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnJpbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW4ub3V0CmluZGV4IDkzZDczMTRlNTk5Li40NzE3 YzE0NTBjOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW4ub3V0CkBAIC0xNDMwLDMg KzE0MzAsMTM1IEBAIFNFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8yIFdIRVJF IGEgSU4gKE5VTEwsICczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzCiAKIERST1AgVEFCTEUg YnJpbl9pbl90ZXN0XzI7CiBSRVNFVCBlbmFibGVfc2Vxc2NhbjsKKy0tIGRvIHNvbWUgdGVz dHMgb24gSU4gY2xhdXNlcyBmb3IgYm94ZXMgYW5kIHBvaW50cworQ1JFQVRFIFRBQkxFIGJy aW5faW5fdGVzdF8zIChhIEJPWCkgV0lUSCAoZmlsbGZhY3Rvcj0xMCk7CitJTlNFUlQgSU5U TyBicmluX2luX3Rlc3RfMworU0VMRUNUIGZvcm1hdCgnKCglcywlcyksICglcywlcykpJywg eCAtIG1vZChpLDE3KSwgeSAtIG1vZChpLDEzKSwgeCArIG1vZChpLDE5KSwgeSArIG1vZChp LDExKSk6OmJveCBGUk9NICgKKyAgU0VMRUNUIGksCisgICAgICAgICBpLzEwICsgbW9kKDk5 MSAqIGkgKyA2MTcsIDIwKSBBUyB4LAorICAgICAgICAgaS8xMCArIG1vZCg4NTMgKiBpICsg NDkxLCAzMCkgQVMgeQorICAgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgcyhpKQor KSBmb287CitDUkVBVEUgSU5ERVggYnJpbl9pbl90ZXN0XzNfaWR4IE9OIGJyaW5faW5fdGVz dF8zIFVTSU5HIGJyaW4gKGEgYm94X2luY2x1c2lvbl9vcHMpIFdJVEggKHBhZ2VzX3Blcl9y YW5nZT0xKTsKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAo QVJSQVlbJygxMCwxMCknOjpwb2ludF0pOworICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dy ZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF8zCisgICAg ICAgICBSZWNoZWNrIENvbmQ6IChhIEA+IEFOWSAoJ3siKDEwLDEwKSJ9Jzo6cG9pbnRbXSkp CisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzNfaWR4 CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSBAPiBBTlkgKCd7IigxMCwxMCkifSc6 OnBvaW50W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnRdKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgICAyNgorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAoQVJS QVlbJygxMCwxMCknOjpwb2ludCwgTlVMTF0pOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2lu X3Rlc3RfMworICAgICAgICAgUmVjaGVjayBDb25kOiAoYSBAPiBBTlkgKCd7IigxMCwxMCki LE5VTEx9Jzo6cG9pbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24g YnJpbl9pbl90ZXN0XzNfaWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSBAPiBB TlkgKCd7IigxMCwxMCkiLE5VTEx9Jzo6cG9pbnRbXSkpCisoNSByb3dzKQorCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAoQVJSQVlbJygx MCwxMCknOjpwb2ludCwgTlVMTF0pOworIGNvdW50IAorLS0tLS0tLQorICAgIDI2CisoMSBy b3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVtOVUxMOjpwb2ludCwgTlVMTDo6cG9p bnRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFw IEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMworICAgICAgICAgUmVjaGVjayBDb25kOiAo YSBAPiBBTlkgKCd7TlVMTCxOVUxMfSc6OnBvaW50W10pKQorICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8zX2lkeAorICAgICAgICAgICAgICAgSW5k ZXggQ29uZDogKGEgQD4gQU5ZICgne05VTEwsTlVMTH0nOjpwb2ludFtdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5Z IChBUlJBWVtOVUxMOjpwb2ludCwgTlVMTDo6cG9pbnRdKTsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQo KikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAoQVJSQVlbJygxMCwxMCkn Ojpwb2ludCwgJyg1MCw1MCknOjpwb2ludF0pOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gYnJpbl9pbl90ZXN0XzMKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgQD4gQU5ZICgn eyIoMTAsMTApIiwiKDUwLDUwKSJ9Jzo6cG9pbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFw IEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzNfaWR4CisgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoYSBAPiBBTlkgKCd7IigxMCwxMCkiLCIoNTAsNTApIn0nOjpwb2ludFtdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJF IGEgQD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50XSk7 CisgY291bnQgCistLS0tLS0tCisgICAgODAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBB TlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnQsICcoNTAsNTApJzo6cG9pbnQsIE5VTExdKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfMwor ICAgICAgICAgUmVjaGVjayBDb25kOiAoYSBAPiBBTlkgKCd7IigxMCwxMCkiLCIoNTAsNTAp IixOVUxMfSc6OnBvaW50W10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9u IGJyaW5faW5fdGVzdF8zX2lkeAorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgQD4g QU5ZICgneyIoMTAsMTApIiwiKDUwLDUwKSIsTlVMTH0nOjpwb2ludFtdKSkKKyg1IHJvd3Mp CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5Z IChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50LCBOVUxMXSk7Cisg Y291bnQgCistLS0tLS0tCisgICAgODAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZG KQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkg KEFSUkFZWycoMTAsMTApJzo6cG9pbnQsICcoNTAsNTApJzo6cG9pbnQsICcoMjUsMjUpJzo6 cG9pbnRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gYnJpbl9pbl90ZXN0XzMKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgQD4gQU5ZICgn eyIoMTAsMTApIiwiKDUwLDUwKSIsIigyNSwyNSkifSc6OnBvaW50W10pKQorICAgICAgICAg LT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF8zX2lkeAorICAgICAgICAg ICAgICAgSW5kZXggQ29uZDogKGEgQD4gQU5ZICgneyIoMTAsMTApIiwiKDUwLDUwKSIsIigy NSwyNSkifSc6OnBvaW50W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnQs ICcoNTAsNTApJzo6cG9pbnQsICcoMjUsMjUpJzo6cG9pbnRdKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgIDEyOQorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+IEFOWSAoQVJSQVlbTlVMTCwg JygxMCwxMCknOjpwb2ludCwgJyg1MCw1MCknOjpwb2ludCwgJygyNSwyNSknOjpwb2ludF0p OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gYnJpbl9pbl90ZXN0XzMKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgQD4gQU5Z ICgne05VTEwsIigxMCwxMCkiLCIoNTAsNTApIiwiKDI1LDI1KSJ9Jzo6cG9pbnRbXSkpCisg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0XzNfaWR4Cisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSBAPiBBTlkgKCd7TlVMTCwiKDEwLDEwKSIs Iig1MCw1MCkiLCIoMjUsMjUpIn0nOjpwb2ludFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVtOVUxM LCAnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50LCAnKDI1LDI1KSc6OnBvaW50 XSk7CisgY291bnQgCistLS0tLS0tCisgICAxMjkKKygxIHJvdykKKworRFJPUCBUQUJMRSBi cmluX2luX3Rlc3RfMzsKK1JFU0VUIGVuYWJsZV9zZXFzY2FuOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvYnJpbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmlu LnNxbAppbmRleCA5NWRhMDI3MDQ3ZS4uM2NhODI5Mzk5OTYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Jy aW4uc3FsCkBAIC03OTgsMyArNzk4LDU2IEBAIFNFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8yIFdIRVJFIGEgSU4gKE5VTEwsICczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAz CiAKIERST1AgVEFCTEUgYnJpbl9pbl90ZXN0XzI7CiBSRVNFVCBlbmFibGVfc2Vxc2NhbjsK KworCistLSBkbyBzb21lIHRlc3RzIG9uIElOIGNsYXVzZXMgZm9yIGJveGVzIGFuZCBwb2lu dHMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfMyAoYSBCT1gpIFdJVEggKGZpbGxmYWN0 b3I9MTApOworSU5TRVJUIElOVE8gYnJpbl9pbl90ZXN0XzMKK1NFTEVDVCBmb3JtYXQoJygo JXMsJXMpLCAoJXMsJXMpKScsIHggLSBtb2QoaSwxNyksIHkgLSBtb2QoaSwxMyksIHggKyBt b2QoaSwxOSksIHkgKyBtb2QoaSwxMSkpOjpib3ggRlJPTSAoCisgIFNFTEVDVCBpLAorICAg ICAgICAgaS8xMCArIG1vZCg5OTEgKiBpICsgNjE3LCAyMCkgQVMgeCwKKyAgICAgICAgIGkv MTAgKyBtb2QoODUzICogaSArIDQ5MSwgMzApIEFTIHkKKyAgICBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwMDApIHMoaSkKKykgZm9vOworCitDUkVBVEUgSU5ERVggYnJpbl9pbl90ZXN0 XzNfaWR4IE9OIGJyaW5faW5fdGVzdF8zIFVTSU5HIGJyaW4gKGEgYm94X2luY2x1c2lvbl9v cHMpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKKworU0VUIGVuYWJsZV9zZXFzY2FuPW9m ZjsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnRdKTsKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFS UkFZWycoMTAsMTApJzo6cG9pbnRdKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWyco MTAsMTApJzo6cG9pbnQsIE5VTExdKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZWycoMTAsMTApJzo6cG9pbnQsIE5VTExd KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0XzMgV0hFUkUgYSBAPiBBTlkgKEFSUkFZW05VTEw6OnBvaW50LCBOVUxMOjpwb2lu dF0pOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfMyBXSEVSRSBhIEA+ IEFOWSAoQVJSQVlbTlVMTDo6cG9pbnQsIE5VTEw6OnBvaW50XSk7CisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEg QD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50XSk7CisK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChB UlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50XSk7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJF IGEgQD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50LCBO VUxMXSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEg QD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBvaW50LCBOVUxM XSk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBvaW50LCAnKDUw LDUwKSc6OnBvaW50LCAnKDI1LDI1KSc6OnBvaW50XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVsnKDEwLDEwKSc6OnBv aW50LCAnKDUwLDUwKSc6OnBvaW50LCAnKDI1LDI1KSc6OnBvaW50XSk7CisKK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF8zIFdIRVJF IGEgQD4gQU5ZIChBUlJBWVtOVUxMLCAnKDEwLDEwKSc6OnBvaW50LCAnKDUwLDUwKSc6OnBv aW50LCAnKDI1LDI1KSc6OnBvaW50XSk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF8zIFdIRVJFIGEgQD4gQU5ZIChBUlJBWVtOVUxMLCAnKDEwLDEwKSc6OnBvaW50 LCAnKDUwLDUwKSc6OnBvaW50LCAnKDI1LDI1KSc6OnBvaW50XSk7CisKK0RST1AgVEFCTEUg YnJpbl9pbl90ZXN0XzM7CitSRVNFVCBlbmFibGVfc2Vxc2NhbjsKLS0gCjIuMzkuMQoK --------------EQljBVuNRDzcOLsmSlN0ELww Content-Type: text/x-patch; charset=UTF-8; name="0009-Support-SK_SEARCHARRAY-in-BRIN-bloom-20230217.patch" Content-Disposition: attachment; filename="0009-Support-SK_SEARCHARRAY-in-BRIN-bloom-20230217.patch" Content-Transfer-Encoding: base64 RnJvbSBlMjQzOGUxNDRkZmIzNjRiNTBmNDk2NWViZmMwNjFjODU5ZjE2YTRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAxMSBGZWIgMjAyMyAyMDo1MDowMyArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggOS85XSBTdXBwb3J0IFNLX1NFQVJDSEFSUkFZIGluIEJSSU4gYmxvb20K Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jICAgICB8IDE2NiAr KysrKysrKy0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgIHwg IDYwICsrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgfCAg IDMgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluX2Jsb29tLm91dCB8IDM3NyAr KysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9ibG9v bS5zcWwgICAgICB8IDEzNSArKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA3MTUgaW5zZXJ0 aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2JyaW4vYnJpbl9ibG9vbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9i bG9vbS5jCmluZGV4IDRmZjgwYWViMGNjLi41YzNiYTY1OWJhMiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl9ibG9vbS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9icmluL2JyaW5fYmxvb20uYwpAQCAtMTI1LDkgKzEyNSwxMSBAQAogI2luY2x1ZGUg ImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW1vcC5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgog I2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL21lbXV0aWxz LmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUu aCIKIApAQCAtMTUxLDYgKzE1MywxMyBAQAogICovCiAjZGVmaW5lCQlQUk9DTlVNX0JBU0UJ CQkxMQogCisvKgorICogV2UgdXNlIHNvbWUgcHJpdmF0ZSBza19mbGFncyBiaXRzIGluIHBy ZXByb2Nlc3NlZCBzY2FuIGtleXMuICBXZSdyZSBhbGxvd2VkCisgKiB0byB1c2UgYml0cyAx Ni0zMSAoc2VlIHNrZXkuaCkuICBUaGUgdXBwZXJtb3N0IGJpdHMgYXJlIGNvcGllZCBmcm9t IHRoZQorICogaW5kZXgncyBpbmRvcHRpb25bXSBhcnJheSBlbnRyeSBmb3IgdGhlIGluZGV4 IGF0dHJpYnV0ZS4KKyAqLworI2RlZmluZSBTS19CUklOX0hBU0hFUwkweDAwMDEwMDAwCS8q IGRlY29uc3RydWN0ZWQgYXJyYXksIGNhbGN1bGF0ZWQgaGFzaGVzICovCisKIC8qCiAgKiBT dG9yYWdlIHR5cGUgZm9yIEJSSU4ncyByZWxvcHRpb25zLgogICovCkBAIC00MDIsMjEgKzQx MSwxNCBAQCBibG9vbV9hZGRfdmFsdWUoQmxvb21GaWx0ZXIgKmZpbHRlciwgdWludDMyIHZh bHVlLCBib29sICp1cGRhdGVkKQogCXJldHVybiBmaWx0ZXI7CiB9CiAKLQogLyoKICAqIGJs b29tX2NvbnRhaW5zX3ZhbHVlCiAgKiAJCUNoZWNrIGlmIHRoZSBibG9vbSBmaWx0ZXIgY29u dGFpbnMgYSBwYXJ0aWN1bGFyIHZhbHVlLgogICovCiBzdGF0aWMgYm9vbAotYmxvb21fY29u dGFpbnNfdmFsdWUoQmxvb21GaWx0ZXIgKmZpbHRlciwgdWludDMyIHZhbHVlKQorYmxvb21f Y29udGFpbnNfaGFzaGVzKEJsb29tRmlsdGVyICpmaWx0ZXIsIHVpbnQ2NCBoMSwgdWludDY0 IGgyKQogewogCWludAkJCWk7Ci0JdWludDY0CQloMSwKLQkJCQloMjsKLQotCS8qIGNhbGN1 bGF0ZSB0aGUgdHdvIGhhc2hlcyAqLwotCWgxID0gaGFzaF9ieXRlc191aW50MzJfZXh0ZW5k ZWQodmFsdWUsIEJMT09NX1NFRURfMSkgJSBmaWx0ZXItPm5iaXRzOwotCWgyID0gaGFzaF9i eXRlc191aW50MzJfZXh0ZW5kZWQodmFsdWUsIEJMT09NX1NFRURfMikgJSBmaWx0ZXItPm5i aXRzOwogCiAJLyogY29tcHV0ZSB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBoYXNoZXMgKi8K IAlmb3IgKGkgPSAwOyBpIDwgZmlsdGVyLT5uaGFzaGVzOyBpKyspCkBAIC01OTAsNiArNTky LDEwNCBAQCBicmluX2Jsb29tX2FkZF92YWx1ZShQR19GVU5DVElPTl9BUkdTKQogCVBHX1JF VFVSTl9CT09MKHVwZGF0ZWQpOwogfQogCit0eXBlZGVmIHN0cnVjdCBIYXNoQ2FjaGUgewor CWludAkJbmVsZW1lbnRzOworCXVpbnQ2NCAqaDE7CisJdWludDY0ICpoMjsKK30gSGFzaENh Y2hlOworCitEYXR1bQorYnJpbl9ibG9vbV9wcmVwcm9jZXNzKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJQnJpbkRlc2MgICAqYmRlc2MgPSAoQnJpbkRlc2MgKikgUEdfR0VUQVJHX1BPSU5U RVIoMCk7CisJU2NhbktleQkJa2V5ID0gKFNjYW5LZXkpIFBHX0dFVEFSR19QT0lOVEVSKDEp OworCUJsb29tT3B0aW9ucyAqb3B0cyA9IChCbG9vbU9wdGlvbnMgKikgUEdfR0VUX09QQ0xB U1NfT1BUSU9OUygpOworCVNjYW5LZXkJCW5ld2tleTsKKwlIYXNoQ2FjaGUgICpjYWNoZSA9 IHBhbGxvYzAoc2l6ZW9mKEhhc2hDYWNoZSkpOworCisJaW50CQkJbmJpdHM7CisJRm1ncklu Zm8gICAqZmluZm87CisJdWludDMyCQloYXNoVmFsdWU7CisKKwkvKiB3ZSdsbCBuZWVkIHRv IGNhbGN1bGF0ZSBoYXNoZXMsIHNvIGdldCB0aGUgcHJvYyAqLworCWZpbmZvID0gYmxvb21f Z2V0X3Byb2NpbmZvKGJkZXNjLCBrZXktPnNrX2F0dG5vLCBQUk9DTlVNX0hBU0gpOworCisJ LyoKKwkgKiBXZSBkb24ndCBoYXZlIGEgZmlsdGVyIGZyb20gYW55IHJhbmdlIHlldCwgc28g d2UganVzdCByZS1jYWxjdWxhdGUKKwkgKiB0aGUgc2l6ZSAobnVtYmVyIG9mIGJpdHMpIGp1 c3QgbGlrZSBibG9vbV9pbml0LgorCSAqLworCWJsb29tX2ZpbHRlcl9zaXplKGJyaW5fYmxv b21fZ2V0X25kaXN0aW5jdChiZGVzYywgb3B0cyksCisJCQkJCSAgQmxvb21HZXRGYWxzZVBv c2l0aXZlUmF0ZShvcHRzKSwKKwkJCQkJICBOVUxMLCAmbmJpdHMsIE5VTEwpOworCisJLyog cHJlY2FsY3VsYXRlIHRoZSBoYXNoIGV2ZW4gZm9yIHNpbXBsZSBzY2FuIGtleXMgKi8KKwlp ZiAoIShrZXktPnNrX2ZsYWdzICYgU0tfU0VBUkNIQVJSQVkpKQorCXsKKwkJRGF0dW0gdmFs dWUgPSBrZXktPnNrX2FyZ3VtZW50OworCisJCWNhY2hlLT5uZWxlbWVudHMgPSAxOworCQlj YWNoZS0+aDEgPSAodWludDY0ICopIHBhbGxvYzAoc2l6ZW9mKHVpbnQ2NCkpOworCQljYWNo ZS0+aDIgPSAodWludDY0ICopIHBhbGxvYzAoc2l6ZW9mKHVpbnQ2NCkpOworCisJCWhhc2hW YWx1ZSA9IERhdHVtR2V0VUludDMyKEZ1bmN0aW9uQ2FsbDFDb2xsKGZpbmZvLCBrZXktPnNr X2NvbGxhdGlvbiwgdmFsdWUpKTsKKworCQljYWNoZS0+aDFbMF0gPSBoYXNoX2J5dGVzX3Vp bnQzMl9leHRlbmRlZChoYXNoVmFsdWUsIEJMT09NX1NFRURfMSkgJSBuYml0czsKKwkJY2Fj aGUtPmgyWzBdID0gaGFzaF9ieXRlc191aW50MzJfZXh0ZW5kZWQoaGFzaFZhbHVlLCBCTE9P TV9TRUVEXzIpICUgbmJpdHM7CisJfQorCWVsc2UKKwl7CisJCUFycmF5VHlwZSAgKmFycmF5 dmFsOworCQlpbnQxNgkJZWxtbGVuOworCQlib29sCQllbG1ieXZhbDsKKwkJY2hhcgkJZWxt YWxpZ247CisJCWludAkJCW51bV9lbGVtczsKKwkJRGF0dW0JICAgKmVsZW1fdmFsdWVzOwor CQlib29sCSAgICplbGVtX251bGxzOworCisJCWFycmF5dmFsID0gRGF0dW1HZXRBcnJheVR5 cGVQKGtleS0+c2tfYXJndW1lbnQpOworCisJCWdldF90eXBsZW5ieXZhbGFsaWduKEFSUl9F TEVNVFlQRShhcnJheXZhbCksCisJCQkJCQkJICZlbG1sZW4sICZlbG1ieXZhbCwgJmVsbWFs aWduKTsKKworCQlkZWNvbnN0cnVjdF9hcnJheShhcnJheXZhbCwKKwkJCQkJCSAgQVJSX0VM RU1UWVBFKGFycmF5dmFsKSwKKwkJCQkJCSAgZWxtbGVuLCBlbG1ieXZhbCwgZWxtYWxpZ24s CisJCQkJCQkgICZlbGVtX3ZhbHVlcywgJmVsZW1fbnVsbHMsICZudW1fZWxlbXMpOworCisJ CWNhY2hlLT5oMSA9ICh1aW50NjQgKikgcGFsbG9jMChzaXplb2YodWludDY0KSAqIG51bV9l bGVtcyk7CisJCWNhY2hlLT5oMiA9ICh1aW50NjQgKikgcGFsbG9jMChzaXplb2YodWludDY0 KSAqIG51bV9lbGVtcyk7CisKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fZWxlbXM7IGkr KykKKwkJeworCQkJRGF0dW0JZWxlbWVudCA9IGVsZW1fdmFsdWVzW2ldOworCisJCQkvKiBp Z25vcmUgTlVMTCBlbGVtZW50cyAqLworCQkJaWYgKGVsZW1fbnVsbHNbaV0pCisJCQkJY29u dGludWU7CisKKwkJCWhhc2hWYWx1ZSA9IERhdHVtR2V0VUludDMyKEZ1bmN0aW9uQ2FsbDFD b2xsKGZpbmZvLCBrZXktPnNrX2NvbGxhdGlvbiwgZWxlbWVudCkpOworCisJCQljYWNoZS0+ aDFbY2FjaGUtPm5lbGVtZW50c10gPSBoYXNoX2J5dGVzX3VpbnQzMl9leHRlbmRlZChoYXNo VmFsdWUsIEJMT09NX1NFRURfMSkgJSBuYml0czsKKwkJCWNhY2hlLT5oMltjYWNoZS0+bmVs ZW1lbnRzXSA9IGhhc2hfYnl0ZXNfdWludDMyX2V4dGVuZGVkKGhhc2hWYWx1ZSwgQkxPT01f U0VFRF8yKSAlIG5iaXRzOworCisJCQljYWNoZS0+bmVsZW1lbnRzKys7CisJCX0KKwl9CisK KwluZXdrZXkgPSBwYWxsb2MwKHNpemVvZihTY2FuS2V5RGF0YSkpOworCisJU2NhbktleUVu dHJ5SW5pdGlhbGl6ZVdpdGhJbmZvKG5ld2tleSwKKwkJCQkJCQkJICAgKGtleS0+c2tfZmxh Z3MgfCBTS19CUklOX0hBU0hFUyksCisJCQkJCQkJCSAgIGtleS0+c2tfYXR0bm8sCisJCQkJ CQkJCSAgIGtleS0+c2tfc3RyYXRlZ3ksCisJCQkJCQkJCSAgIGtleS0+c2tfc3VidHlwZSwK KwkJCQkJCQkJICAga2V5LT5za19jb2xsYXRpb24sCisJCQkJCQkJCSAgICZrZXktPnNrX2Z1 bmMsCisJCQkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bShjYWNoZSkpOworCisJUEdfUkVUVVJO X1BPSU5URVIobmV3a2V5KTsKK30KKwogLyoKICAqIEdpdmVuIGFuIGluZGV4IHR1cGxlIGNv cnJlc3BvbmRpbmcgdG8gYSBjZXJ0YWluIHBhZ2UgcmFuZ2UgYW5kIGEgc2NhbiBrZXksCiAg KiByZXR1cm4gd2hldGhlciB0aGUgc2NhbiBrZXkgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBp bmRleCB0dXBsZSdzIGJsb29tCkBAIC01OTgsMTYgKzY5OCwxMCBAQCBicmluX2Jsb29tX2Fk ZF92YWx1ZShQR19GVU5DVElPTl9BUkdTKQogRGF0dW0KIGJyaW5fYmxvb21fY29uc2lzdGVu dChQR19GVU5DVElPTl9BUkdTKQogewotCUJyaW5EZXNjICAgKmJkZXNjID0gKEJyaW5EZXNj ICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwogCUJyaW5WYWx1ZXMgKmNvbHVtbiA9IChCcmlu VmFsdWVzICopIFBHX0dFVEFSR19QT0lOVEVSKDEpOwogCVNjYW5LZXkgICAgKmtleXMgPSAo U2NhbktleSAqKSBQR19HRVRBUkdfUE9JTlRFUigyKTsKIAlpbnQJCQlua2V5cyA9IFBHX0dF VEFSR19JTlQzMigzKTsKLQlPaWQJCQljb2xsb2lkID0gUEdfR0VUX0NPTExBVElPTigpOwot CUF0dHJOdW1iZXIJYXR0bm87Ci0JRGF0dW0JCXZhbHVlOwogCWJvb2wJCW1hdGNoZXM7Ci0J Rm1nckluZm8gICAqZmluZm87Ci0JdWludDMyCQloYXNoVmFsdWU7CiAJQmxvb21GaWx0ZXIg KmZpbHRlcjsKIAlpbnQJCQlrZXlubzsKIApAQCAtNjI1LDIyICs3MTksNDIgQEAgYnJpbl9i bG9vbV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCS8qIE5VTEwga2V5cyBhcmUg aGFuZGxlZCBhbmQgZmlsdGVyZWQtb3V0IGluIGJyaW5nZXRiaXRtYXAgKi8KIAkJQXNzZXJ0 KCEoa2V5LT5za19mbGFncyAmIFNLX0lTTlVMTCkpOwogCi0JCWF0dG5vID0ga2V5LT5za19h dHRubzsKLQkJdmFsdWUgPSBrZXktPnNrX2FyZ3VtZW50OworCQkvKgorCQkgKiBLZXlzIHNo b3VsZCBiZSBwcmVwcm9jZXNzZWQgaW50byBhIGhhc2ggY2FjaGUgKGV2ZW4gYSBzaW5nbGUK KwkJICogdmFsdWUgc2NhbiBrZXlzLCBub3QganVzdCBTS19TRUFSQ0hBUlJBWSBvbmVzKS4K KwkJICovCisJCUFzc2VydChrZXktPnNrX2ZsYWdzICYgU0tfQlJJTl9IQVNIRVMpOwogCiAJ CXN3aXRjaCAoa2V5LT5za19zdHJhdGVneSkKIAkJewogCQkJY2FzZSBCbG9vbUVxdWFsU3Ry YXRlZ3lOdW1iZXI6Ci0KLQkJCQkvKgotCQkJCSAqIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBj dXJyZW50IHBhZ2UgcmFuZ2UgaWYgdGhlIGJsb29tIGZpbHRlcgotCQkJCSAqIHNlZW1zIHRv IGNvbnRhaW4gdGhlIHZhbHVlLgotCQkJCSAqLwotCQkJCWZpbmZvID0gYmxvb21fZ2V0X3By b2NpbmZvKGJkZXNjLCBhdHRubywgUFJPQ05VTV9IQVNIKTsKLQotCQkJCWhhc2hWYWx1ZSA9 IERhdHVtR2V0VUludDMyKEZ1bmN0aW9uQ2FsbDFDb2xsKGZpbmZvLCBjb2xsb2lkLCB2YWx1 ZSkpOwotCQkJCW1hdGNoZXMgJj0gYmxvb21fY29udGFpbnNfdmFsdWUoZmlsdGVyLCBoYXNo VmFsdWUpOwotCisJCQkJeworCQkJCQlIYXNoQ2FjaGUgICpjYWNoZSA9IChIYXNoQ2FjaGUg Kikga2V5LT5za19hcmd1bWVudDsKKworCQkJCQkvKiBhc3N1bWUgbm8gbWF0Y2ggKi8KKwkJ CQkJbWF0Y2hlcyA9IGZhbHNlOworCisJCQkJCS8qCisJCQkJCSAqIFdlIHdhbnQgdG8gcmV0 dXJuIHRoZSBjdXJyZW50IHBhZ2UgcmFuZ2UgaWYgdGhlIGJsb29tIGZpbHRlcgorCQkJCQkg KiBzZWVtcyB0byBjb250YWluIGFueSBvZiB0aGUgdmFsdWVzIChvciBhIHNpbmdsZSB2YWx1 ZSkuCisJCQkJCSAqCisJCQkJCSAqIFhYWCBXaXRoIGVtcHR5IGNhY2hlICh3aGljaCBjYW4g aGFwcGVuIGZvciBJTiBjbGF1c2Ugd2l0aAorCQkJCQkgKiBvbmx5IE5VTEwgdmFsdWVzKSwg d2UgbGVhdmUgdGhlIG1hdGNoZXMgZmxhZyBzZXQgdG8gZmFsc2UuCisJCQkJCSAqLworCQkJ CQlmb3IgKGludCBpID0gMDsgaSA8IGNhY2hlLT5uZWxlbWVudHM7IGkrKykKKwkJCQkJewor CQkJCQkJYm9vbAl0bXAgPSBmYWxzZTsKKworCQkJCQkJdG1wID0gYmxvb21fY29udGFpbnNf aGFzaGVzKGZpbHRlciwgY2FjaGUtPmgxW2ldLCBjYWNoZS0+aDJbaV0pOworCisJCQkJCQkv KiBpZiB3ZSBmb3VuZCBhIG1hdGNoaW5nIHZhbHVlLCB3ZSBoYXZlIGEgbWF0Y2ggKi8KKwkJ CQkJCWlmIChEYXR1bUdldEJvb2wodG1wKSkKKwkJCQkJCXsKKwkJCQkJCQltYXRjaGVzID0g Qm9vbEdldERhdHVtKHRydWUpOworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCQkJCQl9CisJ CQkJfQogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGRuJ3QgaGFwcGVu ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKaW5kZXggZWQ1YjIxZTdmOWIuLmQ5 NTFmY2QxYTA2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5k YXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC04MjIsNiAr ODIyLDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29tX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdieXRlYScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEn LCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycg fSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdieXRlYScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbXBy b2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2VzcycgfSwK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2J5dGVhX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdieXRlYScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYnl0ZWEnLCBhbXByb2Nu dW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNodmFybGVuYScgfSwKIApAQCAtODUzLDYgKzg1 Niw4IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnY2hhcicsIGFtcHJvY251bSA9PiAnNCcs IGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL2NoYXJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ2NoYXInLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2MgPT4gJ2Jy aW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2NoYXJfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAorICBhbXByb2NyaWdodHR5cGUg PT4gJ2NoYXInLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJl cHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2NoYXJfYmxvb21fb3BzJywg YW1wcm9jbGVmdHR5cGUgPT4gJ2NoYXInLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2NoYXIn LCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNoY2hhcicgfSwKIApAQCAtODg0 LDYgKzg4OSw4IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbmFtZScsIGFtcHJvY251bSA9 PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL25hbWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ25hbWUnLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ25hbWUnLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2Mg PT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL25h bWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ25hbWUnLAorICBhbXByb2NyaWdo dHR5cGUgPT4gJ25hbWUnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fYmxv b21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL25hbWVfYmxvb21f b3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ25hbWUnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J25hbWUnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNobmFtZScgfSwKIApA QCAtMTAxMCw2ICsxMDE3LDggQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQ4JywgYW1w cm9jbnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vaW50ZWdlcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnaW50OCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAn NScsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vaW50ZWdlcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50OCcs CisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAnNicsIGFtcHJv YyA9PiAnYnJpbl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vaW50ZWdlcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW50OCcsCiAgIGFt cHJvY3JpZ2h0dHlwZSA9PiAnaW50OCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4g J2hhc2hpbnQ4JyB9LAogCkBAIC0xMDI1LDYgKzEwMzQsOCBAQAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ2ludDInLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21f dW5pb24nIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX2Jsb29tX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQy JywgYW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlvbnMnIH0s Cit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnQyJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9j bnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3ByZXByb2Nlc3MnIH0sCiB7IGFt cHJvY2ZhbWlseSA9PiAnYnJpbi9pbnRlZ2VyX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICdpbnQyJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbnQyJywgYW1wcm9jbnVtID0+ ICcxMScsIGFtcHJvYyA9PiAnaGFzaGludDInIH0sCiAKQEAgLTEwNDAsNiArMTA1MSw4IEBA CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50NCcsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJv YyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2lu dGVnZXJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ2ludDQnLCBhbXByb2NudW0gPT4gJzUnLCBhbXByb2MgPT4gJ2JyaW5f Ymxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAorICBhbXByb2NyaWdodHR5cGUg PT4gJ2ludDQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJl cHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVnZXJfYmxvb21fb3Bz JywgYW1wcm9jbGVmdHR5cGUgPT4gJ2ludDQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2lu dDQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNoaW50NCcgfSwKIApAQCAt MTA3MSw2ICsxMDg0LDggQEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0ZXh0JywgYW1wcm9j bnVtID0+ICc0JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBhbXByb2Nm YW1pbHkgPT4gJ2JyaW4vdGV4dF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGV4 dCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGV4dCcsIGFtcHJvY251bSA9PiAnNScsIGFt cHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2Jy aW4vdGV4dF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGV4dCcsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAndGV4dCcsIGFtcHJvY251bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJp bl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGV4dF9i bG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGV4dCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAndGV4dCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hhc2h0ZXh0JyB9 LAogCkBAIC0xMTI0LDYgKzExMzksOCBAQAogICBhbXByb2NyaWdodHR5cGUgPT4gJ29pZCcs IGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsg YW1wcm9jZmFtaWx5ID0+ICdicmluL29pZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnb2lkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzUn LCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL29pZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lkJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2Jy aW5fYmxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL29pZF9i bG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnb2lkJywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICdvaWQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNob2lkJyB9LAog CkBAIC0xMTU0LDYgKzExNzEsOCBAQAogICBhbXByb2NyaWdodHR5cGUgPT4gJ3RpZCcsIGFt cHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL3RpZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn dGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aWQnLCBhbXByb2NudW0gPT4gJzUnLCBh bXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdi cmluL3RpZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGlkJywKKyAgYW1wcm9j cmlnaHR0eXBlID0+ICd0aWQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXByb2MgPT4gJ2JyaW5f Ymxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3RpZF9ibG9v bV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aWQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNodGlkJyB9LAogCkBA IC0xMjczLDYgKzEyOTIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0NCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnZmxvYXQ0JywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX2Js b29tX29wdGlvbnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9hdF9ibG9vbV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ0JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ ICdmbG9hdDQnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21f cHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X2Jsb29tX29w cycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDQnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2Zsb2F0NCcsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ2hhc2hmbG9hdDQnIH0s CiAKQEAgLTEyOTAsNiArMTMxMiw5IEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9mbG9h dF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnZmxvYXQ4JywKICAgYW1wcm9jcmln aHR0eXBlID0+ICdmbG9hdDgnLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2Jy aW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2Zsb2F0X2Js b29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdmbG9hdDgnLAorICBhbXByb2NyaWdodHR5 cGUgPT4gJ2Zsb2F0OCcsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAnYnJpbl9i bG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZmxvYXRfYmxv b21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2Zsb2F0OCcsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnZmxvYXQ4JywgYW1wcm9jbnVtID0+ICcxMScsIGFtcHJvYyA9PiAnaGFzaGZsb2F0 OCcgfSwKIApAQCAtMTM0OSw2ICsxMzc0LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmlu L21hY2FkZHJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHInLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXBy b2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmlu L21hY2FkZHJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHInLAorICBh bXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXBy b2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL21hY2FkZHJfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ21hY2FkZHInLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ21hY2FkZHInLCBhbXByb2NudW0gPT4gJzExJywgYW1w cm9jID0+ICdoYXNobWFjYWRkcicgfSwKIApAQCAtMTQwOCw2ICsxNDM2LDkgQEAKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHI4X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICdtYWNhZGRyOCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcjgnLCBhbXBy b2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sg YW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHI4X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdtYWNhZGRyOCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRkcjgnLCBh bXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2Vzcycg fSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL21hY2FkZHI4X2Jsb29tX29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICdtYWNhZGRyOCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbWFjYWRk cjgnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdoYXNobWFjYWRkcjgnIH0sCiAK QEAgLTE0NjIsNiArMTQ5Myw4IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW5ldCcsIGFt cHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlvbicgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdicmluL25ldHdvcmtfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ2luZXQnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4g JzUnLCBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5 ID0+ICdicmluL25ldHdvcmtfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQn LAorICBhbXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzYnLCBhbXBy b2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdi cmluL25ldHdvcmtfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2luZXQnLAogICBh bXByb2NyaWdodHR5cGUgPT4gJ2luZXQnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ ICdoYXNoaW5ldCcgfSwKIApAQCAtMTUyMCw2ICsxNTUzLDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL2JwY2hhcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFy JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXInLCBhbXByb2NudW0gPT4gJzUnLAog ICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ ICdicmluL2JwY2hhcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywK KyAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXInLCBhbXByb2NudW0gPT4gJzYnLAorICBh bXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ ICdicmluL2JwY2hhcl9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYnBjaGFyJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICdicGNoYXInLCBhbXByb2NudW0gPT4gJzExJywgYW1w cm9jID0+ICdoYXNoYnBjaGFyJyB9LAogCkBAIC0xNTc0LDYgKzE2MTAsOCBAQAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ3RpbWUnLCBhbXByb2NudW0gPT4gJzQnLCBhbXByb2MgPT4gJ2Jy aW5fYmxvb21fdW5pb24nIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX2Jsb29t X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ ICd0aW1lJywgYW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlv bnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX2Jsb29tX29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICd0aW1lJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1w cm9jbnVtID0+ICc2JywgYW1wcm9jID0+ICdicmluX2Jsb29tX3ByZXByb2Nlc3MnIH0sCiB7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi90aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICd0aW1lJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd0aW1lJywgYW1wcm9jbnVtID0+ ICcxMScsIGFtcHJvYyA9PiAndGltZV9oYXNoJyB9LAogCkBAIC0xNzA3LDYgKzE3NDUsOSBA QAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfYmxvb21fb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ3RpbWVzdGFtcCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0 YW1wJywgYW1wcm9jbnVtID0+ICc1JywKICAgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlv bnMnIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9ibG9vbV9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAndGltZXN0YW1wJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICd0 aW1lc3RhbXAnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21f cHJlcHJvY2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29t X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXAnLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ3RpbWVzdGFtcCcsIGFtcHJvY251bSA9PiAnMTEnLAogICBhbXByb2MgPT4gJ3Rp bWVzdGFtcF9oYXNoJyB9LApAQCAtMTcyNiw2ICsxNzY3LDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1l c3RhbXB0eicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wdHonLCBhbXByb2Nu dW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgYW1w cm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBl ID0+ICd0aW1lc3RhbXB0eicsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndGltZXN0YW1wdHon LCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJvY2Vz cycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICd0aW1lc3RhbXB0eicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn dGltZXN0YW1wdHonLCBhbXByb2NudW0gPT4gJzExJywKICAgYW1wcm9jID0+ICd0aW1lc3Rh bXBfaGFzaCcgfSwKQEAgLTE3NDIsNiArMTc4Niw4IEBACiAgIGFtcHJvY3JpZ2h0dHlwZSA9 PiAnZGF0ZScsIGFtcHJvY251bSA9PiAnNCcsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV91bmlv bicgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2RhdGV0aW1lX2Jsb29tX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdkYXRlJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdkYXRlJywg YW1wcm9jbnVtID0+ICc1JywgYW1wcm9jID0+ICdicmluX2Jsb29tX29wdGlvbnMnIH0sCit7 IGFtcHJvY2ZhbWlseSA9PiAnYnJpbi9kYXRldGltZV9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAnZGF0ZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnZGF0ZScsIGFtcHJvY251 bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXBy b2NmYW1pbHkgPT4gJ2JyaW4vZGF0ZXRpbWVfYmxvb21fb3BzJywgYW1wcm9jbGVmdHR5cGUg PT4gJ2RhdGUnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2RhdGUnLCBhbXByb2NudW0gPT4g JzExJywgYW1wcm9jID0+ICdoYXNoaW50NCcgfSwKIApAQCAtMTgwMSw2ICsxODQ3LDkgQEAK IHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX2Jsb29tX29wcycsIGFtcHJvY2xl ZnR0eXBlID0+ICdpbnRlcnZhbCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50ZXJ2YWwn LCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0aW9ucycg fSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX2Jsb29tX29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICdpbnRlcnZhbCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnaW50ZXJ2 YWwnLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJv Y2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL2ludGVydmFsX2Jsb29tX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdpbnRlcnZhbCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn aW50ZXJ2YWwnLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdpbnRlcnZhbF9oYXNo JyB9LAogCkBAIC0xODU5LDYgKzE5MDgsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v dGltZXR6X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLAogICBhbXBy b2NyaWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAnNScsCiAgIGFtcHJvYyA9 PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlt ZXR6X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLAorICBhbXByb2Ny aWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAnNicsCisgIGFtcHJvYyA9PiAn YnJpbl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdGlt ZXR6X2Jsb29tX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd0aW1ldHonLAogICBhbXByb2Ny aWdodHR5cGUgPT4gJ3RpbWV0eicsIGFtcHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ3Rp bWV0el9oYXNoJyB9LAogCkBAIC0xOTQ5LDYgKzIwMDEsOSBAQAogeyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vbnVtZXJpY19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVtZXJp YycsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAnNScs CiAgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkg PT4gJ2JyaW4vbnVtZXJpY19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVtZXJp YycsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAnNics CisgIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9wcmVwcm9jZXNzJyB9LAogeyBhbXByb2NmYW1p bHkgPT4gJ2JyaW4vbnVtZXJpY19ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnbnVt ZXJpYycsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnbnVtZXJpYycsIGFtcHJvY251bSA9PiAn MTEnLCBhbXByb2MgPT4gJ2hhc2hfbnVtZXJpYycgfSwKIApAQCAtMjAwMyw2ICsyMDU4LDgg QEAKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd1dWlkJywgYW1wcm9jbnVtID0+ICc0JywgYW1w cm9jID0+ICdicmluX2Jsb29tX3VuaW9uJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4v dXVpZF9ibG9vbV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAndXVpZCcsIGFtcHJvY251bSA9PiAnNScsIGFtcHJvYyA9PiAnYnJpbl9i bG9vbV9vcHRpb25zJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdXVpZF9ibG9vbV9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAndXVpZCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn dXVpZCcsIGFtcHJvY251bSA9PiAnNicsIGFtcHJvYyA9PiAnYnJpbl9ibG9vbV9wcmVwcm9j ZXNzJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2JyaW4vdXVpZF9ibG9vbV9vcHMnLCBhbXBy b2NsZWZ0dHlwZSA9PiAndXVpZCcsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAndXVpZCcsIGFt cHJvY251bSA9PiAnMTEnLCBhbXByb2MgPT4gJ3V1aWRfaGFzaCcgfSwKIApAQCAtMjA4Nyw2 ICsyMTQ0LDkgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9ibG9vbV9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdw Z19sc24nLCBhbXByb2NudW0gPT4gJzUnLAogICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fb3B0 aW9ucycgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9ibG9vbV9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19s c24nLCBhbXByb2NudW0gPT4gJzYnLAorICBhbXByb2MgPT4gJ2JyaW5fYmxvb21fcHJlcHJv Y2VzcycgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdicmluL3BnX2xzbl9ibG9vbV9vcHMnLCBh bXByb2NsZWZ0dHlwZSA9PiAncGdfbHNuJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdwZ19s c24nLCBhbXByb2NudW0gPT4gJzExJywgYW1wcm9jID0+ICdwZ19sc25faGFzaCcgfSwKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggNzUzYzQxZDVjZDAuLjQzMjUyMjljOWRm IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTg2MzMsNiArODYzMyw5IEBACiB7 IG9pZCA9PiAnNDU5NScsIGRlc2NyID0+ICdCUklOIGJsb29tIHN1cHBvcnQnLAogICBwcm9u YW1lID0+ICdicmluX2Jsb29tX29wdGlvbnMnLCBwcm9pc3N0cmljdCA9PiAnZicsIHByb3Jl dHR5cGUgPT4gJ3ZvaWQnLAogICBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwnLCBwcm9zcmMg PT4gJ2JyaW5fYmxvb21fb3B0aW9ucycgfSwKK3sgb2lkID0+ICc5MzI1JywgZGVzY3IgPT4g J0JSSU4gYmxvb20gc3VwcG9ydCcsCisgIHByb25hbWUgPT4gJ2JyaW5fYmxvb21fcHJlcHJv Y2VzcycsIHByb2lzc3RyaWN0ID0+ICdmJywgcHJvcmV0dHlwZSA9PiAnaW50ZXJuYWwnLAor ICBwcm9hcmd0eXBlcyA9PiAnaW50ZXJuYWwgaW50ZXJuYWwnLCBwcm9zcmMgPT4gJ2JyaW5f Ymxvb21fcHJlcHJvY2VzcycgfSwKIAogIyB1c2VybG9jayByZXBsYWNlbWVudHMKIHsgb2lk ID0+ICcyODgwJywgZGVzY3IgPT4gJ29idGFpbiBleGNsdXNpdmUgYWR2aXNvcnkgbG9jaycs CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2JyaW5fYmxvb20ub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9icmluX2Jsb29tLm91dAppbmRleCAzMmM1 NmE5OTZhMi4uYjgzYjJiYWUxNjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvYnJpbl9ibG9vbS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9i cmluX2Jsb29tLm91dApAQCAtNDI2LDMgKzQyNiwzODAgQEAgRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIGJyaW5fdGVzdF9ibG9vbSBXSEVSRSBiID0gMTsKICAgIEZpbHRl cjogKGIgPSAxKQogKDIgcm93cykKIAorLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2Vz IGZvciBzaW1wbGUgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIGJyaW5faW5fdGVzdF9ibG9v bV8xIChhIElOVCwgYiBCSUdJTlQpIFdJVEggKGZpbGxmYWN0b3I9MTApOworSU5TRVJUIElO VE8gYnJpbl9pbl90ZXN0X2Jsb29tXzEKK1NFTEVDVCBpLzUgKyBtb2QoOTkxICogaSArIDYx NywgMjApLAorICAgICAgIGkvMTAgKyBtb2QoODUzICogaSArIDQ5MSwgMzApCisgIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsMTAwMCkgcyhpKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rl c3RfYmxvb21fMV9pZHhfMSBPTiBicmluX2luX3Rlc3RfYmxvb21fMSBVU0lORyBicmluIChh IGludDRfYmxvb21fb3BzKG5fZGlzdGluY3RfcGVyX3JhbmdlPTUwKSkgV0lUSCAocGFnZXNf cGVyX3JhbmdlPTEpOworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF9ibG9vbV8xX2lkeF8y IE9OIGJyaW5faW5fdGVzdF9ibG9vbV8xIFVTSU5HIGJyaW4gKGIgaW50OF9ibG9vbV9vcHMo bl9kaXN0aW5jdF9wZXJfcmFuZ2U9NTApKSBXSVRIIChwYWdlc19wZXJfcmFuZ2U9MSk7CitT RVQgZW5hYmxlX3NlcXNjYW49b2ZmOworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9u IGJyaW5faW5fdGVzdF9ibG9vbV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gMTEz KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9v bV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDExMykKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJF IGEgSU4gKDExMyk7CisgY291bnQgCistLS0tLS0tCisgICAgIDgKKygxIHJvdykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzEgV0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg QWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfYmxv b21fMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsTlVMTH0nOjpp bnRlZ2VyW10pKQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5f dGVzdF9ibG9vbV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFO WSAoJ3sxMTMsTlVMTH0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCBOVUxMKTsK KyBjb3VudCAKKy0tLS0tLS0KKyAgICAgOAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBh IElOIChOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUK KyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8xCisgICAg ICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgne05VTEwsTlVMTH0nOjppbnRlZ2VyW10p KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9v bV8xX2lkeF8xCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3tOVUxM LE5VTEx9Jzo6aW50ZWdlcltdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEgSU4gKDEx MywgMTc3KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1h cCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sg Q29uZDogKGEgPSBBTlkgKCd7MTEzLDE3N30nOjppbnRlZ2VyW10pKQorICAgICAgICAgLT4g IEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8xX2lkeF8xCisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3sxMTMsMTc3fSc6OmludGVnZXJb XSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxv b21fMSBXSEVSRSBhIElOICgxMTMsIDE3Nyk7CisgY291bnQgCistLS0tLS0tCisgICAgMTYK KygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKGEgPSBBTlkgKCd7MTEzLDE3NyxOVUxMfSc6OmludGVnZXJbXSkpCisgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzEKKyAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgnezExMywxNzcsTlVMTH0nOjpp bnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIE5VTEwpOworIGNvdW50IAorLS0t LS0tLQorICAgIDE2CisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBD T1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEgSU4gKDExMywgMTc3 LCAyNSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8xCisgICAgICAgICBSZWNo ZWNrIENvbmQ6IChhID0gQU5ZICgnezExMywxNzcsMjV9Jzo6aW50ZWdlcltdKSkKKyAgICAg ICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfYmxvb21fMV9pZHhf MQorICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSBBTlkgKCd7MTEzLDE3NywyNX0n OjppbnRlZ2VyW10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9p bl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcsIDI1KTsKKyBjb3VudCAKKy0t LS0tLS0KKyAgICAyNAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBhIElOIChOVUxMLCAx MTMsIDE3NywgMjUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFn Z3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29t XzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7TlVMTCwxMTMsMTc3LDI1 fSc6OmludGVnZXJbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJp bl9pbl90ZXN0X2Jsb29tXzFfaWR4XzEKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChh ID0gQU5ZICgne05VTEwsMTEzLDE3NywyNX0nOjppbnRlZ2VyW10pKQorKDUgcm93cykKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAo TlVMTCwgMTEzLCAxNzcsIDI1KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAyNAorKDEgcm93 KQorCistLSBhIGJpdCB3ZWlyZCB0aGlzIHJlcXVpcmVzIGEgY2FzdCB0byBiaWdpbnQsIHVu bGlrZSBtdWx0aS12YWx1ZSBJTiBjbGF1c2UKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVD VCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyOjpi aWdpbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBI ZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sgQ29u ZDogKGIgPSAnODInOjpiaWdpbnQpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4g b24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4IENv bmQ6IChiID0gJzgyJzo6YmlnaW50KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZS T00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAoODI6OmJpZ2ludCk7CisgY291 bnQgCistLS0tLS0tCisgICAgMTAKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAo ODIsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1h cCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sg Q29uZDogKGIgPSBBTlkgKCd7ODIsTlVMTH0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAg ICAgICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5ZICgnezgyLE5VTEx9Jzo6YmlnaW50W10p KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29t XzEgV0hFUkUgYiBJTiAoODIsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEwCiso MSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKE5VTEwsIE5VTEwpOworICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJy aW5faW5fdGVzdF9ibG9vbV8xCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChiID0gQU5ZICgn e05VTEwsTlVMTH0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChiID0gQU5ZICgne05VTEwsTlVMTH0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQor CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBiIElO IChOVUxMLCBOVUxMKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitF WFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3Rf Ymxvb21fMSBXSEVSRSBiIElOICg4MiwgNDEpOworICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3Jl Z2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEK KyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIgPSBBTlkgKCd7ODIsNDF9Jzo6YmlnaW50W10p KQorICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9v bV8xX2lkeF8yCisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYiA9IEFOWSAoJ3s4Miw0 MX0nOjpiaWdpbnRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfYmxvb21fMSBXSEVSRSBiIElOICg4MiwgNDEpOworIGNvdW50IAorLS0tLS0t LQorICAgIDIwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVM TCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFw IEhlYXAgU2NhbiBvbiBicmluX2luX3Rlc3RfYmxvb21fMQorICAgICAgICAgUmVjaGVjayBD b25kOiAoYiA9IEFOWSAoJ3s4Miw0MSxOVUxMfSc6OmJpZ2ludFtdKSkKKyAgICAgICAgIC0+ ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfYmxvb21fMV9pZHhfMgorICAg ICAgICAgICAgICAgSW5kZXggQ29uZDogKGIgPSBBTlkgKCd7ODIsNDEsTlVMTH0nOjpiaWdp bnRbXSkpCisoNSByb3dzKQorCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3Rf Ymxvb21fMSBXSEVSRSBiIElOICg4MiwgNDEsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQor ICAgIDIwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgMTUpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiBicmluX2luX3Rlc3RfYmxvb21fMQorICAgICAgICAgUmVjaGVjayBDb25kOiAoYiA9 IEFOWSAoJ3s4Miw0MSwxNX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0bWFwIElu ZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChiID0gQU5ZICgnezgyLDQxLDE1fSc6OmJpZ2ludFtdKSkKKyg1IHJv d3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJF IGIgSU4gKDgyLCA0MSwgMTUpOworIGNvdW50IAorLS0tLS0tLQorICAgIDI1CisoMSByb3cp CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwgMTUpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNj YW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKGIg PSBBTlkgKCd7TlVMTCw4Miw0MSwxNX0nOjpiaWdpbnRbXSkpCisgICAgICAgICAtPiAgQml0 bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzIKKyAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6IChiID0gQU5ZICgne05VTEwsODIsNDEsMTV9Jzo6YmlnaW50 W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzEgV0hFUkUgYiBJTiAoTlVMTCwgODIsIDQxLCAxNSk7CisgY291bnQgCistLS0tLS0t CisgICAgMjUKKygxIHJvdykKKworRFJPUCBUQUJMRSBicmluX2luX3Rlc3RfYmxvb21fMTsK K1JFU0VUIGVuYWJsZV9zZXFzY2FuOworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2Vz IGZvciB2YXJsZW5hIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfYmxv b21fMiAoYSBURVhUKSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5f aW5fdGVzdF9ibG9vbV8yCitTRUxFQ1QgdiBGUk9NIChTRUxFQ1Qgcm93X251bWJlcigpIE9W RVIgKE9SREVSIEJZIHYpIGMsIHYgRlJPTSAoU0VMRUNUIG1kNSgoaS8xMyk6OnRleHQpIEFT IHYgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpKSBmb28pIGJhciBPUkRFUiBC WSBjICsgMjUgKiByYW5kb20oKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rlc3RfYmxvb21f Ml9pZHggT04gYnJpbl9pbl90ZXN0X2Jsb29tXzIgVVNJTkcgYnJpbiAoYSB0ZXh0X2Jsb29t X29wcyhuX2Rpc3RpbmN0X3Blcl9yYW5nZT01MCkpIFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0x KTsKK1NFVCBlbmFibGVfc2Vxc2Nhbj1vZmY7CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxF Q1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNl NzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFw IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzIKKyAgICAgICAgIFJlY2hlY2sgQ29uZDog KGEgPSAnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknOjp0ZXh0KQorICAgICAg ICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8yX2lkeAor ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGEgPSAnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYz NTEwMzkxNTIxODknOjp0ZXh0KQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlm MzUxMDM5MTUyMTg5Jyk7CisgY291bnQgCistLS0tLS0tCisgICAgMTMKKygxIHJvdykKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0 X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5 JywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRt YXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8yCisgICAgICAgICBSZWNoZWNr IENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LE5V TEx9Jzo6dGV4dFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmlu X2luX3Rlc3RfYmxvb21fMl9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0g QU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LE5VTEx9Jzo6dGV4dFtd KSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9v bV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsIE5V TEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDEzCisoMSByb3cpCisKK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdI RVJFIGEgSU4gKE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQor ICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzIKKyAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPSBBTlkgKCd7TlVMTCxOVUxMfSc6OnRleHRbXSkpCisg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzJf aWR4CisgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3tOVUxMLE5VTEx9 Jzo6dGV4dFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKE5VTEwsIE5VTEwpOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlk ZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVh NzJjMCcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRt YXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8yCisgICAgICAgICBSZWNoZWNr IENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LGY0 NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwfSc6OnRleHRbXSkpCisgICAgICAgICAt PiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzJfaWR4CisgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3szM2U3NWZmMDlkZDYwMWJiZTY5 ZjM1MTAzOTE1MjE4OSxmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMH0nOjp0ZXh0 W10pKQorKDUgcm93cykKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5Jywg J2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJyk7CisgY291bnQgCistLS0tLS0t CisgICAgMjYKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRk NjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3 MmMwJywgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdh dGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9ibG9vbV8yCisg ICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRkNjAxYmJlNjlm MzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwLE5VTEx9Jzo6 dGV4dFtdKSkKKyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rl c3RfYmxvb21fMl9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgn ezMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVj ZWU0NzE0NWE3MmMwLE5VTEx9Jzo6dGV4dFtdKSkKKyg1IHJvd3MpCisKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlk ZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVh NzJjMCcsIE5VTEwpOworIGNvdW50IAorLS0tLS0tLQorICAgIDI2CisoMSByb3cpCisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9i bG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScs ICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQxMGMxMjRhMTBl MGRiNWU0Yjk3ZmMyYWYzOScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVzdF9i bG9vbV8yCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgnezMzZTc1ZmYwOWRk NjAxYmJlNjlmMzUxMDM5MTUyMTg5LGY0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMw LGM1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5fSc6OnRleHRbXSkpCisgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYnJpbl9pbl90ZXN0X2Jsb29tXzJfaWR4Cisg ICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IEFOWSAoJ3szM2U3NWZmMDlkZDYwMWJi ZTY5ZjM1MTAzOTE1MjE4OSxmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCxjNTFj ZTQxMGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOX0nOjp0ZXh0W10pKQorKDUgcm93cykKKwor U0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAo JzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYx OGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1ZTRiOTdmYzJhZjM5Jyk7 CisgY291bnQgCistLS0tLS0tCisgICAgMzkKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUg YSBJTiAoTlVMTCwgJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdj NTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1ZTRi OTdmYzJhZjM5Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGJyaW5faW5fdGVz dF9ibG9vbV8yCisgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gQU5ZICgne05VTEwsMzNl NzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODksZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3 MTQ1YTcyYzAsYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzl9Jzo6dGV4dFtdKSkK KyAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBicmluX2luX3Rlc3RfYmxvb21f Ml9pZHgKKyAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gQU5ZICgne05VTEwsMzNl NzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODksZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3 MTQ1YTcyYzAsYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFmMzl9Jzo6dGV4dFtdKSkK Kyg1IHJvd3MpCisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8y IFdIRVJFIGEgSU4gKE5VTEwsICczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScs ICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQxMGMxMjRhMTBl MGRiNWU0Yjk3ZmMyYWYzOScpOworIGNvdW50IAorLS0tLS0tLQorICAgIDM5CisoMSByb3cp CisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0X2Jsb29tXzI7CitSRVNFVCBlbmFibGVfc2Vx c2NhbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2JyaW5fYmxvb20uc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYnJpbl9ibG9vbS5zcWwKaW5kZXggNWQ0OTkyMDhl MzguLmQxODdlODlhNjA5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmlu X2Jsb29tLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9icmluX2Jsb29tLnNxbApA QCAtMzc0LDMgKzM3NCwxMzggQEAgVkFDVVVNIEFOQUxZWkUgYnJpbl90ZXN0X2Jsb29tOwog RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGJyaW5fdGVzdF9ibG9vbSBXSEVS RSBhID0gMTsKIC0tIEVuc3VyZSBicmluIGluZGV4IGlzIG5vdCB1c2VkIHdoZW4gdmFsdWVz IGFyZSBub3QgY29ycmVsYXRlZAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IGJyaW5fdGVzdF9ibG9vbSBXSEVSRSBiID0gMTsKKworCistLSBkbyBzb21lIHRlc3RzIG9u IElOIGNsYXVzZXMgZm9yIHNpbXBsZSBkYXRhIHR5cGVzCitDUkVBVEUgVEFCTEUgYnJpbl9p bl90ZXN0X2Jsb29tXzEgKGEgSU5ULCBiIEJJR0lOVCkgV0lUSCAoZmlsbGZhY3Rvcj0xMCk7 CitJTlNFUlQgSU5UTyBicmluX2luX3Rlc3RfYmxvb21fMQorU0VMRUNUIGkvNSArIG1vZCg5 OTEgKiBpICsgNjE3LCAyMCksCisgICAgICAgaS8xMCArIG1vZCg4NTMgKiBpICsgNDkxLCAz MCkKKyAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpOworCitDUkVBVEUgSU5E RVggYnJpbl9pbl90ZXN0X2Jsb29tXzFfaWR4XzEgT04gYnJpbl9pbl90ZXN0X2Jsb29tXzEg VVNJTkcgYnJpbiAoYSBpbnQ0X2Jsb29tX29wcyhuX2Rpc3RpbmN0X3Blcl9yYW5nZT01MCkp IFdJVEggKHBhZ2VzX3Blcl9yYW5nZT0xKTsKK0NSRUFURSBJTkRFWCBicmluX2luX3Rlc3Rf Ymxvb21fMV9pZHhfMiBPTiBicmluX2luX3Rlc3RfYmxvb21fMSBVU0lORyBicmluIChiIGlu dDhfYmxvb21fb3BzKG5fZGlzdGluY3RfcGVyX3JhbmdlPTUwKSkgV0lUSCAocGFnZXNfcGVy X3JhbmdlPTEpOworCitTRVQgZW5hYmxlX3NlcXNjYW49b2ZmOworCitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVS RSBhIElOICgxMTMpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxv b21fMSBXSEVSRSBhIElOICgxMTMpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBhIElOICgxMTMsIE5V TEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVS RSBhIElOICgxMTMsIE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBhIElOIChOVUxMLCBOVUxM KTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUg YSBJTiAoTlVMTCwgTlVMTCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VO VCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEgSU4gKDExMywgMTc3KTsK KworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJ TiAoMTEzLCAxNzcpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikg RlJPTSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBhIElOICgxMTMsIDE3NywgTlVMTCk7 CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGEg SU4gKDExMywgMTc3LCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoMTEzLCAxNzcs IDI1KTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hF UkUgYSBJTiAoMTEzLCAxNzcsIDI1KTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYSBJTiAoTlVMTCwg MTEzLCAxNzcsIDI1KTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzEgV0hFUkUgYSBJTiAoTlVMTCwgMTEzLCAxNzcsIDI1KTsKKworLS0gYSBiaXQgd2Vp cmQgdGhpcyByZXF1aXJlcyBhIGNhc3QgdG8gYmlnaW50LCB1bmxpa2UgbXVsdGktdmFsdWUg SU4gY2xhdXNlCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBiIElOICg4Mjo6YmlnaW50KTsKKworU0VMRUNU IENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAoODI6OmJp Z2ludCk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJy aW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCBOVUxMKTsKKworU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAoODIsIE5VTEwp OworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2lu X3Rlc3RfYmxvb21fMSBXSEVSRSBiIElOIChOVUxMLCBOVUxMKTsKKworU0VMRUNUIENPVU5U KCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzEgV0hFUkUgYiBJTiAoTlVMTCwgTlVMTCk7 CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5f dGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSk7CisKK1NFTEVDVCBDT1VOVCgqKSBG Uk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSk7CisKK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9v bV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9N IGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgTlVMTCk7CisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9i bG9vbV8xIFdIRVJFIGIgSU4gKDgyLCA0MSwgMTUpOworCitTRUxFQ1QgQ09VTlQoKikgRlJP TSBicmluX2luX3Rlc3RfYmxvb21fMSBXSEVSRSBiIElOICg4MiwgNDEsIDE1KTsKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Js b29tXzEgV0hFUkUgYiBJTiAoTlVMTCwgODIsIDQxLCAxNSk7CisKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8xIFdIRVJFIGIgSU4gKE5VTEwsIDgyLCA0MSwg MTUpOworCitEUk9QIFRBQkxFIGJyaW5faW5fdGVzdF9ibG9vbV8xOworUkVTRVQgZW5hYmxl X3NlcXNjYW47CisKKworLS0gZG8gc29tZSB0ZXN0cyBvbiBJTiBjbGF1c2VzIGZvciB2YXJs ZW5hIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSBicmluX2luX3Rlc3RfYmxvb21fMiAoYSBU RVhUKSBXSVRIIChmaWxsZmFjdG9yPTEwKTsKK0lOU0VSVCBJTlRPIGJyaW5faW5fdGVzdF9i bG9vbV8yCitTRUxFQ1QgdiBGUk9NIChTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgKE9SREVS IEJZIHYpIGMsIHYgRlJPTSAoU0VMRUNUIG1kNSgoaS8xMyk6OnRleHQpIEFTIHYgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBzKGkpKSBmb28pIGJhciBPUkRFUiBCWSBjICsgMjUg KiByYW5kb20oKTsKKworQ1JFQVRFIElOREVYIGJyaW5faW5fdGVzdF9ibG9vbV8yX2lkeCBP TiBicmluX2luX3Rlc3RfYmxvb21fMiBVU0lORyBicmluIChhIHRleHRfYmxvb21fb3BzKG5f ZGlzdGluY3RfcGVyX3JhbmdlPTUwKSkgV0lUSCAocGFnZXNfcGVyX3JhbmdlPTEpOworCitT RVQgZW5hYmxlX3NlcXNjYW49b2ZmOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qg Q09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNlNzVm ZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknKTsKKworU0VMRUNUIENPVU5UKCopIEZST00g YnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlm MzUxMDM5MTUyMTg5Jyk7CisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBDT1VOVCgq KSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYw MWJiZTY5ZjM1MTAzOTE1MjE4OScsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBi cmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYz NTEwMzkxNTIxODknLCBOVUxMKTsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENP VU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoTlVMTCwgTlVM TCk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJF IGEgSU4gKE5VTEwsIE5VTEwpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09V TlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5 ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknLCAnZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1 YTcyYzAnKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIg V0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0NTdj NTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJyk7CisKK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5faW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4g KCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAzOTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhm MThlY2VlNDcxNDVhNzJjMCcsIE5VTEwpOworCitTRUxFQ1QgQ09VTlQoKikgRlJPTSBicmlu X2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOICgnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEw MzkxNTIxODknLCAnZjQ1N2M1NDVhOWRlZDg4ZjE4ZWNlZTQ3MTQ1YTcyYzAnLCBOVUxMKTsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90 ZXN0X2Jsb29tXzIgV0hFUkUgYSBJTiAoJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUy MTg5JywgJ2Y0NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEy NGExMGUwZGI1ZTRiOTdmYzJhZjM5Jyk7CisKK1NFTEVDVCBDT1VOVCgqKSBGUk9NIGJyaW5f aW5fdGVzdF9ibG9vbV8yIFdIRVJFIGEgSU4gKCczM2U3NWZmMDlkZDYwMWJiZTY5ZjM1MTAz OTE1MjE4OScsICdmNDU3YzU0NWE5ZGVkODhmMThlY2VlNDcxNDVhNzJjMCcsICdjNTFjZTQx MGMxMjRhMTBlMGRiNWU0Yjk3ZmMyYWYzOScpOworCitFWFBMQUlOIChDT1NUUyBPRkYpCitT RUxFQ1QgQ09VTlQoKikgRlJPTSBicmluX2luX3Rlc3RfYmxvb21fMiBXSEVSRSBhIElOIChO VUxMLCAnMzNlNzVmZjA5ZGQ2MDFiYmU2OWYzNTEwMzkxNTIxODknLCAnZjQ1N2M1NDVhOWRl ZDg4ZjE4ZWNlZTQ3MTQ1YTcyYzAnLCAnYzUxY2U0MTBjMTI0YTEwZTBkYjVlNGI5N2ZjMmFm MzknKTsKKworU0VMRUNUIENPVU5UKCopIEZST00gYnJpbl9pbl90ZXN0X2Jsb29tXzIgV0hF UkUgYSBJTiAoTlVMTCwgJzMzZTc1ZmYwOWRkNjAxYmJlNjlmMzUxMDM5MTUyMTg5JywgJ2Y0 NTdjNTQ1YTlkZWQ4OGYxOGVjZWU0NzE0NWE3MmMwJywgJ2M1MWNlNDEwYzEyNGExMGUwZGI1 ZTRiOTdmYzJhZjM5Jyk7CisKK0RST1AgVEFCTEUgYnJpbl9pbl90ZXN0X2Jsb29tXzI7CitS RVNFVCBlbmFibGVfc2Vxc2NhbjsKLS0gCjIuMzkuMQoK --------------EQljBVuNRDzcOLsmSlN0ELww--