Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1unDIU-004ElD-Fp for pgsql-hackers@arkaria.postgresql.org; Sat, 16 Aug 2025 09:34:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1unDIS-004lbE-Mn for pgsql-hackers@arkaria.postgresql.org; Sat, 16 Aug 2025 09:33:57 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1unDIR-004lb5-SS for pgsql-hackers@lists.postgresql.org; Sat, 16 Aug 2025 09:33:57 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1unDIN-0007yc-1g for pgsql-hackers@lists.postgresql.org; Sat, 16 Aug 2025 09:33:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Transfer-Encoding:Content-Type: Mime-Version:References:In-Reply-To:From:Subject:Cc:To:Message-Id:Date:Sender :Reply-To:Content-ID:Content-Description; bh=r2pncVhyzASiuuzpgOTY89d1m21pZfWPUso6tHfF3lM=; b=yKJFF05HiuQL2SWNAYOrVBc0wh nYrfW3mbRFEHM7eWkemPbn7PEdIV/w7MPIiyrMmqt51suR0Bn3oo2mJhzNlWg8gaQ6FWj/ay+QUIA uaaDVrQlpzs/9tq26Qp0ij1c1DI5IuYVyeXEvh7Qg6Z2ahlDFcN+El0m3dEqRdpukOXF2NZ1m7onT xFSZg0/z3nxKS6BvgRQ6hZvKZ8yELg6ApmTxnzKldj9mLjfDCZBl6jMwsNCJrHZ/sFHM1C9GqX01Q OZaYbLzWuD6yIBOTNAL63x7uIPvxwMsv6LltMleQ3P1wnV1A5OyGgOPiRhHhc1PJUqR4Mz5ZqpfGs jq1w2wyQ==; Received: from [2409:11:4120:300:e9d9:7a97:900e:ca26] (helo=localhost) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (Exim 4.96) (envelope-from ) id 1unDIC-000GrF-1J; Sat, 16 Aug 2025 09:33:45 +0000 Date: Sat, 16 Aug 2025 18:33:29 +0900 (JST) Message-Id: <20250816.183329.1067490243501362986.ishii@postgresql.org> To: krasiyan@gmail.com, ojford@gmail.com, tgl@sss.pgh.pa.us, vik@postgresfriends.org, andrew@tao11.riddles.org.uk, david@fetter.org Cc: pgsql-hackers@lists.postgresql.org Subject: Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options From: Tatsuo Ishii In-Reply-To: <20250725.164914.458111718434162385.ishii@postgresql.org> References: <20250707.143737.542330111731967700.ishii@postgresql.org> <20250716.134407.452044148645390173.ishii@postgresql.org> <20250725.164914.458111718434162385.ishii@postgresql.org> X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_Aug_16_18_33_29_2025_218)--" Content-Transfer-Encoding: 7bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:11:4120:300:e9d9:7a97:900e:ca26 (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ----Next_Part(Sat_Aug_16_18_33_29_2025_218)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Attached are the v18 patches for adding RESPECT/IGNORE NULLS options to some window functions. Recent changes to doc/src/sgml/func.sgml required v17 to be rebased. Other than that, nothing has been changed. Oliver, do you have any comments on the patches? > Attached are the v17 patches for adding RESPECT/IGNORE NULLS options > defined in the standard to some window functions. FROM FIRST/LAST > options are not considered in the patch (yet). > > This time I split the patch into 6 > patches for reviewer's convenience. Also each patch has a short commit > message to explain the patch. > > 0001: parse and analysis > 0002: rewriter > 0003: planner > 0004: executor > 0005: documents > 0006: tests Best regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp ----Next_Part(Sat_Aug_16_18_33_29_2025_218)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v18-0001-Modify-parse-analysis-modules-to-accept-RESPECT-.patch" RnJvbSA0ZGI2YTVkOWE2OWI4MmFmODcwMjMyMjMzZTRlZjc3YWM4YjQxNTNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDE2IEF1ZyAyMDI1IDE4OjI5OjIzICswOTAwClN1YmplY3Q6IFtQQVRDSCB2MTgg MS82XSBNb2RpZnkgcGFyc2UvYW5hbHlzaXMgbW9kdWxlcyB0byBhY2NlcHQKIFJFU1BFQ1QvSUdO T1JFIE5VTExTIG9wdGlvbi4KCkZvbGxvd2luZyBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIHRvIHBh cnNlLy9hbmFseXNpcyBtb2R1bGVzLgoKLSBhZGQgSUdOT1JFX1AgUkVTUEVDVF9QIGtleXdvcmRz CgotIGFkZCAibnVsbF90cmVhdG1lbnQiIHRvIGZ1bmNfZXhwciBhZnRlciBmaWx0ZXJfY2xhdXNl IGFuZCBiZWZvcmUKICBvdmVyX2NsYXVzZSBhcyB0aGUgU1FMIHN0YW5kYXJkIHJlcXVyaWVzLiBu dWxsX3RyZWF0bWVudCBpcyByZXNvbHZlZAogIHRvIGVpdGhlciBQQVJTRVJfSUdOT1JFX05VTExT LCBQQVJTRVJfUkVTUEVDVF9OVUxMUyBvcgogIE5PX05VTExUUkVBVE1FTlQKCi0gYWRkICJpZ25v cmVfbnVsbHMiIHRvIFdpbmRvd0Z1bmMgYW5kIEZ1bmNDYWxsCi0tLQogc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSAgICAgICB8IDE5ICsrKysrKysrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9mdW5jLmMgfCAgOSArKysrKysrKysKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgfCAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgIHwgMTMgKysr KysrKysrKysrKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICB8ICAyICsrCiA1IGZp bGVzIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK aW5kZXggZGI0MzAzNGI5ZGIuLmU3ODQ3YTdiN2E1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTYzMSw3ICs2 MzEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFt ZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPGxpc3Q+CXdpbmRvd19jbGF1 c2Ugd2luZG93X2RlZmluaXRpb25fbGlzdCBvcHRfcGFydGl0aW9uX2NsYXVzZQogJXR5cGUgPHdp bmRlZj4Jd2luZG93X2RlZmluaXRpb24gb3Zlcl9jbGF1c2Ugd2luZG93X3NwZWNpZmljYXRpb24K IAkJCQlvcHRfZnJhbWVfY2xhdXNlIGZyYW1lX2V4dGVudCBmcmFtZV9ib3VuZAotJXR5cGUgPGl2 YWw+CW9wdF93aW5kb3dfZXhjbHVzaW9uX2NsYXVzZQorJXR5cGUgPGl2YWw+CW51bGxfdHJlYXRt ZW50IG9wdF93aW5kb3dfZXhjbHVzaW9uX2NsYXVzZQogJXR5cGUgPHN0cj4JCW9wdF9leGlzdGlu Z193aW5kb3dfbmFtZQogJXR5cGUgPGJvb2xlYW4+IG9wdF9pZl9ub3RfZXhpc3RzCiAldHlwZSA8 Ym9vbGVhbj4gb3B0X3VuaXF1ZV9udWxsX3RyZWF0bWVudApAQCAtNzI5LDcgKzcyOSw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAKIAlIQU5ETEVSIEhBVklORyBIRUFERVJfUCBIT0xEIEhP VVJfUAogCi0JSURFTlRJVFlfUCBJRl9QIElMSUtFIElNTUVESUFURSBJTU1VVEFCTEUgSU1QTElD SVRfUCBJTVBPUlRfUCBJTl9QIElOQ0xVREUKKwlJREVOVElUWV9QIElGX1AgSUdOT1JFX1AgSUxJ S0UgSU1NRURJQVRFIElNTVVUQUJMRSBJTVBMSUNJVF9QIElNUE9SVF9QIElOX1AgSU5DTFVERQog CUlOQ0xVRElORyBJTkNSRU1FTlQgSU5ERU5UIElOREVYIElOREVYRVMgSU5IRVJJVCBJTkhFUklU UyBJTklUSUFMTFkgSU5MSU5FX1AKIAlJTk5FUl9QIElOT1VUIElOUFVUX1AgSU5TRU5TSVRJVkUg SU5TRVJUIElOU1RFQUQgSU5UX1AgSU5URUdFUgogCUlOVEVSU0VDVCBJTlRFUlZBTCBJTlRPIElO Vk9LRVIgSVMgSVNOVUxMIElTT0xBVElPTgpAQCAtNzY0LDcgKzc2NCw3IEBAIHN0YXRpYyBOb2Rl ICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAKIAlSQU5HRSBSRUFEIFJFQUwgUkVBU1NJR04gUkVDVVJTSVZFIFJFRl9Q IFJFRkVSRU5DRVMgUkVGRVJFTkNJTkcKIAlSRUZSRVNIIFJFSU5ERVggUkVMQVRJVkVfUCBSRUxF QVNFIFJFTkFNRSBSRVBFQVRBQkxFIFJFUExBQ0UgUkVQTElDQQotCVJFU0VUIFJFU1RBUlQgUkVT VFJJQ1QgUkVUVVJOIFJFVFVSTklORyBSRVRVUk5TIFJFVk9LRSBSSUdIVCBST0xFIFJPTExCQUNL IFJPTExVUAorCVJFU0VUIFJFU1BFQ1RfUCBSRVNUQVJUIFJFU1RSSUNUIFJFVFVSTiBSRVRVUk5J TkcgUkVUVVJOUyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xMVVAKIAlST1VUSU5FIFJP VVRJTkVTIFJPVyBST1dTIFJVTEUKIAogCVNBVkVQT0lOVCBTQ0FMQVIgU0NIRU1BIFNDSEVNQVMg U0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKQEAgLTE1NzkxLDcgKzE1Nzkx LDcgQEAgZnVuY19hcHBsaWNhdGlvbjogZnVuY19uYW1lICcoJyAnKScKICAqIChOb3RlIHRoYXQg bWFueSBvZiB0aGUgc3BlY2lhbCBTUUwgZnVuY3Rpb25zIHdvdWxkbid0IGFjdHVhbGx5IG1ha2Ug YW55CiAgKiBzZW5zZSBhcyBmdW5jdGlvbmFsIGluZGV4IGVudHJpZXMsIGJ1dCB3ZSBpZ25vcmUg dGhhdCBjb25zaWRlcmF0aW9uIGhlcmUuKQogICovCi1mdW5jX2V4cHI6IGZ1bmNfYXBwbGljYXRp b24gd2l0aGluX2dyb3VwX2NsYXVzZSBmaWx0ZXJfY2xhdXNlIG92ZXJfY2xhdXNlCitmdW5jX2V4 cHI6IGZ1bmNfYXBwbGljYXRpb24gd2l0aGluX2dyb3VwX2NsYXVzZSBmaWx0ZXJfY2xhdXNlIG51 bGxfdHJlYXRtZW50IG92ZXJfY2xhdXNlCiAJCQkJewogCQkJCQlGdW5jQ2FsbCAgICpuID0gKEZ1 bmNDYWxsICopICQxOwogCkBAIC0xNTgyNCw3ICsxNTgyNCw4IEBAIGZ1bmNfZXhwcjogZnVuY19h cHBsaWNhdGlvbiB3aXRoaW5fZ3JvdXBfY2xhdXNlIGZpbHRlcl9jbGF1c2Ugb3Zlcl9jbGF1c2UK IAkJCQkJCW4tPmFnZ193aXRoaW5fZ3JvdXAgPSB0cnVlOwogCQkJCQl9CiAJCQkJCW4tPmFnZ19m aWx0ZXIgPSAkMzsKLQkJCQkJbi0+b3ZlciA9ICQ0OworCQkJCQluLT5pZ25vcmVfbnVsbHMgPSAk NDsKKwkJCQkJbi0+b3ZlciA9ICQ1OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQkJ fCBqc29uX2FnZ3JlZ2F0ZV9mdW5jIGZpbHRlcl9jbGF1c2Ugb3Zlcl9jbGF1c2UKQEAgLTE2NDIw LDYgKzE2NDIxLDEyIEBAIGZpbHRlcl9jbGF1c2U6CiAvKgogICogV2luZG93IERlZmluaXRpb25z CiAgKi8KK251bGxfdHJlYXRtZW50OgorCQkJSUdOT1JFX1AgTlVMTFNfUAkJCQkJCXsgJCQgPSBQ QVJTRVJfSUdOT1JFX05VTExTOyB9CisJCQl8IFJFU1BFQ1RfUCBOVUxMU19QCQkJCQkJeyAkJCA9 IFBBUlNFUl9SRVNQRUNUX05VTExTOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5P X05VTExUUkVBVE1FTlQ7IH0KKwkJOworCiB3aW5kb3dfY2xhdXNlOgogCQkJV0lORE9XIHdpbmRv d19kZWZpbml0aW9uX2xpc3QJCQl7ICQkID0gJDI7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7 ICQkID0gTklMOyB9CkBAIC0xNzg0Niw2ICsxNzg1Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoK IAkJCXwgSE9VUl9QCiAJCQl8IElERU5USVRZX1AKIAkJCXwgSUZfUAorCQkJfCBJR05PUkVfUAog CQkJfCBJTU1FRElBVEUKIAkJCXwgSU1NVVRBQkxFCiAJCQl8IElNUExJQ0lUX1AKQEAgLTE3OTY0 LDYgKzE3OTcyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBSRVBMQUNFCiAJCQl8IFJF UExJQ0EKIAkJCXwgUkVTRVQKKwkJCXwgUkVTUEVDVF9QCiAJCQl8IFJFU1RBUlQKIAkJCXwgUkVT VFJJQ1QKIAkJCXwgUkVUVVJOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA1ODNiYmJmMjMy Zi4uMzc3MmM1MTRiMWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5j LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtOTgsNiArOTgsNyBA QCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBM aXN0ICpmYXJncywKIAlib29sCQlhZ2dfc3RhciA9IChmbiA/IGZuLT5hZ2dfc3RhciA6IGZhbHNl KTsKIAlib29sCQlhZ2dfZGlzdGluY3QgPSAoZm4gPyBmbi0+YWdnX2Rpc3RpbmN0IDogZmFsc2Up OwogCWJvb2wJCWZ1bmNfdmFyaWFkaWMgPSAoZm4gPyBmbi0+ZnVuY192YXJpYWRpYyA6IGZhbHNl KTsKKwlpbnQJCQlpZ25vcmVfbnVsbHMgPSAoZm4gPyBmbi0+aWdub3JlX251bGxzIDogMCk7CiAJ Q29lcmNpb25Gb3JtIGZ1bmNmb3JtYXQgPSAoZm4gPyBmbi0+ZnVuY2Zvcm1hdCA6IENPRVJDRV9F WFBMSUNJVF9DQUxMKTsKIAlib29sCQljb3VsZF9iZV9wcm9qZWN0aW9uOwogCU9pZAkJCXJldHR5 cGU7CkBAIC01MTQsNiArNTE1LDEzIEBAIFBhcnNlRnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAogCQkJCQkJIGVycm1zZygiJXMgaXMg bm90IGFuIG9yZGVyZWQtc2V0IGFnZ3JlZ2F0ZSwgc28gaXQgY2Fubm90IGhhdmUgV0lUSElOIEdS T1VQIiwKIAkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhmdW5jbmFtZSkpLAogCQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCisJCQkvKiBJdCBhbHNvIGNhbid0 IHRyZWF0IG51bGxzIGFzIGEgd2luZG93IGZ1bmN0aW9uICovCisJCQlpZiAoaWdub3JlX251bGxz ICE9IE5PX05VTExUUkVBVE1FTlQpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2Rl KEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkJIGVycm1zZygiYWdncmVnYXRlIGZ1 bmN0aW9ucyBkbyBub3QgYWNjZXB0IFJFU1BFQ1QvSUdOT1JFIE5VTExTIiksCisJCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAJCX0KIAl9CiAJZWxzZSBpZiAo ZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9XSU5ET1dGVU5DKQpAQCAtODM0LDYgKzg0Miw3IEBAIFBh cnNlRnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3Qg KmZhcmdzLAogCQl3ZnVuYy0+d2luc3RhciA9IGFnZ19zdGFyOwogCQl3ZnVuYy0+d2luYWdnID0g KGZkcmVzdWx0ID09IEZVTkNERVRBSUxfQUdHUkVHQVRFKTsKIAkJd2Z1bmMtPmFnZ2ZpbHRlciA9 IGFnZ19maWx0ZXI7CisJCXdmdW5jLT5pZ25vcmVfbnVsbHMgPSBpZ25vcmVfbnVsbHM7CiAJCXdm dW5jLT5ydW5Db25kaXRpb24gPSBOSUw7CiAJCXdmdW5jLT5sb2NhdGlvbiA9IGxvY2F0aW9uOwog CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggODZhMjM2YmQ1OGIuLjllYzZkNzlkODM0IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC00NTIsNiArNDUyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgRnVu Y0NhbGwKIAlMaXN0CSAgICphZ2dfb3JkZXI7CQkvKiBPUkRFUiBCWSAobGlzdCBvZiBTb3J0Qnkp ICovCiAJTm9kZQkgICAqYWdnX2ZpbHRlcjsJCS8qIEZJTFRFUiBjbGF1c2UsIGlmIGFueSAqLwog CXN0cnVjdCBXaW5kb3dEZWYgKm92ZXI7CQkvKiBPVkVSIGNsYXVzZSwgaWYgYW55ICovCisJaW50 CQkJaWdub3JlX251bGxzOwkvKiBpZ25vcmUgbnVsbHMgZm9yIHdpbmRvdyBmdW5jdGlvbiAqLwog CWJvb2wJCWFnZ193aXRoaW5fZ3JvdXA7CS8qIE9SREVSIEJZIGFwcGVhcmVkIGluIFdJVEhJTiBH Uk9VUCAqLwogCWJvb2wJCWFnZ19zdGFyOwkJLyogYXJndW1lbnQgd2FzIHJlYWxseSAnKicgKi8K IAlib29sCQlhZ2dfZGlzdGluY3Q7CS8qIGFyZ3VtZW50cyB3ZXJlIGxhYmVsZWQgRElTVElOQ1Qg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggNmRmY2EzY2IzNWIuLmU5ZDhiZjc0MTQ1IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wcmltbm9kZXMuaApAQCAtNTc5LDYgKzU3OSwxNyBAQCB0eXBlZGVmIHN0cnVjdCBHcm91 cGluZ0Z1bmMKICAqIENvbGxhdGlvbiBpbmZvcm1hdGlvbiBpcyBpcnJlbGV2YW50IGZvciB0aGUg cXVlcnkganVtYmxpbmcsIGFzIGlzIHRoZQogICogaW50ZXJuYWwgc3RhdGUgaW5mb3JtYXRpb24g b2YgdGhlIG5vZGUgbGlrZSAid2luc3RhciIgYW5kICJ3aW5hZ2ciLgogICovCisKKy8qCisgKiBO dWxsIFRyZWF0bWVudCBvcHRpb25zLiBJZiBzcGVjaWZpZWQsIGluaXRpYWxseSBzZXQgdG8gUEFS U0VSX0lHTk9SRV9OVUxMUworICogd2hpY2ggaXMgdGhlbiBjb252ZXJ0ZWQgdG8gSUdOT1JFX05V TExTIGlmIHRoZSB3aW5kb3cgZnVuY3Rpb24gYWxsb3dzIHRoZQorICogbnVsbCB0cmVhdG1lbnQg Y2xhdXNlLgorICovCisjZGVmaW5lIE5PX05VTExUUkVBVE1FTlQgMAorI2RlZmluZSBQQVJTRVJf SUdOT1JFX05VTExTIDEKKyNkZWZpbmUgUEFSU0VSX1JFU1BFQ1RfTlVMTFMgMgorI2RlZmluZSBJ R05PUkVfTlVMTFMgMworCiB0eXBlZGVmIHN0cnVjdCBXaW5kb3dGdW5jCiB7CiAJRXhwcgkJeHBy OwpAQCAtNjAyLDYgKzYxMyw4IEBAIHR5cGVkZWYgc3RydWN0IFdpbmRvd0Z1bmMKIAlib29sCQl3 aW5zdGFyIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBpcyBmdW5jdGlv biBhIHNpbXBsZSBhZ2dyZWdhdGU/ICovCiAJYm9vbAkJd2luYWdnIHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKKwkvKiBpZ25vcmUgbnVsbHMuIE9uZSBvZiB0aGUgTnVsbCBUcmVh dG1lbnQgb3B0aW9ucyAqLworCWludAkJCWlnbm9yZV9udWxsczsKIAkvKiB0b2tlbiBsb2NhdGlv biwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwogfSBXaW5kb3dGdW5j OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCmluZGV4IGE0YWYzZjcxN2ExLi44NDE4MmVhYWFlMiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaApAQCAtMjAyLDYgKzIwMiw3IEBAIFBHX0tFWVdPUkQoImhvbGQiLCBIT0xELCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJob3VyIiwgSE9VUl9QLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgiaWRlbnRpdHkiLCBJREVO VElUWV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJpZiIs IElGX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImlnbm9y ZSIsIElHTk9SRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgi aWxpa2UiLCBJTElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoImltbWVkaWF0ZSIsIElNTUVESUFURSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgiaW1tdXRhYmxlIiwgSU1NVVRBQkxFLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCkBAIC0zNzgsNiArMzc5LDcgQEAgUEdfS0VZV09SRCgicmVwZWF0YWJs ZSIsIFJFUEVBVEFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInJlcGxhY2UiLCBSRVBMQUNFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJyZXBsaWNhIiwgUkVQTElDQSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgicmVzZXQiLCBSRVNFVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQorUEdfS0VZV09SRCgicmVzcGVjdCIsIFJFU1BFQ1RfUCwgVU5SRVNFUlZFRF9LRVlX T1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInJlc3RhcnQiLCBSRVNUQVJULCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJyZXN0cmljdCIsIFJFU1RSSUNULCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJyZXR1cm4iLCBSRVRV Uk4sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKLS0gCjIuMjUuMQoK ----Next_Part(Sat_Aug_16_18_33_29_2025_218)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v18-0002-Modify-get_windowfunc_expr_helper-to-handle-IGNO.patch" RnJvbSA0Y2E1Mzg1MmM2YWY1NjhmZDVhY2EyNWYyZGMwMTU5MzMzOGZjNTYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDE2IEF1ZyAyMDI1IDE4OjI5OjIzICswOTAwClN1YmplY3Q6IFtQQVRDSCB2MTgg Mi82XSBNb2RpZnkgZ2V0X3dpbmRvd2Z1bmNfZXhwcl9oZWxwZXIgdG8gaGFuZGxlIElHTk9SRQog TlVMTFMgb3B0aW9uLgoKLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgfCA3 ICsrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggM2Q2ZTZiZGJmZDIuLjRlODM3ZDJhZmVh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMTA5MCw3ICsxMTA5MCwxMiBAQCBn ZXRfd2luZG93ZnVuY19leHByX2hlbHBlcihXaW5kb3dGdW5jICp3ZnVuYywgZGVwYXJzZV9jb250 ZXh0ICpjb250ZXh0LAogCQlnZXRfcnVsZV9leHByKChOb2RlICopIHdmdW5jLT5hZ2dmaWx0ZXIs IGNvbnRleHQsIGZhbHNlKTsKIAl9CiAKLQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIikg T1ZFUiAiKTsKKwlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIikgIik7CisKKwlpZiAod2Z1 bmMtPmlnbm9yZV9udWxscyA9PSBQQVJTRVJfSUdOT1JFX05VTExTKQorCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIklHTk9SRSBOVUxMUyAiKTsKKworCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoYnVmLCAiT1ZFUiAiKTsKIAogCWlmIChjb250ZXh0LT53aW5kb3dDbGF1c2UpCiAJewotLSAK Mi4yNS4xCgo= ----Next_Part(Sat_Aug_16_18_33_29_2025_218)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v18-0003-Modify-eval_const_expressions_mutator-to-handle-.patch" RnJvbSA4YTk1ZjZmZDRhYjQ5ZTk3Y2JkNTRkNTUyNzhmZTkxYmRjZjMwZTU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDE2IEF1ZyAyMDI1IDE4OjI5OjIzICswOTAwClN1YmplY3Q6IFtQQVRDSCB2MTgg My82XSBNb2RpZnkgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yIHRvIGhhbmRsZQogSUdO T1JFIE5VTExTIG9wdGlvbi4KCi0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9jbGF1c2VzLmMKaW5kZXggNmYwYjMzOGQyY2QuLjkyZTBmMTRmYTU0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC0yNTc2LDYgKzI1NzYsNyBAQCBldmFsX2Nv bnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQluZXdleHByLT53aW5yZWYg PSBleHByLT53aW5yZWY7CiAJCQkJbmV3ZXhwci0+d2luc3RhciA9IGV4cHItPndpbnN0YXI7CiAJ CQkJbmV3ZXhwci0+d2luYWdnID0gZXhwci0+d2luYWdnOworCQkJCW5ld2V4cHItPmlnbm9yZV9u dWxscyA9IGV4cHItPmlnbm9yZV9udWxsczsKIAkJCQluZXdleHByLT5sb2NhdGlvbiA9IGV4cHIt PmxvY2F0aW9uOwogCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld2V4cHI7Ci0tIAoyLjI1LjEKCg== ----Next_Part(Sat_Aug_16_18_33_29_2025_218)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v18-0004-Modify-executor-and-window-functions-to-handle-I.patch" RnJvbSAxNjM1NzdjOTE5MWQ2M2I4MDA4M2ExNTNmZTI2MDQyMjdjM2Y5NDIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDE2IEF1ZyAyMDI1IDE4OjI5OjIzICswOTAwClN1YmplY3Q6IFtQQVRDSCB2MTgg NC82XSBNb2RpZnkgZXhlY3V0b3IgYW5kIHdpbmRvdyBmdW5jdGlvbnMgdG8gaGFuZGxlIElHTk9S RQogTlVMTFMuCgpGb2xsb3dpbmcgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZSB0byBleGVjdXRvciBh bmQgd2luZG93IGZ1bmN0aW9ucwptb2R1bGVzLgoKLSBOZXcgd2luZG93IGZ1bmN0aW9uIEFQSSBX aW5DaGVja0FuZEluaXRpYWxpemVOdWxsVHJlYXRtZW50KCkgaXMKICBhZGRlZC4gV2luZG93IGZ1 bmN0aW9ucyBzaG91bGQgY2FsbCB0aGlzIHRvIGV4cHJlc3MgaWYgdGhleSBhY2NlcHQgYQogIG51 bGwgdHJlYXRtZW50IGNsYXVzZSBvciBub3QuICBJZiB0aGV5IGRvIG5vdCwgYW4gZXJyb3IgaXMg cmFpc2VkIGluCiAgdGhpcyBmdW5jdGlvbi4gQnVpbHQtaW4gd2luZG93IGZ1bmN0aW9ucyBhcmUg bW9kaWZpZWQgdG8gY2FsbCBpdC4KCi0gV2luR2V0RnVuY0FyZ0luUGFydGl0aW9uIGlzIG1vZGlm aWVkIHRvIGhhbmRsZSBJR05PUkUgTlVMTFMuCgotIFdpbkdldEZ1bmNBcmdJbkZyYW1lIGlzIG1v ZGlmaWVkIHRvIGhhbmRsZSBJR05PUkUgTlVMTFMuIFRoZSBhY3R1YWwKICB3b3JraG9yc2UgZm9y IHRoaXMgaXMgaWdub3JlbnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUuCgotIFdoaWxlIHNlYXJjaGlu ZyBub3QgbnVsbCByb3dzLCB0byBub3Qgc2NhbiB0dXBsZXMgb3ZlciBhbmQgb3ZlcgogIGFnYWlu LCAibm90bnVsbF9pbmZvIiBjYWNoZSBtb2R1bGUgYWRkZWQuIFRoaXMgaG9sZHMgMi1iaXQgaW5m byBmb3IKICBlYWNoIHR1cGxlLCB0byBrZWVwIHdoZXRoZXIgdGhlIHR1cGxlIGhhcyBhbHJlYWR5 IGJlZW4gY2hlY2tlZCBpZiBpdAogIGlzIG5vdCB5ZXQgY2hlY2tlZCwgbnVsbCBvciBub3QgbnVs bC4gVGhlIG5vdG51bGxfaW5mbyBpcyBhZGRlZCB0bwogIFdpbmRvd09iamVjdERhdGEuCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIHwgNDU4ICsrKysrKysrKysrKysr KysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMgIHwgIDEw ICsKIHNyYy9pbmNsdWRlL3dpbmRvd2FwaS5oICAgICAgICAgICAgICB8ICAgNiArCiAzIGZpbGVz IGNoYW5nZWQsIDQzOSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggOWExYWNjZTJiNWQuLjg1ODgzOTU4ZThlIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC02OSw2ICs2OSwxMyBAQCB0eXBlZGVm IHN0cnVjdCBXaW5kb3dPYmplY3REYXRhCiAJaW50CQkJcmVhZHB0cjsJCS8qIHR1cGxlc3RvcmUg cmVhZCBwb2ludGVyIGZvciB0aGlzIGZuICovCiAJaW50NjQJCW1hcmtwb3M7CQkvKiByb3cgdGhh dCBtYXJrcHRyIGlzIHBvc2l0aW9uZWQgb24gKi8KIAlpbnQ2NAkJc2Vla3BvczsJCS8qIHJvdyB0 aGF0IHJlYWRwdHIgaXMgcG9zaXRpb25lZCBvbiAqLworCXVpbnQ4CSAgICpub3RudWxsX2luZm87 CS8qIG5vdCBudWxsIGluZm8gKi8KKwlpbnQJCQludW1fbm90bnVsbF9pbmZvOwkvKiB0cmFjayBz aXplIG9mIHRoZSBub3RudWxsX2luZm8gYXJyYXkgKi8KKwkvKgorCSAqIE51bGwgdHJlYXRtZW50 IG9wdGlvbnMuIE9uZSBvZjogTk9fTlVMTFRSRUFUTUVOVCwgUEFSU0VSX0lHTk9SRV9OVUxMUywK KwkgKiBQQVJTRVJfUkVTUEVDVF9OVUxMUyBvciBJR05PUkVfTlVMTFMuCisJICovCisJaW50CQkJ aWdub3JlX251bGxzOwogfSBXaW5kb3dPYmplY3REYXRhOwogCiAvKgpAQCAtOTYsNiArMTAzLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93U3RhdGVQZXJGdW5jRGF0YQogCiAJYm9vbAkJcGxhaW5f YWdnOwkJLyogaXMgaXQganVzdCBhIHBsYWluIGFnZ3JlZ2F0ZSBmdW5jdGlvbj8gKi8KIAlpbnQJ CQlhZ2dubzsJCQkvKiBpZiBzbywgaW5kZXggb2YgaXRzIFdpbmRvd1N0YXRlUGVyQWdnRGF0YSAq LworCWludAkJCWlnbm9yZV9udWxsczsJLyogaWdub3JlIG51bGxzICovCiAKIAlXaW5kb3dPYmpl Y3Qgd2lub2JqOwkJLyogb2JqZWN0IHVzZWQgaW4gd2luZG93IGZ1bmN0aW9uIEFQSSAqLwogfQkJ CVdpbmRvd1N0YXRlUGVyRnVuY0RhdGE7CkBAIC0xODIsOCArMTkwLDggQEAgc3RhdGljIHZvaWQg YmVnaW5fcGFydGl0aW9uKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7CiBzdGF0aWMgdm9pZCBz cG9vbF90dXBsZXMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MpOwogc3RhdGlj IHZvaWQgcmVsZWFzZV9wYXJ0aXRpb24oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKIAotc3Rh dGljIGludAlyb3dfaXNfaW5fZnJhbWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBw b3MsCi0JCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNsb3QpOworc3RhdGljIGludAlyb3dfaXNfaW5f ZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLAorCQkJCQkJCVR1cGxlVGFibGVT bG90ICpzbG90LCBib29sIGZldGNoX3R1cGxlKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9mcmFtZWhl YWRwb3MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9mcmFt ZXRhaWxwb3MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9n cm91cHRhaWxwb3MoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKQEAgLTE5OCw2ICsyMDYsMzMg QEAgc3RhdGljIGJvb2wgYXJlX3BlZXJzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgVHVwbGVU YWJsZVNsb3QgKnNsb3QxLAogc3RhdGljIGJvb2wgd2luZG93X2dldHR1cGxlc2xvdChXaW5kb3dP YmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsCiAJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpzbG90KTsK IAorc3RhdGljIERhdHVtIGlnbm9yZW51bGxzX2dldGZ1bmNhcmdpbmZyYW1lKFdpbmRvd09iamVj dCB3aW5vYmosIGludCBhcmdubywKKwkJCQkJCQkJCQkgICBpbnQgcmVscG9zLCBpbnQgc2Vla3R5 cGUsCisJCQkJCQkJCQkJICAgYm9vbCBzZXRfbWFyaywgYm9vbCAqaXNudWxsLAorCQkJCQkJCQkJ CSAgIGJvb2wgKmlzb3V0KTsKK3N0YXRpYyBEYXR1bSBnZXR0dXBsZV9ldmFsX3BhcnRpdGlvbihX aW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCisJCQkJCQkJCQkgaW50NjQgYWJzX3Bvcywg Ym9vbCAqaXNudWxsLCBib29sICppc291dCk7CitzdGF0aWMgdm9pZCBpbml0X25vdG51bGxfaW5m byhXaW5kb3dPYmplY3Qgd2lub2JqKTsKK3N0YXRpYyB2b2lkIGdyb3dfbm90bnVsbF9pbmZvKFdp bmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcyk7CitzdGF0aWMgdWludDggZ2V0X25vdG51bGxf aW5mbyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpOworc3RhdGljIHZvaWQgcHV0X25v dG51bGxfaW5mbyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wgaXNudWxsKTsK KworLyoKKyAqIE5vdCBudWxsIGluZm8gYml0IGFycmF5IGNvbnNpc3RzIG9mIDItYml0IGl0ZW1z CisgKi8KKyNkZWZpbmUJTk5fVU5LTk9XTgkweDAwCQkvKiB2YWx1ZSBub3QgY2FsY3VsYXRlZCB5 ZXQgKi8KKyNkZWZpbmUJTk5fTlVMTAkJMHgwMQkJLyogTlVMTCAqLworI2RlZmluZQlOTl9OT1RO VUxMCTB4MDIJCS8qIE5PVCBOVUxMICovCisjZGVmaW5lCU5OX01BU0sJCTB4MDMJCS8qIG1hc2sg Zm9yIE5PVCBOVUxMIE1BUCAqLworI2RlZmluZSBOTl9CSVRTX1BFUl9NRU1CRVIJMgkvKiBudW1i ZXIgb2YgYml0IGluIG5vdCBudWxsIG1hcCAqLworLyogbnVtYmVyIG9mIGl0ZW1zIHBlciB2YXJp YWJsZSAqLworI2RlZmluZSBOTl9JVEVNX1BFUl9WQVIJKEJJVFNfUEVSX0JZVEUgLyBOTl9CSVRT X1BFUl9NRU1CRVIpCisvKiBjb252ZXJ0IG1hcCBwb3NpdGlvbiB0byBieXRlIG9mZnNldCAqLwor I2RlZmluZSBOTl9QT1NfVE9fQllURVMocG9zKQkoKHBvcykgLyBOTl9JVEVNX1BFUl9WQVIpCisv KiBieXRlcyBvZmZzZXQgdG8gbWFwIHBvc2l0aW9uICovCisjZGVmaW5lIE5OX0JZVEVTX1RPX1BP UyhieXRlcykJKChieXRlcykgKiBOTl9JVEVNX1BFUl9WQVIpCisvKiBjYWN1bGF0ZSBzaGlmdCBi aXRzICovCisjZGVmaW5lCU5OX1NISUZUKHBvcykJKChwb3MpICUgTk5fSVRFTV9QRVJfVkFSKSAq IE5OX0JJVFNfUEVSX01FTUJFUgogCiAvKgogICogaW5pdGlhbGl6ZV93aW5kb3dhZ2dyZWdhdGUK QEAgLTk0Miw3ICs5NzcsNyBAQCBldmFsX3dpbmRvd2FnZ3JlZ2F0ZXMoV2luZG93QWdnU3RhdGUg KndpbnN0YXRlKQogCQkgKiBFeGl0IGxvb3AgaWYgbm8gbW9yZSByb3dzIGNhbiBiZSBpbiBmcmFt ZS4gIFNraXAgYWdncmVnYXRpb24gaWYKIAkJICogY3VycmVudCByb3cgaXMgbm90IGluIGZyYW1l IGJ1dCB0aGVyZSBtaWdodCBiZSBtb3JlIGluIHRoZSBmcmFtZS4KIAkJICovCi0JCXJldCA9IHJv d19pc19pbl9mcmFtZSh3aW5zdGF0ZSwgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvLCBhZ2dfcm93 X3Nsb3QpOworCQlyZXQgPSByb3dfaXNfaW5fZnJhbWUoYWdnX3dpbm9iaiwgd2luc3RhdGUtPmFn Z3JlZ2F0ZWR1cHRvLCBhZ2dfcm93X3Nsb3QsIGZhbHNlKTsKIAkJaWYgKHJldCA8IDApCiAJCQli cmVhazsKIAkJaWYgKHJldCA9PSAwKQpAQCAtMTI2Myw2ICsxMjk4LDExIEBAIGJlZ2luX3BhcnRp dGlvbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAKIAkJCXdpbm9iai0+bWFya3BvcyA9IC0x OwogCQkJd2lub2JqLT5zZWVrcG9zID0gLTE7CisKKwkJCS8qIHJlc2V0IG51bGwgbWFwICovCisJ CQlpZiAocGVyZnVuY3N0YXRlLT53aW5vYmotPmlnbm9yZV9udWxscyA9PSBJR05PUkVfTlVMTFMp CisJCQkJbWVtc2V0KHBlcmZ1bmNzdGF0ZS0+d2lub2JqLT5ub3RudWxsX2luZm8sIDAsCisJCQkJ CSAgIE5OX1BPU19UT19CWVRFUyhwZXJmdW5jc3RhdGUtPndpbm9iai0+bnVtX25vdG51bGxfaW5m bykpOwogCQl9CiAJfQogCkBAIC0xNDEyLDggKzE0NTIsOCBAQCByZWxlYXNlX3BhcnRpdGlvbihX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAgKiB0byBvdXIgd2luZG93IGZyYW1pbmcgcnVsZQog ICoKICAqIFRoZSBjYWxsZXIgbXVzdCBoYXZlIGFscmVhZHkgZGV0ZXJtaW5lZCB0aGF0IHRoZSBy b3cgaXMgaW4gdGhlIHBhcnRpdGlvbgotICogYW5kIGZldGNoZWQgaXQgaW50byBhIHNsb3QuICBU aGlzIGZ1bmN0aW9uIGp1c3QgZW5jYXBzdWxhdGVzIHRoZSBmcmFtaW5nCi0gKiBydWxlcy4KKyAq IGFuZCBmZXRjaGVkIGl0IGludG8gYSBzbG90IGlmIGZldGNoX3R1cGxlIGlzIGZhbHNlLgorLiog VGhpcyBmdW5jdGlvbiBqdXN0IGVuY2Fwc3VsYXRlcyB0aGUgZnJhbWluZyBydWxlcy4KICAqCiAg KiBSZXR1cm5zOgogICogLTEsIGlmIHRoZSByb3cgaXMgb3V0IG9mIGZyYW1lIGFuZCBubyBzdWNj ZWVkaW5nIHJvd3MgY2FuIGJlIGluIGZyYW1lCkBAIC0xNDIzLDggKzE0NjMsOSBAQCByZWxlYXNl X3BhcnRpdGlvbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAgKiBNYXkgY2xvYmJlciB3aW5z dGF0ZS0+dGVtcF9zbG90XzIuCiAgKi8KIHN0YXRpYyBpbnQKLXJvd19pc19pbl9mcmFtZShXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcywgVHVwbGVUYWJsZVNsb3QgKnNsb3QpCity b3dfaXNfaW5fZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBUdXBsZVRhYmxl U2xvdCAqc2xvdCwgYm9vbCBmZXRjaF90dXBsZSkKIHsKKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUgPSB3aW5vYmotPndpbnN0YXRlOwogCWludAkJCWZyYW1lT3B0aW9ucyA9IHdpbnN0YXRlLT5m cmFtZU9wdGlvbnM7CiAKIAlBc3NlcnQocG9zID49IDApOwkJCS8qIGVsc2UgY2FsbGVyIGVycm9y ICovCkBAIC0xNDUzLDkgKzE0OTQsMTMgQEAgcm93X2lzX2luX2ZyYW1lKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgaW50NjQgcG9zLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIAkJZWxzZSBpZiAo ZnJhbWVPcHRpb25zICYgKEZSQU1FT1BUSU9OX1JBTkdFIHwgRlJBTUVPUFRJT05fR1JPVVBTKSkK IAkJewogCQkJLyogZm9sbG93aW5nIHJvdyB0aGF0IGlzIG5vdCBwZWVyIGlzIG91dCBvZiBmcmFt ZSAqLwotCQkJaWYgKHBvcyA+IHdpbnN0YXRlLT5jdXJyZW50cG9zICYmCi0JCQkJIWFyZV9wZWVy cyh3aW5zdGF0ZSwgc2xvdCwgd2luc3RhdGUtPnNzLnNzX1NjYW5UdXBsZVNsb3QpKQotCQkJCXJl dHVybiAtMTsKKwkJCWlmIChwb3MgPiB3aW5zdGF0ZS0+Y3VycmVudHBvcykKKwkJCXsKKwkJCQlp ZiAoZmV0Y2hfdHVwbGUpCisJCQkJCXdpbmRvd19nZXR0dXBsZXNsb3Qod2lub2JqLCBwb3MsIHNs b3QpOworCQkJCWlmICghYXJlX3BlZXJzKHdpbnN0YXRlLCBzbG90LCB3aW5zdGF0ZS0+c3Muc3Nf U2NhblR1cGxlU2xvdCkpCisJCQkJCXJldHVybiAtMTsKKwkJCX0KIAkJfQogCQllbHNlCiAJCQlB c3NlcnQoZmFsc2UpOwpAQCAtMjYxOSwxNCArMjY2NCwxNyBAQCBFeGVjSW5pdFdpbmRvd0FnZyhX aW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQkJZWxvZyhFUlJP UiwgIldpbmRvd0Z1bmMgd2l0aCB3aW5yZWYgJXUgYXNzaWduZWQgdG8gV2luZG93QWdnIHdpdGgg d2lucmVmICV1IiwKIAkJCQkgd2Z1bmMtPndpbnJlZiwgbm9kZS0+d2lucmVmKTsKIAotCQkvKiBM b29rIGZvciBhIHByZXZpb3VzIGR1cGxpY2F0ZSB3aW5kb3cgZnVuY3Rpb24gKi8KKwkJLyoKKwkJ ICogTG9vayBmb3IgYSBwcmV2aW91cyBkdXBsaWNhdGUgd2luZG93IGZ1bmN0aW9uLCB3aGljaCBu ZWVkcyB0aGUgc2FtZQorCQkgKiBpZ25vcmVfbnVsbHMgdmFsdWUKKwkJICovCiAJCWZvciAoaSA9 IDA7IGkgPD0gd2Z1bmNubzsgaSsrKQogCQl7CiAJCQlpZiAoZXF1YWwod2Z1bmMsIHBlcmZ1bmNb aV0ud2Z1bmMpICYmCiAJCQkJIWNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zKChOb2RlICopIHdm dW5jKSkKIAkJCQlicmVhazsKIAkJfQotCQlpZiAoaSA8PSB3ZnVuY25vKQorCQlpZiAoaSA8PSB3 ZnVuY25vICYmIHdmdW5jLT5pZ25vcmVfbnVsbHMgPT0gcGVyZnVuY1tpXS5pZ25vcmVfbnVsbHMp CiAJCXsKIAkJCS8qIEZvdW5kIGEgbWF0Y2ggdG8gYW4gZXhpc3RpbmcgZW50cnksIHNvIGp1c3Qg bWFyayBpdCAqLwogCQkJd2Z1bmNzdGF0ZS0+d2Z1bmNubyA9IGk7CkBAIC0yNjc5LDYgKzI3Mjcs OCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBp bnQgZWZsYWdzKQogCQkJd2lub2JqLT5hcmdzdGF0ZXMgPSB3ZnVuY3N0YXRlLT5hcmdzOwogCQkJ d2lub2JqLT5sb2NhbG1lbSA9IE5VTEw7CiAJCQlwZXJmdW5jc3RhdGUtPndpbm9iaiA9IHdpbm9i ajsKKwkJCXdpbm9iai0+aWdub3JlX251bGxzID0gd2Z1bmMtPmlnbm9yZV9udWxsczsKKwkJCWlu aXRfbm90bnVsbF9pbmZvKHdpbm9iaik7CiAKIAkJCS8qIEl0J3MgYSByZWFsIHdpbmRvdyBmdW5j dGlvbiwgc28gc2V0IHVwIHRvIGNhbGwgaXQuICovCiAJCQlmbWdyX2luZm9fY3h0KHdmdW5jLT53 aW5mbm9pZCwgJnBlcmZ1bmNzdGF0ZS0+ZmxpbmZvLApAQCAtMzIxNCwxMiArMzI2NCwyOTAgQEAg d2luZG93X2dldHR1cGxlc2xvdChXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIFR1cGxl VGFibGVTbG90ICpzbG90KQogCXJldHVybiB0cnVlOwogfQogCisvKgorICogZ2V0IHR1cHBsZSBh bmQgZXZhbHVhdGUgaW4gYSBwYXJ0aXRpb24KKyAqLworc3RhdGljIERhdHVtCitnZXR0dXBsZV9l dmFsX3BhcnRpdGlvbihXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCisJCQkJCQlpbnQ2 NCBhYnNfcG9zLCBib29sICppc251bGwsIGJvb2wgKmlzb3V0KQoreworCVdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZTsKKwlFeHByQ29udGV4dCAqZWNvbnRleHQ7CisJVHVwbGVUYWJsZVNsb3QgKnNs b3Q7CisKKwl3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7CisJc2xvdCA9IHdpbnN0YXRlLT50 ZW1wX3Nsb3RfMTsKKwlpZiAoIXdpbmRvd19nZXR0dXBsZXNsb3Qod2lub2JqLCBhYnNfcG9zLCBz bG90KSkKKwl7CisJCS8qIG91dCBvZiBwYXJ0aXRpb24gKi8KKwkJaWYgKGlzb3V0KQorCQkJKmlz b3V0ID0gdHJ1ZTsKKwkJKmlzbnVsbCA9IHRydWU7CisJCXJldHVybiAoRGF0dW0pIDA7CisJfQor CisJaWYgKGlzb3V0KQorCQkqaXNvdXQgPSBmYWxzZTsKKwllY29udGV4dCA9IHdpbnN0YXRlLT5z cy5wcy5wc19FeHByQ29udGV4dDsKKwllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gc2xvdDsK KwlyZXR1cm4gRXhlY0V2YWxFeHByKChFeHByU3RhdGUgKikgbGlzdF9udGgod2lub2JqLT5hcmdz dGF0ZXMsIGFyZ25vKSwKKwkJCQkJCWVjb250ZXh0LCBpc251bGwpOworfQorCisvKgorICogaWdu b3JlbnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUKKyAqIEZvciBJR05PUkUgTlVMTFMsIGdldCB0aGUg bmV4dCBub25udWxsIHZhbHVlIGluIHRoZSBmcmFtZSwgbW92aW5nIGZvcndhcmQKKyAqIG9yIGJh Y2t3YXJkIHVudGlsIHdlIGZpbmQgYSB2YWx1ZSBvciByZWFjaCB0aGUgZnJhbWUncyBlbmQuCisg Ki8KK3N0YXRpYyBEYXR1bQoraWdub3JlbnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUoV2luZG93T2Jq ZWN0IHdpbm9iaiwgaW50IGFyZ25vLAorCQkJCQkJCSAgaW50IHJlbHBvcywgaW50IHNlZWt0eXBl LCBib29sIHNldF9tYXJrLAorCQkJCQkJCSAgYm9vbCAqaXNudWxsLCBib29sICppc291dCkKK3sK KwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisJRXhwckNvbnRleHQgKmVjb250ZXh0OworCVR1 cGxlVGFibGVTbG90ICpzbG90OworCURhdHVtCQlkYXR1bTsKKwlpbnQ2NAkJYWJzX3BvczsKKwlp bnQ2NAkJbWFya19wb3M7CisJaW50CQkJbm90bnVsbF9vZmZzZXQ7CisJaW50CQkJbm90bnVsbF9y ZWxwb3M7CisJaW50CQkJZm9yd2FyZDsKKworCUFzc2VydChXaW5kb3dPYmplY3RJc1ZhbGlkKHdp bm9iaikpOworCXdpbnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKKwllY29udGV4dCA9IHdpbnN0 YXRlLT5zcy5wcy5wc19FeHByQ29udGV4dDsKKwlzbG90ID0gd2luc3RhdGUtPnRlbXBfc2xvdF8x OworCWRhdHVtID0gKERhdHVtKSAwOworCW5vdG51bGxfb2Zmc2V0ID0gMDsKKwlub3RudWxsX3Jl bHBvcyA9IGFicyhyZWxwb3MpOworCisJc3dpdGNoIChzZWVrdHlwZSkKKwl7CisJCWNhc2UgV0lO RE9XX1NFRUtfQ1VSUkVOVDoKKwkJCWVsb2coRVJST1IsICJXSU5ET1dfU0VFS19DVVJSRU5UIGlz IG5vdCBzdXBwb3J0ZWQgZm9yIFdpbkdldEZ1bmNBcmdJbkZyYW1lIik7CisJCQlhYnNfcG9zID0g bWFya19wb3MgPSAwOyAvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCisJCQlicmVhazsKKwkJY2Fz ZSBXSU5ET1dfU0VFS19IRUFEOgorCQkJLyogcmVqZWN0aW5nIHJlbHBvcyA8IDAgaXMgZWFzeSBh bmQgc2ltcGxpZmllcyBjb2RlIGJlbG93ICovCisJCQlpZiAocmVscG9zIDwgMCkKKwkJCQlnb3Rv IG91dF9vZl9mcmFtZTsKKwkJCXVwZGF0ZV9mcmFtZWhlYWRwb3Mod2luc3RhdGUpOworCQkJYWJz X3BvcyA9IHdpbnN0YXRlLT5mcmFtZWhlYWRwb3M7CisJCQltYXJrX3BvcyA9IHdpbnN0YXRlLT5m cmFtZWhlYWRwb3M7CisJCQlmb3J3YXJkID0gMTsKKwkJCWJyZWFrOworCQljYXNlIFdJTkRPV19T RUVLX1RBSUw6CisJCQkvKiByZWplY3RpbmcgcmVscG9zID4gMCBpcyBlYXN5IGFuZCBzaW1wbGlm aWVzIGNvZGUgYmVsb3cgKi8KKwkJCWlmIChyZWxwb3MgPiAwKQorCQkJCWdvdG8gb3V0X29mX2Zy YW1lOworCQkJdXBkYXRlX2ZyYW1ldGFpbHBvcyh3aW5zdGF0ZSk7CisJCQlhYnNfcG9zID0gd2lu c3RhdGUtPmZyYW1ldGFpbHBvcyAtIDE7CisJCQltYXJrX3BvcyA9IDA7CQkvKiBrZWVwIGNvbXBp bGVyIHF1aWV0ICovCisJCQlmb3J3YXJkID0gLTE7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgd2luZG93IHNlZWsgdHlwZTogJWQiLCBzZWVrdHlw ZSk7CisJCQlhYnNfcG9zID0gbWFya19wb3MgPSAwOyAvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICov CisJCQlicmVhazsKKwl9CisKKwkvKgorCSAqIEdldCB0aGUgbmV4dCBub25udWxsIHZhbHVlIGlu IHRoZSBmcmFtZSwgbW92aW5nIGZvcndhcmQgb3IgYmFja3dhcmQKKwkgKiB1bnRpbCB3ZSBmaW5k IGEgdmFsdWUgb3IgcmVhY2ggdGhlIGZyYW1lJ3MgZW5kLgorCSAqLworCWRvCisJeworCQlpbnQJ CQlpbmZyYW1lOworCQlpbnQJCQl2OworCisJCS8qCisJCSAqIENoZWNrIGFwcGFyZW50IG91dCBv ZiBmcmFtZSBjYXNlLiAgV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2Ugd2UKKwkJICogbWF5IG5v dCBjYWxsIHdpbmRvd19nZXR0dXBsZXNsb3QgYmVmb3JlIHJvd19pc19pbl9mcmFtZSwgd2hpY2gK KwkJICogc3VwcG9zZXMgYWJzX3BvcyBpcyBuZXZlciBuZWdhdGl2ZS4KKwkJICovCisJCWlmIChh YnNfcG9zIDwgMCkKKwkJCWdvdG8gb3V0X29mX2ZyYW1lOworCisJCS8qIGNoZWNrIHdoZXRoZXIg cm93IGlzIGluIGZyYW1lICovCisJCWluZnJhbWUgPSByb3dfaXNfaW5fZnJhbWUod2lub2JqLCBh YnNfcG9zLCBzbG90LCB0cnVlKTsKKwkJaWYgKGluZnJhbWUgPT0gLTEpCisJCQlnb3RvIG91dF9v Zl9mcmFtZTsKKwkJZWxzZSBpZiAoaW5mcmFtZSA9PSAwKQorCQkJZ290byBhZHZhbmNlOworCisJ CWlmIChpc291dCkKKwkJCSppc291dCA9IGZhbHNlOworCisJCXYgPSBnZXRfbm90bnVsbF9pbmZv KHdpbm9iaiwgYWJzX3Bvcyk7CisJCWlmICh2ID09IE5OX05VTEwpCQkvKiB0aGlzIHJvdyBpcyBr bm93biB0byBiZSBOVUxMICovCisJCQlnb3RvIGFkdmFuY2U7CisKKwkJZWxzZSBpZiAodiA9PSBO Tl9VTktOT1dOKQkvKiBuZWVkIHRvIGNoZWNrIE5VTEwgb3Igbm90ICovCisJCXsKKwkJCWlmICgh d2luZG93X2dldHR1cGxlc2xvdCh3aW5vYmosIGFic19wb3MsIHNsb3QpKQorCQkJCWdvdG8gb3V0 X29mX2ZyYW1lOworCisJCQllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gc2xvdDsKKwkJCWRh dHVtID0gRXhlY0V2YWxFeHByKAorCQkJCQkJCQkgKEV4cHJTdGF0ZSAqKSBsaXN0X250aCh3aW5v YmotPmFyZ3N0YXRlcywgYXJnbm8pLAorCQkJCQkJCQkgZWNvbnRleHQsIGlzbnVsbCk7CisJCQlp ZiAoISppc251bGwpCisJCQkJbm90bnVsbF9vZmZzZXQrKzsKKworCQkJLyogcmVjb3JkIHRoZSBy b3cgc3RhdHVzICovCisJCQlwdXRfbm90bnVsbF9pbmZvKHdpbm9iaiwgYWJzX3BvcywgKmlzbnVs bCk7CisJCX0KKwkJZWxzZQkJCQkJLyogdGhpcyByb3cgaXMga25vd24gdG8gYmUgTk9UIE5VTEwg Ki8KKwkJeworCQkJbm90bnVsbF9vZmZzZXQrKzsKKwkJCWlmIChub3RudWxsX29mZnNldCA+IG5v dG51bGxfcmVscG9zKQorCQkJeworCQkJCS8qIHRvIHByZXBhcmUgZXhpdGluZyB0aGlzIGxvb3As IGRhdHVtIG5lZWRzIHRvIGJlIHNldCAqLworCQkJCWlmICghd2luZG93X2dldHR1cGxlc2xvdCh3 aW5vYmosIGFic19wb3MsIHNsb3QpKQorCQkJCQlnb3RvIG91dF9vZl9mcmFtZTsKKworCQkJCWVj b250ZXh0LT5lY3h0X291dGVydHVwbGUgPSBzbG90OworCQkJCWRhdHVtID0gRXhlY0V2YWxFeHBy KAorCQkJCQkJCQkJIChFeHByU3RhdGUgKikgbGlzdF9udGgod2lub2JqLT5hcmdzdGF0ZXMsIGFy Z25vKSwKKwkJCQkJCQkJCSBlY29udGV4dCwgaXNudWxsKTsKKwkJCX0KKwkJfQorYWR2YW5jZToK KwkJYWJzX3BvcyArPSBmb3J3YXJkOworCX0gd2hpbGUgKG5vdG51bGxfb2Zmc2V0IDw9IG5vdG51 bGxfcmVscG9zKTsKKworCWlmIChzZXRfbWFyaykKKwkJV2luU2V0TWFya1Bvc2l0aW9uKHdpbm9i aiwgbWFya19wb3MpOworCisJcmV0dXJuIGRhdHVtOworCitvdXRfb2ZfZnJhbWU6CisJaWYgKGlz b3V0KQorCQkqaXNvdXQgPSB0cnVlOworCSppc251bGwgPSB0cnVlOworCXJldHVybiAoRGF0dW0p IDA7Cit9CisKKworLyoKKyAqIGluaXRfbm90bnVsbF9pbmZvCisgKiBJbml0aWFsaXplIG5vbiBu dWxsIG1hcC4KKyAqLworc3RhdGljIHZvaWQKK2luaXRfbm90bnVsbF9pbmZvKFdpbmRvd09iamVj dCB3aW5vYmopCit7CisjZGVmaW5lCUlOSVRfTk9UX05VTExfSU5GT19OVU0JMTI4IC8qIGluaXRp YWwgbnVtYmVyIG9mIG5vdG51bGwgaW5mbyBtZW1iZXJzICovCisKKwlpZiAod2lub2JqLT5pZ25v cmVfbnVsbHMgPT0gUEFSU0VSX0lHTk9SRV9OVUxMUykKKwl7CisJCVNpemUJCXNpemUgPSBOTl9Q T1NfVE9fQllURVMoSU5JVF9OT1RfTlVMTF9JTkZPX05VTSk7CisKKwkJd2lub2JqLT5ub3RudWxs X2luZm8gPSBwYWxsb2MwKHNpemUpOworCQl3aW5vYmotPm51bV9ub3RudWxsX2luZm8gPSBJTklU X05PVF9OVUxMX0lORk9fTlVNOworCX0KK30KKworLyoKKyAqIGdyb3dfbm90bnVsbF9pbmZvCisg KiBleHBhbmQgbm90bnVsbF9pbmZvIGlmIG5lY2Vzc2FyeS4KKyAqIHBvczogbm90IG51bGwgaW5m byBwb3NpdGlvbgorKi8KK3N0YXRpYyB2b2lkCitncm93X25vdG51bGxfaW5mbyhXaW5kb3dPYmpl Y3Qgd2lub2JqLCBpbnQ2NCBwb3MpCit7CisJaWYgKHBvcyA+PSB3aW5vYmotPm51bV9ub3RudWxs X2luZm8pCisJeworCQlmb3IgKDs7KQorCQl7CisJCQlTaXplCQlvbGRzaXplID0gTk5fUE9TX1RP X0JZVEVTKHdpbm9iai0+bnVtX25vdG51bGxfaW5mbyk7CisJCQlTaXplCQluZXdzaXplID0gb2xk c2l6ZSAqIDI7CisKKwkJCXdpbm9iai0+bm90bnVsbF9pbmZvID0KKwkJCQlyZXBhbGxvYzAod2lu b2JqLT5ub3RudWxsX2luZm8sIG9sZHNpemUsIG5ld3NpemUpOworCQkJd2lub2JqLT5udW1fbm90 bnVsbF9pbmZvID0gTk5fQllURVNfVE9fUE9TKG5ld3NpemUpOworCQkJaWYgKHdpbm9iai0+bnVt X25vdG51bGxfaW5mbyA+IHBvcykKKwkJCQlicmVhazsKKwkJfQorCX0KK30KKworLyoKKyAqIGdl dF9ub3RudWxsX2luZm8KKyAqIHJldHJpZXZlIGEgbWFwCisgKiBwb3M6IG1hcCBwb3NpdGlvbgor ICovCitzdGF0aWMgdWludDgKK2dldF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwg aW50NjQgcG9zKQoreworCXVpbnQ4CQltYjsKKwlpbnQ2NAkJYnBvczsKKworCWdyb3dfbm90bnVs bF9pbmZvKHdpbm9iaiwgcG9zKTsKKwlicG9zID0gTk5fUE9TX1RPX0JZVEVTKHBvcyk7CisJbWIg PSB3aW5vYmotPm5vdG51bGxfaW5mb1ticG9zXTsKKwlyZXR1cm4gKG1iID4+IChOTl9TSElGVChw b3MpKSkgJiBOTl9NQVNLOworfQorCisvKgorICogcHV0X25vdG51bGxfaW5mbworICogdXBkYXRl IG1hcAorICogcG9zOiBtYXAgcG9zaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3B1dF9ub3RudWxs X2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBib29sIGlzbnVsbCkKK3sKKwl1 aW50OAkJbWI7CisJaW50NjQJCWJwb3M7CisJdWludDgJCXZhbCA9IGlzbnVsbCA/IE5OX05VTEwg OiBOTl9OT1ROVUxMOworCWludAkJCXNoaWZ0OworCisJZ3Jvd19ub3RudWxsX2luZm8od2lub2Jq LCBwb3MpOworCWJwb3MgPSBOTl9QT1NfVE9fQllURVMocG9zKTsKKwltYiA9IHdpbm9iai0+bm90 bnVsbF9pbmZvW2Jwb3NdOworCXNoaWZ0ID0gTk5fU0hJRlQocG9zKTsKKwltYiAmPSB+KE5OX01B U0sgPDwgc2hpZnQpOwkvKiBjbGVhciBtYXAgKi8KKwltYiB8PSAodmFsIDw8IHNoaWZ0KTsJCS8q IHVwZGF0ZSBtYXAgKi8KKwl3aW5vYmotPm5vdG51bGxfaW5mb1ticG9zXSA9IG1iOworfQogCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKICAqIEFQSSBleHBvc2VkIHRvIHdpbmRvdyBmdW5jdGlvbnMKICAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KIAogCisvKgorICogV2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVu dAorICoJCUNoZWNrIG51bGwgdHJlYXRtZW50IGNsYXVzZSBhbmQgc2V0cyBpZ25vcmVfbnVsbHMK KyAqCisgKiBXaW5kb3cgZnVuY3Rpb25zIHNob3VsZCBjYWxsIHRoaXMgdG8gY2hlY2sgaWYgdGhl eSBhcmUgYmVpbmcgY2FsbGVkIHdpdGgKKyAqIGEgbnVsbCB0cmVhdG1lbnQgY2xhdXNlIHdoZW4g dGhleSBkb24ndCBhbGxvdyBpdCwgb3IgdG8gc2V0IGlnbm9yZV9udWxscy4KKyAqLwordm9pZAor V2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudChXaW5kb3dPYmplY3Qgd2lub2JqLAor CQkJCQkJCQkgICBib29sIGFsbG93TnVsbFRyZWF0bWVudCwKKwkJCQkJCQkJICAgRnVuY3Rpb25D YWxsSW5mbyBmY2luZm8pCit7CisJaWYgKHdpbm9iai0+aWdub3JlX251bGxzICE9IE5PX05VTExU UkVBVE1FTlQgJiYgIWFsbG93TnVsbFRyZWF0bWVudCkKKwl7CisJCUhlYXBUdXBsZQlwcm9jdHVw OworCQlGb3JtX3BnX3Byb2MgcHJvY2Zvcm07CisJCU9pZAkJCWZ1bmNpZDsKKworCQlmdW5jaWQg PSBmY2luZm8tPmZsaW5mby0+Zm5fb2lkOworCQlwcm9jdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFBS T0NPSUQsCisJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShmdW5jaWQpKTsKKwkJaWYgKCFIZWFw VHVwbGVJc1ZhbGlkKHByb2N0dXApKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIGZ1bmN0aW9uICV1IiwgZnVuY2lkKTsKKwkJcHJvY2Zvcm0gPSAoRm9ybV9wZ19wcm9j KSBHRVRTVFJVQ1QocHJvY3R1cCk7CisJCWVsb2coRVJST1IsICJmdW5jdGlvbiAlcyBkb2VzIG5v dCBhbGxvdyBSRVNQRUNUL0lHTk9SRSBOVUxMUyIsCisJCQkgTmFtZVN0cihwcm9jZm9ybS0+cHJv bmFtZSkpOworCX0KKwllbHNlIGlmICh3aW5vYmotPmlnbm9yZV9udWxscyA9PSBQQVJTRVJfSUdO T1JFX05VTExTKQorCQl3aW5vYmotPmlnbm9yZV9udWxscyA9IElHTk9SRV9OVUxMUzsKKworfQor CiAvKgogICogV2luR2V0UGFydGl0aW9uTG9jYWxNZW1vcnkKICAqCQlHZXQgd29ya2luZyBtZW1v cnkgdGhhdCBsaXZlcyB0aWxsIGVuZCBvZiBwYXJ0aXRpb24gcHJvY2Vzc2luZwpAQCAtMzM3OCwy MyArMzcwNiwzNyBAQCBXaW5HZXRGdW5jQXJnSW5QYXJ0aXRpb24oV2luZG93T2JqZWN0IHdpbm9i aiwgaW50IGFyZ25vLAogCQkJCQkJIGJvb2wgKmlzbnVsbCwgYm9vbCAqaXNvdXQpCiB7CiAJV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlOwotCUV4cHJDb250ZXh0ICplY29udGV4dDsKLQlUdXBsZVRh YmxlU2xvdCAqc2xvdDsKLQlib29sCQlnb3R0dXBsZTsKIAlpbnQ2NAkJYWJzX3BvczsKKwlEYXR1 bQkJZGF0dW07CisJYm9vbAkJbnVsbF90cmVhdG1lbnQgPSBmYWxzZTsKKwlpbnQJCQlub3RudWxs X29mZnNldDsKKwlpbnQJCQlub3RudWxsX3JlbHBvczsKKwlpbnQJCQlmb3J3YXJkOwogCiAJQXNz ZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7CiAJd2luc3RhdGUgPSB3aW5vYmotPndp bnN0YXRlOwotCWVjb250ZXh0ID0gd2luc3RhdGUtPnNzLnBzLnBzX0V4cHJDb250ZXh0OwotCXNs b3QgPSB3aW5zdGF0ZS0+dGVtcF9zbG90XzE7CisKKwlpZiAod2lub2JqLT5pZ25vcmVfbnVsbHMg PT0gSUdOT1JFX05VTExTICYmIHJlbHBvcyAhPSAwKQorCXsKKwkJbnVsbF90cmVhdG1lbnQgPSB0 cnVlOworCQlub3RudWxsX29mZnNldCA9IDA7CisJCW5vdG51bGxfcmVscG9zID0gYWJzKHJlbHBv cyk7CisJCWZvcndhcmQgPSByZWxwb3MgPiAwID8gMSA6IC0xOworCX0KIAogCXN3aXRjaCAoc2Vl a3R5cGUpCiAJewogCQljYXNlIFdJTkRPV19TRUVLX0NVUlJFTlQ6Ci0JCQlhYnNfcG9zID0gd2lu c3RhdGUtPmN1cnJlbnRwb3MgKyByZWxwb3M7CisJCQlpZiAobnVsbF90cmVhdG1lbnQpCisJCQkJ YWJzX3BvcyA9IHdpbnN0YXRlLT5jdXJyZW50cG9zOworCQkJZWxzZQorCQkJCWFic19wb3MgPSB3 aW5zdGF0ZS0+Y3VycmVudHBvcyArIHJlbHBvczsKIAkJCWJyZWFrOwogCQljYXNlIFdJTkRPV19T RUVLX0hFQUQ6Ci0JCQlhYnNfcG9zID0gcmVscG9zOworCQkJaWYgKG51bGxfdHJlYXRtZW50KQor CQkJCWFic19wb3MgPSAwOworCQkJZWxzZQorCQkJCWFic19wb3MgPSByZWxwb3M7CiAJCQlicmVh azsKIAkJY2FzZSBXSU5ET1dfU0VFS19UQUlMOgogCQkJc3Bvb2xfdHVwbGVzKHdpbnN0YXRlLCAt MSk7CkBAIC0zNDA2LDI1ICszNzQ4LDY3IEBAIFdpbkdldEZ1bmNBcmdJblBhcnRpdGlvbihXaW5k b3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCiAJCQlicmVhazsKIAl9CiAKLQlnb3R0dXBsZSA9 IHdpbmRvd19nZXR0dXBsZXNsb3Qod2lub2JqLCBhYnNfcG9zLCBzbG90KTsKLQotCWlmICghZ290 dHVwbGUpCi0JewotCQlpZiAoaXNvdXQpCi0JCQkqaXNvdXQgPSB0cnVlOwotCQkqaXNudWxsID0g dHJ1ZTsKLQkJcmV0dXJuIChEYXR1bSkgMDsKLQl9Ci0JZWxzZQorCWlmICghbnVsbF90cmVhdG1l bnQpCQkvKiBJR05PUkUgTlVMTFMgaXMgbm90IHNwZWNpZmllZCAqLwogCXsKLQkJaWYgKGlzb3V0 KQotCQkJKmlzb3V0ID0gZmFsc2U7Ci0JCWlmIChzZXRfbWFyaykKKwkJZGF0dW0gPSBnZXR0dXBs ZV9ldmFsX3BhcnRpdGlvbih3aW5vYmosIGFyZ25vLAorCQkJCQkJCQkJCWFic19wb3MsIGlzbnVs bCwgaXNvdXQpOworCQlpZiAoISppc291dCAmJiBzZXRfbWFyaykKIAkJCVdpblNldE1hcmtQb3Np dGlvbih3aW5vYmosIGFic19wb3MpOwotCQllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gc2xv dDsKLQkJcmV0dXJuIEV4ZWNFdmFsRXhwcigoRXhwclN0YXRlICopIGxpc3RfbnRoKHdpbm9iai0+ YXJnc3RhdGVzLCBhcmdubyksCi0JCQkJCQkJZWNvbnRleHQsIGlzbnVsbCk7CisJCXJldHVybiBk YXR1bTsKIAl9CisKKwkvKgorCSAqIEdldCB0aGUgbmV4dCBub25udWxsIHZhbHVlIGluIHRoZSBw YXJ0aXRpb24sIG1vdmluZyBmb3J3YXJkIG9yIGJhY2t3YXJkCisJICogdW50aWwgd2UgZmluZCBh IHZhbHVlIG9yIHJlYWNoIHRoZSBwYXJ0aXRpb24ncyBlbmQuCisJICovCisJZG8KKwl7CisJCWFi c19wb3MgKz0gZm9yd2FyZDsKKwkJaWYgKGFic19wb3MgPCAwKQorCQl7CisJCQkvKiBvdXQgb2Yg cGFydGl0aW9uICovCisJCQlpZiAoaXNvdXQpCisJCQkJKmlzb3V0ID0gdHJ1ZTsKKwkJCSppc251 bGwgPSB0cnVlOworCQkJZGF0dW0gPSAwOworCQkJYnJlYWs7CisJCX0KKworCQlzd2l0Y2ggKGdl dF9ub3RudWxsX2luZm8od2lub2JqLCBhYnNfcG9zKSkKKwkJeworCQkJY2FzZSBOTl9OT1ROVUxM OgkvKiB0aGlzIHJvdyBpcyBrbm93biB0byBiZSBOT1QgTlVMTCAqLworCQkJCW5vdG51bGxfb2Zm c2V0Kys7CisJCQkJaWYgKG5vdG51bGxfb2Zmc2V0ID49IG5vdG51bGxfcmVscG9zKQorCQkJCXsK KwkJCQkJLyogcHJlcGFyZSB0byBleGl0IHRoaXMgbG9vcCAqLworCQkJCQlkYXR1bSA9IGdldHR1 cGxlX2V2YWxfcGFydGl0aW9uKHdpbm9iaiwgYXJnbm8sCisJCQkJCQkJCQkJCQkJYWJzX3Bvcywg aXNudWxsLCBpc291dCk7CisJCQkJfQorCQkJCWJyZWFrOworCQkJY2FzZSBOTl9OVUxMOgkJLyog dGhpcyByb3cgaXMga25vd24gdG8gYmUgTlVMTCAqLworCQkJCWlmIChpc291dCkKKwkJCQkJKmlz b3V0ID0gZmFsc2U7CisJCQkJKmlzbnVsbCA9IHRydWU7CisJCQkJZGF0dW0gPSAwOworCQkJCWJy ZWFrOworCQkJZGVmYXVsdDoJCQkvKiBuZWVkIHRvIGNoZWNrIE5VTEwgb3Igbm90ICovCisJCQkJ ZGF0dW0gPSBnZXR0dXBsZV9ldmFsX3BhcnRpdGlvbih3aW5vYmosIGFyZ25vLAorCQkJCQkJCQkJ CQkJYWJzX3BvcywgaXNudWxsLCBpc291dCk7CisJCQkJaWYgKCppc291dCkJCS8qIG91dCBvZiBw YXJ0aXRpb24/ICovCisJCQkJCXJldHVybiBkYXR1bTsKKworCQkJCWlmICghKmlzbnVsbCkKKwkJ CQkJbm90bnVsbF9vZmZzZXQrKzsKKwkJCQkvKiByZWNvcmQgdGhlIHJvdyBzdGF0dXMgKi8KKwkJ CQlwdXRfbm90bnVsbF9pbmZvKHdpbm9iaiwgYWJzX3BvcywgKmlzbnVsbCk7CisJCQkJYnJlYWs7 CisJCX0KKwl9IHdoaWxlIChub3RudWxsX29mZnNldCA8IG5vdG51bGxfcmVscG9zKTsKKworCWlm ICghKmlzb3V0ICYmIHNldF9tYXJrKQorCQlXaW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBhYnNf cG9zKTsKKworCXJldHVybiBkYXR1bTsKIH0KIAogLyoKQEAgLTM0NzYsNiArMzg2MCwxMCBAQCBX aW5HZXRGdW5jQXJnSW5GcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCiAJZWNv bnRleHQgPSB3aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQ7CiAJc2xvdCA9IHdpbnN0YXRl LT50ZW1wX3Nsb3RfMTsKIAorCWlmICh3aW5vYmotPmlnbm9yZV9udWxscyA9PSBJR05PUkVfTlVM TFMpCisJCXJldHVybiBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZSh3aW5vYmosIGFyZ25v LCByZWxwb3MsIHNlZWt0eXBlLAorCQkJCQkJCQkJCQkgc2V0X21hcmssIGlzbnVsbCwgaXNvdXQp OworCiAJc3dpdGNoIChzZWVrdHlwZSkKIAl7CiAJCWNhc2UgV0lORE9XX1NFRUtfQ1VSUkVOVDoK QEAgLTM2MjQsNyArNDAxMiw3IEBAIFdpbkdldEZ1bmNBcmdJbkZyYW1lKFdpbmRvd09iamVjdCB3 aW5vYmosIGludCBhcmdubywKIAkJZ290byBvdXRfb2ZfZnJhbWU7CiAKIAkvKiBUaGUgY29kZSBh Ym92ZSBkb2VzIG5vdCBkZXRlY3QgYWxsIG91dC1vZi1mcmFtZSBjYXNlcywgc28gY2hlY2sgKi8K LQlpZiAocm93X2lzX2luX2ZyYW1lKHdpbnN0YXRlLCBhYnNfcG9zLCBzbG90KSA8PSAwKQorCWlm IChyb3dfaXNfaW5fZnJhbWUod2lub2JqLCBhYnNfcG9zLCBzbG90LCBmYWxzZSkgPD0gMCkKIAkJ Z290byBvdXRfb2ZfZnJhbWU7CiAKIAlpZiAoaXNvdXQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dm dW5jcy5jCmluZGV4IGJiMzVmM2JjNGE5Li45NjlmMDJhYTU5YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3dpbmRvd2Z1bmNzLmMKQEAgLTg2LDYgKzg2LDcgQEAgd2luZG93X3Jvd19udW1iZXIoUEdfRlVO Q1RJT05fQVJHUykKIAlXaW5kb3dPYmplY3Qgd2lub2JqID0gUEdfV0lORE9XX09CSkVDVCgpOwog CWludDY0CQljdXJwb3MgPSBXaW5HZXRDdXJyZW50UG9zaXRpb24od2lub2JqKTsKIAorCVdpbkNo ZWNrQW5kSW5pdGlhbGl6ZU51bGxUcmVhdG1lbnQod2lub2JqLCBmYWxzZSwgZmNpbmZvKTsKIAlX aW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBjdXJwb3MpOwogCVBHX1JFVFVSTl9JTlQ2NChjdXJw b3MgKyAxKTsKIH0KQEAgLTE0MSw2ICsxNDIsNyBAQCB3aW5kb3dfcmFuayhQR19GVU5DVElPTl9B UkdTKQogCXJhbmtfY29udGV4dCAqY29udGV4dDsKIAlib29sCQl1cDsKIAorCVdpbkNoZWNrQW5k SW5pdGlhbGl6ZU51bGxUcmVhdG1lbnQod2lub2JqLCBmYWxzZSwgZmNpbmZvKTsKIAl1cCA9IHJh bmtfdXAod2lub2JqKTsKIAljb250ZXh0ID0gKHJhbmtfY29udGV4dCAqKQogCQlXaW5HZXRQYXJ0 aXRpb25Mb2NhbE1lbW9yeSh3aW5vYmosIHNpemVvZihyYW5rX2NvbnRleHQpKTsKQEAgLTIwMyw2 ICsyMDUsNyBAQCB3aW5kb3dfZGVuc2VfcmFuayhQR19GVU5DVElPTl9BUkdTKQogCXJhbmtfY29u dGV4dCAqY29udGV4dDsKIAlib29sCQl1cDsKIAorCVdpbkNoZWNrQW5kSW5pdGlhbGl6ZU51bGxU cmVhdG1lbnQod2lub2JqLCBmYWxzZSwgZmNpbmZvKTsKIAl1cCA9IHJhbmtfdXAod2lub2JqKTsK IAljb250ZXh0ID0gKHJhbmtfY29udGV4dCAqKQogCQlXaW5HZXRQYXJ0aXRpb25Mb2NhbE1lbW9y eSh3aW5vYmosIHNpemVvZihyYW5rX2NvbnRleHQpKTsKQEAgLTI2Niw2ICsyNjksNyBAQCB3aW5k b3dfcGVyY2VudF9yYW5rKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCXRvdGFscm93cyA9IFdp bkdldFBhcnRpdGlvblJvd0NvdW50KHdpbm9iaik7CiAKIAlBc3NlcnQodG90YWxyb3dzID4gMCk7 CisJV2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudCh3aW5vYmosIGZhbHNlLCBmY2lu Zm8pOwogCiAJdXAgPSByYW5rX3VwKHdpbm9iaik7CiAJY29udGV4dCA9IChyYW5rX2NvbnRleHQg KikKQEAgLTMzNSw2ICszMzksNyBAQCB3aW5kb3dfY3VtZV9kaXN0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJaW50NjQJCXRvdGFscm93cyA9IFdpbkdldFBhcnRpdGlvblJvd0NvdW50KHdpbm9iaik7CiAK IAlBc3NlcnQodG90YWxyb3dzID4gMCk7CisJV2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0 bWVudCh3aW5vYmosIGZhbHNlLCBmY2luZm8pOwogCiAJdXAgPSByYW5rX3VwKHdpbm9iaik7CiAJ Y29udGV4dCA9IChyYW5rX2NvbnRleHQgKikKQEAgLTQxMyw2ICs0MTgsNyBAQCB3aW5kb3dfbnRp bGUoUEdfRlVOQ1RJT05fQVJHUykKIAlXaW5kb3dPYmplY3Qgd2lub2JqID0gUEdfV0lORE9XX09C SkVDVCgpOwogCW50aWxlX2NvbnRleHQgKmNvbnRleHQ7CiAKKwlXaW5DaGVja0FuZEluaXRpYWxp emVOdWxsVHJlYXRtZW50KHdpbm9iaiwgZmFsc2UsIGZjaW5mbyk7CiAJY29udGV4dCA9IChudGls ZV9jb250ZXh0ICopCiAJCVdpbkdldFBhcnRpdGlvbkxvY2FsTWVtb3J5KHdpbm9iaiwgc2l6ZW9m KG50aWxlX2NvbnRleHQpKTsKIApAQCAtNTM1LDYgKzU0MSw3IEBAIGxlYWRsYWdfY29tbW9uKEZ1 bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAogCWJvb2wJCWlzbnVsbDsKIAlib29sCQlpc291dDsKIAor CVdpbkNoZWNrQW5kSW5pdGlhbGl6ZU51bGxUcmVhdG1lbnQod2lub2JqLCB0cnVlLCBmY2luZm8p OwogCWlmICh3aXRob2Zmc2V0KQogCXsKIAkJb2Zmc2V0ID0gRGF0dW1HZXRJbnQzMihXaW5HZXRG dW5jQXJnQ3VycmVudCh3aW5vYmosIDEsICZpc251bGwpKTsKQEAgLTY1Miw2ICs2NTksNyBAQCB3 aW5kb3dfZmlyc3RfdmFsdWUoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmVzdWx0OwogCWJv b2wJCWlzbnVsbDsKIAorCVdpbkNoZWNrQW5kSW5pdGlhbGl6ZU51bGxUcmVhdG1lbnQod2lub2Jq LCB0cnVlLCBmY2luZm8pOwogCXJlc3VsdCA9IFdpbkdldEZ1bmNBcmdJbkZyYW1lKHdpbm9iaiwg MCwKIAkJCQkJCQkJICAwLCBXSU5ET1dfU0VFS19IRUFELCB0cnVlLAogCQkJCQkJCQkgICZpc251 bGwsIE5VTEwpOwpAQCAtNjczLDYgKzY4MSw3IEBAIHdpbmRvd19sYXN0X3ZhbHVlKFBHX0ZVTkNU SU9OX0FSR1MpCiAJRGF0dW0JCXJlc3VsdDsKIAlib29sCQlpc251bGw7CiAKKwlXaW5DaGVja0Fu ZEluaXRpYWxpemVOdWxsVHJlYXRtZW50KHdpbm9iaiwgdHJ1ZSwgZmNpbmZvKTsKIAlyZXN1bHQg PSBXaW5HZXRGdW5jQXJnSW5GcmFtZSh3aW5vYmosIDAsCiAJCQkJCQkJCSAgMCwgV0lORE9XX1NF RUtfVEFJTCwgdHJ1ZSwKIAkJCQkJCQkJICAmaXNudWxsLCBOVUxMKTsKQEAgLTY5Niw2ICs3MDUs NyBAQCB3aW5kb3dfbnRoX3ZhbHVlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJYm9vbAkJaXNudWxsOwog CWludDMyCQludGg7CiAKKwlXaW5DaGVja0FuZEluaXRpYWxpemVOdWxsVHJlYXRtZW50KHdpbm9i aiwgdHJ1ZSwgZmNpbmZvKTsKIAludGggPSBEYXR1bUdldEludDMyKFdpbkdldEZ1bmNBcmdDdXJy ZW50KHdpbm9iaiwgMSwgJmlzbnVsbCkpOwogCWlmIChpc251bGwpCiAJCVBHX1JFVFVSTl9OVUxM KCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS93aW5kb3dhcGkuaCBiL3NyYy9pbmNsdWRlL3dp bmRvd2FwaS5oCmluZGV4IGNiMmVjZTE2NmI2Li4yMGNmZDllOWRkOSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvd2luZG93YXBpLmgKKysrIGIvc3JjL2luY2x1ZGUvd2luZG93YXBpLmgKQEAgLTI4 LDYgKzI4LDggQEAKICNpZm5kZWYgV0lORE9XQVBJX0gKICNkZWZpbmUgV0lORE9XQVBJX0gKIAor I2luY2x1ZGUgImZtZ3IuaCIKKwogLyogdmFsdWVzIG9mICJzZWVrdHlwZSIgKi8KICNkZWZpbmUg V0lORE9XX1NFRUtfQ1VSUkVOVCAwCiAjZGVmaW5lIFdJTkRPV19TRUVLX0hFQUQgMQpAQCAtNDEs NiArNDMsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93T2JqZWN0RGF0YSAqV2luZG93T2JqZWN0 OwogI2RlZmluZSBXaW5kb3dPYmplY3RJc1ZhbGlkKHdpbm9iaikgXAogCSgod2lub2JqKSAhPSBO VUxMICYmIElzQSh3aW5vYmosIFdpbmRvd09iamVjdERhdGEpKQogCitleHRlcm4gdm9pZCBXaW5D aGVja0FuZEluaXRpYWxpemVOdWxsVHJlYXRtZW50KFdpbmRvd09iamVjdCB3aW5vYmosCisJCQkJ CQkJCQkJCSAgIGJvb2wgYWxsb3dOdWxsVHJlYXRtZW50LAorCQkJCQkJCQkJCQkgICBGdW5jdGlv bkNhbGxJbmZvIGZjaW5mbyk7CisKIGV4dGVybiB2b2lkICpXaW5HZXRQYXJ0aXRpb25Mb2NhbE1l bW9yeShXaW5kb3dPYmplY3Qgd2lub2JqLCBTaXplIHN6KTsKIAogZXh0ZXJuIGludDY0IFdpbkdl dEN1cnJlbnRQb3NpdGlvbihXaW5kb3dPYmplY3Qgd2lub2JqKTsKLS0gCjIuMjUuMQoK ----Next_Part(Sat_Aug_16_18_33_29_2025_218)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v18-0005-Modify-documents-to-add-null-treatment-clause.patch" RnJvbSBmMzhhMWZkOWVjYmFiYmU2ZmU5NzVlMDM5ZDdiMjk5MzFhMjgzMWUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDE2IEF1ZyAyMDI1IDE4OjI5OjIzICswOTAwClN1YmplY3Q6IFtQQVRDSCB2MTgg NS82XSBNb2RpZnkgZG9jdW1lbnRzIHRvIGFkZCBudWxsIHRyZWF0bWVudCBjbGF1c2UuCgotLS0K IGRvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwgfCAzOCArKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAxNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21s IGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbAppbmRleCBjY2UwMTY1Yjk1Mi4u YmNmNzU1YzllYmMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbApAQCAtMTQwLDcgKzE0 MCw3IEBACiAgICAgICAgIDwvaW5kZXh0ZXJtPgogICAgICAgICA8ZnVuY3Rpb24+bGFnPC9mdW5j dGlvbj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWNvbXBhdGlibGU8 L3R5cGU+CiAgICAgICAgICAgPG9wdGlvbmFsPiwgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRl cj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4KLSAgICAgICAgICA8b3B0aW9uYWw+LCA8cGFyYW1ldGVy PmRlZmF1bHQ8L3BhcmFtZXRlcj4gPHR5cGU+YW55Y29tcGF0aWJsZTwvdHlwZT4gPC9vcHRpb25h bD48L29wdGlvbmFsPiApCisgICAgICAgICAgPG9wdGlvbmFsPiwgPHBhcmFtZXRlcj5kZWZhdWx0 PC9wYXJhbWV0ZXI+IDx0eXBlPmFueWNvbXBhdGlibGU8L3R5cGU+IDwvb3B0aW9uYWw+PC9vcHRp b25hbD4gKSA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+bnVsbCB0cmVhdG1lbnQ8L3BhcmFtZXRlcj4g PC9vcHRpb25hbD4KICAgICAgICAgPHJldHVybnZhbHVlPmFueWNvbXBhdGlibGU8L3JldHVybnZh bHVlPgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KQEAgLTE2NSw3ICsxNjUsNyBAQAog ICAgICAgICA8L2luZGV4dGVybT4KICAgICAgICAgPGZ1bmN0aW9uPmxlYWQ8L2Z1bmN0aW9uPiAo IDxwYXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gPHR5cGU+YW55Y29tcGF0aWJsZTwvdHlwZT4K ICAgICAgICAgICA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiA8dHlw ZT5pbnRlZ2VyPC90eXBlPgotICAgICAgICAgIDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+ZGVmYXVs dDwvcGFyYW1ldGVyPiA8dHlwZT5hbnljb21wYXRpYmxlPC90eXBlPiA8L29wdGlvbmFsPjwvb3B0 aW9uYWw+ICkKKyAgICAgICAgICA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPmRlZmF1bHQ8L3BhcmFt ZXRlcj4gPHR5cGU+YW55Y29tcGF0aWJsZTwvdHlwZT4gPC9vcHRpb25hbD48L29wdGlvbmFsPiAp IDxvcHRpb25hbD4gPHBhcmFtZXRlcj5udWxsIHRyZWF0bWVudDwvcGFyYW1ldGVyPiA8L29wdGlv bmFsPgogICAgICAgICA8cmV0dXJudmFsdWU+YW55Y29tcGF0aWJsZTwvcmV0dXJudmFsdWU+CiAg ICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgpAQCAtMTg4LDcgKzE4OCw3IEBACiAgICAgICAg IDxpbmRleHRlcm0+CiAgICAgICAgICA8cHJpbWFyeT5maXJzdF92YWx1ZTwvcHJpbWFyeT4KICAg ICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxmdW5jdGlvbj5maXJzdF92YWx1ZTwvZnVuY3Rp b24+ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnllbGVtZW50PC90eXBl PiApCisgICAgICAgIDxmdW5jdGlvbj5maXJzdF92YWx1ZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRl cj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiApIDxvcHRpb25hbD4g PHBhcmFtZXRlcj5udWxsIHRyZWF0bWVudDwvcGFyYW1ldGVyPiA8L29wdGlvbmFsPgogICAgICAg ICA8cmV0dXJudmFsdWU+YW55ZWxlbWVudDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgog ICAgICAgIDxwYXJhPgpAQCAtMjAyLDcgKzIwMiw3IEBACiAgICAgICAgIDxpbmRleHRlcm0+CiAg ICAgICAgICA8cHJpbWFyeT5sYXN0X3ZhbHVlPC9wcmltYXJ5PgogICAgICAgICA8L2luZGV4dGVy bT4KLSAgICAgICAgPGZ1bmN0aW9uPmxhc3RfdmFsdWU8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+ dmFsdWU8L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4gKQorICAgICAgICA8ZnVu Y3Rpb24+bGFzdF92YWx1ZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVy PiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiApIDxvcHRpb25hbD4gPHBhcmFtZXRlcj5udWxsIHRy ZWF0bWVudDwvcGFyYW1ldGVyPiA8L29wdGlvbmFsPgogICAgICAgICA8cmV0dXJudmFsdWU+YW55 ZWxlbWVudDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgpAQCAt MjE2LDcgKzIxNiw3IEBACiAgICAgICAgIDxpbmRleHRlcm0+CiAgICAgICAgICA8cHJpbWFyeT5u dGhfdmFsdWU8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgICA8ZnVuY3Rp b24+bnRoX3ZhbHVlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0 eXBlPmFueWVsZW1lbnQ8L3R5cGU+LCA8cGFyYW1ldGVyPm48L3BhcmFtZXRlcj4gPHR5cGU+aW50 ZWdlcjwvdHlwZT4gKQorICAgICAgICA8ZnVuY3Rpb24+bnRoX3ZhbHVlPC9mdW5jdGlvbj4gKCA8 cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+LCA8cGFy YW1ldGVyPm48L3BhcmFtZXRlcj4gPHR5cGU+aW50ZWdlcjwvdHlwZT4gKSA8b3B0aW9uYWw+IDxw YXJhbWV0ZXI+bnVsbCB0cmVhdG1lbnQ8L3BhcmFtZXRlcj4gPC9vcHRpb25hbD4KICAgICAgICAg PHJldHVybnZhbHVlPmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KICAg ICAgICA8cGFyYT4KQEAgLTI2NSwxOCArMjY1LDI2IEBACiAgICBPdGhlciBmcmFtZSBzcGVjaWZp Y2F0aW9ucyBjYW4gYmUgdXNlZCB0byBvYnRhaW4gb3RoZXIgZWZmZWN0cy4KICAgPC9wYXJhPgog CisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPm51bGwgdHJlYXRtZW50PC9saXRlcmFsPiBvcHRp b24gbXVzdCBiZSBvbmUgb2Y6Cis8c3lub3BzaXM+CisgIFJFU1BFQ1QgTlVMTFMKKyAgSUdOT1JF IE5VTExTCis8L3N5bm9wc2lzPgorICAgSWYgdW5zcGVjaWZpZWQsIHRoZSBkZWZhdWx0IGlzIDxs aXRlcmFsPlJFU1BFQ1QgTlVMTFM8L2xpdGVyYWw+IHdoaWNoIGluY2x1ZGVzIE5VTEwKKyAgIHZh bHVlcyBpbiBhbnkgcmVzdWx0IGNhbGN1bGF0aW9uLiA8bGl0ZXJhbD5JR05PUkUgTlVMTFM8L2xp dGVyYWw+IGlnbm9yZXMgTlVMTCB2YWx1ZXMuCisgICBUaGlzIG9wdGlvbiBpcyBvbmx5IGFsbG93 ZWQgZm9yIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOiA8ZnVuY3Rpb24+bGFnPC9mdW5jdGlvbj4s CisgICA8ZnVuY3Rpb24+bGVhZDwvZnVuY3Rpb24+LCA8ZnVuY3Rpb24+Zmlyc3RfdmFsdWU8L2Z1 bmN0aW9uPiwgPGZ1bmN0aW9uPmxhc3RfdmFsdWU8L2Z1bmN0aW9uPiwKKyAgIDxmdW5jdGlvbj5u dGhfdmFsdWU8L2Z1bmN0aW9uPi4KKyAgPC9wYXJhPgorCiAgIDxub3RlPgogICAgPHBhcmE+Ci0g ICAgVGhlIFNRTCBzdGFuZGFyZCBkZWZpbmVzIGEgPGxpdGVyYWw+UkVTUEVDVCBOVUxMUzwvbGl0 ZXJhbD4gb3IKLSAgICA8bGl0ZXJhbD5JR05PUkUgTlVMTFM8L2xpdGVyYWw+IG9wdGlvbiBmb3Ig PGZ1bmN0aW9uPmxlYWQ8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPmxhZzwvZnVuY3Rpb24+LAotICAg IDxmdW5jdGlvbj5maXJzdF92YWx1ZTwvZnVuY3Rpb24+LCA8ZnVuY3Rpb24+bGFzdF92YWx1ZTwv ZnVuY3Rpb24+LCBhbmQKLSAgICA8ZnVuY3Rpb24+bnRoX3ZhbHVlPC9mdW5jdGlvbj4uICBUaGlz IGlzIG5vdCBpbXBsZW1lbnRlZCBpbgotICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT46IHRoZSBiZWhhdmlvciBpcyBhbHdheXMgdGhlCi0gICAgc2FtZSBhcyB0aGUgc3Rh bmRhcmQncyBkZWZhdWx0LCBuYW1lbHkgPGxpdGVyYWw+UkVTUEVDVCBOVUxMUzwvbGl0ZXJhbD4u Ci0gICAgTGlrZXdpc2UsIHRoZSBzdGFuZGFyZCdzIDxsaXRlcmFsPkZST00gRklSU1Q8L2xpdGVy YWw+IG9yIDxsaXRlcmFsPkZST00gTEFTVDwvbGl0ZXJhbD4KLSAgICBvcHRpb24gZm9yIDxmdW5j dGlvbj5udGhfdmFsdWU8L2Z1bmN0aW9uPiBpcyBub3QgaW1wbGVtZW50ZWQ6IG9ubHkgdGhlCi0g ICAgZGVmYXVsdCA8bGl0ZXJhbD5GUk9NIEZJUlNUPC9saXRlcmFsPiBiZWhhdmlvciBpcyBzdXBw b3J0ZWQuICAoWW91IGNhbiBhY2hpZXZlCi0gICAgdGhlIHJlc3VsdCBvZiA8bGl0ZXJhbD5GUk9N IExBU1Q8L2xpdGVyYWw+IGJ5IHJldmVyc2luZyB0aGUgPGxpdGVyYWw+T1JERVIgQlk8L2xpdGVy YWw+CisgICAgVGhlIFNRTCBzdGFuZGFyZCBkZWZpbmVzIGEgPGxpdGVyYWw+RlJPTSBGSVJTVDwv bGl0ZXJhbD4gb3IgPGxpdGVyYWw+RlJPTSBMQVNUPC9saXRlcmFsPgorICAgIG9wdGlvbiBmb3Ig PGZ1bmN0aW9uPm50aF92YWx1ZTwvZnVuY3Rpb24+LiBUaGlzIGlzIG5vdCBpbXBsZW1lbnRlZCBp bgorICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT46IG9ubHkgdGhlIGRl ZmF1bHQgPGxpdGVyYWw+RlJPTSBGSVJTVDwvbGl0ZXJhbD4KKyAgICBiZWhhdmlvciBpcyBzdXBw b3J0ZWQuIChZb3UgY2FuIGFjaGlldmUgdGhlIHJlc3VsdCBvZiA8bGl0ZXJhbD5GUk9NIExBU1Q8 L2xpdGVyYWw+IGJ5CisgICAgcmV2ZXJzaW5nIHRoZSA8bGl0ZXJhbD5PUkRFUiBCWTwvbGl0ZXJh bD4KICAgICBvcmRlcmluZy4pCiAgICA8L3BhcmE+CiAgIDwvbm90ZT4KLS0gCjIuMjUuMQoK ----Next_Part(Sat_Aug_16_18_33_29_2025_218)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v18-0006-Modify-window-function-regression-tests-to-test-.patch" RnJvbSBjOWIwOWJkNjRhNDNjNDE1NTM4MGVhYmQ2NzQzM2E5MTk2NjU4OGZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBTYXQsIDE2IEF1ZyAyMDI1IDE4OjI5OjIzICswOTAwClN1YmplY3Q6IFtQQVRDSCB2MTgg Ni82XSBNb2RpZnkgd2luZG93IGZ1bmN0aW9uIHJlZ3Jlc3Npb24gdGVzdHMgdG8gdGVzdCBudWxs CiB0cmVhdG1lbnQgY2xhdXNlLgoKLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpbmRv dy5vdXQgfCAzMTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC93aW5kb3cuc3FsICAgICAgfCAxNDcgKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCA0NTggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvd2luZG93Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2luZG93Lm91dAppbmRl eCBiODZiNjY4ZjQzMy4uZjkyOWQ4MWJjOGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvd2luZG93Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpbmRv dy5vdXQKQEAgLTU0NTMsMyArNTQ1MywzMTQgQEAgU0VMRUNUICogRlJPTSBwZ190ZW1wLmYoMik7 CiAgezV9CiAoNSByb3dzKQogCistLSBJR05PUkUgTlVMTFMgdGVzdHMKK0NSRUFURSBURU1QT1JB UlkgVEFCTEUgcGxhbmV0cyAoCisgICAgbmFtZSB0ZXh0LAorICAgIGRpc3RhbmNlIHRleHQsCisg ICAgb3JiaXQgaW50ZWdlcgorKTsKK0lOU0VSVCBJTlRPIHBsYW5ldHMgVkFMVUVTCisgICgnbWVy Y3VyeScsICdjbG9zZScsIDg4KSwKKyAgKCd2ZW51cycsICdjbG9zZScsIDIyNCksCisgICgnZWFy dGgnLCAnY2xvc2UnLCBOVUxMKSwKKyAgKCdtYXJzJywgJ2Nsb3NlJywgTlVMTCksCisgICgnanVw aXRlcicsICdjbG9zZScsIDQzMzIpLAorICAoJ3NhdHVybicsICdmYXInLCAyNDQ5MSksCisgICgn dXJhbnVzJywgJ2ZhcicsIE5VTEwpLAorICAoJ25lcHR1bmUnLCAnZmFyJywgNjAxODIpLAorICAo J3BsdXRvJywgJ2ZhcicsIDkwNTYwKSwKKyAgKCd4eXp6eScsICdmYXInLCBOVUxMKTsKKy0tIHRl c3QgcnVsZXV0aWxzCitDUkVBVEUgVklFVyBwbGFuZXRzX3ZpZXcgQVMKK1NFTEVDVCBuYW1lLAor ICAgICAgIG9yYml0LAorICAgICAgIGxhZyhvcmJpdCkgT1ZFUiB3IEFTIGxhZywKKyAgICAgICBs YWcob3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZFUiB3IEFTIGxhZ19yZXNwZWN0LAorICAgICAgIGxh ZyhvcmJpdCkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsYWdfaWdub3JlCitGUk9NIHBsYW5ldHMK K1dJTkRPVyB3IEFTIChPUkRFUiBCWSBuYW1lKQorOworTk9USUNFOiAgdmlldyAicGxhbmV0c192 aWV3IiB3aWxsIGJlIGEgdGVtcG9yYXJ5IHZpZXcKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncGxh bmV0c192aWV3Jyk7CisgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgU0VMRUNUIG5hbWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgIG9yYml0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBs YWcob3JiaXQpIE9WRVIgdyBBUyBsYWcsICAgICAgICAgICAgICAgICAgICsKKyAgICAgbGFnKG9y Yml0KSBPVkVSIHcgQVMgbGFnX3Jlc3BlY3QsICAgICAgICAgICArCisgICAgIGxhZyhvcmJpdCkg SUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsYWdfaWdub3JlKworICAgIEZST00gcGxhbmV0cyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBu YW1lKTsKKygxIHJvdykKKworLS0gbGFnCitTRUxFQ1QgbmFtZSwKKyAgICAgICBvcmJpdCwKKyAg ICAgICBsYWcob3JiaXQpIE9WRVIgdyBBUyBsYWcsCisgICAgICAgbGFnKG9yYml0KSBSRVNQRUNU IE5VTExTIE9WRVIgdyBBUyBsYWdfcmVzcGVjdCwKKyAgICAgICBsYWcob3JiaXQpIElHTk9SRSBO VUxMUyBPVkVSIHcgQVMgbGFnX2lnbm9yZQorRlJPTSBwbGFuZXRzCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgbmFtZSkKKzsKKyAgbmFtZSAgIHwgb3JiaXQgfCAgbGFnICB8IGxhZ19yZXNwZWN0IHwg bGFnX2lnbm9yZSAKKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBlYXJ0aCAgIHwgICAgICAgfCAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgIAorIGp1cGl0ZXIgfCAgNDMzMiB8ICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAg CisgbWFycyAgICB8ICAgICAgIHwgIDQzMzIgfCAgICAgICAgNDMzMiB8ICAgICAgIDQzMzIKKyBt ZXJjdXJ5IHwgICAgODggfCAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgNDMzMgorIG5lcHR1 bmUgfCA2MDE4MiB8ICAgIDg4IHwgICAgICAgICAgODggfCAgICAgICAgIDg4CisgcGx1dG8gICB8 IDkwNTYwIHwgNjAxODIgfCAgICAgICA2MDE4MiB8ICAgICAgNjAxODIKKyBzYXR1cm4gIHwgMjQ0 OTEgfCA5MDU2MCB8ICAgICAgIDkwNTYwIHwgICAgICA5MDU2MAorIHVyYW51cyAgfCAgICAgICB8 IDI0NDkxIHwgICAgICAgMjQ0OTEgfCAgICAgIDI0NDkxCisgdmVudXMgICB8ICAgMjI0IHwgICAg ICAgfCAgICAgICAgICAgICB8ICAgICAgMjQ0OTEKKyB4eXp6eSAgIHwgICAgICAgfCAgIDIyNCB8 ICAgICAgICAgMjI0IHwgICAgICAgIDIyNAorKDEwIHJvd3MpCisKKy0tIGxlYWQKK1NFTEVDVCBu YW1lLAorICAgICAgIG9yYml0LAorICAgICAgIGxlYWQob3JiaXQpIE9WRVIgdyBBUyBsZWFkLAor ICAgICAgIGxlYWQob3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZFUiB3IEFTIGxlYWRfcmVzcGVjdCwK KyAgICAgICBsZWFkKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGxlYWRfaWdub3JlCitG Uk9NIHBsYW5ldHMKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBuYW1lKQorOworICBuYW1lICAgfCBv cmJpdCB8IGxlYWQgIHwgbGVhZF9yZXNwZWN0IHwgbGVhZF9pZ25vcmUgCistLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBlYXJ0aCAgIHwgICAg ICAgfCAgNDMzMiB8ICAgICAgICAgNDMzMiB8ICAgICAgICA0MzMyCisganVwaXRlciB8ICA0MzMy IHwgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICA4OAorIG1hcnMgICAgfCAgICAgICB8 ICAgIDg4IHwgICAgICAgICAgIDg4IHwgICAgICAgICAgODgKKyBtZXJjdXJ5IHwgICAgODggfCA2 MDE4MiB8ICAgICAgICA2MDE4MiB8ICAgICAgIDYwMTgyCisgbmVwdHVuZSB8IDYwMTgyIHwgOTA1 NjAgfCAgICAgICAgOTA1NjAgfCAgICAgICA5MDU2MAorIHBsdXRvICAgfCA5MDU2MCB8IDI0NDkx IHwgICAgICAgIDI0NDkxIHwgICAgICAgMjQ0OTEKKyBzYXR1cm4gIHwgMjQ0OTEgfCAgICAgICB8 ICAgICAgICAgICAgICB8ICAgICAgICAgMjI0CisgdXJhbnVzICB8ICAgICAgIHwgICAyMjQgfCAg ICAgICAgICAyMjQgfCAgICAgICAgIDIyNAorIHZlbnVzICAgfCAgIDIyNCB8ICAgICAgIHwgICAg ICAgICAgICAgIHwgICAgICAgICAgICAKKyB4eXp6eSAgIHwgICAgICAgfCAgICAgICB8ICAgICAg ICAgICAgICB8ICAgICAgICAgICAgCisoMTAgcm93cykKKworLS0gZmlyc3RfdmFsdWUKK1NFTEVD VCBuYW1lLAorICAgICAgIG9yYml0LAorICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBSRVNQRUNU IE5VTExTIE9WRVIgdzEsCisgICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBP VkVSIHcxLAorICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBSRVNQRUNUIE5VTExTIE9WRVIgdzIs CisgICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcyCitGUk9NIHBs YW5ldHMKK1dJTkRPVyB3MSBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gVU5CT1VOREVE IFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyksCisgICAgICAgdzIgQVMgKE9SREVS IEJZIG5hbWUgUk9XUyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZPTExPV0lORykKKzsKKyAg bmFtZSAgIHwgb3JiaXQgfCBmaXJzdF92YWx1ZSB8IGZpcnN0X3ZhbHVlIHwgZmlyc3RfdmFsdWUg fCBmaXJzdF92YWx1ZSAKKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBlYXJ0aCAgIHwgICAgICAgfCAgICAg ICAgICAgICB8ICAgICAgICA0MzMyIHwgICAgICAgICAgICAgfCAgICAgICAgNDMzMgorIGp1cGl0 ZXIgfCAgNDMzMiB8ICAgICAgICAgICAgIHwgICAgICAgIDQzMzIgfCAgICAgICAgICAgICB8ICAg ICAgICA0MzMyCisgbWFycyAgICB8ICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgNDMzMiB8 ICAgICAgICAgICAgIHwgICAgICAgIDQzMzIKKyBtZXJjdXJ5IHwgICAgODggfCAgICAgICAgICAg ICB8ICAgICAgICA0MzMyIHwgICAgICAgIDQzMzIgfCAgICAgICAgNDMzMgorIG5lcHR1bmUgfCA2 MDE4MiB8ICAgICAgICAgICAgIHwgICAgICAgIDQzMzIgfCAgICAgICAgICAgICB8ICAgICAgICAg IDg4CisgcGx1dG8gICB8IDkwNTYwIHwgICAgICAgICAgICAgfCAgICAgICAgNDMzMiB8ICAgICAg ICAgIDg4IHwgICAgICAgICAgODgKKyBzYXR1cm4gIHwgMjQ0OTEgfCAgICAgICAgICAgICB8ICAg ICAgICA0MzMyIHwgICAgICAgNjAxODIgfCAgICAgICA2MDE4MgorIHVyYW51cyAgfCAgICAgICB8 ICAgICAgICAgICAgIHwgICAgICAgIDQzMzIgfCAgICAgICA5MDU2MCB8ICAgICAgIDkwNTYwCisg dmVudXMgICB8ICAgMjI0IHwgICAgICAgICAgICAgfCAgICAgICAgNDMzMiB8ICAgICAgIDI0NDkx IHwgICAgICAgMjQ0OTEKKyB4eXp6eSAgIHwgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICA0 MzMyIHwgICAgICAgICAgICAgfCAgICAgICAgIDIyNAorKDEwIHJvd3MpCisKKy0tIG50aF92YWx1 ZQorU0VMRUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAy KSBSRVNQRUNUIE5VTExTIE9WRVIgdzEsCisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBJR05P UkUgTlVMTFMgT1ZFUiB3MSwKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIFJFU1BFQ1QgTlVM TFMgT1ZFUiB3MiwKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVS IHcyCitGUk9NIHBsYW5ldHMKK1dJTkRPVyB3MSBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdF RU4gVU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyksCisgICAgICAg dzIgQVMgKE9SREVSIEJZIG5hbWUgUk9XUyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZPTExP V0lORykKKzsKKyAgbmFtZSAgIHwgb3JiaXQgfCBudGhfdmFsdWUgfCBudGhfdmFsdWUgfCBudGhf dmFsdWUgfCBudGhfdmFsdWUgCistLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIGVhcnRoICAgfCAgICAgICB8ICAgICAgNDMz MiB8ICAgICAgICA4OCB8ICAgICAgNDMzMiB8ICAgICAgICAgIAorIGp1cGl0ZXIgfCAgNDMzMiB8 ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgNDMzMiB8ICAgICAgICA4OAorIG1hcnMgICAg fCAgICAgICB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgNDMzMiB8ICAgICAgICA4OAor IG1lcmN1cnkgfCAgICA4OCB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgICAgICB8ICAg ICAgICA4OAorIG5lcHR1bmUgfCA2MDE4MiB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAg ICA4OCB8ICAgICA2MDE4MgorIHBsdXRvICAgfCA5MDU2MCB8ICAgICAgNDMzMiB8ICAgICAgICA4 OCB8ICAgICA2MDE4MiB8ICAgICA2MDE4MgorIHNhdHVybiAgfCAyNDQ5MSB8ICAgICAgNDMzMiB8 ICAgICAgICA4OCB8ICAgICA5MDU2MCB8ICAgICA5MDU2MAorIHVyYW51cyAgfCAgICAgICB8ICAg ICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAyNDQ5MSB8ICAgICAyNDQ5MQorIHZlbnVzICAgfCAg IDIyNCB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgICAgICB8ICAgICAgIDIyNAorIHh5 enp5ICAgfCAgICAgICB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgIDIyNCB8ICAgICAg ICAgIAorKDEwIHJvd3MpCisKKy0tIGxhc3RfdmFsdWUKK1NFTEVDVCBuYW1lLAorICAgICAgIG9y Yml0LAorICAgICAgIGxhc3RfdmFsdWUob3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZFUiB3MSwKKyAg ICAgICBsYXN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3MSwKKyAgICAgICBsYXN0 X3ZhbHVlKG9yYml0KSBSRVNQRUNUIE5VTExTIE9WRVIgdzIsCisgICAgICAgbGFzdF92YWx1ZShv cmJpdCkgSUdOT1JFIE5VTExTIE9WRVIgdzIKK0ZST00gcGxhbmV0cworV0lORE9XIHcxIEFTIChP UkRFUiBCWSBuYW1lIFJPV1MgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKSwKKyAgICAgICB3MiBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4g MiBQUkVDRURJTkcgQU5EIDIgRk9MTE9XSU5HKQorOworICBuYW1lICAgfCBvcmJpdCB8IGxhc3Rf dmFsdWUgfCBsYXN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGxhc3RfdmFsdWUgCistLS0tLS0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBlYXJ0aCAgIHwgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgIDIyNCB8ICAgICAgICAg ICAgfCAgICAgICA0MzMyCisganVwaXRlciB8ICA0MzMyIHwgICAgICAgICAgICB8ICAgICAgICAy MjQgfCAgICAgICAgIDg4IHwgICAgICAgICA4OAorIG1hcnMgICAgfCAgICAgICB8ICAgICAgICAg ICAgfCAgICAgICAgMjI0IHwgICAgICA2MDE4MiB8ICAgICAgNjAxODIKKyBtZXJjdXJ5IHwgICAg ODggfCAgICAgICAgICAgIHwgICAgICAgIDIyNCB8ICAgICAgOTA1NjAgfCAgICAgIDkwNTYwCisg bmVwdHVuZSB8IDYwMTgyIHwgICAgICAgICAgICB8ICAgICAgICAyMjQgfCAgICAgIDI0NDkxIHwg ICAgICAyNDQ5MQorIHBsdXRvICAgfCA5MDU2MCB8ICAgICAgICAgICAgfCAgICAgICAgMjI0IHwg ICAgICAgICAgICB8ICAgICAgMjQ0OTEKKyBzYXR1cm4gIHwgMjQ0OTEgfCAgICAgICAgICAgIHwg ICAgICAgIDIyNCB8ICAgICAgICAyMjQgfCAgICAgICAgMjI0CisgdXJhbnVzICB8ICAgICAgIHwg ICAgICAgICAgICB8ICAgICAgICAyMjQgfCAgICAgICAgICAgIHwgICAgICAgIDIyNAorIHZlbnVz ICAgfCAgIDIyNCB8ICAgICAgICAgICAgfCAgICAgICAgMjI0IHwgICAgICAgICAgICB8ICAgICAg ICAyMjQKKyB4eXp6eSAgIHwgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgIDIyNCB8ICAgICAg ICAgICAgfCAgICAgICAgMjI0CisoMTAgcm93cykKKworLS0gZXhjbHVkZSBjdXJyZW50IHJvdwor U0VMRUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElH Tk9SRSBOVUxMUyBPVkVSIHcsCisgICAgICAgbGFzdF92YWx1ZShvcmJpdCkgSUdOT1JFIE5VTExT IE9WRVIgdywKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcs CisgICAgICAgbGVhZChvcmJpdCwgMSkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsZWFkX2lnbm9y ZSwKKyAgICAgICBsYWcob3JiaXQsIDEpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGFnX2lnbm9y ZQorRlJPTSBwbGFuZXRzCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4g MiBQUkVDRURJTkcgQU5EIDIgRk9MTE9XSU5HIEVYQ0xVREUgQ1VSUkVOVCBST1cpCis7CisgIG5h bWUgICB8IG9yYml0IHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgbnRoX3ZhbHVlIHwgbGVh ZF9pZ25vcmUgfCBsYWdfaWdub3JlIAorLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBlYXJ0 aCAgIHwgICAgICAgfCAgICAgICAgNDMzMiB8ICAgICAgIDQzMzIgfCAgICAgICAgICAgfCAgICAg ICAgNDMzMiB8ICAgICAgICAgICAKKyBqdXBpdGVyIHwgIDQzMzIgfCAgICAgICAgICA4OCB8ICAg ICAgICAgODggfCAgICAgICAgICAgfCAgICAgICAgICA4OCB8ICAgICAgICAgICAKKyBtYXJzICAg IHwgICAgICAgfCAgICAgICAgNDMzMiB8ICAgICAgNjAxODIgfCAgICAgICAgODggfCAgICAgICAg ICA4OCB8ICAgICAgIDQzMzIKKyBtZXJjdXJ5IHwgICAgODggfCAgICAgICAgNDMzMiB8ICAgICAg OTA1NjAgfCAgICAgNjAxODIgfCAgICAgICA2MDE4MiB8ICAgICAgIDQzMzIKKyBuZXB0dW5lIHwg NjAxODIgfCAgICAgICAgICA4OCB8ICAgICAgMjQ0OTEgfCAgICAgOTA1NjAgfCAgICAgICA5MDU2 MCB8ICAgICAgICAgODgKKyBwbHV0byAgIHwgOTA1NjAgfCAgICAgICAgICA4OCB8ICAgICAgMjQ0 OTEgfCAgICAgNjAxODIgfCAgICAgICAyNDQ5MSB8ICAgICAgNjAxODIKKyBzYXR1cm4gIHwgMjQ0 OTEgfCAgICAgICA2MDE4MiB8ICAgICAgICAyMjQgfCAgICAgOTA1NjAgfCAgICAgICAgIDIyNCB8 ICAgICAgOTA1NjAKKyB1cmFudXMgIHwgICAgICAgfCAgICAgICA5MDU2MCB8ICAgICAgICAyMjQg fCAgICAgMjQ0OTEgfCAgICAgICAgIDIyNCB8ICAgICAgMjQ0OTEKKyB2ZW51cyAgIHwgICAyMjQg fCAgICAgICAyNDQ5MSB8ICAgICAgMjQ0OTEgfCAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAg ICAgMjQ0OTEKKyB4eXp6eSAgIHwgICAgICAgfCAgICAgICAgIDIyNCB8ICAgICAgICAyMjQgfCAg ICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAyMjQKKygxMCByb3dzKQorCistLSB2YWxp ZCBhbmQgaW52YWxpZCBmdW5jdGlvbnMKK1NFTEVDVCBzdW0ob3JiaXQpIE9WRVIgKCkgRlJPTSBw bGFuZXRzOyAtLSBzdWNjZWVkcworICBzdW0gICAKKy0tLS0tLS0tCisgMTc5ODc3CisgMTc5ODc3 CisgMTc5ODc3CisgMTc5ODc3CisgMTc5ODc3CisgMTc5ODc3CisgMTc5ODc3CisgMTc5ODc3Cisg MTc5ODc3CisgMTc5ODc3CisoMTAgcm93cykKKworU0VMRUNUIHN1bShvcmJpdCkgUkVTUEVDVCBO VUxMUyBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gZmFpbHMKK0VSUk9SOiAgYWdncmVnYXRlIGZ1 bmN0aW9ucyBkbyBub3QgYWNjZXB0IFJFU1BFQ1QvSUdOT1JFIE5VTExTCitMSU5FIDE6IFNFTEVD VCBzdW0ob3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7CisgICAgICAg ICAgICAgICBeCitTRUxFQ1Qgc3VtKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiAoKSBGUk9NIHBs YW5ldHM7IC0tIGZhaWxzCitFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgZG8gbm90IGFjY2Vw dCBSRVNQRUNUL0lHTk9SRSBOVUxMUworTElORSAxOiBTRUxFQ1Qgc3VtKG9yYml0KSBJR05PUkUg TlVMTFMgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7CisgICAgICAgICAgICAgICBeCitTRUxFQ1Qgcm93 X251bWJlcigpIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBzdWNjZWVkcworIHJvd19udW1iZXIg CistLS0tLS0tLS0tLS0KKyAgICAgICAgICAxCisgICAgICAgICAgMgorICAgICAgICAgIDMKKyAg ICAgICAgICA0CisgICAgICAgICAgNQorICAgICAgICAgIDYKKyAgICAgICAgICA3CisgICAgICAg ICAgOAorICAgICAgICAgIDkKKyAgICAgICAgIDEwCisoMTAgcm93cykKKworU0VMRUNUIHJvd19u dW1iZXIoKSBSRVNQRUNUIE5VTExTIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBmYWlscworRVJS T1I6ICBmdW5jdGlvbiByb3dfbnVtYmVyIGRvZXMgbm90IGFsbG93IFJFU1BFQ1QvSUdOT1JFIE5V TExTCitTRUxFQ1Qgcm93X251bWJlcigpIElHTk9SRSBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0 czsgLS0gZmFpbHMKK0VSUk9SOiAgZnVuY3Rpb24gcm93X251bWJlciBkb2VzIG5vdCBhbGxvdyBS RVNQRUNUL0lHTk9SRSBOVUxMUworLS0gdGVzdCB0d28gY29uc2VjdXRpdmUgbnVsbHMKK3VwZGF0 ZSBwbGFuZXRzIHNldCBvcmJpdD1udWxsIHdoZXJlIG5hbWU9J2p1cGl0ZXInOworU0VMRUNUIG5h bWUsCisgICAgICAgb3JiaXQsCisgICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxM UyBPVkVSIHcsCisgICAgICAgbGFzdF92YWx1ZShvcmJpdCkgSUdOT1JFIE5VTExTIE9WRVIgdywK KyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgICAgICAg bGVhZChvcmJpdCwgMSkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsZWFkX2lnbm9yZSwKKyAgICAg ICBsYWcob3JiaXQsIDEpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGFnX2lnbm9yZQorRlJPTSBw bGFuZXRzCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gMiBQUkVDRURJ TkcgQU5EIDIgRk9MTE9XSU5HKQorOworICBuYW1lICAgfCBvcmJpdCB8IGZpcnN0X3ZhbHVlIHwg bGFzdF92YWx1ZSB8IG50aF92YWx1ZSB8IGxlYWRfaWdub3JlIHwgbGFnX2lnbm9yZSAKKy0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgZWFydGggICB8ICAgICAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgODggfCAgICAgICAgICAgCisganVwaXRl ciB8ICAgICAgIHwgICAgICAgICAgODggfCAgICAgICAgIDg4IHwgICAgICAgICAgIHwgICAgICAg ICAgODggfCAgICAgICAgICAgCisgbWFycyAgICB8ICAgICAgIHwgICAgICAgICAgODggfCAgICAg IDYwMTgyIHwgICAgIDYwMTgyIHwgICAgICAgICAgODggfCAgICAgICAgICAgCisgbWVyY3VyeSB8 ICAgIDg4IHwgICAgICAgICAgODggfCAgICAgIDkwNTYwIHwgICAgIDYwMTgyIHwgICAgICAgNjAx ODIgfCAgICAgICAgICAgCisgbmVwdHVuZSB8IDYwMTgyIHwgICAgICAgICAgODggfCAgICAgIDI0 NDkxIHwgICAgIDYwMTgyIHwgICAgICAgOTA1NjAgfCAgICAgICAgIDg4CisgcGx1dG8gICB8IDkw NTYwIHwgICAgICAgICAgODggfCAgICAgIDI0NDkxIHwgICAgIDYwMTgyIHwgICAgICAgMjQ0OTEg fCAgICAgIDYwMTgyCisgc2F0dXJuICB8IDI0NDkxIHwgICAgICAgNjAxODIgfCAgICAgICAgMjI0 IHwgICAgIDkwNTYwIHwgICAgICAgICAyMjQgfCAgICAgIDkwNTYwCisgdXJhbnVzICB8ICAgICAg IHwgICAgICAgOTA1NjAgfCAgICAgICAgMjI0IHwgICAgIDI0NDkxIHwgICAgICAgICAyMjQgfCAg ICAgIDI0NDkxCisgdmVudXMgICB8ICAgMjI0IHwgICAgICAgMjQ0OTEgfCAgICAgICAgMjI0IHwg ICAgICAgMjI0IHwgICAgICAgICAgICAgfCAgICAgIDI0NDkxCisgeHl6enkgICB8ICAgICAgIHwg ICAgICAgICAyMjQgfCAgICAgICAgMjI0IHwgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAg ICAgMjI0CisoMTAgcm93cykKKworLS0gdGVzdCBwYXJ0aXRpb25zCitTRUxFQ1QgbmFtZSwKKyAg ICAgICBkaXN0YW5jZSwKKyAgICAgICBvcmJpdCwKKyAgICAgICBmaXJzdF92YWx1ZShvcmJpdCkg SUdOT1JFIE5VTExTIE9WRVIgdywKKyAgICAgICBsYXN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVM TFMgT1ZFUiB3LAorICAgICAgIG50aF92YWx1ZShvcmJpdCwgMikgSUdOT1JFIE5VTExTIE9WRVIg dywKKyAgICAgICBsZWFkKG9yYml0LCAxKSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGxlYWRfaWdu b3JlLAorICAgICAgIGxhZyhvcmJpdCwgMSkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsYWdfaWdu b3JlCitGUk9NIHBsYW5ldHMKK1dJTkRPVyB3IEFTIChQQVJUSVRJT04gQlkgZGlzdGFuY2UgT1JE RVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gMiBQUkVDRURJTkcgQU5EIDIgRk9MTE9XSU5HKQorOwor ICBuYW1lICAgfCBkaXN0YW5jZSB8IG9yYml0IHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwg bnRoX3ZhbHVlIHwgbGVhZF9pZ25vcmUgfCBsYWdfaWdub3JlIAorLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIGVhcnRoICAgfCBjbG9zZSAgICB8ICAgICAgIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgODggfCAgICAgICAgICAg CisganVwaXRlciB8IGNsb3NlICAgIHwgICAgICAgfCAgICAgICAgICA4OCB8ICAgICAgICAgODgg fCAgICAgICAgICAgfCAgICAgICAgICA4OCB8ICAgICAgICAgICAKKyBtYXJzICAgIHwgY2xvc2Ug ICAgfCAgICAgICB8ICAgICAgICAgIDg4IHwgICAgICAgIDIyNCB8ICAgICAgIDIyNCB8ICAgICAg ICAgIDg4IHwgICAgICAgICAgIAorIG1lcmN1cnkgfCBjbG9zZSAgICB8ICAgIDg4IHwgICAgICAg ICAgODggfCAgICAgICAgMjI0IHwgICAgICAgMjI0IHwgICAgICAgICAyMjQgfCAgICAgICAgICAg CisgdmVudXMgICB8IGNsb3NlICAgIHwgICAyMjQgfCAgICAgICAgICA4OCB8ICAgICAgICAyMjQg fCAgICAgICAyMjQgfCAgICAgICAgICAgICB8ICAgICAgICAgODgKKyBuZXB0dW5lIHwgZmFyICAg ICAgfCA2MDE4MiB8ICAgICAgIDYwMTgyIHwgICAgICAyNDQ5MSB8ICAgICA5MDU2MCB8ICAgICAg IDkwNTYwIHwgICAgICAgICAgIAorIHBsdXRvICAgfCBmYXIgICAgICB8IDkwNTYwIHwgICAgICAg NjAxODIgfCAgICAgIDI0NDkxIHwgICAgIDkwNTYwIHwgICAgICAgMjQ0OTEgfCAgICAgIDYwMTgy Cisgc2F0dXJuICB8IGZhciAgICAgIHwgMjQ0OTEgfCAgICAgICA2MDE4MiB8ICAgICAgMjQ0OTEg fCAgICAgOTA1NjAgfCAgICAgICAgICAgICB8ICAgICAgOTA1NjAKKyB1cmFudXMgIHwgZmFyICAg ICAgfCAgICAgICB8ICAgICAgIDkwNTYwIHwgICAgICAyNDQ5MSB8ICAgICAyNDQ5MSB8ICAgICAg ICAgICAgIHwgICAgICAyNDQ5MQorIHh5enp5ICAgfCBmYXIgICAgICB8ICAgICAgIHwgICAgICAg MjQ0OTEgfCAgICAgIDI0NDkxIHwgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgIDI0NDkx CisoMTAgcm93cykKKworLS0gbnRoX3ZhbHVlIHdpdGhvdXQgbnVsbHMKK1NFTEVDVCB4LAorICAg ICAgIG50aF92YWx1ZSh4LDIpIElHTk9SRSBOVUxMUyBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsNSkgZyh4KQorV0lORE9XIHcgQVMgKE9SREVSIEJZIHggUk9XUyBCRVRXRUVOIDIgUFJF Q0VESU5HIEFORCAyIEZPTExPV0lORyBFWENMVURFIENVUlJFTlQgUk9XKTsKKyB4IHwgbnRoX3Zh bHVlIAorLS0tKy0tLS0tLS0tLS0tCisgMSB8ICAgICAgICAgMworIDIgfCAgICAgICAgIDMKKyAz IHwgICAgICAgICAyCisgNCB8ICAgICAgICAgMworIDUgfCAgICAgICAgIDQKKyg1IHJvd3MpCisK K1NFTEVDVCB4LAorICAgICAgIG50aF92YWx1ZSh4LDIpIElHTk9SRSBOVUxMUyBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsNSkgZyh4KQorV0lORE9XIHcgQVMgKE9SREVSIEJZIHggUk9X UyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZPTExPV0lORyk7CisgeCB8IG50aF92YWx1ZSAK Ky0tLSstLS0tLS0tLS0tLQorIDEgfCAgICAgICAgIDIKKyAyIHwgICAgICAgICAyCisgMyB8ICAg ICAgICAgMgorIDQgfCAgICAgICAgIDMKKyA1IHwgICAgICAgICA0CisoNSByb3dzKQorCistLWNs ZWFudXAKK0RST1AgVEFCTEUgcGxhbmV0cyBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRl cyB0byB2aWV3IHBsYW5ldHNfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2luZG93LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpbmRvdy5zcWwKaW5kZXggMDJmMTA1 ZjA3MGUuLjFmOGM4NjY5NDM2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aW5k b3cuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpbmRvdy5zcWwKQEAgLTE5NTgsMyAr MTk1OCwxNTAgQEAgJCQgTEFOR1VBR0UgU1FMIFNUQUJMRTsKIAogRVhQTEFJTiAoY29zdHMgb2Zm KSBTRUxFQ1QgKiBGUk9NIHBnX3RlbXAuZigyKTsKIFNFTEVDVCAqIEZST00gcGdfdGVtcC5mKDIp OworCistLSBJR05PUkUgTlVMTFMgdGVzdHMKKworQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSBwbGFu ZXRzICgKKyAgICBuYW1lIHRleHQsCisgICAgZGlzdGFuY2UgdGV4dCwKKyAgICBvcmJpdCBpbnRl Z2VyCispOworCitJTlNFUlQgSU5UTyBwbGFuZXRzIFZBTFVFUworICAoJ21lcmN1cnknLCAnY2xv c2UnLCA4OCksCisgICgndmVudXMnLCAnY2xvc2UnLCAyMjQpLAorICAoJ2VhcnRoJywgJ2Nsb3Nl JywgTlVMTCksCisgICgnbWFycycsICdjbG9zZScsIE5VTEwpLAorICAoJ2p1cGl0ZXInLCAnY2xv c2UnLCA0MzMyKSwKKyAgKCdzYXR1cm4nLCAnZmFyJywgMjQ0OTEpLAorICAoJ3VyYW51cycsICdm YXInLCBOVUxMKSwKKyAgKCduZXB0dW5lJywgJ2ZhcicsIDYwMTgyKSwKKyAgKCdwbHV0bycsICdm YXInLCA5MDU2MCksCisgICgneHl6enknLCAnZmFyJywgTlVMTCk7CisKKy0tIHRlc3QgcnVsZXV0 aWxzCitDUkVBVEUgVklFVyBwbGFuZXRzX3ZpZXcgQVMKK1NFTEVDVCBuYW1lLAorICAgICAgIG9y Yml0LAorICAgICAgIGxhZyhvcmJpdCkgT1ZFUiB3IEFTIGxhZywKKyAgICAgICBsYWcob3JiaXQp IFJFU1BFQ1QgTlVMTFMgT1ZFUiB3IEFTIGxhZ19yZXNwZWN0LAorICAgICAgIGxhZyhvcmJpdCkg SUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsYWdfaWdub3JlCitGUk9NIHBsYW5ldHMKK1dJTkRPVyB3 IEFTIChPUkRFUiBCWSBuYW1lKQorOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdwbGFuZXRzX3Zp ZXcnKTsKKworLS0gbGFnCitTRUxFQ1QgbmFtZSwKKyAgICAgICBvcmJpdCwKKyAgICAgICBsYWco b3JiaXQpIE9WRVIgdyBBUyBsYWcsCisgICAgICAgbGFnKG9yYml0KSBSRVNQRUNUIE5VTExTIE9W RVIgdyBBUyBsYWdfcmVzcGVjdCwKKyAgICAgICBsYWcob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVS IHcgQVMgbGFnX2lnbm9yZQorRlJPTSBwbGFuZXRzCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgbmFt ZSkKKzsKKworLS0gbGVhZAorU0VMRUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgbGVh ZChvcmJpdCkgT1ZFUiB3IEFTIGxlYWQsCisgICAgICAgbGVhZChvcmJpdCkgUkVTUEVDVCBOVUxM UyBPVkVSIHcgQVMgbGVhZF9yZXNwZWN0LAorICAgICAgIGxlYWQob3JiaXQpIElHTk9SRSBOVUxM UyBPVkVSIHcgQVMgbGVhZF9pZ25vcmUKK0ZST00gcGxhbmV0cworV0lORE9XIHcgQVMgKE9SREVS IEJZIG5hbWUpCis7CisKKy0tIGZpcnN0X3ZhbHVlCitTRUxFQ1QgbmFtZSwKKyAgICAgICBvcmJp dCwKKyAgICAgICBmaXJzdF92YWx1ZShvcmJpdCkgUkVTUEVDVCBOVUxMUyBPVkVSIHcxLAorICAg ICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3MSwKKyAgICAgICBmaXJz dF92YWx1ZShvcmJpdCkgUkVTUEVDVCBOVUxMUyBPVkVSIHcyLAorICAgICAgIGZpcnN0X3ZhbHVl KG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3MgorRlJPTSBwbGFuZXRzCitXSU5ET1cgdzEgQVMg KE9SREVSIEJZIG5hbWUgUk9XUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpLAorICAgICAgIHcyIEFTIChPUkRFUiBCWSBuYW1lIFJPV1MgQkVUV0VF TiAyIFBSRUNFRElORyBBTkQgMiBGT0xMT1dJTkcpCis7CisKKy0tIG50aF92YWx1ZQorU0VMRUNU IG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBSRVNQRUNU IE5VTExTIE9WRVIgdzEsCisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBJR05PUkUgTlVMTFMg T1ZFUiB3MSwKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIFJFU1BFQ1QgTlVMTFMgT1ZFUiB3 MiwKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcyCitGUk9N IHBsYW5ldHMKK1dJTkRPVyB3MSBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gVU5CT1VO REVEIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyksCisgICAgICAgdzIgQVMgKE9S REVSIEJZIG5hbWUgUk9XUyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZPTExPV0lORykKKzsK KworLS0gbGFzdF92YWx1ZQorU0VMRUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgbGFz dF92YWx1ZShvcmJpdCkgUkVTUEVDVCBOVUxMUyBPVkVSIHcxLAorICAgICAgIGxhc3RfdmFsdWUo b3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcxLAorICAgICAgIGxhc3RfdmFsdWUob3JiaXQpIFJF U1BFQ1QgTlVMTFMgT1ZFUiB3MiwKKyAgICAgICBsYXN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVM TFMgT1ZFUiB3MgorRlJPTSBwbGFuZXRzCitXSU5ET1cgdzEgQVMgKE9SREVSIEJZIG5hbWUgUk9X UyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpLAor ICAgICAgIHcyIEFTIChPUkRFUiBCWSBuYW1lIFJPV1MgQkVUV0VFTiAyIFBSRUNFRElORyBBTkQg MiBGT0xMT1dJTkcpCis7CisKKy0tIGV4Y2x1ZGUgY3VycmVudCByb3cKK1NFTEVDVCBuYW1lLAor ICAgICAgIG9yYml0LAorICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZF UiB3LAorICAgICAgIGxhc3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgICAg ICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBJR05PUkUgTlVMTFMgT1ZFUiB3LAorICAgICAgIGxlYWQo b3JiaXQsIDEpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGVhZF9pZ25vcmUsCisgICAgICAgbGFn KG9yYml0LCAxKSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGxhZ19pZ25vcmUKK0ZST00gcGxhbmV0 cworV0lORE9XIHcgQVMgKE9SREVSIEJZIG5hbWUgUk9XUyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFO RCAyIEZPTExPV0lORyBFWENMVURFIENVUlJFTlQgUk9XKQorOworCistLSB2YWxpZCBhbmQgaW52 YWxpZCBmdW5jdGlvbnMKK1NFTEVDVCBzdW0ob3JiaXQpIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAt LSBzdWNjZWVkcworU0VMRUNUIHN1bShvcmJpdCkgUkVTUEVDVCBOVUxMUyBPVkVSICgpIEZST00g cGxhbmV0czsgLS0gZmFpbHMKK1NFTEVDVCBzdW0ob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSICgp IEZST00gcGxhbmV0czsgLS0gZmFpbHMKK1NFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiAoKSBGUk9N IHBsYW5ldHM7IC0tIHN1Y2NlZWRzCitTRUxFQ1Qgcm93X251bWJlcigpIFJFU1BFQ1QgTlVMTFMg T1ZFUiAoKSBGUk9NIHBsYW5ldHM7IC0tIGZhaWxzCitTRUxFQ1Qgcm93X251bWJlcigpIElHTk9S RSBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gZmFpbHMKKworLS0gdGVzdCB0d28gY29u c2VjdXRpdmUgbnVsbHMKK3VwZGF0ZSBwbGFuZXRzIHNldCBvcmJpdD1udWxsIHdoZXJlIG5hbWU9 J2p1cGl0ZXInOworU0VMRUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgZmlyc3RfdmFs dWUob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgICAgICAgbGFzdF92YWx1ZShvcmJpdCkg SUdOT1JFIE5VTExTIE9WRVIgdywKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIElHTk9SRSBO VUxMUyBPVkVSIHcsCisgICAgICAgbGVhZChvcmJpdCwgMSkgSUdOT1JFIE5VTExTIE9WRVIgdyBB UyBsZWFkX2lnbm9yZSwKKyAgICAgICBsYWcob3JiaXQsIDEpIElHTk9SRSBOVUxMUyBPVkVSIHcg QVMgbGFnX2lnbm9yZQorRlJPTSBwbGFuZXRzCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgbmFtZSBS T1dTIEJFVFdFRU4gMiBQUkVDRURJTkcgQU5EIDIgRk9MTE9XSU5HKQorOworCistLSB0ZXN0IHBh cnRpdGlvbnMKK1NFTEVDVCBuYW1lLAorICAgICAgIGRpc3RhbmNlLAorICAgICAgIG9yYml0LAor ICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3LAorICAgICAgIGxh c3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgICAgICAgbnRoX3ZhbHVlKG9y Yml0LCAyKSBJR05PUkUgTlVMTFMgT1ZFUiB3LAorICAgICAgIGxlYWQob3JiaXQsIDEpIElHTk9S RSBOVUxMUyBPVkVSIHcgQVMgbGVhZF9pZ25vcmUsCisgICAgICAgbGFnKG9yYml0LCAxKSBJR05P UkUgTlVMTFMgT1ZFUiB3IEFTIGxhZ19pZ25vcmUKK0ZST00gcGxhbmV0cworV0lORE9XIHcgQVMg KFBBUlRJVElPTiBCWSBkaXN0YW5jZSBPUkRFUiBCWSBuYW1lIFJPV1MgQkVUV0VFTiAyIFBSRUNF RElORyBBTkQgMiBGT0xMT1dJTkcpCis7CisKKy0tIG50aF92YWx1ZSB3aXRob3V0IG51bGxzCitT RUxFQ1QgeCwKKyAgICAgICBudGhfdmFsdWUoeCwyKSBJR05PUkUgTlVMTFMgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLDUpIGcoeCkKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSB4IFJPV1Mg QkVUV0VFTiAyIFBSRUNFRElORyBBTkQgMiBGT0xMT1dJTkcgRVhDTFVERSBDVVJSRU5UIFJPVyk7 CitTRUxFQ1QgeCwKKyAgICAgICBudGhfdmFsdWUoeCwyKSBJR05PUkUgTlVMTFMgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDUpIGcoeCkKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSB4IFJP V1MgQkVUV0VFTiAyIFBSRUNFRElORyBBTkQgMiBGT0xMT1dJTkcpOworCistLWNsZWFudXAKK0RS T1AgVEFCTEUgcGxhbmV0cyBDQVNDQURFOwotLSAKMi4yNS4xCgo= ----Next_Part(Sat_Aug_16_18_33_29_2025_218)----