From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9162C7FA3 for ; Thu, 2 Jul 2015 07:48:00 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4C2568F8049 for ; Thu, 2 Jul 2015 05:47:57 -0700 (PDT) Received: from mx6-phx2.redhat.com (mx6-phx2.redhat.com [209.132.183.39]) by cuda.sgi.com with ESMTP id CExA765gdXAmfCoS (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 02 Jul 2015 05:47:54 -0700 (PDT) Date: Thu, 2 Jul 2015 08:47:53 -0400 (EDT) From: Jan Tulak Message-ID: <413545489.22844725.1435841273912.JavaMail.zimbra@redhat.com> In-Reply-To: <20150625193748.GE36162@bfoster.bfoster> References: <1434711726-13092-1-git-send-email-jtulak@redhat.com> <1434711726-13092-2-git-send-email-jtulak@redhat.com> <20150625193748.GE36162@bfoster.bfoster> Subject: Re: [PATCH 01/17] xfsprogs: use common code for multi-disk detection MIME-Version: 1.0 List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com To: Brian Foster Cc: xfs@oss.sgi.com, Dave Chinner CgotLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tCj4gRnJvbTogIkJyaWFuIEZvc3RlciIgPGJm b3N0ZXJAcmVkaGF0LmNvbT4KPiBUbzogIkphbiDFpHVsw6FrIiA8anR1bGFrQHJlZGhhdC5jb20+ Cj4gQ2M6ICJEYXZlIENoaW5uZXIiIDxkY2hpbm5lckByZWRoYXQuY29tPiwgeGZzQG9zcy5zZ2ku Y29tCj4gU2VudDogVGh1cnNkYXksIEp1bmUgMjUsIDIwMTUgOTozNzo0OCBQTQo+IFN1YmplY3Q6 IFJlOiBbUEFUQ0ggMDEvMTddIHhmc3Byb2dzOiB1c2UgY29tbW9uIGNvZGUgZm9yIG11bHRpLWRp c2sgZGV0ZWN0aW9uCj4gCj4gT24gRnJpLCBKdW4gMTksIDIwMTUgYXQgMDE6MDE6NTBQTSArMDIw MCwgSmFuIMWkdWzDoWsgd3JvdGU6Cj4gPiBGcm9tOiBEYXZlIENoaW5uZXIgPGRjaGlubmVyQHJl ZGhhdC5jb20+Cj4gPiAKPiA+IEJvdGggeGZzX3JlcGFpciBhbmQgbWtmcy54ZnMgbmVlZCB0byBh Z3JlZSBvbiB3aGF0IGlzIGEgIm11bHRpZGlzazoKPiA+IGNvbmZpZ3VyYXRpb24gLSBta2ZzIGZv ciBkZXRlcm1pbmluZyB0aGUgQUcgY291bnQgb2YgdGhlIGZpbGVzeXN0ZW0sCj4gPiByZXBhaXIg Zm9yIGRldGVybWluaW5nIGhvdyB0byBhdXRvbWF0aWNhbGx5IHBhcmFsbGVsaXNlIGl0J3MKPiA+ IGV4ZWN1dGlvbi4gVGhpcyByZXF1aXJlcyBhIGJ1bmNoIG9mIGNvbW1vbiBkZWZpbmVzIHRoYXQg Ym90aCBta2ZzCj4gPiBhbmQgcmVhcGlyIG5lZWQgdG8gc2hhcmUuCj4gPiAKPiA+IEluIGZhY3Qs IG1vc3Qgb2YgdGhlIGRlZmluZXMgaW4geGZzX21rZnMuaCBjb3VsZCBiZSBzaGFyZWQgd2l0aAo+ ID4gb3RoZXIgcHJvZ3JhbXMgKGkuZS4gYWxsIHRoZSBkZWZhdWx0cyBta2ZzIHVzZXMpIGFuZCBz byBpdCBpcwo+ID4gc2ltcGxlc3QgdG8gbW92ZSB4ZnNfbWtmcy5oIHRvIHRoZSBzaGFyZWQgaW5j bHVkZSBkaXJlY3RvcnkgYW5kIGFkZAo+ID4gdGhlIG5ldyBkZWZpbmVzIHRvIGl0IGRpcmVjdGx5 Lgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBEYXZlIENoaW5uZXIgPGRjaGlubmVyQHJlZGhhdC5j b20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBKYW4gxaR1bMOhayA8anR1bGFrQHJlZGhhdC5jb20+Cj4g PiAtLS0KPiA+ICBpbmNsdWRlL01ha2VmaWxlICAgIHwgIDggKysrKy0KPiA+ICBpbmNsdWRlL3hm c19ta2ZzLmggIHwgOTgKPiA+ICArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ID4gIG1rZnMvTWFrZWZpbGUgICAgICAgfCAgMiArLQo+ID4gIG1r ZnMveGZzX21rZnMuYyAgICAgfCA1NiArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiA+ ICBta2ZzL3hmc19ta2ZzLmggICAgIHwgODkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgcmVwYWlyL3hmc19yZXBhaXIuYyB8IDQ1ICsrKysrKysr KysrKysrKysrKysrKystLQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgMTc4IGluc2VydGlvbnMoKyks IDEyMCBkZWxldGlvbnMoLSkKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS94ZnNfbWtm cy5oCj4gPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IG1rZnMveGZzX21rZnMuaAo+ID4gCj4gPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9NYWtlZmlsZSBiL2luY2x1ZGUvTWFrZWZpbGUKPiA+IGluZGV4IDcw ZTQzYTAuLjMyNjllYzMgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL01ha2VmaWxlCj4gPiArKysg Yi9pbmNsdWRlL01ha2VmaWxlCj4gPiBAQCAtMjYsOSArMjYsMTUgQEAgUUFIRklMRVMgPSBsaWJ4 ZnMuaCBsaWJ4bG9nLmggXAo+ID4gIAl4ZnNfaW5vZGUuaCBcCj4gPiAgCXhmc19sb2dfcmVjb3Zl ci5oIFwKPiA+ICAJeGZzX21ldGFkdW1wLmggXAo+ID4gKwl4ZnNfbWtmcy5oIFwKPiA+ICAJeGZz X21vdW50LmggXAo+ID4gKwl4ZnNfcXVvdGFfZGVmcy5oIFwKPiA+ICsJeGZzX3NiLmggXAo+ID4g Kwl4ZnNfc2hhcmVkLmggXAo+ID4gIAl4ZnNfdHJhY2UuaCBcCj4gPiAtCXhmc190cmFucy5oCj4g PiArCXhmc190cmFucy5oIFwKPiA+ICsJeGZzX3RyYW5zX3Jlc3YuaCBcCj4gPiArCXhmc190cmFu c19zcGFjZS5oCj4gPiAgCj4gPiAgSEZJTEVTID0gaGFuZGxlLmggamRtLmggeHFtLmggeGZzLmgK PiA+ICBIRklMRVMgKz0gJChQS0dfUExBVEZPUk0pLmgKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRl L3hmc19ta2ZzLmggYi9pbmNsdWRlL3hmc19ta2ZzLmgKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gPiBpbmRleCAwMDAwMDAwLi4zMzg4ZjZkCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9p bmNsdWRlL3hmc19ta2ZzLmgKPiA+IEBAIC0wLDAgKzEsOTggQEAKPiA+ICsvKgo+ID4gKyAqIENv cHlyaWdodCAoYykgMjAwMC0yMDAxLDIwMDQtMjAwNSBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCj4g PiArICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPiA+ICsgKgo+ID4gKyAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPiA+ICsgKiBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcwo+ID4gKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ ID4gKyAqCj4gPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd291bGQgYmUgdXNlZnVsLAo+ID4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gPiArICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQo+ID4gKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCj4gPiArICoKPiA+ ICsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQo+ID4gKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy aXRlIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCj4gPiArICogSW5jLiwgIDUxIEZyYW5r bGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCj4gPiArICov Cj4gPiArI2lmbmRlZiBfX1hGU19NS0ZTX0hfXwo+ID4gKyNkZWZpbmUJX19YRlNfTUtGU19IX18K PiA+ICsKPiA+ICsjZGVmaW5lIFhGU19ERkxfU0JfVkVSU0lPTl9CSVRTIFwKPiA+ICsgICAgICAg ICAgICAgICAgKFhGU19TQl9WRVJTSU9OX05MSU5LQklUIHwgXAo+ID4gKyAgICAgICAgICAgICAg ICAgWEZTX1NCX1ZFUlNJT05fRVhURkxHQklUIHwgXAo+ID4gKyAgICAgICAgICAgICAgICAgWEZT X1NCX1ZFUlNJT05fRElSVjJCSVQpCj4gPiArCj4gPiArI2RlZmluZSBYRlNfU0JfVkVSU0lPTl9N S0ZTKGNyYyxpYSxkaWEsbG9nMixhdHRyMSxzZmxhZyxjaSxtb3JlKSAoXAo+ID4gKwkoKGNyYyl8 fChpYSl8fChkaWEpfHwobG9nMil8fChhdHRyMSl8fChzZmxhZyl8fChjaSl8fChtb3JlKSkgPyBc Cj4gPiArCSgoKGNyYykgPyBYRlNfU0JfVkVSU0lPTl81IDogWEZTX1NCX1ZFUlNJT05fNCkgfAkJ XAo+ID4gKwkJKChpYSkgPyBYRlNfU0JfVkVSU0lPTl9BTElHTkJJVCA6IDApIHwJCQlcCj4gPiAr CQkoKGRpYSkgPyBYRlNfU0JfVkVSU0lPTl9EQUxJR05CSVQgOiAwKSB8CQlcCj4gPiArCQkoKGxv ZzIpID8gWEZTX1NCX1ZFUlNJT05fTE9HVjJCSVQgOiAwKSB8CQlcCj4gPiArCQkoKGF0dHIxKSA/ IFhGU19TQl9WRVJTSU9OX0FUVFJCSVQgOiAwKSB8CQlcCj4gPiArCQkoKHNmbGFnKSA/IFhGU19T Ql9WRVJTSU9OX1NFQ1RPUkJJVCA6IDApIHwJCVwKPiA+ICsJCSgoY2kpID8gWEZTX1NCX1ZFUlNJ T05fQk9SR0JJVCA6IDApIHwJCQlcCj4gPiArCQkoKG1vcmUpID8gWEZTX1NCX1ZFUlNJT05fTU9S RUJJVFNCSVQgOiAwKSB8CQlcCj4gPiArCSAgICAgICAgWEZTX0RGTF9TQl9WRVJTSU9OX0JJVFMg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArCTAgKSA6IFhGU19TQl9WRVJT SU9OXzEgKQo+ID4gKwo+ID4gKyNkZWZpbmUgWEZTX1NCX1ZFUlNJT04yX01LRlMoY3JjLCBsYXp5 Y291bnQsIGF0dHIyLCBwcm9qaWQzMmJpdCwgcGFyZW50LCBcCj4gPiArCQkJICAgICBmdHlwZSkg KFwKPiA+ICsJKChsYXp5Y291bnQpID8gWEZTX1NCX1ZFUlNJT04yX0xBWllTQkNPVU5UQklUIDog MCkgfAkJXAo+ID4gKwkoKGF0dHIyKSA/IFhGU19TQl9WRVJTSU9OMl9BVFRSMkJJVCA6IDApIHwJ CQlcCj4gPiArCSgocHJvamlkMzJiaXQpID8gWEZTX1NCX1ZFUlNJT04yX1BST0pJRDMyQklUIDog MCkgfAkJXAo+ID4gKwkoKHBhcmVudCkgPyBYRlNfU0JfVkVSU0lPTjJfUEFSRU5UQklUIDogMCkg fAkJCVwKPiA+ICsJKChjcmMpID8gWEZTX1NCX1ZFUlNJT04yX0NSQ0JJVCA6IDApIHwJCQkJXAo+ ID4gKwkoKGZ0eXBlKSA/IFhGU19TQl9WRVJTSU9OMl9GVFlQRSA6IDApIHwJCQkJXAo+ID4gKwkw ICkKPiA+ICsKPiA+ICsjZGVmaW5lCVhGU19ERkxfQkxPQ0tTSVpFX0xPRwkxMgkJLyogNDA5NiBi eXRlIGJsb2NrcyAqLwo+ID4gKyNkZWZpbmUJWEZTX0RJTk9ERV9ERkxfTE9HCTgJCS8qIDI1NiBi eXRlIGlub2RlcyAqLwo+ID4gKyNkZWZpbmUJWEZTX0RJTk9ERV9ERkxfQ1JDX0xPRwk5CQkvKiA1 MTIgYnl0ZSBpbm9kZXMgZm9yIENSQ3MgKi8KPiA+ICsjZGVmaW5lCVhGU19NSU5fREFUQV9CTE9D S1MJMTAwCj4gPiArI2RlZmluZQlYRlNfTUlOX0lOT0RFX1BFUkJMT0NLCTIJCS8qIG1pbiBpbm9k ZXMgcGVyIGJsb2NrICovCj4gPiArI2RlZmluZQlYRlNfREZMX0lNQVhJTVVNX1BDVAkyNQkJLyog bWF4ICUgb2Ygc3BhY2UgZm9yIGlub2RlcyAqLwo+ID4gKyNkZWZpbmUJWEZTX0lGTEFHX0FMSUdO CQkxCQkvKiAtaSBhbGlnbiBkZWZhdWx0cyBvbiAqLwo+ID4gKyNkZWZpbmUJWEZTX01JTl9SRUNf RElSU0laRQkxMgkJLyogNDA5NiBieXRlIGRpcmJsb2NrcyAoVjIpICovCj4gPiArI2RlZmluZQlY RlNfREZMX0RJUl9WRVJTSU9OCTIJCS8qIGRlZmF1bHQgZGlyZWN0b3J5IHZlcnNpb24gKi8KPiA+ ICsjZGVmaW5lCVhGU19ERkxfTE9HX1NJWkUJMTAwMAkJLyogZGVmYXVsdCBsb2cgc2l6ZSwgYmxv Y2tzICovCj4gPiArI2RlZmluZQlYRlNfREZMX0xPR19GQUNUT1IJNQkJLyogZGVmYXVsdCBsb2cg c2l6ZSwgZmFjdG9yICovCj4gPiArCQkJCQkJLyogd2l0aCBtYXggdHJhbnMgcmVzZXJ2YXRpb24g Ki8KPiA+ICsjZGVmaW5lIFhGU19NQVhfSU5PREVfU0lHX0JJVFMJMzIJCS8qIG1vc3Qgc2lnbmlm aWNhbnQgYml0cyBpbiBhbgo+ID4gKwkJCQkJCSAqIGlub2RlIG51bWJlciB0aGF0IHdlJ2xsCj4g PiArCQkJCQkJICogYWNjZXB0IHcvbyB3YXJuaW5ncwo+ID4gKwkJCQkJCSAqLwo+ID4gKwo+ID4g KyNkZWZpbmUgWEZTX0FHX0JZVEVTKGJibG9nKQkoKGxvbmcgbG9uZylCQlNJWkUgPDwgKGJibG9n KSkKPiA+ICsjZGVmaW5lCVhGU19BR19NSU5fQllURVMJKChYRlNfQUdfQllURVMoMTUpKSkJLyog MTYgTUIgKi8KPiA+ICsjZGVmaW5lIFhGU19BR19NSU5fQkxPQ0tTKGJsb2cpCSgoWEZTX0FHX0JZ VEVTKDE1KSkgPj4gKGJsb2cpKQo+ID4gKyNkZWZpbmUgWEZTX0FHX01BWF9CTE9DS1MoYmxvZykJ KChYRlNfQUdfQllURVMoMzEpIC0gMSkgPj4gKGJsb2cpKQo+ID4gKwo+ID4gKyNkZWZpbmUgWEZT X01BWF9BR05VTUJFUgkoKHhmc19hZ251bWJlcl90KShOVUxMQUdOVU1CRVIgLSAxKSkKPiA+ICsK PiA+ICsvKgo+ID4gKyAqIFRoZXNlIHZhbHVlcyBkZWZpbmUgd2hhdCB3ZSBjb25zaWRlciBhICJt dWx0aS1kaXNrIiBmaWxlc3lzdGVtLiBUaGF0Cj4gPiBpcywgYQo+ID4gKyAqIGZpbGVzeXN0ZW0g dGhhdCBpcyBsaWtlbHkgdG8gYmUgbWFkZSB1cCBvZiBtdWx0aXBsZSBkZXZpY2VzLCBhbmQgaGVu Y2UKPiA+IGhhdmUKPiA+ICsgKiBzb21lIGxldmVsIG9mIHBhcmFsbGVsaXNtIGF2b2lkIHRvIGl0 IGF0IHRoZSBJTyBsZXZlbC4KPiA+ICsgKi8KPiA+ICsjZGVmaW5lIFhGU19NVUxUSURJU0tfQUdM T0cJCTUJLyogMzIgQUdzICovCj4gPiArI2RlZmluZSBYRlNfTk9NVUxUSURJU0tfQUdMT0cJCTIJ LyogNCBBR3MgKi8KPiA+ICsjZGVmaW5lIFhGU19NVUxUSURJU0tfQUdDT1VOVAkJKDEgPDwgWEZT X01VTFRJRElTS19BR0xPRykKPiA+ICsKPiA+ICsKPiA+ICsvKiB4ZnNfbWtmcy5jICovCj4gPiAr ZXh0ZXJuIGludCBpc2RpZ2l0cyAoY2hhciAqc3RyKTsKPiA+ICtleHRlcm4gbG9uZyBsb25nIGN2 dG51bSAodW5zaWduZWQgaW50IGJsb2Nrc2l6ZSwKPiA+ICsJCQkgdW5zaWduZWQgaW50IHNlY3Rv cnNpemUsIGNoYXIgKnMpOwo+ID4gKwo+ID4gKy8qIHByb3RvLmMgKi8KPiA+ICtleHRlcm4gY2hh ciAqc2V0dXBfcHJvdG8gKGNoYXIgKmZuYW1lKTsKPiA+ICtleHRlcm4gdm9pZCBwYXJzZV9wcm90 byAoeGZzX21vdW50X3QgKm1wLCBzdHJ1Y3QgZnN4YXR0ciAqZnN4LCBjaGFyICoqcHApOwo+ID4g K2V4dGVybiB2b2lkIHJlc19mYWlsZWQgKGludCBlcnIpOwo+ID4gKwo+ID4gKy8qIG1heHRycmVz LmMgKi8KPiA+ICtleHRlcm4gaW50IG1heF90cmFuc19yZXMgKGludCBjcmNzX2VuYWJsZWQsIGlu dCBkaXJ2ZXJzaW9uLAo+ID4gKwkJaW50IHNlY3RvcmxvZywgaW50IGJsb2NrbG9nLCBpbnQgaW5v ZGVsb2csIGludCBkaXJibG9ja2xvZywKPiA+ICsJCWludCBsb2d2ZXJzaW9uLCBpbnQgbG9nX3N1 bml0KTsKPiA+ICsKPiA+ICsjZW5kaWYJLyogX19YRlNfTUtGU19IX18gKi8KPiA+IGRpZmYgLS1n aXQgYS9ta2ZzL01ha2VmaWxlIGIvbWtmcy9NYWtlZmlsZQo+ID4gaW5kZXggZmQxZjYxNS4uODIz MjZlMCAxMDA2NDQKPiA+IC0tLSBhL21rZnMvTWFrZWZpbGUKPiA+ICsrKyBiL21rZnMvTWFrZWZp bGUKPiA+IEBAIC04LDcgKzgsNyBAQCBpbmNsdWRlICQoVE9QRElSKS9pbmNsdWRlL2J1aWxkZGVm cwo+ID4gIExUQ09NTUFORCA9IG1rZnMueGZzCj4gPiAgRlNUWVAgPSBmc3R5cAo+ID4gIAo+ID4g LUhGSUxFUyA9IHhmc19ta2ZzLmgKPiA+ICtIRklMRVMgPQo+ID4gIENGSUxFUyA9IG1heHRycmVz LmMgcHJvdG8uYyB4ZnNfbWtmcy5jCj4gPiAgCj4gPiAgaWZlcSAoJChFTkFCTEVfQkxLSUQpLHll cykKPiA+IGRpZmYgLS1naXQgYS9ta2ZzL3hmc19ta2ZzLmMgYi9ta2ZzL3hmc19ta2ZzLmMKPiA+ IGluZGV4IDgzZjc3NDkuLmQwZGU5MGQgMTAwNjQ0Cj4gPiAtLS0gYS9ta2ZzL3hmc19ta2ZzLmMK PiA+ICsrKyBiL21rZnMveGZzX21rZnMuYwo+ID4gQEAgLTI0LDcgKzI0LDcgQEAKPiA+ICAjaW5j bHVkZSA8ZGlzay9mc3R5cC5oPgo+ID4gICNpbmNsdWRlIDxkaXNrL3ZvbHVtZS5oPgo+ID4gICNl bmRpZgo+ID4gLSNpbmNsdWRlICJ4ZnNfbWtmcy5oIgo+ID4gKyNpbmNsdWRlIDx4ZnMveGZzX21r ZnMuaD4KPiA+ICAKPiA+ICAvKgo+ID4gICAqIERldmljZSB0b3BvbG9neSBpbmZvcm1hdGlvbi4K PiA+IEBAIC02ODgsNDMgKzY4OCw0NSBAQCBjYWxjX2RlZmF1bHRfYWdfZ2VvbWV0cnkoCj4gPiAg CX0KPiA+ICAKPiA+ICAJLyoKPiA+IC0JICogRm9yIHRoZSByZW1haW5kZXIgd2UgY2hvb3NlIGFu IEFHIHNpemUgYmFzZWQgb24gdGhlCj4gPiAtCSAqIG51bWJlciBvZiBkYXRhIGJsb2NrcyBhdmFp bGFibGUsIHRyeWluZyB0byBrZWVwIHRoZQo+ID4gLQkgKiBudW1iZXIgb2YgQUdzIHJlbGF0aXZl bHkgc21hbGwgKGVzcGVjaWFsbHkgY29tcGFyZWQKPiA+IC0JICogdG8gdGhlIG9yaWdpbmFsIGFs Z29yaXRobSkuICBBRyBjb3VudCBpcyBjYWxjdWxhdGVkCj4gPiAtCSAqIGJhc2VkIG9uIHRoZSBw cmVmZXJyZWQgQUcgc2l6ZSwgbm90IHZpY2UtdmVyc2EgLSB0aGUKPiA+IC0JICogY291bnQgY2Fu IGJlIGluY3JlYXNlZCBieSBncm93ZnMsIHNvIHByZWZlciB0byB1c2UKPiA+IC0JICogc21hbGxl ciBjb3VudHMgYXQgbWtmcyB0aW1lLgo+ID4gLQkgKgo+ID4gLQkgKiBGb3IgYSBzaW5nbGUgdW5k ZXJseWluZyBzdG9yYWdlIGRldmljZSBiZXR3ZWVuIDEyOE1CCj4gPiAtCSAqIGFuZCA0VEIgaW4g c2l6ZSwganVzdCB1c2UgNCBBR3MsIG90aGVyd2lzZSBzY2FsZSB1cAo+ID4gLQkgKiBzbW9vdGhs eSBiZXR3ZWVuIG1pbi9tYXggQUcgc2l6ZXMuCj4gPiArCSAqIEZvciBhIHNpbmdsZSB1bmRlcmx5 aW5nIHN0b3JhZ2UgZGV2aWNlIGJldHdlZW4gMTI4TUIgYW5kIDRUQiBpbiBzaXplCj4gPiArCSAq IGp1c3QgdXNlIDQgQUdzIGFuZCBzY2FsZSB1cCBzbW9vdGhseSBiZXR3ZWVuIG1pbi9tYXggQUcg c2l6ZXMuCj4gPiAgCSAqLwo+ID4gLQo+ID4gLQlpZiAoIW11bHRpZGlzayAmJiBkYmxvY2tzID49 IE1FR0FCWVRFUygxMjgsIGJsb2NrbG9nKSkgewo+ID4gKwlpZiAoIW11bHRpZGlzaykgewo+ID4g IAkJaWYgKGRibG9ja3MgPj0gVEVSQUJZVEVTKDQsIGJsb2NrbG9nKSkgewo+ID4gIAkJCWJsb2Nr cyA9IFhGU19BR19NQVhfQkxPQ0tTKGJsb2NrbG9nKTsKPiA+ICAJCQlnb3RvIGRvbmU7Cj4gPiAr CQl9IGVsc2UgaWYgKGRibG9ja3MgPj0gTUVHQUJZVEVTKDEyOCwgYmxvY2tsb2cpKSB7Cj4gPiAr CQkJc2hpZnQgPSBYRlNfTk9NVUxUSURJU0tfQUdMT0c7Cj4gPiArCQkJZ290byBjYWxjX2Jsb2Nr czsKPiA+ICAJCX0KPiA+IC0JCXNoaWZ0ID0gMjsKPiA+IC0JfSBlbHNlIGlmIChkYmxvY2tzID4g R0lHQUJZVEVTKDUxMiwgYmxvY2tsb2cpKQo+ID4gLQkJc2hpZnQgPSA1Owo+ID4gLQllbHNlIGlm IChkYmxvY2tzID4gR0lHQUJZVEVTKDgsIGJsb2NrbG9nKSkKPiA+IC0JCXNoaWZ0ID0gNDsKPiA+ IC0JZWxzZSBpZiAoZGJsb2NrcyA+PSBNRUdBQllURVMoMTI4LCBibG9ja2xvZykpCj4gPiAtCQlz aGlmdCA9IDM7Cj4gPiAtCWVsc2UgaWYgKGRibG9ja3MgPj0gTUVHQUJZVEVTKDY0LCBibG9ja2xv ZykpCj4gPiAtCQlzaGlmdCA9IDI7Cj4gPiAtCWVsc2UgaWYgKGRibG9ja3MgPj0gTUVHQUJZVEVT KDMyLCBibG9ja2xvZykpCj4gPiAtCQlzaGlmdCA9IDE7Cj4gPiAtCWVsc2UKPiA+IC0JCXNoaWZ0 ID0gMDsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBGb3IgdGhlIG11bHRpZGlzayBj b25maWdzIHdlIGNob29zZSBhbiBBRyBjb3VudCBiYXNlZCBvbiB0aGUgbnVtYmVyCj4gPiArCSAq IG9mIGRhdGEgYmxvY2tzIGF2YWlsYWJsZSwgdHJ5aW5nIHRvIGtlZXAgdGhlIG51bWJlciBvZiBB R3MgaGlnaGVyCj4gPiArCSAqIHRoYW4gdGhlIHNpbmdsZSBkaXNrIGNvbmZpZ3VyYXRpb25zLiBU aGlzIG1ha2VzIHRoZSBhc3N1bXB0aW9uIHRoYXQKPiA+ICsJICogbGFyZ2VyIGZpbGVzeXN0ZW1z IGhhdmUgbW9yZSBwYXJhbGxlbGlzbSBhdmFpbGFibGUgdG8gdGhlbS4KPiA+ICsJICovCj4gPiAr CXNoaWZ0ID0gWEZTX01VTFRJRElTS19BR0xPRzsKPiA+ICsJaWYgKGRibG9ja3MgPCBHSUdBQllU RVMoNTEyLCBibG9ja2xvZykpCj4gPiArCQlzaGlmdC0tOwo+ID4gKwlpZiAoZGJsb2NrcyA8IEdJ R0FCWVRFUyg4LCBibG9ja2xvZykpCj4gPiArCQlzaGlmdC0tOwo+ID4gKwlpZiAoZGJsb2NrcyA8 IE1FR0FCWVRFUygxMjgsIGJsb2NrbG9nKSkKPiA+ICsJCXNoaWZ0LS07Cj4gPiArCWlmIChkYmxv Y2tzIDwgTUVHQUJZVEVTKDY0LCBibG9ja2xvZykpCj4gPiArCQlzaGlmdC0tOwo+ID4gKwlpZiAo ZGJsb2NrcyA8IE1FR0FCWVRFUygzMiwgYmxvY2tsb2cpKQo+ID4gKwkJc2hpZnQtLTsKPiA+ICsK PiAKPiBJbnRlbmRlZCBjaGFuZ2UgaW4gYmVoYXZpb3Igb2YgdGhlIGRlZmF1bHRzIGZvciBmcycg dGhhdCBtYXRjaCB0aGVzZQo+IHNpemUgdGhyZXNob2xkcyAodGhlIDUxMmcgYW5kIDhnIG9uZXMg YW55d2F5cyk/IEZvciBleGFtcGxlLCBpbiB0aGUgb2xkCj4gY29kZSBhIDUxMkdCIGZzIGdldHMg YSBzaGlmdCBvZiA0IHdoaWxlIHRoZSBzYW1lIGZzIGdldHMgc2hpZnQgPSA1IGluCj4gdGhlIG5l dyBjb2RlLgo+IAo+IEJyaWFuCgpXaGVuIEkgbG9vayBvbiB0aGUgY29kZSwgd2hlcmUgZGlkIHlv dSBnb3QgdGhlIDQgdnMgNT8gSW4gdGhlIG9sZCBjb2RlLCBmb3IgNTEyR0IgYW5kIGJpZ2dlciBp cyBhc3NpZ25lZCBzaGlmdD01IGRpcmVjdGx5LiBJbiB0aGUgbmV3IG9uZSwgc2hpZnQgaXMgc2V0 IHRvIFhGU19NVUxUSURJU0tfQUdMT0cgd2hpY2ggaXMgNSwgYW5kIHRoZW4sIGlmIHRoZSBkaXNr IGlzIHNtYWxsZXIgdGhhbiA1MTJHQiwgaXQgZGVjcmVtZW50cyB0aGUgdmFsdWUuIEJ1dCB1bmxl c3MgSSdtIG1pc3Npbmcgc29tZXRoaW5nLCB0aGUgbXVsdGlkaXNrIGNvbmZpZ3VyYXRpb24gaXMg bm90IGNoYW5naW5nIGFueXRoaW5nLCB0aGVyZSBpcyBqdXN0IGEgZGlmZmVyZW50IHN5bnRheC4K CkNoZWVycywKSmFuCi0tIApKYW4gVHVsYWsKanR1bGFrQHJlZGhhdC5jb20KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnhmcyBtYWlsaW5nIGxpc3QKeGZz QG9zcy5zZ2kuY29tCmh0dHA6Ly9vc3Muc2dpLmNvbS9tYWlsbWFuL2xpc3RpbmZvL3hmcwo=