From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 59557 invoked by alias); 2 Jan 2019 14:38:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 59538 invoked by uid 89); 2 Jan 2019 14:38:15 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS,TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 spammy=worker, 2.0, 84, gang X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 02 Jan 2019 14:38:04 +0000 Received: from svr-orw-mbx-02.mgc.mentorg.com ([147.34.90.202]) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1gehek-0001wL-0G from ChungLin_Tang@mentor.com ; Wed, 02 Jan 2019 06:38:02 -0800 Received: from [0.0.0.0] (147.34.91.1) by svr-orw-mbx-02.mgc.mentorg.com (147.34.90.202) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Wed, 2 Jan 2019 06:37:57 -0800 Reply-To: Subject: Re: [patch] Add OpenACC Fortran support for deviceptr and variable in common blocks From: Chung-Lin Tang To: Jakub Jelinek , Cesar Philippidis , Thomas Schwinge CC: Fortran List , "gcc-patches@gcc.gnu.org" , "Moore, Catherine" References: <20181204133007.GO12380@tucnak> <64d9828b-f0e9-a2b6-d88c-93db9890c56c@mentor.com> Message-ID: <13d6b287-a753-1441-d8fa-9e3d6e1fadf7@mentor.com> Date: Wed, 02 Jan 2019 14:38:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <64d9828b-f0e9-a2b6-d88c-93db9890c56c@mentor.com> Content-Type: multipart/mixed; boundary="------------03DD8064F5DE37C92EE1C1BC" X-SW-Source: 2019-01/txt/msg00051.txt.bz2 --------------03DD8064F5DE37C92EE1C1BC Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-length: 205 Hi Jakub, I have updated this patch and rebased with current trunk. The issues you identified in the last review should all be resolved. Is this now okay for trunk? Thanks, and Happy New Year~ Chung-Lin --------------03DD8064F5DE37C92EE1C1BC Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="openacc-fortran-deviceptr-commonblk.v2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="openacc-fortran-deviceptr-commonblk.v2.patch" Content-length: 52981 SW5kZXg6IGdjYy9mb3J0cmFuL29wZW5tcC5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGdjYy9mb3J0cmFuL29wZW5tcC5jCShyZXZpc2lvbiAyNjc1 MTMpCisrKyBnY2MvZm9ydHJhbi9vcGVubXAuYwkod29ya2luZyBjb3B5KQpA QCAtOTE0LDEwICs5MTQsMTEgQEAgb21wX2ludl9tYXNrOjpvbXBfaW52X21h c2sgKGNvbnN0IG9tcF9tYXNrICZtKSA6IG8KICAgIG1hcHBpbmcuICAqLwog CiBzdGF0aWMgYm9vbAotZ2ZjX21hdGNoX29tcF9tYXBfY2xhdXNlIChnZmNf b21wX25hbWVsaXN0ICoqbGlzdCwgZ2ZjX29tcF9tYXBfb3AgbWFwX29wKQor Z2ZjX21hdGNoX29tcF9tYXBfY2xhdXNlIChnZmNfb21wX25hbWVsaXN0ICoq bGlzdCwgZ2ZjX29tcF9tYXBfb3AgbWFwX29wLAorCQkJICBib29sIGNvbW1v bl9ibG9ja3MgPSB0cnVlKQogewogICBnZmNfb21wX25hbWVsaXN0ICoqaGVh ZCA9IE5VTEw7Ci0gIGlmIChnZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3Qg KCIiLCBsaXN0LCBmYWxzZSwgTlVMTCwgJmhlYWQsIHRydWUpCisgIGlmIChn ZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3QgKCIiLCBsaXN0LCBjb21tb25f YmxvY2tzLCBOVUxMLCAmaGVhZCwgdHJ1ZSkKICAgICAgID09IE1BVENIX1lF UykKICAgICB7CiAgICAgICBnZmNfb21wX25hbWVsaXN0ICpuOwpAQCAtMTE1 NiwxMiArMTE1NywxMiBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdmY19v bXBfY2xhdXNlcyAqKmNwLCBjb25zdAogCSAgICAgICYmIG9wZW5hY2MKIAkg ICAgICAmJiBnZmNfbWF0Y2ggKCJkZXZpY2UgKCAiKSA9PSBNQVRDSF9ZRVMK IAkgICAgICAmJiBnZmNfbWF0Y2hfb21wX21hcF9jbGF1c2UgKCZjLT5saXN0 c1tPTVBfTElTVF9NQVBdLAotCQkJCQkgICBPTVBfTUFQX0ZPUkNFX1RPKSkK KwkJCQkJICAgT01QX01BUF9GT1JDRV9UTywgZmFsc2UpKQogCSAgICBjb250 aW51ZTsKIAkgIGlmICgobWFzayAmIE9NUF9DTEFVU0VfREVWSUNFUFRSKQog CSAgICAgICYmIGdmY19tYXRjaCAoImRldmljZXB0ciAoICIpID09IE1BVENI X1lFUwogCSAgICAgICYmIGdmY19tYXRjaF9vbXBfbWFwX2NsYXVzZSAoJmMt Pmxpc3RzW09NUF9MSVNUX01BUF0sCi0JCQkJCSAgIE9NUF9NQVBfRk9SQ0Vf REVWSUNFUFRSKSkKKwkJCQkJICAgT01QX01BUF9GT1JDRV9ERVZJQ0VQVFIs IGZhbHNlKSkKIAkgICAgY29udGludWU7CiAJICBpZiAoKG1hc2sgJiBPTVBf Q0xBVVNFX0RFVklDRV9SRVNJREVOVCkKIAkgICAgICAmJiBnZmNfbWF0Y2hf b21wX3ZhcmlhYmxlX2xpc3QKQEAgLTE1MzEsNyArMTUzMiw3IEBAIGdmY19t YXRjaF9vbXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0 CiAJICBpZiAoKG1hc2sgJiBPTVBfQ0xBVVNFX1BSRVNFTlQpCiAJICAgICAg JiYgZ2ZjX21hdGNoICgicHJlc2VudCAoICIpID09IE1BVENIX1lFUwogCSAg ICAgICYmIGdmY19tYXRjaF9vbXBfbWFwX2NsYXVzZSAoJmMtPmxpc3RzW09N UF9MSVNUX01BUF0sCi0JCQkJCSAgIE9NUF9NQVBfRk9SQ0VfUFJFU0VOVCkp CisJCQkJCSAgIE9NUF9NQVBfRk9SQ0VfUFJFU0VOVCwgZmFsc2UpKQogCSAg ICBjb250aW51ZTsKIAkgIGlmICgobWFzayAmIE9NUF9DTEFVU0VfQ09QWSkK IAkgICAgICAmJiBnZmNfbWF0Y2ggKCJwcmVzZW50X29yX2NvcHkgKCAiKSA9 PSBNQVRDSF9ZRVMKQEAgLTM3NjIsNyArMzc2Myw3IEBAIGNoZWNrX3N5bWJv bF9ub3RfcG9pbnRlciAoZ2ZjX3N5bWJvbCAqc3ltLCBsb2N1cyBsCiAvKiBF bWl0cyBlcnJvciB3aGVuIHN5bWJvbCByZXByZXNlbnRzIGFzc3VtZWQgc2l6 ZS9yYW5rIGFycmF5LiAgKi8KIAogc3RhdGljIHZvaWQKLWNoZWNrX2FycmF5 X25vdF9hc3N1bWVkIChnZmNfc3ltYm9sICpzeW0sIGxvY3VzIGxvYywgY29u c3QgY2hhciAqbmFtZSkKK2NoZWNrX29hY2NfYXJyYXlfbm90X2Fzc3VtZWQg KGdmY19zeW1ib2wgKnN5bSwgbG9jdXMgbG9jLCBjb25zdCBjaGFyICpuYW1l KQogewogICBpZiAoc3ltLT5hcyAmJiBzeW0tPmFzLT50eXBlID09IEFTX0FT U1VNRURfU0laRSkKICAgICBnZmNfZXJyb3IgKCJBc3N1bWVkIHNpemUgYXJy YXkgJXFzIGluICVzIGNsYXVzZSBhdCAlTCIsCkBAIC0zNzcwLDEwICszNzcx LDYgQEAgc3RhdGljIHZvaWQKICAgaWYgKHN5bS0+YXMgJiYgc3ltLT5hcy0+ dHlwZSA9PSBBU19BU1NVTUVEX1JBTkspCiAgICAgZ2ZjX2Vycm9yICgiQXNz dW1lZCByYW5rIGFycmF5ICVxcyBpbiAlcyBjbGF1c2UgYXQgJUwiLAogCSAg ICAgICBzeW0tPm5hbWUsIG5hbWUsICZsb2MpOwotICBpZiAoc3ltLT5hcyAm JiBzeW0tPmFzLT50eXBlID09IEFTX0RFRkVSUkVEICYmIHN5bS0+YXR0ci5w b2ludGVyCi0gICAgICAmJiAhc3ltLT5hdHRyLmNvbnRpZ3VvdXMpCi0gICAg Z2ZjX2Vycm9yICgiTm9uY29udGlndW91cyBkZWZlcnJlZCBzaGFwZSBhcnJh eSAlcXMgaW4gJXMgY2xhdXNlIGF0ICVMIiwKLQkgICAgICAgc3ltLT5uYW1l LCBuYW1lLCAmbG9jKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTM3ODgsNyAr Mzc4NSw3IEBAIHJlc29sdmVfb2FjY19kYXRhX2NsYXVzZXMgKGdmY19zeW1i b2wgKnN5bSwgbG9jdXMKICAgICBnZmNfZXJyb3IgKCJBTExPQ0FUQUJMRSBv YmplY3QgJXFzIG9mIHBvbHltb3JwaGljIHR5cGUgIgogCSAgICAgICAiaW4g JXMgY2xhdXNlIGF0ICVMIiwgc3ltLT5uYW1lLCBuYW1lLCAmbG9jKTsKICAg Y2hlY2tfc3ltYm9sX25vdF9wb2ludGVyIChzeW0sIGxvYywgbmFtZSk7Ci0g IGNoZWNrX2FycmF5X25vdF9hc3N1bWVkIChzeW0sIGxvYywgbmFtZSk7Cisg IGNoZWNrX29hY2NfYXJyYXlfbm90X2Fzc3VtZWQgKHN5bSwgbG9jLCBuYW1l KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTM4MTcsNyArMzgxNCw3IEBAIHJl c29sdmVfb2FjY19kZXZpY2VwdHJfY2xhdXNlIChnZmNfc3ltYm9sICpzeW0s IGxvCiAgIGlmIChzeW0tPmF0dHIudmFsdWUpCiAgICAgZ2ZjX2Vycm9yICgi VkFMVUUgb2JqZWN0ICVxcyBpbiAlcyBjbGF1c2UgYXQgJUwiLAogCSAgICAg ICBzeW0tPm5hbWUsIG5hbWUsICZsb2MpOwotICBjaGVja19hcnJheV9ub3Rf YXNzdW1lZCAoc3ltLCBsb2MsIG5hbWUpOworICBjaGVja19vYWNjX2FycmF5 X25vdF9hc3N1bWVkIChzeW0sIGxvYywgbmFtZSk7CiB9CiAKIApAQCAtNDUw OCw3ICs0NTA1LDcgQEAgcmVzb2x2ZV9vbXBfY2xhdXNlcyAoZ2ZjX2NvZGUg KmNvZGUsIGdmY19vbXBfY2xhdXMKIAkJICB9CiAJCWlmIChjb2RlCiAJCSAg ICAmJiAob2FjY19pc19sb29wIChjb2RlKSB8fCBjb2RlLT5vcCA9PSBFWEVD X09BQ0NfUEFSQUxMRUwpKQotCQkgIGNoZWNrX2FycmF5X25vdF9hc3N1bWVk IChuLT5zeW0sIG4tPndoZXJlLCBuYW1lKTsKKwkJICBjaGVja19vYWNjX2Fy cmF5X25vdF9hc3N1bWVkIChuLT5zeW0sIG4tPndoZXJlLCBuYW1lKTsKIAkJ ZWxzZSBpZiAobi0+c3ltLT5hcyAmJiBuLT5zeW0tPmFzLT50eXBlID09IEFT X0FTU1VNRURfU0laRSkKIAkJICBnZmNfZXJyb3IgKCJBc3N1bWVkIHNpemUg YXJyYXkgJXFzIGluICVzIGNsYXVzZSBhdCAlTCIsCiAJCQkgICAgIG4tPnN5 bS0+bmFtZSwgbmFtZSwgJm4tPndoZXJlKTsKQEAgLTQ3MjUsNyArNDcyMiw3 IEBAIHJlc29sdmVfb21wX2NsYXVzZXMgKGdmY19jb2RlICpjb2RlLCBnZmNf b21wX2NsYXVzCiAJCSAgICAgIC8qIEZBTExUSFJVICovCiAJCSAgY2FzZSBP TVBfTElTVF9ERVZJQ0VfUkVTSURFTlQ6CiAJCSAgICBjaGVja19zeW1ib2xf bm90X3BvaW50ZXIgKG4tPnN5bSwgbi0+d2hlcmUsIG5hbWUpOwotCQkgICAg Y2hlY2tfYXJyYXlfbm90X2Fzc3VtZWQgKG4tPnN5bSwgbi0+d2hlcmUsIG5h bWUpOworCQkgICAgY2hlY2tfb2FjY19hcnJheV9ub3RfYXNzdW1lZCAobi0+ c3ltLCBuLT53aGVyZSwgbmFtZSk7CiAJCSAgICBicmVhazsKIAkJICBkZWZh dWx0OgogCQkgICAgYnJlYWs7CkBAIC01NzYwLDcgKzU3NTcsMTMgQEAgcmVz b2x2ZV9vYWNjX25lc3RlZF9sb29wcyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19j b2QKIAkJICAgICAiYXQgJUwiLCAmZG9fY29kZS0+bG9jKTsKIAkgIGJyZWFr OwogCX0KLSAgICAgIGdjY19hc3NlcnQgKGRvX2NvZGUtPm9wID09IEVYRUNf RE8gfHwgZG9fY29kZS0+b3AgPT0gRVhFQ19ET19DT05DVVJSRU5UKTsKKyAg ICAgIGlmIChkb19jb2RlLT5vcCA9PSBFWEVDX0RPX0NPTkNVUlJFTlQpCisJ eworCSAgZ2ZjX2Vycm9yICgiISRBQ0MgTE9PUCBjYW5ub3QgYmUgYSBETyBD T05DVVJSRU5UIGxvb3AgYXQgJUwiLAorCQkgICAgICZkb19jb2RlLT5sb2Mp OworCSAgYnJlYWs7CisJfQorICAgICAgZ2NjX2Fzc2VydCAoZG9fY29kZS0+ b3AgPT0gRVhFQ19ETyk7CiAgICAgICBpZiAoZG9fY29kZS0+ZXh0Lml0ZXJh dG9yLT52YXItPnRzLnR5cGUgIT0gQlRfSU5URUdFUikKIAlnZmNfZXJyb3Ig KCIhJEFDQyBMT09QIGl0ZXJhdGlvbiB2YXJpYWJsZSBtdXN0IGJlIG9mIHR5 cGUgaW50ZWdlciBhdCAlTCIsCiAJCSAgICZkb19jb2RlLT5sb2MpOwpAQCAt NTg3OCw3ICs1ODgxLDEyIEBAIHJlc29sdmVfb2FjY19sb29wX2Jsb2NrcyAo Z2ZjX2NvZGUgKmNvZGUpCiAJICAgIH0KIAkgIGVsc2UKIAkgICAgewotCSAg ICAgIHJlc29sdmVfcG9zaXRpdmVfaW50X2V4cHIgKGVsLT5leHByLCAiVElM RSIpOworCSAgICAgIHJlc29sdmVfc2NhbGFyX2ludF9leHByIChlbC0+ZXhw ciwgIlRJTEUiKTsKKwkgICAgICBpZiAoZWwtPmV4cHItPmV4cHJfdHlwZSA9 PSBFWFBSX0NPTlNUQU5UCisJCSAgJiYgZWwtPmV4cHItPnRzLnR5cGUgPT0g QlRfSU5URUdFUgorCQkgICYmIG1wel9zZ24gKGVsLT5leHByLT52YWx1ZS5p bnRlZ2VyKSA8PSAwKQorCQlnZmNfZXJyb3IgKCJJTlRFR0VSIGV4cHJlc3Np b24gb2YgVElMRSBjbGF1c2UgYXQgJUwgbXVzdCBiZSAiCisJCQkgICAicG9z aXRpdmUiLCAmZWwtPmV4cHItPndoZXJlKTsKIAkgICAgICBpZiAoZWwtPmV4 cHItPmV4cHJfdHlwZSAhPSBFWFBSX0NPTlNUQU5UKQogCQlnZmNfZXJyb3Ig KCJUSUxFIHJlcXVpcmVzIGNvbnN0YW50IGV4cHJlc3Npb24gYXQgJUwiLAog CQkJICAgJmNvZGUtPmxvYyk7CkBAIC01OTY1LDcgKzU5NzMsNyBAQCBnZmNf cmVzb2x2ZV9vYWNjX2RlY2xhcmUgKGdmY19uYW1lc3BhY2UgKm5zKQogCSAg fQogCiAgICAgICBmb3IgKG4gPSBvYy0+Y2xhdXNlcy0+bGlzdHNbT01QX0xJ U1RfREVWSUNFX1JFU0lERU5UXTsgbjsgbiA9IG4tPm5leHQpCi0JY2hlY2tf YXJyYXlfbm90X2Fzc3VtZWQgKG4tPnN5bSwgb2MtPmxvYywgIkRFVklDRV9S RVNJREVOVCIpOworCWNoZWNrX29hY2NfYXJyYXlfbm90X2Fzc3VtZWQgKG4t PnN5bSwgb2MtPmxvYywgIkRFVklDRV9SRVNJREVOVCIpOwogICAgIH0KIAog ICBmb3IgKG9jID0gbnMtPm9hY2NfZGVjbGFyZTsgb2M7IG9jID0gb2MtPm5l eHQpCkluZGV4OiBnY2MvZm9ydHJhbi90cmFucy1vcGVubXAuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBnY2MvZm9ydHJhbi90cmFucy1vcGVubXAu YwkocmV2aXNpb24gMjY3NTEzKQorKysgZ2NjL2ZvcnRyYW4vdHJhbnMtb3Bl bm1wLmMJKHdvcmtpbmcgY29weSkKQEAgLTEwNjYsNiArMTA2Niw4IEBAIGdm Y19vbXBfZmluaXNoX2NsYXVzZSAodHJlZSBjLCBnaW1wbGVfc2VxICpwcmVf cCkKICAgICB9CiAKICAgdHJlZSBjMiA9IE5VTExfVFJFRSwgYzMgPSBOVUxM X1RSRUUsIGM0ID0gTlVMTF9UUkVFOworICBpZiAoT01QX0NMQVVTRV9NQVBf S0lORCAoYykgPT0gR09NUF9NQVBfRk9SQ0VfREVWSUNFUFRSKQorICAgIHJl dHVybjsKICAgaWYgKFBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKGRlY2wp KSkKICAgICB7CiAgICAgICBpZiAoIWdmY19vbXBfcHJpdmF0aXplX2J5X3Jl ZmVyZW5jZSAoZGVjbCkKQEAgLTIxMTcsNiArMjExOSwxMiBAQCBnZmNfdHJh bnNfb21wX2NsYXVzZXMgKHN0bXRibG9ja190ICpibG9jaywgZ2ZjX29tcAog CSAgICAgIGlmIChuLT5leHByID09IE5VTEwgfHwgbi0+ZXhwci0+cmVmLT51 LmFyLnR5cGUgPT0gQVJfRlVMTCkKIAkJewogCQkgIGlmIChQT0lOVEVSX1RZ UEVfUCAoVFJFRV9UWVBFIChkZWNsKSkKKwkJICAgICAgJiYgbi0+dS5tYXBf b3AgPT0gT01QX01BUF9GT1JDRV9ERVZJQ0VQVFIpCisJCSAgICB7CisJCSAg ICAgIE9NUF9DTEFVU0VfREVDTCAobm9kZSkgPSBkZWNsOworCQkgICAgICBn b3RvIGZpbmFsaXplX21hcF9jbGF1c2U7CisJCSAgICB9CisJCSAgZWxzZSBp ZiAoUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAoZGVjbCkpCiAJCSAgICAg ICYmIChnZmNfb21wX3ByaXZhdGl6ZV9ieV9yZWZlcmVuY2UgKGRlY2wpCiAJ CQkgIHx8IEdGQ19ERUNMX0dFVF9TQ0FMQVJfUE9JTlRFUiAoZGVjbCkKIAkJ CSAgfHwgR0ZDX0RFQ0xfR0VUX1NDQUxBUl9BTExPQ0FUQUJMRSAoZGVjbCkK QEAgLTIyODgsNiArMjI5Niw3IEBAIGdmY190cmFuc19vbXBfY2xhdXNlcyAo c3RtdGJsb2NrX3QgKmJsb2NrLCBnZmNfb21wCiAJCSAgcHRyMiA9IGZvbGRf Y29udmVydCAoc2l6ZXR5cGUsIHB0cjIpOwogCQkgIE9NUF9DTEFVU0VfU0la RSAobm9kZTMpCiAJCSAgICA9IGZvbGRfYnVpbGQyIChNSU5VU19FWFBSLCBz aXpldHlwZSwgcHRyLCBwdHIyKTsKKwkJZmluYWxpemVfbWFwX2NsYXVzZTo7 CiAJCX0KIAkgICAgICBzd2l0Y2ggKG4tPnUubWFwX29wKQogCQl7CkluZGV4 OiBnY2MvZ2ltcGxpZnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBn Y2MvZ2ltcGxpZnkuYwkocmV2aXNpb24gMjY3NTEzKQorKysgZ2NjL2dpbXBs aWZ5LmMJKHdvcmtpbmcgY29weSkKQEAgLTExMyw2ICsxMTMsOSBAQCBlbnVt IGdpbXBsaWZ5X29tcF92YXJfZGF0YQogCiAgIEdPVkRfTk9OVEVNUE9SQUwg PSA0MTk0MzA0LAogCisgIC8qIEZsYWcgZm9yIE9wZW5BQ0MgZGV2aWNlcHRy cy4gICovCisgIEdPVkRfREVWSUNFUFRSID0gODM4ODYwOCwKKwogICBHT1ZE X0RBVEFfU0hBUkVfQ0xBU1MgPSAoR09WRF9TSEFSRUQgfCBHT1ZEX1BSSVZB VEUgfCBHT1ZEX0ZJUlNUUFJJVkFURQogCQkJICAgfCBHT1ZEX0xBU1RQUklW QVRFIHwgR09WRF9SRURVQ1RJT04gfCBHT1ZEX0xJTkVBUgogCQkJICAgfCBH T1ZEX0xPQ0FMKQpAQCAtNzEwOSw2ICs3MTEyLDcgQEAgb2FjY19kZWZhdWx0 X2NsYXVzZSAoc3RydWN0IGdpbXBsaWZ5X29tcF9jdHggKmN0eCwKIHsKICAg Y29uc3QgY2hhciAqcmtpbmQ7CiAgIGJvb2wgb25fZGV2aWNlID0gZmFsc2U7 CisgIGJvb2wgaXNfcHJpdmF0ZSA9IGZhbHNlOwogICBib29sIGRlY2xhcmVk ID0gaXNfb2FjY19kZWNsYXJlZCAoZGVjbCk7CiAgIHRyZWUgdHlwZSA9IFRS RUVfVFlQRSAoZGVjbCk7CiAKQEAgLTcxMTUsOSArNzExOSwxMyBAQCBvYWNj X2RlZmF1bHRfY2xhdXNlIChzdHJ1Y3QgZ2ltcGxpZnlfb21wX2N0eCAqY3R4 LAogICBpZiAobGFuZ19ob29rcy5kZWNscy5vbXBfcHJpdmF0aXplX2J5X3Jl ZmVyZW5jZSAoZGVjbCkpCiAgICAgdHlwZSA9IFRSRUVfVFlQRSAodHlwZSk7 CiAKKyAgaWYgKFJFQ09SRF9PUl9VTklPTl9UWVBFX1AgKHR5cGUpKQorICAg IGlzX3ByaXZhdGUgPSBsYW5nX2hvb2tzLmRlY2xzLm9tcF9kaXNyZWdhcmRf dmFsdWVfZXhwciAoZGVjbCwgZmFsc2UpOworCiAgIGlmICgoY3R4LT5yZWdp b25fdHlwZSAmIChPUlRfQUNDX1BBUkFMTEVMIHwgT1JUX0FDQ19LRVJORUxT KSkgIT0gMAogICAgICAgJiYgaXNfZ2xvYmFsX3ZhciAoZGVjbCkKLSAgICAg ICYmIGRldmljZV9yZXNpZGVudF9wIChkZWNsKSkKKyAgICAgICYmIGRldmlj ZV9yZXNpZGVudF9wIChkZWNsKQorICAgICAgJiYgIWlzX3ByaXZhdGUpCiAg ICAgewogICAgICAgb25fZGV2aWNlID0gdHJ1ZTsKICAgICAgIGZsYWdzIHw9 IEdPVkRfTUFQX1RPX09OTFk7CkBAIC03MTI4LDcgKzcxMzYsOSBAQCBvYWNj X2RlZmF1bHRfY2xhdXNlIChzdHJ1Y3QgZ2ltcGxpZnlfb21wX2N0eCAqY3R4 LAogICAgIGNhc2UgT1JUX0FDQ19LRVJORUxTOgogICAgICAgcmtpbmQgPSAi a2VybmVscyI7CiAKLSAgICAgIGlmIChBR0dSRUdBVEVfVFlQRV9QICh0eXBl KSkKKyAgICAgIGlmIChpc19wcml2YXRlKQorCWZsYWdzIHw9IEdPVkRfTUFQ OworICAgICAgZWxzZSBpZiAoQUdHUkVHQVRFX1RZUEVfUCAodHlwZSkpCiAJ ewogCSAgLyogQWdncmVnYXRlcyBkZWZhdWx0IHRvICdwcmVzZW50X29yX2Nv cHknLCBvciAncHJlc2VudCcuICAqLwogCSAgaWYgKGN0eC0+ZGVmYXVsdF9r aW5kICE9IE9NUF9DTEFVU0VfREVGQVVMVF9QUkVTRU5UKQpAQCAtNzE0NSw3 ICs3MTU1LDkgQEAgb2FjY19kZWZhdWx0X2NsYXVzZSAoc3RydWN0IGdpbXBs aWZ5X29tcF9jdHggKmN0eCwKICAgICBjYXNlIE9SVF9BQ0NfUEFSQUxMRUw6 CiAgICAgICBya2luZCA9ICJwYXJhbGxlbCI7CiAKLSAgICAgIGlmIChvbl9k ZXZpY2UgfHwgZGVjbGFyZWQpCisgICAgICBpZiAoaXNfcHJpdmF0ZSkKKwlm bGFncyB8PSBHT1ZEX0ZJUlNUUFJJVkFURTsKKyAgICAgIGVsc2UgaWYgKG9u X2RldmljZSB8fCBkZWNsYXJlZCkKIAlmbGFncyB8PSBHT1ZEX01BUDsKICAg ICAgIGVsc2UgaWYgKEFHR1JFR0FURV9UWVBFX1AgKHR5cGUpKQogCXsKQEAg LTcyMTEsNyArNzIyMyw4IEBAIG9tcF9ub3RpY2VfdmFyaWFibGUgKHN0cnVj dCBnaW1wbGlmeV9vbXBfY3R4ICpjdHgsCiAJewogCSAgdHJlZSB2YWx1ZSA9 IGdldF9iYXNlX2FkZHJlc3MgKERFQ0xfVkFMVUVfRVhQUiAoZGVjbCkpOwog Ci0JICBpZiAodmFsdWUgJiYgREVDTF9QICh2YWx1ZSkgJiYgREVDTF9USFJF QURfTE9DQUxfUCAodmFsdWUpKQorCSAgaWYgKCEoY3R4LT5yZWdpb25fdHlw ZSAmIE9SVF9BQ0MpCisJICAgICAgJiYgdmFsdWUgJiYgREVDTF9QICh2YWx1 ZSkgJiYgREVDTF9USFJFQURfTE9DQUxfUCAodmFsdWUpKQogCSAgICByZXR1 cm4gb21wX25vdGljZV90aHJlYWRwcml2YXRlX3ZhcmlhYmxlIChjdHgsIGRl Y2wsIHZhbHVlKTsKIAl9CiAKQEAgLTcyNDMsNyArNzI1Niw4IEBAIG9tcF9u b3RpY2VfdmFyaWFibGUgKHN0cnVjdCBnaW1wbGlmeV9vbXBfY3R4ICpjdHgs CiAgIG4gPSBzcGxheV90cmVlX2xvb2t1cCAoY3R4LT52YXJpYWJsZXMsIChz cGxheV90cmVlX2tleSlkZWNsKTsKICAgaWYgKChjdHgtPnJlZ2lvbl90eXBl ICYgT1JUX1RBUkdFVCkgIT0gMCkKICAgICB7Ci0gICAgICByZXQgPSBsYW5n X2hvb2tzLmRlY2xzLm9tcF9kaXNyZWdhcmRfdmFsdWVfZXhwciAoZGVjbCwg dHJ1ZSk7CisgICAgICBzaGFyZWQgPSAhKGN0eC0+cmVnaW9uX3R5cGUgJiBP UlRfQUNDKTsKKyAgICAgIHJldCA9IGxhbmdfaG9va3MuZGVjbHMub21wX2Rp c3JlZ2FyZF92YWx1ZV9leHByIChkZWNsLCBzaGFyZWQpOwogICAgICAgaWYg KG4gPT0gTlVMTCkKIAl7CiAJICB1bnNpZ25lZCBuZmxhZ3MgPSBmbGFnczsK QEAgLTczMTYsNiArNzMzMCw3IEBAIG9tcF9ub3RpY2VfdmFyaWFibGUgKHN0 cnVjdCBnaW1wbGlmeV9vbXBfY3R4ICpjdHgsCiAJCSAgICAgICAgZXJyb3Ig KCJ2YXJpYWJsZSAlcUUgZGVjbGFyZWQgaW4gZW5jbG9zaW5nICIKIAkJCSAg ICAgICAiJTxob3N0X2RhdGElPiByZWdpb24iLCBERUNMX05BTUUgKGRlY2wp KTsKIAkJICAgICAgbmZsYWdzIHw9IEdPVkRfTUFQOworCQkgICAgICBuZmxh Z3MgfD0gKG4yLT52YWx1ZSAmIEdPVkRfREVWSUNFUFRSKTsKIAkJICAgICAg aWYgKG9jdHgtPnJlZ2lvbl90eXBlID09IE9SVF9BQ0NfREFUQQogCQkJICAm JiAobjItPnZhbHVlICYgR09WRF9NQVBfMExFTl9BUlJBWSkpCiAJCQluZmxh Z3MgfD0gR09WRF9NQVBfMExFTl9BUlJBWTsKQEAgLTc0MTEsNiArNzQyNiw4 IEBAIG9tcF9ub3RpY2VfdmFyaWFibGUgKHN0cnVjdCBnaW1wbGlmeV9vbXBf Y3R4ICpjdHgsCiAgICAgfQogCiAgIHNoYXJlZCA9ICgoZmxhZ3MgfCBuLT52 YWx1ZSkgJiBHT1ZEX1NIQVJFRCkgIT0gMDsKKyAgaWYgKGN0eC0+cmVnaW9u X3R5cGUgJiBPUlRfQUNDKQorICAgIHNoYXJlZCA9IGZhbHNlOwogICByZXQg PSBsYW5nX2hvb2tzLmRlY2xzLm9tcF9kaXNyZWdhcmRfdmFsdWVfZXhwciAo ZGVjbCwgc2hhcmVkKTsKIAogICAvKiBJZiBub3RoaW5nIGNoYW5nZWQsIHRo ZXJlJ3Mgbm90aGluZyBsZWZ0IHRvIGRvLiAgKi8KQEAgLTg4MDQsNiArODgy MSw4IEBAIGdpbXBsaWZ5X3NjYW5fb21wX2NsYXVzZXMgKHRyZWUgKmxpc3Rf cCwgZ2ltcGxlX3NlCiAJICBpZiAoT01QX0NMQVVTRV9NQVBfS0lORCAoYykg PT0gR09NUF9NQVBfQUxXQVlTX1RPCiAJICAgICAgfHwgT01QX0NMQVVTRV9N QVBfS0lORCAoYykgPT0gR09NUF9NQVBfQUxXQVlTX1RPRlJPTSkKIAkgICAg ZmxhZ3MgfD0gR09WRF9NQVBfQUxXQVlTX1RPOworCSAgZWxzZSBpZiAoT01Q X0NMQVVTRV9NQVBfS0lORCAoYykgPT0gR09NUF9NQVBfRk9SQ0VfREVWSUNF UFRSKQorCSAgICBmbGFncyB8PSBHT1ZEX0RFVklDRVBUUjsKIAkgIGdvdG8g ZG9fYWRkOwogCiAJY2FzZSBPTVBfQ0xBVVNFX0RFUEVORDoKQEAgLTk1MzQs NyArOTU1Myw4IEBAIGdpbXBsaWZ5X2FkanVzdF9vbXBfY2xhdXNlc18xIChz cGxheV90cmVlX25vZGUgbiwKIAkJICAgICAgIHwgR09WRF9NQVBfRk9SQ0UK IAkJICAgICAgIHwgR09WRF9NQVBfRk9SQ0VfUFJFU0VOVAogCQkgICAgICAg fCBHT1ZEX01BUF9BTExPQ19PTkxZCi0JCSAgICAgICB8IEdPVkRfTUFQX0ZS T01fT05MWSkpCisJCSAgICAgICB8IEdPVkRfTUFQX0ZST01fT05MWQorCQkg ICAgICAgfCBHT1ZEX0RFVklDRVBUUikpCiAJewogCWNhc2UgMDoKIAkgIGtp bmQgPSBHT01QX01BUF9UT0ZST007CkBAIC05NTU3LDYgKzk1NzcsOSBAQCBn aW1wbGlmeV9hZGp1c3Rfb21wX2NsYXVzZXNfMSAoc3BsYXlfdHJlZV9ub2Rl IG4sCiAJY2FzZSBHT1ZEX01BUF9GT1JDRV9QUkVTRU5UOgogCSAga2luZCA9 IEdPTVBfTUFQX0ZPUkNFX1BSRVNFTlQ7CiAJICBicmVhazsKKwljYXNlIEdP VkRfREVWSUNFUFRSOgorCSAga2luZCA9IEdPTVBfTUFQX0ZPUkNFX0RFVklD RVBUUjsKKwkgIGJyZWFrOwogCWRlZmF1bHQ6CiAJICBnY2NfdW5yZWFjaGFi bGUgKCk7CiAJfQpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24v Z29hY2MvZGV2aWNlcHRyLTQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb2FjYy9kZXZpY2VwdHIt NC5jCShyZXZpc2lvbiAyNjc1MTMpCisrKyBnY2MvdGVzdHN1aXRlL2MtYysr LWNvbW1vbi9nb2FjYy9kZXZpY2VwdHItNC5jCSh3b3JraW5nIGNvcHkpCkBA IC04LDQgKzgsNCBAQCBzdWJyIChpbnQgKmEpCiAgIGFbMF0gKz0gMS4wOwog fQogCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNw cmFnbWEgb21wIHRhcmdldCBvYWNjX3BhcmFsbGVsLiptYXBcXCh0b2Zyb206 YSIgMSAiZ2ltcGxlIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgdGFyZ2V0IG9hY2NfcGFyYWxs ZWwuKm1hcFxcKGZvcmNlX2RldmljZXB0cjphIiAxICJnaW1wbGUiIH0gfSAq LwpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9jb21t b24tYmxvY2stMS5mOTAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9jb21tb24tYmxvY2stMS5m OTAJKG5vbmV4aXN0ZW50KQorKysgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb2FjYy9jb21tb24tYmxvY2stMS5mOTAJKHdvcmtpbmcgY29weSkKQEAg LTAsMCArMSw2OSBAQAorISBUZXN0IGRhdGEgY2xhdXNlcyBpbnZvbHZpbmcg Y29tbW9uIGJsb2NrcyBhbmQgY29tbW9uIGJsb2NrIGRhdGEuCishIFNwZWNp ZmljYWxseSwgdmFsaWRhdGUgZWFybHkgbWF0Y2hpbmcgZXJyb3JzLgorCitz dWJyb3V0aW5lIHN1YnRlc3QKKyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2Vy LCBwYXJhbWV0ZXIgOjogbiA9IDEwCisgIGludGVnZXIgYShuKSwgYihuKSwg YywgZChuKSwgZQorICByZWFsKjQgeChuKSwgeShuKSwgeiwgdyhuKSwgdgor ICBjb21tb24gL2Jsb2NrQS8gYSwgYywgeAorICBjb21tb24gL2Jsb2NrQi8g YiwgeSwgegorICAhJGFjYyBkZWNsYXJlIGxpbmsoL2Jsb2NrQS8sIC9ibG9j a0IvLCBlLCB2KQorZW5kIHN1YnJvdXRpbmUgc3VidGVzdAorCitwcm9ncmFt IHRlc3QKKyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2VyLCBwYXJhbWV0ZXIg OjogbiA9IDEwCisgIGludGVnZXIgYShuKSwgYihuKSwgYywgZChuKSwgZQor ICByZWFsKjQgeChuKSwgeShuKSwgeiwgdyhuKSwgdgorICBjb21tb24gL2Js b2NrQS8gYSwgYywgeAorICBjb21tb24gL2Jsb2NrQi8gYiwgeSwgegorICAh JGFjYyBkZWNsYXJlIGxpbmsoL2Jsb2NrQS8sIC9ibG9ja0IvLCBlLCB2KQor CisgICEkYWNjIGRhdGEgY29weSgvYmxvY2tBLywgL2Jsb2NrQi8sIGUsIHYp CisgICEkYWNjIGVuZCBkYXRhCisKKyAgISRhY2MgZGF0YSBjb3B5aW4oL2Js b2NrQS8sIC9ibG9ja0IvLCBlLCB2KQorICAhJGFjYyBlbmQgZGF0YQorCisg ICEkYWNjIGRhdGEgY29weW91dCgvYmxvY2tBLywgL2Jsb2NrQi8sIGUsIHYp CisgICEkYWNjIGVuZCBkYXRhCisKKyAgISRhY2MgZGF0YSBjcmVhdGUoL2Js b2NrQS8sIC9ibG9ja0IvLCBlLCB2KQorICAhJGFjYyBlbmQgZGF0YQorCisg ICEkYWNjIGRhdGEgY29weW91dCgvYmxvY2tBLywgL2Jsb2NrQi8sIGUsIHYp CisgICEkYWNjIGVuZCBkYXRhCisKKyAgISRhY2MgZGF0YSBwY29weSgvYmxv Y2tBLywgL2Jsb2NrQi8sIGUsIHYpCisgICEkYWNjIGVuZCBkYXRhCisKKyAg ISRhY2MgZGF0YSBwY29weWluKC9ibG9ja0EvLCAvYmxvY2tCLywgZSwgdikK KyAgISRhY2MgZW5kIGRhdGEKKworICAhJGFjYyBkYXRhIHBjb3B5b3V0KC9i bG9ja0EvLCAvYmxvY2tCLywgZSwgdikKKyAgISRhY2MgZW5kIGRhdGEKKwor ICAhJGFjYyBkYXRhIHBjcmVhdGUoL2Jsb2NrQS8sIC9ibG9ja0IvLCBlLCB2 KQorICAhJGFjYyBlbmQgZGF0YQorCisgICEkYWNjIGRhdGEgcGNvcHlvdXQo L2Jsb2NrQS8sIC9ibG9ja0IvLCBlLCB2KQorICAhJGFjYyBlbmQgZGF0YQor CisgICEkYWNjIGRhdGEgcHJlc2VudCgvYmxvY2tBLywgL2Jsb2NrQi8sIGUs IHYpICEgeyBkZy1lcnJvciAiIiB9CisgICEkYWNjIGVuZCBkYXRhICEgeyBk Zy1lcnJvciAiVW5leHBlY3RlZCAuLkFDQyBFTkQgREFUQSBzdGF0ZW1lbnQi IH0KKworICAhJGFjYyBwYXJhbGxlbCBwcml2YXRlKC9ibG9ja0EvLCAvYmxv Y2tCLywgZSwgdikKKyAgISRhY2MgZW5kIHBhcmFsbGVsCisKKyAgISRhY2Mg cGFyYWxsZWwgZmlyc3Rwcml2YXRlKC9ibG9ja0EvLCAvYmxvY2tCLywgZSwg dikKKyAgISRhY2MgZW5kIHBhcmFsbGVsCisKKyAgISRhY2MgZXhpdCBkYXRh IGRlbGV0ZSgvYmxvY2tBLywgL2Jsb2NrQi8sIGUsIHYpCisKKyAgISRhY2Mg ZGF0YSBkZXZpY2VwdHIoL2Jsb2NrQS8sIC9ibG9ja0IvLCBlLCB2KSAhIHsg ZGctZXJyb3IgIlN5bnRheCBlcnJvciIgfQorICAhJGFjYyBlbmQgZGF0YSAh IHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgLi5BQ0MgRU5EIERBVEEgc3RhdGVt ZW50IiB9CisKKyAgISRhY2MgZGF0YSBkZXZpY2VwdHIoL2Jsb2NrQS8sIC9i bG9ja0IvLCBlLCB2KSAhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciIgfQor ICAhJGFjYyBlbmQgZGF0YSAhIHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgLi5B Q0MgRU5EIERBVEEgc3RhdGVtZW50IiB9CitlbmQgcHJvZ3JhbSB0ZXN0Cklu ZGV4OiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL2NvbW1vbi1i bG9jay0yLmY5MAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL2NvbW1vbi1ibG9jay0yLmY5MAko bm9uZXhpc3RlbnQpCisrKyBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dv YWNjL2NvbW1vbi1ibG9jay0yLmY5MAkod29ya2luZyBjb3B5KQpAQCAtMCww ICsxLDQ5IEBACishIFRlc3QgZGF0YSBjbGF1c2VzIGludm9sdmluZyBjb21t b24gYmxvY2tzIGFuZCBjb21tb24gYmxvY2sgZGF0YS4KKyEgU3BlY2lmaWNh bGx5LCByZXNvbHZlciBlcnJvcnMgc3VjaCBhcyBkdXBsaWNhdGUgZGF0YSBj bGF1c2VzLgorCitwcm9ncmFtIHRlc3QKKyAgaW1wbGljaXQgbm9uZQorICBp bnRlZ2VyLCBwYXJhbWV0ZXIgOjogbiA9IDEwCisgIGludGVnZXIgYShuKSwg YihuKSwgYywgZChuKSwgZQorICByZWFsKjQgeChuKSwgeShuKSwgeiwgdyhu KSwgdgorICBjb21tb24gL2Jsb2NrQS8gYSwgYywgeAorICBjb21tb24gL2Js b2NrQi8gYiwgeSwgegorCisgICEkYWNjIGRhdGEgY29weSgvYmxvY2tBLywg L2Jsb2NrQi8sIGUsIHYsIGEpICEgeyBkZy1lcnJvciAiU3ltYm9sIC5hLiBw cmVzZW50IG9uIG11bHRpcGxlIGNsYXVzZXMiIH0KKyAgISRhY2MgZW5kIGRh dGEKKworICAhJGFjYyBkYXRhIGNvcHlpbigvYmxvY2tBLywgL2Jsb2NrQi8s IGUsIHYsIGEpICEgeyBkZy1lcnJvciAiU3ltYm9sIC5hLiBwcmVzZW50IG9u IG11bHRpcGxlIGNsYXVzZXMiIH0KKyAgISRhY2MgZW5kIGRhdGEKKworICAh JGFjYyBkYXRhIGNvcHlvdXQoL2Jsb2NrQS8sIC9ibG9ja0IvLCBlLCB2LCBh KSAhIHsgZGctZXJyb3IgIlN5bWJvbCAuYS4gcHJlc2VudCBvbiBtdWx0aXBs ZSBjbGF1c2VzIiB9CisgICEkYWNjIGVuZCBkYXRhCisKKyAgISRhY2MgZGF0 YSBjcmVhdGUoL2Jsb2NrQS8sIC9ibG9ja0IvLCBlLCB2LCBhKSAhIHsgZGct ZXJyb3IgIlN5bWJvbCAuYS4gcHJlc2VudCBvbiBtdWx0aXBsZSBjbGF1c2Vz IiB9CisgICEkYWNjIGVuZCBkYXRhCisKKyAgISRhY2MgZGF0YSBjb3B5b3V0 KC9ibG9ja0EvLCAvYmxvY2tCLywgZSwgdiwgYSkgISB7IGRnLWVycm9yICJT eW1ib2wgLmEuIHByZXNlbnQgb24gbXVsdGlwbGUgY2xhdXNlcyIgfQorICAh JGFjYyBlbmQgZGF0YQorCisgICEkYWNjIGRhdGEgcGNvcHkoL2Jsb2NrQS8s IC9ibG9ja0IvLCBlLCB2LCBhKSAhIHsgZGctZXJyb3IgIlN5bWJvbCAuYS4g cHJlc2VudCBvbiBtdWx0aXBsZSBjbGF1c2VzIiB9CisgICEkYWNjIGVuZCBk YXRhCisKKyAgISRhY2MgZGF0YSBwY29weWluKC9ibG9ja0EvLCAvYmxvY2tC LywgZSwgdiwgYSkgISB7IGRnLWVycm9yICJTeW1ib2wgLmEuIHByZXNlbnQg b24gbXVsdGlwbGUgY2xhdXNlcyIgfQorICAhJGFjYyBlbmQgZGF0YQorCisg ICEkYWNjIGRhdGEgcGNvcHlvdXQoL2Jsb2NrQS8sIC9ibG9ja0IvLCBlLCB2 LCBhKSAhIHsgZGctZXJyb3IgIlN5bWJvbCAuYS4gcHJlc2VudCBvbiBtdWx0 aXBsZSBjbGF1c2VzIiB9CisgICEkYWNjIGVuZCBkYXRhCisKKyAgISRhY2Mg ZGF0YSBwY3JlYXRlKC9ibG9ja0EvLCAvYmxvY2tCLywgZSwgdiwgYSkgISB7 IGRnLWVycm9yICJTeW1ib2wgLmEuIHByZXNlbnQgb24gbXVsdGlwbGUgY2xh dXNlcyIgfQorICAhJGFjYyBlbmQgZGF0YQorCisgICEkYWNjIGRhdGEgcGNv cHlvdXQoL2Jsb2NrQS8sIC9ibG9ja0IvLCBlLCB2LCBhKSAhIHsgZGctZXJy b3IgIlN5bWJvbCAuYS4gcHJlc2VudCBvbiBtdWx0aXBsZSBjbGF1c2VzIiB9 CisgICEkYWNjIGVuZCBkYXRhCisKKyAgISRhY2MgcGFyYWxsZWwgcHJpdmF0 ZSgvYmxvY2tBLywgL2Jsb2NrQi8sIGUsIHYsIGEpICEgeyBkZy1lcnJvciAi U3ltYm9sIC5hLiBwcmVzZW50IG9uIG11bHRpcGxlIGNsYXVzZXMiIH0KKyAg ISRhY2MgZW5kIHBhcmFsbGVsCisKKyAgISRhY2MgcGFyYWxsZWwgZmlyc3Rw cml2YXRlKC9ibG9ja0EvLCAvYmxvY2tCLywgZSwgdiwgYSkgISB7IGRnLWVy cm9yICJTeW1ib2wgLmEuIHByZXNlbnQgb24gbXVsdGlwbGUgY2xhdXNlcyIg fQorICAhJGFjYyBlbmQgcGFyYWxsZWwKKworICAhJGFjYyBleGl0IGRhdGEg ZGVsZXRlKC9ibG9ja0EvLCAvYmxvY2tCLywgZSwgdiwgYSkgISB7IGRnLWVy cm9yICJTeW1ib2wgLmEuIHByZXNlbnQgb24gbXVsdGlwbGUgY2xhdXNlcyIg fQorZW5kIHByb2dyYW0gdGVzdApJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9nb2FjYy9sb29wLTIta2VybmVscy10aWxlLmY5NQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2dvYWNjL2xvb3AtMi1rZXJuZWxzLXRpbGUuZjk1CShyZXZpc2lvbiAyNjc1 MTMpCisrKyBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL2xvb3At Mi1rZXJuZWxzLXRpbGUuZjk1CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy OSw3IEBAIHByb2dyYW0gdGVzdAogICAgICAgRE8gaiA9IDEsMTAKICAgICAg IEVORERPCiAgICAgRU5ERE8KLSAgICAhJGFjYyBsb29wIHRpbGUoLTEpICEg eyBkZy13YXJuaW5nICJtdXN0IGJlIHBvc2l0aXZlIiB9CisgICAgISRhY2Mg bG9vcCB0aWxlKC0xKSAhIHsgZGctZXJyb3IgIm11c3QgYmUgcG9zaXRpdmUi IH0KICAgICBkbyBpID0gMSwxMAogICAgIGVuZGRvCiAgICAgISRhY2MgbG9v cCB0aWxlKGkpICEgeyBkZy1lcnJvciAiY29uc3RhbnQgZXhwcmVzc2lvbiIg fQpAQCAtODIsNyArODIsNyBAQCBwcm9ncmFtIHRlc3QKICAgICBETyBqID0g MSwxMAogICAgIEVORERPCiAgIEVORERPCi0gICEkYWNjIGtlcm5lbHMgbG9v cCB0aWxlKC0xKSAhIHsgZGctd2FybmluZyAibXVzdCBiZSBwb3NpdGl2ZSIg fQorICAhJGFjYyBrZXJuZWxzIGxvb3AgdGlsZSgtMSkgISB7IGRnLWVycm9y ICJtdXN0IGJlIHBvc2l0aXZlIiB9CiAgIGRvIGkgPSAxLDEwCiAgIGVuZGRv CiAgICEkYWNjIGtlcm5lbHMgbG9vcCB0aWxlKGkpICEgeyBkZy1lcnJvciAi Y29uc3RhbnQgZXhwcmVzc2lvbiIgfQpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9nb2FjYy9sb29wLTItcGFyYWxsZWwtdGlsZS5mOTUKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb2FjYy9sb29wLTItcGFyYWxsZWwtdGlsZS5mOTUJKHJldmlzaW9u IDI2NzUxMykKKysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29hY2Mv bG9vcC0yLXBhcmFsbGVsLXRpbGUuZjk1CSh3b3JraW5nIGNvcHkpCkBAIC0y MCw3ICsyMCw3IEBAIHByb2dyYW0gdGVzdAogICAgICAgRE8gaiA9IDEsMTAK ICAgICAgIEVORERPCiAgICAgRU5ERE8KLSAgICAhJGFjYyBsb29wIHRpbGUo LTEpICEgeyBkZy13YXJuaW5nICJtdXN0IGJlIHBvc2l0aXZlIiB9CisgICAg ISRhY2MgbG9vcCB0aWxlKC0xKSAhIHsgZGctZXJyb3IgIm11c3QgYmUgcG9z aXRpdmUiIH0KICAgICBkbyBpID0gMSwxMAogICAgIGVuZGRvCiAgICAgISRh Y2MgbG9vcCB0aWxlKGkpICEgeyBkZy1lcnJvciAiY29uc3RhbnQgZXhwcmVz c2lvbiIgfQpAQCAtNzMsNyArNzMsNyBAQCBwcm9ncmFtIHRlc3QKICAgICBE TyBqID0gMSwxMAogICAgIEVORERPCiAgIEVORERPCi0gICEkYWNjIHBhcmFs bGVsIGxvb3AgdGlsZSgtMSkgISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9z aXRpdmUiIH0KKyAgISRhY2MgcGFyYWxsZWwgbG9vcCB0aWxlKC0xKSAhIHsg ZGctZXJyb3IgIm11c3QgYmUgcG9zaXRpdmUiIH0KICAgZG8gaSA9IDEsMTAK ICAgZW5kZG8KICAgISRhY2MgcGFyYWxsZWwgbG9vcCB0aWxlKGkpICEgeyBk Zy1lcnJvciAiY29uc3RhbnQgZXhwcmVzc2lvbiIgfQpJbmRleDogZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9sb29wLTMtMi5mOTUKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb2FjYy9sb29wLTMtMi5mOTUJKHJldmlzaW9uIDI2NzUxMykKKysrIGdj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29hY2MvbG9vcC0zLTIuZjk1CSh3 b3JraW5nIGNvcHkpCkBAIC0yNyw5ICsyNyw5IEBAIHN1YnJvdXRpbmUgdGVz dDEKICAgISRhY2MgZW5kIHBhcmFsbGVsCiAgICEkYWNjIGVuZCBsb29wICEg eyBkZy1lcnJvciAiVW5leHBlY3RlZCIgfQogCi0gICEgT3BlbkFDQyBzdXBw b3J0cyBGb3J0cmFuIDIwMDggZG8gY29uY3VycmVudCBzdGF0ZW1lbnQKKyAg ISBPcGVuQUNDIGRvZXMgbm90IHN1cHBvcnQgRm9ydHJhbiAyMDA4IGRvIGNv bmN1cnJlbnQgc3RhdGVtZW50CiAgICEkYWNjIGxvb3AKLSAgZG8gY29uY3Vy cmVudCAoaSA9IDE6NSkKKyAgZG8gY29uY3VycmVudCAoaSA9IDE6NSkgISB7 IGRnLWVycm9yICJBQ0MgTE9PUCBjYW5ub3QgYmUgYSBETyBDT05DVVJSRU5U IGxvb3AiIH0KICAgZW5kIGRvCiAKICAgISRhY2MgbG9vcApJbmRleDogZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9sb29wLTMuZjk1Cj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZ29hY2MvbG9vcC0zLmY5NQkocmV2aXNpb24gMjY3NTEzKQorKysgZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9sb29wLTMuZjk1CSh3b3Jr aW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw5IEBAIHN1YnJvdXRpbmUgdGVzdDEK ICAgISRhY2MgZW5kIHBhcmFsbGVsCiAgICEkYWNjIGVuZCBsb29wICEgeyBk Zy1lcnJvciAiVW5leHBlY3RlZCIgfQogCi0gICEgT3BlbkFDQyBzdXBwb3J0 cyBGb3J0cmFuIDIwMDggZG8gY29uY3VycmVudCBzdGF0ZW1lbnQKKyAgISBP cGVuQUNDIGRvZXMgbm90IHN1cHBvcnQgRm9ydHJhbiAyMDA4IGRvIGNvbmN1 cnJlbnQgc3RhdGVtZW50CiAgICEkYWNjIGxvb3AKLSAgZG8gY29uY3VycmVu dCAoaSA9IDE6NSkKKyAgZG8gY29uY3VycmVudCAoaSA9IDE6NSkgISB7IGRn LWVycm9yICJBQ0MgTE9PUCBjYW5ub3QgYmUgYSBETyBDT05DVVJSRU5UIGxv b3AiIH0KICAgZW5kIGRvCiAKICAgISRhY2MgbG9vcApJbmRleDogZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9sb29wLTUuZjk1Cj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Z29hY2MvbG9vcC01LmY5NQkocmV2aXNpb24gMjY3NTEzKQorKysgZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9sb29wLTUuZjk1CSh3b3JraW5n IGNvcHkpCkBAIC05Myw5ICs5Myw2IEBAIHByb2dyYW0gdGVzdAogICAgICAg RE8gaiA9IDEsMTAKICAgICAgIEVORERPCiAgICAgRU5ERE8KLSAgICAhJGFj YyBsb29wIHRpbGUoLTEpICEgeyBkZy13YXJuaW5nICJtdXN0IGJlIHBvc2l0 aXZlIiB9Ci0gICAgZG8gaSA9IDEsMTAKLSAgICBlbmRkbwogICAgICEkYWNj IGxvb3AgdmVjdG9yIHRpbGUoKikKICAgICBETyBpID0gMSwxMAogICAgIEVO RERPCkBAIC0xMjksOSArMTI2LDYgQEAgcHJvZ3JhbSB0ZXN0CiAgICAgICBE TyBqID0gMSwxMAogICAgICAgRU5ERE8KICAgICBFTkRETwotICAgICEkYWNj IGxvb3AgdGlsZSgtMSkgISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9zaXRp dmUiIH0KLSAgICBkbyBpID0gMSwxMAotICAgIGVuZGRvCiAgICAgISRhY2Mg bG9vcCB2ZWN0b3IgdGlsZSgqKQogICAgIERPIGkgPSAxLDEwCiAgICAgRU5E RE8KQEAgLTI0Miw5ICsyMzYsNiBAQCBwcm9ncmFtIHRlc3QKICAgICBETyBq ID0gMSwxMAogICAgIEVORERPCiAgIEVORERPCi0gICEkYWNjIGtlcm5lbHMg bG9vcCB0aWxlKC0xKSAhIHsgZGctd2FybmluZyAibXVzdCBiZSBwb3NpdGl2 ZSIgfQotICBkbyBpID0gMSwxMAotICBlbmRkbwogICAhJGFjYyBrZXJuZWxz IGxvb3AgdmVjdG9yIHRpbGUoKikKICAgRE8gaSA9IDEsMTAKICAgRU5ERE8K QEAgLTMzMyw5ICszMjQsNiBAQCBwcm9ncmFtIHRlc3QKICAgICBETyBqID0g MSwxMAogICAgIEVORERPCiAgIEVORERPCi0gICEkYWNjIHBhcmFsbGVsIGxv b3AgdGlsZSgtMSkgISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9zaXRpdmUi IH0KLSAgZG8gaSA9IDEsMTAKLSAgZW5kZG8KICAgISRhY2MgcGFyYWxsZWwg bG9vcCB2ZWN0b3IgdGlsZSgqKQogICBETyBpID0gMSwxMAogICBFTkRETwpJ bmRleDogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9wcjcyNzE1 LmY5MAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvYWNjL3ByNzI3MTUuZjkwCShub25leGlzdGVudCkK KysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29hY2MvcHI3MjcxNS5m OTAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2IEBACitwcm9ncmFtIHAK KyAgaW50ZWdlciA6OiBpCisgICEkYWNjIGxvb3AKKyAgZG8gY29uY3VycmVu dCAoaT0xOjMpICEgeyBkZy1lcnJvciAiQUNDIExPT1AgY2Fubm90IGJlIGEg RE8gQ09OQ1VSUkVOVCBsb29wIiB9CisgIGVuZCBkbworZW5kIHByb2dyYW0g cApJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9zaWUu Zjk1Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29hY2Mvc2llLmY5NQkocmV2aXNpb24gMjY3NTEzKQor KysgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9zaWUuZjk1CSh3 b3JraW5nIGNvcHkpCkBAIC03OCwxMCArNzgsMTAgQEAgcHJvZ3JhbSB0ZXN0 CiAgICEkYWNjIHBhcmFsbGVsIG51bV9nYW5ncyhpKzEpCiAgICEkYWNjIGVu ZCBwYXJhbGxlbAogCi0gICEkYWNjIHBhcmFsbGVsIG51bV9nYW5ncygtMSkg ISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9zaXRpdmUiIH0KKyAgISRhY2Mg cGFyYWxsZWwgbnVtX2dhbmdzKC0xKSAhIHsgZGctZXJyb3IgIm11c3QgYmUg cG9zaXRpdmUiIH0KICAgISRhY2MgZW5kIHBhcmFsbGVsCiAKLSAgISRhY2Mg cGFyYWxsZWwgbnVtX2dhbmdzKDApICEgeyBkZy13YXJuaW5nICJtdXN0IGJl IHBvc2l0aXZlIiB9CisgICEkYWNjIHBhcmFsbGVsIG51bV9nYW5ncygwKSAh IHsgZGctZXJyb3IgIm11c3QgYmUgcG9zaXRpdmUiIH0KICAgISRhY2MgZW5k IHBhcmFsbGVsCiAKICAgISRhY2MgcGFyYWxsZWwgbnVtX2dhbmdzKCkgISB7 IGRnLWVycm9yICJJbnZhbGlkIGNoYXJhY3RlciBpbiBuYW1lIiB9CkBAIC0x MDYsMTAgKzEwNiwxMCBAQCBwcm9ncmFtIHRlc3QKICAgISRhY2Mga2VybmVs cyBudW1fZ2FuZ3MoaSsxKQogICAhJGFjYyBlbmQga2VybmVscwogCi0gICEk YWNjIGtlcm5lbHMgbnVtX2dhbmdzKC0xKSAhIHsgZGctd2FybmluZyAibXVz dCBiZSBwb3NpdGl2ZSIgfQorICAhJGFjYyBrZXJuZWxzIG51bV9nYW5ncygt MSkgISB7IGRnLWVycm9yICJtdXN0IGJlIHBvc2l0aXZlIiB9CiAgICEkYWNj IGVuZCBrZXJuZWxzCiAKLSAgISRhY2Mga2VybmVscyBudW1fZ2FuZ3MoMCkg ISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9zaXRpdmUiIH0KKyAgISRhY2Mg a2VybmVscyBudW1fZ2FuZ3MoMCkgISB7IGRnLWVycm9yICJtdXN0IGJlIHBv c2l0aXZlIiB9CiAgICEkYWNjIGVuZCBrZXJuZWxzCiAKICAgISRhY2Mga2Vy bmVscyBudW1fZ2FuZ3MoKSAhIHsgZGctZXJyb3IgIkludmFsaWQgY2hhcmFj dGVyIGluIG5hbWUiIH0KQEAgLTEzNSwxMCArMTM1LDEwIEBAIHByb2dyYW0g dGVzdAogICAhJGFjYyBwYXJhbGxlbCBudW1fd29ya2VycyhpKzEpCiAgICEk YWNjIGVuZCBwYXJhbGxlbAogCi0gICEkYWNjIHBhcmFsbGVsIG51bV93b3Jr ZXJzKC0xKSAhIHsgZGctd2FybmluZyAibXVzdCBiZSBwb3NpdGl2ZSIgfQor ICAhJGFjYyBwYXJhbGxlbCBudW1fd29ya2VycygtMSkgISB7IGRnLWVycm9y ICJtdXN0IGJlIHBvc2l0aXZlIiB9CiAgICEkYWNjIGVuZCBwYXJhbGxlbAog Ci0gICEkYWNjIHBhcmFsbGVsIG51bV93b3JrZXJzKDApICEgeyBkZy13YXJu aW5nICJtdXN0IGJlIHBvc2l0aXZlIiB9CisgICEkYWNjIHBhcmFsbGVsIG51 bV93b3JrZXJzKDApICEgeyBkZy1lcnJvciAibXVzdCBiZSBwb3NpdGl2ZSIg fQogICAhJGFjYyBlbmQgcGFyYWxsZWwKIAogICAhJGFjYyBwYXJhbGxlbCBu dW1fd29ya2VycygpICEgeyBkZy1lcnJvciAiSW52YWxpZCBjaGFyYWN0ZXIg aW4gbmFtZSIgfQpAQCAtMTYzLDEwICsxNjMsMTAgQEAgcHJvZ3JhbSB0ZXN0 CiAgICEkYWNjIGtlcm5lbHMgbnVtX3dvcmtlcnMoaSsxKQogICAhJGFjYyBl bmQga2VybmVscwogCi0gICEkYWNjIGtlcm5lbHMgbnVtX3dvcmtlcnMoLTEp ICEgeyBkZy13YXJuaW5nICJtdXN0IGJlIHBvc2l0aXZlIiB9CisgICEkYWNj IGtlcm5lbHMgbnVtX3dvcmtlcnMoLTEpICEgeyBkZy1lcnJvciAibXVzdCBi ZSBwb3NpdGl2ZSIgfQogICAhJGFjYyBlbmQga2VybmVscwogCi0gICEkYWNj IGtlcm5lbHMgbnVtX3dvcmtlcnMoMCkgISB7IGRnLXdhcm5pbmcgIm11c3Qg YmUgcG9zaXRpdmUiIH0KKyAgISRhY2Mga2VybmVscyBudW1fd29ya2Vycygw KSAhIHsgZGctZXJyb3IgIm11c3QgYmUgcG9zaXRpdmUiIH0KICAgISRhY2Mg ZW5kIGtlcm5lbHMKIAogICAhJGFjYyBrZXJuZWxzIG51bV93b3JrZXJzKCkg ISB7IGRnLWVycm9yICJJbnZhbGlkIGNoYXJhY3RlciBpbiBuYW1lIiB9CkBA IC0xOTIsMTAgKzE5MiwxMCBAQCBwcm9ncmFtIHRlc3QKICAgISRhY2MgcGFy YWxsZWwgdmVjdG9yX2xlbmd0aChpKzEpCiAgICEkYWNjIGVuZCBwYXJhbGxl bAogCi0gICEkYWNjIHBhcmFsbGVsIHZlY3Rvcl9sZW5ndGgoLTEpICEgeyBk Zy13YXJuaW5nICJtdXN0IGJlIHBvc2l0aXZlIiB9CisgICEkYWNjIHBhcmFs bGVsIHZlY3Rvcl9sZW5ndGgoLTEpICEgeyBkZy1lcnJvciAibXVzdCBiZSBw b3NpdGl2ZSIgfQogICAhJGFjYyBlbmQgcGFyYWxsZWwKIAotICAhJGFjYyBw YXJhbGxlbCB2ZWN0b3JfbGVuZ3RoKDApICEgeyBkZy13YXJuaW5nICJtdXN0 IGJlIHBvc2l0aXZlIiB9CisgICEkYWNjIHBhcmFsbGVsIHZlY3Rvcl9sZW5n dGgoMCkgISB7IGRnLWVycm9yICJtdXN0IGJlIHBvc2l0aXZlIiB9CiAgICEk YWNjIGVuZCBwYXJhbGxlbAogCiAgICEkYWNjIHBhcmFsbGVsIHZlY3Rvcl9s ZW5ndGgoKSAhIHsgZGctZXJyb3IgIkludmFsaWQgY2hhcmFjdGVyIGluIG5h bWUiIH0KQEAgLTIyMCwxMCArMjIwLDEwIEBAIHByb2dyYW0gdGVzdAogICAh JGFjYyBrZXJuZWxzIHZlY3Rvcl9sZW5ndGgoaSsxKQogICAhJGFjYyBlbmQg a2VybmVscwogCi0gICEkYWNjIGtlcm5lbHMgdmVjdG9yX2xlbmd0aCgtMSkg ISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9zaXRpdmUiIH0KKyAgISRhY2Mg a2VybmVscyB2ZWN0b3JfbGVuZ3RoKC0xKSAhIHsgZGctZXJyb3IgIm11c3Qg YmUgcG9zaXRpdmUiIH0KICAgISRhY2MgZW5kIGtlcm5lbHMKIAotICAhJGFj YyBrZXJuZWxzIHZlY3Rvcl9sZW5ndGgoMCkgISB7IGRnLXdhcm5pbmcgIm11 c3QgYmUgcG9zaXRpdmUiIH0KKyAgISRhY2Mga2VybmVscyB2ZWN0b3JfbGVu Z3RoKDApICEgeyBkZy1lcnJvciAibXVzdCBiZSBwb3NpdGl2ZSIgfQogICAh JGFjYyBlbmQga2VybmVscwogCiAgICEkYWNjIGtlcm5lbHMgdmVjdG9yX2xl bmd0aCgpICEgeyBkZy1lcnJvciAiSW52YWxpZCBjaGFyYWN0ZXIgaW4gbmFt ZSIgfQpAQCAtMjUwLDEwICsyNTAsMTAgQEAgcHJvZ3JhbSB0ZXN0CiAgICEk YWNjIGxvb3AgZ2FuZyhpKzEpCiAgIGRvIGkgPSAxLDEwCiAgIGVuZGRvCi0g ICEkYWNjIGxvb3AgZ2FuZygtMSkgISB7IGRnLXdhcm5pbmcgIm11c3QgYmUg cG9zaXRpdmUiIH0KKyAgISRhY2MgbG9vcCBnYW5nKC0xKSAhIHsgZGctZXJy b3IgIm11c3QgYmUgcG9zaXRpdmUiIH0KICAgZG8gaSA9IDEsMTAKICAgZW5k ZG8KLSAgISRhY2MgbG9vcCBnYW5nKDApICEgeyBkZy13YXJuaW5nICJtdXN0 IGJlIHBvc2l0aXZlIiB9CisgICEkYWNjIGxvb3AgZ2FuZygwKSAhIHsgZGct ZXJyb3IgIm11c3QgYmUgcG9zaXRpdmUiIH0KICAgZG8gaSA9IDEsMTAKICAg ZW5kZG8KICAgISRhY2MgbG9vcCBnYW5nKCkgISB7IGRnLWVycm9yICJJbnZh bGlkIGNoYXJhY3RlciBpbiBuYW1lIiB9CkBAIC0yODIsMTAgKzI4MiwxMCBA QCBwcm9ncmFtIHRlc3QKICAgISRhY2MgbG9vcCB3b3JrZXIoaSsxKQogICBk byBpID0gMSwxMAogICBlbmRkbwotICAhJGFjYyBsb29wIHdvcmtlcigtMSkg ISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9zaXRpdmUiIH0KKyAgISRhY2Mg bG9vcCB3b3JrZXIoLTEpICEgeyBkZy1lcnJvciAibXVzdCBiZSBwb3NpdGl2 ZSIgfQogICBkbyBpID0gMSwxMAogICBlbmRkbwotICAhJGFjYyBsb29wIHdv cmtlcigwKSAhIHsgZGctd2FybmluZyAibXVzdCBiZSBwb3NpdGl2ZSIgfQor ICAhJGFjYyBsb29wIHdvcmtlcigwKSAhIHsgZGctZXJyb3IgIm11c3QgYmUg cG9zaXRpdmUiIH0KICAgZG8gaSA9IDEsMTAKICAgZW5kZG8KICAgISRhY2Mg bG9vcCB3b3JrZXIoKSAhIHsgZGctZXJyb3IgIkludmFsaWQgY2hhcmFjdGVy IGluIG5hbWUiIH0KQEAgLTMxNCwxMCArMzE0LDEwIEBAIHByb2dyYW0gdGVz dAogICAhJGFjYyBsb29wIHZlY3RvcihpKzEpCiAgIGRvIGkgPSAxLDEwCiAg IGVuZGRvCi0gICEkYWNjIGxvb3AgdmVjdG9yKC0xKSAhIHsgZGctd2Fybmlu ZyAibXVzdCBiZSBwb3NpdGl2ZSIgfQorICAhJGFjYyBsb29wIHZlY3Rvcigt MSkgISB7IGRnLWVycm9yICJtdXN0IGJlIHBvc2l0aXZlIiB9CiAgIGRvIGkg PSAxLDEwCiAgIGVuZGRvCi0gICEkYWNjIGxvb3AgdmVjdG9yKDApICEgeyBk Zy13YXJuaW5nICJtdXN0IGJlIHBvc2l0aXZlIiB9CisgICEkYWNjIGxvb3Ag dmVjdG9yKDApICEgeyBkZy1lcnJvciAibXVzdCBiZSBwb3NpdGl2ZSIgfQog ICBkbyBpID0gMSwxMAogICBlbmRkbwogICAhJGFjYyBsb29wIHZlY3Rvcigp ICEgeyBkZy1lcnJvciAiSW52YWxpZCBjaGFyYWN0ZXIgaW4gbmFtZSIgfQpJ bmRleDogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy90aWxlLTEu ZjkwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29hY2MvdGlsZS0xLmY5MAkocmV2aXNpb24gMjY3NTEz KQorKysgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy90aWxlLTEu ZjkwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxNyArNDQsMTcgQEAgc3Vicm91 dGluZSBwYXJsb29wCiAgIGRvIGkgPSAxLCBuCiAgIGVuZCBkbwogCi0gICEk YWNjIHBhcmFsbGVsIGxvb3AgdGlsZSgtMykgISB7IGRnLXdhcm5pbmcgIm11 c3QgYmUgcG9zaXRpdmUiIH0KKyAgISRhY2MgcGFyYWxsZWwgbG9vcCB0aWxl KC0zKSAhIHsgZGctZXJyb3IgIm11c3QgYmUgcG9zaXRpdmUiIH0KICAgZG8g aSA9IDEsIG4KICAgZW5kIGRvCiAKLSAgISRhY2MgcGFyYWxsZWwgbG9vcCB0 aWxlKDEwLCAtMykgISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9zaXRpdmUi IH0KKyAgISRhY2MgcGFyYWxsZWwgbG9vcCB0aWxlKDEwLCAtMykgISB7IGRn LWVycm9yICJtdXN0IGJlIHBvc2l0aXZlIiB9CiAgIGRvIGkgPSAxLCBuCiAg ICAgIGRvIGogPSAxLCBuCiAgICAgIGVuZCBkbwogICBlbmQgZG8KIAotICAh JGFjYyBwYXJhbGxlbCBsb29wIHRpbGUoLTEwMCwgMTAsIDUpICEgeyBkZy13 YXJuaW5nICJtdXN0IGJlIHBvc2l0aXZlIiB9CisgICEkYWNjIHBhcmFsbGVs IGxvb3AgdGlsZSgtMTAwLCAxMCwgNSkgISB7IGRnLWVycm9yICJtdXN0IGJl IHBvc2l0aXZlIiB9CiAgIGRvIGkgPSAxLCBuCiAgICAgIGRvIGogPSAxLCBu CiAgICAgICAgIGRvIGsgPSAxLCBuCkBAIC0xMTQsNyArMTE0LDcgQEAgc3Vi cm91dGluZSBwYXIKICAgICAgZW5kIGRvCiAgIGVuZCBkbwogCi0gICEkYWNj IGxvb3AgdGlsZSgtMikgISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9zaXRp dmUiIH0KKyAgISRhY2MgbG9vcCB0aWxlKC0yKSAhIHsgZGctZXJyb3IgIm11 c3QgYmUgcG9zaXRpdmUiIH0KICAgZG8gaSA9IDEsIG4KICAgZW5kIGRvCiAK QEAgLTE5NSw3ICsxOTUsNyBAQCBzdWJyb3V0aW5lIGtlcm4KICAgICAgZW5k IGRvCiAgIGVuZCBkbwogCi0gICEkYWNjIGxvb3AgdGlsZSgtMikgISB7IGRn LXdhcm5pbmcgIm11c3QgYmUgcG9zaXRpdmUiIH0KKyAgISRhY2MgbG9vcCB0 aWxlKC0yKSAhIHsgZGctZXJyb3IgIm11c3QgYmUgcG9zaXRpdmUiIH0KICAg ZG8gaSA9IDEsIG4KICAgZW5kIGRvCiAKQEAgLTI5NSwxNyArMjk1LDE3IEBA IHN1YnJvdXRpbmUga2VybnNsb29wCiAgIGRvIGkgPSAxLCBuCiAgIGVuZCBk bwogCi0gICEkYWNjIGtlcm5lbHMgbG9vcCB0aWxlKC0zKSAhIHsgZGctd2Fy bmluZyAibXVzdCBiZSBwb3NpdGl2ZSIgfQorICAhJGFjYyBrZXJuZWxzIGxv b3AgdGlsZSgtMykgISB7IGRnLWVycm9yICJtdXN0IGJlIHBvc2l0aXZlIiB9 CiAgIGRvIGkgPSAxLCBuCiAgIGVuZCBkbwogCi0gICEkYWNjIGtlcm5lbHMg bG9vcCB0aWxlKDEwLCAtMykgISB7IGRnLXdhcm5pbmcgIm11c3QgYmUgcG9z aXRpdmUiIH0KKyAgISRhY2Mga2VybmVscyBsb29wIHRpbGUoMTAsIC0zKSAh IHsgZGctZXJyb3IgIm11c3QgYmUgcG9zaXRpdmUiIH0KICAgZG8gaSA9IDEs IG4KICAgICAgZG8gaiA9IDEsIG4KICAgICAgZW5kIGRvCiAgIGVuZCBkbwog Ci0gICEkYWNjIGtlcm5lbHMgbG9vcCB0aWxlKC0xMDAsIDEwLCA1KSAhIHsg ZGctd2FybmluZyAibXVzdCBiZSBwb3NpdGl2ZSIgfQorICAhJGFjYyBrZXJu ZWxzIGxvb3AgdGlsZSgtMTAwLCAxMCwgNSkgISB7IGRnLWVycm9yICJtdXN0 IGJlIHBvc2l0aXZlIiB9CiAgIGRvIGkgPSAxLCBuCiAgICAgIGRvIGogPSAx LCBuCiAgICAgICAgIGRvIGsgPSAxLCBuCkluZGV4OiBnY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvcHI3NzUxNi5mOTAKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL3By Nzc1MTYuZjkwCShyZXZpc2lvbiAyNjc1MTMpCisrKyBnY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvcHI3NzUxNi5mOTAJKHdvcmtpbmcgY29weSkK QEAgLTQsNyArNCw3IEBACiBwcm9ncmFtIHByNzc1MTYKICAgIGludGVnZXIg OjogaSwgeAogICAgeCA9IDAKLSEkb21wIHNpbWQgc2FmZWxlbigwKSByZWR1 Y3Rpb24oKzp4KQkhIHsgZGctd2FybmluZyAibXVzdCBiZSBwb3NpdGl2ZSIg fQorISRvbXAgc2ltZCBzYWZlbGVuKDApIHJlZHVjdGlvbigrOngpCSEgeyBk Zy1lcnJvciAibXVzdCBiZSBwb3NpdGl2ZSIgfQogICAgZG8gaSA9IDEsIDgK ICAgICAgIHggPSB4ICsgMQogICAgZW5kIGRvCkluZGV4OiBsaWJnb21wL29h Y2MtcGFyYWxsZWwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaWJn b21wL29hY2MtcGFyYWxsZWwuYwkocmV2aXNpb24gMjY3NTEzKQorKysgbGli Z29tcC9vYWNjLXBhcmFsbGVsLmMJKHdvcmtpbmcgY29weSkKQEAgLTMxMiw2 ICszMTIsOCBAQCBHT0FDQ19kYXRhX3N0YXJ0IChpbnQgZmxhZ3NfbSwgc2l6 ZV90IG1hcG51bSwKICAgc3RydWN0IGdvYWNjX3RocmVhZCAqdGhyID0gZ29h Y2NfdGhyZWFkICgpOwogICBzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmFj Y19kZXYgPSB0aHItPmRldjsKIAorICBoYW5kbGVfZnRuX3BvaW50ZXJzICht YXBudW0sIGhvc3RhZGRycywgc2l6ZXMsIGtpbmRzKTsKKwogICAvKiBIb3N0 IGZhbGxiYWNrIG9yICdkbyBub3RoaW5nJy4gICovCiAgIGlmICgoYWNjX2Rl di0+Y2FwYWJpbGl0aWVzICYgR09NUF9PRkZMT0FEX0NBUF9TSEFSRURfTUVN KQogICAgICAgfHwgKGZsYWdzICYgR09BQ0NfRkxBR19IT1NUX0ZBTExCQUNL KSkKSW5kZXg6IGxpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2FjYy1mb3J0 cmFuL2NvbW1vbi1ibG9jay0xLmY5MAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBsaWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLm9hY2MtZm9ydHJhbi9j b21tb24tYmxvY2stMS5mOTAJKG5vbmV4aXN0ZW50KQorKysgbGliZ29tcC90 ZXN0c3VpdGUvbGliZ29tcC5vYWNjLWZvcnRyYW4vY29tbW9uLWJsb2NrLTEu ZjkwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA1IEBACishIFRlc3Qg ZGF0YSBsb2NhdGVkIGluc2lkZSBjb21tb24gYmxvY2tzLiAgVGhpcyB0ZXN0 IGRvZXMgbm90IGV4ZWNyaXNlCishIEFDQyBERUNMQVJFLgorCittb2R1bGUg Y29uc3QKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IG4gPSAxMDAKK2VuZCBt b2R1bGUgY29uc3QKKworc3Vicm91dGluZSBjaGVjaworICB1c2UgY29uc3QK KworICBpbXBsaWNpdCBub25lCisgIGludGVnZXIgaSwgeChuKSwgeQorICBj b21tb24gL0JMT0NLLyB4LCB5CisKKyAgZG8gaSA9IDEsIG4KKyAgICAgaWYg KHgoaSkgLm5lLiB5KSBjYWxsIGFib3J0CisgIGVuZCBkbworZW5kIHN1YnJv dXRpbmUgY2hlY2sKKworbW9kdWxlIG0KKyAgdXNlIGNvbnN0CisgIGludGVn ZXIgYShuKSwgYgorICBjb21tb24gL0JMT0NLLyBhLCBiCisKK2NvbnRhaW5z CisgIHN1YnJvdXRpbmUgbW9kX2ltcGxpY2l0X2luY3IKKyAgICBpbXBsaWNp dCBub25lCisgICAgaW50ZWdlciBpCisKKyAgICAhJGFjYyBwYXJhbGxlbCBs b29wCisgICAgZG8gaSA9IDEsIG4KKyAgICAgICBhKGkpID0gYgorICAgIGVu ZCBkbworICAgICEkYWNjIGVuZCBwYXJhbGxlbCBsb29wCisKKyAgICBjYWxs IGNoZWNrCisgIGVuZCBzdWJyb3V0aW5lIG1vZF9pbXBsaWNpdF9pbmNyCisK KyAgc3Vicm91dGluZSBtb2RfZXhwbGljaXRfaW5jcgorICAgIGltcGxpY2l0 IG5vbmUKKyAgICBpbnRlZ2VyIGkKKworICAgICEkYWNjIHBhcmFsbGVsIGxv b3AgY29weShhKDE6bikpIGNvcHlpbihiKQorICAgIGRvIGkgPSAxLCBuCisg ICAgICAgYShpKSA9IGIKKyAgICBlbmQgZG8KKyAgICAhJGFjYyBlbmQgcGFy YWxsZWwgbG9vcAorCisgICAgY2FsbCBjaGVjaworICBlbmQgc3Vicm91dGlu ZSBtb2RfZXhwbGljaXRfaW5jcgorZW5kIG1vZHVsZSBtCisKK3N1YnJvdXRp bmUgc3ViX2ltcGxpY2l0X2luY3IKKyAgdXNlIGNvbnN0CisKKyAgaW1wbGlj aXQgbm9uZQorICBpbnRlZ2VyIGksIHgobiksIHkKKyAgY29tbW9uIC9CTE9D Sy8geCwgeQorCisgICEkYWNjIHBhcmFsbGVsIGxvb3AKKyAgZG8gaSA9IDEs IG4KKyAgICAgeChpKSA9IHkKKyAgZW5kIGRvCisgICEkYWNjIGVuZCBwYXJh bGxlbCBsb29wCisKKyAgY2FsbCBjaGVjaworZW5kIHN1YnJvdXRpbmUgc3Vi X2ltcGxpY2l0X2luY3IKKworc3Vicm91dGluZSBzdWJfZXhwbGljaXRfaW5j cgorICB1c2UgY29uc3QKKworICBpbXBsaWNpdCBub25lCisgIGludGVnZXIg aSwgeChuKSwgeQorICBjb21tb24gL0JMT0NLLyB4LCB5CisKKyAgISRhY2Mg cGFyYWxsZWwgbG9vcCBjb3B5KHgoMTpuKSkgY29weWluKHkpCisgIGRvIGkg PSAxLCBuCisgICAgIHgoaSkgPSB5CisgIGVuZCBkbworICAhJGFjYyBlbmQg cGFyYWxsZWwgbG9vcAorCisgIGNhbGwgY2hlY2sKK2VuZCBzdWJyb3V0aW5l IHN1Yl9leHBsaWNpdF9pbmNyCisKK3Byb2dyYW0gbWFpbgorICB1c2UgbQor CisgIGltcGxpY2l0IG5vbmUKKworICBhKDopID0gLTEKKyAgYiA9IDUKKyAg Y2FsbCBtb2RfaW1wbGljaXRfaW5jcgorCisgIGEoOikgPSAtMgorICBiID0g NgorICBjYWxsIG1vZF9leHBsaWNpdF9pbmNyCisKKyAgYSg6KSA9IC0zCisg IGIgPSA3CisgIGNhbGwgc3ViX2ltcGxpY2l0X2luY3IKKworICBhKDopID0g LTQKKyAgYiA9IDgKKyAgY2FsbCBzdWJfZXhwbGljaXRfaW5jcgorZW5kIHBy b2dyYW0gbWFpbgpJbmRleDogbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5v YWNjLWZvcnRyYW4vY29tbW9uLWJsb2NrLTIuZjkwCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGxpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2FjYy1m b3J0cmFuL2NvbW1vbi1ibG9jay0yLmY5MAkobm9uZXhpc3RlbnQpCisrKyBs aWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLm9hY2MtZm9ydHJhbi9jb21tb24t YmxvY2stMi5mOTAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTAgQEAK KyEgVGVzdCBkYXRhIGxvY2F0ZWQgaW5zaWRlIGNvbW1vbiBibG9ja3MuICBU aGlzIHRlc3QgZG9lcyBub3QgZXhlY3Jpc2UKKyEgQUNDIERFQ0xBUkUuICBB bGwgZGF0YSBjbGF1c2VzIGFyZSBleHBsaWNpdC4KKworbW9kdWxlIGNvbnN0 cworICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogbiA9IDEwMAorZW5kIG1vZHVs ZSBjb25zdHMKKworc3Vicm91dGluZSB2YWxpZGF0ZQorICB1c2UgY29uc3Rz CisKKyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2VyIGksIGoKKyAgcmVhbCo0 IHgobiksIHkobiksIHoKKyAgY29tbW9uIC9CTE9DSy8geCwgeSwgeiwgagor CisgIGRvIGkgPSAxLCBuCisgICAgIGlmIChhYnMoeChpKSAtIGkgLSB6KSAu Z2UuIDAuMDAwMSkgY2FsbCBhYm9ydAorICBlbmQgZG8KK2VuZCBzdWJyb3V0 aW5lIHZhbGlkYXRlCisKK3N1YnJvdXRpbmUgaW5jcgorICB1c2UgY29uc3Rz CisKKyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2VyIGksIGoKKyAgcmVhbCo0 IHgobiksIHkobiksIHoKKyAgY29tbW9uIC9CTE9DSy8geCwgeSwgeiwgagor CisgICEkYWNjIHBhcmFsbGVsIGxvb3AgcGNvcHkoL0JMT0NLLykKKyAgZG8g aSA9IDEsIG4KKyAgICAgeChpKSA9IHgoaSkgKyB6CisgIGVuZCBkbworICAh JGFjYyBlbmQgcGFyYWxsZWwgbG9vcAorZW5kIHN1YnJvdXRpbmUgaW5jcgor Citwcm9ncmFtIG1haW4KKyAgdXNlIGNvbnN0cworCisgIGltcGxpY2l0IG5v bmUKKyAgaW50ZWdlciBpLCBqCisgIHJlYWwqNCBhKG4pLCBiKG4pLCBjCisg IGNvbW1vbiAvQkxPQ0svIGEsIGIsIGMsIGoKKworICAhIFRlc3QgY29weW91 dCwgcGNvcHksIGRldmljZQorCisgICEkYWNjIGRhdGEgY29weW91dChhLCBj KQorCisgIGMgPSAxLjAKKworICAhJGFjYyB1cGRhdGUgZGV2aWNlKGMpCisK KyAgISRhY2MgcGFyYWxsZWwgbG9vcCBwY29weShhKQorICBkbyBpID0gMSwg bgorICAgICBhKGkpID0gaQorICBlbmQgZG8KKyAgISRhY2MgZW5kIHBhcmFs bGVsIGxvb3AKKworICBjYWxsIGluY3IKKyAgY2FsbCBpbmNyCisgIGNhbGwg aW5jcgorICAhJGFjYyBlbmQgZGF0YQorCisgIGMgPSAzLjAKKyAgY2FsbCB2 YWxpZGF0ZQorCisgICEgVGVzdCBwY29weSB3aXRob3V0IGNvcHlvdXQKKwor ICBjID0gMi4wCisgIGNhbGwgaW5jcgorICBjID0gNS4wCisgIGNhbGwgdmFs aWRhdGUKKworICAhIFRlc3QgY3JlYXRlLCBkZWxldGUsIGhvc3QsIGNvcHlv dXQsIGNvcHlpbgorCisgICEkYWNjIGVudGVyIGRhdGEgY3JlYXRlKGIpCisK KyAgISRhY2MgcGFyYWxsZWwgbG9vcCBwY29weShiKQorICBkbyBpID0gMSwg bgorICAgICBiKGkpID0gaQorICBlbmQgZG8KKyAgISRhY2MgZW5kIHBhcmFs bGVsIGxvb3AKKworICAhJGFjYyB1cGRhdGUgaG9zdCAoYikKKworICAhJGFj YyBwYXJhbGxlbCBsb29wIHBjb3B5KGIpIGNvcHlvdXQoYSkgY29weWluKGMp CisgIGRvIGkgPSAxLCBuCisgICAgIGEoaSkgPSBiKGkpICsgYworICBlbmQg ZG8KKyAgISRhY2MgZW5kIHBhcmFsbGVsIGxvb3AKKworICAhJGFjYyBleGl0 IGRhdGEgZGVsZXRlKGIpCisKKyAgY2FsbCB2YWxpZGF0ZQorCisgIGEoOikg PSBiKDopCisgIGMgPSAwLjAKKyAgY2FsbCB2YWxpZGF0ZQorCisgICEgVGVz dCBjb3B5CisKKyAgYyA9IDEuMAorICAhJGFjYyBwYXJhbGxlbCBsb29wIGNv cHkoL0JMT0NLLykKKyAgZG8gaSA9IDEsIG4KKyAgICAgYShpKSA9IGIoaSkg KyBjCisgIGVuZCBkbworICAhJGFjYyBlbmQgcGFyYWxsZWwgbG9vcAorCisg IGNhbGwgdmFsaWRhdGUKKworICAhIFRlc3QgcGNvcHlpbiwgcGNvcHlvdXQg RklYTUUKKworICBjID0gMi4wCisgICEkYWNjIGRhdGEgY29weWluKGIsIGMp IGNvcHlvdXQoYSkKKworICAhJGFjYyBwYXJhbGxlbCBsb29wIHBjb3B5aW4o YiwgYykgcGNvcHlvdXQoYSkKKyAgZG8gaSA9IDEsIG4KKyAgICAgYShpKSA9 IGIoaSkgKyBjCisgIGVuZCBkbworICAhJGFjYyBlbmQgcGFyYWxsZWwgbG9v cAorCisgICEkYWNjIGVuZCBkYXRhCisKKyAgY2FsbCB2YWxpZGF0ZQorCisg ICEgVGVzdCByZWR1Y3Rpb24sIHByaXZhdGUKKworICBqID0gMAorCisgICEk YWNjIHBhcmFsbGVsIHByaXZhdGUoaSkgY29weShqKQorICAhJGFjYyBsb29w IHJlZHVjdGlvbigrOmopCisgIGRvIGkgPSAxLCBuCisgICAgIGogPSBqICsg MQorICBlbmQgZG8KKyAgISRhY2MgZW5kIHBhcmFsbGVsCisKKyAgaWYgKGog Lm5lLiBuKSBjYWxsIGFib3J0CisKKyAgISBUZXN0IGZpcnN0cHJpdmF0ZSwg Y29weQorCisgIGEoOikgPSAwCisgIGMgPSBqCisKKyAgISRhY2MgcGFyYWxs ZWwgbG9vcCBmaXJzdHByaXZhdGUoYykgY29weW91dChhKQorICBkbyBpID0g MSwgbgorICAgICBhKGkpID0gaSArIGMKKyAgZW5kIGRvCisgICEkYWNjIGVu ZCBwYXJhbGxlbCBsb29wCisKKyAgY2FsbCB2YWxpZGF0ZQorZW5kIHByb2dy YW0gbWFpbgpJbmRleDogbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5vYWNj LWZvcnRyYW4vY29tbW9uLWJsb2NrLTMuZjkwCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGxpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAub2FjYy1mb3J0 cmFuL2NvbW1vbi1ibG9jay0zLmY5MAkobm9uZXhpc3RlbnQpCisrKyBsaWJn b21wL3Rlc3RzdWl0ZS9saWJnb21wLm9hY2MtZm9ydHJhbi9jb21tb24tYmxv Y2stMy5mOTAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzcgQEAKKyEg VGVzdCBkYXRhIGxvY2F0ZWQgaW5zaWRlIGNvbW1vbiBibG9ja3MuICBUaGlz IHRlc3QgZG9lcyBub3QgZXhlY3Jpc2UKKyEgQUNDIERFQ0xBUkUuICBNb3N0 IG9mIHRoZSBkYXRhIGNsYXVzZXMgYXJlIGltcGxpY2l0LgorCittb2R1bGUg Y29uc3RzCisgIGludGVnZXIsIHBhcmFtZXRlciA6OiBuID0gMTAwCitlbmQg bW9kdWxlIGNvbnN0cworCitzdWJyb3V0aW5lIHZhbGlkYXRlCisgIHVzZSBj b25zdHMKKworICBpbXBsaWNpdCBub25lCisgIGludGVnZXIgaSwgagorICBy ZWFsKjQgeChuKSwgeShuKSwgegorICBjb21tb24gL0JMT0NLLyB4LCB5LCB6 LCBqCisKKyAgZG8gaSA9IDEsIG4KKyAgICAgaWYgKGFicyh4KGkpIC0gaSAt IHopIC5nZS4gMC4wMDAxKSBjYWxsIGFib3J0CisgIGVuZCBkbworZW5kIHN1 YnJvdXRpbmUgdmFsaWRhdGUKKworc3Vicm91dGluZSBpbmNyX3BhcmFsbGVs CisgIHVzZSBjb25zdHMKKworICBpbXBsaWNpdCBub25lCisgIGludGVnZXIg aSwgagorICByZWFsKjQgeChuKSwgeShuKSwgegorICBjb21tb24gL0JMT0NL LyB4LCB5LCB6LCBqCisKKyAgISRhY2MgcGFyYWxsZWwgbG9vcAorICBkbyBp ID0gMSwgbgorICAgICB4KGkpID0geChpKSArIHoKKyAgZW5kIGRvCisgICEk YWNjIGVuZCBwYXJhbGxlbCBsb29wCitlbmQgc3Vicm91dGluZSBpbmNyX3Bh cmFsbGVsCisKK3N1YnJvdXRpbmUgaW5jcl9rZXJuZWxzCisgIHVzZSBjb25z dHMKKworICBpbXBsaWNpdCBub25lCisgIGludGVnZXIgaSwgagorICByZWFs KjQgeChuKSwgeShuKSwgegorICBjb21tb24gL0JMT0NLLyB4LCB5LCB6LCBq CisKKyAgISRhY2Mga2VybmVscworICBkbyBpID0gMSwgbgorICAgICB4KGkp ID0geChpKSArIHoKKyAgZW5kIGRvCisgICEkYWNjIGVuZCBrZXJuZWxzCitl bmQgc3Vicm91dGluZSBpbmNyX2tlcm5lbHMKKworcHJvZ3JhbSBtYWluCisg IHVzZSBjb25zdHMKKworICBpbXBsaWNpdCBub25lCisgIGludGVnZXIgaSwg agorICByZWFsKjQgYShuKSwgYihuKSwgYworICBjb21tb24gL0JMT0NLLyBh LCBiLCBjLCBqCisKKyAgISRhY2MgZGF0YSBjb3B5b3V0KGEsIGMpCisKKyAg YyA9IDEuMAorCisgICEkYWNjIHVwZGF0ZSBkZXZpY2UoYykKKworICAhJGFj YyBwYXJhbGxlbCBsb29wCisgIGRvIGkgPSAxLCBuCisgICAgIGEoaSkgPSBp CisgIGVuZCBkbworICAhJGFjYyBlbmQgcGFyYWxsZWwgbG9vcAorCisgIGNh bGwgaW5jcl9wYXJhbGxlbAorICBjYWxsIGluY3JfcGFyYWxsZWwKKyAgY2Fs bCBpbmNyX3BhcmFsbGVsCisgICEkYWNjIGVuZCBkYXRhCisKKyAgYyA9IDMu MAorICBjYWxsIHZhbGlkYXRlCisKKyAgISBUZXN0IHBjb3B5IHdpdGhvdXQg Y29weW91dAorCisgIGMgPSAyLjAKKyAgY2FsbCBpbmNyX2tlcm5lbHMKKyAg YyA9IDUuMAorICBjYWxsIHZhbGlkYXRlCisKKyAgISRhY2Mga2VybmVscwor ICBkbyBpID0gMSwgbgorICAgICBiKGkpID0gaQorICBlbmQgZG8KKyAgISRh Y2MgZW5kIGtlcm5lbHMKKworICAhJGFjYyBwYXJhbGxlbCBsb29wCisgIGRv IGkgPSAxLCBuCisgICAgIGEoaSkgPSBiKGkpICsgYworICBlbmQgZG8KKyAg ISRhY2MgZW5kIHBhcmFsbGVsIGxvb3AKKworICBjYWxsIHZhbGlkYXRlCisK KyAgYSg6KSA9IGIoOikKKyAgYyA9IDAuMAorICBjYWxsIHZhbGlkYXRlCisK KyAgISBUZXN0IGNvcHkKKworICBjID0gMS4wCisgICEkYWNjIHBhcmFsbGVs IGxvb3AKKyAgZG8gaSA9IDEsIG4KKyAgICAgYShpKSA9IGIoaSkgKyBjCisg IGVuZCBkbworICAhJGFjYyBlbmQgcGFyYWxsZWwgbG9vcAorCisgIGNhbGwg dmFsaWRhdGUKKworICBjID0gMi4wCisgICEkYWNjIGRhdGEgY29weWluKGIs IGMpIGNvcHlvdXQoYSkKKworICAhJGFjYyBrZXJuZWxzCisgIGRvIGkgPSAx LCBuCisgICAgIGEoaSkgPSBiKGkpICsgYworICBlbmQgZG8KKyAgISRhY2Mg ZW5kIGtlcm5lbHMKKworICAhJGFjYyBlbmQgZGF0YQorCisgIGNhbGwgdmFs aWRhdGUKKworICBqID0gMAorCisgICEkYWNjIHBhcmFsbGVsIGxvb3AgcmVk dWN0aW9uKCs6aikKKyAgZG8gaSA9IDEsIG4KKyAgICAgaiA9IGogKyAxCisg IGVuZCBkbworICAhJGFjYyBlbmQgcGFyYWxsZWwgbG9vcAorCisgIGlmIChq IC5uZS4gbikgY2FsbCBhYm9ydAorZW5kIHByb2dyYW0gbWFpbgpJbmRleDog bGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5vYWNjLWZvcnRyYW4vZGV2aWNl cHRyLTEuZjkwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAub2FjYy1mb3J0cmFuL2RldmljZXB0ci0xLmY5 MAkobm9uZXhpc3RlbnQpCisrKyBsaWJnb21wL3Rlc3RzdWl0ZS9saWJnb21w Lm9hY2MtZm9ydHJhbi9kZXZpY2VwdHItMS5mOTAJKHdvcmtpbmcgY29weSkK QEAgLTAsMCArMSwxOTcgQEAKKyEgeyBkZy1kbyBydW4gfQorCishIFRlc3Qg dGhlIGRldmljZXB0ciBjbGF1c2Ugd2l0aCB2YXJpb3VzIGRpcmVjdGl2ZXMK KyEgYW5kIGluIGNvbWJpbmF0aW9uIHdpdGggb3RoZXIgZGlyZWN0aXZlcyB3 aGVyZQorISB0aGUgZGV2aWNlcHRyIHZhcmlhYmxlIGlzIGltcGxpZWQuCisK K3N1YnJvdXRpbmUgc3VicjEgKGEsIGIpCisgIGltcGxpY2l0IG5vbmUKKyAg aW50ZWdlciwgcGFyYW1ldGVyIDo6IE4gPSA4CisgIGludGVnZXIgOjogYShO KQorICBpbnRlZ2VyIDo6IGIoTikKKyAgaW50ZWdlciA6OiBpID0gMAorCisg ICEkYWNjIGRhdGEgZGV2aWNlcHRyIChhKQorCisgICEkYWNjIHBhcmFsbGVs IGNvcHkgKGIpCisgICAgZG8gaSA9IDEsIE4KKyAgICAgIGEoaSkgPSBpICog MgorICAgICAgYihpKSA9IGEoaSkKKyAgICBlbmQgZG8KKyAgISRhY2MgZW5k IHBhcmFsbGVsCisKKyAgISRhY2MgZW5kIGRhdGEKKworZW5kIHN1YnJvdXRp bmUKKworc3Vicm91dGluZSBzdWJyMiAoYSwgYikKKyAgaW1wbGljaXQgbm9u ZQorICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogTiA9IDgKKyAgaW50ZWdlciA6 OiBhKE4pCisgICEkYWNjIGRlY2xhcmUgZGV2aWNlcHRyIChhKQorICBpbnRl Z2VyIDo6IGIoTikKKyAgaW50ZWdlciA6OiBpID0gMAorCisgICEkYWNjIHBh cmFsbGVsIGNvcHkgKGIpCisgICAgZG8gaSA9IDEsIE4KKyAgICAgIGEoaSkg PSBpICogNAorICAgICAgYihpKSA9IGEoaSkKKyAgICBlbmQgZG8KKyAgISRh Y2MgZW5kIHBhcmFsbGVsCisKK2VuZCBzdWJyb3V0aW5lCisKK3N1YnJvdXRp bmUgc3VicjMgKGEsIGIpCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwg cGFyYW1ldGVyIDo6IE4gPSA4CisgIGludGVnZXIgOjogYShOKQorICAhJGFj YyBkZWNsYXJlIGRldmljZXB0ciAoYSkKKyAgaW50ZWdlciA6OiBiKE4pCisg IGludGVnZXIgOjogaSA9IDAKKworICAhJGFjYyBrZXJuZWxzIGNvcHkgKGIp CisgICAgZG8gaSA9IDEsIE4KKyAgICAgIGEoaSkgPSBpICogOAorICAgICAg YihpKSA9IGEoaSkKKyAgICBlbmQgZG8KKyAgISRhY2MgZW5kIGtlcm5lbHMK KworZW5kIHN1YnJvdXRpbmUKKworc3Vicm91dGluZSBzdWJyNCAoYSwgYikK KyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogTiA9 IDgKKyAgaW50ZWdlciA6OiBhKE4pCisgIGludGVnZXIgOjogYihOKQorICBp bnRlZ2VyIDo6IGkgPSAwCisKKyAgISRhY2MgcGFyYWxsZWwgZGV2aWNlcHRy IChhKSBjb3B5IChiKQorICAgIGRvIGkgPSAxLCBOCisgICAgICBhKGkpID0g aSAqIDE2CisgICAgICBiKGkpID0gYShpKQorICAgIGVuZCBkbworICAhJGFj YyBlbmQgcGFyYWxsZWwKKworZW5kIHN1YnJvdXRpbmUKKworc3Vicm91dGlu ZSBzdWJyNSAoYSwgYikKKyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2VyLCBw YXJhbWV0ZXIgOjogTiA9IDgKKyAgaW50ZWdlciA6OiBhKE4pCisgIGludGVn ZXIgOjogYihOKQorICBpbnRlZ2VyIDo6IGkgPSAwCisKKyAgISRhY2Mga2Vy bmVscyBkZXZpY2VwdHIgKGEpIGNvcHkgKGIpCisgICAgZG8gaSA9IDEsIE4K KyAgICAgIGEoaSkgPSBpICogMzIKKyAgICAgIGIoaSkgPSBhKGkpCisgICAg ZW5kIGRvCisgICEkYWNjIGVuZCBrZXJuZWxzCisKK2VuZCBzdWJyb3V0aW5l CisKK3N1YnJvdXRpbmUgc3VicjYgKGEsIGIpCisgIGltcGxpY2l0IG5vbmUK KyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IE4gPSA4CisgIGludGVnZXIgOjog YShOKQorICBpbnRlZ2VyIDo6IGIoTikKKyAgaW50ZWdlciA6OiBpID0gMAor CisgICEkYWNjIHBhcmFsbGVsIGRldmljZXB0ciAoYSkgY29weSAoYikKKyAg ICBkbyBpID0gMSwgTgorICAgICAgYihpKSA9IGkKKyAgICBlbmQgZG8KKyAg ISRhY2MgZW5kIHBhcmFsbGVsCisKK2VuZCBzdWJyb3V0aW5lCisKK3N1YnJv dXRpbmUgc3VicjcgKGEsIGIpCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdl ciwgcGFyYW1ldGVyIDo6IE4gPSA4CisgIGludGVnZXIgOjogYShOKQorICBp bnRlZ2VyIDo6IGIoTikKKyAgaW50ZWdlciA6OiBpID0gMAorCisgICEkYWNj IGRhdGEgZGV2aWNlcHRyIChhKQorCisgICEkYWNjIHBhcmFsbGVsIGNvcHkg KGIpCisgICAgZG8gaSA9IDEsIE4KKyAgICAgIGEoaSkgPSBpICogMgorICAg ICAgYihpKSA9IGEoaSkKKyAgICBlbmQgZG8KKyAgISRhY2MgZW5kIHBhcmFs bGVsCisKKyAgISRhY2MgcGFyYWxsZWwgY29weSAoYikKKyAgICBkbyBpID0g MSwgTgorICAgICAgYShpKSA9IGIoaSkgKiAyCisgICAgICBiKGkpID0gYShp KQorICAgIGVuZCBkbworICAhJGFjYyBlbmQgcGFyYWxsZWwKKworICAhJGFj YyBlbmQgZGF0YQorCitlbmQgc3Vicm91dGluZQorCitwcm9ncmFtIG1haW4K KyAgdXNlIGlzb19jX2JpbmRpbmcsIG9ubHk6IGNfcHRyLCBjX2ZfcG9pbnRl cgorICBpbXBsaWNpdCBub25lCisgIHR5cGUgKGNfcHRyKSA6OiBjcAorICBp bnRlZ2VyLCBwYXJhbWV0ZXIgOjogTiA9IDgKKyAgaW50ZWdlciwgcG9pbnRl ciA6OiBmcCg6KQorICBpbnRlZ2VyIDo6IGkgPSAwCisgIGludGVnZXIgOjog YihOKQorCisgIGludGVyZmFjZQorICAgIGZ1bmN0aW9uIGFjY19tYWxsb2Mg KHMpIGJpbmQgKEMpCisgICAgICB1c2UgaXNvX2NfYmluZGluZywgb25seTog Y19wdHIsIGNfc2l6ZV90CisgICAgICBpbnRlZ2VyIChjX3NpemVfdCksIHZh bHVlIDo6IHMKKyAgICAgIHR5cGUgKGNfcHRyKSA6OiBhY2NfbWFsbG9jCisg ICAgZW5kIGZ1bmN0aW9uCisgIGVuZCBpbnRlcmZhY2UKKworICBjcCA9IGFj Y19tYWxsb2MgKE4gKiBzaXplb2YgKGZwKE4pKSkKKyAgY2FsbCBjX2ZfcG9p bnRlciAoY3AsIGZwLCBbTl0pCisKKyAgY2FsbCBzdWJyMSAoZnAsIGIpCisK KyAgZG8gaSA9IDEsIE4KKyAgICBpZiAoYihpKSAubmUuIGkgKiAyKSBjYWxs IGFib3J0CisgIGVuZCBkbworCisgIGNhbGwgc3VicjIgKGZwLCBiKQorCisg IGRvIGkgPSAxLCBOCisgICAgaWYgKGIoaSkgLm5lLiBpICogNCkgY2FsbCBh Ym9ydAorICBlbmQgZG8KKworICBjYWxsIHN1YnIzIChmcCwgYikKKworICBk byBpID0gMSwgTgorICAgIGlmIChiKGkpIC5uZS4gaSAqIDgpIGNhbGwgYWJv cnQKKyAgZW5kIGRvCisKKyAgY2FsbCBzdWJyNCAoZnAsIGIpCisKKyAgZG8g aSA9IDEsIE4KKyAgICBpZiAoYihpKSAubmUuIGkgKiAxNikgY2FsbCBhYm9y dAorICBlbmQgZG8KKworICBjYWxsIHN1YnI1IChmcCwgYikKKworICBkbyBp ID0gMSwgTgorICAgIGlmIChiKGkpIC5uZS4gaSAqIDMyKSBjYWxsIGFib3J0 CisgIGVuZCBkbworCisgIGNhbGwgc3VicjYgKGZwLCBiKQorCisgIGRvIGkg PSAxLCBOCisgICAgaWYgKGIoaSkgLm5lLiBpKSBjYWxsIGFib3J0CisgIGVu ZCBkbworCisgIGNhbGwgc3VicjcgKGZwLCBiKQorCisgIGRvIGkgPSAxLCBO CisgICAgaWYgKGIoaSkgLm5lLiBpICogNCkgY2FsbCBhYm9ydAorICBlbmQg ZG8KKworZW5kIHByb2dyYW0gbWFpbgo= --------------03DD8064F5DE37C92EE1C1BC--