RE: [PATCH v2] printk: fix zero-valued printk timestamps in early boot
"Bird, Tim" <[email protected]> Mon, 26 Jan 2026 17:11:40 +0000
| Newsgroups | org.kernel.vger.linux-embedded,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <MW5PR13MB5632CEFB9AB7AFDA7334307BFD93A@MW5PR13MB5632.namprd13.prod.outlook.com> |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2VlcnQgVXl0dGVyaG9l dmVuIDxnZWVydEBsaW51eC1tNjhrLm9yZz4NCj4gSGkgVGltLA0KPiANCj4gT24gU2F0LCAyNCBK YW4gMjAyNiBhdCAyMDo0MSwgVGltIEJpcmQgPHRpbS5iaXJkQHNvbnkuY29tPiB3cm90ZToNCj4g PiBEdXJpbmcgZWFybHkgYm9vdCwgcHJpbnRrIHRpbWVzdGFtcHMgYXJlIHJlcG9ydGVkIGFzIHpl cm8gYmVmb3JlDQo+ID4ga2VybmVsIHRpbWVrZWVwaW5nIHN0YXJ0cyAoZS5nLiBiZWZvcmUgdGlt ZV9pbml0KCkpLiAgVGhpcw0KPiA+IGhpbmRlcnMgYm9vdC10aW1lIG9wdGltaXphdGlvbiBlZmZv cnRzLiAgVGhpcyBwZXJpb2QgaXMgYWJvdXQgNDAwDQo+ID4gbWlsbGlzZWNvbmRzIGZvciBtYW55 IGN1cnJlbnQgZGVza3RvcCBhbmQgZW1iZWRkZWQgbWFjaGluZXMNCj4gPiBydW5uaW5nIExpbnV4 Lg0KPiA+DQo+ID4gQWRkIHN1cHBvcnQgdG8gc2F2ZSBjeWNsZXMgZHVyaW5nIGVhcmx5IGJvb3Qs IGFuZCBvdXRwdXQgY29ycmVjdA0KPiA+IHRpbWVzdGFtcCB2YWx1ZXMgYWZ0ZXIgdGltZWtlZXBp bmcgaXMgaW5pdGlhbGl6ZWQuICBnZXRfY3ljbGVzKCkNCj4gPiBpcyBvcGVyYXRpb25hbCBvbiBh cm02NCBhbmQgeDg2XzY0IGZyb20ga2VybmVsIHN0YXJ0LiAgQWRkIGNvZGUNCj4gPiBhbmQgdmFy aWFibGVzIHRvIHNhdmUgY2FsaWJyYXRpb24gdmFsdWVzIHVzZWQgdG8gbGF0ZXIgY29udmVydA0K PiA+IGN5Y2xlIGNvdW50cyB0byB0aW1lIHZhbHVlcyBpbiB0aGUgZWFybHkgcHJpbnRrcy4gIEFk ZCBhIGNvbmZpZw0KPiA+IHRvIGNvbnRyb2wgdGhlIGZlYXR1cmUuDQo+ID4NCj4gPiBUaGlzIHlp ZWxkcyBub24temVybyB0aW1lc3RhbXBzIGZvciBwcmludGtzIGZyb20gdGhlIHZlcnkgc3RhcnQN Cj4gPiBvZiBrZXJuZWwgZXhlY3V0aW9uLiAgVGhlIHRpbWVzdGFtcHMgYXJlIHJlbGF0aXZlIHRv IHRoZSBzdGFydCBvZg0KPiA+IHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWVkIGNvdW50ZXIgdXNl ZCBpbiBnZXRfY3ljbGVzDQo+ID4gKGUuZy4gdGhlIFRTQyBvbiB4ODZfNjQgYW5kIGNudHZjdF9l bDAgb24gYXJtNjQpLg0KPiA+DQo+ID4gQWxsIHRpbWVzdGFtcHMgcmVmbGVjdCB0aW1lIGZyb20g cG93ZXItb24gaW5zdGVhZCBvZiB0aW1lIGZyb20NCj4gPiB0aGUga2VybmVsJ3MgdGltZWtlZXBp bmcgaW5pdGlhbGl6YXRpb24uDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBUaW0gQmlyZCA8dGlt LmJpcmRAc29ueS5jb20+DQo+ID4gLS0tDQo+ID4gVjEgLT4gVjINCj4gPiAgIFJlbW92ZSBjYWxp YnJhdGlvbiBDT05GSUcgdmFycw0KPiA+ICAgQWRkICdkZXBlbmRzIG9uJyB0byByZXN0cmljdCBh cmNoZXMgKHRvIGhhbmRsZSBwcGMgYnVnKQ0KPiA+ICAgQWRkIGVhcmx5X3RzX29mZnNldCB0byBh dm9pZCBkaXNjb250aW51aXR5DQo+ID4gICBTYXZlIGN5Y2xlcyBpbiB0c19uc2VjLCBhbmQgY29u dmVydCBvbiBvdXRwdXQNCj4gPiAgIE1vdmUgY29uZGl0aW9uYWwgY29kZSB0byBpbmNsdWRlIGZp bGUgKGVhcmx5X3RpbWVzLmgpDQo+IA0KPiBUaGFua3MgZm9yIHRoZSB1cGRhdGUhDQo+IA0KPiA+ IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2Vhcmx5X3RpbWVzLmgNCj4g PiBAQCAtMCwwICsxLDQ4IEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wICovDQo+ID4gKw0KPiA+ICsjaWZuZGVmIF9LRVJORUxfUFJJTlRLX0VBUkxZX1RJTUVTX0gN Cj4gPiArI2RlZmluZSBfS0VSTkVMX1BSSU5US19FQVJMWV9USU1FU19IDQo+ID4gKw0KPiA+ICsj aW5jbHVkZSA8bGludXgvdGltZXguaD4NCj4gPiArDQo+ID4gKyNpZiBkZWZpbmVkKENPTkZJR19F QVJMWV9QUklOVEtfVElNRVMpDQo+ID4gK2V4dGVybiB1MzIgZWFybHlfbXVsdCwgZWFybHlfc2hp ZnQ7DQo+ID4gK2V4dGVybiB1NjQgZWFybHlfdHNfb2Zmc2V0Ow0KPiA+ICsNCj4gPiArc3RhdGlj IGlubGluZSB1NjQgZWFybHlfY3ljbGVzKHZvaWQpDQo+ID4gK3sNCj4gPiArICAgICAgIHJldHVy biAoKHU2NClnZXRfY3ljbGVzKCkgfCAoMVVMTCA8PCA2MykpOw0KPiANCj4gTm8gbmVlZCB0byBj YXN0IHRvIHU2NCwgYXMgdGhlIHNlY29uZCBvcGVyYW5kIG9mIHRoZSBPUiBpcyB1NjQgYW55d2F5 Lg0KPiBCSVRfVUxMKDYzKQ0KPiANCj4gSSB0aGluayBpdCB3b3VsZCBiZSBnb29kIHRvIGhhdmUg YSAjZGVmaW5lIGZvciB0aGlzIGF0IHRoZSB0b3AuDQoNCkknbGwgbG9vayBhdCB0aGlzLiAgSXMg QklUX1VMTCg2MykgcHJlZmVycmVkIG92ZXIgKDFVTEwgPDwgNjMpPw0KDQpEbyB5b3UgdGhpbmsg c29tZXRoaW5nIGxpa2UgIkhJR0hfQklUNjMiIHdvdWxkIGJlIGdvb2QgZW5vdWdoPw0KDQo+IA0K PiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW5saW5lIHU2NCBhZGp1c3RfZWFybHlfdHModTY0 IHRzKQ0KPiA+ICt7DQo+ID4gKyAgICAgICAvKiBIaWdoIGJpdCBtZWFucyB0cyBpcyBhIGN5Y2xl IGNvdW50ICovDQo+ID4gKyAgICAgICBpZiAodW5saWtlbHkodHMgJiAoMVVMTCA8PCA2MykpKQ0K PiA+ICsgICAgICAgICAgICAgICAvKg0KPiA+ICsgICAgICAgICAgICAgICAgKiBtYXNrIGhpZ2gg Yml0IGFuZCBjb252ZXJ0IHRvIG5zDQo+ID4gKyAgICAgICAgICAgICAgICAqIE5vdGUgdGhhdCBl YXJseV9tdWx0IG1heSBiZSAwLCBidXQgdGhhdCdzIE9LIGJlY2F1c2UNCj4gPiArICAgICAgICAg ICAgICAgICogd2UnbGwganVzdCBtdWx0aXBseSBieSAwIGFuZCByZXR1cm4gMC4gVGhpcyB3aWxs DQo+ID4gKyAgICAgICAgICAgICAgICAqIG9ubHkgb2NjdXIgaWYgd2UncmUgb3V0cHV0dGluZyBh IHByaW50ayBtZXNzYWdlDQo+ID4gKyAgICAgICAgICAgICAgICAqIGJlZm9yZSB0aGUgY2FsaWJy YXRpb24gb2YgdGhlIGVhcmx5IHRpbWVzdGFtcC4NCj4gPiArICAgICAgICAgICAgICAgICogQW55 IG91dHB1dCBhZnRlciB1c2VyIHNwYWNlIHN0YXJ0IChlZy4gZnJvbSBkbWVzZyBvcg0KPiA+ICsg ICAgICAgICAgICAgICAgKiBqb3VybmFsY3RsKSB3aWxsIHNob3cgY29ycmVjdCB2YWx1ZXMuDQo+ ID4gKyAgICAgICAgICAgICAgICAqLw0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gKCgodHMg JiB+KDFVTEwgPDwgNjMpKSAqIGVhcmx5X211bHQpID4+IGVhcmx5X3NoaWZ0KTsNCj4gDQo+IFBs ZWFzZSB1c2UgdGhlIG11bF91NjRfdTMyX3NocigpIGhlbHBlci4NCk9LLiAgSSBkaWQgbm90IGtu b3cgYWJvdXQgdGhhdC4NCg0KSSBjYW4gY2hlY2ssIGJ1dCBkbyB5b3Uga25vdyBvZmZoYW5kIGlm IHRpbWVzdGFtcHMgZnJvbSBsb2NhbF9jbG9jaygpIG9uIDMyLWJpdCBzeXN0ZW1zIGFyZQ0KYWx3 YXlzIDY0LWJpdCBuYW5vc2Vjb25kcz8gIEkgYXNzdW1lIHNvIGxvb2tpbmcgYXQgdGhlIHByaW50 ayBjb2RlIGFuZA0KbWFraW5nIHNvbWUgYXNzdW1wdGlvbnMuICAoQnV0IHRoYXQncyBkYW5nZXJv dXMuKQ0KDQo+IA0KPiBQbGVhc2Ugd3JhcCB0aGlzIGJsb2NrIGluIGN1cmx5IGJyYWNlcy4NCj4g QWx0ZXJuYXRpdmVseSwgeW91IGNhbiBpbnZlcnQgdGhlIGxvZ2ljOg0KPiANCj4gICAgIGlmIChs aWtlbHkoISh0cyAmIERFRklOSVRJT05fRk9SXzFVTExfTFNINjMpKSkNCj4gICAgICAgICAgICAg cmV0dXJuIHRzICsgZWFybHlfdHNfb2Zmc2V0Ow0KDQpUaGlzIGlzIHByb2JhYmx5IGEgYmV0dGVy IHN0cnVjdHVyZSBhbnl3YXkuICBXaWxsIGRvLg0KDQo+IA0KPiA+ICsNCj4gPiArICAgICAgIC8q IElmIHRpbWVzdGFtcCBpcyBhbHJlYWR5IGluIG5zLCBqdXN0IGFkZCBvZmZzZXQgKi8NCj4gPiAr ICAgICAgIHJldHVybiB0cyArIGVhcmx5X3RzX29mZnNldDsNCj4gPiArfQ0KPiA+ICsjZWxzZQ0K PiA+ICtzdGF0aWMgaW5saW5lIHU2NCBlYXJseV9jeWNsZXModm9pZCkNCj4gPiArew0KPiA+ICsg ICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbmxpbmUgdTY0IGFk anVzdF9lYXJseV90cyh1NjQgdHMpDQo+ID4gK3sNCj4gPiArICAgICAgIHJldHVybiB0czsNCj4g PiArfQ0KPiA+ICsjZW5kaWYgLyogQ09ORklHX0VBUkxZX1BSSU5US19USU1FUyAqLw0KPiA+ICsN Cj4gPiArI2VuZGlmIC8qIF9LRVJORUxfUFJJTlRLX0VBUkxZX1RJTUVTX0ggKi8NCj4gPiArDQo+ ID4gZGlmZiAtLWdpdCBhL2luaXQvS2NvbmZpZyBiL2luaXQvS2NvbmZpZw0KPiA+IGluZGV4IGZh NzlmZWI4ZmU1Ny4uMDYwYTIyY2RkZDE3IDEwMDY0NA0KPiA+IC0tLSBhL2luaXQvS2NvbmZpZw0K PiA+ICsrKyBiL2luaXQvS2NvbmZpZw0KPiA+IEBAIC03NzcsNiArNzc3LDE4IEBAIGNvbmZpZyBJ S0hFQURFUlMNCj4gPiAgICAgICAgICAgb3Igc2ltaWxhciBwcm9ncmFtcy4gIElmIHlvdSBidWls ZCB0aGUgaGVhZGVycyBhcyBhIG1vZHVsZSwgYSBtb2R1bGUgY2FsbGVkDQo+ID4gICAgICAgICAg IGtoZWFkZXJzLmtvIGlzIGJ1aWx0IHdoaWNoIGNhbiBiZSBsb2FkZWQgb24tZGVtYW5kIHRvIGdl dCBhY2Nlc3MgdG8gaGVhZGVycy4NCj4gPg0KPiA+ICtjb25maWcgRUFSTFlfUFJJTlRLX1RJTUVT DQo+ID4gKyAgICAgICBib29sICJTaG93IG5vbi16ZXJvIHByaW50ayB0aW1lc3RhbXBzIGVhcmx5 IGluIGJvb3QiDQo+ID4gKyAgICAgICBkZWZhdWx0IHkNCj4gPiArICAgICAgIGRlcGVuZHMgb24g UFJJTlRLDQo+ID4gKyAgICAgICBkZXBlbmRzIG9uIEFSTTY0IHx8IFg4Nl82NA0KPiANCj4gU28g Zm9yIG5vdyB0aGlzIGlzIGxpbWl0ZWQgdG8gKGEgZmV3KSA2NC1iaXQgcGxhdGZvcm1zLi4uDQoN ClllcywgYnV0IGl0IHJlYWxseSBzaG91bGRuJ3QgYmUuICBJIGdvdCBzcG9va2VkIHdoZW4gMC1k YXkgdG9sZCBtZSB0aGF0IHRoZSBjb2RlDQp3b3VsZG4ndCBsaW5rIG9uIHBvd2VycGMsIHNvIEkg cmVzdHJpY3RlZCBpdCB0byBqdXN0IG1hY2hpbmVzIEkgd2FzIGFjdHVhbGx5IHRlc3RpbmcuDQpC dXQgdGhpcyBzaG91bGQgd29yayBvbiBzb21lIEFSTTMyIGFuZCBtb3N0IHg4NjMyIHBsYXRmb3Jt cy4gIEFjdHVhbGx5LCBpdCBzaG91bGQNCndvcmsgb24gYW55dGhpbmcgdGhhdCBoYXMgYSBjeWNs ZS1jb3VudGVyIGZyb20ga2VybmVsIHN0YXJ0IChzb21lIFJJU0MgbWFjaGluZQ0KbWlnaHQgcXVh bGlmeSBhcyB3ZWxsKS4gIEhvd2V2ZXIsIEkndmUgc2VlbiBhIGZldyBjYXNlcyB3aGVyZSBzb21l IHBsYXRmb3JtcyByZXF1aXJlDQprZXJuZWwgaW5pdGlhbGl6YXRpb24gb2YgdGhlaXIgY3ljbGUt Y291bnRlciwgYW5kIEkgd2FudGVkIHRvIHBsYXkgaXQgc2FmZS4NCg0KSWYgc3VjaCBwbGF0Zm9y bXMgYXJlIHdlbGwtYmVoYXZlZCBhbmQgcmV0dXJuIDAgYmVmb3JlIHRoZXkgYXJlIGluaXRpYWxp emVkLCBpdCBzaG91bGQNCnN0aWxsIGJlIHNhZmUgdG8gdHVybiB0aGlzIG9uIC0gaXQganVzdCB3 b24ndCBoYXZlIGFueSBlZmZlY3QuDQoNCkkgcGxhbiB0byBkbyBzb21lIG1vcmUgaW52ZXN0aWdh dGlvbiBvZiB0aGUgcG93ZXJwYyBlcnJvci4gIEl0IHdhcyANCnBvd2VycGMtbGludXgtbGQ6IGlu aXQvbWFpbi5vOiBpbiBmdW5jdGlvbiBga2VybmVsX2luaXQnOg0KbWFpbi5jOigucmVmLnRleHQr MHgxNDQpOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBfX3VkaXZkaTMnDQoNCmZyb20gdGhlIGRl ZmluaXRpb24gb2YgY2xvY2tzX2NhbGNfbXVsdF9zaGlmdCgpLCB3aGljaCBzZWVtcyB0byBpbmRp Y2F0ZSBhIGJ1Zw0KaW4gdGhlIHBvd2VycGMgY29kZS4gIEluIHRoZSBsb25nIHJ1biwgSSBzaG91 bGQgdHJ5IHRvIHRyYWNrIGRvd24gdGhhdCBidWcgcmF0aGVyIHRoYW4NCmV4Y2x1ZGUgYSBidW5j aCBvZiBvdGhlciAobGlrZWx5LXdvcmtpbmcpIGFyY2hlcy4gIEJ1dCBJIHdhcyBwbGF5aW5nIGl0 IGNvbnNlcnZhdGl2ZSBmb3Igbm93Lg0KDQo+IA0KPiA+ICsgICAgICAgaGVscA0KPiA+ICsgICAg ICAgICBVc2UgYSBjeWNsZS1jb3VudGVyIHRvIHByb3ZpZGUgcHJpbnRrIHRpbWVzdGFtcHMgZHVy aW5nDQo+ID4gKyAgICAgICAgIGVhcmx5IGJvb3QuICBUaGlzIGFsbG93cyBzZWVpbmcgdGltZXN0 YW1wcyBmb3IgcHJpbnRrcyB0aGF0DQo+ID4gKyAgICAgICAgIHdvdWxkIG90aGVyd2lzZSBzaG93 IGFzIDAuICBOb3RlIHRoYXQgdGhpcyB3aWxsIHNoaWZ0IHRoZQ0KPiA+ICsgICAgICAgICBwcmlu dGsgdGltZXN0YW1wcyB0byBiZSByZWxhdGl2ZSB0byBtYWNoaW5lIHBvd2VyIG9uLCBpbnN0ZWFk DQo+ID4gKyAgICAgICAgIG9mIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiBrZXJuZWwgdGltZWtl ZXBpbmcuDQo+ID4gKw0KPiA+ICBjb25maWcgTE9HX0JVRl9TSElGVA0KPiA+ICAgICAgICAgaW50 ICJLZXJuZWwgbG9nIGJ1ZmZlciBzaXplICgxNiA9PiA2NEtCLCAxNyA9PiAxMjhLQikiDQo+ID4g ICAgICAgICByYW5nZSAxMiAyNQ0KPiA+IGRpZmYgLS1naXQgYS9pbml0L21haW4uYyBiL2luaXQv bWFpbi5jDQo+ID4gaW5kZXggYjg0ODE4YWQ5Njg1Li5jYzFhZjI2OTMzZjcgMTAwNjQ0DQo+ID4g LS0tIGEvaW5pdC9tYWluLmMNCj4gPiArKysgYi9pbml0L21haW4uYw0KPiANCj4gPiBAQCAtMTYw LDYgKzE2MywxMCBAQCBzdGF0aWMgc2l6ZV90IGluaXRhcmdzX29mZnM7DQo+ID4gICMgZGVmaW5l IGluaXRhcmdzX29mZnMgMA0KPiA+ICAjZW5kaWYNCj4gPg0KPiA+ICsjaWZkZWYgQ09ORklHX0VB UkxZX1BSSU5US19USU1FUw0KPiA+ICtzdGF0aWMgdTY0IHN0YXJ0X2N5Y2xlcywgc3RhcnRfbnM7 DQo+IA0KPiBjeWNsZXNfdCBzdGFydF9jeWNsZXM7DQo+IA0KPiAoY3ljbGVzX3QgaXMgdW5zaWdu ZWQgbG9uZywgaS5lLiBlaXRoZXIgMzItIG9yIDY0LWJpdCkuDQpPSywgSeKAmWxsIHVzZSB0aGlz IHR5cGUuDQoNCj4gDQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgc3RhdGljIGNoYXIgKmV4ZWN1 dGVfY29tbWFuZDsNCj4gPiAgc3RhdGljIGNoYXIgKnJhbWRpc2tfZXhlY3V0ZV9jb21tYW5kID0g Ii9pbml0IjsNCj4gPg0KPiA+IEBAIC0xMTE4LDYgKzExMjUsMTEgQEAgdm9pZCBzdGFydF9rZXJu ZWwodm9pZCkNCj4gPiAgICAgICAgIHRpbWVrZWVwaW5nX2luaXQoKTsNCj4gPiAgICAgICAgIHRp bWVfaW5pdCgpOw0KPiA+DQo+ID4gKyNpZmRlZiBDT05GSUdfRUFSTFlfUFJJTlRLX1RJTUVTDQo+ ID4gKyAgICAgICBzdGFydF9jeWNsZXMgPSBnZXRfY3ljbGVzKCk7DQo+ID4gKyAgICAgICBzdGFy dF9ucyA9IGxvY2FsX2Nsb2NrKCk7DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgICAgICAgIC8q IFRoaXMgbXVzdCBiZSBhZnRlciB0aW1la2VlcGluZyBpcyBpbml0aWFsaXplZCAqLw0KPiA+ICAg ICAgICAgcmFuZG9tX2luaXQoKTsNCj4gPg0KPiA+IEBAIC0xNjAwLDYgKzE2MTIsMjAgQEAgc3Rh dGljIGludCBfX3JlZiBrZXJuZWxfaW5pdCh2b2lkICp1bnVzZWQpDQo+ID4NCj4gPiAgICAgICAg IGRvX3N5c2N0bF9hcmdzKCk7DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJR19FQVJMWV9QUklOVEtf VElNRVMNCj4gPiArICAgICAgIHU2NCBlbmRfY3ljbGVzLCBlbmRfbnM7DQo+IA0KPiBjeWNsZXNf dCBlbmRfY3ljbGVzOw0KYWNrLg0KPiANCj4gPiArDQo+ID4gKyAgICAgICAvKiBzZXQgY2FsaWJy YXRpb24gZGF0YSBmb3IgZWFybHlfcHJpbnRrX3RpbWVzICovDQo+ID4gKyAgICAgICBlbmRfY3lj bGVzID0gZ2V0X2N5Y2xlcygpOw0KPiA+ICsgICAgICAgZW5kX25zID0gbG9jYWxfY2xvY2soKTsN Cj4gPiArICAgICAgIGNsb2Nrc19jYWxjX211bHRfc2hpZnQoJmVhcmx5X211bHQsICZlYXJseV9z aGlmdCwNCj4gPiArICAgICAgICAgICAgICAgKChlbmRfY3ljbGVzIC0gc3RhcnRfY3ljbGVzKSAq IE5TRUNfUEVSX1NFQykvKGVuZF9ucyAtIHN0YXJ0X25zKSwNCj4gPiArICAgICAgICAgICAgICAg TlNFQ19QRVJfU0VDLCA1MCk7DQo+IA0KPiBtdWxfdTY0X3U2NF9kaXZfdTY0KCkgaXMgcHJvYmFi bHkgdGhlIGJlc3QgaGVscGVyIHRoYXQgaXMgYXZhaWxhYmxlDQo+ICh0aGVyZSBpcyBubyBtdWxf dWxvbmdfdTMyX2Rpdl91NjQoKSkuDQoNCldoYXQgd291bGQgdGhlIG11bF91NjRfdTY0X2Rpdl91 NjQgZG8gaWYgY3ljbGVzX3QgaXMgdTMyPw0KU2hvdWxkIGl0IHNpbGwgYWxsIHdvcmssIGp1c3Qg bm90IG9wdGltaXplZD8NCg0KPiANCj4gPiArICAgICAgIGVhcmx5X3RzX29mZnNldCA9ICgoc3Rh cnRfY3ljbGVzICogZWFybHlfbXVsdCkgPj4gZWFybHlfc2hpZnQpIC0gc3RhcnRfbnM7DQo+ID4g KyAgICAgICBwcl9kZWJ1ZygiRWFybHkgcHJpbnRrIHRpbWVzOiBtdWx0PSV1LCBzaGlmdD0ldSwg b2Zmc2V0PSVsbHUgbnNcbiIsDQo+ID4gKyAgICAgICAgICAgICAgIGVhcmx5X211bHQsIGVhcmx5 X3NoaWZ0LCBlYXJseV90c19vZmZzZXQpOw0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gICAgICAg ICBpZiAocmFtZGlza19leGVjdXRlX2NvbW1hbmQpIHsNCj4gPiAgICAgICAgICAgICAgICAgcmV0 ID0gcnVuX2luaXRfcHJvY2VzcyhyYW1kaXNrX2V4ZWN1dGVfY29tbWFuZCk7DQo+ID4gICAgICAg ICAgICAgICAgIGlmICghcmV0KQ0KPiANCj4gR3J7b2V0amUsZWV0aW5nfXMsDQo+IA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICBHZWVydA0KPiANClRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHRoZSBy ZXZpZXcgYW5kIHN1Z2dlc3Rpb25zLiAgSSdtIGF3YXkgZnJvbSBteSBsYWIgZm9yIHRoZSBuZXh0 IHdlZWssDQpidXQgSSdkIHJlYWxseSBsaWtlIHRvIHRlc3QgdGhpcyBvbiBhIDMyLWJpdCBwbGF0 Zm9ybSB0aGF0IGhhcyBhbiBlYXJseSBjeWNsZS1jb3VudGVyIGF2YWlsYWJsZS4NCkknbGwgaGF2 ZSB0byBkbyBzb21lIHJlc2VhcmNoLiAgSSBoYXZlIHNvbWUgMzItYml0IHBsYXRmb3JtcyBpbiBt eSBsYWIsIGJ1dCBJJ20gbm90IHN1cmUgd2hpY2ggb25lcw0KaGF2ZSBlYXJseS1jeWNsZS1jb3Vu dGVyIHN1cHBvcnQuICAgRG8gYW55IG9mIHRoZSAzMi1iaXQgcGxhdGZvcm1zIHlvdSdyZSBmYW1p bGlhciB3aXRoIHN1cHBvcnQNCmVhcmx5IGN5Y2xlLWNvdW50ZXJzICAodGhhdCBpcywgY3ljbGUt Y291bnRlcnMgdGhhdCBhcmUgcnVubmluZyB3aGVuIHRoZSBrZXJuZWwgc3RhcnRzLCBhbmQgZG9u J3QNCm5lZWQgYW55IGtlcm5lbCBpbml0aWFsaXphdGlvbiBhdCBhbGwpPw0KIC0tIFRpbQ0KDQo=