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.94.2) (envelope-from ) id 1sH3Yo-002afG-5D for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Jun 2024 15:37:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sH3Yl-007WiO-Ut for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Jun 2024 15:37:20 +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.94.2) (envelope-from ) id 1sH3Yl-007WiG-H6 for pgsql-hackers@lists.postgresql.org; Tue, 11 Jun 2024 15:37:20 +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.94.2) (envelope-from ) id 1sH3Yj-000oRX-7w for pgsql-hackers@postgresql.org; Tue, 11 Jun 2024 15:37:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Type:In-Reply-To:From:References:To: Subject:MIME-Version:Date:Message-ID:Sender:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description; bh=0G662aCIPH/TTDYO3SasVkJRhG1j/Mb9I/LBMLKtdLc=; b=1Okq61KjpAcftFupQpTgo90HHq uvl8So4M1i/EaHIytvW3igCNJTqQ49fai6ZL9YAg1IMnM88C+t5qVUuv5E6/3pqyqlCq8w+fOxqpJ svIQb1cdrBooPo3sY7J/Lk7bQoDymkuGQtCFlr+WuyPIEkC1f69NKDybVjDWflTNB1vFv39A1UxD4 J48NvGm+wPo8q7I8UTeH6rQiZeVmneeTeJz6PcqggzMcwMApPpDNSftU8XS4yR1P2iW9K5CinbZtI qhnxQCDaFpgrEXF3sdLWT2Hg/x8UIvmW/QTTS/1GTK8yL+ZxEymrnMD12fQcRF+/7ZG8fszGBtnpU qAzxYu4w==; Received: from [52.119.84.39] (helo=[192.168.88.172]) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1sH3Ye-002VPg-KI; Tue, 11 Jun 2024 15:37:15 +0000 Message-ID: Date: Tue, 11 Jun 2024 11:37:09 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Trying out read streams in pgvector (an extension) To: Thomas Munro , pgsql-hackers References: Content-Language: en-US From: "Jonathan S. Katz" Autocrypt: addr=jkatz@postgresql.org; keydata= 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 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------SqkKVDCgJ2N0ObOpWOf7MBbU" X-Host-Lookup-Failed: Reverse DNS lookup failed for 52.119.84.39 (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------SqkKVDCgJ2N0ObOpWOf7MBbU Content-Type: multipart/mixed; boundary="------------reuS6a3dDGWxfOBZ6kcCqjKE"; protected-headers="v1" From: "Jonathan S. Katz" To: Thomas Munro , pgsql-hackers Message-ID: Subject: Re: Trying out read streams in pgvector (an extension) References: In-Reply-To: --------------reuS6a3dDGWxfOBZ6kcCqjKE Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNi8xMS8yNCAxMjo1MyBBTSwgVGhvbWFzIE11bnJvIHdyb3RlOg0KPiBIaSwNCj4gDQo+ IEkgd2FzIGxvb2tpbmcgYXJvdW5kIGZvciBhbiBleG90aWMgaW5kZXggdHlwZSB0byB0cnkg dGhlIGV4cGVyaWVuY2Ugb2YNCj4gc3RyZWFtaWZ5aW5nIGFuIGV4dGVuc2lvbiwgaWUgb3V0 LW9mLWNvcmUgY29kZS4gIEkgYW0gdG90YWxseSBuZXcgdG8NCj4gcGd2ZWN0b3IsIGJ1dCBz aW5jZSBldmVyeW9uZSBrZWVwcyB0YWxraW5nIGFib3V0IGl0LCBJIGNvdWxkIG5vdCBhdm9p ZA0KPiBwaWNraW5nIHVwIHNvbWUgYmFzaWMgZmFjdHMgaW4gdGhlIHBnY29uZi5kZXYgaGFs bHdheSB0cmFjaywgYW5kDQo+IHVuZGVyc3Rvb2QgdGhhdCBpdHMgc2NhbnMgaGF2ZSBzb21l IGRlZ3JlZSBvZiBrbm93bi1vcmRlciBhY2Nlc3MNCj4gcHJlZGljdGFiaWxpdHksIGFuZCB0 aGVuIGFsc28gc29tZSBkZWdyZWUgb2YgZnV6enktcHJlZGljdGFibGUNCj4gb3JkZXItbm90 LXlldC1kZXRlcm1pbmVkIGFjY2VzcyB0b28uICBJdCdzIGFsc28gcXVpdGUgcmFuZG9tIGlu IHRoZQ0KPiBJL08gc2Vuc2UuDQoNCkNvb2whIEkgaGFwcGVuZWQgdG8gYmUgY2hhdHRpbmcg dy9BbmRyZXcgYWJvdXQgdGhpcyB5ZXN0ZXJkYXkgdG8gc2VlIGlmIA0KdGhlcmUgY291bGQg YmUgc29tZSBiZW5lZml0cyBmb3IgZm9sa3Mgd2hvIGFyZSBydW5uaW5nIHBndmVjdG9yIG9u IFBHMTcuDQoNCj4gSGVyZSdzIGEgdG95IHRvIHN0cmVhbWlmeSB0aGUga25vd24tb3JkZXIg cGFydC4gIEkgdGhpbmsgZm9yIHRoZSBmdXp6eQ0KPiBwYXJ0IHRoYXQgbGlua3MgdGhvc2Ug cGFydHMgdG9nZXRoZXIsIG1heWJlIHRoZXJlIGlzIHNvbWUgd2F5IHRvIGd1ZXNzDQo+IHdo ZW4gaXQncyBhIHJlYXNvbmFibGUgdGltZSB0byBzcGVjdWxhdGl2ZWx5IHByZWZldGNoIHRo ZSBsb3dlc3Qgb3JkZXINCj4gc3R1ZmYgaW4gdGhlIHBhaXJpbmcgaGVhcCwgYW5kIHRoZW4g ZGVhbCB3aXRoIGl0IGlmIHlvdSdyZSB3cm9uZywgYnV0DQo+IEkgZGlkbid0IHRyeSB0aGF0 Li4uDQoNCkkgd291bGQgc3VnZ2VzdCBzdWJtaXR0aW5nIHRoaXMgYXQgbGVhc3QgYXMgYSBk cmFmdCBQUiB0byB0aGUgcGd2ZWN0b3IgDQpwcm9qZWN0WzFdOg0KDQpodHRwczovL2dpdGh1 Yi5jb20vcGd2ZWN0b3IvcGd2ZWN0b3INCg0KPiBTb21lb25lIGludm9sdmVkIGluIHRoYXQg cHJvamVjdCBtZW50aW9uZWQgdGhhdCBpdCdzIHByb2JhYmx5IG5vdCBhDQo+IGdyZWF0IHRv cGljIHRvIHJlc2VhcmNoIGluIHByYWN0aWNlLCBiZWNhdXNlIHJlYWwgd29ybGQgdXNlcnMg b2YgSE5TVw0KPiB1c2UgZnVsbHkgY2FjaGVkIGllIHByZXdhcm1lZCBpbmRleGVzLCBiZWNh dXNlIHRoZSBwZXJmb3JtYW5jZSBpcyBzbw0KPiBiYWQgb3RoZXJ3aXNlLg0KDQpJIGRvbid0 IHRoaW5rIHRoYXQgd2FzIG1lLCBhdCBsZWFzdCBpbiB0aG9zZSB3b3JkcyAoYW5kIEkgaGFk IG5vdGVkIEknZCANCmxvdmUgdG8gY2hhdCB3L3lvdSBhYm91dCB0aGlzLCBidXQgd2UgZGlk bid0IGZpbmQgdGltZSkuIFN0YXRpbmcgaXQgDQpkaWZmZXJlbnRseSwgdGhlICJpZGVhbCIg aXMgdG8ga2VlcCB0aGUgaW5kZXhlcyBpbiBtZW1vcnksIGFzIHRoYXQgbGVhZHMgDQp0byB0 aGUgYmVzdCBwZXJmb3JtYW5jZSwgYnV0IHJlYWxpdHkgaXMgbW9yZSBjb21wbGljYXRlZC4g VGhlc2UgZGF0YXNldHMgDQphcmUgcXVpdGUgbGFyZ2UgKGUuZy4gdGhlIDE1MzYtZGltIHZl Y3RvciBpcyBhIDZLQiBwYXlsb2FkLCBleGNsdWRpbmcgDQp3aGF0J3MgaW4gdGhlIGluZGV4 KSBhbmQgaWYgeW91J3JlIHN0b3JpbmcgdGhlIGZ1bGwgdmVjdG9yIGluIHRoZSBpbmRleCAN Cih0aGVyZSBhcmUgbm93IHNvbWUgcXVhbnRpemF0aW9uIG1ldGhvZHMgYXZhaWxhYmxlWzRd KSwgeW91IGNhbiBlYXNpbHkgDQpkb3VibGUgeW91ciBkYXRhc2V0IHNpemUsIGFuZCBxdWlj a2x5IGV4Y2VlZCBhdmFpbGFibGUgbWVtb3J5LiBTbyBJIA0KdGhpbmsgaW4gdGhlIHJlYWwg d29ybGQsIHlvdSdyZSBtb3JlIGxpa2VseSB0byBzZWUgc3dhcHBpbmcgcGFnZXMgDQpiZXR3 ZWVuIGRpc2sgYW5kIG1lbW9yeS4gU29tZSBvZiB0aGlzIHdhcyBhZGRyZXNzZWQgaW4gdGhl IHRhbGsgQCANClBHQ29uZi5kZXZbM10gKHNsaWRlcyBoZXJlWzJdKS4NCg0KPiAgKFRob3Vn aCBtYXliZSB0aGF0IGFyZ3VtZW50IGlzIGEgbGl0dGxlIGNpcmN1bGFyLi4uKS4NCj4gU28g YWx0aG91Z2ggdGhpcyBwYXRjaCBjbGVhcmx5IHNwZWVkcyB1cCBjb2xkIEhTTlcgc2VhcmNo ZXMgdG8gYQ0KPiBkZWdyZWUgY29udHJvbGxlZCBieSBlZmZlY3RpdmVfaW9fY29uY3VycmVu Y3ksIEknbGwgcHJvYmFibHkgbG9vayBmb3INCj4gc29tZXRoaW5nIGVsc2UuICBTdWdnZXN0 aW9ucyBmb3IgaW50ZXJlc3RpbmcgaW5kZXggdHlwZXMgdG8gbG9vayBhdA0KPiBzdHJlYW1p ZnlpbmcgYXJlIHZlcnkgd2VsY29tZSENCg0KWXVwLCBzbyB0aGlzIG1ha2VzIHNlbnNlIGZv ciBITlNXIHBhcnRpY3VsYXJseSBhdCB0aGUgaGlnaGVyLWxldmVsIA0KcGFnZXMuIEJ1dCBp dCBtYXkgbWFrZSBtb3JlIHNlbnNlIGZvciBJVkZGbGF0LCBnaXZlbiBob3cgaXQgY2x1c3Rl cnMgDQpkYXRhLiBXaXRoIElWRkZsYXQsIHlvdSBmaXJzdCBmaW5kIHlvdXIgbGlzdHMvY2Vu dGVycywgYW5kIHRoZW4geW91IA0KZGV0ZXJtaW5lIGhvdyB5b3UgaW5kZXggZWFjaCB2ZWN0 b3IgYXJvdW5kIHRoZSBsaXN0cy4gV2hlbiB0aG9zZSBsaXN0cyANCmFyZSBzdG9yZWQgdG8g ZGlzaywgdGhleSdyZSBiYXNpY2FsbHkgc2VxdWVudGlhbC4gQSBsb3Qgb2YgdGhlIHN0cnVn Z2xlcyANCndpdGggSVZGRmxhdCBpcyBib3RoIHRoZSBsb25nIGxvYWQgZnJvbSBkaXNrIGFu ZCB1bHRpbWF0ZWx5IHNvbWUgDQpjb21wdHVhdGlvbmFsIGlzc3VlcyBmb3IgYSBsYXJnZXIg c2V0IG9mIHZlY3RvciBjb21wYXJpc29ucyAodGhvdWdoIGlmIA0KeW91J3JlIGFibGUgdG8g YnVpbGQgc21hbGwsIGVmZmljaWVudCBjbHVzdGVycywgaXQgY2FuIGJlIG11Y2ggZmFzdGVy IA0KdGhhbiBITlNXISkuIEhOU1cgYmVoYXZlcyBtb3JlIGxpa2UgYSAoYmVhciB3aXRoIG1l KSB0eXBpY2FsbHkgDQoidHJlZS1iYXNlZCIgaW5kZXgsIHdoZXJlIHlvdSdsbCBoYXZlIGhv dCBzcG90cyBhdCB0aGUgdG9wLCBidXQgYmVjYXVzZSANCm9mIHRoZSBuYXR1cmUgb2YgdmVj dG9yIHNlYXJjaCwgdGhlIGxvd2VyIGxldmVscyB0ZW5kIHRvIGJlIG1vcmUgcmFuZG9tIA0K aW4gYWNjZXNzLg0KDQpSZWdhcmRsZXNzLCB0aGUgcGFydCB3aGVyZSB0aGlzIGlzIGludGVy ZXN0aW5nIChhdCBsZWFzdCB0byBtZSkgaXMgdGhhdCANCmEgbG90IG9mIHRoZXNlIHZlY3Rv cnMgdGVuZCB0byB0YWtlIHVwIGEgZnVsbCBwYWdlIGFueXdheSwgc28gYW55dGhpbmcgDQp3 ZSBjYW4gZG8gdG8gcmVhZCB0aGVtIGZhc3RlciBmcm9tIGRpc2sgd2lsbCBnZW5lcmFsbHkg Z2V0IGEgdGh1bWJzIHVwIA0KZnJvbSBtZS4NCg0KPiBIbW0uICBJZiB0aGF0J3MgcmVhbGx5 IHRydWUgYWJvdXQgSE5TVyB0aG91Z2gsIHRoZW4gdGhlcmUgbWF5IHN0aWxsIGJlDQo+IGFu IG9wcG9ydHVuaXR5IHRvIGRvIGF1dG9tYXRpYyBtZW1vcnkgcHJlZmV0Y2hpbmdbMV0uICBC dXQgdGhlbiBpbiB0aGUNCj4gY2FzZSBvZiBpbmRleCBidWlsZGluZywgInN0cmVhbSIgaXMg TlVMTCBpbiB0aGlzIHBhdGNoIGFueXdheS4gIEl0DQo+IHN1cmVseSBtdXN0IGFsc28gYmUg cG9zc2libGUgdG8gZmluZCBzb21lIGdvb2QgcGxhY2VzIHRvIHB1dA0KPiBwcm9maXRhYmxl IGV4cGxpY2l0IHBnX21lbV9wcmVmZXRjaCgpIGNhbGxzIGdpdmVuIHRoZSBwcmVkaWN0YWJp bGl0eQ0KPiBhbmQgdGhlIG5lZWQgdG8gZ2V0IG9ubHkgfjYwbnMgYWhlYWQgZm9yIHRoYXQg dXNhZ2UuICBJIGRpZG4ndCBsb29rDQo+IGludG8gdGhhdCBiZWNhdXNlIEkgd2FzIHRyeWlu ZyB0byBwcm92ZSB0aGluZ3MgYWJvdXQgcmVhZF9zdHJlYW0uYywNCj4gbm90IGdldCBpbnZv bHZlZCBpbiBhbm90aGVyIHByb2plY3QgOi1EDQoNCldlbGwsIGFzIGFsbHVkZWQgdG8gaW5b Ml0sIHRoaW5raW5nIGFib3V0IGhvdyBhbm90aGVyIHByb2plY3QgdXNlcyB0aGlzIA0Kd2ls bCBjZXJ0YWlubHkgaGVscCwgYW5kIGFueXRoaW5nIHdlIGNhbiBkbyB0byBjb250aW51ZSB0 byBzcGVlZCB1cCANCnZlY3RvciBxdWVyaWVzIGhlbHBzIFBvc3RncmVTUUwgOykgU29tZSBv ZiB0aGUgY29udHJpYnV0aW9ucyBmcm9tIGZvbGtzIA0Kd2hvIGhhdmUgZm9jdXNlZCBvbiBj b3JlIGhhdmUgc2lnbmlmaWNhbnRseSBoZWxwZWQgcGd2ZWN0b3IuDQoNCj4gSGVyZSBlbmRz IG15IHNjaWVuY2UgZXhwZXJpbWVudCByZXBvcnQsIHdoaWNoIEknbSBkcm9wcGluZyBoZXJl IGp1c3QNCj4gaW4gY2FzZSBvdGhlcnMgc2VlIHVzZWZ1bCBpZGVhcyBoZXJlLiAgVGhlIG1h aW4gdGhpbmcgSSBsZWFybmVkIGFib3V0DQo+IHRoZSByZWFkIHN0cmVhbSBBUEkgaXMgdGhh dCBpdCdkIGJlIG5pY2UgdG8gYmUgYWJsZSB0byByZXNldCB0aGUNCj4gc3RyZWFtIGJ1dCBw cmVzZXJ2ZSB0aGUgZGlzdGFuY2UgKHNvbWV0aGluZyB0aGF0IGNhbWUgdXAgb24gdGhlDQo+ IHN0cmVhbWluZyBzZXF1ZW50aWFsIHNjYW4gdGhyZWFkIGZvciBhIGRpZmZlcmVudCByZWFz b24pLCB0byBkZWFsIHdpdGgNCj4gY2FzZXMgd2hlcmUgbG9vay1haGVhZCBvcHBvcnR1bml0 aWVzIGNvbWUgaW4gYnVyc3RzIGJ1dCB5b3Ugd2FudCBhDQo+IGxvbmdlciBsaXZlZCBzdHJl YW0gdGhhbiBJIHVzZWQgaGVyZS4gIFRoYXQgaXMgdGhlIHJlYXNvbiB0aGUgcGF0Y2gNCj4g Y3JlYXRlcyBhbmQgZGVzdHJveXMgdGVtcG9yYXJ5IHN0cmVhbXMgaW4gYSBsb29wOyBkb2gu ICBJdCBhbHNvDQo+IHByb3ZpZGVzIGFuIGludGVyZXN0aW5nIGNhc2Ugc3R1ZHkgZm9yIHdo YXQgc3BlY3VsYXRpdmUgcmFuZG9tDQo+IGxvb2stYWhlYWQgc3VwcG9ydCBtaWdodCBuZWVk IHRvIGxvb2sgbGlrZS4NCg0KSWYgeW91J3JlIGN1cmlvdXMsIEkgY2FuIGZpcmUgdXAgc29t ZSBvZiBteSBtb3JlIHNlcmlvdXMgYmVuY2htYXJrcyBvbiANCnRoaXMgdG8gZG8gYSBiZWZv cmUvYWZ0ZXIgdG8gc2VlIGlmIHRoZXJlJ3MgYW55dGhpbmcgaW50ZXJlc3RpbmcuIEkgaGF2 ZSANCmEgZmV3IGxhcmdlIGRhdGFzZXRzICgxMHMgb2YgbWlsbGlvbnMpIG9mIGxhcmdlciB2 ZWN0b3JzICgxNTM2ZGltID0+IDZLQiANCnBheWxvYWRzKSB0aGF0IGNvdWxkIHNlZSB0aGUg bmV0IGVmZmVjdCBoZXJlLg0KDQo+IChNYWtlIHN1cmUgeW91IHJlbWVtYmVyIHRvIHNldCBl ZmZlY3RpdmVfaW9fY29uY3VycmVuY3kgdG8gYW4NCj4gaW50ZXJlc3RpbmcgbnVtYmVyIGlm IHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgbG90IG9mIG92ZXJsYXBwaW5nDQo+IGZhZHZpc2Ug Y2FsbHMuKQ0KDQpXaGF0IHdvdWxkIHlvdSByZWNvbW1lbmQgYXMgYW4gImludGVyZXN0aW5n IG51bWJlcj8iIC0gcGFydGljdWxhcmx5IA0KdXNpbmcgdGhlIGRhdGEgcGFyYW1ldGVycyBh Ym92ZS4NCg0KVGhhbmtzLA0KDQpKb25hdGhhbg0KDQpbMV0gaHR0cHM6Ly9naXRodWIuY29t L3BndmVjdG9yL3BndmVjdG9yDQpbMl0gDQpodHRwczovL3d3dy5wZ2V2ZW50cy5jYS9ldmVu dHMvcGdjb25mZGV2MjAyNC9zZXNzaW9ucy9zZXNzaW9uLzEvc2xpZGVzLzQyL3BnY29uZmRl di0yMDI0LXZlY3RvcnMucGRmDQpbM10gDQpodHRwczovL3d3dy5wZ2V2ZW50cy5jYS9ldmVu dHMvcGdjb25mZGV2MjAyNC9zY2hlZHVsZS9zZXNzaW9uLzEtdmVjdG9ycy1ob3ctdG8tYmV0 dGVyLXN1cHBvcnQtYS1uYXN0eS1kYXRhLXR5cGUtaW4tcG9zdGdyZXNxbC8NCls0XSBodHRw czovL2prYXR6MDUuY29tL3Bvc3QvcG9zdGdyZXMvcGd2ZWN0b3Itc2NhbGFyLWJpbmFyeS1x dWFudGl6YXRpb24vDQo= --------------reuS6a3dDGWxfOBZ6kcCqjKE-- --------------SqkKVDCgJ2N0ObOpWOf7MBbU Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEE+oS2la8r95ogZD/x8QSccp8cZScFAmZobyUFAwAAAAAACgkQ8QSccp8cZScD zBAAl9C7hjua8V5dKLRb8q1tzyE8Q3yagC9M2ocTpgvyewnV5MehAG6kwALaRSCZV7LRhcf7tZyk dyxf2CriybFmV7wtTFrzN71GzuWGnhpMNyunmo5Ie9nTi/91KDhCmolpYTAx6UzCqP4RMVE53e8n gcT3ZKh7IS6tQiZkzlQwNePawkU1sj/RDw1HmJZBkRFUc/G7NyqbtHZnrjvI3+f3tar9KIYT7Wfc epIDmEIx6mY/AZC2nR02UxVyP42IxOs/70uBDssJLvqdE6G+HzrUFJZqJ2qpQ0q72xs/1lzEupCL Rqb8W8Six0gdS0mV8grUoeGh0mJ77QQClVHaL+U2kmqqd77VF+ypzkSCAkX/oRl84azRbp+B4XDK X2OQ/5hsJ2c65IFqA3EdNp9uyaUjeH3+4OQSRBjIUwoMsCbXtOeWqvJ4LDCEfXD7l6GlikpmiaEc sQ3RwKywmEi1Fz/KR+OVGKOmIPX2Ljd5Dq+LfAcEEQnCvJzJmgcEOwLUGbMtfMm5oC1JJzXQ7+L+ eoe6bKdWHsge77d6ln190QcMyJtQjpysvTmVmKwPm907/h7DsipJkGGg2Wtb1EvU24AZ7yi5s3zc nSVVaj+2/CrqmGn0MztRhqcm0oQWt4u6lMG6lcoJl4R9UktxwjZZVzXto/afm4sIwagZLzwfQy2P n6k= =/GVL -----END PGP SIGNATURE----- --------------SqkKVDCgJ2N0ObOpWOf7MBbU--