RE: [PATCH v2] printk: fix zero-valued printk timestamps in early boot

"Bird, Tim" <[email protected]> Mon, 26 Jan 2026 16:52:57 +0000
Newsgroups org.kernel.vger.linux-embedded,org.kernel.vger.linux-kernel
Message-ID <MW5PR13MB5632FE304C7FA3D86309D6F1FD93A@MW5PR13MB5632.namprd13.prod.outlook.com>
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRnJhbmNlc2NvIFZhbGxh
IDxmcmFuY2VzY29AdmFsbGEuaXQ+DQo+IA0KPiBIaSBUaW0sDQo+IA0KPiBJIHRlc3RlZCB0aGlz
IGJvdGggb24gWDg2XzY0IFFFTVUgYW5kIG9uIGEgaS5NWDkzIChBUk02NCkgYW5kIGNhbg0KPiBj
b25maXJtIGl0IGlzIHdvcmtpbmcgYXMgZXhwZWN0ZWQuIEF1dG8tY2FsYyBvZiBjYWxpYnJhdGlv
biBkYXRhIGlzIGZhcg0KPiBiZXR0ZXIgdGhhbiB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJz
IGluIHYxLg0KPiANCj4gSXQgaXMgc2xpZ2h0bHkgY29uZnVzaW5nIHRvIHNlZSBhIHRpbWUgdmFs
dWUgcHJpbnRlZCB0byBzZXJpYWwgb3V0cHV0DQo+IGFuZCBhbm90aGVyIG9uZSBpbnNpZGUga21z
ZywgYnV0IHRoYXQncyBhIGh1bWFuIHRoaW5nIGFuZCBzaG91bGQgbm90DQo+IGNvbmZ1c2UgYW55
IHRvb2wuDQpBZ3JlZWQuICBJIHdhc24ndCB0b28gd29ycmllZCBhYm91dCBpdCwgYmVjYXVzZSBt
b3N0IHNlcmlvdXMgZGV2ZWxvcGVycyB3b3JraW5nDQpvbiBib290LXRpbWUgd2lsbCBub3QgYmUg
d2F0Y2hpbmcgZWFybHkgbWVzc2FnZXMgb3ZlciBzZXJpYWwgY29uc29sZS4gIChVc3VhbGx5IHRo
ZXkNCnVzZSAncXVpZXQnIG9yIHNvbWUgbG93ZXIgbG9nIGxldmVsKS4gIEJ1dCBvbiBxZW11LCBp
dCBkb2VzIGxvb2sgc3RyYW5nZSB0byBzZWUgMHMNCm9uIHRoZSBmaXJzdCBvdXRwdXQgc2VxdWVu
Y2UsIGFuZCB0aGVuIG5vbi16ZXJvZXMgd2hlbiB1c2luZyBkbWVzZyBsYXRlciBpbiB0aGUgc2Ft
ZQ0KYm9vdC4NCg0KSSBqdXN0IHJlYWxpemVkIHRob3VnaCwgdGhhdCBJIHNob3VsZCBnbyBiYWNr
IGFuZCBzZWUgaWYgdGhlcmUncyBhIGRpc2NvbnRpbnVpdHkgb24gdGhlIG91dHB1dCB2aWEgc2Vy
aWFsDQooYmVmb3JlIGFuZCBhZnRlciBjYWxpYnJhdGlvbiksIGFuZCBwb3NzaWJseSBwdXQgYSBu
b3RlIGFib3V0IHRoYXQgaW4gdGhlIGNvbmZpZyBkZXNjcmlwdGlvbi4NCg0KSSdsbCB0aGluayBh
Ym91dCB3aGF0IEkgY2FuIGRvIGhlcmUgdG8gcmVkdWNlIHRoZSBjb25mdXNpb24uDQoNCj4gDQo+
IFNvbWUgbm90ZXMgZm9sbG93Lg0KPiANCj4gT24gU2F0LCBKYW4gMjQsIDIwMjYgYXQgMTI6NDA6
MjdQTSAtMDcwMCwgVGltIEJpcmQgd3JvdGU6DQo+ID4gRHVyaW5nIGVhcmx5IGJvb3QsIHByaW50
ayB0aW1lc3RhbXBzIGFyZSByZXBvcnRlZCBhcyB6ZXJvIGJlZm9yZQ0KPiA+IGtlcm5lbCB0aW1l
a2VlcGluZyBzdGFydHMgKGUuZy4gYmVmb3JlIHRpbWVfaW5pdCgpKS4gIFRoaXMNCj4gPiBoaW5k
ZXJzIGJvb3QtdGltZSBvcHRpbWl6YXRpb24gZWZmb3J0cy4gIFRoaXMgcGVyaW9kIGlzIGFib3V0
IDQwMA0KPiA+IG1pbGxpc2Vjb25kcyBmb3IgbWFueSBjdXJyZW50IGRlc2t0b3AgYW5kIGVtYmVk
ZGVkIG1hY2hpbmVzDQo+ID4gcnVubmluZyBMaW51eC4NCj4gPg0KPiA+IEFkZCBzdXBwb3J0IHRv
IHNhdmUgY3ljbGVzIGR1cmluZyBlYXJseSBib290LCBhbmQgb3V0cHV0IGNvcnJlY3QNCj4gPiB0
aW1lc3RhbXAgdmFsdWVzIGFmdGVyIHRpbWVrZWVwaW5nIGlzIGluaXRpYWxpemVkLiAgZ2V0X2N5
Y2xlcygpDQo+ID4gaXMgb3BlcmF0aW9uYWwgb24gYXJtNjQgYW5kIHg4Nl82NCBmcm9tIGtlcm5l
bCBzdGFydC4gIEFkZCBjb2RlDQo+ID4gYW5kIHZhcmlhYmxlcyB0byBzYXZlIGNhbGlicmF0aW9u
IHZhbHVlcyB1c2VkIHRvIGxhdGVyIGNvbnZlcnQNCj4gPiBjeWNsZSBjb3VudHMgdG8gdGltZSB2
YWx1ZXMgaW4gdGhlIGVhcmx5IHByaW50a3MuICBBZGQgYSBjb25maWcNCj4gPiB0byBjb250cm9s
IHRoZSBmZWF0dXJlLg0KPiA+DQo+ID4gVGhpcyB5aWVsZHMgbm9uLXplcm8gdGltZXN0YW1wcyBm
b3IgcHJpbnRrcyBmcm9tIHRoZSB2ZXJ5IHN0YXJ0DQo+ID4gb2Yga2VybmVsIGV4ZWN1dGlvbi4g
IFRoZSB0aW1lc3RhbXBzIGFyZSByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YNCj4gPiB0aGUgYXJj
aGl0ZWN0dXJlLXNwZWNpZmllZCBjb3VudGVyIHVzZWQgaW4gZ2V0X2N5Y2xlcw0KPiA+IChlLmcu
IHRoZSBUU0Mgb24geDg2XzY0IGFuZCBjbnR2Y3RfZWwwIG9uIGFybTY0KS4NCj4gPg0KPiA+IEFs
bCB0aW1lc3RhbXBzIHJlZmxlY3QgdGltZSBmcm9tIHBvd2VyLW9uIGluc3RlYWQgb2YgdGltZSBm
cm9tDQo+ID4gdGhlIGtlcm5lbCdzIHRpbWVrZWVwaW5nIGluaXRpYWxpemF0aW9uLg0KPiA+DQo+
ID4gU2lnbmVkLW9mZi1ieTogVGltIEJpcmQgPHRpbS5iaXJkQHNvbnkuY29tPg0KPiA+IC0tLQ0K
PiA+IFYxIC0+IFYyDQo+ID4gICBSZW1vdmUgY2FsaWJyYXRpb24gQ09ORklHIHZhcnMNCj4gPiAg
IEFkZCAnZGVwZW5kcyBvbicgdG8gcmVzdHJpY3QgYXJjaGVzICh0byBoYW5kbGUgcHBjIGJ1ZykN
Cj4gPiAgIEFkZCBlYXJseV90c19vZmZzZXQgdG8gYXZvaWQgZGlzY29udGludWl0eQ0KPiA+ICAg
U2F2ZSBjeWNsZXMgaW4gdHNfbnNlYywgYW5kIGNvbnZlcnQgb24gb3V0cHV0DQo+ID4gICBNb3Zl
IGNvbmRpdGlvbmFsIGNvZGUgdG8gaW5jbHVkZSBmaWxlIChlYXJseV90aW1lcy5oKQ0KPiA+IC0t
LQ0KPiA+ICBpbmNsdWRlL2xpbnV4L2Vhcmx5X3RpbWVzLmggfCA0OCArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGluaXQvS2NvbmZpZyAgICAgICAgICAgICAgICB8
IDEyICsrKysrKysrKysNCj4gPiAgaW5pdC9tYWluLmMgICAgICAgICAgICAgICAgIHwgMjYgKysr
KysrKysrKysrKysrKysrKysNCj4gPiAga2VybmVsL3ByaW50ay9wcmludGsuYyAgICAgIHwgMTYg
KysrKysrKysrKystLQ0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCspLCAy
IGRlbGV0aW9ucygtKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9lYXJs
eV90aW1lcy5oDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lYXJseV90aW1l
cy5oIGIvaW5jbHVkZS9saW51eC9lYXJseV90aW1lcy5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2
NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjlkYzMxZWI0NDJjMg0KPiA+IC0tLSAvZGV2L251
bGwNCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L2Vhcmx5X3RpbWVzLmgNCj4gPiBAQCAtMCwwICsx
LDQ4IEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovDQo+ID4g
Kw0KPiA+ICsjaWZuZGVmIF9LRVJORUxfUFJJTlRLX0VBUkxZX1RJTUVTX0gNCj4gPiArI2RlZmlu
ZSBfS0VSTkVMX1BSSU5US19FQVJMWV9USU1FU19IDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8bGlu
dXgvdGltZXguaD4NCj4gPiArDQo+ID4gKyNpZiBkZWZpbmVkKENPTkZJR19FQVJMWV9QUklOVEtf
VElNRVMpDQo+ID4gK2V4dGVybiB1MzIgZWFybHlfbXVsdCwgZWFybHlfc2hpZnQ7DQo+ID4gK2V4
dGVybiB1NjQgZWFybHlfdHNfb2Zmc2V0Ow0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSB1NjQg
ZWFybHlfY3ljbGVzKHZvaWQpDQo+ID4gK3sNCj4gPiArCXJldHVybiAoKHU2NClnZXRfY3ljbGVz
KCkgfCAoMVVMTCA8PCA2MykpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW5saW5lIHU2
NCBhZGp1c3RfZWFybHlfdHModTY0IHRzKQ0KPiA+ICt7DQo+ID4gKwkvKiBIaWdoIGJpdCBtZWFu
cyB0cyBpcyBhIGN5Y2xlIGNvdW50ICovDQo+ID4gKwlpZiAodW5saWtlbHkodHMgJiAoMVVMTCA8
PCA2MykpKQ0KPiA+ICsJCS8qDQo+ID4gKwkJICogbWFzayBoaWdoIGJpdCBhbmQgY29udmVydCB0
byBucw0KPiA+ICsJCSAqIE5vdGUgdGhhdCBlYXJseV9tdWx0IG1heSBiZSAwLCBidXQgdGhhdCdz
IE9LIGJlY2F1c2UNCj4gPiArCQkgKiB3ZSdsbCBqdXN0IG11bHRpcGx5IGJ5IDAgYW5kIHJldHVy
biAwLiBUaGlzIHdpbGwNCj4gPiArCQkgKiBvbmx5IG9jY3VyIGlmIHdlJ3JlIG91dHB1dHRpbmcg
YSBwcmludGsgbWVzc2FnZQ0KPiA+ICsJCSAqIGJlZm9yZSB0aGUgY2FsaWJyYXRpb24gb2YgdGhl
IGVhcmx5IHRpbWVzdGFtcC4NCj4gPiArCQkgKiBBbnkgb3V0cHV0IGFmdGVyIHVzZXIgc3BhY2Ug
c3RhcnQgKGVnLiBmcm9tIGRtZXNnIG9yDQo+ID4gKwkJICogam91cm5hbGN0bCkgd2lsbCBzaG93
IGNvcnJlY3QgdmFsdWVzLg0KPiA+ICsJCSAqLw0KPiA+ICsJCXJldHVybiAoKCh0cyAmIH4oMVVM
TCA8PCA2MykpICogZWFybHlfbXVsdCkgPj4gZWFybHlfc2hpZnQpOw0KPiA+ICsNCj4gPiArCS8q
IElmIHRpbWVzdGFtcCBpcyBhbHJlYWR5IGluIG5zLCBqdXN0IGFkZCBvZmZzZXQgKi8NCj4gPiAr
CXJldHVybiB0cyArIGVhcmx5X3RzX29mZnNldDsNCj4gPiArfQ0KPiA+ICsjZWxzZQ0KPiA+ICtz
dGF0aWMgaW5saW5lIHU2NCBlYXJseV9jeWNsZXModm9pZCkNCj4gPiArew0KPiA+ICsJcmV0dXJu
IDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbmxpbmUgdTY0IGFkanVzdF9lYXJseV90
cyh1NjQgdHMpDQo+ID4gK3sNCj4gPiArCXJldHVybiB0czsNCj4gPiArfQ0KPiA+ICsjZW5kaWYg
LyogQ09ORklHX0VBUkxZX1BSSU5US19USU1FUyAqLw0KPiA+ICsNCj4gPiArI2VuZGlmIC8qIF9L
RVJORUxfUFJJTlRLX0VBUkxZX1RJTUVTX0ggKi8NCj4gPiArDQo+ID4gZGlmZiAtLWdpdCBhL2lu
aXQvS2NvbmZpZyBiL2luaXQvS2NvbmZpZw0KPiA+IGluZGV4IGZhNzlmZWI4ZmU1Ny4uMDYwYTIy
Y2RkZDE3IDEwMDY0NA0KPiA+IC0tLSBhL2luaXQvS2NvbmZpZw0KPiA+ICsrKyBiL2luaXQvS2Nv
bmZpZw0KPiA+IEBAIC03NzcsNiArNzc3LDE4IEBAIGNvbmZpZyBJS0hFQURFUlMNCj4gPiAgCSAg
b3Igc2ltaWxhciBwcm9ncmFtcy4gIElmIHlvdSBidWlsZCB0aGUgaGVhZGVycyBhcyBhIG1vZHVs
ZSwgYSBtb2R1bGUgY2FsbGVkDQo+ID4gIAkgIGtoZWFkZXJzLmtvIGlzIGJ1aWx0IHdoaWNoIGNh
biBiZSBsb2FkZWQgb24tZGVtYW5kIHRvIGdldCBhY2Nlc3MgdG8gaGVhZGVycy4NCj4gPg0KPiA+
ICtjb25maWcgRUFSTFlfUFJJTlRLX1RJTUVTDQo+ID4gKwlib29sICJTaG93IG5vbi16ZXJvIHBy
aW50ayB0aW1lc3RhbXBzIGVhcmx5IGluIGJvb3QiDQo+ID4gKwlkZWZhdWx0IHkNCj4gDQo+IENv
bnNpZGVyaW5nIHRoYXQgdGhpcyBtaWdodCBoYXZlIGEgc2lnbmlmaWNhbnQgaW1wYWN0IG9uIG1v
bml0b3JpbmcNCj4gbWVjaGFuaXNtcyBhbHJlYWR5IGluIHBsYWNlICh0aGF0IGUuZy4gZXhwZWN0
IGEgc3BlY2lmaWMgZG1lc2cgcHJpbnQgdG8NCj4gaGF2ZSBhIG1heGltdW0gYXNzb2NpYXRlZCB0
aW1lIHZhbHVlKSwgcGxlYXNlIGNvbnNpZGVyIGEgTiBkZWZhdWx0IGhlcmUuDQoNCk9vcHMhICBT
b3JyeSwgdGhhdCB3YXMgc3VwcG9zZWQgdG8gYmUgJ2RlZmF1bHQgbicuICBZb3UncmUgcmlnaHQu
ICBJIGtub3cgSSBoYWQNCnRoaXMgYXMgZGVmYXVsdCBOLCBhbmQgSSB0aGluayBJIHN3aXRjaGVk
IGl0IHRlbXBvcmFyaWx5IGZvciB0ZXN0aW5nLCBhbmQgZm9yZ290DQp0byBzd2l0Y2ggaXQgYmFj
ayAoYW5kIG5ldmVyIGNhdWdodCBpdCB0aGUgbnVtZXJvdXMgdGltZXMgSSByZXZpZXdlZCB0aGUN
CnBhdGNoIGJlZm9yZSBzZW5kaW5nIGl0IG91dCBhZ2FpbiwgdWdoKS4gIFRoYW5rcyBmb3IgY2F0
Y2hpbmcgdGhpcy4NCg0KSWYgcGVvcGxlIGxpa2UgdGhpcywgYW5kIHdlIGRvbid0IHNlZSBhbnkg
cHJvYmxlbXMgd2l0aCB0b29saW5nIG9yIHZpcnR1YWxpemF0aW9uLCBJDQpjb3VsZCBzZWUgaXQg
c3dpdGNoaW5nIHRvIGRlZmF1bHQgWSBpbiB0aGUgZnV0dXJlLiAgQnV0IGZvciBub3cgdGhpcyBz
aG91bGQgZGVmaW5pdGVseQ0KYmUgJ2RlZmF1bHQgbicuDQoNCj4gDQo+ID4gKwlkZXBlbmRzIG9u
IFBSSU5USw0KPiA+ICsJZGVwZW5kcyBvbiBBUk02NCB8fCBYODZfNjQNCj4gPiArCWhlbHANCj4g
PiArCSAgVXNlIGEgY3ljbGUtY291bnRlciB0byBwcm92aWRlIHByaW50ayB0aW1lc3RhbXBzIGR1
cmluZw0KPiA+ICsJICBlYXJseSBib290LiAgVGhpcyBhbGxvd3Mgc2VlaW5nIHRpbWVzdGFtcHMg
Zm9yIHByaW50a3MgdGhhdA0KPiA+ICsJICB3b3VsZCBvdGhlcndpc2Ugc2hvdyBhcyAwLiAgTm90
ZSB0aGF0IHRoaXMgd2lsbCBzaGlmdCB0aGUNCj4gPiArCSAgcHJpbnRrIHRpbWVzdGFtcHMgdG8g
YmUgcmVsYXRpdmUgdG8gbWFjaGluZSBwb3dlciBvbiwgaW5zdGVhZA0KPiA+ICsJICBvZiByZWxh
dGl2ZSB0byB0aGUgc3RhcnQgb2Yga2VybmVsIHRpbWVrZWVwaW5nLg0KPiA+ICsNCj4gDQo+IFRv
IGJlIHByZWNpc2UsIHRoZSB0aW1lc3RhbXBzIHdpbGwgYmUgcmVsYXRpdmUgdG8gcHJvY2Vzc29y
IHBvd2VyIG9uOw0KPiB0aGUgbWFjaGluZSBtaWdodCBoYXZlIHNvbWUgb3RoZXIgcHJvY2Vzc29y
cyB0aGF0IHJ1biBiZWZvcmUgdGhlIExpbnV4DQo+IG9uZSAodGhpcyBpcyB0aGUgY2FzZSBmb3Ig
ZXhhbXBsZSBvZiBpLk1YOSBvciBBTTYyIFNvQ3MpIGFuZCB3aWxsIGJlDQo+IHVuYWNjb3VudGVk
IGZvciBldmVuIGJ5IHRoaXMgbWVjaGFuaXNtLg0KDQpHb29kIHBvaW50LiAgIEV2ZW4gbW9yZSBw
cmVjaXNlbHksIGl0IHdpbGwgYmUgcmVsYXRpdmUgdG8NCmN5Y2xlLWNvdW50ZXIgdmFsdWUgaW5p
dGlhbGl6YXRpb24gb3IgcmVzZXQsIHdoaWNoIG9mdGVuIChidXQgbm90IGFsd2F5cykNCmNvcnJl
c3BvbmRzIHRvIHByb2Nlc3NvciBwb3dlciBvbi4NCg0KSSdsbCBhZGp1c3QgdGhlIHdvcmRpbmcu
DQoNCkknbSBzdGlsbCBhIGJpdCB1bnN1cmUgd2hhdCBoYXBwZW5zIGluIHRoZSB2aXJ0dWFsaXph
dGlvbiBjYXNlLiAgcWVtdSBzZWVtcyB0byBpbml0aWFsaXplDQp0aGUgVFNDIGF0IHFlbXUgc3Rh
cnQsIGJ1dCBJJ20gbm90IHN1cmUgd2hhdCBoYXBwZW5zIGZvciBlLmcuIGNsaWVudCBWTXMgb24g
Y2xvdWQgc2VydmVycy4NCg0KPiANCj4gPiAgY29uZmlnIExPR19CVUZfU0hJRlQNCj4gPiAgCWlu
dCAiS2VybmVsIGxvZyBidWZmZXIgc2l6ZSAoMTYgPT4gNjRLQiwgMTcgPT4gMTI4S0IpIg0KPiA+
ICAJcmFuZ2UgMTIgMjUNCj4gPiBkaWZmIC0tZ2l0IGEvaW5pdC9tYWluLmMgYi9pbml0L21haW4u
Yw0KPiA+IGluZGV4IGI4NDgxOGFkOTY4NS4uY2MxYWYyNjkzM2Y3IDEwMDY0NA0KPiA+IC0tLSBh
L2luaXQvbWFpbi5jDQo+ID4gKysrIGIvaW5pdC9tYWluLmMNCj4gPiBAQCAtMTA0LDYgKzEwNCw5
IEBADQo+ID4gICNpbmNsdWRlIDxsaW51eC9waWRmcy5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgv
cHRkdW1wLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC90aW1lX25hbWVzcGFjZS5oPg0KPiA+ICsj
aW5jbHVkZSA8bGludXgvdGltZXguaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3NjaGVkL2Nsb2Nr
Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9lYXJseV90aW1lcy5oPg0KPiA+ICAjaW5jbHVkZSA8
bmV0L25ldF9uYW1lc3BhY2UuaD4NCj4gPg0KPiA+ICAjaW5jbHVkZSA8YXNtL2lvLmg+DQo+ID4g
QEAgLTE2MCw2ICsxNjMsMTAgQEAgc3RhdGljIHNpemVfdCBpbml0YXJnc19vZmZzOw0KPiA+ICAj
IGRlZmluZSBpbml0YXJnc19vZmZzIDANCj4gPiAgI2VuZGlmDQo+ID4NCj4gPiArI2lmZGVmIENP
TkZJR19FQVJMWV9QUklOVEtfVElNRVMNCj4gPiArc3RhdGljIHU2NCBzdGFydF9jeWNsZXMsIHN0
YXJ0X25zOw0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gIHN0YXRpYyBjaGFyICpleGVjdXRlX2Nv
bW1hbmQ7DQo+ID4gIHN0YXRpYyBjaGFyICpyYW1kaXNrX2V4ZWN1dGVfY29tbWFuZCA9ICIvaW5p
dCI7DQo+ID4NCj4gPiBAQCAtMTExOCw2ICsxMTI1LDExIEBAIHZvaWQgc3RhcnRfa2VybmVsKHZv
aWQpDQo+ID4gIAl0aW1la2VlcGluZ19pbml0KCk7DQo+ID4gIAl0aW1lX2luaXQoKTsNCj4gPg0K
PiA+ICsjaWZkZWYgQ09ORklHX0VBUkxZX1BSSU5US19USU1FUw0KPiA+ICsJc3RhcnRfY3ljbGVz
ID0gZ2V0X2N5Y2xlcygpOw0KPiA+ICsJc3RhcnRfbnMgPSBsb2NhbF9jbG9jaygpOw0KPiA+ICsj
ZW5kaWYNCj4gPiArDQo+IA0KPiBJIHdhcyB3b25kZXJpbmcgaXQgaXQgd291bGRuJ3QgbWFrZSBt
b3JlIHNlbnNlIHRvIG1vdmUgdGhpcyBsb2dpYyB0byBpdHMNCj4gb3duIGZpbGUsIGFuZCBoYXZl
IGEgcGxhaW4gY2FsbCBlLmcuIHRvIGVhcmx5X3RpbWVzX2luaXQoKSBoZXJlDQo+IChjb250aW51
ZS4uLikNCj4gDQo+ID4gIAkvKiBUaGlzIG11c3QgYmUgYWZ0ZXIgdGltZWtlZXBpbmcgaXMgaW5p
dGlhbGl6ZWQgKi8NCj4gPiAgCXJhbmRvbV9pbml0KCk7DQo+ID4NCj4gPiBAQCAtMTYwMCw2ICsx
NjEyLDIwIEBAIHN0YXRpYyBpbnQgX19yZWYga2VybmVsX2luaXQodm9pZCAqdW51c2VkKQ0KPiA+
DQo+ID4gIAlkb19zeXNjdGxfYXJncygpOw0KPiA+DQo+ID4gKyNpZmRlZiBDT05GSUdfRUFSTFlf
UFJJTlRLX1RJTUVTDQo+ID4gKwl1NjQgZW5kX2N5Y2xlcywgZW5kX25zOw0KPiA+ICsNCj4gPiAr
CS8qIHNldCBjYWxpYnJhdGlvbiBkYXRhIGZvciBlYXJseV9wcmludGtfdGltZXMgKi8NCj4gPiAr
CWVuZF9jeWNsZXMgPSBnZXRfY3ljbGVzKCk7DQo+ID4gKwllbmRfbnMgPSBsb2NhbF9jbG9jaygp
Ow0KPiA+ICsJY2xvY2tzX2NhbGNfbXVsdF9zaGlmdCgmZWFybHlfbXVsdCwgJmVhcmx5X3NoaWZ0
LA0KPiA+ICsJCSgoZW5kX2N5Y2xlcyAtIHN0YXJ0X2N5Y2xlcykgKiBOU0VDX1BFUl9TRUMpLyhl
bmRfbnMgLSBzdGFydF9ucyksDQo+ID4gKwkJTlNFQ19QRVJfU0VDLCA1MCk7DQo+ID4gKwllYXJs
eV90c19vZmZzZXQgPSAoKHN0YXJ0X2N5Y2xlcyAqIGVhcmx5X211bHQpID4+IGVhcmx5X3NoaWZ0
KSAtIHN0YXJ0X25zOw0KPiA+ICsJcHJfZGVidWcoIkVhcmx5IHByaW50ayB0aW1lczogbXVsdD0l
dSwgc2hpZnQ9JXUsIG9mZnNldD0lbGx1IG5zXG4iLA0KPiA+ICsJCWVhcmx5X211bHQsIGVhcmx5
X3NoaWZ0LCBlYXJseV90c19vZmZzZXQpOw0KPiA+ICsjZW5kaWYNCj4gPiArDQo+IA0KPiAoLi4u
Y29udGludWUpIGFuZCB0byBlYXJseV90aW1lc19jYWxjKCkgb3Igc29tZXRoaW5nIGxpa2UgdGhh
dCBoZXJlLg0KPiANCj4gSW4gdGhpcyB3YXksIGFsbCByZWxhdGVkIHZhcmlhYmxlcyAoaS5lLjog
c3RhcnRfY3ljbGVzLCBzdGFydF9ucyBmcm9tDQo+IHRoaXMgZmlsZSwgYnV0IGFsc28gZWFybHlf
bXVsdCwgZWFybHlfc2hpZnQsIGFuZCBlYXJseV90c19vZmZzZXQgZnJvbQ0KPiBrZXJuZWwvcHJp
bnRrL3ByaW50ay5jKSBjYW4gYmUgY29uZmluZWQgdG8gdGhlaXIgb3duIGZpbGUgYW5kIG5vdCBh
ZGQNCj4gbm9pc2UgaGVyZS4NCg0KSSB0aG91Z2h0IGEgbG90IGFib3V0IHRoaXMsIGFuZCB3YXNu
J3Qgc3VyZSB3aGV0aGVyIHRvIHVzZSB0aGF0IGFwcHJvYWNoIG9yDQpub3QuICBJIHdvdWxkIG5l
ZWQgdHdvIHJvdXRpbmVzOiBlYXJseV90aW1lc19zdGFydF9jYWxpYnJhdGlvbiwgYW5kDQplYXJs
eV90aW1lc19maW5pc2hfY2FsaWJyYXRpb24oKS4gIEkgYWdyZWUgd2l0aCB0aGUgaWRlYSBvZiBr
ZWVwaW5nDQphbGwgdmFyaWFibGVzIGluIHRoZSBwcmludGsgbW9kdWxlLCBzbyB0aGlzIGlzIG1v
cmUgc2VsZi1jb250YWluZWQuICBJdCBhbHNvDQpyZWR1Y2VzIHRoZSBudW1iZXIgb2YgdmlzaWJs
ZSAjaWZkZWZzLg0KDQpJIHRoaW5rIEknbGwgZ28gYWhlYWQgYW5kIGRvIHRoaXMsIGFuZCBzZWUg
d2hhdCB0aGUgY29kZSBsb29rcyBsaWtlLiBJIHN1c3BlY3QNCnRoYXQgd2hhdCB5b3UgcmVjb21t
ZW5kIGlzIHRoZSBiZXR0ZXIgd2F5IHRvIGdvLg0KDQo+IA0KPiA+ICAJaWYgKHJhbWRpc2tfZXhl
Y3V0ZV9jb21tYW5kKSB7DQo+ID4gIAkJcmV0ID0gcnVuX2luaXRfcHJvY2VzcyhyYW1kaXNrX2V4
ZWN1dGVfY29tbWFuZCk7DQo+ID4gIAkJaWYgKCFyZXQpDQo+ID4gZGlmZiAtLWdpdCBhL2tlcm5l
bC9wcmludGsvcHJpbnRrLmMgYi9rZXJuZWwvcHJpbnRrL3ByaW50ay5jDQo+ID4gaW5kZXggMWQ3
NjVhZDI0MmI4Li5mMTc4NzczMzc3MzUgMTAwNjQ0DQo+ID4gLS0tIGEva2VybmVsL3ByaW50ay9w
cmludGsuYw0KPiA+ICsrKyBiL2tlcm5lbC9wcmludGsvcHJpbnRrLmMNCj4gPiBAQCAtNDYsNiAr
NDYsNyBAQA0KPiA+ICAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4NCj4gPiAgI2luY2x1ZGUgPGxp
bnV4L3Vpby5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvc2NoZWQvY2xvY2suaD4NCj4gPiArI2lu
Y2x1ZGUgPGxpbnV4L2Vhcmx5X3RpbWVzLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9zY2hlZC9k
ZWJ1Zy5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvc2NoZWQvdGFza19zdGFjay5oPg0KPiA+ICAj
aW5jbHVkZSA8bGludXgvcGFuaWMuaD4NCj4gPiBAQCAtNzUsNiArNzYsMTEgQEAgRVhQT1JUX1NZ
TUJPTChpZ25vcmVfY29uc29sZV9sb2NrX3dhcm5pbmcpOw0KPiA+DQo+ID4gIEVYUE9SVF9UUkFD
RVBPSU5UX1NZTUJPTF9HUEwoY29uc29sZSk7DQo+ID4NCj4gPiArI2lmZGVmIENPTkZJR19FQVJM
WV9QUklOVEtfVElNRVMNCj4gPiArdTMyIGVhcmx5X211bHQsIGVhcmx5X3NoaWZ0Ow0KPiA+ICt1
NjQgZWFybHlfdHNfb2Zmc2V0Ow0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gIC8qDQo+ID4gICAq
IExvdyBsZXZlbCBkcml2ZXJzIG1heSBuZWVkIHRoYXQgdG8ga25vdyBpZiB0aGV5IGNhbiBzY2hl
ZHVsZSBpbg0KPiA+ICAgKiB0aGVpciB1bmJsYW5rKCkgY2FsbGJhY2sgb3Igbm90LiBTbyBsZXQn
cyBleHBvcnQgaXQuDQo+ID4gQEAgLTYzOSw3ICs2NDUsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRf
Y2hhcihjaGFyICoqcHAsIGNoYXIgKmUsIGNoYXIgYykNCj4gPiAgc3RhdGljIHNzaXplX3QgaW5m
b19wcmludF9leHRfaGVhZGVyKGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsDQo+ID4gIAkJCQkgICAg
IHN0cnVjdCBwcmludGtfaW5mbyAqaW5mbykNCj4gPiAgew0KPiA+IC0JdTY0IHRzX3VzZWMgPSBp
bmZvLT50c19uc2VjOw0KPiA+ICsJdTY0IHRzX3VzZWMgPSBhZGp1c3RfZWFybHlfdHMoaW5mby0+
dHNfbnNlYyk7DQo+ID4gIAljaGFyIGNhbGxlclsyMF07DQo+ID4gICNpZmRlZiBDT05GSUdfUFJJ
TlRLX0NBTExFUg0KPiA+ICAJdTMyIGlkID0gaW5mby0+Y2FsbGVyX2lkOw0KPiA+IEBAIC0xMzUy
LDcgKzEzNTgsMTEgQEAgc3RhdGljIHNpemVfdCBwcmludF9zeXNsb2codW5zaWduZWQgaW50IGxl
dmVsLCBjaGFyICpidWYpDQo+ID4NCj4gPiAgc3RhdGljIHNpemVfdCBwcmludF90aW1lKHU2NCB0
cywgY2hhciAqYnVmKQ0KPiA+ICB7DQo+ID4gLQl1bnNpZ25lZCBsb25nIHJlbV9uc2VjID0gZG9f
ZGl2KHRzLCAxMDAwMDAwMDAwKTsNCj4gPiArCXVuc2lnbmVkIGxvbmcgcmVtX25zZWM7DQo+ID4g
Kw0KPiA+ICsJdHMgPSBhZGp1c3RfZWFybHlfdHModHMpOw0KPiA+ICsNCj4gPiArCXJlbV9uc2Vj
ID0gZG9fZGl2KHRzLCAxMDAwMDAwMDAwKTsNCj4gPg0KPiA+ICAJcmV0dXJuIHNwcmludGYoYnVm
LCAiWyU1bHUuJTA2bHVdIiwNCj4gPiAgCQkgICAgICAgKHVuc2lnbmVkIGxvbmcpdHMsIHJlbV9u
c2VjIC8gMTAwMCk7DQo+ID4gQEAgLTIyNDIsNiArMjI1Miw4IEBAIGludCB2cHJpbnRrX3N0b3Jl
KGludCBmYWNpbGl0eSwgaW50IGxldmVsLA0KPiA+ICAJICogdGltZXN0YW1wIHdpdGggcmVzcGVj
dCB0byB0aGUgY2FsbGVyLg0KPiA+ICAJICovDQo+ID4gIAl0c19uc2VjID0gbG9jYWxfY2xvY2so
KTsNCj4gPiArCWlmICghdHNfbnNlYykNCj4gPiArCQl0c19uc2VjID0gZWFybHlfY3ljbGVzKCk7
DQo+ID4NCj4gPiAgCWNhbGxlcl9pZCA9IHByaW50a19jYWxsZXJfaWQoKTsNCj4gPg0KPiA+IC0t
DQo+ID4gMi40My4wDQo+ID4NCj4gDQo+IFJlZ2FyZHMsDQo+IEZyYW5jZXNjbw0KDQpUaGFua3Mg
dmVyeSBtdWNoIGZvciB0aGUgcmV2aWV3IGFuZCB0ZXN0ISENCiAtLSBUaW0NCg0K