postgresql17-docs-17.7-150600.13.19.1<>,i-p9|3b@bCI!xCI_?lEO3o}W̠62%ܮOLB[$T=@πUA*m9O9 # RgR@Fuq}ų4D^AtCHǖ)mxV#v).@0fаP\ƛmUnOl>;?d ( J $=^i  ` ( ; q< v(<̶(8L9 L:ҒLFGH+I> XBYB\C]V$^xbcàd'e,f/l1uDvTzؓؤبخCpostgresql17-docs17.7150600.13.19.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/postgresql17/html/index.html . Manual pages for the PostgreSQL SQL statements can be found in the postgresql package.i-h01-ch4c°SUSE Linux Enterprise 15SUSE LLC PostgreSQLhttps://www.suse.com/Productivity/Databases/Toolshttps://www.postgresql.org/linuxnoarchTC=o1AO-Z*(oyPok$j'(8v+Q]l3Y< UJJ4MR6n<\X93,)Gz"k:^OVYB/iEL!4$v~G@#'y I\7ו!N4#;k#cO$ ;,Z8|s 3n"#n@0I8Z#]`h .9(.aa;-V9|CI̥  bYlFE" T  j k $Ck9&b&+||589$v84C< tU@/'-r1P"{/'54_ 1<$DE CsW _> @7d :  %+k ~3h0 =*a"' .  *9dX1!E0 E@8 `L3D;KM%a=Yr,̆QT6  A<;Cx%L_;""-b(=fFo7r4KX>R_ YL.55t#*JO$ /8 *}!i+ %/l^;i"O:7X&3 =uBfU=1y65~sq$6%KJv )[PXq- 1#V(r c {\"?t(V)c-C/{t.l\?%iEC[VZrj&d}U' &Z$G[%"2n&(F!_d AUR#o ,K, \8~ xz%(" \o^''8]*?8  9: "Lfpr'K}"?7N{Y1dsQx#:;: '(`3kY >6(Js{hX=8L>(ro4!z:$CC; U Mri>& :H4rg &CM)!h%DS)j^V)i% Kk+&I%-q_>!dwD+^ v \:bg<bL5-g"1zc)MDXbN*Da! 6/38%'Xg?-uGV[(9 4<Lhra 9(<r# -dHZ f>"_'('7 >]T5u- # O$*y L ' 1 @Z@_"L%SX)n?ҙ1%C /}0kKmX8rssk;l0t+.%f$ S#xf%b6 Uˍ I_!! !'MH RZa+@FD\}*+2j{* r, E5,XykSR'2A,a>CF=g}AA큤i-i-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-vi-v0f611562a74323e15e6d4fe884c268a1bc15bd60fc038584172ef0d556cc76972684f4570210d4e5eddf19994ea95c9a95e8af6d40e7af92053000643511ab7ece887e8fa30f76aa12428e64e9fe1da76a288a81768858f58ae097dc4f16ee6d17e0098e858b25426d3322baced5785a8c5f3cf7535a82001efb92894d318757be9aff0d23cc9a3ce57324c90697b0241fb7b5ff1b132124d92cd440c84028557f26fda0c43c6d019228018876aaa6f2bb67bcaed6852040a82052cdd35271b19f867285bbb8cd04c515e3faabef668214db107e07a3c7684624981d506b017906fe3fef4f4c4f84c4110925b6c48b4670cd12b52f36d58b2efc48f83068feaf7dd09d3b18f3e145ab149a1384ff2d46855359585905905e5a8445bc55901c00f81df4d9be688452e9f76f670e1a6794d31a3f7518aada6f5627c6e761fca97074dceb8571df369add89aefcff7c389392c9e8f6765c19413bfae8ada2b29264a11d07cf051d43ac2b5d3a4f0677cd8d10ebad2c80f04e92568b2d6c8aa8add4e269c0f9b0c7fddfdac753729fc9e3cce0ca4aeb443010ba058a1e68fc3f408c5c78693f871503c09006bdef7d4ce3f2ab3f31433f547164b57856614ac8037a887049148705fd39506153881a523f8a48a3de62f642e434e12a2eef89dba28c198f0c007874baa97e85ea91d3818bb0c3689140ca640294f981a25887264cb95a22ec2473e397b174396de7aec033fb752d66bacccf136e148bcf59d66ac24cb0d7b5fd88f986161dd4c3f2f531767e23500e5af09e2c083cbe82df2e4459ca26d95be4aebdaba6a565dd8efbf2272a63ec8d310f212b76075d72d57e06ea49c73f7fa9feabe1cc968d7a989d405965a853a90ed2e4b5ba81b779ac21a616997aa68ac41670a836f1c35b879038b598916b6135d71d052be4d7038a7a44c3d1285830e4ad1cd22be55cb3396b6ebfcf73245b5c440cc563d88c032501f28f9a6ae3e1d496e1ab22731ec03f60dc155b8409e7524ab426aa31c0634136bc9e5f5bbe913f4882184e62367330012a21f4aec50cc87672729aa52e29d1f8aa324d233831b2cab599ca3652f2bf21249d3e35b782a8b2c7aa39839427bc19091389267ebf838e7824dce5636bdab3fd9166bf4e016e8b55974b9d1792139b9eaf996c006a9120aa48ea1abfd083749ce0eb54b7b99737cb699d70579674a2ae419c8500bb008f0ab569dfa6d8d7a9963f72a72e4b53bbe0f3da7a9a58dd8b2efa7cf7e2c3558d3d988cd7ad6f319050a02be1c22508f06fe7d58e4ae39ac6c8952c255f954fa66d04800bcb773e9efc9aca5abe8cfdec624a606bc3aff026ece7769058bd1b4d59e8daf5c5890e686e6842d09523197acb31c0d4a0aeeab72aeacd781bae9d65a2b5caf7826287cdfbfc9885f4a23a3837df7b91ff22b8166cab29551b031b85fa6b2b5a656b4c111ab38f8af0725587626e592064e04e47dc71c2645a0ae767cdbed11fa62ad90869a6fa3aaebedd0f28c4ae9ccd2480a3386184fcc34669a8cb53a85bb4250d3b84291d68ff5213e55563b5be076348d6189c30634c69c9540be901ab96564bec960b4037d5b255f2ff42b8a76f879b11cb6335effcfcafccc77410beddc563e47f1f33d07445ec5945d8aa19d678ace7b1a8073ef2aca1e4193a13d697455ba38275d9d15242ce0e3c1147ab5745fc448a906aac93edba9f62346558163ae39c4f4139327c19556cf6f62b5f4879ca666b75112b80f2612605e37d1a9a50ef3966fb9b849cb1e89219c4869dfc9a620afd80cabc141ef35cc75b7989c0a2ce88ef5517e4dbdd3705a69556f30395c0204dd522e7c46b7e654f890716a335fd61665772dfb08f7bcb50d69f7f61f5043d563c2b032ceb82cf4af1b0efb80392c3091b742b73c66204852dad525472253c651c3718d6a2a1b75074f1c402da9f52b0e540dc26ed5a8ab06dd68d81e3510b4d814d6a17bc8259fde809bdb18b3fe7805d5e9afc5d7f603b505763ebb3708d96633fefca1474ab9ad15067664dd0409ac58db74f5f3d02b8ee2f4eabad15866423012f8ebfa2a21a00e8a6f9aeb348a953e9c4205353f4747c85f9e28aa1b49899c113ec47fb7b0f0c6c6ab478bb35d266733177918322e62f84cda34793208f2b080a9a0f0071f4996af1f99f98351d307f93a970e6448a51124b3c6596efa71c7772f95ccc375fde31a2a9929fa79c949d8c50612266f6cc514c0e835472ac6ddadfb537c19324abe7d8e5bb473bcbdbc1a3d924dc03b07ceddf7ad25bd12673e389fd7de27e1a36b988e9d5a1e1df4171207724921b01eca4bd7175e81a3cf907a316a7265845ede31581f18a6dbfb912c20e3fd14cde968f15728ac633db505cb87f06c666abe5847a91fbfd06caf798f424879cba5b1eb7305efc436d15c9de22f1ddc17fd7d1da5feec8f9132ea49068978448dc0e6ea48a938f5dfb3e469410c8ee047e88106a63ae60c752501e0cd22b6d76db9f615b3082aa297c3f7af64e9cc8112b8e234c86d43c7ca0570b04ad7a9ff54e802f698f86322a582f58b7a5f2a3928a56e13356a82b8102f2b4de41cadd4ed3d683b6ade8bd92bf7fc11b77db5c7834cac89276a5588c0cc8077454c9c0eb058fd4ee5b74443f9e341069f23e72af0d262be9388891647d53283b95bc935b94f5663dcc544f6304ca1853a77c710ce3fd54de84a5c59a7b5faa53fc45bc3db1394382ec8b6be62f321a3d2baeef4bd833914440e7931e2555f8e5d8c8f448767c2e43112c0354b7a43578740914c3d1d71c6eac763eef6bcfe0fd37cf1778359c752dd3a53730f95566dc9408d689cb7e98da9dc916ea795ee7b4911905df16daa23e7c2a85841d5e862dddba412f24c2fe0852789ffc311309cce1a9732b347c70a5760a4ec87e7f54cf7d33f96a1f2aa988a4906cc83b5118995adfa7543e376d9ea7c1afc0b15f1fc692e6d68b7b34578bd92dc637d9fe49c48b804582c24a1ddc9030c1e7b9b6070afa3bde3968f95159159984f99df94a334aedc83e9ce051669e269ce8aecb470000ed8efc6521a0c0b908c34fe16aaf03026ba4ed98ac795da2726dad3b1b3911f7c72f10bef03edde2af8938dbdeb80e0270fa9c3a992e7a1cc653a82c49e96bc2246994399f10dae0310ec4b7c91493d97606e9db888f6cce438c3b612d0084c3a9feb9bb55f4bfc0d5838fa2309a493424911c723154a5e79c580218e0032de9898d3d89d101a4e178779170b37aba61f2a9c0e53f5dbba9c090a7a14996cc4cd747d327827119869dbcc57dc6c8a8f51a93741ddba96b8bf8cc3faf72bfc9ee86c03e3ee41899a5b3470f1358644f2982714df63c0c52636b14fe351d490b9621169be558e95012737b0cb36511032841e5ef4d79cb932921650a178540acc0280973b111e7f0defed6ab5121648adc6458d94e5e53123298fce2cc098736c0a66139b31f77240c0bb44a3d0b0d02132e1926d84897fad332fb1c944ed537589dc1e61eaec6e411c85521163a4ccff9b917b8ac5c806b621d7fa852340e402c92ed0bf90c84c277ec3c7e9d024506dbc33a8ce75e3d581ea098512edb68d06281cad257d3a943373e29af1864df8a8dc9a102f4aed6d994bbbefb0c7c08b1a42d1bac9621d13a0570949b87587670935a2f96956566d74223df5e51fa0d46a1b4943fdf4410648d4d2ec7603b165da2ab4fc2d95840784a268f152e9295435cfdb0a4d3306ae30f116d1da5ee585bc11a3a2eadf68cb36f89e49baf2a61276db55d84252cd81a4c1a11962e85f5e344e1731076f3be769442f9bbdeadd25c6e2c8b87df73dbe765ab26c87e4ed71c8b3cfeb9ff746ee358fface0ade0739dc9a3b358b0242cbc4acad4d1368457e8bf763c1c574d2d6fb6532a98d72cf416bab151d76dd60c54c314d4640a9c341254a4867dc7d2ef0833f1609593916a7ea86611715a6b9df401bbe1781be101fc5012f5a061b4ae6f9a414ee62fb06ca68d8cccf805a038ae980531fad136cc91729e7f65d125f3ff1eff1b3652beb50fc8a4c0eb9d088e5ffea85d606cfa09e21066f4de0b2a9e0a02716819a9b84a730d95ad107a5960fc4ba5e616d30fa3ce63f50b0bd1ae9503e975a885e963c5f773034f5e161cf49e1c505acd1a3d96d593eee39a2e31ac38fb6adcab8d27dc704e8bb91e4ce4a80557be256b6e9c72bcce92329f2852850c2586b24695728f1aba596cbbdf1dc4f9aba332bb2cc0ec55fb849f0a8458f3f068a6a177dc4a6a1a1e27c8d0ec1eb5045650b2312811c4c28d4c7dfa00966df610724594edbcff6c38f1571f0f90e56c18e9846b9bbfaf0ec2fd922deafe86d38bcfc09ad867e81921e294588c9d5bc0adafa4e39f5c51c859c102154635686291c06840c5813818affca6b29686bb349f65c8bb171c448ead5338dcf79fee075dba908517fc3586ae09e1d5f127d109c497119023c638f2faf4165de573c95f72c31dd7445fc247e322186eae9e94db506f45aefc96d7d5627fa84b1963b92741d57361f450cd39d5bd515422ef9ba500c4d76b679197c93c70eef589feb508d9a636ecdd11479b545ba9b4ead00a3069756c0ef1ad7c7641dc299ac84dcf3d248f3063dda06991fa5379d44e0bcfa00ddd94d8fd4caf3b0a46d6f019d939dc86cd6e709ebd3c7a19438c2028f6edb52164de8b99cc433b5f9eb07a5410da6d05a9a4b0b2cb9b1272f245afe1cf2c35449e1893fffe2082ffefb83038901819bc9c34711bcc7db53ce81c28e48635636a793b9cfdf8493c2af4c8abfd7c042b2dea9230df0439306130883259db5b4fe2492c3aef4429b7b122c465d56cc2f630df0fb6bd33bfd9c66892f0e8f65415ac338f48950bab971c3d187ac3189d30cd509cb49957c5c1bf7d92f50290044285191be15aab9e7cec3196debbb7b01aa86e20bee24f15a7914913b543e3262d6e3c10c4aae25558888cbf529bb42f32cc10a8019414c17c847eda1b1fddf008adec42a00b268935ba40d906948e2c42cd6fdf98f2a343327c4fa612b4f1662c7b2cff342e4c9f78bcc003d7caea2e9f234dd0ba05b2363b267b6f5f07d474de50ec29a9eb5b087e776d1bd198b95e4d009ed0252eb8c4f9af937535b6ca9ce7166d00c8f614bda0df6af33d4258348969dbaaa6467778370bc1b9f7b6e7732c5faaa96c3a4aeb5bd408c4636cec780105d1ba294cffe680465bb25ced3750b37599724a96d9c45bc5b2fac5526e307e2343faaaf51bfeb103f816d19ae8c71fe36868bd0d23ef0e0e8ff6aedb5e3fd3e3e48438cde3a94f3e172143cf1cd799d55cb4986cf1fee48813435ba6bc6bfd9d583646c4da272aa6e18df1c1c57d92fc39e8c5c975f1de5fe3ccfa6dca2a25b93bda7ecf28dad18f4a0c73e4fabe49ea198ffd1deb66a9427bb00a5880934cfd8069b5c500d30340cadfea25dbe4e5c25bdace2a301066740cbc5a85b884918dcf36451ec8c9e0269d044b34ccd7dc94208f19eb537a33b8328418ddb25438cf2c091af61d08e20d77307d21ae55c82fdb8c1aae997b08c5da919d8fdcd6bdb26a82973d4705245039c7cb9bacfbeac4df7f903fa50b7d9edad6f5c38825741ac653400dff3fba90dbc1f78fc2a916508f4c837a16fbe4a8d93f214acebe68e5296c8d157a9d2a4344fece1cafc24eb62aaea0db3f0cc7feddbd0d0b96f27591f87adbe79eadf80079aa9a30297ebeb1e044e00a3b964d31e335bbcbda395c9a6fc98583e1ef9d8534a0e9d59a0f3094037cf8e16b14a555174746111af73273c02cfbf5647c3c3aea605c1850de875a63f3cf1d22b1edb48aca70db0a3cde90a42e51177d95a622a8a64dd0d560a8a7422d947dcff6d05bd7caf2fc348984c45b716b7460f2bcc067ed139523b63c46697f9abd64ae03d8ef4d50b087e51fddbc1158e29ed2c46a6064b10e52841608ca055b760b99e36d3f818b193ea0191af2179de373760244b3126ebcf4c400e6aeccd0445e57800e806a48c313a77c8e7d3fd4fbbe330e2e3ba56e4a0c0bcb5a565bc12c532e9cce6b3228a57a097e1fda7d2a8b8b990dde3aff60631e8635db242ce2b503d354132691fcd1d66147fb81ff4cb43a68481d72f4dd67c919670c9803bbef9409e7da1c8d95e486a6d33addd845f36abbf7311b85b0688ce1ad3bcfa7229a95048cdeaa6a2eb19c8cdc41a5f0e4f01f31449ce51b93f4cfab78703e561a4a43960526ad467a26d04a0d3ff87910df76664c14fdac7be96955145e2c5f3e58a7c7c715d9ea901699bddff421243ccfcd9dd94bd917abe73eef2f42c5ff75245886fa19ae1e9b0421c33377bbc4cc1ad5392c8d7a7da05789170810388f026ee77c9c9e32b0288c07f222c326b3f822ecac0560d0cb20af0ade2df82bd56dda736e48a9de4caeb8f19be53f3cc9c08f949deb59e4b14d339d873213c3ee4901c470f61bb6b5fe1ebd01a49fc035f169b4a7ebfdfe971db8e2fb17bba31b96ccc31ccd4066e93b3d37291cbafd476a7b4092fce54831c60903b59611017a57fdde0eb237b25839bbc5c349d861316492e7526759cf2f3ecc38a0cc30c6776f2c805077b26953ebea220c0ca66937cdfc9c18883ffa0a1b8ad56e654032629607cbb89049e1161784a3cd6527b06f0354bc68cb1a8f945d34d9b1408990f580a94aefcdb06c0fa5f407b61a7cdcf60279efdee70f5108f424a5099104330f66eaeed559d6f10909701728b0bee136be3e57c45afd125425190099066d199760a5ff0ec44047da99e914fe67aef7acb5d5e243ec763ff6091aaed2aa068f6d8d4dabfb22505a4a9ef7ae8442a8e98d2809ea4ffdd1bc31303407dc22f3faeab01e64fd88cf7312fbdb807879fa35cb8119e350151c4806a2ee9885e569f9db8910239a78942f7ede97db47ce84e1dc1868cb87a31fd1fe2aadda6864937e188773f5ce6539b18f70627512bc78950b1e76c83131b6c1dbbf92f3027619b7f64af8ab9eda48e5d6a8980a190871facd0ca43fb776c98994dde957e29b4a279c596011dd21c448893510396566b2e740fea32370af552f69e7ce33d13f7715e5ee1047fc4b115ec087995560de9557d6a1623cec9c75e4b60aa2de405bcd6fb1ebbc4b1baef44378064afddd84f419d1cfa04ab0a6483fda179ec6c23baa7124eaec58ff96702bbe587f742657515da40681710874d3b0232451d4fc01f750ff5b52e1cccfa91a4d16a61afcd51559fb49e3cd493951d6a3d1b2b12c78fdcaf428d3ee5963c3510ba976a3fccad0920de296732735dbcfbdad77e6b1ec95d9cbd9c70d777439b40c65464c7c8b817baa7a91d0ed34a864147ad8ea52d241bf66cbd085ea21ec179fdc1c7357d3239b3b55fa52e8ee6f05ea43a74e38e61f0df5932b4187f1c1464e54fa02d8b2569a7763f977c943ab8c18bb3568208444dd252ab57c85e619fb05b68b708880c56c906bb9939327de130493678d646749af1848acb6637eb864b8c868e4c3f730ca9c3cce932c126310b9ffcdf51d78493b9c634377b2a2c0fa14deb70bbfd2cbfda16e9462eda6fe041f20a0fc1674a5cb12d988530fef9d4cfe48deb98f045321ccfcf1f331ce1d0c3ba65c451890366d3d12b93952aae8a08b897e996e25ffae2de4de18b2564be851dd92c117bfcfa3b182c186efd2cdd249886510dff7b00a66fb3e44dd332c3374a1c656fa2e9d83f2b9ba7198f86b164cdf3ef715ffdf09dbbe753fbb3f513686cca9c3f041cb782631cb8be3e0a3bca49e8945111ff5f4c5fdeb4f88b158ab41e1fe23d80bfeb0ccf72037e1b00db1dcdb4bbb59de0fbd1db683530894dde960299805357b2b392d7b88e726b313a74be06270ead7d5bd3583c5dcacae482be00942c9897ccd42b7f5f41245c9f1f3d7ef64e00d450fc1bc2f7e0343563b88bd3b3ec2bb1ddbeb37f6a919cd3a99bb7b1bb514d6f90dec70fcd00cea4ab2ab0d2e20583e6856f505015fd67258ef06cb1edd94971b0a7f61a8c998b570712d01d175aa24f5e43eacf9788b0477a734a3c6925266ae913e5569c5f040b7051a51c8967ce37c4c9d1f46f6b1f9d832f93005b87c303654b97b9735339a820d929a5bce9af4adac53724f28e9f8460eb5ce64fe3cf73f46f1ebeff99dd7eff2675c9d3a46df02d348d1ef28b5155326744aef1819083d57dad3aeee71eb77ef4686b2e49e49338cbf416af3567ab4039dce3954bdecd9c570fea6d816f80381d403b4fded1f991287563471e283a70df096f1f81c70771882b1c05ee892baedd53cb82673971672f74f160df7996896527f83c312e60d4a081f95d076223290b7f176c772c7841475418bbc96bb0a5cf2c16d3122a0f731ae961afa8b9469ac2c675759a9c45a893f59ecdc920aee7ffb7b85aeff24ffe4c2c5450ae3c90ceaee419bac862e437df44ddb1f23c78a3834b471b94aca325761205b6144531fa81bd515d12a88ef29de4747a6be979916b8eefb50cb9ff31aa8f9097232071633133778a6dca906b69903bb1afa4a1a06f472ebc278be1b3b875f7a45251749415365a698921fcf970777e6a287ab1d8a0ab0af3316ad08fdd27eb441867b9861855b9cfb1df08602729cc013db005be24b0fc352a9d41be6ef80404f1ab5e3dd91b9611a772dabf7daad650ad1f04ab6dca336b940f60382180fbf3716bd62efa3612ed313b52e986b2eb633193459ee6dd9955105a8e9d17ffe2c222300f32602e78c3b2012dbf8df0fd19ce6aa019c1602c763e538665af68901a9781e72094a41a7f6b6e2e82078cb4511c9b1ea1f506d4dfbe7e1c1b490dccc7023c394c597afb9f2ba9747a3bcd9aaecc4ba2de539a39b6f23fb4e10c6f3824175d2bb3efdee2d21dd913ef2a2df390d12cedf6a29a481aee9f9a88263a909a20b65ba3709cbf92373d6c53d9bebc6ce83a150c67c3f099494f764c6594ad4c6c02c553757dec7bc1c5257b65f724521280b01fead5dacbee4b5e8a42e77b54c66d0fd5541cfe4d185b2d456f9ec4c90ab3ccda241b1dc7953fee1e40ad9f96804369cd362c1ed676e75766608c66385dcf857c95b1c23387defc4a68fbe3e80ffbe0c25989379ecbe3e9b85217067aedaac574f322d0e4211d272bca321012372921f01c29982c73ca1c84de115a06ffe93434c1289fc5b7c91f498b2da7550b1ccdb96cf26d532f6b055d817d86a1c8d044c0f57facba2b2f0adafe237039af0cbd4d361ac2fd0f897c20b4ff97c8725609fce5e797957afaac5c0940450fc9ce924ba35be2d39f8667bcf22ca9d1d29f6c13c981f67c041db9ab1931feac5c0e18a10cd27e609f27ee40c7812b6b88bcff9cb2a5eb74163153eb10549cba319e76f3537bd71d13112881cf2d817b21cc4ab9c687c3073c00f7e5fd4060ddd2ba1ab23740466c253becf9aa4217f89bc2561b0f553f42513e0189c932cbf63f2a7eaadb0268fb28faa2c8e06f7df41853ea079699ff75ce2bdbc7b7d7f111850cecd85bbdef1319c7aefd4757c04dd545764f8e90ef4f8aba27c3e0107b94944cbc8b28199f09cea06538fb20d14dda536664c7946ad6059eec6dd94559c6f2f2872a782630cca184c61d29dbaec65b67de762435cd38975433de34127ae32152a25c1fcc40667b2ac80dd542da11e3c441858b3ad4d1dbe87236f9d9fa9ecdf8c73c2f08ddcadbb6836b5ae0bceb71c5ba34e1fb7d2f783204d9c9c6b1558626e7c1972c38dc8d5d2bacc8f122d6c5c45a8b438a287858a16be6591e7571c579711140c3f43cee8a31734e6471c6258298ca127cc18ed2d6bd336bc92d205af475edc830567275dc23f8445119b3994e59a9a483604bb3ff12222ab3921b7cfb052a44b294c12be384ea09eb9b1524399f832b7444e67901d7757bbdd3131abc2dc3ce14ea37e5dec4c1c85c4be27273ae3bcbdfab639b58c33a8f0ccec927e6d2c525b038d4f1cbff67801c282dca452811b7fdba26cd85fa4b24b548ccfb361b06d1cb8cf557c05505e645569e9f7866ebcdfa07ab851dbbcf33bda24613335108e030a954fa06b87c741b8f6325c5bfd1854ef44e1c44e24f44c4fdcbc0b5446467e047bfd16a4a09119b36f26674768e6a2313be91de3fa494d5348fb8ce72c52b43380f4f5c5a1bf568788b46916e6aec7c3e7d6203f523aafa2213b2681bb9f2b1a32cf0acff4c4d243a242c191a7b177921ed997c80ea8cdb4b6861ca199363524c1b6012fc3b7fefc0ad8be1f41ac257304ff4ac0f8a32fb9dac005cc87f9f6510af39161eeb34ac7083d6a873d8763214efe10fbb65f7dc4dafe2cdc8cf27212b01436cf400cec718142ab90c1b4d32e8f12d8a2a77f483356bb2f5960bcde020ad591dee1e0be16ab2d6342f1b103d9bee16f264517953ac630839a425e5f68fc3dcdf7f99a4a0d55570792290c0fa98a78c0a0088ad414f72146c3eb4b34bd24f89bcdaa055199a05c0af74dfe9aa4b7031eb847554d2400c59ddc9d952e3b9f8be8571883d07b9fc8ad1204723e9b6fd2f7c06fb37e1717016f9410e4299d57e431366510f1d0a7929a0bec20175df2c52e2c3e8a2746dd923cad8718a76cef5c8199f297716ad2cb307d3d0063b2a44bbe3c233c43126677e49100da73fa33d1c10efde962cc3361a2c1a75b3a87ced1e227ea03fdff2a1dff2cadebea86da6e3c5cbedb62876d55918271a042fc81846bc36d513907163d093e61ced703518698bfc79d2aeaadfb7f577eb600eaae948e601cc5e09099d2848715931676673bc3a68c9ef05351afe383cc8b455aac765aa16967fd173c6c4180b8050af6726563f2630cd956b937a4b28d27dc91ae885a7e2792bbc1eb3a2397ae90fd0f4dd15d7f53bc630afb6976a5fb6c94ff8b9ef76dd096e9273aa5c24f2b414ec948bd2e812cb32f99df1d2be454474f41cdbab18a5748dd06e8fe2106fce10ee244944b7461e7dfda00ff8c7c0fc05766d55e4fb7ae1418212d28fe9a6d1f988d2bc952cebde6ab07053f923432ec21841114345549f650a9afddd9021bfe781008cef51d95be4c8b132ca4cd008668ae66cc06e237fb16e87afa6a896f40ee3f6e9f17a427ef9a5c38f90bfc043c3219448d3e33203211840e3b0ba823ce8dfdb01284f6c67802525cdb0283fb11c8f676a312132ef9b4e26369fa9e062a76860830d0c7493178fd80ca83ca279b6f43de9e11d3ec73fcb2ae787367186cb8c27221850b42608fe5a064db6ec88cbc62faac1210814491bd9dd19f0898aedbdb6f29357c86b0000047153e49277a791699322bfeab2c6827066f749dd0b5ebd0f4e287e9f05d8ad02f440259828680ae78e29587384164d097112a5f9b0fc3e1f139e80e19157547ca9ab6251dfd5aec2d5c64d93df02ac9bd80f5b4245c10966ecc454ce4e508ffcc386d7e3663ce613051d6dec00efed2133b9f3bf6a1873f32c84be6f81bb55c209e67c973b72015037e3b4aa788c3c977270dbc973abdfecab6b5e40074548b510a047e2b5deee58cfbb3a2991557fcf3aaed723d2981b6118403ac8bb6319c7cf5bebf01bcf74492a998e4d84c61e1a982a7e7a48aeca527a2fa4d969b78d41edb1d48ce57c556ab9cd55d22db5cd1483341ed7a88bfac547b710c8da659532d1b992084c53de341957ce01599e139bf0ca55c4b525af871369e6be2d2b5875ffd4eca2c298325c16ceea7d4bcf30cfc21fae0513672b45b06349d984be0d2c1f8d891f14ba1624ea1d12fe3a811a6d4e122d7871b01cf682a39d86f39a448158d4356c29c1ffc9abfb7c0059cd3975823b8b14fcb38c7bba4820337e7fbe463f0f18b09cea734aa71c4ec5fa5d4f5591fe68a06db15fab9994cc03d7c2e9dc7ed77c84131075f478f90b69c63d72a33b35a042908f8adc2806cba5c173dd8a7e7cb76bc0cc2bc64ae8eac3130240fb51413e602673616b4f9843f8c1d9f49dbf5e83829f00a2d24e6d211c74a532f3655c550fcb26e39fc76d8d832205633abe7d810d3682e53e37e1bbc1b9842fff81fe45c864f7a179cb7637791b9f318e15159d89b305419dae859c5cc7d4745c7e6e66f6d430dc34e95f4921e694e22d3e3a87faeee5d3db9b6676a30f748b48998f91c139b7198984ab9b999168737b3ca2715d0cbff1b7023b6373876f5221dc5bfeaa79e198b5710f433ee6dac6ba7881b3b1f28cb0ccea574cb625a8feba22f6863c9aed26eef784604a81daa3b3a8803ed0dd5ab58ad4c146a8bcfef8f2a0be59889e82b4e5891b98f7fd661555767ecb9b3d4886837f500561ef88a88dcf7c479c7e974ba0f2911ac4c43a8acb258abd996b62cb4dc5b81253f06ea2b2956ca2be763c350f34db5faf38ff97deabae926e21e5298f924675d429c38d0255607ebbf86e6957c124f4460bf9d4016ec96f7763105c765b16cffa2dbb13b0a36b029373803214705cb13f5689b2e7c53fd099b1f80d7371ebc6e8aea058431038ef3fb1e0db4caab35598f7aafc77e269c0071bdc308c64900eb65af2926aefc11639a56448ac967f57b15658d509605d8e237de55585185ed4e32199f54d6962c482de0ba05c1088ca48cb55d015f023a78ac537c4b586e4605b481d1e107f170725175082e65d8e8d944e51e61716d12c8a872a1ad80e218ba75c1baf144be643129a20a6ab1b7744b60529a95f31af5e52bb92395fb295e3b779c98d555929c39a95f3a5a617b5ad30223f2dd134155c5a5f3d50e4530477bfaca8a73423ce28a5c141e99d91dcf991e4132282042ed1526936c82c4fa43e73c650708a089f29e647e5169ac26732c8ca633da94c4db25a2b65da2fa4ecb359e54b5a4da493b2cebe95f3155f802469f6f2924a3cc2c50ad43c8e00c4961f346167045f37cd45e74bd3b44790a64cb71972633cca905c6b9b8bd2c16a6dbca167401d1b696975d2f7c9b64fdb8e0467c0385b5a01968bda1245c292da43a13adeef69ddd18f0f7408d1814950389e67abfbff09128e01a4af5fb6ea44141b06068ba97ccbfbab3521e67467bb9667b51f3a82612ca53670dd5819e36d9f6c36aaad44e2ded89400d09099e0854d65e8694c40a07bd6e1c4ebb7ee0f7331c20b36d0789cb02f45407d9f624fd08456bd1fed78f65f0fa8573153896eb197887c7e768da139291603f53586778c742072c546d741fb1cfe28cc7313b20f4cb292302f8c88553e50dbc2796439ab78b74494dc4ef86f134f473b3de012cd25f9cce69e72d8f0c065685c16b6f9a616007e12701804224437dc5baeb1d10be9d0f4038f25c9debf13793e35d88a3c39a04771d0c7fcf4d4941e4b9dce771755c2bf9d2f5461776023d14715c7aa79e630567b32bd5d82c94370951e91051cbce3c412af907088fbc36a4c676c425c9aa1fff65290aeda6cf37464910301ac5835568716c2f975d8d1de43bcec1f3745a3d886b45122a021ee2d39b3c4ca0ac757f49abcbf2dd4d12a3052485a74affd3ba7b3d360eba89c13393fb8b64205d15d40a6f9e11f17f3da0f42b1e6045d31d7e5e9bdb893650710e379eecae5a22225eced948d8cd73a50256152efba005ed727765bda8c11e82b65ca8924c266e83b50ed7d480b010c01153a18ddcef4ebff30a0e13c0e5709fe34914813923cc5173647467bba7963edc586618d6be09d834eb136004e1d069a02df2e4a9207b259ef3eba91f8b76acc81db4bc5684e2e9a9f790c9d131b1c68dd0870bc76e8289c12e74bc7a4ba1b7276d6613c6bddfc7789d6e482bfb4261b7e2588df5c319d15115526da4b2ed58ca861b06bb59ae5a6459ca4366ce5398a36ca1f3c2a6bf1ba328803719f0a332712ab35ca5215ba9379112a013771c074d769a711d4d78fe5cec21a8078d9fe7321dad70bd162a5f89a0a5c44e01a2f4b4a232208b0bf268f3661229c9e0c30f9b616302af23653f550dca4fcd7438e7f54169dc10882af20a93ff5894bcbec02e4e5e5d552d4878e0e54db78f02f391eb53550f9d48449035ed508d7bd3a6b3896cca768c4c3de5e3b1d788afc97e5049a02e9b229c0a95e5eadc81c59d383fd63948850839dbf0a52756def27ce205ea41909f52f625682c4130326494d01630a9f92e1a8e7944e70bfa697726882b7b5861a33bf6f45701511f778ca7f4da12bf3236e0b256358c08a267ba6cce68b0c37be068d70d5d27f63bf651792d8e9b2a3c2682499d0b3c7df013f98316c92656089f3bf19082a5ed7bb3a94683dab0af5f5d7fe8a8874bf5b56ab1e832e57574c71b5177805c026049dc003f4b8b564fe8c1bfb132acf95e7852a44f2ec6861f1f61d2489e3f4ef9c7a2b5ad0985edcb52f50cb4c58ce5e1212493ffe2355ad0703b3e35c60bc2172058eb66a61d5c068e18188e4fc5506d22bb9732dee8aa53032ea45bd0c1b7075c184501b873531f3bd2c193193826617cf2fc51c259b4d638b747cc1816aa8610fb319e10fbb1b4318f3c0322be81061955cb085a718e583085292e7eb8cc2a82d15d18d0583fbf2115d2bf7eb9b8e64e9c30f99719620cca7108e7d28c542a970c0f87221677340fba8df251f01a067c690c24cf9db9c8bcdd8824d91ea2fc7fe99abf9d4694b6566cc29871a329d61ab0ba81ec29adf3bd20e0d53c1bb34b9835da09b9c6de2e62e899c7ca2f1c3973f7d8cd9c313843ab9fbb90fffcdd812f75b158d5ba70b2d2c95dc09fb1a57df4be68a01b5e6a60cc154baf1cce8503b96bc8cb2a3a3b108e708d8712f5a36eef2cd1a171bb89cc3b02af7c1ed0705bcf8a487010e4fe0c3be038c2e48eb09c1afbb95cbf00cc1814d4134496342ccb5e11bce06a748b299432fd268a78290cbd0767ce89e7ea082513c8b53bfaac63c1a899a545e0ef8fb732fe1112d65ec274f7f1761252febe0c441f6730a408cb8df8024050122f9bb388692195bd98883753bae0f27edf6fb10ce83536baa5db44c648df6671955c4e2b5d8dc699cd5c7cace4940c1ddaa5b271daeac33328ea6bbb3ce3d28fa8fb422ff3046dcef8eae550f6f04cd3942c57ec228e6fb8bb965dd7279811bbe32b3e40e7a0182fb06ab0e0d3305b625e00cdb5cdac45017e87c161890642e86896f0ac8ecbc7d092c56979f900089e15fa6f1c1dc93ff86f67920cc2f263f1eebbe2aabd625f51f9506e397601e5da4169d7d9b1d41b9f72db1cffe7ad163b871fe16b590cdc01b109a891672ea2783a60aa87b77f441c5b65cb65499c165e82b84946b1cbd79c292666b750809bc24b2628344465519d73210b736b5a637e0ec0c5ce171f40087040775152414fb0b122847e669c18cca740208cedc96f91f66eb875f70837e631e2ed1894405cb1da6db795e10f1985da9f40a9893b2904ea4cef0de0cbe4fd79e45995e7a02868c3ff5b2142c356466a19da40ce345108f06672126bc0578b7b6275ca1169a703dee9c220d0c5d7a4937ac6babbf9ea1a0fa263b19d4b1ffd1c0ec88d64727e0977c26d1de9a665e34064728a599ce0a3b2bef058effc54ca45b52520a3a94e32b352baf8aef7c61287434f02e0cf9c561e2e25a8529f94ab683b629dfb4635d8e38622f1483f527aad15f2256e9fc2541f0700b7ce243503f3200b8f790d1d2ee764e7bc4202c440bd3b5eb1ad53f54d3e26220548547b33dfebafd103a69f415d707923cce19e8c9fd6da3414a1ead61cdc0eca11577cdab36ef4a21d25ae3f1a4dd77d31ebd6d91961eafed2647b6b11120965350f304c116a72ce7afabb890c11656eecc1492b63839a2ea94b8ad9bc0586c97a33864b1f893626f89317c7ca16ed9dd13a030a3754c165f30b08095d93ff3e7baaa84be552b5dfa612620d196cce6444406e7475e42a3333e21eb02a217c80683e7eae993bab5540e761d93701bb630b036cc3175b3615f542a7dd435084128e548bcf2ae6ede45fb65f194e5a058aa6dff951d0d549f1a22f8232f385393c4b4b2ec5508547fa366f53b7068dc1181e133f0c3cb588a1f5d9428c52bd89d0639927832004a3ff04e844263ed14f9538182ae2ff6b2cb922486e5aaae830313a59a110fc6855b27d2e0f0bfeb314605a60bdb7a413ca10c52293267e3a7dbfaf4e66e0efc35525484c18012ce17fa33899cdffe8204e2266635327285375ba1fabf445a68e2aedbc38808fdcf056f0517a09c9d2e840cd5676c26302f50fcaff8589e1855f431632cbf5ee17d5d4eb66f7176d9fa28a3057d73269152bc68896599f191f42ead7339910ded9ab120ebf69b201220b84bbf1e5ee6d050cbd6bfc6c6d84baefdaf3c94b7280fd38ba754759225d94300a5abbeadc280d3d330e94ce2d66566248d3c81282667610628b24444aeabc2e3a163d3f167e1f3e57d71e89d23d609bdecb850768da4e9b11fbe907912eb69ecbbb1942a56d4f8c2ca3c853fe55865be82c32b85fad5f0ceb99d05012c892d7779fba2b547d9c0de68b93de5a453400dd86df79249827e44f1def555352ab5a1dcefe9c3b70a28420d9aa134954c34d584d7499f40d60998d1862df3372857593e37c6f9f66f5687cac2e6a70d22e05b4cb350f3a4169c5191db8768e36a940d2d89dad87747d43c04739e8412d5be4a32fc7a68e9b034192c2a042f2e532f15bf7421c3b8ac3a858756898f6d54b5b859f6cd793df5c18925445ca96c4712c2f609b6df1b3e6d81886e83caf2ad9ce0e55e382630c3cba30d6f0ca5c52e17146b9f0767e0626b2ff407f2d7b0a2dfe24b7378ae2151ed462ba4bd47dd955c9b574fcc1cb84f0eabe4b2004c642f6050e3e9e68fea28c0f78186f85ea325e1b71768e25e211590eee3cc9b2ebe02a7b85c48f5a89c65dd3c9dd46ae109d8810fd4f5468c174bbe9b75a1baae912d36ef82bf65dfc0bc34a0f0736cde4c6b8fc7234aa10c844f2a648136ab48909ac0cc756ccf3bd7a7c5d88aa719225e028225aae7898cf9e0b127e31ba950143a2d5c6600d891ebd6f5dc2f22fa81d81af1f26a4d0e891e4d747deabd6eebd0bc293d4863ded6871aec1b6371cc758d69a8770667614b56a90d49ec5013ab5aaafbfc83e2b21f66fac789948cf06b7cfada1d7183ef1c7e9607e4a825fc259d846dbce3463f53b40730e7c31e2dde804ede553b28d3dfb5049dea3f5bff6ce28151703abc5fde950bcfcfeb756f26d9243b1cceb2ff5bc7b7cfe35e73445de8640ff7ffdeb1bc9a7359a6d6f670e04185e29e516ad55fad205b0084b383e1af166fdaa6b2611dffe1cf0e967c1e968e2057b30c07cc4206e4bcc47fe40128584cc4b85b15bc889161e6c3cd9cefd00d63a84b2f747fb8d0d8f52542d0dd3732fbf5a6cee4f33693cc57095ee5496376df94a36f0822325478ad8dcf0f0461fa697cbee44ed9320bfc72f5325266761d1e4621e721f58b1007a91bbffd8fb30c28c6402b8ab29db68ce4e776a2738f1c49de0c013cc24d28e15ce9de78d42441e1849d86cb4b34a0596c368bf4f2143888afee0aacb6662f9f62e33ba3cad761c71ea47409c690fcd249a55451ec0da816dcc7b376359d944056a3daa2a97367cd24bfcf10644f23a7d459d26fda55c51b1967f531dfebfcc6dd66844e4372a1130e83cf346a28c49ef5c6d25ca44573c54371e9b8393dfdf7f50394f56d329353d884a79d98a093a54d2123860993bb957aefcac2d8dd80d1d7244f92a8fefe1f9f2c5fe8573815c9f9942fc4422798820002526ec37a10a7397e9871828de44d3620c8b31032c161b27a626e42c3a381b30c4373df1948049ab9037766184ea6a37bc0a051b492f6382a76ae75ccedd68e126ce61a3d3e45a13543f593636f1c5c7ddb8ecb6a5e100e0db5df8a88f699e1148874a060b4a34164cde5d9d1a724e53cea8c73278dcbbb32e333cd575ff76ad3ec9f824dbb31b6935d4101bf71f97b328a9899e2074432f3e8cbf5029b3f308d9cb53ca766f463569cc80026871c6d06c420970e688c7affb6b6578cffe25a99b5ddcd8082a8b34290f06b5afcbb7ad1a30c3b559a548793e217ec3a97de803f80b1d4a4c2dab4d61183ac79e8632a585a534fb9a232457f925e659fcc1a82759812f3bd45a3a62f1042ffbb55befcd982d8a199c72cfe41347b658209a80eb6ef07fa78a44677e56e1ee2b74fe6cc290c6a6933f07b65934eef0c78e82c7d055344fb383f8185351427cf2668c5ac100d82a4153a5a8e0f7f2064f60fbcc9e4a4b2d3ec2ccb8315d6944e7e5513baa58ca431ae8cbe8353fa07dd8034cd992f59eb1e356ba639e612fdab930e988b0be546d4e0d82cd5e07a0db3fd6fc9e133aeecd74761829dcc53eaf92761a66f798afc001de97cc3f785a30ded5c5d46c1ce89d46bd0be86a75ec8a4b408b8fa27acc45bb4a9febf6bac9ebff58d5015485880f763f9d67c7c2524e2c52548e9ff55a4b5c85f54b7152e9ad83353b4694193ceca624703922f2be6b2fb55cbff415926b27d7362cfb438cf2c047318687048fdd13ab95d107b82836089e01d29afc7eb8c9168c4e52a831d15a3866ad94b1528ed7d16080ed425967179f69f6462404cd069eec1eeed8cff5ce08cb10b13c747b47b881c05b62486ad80eebd98c3be35806fc14544a8ed7ab0dc6125310215801c92f501276799ef596b42e71f2f17af45f8de409ab5bae5821e7717f6fd43b1f37da9944a7426a6b3881aeee28c3988b628f88365f333a75b56323bea5f646d81b599f83669b0ac735fec3f8d69fe307914077cc407df9237886efa2fbd9a8ef25fa553cead15ed105fe5883c7c50dc4a817cc2f35640c54f61e8381e1782816b09863d98f7a8a0c0b19b98a3b7fdc1870222a165072e844e087009654564a5c634d6a1b82ec69643ba7a704b7f8f1892635f25bc1cf053eb40a691d3474d766195f7af36af39a1c358c8c1bf4ad779d8afaa5ca90cb3a9ef9b37a26ea2965ff0ddefc934b99c581cc6588ed8b0ab9d21d6f902e22e36d19dc164cabc3793ff9e09bd2efac7ab48d4866e61d4c3e1f8c20afcabe21d71387dfbf83ccedcded972311f5cb6a060cb61d0c953000f05e2b55717275b16150b7a0ba98b5e354437feb9753c78718a5ef71fb1e0696e9da4a46992c38a169e0c5677ae26db2c10a7019e557d4b3522c4009a4993113ee84030e8be0182bf01c5bb43c032036b14049e96bde99321ce6ab4020e2c8155765909c9567da5c8c847d5f97ae3005544a4962661cce7521c30b80bfda6d97d020e3534660b8110e3f791fa7a66a079ddd103712687529b402556524c7d56284917af24416ddcf161601bd8fa84137736b3d4034e53d58435514b012c9dc0f713107d91dfd8332b2f7a239cdf36d7c2f6ad26fb71c423f4c61b7ac4e897cf16c2cac8bd990ec567bc857b995d7e8b5c7ef7ba0f10e1864752f0f1e38826402ebf09f68bbf6fb7490727bccda50962699d13ed1b81cdbf30b1ba8279a9a5fabb1032119ff8afd21cee3a3a3172421e70e7717480a58d6583f33bbb2205aaa83f9a83c9c7b103f4644ce2eea0963e0b8cfa605ea0ffa4147f3d27dc74bc11d021c80554cb50d1f4eecb689a55cc880cbd11ea727c526ed7539d72e612fbd2d0e87c40f98377511e3b769af1209eb3adfb1ab68105a4d39821b5997645d9442b8c23f9e4cb85914b146fe11ac53b148257103be9ed337645a1d30a4529b3490c10ba5beac9f93115b73146396bf5401853d0e32126503b3a79dfff6b519edce04d6216f40745fbaaf07a31be3a8a49d5450fcdd90b1ac238fa0a80ddff17cee3ce8ee52f7deea59d8dcc9443371d4701a702264ef0c16d4ac109856226fd32d0fb509daa5beaf6a7b799ca2b28ac3b535ba81ced4fd80c4274b9006de142513a9d5c50892170cde0b07a47e5db65568341eb828a63d02d4eaeb550f2186d560b812bb3f5f2d2e2045549fc8b2b73c542c2dfe53f57d4e1d18db2193c72aec8b570a6ad5d70d00894db36f06f23df4962878717c336d356ae0b0f10d1315e8b55cdc6fed2858df9844fdb93280def3344a0759434bab0b28d98b17da77e6f1b3adefe884d05c0d3045024bf7892f1f99157878b0e2ee4da5f1c05fba549cc498c41ac373e8d21f88b5fa0d01d485be724f7f7fa3a428655f1f5177bceb1bc300bc21c4981629c581e9076478860b66653dbd44210c6caad2eae01bf832863fb64ea4d8f44b82f7c278cb58c1bd532b82a90dcd690405934f66e8e0ec66d16232447d802717d5671fa3d4711c16994ae1e0f7d8561a6929a77cb92684423abda4187c636d13bbb66b2c3e03c482836a81cfe9a80ad53e0b60f1f2c2186d935893f9ddc79f73aa214a521bb9ade1cf1140a7272db78225cd24f10e1494362e38afd56e2df7609512a69e82d83b3687fb1d1328081ddcc88969487d3276f7f48bfcaf2a7e8f5ee492ae8cf37a59e234694fe975086c8846685746bb8fa427055d119fff2dbf8dcfea730ad0a457d738629a3a100b5c655e8f9823a51a24d8630ed4613146cb5e44a194e90bfcca34d8cafd705da8e5fb04cd5a2cad5dcc46d63795867f5302eb33f9dbbe938e36e67110d6aaf0669c28ac9786ef5c0133e602aa9d09fe17fdd842875f7342e12605988c7919b34afd66bded18cda5f6ed54571eb480f73e804bbdbd8f768de83382d50628d32fb2f6e0fd9c6761d6794ed67c3c89791db0f55d711cc42536c286aea4c44ad908ba0a119fe3ccd10c80af4f47ef0deb902dc9cf6356ba71e8b42319394dc621da74279d84dee7a6cb3b43713daa8ccb18a413a3e1545bd16cc08111b8b3d8d394ab2f2dec340055f1f8b46abc2cbcea42a0851c0e0f20f8cee3edd33a66d934d7bb09589eae7a12db31a0f15c33732dfdeb21b4711a8d1845668713a287e1b5d6a262de1d5a6a121d0e899912fd1b5d23bac8b38caf2335742a8ab30b11f3bc28dc6ea068cd1ef0fd6288fd44c935eddcdedbaf8a18b527a5e5b88b154308e01a3b4b3b5338864579595231b0600258e5de356f74790c2c15291f246420e0dc3a8351a7757c8afebbab9a7c822d5740e2697421025591f4592d9014e8c38377b2ce49272b03029e4b3b08563d2446014529be6a1977b4f0f48e00494907205b42f46af6c2565c38e81a7ecd3b695d9d967fbbab6f6fcd23bac587c558f14b349cfad8d81342c15cef245a16e6424769de6069599c535d13c617005ca7e21131f47b5061092e94eef2e63742d174a571536cc8f59bea3e6e03497d6f6fe4e5532586daf12aae1801765d0a69f3965817db7c66be92bd67a3796dcdfef2d781016b2e3941fea195570ccd92b9488d436464f96d04a83911f1869c419d450d5a6c607fb4d91b1021bde71b2f3d7e7b08a388190e1ae3801c68623a324b1e101395ef43a32051977908b3cc442c00dfbccb178e2cb7baa8b6db77f6020d1e5d40f9259f56f1b09b79feaccbf3f644f3cb3188b8333a01e40b8ccb375f07b35a8e9a7d227e8ffd2eac63f69dd14a2ab025e5bc6e525abd93c1f4c2e7e347260d9873ebbb3d7d52c57b627d81943d911e32847dc938f20263e34a9d8e18d0f3002f0c0e6e914165bee90dbe18551b1310dad2e6d3f5141d38ebfefed28e25f3678a9a017d1a8a39a0885a99f3e5e0d6ae38dcbc6a0ae0f16eaa6e01dadf9abf5248239a4f60f0fbce37862fc615ca65b1a808c6b2b5542e4d0245f234f06fa310ba2369ef7594b611c85a16d4042b27bbdaf01da97771a656839003de5ca3b01fb407678dc783a7b61f29948a7d79959a78effdcb1726d9af61d0c88e3173c498fc3a48dae16932c95aa74cb88f216814268ffb4285ac5e61848b07e5ce08c6927e1e09c356237b62fff0fe2af19469839dd865367d1a8bbcfcd032a68281ffbe1899a831d78fd6996234794669e41863ad804ce9ec83bc956d1f5d1897a370492fed09f74d0026f9a7623d59fdd171d89547a3c6c12a39b4adea8c87d15bd7f16c7b5aee976d21a5b61089fc6efbadb4873f2faf5eaefde8c7ab065d72693717b5bf254e1596e57a10a888be7f9db07c37da488ed104e6874a4b32bf1f7076c77b61c7200acc24079ca68abd5e656ad9d419b0a3660684c69520fd8941e1ce4485a56cecdab37a9af732d43e08e04921b4b88afc6a6939cbe246323a5bf5e94e3a9204df86810e39bc4cda9cb3df6a215327cfdaffb7e323301ddc57cccf825b6af2782d4385f14501fb8dfe29cad48e9a4b2d865995b05f77e1a79d8bd6dc4b60352c4d7834bac9368ed31e9404fb9c83bead84a9911080b8af87e2c96d7f9a367dfb07e6de755ff9517c17b7bc35e12068a9b5d47c573af533a1cd7ca150159588bae24ee74711d024d1257fb89ec4778bb5d85a91af195ec1a7279fc7239629b417d604639996fb895524058c50bfcc3220368ddb2ec4d65b49eb2f1670751cf75bfb613060362e0068aa2ef92126de5d079ce62a4afa2e27f7b89d9f1387fcaabbae1918fee5ca7a587cd04bce9d86f51f246efe6923cc4aa843a2b1785b9bd6e37eb7be022f3522604162213f1f3c41a6c5b0c552c9b1c97948048d7e5298a5fef379f2dab18f2e34dfedaffcb3123c5260021d5f461524c568087dfbf3090c1e99a9aca1558657e999d7d30a35a8638c49b855aab7ed412a8e1e6af9651773dd67015408a705315fd61ff1307a699acc541ae18f5eecafc285052608868f1c95077e4ccea9e7edfee75be8be1d91c32d9dfee4032a894350b34c02835061dca0f99544eaae26ba3372db147c4049ccad253002f422f70239bc58be5851f56c61b557518f62236554049e99f48510bbd3fb8856c8ef5bde788d807dd3f9b24c99fcabb688f1b84f63feaef926bb286bc3511f6bcc2a375345c845794f059454ad358c424e3e3dd8b3029190809dacd2ba412ae63c2a1f2ea9c0bb9991bd966806018d678997e329ff99523ca6f949c51cd9b516da21ca7ea7b80c1884f46bcffb1415d7a51fe0914174313aa9a52633a0d13cd96fa773b9e6b33ed7bd3ebd3b0115771a2b738ad6e8a3190b12fba696864d59ff00a1e66adcad3f33ac88fedaf75b8261866d4726ca3a8c64e12c447e23d1c93a1fd0ad30c4f8468a873340676128a0bfb4862a47a31f3cf9eb580fed4e63f66a25a64d122652f87229ae8ff79423763a8772c7407c0f45d52456a3b93771451076425899bf99ecb85b2705098f315650d67bf2673fab8d4eed2ce063750126ce16c22c2260f0a7ddb9fd65cbe01d10ae1e3489aca3cfc0556985634541f208b26d58c5b4dd355decaf6eab62ed954335308c64a5c7cf4008ba20da1a05912861d38573f635588c54753185514cc141a3e836894029a11667d5cd248d39435f63fabec8901664b3672e190ca4bb94ee756930ba3f31954cacc39c00ca718a00bbeba468f059db83f730fbd0b5316571c755d5eb247e40ada434e39e0c9390e1ddab3575ab8184015117150fb8b5a7e12c16b74558de272396e4e3de91b79fe7d5bdb49a9044b770f1536b144587aba3fa6e728a6585724dce68bcc749556cee3bd5499d37c2dc199f948e51dfb3b69ea4ee31ee021c8258544ee6eb00227e81387eea904985bcb4c7ca569ed837fd3354dcd64772e24fa574616bdb737042de4ddd1c687e14db1786ed18cda711c239492aa4eb248884a372a36e49fe7663b9be619e65bd55f0b6df9b528f62162131db474a8d473aa2968034ea88e3ef8c89cf02af4db17d73d523e26c87d60bc6b21e1b62bf0666ee8f257515f5a5c10c6c73292ee18502447d338383ef21ae601b6631f5d081631d218c79ec70818fa06fa1534a710e82faba96cbcdaa662c2b62226f4b376e78380bb3a04d5e8f5cb48e62ed4ae94293c992151132b241e4e28c3c8ba5228bf48ce75dba7fbb8bbf0cedfd69af6688e1f55fad9a9e14611b6dc109c7c73a1fb33d74b510c082eabcb3ac7470b44ec85679809693a66f0b2e061210934340cd62ee5c32b4af848e3323fa27b5cb7d4a70187f47b8a711301fb64592b09282ed49516386bf70f16428b6cce96960b45af007507236da74443d7d5625d8bd1194f22d5649c3e5e1dca7e5119851c7f402fbef606b76968b6098ec6ad9fe5b823d44c01d53f3c521411d143a891140f29e2b7fef9a3a377f6a419fd03d9dc3d02176e6ea9d3d95487babbe6d9344c28f094217169e659f3ff6c7796d25dcd9dd680c4813f3d910b26c3f0d1d631edaec9ed080e6c8b3ee24ba8a636ba7fa2ce308a52615ab240e0a1d92638efb58350418490377029f5aaa15db5d0419e793db230876e813113856fc9f027f2d490b1f5f2b29f44daae10a8b14bdc24f0ddea3912681f0038905b4552574f9a6b7962cee5f30fd4305a655dd03f909d2d3d6cb8b4aefecbce8fa803ba5188ac6cfbf52992eedc52527cc997f842848c35ea55c3d59248f4e431a715aef8df7aa3a13d443675689ed67dd785e0edfd6772ffdb4097354205e48f182ff847289f4024b9af922b396715d9b3b9f2b502f01ff59189dc695c274352c30e666b01353ef1536b4735b23f382d4dd1e48be6944da20c1d901b8ddfecee53cfdb1145df9c5762e6e8f8c10ab0caeb98c97ed18d89b8f86f5adfaec89b61fbbcb1c6823f48b176cf78e87a44272587173523f9f007393d579214d5dfcb3ced96853a30332eedc5e781efa87b77fb0881475da65b76c2cf48b2016fe1164ecd969e900804bc13047e48b467e531ea2e930a016beda834b310c9b4ff057152029fbd246683ba368595ba43efa6db1b3ac9c549e6a03cd95658a150d7265ba992b82b77e6cdc86f89150e32a43c630653e97ed2377fe5564c0f296a6fe51a15be24cb63838496f923e6135abc6bb165ec4bda481895188fe362f347ce0ca6ff98d7be8b60685c1a27413d5da72c82f4954450540a0640b4af1cfc8b5e2dba2f270c6bffb1a6385b612f3770d115710f370678f5babe8a1d7faaaaac662cb1099e6c40d3befabb92c6c2105ece4e20fdfb5cd1786679d8b6e8c96be120678fff433a4201225da3b69c1759a53726cc4cc8b1d14f3372ae3f7c36855edb87621c15b5176b2fbefb5a1be6d70ee71dd84b07089eb29075462f8eaf07acee5af7830d6a1717f772adc7be01bda3f87ee312ac6303ae6ed8676ca6f23ba8ae72de4a13205618e1d219f2c5baa2be5b6ec4fc3d8387ca7963d10b0b60255377354bd89bf4d6e19693def88aad4989cf0d0921a163a83cc899d0dbb67e416422d8be7d8b2911dce71a90f674a985c9ff714696f67e020a063987fd4c63a94600a68681ad16e83045e48525e301df8dc2683c6dd852663a85568b23c0d60d34e3f916c81bd9a25048ada9c536c140f5a07183eb4abefdfe93fac4b84435f9c3d5d951116fe6883810f2066b50d8075a23353f6b9f651cad73eeeaaa7e2de745172eb35e2781208be300bceaf385549553a1f8302464f979c8e912b0bf724a79aa9488b5075d577f06dcea2b9c0e28c83f549a70d11ecf17047d3ead0693770e521e7ccbafc5a1dea078e29f7666bb86d9b92496c83b33b1f405f89e10cd4700998182db1e576ddff3a4546c86d9adfa0147dc5aae920d16839604489071a564a10c0adb800c660a49725e7d0d1db0d7264c437b0ea3901640ce0f83e7e9ca946807b3b4f2d6bfcc99ae6e0ae5d45600f63522a9d3977906db6f71fbdcaf3d723b7d3b16ffdbbcd37821e077f901429bf24401d77965ecfa57e543f82e19a8dbc1fe566add1da27fe103fb98a2e0111cd154d427d7eaacd54196e9a274747bdd09eb0071188bea421c5ed6b62863029796ae1db23fdde73892a0886063ba61180c2bd0dbcf7b54243e739bd7afbb7ff15bcad1518cf9682faafb7f62a82a870a45980e67794f86bcc801c4adfa6a40120734442f4629c29348c21f145f364a3da61201dbb779041de4f6c68ef51d6d2ba30dc739d17a6aae3c5e9e11579c26735c7b269e2966f08b33089fa032f2e55d671ac16164faa70f67723d3c5b918738158f714bdbe706c64a050f4daf0b05bd0318e291622fb90cc1bb0becb3f3716f72cfd1c7850590f5d23327754358960ee4450d8a641f4c8d46c2d65507ba408ce7128693e207040590bf3c24631fa5b2334051e8e2532b8e31222bf0ef92bfdd42142ca3079a125262a2ee7a2772a9c8155e814881f245109e3756be0c0b68f24b237769c8adee68ae084fbffc2da39051a9f4f41b82857f8c5e33b923173a13e9bee1f4cff1716f7f78dc018dd9829f84035ab624c2025abf704ebbdf4f6be6b2057fd0c47f6cf4f415df7244b490e98213570afb72c6de0f2aa1941189227306a12fb78a2bd1aedddd93e40be9e749d247794dcac048091440828b83106ee2a8503699dedc9eae4ce0730365cc0f63c0a0d923d541de068e16c604d67090cd5f0ecfc32d2cfd1f6179141615660ff832dc07927215f6fec4957c043c172daab2563d5d5e4582b67061d944488fae64932ba18209b08bfc7b8b1c3b43742adc4c752dd2aa89bd7b7573768b3c34e5d57a892156e75a87617e222ba2275f57217fe9a38a35c1664c8e07f13526e2bfd7460186618391380c77bd970b8a1036ae159606098b848bc06b78cbd127e9d79228154fc6031d69231ec55f307ec017b93981402f2b473cf2c8374f1223b473523da2a2ae76447b1270720dd3b11e6822bbfe49e69c9d117de4466cd53c90f3378e2bdf495462ea838cf5b00b82dd92d2b5fe7b0103a38d8b498bc01ea2516d0bb7d0664cbbc2965682fbaf1af4924c0ca5643857e47c14988fa33c1e70316ecb44a595e4265c47ae2e3d9e220d881ab02e51a5fb99bec1f2e71b7e8e2928bc8f626e1309037ba9dca3bc907f089044d3b5e3e93f4469b75e23e7b6e06f997ab41dfe8a7aa915fd43c940d8db8e5d5d9ec668946487f69edd7e3d6b96d093e2a6b2cb215c93e3f16d700c68c24f8586855edc2da5c105c20cf3134995f6dee452fcf651b1f39f951bb301d36a87cbd51d7dcef6972a3af915340517451f26c6cd51d999636af2382794a735f6e2ef1f12479bb77baa052a016541b6d74994c9e71ea2f3110a407942447ac81c4dd6b710ffec54106d389254d77b21bf9c87d5e1437019b58e9dd95541fc2630593b6403a654d20fee7094dbc48caa18cce5135e73ed018f675a52a9e6fb38363166888b69fa924c81df1d58bd938a45ea682a0a50358c46c1c0ecf8feadbb1460afe7078150715474a5cc0bc2572c6cfe56ab209a16d3c9df2b11cbfb6a209497687b1dbe3fac893a25e77d3c32d99fe38cf80d6e2ad8f6ca773d1f9a4d29c8e602646f079c385d0eeedaf24bf15a69c43fbd89926378156118a45999716106292f91de1719c67a1d557faf707ce8bfc702e3b8171f965f450b1711dedb9e03065560eb8c0fb14240f4f21024ab929adb2ef9b1f8953d3f15946071d32dec857cf24c99179b3fc49c477e13fd41183602e7850736b76ca6d2285eb29fe226bce9f8cdac9d5200b939a1516acb5c5d0d756bef69fcd063bf2fda4aa31f6b6c3ee246c1200c7bdc0347eb5233d97d3c10af50e7a7e0b17f56d48a3e234badbf7601222ece78341e50190a8dfa4b5b10e8c138a9e467ba0d87c8a658008bf6d5e6c02e741f072cbd7fcb507e3160c1055a69b24f3a5c9ecc07e618ca12bcfad6223a18cbaed3b86512de3347709f5fd4617a501ea57cf050f1acc7ecf63c95eff45d44e95345305e12a6b10ae25b769c54a04d2591c19e0f380c8dc9a72e25dd771a3ac9823a92253243da125b1c3be5402071f8086b81d7de38dd9877f5759a068e1e31dc110562fd0670b1540ade1da13255fc63b8a99f1e6763744006e0e798f06b8371184910bf6cc1e1533ca5b903037870a17f03bd2d6b7d789aff44d9b6e84d3412b9d307e4abb9fccaf60ceb874a93c35896f399fb1c056ba7d5cf8d38d679f290a820acb87908bb45bf2e2cbcdf4902e38c3ac57ab6daaf5b2d806667a810d9be30629a33faf2e829b7f38073625763f59930eb7ffd464c7f97445047811e857fbe6a2367598a8ae50131f4a5fca5c648b4b2eec9967cefc3f445f04d87f6f46efbef8aab61708ce677cc4ee32f84622355cebccb0ecdf9fb76765ae3d5151e922798370fa2570b563df9c279dd138c6720322b0902b1ba16198d946cbd27f6bed886c620bfe29465bbd5224afd1b6fe6d479547403c34eda63b662fa894fd9961ca4b4778f8db74de3ba9733904b31da5832f6b1d7f42c4a7cc1bf1082d563508f64adf96d3bd1bb2832b4dec947031ec3e5c70165276b9029b2f16930b823af9b500547caec9eb19fa13797d285a6bc1acd866b7c2222c1db56d9d5b07eff9906b58b9e0abb973fc6ea4404ea2e6c341cea49510e84f50f902afed6edd17f7252474c583d3ab2438a2195d2fee6ad47b0f88e86f56cb7e8ad8202b94c058109ea5a37e5a7cbb7706a3d0cba0cf479d2e8610e7f61397af1120026f3e7e00e763a1790971c07df5c77c6eacbda654ba4016fcfa81667de8a6bad193854f8632df101a2473cda162555571a29ecfffb472f3ce7b73b78faaa2b8b718ee687734cd4eb7eca4f0d6699deeb931756a547b9c79a37b58038e649f0ce470f298d1be2a6bb4070f4fff17b0440667eba53886f3a0a10b6e0e866305009b1ac9deb6e5e58c5dcd983590f510d9e4727918d5aeac4bdcae87dfb09077a95a85bdb2c5ec53f5a04fe4c261e95a2fd4a242e63f7bd7297ff168b321246e6a969e5e367ddf6cf29773585184270d3e03cf32814d43ae8a704f8d5288be627acf8f2bf9969464fd5d9d65853a76c94c6f32095be7cd9bfeec48e9511f57c33df71dd0e5d29538e550d9f0c8c1f0decdf85ff65c163416d0250820e12db40acf5745651f000d2476eceecd6fca563fd751f07f4b3a7bdb40ef8a59f7fe3eb5cdafa6f68b4a49860ca46fafe1c53c219b0b088ed9dd0e0765bc965b0d7ccc1c1622ba75dd625d7ed510b8bbc7b211d5b17d6c1edf5a76c69984a035b32b10e0ac69fbbb5d0d87697a077f03bb8aaa898d044fd2ed1379e29e6297ff3f689436505f99109f6c857d6ad0e8fa653ac8e4268903a1c9ec8ab1383ba8bc4ad0002893bbcfe527b50253d8c26ab6b31f8aa5b0222fa8a1a9aa5484fb5c86f0f077716e3d0a96ab8748b04f92e7ef2e49b7f2f9d37fb22415f31236fe641d3680898f1a65656db82bae0afad288e67c063a115a639aabb158a0789297409d8fcb8baf045bd9472eb2fa138e7c0212f462d9315308c6b83f926b474b6559bff6098bd394ef0b1da022af490d05ba5486975a9a68adce0d22fbedb1a5531a2a1672d803f6b8c075bbac6ddaf28d4b2cc30e67b98de5ec5afb723e5012939cffbd4ae365009089470579bb321c855dcd5b55c8a7fd4ebc7a7401930393a9bfe72e99d093dd74c9b24aa9ad038ca182bde13b350b9ccca574d3f7a48e7c6c01c9c36da1092bb7e570013bb44093246ba3ebdc5ad0cbc12516f7fe42c0385ffc14f9eda98e7f941ebdba7cb8e1f157038f88cead1509b76154632e3727e860ee5e649a89952234e5ef983e92a1c144dd72f39c934bd3d5b69006b6cf88203b8620abe5f9edc28251c48038c4e984fe1bfa0e885b375cda4adda78a995c396086b91db5286318b95d42700359129197bb304f08c92cc09f393baecb1bb0d8d53339d6284f58ac9e93039f624cc56ca23dd8e33e3e6fec91046b8bb57b56dcd8e4061cbe47d511a331f2ddced3c8b156011ed747886b28afc9a56aa5353c1a52d50d9176b2a98faec9eaf0e92106ba7fdeb1ac2f07805080a950bbed83ab80df42014216a56b736d40e4c50497a2e4760286b1133318262c2d4debdde8bd6502b6f49d4e3f6a5527504e3c934be3312b24404b7baa4eda965e5efd9658ca2bc662b5fc57df1aea05f45f5be88261082067ed44907a1c43719b6e0e9de7560d7b726d24e6ef1d59c288c27a61829b2faf20ae3e7313b47dcf3e85b5d81605878950abe83869e23f6f1566ae20415450b272bc0afce7515d0b8159ea79fe917c9ff2e019181521397808df1574c07b6f528bf8362bef7490bc6d97cce215c5710ae4146fc2ded3d5dd1f01064cde730941306650fc0802a3bb90d72be7ebb537d5ce666dca15167f9fc6cd4f279d053dcef4dd059baae7c5ff94ef881ba24bbbae6b819e866f1acfc1d8ec8e3d0b62549a5dd720fb5bcc7dbe91fb093be52ca4802c8dcc6d2bfdcb885c598df11c74209eac0c9a646cb9d93c4789e4861cebe9b8d883648e78ec5edfb9066c75a22fcc609b0cc08b060bea50bd2f14acd4159edcaa27a2f12c0b6aefc6615becfccc3058f3b4dcf5a24d28d2aef5b508cc1068bedebc3b7f7b242e81339e67428f89b9d612f06fa8d82941bb46050ccf55af037e08bb170a7f4315df16e9c7864b9c5408af0ad5f3e7ead2f5ba5d4af86051665d53d60b8aeeac8529db767349c27071c23c859e3f185569cefa27684bf9d14df8e5027c0181a1b5d85e2d5d803ebe6fd69bd38887b9c25a4cc56a577aa479bfa18ff4b3639305ef47abf23cd54e40f36876b78d1f214dbb4565ef667bcc2a4ec7df1232a5389f16dcd5c9b0551869eba40961d91af4e22d3c088c09f7bfd4c485d1bf1fc039fb24ea13cadb1e3e13dcec380f0f7ee111064f3f02b8737bb1e57e475b173881d4863d02b15a1cc2a71f55787cf78c749fc861e859a4477702fe8bdda34ca64cd49e87b6b25fb7ec842e5464e556f9394908b9f09479fac5d96f27d55b6ac93d9ccd48303555d2de3cbc628f147de0765f8ec7fbf7e21c647f24f6ab87ed625648ba1d0bf7ec6019f26b850ca29c5aac6012bd394b9782b9555673314af0791a2169a5672a530949c03ca4b712f32ed69571fb29505bf3c3cdcfb96e944722efdad287e299f64e0a2c4e59880fe1a2b0f26a449ce2ed3b8bdacb90ee2f1f5149458391c34b790c7a8939653291d8f42a55596e2ed7efc7f7536f05dc395d3e5d5a5a3bbb7abe0c872adad4110399a105169718e2777366a5aa484d3367a6c2cebd76cc55bbf579813659699acc4aa4a9e77cb5c938507ff931644966ede55d15a7965b1d489d6209157002a38ff28a1608cc07f4942c56dec431a332e01e8c98fed8e34d84b9472695ebb56affe174ee16095c6754629c7d5c871f101b348a8727e8f6d6ca8e0853f4cd3db79dc659aa423b572e520a7b521dfe2a4fc42895e93252b86e1a0cbb31778f1ae9f044168935523f59f31c4301485ce0ee0762570b9fb577cc64e2e4d88e905835d0fb3d89a725a8a96bfdfd4f9f6c0a3943508ea28e526e7170a8c179413ec36b33e038c5881ce3a69252a7eca2eebba2184d7688a59a12e698163ccbdfd24a08d884aaca62ea601b7c861d47b21676edecb34c281317e01b1160873135aad6c7de9d6082b1717e188b92a6daf3c6101a38ad436eaa108090c7e75e9c27d10429c9c0b84d3e42f2a4b2ae1b015d30ba011ea7165339ec03a9f3f918b3a5c1bdd5da8aaf07fcc3c80f8884ab8d78e30ed6d7ae5cda5a42d52edbb55f1251971b1d1dfac00a8b9d0661639fb6451bd39c2411c38d2a419ac5afbb0919d65d4df7fce5e0d612e648063ab4db0a4cf697a2d7867765c71070a4232e9d8f2a21795d3aaae39eca90b18265bf93f72fe942d4966d1995374fc27f7b2f5f5f4810dd58c42f6ac5476a422a83fa9e0fec907f83f76e331e4bbcd5469685df1f8ca1fabfa8848941391aa1f90c15b9553295ed3159eda9d3318419e5084762fb87a62b3796e1c75b06dd0db555066bd7eb83f4d9ab3dd73c74f6ec7002c6d1d064ed67ea42ba7f68b6e79ff103c15ab487b9bbb7c4c519ccfd52bd9b23553122b0abf21fb3c1bc98f6253818f5bc78bf62995fe3f9b16d733ecb0c211d6a80d91d7b8cd22ace027ee6d0051c30c502028c7d3e52d3cf9190479117fe73658798a6394b461a3d733c9b5a5b5fbc78095d03d3092a55cac35f710b1e9f3d73e9d5336b9a3d754aea53abd97598a274b9ae5f0fb79445a507ac21d77125089d04ce6cb8e598dd4d3334637aa418e605fb2fadc4cda7b2d996c0445019a2ddd18ee282a706834dd2ec9d8e8bbef89dcf0003f4950310d4dff655c6201cba5c2b8a8012d8c42cf1b01622002740fb074de7a84fbb8cdfe1df75201165146726704b4e162147c407559c41f61453c0175a340cffd14bbcc10c122715317d04b06efd98260ecb625493b16bf2d15a3ae734232658ac352e8555d169d5f13b5415c1a0ce04299d1a4af14eafe4bef5ba25b79a7a3cb71c537ef95e8f06ec7bc24b11885b2683365c767e09427b3c801a4171d335e15628a308a9d2b096db4c72a7d906886b299594813d914ff8f8d3e22ea834a69720a58da17aaf84a52b3753581f338f58fa2e955ccc8931d0a3ef80aef87d9dd8bd6b38298e2166171ea6611f442cfa3a8ea2a355858502af93e619be134e0fdf8b8cf54e84a80d5361b82f42624bed38125d89c3c36f11638155a1d09d32d505d61e14b616ec763a71b2382cf4aac1a0f8c1db202d99e02228d96d70f102cf1af5b0e40836c2cb1946fcf209ecd5501adad630f6ae912e91b168a6687b17a11709101c246f7cfc8436f516106f8b96e8c2f408e54ab445cd0a45a17effbad95e1de6072d414c3b8a9d6b814e8512fcdb6bbbf2d5eca4a9e6a616a0174ac2532ee89de3771e76ccb093240f4ebf9fe08c7aa31beda41c4cfd728a00dbbe297f808891c31b5347aec4bcee55f523249a7320d05d901c83eaf925d9daa5be210e6c6acb84bb4d1562bfbe4f0e3f6974d6a57d1feda9fa90399bd6dca70ba8f5a450ebf19d550ce07c25d319b0d09fb28c005b13b24157d398415ab768911f191191c35bfc591b4d76665c58425eab5655c5bffa80edd5d0ed174cefb94726910d286943c16202a54ecf5683f2c7b3174f535662c6c0af843e2f8e79b5179159d66e4074623926e1a75f155fb702b12770e0d6ccfc703be0b36f371341dfd201886b5b24ff96e2ecb393331c2169e82cffc0df4985442d927e73fc188f1d1797f0264334c9dbd070d4080ad448b124c663300eef7bc8fd1812aeb2a5fc7af02978f01c369391b2f519418a5e5941bc6da9ef5723f2751a4c45fc2b6ed2360bd0f69f346d7c025b36fd2c66b8ae2904adef6cadde2923de0f54578dfa9b04c98a8169623434973aa1f4bec64c7dcd74683fa49bf9ad89e2a6aa89a4786cf81ae83e91e6648bafef4d8305f949eb80cc3ba76597bad10aac4d851252f1bf5b35fe5160ce0d76954961ba474b519877498e19fb503a9f24d504aa224fcc006b171c68ecad831ac440362b7d5763df159dde59d4ec8e99dbcba0f447009514f29d8e531374ba72b50f7bb620db51b3604d7e71db6c71345863cb8605ebc04c05fe38b6b4ef6cb6e3d4e03f830dc3b9d71f321c24665667b261796daefdfe1463a076d8bff15a3b37ab2404dab68137335881a2ff977c607c0ad16b985ee0f0c15705e7450798758026947571f1b5962e315343a895e2a490d21fc3b5cf8d1b324c0d5990bfa141916169d2e53a329b4faab80718726628b02271e35d9259db333d68c6d9dd536c3230746f65a192f444ef34022f03f5d2f398f905287353aced3f7a56db31ce7369fb66e4e44c165062e9dbc1cae597346b0686d5b33d1a85e462059136734719b068062867130a6312ec21bda7237d3e76b0775cf5095aba662cb9e8931fa66a911d14a6327735552e00aef76d3cf7cfaa9f59d13fd68cd662d393346b94751956847e206b97561bc179a943ce701061c0c0e402365ce9a94e4b4552de0ab483368ef59418e1fb7a2762e6b011ced5611e4f6b378454ca4b926209ce4f923e63585043c0882bc25aa6742d13ddbfc3832825102b72d43c8af0b193e6a69a2522da2661a2d3b26e2926bc3ce2ccb998842e7763e7f253b88d2d21e4dd39264c9f75c831de4f34d7f8f539595c3da80c92ab9333b9bc7d7fe21c998932bc5c9ec0d1df789c0aec797d36e3e0ac6bbda4ab6b1e9e9853d43a30e46e7d028d40edbcd0d6c85be80d008a39666963ac1bff9f62884daad8a4b4539857a301d26c26172eca84dce27e75ed78dd1ed2e193d78b3cf2ff05714343fe38d1ad26fb94255c7e2024f1a834d4754c5ea3ee904b996ce78fdfa20bde2c254934bd26dd1214fb60b6b716e176c138716ea576f5bc766b2ffcf0b88b0792a18590f8e1461994a9a1f6e83558669877ec5b1f8dd4ea9171d5d022604579337882b4e8bc8955a3f22b795c68d4402a104611fcca33a3923ab3a92ec0418e2de2a3edfbabf2d909897c90348b8ff399bf3f1f0b671f37e5751c2c364490d6dbdc9b19094c2bf82f9d5538cc2d8d3ce6e63bd1d6b3780a396ff0cf79d0316e7c42a796fc756606aa2e807e5c947ec35b4c6afd39ddfb99135e3f0902f867d468f1db2f48002c12c9ca1b5e80610a3912f3c71ac010022105e476df676524a45e93bfd82158c65db717ecdcbc5a4762f3d3847bf77d20801b99d2573fb26cfd6344ece843f337c958f992044a247c2a6f4d7d68c3279e57e48b907d825afadeaad6dda2ac6f05fbd6cc799a384a88e701510a544e3faa53340db9fc8fdd203747945f975b3323a3d063056773f36efbf6595dd820ace9728bf87888c057ac2271a8fa51011e2ba2e5c553ceb64ab9e972e1554cdfe9c731a74f29da6aa028629b05e6a26fe9faa4b85676c450a13cb2bfaaed310b2c669772bd4ab24fc7f09d55272d090f83f89b3e5daa48a7ed08fe0bc030f388fd41eb5e3c507a450300bc01053dd45baa724bdc623638023ec1f4d2468d1e3592eaf1c2e7c7d1b3ff1b79de68c881d52904402a19cc1f21f0d90c46c7ae657022dff9d52db4ca9ef053dab166b35adec146864bd29c8b38e72a10d076ef0eefc5ed0d6a98a0056b45ed717e150cc882952a16248fc9b0ce4ba246bdbcc30fe935ffe9e6b9286d8dbdca377309074ec06938b63400ea47f8dc82741fdefad35d99531d2b9297a2bc0812dde409535fda1ee04187a218a8bfea22f969762733e528166e08c5b5656c93783dd1ee02fe9cc6ea0eafd4f1e266f6cfae035e5dbb17b6d815f9b77a319994237c85204abace271219a45ae4dddd8b1b5ba1bc276af6a81c94fca59ff217e588bf7704ac4352ae45fafdc733249f27c745cb4e44ee8abd3e9b4102a3b29ad306a794ee91cc37322130886518e85bc111e1e5a66169259b7224a8bcb209b382f394d90b15984dad674ff36950c9372e6e0988d840958c31b45f83385b5650f33c28c53b67299b4347db94e6d1bf73e1ca6ab0913d25a0a1483b5920e359f808c4dca4cbc954a1e012ab25eef37a8f176d6737792b9a1e79e6339076974f4812d48fd1295dc534216266441c03dd9bc340e8b5caf95f8cf81f0005a60a34d98b40f2fdb9c485b76c7ade39fc5dcacd3dfbf93a1155f5f4df29860bb261f67f115ec9624dfa300c31497b26bad2077ee24da61a9a6c9352ff87568c5a4185cef5c06a5ff6c193f46ea7d98c002dcad2ba7e1d3f60185ac48235d0cd84fad48e347726bc72b904dc0991e10cc36c5d4a5eb0ed048afbab0cee1890c32c2df76814c73ce2f7abc85ebc39bb0643ea4ca4d7d6a7409df3854b4b6eda6b5e4b25b64702bbbbefb8252b8d1a15bf3fbd0facda179ead1329529a2f00f92216b0b3087c791f542084d5df9ef3f16673c6f019e529b5048fa8baa40adb148cc280a80af98f2f5f14d11bce907e7797b6fa10a008eb00e064786e70bb1da90a2c2f1e052737f308094c3458c746aa77e57e9b3a75c495f0bdcbf26701dc4842c7e7e1ac350a36a6f1980b5c36c9290039c40a01087af400ebaa9c0f9101938027e28be6345b94839831b02831ebd4a36aa6c9b08e79e7ea585ff365a21b1dbf103d1316938071b39b0a3f31dfc3f3049aa7d802b320a36319c0f6617595eb11408bc2a140dd7eb2e41cca168b21aa01d021c5a7e658484c92e259fa9a720532bd5c67d38a095c8b1765d50bd9151fbea26d63b2f6e5c83b404b2d51ac0ccb69bb0319c91ae2575b98465b02f42d0c36e3d997039e57f66c456f1b66c5b07fc2bbc85410c86601d9ecbc6746bce214e1ba5c8dde31ba6f3920aff50e1fb23917f0ba6fd1bc024a9df00ac9d377593ca1b7f605945767d8caa0b1cfc48f669e83c64d5ba9a3928cfc97131b35f1fe87da69b7ecb63342b065157c8daf495bc08f2a2a7ea057d74a70c731956f6befb4e7b3d5a0ab0d2ec658065c1d18dc3e90b9c23db0ccbe443db9725415e67445ee414ba6282bb3665740be5e672ec1b0c4bfe4762f3dfae0b1fc8e7e485e34dcd6431707cca939d81ec5a97701b26e50903d7427a20b005a1709fe74a1440c7ee89c88cd0ddf5ba0cb4554c259797d544ddef2d0304c009ada70dcbe7b2cf4eba34e4adf841a96329f2b10657524af21afb374a34f3d94ef04be5705f0525f68982b6db3d1486e2f23dc707fe67e711d4e0979e6d29ee71f2db259b887183979f797517ee8935ef485ca5b3f43a1ccf90ad89dcc347bd1c2d6ba7b167ce9d3879e895c59e50d43355bd34731ff9eb03fa22d79995847d1f1e3c15cb3c1ea8fdc3a4f23059d0fe1fcb83f2632840a5adf94c366ffe3a226c5a1d992228fabdbb1bb59bfdfe157e3390d9d66efdefa1fbfcc041aca0630e28018b422c0d5afbd77e49516b3c97c58887ca6dd6e1e6231c3c7dd78209123fcae6f3d31c4b4f9f356b6ec6b0fe6895098fe5f9e5f958549b1e7c93357ee4911458edfdfdf9398d830238ff6086f1138695e9085b2fb6d602a45fd8938f4f61793e172d29396a94e7b9b01ecc7b9f233f4868675a4289aaac2708d4892728c94cc9d4160c1f0d3d5baa7811e4f8d78f25f9d888e52088663950a4f1391609a9b047d639ef021a882f13dc6b3a5223580fe40a9ce6b3317897e6bcba3f311db6fb2a2d2b9caa21783bb0d7be757fa6cfd986c363bd40d1bc9297dbb0aa08ed30c5a3ada21c894c383f787fbba20f3abc01daffa38e94e93a090963d4ffe91b9f30e719c6421da0dff892ca8543567fbe97019693c912733fcebf4712278b5ffabae3a6109346bf91340bdf6b708452297cce735b487e681de1861cd7227c82719c80a4aca37099d739656ff26f3ea292272eeff71148ded4364c544998e269f8fec74e34acbd5dc3b838c77e5fb4561f06250b435f9bb31f93db3785f189ce6f0b6b8d49508d03e184ccb2ad1b73907016a27119024f218993e6ef0661b2b03e2f7f66f4a4ca3e5d83962782603dca7fa4736bcb0a11af20bbbfab387bad3cc286061066b15f4a4952d25e32d9b228b0594156ef2a12c50e6eb8b8c4b86e7444e2de887859cb307c060eb69dbded832a3072aaf2aa4238574a1fb2e785908cdb44a297167ffd5d6f548c8315a2ccc7285227711e258960afd32241a7a197c8ec4cc9f8d02565d86c55c594bbb3b31d5006c76efffc4a3d74a95e667bee712128ef10322ab1a2abf230e5f1991977a36ff224daf19711d54a77cc6bd896ad4ce72b8af4d31598bb0b6fb635d021776a4286c62a0e7b9dfe5c9a445c72bcb22924f83914820c104fb30e386cfb6fec3c220dc7281599cbe7ee672507a6ecf687d070c643742262c5b6471b524dfb2a53278d99656078f4698ccd91641f4eeb9c45b02b5e62bc3a95511a02171aa4d14a6fdef18abaa7eec5a8d201a69eb2101042ac07ecbb06bf8aabd27eb4ca3de1828903ab142020371ce13be6fa6f602cc4086d0647ce09e038d57a1994f72a637cf24f19f1121b6a7ffce3d6d3e0306906b3c441f970607535cd3c403e6c65ca7d7f6ba6b9801d30b8cd3ce1380f055672319cb2a9eac4a9b6e7f9dd42a48a6cdca4708aadad440cc38e51c60c2125872745817d3946bb080f86f53937c250df4dfb63e7c58d883ca72678e2c40fa94edb7a372fc1db2255f7f7438be211c56a7f7290aafec641716a0b0d98fafb842e8a4a0f8db44b8d5f3c97401fe5a30ee765251a06a0a0189088efa3711f7168d9fc03f3d70f09c0c4bcccb81460bb7024cb8f2e63628a4aa81c2cf5e938810deff03d543435cb8fa5c69d1d92962b91700c2067d05b574f37e69bb206faef7ae47baa688a3707c6692100eb2a514a3feb84b62fbc84e8abf9ae73bd8e6c1c8e31345d81adeec35c20d364fee1d6d78aed38f14e5285586d4f2045389deb0089e5cb16d966d91c39c492b094911cc48d2c1b0ab9898319e115e977fb32930b991f21c9922c31aaef5a3ebf0699bcb7b318a3c69f8d4b003515898cbc5be4a3c12f86a18c2590ef2a8e28c53088e706c175f21c541d5c07980635db2f59ad637b0fc73b63370e131b4036220ed89436184c1f5fcf7bf05718858cc5974eb9f7495d7034e93542366b1ccaf6fd270693d36cf743a81bf1b19009af2810537ac1c8327e82b83ef18433ae885cce8d8709902ed030eb6ef42684b8da9a038b4a24e4a7328e2d31b3af49e94e297fb9a6195328b98d85007612fa3114d7204fde615951ca796fc91108fe0b1e14b86a04c20ae874b791fb50fabd16aea8f4ac7b56da685f6d4cdb731cc62462b201dcb1b60aee9699b8625ce855e2c061a3fb1a2abd3e5387a0d2439ce63a2f6ef4911f17963e586d2a54558272e6eebc187234f6c6a29425d164455e3587f038524ba10a8f2b6f0a158043c245408d8fc69dd2ad17f1b92554ba17fd7ec17d7442165ecb371f96abe312e66d7396f5a1f3cc1803c1b777ae8ba5ae56c68781eebeb2d3abcf55706296ec500492e289cd6cf288931c15a64359d249beb77bd0517243618b0bcda3376bf3e058cc911166d07aadcaec03453bd3b1996e44a7efe7a61348a37b9b421af1880a2c0295ce4d58c009bd843d37a7d4a7273382bc4288e7e03a8d1a68470af56f5d8753e289bd6bdb5939a64de259d2adc486d66630a6122097d3921d15c6204f65f754bd7a03886d317f7ffaceb9389513f44300c65df7d82595b229fa2dae713ef341b9f872fd12e2186b7f312852c94a86988e09a89b5b637bb86415b9f55e25106d2c9b93a065cb5a95078cb8649c384a509d342559dee140e2d2abe5f9219830f9534a977ecad0ee89c8ae557f18f1df3d5e9f1746d9abb3e8ea53d0019d7cd82b741079b6fd49ec39c7a88c430c23d9486763b973c8a30ad127aa7a66100d31d60ac1741795e0cf51fc68a8319150b55c5961f9af41f74bbbb4b69189096b3b9a687c90ba8c88fb4398059bb1227738e7be8d163a682e75d1274e5eeb6a4ce902289c59bbafa7cf06a996b4d9831924f8b3c4612e257722ffdc5cb8a9f7c42987622ce0957f60b795d045830fc90208436e59e57ffea9702ba9371b745b70f31ecc151c06e1248eefc665536ec177ecabfb6d7114192fc481447357f211fc7830bf287aa8c2f8d2f9df0973e1f43e417ed45a8350934ff4c57ece30e102b1fbea67aa3a5b773e35de05c6a728b4a79f0b957ccea02d732d4af44122fa97a3282cd707bf84ca0b0314a687232014a0f5303c663908e4140aee2a022d91c9095dcaf9dde3f316d4ef220f6787f9ac0d45d9bd0cd1a9e227a89566fc6976035e9c724577eaac54dfa870236e385275e05b6c93d7dfb02b505e62ed9db1f78bac3cbfc46dbc4453987eb64af564117e877b4791f07e7e50654c61f0a06da795be55af0ec7dcaea67504218349f2cb23abf4a4439ea46091141756ad7643c8988525170afcbec9db5e004d43e1379d6278a580c0056ea82b70c1b1f7ba15736343ef0498fababe9788434f9c47c7802d46c09b60ce345d6b53170cd24cba88defd586bb722dd4757f27867380ba837f4accdf620a1caa4d313eddeb28403f38ade5f792d25af5a24249bf103c32cc290d6b4dcd811e3b51d09e6f466ee6903662dfd9b61c359a157e3fbeb8e7c709bb39c1e96c20640b86ea1ea11655ba45dfcb08ff9f90efc7372645d5911942b30c8399dd433dfd26384eee364ef6a2653bc3483601104bba8c80121b0b2c8c51794cb70cd356b2d11a3532f2d7c12a15e2faf459051e2c5cc2951d82317c4244ab78f1886fff97a0f421e73e378fa604ce897347a45c7de0354bbaae81780e745892b46688822de8cacedb41e196db086bfdabde807c16198191d69fd7abdb7f79e04c88a1c910d405fe7da9fd51f0dda4a951f2e8bfdd887cdfad425c68daaf48f6736345563510a2e55ccbaebe03c8c2549b6823a514e73e15284f1788f365fb11fbd10439a415fd2d733fe3108d8a930a148ed0f49e8af19996aaaa10e04bec9f4bdf27e1a0e6fb47059f3e6d3037fd6415ff93d74301507db91779e2a09b6ef672d972387ba03dc754913b28660af92f60f683358e4036aa86aecbc7707dcc4d20a780eb3b99ffdc39b8369b3bbc009994e02c5adee4124558b8a2db62ef1de66a37919872b761d0748ff521593673852a8e61749d4c110264ed5648ee0cf6bd9c24253c723a87421cb54afe61582ef5abfbd62eddfecc2b2a332a07faab07073bce24563c6531ebb3b6ec7a6f0796932d2c17a69e6e8e67b28536eb8d189fcc74f6ac96d0238bba0e77dc29a330dd4f0a551676d75cbd7c209c2b8d69ed7a871942523264bd6953ff12f2b9029897c6f560711cbfa20a128883d291c6ceb685e18ff9020ee1adf691ad8adb665b9ef8a8e88e466dd3c1d71deb59093b246041940b29ab8c31e54005fdf5a759b220868d06466e5d95828809a76ed2ddf35334fb2a3e730e63cbe432d9be499853b233ee156a982e760946595000b2b12364cb50609f9b58c6d50a912091932087b84e464b382b4631906850561a909fd9e8bd36067294a7654892d5a9fb3fd2c3d0f122a90d7d7ef092e9992eb39a11a572cf57a7354f9fa70fc25259ba2ac1e54a98139a7223ece5af898e235626fcf9d456244aba25433aa5705c8d5c90f68fc22b86027cd54302a312184fe40cb71e27a9c3a48e47b359ce42dfb8ee15b99fd252b83279c17063c89efe4006266ca0b39ff9ad55b6513d8c4b586fd9e4c62e90975b3a0f82349e529ff02c1ec1e216a074789adda5d98e38cdab21ba5814bd0c81b258baa52733096d23e093521a20fd72a25dcc38f7beb271c61856d4056f8bb7d35088ddb3cb6c7349233320079adf7e17a1827cd1688a124324734898cabe66f5b3aed2ceec06735e4091c6d5fcb047963166c594078fd1c57dabdc7a7e44c254eb799b84487768902d084b6d965470621788ece25a003ce6b411811c6a12fdf13ca6902743297c4575561d9e814b7513ab2448157e426aa772e93609585f8a530e9b48573b344ab08e362da2700f6e03ab67938fd2a616ed43d3edf2fdbcfbebc4caed05d9d689fac10937a008bf89e9309a58fe867715a2d0d5e22e7f351611c556a9d8847c400d3e189e2fae81f417ed2ca129681708b152bce1ca2b1b585751f5eca39ed679a1b5d1d43ac943dc5eed619c1df4093872c4c80dd458f843d69fba91b7810a87a27e416e3bd7f7271ec03f377b00588a8ef1daf454b178713852df355f69a0ee54b1d38fc91ec022781ea8684c943a867e28a48b6579ef476dc352b445e8082def1b2be291090464492ea7fa8144300273bd1ce2994617398fd37684e0a4260b5daff67066c45f74ac01826408085d182612b030406b14c59885733f4ca78b04bfc0fc9c81654caac2b5151b6ff473da5a2bd57e7d370f631ca58226195adc6338cbdc2e6f0be7567deadcf812bf3ce82eec3725e178fea7275df18c9311c0c3fe0c697ed4d8c5a9c0aea2a9ecb995b29661519b6c7e0ba2b3c731d0629130c19a7c856cc963aff6eeeb6ea21feb3ff9f9b476693fce43265db5737b3bf73ab49f5cc3a9078e1841f516971ab41694c175c789b54d5b9c9b421e30f01cf9856fcbe7c6b46fb7aafba4de96a67957d92e568f64a119b6b14c6fb645159daac97fbd9595a6f2f086fc0b778714a9cff62914bfe2988c7b2caabe5a25da8e97c6d95c25fc3fe9c4ca084d7ef569bf6890d21e5300887a106a18bb523d7baeea339afc7b29c0929c23ac850d67f513334ca474c9f6780f5e40d1283824c7984f8565d7410c79003dc8024de8627908e2426fddf323713c96f5b8da779b314fe7c70b8ee6569d19398caafcfc301ec59fec5bb320e9068be19289ad4d3343ed57b208ac3054cacb2a3b298e84f4a9ac0b76fadd02b7f5847b0004b6be038a0f365d8fe60012510f1a59fed4654dd30e7a1b8c02871b510fced60cea5bdee3dc85489936cca9f40b45892a6e9e9f0bd5a606350ce2dc07807848f7dfb27267d6d5abf240b26f5b49a4a5ed1b2331ab5107be2ae7bdc09dffa3a29aa9946723699c4f7bae11c348019bce4579ab76c7b8c709f41e1d9e9f001ba3868e6cfc04c5cd04af13f0f2c042f9dd9fb388460faac3e731d7258c17ddc8e4b273d9d72bdc044f6572b35ec53c9a524dff574b8c40c5f4e49a742dbeecc26d8a4cf9a6f7842daccdcf4fb138698a477739401deb3d8512cd138437fbc3ef95649d0b6bb2b37edb77db7050c66a1761fe1cbc1619ce9afaf876e0af11694a3cb98b27ebabd9ae1ea6526feaa742b761bc440aa01ab7c72053a9b48cee8cfaacd866ba7c3140a23e2325eb8419da522ea255bf7573795f081f2cd562d897a70f3af84531f3370aca9ff1af97b930bae2b02a5db8906706861ef461aa91cffce0c9a3f68295e2acde36afbce87d36250799296b27a7ee840a0c93ab60afc3804a8bbfb216b67aa5ea405892e649843824ca3d77dc3c1d1828c72a0d190e232e00b9bdadefbc023f4af694d6c9c97df50014a714237237ac1d40f5ce39f83ee82bf222b3997723673ddd5145d7fe9fbef23c15f9dfd7e60b9c087618e7c685bbfbe74413652468e542a1b2f21b4636e529737f807ea47c41f5c1ce4c065fcbbd33682cb988a3302375e292f468513861d3cf4f8b837f802910d3a169afb42b2c52b29e8b9033f7afb659ea9c024cac9541c3561b1c41b63d65608f30d39c8c09b0639839c3b382345aab184268d6c2c5c99f85ffc8ac398203e4cdfd246ac66b0ac521a0f48ed57c4a2955cb68286120dd019352d6338cba9ec67f43d154b315600e3a3f52c4e13b0d6c3152795f1937d8fb881b712eda0aa8a80be9861d214c5a059cc95fbce1ac251c1c58e34eaae05cb2389e48b5e15b3a3d7893b96e5a8d6a36da2c13e7852754d1dd620b8aa46bceda599f7f06cb027b6a83df81791f5a6e69488016fb68ae3664b2fe5fd72d0e625a1e986cb1914d52d970d7bd82b33b63e4abbf0dce0b545596b809d75592367db2694e13e62a25cedbfe5482747f158c5a2f9d33063e2ee25802ba01d5f71df54f62be1ab300fe3ad48469dfd01f920dda314bd0080e9261f532e8c95d6afed8891a86acefded910f44f90ece6bd72034000e006ff6ad20ddee86cb54c08fd2eb1771d75f3f09437947abb13d4a19bbadce12805f3fd50f405b662efffc0c79d62246cc3fc587f851673e050a72cd7386df1afa2669fceb469fe51d4c00a2eebb4c2ca2e2347b77c652d4542e2a9aaa54df99a7f30614a5bc59aa1587b87fe5668276bfe67fe4cf805f03e2d5d568db1402460e0b3c0da12e9506545750828c78973a39792d3962a225a98ed32a742d199b08111f854abd742a3987e94132f79b8fe8109cb4f0f8773c80ba8b9b888ee67df6936680b3f0b91547b1715c21a8045e77b3cf47d3a7dc9e8d59aed5c719def3a0f43946d95e8cc193045b9ec3f6dc5fe02fefd18ba6c03d380261791238f9934ceaca1de6227f6c9592a71e981e00860e9ad4963c5dc1f656e6626c81f45442f2f16f659da0d9fee409e361ea32fadfd536180bb3568ba29106dfe65f97e509d05cda199dd294fccd022b48781667a1abcaebffb9c8cec67b26d83b0694842d6beccc574159db9e1a241628510ee2e90354bff8ac3a7d72e8c25dd24b705a3ea82b104479f25a59c89d159a6079e1407aa7506a74bb60c23853ab7e977c30f033bed027b792f7d13c3dc57f85ba0f622a8f6a64851a6c3dd1999b8d37e4528db5750bd0aac2f17e4f1ae4f4df810ba07e348fbec8c2e30a6fb4e82a9128b217de473362e56c11b78d2c29f6de7cd7b3fd27684de0bf972e1cb1b0b5668d42099f370dfa6d5293cf863b29b4289195781a02ec861b5e10cf72fb283e30de57141c904c3363275c403eb012ec57069b70c8136092764a1352bc4e1492872eca217a5db4096f02c34f9fedd0074cf86bcfccf452887e48448af3d69ac1c64bd5dbbd6a49951d6a5ca4652e7981264febae7cb6fc32bd15870c5d537c0b438445b3ee7477299d889a11014aa7380ddd7518df51e0fb2a955efbbffa0e244d00451dcd7d29c5ebb02e66ebfce37ef56bc543ff67dd3fb5fa327c9aa45c24c743ec8c29aee76652ec838f860f831e76d508b7ff80d686993d9f31cb47be7a25522ceecb96d01acf2e391f8dbbcfdd28b2698df5db557626b1f50833a277fd4b4eed8eed50700f53f5e58ff5bdf7133325b369d91e88c8efc91ea45e2fd3a5a4f5985d9a2fe0cf385abd14c63c1c160055889c5294517e9e3bf86324071e7b7cdb2f8027b2bc53f6a0f853965562c64ef35ff69388926eed3f303c7cfaa918f4432f1a0041d2f946929f26b922a6ca1c353723c06275fa06735853653c0d3e35e5a724e85c347356838aeb9d6937274e46a8c6bf6d0b1a0c67abc95d4f9559ac4299f755b52a8b299e9252fee43a755a0aa2a8a5a042f6a3f0b45bafb091b852e1abad9f4112ead9af807adac203c1653ca6686e5294a3ad1af7a69cb1cc59e105df46757da30784713c0b1d1dc5e7e991e9cbcb7c6df0cf33b9a922695d7cdbf298b351f851343f97df6b5dd8fd890dc0484b24b5e522ee3f295ac528de074004c0e00997c03ac9b22ecc23026872dc54d704341d469482f3a0f7c0eca7d68bf13e7a4378cd6232d39c418130780747b90ddf6c2ea2a281e640f8430ea06e22e36409e93eb46bad18c9884bfdc40ff7cdb652ff5fc1557bd034038ab5c448e14c62ff479672b8ae0f1e35e4d52d9a6ef80f5a8c553fd164d3f9d43811375c130f5b19754754df2d34d337035412244a7632b5c39fa200385d6e7b0d444621bd75e875968e9af94b93dd50abd731e405d08bf27fb31e9769ddcf2b745133302b120feaaece2afd56c229576cb88f8cccfc6045fc123c8956b7a7fa448d971bbee480fc5c0203709b37fb05f63c3530e5ad19de76cabec2e041b03c399f6ff7ff4fe6a137b5030b1c8b650a22e5af72d85d0cc337db3bc7268e9fecfa0a896eca40d37b6c2e64bb6f9fe83523553dc501c0672cd16ddc06b3d64ed79ebfcd32136f556eacfa8adfcf170853dbd52a0659830b0b2c989e005c4065e7290101d9431054ce99f696966302e8b2ad08064e47ce1ad463de2a3160db534b9aaf951fef5431e6d9890b5cb0c6962362de9411c09b8c43f9b67fb07b0739a92834e19abec5c5605b1a9e01200be671397f8734eaa4c5bacf4d510e4100ff4f3f51c13715f7b650982bfd9410ebb82d6df357fb76c7d9c599ff59a2c875b9710d8dc19102791722f702cb9463bef9b2b211265167acf2dc25e6051472ece6c09bcee6520e6d0a187a1c1c96e0a5ec0581a0b2bf3aa09fe9dfe6592898721c62a8c9c103ef79b5a07adc10c066cb8a0db133a1ead91af6ca164f4d1fa3a524e42744a4c8979829250667b6066b231f273a80f1e588c70f6f38e279d207c0885fa7d08f156356d261765bd33df807a260c5763810263c04af9d012e6f83138cd38d4b2e40b838dd07359d27c62e690d3e446c1806312c615bf89eda23256078d7892b697b6555e4bcfca55e8fb86e008218999bf2d6a7f29f4b6762a34beaeb6816ebc0c2516830298ddc72e6c77e706706a2a8a7b890b5c538dc7bf55414cdd25ed51f97524992d10a39c220a4ef93efdc8281536aa75fd1633d917b70ef067243123fe5d121de014e63b646880478676c5419d47b673306083d91cd9fda2b4cf2b861dd4f7df141c13dc979ed42be27726d768e329087c25f896c7c423f9ac51f696c376f1d27c26c65b1bbf8a8ec7dd743daf8a3ad502a34357c3796f405cfea4050bda0ef178121c965ad2bd7b0ef2ff74a25e81e94572bdd2d44908cc67c0b93ea9f50259daedf8abb40ab2d124659902cb7ff7ab4dd2cf8ff1c43380b95947955b443a2d3b2a4303ab02e9bcd64e5a470d0553f3cdd6d1d8a3ce13c24927198cbcde1df19291045359b963d7f184e79087933d240cf731431df337822088a98c3b21f14ee56fb02aa4c45ec50d05b4e1724e281cbeee264b0fb03d33ffc2c535ab325e5230f817ad973f0b255ff2794eda0682365a7bbafb4adc322d808635e2053fa5a2b98ecca624cc509ea0f3f67bdf648e80a7a40e4659976ea8f14cb49e3978bd81595fad2540f7b0553a5e7743065850dd66bd0b8e6aeb5a45a8a09e668c683326c591cfe2f3aba03ebb95bd95a45881a994ef2ab9cc672f2af4690c9818fa2dfc20a9b594af8d2a9812876518671c0e8505fd4ef19d37263bd929c2d0ace6cfad6af8eb572059f9b6169599bc1cabcace1150b287405a737f280dbe7d36bd0c8247f6a70c4c8fc3d104a66df215d0b9f38562875a5ba324eec7f4c16be785e2254e6ac61cc725f6c586d40881c5d03fe3848e2e842f7492baaa8aaa63aa2fdc433dfa14f09823864d108783380b8eae6f99db1eb3c68e9058e3b3235d4bd736c73ad230d4cab2cc52cc3e946d3541f7f96f1ce7841500973af23140b2a4f318f08fd704881f30edb346a3e86281f0ead898e2d09cf09a40f220d603639e964c1345495a15b5820ec5c52c97ee0bbd025303d1323ad353b78dbd271a598496f290aec5ac8fedb2df336234d8757809bfafe70c0b97f0154e8e78da94826e6c7beb8cef1ae903a671bb9db04ca83619301cf03e35640ae1b2288ef91894a9848ef1554863aa5f593426a50a290c2fe8ce2cd0e57aae9bd52cb7fbd19e241d915ea9b86cac44e38b2dc7952dbbb9b5838dc0c719f487fae9b1d6ad20f3158c2806c00d879afd2f1203fd42140814d42dcfd6944fe20564d20c7d1b6080cd9c8a5318ca9fc1bc691ab598c5c3dbaa219653030f9034872909c76493ad9015b8cb867aa5fa21f261429760854cb08b554c1b3d9333e483432fff9a02c6b2c0f2f1e2efbe6d54826fce2dbaf20168734c63a672b37fd812ca4f2d8aa652a394776ab73809388b3bcc20f0f311ff35cdc3d5518d45bb6da8b28353a86bb12df4ebeaeb916b4cb6cc45aba9aeada06297505b362d4f9fcca274097d4d6ca26f4be0eaaf771c9d2ab87e7f5d45f987ed09408ff0a39cb40a1159a6ca40c1305edfe169507ee274d98ebd594fb16c356d432f18e6cba9e7fa9b9661e1ccad1b085dea69abeef6e8902a4feda6139f31c05a6cc50927ceed00b0de4b5dbc0d108b62e9a31d4b81937492b676cd00bfefe61d90bcd23852b4e9d676598ad0f9d6004c92714e058836b820579c91e5fb7efff123167f096fdc5e964b1a7af3bc3d16cef1c0cab8da4d746cf239c550e3f87c7df67541295b447f05c304634f4b752a0bd84696663b835e806b0eaf2a02645eb238f87d6b4e4afde6178dd03dc554288e234e57b2cfe4d2fdf7ffcac4935519e6649e701c91ef675b1ad62c0bed1e0a65bd3e5507bf7cf58169a03d5291c91c8c8696b3759cf2187cde5d59b5c0f80311bcdc409baf2d0d934e4e87c11065f0d72f4457c17eef62052544ae5e21760702f8746c895a422412aa185be5be711ec2183b981dd330d4bec60882f56c2b0656b1a0fdb3405397c6198aa68850c3c67a52e84f6392d9ad153b4d8a436512a35548c4195f7cc755e1681dfc0e0157ccd35ed14f0a0341074a44c00ea3edf7cb6fa1e8741b57a2b16b8a91117690a3f4380c86eb0ef10b65998e37e24b07e61549d358816c0378fd3c75ae1554789a2c759b4ae8037fe5739194b881aa2a4982a0cc590f4fb3a76cfd3b9ad6fa74231d8e5abf96a3f9dc05867adc71f2408813ee0a4e73e14e7772c31b439b1944d0ab2a9a585f9c298824a248d25e69f515d3d689bba1281f5016fe9712b2f1d864f87e32166bb9800cf2fb2bbec9d21680657ed4a0cd8e8ccb99692f5f475ad299d1c340f6c322ebcfc6de415c9025b51b6ab5d08352a41c66a810a05302582d088778388b13b5453886ccd9ca2480ee250bb01d7d4b573323163c58cb804455a7fbb3a4d176c0be1b916c57068e6c19c9984c60c7769dd37d3f493fe7a264cd6ee062ef5a9e7e1a02f291db4eb9e45aa5d38dceaa8e745f1a3bf7d9a82c7873b1fa86257537e61e10cf5c72763999e63c201181e9b27756342f3e554c2228db26e8d0cd22df5f43173f5d06b3cbcc3beba97e73283627a3094564a9c5c3709319589e42449013798bafabe0aef526912a9e82cd3cda59bd036c70e6c74d862fc450c7a49e2334689cf20440e358e235bc1b93b083d75c0c18303990a6d1b7b5c41dc421446e9b09cf4f18fa04ac635b42d7beb152930f30bb792c4cb1c955f1aeac84501f73d9c3e214d522f7e10e722342d5872b7004b59ced5639d6eed5e1077fc586d5c417083fa1750ef41fda2a80cba53a02832c5480232de4d51ec0d8a39a87685f365f75f16efd3ec26d6dc0f4fa8264efe3b6b01fb2647ead2e78a746b2a20132cd6c87aa9b09570dccf6efd5abfbf0b41d8ba858dc6efdfb279c73720e4325243d1fc0cbc1238b75804607e4242c84e355792455ae3c14536d550dc03f2a4eec445babd5640d93c0171063f77929b89a87e1ab6085e8c3042ae679bcbe940104a00c2587efae4939c98a3dcf55755198f50c45c7152a3bd640f364822be2ccc305b55a3d21e9271a36dfd7fb854be689fa0999a0aef695886abf5f3d5ed8ea552e8b86ca0bcb4c4ad937cf8cec4718da95e9a388fc589ed1ee1fc77e62a0d26ae69051a8488d57154649b6356245a6133055435a6717d828ad80ce15b449b9c801bd9dee14901ac76e8049e46daa1b3f097da02df30cbb89bba3200f8bce65045d67e9aa9f60eb4aeb3fc6afb7c914a37186cc3ea6751be2f275342147d177db3fe03f6a191fed0470230696776660e712f04d367faec95cb4192e1f6b0ae719b68f3a908704cb86226e9a75b69249051ea60d8ef2a89d9356bc22319da2da2ce48dbb869b1d39c470845fc422c28c85b82c87b9bd14594083c41681c84e19b8cd3e112e7647ab8ea79146d057d4d920776d6b82ddb7ba08ce22fd770d39afeb1af40406c91e67a70d7c306f725e956fe0ead215907ae172c20d5f9f13e84d48053ece1b8ae3ff19d0103c7d53855781cdfdcc1e823840174a5c10410213ff31c52f28c61428e3a68294210b61a3af5827ae0dc3199b63f19044b6f19f86f12a27940c272a0f7815ef946c02c26701ff83eb972e9e78a24ded9dd977f5b7110ac8ed9c08aee828edb92326d9dca32974cabe31c28815ac582d8095b50e62a0b5af06491d111d44ac7985cc5d98de3e04785ed2f27723795d652698c087d0f636ecac83b1484ee7dd4bafd6a63734dd34c76905a5cb7196c59c75ad3ea086b6471a45141fc9749ced5b77c6eda4c3b24fdc35cce978aa90288097323990faf0eb1b884ea334a968552cfdae5f0697b42cd66d6961971fbdf85674275b0611567eacb45212a1b53632788efba06b5c4230b12061b5ffeab7b9d75a79cf5efd5881c80b6b1c1b3a98a3bda343511d0f6ef2e87c0eeaa1000ed888f5c0a4c0b28fdc81a9fe0736283d1a9dbc6b7153b759efe7842f0c16afd9e9753b2686a7569a77a6c1e94bcbcc2ca7028bc4299c93e0131cbae0ab02e17c9b28f2d6438a718a335ccb61e7a4ab5430f547b4189c74d822c99cf71f51f64701b2b9de394d2a6b9b0818112bab11afd03ef9ce30fd4c9370e60ed3dcd829a3f213dcd22698a9e985de1eb3e215db57f0e40cd3868ab0a8b4d5036698347ac76da5265ada42768f37998231663bdb9c9adfa822cd038ba4f325625bcaed2d0d5ef02b2d9d4cfbcdc8e865c0a8907a070658e167aa509f59e64a01cf59df3911f61bc063e53f715ff31965c3d4a7ec0dcad5322e09372fb48adf332c3dc742114b5c1db845fa53801ef914ad7f070ed9a07218c1fdaf47404e5ec38847d8c0356514dc2059f7ac7b1b75433e0742616b860fe581288b8c3e96a803071564608bcb8abb8deea331f317037e0dd34f18b3825471f1ffb2c978f5559bf4047230fb2a0ed1f9eebcd2d68490ed686ac58dc96c71abf1a9de6719064b4831fcb3ebece694b06222572005ed0e8a68b0f29ff819908d06349ec18620aa1b0a2e49e0d00b196a9fd1d501abad2f2497dad461ff32a444bb34a500a3c7fa74102663dd1a758d986bd8a73cbd6263399b9fc0bee4d6b4419e2ba227c97616872bf3a8cfd8f8b1fb24efe843067b4e891642730515e0bf2494c89d06ecdbb028000d942d07a0b569c65685e3ce85887432cf1645d6d0531c918fca386020807babce84310dd8bfb56edcb37418d900cadd1d190e7bc584ff36866a998c4ae1135c3e48e75df46fc91d42ae1b148cb81c14508126ba403696c763228b6a9874d6dc0cd30e872381cc77a42d566b12718fadfe79d24b62c7257cdb8acf8a8c58b215529eb7f448bd07fdf04156a44598d38582e8f6078e7633c837f12494f21821d92d65b03b7e0afa6f50ef6e03ca7f056ba011c817c27e48ed630a28f3313f9a825e6ab0b7c592d00faf9d25999b7b7e65fd0bd9dcece3a90530323435fd9f1fd685d70432d3a59eb4e969bedaaa0bb2f43d63ce24655513b2d5ea38ebae521ebb81597693bdf8407c7331fe62bf84cfaa33cb23457cce4de71663fd28f2680bcc0e23f51e0b74e4424ea828895f30dbf90c8ab1b7fe88bddbe0a45d2bee5415edaffcfd8a0d8a515cafb196a21b9ab67a442a2ff307261e0439dc3a807eaedd6d93a82e66242b7d07372895c4838fe334c5c75042a4efd6c135764771e80c5dd6879b5ab422ec9d19320d8d773765d17801d1175746a207d7318504d75c1a015d2d53292fa4f4f91324220cba00a32415879fc36cd8b78aa0ce10d130c97a5f031d49e687fee755fc73e655eb5dee2c4d6973fcbe66fde4e900d134ada1c6f0845759c5bc365ce82290aeb728b88c33ea0df4feeb015fc9f8bb50d519fabefbe62c1c646e397174fe1bbf660beb5ba028dfc384bc3ba82eeaaa7b689764565a2b99c20e5f7c52fff54676e9e54e6e5bce100904228cffc44d5eb2dcb7c8fb7504f42bf11fb54151eccf5bb91082a395ca26991721ace7c39b905ea79e66e997179ca789c34b37df1ef45752a4de647a82abcbd26373bffcda87a3615c2fe981facbb2512893a9a4e453e93de39568593a8b40943e7441ad5e4cdf3f770e683b54cd8920abe962c250b02b21978f39334671cfea5077a278ea3473014cb0e89b2a6c43dac9b17670be1ce8d090253beece41788d981effe9638fa09ae8c41f7d5d72c6c25818f62f75a0910a7bef8707e0b6e52a2d5398098ab30393d308f6c4998179c2d871a614c22169eb9f1c8ebfced21e4700d1f9972165e04fb5455a1575c23fe4343796b5ea7d1fc72ba1f686c6b1a95c0afb13abe9614d68839aff6a8ad90fa4051af1458b153fba0e4c55b1dce9f7ebef4b71db158326f3359dc6dafe133a3030cb63ea5335be2543b8b05c49ce036144bd6678f693e60248a8a49ac80324d124f9b4d69c3d07673326ff1065c6cf02aacfd6f600b3ba5de6afb883ff95e80f62fecc38f1fb8f14f5c0440ae2d4612fcc9995668dc5f491e370346ad26c951dec82b42ab36544190f1fe986d40ceece602814283502997e36fdfb92440f030b50b67612786f0189485725c7359328a37e74fb1672aa5e17a94066f1974a55eee2324f62236ed86cd2256905075cdc4fddf811709508aaf5965dce0a112a6566191d4d68bae3339d3d20dfba1653db3666759274bac2d32203441b3b13f768f262f01817e2806fbf3696e8694ad0a9aa2d3c3d2d183da6530e70092b2741b89f2eddd47ad9d80dd39340f52577a33e19c54b5296f9644eca75d5494ae16c01396b84510627377f9b588b7edb8dde685a6e10211ba3d90bfbb7786ebda6d4755e959d1e1b35a7e36b2b53eb792b15bd9e22ce82283545ef855e1f3c272ed5ab52e2d8869f7e0421c094f42d67aa3725aa80363462b90b688c696113e22972cdaddc36211d008cf863519783532f7fba92f0b27e84e94dc4b9289f50b31c2bde20009672fad768ce91089427ee35b905650e975fa2c3db8acb44c2970c45c630dfb6bfcc3117f5225ad77451badf5077a90b510347d84def9c3aa4e8f1306901e51e3a4bb223fc03d45006561dfd93c59f45ecfa0f55e9a6180da60ce629407cfee6eac8d04a8d62ac305ab035451b2f8adea76eee109e62f258cfb164ce16e290289a04e7b70079f9f965011778965dcd3e584b25426dff7d4640f3a95aab7f909e1a2f361f481acbcd4c0d29bc672e896d60eee5402aeeee8c97a2f9342a43a66e0a5cda63ca7562a1853e7dd15ceaea06b90f6a36879e9e1033eb21434708b39e81bd8f273fdf1a9d0eea170d33982f08e2fb51cb54b61a6585239599f7b6528651257a4a3f3fa2e110658b12dd04d960d39464341d4d70be9ee6097ef51600033de1cb769b6c40e836df6107ae1cc9a701f55887eed17c7f25e8cadd114b2f3c3f463ad0895a13d11b8c90235498fff89e8d94d5e7c60863cf0fddabaf2fd0c798a614c8817d234951c06d70d19a8d7497ae3a90e67afe97d335122ddda64b7c25ba49c60173c01ad81fac93f152a8fa9a0ade3d81b569ff1e22c4dc10b854944adf0e48c7745edd17d7200199002090eb040364bbbe4b0a79afb798d5c33c6e92174cec5f114bb7b35f78fb05df7cecd6874a4aad3c4b43fa03cad4f148d4aa0c1a53da0e92f1e26d8d70c92678a3ad674abc3edf3526e1dc9b02f0ed0554af9e34d8c529a583aff45edde34379c9cbd1acf263a13d4c2734a21809aabd35d23b2cedab1cb1d549b07aaff37284d91d7440f825899136454946734ee071dab4e59b243b2777c7ed40c9872e36e2ec1116c80e53172828eb9ee2a126e32e2ddf851475b4c859e0aed581bfa3bdf406e606fb27124cf62d3f18190ecf9ccbe6aac4074896067f191eaf848a063e3618378a613a2b51f950379731a5b8a05ce7d962f277e1bdec95e7d711a58871d8383b4761d42bb9208036efd0cb3a478ea48e9e8b027fc637e85b2a9b28cc8138823d6a5b5fd955045d9c4d483ea50372aeb9d9772d8ecf57f6e043950ef57c224a21c6633373cffd474439f8f8b5d8540a3e426a00c291aa9ee847f4161426d273ed81755d96549f7ac5a357c02a34ccb634e081a1861859b93ee0a63230e562cb92dc9c3f6022c9d99b2f50430bbab21204708d1f7b28b70e5cc38cbf85153954f4170751adc9d05e1acd1b6fd3abe4cc61ce22eca1c61ade6d50a9f1530c1f6a0816d40fba603205f5cda182e9359530259fe810feb011b39f9cdc806cd2a3a4bb5453c404f8eea2d7a52b40199c46609ed56047f82f9c3ff5b82a0bbb7fe744f93d6b830a6d1dd89fa0e9b09207a012a615a50ac781da7a4fc4bfc0728228ecd7a42face03d47f29c6016bfc96ec07ee14645580f62086dd6ca86208c2e08c81937c654372bfe7b06f12a99a4da1f927f03b81e0ecc8abd9a552bfc3b3700d0aa8932582998ac7e28ec95ccf83ccd28e99470db6df817f55d7791110f5543d0e919451be5937aeb3474ce36e328f9bb9911abe24aa022e20dec8d382e1cb1b04a6fbd732b1b282dad62655dda9bb4ef5b8a46541aa5356c552252a5b46e330702a18d1a8f5c93d16be93de3ee64266d5a046b0f02ed0e3a63bd3167211da61abfcccea857ff1758ec9b2738acdb6633fdc2633515be9fd8927257459682e8691e1cc631afff50153bd57453511850d576036de2aef1e0433a69356888a5d3d0100aa2154a7f4625ec58299d49c4d7a54ec21499d591ffe2148cbda77596d21544a260c6115319396b470c7b46e550d9db365f33b0ab3c0e6b74c73f0f9489a3cc08d0dbfb2415d207add3d4ccd510d30334bdcc17d797555766cafbd384e5757a63e44018e9ec54198ef647b1e9a8aed7b26c1a270db85d5903b6d5282f459ae2c5f662f890a52f090ebd8dc1dd3d5c54b7d30d32e4c7cac90f67a0915b89dfab03e9944c252b0dc8765304840da87761c9f75d65bc1282c7468cf8df6e0bf6d5442549d3d538b81be946570210913cec25acb2999ceea745d192afefc67d9e63edf05e7c99fd43970a9bd54fedac9182017a31e0465821735b71b74f2675da57ea533a5e72e75331bf52240dd2f3756e791fe966d38040d6c344feffadc6fdd197326e6c2126e856229f80e464c461b0b9e5ac17c1710a6234543969693775a1bc6a4b41f6608029b3b4e3fdef4e21efd586c4dd9fa4f158be51fd8cb0ba20764afffa2d3dbe91d19c986c179fefe8c5d49980dd11e32d58d4a1085201653abf69eea09357e9636cbdd058fea6c00177d1719fbb7c4eb70178acecd9b9db07877f2397c7ab5d671e7720c4be7d7e166975de747c4eddc7818b629e6142ea2a2c7a424d0d4edd35486d1dd23630d646a896288bb10474ddeb72c186e2b1e9334bdab2ba8711a7cb41dd7276350409760aa8e36590885319a0d2031ddc093a63371ff02919724b9a83c458f4ced7d739a1d58e1441f0e41f948555dfa7451f89f940830f4fedd70d3fe7c7a3a038e3f38218a813294a3681df59862aa8528492f2b2d0105790b3368b1e09f7061a42b70f1786f9da145b9fa2af44abdb396eee0ddea1278ff8a9993dbb9666f68649a6dca0f5rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpostgresql17-17.7-150600.13.19.1.src.rpmpostgresql-docs-implementationpostgresql17-docs     postgresql-docs-noarchrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)173.0.4-14.6.0-14.0-15.2-14.14.3iivh@hhh@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.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- Use %product_libs_llvm_ver to determine the LLVM version. - Remove conditionals for obsolete PostgreSQL releases.- Update to 17.7: * https://www.postgresql.org/about/news/p-3171/ * https://www.postgresql.org/docs/release/17.7/ * 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.- Sync spec file with version 18.- switch library to pg 18- Update to 17.6 * https://www.postgresql.org/about/news/postgresql-176-1610-1514-1419-1322-and-18-beta-3-released-3118/ * https://www.postgresql.org/docs/release/17.6/ 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)- 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.htmlh01-ch4c 1764600507  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~17.7-150600.13.19.117.7-150600.13.19.1postgresql17htmlacronyms.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-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-matrix.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-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-monitoring.htmllogical-replication-publication.htmllogical-replication-quick-setup.htmllogical-replication-restrictions.htmllogical-replication-row-filter.htmllogical-replication-security.htmllogical-replication-subscription.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.htmloid2name.htmloverview.htmlpageinspect.htmlpagelayout.svgparallel-plans.htmlparallel-query.htmlparallel-safety.htmlparser-stage.htmlpasswordcheck.htmlperformance-tips.htmlperm-functions.htmlpgarchivecleanup.htmlpgbench.htmlpgbuffercache.htmlpgcrypto.htmlpgfreespacemap.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-17-1.htmlrelease-17-2.htmlrelease-17-3.htmlrelease-17-4.htmlrelease-17-5.htmlrelease-17-6.htmlrelease-17-7.htmlrelease-17.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-autovacuum.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-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-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.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.3pg17.gzSPI_commit_and_chain.3pg17.gzSPI_connect.3pg17.gzSPI_connect_ext.3pg17.gzSPI_copytuple.3pg17.gzSPI_cursor_close.3pg17.gzSPI_cursor_fetch.3pg17.gzSPI_cursor_find.3pg17.gzSPI_cursor_move.3pg17.gzSPI_cursor_open.3pg17.gzSPI_cursor_open_with_args.3pg17.gzSPI_cursor_open_with_paramlist.3pg17.gzSPI_cursor_parse_open.3pg17.gzSPI_exec.3pg17.gzSPI_execp.3pg17.gzSPI_execute.3pg17.gzSPI_execute_extended.3pg17.gzSPI_execute_plan.3pg17.gzSPI_execute_plan_extended.3pg17.gzSPI_execute_plan_with_paramlist.3pg17.gzSPI_execute_with_args.3pg17.gzSPI_finish.3pg17.gzSPI_fname.3pg17.gzSPI_fnumber.3pg17.gzSPI_freeplan.3pg17.gzSPI_freetuple.3pg17.gzSPI_freetuptable.3pg17.gzSPI_getargcount.3pg17.gzSPI_getargtypeid.3pg17.gzSPI_getbinval.3pg17.gzSPI_getnspname.3pg17.gzSPI_getrelname.3pg17.gzSPI_gettype.3pg17.gzSPI_gettypeid.3pg17.gzSPI_getvalue.3pg17.gzSPI_is_cursor_plan.3pg17.gzSPI_keepplan.3pg17.gzSPI_modifytuple.3pg17.gzSPI_palloc.3pg17.gzSPI_pfree.3pg17.gzSPI_prepare.3pg17.gzSPI_prepare_cursor.3pg17.gzSPI_prepare_extended.3pg17.gzSPI_prepare_params.3pg17.gzSPI_register_relation.3pg17.gzSPI_register_trigger_data.3pg17.gzSPI_repalloc.3pg17.gzSPI_result_code_string.3pg17.gzSPI_returntuple.3pg17.gzSPI_rollback.3pg17.gzSPI_rollback_and_chain.3pg17.gzSPI_saveplan.3pg17.gzSPI_scroll_cursor_fetch.3pg17.gzSPI_scroll_cursor_move.3pg17.gzSPI_start_transaction.3pg17.gzSPI_unregister_relation.3pg17.gzdblink.3pg17.gzdblink_build_sql_delete.3pg17.gzdblink_build_sql_insert.3pg17.gzdblink_build_sql_update.3pg17.gzdblink_cancel_query.3pg17.gzdblink_close.3pg17.gzdblink_connect.3pg17.gzdblink_connect_u.3pg17.gzdblink_disconnect.3pg17.gzdblink_error_message.3pg17.gzdblink_exec.3pg17.gzdblink_fetch.3pg17.gzdblink_get_connections.3pg17.gzdblink_get_notify.3pg17.gzdblink_get_pkey.3pg17.gzdblink_get_result.3pg17.gzdblink_is_busy.3pg17.gzdblink_open.3pg17.gzdblink_send_query.3pg17.gz/usr/share/doc/packages//usr/share/doc/packages/postgresql17//usr/share/doc/packages/postgresql17/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/20eca6675e7ba8755f344a5aa9d3eb7e-postgresql17.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) ;f!-putf-8a9a2d34b0992102da736862bdfc5d347236eeb4450be34bd211ef3f73d3b6093?P7zXZ !t/']"k%n凛0#J:fW3sO`D<Vr%mo%E'B{|ԋ]NS5F|ݷP"uOgۯZh>]t B^/L_ˬ r; #˄hȠҙGPee%a->pG!;-Gg{Cif=-3nmH`H31Qz/0Bl ymd8"_c_c,o7T5JZ⛛-YgUVa2"4o\"83Y*[tz 7៫T/ۅ)Q\W%ؕ @ ʣEN3qH/FiR 6]N-.(aymPW۟IuH-_/WecY%˾RR;EXO̪s>a[]ZH|>|Z@RB,tct~M6⫴Uy̺(BAg.jQ&\+{Z+(2oIM\[KCڍ'! VtSi¯Z}%0 K/(]]„.CŰ>A- TVFv4(XDE؄lwΐd>r%rRúL9 ~Ga_gumQ~/cTF9"6\CT%Z0~6 8=V=Ju`.dq>#Im"t)w&OLeP|LƜG{Dw14>%eЛI4Wd+ S4_NqSB 7!5|6^)^eߎL6}ݫ(fHblu]3|>h^,yia)m$f^qi g[s'V]D3BF2%/]O;kPZ7^/[uXUŗ~*(fQf=oW64(ƗAN0g)My[jC"q tY1v3}}yTrևGb0G\Fӫ}c\W7$WLaxT'I.gs,J^ͫ?ie Q&^l7D~̸HC{qx1to:OFWC?@S^yZ\ZwL<%DAXj\=qpöJ04vgm=ݣd=`iKdb=Κ3 f񅴊_5[XP]Q[LK:^SfwwhPg%(נzݼ?|e"gI3OW lE/M=h`9|H;6ն8/MFOJ/as|NV˹Kᩧ-:w"X!<=آC%"1Z|ѢYў[PCn!u&L%7Av\ׁKR41$KYIrG\AhUjJp-0k#Wp S}z2vY5Ix :7<\o) S41ʰO׹~*xz7X;= H{~+K/SJ_t1+<;%b rӹ1%N?,`Z%CV P@TDVcŔaR;"M>NKwnϠ8Ѩqk9N®VyIV)~<ƩEl`'\]3}²!|v"hY9_ˊ,a~y)nd Xc*rwK}0/j8^rm ~ ,.0?6=de-K?ɇ$19XTFY+9N/`4aMò\$ogg% bk?OZӍl,(4$-g'fx0wvt;^5kRc *eI4SdM&I2qɻ 7 SF $)cSc_9kc}LbmBYwG4U5qm8 td^jUiFZxsҜ齊 <;Sq %~a@pwSFB9ٺ6?\p@K }ި8鮐$9> wHN4L'}z1J jxUepn(HF_T*Ol|`Hx kT"1"F͑etq6#WusRD4Niy1@nЬ-8C*}=ךK'YumẸ~AŽZQ~󓃿N<4>zTeop 2PEYYox/rٍ;Dam{(GV4lzT\fc蟍Y jRy&zᲹ<췠"3_a#/t0DC0;$M|FS>%aӸ7=CZtmb8HAI)c#5 W<` .f*e$`/+ )nVN;rP DTtS9ai_0'Lы5BSԯ9d>JayCMQP~>YFftTJEV9-X'~`^R@ cÃvLMW{Y LHY( i@+R(WU O&57rݕ՗P)y fWILl{.@ҁZ+&ħ QzK C8oݒTRsm24sǍ ,S`8Q cGgG}O?sX}hv04z@n9<קa,Hg;۩2)e~d~Tx=ډt3l};wf 7bzѐX]ex9x>*\+4y2F>s&l*@y6;cX@i柶:1Zc GBU~xPUd?ԈE[G$h\|Бݘc`;V1');qv)oaAe(Lkguz-jq~HN^N>/.;*S )PԟO1|E./>Ҕcd~[MnbǩP FjrK4pc{9 2>~SlO# V##sx)Űޝ$<Ӈ}D,GU$Жa4.z+FgfMw6aqjgH'ǷEV2%u|QaS4&U-N}Bv>FGGbK4l)DbȜW6~3iɑtj`L> q)yq7`HoL>"I"IHgdD4ZA nN<wdʷ *Oj('o?v6~ks<ԥ'e#S=p1 ƊcZ?24Z]8&Bšׁ#7vM3Hb= '/eV-SEU&lA䦔L#W6Y@N_jajT8fk߿Sۅ|%$9.)2BǑd|v(,(% ?U!i z^w3$U0^1Og  YZ