Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vZ2fB-0028Nc-0u for pgpool-hackers@arkaria.postgresql.org; Fri, 26 Dec 2025 07:55:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vZ2f9-008qXO-0L for pgpool-hackers@arkaria.postgresql.org; Fri, 26 Dec 2025 07:55:03 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vZ2f8-008qXG-1x for pgpool-hackers@lists.postgresql.org; Fri, 26 Dec 2025 07:55:03 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vZ2f6-002g76-02 for pgpool-hackers@lists.postgresql.org; Fri, 26 Dec 2025 07:55:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Transfer-Encoding:Content-Type: Mime-Version:References:In-Reply-To:From:Subject:Cc:To:Message-Id:Date:Sender :Reply-To:Content-ID:Content-Description; bh=dCRkxPADdBATQyCbKwbXssI2VLB0fnBrzaIi0J3OrEE=; b=uQparYlm39de0nxkAQLu0SmAKW vF4wnVktDTnpBqFqtd5GK4CcMr9wlSrHj9g4uIqI20xnmWV0sAmW+KQd+ZBZoy9bFVrcNv2ow1X7V 8k/iyHoo8fzzte5Vq05f7vgLM9fyOoRDeOU27jv1j4Z1J+loUFy+Bd+YpCCRHGIXmlqB0eUQbcIsd 0jM0kx+Q+p52qpaUH1xomUzpQQehsHiM00HyaLXEj2uLJuHLLikdE8ZZrzZUXVGh8nA1JvGPXF7wJ CpRkYqUbdZtxoVcW32+9Ne48fqU6eUR18O0fYPiBsqWOxu9fjJ2KjiwkP7v532d1+BVGnCjKasxEV lUy9FFJw==; Received: from [2409:11:4120:300:a00a:b419:51f1:fc19] (helo=localhost) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vZ2f1-0062wD-1u; Fri, 26 Dec 2025 07:54:58 +0000 Date: Fri, 26 Dec 2025 16:54:46 +0900 (JST) Message-Id: <20251226.165446.148265507050550257.ishii@postgresql.org> To: nadav@tailorbrands.com Cc: pgpool-hackers@lists.postgresql.org Subject: Re: Proposal: recent access based routing for primary-replica setups From: Tatsuo Ishii In-Reply-To: References: <20251223.174625.653233061559427537.ishii@postgresql.org> X-Mailer: Mew version 6.8 on Emacs 29.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Fri_Dec_26_16_54_46_2025_229)--" Content-Transfer-Encoding: 7bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:11:4120:300:a00a:b419:51f1:fc19 (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ----Next_Part(Fri_Dec_26_16_54_46_2025_229)-- Content-Type: Text/Plain; charset=utf-8 Content-Transfer-Encoding: base64 SGkgTmFkYXYsDQoNCihQbGVhc2UgZGlzcmVnYXJkIHByZXZpb3VzIG1haWwuIEkgc2VlbSB0byBo YXZlIG1hbmdsZWQgdGhlIG1lc3NhZ2UpLg0KDQpJIHRoaW5rIEkgZm91bmQgYSBjYXVzZSBvZiB0 aGUgcHJvYmxlbS4gT24gTGludXgsIGlmIFNJR0NITEQgaXMNCmlnbm9yZWQgKHNldCB0byBTSUdf SUdOKSwgd2FpdHBpZCgpIGNhbm5vdCBnZXQgcHJvcGVyIGNoaWxkIHN0YXR1cy4NCkJlY2F1c2Ug dGhlIGtlcm5lbCByZWxjYWltcyB0aGUgcmVzb3VyY2UgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRv IG5vdA0KbWFrZSB0aGUgY2hpbGQgcHJvY2VzcyBhIHpvbWJpZS4gQW5kIHRoaXMgbWFrZXMgd2Fp dHBpZCgpIHRvIGZhaWwgd2l0aA0KRUNITEQuIFNpbmNlIHRoZSByZXR1cm4gb2Ygd2FpdHBpZCgp IGlzIG5vdCBjaGVja2VkLCBJIGRpZCBub3Qgbm90aWNlDQp0aGUgd2FpdHBpZCgpIGZhaWx1cmUg KEkgcmVjb21tZW5kIHRvIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YNCndhaXRwaWQoKSkuDQoN CgkvKiBzZXQgdXAgc2lnbmFsIGhhbmRsZXJzICovDQoJc2lnbmFsKFNJR0FMUk0sIFNJR19ERkwp Ow0KCXNpZ25hbChTSUdURVJNLCBteV9zaWduYWxfaGFuZGxlcik7DQoJc2lnbmFsKFNJR0lOVCwg bXlfc2lnbmFsX2hhbmRsZXIpOw0KCXNpZ25hbChTSUdIVVAsIHJlbG9hZF9jb25maWdfaGFuZGxl cik7DQoJc2lnbmFsKFNJR1FVSVQsIG15X3NpZ25hbF9oYW5kbGVyKTsNCglzaWduYWwoU0lHQ0hM RCwgU0lHX0lHTik7CTwtLS0gU0lHQ0hMRCBpcyBpZ25vcmVkDQoJc2lnbmFsKFNJR1VTUjEsIG15 X3NpZ25hbF9oYW5kbGVyKTsNCglzaWduYWwoU0lHVVNSMiwgU0lHX0lHTik7DQoJc2lnbmFsKFNJ R1BJUEUsIFNJR19JR04pOw0KDQpUbyBmaXggdGhpcywgZWl0aGVyIGNoYW5nZSB0aGUgbGluZSBh Ym92ZSB0bzoNCg0KCXNpZ25hbChTSUdDSExELCBTSUdfREZMKTsNCm9yDQoJc2lnbmFsKFNJR0NI TEQsIG15X3NpZ25hbF9oYW5kbGVyKTsNCglhbmQgbW9kaWZ5IG15X3NpZ25hbF9oYW5kbGVyLg0K DQpJIHJlY29tbWVuZCB0aGUgbGF0dGVyLCBiZWNhdXNlIGl0IGRvZXMgbm90IGRlcGVuZCBvbiB0 aGUgZGVmYXVsdA0KYmVoYXZpb3Igb2YgU0lHQ0hMRCwgd2hpY2ggbWlnaHQgYmUgZGlmZmVyZW50 IHBlciBwbGF0Zm9ybS4NCkF0dGFjaGVkIGlzIHRoZSBwYXRjaCB0byBkbyB0aGlzLiAoYW5kIHJ1 biBwZ2luZGVudCkuDQpJIGFsc28gbm90aWNlIHRoYXQgc29tZXRoaW5nIGxpa2U6DQoNCgkJLyog Q291bnQgdG9rZW5zIGluIG91dHB1dCBmb3IgdmFsaWRhdGlvbiAqLw0KCQljaGFyICpsaW5lX2Nv cHkgPSBwc3RyZHVwKGxpbmUpOw0KCQljaGFyICp0ZW1wX3Rva2VuID0gc3RydG9rKGxpbmVfY29w eSwgIiBcdFxuIik7DQoNCllvdSBzaG91bGQgZGVjbGFyZSBsaW5lX2NvcHkgYW5kIHRlbXBfdG9r ZW4gaW4gdGhlIGJlZ2dpbmcgb2YgdGhlIGNvZGUNCmJsb2NrIChvciBpbiB0aGUgb3V0ZXIgYmxv Y2spLiAgVGhlIGZvcndhcmQgZGVjbGFyYXRpb24gaXMgcmVjb21tZW5kZWQNCmNvZGluZyBzdHls ZSBpbiBQZ3Bvb2wtSUkgKGFuZCBQb3N0Z3JlU1FMKS4gU2FtZSB0aGluZyBjYW4gYmUgc2FpZCB0 bw0Kc29tZSBvdGhlciB2YXJpYWJsZXMuDQoNCkJlc3QgcmVnYXJkcywNCi0tDQpUYXRzdW8gSXNo aWkNClNSQSBPU1MgSy5LLg0KRW5nbGlzaDogaHR0cDovL3d3dy5zcmFvc3MuY28uanAvaW5kZXhf ZW4vDQpKYXBhbmVzZTpodHRwOi8vd3d3LnNyYW9zcy5jby5qcA0KDQo+IEhpIFRhdHN1bywNCj4g DQo+IFRoYW5rIHlvdSBmb3IgdGhlIG5vdGUuDQo+IA0KPiBJJ3ZlIHJlbW92ZWQgdGhlIGRvY2tl ciBzdHVmZi4gc3RhcnRlZCB3b3JraW5nIGluIGFuIHVidW50dSAyNCBWTSB0byBtYXRjaA0KPiB0 aGUgc2V0dXAuIGhvcGVmdWxseSB0aGUgcmVzdWx0cyB3aWxsIGJlIGJldHRlciwgaGFkIHNvIG1h bnkgaXNzdWVzDQo+IGNvbXBpbGluZyBhbmQgdGVzdGluZyBiZWZvcmUgdGhhdCBzdHVmZiB3YXNu J3QgcHJvcGVybHkgZm9ybXVsYXRlZC4NCj4gDQo+IEF0dGFjaGluZyB0aGUgbGF0ZXN0IHBhdGNo Lg0KPiANCj4gdGhpcyBpcyB3aGF0IGknbSBzZWVpbmc6DQo+IGFkYXZAbGltYS1kZXY6L3NyYy9w Z3Bvb2wyL3NyYy90ZXN0L3JlZ3Jlc3Npb24kIFBHSE9TVD0vdG1wIC4vcmVncmVzcy5zaCAtcA0K PiAvdXNyL2JpbiAwNDEuZXh0ZXJuYWxfcmVwbGljYXRpb25fZGVsYXkNCj4gY3JlYXRpbmcgcGdw b29sLUlJIHRlbXBvcmFyeSBpbnN0YWxsYXRpb24gLi4uDQo+IG1vdmluZyBwZ3Bvb2xfc2V0dXAg dG8gdGVtcG9yYXJ5IGluc3RhbGxhdGlvbiBwYXRoIC4uLg0KPiBtb3Zpbmcgd2F0Y2hkb2dfc2V0 dXAgdG8gdGVtcG9yYXJ5IGluc3RhbGxhdGlvbiBwYXRoIC4uLg0KPiB1c2luZyBwZ3Bvb2wtSUkg YXQgL3NyYy9wZ3Bvb2wyL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVtcC9pbnN0YWxsZWQNCj4gKioq KioqKioqKioqKioqKioqKioqKioqKg0KPiBSRUdSRVNTSU9OIE1PREUgICAgICAgICAgOiBpbnN0 YWxsDQo+IFBncG9vbC1JSSB2ZXJzaW9uICAgICAgICA6IHBncG9vbC1JSSB2ZXJzaW9uIDQuOGRl dmVsIChtaXRzdWtha2Vib3NoaSkNCj4gUGdwb29sLUlJIGluc3RhbGwgcGF0aCAgIDogL3NyYy9w Z3Bvb2wyL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVtcC9pbnN0YWxsZWQNCj4gUG9zdGdyZVNRTCBi aW4gICAgICAgICAgIDogL3Vzci9saWIvcG9zdGdyZXNxbC8xNi9iaW4NCj4gUG9zdGdyZVNRTCBN YWpvciB2ZXJzaW9uIDogMTYNCj4gcGdiZW5jaCAgICAgICAgICAgICAgICAgIDogL3Vzci9saWIv cG9zdGdyZXNxbC8xNi9iaW4vcGdiZW5jaA0KPiBQb3N0Z3JlU1FMIGpkYmMgICAgICAgICAgOg0K PiAvdXNyL2xvY2FsL3Bnc3FsL3NoYXJlL3Bvc3RncmVzcWwtOS4yLTEwMDMuamRiYzQuamFyDQo+ ICoqKioqKioqKioqKioqKioqKioqKioqKioNCj4gdGVzdGluZyAwNDEuZXh0ZXJuYWxfcmVwbGlj YXRpb25fZGVsYXkuLi5vay4NCj4gb3V0IG9mIDEgb2s6MSBmYWlsZWQ6MCB0aW1lb3V0OjANCj4g DQo+IA0KPiANCj4gT24gVHVlLCBEZWMgMjMsIDIwMjUgYXQgMTA6NDbigK9BTSBUYXRzdW8gSXNo aWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPiB3cm90ZToNCj4gDQo+PiA+IEhpIFRhdHN1bywNCj4+ ID4NCj4+ID4gSSdrbSBydW5uaW5nIGludG8gaXNzdWVzIHRlc3RpbmcgdGhpcyBhbmQgaGF2ZSBj cmVhdGVkIGEgZnVsbCBkb2NrZXINCj4+ID4gY29tcG9zZSBzZXR1cCAtIGNhbiB5b3UgcGxlYXNl IHBvaW50IG1lIHRvIHVwIHRvIGRhdGUgZ3VpZGVzIG9uIHRoZSBiZXN0DQo+PiA+IHdheSB0byBy dW4gdGhlIHRlc3RzIHNvIGkga25vdyB3ZSdyZSBkb2luZyBpdCB0aGUgc2FtZSB3YXk/DQo+PiA+ DQo+PiA+IFRoYW5rIHlvdSBmb3IgYWxsIHlvdXIgaGVscCENCj4+DQo+PiBJIGhhdmUgcnVuIHRo ZSByZWdyZXNzaW9uIHRlc3Qgb24gdGhlIFBncG9vbC1JSSBtYXN0ZXIgYnJhbmNoIG9uIG15DQo+ PiBVYnVudHUgMjQgYm94Lg0KPj4NCj4+IGNkIHBncG9vbDIvc3JjL3Rlc3QvcmVncmVzc2lvbg0K Pj4gLi9yZWdyZXNzLnNoIDA0MQ0KPj4NCj4+IFRoaXMgdGltZSBJIG5vdGljZWQ6DQo+Pg0KPj4g LSBUaGUgcGF0Y2ggZG9lcyBub3QgbmFtZWQgd2l0aCB2ZXJzaW9uIG51bWJlcg0KPj4gLSBUaGUg cGF0Y2ggY3JlYXRlcyAuZG9ja2VyaWdub3JlIGFuZCBkb2NrZXIvIGRpcmVjdG9yeS4NCj4+DQo+ PiBBcmUgdGhleSBpbnRlbmRlZD8gSSBhbSBhc2tpbmcgYmVjYXVzZSB0aGV5IGFyZSBkaWZmZXJl bnQgZnJvbSB0aGUNCj4+IHByZXZpb3VzIHZlcnNpb24uDQo+Pg0KPj4gPiBPbiBUdWUsIERlYyAy MywgMjAyNSBhdCAyOjEz4oCvQU0gVGF0c3VvIElzaGlpIDxpc2hpaUBwb3N0Z3Jlc3FsLm9yZz4N Cj4+IHdyb3RlOg0KPj4gPg0KPj4gPj4gPiBJIHRoaW5rIGV2ZXJ5dGhpbmcgaXMgcGFzc2luZyBu b3cuIG5ldyB2ZXJzaW9uIGF0dGFjaGVkLg0KPj4gPj4NCj4+ID4+IFVuZm9ydHVuYXRlbHkgVGVz dDEgZGlkIG5vdCBwYXNzLg0KPj4gPj4NCj4+ID4+ID09PSBUZXN0MTogQmFzaWMgZXh0ZXJuYWwg Y29tbWFuZCB3aXRoIGludGVnZXIgbWlsbGlzZWNvbmQgdmFsdWVzID09PQ0KPj4gPj4gd2FpdGlu ZyBmb3Igc2VydmVyIHRvIHN0YXJ0Li4uLjE0Mzg2MDAgMjAyNS0xMi0yMyAwOTowOTo0OC4zMzcg SlNUIExPRzoNCj4+ID4+IHJlZGlyZWN0aW5nIGxvZyBvdXRwdXQgdG8gbG9nZ2luZyBjb2xsZWN0 b3IgcHJvY2Vzcw0KPj4gPj4gMTQzODYwMCAyMDI1LTEyLTIzIDA5OjA5OjQ4LjMzNyBKU1QgSElO VDogIEZ1dHVyZSBsb2cgb3V0cHV0IHdpbGwgYXBwZWFyDQo+PiA+PiBpbiBkaXJlY3RvcnkgImxv ZyIuDQo+PiA+PiAgZG9uZQ0KPj4gPj4gc2VydmVyIHN0YXJ0ZWQNCj4+ID4+IHdhaXRpbmcgZm9y IHNlcnZlciB0byBzdGFydC4uLi4xNDM4NjE3IDIwMjUtMTItMjMgMDk6MDk6NDguNDQzIEpTVCBM T0c6DQo+PiA+PiByZWRpcmVjdGluZyBsb2cgb3V0cHV0IHRvIGxvZ2dpbmcgY29sbGVjdG9yIHBy b2Nlc3MNCj4+ID4+IDE0Mzg2MTcgMjAyNS0xMi0yMyAwOTowOTo0OC40NDMgSlNUIEhJTlQ6ICBG dXR1cmUgbG9nIG91dHB1dCB3aWxsIGFwcGVhcg0KPj4gPj4gaW4gZGlyZWN0b3J5ICJsb2ciLg0K Pj4gPj4gIGRvbmUNCj4+ID4+IHNlcnZlciBzdGFydGVkDQo+PiA+PiB3YWl0aW5nIGZvciBzZXJ2 ZXIgdG8gc3RhcnQuLi4uMTQzODYzNCAyMDI1LTEyLTIzIDA5OjA5OjQ4LjU2MSBKU1QgTE9HOg0K Pj4gPj4gcmVkaXJlY3RpbmcgbG9nIG91dHB1dCB0byBsb2dnaW5nIGNvbGxlY3RvciBwcm9jZXNz DQo+PiA+PiAxNDM4NjM0IDIwMjUtMTItMjMgMDk6MDk6NDguNTYxIEpTVCBISU5UOiAgRnV0dXJl IGxvZyBvdXRwdXQgd2lsbCBhcHBlYXINCj4+ID4+IGluIGRpcmVjdG9yeSAibG9nIi4NCj4+ID4+ ICBkb25lDQo+PiA+PiBzZXJ2ZXIgc3RhcnRlZA0KPj4gPj4gQ1JFQVRFIFRBQkxFDQo+PiA+PiBX YWl0aW5nIGZvciBzcl9jaGVjayB0byBydW4uLi4NCj4+ID4+IENvbW1hbmQgZXhlY3V0ZWQgYWZ0 ZXIgMSBzZWNvbmRzDQo+PiA+PiAgbm9kZV9pZCB8IGhvc3RuYW1lICB8IHBvcnQgIHwgc3RhdHVz IHwgcGdfc3RhdHVzIHwgbGJfd2VpZ2h0IHwgIHJvbGUNCj4+ICB8DQo+PiA+PiBwZ19yb2xlIHwg c2VsZWN0X2NudCB8IGxvYWRfYmFsYW5jZV9ub2RlIHwgcmVwbGljYXRpb25fZGVsYXkgfA0KPj4g Pj4gcmVwbGljYXRpb25fc3RhdGUgfCByZXBsaWNhdGlvbl9zeW5jX3N0YXRlIHwgbGFzdF9zdGF0 dXNfY2hhbmdlDQo+PiA+Pg0KPj4gPj4NCj4+IC0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4+ID4+ICAwICAgICAgIHwgbG9jYWxob3N0IHwgMTEwMDIgfCB1cCAgICAgfCB1cCAgICAg ICAgfCAwLjMzMzMzMyAgfCBwcmltYXJ5DQo+PiB8DQo+PiA+PiBwcmltYXJ5IHwgMCAgICAgICAg ICB8IHRydWUgICAgICAgICAgICAgIHwgMCAgICAgICAgICAgICAgICAgfA0KPj4gPj4gICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAyMDI1LTEyLTIzIDA5OjA5OjQ5DQo+PiA+PiAgMSAg ICAgICB8IGxvY2FsaG9zdCB8IDExMDAzIHwgdXAgICAgIHwgdXAgICAgICAgIHwgMC4zMzMzMzMg IHwgc3RhbmRieQ0KPj4gfA0KPj4gPj4gc3RhbmRieSB8IDAgICAgICAgICAgfCBmYWxzZSAgICAg ICAgICAgICB8IDAgICAgICAgICAgICAgICAgIHwNCj4+ID4+ICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgMjAyNS0xMi0yMyAwOTowOTo0OQ0KPj4gPj4gIDIgICAgICAgfCBsb2NhbGhv c3QgfCAxMTAwNCB8IHVwICAgICB8IHVwICAgICAgICB8IDAuMzMzMzMzICB8IHN0YW5kYnkNCj4+ IHwNCj4+ID4+IHN0YW5kYnkgfCAwICAgICAgICAgIHwgZmFsc2UgICAgICAgICAgICAgfCAwICAg ICAgICAgICAgICAgICB8DQo+PiA+PiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IDIw MjUtMTItMjMgMDk6MDk6NDkNCj4+ID4+ICgzIHJvd3MpDQo+PiA+Pg0KPj4gPj4gZmFpbDogZXh0 ZXJuYWwgY29tbWFuZCBkZWxheSBsb2dnaW5nIG5vdCBmb3VuZA0KPj4gPj4NCj4+ID4+ID4gT24g TW9uLCBOb3YgMjQsIDIwMjUgYXQgOTo0MeKAr0FNIFRhdHN1byBJc2hpaSA8aXNoaWlAcG9zdGdy ZXNxbC5vcmc+DQo+PiA+PiB3cm90ZToNCj4+ID4+ID4NCj4+ID4+ID4+IFRoYW5rIHlvdSBmb3Ig dXBkYXRpbmcgdGhlIHBhdGNoISBUaGlzIHRpbWUgdGhlIHBhdGNoIGFwcGxpZXMgd2l0aG91dA0K Pj4gPj4gPj4gYW55IGlzc3VlIGFuZCBjb21waWxlcyBmaW5lLiBVbmZvcnR1bmF0ZWx5IHJlZ3Jl c3Npb24gdGVzdCBmYWlsZWQuDQo+PiA+PiA+Pg0KPj4gPj4gPj4gdGVzdGluZyAwNDEuZXh0ZXJu YWxfcmVwbGljYXRpb25fZGVsYXkuLi5mYWlsZWQuDQo+PiA+PiA+Pg0KPj4gPj4gPj4gRnJvbSB0 aGUgcmVncmVzc2lvbiBsb2csIGl0IHNlZW1zIFRlc3Q3IGZhaWxlZC4NCj4+ID4+ID4+DQo+PiA+ PiA+Pg0KPj4gPj4NCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gPj4gPj4gPT09IFRlc3Q3 OiBDb21tYW5kIHRpbWVvdXQgaGFuZGxpbmcgPT09DQo+PiA+PiA+PiB3YWl0aW5nIGZvciBzZXJ2 ZXIgdG8gc3RhcnQuLi4uNDExMTgxIDIwMjUtMTEtMjQgMTY6MzE6MDUuMjQ0IEpTVA0KPj4gTE9H Og0KPj4gPj4gPj4gcmVkaXJlY3RpbmcgbG9nIG91dHB1dCB0byBsb2dnaW5nIGNvbGxlY3RvciBw cm9jZXNzDQo+PiA+PiA+PiA0MTExODEgMjAyNS0xMS0yNCAxNjozMTowNS4yNDQgSlNUIEhJTlQ6 ICBGdXR1cmUgbG9nIG91dHB1dCB3aWxsDQo+PiBhcHBlYXINCj4+ID4+IGluDQo+PiA+PiA+PiBk aXJlY3RvcnkgImxvZyIuDQo+PiA+PiA+PiAgZG9uZQ0KPj4gPj4gPj4gc2VydmVyIHN0YXJ0ZWQN Cj4+ID4+ID4+IHdhaXRpbmcgZm9yIHNlcnZlciB0byBzdGFydC4uLi40MTExOTYgMjAyNS0xMS0y NCAxNjozMTowNS4zNTIgSlNUDQo+PiBMT0c6DQo+PiA+PiA+PiByZWRpcmVjdGluZyBsb2cgb3V0 cHV0IHRvIGxvZ2dpbmcgY29sbGVjdG9yIHByb2Nlc3MNCj4+ID4+ID4+IDQxMTE5NiAyMDI1LTEx LTI0IDE2OjMxOjA1LjM1MiBKU1QgSElOVDogIEZ1dHVyZSBsb2cgb3V0cHV0IHdpbGwNCj4+IGFw cGVhcg0KPj4gPj4gaW4NCj4+ID4+ID4+IGRpcmVjdG9yeSAibG9nIi4NCj4+ID4+ID4+ICBkb25l DQo+PiA+PiA+PiBzZXJ2ZXIgc3RhcnRlZA0KPj4gPj4gPj4gd2FpdGluZyBmb3Igc2VydmVyIHRv IHN0YXJ0Li4uLjQxMTIxMyAyMDI1LTExLTI0IDE2OjMxOjA1LjQ2MSBKU1QNCj4+IExPRzoNCj4+ ID4+ID4+IHJlZGlyZWN0aW5nIGxvZyBvdXRwdXQgdG8gbG9nZ2luZyBjb2xsZWN0b3IgcHJvY2Vz cw0KPj4gPj4gPj4gNDExMjEzIDIwMjUtMTEtMjQgMTY6MzE6MDUuNDYxIEpTVCBISU5UOiAgRnV0 dXJlIGxvZyBvdXRwdXQgd2lsbA0KPj4gYXBwZWFyDQo+PiA+PiBpbg0KPj4gPj4gPj4gZGlyZWN0 b3J5ICJsb2ciLg0KPj4gPj4gPj4gIGRvbmUNCj4+ID4+ID4+IHNlcnZlciBzdGFydGVkDQo+PiA+ PiA+PiBXYWl0aW5nIGZvciBjb21tYW5kIHRpbWVvdXQuLi4NCj4+ID4+ID4+IGZhaWw6IGNvbW1h bmQgdGltZW91dCBub3QgZGV0ZWN0ZWQNCj4+ID4+ID4+DQo+PiA+PiA+Pg0KPj4gPj4NCj4+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gPj4gPj4NCj4+ID4+ID4+IEF0dGFjaGVkIGlzIHRoZSBw Z3Bvb2wubG9nLiBJZiB5b3UgbmVlZCBtb3JlIGluZm8sIHBsZWFzZSBsZXQgbWUNCj4+IGtub3cu DQo+PiA+PiA+Pg0KPj4gPj4gPj4gQmVzdCByZWdhcmRzLA0KPj4gPj4gPj4gLS0NCj4+ID4+ID4+ IFRhdHN1byBJc2hpaQ0KPj4gPj4gPj4gU1JBIE9TUyBLLksuDQo+PiA+PiA+PiBFbmdsaXNoOiBo dHRwOi8vd3d3LnNyYW9zcy5jby5qcC9pbmRleF9lbi8NCj4+ID4+ID4+IEphcGFuZXNlOmh0dHA6 Ly93d3cuc3Jhb3NzLmNvLmpwDQo+PiA+PiA+Pg0KPj4gPj4gPj4NCj4+ID4+ID4+ID4gSGkgVGF0 c3VvLA0KPj4gPj4gPj4gPg0KPj4gPj4gPj4gPiBTb3JyeSBhZ2FpbiwgdGhpcyB3YXMgZHVlIHRv IHRoZSBzZXBhcmF0aW9uIG9mIDIgcGF0Y2hlcyBhbmQgaSBvbmx5DQo+PiA+PiBzZW50DQo+PiA+ PiA+PiA+IHRoZSBvbmUuDQo+PiA+PiA+PiA+DQo+PiA+PiA+PiA+IEkndmUgbWVyZ2VkIGl0IGlu dG8gMSBjb21taXQgYW5kIDEgcGF0Y2ggYW5kIHJlYmFzZWQgb3ZlciBtYXN0ZXIgdG8NCj4+ID4+ IGF2b2lkDQo+PiA+PiA+PiA+IHRoZXNlIGlzc3VlcyBtb3ZpbmcgZm9yd2FyZC4NCj4+ID4+ID4+ ID4NCj4+ID4+ID4+ID4gUEZBIGxhdGVzdCB2ZXJzaW9uDQo+PiA+PiA+PiA+DQo+PiA+PiA+PiA+ IE9uIFRodSwgTm92IDIwLCAyMDI1IGF0IDE6MDnigK9BTSBUYXRzdW8gSXNoaWkgPGlzaGlpQHBv c3RncmVzcWwub3JnDQo+PiA+DQo+PiA+PiA+PiB3cm90ZToNCj4+ID4+ID4+ID4NCj4+ID4+ID4+ ID4+IEhpIE5hZGF2LA0KPj4gPj4gPj4gPj4NCj4+ID4+ID4+ID4+IFRoYW5rIHlvdSBmb3IgbmV3 IHBhdGNoLg0KPj4gPj4gPj4gPj4gVW5mb3J0dW5hdGVseSB0aGUgcGF0Y2ggZGlkIG5vdCBhcHBs eSB0byBjdXJyZW50IG1hc3Rlci4NCj4+ID4+ID4+ID4+DQo+PiA+PiA+PiA+PiAkIGdpdCBhcHBs eQ0KPj4gPj4gPj4gPj4gfi8wMDAxLUZpeC1tdWx0aXBsZS1pc3N1ZXMtaW4tZXh0ZXJuYWwtcmVw bGljYXRpb24tZGVsYXktZmUucGF0Y2gNCj4+ID4+ID4+ID4+IGVycm9yOiBwYXRjaCBmYWlsZWQ6 DQo+PiA+PiBzcmMvc3RyZWFtaW5nX3JlcGxpY2F0aW9uL3Bvb2xfd29ya2VyX2NoaWxkLmM6Njk0 DQo+PiA+PiA+PiA+PiBlcnJvcjogc3JjL3N0cmVhbWluZ19yZXBsaWNhdGlvbi9wb29sX3dvcmtl cl9jaGlsZC5jOiBwYXRjaCBkb2VzDQo+PiBub3QNCj4+ID4+ID4+IGFwcGx5DQo+PiA+PiA+PiA+ Pg0KPj4gPj4gPj4gPj4gTWF5YmUgdGhlIHBhdGNoIGlzIG9uIHRvcCBvZiB5b3VyIHByZXZpb3Vz IHBhdGNoPw0KPj4gPj4gPj4gPj4NCj4+ID4+ID4+ID4+IEFsc28gSSBzdWdnZXN0IHRvIHVzZSAi LXYiIG9wdGlvbiBvZiAiZ2l0IGZvcm1hdC1wYXRjaCIgdG8gYWRkIHRoZQ0KPj4gPj4gPj4gPj4g cGF0Y2ggdmVyc2lvbiBudW1iZXIgc28gdGhhdCB3ZSBjYW4gZWFzaWx5IGtub3cgd2hpY2ggcGF0 Y2ggaXMgdGhlDQo+PiA+PiA+PiA+PiBsYXRlc3QuDQo+PiA+PiA+PiA+Pg0KPj4gPj4gPj4gPj4g QmVzdCByZWdhcmRzLA0KPj4gPj4gPj4gPj4gLS0NCj4+ID4+ID4+ID4+IFRhdHN1byBJc2hpaQ0K Pj4gPj4gPj4gPj4gU1JBIE9TUyBLLksuDQo+PiA+PiA+PiA+PiBFbmdsaXNoOiBodHRwOi8vd3d3 LnNyYW9zcy5jby5qcC9pbmRleF9lbi8NCj4+ID4+ID4+ID4+IEphcGFuZXNlOmh0dHA6Ly93d3cu c3Jhb3NzLmNvLmpwDQo+PiA+PiA+PiA+Pg0KPj4gPj4gPj4gPj4gPiBIaSBUYXRzdW8sDQo+PiA+ PiA+PiA+PiA+DQo+PiA+PiA+PiA+PiA+IFBsZWFzZSBzZWUgYXR0YWNoZWQgYW4gdXBkYXRlZCB2 ZXJzaW9uLg0KPj4gPj4gPj4gPj4gPg0KPj4gPj4gPj4gPj4gPiB0aGFuayB5b3UNCj4+ID4+ID4+ ID4+ID4NCj4+ID4+ID4+ID4+ID4gT24gRnJpLCBOb3YgNywgMjAyNSBhdCAyOjA34oCvQU0gVGF0 c3VvIElzaGlpIDwNCj4+IGlzaGlpQHBvc3RncmVzcWwub3JnPg0KPj4gPj4gPj4gPj4gd3JvdGU6 DQo+PiA+PiA+PiA+PiA+DQo+PiA+PiA+PiA+PiA+PiA+IFNvcnJ5IGZvciB0aGF0IC0gdGhhbmtz IGZvciB0aGUgcGF0Y2guDQo+PiA+PiA+PiA+PiA+PiA+DQo+PiA+PiA+PiA+PiA+PiA+IFBsZWFz ZSBmaW5kIGF0dGFjaGVkIGEgbmV3IHZlcnNpb24NCj4+ID4+ID4+ID4+ID4+DQo+PiA+PiA+PiA+ PiA+PiBUaGFua3MgZm9yIHRoZSBuZXcgdmVyc2lvbi4gVW5mb3J0dW5hdGVseSB0aGlzIHRpbWUg cmVncmVzc2lvbg0KPj4gPj4gdGVzdA0KPj4gPj4gPj4gPj4gPj4gZmFpbHMgYXQ6DQo+PiA+PiA+ PiA+PiA+Pg0KPj4gPj4gPj4gPj4gPj4gPiBXYWl0aW5nIGZvciBjb21tYW5kIHRpbWVvdXQuLi4N Cj4+ID4+ID4+ID4+ID4+ID4gZmFpbDogY29tbWFuZCB0aW1lb3V0IG5vdCBkZXRlY3RlZA0KPj4g Pj4gPj4gPj4gPj4NCj4+ID4+ID4+ID4+ID4+IEF0dGFjaGVkIGlzIHRoZSBwZ3Bvb2wubG9nLg0K Pj4gPj4gPj4gPj4gPj4NCj4+ID4+ID4+ID4+ID4+IEJlc3QgcmVnYXJkcywNCj4+ID4+ID4+ID4+ ID4+IC0tDQo+PiA+PiA+PiA+PiA+PiBUYXRzdW8gSXNoaWkNCj4+ID4+ID4+ID4+ID4+IFNSQSBP U1MgSy5LLg0KPj4gPj4gPj4gPj4gPj4gRW5nbGlzaDogaHR0cDovL3d3dy5zcmFvc3MuY28uanAv aW5kZXhfZW4vDQo+PiA+PiA+PiA+PiA+PiBKYXBhbmVzZTpodHRwOi8vd3d3LnNyYW9zcy5jby5q cA0KPj4gPj4gPj4gPj4gPj4NCj4+ID4+ID4+ID4+ID4+ID4gT24gTW9uLCBOb3YgMywgMjAyNSBh dCA5OjA14oCvQU0gVGF0c3VvIElzaGlpIDwNCj4+ID4+IGlzaGlpQHBvc3RncmVzcWwub3JnPg0K Pj4gPj4gPj4gPj4gPj4gd3JvdGU6DQo+PiA+PiA+PiA+PiA+PiA+DQo+PiA+PiA+PiA+PiA+PiA+ PiA+IHRoYW5rcyBhbmQgc29ycnkgZm9yIHRoZSBpc3N1ZXMsIHBsZWFzZSBmaW5kIGF0dGFjaGVk DQo+PiB1cGRhdGVkDQo+PiA+PiA+PiA+PiB2ZXJzaW9uLg0KPj4gPj4gPj4gPj4gPj4gPj4NCj4+ ID4+ID4+ID4+ID4+ID4+IE5vIHByb2JsZW0uDQo+PiA+PiA+PiA+PiA+PiA+Pg0KPj4gPj4gPj4g Pj4gPj4gPj4gVGhpcyB0aW1lIHRoZSBwYXRjaCBhcHBsaWVzIGZpbmUsIG5vIGNvbXBpbGVyIHdh cm5pbmdzLg0KPj4gPj4gSG93ZXZlciwNCj4+ID4+ID4+ID4+ID4+ID4+IHJlZ3Jlc3Npb24gdGVz dCBkaWQgbm90IHBhc3NlZCBoZXJlIChvbiBVYnVudHUgMjQgTFRTIGlmDQo+PiB0aGlzDQo+PiA+ PiA+PiA+PiA+PiA+PiBtYXR0ZXJzKS4gIFNvIEkgbG9va2VkIGludG8NCj4+ID4+ID4+ID4+ID4+ ID4+DQo+PiA+PiBzcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0MS5leHRlcm5hbF9yZXBsaWNh dGlvbl9kZWxheS90ZXN0LnNoIGENCj4+ID4+ID4+ID4+ID4+ID4+IGxpdHRsZSBiaXQgYW5kIGFw cGx5IGF0dGFjaGVkIHBhdGNoICh0ZXN0LnNoLnBhdGNoKS4gSXQNCj4+IG1vdmVkDQo+PiA+PiA+ PiBmb3J3YXJkDQo+PiA+PiA+PiA+PiA+PiA+PiBwYXJ0aWFsbHkgYnV0IGZhaWxlZCBhdDoNCj4+ ID4+ID4+ID4+ID4+ID4+DQo+PiA+PiA+PiA+PiA+PiA+PiBmYWlsOiBjb21tYW5kIGV4ZWN1dGlv biBmYWlsdXJlIG5vdCBkZXRlY3RlZA0KPj4gPj4gPj4gPj4gPj4gPj4NCj4+ID4+ID4+ID4+ID4+ ID4+IFBsZWFzZSBmaW5kIGF0dGFjaGVkDQo+PiA+PiA+PiA+PiA+PiA+Pg0KPj4gPj4gPj4gPj4g Pj4NCj4+ID4+ID4+ID4+DQo+PiA+PiA+Pg0KPj4gPj4NCj4+IHNyYy90ZXN0L3JlZ3Jlc3Npb24v dGVzdHMvMDQxLmV4dGVybmFsX3JlcGxpY2F0aW9uX2RlbGF5L3Rlc3RkaXIvcGdwb29sLmxvZw0K Pj4gPj4gPj4gPj4gPj4gPj4gYW5kIHNyYy90ZXN0L3JlZ3Jlc3Npb24vbG9nLzA0MS5leHRlcm5h bF9yZXBsaWNhdGlvbl9kZWxheS4NCj4+ID4+ID4+ID4+ID4+ID4+DQo+PiA+PiA+PiA+PiA+PiA+ PiBCZXN0IHJlZ2FyZHMsDQo+PiA+PiA+PiA+PiA+PiA+PiAtLQ0KPj4gPj4gPj4gPj4gPj4gPj4g VGF0c3VvIElzaGlpDQo+PiA+PiA+PiA+PiA+PiA+PiBTUkEgT1NTIEsuSy4NCj4+ID4+ID4+ID4+ ID4+ID4+IEVuZ2xpc2g6IGh0dHA6Ly93d3cuc3Jhb3NzLmNvLmpwL2luZGV4X2VuLw0KPj4gPj4g Pj4gPj4gPj4gPj4gSmFwYW5lc2U6aHR0cDovL3d3dy5zcmFvc3MuY28uanANCj4+ID4+ID4+ID4+ ID4+ID4+DQo+PiA+PiA+PiA+PiA+PiA+DQo+PiA+PiA+PiA+PiA+PiA+DQo+PiA+PiA+PiA+PiA+ PiA+IC0tDQo+PiA+PiA+PiA+PiA+PiA+IE5hZGF2IFNoYXR6DQo+PiA+PiA+PiA+PiA+PiA+IFRh aWxvciBCcmFuZHMgfCBDVE8NCj4+ID4+ID4+ID4+ID4+DQo+PiA+PiA+PiA+PiA+DQo+PiA+PiA+ PiA+PiA+DQo+PiA+PiA+PiA+PiA+IC0tDQo+PiA+PiA+PiA+PiA+IE5hZGF2IFNoYXR6DQo+PiA+ PiA+PiA+PiA+IFRhaWxvciBCcmFuZHMgfCBDVE8NCj4+ID4+ID4+ID4+DQo+PiA+PiA+PiA+DQo+ PiA+PiA+PiA+DQo+PiA+PiA+PiA+IC0tDQo+PiA+PiA+PiA+IE5hZGF2IFNoYXR6DQo+PiA+PiA+ PiA+IFRhaWxvciBCcmFuZHMgfCBDVE8NCj4+ID4+ID4+DQo+PiA+PiA+DQo+PiA+PiA+DQo+PiA+ PiA+IC0tDQo+PiA+PiA+IE5hZGF2IFNoYXR6DQo+PiA+PiA+IFRhaWxvciBCcmFuZHMgfCBDVE8N Cj4+ID4+DQo+PiA+DQo+PiA+DQo+PiA+IC0tDQo+PiA+IE5hZGF2IFNoYXR6DQo+PiA+IFRhaWxv ciBCcmFuZHMgfCBDVE8NCj4+DQo+IA0KPiANCj4gLS0gDQo+IE5hZGF2IFNoYXR6DQo+IFRhaWxv ciBCcmFuZHMgfCBDVE8NCg== ----Next_Part(Fri_Dec_26_16_54_46_2025_229)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="extenal_delay_cmd.patch" ZGlmZiAtLWdpdCBhL3NyYy9zdHJlYW1pbmdfcmVwbGljYXRpb24vcG9vbF93b3JrZXJfY2hpbGQu YyBiL3NyYy9zdHJlYW1pbmdfcmVwbGljYXRpb24vcG9vbF93b3JrZXJfY2hpbGQuYwppbmRleCA0 NTdkMGZhYjAuLmM1MDliYTViYyAxMDA2NDQKLS0tIGEvc3JjL3N0cmVhbWluZ19yZXBsaWNhdGlv bi9wb29sX3dvcmtlcl9jaGlsZC5jCisrKyBiL3NyYy9zdHJlYW1pbmdfcmVwbGljYXRpb24vcG9v bF93b3JrZXJfY2hpbGQuYwpAQCAtMTMyLDcgKzEzMiw3IEBAIGRvX3dvcmtlcl9jaGlsZCh2b2lk ICpwYXJhbXMpCiAJc2lnbmFsKFNJR0lOVCwgbXlfc2lnbmFsX2hhbmRsZXIpOwogCXNpZ25hbChT SUdIVVAsIHJlbG9hZF9jb25maWdfaGFuZGxlcik7CiAJc2lnbmFsKFNJR1FVSVQsIG15X3NpZ25h bF9oYW5kbGVyKTsKLQlzaWduYWwoU0lHQ0hMRCwgU0lHX0lHTik7CisJc2lnbmFsKFNJR0NITEQs IG15X3NpZ25hbF9oYW5kbGVyKTsKIAlzaWduYWwoU0lHVVNSMSwgbXlfc2lnbmFsX2hhbmRsZXIp OwogCXNpZ25hbChTSUdVU1IyLCBTSUdfSUdOKTsKIAlzaWduYWwoU0lHUElQRSwgU0lHX0lHTik7 CkBAIC0yNjIsMTYgKzI2MiwyMCBAQCBkb193b3JrZXJfY2hpbGQodm9pZCAqcGFyYW1zKQogCQkJ CQlQT09MX05PREVfU1RBVFVTICpub2RlX3N0YXR1czsKIAkJCQkJaW50CQkJaTsKIAotCQkJLyog RG8gcmVwbGljYXRpb24gdGltZSBsYWcgY2hlY2tpbmcgKi8KLQkJCS8qIFVzZSBleHRlcm5hbCBj b21tYW5kIGlmIHJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQgaXMgY29uZmlndXJlZCAqLwot CQkJaWYgKHBvb2xfY29uZmlnLT5yZXBsaWNhdGlvbl9kZWxheV9zb3VyY2VfY21kICYmCi0JCQkJ c3RybGVuKHBvb2xfY29uZmlnLT5yZXBsaWNhdGlvbl9kZWxheV9zb3VyY2VfY21kKSA+IDApCi0J CQkJY2hlY2tfcmVwbGljYXRpb25fdGltZV9sYWdfd2l0aF9jbWQoKTsKLQkJCWVsc2UKLQkJCQlj aGVja19yZXBsaWNhdGlvbl90aW1lX2xhZygpOworCQkJCQkvKiBEbyByZXBsaWNhdGlvbiB0aW1l IGxhZyBjaGVja2luZyAqLwogCi0JCQkvKiBDaGVjayBub2RlIHN0YXR1cyAqLwotCQkJbm9kZV9z dGF0dXMgPSB2ZXJpZnlfYmFja2VuZF9ub2RlX3N0YXR1cyhzbG90cyk7CisJCQkJCS8qCisJCQkJ CSAqIFVzZSBleHRlcm5hbCBjb21tYW5kIGlmIHJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQg aXMKKwkJCQkJICogY29uZmlndXJlZAorCQkJCQkgKi8KKwkJCQkJaWYgKHBvb2xfY29uZmlnLT5y ZXBsaWNhdGlvbl9kZWxheV9zb3VyY2VfY21kICYmCisJCQkJCQlzdHJsZW4ocG9vbF9jb25maWct PnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQpID4gMCkKKwkJCQkJCWNoZWNrX3JlcGxpY2F0 aW9uX3RpbWVfbGFnX3dpdGhfY21kKCk7CisJCQkJCWVsc2UKKwkJCQkJCWNoZWNrX3JlcGxpY2F0 aW9uX3RpbWVfbGFnKCk7CisKKwkJCQkJLyogQ2hlY2sgbm9kZSBzdGF0dXMgKi8KKwkJCQkJbm9k ZV9zdGF0dXMgPSB2ZXJpZnlfYmFja2VuZF9ub2RlX3N0YXR1cyhzbG90cyk7CiAKIAogCQkJCQlm b3IgKGkgPSAwOyBpIDwgTlVNX0JBQ0tFTkRTOyBpKyspCkBAIC02NjgsNyArNjcyLDcgQEAgY2hl Y2tfcmVwbGljYXRpb25fdGltZV9sYWcodm9pZCkKIH0KIAogI2RlZmluZSBNQVhfQ01EX09VVFBV VCA0MDk2Ci0jZGVmaW5lIE1BWF9SRUFTT05BQkxFX0RFTEFZX01TIDM2MDAwMDAuMCAgLyogMSBo b3VyIGluIG1pbGxpc2Vjb25kcyAqLworI2RlZmluZSBNQVhfUkVBU09OQUJMRV9ERUxBWV9NUyAz NjAwMDAwLjAJLyogMSBob3VyIGluIG1pbGxpc2Vjb25kcyAqLwogCiAvKgogICogQ2hlY2sgcmVw bGljYXRpb24gdGltZSBsYWcgdXNpbmcgZXh0ZXJuYWwgY29tbWFuZApAQCAtNjgwLDIzICs2ODQs MjMgQEAgY2hlY2tfcmVwbGljYXRpb25fdGltZV9sYWcodm9pZCkKIHN0YXRpYyB2b2lkCiBjaGVj a19yZXBsaWNhdGlvbl90aW1lX2xhZ193aXRoX2NtZCh2b2lkKQogewotCWNoYXIJCSAgICpjb21t YW5kID0gTlVMTDsKLQljaGFyCQkgICAqbGluZTsKLQljaGFyCQkgICAqdG9rZW47Ci0JY2hhcgkJ ICAgKnNhdmVwdHI7Ci0JZG91YmxlCQkJZGVsYXlfbXM7Ci0JdWludDY0CQkJZGVsYXk7Ci0JaW50 CQkJCXRva2VuX2NvdW50ID0gMDsKLQlCYWNrZW5kSW5mbwkgICAqYmtpbmZvOworCWNoYXIJICAg KmNvbW1hbmQgPSBOVUxMOworCWNoYXIJICAgKmxpbmU7CisJY2hhcgkgICAqdG9rZW47CisJY2hh cgkgICAqc2F2ZXB0cjsKKwlkb3VibGUJCWRlbGF5X21zOworCXVpbnQ2NAkJZGVsYXk7CisJaW50 CQkJdG9rZW5fY291bnQgPSAwOworCUJhY2tlbmRJbmZvICpia2luZm87CiAJRXJyb3JDb250ZXh0 Q2FsbGJhY2sgY2FsbGJhY2s7Ci0JaW50CQkJCXBpcGVmZFsyXSA9IHstMSwgLTF9OwotCXBpZF90 CQkJcGlkID0gLTE7Ci0JaW50CQkJCXJldDsKLQlzdHJ1Y3QgdGltZXZhbAl0aW1lb3V0OwotCWZk X3NldAkJCXJlYWRmZHM7Ci0Jc3NpemVfdAkJCWJ5dGVzX3JlYWQ7Ci0JaW50CQkJCXN0YXR1czsK LQlpbnQJCQkJbnVtX3JlcGxpY2FzOworCWludAkJCXBpcGVmZFsyXSA9IHstMSwgLTF9OworCXBp ZF90CQlwaWQgPSAtMTsKKwlpbnQJCQlyZXQ7CisJc3RydWN0IHRpbWV2YWwgdGltZW91dDsKKwlm ZF9zZXQJCXJlYWRmZHM7CisJc3NpemVfdAkJYnl0ZXNfcmVhZDsKKwlpbnQJCQlzdGF0dXM7CisJ aW50CQkJbnVtX3JlcGxpY2FzOwogCiAJaWYgKE5VTV9CQUNLRU5EUyA8PSAxKQogCXsKQEAgLTcx Nyw3ICs3MjEsNyBAQCBjaGVja19yZXBsaWNhdGlvbl90aW1lX2xhZ193aXRoX2NtZCh2b2lkKQog CX0KIAogCS8qIENhcHR1cmUgcHJpbWFyeSBub2RlIElEIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9u cyBkdXJpbmcgZXhlY3V0aW9uICovCi0JaW50IHByaW1hcnlfbm9kZV9pZCA9IFJFQUxfUFJJTUFS WV9OT0RFX0lEOworCWludAkJCXByaW1hcnlfbm9kZV9pZCA9IFJFQUxfUFJJTUFSWV9OT0RFX0lE OwogCiAJaWYgKCFwb29sX2NvbmZpZy0+cmVwbGljYXRpb25fZGVsYXlfc291cmNlX2NtZCB8fAog CQlzdHJsZW4ocG9vbF9jb25maWctPnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQpID09IDAp CkBAIC03NDYsMTYgKzc1MCwyMSBAQCBjaGVja19yZXBsaWNhdGlvbl90aW1lX2xhZ193aXRoX2Nt ZCh2b2lkKQogCVBHX1RSWSgpOwogCXsKIAkJY29uc3QgY2hhciAqYmFzZV9jb21tYW5kID0gcG9v bF9jb25maWctPnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQ7Ci0JCXNpemVfdCB0b3RhbF9s ZW4gPSBzdHJsZW4oYmFzZV9jb21tYW5kKSArIDE7IC8qICsxIGZvciBOVUwgKi8KKwkJc2l6ZV90 CQl0b3RhbF9sZW4gPSBzdHJsZW4oYmFzZV9jb21tYW5kKSArIDE7CS8qICsxIGZvciBOVUwgKi8K IAogCQkvKiBCdWlsZCBjb21tYW5kIHdpdGggcmVwbGljYS1vbmx5IGFyZ3VtZW50cyAob21pdCBw cmltYXJ5KSAqLwotCQkvKiBDYWxjdWxhdGUgdG90YWwgY29tbWFuZCBsZW5ndGggaW5jbHVkaW5n IHNwYWNlLXNlcGFyYXRlZCByZXBsaWNhIGlkZW50aWZpZXJzICovCisKKwkJLyoKKwkJICogQ2Fs Y3VsYXRlIHRvdGFsIGNvbW1hbmQgbGVuZ3RoIGluY2x1ZGluZyBzcGFjZS1zZXBhcmF0ZWQgcmVw bGljYQorCQkgKiBpZGVudGlmaWVycworCQkgKi8KIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBOVU1f QkFDS0VORFM7IGkrKykKIAkJewogCQkJaWYgKGkgPT0gcHJpbWFyeV9ub2RlX2lkKQotCQkJCWNv bnRpbnVlOyAvKiBTa2lwIHByaW1hcnkgbm9kZSAqLworCQkJCWNvbnRpbnVlOwkJLyogU2tpcCBw cmltYXJ5IG5vZGUgKi8KKworCQkJY2hhcgkgICAqaWRlbnQgPSBidWlsZF9pbnN0YW5jZV9pZGVu dGlmaWVyX2Zvcl9ub2RlKGkpOwogCi0JCQljaGFyICppZGVudCA9IGJ1aWxkX2luc3RhbmNlX2lk ZW50aWZpZXJfZm9yX25vZGUoaSk7CiAJCQl0b3RhbF9sZW4gKz0gMSAvKiBzcGFjZSAqLyArIHN0 cmxlbihpZGVudCk7CiAJCQlwZnJlZShpZGVudCk7CiAJCX0KQEAgLTc2NCwxMyArNzczLDE0IEBA IGNoZWNrX3JlcGxpY2F0aW9uX3RpbWVfbGFnX3dpdGhfY21kKHZvaWQpCiAJCXN0cmxjcHkoY29t bWFuZCwgYmFzZV9jb21tYW5kLCB0b3RhbF9sZW4pOwogCiAJCS8qIEFwcGVuZCByZXBsaWNhIGlk ZW50aWZpZXJzICovCi0JCXNpemVfdCBjdXJyZW50X2xlbiA9IHN0cmxlbihjb21tYW5kKTsKKwkJ c2l6ZV90CQljdXJyZW50X2xlbiA9IHN0cmxlbihjb21tYW5kKTsKKwogCQlmb3IgKGludCBpID0g MDsgaSA8IE5VTV9CQUNLRU5EUzsgaSsrKQogCQl7CiAJCQlpZiAoaSA9PSBwcmltYXJ5X25vZGVf aWQpCi0JCQkJY29udGludWU7IC8qIFNraXAgcHJpbWFyeSBub2RlICovCisJCQkJY29udGludWU7 CQkvKiBTa2lwIHByaW1hcnkgbm9kZSAqLwogCi0JCQljaGFyICppZGVudCA9IGJ1aWxkX2luc3Rh bmNlX2lkZW50aWZpZXJfZm9yX25vZGUoaSk7CisJCQljaGFyCSAgICppZGVudCA9IGJ1aWxkX2lu c3RhbmNlX2lkZW50aWZpZXJfZm9yX25vZGUoaSk7CiAKIAkJCS8qIEFwcGVuZCBzcGFjZSBhbmQg aWRlbnRpZmllciAqLwogCQkJc25wcmludGYoY29tbWFuZCArIGN1cnJlbnRfbGVuLCB0b3RhbF9s ZW4gLSBjdXJyZW50X2xlbiwgIiAlcyIsIGlkZW50KTsKQEAgLTgwMCwxNiArODEwLDE2IEBAIGNo ZWNrX3JlcGxpY2F0aW9uX3RpbWVfbGFnX3dpdGhfY21kKHZvaWQpCiAJCWlmIChwaWQgPT0gMCkK IAkJewogCQkJLyogQ2hpbGQgcHJvY2VzcyAqLwotCQkJY2xvc2UocGlwZWZkWzBdKTsgLyogQ2xv c2UgcmVhZCBlbmQgKi8KKwkJCWNsb3NlKHBpcGVmZFswXSk7CS8qIENsb3NlIHJlYWQgZW5kICov CiAJCQlpZiAoZHVwMihwaXBlZmRbMV0sIFNURE9VVF9GSUxFTk8pID09IC0xKQogCQkJewogCQkJ CWZwcmludGYoc3RkZXJyLCAiZHVwMiBmYWlsZWQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwog CQkJCWV4aXQoMSk7CiAJCQl9Ci0JCQljbG9zZShwaXBlZmRbMV0pOyAvKiBDbG9zZSB3cml0ZSBl bmQgKGR1cGxpY2F0ZWQgdG8gc3Rkb3V0KSAqLworCQkJY2xvc2UocGlwZWZkWzFdKTsJLyogQ2xv c2Ugd3JpdGUgZW5kIChkdXBsaWNhdGVkIHRvIHN0ZG91dCkgKi8KIAogCQkJLyogRXhlY3V0ZSBj b21tYW5kIHVzaW5nIHNoZWxsICovCi0JCQlleGVjbCgiL2Jpbi9zaCIsICJzaCIsICItYyIsIGNv bW1hbmQsIChjaGFyICopTlVMTCk7CisJCQlleGVjbCgiL2Jpbi9zaCIsICJzaCIsICItYyIsIGNv bW1hbmQsIChjaGFyICopIE5VTEwpOwogCiAJCQkvKiBJZiBleGVjbCBmYWlscyAqLwogCQkJZnBy aW50ZihzdGRlcnIsICJleGVjbCBmYWlsZWQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwpAQCAt ODE3LDcgKzgyNyw3IEBAIGNoZWNrX3JlcGxpY2F0aW9uX3RpbWVfbGFnX3dpdGhfY21kKHZvaWQp CiAJCX0KIAogCQkvKiBQYXJlbnQgcHJvY2VzcyAqLwotCQljbG9zZShwaXBlZmRbMV0pOyAvKiBD bG9zZSB3cml0ZSBlbmQgKi8KKwkJY2xvc2UocGlwZWZkWzFdKTsJCS8qIENsb3NlIHdyaXRlIGVu ZCAqLwogCQlwaXBlZmRbMV0gPSAtMTsKIAogCQkvKiBTZXQgdXAgdGltZW91dCBmb3Igc2VsZWN0 ICovCkBAIC04MzIsNyArODQyLDggQEAgY2hlY2tfcmVwbGljYXRpb25fdGltZV9sYWdfd2l0aF9j bWQodm9pZCkKIAogCQlpZiAocmV0ID09IC0xKQogCQl7Ci0JCQlpbnQgc2F2ZV9lcnJubyA9IGVy cm5vOworCQkJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOworCiAJCQlraWxsKHBpZCwgU0lHS0lM TCk7CiAJCQl3YWl0cGlkKHBpZCwgTlVMTCwgMCk7CiAJCQlwaWQgPSAtMTsKQEAgLTkxMywxMSAr OTI0LDEyIEBAIGNoZWNrX3JlcGxpY2F0aW9uX3RpbWVfbGFnX3dpdGhfY21kKHZvaWQpCiAJCWJr aW5mby0+c3RhbmRieV9kZWxheV9ieV90aW1lID0gdHJ1ZTsKIAogCQkvKiBDb3VudCBleHBlY3Rl ZCByZXBsaWNhcyAqLwotCQludW1fcmVwbGljYXMgPSBOVU1fQkFDS0VORFMgLSAxOyAvKiBUb3Rh bCBub2RlcyBtaW51cyBwcmltYXJ5ICovCisJCW51bV9yZXBsaWNhcyA9IE5VTV9CQUNLRU5EUyAt IDE7CS8qIFRvdGFsIG5vZGVzIG1pbnVzIHByaW1hcnkgKi8KIAogCQkvKiBDb3VudCB0b2tlbnMg aW4gb3V0cHV0IGZvciB2YWxpZGF0aW9uICovCi0JCWNoYXIgKmxpbmVfY29weSA9IHBzdHJkdXAo bGluZSk7Ci0JCWNoYXIgKnRlbXBfdG9rZW4gPSBzdHJ0b2sobGluZV9jb3B5LCAiIFx0XG4iKTsK KwkJY2hhcgkgICAqbGluZV9jb3B5ID0gcHN0cmR1cChsaW5lKTsKKwkJY2hhcgkgICAqdGVtcF90 b2tlbiA9IHN0cnRvayhsaW5lX2NvcHksICIgXHRcbiIpOworCiAJCXdoaWxlICh0ZW1wX3Rva2Vu ICE9IE5VTEwpCiAJCXsKIAkJCXRva2VuX2NvdW50Kys7CkBAIC05NTMsNyArOTY1LDcgQEAgY2hl Y2tfcmVwbGljYXRpb25fdGltZV9sYWdfd2l0aF9jbWQodm9pZCkKIAkJZm9yIChpbnQgaSA9IDA7 IGkgPCBOVU1fQkFDS0VORFMgJiYgdG9rZW4gIT0gTlVMTDsgaSsrKQogCQl7CiAJCQlpZiAoaSA9 PSBwcmltYXJ5X25vZGVfaWQpCi0JCQkJY29udGludWU7IC8qIFNraXAgcHJpbWFyeSAtIGl0J3Mg bm90IGluIHRoZSBvdXRwdXQgKi8KKwkJCQljb250aW51ZTsJCS8qIFNraXAgcHJpbWFyeSAtIGl0 J3Mgbm90IGluIHRoZSBvdXRwdXQgKi8KIAogCQkJaWYgKCFWQUxJRF9CQUNLRU5EKGkpKQogCQkJ ewpAQCAtOTYyLDcgKzk3NCw4IEBAIGNoZWNrX3JlcGxpY2F0aW9uX3RpbWVfbGFnX3dpdGhfY21k KHZvaWQpCiAJCQkJY29udGludWU7CiAJCQl9CiAKLQkJCWNoYXIgKmVuZHB0cjsKKwkJCWNoYXIJ ICAgKmVuZHB0cjsKKwogCQkJZGVsYXlfbXMgPSBzdHJ0b2QodG9rZW4sICZlbmRwdHIpOwogCiAJ CQkvKiBWYWxpZGF0ZSB0aGUgY29udmVyc2lvbiAqLwpAQCAtMTAwMiwxMyArMTAxNSwxOCBAQCBj aGVja19yZXBsaWNhdGlvbl90aW1lX2xhZ193aXRoX2NtZCh2b2lkKQogCQkJCQkJCQlkZWxheV9t cywgaSkpKTsKIAkJCX0KIAotCQkJLyogQ29udmVydCBkZWxheSBmcm9tIG1pbGxpc2Vjb25kcyB0 byBtaWNyb3NlY29uZHMgZm9yIGludGVybmFsIHN0b3JhZ2UgKi8KLQkJCWRlbGF5ID0gKHVpbnQ2 NCkoZGVsYXlfbXMgKiAxMDAwKTsKKwkJCS8qCisJCQkgKiBDb252ZXJ0IGRlbGF5IGZyb20gbWls bGlzZWNvbmRzIHRvIG1pY3Jvc2Vjb25kcyBmb3IgaW50ZXJuYWwKKwkJCSAqIHN0b3JhZ2UKKwkJ CSAqLworCQkJZGVsYXkgPSAodWludDY0KSAoZGVsYXlfbXMgKiAxMDAwKTsKIAkJCWJraW5mby0+ c3RhbmRieV9kZWxheSA9IGRlbGF5OwogCQkJYmtpbmZvLT5zdGFuZGJ5X2RlbGF5X2J5X3RpbWUg PSB0cnVlOwogCiAJCQkvKiBMb2cgZGVsYXkgaWYgbmVjZXNzYXJ5ICovCi0JCQl1aW50NjQgZGVs YXlfdGhyZXNob2xkX2J5X3RpbWUgPSBwb29sX2NvbmZpZy0+ZGVsYXlfdGhyZXNob2xkX2J5X3Rp bWUgKiAxMDAwOyAvKiB0aHJlc2hvbGQgaXMgaW4gbWlsbGlzZWNvbmRzLCBjb252ZXJ0IHRvIG1p Y3Jvc2Vjb25kcyAqLworCQkJdWludDY0CQlkZWxheV90aHJlc2hvbGRfYnlfdGltZSA9IHBvb2xf Y29uZmlnLT5kZWxheV90aHJlc2hvbGRfYnlfdGltZSAqIDEwMDA7CS8qIHRocmVzaG9sZCBpcyBp bgorCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJICogbWlsbGlzZWNvbmRzLCBjb252ZXJ0CisJCQkJ CQkJCQkJCQkJCQkJCQkJCQkJCQkgKiB0byBtaWNyb3NlY29uZHMgKi8KIAogCQkJaWYgKChwb29s X2NvbmZpZy0+bG9nX3N0YW5kYnlfZGVsYXkgPT0gTFNEX0FMV0FZUyAmJiBkZWxheV9tcyA+IDAp IHx8CiAJCQkJKHBvb2xfY29uZmlnLT5sb2dfc3RhbmRieV9kZWxheSA9PSBMU0RfT1ZFUl9USFJF U0hPTEQgJiYKQEAgLTEwMjYsMTIgKzEwNDQsMTUgQEAgY2hlY2tfcmVwbGljYXRpb25fdGltZV9s YWdfd2l0aF9jbWQodm9pZCkKIAlQR19DQVRDSCgpOwogCXsKIAkJLyogQ2xlYW51cCBpbiBjYXNl IG9mIGVycm9yICovCi0JCWlmIChwaWQgPiAwKSB7CisJCWlmIChwaWQgPiAwKQorCQl7CiAJCQlr aWxsKHBpZCwgU0lHS0lMTCk7CiAJCQl3YWl0cGlkKHBpZCwgTlVMTCwgMCk7CiAJCX0KLQkJaWYg KHBpcGVmZFswXSAhPSAtMSkgY2xvc2UocGlwZWZkWzBdKTsKLQkJaWYgKHBpcGVmZFsxXSAhPSAt MSkgY2xvc2UocGlwZWZkWzFdKTsKKwkJaWYgKHBpcGVmZFswXSAhPSAtMSkKKwkJCWNsb3NlKHBp cGVmZFswXSk7CisJCWlmIChwaXBlZmRbMV0gIT0gLTEpCisJCQljbG9zZShwaXBlZmRbMV0pOwog CiAJCWlmIChsaW5lKQogCQkJcGZyZWUobGluZSk7CkBAIC0xMTM3LDYgKzExNTgsOSBAQCBzdGF0 aWMgUkVUU0lHVFlQRSBteV9zaWduYWxfaGFuZGxlcihpbnQgc2lnKQogCQkJcmVzdGFydF9yZXF1 ZXN0ID0gMTsKIAkJCWJyZWFrOwogCisJCWNhc2UgU0lHQ0hMRDoKKwkJCWJyZWFrOworCiAJCWRl ZmF1bHQ6CiAJCQlleGl0KDEpOwogCQkJYnJlYWs7Cg== ----Next_Part(Fri_Dec_26_16_54_46_2025_229)----