Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cgspX-0001of-5k for pgsql-performance@arkaria.postgresql.org; Thu, 23 Feb 2017 12:49:07 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cgspW-0005tu-Nk for pgsql-performance@arkaria.postgresql.org; Thu, 23 Feb 2017 12:49:06 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cgsnp-0002e9-Jk for pgsql-performance@postgresql.org; Thu, 23 Feb 2017 12:47:21 +0000 Received: from winex2.eldocomp.com ([205.159.99.53] helo=exchange.eldocomp.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cgsnl-0001OL-3m for pgsql-performance@postgresql.org; Thu, 23 Feb 2017 12:47:20 +0000 Received: from WINEX1.eldocomp.com ([169.254.1.107]) by VsWinExh02.eldocomp.com ([172.21.0.65]) with mapi id 14.03.0279.002; Thu, 23 Feb 2017 05:47:11 -0700 From: John Gorman To: Vitalii Tymchyshyn , "pgsql-performance@postgresql.org" Subject: Re: Correct use of cursors for very large result sets in Postgres Thread-Topic: [PERFORM] Correct use of cursors for very large result sets in Postgres Thread-Index: AQHSiPPtRz4ESJUglUmaqA3WAd61g6Ftj4+AgABMvwCAAQBZAIAAo+mAgADtnwCAA4MOgIAABMCA//+NeeCAAuWqgIAAKf1Q Date: Thu, 23 Feb 2017 12:47:09 +0000 Message-ID: <0A1B0B276DEE6441A2E68EB66D4540DAD71CAF01@WINEX1.eldocomp.com> References: <21063.1487349580@sss.pgh.pa.us> <26739.1487439829@sss.pgh.pa.us> <17679.1487683929@sss.pgh.pa.us> <0A1B0B276DEE6441A2E68EB66D4540DAD71C69E9@WINEX1.eldocomp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.20.132.2] Content-Type: multipart/alternative; boundary="_000_0A1B0B276DEE6441A2E68EB66D4540DAD71CAF01WINEX1eldocompc_" MIME-Version: 1.0 X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-performance Precedence: bulk Sender: pgsql-performance-owner@postgresql.org --_000_0A1B0B276DEE6441A2E68EB66D4540DAD71CAF01WINEX1eldocompc_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WWVzIG9mIGNvdXJzZSB0aGF04oCZcyBhbGwgdmVyaWZpZWQgYW5kIHRha2VuIGludG8gYWNjb3Vu dCBkdXJpbmcgY29kZSBpbml0aWFsaXphdGlvbg0KDQoNCkZyb206IFZpdGFsaWkgVHltY2h5c2h5 biBbbWFpbHRvOnZpdEB0eW0uaW1dDQpTZW50OiBXZWRuZXNkYXksIEZlYnJ1YXJ5IDIyLCAyMDE3 IDg6MTQgUE0NClRvOiBKb2huIEdvcm1hbjsgcGdzcWwtcGVyZm9ybWFuY2VAcG9zdGdyZXNxbC5v cmcNClN1YmplY3Q6IFJlOiBbUEVSRk9STV0gQ29ycmVjdCB1c2Ugb2YgY3Vyc29ycyBmb3IgdmVy eSBsYXJnZSByZXN1bHQgc2V0cyBpbiBQb3N0Z3Jlcw0KDQpGb3IgSkRCQyB0aGVyZSBhcmUgY2Vy dGFpbiBwcmVyZXF1aXNpdGVzIGZvciBzZXRGZXRjaFNpemUgdG8gd29yaywgZS5nLiB1c2luZyBm b3J3YXJkIG9ubHkgcmVzdWx0IHNldHMgYW5kIHRyYW5zYWN0aW9ucy4NCg0K0LLRgiwgMjEg0LvR jtGCLiAyMDE3INC+IDA5OjA2IEpvaG4gR29ybWFuIDxqZ29ybWFuQGVsZG9jb21wLmNvbTxtYWls dG86amdvcm1hbkBlbGRvY29tcC5jb20+PiDQv9C40YjQtToNCk15IGV4cGVyaWVuY2Ugd2l0aCBj dXJzb3JzIGluIFBvc3RncmVTUUwgd2l0aCBKYXZhIGhhcyBiZWVuIHRvIHN0YXkgYXdheSBmcm9t IHRoZW0uIFdlIHN1cHBvcnQgMiBkYXRhYmFzZXMgd2l0aCBvdXIgcHJvZHVjdCwgUG9zdGdyZVNR TCAoZGVmYXVsdCkgYW5kIFNRTCBTZXJ2ZXIuIFdoaWxlIHJlLWVuY3J5cHRpbmcgZGF0YSBpbiBh IGRhdGFiYXNlIHRoZSBhcHBsaWNhdGlvbiB1c2VkIGN1cnNvcnMgd2l0aCBhIGZldGNoIHNpemUg b2YgMTAwMC4NCg0KV29ya2VkIHBlcmZlY3RseSBvbiBTUUwgU2VydmVyIGFuZCBvbiBQb3N0Z3Jl U1FMIHVudGlsIHdlIGdvdCB0byBhIFBvc3RncmVTUUwgdGFibGUgd2l0aCBtb3JlIHRoYW4gMTEg bWlsbGlvbiByb3dzLiBBZnRlciBzcGVuZGluZyB3ZWVrcyB0cnlpbmcgdG8gZmlndXJlIG91dCB3 aGF0IHdhcyBoYXBwZW5pbmcsIEkgcmVhbGl6ZWQgdGhhdCB3aGVuIGl0IGdldHMgdG8gYSB0YWJs ZSB3aXRoIG1vcmUgdGhhbiAxMCBtaWxsaW9uIHJvd3MgZm9yIHNvbWUgcmVhc29uLCB0aGUgY3Vy c29yIGZ1bmN0aW9uYWxpdHkganVzdCBzaWxlbnRseSBzdG9wcGVkIHdvcmtpbmcgYW5kIGl0IHdh cyByZWFkaW5nIHRoZSBlbnRpcmUgdGFibGUuIEkgYXNrZWQgYW5vdGhlciB2ZXJ5IHNlbmlvciBh cmNoaXRlY3QgdG8gbG9vayBhdCBpdCBhbmQgaGUgY2FtZSB0byB0aGUgc2FtZSBjb25jbHVzaW9u LiBCZWNhdXNlIG9mIGxpbWl0ZWQgdGltZSwgSSBlbmRlZCB1cCB3b3JraW5nIGFyb3VuZCBpdCB1 c2luZyBsaW1pdC9vZmZzZXQuDQoNCkFnYWluIHdlIGFyZSB1c2luZyBKYXZhLCBzbyB0aGUgcHJv YmxlbSBjb3VsZCBqdXN0IGJlIGluIHRoZSBQb3N0Z3JlU1FMIEpEQkMgZHJpdmVyLiBBbHNvIHdl IHdlcmUgb24gOS4xIGF0IHRoZSB0aW1lLg0KDQpSZWdhcmRzDQpKb2huDQoNCkZyb206IHBnc3Fs LXBlcmZvcm1hbmNlLW93bmVyQHBvc3RncmVzcWwub3JnPG1haWx0bzpwZ3NxbC1wZXJmb3JtYW5j ZS1vd25lckBwb3N0Z3Jlc3FsLm9yZz4gW21haWx0bzpwZ3NxbC1wZXJmb3JtYW5jZS1vd25lckBw b3N0Z3Jlc3FsLm9yZzxtYWlsdG86cGdzcWwtcGVyZm9ybWFuY2Utb3duZXJAcG9zdGdyZXNxbC5v cmc+XSBPbiBCZWhhbGYgT2YgTWlrZSBCZWF0b24NClNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5IDIx LCAyMDE3IDY6NDkgQU0NClRvOiBwZ3NxbC1wZXJmb3JtYW5jZUBwb3N0Z3Jlc3FsLm9yZzxtYWls dG86cGdzcWwtcGVyZm9ybWFuY2VAcG9zdGdyZXNxbC5vcmc+DQpTdWJqZWN0OiBSZTogW1BFUkZP Uk1dIENvcnJlY3QgdXNlIG9mIGN1cnNvcnMgZm9yIHZlcnkgbGFyZ2UgcmVzdWx0IHNldHMgaW4g UG9zdGdyZXMNCg0KVGhhbmtzLCBUb20uDQoNCldvdWxkbid0IHRoaXMgbWVhbiB0aGF0IGN1cnNv cnMgYXJlIG5vdGljZWFibHkgbm9uLW9wdGltYWwgZXZlbiBmb3Igbm9ybWFsIGRhdGEgc2l6ZXMs IHNpbmNlIHRoZSBlbnRpcmUgZGF0YSB0byBiZSBzdHJlYW1lZCBmcm9tIHRoZSB0YWJsZSBpcyBh bHdheXMgZHVwbGljYXRlZCBpbnRvIGFub3RoZXIgYnVmZmVyIGFuZCB0aGVuIHN0cmVhbWVkPw0K DQo+IGlmIHlvdSB3YW50IHRoZSB3aG9sZSBxdWVyeSByZXN1bHQgYXQgb25jZSwgd2h5IGFyZSB5 b3UgYm90aGVyaW5nIHdpdGggYSBjdXJzb3I/DQoNClRoZSBQb3N0Z3JlU1FMIGRvY3MgKGh0dHBz Oi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvOS42L3N0YXRpYy9wbHBnc3FsLWN1cnNvcnMuaHRt bCNBRU42NjU1MSkgY2xlYXJseSByZWNvbW1lbmQgY3Vyc29ycyBhcyBhIHdheSB0byByZXR1cm4g YSByZWZlcmVuY2UgdG8gYSBsYXJnZSByZXN1bHQgc2V0IGZyb20gYSBmdW5jdGlvbiAoYXMgSSB1 bmRlcnN0b29kLCB0aGlzIGlzIHJlY29tbWVuZGVkIHByZWNpc2VseSBhcyBhIHdheSB0byBhdm9p ZCB0dXBsZS1iYXNlZCBidWZmZXJpbmcgb2YgdGhlIGRhdGEpLg0KDQpTbyBmb2xsb3dpbmcgdGhh dCBhZHZpY2UsIGl0J3Mgbm90IHVucmVhc29uYWJsZSB0aGF0IEkgd291bGQgYWN0dWFsbHkgaGF2 ZSBhIGN1cnNvciB0byBhIGxhcmdlIGRhdGFzZXQuDQoNClRoZW4sIEkgd291bGQgaWRlYWxseSB3 YW50IHRvIGJlIGFibGUgdG8gZmV0Y2ggdGhlIGRhdGEgZnJvbSB0aGF0IGN1cnNvciB3aXRob3V0 IHRoZSBlbnRpcmUgZGF0YSBnZXR0aW5nIGR1cGxpY2F0ZWQgKGV2ZW4gaWYgb25seSBhIGJpdCBh dCBhIHRpbWUgaW5zdGVhZCBvZiBhbGwgYXQgb25jZSwgd2hpY2ggc2VlbXMgdG8gYmUgdGhlIGJl c3QgY2FzZSBiZWhhdmlvdXIpIGFzIEkgZ28uDQoNCkFkZGl0aW9uYWxseSwgSSB0aG91Z2h0IHRo YXQgaWYgSSBoYWQgYSBzdHJlYW1pbmcgdXNlLWNhc2UgKHdoaWNoIEkgZG8pLCBhbmQgYSBzdHJl YW1pbmcgZGF0YS1hY2Nlc3MgbGF5ZXIgKHdoaWNoIEkgZG8pLCB0aGVuIHNpbmNlIGBTRUxFQ1Qg KiBGUk9NIGxhcmdlYCBpcyBhYnNvbHV0ZWx5IGZpbmUsIGVuZC10by1lbmQsIGluIHRoYXQgc2l0 dWF0aW9uLCB0aGVuIGJ5IHN5bW1ldHJ5IGFuZCB0aGUgcHJpbmNpcGxlIG9mIGxlYXN0IGFzdG9u aXNobWVudCBgRkVUQ0ggQUxMIEZST00gY3Vyc29yYCBtaWdodCBiZSBmaW5lIHRvby4NCg0K --_000_0A1B0B276DEE6441A2E68EB66D4540DAD71CAF01WINEX1eldocompc_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJ e2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQpA Zm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNvbnNvbGFzOw0KCXBhbm9zZS0xOjIgMTEgNiA5IDIg MiA0IDMgMiA0O30NCi8qIFN0eWxlIERlZmluaXRpb25zICovDQpwLk1zb05vcm1hbCwgbGkuTXNv Tm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAw MXB0Ow0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIs InNlcmlmIjt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0 eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNp dGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsN Cgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLk1zb0FjZXRh dGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29BY2V0YXRlDQoJe21zby1zdHlsZS1wcmlvcml0eTo5 OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IENoYXIiOw0KCW1hcmdpbjowaW47DQoJ bWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToi VGFob21hIiwic2Fucy1zZXJpZiI7fQ0Kc3Bhbi5nbWFpbG1zZw0KCXttc28tc3R5bGUtbmFtZTpn bWFpbF9tc2c7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTgNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwt cmVwbHk7DQoJZm9udC1mYW1pbHk6Q29uc29sYXM7DQoJY29sb3I6IzFGNDk3RDsNCglmb250LXdl aWdodDpub3JtYWw7DQoJZm9udC1zdHlsZTpub3JtYWw7fQ0Kc3Bhbi5CYWxsb29uVGV4dENoYXIN Cgl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3Jp dHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCI7DQoJZm9udC1mYW1pbHk6IlRh aG9tYSIsInNhbnMtc2VyaWYiO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4 cG9ydC1vbmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7fQ0KQHBhZ2Ug V29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAx LjBpbiAxLjBpbjt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0t Pjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0 PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUg bXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4 dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4N CjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIj4N CjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpDb25zb2xhcztjb2xvcjojMUY0OTdE Ij5ZZXMgb2YgY291cnNlIHRoYXTigJlzIGFsbCB2ZXJpZmllZCBhbmQgdGFrZW4gaW50byBhY2Nv dW50IGR1cmluZyBjb2RlIGluaXRpYWxpemF0aW9uPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p bHk6Q29uc29sYXM7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m YW1pbHk6Q29uc29sYXM7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7 Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkZy b206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom cXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+IFZpdGFsaWkgVHltY2h5 c2h5biBbbWFpbHRvOnZpdEB0eW0uaW1dDQo8YnI+DQo8Yj5TZW50OjwvYj4gV2VkbmVzZGF5LCBG ZWJydWFyeSAyMiwgMjAxNyA4OjE0IFBNPGJyPg0KPGI+VG86PC9iPiBKb2huIEdvcm1hbjsgcGdz cWwtcGVyZm9ybWFuY2VAcG9zdGdyZXNxbC5vcmc8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtQ RVJGT1JNXSBDb3JyZWN0IHVzZSBvZiBjdXJzb3JzIGZvciB2ZXJ5IGxhcmdlIHJlc3VsdCBzZXRz IGluIFBvc3RncmVzPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Rm9yIEpE QkMgdGhlcmUgYXJlIGNlcnRhaW4gcHJlcmVxdWlzaXRlcyBmb3Igc2V0RmV0Y2hTaXplIHRvIHdv cmssIGUuZy4gdXNpbmcgZm9yd2FyZCBvbmx5IHJlc3VsdCBzZXRzIGFuZCB0cmFuc2FjdGlvbnMu PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7 PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj7QstGCLCAyMSDQ u9GO0YIuIDIwMTcg0L4gMDk6MDYgSm9obiBHb3JtYW4gJmx0OzxhIGhyZWY9Im1haWx0bzpqZ29y bWFuQGVsZG9jb21wLmNvbSI+amdvcm1hbkBlbGRvY29tcC5jb208L2E+Jmd0OyDQv9C40YjQtTo8 bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlcjpub25lO2Jv cmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowaW4gMGluIDBpbiA2LjBwdDtt YXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGluIj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t Ym90dG9tLWFsdDphdXRvIj48c3BhbiBjbGFzcz0iZ21haWxtc2ciPjxzcGFuIHN0eWxlPSJmb250 LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOiMxRjQ5N0QiPk15IGV4cGVy aWVuY2Ugd2l0aCBjdXJzb3JzIGluIFBvc3RncmVTUUwgd2l0aCBKYXZhIGhhcyBiZWVuIHRvIHN0 YXkgYXdheSBmcm9tIHRoZW0uIFdlIHN1cHBvcnQNCiAyIGRhdGFiYXNlcyB3aXRoIG91ciBwcm9k dWN0LCBQb3N0Z3JlU1FMIChkZWZhdWx0KSBhbmQgU1FMIFNlcnZlci4gV2hpbGUgcmUtZW5jcnlw dGluZyBkYXRhIGluIGEgZGF0YWJhc2UgdGhlIGFwcGxpY2F0aW9uIHVzZWQgY3Vyc29ycyB3aXRo IGEgZmV0Y2ggc2l6ZSBvZiAxMDAwLjwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGNsYXNzPSJnbWFpbG1zZyI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6Q29uc29sYXM7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7 PC9zcGFuPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw YW4gY2xhc3M9ImdtYWlsbXNnIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh bWlseTpDb25zb2xhcztjb2xvcjojMUY0OTdEIj5Xb3JrZWQgcGVyZmVjdGx5IG9uIFNRTCBTZXJ2 ZXIgYW5kIG9uIFBvc3RncmVTUUwgdW50aWwgd2UgZ290IHRvIGEgUG9zdGdyZVNRTCB0YWJsZSB3 aXRoDQogbW9yZSB0aGFuIDExIG1pbGxpb24gcm93cy4gQWZ0ZXIgc3BlbmRpbmcgd2Vla3MgdHJ5 aW5nIHRvIGZpZ3VyZSBvdXQgd2hhdCB3YXMgaGFwcGVuaW5nLCBJIHJlYWxpemVkIHRoYXQgd2hl biBpdCBnZXRzIHRvIGEgdGFibGUgd2l0aCBtb3JlIHRoYW4gMTAgbWlsbGlvbiByb3dzIGZvciBz b21lIHJlYXNvbiwgdGhlIGN1cnNvciBmdW5jdGlvbmFsaXR5IGp1c3Qgc2lsZW50bHkgc3RvcHBl ZCB3b3JraW5nIGFuZCBpdCB3YXMgcmVhZGluZyB0aGUgZW50aXJlDQogdGFibGUuIEkgYXNrZWQg YW5vdGhlciB2ZXJ5IHNlbmlvciBhcmNoaXRlY3QgdG8gbG9vayBhdCBpdCBhbmQgaGUgY2FtZSB0 byB0aGUgc2FtZSBjb25jbHVzaW9uLiBCZWNhdXNlIG9mIGxpbWl0ZWQgdGltZSwgSSBlbmRlZCB1 cCB3b3JraW5nIGFyb3VuZCBpdCB1c2luZyBsaW1pdC9vZmZzZXQuPC9zcGFuPjwvc3Bhbj48bzpw PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gY2xhc3M9ImdtYWlsbXNn Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpDb25zb2xhcztjb2xv cjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90 dG9tLWFsdDphdXRvIj48c3BhbiBjbGFzcz0iZ21haWxtc2ciPjxzcGFuIHN0eWxlPSJmb250LXNp emU6MTEuMHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOiMxRjQ5N0QiPkFnYWluIHdlIGFy ZSB1c2luZyBKYXZhLCBzbyB0aGUgcHJvYmxlbSBjb3VsZCBqdXN0IGJlIGluIHRoZSBQb3N0Z3Jl U1FMIEpEQkMgZHJpdmVyLiBBbHNvDQogd2Ugd2VyZSBvbiA5LjEgYXQgdGhlIHRpbWUuPC9zcGFu Pjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gY2xh c3M9ImdtYWlsbXNnIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpD b25zb2xhcztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBjbGFzcz0iZ21haWxtc2ciPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOiMxRjQ5N0Qi PlJlZ2FyZHM8L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj48c3BhbiBjbGFzcz0iZ21haWxtc2ciPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0 O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2NvbG9yOiMxRjQ5N0QiPkpvaG48L3NwYW4+PC9zcGFuPjxv OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBjbGFzcz0iZ21haWxt c2ciPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OkNvbnNvbGFzO2Nv bG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i b3R0b20tYWx0OmF1dG8iPjxzcGFuIGNsYXNzPSJnbWFpbG1zZyI+PGI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMt c2VyaWYmcXVvdDsiPkZyb206PC9zcGFuPjwvYj48L3NwYW4+PHNwYW4gY2xhc3M9ImdtYWlsbXNn Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEm cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+DQo8YSBocmVmPSJtYWlsdG86cGdzcWwtcGVy Zm9ybWFuY2Utb3duZXJAcG9zdGdyZXNxbC5vcmciIHRhcmdldD0iX2JsYW5rIj5wZ3NxbC1wZXJm b3JtYW5jZS1vd25lckBwb3N0Z3Jlc3FsLm9yZzwvYT4gW21haWx0bzo8YSBocmVmPSJtYWlsdG86 cGdzcWwtcGVyZm9ybWFuY2Utb3duZXJAcG9zdGdyZXNxbC5vcmciIHRhcmdldD0iX2JsYW5rIj5w Z3NxbC1wZXJmb3JtYW5jZS1vd25lckBwb3N0Z3Jlc3FsLm9yZzwvYT5dDQo8Yj5PbiBCZWhhbGYg T2YgPC9iPk1pa2UgQmVhdG9uPC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEw LjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90 OyI+PGJyPg0KPHNwYW4gY2xhc3M9ImdtYWlsbXNnIj48Yj5TZW50OjwvYj4gVHVlc2RheSwgRmVi cnVhcnkgMjEsIDIwMTcgNjo0OSBBTTwvc3Bhbj48YnI+DQo8c3BhbiBjbGFzcz0iZ21haWxtc2ci PjxiPlRvOjwvYj4gPGEgaHJlZj0ibWFpbHRvOnBnc3FsLXBlcmZvcm1hbmNlQHBvc3RncmVzcWwu b3JnIiB0YXJnZXQ9Il9ibGFuayI+DQpwZ3NxbC1wZXJmb3JtYW5jZUBwb3N0Z3Jlc3FsLm9yZzwv YT48L3NwYW4+PGJyPg0KPHNwYW4gY2xhc3M9ImdtYWlsbXNnIj48Yj5TdWJqZWN0OjwvYj4gUmU6 IFtQRVJGT1JNXSBDb3JyZWN0IHVzZSBvZiBjdXJzb3JzIGZvciB2ZXJ5IGxhcmdlIHJlc3VsdCBz ZXRzIGluIFBvc3RncmVzPC9zcGFuPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k aXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286 cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj5UaGFua3MsIFRvbS48YnI+DQo8 YnI+DQpXb3VsZG4ndCB0aGlzIG1lYW4gdGhhdCBjdXJzb3JzIGFyZSBub3RpY2VhYmx5IG5vbi1v cHRpbWFsIGV2ZW4gZm9yIG5vcm1hbCBkYXRhIHNpemVzLCBzaW5jZSB0aGUgZW50aXJlIGRhdGEg dG8gYmUgc3RyZWFtZWQgZnJvbSB0aGUgdGFibGUgaXMgYWx3YXlzIGR1cGxpY2F0ZWQgaW50byBh bm90aGVyIGJ1ZmZlciBhbmQgdGhlbiBzdHJlYW1lZD88bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2 Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mZ3Q7Jm5ic3A7PHNwYW4gY2xhc3M9ImdtYWlsbXNn Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0Ij5pZiB5b3Ugd2FudCB0aGUgd2hvbGUgcXVl cnkgcmVzdWx0IGF0Jm5ic3A7b25jZSwgd2h5IGFyZSB5b3UgYm90aGVyaW5nIHdpdGggYSBjdXJz b3I/PC9zcGFuPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv dHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGNsYXNzPSJnbWFpbG1zZyI+PHNwYW4gc3R5bGU9ImZv bnQtc2l6ZTo5LjVwdCI+VGhlIFBvc3RncmVTUUwgZG9jcyAoPGEgaHJlZj0iaHR0cHM6Ly93d3cu cG9zdGdyZXNxbC5vcmcvZG9jcy85LjYvc3RhdGljL3BscGdzcWwtY3Vyc29ycy5odG1sI0FFTjY2 NTUxIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy85LjYv c3RhdGljL3BscGdzcWwtY3Vyc29ycy5odG1sI0FFTjY2NTUxPC9hPikmbmJzcDtjbGVhcmx5DQog cmVjb21tZW5kIGN1cnNvcnMgYXMgYSB3YXkgdG8gcmV0dXJuIGEgcmVmZXJlbmNlIHRvIGEgbGFy Z2UgcmVzdWx0IHNldCBmcm9tIGEgZnVuY3Rpb24gKGFzIEkgdW5kZXJzdG9vZCwgdGhpcyBpcyBy ZWNvbW1lbmRlZCBwcmVjaXNlbHkgYXMgYSB3YXkgdG8gYXZvaWQgdHVwbGUtYmFzZWQgYnVmZmVy aW5nIG9mIHRoZSBkYXRhKS48L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8 ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2 Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6 YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gY2xhc3M9ImdtYWlsbXNnIj48 c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0Ij5TbyBmb2xsb3dpbmcgdGhhdCBhZHZpY2UsIGl0 J3Mgbm90IHVucmVhc29uYWJsZSB0aGF0IEkgd291bGQgYWN0dWFsbHkgaGF2ZSBhIGN1cnNvciB0 byBhIGxhcmdlIGRhdGFzZXQuPC9zcGFuPjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0 bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8L2Rp dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0 OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGNsYXNzPSJnbWFpbG1zZyI+ PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjVwdCI+VGhlbiwgSSB3b3VsZCBpZGVhbGx5IHdhbnQg dG8gYmUgYWJsZSB0byBmZXRjaCB0aGUgZGF0YSBmcm9tIHRoYXQgY3Vyc29yIHdpdGhvdXQgdGhl IGVudGlyZSBkYXRhIGdldHRpbmcgZHVwbGljYXRlZCAoZXZlbiBpZg0KIG9ubHkgYSBiaXQgYXQg YSB0aW1lIGluc3RlYWQgb2YgYWxsIGF0IG9uY2UsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZSBiZXN0 IGNhc2UgYmVoYXZpb3VyKSBhcyBJIGdvLjwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8 L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9w Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBjbGFzcz0iZ21h aWxtc2ciPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS41cHQiPkFkZGl0aW9uYWxseSwgSSB0aG91 Z2h0IHRoYXQgaWYgSSBoYWQgYSBzdHJlYW1pbmcgdXNlLWNhc2UgKHdoaWNoIEkgZG8pLCBhbmQg YSBzdHJlYW1pbmcgZGF0YS1hY2Nlc3MgbGF5ZXIgKHdoaWNoIEkgZG8pLCB0aGVuDQogc2luY2Ug YFNFTEVDVCAqIEZST00gbGFyZ2VgIGlzIGFic29sdXRlbHkgZmluZSwgZW5kLXRvLWVuZCwgaW4g dGhhdCBzaXR1YXRpb24sIHRoZW4gYnkgc3ltbWV0cnkgYW5kIHRoZSBwcmluY2lwbGUgb2YgbGVh c3QgYXN0b25pc2htZW50IGBGRVRDSCBBTEwgRlJPTSBjdXJzb3JgIG1pZ2h0IGJlIGZpbmUgdG9v Ljwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph dXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2 Pg0KPC9kaXY+DQo8L2Jsb2NrcXVvdGU+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1s Pg0K --_000_0A1B0B276DEE6441A2E68EB66D4540DAD71CAF01WINEX1eldocompc_--