From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Pitoiset Subject: Re: [PATCH mesa 4/6] nouveau: codegen: s/FILE_MEMORY_GLOBAL/FILE_MEMORY_BUFFER/ Date: Wed, 16 Mar 2016 11:31:39 +0100 Message-ID: <56E9360B.6050106@gmail.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: <1458120239-27659-4-git-send-email-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: mesa-dev-bounces@lists.freedesktop.org Sender: "mesa-dev" To: Hans de Goede , Ilia Mirkin Cc: mesa-dev@lists.freedesktop.org, nouveau@lists.freedesktop.org List-Id: nouveau.vger.kernel.org UmV2aWV3ZWQtYnk6IFNhbXVlbCBQaXRvaXNldCA8c2FtdWVsLnBpdG9pc2V0QGdtYWlsLmNvbT4K Ck9uIDAzLzE2LzIwMTYgMTA6MjMgQU0sIEhhbnMgZGUgR29lZGUgd3JvdGU6Cj4gRklMRV9NRU1P UllfR0xPQkFMIGlzIGN1cnJlbnRseSBvbmx5IHVzZWQgZm9yIGJ1ZmZlciBoYW5kbGluZywgYXMg d2UKPiBkbyBub3QgeWV0IGhhdmUgKG9wZW5jbCkgZ2xvYmFsIG1lbW9yeSBzdXBwb3J0LiBHbG9i YWwgbWVtb3J5IHN1cHBvcnQKPiBhY3R1YWxseSByZXF1aXJlcyBzb21lIGRpZmZlcmVudCBoYW5k bGluZyBkdXJpbmcgbG93ZXJpbmcsIHNvIHJlbmFtZQo+IEZJTEVfTUVNT1JZX0dMT0JBTCB0byBG SUxFX01FTU9SWV9CVUZGRVIgdG8gcmVmbGVjdCB0aGF0IHRoZSBjdXJyZW50Cj4gY29kZSBpcyBm b3IgYnVmZmVyIGhhbmRsaW5nLCB0aGlzIHdpbGwgYWxsb3cgdGhlIGxhdGVyIChyZS0pYWRkaXRp b24KPiBvZiBGSUxFX01FTU9SWV9HTE9CQUwgZm9yIHJlZ3VsYXIgZ2xvYmFsIG1lbW9yeS4KPgo+ IFNpZ25lZC1vZmYtYnk6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+Cj4gLS0t Cj4gICBzcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyLmggICAgICAg ICAgICAgICAgfCAgMiArLQo+ICAgc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4v bnY1MF9pcl9lbWl0X2drMTEwLmNwcCAgIHwgMTAgKysrKystLS0tLQo+ICAgc3JjL2dhbGxpdW0v ZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X2dtMTA3LmNwcCAgIHwgIDYgKysr LS0tCj4gICBzcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRf bnY1MC5jcHAgICAgfCAxMCArKysrKy0tLS0tCj4gICBzcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZl YXUvY29kZWdlbi9udjUwX2lyX2VtaXRfbnZjMC5jcHAgICAgfCAxMiArKysrKystLS0tLS0KPiAg IHNyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNw cCAgICB8ICA4ICsrKystLS0tCj4gICAuLi4vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9p cl9sb3dlcmluZ19udmMwLmNwcCAgICAgICAgfCAxMCArKysrKy0tLS0tCj4gICBzcmMvZ2FsbGl1 bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3BlZXBob2xlLmNwcCAgICAgfCAgOCAr KysrLS0tLQo+ICAgc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9w cmludC5jcHAgICAgICAgIHwgIDIgKy0KPiAgIHNyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9j b2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAuY3BwICB8ICA2ICsrKy0tLQo+ICAgc3JjL2dhbGxp dW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl90YXJnZXRfbnZjMC5jcHAgIHwgIDIg Ky0KPiAgIDExIGZpbGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygt KQo+Cj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252 NTBfaXIuaCBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXIuaAo+ IGluZGV4IDdiMGViMmYuLmZkYzIxOTUgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVy cy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pci5oCj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9u b3V2ZWF1L2NvZGVnZW4vbnY1MF9pci5oCj4gQEAgLTMzMiw3ICszMzIsNyBAQCBlbnVtIERhdGFG aWxlCj4gICAgICBGSUxFX01FTU9SWV9DT05TVCwKPiAgICAgIEZJTEVfU0hBREVSX0lOUFVULAo+ ICAgICAgRklMRV9TSEFERVJfT1VUUFVULAo+IC0gICBGSUxFX01FTU9SWV9HTE9CQUwsCj4gKyAg IEZJTEVfTUVNT1JZX0JVRkZFUiwKPiAgICAgIEZJTEVfTUVNT1JZX1NIQVJFRCwKPiAgICAgIEZJ TEVfTUVNT1JZX0xPQ0FMLAo+ICAgICAgRklMRV9TWVNURU1fVkFMVUUsCj4gZGlmZiAtLWdpdCBh L3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1pdF9nazExMC5j cHAgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfZ2sx MTAuY3BwCj4gaW5kZXggNzBmM2MzZi4uMDJhMTEwMSAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1 bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2VtaXRfZ2sxMTAuY3BwCj4gKysrIGIv c3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X2drMTEwLmNw cAo+IEBAIC0xNjQxLDcgKzE2NDEsNyBAQCBDb2RlRW1pdHRlckdLMTEwOjplbWl0U1RPUkUoY29u c3QgSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICBpbnQzMl90IG9mZnNldCA9IFNEQVRBKGktPnNyYygw KSkub2Zmc2V0Owo+Cj4gICAgICBzd2l0Y2ggKGktPnNyYygwKS5nZXRGaWxlKCkpIHsKPiAtICAg Y2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6IGNvZGVbMV0gPSAweGUwMDAwMDAwOyBjb2RlWzBdID0g MHgwMDAwMDAwMDsgYnJlYWs7Cj4gKyAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOiBjb2RlWzFd ID0gMHhlMDAwMDAwMDsgY29kZVswXSA9IDB4MDAwMDAwMDA7IGJyZWFrOwo+ICAgICAgY2FzZSBG SUxFX01FTU9SWV9MT0NBTDogIGNvZGVbMV0gPSAweDdhODAwMDAwOyBjb2RlWzBdID0gMHgwMDAw MDAwMjsgYnJlYWs7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX1NIQVJFRDoKPiAgICAgICAgIGNv ZGVbMF0gPSAweDAwMDAwMDAyOwo+IEBAIC0xNjc4LDcgKzE2NzgsNyBAQCBDb2RlRW1pdHRlckdL MTEwOjplbWl0U1RPUkUoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4KPiAgICAgIHNyY0lkKGktPnNy YygxKSwgMik7Cj4gICAgICBzcmNJZChpLT5zcmMoMCkuZ2V0SW5kaXJlY3QoMCksIDEwKTsKPiAt ICAgaWYgKGktPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMICYmCj4gKyAg IGlmIChpLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUiAmJgo+ICAgICAg ICAgIGktPnNyYygwKS5pc0luZGlyZWN0KDApICYmCj4gICAgICAgICAgaS0+Z2V0SW5kaXJlY3Qo MCwgMCktPnJlZy5zaXplID09IDgpCj4gICAgICAgICBjb2RlWzFdIHw9IDEgPDwgMjM7Cj4gQEAg LTE2OTAsNyArMTY5MCw3IEBAIENvZGVFbWl0dGVyR0sxMTA6OmVtaXRMT0FEKGNvbnN0IEluc3Ry dWN0aW9uICppKQo+ICAgICAgaW50MzJfdCBvZmZzZXQgPSBTREFUQShpLT5zcmMoMCkpLm9mZnNl dDsKPgo+ICAgICAgc3dpdGNoIChpLT5zcmMoMCkuZ2V0RmlsZSgpKSB7Cj4gLSAgIGNhc2UgRklM RV9NRU1PUllfR0xPQkFMOiBjb2RlWzFdID0gMHhjMDAwMDAwMDsgY29kZVswXSA9IDB4MDAwMDAw MDA7IGJyZWFrOwo+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZFUjogY29kZVsxXSA9IDB4YzAw MDAwMDA7IGNvZGVbMF0gPSAweDAwMDAwMDAwOyBicmVhazsKPiAgICAgIGNhc2UgRklMRV9NRU1P UllfTE9DQUw6ICBjb2RlWzFdID0gMHg3YTAwMDAwMDsgY29kZVswXSA9IDB4MDAwMDAwMDI7IGJy ZWFrOwo+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9TSEFSRUQ6Cj4gICAgICAgICBjb2RlWzBdID0g MHgwMDAwMDAwMjsKPiBAQCAtMTgwMCw3ICsxODAwLDcgQEAgQ29kZUVtaXR0ZXJHSzExMDo6ZW1p dE1PVihjb25zdCBJbnN0cnVjdGlvbiAqaSkKPiAgIHN0YXRpYyBpbmxpbmUgYm9vbAo+ICAgdXNl czY0Yml0QWRkcmVzcyhjb25zdCBJbnN0cnVjdGlvbiAqbGRzdCkKPiAgIHsKPiAtICAgcmV0dXJu IGxkc3QtPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMICYmCj4gKyAgIHJl dHVybiBsZHN0LT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUiAmJgo+ICAg ICAgICAgbGRzdC0+c3JjKDApLmlzSW5kaXJlY3QoMCkgJiYKPiAgICAgICAgIGxkc3QtPmdldElu ZGlyZWN0KDAsIDApLT5yZWcuc2l6ZSA9PSA4Owo+ICAgfQo+IEBAIC0xODYyLDcgKzE4NjIsNyBA QCBDb2RlRW1pdHRlckdLMTEwOjplbWl0Q0NUTChjb25zdCBJbnN0cnVjdGlvbiAqaSkKPgo+ICAg ICAgY29kZVswXSA9IDB4MDAwMDAwMDIgfCAoaS0+c3ViT3AgPDwgMik7Cj4KPiAtICAgaWYgKGkt PnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7Cj4gKyAgIGlmIChpLT5z cmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUikgewo+ICAgICAgICAgY29kZVsx XSA9IDB4N2IwMDAwMDA7Cj4gICAgICB9IGVsc2Ugewo+ICAgICAgICAgY29kZVsxXSA9IDB4N2Mw MDAwMDA7Cj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2Vu L252NTBfaXJfZW1pdF9nbTEwNy5jcHAgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29k ZWdlbi9udjUwX2lyX2VtaXRfZ20xMDcuY3BwCj4gaW5kZXggZTA3OWE1Ny4uMjdmMjg3ZiAxMDA2 NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2Vt aXRfZ20xMDcuY3BwCj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4v bnY1MF9pcl9lbWl0X2dtMTA3LmNwcAo+IEBAIC0yNDE3LDcgKzI0MTcsNyBAQCB2b2lkCj4gICBD b2RlRW1pdHRlckdNMTA3OjplbWl0Q0NUTCgpCj4gICB7Cj4gICAgICB1bnNpZ25lZCB3aWR0aDsK PiAtICAgaWYgKGluc24tPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7 Cj4gKyAgIGlmIChpbnNuLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUikg ewo+ICAgICAgICAgZW1pdEluc24oMHhlZjYwMDAwMCk7Cj4gICAgICAgICB3aWR0aCA9IDMwOwo+ ICAgICAgfSBlbHNlIHsKPiBAQCAtMjk4OCw3ICsyOTg4LDcgQEAgQ29kZUVtaXR0ZXJHTTEwNzo6 ZW1pdEluc3RydWN0aW9uKEluc3RydWN0aW9uICppKQo+ICAgICAgICAgY2FzZSBGSUxFX01FTU9S WV9DT05TVCA6IGVtaXRMREMoKTsgYnJlYWs7Cj4gICAgICAgICBjYXNlIEZJTEVfTUVNT1JZX0xP Q0FMIDogZW1pdExETCgpOyBicmVhazsKPiAgICAgICAgIGNhc2UgRklMRV9NRU1PUllfU0hBUkVE OiBlbWl0TERTKCk7IGJyZWFrOwo+IC0gICAgICBjYXNlIEZJTEVfTUVNT1JZX0dMT0JBTDogZW1p dExEKCk7IGJyZWFrOwo+ICsgICAgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZFUjogZW1pdExEKCk7 IGJyZWFrOwo+ICAgICAgICAgZGVmYXVsdDoKPiAgICAgICAgICAgIGFzc2VydCghImludmFsaWQg bG9hZCIpOwo+ICAgICAgICAgICAgZW1pdE5PUCgpOwo+IEBAIC0yOTk5LDcgKzI5OTksNyBAQCBD b2RlRW1pdHRlckdNMTA3OjplbWl0SW5zdHJ1Y3Rpb24oSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICAg ICBzd2l0Y2ggKGluc24tPnNyYygwKS5nZXRGaWxlKCkpIHsKPiAgICAgICAgIGNhc2UgRklMRV9N RU1PUllfTE9DQUwgOiBlbWl0U1RMKCk7IGJyZWFrOwo+ICAgICAgICAgY2FzZSBGSUxFX01FTU9S WV9TSEFSRUQ6IGVtaXRTVFMoKTsgYnJlYWs7Cj4gLSAgICAgIGNhc2UgRklMRV9NRU1PUllfR0xP QkFMOiBlbWl0U1QoKTsgYnJlYWs7Cj4gKyAgICAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOiBl bWl0U1QoKTsgYnJlYWs7Cj4gICAgICAgICBkZWZhdWx0Ogo+ICAgICAgICAgICAgYXNzZXJ0KCEi aW52YWxpZCBsb2FkIik7Cj4gICAgICAgICAgICBlbWl0Tk9QKCk7Cj4gZGlmZiAtLWdpdCBhL3Ny Yy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1pdF9udjUwLmNwcCBi L3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZW1pdF9udjUwLmNw cAo+IGluZGV4IDY4MmExOWQuLjc0NzZlMjEgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJp dmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X252NTAuY3BwCj4gKysrIGIvc3JjL2dh bGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9lbWl0X252NTAuY3BwCj4gQEAg LTY2Miw3ICs2NjIsNyBAQCBDb2RlRW1pdHRlck5WNTA6OmVtaXRMT0FEKGNvbnN0IEluc3RydWN0 aW9uICppKQo+ICAgICAgICAgY29kZVswXSA9IDB4ZDAwMDAwMDE7Cj4gICAgICAgICBjb2RlWzFd ID0gMHg0MDAwMDAwMDsKPiAgICAgICAgIGJyZWFrOwo+IC0gICBjYXNlIEZJTEVfTUVNT1JZX0dM T0JBTDoKPiArICAgY2FzZSBGSUxFX01FTU9SWV9CVUZGRVI6Cj4gICAgICAgICBjb2RlWzBdID0g MHhkMDAwMDAwMSB8IChpLT5nZXRTcmMoMCktPnJlZy5maWxlSW5kZXggPDwgMTYpOwo+ICAgICAg ICAgY29kZVsxXSA9IDB4ODAwMDAwMDA7Cj4gICAgICAgICBicmVhazsKPiBAQCAtNjcxLDcgKzY3 MSw3IEBAIENvZGVFbWl0dGVyTlY1MDo6ZW1pdExPQUQoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4g ICAgICAgICBicmVhazsKPiAgICAgIH0KPiAgICAgIGlmIChzZiA9PSBGSUxFX01FTU9SWV9MT0NB TCB8fAo+IC0gICAgICAgc2YgPT0gRklMRV9NRU1PUllfR0xPQkFMKQo+ICsgICAgICAgc2YgPT0g RklMRV9NRU1PUllfQlVGRkVSKQo+ICAgICAgICAgZW1pdExvYWRTdG9yZVNpemVMRyhpLT5zVHlw ZSwgMjEgKyAzMik7Cj4KPiAgICAgIHNldERzdChpLCAwKTsKPiBAQCAtNjc5LDcgKzY3OSw3IEBA IENvZGVFbWl0dGVyTlY1MDo6ZW1pdExPQUQoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICBl bWl0RmxhZ3NSZChpKTsKPiAgICAgIGVtaXRGbGFnc1dyKGkpOwo+Cj4gLSAgIGlmIChpLT5zcmMo MCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0dMT0JBTCkgewo+ICsgICBpZiAoaS0+c3JjKDAp LmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpIHsKPiAgICAgICAgIHNyY0lkKCppLT5z cmMoMCkuZ2V0SW5kaXJlY3QoMCksIDkpOwo+ICAgICAgfSBlbHNlIHsKPiAgICAgICAgIHNldEFS ZWcxNihpLCAwKTsKPiBAQCAtNjk5LDcgKzY5OSw3IEBAIENvZGVFbWl0dGVyTlY1MDo6ZW1pdFNU T1JFKGNvbnN0IEluc3RydWN0aW9uICppKQo+ICAgICAgICAgY29kZVsxXSA9IDB4ODBjMDAwMDA7 Cj4gICAgICAgICBzcmNJZChpLT5zcmMoMSksIDMyICsgMTQpOwo+ICAgICAgICAgYnJlYWs7Cj4g LSAgIGNhc2UgRklMRV9NRU1PUllfR0xPQkFMOgo+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZF UjoKPiAgICAgICAgIGNvZGVbMF0gPSAweGQwMDAwMDAxIHwgKGktPmdldFNyYygwKS0+cmVnLmZp bGVJbmRleCA8PCAxNik7Cj4gICAgICAgICBjb2RlWzFdID0gMHhhMDAwMDAwMDsKPiAgICAgICAg IGVtaXRMb2FkU3RvcmVTaXplTEcoaS0+ZFR5cGUsIDIxICsgMzIpOwo+IEBAIC03MzcsNyArNzM3 LDcgQEAgQ29kZUVtaXR0ZXJOVjUwOjplbWl0U1RPUkUoY29uc3QgSW5zdHJ1Y3Rpb24gKmkpCj4g ICAgICAgICBicmVhazsKPiAgICAgIH0KPgo+IC0gICBpZiAoZiA9PSBGSUxFX01FTU9SWV9HTE9C QUwpCj4gKyAgIGlmIChmID09IEZJTEVfTUVNT1JZX0JVRkZFUikKPiAgICAgICAgIHNyY0lkKCpp LT5zcmMoMCkuZ2V0SW5kaXJlY3QoMCksIDkpOwo+ICAgICAgZWxzZQo+ICAgICAgICAgc2V0QVJl ZzE2KGksIDApOwo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29k ZWdlbi9udjUwX2lyX2VtaXRfbnZjMC5jcHAgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUv Y29kZWdlbi9udjUwX2lyX2VtaXRfbnZjMC5jcHAKPiBpbmRleCA4YjkzMjhiLi42MjM2NjU5IDEw MDY0NAo+IC0tLSBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJf ZW1pdF9udmMwLmNwcAo+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2Vu L252NTBfaXJfZW1pdF9udmMwLmNwcAo+IEBAIC0yODAsNyArMjgwLDcgQEAgdm9pZAo+ICAgQ29k ZUVtaXR0ZXJOVkMwOjpzZXRBZGRyZXNzQnlGaWxlKGNvbnN0IFZhbHVlUmVmJiBzcmMpCj4gICB7 Cj4gICAgICBzd2l0Y2ggKHNyYy5nZXRGaWxlKCkpIHsKPiAtICAgY2FzZSBGSUxFX01FTU9SWV9H TE9CQUw6Cj4gKyAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOgo+ICAgICAgICAgc3JjQWRkcjMy KHNyYywgMjYsIDApOwo+ICAgICAgICAgYnJlYWs7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0xP Q0FMOgo+IEBAIC0xNzY4LDcgKzE3NjgsNyBAQCBDb2RlRW1pdHRlck5WQzA6OmVtaXRDYWNoaW5n TW9kZShDYWNoZU1vZGUgYykKPiAgIHN0YXRpYyBpbmxpbmUgYm9vbAo+ICAgdXNlczY0Yml0QWRk cmVzcyhjb25zdCBJbnN0cnVjdGlvbiAqbGRzdCkKPiAgIHsKPiAtICAgcmV0dXJuIGxkc3QtPnNy YygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMICYmCj4gKyAgIHJldHVybiBsZHN0 LT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUiAmJgo+ICAgICAgICAgbGRz dC0+c3JjKDApLmlzSW5kaXJlY3QoMCkgJiYKPiAgICAgICAgIGxkc3QtPmdldEluZGlyZWN0KDAs IDApLT5yZWcuc2l6ZSA9PSA4Owo+ICAgfQo+IEBAIC0xNzc5LDcgKzE3NzksNyBAQCBDb2RlRW1p dHRlck5WQzA6OmVtaXRTVE9SRShjb25zdCBJbnN0cnVjdGlvbiAqaSkKPiAgICAgIHVpbnQzMl90 IG9wYzsKPgo+ICAgICAgc3dpdGNoIChpLT5zcmMoMCkuZ2V0RmlsZSgpKSB7Cj4gLSAgIGNhc2Ug RklMRV9NRU1PUllfR0xPQkFMOiBvcGMgPSAweDkwMDAwMDAwOyBicmVhazsKPiArICAgY2FzZSBG SUxFX01FTU9SWV9CVUZGRVI6IG9wYyA9IDB4OTAwMDAwMDA7IGJyZWFrOwo+ICAgICAgY2FzZSBG SUxFX01FTU9SWV9MT0NBTDogIG9wYyA9IDB4YzgwMDAwMDA7IGJyZWFrOwo+ICAgICAgY2FzZSBG SUxFX01FTU9SWV9TSEFSRUQ6Cj4gICAgICAgICBpZiAoaS0+c3ViT3AgPT0gTlY1MF9JUl9TVUJP UF9TVE9SRV9VTkxPQ0tFRCkgewo+IEBAIC0xODI4LDcgKzE4MjgsNyBAQCBDb2RlRW1pdHRlck5W QzA6OmVtaXRMT0FEKGNvbnN0IEluc3RydWN0aW9uICppKQo+ICAgICAgY29kZVswXSA9IDB4MDAw MDAwMDU7Cj4KPiAgICAgIHN3aXRjaCAoaS0+c3JjKDApLmdldEZpbGUoKSkgewo+IC0gICBjYXNl IEZJTEVfTUVNT1JZX0dMT0JBTDogb3BjID0gMHg4MDAwMDAwMDsgYnJlYWs7Cj4gKyAgIGNhc2Ug RklMRV9NRU1PUllfQlVGRkVSOiBvcGMgPSAweDgwMDAwMDAwOyBicmVhazsKPiAgICAgIGNhc2Ug RklMRV9NRU1PUllfTE9DQUw6ICBvcGMgPSAweGMwMDAwMDAwOyBicmVhazsKPiAgICAgIGNhc2Ug RklMRV9NRU1PUllfU0hBUkVEOgo+ICAgICAgICAgaWYgKGktPnN1Yk9wID09IE5WNTBfSVJfU1VC T1BfTE9BRF9MT0NLRUQpIHsKPiBAQCAtMjA5MCw3ICsyMDkwLDcgQEAgQ29kZUVtaXR0ZXJOVkMw OjplbWl0Q0NUTChjb25zdCBJbnN0cnVjdGlvbiAqaSkKPiAgIHsKPiAgICAgIGNvZGVbMF0gPSAw eDAwMDAwMDA1IHwgKGktPnN1Yk9wIDw8IDUpOwo+Cj4gLSAgIGlmIChpLT5zcmMoMCkuZ2V0Rmls ZSgpID09IEZJTEVfTUVNT1JZX0dMT0JBTCkgewo+ICsgICBpZiAoaS0+c3JjKDApLmdldEZpbGUo KSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpIHsKPiAgICAgICAgIGNvZGVbMV0gPSAweDk4MDAwMDAw Owo+ICAgICAgICAgc3JjQWRkcjMyKGktPnNyYygwKSwgMjgsIDIpOwo+ICAgICAgfSBlbHNlIHsK PiBAQCAtMzEyMSw3ICszMTIxLDcgQEAgU2NoZWREYXRhQ2FsY3VsYXRvcjo6Y2hlY2tSZChjb25z dCBWYWx1ZSAqdiwgaW50IGN5Y2xlLCBpbnQmIGRlbGF5KSBjb25zdAo+ICAgICAgY2FzZSBGSUxF X01FTU9SWV9MT0NBTDoKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfQ09OU1Q6Cj4gICAgICBjYXNl IEZJTEVfTUVNT1JZX1NIQVJFRDoKPiAtICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6Cj4gKyAg IGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOgo+ICAgICAgY2FzZSBGSUxFX1NZU1RFTV9WQUxVRToK PiAgICAgICAgIC8vIFRPRE86IGFueSByZXN0cmljdGlvbnMgaGVyZSA/Cj4gICAgICAgICBicmVh azsKPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1 MF9pcl9mcm9tX3Rnc2kuY3BwIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4v bnY1MF9pcl9mcm9tX3Rnc2kuY3BwCj4gaW5kZXggMWU5MWFkMy4uOTE4NzllNCAxMDA2NDQKPiAt LS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2Zyb21fdGdz aS5jcHAKPiArKysgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2ly X2Zyb21fdGdzaS5jcHAKPiBAQCAtMzczLDggKzM3Myw4IEBAIHN0YXRpYyBudjUwX2lyOjpEYXRh RmlsZSB0cmFuc2xhdGVGaWxlKHVpbnQgZmlsZSkKPiAgICAgIGNhc2UgVEdTSV9GSUxFX1BSRURJ Q0FURTogICAgICAgcmV0dXJuIG52NTBfaXI6OkZJTEVfUFJFRElDQVRFOwo+ICAgICAgY2FzZSBU R1NJX0ZJTEVfSU1NRURJQVRFOiAgICAgICByZXR1cm4gbnY1MF9pcjo6RklMRV9JTU1FRElBVEU7 Cj4gICAgICBjYXNlIFRHU0lfRklMRV9TWVNURU1fVkFMVUU6ICAgIHJldHVybiBudjUwX2lyOjpG SUxFX1NZU1RFTV9WQUxVRTsKPiAtICAgY2FzZSBUR1NJX0ZJTEVfQlVGRkVSOiAgICAgICAgICBy ZXR1cm4gbnY1MF9pcjo6RklMRV9NRU1PUllfR0xPQkFMOwo+IC0gICBjYXNlIFRHU0lfRklMRV9N RU1PUlk6ICAgICAgICAgIHJldHVybiBudjUwX2lyOjpGSUxFX01FTU9SWV9HTE9CQUw7Cj4gKyAg IGNhc2UgVEdTSV9GSUxFX0JVRkZFUjogICAgICAgICAgcmV0dXJuIG52NTBfaXI6OkZJTEVfTUVN T1JZX0JVRkZFUjsKPiArICAgY2FzZSBUR1NJX0ZJTEVfTUVNT1JZOiAgICAgICAgICByZXR1cm4g bnY1MF9pcjo6RklMRV9NRU1PUllfQlVGRkVSOwo+ICAgICAgY2FzZSBUR1NJX0ZJTEVfU0FNUExF UjoKPiAgICAgIGNhc2UgVEdTSV9GSUxFX05VTEw6Cj4gICAgICBkZWZhdWx0Ogo+IEBAIC0yMTkx LDcgKzIxOTEsNyBAQCBDb252ZXJ0ZXI6OmdldFJlc291cmNlQmFzZShjb25zdCBpbnQgcikKPgo+ ICAgICAgc3dpdGNoIChyKSB7Cj4gICAgICBjYXNlIFRHU0lfUkVTT1VSQ0VfR0xPQkFMOgo+IC0g ICAgICBzeW0gPSBuZXdfU3ltYm9sKHByb2csIG52NTBfaXI6OkZJTEVfTUVNT1JZX0dMT0JBTCwg MTUpOwo+ICsgICAgICBzeW0gPSBuZXdfU3ltYm9sKHByb2csIG52NTBfaXI6OkZJTEVfTUVNT1JZ X0JVRkZFUiwgMTUpOwo+ICAgICAgICAgYnJlYWs7Cj4gICAgICBjYXNlIFRHU0lfUkVTT1VSQ0Vf TE9DQUw6Cj4gICAgICAgICBhc3NlcnQocHJvZy0+Z2V0VHlwZSgpID09IFByb2dyYW06OlRZUEVf Q09NUFVURSk7Cj4gQEAgLTIyMDksNyArMjIwOSw3IEBAIENvbnZlcnRlcjo6Z2V0UmVzb3VyY2VC YXNlKGNvbnN0IGludCByKQo+ICAgICAgICAgYnJlYWs7Cj4gICAgICBkZWZhdWx0Ogo+ICAgICAg ICAgc3ltID0gbmV3X1N5bWJvbChwcm9nLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIG52NTBf aXI6OkZJTEVfTUVNT1JZX0dMT0JBTCwgY29kZS0+cmVzb3VyY2VzLmF0KHIpLnNsb3QpOwo+ICsg ICAgICAgICAgICAgICAgICAgICAgIG52NTBfaXI6OkZJTEVfTUVNT1JZX0JVRkZFUiwgY29kZS0+ cmVzb3VyY2VzLmF0KHIpLnNsb3QpOwo+ICAgICAgICAgYnJlYWs7Cj4gICAgICB9Cj4gICAgICBy ZXR1cm4gc3ltOwo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29k ZWdlbi9udjUwX2lyX2xvd2VyaW5nX252YzAuY3BwIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2 ZWF1L2NvZGVnZW4vbnY1MF9pcl9sb3dlcmluZ19udmMwLmNwcAo+IGluZGV4IGQwOTM2ZDguLjU2 M2Q3YzIgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4v bnY1MF9pcl9sb3dlcmluZ19udmMwLmNwcAo+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91 dmVhdS9jb2RlZ2VuL252NTBfaXJfbG93ZXJpbmdfbnZjMC5jcHAKPiBAQCAtMTE0MSw3ICsxMTQx LDcgQEAgTlZDMExvd2VyaW5nUGFzczo6aGFuZGxlQVRPTShJbnN0cnVjdGlvbiAqYXRvbSkKPiAg ICAgICAgIGhhbmRsZVNoYXJlZEFUT00oYXRvbSk7Cj4gICAgICAgICByZXR1cm4gdHJ1ZTsKPiAg ICAgIGRlZmF1bHQ6Cj4gLSAgICAgIGFzc2VydChhdG9tLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJ TEVfTUVNT1JZX0dMT0JBTCk7Cj4gKyAgICAgIGFzc2VydChhdG9tLT5zcmMoMCkuZ2V0RmlsZSgp ID09IEZJTEVfTUVNT1JZX0JVRkZFUik7Cj4gICAgICAgICBiYXNlID0gbG9hZFJlc0luZm82NChp bmQsIGF0b20tPmdldFNyYygwKS0+cmVnLmZpbGVJbmRleCAqIDE2KTsKPiAgICAgICAgIGFzc2Vy dChiYXNlLT5yZWcuc2l6ZSA9PSA4KTsKPiAgICAgICAgIGlmIChwdHIpCj4gQEAgLTExNTQsNyAr MTE1NCw3IEBAIE5WQzBMb3dlcmluZ1Bhc3M6OmhhbmRsZUFUT00oSW5zdHJ1Y3Rpb24gKmF0b20p Cj4gICAgICAgICBibGQubWtPcDF2KE9QX1JEU1YsIFRZUEVfVTMyLCBibGQuZ2V0U2NyYXRjaCgp LCBibGQubWtTeXNWYWwoc3YsIDApKTsKPgo+ICAgICAgYXRvbS0+c2V0U3JjKDAsIGNsb25lU2hh bGxvdyhmdW5jLCBhdG9tLT5nZXRTcmMoMCkpKTsKPiAtICAgYXRvbS0+Z2V0U3JjKDApLT5yZWcu ZmlsZSA9IEZJTEVfTUVNT1JZX0dMT0JBTDsKPiArICAgYXRvbS0+Z2V0U3JjKDApLT5yZWcuZmls ZSA9IEZJTEVfTUVNT1JZX0JVRkZFUjsKPiAgICAgIGlmIChwdHIpCj4gICAgICAgICBiYXNlID0g YmxkLm1rT3AydihPUF9BREQsIFRZUEVfVTMyLCBiYXNlLCBiYXNlLCBwdHIpOwo+ICAgICAgYXRv bS0+c2V0SW5kaXJlY3QoMCwgMSwgTlVMTCk7Cj4gQEAgLTE1NzEsNyArMTU3MSw3IEBAIE5WQzBM b3dlcmluZ1Bhc3M6OmhhbmRsZVN1cmZhY2VPcE5WRTQoVGV4SW5zdHJ1Y3Rpb24gKnN1KQo+ICAg ICAgICAgSW5zdHJ1Y3Rpb24gKnJlZCA9IGJsZC5ta09wKE9QX0FUT00sIHN1LT5kVHlwZSwgc3Ut PmdldERlZigwKSk7Cj4gICAgICAgICByZWQtPnN1Yk9wID0gc3UtPnN1Yk9wOwo+ICAgICAgICAg aWYgKCFnTWVtQmFzZSkKPiAtICAgICAgICAgZ01lbUJhc2UgPSBibGQubWtTeW1ib2woRklMRV9N RU1PUllfR0xPQkFMLCAwLCBUWVBFX1UzMiwgMCk7Cj4gKyAgICAgICAgIGdNZW1CYXNlID0gYmxk Lm1rU3ltYm9sKEZJTEVfTUVNT1JZX0JVRkZFUiwgMCwgVFlQRV9VMzIsIDApOwo+ICAgICAgICAg cmVkLT5zZXRTcmMoMCwgZ01lbUJhc2UpOwo+ICAgICAgICAgcmVkLT5zZXRTcmMoMSwgc3UtPmdl dFNyYygzKSk7Cj4gICAgICAgICBpZiAoc3UtPnN1Yk9wID09IE5WNTBfSVJfU1VCT1BfQVRPTV9D QVMpCj4gQEAgLTE5NjMsNyArMTk2Myw3IEBAIE5WQzBMb3dlcmluZ1Bhc3M6OnZpc2l0KEluc3Ry dWN0aW9uICppKQo+ICAgICAgICAgfSBlbHNlIGlmIChpLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJ TEVfU0hBREVSX09VVFBVVCkgewo+ICAgICAgICAgICAgYXNzZXJ0KHByb2ctPmdldFR5cGUoKSA9 PSBQcm9ncmFtOjpUWVBFX1RFU1NFTExBVElPTl9DT05UUk9MKTsKPiAgICAgICAgICAgIGktPm9w ID0gT1BfVkZFVENIOwo+IC0gICAgICB9IGVsc2UgaWYgKGktPnNyYygwKS5nZXRGaWxlKCkgPT0g RklMRV9NRU1PUllfR0xPQkFMKSB7Cj4gKyAgICAgIH0gZWxzZSBpZiAoaS0+c3JjKDApLmdldEZp bGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpIHsKPiAgICAgICAgICAgIFZhbHVlICppbmQgPSBp LT5nZXRJbmRpcmVjdCgwLCAxKTsKPiAgICAgICAgICAgIFZhbHVlICpwdHIgPSBsb2FkUmVzSW5m bzY0KGluZCwgaS0+Z2V0U3JjKDApLT5yZWcuZmlsZUluZGV4ICogMTYpOwo+ICAgICAgICAgICAg Ly8gWFhYIGNvbWUgdXAgd2l0aCBhIHdheSBub3QgdG8gZG8gdGhpcyBmb3IgRVZFUlkgbGl0dGxl IGFjY2VzcyBidXQKPiBAQCAtMTk4Nyw3ICsxOTg3LDcgQEAgTlZDMExvd2VyaW5nUGFzczo6dmlz aXQoSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICAgICBicmVhazsKPiAgICAgIGNhc2UgT1BfQVRPTToK PiAgICAgIHsKPiAtICAgICAgY29uc3QgYm9vbCBjY3RsID0gaS0+c3JjKDApLmdldEZpbGUoKSA9 PSBGSUxFX01FTU9SWV9HTE9CQUw7Cj4gKyAgICAgIGNvbnN0IGJvb2wgY2N0bCA9IGktPnNyYygw KS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfQlVGRkVSOwo+ICAgICAgICAgaGFuZGxlQVRPTShp KTsKPiAgICAgICAgIGhhbmRsZUNhc0V4Y2goaSwgY2N0bCk7Cj4gICAgICB9Cj4gZGlmZiAtLWdp dCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcGVlcGhvbGUu Y3BwIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9wZWVwaG9s ZS5jcHAKPiBpbmRleCA2NmU3YjJlLi40YTk2ZDA0IDEwMDY0NAo+IC0tLSBhL3NyYy9nYWxsaXVt L2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcGVlcGhvbGUuY3BwCj4gKysrIGIvc3Jj L2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9wZWVwaG9sZS5jcHAKPiBA QCAtMjU4MCwxNCArMjU4MCwxNCBAQCBNZW1vcnlPcHQ6OnJ1bk9wdChCYXNpY0Jsb2NrICpiYikK PiAgICAgICAgICAgICAgICBsZHN0LT5vcCA9PSBPUF9CQVIgfHwKPiAgICAgICAgICAgICAgICBs ZHN0LT5vcCA9PSBPUF9NRU1CQVIpIHsKPiAgICAgICAgICAgICAgIHB1cmdlUmVjb3JkcyhOVUxM LCBGSUxFX01FTU9SWV9MT0NBTCk7Cj4gLSAgICAgICAgICAgIHB1cmdlUmVjb3JkcyhOVUxMLCBG SUxFX01FTU9SWV9HTE9CQUwpOwo+ICsgICAgICAgICAgICBwdXJnZVJlY29yZHMoTlVMTCwgRklM RV9NRU1PUllfQlVGRkVSKTsKPiAgICAgICAgICAgICAgIHB1cmdlUmVjb3JkcyhOVUxMLCBGSUxF X01FTU9SWV9TSEFSRUQpOwo+ICAgICAgICAgICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVf U0hBREVSX09VVFBVVCk7Cj4gICAgICAgICAgICB9IGVsc2UKPiAgICAgICAgICAgIGlmIChsZHN0 LT5vcCA9PSBPUF9BVE9NIHx8IGxkc3QtPm9wID09IE9QX0NDVEwpIHsKPiAtICAgICAgICAgICAg aWYgKGxkc3QtPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB7Cj4gKyAg ICAgICAgICAgIGlmIChsZHN0LT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZF Uikgewo+ICAgICAgICAgICAgICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX0xP Q0FMKTsKPiAtICAgICAgICAgICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZX0dM T0JBTCk7Cj4gKyAgICAgICAgICAgICAgIHB1cmdlUmVjb3JkcyhOVUxMLCBGSUxFX01FTU9SWV9C VUZGRVIpOwo+ICAgICAgICAgICAgICAgICAgcHVyZ2VSZWNvcmRzKE5VTEwsIEZJTEVfTUVNT1JZ X1NIQVJFRCk7Cj4gICAgICAgICAgICAgICB9IGVsc2Ugewo+ICAgICAgICAgICAgICAgICAgcHVy Z2VSZWNvcmRzKE5VTEwsIGxkc3QtPnNyYygwKS5nZXRGaWxlKCkpOwo+IEBAIC0yNjA3LDcgKzI2 MDcsNyBAQCBNZW1vcnlPcHQ6OnJ1bk9wdChCYXNpY0Jsb2NrICpiYikKPiAgICAgICAgICAgIERh dGFGaWxlIGZpbGUgPSBsZHN0LT5zcmMoMCkuZ2V0RmlsZSgpOwo+Cj4gICAgICAgICAgICAvLyBp ZiBsZCBsW10vZ1tdIGxvb2sgZm9yIHByZXZpb3VzIHN0b3JlIHRvIGVsaW1pbmF0ZSB0aGUgcmVs b2FkCj4gLSAgICAgICAgIGlmIChmaWxlID09IEZJTEVfTUVNT1JZX0dMT0JBTCB8fCBmaWxlID09 IEZJTEVfTUVNT1JZX0xPQ0FMKSB7Cj4gKyAgICAgICAgIGlmIChmaWxlID09IEZJTEVfTUVNT1JZ X0JVRkZFUiB8fCBmaWxlID09IEZJTEVfTUVNT1JZX0xPQ0FMKSB7Cj4gICAgICAgICAgICAgICAv LyBUT0RPOiBzaGFyZWQgbWVtb3J5ID8KPiAgICAgICAgICAgICAgIHJlYyA9IGZpbmRSZWNvcmQo bGRzdCwgZmFsc2UsIGlzQWRqYWNlbnQpOwo+ICAgICAgICAgICAgICAgaWYgKHJlYyAmJiAhaXNB ZGphY2VudCkKPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVn ZW4vbnY1MF9pcl9wcmludC5jcHAgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdl bi9udjUwX2lyX3ByaW50LmNwcAo+IGluZGV4IGNmYTg1ZWMuLjczZWQ3NTMgMTAwNjQ0Cj4gLS0t IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9wcmludC5jcHAK PiArKysgYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3ByaW50 LmNwcAo+IEBAIC00NTUsNyArNDU1LDcgQEAgaW50IFN5bWJvbDo6cHJpbnQoY2hhciAqYnVmLCBz aXplX3Qgc2l6ZSwKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfQ09OU1Q6ICBjID0gJ2MnOyBicmVh azsKPiAgICAgIGNhc2UgRklMRV9TSEFERVJfSU5QVVQ6ICBjID0gJ2EnOyBicmVhazsKPiAgICAg IGNhc2UgRklMRV9TSEFERVJfT1VUUFVUOiBjID0gJ28nOyBicmVhazsKPiAtICAgY2FzZSBGSUxF X01FTU9SWV9HTE9CQUw6IGMgPSAnZyc7IGJyZWFrOwo+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0JV RkZFUjogYyA9ICdnJzsgYnJlYWs7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX1NIQVJFRDogYyA9 ICdzJzsgYnJlYWs7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMOiAgYyA9ICdsJzsgYnJl YWs7Cj4gICAgICBkZWZhdWx0Ogo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25v dXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udjUwLmNwcCBiL3NyYy9nYWxsaXVtL2RyaXZl cnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAuY3BwCj4gaW5kZXggMmM0ZDdm NS4uMWNkNDVhMiAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29k ZWdlbi9udjUwX2lyX3RhcmdldF9udjUwLmNwcAo+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMv bm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252NTAuY3BwCj4gQEAgLTIwNyw3ICsyMDcs NyBAQCBUYXJnZXROVjUwOjpnZXRGaWxlU2l6ZShEYXRhRmlsZSBmaWxlKSBjb25zdAo+ICAgICAg Y2FzZSBGSUxFX01FTU9SWV9DT05TVDogIHJldHVybiA2NTUzNjsKPiAgICAgIGNhc2UgRklMRV9T SEFERVJfSU5QVVQ6ICByZXR1cm4gMHgyMDA7Cj4gICAgICBjYXNlIEZJTEVfU0hBREVSX09VVFBV VDogcmV0dXJuIDB4MjAwOwo+IC0gICBjYXNlIEZJTEVfTUVNT1JZX0dMT0JBTDogcmV0dXJuIDB4 ZmZmZmZmZmY7Cj4gKyAgIGNhc2UgRklMRV9NRU1PUllfQlVGRkVSOiByZXR1cm4gMHhmZmZmZmZm ZjsKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfU0hBUkVEOiByZXR1cm4gMTYgPDwgMTA7Cj4gICAg ICBjYXNlIEZJTEVfTUVNT1JZX0xPQ0FMOiAgcmV0dXJuIDQ4IDw8IDEwOwo+ICAgICAgY2FzZSBG SUxFX1NZU1RFTV9WQUxVRTogIHJldHVybiAxNjsKPiBAQCAtNDA2LDcgKzQwNiw3IEBAIFRhcmdl dE5WNTA6OmlzQWNjZXNzU3VwcG9ydGVkKERhdGFGaWxlIGZpbGUsIERhdGFUeXBlIHR5KSBjb25z dAo+ICAgICAgaWYgKHR5ID09IFRZUEVfQjk2IHx8IHR5ID09IFRZUEVfTk9ORSkKPiAgICAgICAg IHJldHVybiBmYWxzZTsKPiAgICAgIGlmICh0eXBlU2l6ZW9mKHR5KSA+IDQpCj4gLSAgICAgIHJl dHVybiAoZmlsZSA9PSBGSUxFX01FTU9SWV9MT0NBTCkgfHwgKGZpbGUgPT0gRklMRV9NRU1PUllf R0xPQkFMKTsKPiArICAgICAgcmV0dXJuIChmaWxlID09IEZJTEVfTUVNT1JZX0xPQ0FMKSB8fCAo ZmlsZSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpOwo+ICAgICAgcmV0dXJuIHRydWU7Cj4gICB9Cj4K PiBAQCAtNTA4LDcgKzUwOCw3IEBAIGludCBUYXJnZXROVjUwOjpnZXRMYXRlbmN5KGNvbnN0IElu c3RydWN0aW9uICppKSBjb25zdAo+ICAgICAgaWYgKGktPm9wID09IE9QX0xPQUQpIHsKPiAgICAg ICAgIHN3aXRjaCAoaS0+c3JjKDApLmdldEZpbGUoKSkgewo+ICAgICAgICAgY2FzZSBGSUxFX01F TU9SWV9MT0NBTDoKPiAtICAgICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6Cj4gKyAgICAgIGNh c2UgRklMRV9NRU1PUllfQlVGRkVSOgo+ICAgICAgICAgICAgcmV0dXJuIDEwMDsgLy8gcmVhbGx5 IDQwMCB0byA4MDAKPiAgICAgICAgIGRlZmF1bHQ6Cj4gICAgICAgICAgICByZXR1cm4gMjI7Cj4g ZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJf dGFyZ2V0X252YzAuY3BwIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1 MF9pcl90YXJnZXRfbnZjMC5jcHAKPiBpbmRleCBhMDNhZmE4Li5iZGE1OWE1IDEwMDY0NAo+IC0t LSBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252 YzAuY3BwCj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9p cl90YXJnZXRfbnZjMC5jcHAKPiBAQCAtMjQ4LDcgKzI0OCw3IEBAIFRhcmdldE5WQzA6OmdldEZp bGVTaXplKERhdGFGaWxlIGZpbGUpIGNvbnN0Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0NPTlNU OiAgcmV0dXJuIDY1NTM2Owo+ICAgICAgY2FzZSBGSUxFX1NIQURFUl9JTlBVVDogIHJldHVybiAw eDQwMDsKPiAgICAgIGNhc2UgRklMRV9TSEFERVJfT1VUUFVUOiByZXR1cm4gMHg0MDA7Cj4gLSAg IGNhc2UgRklMRV9NRU1PUllfR0xPQkFMOiByZXR1cm4gMHhmZmZmZmZmZjsKPiArICAgY2FzZSBG SUxFX01FTU9SWV9CVUZGRVI6IHJldHVybiAweGZmZmZmZmZmOwo+ICAgICAgY2FzZSBGSUxFX01F TU9SWV9TSEFSRUQ6IHJldHVybiAxNiA8PCAxMDsKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfTE9D QUw6ICByZXR1cm4gNDggPDwgMTA7Cj4gICAgICBjYXNlIEZJTEVfU1lTVEVNX1ZBTFVFOiAgcmV0 dXJuIDMyOwo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cm1lc2EtZGV2IG1haWxpbmcgbGlzdAptZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9tZXNhLWRldgo=