From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [PATCH mesa 4/6] nouveau: codegen: s/FILE_MEMORY_GLOBAL/FILE_MEMORY_BUFFER/ Date: Wed, 16 Mar 2016 19:14:17 +0100 Message-ID: <56E9A279.9040308@redhat.com> References: <1458120239-27659-1-git-send-email-hdegoede@redhat.com> <1458120239-27659-4-git-send-email-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Ilia Mirkin Cc: mesa-dev-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org SGksCgpPbiAxNi0wMy0xNiAxNTo1NSwgSWxpYSBNaXJraW4gd3JvdGU6Cj4gVGhpcyBhcHByb2Fj aCBsZWFkcyB0byB0aGUgZW1pdHRlcnMgbmVlZGluZyB0byBrbm93IGFib3V0IGJvdGggZ2xvYmFs IGFuZAo+IGJ1ZmZlciwgZXZlbiB0aG91Z2ggYXQgdGhhdCBwb2ludCwgdGhleSBhcmUgaWRlbnRp Y2FsLiBJIHdhcyB0aGlua2luZyB0aGF0Cj4gaW4gdGhlIGxvd2VyaW5nIGxvZ2ljLCBidWZmZXIg d291bGQganVzdCBnZXQgcmV3cml0dGVuIGFzIGdsb2JhbCAod2l0aCB0aGUKPiBvZmZzZXQgYWRk ZWQpLCB0aHVzIG5vdCBuZWVkaW5nIGFueSBjaGFuZ2UgdG8gdGhlIGVtaXR0ZXJzLiBXaGF0IGRv IHlvdQo+IHRoaW5rIGFib3V0IHN1Y2ggYW4gYXBwcm9hY2g/CgpJIHdhcyBhY3R1YWxseSB0aGlu a2luZyB0aGUgc2FtZSwgYnV0IEkgd2FzIGEgYml0IGFmcmFpZCBJIG1pZ2h0IGJyZWFrCnNvbWV0 aGluZyBieSBkb2luZyB0aGF0LiBJJ20gd2lsbGluZyB0byB0cnkgdGhvdWdoLCBidXQgdGhlIHJl c3VsdCBpcwpnb2luZyB0byBuZWVkIHNvbWUgZXh0cmEgdGVzdGluZyBieSBvdGhlcnMgSSBiZWxp ZXZlLgoKUXVlc3Rpb25zOgoKMSkgQW55IHRlc3RzIEkgY2FuIHJ1biB0byB0ZXN0IHRoZSBidWZm ZXIgcGF0aHMgPwoKMikgU28gdGhlIHJlc3VsdGluZyBwYXRjaCwgd2hpY2ggd291bGQgcmVwbGFj ZSB0aGlzIG9uZSwgYW5kIG1ha2UgbW9zdAogICAgb2YgdGhlICJub3V2ZWF1OiBjb2RlZ2VuOiBB ZGQgc3VwcG9ydCBmb3IgT3BlbkNMIGdsb2JhbCBtZW1vcnkgYnVmZmVycyIKICAgIHVubmVjZXNz YXJ5IHdvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2UgdGhpczoKMmEpIEFkZCBGSUxFX01FTU9SWV9C VUZGRVIgYXMgbnY1MF9pcjo6RklMRV8qIHR5cGUKMmIpIFVzZSBpdCBpbiBudjUwX2lyX2Zyb21f dGdzaS5jcHAgaW5zdGVhZCBvZiBHTE9CQUwKMmMpIFVzZSBpdCBpbiBudjUwX2lyX2xvd2VyaW5n XyB0byBjaGVjayBmb3IgYnVmZmVyIGFjY2Vzc2VzLAogICAgIGFuZCB3aGVuIGFkZGluZyB0aGUg b2Zmc2V0IGNoYW5nZSB0aGUgZmlsZV90eXBlIHRvIEdMT0JBTAoKUmlnaHQgPwoKUmVnYXJkcywK CkhhbnMKCgo+IE9uIE1hciAxNiwgMjAxNiAyOjI0IEFNLCAiSGFucyBkZSBHb2VkZSIgPGhkZWdv ZWRlQHJlZGhhdC5jb20+IHdyb3RlOgo+Cj4+IEZJTEVfTUVNT1JZX0dMT0JBTCBpcyBjdXJyZW50 bHkgb25seSB1c2VkIGZvciBidWZmZXIgaGFuZGxpbmcsIGFzIHdlCj4+IGRvIG5vdCB5ZXQgaGF2 ZSAob3BlbmNsKSBnbG9iYWwgbWVtb3J5IHN1cHBvcnQuIEdsb2JhbCBtZW1vcnkgc3VwcG9ydAo+ PiBhY3R1YWxseSByZXF1aXJlcyBzb21lIGRpZmZlcmVudCBoYW5kbGluZyBkdXJpbmcgbG93ZXJp bmcsIHNvIHJlbmFtZQo+PiBGSUxFX01FTU9SWV9HTE9CQUwgdG8gRklMRV9NRU1PUllfQlVGRkVS IHRvIHJlZmxlY3QgdGhhdCB0aGUgY3VycmVudAo+PiBjb2RlIGlzIGZvciBidWZmZXIgaGFuZGxp bmcsIHRoaXMgd2lsbCBhbGxvdyB0aGUgbGF0ZXIgKHJlLSlhZGRpdGlvbgo+PiBvZiBGSUxFX01F TU9SWV9HTE9CQUwgZm9yIHJlZ3VsYXIgZ2xvYmFsIG1lbW9yeS4KPj4KPj4gU2lnbmVkLW9mZi1i eTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KPj4gLS0tCj4+ICAgc3JjL2dh bGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pci5oICAgICAgICAgICAgICAgIHwg IDIgKy0KPj4gICBzcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2Vt aXRfZ2sxMTAuY3BwICAgfCAxMAo+PiArKysrKy0tLS0tCj4+ICAgc3JjL2dhbGxpdW0vZHJpdmVy cy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X2dtMTA3LmNwcCAgIHwgIDYgKysrLS0tCj4+ ICAgc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X252NTAu Y3BwICAgIHwgMTAKPj4gKysrKystLS0tLQo+PiAgIHNyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVh dS9jb2RlZ2VuL252NTBfaXJfZW1pdF9udmMwLmNwcCAgICB8IDEyCj4+ICsrKysrKy0tLS0tLQo+ PiAgIHNyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3Np LmNwcCAgICB8ICA4ICsrKystLS0tCj4+ICAgLi4uL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252 NTBfaXJfbG93ZXJpbmdfbnZjMC5jcHAgICAgICAgIHwgMTAKPj4gKysrKystLS0tLQo+PiAgIHNy Yy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcGVlcGhvbGUuY3BwICAg ICB8ICA4ICsrKystLS0tCj4+ICAgc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4v bnY1MF9pcl9wcmludC5jcHAgICAgICAgIHwgIDIgKy0KPj4gICBzcmMvZ2FsbGl1bS9kcml2ZXJz L25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udjUwLmNwcCAgfCAgNiArKystLS0KPj4g ICBzcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udmMw LmNwcCAgfCAgMiArLQo+PiAgIDExIGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDM4 IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2 ZWF1L2NvZGVnZW4vbnY1MF9pci5oCj4+IGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2Nv ZGVnZW4vbnY1MF9pci5oCj4+IGluZGV4IDdiMGViMmYuLmZkYzIxOTUgMTAwNjQ0Cj4+IC0tLSBh L3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXIuaAo+PiArKysgYi9z cmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyLmgKPj4gQEAgLTMzMiw3 ICszMzIsNyBAQCBlbnVtIERhdGFGaWxlCj4+ICAgICAgRklMRV9NRU1PUllfQ09OU1QsCj4+ICAg ICAgRklMRV9TSEFERVJfSU5QVVQsCj4+ICAgICAgRklMRV9TSEFERVJfT1VUUFVULAo+PiAtICAg RklMRV9NRU1PUllfR0xPQkFMLAo+PiArICAgRklMRV9NRU1PUllfQlVGRkVSLAo+PiAgICAgIEZJ TEVfTUVNT1JZX1NIQVJFRCwKPj4gICAgICBGSUxFX01FTU9SWV9MT0NBTCwKPj4gICAgICBGSUxF X1NZU1RFTV9WQUxVRSwKPj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVh dS9jb2RlZ2VuL252NTBfaXJfZW1pdF9nazExMC5jcHAKPj4gYi9zcmMvZ2FsbGl1bS9kcml2ZXJz L25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfZ2sxMTAuY3BwCj4+IGluZGV4IDcwZjNjM2Yu LjAyYTExMDEgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2Rl Z2VuL252NTBfaXJfZW1pdF9nazExMC5jcHAKPj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9u b3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X2drMTEwLmNwcAo+PiBAQCAtMTY0MSw3ICsxNjQx LDcgQEAgQ29kZUVtaXR0ZXJHSzExMDo6ZW1pdFNUT1JFKGNvbnN0IEluc3RydWN0aW9uICppKQo+ PiAgICAgIGludDMyX3Qgb2Zmc2V0ID0gU0RBVEEoaS0+c3JjKDApKS5vZmZzZXQ7Cj4+Cj4+ICAg ICAgc3dpdGNoIChpLT5zcmMoMCkuZ2V0RmlsZSgpKSB7Cj4+IC0gICBjYXNlIEZJTEVfTUVNT1JZ X0dMT0JBTDogY29kZVsxXSA9IDB4ZTAwMDAwMDA7IGNvZGVbMF0gPSAweDAwMDAwMDAwOwo+PiBi cmVhazsKPj4gKyAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOiBjb2RlWzFdID0gMHhlMDAwMDAw MDsgY29kZVswXSA9IDB4MDAwMDAwMDA7Cj4+IGJyZWFrOwo+PiAgICAgIGNhc2UgRklMRV9NRU1P UllfTE9DQUw6ICBjb2RlWzFdID0gMHg3YTgwMDAwMDsgY29kZVswXSA9IDB4MDAwMDAwMDI7Cj4+ IGJyZWFrOwo+PiAgICAgIGNhc2UgRklMRV9NRU1PUllfU0hBUkVEOgo+PiAgICAgICAgIGNvZGVb MF0gPSAweDAwMDAwMDAyOwo+PiBAQCAtMTY3OCw3ICsxNjc4LDcgQEAgQ29kZUVtaXR0ZXJHSzEx MDo6ZW1pdFNUT1JFKGNvbnN0IEluc3RydWN0aW9uICppKQo+Pgo+PiAgICAgIHNyY0lkKGktPnNy YygxKSwgMik7Cj4+ICAgICAgc3JjSWQoaS0+c3JjKDApLmdldEluZGlyZWN0KDApLCAxMCk7Cj4+ IC0gICBpZiAoaS0+c3JjKDApLmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9HTE9CQUwgJiYKPj4g KyAgIGlmIChpLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUiAmJgo+PiAg ICAgICAgICBpLT5zcmMoMCkuaXNJbmRpcmVjdCgwKSAmJgo+PiAgICAgICAgICBpLT5nZXRJbmRp cmVjdCgwLCAwKS0+cmVnLnNpemUgPT0gOCkKPj4gICAgICAgICBjb2RlWzFdIHw9IDEgPDwgMjM7 Cj4+IEBAIC0xNjkwLDcgKzE2OTAsNyBAQCBDb2RlRW1pdHRlckdLMTEwOjplbWl0TE9BRChjb25z dCBJbnN0cnVjdGlvbiAqaSkKPj4gICAgICBpbnQzMl90IG9mZnNldCA9IFNEQVRBKGktPnNyYygw KSkub2Zmc2V0Owo+Pgo+PiAgICAgIHN3aXRjaCAoaS0+c3JjKDApLmdldEZpbGUoKSkgewo+PiAt ICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6IGNvZGVbMV0gPSAweGMwMDAwMDAwOyBjb2RlWzBd ID0gMHgwMDAwMDAwMDsKPj4gYnJlYWs7Cj4+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZFUjog Y29kZVsxXSA9IDB4YzAwMDAwMDA7IGNvZGVbMF0gPSAweDAwMDAwMDAwOwo+PiBicmVhazsKPj4g ICAgICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMOiAgY29kZVsxXSA9IDB4N2EwMDAwMDA7IGNvZGVb MF0gPSAweDAwMDAwMDAyOwo+PiBicmVhazsKPj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX1NIQVJF RDoKPj4gICAgICAgICBjb2RlWzBdID0gMHgwMDAwMDAwMjsKPj4gQEAgLTE4MDAsNyArMTgwMCw3 IEBAIENvZGVFbWl0dGVyR0sxMTA6OmVtaXRNT1YoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4+ICAg c3RhdGljIGlubGluZSBib29sCj4+ICAgdXNlczY0Yml0QWRkcmVzcyhjb25zdCBJbnN0cnVjdGlv biAqbGRzdCkKPj4gICB7Cj4+IC0gICByZXR1cm4gbGRzdC0+c3JjKDApLmdldEZpbGUoKSA9PSBG SUxFX01FTU9SWV9HTE9CQUwgJiYKPj4gKyAgIHJldHVybiBsZHN0LT5zcmMoMCkuZ2V0RmlsZSgp ID09IEZJTEVfTUVNT1JZX0JVRkZFUiAmJgo+PiAgICAgICAgIGxkc3QtPnNyYygwKS5pc0luZGly ZWN0KDApICYmCj4+ICAgICAgICAgbGRzdC0+Z2V0SW5kaXJlY3QoMCwgMCktPnJlZy5zaXplID09 IDg7Cj4+ICAgfQo+PiBAQCAtMTg2Miw3ICsxODYyLDcgQEAgQ29kZUVtaXR0ZXJHSzExMDo6ZW1p dENDVEwoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4+Cj4+ICAgICAgY29kZVswXSA9IDB4MDAwMDAw MDIgfCAoaS0+c3ViT3AgPDwgMik7Cj4+Cj4+IC0gICBpZiAoaS0+c3JjKDApLmdldEZpbGUoKSA9 PSBGSUxFX01FTU9SWV9HTE9CQUwpIHsKPj4gKyAgIGlmIChpLT5zcmMoMCkuZ2V0RmlsZSgpID09 IEZJTEVfTUVNT1JZX0JVRkZFUikgewo+PiAgICAgICAgIGNvZGVbMV0gPSAweDdiMDAwMDAwOwo+ PiAgICAgIH0gZWxzZSB7Cj4+ICAgICAgICAgY29kZVsxXSA9IDB4N2MwMDAwMDA7Cj4+IGRpZmYg LS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRf Z20xMDcuY3BwCj4+IGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9p cl9lbWl0X2dtMTA3LmNwcAo+PiBpbmRleCBlMDc5YTU3Li4yN2YyODdmIDEwMDY0NAo+PiAtLS0g YS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfZ20xMDcu Y3BwCj4+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJf ZW1pdF9nbTEwNy5jcHAKPj4gQEAgLTI0MTcsNyArMjQxNyw3IEBAIHZvaWQKPj4gICBDb2RlRW1p dHRlckdNMTA3OjplbWl0Q0NUTCgpCj4+ICAgewo+PiAgICAgIHVuc2lnbmVkIHdpZHRoOwo+PiAt ICAgaWYgKGluc24tPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7Cj4+ ICsgICBpZiAoaW5zbi0+c3JjKDApLmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpIHsK Pj4gICAgICAgICBlbWl0SW5zbigweGVmNjAwMDAwKTsKPj4gICAgICAgICB3aWR0aCA9IDMwOwo+ PiAgICAgIH0gZWxzZSB7Cj4+IEBAIC0yOTg4LDcgKzI5ODgsNyBAQCBDb2RlRW1pdHRlckdNMTA3 OjplbWl0SW5zdHJ1Y3Rpb24oSW5zdHJ1Y3Rpb24gKmkpCj4+ICAgICAgICAgY2FzZSBGSUxFX01F TU9SWV9DT05TVCA6IGVtaXRMREMoKTsgYnJlYWs7Cj4+ICAgICAgICAgY2FzZSBGSUxFX01FTU9S WV9MT0NBTCA6IGVtaXRMREwoKTsgYnJlYWs7Cj4+ICAgICAgICAgY2FzZSBGSUxFX01FTU9SWV9T SEFSRUQ6IGVtaXRMRFMoKTsgYnJlYWs7Cj4+IC0gICAgICBjYXNlIEZJTEVfTUVNT1JZX0dMT0JB TDogZW1pdExEKCk7IGJyZWFrOwo+PiArICAgICAgY2FzZSBGSUxFX01FTU9SWV9CVUZGRVI6IGVt aXRMRCgpOyBicmVhazsKPj4gICAgICAgICBkZWZhdWx0Ogo+PiAgICAgICAgICAgIGFzc2VydCgh ImludmFsaWQgbG9hZCIpOwo+PiAgICAgICAgICAgIGVtaXROT1AoKTsKPj4gQEAgLTI5OTksNyAr Mjk5OSw3IEBAIENvZGVFbWl0dGVyR00xMDc6OmVtaXRJbnN0cnVjdGlvbihJbnN0cnVjdGlvbiAq aSkKPj4gICAgICAgICBzd2l0Y2ggKGluc24tPnNyYygwKS5nZXRGaWxlKCkpIHsKPj4gICAgICAg ICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMIDogZW1pdFNUTCgpOyBicmVhazsKPj4gICAgICAgICBj YXNlIEZJTEVfTUVNT1JZX1NIQVJFRDogZW1pdFNUUygpOyBicmVhazsKPj4gLSAgICAgIGNhc2Ug RklMRV9NRU1PUllfR0xPQkFMOiBlbWl0U1QoKTsgYnJlYWs7Cj4+ICsgICAgICBjYXNlIEZJTEVf TUVNT1JZX0JVRkZFUjogZW1pdFNUKCk7IGJyZWFrOwo+PiAgICAgICAgIGRlZmF1bHQ6Cj4+ICAg ICAgICAgICAgYXNzZXJ0KCEiaW52YWxpZCBsb2FkIik7Cj4+ICAgICAgICAgICAgZW1pdE5PUCgp Owo+PiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1 MF9pcl9lbWl0X252NTAuY3BwCj4+IGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVn ZW4vbnY1MF9pcl9lbWl0X252NTAuY3BwCj4+IGluZGV4IDY4MmExOWQuLjc0NzZlMjEgMTAwNjQ0 Cj4+IC0tLSBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1p dF9udjUwLmNwcAo+PiArKysgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9u djUwX2lyX2VtaXRfbnY1MC5jcHAKPj4gQEAgLTY2Miw3ICs2NjIsNyBAQCBDb2RlRW1pdHRlck5W NTA6OmVtaXRMT0FEKGNvbnN0IEluc3RydWN0aW9uICppKQo+PiAgICAgICAgIGNvZGVbMF0gPSAw eGQwMDAwMDAxOwo+PiAgICAgICAgIGNvZGVbMV0gPSAweDQwMDAwMDAwOwo+PiAgICAgICAgIGJy ZWFrOwo+PiAtICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6Cj4+ICsgICBjYXNlIEZJTEVfTUVN T1JZX0JVRkZFUjoKPj4gICAgICAgICBjb2RlWzBdID0gMHhkMDAwMDAwMSB8IChpLT5nZXRTcmMo MCktPnJlZy5maWxlSW5kZXggPDwgMTYpOwo+PiAgICAgICAgIGNvZGVbMV0gPSAweDgwMDAwMDAw Owo+PiAgICAgICAgIGJyZWFrOwo+PiBAQCAtNjcxLDcgKzY3MSw3IEBAIENvZGVFbWl0dGVyTlY1 MDo6ZW1pdExPQUQoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4+ICAgICAgICAgYnJlYWs7Cj4+ICAg ICAgfQo+PiAgICAgIGlmIChzZiA9PSBGSUxFX01FTU9SWV9MT0NBTCB8fAo+PiAtICAgICAgIHNm ID09IEZJTEVfTUVNT1JZX0dMT0JBTCkKPj4gKyAgICAgICBzZiA9PSBGSUxFX01FTU9SWV9CVUZG RVIpCj4+ICAgICAgICAgZW1pdExvYWRTdG9yZVNpemVMRyhpLT5zVHlwZSwgMjEgKyAzMik7Cj4+ Cj4+ICAgICAgc2V0RHN0KGksIDApOwo+PiBAQCAtNjc5LDcgKzY3OSw3IEBAIENvZGVFbWl0dGVy TlY1MDo6ZW1pdExPQUQoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4+ICAgICAgZW1pdEZsYWdzUmQo aSk7Cj4+ICAgICAgZW1pdEZsYWdzV3IoaSk7Cj4+Cj4+IC0gICBpZiAoaS0+c3JjKDApLmdldEZp bGUoKSA9PSBGSUxFX01FTU9SWV9HTE9CQUwpIHsKPj4gKyAgIGlmIChpLT5zcmMoMCkuZ2V0Rmls ZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUikgewo+PiAgICAgICAgIHNyY0lkKCppLT5zcmMoMCku Z2V0SW5kaXJlY3QoMCksIDkpOwo+PiAgICAgIH0gZWxzZSB7Cj4+ICAgICAgICAgc2V0QVJlZzE2 KGksIDApOwo+PiBAQCAtNjk5LDcgKzY5OSw3IEBAIENvZGVFbWl0dGVyTlY1MDo6ZW1pdFNUT1JF KGNvbnN0IEluc3RydWN0aW9uICppKQo+PiAgICAgICAgIGNvZGVbMV0gPSAweDgwYzAwMDAwOwo+ PiAgICAgICAgIHNyY0lkKGktPnNyYygxKSwgMzIgKyAxNCk7Cj4+ICAgICAgICAgYnJlYWs7Cj4+ IC0gICBjYXNlIEZJTEVfTUVNT1JZX0dMT0JBTDoKPj4gKyAgIGNhc2UgRklMRV9NRU1PUllfQlVG RkVSOgo+PiAgICAgICAgIGNvZGVbMF0gPSAweGQwMDAwMDAxIHwgKGktPmdldFNyYygwKS0+cmVn LmZpbGVJbmRleCA8PCAxNik7Cj4+ICAgICAgICAgY29kZVsxXSA9IDB4YTAwMDAwMDA7Cj4+ICAg ICAgICAgZW1pdExvYWRTdG9yZVNpemVMRyhpLT5kVHlwZSwgMjEgKyAzMik7Cj4+IEBAIC03Mzcs NyArNzM3LDcgQEAgQ29kZUVtaXR0ZXJOVjUwOjplbWl0U1RPUkUoY29uc3QgSW5zdHJ1Y3Rpb24g KmkpCj4+ICAgICAgICAgYnJlYWs7Cj4+ICAgICAgfQo+Pgo+PiAtICAgaWYgKGYgPT0gRklMRV9N RU1PUllfR0xPQkFMKQo+PiArICAgaWYgKGYgPT0gRklMRV9NRU1PUllfQlVGRkVSKQo+PiAgICAg ICAgIHNyY0lkKCppLT5zcmMoMCkuZ2V0SW5kaXJlY3QoMCksIDkpOwo+PiAgICAgIGVsc2UKPj4g ICAgICAgICBzZXRBUmVnMTYoaSwgMCk7Cj4+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2 ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfbnZjMC5jcHAKPj4gYi9zcmMvZ2FsbGl1 bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfbnZjMC5jcHAKPj4gaW5kZXgg OGI5MzI4Yi4uNjIzNjY1OSAxMDA2NDQKPj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2 ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X252YzAuY3BwCj4+ICsrKyBiL3NyYy9nYWxsaXVtL2Ry aXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1pdF9udmMwLmNwcAo+PiBAQCAtMjgwLDcg KzI4MCw3IEBAIHZvaWQKPj4gICBDb2RlRW1pdHRlck5WQzA6OnNldEFkZHJlc3NCeUZpbGUoY29u c3QgVmFsdWVSZWYmIHNyYykKPj4gICB7Cj4+ICAgICAgc3dpdGNoIChzcmMuZ2V0RmlsZSgpKSB7 Cj4+IC0gICBjYXNlIEZJTEVfTUVNT1JZX0dMT0JBTDoKPj4gKyAgIGNhc2UgRklMRV9NRU1PUllf QlVGRkVSOgo+PiAgICAgICAgIHNyY0FkZHIzMihzcmMsIDI2LCAwKTsKPj4gICAgICAgICBicmVh azsKPj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMOgo+PiBAQCAtMTc2OCw3ICsxNzY4LDcg QEAgQ29kZUVtaXR0ZXJOVkMwOjplbWl0Q2FjaGluZ01vZGUoQ2FjaGVNb2RlIGMpCj4+ICAgc3Rh dGljIGlubGluZSBib29sCj4+ICAgdXNlczY0Yml0QWRkcmVzcyhjb25zdCBJbnN0cnVjdGlvbiAq bGRzdCkKPj4gICB7Cj4+IC0gICByZXR1cm4gbGRzdC0+c3JjKDApLmdldEZpbGUoKSA9PSBGSUxF X01FTU9SWV9HTE9CQUwgJiYKPj4gKyAgIHJldHVybiBsZHN0LT5zcmMoMCkuZ2V0RmlsZSgpID09 IEZJTEVfTUVNT1JZX0JVRkZFUiAmJgo+PiAgICAgICAgIGxkc3QtPnNyYygwKS5pc0luZGlyZWN0 KDApICYmCj4+ICAgICAgICAgbGRzdC0+Z2V0SW5kaXJlY3QoMCwgMCktPnJlZy5zaXplID09IDg7 Cj4+ICAgfQo+PiBAQCAtMTc3OSw3ICsxNzc5LDcgQEAgQ29kZUVtaXR0ZXJOVkMwOjplbWl0U1RP UkUoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4+ICAgICAgdWludDMyX3Qgb3BjOwo+Pgo+PiAgICAg IHN3aXRjaCAoaS0+c3JjKDApLmdldEZpbGUoKSkgewo+PiAtICAgY2FzZSBGSUxFX01FTU9SWV9H TE9CQUw6IG9wYyA9IDB4OTAwMDAwMDA7IGJyZWFrOwo+PiArICAgY2FzZSBGSUxFX01FTU9SWV9C VUZGRVI6IG9wYyA9IDB4OTAwMDAwMDA7IGJyZWFrOwo+PiAgICAgIGNhc2UgRklMRV9NRU1PUllf TE9DQUw6ICBvcGMgPSAweGM4MDAwMDAwOyBicmVhazsKPj4gICAgICBjYXNlIEZJTEVfTUVNT1JZ X1NIQVJFRDoKPj4gICAgICAgICBpZiAoaS0+c3ViT3AgPT0gTlY1MF9JUl9TVUJPUF9TVE9SRV9V TkxPQ0tFRCkgewo+PiBAQCAtMTgyOCw3ICsxODI4LDcgQEAgQ29kZUVtaXR0ZXJOVkMwOjplbWl0 TE9BRChjb25zdCBJbnN0cnVjdGlvbiAqaSkKPj4gICAgICBjb2RlWzBdID0gMHgwMDAwMDAwNTsK Pj4KPj4gICAgICBzd2l0Y2ggKGktPnNyYygwKS5nZXRGaWxlKCkpIHsKPj4gLSAgIGNhc2UgRklM RV9NRU1PUllfR0xPQkFMOiBvcGMgPSAweDgwMDAwMDAwOyBicmVhazsKPj4gKyAgIGNhc2UgRklM RV9NRU1PUllfQlVGRkVSOiBvcGMgPSAweDgwMDAwMDAwOyBicmVhazsKPj4gICAgICBjYXNlIEZJ TEVfTUVNT1JZX0xPQ0FMOiAgb3BjID0gMHhjMDAwMDAwMDsgYnJlYWs7Cj4+ICAgICAgY2FzZSBG SUxFX01FTU9SWV9TSEFSRUQ6Cj4+ICAgICAgICAgaWYgKGktPnN1Yk9wID09IE5WNTBfSVJfU1VC T1BfTE9BRF9MT0NLRUQpIHsKPj4gQEAgLTIwOTAsNyArMjA5MCw3IEBAIENvZGVFbWl0dGVyTlZD MDo6ZW1pdENDVEwoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4+ICAgewo+PiAgICAgIGNvZGVbMF0g PSAweDAwMDAwMDA1IHwgKGktPnN1Yk9wIDw8IDUpOwo+Pgo+PiAtICAgaWYgKGktPnNyYygwKS5n ZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7Cj4+ICsgICBpZiAoaS0+c3JjKDApLmdl dEZpbGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpIHsKPj4gICAgICAgICBjb2RlWzFdID0gMHg5 ODAwMDAwMDsKPj4gICAgICAgICBzcmNBZGRyMzIoaS0+c3JjKDApLCAyOCwgMik7Cj4+ICAgICAg fSBlbHNlIHsKPj4gQEAgLTMxMjEsNyArMzEyMSw3IEBAIFNjaGVkRGF0YUNhbGN1bGF0b3I6OmNo ZWNrUmQoY29uc3QgVmFsdWUgKnYsIGludAo+PiBjeWNsZSwgaW50JiBkZWxheSkgY29uc3QKPj4g ICAgICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMOgo+PiAgICAgIGNhc2UgRklMRV9NRU1PUllfQ09O U1Q6Cj4+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9TSEFSRUQ6Cj4+IC0gICBjYXNlIEZJTEVfTUVN T1JZX0dMT0JBTDoKPj4gKyAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOgo+PiAgICAgIGNhc2Ug RklMRV9TWVNURU1fVkFMVUU6Cj4+ICAgICAgICAgLy8gVE9ETzogYW55IHJlc3RyaWN0aW9ucyBo ZXJlID8KPj4gICAgICAgICBicmVhazsKPj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZl cnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcAo+PiBiL3NyYy9nYWxsaXVt L2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcAo+PiBpbmRleCAx ZTkxYWQzLi45MTg3OWU0IDEwMDY0NAo+PiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZl YXUvY29kZWdlbi9udjUwX2lyX2Zyb21fdGdzaS5jcHAKPj4gKysrIGIvc3JjL2dhbGxpdW0vZHJp dmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9mcm9tX3Rnc2kuY3BwCj4+IEBAIC0zNzMsOCAr MzczLDggQEAgc3RhdGljIG52NTBfaXI6OkRhdGFGaWxlIHRyYW5zbGF0ZUZpbGUodWludCBmaWxl KQo+PiAgICAgIGNhc2UgVEdTSV9GSUxFX1BSRURJQ0FURTogICAgICAgcmV0dXJuIG52NTBfaXI6 OkZJTEVfUFJFRElDQVRFOwo+PiAgICAgIGNhc2UgVEdTSV9GSUxFX0lNTUVESUFURTogICAgICAg cmV0dXJuIG52NTBfaXI6OkZJTEVfSU1NRURJQVRFOwo+PiAgICAgIGNhc2UgVEdTSV9GSUxFX1NZ U1RFTV9WQUxVRTogICAgcmV0dXJuIG52NTBfaXI6OkZJTEVfU1lTVEVNX1ZBTFVFOwo+PiAtICAg Y2FzZSBUR1NJX0ZJTEVfQlVGRkVSOiAgICAgICAgICByZXR1cm4gbnY1MF9pcjo6RklMRV9NRU1P UllfR0xPQkFMOwo+PiAtICAgY2FzZSBUR1NJX0ZJTEVfTUVNT1JZOiAgICAgICAgICByZXR1cm4g bnY1MF9pcjo6RklMRV9NRU1PUllfR0xPQkFMOwo+PiArICAgY2FzZSBUR1NJX0ZJTEVfQlVGRkVS OiAgICAgICAgICByZXR1cm4gbnY1MF9pcjo6RklMRV9NRU1PUllfQlVGRkVSOwo+PiArICAgY2Fz ZSBUR1NJX0ZJTEVfTUVNT1JZOiAgICAgICAgICByZXR1cm4gbnY1MF9pcjo6RklMRV9NRU1PUllf QlVGRkVSOwo+PiAgICAgIGNhc2UgVEdTSV9GSUxFX1NBTVBMRVI6Cj4+ICAgICAgY2FzZSBUR1NJ X0ZJTEVfTlVMTDoKPj4gICAgICBkZWZhdWx0Ogo+PiBAQCAtMjE5MSw3ICsyMTkxLDcgQEAgQ29u dmVydGVyOjpnZXRSZXNvdXJjZUJhc2UoY29uc3QgaW50IHIpCj4+Cj4+ICAgICAgc3dpdGNoIChy KSB7Cj4+ICAgICAgY2FzZSBUR1NJX1JFU09VUkNFX0dMT0JBTDoKPj4gLSAgICAgIHN5bSA9IG5l d19TeW1ib2wocHJvZywgbnY1MF9pcjo6RklMRV9NRU1PUllfR0xPQkFMLCAxNSk7Cj4+ICsgICAg ICBzeW0gPSBuZXdfU3ltYm9sKHByb2csIG52NTBfaXI6OkZJTEVfTUVNT1JZX0JVRkZFUiwgMTUp Owo+PiAgICAgICAgIGJyZWFrOwo+PiAgICAgIGNhc2UgVEdTSV9SRVNPVVJDRV9MT0NBTDoKPj4g ICAgICAgICBhc3NlcnQocHJvZy0+Z2V0VHlwZSgpID09IFByb2dyYW06OlRZUEVfQ09NUFVURSk7 Cj4+IEBAIC0yMjA5LDcgKzIyMDksNyBAQCBDb252ZXJ0ZXI6OmdldFJlc291cmNlQmFzZShjb25z dCBpbnQgcikKPj4gICAgICAgICBicmVhazsKPj4gICAgICBkZWZhdWx0Ogo+PiAgICAgICAgIHN5 bSA9IG5ld19TeW1ib2wocHJvZywKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgbnY1MF9pcjo6 RklMRV9NRU1PUllfR0xPQkFMLCBjb2RlLT5yZXNvdXJjZXMuYXQKPj4gKHIpLnNsb3QpOwo+PiAr ICAgICAgICAgICAgICAgICAgICAgICBudjUwX2lyOjpGSUxFX01FTU9SWV9CVUZGRVIsIGNvZGUt PnJlc291cmNlcy5hdAo+PiAocikuc2xvdCk7Cj4+ICAgICAgICAgYnJlYWs7Cj4+ICAgICAgfQo+ PiAgICAgIHJldHVybiBzeW07Cj4+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25v dXZlYXUvY29kZWdlbi9udjUwX2lyX2xvd2VyaW5nX252YzAuY3BwCj4+IGIvc3JjL2dhbGxpdW0v ZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9sb3dlcmluZ19udmMwLmNwcAo+PiBpbmRl eCBkMDkzNmQ4Li41NjNkN2MyIDEwMDY0NAo+PiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25v dXZlYXUvY29kZWdlbi9udjUwX2lyX2xvd2VyaW5nX252YzAuY3BwCj4+ICsrKyBiL3NyYy9nYWxs aXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfbG93ZXJpbmdfbnZjMC5jcHAKPj4g QEAgLTExNDEsNyArMTE0MSw3IEBAIE5WQzBMb3dlcmluZ1Bhc3M6OmhhbmRsZUFUT00oSW5zdHJ1 Y3Rpb24gKmF0b20pCj4+ICAgICAgICAgaGFuZGxlU2hhcmVkQVRPTShhdG9tKTsKPj4gICAgICAg ICByZXR1cm4gdHJ1ZTsKPj4gICAgICBkZWZhdWx0Ogo+PiAtICAgICAgYXNzZXJ0KGF0b20tPnNy YygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKTsKPj4gKyAgICAgIGFzc2VydChh dG9tLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUik7Cj4+ICAgICAgICAg YmFzZSA9IGxvYWRSZXNJbmZvNjQoaW5kLCBhdG9tLT5nZXRTcmMoMCktPnJlZy5maWxlSW5kZXgg KiAxNik7Cj4+ICAgICAgICAgYXNzZXJ0KGJhc2UtPnJlZy5zaXplID09IDgpOwo+PiAgICAgICAg IGlmIChwdHIpCj4+IEBAIC0xMTU0LDcgKzExNTQsNyBAQCBOVkMwTG93ZXJpbmdQYXNzOjpoYW5k bGVBVE9NKEluc3RydWN0aW9uICphdG9tKQo+PiAgICAgICAgIGJsZC5ta09wMXYoT1BfUkRTViwg VFlQRV9VMzIsIGJsZC5nZXRTY3JhdGNoKCksIGJsZC5ta1N5c1ZhbChzdiwKPj4gMCkpOwo+Pgo+ PiAgICAgIGF0b20tPnNldFNyYygwLCBjbG9uZVNoYWxsb3coZnVuYywgYXRvbS0+Z2V0U3JjKDAp KSk7Cj4+IC0gICBhdG9tLT5nZXRTcmMoMCktPnJlZy5maWxlID0gRklMRV9NRU1PUllfR0xPQkFM Owo+PiArICAgYXRvbS0+Z2V0U3JjKDApLT5yZWcuZmlsZSA9IEZJTEVfTUVNT1JZX0JVRkZFUjsK Pj4gICAgICBpZiAocHRyKQo+PiAgICAgICAgIGJhc2UgPSBibGQubWtPcDJ2KE9QX0FERCwgVFlQ RV9VMzIsIGJhc2UsIGJhc2UsIHB0cik7Cj4+ICAgICAgYXRvbS0+c2V0SW5kaXJlY3QoMCwgMSwg TlVMTCk7Cj4+IEBAIC0xNTcxLDcgKzE1NzEsNyBAQCBOVkMwTG93ZXJpbmdQYXNzOjpoYW5kbGVT dXJmYWNlT3BOVkU0KFRleEluc3RydWN0aW9uCj4+ICpzdSkKPj4gICAgICAgICBJbnN0cnVjdGlv biAqcmVkID0gYmxkLm1rT3AoT1BfQVRPTSwgc3UtPmRUeXBlLCBzdS0+Z2V0RGVmKDApKTsKPj4g ICAgICAgICByZWQtPnN1Yk9wID0gc3UtPnN1Yk9wOwo+PiAgICAgICAgIGlmICghZ01lbUJhc2Up Cj4+IC0gICAgICAgICBnTWVtQmFzZSA9IGJsZC5ta1N5bWJvbChGSUxFX01FTU9SWV9HTE9CQUws IDAsIFRZUEVfVTMyLCAwKTsKPj4gKyAgICAgICAgIGdNZW1CYXNlID0gYmxkLm1rU3ltYm9sKEZJ TEVfTUVNT1JZX0JVRkZFUiwgMCwgVFlQRV9VMzIsIDApOwo+PiAgICAgICAgIHJlZC0+c2V0U3Jj KDAsIGdNZW1CYXNlKTsKPj4gICAgICAgICByZWQtPnNldFNyYygxLCBzdS0+Z2V0U3JjKDMpKTsK Pj4gICAgICAgICBpZiAoc3UtPnN1Yk9wID09IE5WNTBfSVJfU1VCT1BfQVRPTV9DQVMpCj4+IEBA IC0xOTYzLDcgKzE5NjMsNyBAQCBOVkMwTG93ZXJpbmdQYXNzOjp2aXNpdChJbnN0cnVjdGlvbiAq aSkKPj4gICAgICAgICB9IGVsc2UgaWYgKGktPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9TSEFE RVJfT1VUUFVUKSB7Cj4+ICAgICAgICAgICAgYXNzZXJ0KHByb2ctPmdldFR5cGUoKSA9PSBQcm9n cmFtOjpUWVBFX1RFU1NFTExBVElPTl9DT05UUk9MKTsKPj4gICAgICAgICAgICBpLT5vcCA9IE9Q X1ZGRVRDSDsKPj4gLSAgICAgIH0gZWxzZSBpZiAoaS0+c3JjKDApLmdldEZpbGUoKSA9PSBGSUxF X01FTU9SWV9HTE9CQUwpIHsKPj4gKyAgICAgIH0gZWxzZSBpZiAoaS0+c3JjKDApLmdldEZpbGUo KSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpIHsKPj4gICAgICAgICAgICBWYWx1ZSAqaW5kID0gaS0+ Z2V0SW5kaXJlY3QoMCwgMSk7Cj4+ICAgICAgICAgICAgVmFsdWUgKnB0ciA9IGxvYWRSZXNJbmZv NjQoaW5kLCBpLT5nZXRTcmMoMCktPnJlZy5maWxlSW5kZXggKgo+PiAxNik7Cj4+ICAgICAgICAg ICAgLy8gWFhYIGNvbWUgdXAgd2l0aCBhIHdheSBub3QgdG8gZG8gdGhpcyBmb3IgRVZFUlkgbGl0 dGxlIGFjY2Vzcwo+PiBidXQKPj4gQEAgLTE5ODcsNyArMTk4Nyw3IEBAIE5WQzBMb3dlcmluZ1Bh c3M6OnZpc2l0KEluc3RydWN0aW9uICppKQo+PiAgICAgICAgIGJyZWFrOwo+PiAgICAgIGNhc2Ug T1BfQVRPTToKPj4gICAgICB7Cj4+IC0gICAgICBjb25zdCBib29sIGNjdGwgPSBpLT5zcmMoMCku Z2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0dMT0JBTDsKPj4gKyAgICAgIGNvbnN0IGJvb2wgY2N0 bCA9IGktPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfQlVGRkVSOwo+PiAgICAgICAg IGhhbmRsZUFUT00oaSk7Cj4+ICAgICAgICAgaGFuZGxlQ2FzRXhjaChpLCBjY3RsKTsKPj4gICAg ICB9Cj4+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9u djUwX2lyX3BlZXBob2xlLmNwcAo+PiBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2Rl Z2VuL252NTBfaXJfcGVlcGhvbGUuY3BwCj4+IGluZGV4IDY2ZTdiMmUuLjRhOTZkMDQgMTAwNjQ0 Cj4+IC0tLSBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcGVl cGhvbGUuY3BwCj4+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252 NTBfaXJfcGVlcGhvbGUuY3BwCj4+IEBAIC0yNTgwLDE0ICsyNTgwLDE0IEBAIE1lbW9yeU9wdDo6 cnVuT3B0KEJhc2ljQmxvY2sgKmJiKQo+PiAgICAgICAgICAgICAgICBsZHN0LT5vcCA9PSBPUF9C QVIgfHwKPj4gICAgICAgICAgICAgICAgbGRzdC0+b3AgPT0gT1BfTUVNQkFSKSB7Cj4+ICAgICAg ICAgICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX0xPQ0FMKTsKPj4gLSAgICAg ICAgICAgIHB1cmdlUmVjb3JkcyhOVUxMLCBGSUxFX01FTU9SWV9HTE9CQUwpOwo+PiArICAgICAg ICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX0JVRkZFUik7Cj4+ICAgICAgICAg ICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX1NIQVJFRCk7Cj4+ICAgICAgICAg ICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfU0hBREVSX09VVFBVVCk7Cj4+ICAgICAgICAg ICAgfSBlbHNlCj4+ICAgICAgICAgICAgaWYgKGxkc3QtPm9wID09IE9QX0FUT00gfHwgbGRzdC0+ b3AgPT0gT1BfQ0NUTCkgewo+PiAtICAgICAgICAgICAgaWYgKGxkc3QtPnNyYygwKS5nZXRGaWxl KCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7Cj4+ICsgICAgICAgICAgICBpZiAobGRzdC0+c3Jj KDApLmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpIHsKPj4gICAgICAgICAgICAgICAg ICBwdXJnZVJlY29yZHMoTlVMTCwgRklMRV9NRU1PUllfTE9DQUwpOwo+PiAtICAgICAgICAgICAg ICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX0dMT0JBTCk7Cj4+ICsgICAgICAgICAg ICAgICBwdXJnZVJlY29yZHMoTlVMTCwgRklMRV9NRU1PUllfQlVGRkVSKTsKPj4gICAgICAgICAg ICAgICAgICBwdXJnZVJlY29yZHMoTlVMTCwgRklMRV9NRU1PUllfU0hBUkVEKTsKPj4gICAgICAg ICAgICAgICB9IGVsc2Ugewo+PiAgICAgICAgICAgICAgICAgIHB1cmdlUmVjb3JkcyhOVUxMLCBs ZHN0LT5zcmMoMCkuZ2V0RmlsZSgpKTsKPj4gQEAgLTI2MDcsNyArMjYwNyw3IEBAIE1lbW9yeU9w dDo6cnVuT3B0KEJhc2ljQmxvY2sgKmJiKQo+PiAgICAgICAgICAgIERhdGFGaWxlIGZpbGUgPSBs ZHN0LT5zcmMoMCkuZ2V0RmlsZSgpOwo+Pgo+PiAgICAgICAgICAgIC8vIGlmIGxkIGxbXS9nW10g bG9vayBmb3IgcHJldmlvdXMgc3RvcmUgdG8gZWxpbWluYXRlIHRoZSByZWxvYWQKPj4gLSAgICAg ICAgIGlmIChmaWxlID09IEZJTEVfTUVNT1JZX0dMT0JBTCB8fCBmaWxlID09IEZJTEVfTUVNT1JZ X0xPQ0FMKSB7Cj4+ICsgICAgICAgICBpZiAoZmlsZSA9PSBGSUxFX01FTU9SWV9CVUZGRVIgfHwg ZmlsZSA9PSBGSUxFX01FTU9SWV9MT0NBTCkgewo+PiAgICAgICAgICAgICAgIC8vIFRPRE86IHNo YXJlZCBtZW1vcnkgPwo+PiAgICAgICAgICAgICAgIHJlYyA9IGZpbmRSZWNvcmQobGRzdCwgZmFs c2UsIGlzQWRqYWNlbnQpOwo+PiAgICAgICAgICAgICAgIGlmIChyZWMgJiYgIWlzQWRqYWNlbnQp Cj4+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUw X2lyX3ByaW50LmNwcAo+PiBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252 NTBfaXJfcHJpbnQuY3BwCj4+IGluZGV4IGNmYTg1ZWMuLjczZWQ3NTMgMTAwNjQ0Cj4+IC0tLSBh L3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcHJpbnQuY3BwCj4+ ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcHJpbnQu Y3BwCj4+IEBAIC00NTUsNyArNDU1LDcgQEAgaW50IFN5bWJvbDo6cHJpbnQoY2hhciAqYnVmLCBz aXplX3Qgc2l6ZSwKPj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0NPTlNUOiAgYyA9ICdjJzsgYnJl YWs7Cj4+ICAgICAgY2FzZSBGSUxFX1NIQURFUl9JTlBVVDogIGMgPSAnYSc7IGJyZWFrOwo+PiAg ICAgIGNhc2UgRklMRV9TSEFERVJfT1VUUFVUOiBjID0gJ28nOyBicmVhazsKPj4gLSAgIGNhc2Ug RklMRV9NRU1PUllfR0xPQkFMOiBjID0gJ2cnOyBicmVhazsKPj4gKyAgIGNhc2UgRklMRV9NRU1P UllfQlVGRkVSOiBjID0gJ2cnOyBicmVhazsKPj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX1NIQVJF RDogYyA9ICdzJzsgYnJlYWs7Cj4+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9MT0NBTDogIGMgPSAn bCc7IGJyZWFrOwo+PiAgICAgIGRlZmF1bHQ6Cj4+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9k cml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udjUwLmNwcAo+PiBiL3NyYy9n YWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAuY3BwCj4+ IGluZGV4IDJjNGQ3ZjUuLjFjZDQ1YTIgMTAwNjQ0Cj4+IC0tLSBhL3NyYy9nYWxsaXVtL2RyaXZl cnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAuY3BwCj4+ICsrKyBiL3NyYy9n YWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAuY3BwCj4+ IEBAIC0yMDcsNyArMjA3LDcgQEAgVGFyZ2V0TlY1MDo6Z2V0RmlsZVNpemUoRGF0YUZpbGUgZmls ZSkgY29uc3QKPj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0NPTlNUOiAgcmV0dXJuIDY1NTM2Owo+ PiAgICAgIGNhc2UgRklMRV9TSEFERVJfSU5QVVQ6ICByZXR1cm4gMHgyMDA7Cj4+ICAgICAgY2Fz ZSBGSUxFX1NIQURFUl9PVVRQVVQ6IHJldHVybiAweDIwMDsKPj4gLSAgIGNhc2UgRklMRV9NRU1P UllfR0xPQkFMOiByZXR1cm4gMHhmZmZmZmZmZjsKPj4gKyAgIGNhc2UgRklMRV9NRU1PUllfQlVG RkVSOiByZXR1cm4gMHhmZmZmZmZmZjsKPj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX1NIQVJFRDog cmV0dXJuIDE2IDw8IDEwOwo+PiAgICAgIGNhc2UgRklMRV9NRU1PUllfTE9DQUw6ICByZXR1cm4g NDggPDwgMTA7Cj4+ICAgICAgY2FzZSBGSUxFX1NZU1RFTV9WQUxVRTogIHJldHVybiAxNjsKPj4g QEAgLTQwNiw3ICs0MDYsNyBAQCBUYXJnZXROVjUwOjppc0FjY2Vzc1N1cHBvcnRlZChEYXRhRmls ZSBmaWxlLCBEYXRhVHlwZQo+PiB0eSkgY29uc3QKPj4gICAgICBpZiAodHkgPT0gVFlQRV9COTYg fHwgdHkgPT0gVFlQRV9OT05FKQo+PiAgICAgICAgIHJldHVybiBmYWxzZTsKPj4gICAgICBpZiAo dHlwZVNpemVvZih0eSkgPiA0KQo+PiAtICAgICAgcmV0dXJuIChmaWxlID09IEZJTEVfTUVNT1JZ X0xPQ0FMKSB8fCAoZmlsZSA9PSBGSUxFX01FTU9SWV9HTE9CQUwpOwo+PiArICAgICAgcmV0dXJu IChmaWxlID09IEZJTEVfTUVNT1JZX0xPQ0FMKSB8fCAoZmlsZSA9PSBGSUxFX01FTU9SWV9CVUZG RVIpOwo+PiAgICAgIHJldHVybiB0cnVlOwo+PiAgIH0KPj4KPj4gQEAgLTUwOCw3ICs1MDgsNyBA QCBpbnQgVGFyZ2V0TlY1MDo6Z2V0TGF0ZW5jeShjb25zdCBJbnN0cnVjdGlvbiAqaSkgY29uc3QK Pj4gICAgICBpZiAoaS0+b3AgPT0gT1BfTE9BRCkgewo+PiAgICAgICAgIHN3aXRjaCAoaS0+c3Jj KDApLmdldEZpbGUoKSkgewo+PiAgICAgICAgIGNhc2UgRklMRV9NRU1PUllfTE9DQUw6Cj4+IC0g ICAgICBjYXNlIEZJTEVfTUVNT1JZX0dMT0JBTDoKPj4gKyAgICAgIGNhc2UgRklMRV9NRU1PUllf QlVGRkVSOgo+PiAgICAgICAgICAgIHJldHVybiAxMDA7IC8vIHJlYWxseSA0MDAgdG8gODAwCj4+ ICAgICAgICAgZGVmYXVsdDoKPj4gICAgICAgICAgICByZXR1cm4gMjI7Cj4+IGRpZmYgLS1naXQg YS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udmMw LmNwcAo+PiBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFy Z2V0X252YzAuY3BwCj4+IGluZGV4IGEwM2FmYTguLmJkYTU5YTUgMTAwNjQ0Cj4+IC0tLSBhL3Ny Yy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252YzAuY3Bw Cj4+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFy Z2V0X252YzAuY3BwCj4+IEBAIC0yNDgsNyArMjQ4LDcgQEAgVGFyZ2V0TlZDMDo6Z2V0RmlsZVNp emUoRGF0YUZpbGUgZmlsZSkgY29uc3QKPj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0NPTlNUOiAg cmV0dXJuIDY1NTM2Owo+PiAgICAgIGNhc2UgRklMRV9TSEFERVJfSU5QVVQ6ICByZXR1cm4gMHg0 MDA7Cj4+ICAgICAgY2FzZSBGSUxFX1NIQURFUl9PVVRQVVQ6IHJldHVybiAweDQwMDsKPj4gLSAg IGNhc2UgRklMRV9NRU1PUllfR0xPQkFMOiByZXR1cm4gMHhmZmZmZmZmZjsKPj4gKyAgIGNhc2Ug RklMRV9NRU1PUllfQlVGRkVSOiByZXR1cm4gMHhmZmZmZmZmZjsKPj4gICAgICBjYXNlIEZJTEVf TUVNT1JZX1NIQVJFRDogcmV0dXJuIDE2IDw8IDEwOwo+PiAgICAgIGNhc2UgRklMRV9NRU1PUllf TE9DQUw6ICByZXR1cm4gNDggPDwgMTA7Cj4+ICAgICAgY2FzZSBGSUxFX1NZU1RFTV9WQUxVRTog IHJldHVybiAzMjsKPj4gLS0KPj4gMi43LjIKPj4KPj4KPgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpOb3V2ZWF1IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL25vdXZlYXUK