snapd-devel-2.42.2-1.fc29$>ZX150O1 U>:1T?1Dd  8 #/QW`   %  1  I      4  p  !|9:@=(=8=O9? O:J~OG%L H=| IU X[|Y]|\dp ]| ^hbd eflt4 ud v/ 00001@Csnapd-devel2.42.21.fc29Development files for snapdThis package contains library source intended for building other packages which use import path with github.com/snapcore/snapd prefix.]buildvm-armv7-07.arm.fedoraproject.orgWrFedora ProjectFedora ProjectGPLv3Fedora ProjectUnspecifiedhttps://github.com/snapcore/snapdlinuxnoarchn |7f : Tn yp}Li2u&[9^ > nfejW ^*%(/  !|h+.&KNqJ- Sjm(+!P!^;S%3+4T, %K >  t] 9 {9A(l O  -)q"NE  4 =Ln ,"7 -54 1 HG 5}e i  >i]Q3 Yi+n7I/- e 8;!=':1V^>j3w cA"n : q&|/? #_& H\ {8#-G7 <`_ BjA!  $?KH%3N Pg 13"@ +'=] l ) _ ~q#i ? =$ zT$!+?v   uj6.5W8i` :n0i Gf P \nc:T"l" o Q 2A +<Z2G I=% D% #/ U1@eh4 Fo R$FDPP/Up)vY pxcg o? &_Wy& ~3hn P "&.` V g, LDK9tq  $ 8.< "WR# ~ Y(6(H P #!(7! .3  ^ T Jp ^ (LK   2}] O ! & 0/YN:#a  ] sKQ  \ S Z `K5  &X:^ | HN)!L AR H*  ' yC $q# . u  H  %&B j f,E %  `!LN[q&4  $` 9~ *%~> = + 2 ngfA  ezU O UV -%p @ - 6 /I   ' - 1Yy QA) NS AYx ! )9\$*#E[1 !Hk Q< Dr  @w [{!P $KEHl-6 \ %dVZ fG #;*'' v#/z_P""(U51 K yk   m c     &PsQ6\@uF̍B %G}ưm,J .] cy| 0$0& Hl1>9[ q _c6bH&Au' 2BV= (p?D,cO 4F ! "D( Qc$ ~!Wb( og2._3VmR8D  !-h GQ-d n.a[r )2*Y[ZK. Ga+ 2,  !#7 ]$Fh /3L U=Cz5YWk88q1XYG-)7" z;yr /) c07e m +&? } vY lz KP5rd ~ #'Y W,%=8  g1M2g; = L]9 ,U $'MG'}T i)5s&>`>["0BC_i - )e+S&  5" &n!' MOmZ ! KN }!- e  X# SHzr , W L{s/h> 1 7~ NzH 8 3 j ,)CckUO' SKA큤AAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤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큤A큤A큤AA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤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큤A큤A큤A큤A큤A큤A큤AA큤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큤A큤]j]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]j]6a5fa5dd825aea70978a0715fd9e1b45bf0836bcdc8f85b1a158e8fee7f2a5e3211f6ad20d4133dcb18e31d9f9c70bbb51b7478939f9b85cd180fd78d71b62d5e0e0ca544d91dec35b073e31b48ef786ed552d866c467c51db69ad3ea28ec6f69f54e72ffd47d112645313d6a89eb73c21ada1ef6054ffcd6e5e571954daa095f364ee020d414691a297f5820a44d85930b43921f5e7d05d68c3e3dcded5f9c49fd5a490873c57aaedb21e56a7bab48253e70939d3110abaed37336c848182d36b24d7dfc697c2c239663346cc4014f1eae4b173b3397f99c385cd4fec9a9cce59d2bb2f8c9875933627f11478ced16af4c2dfef02366318bf51d197cd5e5de33b0ddb27832cb77fe82b6f06bf952271f2e0e68ecb99c47b1f1fbbe00df282288b680459995b1819121d3e0ecce1ea9853dc8e482c584788543143663294fe7464ae4c92ca93ac3b10fbacebdd0909d1c3a91b692fdb37a0e09384971b41c3441c2170c0c244a2ea2617e5071152ae7bc7400f661e6f60d89514e2780e38127d7a436fcb7b04c330876f75dc77ab4218e67537e1addb4ed4f7890220b796b295c6fc368ae8489028a4c21d16ad1e12ab8df4d4b057d86a20c58cebf14cdc4b72f090ba74c872ae0376aa9a3d26b3c204d1bad663fc2f9170eed8e0132d27c68de490905e13f80a90003cffae46b45454c833b9b265b0b3f8168d8a82cf8b57b620031ed513ce5396dcbbbe22e6c348d6d3ed13e26df354846676b999adb93c4b19c7c14af100d0733a413eae9f9516cf2e38538ec1ffcad5a72c5f793479db57512a69d20cbb33fcff0041ab31d2027709895312a0c00dc4f122003eb18bc20d607cef2fc2aa60373561277d7a093e21fd9a1326a97a0bab52041ce4277cb7b5346b8a69fc0cdc129835b5afcce3380ea3236c912b857fd564dc26da9870f28ad98c317521ae08c52a5007992d2e92ef2510082b33b492cf6aa434027be48e4054d790f8d3821d6ec71add2f6cd78adf26a968037f091483f7584255ab42e4901f3a18fdc52ecf139db17c077f0cb8503c3eab7c9a923c763239915a076cb096da39829e782c3ee89177f62248ee42c51c5cda2c406c2006ec6cc255b3c13d439f3f03ac2644e2f5523a117ea8334976d3b47d3f032110c7eecd629f63697797912788d3c1fe5595efb9577ba0a2d0a59660b48d4a0f51e4f8e67e0a512aeb7f5dc9f23dbf760f9a7a0f2afa8ca0831fc38471d86fd28249e46a6adfda254a76fcfc43aa926b7a983ad67a3d8e86f7dcb4f2a9534709254d535cd2f8d1d51adaa4382ffe42209eb065d5a911cf5d76d8d826d5cfe05e8863ea2984accf758086897259e5f3a6c28658b71b4e0cd9ee569f6b21749f999d7f2f248b8a3d3a6dad5766bd869cf28bded71434a3db86597ee3d35632f589e7276a57ae53cca0c68d38f1ac41e0f039b1969dff34a919a2ff9312c0064cf8775457a360fb05e55ba1261cc8a236851b1342f09c23336a2f15359812a83654e7fe66c81bf353d2117b2d231c87375ef14650ce158ddc8c2f6cb5d1edd3c739b3d68cdf089dfe0dc4667429bf06a47b017f38d3e29b350745077c929fac0a2bea1bf01cd31063624f252f76db6652d4f0451c576f5497154a56ba83a37235a61d2b1c8d8b73229a834173a73444d4ea67c0f904a01fa1537c55f06c523b1ad94625e2c1459206a3d227212303e605686c6c7feacc2c8924ebaf2f206d26f63ef816e951a2010110a0d5e367930d974ecf201c9d026f5c688a79929b71c62e165fa712d952ed45f0a664128e3c62e6ee141b9d3d66e678b6c2223f2b332bea463d21203bf4e7dff8dff7f48ccbf355bda66f3480312446f5602a9a3d0426c2f21a292fee96d3e75b61eee38a81e401d50cf1a81a9420b3e72d85c801fe6246dd6ba6caed5a3654e4b99fd4cfb3b660de8b750822f80ac388a056e9abd74aca46ac8ecb1828ecf3d26b4409011766554abede24d7266da8432156655d585a3ed1519ebed351d3abe7f51e80502aba86d84ee1eb1284dfaa75ff3660a3f34ede7f6ef346dfadd3d5be4891b3732dba40111f3c1d8d885f4bd26172664d4151d7b89f93006211889203123006d32d16c38eb8d408f7ed1dc194a1389ebc6d190d6072ed587aaae7ced8b03d5c4fe82b2fac181530c31db8bbb0fa726a986544035167532331d55e97c5ea701e90d870e854fa4f332f7bfc9235ed5c01597682aa8253540fcfe9a3800c7ea7fe83b296a402860db7204d858a1cff3d07ee9109cae92a582ae5c3e722593235c6d5407a54dc739bec876c7f024e0a78710fe77af17575e6dd6529d8f3a874eb5b5c92451f9d142d0fe3740694bb3be3bf2673b90f57d70db4af7a520698490105b8a00e0e3aa60a1dc2e3ef0ba98e076f826edafc82cc637492df4c3e3ec7663e5cba3f916853ce76dade7a056fb064266d467f2820922a4a2d84b22be7c7917870225831c83aad68e8ca406711551e68629dc3090439f1e98036eb9e4de789cd3b4ccbd2114ae2e91e67390d6acc064546d94c4c8dd52374ebb72506d5a368b369944eee59d74e561b48ef9940b463514cce67e083a827785d3e7ac3c11eb3d999b9a7699d6ea06ce806f63dca3a898276420797e176992af2949bf283b480fba7627b8a0a27100d3338c29f135a13cde45f5c4f50c218dc28d13242f7f802cd2a7cb8d40ec1152cf20ed9252a7d3c549dd617064d26233fbce4019b03e2b9d4fd172350b0a8b2ea583c7e5c7fa0f09fa5b20c6115db2de53af6e8b3c72326e810262466f624b77662297ad946160a8007d6075225642542f4e5a6993210ede435fcc0b7aab15756d6a3d609c754060ef88d3016b4223580160a91140e2627d1c5cc09bc907fed465d88bdffbe1e62330bf3ea87bfba20bbff2db031672d960a9126f6602cb9a126e8c2957bdbfe491f5911415a94832914879e73cd794a90e2679d10d9cb72167bcbc39b5401a7cab68163938ffacdd912c1a93d21149418e66681ccad4057fcd6952e324218bfce0aad75008a4a3599193e684e89963c496ecb5f00d3a501891d08a9604ff3986423dce272f0bc14d201138f2eb9d5317a7da23702493946198d3b6031432b86e5e69efce94e4f8a47f7c2a3451f0693e7245e21001aa0b43f5226e440c640927fa18b13b0400d258e86b27f8017240f43c83fc91aa9c556fe0549c50e6943ba0c61b4b624e891fb11a451a22e852251e29bb2cec9ed4b21452c7138cf1a9ee9c1ddfbefa35038b8ab468bb5df062df76ffac938248b6e438b91916e74953f4fbdffcc6c4026d21bfa2a61edc6448d2a019d28e66fdaac7060ffc36bc6e5a6102a0ff13739883913bf17ba9d975e96e00fa15cad92a045103af689ff51de7122f7c7b41c0c15dd1490f37ee692c6aff02fada84c5dc48fc43cc4fa63f1ca7f05273afe07ec6f99e3c21a6323b729883204375126eb298dd44d8503822851376038fa3aa7764a3662709dcb68f1485f5297aec85e851e56e9074887a48c5b565a6b68f53665a876d9fbcff3e9d50f6a104dc53445ac3767057068344986a3811a0a00a1ed88b4e20716a81975d4b8e7e8e694f6fd7560eddcbcd94b8e03795a01895e18a3da45eda3d49326aa9af25f7b7cd7761a56641a57436409db8596ce5000232dfd3cc2f3817d42dbc5651dc282a1127013804b8c5aef9065cc17614a9bc665bd697fbdf3784c0d5fcc98b304c762427eb73f60805e5be19749889f97d2e53eca64846034094444dbbe4791afa0f197dcf70d08c1d689800c612ace01dbc14a1d1860061492e00fbebf9efe64836a76a7e632294dd77728c840a8c2bb1969c83faa073aecb676acfdf66f7adfcdde448aaa62eb39e47de878ba34c27d660f87e5c8ee4110e4805021db5d2eaca982e3d593e7f02c651cb9e4b491a8b1f7af1a63ec9d135fb10386be1e6a4b085de1ef60671eb919c1f7d829db4f86003657638458ec3b6f325587d3191b273c349faf2436ca8075dcc08001d414f7fc0fe67c492d402a250024766afe5c8e600a82a320e5f12f48ac4943a89bc2f13d56399fb7fc6fb4b1b3f31a0b68e564b907f6a7bba1c521279b0489edee782d9ae9ebdb4498e191771e44f88a06b2808b0c95233674839fb3ee88a61d02fd5f0288bd55c0e07e3748a8a3af077fa94fe788a3c193bce901dd7d5179e33469147d2445b76489ca845ad7ec403a9738025dbe6732cfb9c8b97e88e0f0b18baf46273226b71861ab3f924887e862a29a0834b7932afb78713a6af8a9ee68f7ff9ba98e4d0704748f1cf2b9cb75bef94f666a68ad6007112155353bd78854a29d7296e8c05a5642c0f13ab717cf4def98c1daf9572e12173f9024469a7e16501112d609288e71ea1cc5a879e64c0fb55addc821c47af8961e8f85730e3d54e9f5a44a52c27f938f8092b3cb7b6a064323526ab3835da4168eb5783c712fda9ff4992c76f907a1484c4585ce574019e858eaae10d1096c7529c2a0ee481217554e6a354150ce4fc3e6bb5e0815f91c40c02fe4c406fadaf54c18e82982eb1e327ca06ab844d3eb86cccc6cca3e3796c24bc527f25109b300e56ec988c10eb7fe1681451bd771a70269dbd9eabe70c691417de3cb590ccb571f013ae85d136eed7758a00c37b3d35108e767ccdfeba8d0fca8eb91c2042391897c6f1efd310fbc6af3d99913e84be7acad589f8510acc74134fd0fd010773943a41a901285ac00fc81bad6d9b3865786607650b1f3178c3385104fc3633fe5f3ae83a89341c55d807c4844deaf5791b86efe3de293de760c33398cd796ac7ed380e384701e4d78e376a5f5cf2c76393cfbb6f73c7f1fe5b9ac069891c4fbfd904f9e703c1af83bf62298e5b3812d341b2443110276254c72931b3297d0bb20664cc46fd3adf09747ffada93c13a3b067453d18569d382cbd2df95707283af2dc125dec1569c8d845a42bea68bb7120779441422300ddfb68ac6412693521971b6d01e2dd39ec0acd146fe59b021029e8534cbcf0428d63014614142f6149c9fa0ba33d007f83617806fe5f48b1c4ec8e711bef01c91f53ea2cdf9aa552672cd63fb0aef79c53bee97ada6b19f7046194966ab42cb9de63fd1dbd28f648f179ccaca11463aad43d05d7306d9a8aad56128e0dde7340b1b845219e81ba58a58e5bf6ef59cf8bf7f7541f77dd259f3639e0833ac2ef692c23355513fda1ec2b5e9bac159c9df4b1d135235da27d1b5a957cae5df06a32ff489187769fb28b4174e9db7ebfdcc51d58397ff5517fa94aff7b0f22ab9be8a81d1b3a5a34a4e37d82238b6fe2023c4f5e14e0c9394365f34c20d35e1f973c314d69966f7b489535a190e0ee7ec25affb847df0c68d0cb75c6530afe68acce6b18255fa9635043bb7f074028d211477b34cd9aded22df27e55f6a09066854937e6929218ee9ec1b6071a4cf5dd5616ea272923d627d36d1be25390e45032f4cd794be5df68da7a7980f98e353c21595502e9dd84adc8f1a02e0a012a2cc0b845163e8f518468a7912ba279ed20dc0363cd7ecc3629baacdcf6dfb890095e48c7b6fa21ba3c11dcebb04bdbd5616c1242e39cce3e7b9ee5bf910241e552a74526c0f7ce77df4af8baf107867042a8cc8c887d837660718c67800d119f7abf5d5338ab06cbcf03ea57d2a5da7c1eca528a41d0613a3ddaf490f1244e6461f49d5343d3d28c9d4254ed4a4bd3e9e836d00afab68dc10301ebedb495362dfbd344e286eaad88b93a982ba5e002539b34e5e4600432d013a2ce0c7aadc798ded366dfe0c53fff050a9e1730e44e9cc8d67c8b479fc2357e3425e5e46a01e294826f625ef3872f46b5ffaa81c264e6ffef27ed34fe1714d0baaba81c51103b18fee5effa8c536847e3d2d86e9ee8bee30763c324e3d2e2512f3ac1535217f1df16b1f2545219e41157923b67d8ffb75430d9d02502fd305b0f085cef2db820dbe41e5441c6fd3c7e2e08b18a1cf290b14047161aa6ad5f7e9231dfde8f295f6c57050b5b8cb1eab633d0ae5fcd39db44d408d0426072b8b5e175f55ef6ec53daa181d8762aa40709fea361ba5be510a28766ce6203ec21932bc8472f3b0ab6b9cf6292bcb8b8059d3ccf3b6d1b324bb14f54209b0cc39347d47ed37d85edee6512c258f2f476b049737366aa18d48985ce8135e14bde3878928cf3e8f2160e4721e4e23bfd619a05ab97461713ad3f1a94585cb05cde008ccc9076d900262ee2bf8695c4389bd01c33ab3f7ea61d71348ae9e83677bf9d76ad74e4d5e13dd7800b515441b4eb719daa7539e83f44362629ae40948d620d4b89a23b344a845fe1d1857f8fa1ff7155f12cd73be714dc1ee9a123cc4a01941af9d54db546bbf98b620dd9df29d1cfadaba3a0643d4c0eeaa62dbcefa662a83a3afcd64be8294648651948ad133da5a5ca44f2d7e84087077d101b1bd52b887ad723a35bf748cf9a2ffdd7b50cbfb579562268ac4b8e6206f97fb885300415c6cd3ab0cb0e0cd772ee065355ea645f01d43d0308d78b0d945eda3d32f8b5a18b4776b667b86abd5b52a30f035338ec666b3d572a26fd12c75b4ae1d5ba7ef0087f98cfa7dd31781f35fb0dbbd93276408e4318bb6ca4eb97a225d2e6d61f8df59abdbcc50fbe2307eae9debe12c56924f838fa056c906f4d78df8d7bda33a85160e359d86be8ae190623412b1ef1a191d323964c191f463d02b1d968a8bc6ce74245584fe6615c89f16975d4e37f6dc652e414647eb10d6fd5d9dc818086f460f7cdf8b0ad27744c15cb1eca58d227867f53d4537114506be2adcafbd6d21e1df1d061c3a2b64162fe71ccf1d8099a504fbb90fd8d0edca967cc63a13a21761b84c83722416fb84dc49fac807b1c9879af663ff813d3dfa3f9c978c56dac794a5da5f222134c569b157e59051f6b40ed36e419631ff2c493a3a0d987c8350518f0bcc363e4bb5b161b4066744ce308a3a24fa2b72a589b3988fc495b102668fa7a466339da4da91f59d5089cba40af3989ab58859842aca015bf08c8f2a731fecac890ece0146dbed35b371e6321458bdc92b4c73a28ca0402bd0663834513ac7e88db71895043769ece518be974968f05c4782ea10a815f5385de030985e70b434cc741545a58761c682ecd10b4f4fba19d0bda0610f9ae19a1acfcde0b83d62e2e07c9df39315112c77e7bd3535633c4a94b06d8cdaaff4df6cd4e0b76a507ee356a0839058b4b9be8ce0cd5184228389451f97da26afb3800872059be0376981167adbc0399dea676ae5d5ebc8abc042127b725a425e5b751bf26a7739e5bc52da51a8080f30234ebaf3c6988a13bffa12404d0e9715d966b0836ac5806ba49b22e0292a8be948801fb60200a856c1475d39edb2f3b25faaeb4c52a5422d697a31c4c0d1e22452b8b1c15facfba54715a9f71bb9ef1522b3b10d04fe24d430a08bc3d56989dd5cfbc2477ce6fa49a3f9cd514d0b04a755d252d425b779ee74f6cc8604be626afe05a809c5886c8ad19ca9bb8f90009c626327b2991c5af35f4bce789fefaf62ba47c4953742c49a1948f4c372c1ac88ffcc0d678d414b47f4e7ea3236a8e371122ad9331e185647f291bdce7554607923a94151738eb2d59a96c9b8196633323523755f13fd962c989d8e2cb8f3bac3688d7c865203fd5299bbd0be6cc738dcee68fbd795ef823eefb9689aabba12b758327bb7191bd3c3a3d4b58cf425a6a88a4ebda892060f24ac59c902d7c742748c75b89851a9d17576e8a0d24abcc6d522c1b0f24da734c8c9eca9bb8f90009c626327b2991c5af35f4bce789fefaf62ba47c4953742c49a194a21b34e3c7c2dc8900ef8bca379226c7e089b81574d688324e3c76357564e2a13181e6d98b02f53f19944409c8bd556486e33e1c1ef9dbd9e46c4eb1125f91fdcd453dc34a4da25115e5773ff095d9cc5acd0fbf052dc81451e2dcc0c2c8cd7e3eff1fd1b9b5c64ef81004f828c6913991b5929de310e22a725d5e59662f669c6e2e69abefb9e59f8f276d6712148dea36acfddd2c55f39f6139792b4c4c5f36f1e03cc6f81abf45c3977f0b9ff0caf4f9f93daca8b0e34f07f78fb16e57fa770652bdb4a299e9ee580cc7696adcd227274b37a47583f69c80dcdcab32d53df4885a6e108965edbc9f3f627e75c90c3b01d9d34cf70921a3338286308214f197b84bc8c08d5624508802fc320c3ddbad3a933aaeba62427be47558b42c2112e4e8ed6edeee117c6b1dc08dbaaf932d4488846bc11f023ca93790e147a6ee908e5f70f52c8a5ff6dc59b90a8c4035fa7d669873e2f5b3ec17a069590ec72316c49da71e6072e4a4c4b5e959a0df16de4f51cbc2e3204c5349b6f8e9194504fa24c3a8705dc8326871eb365f595dabd9cc098fbd51f5d592fcaf959e53557153e91de4bb7090d41ee7f238b31171443e210c301a0b5052ddea77e635cb2e39a57fde379ffc536debc6a003ef6d776e035263808c0912b419eba190d72be83eb2c3abb1b1a07b5637c665e9fb2fcac5290161135c632a5a0e3e0eb1c58f65ff40998fc786122be633a351fab5ada63ecd319c8c6317ed5ba093efbceaf2afc2be2c564d45363d30e1cb4101804b5f773f8c61633d9db4fa4ba28c16a2fcea2a90c2899a2fc87db958b76f6b0e70976b38b2ed6191cd3dcf3485ed7469047408d93fcfa96f075a4bed4de97b988d68593b5cba18417dad0fe5ab78e903edb5ff187922812743bc0f17c14b0956c07e7bc76186dec9cc83f9457352b5bbc5a709983684ed2ed7d893c370aa255c29556d8980c0fe46abe1e070e53f24682759e78df27eb325be2329c96af768fc5b7ce16bb267e57ed5c076e4b84007b9b23251df4bd0985a58cd4a9eb2c21f3fa8dce9e32bf3376c9b0bf028e6d3fbd839d16f353d460103ea229601b02a99481b5310507e8979505fa14a33033572292aa148f73ed38dbba4022ce78ef6992f469bbff5fd2e16b4fa9aecef1f59c845a6fa97445a9429cb5f3334894ba2e2b642d2dbbd67bc62b0b68dbba8322179d5de6bc24d336fc40d5e2c96165e11fe781e501e06cf5439cba99378302cb298a50d1eb3deee42baec006d5917405f7539f89a30dfe742a925f40ef6f25ab75ccc48c904be6c1c3e2b4724cd3c33dfdc881f0e4b0fe34cc188364718b4e4588b32471a84e861b6cace0caf1b72f04cc1d7730b28842e5566f90fe12fa029eb77916ce48afddf1b12d0e01d019c605b8891bd68dce1c73e8978dc769e11a973758a7d1358ca15ab25c2c0d78e86e0840873df5990c23df371c0943cdc33fece8ac93a0f55cf60b1927a352da966f4ea60384c046478cfb3d1212984fe9e80d2c1faf13b5720afa2c61230042fcdd1bc7ab113458fdeed0e365c8c1faaa78d7436091a12ac298bf39b98db13db22562ddeef733e45809427cbd871599a113935a5d78dcaff5a40a8c95f9376119f84f16a257e45e0ee6174513a3f2b2ee34e7fdc50c4c697141e6f2552791ef7b52bea0ee191e1a7bb8b41734a8230244f80b3d66756711f216e85f7e7fdc410c1910bb53bada7a4536584151dfc5b878bf75fc3a8b0370909046cb91577cb4f3b491cd2c943b62bcb23ea2cbc1b62b913e5f4e4dcb6b49ded7e47ae40d129e165c6d1bf169962fe9f228fd65e1ad21dadc468dec32ba14665d337b37bed114a54a716861a0074ba22f5cbd10953b6a32d25aca61535c513dc2fabcd26845bfdb60aa0a1ce01344035fd52ff5bc11d4547ce568b0d9d56de9997355896a5cfc726261bd59d4dd4c9c5c643033b32b8d4d0eb10e9bfdf7fd0bb7f66c38d0a41493981f8e2bd1de5e51300e3240befd402c3a080f815c69a323f69e6d2fc7254a1fe8d8fb90080113246b5f1fd11dc52075d9a18c5c5079eb3f3fe7be7afd0d75d29f71a15bc6a677250cc7f5b116596b902393337d01804f73b67224c360a83b147db97007ce8aaa1199f6c9943813cc9d57af4982d3a7dfd269aeb2546909fb586dfb62657622c8ef4b57d21a85c4ac75172f12e729c2f307db1e68d4a748fdf94cb4d83f77b59c525c353d1c34a17e19a755adba43c0392aa634094889d313012877bc37ef08511b69b1f0a099ec145f7857b1413afb715e8a9ddbf65e9ed34c0bc3e121660b9ec3789c56a9f88b33ab922c7d7d38729fa429cb35a131288819777f4507e742d8ac9fcd76502275c39fbf9d8ca1adae35741cd00580b4274330b0429042fddb3b3b372e19e7a7974da5e0d0bc0fda39376d54da8ae918515e2da4349917d97da91ec4925cbdd3621e753d7a47e5600943b6d3023e10a2f4ffe963e10189f66221bb5dbead69b764b8b3616fbfa96b7b5123a5e96e100a579b2b27462ca0ae2050a3022a1c9c9c3f78e2f9ca49d3734e5c48be0fbe4c2d2fed2753f406deccec210a3d0b52ec07289d49bb64e3a7c2aa4e44f9ea972121d14ddda6ed39bc58da6f52b4726da4d7c2599366448dfc9d524fb5f7ecd966a612ffd5e0caa0896389abd404070b5a286ee038bf98beed1e37128185a8fb01607f567c836f24ae97b8e5a461860f3278fe8d099e8b7fc8354dac2239fa42fbfc789c62662921557f5743edd93df2f606080d0e555765e584cadc267b4d116b47b23b88cb655c6d838d50cfba666d2076d934193008a180d12940efb23f8f2246cab1f349adcee943fa7618e8bc83b0e902b245303845579b7a5cfe62bab6f49f488d3349732c101ca91a53780d381868537ff5a09b2d3340b8025306b913d941676c2b9448791bacab5c547370704a12eda7e2fb4c56fb996641499bdc0876037e4e36ba1f78baba28ee1e4e4ec37fcd996ad5079c3d40716c744b024e043834970a86bd72fdedfca57aabee75c3d126e3ac80a3eed3f65776b2f26fe0b05da26ec33bcdfd00ea9893984b82157ac3a6977057abb3f6ee357f7d0699fa5369d259a180f36d946fc082d14b4d82510c95f6a9b2a26f8a259a8ffb543a24421a7ab2f555d80c15b9ebd078a59acf0c418f0a365e392f4a0d787ac102c361ecf9cfbd77fa2a36d61f894430d9595dea673db145fe7dcfdad6b9de9960e103ffe566e694c73a6d34eec30837defabbc0217fe47c351892ac77db9336ee678b6e2e861e1585046778f885c0f1c67b11f8f638e52c546edec8b177551d754f0fa9b40802b899fafb0b2a2a29d4d7ed55c6d121715991eadef955ea40edac33a09be1007841068ba3d909c434a6a885619bf3a69e92b80222693edbd01c5a3076384ff24fad106753a98fd04ef0d47779c412eafeed17847757dd6c25505c0a7c819955e2e7a2d3a5ec7299129353f67edbf916f31836f25a992dc1e041be26cec729d5fa87625eccb3d02266de328bbfbbcd0dcdc1ad9de1e9c137491ad92f7d5c867367b6ed4b4a6d6605d77e2836c2d8ca71d3d142fe0e602266a468b5182c89ab51b10ac16ead6562e40a9bd8674d83d7c83d89f63d49d800710aa59544f4ed00a3b603900e286a904226f04207807b10de4f8a49ba80e4a06d3c165d1a5e1b35a4af99ac831efc1862e9790abdfb36d1619dcbad934ee2997cc03c9cf8037cb62bd77cd057dd856f7822f8689fa9f01dfb4216ad28885fad0f151c73c8052a2979f9c7efb6c053ea05cf902932da48fc52f67c8218ec8bd8c3dd3071e7d5ebadffddd380918c76b4a205a323e1532fa9514c32d0e5fed6ec791d3c9d8921d1e0bb8294eeec10685753e32d0805bd254b25220cdf79048553602d541b64737c9f49d4a989791c08a6c0647b7f048987c81d0a1388200ec0b2fd1c2ad9d55cd75ac98252341ef25090143df0c67b985e736b9987174b658a4c02b02bfa23f838cf5ffd5fcfd294bc52e1622936c5fcc109c50b99f1cb9c7d849590e38c9ab9c4aed880c37e8041ec50e04af969560c44911de9155f7a9df3a0cd20073268d624f5eb9a1814cf3d40fe6ef5f7f5270dff3682b9bbce639e6ba27add2cee39719aa8b42d7d1a457ffb1b86b2e5e67cc164198030936145a97cd91470a373d9e0d5d981ca8f635a5cf6bb85dcd327a99ae52145838ce91a01d2dc872dc9c895e3cc00d114165ebcdc5ce7f4ddb46e5f05e1e56b186a4ba2f6a371482dbfc210bde4ba45f4e93a0857d0ebe25a0c317ae1b9c71ce89a900261e79a0a9f8a6c8e510e42abb54131c63a62aa08a2a19f457e8b576708132f2255de8e6183d9990352fdfb3d44cdaf901d49b19d038ee1d2d1fd746d1e1a28e24b60a3d8e944588dc929184a555e22c7c102392369f95fe2e1f14d2d3835b7a3d22ea15f1ee7bf39d8de3e2f1661d4ee9a0529863129f18750f1f16bb5d90621028e373625dd5d682e4588424cafa900dff7235fcad7b48271f47ac5e27a0bf04777f868696007612b24443a9720430af01f2bf29213ff39ffe94f37b50d8ba0f73da7fa7704896e2e08fd758ef29cc84b3c3e00c3c35186d72daadce02e25ca0567f446c578dcd5b41264c14ada7708385df95932b0cbfebd2a7408c16f72f089dbe81f0a39ad9f6486d3a425a5411ac50cbfb6bd43ebc8369808266698e276b8641cfe4e2922235b6104f8c4539574cc397b1215f51ba7d608df9440e75a4f1e5643f7533c1bcd9520c5f0ac1cc364316f0bc6e86f95ce8a9066101a48883621dfd8bbc56a0c739b81ed4d646878ed8975ce8bd964ac1d9c1ef6f0bcf647c39ac52e2762314158a3dbd35bca276781c9a9ec53a692faf7474a4cb8ca36d236c52ec5815d21947ed6cb025fdf9dbc095fccf3fe140a4ee42be6ac91921421cd45a1f413d556798a01cce68bf8870155cba2e0a277a5ed883ebc9bddda851cf89d210d0bc75031b77987117691c2a73bce16f7a71ef45bfd659ae31b663a98e257bb739fb7148d260784f55499555bd00354949f98927c368a1cea262590f159273cbebf11f1bec71adac35ec1c517950ef7ca115f75c95f6c6ff057b2f75f89d82081b457a6566ffeabe65743d29666942ace3ed02bbe25433b059d09b2d2fea210898624a8e7960daad628941b73ffd9a06571584efc8c3cb630bff31a773b2fe71889fb48caa24c1a3ecfc610e13719042948703517a308a0021f77696de6c0852d837d518cd5523a1745176de58003a8e57e306214a0183098e7d8ac82abf5a9a15bb626bbcb942d87f66a185a13739ecfaa6384d0556b7f953f577a4220fd27fb92270b230e5e729d4721f28117201b4635873d9d91f99d7ace9fb684d12ae5767b96ce521c4336b6f18ab614e8bca560484d4b2eeaa0dcf506877831816b3f20ba7f5a44040cfa390896882f22afab5f4c9007e25f66be0ac4905cf74aba10f8aa9c23ec35afeed4f4bc60b819d6f5a8eb4ed9694be10fbd95d6dcb5ac2d2f17242c128d1e180338a382f34089830a1e8581c38cc79b56f0e92491bb215ce36e6f7c1397da4e58e69d16f98ccf5dc249d286a6e3b87242566a96371e7ff62b1481b297e76e600e27d6363de2234ae31a272c88b59f72621705069920bd2f75d2e7307d7f7cefc99dec1a6b292c946931614f167976a7196930fd22eff8c220e0d5b50f40e7386b366172899b6e0d6a930009551b781b4a95611e6acf33db85548d81b359cb528ae2966ea5a55b0a422b1ff754797da62a5637521ca073e46d5805ab2a7f350d589065ba78bc9e7369b241df77eab99142b30b1f81f25ca148773f5665630184e99caa061fba731abf6a3d8a79343b91e90e96b3de67934f87d4e5b6a9bf21d61fc7ab8f213a5bfd033868292f5c90aba4977abec97e785f4e21cec5d466ed79a8c9753386371766512bd92545b76fa50f6edf5e89748659b119f95f9353de5aa01da2a689dd4aca03c70c01117f27f8c12c72560f0f2ac9128c286340b8682939ce9eb220603c2c8907a9c1f88b21b9b2c22a6cc51656d6fd037ef1ab4bf06112b4ce7ee7485398555ffc87a4fb606b83a379f1d662db731ab4bd07e75424e4eaee3800faab276a7a377612d100c5126e4fc7da764f33fff409fb8acc2deb111451d2261d68b62d03722b02b8523556b7aa03be558cc5cdd7dc9c54357ad4db4e95c41b1a1b1dd4fd8a69bf7612ef0da231b80720a60792eb876be549940b297bb3306facdf87d7e5db144119cd1fe5b459f17a6493057f26374f74c60f8e8c0220c387bfc80ffae15dedea5808895daa999bb484b62cfe61050cb4ccf6787147fdf70c84796ddfec51c1cd03c8cf97ec4f721528fe42ef01973906d9c332d3aa92506d3290cb7523a5d3f85396518fe418be4898908f3a8741cf5f9071bf8e6b712e2eec768e3b51a3790205517a6e6ac4ea563d9ecde25d2284a7cb3f40919b5b76772e0be028d81775f30b4909b807d03f0bc6ed941561e2719faf09ea5b75a14a4d2c95f63271b86dde2eabd96bd1a28c79e7ca328d99d9b3df6db8f899ff03887062954d33ba76e42288974f07f546c8cf6cce29b5e4a4fa2caa14eebc62dc9475edb84e856fbc11bd7ea0bccac0107ab05671276a01d4834345d3851248035d86af875173aea694fc53b877cad8ccbf1494ff002eb484751c12c83ba27805d00fd17abc1ca9d5e4210d698db4dfda858a24599aff29646e3f6582fffcdff85a69ea6bba061d3c29e78d540718f9e633d1c0b64506d3eb1151854e0ee7b9c0ac5f741c1f491f4b0d7b94b32249678227e4e697ae71eec17d6378a2c19c61841b6a4a2e359920274484a57995e9626951f07c21ecfdbff95a9eee46b2fd51a3ae5463ab1b776e913d60fcba1caabf68963ba0faef2668bc33367b3f8961fe78204434b530dff58bfafb6362737a29182a050c768be804355704647acfcd092184b4233065caff328717403a46419fd9a196fb381ec6eaef987a458c058db0e21de9b68a918ae73b99be44939df40c7d259f127c74aaad2b3e84dda4e47fc23b4a3eb3c6928c8e0a0b7e525ad31a75b84fabeb7556c2165d4c7d752b3ca731f341b1df39d7682225e44a9cb2091cec6cecc8cbe4b6bd418f4cab4e4f177f84ead09314c623cf15a6e2e194c5bc297e7157f891c3ebe7e6fe0cbe07760203bd6d8a678b0161819371aa0d6a5223fb8477d3ca7967e04cec8eae34ebd8d87dff7989ab6675c751e7dba76c7af9b9660916e1655dba6ebc6fa3eec81db701979efe098d53b27623352dd3a8457659555925e3f404a0f9f9523c8eb09db8fc544b6c8238b0d107570789712b9746ff473468d7c5e9ab84ac8ebc5e26e0236d4dec8292c59abb5f9900d596be0ec3a73571b93d27ed073d8ea14e2578404d5beca8db2ca8543e5d3fd958d8b756f020b4942fdcb7aac0f552ac3146727ab401e5e63eed5e424d51dc31442c8a863eb339e5950f8ee2ff9a45a1e7ac9828e9dd9b799e21654d18f6ac055879b0915cfa786d2ada04ab6efd4df9a6fdaded3414ddb01991a16b831bb763fb1724a329bb8f89f4668b9b8efbf9fa3e9faac3df232278f2d42120ba20cf724a737118239d7c2da84e3d6c7fbd6be0b30216519947f7c06f549216e4641af8de4d5518c821aafad9eb3d3668b0b2334f9605eda9512c63ae4441a269ba718e9e4efb1e02ccbe90570570d9a44cb143586a19728167abafa8f42af9712ac660dbc4d47f321811fcb1fc5b6b040fb28db2601d54437f51ba911e928b07adbb95feb9e5e3b0c8513f5fdaeea96c1b0b272eaa054253d3420c379aabf5c3a94b3e097daf9b50cb9bca31c47c04faa566805d51ff4189a6dff1c6f976421667e0c878c10be9a40142b25e3f81ee99354403a687190bf602d6b0d9d2f60434fcb6670ce7d682f32f97678f8204120de0c4ce44bb108b0b180708a0142eb85beced3f591cc0b4fde1c2b25002ddd0435ef0631b44dfaf1566fa53e7b4f29ac0557d55dac0db17e0e975a8f5a5615933aaae1499c0e1ef8e8f4e2c57a283026b5fca93370820e80a5330188ae3ed4cd7bcbf280ff9fccd8372df6b63443aed2e0040b3140ffe4b6eb8e051b392ddcc2e052aefdd41534632e9253d48bbcb9271b4dd5955758942075636fa373a5ca608e3b28c8d08273694bc52e2dc29ab98c44d24a86a05a374e95046601bb1d3a14a185cfdb6a2049a2cc3ace5c423d97f46e4df1b34271247ad0aa0b0b9966d2f4bb99eb5fca605ef80865434143d5a32053241cbd9d91a7b2c77604b27f6310c65b8ae9a6ebf2fa16bc0977b9fdac5f13ce1eb690314dde69c0094b8f9ecf00d91e2c28ea2fdb4ca1522aee5e632090d8cb8856b67932061309e752c7d5d4d36db94b9cfb69a20c62da2ea3c6e696869a5bf28c67dfb3bbd821f17de64a3c66cbddf84d266aedd3b6821a2967ad14937b5c845f2a74a7c437290179dfbf18fb43181956f081624dfa6a80d5484ca9835227625a0403bac99427ed678ca6460e8f35ae182217f2bad1bc7c2978a5deba70b54fc25e584e916dad402cdfba029411c7b716d672e2f4f8f79fd7da4221ea71e5f8da0ad180cec74ef839b400980062df96340b00ebab5277fc32973c3ed42b1fb991e3289021c4b1c23ec315a0700fa7cc95cabb65a547a4cde2e23467268ac6072f4d1b75a8db4e8143ee90fb36a3f6d24869fb0bdc5562b36c18cf77b1f89085ab7b05994a024fd0a2a7413c1177ee55c51e5755a61fa8ad78c80b52c6d94a4011e615e3aa349837440d0b0d0198b5ae5df852110048ce67ceea5e487a8c164bb1460a58752418d9786024dba1a4b305a0ee4056bc1ebe6e229d1b1fbcdef7c4cdf31bf2237573ef6d842a0df5443924653ecae304f588cefcbdc2a6ce2bc8cf396ca81718bcde0682412028400b73b419598d3d7bb8715d755da049b446771529df659fc9440165631901c735fb75021f2084f5bf4e6c3ef902da92857c45b2b7eab0c432b4b50e9f30b2527de89d7de485d1bce51bd7df2b8b80a7eaee90abbad6fc8e697f5d914bf29a73ee68c19c673c43e34707e010baa624097d22d83bc6b5c60d4a5d6497691f68c561ad791409915573a392b041d13e6b93478f56a66879b0eb293f1192f7d42d64beb7d71c819cc35588f9a9e308b6c9401424bf38f365729c76ec85536f009f59b4c78ec6da108e4f01c26b33321a5c68ecfad0da074968f35659978652b42385958f2c889eca1ca10381a975e8bcee362ea7ffee8d4d22a44e23d81147bbb83155c75fcfc7c8b333bba7f2a859f78bd93f8edab86866313d7dfa4df6cc16e13ac2922112f5fcf1a9eb25da3c9c33c31f0fccd76f28a325790490dbe7ba268a36e4bac8b23882c02918f34cc81e5b63a80e59d390083d38e20fb7cf719e3fb3620b5260546f791593d5d33b51ac2d247ef5335b406c4db722b379c56d0c2862c6a71cce1b2a86e1d21629f8f454f34172e2791fe37eb66b38aa0ab4330e087c4b9e7451eda52de4a6db9ab2b0acd0bdc052a2f3b25ff4b3c682402c2405d745dd851ba27e7972b76187c2b3e89cf30b9cb551e6c979c20a3691d3137f29a313941391d74f82e9edf16291267e47f822a0190467e44217608eb890f1145698b0e59ffad3e28536d5f8f4b6539421aed885da1fccef9f4f66f1e35ee83b6c7eac4940873fd447ddc9f0feb92664b2bad5279dbba61e4ce19353c1536ee55b22f19ec3b8f01f8345d7c670e69b0d712b891be398e8fb291fb9265d6da9a1fb6b96fe05034186546d2c181dd4f79f5d7e68e08c64ab7f4f88b461e0643b5fa683772a9bdb848cc50381dd48eaaca5b47a2c50ff356bbbf9c57738037a12a50d4852a47361349e39267e7c5b8b9580c8737b6384e46a2d5d8b14920c884d743901e905723676d6727d848b011c39f74f799f445bb99a3e9d5f7036e75f148d03eea73d4227c9e0857c749754fac7e6a980d6e393a82f47e6b9a5e243f67092877230dd4e3be3f955fb96518f9671dfa9efea07054e13a35e31380d0e48da25aa54ab0bd5aceb9cc544a6ecd9427fd416b5888d0d6fa1a01a82f01e36d98ae990a3b0caa6255efc74176e16efc4073c037e04c2fc7e8ff5d6ab65d2037fba8ed9cb0e2dbe7a7348149ee591e6ff8e1054632964bf41adf94db0eb293a22c74c0af93eb57d38142eb6d68773a86cb3e123b6b4fe096bf8a79a04e2ee4d5e2b8fbe309473fe04452060777fe5ac639639f8978bce2281151db8a4383437af009676a04ffd822f703f75e8760e42f8700464887fd80b40b8badd4d5fc6ffc5588758278794c8c588e511fe19bc88f3fd2aebe0f5ca400936b17fbe6588a341bccfd0e2feb0538d135bcb18a3160fba8311592ff19d9da6d1c5cad118c683682535080c68abebe19c9a378593af7448b5355003389eec0d02bb3c51abda1e54af236f080c75ed197ca5dbe51773fc615c2ed9699bff1e71dcc850c5c5f081ccbe6f1096a26ca26611365237a19f689b746174b9b220bae552250dbb0ec4a15a10fb3e8b9ca64cff0d352963aabd4d09495d38931b0c441d3b23420092312a65106159db6e77d1369d57fadd0e23df00811c186f8608429752415c5fefde8959553b5b120b4daaddcd4406f2d38bf6b26a554471f4ae0f3c2159bda742bf3d4962c99153b27961251cd0be1e3b4525b8d510568e8e1d9abda3822a8990283e9511c28c4ffba3f26bb54c552489341c6ff2b0c97bddef6a0bd86cd16a17159194cd836f75cc822725cf4cdb509e4dfaa26cc61565090f30325d074749bf52ddc4c80536cf730a88790739e471905bb39e58ea874aca7d84f6f267e882326166e3735337aba599f4ca2b15d7f904bf699dd06415f644c1683768e1fd285f65c25a1525d4a65cbc2c65c80f9475fac840ad9750ef11bea1e5cddf1c1759b30b558b70fdaed3b1bc2fb34594ef98a3fc100af4331466683a635824277dab9342ebc439b010c2ca780906a74ebc560298c0f31a283b11639b7e3fbd3d86efa7cf3f844401366e13b9fb634ad9e749bdcccc38d3290ee3d5ab5e3c08f0fada990982885dea881fc066913ada2c67874491472299f1a5af98ce3a582f4c90b404f29ad05df01a1ffb2aede16b3aba1b1243921cb08bcb023b6805b55bc37950c64a026b604fd75ee740cbac10ef2eb55cea5e3510a4a79496d43a28853236abbe4038ed5f9fd9d5bd41e2d0223be5b4179403c2adc9478b3b2b674ce718a77a0936a7dc22681ab4a923cfc2ec30f6bfb30494b68ba37768c73749018942ca38f8f6664353fd493a44e770d006a962469457b8984f185cda1276869be5d905b4814995b80345a1d5e6b2dac0f93786d560f2290b522febcda3d2e1fb9d7c95630493d674d9b03efcaabafc3924d3c2ad7d22ed7fab6510bd4a2d483a424fb4e45104e8accc6ff9b7aa3299ff50685898b12cb3dd07cfe78cd06715e47f824afbf73bce16ad7f8237394f683f57f75265fb148eef061fdf8e4d7396c5b07ae1c3737c570acb4d65e183d1aeb573b5cb7f416d8ffb0c5beab5b70ae2385f114277e82275ed6f9bf03d80e4dd1073c7a74ae4a3542ea98e2a4cd1403b84e24fc9c5c333569bc0aebaa07f933687254b7317e415b2f542b724d5d8680a57546bd50ee5661a0167d8d719fda62e3916a76c3b10724a0dbca1331639da848e0f293dcf4540c0b96ff6b684ae0340e9b3b535ccb0a89cc0ea38ded28af554fbcf0956f6c9920cc135c449bc105be0e97830c4de1c3fc2a55bfa42da396dcf6f46978bdb806095567e83a2490509d8f09ce1ba3188c259ef661c89ee1de7b65a3fc8da83fe154a92920d25d966ecdf3e536133e328c2dcdc4d7d6c10a97aca81ff572ee43006b1539dbe6f061fefce690a7ef852677111659036ba49e3a27f28b531b298c611dd13a714fe4938358ab7805db9e91f8e6f5deebf5a2a70b10104e7723fb2f637a4e626362385494ac996d1275445de2040c058b751bbc410dec68b213705262bdab82879db0f897fd7a12e0f69a066e925dbda7a2fe4978de42517cd5a67db5ad35b6cab6534f8d7a620b24d727e03bef529a9d0784e52dcd382dc00465f6e368a68d9de68e083331027a1768422c49a331651a88c2eac69806514149bd76297b97eb5d79387f77efa2aa7712eaea85f2d00f2d7a91732b61ae65e96f7b2563185f4eb93e05ad28e3257c51b4df82b9c7dc0e7704e1c310ede6e73c29eba1fd833aba5e0ccd8f35f7350df62ad95de10be53e761938bceebb8683568a44ccbe2ffc34847da51d2f3ef730ae8b86cf49472a330616b6ddac8ef93a088b53ebbb595718b0ef49cc48cb06a725d4a995a71854a0a0d9fe21321fc39c0d1270f3a3a9a30b945ced0022d7736c5690c452b4deda4302f964457e95b307212df3ffaade9bbcb0e689f5fbf6c75488456ad3394a19be4877b70b8ceadc9c2cf70754ab957d8f4be2280e22461fc93a94ba837e2bc5bda210fd0aaea4217de6f28992fe9c5a9969c9714739e210b3a2eef70672d740b7bf7827e13ef40d2453a140753e96d0c9d5b755a86dbb741630a4f4c8769655669971ba1ac886e81bf1aa1d070adbe51f468db7bb56dace1f464ff6620684c94ba5738d995a34db185ae332a64963618eeefa0877ce555916887ea8b91acdc5401a97b74beba3ab85df47dd8ff8c9c9bc8dbe36af32ba7db1df455dfab6588550d6c354941532907084efca7ef6b75053d5b7403abc456ca3b5e7935dca82958041cc7971a1260f4f6260dff527871b7b2f7868d010966a41d3ce104c7ba8f19290b77d6461eda7c41f6d8078c6d30a84d51ebb8b046b1f33c525aaa1687839b3dd1a36a64fd260684be8209605cdd5bba8314bdea217db970e00c31e686de0ddfa5cd3a4f8cd734193db54e588a7902c34a216bc696220e762400d44a8d5b7bd2ffdafae6a4489f5f68cd68f9318620abfeaebafe9b75a17ed01ff92e08fc12380ddd67f2d0afca0d123ffa6b4e89b0eb7ee3b2abd081a0fb3322e670e2cd086190649e6fb2da7490fd73891ee9db75c3791c1d4f77f5551532c027552f1a138e32ba11f6e920f3a397bbe7d750e2793e2ca32bbf312e4c100abc567e07b9751a299fe3c1223303067f57ad4b5e32e0b3bb599bff208437249599cb893d1525e956a47e24b5214ef91e3051cf5c77fd1f6091df0f497e9ef6519ac2451109527b77c427fc2a2a2d25a1574f2e194a5a1ba2ae84523875ab35fee04cc146064d7662754edf53c6f7da1e28fd393350cbe5db776444aa7c340cafcc83fc2019343f9e20620730c7ff905ee59bcd17ce7ff53557eb3da06d1a8caf10fb2e4ebd6dcd8ecadc253eb77a924328032ef894d00d656852e3286c30706483ad54652af065d9f5e4b6f9076231d578dc9775a1742b478330fccb64a3005225bee45855c9211564e55c0a6c33fce96a8fee7e0c2762670a30a9f19fd6c415e222cea010bed644a146320de37f720bcc9a306874e8fb4eef8136498ff1a102daa7763ade827c42a2c27798a7576f9e1c60bfac979d279805610bcc14130329442c12b928c28f4df3dc8e70f439d06fbe814b7ac43f68316c6d4cf6e6432cdd878b3a5f5ab407341201c4baf8f0e869d0c34ed98cad5a2d54a12758318ec273d496d80bdb15b645b5aac6a188e4cec977268227c9fa4746560f39519c6a6214200963d735516ac06adb5c983952738c869312a5a0640b879f270e9dbdff1a35e96b95589b3bbbcb296053f833db168edb517ce2710815055851fccefe8720d6fa5d9982a6d388b945dc5ac47177f66d5131bd88e872f69f4d5f9515236e07630699391f63629a34458b02f1e056c52f3f876b393967146a2f6ebe84e87c7c10f7b59d9a87c049bb379d6344d98dcd12a91e510dd5ab2a5a019af6b2eb39f660dd3900b763bb15e0aae0b1f28b1e46da3e0164e392fcff55d8a9dbd2e765ac173986516e231dfcfd5271c79f8f6b9d891d2d65b6b11788653fcebe924908479aa2e6a48db17e4fc941cbcdcabf4199f2d9308d5588e43a027f936d0797c500e9fbb9e2b76129534ca6f2675f02dea6ecb5b4a2c1f45acbcaf639032773afa5b5c8a0c2bea40503a2356ad99b855f938795ba8c70be5afed047730948e04cf7ad20dceefe48c0314cfc6adcd629770d6956b5264fc00fa9247d9ee15fbc28ac9e643ce3d591651d49088c48a6b6fbd7187dfbe644ca161c1f2763638efecdb423ee90e09d7ac2ca07bcd477bf9a85bb1b8526cf97d20ada375a061626c2453e8f56d077ed6875229b08478aa8bb67037e9cbcc0cb321fc0ea235898b3bc0d47f47c084a484ab9e542614dfd70093141332ee1eeca3bcfc5a60ecd87ccd4ac605961ec8b1679080c15085e65ed0e361904a4bb0c7a58d9f3f9a0f21448fb561c9fb529545db88ecc44e9a66b2c9e53991c5ac198a9f10519f2337b7cf5545b7492c990262e17da606dc1f40617aa00f2bd7f066088f26d72562bb19f1a2f87915ca49ba33f25d1e6e304c4c1a9f4f1357b51d4274055463b2bc3efabac6a76c98e6467c2974bbeb6708b23539e0b9aaf9a875aba5dba859e75e816b6532b00317c49343e554db78b04a401b2a37994210bc98efd23851137d5d3c717e7df52a8f41a8ebb799a294918203a633fd953b2e31929448912859c96c47eb1286ac4c1fc82ec2ccbe26232043acd546ec44ab360efd7f122fe8b99d1c3c18da7a9ae8bca6c658e274089040c0d893e03dd080b03e2d0004220b36d88288cf637a04eef8a2d92204bc9c83f6dc64fa08135fcaba8cf4e85b4c7c9a2961cd6dd007d8ba87018ab6114936efa3faad846ac110cb97b2b8df44db2c64c24f3aefa99264b2199faffdb172f2b7129beb50530bbb1eec1237d89ef4d5b3e574126334641ac323fea776b7d8c603915b5835407391b4adbad0bf723e59fa8998ac393e12bd25969fdbfd5ae50f5e895705c40633a0a7b468df0edc5e5d6df9fd2ef2cedf2ef95526cc2d30dab5e9825a26dcf42fb1af7f0904fb6c7f9aef6fe6fdcb5c11564706d3a9b27d73a0279de8458afdcae87c546140054dc8b16abb10c8872682f26e3d93b0d2d8b50ca78bea7c9d77983f1b865c212280fa43fb03aaf73bdf5a61b31fa6393439d118148042390e941831b22e9f5826004d793c13f9cc0d992082df63b8c584eb3bc5b1ed2feb6d682b72854e1d56b7af4fcbe73b33437a3a6e190f11daa147abd63abe6b4354bff38f4b32ba0f316775d2e817adc701c09225ae8c6ab9c32663bf1162616fe03d3f40e77e05e7f395c3b6d220893ffaa29ded2286d0ee29fad1c1d7dab69f13afa969c7aecfeb7565a5a8a74615b28f2209c54892782ab46135a872a24e9dc228a83dc15cfbb1c7baed84d1214e39881a077479e9749ae5357b96989ee114d870b63ebe07e34a67609728285c59451080bc9cf403a28495d5dde38b9eb4bdc9e1b552c03dd661253714fe128163a8acffea882587ee6305411e8c821bcd4030d176deddbe081cbe92893d804185b8f589f37d72d50413e55e0c264956a398591e8fea103667071b608feeee76b8b6338314437b69850b9d56a6794bdc679e48572d25d9bc91cc239f75a9afdb1831fa5418ce088f371b347468d3bd80eb784ed9ec467f04ec7d8b36994673da2df5ba1aa4fb9ff33f1814736642b571f3a707465aae08a3bc8aaed711bace65a30057fbe5928750e96c3e80151db6d5ab62a69c6f1aed54aa83315d13b467147c8afefcc726fd9452e7d01f41dba7ddfc09b2c063d8860ba5fd7a662e9b066cf4e2089d84412a1d8acd78c7ab11bcfb3117e92042a08ac53a557925339c82f7922543606560a43278d27a058e7044f1ebd6158b2abd1c5209e87a69eeca6c14197a9cd0520c6ca137d616b3a9c7fc38f75c7a456f1f94a1c7ad7864f4a0bdb6cae76c3ba1b47320fef96a7bdfb5ab3954a02e943becd004ec78a5c45b31759be5afadc86a25fa4f4f444453a9df434362ff822feedf11819ae19527394395e882e8808dda11d354113a620f35778382e2b553b20be368c108a2174883f7e6a0d0dbb0cee21a8b151ea83e865881149db176c3bfbb523a5585a22333aa5e99ce764d3ba2c04ca121e75ccfbf9c59a034a929f1c73051bd94879b5849cb709a094af72302620a532da95be3cac589a491cf57d2430d5354e22c2b7158924524c861ffe68d850f7a93147dc03c078257161f6f3b0d4ff7ccdf36e09f3d5be1467263952231d21ebd15d02c10b70cef37bccbe5b8887708dd85ffe5852cd54a960d4f3b0fe0a1b974556ec40f2f08c8c4017235d5fb32743808beee9b78c3f330cfbab2a21170b3975bff68a4bc7b927ce6d274f7843354b9a6bf23a330c0d2133662aefdccbd631fcec44a082b0b02595310d00ba1109b5863ba45fe611cdb9419e9960500f33ec8c7383a401aabefa4568218b4074ed1548cadad6ce5319fbdcb72b35313b5919971f1e53b64de0fdf2aacdcd076e362202d70a3e74e74cf17b9da4757ee7edcb39c11c03a62c864ce5bfe6396e7b86839db361b66d6bc450b80f8528197a4fc9f0be32020dbe0861f082d10ef1da384603ca2646bd8db1e95ad4cdd1638995bc0caf9cc008b0acd1d27b92181fec6f538bcddb086bdfbbefd876a0781e284eb17615a48287da953e177f86816b47cddfd831be678a195d027fb5cfc164ce991f8833832d5117af2b321e7db9ada35d8a77981287434bdf71bab77d17d2b16b19228b80025f77f4e407c15694a36c4c0f20f1e0fd7d797823d41485a4e893cfd00a8c899f8f78b832b3232a4d9e8429ac21f373c414129d56a6a3d24509f125bbe6e5d4486cfc3e0308cd59a068bf364e1364bac593bb2e2aba815cd12bd67af25ba3e85a43f6cdf25de1ddd2efdc9f95567b48d192379c23dca5f16d9ebef122299cdfd9c2a47c6a64a7e009642407d7cda977b3436a8c4403c22303d2d44f1d05a8b300d610081c208004dc58aa0133ed5fc62d10cf9c592b4f479737b6355cc3806985a4ea82643c20202f217a56c23d100b25cf03874d2fdb499d3b15080e28d8d5039aca9a9cf0a2f50ff8b4704a45f3f1829ccb31fc945e7c807bc229b599ea1b876e33740e6b055306ee801fc33988af662fbf6fdb9bdb5834c47793baf6c029f9b98189e3eb259bdb56aa075f4817f75d8971a0fd132a1bd739336fef5a5059776444e0baefe6156c641cc973cd82ac242fb4f3927f681860e689793db41cebd247fe8a2fdc44004d455495962eef72babc0a38705ace035ab9d2f0e678a938a7009c115ec66f485b4c8a4ce69c41516dcb8ceafa55ca6467f28ac5f4049e0701dbfb0116b29728589d31da58260125b8aa7a38f8bb8008bb7977bb9dd963b0f8e40a6d120cac11e4094191bafb621d5204b845ac609e05bc79fd7fd9e0119c55a00bfb3e43eabb7ac2c38a877c555808eea572eed2d3a28b9c402f3b0dcedbfd75ee3f2a27d234f67fbe1d6e6bca5dbc45a50f9a3a35b0a64158a8ed9183d54a0951a826e79f2c5f27eb521a7a4cf3e82725a9d8ee366280759ba03c03fb0a5c4c079269eb02328e005b84f2cd0cb2ceec47b154ecd2ff8c6d906ba334fcbe241253eca4a13b4e2466ffc61336835fc35f9de9f796f823f896cfeb06b53d1d629036cd9b99b7e4b5742bdfb8e3da29a897df6953cf6f214e9758662eddd7e7904530e087e57fa0e09ed55812a7a5df56540dba948bf9916df43b078f6f238401052eb3d711f2ffaac293d2779a5a1ca5040c92d674f7a6b339c28e51f5e47ea5c05237a1dd2efa5ac667b7a67211fec92637bc0aa37920591675e7e0e5aeec0e48af751799722178c99f91a025d92e6d2e262ceecd680a8d3c9735567f20a6928ca42227ad874a7fb6f1516c7178a8c5b8400598c400bae5138c025903331ff7c82e4bd3857b40a399c15087a7b9fedbbf345808a2ff97a6653cf4bbbc2e77204ac8429f305694f979626ca072ccac7d50aac7fcdc1f0ef21e61779eb7ee54a3a08584f2003103c154149b63d8271d0af80d96106ac456063f289218eb9d83783497cfa8884b80f5e4b0fa294a665aac45734a10104de4e975deae91dd5205190050fd3ccd93b4fc3176a76945f4cf674a344f410c1d5079850bf19643a4cdba1413299cc4744f54b15f2f83903169a44bcaf9f916445f19dc01b499683494c5de8ec9130716491e42da6333bdc39507948588521c1319f8efc95352d042302de32206015bcc1537cf952c236fbd9ed62827d8291fe977121d191b56142e4b8fd55d00f0468fcc77aa87a9b3447a798012837614ebe829a07141d5baa99f6b1d05bba971aedca2aa2ade4ea119445a82c454a07a0123ac63ff42a7bff1b2cf999b50a4b48a0a1b762daeb33056f4a574c629e6be09e269b7d300f2e20837b7193f6130a199f7f29cd9a8008d9e5d37f47261941631b72201378679003d14715a48cb811eb953621bd5b44ac02f9fdb8934a6b8cfff91d9574cb3c97179fd57d9002f2d1bc9448d780bc6029d431642b85637e2963cca74dfed0b398da1deb3ea916f1f17776f0f5f66111bf8df95189c4ad654da0dd27582424c0504cdbd162d3f2b48a8f959d9eeb34131c630dd7986c306772fbf0303f75e5f660f8149117a1b20461d6591c1abf0a8a2221c6e63163734674b844c40ef377d57355e5cbadc52c26515f575bd1694f061c2182f3f31719e2c4785243a630419eef07697ae9222db6e3c535614abc1b86db36f3615f8c50bea719757063d271191bec091fe3169e705e98ac96d4731b2b3fe817de145dc59e116bb4052878ef886778190a2ffdb56194463fab7aa6a32cab66bcd49e8941eb2ec73e0b7cba8719a26b45d514f9dd19d10c97a809f4d3170d7bb07ff71d5ea6bd5aa23e1840edc2461500f4e8f48d01b04017158e266d271606b78e7b3e290c064afcca25187ddc8e8fde460ba79d45547c96d45104bd56fdd33095d33ecf16d2737a57b223fd3079ae3da3d89c377a20c919903c1affd0d64d920b4b47ff70cab2bc2fab7b6ef9e06a3cfa0a95b5c552f7756d5c14de8e2d2318cd80ad3f9f64dc42af1996f9b55e9232d3325dfeb8b4a50aa6143a41b2b8e290c7c28920df9156fe3ebab6e847ea451316175349bfa6f38ee30953e869d800892d5cf507fb1b73654a8d5647cff4452596b440ef0554d80d1112dc60478c6731ed23a96a8e8052b0541a59528900d779f9454d5cd55ebb5b49f8cefa59af336ffaf88966ef0bd21a9bb784b1bb9dbb408112c61cd03567fc49612710b819b73cdc1d7e6ed0df73962ef4d264e3db8511c5d1f30ae334473f00b02b21fc49a68b9ecd7071933d4353e465c7540094fe6ec7bdec45da37deba7eda3831eb1fa731de1892182191b079d8df5650255f89bb8f771e2f7849de10caeac7aecaed1f903f8793bd439bd74c3ada78341b0fcb0166a2b6b892017f40f3c8f6063e803aed8973aef536efdcce79ea9c360e58a87ef6827c8f4a3a128b34005ad01d2c8e3e4e11280ce28923a12e08e55a423bb5c00a3c2d11756384bdb61530ae52f270d54b1fb76a3cc5fd37caf025a420422ef0a0b74c0e2ae241aa9307139561313e2ddb41242ac2ca4696fa75556082dd22034965a5ba1c9bd2a22aa200bc3685e25daf37ded02b6ed604ae1bf4a12d8261b8b3f2d31e3ff4e69843ad4db3efd132e3eacedd0752a6557692a797d5ce6a5dbb346717500cd82ed2ced9dceb697bef04eb433b7b1025ade2122f4b2b9f7968447f63bdd9941c4f1a5edc21b1f515190850faf88aa1021f93b3fb8e935976768143faf3ad01696c7a52fd0d2ccc538fd84519b5b64536ff8bef1a6192cc7ee05dbbc2f0011645a428cb6d81c3bd8f51d2e16243e928e36902454f389a8e6e0400817fd2fca6880da8047773500073e88d8d57c9a40e67d428fb7cd3e2771cd64da80f336684daf6e1f6c2d23d650be5df464216672f5f633df69512959cd0390a591d69bc6c2617934ecf1c6f2ceaba66c28f1e070e8de112ad7e026646034089b86dcd195b7421dd2764dc84acd0875aed7bf60bba810b64ff02150645e76409efeb213b3b0fc6b9582896bd45edfecd0c236a1f07562ff6952b11b0c1221fd0f35f5f5c7a9d257dccc392bb6fedfb3d8449851ffa0c741e6309a87b902fbc88b6a45320f2ee2a2e5685ccca1a3441e6249bd578a1bf9c18628ee1a67a5490a5c9ba48b7386a27215dfa051920051fb621d45884684024150ae3b53de16ba3d7bea95d0f2af1437778ae6a617a98088cea0f202b74cc85e05958e0b2b0426838cda03f9c1a68aa0546abcd26b94215b5029cfd0cb1592d65024331a74b1ada3305a624921de33b284a23d3f0dfd56ed6cb105a2e9d733350ea9b31a07ae38cb6fa9af99a8c25ba04985406e5725d61711646a3ec3e020f3bfe34665be714f85a54b753beef5ccaa0fd46866b638f0d9956d59190ac3ba8e457f7158c22cdc3c0435a518a1efc96a7f57d03ff9e5dd15ce922a15ba1539419ff2b4a23a0c75e55bf0e71f0dd5f7d59077f147558ca59772bd715a603e41bd9e36adc9c2c0129ea715c4dbf0bc195ef9418c1fbdfa5024efe2fc71ec0bd5b7b7a159def4cbed7719e6e05b14573efa9172bd04604c9eebf45f82861c5f416c3dc687136ba7c92006283176d111dadeed03b03e3e7f1a8cd3afa0fda7ec1b17122b52812113b035b706721592280991e58d61d628dc37279fdef5c86e60fe0499af789ea59343e55ce975e2cb3b9f6d8711d6723e119b6fa2e0e4a35d415252aa7f42228584739c8b6e5ae1418f45ba2eaadcd0ad051899a11485615442fa7c7ca4b4cdfee53e017a1e4643b73a314391f11e5e87f3914af84e23c6bdb2ec137f1843cf918ab5e983991711f32ad825be3e0fd781b29f207f9f085672c8163886d12a95fa36f350f7c3e39572f7dea7f13a303446d7df6c72bd30187360bf744099cc637af680a047d6ae74f095d69835f1a3ecb26df3b4e4c7977f2345a31be0d798a5142f09baa66b01e855b4188bf88453bc69bb9a2c33156da74ed4b1ee442d3ef43e186499626a7f4bd7646fe448b39adc2c7998a13d54a97384755c9e0f1f29a82fe756f1959e77a94ea3afbccb3b71d0ee983288a11bebcc0b0cf2eb46cff30df4e0068fee64d52694c35c714cd0b2203f528b1e67cddd63ae1d9103b94efbf4b39bdd3eceef1039aa92bab73bbeebce2343d974053fcf8ee5a450dec29ee0a3dbfb1eadee133cd36b2ef458f745bafb3dc231dbe36afce1abe9162beba0f15f30e5f0b64a9af523c99eebe188af080985dcf572672a4e68e9e6ee736f8d19e756344676a546a9348f4759dace48a55a4a5802e84734b3bad41caaa62eccdc4469df3e232e019f1294075491b455169bc111ecbf4f568e497dd75e51796e80f9d9a74ed7291074e74d3928179c83073316e3801fdae4606ca470747cb63ddcdbd29eb809c7777698929cb1c3d99d83ddabc423abf4413cbd6ddf3eb5ce5362b115ef6b402833271315dd187aed3c77a2fc1198bdb23496740fb5545fef694981d6e8c36e92bb26cbaae94a2d41ebc1e5b2541f54af78dc58cc59c4eb38c531ac081e1d2ee6276a1ad7d6236c6dab77c613e28d38badf6c65fb0d3eb36c34a2702f9e07c9531fc5b92cd90e369866b7de471150c522182f63d8082d5dc5bc7341e2dfe5ae5ef031a97dcb8acef36a69e392249ec38f1f53967a5c5e4d45426865e143170a9d7e6270fb2fd370387d94e71271918e040c83d822318aec57ffcd3bcefe211b3fbc51868b758f93223ad5d6eec332771428a3ed4ba4600b89a84f0a830efd22c8ce01bbdf6dbdeb801c23357a80165509e769d1c87123e856ba23868ee055b2249afaf23917d1f83aa7523eb5953d376edb2e01614f25843210caa9b94c5c21f33cf45ce8fc4cea016c3f2dfcc2098b693b9d4835520c48b45c1b2365777c4ab81758556429e69d6fee5f3c9ef39b066fdf2ff8f8482f09236855e96066010da1f32f716ed9c83b635a5873eaaa8716d53250116a3e3397189204c953ae657c20dd1547e051a1c3c3029c53b4075314a6dd4ac5c52044ecdf9695fbb91de25ba391606b50ef79cad1bd8cc023fa053c07417b8e8ebb2f25e844897dc90a3a1183c542d986270b73ac27a14c70adcc529d1dfd7e3dbb2d5f2156c42075d9a5895ce65fceb3f539e06e65cae7384c7f2afd662ef6a210db704036db86def711d72c6ba3bd777827bd8582552eb4bd1a8e52df0845594039f572f3b996de6e69ad73282fcd9930e727ba5acd19460f227325c8ddf4febfa3f7701eee2d5d177d85acbce070d321432b1e3103f74abeb4297a939f41193aaa141969c31bd5e5db4d31afde306af6c654d12b8b7ce5218fdcaaaa5c7addc6d27abf1a41807ba7a82455c784087e9b57f6a2138abe87c2e4d08f8c2248dfab535b3e103c072620c49162cf2e19cc59efe210f5a36b61647c879faeb7d490c5ae175aeec25d21beeec0bdf4ba7854c87fd539ac6c50fbb85caa0a00be1d9c4c9268464b300f3a9a51e8b14bed34eb0140278b7c638c7107182b7393e62776cd69a59e4620465bd84989ebd8b5d35615ea2a9e9d11ae93ebe7d74798ad04a49b4cb9c258340b0dd7c68cecfb8bd6dff3d5c5f0d958f4da48266b8c66a19c6b40129ad9dcd1c301804110b614a4c71524b0bc57500706861e981908d46e343c28d2a02d3fcdbe7621a653b1fc8ca79facbb8574d14bcc61f121db20b27eeb328f887563b99dd6bd7c4e125f2d31e9386489df2bd550117b2b5f7e60671f1128181656315fac7a230e1389619f5b2eb95ffd2e7319d688760ff08dbb6cfe4bd550139ab3a70c22575c360eb2886e33cd35038ee027ba944696c799be3b29223be1b4415f1aed63d70650ae7b87abce5ee3e86f3726d2d17743e9822b63c8100b46ec7bf3debad6aedcc302d55cab11298eaad47ff10de24b5590ef7738685bdccbe55f6b63c017e6a9658f8e5ce4e76a8e4afbfdbbc5b5440bd3462d21cdc2f25cf4405a1e519f9ffa41a5e2306f1a1a30c0230b6686406aded9120384e7b18a97f39e80877a2e30cecdcc51c1085fd6558aea2c7fb8655112500431fd2f58c210e0772a9e4c4c242fef7bdcb498fcf86f6f15915ed549eb02cbf79b19e3ed95f9469a31067497aa26a488d02ded8d6a610a715c70cb1fca647ed5ce559ffdd894bb6e7ae88b05f2e7cca0ddb6ceb6c04ef31cbc65045a3829970044202fbbe64371ed77cfa28a238553ee24a2886cdad1b483a6ee351857abc8fb6404d9ce66815d23bf8e91d9a55a428598318cf2b1f533d40b646122211bcefd1c9a897e5ddcc47bba5e6a1f9886cb217e8fffe424ff0ec6b55ee8eacd2a3e6b3e611c122c5e3ce8a6338ad1453bf1a602fb4ba678c37746ed98caad19f5a549c71c8c36ac73d620035d7f95777bf6310e7d940ff38c2af43f79fb25ae746f0c0bdbaf1624682fdb6cadd1af7d63235dece4dae1bfafa550739855729a4e8ce1db4d62f8172c4fb6243aa00d2e6ebd176fe1c96fb6132961c9780aee9f949e2ffdb313c75d9433dd085d4ea019f2d68e7d1e25eaaea7de146498ac92ba612de4c1269ea82518cba0bd8d93c8fa074fc9442ec1636c889777ccb290f9a272f526e74983aaceef7d83e9e68fde8d70d75400bd177f0ecffea4bd5653cb77ffc822a96d20d615f74cbd62cb8d960acdd2314b296f355f4ced0f0f864fbdd730494212d8966f568713f511c38a766c2df46e36ef8db63fb6d7ce15e12f401095a47bc3585c0533774204d79b14cb930c410c555cd1cc6a147cfadda84395b308ba4f59276a47d610c7d6a1bc53e47152c1b5cd3e9ae76380dabe758f1d19023be4cc891f55bb0226b45018071158819324f8cc63ca7b89d3570f6f37f697595caf932bb7c689c2a07e0e81d05b17e720c6a86a5ce8509d149a2e75021eb1731a4c64635411346a6260f08b4620998104c9c8ae4b8fccadd496e696de4893f70a1a4b3189516e697239518f0e14c5b1098bb3e39185ab3cc86fb83a01f3c4bddc3209db611524dcedbcd9a7834f5c6c1d38a947bdc857621766780c1db81b4d7af9bc219686691e8ddaff9ac696c3c52d787e8d814795f0f1e41b4f7030eac4a70cb5437f5b835eaa7760806f7e1d1313559998b5bdbc957b287686f0094f0eca21e7b7cd43f1d92329a8bfd6bceedc1daa2539f716c6b4c97649f67d9afa2995c9455654c35db0363b1d5670f72d2369b5d92a72610b98d1fd21031ff356eaabfba21a2b8edff3c826093fb6c8623d090f0e43577b326229b0a751bd222ca76bb594ad7293c2406daba8f5e28b7b2f687f3ab912ec7c0338ab9a75871b0b74cf7763de687375a690828447cd4f05ac00ddf7d826f5e4a91304737f297c51ccf522b998136705f5078d12fd799d140caac8423b67c29ce6ead697d09cdf6a9e99d4546a22fb42a7c69ca417c796d95d2b600591e482c4722c51d1fa52ad59bf69bbe600c5c9d2785b4c0a39ef7431de9910da14f7a1408963e2869cdf595dd783a2c57c4ab38e86b668a327114b5494738650a694abfa3ee484ac235ec671f2d8b7f4d169342d980f9ff22a8af52bffc72997818b5489df276c7e05be08e32cade52633a1e88044d96b49ece9cb2344c97842049f7c47cc02763549babb7594e693579726be048d7290c7f7ae7302029f27c5e4a9397c2276a13ee778f5f0540588403e8a1af49843bd5d108866a546e313d80bcd4c8eb3c59051877a7f6424711ab26a78ccd7469fde425858dd7a365af936785cc95ea797a0a83a78d01d90504a896fa7803cbb6704680bcd9dc576a112d8722cb93d97a0d64728a4b0631bb76461c5dfe5413449ba14c2e364411b60f7dc69ce55ba47867f3b16d493ecb44a61e18f898d57658519fb942a6d6b635ec449a70e9072cad3026f67bc2a0861ba551b7571ed4b8e9e02bcad102538bdecc1b20faeb012a424c799065a5eb723c89114314d8467839af0625d317f2ac29d635d615668d044fda01c6cf8b947a98710c1b432b3a259668fa3732243cf62839e6e1cdcff8125dbc474807be7b7947883d176d79daebe5a2fb91314a5e52ba419ee73997e708eb3108eb4ba6cfebe76d9e9db42a23db8de26066b0f269dfe19892f9111976daecfc2ab3b55694d9a8aeee8d62c3a1846b1f9786f287bdb7b02d46ba5fa84f6b06398091d2062845e1b532718d7444d730a0529f7b0c5059f67472fa8f5b27fc3e94a94debfd687fae52d79fc9342861460354bc2470397074072c7cc4dc7d2f6f4b44404c90d44947f754fb25023194bed0049d669d205ddd320bdf1fd21db0aa2d27643b8bb965878a5e38bd05c6c4b6f3eb6a1f245454d5c0b3cd24d0967f4039f462afc9f83de69a404b8e52c5b51fb48bbcaeb7a61986ea452da743168706e86cbadda06f2b7136bbf45455c4d0938a0f0d1f2c34a39ab60512b648b324bd1c8568343bae5c44c155daf06bdfb96405276cc14d9d5843f11d564338c39e1a86182a6fb125b33db7db088a0961b623c120dd24fe68efe3210b7ad05a9a58efe8bc6e5195c4a0ae08e658ab23acb32f12ae3e48bb04972b80155269f24bae3302172ec8663c40683ccb720236b969233cc9c634228df9d17acb38853e404da86904a06cf50d212678bfe406847ca371c9118b1c4f693d79825b5d15cd1e7f8b5b199c37b032422bc4b97b6beed4fbc71a6ee53d72a158849457e91523057e58cd83b2ad395c74f62a18a2e5ace968ba49f049fc08ebca3afdbada478851c21aeed13d2aa5a300381e67d273bfad0b69b21e3db45b0d5470a273e19ded863709f0bab49369bbb164b2bf89386c52800cadca8149324f90bea48f417caf2aadaf663e208ebc148e31d98eb81c5fefed5d5b0201beb80366c0a8321dbe4de6db9a3fcc77de422df40a682769a72a35f22a49356bcaaad7a760c4e636b7283371a77eee292f8e8688b8100e3ca49c38cf3ba012286ef8fe55b2e008080595b7236ded3babc4d57f2874e5c7e5f8a7d7eadc7672dfed868990feaff704ebb809a0e1d11d9e2931d26ef54d02438fd0f5be63c578eab79883ecdf31cd80f80a86789c88f812252eaeae94f7bbe5046bc21d73c4d468e07175e2d0c66518dbd5821f61a6ad140fd2ff1ce6f53dd358d6dbf2d4324f763b263d4f190cee598bb22bcc7332f1cf20e6393d78765a561f145ec931755adabec433bca47b685a14842807b9cba7ab9f0a89f46bb9e0f188b05d4bad961fcc967636676a7b66e9c0825e1b55711cd90f64bfc3f3dba8e77bcfdf9bc6d099429ade396b294d45b5699ef4bf10d9000cd47a79a300f52744724de49c84e5cf39cd01466f79dd225dff4c5b314a1219f086a1f1b8f896a13cb532f1d6947e7e19ca0dcff6600a5b78a65fbcdfded7cef64007aaa21a01907b8a43ce4f69e79748ce0d8657e9201fbfef526fcdacffd47218ac97cdc64830446065d759fe3528c487680fbe9da83f34f0af75cac0ac9de3a9facc287e1b31353054c5bec0b590c0e692239231b4f3a3d1efb14ef0cdc7b97234b5d29fe58e53532ebb7745ab62c42e348028ba07f30f93c6f3d10ef8f07b4c51a6f6a85e05e47505cd714af1e667126b5a8584fb640ab8d92061f147da114f6ddb6c57e0e9f5158564a99522459abd22547161bbfdef72949afa89bbfec629e3a02f50c808b909b3c522caa33a07c6c34bc220d90cd31b4ad80cc1eb65d8a7c909b3a3565d87d4f79577ef5a99f2b157e65aae38f761878bdaf03177eb8650efa8ec9b2b56114f91c59b168e9f44cf81bec5e14ecab248c5b7a1aecdb30ab48d01fbd47e458d80b1fcbc0d237a94ddd3a25420fcafb358db20ac135a337cc4ea5cf82a9cc32fb7dd1c643460bfc6a6a66b6ac834d1d14d2569f25c3b72c1efe825004c0af0162cbb628a8f79518f3173e02666bb5fa8983b56b80970d29cd8987f34268f999c91b3d361f0879ad93c2e81b2f298504f43c99ccfe5f22924cc9928f648bc51c47b23889d6827e954f70db1eb0ab240d8aca77e60e93defa616f5038d1f5b9e8bf7ecbc4d9bd5352247a68d53cc114d3dad1914fdf54bf5e45ed7d2aaac254b716622c62c4042be6d7e35f893b0502f37d3d02f90c37c334a83fadcea4f3540aa649ad3a546de10ef87bc1291c6772c3ab13ba4783bcca6c365cfe0cf4936bec923f0011d849083bff8211a514e253dce500c3ffae3c7b8d9fcf9883a67d6479a0e08b5979b4de5281e4c326b3b2af0b31da4bfd89c733a0413a9edd86bfb86e2a53d7425b1d9415ffec2ff7706f154b9e9969affd9b316be530989412ecc257895aff32b4216e96b9b829fa2486cc68b4e55f48910c6dc14bd2b92065aaa1afef03a5b988bee85943f653cce8615b64f0b2f8ca58a1d3cfb01ea1e9d426a82e4a227e15c82bc595cfbdba3549f47f5eed508d8c8184ebff9c74305c21e618f6e093b7b72c651d8e0a2048cd8e8fc449d3d16a019f42b95a88172b90e79157e2e8d58e9d18ce668fec69041944b437d6d834a22d15a11d2e9119f6bdc3759d6d1978922fdd0247174a667dcea9e561bbfd4aaff987a3191839e74282b363b68339ea2c8dd5c615e55df5b121824eae90bd13391eec8f02f8785d35d5815302e73ff643a20e564b7f3ad43a7c12e688aab9c3bbcfd088c4d5d29aca5a769cec4bb4afd46a349ba1b64ea6e996c1743c0a9549f3dd5f253a70a1f5fcf897954c4fbbc6a76d9773169ef9695fa15553d498b46e42817335916605167f20f867ac1b45bdcc81c9d6fea5c186a0a210a02194f7b93ba60444e1176a482270d11aa89b4a33d1ab7980987fa3005f8b871a621d5539f5dfefc8e6846e853228434c542f9e674c6a0a4ec7a55aeafee94e03c47612d00e49b24d26f62dad193ca061d87c5a87b5654779d7a2e447f61b7e29cfb2ca62cdfcfa17ad802b565b505430199b8c2a3749f8c4c8b70792ed98ca0d648740751967ce6104e319e2f47e1aa0e2751296712c9063ec2074cbfa99b9c6241d67a86cfd9da546fcdc7ac088837430caadc1350d1ece755a367de48b263a6374483dca6bde179aba0cdd86548388fa89ceec95a8047614d9314ee8522ce52c8d953a90de790bcd89cc693c43aa9484456125784a43a99169048c5992755de21e815cb5de386d59960be8e40a11e33ec7aac81df0725f99edef311b5e989fed71104166d5474ede83c8688715099a58fc715beb588f26cb48678965d8228018bf136c7641e19278a1ab5c01f0163617ee6d7af35565dcdf1881b60c9e967b6592aa7de5052922e54f22a9ead42e013177cddc9d169149104abbc32dc1b74cb9bdbfe98e514a5091a23f13def5e57bd80dcd39bd797811fe3c1722e82dc3220d1a9f3ecc9f0509f585d9367a85b950151bce36f252ed22be42a976ebe92af15cfe76eed5b51bd6daf4de58091a8fc1212be2243684fa8042e181837f1864fd9821611220eb0ae5e87c98b824c2b9f7fb51cc6dd459a12589fc6bb79ac6192dfb84cb63adfd2e99b2f9be7c116b1e069d9d42d3c2160b4992dffa8e04b0c54574e096054829c27fdc13ec429e55e28566a621964bc36686b007b8ef4e593f626b0039f28dd23ad15cabb8bf1fb3594c372181fcb6183d6d6c92c562495fdf0818fa0768179f23dc3b76937e6f56176b68afae28b23605bd643f3673fe10ce8c8eed20aa113a8289931b6b81b43cfccdff77a1b09b571cc1974c6640b357d3e9433a3cfa1ab92b9f4dc2629eab15418c585542dde8ae84b2eec6e9295f3cfb9a4558199eb0fac3894eb6d06d35715e2990ad26b5f7cd81a251e7d3c9ff3f0029f43d0a59169dc0454b617542812f6ded444ff845f0865cc2c35aa13fbde6bd05461001a1561fb8c55dc5a5236d4accf528eef1161c2e034f1b37dc59b3ee0f538bba1b841b12fdc1e2484faa5ce25ff7d7808cd9a1e233586d059ac1d8bde49528836b9a339e80b5f8ff7f22aa4c232bab782d812f03bb0600b2c9a9abe9dcb2123f9ac2fcec3bdaef4b52ad56b2d8157b4bb2edff81f6989d48094593f55d534f254ba58cbd92a4f261bf7faa63eb3107cccc32a1ceed5c2ed20e9298694a11a4c2b644423836c04559880f9098647dd9f6d4e9864e7ee6761445b8a2d7829b79c19490962e381ad64b0d7a48c9eccc363988928a225df087e9fc138633a3a81857c21ff551af4f12f92c44cdd3b63a278fa17af31d867fb57e870ec165cb98486f631bddbd324bf41335248b1bbdb175ed2293e631e8254896dcc4878e7dc4077eab3ad3b4fb9bdbc58bacec3bf57bc899c6834acc3e3e756c163a52d08f84436fed857e05fb0fc91733100d1c882bca7b3842cbea44577094bc2aaa16facafa3200df4ca57ae40af0e29c2fb86232c49153e4139c124b9508624e3643d0b556919fcbb9a36b8a11f1f19f200d30eadb8e0bcf1f345ce0c869e997957397fcde8c40aa4780cc32985a3d77290737c726fdf47e0b60db03447da26641ca6b2e26cae0a494d760e8f9081440907d951ea6002ec724e268f061db791d35a81efdae1fcfe8e66c27cca46586547a5d4a00570910e8c2bfc2cbc91d20e40b54b8636547ff636db563dbe8b96bad950c3073afca0833db8b4a784eb26321d5c0ec757528af9a7205836317999e439925e95c399c649eb835e258c6f2ea9882b6422d060e4f4b3643061d3e7883b098c8a50b6e8f00f82a54605665fc2073421e885585044689e94337c87b0120117e2e995a3fed49082c16d1ffad7f0dfc7bc13d44e5940f9b525591108d581a4a9eba7fecab21991dd92414572d5ce3051beb8b8601a0db054baa0f81bb0ee973d50951da82be4b486ef1e8d717d202580374da8ea1088521dc07806876ea23f38fe0fd2a1204a152f3cb5df876657eb2a4fd5dd4bb2792b243b566710a8531a9e58511d2e3317a6b920f081976be97ff2c0d6923fe1943f98e9cfd0101818aa9b3055aca338618b188d569547ad7f350904fe7300e28f2e65994e9218a5798ee5d2d1a457e7c7c67144998144be656308bc843f179166aaab423d83eb6ef1338405a560fec93f8a40a745e9841dd51b0d0ba47ddceb66a1b933fbebc8d22fb1591cece69ba847691116a68c7a50411f7ed23b4a0b55dbae08489089772382cd7e89eacb6af2c5c1512e27b356c00b499b3e1f1ab44a2f27dcd4827cddbfd534852b77597633ce0aba9201c34fdd64680e2038c4616c7eba0fc8b588b3fc49f55a42262d0e829e958be78a801731e7ecdc12e7a0db054e9740219fd987b0d4febd00754f5225157c1fcb0f5748e6b8aa0f97fbc8be2341474c033e031488d452fe9fcd2435d7db246a549a1e0aad0df3743ad3a6ba9b8954035cf676fda06f0b2679c658f2393781d34b257998d5c0f493eb91d23e93d679d087b8d769f20adf7c2e3147e44b4161d76e5afd076ddaa1e0ae7979485d0d1f78c0066dfc177643c345f6ddda9888a2148d956db4e634f8f67500c9618209ac8ae9951d609811e893cde18723ad0018fa912b0d2cf5d3c5033465b5c15bad3eebf92dfe8e3fa5ee1d7586a9141442f82db29d756bb090f2889ba1c21af503f7868795b4fbcffc61061fe32c978f1348520928d42397ab9cb6e01ec9e850c46dbc5f90c4105129edd61fa44e8c34911eaba8fb2248ba1f159c160c0aaab964fe3d04528ae54e257e4e191ea15f6dac530d4c399c8bf2d23546f525d926d33f416abc622969025b4af326089685ffdd3f342a6c60e6cf9a9975cc1d6fb3f6026d675936b7f13c67237ea7695db38427135eac33d7f122df0297a5200ce4d531c2c82d7dc74b91a3805119a7c0751a3aa1bb23c3aecb97cb1215f495735589289e18eb9fa136f8f7cb532839be6de5478dc0a44aee2efd0fabbdd83c3e1245fc7d59b8acbb35f4af4655ebc914c07cc7d657d42f54bf47af66bb6269a2b045e6e0ff12a8bc55fa26884b36dcfafe6136f387a3d3771cdcd90b19ea84db4086eb9c20da7b11f3e935be95cc71be5da992a1206e515e95c2bc5dcaa68956e8c338f51fc948407c8708524cf22cca06c9fbf585c950b8690aa6ff2c9bb3097f507f5586c609068a6b30f15a15467ea4fe720443cce7eb4179efc72cec12de705cd66dd591ab65454f3d2c2fde3730d81a0d76164c71ad1f2757163b9cfc7213ce9ceea921f446f48a2dea71600c7071d985c3a8818d93377b822f73268b915906a84309f1b7be20d2071640e68b34bc06e069189f329c0ef75e4ff8f6fcf4dfdbb7b0d44243af518ec7f25f5f6ad3d0bfc9c01ac8918c9d3866d94de30990e946937942f8e0ae5df03825f26f4213fd847d78e7a9c42869fa450d4beab8e48f53fd69c9bb2e6bf034553fc3abd36c4e8db2dde38be5f90f8c27034696c92dfded28d8bd94a377dfbd23a3c9a8a6b1b5e57319d54bd6f072febff550b3ce0270c23f57d15a1b8ec157ed4bc63631eab22f84f58b17dc08c662fb7f2de6761cc106030452838bc9b8cfad363141e7c7c063d6b4a54e4461af233cb9105973a75ea685b0cb495962e1a468bb483aae3fd0be7624d5b6aa4cad9b4f989a2bc1ebb64d3a5539652b1aff393cca3781fb76f66da82106c384e577514c402a540c424558f08c77432004022d8af77387886964a1f77157e454893366cd2e3e82e57a9d97701d02cd28dcbf84f3dc65ec3fd29eb4b0f2135f470efb65f7fd24933980397396ee3094766e0e4377a9096626c214cf2ceb8a90ec2c1bce63a4871d2a750831aa2c1db4e1477feed585461a00e282e0efc79707ee6c1a10190971f51b27eb2f785f773f9b6327bf282f23b067188230a5d0a617c53f12de902f8020822e18bc6a305f6f3285d42dea20c9a74149b7a79e6aecf4b979b946e7fb1096b0b5c6ffd4d2ec1664cd8bc4f173e57c3bf79478be17a734f852e38eddb67b849843f3e114a5513c378bdca3f25689ba90b0e4971be776c498df7b47d848b87cc7b28dba7c7a8dfdc1e78381aa232f08794cb5b7d5307c1615a3a23a982ea3148c9c539631f548ad59dc92dbeee4b1550f07103a507537e0c9663fd75903887944b5e601e30819d3d0c783a128feb2a620b19199471f5dd812959ceceeb44a5d480581afd21af1b67536470e9d535f9f0cc15d16f58bf9aebd4ab3dce4b579745cb2f89ba42861cd50988cea2cdee54fe7a02e3ea6bd19b5f3905b7c9709bae3cedbedd1c4c1f4f206b85905d9349362d3b9909cea8575ca56d64df37eb6fd16bb340c5ce09abbc33d684f2150e5759d488436d5da0bacbce359e541f4f0cc9c18b719c36488affc1405a87be2c07939fde19214b6feac8bb702eecc64597118d9143107a34013593d88f64b880adefad0ab6dd4916b4951ea6f936b5d25d7c5005b019b91d37b1d01db19a522fda7b19c4dd0770934835c776e466fe52ad88b9a2c3adb6483aed744770185aaab6778c500284fce29b49c227c2b45e260b333c50c1c7f51a7f36e2a13b9f9828b37b2aec7b10e78c8d9fb267d568861150ba4a6e7da4188d9fdaf36e226d5069a0fac223d2e2f211101de8fb9d217f25eb68fd576c2daf8964792c9331357c4cab8372287b002a8546c56c36aa546a97baae48c814d03b1aa8636e9626aa4be20f186a6d26779e4800b9125a37ad6a2cabe98b38078b47f781185d20a351d3b53780451355f4cc40b239902682caf655309f9e48e06034c7ce9628962c9ae90ad91024c1a3552e5f800380e14211266982e32a67318add62cfdb61f1af88eeaaff41494121bd42d0701d2507d83e715acf82e32a019c83fae051b4360a9efb39b4dc6a5afa6dcd060482ce529a0bfcc2168f8134cbbc289982e6df9d235f4cdb1125561f5c8638a48dca03d0578e12482d5b00e7ff454e9488da04960cb2e76e63882d70b3cd7f0a994f80d9cc7ac2c7efaaf6b69692a1dc1a26093e42d9e4328bcec484d0b7b92988ffb30d5d12ff1b70ea60a849ff9be7bd81e5f75f89362d4eca46f0d45baa2cdf5d4c5a4158ae1d478cda4b74f03388e9529d192839d436d1ecc5b5c36ad573dae2a3bbcfccbac16837add749ba957d4fde43a901d58ead8ffe1e8aee1971d494d17595ec86efd2ae15198d4b4a1c25005116ead4f57b0d9033facc19ce8ce2d2d7a243af2c3b6656d397a35f75fceb3dbf8a77bbe942612f9c5e30d37fca51d1454a1fcd7da9ba356f545573621c6f8a666eaceffff414b8cfa5be21823de488e6c3b683b5a5034489937538b5c04dc388d9376e7f107a797e5be5d8373f26a005223cfe2c4d435ba01e7fae674f69d2267862f8e7f35810f0c8f656eb3e6f4f31a763a4b6c3fad2843b1b9174b42e54ce9ce39e7c496c29c4ac03358dfb2e1c833ce587ceb5501f78028c2cd8594557cbde394841cffcec2dc34105cf39a1e80421bfae89932d97216544f9019f2e51b26e02d6163d42f287445447007976c056a2f2441cdb8c3db9dd38cb8a5b797d652f4af800c3329b9593e2b6a377935b4d620ed3cc74140b10806c13512b585c1cd34278e902618c691cfd2f048ec81f5ce76a01211bd4fb6c8cd5945ca3f6e00a33979ab98ec8209c16b56c7205af65318c6bad7a3574f9e5611fc95105e17cc0069d062bd4e3c567e6b945fcd358c550d1a71a700ccd40105f3ec347829ccecaef746ac44eae691393dd4a07d8917d24916e76489ae5fd3b34a0c89c0b644fd918cc2e6c93bd02a3c302abb55219abc5bfcf28e29fc37e44200a942245be776479824f46f66f42950e6fac16258c3da82f7933a607b3d222faaaadfcbc9d690bb2c7273b2a3740ed8aa4042b65949b2d2ac43fc5aa1f3d40bd5c6196988b38b5d819f036a69773adb56220ae561797648145a0031c89680a019e7d85c9053b0c92235b8dc45660105b3b6537aec4104bdd887d8d1a549697d43df5dba5e9f84b25a6354021bb081403d121f7ca8033c1f082ea335c0755f35e20dc8c13578040821f0c03650da6f7aa18b5acd1f0b43445214ccf5a182e017680f7abc68483c3259c6f9087f02a3d10ffeed4f9012d7e7cf548e99f046c4db230d7f436cadf0ba306b970b7255dd48aa1b6982599ba267ebbf9e8d3a9048f97a0ca4f33765a49d4aadfb97bbf13f6a4521cd33327b3d4a2de660da33bd299af6ffb7a9e5644522fbacf705983caf1351207098003362f27a801f3513e76deb5fbb2d9441c0e9fed647082ebf8b7639f66b1c87719d58c4a051566e1161c43b5cb4abeb1e0031ee4c2a7d2c4fcaa0079774bc54d7c79e0f99e6fe1650d8195ef7486051f8a63c0a08d55cdca457b4f7c625fa22af590525087f64dbc289e9044a6322a964d28d695e2c6b8eb8ea3b4694bf05cc29f4b108ac8a892c32dc137fdb3aa724f2dff9376f33bcf3017cd6f50e578db34dc3d4df2769032c036104102707b2f08eb20299fe7c67963a69159fedccb34a925d71b79b679f2caf308a28febee98127876de38917e97910f93ddf2f6e19c60fc870283144ef1b66d268c718b0fca873151cde9ece44251d789155711065c7180a79834613e53277a58a2254d2f335b008d8b77c8360f0eeb21df046071673ab427166d5b177b046c3221d172abad3f6309ffcdae09fb8382bf5b5c8ddd6fe1fe0b477bbbc8c1f00b80c97db6f9990c9ec9083a89c092deaa1538ad6452c778973e849af53aba25ea331ce6e362819c5a7859c203f3aa569da904a2accc2430537fa9cb2c43ed286408ab4edf8a25c3c2ff25a2c88989fcf436ef55036adb947a6573a6d72673d2016c55d0225365099084df3c7c4651ea1e4407cfa5fd249979b946f52f9d38318b6fed8fb21ddf026cacaf5a91edda380f290a97ea5e31b6e7d61f3484bc09c40806b1825a21bcfcd81d31ab6734a9da2dbbb37906842e0ac61749103ad60ab9019de1f31b9169082202bde600c70b5385b8ca8bd52a1ab7729cdea3ceda64833feef469896918baa3cef2ff1904a2bbccf6f2441960499a340e6e53f912895735cb9e7d0d215f78929e1f0105c1faa6a44d6ec69718a64397d01a776d556db434f56e5d347915e1594e96cd91bbb20a4e2a0da5576856bfea2a50054e1cc3ea794a2002e25100ae231b530f5d0399e96bed9be5ba1768d225c9d5294df702e3a8724741ff12497b093fc0787220af37195883fd835e60b09df25f67c46fe398b9b89c778cc8b2fd20c05a51b061fda00eb8af9aa52adc0d051323711b699b818a0d90495f2ee0820523adeb23e9a797e616dd924a6ab95acbdf1cebc2469536c28eab11cc1611d174235a8c8f5149a9f18f7cd9043598750ff37e54a42fc2205a69b67a517d4b4e7a8adcca98280634b92715b0cc62a0adff14497c99492a3c35149b640385f084ddd0de8194604fbee9e5e140db28746e3b83b618868f4f91ca7cfdd3abf24ed746a3a2cd014436e4a46827d3043b4fab8eeaef4ef02e240cec39e26152d0922b5ec6f2f935e8b9d556d3351219b428826bf1c8f01b21201c2e423ebabd0bd0a8509458c1efd4ec1b10e8c1455a4070d51f31ebebd92b01b17ea8a497ce98866686ac979a2ada763924297db4184ef3a620722a01e9248b343e990e3e91028780f9827e85f9617b16b597d5a24bb4ee08e0f7b9f8d0467a4d6196d9382cabd155fc9225c9eadd03db1d3f6c4ef9216603f37a21f09bd1151e1562659fcba9764d056e42a18405937695c88f664540999ca49f83a23f72a8e8465e3bdcc402912e2cfd85f8bc5fc99b698b7f3bfd1f65428d7f5dc7ec5228098fd3426057f0b0f7ec8d05d60f9d62d2aba543546d99710166caea936c51819fb0fee2f6f84ff69d197dd3002c0e6599ad1af4ee4985b0d8717a05d1e90607d642619cb63ae73662d978a4bbed07c73995a1fd91b6c985e0ef072314de552aa01ea1586b61405f90b227788d8b2327b4514f5f63bdf7dba5bf75245de12785731f02712bcf944b1c3b1002278fe92855d5f3d1d696516e1ddfff7bb3b7aa5a60a64019ec47b2cc07d5438cc44567cf56fe98688f73229393897040ce274dadca158e150f6d4473f1e11367e5488068e19527859fac8f8c251c0b96ff683061a398e67a680ee80a018bb62d6afc692fe03ee1f607afa8ce752910caabf0bd77a479cf50e4622d8554fbafcf581cd42c074a6fba0b5bd2938eb640a9e824f287968f22850f8cd2e526e0efa5973048cac3cf59f3beef928b9feb8f2ddbaf95a54524f5b0ecc36417bfdce9ba2e249bdca758b64f32e7f5b878f34a21af6d074b62ceb5f3645e885772794fcba086b9bfee12cbaf219cd85410074421d2fb3408861a7388d82d6dbbd0a1f9312d826cc08c7fb543520d52e62af1bd6553e59b4cea31d4180722cff1ece2b8248baaf3a756f993b39b3e79fe79b019db546296aa7d0d60b23f4d3c321a7c01521e6c8cd0b1013d2199f0679f3305eb3a3bf68f9cbc8a2311f4e3fe30ff362c6171b74125514752e7a7a719f42d176509592f77267e46b2acead7ff40abe27936ecf7818830944ce9afab090ad47b53dfca75e5fa6cf7e20d98ea8e094a10319d096d4ab0171168721dedd6fae45122282c354c9b6cb1a35ede2fe34a0df48b61d8ae594ed4c403450270a23caa9acd012f3a12a61c29ba7629adfbd3ffe2b1cb9fff9f6c2f9f746b3f62cc1aec64d38f7b64071adbff8114edb0efac101225e5d52f747f191862aa16ec71416216ca0fcbcb7e8960e68bbabb0e7c620da47011f44318a0cdc207b31b612f2cc4ee8d38af5f88e3f2d8ff0c84cf5ddcdabf1ad4966752c036d9661eea0b92f33c2558822056c59376b0392d5ce26de30f3e86247a926ac7a28b93c29d54b674920e53a1421597c35f5d765f388d9c43859a5865752216e2e7b3a10dafa80f11bc3824fb778269a3ad16c3d5c08300e41ce000a61fdafe58209ea20ccc758d0a3c1b2b6a4e3276a00a75e6cfd9e0cc4ba845944ed51ec39cd43d4dba3a7412abe54e333c1285a95a086e84fa0244f33bbf831dc7c55708f2c527d8e1c8abae067b5e67b009d9b636530d638f30dfd005f64cf96afeaa00f839368cafa0dfb849e486ddea288f53b2de8c9722f7eeebe7e592a4af48b5cd70ac2719aad319a98922859b19828a71f5e82e9e319e46cb7107a23e38ea58cd3d703eec34f1f1115f714a33069f00360a36531de2b21f98bd5b038c01ea1f78d7c197de9f8e290b42541053b02abaf0672df31ba1304355771b0a40b830e08a94b08e4956b264b4b7d1ba5afc43d7df01285ecaf0a661bebe5343074ebb047b7afa0d66d462efed0d0661f46f048854806929c03151190c2b97af67c6518b65e6457f3ebfbecf34f7bb96f5e181e260d2c57a0ecbe14b7c9a8e519122dd0b03ca86d920ca17632b81f60175819615d2b026c2fca6f3f55d19732be37c436b148e328f2a1138292092534db82e5fdc56a9c601aed7fc568e870356e2499389188674b46e45a907922773114c6aa8a03a4f1abeca1d9dba195a6934b251b241949af7327097888c8c33ca51a6e2ed5301229bb24f1c2c1913842f5a3b26cbed205d582a5d4702dac9c9998dd04efb8953ceac435d3a2f3bb4a96c79c78edb7deb1bca4aceca5eba7b6205fb28ffe9f21cbab6afb14acad7bcca04c42e401fa191321fb04fe3ba132cb9d27695a21cd17207a2a64791981bf103f3fa24f2fb9b590e2cbedf6919f64da70e359a5a72683233b1f81057c01ed49e2a4f1d840dd0dacc3154d08f0c9aa119a8970a3610ee11c7ee553b8c4cb799b197096f56ddb787a0805edeafa2c45b1c35dfe534eae7dab869cba2fd6fa42d37307a70ecf8691eec1f79ad24a7f0c3e271454de49fc814e6d417b0cbc4d5e048b0138c06e78311523f8366e5366faa8b2a87ca7f6dea94ceabc75acc06c1f6158168a3a60b2b994cc33de28593327f6f0305838569a5fbe43f9bd05e3155c67b9766e799d8c66434ca1734f2ca0a29bcb04600b6abcd8e44765278563779c54b8d0549e43c6b1a13007da6c50ecccf47d5741688016e2bffd16a6dfb98b5fc36b4845a77055fb1e781ee11bba20279ec481c21c874c9b28f323a8107ab8eb3ed0e2c5df83cc420c3132f2926e01f41403dc8f6ca6265b18c2cdfdf246bd93f29a57b3776e981f7443f12daa86dcf62b3f92f8a8cf1ece48ba9de48522773018fd8d96809d9295baf3c080da46a6f6bd8108945f41b468e8f788b86db178482e3a216aff79d79f8b792f7fc590281cd126e7e06702d62d7a48ac074d1ed1dd47d6d0896a61b8ad297afa83c2fa709b5af3ebaf7fabd67b92159bbdb3521a2349b8e0aafa214923cf285c839e23444d3d8605aef06d4de1cff8c364def1418bcb119a1cb720ba6f6a693d8294d6d3dbc393e7401f4ba033cf31227daa12c4bd42386c352deb620285339bb87494e1fd2f64eb109c9f4ed0e8bad0973327b2c264a494e102fa0bad6279cd51e843437ab9f34bf936c8a280dcce40582ab257a57ef6a8dd3a1cafbcdb2309ef9d3b6a03c27439e7648730137bfdf9a1bab80407a53eee0bb27922f167c9c1b1260fe9e2e1e0f50b2c1bb6a289c1d32e467f82f77cec96661be3b39403a0b7d2f0d654cd22a3aa8e84831a3dbabfff7a02116d0f64c8d0d2dd7a61ac7a56a712735935be01348bab515e30d93f1b32bc73fecd35ce641faf30c5444109c8bb7d3d98b4852441dbdf801f9b8406161036fc8ff38062f3bcf5df68f94e457cd7bcad76197ee619bafffb79073cdb901bc70145204a2b8b436e7749cdba11ce5d280924d5af2be000b60a425968946f30cda327e4e282179e47a412edfd7665bb9ea390a455ece37a2bff9e8ed011b847cc866e29962c73b2f3d55fd68776ad9b8829447e56381def7354190894a1c836f082bd7013cf8950c429aa4558933fd79407acccf849501af0046ac4f567e8db2267e2f1ded6b4c74316e926ba7f8a5863071140500d3eedfb6bf4ea0e2193b2f447072abead4812d997349587a2af2485e647f9695c3bab13c902db57a4d3f97b5b63fcf25d3cbaa8578951c4602a34cdc850712c0f452905283b6df2b6589a7336650c746a80baf701fac812fdb7c5ae2de3e312a2b7c9dbfb29e44c0b490f5469b3e0298ad2fe8cdf1933f75ebae3d9342bd85801d397d0fc10ff6255cfda6b97904c3ccd5127ae3ed494c749fd1aa7263d2a8c6b71567a17fa4c397343b8b2515756f82e0ecfb15c44d7e341d5a7027c9ee1f9b945bc2c27fba0171b34706eab81151a024dea83bc046eae09a3f00441f2a6c7d55a7de8dce3490b7e99125c34afb30ade89864112e7ad37851b20801202100d45f7bd65166c039180a6c75f94e4fbd0048086ab2c04f3a55f3b61d09e0d411fc72f7a4beddfb89b37c71928f3abaee48a171dec9392eb10703357e436c3a1892da68d8129efb5de82d1203f634927ddfee0f491f3c896e1ad07fc6c66a41e2a71b138b89654a4305984881526af6ef191b07ba1e20f1ce4a100701d40389cd1fb6c26bb2d99ae5b009991a7bcfafb80a21d8095f1c80ddd660e2cef26324f219e62c5d3f95833fc654e53b151b06821341bf7b5ad824679907a12d779143ba1384cc611ca0fdf10aac081143b4e76bd3a7497063011fb90449836183bd32a1f463707e315202b744d7661a35c331e5c4f485bebc42d604e7059936cad791fa6416a9ea708c902b350f3f568212bbd17dea8255d689dfa44a026a6ac1d8f70e0a7805e5d4218d0d9d5a98c7b9b3309a8f50e34b1172e89f6fe0e216bf4d3d079fe524220bb71985bc088f2edaa3cceba3845e44f1e80c3040230bced545e76b54ec1771fecfae3a0a8eb6d28574bc729b8b87c06c9849cd45d56eec0f02d2928f05fc6fb5ef200f2968a2675d3e56512e2337ed0b171c4bdd24ecbe8946306ab0e8ddde6181c44132944fcefa632604ad415d662343f5d29cd7f33f62835766395b295dbe10c160b421953fb15d99f7be7c510f3cc379c4d42cab59748e1c12fef8fd2e1f42008f4ff171f29aa7d62dfaacb7c2ff388ee53d9ce56052edddd39b0436170631e0b35e95357eab218dfff037baee4fc69e816f2d5b17a631b4a8daa4b15eb9c5b594f6df9cbc52616bdc45f97531a24d13f1d58f2ff96ae409153e831865c0e79cd8964aecb52d3f7fd423a3a99f05b6fbff8516ac040954c0a9a987699d2effb1a84432399bc2d1a618bc477213760517502c42c1682ac59acad4c52807f2335632f621e29579e1a368ae69598d028544d2988c56cb9408ab002989a0f22e0dedc89262ed50baf0d1cf8a4c10395abff8e122cde40595683f3701823f8dd5a37c56261a2bd8836489a77e73d655c4b79fce8ff26e36ffbb4e350b67c0948be19029a602a7ffd9fe004a781d12cec150a26e342e78047f859e61bf1e78c5581e662a0e3b298e662a5cdd6a76d2cc56e9df5702d10414d4919f68feb68602a9df5744bbfcefec603206d4025a44e5868009c6e99bfd3765e73f93d2d544a8cb2dd2d3f332107d069cbf75872469859f89d09438757dae14e31285f1fbc799f07bce1c95db653586784caacf4a3ade5b3458784da838818deb1807cca0c19bd5a651c590261fd2913ded4ae4e211c653ec67e2d9c8bd1faca7cf7f54044870e83e4481e6ce4b0e6c26040d1beeb5888a560325b21a9ebacaf1e1892b95ffb38c52eb86088c9db2c2099e0a83a55ae75fd46258f06ddc699eaba30a87495c7ab121e2ea2eeb2d42e6f455526f7303054c602a1c733f35b06366eb0bdadf2f4ab0bbb4918e3e5f2202d1ce0d3ac3e39f177f31a037017e062069bf6a7f3b9224131cae86582bbb8de5cc3daae1d2910cb00f8ec1eb3ffeed8e1705af57129f8a7a057ff53147ac2024059194ecf62e1048aa24322985df64867f0b95bc517b2eb099ed91212faec50285bf1dfe95af0955b7d1136eaeb18c9bced914fc4caf7601a5fd3ee0101e8a5aa80e8fe7ea8a45932c4ea2e5af9d58d6eeeb001f945434f240b2472ee7ad7d783a044a20ea3a670a2820abb3475041d88d407bdaa136ef08a6709931819ab7541549f33a2ac7bef477bcd147738b02af305807ab3eb8c3dcdcdaad5b859083e7af9406894c8a77ceede09ec17a6eb496b879b42010d841440ce79a5c79ee0e57003a67bf927ac2061c5ddb044a4786e3f6e107d06c1444e8f35d1cc7c59c959b3064b916929cf4b3b2f6bf7b9617733c8c6b3cecdfa6dbd211bf9aa045862f17a7537b081dee1535cd78cebfc841ce9da247bfbe1b09c8a9e52a427c7e8f33590415f2011cd6f341a305678663100bf42bf3c5b8776944efe81ad478e6ac8b2d85605171dbe7743898617dddf77e03cd0165d7fbe65b88184f970fed77ac014cf151f59b2a2f6725f7a35eee97ade13fe0b9c1795c2ae3eda6666487445fad707c6da8545c09a6cc4e8801ad0e6e26eaf10c9e3fc86d5390f4d1dcbcd8e54c5daf52d499c99c40544a2524c8d190401529567466f2c1f1d5b81e7b3e8af4650a20112cb8a1e61a6d4c6ff6ae023f63324a922fa045ce5cf46c332f554086b2a738e6ae068ba9b69c332d5459b70c3da164ca8e0a9b10cf0152399711e82e1addfc5def94b06b6b176322bafd9940926c423d159b73f41dd6f0abe0b12535b0793936847deb3655091682510716e310f25fd048e2889cf2b53f769576a54fb7f0f4bbb48c85939b71c3355b8372a40e965204f2962fd241602b81a740771df6530f4c0a38f46bcd0f7e06aa93161c833c61dd70a5625c9542a2e4b19a640512865c816f6e76192f482b1c75cf6929536e646164a6bd6081a2b3b8b9b87cfa00fffbc79806abf04a6c2811b6bff9b51a083f2086c0353ecb8abbb71229b07d3f04265dae21c4b00d36cc61fabf7a511e5af1dd6c6853f89ef027738bcd2cf85b44b33944932c89a58e9ad51df0ef041fa5bde516d1327f1e2e5b297a642bc8c590a1a07466139ad924408fa8cfff8c642671bdbe3c220f824f737af7363c3246f5ab30da8013cee5e868d9b5e8d62c25896f26f1d655e8c37d4ed884e29d5b42df2e65ee92f20a9dae4ddb0a022ce37e2bd777e0873d51ea090704049543ef39c2e1e1c121701c6a400cb85d9d07bcfe51af0951db004bcbd8ac7749b7b4de67b5d913df247bda8600d3360cd79f03b35174fe8db854f47a63f0b514e45f64a758f5134ceeb561248ef1b84f659d37310bd9ddba9dcde4ebb717e68c50942363bf74898be07076008e8265c620aa002cc20cfef0f50ef0d69a3cadda91ef409fb97b70ce3fd5a27227dc40fd7bb4aee8c5f660943c02e4b5ef6f647b174c08f874a13001037b47bc830ff8b0aba4a85ef931313951fe2c70605651fc6a6c56322077726522519b41879146a70df3e2a49884f6e84e9c30145c09be3aa9e9a4c9b393296c132ee9fc90b6d8f01eedd0e0eb7998ee78883e352f084bc9abbf8790a5de87531cbf4bb1c9544727251137356fc87cb386f94dd8910960bc6657ac9a8f92491fd328d9aabc0a53b491bd0f426179f0ab5a0319e932ee3c84a42e3bd0b2b2c949403836a403832f70c83be17bc2c6f8c867a3aada5627d97c1f1f292b7b37664d9169e11e9f0d37f78132b64c80c8593e4f7cdac19887776ea20b4210516797c21280303ea10fa28388c07405982ce9a178f50e022e7ffc5a52695af6a498bd3d8d8624180487dc7d86749bc253b6b86c90d5d9fa39e5bd0c27e70fcdd0055cae52cbe5051ce64e2e8ae76b249a60d32c2bb249b264e8f9a2feafcbe98e2efc5e4317085c384b8e84be2010cc0a169339119808ed1d718ec300b82673491428dfe1759535fa6fd0ca34274535247a72f7429db5b71ab305c0c8d8c547237eb0b088169c03415c465382bf638051c26f02fe8ca0f6873cca24d3d3ae023a91fa11bc03fbf32504dd5ef40a25a9e8829d0194409029293c008a2828c05722bb1f3e17e256c985a6ad0043f6a8ae07d8c1423bd3db83bf2bfbbc5b4b4c2aaf2f2de98aba79f6f9372271ac2a12ce514520cd2e5b65f8ae991c9b9ecf10db63bbf12f735b4cff7ebb01c45e1f7a4d9243be95d6f8fcf4ac4c402c154feb02268663459e4e5deeff072c300c776559286adcb888ccf3ebcf90c4401e897752afbf612afbab5937b68764bfe98eb11dc5b6a3db4bcbd161b10451b66d4ef0183920b82bd9d5adce4e0fcb7dc5a08790de5496c3414c2056d8ef3e08872cef20432b5646d1860cdbbd767db732d65a1508e6099d03777697ac6c93bf61a13ebc04faf1213168cffbd3ea0d76373736841b004c41f4c9377c0302ab1f64db4301741b437b0bb4b229c6a4d0f8e6177ab410ac972cc81ebd9cc6543cbbd7e62502d609ccc4838fb907e23f3bd0b54afd1dacdb9b8ac5256078fde3c73d4cb8f4bcc69b3913237f4f1546be68049718270921ac425fbf1519bd5051cd63560b00cb4bcebe3fc1fbc9fa4725aac8ed4d0e2300b42d9ae659dd7ac409b81ecf3c6abdddaf0dc47cf4d05a2588ceb29b3c12ab5aa42d99f5bc6f03421f871f80ea8c145cf81a795245eeb8293d64b07f0e529c18e5527839ad0ba3d365226469ae3927e9941689e6583b04dbe75ac1fb44717a0c7783d5a20b5a7eab495e291c1bc8d0b58d9939e4475ebc1b97f78bff4351d592a61d14ee4519e1b2bca159c1d7bc061836d420c260a1faf7096bb709fc72a4b5f97597c56feada827a6949b9a4fc1444c65f06ad536b446c5da52515e4b36e4a8264f45079a98b3fe71c2a83d543ed690cb76d38b3a0c52f7c60dac28671c82d86ade928635ce1a7fab6fb5196baef5606f38be893634af4810c43b9e57f589b215ca05b6942ddfc0ec8a76790c12c719af44869fe695dbe4669dd98bc6b9f9aa0009e72ed874e7f7c4618b3bda9a8035e35f471dd96742c6560b8b8cfa9f72de7ae334470fbe0f3f4f636c70d21da67a29b027261627c49ef4057f631db226c92df5d9e1f32dbeae59af7edfc742f1cc93c7289a75cb29eaab5cda84c00971fbbf4c524f1e948eb3d0a3207eaad45b5cfc9e2acb27f785953d77924e8dd514a8244da2e925219abbfefc8b32d38e9fff1d5d050c5182bf35ca02cc3bff81701fffc577aff10a8bd6ea08d6284bce97ca46b3c85c352d24cb71956c977172d83e25776b52884e81ed16c91fb1f674f152264ca2b5d68303441216a3cac22fa9438ec046ff7c2fb860acf6f8d31b04ca868b6083a2898f68f5d6019d8148c3bedf3b59bcfb080c360d11c5f52cb3dd5b5043591d549fb6b3d8c49938db7d4bc7d9b20655b5e792b72f97e4a284cd0335f1c8c8ae7c72faafeb4ffe9fb6d44dd73204f4b86c3ecc35492539a30a1de236bed0104209b6c38991b34803d3dd852449e6a83d439e0b9b52b5469591dcf6d652d250f6f00425c4ef3b12a9e411299cafd760b67775d270e85be15dda8c29c672e10624f6b8a3653864fd44b1fa715dfa42544e006e5f5bff087ed06ea2dd430deb7df358dbe84e203357f0ab423aacfbefc4001b6b25c0c83c8d20f781108e9d45d87166efd650c3b958f5e0f6de78d211e1a5c79c996bccf666166a5d645359012530166ab05bcec3b8a862152ae35e53a6e691886ca0fca581d17fa574e6ff57e230719fbd6946dcdb546cf10dcff5bb6bf00ffd4c18e490dd849ada274dfcc30ce726ee5f46fd1b276a5065c7f41b486084f459a373a0b5ffd379f8f5c8c77307c6f70591ed4c1dd66d734403429e3c9d89b6891aa67b3080e8576cedc36af50e891ee64a3ae3d1d2c4e338fd0703f1659a47754d72b758f5f091c1c50a5e5fd74cbea30611a7c6c039a8766e3f3bcad551b87d91610206a7ce35b37aa0ea901b703b804f93a6c91865006ff33bbc2d8e3c8fc794021ef7899f6ec4f78992884849b25ed0e10c59e406af89b9689d236318d37563bbbf5b36f7473b3069762728a9d19849cc38844b5cc00d276d47a99d3851430d43c13644932698f551f90b2e1d712d803c624be64b98863edd3b2262a0f9dda677de989cd2e87154d52ad5ea489b53f5e2ddb901456626beeb423511db02d06b3436cf183cb98d24dd5bcf31835f302451dee27f783afe081491ee614818754d6e4cc44768f911d48e3684b6f98305e79d74b577181dd8b37ffa21826699128d81a7f6b522bb929899a02e26d750c6ad3d384a20ade9e422dc98d9decea52b10daa042bd5e126f2d968a2f082a126bc54985503f9312687a0e474df1dd83a7ff66815245b4692ed532d15dc5e992d6241794e67c8f52cf57d20663eb2bc0e6c5e2102eeceffa66545fe50ed72325349cc0b0848f492435b49519bf6be707e48503bad1e22b3ef62260eef9349e003c49df4a1f5b9fc5cecbfb9bb41a63482f6112078462ad560df9bbd3bc0bff505b1da88e697626432f0e8d98ae4cc92f7f114bfd1fec33eb6dcb86cebbc6427fb6cbd76e92f30ae0f61c2c6cec5b849a74987d43fa401b1c53e5f6591cf02b105e2933f024be359997a108b45c190fe289222e0dcf78cd0c22978c0929af108f13c66dcffc1f72c8774ae2fa342f7026a088dd9098b3ed925b6ebb4bb818ccedb722a464b58734fc9bbfe3cd6cb759d58e3831a94470eb87d1b830fcc61ada97ce1049bc3fd099078fddb50ef4676869aece57287c90e6cf5744c833083e556ecf57b6e24c4527ea0e9c59e4a5c60060c7f4112bca08a396e072efc1cb3cd9027dfe48f8b886daf955cc65fb1e96eb50e5f93ccba8a4bac5326b376e196c1b67d94e5a058c5755d890e904b6e9f842d74f796de46f662e5bfd95291e58ff45bd94f929e2de6fc1b9f1db1fcac9a8e2087a1dc766de37b00ba2ae8b0592afd03e0f21767f11a640c9f9dc9a46562ca159cacca2a501ad87abf01823d547b9cad22a669835581af1c27954e4a3876106a436491c746a8a0cf67f098d671e35b68c88cb08b6bf9c7d3840c447ef2d501b0ff9e93c654611eb902a402bfb9e84bdc6ef5c929cb7e8f44665e3d4e9c8ec95eb7db98c85f52af468403dfdbb616af128ab3af424dcf29a2d6c287f750fd7af5018cd4a01a476d9b68daa4f4b1505937831b3c803e0d5399f227b846551dc773fdcd4c11cf9e137b99ed6392850aa48927160a8cb898aa4cea12b3e865fb568c4f82c09cc173307174da22081b5d865b8fae61450e416b2c04ea7d875bcb309356fe116d19a0809c882bb317ebdb69709ade440313da74d07af0a4fb80c924da8ba74d83d0f64ba186f0f30a0b023ca55af57bca56c4120379c2fd5c44c92ce853aa2d1a825dcef3021b20e29ea1dd1bca2f3259d8187c364153874092eb9f28bcf41ec40627c3ecd5af09f7b6f09ff49250ae1e5d7d69b82a493061007680386b76011f060c32a68315f4c6ff0ea79d77be8edbec722444aaaa3f8a5d77d0e3b97cf27d33c65485684b32e69b9d4b742aa0fb490fa926cc3314275887dd73a409f8a95b8aa3aedab63565c7f9cf0a0d3af3791fb1f3d8936b500f14acc249e9abe3038fdc5f16dbf590589e7675c0211a01311fe0eae1b6971527379b602e0cfc7f72bf03b72c2919f8ef7dbddd989c035d1f6e4cee9c8fb387bbaa3a7e3c6fe1e9f0a7387b154b2b835aa0acbde79f786616e608cddc33b4d5a92a4415723c4b6da4f5881ebd0290ba55df3e1b9ccb0519a6763eb245c0ac1a4798848fb8331f1e4242502dc7b4a207cca758fc3cf8137da5ec4917806727774144f39e76b9580b35772f14515e70d3ac529ec578f13b593b05f3250ac1b2e70f01d904cacd39170cbd8201e2d04ca94ac50fae990adb9f7fa130180ba060a3ff6743992477bcfdb0c32b6090134ceef586cbb01c0606920f6673b0cc52ac2d7e5c4db71aae2ec7b970b4184c286c45f9d67e7c2cd793d34c7798ed8610fca6e6538d9ae94531745512f3b7ad291f1d9dacecaa555e8b459d8a72678c58d36e921c4e1e477b74aa99112c66bc51b830d8dcee5c6df5dfbe6b8559fcdefab362bfc29e982b81b4194445446b8b40629c86f36d1e4ed3fdaabfad4a600c59fac675ca4c7af97c3201d250f336840413aaae832b5157e722a5e9024355a6fddf40d27491c92381b30eae2727ec86613f8b6130853637c0f1f58fb75ed90857c9dd0a1a5a53d98d34c87a65bbbe33664deebaecc3752d6d1f7410ca899d8e5739a8fa28d28b908af647258d72dd200d78b431b359adb94503ec5e927901159384c7f98b280a610dcbc4e2a9bd6d1a9f81f59abfbfeb05cd06bc493a5969f96dd862eb56085f8bba12df72ee01e21b77019bf728909cca882a4b75170851f2a8a587eb5f163ae4ae9d162c1e002ea8d2be8a0b61129a5a98e6f6ccd99e44b29d410df1a26bc07e7f40016a6e2f70044562c69757508de8e96cd3da12f528015b7e720e3bd48e14d9b7e24b4973111ab8dfe374bd15f54a1ae5c0430e8f08fe1455c566eb04a8f5eb2b16d566da6460306a681d373d36c2c4d740209de66264d9d5e9f114851ac31d212d6d8d364811260b2627e1a36aefd55ab730b826f7ec1348d9847b4671950c4e3d5dfbff486235d1b875e19a7540e20fb44ad11f73f30a6ca390a429af4c81f0bc52a82929545c0d5abaf9ebf054ddfadcddd562e4fab5e42dbc1f639c6764e8fc6c7a541db50fd12ec3eea48ee21504ab6580e35fc2867abe2ca67924ee187f85b7dd18ab9658bbbec3026b036cf90349297f645e9e5d0be3a67e1bf8917dcf4954a6e9d114a1fbb1efd098b3fe8d57e211a3555cc01aeb335f1b12938687e66a014a891bbcd025a93e8ef5ef6ea56220994045f122e65bc6b744645d026186b2c0a0ed7abaef81b6059d5a64c27b7551262b1ed9b50e3e11d33e2ecaf95afc9c24d1af0f76c7fd0bc28e9362bf282d306d5ade0ea8bff375cd45f761978ba7f50cc2feb026d0eca3a0d69fecc1aeed91ae89c2a2df5297ab309c97bcb239dca962eed3f621eec8abae3e271ef9bbbf751fc94d724677677b20f55b11355dc0fcdd6a4165ef24dfa5c03fb80edb14cc2dbb1b333d2ecbbb5789db82cdf1422ee0662a817a20cef0526c23eb5f26d08b547de78dfed0e323d52647d4bb316cc1be2decafdacdb15f56ea4b674a664d924527f2ede7f6cafbf5efdf73b884ab871bed5d190d431c94a6bc66ce4c79c17e1922da1a884b7a496d46eb5cb6280bd00859d77c17f6d989743ca8b88105d8229fbbb731b0697d49937a36b16f7b819bbce71dc99eb61e07aecb4b29ecc959ad001bdc6b854899853d2ee0a55e32046ebb2cbcff209b2e14b894de5eb32b9b11f52b3fff3b9d8e5e9d6ed54ab4da74f1f5d451985166d44def619e4e067543572e41fc11f3fcedb05a00dcfd5c46a8faf2596f980bf0dad5f88870aa017bbbb2783b689d1d003c21aa831ff6c5b9212e97f9a57be3ba111ebed29b4fb074fa1ee68e724b2e57d06b959bb53ed6cd374671f41f3d36b5dd0f554be2d16a5641f8eeb87b39fa6d7d60c33ccca5c830325e5e39683bda6ea953250bd68dbb59577d753b6119e51fa65451b33195aa35d3fc7fc256bff13b8aab3db7c7dc3b2180c24a14b83a7e83dad57576afae6c93ca884af59db7f62f5c544dd0bae0dc0628af19252559fcd06fd6371b9354aae72eb2d557b631daf064ef87150771c60eb94cb06c80dda2125ac5b1b01e33bef9280ac411cbfb8a94c36fefc520a1c649607b90dd7c1bc5e551a488092cf75c64081cd53d6dce1e5aae763bdd7be53fe0e2c3edf904fee8253791461239c53ad9d708a68f09576f2f1c34b68f4bb3952847478767b090d156ef54febc94869cf646cbb97bec08fc6a674f800afce5e0ed169fdb53736979caa69d9c1fab63449ee59a64501cd1d073aa18bd248aded80c89aa8b5649cd01c7d12b968e80c9e106dfc263add9e2724200a59b5158cbd20832f4c18829b8c13c9910f4d35c592311de6891cd26e1768c6b75f6ec43730f4050f6e728d36f410cc38020d9e8ed195ea4d7590bed9bce7d517071c7adfabbb93e8a0091f79b84de97bc7b618a06f9752278a486fa4e80a47a33a02767542eb3fc7b64ae397a2b621d9120a38955c3c9836fb0597ab522ba24e96c26f8d1b4c903d0610c1046c5ff77e47d92cbd8a21c41b666c2c6d2ea510cf9fe2d0e2d9d87fa146cf650661f7883261ebc73a99975a2a236e821e26ecc2cc26aafd8c0ffc2b92541a49f7ddb2ac79a6408525325813e3c9a59f53516fd5c1d07777222c7cb8c41dc6303fd8f7b915996a5c26f25f50f5d7239b45ad35817723c86b4e14c18f39683fd8310f2bc9b2ea946111ef701d5fbcb3b17042f7cd645fcadc8ee7e2c0cadf602386ab25c02a0d981d34eae1ef11159a5ae95f74ac4ad1e8ad3832598f6b1c193289fc5672ca76cb1c15c4785ba054bd19cef03e5e65969fe3f3c9d136d4f85955e52a2833d8b24fbdcd5f77e93f6826757aebc8a358760517bd8ed6405edacb55d58a651206e85be72ca2c9353aca69ba43a7db43d20a7d45cb57451e667bc76d0d3bae412e8c46a7383f288d04ca9036c4c74ecdab1300a4e807ac3bca128f4f10a0802a56ab89a1021faeeee1599e8a618627fdca7e2274bcafec36950b23029e8ce3829934e6aa176b34e5300eeadeab54dbe05dee39e1594f802f918d3dedbc32969e33b5a01d592051a2e5ec43e24b6733abe8c4f31862cbe380fcc396bf3645c5c8e82593fdd3649d0fa3a0775c2408e520ae22f56ed5143c0199944f0ef46200d11ee0b1b590bb318587eea5eaf599850a7ffa992e68a8ea8a1b4a15679662390528c803e6c8a2bf7a66e60b38b436c9a41745c285796e70c0c1aed1c25b7753d4e2d792d077e6b435b1e3812e9f2bc377eaeaff448128891d512577f7c3e9751d205be54f7c7b45ec22746c8bf3501bc2414488cb570b52dae6bd3cb2eb0888a972703202c9104ca6f8e3f36ed84e3c9d9d6f0db5f85113ec1924b18a7a661e795fd6bd5cfc61b90cda70048152c6abc9091c1ec7d93cab0763e31e387799d77da8ad005a53b2f9879592a0bb53904f9f2959e0e112249c42e420a734420d5e0579068814e47e3edfe47391321475a1e496818419faae6cc07553df5334c54614e64fce938697f7c3087980385fbaf4715830aeea12ec77d1767c9df49c4d2f4198de173b0c76b752d535725b901edd3f3e08adb564a481d5ada44bb8f036793d998d2988f8a81bc5f4ba9da67ecee4da7e52f0ae5caa238a9c47646e93851249315bc9b094190d8a1d1d0671ce44c55e3f2a33c4114c352efb0957c40d69411730ee58567896f3c42b1b8e3f8a6d6add1c29c6684f96f94521dc0bcd26a5fb1cfc634bdb854f01589fe130168d13764a788994e2d1e8d21babb5fefcaa771714f337be3b209660ca16c951a3b669b7e03fce0712b6051a8f251c458a0e53fd10f354faa527190912eba20872496da7f4d312e2c9ac48557094ae9312471938188df3897c9df254b77eb0cbff8bd489edbc27a4e39690c18c058c0c5ab210ee211ebd2fcb34824b1d549c5f2aad851b4d5c1ec06cd0077541df226b1e130ea2bbdbbc63fe84eccb028f993669f497b030f1b8f333ba1d54761620487df40b1ab251e0a0e3dcdc07e560b16d8682bcc0e39eb8dc5357777466459dc0acea4299f4d7eb05a11cce12b146c766b365323cb18a665c8ed874187594460eec9d83774e58b39f196f29d2b662c508face1c8de45850da50e410427835a4787522ec56e3dedd0b388b6511879fbda9cd7c7e956435f265adce7584a9ecf9f06c3b7e5415c88adc8f270a62249d9a9ed296d8088d23da3ed8a990868b924c1c6a48c89c15bdae2592fbba75e1bf222243a58896d9f67e3e89590a27cae9e28b4c54ae2d9b6bcce1d85e9908f9170f268c00c7fc4e1e87a82391c214bd1fbbd9bec843e49e3a3fbc553af26f938b6780c8a650163aadcde3e38c5e744656ed49522f7601c6b51dec8578efe42c00d22906ac790ba9f759fe4a30924a9cef3965203cdeeb3188b6ae332c715328fa6a6c2c350028a2ee6c4c6bdbbb76fe2221bcf568968d179ed7bd23f2952746264c2892d25a613bad2ad725461bec71aa0c6d52381624ff8c9a007b2737074b7bf6fdea37a8083d10b1ae583e14393183394d934b51104ca73ee5a4dab7a3b62a8932e3f7525701792d3b07df103c3a6b4edf0a76123cf1fdb5f481747e8dc0b9408b75f42c9d949f73b2007c240cb97fcdaad6e61199176d50034b151a80ce684878a7e7beb8b067447011ff1ce90491730dff0715e0f7b3c9b3b87e2f0bf995cf31a5b42bc81bd18d4f21d3d8741a3b1dbff36d4d4d72eeb88cf2b54473ffbdeaf4dc340cf2bbfaa5991321b0df2dc93bde6235625e12bd829caf2d1af0517ee2c8d79ad59078cb44234b49cca25c145461ea29ca27bc4b05ff90bb80149ab3396b260fc41f54b5e33855d1813bc23e604010d82e7c6c084fd1ebe4ab0d96d5ed33cf3852b67f793e1eedb97fb5d114bcd25a2fa395777c7798a4d9d02eb116a297139e240bf243b2ae149d1014c1e9e5646db2fc5b307d06ea7a7d43a7f0ff9a7cf5a685cdf3db20504093fcd40c4d2d2160a3c8ed7603010388b6ed7a290938b287224246ab66dda70bcd579ffe753cc3f4cef3932ea608d885ec6904f81ae32de993d7d1f546f006bd24cc49beebb64da7fe51c046df97742219bd0b5aa6f1d02e6cf7b904f7fa8ab8f1945ab9fe51d46f8b5db4d7049911bbb08caa062f6c05086eb46558fca7cd0a6833895f7cea4b6810b884de38e1937d7f6d498495ed283a46087afdba10509741b179d39d8bd0022b22b3ebce426ac00a4f378aa13b99028e342a815b03e2a9cc6ddf6757c152317f62cbb9a60e0a29b643f3cdf7d04e200dfea65707076847d5d763fc38d75861e8595de0fb9db056e3d40649210a88c78f64857ab963feb44766ec941959b96e381636498d4853604e8f3144720cdb248ee3e5da7acafd9aa6f77bcc3c2e1a405a9a3f442bf2e0c1b26933db4b1994340f0e885978e31efe67ce9069bd0a5b01bcbdfde63bdf6f7d5259d43c8aad994259c0ef4434eb39207603ec953476e230d8f677a4a8bfc1c1a4a87643429493bff961d8962051c099f675fb22f40ce21ac28219fd32b5c49c07b276502c60624938b5a90fbb7b4291e1b88fd6b423804f0469ca0c22deaf8429a247ebbd6e574dd4b9970868d0cc36d8470893a46e3d037d6c07b23fdcd70ffa6fa370c9c9286ceb0d88a60e7f553ae9b3303334d0d23163c3270b17074dffc9b458df3c027895f517ca168f6ca6014aa1c7bd687ef8619da13bfa9666a39b31589c3938bd24d6742b8f3dcd673e14d1add58a30cd5d9fb2a44567a54efa64940f65a4a8a25394a60c4fefdc2dabe6e0b9aaa6477c157d1772b309e0c1914cfa9218348f5263a8d7bf5888af3e5c5643011fe862e0f4ab7f17f036db642bfa86a41fcb696f1f7053f5ed0aa844107d0130ba99bc38ed0197b22dfad03594dc43b724bf68f7d1d38d51f1baebdc0786410397743c41d5653ea7267dcd0c77532dc851df028e93a23bdd1dde42e30c4c71ebd52b5eb905d45eb34a22ee977c2f6d2052ac4bbc60e5e9a1a72c7eac4a2994c688714be697b919a9dd54a889a5cf213d8f5a513094b176ecd675605b55912b8e2636c287af7b04b1721e81dcfb635eac44e91a6147a97d3d1f8a59a077c38b0ed5771fa18ffa3c8a85657e780b78bf853f7bf1a582d3eb053f8d444193e6d10c5a94b88af49c2f08a10b098cc4ee9322afe5030370e7e4aece6479b9e2d35b22ac2e74fb8b310e44e6bffde04cf5034cb131f791930304c665a9e8e78e562dea33ed76a92a26f555f7c0b9a47de5e45cbf99fce091b51a29b27e648e4891350b298d55bc1702a215f254238e088c6a403c4e23f841c9bb89c4c0da1d11b6cc86b05c555319a9f7a07aa8effb720cfbb299af3c4f79d380d30b961ee9caaaf052bebcdf313d68710e02747bae9e7577ddc55e7f1b6d5c8c14f3329ad628c830b645da09c64da9aee05123c08e544e926e586d6a0fdb1db640fe55cffb533493ad7a6db0a7fabcb600fd2e8ccefe8f096f7a775b6aa1748f04fe743d8d5463a5854a64e4056267b2ea5596f781bdd16777ca548cca02869d2fd4a1878c3e8b02c0d0726d622720d061d4c644abbd7b4007dedef4483974e90c414d1d1c3e4acb4738dffa99dbc0d62e38766e997102b2517262936dd586b56bd4a4b5f6197349aa98e0be4ab7f8c1e5b4ed711305f7450f8133d79a35ed84e59d4d1948221e65487c19deccc1a6f7532a4758e5aa99dae527b9c1d1553f964cd15d419a1ae347f1e3dd584253079213eba2aa831acabeb3be801afb6d4c6f5f60259b3caa6f95df7efd794c790bca1a873c46f371b46acf2675531ea79667d0ea8e5c9f0731ea94524fdbff202b1eabcd2efffaeae78a793d6f0b2fdeb2d2e79ebb7f1e32cddeadc5ebcd220b2ef9d39dced54393131f0c347cb81450865508aac04ce3f622617efadd76a65a4a1d161a0cc90e6ee0d761d5f51b663b2bc579d5ce1222ddeea7bec21fa50f9776bd4a21266bed463917081ece45f240668df2eba31acdc616552526e2ac74d3a851ac690f84e6121bf15e2f28c927d9040b655fba33c71da6ac35b0c27bae0e9c3c152f42f92af15c5333d3c6aa621b4a35f67831518c9b04281485785f8e70551fa8b89e72f18e8d49e43e69dbc503ec3d08cea419289fc433f9df3a173f1fce6cda40ba079aad9f3bf5283fad226217ba83f6d112302934d51d04af660d5a4c3dbe9c87ef0ebeb1dd320304418aca37b77d62f612744d576216d179c3e42ccfae1eae1d3ae48e08e1eb7ced18d8f890281c827acbb8e01120e50166ae505c38ea8bb34a1cd8f24682b66f3abeb06070c70909eed841f262bc7e30523c1391ed05daeb3f90d57ad0f88e73bc3e21a87ec8e435eaab2d7207e196f5696124120e20ed5c636be868c131cda4956ecacdd8d5ae3266843c1039f8e93204b2c4b7a0d9fae1112789e938a19cd7662b9db91a1413eac413f65fdcc378d0f86882a341b36609e4be86e80c457dad283fdd2131786ef32f21729379f5ac49911fba3429a7b220bfc50c52ceb480c0fdf57100d4f3d50b6ba72b6ef5e549b7e462e89ea3a27c3d9b0b3b295922aa7aecdc3984a8ce09d7cdc5049635f85a4a009e84bbffca5697fbf14f452a6bfdc961cc5dfe915ff4ed878d1c9c8e8603b1a2388336e2d55bfc955758a341d89d35253653f1f00fd1b5955648ad6190b8f2532b1a5aabab2a427ef4fa86f8786eaa3ab57806e274e7c602d95bb367e3a2fdd6c28d5e2dbb3df8b0b7ce28cc605b6720327f8e099ce722824d6c79ac8d6a464a36072a235942146d38fcb0e8b0c5dfca31c2ec4370b166fa27d8b04ef0fc8adfccd6bb0931bdfb49727b9211b6011b80a26b2cb0096f908a1c97a0ea7f5a4bbb0b14c95c306ec67ffe338d037249989b85e3e46f98a298f498dacf8fde07a76e994a2623821e6d91560c8dacf39d8d4fff27902b81865123e21420a9fac6fbd4733ff4d9d4a503a7d9cdd10d7cd95922853745c61386e46b53176cef40dfedc08b8f8dafce836b7b668fdf31c9dac409f7c6458be6b6d2a25177724f9343f9fd324af681428326ee2bf58e245edce56c35f5c489d28c479a39f2458bc62d651aff09925b4d21fe10b3a83d86d383d0058afabca09a095886e0a57a8a4c2fb05b154525c0d77c0b35be258eede7a71b11667a113359f65b3b40188e899540ece28d578862bbdca307ac5f1040534a65812a820646dce2a504ed6350647c6c3120ab51b6df0817ebdeb4471977fb47cc160535da8371227ba6230b6495ac5d6a68d22eb64dee90f2ca5a82c4514012431aa2b37dea3ba5fd4890f52e744222444cbc0ae5a5d3d012334ce64ec1ee90ee1bdeae0c5b1846ffdc26080f7ac992dfae28e8b6ed6f0a8173a9a1ee1d64ccfe9349a2f9274ee2d2747499fe5a9cfdde9599f67f87e2ddceb44d2cbbbf6fcb2a42694d953781d5d7ffc4a1b9f1e3e6a835d41f11a41c4e57867bd3dbd3056cd003ebccb4b0698a90e1d2a0fe00e9d281a7dc29dd4edca9b38a1dd75daf37d02eac215e9cb6862f95dd21552d913d3ffaf773fa49a81455fa745ae5606e890da981082da8a6f0560a031247c52799665b9ec17f56f4a2bacd8f541a36c1b60b3f134a9d0d8edfd464b0cf62c93e785e5a328880fb3c82027a7a848fe8715aa3fec82c95c12ec6d840b3a81ba7a62fe1adf49b164d75f1faf069ee10d6eac8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootsnapd-2.42.2-1.fc29.src.rpmgolang(github.com/snapcore/snapd/advisor)golang(github.com/snapcore/snapd/arch)golang(github.com/snapcore/snapd/asserts)golang(github.com/snapcore/snapd/asserts/assertstest)golang(github.com/snapcore/snapd/asserts/signtool)golang(github.com/snapcore/snapd/asserts/snapasserts)golang(github.com/snapcore/snapd/asserts/sysdb)golang(github.com/snapcore/snapd/asserts/systestkeys)golang(github.com/snapcore/snapd/boot)golang(github.com/snapcore/snapd/boot/boottest)golang(github.com/snapcore/snapd/bootloader)golang(github.com/snapcore/snapd/bootloader/androidbootenv)golang(github.com/snapcore/snapd/bootloader/bootloadertest)golang(github.com/snapcore/snapd/bootloader/grubenv)golang(github.com/snapcore/snapd/bootloader/lkenv)golang(github.com/snapcore/snapd/bootloader/ubootenv)golang(github.com/snapcore/snapd/client)golang(github.com/snapcore/snapd/cmd)golang(github.com/snapcore/snapd/cmd/cmdutil)golang(github.com/snapcore/snapd/cmd/snap-seccomp/syscalls)golang(github.com/snapcore/snapd/cmd/snaplock)golang(github.com/snapcore/snapd/daemon)golang(github.com/snapcore/snapd/dirs)golang(github.com/snapcore/snapd/errtracker)golang(github.com/snapcore/snapd/features)golang(github.com/snapcore/snapd/gadget)golang(github.com/snapcore/snapd/httputil)golang(github.com/snapcore/snapd/i18n)golang(github.com/snapcore/snapd/image)golang(github.com/snapcore/snapd/interfaces)golang(github.com/snapcore/snapd/interfaces/apparmor)golang(github.com/snapcore/snapd/interfaces/backends)golang(github.com/snapcore/snapd/interfaces/builtin)golang(github.com/snapcore/snapd/interfaces/dbus)golang(github.com/snapcore/snapd/interfaces/hotplug)golang(github.com/snapcore/snapd/interfaces/ifacetest)golang(github.com/snapcore/snapd/interfaces/kmod)golang(github.com/snapcore/snapd/interfaces/mount)golang(github.com/snapcore/snapd/interfaces/policy)golang(github.com/snapcore/snapd/interfaces/seccomp)golang(github.com/snapcore/snapd/interfaces/systemd)golang(github.com/snapcore/snapd/interfaces/udev)golang(github.com/snapcore/snapd/interfaces/utils)golang(github.com/snapcore/snapd/jsonutil)golang(github.com/snapcore/snapd/jsonutil/safejson)golang(github.com/snapcore/snapd/logger)golang(github.com/snapcore/snapd/metautil)golang(github.com/snapcore/snapd/netutil)golang(github.com/snapcore/snapd/osutil)golang(github.com/snapcore/snapd/osutil/squashfs)golang(github.com/snapcore/snapd/osutil/strace)golang(github.com/snapcore/snapd/osutil/sys)golang(github.com/snapcore/snapd/osutil/udev/crawler)golang(github.com/snapcore/snapd/osutil/udev/netlink)golang(github.com/snapcore/snapd/overlord)golang(github.com/snapcore/snapd/overlord/assertstate)golang(github.com/snapcore/snapd/overlord/assertstate/assertstatetest)golang(github.com/snapcore/snapd/overlord/auth)golang(github.com/snapcore/snapd/overlord/cmdstate)golang(github.com/snapcore/snapd/overlord/configstate)golang(github.com/snapcore/snapd/overlord/configstate/config)golang(github.com/snapcore/snapd/overlord/configstate/configcore)golang(github.com/snapcore/snapd/overlord/configstate/proxyconf)golang(github.com/snapcore/snapd/overlord/configstate/settings)golang(github.com/snapcore/snapd/overlord/devicestate)golang(github.com/snapcore/snapd/overlord/devicestate/devicestatetest)golang(github.com/snapcore/snapd/overlord/devicestate/internal)golang(github.com/snapcore/snapd/overlord/healthstate)golang(github.com/snapcore/snapd/overlord/hookstate)golang(github.com/snapcore/snapd/overlord/hookstate/ctlcmd)golang(github.com/snapcore/snapd/overlord/hookstate/hooktest)golang(github.com/snapcore/snapd/overlord/ifacestate)golang(github.com/snapcore/snapd/overlord/ifacestate/ifacerepo)golang(github.com/snapcore/snapd/overlord/ifacestate/udevmonitor)golang(github.com/snapcore/snapd/overlord/patch)golang(github.com/snapcore/snapd/overlord/servicestate)golang(github.com/snapcore/snapd/overlord/snapshotstate)golang(github.com/snapcore/snapd/overlord/snapshotstate/backend)golang(github.com/snapcore/snapd/overlord/snapstate)golang(github.com/snapcore/snapd/overlord/snapstate/backend)golang(github.com/snapcore/snapd/overlord/snapstate/snapstatetest)golang(github.com/snapcore/snapd/overlord/standby)golang(github.com/snapcore/snapd/overlord/state)golang(github.com/snapcore/snapd/overlord/storecontext)golang(github.com/snapcore/snapd/polkit)golang(github.com/snapcore/snapd/progress)golang(github.com/snapcore/snapd/progress/progresstest)golang(github.com/snapcore/snapd/release)golang(github.com/snapcore/snapd/sandbox/cgroup)golang(github.com/snapcore/snapd/sandbox/seccomp)golang(github.com/snapcore/snapd/sanity)golang(github.com/snapcore/snapd/seed)golang(github.com/snapcore/snapd/seed/seedtest)golang(github.com/snapcore/snapd/selinux)golang(github.com/snapcore/snapd/snap)golang(github.com/snapcore/snapd/snap/channel)golang(github.com/snapcore/snapd/snap/naming)golang(github.com/snapcore/snapd/snap/pack)golang(github.com/snapcore/snapd/snap/snapdir)golang(github.com/snapcore/snapd/snap/snapenv)golang(github.com/snapcore/snapd/snap/snaptest)golang(github.com/snapcore/snapd/snap/squashfs)golang(github.com/snapcore/snapd/spdx)golang(github.com/snapcore/snapd/store)golang(github.com/snapcore/snapd/store/storetest)golang(github.com/snapcore/snapd/strutil)golang(github.com/snapcore/snapd/strutil/chrorder)golang(github.com/snapcore/snapd/strutil/quantity)golang(github.com/snapcore/snapd/strutil/shlex)golang(github.com/snapcore/snapd/systemd)golang(github.com/snapcore/snapd/tests/lib/fakestore/refresh)golang(github.com/snapcore/snapd/tests/lib/fakestore/store)golang(github.com/snapcore/snapd/testutil)golang(github.com/snapcore/snapd/timeout)golang(github.com/snapcore/snapd/timeutil)golang(github.com/snapcore/snapd/timings)golang(github.com/snapcore/snapd/usersession/agent)golang(github.com/snapcore/snapd/usersession/autostart)golang(github.com/snapcore/snapd/usersession/userd)golang(github.com/snapcore/snapd/usersession/userd/ui)golang(github.com/snapcore/snapd/wrappers)golang(github.com/snapcore/snapd/x11)golang(github.com/snapcore/snapd/xdgopenproxy)snapd-devel    golang(github.com/boltdb/bolt)golang(github.com/coreos/go-systemd/activation)golang(github.com/godbus/dbus)golang(github.com/godbus/dbus/introspect)golang(github.com/gorilla/mux)golang(github.com/jessevdk/go-flags)golang(github.com/juju/ratelimit)golang(github.com/kr/pretty)golang(github.com/kr/text)golang(github.com/mvo5/goconfigparser)golang(github.com/seccomp/libseccomp-golang)golang(github.com/snapcore/go-gettext)golang(golang.org/x/crypto/openpgp/armor)golang(golang.org/x/crypto/openpgp/packet)golang(golang.org/x/crypto/sha3)golang(golang.org/x/crypto/ssh/terminal)golang(gopkg.in/check.v1)golang(gopkg.in/macaroon.v1)golang(gopkg.in/mgo.v2/bson)golang(gopkg.in/retry.v1)golang(gopkg.in/tomb.v2)golang(gopkg.in/yaml.v2)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.2.1]@]*]µ]{@])]4@]?]nU]i]:@](v@] ]@\\\]@\t@\!\-@\@\C@\|\|\w@\w@\v{\k\j@\Z@\Z@\V\P@@\?\@\@[[H[H[@[v[@[^[ā@[R@[R@[["@[D[z@[[ @[P}@[M@[I[?Y[,[+@[oZ@ZZZZԐ@ZJ@ZZZZZx@ZZ=Zw@Z1@ZZ Z}@ZyZiZ7Z6\@Maciek Borzecki - 2.42.2-1Michael Vogt Maciek Borzecki - 2.42.1-1Michael Vogt Maciek Borzecki - 2.42-2Maciek Borzecki - 2.42-1Michael Vogt Neal Gompa - 2.41-1Michael Vogt Fedora Release Engineering - 2.39.2-2Michael Vogt Michael Vogt Neal Gompa - 2.39.2-1Maciej Borzecki - 2.39.1-2Michael Vogt Neal Gompa - 2.39.1-1Michael Vogt Neal Gompa - 2.39-1Michael Vogt Robert-André Mauchin - 2.38-3Neal Gompa - 2.38-2Neal Gompa - 2.38-1Michael Vogt Neal Gompa - 2.37.4-2Zygmunt Bazyli Krynicki - 2.37.4-1Michael Vogt Zygmunt Bazyli Krynicki - 2.37.3-1Michael Vogt Neal Gompa - 2.37.2-1Michael Vogt Fedora Release Engineering - 2.36.3-2Michael Vogt Michael Vogt Neal Gompa - 2.36.3-1Michael Vogt Michael Vogt Neal Gompa - 2.36-4Neal Gompa - 2.36-3Neal Gompa - 2.36-2Michael Vogt Neal Gompa - 2.36-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.35-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Fedora Release Engineering - 2.33.1-2Michael Vogt Neal Gompa - 2.33.1-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.32.4-1Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Michael Vogt Neal Gompa - 2.31.1-2Neal Gompa - 2.31.1-1Michael Vogt Fedora Release Engineering - 2.30-2Michael Vogt Neal Gompa - 2.30-1Michael Vogt Neal Gompa - 2.29.4-3- Release 2.42.2 to Fedora (RH#1774370)- New upstream release 2.42.2 - interfaces/lxd-support: Fix on core18 - tests/main/system-usernames: Amazon Linux 2 comes with libseccomp 2.4.1 now - snap-seccomp: add missing clock_getres_time64 - cmd/snap-seccomp/syscalls: update the list of known syscalls - sandbox/seccomp: accept build ID generated by Go toolchain - interfaces: allow access to ovs bridge sockets- Release 2.42.1 to Fedora (RH#1767043)- New upstream release 2.42.1 - interfaces: de-duplicate emitted update-ns profiles - packaging: tweak handling of usr.lib.snapd.snap-confine - interfaces: allow introspecting network-manager on core - tests/main/interfaces-contacts-service: disable on openSUSE Tumbleweed - tests/lib/lxd-snapfuse: restore mount changes introduced by LXD - snap: fix default-provider in seed validation - tests: update system-usernames test now that opensuse-15.1 works - overlord: set fake sertial in TestRemodelSwitchToDifferentKernel - gadget: rename "boot{select,img}" -> system-boot-{select,image} - tests: listing test, make accepted snapd/core versions consistent- Drop valgrind BR on ppc64le (RH#1766519) - Redirect stderr in dynamic executable check- Release snapd 2.42 to Fedora - Drop libtool patch - Drop cgroupv2 patch, changes are available in the release- New upstream release 2.42 - tests: disable {contacts,calendar}-service tests on debian-sid - tests/main/snap-run: disable strace test cases on Arch - cmd/system-shutdown: include correct prototype for die - snap/naming: add test for hook name connect-plug-i2c - cmd/snap-confine: allow digits in hook names - gadget: do not fail the update when old gadget snap is missing bare content - tests: disable {contacts,calendar}-service tests on Arch Linux - tests: move "centos-7" to unstable systems - interfaces/docker-support,kubernetes-support: misc updates for strict k8s - packaging: remove obsolete usr.lib.snapd.snap-confine in postinst - tests: add test that ensures our snapfuse binary actually works - packaging: use snapfuse_ll to speed up snapfuse performance - usersession/userd: make sure to export DBus interfaces before requesting a name - data/selinux: allow snapd to issue sigkill to journalctl - store: download propagates options to delta download - wrappers: allow snaps to install icon theme icons - debug: state-inspect debugging utility - sandbox/cgroup: introduce cgroup wrappers package - snap-confine: fix return value checks for udev functions - cmd/model: output tweaks, add'l tests - wrappers/services: add ServicesEnableState + unit tests - tests: fix newline and wrong test name pointed out in previous PRs - tests: extend mount-ns test to handle mimics - run-checks, tests/main/go: allow gofmt checks to be skipped on 19.10 - tests/main/interfaces-{calendar,contacts}-service: disable on 19.10 - tests: part3 making tests work on ubuntu-core-18 - tests: fix interfaces-timeserver-control on 19.10 - overlord/snapstate: config revision code cleanup and extra tests - devicestate: allow remodel to different kernels - overlord,daemon: adjust startup timeout via EXTEND_TIMEOUT_USEC using an estimate - tests/main/many: increase kill-timeout to 5m - interfaces/kubernetes-support: allow systemd-run to ptrace read unconfined - snapstate: auto transition on experimental.snapd-snap=true - tests: retry checking until the written file on desktop-portal- filechooser - tests: unit test for a refresh failing on configure hook - tests: remove mount_id and parent_id from mount-ns test data - tests: move classic-ubuntu-core-transition* to nightly - tests/mountinfo-tool: proper formatting of opt_fields - overlord/configstate: special-case "null" in transaction Changes() - snap-confine: fallback gracefully on a cgroup v2 only system - tests: debian sid now ships new seccomp, adjust tests - tests: explicitly restore after using LXD - snapstate: make progress reporting less granular - bootloader: little kernel support - fixme: rename ubuntu*architectures to dpkg*architectures - tests: run dbus-launch inside a systemd unit - channel: introduce Resolve and ResolveLocked - tests: run failing tests on ubuntu eoan due to is now set as unstable - systemd: detach rather than unmount .mount units - cmd/snap-confine: add unit tests for sc_invocation, cleanup memory leaks in tests - boot,dirs,image: introduce boot.MakeBootable, use it in image instead of ad hoc code - cmd/snap-update-ns: clarify sharing comment - tests/overlord/snapstate: refactor for cleaner test failures - cmd/snap-update-ns: don't propagate detaching changes - interfaces: allow reading mutter Xauthority file - cmd/snap-confine: fix /snap duplication in legacy mode - tests: fix mountinfo-tool filtering when used with rewriting - seed,image,o/devicestate: extract seed loading to seed/seed16.go - many: pass the rootdir and options to bootloader.Find - tests: part5 making tests work on ubuntu-core-18 - cmd/snap-confine: keep track of snap instance name and the snap name - cmd: unify die() across C programs - tests: add functions to make an abstraction for the snaps - packaging/fedora, tests/lib/prepare-restore: helper tool for packing sources for RPM - cmd/snap: improve help and error msg for snapshot commands - hookstate/ctlcmd: fix snapctl set help message - cmd/snap: don't append / to snap name just because a dir exists - tests: support fastly-global.cdn.snapcraft.io url on proxy-no-core test - tests: add --quiet switch to retry-tool - tests: add unstable stage for travis execution - tests: disable interfaces-timeserver-control on 19.10 - tests: don't guess in is_classic_confinement_supported - boot, etc: simplify BootParticipant (etc) usage - tests: verify retry-tool not retrying missing commands - tests: rewrite "retry" command as retry-tool - tests: move debug section after restore - cmd/libsnap-confine-private, cmd/s-c: use constants for snap/instance name lengths - tests: measure behavior of the device cgroup - boot, bootloader, o/devicestate: boot env manip goes in boot - tests: enabling ubuntu 19.10-64 on spread.yaml - tests: fix ephemeral mount table in left over by prepare - tests: add version-tool for comparing versions - cmd/libsnap: make feature flag enum 1< 2.4 and golang- seccomp > 0.9.0 - overlord/devicestate, tests: use gadget.Update() proper, spread test - overlord/configstate/configcore: allow setting start_x=1 to enable CSI camera on RPi - interfaces: remove BeforePrepareSlot from commonInterface - many: support system-usernames for 'snap_daemon' user - overlord/devicestate,o/snapstate: queue service commands before mark-seeded and other final tasks - interfaces/mount: discard mount ns on backend Remove - packaging/fedora: build on RHEL8 - overlord/devicestate: support seeding a classic system with the snapd snap and no core - interfaces: fix test failure in gpio_control_test - interfaces, policy: remove sanitize helpers and use minimal policy check - packaging: use %systemd_user_* macros to enable session agent socket according to presets - snapstate, store: handle 429s on catalog refresh a little bit better - tests: part4 making tests work on ubuntu-core-18 - many: drop snap.ReadGadgetInfo wrapper - xdgopenproxy: update test API to match upstream - tests: show why sbuild failed - data/selinux: allow mandb_t to search /var/lib/snapd - tests: be less verbose when checking service status - tests: set sbuild test as manual - overlord: DeviceCtx must find the remodel context for a remodel change - tests: use snap info --verbose to check for base - sanity: unmount squashfs with --lazy - overlord/snapstate: keep current track if only risk is specified - interfaces/firewall-control: support nft routing expressions and device groups - gadget: support for writing symlinks - tests: mountinfo-tool fail if there are no matches - tests: sync journal log before start the test - cmd/snap, data/completion: improve completion for 'snap debug' - httputil: retry for http2 PROTOCOL_ERROR - Errata commit: pulseaudio still auto-connects on classic - interfaces/misc: updates for k8s 1.15 (and greengrass test) - tests: set GOTRACEBACK=1 when running tests - cmd/libsnap: don't leak memory in sc_die_on_error - tests: improve how the system is restored when the upgrade- from-2.15 test fails - interfaces/bluetooth-control: add udev rules for BT_chrdev devices - interfaces: add audio-playback/audio-record and make pulseaudio manually connect - tests: split the sbuild test in 2 depending on the type of build - interfaces: add an interface granting access to AppStream metadata - gadget: ensure filesystem labels are unique - usersession/agent: use background context when stopping the agent - HACKING.md: update spread section, other updates - data/selinux: allow snap-confine to read entries on nsfs - tests: respect SPREAD_DEBUG_EACH on the main suite - packaging/debian-sid: set GOCACHE to a known writable location - interfaces: add gpio-control interface - cmd/snap: use showDone helper with 'snap switch' - gadget: effective structure role fallback, extra tests - many: fix unit tests getting stuck - tests: remove installed snap on restore - daemon: do not modify test data in user suite - data/selinux: allow read on sysfs - packaging/debian: don't md5sum absent files - tests: remove test-snapd-curl - tests: remove test-snapd-snapctl-core18 in restore - tests: remove installed snap in the restore section - tests: remove installed test snap - tests: correctly escape mount unit path - cmd/Makefile.am: support building with the go snap - tests: work around classic snap affecting the host - tests: fix typo "current" - overlord/assertstate: add Batch.Precheck to check for the full validity of the batch before Commit - tests: restore cpuset clone_children clobbered by lxd - usersession: move userd package to usersession/userd - tests: reformat and fix markdown in snapd-state.md - gadget: select the right updater for given structure - tests: show stderr only if it exists - sessionagent: add a REST interface with socket activation - tests: remove locally installed core in more tests - tests: remove local revision of core - packaging/debian-sid: use correct apparmor Depends for Debian - packaging/debian-sid: merge debian upload changes back into master - cmd/snap-repair: make sure the goroutine doesn't stick around on timeout - packaging/fedora: github.com/cheggaaa/pb is no longer used - configstate/config: fix crash in purgeNulls - boot, o/snapst, o/devicest: limit knowledge of boot vars to boot - client,cmd/snap: stop depending on status/status-code in the JSON responses in client - tests: unmount leftover /run/netns - tests: switch mount-ns test to manual - overlord,daemon,cmd/snapd: move expensive startup to dedicated StartUp methods - osutil: add EnsureTreeState helper - tests: measure properties of various mount namespaces - tests: part2 making tests work on ubuntu-core-18 - interfaces/policy: minimal policy check for replacing sanitizeReservedFor helpers (1/2) - interfaces: add an interface that grants access to the PackageKit service - overlord/devicestate: update gadget update handlers and mocks - tests: add mountinfo-tool --ref-x1000 - tests: remove lxd / lxcfs if pre-installed - tests: removing support for ubuntu cosmic on spread test suite - tests: don't leak /run/netns mount - image: clean up the validateSuite - bootloader: remove "Dir()" from Bootloader interface - many: retry to reboot if snapd gets restarted before expected reboot - overlord: implement re-registration remodeling - cmd: revert PR#6933 (tweak of GOMAXPROCS) - cmd/snap: add snap unset command - many: add Client-User-Agent to "SnapAction" install API call - tests: first part making tests run on ubuntu-core-18 - hookstate/ctlcmd: support hidden commands in snapctl - many: replace snapd snap name checks with type checks (3/4) - overlord: mostly stop needing Kernel/CoreInfo, make GadgetInfo consider a DeviceContext - snapctl: handle unsetting of config options with "!" - tests: move core migration snaps to tests/lib/snaps dir - cmd/snap: handle unsetting of config options with "!" - cmd/snap, etc: add health to 'snap list' and 'snap info' - gadget: use struct field names when intializing data in mounted updater unit tests - cmd/snap-confine: bring /lib/firmware from the host - snap: set snapd snap type (1/4) - snap: add checks in validate-seed for missing base/default- provider - daemon: replace shutdownServer with net/http's native shutdown support - interfaces/builtin: add exec "/bin/runc" to docker-support - gadget: mounted filesystem updater - overlord/patch: simplify conditions for re-applying sublevel patches for level 6 - seccomp/compiler: adjust test case names and comment for later changes - tests: fix error doing snap pack running failover test - tests: don't preserve size= when rewriting mount tables - tests: allow reordering of rewrite operations - gadget: main update routine - overlord/config: normalize nulls to support config unsetting semantics - snap-userd-autostart: don't list as a startup application on the GUI - tests: renumber snap revisions as seen via writable - tests: change allocation for mount options - tests: re-enable ns-re-associate test - tests: mountinfo-tool allow many --refs - overlord/devicestate: implement reregRemodelContext with the essential re-registration logic - tests: replace various numeric mount options - gadget: filesystem image writer - tests: add more unit tests for mountinfo-tool - tests: introduce mountinfo-tool --ref feature - tests: refactor mountinfo-tool rewrite state - tests: allow renumbering mount namespace identifiers - snap: refactor and explain layout blacklisting - tests: renumber snap revisions as seen via hostfs - daemon, interfaces, travis: workaround build ID with Go 1.9, use 1.9 for travis tests - cmd/libsnap: add sc_error_init_{simple,api_misuse} - gadget: make raw updater handle shifted structures - tests/lib/nested: create WORK_DIR before accessing it - cmd/libsnap: rename SC_LIBSNAP_ERROR to SC_LIBSNAP_DOMAIN - cmd,tests: forcibly discard mount namespace when bases change - many: introduce healthstate, run check-health post-(install/refresh/try/revert) - interfaces/optical-drive: add scsi-generic type 4 and 5 support - cmd/snap-confine: exit from helper when parent dies- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild- New upstream release 2.40 - overlord/patch: simplify conditions for re-applying sublevel patches for level 6 - cmd,tests: forcibly discard mount namespace when bases change - cmd/snap-confine: handle device cgroup before pivot - cmd/snap-apparmor-service: quit if there are no profiles - cmd/snap, image: add --target-directory and --basename to 'snap download' - interfaces: add jack1 implicit classic interface - interfaces: miscellaneous policy updates - daemon: classic confinement is not supported on core - interfaces: bluetooth-control: add mtk BT device node - cmd/snap-seccomp: initial support for negative arguments with uid/gid caching - snap-confine: move seccomp load after permanent privilege drop - tests: new profiler snap used to track cpu and memory for snapd and snap commands - debian: make maintainer scripts do nothing on powerpc - gadget: mounted filesystem writer - cmd/snap: use padded checkers for snapshot output - bootloader: switch to bootloader_test style testing - gadget: add a wrapper for generating partitioned images with sfdisk - tests/main/snap-seccomp-syscalls: add description - tests: continue executing on errors either updating the repo db or installing dependencies - cmd/snap-seccomp/syscalls: add io_uring syscalls - systemd: add InstanceMode enumeration to control which systemd instance to control - netutil: extract socket activation helpers from daemon package. - interfaces: spi: update regex rules to accept spi nodes like spidev12345.0 - gadget: fallback device lookup - many: add strutil.ElliptLeft, use it for shortening cohorts - wrappers: allow sockets under $XDG_RUNTIME_DIR - gadget: add wrapper for creating and populating filesystems - gadget: add writer for offset-write - gadget: support relative symlinks in device lookup - snap, snapstate: additional validation of base field - many: fix some races and missing locking, make sure UDevMonitor is stopped - boot: move ExtractKernelAssets - daemon, snap: screenshots _only_ shows the deprecation notice, from 2.39 - osutil: add a workaround for overlayfs apparmor as it is used on Manjaro - snap: introduce GetType() function for snap.Info - tests: update systems to be used for during sru validation - daemon: increase `shutdownTimeout` to 25s to deal with slow HW - interfaces/network-manager: move deny ptrace to the connected slot - interfaces: allow locking of pppd files - cmd/snap-exec: fix snap completion for classic snaps with non /usr/lib/snapd libexecdir - daemon: expose pprof endpoints - travis: disable snap pack on OSX - client, cmd/snap: expose the new cohort options for snap ops - overlord/snapstate: tweak switch summaries - tests: reuse the image created initially for nested tests execution - tests/lib/nested: tweak assert disk prepare step - daemon, overlord/snapstate: support leave-cohort - tests/main/appstream-id: collect debug info - store,daemon: add client-user-agent support to store.SnapInfo - tests: add check for invalid PR titles in the static checks - tests: add snap-tool for easier access to internal tools - daemon: unexport file{Response,Stream} - devicestate: make TestUpdateGadgetOnClassicErrorsOut less racy - tests: fix test desktop-portal-filechooser - tests: sort commands from DumpCommands in the dumpDbHook - cmd/snap: add unit test for "advise-snap --dump-db". - bootloader: remove extra mock bootloader implementation - daemon: tweak for "add api endpoint for download" PR - packaging: fix reproducible build error - tests: synchronize journal logs before check logs - tests: fix snap service watchdog test - tests: use more readable test directory names - tests/regression/lp-1805485: update test description - overlord: make changes conflict with remodel - tests: make sure the snapshot unit test uses a snapshot time relative to Now() - tests: revert "tests: stop catalog-update/apt-hooks test for now" - tests: mountinfo-tool --one prints matches on failure - data/selinux: fix policy for snaps with bases and classic snaps - debian: fix building on eoan by tweaking golang build-deps - packaging/debian-sid: update required golang version to 1.10 - httputil: handle "no such host" error explicitly and do not retry it - overlord/snapstate, & fallout: give Install a *RevisionOptions - cmd/snap: don't run install on 'snap --help install' - gadget: raw/bare structure writer and updater - daemon, client, cmd/snap: show cohort key in snap info --verbose - overlord/snapstate: add update-gadget task when needed, block other changes - image: turn a missing default content provider into an error - overlord/devicestate: update-gadget-assets task handler with stubbed gadget callbacks - interface: builtin: avahi-observe/control: update label for implicit slot - tests/lib/nested: fix multi argument copy_remote - tests/lib/nested: have mkfs.ext4 use a rootdir instead of mounting an image - packaging: fix permissions powerpc docs dir - overlord: mock store to avoid net requests - debian: rework how we run autopkgtests - interface: builtin: avahi-observe/control: allow slots implementation also by app snap on classic system - interfaces: builtin: utils: add helper function to identify system slots - interfaces: add missing adjtimex to time-control - overlord/snapstate, snap: support base = "none" - daemon, overlord/snapstate: give RevisionOptions a CohortKey - data/selinux: permit init_t to remount snappy_snap_t - cmd/snap: test for a friendly error on 'okay' without 'warnings' - cmd/snap: support snap debug timings --startup=.. and measure loadState time - advise-snap: add --dump-db which dumps the command database - interfaces/docker-support: support overlayfs on ubuntu core - cmd/okay: Remove err message when warning file not exist - devicestate: disallow removal of snaps used in booting early - packaging: fix build-depends on powerpc - tests: run spread tests on opensuse leap 15.1 - strutil/shlex: fix ineffassign - cmd/snapd: ensure GOMAXPROCS is at least 2 - cmd/snap-update-ns: detach unused mount points - gadget: record gadget root directory used during positioning - tests: force removal to prevent restore fails when directory doesn't exist on lp-1801955 test - overlord: implement store switch remodeling - tests: stop using ! for naive negation in shell scripts - snap,store,daemon,client: send new "Snap-Client-User-Agent" header in Search() - osutil: now that we require golang-1.10, use user.LookupGroup() - spread.yaml,tests: change MATCH and REBOOT to cmds - packaging/fedora: force external linker to ensure static linking and -extldflags use - timings: tweak the conditional for ensure timings - timings: always store ensure timings as long as they have an associated change - cmd/snap: tweak the output of snap debug timings --ensure=... - overlord/devicestate: introduce remodel kinds and contextsregistrationContext: - snaptest: add helper for mocking snap with contents - snapstate: allow removal of non-model kernels - tests: change strace parameters on snap-run test to avoid the test gets stuck - gadget: keep track of the index where structure content was defined - cmd/snap-update-ns: rename leftover ctx to upCtx - tests: add "not" command - spread.yaml: use "snap connections" in debug - tests: fix how strings are matched on auto-refresh-retry test - spread-shellcheck: add support for variants and environment - gadget: helper for shifting structure start position - cmd/snap-update-ns: add several TODO comments - cmd/snap-update-ns: rename ctx to upCtx - spread.yaml: make HOST: usage shellcheck-clean - overlord/snapstate, daemon: snapstate.Switch now takes a RevisionOption - tests: add mountinfo-tool - many: make snapstate.Update take *RevisionOptions instead of chan, rev - tests/unit/spread-shellcheck: temporary workaround for SC2251 - daemon: refactor user ops to api_users - cmd/snap, tests: refactor info to unify handling of 'direct' snaps - cmd/snap-confine: combine sc_make_slave_mount_ns into caller - cmd/snap-update-ns: use "none" for propagation changes - cmd/snap-confine: don't pass MS_SLAVE along with MS_BIND - cmd/snap, api, snapstate: implement "snap remove --purge" - tests: new hotplug test executed on ubuntu core - tests: running tests on fedora 30 - gadget: offset-write: fix validation, calculate absolute position - data/selinux: allow snap-confine to do search on snappy_var_t directories - daemon, o/snapstate, store: support for installing from cohorts - cmd/snap-confine: do not mount over non files/directories - tests: validates snapd from ppa - overlord/configstate: don't panic on invalid configuration - gadget: improve device lookup, add helper for mount point lookup - cmd/snap-update-ns: add tests for executeMountProfileUpdate - overlord/hookstate: don't run handler unless hooksup.Always - cmd/snap-update-ns: allow changing mount propagation - systemd: workaround systemctl show quirks on older systemd versions - cmd/snap: allow option descriptions to start with the command - many: introduce a gadget helper for locating device matching given structure - cmd/snap-update-ns: fix golint complaints about variable names - cmd/snap: unit tests for debug timings - testutil: support sharing-related mount flags - packaging/fedora: Merge changes from Fedora Dist-Git and drop EOL Fedora releases - cmd/snap: support for --ensure argument for snap debug timings - cmd,sandbox: tweak seccomp version info handling - gadget: record sector size in positioned volume - tests: make create-user test support managed devices - packaging: build empty package on powerpc - overlord/snapstate: perform hard refresh check - gadget: add volume level update checks - cmd/snap: mangle descriptions that have indent > terminal width - cmd/snap-update-ns: rename applyFstab to executeMountProfileUpdate - cmd/snap-confine: unshare per-user mount ns once - tests: retry govendor sync - tests: avoid removing snaps which are cached to speed up the prepare on boards - tests: fix how the base snap are deleted when there are multiple to deleted on reset - cmd/snap-update-ns: merge apply functions - many: introduce assertstest.SigningAccounts and AddMany test helpers - interfaces: special-case "snapd" in sanitizeSlotReservedForOS* helpers - cmd/snap-update-ns: make apply{User,System}Fstab identical - gadget: introduce checkers for sanitizing structure updates - cmd/snap-update-ns: move apply{Profile,{User,System}Fstab} to same file - overlord/devicestate: introduce registrationContext - cmd/snap-update-ns: add no-op load/save current user profile logic - devicestate: set "new-model" on the remodel change - devicestate: use deviceCtx in checkGadgetOrKernel - many: use a fake assertion model in the device contexts for tests - gadget: fix handling of positioning constrains for structures of MBR role - snap-confine: improve error when running on a not /home homedir - devicestate: make Remodel() return a state.Change - many: make which store to use contextualThis reworks snapstate.Store instead of relying solely on DeviceContext, because: - tests: enable tests on centos 7 again - interfaces: add login-session-control interface - tests: extra debug for snapshot-basic test - overlord,overlord/devicestate: do without GadgetInfo/KernelInfo in devicestate - gadget: more validation checks for legacy MBR structure type & role - osutil: fix TestReadBuildGo test in sbuild - data: update XDG_DATA_DIRS via the systemd environment.d mechanism too - many: do without device state/assertions accessors based on state only outside of devicestate/tests - interfaces/dbus: fix unit tests when default snap mount dir is not /snap - tests: add security-seccomp to verify seccomp with arg filtering - snapshotstate: disable automatic snapshots on core for now - snapstate: auto-install snapd when needed - overlord/ifacestate: update static attributes of "content" interface - interfaces: add support for the snapd snap in the dbus backend* - overlord/snapstate: tweak autorefresh logic if network is not available - snapcraft: also include ld.so.conf from libc in the snapcraft.yml - snapcraft.yaml: fix links ld-linux-x86-64.so.2/ld64.so.2 - overlord: pass a DeviceContext to the checkSnap implementations - daemon: add RootOnly flag to commands - many: make access to the device model assertion etc contextual via a DeviceCtx hook/DeviceContext interface - snapcraft.yaml: include libc6 in snapd - tests: reduce snapcraft leftovers from PROJECT_PATH, temp disable centos - overlord: make the store context composably backed by separate backends for device asserts/info etc. - snapstate: revert "overlord/snapstate: remove PlugsOnly" - osutil,cmdutil: move CommandFromCore and make it use the snapd snap (if available) - travis: bump Go version to 1.10.x - cmd/snap-update-ns: remove instanceName argument from applyProfile - gadget: embed volume in positioned volume, rename fields - osutil: use go build-id when no gnu build-id is available - snap-seccomp: add 4th field to version-info for golang-seccomp features - cmd/snap-update-ns: merge computeAndSaveSystemChanges into applySystemFstab - cmd/snap, client, daemon, store: create-cohort - tests: give more time until nc returns on appstream test - tests: run spread tests on ubuntu 19.04 - gadget: layout, smaller fixes - overlord: update static attrs when reloading connections - daemon: verify snap instructions for multi-snap requests - overlord/corecfg: make expiration of automatic snapshots configurable (4/4) - cmd/snap-update-ns: pass MountProfileUpdate to apply{System,User}Fstab - snap: fix interface bindings on implicit hooks - tests: improve how snaps are cached - cmd/snap-update-ns: formatting tweaks - data/selinux: policy tweaks - cmd/snap-update-ns: move locking to the common layer - overlord: use private YAML inside several tests - cmd/snap, store, image: support for cohorts in "snap download" - overlord/snapstate: add timings to critical task handlers and the backend - cmd: add `snap debug validate-seed ` cmd - state: add possible error return to TaskSet.Edge() - snap-seccomp: use username regex as defined in osutil/user.go - osutil: make IsValidUsername public and fix regex - store: serialize the acquisition of device sessions - interfaces/builtin/desktop: fonconfig v6/v7 cache handling on Fedora - many: move Device/SetDevice to devicestate, start of making them pluggable in storecontext - overlord/snapstate: remove PlugsOnly - interfaces/apparmor: allow running /usr/bin/od - spread: add qemu:fedora-29-64 - tests: make test parallel-install-interfaces work for boards with pre-installed snaps - interfaces/builtin/intel_mei: fix /dev/mei* AppArmor pattern - spread.yaml: add qemu:centos-7-64 - overlord/devicestate: extra measurements related to populateStateFromSeed - cmd/snap-update-ns: move Assumption to {System,User}ProfileUpdate - cmd/libsnap: remove fringe error function - gadget: add validation of cross structure overlap and offset writes - cmd/snap-update-ns: refactor of profile application (3/N) - data/selinux: tweak the policy for runuser and s-c, interpret audit entries - tests: fix spaces issue in the base snaps names to remove during reset phase - tests: wait for man db cache is updated before after install snapd on Fedora - tests: extend timeout of sbuild test- New upstream release 2.39.3 - daemon: increase `shutdownTimeout` to 25s to deal with slow HW - spread: run tests against openSUSE 15.1 - data/selinux: fix policy for snaps with bases and classic snaps- Release 2.39.2 to Fedora (RH#1717448) - Drop patch included in this release- Fix SELinux policy to allow running hooks and services from snaps with bases and classic snaps - Bump SELinux policy version- New upstream release 2.39.2 - debian: rework how we run autopkgtests - interfaces/docker-support: add overlayfs accesses for ubuntu core - data/selinux: permit init_t to remount snappy_snap_t - strutil/shlex: fix ineffassign - packaging: fix build-depends on powerpc- Release 2.39.1 to Fedora (RH#1715505) - Backport SELinux policy fixes for systemd unit mount namespacing (RH#1708991)- New upstream release 2.39.1 - spread: enable Fedora 30 - cmd/snap-confine, data/selinux: cherry pick Fedora 30 fixes - tests/unit/spread-shellcheck: temporary workaround for SC2251 - packaging: build empty package on powerpc - interfaces: special-case "snapd" in sanitizeSlotReservedForOS* helper - cmd/snap: mangle descriptions that have indent > terminal width - cmd/snap-confine: unshare per-user mount ns once - tests: avoid adding spaces to the base snaps names - systemd: workaround systemctl show quirks on older systemd versions- Release 2.39 to Fedora (RH#1699087) - Enable basic SELinux integration - Fix changelog entry to fix build for EPEL 7 - Exclude bash and POSIX sh shebangs from mangling (LP:1824158) - Drop some old pre Fedora 28 logic- New upstream release 2.39 - overlord/ifacestate: update static attributes of "content" interface - data/selinux: tweak the policy for runuser and s-c, interpret audit entries - snapshotstate: disable automatic snapshots on core for now - overlord/corecfg: make expiration of automatic snapshots configurable - snapstate: auto-install snapd when needed - interfaces: add support for the snapd snap in the dbus backend - overlord/snapstate: tweak autorefresh logic if network is not available - interfaces/apparmor: allow running /usr/bin/od - osutil,cmdutil: move CommandFromCore and make it use the snapd snap (if available) - daemon: also verify snap instructions for multi-snap requests - data/selinux: allow snap-confine to mount on top of bin - data/selinux: auto transition /var/snap to snappy_var_t - cmd: add `snap debug validate-seed ` cmd - interfaces/builtin/desktop: fonconfig v6/v7 cache handling on Fedora - interfaces/builtin/intel_mei: fix /dev/mei* AppArmor pattern - tests: make snap-connections test work on boards with snaps pre- installed - tests: check for /snap/core16/current in core16-provided-by-core - tests: run livepatch test on 18.04 as well - devicestate: deal correctly with the "required" flag on Remodel - snapstate,state: add TaskSet.AddAllWithEdges() and use in doUpdate - snapstate: add new NoReRefresh flag and use in Remodel() - many: allow core as a fallback for core16 - snapcraft: build static fontconfig in the snapd snap - cmd/snap-confine: remove unused sc_open_snap_{update,discard}_ns - data/selinux: allow snapd to execute runuser under snappy_t - spread, tests: do not leave mislabeled files in restorecon test, attempt to catch similar files - interfaces: cleanup internal tool lookup in system-key - many: move auth.AuthContext to store.DeviceAndAuthContext, the implemention to a separate storecontext packageThis: - overlord/devicestate: measurements around ensure and related tasks - cmd: tweak internal tool lookup to accept more possible locations - overlord/snapstate,snapshotstate: create snapshot on snap removal - tests: run smoke tests on (almost) pristine systems - tests: system disable ssh for config defaults in gadget - cmd/debug: integrate new task timings with "snap debug timings" - tests/upgrade/basic, packaging/fedoar: restore SELinux context of /var/cache/fontconfig, patch pre-2.39 mount units - image: simplify prefer local logic and fixes - tests/main/selinux-lxd: make sure LXD from snaps works cleanly with enforcing SELinux - tests: deny ioctl - TIOCSTI with garbage in high bits - overlord: factor out mocking of device service and gadget w. prepare-device for registration tests - data/selinux, tests/main/selinux-clean: fine tune the policy, make sure that no denials are raised - cmd/libsnap,osutil: fix parsing of mountinfo - ubuntu: disable -buildmode=pie on armhf to fix memory issue - overlord/snapstate: inhibit refresh for up to a week - cmd/snap-confine: prevent cwd restore permission bypass - overlord/ifacestate: introduce HotplugKey type use short key in change summaries - many: make Remodel() download everything first before installing - tests: fixes discovered debugging refresh-app-awareness - overlord/snapstate: track time of postponed refreshes - snap-confine: set rootfs_dir in sc_invocation struct - tests: run create-user on core devices - boot: add flag file "meta/force-kernel-extraction" - tests: add regression test for systemctl race fix - overlord/snapshotstate: helpers for snapshot expirations - overlord,tests: perform soft refresh check in doInstall - tests: enable tests that write /etc/{hostname,timezone} on core18 - overlord/ifacestate: implement String() method of HotplugDeviceInfo for better logs/messages - cmd/snap-confine: move ubuntu-core fallback checks - testutil: fix MockCmd for shellcheck 0.5 - snap, gadget: move gadget read/validation into separate package, tweak naming - tests: split travis spread execution in 2 jobs for ubuntu and non ubuntu systems - testutil: make mocked command work with shellcheck from snaps - packaging/fedora, tests/upgrade/basic: patch existing mount units with SELinux context on upgrade - metautil, snap: extract yaml value normalization to a helper package - tests: use apt via eatmydata - dirs,overlord/snapstate: add Soft and Hard refresh checks - cmd/snap-confine: allow using tools from snapd snap - cmd,interfaces: replace local helpers with cmd.InternalToolPath - tweak: fix "make hack" on Fedora - snap: add validation of gadget.yaml - cmd/snap-update-ns: refactor of profile application - cmd/snap,client,daemon,store: layout and sanity tweaks for find/search options - tests: add workaround for missing cache reset on older snapd - interfaces: deal with the snapd snap correctly for apparmor 2.13 - release-tools: add debian-package-builder - tests: enable opensuse 15 and add force-resolution installing packages - timings: AddTag helper - testutil: run mocked commands through shellcheck - overlord/snapshotstate: support auto flag - client, daemon, store: search by common-id - tests: all the systems for google backend with 6 workers - interfaces: hotplug nested vm test, updated serial-port interface for hotplug. - sanity: use proper SELinux context when mounting squashfs - cmd/libsnap: neuter variables in cleanup functions - interfaces/adb-support: account for hubs on sysfs path - interfaces/seccomp: regenerate changed profiles only - snap: reject layouts to /lib/{firmware,modules} - cmd/snap-confine, packaging: support SELinux - selinux, systemd: support mount contexts for snap images - interfaces/builtin/opengl: allow access to Tegra X1 - cmd/snap: make 'snap warnings' output yamlish - tests: add check to detect a broken snap on reset - interfaces: add one-plus devices to adb-support - cmd: prevent umask from breaking snap-run chain - tests/lib/pkgdb: allow downgrade when installing packages in openSUSE - cmd/snap-confine: use fixed private tmp directory - snap: tweak parsing errors of gadget updates - overlord/ifacemgr: basic measurements - spread: refresh metadata on openSUSE - cmd/snap-confine: pass sc_invocation instead of numerous args around - snap/gadget: introduce volume update info - partition,bootloader: rename 'partition' package to 'bootloader' - interfaces/builtin: add dev/pts/ptmx access to docker_support - tests: restore sbuild test - strutil: make SplitUnit public, allow negative numbers - overlord/snapstate,: retry less for auto-stuff - interfaces/builtin: add add exec "/" to docker-support - cmd/snap: fix regression of snap saved command - cmd/libsnap: rename C enum for feature flag - cmd: typedef mountinfo structures - tests/main/remodel: clean up before reverting the state - cmd/snap-confine: umount scratch dir using UMOUNT_NOFOLLOW - timings: add new helpers, Measurer interface and DurationThreshold - cmd/snap-seccomp: version-info subcommand - errortracker: fix panic in Report if db cannot be opened - sandbox/seccomp: a helper package wrapping calls to snap-seccomp - many: add /v2/model API, `snap remodel` CLI and spread test - tests: enable opensuse tumbleweed back - overlord/snapstate, store: set a header when auto-refreshing - data/selinux, tests: refactor SELinux policy, add minimal tests - spread: restore SELinux context when we mess with system files - daemon/api: filter connections with hotplug-gone=true - daemon: support returning assertion information as JSON with the "json" query parameter - cmd/snap: hide 'interfaces' command, show deprecation notice - timings: base API for recording timings in state - cmd/snap-confine: drop unused dependency on libseccomp - interfaces/apparmor: factor out test boilerplate - daemon: extract assertions api endpoint implementation into api_asserts.go - spread.yaml: bump delta reference - cmd/snap-confine: track per-app and per-hook processes - cmd/snap-confine: make sc_args helpers const-correct - daemon: move a function that was between an other struct and its methods - overlord/snapstate: fix restoring of "old-current" revision config in undoLinkSnap - cmd/snap, client, daemon, ifacestate: show a leading attribute of a connection - cmd/snap-confine: call sc_should_use_normal_mode once - cmd/snap-confine: populate enter_non_classic_execution_environment - daemon: allow downloading snaps blobs via .../file - cmd/snap-confine: introduce sc_invocation - devicestate: add initial Remodel support - snap: remove obsolete license-* fields in the yaml - cmd/libsnap: add cgroup-pids-support module - overlord/snapstate/backend: make LinkSnap clean up more - snapstate: only keep 2 snaps on classic - ctlcmd/tests: tests tweaks (followup to #6322)- Rebuilt for fix in golang-github-seccomp-libseccomp-golang- Readd snapd-login-service Provides for gnome-software for F29 and older- Release 2.38 to Fedora (RH#1691296) - Switch to officially released main source tarball - Drop obsolete snapd-login-service Provides- New upstream release 2.38 - overlord/snapstate,: retry less for auto-stuff - cmd/snap: fix regression of snap saved command - interfaces/builtin: add dev/pts/ptmx access to docker_support - overlord/snapstate, store: set a header when auto-refreshing - interfaces/builtin: add add exec "/" to docker-support - cmd/snap, client, daemon, ifacestate: show a leading attribute of a connection - interface: avahi-observe: Fixing socket permissions on 4.15 kernels - tests: check that apt works before using it - apparmor: support AppArmor 2.13 - snapstate: restart into the snapd snap on classic - overlord/snapstate: during refresh, re-refresh on epoch bump - cmd, daemon: split out the common bits of mapLocal and mapRemote - cmd/snap-confine: chown private /tmp to root.root - cmd/snap-confine: drop uid from random /tmp name - overlord/hookstate: apply pending transaction changes onto temporary configuration for snapctl get - cmd/snap: `snap connections` command - interfaces/greengrass_support: update accesses for GGC 1.8 - cmd/snap, daemon: make the connectivity check use GET - interfaces/builtin,/udev: add spec support to disable udev + device cgroup and use it for greengrass - interfaces/intel-mei: small follow up tweaks - ifacestate/tests: fix/improve udev mon test - interfaces: add multipass-support interface - tests/main/high-user-handling: fix the test for Go 1.12 - interfaces: add new intel-mei interface - systemd: decrease the checker counter before unlocking otherwise we can get spurious panics - daemon/tests: fix race in the disconnect conflict test - cmd/snap-confine: allow moving tasks to pids cgroup - tests: enable opensuse tumbleweed on spread - cmd/snap: fix `snap services` completion - ifacestate/hotplug: integration with udev monitor - packaging: build snapctl as a static binary - packaging/opensuse: move most logic to snapd.mk - overlord: fix ensure before slowness on Retry - overlord/ifacestate: fix migration of connections on upgrade from ubuntu-core - daemon, client, cmd/snap: debug GETs ask aspects, not actions - tests/main/desktop-portal-*: fix handling of python dependencies - interfaces/wayland: allow wayland server snaps function on classic too - daemon, client, cmd/snap: snap debug base-declaration - tests: run tests on opensuse leap 15.0 instead of 42.3 - cmd/snap: fix error messages for snapshots commands if ID is not uint - interfaces/seccomp: increase filter precision - interfaces/network-manager: no peer label check for hostname1 - tests: add a tests for xdg-desktop-portal integration - tests: not checking 'tracking channel' after refresh core on nested execution - tests: remove snapweb from tests - snap, wrappers: support StartTimeout - wrappers: Add an X-SnapInstanceName field to desktop files - cmd/snap: produce better output for help on subcommands - tests/main/nfs-support: use archive mode for creating fstab backup - many: collect time each task runs and display it with `snap debug timings ` - tests: add attribution to helper script - daemon: make ucrednetGet not loop - squashfs: unset SOURCE_DATE_EPOCH in the TestBuildDate test - features,cmd/libsnap: add new feature "refresh-app-awareness" - overlord: fix random typos - interfaces/seccomp: generate global seccomp profile - daemon/api: fix error case for disconnect conflict - overlord/snapstate: add some randomness to the catalog refresh - tests: disable trusty-proposed for now - tests: fix upgrade-from-2.15 with kernel 4.15 - interfaces/apparmor: allow sending and receiving signals from ourselves - tests: split the test interfaces-many in 2 and remove snaps on restore - tests: use snap which takes 15 seconds to install on retryable- error test - packaging: avoid race in snapd.postinst - overlord/snapstate: discard mount namespace when undoing 1st link snap - cmd/snap-confine: allow writes to /var/lib/** - tests: stop catalog-update test for now - tests/main/auto-refresh-private: make sure to actually download with the expired macaroon - many: save media info when installing, show it when listing - userd: handle help urls which requires prepending XDG_DATA_DIRS - tests: fix NFS home mocking - tests: improve snaps-system-env test - tests: pre-cache core on core18 systems - interfaces/hotplug: renamed RequestedSlotSpec to ProposedSlot, removed Specification - debian: ensure leftover usr.lib.snapd.snap-confine is gone - image,cmd/snap,tests: introduce support for modern prepare-image --snap [=] - overlord/ifacestate: tweak logic for generating unique slot names - packaging: import debian salsa packaging work, add sbuild test and use in spead - overlord/ifacestate: hotplug-add-slot handler - image,cmd/snap: simplify --classic-arch to --arch, expose prepare-image - tests: run test snap as user in the smoke test - cmd/snap: tweak man output to have no doubled up .TP lines - cmd/snap, overlord/snapstate: silently ignore classic flag when a snap is strictly confined - snap-confine: remove special handling of /var/lib/jenkins - cmd/snap-confine: handle death of helper process - packaging: disable systemd environment generator on 18.04 - snap-confine: fix classic snaps for users with /var/lib/* homedirs - tests/prepare: prevent console-conf from running - image: bootstrapToRootDir => setupSeed - image,cmd/snap,tests: introduce prepare-image --classic - tests: update smoke/sandbox test for armhf - client, daemon: introduce helper for querying snapd API for the list of slot/plug connections - cmd/snap-confine: refactor and cleanup of seccomp loading - snapstate, snap: allow update/switch requests with risk only channel to DTRT - interfaces: add network-manager-observe interface - snap-confine: increase locking timeout to 30s - snap-confine: fix incorrect "sanity timeout 3s" message - snap-confine: provide proper error message on sc_sanity_timeout - snapd,state: improve error message on state reading failure - interfaces/apparmor: deny inet/inet6 in snap-update-ns profile - snap: fix reexec from the snapd snap for classic snaps - snap: fix hook autodiscovery for parallel installed snaps - overlord/snapstate: format the refresh time for the log - cmd/snap-confine: add special case for Jenkins - snapcraft.yaml: fix XBuildDeb PATH for go-1.10 - overlord/snapstate: validate instance names early - overlord/ifacestate: handler for hotplug-update-slot tasks - polkit: cast pid to uint32 to keep polkit happy for now - snap/naming: move various name validation helpers to separate package - tests: iterate getting journal logs to support delay on boards on daemon-notify test - cmd/snap: fix typo in cmd_wait.go - snap/channel: improve channel parsing - daemon, polkit: pid_t is signed - daemon: introduce /v2/connections snapd API endpoint - cmd/snap: small refactor of cmd_info's channel handling - overlord/snapstate: use an ad-hoc error when no results - cmd/snap: wrap "summary" better - tests: workaround missing go dependencies in debian-9 - daemon: try to tidy up the icon stuff a little - interfaces: add display-control interface - snapcraft.yaml: fix snap building in launchpad - tests: update fedora 29 workers to speed up the whole testing time - interfaces: add u2f-devices interface and allow reading udev +power_supply:* in hardware-observe - cmd/snap-update-ns: save errno from strtoul - tests: interfaces tests normalization - many: cleanup golang.org/x/net/context - tests: add spread test for system dbus interface - tests: remove -o pipefail - interfaces: add block-devices interface - spread: enable upgrade suite on fedora - tests/main/searching: video section got renamed to photo-and-video - interfaces/home: use dac_read_search instead of dac_override with 'read: all' - snap: really run the RunSuite - interfaces/camera: allow reading vendor/etc info from /run/udev/data/+usb:* - interfaces/dbus: be less strict about alternations for well-known names - interfaces/home: allow dac_override with 'read: all' - interfaces/pulseaudio: allow reading subdirectories of /etc/pulse - interfaces/system-observe: allow read on /proc/locks - run-checks: ensure we use go-1.10 if available - tests: get test-snapd-dbus-{provider,consumer} from the beta channel - interfaces/apparmor: mock presence of overlayfs root - spread: increase default kill-timeout to 30min - tests: simplify interfaces-contacts-service test - packaging/ubuntu: build with golang 1.10 - ifacestate/tests: extra test for hotplug-connect handler - packaging: make sure that /var/lib/snapd/lib/glvnd is accounted for - overlord/snapstate/backend: call fontconfig helpers from the new 'current' - kvm: load required kernel modules if necessary - cmd/snap: use a fake user for 'run' tests - tests: update systems for google sru backend - tests: fix install-snaps test by changing the snap info regex - interfaces: helpers for sorting plug/slot/connection refs - tests: moving core-snap-refresh-on-core test from main to nested suite - tests: fix daemon-notify test checking denials considering all the log lines - tests: skip lp-1802591 on "official" images - tests: fix listing tests to match "snap list --unicode=never" - debian: fix silly typo in the spread test invocation - interface: raw-usb: Adding ttyACM ttyACA permissions - tests: fix enable-disable-unit-gpio test on external boards - overlord/ifacestate: helper API to obtain the state of connections - tests: define new "tests/smoke" suite and use that for autopkgtests - cmd/snap-update-ns: explicitly check for return value from parse_arg_u - interfaces/builtin/opengl: allow access to NVIDIA VDPAU library - tests: auto-clean the test directory - cmd/snap: further tweak messaging; add a test - overlord/ifacestate: handler for hotplug-connect task - cmd/snap-confine: join freezer only after setting up user mount - cmd/snap-confine: don't preemptively create .mnt files - cmd/snap-update-ns: manually implement isspace - cmd/snap-update-ns: let the go parser know we are parsing -u - cmd/snap-discard-ns: fix name of user fstab files - snapshotstate: don't task.Log without the lock - tests: exclude some more slow tests from runs in autopkgtest - many: remove .user-fstab files from /run/snapd/ns - cmd/libsnap: pass --from-snap-confine when calling snap-update-ns as user - cmd/snap-update-ns: make freezer mockable - cmd/snap-update-ns: move XDG code to dedicated file - osutil: add helper for loading fstab from string - cmd/snap-update-ns: move existing code around, renaming some functions - overlord/configstate/configcore: support - and _ in cloud init field names - * cmd/snap-confine: use makedev instead of MKDEV - tests: review/fix the autopkgtest failures in disco - overlord: drop old v1 store api support from managers test - tests: new test for snapshots with more than 1 user- Fix accidentally corrupted changelog merge- Release 2.37.4 to Fedora (RH#1683795) - Fix RPM macro in changelog (rpmlint) - Fix non-break space in changelog (rpmlint)- New upstream release 2.37.4 - squashfs: unset SOURCE_DATE_EPOCH in the TestBuildDate test - overlord/ifacestate: fix migration of connections on upgrade from ubuntu-core - tests: fix upgrade-from-2.15 with kernel 4.15 - interfaces/seccomp: increase filter precision - tests: remove snapweb from tests- Release 2.37.3 to Fedora (RH#1678603)- New upstream release 2.37.3 - interfaces/seccomp: generate global seccomp profile - overlord/snapstate: add some randomness to the catalog refresh - tests: add upgrade test from 2.15.2ubuntu1 -> current snapd - snap-confine: fix fallback to ubuntu-core - packaging: avoid race in snapd.postinst - overlord/snapstate: discard mount namespace when undoing 1st link snap - cmd/snap-confine: allow writes to /var/lib/** again - tests: stop catalog-update/apt-hooks test until the catlog refresh is randomized - debian: ensure leftover usr.lib.snapd.snap-confine is gone- Release 2.37.2 to Fedora (RH#1667460)- New upstream release 2.37.2 - cmd/snap, overlord/snapstate: silently ignore classic flag when a snap is strictly confined - snap-confine: remove special handling of /var/lib/jenkins - cmd/snap-confine: handle death of helper process gracefully - snap-confine: fix classic snaps for users with /var/lib/* homedirs like jenkins/postgres - packaging: disable systemd environment generator on 18.04 - tests: update smoke/sandbox test for armhf - cmd/snap-confine: refactor and cleanup of seccomp loading - snap-confine: increase locking timeout to 30s - snap-confine: fix incorrect "sanity timeout 3s" message - snap: fix hook autodiscovery for parallel installed snaps - tests: iterate getting journal logs to support delay on boards on daemon-notify test - interfaces/apparmor: deny inet/inet6 in snap-update-ns profile - interfaces: add u2f-devices interface- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild- New upstream release 2.37.1 - cmd/snap-confine: add special case for Jenkins - tests: workaround missing go dependencies in debian-9 - daemon, polkit: pid_t is signed - interfaces: add display-control interface - interfaces: add block-devices interface - tests/main/searching: video section got renamed to photo-and-video - interfaces/camera: allow reading vendor/etc info from /run/udev/data/+usb - interfaces/dbus: be less strict about alternations for well-known names - interfaces/home: allow dac_read_search with 'read: all' - interfaces/pulseaudio: allow reading subdirectories of /etc/pulse - interfaces/system-observe: allow read on /proc/locks - tests: get test-snapd-dbus-{provider,consumer} from the beta channel - interfaces/apparmor: mock presence of overlayfs root - packaging/{fedora,opensuse,ubuntu}: add /var/lib/snapd/lib/glvnd- New upstream release 2.37 - snapd: fix race in TestSanityFailGoesIntoDegradedMode test - cmd: fix snap-device-helper to deal correctly with hooks - tests: various fixes for external backend - interface: raw-usb: Adding ttyACM[0-9]* as many serial devices have device node /dev/ttyACM[0-9] - tests: fix enable-disable-unit-gpio test on external boards - tests: define new "tests/smoke" suite and use that for autopkgtests - interfaces/builtin/opengl: allow access to NVIDIA VDPAU library - snapshotstate: don't task.Log without the lock - overlord/configstate/configcore: support - and _ in cloud init field names - cmd/snap-confine: use makedev instead of MKDEV - tests: review/fix the autopkgtest failures in disco - systemd: allow only a single daemon-reload at the same time - cmd/snap: only auto-enable unicode to a tty - cmd/snap: right-align revision and size in info's channel map - dirs, interfaces/builtin/desktop: system fontconfig cache path is different on Fedora - tests: fix "No space left on device" issue on amazon-linux - store: undo workaround for timezone-less released-at - store, snap, cmd/snap: channels have released-at - snap-confine: fix incorrect use "src" var in mount-support.c - release: support probing SELinux state - release-tools: display self-help - interface: add new `{personal,system}-files` interface - snap: give Epoch an Equal method - many: remove unused interface code - interfaces/many: use 'unsafe' with docker-support change_profile rules - run-checks: stop running HEAD of staticcheck - release: use sync.Once around lazy intialized state - overlord/ifacestate: include interface name in the hotplug- disconnect task summary - spread: show free space in debug output - cmd/snap: attempt to restore SELinux context of snap user directories - image: do not write empty etc/cloud - tests: skip snapd snap on reset for core systems - cmd/snap-discard-ns: fix umount(2) typo - overlord/ifacestate: hotplug-remove-slot task handler - overlord/ifacestate: handler for hotplug-disconnect task - ifacestate/hotplug: updateDevice helper - tests: reset snapd state on tests restore - interfaces: return security setup errors - overlord: make InstallMany work like UpdateMany, issuing a single request to get candidates - systemd/systemd.go: add missing tests for systemd.IsActive - overlord/ifacestate: addHotplugSeqWaitTask helper - cmd/snap-confine: refactor call to snap-update-ns --user-mounts - tests: new backend used to run upgrade test suite - travis: short circuit failures in static and unit tests travis job - cmd: automatically fix localized