From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: Taking on a Xen development project Date: Mon, 14 Dec 2015 11:08:43 +0000 Message-ID: <1450091323.16856.24.camel@citrix.com> References: <20151204152600.10081fr70ozsbbh4@www.nexusmail.uwaterloo.ca> <1449841961.30975.14.camel@citrix.com> <20151212220749.GA8820@personal> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20151212220749.GA8820@personal> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Joshua Otto , xen-devel@lists.xen.org Cc: hjarmstr@uwaterloo.ca, czylin@uwaterloo.ca List-Id: xen-devel@lists.xenproject.org T24gU2F0LCAyMDE1LTEyLTEyIGF0IDE3OjA3IC0wNTAwLCBKb3NodWEgT3R0byB3cm90ZToKPiBP biBGcmksIERlYyAxMSwgMjAxNSBhdCAwMTo1Mjo0MVBNICswMDAwLCBJYW4gQ2FtcGJlbGwgd3Jv dGU6Cj4gPiBDb29sISBKdXN0IHRvIGJlIGNsZWFyLCB5b3UgYXJlIGxvb2tpbmcgZm9yIG9uZSBw cm9qZWN0IGZvciB0aGUgMyBvZgo+ID4geW91IHRvCj4gPiB3b3JrIG9uIGFzIGEgZ3JvdXAgKHZz IDMgaW5kaXZpZHVhbCBwcm9qZWN0cyksIGlzIHRoYXQgcmlnaHQ/Cj4gCj4gWWVzLCB0aGF0J3Mg cmlnaHQuCj4gCj4gPiBJdCdzIGJlZW4gYSB3aGlsZSBzaW5jZSB0aGVyZSBoYXMgYmVlbiBhIHNj YW4gcnVuLCBJIGRpZCBvbmUgeWVzdGVyZGF5IGJ1dAo+ID4gaXQgaXMgdGFraW5nIGFuIHVudXN1 YWxseSBsb25nIHRpbWUgdG8gZ2V0IHRoZSByZXN1bHRzIGJhY2suIEhvcGVmdWxseQo+ID4gd2Un bGwgaGF2ZSBhbiB1cCB0byBkYXRlIHNldCBvZiBkZWZlY3RzIGVhcmx5IG5leHQgd2VlayBhbmQg SSBjYW4gaGF2ZSBhCj4gPiBzY3JvYmJsZSBhcm91bmQgZm9yIHNvbWUgaW50ZXJlc3Rpbmcgb25l cyBmb3IgeW91IGd1eXMgdG8gdGFrZSBhIGxvb2sgYXQuCj4gCj4gVGhhdCB3b3VsZCBiZSBwZXJm ZWN0LCB0aGFua3MhCgpSZXN1bHRzIGFyZSBpbi4gSSd2ZSBjaGVycnktcGlja2VkIGEgZmV3IG9m IHRoZSBuZXcgaXNzdWVzIGJlbG93LiBJJ3ZlIG5vdApjaGVja2VkIGNhcmVmdWxseSBmb3IgZmFs c2UgK3Zlcy4KCk5vdCBhIGdyZWF0IGRlYWwgb2YgbWFzc2l2ZSB0aHJpbGxzIGluIHRoZXJlLCBi dXQgc29tZSBvbmUgbGluZXJzIGV0YyB0bwpkaXAgeW91ciB0b2VzIGluIEkgZ3Vlc3MuCgpJYW4u Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCioqKiBDSUQg MTM0MzMxMDrCoMKgQ29kZSBtYWludGFpbmFiaWxpdHkgaXNzdWVzwqDCoChVTlVTRURfVkFMVUUp Ci94ZW4vYXJjaC94ODYvaHZtL3N2bS9pbnRyLmM6IDk1IGluIHN2bV9lbmFibGVfaW50cl93aW5k b3coKQo4OcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qgdm1jYl9zdHJ1 Y3QgKmd2bWNiID0gbnYtPm52X3Z2bWN4Owo5MMKgwqDCoMKgwqAKOTHCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgLyogY2hlY2sgaWYgbDEgZ3Vlc3QgaW5qZWN0cyBpbnRlcnJ1cHQg aW50byBsMiBndWVzdCB2aWEgdmludHIuCjkywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgKiByZXR1cm4gaGVyZSBvciBsMiBndWVzdCBsb29zZXMgaW50ZXJydXB0cywgb3RoZXJ3 aXNlLgo5M8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCovCjk0wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEFTU0VSVChndm1jYiAhPSBOVUxMKTsKPj4+wqDCoMKg wqDCoENJRCAxMzQzMzEwOsKgwqBDb2RlIG1haW50YWluYWJpbGl0eSBpc3N1ZXPCoMKgKFVOVVNF RF9WQUxVRSkKPj4+wqDCoMKgwqDCoEFzc2lnbmluZyB2YWx1ZSBmcm9tICJ2bWNiX2dldF92aW50 cihndm1jYikiIHRvICJpbnRyIiBoZXJlLCBidXQgdGhhdCBzdG9yZWQgdmFsdWUgaXMgb3Zlcndy aXR0ZW4gYmVmb3JlIGl0IGNhbiBiZSB1c2VkLgo5NcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpbnRyID0gdm1jYl9nZXRfdmludHIoZ3ZtY2IpOwo5NsKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZiAoIGludHIuZmllbGRzLmlycSApCjk3wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo5OMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgfQo5OcKgwqDCoMKgwqDCoMKgwqDCoH0KMTAwIMKgIMKgwqAKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKioqIENJRCAxMzQzMzA5OsKgwqBDb250 cm9sIGZsb3cgaXNzdWVzwqDCoChVTlJFQUNIQUJMRSkKL3Rvb2xzL2xpYnhsL2xpYnhsLmM6IDU1 NzUgaW4gbGlieGxfZ2V0X3NjaGVkdWxlcigpCjU1NjnCoMKgwqDCoMKgewo1NTcwwqDCoMKgwqDC oMKgwqDCoMKgbGlieGxfc2NoZWR1bGVyIHNjaGVkLCByZXQ7CjU1NzHCoMKgwqDCoMKgwqDCoMKg wqBHQ19JTklUKGN0eCk7CjU1NzLCoMKgwqDCoMKgwqDCoMKgwqBpZiAoKHJldCA9IHhjX3NjaGVk X2lkKGN0eC0+eGNoLCAoaW50ICopJnNjaGVkKSkgIT0gMCkgewo1NTczwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBMT0dFKEVSUk9SLCAiZ2V0dGluZyBkb21haW4gaW5mbyBsaXN0Iik7CjU1NzTC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBFUlJPUl9GQUlMOwo+Pj7CoMKgwqDCoMKg Q0lEIDEzNDMzMDk6wqDCoENvbnRyb2wgZmxvdyBpc3N1ZXPCoMKgKFVOUkVBQ0hBQkxFKQo+Pj7C oMKgwqDCoMKgVGhpcyBjb2RlIGNhbm5vdCBiZSByZWFjaGVkOiAibGlieGxfX2ZyZWVfYWxsKGdj KTsiLgo1NTc1wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBHQ19GUkVFOwo1NTc2wqDCoMKgwqDC oMKgwqDCoMKgfQo1NTc3wqDCoMKgwqDCoMKgwqDCoMKgR0NfRlJFRTsKNTU3OMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybiBzY2hlZDsKNTU3OcKgwqDCoMKgwqB9CjU1ODAgwqAgwqDCoAoKQXMgd2Vs bCBhcyBwdXR0aW5nIEdDX0ZSRUUgaW4gdGhlIHJpZ2h0IHBsYWNlIHRoaXMgZnVuY3Rpb24gY291 bGQgYmUKcmV3b3JrZWQgdG8gZm9sbG93IHRoZSByZWNvbW1lbmRhdGlvbnMgaW4gdG9vbHMvbGli eGwvQ09ESU5HX1NUWUxFLgoKKiogQ0lEIDEzNDMzMDc6wqDCoMKgwqAoUkVTT1VSQ0VfTEVBSykK L3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmM6IDc0NiBpbiBsaWJ4bF9fZG1fcnVuYXNfaGVscGVyKCkK L3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmM6IDc0OCBpbiBsaWJ4bF9fZG1fcnVuYXNfaGVscGVyKCkK L3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmM6IDc0OSBpbiBsaWJ4bF9fZG1fcnVuYXNfaGVscGVyKCkK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoqKiogQ0lE IDEzNDMzMDc6wqDCoMKgwqAoUkVTT1VSQ0VfTEVBSykKL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmM6 IDc0NiBpbiBsaWJ4bF9fZG1fcnVuYXNfaGVscGVyKCkKNzQwwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqByZXQgPSBnZXRwd25hbV9yKHVzZXJuYW1lLCAmcHdkLCBidWYsIGJ1Zl9zaXplLCAmdXNl cik7Cjc0McKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCA9PSBFUkFOR0UpIHsKNzQy wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJ1Zl9zaXplICs9IDEyODsKNzQzwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVlOwo3NDTCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoH0KNzQ1wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0ICE9IDAp Cj4+PsKgwqDCoMKgwqBDSUQgMTM0MzMwNzrCoMKgwqDCoChSRVNPVVJDRV9MRUFLKQo+Pj7CoMKg wqDCoMKgVmFyaWFibGUgImJ1ZiIgZ29pbmcgb3V0IG9mIHNjb3BlIGxlYWtzIHRoZSBzdG9yYWdl IGl0IHBvaW50cyB0by4KNzQ2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVy biBFUlJPUl9GQUlMOwo3NDfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICh1c2VyICE9IE5V TEwpCjc0OMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMTsKNzQ5wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMDsKNzUwwqDCoMKgwqDCoMKgwqDCoMKgfQo3 NTHCoMKgwqDCoMKgfQovdG9vbHMvbGlieGwvbGlieGxfZG0uYzogNzQ4IGluIGxpYnhsX19kbV9y dW5hc19oZWxwZXIoKQo3NDLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnVmX3Np emUgKz0gMTI4Owo3NDPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29udGludWU7 Cjc0NMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo3NDXCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlmIChyZXQgIT0gMCkKNzQ2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl dHVybiBFUlJPUl9GQUlMOwo3NDfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICh1c2VyICE9 IE5VTEwpCj4+PsKgwqDCoMKgwqBDSUQgMTM0MzMwNzrCoMKgwqDCoChSRVNPVVJDRV9MRUFLKQo+ Pj7CoMKgwqDCoMKgVmFyaWFibGUgImJ1ZiIgZ29pbmcgb3V0IG9mIHNjb3BlIGxlYWtzIHRoZSBz dG9yYWdlIGl0IHBvaW50cyB0by4KNzQ4wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHJldHVybiAxOwo3NDnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAwOwo3NTDCoMKg wqDCoMKgwqDCoMKgwqB9Cjc1McKgwqDCoMKgwqB9Cjc1MsKgwqDCoMKgwqAKNzUzwqDCoMKgwqDC oHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2Mg KmdjLAovdG9vbHMvbGlieGwvbGlieGxfZG0uYzogNzQ5IGluIGxpYnhsX19kbV9ydW5hc19oZWxw ZXIoKQo3NDPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY29udGludWU7Cjc0NMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo3NDXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlm IChyZXQgIT0gMCkKNzQ2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBF UlJPUl9GQUlMOwo3NDfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICh1c2VyICE9IE5VTEwp Cjc0OMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gMTsKPj4+wqDCoMKg wqDCoENJRCAxMzQzMzA3OsKgwqDCoMKgKFJFU09VUkNFX0xFQUspCj4+PsKgwqDCoMKgwqBWYXJp YWJsZSAiYnVmIiBnb2luZyBvdXQgb2Ygc2NvcGUgbGVha3MgdGhlIHN0b3JhZ2UgaXQgcG9pbnRz IHRvLgo3NDnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAwOwo3NTDCoMKgwqDCoMKg wqDCoMKgwqB9Cjc1McKgwqDCoMKgwqB9Cjc1MsKgwqDCoMKgwqAKNzUzwqDCoMKgwqDCoHN0YXRp YyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4bF9fZ2MgKmdjLAo3 NTTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb25zdCBjaGFyICpkbSwgaW50IGd1 ZXN0X2RvbWlkLAoKKioqIENJRCAxMzQzMzAyOsKgwqBJbnRlZ2VyIGhhbmRsaW5nIGlzc3Vlc8Kg wqAoT1ZFUkZMT1dfQkVGT1JFX1dJREVOKQoveGVuL2RyaXZlcnMvY2hhci9uczE2NTUwLmM6IDkx NiBpbiBwY2lfdWFydF9jb25maWcoKQo5MTDCoMKgwqDCoMKgCjkxMcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwID0gdWFydF9jb25maWdb aV0ucGFyYW07CjkxMsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAvKgo5MTPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAqIEZvcmNlIGxlbmd0aCBvZiBtbWlvIHJlZ2lvbiB0byBi ZSBhdCBsZWFzdAo5MTTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAqIDggYnl0ZXMgdGltZXMgKDEgPDwgcmVnX3NoaWZ0KQo5MTXCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAq Lwo+Pj7CoMKgwqDCoMKgQ0lEIDEzNDMzMDI6wqDCoEludGVnZXIgaGFuZGxpbmcgaXNzdWVzwqDC oChPVkVSRkxPV19CRUZPUkVfV0lERU4pCj4+PsKgwqDCoMKgwqBQb3RlbnRpYWxseSBvdmVyZmxv d2luZyBleHByZXNzaW9uICIxIDw8IHVhcnRfcGFyYW1bcF0ucmVnX3NoaWZ0IiB3aXRoIHR5cGUg ImludCIgKDMyIGJpdHMsIHNpZ25lZCkgaXMgZXZhbHVhdGVkIHVzaW5nIDMyLWJpdCBhcml0aG1l dGljLCBhbmQgdGhlbiB1c2VkIGluIGEgY29udGV4dCB0aGF0IGV4cGVjdHMgYW4gZXhwcmVzc2lv biBvZiB0eXBlICJ1NjQiICg2NCBiaXRzLCB1bnNpZ25lZCkuCjkxNsKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIHNpemUgPCAoMHg4 ICogKDEgPDwgdWFydF9wYXJhbVtwXS5yZWdfc2hpZnQpKSApCjkxN8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVl Owo5MTjCoMKgwqDCoMKgCjkxOcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIGJhcl9pZHggPj0gdWFydF9wYXJhbVtwXS5tYXhfYmFy cyApCjkyMMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVlOwo5MjHCoMKgwqDCoMKgCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCioqKiBDSUQgMTM0MzMwMTrCoMKgSW5jb3Jy ZWN0IGV4cHJlc3Npb27CoMKgKE5PX0VGRkVDVCkKL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmM6 IDE3OTUgaW4gY3NjaGVkX2R1bXBfcGNwdSgpCjE3ODnCoMKgwqDCoMKgY3NjaGVkX2R1bXBfcGNw dShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUpCjE3OTDCoMKgwqDCoMKgewox NzkxwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGxpc3RfaGVhZCAqcnVucSwgKml0ZXI7CjE3OTLC oMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiA9IENTQ0hFRF9QUklW KG9wcyk7CjE3OTPCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgY3NjaGVkX3BjcHUgKnNwYzsKMTc5 NMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBjc2NoZWRfdmNwdSAqc3ZjOwo+Pj7CoMKgwqDCoMKg Q0lEIDEzNDMzMDE6wqDCoEluY29ycmVjdCBleHByZXNzaW9uwqDCoChOT19FRkZFQ1QpCj4+PsKg wqDCoMKgwqBBc3NpZ25tZW50IG9wZXJhdGlvbiAibG9jayA9IGxvY2siIGhhcyBubyBlZmZlY3Qu CjE3OTXCoMKgwqDCoMKgwqDCoMKgwqBzcGlubG9ja190ICpsb2NrID0gbG9jazsKMTc5NsKgwqDC oMKgwqDCoMKgwqDCoHVuc2lnbmVkIGxvbmcgZmxhZ3M7CjE3OTfCoMKgwqDCoMKgwqDCoMKgwqBp bnQgbG9vcDsKMTc5OMKgwqDCoMKgwqAjZGVmaW5lIGNwdXN0ciBrZXloYW5kbGVyX3NjcmF0Y2gK MTc5OcKgwqDCoMKgwqAKMTgwMMKgwqDCoMKgwqDCoMKgwqDCoC8qCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoqKiogQ0lEIDEzNDMyOTk6wqDCoEluY29y cmVjdCBleHByZXNzaW9uwqDCoChNSVhFRF9FTlVNUykKL3Rvb2xzL2xpYnhsL2xpYnhsX3Bzci5j OiAzMTMgaW4gbGlieGxfcHNyX2NhdF9zZXRfY2JtKCkKMzA3wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBnb3RvIG91dDsKMzA4wqDCoMKgwqDCoMKgwqDCoMKgfQozMDnCoMKgwqDCoMKgCjMxMMKg wqDCoMKgwqDCoMKgwqDCoGxpYnhsX2Zvcl9lYWNoX3NldF9iaXQoc29ja2V0aWQsICp0YXJnZXRf bWFwKSB7CjMxMcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHNvY2tldGlkID49IG5yX3Nv Y2tldHMpCjMxMsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsKPj4+wqDC oMKgwqDCoENJRCAxMzQzMjk5OsKgwqBJbmNvcnJlY3QgZXhwcmVzc2lvbsKgwqAoTUlYRURfRU5V TVMpCj4+PsKgwqDCoMKgwqBNaXhpbmcgZW51bSB0eXBlcyAiZW51bSBsaWJ4bF9wc3JfY2JtX3R5 cGUiIGFuZCAiZW51bSB4Y19wc3JfY2F0X3R5cGUiIGZvciAidHlwZSIuCjMxM8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgaWYgKHhjX3Bzcl9jYXRfc2V0X2RvbWFpbl9kYXRhKGN0eC0+eGNoLCBk b21pZCwgdHlwZSwgc29ja2V0aWQsIGNibSkpIHsKMzE0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGxpYnhsX19wc3JfY2F0X2xvZ19lcnJfbXNnKGdjLCBlcnJubyk7CjMxNcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYyA9IEVSUk9SX0ZBSUw7CjMxNsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgfQozMTfCoMKgwqDCoMKgwqDCoMKgwqB9CjMxOMKgwqDCoMKgwqAK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK