postgresql18-docs-18.1-150600.13.3.1<>,i-p9|nF&gtr?:lqqӠzN O^  h1U U7;g} v\wJji\?ӱ ٰpEGDʟ9I.UxY %<~l-H)nF5GֹEH⋂iFD)_XkZA&"4n5ZBYZgYKc=F

;? d ' I $=^i  ~ ) <4 r wΖ(ε8μS9S:SFGH0@ICdXH0YH8\H`][^{bcɣd*e/f2l4uHvlzޫ޼Cpostgresql18-docs18.1150600.13.3.1HTML Documentation for PostgreSQLPostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, and user-defined types and functions. This package contains the HTML documentation for PostgreSQL. The start page is: file:///usr/share/doc/packages/postgresql18/html/index.html . Manual pages for the PostgreSQL SQL statements can be found in the postgresql package.i-h04-ch1cySUSE Linux Enterprise 15SUSE LLC PostgreSQLhttps://www.suse.com/Productivity/Databases/Toolshttps://www.postgresql.org/linuxnoarchXDqq1AO-Z*(ook$j'(=+QmP=@Y< UNN>N0=m <a18D,)5Gz"k=F-YO YB/iFL!4$v~GCK'y I\8vו#cN%4#:$cS$ =V,8|s 3n"#n@0I8@Z#S`h .9(.aa;-V9C  bYlF#bE" T  j k &yCk9&b&+||589$v8C< tU@/'-1P({/'55r 1<,FW Xu/W6_> @7dp :  %+k ~3h0 =*a"' .  *9dX1!E0 E@8 `L3 |KM4=<Y,WT7&  A<;Cx%L_""1t&nk`=fFo7wJ4<Kh-RF' YO.55GK!9?<!hfg&+ >+#P*JO$ 0~:_*!i+ %/^;%"O:7X&3 =uBfU=1y65~sq$6%KJv )[PX]q- 1#V(r c :"Ck(V)d5H!m{tK.lAiEC[VZrLAj&bt[(m&Z$G[%"2pO&+8pJC!lbmcQES|u& ,K+ \8~ x %(" \V''9]*?8  U> 9: "Lmpr'f,"lN{Y1dsQ#:;: '(`3kY >6(JshX=:L>(ro4!z:$CC; U Mri>& :H4rgy&CM 2j!**%D)j26;Kk+&I%-q_9!dwD+^ v ]:bgL5-g"1zcMDXbN*Da! 6/38%'_iY-uGV[(9 4<Lhra 9<r" -dHZ f>"_'('4 >_x5u- # O$*y L ' 2w @Z@_"L%SX)n?1%C* E*}4kKmX;ssk;0t+.%f%![#xg;%b6 Uˍ I!! !'MJH RZa+>FD\}*!+3j|* r, E6-YzkSS'3A,a=CG s=g}AA큤i-i-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-si-s1468dcd53b169be17d2c7ccbe9234764a136190ad61fdeb13b246ba1def2dd1032e41395e4f132a7b57753bc00413f24711efe3e48ea71bdac345284024614c0146230c0b92fa04e9c48904d0a6192028c7bc43d9835a1c0a516d4c780276f80279c679168dc1d1a12dea81420c389b3b7e4188a1baa4a60276005d84bad15bd1288064f947379ad451304a7894ad192f96e746bd41e86b7829dae4586ccd0bc6f4194a45edfe32ecbe10e482a6df766f076fe88371e0b73ca4ba771b00b9da920d91e138cd6008757917c7e129c5ea27d2ef2787cab84df92f345cd970c82ea36d0434681f1f4d1e45df507c4cc265e16564a51532dd6bb5d33f0c6e318294e49d37674773465dbc8ab299874cdff40f08a9037d13ae6857ddc27c31d7c768c326d5a47547b14c1dc36bf4be562cdfcf48c1caaccb3d75b3ebcef5583e687ba08b6e3ca89ec013144fe8a28b5259ea278e231dd37a402867deeebf3ed4e06d6eac35a9166cb53b4e94e487c9ea8175242c49bb95f487e424bb63d6ffac272a5ed269ace74c107f18cf2af850f02acb8a8f4f4e5fce85fb65d337616ecd2d0df4d3f12f3825bb2c760c9145606dc5e790314ebf70785e4b8ee534c8d9712bc9529a87804aa0c053a6ec62b75be76574f622fbce5ab7c917a117af4001f83f0daecc4e31eead56c01a849c2ae9cde320271311c70a8da81d6488335b52b80556efc31cbabfdc3d67bb67a9a61a95bcc4b5703f31f5dc4ce2dc13b29e7a403914a5af01d50969fe2ad1dbf018c710c4ad238e26a31e5c6918e3c9c556491088f78848b4c97c0101c44e604f1b56fc52831345747d2fb2ad5675f2faf27a981ac34204ed646f2d754e33ff12f7aaa9a170447900f9da6527bb188b29fd7cad8b0e8103b2d2f57a971e3a26a457272b38d6b568f69ceab9d6cbf7edaf18442ad7c1ccf64a827e8d57b97972e73e3dc9d1a24ff540c7b15449ac2f7fd2434f5e293cc54678dd2d68939b0d5a1f7d1f63069e9fcbfde70a9f919aaf311926ae44b1ba28289c590a895552a96af4dec1fa550e2225a9eabb2656542bb6742ca0f3893feb141297574d9fa3d14ff4ec3c519f283a178888aaa8553d4b239ebee16510bd5920292e56d2a3486295a7ce4a1ddee2751970128851fa4b7882cd333b805bf6d8bba1c75e61ab7c8a8757378232033369b82efddd1e47756775afcbedddef0f8dbdacbf452f9089eeafc7dd46dad15844b79c735ca4fb2b31f93af32b61a494363cfdbcd91d86a51d23c951d470e40d93797b6f0f21da9893af8f5a97edfaa4cb8af81bfb8449b1c46f39b66b58dfab88e9469309b8201f565785c4b7555e2080ce8d3b27fc6874d35149086bf6b3c1752bedda573a83d8ed39adc03ccdc3d043d18756c1adc48960237d120f572f4ece5300f79dcda6ea9fb15de138e1ea66f0c96ebe632d34448684a615df66305cd4932fe4f470ab72efa0007f5c01ce52179f47fa0f93feb312bbd932c7369fa987ba750b061d7ff26da168ce05150ad1230cc1e60db22d3cd75fb8b72b69c6f442dcd480704f6fc1044a747fa47e7b5ff67fa0177de58e2ecb652533dd9539001ce437f822161e8a103dd48f10d521abde853f6d01344090d09bd5290512ac107770f093b74e4bf4ad8bf15bad20ac73fb0b7410e5686666722ec557460652a6d31c0118d22973a14321c58ef86ee29b8611538d993d86927e15ba6599922932e31d8df7d8d2bd2aa88b8cae9815c60c968ccdd35dbcae889e3bf8aafa7da9c1d453db24fa4d94ab540fb073ab6761fed8ca48070c2175fae7d18fbca1395bc7d879d200315ba7892dea9debca05126c0fc25a8d09b216e6c9c90ca699754a0092f0e773a5968439b99eca0d8f994fe3ded4316379897fa258c8d45aa5e3676681bcf0dcec83ec8b2452b90049bb858c6da0da5b3eb05845ebea164b92f7a09a67ceb52d586493a36ce105f113b34129c258d536fe40df7fdd0b5e053230da1a117c678a4625da236b41cc5c97697a13b88705ef151eca16bf066083adfd920c58ed937345a57561394872ce1bb1fdf8189ef8d41aea0470c4bdfd20fa0dbbe28fd285644f1dfaa2542a88420993ff2d1350c02c0a015ae4550a95cf98b28ad38ed317957f907d2c50095c5fc3888b089bb2bebe9fe4a02343668de1a2fd4b597cc364fed48f5e242422c8915fbce84902e0c900da4b3d6f9b53d45331de39fdc2197d655776d300052d7628759c109b35b1db799fb9a700a0d0fcda7bace2b832dece66b60b0012e6fcbc4d82be3bee2c875abbc9ffd1d1009f102182cb80fdd1e34e8601d6a861cf292b4407d70eaa5cdd120abbc0578c1f6c8b3a0ce305217358d391dd6209ab97d452b970e616d9104261ef07257a8387b68b6396b9bf3573c2c7a2671d8440375f02db3bd0f6f2cadc8ed39a2e78c5806f08f6c479a2a68eda98dbefb395721856927c4f4044cd3613fe7733194a4565717fd8e4888405a32b72559536dbf8627cf76839567481bf9c3e47283905d15ec73d8ea35796c8a45f83a0a2e6a6aa2e44247e9c7d7791a36319e8402a61f0df5710954d9ad921c2fea62a393b0212819c64a62a860ada5663749341230faa1075fb34a8a60d49abac67916cd073edc6497b60404714552d0cf2720f34d3d8abef785cabbe722cece18b3d347ca882c03dde9cefd5d7cef82173386167773a5395ce44050b8b2c735e57f5fb96e7068eb85869a23c04175e167b89782d4fa781d6eac78a3aacda30e1585eb9d8515ad6fd3a90c7129d473534e7ed7c848125aca06fdb76d80d45296512165807983c18fff921c92c84bfd96e11ad153b8f12b01d41fc7c10aa912e71f7902cca576ec348e7c3e9170326cdd64d9fd7da4002d02a1f6f363b89a686e14b66961ce4cc2d8ab057a89705454a2ce3b79e6ac524bb0a412d25caa17ab41d594b6c0e0a1904fb859bb995c95fdf4508d772c656d29740fb0eeca774dff402b947cd29991ab30c0af47160a15cf11d9747af9ef5d36bdd298871733fa5825a7b138fed53a61799902cd2a9cafe3d0e81e683dad59912f37225339573b7ff9a17925b169fc46de14f3ecbef915adebf0900aa5fb3940876b488e7f944ae803234b67aa7511b3a3099fb2300106286340527133eeff46891f71e09b0699e46302de220c2a8575de8d4e263d5c180b22527658d03a5e43b31f1371e6b64de073034044787074174efd0edac896d4949b1503d95fe4b9ec948e4afc84f15e0331623614efcce0441b83924198fdb3caea9365262563a96ae6e7fef04dea1f5916c63a5308b7a3f99343230a67eba8d75958dbe387b7c7f8b3b053d000fd3c1bba3fff4509fbe2d47d14d1be3a456d937390cadcec349e1162e08b0e1fffb52784e0dc198cd2bcf2268159ae8d6c4db661d5a7ae0a74b1a4fe4618de90d99ce78618f413a2a449f515538db664c9e0d0653a08ac4a91519280699d957ff9605e9a725b02e59cf1a83840c90ceff6c53ac49e429bd7045240c4737af58c39b750563bd0741a07447e84f118477ff785ae8a3fa619c85f3cfcac0f956a23359082b53a3e6222a51be56fb692c69860a716ce723c41bcaa80857c830e2d2c5ac381889ca1aa7fbda3598c1707a6a607d846ff9b5c03fcfbf80543571e9935ab1ddd42e24997c72be45d86137346de361e966fd7ac07010ca879b64183f17d46f728c3fa0b2cf3b7ce07571c915f9429edd52324dffc880f29e9273b6df71f35daf24e2d8eaf663cdc804492192c69038d546bf82d0507964d72a1e89c8b73c1b3261de2e48b23c8202da248a4e630662fa61a1ce35ec0524821c2fc1656db511a4677b28c6c549a84c985f2f8de078828f8fee23bb3c673658b3887cf16136c4121d475bf798f114097c4df947850d4ee37dc288c9a281e684b9d1d9dd8021616d6947a9f4b3fb3e3e429178bbae20580337003b0ddf525687c6a497e407f9dadae089463d38148a2b3688d416c7759e513ee0f94857063fcfc4830935037d01052331598d4dd9fd1085c90813148b0df5b893a1191f13456ebf2e1fde88c8f5eba878769022db35fc092923b6b5c1f2d51404f01c5c9e4198b96fd10c16c0d9ad0f3e11e3606871a4e56b50d952b68b33d0413bb6be39bf25c12e68dff56ebdcb142e6633d47d3474e8bb29692d90af7ed0b8c338a1236b459fe0f361d3da900964597407fa20e35998aff2714e1aa4173b567d971d60a24dc0502bc0b84244c4ead2fe120ecf9810780d6e58fe76a73a0a931000525180cc2298a3751bf8b57136b8ba2274dd3903c71a24547dfeea72081e7261f3fc55b58aaf896da7b4141f58f87ebf4f8f9e5a577223c96f7f5786a3c0df106a04c227484b761cab9f3a31342a9fe98c719026bd0794559b94652f1b44dc68b77f8e2463c925aa7eea613233bdebe93ba0de6252aa603d1211c040aa72bab0691686748ad2d59d32879da3a85296ad44b4f01367440f10cdf62e8f450ffd9b4215780a3e0cbe6accd4057277d405189d1d664e8a4c0b63472de63ff08a66df9069660f41a202344c632cbfa95d8ccd555685ae5fff093ead2165a9274476f00d45930e9f1551057f310b03ea2123a2237a15765ac3cbd3f0d0a54ed57f2d2efed2d09b8fbd25de8d59df67d4282e711342a1372ed9fca1ed2b7261920c22dff5ca2864c23ffde31c28d6764010f43146c453ae07b6be63d99555a59e5e747071ab098568c7fe32d5908afae89e7317639dae0a45787eecb9d514ecafb91f4e08eb4cbb99f50b129b26e9dfb5467169281349d5429b00cdf85f87e98527eea89ec4084829b3901d3f9d3cb92231988e48d12b6143f7cf51bed31360a5bc487444cb2836ab4f31979c9b90da44db8952e05a461c32a810cabc6bc5ef76fe2e9a3347cce7338014b6c7daa1190e19da88785b13e5968ffbe3a71ab5270ed2fde9b8a0d7ea3c1b96fafbb716b2d59092c0a4c78e528c27dbb3c157d86436ba00a6d6c5438e488f7f04db7874e7de446a0ddbe57c2ea27e5bc60d2b405ee49f8cdf743dae9cff1224d619ffcff064ddd7f990e155c525c94f28c729614c46cade6c72a56360d18b517fb3019182d05942ef9325a70ff40e8070227c90eae2816f67c3437988c88cf9187b605591bbff7d2e5b3ad80f55c406a27d6272eb22cb86ffacbb0c2d41a32e1bb8bae7d29ef7945548e76171c2e9a243bcdc71827a18545fe13c910cc202e48f0366930a0ea869334fdec382232db68817bd6d3d5b3b12c8068b5cc6164752828e0d98182a78f352cfc378143ab2b0ffd1a83b63bca6e2beaf3d66230f4f6451b94bbc692b7f42ccb9d289efd2e1ff23919eedeea2ef58eecd6d983fad7acefb8ffa40d229d403b95d3df667aa5c4073b34d037a2b5b2797f5571604dbeb4964558d5e7bcfdef76f2f4bc8f643243d844bd4507f4ac2b706078e8cbd03f206e061a9ad5816ea0327085538ea4f518ca656db81252b7f63db068a3cb2afcaea84c7f2f32c96b4065bc91b6f8e4e82c1e63e5395a9881a93ed1c985a3dd66b6af1ef7845082ff8d675b9fad8dd30791c0f46242525e1a3f30bfd395fd3c60039ab513a5957839fee80369ffd4f94b62b5ac454a409c9f336d6213235b69f359f725116b408bd811d3f311f3cee328e53795da922f84c3068fb8d04de86a96659385e948125a14dd4020a30c0d48af1c37ccb0b3e397bf0a34b502c13263021b9f9c311c8861c875c21e9f88a737a1fa7eac2bd88583fc40f42a3815eaefe98e0c3c8c19aae27e914a8d93a9b847bbb3b42d872d38bb27c060ff9424905152d2d2f972c8fc7b9f5622d19d40803f1875a53a9c75a769ab884abb3efa0f5c6235af54776358f73ec29d5b6f93657bf0becce7463f981c49e3e2985228d45b4287bb7d3cbcf54575bc0fe96ae5ffa7df40f45d74f120908ddeff9486f6042b2e4a0ad60d89e9ab16dbea60430671160d99df50fa1fb47590a477c52e61dc51f1a3af6c5c64ff60fec2d6e2d605259394528f90437aa3bbe860848e15c15f442c2130eb41215425d25bf1dbe76f91aab16356a66c8d9e35ac0aed98c3a7b60229e637c3b50f398bcc2adb2dee403a8089063b8634be10885a55c291e032fe690768e8c6761f7f98f3d1e255d85d5a52d331ef652b7b6ce1f26627acebe2987d769b5310df4bfbc8bd943ec225e876e42474dd654c8e22697e7977e79a5744363ce550166eea635a3c36c3a170d81e2cfae6d95a559113a6bac5055af95c30bb77a896c8d038f354b748498f0b4d869e5c36c16132f503bf36afb6c8b4ac1aab76417e1813beeb94aef07446c58e3c7b709b6ecc76f0401c5fb0e682ffc98a27b72bbc80c8b6a860dc8313564e9cdfdf0c7dc32865b64976422d471d746f9a7925d15b6d1ddec59891e2196f7df938c692b14fcd9c3a8d27b58c712e2ed7fc2ec7fab36ee1cbfe54b9f5e39e323a242aa00862c9268dc727c43057baa81e627ea9679b42f96286f2f7aeaaa62419386f65bd25e65fdecf600386badbbe0621ec4125d9a97b2505d883d76fa85b0229eff2cfff05b0c1890f67320863ddb0783e41b8f7de229c7f225ab31f9b860545860d12e25c686f041382e9a30c19e37c135af252bb9fe1145ef50fa91e1d31a7d0b607bf520d67310f931b4218fc08c3eaa71d571c4d573d4c5bafb0322ab6aa209c65dfbdd76aced8aed32941a4f97a5fb31b58c236d904e462310e3c9b1fbf52202e3eb166cadd098960cea62c608e793534ab26281f58dcd2401a94703c1bba570c1ad4b3344b59f3baeacd60137802e0be3cffc53c61c07407c0b0233b9c4ad98fa53f7affa387d22b8e3c7c4a5cb6f10cbc10fd8e8b3602a898a4e79bffa7345a67eed0228e4b54c30b9f80a27d156f5b37c6934e45a415576bddd724c60f9937f57318b9d1ad69b535013714f9f95dd49f4623d6a48349b2b9323f40804c034d37086306a7a0c505aefc5beafc19e8306a7eb402d4c132cd4786ad77c62e14e2f93a6305bdbf15c3ff53152cb694bd44be5754767e0d999232399ad71c8d7cffae42239eb351a2d1c2325512bce6ff158ebc3b2faa0e23b44ed03e1f5cd1e6e3c51dccef96b971c36ba5eea5d48cd0e410334f379a3d58010b276179ccacf0c74abd1be12c9bcb11e4e1086d4df22d58e29cd1302dd64c16a4cef5edbec0ae7ede8158175e494acafb155e3c17bcd6128acd999aa5a10d7977c798f3cb39ff7e40880e97d21e35721cda5cf8a9394a329ef4cf86e3dd74b0da738df70b2be033b9f0ffabfcd60f59681955fafe0e0e347e68b504fcdc804cb5bcee2b3e0d88e6ed98acbb274e5cbc6487c1f76786179a12e36626461c4c7b15ede6cd2b4c2a31f739f17a96e12999ee8c343afc9d649f807c107c000885c9e1868fc07528cca4b78adde03583dc603bd1561b352f15f24269514b5ba2160ecb30a68a8ec41c5c87af0dd1ec18090ecec957d407cdfe7030b6693033716cc88527d62c3a6bb06e30fc408d09cdfbb16d3ff13fcd57066b52f39f1a80d00e940a9d3cf143ff7dd883e66ca5e305440151cd97aed78c6305136af1c02302320d5a136d58fa7ef5716562b84e4653ae35083b054dfcd456b5ca0d2ace216b50ecead690f256a3ff5d6af4fae13bb5bae1ab9c97e65ea310f937a17b191afeb48d249fbf5ee6eb84e72471fb1948b3f8741cdb41732f6dfb094b5754f1b7efeb89049f3b54c95feb996bc33890137526b21e577e43e7f437469172a62147b637425f2df54de16b914536bfce5dafe8928e21a6b0c5c6b120903373ced28697d0a505e2114a074ac32d4bbb80911682b227f850119f0c1d474a7a8068050213b5d7617e4405a4573a4be03714158cf72fd29e09f937c3ebfd5950913134ad11ca7fcca74a00e5b98de7abd943cfcdb66fca101bd3604dc9ae4ad8bb4e52178fa7b3f29fdc483e74d8ce65906309e4b22976d63ccfdae4bd4bf06a7864c3c743a82c6c56108cb7497f2545794d914f0558c87cbb9c1640ccc4122fcb007357a794d2172491c3933a80824ef85701efafbf790e50eeaad96d6096c5130fd214b7daf688f0a6be9572b8e3e156c629c5c4acfbf31d05bb56077b6fb71fc8cef27cb4d44d67cab71f97f72f1bc18557d4c462ae8bd4d2f5f504ec4bb0ddc4f4e7eeade749cdbe53a339e016b7ede64a238848d80590711bed1dbee245c17f0c09874f2bf28b1954e6fa919fe41dcc94148e1ab93a2c67e01a7af4e3ac29b3b11e5d6a0f4eb773564955fe8af457df7b99176c237bd42cda8a351ee66b4219ad12d7eb5982c456f406794d950c33af02cc32dd19c037c223002a1802a688660cb9d30a752541a85318c5ff1cfb72a8567214055ae8d0ee37484694538f7e53bab65f935d0812219fa93f67cae8b8f1cf36a418781c0edc9971f17d077e7c2d8806c0da520248da0b91177f7444062c0ebf8bfc746e01278aa05b67a40570f593f3ae9d5d5c101baeac56ffc9501444d1562f07ab4f9011ab03195a304f2e6f256b9c9aea1e4a3d7d69e65532ffb4e2379459f38dc91ac38a3fb591bc15a2159d75910696da85c96e169a26c71d2c0d3ced34ce2da8e93265ce92eff66d40ac2ac1eecd15484ea723cb949e0d135109f0628376793a2b35af1fcc146e11c2623bc6f7d11f14639ce2a8811012a214ffd4d48a15b2cbb2f670758f8de502c28059411857c86d980c3cdc26bc5dff1c511746b536e465db11c804a0914e1a7d888e180ec0843bab6b9227b50ddad000b1811227ab4a3ee83623fc622fe0e5670098fb63c96617d2b6f5a46057044708a1ac058cd1981ee7dd9f64d87dcfe4cec4fb1e9c8480ac613292dc333688f777820a5ee892c0f9ea859f4c65356dc822631602672a43d09441d901680711a8a2153a821bcfb77185e259ece03a334c0f7525b78d28eea752f9142934f0794c44ebb3787e90870d437d28b7e0b32d8e5fc84cfa8c1d176ac2ac763c366a983c7f2b7a6a4fdf5ae8994742b100aecea4d26e53a6dd6a6b364a87ca27add0842129be9886962d79b3d3fab642eeb8975c43f8483c3b0b8d4c34ab727d7bf602a7e9e43b1c4cd7420f5daf57aab62c10112921b877fa1c735e502192314e94e40afbb37f0118d0a61bb85dbb5484c933175f92561f33f655080c53f209b236c774bcb429924439f4c6bd1969fd8714cac63d1e612c70eb87120f30c880f441bb1b3cd0f1eb75f2d9055b843b773cfc2d5d606f2f532e7c142bb012908ecf4554e1c3aa41091b7b9fad7fe0b1f534bdcc585b86ceffd6556e588dd5bf1c880a315f4b6d3680c12a22a0283cff41fc7433fd313e8ff608592879c08b5ba5c53ae237746a9572f5fa60e6e3c92ee5a49a09306ac36657217f8ffdb26ee07f517e25e464b50d722538fc5b682178c9c56e56b26d58615a9cd1f53fa9773eb2e683cf5d0136b2e8e2b6d153c09433cea61ba66c6b792252ddf1d2b2ee42bd3af372ec5e4f2edb146c9989524ca436a69d5c0da6e195aada32abee929e6c1be1041b0a4e3cae6dc2e7f29fc8ca7161932a7f6d627ef1cc76cc96b1482d900fa034c7c60018fa81ec93be75c64d3429806864181bf4eff33e1e4aa2faea9fed1ea5f6c8eda079b26572b84741eab3ece88492701d1422b0c1dc0b357bc6d802b2259bc21b373ffb3288892cfcb431ed7749a30aeb805b489305ee7b8f19ef94256947a438abcf7c2d6c8efa58f685278c4f1cf209520124ebcc6c175958d0fb4ba5b408945b2fd3cbf45894ab406259e2e2f5e9f0fade149ae7a80fd74c6487eaf5bb3aa897b3fb615a2b7596bb3783095bae32789062753458d1e584da7a3fd4ff9d310486d0cbc424f812034c28f46b6ccd6bc322343c150972e72eae1eadcbeb6c74b790dbc23db65e2a6e2820590e64e328880f5754e4ddd7acfead0ec6c8228be0c5bf254df560be057a25fb913751b59baeaa1cd1cc1a30c041e49e3354c16dcec901b2f65de78a9782db6c7ec3d0beb66756906c3bc8c66e68005b98d705126a70c4193e4afbf9f55a22a5e2f809e00c27e2844e1e1d860763e44b83fe2f42a28296b4cd21d1033be27d51b55ee20fd0bb2f28bfa401796f6d1d37fdfee4896745ef09ca5d03c174d80d979a3733368cc3545526883a27c474172272b955a645de5148086e7bdd12dbbaa738bee3c066b5d23c48990760090f4beb6a6dc75d573ef1d75b2bf50292cf06a85dc61bb607dc8b725472f9c7f2eff70da313c54a2ce2dc5f1200dc0cc7b9a1189aa4eefec0223a131c618d50c6cee58d69842024e7223bdb8cccceaa3d4c210e3f6d54006524ddddbc474a2eeeb2fc8efd3d32e7edfb846c5ebe86fa794c321e2474dd912d1a4a2e1a28ef082352b5b38a099a96b24850b2ca730a49be5504a67bfd5c94e39ff106df42c1033b4b15563496df3561ec6bdc582364382d02d4063bde5cbd1a9916fbb4f11dee28573efa648895a0237c01d1a045ea65734ade697e2552a5fde114e5588aa62d1de8b4747f710ce9b2256a3f4f4b1c1cc99e27890f32179728bb60e06029d0ea38dffa519c8ded3e24c095a66bc5eb546cd1cdb04260ae7c85d5a831890f85f7801a80211b9e839fec59a16b87bdd72738c4c0acb232f463eb2eb521e461aae7c384efc8ae600064b69419fb9fab86b2b4dd76a135aeb9c3ce1d625410e3ae71001509fa3c4e29e9d86e635f78df026badf72307a680d316c8f8c3ea764f584a906578ccf4d4688b4bc8217a5de0c0b5810a010604c924e041665f931757fce5e48e82f25fc6cfe3b03dbb4c63d920cf90bc5d87a33c98c7c30a39b318c0202784d703b983fcfffcccbb29dc64aa79416bb50f55d21fbc3419b1de3bee88b90251aded1f9fa76f306e79c6a45dcadf3e122449e0ed1a083aa4a40ac10db2a2da0ecc801cf911a5c6c6aceeebf242473b1198b44d0271a549ff4a1b7f3521e8b5222850f8608c9a7999a260920780da781b6e4be4aa48ae7fafe416a525e1ca7aa1651708e089c39b77d49d632c7b8f6dd4dfb7bc6558c13347da2071d605cc1b26b01e266f1ca7aabdd3f97dae012fb8ea2abe7cb904022abf6aa7ea5d2a0b4c8baa9ff7795e5dbe8e831997cca85673c009919e1b8eda1f38448fdbf8bd42ba9a62b44de3406974c28390f7f74c78f1f3b7bd8b488d76382da5afd0d196a2cac55dd7f9b628f586beb44cf84d261edc8fa93d47d6e9edf1e8923103f74f4f99ec24e8a856df2be491aef09a3b8ecd8b2ce8d94857693d17039593dbe706c746f2e6b18e21c624c7b7d082694bac44446c0b4e85eedfdb2d2baacbb5f50f9dfad1514c94cc193579ed9113cd84d10f84e5fbc16d0cf71d7cc6eb7e29d89eecc923c15cb6aafec00192d4e09c92767beb1ea53344b829ea89fe99e53c8fd05f8ad7ee9eb680a432dc0ca48a6ed3d92a958a2358c1f2a9f0c77e7ff8919083fe304233d3766baf005cb33e5735bf4e446ab12ceb871f9579d1557607e8ecd0f8ad4e52c98cd6b9cd63d2cda498db0ec421a92f5c42465549b473fe42dbf362ffe09330d98d8fff8c70bd63f1b54d311100512286d6b6772dbc3e83bb72efd65d2c600e190ad689f9c30243a77be24643bf78fc14a1b1d300c3c16b21e2a52acb7c39fba5b05175f17934268efa0e49f507856f1749bacfb465531f9a90fbb111b23d5d653a71dfa3d939ec2998e8370b0ae333fb5ab89a860ee8a61032564fb6da2b6ecc5be852346130d785e76f50badd9300be38ac737e9ec7f29ee53e9dee90cb931cccc18ce8f7ab033ca2efd6bcc07d46516f50119005eafbc3db49dcd65c7e7c2b7166df061d34b2338117101df4b853c0b7965b5fd133a826cc2476017038475de09b16f4c31f4d757083d0f3d006644ab955d10f6442b8b2521ad69966fbeb74cbb563c1fea216866ca3762750bd875bf299b6428fceb96054b93188c5dd8b45aa23353ed105cef90786f1c26212f584a8d2fd7a73bb944679f2760fa5345998dc9eef9830da27612f722575c6788572e4ddd55faa7cfd919deca46862a86984fdfa9891a25e1ccf087c8114b4a1582b9905cb6f9939e8d7c2cebfbe04f62c599e16ff7e943bf8cd46748480fc994ca8ed004b7409385056df9cd805766bc280812474849d63423e8fb8397312fbcb69563c51a1837b9e1c0dd89ff1d4f79d59489131fbb839e55ada1deb98bbfa875dfcca31c5569b9589dd0ceb26c19d2ad7dfd1b0e31799f580921990749daec50f880a14dc25e0f6576c6a4be94e2a3818db38dabdda90a17fef9cf211f087d265299424a685fb8fb9d0cb36d1c5bcf3eea7ecedaf32c429a9caa1f815d6ce8860c861d782fa9c7f192d796c32c141955941c1f8d32e21ad4a4a553c354397406b959183ef22aeb6d30668b7ee0f63708e5f08f483e00be9d8ff9b3f95f97a85dc130b7f3001cfd3c2e69e2465b2855f7ba1017fb82586f4d0d47f3a0f6912b7c60048d62134277864a5fb708de62fbd6eb4a1e9ab338bb9d5f6ca64ad3fba5520cbd3962f19ae87d4e67e443aa851250285493335defc5b5639100b52a3b6ba4333da92f97635752983cdfed5cf8a69c8f5c490bfcf81999f92eac7c994df26da4fee0beb8f9a0154810a4bf906ea8c2239929c574eacce529307bb491bf36f1718703b6e55884a8fedbf5fcc122ad9e96456db6ff0d1a177b3c2035e881955a053b17d520f4128c35e9d28990cc18222256e55f76c82a1aad541906b23c6c9e2de8a068efc264c06c89d230aff471655030ab51c40547666a42d66c0a595eb05beb3c0e2309f019d5643c45329099e7602d15c6a9807b1501cd1d3c996a746decd1c227149ace36c43b0257db2c152f9d7147e76830bc2b596bc3da207e4d61428594ab7a3d1b8b600d8e782810607939ab4592b138f91378811aafa146763bbff17db46da78a5d27bbace6a8f4656e00a8a69d6c82eeef6a3a673ffed86b2c715c4a216ebd14caa2144ad8ce053dbb78fc71b6fecbce8321e1edfff9d0c9cd8b5656926f1756dd0817eb24af90096d693e6840e41be95f3ff7ae5af484320d1ddbac06d564c2ad1bc702f9e460ea2639842fa0d118cff71255b2976547bfd209842c7cf620959a6a819786d596c1da919c57df318f30d834fcf3b0f8bae543c0bf15e6d00d47ef4067312831d3b8094df07732cad97ac14a0d9fd8a753455a2e371d8f6f376f930ea25e26ecf2f2a01840bbcb89e0771d1134c624d0216bb7c72a424322102292ca7e573ca0fd9310f08d52aa4f25fb2f97ab8a950cfc1f3201fd02aef43cad0b0987d330739a86894f94599a2a51d6fbddb539c5a0eee261f975c6753479e8c5fe57c091e0634c0905c3facf9df7fe610aa363f02e9416dcdc31fd17afc461d80dc6a17c1d47244687c66969cf49818ebd93e253718e58ec7fa3cc33bd0b5e8a1ee923b1082a0c7d707b3edd88548aba6605b00a994795b51da75a121c0a85e7610e62c1585b88acde4acf2e892ec681ecaff9c1c3096da21288620de185644a6fe2fd9ca6547e282c2151bd99063484e4da0f26b0d9a86245fc5a17b897541ce3156ff9095caa881b26f54a6831f27f38f67b8f9c9231bee4d1eaa289c9e3c13b2ae0d9641e16954d46bc08a6ec0cba0a33cabdb26f90de73c0531f6ba336df24f63a5045f6425ce40256882289ece77cdec00c3bc088900d663e9634343624d1bb0ae640ba1e37b28e120332df97287cc8a853b0a104482b5415f19bcd3b9043dbf4bf5567db53cfc43bfd249d21b093ba5bcda8e3dea12903446012586a7d1e28922cee5bb4a528967a2a4d39621d67df5c0953f0e6541befa8189b21a1e286e298d230f00b4a8a37d5ffc6cde862e7334af745f39df568b1d95ccf4adf61bf128fb8d7be6636c64b28f645813c89a53ae65f441f2bc015cca50938b896c360829ec8d023e9e4062f2f64dc96016c4f71ade524e17239f8a05f8c931fa5df9a7878ff3b0479b00d81891ff8e718edc68117aaa5d5a4d22afe9f719144604969f0945aaff5392285c858483d1cd1e953608deee64bdc6287ce6565945a9d588cfcfd00a78bec33e4b8a10208efaace6e27de6355c414a6eeadc38e062d58cb12a597b8b11d31bacb984baa96f9c52deba87e033c02ab687a1cd549dfdb84b307a048f28bfb3792e31cd4318327fbb30b84aac05aa1c6b35e584c4293bd55d1e04001520412842c72a5c763ba80cc4cfc9a67616759449ca27f1f6cc87bb4aa93149831337144894657c58ca8940964a6ff7ae47d35fb9ec6d9391bb1814ae90174efc9255ca5753ca3b8f33eb3b7779a0aa62b86308fa35679b278f028b3b6d60c1b31f696d70a86e0c83006f78a7bc78fd397263e07c4cf53798ce40ef3cb478d20204293dcda0581b2a7e114bbdb55486268bf61f79c6a385286595fe3ed20372dfd3cae52bf166f97338835ed730c04abb7a374edd8078666f3e34d2adc87472f90cb7fbe4d62605d18dadb9852370094ff2aa5cca20e9d964649e99f39b0490ad1423b70eb0b2d43b424b345b74ce0d292c20707d0808ccf6a200469a3e697cf457ede32fe7481022a12f47ac8d34a5eafb8f1690409102beb62beabe1568d04832d5c50ea070233b43264d107343ce9e913d54336d7f235bf21cde8e530079d9b049ec6d3595cee4aa4a12c39015ce3d7c3514edbb6dfda04404efb18ffe66ccd0b7ba20041f94931276e7ac615a45254481f5bcd70761ee9337f818b9ad41526cfb9bc660de36e2ea8a952c77c9492adada10f6a2be5bffc4b13bf8f425a473ec2578d1d1e446d8344ef90ac0b9621073638ce28a1ce3887ce3be50dd2ea898fc039312c377a56f376727651779dd450a4bf7f497b52aa97c2836c0b0f3ffdfe31c13b371da8756bfaf6ad8b67b230ad7698e1190915b9a7565fe42a9d0d63997ed15cadce0ff66e6d3c562c955aa07fe5e25410b8dcaf893487971a186a567dea54a9a3cfe3f2f99568ce043da1d55161aa1996c3fca0beff61d02f46bf2db652c04dccbc49c9a416fc08b91984380a9e3a7ec4e5b22974b7b554b95338bb995548ee7d3eb91cdc17e32c6cabdf2573fb262716633f5675f675fa7f296a0ac4d4deef9968e4b509a4c16776828fbddf5ea68ca8982b6497b060f792d6a2a8dd2cd73e72c65ab546f1a638a9ba49dc1a31211ab9dfba6f234e3ee413ba07c14cd90571dacbff217b6fa654e797fbad84f858d539a637d3f59376615754ace32aceb3b0d9a5bcf20c83b68886f387f9819f9785c24afc2cddf30ca1d79bfeb433d658d26171d6804bfb86cfb15babd0536b3e4b35030af65ace85ea46bb971d5c57f2892130f8f5d3ff129198008431443a797dafe64c856c50f9cb45f0f4449e432858b6465839fc972dd566cf660661ad08a435bbf1704df3cb78ecbb0b3cfd80b9021477b6d0ac83debf24f3edb9985e98c04b59bbf138fad1636958baf3585ec65215cf589f2eabce4b730592066188ad3e66afd4c67dc70d9d9ae35d2388087dd99c9e2a7fc6e4f0db7f64e6654b41e04fac47f4cdfef06bf3ed0f498b7dd543ad0ca7c1cfa382faa6288c15f660b5dd0c10d949527be220585f58f977aa237ab55ad09e609625460ee6c8844372959756ac4a4b311a4c30bf9f67e18c203d6d438000d4ad33b396a947a353bad716bffeeddf78bd5b17a96496315b4b6f0ddfda560d623fdc05a8baa5fc6303ddd78d5fe88a4264f1eba99eafb60744ed700aec6847a0808cbac7e9cd2f710a731d454b4a085d8da3711b7475d62b273ff6a82860f6877968b8b0ad0c076001000ddfe95978c2e21e92a06c3081a30637d14014de9f2c43378de63da5b8d97a789b4d64db566dc460a7a9eb5f342bd67671c356ac86f8a78af5043df9072e5ed3c97a880e80b143492d8ffa351fb45eb165d1e94379eb50db1ffeb78832efb702e3e46dd538d0484f73f50ac4c7b3c8fd75873b8875463708f9d71a8ce7979056489d0639927832004a3ff04e844263ed14f9538182ae2ff6b2cb922486e5aaae80fc7f686a9543a0c5adc416f6dc8aaecd72ef4ed11b0111e25b429cf81b90838c653a40a5c63074266fc00871e626471d6faae0ce5ff44f3553ef9ecbd5fda6f7734b846e9a93bebae2a3131cc0a77efa6e89062cd35dd22955b44d09749c77c76fa67041b1320ed9a25c9e181dfcfabc90f0b72f31d5aaff7a5cea95f78bec0c547c9086a763a280f63446a24f796d6cb351121c145d563626f895ee2110c665537b39592ea7a0f8dde39f763926d5de3721789543ee4fb7abb753d2b4ed8d2330e94ce2d66566248d3c81282667610628b24444aeabc2e3a163d3f167e1f3eab24bddeea5666bf3db373f5327cd58050f2a8737e255c678204aa072cb26978a8750d74242637b16df1a213130fb7e2265b4d90ca45ab59c08b3adaed1e9c9d76396821ea9b8f49055e8f98d2fef08e0134683d372767464469703df57d0833e0a6894d82f865a5c2f81a6d490706a15cfd3c1df2dcd866bb13a3b895d0b70bc430412cf72170156030a5736fa5679bc6be9ba3018b0204738975f07379d94ffb8bf903093fcfdeddf37932fab759f1e257624b6102576464a47ba2a690c2edf3f3e56d0395ea1cd33aa3df489a817f89bc29d3ea9897cb641a8932146fd3b3e842fbc5001fe5863f2ba6f320516a9476ceae3a37bb905630348834dc2b6c1d5f5dd5ef6652573a0786f222265f1114c7572eb33799fc85802085378a49f0c3d6611c7f1f51893df9d42a196f96598896f2daca6002cc4c67421aaf3d4cac5715338a4df613547271fa7c65e2f867ffd5db32dbd641925f33eb2b8b878bdb6317b6f7bd016209544dd2bdc70ecab9870fa259fb58b53fce431c4f5ba94d825d3d8951eefea1b916e1a758d2b6d83e782d22e037258ee9164e9e390093807d9afdecc302dbe55888626d57e08d76fe4e40d7a4eff5d5cdf1adc95f73f8e400d99f0302b7a32a86220c2465eda0657452ac74393f357bf6e214cc551f9fc3527be1a5465cbb0390012f7a34d4a8a7dc5a527084c21acb53fc74514ac270d84b98d4d3d5277566aafcba1c22aa351eb0695612fba6536b698cdb97bbd740c87d5da4de811b3b8b64f9dad8d1456b18c4a43704fa8ed1811fcd6d6ef69fec1a8e6c5f80c0f3ea4fde98173948c8fd025d4670f4dbf31ad56697a712af8d15cd44eef90f17fc6a3432bd58ce9892b773dea83431a3d50289dc0e43a9dfe91663e39d414882a39ceb5be0b5088a807458f6ab4c279bcde16ed2be9a46b46492ece4f229a7c6cf541ebf4c2f1f1d2600fb72d58d945eb879397e33ccf89a256827a6158fa8a5f0573baf6831a7d2cb8aa1ccf47281bf40dface7a975ea04942ec52898ee2b5e268697809bf29aefe4911e57f92778155df139c3fcd2204bc07e20701cc2738a9e12796f0e6fa7596e0e0f95d629dd67a3674c536424a67c700a44758660f35df18797644984a1a7a9da34e809634a13c7a6294a55c6845d09e5dd7a9efc9fe9fdb449f27292e33991ad300fffba0240c9fea039165fdb37a4d4fb67d1560d5a3a966ba63c6b0df7953c102f73612b1c3e3432764b8d0d023bacf0e1c8f34400ea14b50a1ee7e3932269cb0f9f07693111bc7804978e51a00c8d0c73a7420ecf445de9d721e1a334545e4284248b650b2aa6189bacaeda32f87ae8d9ccaae1e2b679cc7ee0315b24c15b3b2f159cecfa93d1af9b6dba530a50217bb9b779bf3a5b4be00222aec43f92769d67fbfbfbcdf6c069eadad652b1487f13923126a27b710e1535b6af6a1343257146dbad88ab7185dcfa74c606d1cea7052146c246a7257cc0d1b28e82f152457f8f38f47994299d4006a419b249c990e0aeaa9966b05428d8e1c53c42c6dade91862a401ab601881be3448518a5fcc1a92d469ff57468c27c5206562953ee208fe570ff4360245b77d1ccb24d2af0ca11558cd7c5c0328d43318d97053cf87b8a70500c9348619c6512600c6342d1cd06fe850d1652d077d1813f45caea89916fc47ff6bc64fe6ac8b6210e09ab0d6ccbe52b931932a8b40d0ed31ec95bdbe5177e03cab828346886ab6cee3f691b345fb3131f3e9413a1ed03e7521439c8e01bbcb015316cbcd8c1a040c11f2a0214dade53bc464e502503dbcd3b63c484ebbb882b5d8e0b46d01b582648e39335467eb0ef2f11c1f03165ad4aa285af2110194edb1766d1797ea1dc4113028c10c2f839be6e6ddf48dfbd5ec12351e20e2b98a35927de93377b6f781abd5b5934a3ee13b00622ab21fb46c16c504c782b2325f8cd6cdbf89c6ad4e64e8c5ca03f2d8063106494a9192dbb7d8ff7dc3efab2ec424be1fea1c677d0df3e64c92b36469c6c869a5875990c946fd92aa77fb0cd53c509a4b7f4819d5cac53f00a1fa1718ee98bada537d3f86c863c0f85d4e6ab4372b96df225d572979f9f65c3a31c7c266d4a89b45d3d276113d03ad511db66036d24ebc7b3cff29bc13de80b69e4634638987a9a27da6958c8521cb36d9faa8ec88125788b64f83d7293ef38d20eb22b96237d1a4e6e3ecc0bc97ce1ab4db72ab3526c6642d535872fb0814db76198ae8f771842d64eb8ee792b928eccd3e69ad508f9c1972e4c14f77631b65662a468f5507b8028fc174a9a10652216b88af1c79fc9620ab6407e80cb774f8040b4f89f80411076776358bcd9315f1bad69d2dc5f072dae63aae8a2e200152b7b34586305700b356e259c60f143e7af463531a3fde9d0c8fb7bac25466ac082464686689e163fde70942458462d2eb2ec70f10a64d0d17fd3929777893a77ed75ecd6c8849c178044c22a8ba8ae08516fe2c1cb15ac0fedd6bc285edd7f05a82553531964a333f43c08fb5782ce9f69f580f24417d5664c970963d33611558c96b95755257a459180dc00c3a5f87f0c0f36ff14e8427e11496e3989372ea00108f9f6cf5c19176a3884c5d7ba1b4b3e72040c7b041999462412a5a1284c226ff2ebb90fa0373dbadd6d5b3c1f564e7648582f612b5fd478c12a22dfe710ad37eac3987895a14a25bfa4d93f419450ac06a79f4278bca863b692c368b3539b5f67ff1d3ece8739d1586311830695fd8b4be619f3fb3e085162616526431d1ca9d929265b0d642069d3e11efeec1ad523c45afa0c8c693b4183a923270b6024c4a39b59884c0b87cc0f5b14709606e7434ce7c5e38a26df7c57f296d45a26d19b0c0d44fea5eb624926f828568acfac5fda6d9de7d4ada8e83ba06e16aa0dcd25f6e1c9cb28c5566bb6c4d0f61f7d859c79ceb3e5c209aa0b0be966b9ff77e7042243d9d9f5e57d3b7c0cfeac5382a59eba78fe174d3ed6215c53c6a9746587fda8275e7b35bda895d3389e0cdce44d6b22e6af6e9c3b5d7b633c0c0b65401775cc49c247e6bd0697d1077d7ebb87d181a4f038e342714d0c2538da510b4225ef555fff4673fd915a74a4f53139b6fdbf434d4d95e77042f74cd7ca68fb85daac5d6fde22e6443140a185e9f2e962b3574af2f289b856071a87e3614c73dfa68b79157970ec68bea3f412dd51eeb9c852585694321f58f63d4ffb1008d8e0086ed197631d8f1fd63a8351192618cad5f611d36b4b193aab767714b9517272e96560324df008c905f7468596ab8f1d016895c3e49e72d18505d3a2906e850fbf7a16e5c3caa226f977a8310fc0ab7f8dc96758414d653188152e874ec4a49a1a01dc7f2768dc5c11c26f093f064a3e443e1ee44736e30b00768b74e4886daa5149a14dfafd19208965e74a495a4f97b73263300851075d321e1216ef04f9c3bbe41c606c2fde2c1336791ff1ad3d36db71eaaf6433d2c1b29ecaecf9d7578d253da734422c23602caa0e86abfc4b8bab493543f3ed71994e2cc9305945dafa1b62e209b03b8a21ed41f1496f08a44c76ac8d718c1af88db97eddbd3af7f3404d07c4c2d21d689b6c6545611815ecb489e21e7c519692c78312d6a6e83ce32aeec7dda9342f8c616a1dd138e4c91c161d42109d05edbe1b507bed70b2a9ae2d17fd46a3eb06a3aab5db962ff2b1adc7e1729956d72779f356c2c9496c0a249d24a845853978a9adad31cde5122be1c9eaf6aed2bb5897ad4676cbeea667d428b46fdab47b670128c43f3d0d342c2c5dbcb4030a6d314c3ee59faee690c0da16eaaa4473d0028132b5c673851c50ba2b749fec1f9f88519867919eedd7ff410146ac4a62176a423f53bac9ecee6146dd088b7082e0aaafa1af677f9d7576c2c5a4c5716700b7432225bc92d6dd815cc98092c7ff63c0401880085e1b4dfdf466ee47f92c239907734ec04f108eea0fcab7a4a2feac65253b08167cf0db35adacf189f1c7741be6f8302ffe310153035fd0e97e33a295c5f8c4185a00795e45d6eb5bcccee31f92e016638f2d86e2cb14e872087e86161d949b474d70a2f27161158cfa4645a4b989d8ed5dfa063a82ff94f53567d0b21e437f4d020172d5a3c018c931fe94fa37f6e72cd81301b32b899abcf723464890d2965848a8c8af1a3dd12cd3f2a45be9203b0f1f371e2efa22953c2be11a8b0413b53221bec476505d15ae617e5dbc55b45eb5b3d1168bf1824019fca140e968f9606ad4b8cb19f36096c3960e75960146d53d4c89ca71ecd828ebb61944f341c7863670a2c5500c56ed9d9065c869550507ae3cfb2b3df69d489a9fdbc480db76667bbd572af3c946e90fa767a8c585abbb97683ca6678e3b114df850c456e9cdf5fa593b7c62168237ef8607bd70a358781c3c5db11804150a453690bbbd321fbfc143894cb129f837d44b09ccfdeb9399136f8558cdca2469ddb6114c9f438d8816da9d4dba51045f9bce0eaaddcd7ae2fdd19a42246b8644aa9dcf269faecdc132ee9902eb601ed9689d6584d305414c41688ca5ef9f4c77528c1fb5e56391ffd35a5522434842e4d98ed41df1c846e6f6b44832cab7ebce318107037fc62c50398ec3b7e40909c233cd3af897d164d9e6f855dbf8623028479db26b2fbcd0f1f5be92125d6861a768c3ceb9ff2eb2b0a6d917bdd284bc2b9c7fd2f1fbc379024fe8ef3c02bdd76cec5887960dcb3a9426912477aa01fd5c2afe84b51493c19b0ef97fd5f834d65a81eee5bc169ff5cc127b996309732848dbb7198d5a59b6bf4755fab258a17e8725c94a40266bf932af92e8ebe84d0d193931ca100d66dbaea2c14271690d9d1a345cd0dc66c40b70ecb99e90402fba595979fb9dd3356422669a01d6ba9413678c52ad6574668411b02fa83ed9d9b05ce5423fb4dc1f0051aebc970a976167417eb6aa276febcff4c841073029cb24a9ae878ccf4be38aea50e85e72ffd4d7cd280a8c88cd4119bb07f2a2ca59cfb1a6b830b5b0897de752b7fa99ddc7cb0cbe8025860282ed2f43acf9710af51c43b23e82605dfb0dc0042fe73a6e01c4b127f6808cc0ddcb274e8d0fac9fdbae1f7436e80165b95e2b88d570689f29af09846e3433032db68732b9a7124dc6b97e1a110bca06f226982c69ae4909acfe455f3af756f4e6d3d8d7ade20870b64eea15d8e2dc4ee7e010b5431088f44bd6dcf63454735738a5cb7f9704eabdb9976e175b8b17012d4ef0fbb2cd092aa89705174c6ce3ee0d8ca36390d6beb51ceeb0f96d42faa34886a079d7d6b9eb230005fa153f9601d4444cd30d22128b3449c4ec470a42f66007cbc741fb6a4777445133305c32e091eb2077621255b6d4037b17619baa9ce6b4f6a3d87d2406f396e41d2a760665d00f4cb88f216814268ffb4285ac5e61848b07e5ce08c6927e1e09c356237b62fff0c8eae7fe36975c58ccc0c0e35bd613785b14fd1d5013c5cd68af97e5caddc143bb0ca2a6b45c6cab258fea2e5647783e7aa0769a9e976af57582ff8a542816ff6d322106d4086675b282ef35a4244244dacbebfa7b162f0d19a953b040e93f22a97ec054b4bbcc4f1f4cb7e0baac08a8aa92f3d2f47b7d6a683530c794fc835c08b1205f924f5b021eaa42accb3f532b33973d50e1ea0e51d029b79ac1b633d65661a3f6fe0db609008bb1d5208db5a575973c38e6b0138d209f8403a12843bf46fe20494e11e0efc973db48262c28fa74633b901c0854f617d01f142cff424181024046ebae2a913b833fc131d818afd9adfa209210fa050aa892abd7b5dcbd511a64cc051bda6f88626e7bcd8e259f5bf69cf51ea97f4f50466df86fdad3210fb0d0d79f331904a954385606007c7cb256f60f3a7d0c76699de0415717d3e11015c476f73520dfe9d3d25577b08595d5f4d1658b8bd077b71e7c829a40c4527d43ba663fa87a3ed783cda2dc1af60a1b200c3c24c9a3b531a8147bc4dbb7ea75aba2dbf2081dfea26a55c606f1b8a98290dd94b6d3db763a6e3cf6c5bc46b19661da76ec03cc210ace1afc6a397436dfd51d15c1fba54024d0142bc1452c13e852addecfb7457e95d4a26813c0dd8f198f393488df3ebb91ecf83098a1c20a556a7089a5e890e2548300b97dd2af45a9d378dfc0a3f9cf8adb07a6d39d47b5eadd59d2756cc53047d0b2bd35f78f9d9d5d9b4a2f11a359c760c6f65805a49f808d27165b1ab623296d9547ea3ca89e949a685343d29b5856f065c0736376c28bbee3c1ae7372bce96acfe9b1868c15f09ed97dc00f0e309d20238d851c527c8c99a69e1e7a8b73eed42be92eec7eeca0307ae9af91ba444f6bfb5bf8d78297bd324efc9eda606b8e195074103bac127e958efa78598d936295b113ec00cc81eb6f97f73286690537c5247dffee1cdd4de21ee1ad4e7426947febe637730ad276084f7a29a0953ff96991e516d97d8f9460463be0f63800b9390c5d64d88b3135005b134637ef972a08aa0f2cc3b8eab3e9670b98994aa52cee3bb185f2a48b08edcb4a6a5055a14246a4d525c034249941f044e7e3f1deae471a46dd839e67c7a943b09c21640ccc79ae66c04790a149c852f77bfb96cee3627c9bc05b3ae56736516a8fb7e59871cadfa013c0df88ee6ed71e6d7169ff57911a61525dfd2dcc7533ca72ac12b0eaab6657654a38b0883c5062195ae37a888eb7eab7f72ecd43fb7628e58379b893cdec02f6fe0990d264f44ffc7ce44846bb3b0c458c6a40df0fc0a499ee5a900f99945dcdb607bf54afe15d58e8bd6c7fac59c1bf94656fd61ab4328326451b99b33e5f54906099862f4c1ccf30eec92d5c9e1543f0a2a13013df97d7ab6e5c2ad377f03f71e2328a3fb022bbbb1200272cab082889902ba777b5dda73ca9bed90f26740068b1d74cda50c302f7080ab85ebe2cbcab640287c7f3775fdaaf4a996ad699aa14e5f7110f57ab0141b47184848d31b75282c628d496f1cb9dc51434dceee4288a8a9ec3d3187a7ae6edc2f6c948ae3e9affa1b98561e3b88f9565ec55add9f7df03595ea07feea4bc9041e6e569b00fed155ff5fa1fdde637f63cd5748073d0b62ef97add3bd4a4daf14b65e7690ff5fe5af4c327f0a0625011f75b408a95187008a4bf4bc56257b533b41e03078928451114a53c6c614b903f1c35a042b6283ffd093d64e5a8642f207e4c9253362eeed14e96aa29fbbf34a58b9e58347fe092061e5788c761ea49ff3f4fbc171b3c37205798a03fcd60ba4b245cb079bb338b2b0a5857ec57654e95dcd1e33e9ae93f07799760eb28eb3982397a6609121b808321b4e67f6de7603df9cc0991aca26ecc98b81fe4862fe370c185f4771d83b5d02fa015f25cbf0b49b9f1d8dadf7436ad8b03170f128b78346a9c009423a3bb327dba53f941578581925fa46c088da805bc7504be0815dfe06abac48a9939850c11808a45354c623305fc3b841f26cc66815be0f5cefe9e28ca64bd867c65e8387aa58c4b5e7ccf6999a58eebccea600a55fae100282db3602db0a573864d9c7412f41efe37106e77cdb551aa9c9b4c68463579e720f8acf8b4211be6013cec1ec949c93cc21b2bab5892841a94358bb1bec26499f6a142ce7f25c20a8b2470b9beb85f1110a8ea4018276935a7269b0409e9c7a2a5720fe8ccc8cc3487754e6c802e0f5078fc11dde6df4d79dae4fc8da1a189c6bf06f982f2adedc2906b33d6abd26651b084c119f79404a735080f584301c5c9636b870b119ea450c9da141f60b8a2bf1442605c80fb62298439438b2713ec2636f22a95f5d64605f3bab081e4761133aab3c9cbb7d5fa58fbab3bd246db9091e3ee4cd9e70bc0d0a966dbd123896a4d2d4ec8641195be3b0c11fb0675aba574763be40dab141fff93bdf319baba4237a06b929f6182400a898cb21814e2a496d7d5d34dfc581c1655d4b7e5088b3f60a053f36ed46610c05dd41ec7dac1801766ba7c04d8ef97fef05c8a991d1b26cff96161a1a9aa1812cc6982efb02c070b96129c88a3e0025796c2fd3510cbac7c7f5b46ab6a9b5caa7f7817abcaf5a857da39b1819b7f512b9f8902fc3eed44c73c552253c7c9c6b46a8390d913acf74ae7bebc654aa30c46dd858bf2c3763b83782ec9b0df86c1187e2e0bea6df0b478819e063af0c9feefeb22ad6fe3447a52a487ca8b657bb45cde989a08cb57ee92da3d9ee989c3e656d7b82cbe33a8b087b127b49cf3e61875e6b959f34756be08c83f1707b58f707d5f01187f5169e13dff72eced118f4a6b5d10e099e387b8528b0b668f0da5a698e4f345671174710246c8d3c55e89392af129c2b02bf954a2d26464afe7d816911ffa7543164fcb24de9f7085c35b2816ed442560043bdeb5193d1de247ed89e76e2d67d2a7cf859fc6c2a208c9c6c47ca026ba21343e5c5081eeae3015e2857b6b478cd9bb3072aa0c4c48c9af2e9b6db138ca2a49388b03ba31d5881712759a4ff0e67238fc75806a0280b2dc7266f4fef84fc68ec3537be91ab3a202c46ea5d33d2033f921b6177646ad0f614433283fb47bca8fff8f53ab9eb8220bd648f267256d928f6deb755dfcfd6b7f4d0967c9c1c1f848bd658328866fb2b17929bacf9151e8af86e13d46d1abffdced22883b64deb29ffbb3045da83c78d5cfa5dc351afc89ece6f406dc16ff3cd0a2950bb3471feb5ff1f6140732da3174dd6b1fce084c949fff3cfbed6d8fde20fe11eb9bd071122b2ea13503b57dd0cd65351826071aaaf85f7871b0afa9cff31cdaa95a3f22d96a5ffcfbc9f4fdca93d7a0e6234167cb35673dc40d32ebcf2a1d93d52f0540d4c0fdd229f927bafa29f7fffd41b5488b345e3fb3e2bec936929fafa81bb41fb04670badf30674d57f2a804409617364e371adb05fd967c3b0757b3ff8212cd7e9a489454b84fcb0863b925827b23d8387b4894c1fd7d0079c59d908d228b2533c9dfca92ca43c0a0aa3b2ff270305e6657bbf06cb842115911f69aee03a2ebe10093b97b0d0eafadcc9d450cd1b971912838738a80a1d0540126c9714fa94a4e30c8e2970ba1206b10507fd30bd557dfffc0a9a3b08ace31fea29720bd4a574a8ded84047058bf9b2465d607b43573f90ba4f1cd93161a0b7c73a1564afd171a9ec147282da47cc0b404a559d94c31cc47924e1cc171370313df5fe47fa29cac2be32746c779aff717a5d1984131364e80729f579a9f8a0b658852062f3eed4d4cce7974cce911b46298ef9326cf508c0faf142fe7a905ef84a3793f78e8488c1d62f0164b002e9ee54dcb9852113b2c31a5e7a21cb53a5781af7ecdc5c312fadd334f510ac65219d4e3d14cfc5df78561d4e088695d907d6b113c23e87dc505fb095adb37c6d34a69c49a9a2297a00f8e0eeae783a69407ace6cb5cdecde16566074f78bd7dcdbaef064c58354c47e21742735c9faff9668b3b37f484ee33b30314d3079498437a23f442f9c1e86e7dbc592da446c793c506afe2ac276e1404869021fb4c643d3bc7b4433826bdb042a78467c8499122f325b94eb0e61594e47fa946807b3b4f2d6bfcc99ae6e0ae5d45600f63522a9d3977906db6f71fbdcaf38066d483669d9cd5b87771c8383ba19440e70cf8f7a9b877e80e40494913667451f06df1b972afc567b94320b2f9556bc6a50cf6fafbf38ea714a83de7bfa03edc052541250dd846c4f29a79793af10751716979c3d9d2697625d2d93a846445db8d574a19b991815992ec0b28ca720ba2de51b8f1749c7f2aca7acbf008d47581e0a39c9e2818e6c4b256dbf4e70ba6a24379b3a482a68ec0258db06f01360215cb0f70324594643f654c5d28a160bae8253d7a3aa8a38b47e91b1c6a7bae0ebfdb53bb32d27498fefd79ee997864eadfeeb0cd32096a248df2d7f72485bfac3dea1b89608953f3f75d908e007153a5d19ad726a6665fb60b47476003e6ae91b7a8ff9cefdda25ed7a9626b3e3d23eccc32d08505b0e46c5c1e33ac97e04691ce568a78d3e08de0301fcf8efd6c732cf98b33e5721b4679165f2acdb56930af650eff50a66b7453a28381528e2d467feac5ea6ebd25a8860a7bfd5480706e602b53ebe7ec6efed1aad50d2f8308c01b65686e15b4428a1983e92fb5cecaa2611ee431a484839b5397b551c09e308ffc2b068c51b950247716cd30f2b592cec06b334da4c13bc44b93efea5a8d69e532a1eb6a6336e7f66f41a09b8f495c633152323f518369aa0c02d8d0ae6649d3cd3d46fbd829af1db6d7d161f244d7e650040b7b85ed53df13686ae65d27ed86ddc09c83bba69ada8502da2677f901b7e2f26f2050d5a38517e63750b7938998797b1ae3e5a4bed060631167f4c339f6056a9b69a6e0d634e6a35277678fadb0b1dc655fac8a4feafcb1bce47d28df49c5e9a01543aed649294b53641005b8fa85a3c9731f7de58e7b97ebd7af977ff4be149c55738bf476d0e8644f636921921738b590630a5d480c9730adffd8f2ef5efbabdc792809ade4d258123e59aedee2c52f11336e9bc65eee1d4ad6414059643927210ef65406c16ba91ccddac3469d3b513733370aa0f41407fe15ce532bdbb6060139ac84831bfc5a4df79c66a7ec2f733fb21b40ac6dcc0dcbddd73e7bbfca9cc846fe24291980651417ee20c28e341db3642fce622998c6e3c5d394ef8a8803d5cd1980dbdbacb6a12beff0de1c01f6702b1f24ef4a67406bac7b76f11357d32ea5824bdc69400a6d58240f5f54872a5c75868f8ce1ffe542e8accfc672473921a6d7277e43b99d368dac01cfd1f79c5fddc09591782f36134c90139c3c4bdb7af47b4af71995844da15d6bbd55b743247a9fc5d1c21d096e56977e8f31454b0e2f5891e82cb83851420ac9b31ae0b3229310054e9376c918b668d14f68af6c4590a82998821c69d013e6bb625b8f5dcd893db2a6163189b943b261444a6c3a82f7edb7011d1276d4fd18b638fd7abdede7317f3cfbc21756a1c45e8fd9f47e5bc0193f9189af30013051030f87a1a54fc75f0756748da518c54e1421453074ced6bde78ef232e23580b988d1472be8ee030a0ef1202cc189082ca7730d9ee3f30967c000743edc22c64b4aca91eab7701013699b15b507c81b6963ff88bd846ca372dcb5caa09935d4bb19806c470ab29a891839c1afe02c1992161e2390df2bbf84c617f49f6f47cc1094676f9fbe1d0edf9659ff13f621a21842c4bfad029e1f7ce9f483d1b0a2041078ea822b65b310ae2ed93900ba9fc32220cc007f861b2def9f4180559c002982b261a30fa7dd3b919e66135199bd64b21d7bc3507c8973dac54331dc39e81a214af1804912858460f50458f1123ef3144b6402c231fa7a17d54bd028b87387aa08343600490b9a947afa39d758f084acc43b34282cbfa706cc140d9599bbf8cce2ae722fca607314db56b357773a75fd3b6e572ab40ceed96acbbfb7bb0214c097e8d1523bb1f2b4a4847b622f6c703d3a26283266ff0dab1217f367541caedf9f815037c60e005a9ad6b034047ddb0a6cf5a64f1e09bb3c476542b25283ea633b0bb2a729895e2a84c7f248141055405e189787e319fae919f295cb555f95d37b1036d1b46dd8ae28ddf742e63141026fe0f008736c64a3d0c6ee0709c062be27155054948603d72dd2e5db16d082d64d3b3c5883372a75f883ed5f3d49adc01c941af794c874fe1ea21cf342da43d8846971dd244f5bfd3e1d4130840fb77ac0a263ce2fef0c60a6a2379b9c823048fc88a0eec7db5b1752186c079d0b82f163a9a87a4296c48570fc27e13769c1f1f72e5c207d42e59b1006d4930f57bc3cae2b968a8bebc2cd98d8c0d61a2875c4b1bd1d22666b611f34b7f574d273a25c823bab28778b08f24b4b1b907f24c0874442e48ca3a33913c096496b730a15b892c29ec00695a06a230a8a224c7ca2c9cda90581815d936e59b49f26271e963c53ba8177e4dc94088be0f914053205be4250f46c12f8b8dfe69ad1e2304541c17bb8af86063180649e5e5c7ae152bb94c0b6b4c0797fa8fffd34dcb7252af4d1546a34bb6f2a06a411ed4468155d4594298760aacbf1e50497071fb3cb61f9b040c42316aa55779d845a63cf56aedd6ac6f6720b84f8813f4cc18b9d5852413f2ffa9743246e43d57c7541fb69f83468ee321e092c485d9ebbe098440f162f667b6a481bdc9794e1f234eee2916f223661903f1978b006b637712b7e98df1cd37c7682d718f7d4debb5de1ab6d7c1ba67673ebadd23eeee56564edf60c5773b28115526a56b5bb7a3c294754dba70b9873a871cbdc4e84fa497f2565305eaee3b3607de10b89563c4b77795467e00185fe8a79b4dd937b43120035d93a380ca5890843ac5013e3192c1700bcabf6f5de7ef466bc98930a49e83958e88c9ecf6f70e68f7dfae15fa28f26f28c7f5b3c4e56917a9c57a9d7ed89c16b11bab1c81da1718c7c489bd0c7fd08d024936e8485271fc255b4cc9056e428c36b2345298fc0e94997ac3598ba6559c721fc7f81905029ab5df1b8d6d6c61fcf572a50ddb09869b1b98a516faad25ad601b7e14aef5f65869c822d73cb7aaeb2f2589fc951ec395d4c6d9a741b8b45be12207bbfc4553249a7cb3635c266ef0e8eabd6623c9fdef671c115f7ec527e1a877bab2fa5628707318a178b8b72a3a1b3ca0bc960a7949b50e4699bdcbf83b1962b26ee04af0a2b2de7333016bc27a6af76113ddfbfa180ce4879dfbbece44b5f336dcc15104cbd455e043eb9c9636e00637a41b7ada4e49a9c8ae18cc78485438b125ff720a90b7ed55e65c17a0b830e38798dcb6e0517a48a10f00378bc8725089d24334e8f61617e03700993366212ce3b90af492b50cc63e0933296375f2a0bcca84cba521e4906bf412d3082cb15dece800dafb81c925f58d84133bd0dc8c61a790690e80699ebef6345e8fa1a06e92af39bde5171436778ecab0106e96327f1c668b6125e3688c97bb4861a283de08c90e862d3dbb6fc61a5d87177f3afd782f34445bfc87101b940f33e021e5eaf61879d89e921756af2658b2b63b008074ad48f9265336b707c913493878a07f7dc5925940db978e6f21c3755893e70ff39548959f0345fc0f4765d6a67f70fa2b02cd64eb515813e8d7d4969592708c96a3f8a46fa508f4ab7dfb420741a6086ab03ee48b99020ca927be34c91b1520859c78a026cf53b22d086997b847e18aedd9ff6138f60963aa2af0d6104a52eb277675f8ace21132e169ea45cf01fcf06a434b608546e9e38e93291ba3bbd90ff94ada2713020656a789d1c981dfc3ecfda853402ed1c250f975e7d645ffff27f3e96174c96a92aec274b4d8c54ade9a11a807c37316fecf68cc942a54008c1025b6f39ec3b21366585024753ebc34491916c5f7f4c5de2f3b8ea10662dba65745e801cc83135528041ce79cfa648ce5047d6add403822c3cb48c96ff844568a21b3fc9fdaa3f853327f98d3a350f9b0e0656a04021a38e5f5fef4e3d1c25b23b69b6f46e49918fc617beea09fe88d01f24d7f1379d58f36ed00aaa424009535583c21f75ab10d1b4188a517bb08dfec4e0481f1949c947e70213971406ab152353c430a099d101b379efffb904f4dec58ac870c5edc047eefaf48d66e12108f21411ac6f44eec55193e5c9a2cdb580697adf86ff8a76ff04f0eda13e139ce343c4379948313c5f58ad0613289495310c2df88745691e1241670414d6d827f86f56ffb08c0b0c199545c36b090c2ee2aee4ec1a89c11c9df1b79e0ce5821fb07c799b65db232606cdfe71c285d8122e46139b760d64c0078e6d59fcba389d68fd7688e992eafed237253c2f4c357b98ff6c023df9f641bfb870d6d212566dc91c95bd63d782af8709b1d6b7c1e8ae70896f2b4d4c828a52619f837c8722f44677d329d8b1fae4fc9a949f50108f4e931e990306e04a602da0a8abe4a673246ce308fa682809798e0d0cddf52dd696a6538caec528176d2ba92dc78a404f672c99c6b19aebea458526d09eb6ef4e69e8dbedb38fe30f0d4407da03892eab201409c4352655978f11ad173e3823b71f86e7ba0478190611c044f23c1044c6a10de49a20fbde2ed75fb63fcabebe168fb21cc2b8ff16e8c05c403e713b2f0f0232fbf498934091e0af1afcb30a537fe042fb6397527c7c561acdd6ad0537cb0ea9f2ceb149026bbbdd3ab3421595d59ebc9e4d7946abdc41228864cabc89b697568706c8eac2cf9d6c778e90bebc1d8efdf1b0f1b2093d72d865145bf5f270b506a1154a29a055eb6b4d3ff0bd2df4edcf8fe6cde5394c52b191e5d14c0ae438d101b082c86c6324bf66a8e1858eea6cd428b552a6fada904f55f77078446c5be9862aaa47ae172996eb3834d4450c12e10eb0345b2026286d1c41e741768ada138d3430804cb02abee595f37c6c318c1d8a929708329b26758717e9669a26afd9fcb4f7fb535542f7e881f9710ee6e8b3f4f9e89c26d4e196ac04ff65a85c5dff44d3dd75114ed54acd032ff80c34b6962debeacf1a1b777c93c6b9e7b771a6aa70385e8ce8da97e1f450aeb4846ff9c5c8512a1b09964d7aef5ce1d36099c2004e12247906e799d89b17f471a336453ccddf62753444b054d4c10ca7e9b684d4bd3f39cb0f31d7ae029b715a63683ac551e26ed30f2a64fd72a06e3c68631072bbb7a684ecde403d1563679a134a5447c8678ce234e3260bf6532f106e5d99fa62153ee2c631304c1a62fc40149ac7095c38b5d25786d9a8bc5be4023fa36972b39cd19d67aa577b907f62a327ad3b57aca841ddc725dbcff1977ddec82b765676dcd7b98812b261f50df48a877ad79efe4cceb2f33d0e57fed84a8418dc07a0d5a7504cb4c4267f66efe2b155646b478a8f004d24377d75add373bacbc454f37cf941e89e56177648a2b01a31900332d231e0f327e8c1538a65f7a43c8f931e340872d6d2652ec00d51bd76713660d0fae3657f4bea6fe594ab6a20d10e319f5f9bc43e37c5932afc931748d35fcdce64abfcffe2d864a611bf10c2dd2b83053de29924cd47dc9d457857328c5513b5f2ff9dce2d8a5df5116bb3ae6274b117c65d89aa0d1ec215f51f61652204435acee7d2d6bfef9c445c5c2e96e497c3d3adfc3f9917b3ac08b9f6488243b712335402708421998e0f023d00c0c044d52cc6b23906589cd2cff2bf6fa783f9f79f90e8dd187e10dc68a2b406f1945ca1e591df21f0134d69edca9674c2aae99304a9c7e4e135a1eb70ea45346ca0902fbcbd083243e60bc6030228ef46cef259161bb105afd270cc01c7c4848ceece43b9c63d63dd8628306f12390c19499613b9e1e4144e3f1f383ad909abc8956595446d7c8c63c266fe7f61344eaad9889b06001dd40b16f901771ceaac586e337b76283eb61369b9f8cd0bcc577457c21f9f2bd0b3d59d7471ddfab7c81d69495866a6d8ff1f2da8ba09a0748f234369e652775f2d9f52e49b2e4201aa8c02a93e5e5df0010679dfcec73ca333606019b6f31f8468606099c840dfc5ed3f9dc477685492bc9ad75e40fd34e2344d12c0464c3496c71148766a8e8663a1488c894c0deafc79bf8699390fb35cc7bba031ee10b06d784d1c401583f8e86bc5ed31e37aebac105da0d0415db6791feb56aa39f35458016c106bf34914c9b90bf433cc7e6da5acbef06b34dcc61bb64286e6d9ddf578537b705cf3e7764f082b72295de20f926f1fcff3764de67aae7c64cc0facf05da52d0c25cee8cc3048f64d65a4a84bc0c0a932038f305b9359004352861d154edf866e078c350064db10145df8d440563d960a990ee1cf6034f6de3131fb6608ae480949e1eb0d84f793a0f33c74a6abf3843bdf560447a8611cb563c4a6d7f97808e603c95975437ad8e9a597e314b07872818b51b25859499252309fcd04f71a79aeefd2d1b89dd818670c853cce773d098c5382b4926223da7312602693253fb54f998d4dca03f638450ededbdc1d037dbc6239deed8843e8c4f951b91f14375b2e1cb50e25ce97926b4ea4b764b82a07ca19fd16150b226a06f674998e70048aec9ea27a99419ccc29f81fb0c9742eb3994b9413e3544868e0a1e21cb28dd07f187bec8cdd935ba025fe4bdec3034e5d529ef7c6997b27d6d0726bb5df67067a3e66e46a6720f4d4ff9d8f64341aef42068e1ceaed67be86c8bdaeb13918be5e83f04a138d7e36d00c6f97372d1043d3d1fa4a8dba31126f9b1952a1f3720ab0fb2b4f81a43fe9dff463b0fc1a1ff9a88a14fa6527e447add3352e4f40847d7afd701cb8d2b1d84974e94f98c0956dcb99b175af8f59b171248c45b289709414018b843cb69240bf0e34ed5002be0efc9bac4f6f77044f9a6f385e4bcdd362ee0b2e86bc2b51e81f636ea5639330826461d9c59019efdb374b0eb990cf9b4696eb474c4d45dbcc598162d7ef9f08106d71ccb548cafcf931b07f488e6be0053bfe562a5b7074ec4dc982082bd8036d99c4b0f3bc05e71949b65b76f416e8ffd1e966d1a3a579d220f9ab6b93800aafed8d6ea3044fbfa2d34383ab84b37480d3d8b5efa2ecad451075a81ffb58b0c3b841b7d863813222b4541f227dcfe55e7262e34efa381385d1d5ac847478af66650a0f8afa6c5e313112719c3b7e7f31406d3b7ac181ac776e1fd21cb2decfde7080fb3cd2674f02dfca78ffdd9587342de5efbffa0f9da3ff051bbe5efbf1cc13b3e9d1386f2ff02dd3b44c172120d3602b070c288edbe45441a6149642bdb777cf0baadf3956b30f7aa5f208388eee8cb70acf092eab3a71835aa37041811f3d8ce55fdcbffcdc4e85d9c77af77cfe132937eec8d2d2967f45d9dabf46927e45ec3e8d1b0f0f0365705b881ab22a352863cbf6d3a53df1e6483414d4f4eb2136442aa87ecd9c3c6c754603791e86d03237847375a0331080327da330cfa8d56cd0f4c15b82c7f70c69af8e16297993e4f1e71661ba2111ca8792f74dfa8335a02fd4506f00c45f68f6c1c089370873a0dfe2887e593781399d560e66fc3f8fcf1f98a5201b024e6bf37a0c32f8d7a46165a93ea4251e6378ddbbcbd37d33a25e3f7d4a8084a3816c64fe6ee29ed8fa5b6017782226872a4d769659564e7f9d08b06a1617d04bf57f467769be5aa412e7fb879b9c33fb282098d0750422900d86d4f16576bda617b6f9be23c8bb1737a49a573cc0d7ccf6d51d179569fe90d6a622a5c7156261b87ee6d4677c8b10812cc4bac4e7476a05aca2bafa5db41f420b99da7cdb88cddb13e2c8bd17d784adfc3d886ac3e3960dd3019c3a15033937558c876305786de0d0fc715540f6866125880748b95f39cdfe27a7dfd184ffe24239f0b012c956e259aa744894dcfac77c89343cc794b795ce878d66f86f0064d853a60cdd3835eb0323eb0d3148e3be4125776d690b0b1b85734ecc7beb71d6fb762cda4b70ceaa8c57082e3b177c9ce44e0c098a85918c661131cdcad99a17188010e3c70c5fed6a84bd58f30c91d1bababd60207075c59d98b58f98ff4634be7dbcb76080718959d132129dd840158a02da7b391ab8b40d8330006a313e2d75154655b9dee5068d68b17084d0e91670915d4d3872793951a556d5bb0efac77fd1dbe7e505a6823a965f8770b6b1bb03d9ccab27efbbf2ce93bde7b3d1c8dff5f866cb6187fcef670d10498952c1a2b05635c758b8595b3eb37a62e1a586562cfc09926a860ed5dc66cac255e9860d288705f3ec96fe36a1b9824c430ff8ccf2e0c6cdbcdcf95a4d54212e2dfde33e601dcce1e3f50c6b5d6bb353bb66980e0a662b762637a270f14b29619dc6c9c5ccd74960c3c7b1d028e08dcf3ff9791655d6ece6461e9ded1bd425441c7fa5adad1a530601733465edc23f6ea2dc3946a67990379041f4e34ad0129b97c87c628b79eb38e6ba06b99989d532441afbec56e402548c8ea126ae95fd2a430d6c72b1f064daad692f4f4e249ea69567ac71199219d2ef199d50a1712e0bc555f90f656ccf436d047ab4ed4a5124d7f1b3ca4e0896978b32b1e07af9156742ea2d72015e3557d20de103e91ffeadb45695cfae95d4c90cf0bf4ee17407696e6a5487d398078d701fceabf066f2fee623424452b8d71aecb4edbb734f58073a8008df7527958cb51acc33b47bcc91926cfbdfaa0b9f891213100330c5d6c6a36a27e31c37dc557bcfac0c569a548fa5264bf8d373e3c41ae6f37fb4c9b9ff9e8fdd363062c783341b5993c54b9db3d6eeb8cfaad176720b8299a74c13053566a2045e49ff9a8d1c3632da6e67d245e8de83f8ea861c3bd5909ff24619d7313ba1197e59360f3653f426b2eaae53777595dac04e569f1d49f6e664a0f63483489b717699b7e3d5e215c64d96ead6eaa7b6d82e2a388a3bd5882b5fe0d947f61952bb4b5dfa1cb29b46f8ff092dfb56fc4fea02bd25909c5a5a00e2546089f3ccdd8e46d706db8869037a6c15de4f953bd73e918a9625672304f636c78e1c73642d03a10b4466d3fd5770ea8889db19e594fe5c68101607a4e241d7da676036e1b5acaba369dee050bf88f7d0c922fef9617044b46e2e1e28e21caa541f62a1e349cc284d1396abf310e9e8140daf2b4c5259c0732509a207b2c5ba26850137f3fccd5598976a6f0b5c996d012eec3742db61581370508fe80f7ff7649a53dbd024ed8c471267db64771afa642f0ff686d1c12e5298967ecea839239097d76c9962bf5e348ab504af9fa15e9059699d551fb412f399eb0eb901a4a68cacd0fe30a4c3d07bc9566abad50fdae77e4aef4c893a4f505629b1196be910c935a5c59ab2b37e6ab127e8ae61eb4f5bd9b9ceaa7545a8444f097784fb632659f583c595a34096cbd6b58568460e45c250396d925b177d8c9246b261de728433229bc83886649b8951e78cfdabbfe723bd2031fb0e3efc439f1a41c1f6ef0ce24e48487cf80ee7ee2edc6036a73f5bdd5efc76cf309990e0b8c9e8b3c7ffda06edc17ebbde8bae603affeb1d53a4aa7ffaef1a4ce111608d5398965ef8981b78ae9c77825bf34a2a72ba5a45ebc6f7f4678c59897b2146bc39367b6395a93b204488f5166bba1a1a6b1130020c42c683e43ec074f6f207a78f705c2c1341ceb5795468faf38460cb8c48e17b194cc50ed0366c132b21f04496a227273b1c6ee9acf4d90863b9f350011aabf82f02f833532885dde853589c12196e89ad6e5e20139df9e8938e4640bc03d514240b57c951415fb25cd69d243b90502743587107216f8b0abbfd39e597cb9f17dbd7dadb52fa2b2d24924a1e9e75541e293eaca50a54b561b4ab20dccedd53c8226d2f69a6c491f0dbb6dac4925bd7c558493f5660f7327a9e289e30d371dea1f6fe4f008fbf4e7429793a5ec3bad6156ee1b4d4fc165c1ac4a801621c8330ad791fe34ebd92a26a008ad2e5a8065d18e482136ff3d957d1f6624c72264fd9fc3aa59454db5f52db9fc53c835d2b30ba99ee7c842867cbc8a44818144c582872fe030068f529c288d45b4be8dd236d5ba2494cb7539195f44d58c69406d532c956dcc9bbc1184093334d5dcbe8a8b4fd19b8295f49fe6d96e8b46b87941beefb05c77ec52568acf571151876cdb40fbd29d3c84162b9a97e17a78af6246800741ab063082006e238247fbad4be6946c4f3126c23a2d91c2516627c58d58df8a07a426360a77372e0fc613ad39340b2918e0696852f98c0974090fb6961112eb5ea9535e91958c6de8cfb42e7e696ce43cdf704462f3156795f11e1b01d267dfb857c1ab36770197126b7c339ab0539b3a2ff6ca51ccf9e6d330fd13d0b766132619c6acd6e3ac44c75e1a581827e6c8b2f0b20e0387a5771ec14b9d46d0224a9c1a3608981424bf5d40f89d406e2e931ec6d88749ee482b80f748a7075b40de21e8c24e8f548952eddc2e420adb8d187c5c43dc1a48c92c1314d57bed4468d308e98d4706f374c5d8ee56fb3c2af9a2ba42234e6f36c930ec2612cb8544732223358a267dad3e9a35d8737f0534b7513ab81334ea274f0f867153856d68d18c958a75be5f09cd40d29c0d7df2eaabab5567adafc799b2e9a0c940f9127d693aa4ccfd3dcb373625c06d77ef10e7d7e6bc3f0bdbf6629e5ff7cdb85fb7862cc894d1c8190c4ef20618922632fa098eedd63e41ad7b29a9916389ee98d388d280f05776726033c26d79d43b7629b656934074d240ea4b2d2a3ca6b4395541d0dcf0f6e80ca25932476e0336546a50b41d79bd6e42564ec6df376fe1e4b5e73c79e5bda62a4aa189161dff73fc46dd5d7e2e4042645b0ad38940e18d276d8d1363ea72e9ec7b75f9a8e4c2297ee9f4279309d931aa7ca16f88176487a15441ecbfcd6ca99f49cd5897637c988eda80ad1954aaa6dd51217c67263fe54b7bfaea95f5d7405fb5013ec4a38f17c2ae5f153c2498577e3eccabfdfbfd3acd61b807c3b23895873b5bcf7b3bb6cee2cec18a454ff445cdffc0f30c813fcfb34e907fbd8e7ebce97252a8c3592185e6451b2bf498bdd00a13dc86f17cf192a074108ce6cb98aabc8291a4e4e36f778ff1e40ddb673d6fc13c980071ea1e150b6f12f51117e8ef3f32244e622098f5bcab346c528f867defe3758e215781bcd584078c4cd9950f0131c1f2727ae82daf2adfa1df15b7a71e4d09f1b61ab3d037dca190f4238858f53e7c70f04657db5440a0f89b7d0c6105911d3787a5ceebd5df783d2332c7e05ecf1237ba0a6feb49fe0efdc4cfce2bd3f69ecac2c856baf11ddbcac465e0e9ab154c497071ba5601c2ab0bc4fc4c56ce3e733ada8f8b04de518878422e0635655a94986129582c65f3a89099abaffd3e5efe9c6091d5661df92c147893a9f4b0e2d1491b2afeedb0e59e80fba31c957dcf969128b994c511c1c1aa25aeca9121f22ce7f17bbcc5a909195218cc8bcd9c4baa034fcf4cdab0b000af0cbe4b79cc5e4f86fa015c60e6e29d6f29184fefdbffe300b7adf8624ddc530a6b302823588a24763b4687298571bee1ee547c708f496af318d0a8d727757c1ec9546e92160b47f28e2dd179662837a985ac91faaef211801518789c79c66b142bfe42c754c8771cb9cbb75a340defbbc79933eee53a174a5f7ca0b44753571af11e5e47eb2e817bd29e5eeca07c72fa55dd54c710cb4a9469a76418c43ee18d4775af3108c45c04fccf5980fdc497e9e61888f104d988867a3b62601997372a3ee2d18534e1311c373b4975209e6b5fcf8e0dc3a7422efb7dd03ff91a90197a8fb8e90d724a84b10d8ec06c429c90f09a7111989401ac3f99ee13bf9b8ad65688fb70be6e4a9983294ac12c8f0ca2b5e9c1e17d6dfb6b53a9e51c7e3090dbe7207d57d23e6f1fda95e6a5ff564aa354ae79c6d8111a2733b1d1a9e3b3686e0696a35a6bd7bccdd5c24c15ee4e339865253f52f806b99f333000aa3a53261554adb1a306dd6787e90c4fdcc8b60d067653bb2ba274f3c33677dd6663a9fe4e6ca3ba1be896b8de92e10cb6b4982de1de430e694ad8d3f9a38f7df52241786cd54364b15f0d800f76ae5b7abb9f54f7522c5ec7cfd97fefadd2bb30d6c85988e525760ceae4513a3fe21077bbeeaadc5e8e164e257b91ad913d11cc2e43fee7ffcbc865f89a76f5abfe12d29709d23c867351a51c9b8daae5332c66f147ce4c115f1d965ee864b71c882e799fcb3f092b2ecf5a59cb37dd84337966198f61d58b1b41a0732ebe12dff140b450977afc5958b9ac1b503fe9defc5af2b2251bb461e0a4085cbe65f64529a1fc3aedf4faa107eecf9472d59efcb97575406b275661d4079724c72acbe19677cc173c0768229f60a5d59be4a62edb9d012af36f20610c68da129d428f03cd4311531666cd2460502f771adb09dc8b913941269d003b660f28dda13ecc9faba1ee70fae05dcf7b5a2c86ace30f1b3aa6ed4b42a588e869af0c3ec2e51887e9e7f3b9aa42d12fadd4612b01b8dcb8979e6f3cf6b79ac5e15f5c81f837dc440514f842b84249b7299dc793358e751a1dda8f7c8fa611db11c17b2d96e43c6d8c86e47a339cafdd903ce9d3731440628353b41ab45fae8efc22ef7a75617c809d105f3aeb03d639bf2a5c743ea1d13b22eb14799f3691da655df78629f1597db88c2a5247faf2741308fb1bff3cdb94df823942af35fffe1213e20f500603e294ae86be19cb37bdf0cda025e584e7cc04c04e1f9b02379383a34e4c3d3da6d779fe5e4cf1aae91022e9ad69b948596268c11ef1f288daf13281be0c4af1afeb26dde4b222e7c8947fafd141d626ee20abd21754b6778a7da3fe2e48ff795c790d2d8ae3d1301514c20c9dac1eec7582d1cbdb3ef8c5fe1aeeb3d7c151116b3c0f99abc77c4b1d297699afd47a823ed6ecabe00c6b4ee402d52b66404f963338b3bbf48d44cd1cdfdd5bd1497e3074da008a86f09b6c519b4b89d357a68cdac0ac45361a9586202ac94f6c3bd7f9db5c8f1c3cc6947cd9767efdbe1e0d2eacddf9f330906bdfce647bae7d2cd3a527ccdd5d43f5c57c11b3122f49f32d74beee10ec136dbf73fce9f2e9214bbafb79063e0941a43121e42472e1513051b7bfb5996c0bd5c020a981157b8bddb8fd54ba3281063cddd34ec4ce8f7001ec1133c4fe7653c1cae1ecafdd77284191037e8d6e1651f36eb9073b36407def4f4439b280d9b602cc3a4cd8d8d5002e085d8e224d7e91d69b3d21ca51055decb1e1b68b82c2d2bb7a7f539f94ce328dc67de31ff68071947e018a712e70a338ecea2bb3587666fa0886300cf0f9d89966abf8277c44a23781615402bae1bee3c6afb5d8fd9360620516c9328bab6c536c02f1719e82ea54544368985ebe98456acd47ab887a278363bc93c07c10e9339284b598692d5d79387778d0194efa16ecddf8035e2f54219140dad81141d21e3bd32e293ff6b68632d4c20738d469e718033f750d018e34db20690fe6fb2f905bbc84dedebf2b27775f64016705e4b2b85cad33e04e206143e743331747c9cda53aef1f04fc6a75fc09f67c77924a1d6c798f248f1920896358a5273befad0915a6325c4593b7ab3608122f0c9eacbb8f8202a7170ddaa583e4531c54fdbf0fcf97d745e36cdb32ed4527cfe9bb388266e297c6597b39921ca685132ab2b691e98efb08ecc4d2770700ac41f60ec10ac78db012916af320f7d031a071471ec1b9e9ac5f2fc5d829a73f6b48af29a02cfb1ed0d427491083f706c046724ec49eac8f418f3cb82c8a9a622920e29da16ae0406b412061dd05d4fe56b42186e65eab2c1a7f41f9d1409a59050e111e7250797ba2467b60bb93467cbf7a29a487713080f60be82694bb7b7fdfe4dd4efb681e7b18fc8e043ab46678917f477ac09ebbc75637ca3e0d18ebaad70f38dd6e78bb1338c7a3a13c13b30a2ee667404e9d9850896dd8a7d78d525662d339a0b33b3be404c9daa8d6047db8c5ad80c65e35ac8462a92a9d14fab36e56b9b79bd5da9a0fa5adff09cdc51049e1b2a9e47035b0fed03948a50d795a846f184285ce8750b9df62443f55c4d8ce94694fd6eb4b89ffc9f6f5a7061b1ddbb6d1b787f4c24a805be5b174363b1cd34de8530d2fb6c3ba07201159e99d96637594d19a90117939c05c9d659451bddc13f9b103b9a080fe3907b57f10a5845350689be1e9b6857fb7f642014521083d52d175661f92c37d5b2fb1987a750c7068591bca2c14825300336d9da89272818347df9f5cdf907219e7fe54c27ce3352db6bfb8b35423f2cac1d21900b136304f38ebe64d57db9bb562b8389a3d34123698d3dc4d4d0ba380dd5b40f73eded0728a26dd14e8ad41ccd292c81ad8d1f8275ddbc705d4360173c1348b6106825a18bd4c1f67612436b559f928b48f75eb90a214424ef1263eba52a15640d007bd85b0be5d028b4feaab9addf4255d8423a0ee281aed6489d652b6796a539a660fa55742aed08129c6089ff0dbb7102723311d3430d72966b018dae4fd60e410856155ffa7b2c209be8ac7362f311f68c7588a62f790732e40d59f03743f3c325f5330608b332ab8ad43408d091e51a6f5407c7039b6f09e97de5a48eee8b0965ec1f3ce4f4d4396d43cdade469c4759ab47f8f98629289f4c7ecef6f5365bd44fdc98339ca9dfb0d77b6f7064ecac7edfd112e55a84f478bdc6b12a252c910fb4dc891dbe9dd607be453e629e6fed559be96f2376541c1d38fb5dda826c1f39f8728f8bfa5f5dce32538f63405dc7de3c0bdfc47eac28cc14c7c13ed06ad9d9810bd7c52276a78e569d448e875ce20acdcfa00eb0c951903dcf8b7f14073d2616fdb3a424757afe399597bac69511cdc9062afabb6e1f550a49a10527687b753a860a2ad99a8a24ebf1c876565efe98a5807f62a177e2c8a9ceb4bb81d9c90ef39f4924a9d4d209e10f1dae1de3d099ece9a2208d8feeae6a48c8181989cc160de5e60e7e3687419ab40a99db24fd7b43b628f771a3cba194ca4b9c105f2c40409d4b3508458d28f86c99b072c9838659fbe12a9a09f9dc1572ca5c3b4ef008ecf9dfc2f38aa781b3ae66cfee129070b441ec4bdbf0a74fa58aedaacd7d9c58c611ba7d8b82058689e280ae4fd20bad0fcff8661bab2c7a6e5e1b3df868294926a9946e386a47f5ff31bcce5c5e6b1fb86b8b2d7a5f102db8ddedf69ad557450212eeebf53ab8c4f221178a64adc30824a4cbc93601ef1b49b330dc069d1b0fdcc9b2285096f023bc4c42563f2eba95024b23ea6b3f081ca0db1c5486f8c80e1a518763fbe6fd6aaced7fa704d477b38ffa4b27a7e06279e29489b9dbc2ae84625996fae34a99410d5ff2d56ad693d95a99ab7d095cdab4446f31239df528091347f3d6f4922fd943e62beec73d72344caa73c41fffbc1d0274dc80c26a7d176a6a2c41a7db2af80d4deee88886c0b3978881d1609b7bd0713b310fbec07491f9508e53e3d17a7056237763e9cd49d9bea3aff297ed924efe1b38c796d23b38f11e3620333ea17f08858ab8dc017d3825da16fcd6b316d3e1ca2923cbc0fe18f0ca4f586d64f0aab8c2fad5ca474c14f8ae6bb69a724f1480173fec2be3580336a92dfb77ac0ea3bb89ebe14959ab73d6c515c6e330cb102255e0cfebd26df159ee41e43c9b1966bd8e81e9321f8289cb7dce1c4d0f9380d29bdd60091aee717a4fb764b45dc8ab6ee0f397c5a3aec8a1e2b12cc8f5e7ae7ffb480a2a9e84f1cd1451a6bdb8e4c16ea771eb9cacdbe3e9ca0b3d23c21d7ea9e4c49af71f14bfa4fe35b8e42ee33b6d55c16df9d1b767b520bf2d34a60aa54beef5445d20f6be3ff2bcd23a81d934c0aad3dd36f62ccf5cda472292d5b3fb64e2f6ce29be3d662f27d5f50849c6149630c510412d94eb39900a9c84a69e02a9010af6d80fa6318bdf23863888aee2174bbb3383780115cebc4244c6b16495020e834fdfd2854f02709c6d34e3a3857fae3fde603392b7ac0cea698239e3cf5b4e1c20420e020501543cc6af3206cea2ffa8f073e59d225d32ad5045f0135d7b54aa212620c0ea1bf69fbb8deae722564386a07cba89ae64132ad5aa68b79b41bf2f14edb24045b3d2234ee0e379d20df9b03758c2617493c9af0255f02b84f3359a2c58d8f36507d60f717bf49e1fb961e0b81bb527f4fed56a444c9509011bb62084c99ca1556cc74a3eb03895b01d4d9e7be246a190d38bf65e0307c6e6cf94ca00668ffbeddc0d499154d58adf4ff0aed6dfe11753be796a267ac68ead7d56a23b335bcb015efb0243257e0d2b0f91dd3516852a7591367867c20c3e79094d8e482658d35ddc1c5eed4cf0c32f88d75a72ba061f5e1a5132e7d7148a9681430a6ddf283501bae662c1a66fbfde8922c0c80f3a27c0fe51ad7a4f43f0f4dad1f62e571334a98e741f8d224ccfb381f323ce8c59aee174c0dbc9111cf1b6441826ab6aa9c224faa0d5fec4bdbedbcd6eed057179f5c500d69f29f63669369131092647e4623e88f65cf212e1def1df70de2ccf1f00916bd00520d18bf036698461d61ca00079f275c34720ec016e94e7247fe228c2b21d52d031691aed3098586b374a89495e70782446fbc97ee7a928cc4be7ccee879ca13906a4c68735146aa9b18519d00312a100ae50d181d2a998a46c71753cb8a3f81d3c4549b84d1e54efea24fb836e7e1de770cc95be02e123f4f76ccc58992ac7b10b5d070d9c9978aa9b3d6c1746ad41bfb2f15fb3d7f0a11d056dd17c26ddca5fc89241c6ddef8fae19e9de46812c690150adb9f61bdd46c5fc461e277290d257fa9086ccbdb70b621a129b58862193bf83c90f31d513b41ed9cfcbd3423c45ee776c05308a05e6456fc5bb752943b107672e3334a4f074a99b9b67a71b0da4b63aa06c7841ebe6cf2566ce5e56a90295fef2c25a3447ee1f5ff9c59386e91636465025ff7a502081cc34f89d029dfb1e6d119acc7da8e7b751b67d3e2e1087b65304d0d007b84333877569ac1bf6e62a50ffd344ec810a13e8d37608e6d2f356f6bbdf2d54eff8ee500f093bf6b5b149a9776f803f6b45d8b829201a6cc012988fc83f26acaff4764b6ee321e4e995c046e30e24763a28d1151f693994597ccdf114534ce2265634d23558afafd49ac23d1888f058bc6edf8d07464dcb2016c63254155128fc01e212b03da3f16eb67200b8044eace3c2881f68c426c5e1a7aa1857a9aa410ac09ca413d8364c64b739273ce823547262638f652059dfa2a2e83191e43834954481ad182ac2c7b0d5f45fc28be6b5ba9ad39d8b6b646d884dd281567db1fb23860cb5e50f72ee17d34d9fb9fab295f19482ad71fb55cf5682e2bb96e840f7e61cb75ccf9a02b27b2f7ab0361a65366e068abb3538979b04bf2a05cedf5bfdd4899408896cbac435bd2de78dd760e856c12bb6196560e78fd0f5454e8bc9466d1b93d29e40f48a8a4a59930185d3345c51263a7446f1b290765a266200efe4b15650e19f092b91b8ede1b55ae85474f20b51d275c466d9a3f457a47d95905cbc10b83caf745e3c68ff78349ffa9d0e56e389be30d4a08eda243c515c7b055787b7ec893ac6d108137066d8271870202953ac551c5cc65cb516f5bd38b6f83c777d01d2b5fd663fe7dc73086e09f7ef9389d8716ce269d0fd846e59bfc89ccd0b67fa1b54eb6a18e69b2cee88ebd709a7cafc56e412d1e13b698219fadf11637ab5f1e13dc7c3e8f52f933e670c62832ad5f3fe08d32ffadd930a1db70a496dc0f21407dab8624fd0a4123d2e4bf4be7b80ae9ffc89651df9c2eb6432aee8b07ad1333d6a595ec4db1348cedf83468fc5862197740e17a17c9f7bf9ad788ca319ef5429c93544e438056c364e3eda1147fcb849067f67aeac20f8f6df5f6f2965e82d67eef0e8b4a4a7b0d7be2ad34e2cbc32a84e06816317214647ace2dba86276e0a63d43fb99fb51350bed177b032be623aa86241211b2328c78512adc1ca5a40476e2a03f8146f3bf01b787297e030ac8991370536d54b8d13c33d6ebd08f2a2a304ecd174faf4cac16b0b6a507ca5bbc63dfea6095a63001d58c2d5d915a07b78d90cb27e423495e8e11898602439d2608dbe3bed8a21afd1b2c3e22e38f5bc39fda69258213af39b7cc3af136debfd188c0a4e8882332d58d672ae645d4e092907eaefd114fc5d4bd493ac7968d9241930b30083381b9962fc2b417b78737160f28aa8088b7cc0b5c49d48847400414bd117f629aa6de872d824c151091ca042a94e1bfb98521176176c9c0c4d4cf955383d91663f01e5002f246db8a07e26ed556d82bbc7898153089053f271b06b6da00329b1b853c4ffb47945b55f54a6b5885e3a96a005f402af076f856f345d7e3991e83c7c535581aed2da0c16befa9f7a6fea4857fe5a7bae20b73c2c0dc1aac24b7f363eb3ddb73f2af710b4031bc05ff061b4c14b6f3feeb281ed15a487c00963eadce080a3192c58bc5987d2a3907d7792ddbd1a0f2977f07256500b4b97a79acc06ca4017702a9419cc0d95cee16f73d0ef32df0bf06e564ff676f4da7e163e803859d47a75549a6831c28aadb3cacacabfe0fbce8070ad10f8a6ab14e5324f8ad6ff25fa71db8e626b3c5680b9a2c2d1efc90f82b45cc4315a9f51cad0941a3645b80bf2aa1040388c0df14a94657aec150af7fdb0af643a432b75c719b51dd35db9ac5d0419ce12c6618837dc9e99e6534ccf58164d2a56febfd9bc442a0c00ba86f755566b3b812bcc599c59dad5920d3c772b4ca877ebee82718d90fc862c261547e67cd90c6ac54eefd402e3cf5705d1373c1ce1937b1f3bd8b8e2f1f86e1464b62618215e0d923501fef6a59d3814d1d5ddad1e27fdd1e641a7ad057b7f9200ea361f96bbf911f54f6b7eb904c1b96985729cc9362aed4591bd7335b1dfdccb8f64a7515f0e7c0fa0e5004219b1984710eedf72923c4b5e5b469c81dd829c2676484ab653c1c6ba97d0bb7cb0f099b053fb87874dec0e35490f8612b829b2e35456ed111339918589da8d480bc441a8f6e813875c001263bd47468d3e2a14503937915a2ca10a822886d62ac6588a10203a49652c1d38b4730b8ce84cb6fe1a62a63527ae674c16ee0ddff1d5ee6943f5c9d8eaba27f8bc0c08f2b067d9bb4b45aed0e892bb97b82aa5363bf3cba872825973ec31e05c55a607c1c56514fd5fd329875ba7486ce3b5403a5fac0b4fb02d4d0c3e99577f0d1cc3cbe8f6abdb71611e7f77a180678aaae113d3d92077b0c24e07e6dd8c19c1ebbe0d284536955da2d33f42a1f78f27a5330db384c2b8c9117cfc3f02a82ac77537c9154373b4e8a5ba16890c07e3cece482c34e8dc1cbd7f3c2f717b99325f84687d4ba97896b08aa256f079e492ec900596f0107205ae767bc537b32fb5c2cda8fbda10417f288e1fc113d629e14f636da9c8f87af258de178a2a4738ed532329e908854a72653bab4a64441db76a673c2979e950d9462dc4cafa3f9bd68a37dfc37e95d5dd4c728be9c7f6d1d3454e9d4b3fc5cc42434e38bcacfd0a3daf22324304c027420dec0c0e9bdceb827a8d276c3a067789cd41e28e822ddcb681de40099dc6997bf28f317233b085f7b10f6a913e18372ea92fe81cfe83523553dc501c0672cd16ddc06b3d64ed79ebfcd32136f556eacfa8adfcf1099f18cc4e7e4beedbf4dfae3669b57180db075d3420fcc60894adf7d4c471a54a99251ef29153033dc597874be87835296393f9f5727efaee596a00d564c09ef346d7f4e6420cacb297e737115ec8d139d7ebbab80a895a50422b86a031274f79d1c05c0a1f14aac4baf0c64da74eef4d3ce176073a9edb4292e1aa0c61d34b4e6983a27ed3e93d4cbaf2f2fce59bb6bd69cbda6a408c3fdc41bf9b83ff07a5c5970acb51f7af616ca2b323d69b0f51951e60d0a8587e1bd60b633b75cb4511d3c3359914ee08374cc3658fac0308ff8a2dcab9dc9861c78126fb10026cf7b77f3c6e1fcd30cfbb9598cf604b9ec65f31272212a7da2ee621ad8d2ecb2050b87353f8e78af401c0509a06d2e6b4b625c27ba75bf280622a120fbb02b8f402d8484e9b329d7f212eff345f16c44137634d964913ef29bafe06b9c4bd155b7bc13db750c9e911c3dc9b21759fd8e8d29cc0cfc252c1d43aa4c922984000311f385afedcbbfa65e00bc85ebf10bd0ac289ea966b959cee19a61d4e41e9ed93e473cb8fb50344573686861c62b5fd06e7a4d00f5952530c5475b2700a90a497fb6277a915ae987d2da6598d91d88be3c80e28cdfa7d91dc3f644b7e2d0a6f4fbb0c07d03351f70539bb4b0dfca62cbfc57b7f014f5e46afcf2a51e7ed1d18d07600c87e70e1be95473bcc0a91efed8509cad1294bf76d700b3c386be44461b98120ebdc8aa4607a2f0a2daaad794d8fe14c0eeb983a3787e77a0a3c4fd0670892f1c1503392c717b08d2c4106a9901f3c979037dda9bc2e657a931303eb340dcae41b107971778a4bbd70e3f54c25379f5a2b11ef4281f5bcea8ce53ec07d1eba69243654fc24c5f65f1f790de44a27ec43cec5bb18c3cf2cff45aa3fe77922520196715206bde4da9bb3b3ffab8a6846051bc4fe24fdf4b1088dc8d9a979fc99e510334aa331631b3161365020a0b15fbc0d09369a89fcd92a93b2a42ed031d0b0b5fa5a9a40647bf7970ca2057a479a8fb1b9f65f31ebb98d0b81706c455c73a7639b00cb88483319d4543700c67305ff200a7cdd9185ae88d2791a233d3dc61b2f2292a8fb041b22b27375ca32d1959ca68c96d00bf03fe8d99970ae319fa46f57bf78465414683b712bf763a5657f6f042e93668cf448802d31edc6ddefaa3519c77b1f48a42682b515b2748c5b2f068852664be90c68cb89bc57ea47fb79d721dc256925b5ab71fa010c13593bfc07719d23a6d7281cee028a362dd3f424a6795f633a741b6f443c952e014f672f432ddbb79386db4eef6902e5252daf70c85850d5802e7652684997cfe6a8ab1a79f4915e9582afce248a6ddc03ae050c92150ce1727a3a260fac579eb07f4b2a32988f02719914cccd7e987acc03a63a76cbd093e7d7dcfa9dc9cbf595c74391962344a3e80b85213d885869a378d94d6df673c40f4a247143afb43ecce22e5fe781111f6606a053556df978f98e9372b5d710e7ba21b6dae9c4a60b6281ad21b535ac6f381f6dc6daf635077681a9f469e405cca5fb2b55a397865e9dc3eb119e24fd11ea622045b3c8bab7d2e062eb07b61c9602c99d8278b40aca61c20148df18974094f23d1107edc369cc8dd3007898b43a67dbec80b58fb456b6907e3263ab318fb962a0993c525d5f49369f914f43d7ba48ce131fd61998d98b88dff76ee6f690801a6ddc9d720396420c027e2b5f7ba270f58994abd4849e03539b3b4c54a2ea15997adbfe2db27ddb46bef78f0c685a65c43d6f05391947ac30e825fe1e70982c498a2588e2f1e47ff36cac1e8a982afe09c0436c680fa57dad5a45413e7ebd42f700e7fa80b9895e6f6397f217a398ea93bf16ec9130dcbfe06cab4f7de718011fb9a1506fc49acc4d21f1062155951121114d77446a784ff041716ee435a98cb92a1b098f2ff73c0a5db3ba49c76e374b372dcdad7c119945cc2c6c06764ed67ac2b14aac8eac1f69696edc83283ca7cccb3e2aa46bb67eab9c9f6e691dc256144222be6fae6b85631a5671ac20cac0ca7a6d31388d3d72ad3cad81b8cd6c887481e67ab65decd89717317ab538fafe4fc89674d0c0c7b7ba9ee9279a66c6a63f8da00f8711f7d59b5dcf6a3aa0f21f5207170389e34ce946cf562de9363f2fa60cfd8a9429e08bf54d038d73789be237ffbc5b8d98969da72815471b117d068cf272a4290aeab2104482437243d754eb8126f6e86b372a9edbdd2384476d8d5ed10d8d84a033f326bf3dfefb8c4ba2191229e52e7f496e1faf24a002c5c5822042d2dc64f4e8948164e843343e152f06f7085f11ac1a510b317b90827655282f0aeaac0a2fd172d324c02b89f237e337f6e013114db17c098e17160e1430c27885891e1fc5f8e35e787b8d65be9a96229bdfa35caab4cc8f891e21cba01b6dcf1941b3c718331ea61bc870c7db83c562cf2a77393a448def94a41ce0f629b268742873766b876cae18ffb51addc47a715741da67a89c3231897869fd3d38a117ec566b9f168fbceb7073ee154dac30065d9f7050a6951be86a08ce21b67b63a9f6ea0f0d24c7960613f945d63903c3bf3d26653e20aaa829b3f45ea3d61a280597106e144fa55c687b18a4f8c480020a9d761439abdf2a8cbb89c35f3366be063db276cb87cfcd723d45a328a6409c18e009642c08cec28f5998437dbaab8bafd28c06342a4618b0a62aa1811974bf74d3a91649f089288415d9ee7904e37a737565a501c5b22e08ea51ee09d56b268d9b077c6560aaff533210ffce9f49d71ee9cb0d8147f339e778070fc7239ea836937ea6f8045da9ede8a3613d5d4de009400321ab217dab04d28b36a414471b8ca87477d5be3b4bee07ce666ecfc1d7e0bcc870c9c0d13cd9403e5c52921731bd4be2e1153d033e4afe07a5e78dfe35ecfdbdb3d98f8a04e0e4ef753a47d03c2bcbd74bd1527d9e8cff93020db69e296d49924f3438673657ce262b803bfcec374508374ec673764ed88a0a21b6952af733e60569a502b5aeac9d0b7d393d1a9c7eb5176b298482d7ea120d7eec2b48f7123f07c51248fa8df121de312c3e908ba39d48b6a7d086fa85b5ca63571fc153f68b423e235fbbdd81c49fcac5f6dfcd231da5a1313e8b0f3df2339ab15e6a3663bb5148bb4927124cb5308399ccb8bf2d062417bd2b70d5f45919391a18edbab6d90046b55ae7db9dd7806782f0b7cfbc1c8755659ab44b8da55763cf41a39d9b4cae3219271376552f2e8fabe7e8e520434305d1cb1546a84af9ae0ed0d5d12f3d723de07c27557d3a4cf711b436ee2697a25478e75d7193d92d64c791173fd5fcb222d585cfe8ae1b81b61d28d5373643dd98ab21987a92c9c532c26997f489081846a2ea7a0b7089143306723b86c5944b58569bab5dd35797b4aa47a8c29073cf60bf15d7e84491b94cd7d1292c7f0dd9a0faad53695101fb14d775ddea4905e88124ed3beb05b339e99577c39105eb17fdae086809519fae94561b0c6ade3b0083685d7a0082fcffa8a82d3e0ce9f3f780cf8866704b3ef6e4b24473b8914b0d9f815ad6dfc83440462fda7a9007fcd20f2cc3171c1f49d94295a10421a312c6ce20c22ebc7afed77d82e5a6666c2f5b3b7f3a77029d5ab6f93a8465eed510886526516c4172ab8c801eb7613292fa37c58ee9cf4c8b8c1832ea7609a8bf9573bfa1964a7f3750914559875039398ff55b0abaf659b8c11ec26958b08ab3694320d7175ec3dd633d4b9441ba5ffd389e5120762bbcd80a82b7cccb449ad4212276dac05fd90b7bfcdf1c94615fb43bd678fafa50cc56ec9b5c031c99951893531cf6c454f36b102521e942542fd7d76c8355f2e956ba73948c41ca32289d46ac740d810d98dbda0f9ee2b6d750ed23bcb9c27dd41d1eb0a2b27e3040905cb2bebe1de96387516ea4d0a944b3797152706fb7ba664a1a2ed7499cc13d120ff05aebabea31617926136bdcd3feac30a1a5d8cdbaebc1aedf88954c62fdde659bdcfa10e5937170d497115cfc0496a8bdebff85a75cf574c309b718050b6453a529d0d1d7b7266ce5824ab6a3ea0383db92487dc0cc9c49e65c3696625821ac1b232b78a3230552a2677ffaca6c95b1b5928d7c809bca657839cee9051a0dd8c481468ac8536de85259968bac9f9e9fe5431aa93556b68c8a35538c13dee4d6da5fb2de5dc0844b286420e61436afb48ca68c1a566722844c9a7afc359fd1e601fd461b10b27903994a2ae125ea6073248caac5530627ec09348c794e76f44c4f51b88685356e64527a4d6f4cade0faaff2490cd7fab50d275ec3287b080a517256b20e720572a5c8139aba5a6358ae050dddddc12292b0627e3936c1022e92254988a02255b9418e1246665cd9dafd59678278b1ea00ebc5df623db33498e8410882e04525baf9add7603e65164c2dfb1a7ffcf66aaf54fbdee4df7323cf7e785c656d004c0212be1384d08bb098f25424e893a8c602eceed55f6031dbe8109049d003413ce5f5ced44ed96fd8b8c14089a8a66f68184d9b283901426389a97dad9e20b2d7b43a56c2d8cd20721688334660f00e38dda4d7087c3ab28306f1884354bd73e2ab6c84099dad515acead990fe697d9d848ad5763c566d5060f71a8c756f485efaec1f46ea2a6128758665dc96f31440dce0c52baebe39bf49985e6a1d3e3d6775083bcfa004e3c7778fa0cf36a55726260ced4199f06d7afd351cf1a2f925d84f2d67cf0ab5bc6855bfab68e93e98a44e535f5e88bccf3a9633aac7fa2a59644ed945ade28adf2bad928b23dc9707d061207067cedff39ad2c428d9c9c6141add2f4b1f2fedfa1fdcdcd3137b73ea00d19bb5907698fe53a45ae0ec1dbfc10faa233ff889cebea38ab90d6473584bb4c63bf8fb7c0519b15f82ba27572d96cdcbcf70a87d98501d86edfdd16ee1d91268065cb36b4dc9ea1a47f3c4edc4d5270b52fcdb5c06653395f3dc10cca0d509e8348c7bee5d64a8e195e9c5a207e90e5c724ee3cf5a4b92eacca62e8ddc7b8eaf3b758468e7bb12329a273015f42845d67de4041af1d68a5049bf55c7b2479471b4aa65952b83530bb533dea3fb0e938f56ce2f1cfe4aab6d40810c7b091dd345b1c7bcfde0c98aa1708cae1f526ae9a54d341e10f7213dd6d1f8b7caa10fb028b23d0e9ba63a9cdeae3339d35f24650ae381412824e2b050a2576e6f27a38bb9c66673e7a1645d1aa385c757d2c23677923faa9ecb06ca9677249953a768d7bce9fea28245b77dddd1c155d5b27d7187da91ef22ef3b153c100c580cabbe6089ce24ae04b89f7227202e1582859686d71ca603ce244714bd29d660b3eaf2ed8098390eda4d79f45923f067946d5b03ff27691a5c3f8e4ede096875e499259d9fdafac0a8dcdaf6a37bbc24f6b3cf48c0ad9b8225451b9d007e3eda6392b0b3bd030b12581635755f4288a19b31ba98ffa488e47c5ce23a27f3e7cb57ee6e2a0cb584254de4c0a84d4ac14d57fc92dd00cc32f7649720fe03e9d184e9a8dd07d5d4ea9633dc374cdd18c8f0fbc6d36c70cb181a52a327451a50e17c88af9cb7f476b78b010c01cecc66f6ebb7596730ae759adbec3571bbdef6ab115c6fe1a08346c50aeb5b403da4face58f58656797a75df9758b8069155bea490f930c74656558d387020c483842971cd739415d8366e05f93d3f7b857526702866d22ebf7ee6ca23a37a6d92feeedf26214081ed9670afb6ed2cb58fc29566d2d2f831fc5ac427d70cd7df2c29d597620838f07951587e25be56f11c0cf811403bc492922a953620a6215f6e29888183a6cc3bd881fdbf9a7d23e57eea4b702b2be7b8b6ce1981b73440aebd7ff6db5754c32ed1072fa718e0c165b99b0088f6328ead571bbc32de770c0c416a88f9034aacb50133223753ed303157fb6f4d39b3bf76b5b7936a0e07a865f92b9d60076b5104baf5f52c14cdda66b10c0599ffac6bb75ef73b0eaf6d84a73b74710536f0f00d2f340faaa24602f593d92a81ec5c111dd97a32874fe0390ea5f568ef90862e8f0b72931494a0295fa300785d93b5d773ab8e3886f2cde810c9c6e30de4ec3836ae717e656fe784f01715cf9d94fee3174fa438ed344441d7d5e182d553c83dab9cb053fc7063731eab2cd39d42497f5c33d38c5f501f0ea03df7cfae669573b3508aa3b128073b876eb1c30987cd016932a4d07612f71bba958bbfe70093a03cc15213dc725f714c8527f5108b7060dcb27aef6ea6df1da7c1b952abd8f5cb371a4d9c27e7d5ac51cc65a02c9b65b9089144db638b4c04590b0fa4e90508b16cf50ae8e61b614c22169eb9f1c8ebfced21e4700d1f9972165e04fb5455a1575c23fe43437964ca779ed1c6cbc77186e69b65ba8fe8e0b5cbe6f7f71d65600397e381f3d645c458b153fba0e4c55b1dce9f7ebef4b71db158326f3359dc6dafe133a3030cb63855ac16e6df8029fe59cfd556f1bf101a841f81a372b9013cb3cac5f5a43e0da1ee45ceee815ea5b9b9350529a23adbe24ce8267b07679668e1735778edd9f936e349ef75bed54fff2022ce2f519bf0be594dcb2184f52eb500dd9eff921b87d013944cfdc8d4294047b572283c196f8a4af4227f64e8884264664eb10429c0dfc1c8137d175026585073896bb9e50e45d4680de1f4042de8b29a0a839eb29841bbacf9579a27d8028a4eabe867d4ff7399a2940c76e977769400cec8a1c806ca91d142e26f2832e4a9c943273f7c39dfe8050ad3aac852eb31b058822e82d236b9361c34b7c324e40aa81c3d81581b90f1ade6c1870763acd4ddd43f795d017d1d381f20fbd63952a143bb27b6d6c46a8120ba53405b61c26586d40c4b4d056c3e9daafcf461924006054b9b4203bd3881bf18c67f5dd50d14f92e72489717c976b2ed471c160a3484aea182c254050fc1a4c54368ae201acc642a85139553f7d02d4bcf4516a77f6e9e241c06d29a84bff9ff9a9fe1866df02fb28a1cd29b0786947ed657219ce2b1c5b9ba19c2bb5a59a3e95259f1a8ebe1a8e305415439b34bd115f3d443b7f2636e9d72fb8b2e19d224318ee7e32107727399d56e00314605c611697097d6965382b96944e2212eb6285fcf036e83ab9b1878ad1ae702ccffaab448d0b2524a6262f5580fd888611ec3e6b712fcab9d3a77e112fd402e5f633bf7fb330ffc66845cd686cdc698610a1b1616c0ba87aa9b5a956d3971b6f46328fe14d9d30968f459d6570cbf7606e14d95c0237c08d253a60c030ed0b6cfdd0abdf14da7996e8280858ff04c1a3b959b6535700f269913f316248cd12c08c63f223443fa1886108d5344ed89688e34bb10bb3ce32e1df30d95bd355952b6b5dca518d90c21fb3a6111626f1cbb0ecac374dc1657ec1bd0b597cd74f211365f8e6c1ccd325ba53a8f3617f382062f5680aeca60ffed2a8add82dbabdab33a366194f9a472303c5688f14c9e8af237ceb386195fdc3fa5acbe4283a04ab428acd8f68c685c95b4d93427f266e300c5b48ab2c5ede15994d9b89e86b86b8353227ec8e0505905b14a51c7689a9a2afa6c7b0d3a50def66df0965af270c866346a22238f56b995bcac0f842c1a7a5618c440e20eb29cd910ec606c5f5363e96d80293e43905570ac3063b9ee614c567c647c2dee48883266b6e408fb2e8349480f1b173d633e1af63b0769663ac7e775103c760d21df928577bd885c57704bfc610440ef7c363a58628893606288ef454d78acd8e1937b23c49a09cdc0b7f78a117115052004dd7f3565925879996cd7c0290f64edc46ad8fa2e9268768dd570c8b484bccad98d90850f82d2880f442719e363fd3af529d24ac643dc1bd9a748af981c0ad493d6274d2c691be6570d9529f004d8091687e53ef585f7f674cb0912cc31ae41192af3381e61ae3a7502c37a8ba157ef636c07b40561eb5bc52f0a058ed75227e05446eeb991d44bc42323c34ce874596c38dda7da8332755522062b07962b18941ff056fd59a97335d065dd75caba6b4e974c50a32a304e70db7d3ec49bdca15bf7e77751ad11c2fa7c2d2a0c2c4e84c4f1596be0be3c112f2f59739a2b57e55f3afe6bed635daae4a6cebd91199445f94cc9b2e6078fbcaa57021b7378f81a73c6b6d4a2c552d0da44d740c69d744d71f97e4875cdaa4930f96cca63596f0167d79c2fc7182e5981fde8c88f1ed64addae0d469b5504be1e7fceb6baee2316c51813a67ba9026902b39f0516908f7431238b79b9335242e3daeebf25fbe5cae25deaa5c13274e906807d83bd892c02047f39ab9bdb1e4e50f3354cdea713740485afe455da1ff7013737b4783e2ab210520d35e7658b330d9f3c9c69123017921c4dc4dca499d9860550eb38aed4a5c85ff1cdf4ff8c2a242212fac9eb46b86c6bf9cbed3032d5caa99e1ede8929f76bdf1866096a10bec7bbae4ffdec06d98a89563393e04fe30f7fab44348b4f3140425d96dbbc6eced904924becfdae5c1379f3687b613b7ccbaa6614409d30b0e7c1d5a0c015e2561e530db6df817f55d7791110f5543d0e919451be5937aeb3474ce36e328f9bb9911ab52dadb56c57ce79db5b9e751153434fbf3715d7a4e42c448c73dba0ee664c468ace510ffc3574e597b0a323be297b550b26553ef768806f4094fa1363c4608ceb2d6cdad5e6883b6c09269d958aab7dbb3bb02e9c12459081f82c8aca4ff37cc8f1f514ceaa7fa1f454936049be9e791410fc6ddcdaaee010fb293cf48592a8b6583d32232b051d9566bcffd09d494ded8b46fb792e25a4d650d438e108cc9a9a9dd0d8a063f782f8d4324d45498c52e14e06ab801f48a073581b325f1e82e5fe8d627a8a608db9f788d9c83091b5a11a5e388b57781d911700c9f453d86c597fd59e1e270846937ae3fd0f6e0ed656f1ac7f45dd17ae65058b1805a90e1bdba0bc52c3266ee3929226db6b1293956f1ef9fe6a2edf3afe22220ebd5db909b59b53d897913928b99b2df42129d2086e080cb90ed531376dc28aabc44b531e9b4af4f7598454743b028d55b07a1b6f75acbc16c1c7c03b6ac3d5f8a1ed00e28e6eeafdf96510e572f9ca7edfeddc167ea7aca68282f5a7e01df0099a6d4812c4ac2f19c07d7531c85e300460c2c38e223c6ad74227ce548d6314985080a54bd64d664f6dec5a24860c0b1068475afe91dee27397234561ff4896ddacac74bcbf03b4cc8199f634dc4ac7302053ab9feca1ddaec4eb2411920a3b0ef625202cf56c8ecfa675eada00f9235ef737d80f1d663beff2ba00515d70d8e93ed9f18e016073bc54a453e17aca2e6b33c6041463f56e0a08856ff640562c693e2c9ababd6b36618554c6636ee26f730a66e0a7f00b29e0ecc016c1610121a71236266f1a536214e70e1e84ed5f299dbf1966cd28b6da743d2d085de8b865dad68e5d613c8a337e8595a123c5b73137f3884ac445e7741bc47e8ad8050d3029948d6818cc9f2ee28f2cb832d0aff8ee3bbcd8f143e4c3fc40e2a9bbf90584981f9689d7285565e56a952a3584a7a259baedf8c002fec166d2dec15956ccca07ba4a968a59fb20797f1e26d87dea8ef72814155dd49bc6ed522032071883c94f871f98b3daccf315aec2d7a26a3fbde39218e56955c2b5bc67193a9b57e2165d1a77a3e1cb6rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpostgresql18-18.1-150600.13.3.1.src.rpmpostgresql-docs-implementationpostgresql18-docs     postgresql-docs-noarchrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)183.0.4-14.6.0-14.0-15.2-14.14.3i$Hiivh.hҋh@hg@hhhhh@h@gv@g;g@ggmE@g<}g4g(@g@fLf@@fV@f|fTuf8@eCe@eqe@eKx@e@@e%@d,@c@clcGc>@c6@c5c,N@c@c@cb@b@b@b@b|bV@b[@aaza@apa\>@aUaQ@aO@`@```q`OL@`Gc@`/@`#_S__@_F@_mmax@suse.commax@suse.commax@suse.commrueckert@suse.demax@suse.commax@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.comobs.coke518@passinbox.commax@suse.comobs.coke518@passinbox.commax@suse.commax@suse.commax@suse.comfvogt@suse.commax@suse.commrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.comaaronpuchert@alice-dsl.netsarah.kriesch@opensuse.orgdimstar@opensuse.orgmax@suse.commax@suse.commax@suse.commax@suse.comdimstar@opensuse.orgmax@suse.commrueckert@suse.demax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commax@suse.comfvogt@suse.commax@suse.commax@suse.commax@suse.commax@suse.comfvogt@suse.commax@suse.comaaronpuchert@alice-dsl.netschwab@suse.demax@suse.commax@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.comada.lovelace@gmx.demax@suse.commax@suse.commax@suse.commax@suse.commrueckert@suse.demax@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demax@suse.commax@suse.commax@suse.commax@suse.commax@suse.commax@suse.comgmbr3@opensuse.orgmax@suse.commax@suse.commax@suse.commax@suse.com- Fix build with uring for post SLE15 code streams.- Use %product_libs_llvm_ver to determine the LLVM version. - Remove conditionals for obsolete PostgreSQL releases.- Update to 18.1: * https://www.postgresql.org/about/news/p-3171/ * https://www.postgresql.org/docs/release/18.1/ * bsc#1253332, CVE-2025-12817: Missing check for CREATE privileges on the schema in CREATE STATISTICS allowed table owners to create statistics in any schema, potentially leading to unexpected naming conflicts. * bsc#1253333, CVE-2025-12818: Several places in libpq were not sufficiently careful about computing the required size of a memory allocation. Sufficiently large inputs could cause integer overflow, resulting in an undersized buffer, which would then lead to writing past the end of the buffer.- pg_config --libs returns -lnuma so we need to require it.- Update to 18.0. * https://www.postgresql.org/about/news/p-3142/ * https://www.postgresql.org/docs/18/release-18.html- Update to 18 RC1. * https://www.postgresql.org/about/news/p-3130/- move libpq-oauth into the libpq5 package. it is a plugin that will be loaded via dlopen() if libpq encounters an oauth workflow during a connection.- In the symlinking loop for *.so files only handle symlinks and not also files. This allows us to enable oauth support- enable liburing and libnuma support - prepare oauth support. but it creates broken symlinks at the moment- Update to 18~beta3 * https://www.postgresql.org/about/news/p-3118/ Security Issues * CVE-2025-8713: PostgreSQL optimizer statistics can expose sampled data within a view, partition, or child table (boo#1248120) * CVE-2025-8714: PostgreSQL pg_dump lets superuser of origin server execute arbitrary code in psql client (boo#1248122) * CVE-2025-8715: PostgreSQL pg_dump newline in object name executes arbitrary code in psql client and in restore target server (boo#1248119)- Update to 18~beta2 https://www.postgresql.org/about/news/p-3103/- Fork package for postgresql 18 https://www.postgresql.org/about/news/p-3070/- Upgrade to 17.5: * bsc#1242931, CVE-2025-4207: postgresql: PostgreSQL GB18030 encoding validation can read one byte past end of allocation for text that fails validation. * https://www.postgresql.org/docs/release/17.5/ * https://www.postgresql.org/about/news/p-3072/ - Add postresql-pg_config_paths.patch to Fix a race condition while generating pg_config_paths.h.- Upgrade to 17.4: * Improve behavior of libpq's quoting functions: The changes made for CVE-2025-1094 had one serious oversight: PQescapeLiteral() and PQescapeIdentifier() failed to honor their string length parameter, instead always reading to the input string's trailing null. This resulted in including unwanted text in the output, if the caller intended to truncate the string via the length parameter. With very bad luck it could cause a crash due to reading off the end of memory. In addition, modify all these quoting functions so that when invalid encoding is detected, an invalid sequence is substituted for just the first byte of the presumed character, not all of it. This reduces the risk of problems if a calling application performs additional processing on the quoted string. * Fix small memory leak in pg_createsubscriber. * https://www.postgresql.org/docs/release/17.4/ * https://www.postgresql.org/about/news/p-3018/- Upgrade to 17.3: * bsc#1237093, CVE-2025-1094: Harden PQescapeString and allied functions against invalidly-encoded input strings. * obsoletes postgresql-tzdata2025a.patch * https://www.postgresql.org/docs/release/17.3/ * https://www.postgresql.org/about/news/-3015/- Apply postgresql-tzdata2025a.patch regardless of whether LLVM JIT is enabled- Fix build, add postgresql-tzdata2025a.patch- Disable LLVM JIT on loongarch64- Upgrade to 17.2: * Repair ABI break for extensions that work with struct ResultRelInfo. * Restore functionality of ALTER {ROLE|DATABASE} SET role. * Fix cases where a logical replication slot's restart_lsn could go backwards. * Avoid deleting still-needed WAL files during pg_rewind. * Fix race conditions associated with dropping shared statistics entries. * Count index scans in contrib/bloom indexes in the statistics views, such as the pg_stat_user_indexes.idx_scan counter. * Fix crash when checking to see if an index's opclass options have changed. * Avoid assertion failure caused by disconnected NFA sub-graphs in regular expression parsing. * https://www.postgresql.org/about/news/p-2965/ * https://www.postgresql.org/docs/release/17.2/- Upgrade to 17.1: * CVE-2024-10976, bsc#1233323: Ensure cached plans are marked as dependent on the calling role when RLS applies to a non-top-level table reference. * CVE-2024-10977, bsc#1233325: Make libpq discard error messages received during SSL or GSS protocol negotiation. * CVE-2024-10978, bsc#1233326: Fix unintended interactions between SET SESSION AUTHORIZATION and SET ROLE * CVE-2024-10979, bsc#1233327: Prevent trusted PL/Perl code from changing environment variables. * obsoletes postgresql17-jsonb_jsonpath.patch * https://www.postgresql.org/about/news/p-2955/ * https://www.postgresql.org/docs/release/17.1/- Add postgresql17-jsonb_jsonpath.patch as a temporary build fix.- Use cmake(LLVM) < instead of <= to also allow building against LLVM 18.1 and newer 18.x versions- Upgrade to 17.0: * New memory management system for VACUUM, which reduces memory consumption and can improve overall vacuuming performance. * New SQL/JSON capabilities, including constructors, identity functions, and the JSON_TABLE() function, which converts JSON data into a table representation. * Various query performance improvements, including for sequential reads using streaming I/O, write throughput under high concurrency, and searches over multiple values in a btree index. * Logical replication enhancements, including: + Failover control + pg_createsubscriber, a utility that creates logical replicas from physical standbys + pg_upgrade now preserves replication slots on both publishers and subscribers * New client-side connection option, sslnegotiation=direct, that performs a direct TLS handshake to avoid a round-trip negotiation. * pg_basebackup now supports incremental backup. * COPY adds a new option, ON_ERROR ignore, that allows a copy operation to continue in the event of an error. * https://www.postgresql.org/about/news/p-2936/ * https://www.postgresql.org/docs/17/release-17.html- Upgrade to 17rc1 https://www.postgresql.org/about/news/postgresql-17-rc1-released-2926/- Upgrade to 17beta3 (bsc#1229013): * bsc#1229013, CVE-2024-7348 PostgreSQL relation replacement during pg_dump executes arbitrary SQL * https://www.postgresql.org/about/news/p-2910/- Upgrade to 17beta2.- Upgrade to 17beta1. - Allow LLVM <= 18- Prepare for PostgreSQL 17. - Make sure all compilation and doc generation happens in %build.- Require LLVM <= 17 for now, because LLVM 18 doesn't seem to work.- Remove constraints file because improved memory usage for s390x- Use %patch -P N instead of deprecated %patchN.- Upgrade to 16.2: * bsc#1219679, CVE-2024-0985: Tighten security restrictions within REFRESH MATERIALIZED VIEW CONCURRENTLY. One step of a concurrent refresh command was run under weak security restrictions. If a materialized view's owner could persuade a superuser or other high-privileged user to perform a concurrent refresh on that view, the view's owner could control code executed with the privileges of the user running REFRESH. Fix things so that all user-determined code is run as the view's owner, as expected * If you use GIN indexes, you may need to reindex after updating to this release. * LLVM 18 is now supported. * https://www.postgresql.org/docs/release/16.2/- Upgrade to 16.1: * bsc#1216962, CVE-2023-5868: Fix handling of unknown-type arguments in DISTINCT "any" aggregate functions. This error led to a text-type value being interpreted as an unknown-type value (that is, a zero-terminated string) at runtime. This could result in disclosure of server memory following the text value. * bsc#1216961, CVE-2023-5869: Detect integer overflow while computing new array dimensions. When assigning new elements to array subscripts that are outside the current array bounds, an undetected integer overflow could occur in edge cases. Memory stomps that are potentially exploitable for arbitrary code execution are possible, and so is disclosure of server memory. * bsc#1216960, CVE-2023-5870: Prevent the pg_signal_backend role from signalling background workers and autovacuum processes. The documentation says that pg_signal_backend cannot issue signals to superuser-owned processes. It was able to signal these background processes, though, because they advertise a role OID of zero. Treat that as indicating superuser ownership. The security implications of cancelling one of these process types are fairly small so far as the core code goes (we'll just start another one), but extensions might add background workers that are more vulnerable. Also ensure that the is_superuser parameter is set correctly in such processes. No specific security consequences are known for that oversight, but it might be significant for some extensions. * Add support for LLVM 16 and 17 * https://www.postgresql.org/docs/16/release-16-1.html- boo#1216734: Revert the last change and make the devel package independend of all other subpackages except for the libs.- boo#1216022: Call install-alternatives from the devel subpackage as well, otherwise the symlink for ecpg might be missing.- Also buildignore the postgresql*-implementation symbols: this is needed in order to bootstrap when no postgresql version currently has valid symbols provided. Once the packages are built, OBS could translate this to the pgname-* packages and accept the ignores; during bootstrap though, there is nothing providing the symbol and the existing buildignores do not suffice.- Upgrade to 16.0: * https://www.postgresql.org/about/news/2715 * https://www.postgresql.org/docs/16/release-16.html- Upgrade to 16rc1: * https://www.postgresql.org/about/news/2702/- Upgrade too v16beta3.- Copy postgresql15 to postgresql16 and upgrade to v16beta2. - Don't create a unix domain socket under /tmp anymore.- Restore the independence of mini builds from the main build after the -mini name change from April 4, 2023. - Adjust icu handling to prepare for PostgreSQL 16.- Overhaul postgresql-README.SUSE and move it from the binary package to the noarch wrapper package. - Change the unix domain socket location from /var/run to /run.- Update to 15.3: * bsc#1211228, CVE-2023-2454: Prevent CREATE SCHEMA from defeating changes in search_path * bsc#1211229, CVE-2023-2455: Enforce row-level security policies correctly after inlining a set-returning function * https://www.postgresql.org/about/news/2637/ * https://www.postgresql.org/docs/15/release-15-3.html- bsc#1210303: Stop using the obsolete internal %_restart_on_update macro and drop support for sysv init to simplify the scriptlets.- Include -mini in Name: to avoid conflicts in the source package name and OBS internal dependency tracking.- Update to 15.2: * CVE-2022-41862, bsc#1208102: memory leak in libpq * https://www.postgresql.org/about/news/2592/ * https://www.postgresql.org/docs/15/release-15-2.html - Bump latest_supported_llvm_ver to 15.- Update to 15.1: * https://www.postgresql.org/about/news/2543/ * https://www.postgresql.org/docs/15/release-15-1.html- Update to 15.0: * https://www.postgresql.org/about/news/p-2526/ * https://www.postgresql.org/docs/15/release-15.html - Move pg_upgrade from *-contrib to *-server. - Drop support for the 9.x versioning scheme.- Update to 15~rc2 * https://www.postgresql.org/about/news/p-2521/ * Reverting the "optimized order of GROUP BY keys" feature.- Fix source URLs- Update to 15~rc1 https://www.postgresql.org/about/news/p-2516/- Create mechanism to specify the latest supported LLVM version. Automatically pin to that version if the distribution has a newer unsupported default version.- Disable LLVM JIT on riscv64- Update to 15~beta4 https://www.postgresql.org/about/news/p-2507/- Update to 15~beta3 https://www.postgresql.org/about/news/p-2496/- use %version requires for the contrib package for now as 15~beta1 is actually smaller than 15.- Add proper conditionals for lz4 and zstd- Upgrade to 15~beta1 https://www.postgresql.org/about/news/postgresql-15-beta-1-released-2453/ https://www.postgresql.org/docs/15/release-15.html - Refreshed patches to apply cleanly again: 0001-jit-Workaround-potential-datalayout-mismatch-on-s390.patch postgresql-conf.patch postgresql-llvm-optional.patch postgresql-plperl-keep-rpath.patch postgresql-testsuite-keep-results-file.patch postgresql-var-run-socket.patch - Add buildrequires for lz4 and zstd support- fork package for postgresql 15- Upgrade to 14.3: * bsc#1199475, CVE-2022-1552: Confine additional operations within "security restricted operation" sandboxes. * https://www.postgresql.org/docs/14/release-14-3.html- bsc#1198166: Pin to llvm13 until the next patchlevel update.- bsc#1195680: Upgrade to 14.2: * https://www.postgresql.org/docs/14/release-14-2.html * Reindexing might be needed after applying this upgrade, so please read the release notes carefully.- boo#1190740: Add constraints file with 12GB of memory for s390x as a workaround- Add a llvmjit-devel subpackage to pull in the right versions of clang and llvm for building extensions. - Fix some mistakes in the interdependencies between the implementation packages and their noarch counterpart. - Update the BuildIgnore section.- bsc#1192516: Upgrade to 14.1 * Make the server reject extraneous data after an SSL or GSS encryption handshake (CVE-2021-23214). * Make libpq reject extraneous data after an SSL or GSS encryption handshake (CVE-2021-23222). * https://www.postgresql.org/docs/14/release-14-1.html- boo#1191782: Let rpmlint ignore shlib-policy-name-error.- Remove postgresql-testsuite-int8.sql.patch, because its purpose is unclear. This affects only the test subpackage.- Upgrade to 14.0 https://www.postgresql.org/about/news/postgresql-14-released-2318/ https://www.postgresql.org/docs/14/release-14.html- Let genlists skip non-existing binaries to avoid lots of version conditionals in the file lists.- Upgrade to 14~rc1 https://www.postgresql.org/about/news/postgresql-14-rc-1-released-2309/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items- Upgrade to 14~beta2 https://www.postgresql.org/about/news/postgresql-14-beta-2-released-2249/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items- Upgrade to 14~beta1 https://www.postgresql.org/about/news/postgresql-14-beta-1-released-2213/ https://www.postgresql.org/docs/14/release-14.html https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items - disable postgresql-testsuite-int8.sql.patch: it seems it is not needed anymore, need to be double checked.- bsc#1185952: llvm12 breaks PostgreSQL 11 and 12 on s390x. Use llvm11 as a workaround.- Upgrade to version 13.3: * https://www.postgresql.org/docs/13/release-13-3.html * CVE-2021-32027, bsc#1185924: Prevent integer overflows in array subscripting calculations. * CVE-2021-32028, bsc#1185925: Fix mishandling of “junk” columns in INSERT ... ON CONFLICT ... UPDATE target lists. * CVE-2021-32029, bsc#1185926: Fix possibly-incorrect computation of UPDATE ... RETURNING "pg_psql_temporary_savepoint" does not exist”. - Don't use %_stop_on_removal, because it was meant to be private and got removed from openSUSE. %_restart_on_update is also private, but still supported and needed for now (bsc#1183168).- Re-enable build of the llvmjit subpackage on SLE, but it will only be delivered on PackageHub for now (boo#1183118).- Remove leftover PreReq on chkconfig, we stopped using it long time ago.- boo#1179945: Disable icu for PostgreSQL 10 (and older) on TW.- Upgrade to version 13.2: * https://www.postgresql.org/docs/13/release-13-2.html * Updating stored views and reindexing might be needed after applying this update. * CVE-2021-3393, bsc#1182040: Fix information leakage in constraint-violation error messages. * CVE-2021-20229, bsc#1182039: Fix failure to check per-column SELECT privileges in some join queries. * Obsoletes postgresql-icu68.patch.- Add postgresql-icu68.patch: fix build with ICU 68- bsc#1178961: %ghost the symlinks to pg_config and ecpg. - boo#1179765: BuildRequire libpq5 and libecpg6 when not building them to avoid dangling symlinks in the devel package.- Upgrade to version 13.1: * CVE-2020-25695, bsc#1178666: Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers within index expressions and materialized view queries. * CVE-2020-25694, bsc#1178667: a) Fix usage of complex connection-string parameters in pg_dump, pg_restore, clusterdb, reindexdb, and vacuumdb. b) When psql's \connect command re-uses connection parameters, ensure that all non-overridden parameters from a previous connection string are re-used. * CVE-2020-25696, bsc#1178668: Prevent psql's \gset command from modifying specially-treated variables. * Fix recently-added timetz test case so it works when the USA is not observing daylight savings time. (obsoletes postgresql-timetz.patch) * https://www.postgresql.org/about/news/2111/ * https://www.postgresql.org/docs/13/release-13-1.html- Fix a DST problem in the test suite: postgresql-timetz.patch https://postgr.es/m/16689-57701daa23b377bf@postgresql.org- Initial packaging of PostgreSQL 13: * https://www.postgresql.org/about/news/2077/ * https://www.postgresql.org/docs/13/release-13.htmlh04-ch1c 1764600505  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~18.1-150600.13.3.118.1-150600.13.3.1postgresql18htmlacronyms.htmladmin.htmlamcheck.htmlapp-clusterdb.htmlapp-createdb.htmlapp-createuser.htmlapp-dropdb.htmlapp-dropuser.htmlapp-ecpg.htmlapp-initdb.htmlapp-pg-ctl.htmlapp-pg-dumpall.htmlapp-pg-isready.htmlapp-pgamcheck.htmlapp-pgbasebackup.htmlapp-pgchecksums.htmlapp-pgcombinebackup.htmlapp-pgconfig.htmlapp-pgcontroldata.htmlapp-pgcreatesubscriber.htmlapp-pgdump.htmlapp-pgreceivewal.htmlapp-pgreceivexlog.htmlapp-pgrecvlogical.htmlapp-pgresetwal.htmlapp-pgresetxlog.htmlapp-pgrestore.htmlapp-pgrewind.htmlapp-pgverifybackup.htmlapp-pgwalsummary.htmlapp-postgres.htmlapp-psql.htmlapp-reindexdb.htmlapp-vacuumdb.htmlappendix-obsolete.htmlappendixes.htmlapplevel-consistency.htmlarchive-module-callbacks.htmlarchive-module-init.htmlarchive-modules.htmlarrays.htmlauth-bsd.htmlauth-cert.htmlauth-delay.htmlauth-ident.htmlauth-ldap.htmlauth-methods.htmlauth-oauth.htmlauth-pam.htmlauth-password.htmlauth-peer.htmlauth-pg-hba-conf.htmlauth-radius.htmlauth-trust.htmlauth-username-maps.htmlauto-explain.htmlbackup-dump.htmlbackup-file.htmlbackup-manifest-files.htmlbackup-manifest-format.htmlbackup-manifest-toplevel.htmlbackup-manifest-wal-ranges.htmlbackup.htmlbasebackup-to-shell.htmlbasic-archive.htmlbgworker.htmlbiblio.htmlbki-commands.htmlbki-example.htmlbki-format.htmlbki-structure.htmlbki.htmlbloom.htmlbookindex.htmlbrin.htmlbtree-gin.htmlbtree-gist.htmlbtree.htmlbug-reporting.htmlcatalog-pg-aggregate.htmlcatalog-pg-am.htmlcatalog-pg-amop.htmlcatalog-pg-amproc.htmlcatalog-pg-attrdef.htmlcatalog-pg-attribute.htmlcatalog-pg-auth-members.htmlcatalog-pg-authid.htmlcatalog-pg-cast.htmlcatalog-pg-class.htmlcatalog-pg-collation.htmlcatalog-pg-constraint.htmlcatalog-pg-conversion.htmlcatalog-pg-database.htmlcatalog-pg-db-role-setting.htmlcatalog-pg-default-acl.htmlcatalog-pg-depend.htmlcatalog-pg-description.htmlcatalog-pg-enum.htmlcatalog-pg-event-trigger.htmlcatalog-pg-extension.htmlcatalog-pg-foreign-data-wrapper.htmlcatalog-pg-foreign-server.htmlcatalog-pg-foreign-table.htmlcatalog-pg-index.htmlcatalog-pg-inherits.htmlcatalog-pg-init-privs.htmlcatalog-pg-language.htmlcatalog-pg-largeobject-metadata.htmlcatalog-pg-largeobject.htmlcatalog-pg-namespace.htmlcatalog-pg-opclass.htmlcatalog-pg-operator.htmlcatalog-pg-opfamily.htmlcatalog-pg-parameter-acl.htmlcatalog-pg-partitioned-table.htmlcatalog-pg-policy.htmlcatalog-pg-proc.htmlcatalog-pg-publication-namespace.htmlcatalog-pg-publication-rel.htmlcatalog-pg-publication.htmlcatalog-pg-range.htmlcatalog-pg-replication-origin.htmlcatalog-pg-rewrite.htmlcatalog-pg-seclabel.htmlcatalog-pg-sequence.htmlcatalog-pg-shdepend.htmlcatalog-pg-shdescription.htmlcatalog-pg-shseclabel.htmlcatalog-pg-statistic-ext-data.htmlcatalog-pg-statistic-ext.htmlcatalog-pg-statistic.htmlcatalog-pg-subscription-rel.htmlcatalog-pg-subscription.htmlcatalog-pg-tablespace.htmlcatalog-pg-transform.htmlcatalog-pg-trigger.htmlcatalog-pg-ts-config-map.htmlcatalog-pg-ts-config.htmlcatalog-pg-ts-dict.htmlcatalog-pg-ts-parser.htmlcatalog-pg-ts-template.htmlcatalog-pg-type.htmlcatalog-pg-user-mapping.htmlcatalogs-overview.htmlcatalogs.htmlcharset.htmlchecksums.htmlcitext.htmlclient-authentication-problems.htmlclient-authentication.htmlclient-interfaces.htmlcollation.htmlcolor-when.htmlcolor-which.htmlcolor.htmlconfig-setting.htmlconnect-estab.htmlcontinuous-archiving.htmlcontrib-dblink-build-sql-delete.htmlcontrib-dblink-build-sql-insert.htmlcontrib-dblink-build-sql-update.htmlcontrib-dblink-cancel-query.htmlcontrib-dblink-close.htmlcontrib-dblink-connect-u.htmlcontrib-dblink-connect.htmlcontrib-dblink-disconnect.htmlcontrib-dblink-error-message.htmlcontrib-dblink-exec.htmlcontrib-dblink-fetch.htmlcontrib-dblink-function.htmlcontrib-dblink-get-connections.htmlcontrib-dblink-get-notify.htmlcontrib-dblink-get-pkey.htmlcontrib-dblink-get-result.htmlcontrib-dblink-is-busy.htmlcontrib-dblink-open.htmlcontrib-dblink-send-query.htmlcontrib-prog-client.htmlcontrib-prog-server.htmlcontrib-prog.htmlcontrib-spi.htmlcontrib.htmlcreating-cluster.htmlcube.htmlcustom-rmgr.htmlcustom-scan-execution.htmlcustom-scan-path.htmlcustom-scan-plan.htmlcustom-scan.htmldatabase-roles.htmldatatype-binary.htmldatatype-bit.htmldatatype-boolean.htmldatatype-character.htmldatatype-datetime.htmldatatype-enum.htmldatatype-geometric.htmldatatype-json.htmldatatype-money.htmldatatype-net-types.htmldatatype-numeric.htmldatatype-oid.htmldatatype-pg-lsn.htmldatatype-pseudo.htmldatatype-textsearch.htmldatatype-uuid.htmldatatype-xml.htmldatatype.htmldatetime-appendix.htmldatetime-config-files.htmldatetime-input-rules.htmldatetime-invalid-input.htmldatetime-julian-dates.htmldatetime-keywords.htmldatetime-posix-timezone-specs.htmldatetime-units-history.htmldblink.htmlddl-alter.htmlddl-basics.htmlddl-constraints.htmlddl-default.htmlddl-depend.htmlddl-foreign-data.htmlddl-generated-columns.htmlddl-identity-columns.htmlddl-inherit.htmlddl-others.htmlddl-partitioning.htmlddl-priv.htmlddl-rowsecurity.htmlddl-schemas.htmlddl-system-columns.htmlddl.htmldefault-roles.htmldict-int.htmldict-xsyn.htmldifferent-replication-solutions.htmldiskusage.htmldml-delete.htmldml-insert.htmldml-returning.htmldml-update.htmldml.htmldocguide-authoring.htmldocguide-build-meson.htmldocguide-build.htmldocguide-docbook.htmldocguide-style.htmldocguide-toolsets.htmldocguide.htmldomains.htmldynamic-trace.htmlearthdistance.htmlecpg-commands.htmlecpg-concept.htmlecpg-connect.htmlecpg-cpp.htmlecpg-descriptors.htmlecpg-develop.htmlecpg-dynamic.htmlecpg-errors.htmlecpg-informix-compat.htmlecpg-library.htmlecpg-lo.htmlecpg-oracle-compat.htmlecpg-pgtypes.htmlecpg-preproc.htmlecpg-process.htmlecpg-sql-allocate-descriptor.htmlecpg-sql-commands.htmlecpg-sql-connect.htmlecpg-sql-deallocate-descriptor.htmlecpg-sql-declare-statement.htmlecpg-sql-declare.htmlecpg-sql-describe.htmlecpg-sql-disconnect.htmlecpg-sql-execute-immediate.htmlecpg-sql-get-descriptor.htmlecpg-sql-open.htmlecpg-sql-prepare.htmlecpg-sql-set-autocommit.htmlecpg-sql-set-connection.htmlecpg-sql-set-descriptor.htmlecpg-sql-type.htmlecpg-sql-var.htmlecpg-sql-whenever.htmlecpg-variables.htmlecpg.htmlencryption-options.htmlerrcodes-appendix.htmlerror-message-reporting.htmlerror-style-guide.htmlevent-log-registration.htmlevent-trigger-database-login-example.htmlevent-trigger-definition.htmlevent-trigger-example.htmlevent-trigger-interface.htmlevent-trigger-table-rewrite-example.htmlevent-triggers.htmlexecutor.htmlexplicit-joins.htmlexplicit-locking.htmlextend-extensions.htmlextend-how.htmlextend-pgxs.htmlextend-type-system.htmlextend.htmlexternal-admin-tools.htmlexternal-extensions.htmlexternal-interfaces.htmlexternal-pl.htmlexternal-projects.htmlfdw-callbacks.htmlfdw-functions.htmlfdw-helpers.htmlfdw-planning.htmlfdw-row-locking.htmlfdwhandler.htmlfeatures-sql-standard.htmlfeatures.htmlfile-fdw.htmlfunctions-admin.htmlfunctions-aggregate.htmlfunctions-array.htmlfunctions-binarystring.htmlfunctions-bitstring.htmlfunctions-comparison.htmlfunctions-comparisons.htmlfunctions-conditional.htmlfunctions-datetime.htmlfunctions-enum.htmlfunctions-event-triggers.htmlfunctions-formatting.htmlfunctions-geometry.htmlfunctions-info.htmlfunctions-json.htmlfunctions-logical.htmlfunctions-matching.htmlfunctions-math.htmlfunctions-merge-support.htmlfunctions-net.htmlfunctions-range.htmlfunctions-sequence.htmlfunctions-srf.htmlfunctions-statistics.htmlfunctions-string.htmlfunctions-subquery.htmlfunctions-textsearch.htmlfunctions-trigger.htmlfunctions-uuid.htmlfunctions-window.htmlfunctions-xml.htmlfunctions.htmlfuzzystrmatch.htmlgeneric-wal.htmlgenetic-algorithm.svggeqo-biblio.htmlgeqo-intro.htmlgeqo-intro2.htmlgeqo-pg-intro.htmlgeqo.htmlgin.htmlgin.svggist.htmlgit.htmlglossary.htmlgssapi-auth.htmlgssapi-enc.htmlhash-index.htmlhigh-availability.htmlhistory.htmlhot-standby.htmlhow-parallel-query-works.htmlhstore.htmlindex-api.htmlindex-cost-estimation.htmlindex-functions.htmlindex-locking.htmlindex-scanning.htmlindex-unique-checks.htmlindex.htmlindexam.htmlindexes-bitmap-scans.htmlindexes-collations.htmlindexes-examine.htmlindexes-expressional.htmlindexes-index-only-scans.htmlindexes-intro.htmlindexes-multicolumn.htmlindexes-opclass.htmlindexes-ordering.htmlindexes-partial.htmlindexes-types.htmlindexes-unique.htmlindexes.htmlindextypes.htmlinformation-schema.htmlinfoschema-administrable-role-authorizations.htmlinfoschema-applicable-roles.htmlinfoschema-attributes.htmlinfoschema-character-sets.htmlinfoschema-check-constraint-routine-usage.htmlinfoschema-check-constraints.htmlinfoschema-collation-character-set-applicab.htmlinfoschema-collations.htmlinfoschema-column-column-usage.htmlinfoschema-column-domain-usage.htmlinfoschema-column-options.htmlinfoschema-column-privileges.htmlinfoschema-column-udt-usage.htmlinfoschema-columns.htmlinfoschema-constraint-column-usage.htmlinfoschema-constraint-table-usage.htmlinfoschema-data-type-privileges.htmlinfoschema-datatypes.htmlinfoschema-domain-constraints.htmlinfoschema-domain-udt-usage.htmlinfoschema-domains.htmlinfoschema-element-types.htmlinfoschema-enabled-roles.htmlinfoschema-foreign-data-wrapper-options.htmlinfoschema-foreign-data-wrappers.htmlinfoschema-foreign-server-options.htmlinfoschema-foreign-servers.htmlinfoschema-foreign-table-options.htmlinfoschema-foreign-tables.htmlinfoschema-information-schema-catalog-name.htmlinfoschema-key-column-usage.htmlinfoschema-parameters.htmlinfoschema-referential-constraints.htmlinfoschema-role-column-grants.htmlinfoschema-role-routine-grants.htmlinfoschema-role-table-grants.htmlinfoschema-role-udt-grants.htmlinfoschema-role-usage-grants.htmlinfoschema-routine-column-usage.htmlinfoschema-routine-privileges.htmlinfoschema-routine-routine-usage.htmlinfoschema-routine-sequence-usage.htmlinfoschema-routine-table-usage.htmlinfoschema-routines.htmlinfoschema-schema.htmlinfoschema-schemata.htmlinfoschema-sequences.htmlinfoschema-sql-features.htmlinfoschema-sql-implementation-info.htmlinfoschema-sql-parts.htmlinfoschema-sql-sizing.htmlinfoschema-table-constraints.htmlinfoschema-table-privileges.htmlinfoschema-tables.htmlinfoschema-transforms.htmlinfoschema-triggered-update-columns.htmlinfoschema-triggers.htmlinfoschema-udt-privileges.htmlinfoschema-usage-privileges.htmlinfoschema-user-defined-types.htmlinfoschema-user-mapping-options.htmlinfoschema-user-mappings.htmlinfoschema-view-column-usage.htmlinfoschema-view-routine-usage.htmlinfoschema-view-table-usage.htmlinfoschema-views.htmlinstall-binaries.htmlinstall-getsource.htmlinstall-make.htmlinstall-meson.htmlinstall-post.htmlinstall-requirements.htmlinstallation-platform-notes.htmlinstallation.htmlintagg.htmlintarray.htmlinternals.htmlintro-whatis.htmlisn.htmljit-configuration.htmljit-decision.htmljit-extensibility.htmljit-reason.htmljit.htmlkernel-resources.htmllargeobjects.htmllegalnotice.htmllibpq-async.htmllibpq-build.htmllibpq-cancel.htmllibpq-connect.htmllibpq-control.htmllibpq-copy.htmllibpq-envars.htmllibpq-events.htmllibpq-example.htmllibpq-exec.htmllibpq-fastpath.htmllibpq-ldap.htmllibpq-misc.htmllibpq-notice-processing.htmllibpq-notify.htmllibpq-oauth.htmllibpq-pgpass.htmllibpq-pgservice.htmllibpq-pipeline-mode.htmllibpq-single-row-mode.htmllibpq-ssl.htmllibpq-status.htmllibpq-threading.htmllibpq.htmllimits.htmllo-examplesect.htmllo-funcs.htmllo-implementation.htmllo-interfaces.htmllo-intro.htmllo.htmllocale.htmllocking-indexes.htmllogfile-maintenance.htmllogical-replication-architecture.htmllogical-replication-col-lists.htmllogical-replication-config.htmllogical-replication-conflicts.htmllogical-replication-failover.htmllogical-replication-gencols.htmllogical-replication-monitoring.htmllogical-replication-publication.htmllogical-replication-quick-setup.htmllogical-replication-restrictions.htmllogical-replication-row-filter.htmllogical-replication-security.htmllogical-replication-subscription.htmllogical-replication-upgrade.htmllogical-replication.htmllogicaldecoding-catalogs.htmllogicaldecoding-example.htmllogicaldecoding-explanation.htmllogicaldecoding-output-plugin.htmllogicaldecoding-sql.htmllogicaldecoding-streaming.htmllogicaldecoding-synchronous.htmllogicaldecoding-two-phase-commits.htmllogicaldecoding-walsender.htmllogicaldecoding-writer.htmllogicaldecoding.htmlltree.htmlmaintenance.htmlmanage-ag-config.htmlmanage-ag-createdb.htmlmanage-ag-dropdb.htmlmanage-ag-overview.htmlmanage-ag-tablespaces.htmlmanage-ag-templatedbs.htmlmanaging-databases.htmlmonitoring-locks.htmlmonitoring-ps.htmlmonitoring-stats.htmlmonitoring.htmlmultibyte.htmlmultivariate-statistics-examples.htmlmvcc-caveats.htmlmvcc-intro.htmlmvcc-serialization-failure-handling.htmlmvcc.htmlnls-programmer.htmlnls-translator.htmlnls.htmlnon-durability.htmlnotation.htmloauth-validator-callbacks.htmloauth-validator-design.htmloauth-validator-init.htmloauth-validators.htmloid2name.htmloverview.htmlpageinspect.htmlpagelayout.svgparallel-plans.htmlparallel-query.htmlparallel-safety.htmlparser-stage.htmlpasswordcheck.htmlperformance-tips.htmlperm-functions.htmlpgarchivecleanup.htmlpgbench.htmlpgbuffercache.htmlpgcrypto.htmlpgfreespacemap.htmlpglogicalinspect.htmlpgoverexplain.htmlpgprewarm.htmlpgrowlocks.htmlpgstatstatements.htmlpgstattuple.htmlpgsurgery.htmlpgtestfsync.htmlpgtesttiming.htmlpgtrgm.htmlpgupgrade.htmlpgvisibility.htmlpgwaldump.htmlpgwalinspect.htmlpgxlogdump.htmlplanner-optimizer.htmlplanner-stats-details.htmlplanner-stats-security.htmlplanner-stats.htmlplhandler.htmlplperl-builtins.htmlplperl-data.htmlplperl-event-triggers.htmlplperl-funcs.htmlplperl-global.htmlplperl-triggers.htmlplperl-trusted.htmlplperl-under-the-hood.htmlplperl.htmlplpgsql-control-structures.htmlplpgsql-cursors.htmlplpgsql-declarations.htmlplpgsql-development-tips.htmlplpgsql-errors-and-messages.htmlplpgsql-expressions.htmlplpgsql-implementation.htmlplpgsql-overview.htmlplpgsql-porting.htmlplpgsql-statements.htmlplpgsql-structure.htmlplpgsql-transactions.htmlplpgsql-trigger.htmlplpgsql.htmlplpython-data.htmlplpython-database.htmlplpython-do.htmlplpython-envar.htmlplpython-funcs.htmlplpython-python23.htmlplpython-sharing.htmlplpython-subtransaction.htmlplpython-transactions.htmlplpython-trigger.htmlplpython-util.htmlplpython.htmlpltcl-config.htmlpltcl-data.htmlpltcl-dbaccess.htmlpltcl-error-handling.htmlpltcl-event-trigger.htmlpltcl-functions.htmlpltcl-global.htmlpltcl-overview.htmlpltcl-procnames.htmlpltcl-subtransactions.htmlpltcl-transactions.htmlpltcl-trigger.htmlpltcl.htmlpopulate.htmlpostgres-fdw.htmlpostgres-user.htmlpredefined-roles.htmlpreface.htmlpreventing-server-spoofing.htmlprogress-reporting.htmlprotocol-changes.htmlprotocol-error-fields.htmlprotocol-flow.htmlprotocol-logical-replication.htmlprotocol-logicalrep-message-formats.htmlprotocol-message-formats.htmlprotocol-message-types.htmlprotocol-overview.htmlprotocol-replication.htmlprotocol.htmlqueries-limit.htmlqueries-order.htmlqueries-overview.htmlqueries-select-lists.htmlqueries-table-expressions.htmlqueries-union.htmlqueries-values.htmlqueries-with.htmlqueries.htmlquery-path.htmlquerytree.htmlrangetypes.htmlrecovery-config.htmlreference-client.htmlreference-server.htmlreference.htmlregress-coverage.htmlregress-evaluation.htmlregress-run.htmlregress-tap.htmlregress-variant.htmlregress.htmlrelease-18-1.htmlrelease-18.htmlrelease-prior.htmlrelease.htmlreplication-origins.htmlresources.htmlrole-attributes.htmlrole-membership.htmlrole-removal.htmlroutine-reindex.htmlroutine-vacuuming.htmlrow-estimation-examples.htmlrowtypes.htmlrule-system.htmlrules-materializedviews.htmlrules-privileges.htmlrules-status.htmlrules-triggers.htmlrules-update.htmlrules-views.htmlrules.htmlruntime-config-client.htmlruntime-config-compatible.htmlruntime-config-connection.htmlruntime-config-custom.htmlruntime-config-developer.htmlruntime-config-error-handling.htmlruntime-config-file-locations.htmlruntime-config-locks.htmlruntime-config-logging.htmlruntime-config-preset.htmlruntime-config-query.htmlruntime-config-replication.htmlruntime-config-resource.htmlruntime-config-short.htmlruntime-config-statistics.htmlruntime-config-vacuum.htmlruntime-config-wal.htmlruntime-config.htmlruntime.htmlsasl-authentication.htmlseg.htmlsepgsql.htmlserver-programming.htmlserver-shutdown.htmlserver-start.htmlsource-conventions.htmlsource-format.htmlsource.htmlsourcerepo.htmlspgist.htmlspi-examples.htmlspi-interface-support.htmlspi-interface.htmlspi-memory.htmlspi-realloc.htmlspi-spi-commit.htmlspi-spi-connect.htmlspi-spi-copytuple.htmlspi-spi-cursor-close.htmlspi-spi-cursor-fetch.htmlspi-spi-cursor-find.htmlspi-spi-cursor-move.htmlspi-spi-cursor-open-with-args.htmlspi-spi-cursor-open-with-paramlist.htmlspi-spi-cursor-open.htmlspi-spi-cursor-parse-open.htmlspi-spi-exec.htmlspi-spi-execp.htmlspi-spi-execute-extended.htmlspi-spi-execute-plan-extended.htmlspi-spi-execute-plan-with-paramlist.htmlspi-spi-execute-plan.htmlspi-spi-execute-with-args.htmlspi-spi-execute.htmlspi-spi-finish.htmlspi-spi-fname.htmlspi-spi-fnumber.htmlspi-spi-freeplan.htmlspi-spi-freetuple.htmlspi-spi-freetupletable.htmlspi-spi-getargcount.htmlspi-spi-getargtypeid.htmlspi-spi-getbinval.htmlspi-spi-getnspname.htmlspi-spi-getrelname.htmlspi-spi-gettype.htmlspi-spi-gettypeid.htmlspi-spi-getvalue.htmlspi-spi-is-cursor-plan.htmlspi-spi-keepplan.htmlspi-spi-modifytuple.htmlspi-spi-palloc.htmlspi-spi-pfree.htmlspi-spi-prepare-cursor.htmlspi-spi-prepare-extended.htmlspi-spi-prepare-params.htmlspi-spi-prepare.htmlspi-spi-register-relation.htmlspi-spi-register-trigger-data.htmlspi-spi-result-code-string.htmlspi-spi-returntuple.htmlspi-spi-rollback.htmlspi-spi-saveplan.htmlspi-spi-scroll-cursor-fetch.htmlspi-spi-scroll-cursor-move.htmlspi-spi-start-transaction.htmlspi-spi-unregister-relation.htmlspi-transaction.htmlspi-visibility.htmlspi.htmlsql-abort.htmlsql-alteraggregate.htmlsql-altercollation.htmlsql-alterconversion.htmlsql-alterdatabase.htmlsql-alterdefaultprivileges.htmlsql-alterdomain.htmlsql-altereventtrigger.htmlsql-alterextension.htmlsql-alterforeigndatawrapper.htmlsql-alterforeigntable.htmlsql-alterfunction.htmlsql-altergroup.htmlsql-alterindex.htmlsql-alterlanguage.htmlsql-alterlargeobject.htmlsql-altermaterializedview.htmlsql-alteropclass.htmlsql-alteroperator.htmlsql-alteropfamily.htmlsql-alterpolicy.htmlsql-alterprocedure.htmlsql-alterpublication.htmlsql-alterrole.htmlsql-alterroutine.htmlsql-alterrule.htmlsql-alterschema.htmlsql-altersequence.htmlsql-alterserver.htmlsql-alterstatistics.htmlsql-altersubscription.htmlsql-altersystem.htmlsql-altertable.htmlsql-altertablespace.htmlsql-altertrigger.htmlsql-altertsconfig.htmlsql-altertsdictionary.htmlsql-altertsparser.htmlsql-altertstemplate.htmlsql-altertype.htmlsql-alteruser.htmlsql-alterusermapping.htmlsql-alterview.htmlsql-analyze.htmlsql-begin.htmlsql-call.htmlsql-checkpoint.htmlsql-close.htmlsql-cluster.htmlsql-commands.htmlsql-comment.htmlsql-commit-prepared.htmlsql-commit.htmlsql-copy.htmlsql-create-access-method.htmlsql-createaggregate.htmlsql-createcast.htmlsql-createcollation.htmlsql-createconversion.htmlsql-createdatabase.htmlsql-createdomain.htmlsql-createeventtrigger.htmlsql-createextension.htmlsql-createforeigndatawrapper.htmlsql-createforeigntable.htmlsql-createfunction.htmlsql-creategroup.htmlsql-createindex.htmlsql-createlanguage.htmlsql-creatematerializedview.htmlsql-createopclass.htmlsql-createoperator.htmlsql-createopfamily.htmlsql-createpolicy.htmlsql-createprocedure.htmlsql-createpublication.htmlsql-createrole.htmlsql-createrule.htmlsql-createschema.htmlsql-createsequence.htmlsql-createserver.htmlsql-createstatistics.htmlsql-createsubscription.htmlsql-createtable.htmlsql-createtableas.htmlsql-createtablespace.htmlsql-createtransform.htmlsql-createtrigger.htmlsql-createtsconfig.htmlsql-createtsdictionary.htmlsql-createtsparser.htmlsql-createtstemplate.htmlsql-createtype.htmlsql-createuser.htmlsql-createusermapping.htmlsql-createview.htmlsql-deallocate.htmlsql-declare.htmlsql-delete.htmlsql-discard.htmlsql-do.htmlsql-drop-access-method.htmlsql-drop-owned.htmlsql-dropaggregate.htmlsql-dropcast.htmlsql-dropcollation.htmlsql-dropconversion.htmlsql-dropdatabase.htmlsql-dropdomain.htmlsql-dropeventtrigger.htmlsql-dropextension.htmlsql-dropforeigndatawrapper.htmlsql-dropforeigntable.htmlsql-dropfunction.htmlsql-dropgroup.htmlsql-dropindex.htmlsql-droplanguage.htmlsql-dropmaterializedview.htmlsql-dropopclass.htmlsql-dropoperator.htmlsql-dropopfamily.htmlsql-droppolicy.htmlsql-dropprocedure.htmlsql-droppublication.htmlsql-droprole.htmlsql-droproutine.htmlsql-droprule.htmlsql-dropschema.htmlsql-dropsequence.htmlsql-dropserver.htmlsql-dropstatistics.htmlsql-dropsubscription.htmlsql-droptable.htmlsql-droptablespace.htmlsql-droptransform.htmlsql-droptrigger.htmlsql-droptsconfig.htmlsql-droptsdictionary.htmlsql-droptsparser.htmlsql-droptstemplate.htmlsql-droptype.htmlsql-dropuser.htmlsql-dropusermapping.htmlsql-dropview.htmlsql-end.htmlsql-execute.htmlsql-explain.htmlsql-expressions.htmlsql-fetch.htmlsql-grant.htmlsql-importforeignschema.htmlsql-insert.htmlsql-keywords-appendix.htmlsql-listen.htmlsql-load.htmlsql-lock.htmlsql-merge.htmlsql-move.htmlsql-notify.htmlsql-prepare-transaction.htmlsql-prepare.htmlsql-reassign-owned.htmlsql-refreshmaterializedview.htmlsql-reindex.htmlsql-release-savepoint.htmlsql-reset.htmlsql-revoke.htmlsql-rollback-prepared.htmlsql-rollback-to.htmlsql-rollback.htmlsql-savepoint.htmlsql-security-label.htmlsql-select.htmlsql-selectinto.htmlsql-set-constraints.htmlsql-set-role.htmlsql-set-session-authorization.htmlsql-set-transaction.htmlsql-set.htmlsql-show.htmlsql-start-transaction.htmlsql-syntax-calling-funcs.htmlsql-syntax-lexical.htmlsql-syntax.htmlsql-truncate.htmlsql-unlisten.htmlsql-update.htmlsql-vacuum.htmlsql-values.htmlsql.htmlssh-tunnels.htmlssl-tcp.htmlsslinfo.htmlsspi-auth.htmlstorage-file-layout.htmlstorage-fsm.htmlstorage-hot.htmlstorage-init.htmlstorage-page-layout.htmlstorage-toast.htmlstorage-vm.htmlstorage.htmlstylesheet.csssubxacts.htmlsupported-platforms.htmlsystem-catalog-declarations.htmlsystem-catalog-initial-data.htmltableam.htmltablefunc.htmltablesample-method.htmltablesample-support-functions.htmltcn.htmltest-decoding.htmltextsearch-configuration.htmltextsearch-controls.htmltextsearch-debugging.htmltextsearch-dictionaries.htmltextsearch-features.htmltextsearch-indexes.htmltextsearch-intro.htmltextsearch-limitations.htmltextsearch-parsers.htmltextsearch-psql.htmltextsearch-tables.htmltextsearch.htmltransaction-id.htmltransaction-iso.htmltransactions.htmltrigger-datachanges.htmltrigger-definition.htmltrigger-example.htmltrigger-interface.htmltriggers.htmltsm-system-rows.htmltsm-system-time.htmltutorial-accessdb.htmltutorial-advanced-intro.htmltutorial-advanced.htmltutorial-agg.htmltutorial-arch.htmltutorial-concepts.htmltutorial-conclusion.htmltutorial-createdb.htmltutorial-delete.htmltutorial-fk.htmltutorial-inheritance.htmltutorial-install.htmltutorial-join.htmltutorial-populate.htmltutorial-select.htmltutorial-sql-intro.htmltutorial-sql.htmltutorial-start.htmltutorial-table.htmltutorial-transactions.htmltutorial-update.htmltutorial-views.htmltutorial-window.htmltutorial.htmltwo-phase.htmltypeconv-func.htmltypeconv-oper.htmltypeconv-overview.htmltypeconv-query.htmltypeconv-select.htmltypeconv-union-case.htmltypeconv.htmlunaccent.htmlunsupported-features-sql-standard.htmlupgrading.htmluser-manag.htmlusing-explain.htmluuid-ossp.htmlvacuumlo.htmlview-pg-aios.htmlview-pg-available-extension-versions.htmlview-pg-available-extensions.htmlview-pg-backend-memory-contexts.htmlview-pg-config.htmlview-pg-cursors.htmlview-pg-file-settings.htmlview-pg-group.htmlview-pg-hba-file-rules.htmlview-pg-ident-file-mappings.htmlview-pg-indexes.htmlview-pg-locks.htmlview-pg-matviews.htmlview-pg-policies.htmlview-pg-prepared-statements.htmlview-pg-prepared-xacts.htmlview-pg-publication-tables.htmlview-pg-replication-origin-status.htmlview-pg-replication-slots.htmlview-pg-roles.htmlview-pg-rules.htmlview-pg-seclabels.htmlview-pg-sequences.htmlview-pg-settings.htmlview-pg-shadow.htmlview-pg-shmem-allocations-numa.htmlview-pg-shmem-allocations.htmlview-pg-stats-ext-exprs.htmlview-pg-stats-ext.htmlview-pg-stats.htmlview-pg-tables.htmlview-pg-timezone-abbrevs.htmlview-pg-timezone-names.htmlview-pg-user-mappings.htmlview-pg-user.htmlview-pg-views.htmlview-pg-wait-events.htmlviews-overview.htmlviews.htmlwal-async-commit.htmlwal-configuration.htmlwal-for-extensions.htmlwal-internals.htmlwal-intro.htmlwal-reliability.htmlwal.htmlwarm-standby-failover.htmlwarm-standby.htmlwhen-can-parallel-query-be-used.htmlxact-locking.htmlxaggr.htmlxfunc-c.htmlxfunc-internal.htmlxfunc-optimization.htmlxfunc-overload.htmlxfunc-pl.htmlxfunc-sql.htmlxfunc-volatility.htmlxfunc.htmlxindex.htmlxml-limits-conformance.htmlxml2.htmlxoper-optimization.htmlxoper.htmlxplang-install.htmlxplang.htmlxproc.htmlxtypes.htmlSPI_commit.3pg18.gzSPI_commit_and_chain.3pg18.gzSPI_connect.3pg18.gzSPI_connect_ext.3pg18.gzSPI_copytuple.3pg18.gzSPI_cursor_close.3pg18.gzSPI_cursor_fetch.3pg18.gzSPI_cursor_find.3pg18.gzSPI_cursor_move.3pg18.gzSPI_cursor_open.3pg18.gzSPI_cursor_open_with_args.3pg18.gzSPI_cursor_open_with_paramlist.3pg18.gzSPI_cursor_parse_open.3pg18.gzSPI_exec.3pg18.gzSPI_execp.3pg18.gzSPI_execute.3pg18.gzSPI_execute_extended.3pg18.gzSPI_execute_plan.3pg18.gzSPI_execute_plan_extended.3pg18.gzSPI_execute_plan_with_paramlist.3pg18.gzSPI_execute_with_args.3pg18.gzSPI_finish.3pg18.gzSPI_fname.3pg18.gzSPI_fnumber.3pg18.gzSPI_freeplan.3pg18.gzSPI_freetuple.3pg18.gzSPI_freetuptable.3pg18.gzSPI_getargcount.3pg18.gzSPI_getargtypeid.3pg18.gzSPI_getbinval.3pg18.gzSPI_getnspname.3pg18.gzSPI_getrelname.3pg18.gzSPI_gettype.3pg18.gzSPI_gettypeid.3pg18.gzSPI_getvalue.3pg18.gzSPI_is_cursor_plan.3pg18.gzSPI_keepplan.3pg18.gzSPI_modifytuple.3pg18.gzSPI_palloc.3pg18.gzSPI_pfree.3pg18.gzSPI_prepare.3pg18.gzSPI_prepare_cursor.3pg18.gzSPI_prepare_extended.3pg18.gzSPI_prepare_params.3pg18.gzSPI_register_relation.3pg18.gzSPI_register_trigger_data.3pg18.gzSPI_repalloc.3pg18.gzSPI_result_code_string.3pg18.gzSPI_returntuple.3pg18.gzSPI_rollback.3pg18.gzSPI_rollback_and_chain.3pg18.gzSPI_saveplan.3pg18.gzSPI_scroll_cursor_fetch.3pg18.gzSPI_scroll_cursor_move.3pg18.gzSPI_start_transaction.3pg18.gzSPI_unregister_relation.3pg18.gzdblink.3pg18.gzdblink_build_sql_delete.3pg18.gzdblink_build_sql_insert.3pg18.gzdblink_build_sql_update.3pg18.gzdblink_cancel_query.3pg18.gzdblink_close.3pg18.gzdblink_connect.3pg18.gzdblink_connect_u.3pg18.gzdblink_disconnect.3pg18.gzdblink_error_message.3pg18.gzdblink_exec.3pg18.gzdblink_fetch.3pg18.gzdblink_get_connections.3pg18.gzdblink_get_notify.3pg18.gzdblink_get_pkey.3pg18.gzdblink_get_result.3pg18.gzdblink_is_busy.3pg18.gzdblink_open.3pg18.gzdblink_send_query.3pg18.gz/usr/share/doc/packages//usr/share/doc/packages/postgresql18//usr/share/doc/packages/postgresql18/html//usr/share/man/man3/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:41842/SUSE_SLE-15-SP6_Update/bc05a9fc4e1b9eec7a93979d2142076d-postgresql18.SUSE_SLE-15-SP6_Updatedrpmxz5x86_64-suse-linuxdirectoryXML 1.0 document, UTF-8 Unicode text, with very long linesSVG Scalable Vector Graphics imageASCII texttroff or preprocessor input, ASCII text, with very long lines (gzip compressed data, max compression, from Unix)troff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)҂&XV^ڴvIutf-82a3bede4813d26e15a04712dc849959851486f01f052250e3a3ac2bfec7fb33d?P7zXZ !t/']"k%4E0#J:fWw3sO˒h~)›;fORޙ#woVO7 {7Q. qI#a.dkʽuߧtPmY}r!Gk d*{ܷ(@! ݜt|}!=w) .)kKLOܙmBv9kA;ņYpJ㎗: 0Kid e+/=gb`IXZ$xtOn?d6DJ5Sغ =Nд'g: ,^5|8mRBO^Ǝ i:`$d"S q1Xbj[pkEǸ쾜S܁p\VZ<vwOJ]H!3rX=|aF.tMRĎT TOAlwDlDŝt%ahP=fԺ>ۜ+k7!7Gt_x]3&aR' u1dA@no5q*xkȞPUuoa7y?36غw J&ZLةocR]Oq:? 3M߄yJքdnҏsncRJL1%SȹE@9S^Qu;rG@' d h>2{MZT/IêV41q^L6=\1 xHgXdf")W.2-j쉫6ՈV#64`5א:Rrdnqdx˿I9vlga_r T,Z;ڟ`[&'rAµ\> &%UN꜁N($^ X\_HupR{V!ʖaDQp+a3xZ}ciHL-=#tWADX 1gב0F4=Jpo퇽Sd%—#J5$\O7 }_)F] _YӚXi)A(#m04UFZxg0\̡o6OE=X{Hm5G}1J6aC*R~>i9 [[&'WKˑ&g2`! bw,PEcWP<%\@T61ޅd}R1N֎O[X$x5/0ah+$b(&n H̀Z'zw~Lm'*u?`t̗tn,/Hz7vhH7&ɝ q{$M!WҾ\H<˂7 %\[$0b{D a<ܽFicZ"D"H%?$l\PJJ7qe4"GB{1B^Y_#q, qDՠ/0eDi! }pjL}d6ߏdLMƨ1e /<8+ Fr{ i5+Tv•%NP^[mT(& ־eN#֝6ɬ3:CTkL+LFJ!AHԅM~>Ob{h$^M掿r& Q`] ܿ BfZҵ?ԶQ^A>k$uWj@<\V<. פ v ţ^ש,O0,څݫ/f'cYFI!Y56Ig Ϋzf7c8em-_CuWI1Z,jedS`Gߺ) (ֽBuLZO*NgZͯYysC&qssO7\v^} y ? *Qy1X8No#b4MB2ϤH29,4 pes_.T׆!H@3k֦*JZj,opq4Ӻ"YtU$C2]"7I]5jQ1IB^ӁWv9&$nLI,sh3^E|@89۟`:oq w+yS⪊{ޤF4uLpԇش@(h] e;㦈®@c%z'yvo#L$ +|]fC'񀑤VB8K:޴\DAq?0HC7z4unN5I"c>7|H:TMC`3mꜲ~@,LL+GDWqxmi;zHmߞκD{.q8} Y=Eɍ=$,x̐fڕVPѸ3DVBޛz~iS$tTc Iw #7"9'>ل~!辰BSF(x7υ2z2~]Ő0ont ;jajcm1qt/j/RvVm}9kƃItn˲9mA@;M 1*T:DJuPq |68 2^"4GE> .z TP{\he7 ̐5xm?"S5 U][P^ /`Z2!8u> ,"Q.?xKt^Fn9'*H{8`_lG1:9t! ~1h9#~`7Ul" K]I(/H9pߘf'M{|tLa&8hRi ( &~'y4R.@ NU"V*xMC99osw1ʯi ßճ_aT$O]{S'~n!i^z}ЖAn5[X=/IY3"iS:4uAUpЮ4WP%k)ti43uV1qҴC,U-L5`y @M62Nn U0,J- vr.[RYȋ3!4#c&g("7f e2Ϗ1/g{ ³rHr _V5nMc>"62Tnm /CM%x:P8.TTء8F!`Qh]kTח@&cȧL`CxlsϼAfTڒN= }XP7y$