From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nigel Cunningham Subject: Re: [PATCH 04/11] PM: Implement early suspend api Date: Wed, 14 Jan 2009 20:48:37 +1100 Message-ID: <1231926517.7229.332.camel@nigel-laptop> References: <1231896476-22445-1-git-send-email-arve@android.com> <1231896476-22445-2-git-send-email-arve@android.com> <1231896476-22445-3-git-send-email-arve@android.com> <1231896476-22445-4-git-send-email-arve@android.com> <1231896476-22445-5-git-send-email-arve@android.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1231896476-22445-5-git-send-email-arve@android.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.linux-foundation.org Errors-To: linux-pm-bounces@lists.linux-foundation.org To: Arve =?ISO-8859-1?Q?Hj=F8nnev=E5g?= Cc: swetland@google.com, linux-pm@lists.linux-foundation.org List-Id: linux-pm@vger.kernel.org SGkuCgpPbiBUdWUsIDIwMDktMDEtMTMgYXQgMTc6MjcgLTA4MDAsIEFydmUgSGrDuG5uZXbDpWcg d3JvdGU6Cj4gU2lnbmVkLW9mZi1ieTogQXJ2ZSBIasO4bm5ldsOlZyA8YXJ2ZUBhbmRyb2lkLmNv bT4KPiAtLS0KPiAga2VybmVsL3Bvd2VyL0tjb25maWcgICAgICAgIHwgICAxMiArKysKPiAga2Vy bmVsL3Bvd2VyL01ha2VmaWxlICAgICAgIHwgICAgMSArCj4gIGtlcm5lbC9wb3dlci9lYXJseXN1 c3BlbmQuYyB8ICAxNzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ICBrZXJuZWwvcG93ZXIvcG93ZXIuaCAgICAgICAgfCAgICA2ICsrCj4gIDQgZmlsZXMgY2hh bmdlZCwgMTk3IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBrZXJuZWwvcG93ZXIvZWFybHlzdXNwZW5kLmMKPiAKPiBkaWZmIC0tZ2l0IGEva2VybmVs L3Bvd2VyL0tjb25maWcgYi9rZXJuZWwvcG93ZXIvS2NvbmZpZwo+IGluZGV4IDZlM2RhNmUuLjUw NjkwZDggMTAwNjQ0Cj4gLS0tIGEva2VybmVsL3Bvd2VyL0tjb25maWcKPiArKysgYi9rZXJuZWwv cG93ZXIvS2NvbmZpZwo+IEBAIC0xMTksNiArMTE5LDkgQEAgY29uZmlnIFNVU1BFTkRfRlJFRVpF Ugo+ICBjb25maWcgSEFTX1dBS0VMT0NLCj4gIAlib29sCj4gIAo+ICtjb25maWcgSEFTX0VBUkxZ U1VTUEVORAo+ICsJYm9vbAo+ICsKPiAgY29uZmlnIFdBS0VMT0NLCj4gIAlib29sICJXYWtlIGxv Y2siCj4gIAlkZXBlbmRzIG9uIFBNICYmIFJUQ19DTEFTUwo+IEBAIC0xMzUsNiArMTM4LDE1IEBA IGNvbmZpZyBXQUtFTE9DS19TVEFUCj4gIAktLS1oZWxwLS0tCj4gIAkgIFJlcG9ydCB3YWtlIGxv Y2sgc3RhdHMgaW4gL3Byb2Mvd2FrZWxvY2tzCj4gIAo+ICtjb25maWcgRUFSTFlTVVNQRU5ECj4g Kwlib29sICJFYXJseSBzdXNwZW5kIgo+ICsJZGVwZW5kcyBvbiBXQUtFTE9DSwo+ICsJZGVmYXVs dCB5Cj4gKwlzZWxlY3QgSEFTX0VBUkxZU1VTUEVORAo+ICsJLS0taGVscC0tLQo+ICsJICBDYWxs IGVhcmx5IHN1c3BlbmQgaGFuZGxlcnMgd2hlbiB0aGUgdXNlciByZXF1ZXN0ZWQgc2xlZXAgc3Rh dGUKPiArCSAgY2hhbmdlcy4KPiArCj4gIGNvbmZpZyBISUJFUk5BVElPTgo+ICAJYm9vbCAiSGli ZXJuYXRpb24gKGFrYSAnc3VzcGVuZCB0byBkaXNrJykiCj4gIAlkZXBlbmRzIG9uIFBNICYmIFNX QVAgJiYgQVJDSF9ISUJFUk5BVElPTl9QT1NTSUJMRQo+IGRpZmYgLS1naXQgYS9rZXJuZWwvcG93 ZXIvTWFrZWZpbGUgYi9rZXJuZWwvcG93ZXIvTWFrZWZpbGUKPiBpbmRleCA0MDFkZGZlLi5mMGY3 YjE1IDEwMDY0NAo+IC0tLSBhL2tlcm5lbC9wb3dlci9NYWtlZmlsZQo+ICsrKyBiL2tlcm5lbC9w b3dlci9NYWtlZmlsZQo+IEBAIC02LDYgKzYsNyBAQCBlbmRpZgo+ICBvYmoteQkJCQk6PSBtYWlu Lm8KPiAgb2JqLSQoQ09ORklHX1BNX1NMRUVQKQkJKz0gcHJvY2Vzcy5vIGNvbnNvbGUubwo+ICBv YmotJChDT05GSUdfV0FLRUxPQ0spCQkrPSB3YWtlbG9jay5vCj4gK29iai0kKENPTkZJR19FQVJM WVNVU1BFTkQpCSs9IGVhcmx5c3VzcGVuZC5vCj4gIG9iai0kKENPTkZJR19ISUJFUk5BVElPTikJ Kz0gc3dzdXNwLm8gZGlzay5vIHNuYXBzaG90Lm8gc3dhcC5vIHVzZXIubwo+ICAKPiAgb2JqLSQo Q09ORklHX01BR0lDX1NZU1JRKQkrPSBwb3dlcm9mZi5vCj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9w b3dlci9lYXJseXN1c3BlbmQuYyBiL2tlcm5lbC9wb3dlci9lYXJseXN1c3BlbmQuYwo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uODRiZWQ1MQo+IC0tLSAvZGV2L251bGwK PiArKysgYi9rZXJuZWwvcG93ZXIvZWFybHlzdXNwZW5kLmMKPiBAQCAtMCwwICsxLDE3OCBAQAo+ ICsvKiBrZXJuZWwvcG93ZXIvZWFybHlzdXNwZW5kLmMKPiArICoKPiArICogQ29weXJpZ2h0IChD KSAyMDA1LTIwMDggR29vZ2xlLCBJbmMuCj4gKyAqCj4gKyAqIFRoaXMgc29mdHdhcmUgaXMgbGlj ZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKPiArICogTGlj ZW5zZSB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBhbmQKPiArICogbWF5IGJlIGNvcGllZCwgZGlzdHJpYnV0ZWQsIGFuZCBtb2RpZmllZCB1 bmRlciB0aG9zZSB0ZXJtcy4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4gKyAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKPiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KPiAr ICoKPiArICovCj4gKwo+ICsjaW5jbHVkZSA8bGludXgvZWFybHlzdXNwZW5kLmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Cj4gKyNpbmNs dWRlIDxsaW51eC9ydGMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3N5c2NhbGxzLmg+IC8qIHN5c19z eW5jICovCj4gKyNpbmNsdWRlIDxsaW51eC93YWtlbG9jay5oPgo+ICsjaW5jbHVkZSA8bGludXgv d29ya3F1ZXVlLmg+Cj4gKwo+ICsjaW5jbHVkZSAicG93ZXIuaCIKPiArCj4gK2VudW0gewo+ICsJ REVCVUdfVVNFUl9TVEFURSA9IDFVIDw8IDAsCj4gKwlERUJVR19TVVNQRU5EID0gMVUgPDwgMiwK PiArfTsKCklzIHRoZXJlIGEgcmVhc29uIERFQlVHX1NVU1BFTkQgaXNuJ3QgMVUgPDwgMT8gSWYg c28sIGl0IG1pZ2h0IGJlIGdvb2QKdG8gZG9jdW1lbnQgdGhhdCBoZXJlLgoKPiArc3RhdGljIGlu dCBkZWJ1Z19tYXNrID0gREVCVUdfVVNFUl9TVEFURTsKPiArbW9kdWxlX3BhcmFtX25hbWVkKGRl YnVnX21hc2ssIGRlYnVnX21hc2ssIGludCwgU19JUlVHTyB8IFNfSVdVU1IgfCBTX0lXR1JQKTsK PiArCj4gK3N0YXRpYyBERUZJTkVfTVVURVgoZWFybHlfc3VzcGVuZF9sb2NrKTsKPiArc3RhdGlj IExJU1RfSEVBRChlYXJseV9zdXNwZW5kX2hhbmRsZXJzKTsKPiArc3RhdGljIHZvaWQgZWFybHlf c3VzcGVuZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwo+ICtzdGF0aWMgdm9pZCBsYXRlX3Jl c3VtZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwo+ICtzdGF0aWMgREVDTEFSRV9XT1JLKGVh cmx5X3N1c3BlbmRfd29yaywgZWFybHlfc3VzcGVuZCk7Cj4gK3N0YXRpYyBERUNMQVJFX1dPUkso bGF0ZV9yZXN1bWVfd29yaywgbGF0ZV9yZXN1bWUpOwo+ICtzdGF0aWMgREVGSU5FX1NQSU5MT0NL KHN0YXRlX2xvY2spOwo+ICtlbnVtIHsKPiArCVNVU1BFTkRfUkVRVUVTVEVEID0gMHgxLAo+ICsJ U1VTUEVOREVEID0gMHgyLAo+ICsJU1VTUEVORF9SRVFVRVNURURfQU5EX1NVU1BFTkRFRCA9IFNV U1BFTkRfUkVRVUVTVEVEIHwgU1VTUEVOREVELAo+ICt9Owo+ICtzdGF0aWMgaW50IHN0YXRlOwo+ ICsKPiArdm9pZCByZWdpc3Rlcl9lYXJseV9zdXNwZW5kKHN0cnVjdCBlYXJseV9zdXNwZW5kICpo YW5kbGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7Cj4gKwo+ICsJbXV0ZXhfbG9j aygmZWFybHlfc3VzcGVuZF9sb2NrKTsKPiArCWxpc3RfZm9yX2VhY2gocG9zLCAmZWFybHlfc3Vz cGVuZF9oYW5kbGVycykgewo+ICsJCXN0cnVjdCBlYXJseV9zdXNwZW5kICplOwo+ICsJCWUgPSBs aXN0X2VudHJ5KHBvcywgc3RydWN0IGVhcmx5X3N1c3BlbmQsIGxpbmspOwoKbGlzdF9mb3JfZWFj aF9lbnRyeT8KCj4gKwkJaWYgKGUtPmxldmVsID4gaGFuZGxlci0+bGV2ZWwpCj4gKwkJCWJyZWFr Owo+ICsJfQo+ICsJbGlzdF9hZGRfdGFpbCgmaGFuZGxlci0+bGluaywgcG9zKTsKPiArCWlmICgo c3RhdGUgJiBTVVNQRU5ERUQpICYmIGhhbmRsZXItPnN1c3BlbmQpCj4gKwkJaGFuZGxlci0+c3Vz cGVuZChoYW5kbGVyKTsKPiArCW11dGV4X3VubG9jaygmZWFybHlfc3VzcGVuZF9sb2NrKTsKPiAr fQo+ICtFWFBPUlRfU1lNQk9MKHJlZ2lzdGVyX2Vhcmx5X3N1c3BlbmQpOwo+ICsKPiArdm9pZCB1 bnJlZ2lzdGVyX2Vhcmx5X3N1c3BlbmQoc3RydWN0IGVhcmx5X3N1c3BlbmQgKmhhbmRsZXIpCj4g K3sKPiArCW11dGV4X2xvY2soJmVhcmx5X3N1c3BlbmRfbG9jayk7Cj4gKwlsaXN0X2RlbCgmaGFu ZGxlci0+bGluayk7Cj4gKwltdXRleF91bmxvY2soJmVhcmx5X3N1c3BlbmRfbG9jayk7Cj4gK30K PiArRVhQT1JUX1NZTUJPTCh1bnJlZ2lzdGVyX2Vhcmx5X3N1c3BlbmQpOwo+ICsKPiArc3RhdGlj IHZvaWQgZWFybHlfc3VzcGVuZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gK3sKPiArCXN0 cnVjdCBlYXJseV9zdXNwZW5kICpwb3M7Cj4gKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwo+ICsJ aW50IGFib3J0ID0gMDsKPiArCj4gKwltdXRleF9sb2NrKCZlYXJseV9zdXNwZW5kX2xvY2spOwo+ ICsJc3Bpbl9sb2NrX2lycXNhdmUoJnN0YXRlX2xvY2ssIGlycWZsYWdzKTsKPiArCWlmIChzdGF0 ZSA9PSBTVVNQRU5EX1JFUVVFU1RFRCkKPiArCQlzdGF0ZSB8PSBTVVNQRU5ERUQ7Cj4gKwllbHNl Cj4gKwkJYWJvcnQgPSAxOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RhdGVfbG9jaywg aXJxZmxhZ3MpOwo+ICsKPiArCWlmIChhYm9ydCkgewo+ICsJCWlmIChkZWJ1Z19tYXNrICYgREVC VUdfU1VTUEVORCkKPiArCQkJcHJfaW5mbygiZWFybHlfc3VzcGVuZDogYWJvcnQsIHN0YXRlICVk XG4iLCBzdGF0ZSk7Cj4gKwkJbXV0ZXhfdW5sb2NrKCZlYXJseV9zdXNwZW5kX2xvY2spOwo+ICsJ CWdvdG8gYWJvcnQ7Cj4gKwl9Cj4gKwo+ICsJaWYgKGRlYnVnX21hc2sgJiBERUJVR19TVVNQRU5E KQo+ICsJCXByX2luZm8oImVhcmx5X3N1c3BlbmQ6IGNhbGwgaGFuZGxlcnNcbiIpOwo+ICsJbGlz dF9mb3JfZWFjaF9lbnRyeShwb3MsICZlYXJseV9zdXNwZW5kX2hhbmRsZXJzLCBsaW5rKSB7Cj4g KwkJaWYgKHBvcy0+c3VzcGVuZCAhPSBOVUxMKQoKSnVzdCAiaWYgKHBvcy0+c3VzcGVuZCkiIGlz IHN1ZmZpY2llbnQuCgo+ICsJCQlwb3MtPnN1c3BlbmQocG9zKTsKPiArCX0KPiArCW11dGV4X3Vu bG9jaygmZWFybHlfc3VzcGVuZF9sb2NrKTsKPiArCj4gKwlpZiAoZGVidWdfbWFzayAmIERFQlVH X1NVU1BFTkQpCj4gKwkJcHJfaW5mbygiZWFybHlfc3VzcGVuZDogc3luY1xuIik7Cj4gKwo+ICsJ c3lzX3N5bmMoKTsKCldoeSB0aGUgc3luYyBoZXJlPwoKPiArYWJvcnQ6Cj4gKwlzcGluX2xvY2tf aXJxc2F2ZSgmc3RhdGVfbG9jaywgaXJxZmxhZ3MpOwo+ICsJaWYgKHN0YXRlID09IFNVU1BFTkRf UkVRVUVTVEVEX0FORF9TVVNQRU5ERUQpCj4gKwkJd2FrZV91bmxvY2soJm1haW5fd2FrZV9sb2Nr KTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0YXRlX2xvY2ssIGlycWZsYWdzKTsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgbGF0ZV9yZXN1bWUoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQo+ICt7Cj4gKwlzdHJ1Y3QgZWFybHlfc3VzcGVuZCAqcG9zOwo+ICsJdW5zaWduZWQgbG9uZyBp cnFmbGFnczsKPiArCWludCBhYm9ydCA9IDA7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZWFybHlfc3Vz cGVuZF9sb2NrKTsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZzdGF0ZV9sb2NrLCBpcnFmbGFncyk7 Cj4gKwlpZiAoc3RhdGUgPT0gU1VTUEVOREVEKQo+ICsJCXN0YXRlICY9IH5TVVNQRU5ERUQ7CgpX aHkgbm90IGp1c3Qgc2F5IHN0YXRlID0gMD8KCj4gKwllbHNlCj4gKwkJYWJvcnQgPSAxOwo+ICsJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RhdGVfbG9jaywgaXJxZmxhZ3MpOwo+ICsKPiArCWlm IChhYm9ydCkgewo+ICsJCWlmIChkZWJ1Z19tYXNrICYgREVCVUdfU1VTUEVORCkKPiArCQkJcHJf aW5mbygibGF0ZV9yZXN1bWU6IGFib3J0LCBzdGF0ZSAlZFxuIiwgc3RhdGUpOwo+ICsJCWdvdG8g YWJvcnQ7Cj4gKwl9Cj4gKwlpZiAoZGVidWdfbWFzayAmIERFQlVHX1NVU1BFTkQpCj4gKwkJcHJf aW5mbygibGF0ZV9yZXN1bWU6IGNhbGwgaGFuZGxlcnNcbiIpOwo+ICsJbGlzdF9mb3JfZWFjaF9l bnRyeV9yZXZlcnNlKHBvcywgJmVhcmx5X3N1c3BlbmRfaGFuZGxlcnMsIGxpbmspCj4gKwkJaWYg KHBvcy0+cmVzdW1lICE9IE5VTEwpCgppZiAocG9zLT5yZXN1bWUpCgo+ICsJCQlwb3MtPnJlc3Vt ZShwb3MpOwo+ICsJaWYgKGRlYnVnX21hc2sgJiBERUJVR19TVVNQRU5EKQo+ICsJCXByX2luZm8o ImxhdGVfcmVzdW1lOiBkb25lXG4iKTsKPiArYWJvcnQ6Cj4gKwltdXRleF91bmxvY2soJmVhcmx5 X3N1c3BlbmRfbG9jayk7Cj4gK30KPiArCj4gK3ZvaWQgcmVxdWVzdF9zdXNwZW5kX3N0YXRlKHN1 c3BlbmRfc3RhdGVfdCBuZXdfc3RhdGUpCj4gK3sKPiArCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7 Cj4gKwlpbnQgb2xkX3NsZWVwOwo+ICsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZzdGF0ZV9sb2Nr LCBpcnFmbGFncyk7Cj4gKwlvbGRfc2xlZXAgPSBzdGF0ZSAmIFNVU1BFTkRfUkVRVUVTVEVEOwo+ ICsJaWYgKGRlYnVnX21hc2sgJiBERUJVR19VU0VSX1NUQVRFKSB7Cj4gKwkJc3RydWN0IHRpbWVz cGVjIHRzOwo+ICsJCXN0cnVjdCBydGNfdGltZSB0bTsKPiArCQlnZXRuc3RpbWVvZmRheSgmdHMp Owo+ICsJCXJ0Y190aW1lX3RvX3RtKHRzLnR2X3NlYywgJnRtKTsKPiArCQlwcl9pbmZvKCJyZXF1 ZXN0X3N1c3BlbmRfc3RhdGU6ICVzICglZC0+JWQpIGF0ICVsbGQgIgo+ICsJCQkiKCVkLSUwMmQt JTAyZCAlMDJkOiUwMmQ6JTAyZC4lMDlsdSBVVEMpXG4iLAo+ICsJCQluZXdfc3RhdGUgIT0gUE1f U1VTUEVORF9PTiA/ICJzbGVlcCIgOiAid2FrZXVwIiwKPiArCQkJcmVxdWVzdGVkX3N1c3BlbmRf c3RhdGUsIG5ld19zdGF0ZSwKPiArCQkJa3RpbWVfdG9fbnMoa3RpbWVfZ2V0KCkpLAo+ICsJCQl0 bS50bV95ZWFyICsgMTkwMCwgdG0udG1fbW9uICsgMSwgdG0udG1fbWRheSwKPiArCQkJdG0udG1f aG91ciwgdG0udG1fbWluLCB0bS50bV9zZWMsIHRzLnR2X25zZWMpOwo+ICsJfQo+ICsJaWYgKCFv bGRfc2xlZXAgJiYgbmV3X3N0YXRlICE9IFBNX1NVU1BFTkRfT04pIHsKPiArCQlzdGF0ZSB8PSBT VVNQRU5EX1JFUVVFU1RFRDsKPiArCQlxdWV1ZV93b3JrKHN1c3BlbmRfd29ya19xdWV1ZSwgJmVh cmx5X3N1c3BlbmRfd29yayk7Cj4gKwl9IGVsc2UgaWYgKG9sZF9zbGVlcCAmJiBuZXdfc3RhdGUg PT0gUE1fU1VTUEVORF9PTikgewo+ICsJCXN0YXRlICY9IH5TVVNQRU5EX1JFUVVFU1RFRDsKPiAr CQl3YWtlX2xvY2soJm1haW5fd2FrZV9sb2NrKTsKPiArCQlxdWV1ZV93b3JrKHN1c3BlbmRfd29y a19xdWV1ZSwgJmxhdGVfcmVzdW1lX3dvcmspOwo+ICsJfQo+ICsJcmVxdWVzdGVkX3N1c3BlbmRf c3RhdGUgPSBuZXdfc3RhdGU7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdGF0ZV9sb2Nr LCBpcnFmbGFncyk7Cj4gK30KPiArCj4gK3N1c3BlbmRfc3RhdGVfdCBnZXRfc3VzcGVuZF9zdGF0 ZSh2b2lkKQo+ICt7Cj4gKwlyZXR1cm4gcmVxdWVzdGVkX3N1c3BlbmRfc3RhdGU7Cj4gK30KPiBk aWZmIC0tZ2l0IGEva2VybmVsL3Bvd2VyL3Bvd2VyLmggYi9rZXJuZWwvcG93ZXIvcG93ZXIuaAo+ IGluZGV4IDE1MjcxNzQuLjdjZTk2MzcgMTAwNjQ0Cj4gLS0tIGEva2VybmVsL3Bvd2VyL3Bvd2Vy LmgKPiArKysgYi9rZXJuZWwvcG93ZXIvcG93ZXIuaAo+IEBAIC0yMzAsMyArMjMwLDkgQEAgZXh0 ZXJuIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpzdXNwZW5kX3dvcmtfcXVldWU7Cj4gIGV4dGVy biBzdHJ1Y3Qgd2FrZV9sb2NrIG1haW5fd2FrZV9sb2NrOwo+ICBleHRlcm4gc3VzcGVuZF9zdGF0 ZV90IHJlcXVlc3RlZF9zdXNwZW5kX3N0YXRlOwo+ICAjZW5kaWYKPiArCj4gKyNpZmRlZiBDT05G SUdfRUFSTFlTVVNQRU5ECj4gKy8qIGtlcm5lbC9wb3dlci9lYXJseXN1c3BlbmQuYyAqLwo+ICt2 b2lkIHJlcXVlc3Rfc3VzcGVuZF9zdGF0ZShzdXNwZW5kX3N0YXRlX3Qgc3RhdGUpOwo+ICtzdXNw ZW5kX3N0YXRlX3QgZ2V0X3N1c3BlbmRfc3RhdGUodm9pZCk7Cj4gKyNlbmRpZgo+IC0tIAo+IDEu Ni4xCgpSZWdhcmRzLAoKTmlnZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LXBtIG1haWxpbmcgbGlzdApsaW51eC1wbUBsaXN0cy5saW51eC1m b3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtcG0=