From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 6ACDE7CBE for ; Tue, 5 Jul 2016 06:03:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id B164230404E for ; Tue, 5 Jul 2016 04:02:59 -0700 (PDT) Received: from mail-qt0-f179.google.com (mail-qt0-f179.google.com [209.85.216.179]) by cuda.sgi.com with ESMTP id PBeObZcjPOkcEwpP (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO) for ; Tue, 05 Jul 2016 04:02:55 -0700 (PDT) Received: by mail-qt0-f179.google.com with SMTP id w59so98834410qtd.3 for ; Tue, 05 Jul 2016 04:02:55 -0700 (PDT) Message-ID: <1467716572.3800.2.camel@redhat.com> Subject: Re: [PATCH v23 02/22] vfs: Add MAY_CREATE_FILE and MAY_CREATE_DIR permission flags From: Jeff Layton Date: Tue, 05 Jul 2016 07:02:52 -0400 In-Reply-To: <1467294433-3222-3-git-send-email-agruenba@redhat.com> References: <1467294433-3222-1-git-send-email-agruenba@redhat.com> <1467294433-3222-3-git-send-email-agruenba@redhat.com> 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: Andreas Gruenbacher , Alexander Viro Cc: "J. Bruce Fields" , linux-nfs@vger.kernel.org, Theodore Ts'o , linux-cifs@vger.kernel.org, linux-api@vger.kernel.org, Trond Myklebust , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, Christoph Hellwig , Andreas Dilger , linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, Anna Schumaker T24gVGh1LCAyMDE2LTA2LTMwIGF0IDE1OjQ2ICswMjAwLCBBbmRyZWFzIEdydWVuYmFjaGVyIHdy b3RlOgo+IFJpY2hhY2xzIGRpc3Rpbmd1aXNoIGJldHdlZW4gY3JlYXRpbmcgbm9uLWRpcmVjdG9y aWVzIGFuZCBkaXJlY3Rvcmllcy4gVG8KPiBzdXBwb3J0IHRoYXQsIGFkZCBhbiBpc2RpciBwYXJh bWV0ZXIgdG8gbWF5X2NyZWF0ZSgpLiBXaGVuIGNoZWNraW5nCj4gaW5vZGVfcGVybWlzc2lvbigp IGZvciBjcmVhdGUgcGVybWlzc2lvbiwgcGFzcyBpbiBhbiBhZGRpdGlvbmFsCj4gTUFZX0NSRUFU RV9GSUxFIG9yIE1BWV9DUkVBVEVfRElSIG1hc2sgZmxhZy4KPiAKPiBBZGQgbWF5X3JlcGxhY2Uo KSB0byBhbGxvdyBjaGVja2luZyBmb3IgZGVsZXRlIGFuZCBjcmVhdGUgYWNjZXNzIHdoZW4KPiBy ZXBsYWNpbmcgYW4gZXhpc3RpbmcgZmlsZSBpbiB2ZnNfcmVuYW1lKCkuCj4gCj4gU2lnbmVkLW9m Zi1ieTogQW5kcmVhcyBHcnVlbmJhY2hlciA8YWdydWVuYmFAcmVkaGF0LmNvbT4KPiBSZXZpZXdl ZC1ieTogSi4gQnJ1Y2UgRmllbGRzIDxiZmllbGRzQHJlZGhhdC5jb20+Cj4gUmV2aWV3ZWQtYnk6 IEFuZHJlYXMgRGlsZ2VyIDxhZGlsZ2VyQGRpbGdlci5jYT4KPiBSZXZpZXdlZC1ieTogU3RldmUg RnJlbmNoIDxzdGV2ZS5mcmVuY2hAcHJpbWFyeWRhdGEuY29tPgo+IC0tLQo+IMKgZnMvbmFtZWku Y8KgwqDCoMKgwqDCoMKgwqDCoHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQo+IMKgaW5jbHVkZS9saW51eC9mcy5oIHzCoMKgMiArKwo+IMKgMiBm aWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZnMvbmFtZWkuYyBiL2ZzL25hbWVpLmMKPiBpbmRleCA3Y2M1NDg3Li5kYzkxODU4 IDEwMDY0NAo+IC0tLSBhL2ZzL25hbWVpLmMKPiArKysgYi9mcy9uYW1laS5jCj4gQEAgLTQ1NCw3 ICs0NTQsOSBAQCBzdGF0aWMgaW50IHNiX3Blcm1pc3Npb24oc3RydWN0IHN1cGVyX2Jsb2NrICpz Yiwgc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCj4gwqAgKiB0aGlzLCBsZXR0aW5nIHVz IHNldCBhcmJpdHJhcnkgcGVybWlzc2lvbnMgZm9yIGZpbGVzeXN0ZW0gYWNjZXNzIHdpdGhvdXQK PiDCoCAqIGNoYW5naW5nIHRoZSAibm9ybWFsIiBVSURzIHdoaWNoIGFyZSB1c2VkIGZvciBvdGhl ciB0aGluZ3MuCj4gwqAgKgo+IC0gKiBXaGVuIGNoZWNraW5nIGZvciBNQVlfQVBQRU5ELCBNQVlf V1JJVEUgbXVzdCBhbHNvIGJlIHNldCBpbiBAbWFzay4KPiArICogTUFZX1dSSVRFIG11c3QgYmUg c2V0IGluIEBtYXNrIHdoZW5ldmVyIE1BWV9BUFBFTkQsIE1BWV9DUkVBVEVfRklMRSwgb3IKPiAr ICogTUFZX0NSRUFURV9ESVIgYXJlIHNldC7CoMKgVGhhdCB3YXksIGZpbGUgc3lzdGVtcyB0aGF0 IGRvbid0IHN1cHBvcnQgdGhlc2UKPiArICogcGVybWlzc2lvbnMgd2lsbCBjaGVjayBmb3IgTUFZ X1dSSVRFIGluc3RlYWQuCj4gwqAgKi8KPiDCoGludCBpbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBp bm9kZSAqaW5vZGUsIGludCBtYXNrKQo+IMKgewo+IEBAIC0yNzYzLDcgKzI3NjUsOCBAQCBFWFBP UlRfU1lNQk9MKF9fY2hlY2tfc3RpY2t5KTsKPiDCoCAqIDEwLiBXZSBkb24ndCBhbGxvdyByZW1v dmFsIG9mIE5GUyBzaWxseXJlbmFtZWQgZmlsZXM7IGl0J3MgaGFuZGxlZCBieQo+IMKgICrCoMKg wqDCoMKgbmZzX2FzeW5jX3VubGluaygpLgo+IMKgICovCj4gLXN0YXRpYyBpbnQgbWF5X2RlbGV0 ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqdmljdGltLCBib29sIGlzZGlyKQo+ ICtzdGF0aWMgaW50IG1heV9kZWxldGVfb3JfcmVwbGFjZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry dWN0IGRlbnRyeSAqdmljdGltLAo+ICsJCQkJwqBib29sIGlzZGlyLCBpbnQgbWFzaykKPiDCoHsK PiDCoAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZF9iYWNraW5nX2lub2RlKHZpY3RpbSk7Cj4gwqAJ aW50IGVycm9yOwo+IEBAIC0yNzc1LDcgKzI3NzgsNyBAQCBzdGF0aWMgaW50IG1heV9kZWxldGUo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKnZpY3RpbSwgYm9vbCBpc2RpcikKPiDC oAlCVUdfT04odmljdGltLT5kX3BhcmVudC0+ZF9pbm9kZSAhPSBkaXIpOwo+IMKgCWF1ZGl0X2lu b2RlX2NoaWxkKGRpciwgdmljdGltLCBBVURJVF9UWVBFX0NISUxEX0RFTEVURSk7Cj4gwqAKPiAt CWVycm9yID0gaW5vZGVfcGVybWlzc2lvbihkaXIsIE1BWV9XUklURSB8IE1BWV9FWEVDKTsKPiAr CWVycm9yID0gaW5vZGVfcGVybWlzc2lvbihkaXIsIG1hc2spOwo+IMKgCWlmIChlcnJvcikKPiDC oAkJcmV0dXJuIGVycm9yOwo+IMKgCWlmIChJU19BUFBFTkQoZGlyKSkKPiBAQCAtMjc5OCw2ICsy ODAxLDE4IEBAIHN0YXRpYyBpbnQgbWF5X2RlbGV0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0 IGRlbnRyeSAqdmljdGltLCBib29sIGlzZGlyKQo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgCj4g K3N0YXRpYyBpbnQgbWF5X2RlbGV0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAq dmljdGltLCBib29sIGlzZGlyKQo+ICt7Cj4gKwlyZXR1cm4gbWF5X2RlbGV0ZV9vcl9yZXBsYWNl KGRpciwgdmljdGltLCBpc2RpciwgTUFZX1dSSVRFIHwgTUFZX0VYRUMpOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IG1heV9yZXBsYWNlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICp2 aWN0aW0sIGJvb2wgaXNkaXIpCj4gK3sKPiArCWludCBtYXNrID0gaXNkaXIgPyBNQVlfQ1JFQVRF X0RJUiA6IE1BWV9DUkVBVEVfRklMRTsKPiArCj4gKwlyZXR1cm4gbWF5X2RlbGV0ZV9vcl9yZXBs YWNlKGRpciwgdmljdGltLCBpc2RpciwgbWFzayB8IE1BWV9XUklURSB8IE1BWV9FWEVDKTsKPiAr fQo+ICsKPiDCoC8qCUNoZWNrIHdoZXRoZXIgd2UgY2FuIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBk ZW50cnkgY2hpbGQgaW4gZGlyZWN0b3J5Cj4gwqAgKsKgwqBkaXIuCj4gwqAgKsKgwqAxLiBXZSBj YW4ndCBkbyBpdCBpZiBjaGlsZCBhbHJlYWR5IGV4aXN0cyAob3BlbiBoYXMgc3BlY2lhbCB0cmVh dG1lbnQgZm9yCj4gQEAgLTI4MDYsMTQgKzI4MjEsMTYgQEAgc3RhdGljIGludCBtYXlfZGVsZXRl KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICp2aWN0aW0sIGJvb2wgaXNkaXIpCj4g wqAgKsKgwqAzLiBXZSBzaG91bGQgaGF2ZSB3cml0ZSBhbmQgZXhlYyBwZXJtaXNzaW9ucyBvbiBk aXIKPiDCoCAqwqDCoDQuIFdlIGNhbid0IGRvIGl0IGlmIGRpciBpcyBpbW11dGFibGUgKGRvbmUg aW4gcGVybWlzc2lvbigpKQo+IMKgICovCj4gLXN0YXRpYyBpbmxpbmUgaW50IG1heV9jcmVhdGUo c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmNoaWxkKQo+ICtzdGF0aWMgaW5saW5l IGludCBtYXlfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCwg Ym9vbCBpc2RpcikKPiDCoHsKPiArCWludCBtYXNrID0gaXNkaXIgPyBNQVlfQ1JFQVRFX0RJUiA6 IE1BWV9DUkVBVEVfRklMRTsKPiArCj4gwqAJYXVkaXRfaW5vZGVfY2hpbGQoZGlyLCBjaGlsZCwg QVVESVRfVFlQRV9DSElMRF9DUkVBVEUpOwo+IMKgCWlmIChjaGlsZC0+ZF9pbm9kZSkKPiDCoAkJ cmV0dXJuIC1FRVhJU1Q7Cj4gwqAJaWYgKElTX0RFQURESVIoZGlyKSkKPiDCoAkJcmV0dXJuIC1F Tk9FTlQ7Cj4gLQlyZXR1cm4gaW5vZGVfcGVybWlzc2lvbihkaXIsIE1BWV9XUklURSB8IE1BWV9F WEVDKTsKPiArCXJldHVybiBpbm9kZV9wZXJtaXNzaW9uKGRpciwgTUFZX1dSSVRFIHwgTUFZX0VY RUMgfCBtYXNrKTsKPiDCoH0KPiDCoAo+IMKgLyoKPiBAQCAtMjg2Myw3ICsyODgwLDcgQEAgRVhQ T1JUX1NZTUJPTCh1bmxvY2tfcmVuYW1lKTsKPiDCoGludCB2ZnNfY3JlYXRlKHN0cnVjdCBpbm9k ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSwKPiDCoAkJYm9vbCB3 YW50X2V4Y2wpCj4gwqB7Cj4gLQlpbnQgZXJyb3IgPSBtYXlfY3JlYXRlKGRpciwgZGVudHJ5KTsK PiArCWludCBlcnJvciA9IG1heV9jcmVhdGUoZGlyLCBkZW50cnksIGZhbHNlKTsKPiDCoAlpZiAo ZXJyb3IpCj4gwqAJCXJldHVybiBlcnJvcjsKPiDCoAo+IEBAIC0zNjUwLDcgKzM2NjcsNyBAQCBF WFBPUlRfU1lNQk9MKHVzZXJfcGF0aF9jcmVhdGUpOwo+IMKgCj4gwqBpbnQgdmZzX21rbm9kKHN0 cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVtb2RlX3QgbW9kZSwgZGV2 X3QgZGV2KQo+IMKgewo+IC0JaW50IGVycm9yID0gbWF5X2NyZWF0ZShkaXIsIGRlbnRyeSk7Cj4g KwlpbnQgZXJyb3IgPSBtYXlfY3JlYXRlKGRpciwgZGVudHJ5LCBmYWxzZSk7Cj4gwqAKPiDCoAlp ZiAoZXJyb3IpCj4gwqAJCXJldHVybiBlcnJvcjsKPiBAQCAtMzc0NCw3ICszNzYxLDcgQEAgU1lT Q0FMTF9ERUZJTkUzKG1rbm9kLCBjb25zdCBjaGFyIF9fdXNlciAqLCBmaWxlbmFtZSwgdW1vZGVf dCwgbW9kZSwgdW5zaWduZWQsIGQKPiDCoAo+IMKgaW50IHZmc19ta2RpcihzdHJ1Y3QgaW5vZGUg KmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bW9kZV90IG1vZGUpCj4gwqB7Cj4gLQlpbnQg ZXJyb3IgPSBtYXlfY3JlYXRlKGRpciwgZGVudHJ5KTsKPiArCWludCBlcnJvciA9IG1heV9jcmVh dGUoZGlyLCBkZW50cnksIHRydWUpOwo+IMKgCXVuc2lnbmVkIG1heF9saW5rcyA9IGRpci0+aV9z Yi0+c19tYXhfbGlua3M7Cj4gwqAKPiDCoAlpZiAoZXJyb3IpCj4gQEAgLTM4MDAsNyArMzgxNyw3 IEBAIFNZU0NBTExfREVGSU5FMihta2RpciwgY29uc3QgY2hhciBfX3VzZXIgKiwgcGF0aG5hbWUs IHVtb2RlX3QsIG1vZGUpCj4gwqAKPiDCoGludCB2ZnNfcm1kaXIoc3RydWN0IGlub2RlICpkaXIs IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKPiDCoHsKPiAtCWludCBlcnJvciA9IG1heV9kZWxldGUo ZGlyLCBkZW50cnksIDEpOwo+ICsJaW50IGVycm9yID0gbWF5X2RlbGV0ZShkaXIsIGRlbnRyeSwg dHJ1ZSk7Cj4gwqAKPiDCoAlpZiAoZXJyb3IpCj4gwqAJCXJldHVybiBlcnJvcjsKPiBAQCAtMzky Miw3ICszOTM5LDcgQEAgU1lTQ0FMTF9ERUZJTkUxKHJtZGlyLCBjb25zdCBjaGFyIF9fdXNlciAq LCBwYXRobmFtZSkKPiDCoGludCB2ZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqKmRlbGVnYXRlZF9pbm9kZSkKPiDCoHsKPiDC oAlzdHJ1Y3QgaW5vZGUgKnRhcmdldCA9IGRlbnRyeS0+ZF9pbm9kZTsKPiAtCWludCBlcnJvciA9 IG1heV9kZWxldGUoZGlyLCBkZW50cnksIDApOwo+ICsJaW50IGVycm9yID0gbWF5X2RlbGV0ZShk aXIsIGRlbnRyeSwgZmFsc2UpOwo+IMKgCj4gwqAJaWYgKGVycm9yKQo+IMKgCQlyZXR1cm4gZXJy b3I7Cj4gQEAgLTQwNTYsNyArNDA3Myw3IEBAIFNZU0NBTExfREVGSU5FMSh1bmxpbmssIGNvbnN0 IGNoYXIgX191c2VyICosIHBhdGhuYW1lKQo+IMKgCj4gwqBpbnQgdmZzX3N5bWxpbmsoc3RydWN0 IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgY29uc3QgY2hhciAqb2xkbmFtZSkK PiDCoHsKPiAtCWludCBlcnJvciA9IG1heV9jcmVhdGUoZGlyLCBkZW50cnkpOwo+ICsJaW50IGVy cm9yID0gbWF5X2NyZWF0ZShkaXIsIGRlbnRyeSwgZmFsc2UpOwo+IMKgCj4gwqAJaWYgKGVycm9y KQo+IMKgCQlyZXR1cm4gZXJyb3I7Cj4gQEAgLTQxMzksNyArNDE1Niw3IEBAIGludCB2ZnNfbGlu ayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl bnRyeSAqbmV3X2RlCj4gwqAJaWYgKCFpbm9kZSkKPiDCoAkJcmV0dXJuIC1FTk9FTlQ7Cj4gwqAK PiAtCWVycm9yID0gbWF5X2NyZWF0ZShkaXIsIG5ld19kZW50cnkpOwo+ICsJZXJyb3IgPSBtYXlf Y3JlYXRlKGRpciwgbmV3X2RlbnRyeSwgZmFsc2UpOwo+IMKgCWlmIChlcnJvcikKPiDCoAkJcmV0 dXJuIGVycm9yOwo+IMKgCj4gQEAgLTQzMzYsMTQgKzQzNTMsMTQgQEAgaW50IHZmc19yZW5hbWUo c3RydWN0IGlub2RlICpvbGRfZGlyLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAo+IMKgCQly ZXR1cm4gZXJyb3I7Cj4gwqAKPiDCoAlpZiAoIXRhcmdldCkgewo+IC0JCWVycm9yID0gbWF5X2Ny ZWF0ZShuZXdfZGlyLCBuZXdfZGVudHJ5KTsKPiArCQllcnJvciA9IG1heV9jcmVhdGUobmV3X2Rp ciwgbmV3X2RlbnRyeSwgaXNfZGlyKTsKPiDCoAl9IGVsc2Ugewo+IMKgCQluZXdfaXNfZGlyID0g ZF9pc19kaXIobmV3X2RlbnRyeSk7Cj4gwqAKPiDCoAkJaWYgKCEoZmxhZ3MgJiBSRU5BTUVfRVhD SEFOR0UpKQo+IC0JCQllcnJvciA9IG1heV9kZWxldGUobmV3X2RpciwgbmV3X2RlbnRyeSwgaXNf ZGlyKTsKPiArCQkJZXJyb3IgPSBtYXlfcmVwbGFjZShuZXdfZGlyLCBuZXdfZGVudHJ5LCBpc19k aXIpOwo+IMKgCQllbHNlCj4gLQkJCWVycm9yID0gbWF5X2RlbGV0ZShuZXdfZGlyLCBuZXdfZGVu dHJ5LCBuZXdfaXNfZGlyKTsKPiArCQkJZXJyb3IgPSBtYXlfcmVwbGFjZShuZXdfZGlyLCBuZXdf ZGVudHJ5LCBuZXdfaXNfZGlyKTsKPiDCoAl9Cj4gwqAJaWYgKGVycm9yKQo+IMKgCQlyZXR1cm4g ZXJyb3I7Cj4gQEAgLTQ2MDYsNyArNDYyMyw3IEBAIFNZU0NBTExfREVGSU5FMihyZW5hbWUsIGNv bnN0IGNoYXIgX191c2VyICosIG9sZG5hbWUsIGNvbnN0IGNoYXIgX191c2VyICosIG5ld25hCj4g wqAKPiDCoGludCB2ZnNfd2hpdGVvdXQoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkg KmRlbnRyeSkKPiDCoHsKPiAtCWludCBlcnJvciA9IG1heV9jcmVhdGUoZGlyLCBkZW50cnkpOwo+ ICsJaW50IGVycm9yID0gbWF5X2NyZWF0ZShkaXIsIGRlbnRyeSwgZmFsc2UpOwo+IMKgCWlmIChl cnJvcikKPiDCoAkJcmV0dXJuIGVycm9yOwo+IMKgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvZnMuaCBiL2luY2x1ZGUvbGludXgvZnMuaAo+IGluZGV4IDRhZDEzMGMuLmRkNjE0YWQgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9mcy5oCj4gKysrIGIvaW5jbHVkZS9saW51eC9mcy5o Cj4gQEAgLTg0LDYgKzg0LDggQEAgdHlwZWRlZiBpbnQgKGRpb19pb2RvbmVfdCkoc3RydWN0IGtp b2NiICppb2NiLCBsb2ZmX3Qgb2Zmc2V0LAo+IMKgI2RlZmluZSBNQVlfQ0hESVIJCTB4MDAwMDAw NDAKPiDCoC8qIGNhbGxlZCBmcm9tIFJDVSBtb2RlLCBkb24ndCBibG9jayAqLwo+IMKgI2RlZmlu ZSBNQVlfTk9UX0JMT0NLCQkweDAwMDAwMDgwCj4gKyNkZWZpbmUgTUFZX0NSRUFURV9GSUxFCQkw eDAwMDAwMTAwCj4gKyNkZWZpbmUgTUFZX0NSRUFURV9ESVIJCTB4MDAwMDAyMDAKPiDCoAo+IMKg LyoKPiDCoCAqIGZsYWdzIGluIGZpbGUuZl9tb2RlLsKgwqBOb3RlIHRoYXQgRk1PREVfUkVBRCBh bmQgRk1PREVfV1JJVEUgbXVzdCBjb3JyZXNwb25kCgpSZXZpZXdlZC1ieTogSmVmZiBMYXl0b24g PGpsYXl0b25AcmVkaGF0LmNvbT4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCnhmcyBtYWlsaW5nIGxpc3QKeGZzQG9zcy5zZ2kuY29tCmh0dHA6Ly9vc3Mu c2dpLmNvbS9tYWlsbWFuL2xpc3RpbmZvL3hmcwo=