clang15-devel-15.0.7-150500.4.11.1<>,fp9|9[FwIE 9>.֦cBuMBݽ?7})艓UT5,v: LX/1B8YT?aG=aP&Lbc ~e-L@?Tb=jL"uҜ CQTو\Lo6':y`Wb׋+{]]\he@_UTʊv yJ** 0Bkb!p'?Xގ?vZ$9V|;V:!S!NI>Cs ?sd % M 0Pflt ` V L %8 س     (89:%>@FGHIXY\]^E<bLcMldMeMfMlMuN vY wZxfyrzrrrrs Cclang15-devel15.0.7150500.4.11.1CLANG frontend for LLVM (devel package)This package contains the clang (C language) frontend for LLVM. (development files)fh03-ch2b"LXSUSE Linux Enterprise 15SUSE LLC Apache-2.0 WITH LLVM-exception AND NCSAhttps://www.suse.com/Development/Libraries/C and C++https://www.llvm.org/linuxx86_64`l>5RV6{Wy YWsa  Xd '\aU. y/(/%ktt,290  ?3X ':J' cv!{:"BodB (# & z Zx# <pD>Q 1c4P%= rQR[pGV/,$N> 3=# |*F  {2L; ZE%J7Q" ^P%@5H b KQ`1]Eu,V+ %'- ',+D rߘi5$A H*oA`m:+<>? =  +| A!k@rR[fX t3M 9!>5*)BVJy.2@JPVCP)j!WN(kbHd </Y\jC__8oWL 9Op\( >1e44*  wlzG#`n8E:XM*;Oa ] @=PA%U6U$&E) Xpz . #s Q3MVԇij$ ZU 5/p .99S>/ p =+hχ~ vK(*zg ~u ' i']9 k* 0/) <mN {m) I%- *% B J T 0M&)TrZjSW%. 0'#hFX4w: 4]%B o * < M+&" fN*,&)i=X&XV'K< ,+ 2#b0 :<' f^O.%wEnQ1%B / ! o'k% YBu0u AGi *Q#o(C?m'KOW/ 5\G3vi,VO1vq; B4?UWv b=")2Y g l ) A!7i<, &? [ d"jP'  m\b}I6F # U o e<K.7 CL+OhV  '02\;%AA큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤fRfRccccccccccfRccfRcccfRccccccccccccccccccccccfcfcfcfcfcffcffcccccccccffccfffcfcccccccccccccccfcccccccccccccccccccccccccccccccccccccccccccccccfccfcccccccccccfcccccfRccccfRcccccfRfRccccccccccccccccccccccccccfRccfRccccccccccfRccccccccccccccccfRcfRcccccfcffccccccccccccccccccccccccccccccccccccccccfcfccffcfcfccffcfcfcccfcfcfcfccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfOcccffffffffffffffffffRcccccccccfRfQfRccfRcfRccccccccccfccccccccfRcccccfRccccfRccfRcfRccccccccccccccccccccccccccccfRcfRcccccccfRcfRccfRccccccccccccccccccccccccccccfRffcccccfRfRccccccfRccccfRcfffffcccccccccccccccccccccccccccccccccfRccccccffccccccccccfRfRcfccccfRcccfRccccccccfRccccccccccccccccccccccccccccccccccccccccfRcccccfRcfRcccfRfRcccccccfRccfRcccccccccfRcccccffRcccfRcccccccccccccccfRcccccccccfRccfcfccccccfRccccccccfZfXfQfZfZfSfUfccc17e8e61a1cbfa67568ad765fb8ae0ce1cd4523ed708e6ba12278318a337f32538207d300ba333f08ef0c4eb75d265e2a85b0dff2376d1687a73f81e6cab4b76fbcc4225b3dd36e6cb1a90d26472522ccd9fe3d78e65b99d820181c9a624539bf71944bf92e5dedc1541aa9bc741f32bfa2e4e9700c0fd283380f3eb1c1b7b66825650b283c78e0f5df59094c4da5ca992dc41f18dc8c515a932d8c448b11684d64d9d58750dc7d240a8c35b3192d8801672200f3df3d6417695ae5e59c12cbcf84ef434fbb6b57c65a56ae1de62cc606f39ea90ebf4482dbdca1d1d9c18a51f041ccf2ada047de57e3d4da1c3a1ccd4dfa56f63c09b8319e621a0d169263e27db1d532d5337b1e9087dcfd8fcec2e37fa257c362a26174c57fda2ae4a5e58aa3ce45b1fd6f750376e4d23d29455de087f69043e8c14db50ca80a9c68d7fb8c159e514fb76cb88de5d7cda5a6c08d13ea43db62e80e94a45531584385d42d83322cf37b1a5a5dd406666695a7beae7033d4dbece690d8907e08a9290bbfba5d88e77eb964e2985c944786336dc0f3d823f396823d6c2fee3e428d3529a563acfee2cab7091b3f21d03180c45cd9dd5fc2606d3405304b8d3757d39cde0351b3331e27fa4587b40c0df3dfba374c380f9ea24190510d35ad45e477bbfd9f0e7ba55ddae155dc4610f9c0c62a1972c8232bdd812fc7de67ac9e54db0e2e777dab9599f9854d033c011730d444aa79429994452cbbdc48c26e1988532380e77f17aec0754f243ae90d82ac3a3304b8564019afa993191d12ef83e7ca66c01ff91b25f2439f5460bcb9afd451cf5dde053531fc246a31b4cd2a8d2f350f4a5b3c9bafecfc93308f7bffb83d17dac24a625afd3111233085af32ce30e27c3aa48db47e5acc16024819deb1fddffb366d2da3676c6c74fcb33da6d26d0b981ab42f5906cc9b7bc31ebea1c206fcbbb78255aee11fd66d8c3ec3d183578d52fa9e17f09558b02d01b4c32dc7d4e859ded06e01f803217f18283671c1f6ae2edba1415098bffcfef619842ccb56c5d131f72e4bac583d1bef7eec63105043f03a5443cdc67c3df04596337455bc8c1a25cc8134f3895fbff501d5d5564a957d6fdd85b26b41b7e764538a43cecbc906c0170ddc98479bdb5cf0f9566e4d106db02817002fff54a4a097656a33fd8ac78d341277e482202ba39aa5b7a2a8662d82197ec4bdf3f17333bf150d1108515c91a40b7dfec92f7ad526768ee338d9245bf312b91075c94dff94cfa3ab518c0a576a11d5ad1bb770a6ef68d438cf24d6fc0929658a1adeeb061ec3cbb963d5ad0803065dbfec93e6833cb8088e9be054155bda31179e2979fddcd93b6160f59d60c10b6b7ada84dde9c60ca2c6f24740c3a5d0e2129a4817bf84cbe35b282bbb9b0f6134a4642b3a722f51cb707bddb2479eee85d01ab07e17cbf61a658bdb13dfc5f91f9a0f3f7d914d6089f6622b0b71ba43c50e2692ba8f55cc06432671f57d51578235f30ad8fd205fb819b57283fda528f441a085d1f768362fec36012baf5567d6ec641733a75fa2b4732e20e3330d61e24ae3d2ca42c7b0a80cdab59e1e257dd0b745676ca5315dcdf79e799d00455d28376b490f219fcfa86f073fa86cd50794ee9df3fbfd41a8b966a144371bd1686f00a033ad667ad0ca9065507a2395cc7940dfa0adba3787e8fdbf191500c8cb326ff974bf5d5e3723103b8874a477063a8f9004e1ecf1adc69cc55097ed6128f67622d54b176937a3b50bd113884017489ea9a939ebdf2876a3787961e571c9ef1637230e3e143772c089950efb8fa1c6bda2e8deb8c6c765554eb41cd06d8d444a54dd53d4708e0b255799a8b3ebd7e8cc2f030730cdbe179a3393328437920eeb4a216d538f8997ccaf04a3981e66d9e97cf730aec8e6acb95c603ea502558f7f452da06a22b492c4afd016ba1acfcd69456579cc4a26e005abd50e46e941d2328d916c05249afe5ca3281d4e0972225f0a79a3971a71e23e7f6830cd5370aab9ecabe2524fb5b1b7314e0e42a0dd872ef747aabbcd1d5abf23eb798b765ec9d777148fa660b017b67e76179fa919542794df81a6ffef7c4707ddb963fc86a8c75b67626b00a6938101cbde69880601559acabcb91925f988d09df5e1c49cb9ba052e3474d12eae31bcf4a69102ddf8c9a6ae93756f57000f1bc8a0e8d56902940d43b91e24f9902e98c95d11fd0c8310a6e3f6d22d5c446b5edb26caa47c13e5d757f909c45877dc9bb9b15d626fa79051f8f18a350c360eae089d2f8dc449ad6c190ba65ce810d7b77a45a0724cf345033e554ab4c2305b6f0b6803c6ed5f0abd9e7870f1411536b8576be49bca286ad83b0561fd4a379b33a8de3614a7d70625875fc4b10ad9dec430f23426494f1e2492dee676116fe0e6e0b0bd912fa68c17f58d63a20e3247af6bd212390b333a068f7c0276a39b4fc36f5169efceb6b4ef22814d48499cf77e8e15a0d3048c4b24fa7c99f476f75231403280ecc34c8f3d8b56e5a22eee3a8bd55c93e45c91b7e4f75a6ef4865ebc23e7e909425666cc11569188cf97063b3a2a919944cdcbf7095548b6b373e69ebc5f2d71f180f49d2853e3d4763237dae2238fe89141b33539164425a267936ddca2d268492a1f8a5bb769cf1059d6bc1450d384aa5d88e20df3c3d7b8acb6172fd3600e157e589eee279519057588a2cc4895aee78a9063c768573f00fa2db0351c9bbfc5f1d9e4d0d235004ab923904301674a98e096480e7fc0392879bf31ef3c59b1c39922e679b3bbda521c9f3430a39a14591bb153c8f5886d7ad6afa72f0aff5398438fc7312228ee4acd20c8b85be68519a6420b4379caf6253799e48ce227b5ae2dde5541dceae17dabeddf78b42f6922a62a50dd804f9b1f0b7132f8f708e98dc991a4c51bc08fdb588881f6ceea8b343ced1062832d0e5d508931cd68a7f860ba656563b68fb0ad0a090479000a79879e814c62fc78e75814d7ba8620e950b1e7642736584d9a41048da9df0da6fabdfcc5331907a0a394834a054ea11c26308ff428fef0d8897b7573741389fd7d435726d6846271a42bf5ac6fd2d8e3ad321c2f03ea3dfd822b27197186d4d97d1a6238e7e257aaa33ba8f1e03f3597cc3f693cbab7e93b87ace2f84f3e85aa3162e4c044ed0031108cfee6a4c09670a67afc8cd9e7e458607353cd11192cb4271a6a0a08b8d683136fa60ae67a0d37512857231b7122c0b91067e4f3106525317790d94365d27db22d89f598cc3c21f4b7178125cc436edbb43d3360815a824b83e245d83f9b6a4e36cd578810feb79c517b81c9141ff177c164e622e6496b3e5f7090c9082c33087566cd68747bc9d3721df6788871319be01cf3838459358cb26c4d3670ef635d0deaec569a67b96dd78e56f1cc3f6db554a593e8d7f91b88953d0f2a6ec31303cf61f9848bac9d6e89e7b9b79d5865c6cc98dcf58c1461dcfb9278c253cbd3698a1203dcb7bb2967f453897f8c8c82f857d78d8c13911074a389ad89f7a6fc017b5220317ee5a0675180595acce0bb8f0a13c6682306981268d4ddd3ef56df4f150b46a8190c328337bc902d7ec5e665194010061d33bd9b14dec8fbf37e2620fd1852bf41d5a0ba060b6b4291bf0bf96811653ac264e09ba6f371314b8159f7e11b6c4a876dc93c55b54c87e7f56945eed6b62756903ff180e7dffcc9c2e60e0dee53471ee164214b1f56526d8335579931e6b9ce23f6fe9b9cd00226b4ff64976e8d94effba792393378599423679f6d9f2ff364834c230ad86b6a1da9152bfdbc3d9777537cc137c546866cd0ed3f5105867278b794c58f155dac84da18fdd2ebee5bb753d6225f341cc209ae4d6271403f9b50604840ae32fe1db7c6bdf549408843606ccfd7aa5fe676435f9571dc1d5b8ebddc8b9ee05673971a5290c6eb302e6e0fab000e61ad270cbafbabc5597ce7b388156afcbc1efdab23a5e7246b0c97ca302c2ea31de418205d02c8e57c09dfa975ac39f2c6fe8a07231447a436e5db87b92b009478263375931d9051ad0c30fd3bfa40e925b3350e4a1f40f234d6ab45de6e22434d6c3e3441929bde352c6df400bb2ca98a0577d812293af52cdd8db89bc266cab235a31c902e31b77bd34e2e36f8369413e40178a4681bcab147c6979470f1d75ffb6b02e8cee54bcd88acfcc20ec080766b0f91a0665703c3d1494605a3f9cfc21cbae49489a847e60526b7bdb137e8fac9a3cf0dd8102ad3a5ec58ea9c3db48a957311f9ded77458beeab5f40556d613a7a67cec9efe617a445d28527c6afbf6e0e2839cd4f576c29af1d8b1af871c85550cde27710faece04eee4ced84e08c0ff10a04136054cc557704383a723b8d273a171c4371c2e8f3f4c11bf442afc264dce7a0c603f41940bee5e16b0b9f99d895e6ad1a594e910a6ea2c65aca3d0a3f9cc2356011ec6975186fa3e1351f83822d8a61210e5de20141762488ca5dff0b9186535975d8ad26576bef872ba9c1ea5289befc4ec1ba945ec4a1347b2d713486380f59e20ad83583d555cea75692c72a6759036bdd3e473cf983f8e8031ceb13693f9d7e26781233e64c8e325b50194a652997bb66430b5636ed74b6444829a879a15484b417b3fd17cdece1cd624aded132c453986682e47d66e05e1d049b85b629d5cb663241bb8664259b571c63d899ad8a7a5d78bd67fb4575ff9d81dd277461ed1b361d368dcead7efa01a102f5eba269619781936448d0bbb73a20a6739834ab6ee083315f5eb6a88b703ccac1aa4e1f4c5274802379bf66a19d548870eb26c957ca205849f6687f5939a61b9500841718bb354706300a50ba748c5e9a9b21bac25622e81808d514b616aca1c3ceeee6f263b11181ad0772ab865324e59b5a6345941373075e1cca1f781b28d81917e4120bfeb54fcd53957859a3389fcf9fa1257c94518967876e555a80285cc67b5ca1c02b28e25fb6cf6ad65dd572831d47f200e5ae5a3c10096c6f7ebaea16bb4984fc51c6d4964a4a04ac2aec78fe54065d6021cf438f8bc136adcda8054eb296e3e8231924ba837ede94a773bad8689caa4f11e4cf4aba6218ae98d15c079d743737927aaee04a374d41b9ad7c32f84c301f62bc2c1382356a810fa53ebd09f2ec4fb61db7562ebb208e3b3a456ffc4208d7c46463d44d637c11c95715306927588c394cf2c68cd2ff57689caadde28419d613dff1e3455a2317b3609ec45d2bee4cce303dfe0f6068c987a7baa07f6d5e8faaa844a89e58e07e8de22dda54b7700f82890430f6fa514169e62aafda9cf9504921abc0c5ae66262a90539375acf0d5bb4ece881b01ea48c0ce445176aad1e5ea01d10606388ab9c05215fd3c7ff6ef0a62b39667ad6178f1a90377c16e6f79c3ffd30d97ce54f43032fea2a5ba949b16fea3a8cfaa92bf1ecd587e35fdfcb3a85ff491600a0f6647274b52aab9649232f0c8d9ed0b990361034e0fca343b196fb7964ee21bb95989130c6a6caad65d96f963b06a4dddb56b2c8908dcfcf33d2b52de7526d859eb1121176a4e8f605c5781207536dd49330dac30effa1aa39544ec570181b834eabed4e43ee33f92a542264df69949986d9763ed6c2fe920b787da13a8271afe0a6601a08fea7b857be6cfb2d7aeeff50e792dd849706e150b215472dad9034f54f60cb47d3ab5debb2a4babb3a5602c27a290248d546dc53af096c298eac609b78d6d21c203150cbe4f9207997fdb054c7453200b05f78f0ab954982ca3ad6e8eeafd4bb91d67f893924b107426edac62cada9a7e27f48074e44bd88688284c4e3c5f9d8619e227d652b6c1f3ce4b97497f750f835a420f2a5e7a793dcfd5c47be51b802105b4d8f9480055c08b9746ebecf86a0bd52a71042a0237fd212edc40eaee6e7c41eef7e17843130b2baddf1eeb7a532911a1ecc474bb446e61e78d06289d35a6c1d2a00800a5b028866c03c6af05f1b1364e13e128927fd117c37748e42c70021034545103be660aaba2ce35323f5f47bd26785f870128a1ddb17d2f1040645c9faf5158897197d9393cf330207e8ae5d31ba3fe72bbb05cc796eaac905e3c98f0f9e21b4825022c2b26611ed5b2f6f0476b717eac3e5f289e2f5581d170b76902c4a52e457d6ac49faca0fe3fec52889dd0ee553a889894bcc1a1ff3f42f59c89f85dc6e418ba58c1a7aafbd0293036d42fbbe748e94475cda73bbf6bcff48d1cef4cf5cf3afb5e0b07caa31372190fcda158ed59dd6e06d1f9c16d37d01f0d3914fc3eba45022757f0701a8b3c7dfa7bfa873b27dce114d6d48f9ff237ab570326749d19da100661e4015bdabd2475aed82d274a4fecd461f537e600c8f94cbd83c232b1a7d5c1854894560cf8efdc7f2ef60389779b19778c372c64fb4637e71ef04f9f4eaffd9d370b9408d40c42d411b4b50725d48670fe7ecb65dd22617afcc90c07866f9ac5f6dc8d935508e77087432607c94bd5e6c6a2080f458945121452982349caa6964b56ca2a458ebd7f92f0537a76c75b21859be957ccae3b7f39963aec766266d5cb0a5ead684b8d1b0c01f4316c200b794adce60730295e573e227b9e7aeb28867644b3924a3183d1550bedaf678ffc7b63a033b91de10646c7288db32b16264f8c529dba7772b9cc83c04522f68c749855d477f6bbc80f18357ca8fd827d8b58095875812c1063d43438fae300c7d07b5e82cb591a98c060318405dcaaed42ad622c38c060fd75e35b0683a81fddbac53680cb87b3c03b66f509d023315aa313a2f2c9c1ef788092878f46145ccb465a39eab7184ad122912e55dac2795bc52580b4442e5138cf30e8bbb32312a42fb5a10141ed2738ddc6c71ac9a2e7713eaafa83ea03e3782c64b0a8b60858defa3dc6d69d816df92b2332494b133f0391229cadcd2e1e85a2392ad11cd98593f1a9f5edd91238c9eb33fbf53e8f19e631b25e059ad0468cf6facb37c0535a19a6b512000e3fdef9ff3a306a3977d72a1d4b62b6afc566fbd0826dc6cb6db5575c3e2858e63e53f98f50d6d4eda74eb315693fcc3b8aa3734e17898ef308021a5ba9688500d7adbde49c1f5cbea05110ffa3a4a24d3077417c650cb1b4ee6b2b2f360726ad8536d232be34d08bda5dfbc4557984a3511da2f18f1037f01934ccd1716593e1df036fc15547e22bfda706aad693224695329566001079f2d767c18056d44a7a86e05780eadc08517ba2d620984c7b49da8f8db74d2465365c80d4d2cb8732f7eb2cea7854234dea3a47ba1cbbb8ea64a19493cc577bf6ca0e600190e8712873eacc1d1dca39076deed1ce0fe212cc49da176730e9f8541680a24d8ceaf6ced40248bfb0714715fc6c09180f667ab1939f1ea7daebbbe19391f5dccbc6e613d065c33805b9ee3aedff644ab8c7ac0e8bd41dfd7be57fd32d3f452f038719cb545198f0789e5278537c54befba33bc8c930204e8e87e7e8501f3731ee5fdd78506e8524f580ad1d1d7837553528e488359c940417c73e763b80cb510b85879950548e5bb8408986953f7858c93b1ecff3d9e4431f56f4cec188e79d149d598c3bd763f9889da78afc55feb41d9a7786a610a98f72189045233b5976d6cdc7aa44cc2404b0208c261a3f5e171b67c39de977a2141f80884e63cde2014bdfd95e762b25159854c02efafa754fd54e4c343d7a43cf81bd97feca87f36d6a65d9b589c6c725e1fc887b4d18413d7135ba1e04730c25c6943cf054802b6b89643d63847599fe7611d3b27d1be0294ac719651dccbe457b67a0b2c57589ed8125c416bf7dfeda2454fd9aef38b55d4c5374d39592ffc33ee0371af9dc45b39595a912c7f2a2b8bc3b88c6bd1a9d93b228f7886743e938b0302931248d019e8b2a95cfd77aad7a66264e77140d71ae6d55243f91bac08da31345bfddb9dd0ada171d1bd7219faa1e914d32cd02461c80ecac2508eadbfb4a60cd60d48924a15664c4a07412ebe4b6c9901ceaa71bbf860a8cbdb13cacdbde2bba588bba26cd061c8bfc7900694a3b2d6bfbcc1b764de6f7e84d954b0805e17c0c28029db759ac1fe24af0a2152fbcf535d9e0f8901f83d9a37dc1431349c58ff666f36db955f73f79cb72f918cde98528b1d5efb599b860d8bc9dde7f13b4f0da5ec3267232bb246c5f33dfa0b6c065ee5a17af918958f5f7906c91c3c5713373bb6f4c47afde7bbb8c611da4abce5c657e2b24e4a8771cef18d0c8c2eeeb25209b978ec611b7ee783328315da8bfc4c1e2d2fbd5cc4b5d1b462acac2d072aa638d41aeed1a66c5d251f248a0ed647f936603902aab0c1a1190e88acf9fb283118f35075a1576a2e956c52879ce53c174284a610dfda561deaaf6107ce4912bea30fe5d3659c82c6e5357ac13b0ac0563798f31fb996035572dbe3d6eebe15347e0005bf108582a054a92565914a4a0eed2e8e58533ffb3853164e4127cc81f6f58e31776b2a06a77ec2dc4c2a1a06281198b39d1407695c0a54fd00649135a9a5dbef50ba60fd956d46067dd554295d96fcc0f26e8bae897781d723ce8d6151b03bf4b26b2bf7f09aa5c4c9b3bc8053e361d707685fd1edcd167da7c0dbe11b325bce72033379547bba437087da1152f84e0c6420c78b282736891ceb329e1b0439dd70cc60c6e84443c9226d18b6e3df4f82b8ddbe988c3bef1c2a066eddaf45d489c8e2021eb0b4a75b254c1ab7178872c008313f6d72f2474f22eb08cc53d3a1f396c986876624b238c46821b3de2aae6185ec2e6d173c142b34aaf4f8450e92c1fa85332f10f885d2becd4759d4173527c185e3db83e649007d5da56bc928fdbefa367316f9884959d51ac22aec1c7fec6e754231bb2e29c339216acec598976a0e85b16f9d23942274a0de5aa6f25d8cb0a0dfc0ad4f6e3e1a45ea4c2a76394a7ea0831d7aa2b33a4d317feaa151b7ae7a6d8c2560d176b61bf30f5e06920bfc630f01cd32fe4fecaf492c873076fc9dcf70cd5dddd9742ff155dd7f48b3d928ec2dcab50259ee74eb75a967311acd39d5017257fa0637ba49aecc40aaa33a0f8a51ae9af2b5b67fde473d4a62dc2838de882b2877bc6c1dabaf4a841c5920ea3681da865b8fa6573781bde6208fa44610d978db5e75c2b10cfbfcff89d5cfcdb5e4937703f1cfd7e341b904ad59fc36fbc0e2e6bd5fa151641cbae6563be30a7c26e0e875d63a35e327709f69f83228ae125e6644a3457fe5cac9b89a00b0d3953a8a5febfd60d94f00c3b6eca6e52603e2d1ca07b2b9ba4f65ab0ea81f7a6f9b43f9d1877c976afcd4c9bd191595dcfeffed88045d6740ad3e174bdccf486bb56bedb3c3c491b1bc908aa27fd664fab6e8cbaa5f9731c18d61caeda6b100d2be0b6362d6e6f16f459c0d32b77d03b8763b03de0f086161304eee6e4242233ec769b953d1a5b8d7d460774b5c6ab533d096d50c86e8d7485a47e8d6bb64980b410a3c789564948ba0afdfeffa9bce552f1d0d1efb93c7579b764657d11b57592a103ad8809945d1814f0b15d87834a25b2f76d769c9143c8179f12a4a318ec9e081f16eb1cff2bf4607cc1418d573321ef41a794f4481b1bb6e3706676154dd546a5e04cf3235ced39a89b59fa0875ab2ef3e1fce2da84d15224fd6c89f18946c652b900d42c5eaa427645da7b88b9946a252d70972d905d2865be62ab76bec9598aa7c254d8c6c8044ed68da30bb6ee3cd4074efef134c360465833c606d322cd50107784eb9a819084dac22d4e55cb59a5eb41a78324e714b8be001efcce607b10ee82098366d9519c726a8f915d34be6dac6417872940399a19e57e952befda402e08f61fd57b5a0aafd254005f3d825943e28347940d8d1715495a12cc08ffac31008328d541e94bfe688a40d90edd719de0b6665e855e3174f60f7f8f4d01cce4dcca412d9dcbefd4ca229c08152a210c488e62c1f4ca63811fdf352635a43d832e77deaf416890e9316646a9fc8de828a85e8d64f6e95bed17539dce5306e273203b994924ba6bd036038073555095b039f4546cd11b6393799d46ea300debb353b1ce4719fb1cfb435cc13452d23689bb26b7b69e1f705275359af41be814a972ad768b74e3386f9529aaeb05f68d3476dc15bf5b6b10a5bdaed25e2b03abbe3c1bb2d6bbb3948c7a8dc4a9c200ef65a17e18056acbdb3e48cceb4a959174862c7a34931938044b06d06c6c335c3aa3f13107fba108028f51248939e9de5e2c2d92959b6d3d3511794307a14de861806bce8b4b9ab67897d9afe151e864f095dbcdd7a4b46288511be26e515220860266ccffbd1c74db7b163121fbdffe55fbde1cb53cda079ab8df73086fbc7d85823ef2013674377dfa54a3db30bc08eb61e13f37d59ff32a7f828c3b37ac5f8d36b93fdc0d37748b7cf0aa08b740a99538438b1bbc4712f3286d556aabd5927ab8a0b0c167e6b7658377c9cc07584d2f3496883ae03a70ec9e6fbbceddc726f2c4d1941abade974ea487669f85a6935565554a72072e34101919ee30f116ea6fc40c43ca03557c6dfb2e8293c97185def6ad4fc9f79b2e00b07775ba3c09cce23f73478f59306f15d06083bd37460d068802d7f23b9bde862b1273f52555ae9b722b1b8048abad394ce34c25df980577bdf04d2036574fa5cddae79041d38b7ac4f1829b8bfb1e06afe9f1cc5f63adc63a761d66e6e5fa1ad20edf4ad4a6ea6a0698c58fbe6e0bf26a466ff23da7f29287f5c28cd58ac0dffe2cee29bcc599bfe9fb95d5d030bcb02a6757c95c6cc4731546ad79f50aac693c8ff756e9d8b56f19c193777d45348fe66e61d0431c44eadd9ae35c85f4414c8cd6b4280b5268043c5fde53930881c354d88089cbd1b7dd3a17d6c8da1e714d7cb183ead37ad61314b1134374921b6bfa229d2695cacafe2f34e4709b752a24e4087fa5237232a427d5921463fe9e657937a61f5a9be4096aed0f0395c433713aeb12dd0aa0e4f4a22bc1593dfd65a7e0557b26e9abff11d7e7a9c709576c152a2389d211165c21bf3d432346a5a3b14fa189eae90b6f7774eb2ad92a92d79ce889a1b577623ab84f9727f89c2527b2c7be62a4e70271818d2ebe496f6d697dc64de04866fa242e65015b9baadb78fd79ca449eb2ce66a3b786a8a09dd13aaa37b874af1840c221c9b8c5508b6daeaa381218667e1c9a37bc2ff60d54bc7203fbc8c7b1d3470f2bfd3c343a12db0e68f8521a8f81de713de0872a7727b7a0c4910c7f3b0b586d2c68706beb82b0de69b8137ac36baf21f56d4f93fbf4f3e13134b83faa1d8fe29b3bcf55b750a2a96302d758597cbb26ca31033237b8bf44c5fe85b0931572a5b744a8b0a5ec2280ed0edce469931ab3c63de590d75ac658f99c1abf3432de681a652ea9b96cf2c6160cfdff39839cddb7d755b2b1483d14255c4cbe588a52827eeecedb792d60db15eaaf87c06d914a889145bdc71b8d826c5d1181f0e5a11afd90decbc1d59a3c0285bbca4eb4e1234c88785270c5627ff6776d8fd9e30088b42402dc44ca26887ff41d4194e15158e2bd56fea18095b0e02a738aeda4cee4fda3d20bc540421e75ec4a311af1d6302254e7f6fb70ead2693e5681240de96dfeaa15a500d08b93ec2d53667298d83f94559ec26be1339577d37ec886ec157e67e7d93435bb03a6ee0cf6c0da1f7d66df99716e6c219a511c6c42989cddcf43fa6054b0f8b20ef7bb80efebea8ed54021f8b3b17d99197c0bb85cb82b9836e768ddcf793539e50e2e977f2c46505e6e64cc4fef3bf204f101b61bf1d9e441ad05e030f65a2692ce4da5258b82ff7384dc66bff97697068062f4b7ecffdd2765b10751788f5c73ec9532090a1e0476081b1776b42ae9566425e05793d0df3ebe4db40ba0785f03ce0142dfb922cdbfa90d72d1978bf137f44c4cd3729d369d97cea2232a7cf3183a624fd58f0f0e62cfea049a49ba4dfc8c480aaf5ed0e0bfc27fedeac395666ff1fe41c3e884dedeeb81d2a00c0295c0ef787c846212ded1348c272e462daaec1980c50b88d5b619dbb476e7fb503a808b512fc7dce1b4c9871889297a3c2d34bab83b34402b3341a3cd270fe1dfd7772145c0f6e186068c0dddae00df8e05897fe50ce8d33c0fcc37e4b0011a3622310c651dc5688a0443e714785c40327d2ecdb2fcb9a16c32987fc64e0f4e2b53e7bf4c1f092f36f06d32e20f84ff791bb02e6f072ca78ee701003fe527f861d58b3de3096c4858d25c39582556016be64fe582ffa41ca1d44ce58b9b5e7946c78fa4b82eba3abe88da6981f4ff5a3b597caeda8822f31a3b94c35796cb59e2a4c87dbb164a95d27ef4ec7200d6b5ef6e434f95b95e7947bf2ecebcafafd8f20eaec8385183634059b93f652a008c21bac4f658f2cbee21cd37f2a3abadb348ddc65c7bfd3d44d60a06a4df7e2a36c86bca05f10202effac4e7c305343d163fb4dd4e0d763b2626e50a255d999091c74f9ef0858f0c2750f12627b17fcaa85b57f73c962ea0241a2d36eec9096fb3d72dafd2ebcd685d98cfe5d619f43f08cf11a5bf237befc5b1bdce811a086e8cb704991d55feb6e322b713b433865cc6d213934da70d7a39faf146be0c41293c36d43c5fe97aafd0acff8c1c4ea22fa353c92d76afcebfc00e4aa056cf46b4f11914561a42f908b6e15bc8ccba6ad9cfcf77ee78735c08b53f5a60251938ce764a5fab50a5b79d6a08789e93ffcd16e110942df53a65c7c528160da2f270a8aaadd27dd772f1007a21e0f02d04c8b7967cb4b310b950ae3b1b203ccf419fdbccc110e62f872ac0b5a521e0e749486273ee73ff95715a8e4d40ded36c4fd4a9111dff059dc898ee6cbfe579581cc541d9d100080e46154c84ced0adc02f4c503e48d2ffa9c834cdaffb527e2fa976752826e1808fd21f96a00c71c57d4b1b94592e2f7db50880fc382b74179ce7a9680fd6e86da2290cee6287ad8465e3ee24a5ae86885dacaf489e7564b0e1279c9d18832d56d5a72490e9b21d2bf73bc4af894ea07a1cc46753b112b697d9429d463d28a9f6658fa6c579f75db38fecaa110c19438b82f18e1983b6d7cd2d91bb3c41e415cd0889b8094ef3e3f7df8d292b7c8fadea57899c58e60b19ac6195d7f489f064faabeaae798d74485e739b071833059b057c30d8a513b2d1de67a38da75baf26c7eb3d1f7da19117b048e33c3970d92cb917b29e33538ac44085821e8f780aa829bf54363f9933362714896c97e327ea8802a4ced9a7dd17c1cc860407c85d38c68ec7186dac02cc1071ffb53acdb1680abc8499bfddfe6d2b01ac6375f3786f45602979785d4da8269758a33527cd19283a21097048777da16f17a487180a6d23e91428b57152aed6bdc77e037e6cc3959aac21e577cda47a3f9bda185041d9332ff79b9adff75672c27a00b5d71fd8aec57111b8d928a893391344755bea6d8365b484fbf1a9b127d619b869d6ddf09ccbffe6ba4ac43ccc9132d657c0debf9fe7f7bf4d3af4776fa57dde9d8b0e7d98a5f4220f3223c634353b240e676a6e19913c4c048cb0f5ed53c1d634cc45892d94857f784a5403baea7e738ae5db37dca2e5cf48d93c52f9ea0905215e9f7e475ceb0cc34b01bf4715ce51944a392d27a087661e9f96d16eff80cf3ad17c6c613da7a0a72fbaa91e69aa559fdc29f753a209ffeb23eecd410c69730d9baf70b2b9828e6ad12da1faebd70efb925caf2fe78f19e1e039238efaaf8b36cdc6d987ea24651ee3d7a8c3a3f007ca49df676fd04f61501f76db81618c908983149e168b7f86d0998254c2a7a2e997ecb1d007058318efd3a54eb6a9059195129af08c7fd51374138bd2362c81c2f8a309e061de69a276214bb884a0b19d0af631bc74a3ecc80c352b167767cc7dc78ed8dc880067657c59a05cd1f018215240bfa7e5b3b36891ede1b49e48b8e5317dbb93dbb627a15be9ea24f46510fcc7d8b115f8147404ca14bac4a865dcc61cc36fdd577a848f36889609fb381e52e54d88e99256e02d8349d0762a70e306b7c5d1954583f13cd586b240575921696426651ed3c988ed0ebb7f6c39df459b3888d8d47df83daad0a8ae709e2f4283f91aad447f592f73ee7a6a87638f7ed1293d8d22bd9e6722b89f3121f3a38e94b8f0a1ae164f21e307ec3364fb0a52d23caf859a82562c5fc98924219c99ec184a8a6a6a3cfbc0611d08b1f98357833e8a173a80d975d967efc594be7514645ea37cd20ec58af8bb77f6fba60f911666cc522336cd9be4dbaf12203072ed4a106369f4ff1f59e3f67f22b7f8b42ef1be3446d0c42923b3ac9d493d79dbceb055ec2167b0aa6799d5933db417b5012b1549a8db422f5bb2cc8fc5b9bcd7ec9d797b32cc60d1d136c2a9a3b8f31108e3cd437ba5cbe3ef209e0c953bb2db4bd51703318b9651c9ac2ca2ad1396374d14ad2e7fc030860afc4348bd73a35f935d87c0fa35da88f64e4ca2467ab1d3ad040cfe6a0324fbecffa56223a5050736221c80f85ce01259a94a08cdcff524f26ed04ae53b9e9e3a94727d6ce2f236dd9bbf6bb0691ddf090bf25817130968566885e493658e0e6b7c08e28bfb9cd30003af9de23bff09184581211850565105be7bea20a114fd514f85afb05a2c5c3cf0086b08b69e88c547b9be9c8e9ef1c3b5188b780e4317f9c6bfa34a164f8c1cdbce6450f409cd360ea7f14352fdde49254cba7766b8e72508bf63db6ad3b8cabf9a14dd853624b8791b9b8cb3095c115096475a721e03624d9de01cf007519bbaa33ade254f949465b729e9f4426065338b12eec9c8a2ce22d668940c29f213eb9166eec298a7efac2ad7f6236ba5d217bdba175212d2685dfa36c40463f6bbc6eeec145d85d39f29d82e23dc04b5e8cb6fc8716a99da5f42d5ab8456095d90ee1f4407ff687479221d5051301ba6ffc0fc540cd05c53469d914aae7ef1419961c70987f1c44884017f3bdc6e5c414183cbfaf956283bd49f6ca65107a6dd5443bf4e225c17cc24596528c636561a229fe7e7d18ade312a29d7127084ad4881523b9ee5c2fae04256216e67362b6d6da70116eb00bdf3e70fc0b4d5f3b8dbaad6dd739eb0aa2d05f90094b138d3d93db33e8801bb74f558a4488f42a17d4b378ac466e22a4c64c1950e899bc0449f9f944c88a287e89e53462364e2546f26828dd897692b9ca2ce00010a97e35f43ad3d04fc994897c6915b54d1970f6be9092a0bc7eff0a11d7e9764057932dc19377a838abd0fa3a34b4daf6ef5034b4e61519bf2cc48268f56e4f24df0d45788bbf16bc7f5ea65be34aaa266504ec62b15489bf983438ea8ceb6c0dbf2243ed5d8bd3a20d24765861e74168e659a86f257e6e27be9161808ac1f66aaa20fc302796326211b7276e4931f1fb5d60a1028d862a3135e689652808189921c3e10e18c712d1f281cc6923339e0d24d1da416f8cccd8f7165c19ae645b566c96116baa040a83828e15ea086501f8199d7f4bf3ee2d10a6e61fe7d599127a1bdb69ae5ec8ad86c53fa5b173cf9497d6d267e0971b3924600121bb6164e11a4dea24dcf1eb4995e0f4d564a2ea90d92d285ec4f12a6dafd7c9c50ff3ce2d39eaf4dd967251ceee72199c8b2497f309eb50a613c0f5dd50be7fefbb87b8ddf505f92fd928068c9706028316d7a12119d2f0e39dc59fba116bb549690ca91d6731f61daa792364684a81ccdce604c06dbbcc20b419528c072e87f6a02f1ebeb0efb1ee67ad6d80d5d34a6462559f0d8ba32230bc9359c7ebbe8580747e2734ede37d32fa26afd4ec8a4a4b51414fcc2ef4c985d59470b4791af92040465fe068c3bb555c01adff2b14f62e1e06abf9a75c2717ecf2e57c4d1d1d3fe5429e0c2150fa49d57c717c46b29ea21e9bc56d3331aabf542bb35cb8ae0f0001499805cf7fcd9e76d2508044acadded3760ea0a9fb4d5285cd093da1dcb3060270be9a7543d8d69bab317a854ff4c9711f480ca75c2d66190ccf898c8ea7cf4114926d45ebb11c19de54a6b688e6df91e8697bb9aeeb053333c0bbda564e8d9a4be613ab8b8df121852424d5a3c3882cd0ce61778f72e2c50f126566a42ba123cfd8af46dbdaffb15fa28094f6119542eba8648eb9133b5a1dc41150a9f1be7ff3cd91c33bf519fa5c358d69ac5db8bcdb73eced0cb9135bd38eecfba33ec898fddbe8d25038af42eef27f963b58cbc2f132e6c72a0984f9c3d16f42d2aa4ef944165f17326b626ad098b3d6ff5e0c3b3a13a54a49a80d56d3d626eeb69331a05c92744e91a28ab523459bf48777c1a96f968d01cd371cec45f5083fefae6ccb0c11e8626a00ca3b38f7e5648f1b45a31ecdc368491239b9c0ffd686a7a2b809fc61f346bddec881dc7cc903e0dee72b83bf1d22d750a6b25415487f008a1b19a22c1587171b8c29bd16b168caeba7352898cbaa4ff4900b85195f98b4ec3d4e2f8a2cc0e94d4719206f5fa5bb0b8d57f869356c3f2a72c15666e3895248dcbd10ed93d382aa6486ba5fed4b005bf42cd85cc963c132ef3ad6d15011c6da24f2dfe438d7e0e55a14efc84d55a34d6f1c06f3483ee04254261f3582c5516b80a0a5c6828aeec0896d5a2ddb43921150e16c438fcf6c4efa7bc7eb48f9a51c4316996aae8a5c3b6d0223c53824c7fd50b44fa36335a14a37c3fe55488a4aafa726095bf1b40b6b905c0a02916929b31b4d30882d770ab5856379cfb0630ec337df6bee8afab9b00e9eaec2dd2d3fd48d005a3b147e9cfd8e7d1db45fb82641264ee7579a642969708f28ccf6aa9b70496d4952e1f9805f4f6d33aa7e3aae197e7bcac358265f0cf64669f02e6380e7e08ed3cef80ae94ce2b1908fe0230ef48da2bf2b717d1de125e2de617ba30281e5a0439eb2cd53265ee3c01fb6c90c02b03217f10c33f9eb3ed55ca474dfd42130f7d2ff6d6eb19a1ed0dcce844bb709e4f49a634d4cd4bcc974ca8461617d3b1a67bcc15f2389ae0a6f02b005f0061ef8ae75cb0eba1a80c29981d1fd1f54a6e7af6e7079a11d8ded0b2260a3bbdb1d3e741f3459acd5da593df6ab61a9982a8e68b1d40b0edde88bfcab944e8e82579009e98c4189fb72d646fcd006e44fdfff5391e46af1078196a0bcc9229ee756d6c33c53b904166530a4f896b51ab20dcdefc8815c9afeee7a62b2b6da5c59edcccfc7c04ce132b06ad47641400bc9e9ada9d88ab4b5e8f3d9615c421a04ff7e14e6365c188092837ae1f8c42031e24424f9cc317073dad36a155994521cad6ff8667e763653db4d450e4d8443de50fc5f4b2eb44b3134b457066c046cea25dc799785431bb8c896a3ec25d87e01dcf27c645cb4228863ec9550c379ba30c3389ca8bb0a1de34bfce285087651d4ad809c7f8c3a7cddf9b230c02d0767be8ae856de230df1daf4b69017f02697e65b1fa407fa9a60ae77f5aac19ccf8c917b9ddaf35e2ba8d4de0227648b1acc17b254cc35c3b193e38b9bef2ae0c05a71f2c0bd42d554a40907f074782b06c0f67ef6231ad8f7bb170124823198ba1f2a03ab9cff63f8a8b5fd8126810acd91833a4811969df7a71cab18e81410da79404aa4083cbfb6120e504ad925c71619330bbb0d49fedf05fb172e1847e65310224bedc06462561142be7f2df2c4c9d15542c437c86acf9152f409c28141c35c6de41449ce946bd546cad906e63f521ed6c6bc879834a139dce1139b778af5a3393e257166e6a8379f9855919ce7576a99eda0e6bd233ecc0192a9a90e1355d315c29dd325da214c828be383d181a93f11d0adf851082434c1f1313005eb8038c68ef186b0b5a5db32a12eba3d8da00ebdcb336b6d20bd60ba11d2c30076793e01cd0456958a3ab5d84d266d61862955fc7df0c02c1848e985a07416c070a01b16ee7b2f7e2427ec31896e567315c49044eb54080fd5bbbc4d5c6b8bc304a56d64eff37e5d313f973b5246ae16ec19a6ef8e5a2ec7be151d50538042de0c0987ccacfcfacfec13a17993c7294686c3a4d8e8a81883430520432c2d68ea1de5b33fe086d55b0a4da228bc40a18ae4f2e20150f7d9fe89d1a4e7b6a411f51d62e48e26bcb5d4063e7a8249247f79abb55a655450b719190a6a531ab9127d389cafacc539a8efbf8dee896a0e651930d49c04c737bc98c55fa2bc8fce73eccc7b8a6e9fa1cfdbd63ac617cf200d1b4cf74787a69eb4506de5d6b7edc64e0c029d29e9666a3ce1f3a1d7d8c12bb42964b2ae45535e03318b557586e54db115a410f5a77f7395e3a09c32cfff57ad068046a2b6dbf38b80368236ea58a2df7c80a5dce6b5b57ecde9bbad5a9c621ee7ed7660fa2d4c22a3ec05f2b6cee7591e511a32c02c80107799edcb0d17c3c05bc0f610a1fe3dff80943cbe6bb78b3cc117c146762e4a511bd2002ec708c788224c222f3399fce5dee375a168b62ea346c9a1930a820b10ebfbb65e55da0fb140788a04fed58a059823960576078064e4f88d901534c61e7f2f501af80ec640872437efbf77dfd150b7f78b90eeaefd4a7d1ab0c91a7b7e958ab3646e4cd2c7bf0fb77875f250b8f5a6ba4e5fccae88e2c7ff6ef3764368b6352c935640189f316c6b03c00c19cc84c9698b8954607b28072168877c93200f26f802c27afb9a27492b602538b298140035db73387995883eac1e02d04c178ca6d275f908a63a206d016dec89709b8b4f2a9f06dfa2518b7de01d81dac66aea5e000c83321a838b4c67839760755c68457be0665cf307e5bc9c94a1ab615a80d6929fa779233b30b92aa567befff141cd78f043130d7ebf147e4bd50eb26272d04d52e7dd8453fe028ea190edcaf36237bf4de896e4b1cdb16d171b9351ca191c381c40ff435010fab631ce3e388a93f96a27aea1952ad3fb249ba7445cbd53975bd35bdba8c64aed7770998ebf3d7f9b4676861a076a450c85266955f544250d2c7c7e13ebe459935b063fbebec688fc645311e8580d18db633bef8046ffb2e986188e4284f69c291378edb4dbc667cfebb79c5cc106a4c68b6ef1b239d3be0058f09f6460a1677379ce8780940f54614dcfec5ee81a945d38a77b51261f05c4dc92d0a73fd533a706eda5789264ef5daa62cee42ef46cee50a6b1cd74a84867dcc3ee95444623caa53a32e5125fa3b0e8c791de36144d53b2f42467e6f611edeaecbdffc191c64d05c7b2af0199aaaa37f55d5b23bf207a729f3e20561d6f777cc5eae087f594e89f25e0efb7f9268cc6dc4f8a0facbaddf5cf3c5a81568484c046de76a1f4a09a92b42a5803b785b8de86d20eabefb47de8efc08151d3329d9fe07d7fafa9737959e6d8a34c6268761b6c206e3791ced1cf0c656c40fa15f6ac734f4138fab529529f68780a3317096967e738b23fee4262e1fdea49c3b8b000c4b6cb7ddc058ff3f317c67fdb292fc0837471309bfbd17451942c9bb3fb81a2cdeb337dc03d26b371a704c43557d4b856bf75ce5b3bc673251dd77b91db6842ee89b3152bfad63a6f092eb5544d2f4ac352113abd2a99916df99aa3ed88707098b239a875417ee079793c74df8bcd11bbaf86d268e802f2f9069b19b7e6669cbc9c0d66067309446bef9c5bcab3f2995d262467c9e55929f01d3a320a0f59c705f53079075e569ac30c77091e798ac7665152e6f6baa92d8057d9caa018cfaa0aefe6f45afb3d6e65b92dac697b88ebcd75afca220c3f1e81b41709686e6135ad521548a8f56d4596134a73f13f8de89e26b197857623a228d27e9dc6f4d9670e5729ac75b378d59639b2a9a5ebe6ff5bc5a24b4ec5756ead24e8ef9bb246921e524593e8998b4831af2d68438478a8452e7fb0b9c15a2eed6600dcc2a00e4eb78a8409eb2d00d6633c2332e0a782b5eeb111f0de1215bdb9ad5af8bd0d378cdcec4440a27d8d2e9b49a89dcb2c1aeb57dd702da46eb50011228ff35df29750f7db1b2e5597eb692a63dd7b442e9226c6600376eb94f8b6f34cd1fd2e412a3da8ea97fedbf5650e1d5c45a63c1ab7e616f1dfbfa20aff0035aca4bf5206e9be14a8c22f69c432c3f644b7ebfa57af4ed8dbd3e82418d19f29895a0e8d6add26f5ce2274f6b47a39920f5876aebc1dfc0d2d17b43809b3a8d370b1a9bfcfc602b2277b483349365914ce9bac9f8771322c84c9c2f36fd510d86e3b15f819147659d21789661b626a4b88501261ddc15975028e2ca38f8f621b225e96b7cda09e0c341e3b199d8347022159958829e7fed52697da625af9e7500d38740d6cd0098498a1a27e10c4c9b3883602113e7b444214fede1ca8561ce2dec8cafdfedee4f632425f577753a050cee551b5a8a2d83213fd96b08aed928c0b6eb32f3a36672a746935a7939cfb813af6813ab88dcbed835d032f2c1fd362926fdb5f1464aa9a2100c6ca59e0b2e8c31a1a48f7480855766c0699588e7450d81d9b30dc67918627bb0d1047b4295a65e81f16b58c0d031781bea16afbf1e4094fc94c1b432eda591223ef133ce2e908387c33663524d0115ac88905537023ef8d66798bcc4c3f4ee053b683f5d19ea008f04278a8865fcdb3d6fd5bf731e913070570e97c0d2dd0ccb5a292b45a03458735f908a7320a2efd5c5e6c8126401da2c0c8d29e7defda7e566d2e89690731f452ccbe2a295f9112ac77f5e5a55d08cd49e8c34fefcae615bc7a9073332f3c91aebf7aed43470a5d6666d465c8cd27e2ec88eedf0fb31b0e6e807d9193e867fb28b32960f8f3b7b2b4fe6e0839be060a5f4c0b0cc8e8633ea5bb0a369933107a94fa608baffe40928eb43b57711bc57dabdf45f47e9ee81701acade117e74e123564434060a5585b2c3173fb30f2b1d77dd16f69587d71b6056f09f4940611279a9dbd39393a16253ef05497033ce1382282c181345bf518daa4212e8621d936d418f19046539798651410454d511788ce70c3f1b95afd7bf5a4ab6234182f4046ba404587370ce59764afe345aef453de619389d7a71fade41117f90188d0d4e8deff52b76e4731a600bef75e469abc7ff77b15ee70bcc5615e678379bdf739cfddd3b20b038fcda8add777359967f6ba71cd60807a93154e7ed948c4271f03a9de4d0fc5c3348aa668ca3e702c9a6464142f364dc5ce9ccbae8b8b73c306a9c1b4d81fff536c21c7cf5a1c01ee9de81ff5c762d5d024826aff05565493eadd6e3e58b2fe1d97e0aa14ad69c19858b6dde36f0d583736c1ce64e861995553123d364829a5f6b6806f25e12273246b7a59a5f5f1ea0e94135904a0ac436a0af73868756bf8ff7bc24d9964954da520a03dbbc3a5e5365bbad62a3074ac2df2b60d78b8cb11c904a62e2a7d938d4b7b3ebfd11ac9138e1087cbf36717da69dcc4c4cd4260aef9cc6cf32d2120babeaaf2b86a3177d99979719285dabf71733c39b0776057aef6e0ff4fdb6622241fd4ebb1cbf793640890bffbc0595540d684566a1bc6adbde3fcb624c4ad73ee01bb4dcb1c32e08c86099ee5b325232ee999d07d6931ca935f1da9750f129c07b547e6371239171dd66f12313eec6c4f850c86d6c5c7fc6cf5f373662f41439dac8bf17d04545ddd25339875c6ccbd395af8ca0e7a15fccde4d118c38865f5a26d1c917ddc8651e7c2c7256d9934e45463cbd011dea6f15530547442cc093702003aedaff6b0f3b4e6ad7e69a224202914d29a462682e57040009bb80424c29ff383f0f2eac1bb1a31064a67d511957f13cadc032baa276756cf5bea788981014e3aca553100c177de92d05cfde32384388ffbe15003496f5bbd33abaca4832ca42af151922bbbd7ef245feb1b202161131af25221132e750ed5bff9f2261f2a1c2a37b3ccecd7ed267809b21a18b436120417244b117ed37c3369d0e539cfeac3276808d0e5e065f6a19e9f50b4778df7b185cd1bb50cc01f9c07fcfa571185b7e9c322bfcc4a2bcaaf5c2ff143124d891ecb67028f88b2dd520f97a8a7070e9d657459264b338e6ea535594621bd64d123489ce2f62c117736d78eb594d8d6aa43cf0f897a9163d7b45aaf0f01a7dd586adefae6d582cd974bbaf9d886f9cccc498bb145675983e76c0070af82c275dbed9cb8269907ff5cb554828d75544b9d341611eda95fcdd0f5fb5f637e8cf655988eab0b5f8c81afed98b712980e63b8d05832132eddd02829fa8abcc3b1ded430877df58077860222597cdf8ede9b9b1e09e7f6809debf5cb4a18a317a75e3a23c32eba82f5500679496668742a94b429f4bf038bd900bdeaa1a4fe170c67bf7edfdf5ccad391d2050780fef9d5b75fd19380d6ae4b6feacdfc38f416dda83c1e443085ce3c443eb365de0e920617f2a358d6f8d66f4d81848808abb85ca5ec45cceb05488f1b8bda9dd53d5ce648244407192f4be7da43cd7a5243150e2fdcd097cd2490dc4aaac882b7e0cd3ebabfba73c9185a8cd767ca55d4c43149bef91b16eb02a947f9b5eb1c665b7e9d7dca98db006284fcb85ffb89e2faa08af8765e5b287fccce6a30c538b1c454e18c103c7386993c01f4e10223b40478ab4849e5469ee88aebae39d3e1a3374a4ad05cdab2037912c7b67ad711ac93e446936a35d2cf9c8407d930bd86ba2b0b6b3d19f0e347bfb637357ab6d6bbdb74080fc813e4ad6141f8bdb22cf5dd27ab1858f13915621266f472efb62a093bd8f04f5bf4a0c265f33f66957091cb7e8902527f4bd2906ac9f7a4efb5009821630fa67f956a3638c1fe8ee198ef7b252e867a0ff24f6247be7ae70d127064fd0335b18a7292d00d29b7e26b36d4f522f5cda70681751b5fa0f835d37a38be5413b84b9941b1093b1f59c2ac37539b5c3ec1a2f137f1f1817a49585dd3bf5ea856de132bf453c1e331079c79d52f83e5def332793f6fee82e405fde010b8b7f36b4f0f5fc6e7fd6e3f902765fd9c54ba6981d07ac7f94ad1df9abc472e4b753f9d60f8b22b0148d1fdf1de22eec47353b34db34c53c40f91414b512c86b2b6895fe3e807d0220f7514f475de54a3d3319a5b6579c82ce1f27c1f39e42b8edcd02a7747e2fef63e29736a191c09218d152a801278ea757d35a8d683b29e98fe4540334d8d02dee736725db60c6dc963986e9b12bb3e048ebda59a9bebf5ee1adef924949d346c99cba7a01743946d9e4b32f8a7cd66c9e2760c14d4846b751477d6bb5f2b7c8e84f16215267a5d85a9b045021fe4f44222ac80b1ca6dc0b24b7e05f1c5b1282b3dfab5db88a8d83b5b846b2b2b81f906883cfed4ad39daf60d612fdd4dab9f8c3a866be2ca4aa66de4927d47074aa56e52da24196fc09a44a652946d5b0dd1a2bba67b2f0ad11973246769df1a9f23d6c6bdda0d589699e124008acb1644e4029660f061d676cfaf09e5fdc5f22eeccabf2143d8ed3329e280724c711c4f196f648f05417c91663cfb1d36d5254d757bdfe5742ed23c1ebc9e703d5278201bf002942c8855295a6a37228e9af11103654738aa2b1a9f51e8bd0af07f9f9445430f2e9f18e6eb940cd164764e0db43fe106d9159681a24a868e3a1051a169d0fad31095537ac545e181c58d95422fda3ef1ea760e467c54af0772ea7aa121089d72da3b387ecbae0dcd4d41dfe8c0eb92a20e04938819b3df45297d1f72e5471361a7a24b70ab7d729894349c862e050295f693e9a056b1eabce16889f55b28ba54e8e32fed3bf2ae7d3eb53861974b66d5480976b95fb7910cf3f1958a613e7988d1f7cf7bfdd696edb737dc8da0f4ff7d58a90af6d6feef94c610b8ed203110606ce2701475b82a97ef4b892909000c4dc8de7815d7c5b264b1c3fee7d8acefe8b13f9aef35626436707e4bebf9cc41efd5b5d751144db2c2d701df6136e2e5b11b2ca7e9f08b0d733f71013bfb84ecd93efcef801ed2861676d80edb71aee2eede8ef534789c01a83ede4f25784baebe78714e5057616bc529d6e941f642ee6100f86bee861f77b52e7c46eb2670322fe2b40e9af5e3409c61b063f0b1f9813940e97c61a9eeac4af5f4114933ade9a2226ae42ec1120c0676652e8317a4485850d26a5632839743fd96993297dacad20a4e84b33bc2e54c2d487973cb202c4e2e836601bb8afe5ed65d9ded9aadf3e3c5b57c29a1473d4d6df0f54405b609fca26048e3c2a7d4c1b1a8a7667a7b4a084c6d1b659c6bbfd1367e5b4354e76d83a381d7afc94bf2acd290cc874609ef0de433bc8a13b375d1b70b589324dddc04aceedd8b71da494458831bd531f9e86f03c72aab8aa3db9440bd10ca260ad73d796bb37495c2b06903a88c64345d64dc4ea23858da0ea20fbc3909de3b74b5a558f0fc4cf17518487c3ccfbda8c18e3a4cf5bc90402bb279326db3bc6272692f6bf56c99d81b3fb20412ae8f6970060c8412c903a80fe64f626462b4d0e1400a03b29b7b4771e922c5b5f9960f5a60e933bcd483c2d0937ae7fff6feb49a7ca2efe22454d9f2fba3a0837e61cdc8024bd6aa913a663355de5d866a9dabb642e1a1be571211553f3ad5f513e6d16ce993161457d8c39319a43779f343335d825a42d10f8b63903d28bd5cc8e3089a6c32df5a0c41f532a8ea4825ba7404657a37173e44670bae74a33027cff2c7ab7848f8bba4898168f89c4c6863011ad10c484bbb79ea8896a525cfa1c5064ea67cdefa9cac9d901118466dc5b055e8ff1e1b4d1adad2b500563b97a9ae0f2212a68f1bb248ed99917533675cfb482486a15aeb0b4cb8bd2f7bf07b5f0a643989fa3393bdd9a0ad828e5afd58dc3eae95d7a45403fba53daab11a011093a1644b18c692e7b78b5bbc8086148e49e2328241c1aa6d2d53c052039321f114b3db890316fa6c482ad7bc544ffef8cecd89319d388b990cc5ea1ca57ece492377f626f9b6274bd3623342b1f6ffda835b4fd1b57c36f3a8037cf76a5fb055b1cc83ddf903c395ce3b4fbdba8826278ff3808af7b21ceccd0fa6a85336d576e146996282d3196aa709cb734b584339178cbe9cefad377001de2bbb6f851d8bbba745dd6ce6e0eca2f5c624d89e51c0ea6cb57c6ecb449b4901455ec8e1cbfa798acf8ff8d1acd4e0376a807adabbcc794727778a3bf97aa6766bd31adc5a25d4501c9c82798086a561b1789a69566975421d6af0f0faea89361f384006b6c470971aa00f3e68f3cc0ad6e1a7bc27b321d15af774afdbfae50f0177cfbbb8fb86e8a7b6c94503f3a484eee624f28f32b5842f8ed0e0deaf02c499f4964889836ba7c12acedbfb289b14c4d335b9843335cb4d2ea301288312c881b97a8e2eed2040d882f951c8dd7412b4098712cda9579cae4e7923b80ecd0478113453afc3e200a1bc048eef016afeecd768d17792ec8a1beef07718053a0fbe1446addfd9500afea815a92dc5735068d24160d4bf0182370addcbd603c882ff736214742da6d8c5374d5c1143c3186d94a730109428600baac495ca52f154bb5393f98e9953d0d43e2d5698842175f794a22b70a0db432f3c73aa165023cf811aa452ea52b4da68ccda8b2ca7e0785203ae2a2a79d6c7c0f187368447fe53b2a5b836cd3c3f715e6a9cf34e540c3b3dab21127b223bf1027436a6866a76f00e68690859daa4ddca6419d45153892b6fcbb8f8a11467a92a5cb6ff9a764911654a2dff831b736352520d3ecdd5843630fecf6585a07afe39822149be3f59c716e25c07ad671e16e55969b798e44e9feb14af17f45635cb01997e5aab5c7ddb500fa56fb2c856ac8965b33e960d6436b8c42bd77d33394c57e0c06fbf60e6ae6a3d11931b4868db4e28b76b94d365666aa3ff308a9d8cc5d49c87d747b29950ac6b24593f3b3246f849d5e2774dbadc5b0f29a204dbf4221cb4e242e61142025d03725969c374c8c7e766c66e43b6ac12d294427ccaa6eef9055112aa5df5d15b350445afcf8eac47f4c9a3f170cb8d93943dc260a15f006af1bea21fa64c312e34ea549f38b862916309216ca356076805fc624730dc6d915e89b8d3a54db2a95725c13c22cc9d812ce7413478dff425d0cb57e36b76d666fc1ccff7b9db454d552bdfdbf4128a60cf712a862186ba38cadb0a0f182d2ee973f0779b30a024c48194e0eb4130177098e8a12b3f7f04f62d5ee7731fcd3b291371d647b60189a0aa823af4fc5a0084183df55c924982afccce6783212a38c615236cd6f7411606a0728e9db98a06850062b4b0579e8a4f7521a3d2003f583d85f6ffa65cf8bb4575db90a0d2e0c1f27389a5f9109f004a73f74e476482c2c698268f6eaec62054f85dcbceab82325c2557c37c3f170d74e314d8c8cb18f6c66c9dd6d082650500ec6020c54e24f5d7d46463a3a448bb2e65cb9956a10a8a95669e6fe6aaa2eb733d27330e332da42eea7df5e707585aa130f6ed0beb8bda957d22523dc966931f8b42a5d5a9501565d8d3f318c4e002e6cb96cdbfaa36652762213f73cad1e5acfc367b87c1f6529b96b7fe845a8c913b505f21ae8ed810c01af6a3955aca2c7ccf6c0a976c0c2747776e4e3388bedc156c7331fa232ad67b771b65c7a58f94969b393552000cc08eb7dcb17952fb55cfd54cf74b5ce4404263cacf0d9af746d1fe1a9f1012c898367dbe8a9f804e8ac56088c4728f678d0b0d29481176bad3305ac4525f27add1f4a2186bde78c4c3e8ee518dd8238a476a62a83d752e981613ea27a393cc649e4b1d12e39e75d79f77c6d1438f9e64caeaffc34d1ea8e8099a5189992de5b87732637efd7b6aa12366306c11bdae8928bfc7477b530b813fd8be9f30c06405b4ff60b37af3ec7aee6ef4dd948a0b87e7a60e2374c59de654b43c265260b14fdb23478284d2a8ccfa763e0546336ef3a612a8f31073618214c04b20ecc4d82ff602f9513d2fab542dcbb031bd4fa1f3785946becab6085e62c3a4db1b9a1a65f9cc77d06bc70ca7576caaaf2fe7f53aef6f102b027e62fa535c8986b9c9c679a0f1168a5f63af19604b640f37ec334b018f1cbe096fbf757f1bb79c535cfd8374a71b9bc01bc8db4c6b41271673c0898ffed945979de9e5e100d1735e284f98f8b5dd59ebc0ffdff79074abf7654eca67543909210304a7200495a572fbf4ddc97e7247a9e82d354b79313126562897e05d2badec7b3958bc251cdb0137cd6124d9c406d3200e90e11971650a5ea1cc1329debffd2d0cfc879c8efe5c11468f248fb7c37e044fbbda90ed9ac61b4eb533b4a71b634821626736118f8a253bb2481bbd409faf7197d685b045ddf9751e26a8d1d5db272c88d08263a971cd8a614e1fb7ded91a5c28308e5d6b5a4ee027c2ce224c1f1cf01aa4cb0f68614f6e41e33bf007928274a6dddecebfdf375cd00a0679dddeadf62977f6f1d87c05bef606495cca9d4367f6eb13622b6bf1918d40d035e74ad54df60510ada5eac2e261719d179d6e749904b7aa034e9963f88fb4c56cfda0dfd7fb724f861a2e5f5413e8b3f25157613cfc959dcc0ba678d914f6d0cc74177da356601e993ba24f1b9859c86c1cf103cdd659b53ab66eb321ff714e88264a745c646ab413347e018b9863e0ab40eeb6b8390cac4768f159e3aa13f72aea7c79066203e65e3226efc812df5fab6fbc607c2128ab4e3626bcdc26506af6c85b4bd743bea6768d65d4d694c595bf875363597d4698d606acd64347f4ee4f743d02c095937f25a9cd00983afcad8f2c3e7a57578bfd709c3c7a08a86672a9e17fca61b289fbaf3747eac3e92c59310b7fca03aefa2241013dd3bc06794862f1ca4978dd6403d29bd2625fd86413da0ddadbea0df0300a794e4c2fe48d248c23c0e6e05ea9acf0bc2186b13997de2aced36d37b3ddfe2bdf01af5c22b4ad320c11bf8fd510374fd02a9a3ad58861cc20164319165bf819c62a28babd815032af600559e6e75f0dfdbff56586bdffb41c518c970ed6ec10074dd5d6b1472f41af7cff6ead3a4471c67896143fab054f7bdabf39bbe0dd84c73841f97af1336da26716c0d045645b4e3095acbcd792226de5206238d3f3c9a69ebdea6a708a73aa07c3f0ca9103c3469488807ed6294705091b54c74fb2894aacf55b4df1eafe554f1768c9efa806819dfebdd26266f1681ff5c9dfeafe3baf1b98f4fd107628ae6cadeb1eec605e61b554ef7e2b724a55ec6d53ffaf99f837cc2240cb7857c9c5e4e38393d0f927b5141884db0c0f279e64398a0ff153e4d561723675677f4d2bc84e34fb86c71a591d95268e36ec42e63e7dd7883e3345a84dc79e64c557d5f78be01aa4854ce57edd1960cda28cceb59c8b449e7bd0566ef9fa99dc64221352b2d74d228998d8ed7687ec03ae5d4c74f8a57d837d43a32956a113903e9db94b8f7c7204aa89b3e62b627ad761687efc0aaeedd4ec0adf035c6c8ac9eaf084a4058373c5b02c4ce0bc60506d4aeb81b15228c066735cf78059209876ff70949817bae8f57ab4f613499b6d6ebb075d71ecb2dca413ca7b742f29140f0f154dc556e56d37d2e3951b021496b8a62af947b4118e126ce8ca7c57ab37ebdb0678b24b1006913fc2a6f5f0247e67cdf17989b33a9fdf7b23d582dd7a8dc042eb94084105b3ed5805b742d8b63f5faecccb1c4c9b9556274b5d6d4f3dc50e6632600359536945f5f73280ca3d357816bdb1c46e06b0def60fef3457115232655e9da5c7edaa4a914b6ce28563c54f5eff25d76ab05cfa87c42578b8c19b150fea61f939a10444bace2934612a47b0cc792232a36a365e013bad83204498610b8e235ca36c8751210618084444237800fedfe773352d1cd8cf49b6cb514122ba118e96d6df12d51893229636d435b80eb4e84c895f93c3362c980172ade4856d8f72aa4298593229e5ee69afa3a6a0068bd2e84903244911c454c673cfcbd3682713b07d1b70f29f7aabaefd09169f17092ca31f12738436a5c44011531239513b193846333dc4d74f8d77270010ee1044a27d98bf09cbb92d81bc5a2db74563a03b59f1209724ef5ab04e654a41bfd0733ebeb9c43cda5428b9615d30b2eec8332a4d4510b3d65ba6989cdb4f0c09019b77f286dbea196b1ec1862e28de16c142b087e7b771f15ca3c80d60fd9b773922f5e0906e15d2a8821968c23f8dc04be71f0ac38add76fc8283e9b89359e8d2fd03516e2df2846ab064fe6be4350f71e9d6bb233a9c0bd78f2ff8484570c7eb9d6006152f342497a4b712739dbf2073909f3284828911bc1740448dd3cf171ab1a31294b628cf16f35404f3937be6854db214a86d7c61b535f2905f50307f8657fcfcf80cac76a917382da25d4eb97bf5cce42845a1388371bc70db0c29b2728b9da91dd824c0f297de31ebf497931b18589f2297e8b2f24e7e2faf1ff9d5b5afa4baa6c4095cc7ecaa5261c16830c628e900ff18790a7e467256bb44c073f996cdb1ea9b149f0c4742ce2d7ccfe43fee6f981f3999a39c90b11411711f24afc4114468daac33ea2cc782989887f5b18fa1ac8aa3612995f5033dba7d8163fabe1c86a32c6b1e425cc896f8ff25e2eefb0c6ecc56a3463785644572781d86f8b22d920a3c31f161b8f08cc0ca64baa6dc024a229f95772a7eb2e463e1fdec5bab0f490453dce39b1ac9a8d48b9dee0eaf6626c25bbc99fc9ff2638a5e1cf195ee359214fb957194eecfef7f49809a6c45ad0ef5d55b0ac709d072bbf1db362b4824ce23928bc2c6b6508a9d2fd43d328c2064aa774b4b70a493a04e6a2dd7ad9b91620cfa5f3bd1ed141c7ea29436b809a94b07db2ee89f2485e95b75efef4f1ebc071488f71b24b9b48323a823a11d2431ea86dbe9184ee82bc3ff7e5a0f99ca74e390a56ab1a62a75de0a0585e722b058d908caa6d216813043da38fbf84d2563cda1eb6473864284cfa13362b00bc82a9b41495b73ce80cf25a08c119445dadfe4a99c295e3e7d8ad570b1e90b19b9893e2df0b7de11619be77f817f794a0646c2ba652b8ece2b047a9acb6a10c81fb747a494280c6879a8aff7172e6018318d41138b7ad7a52559c04d8b088f91d7d90cb7994d65d97fc1669182b45659b019c73866654e2adf8e30dbed46ca07399106c44d772684eaeca73424fdf4f5840d5cf9a5a906c3e63751ed8026e6edaddb05fec2f6fd0b1d4cf379d91c039e04a0c67bf5384c9fd450323bebb31489a230297ee3819f09d16ee5b29e95e0ff75be870e1574ddfc4e8b1fd368b03e483400e93c16f83ee6ad4dae2d18e0332c336858546691111197d4be2844d6493c2480e8583a04abeaa610195b859a77f0da350c0717dbf2fa2e2cd4591374fc8da85d61b19c74b4a2e27980ec404b7e79f35286c84cab85bef3d997f23dc47e1d52f3830be62671cba7419a54ac2060d96fee79db86d2ad1e162bb5c8e31614f92dcc7d6d047909c85ad712c500b95977e34b343a159e2953e455c661dd171d4f7809a5944c4031388458a44af5076091024222bf1d88d3dee76baebd99466fe7058862c3b8caac7b7cd44ccda24844862873abb6f70995ca8c5721271c7700fa9753c3055ab6bad09f2095410315bb1594a814cdbee3f04c821989cc8d171f437842bcaaa8a17a348586b6ba50604586308a5049877cdd19ce9eb81ab4e1eab3224e9b409c3503cc450b3bc6e4c2da3024e7d56a00cc4227e9fadc58076e7a78db383554fa98824ee64a450275cee9494bcbd6ade5ec2c4f34902f7cd09250e74869075e4e91980b3d5e3c843406684b0fe7962f6b741a057e84b4ecc5367dd83a4d86e13ce38e13b8c3bbccd4a0e3a7ee765198a88aa3689c2cacb2ffe4f56f5a3f1d7b84d0a15fe2330f377ab4e38c1cd1def6f032b6d4b54b887f65e531d806323f5ecebcf1aa3bb69e970f4197949034dc302067f00a89cb6e092857f6896c26dcc49a40794bafc1e8ac65e366d9923dfeca329f6d3b752902426499d8f872c086738ec7a62a3adf08b8724cf7c4ad76c88dee7619e65219db7e088b7ba41f3f8574f59a5973b37e92d7b0c10f95980b5cddec0e0a8c0b0c42f6cb5394bddd5eb95968813e22327dd84056227402d77c50644e90bd16a85d634e6b2f068c35a56d17ee1d0bae62516dc58a5a79b612f68609ed9881a0e0971fb5cda991c225b84fa447d7eace9c16ec885437ccb429f8834d21b6030fbe7068d0f325decb5da04579878e214089fde1abbc913edea3d75da64472dd33725c592065a59b0c785c3014ab1e30f91a1049c13799cf0c3f7058ba222b6957a2d7d5913ae0002ac06b2744fbb62a906eecd63c94d8275dce358d2666a8fdf8c57692685c9ddfec7d469ed814109560e473eadde8dbd8ae92140842d79f951ec2d05d0a00786e91a3a28abef18ff91fc4a9524d41be7a3f034ca37374f33dee7792511dd9af7ec14aedcbf1e14402815b00fec68ac994a54aaafec8b101855d0d1dcc87a4d4f32f43783e21ab97b141e83082f1d1893d6af36e2552e71b95ff64972cc20707c808bcfd1f31b2c936d5f2670b1a6356b48ee2c71de94c5565c43ec20a5fd49db960183f4c815f2617594b215fbbe7b76fab95e6b2e2af4799a17c62484a8b36b33ee1fe1f99a52a5d16a387c90d6d3324bf909a5eeded8aff595a0c1b8fb170d8de5adcd15947fd777bdde8402ab5d6912963d674a8ccdc0b7e6dc25cc3956a6013f61d84e14746471fb1faedc5c1eaf4040f0929b47b6c20fe45f0f422f3b66d03595b16273f90f7d7f9a1d175aa056de18058301dfd5e290ce365d46c3bb33db394420e2d72f50fb5bbe89348067d0fc6f30224feddf591c4e0f771750c24bf929e10f3f2df6391d93d2f5f4f762f68b1d136aec8c20b12389bb24f2dbdf89129cb366e86e041061555611e87ea59f7526f549a8ccb5aaa69eaf8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afeelibclang-cpp.so.15libclang.so.13rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootllvm15-15.0.7-150500.4.11.1.src.rpmclang15-develclang15-devel(x86-64)cmake(Clang)      /sbin/ldconfig/sbin/ldconfigclang-toolsclang15libclang-cpp15libclang13llvm15-develrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)15.0.715.0.715.0.715.0.715.0.73.0.4-14.6.0-14.0-15.2-1cmake(Clang)4.14.3ehy@d @c™@cctcgcZrc< @c,N@c*c@c6@cAcc@b@bbL@b@b@bbm$be;bI@bI@b$@bb b D@b[@aa@aNa@aW@a(@a(@aXIaE````y|@`)__@__S_@__@__"@_*@_ @^^y@^x^h^c^=Q@^;^9\^8 @^1s^.^^^@^!@^,]]@]@]N@]]{@]]c@]K@]b@]b@]]2@]V]3@]@]]@]\ \O\\\M\@\u*@\iL\=@\ BOOL- Let new {llvm,clang}*-doc packages "Conflict" with older devel packages, which they were split from. - Let doc packages conflict with older versions of themselves.- (Build)Require only python3-base instead of full python3 package, the additional modules are not required. Helps shortening the build dependency chain. - Remove python3-* requires from lldb9 subpackage, and add it to the bindings/pretty-printer subpackage (python3-lldb9). - Add python3-base Requires to python3-clang subpackage- Add dont-install-example-analyzer-plugins.patch: Remove example analyzer plugins from install targets instead of deleting them. - Add fix-module-test.patch: fix test instead of deleting it. - Don't build static libc++ (with ThinLTO that's not useful anyway). - Don't build libc++experimental. - Don't package libc++abi.so with libc++-devel, it's already contained in the (required) libc++abi-devel. - Be more specific about files in libc++-devel.- Update to version 9.0.0. * For details, see the release notes: - https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html - Change License to "Apache-2.0 WITH LLVM-exception OR NCSA". (https://llvm.org/foundation/relicensing/) - Allow building with ThinLTO and enable it on some architectures. - Disable LTO cache in lto-disable-cache.patch. - Unset MALLOC_CHECK_ for compilation to mitigate lock contention. - No debug info for ppc like for the other 32-bit targets. - Clean up _constraints: same constraints for 32-bit targets. - Don't use BUILD_SHARED_LIBS for Clang anymore, since the newly available libclang-cpp.so should expose the full C++ API. - Link tools with libclang-cpp.so by using CLANG_LINK_CLANG_DYLIB, similar to LLVM_BUILD_LLVM_DYLIB for libLLVM.so. - Remove obsolete n_clang_allow_BUILD_SHARED_LIBRARY.patch. - Add link-clang-shared.patch to link more clang targets with libclang-cpp.so, especially libclang.so. - Add link-clang-tools-extra-shared.patch, link-lldb-shared.patch: link targets in clang-tools-extra and lldb with libclang-cpp.so. - Simplify llvm-do-not-install-static-libraries.patch, also handle Clang, for which we now get static libraries. - Package documentation for llvm and clang separately, recommend them for the main package: they are not required for development, but actually useful for working with the non-devel packages. - Recommend editor plugins not just for llvm-devel. - Recommend libstdc++ for Clang again. - Move diagtool from llvm to clang subpackage. - Properly distinguish between %{_relver} and %{version}. - Drop aarch64-disable-memorytest.patch and reactivate test. - Rebase clang-resourcedirs.patch. - Rebase llvm-normally-versioned-libllvm.patch. - Rebase llvm-remove-clang-only-flags.patch. - Rebase llvm_build_tablegen_component_as_shared_library.patch. - Rebase set-revision.patch. - Increase disk space for build.- Make lldb recommend python3-lldb (it contains pretty printers).- Use python3 shebangs everywhere (boo#1146533). - Drop obsolete opt-viewer-Do-not-require-python-2.patch.- Remove unneccesary dependencies: * groff, bison and flex don't seem to be used. * jsoncpp is no longer used since r338461. * Move some BuildRequires to subpackages. * Don't recommend scan-{build,view} in clang (boo#1145444). * Devel packages are only required in other devel packages, when their headers are included in the installed headers. - Add versions to Provides/Conflicts except for files. - Remove unused (since r268685) CMake flags LLVM_ENABLE_TIMESTAMPS. - Fix installation of opt-viewer files when python3-clang is no longer built.- Update to version 8.0.1. * This release contains bug-fixes for the LLVM 8.0.0 release. This release is API and ABI compatible with 8.0.0. - Don't run LLVM tests on ppc at all because of sporadic hangs.- Increase RAM for armv6/7 to avoid OOM and be scheduled on fast worker- Use the documented LLVM_ENABLE_RTTI to enable RTTI instead of LLVM_REQUIRES_RTTI, which "is an internal flag that individual targets can use to force RTTI". (boo#1139584) - Drop obsolete llvm-build-tests-with-rtti.patch.- Exclude riscv64 for now since it fails to build.- Change some groups: * put libraries in System/Libraries, * devel packages in Development/Libraries, * clang in Development/Languages/C and C++, * the gold plugin in Development/Tools/Building. - Add some URLs, use https:// when possible. - Remove unneeded devel dependencies. - Only suggest a C++ standard library for clang. It's also a C compiler and needs no C++ library when only used as such. - Fix Supplements for editor plugins. - Fix some rpmlint issues: * Reword summary and description for Polly. * Fix /usr/bin/env shebangs. * Remove executable bit where not needed. * Move bash completion to /usr. * Remove hard dependency of libclang8 to libstdc++-devel. - Make rpm macros work properly. - Remove sources from documentation. - Run %fdupes on the right directories. - Enable tests for libcxx. - Reduce memory requirements for compile jobs depending on arch.- Avoid relocation overflow on ppc by not building GPU backends. - Update baselibs.conf.- Disable LTO (boo#1133254).- Fix packaging on ppc: the sanitizers aren't available there, so the directories /usr/lib/clang/*/{lib,share} are missing. - Package LLVMgold even when we don't use gold for linking. It's promised in /usr/lib/cmake/llvm/LLVMExports.cmake. - Unignore test failures on PowerPC64 architectures. The failures in ppc are unrelated to AMDGPU, so we remove that remark. - Fix dependencies: the gold plugin shouldn't depend on llvm-devel. libc++abi-devel should depend on libc++abi. - Fix typo.- Enable libc++ on ARM (Needed for tensorflow)- Update to 8.0.0 * For details, see the release notes: https://llvm.org/releases/8.0.0/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/lld/docs/ReleaseNotes.html - Drop llvm-unittests-Don-t-install-TestPlugin.so.patch, llvm-drop-llvm-optional-clang-specific-optimization.patch, llvm-D51108.patch, llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Already included upstream - Add 0001-CMake-Add-install-targets-for-utilities-to-LLVM-expo.patch- Remove -fno-strict-aliasing, which upstream doesn't use any more since r245304 in 2015. (http://reviews.llvm.org/D12036) It's probably also not needed for modern versions of GCC. It was enabled in r105644 because of some bugs there. - Add a clang-%{_sonum} symlink, which is referenced by /usr/lib64/cmake/clang/ClangTargets.cmake (boo#1120098) - Package clang builtin headers with libclang. The library is basically unusable without the builtin headers. Currently consumers of libclang have to require clang as well, although only the headers are needed.- llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Fix crash in rustc (boo#1126907)- Allow use of Gold linker to be conditional - Disable Gold linker on ppc + LLVM currently doesn't build with Gold on ppc- Readd clang-7 and clang++-7 symlinks * Fixes uses of clang-devel (boo#1120098)- Update to llvm 7.0.1 * This release contains bug-fixes for the LLVM 7.0.0 release. This release is API and ABI compatible with 7.0.0.- enable gold unconditionally like with llvm6 and older - reenable openmp support again for aarch64 (like it was already in llvm6)- Use %license macro - Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Remove ppc from Exclude field in spec file - Allow use of Gold linker to be conditional - Disable Gold linker on ppc - Add patch to fix SUSE GNU triplet on ppc * clang-fix-powerpc-triplet.patch - Add patch from upstream to fix ABI issue on ppc * llvm-D51108.patch - Limit list of enabled targets on ppc * PowerPC;AMDGPU;BPF;NVPTX - Ignore testsuite failures on ppc- llvm-drop-llvm-optional-clang-specific-optimization.patch * Fix ABI incompatibility when libLLVM (built with clang) is linked to a program build with gcc. (boo#1119092)- opt-viewer-Find-style-css-in-usr-share.patch * Make sure opt-viewer installed in /usr/bin can find resources from /usr/share/opt-viewer. (boo#1112730)- llvm-unittests-Don-t-install-TestPlugin.so.patch * It is only used for testing and is causing failures when processing LLVMExports.cmake.- Update to llvm 7.0.0 * For details, see the release notes: https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html - Remove no longer needed patches: * llvm6-fix-gdb-index-crash.patch * lldb-fix-build-with-python-3.7.patch * lldb-add-pthread-dl-libs.patch * polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - Add tests-use-python3.patch * Prevents tests from failing because of missing python 2. - Add llvm-better-detect-64bit-atomics-support.patch * Fixes build on i586.- Updated llvm-remove-clang-only-flags.patch - Exclude also "-Werror=unguarded-availability-new" (bsc#1106000)- Update to llvm 6.0.1 * This release contains bug-fixes for the LLVM 6.0.0 release. It is API and ABI compatible with 6.0.0. - Remove no longer needed llvm6-fix-InstCombine.patch - Add lldb-fix-build-with-python-3.7.patch * Fix build with python 3.7- llvm6-fix-gdb-index-crash.patch * From upstream, fix lld --gdb-index crash.- Do not requires gcc6 for older sle versions. * llvm6 is not built on <= 12 SP3 and this was preventing build on 12 SP4.- llvm_build_tablegen_component_as_shared_library.patch * Build TableGen component as its own shared library because it is not included in the libLLVM library and is needed for ldc. (bsc#1086445)- Add patch llvm6-fix-InstCombine.patch to fix InstCombine init * Will be fixed in 6.0.1 release- Do not build stage1 with debug info. It was accidentally added with the use of %optflags. This should fix out of memory errors on 32bit architectures and speed up build everywhere else. (bsc#1092697)- llvm-build-tests-with-rtti.patch * Fixes build failure with gcc 8. (bnc#1087136)- Do not export Polly static libraries which we do not distribute. * Updated llvm-do-not-install-static-libraries.patch - Use external jsoncpp instead of the bundled one. * Added polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - llvm6-devel must require llvm6-polly-devel * Files in llvm6-devel reference Polly.- Update to llvm 6.0.0 * Added polly * Notable changes: - Retpoline Spectre variant 2 mitigation - GlobalISel by default for AArch64 at -O0 - improved scheduling on several x86 micro-architectures - Clang defaults to -std=gnu++14 instead of -std=gnu++98 - support for some upcoming C++2a features - improved optimizations, new compiler warnings, many bug fixes, and more. - Use alternatives for clang's bash autocomplete to prevent conflicts with other versions.- Remove liblldb5 and lldb5-devel from baselibs.conf. They are only build for x86_64, so no point having them in baselibs.conf.- Use %optflags, except for FORTIFY_SOURCE which is not compatible with compiler-rt. - Exclude static libraries differently. * Drop llvm-split-static-library-exports-into-their-own-export-file.diff * Drop clang-split-static-library-exports-into-their-own-export-file.diff * Update llvm-do-not-install-static-libraries.patch to not use EXCLUDE_FROM_ALL which is not available in cmake 3.5. - This fixes build on SLE12. - Do not force gcc6 on OpenSUSE - fixes build. - Reduce the amount of concurent link jobs by increasing their memory requirement - to reduce stalls in OBS.- Cleanup %ifarch conditions, remove targets unintentionally added to s390/s390x. (bnc#1078436)- Limit the amount of parallel link jobs, but no longer limit compile jobs. This should prevent running out of memory during linking while not longer slowing down compilation. - Remove build dependency on procps- Reduce disk size requirement to 30GB in _constraints. We no longer need that much since we stopped building static libraries.- n_clang_allow_BUILD_SHARED_LIBRARY.patch * Allow buildling clang with BUILD_SHARED_LIBRARY while the rest is built with LLVM_LINK_LLVM_DYLIB. (bnc#1065464) - Remove clang-devel-static.- Place gold plugin to the right directory. (bnc#1073210) * It must be in /usr/lib/bfd-plugins on all architectures. * Remove llvm5-gold from baselibs.conf - nothing needs a 32bit version of it and it would now conflict with the 64bit one. - Reduce _constraints requirements on 32bit architectures. * Since we had to disable debuginfo on them, they require much less.- ignore make check error for PowerPC as bypass https://bugs.llvm.org/show_bug.cgi?id=35871- disable debuginfo build for ARM as well- Delete intermediate files during build to reduce total disk usage (bnc#1074625)- Update to llvm 5.0.1 * This release contains bug-fixes for the LLVM 5.0.0 release. * This release is API and ABI compatible with 5.0.0. - llvm-do-not-install-static-libraries.patch * Updated.- Increase minimum memory and disk sizes required for building in _constraints.- Rename python3-lldb to python3-lldb5 so it can work with llvm meta package.- Rename python packages to follow naming conventions. - Remove unnecessary dependencies on python3. - Make opt-viewer not require python2. * opt-viewer-Do-not-require-python-2.patch- Switch to python3. - Fix %check tests when used with python3. * Define LANG=C.UTF-8 when running the tests. - Add explicit Provides/Conflicts to llvm5-devel, clang5-devel-static and lldb5-devel. * These are required to be validated by obs repo-checker.- Use LLVM_OPTIMIZED_TABLEGEN to speed up build. (bnc#1064786) - Fix files of lldb4 to work correctly with update-alternatives. - Remove Conflicts clang(LLDB) from lldb4-devel - it does not exist. It would be provided automatically, but no such cmake file is installed. - llvm-do-not-install-static-libraries.patch * Do not install static libraries instead of installing them and deleting after. * Reduces disk usage during build. (bnc#1064786) - Do not build unnecessary parts during stage1. * Speeds up build a bit. (bnc#1064786)- Updated baselibs.conf to reference version 5 packages. - Deleted rogue llvm5.spec.r29 file. - Deleted arm_suse_support.diff, llvm-add_a_LLVM_USE_LINKER.patch, libsanitizer.patch. - No longer used, applied already in the source.- llvm-normally-versioned-libllvm.patch * Change libLLVM naming scheme to match our naming guidelines. * The reasons for the original naming scheme are no longer valid, more details in the patch.- Disable all thread related tests in libcxx. Many of them use timeouts to detect failure. They can fail randomly if the machine is under heavy load (happens often in OBS).- Drop llvm5-devel-static. llvm5-devel contains shared library with the same content.- Increase disk space requirement in _constraints to 45GB. Otherwise the build gets stuck in random places. - Skip build of lldb5 python on distributions with swig < 3.0.11- Copy from llvm4. - Update to llvm 5.0.0.- Use LLVM_BUILD_LLVM_DYLIB instead of BUILD_SHARED_LIBS to build single libLLVM library. This is the recommended way. The old way was causing various issues. * llvm-split-static-library-exports-into-their-own-export-file.diff * clang-split-static-library-exports-into-their-own-export-file.diff (bnc#1049703) - Add lld, linker for Clang/LLVM (sr#517692) - Include clang++-MAJOR.MINOR symbolic link (bnc#1012260) - Remove unnecessary dependency on flex and bison. - Make sure all binaries are managed by update-alternatives - Add llvm-add_a_LLVM_USE_LINKER.patch and link using gold to prevent memory exhaustion on some build machines. - Reduce debuginfo on x86 architecture. LLVM libraries are so big that they exhaust all memory on 32 bit machine if linked with full debuginfo. - Speed up build by skipping parts that are not required in stage1. - Build lldb in-tree as one of the llvm tools.- clang-ignore-stack-clash-protector.patch: ignore -fstack-clash-protection for now.- xlocale.patch: don't use obsolete - libsanitizer.patch: fix use of undocumented types- build fixes for armv6 (skip testsuite as it requires 64bit, set the list of targets to include ARM and remove triplet hack)- Include provides and conflics in baselibs.conf for llvm4-devel, clang4-devel, llvm4-LTO-devel, and llvm4-gold.- Update to version 4.0.1 * Minor bugfixes- Use gcc6 only for SLE boo#1041469- Package libLLVMFuzzer- readd arm_suse_support.diff which was accidentally removed in the 4.0.0 update- Enable AMDGPU and NVPTX targets everywhere except for S/390. The AMDGPU target is needed for Mesa Clover (sr#485802).- Use gcc6 on SLE12- Package license & credits- Update to version 4.0.0 * See + http://releases.llvm.org/4.0.0/docs/ReleaseNotes.html and + http://releases.llvm.org/4.0.0/tools/clang/docs/ReleaseNotes.html + http://releases.llvm.org/4.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - Drop the following patches, fixed upstream: amdgpu_revert_r280589.patch arm_suse_support.diff clang-fix-substitutions-abi_tag.patch clang-incomplete-field-types.patch glibc-2.24-libcxx.patch llvm-install-CheckAtomic.patch revert-cmake-soname.patch- Enable BPF for all arches bsc#1026191- libc++ must depend on libc++abi- Stop using otherproviders() due to an rpm parser bug, use self-conflicts instead as suggested by mls.- Add amdgpu_revert_r280589.patch to fix an amdgpu regression bsc#1021577- Require LLVMgold and libLTO in llvm-devel, otherwise we get in CMake: The imported target "LLVMgold" references the file "/usr/lib64/LLVMgold.so" but this file does not exist. This happens when requiring llvm3_9-devel directly, not llvm-devel.- Update to version 3.9.1 * See: + http://llvm.org/releases/3.9.1/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/tools/extra/docs/ReleaseNotes.html- Update to version 3.9.0 * Clang now supports the G++ abi_tag attribute. * Clang will no longer pass --build-id by default to the linker. * Improved C++1z support in Clang. * Clang now has support for all OpenCL 2.0 features. * Added support for all non-offloading features from OpenMP 4.5, * The static analyzer now checks for incorrect usage of MPI APIs in C and C++. * LLVM no longer does inter-procedural analysis and optimization (except inlining) on functions with comdat linkage. * LLVM now supports the Intel CPUs Skylake Server with AVX512 (-march=skylake-avx512) and Knights Landing (-march=knl). * More at: + http://llvm.org/releases/3.9.0/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/tools/extra/docs/ReleaseNotes.html * Fix the following patches: + arm_suse_support.diff + assume-opensuse.patch + clang-resourcedirs.patch + default-to-i586.patch + glibc-2.23-libcxx.patch + glibc-2.24-libcxx.patch + lldb-add-pthread-dl-libs.patch + lldb-cmake.patch + llvm-fix-find-gcc5-install.patch + llvm-remove-clang-only-flags.patch + revert-cmake-soname.patch + set-revision.patch * Remove upstream-included patch: + llvm-nonvoid-return.patch * Remove patch for removed files: + glibc-2.23-libcxx.patch - Backport upstream patches: * clang-fix-substitutions-abi_tag.patch * clang-incomplete-field-types.patch * llvm-install-CheckAtomic.patch - Add clang%{_sonum}-include-fixer subpackage and associated libfindAllSymbols%{_sonum} and libfindAllSymbols%{_sonum}-devel subpackages. - Add sanstats to llvm binary list.- Change update-alternatives to use %postun instead of %preun, which is now what Factory maintainers are requesting. - Use the minor version to set the update-alternatives priority so the most recent version of the LLVM, Clang, and LLDB are used by default. - Add LLVM rpm macros so downstream packages can have some idea how LLVM was built.- Rename libomp to make it possible to have multiple versions available.- Split the old llvm package into this version-specific package and a wrapper package. - Implement update-alternatives to allow parallel installation of many of the subpackages. - Rename subpackages that can be parallel-installed to a version-specific name based on the associated shared library's current .so number. - Various fixes to support the above changes.- Sort a bit with spec-cleaner - Remove the latest switch for now, things should be either coinstallable or not, we don't need to bother around with compilation like this- Update to llvm 3.8.1 * See http://llvm.org/releases/3.8.1/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.1/tools/docs/ReleaseNotes.html - Use versioned libLLVM (to libLLVM3_8) and libclang (to libclang3_8) - Change versioning of liblldb3_8 to liblldb-3_8 and use a variable to control the name instead of hard-coding it. - Use bcond_with and bcond_without to enable/disable build options instead of hard-coding them. - Put buildrequires as requires in -devel packages to avoid linker errors when building packages against the -devel packages. - Add ffi support (disabled by default). - Add oprofile support (disabled by default). - Add valgrind support (disabled by default). - Link cmake files to the normal cmake file directory to allow autodetection of cmake interfaces. - Remove unused lldb components from main spec file. - Split llvm python bindings into own subpackage. - Split emacs plugin into own subpackage - Move additional vim plugins into vim plugins package - Split libc++, libLTO, LLVMgold, libomp, clang-chekers into own subpackages - Make python-clang, llvm-vim-plugins, and llvm-emacs-plugins noarch since they aren't architecture-specific. - Make packages besides llvm, llvm-clang, and the shared libraries conflict with other versions. This will be important when multiple LLVM versions are supported. - Various spec file cleanups - Rebase patches: * arm_suse_support.diff * assume-opensuse.patch * clang-resourcedirs.patch * default-to-i586.patch * glibc-2.23-libcxx.patch * glibc-2.24-libcxx.patch * lldb-add-pthread-dl-libs.patch * lldb-cmake.patch * llvm-fix-find-gcc5-install.patch * llvm-nonvoid-return.patch * llvm-remove-clang-only-flags.patch * revert-cmake-soname.patch * set-revision.patch- Start conversion to use cmake macros with now introduced compatibility for ninja - Reduce number of threads if we don't have enough memory - Add patch for the nonvoid returns: * llvm-nonvoid-return.patch- for ppc64le set memory to 4GB in _constraints file (failure in Factory:PowerPC)- glibc-2.24-libcxx.patch: fix libcxx testsuite for glibc 2.24- Build LLDB separated from LLVM. - Re-enable python bindings for the LLDB API.- Disable libcxx/lldb/openmp for SLE fate#319582- Update rpmlintrc to whitelist libLTO.so- Re-enable glibc-2.23 patch for Tumbleweed- fix arm_suse_support.diff for armv6hl - adjust compile flags for llvm on armv6hl (fixes Mesa build)- Update llvm-remove-clang-only-flags.patch to remove - Wcovered-switch-default flag for gcc compatibility.- Use gcc for stage1 bootstrap - Add back libstdc++-devel dependency for clang since libc++ is only available for x86-64 atm.- Comment out glibc-2.23-libcxx.patch until glibc 2.23 actually hits the Factory.- Update to llvm 3.8.0 * See http://llvm.org/releases/3.8.0/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.0/tools/clang/docs/ReleaseNotes.html - Fold lldb build into llvm and disable python support - Drop clang-disable-ada-extension.patch, libcxxabi-exceptions.patch and cmake-host-triple.patch - Add revert-cmake-soname.patch to fix soname handling- Add glibc-2.23-libcxx.patch to fix test failures with glibc 2.23- Remove FFI support because its fragile- Enable OpenMP for x86, x86_64, ppc64 and ppc64le- Enable all targets on x86, x86_64- Update to version 3.7.0 * See http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html - Merge aarch64-suse-support.patch into arm_suse_support.diff - Refresh arm_suse_support.diff, llvm-fix-find-gcc5-install.patch - Remove llvm-fix-parsearmarch.patch, upstream.- fix build on s390x (one typo in ifarch and one change in filelist)- Update to version 3.6.1 * No changelog upstream- Add llvm-fix-parsearmarch.patch to fix parsing armv{6,7}hl archs.- Update to version 3.6.0 * See http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html - Add python-xml dependency for regression tests - Removed the following patches, fixed upstream: * arm-remove-xfails.diff * libcxx-libdir.patch * llvm-config-lib64.patch * llvm-fix-intrusiverefcntptr.patch- Add llvm-fix-intrusiverefcntptr.patch to fix build of LLVM tools with GCC 5. - Add llvm-fix-find-gcc5-install.patch to properly find installed GCC 5.- Add a gcc dependency for clang, this is heavyweight but we need libgcc_s which comes with the gcc package (bnc#893359)- Conditionalize libcxx{abi} build on build_libcxx variable - Turn libc++.so into an ldscript so it links to libc++abi automatically.- fix constraints for armv6l/armv7l (there is no 4GB RAM on 32bit)/sbin/ldconfig/sbin/ldconfigh03-ch2b 1722621913  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~15.0.7-150500.4.11.115.0.7-150500.4.11.1     !!!!"""""""""""""""""""""""""""""""""""""""##################$%%%%%%$&&&&''''&&&&&(((((((((((((((((((((((((((((((((((((((($)))))*+++,--,,,,,,..,/////,,,,,000,,,,,1112211111111111111333333,,,,444444444,,,555555556777789:;;clangclang-cBuildSystem.hCXCompilationDatabase.hCXErrorCode.hCXString.hDocumentation.hExternC.hFatalErrorHandler.hIndex.hPlatform.hRewrite.hAPINotesAPINotesYAMLCompiler.hTypes.hARCMigrateARCMT.hARCMTActions.hFileRemapper.hASTAPValue.hAST.hASTConcept.hASTConsumer.hASTContext.hASTContextAllocate.hASTDiagnostic.hASTDumper.hASTDumperUtils.hASTFwd.hASTImportError.hASTImporter.hASTImporterLookupTable.hASTImporterSharedState.hASTLambda.hASTMutationListener.hASTNodeTraverser.hASTStructuralEquivalence.hASTTypeTraits.hASTUnresolvedSet.hASTVector.hAbstractBasicReader.hAbstractBasicReader.incAbstractBasicWriter.hAbstractBasicWriter.incAbstractTypeReader.hAbstractTypeReader.incAbstractTypeWriter.hAbstractTypeWriter.incAttr.hAttrImpl.incAttrIterator.hAttrNodeTraverse.incAttrTextNodeDump.incAttrVisitor.hAttrVisitor.incAttrs.incAvailability.hBaseSubobject.hBuiltinTypes.defCXXInheritance.hCXXRecordDeclDefinitionBits.defCanonicalType.hCharUnits.hComment.hCommentBriefParser.hCommentCommandInfo.incCommentCommandList.incCommentCommandTraits.hCommentDiagnostic.hCommentHTMLNamedCharacterReferences.incCommentHTMLTags.incCommentHTMLTagsProperties.incCommentLexer.hCommentNodes.incCommentParser.hCommentSema.hCommentVisitor.hComparisonCategories.hComputeDependence.hCurrentSourceLocExprScope.hDataCollection.hDecl.hDeclAccessPair.hDeclBase.hDeclCXX.hDeclContextInternals.hDeclFriend.hDeclGroup.hDeclLookups.hDeclNodes.incDeclObjC.hDeclObjCCommon.hDeclOpenMP.hDeclTemplate.hDeclVisitor.hDeclarationName.hDependenceFlags.hDependentDiagnostic.hEvaluatedExprVisitor.hExpr.hExprCXX.hExprConcepts.hExprObjC.hExprOpenMP.hExternalASTMerger.hExternalASTSource.hFormatString.hGlobalDecl.hIgnoreExpr.hJSONNodeDumper.hLambdaCapture.hLexicallyOrderedRecursiveASTVisitor.hLocInfoType.hMangle.hMangleNumberingContext.hNSAPI.hNestedNameSpecifier.hNonTrivialTypeVisitor.hODRHash.hOSLog.hOpenMPClause.hOperationKinds.defOperationKinds.hOptionalDiagnostic.hParentMap.hParentMapContext.hPrettyDeclStackTrace.hPrettyPrinter.hQualTypeNames.hRandstruct.hRawCommentList.hRecordLayout.hRecursiveASTVisitor.hRedeclarable.hSelectorLocationsKind.hStmt.hStmtCXX.hStmtDataCollectors.incStmtGraphTraits.hStmtIterator.hStmtNodes.incStmtObjC.hStmtOpenMP.hStmtVisitor.hTemplateArgumentVisitor.hTemplateBase.hTemplateName.hTextNodeDumper.hType.hTypeLoc.hTypeLocNodes.defTypeLocVisitor.hTypeNodes.incTypeOrdering.hTypeVisitor.hUnresolvedSet.hVTTBuilder.hVTableBuilder.hASTMatchersASTMatchFinder.hASTMatchers.hASTMatchersInternal.hASTMatchersMacros.hDynamicDiagnostics.hParser.hRegistry.hVariantValue.hGtestMatchers.hAnalysisAnalysesCFGReachabilityAnalysis.hCalledOnceCheck.hConsumed.hDominators.hExprMutationAnalyzer.hLiveVariables.hPostOrderCFGView.hReachableCode.hThreadSafety.hThreadSafetyCommon.hThreadSafetyLogical.hThreadSafetyOps.defThreadSafetyTIL.hThreadSafetyTraverse.hThreadSafetyUtil.hUninitializedValues.hAnalysisDeclContext.hAnalysisDiagnostic.hAnyCall.hBodyFarm.hCFG.hCFGStmtMap.hCallGraph.hCloneDetection.hCodeInjector.hConstructionContext.hDomainSpecificCocoaConventions.hObjCNoReturn.hFlowSensitiveControlFlowContext.hDataflowAnalysis.hDataflowAnalysisContext.hDataflowEnvironment.hDataflowLattice.hDataflowValues.hDataflowWorklist.hDebugSupport.hMapLattice.hMatchSwitch.hModelsChromiumCheckModel.hUncheckedOptionalAccessModel.hNoopAnalysis.hNoopLattice.hSolver.hStorageLocation.hTransfer.hTypeErasedDataflowAnalysis.hValue.hWatchedLiteralsSolver.hIssueHash.hMacroExpansionContext.hPathDiagnostic.hProgramPoint.hRetainSummaryManager.hSelectorExtras.hSupportBumpVector.hBasicAArch64SVEACLETypes.defABI.hAddressSpaces.hAlignedAllocation.hAllDiagnostics.hAttrHasAttributeImpl.incAttrKinds.hAttrList.incAttrSubMatchRulesList.incAttrSubjectMatchRules.hAttributeCommonInfo.hAttributes.hBitmaskEnum.hBuiltins.defBuiltins.hBuiltinsAArch64.defBuiltinsAArch64NeonSVEBridge.defBuiltinsAArch64NeonSVEBridge_cg.defBuiltinsAMDGPU.defBuiltinsARM.defBuiltinsBPF.defBuiltinsHexagon.defBuiltinsHexagonDep.defBuiltinsHexagonMapCustomDep.defBuiltinsMips.defBuiltinsNEON.defBuiltinsNVPTX.defBuiltinsPPC.defBuiltinsRISCV.defBuiltinsRISCVVector.defBuiltinsSVE.defBuiltinsSystemZ.defBuiltinsVE.defBuiltinsVEVL.gen.defBuiltinsWebAssembly.defBuiltinsX86.defBuiltinsX86_64.defBuiltinsXCore.defCLWarnings.hCapturedStmt.hCharInfo.hCodeGenOptions.defCodeGenOptions.hCommentOptions.hCuda.hDarwinSDKInfo.hDebugInfoOptions.hDiagnostic.hDiagnosticAST.hDiagnosticASTKinds.incDiagnosticAnalysis.hDiagnosticAnalysisKinds.incDiagnosticCategories.hDiagnosticComment.hDiagnosticCommentKinds.incDiagnosticCommonKinds.incDiagnosticCrossTU.hDiagnosticCrossTUKinds.incDiagnosticDriver.hDiagnosticDriverKinds.incDiagnosticError.hDiagnosticFrontend.hDiagnosticFrontendKinds.incDiagnosticGroups.incDiagnosticIDs.hDiagnosticIndexName.incDiagnosticLex.hDiagnosticLexKinds.incDiagnosticOptions.defDiagnosticOptions.hDiagnosticParse.hDiagnosticParseKinds.incDiagnosticRefactoring.hDiagnosticRefactoringKinds.incDiagnosticSema.hDiagnosticSemaKinds.incDiagnosticSerialization.hDiagnosticSerializationKinds.incDirectoryEntry.hExceptionSpecificationType.hExpressionTraits.hFPOptions.defFeatures.defFileEntry.hFileManager.hFileSystemOptions.hFileSystemStatCache.hIdentifierTable.hJsonSupport.hLLVM.hLambda.hLangOptions.defLangOptions.hLangStandard.hLangStandards.defLinkage.hMSP430Target.defMacroBuilder.hMakeSupport.hModule.hNoSanitizeList.hObjCRuntime.hOpenCLExtensionTypes.defOpenCLExtensions.defOpenCLImageTypes.defOpenCLOptions.hOpenMPKinds.defOpenMPKinds.hOperatorKinds.defOperatorKinds.hOperatorPrecedence.hPPCTypes.defPartialDiagnostic.hPlistSupport.hPragmaKinds.hPrettyStackTrace.hProfileList.hRISCVVTypes.defSanitizerSpecialCaseList.hSanitizers.defSanitizers.hSarif.hSourceLocation.hSourceManager.hSourceManagerInternals.hSpecifiers.hStack.hSyncScope.hTargetBuiltins.hTargetCXXABI.defTargetCXXABI.hTargetID.hTargetInfo.hTargetOptions.hTemplateKinds.hThunk.hTokenKinds.defTokenKinds.hTypeTraits.hVersion.hVersion.incVisibility.hXRayInstr.hXRayLists.harm_cde_builtin_aliases.incarm_cde_builtin_cg.incarm_cde_builtin_sema.incarm_cde_builtins.incarm_fp16.incarm_mve_builtin_aliases.incarm_mve_builtin_cg.incarm_mve_builtin_sema.incarm_mve_builtins.incarm_neon.incarm_sve_builtin_cg.incarm_sve_builtins.incarm_sve_sema_rangechecks.incarm_sve_typeflags.incriscv_vector_builtin_cg.incriscv_vector_builtin_sema.incriscv_vector_builtins.incCodeGenBackendUtil.hCGFunctionInfo.hCodeGenABITypes.hCodeGenAction.hConstantInitBuilder.hConstantInitFuture.hModuleBuilder.hObjectFilePCHContainerOperations.hSwiftCallingConv.hConfigconfig.hCrossTUCrossTUDiagnostic.hCrossTranslationUnit.hDirectoryWatcherDirectoryWatcher.hDriverAction.hCompilation.hDistro.hDriver.hDriverDiagnostic.hInputInfo.hJob.hMultilib.hOptionUtils.hOptions.hOptions.incPhases.hSanitizerArgs.hTool.hToolChain.hTypes.defTypes.hUtil.hXRayArgs.hEditCommit.hEditedSource.hEditsReceiver.hFileOffset.hRewriters.hExtractAPIAPI.hAvailabilityInfo.hDeclarationFragments.hFrontendActions.hSerializationSerializerBase.hSymbolGraphSerializer.hFormatFormat.hFrontendASTConsumers.hASTUnit.hChainedDiagnosticConsumer.hCommandLineSourceLoc.hCompilerInstance.hCompilerInvocation.hDependencyOutputOptions.hDiagnosticRenderer.hFrontendAction.hFrontendActions.hFrontendDiagnostic.hFrontendOptions.hFrontendPluginRegistry.hLayoutOverrideSource.hLogDiagnosticPrinter.hMigratorOptions.hMultiplexConsumer.hPCHContainerOperations.hPrecompiledPreamble.hPreprocessorOutputOptions.hSerializedDiagnosticPrinter.hSerializedDiagnosticReader.hSerializedDiagnostics.hTextDiagnostic.hTextDiagnosticBuffer.hTextDiagnosticPrinter.hUtils.hVerifyDiagnosticConsumer.hFrontendToolUtils.hIndexCommentToXML.hDeclOccurrence.hIndexDataConsumer.hIndexSymbol.hIndexingAction.hIndexingOptions.hUSRGeneration.hIndexSerializationSerializablePathCollection.hInterpreterInterpreter.hPartialTranslationUnit.hLexCodeCompletionHandler.hDependencyDirectivesScanner.hDirectoryLookup.hExternalPreprocessorSource.hHeaderMap.hHeaderMapTypes.hHeaderSearch.hHeaderSearchOptions.hLexDiagnostic.hLexer.hLiteralSupport.hMacroArgs.hMacroInfo.hModuleLoader.hModuleMap.hMultipleIncludeOpt.hPPCallbacks.hPPConditionalDirectiveRecord.hPragma.hPreprocessingRecord.hPreprocessor.hPreprocessorLexer.hPreprocessorOptions.hScratchBuffer.hToken.hTokenConcatenation.hTokenLexer.hVariadicMacroSupport.hParseAttrParserStringSwitches.incAttrSubMatchRulesParserStringSwitches.incLoopHint.hParseAST.hParseDiagnostic.hParser.hRAIIObjectsForParser.hRewriteCoreDeltaTree.hHTMLRewrite.hRewriteBuffer.hRewriteRope.hRewriter.hTokenRewriter.hFrontendASTConsumers.hFixItRewriter.hFrontendActions.hRewriters.hSemaAnalysisBasedWarnings.hAttrParsedAttrImpl.incAttrParsedAttrKinds.incAttrParsedAttrList.incAttrSpellingListIndex.incAttrTemplateInstantiate.incCXXFieldCollector.hCleanupInfo.hCodeCompleteConsumer.hCodeCompleteOptions.hDeclSpec.hDelayedDiagnostic.hDesignator.hExternalSemaSource.hHLSLExternalSemaSource.hIdentifierResolver.hInitialization.hLookup.hMultiplexExternalSemaSource.hObjCMethodList.hOverload.hOwnership.hParsedAttr.hParsedTemplate.hRISCVIntrinsicManager.hScope.hScopeInfo.hSema.hSemaConcept.hSemaConsumer.hSemaDiagnostic.hSemaFixItUtils.hSemaInternal.hSemaLambda.hTemplate.hTemplateDeduction.hTemplateInstCallback.hTypoCorrection.hWeak.hSerializationASTBitCodes.hASTDeserializationListener.hASTReader.hASTRecordReader.hASTRecordWriter.hASTWriter.hAttrPCHRead.incAttrPCHWrite.incContinuousRangeMap.hGlobalModuleIndex.hInMemoryModuleCache.hModuleFile.hModuleFileExtension.hModuleManager.hPCHContainerOperations.hSerializationDiagnostic.hSourceLocationEncoding.hTypeBitCodes.defStaticAnalyzerCheckersBuiltinCheckerRegistration.hCheckers.incLocalCheckers.hMPIFunctionClassifier.hSValExplainer.hTaint.hCoreAnalyses.defAnalyzerOptions.defAnalyzerOptions.hBugReporterBugReporter.hBugReporterVisitors.hBugType.hCommonBugCategories.hChecker.hCheckerManager.hCheckerRegistryData.hPathDiagnosticConsumers.hPathSensitiveAPSIntType.hAnalysisManager.hBasicValueFactory.hBlockCounter.hCallDescription.hCallEvent.hCheckerContext.hCheckerHelpers.hConstraintManager.hCoreEngine.hDynamicCastInfo.hDynamicExtent.hDynamicType.hDynamicTypeInfo.hEnvironment.hExplodedGraph.hExprEngine.hFunctionSummary.hLoopUnrolling.hLoopWidening.hMemRegion.hProgramState.hProgramStateTrait.hProgramState_Fwd.hRangedConstraintManager.hRegions.defSMTConstraintManager.hSMTConv.hSValBuilder.hSValVisitor.hSVals.defSVals.hSimpleConstraintManager.hStore.hStoreRef.hSummaryManager.hSymExpr.hSymbolManager.hSymbols.defWorkList.hFrontendAnalysisConsumer.hAnalyzerHelpFlags.hCheckerRegistry.hFrontendActions.hModelConsumer.hSupportRISCVVIntrinsicUtils.hTestingCommandLineArgs.hTestAST.hTestClangConfig.hToolingASTDiffASTDiff.hASTDiffInternal.hAllTUsExecution.hArgumentsAdjusters.hCommonOptionsParser.hCompilationDatabase.hCompilationDatabasePluginRegistry.hCoreDiagnostic.hReplacement.hDependencyScanningDependencyScanningFilesystem.hDependencyScanningService.hDependencyScanningTool.hDependencyScanningWorker.hModuleDepCollector.hDiagnosticsYaml.hExecution.hFileMatchTrie.hFixIt.hInclusionsHeaderIncludes.hIncludeStyle.hStandardLibrary.hJSONCompilationDatabase.hNodeIntrospection.hNodeIntrospection.incRefactoringRefactoring.hASTSelection.hAtomicChange.hExtractExtract.hSourceExtraction.hLookup.hRecursiveSymbolVisitor.hRefactoringAction.hRefactoringActionRule.hRefactoringActionRuleRequirements.hRefactoringActionRules.hRefactoringActionRulesInternal.hRefactoringDiagnostic.hRefactoringOption.hRefactoringOptionVisitor.hRefactoringOptions.hRefactoringResultConsumer.hRefactoringRuleContext.hRenameRenamingAction.hSymbolName.hSymbolOccurrences.hUSRFinder.hUSRFindingAction.hUSRLocFinder.hRefactoringCallbacks.hReplacementsYaml.hStandaloneExecution.hSyntaxBuildTree.hMutations.hNodeClasses.incNodes.hNodes.incTokenBufferTokenManager.hTokenManager.hTokens.hTree.hToolExecutorPluginRegistry.hTooling.hTransformerMatchConsumer.hParsing.hRangeSelector.hRewriteRule.hSourceCode.hSourceCodeBuilders.hStencil.hTransformer.hclangAddClang.cmakeClangConfig.cmakeClangTargets-relwithdebinfo.cmakeClangTargets.cmakelibclang-cpp.solibclang.soclang15-develCREDITS.TXTLICENSE.TXT/usr/include//usr/include/clang-c//usr/include/clang//usr/include/clang/APINotes//usr/include/clang/ARCMigrate//usr/include/clang/AST//usr/include/clang/ASTMatchers//usr/include/clang/ASTMatchers/Dynamic//usr/include/clang/Analysis//usr/include/clang/Analysis/Analyses//usr/include/clang/Analysis/DomainSpecific//usr/include/clang/Analysis/FlowSensitive//usr/include/clang/Analysis/FlowSensitive/Models//usr/include/clang/Analysis/Support//usr/include/clang/Basic//usr/include/clang/CodeGen//usr/include/clang/Config//usr/include/clang/CrossTU//usr/include/clang/DirectoryWatcher//usr/include/clang/Driver//usr/include/clang/Edit//usr/include/clang/ExtractAPI//usr/include/clang/ExtractAPI/Serialization//usr/include/clang/Format//usr/include/clang/Frontend//usr/include/clang/FrontendTool//usr/include/clang/Index//usr/include/clang/IndexSerialization//usr/include/clang/Interpreter//usr/include/clang/Lex//usr/include/clang/Parse//usr/include/clang/Rewrite//usr/include/clang/Rewrite/Core//usr/include/clang/Rewrite/Frontend//usr/include/clang/Sema//usr/include/clang/Serialization//usr/include/clang/StaticAnalyzer//usr/include/clang/StaticAnalyzer/Checkers//usr/include/clang/StaticAnalyzer/Core//usr/include/clang/StaticAnalyzer/Core/BugReporter//usr/include/clang/StaticAnalyzer/Core/PathSensitive//usr/include/clang/StaticAnalyzer/Frontend//usr/include/clang/Support//usr/include/clang/Testing//usr/include/clang/Tooling//usr/include/clang/Tooling/ASTDiff//usr/include/clang/Tooling/Core//usr/include/clang/Tooling/DependencyScanning//usr/include/clang/Tooling/Inclusions//usr/include/clang/Tooling/Refactoring//usr/include/clang/Tooling/Refactoring/Extract//usr/include/clang/Tooling/Refactoring/Rename//usr/include/clang/Tooling/Syntax//usr/include/clang/Tooling/Transformer//usr/lib64/cmake//usr/lib64/cmake/clang//usr/lib64//usr/lib64//usr/share/licenses//usr/share/licenses/clang15-devel/-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:34968/SUSE_SLE-15-SP5_Update/25e0d7b599d0996bfe3395039b209c82-llvm15.SUSE_SLE-15-SP5_Updatedrpmxz5x86_64-suse-linuxdirectoryC source, ASCII textC++ source, ASCII textASCII text, with very long linesASCII textC++ source, ASCII text, with very long linesC++ source, UTF-8 Unicode textC source, ASCII text, with very long linesPYN<ɧ 0Fdutf-81dc07ff2314c5708558f2ee0d511c27016832fffddeb18bdbb8b3a553e658abb?7zXZ !t/ ]"k%hcS_Z%WZ"a{>܄'\yCi }F<a'U> ^+Ȃ-Rf95z/uqB |XJI+^]ic1_u.̑W$A8S4w=E 4ُG) ÞF]`^ɶ o sKi|cYԬ#HgU FՄfRM$=9gV_6ɩwG{{_ϩbkΝ^czםl$D1Y<f /CR]#3i*=\%tko\ޒ?A2"-5+9=ݚkv.,l,!&s@`$o_ZU!9Б 䪐o]Ms2;n84/pwKxI G (&8EXgVy#vO50' p|u^ l2~=v!H-b,7AbS/T]ep=yokdEEI0Uq{.p]7אַL,7ǣzVK?(ZhW$E#yC/f?U8d[ =9^~K)mz~Ke< I@]ѱ^[dj] 9t9$;I#~kAcWtdVH}{MyaANW M.Wx`N'L~$Lx Hʟ@]n~ۄ)k&d(jvyϭDxlni6 ><1EzF9pY >oUǞwO\goyxb§.0Zc NT6iBU2}TՋT`]o暧G^KYqa%NϺ!DD,0zWsJr|S9\!Z/o_cR)"@ ~\ܦ5 Vh@GXrrk d~X[{~9h2#7vZ[*ؓaj@]!m h9i8h*~I:̡Z[Eq9A baV s9t/@sF&ic=g+ ?.) R Hu' m%{M{iDo[LSg9IݙVPwinrz;*aL %V [2!}*Ѩ~_C 08-[ɾI7(w D+G&tWmS)@5 ZEӂ[dkAD(ϩ#PT[~(J2]q.գYë< `?3_Z؍aKTu =c/9,v?an2n}{upXyr9jZKеh#>'WzGj0aĜ;J l?Aoé՚ݨ\ T9E`Dmx3Q;Q3ix5aP={ϥ{׵bXx c "_PǣM}r z9T<[WzL|GS,MGV;\&GXݥwaȬDzM] őGΏa-.ةK$q(Đ?d..M}#H[yG_'v^Zh)-(ŊI5Ś E5b!D#V\Bi^M͖[nOZ@d,?X-!B369 mC# hQ~ . i{Z v` dG^U,v8GطEf<9*T/拙K\ ocwcrJ[ @L۩fp-A{s\]~*I)ΜaK(;Ak %W~-ٺR}TPd<9'%^uDIAX9f l @E> ( )'K=&.slTʷ؄)Ά"5F;rG&)[ !F/A"^;PmP~|,YO9q}0H tZ}a8@q'ڨG[(XW@GoƷNi1ܶCGv~]sIӃ4,%t MgKlD偦~cTҘZŗjO-(AW),Z=_J!~ڣ^,C2QMNm<E%$܅9۟Ybzb#*GtJ._tQD78iF*.}yy'؉۫6~|s 3($&"i| 5-Q X{QUIjѯJ o[3o]i(T+h\QTơ,@B5z?+cx/\YMU*ϱ|Ü%6=nhjPg7utq?C4R͗VHEĵPK}Eq#W]Ӎ4_3Y{46fPR~'wf#-\G330 mI xFW$3+1Z玌'oU0s~o}Bz ?*ʿK"}w) % h$h*ʪ~S`ehLF^ 0=}FhU~E]Gm- 6( 9 ͫm"aWBysX*n@/t}: J`Ag0efA`%͡P^s&',tI(/x{+G(s!0ȼfR::1wvphK5k/b$Fx(Ap5- BQGq:]x-|R/ W?:'T]G׉ټ1?>oIu3,q?$||UGGOntJ{_]- qIF=BxK_*'cH%&%;]GsvbF~%V3*bݡqJ;Vh0]H:Q❄x Z;rHHmz.|?C*ܓœ ^Gy0&0^_o,Ctj611Ld&Soay?P~eHx-w;4$vZX/hv,iGw&w`ۓ2kPڱpFPB ,s14}9'34bPwfJ*w$'n@"~ B&/j^$TB&[tw,*9U7,ё>6T&;}+|[13YqR3C#FuFI1+.u>8ʵ$Eibju6A7 yFE|Q~IX(īrA*8q?G3y°PG62HcFUіg܃ߍ;P,FEL,bT<[+r iAO.&ȌHeFi/6ô:~J`OIW/p@ O|`ml,J/"Fڮ5ݤZ "