From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: delay hotplug scheduling Date: Fri, 28 Sep 2018 09:26:48 +0300 Message-ID: <87k1n6dtnb.fsf@intel.com> References: <20180925071836.24711-1-jani.nikula@intel.com> <20180926164416.1446f4ac@gbai-ub1604-LTS> <20180926174345.3c6c11ca@gbai-ub1604-LTS> <87zhw3saji.fsf@intel.com> <20180927094903.2e4e7373@gbai-ub1604-LTS> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 86B4B6E63F for ; Fri, 28 Sep 2018 06:26:52 +0000 (UTC) In-Reply-To: <20180927094903.2e4e7373@gbai-ub1604-LTS> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Guang Bai Cc: intel-gfx@lists.freedesktop.org, Chris Chiu List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyNyBTZXAgMjAxOCwgR3VhbmcgQmFpIDxndWFuZy5iYWlAaW50ZWwuY29tPiB3cm90 ZToKPiBPbiBUaHUsIDI3IFNlcCAyMDE4IDA5OjQ1OjUzICswMzAwCj4gSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGludGVsLmNvbT4gd3JvdGU6Cj4KPj4gT24gV2VkLCAyNiBTZXAgMjAxOCwgR3Vh bmcgQmFpIDxndWFuZy5iYWlAaW50ZWwuY29tPiB3cm90ZToKPj4gPiBPbiBXZWQsIDI2IFNlcCAy MDE4IDE2OjQ0OjE2IC0wNzAwCj4+ID4gR3VhbmcgQmFpIDxndWFuZy5iYWlAaW50ZWwuY29tPiB3 cm90ZToKPj4gPiAgCj4+ID4+IE9uIFR1ZSwgMjUgU2VwIDIwMTggMTA6MTg6MzYgKzAzMDAKPj4g Pj4gSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4gd3JvdGU6Cj4+ID4+ICAgCj4+ ID4+ID4gT24gc29tZSBzeXN0ZW1zIHdlIGdldCB0aGUgaG90cGx1ZyBpcnEgb24gdW5wbHVnIGJl Zm9yZSB0aGUgRERDCj4+ID4+ID4gcGlucyBoYXZlIGJlZW4gZGlzY29ubmVjdGVkLCByZXN1bHRp bmcgaW4gY29ubmVjdG9yIHN0YXR1cwo+PiA+PiA+IHJlbWFpbmluZyBjb25uZWN0ZWQuIFNpbmNl IHByZXZpb3VzIGF0dGVtcHRzIGF0IHVzaW5nIGhvdHBsdWcKPj4gPj4gPiBsaXZlIHN0YXR1cyBi ZWZvcmUgRERDIGhhdmUgZmFpbGVkLCB0aGUgb25seSB2aWFibGUgb3B0aW9uIGlzIHRvCj4+ID4+ ID4gcmVkdWNlIHRoZSB3aW5kb3cgZm9yIG1pc3Rha2VzLiBEZWxheSB0aGUgaG90cGx1ZyBwcm9j ZXNzaW5nLgo+PiA+PiA+IAo+PiA+PiA+IFJlZmVyZW5jZToKPj4gPj4gPiBodHRwOi8vbWlkLm1h aWwtYXJjaGl2ZS5jb20vQ0FCNENBd2NmajMyRm92WndwVGJla3ZIcG9jM2dHMHNWYk50VzhqZVhS Y3A1cXdFc213QG1haWwuZ21haWwuY29tCj4+ID4+ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5m cmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzEyNQo+PiA+PiA+IFJlcG9ydGVkLWJ5 OiBDaHJpcyBDaGl1IDxjaGl1QGVuZGxlc3NtLmNvbT4gVGVzdGVkLWJ5OiBDaHJpcyBDaGl1Cj4+ ID4+ID4gPGNoaXVAZW5kbGVzc20uY29tPiBDYzogQ2hyaXMgQ2hpdSA8Y2hpdUBlbmRsZXNzbS5j b20+Cj4+ID4+ID4gQ2M6IEd1YW5nIEJhaSA8Z3VhbmcuYmFpQGludGVsLmNvbT4KPj4gPj4gPiBD YzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4gPj4g PiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+PiA+ PiA+IC0tLQo+PiA+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAg MiArLQo+PiA+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMgfCAxNiAr KysrKysrKysrKy0tLS0tCj4+ID4+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKPj4gPj4gPiAKPj4gPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiA+PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBpbmRleAo+PiA+PiA+IDg2MjRiNGJkYzI0Mi4uNDM3OGJlN2EyMGQ1IDEwMDY0NCAt LS0KPj4gPj4gPiBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggKysrCj4+ID4+ID4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIEBAIC0yODYsNyArMjg2LDcgQEAgZW51 bQo+PiA+PiA+IGhwZF9waW4geyAjZGVmaW5lIEhQRF9TVE9STV9ERUZBVUxUX1RIUkVTSE9MRCA1 Cj4+ID4+ID4gIAo+PiA+PiA+ICBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKPj4gPj4gPiAtCXN0cnVj dCB3b3JrX3N0cnVjdCBob3RwbHVnX3dvcms7Cj4+ID4+ID4gKwlzdHJ1Y3QgZGVsYXllZF93b3Jr IGhvdHBsdWdfd29yazsKPj4gPj4gPiAgCj4+ID4+ID4gIAlzdHJ1Y3Qgewo+PiA+PiA+ICAJCXVu c2lnbmVkIGxvbmcgbGFzdF9qaWZmaWVzOwo+PiA+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMKPj4gPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hvdHBsdWcuYyBpbmRleAo+PiA+PiA+IDY0OGExM2M2MDQzYy4uY2U5YmVkYmVkY2Qx IDEwMDY0NCAtLS0KPj4gPj4gPiBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcu YyArKysKPj4gPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYyBAQCAt MTEwLDYgKzExMCw5IEBAIGVudW0KPj4gPj4gPiBocGRfcGluIGludGVsX2hwZF9waW5fZGVmYXVs dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+PiA+PiA+ICpkZXZfcHJpdiwgfSB9Cj4+ID4+ID4g IAo+PiA+PiA+ICsvKiBEZWxheSBiZXR3ZWVuIGlycSBhbmQgaG90cGx1ZyBkZXRlY3QgcHJvY2Vz c2luZyAqLwo+PiA+PiA+ICsjZGVmaW5lIEhPVFBMVUdfREVMQVlfTVMJCTMwMAo+PiA+PiA+ICsK Pj4gPj4gPiAgI2RlZmluZSBIUERfU1RPUk1fREVURUNUX1BFUklPRAkJMTAwMAo+PiA+PiA+ICAj ZGVmaW5lIEhQRF9TVE9STV9SRUVOQUJMRV9ERUxBWQkoMiAqIDYwICogMTAwMCkKPj4gPj4gPiAg Cj4+ID4+ID4gQEAgLTMxOSw3ICszMjIsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2RpZ3BvcnRfd29y a19mdW5jKHN0cnVjdAo+PiA+PiA+IHdvcmtfc3RydWN0ICp3b3JrKSBzcGluX2xvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOwo+PiA+PiA+ICAJCWRldl9wcml2LT5ob3RwbHVnLmV2ZW50X2Jp dHMgfD0gb2xkX2JpdHM7Cj4+ID4+ID4gIAkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJx X2xvY2spOwo+PiA+PiA+IC0JCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhvdHBs dWdfd29yayk7Cj4+ID4+ID4gKwo+PiA+PiA+IHNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2X3By aXYtPmhvdHBsdWcuaG90cGx1Z193b3JrLAo+PiA+PiA+ICsKPj4gPj4gPiBtc2Vjc190b19qaWZm aWVzKEhPVFBMVUdfREVMQVlfTVMpKTsgfQo+PiA+PiA+ICB9Cj4+ID4+ID4gIAo+PiA+PiA+IEBA IC0zMjksNyArMzMzLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9kaWdwb3J0X3dvcmtfZnVuYyhzdHJ1 Y3QKPj4gPj4gPiB3b3JrX3N0cnVjdCAqd29yaykgc3RhdGljIHZvaWQgaTkxNV9ob3RwbHVnX3dv cmtfZnVuYyhzdHJ1Y3QKPj4gPj4gPiB3b3JrX3N0cnVjdCAqd29yaykgewo+PiA+PiA+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPj4gPj4gPiAtCQljb250YWluZXJfb2Yo d29yaywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsCj4+ID4+ID4gaG90cGx1Zy5ob3RwbHVnX3dv cmspOwo+PiA+PiA+ICsJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSwKPj4gPj4gPiBob3RwbHVnLmhvdHBsdWdfd29yay53b3JrKTsgc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9Cj4+ID4+ID4gJmRldl9wcml2LT5kcm07IHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmlu dGVsX2Nvbm5lY3RvcjsKPj4gPj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyOwo+PiA+PiA+IEBAIC00NjYsNyArNDcwLDggQEAgdm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRs ZXIoc3RydWN0Cj4+ID4+ID4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGlmIChxdWV1ZV9k aWcpCj4+ID4+ID4gIAkJcXVldWVfd29yayhkZXZfcHJpdi0+aG90cGx1Zy5kcF93cSwKPj4gPj4g PiAmZGV2X3ByaXYtPmhvdHBsdWcuZGlnX3BvcnRfd29yayk7IGlmIChxdWV1ZV9ocCkKPj4gPj4g PiAtCQlzY2hlZHVsZV93b3JrKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmspOwo+PiA+ PiA+ICsKPj4gPj4gPiBzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmRldl9wcml2LT5ob3RwbHVnLmhv dHBsdWdfd29yaywKPj4gPj4gPiArCj4+ID4+ID4gbXNlY3NfdG9famlmZmllcyhIT1RQTFVHX0RF TEFZX01TKSk7IH0KPj4gPj4gPiAgCj4+ID4+ID4gIC8qKgo+PiA+PiA+IEBAIC01ODYsNyArNTkx LDggQEAgdm9pZCBpbnRlbF9ocGRfcG9sbF9pbml0KHN0cnVjdAo+PiA+PiA+IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KSAKPj4gPj4gPiAgdm9pZCBpbnRlbF9ocGRfaW5pdF93b3JrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gPj4gPiAgewo+PiA+PiA+IC0JSU5JVF9X T1JLKCZkZXZfcHJpdi0+aG90cGx1Zy5ob3RwbHVnX3dvcmssCj4+ID4+ID4gaTkxNV9ob3RwbHVn X3dvcmtfZnVuYyk7Cj4+ID4+ID4gKwlJTklUX0RFTEFZRURfV09SSygmZGV2X3ByaXYtPmhvdHBs dWcuaG90cGx1Z193b3JrLAo+PiA+PiA+ICsJCQkgIGk5MTVfaG90cGx1Z193b3JrX2Z1bmMpOwo+ PiA+PiA+ICAJSU5JVF9XT1JLKCZkZXZfcHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrLAo+PiA+ PiA+IGk5MTVfZGlncG9ydF93b3JrX2Z1bmMpOwo+PiA+PiA+IElOSVRfV09SSygmZGV2X3ByaXYt PmhvdHBsdWcucG9sbF9pbml0X3dvcmssCj4+ID4+ID4gaTkxNV9ocGRfcG9sbF9pbml0X3dvcmsp Owo+PiA+PiA+IElOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+aG90cGx1Zy5yZWVuYWJsZV93 b3JrLCBAQCAtNjA0LDcKPj4gPj4gPiArNjEwLDcgQEAgdm9pZCBpbnRlbF9ocGRfY2FuY2VsX3dv cmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPj4gPj4gPiAqZGV2X3ByaXYpIHNwaW5fdW5sb2Nr X2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPj4gPj4gPiBjYW5jZWxfd29ya19zeW5jKCZkZXZf cHJpdi0+aG90cGx1Zy5kaWdfcG9ydF93b3JrKTsKPj4gPj4gPiAtCWNhbmNlbF93b3JrX3N5bmMo JmRldl9wcml2LT5ob3RwbHVnLmhvdHBsdWdfd29yayk7Cj4+ID4+ID4gKwo+PiA+PiA+IGNhbmNl bF9kZWxheWVkX3dvcmtfc3luYygmZGV2X3ByaXYtPmhvdHBsdWcuaG90cGx1Z193b3JrKTsKPj4g Pj4gPiBjYW5jZWxfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5wb2xsX2luaXRfd29yayk7 Cj4+ID4+ID4gY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1Zy5yZWVu YWJsZV93b3JrKTsgfSAgICAKPj4gPj4gSmFuaSAtIFdpdGggdGhlc2UgY2hhbmdlcywgbXkgY3Vz dG9tZXIgcGxhdGZvcm0gc3RpbGwgZmFpbHMgdGhlCj4+ID4+IEhETUkgaG90LXBsdWcgdGVzdCAt IHNsb3dseSB1bnBsdWcgdGhlIEhETUkgY2FibGUsCj4+ID4+IHRoZSAvc3lzL2NsYXNzL2RybS9j YXJkMC9jYXJkMC1IRE1JLUEtMS9zdGF0dXMgc3RpbGwgc2hvd3MKPj4gPj4gY29ubmVjdGVkIHN0 YXRlLiBNeSBwcmV2aW91cyBleHBlcmltZW50cyBpbmRpY2F0ZWQgYWRkaW5nIGJpZ2dlcgo+PiA+ PiBkZWxheSBiZWZvcmUgY2FsbGluZyAiZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChkZXYp Iiwgd2hpY2gKPj4gPj4gbGVhZCB0byByZWFkaW5nIHRoZSBFRElELCBkaWRuJ3QgaGF2ZSBzb2xp ZCBwYXNzaW5nIHRlc3QgcmVzdWx0cy4KPj4gPj4gVGhlIFBPQyBjaGFuZ2VzIHdpdGggcGFzc2lu ZyByZXN1bHRzIGZyb20gb25zaXRlIHV0aWxpemUgZm9sbG93aW5nCj4+ID4+IGFsZ29yaXRobSAt IDEuIGluIHRoZSBob3QtcGx1ZyB3b3JrZXIgZnVuY3Rpb24sIGNoZWNrIHRoZSBQQ0gKPj4gPj4g aG90LXBsdWcgc3RhdHVzIHBpbiB0byBzZWUgaXQncyBkaXNjb25uZWN0ZWQgb3Igbm90IGluIGEg MyB4IDEwMG1zCj4+ID4+IGxvb3AgMi4gaWYgImRpc2Nvbm5lY3RlZCIgaXMgY29uZmlybWVkIGFm dGVyIHRoaXMgbG9vcCwgaG9ub3IgaXQKPj4gPj4gYW5kIGRvIG5vdCByZWFkIHRoZSBFRElECj4+ ID4+IDMuIGlmICJjb25uZWN0ZWQiIGlzIGNvbmZpcm1lZCBhZnRlciB0aGlzIGxvb3AsIGhvbm9y IGl0IGFmdGVyIEVESUQKPj4gPj4gcmVhZCBpcyBzdWNjZXNzZnVsCj4+ID4+IFRoZSBvdmVyaGVh ZCBmb3IgdGhpcyBhbGdvcml0aG0gaXMgdG8gYWNjZXNzIHRoZSBIUEQgc3RhdHVzIGZyb20KPj4g Pj4gYWxsIHBsYXRmb3JtIFBDSHMgYW5kIHNvbWUgaG90LXBsdWcgY29kZSByZWZhY3RvcmluZyB3 b3VsZCBiZQo+PiA+PiBuZWVkZWQuIChzb3JyeSBmb3IgdGhlIGxhdGUgcmVwbHkgYXMgb2YgY3Vz dG9tZXIgcGxhdGZvcm0KPj4gPj4gcHJlcGFyYXRpb25zLCBldGMpIAo+PiA+IERvdWJsZSBjaGVj a2VkIG15IGFyY2hpdmVzIC0gdGhlIEVESUQgcmVhZGluZyBpcyBhY3R1YWxseSBkb25lIGluCj4+ ID4gdGhlICJpbnRlbF9lbmNvZGVyLT5ob3RwbHVnKCkiIHZpYSAiZHJtX2hlbHBlcl9wcm9iZV9k ZXRlY3QoKSIKPj4gPiBzb3JyeSBmb3IgdGhlIHR5cG8uICAKPj4gCj4+IEVhcmxpZXIgYXR0ZW1w dHMgYXQgdXRpbGl6aW5nIHRoZSBob3RwbHVnIGxpdmUgc3RhdHVzIGluIHRoZSB3b3JrCj4+IGZ1 bmN0aW9uIGhhdmUgZmFpbGVkOyBpdCdzIG5vdCB1bml2ZXJzYWxseSByZWxpYWJsZS4KPiBUaGVz ZSBhcmUgaG90cGx1ZyBsaXZlIHN0YXR1cyBjaGVja2luZyAqb25seSogb3IgdGhlIEVESUQvRERD IHJlYWRpbmdzCj4gYXJlIHN0aWxsIGZvbGxvd2VkPwoKQ2M6IFZpbGxlIGZvciB0aGUgZGV0YWls cy4KCj4+IFdpdGggdGhhdCwgeW91IGJhc2ljYWxseSBuZWVkIHRvIGhhdmUgYSB0aW1lIHRocmVz aG9sZCBiZXR3ZWVuIGhvdHBsdWcKPj4gaXJxIGFuZCBEREMgZGlzY29ubmVjdC4gU2xvd2VyIHRo YW4gdGhhdCwgaXQgd2lsbCBmYWlsLiBIb3cgc2xvdyBpcwo+PiBhY2NlcHRhYmxlPwo+PiAKPj4g QlIsCj4+IEphbmkuCj4+IAo+PiAKPiAxMDAwbXMgKDEuMCBzZWNvbmQpIHdhcyBzZXQgYXMgdGhl IHRocmVzaG9sZCBidXQgZmFpbHVyZXMgd2VyZSBzdGlsbAo+IHNlZW4gZnJvbSBvbnNpdGUgdGVz dGluZy4gVGh1cyBob3RwbHVnIGxpdmUgc3RhdHVzIGNoZWNraW5nIGluIGEgbG9vcAo+IG9mIDEw MG1zIGludGVydmFsICg+PSAzIHRpbWVzKSwgc2tpcHBlZCByZWFkaW5nIEREQyBmb3IgdGhlIGRp c2Nvbm5lY3QKPiBjYXNlLCB3YXMgYWNjZXB0ZWQgLSBXZSBkaWQgY29tbXVuaWNhdGUgb3VyIGNv bmNlcm5zIG9uIHRoZSBzbG93bmVzcwo+IG9mIHRoaXMgInNsb3dseSB1bnBsdWcgSERNSSBjYWJs ZSIgdGVzdCBjYXNlIHdpdGggdGhlIGN1c3RvbWVyIGFuZCBoYWQKPiBubyBwb3NpdGl2ZSBmZWVk YmFjay4gSXQgc2VlbXMgdGltZXMgYmV0d2VlbiAiSE9UUExVR19ERVQiIGFuZCBEREMgbGluZQo+ IGRpc2Nvbm5lY3Rpb25zIHZhcnkgYSBsb3QgcGVyIHBsYXRmb3JtIGFuZCB0ZXN0IGNhc2VzIHdo ZW4gdGhlIEhNREkKPiBjYWJsZSBpcyB1bnBsdWdnZWQuCgpPYnZpb3VzbHkgaXQgZGVwZW5kcyBv biB0aGUgcGh5c2ljYWwgY29ubmVjdG9ycyBvbiBib3RoIHRoZSBjaGFzc2lzIGFuZAp0aGUgY2Fi bGUuIFN0aWxsLCAxIHNlY29uZCBub3QgYmVpbmcgZW5vdWdoIHRvIG1vdmUgdGhlIGNhYmxlIGZy b20gSFBECmRpc2Nvbm5lY3QgdG8gRERDIHBpbiBkaXNjb25uZWN0LCBwcmVzdW1hYmx5IHdheSBs ZXNzIHRoYW4gMTAgbW0sIHNlZW1zCmV4Y2Vzc2l2ZS4gV2hhdCdzIHRoZSB0ZXN0IGNhc2U/IFdo YXQgaXMgdGhlIGFjdHVhbCByZXF1aXJlbWVudD8gSXMKdGhlcmUgc29tZXRoaW5nIHNwZWNpYWwg YWJvdXQgdGhlIGhhcmR3YXJlPyBBcmUgeW91IG90aGVyd2lzZSBydW5uaW5nIGFuCnVwc3RyZWFt IGtlcm5lbD8KCj4gTGV0IG1lIGtub3cgaWYgeW91IHdvdWxkIGxpa2UgdG8gc2VlIG15IGhvdHBs dWcgbGl2ZSBzdGF0dXMgY2hlY2tpbmcKPiBiYXNlZCBwYXRjaC4KCllvdSdyZSB3ZWxjb21lIHRv IHNoYXJlIGl0LCBidXQgSSB0aGluayB3ZSd2ZSBhZGRlZCBhbmQgcmV2ZXJ0ZWQgbGl2ZQpzdGF0 dXMgY2hlY2tpbmcgYXQgbGVhc3QgdHdpY2Ugbm93LiBJdCBmaXhlcyBzb21lIG1hY2hpbmVzLCBh bmQgYnJlYWtzIGEKYnVuY2ggb2Ygb3RoZXJzLgoKCkJSLApKYW5pLgoKLS0gCkphbmkgTmlrdWxh LCBJbnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==