cppad-doc-20220000.4-1.el8$>{=Xg K~H2 W>:V?Vd   ; HL[j| PP -P '.3=Te$;JX*4K\a3=Ter@fX ~H  [=VNZZ F'=f&Hk$BLEP++%%_s  kC?t}wkn Ű#}R!Q #  $$($$$$*B O:d   #   ',,"-7;!p#{,+j}F5 `l8'%Q    %x   |0 j ( :  } h|svbd:'C9$Ci=(HS"2CPEF/:/(9(,3FT!=,/m&$^7J`GH]Gor Y }(sr((~5Z_( >uU$&d,o[%Qr5Mhŭ4/V8n{+ônfC/tQX6v.b$FB/Ro0x$jq"IT1UH<#()(Q6^Le^hm5 R< >'. ?0@bPJ( e*H{'\@1D' 8XP &6P<+'/R+ C6TS|@EP=4cB )p0<^"D@CT x)V)8 y|NAQo84M6VQaCTf#d]1wP0 ,***S .]@'u#B@E7T/08A2#X ) %8<  ,E"44- (Wh$2p9,d"<1"4&$O>N/(,>J;C8%65)%7.*;02NN>(<-') *@.'G=`8,TJ@A60n3QF).QF29D>G"M'5`9b,q+v0-JBPsId)Etm=Av6;a92>B?6(Q`=bI6=Z<)#n A_j-]*,,@50 0l;CP4p"9#(%LYfP":IB4*1&;%5YB13E586,EQ "%';j8(m)n)inM$=^LA1h06*M/ j6Gc ZK#$8[u =8[y=H/70;8NHl8+RK8l+@'(36,1(E6,LDy=2z1B4',10Jl.7?'t ">6g<BZHOl5M+#UlSx3WdP")~W6]l[MCU*Y@S ppFC+ 9"4 0ID+2 'o-#D5^1"8%K>(-Aб !;=c/lD,s7`z{A-A5n&R{>2Y()JA?93(O=Ah1cu@w]cs5=%(D)M*,(]1s<X/c,G!o)MT)'F3 ?W+_BX>gu.QZ&M!=_h7rJ7u>_S9<Z$Bh<).d-5*yz-q02REQsHHu>F.0=%<#a0C !p+-_G+@69l@+~ /X&!( lif-I5u2/BLK!qT%,$1O%];5B O={/ZQ6 Do{W?}lDib^M( E>%@A큤ba-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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-a-a-a-a-a-a-a-faafa1d00b1f2192865e42ebf6cdd50474978422646bb8bfb3ba82ff7ced62875b6ba133aa2078e00aff4053d2c706783dd65260eef4247370357537d0156b45d716b2f24b687762bcf2f99fd98dda7eb0e91be24d88d228eae7d28aff99a7e92d5d3f35e7c500fc824a64ebc7775aaf9e5d6db92d3d9d7d7d6a2ae0b47cd7113baa9c6ccd25abe4192901a906a5f3339652698b7a04a139da7cd1d5924dcf7ffb025c01614323e344a489943504a372de8079e2f662bbb70d3f7ba6ce0b8faab6dd7a0b649aaaa785ef6f5fb22dc039444ff6a90efed3f076630b64e489d2b24f379e51698e9757ff3e8137ac081d32e6106e4f8eaf9a72238f5d52435465d281eecc04294b34fb180e2822d8ee6d058934176580565f5f08fcaee40c18ca9a28983ce5357325b10a77ff071835649fc9eaa559543081056767ac83dd06c607fd53010e17bb1a19f81122e8070cc6e031e717e078cc85aa7e2d6c6bbddf3cb792a8ab4f440a5e0b0a4f25093e3b9089bcbbc4c4ba30c33aac4c373d59f9aa908401c4c2ff48a70888fa3bcb99dea5f6c48901f9c148e9859fb5f3b9d14e2333b784d99b2a54d0ed685e6f0a0cff8a7161510c30219ce6d5192f15f4d658c16ba7dd8d0733d573e3615da1fdf5bf9eec692475000ee119dc62c196e1b36a9a19ce5aea98c268b782a3359ed7943dcbadaff55e78b32aaabcdc00168081d2be122cfaa9e40a9f0645964dbff22731c2414b64f64b20371522970c995ecd6399f5cf1d0783c8d113ce13bf7fca81c074e1bf8ab9737b31ce092ec5d2fd4e45345a3d0b2d923f7d5da1e1cf1fd9f3e6b2a72786f2339296e238d30cd4674825d191771207d182940f663e08b449efa0b66fb99f7ec9c44415823fbcf4623f7e24fb218b8ea01b046bffa742afed410c5329ea0443a8f890b76a02acb84ddad36b00190e5a91aaa54ea912706336bf192263aabd785a40cf6f63ef5c9ca7a1258261dd07d23e5c4ab36aa0c59951f1805a7f47f163bd13d6208cc2fa2eaa12e2bf461816d72e899c36697f1948086cbeb09d6ef196ba35726cd963d919d1323c9d666154ee009a54ee88e5b568a1154b76438a72f88384d1d530c3eda1bec75b2ec4f356b6de460c4b60046626879fd689a0b9dc732eefa8263377a3a618c38d05f27266016c33717af91b43fe010f1fe6b53b2a45913f525b5a726604205c571096f9790e64def6fdf555b409c38c065067df0f5233ed985ce52c79fb8cf6bab656f708dfa7105afbc7dbcfc7c78d98fe706561cee988fdcae97925f5b73d24a3995aec92993979186f76fee069f3b9392526cf5a429823a2bb35043ecb484c5fffa377d68df7ed54cc432841b74e3100679762021d00c36d800b1cf717b13a7b9aab9e866a72822c93b9e80d32d19fc38c460e4d9601db89454f8941749ea4720978257fd952e58a3ddb70d5f72866e49c044ac332618ae0e8b38938c96476b9e5d23f170d1a5ba68c34a87b9ea62a9e2bbfb62609589d124c024ffcb63db7f1748ba4326f144f58b099cb2f123aacf24b9c019bf8441aeeb4c2796ce4721870750e884587440577cfd5ddc35a157a2d5e1d6d4809dd55b6cb13888c10794ef799a93e942443ea760461bd884b074b99ea593120d78eb93d88de810621099f0c3bf4e5a57743d2127ac0a653161d2df37bdc5f700e288fd14c0239c7108af63aee161459dc8a902de961514cb5d978e666f3c674c506e52829d62dc640f2b0aef7c95869d89b7fa172dcba81a9878a3c94fb5fa2ede5a020a570c909424a343c0f70a27a2a71d4323465da6ce8b41ce562820ee48e1270c2844a3a88e6ae70f743049978b1b27a8015d4727a5e4c546d273535c0d1c896b857eb69d4efffe3562b9159d5fd92667ea1af6f9306d4a78218cde8ce631468c1b69c4f089464d6360178c2f08ae676215a653685022d0747f0264e4bdef055bdf5e65c7bfff52b55e430335bcc9096decc6bba278876508b25f14e0717c0d96522057b5787067966426af64f2902a7163a1e1dea533239db5676013caaf042d72c268c26061597216465c4b449701bb7ee336a0a0b7adb7201b3800c47c8b3377458bb75907c4d0bd107573fc782d2984d05419ef1b34028bb3d3f6285b6a8c04ab5c51030667a5c93106f51442197a1ea77b82c39732fe4a22e0704d738dc9d5f4e9d4cac52f741e7aa290fa2f4fd3657a0e71d856693b813c8277510265f2eeb234ef6dc8c971ddf6e7ac0af37cd31e59d6a2a468b2e7eeff19d4bc8ec9496458472596650ef9cf4719498a57d191a807bbed784afda47e6e50d731d10961fd5b6642fbda8479723c9da982c020c77de6dd4f0ae0ff50dac1c3a257f259f1bee462f823f1c499f377d85439eca5753b77964478abc5acb6fa3b054faae409c43e29841130549415d08df3bff8105d37db47cf226327cefdf2d46d77ef965884a4893d0268d3fa18f68d78fb0a446c8b7f4a9331fa435a70df5d3bc5bd406177bcc92dc67a9dddd064ad6f9be544d3a003cfa106eb34648e545a7864505f69068186dc58dd5809951b3d73e0272fcb004dbc21547dbca3eadf6d3b75b3a4b14e590af8370ff2b379ea4d5b81d43446e24402f812be8d2049cb9c1ce51f6563e2c3c9ee30c06cc7f480ba8db4b23f6eacbc0b0e315004a86a847d5345aebd64901fb71c201578c6c2015a33323f49b5d0941702c7087771b20c36a3c64425b1c656369448a68e572e810f03864b7e3007b90be156e5748ddb3f83ebef166b9cb72c764762eae2e21e9db66f2f23fb5da8d5dc65171d1f7d651a01c6d575f7ec38a66441d60c6d83f9b6c3ff965a9be3fae61d074d3962d944ff86f9e0f7a197e1244dc4aa2e3ae6ac68952397841700cf5743f1ae6caa2986534a4654661b60e48e7cc7e3b1bef3cd9559e2d7967c228bdcea1693dff5ce32014e8248593d0050f98729a2d54ca9e7d78805182164f2ca0bf6dbfcf2a2e2c8d6dcd2470f89dec786c76e77735edd1c2ac5ae5514d7b39b81fbe2d22f680bfe88baac27104ee7a760bd23967810da4f7736eec8d903b5996dc63ad297520bcb2271e70865c8133f3ee3b28e802958b925f43bf0b8ff4919d8423105c20d7f96561d5e556e0b070ae1380677ab1778c5f1d394824ff75fe37180a0e4227211d78e8c5fafe3635935e8041f5deec839c641684c439a8d1cabb9213d5d0903f9e482638ddccea5afcabb80e07a028a82f46a3397d3cf743307cdf637ddcc4f270d2e8e6938f0493acc8eb2cabe940940704bd19f0e95f1645f44495f58492ea4048f4234dfa31990ceea6d4992446033510161627f8fa92a896a5aa7e19ddba48b1ff3669b934e574171bb776695ca7385523612f4af3268a7d0f75b31547244714252ddf88483f9f6f57eedbfe7f86ad01df014d629c38a8ceefe0e4783426122c7dc72f04f6f8d0ddc01e2f4c211c0e278aefdec665da18036be38d06dada3143fd0c4d00dfd531ebf409b7f46f622ba44b98914671c3111d6a655a6ee2a8c6b3690981712897002bc021595ca014f3d2dd8167b105354c58c51d334f5bba99b891e3c9d95c82fabf386319071eeda883de51fdc5c7620043a517ff79baeb6ef769f7d7f34e6401302c6409008076e014329781516812c417e65a8dce1186cfd082907402cee5434e1766c19523c27782a01e8c518b301cd9974ad8c23110a6271824d93caeb830cf6c6633c75fcdf4905ad84b54a1f1ef96279bc9c7d1692a77d1afc7ec82662afe9fe8896793dce8c86a213ac29dbc751e0d7f984beaafcc6dbc232602c6dbf6795cc198ac25b84128d26e93892cd242ee59514d95fab1eecdd35aac5f8abbc641de4be0ac5c3c15ff7414d34bb6deef430a0759ad025df8b2669bd310161409f4c89054b7ea0f2399037b497bb91b4aad6a92f3a6c683cc79f561fb4e07c3fc39591fccdec043280fb261e98ab8c9e22594a835f81b65864025bdffecd4f765149815ce32765e4059822a85501c9985cbeec92b8dee7c25c5c30b2ff6762a5b48cfe63d410066c9ed81edbe95909e605b491945759974153176c808e418bed1b4ce171b3e9416eb0e04e5612d07f2edb6206cd82abc97dc13abd0aaf5dcaddecd9386a30520550cfee1f200569464a9d6c0e163d7a4a992e62b42749602aecd4acecd51597b870637aa28fa8367b6fc850b8b3c5d3e3fec2a2347e1068c976cf1a448756c70e39086fe6037ffa58371193d3e90f365e91516f21a3db5ca846a8035a76177fbb91ea9816a12f3a8ee78c62e52e2dd71d67f46a68ea957206053dd23941fd8de301aa5d06ee414f0ad3a63214a0fe9da99bf351f526575810c23e366b0d2986d90dd8b0f7508d1a225a7a03842bc59907d1354c7087fa9bf763707b1c5fab832b7a0d14596eb7ed203600059b731e9f2936f1b447a47c9efb2fa5e4ef5460ddfb194329ece0ae86d03a3f370014bca95ef9b49e69e06a7f5ee600392d39ee6605abd25aa0fd2db2c15f0d6230824506aadb079c5541efde14015ecdecfc20998a63c35d4dc07350ac8a4d88fb2f83ee282a47441dbdb5affff250b79d64a26b6d540596e32bf2b7e841da91d98d6f8d2ea1e1a8f4a008b7398010c987319066afe3f92fdb0e8a3d0300774eb62e8a5eba00f295cbe0035ab065f191c8fdfe3c1484b87873c9dd8ee2d1b93578c7688fe80225afba38f89ae8e29799ad910fb11ac8485d482a1c8ec391668cb436ab6e9c5fe429174ceee76cfe40a34ebb9f36615cf48658573c5e555f4d2bcad9aa8aa4b38aed80887a4c4a2f4a6b65303d49a7bd114e562b35d1edabf055b455ece3c1f4b79a87a8ce3035dc90ee6e9f8d07b0c71daaaa90e8d7e4409b6172156fced48efdea127d5a835bb5c51a094e46a2736aecf59d613342942f7be2b2227f4ffee797892b1c446af11fdbce312d6663301e4c2bc5d4927c90ece6a074776716f29ace1722dea9ddffac404a7f60a426cc03ed0a8f7e18930fca55f80d10a85313ba6cfbf096520b4ff9f95be046345973b6be445bb91693f16cbaa59b845dddd749db05e6127554e90f19bfe6965be81855dfad348754727b4c3d7f1c1de4b926e8d79a2fc498779ddb805d46322a87f444d40a3335abc4986a62f896de6c7cfeb48fa4a0aac02f94515ace99c3354722b7b49a7b886cce195fbbd8072d745b2a6302e88939583060ccfe8bb1005eb7df69a482d4e286e2e2372d465f952b7b35ec7b0e8abe4611d6ff25caf76c99c473eb3901afec658d6136a13414cf5806fed8b958ad6f5d0ad35ea616ee12b326977ef815b4fbd59ad9270910242b00b2ae6bc0db9a792b8974e4b43e0d633543e2a2cf9d0bb6494302575f59d8b88527d419688e7f8c8b1dcabc999f57f47aad05e83be23e94f2eb74c4ef4b3f36ee29a2e95a39b4710f0fdfb0f423e2e04d2791296c12c61953ec53d2d6aebb954727ec25a8535adec47ecdba9891683576f425cb701c73ba0ae272f95d26aaea8f44ffe725238d7f19c3d352b84d38c5e15510062bb2563cc4e02d07438b4a914359d75c0930fe18a9db817f9bc9341e5ba4290289e8a1294dea74462321a607a278a23646daa331240a4081495ec6b13b5420f8f39d90bc088790ba41fd23a5cfb08c16dee58ef093f2c2eda8873f0de2e5d281d06b180ceda19a49aa23a2422b173386ca36b904d186ab14d628242129e63a2002f96672a46dfb54a21c29a6880d6dc9f7bd614f1c61f1974d9fb55ef04d48276fbac64296ec8e091b13849e9fcdd176c11626394e9a78d30b4dd1286cd25c7372e55ee1f6e73f00a276ffc7619cf8177338ef24460f4bd2edb3d4a7e2ccf17edf0342a992b462da781bce5e6dd545704a261c391fd9f3f81bc76ac37ca5363ddfd48d3cd45b500fb804af48bc1d650f164cb6e4d43fb45233a91d141fed5e21f220ec0f0e2c6481a2a2bc594a749c65993d2bef5f8b10e6c0dcad8efe9945ce9d5c1f9c9bdda04c5c7ed89ad41d97ad17b5043e434492658a944a9a0ae788f62cc306efc8dcd9562156238ab8bb6c6cca270b76183d0285d820016ec33b510f2c492e09531e127ef5d4acabeb7fee695a4cd9ddd4ece148695ed1c72fde3abffc41d9624f1914a66aff666af8f4964f7564aefb882078843ed25a04ed4174f13a51e05740c3fa3462bf46d99c7795c594254f5ee1b6cd0b4ab45fdeaf5846777fb5288f03a760a5ae78bfb25423cf71c01506f4921c74532913442b5eebba4098b40f81bdbea5b1e9a96a210f42ee8d335f42b279eb476e17e1105a41a7af72744ef16a66cd52bd67ddd2f1c7c327610d8d7d43dedf4007ab4c6cbce25785e8d8aa5eb7d837750826fb4e4bc0f8e1f0331affcf36c9df204b10237167b65f3f1280a9f6eeaaa893c91893de510abdf10f920e422716cf6f954db5c58a494b7f18cce4556d951cd02cb308255672e6f03128a558ef2018baac5f34e2842436d1f1862db9a4da2fc631b70bfbaa23ff290dc68fb755bcf2f18c26870e4988ac2ff3122acafeeecaefdb25cafdb61236bf9d959a8dbdffd2110bc5042299a174138fca4821aa8fd551d157965d298d9483790dedf6f4c6db726f53aef9b3cc53146ba856e30d78e1d0c7f9acb1c614fb3232ad57b60e482d316cfe76515c45fa7224bccc046cf24bb7c82b8a070af94dff7adc2b83ed0f05fd285f98642e45f171dcecdf3b321fa3884dd4f3e66ed84137cc2c3c305729d4eb2fd0dd06c4ec933b352d55d6278e4869ad2496ffe56d9845ef0c3b4aff70576ad1b467c3b3a32ec46c61df4821a8a44af501ecee23dd1fb30bf1c4ec67788a812a52fc3f5af4b07acfe637b2dc6af4a04b9fb38575a0ef220080bcd162cd93be6c82b83ffe46ca7555e8ff4872e41d2c7d833dc774bc07d89362e03d698f56b99e3540d469119d94b8543d74c4bf3dcbea26062a93a588b1a7cd20a7c306176254f19b8489252b21f1655491a9253b69937586c05b6ab65339ddcefcf78c555f1ef672de4e0e60587fc04f3d27c58f7647016562baaa2f60f64ab2148c4d4620fc5e3ab630a6707ccc5f7401c4c846d7832228fbd736528bdf906ba7e1aa662c2b49af731641d837ae4716d2a5253a7a7ee7e598d5ea1a553919ea0fbf0198a1aa44ed56d0b8c3f056e11d89c0f0fb756abe5740c5b0c9dc75a932c043d57a878948f6b3344aa49a5e6faa90771a3cb30dc67b2fec43dfe71da59be37c5ec3adfcb4cb1b58a956580fde3125934009b5a3300ec60d3978c6eed2ba6c585dca4cac7d4a8815863e97b5dedfd068172ff1d0b5178a13a49c81653930a7f3155c50efce2d0c4d0d5cfdb2be5b91d2fe7975435cc7b4178ea10b419be375709d89fb4516a503c41c11e5001241892fbc4996804b859cc1e0999836158ce8c535b10f722315c952b727dde61675432ecee4a0ac1fccfae05a6fee1acd612632e5bc852a77d4dc69feda759408fd969c0f31fbc091e50c6f396eb397b34d8d1ec2c1d3e64b20f361d60bbc83ae8df26cf62269bae9d8bc7a068a1123ab9e69a9bfc7f9e25134b2d7c1380a53c4a4ffa090221891b05fde4843ddd63c9bad03f9a5bf3ef9aad14d2160da5531a0daa8d3196327d18bcda1ad00e4cb86816619a525eb0d28bd7c51dbb7662aff596b0c60a5914812686464775cbcd5a55f5b0d2bb6e329360204248dc5006fbad10ff14b9bccf100b318148349aadf44205d7ff7d146691c8371d441d93bbc3526e2dbd90b28914a8991c6b918ff2b7f668cbacb8d94b5a4976e770494caa14b7d78620cd0f8ac364eac1fd93e6975572f768579b96e8775592f1a7be066ab23237d4693bdb16a60b0108bcfe0a7d0e5898f4dbbf0435af7d3917314c3d08bf9bf667c3faed2dda4eab76d4f53dd4fe40d56a3cb7a8d678b3fda5d0c7ca0096778f60ba2779e8f0186271b2a7eaef2793771d7f7d164550980f306e8d2d0d559cc9d025c1718673d424352cb86cb3a17fa579623f14a9b181a70c6e776da7d1fb44c9a54ca6c872379bfda2dabe7a6d6a03ceb31763173d3d15293ba7908f6e323c5fb7178a7ac5f069142d58ad20558bb9fc70ae06e2a58cef88d663f9c0067940533b6c283b0e51f717b24beadfdc7e47d82d703970961613d69b69d49ed7ef88d3d6471f5c83d96d205722d972cfb8a5cc59c2dbee675cc8e99455779cda9b3d2602ec49c2bfc9e163b38fd24be23985912c5baadd3b349043422eb60538e807d0df7bdd78aea40cd3e388e37ce6fe7bd3ef5ac682803955a6df490dd2d0024a6f6d9d2e64402597f7c500dd2a374a0535e8df0559d344f6206d59dfe7718b49153a1ce4b00ad455cb88fb176598d74d9bd2d26dc31c0bff0aee18b3263f24ed8b76508376bbee49de724def5efc8ec0dcb7b54dea6c4204c3a894740d23945e89f70e2924f6c6279d7e32d165cee762dee9d63650b470fe96a9e672e83fad4da4422d13391860b2f505a21f96b68a0909cb2e2a5faa1b169cf4d8795693d2cad5382cd430a116129120567b7179912260eb00ef5851f3ca47ac91a36794d3d359cfe9b7cf678b13e893b416ebcbfdef2b9166e97c3d8f4c4fd9da02c0600b00f82cccbd77ab45bc57a09b7aa1e99dc8da72c62d0f0001b8f83d12472fba02c08582d12d1cd63b5441732f4712b58df00515fa11a01d97fabca29739967fa0315c82f1c64104eda5fad2b7505f63ea2ce5a8d68a25a6ae389fc073d29bf5d934735bdeb96d868f21ca467e65f33f46429d5da5c20b7d59a6046f33811184bfbb88cdf8de2982c4ceb0649d3302b395eea5fbfde70ca6f32b1c6aaa147744aa11a4da8a389eedcb9bd54c6b1e59d8035c171a93d6c896b10c3f77efcd1c6f1bcdeccf240bb1a429c600978df595db23d17ae37f4965f1c87776040f0ad952db874df65fe33ece889857d9ce8b1fc1eb723456adb4fc3276c50b1c28917027a6e4cefb75edc5d8523a2d1837da09d88c79c4a0f7ab17967d74b881db0954f1e05a459503d03f30119934fac88f39b88a8ea3f4f3976db9d9a53e36e0fc87a4baa09f6bc3c0b4bc1e4171be4f554a7e9df308e0b6c3d43f80fce8cf2b68bc115d1c4d3d3be77c3a163b50879fc218fd040cc79a3101cc5807f2847f6da8ba14a6b8de2723490b0a674e268eee293a9e803ac49772f6a6966541874c2c884d0fbbc2008f63c4ac6b1ea396cdf2b6ad8b0cb51c397fc5cb5a1bcf7352b0d4f73107301e62384e11a9c82137720570e92acfa15c07adebf166d3d224f79037a47b6ca033a1668f2a1fafb4a426248f5904bcd3b152267e8a9c41d066ca5bb8b715b8727be6ac2f188ccdb89c1c6a87e6664817dce0283998f70d988b54fd18122536c5b67c203e40381b3087ba52c42475a776497b7ab5387433c0018c8990b0e6b05b8a4bfef0938c51b449273d66ae37397be57b575806043176139e92aef0e763f5b9c02f098a52062a0b437d7f18c33a3f4cf82a68f869f5a2163aa3904aace6fb8652b265a11b0d5d854bd47c08a36461e7f130f0c57b35bc7295cfae1d248bcda263f414f24fb986cbb17be4515839abc791900e69bb663b77d6707cdd80dd266247c894cb2601f41f46dcee55d5e5b665238cbea7dc67acb1bf07d6d5e0d7ab4fce68a0df1af44f4e3ee5100866bed3ede3bb9e862b0ed66d4a4f115069c72f6f9fc3f8d9898fec28f2eb9556c264740770610226ed4b0df68dda741a87a7d0618bda0e1e603f23c8d41d64f40e51e6f436fe457ba52e681dd5372e88363fdc478d516598e8f345b2a273aa798d8e9a327c06c3236ef326dbee9ed1e61e9a5d24441cd9f74983f354174554554923bcdd89b51083d5fdfe189a874c3e9793b3081a2a556b3a1720376d59daa477e30f165dc12360c58a2e44912ed5eae8bdd4749ae47275cd2f84f0c80394e41d462e2375418f8828b3258d9fe2f5d6c54b0fd78d05893fafa4214193be12e62dd68e29617ac4936db67851ef637286335730da70e93e95a6c29a12a1bc58078458fa97af7f484fc203a0842ceedd0caa5cf17eddfde540a5eb1891c869d3d73750a025d0603f3442b76f02c47b2b2eb6769f7216249b68216c8af5dedb3bad17190350a38ccbe72c9482254e55d4dde1a5e5300ee1f4494a0bd1992a844409552b600fa36c80c43637ae40976769964e7a502f40d66a40c1402faea9264ea51356b351413e01cd22dbe65629c91e841f90d17302456d4836e90c50e867b0b4bbb544d237c3ed80b0b92a561a54caad7137dcc68f9f9f7271e7d60d3ae27efdfedf6a0c086d2c08b953dedf63f9d9ffd0ec400aaf1583b5ca63a44cb00bb99915a55b206dcfb85d0854f1d913e6c07e36e65422e7af25cf692d2a1ded03784b5c5cdbe6daa46ca65a68742a065ed0e19a10bc94d05b25b88a40bc7f5906c8e3debb0cdfb24a46b67a26b0bd1f375dd39a9d983d175d6098d7e88da9ce1e4476f4e14dc3e7d0e8833f1d294eaf9bf0f99e703dfefef631ba3db23e1477cb499c45bad61ef1934e253d622a0103daa4c28eaf9dddab200cabd30394fdf1cd1b4cb9faaeaffaf929ace1b9e09591db231c15020ada8dac36079ddd23aac0447b901429c1c69fd17ff593c0ee9b5391b84c484374122b7605ee9c78a6e2e1ac27e63279ca60d41d0cb53ab578132f74adbf159c82b7349de5b14d81699d49050657d7b9988e23c10739996780e1eb3f70b4059661b2452cca9fefa39f67af34289ec69acdd808587a5b706930739c3c3bf38bc23ff061abf500471f2d8176fa4667e94084679e8bd9225e66187ec2e685652b8619bd245ce3a30fce7d380e50afb22dc4484549766d2ea1220734258515a732e8bf528506c6e0f1734f4eb5f0fad44364b716fd00ecca0aa6c5ac869d0993361108526fddf25fde21dec1c315a81692aaa5707829b14a15dd2574c454fa563ddfc44c86a11550408e9ac27eb2b3fc7975d60a0d9ce13ec2ca2132cb4d10ffd179daf1f240f35a1c2c63b10e1218d64fb3c4811a543b043343b424a8535e16f0fffcf648b745b9e297f399566133fe1dd362244d5d9986197b18e284fce437af99e585b6ad3bb6a0e4e4075a6bbbd160e10234f39ab161ea7359001eb77cb7567588ac4d324663414547033468426c61d797003c46b66945e6c73c9ff4649674d0265b8526c1340a46e8e099a2421ec286d2822ccc2d2d9aa74af96d4ed8da3e65ae71d20b17b40730a94053f71c8f590def3323aaef0600da0265838539af56af0d02d0112583e732bc4a1d9543599e8735b6c39e2be2b380cefb63fc4cf1c8b040e73924303ae409294b87369ea7cd4fc2303b1f73686ecdf0faa140317ed0b5a96b00cbecfc8f03230767239b097b9a745c40f1185b240df11e830acaa86425321e2fea7077509dc24b56ec026810c7211bd022dd8af9b3b531899701d6cc15d5c082bc50636f4f1cd1f06d0da410f94f2696807d70db3ea011b4a0955bba5013dae679a48d682b782b2a5da0355a584fc5c6d7cd313dc38fce3f52ecff9fe26b568c4d44aff24a84a3be9302ba1b8ef7891653c0801b7924879e1d2a620973d9f6da4b4e43cffce42ba3a01e10054292a630ef21429159764a8a90cbd5f8a68e4ecd9260eaa8810ff947f77f17b04afa9d8b50317b8a10346abd1d4fd7c4bf88cfa4ef6d37e2376ff9a6da747f3747d007eccedadcd0fb2832939e71e3ede967dc6d615d6d4d0e79c4e20d5f39a9538bb853de279b32c186b2b2535734fd73dbf095f80b6a65635a174a2ba4540a5ea2422c8d897906f0c6e2d37787ca038152e65c7ddddb26b04ff0d2c84b74a807b733d7953df7f8034529e45bd7db3459caf8e63f8a5aa8138bba0cc9107d3bcb7cb42d10e08da216970fc71f2d88b253df4cf2980403282bb3e2e936b97cba0b3bf214788547bd5a89fa9eb619e971b34e0216ad333263b6f1722b07d7757bb8fd7351abbc45fe7ded716914fd85267b29939204b6d194ff0738fc63bec42b3c8bb04a7b4aa7529dfe299ebd9a430cc61badf82c1d9520a1d358771ea28b6b985af227daf425a0c50064c1e8835671d36050b92912dfcea01476b92e896c51f5be9e14760f53a9df8e097c0eb79ccca75d9e870fbe246ab369cbb5ace79add8606d86125479b000a6081239d14b206d7212323c2cab55cc41ad8a1ac1f9666aa84e10539b2c49b373b3581f35a1df788e69cffc4c68f1a41491808fe3b4d88467b4c31f15d14de6acede2e3466f1c1947a68d66dff0e234097b5dd8aa12f459fc6625db154f6336f88e95c218e336ca904726ac7f2c8d9ff678dcd2b527dae3f74b1d0974dfd5bd6aa9548bd2fba590f81a4979b1d29b9585431142dd53c0d4c7ab43ccef3b1eb15e9171ebd8835a9ab8edeb5d23c4695842cb141970758eb751d124a6dc59236f1d49f1e7563c1672b99d4b33003791dc9d4e36ec8e619621be3f4fd6147172d9a5f4028f1de8f11e6c9747fdd951529f137da1e3ef98392e3b7187fc97dab4f528e5a4957c126537e2d5e532f4dc2f2d9d19e40304a8adf1144e335e2b38396d0f9dbef24d6b3233a5b2dab46b36576424a85b955869d243e895c10b5499703592d9630688b057834cd950370776b0acdad86858a4ed2f38ab3ac05226d261a0adccc384a660718e4747074f1b24e031439524b4587b65cf85acb0deebb0c25e3bea415b03ddc7defb2c0926722e878fc85e3d3b00d70b8dbbb383f7e5f79502f8e9e700729fe13955b6e53c06705c7b601095e578fdf6d5f3eee5e5b3cc7f462ba7ff80e1727c3401d47637503923c1c8961971d53383d611566358ae15c68f736574c4333d57b11e64bb9ccb0249940f157a380ae90e2160c1b25a05c05cd1fbf32b0968944bdc925acb661a63a0fd7112b258f95f88f2857864f92aa9162af234c4cd2cddf62a20a01bd66a7e7ca89bd14f2441785c4adb1448097aeb2f4bf74486f02aed0c89ef3eb258efb06ec0ff880ceba425979c29d5699d0e6af5921860a4d5c4440d8132cafbe6925f4cd21c8b7f4e2c7e4d1517c34b52f93ded811bc329f2ac5a4860aed96be043459188b06b90776ba74b5d53cee255f66443fa09086f1327660b17f494c49e451718facdf20bed459f6dab662ec6631a6e3c64b96e5ab65c61f472019ccddb37ac708ef7ba578faa010dc3ffd00db994c84bc74ad95c504931e305a9c56b9fbebc6c5309f2435f414d58724a17c96d7f0138372231a8253118081b878f8f6fe5eea200e4168328de0aaba1ad6b638cc582b36c1ec6736ffd1d8a61ae73c677f0391c5a78dad613a604cfbaeb9771ce1238ab28386e46b42bf3467235bf9939c7e7bc11cc942ab3984183a46eb7a7d88ed4e007637ec566c5032ab514df79e879b3d0a4df3a2f67c5372191f97ff01ca0b123da67eb78d97eeefe73fb5b59d9ed22d6af9fef3634921a2c669b867baacbabca55da0347f47abaea2df6d4494595c6a4d357bec3daddd00f16bc9d090d232868fbb9a2af665c911c967f01e09036a7b67e8de169f6b19ec73e7ab5913a0d7e78886a799240277acc9429bf1d19a6e79078e953f63fac622c539e752aeeb666211fb39c85f71050603e94d429dda2d1566c1b5618cf775d159a32abf3a97aeb366db2c85acf745a5da44f8c458ef8452914e21f1779d7b444af56f8e8d3b871d06c50ccf35a14cdc6b8b0c748cfe5c800afca08c4ce9798f3d32bdcb8ddac3820df01d117ac6352ed497bd571aa3614f05d7b5f40c4a07b0a03e91c3fb7b281388ed87a35157c602c7330f38a6007e1cbda710171947f3e1841954ef42ae18a960857f3cc97034b3c8b8d1e2bd35aae4de25895fbc71ca559ebef18d9741b44214e0f2773852c76fbaf347d01bc86869bfac00a078256581c536e6d0257af0842cc01ce3b6e1fc8dd220996aeb23dc10dc6d973cb8ca625c7482acccaf59f92d0714c4b2df82b3b763b35e046936fd0a8203fcb625fc32d95919b8434e8f7cec0289ee1ff00ab6ecf66e91408be86f9a9637b222650945744ff03af9c7509c8a900afa5c4f88bbe9a1ecd4110e913ac5e7557dc4d860637cb92aa1163b67f852e4bdb276458d3fed5b66ac1644caff8f4577895417aee080522d98ee67425dc34bb14fd00f3226240f43a2cac34b5da2e74a2a73ce61b62ce4cd9d46351426181911c13b978cb9279d6cbcf33517200c1a59c03b9c3bdb1b87a5bcf4b85ca027b864f48a803d2524ec32788c05e9c3cf6c4887364df91155fd0db7b31eb73d4aaa73796911480ead8005af000215f4d258b92c125b760a4172b413a5aa28334f438153f3b34c2c1e0e7abd01d697627f225ddcffcd6a06cf53900b536c1d5ccc811dd5d965c7c661f7b686911f08f8ba94909bd83bdf8d057cab52f954f9625ffbbc8e3a12767cc0f0dd3fd65950f46389b7e7a4df90ea10df0e232f63de5620edc5faba92173e8c5949bfdfea7a09f4b97c7fa9c5503757b88f7adb0073d06569b81c0f5760d438a5c299634475a3bd05e4f925f04c40e835ad11303cd6b615293111c432d1b6820da5f5675c1cc1182d6837226c53a6b3473def60bcc7eb53345a6fcbf832a698507e66163a2d88413d8550b30ecb1e8bba3be586c19eb92bf8d2f79c4b2c4425adbe10cdfd16117e87d90a8842d8f9cb755c8fdd2917accf17bb2f6f92304d5c9692644b6d74171cd10803f29a6ca02a1105dc4798543c1600117724f715b399abb1c3a707e0f7b9c49ab0200ada496cf2fad47ac8c5674ecfb553a290082d2b31ff6aba73f86a0941a88f093aaff981b17ebc5e27dddf9a314684429046d055dd516d9a239615a0e8616990be685f8b2487e8619048013e37d74f18261e110e1c2fead6b3cd04661428deeb95f7ae86d45833e553c1fa8fffa1b51104da28894552aa96c0fe14d86e61588fcfd5975c477059f5db625fdb8aa3287417ec47590c99285d7cff68b23c3ae1d7b5ca58eeef2a01fef4300be689a4dde7407992a58140c022d1f4a6e5cf8f25c666ebaa11139a82ebb836dc5dcfaa374485045e67bbde6474292748f21da36ef9192318d2451ec0c147ffd5bce47219c74d45575b7d0f0aa92c4dac5206626ce41e6e37943b603219a4614942c33d735ea309660174f2e81bfa9e69d2fdf1f72c7712f27ff1c0df7ea0e69ec592ebcdc486bed861305e04dd272fe64afc28d6a28efe8131e4541327e735b3129d818d6d60475f299c294194e7288d7d1f48e5d5091e09db5f1cefc7f7c65a4d0418297de5d2e334043760e591bd3a084357be5587916db736f0a566a8f879b82813af4eb2484b21cdc9aa40d096fc5e356e731403aa233cdc411a67c73b9387e9df8e0454675ae2e879dfb46e03db3eb216ee727da37d76a9434e2aa293922322aadc8f589c0c88fdae12ae1de0d2c6c31d161232926c91b824a2a0034f86289c47f7ef22634c4b288a1430e2714ecfac5b8b2ef072be087c5ae8091e3bc6bd161a35b1dbe90f28761387fb1e6a3d47b9c9b4f5a573379dab8f76b777e5a387cf9d489611a7ed1df807231ce47bccfbd532dc349c4522a266a51c7bb05a784106fd31913f5ecf7943acb02eda5c07c9abcd8f0c89c92289bc4ceb1a3b5bfbba223d5b88362ceb001bb53bc1726a7834cbc9faa6336f32a4228c941b93e255a8cbc3131c0a50ba3ca2dc5885b2740c6a3b14803db2e1f70761ede250cd9619699157af59592f890b471b02f96c8e0bc1a5fe72bf1b96c31e979fa1a633a8e48275676fe00362baa1fad2ab859b075ad9797403ab8453a8fac7efbd49f7204590c9d39f1b10a061e95df5b94911b8175c660ea412fb6fd63f4a73e3556ae670276b644515b73c35a2476dc57cb769b8d2c0a5ff118b627ff9e6ff7a4b1f99438afabee63f7091da2a068b0574b61e4da74a3370c92ffc3cf5276dd51bb7628267346f3f3d773823a345ff21314ec7fc8798703a0dfa0b843c2af0cba767f0c2a188838c0825a652614d1f7f7b767080a0426960ae4b8e99af9edec3214dd48b456bfe09bde5e939d900df313f4d71811079f281e60273f1a631b8e191cfa2f3337e0df30e4ba995e524b3f152a2cca6e15c1698e1a46fc28893525dec0b9ba8d44275f38224050bbfafd9fe4f2ed4943f55ab29778b6d9028127d6d5e0060be801e08973d76af0ff37f3ac642e4068a38dde2d12095b3088b1c7dd1ed06e8ccf029ea7efd96a35e7d11af36d8f1b839efd7ffb352128933a7dc499070fad263356a8ccae20d99cf9b626f5defab4df8a4e6284d43bd84ef80ca1be0d44a7817a2234e59366ddfb86baa1001ab7ee8e67e4c649b889a39e90c1d5a83099070f6bcf1852652da310de0f7174552f6db4cf94bb4c6054f2a4f17932321d5a3f68fc345b9966825b38e77eb66f57b16682a86b07c7a3cdbbc52d483dff5312c5922b3aa4052b9e867b5d8d3d49ffc9013a5261b964c88844c0d974d7a78ab3cb637fc9c68f4f59c14f021e1f2410900b2e1ef531058616eeb30172142152a615bd4008ffdd50dd7e72d4d84f4cdec2e82a9bcc6c912047364704cbcf68b4d2f6de55a6b79e4a548802b0816fade56ebc668f80ed9862f12f69653f98204d36c2464b715eb290d8a34d6fdad3cdf1954e06c388b51a2fd0ca08f21922cb367a184deb16351e2dbab36203e07f3fa524a23dd7e0d09ff4b42863156c89c5565e871aea6d769a88b948d164e427e284df04f1255a97c22f60129dc3f35898ee38c1f61d6e07e9b6347de31d96d7cb0c4406d564a18a12ec408533374e5f9e93f52be1b961c616de7057531f46362893dec581d9c11eeb3bffe65ea70c241d4845c90f490f0063a011815b8faa693df9294afc6d049249814fee50d159b429d4e81d52db17f24785f40a012d16e6ddaf2bc2ecd8b71c7438fd3106ec546430aab6cff6765c5c9a45404c7c8840fa16f4e8b576d669688a1396795cd488e5df87bbb5bce85a2301e93225f165b2bb281fd59fdc03fcae7f984745a418914c21e1e0a5c570cae2fd657ab0a4eac90e24da5e29207f077ece41c245750a3f3ec820dc4c8fdea96f31be2dce38a2dcce9ad9321edb6a8ed47552947510fbe14aa79f014b941ce3d8edd60bb3ea93936137d57d7287c3a5221f27fa061b1244fc4a5d2198910dee25d9e7bcb45edfbbaccac90602966cc03dc2f664e8804425e34ce5b225b92f6b31e09dd01b9f3b138725ec35e15d7720a51fcf956dc962194c266566ca7b371825675e65c6c3235d9bbdfd7da496b9b5a88408c01812b2dc7f9c426d3ff25cf01e1e129d5dfb602ef963d9fcebf45056dbba2141ed98b959f5257b684d2788667241c9671ddb261e5a2b69a4d90a68fd24274141b644255af6b45fa0bc299e30a45923dd9069277df3b707a7ea6317bf1be5545c0f57f2871be95bfc5e0b51c846e6abe2e79f231bad37c6b27092a17d198c093885d53cd0df3be8003cb0280bf1f758d5a7df4426bfea91ec726b74c7e9b0a7901cc33ef692287b624456a47f83469a79a32866fba4bf12cd1206aa5fb86109c97d33afabff58de2181df552000ee7d59a311becfffbb84e081b9d420661b36b335d4f1ad110f2dccb1dd4ff93a3d58fdbf609c2189b6aaa6214133053d7ab9a72bbdf636388740f29460495501a8c07edadb6369e3d4f06ffacd8dec331eab241964065852472c60466da58279b5e0804ceec3b31b0e2e541000729709fe58321c54621e205ca8777a163197375e2cfb5c51b77e55d0b0bc99df9bbee181c0e195bb67259654457852b6a192b25e729c0bd8157e601afec168e73ba143391ca53622dff552c36de64b38ab0fb53cfd2808e879c789c0a1a8bd01ad4282be8dc80b5f6d4700d1f3c9ac1ba56b4207114581d0eb8332badd643a34a8fadc0dbe693f75271ee2ef6f3a3ea902ff0b0af4788ba0c69813997014faaf52319956d641381a748111bd4628c5f0b41d904a99e2d0c2490d5ffda20b12060f1f206d949c5a8dbc0cab8a90b7d11545bd5daea479499c9a669d641b8b0f3cc0f69ada4c00fffa53b34cc997fccc82cc698f8c1a687504c47eba7c26f55d402f4b279a715fde96d45aa0d84fdca8293616a5b376a0960dc24304e942561044dabfdf9d6810f1903887b63db97b25d2d65754f11a17f8f3d1442f9b3190f75af58f9e73f264036e1100a07350d7ed61bd6fb3fbfd82bebf1c3fd233ac7630f32f0a2768f0cc051e550ada95cb3ee795eef1c46d6c8b0b470a60049afa39b1c96da1529807d0ea145aa3111c9de6772af97c0998bf4337d4006f73c3aa98b47e178c8dd503a00e0da85d8eb2151902fa7f63dfb281ad02927a44db1d7f9f8c5ce1e45385916d9af045db2d5332dde4bf935398451aed4c752cac2eebe1fbd74c6bc675618765227089b033ef1767e9d3c3fe4c40ddfbe8cea6221d55f1970645aa708261cb146754d0bbe56fb76f7c44d2b5b8a38582a810a42c12c0aac1416f51c4f178066be512da475c7f6d64572ad330f2d7b1d01c1160c419910c2d08adccee539b5b17763a17d625e7d9f853e34b1b940c80a7b483fee010d39da124828db5e9890cd6dd0f95cb238e1d7ea10232608fc0b873ff57b460818208b7b00284920a3704d1a7a98ddcf4cfdc7114ecf193a64c720f1f32ffa185f848a735a4cd2de2309f59107fdbe46961acf2aa192f343b551f17e9faac70b8901f2017137138a0758f61276dc7dee08309e25c2fd82054513b9bf72c6c5085bf553e80a24365ad0b4e58de649e6f5c494c7cf236b9c16052db91c25b2833c920119479e642b9faa4584a7db72298cc307dcdf99fd6952fc4bd3c2ae3228c3f7750ffe5d7ef27fd98012d8de76af4331dedeb5ee12f7d733cac01e9c03d67bd72f77525a678e2fe7c74aef14bfc75e55540c4b3ffea0d83f9c52107ca4fdd7d5eee34bf95b32dac42f9c4b01d10e5d2a49a7366f9d2fd42e76e5dc4ced2c8bd39c96e941c50ad87113b2f0017f89b629e22d40cd01438b2c6e306b0341a5daef98ff8dc031df85267caf5c399ee1696b1e53dd3cad1ac165acaa381a5b4b476754ce860fc10b95c6a1e1adc11e3de538f0f51c2f62f0a421e7e0ca1d985a3e8a5ffea8a50dd20d346644e8dce412a6582ae20dcb8b8df8fdf924b1efbedb7b4f5a38549dab04824e495906308bf4d548b9418a35bb737b34abf5c2495f8bcee236455a6f86853fbdd777834d4d00fabd684c9f82022b8480e87446b99239a4365062583143295ec6936f8a5094e1c6e701addc8bc4f85892c9c2384e672f8769673263a3ce6bee9dae54c4c71442fd859e29bb65ce04d9cdb890904a38a31b5fd96babc3b95141954ffbe6fa7b87e19973bee4ca3fd0bc6ec5919532dfdd9974052f548243f78c135f30d5aa55652afab784a5c98724c928dae4ceb3779833e6e53dcdfe1d5aa8ac09ea599a84cfdba09c46b66cb1d262b3486bd39a45096ad471aaa96e0f94947383a0eeda04d6ae287701d10c9cbab933aec883a822c68ba3f0416bbd904d5cbcdb4a573dec157104e323a0019305a272fb692133815bd11c3e0efbeaeff9515fba8d8fd28cbcdd3fa8def7d435ef88e4321649b7d64824b9224e7cb70b5d98d3d81e4eced903a029525576cdca99111214aceca49f3453b8e753c22ebf493b23998dbcb2d6bea69a18b071118f728c876fa1c71dccaef02589816a72fc06030a8198bb13ac3bfad9a2cfd7141f07adfea0b02183eddc03e4b5e531c0d307fd40dff40fa6803dcf8312c50112c475cf79c41b038263dc9799beb0ecec0e23765827738a2d6bea46e76fafea10344c37757dc6d982fd9594919f2fb2894c21893946cdbd3c6ac6145fb847489cc68a4dd17b65cb677c0ea2087eb1a5e92f62d7ffda47afeeb37b294a8b7132213b43e005380b85b5ecfc48cf3a97b0e9bc1db2bdf52f47acc251711802f25ad40d4f4e72882a191402ccb9eb55880e7b3592ec2acf7f671ddb9add9e64c911230b54c67856950bb19bf4e7626c37d27bbf3a89ed0a4634368449f19b74c814b71dd011356123cecf5ce92d4fe9f988160e209402877d9aee47984e1fcca3a50c8520ebc0f44ead82f1b070673d32339c18f3237e2a59c23deb169f28e97156f5a77655097ffcfdc20c09dbb3c289ea44b19d039315388f2db5f213b51c85d07f0512ef82abd01042a5bc69e25a5730a5e75d9b6260356051b7ab5e2a38d7a17b15aa80d3836c27a28ca39b3379b6095269679a0d9c16e0a10b4dc19987da75ad1a0a4ea5b54a2c3674d4a370db4f57b8b2896c4d1773dfdcd17b74cb3cbf3a62a353b6ba52179f17e56cf3af32091fe930609d559365903302f1d89b1d47d27d49b58579142ea5f59b75a8b4d51823593ed347afdcf3105367ddfd3e35cc11bea23a99bb10498b44fd06918e8198fa8f550651482376854bbc7cb99d8286a3c7f1e41f3a88371ff5c24c6acefc3b26e298e4d9f075279b209b03d4194db9e8d3e7268e1b5651614e15eb50b8bd8d9b9e42d35e6592d32c9330fe1670ad4739b1a56e446c5939e05e640a2294c9017f278fa89ca8f8e0958d850bb39d740d7badaf09fcc1369bf3cae7f2c56be5c107293c63f2254a44d5e32230e757668c47a1c397d82388cdc2b8c14eff61eebd3d8b8a6558b904654f8c18d6b4d3bdab7e618229c65f2e9d924344aa744eed9361acedf02cb045d9a199b35ab920abe8554effd425ae20a40b8b661bc6ba681ff6d58bc8805a3a4fa914df70f5832e66c56b42fad853a3615a61dd3c288b63fe0d267ce53d0fecc403b69cf7f4b939a18fbb9c9d99ad60f81f16bcd59fc9ac2ca1342608ca33821d39d75154c7c5e493609609a1653828aeaa504f387e8e83bd68ca0a068a1b7f409a75b1f15d536eee90bdcff7a6e0700d0c2b11c302eaf2788d004bca4516c2d59e494ad71105172fb80acc054b1f5297e72ceeea0fc3b4ecbf7225f3abc7f21534d405734dc92829e9a77eb17ef91672f7a2d1ec59ce934d7e1c37013c8ecd14d3e986c7ed8b082fbb61589bba0cf0a9d888e372e77475c2856e3c29abee14ec50726666202d81c69fc6377231423a06423bc28da281f2f622edf13ae144b21b0cdaa07f45e88f589ba211d9d6c56755508014336c1db48295c24213aa492ee9353af9fd64410978558a0332922108c3951aed74dfe47eb8a1a7fcbb5fca1de7be8e452d615a27371cd95dbd3c5f2a808907572b5b0c1c4bb1f5e991b07967a872b4456f85afc29d2c5c6d2864845436191e1c3704160cd51113dacf7b08d1522428b8eb5344886d884d795f7d997b15b9e4fabf588f8dc015b3ace08fb975d7ee6bb9e3fcc14b62f661443c10939773d105a6d58e0c2e8a57af28daf9e1e7077f59251d04c9ddacedaa40242d6575a63042d6341fdeb92bfdd1dcca8bdcfad6331198bd80b15daeda427e6589daa0fb264f63571e8628fd43d7ad9b09e2756e7fef8981de4c97fa4c203dfd1ec7712b834348365068740db896c7a1e49779b03de1ec030a397abac5f2562fe6330cf811c9a7e5b53f7e52f5d040e38dbd52bd9f1aa3e8fc8a62818178bc8ea450f4b75cf0dcd5fdb1a9987687ae78783fe9ce90a879cbe3ea77aeb32bad999eecedd633e2a037431fc465af5fd8b58051758f60ad145c3f4214d3dddeb07a8f3b47086dac65a382ecf3a958c8a293dd859f415da32d89a8f5a217376e2709eba9b2917bc6f0f186687d0b59627d4b11fe8687bf10f6f4d2378511d725525cf9c5ef58b4a7c653a990d26918b8871fd2fe00d0e434d979450b660b92ffc1620ae1125f62ef4a5142f63aac72f054c4e033ba48bb0330a041ebf33c3e47762db8e02c40abc2dc36f6a1270d7e080992dc8a96d4a324c95268a912e66f9d3a00326c63f1c67b3f85150b2aa0e34b93d9c0bb72b8f31aa76820caef3861d61f77523b9e6b8dbbcc5146609139ae410eeea5cee76816330bcf482bdbbb75e2faea7defbeef35f85d5fee307d4e9a86eb3ecaf9befa9a754553209e468aeba68a90cb616ea47e4002004376bef75cc184495820a216546923172b2363109731c7ae7538fa4e840d4a8836c28bb07d89f31b6e2832120e5202e1687c39010aabba084152333194c893674f71fc87f2111d4e5ad5b03ea89d5aa4a64949683105d1f951a6dd24bb83fc5ab6ef2d4fbc6e0611bb0126e2dafec0ca57e8eae26353f4ef0e1a7ebd942e4da98bf3baf9ccdaccc754e5c2f32743ac7700db7bc32cc109ae326396d61930439d88c583843df2d96b0039f2c93b47844d0abe2180e1355ad8709300d05fa1c1a733b5bfad19f6b2cff2ff77a5f9f3e3592703fe94b7891ed5b86734e2c891afe7a8387c68e0447d9b768e25f6e83700f7573a4450567f351aaf6e001db8f711e282b74398c6bc7e5d3ff38aea5d8e7fbb5741b21a7504349153c4a1b6de47aafd134792f22986bdee4cfc277c4741d10a5dfc54d8003dacab250874eb839375e75483260466134574fd56c869274c24ea46f0b95dd5b6e81727a3e05e6ee5c0a8929e9d31f9ff82cefa1eafc99d0adecadaf975cdd55eee9755a2551fa9d7655d5a511dd04bc4792d9d56ff14074020c2b16e563cdf2000151257448a5cb0060105a2db7d3a7f8d5b7197935226281c63c16986b1d17b9737859768cb65f14202a3cdb0bd25c4eb6a6ff95d2f105facb3f9cc0fcdfa50ddb81bd702c9cf1b6757ef867bd39b87af366a743a3c9aba5a3052861e6ac24ce7547f4148a79b5c0bd47a502406bb331a8626a67f80649ec212d32d133c221441c2344ef619158159360ee063330dd3c5a4fa9ebfa33ee2481d1bb7f1dc4ba7e2b331c61ccccb013e1ce570961ef8cca4cff343e7d03194d0bdea3ba40e9f910e5cac5c44cea6675fe4785a904d0d035e2988dbe06033810aea2b99d455c52842bef34c97100d7ef6e9d6dd7b5cb83f95b13599013c1a35ebee79e4fcca224ec15ac2e7c08ccdb8a2ff8d92b07fc01d6bfd8a3e51e479d5ee20d8b3e850998ee117d7eff274cfc666cd4eb1bd78ef682ad22b59cf17f09e7a0015bb255bedb04154bb82f146ae24e16dcb9ee88cd3124e602e9656fa452a44e71fb7536500e25d3cc85230026bb1c9714dfcf2716628f9de981c68469decb1c40c5990157ad21d49e506b3ceb6960ef4c806ff0c5b1ea18d7e28c150a6c6ab905deee161e1e46f86e6a68a10bf5c6fa696ab5b7e20eee38eb0fe11cef557a03fb2dbfae2dd7c7cdeb977aee6b4fe2c84726e4a5c7d706f690145a086df60b4aa7a7daaf24f8f2b1a4a0bbcda81d04e4cd9858434d31fe52c5fecd2c2f851f2fbc0e57540b20e01ed65e4efd426e60a9a234b2308c7b0e1abce2f1b77a6ac6891483099ca72732f71cad47244433bcd93ed80494ffdb210bde83fa452c024534b78d63ca78f2ff71902c48244807059e6353efe3582c41e0cadb0eb4a6fd03154b6d395a70baa883599ce530b17fb8e6a53b72a0186364cb75fe4f5855348918d50b4c903360e9524accc82fbe358d3f58f298f745098e69fe1685513d8e02fcc3f862b5e161894a103c03c9a73952015bfd4ee593728bff7d70a14c2cb52a0a2bcd5147f4c3296cf866aa1568301ae31f235830a9c984199f2249d94a00818d3253c4ca7518e062740374728138093e84b1d39e226aaff4c2133a4da13bb7cf377b3520107f0693d8c9aa3c9226302aefab07157af9880bd8c5469fe656e739967f58e4e186e25c873532b89b1d7de0371a7886b0d8104ee7af1d459e9a699e97e9c06a411065cd5ae8a61885428429e9b3878d13ea7f709a3fbd9a87673a2ff36df852bff4566b5582348eb48bfd0309db12868d901851d81798157b8af2cdb9a97487ed3d3a79984d58c4dd2cffb3ab0398a6f43cbc02dbed65ffb96e1c9731a1f56a3a89eb3ec1c662bcaae317fa37583049fd6fe6390d925414f7432824bccb8aed73e3b2cdcd694491d7429232026d5bf46f84ffb9b5d32af56e3838f1ff2ff70d37b0822713eba04c4530194892f3355fa2a445cf1781394ce71d5820ce922f49f75aa77e39431f9a99fe64c2475728f8e408d38b74d20f729e95f367aa8a4b843caf836442c971748f0058c00945f078a76effc7d0a762bcc335fb8ce953b040a021e7c0d18bb782a4854250965302754e1a94477986b98d3121ede3a5aaa940ee1d27635e28e5b33a5291623b53c883e019b273fa1e7966fdfff610cb7ba57a3988905e3cb5b3534747baf9dc435a4a425ca6a1a4ee80e4d6f411179de5c2996a84cec3b7cac5b2f57ec722973761a5bf121dfaeb43abff5a85e39ec01a6f0a9ec6828a2fd390aea2f5207cb8223ebcaad8de3a38ed0cc9fa0ec767a195a54c34eb48f357d30d35ca0d0252e3702b1a7c774b6d45b4387f44c3bcc4503150d8e3daabfaf0fb6efe14106e7d06a4bae9f2b27ac09955a5b58c5b0ed1031900915fc159a7282d8a20d84e3f1ca24f9440e410eeed243830d21cf9dc25a3f2b1efe050c0ef458d12bead1b750e86fef1a2144c6139dd2a6d7dca7d972fbc6898eb95530db9e8aa223dde7ada15c7a16df8a4c7e3626ad00550ee706137b5cfb189cfbcd4882ee17029ef172298cafe55f407fa0100f2332e84b6611a72aa5cd593a151c5a5272d08f9ee9d8514cd72d600fcbf3737b731eb4887374f3a53b884a8f2e3a5fca03fc8695992553709fa2ee0ac9c1fd3805a38be771afc9e18c5965c4a59c15b5233197c77411b2ea184a60b9636aa62ce52b6d1c161400abdf6e69fc8c86403ec7ea58c481c02a732b4bffef4ade38b3735c95b2d37afea30c1bbd18db5cc813b56375bfe986d80156f3fe7b269cde0dd8063677585208eda6d43e5d6c0ad4b3cb149be1744f5ea44ffa87bdacb4fabb00981cac24af5c44548da5450a46b1167ca28946b89a256a27ccc5456e9a11862c5bb068c592649940326087c11177bdecbd4c8eb9914bf398e7a33f31e7edbe23fbe7cc9f84c543a7f81f4a4f1e377d7b67663b40fe1b578ea24b3755c3d82d60868531f2996276361aad98bcaec4d71d7dab4f2cf420b132b1b0d3473b75c1ebb4908d99c5d5b77e99add2d68f51380b1b2fb06bc8dd633c83af5fdb62d93fb2b938b212df10ee6525dd3edae3cacf8113ba6209f0fe619892192c68e8c07d94e45d3045129dd25badcfff1cbea96865e25ee2f37650bf272e7a49f187dd8e5dc791ebaaec7dc0409d3dfebdecce02524aff5f8682c155333f6fc9be6093283c485eff0ec649112c3dd951a38e560889e389ceca8810fa6cdc60c17cd77a962d04b708779a3b1263384bf360e5c9f4e31b62ff051feca53a23b33db30131386022366a70988d17e80844ff4cfe9bc19b9cc7e6212db1f4137e43797c33212a8376bef30a7694a44d1c284d291eadf935b7adda4452d2ccd031467ee9489ff6fc94ea5e4602d596b9dddaf9e68dd93ba4ee3ecba8c93b5e35b0e13b34629df60d0cf2853909735371718c4575cfb518d3507efb8a550890fa1a70a764e46ea89176644e50e5b137c27fa8cf697c30f1ea113a7b97d39173c02734f43af38f15d939667aaffb289e5c98737afce8033b4b0027a83bf3095e50eb1ea36d8bce615f7a20fee8009761deb1d8cba6357b04e543108b38f31fb0ed1e446c63aee784ff51899f8cd817bc585d7a582341ecc054c2f1de6cb362fe4cb074dc15a35df670fb58a423da44eddeeecb71bb95d7e25b8f68ca5da6a1a3ed760342c65113dffcb3ad636e6dd6d29e0a3b9f113685ee36616bb133443426aba007d5b9250b181da0ef857bdd8fcced34924516dedb1fac379c306bdcc6f97d8db31e5e8e290b8e3e62fd8f77dbc114ff48a0db9ada8c4c70fe7bd5bc3e88a9163940f76ad76bd6475291aca5e866563856f1d4889e487f090ffa561526e8097beb80e96f20aa58f99f4d134dbbea7b2e410b7beca692bcb3cfbdf9c617e6f0db9055c5b93d826df86d21083ceaf20b2c63ac227a13b72085e6b2073b8b8645b4a9badb3ab5e977431ce3fec39f0026742e289c27819bbe21b9968596269a0238708d79555a78de06361a1a064a1dfdd1f04f8cbe10dab514d3735347bf0265c47cfad7f89804abd72e423e00ad435e5f91080221c7bcbc4ce4ec0bcb7eb5bbe8de0164c5fb8711c9a05622dc5ebf9b4970eaca60c1d5876861d77093f1eeba63a83f90e19a061b52ba96eaaeea0d4af80dcc67bee1322861a2ec4bc87f3d5e280518c3b2a035b7cbdecd9ddb69b515600e4d6113bb6106eff90ea2fbe80db8c1082ba2662dd565e9edb3b72c23e61c55755eca64400b14260293fbef8a5ee6349c94d93a9b139a9e5a7686e2516938a2a24bb4592cdce7f8178730bec8e616a53382285f3dbc342670ba5efdd204661322f301acebfa42017ff6bdab642f9c08d9967d31186a8c7fe8c1f6618c68497b3f637f1594b7196868a824d19d34db8b9328e92613c03eb9912d1252860f4e18b1fc08cad8903f256f8063757a6ecdfd7da2800877b22527f0f7fb9749535837698442a7e0885ef74dd7bb1349dbd019058022945d29791fe2ec5c5490992f8cd3fa6d611d181ee403ec5919afbdd0b1b7e50210a92a03b85c285bcc4499df0ec592f2c6463815fbf4e1333ed02b445ddc24e60701a9c5fca44aabefd0f4310e97cf2949f222e69a7cf8215046e07a349743511f17b8bad9d214d0870168a3921f7d50248a5ec18d53656f3d56ea38e60a0d35183d517d044883d274464131c711497b4aca47ed64a76d8560020aa4525c6a82837eb8570e7f862320b1beb84e9bb4e3b9fca93f3a8b64fb1dc43007b15b04c240a555698e274e73c195000eff52d1e93c711d8d699a135f6b366aea95d4f84549357abc25e33124ec3e648cd8994501ce781a7c88acea1b4d81abaa09df189a0f697421661eca37ddadf7baf0b07ff49b59b6c852a58b0dd3780040ecf73b30fb66bf660c368e642784fc0707c2c9015d21ef5aa1b8a590cff932243aa1c907ff84a4752f5ae061e470c6bb2b7758d015557007f4f86a827045e76e8ed225e687a4c813b45c25fd36f83d330f9c41c717615ca01aa7416811dd1d01f0fb21d8bdbf55a65ace56469f811a291e2198dbe4ac46f25e69795a29e95003f9898e8676e88bd96d81de0581e644c3366c461b2554418e0936b5d482958d22488d1c6a979b9baea25f68d4484906c969189a2f25844c8d8f451e0f9a123d241f7645d34303e912f087ab06dfd140aec2f3898f029a9eb9a2855a2c78a6d6fa3201b219a992dd21426b4fe5783d5c5ed0c63bd7198588bd38435fc3f352cd5a9a26a6f57dfe422f1666e69c9c90813253efb180395da15f6b9b39a1621f1bd6cbf2e184fb2edea85f6673447da3a5544d9f3496122455e515aa43004df35a046ef96e7a442c41fa2da1c1ff0f7b6cd0f24e1262bc4da5d1b6708d5dd87b36932737189291c26b93dcc04e8fd7f661a74411c7745e9b93a815856c51c0d0216a3319b71d32c1e2839249f46dbf78fbe3e8d2d35d82d730e0f0a6d958ab7e74ec282d1c5c170e6ff444d83fdf4423b31e60e36bf5f67537237eddc63be88b0a716a0b0f596725248f2c55badff85406e929f443adeb00629d8e073944814625f89a452aea33b1ed4b319b958e692c1bcbaa474e93c7e9b7c31dfe0fcc7229c81db824ef57a91de8e8809f8a00e22f2bd9270a5553fd299a7d5a3b32f389248b85db746056c80dc0c58e3c46cee5aa102f4b774a044ca61da839f8d86f4ef59a94ad76facd65b74c8c282614138037e24bb600d2d218631a87882a42cadf9d9ad440e9af7727abf32d800e0a965365eb86bb171006abf563ad35cf427b3aae64684c7b14498be924db965711f013ca2831c4d52ae7d40d8c8dc5646021a6e8c18abfc11258f5d278c6548b73f1ae149b8fd80bc086814f3c4fff1802b97e74cf4144f921a5098e91c8a0db18ce603d5d024ac36c801d7c7c6f81b4079b5ac12a369cb78994547ae7a62b480704e6ece21575f75826be3b9301e0293105447c360f32eea1308184b067aed5c4360e42e1b85e2dd1075dd28f93a98508bfa01afbd79214b17fd8ead7057d3149884f374e904820a60a4c4dcf4f9cafeea92c9048cf4c7dfbaa102d6571ce46bb98978cc4c06a1a0e6fc7b2e36f5cabbfda14171d99f1ff62c4e434184d681a6553ad4f0faa47adaf83fcac2b3753772701feb60767db373763529ff656ba6d97ca902d7699a76e15c0479b6214ab6df7823b43281dbb1c7862c3fdcbe17e13e099c6b9e5fb05bc65c2715d16585454b20af1483ae9d0a7620ea3be07a766782be946e8a9fdb229b6ec3477b255f56610a345012e3493071076a911cc086a4020c1f6cf1a996133eb8e4bbcbf5d99bb5a5362f0f9422cfb8d20aa98c5f538fc3d7d1357b11604a199429d251d4bf6d4b77b518d9c2d183663502c29d53b128cb7b4bdd8f39d584e3e6c7a29ee0465b2c0c9b334e1095654be3bae97e94afccdf7147caf3ef29c8b32d5bcda01ea0599289c4dc6a9c525d3996a777dfcdbf2faa689c52f9f8f7a7a285524d7e39161038e1dd2aa4167da13074b538aae6f4c088fa55988f29f7b682b6a59dfec97192ffd0d59fa957ebe563fdf23fd95a96ba7a2f3c5b03b2d28a591939e534048826cfc832c6866122860b018003acd369cd44e92e9503c45e21d7e68747e329eeb641c3b7dd6911f4513c0a846a980f5db7b8020a218ee31948fb434953b4e1a6ded9fa3b070974f910d389d2adc25bb5333b41148b7b7a5a9ff3d9010dcd31379d14185bb9e678f3c743bfe9cd2945e6ccf21107f5b2b74e852f43b25542a4fd43710d181633ae6655ac938a04ec61e34adc970ff715879c856108f9390b6ad7e6f7b0a39783016154e75476a4dfee6963e4c9b7ee5f474fb3978f154ec5a0b9256d413076768bd68275fb0faaef80b75cea574c56ffa45d2f3019da477167d1a7679eb7e8d84aa183a7eea1432bdaf35984d89aa90ba5a28adeb41fc9d30e5f94f17571f5170321619eace1e795a076360c7c298f779a60ffac51cdcd3cd7167e6ba016c046dce0d67931ba5d591bd99b2a6885db7dd003f3ec3f3cfc97ace6632e9f0a2ac6a298cb1c57627c39df33c243cfbd8d84ddf5d420f0c23bc2d0dceebf16f93da4cf357da5a11bb0564f5715f0e898af3ee794d32f1f6ad0f4e959970ffea8ee27d153b2906b1c884036bbe8bd38880285fda754d2dcd9a2ee55aafe81e8342dc83d76f7a0243ed3b7d302df987fb01d77fc23100af2cbdae7f8a9eb1c25b2afd9b6820ac8c5e3246d44fa2742f708e8aa2850f552112bb7d90d92715a640d2c7b8017145ef5c542653d5f3779b5fb3062038d41d97471567381d7141249a07c1aea8c53b59709a277526b3e97291ddcd2a313098b5cd377fd90ec1592070f974283529e61e8941ccb685e822e9d686efc9a8655be5523e44d1140aea321335a42c7cad38859faa89b05d61629af2754810f7c486a49524f9aa07896be0a989934f56ed40f2061b558081a42bed2241cfbc8645a4dfba3b7ebb5aedd3a53b1032850f0942c2bfe6629ef32bbf8c5cce6f8c944c7fdd5be3397b7fb51bc0b6ecb65877c938fed677f6d0eec118ce96ccf41cdfc9614698195bcbbe845a4c1d90e755b61429d5ec0ac1870721b7e89dd585e7a3f9a8b1d296a580545474ec2a4dfc5af98cef45524cace591e13acb6b83fa402c98ba0f0d0efe3535babf4ca8294caa9afee6a102563dd700c6343346ff203217fcac74a3789df0225062f19e2905f1b0b01ce8bacdb03df260d2f79438a29a4685fdf361455c41c463a06ea6c1030a8829cd3c237137f89a582b341f248841d6080a116d117dd67477f0ac4b64beda73c4a9e9e703aad2bca6cce5b3e6152d6378d0a715566b72bfc3f06496c4ce9157d93b80b26b60b3eb9520e2f1c09022d83d315a21f53c1bda752125be15775e36b3dc28f4bc43160df759be90bb476e7d565ad1743a63a88bd778a433e382c03629eb6e607f993b54aebe4198fd2f37f8f91e64a5143009cd10c5f945e35a3e13f3ba1900eb1153fca7bea0c3fb14e3b54d03ce804657829d78763cb7a823cd120156c2c7488c4d7709b57068866f8b8de856101ce881214584804ac3f7011b1638c64c2bc395c63e2ba351033365bf0316746202f4b526721f57556e36651b037340116590e689445d05cad982efc005bcc2d549d047df216d88ac45f441dd1da15ccde7216cb0e2861c7f1aa9a3e2922814a103c780aa0106ed80c9d41c875aefdf49bfb8db2932ace5629d5329bb27b582890e92afb30db5867afb06d8b99eb83b2f6c518169c2581e2b86c3198aa33c78472853a5b26f5cfd3e1f84273ebee9e32019b0a1a7fd92be16e54f9b7b9609d42a86d62f6e67bcc819972ad9d4fc82497e40fad6e9a85a906e9c68ac30598f2829f2b05d7e10aa3325dc6e53b75ffde5f80a5a35392a88d847e9d00d0ce24e7835aaccbdfed1907353d6d4761c7a1bc40a290272c4f5f919b58b5844468574575d8705203214e304cd14b9cd2b851855795187ddd46ec94e30a7e5e592408342c964d0187b449ff86b5508bd9f7848066d6220aa92a3bc932f5f135e92382e778753a5a6a3096eea981119055c904fe561a2c3007457370b2ef3ff0e5a27c48ab0cd79ebaba1c544bf9505190e13619908ce62af6b267a4670a841a00baf444f653311f359e3049680f9dda19207b37fb0e1a12c9568a8b1d3bb514f679fad57def23f8a2886ac2451a8bb44bd4b0517309fd656fcf93258471e4a98bafc382edbc50381b76b6ada610ad2d36a3d4e4eaf445debed9a7293f33afa51ebf4a48bcab2e1ee89a04ff034a799f79236d79dbc656b0ce2857821dcb021fdd302df122fc498fa5bf8a785550e1be7e9aad8ad978fdf454f0985e82baed56b9956189d3fc254601f7dc85b4985b8aff372110820bfd225b306753b02719ab236ab8047027977df60b59109b0892d89ccac13b5df7d69625ab7202cf0a32fa66c02e098f94f99dbeca5331ee92a1222c646244b9a308768b5cf3a72e3f319e9c230f68f4bdb807fb00a5313d689e0220f78b26d99cc8df2e7adaffb2da60bab8619dd12ffd7e2678290bace8c21aa2855aa407f6d7aa779a790097067495f3427f135dad4e54a6c4abcf67b3b5bdcd9d6a625387fbf413466a442bf2c69cf00779b5e4333060b0dbe1ec255954008abd4ae8b0371e4d210155b259fb34cc4d37246342a38a12e7fea1b4f0a5ffb899782e873715b8e0dc9a2697ad018716b86ffe5a6cb7c47109410ec66563d02ce296da8445dc01f209f71c60abf5197975b6c27d91528075911e0381c01ffcce061b15d8696967dfb34c68e385aef2e44cbc190244415785a2bfbb7b0f9254b8508f3efdda2f3de64478999a1ee3326beeacb251ea45efe98430672a6661221c4ead99f3cd09a82e6dd28b413bfba0005dac3e61836b793aedcde08d47cfd55697844a74a27742691a66cdc86605bbeac48853c982c779b87837b66206883a1306adb18e7446162961654c5e83435a38f625386546f5fb248d5d8b3956d4179d4b9634bd3459f785834c7d4a9458dba4a09cba48c71660781c73cf879d0ad89e34748726d9a357d3b8fac0231032c052ecf9ea418b9993eb412bbc1dd7a1ce553e0c787b70272905afd38a742d4392a233d32781e2d591b133833290b7fc0df78c0b72c38f2e81e14d5c4c2051b90fa6775b53e7360b2a236270914c7e192ee5a15aadf08a73fe442e4fb0da5be2afe55be2259ea884ca386d39c459973e45727dc4d2b42ffe9ca2df1c283d224fd79f6d0c19432d4e4ac3937030d36325e202be17d320deae614bdd042e61a6a3d3f97f578de62b30071377976439e4565c8a4016d4526f1ae25759b005a3869a52e766635e10f396f27c0962d885d1d33c8ae4a72efe25184def5dac515709c7a5182c967ddc52802042e21c92e610a77585aabbf0acbaab5c881f517ede703a1e0cdb87d053f9be4fcd0354d9fd299407e0f7f7dbeb25d34a877aea22a6328b4b07faac11bf34be76d1ff6a953165d58814fa121bf3940ad4ee567c93bd4d8cc04d20230f717c73aa09f98e64610d89b5d1a2ba54979e3c3e60194f79d2a63537134c253ac205252cb3e5ca21b49ffce19b381cdae245b0dc1925e0af956076e5054bfa213bcc29fce0b86ae9b10ff5936ada6510753f09063cc97fc6b2d7bab450602101c164f12a89f3a554598aed126ee6ecc4326a64ab2e383a2d3aa7f06a8a2e9ee3b8a3460a15fed583ea26d88aeb2ff5120731c17e4652b2e8820a390463e17b6da8e6d9bf22d22a19c6c91549f1f5968695bbd36e5a30e17c91b4fab3f0c810ac85d27caae4e31cb72bb6a8aba53c71604be6aaaf54507e64991649e86f1169d67432a588c04c78a0dd7b350b542ff7fbf2084f7bd8298f8c245c52f387790d30cddc0be33a952de6833e2c2b5075eccb80c63357c09797e71ac8ef3d23f375448afa7e6b8adba51db6aa63f9abf6c13e014e538d35de213244845637c5e82189d8b1e2c6d972864b57300d8a38de7eb4d2dbb0723965d738c809336288b22a059ea6b79914201402a566a1c683409ff3a69d7e856a2bfdb49d49cef9c3ead47c57d515247abad24caa9cd353e6394219f640376df2c5345d15c6a5eda8d4279e2508a4afeb5f0f7985803fe5ba5ae3164b4eb6b92dd76747d92d0f7ebd3f7537da936af4b333b3bf712ebb6bed54e76e85e029181a6fb5ff5b426be14c1f959e06f4084068f23f5fabeaa0505c1fc03894f854ca2ca000d2b24f74b37adcf1d9faf8f02738411df535d6692e56786f989c7511ddca4a0bc09bf45752ef19c7bde0d6b99ab8b56cdc6ba3e14d25a83ca5fa7c88f18e0e9b073fc97bdeafd8e8481b491f11612c869be89cf5abc65caa208eee6464a9c7418d16ae6db693cc5446c72b0d96312be9fa78e4ae57a3894840bdf6a3324b70431f4676e5ea4692f38ea2fdfe09704b72441ab3c676caa544719ca0cc1836c71a12797554c648aecc1f1126bfdd9f1fe6c0ce6160af2a2c6988334be2be08d931940040037aeeace11ca2796cde4a5006239abf40545aa5f32a729a752233a364859470d5bd195f7a5907d0c214b8143edcebb7bc3599d6e14804980eadde4ff546b2d1b4bd7e3faba500ee4bab3a262323b03ed6f06d5b6e82f9bd9e6d3567193b2abe1d2a1cbaa5a2792bedfd6ebc1a6d34cca2b005facc7b462b44c930ebc74123f4b203982a099ded09536eb76b56f21706fa8c1bcc3d1957a53fd0423fb0bdf942fd87d208c600f2de063becb2d603ac893d38ac29213d30c4575cadc8f8d5232d0f4a2b773ce26e55de14c9edbc985d5d42717ac5c89a3146a5d3409541c34b48db108b8b2277273636a4b835e9355aa639cf5dc62909fcec02d271ca840bc1d8c8c205947db0340e8a0c8301ebe59f2438eb746b6bacbdcd42191f9c9aa1a1f4315174326a01fc0b345fe01c2f821927de4bb62a6fdf7733c1052c95551a61b405f416e29d8cdd53690e0899d7df5114c976b006612ee02df5275ec202b80159c6bc5e7adcba32375d841f86069f4fe88d97bdd35a19b9ed251ca65b4e6d86f9db836243113521e0dd06c365f969d9d1543e2cfc27be71c24f05a9eec3e1f3256614038fc0015b84619b31a03df68054c6813aff304312e76471a2c7b2b28e5431f267632d92e6d7995acc33803a26bb3e4f365e8980e78ff7c643f0d0fdbfe1af02f6872e239965ef75657c4e185a3d9fa9a34717b8ee6c52e366270107cff27398a2e484152f3368dfcb93a18af5c24244c5eae398243a96eaa55d1ee19f0628687aaf4fc94a08577ce87531f3e0c2074b20fbf474179163ac6bf3ec863f59351fe2fc18f329303b69eac65c343138dd855a5cb52124d4cd908c1514f3323591f6f888a3f246bd3bff80c8fb5f93f8dd3c691e1cd97e1e4d94081271fcaad477a6b3b2f48bf52a6de35a25acf820bc5c2104ef0cafcfdae775de6b83935cd099d8487dc4701623820db69709e42159f6fe3a693c4d4750a6a0ecd8a6ee2e54015947a40b95aa200065d5146639f0632cd33c877976548132e89e75cb538e320d368b656fcfac2c3cf75905f3bccab59428c8ae243cdf3d0f23661be203ce4c37629aae8e365e13987ebac4eda5ce97d34e705c9b9f365925fb6e735d6e50fe3b7bd8afc4a8352cd0bda826c0888c74286d5cedcfdb5fb5df47ccf2411a10ce79ad91f0e695ec07f7b3590bc702ce44e66dbec5991545a8ddc92b6099e40b02eae368dd347c3c71505e9d94ba94f03ef6b2c4575acf561572b52f47a00233bdd7d3175e4e6e9604d8659f64a6ad3ec0d288027a49e2e278e90767cb7d794a252c25cec2603c7da8dcbdcd219bae666a0df6a021570d7e8a70d7e2dcf48fdcd964926648208c4f609a181c160f949c200e373ae14c5f219e6454964083773fc5327166c055367f1ad8ad049fe62617844b4ef25e0afb3de82f6ce3d259b030adf581f18786d4e05f962879c02eddad092cf16343a08f6b69adaf17f5db502816383f7262bbeb1ea5e6966c6362785282781fe79cd07f62b3aaf3fb3ecf096b7d22e3cad86d02cde2af033fdca3e35971f64a429a320452cfebe02661b03c5c2602584a2fdbd0f860b968a0a58e4374acdfff82df7b669bf17343ed86acc24b0bd3504ce352c584cfda32ff4e2b20a849da6f408b2380682838092e3084f99aa034cc10d0df3ebd642ce7ae8617a484b02b090fd15d7f8eebb2f9a5a822386e725eebfb25d0265b9e965a61738845ab89efb58a274682ec7efacdaabe0a12f76d95e5b75cc072be42e364d79402646ad91256e26bb2dcc7bebaa84c0580e9b2e67574873a25bf4eccd548593ef9e49fe935ba0d7bd80a4bafa96880a65d63e23b66e15cfc5b5a5f94aa3a77a48176bfcce65b68b8558e9e49ddbb5a849f2220b1f3d7c6684b0290f0aa218f929a6649ca0bd76dc68fede12688e5ab0fd1ec6cf687377799daf995d179f8908638d4b74d9af3b862651637abc5c3d87072368ec4dfed4dfd3e3af24baa5e63b35bcb90e2dcf1a93825b39cc860dd93afc2ddc1fba38ed666342862a902af64bdc5f61363761e4a7b9437e81a860c0ce832f9cdcb2f8ce9888072ad5e5bc81413a36b9891f3aa1133420002c2c6dccdc080cd09819900cdd054d982208f2bb576a7a273dd7072b224477e482830559a96bed809d5602933eb9feee568ff73d0a29598f7294dd685a6a12f740686e327b60627585646fe6283d01fc247cb07ea71255fba021b78cce490d097ba3c991dcdab1c5a459ac03413e64105113bc7b12373fedfc3479c48532b412d0112471187150d1ed579e7cb4fbefaa1d8290afa98a52f4ca4dd7e0b40e49a13f6bfa2ac4ab7b9662a515675ce6075aa555a1d875653477b6e9ac11ad02e8baf02e4fc9c3ed456ab0f8def9b54dffbf5e5175689e09bacde933db979a7f5aee76df10ac1cf923b41f8a9d9afd81d1c2b94c175dacfd616b8325f8f1affaf1fa8b70680bdc8b0cd4c2e450a176a01b8ae285f284a0d45d82050a2b2727c475b0b3eaae265c2911cf56c823eac64a425df61134747c594eb376f0b956dade61023f380f708b2398fa9cf5db303c05e7ae0a36b7ed24a2a8c45eb66e24e11029a3c0e574ea884dc1b6edb5f741bf471990c36dea32e368d9e6a60794e58d6354463951039c70c3270573a6fa50bfce0045436a7e3a96adb7ab5954933780a17c891458957d6b263f64114a1dbaf84e24c08c71867bda96303ee2153798c57552f11d02d5fad7eb1d47ca6ab6d5912058a5e6aaae403fa5344038f1abceac049886e5c58cfc74f1a015ce152aa95054836c3be998b6a5a8e70608832ba26dbdb3fb69746172bac9e4826250cf92a40b1eee47d614b5ca2e30b310616d8aca91db6f58711cf5c44dd5abd3266a48c848bb5919596d11126a827592e4fe0bf0c4c88ed5f3db1545ded04e326741a7eda01d1b2522eee2343905856c3fe6236b40e8ce0ab9c8a669178f494efa6e8a74265677e9b4a2c3273431e8cdbe04500060802d18d9856930edf59e34cec60d789fc63462ea51089f3fd1674fee13b5f0e4b0cbbf66d8caf5f5c9b2bcabee9cf10f187b58431ba6a0b0f01cc202a38e615f190a256fd50aab89d1ad4398a24d768a23d44ff9d792bc8e0f2da2eece31236c2d9fae519f68633e9a80cce8e0d26731fb8f159ef20dabd0813b55571784d97bf15e0c177891b1b22d2429709920abbf991f7e6ec52aeb11ade3b1e343c93608322d35229c10f65bb0adbf8a52a708bb7329bf52d92710e4017b87c0677b2b7dfceb58187313032c6a6ba91ca21462489da93fb1e5a7eec5b440809b41281d83fc091338babcb497d010bcfa330ff2d3b29d50cad5843aa38f710e7e47bceec359df4d08846ce4ed7c2dcbb71c198d557e5d2913b580fc393775b6cfa2375b63ab7bc838cda733dbbdf4390adf6e7c36ab5df26b235230c2c1f3eb390cec942dd315a559fd46cb7825833ce86a7ccfe6ee73ecceee5451b54456ab0920a554d7fe13578d08c572b7815babbd2baca2e9df6fd78c44560efa279e8156f3e05cbb8de222b1fc458c41a3811dab5926a13eebb26a7a210b8682be7ae25e979c81587146d2b656b50d87b4c3bf968f86e48e635ad17bc85f50520f02f47ee2dd1edcce929ebfc7dcb31febe6ddb5081349300073dd1469d65968314837f477b0a2c4e01109669657ad22ad9e47793941a0be6a502590ba38cc13ecfa810b18fda3d7f51ed890f27ee266b074c1a0e8cad5cc571c41cc9c50ba3ed696258ede70aebf75d49ac3af5e0d8aa56220ebb720eb5b962feda39e0093b8c7b3c5f8fc9bcc0dd471b922f15ae06606431a9a37ccc4a9b848ee7031cf2ac80c6046340c50953de3c7b3f1ba45169131a807235b976dd8921336c2cf03e0719935e252bebfeebeca3afdd3587862672d6bd49d46fd20088230b82da1130eef20b05d6d4de4716c783e57f4c819f9f2876ef7aaf1e73491885f075f5318fd7ab968f381614653e1452d1cd9dc9cbf9c234ccd1e2db290b21fdb6c39e86a7d343fdf1744cdbc757d71b22bbc21b871dd68112646ee5ea0da2a7f5b43c511dae58c544abbd17350521e3fc97bf671877bbbc07ab1a54b1ca9bea24a7785efc9136bfa94613916c73d315cfef12ff5091d1e63bbe9aed926f81100be23e2bb5254cde12be3869dbcbec9c8ad9ea598e5c07e37c3a928143bd23dd39f3f48c22580b6fa9e21a7e66e36b884d8b970e54ddda959f5b9d6d4e39800d0869fe7fd14ce1c0fedcaf0dbd203ee7430d55dbdd69afa9c84790e45120b3c42965eefa2ba7bfd3a298db28bd46cd821ee29cbae3851877115a719ac1f8d24e80121d6b919655bb1a5a49a0da971170cbed7120e06de793727b68071a39ccb4daf7bd83c7315fb9aa8a9cb3347acdf74a9c275a9644e4fa760c9554d7d70901e1fee6391f307fb0784b1bf734435db81deba807580da92dbd5b66612d20ac26903f3471e7193fabef8065c4c0a2e2c81300d7af6ab0c4a9e662fa7d0121a4b09664dce034f6f170f601c87d2944c7041107473c2f81659fc394dd7629ffdd98df90151350e73adfa631d0f3c77b5deaf57aa05368dabcf09627709be86ea365d456270878042dbe1136f7db03655f11968721fc10d9fec09caa33be2e4159d63991912ebea5eec99703ce18d41eccbc698e1dc97be2abf4448199fe2fc455be5705ae7cb8f0a898193ad7fd1cac065c4fdc90bd60e52ac1b52208d904e930a406b518ea4f68e80aec9593aa8f173a8dd5b85d7d03f7460ec302cc6bfc14ce8cb6124d3a75f86477597e0da52387423db4c491b8e653e810d5d5f8ccf5b2571ad7e02bc4a0f0bb35eb61aedf6b2314af779ff17c8371900c13ae38d0c9680d028dcf1c8517f5474b139255075e9bcf1cc0f31f9c6fd7ffea44e7db3a7ad4f6b553290b61adb20790c9146815c753174b9f1bc1fe4e8346493ee90af1089152db49979cba9d25380f174857f2b8247f76035b714c72b52b42a5a27be039e998300e20d99d1d7407143c1840503128b144dde9cf75edcfe91afc90d6d97d6f660db385beca85715e3436b1d96c0b3e367de636ed65e903f72f48b5b0b25b4619e9947aeb1760fd4610f8d63f0ddae8c1fa4e57d84d1868130088dc882e61c186a0bee7fff956c9eb8c6cc2a9b64e1ed7c6d1cc3b721b85bf473f0ae5247a06a38d10cdb764e3066a30f212955998df0314236288e6ec6640a0f17645fe8959ab5956ea5e32d7ae5abce6a0419a9b7a3a5d8dbacbbc00d3caf8fcf1848140cebf5c8c4d3b1151663a42869fae013858a240f3a16e55244747b2349804f2083d7a2af0a913d6fc8e3ca33d7a95fb1bccc90b5ebfe53f4c8480eabdc905a0839139276cd47a834fd0060db8012212dfed5b5fd5f138282bd95c34d0a2fba79b6129f97fbcc224bcb8f08f79e1463f4815f98aa739de02a81b0d94893104e2d15631bb706ebd15cc877a9a9f6812a4cc7aa14914401e67faf7c57bac092a2b4337ce65f7ee4e1bd6e969df5e2c22149bbe47883845b81e842830e5fed4a7de0a552a2dfe18a43c9c574e0b04e9bce274e930e046b70c5e27ffdbb39631e256d1f42ecedba8e0534c7177641ed08bf2125a2f72e7fdacf35c2ecce27052d112ee3a91db60e285e1d957ad8e77118be02987fb38a5d9ddc98adb674462cac71cbfc8f6da216744916bf9b36f69d050580b18f2d6d768dd3df7b0c4553ef9dc72bf55491e856957408cc72797263367caf7187687299bceff075e67aa64b94fd5072976127379eed3ea72fae7cfc69cd0fee205ee50d4f7b056fb31c2d5f9273fcea860c10add9b15bc8bf22af3133ca23ad519315863ac31779d397714b5ec1e8a153cc477cd306398648d4f116a2cfa78728236c8e3a5f9f1d1b34dea983a501c9de398f3c8737dfc09a61ad0f64c6b7d98ad34a3fcbdab1602c97a66e8e5978d18d8aee432db856d389f8c12689832bb7671de4c08dc294d375c771763e7a61bc208dfbc1f83ada6d9cbc42f901f8dfb758eda90897149c7d9ed23d18eaf72f901cecde31043257e3b6cbfcf00ad68163a855647357ba88eff36d25a22354007f19bd007ccd31ebe193178f8c869c5d4013fa52ddd915b6c655af27233cad0b66e1ecda3886f1520c1890f2952b9c3617e2a0b2397046b9792ce960eeefd183dff6486ced401b06905ee7534a0fb9f52ccf33ca45b77eaa6e7feba1146161f946fbe8764732e71939c427e52aa5164d3516b504f2a24e1163be740fa2c45318526f6141f263bb9c13661c0e8beafbfdb2d4dabdecd15f85268a9dcf9f67c1f70596397027df6187be01d4e10744c27af8c8ae0faf14101f6abf449ed94c3de6d58881911a46b3b9ad4c4cf696d24e6f7998b4584366d995864348311e176634f4cc320bd63e5b4cbd947cba8af227b532d2b344a2da4ae3fc4188e1b645f45ceae5203ea0e314108054ea91d67be5d623e63dddffb85a7648b9cda5f9b10910001d2f85a49b59d72a39d6c95b675ff51f726a19a42858b5bbc6b2892c20cdd176ade871e730e35030d64dd55f9bc7108892498a0df683d4ff5f5d88364c209a92a2e3f40edf9b20016fb83954dcd09528d377ad631f34c8352382cf9fce95a462ded482956f09362bce53c0964bf746a1c55b4ed3c09628ef5de9f128028fa7df9435f374301757936878f1d09925000cab1ee6b92d6f76b1351cd7f3f0c1a5b4532414d6d747a31fbd88586f2f51bbc3f08b2865ca1f491a374206532a2a14ff692cc25bb4b5826c7fb455408e732ac73bbdcdcfd0f0c252cb828fe046dd04fce2d68728cf9d782a1c6dccec140e1434a335eb84e9709115114faa5aae56dfedfda3834ed9993d1d830a4f239bd86c49276b01d907ef3f9b499d678f14a38230a1027a5d24a58bd7c5183d83465cb0636a8a628548224164992ff0e02b68c116c03e7bcaf1aa2816403a9f1b0ff996169793542ee8f7dc8830a43b966524920515e2fbb245e89aecdd66e7258c470260f6ca99ee29ae5ce66ade1b41857dbd3a94ddb6a9e224b6ac7e1b04c165de434d166fbfb1b9fc67bf3d6499cef8dbcfd1f841684f481f71a32272767d771daccf127e2b5c10f4ddafbb54e70d1d33624d70e5d6209cb64c23f08057d9005b9b15bf03e34685c1037a8ec3fdadf747688d9d88fa3a78e82532232349585050fd005ac02ebdc80e3acfc627fe7851a6b8f5fd6570ce1a4fc07d44ded692658e4c3dd759170e337b76f4d08385f839c9d6c9f67b58660472fa797e26a2358fb8988c867e42f511ff97fffcb5075c55a05c3102132a30388fdcfb1653a12cface355e88b56e86c8b2895ce17ada89fcd5e37041c4f361c6f6c7812d465075483009251cc2f499084456045e8c99e57cb8b7dd3ac16fde0d23c3211fc607d59d0258d42d6a0a9050cbf10b85e5f9327b762711080da7652c696e977a2a2cf504977856cb58c7ab3e8aa3e93572f213e185f02261961d039cdc2235e412e71ec409e0060f368fb21ff4f652a2eed8956d9ddbe51435cbb46f7f6765b79e875bef959069a5c6dd72203b980958a04a7058e01a569f7cd834813abd916277f63e8d9c0f0db831f7c4223b39028eddebf279c0a4475563e7b991cba42f516eb581bc8bdbc2695c27ccfd5c15420dcfa7b20e2720ea44aeefcdbe49cb425eca8081b828bfa9a31a1f450a92ee273cd825aceb5cc1418040f742612f7580e73e64f2a040f271665adae842920b4dc555416ff5cb44bb7a43fdc7392e0c50d613a0315bbdf9d8fe72b5a94050559b1135b64a7b12a44e1c286b9f13c59fa7256a8b1d2bf90f5b490f3e26eef7ed2779e93dddb5d252c4009aaaba6f408101db87426cc18b6c0e5065a82681e7e49a2d65a8fe87908ae0c55faf114bc5daaeb5a861a052e306de82408857e6a88cbd383ead862cd0d7bbeada6c61bff0f50356775067a26a8d41847a7126eef3c9a16f3d68dd8cbf8cbcd865fce9347af850d756ae08d4bc9be7a019f29d96d04074e587a86f1c55ede38ebc4ace807b9fe08937314b3f1aa178c3dd3150e567033f99fd1ff67ed1014a807801a5163f76a5b74662be93cd4fe9663aa43a4916232f83c62bab4eccc586bc40c98b9a850ea76583a7e28d261feba413d291df509e535a9484f6e31d4b143c464f9078ca233023951ec800e770d7c4610b767a06937171dce7712145fbdcb66727838b3e8ed23c01cb70c459da267e4a1ae80b6c934e87e2d96b8dddef9d5c7ea5fe70ae927eb8a731ad8c01e0c50c02a59d6bc9725d7494af215c6870d08efe01a5f8ee8c71cf6a354ef2917b161f875c7e8d8b99f807eb788b9e0e6a680e17ef610110b94612b2ed4ae68b30e3bb0f76b2c4ffa29eecb9a03d90051c3183060064da680159c192d457de2c73a0db2b497cebfece600baee9370969ab0344dbf6925598a18a961cc1611e2c470dcba2030df3e34f8143515fd102301069a9484d5a596768cb530da2e0c4fb983b49f5245c5824efb74a1e62379df980b528ae83abc603026691fcc095f5788c0c65808ac37a79b54009fb3677f41cca594390600f2e85b815bf643af1f1312e601f4e598548dc351040595d55f8d2c2f1628ff70539667adf7c8e5d0a22bfeea30d1249b548bb35a0317cd656a238285d2349174d37227e8d1e7485a3be6a38eea929d1b64c431f66a1ba48c43d129a661b65798cb23b3f31af3d48651de1e2065645a08fc3dafdde35628ce27032dc033c98e12a23b341199856018a134deef9c24fff2513064c1a930f6616618383737b4404fe8203f6643d4961c7561e76626da91cd9e5be60e97e8b746cdf8b75552fdd6721e955006e78d580435b3d72cc62f2f200d0c39b59b2aece20c0a543cf6fdfc7b119ae24c0e4746a9d9d54d3065bd86401ac0b931557ede09b5f654d3d796874fa074b94d360f927b82af2188e6d8fee133b9deb2092dac321cad0c8e37b0f8cb4533a53bc33fbfb2dcf5953019f03f418b3426da0729e17c1d7844feb8ab963a37e5d207546e63b14ec015c0c78c107a8a8982ff30c68aa14ae11b8929095d69536df078be7332ff98a754868a255c8fb75ae4d76f6f06f745a53f47c5ebe136c78debd0ea27babd7d9b0ca7ee3810ec94bb842d18ba86bd5a616569487b3e371d1d6e2e81b568f32a152e96cafbd45365e93ee9022c34e46c158d126dad9cc79de65f8f7876d03d73dd4221d64bbcbf3ec9f42a742f4ca9f6ac06d19646be5a544014d5cddccc53956996195e0b22783becd1d0427ac25e98c6f8fd74fe0bcfe0d2531f83c06211bc14f409680b050151230341b072c97404c4fde8041f7386d160085e630311c6c70955cd7cbe9d60108d2f671643cd748a373ce6e8bd26949fe406476ca91874e4df1cb10d621039f89c4f5c57e5dc477d736bc84300a4571993b26d2fa2a98f41d7d392355312efffeaf0561d275cb8820de9579b19d3b8800a6605afa6ab22bbe8c48604389c96030cd7cde2298fc3b6b37d0f2064da3b82199ed017b4705522d549fa1764bae8b32addbabaf8103ebb97c9c591d77ff0544a05bff738dc0fbd038932245caca7f53058eb4d1c9320dec447be982606d727b6215a24d35cf149efa156b50fd38c94979b6772cc81094831f4a197d9a6e42a67ca8143a926cf35bf441b1fd6101ab63ca81b3e1a4c0f6bfb7d2baae41230942eac2c2e9c8391702a70e401fdc43f9e77ae26a6cae738b9b3d2fbdf815c719cf4d3de9a924f8650317fc4836aaa1648eec5572244bf6c7242fd29a6fd609181ab843061a8f61c08acfddf18a8a1e19444b0166f9c65ce0c500ee96d641a4fe20d9860f51e55a5994f16d36900f51e6fed329f3728dc28ff201d6d2a87967b03923bf9464c21c6d95d72df07fbcdcfcc19fa1883cc62acee0cfea743b7c2b868163e7e9a19ab8e78b7637c3a345072daee073f8bc3e902a7849df517aa1f168c5e8a837c22216967ed73efa3f86ef62f7cd31b4185f8a2537466e83fe7147c1421030b31a4b808de6e64029a9c62b7e7d4787de40a362f17cde2faf8325692f10f8fe8020f27235e2d081cff1307ee8d15d7b97d7573cdd81e38ec1d5756eb95548fc11ce8c229afd89ef9e276c5853bbba3577d2571838fdc5e61418e843e7306025326ce46902164b8b51d72c05a81eef21ad82ee78a8e9a9048daea5f90df193283e357d14eba832b6904b5cc6f3b61652ddef5b6baf91696be878b7d4f7a923218dcd2b59ab3b9b3e9072f54e3802ab2ba12e45ad9992cb7ec7ff47e0108d92e908e90b13b9fa21e8fa6ef27791c84fe0d59c99a7bd91b8694a7995e8243077580d3a907143e42f1511730399f9e205b582fbbff0453ea5c726f9217b7220784efa8abfaf1268baa5ea2a25ade0183fce6aa2bc9c407d9352831c2b046dca165702e19471ca168097af9b2e2f122dc95873a30f4189963d513df8dd7e9c686c2fe50efffbcae93516dec307aa84c6fd4a3cb493c9896f8441538a3f099c1bdce9ec5e5482ffbb7a229afa606ac9f7b615a1f13f95a50cb58d7e0c2552f1e73ec2498ecf58d19256bedf1107fdc517cb844fac559158fcb90c74da69503b226ef65f42cbf62487ef8c926a8660a9b86d6100a85574ee7f6e66de367b52a268958ece87afcbc968c955ed73c0367c36e1ebecea29a5e3480f02bb4549308cb010ac46b2aab79fb1c3bcd168b06071aec294b1af50d5fa798fafefaf749ffc85051786d1847ed282c6bc2adc3c84de56cb2cd415c6623e5157db6f9c855935c2772a4a218c79e41f14285a9c0723358cc27bcb63f57ac774428f0497c8b156c2383382831615c318b5948733d813401a043ab424ba2b6bc97fa0ff193755e06860f7206f7f105441f3ded9f04fbcb91d6052507d506fd1832f9925d6b940a4fd2abf8148059f190a135892501333511e817327556edbcd1719779d9b8fc499afae9ae9fed3c2b2c664dd08bfb6dfc00b911613f38aeafa62353ddaf883242407897367469027acddf572451786cbe697bcae382254316c67869f4448fa4b2ee37bc19bd476297ebb56f0bf6af734d18375d0805da1d8874dea811466c884363238bcad1efb5cf8f9ea2e30c112ca5ba514cb9059ccf0029ceb75e999273564c6d66deb4b61b3d54fa6a167d1f83816747077bed8d0d0a1dbce91bcbaa64568bb5135479b0f7641d4e1942337b68111799b05e7f52fe96e5f46ddc1bcd4630132b6e5877b369ecbec63e2eade39ba6b2e833a1d333392397551d1162a895efa5f70e9cd66957e2bc045b5cbdcf80568e721eb25f515e86627f96220e82f0a8573229bb95d952ce6fd3a56a6df3a449949651e56327824be41afae8db13c71ded715eec1480a77b0553eb6913d583c862fae3c8029160ba69997143b03f899b893b93ad6846b66ae24785a6213d226a7902eaff4f97a670c7361b54692141d910c8179d4a9b61a7c1d254cd7b2cc40a410cc89ba7bee5a124a69db4a24297f24db497a4444b170c52b8eab8eedcee25baf396f8d042e6f51bafb5584915471c18879d1931d666bb29b436055f319a81a5e2837ea7ea44f2b10b86ce44a268a12e3c30090344a0a6f8c6925c6f39deb8fcd345ee65b5d5e6b5d175c5fb0414ec4a48fd25d2413fd9ea1a93a2b744bf1facf4cfe59bcedbd1cd951064ede5a44d5dadb886de5ca6333b3fa8667c36adf322a5bf21d22085fdd8aa2da865b93cb84f1cd67137f6ea5cf095de15e4e72dce3b5a46b8bc2327410597e67ba3e7f26f6162ce8cccb73bcdb6f175355185037df2fba64bdb243030c28e886995d8b1e23dc8321a683b33c5e7b426067cfcee6376611c7bbee211736882cb081d4da8dd53c64b81bf1d7d8e07d6e212d42d149017fe030b1a04cf8b7d31af12909c70745af8e9ffd49021f8b506dececb5281115895ef62e45fc43e449e7a576f6ca2da1af9de65c7453b1f5a86b1ffdba19b84cd72b67e9ea8366a3d1c926f566e1b2ded6529a52051071fda227a610c0155c7a373b2da3aafa109864ef91a2d18d201a306e3c67c7a2d268163e5dee0e8ac0f2a1245f0e57e89b403f1f543093bf1ef740d230c6912e7fe744bf23a5195f7e2758479063d2fb0fce604adc68b78df802839e54d6f2c3931f4192b18dce8085919de70375346b6a2d96d8ee3e6e817b4f21f40b5bd82a6755fb181512a4217567a63530d73bb16a70a415b332ff16f1b260f8d7a5510b20de500b5d4a628a322d7ccd52cd0039bddd37ccb72bfef7db0a76890fb1900760884d89c7444ff5d734d6caa97a199ccac85630bf6c18d309fa8a97dba19943786237279aace7c626bd5053151f1efd7774b91f4dc7d610847952acb66f7ea8b8f891ec36c02d748973d55bf8eb705ee383d1a3fceb1eda53a27b925a02259dde59a0e373afdebefc3e87eb8d977614d21c99ca627e56f1d59469e7b06a60804f6b45af12cc3cebe566b00a3ad768f96107a8cd7b5445b41cc2f6f95ebed614c6de194d7bccd8f0e3967908fdfea29207caf485df660676ed4cf9f4952c464eb65cbd120e32dd193ce3bf6d4f113d729f42b3d763e4c6b7e58d5f56a191c87258f045d3cb8121af99ba12e84c26a166ff66411200c9eedeee427f613b10a5ec75544e10df83b3ddd7dfef6e39b6ad2ae64547fa8631448cace5eb2d7911e8fb8607de211bcf8943bf1eb68d893bc234b6ae30f519364b58d3f6a7ca90e66580476514025e8f942da5045b223acf11cee45b910ac0ace4e635870ff3ca7e0289535649c12cb830bf2c1fd0f09c822045d046224bc7201f935fbea7c5b8e1a12a9b74a7cff84570d83aab3e0242be55d774d4195e5a62a5f017ece41986fc4880ab6f4f3f1dd1175948b716e79da7d2349fcd27841096542613769eee8557805b7b908ac1ad7ae9d7657b0799773fa1680c203bceb261042ee72206ed9379ab514d9869442e59e27374c16c470059b0eaefab4be32a97b1b2fa8818d3a3be35ddf437236486eb9ae68ab9a17722a2588bcdc87d67befe0a8e94334969bcb54256ff297b0ded294fe18de5bbc99205275f9641bea59fcc6ced1f55e729c6e2a1996a5a0bdc9ff627a26ca2afa09368563a0d3a3c82f247c1ddab4529038364cc87ce258cc7c8b365ff0ef528e7944ca623820bfe0ced8be26f4a1b8d0805404db4c61c5a61cc07c7193ff958ddd5dbbea6460b476be84b2ad2dac0092455f7d6908a117b3e6526bc4b2942c767f8ac612a019bc244d09ca7ef6f4c42a53c21a3107231e303e0c7a1a7f1a77229d7688c331a7bb69d42d30f805931bc2b7891e1e184298cb1e44d52be084359a1d5d1c7ac494ed0b672d26b42cc001c338c17e3bddba3119028efdc174ec0d359254f1e8c15430342e9a52615a5794cbe2c669962e5e7b4a0274ca9a4036162940a75d9392cb06ed80fc1c23ae0bb2bb6389ceac0b3280227c2d08f12ef402e9365a3446bffdef1995180f42fc3c1a9e93b1e3c1abca933b8f5583479e834b9049935fb3bc75888dbb1e4c89a546c5db9eb1c0029bd7925d4a2a4e9d42ae3d72c14b043ce63398a9fee381d73185bbe4570506b460074b37bab0cc2a5e22845acb2e04735f36f17fdcce5b134d8bd57b67649b286daa9b71723c2eb62f544b4da1d2990a9f11bd12190c7e565cbddc6527ef01994ec75fe8f31272dd7b82485efad8c38a933195475f0ef69281533c00e15f04e873476dc758bfb6eda15c9470c2d169ca5a091b66ab263ce3f00e9f3bfd1b12ec947a6c9a574f92dad2139f3610cf8fa9f088fb3e3409cdf8fe630b5997f0295e7ea88bd331d5397ce14aa17d229b8b03d68c595a6b0e47f8d2a1039c289f3b0d97439c38d2d89cfffe65617559ce653abc952129586b0e11d28c375df8c94be0c274ee46027567c97be4d0751633ad859bdd9d359fe088caf191ec43500cde4e24b3872f8ccce4b6add2745bc5c4cb952a4b468112c1503d5d108e1bcecc300af3f001d62d285ffdd48a4795b599974f57832d5c2d6f3c28415e10a65ae8d1d37ff8287c626b7c9953181680a1a160b372d8e7820d3b5e1278e85ca8aabd0d306f98ab667a1e548e29f0442cf86f465c71381b88bce228eafa40ffbbb0f6d026ff39e1a90498e6341e86b55125d67cd83c3ed662d7378bdb120035e7b75e2e3e32168afce46e15492ca95b9d69db77e069652d72fa91c4e978364db3f69a0ec1a6eff7ffda68db5cf20039240f37f7198c7a4223da9b1bd8aa2819a5330c47e72c9d87a56b7d9c20e8b848240075e010df6ddd50e4c62e841bc0b7d4ddfcd3298bd9fcaedca5bd254329d4cc5e49212e944870fa79efc1ede88e8437a236f068d46143619b23a7467744b655ca460599816e09a86321d3d5495c3712109a1667366d37dfb34445c27a958eac26a2f9bd599f684cb7c2ab0ba535dff6fcde6ca99aa4a98e58ed724bec3b1b747d28b1d385f6a09a5438d2bea724d92a0febc1d9bfe0919a1b1104776af73301d6b9f9ae56593e234becebd1b9b0f2c2e01cd840f25b43945162e1a531f11fa8eaf0c8eba97559b46b681a5284d479b7358f2d123aee10ee1bbf780f243d7d796e11980512e2859fdbc4e62325a6f395c58437d65290d9c48474089b4857215bee78cfa244418515d000a6b8f82a2a200ff7bfb4baee4843b235936ded563062dc85a0823c3162ecb5371af33699060b62213ec893a4cbee35ae06e70aa7c02b166921552d70c44f817596a90527a76fc3e77991c7f35393825e8a09956fdeae8a6f0eec479cd365f44c208f66aa15837fcfca1b548ab1ce4501559f4803de140cddb7b0d6586c703425995ce074875fe867f354e8e30c9cbbe824dafff91ab2e062211b00cad3f58ab004b2d40905ae1c68ad4a7de8a8747ef5b03ab5b4c5ed789cbaf8716588f7a6f60fc221c413fd43c3e422eb65499ac5c36aca9f25acf51d1d4c03272f16094fb1cdd20a774a299978f4663fc92572de298a916d8d295d77b9b9fb9d512f30c4fe4a0f0c5345af53f44567416702f51a241d23b1c22f7a0a62bcc87ea122d8269ca6e73dce5839dbd9b82003ace00472d19dc1a844471642cd8d9e5ece4e2cc027b076958bd5940ef5e1906edced959c3dc4d9e7e82985b6dc9b492a88f151e1fa84cad65476f5308defb24c4e325e1766c4c310a4ad66a8336e40173f04b0e559ef033317ee6936fff98ee366ca827b6f340a2de64a2edc601257481f19ca2a3e92c241c690dabe966622222e0340a84d8bcfa0d52703177ad5cf8e1c17bac68fffc0f8008795791d581cf316b33154fd5549616275860e780fe068f36fe69dccc51950848304a94540e1b7141eba2d5b7bb823adecb463ad171d42bc7d148cf5203ec1bd881491b59af6cbf97c253941ad53200bb4f3aac3f3eeebf6e1e2fa1765870d3d0b61782d414c9abfc04b10833cd73cf6c5888c6d036ab95d7c5d4c3fe453cddd3075d4a8c4d33a631526a7928c370221acbc791c4c526af8184d4e0f40e9215d3f64f7ae3518326b18c43b349c373f5d747577d034e8cad1e6a6b2ec7b7edc0e46a694ce97477a40b0567c6f1e0fc87423e68f82a12f6cf98d11594a2d6ac80d26ee86bea9cd127b732a2b7cf660c4a952e35ba5180dbd4826e227d9b0966131a7187b89fea0976d1157ab44d83c6220666db3a5ba08f5fe192904d21f755dd59c4751a1562a75f01f3a3a287fe4623cb69443f1293d33432f3ed1a29bb5b5bf1c78c446eff8a618d10446fb075f88f2e3286577cc2f7146d7d39dd00587727817a78d7316c142fbce32a8c07e40376eb28332a943dbe6cf1eb2cf3906abc30e7f6d63625f63343056634ef2649b20e93f4392c14a493069fbbff60092bbc965bb2e70f21bbe5a009e6127f61815d3469d4317277870dc681a3cb60f3510f244493d922c10a44e8ad3d512e4eac3e2e5863316b9d77a0a76469d4834b15b3cd828d1304b5f47ebffb494d1426dd6a1e9c20d70a6911cb19e70f002efebd3b81eff88e76ddb964870e1fd98120e6b291cff8f9ebc17cba3bbeae02b70d8c426d916359212ae41b2ec21bb1b64c7b7be22d8eade3cf45a726791d7406b9659f4366b4d4659c000942e86cb9941cb0d7724e19f95cdec4cd0d2bfa7da06a68c7c4653a85f9df7f57e6ac1d2c4875bacf0536fd026abe878ceb6f00f8708df16ad1f99112fbb1bab28ff61ca559446d929974de1641e4a8eb4bd64e0e0ffa629f1bf110f19027de25d117ff353b1e6eb46dd7f0cf400641ce31167f03ded508c603381d7ef5b7cbf98ce1d95247e652f7668f05821568024062e6e80ec313d5b28883ba04f3b6965394b1e273b51efd9d1b4fe36656c2ad6baf84167839807ce91f1162e067479eeba22abed442f83263e54d06284247745e5de0afe266f8bfb2682975b92bbe5dd57397e6da105a0716d3c0361b989b4df7aa20073a475344b9cfa1dd733a6f17e2a037442dc8dfe9633f068dc2cfb1032301fb6021c3b1d6e013b42822db0612940a654a6f459bcf2be011d437dc04ec36caca93acf232d561753fe2bdeacef78b7e969b08a5dbc66d07d5cd87f2234e0b5f09104049984b6c65c70ab2c1ed1626dbdf6c80ff2c06c8f2b2cc0bb41b969440617ecdd44e57bafedd44316aaf7cd5b2c1a27a30e2e4d5c301a23db608a7d9e5ce307b5ad1b6b0c55b6ecd7775a4472ce1fbf09ab7d25cf21e3410acb0a8d71de4e4337f6c8e8f854e7d99e82624300b41015d6a31df3578ef8f5480343d5833ee1bcff473f90eb2ce45671e25db70869aa0fed27efbfe9492eed07471241060e7198633d46b4ce0e6e8886ac435cd7753239ec9c593a8664fcba54e732b41d4f3cc1b63e137365bbc59a11afaa608b74c0ec60216e021fe211cd3925ed9accd81e635ceb66335adc398d0245a327f2e45b7e3b5555d7653012ff79c719da9026b8c8a8f16276898187e09faf418bc2e70e3c130e19044ea7d7f67190d07848afab5db33c43701b9df05a6e600027b3cfb118b50aeb092be431967aa46b23ab39ada71f7846e719836266c1df6f5c2b011702f597adb0ab74ed2ec7d81f8a8dc06463c3da2faf2ab1e20d2d0a6efe50862c0e44fc030e83a90e8d31bb00567b9f77e55f10d424e1a39f188e83b6785d901894dc08d4c904d56c00863afd42dd2bf630198f1d52672135034aea1edb1c40b14f4018f253bd976cbff6cafe4944227448031e24bdf2107225f0fb76b2a6aa84c1a064909dc73d68da5dc13f0a52d010e1dce8cdf317f98580412ded40cb893d5a6cb97fce1bc76dde7bce7f313e4ec6bdfd23a3ed5c16b1cd7080d1a6031c79248369716ac6b4da876f46c1559faca16cdb1ab7a8e1dd0b29fdd36b6089b7a7e9eb4941397820b4f601e8c2086783e484c6738ae3fad9320f83e27fe3b9994b816da2d7691576d72474fac36eae6ee9ec6100482ef388a94f42a1eeb6499519b104dcac49c34964e083247a3f93ef246903e3deac86188d16041d2db1ab2fa0dcd2b3d4505d0592fb04b96dd5de992fdd97daa27177d10b36edd3b287814d826cb01596a402d6fe5a2780141ba119c7f710237a3a39b085bf04272529ad4c9e1af8cd809cb37126b8ea1cb85951abe788182bc8778947fd6939ada9810da361d23839bebebda0cabd0c7cd6bf573c0da41192fa2946dfa521bcae8726345dfe9f277ca2cf812ee2042a79fb26c83fc2e33ebea502f18a04e0f77f5a78dd45208588678871c9e79759ef263ebd05089452e15062bb6ca06fd0eb8c6888f7b5af53d2dfacf55f27d7209476345dbc8ee265e1f1a03b2565b5249307be7256837e4cb9b866bd6a48410cfc68cbda59a0a84c67af61d58724b0218c5bddaf683078be5c7667fa28f74ff69d4e05d9c46229fe88745b0e3dd950b805c50cc54008fe12f28a3a7fc2e904b40dbfdbc6558f9be82284fb02e9b75e9adda91b63afb90c4a5bb8e56c76c946446f9d0e38d0d408775109dbc345f403b896c81ee69c61b55a4970a9a67971dc1f0da3201525b17db426b69a0a4217fda8d543f330db39e3ff72eeb293b61d334498469b7ddec2317fff10ae59727f1a1d57856a16aced735c4185b5e1a45a4cdff29b7627d8196f6f1505bd8904f1b4040856e1d9db37f980aa9150faba38fb01903c5950ff11af35532ddfeee971d91c221eb069c1f5092f8f2a30df2e7a21218661c195e968d81117775fe864b54026b5067a057f745bee7c90d99e6380fa71f2ebf212a5c8e0c896c9dc3063028c93a21916a18bc79e4e8052f09d9a3dda80f2a9545f58c5e3b96b1af444b07bb4305e6fadd5dfce8b06433d32ba83fa771bb5f799337904105fa9ad9038d7b450653fef7e15840dd88a2126d1316444994a463013d20f3f72005cd4df31a542537cd3d0fe25b23dd5c37e7eef6c756533f2b490ac852a7436f3e3a1be90dd05241e7be84d14761ca045827eca178968dc458eb944ce939aec4465c29211434a02a84a7d3fa8d0fb775cde2a15e3b80401f3695331cb4b1d916a780bba560078145b366968cd442782513467230abad0f0b7d169235454278f8b609402eaccdbd61ebe4befa4a630028375c514dba12826c554147d4a798f618adf0d8169897b35f41518f253917e0a9312b7c470b92c214c4a1aad37a58af09fdf62abcb49a8cb4aad228af9595c6b3c980b1c971f69ef39071fbb90f1265a986f46d7be65be7a79c923dc7346d1a2a8f97e641bf0f9ad16b582ec95c78fa2bd3e969c2f71388218b6b8b9a507c76f18570ecc63a205daf9c47ec4426bfd5a5fa904313e34c54073710b8da3ec1270018dbe367c8f8e838fb351e102ecc5d3cdb2326fbb9d5848eb0e2296964778ad2e72d71b10200126c7be77db33f868c6e0c1e13430a277340a772d5294e438d76a41b7e3f2937f2f5e4e9457dcbd49b0ff228bd0535c5517d93c02c363d5acf05e6f0d9a3bfea889ebe3ddb8909e3b556459a1fc6d694713c2b55d2925813025f7ee00a7624363b70bf0579c1edcf42098f26b3779309e054daf421a3ede5c2a06fe62d1e41cb0c62cf74592b8ebb6917ad4f26c61015f68b113e44809fe4e31e3c7806dd58f124093b99fcbef083e2cf9e4cf8ae681e8d326ae55506714ac2d7115dd9e94e0abf6063a83caf0c75321162153c57988a9ff299466775f73bb60369d0f4f36b151a7ade05d2b058bea5dbe3e3e49fdfcfdf1da4dcd1f948d41ebb5e601d499d67d6e5ad6f78f0b2b754817bbc7ccb8aa18f1305ba9abe6ed1f42c6e59c0031f9b50706fa10ab06b4f0857fc8ba36f8c7d17540f87ddf320acb570ad1d34190f1cf1eeacbe5bebeb328a9c93655b49cd248daf695d5e6fe32732c12cb979f84cc0b906853d1c31b9a66c3c5eb93297f9c83ec83223596d5579afe5b05b3695564e61ac7c15fd0e094df0addac6651ab0d556181ffe868584c8abf6504bb9cc60b057a60d921b234955036c3611a47856954b2afb7ca1d940dbb3a05904d87fed6445fefa7903537298186789cbbce3969c66ee3161ff46c02c9091bba2287987b9c6dcab5f6664bfb145fd1763e56aef2d5dcea69c115f4ed8dc6da367648079be0798cdd1bbcf00f9c6effe70707d45470e8c0cf0888d07414d58adf59d9810b739de6a980a9645cbed92d73c0a17cd4fb9f19839a965125f9ba6a041175f96a5b9e96bfeedc8d72c3659eda0615e4063e55ea5f5f31f483fb2cc9daf21224099a72b416aaa752f1b8030a280568702561e37ea483802f453916fb419e8890787ca5e6c9c1a4c155e9679c6daf7497bddfcb0f0a2080cbe359a524b1b4b1fdb582cb88acd39a909e17d8e6acf100547ce3bc59121804817484edaa8260b36d1745020d32220dc5df213ce93c9974a2b965285c40b618dcc7d46710c130549780c4018468aaf92388fd59f8f6c49820235e1322f8cd96ac00ddf6a6f77edd2dcd6d5dc26592a741792fbeda84975dbfff75af2ecb512ebffa37e423ef369102d99c1de27c5a3861b9518bc7fcdf038ef5d30dd24abadd5dc674672631cd9f8fba97f6370bfacd92709405799a2fbf54955128f2a7b15a47ab6d1cd2b0528b12abe2f4c4165753fc595603c4d12953f0348562ccb2af189066c90021ad57f24e3278d5403a46a39971ddd129a62b6126fda5b894632d1d9ba26327010179465c7d7f067053f0101faa0b2e6ceef89642be49c92c14cbafe062f029e167858abfbf477028b69e2c5e0c2bb6e7989db76ab7d82fa75d7aa89d84eaea9ea168be5acc19e67eaa8de0ac1f274741c55db1e24f3460ba97986cdc46dc75b9d1b3807bf91b4fa751784949bbe972fe8288e81a0a0a8c4dddabd8b1e74fd3414e72ea8525e7dc33e585766aa057ba0be7325f2b49d16f2550754d496f5e86f976ae046107d3273d46e639a5e4c65b6fec57222400762a027a34fc38870ba739d15103df5ea804d45c4afe3ae82eac135ec364d142636f3728369ac07e9476286cb2b9b508a2f0184f78a63cc7e52534b9940ec5d6d4c0a0df1f2a7552629af4bd5c670e5cb5afa11ef6f8d2cfb2e726e833f43b39ea9a430bd1842ebcc8a46620ac063a8588e46abeccec17f4ab3fcfcad0a98148dc3f0675761fa01b7e3ed865316678c7498a3f6a378d301d666c42ca51ff72828221b56772914b716a28822d7f9bbfd8208ec8ef9bb896a6a69af3e1bdb8d61e16bd21a763e703218655887598cd23fd530c7df66651b7188fbbffa46f30f58eee7158965931ff0694472f7b82bb09d751194b01740b788d20bc95932db3caac280046567ad5e60946ac976bc5e8ec2cd46902e916b49563344cd0423a74c20b85bd3cb8c0485146cf1d102c3882a3ae7bf53ad809160e2bbbce350b0b84f8117a459fecc643cfad8122e60b19b4dd07124e52187ea5a509946a532ece903e69ffcd8e28f23e69c4105c54f7be69e53b61d541f61ce3b245f9deb474598ff3b7dc0aec7fe89faa7122db57447224051d21634c1114eeb6fb3f179e4142d947c8f5f8d6a1fcb8d22cd4120e6b9664bf8e16d672d69a85d2d841296fef4327c7f558daeea2a5066da2e37be3377b284e02195cec0e1a9babe0b8753bfb498c1cbc88ae1027b411316c2b9e3d3e41397cc473cb71df9647acbfaf3f67d4cc25bfc4babbca6ee6fb4c0373b2cfbe7fbffed5a0511d7b27c932591f3e8adf1d213efe433f8223391c84d24a88fecb28ed74177234f327862b9c4faf3e9a843eb3fa19509e1c47c4611db97f2102bb7583328ad763b8a449afe2f97a59fd7b4783c43c5b3fd881ff149d71b0bece8c27f2991668230f32633840b7ed5434c50fecd7bf1168fda5d28bbe1dd005e3f4a7376663f0c28527341273295dc73949f6349761620ffd8e9a1dd896ad55432584b23e9a0eedd1e00125585645b739fc73314ea0a6f08f926c3fc5da5d9d080a73a48230a379e9ddc26b1a1d697236f5e0084f6cf31512e97f9a1b8b9385405a58139acad5b1ae9009cf85ba76e7505bf6ec73bcceddd4c2816fc5baeb079d90a748733a9b4cb712f8b71845550b03a5c873808739a1ee253976ee87c429376625444cb944eccc3ac63ca5cdcc5beb91d9315da8d6d15fee6363c8c0a8642e97ee81b0ab2aee7565485fe11004e921e3ad043831b0dadccd0a7cda03753a7bcb508ab05455e2c119d5e891fbfd595e2cca9390d0da480681d9c45020b5506a63b42a50faa4188a5cbbeffeb79479563d8ce97a72f6515b62356319924892643cc60c0a44fc265ed99d73b1a20f41393085f31ab3b80f71174a97039486211fb6a407c22d88e537aff9c8a14fe2fdf1bbd9bb6145b3ec2345aeb1bc865d27f6e4eb64bf6b0e8594927df3975125116f1d80b5b4b542b6f991f4b6d9abfab3172f8466665181f764fea7e19b919150743eff575f14af916c23c7d7b1a3c8ee14665134f1b390ecee8bde5baf1c78adfe9c2a4d2c8394a599fe658e7dc1691d6ecb331b89a96365188d3720d2c918086a7904c687c7c83030133da7b4ed65b2732804b6c23c8356c650de947c91681b1bb56aa05bbf8e942c18d46d8719861a585ddcfd42e25d491bce97ed74cc9308d66a8ea9e0b0a3546cc733af810b856f6000a856d04dca776b679176e99f55d457a3d641268c1553da29c9b78347e57350c657a9d6b9429873fd432cc6c51b57568cc6e729c413232ae04fa21173100bd17ccd40510ca64b92a86d6e6d4f5a24c50be9153bf669a1fdda0ccf235c1fa877d0c3526c72ac6c88cb2122e15cd98cc6a6f073cbff2de120508462ac44656b88abd6ed6c3cdc498907b8dca2ea1ca96939e70d642ed6e1a537152d7e1959c9e15b0b4f4344c020a74d9388a9f5e5a5095cdfe445a858b8e3faad4a612180f5301b391cdddf2cf096e2d87a183bbc8202cbc1f64facd89e9f8f1e8ce01727195dc33f1e8695444e170544b6bedc49659c0178ec1bf170af2468c89865347419efff4a79f5cb29e96dee2d23ed1d8fbb9295f3bd93edbbbc434ffec1d5c109a9ea59e323824293fafc10353063896d41986b5c4325b742992b2fe65b0ae8bbf268a6e182429802ccc2f0b84f0fd295f91c430de6ef6ebe1f5e48602a676b006857be91e0e4f3318e1a08a1a2e390ea9aa86edec69b5b91aed81dba675a72c6a03e2032622830cc037261583ef8587cc0dccab26059bac684b11a898b3c30f1620ad88699c4b198d8fcb84e02d8c0f2c89aa5e3bdd58c184f0b21d78a711ad05af23e4351aa7b995f8ec86bcc43d38f684338244c879aa7b76551b380b02b1b35fc6a98ddee444ba3971b4150f890df5e973e11bf862236d6063f21f10b8bb70c000dd0ad9cf5c48f8e9c4fa13a0d462767863fbbe2b1434cf1f4fbd0a46a41ab4aa16d9d92959e589813c55f836e6e8b363a18c6f4d5c302466ffbea9eec0b55fc5d754cdefd8e929c03f8c247a78c71d2a99429764d501f60fa4d3c3b9a2e91f132483daaacb01d872acc2fe59104d340bc4d968a0f876de62dad08166fb1008fc53a241d6140c05184888347662f12e30c0f29d2f869a97b4e2fce113978931032842afcb6be4bee41eef34635a146ec530cbca7b87643b4208b3686e401de115abd2bc01fee467395d25649b2b7927ed5c3d85218c3ca778c39633e00d6d3dd0ee59de6c95ebabe51dac871bc2c473022453b0c453a7ae1e17767569e0717094aec5e40d457a3feecea8d7cc0ff8edb2c504580e617a4d0428dac6f160091f4e7d854a0847245979d280c517f944ac6af7dfb28a11fe94bfea466f09cf6bd744d3add4b2fa04609c7a78d6c902688a05a6cbe47c4b098f0e338d8bed888125a19c547964055934d5903471617fc29a61f5e076e86ba20c354b1bc45543152ad9f35595694f82455b18eebb4b5a0c79a7d80ed5abbbfc824d2877e8d1e432165dfbf1a31300640ac87684bb4c92b8dff886a31162bb6dabd9fccb946117255bca17b2f40150b597b3ca0bae52db1b22e4c642cb665a3928f85bb8b502baf58548b112a027c6f402682df435436c553593f3792e94af05e95787e1f8ce48937dfb8cf9167a56ad0d2fb7e28e23f6f3b2d21167fde079dc60df8158f23325a6fe6a58ee3bd7853f90839d3c0f53803cada16a19b8cdaa222d80ec593ebfeeb9bd8e34318266e97caeda834917c67a69c47678a76e58b3100f706b612ad5ec3eb5f1070d60f134c835a681fc5a972a1c8faf9a642e3f8126ccfaeaff35ba0220297fd7a3329b0430cbcc89920e9da95a39d8f115c85aa34df08a5668f1d0e0658a6d04d77c693b93123992c4bfeabb07e2c31f179fddc4c51dc8ac503e5dc611728f66fc6c5650d1bb83550d27993565ec1317e514d6121a188ced1a49ba6794c87d3f9f921da4c7c5b64402145f75a1a11f6c3fd071a54d65d1b8916980075787ecc74f9ada1607c0a7ec2185de8a9d4a65e66fcee35cf45c90844da59795228c7dadeeeac8124f47b8ee056a6d3714093fb8c2179826bab86db9d6d02d7e524010f436e1f2ce541f6c375e340806fe5697b0dc26b83c67ca048e53154bf82f6c9727a9ac6910aad475a2b62882dc5406b55e7dbad994be136e6d5b593507cf6f2450143bf2a56895b7e9c66c88c953fe73eba72a899a15f73bd37b49e1dfbbabb721beaaa8e7bfb0d472260178fcf775164d98e382413307425859c88fab147c89578dce95807f3ccc2ecc93d79826e9ed9ad8e40d53279c80ea108293502c46ff8a59ed8d734ffcd425988d591ea35cbbc55a0b91289b1050fb02a0336f64ab75a37c55bb9436f89f54ea6636bcc7db716b3c8cb13d2dea4f8d53ab319bc2c58eabc57646f1f06902902ed86a30172f6f89b13a4fcfda832ac0616dfe6a46d12883460a5cc57980b80526516270152845bb7d05b7d469b72bccb9322f56596cfe66f57d4640ebcc8fc4e33499f32f15e02678d2b2134e75a50a98b9e898ebc1c3cb2526383802eb7985b933e28f5f8f6f45ad489d553f3ffdbb8838466d74f25ff0fb402b294c254472c56bbb67714f8775f7f40a806c2b73368dfe9b09511bd117baa1810872d357e956e7a0ecd46fe96d4e19795e4360b750725383611c841487c79604b14cb38014813aeff0aa62fc5657767a0f591ce5633bb418989f8d30cfd1a9f0c0bd05320767c9e6bee2484ef53fe3479287b1d59e3eb08413bfe9a8f1dced57dccaf957728525f64a0635469c1d639b31f83e80afd94bb2c77f60e8c3a5beb3e48aec378ce2aa53c6b7bf60e60337b34ecede28d2f3fa9519e2ad0f72ed63168b1b891450d89e44c38382187151e087d0cdc101d12f69a0f1329196545ec0130016cb980b6081eb2a10777e9e8048d452fbcba0e59f1ff6cce14730d2a607128b29ee02d4b0b8f41752381b23032d9900f58e8df080cde71b60aded73acc31c312dfa25febe972970c10d77fe7da0a1bb041277ead1aa7a604813bd6fce2cd1ee1b6af4bb68da640d438bc722fa04c0ab7d06ebccaa1515a33ed901c469695035d0b323f0236fb0289c2b7114d24dbeab7790123226683d00fa58e88e4c81122b04f506c6cf41ac79fec05dd14af2eef71ee04c8a2b9ef3215efc66535c72a33e055628667aa212d3d9db1f2b5c111ad87eb77534d9b7c75f8a4cfc4a1fc2438ba18c76bf681721e682b6d9d7c6c301b5c4532d8f0c46d35da40949a632733a7ce25c7cdbec82f62e4dd9b71af8bf071e9d6088f85979a04f1dcf8d4b81e8c4cf321664d9c641b7d0f0e26bf4aa120baa23c0ba3b9c989c194424b75c1f3dc6db42d72f616f9f8e787be8e40e5930d3ddce546d64cd2639b523433462026d05d1f1127af93148ae6e8ca5dcae43702f3eee62dcaecc7e8ab5424693f83be98e552ec6546518eddd4e9b5dadd2b54dfc8c62f38ece96032297be6a55cc00c31a2d4905d19dd94879a891558e5ddf61464227cbade793916cc93256d9e20a628d4c08e431e3bcc911880a5aa2e5c98acce5b900782bf9c9153bbaa49dc621492649fd3948ac3a67a1c8be10d3a9c5f9ec8e7bf76ae92571304c8d04784479168631216d9d059855f01b7105262296efa4523063a6e5273591d4beab57f3e1d16249436dda124f184b2bb9bb8f9126a2907fdc8cea8199efc5920448f18ca709573c45324085915dbb7436e6e5f6fc073e1df3fb791fc4dcd57bbe9f26a366c4b7b1f83f91d69e3f902aba24abecfc57c408ea2a9d0e91a10e0656a8d7080156015761c3b2a310ce5c4e1e4962c5acf5a092f58c9c4ed88a6f799815be408c1ce09396246fb58712c08b208eb29f42235dca9cb87a588c26a8c27630d9f2ff069e75344b8a38da1bf5376ab4ae0a2ab9b9c7f69d3bd81dee96b78789cb9ef35dde8a755ea88bcfabe91c4e311723abf6bebc2f53f7d669ae51bc55b27ff9d898410c34ed7ef253481190ad6716e93e30e75063e56e6ef456d79735606820eb249292fe0213cb96a4e01e3e52c84eaf782a7dd14d8c06bd19108ad558b5fb7b1d1d5b1ff336c7623201ab4c9bffe45ecc72837a6b5ac5c35a3ac547ebc2100e122ced061acbba8fcb89060860b9757b1cce00c13912f1c27236399ec488ace32fd14d3e2936c85b7c7a8fc01216f1466b8880d02683b2e109ec9be94749f84c9a5cb0f914e2c402cc36fa1c9b0444344df280378ce4f8333d09c6c4be4bb1d17d2ca1cf2a372089ae3a3b5abdc21fbaa407505454138d8dd5136c6cd85339c61e8f6b0c39066e23fc4784c06a9966964c048edb17e6b008d3e7ee1a4907dee0b98440334f518812c3a6a64fbd404ee3f113a3669f256fe1bd258ef49511e215ca3cf05ec924219882dbd369773166aefbd1faf0786a41420fd1acadc430452a7cd229e92a383cbbee7396a8c4e5d10f00f6245f23c49389b0f7203a2c5b6e56fc0b038abd55b9145e3f5e8e92419593ccfdb9e82eb84ec6689c28dc12018f32ced27f30c8ad6b8e3484959751ba56cd1c3def3ebb81b42ab9a6363324f22416aaae504eed3e99a9478c81386986ebb5e14f61f9a76664f1353ccd7ea51e18a9732fe6193c00a65ac5fc29a98a56956ed70cba7694a9ec3a16b6fa278a815f758b9a5fe46097e60c5598a37aa28c140b082ee1a0bb72b0fa153beb5a60cfe41466472cc1e2dae8220c7470a97a754df7807ac5e759aaeb61367570b4f851803bdda031fdecf33625dfbc553ce3a24ed98744c2a4870511a09b9c339252299db2a4c976d5e03f8b88d96051a0cd55d3a5bda45645b41ad90bdc7c4af6b3953265148bb981a4ce4d6d7eaad282e53cfd5f13f17569d86d3547601ba3fc231e9c463621d4459f8ff4c8284de604fab473c0e075a15b609ee2b5cc335fefd42cd0fb6f526bb5ed58bfa1b6649d4b95886047aaf9e10dc964462890bd5855fd75f10c595c35a26166d79d448386c0357b5ace19455cce657c44730c71b86ba4941a995a8fc8259b06c33f4f30ec687ae79e7ba8fff9b72f0fed116b3f5a12cc34ce3687a89919e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855ecfdd211ddff98fd315ec8d3b57630ad257a695309cd0d1b0260ecc6484d9d3dbede495644bfaabce2739832662c74ec97c3779958011ade95ef3b59cc441f719612a84750a9c754dfcae1ff3e0a384c8a88f443498a4c9b982452a1432155490113200c830ff353df5cff27754e0d9b3971efe61a6fc1dcbc302bc19bc8f04f265e442352893a35b4bff1ef512c0247dde8a8e2ac8ae135ec1c77c7b49976d8494448085b5b5791e774fafcb056bbd2a426acd24b7356fb2d2380ed0238330fc0b279bfe3763d70f3f048bb90017223cded7bb26897653731265d60c7ca055a3cea6cf59107feaa550a2952c329d7763ade6b2866f3ba9923ec10024e844e58a98867d1a3935ae1daf0946b6e2fcb7eaebead7ded597564d227c3dff7d4765176faaa066f345e00817f3aa0d26c65cc223dffcda2b3f4259e0479ed012b3513ae943a6709e339deb90ca6018d05746d052192f4785e94bbe4597bcff46854e5676e71d3ad057ad013a133720c79da6e1ed8dd8f796324b48bdb5d56b93ba7bd21f26211461b8b96a08c698a40ee6d12ab80a3707b5193246bfca3b43a1a5d1dd84c38a3a504bac439c7558f2221ebe6c35bb751fae65b14f766d3ba23a2de1cddb9de72bfcf72dd4ace65369a395c8723b5d4b20d60f18eff664495b0b3b4e2cbfdd68fdc842bedf7a97814be01bdd418079aa9eaa92d9fac83e10dc5c0ae0fdde1565cfa3835d9e9d6fbfcd63451d0e0b2d201a128f4a36375e95dcef9e74ebff23bdfb4a49a9d971b511b4bd26a3de8f38e1dcc97ada20601ca27286a60a535c39e5b1ddbc92ebf7b7a729882102a0d81480947e1b3d3dc88a292742a3d5776ff15e168aeafcbae90808a4b1f3b7df6618d546ebcdc1c5b1bfd3a5addaebcd74af7b9cea17b66058b53ce8dbbe22d83cdeeb3f092e42679aa654d3518fb5728e748137d07d9e5af1b0e1865b7d4f296d83ab8dbd8c26ff69f0f0c28150ae7da9f62b9cb822fc236e4b6f5c0519bac8eb8cc850e2bfc235415b639d08ac8b5b75bf028b13fcebeef42f9fc8cc9ac7fe0cc4501b26a7c4dbc4a4f1a07409130488137badb96a41267fd3c36501970b1464a327917b2cbd00544651115d27614488a40dd85d66f3a553321f064f541fefb1082abdbe42e5eef82aef64e3f08ff47b46fb9d14d5082083c101d442fb2289bdbaab35909f193d0f925603bbe8dc420e59bf0211130a42d1927059718c049c4aad2c8b31bb172b1c9ca6a598336417fe593fb961b1ed3a618f0bf1c2335782c1cc041ef815bd2de628a8b02182a2bacc3a040ecb7290aad830dd2716f9cea6bd9268363a47946abb02d673ab96b1be8026ba2c449253fe5e53574af9501a89a21cc6e6e85c9fb5a9d429df8a483a5c5654f90362322b9c129cb819bfda9b87fe4589b7086c547645e34e09a9250b871415bd03d8f4600bf9f9f2a31e766cc2eae874a8095c2761edeb678aade519ea00692819301932ade23752f81f10c1e45f8f8c125b89220466c1cb24792f1b31efa055f57080fe53657abe14196089ed7fa9d1719a2448ca51284cddae5f95721b853f4dbced1f0fb337b0366cb92ce2abb0b741c86d843d58d46d80e8745922279c0e2c0f7c2d832b184c4bf0f4447322cae23a1df104dfdce033e048b5892209d324d68705d73c0b0f7f0ba76cf8c0bc217c77e69328f6eb41a7c5d13d497cf5d05925d609df9f5f28c3bd94cc7ca70c3ed80a2dab3f4b57366090c6f14a8f61841893fc7f2370d0a1f6bf15d26adca9d493ea89fe3985267b6beaaf96742aeeab08c3892ec20c5a5081f48524c5f9bebaf699a76626e35ef8478536f1ca4edcc3d97a5345a45af91a7da05e4c3717fb84077ead458623c96a2b3453f9ec4d801284306d23b4cfa862f521c2b8dc708bfd53714dc3a8a05fdcae7628e98f054bee8a47601b2523cc7616b9f78d43111f92a84964d6226194e87be72a6e56ae1e228e5d5ea7a6813a36d3a1f0a03a4ed5931de6739fd7ce09678c75e4a3dca1f04867db7e7084fae7da343103c669341c9adf004f72b9e0af6f54815389d3d0ba8ac38907e545094e3c1b55b582d5d76f7139007b00882e82e4c7f10783abbbdcd9d3125e6d4a69253ade05d2f6ebf223f42442796685d29e6bab80d3dca258dabdbbc0b1e182dde65b98599b6ec9e397281346677d7e9b90fae6c16b5a3ee9aa2cf4e7e948880311ee62caf59de63470c5a1b8b02cf55dfdd7231519a81c47557c27738e19c2cc43e915b8eb9bd93c412524b6046dbf7c3806d5b38e092de12ccdb7a1cee416a3c97b5174edd94280c75429f3940e13640019bbf08c681626977dd96021709b2b35659d6144fe3fad6be1bbff2e17d5e890a5a5ca21934b968aad0cb694a7e23c00299d360b2e4f5e517e03a52b56b58b72c09e4f08900f47d97f33c332ce343e3f1d391df2c66a52421e2f639be5431b3a68a8978a4c051d2f115ccfb75dcbe1a162a61d5342bb9ee5f032decfa32b6a9d47385d0559a8e0be3d0a1f8bfd7efe192ed8505fdcdfc273f07d3428b3226e46be2d67529854b8c7abf0d6bcb36198b1977e7c77b8eec3631d24fe8f0a5e1f8896cc51b8475c1f342d579c8f95f8108caaaa20cf52a6639ef786a691e5de1fd3dc9ba7006dee1e1f75b0084317645c90f580614733d0027c58d13c3379094c0fbc9fa9892789e5aac52b14d72b7dad9856bc214e4196d84c7acbdca471aad3c8acf26b2b958f2b3de4a7798a4e302a13342b01db0cb98ee039e8f3b308ddc47638acca59dc2c044017bf0758a81a6a65b9815470a30f7265edf8c20c9488117b791d0bf1f4f79ea6f15801dea876adb34f12ec764e5c85a1d9123efd9704761187406225e95f749c6acf13410dda31a93fd5e11710907bb2fd87a39a8fd291874a99bcd1b6933409ad02e316af8e0654046ee63fc6163e374724ad8d06b6214a9a57faed8f1df06328a081ac21ca63ac2ec1d4942403688533f460d13380036775cf7301c385af3a3c224125d60ce08bcc2600c0ec231e7ac0d8874b457cb6968f0d644a61347eb4087844843284303040470c2d7b9810d823c9112eead6a413ed2bb941fdd777b506b338a83dcfb721ad9753803355014d0a00b48d42996a0dbf56190bff133ecfab7d3bb5b1806d705a4689a9f1e64519a841024116cefa8a11e0a4e5f64cfff0d0f76827b01f4f6d99d83ff793c6ac353e7dc6fc1464e56acb71a71fbfce2fb4512fa286b93f8b9d0f3119451fbc7e55606529212aa15d7da20a5c3da336da6dff93e4e06f26d5ceb304f73ba5d93dcabddaa88260e2098a53b500b0734d6915b6b87b16b3604e6f0f834875556a4f15651f57776291790bc269fd3b934f97363f3f0669da04a066030becc3d8d72fce212988a8a56caf6e15dad69ef938975da7ff6b39dadc1dc6e1d8c255b0097b2c6f8ba73a2f7cdf0c40e83d20564b88151fa61e64e91f775b501d68c759892d4a0d93a13d476f6c7959a779a852a5f202c8bc21e4666f8dd7f087a3ab5daa910033b3c665e9829edadfcaf83b3439a2cc9c437e74a0ab840006999d7609136d924fa2f972cbf96ca66dff8243ca4e1c37337147cb044921d32348df679f38bea1483a88aea8452a6318ab27c958d7f329e4cc318708768de49114aa2c50af31ed0d74efc5446b67f4b0fe26a79c64cda62310d777b875898b92b36ec90eedcb612f64fb278c169fcf96df837a0f85153d968b0bfd11b949bfa7eaead6cf699f62386202697721b8eb4c94571577fde202e8e7f342500f2e0a048962a0d6936b2301046d1ea19491c7733f49e9b285ac2337e92d7516da6410f299417a642530a21227875a7cb701408c1cf58597aa95019e70becd1ebab1f37ac218907d6da7a5436bf836f71300bacd271021875236b1d099a496d7eb8a200be5ae1a219f72dc67ba4e6776ed85fbbdaacad17130cecb1f5fcbe10bf9f8c0a48ea2a688fc29ded7ee283539b6e10651e53a9a4dd1ce474fa3380e4efe051bac9daa89aba0841927e0799c83354313600392cc3181f942b6fbf9735e750f24e0a2d55603b992e5ca6c3e226101420f7998c417f802461e19a1a781d6722c5e91a3640e00b4212ba6a1c8ac78a0c5315e74c88db3e5ba8b29c46bec6c1d82f40f1abd46c2d8d958c6eea9edb6702d25b46ca41720740e716ad691a11c7a21a6673ec16760ef3d826c71b3ef0e7c62e62d7429d609aeac85426c54c54a0013d7b61fb48e6a9e72e8e98bac7637da13ee42841a2bf19f74f53d5532c7a9fa245e8b44ce4fb33a51aa66dc765d07436041342ee55757cb02b188a33158cfa2c53a8fe74be86a00fd8aa97d2307cc06065610f9d5b620198d44496c9c2723091a1d34e2f1bbb02fb1de4e7cc71a06f992f2e3f5ac30e79b80be8d65358f14d50965e6a8173f83b8e286018da9640ecba648d33b66b57106f02aeebf7a1a098cb67d21bf1ae3c104029fe398ac091ee693ce424727d0e67bd92a8c8383789ac51a96df97e38aeb19a7f42391e91167adb0d49bd12dc3d2ce87a4f68017e5e1526fcb0999a206b1f2a618977ae1ad0fa4c1244f9f26e2a853689c6b5d52a810b9a3d36bedf5d9f75286578c60ed18ddaea465558a36841630d8c810a2e87182cddcafdb4d8e2834a827d7eb5a2412cb3f54a63c7b18051a36553e924f1f6e3b896765c256098d019959df9f0fa7135cedc035e8ca700bf2872df409cdfd29283516b4c6510ee5a7208af5310b7f43ab219a8a3827df78346d185b4bb814b6836835ae180f9fa51ec7db974f197850f5561bd79e74a9c9113b79c8bb403837e5513e2859e98b91503e2551c7b4cb9b207f0076041205ad4b69569715e847c66861e755723c0deb9ba0ec41c0cde843bccd9fe0934f627bbe031a3f465a57134e8d62381fa6e0ba553bb9b0b7093c39c5afa90a2fa7fab1090facef09f1d39438b3da9add1dc3d9452def65f7ec6b9c892410d49f98de8ad10893c9999c533c229b736eaf75971856a98b2f049967e9b9a45c2a6679a61343c26607eda50f6b5e1d118536dafdf2ec7616fc063f85781d92cc9e13239b2a01f7da5d023e68dd3ada17396208fe0e07a975709d3522148f70df7b637e8e554ec68172e1fd4fbac08298a60b925ae46745ca57d3296766ba0f5012fdd4df47c28451571ae523df2d023e3ad1acc6628d9f7a4987b33e1bedc1a14a2ff051f0eb237d0e3881d31c60392d37e26505a994ed5de71edc9dd5bdae9ad8ca7567a677c608fc2ea07ac2dd98eb16221339c1bc339b3d122f2dec3906ef89a98e8d1c3739c6a4ba374946130b3e0eca66494d47647c45385db65c309518d74a9e610854e41d39384a5a13b4536035d8e4b84d6244ee85fdf0abcf20337cabcbc729a2e940412149c4c3b8931decf157677d1ba641060a23d4693587fb32b3c90c0afce6c63be402667789746c32a8ee74a714164781e0848516ceb5a8cd3e42149d8c7129ea729e3be21d06c2ab78353649791a38d639c3a43ae5a5237ac12b9929b4ef4a24e1595052303d3f3ba20afd07347b3db0c788cfb625be4191dab52ec99eb8e0b1f56ec47ca8b3010477418096bb81d87c5cf37f4687742330355e8c47512bca089e4cb22c300e5d501a742e6d3878c373abb8b43a56bbd456d8c42be3e0c5ee3aa96efbcf70260230b704570b605799a07c610866cb705fafc8c91a74c30cf13ba2353c6e30e67109a2cc210375a12e2a7f347cea10865012037393fcba937348f7aa244ce5e428b0fe994f81d030cff93e89f7ef212e34b76f1e5f4d9beea18ee29a56288ebd96f115f5387287e798fb07c3abd325de99ff672df7bc4cd9fee4a238e13bf31f30bdc6c9380a55ae1e78c28c289f40786e1ad1ff9069883e86318b95e78b052ec539a9a88d3e8192480f27bbbca949f17f398143485be79e17de6a5be9878ad469f18a4813ef1c6664b7ec15dccab7a51ca4b7d41020c314ffca4455c79a88eabf800b4a8b07a9aa1a20aed41990501535104fdbaf4dd8ee32be6b8caca33b661085b774419cd8be43cc22dfca298f62b4790ea0b4f9cf76d5a1df9977ca54b659814d76d35e75836eaea4ccf6a7f7444378b020651855f6e6a2a79caaecb0658ff353f4f6cc199f02b0bf27d0ab435d245ac63dd8685224d12085899793e1b2e204f048b4d03522b4648723518e02497de13179fc914838f39a473559c5c9289b985ce7ded642096bae1b377aadbbf4b1f7654cb1538fe7f43abb4285e808cb1dda31bf007ab35f4055a9eeb5969e5064aa2f3dbf08f7036d6a1b7d1954be2a0ce7f085167a7ab3d36ee32280872f3d9748b331034c00633f9696f69f0ea6bc7e70ab6e34067ea2547ffe5b846cb7af07ace6c97889ef63ca51bab8033166d7b47e964b878bbbda014441bec63ef4fe2ab29faaa550643ad05de17b3929916526a5e62d628f1b81182db3950cb855d148c7a7557750dc49ba090d13ba1dc51ea32a479d6e531ed3f6437a8c242ac9c1a09247ad74fb264df12117a7f00e79752298188e47e183e2457d6160e2a5f94ce83974ca51ccaf224bc6edac6fc01c958a84e6839adc47a3c1ca30c5be9cd7409496715dccbc642721150e73753a4b28517224ab355a78f41328d140189d66790cbf903cf5e530a5b427088bc293434aebc4c4ababc04681e693da80a06c43efb0ea6cfe92c0a8ed0530ba3d6589d3d07c1014ca8b70cc89e570dd0f7e92e9ac10e5365cb4263f642ddee29cd16feb5e05b4e9aa57501c1a35db09996091644cc2c16ff7790bd70672b24c3b8f2f20f53c1719bbb49840986c72fefa31a9d620f265730161cd1c1cd6e272ac605371cb86f5507bdd2777feff73b947fdb0afa5a45ea159a44598c726d419af3df29a43e16b5cb2090509fd39a99e3a96be272688c6f7094733ebc2da2a386a34f602e6eb0483b08220d774e651f38773577628ec3bca719177d0311c2567863ae5cab8b1ef88f675bf132fad2799f82a8bf46d87c4710616bd6d685681746bf686faf81717d81ac4e8abeee6f7458e12946bab7dccc0f2fdd102902b72db9293c0aa4c20927ca88ba80b87a7fe1403040dd14395d3a92571c5264f903fc3f98904448a8f76268ebf120d8d2164d06613c2381744ae3b3bb9532b6db2db891fa1602a38936c4d7549ebdfb874b69d1621783b791155f016ee716f58a9d3707f86fb5ace755019d3c663082e8c785a3bbd55000a773db102922e985a2b5d721d3c1eb9cedf1a8613603ce90b1329acf1f00b7d648fedd430120a53a116bb04818263f620e8172dfd7af3e493727579cc0d9e18c4b7144f419b71e26299149615de9337d26c5e7d06eefb5b23c0059ed62b426a3ee855e77b3dc5ee4ebd87432efa72bc2d2c569e8be4e47cfeb05a5d725a1c5797269e9338d4798eacecfb5bbc23d48abc361f046819d6c270a89ee52af44dfa57f10888351151a4a77e80c123ab25a3a2867bdf875228ba1a3b95c4e00dcc2f4f956fbf8c2ae954be867af170905442c20e8d8d7d97efb3cb5e96b679cf817ccb8d9a37c93890877dab9f3911c194c7b5650cc39e693b44723d0beaacf39842f5b7b46b4add63eae43b970b27b40ddfc7e192650f8ec2d1c2c22eb2b1d8486d43ffd2ba3633e33604b345ecd8a1984ccd94aacbab0b7c92597821dd198c23b421e510d14da47f11d9544c1c7924ed70384f269567233413b61728b4ba783024df70a53e6fbe3e15976ded215cb19bbd80e91537508c9392cfb1be7080a5ebc6c13185896de1ecd44d7dc4334541fcdbca3073a41d97f768593a56521d4cff4cf7c99d5ab38e6560046fd02c8b12a7afc814a8cab5192e150cbfbf2630d6761d99ddf35a8032dc540f22253b9afc1d65532aabd103c152eba7f574ad3331b4ff7cbc34b074af2989c73bec4f2cfea528acc929aae8d5710d9e01af69d1fa88e8781c42383c01a1552ed8b2a167619049ea9c9dd921cdbcd996fd591801c43b80c1819c39a5e6606e1024850b3b71f9951cda3d9c6e2fadf6ab793dee25ee42adbfae6fa2b977a043f9379698f26b52e45fabab4aa2b5fed0eae604bcc853c76b78771d4c9b5a07e9191cc85ca06418c68ad746b0d1069a07b146b154ce59e10714f2703314c72a9fdc1828be1bd8f9ed9ebf4a875e53e08538cef836ceadde5f5ca5217fb8ef46253f8bc6869e15ad755f67a7abe8702aa317069e90c245a8e47a9335388d027a925df5e92c677c258becae77d7afcfb20d0acc49cc3992f9101d64814ab449646bc738add9343b233cf60bc6f1ab76b96abc19f4127f685ffe4f7ea985697fd15af0eff2b25840a3a67c8b686228913d1c8afa1967da8cc6409fc5136f110352e71885f9320193865cb3baea7d245d5a7b691523dafec52c0a3dd55b24bbf278d144fc79d503e2aaf0e62109bc3e75324abead25f0d25c9d0da37617c71eb6da27d0f11bece785ab52e13588da96e4add3d06c88c66e60d6e42cbfa9cb6ef3ce9147424853ed91776135d17a7c90e92b3078df9199b68eef8435bfd5f96baf0e857ee9a4a10da5257dd6721f21746f7cbf869d88328014ad97e422b14bbb0d3438ba21ae265cd9ab6f6a238eca51dc36073d2ffcb31e50dda1d4fa341dd072e7166a21fc0e499bb2014c55139e4ab3c1ff405e69669a2017e1886aea64272756065904954415b9df476193d37af03aafb484c4c2956973b5ea327563df9990019ee368400b0b2116b19e661ebfedc477823226d4d2e0165f326e2ff8e64b2cc3bd90a7db5691c231ef6bf24bb75c05a1d4bec26d7ec07cb1858818a76d18eb759ed20d70e1429a2757507f6592c9dbba6d240eb1076b3ac9ddfbe7bbb0d2ae1bba8a9b23d1e37112b231f0e35ccdbb18163cc4da2d227434ab4b12c778358552864fa988c9d3119a2a7181f96a69170697c91271183790ab88593fd485eedaffa96f39f5acb7a8f2c5ea461d4088b6098b4d09605608e6239dffb2093b792ce933eeec282af83f2e2e5abace53359afaf049929359140f83e92f6ea01ea5c993cf7909a66c64ae7f8b1df14ef0f691f68e5fdcd86d04ce5795c929c95ac3111affa7227cde3a3152284e28edab2bbd6e4490be1506807f19420d9bf8124fc6612fdc811fcfafc77344e6f1c1b3f53c9eed629e891addde916e684bb81640f64bbc241262c39ec3dcc363aa9a2adb44cf76713224030c0c8468c5a2929ffa070cfda6d40e99ae6443136d3d5fafd3f3978eafb70632a055c4cff4f0b4ac685a00555000a22df871cd019f8f211b6cb7b8a069c4b3ae26b7791999fc23206406a3fe14610c0d6c0420edc995e5b3acf1ad159b1537e2d4efe2df1a059296e7f817c712c2e7b83d146c09a92908b20ea67e10e0836b5c32a3ba8cb1fc63be97d59e440395f85b7c3c9ac71a6c1342d5b8cc922f08e4ba8199d1286339de1c391773640496f0ae43762e36b9a45384d4a3139c20a550f4a02845be5ee6c6416277fe4360f4466c32c92c3a08e456f255b6aa8e1aa5c9ad75d3e6865efe314906cdb649e5bbcabf9dd79249f42158fbbeb16ccd7a819d1e5867b60cfd4b303f6908c43d36495fb8af9af49e814764acd88e5dc957ee7c8223e74682b243ad09fc78bc54172843938616a42372899628971fffe2d1ecbd59f434ac95e43c57579cb51e1cb8df71dd6baa1fde13d10ac0fc6b60b633417a9c59ffd50ac9bc7bbf436934b77ebd48fa391e1d2502447c46a032ec40bf954aff742861fc0a10fa897946bfb4c08c4ba6710d776287a5450f2f11c6b19751d6a8d95a3bf311f8d5a8f70d65092038b6fe93de5134775275ea5c9cfdfa174ab6a1afeaab1122149737053b02750b9f41d255ec8d10c6c1ee0737468c423c4c90ad46e5dec92fe84a1aef8d724c0f372767439bc11bfec5f2b99904d46837ba3292d5a89354d897156895dec2093cf28921aaf491f61e04db2da78e863570501a17707ff1119cc6fb4a3f2d20e3194ca9b69f997f5441dd50b59c110e36c2a8414a64f07983f76b464d855dc61f3e20d454e17518e89fec54b36760b5a0b598989aab091bd044c2450142a087b38874fada7d46bfa878900c06281675027fab56f2cb15a6ecb4441c77a975da92ed47039118d392ad9789c25e18915bd2dcf95e3ab06d8ea68b87323297368d347fa3b8dcdfc5c731da8a846bd09f24ba1ff514c2d613eea90c8822b235daf7437dcb343251ee15f6978b3ec6f0d4e8ba30ac18e8ee86a632320f3a401ce83d7ab3d42cd70a365e8afd65a4835dbdb1edc12beea9a7a5ef91d90b70e337a06dc9f10cfb0754b0140d3ef2582898e61a3a3c965f13b80c873ede0181b3f935275b7d36941c62091f6709a6c65f6cc52dbfbbfa4a1284175e40371c7522c3e8cb51a2877536895569094130ae49d2714d7177a235f8a5ef57d9aad535b6d5a6763685f094953d876326159d61d9dd1cc26df5341e16d8704e0b465d078bdba1ef4a6f80b76384278ea418a2aef80bff585a704625023f5937e247a88d501b3ad1e9c136f5f6dbc748ac0a6cfa18c5b10255b9cebc1f0b116ffb73090f93139423fb7e8ca493636fbc4698fa7c96767f7218f370eaf4737fd52e13c8bcbbb27fc5759354b7bfff7507e45f4b9fc59f731a50c2d1148530c19816d142cb787f53bf91433a32cc1702015f97f12219f696fde833803ce8e4b1fc9cfba939c730922e65c4b3f564fc843ebbc1136cf0c84a85e4ad7b1fd689223e463a65d247c3af2f78d88c77410bfb010a82c33b6823679204f3c5651cffa2b230430dde984c1234bbca8d86762e9c5c0efb5d0273755ccc327b36846b933a5bff722f1e4d34f1eb61ae16f8419c756b12d57705579ccda01499fc9a265aec2afc3d3972282a97d0a36938e288a81577da0bb550138bb613845e1de6944c90da7397138bca436581dadfe13e4f11d311959f2475eae0d4080084ca1e9d05ac3dbe8410c0bc02a684d1238843b74fb2f69b5bf9b97dd9e8ba67e7ad579b21f4e71b6027b6fa365892f66372d523ee7ae3fb13d085e100f681e5a51de5584a9af8c66783d5a8a3ee839fb8f57e0764558e25c595e1eae72902315125dc103a842a8acb44eb9086f3ce315fe424c0a4a3667a9a84611fd57fac8de023908dcfa88c85bbe3b386a0e9d87fbced6b8eff4461bfef7124e72fc123aded20088f49cf3d9125d75c9c410f3cfe83bf54d901f1f4f95b8bf2333b42c23ccd01d5a0a19d3baf4c33156ef30944b2c564247c98788918459a39beb988ad781a57552a89d338def8078b0aec624dd4aefd05a7cec3a18c93cd8a5ecb68ec6a31ee348efcda6297e3c5e653d43d99958d056e0aae5b3afe98f573133cd3b6e218ff715ef437740c5c7dc1386da78f829902b93e96281768942d9cca5dfdd4c4a245a2dda08dc71885540a7257033c407463b327e37dc1b361b7e567c2245d3cbab63b94a86be991cb7f9c90a618710e4578d0d8cc97056ba85d0642480f885ce5d4f3ce09c5674cccd378d8b107ebfc7fd4c47fce85fa379347bcbe0a195dab1ff6200f28a77d6348ba0de5652876d76b5656c4e598dd51eaba915c557ff24eb8171cb9a75504d9dd4bfea9cdceaeb0a4e9089d900324b3d0e01aa025d3249cc94fc5bfb9ec6bf1a2aa7d2269f51407c623037a46c4750c60228dcd4077749cbfd067499ddcc15ddcd180329cf6c2db5c666db8c2f05bf977e50137145d6c8adce095bd7a6e0451f830a370ce3e935045a2d57e4fb895bb5e542f1605ff10c072240e27e143e76de6d1b1bd01c6075f64a5f028f182745ee734372bac7d1d28027c99605b2727dcebcd945167974fc95e08c95e7f4418231eea9037586ed963ce70c6ecfdb4a1f17e9bb43189bce5c4b3677605acdeb20405173dc468c25d91ae0371a191da01d0b94daf122154489e1cce137720133193d596977c4082134a71480340b125d2fdd7bde0f5dc00f892cf944c3d66b2197f5406a82d5f4b2fed2b0436e941a227db4b4ab34bf9302fc79e3c948c10a034b4532fe70e1a5e4a7408b7baaa4fb0ee4b2c7c158c55e8922a87e7699cecb21443a038d733f8c091e04674b300b6712108d20ed89878813101219480337bc9017f9df36ba467869310cbee12e81a97392e2c9d9151fdcf300b0b01fb7bb7ff081cdfcff16e9d874da62dbd3e67e9bf223b437d1326c458a4143fe632715119aa87029b9a0d8505ab11246c4a10cead2ba5d0f2f302d439d339270ccb6f0f178dbc29cbcf0923d34d4853ea4003fa8614ce2fd199ae9fd780c83e125a5d1c36d02f8ff44188f5b6ded02ad7d69b6833c79de2777ac261e99803c43dfb295605b96822b215709c818ae892b9c9a2b4279d52dcc5380a6657bf07f79e24a395a13db8bebb04d9a4deb31a4280d1bc53392a8c9c2337adcdf525e1448dd158ff57e19138045c4f37d5129ba0a9edd8cd1cec97cffea957ee5e82dc0b10bac1b2f51429fddad98527b6d9fe5ad0c36a0111048fbb92aa426b7ffd7f56d724cfa1ea07669409cd87cc42079063d0cfd4b733217f131ebc692b6fb41597dd4081619a8e7131c1756f826494969500dd494126c52e80003bb26de0f6cbf1c6b92e450e5af0e5d7b4b600a66f0ecf0501d7b1e91f3af70cdd51a6f28660df8028293fa46dc300c10f545302cccd56d0b6f9696ffbd2ee6ba092123a4e5032977fd3dcd7c07cb644b77de8f5c1cf6d9fb8a9fefd8dc93d7ec42c05f380d2fe09e1305dffec2b18a766561a3c6f8a9141e215278826678c94a313289622d5b73c845850b82fd54fbd56f4777e2c0fe7104a68a2eb6e942e7ae7458041e6a6f86dd757bf7f5f2621d39747551cfe6c21107063c9e20fc8e853c8b7a933d44a1425ffa3bf583f97a1ee8003cb5f5f403e4b8f93431d0248ce92ecf3380f2d676c8be9f2933045776a2e76ee3c8f228c53133f4c14eb861ffa411d64c5891cd713efbabff1fcd1a8918b9d8ac5eeeb4cfd314f8dbe828b57083ce3b9fbe973ead8bac955db0ec49032d2e4ff798dd3bbfbc9982b983b58a54b0e11482feef34e498b3d6f3fd9f143e251402ef7a4116b421115becdf544a4e735c6866b6d6a476ad17edcf79bed74f19e647f4ccf27c53653f1d4fde83078d301f3e9c7749e6300a117fc13bacf999ac318fe65af3ff08f5c7a455e8725f5d7a2ec52e051b328f4ebcd97652cb11b1452fd484c50439796d42038b16c2b4c6b3afa4d62e65ebbd493b1c1e4242257eb49f246c1db55593069493f1ee5035dbe0b54b79b8cd1d280bbb6178c22c0a4d8fdb221842d42ba5197f69c973e6671711e6f5a69cc50af6fd8190d9f36d207332fc3697920e5f685058c03c50dd6c7f69c3ecb367bb72a70998a1004529195a7c69aeb7e967bb34e8c79984cff493ee08a0586d44372865a94af65948bdc74994f88781bc74687cf692667e168af4f5b96b73c1532f43ea20618b9c92df91b944cf2327414ec19e49698906f04d6439ed2daaabb69ba18949c42db7defce7f8963d5a87e3d3d925bfc3cbd95c2c6bfb19ef52456f935075b8768a6eb0e526d5ca48923bc4c97fb5abb9877df3bd28d653b6ff6a808539565f51865fc6c471d81c71d2b40680db12ad2d11538aa168ebb3e3867c6515fd89aaa609dfde18afa71d408060a76bc85a75481eac4d5554ff42a27af4127b3ec880714716087d34569a133ffdc48593617176e0c05f4c5386a348cc2747c32a5bec6e5afd57bbe7d55bb09e67d5e7a0da58be79fb47b557ed972a3cdcd86f8969060d10227dccf9f67f781a44cc1314ab76ee93dca02e2bcf9ddf9770f3735976c85751c0c997b1887552a5e4fd43cd99aefc0e1dc4c9fd0a3c6cacd40133a76c91f3b5f6a9cad271fcad77468780f7d86ebd8ce3150469384715b7df6316464d4c7312d6bb97495090265acf5d007f2bbb4190774f91ff6188edbd24fdcf8839d7a042dde5cbc39276a9be402b57b8d3f4bb9ae6529d9974f9523346f1c3eccec54e3686cb46c5ffed222d8aca1814b0fca06c035b5b24ee0a386a435da5cb4ee2c2b0e0526f5643746e294640b8ae9b19ec127a241b2b45fb25b7ca85993caf93388fbbee81ff34199c82b19b034f25ee472b09ea3539ddc9fc21db03fde6b326be719a574163d40f51f15b0b7c7d91bef72dd9dd7789fbc25c325bbf7e7846caf3046796c7e3e32b1ec7afde12d936cfb6bcff4c5b6f392efb97fe0733ccdeb776ecddd921dfaa9eb09aa41da7f5aeaa0a39e0828659135f3587cec871516ae4b7a0d264d05b972e65f8c4ca94fe68cd87ed85ff233cb9ebf54b8c56e1d5e4359e2a02f3524b06340fddea33de9c320e9af527af29e039af97bbc6629633cb79b470529f11751f4119ba3a95033e4f4615d12ec34e515cd2ab35fd7de3f4106bbdd66430589df2325f58c3a69cc5e6e290fc32cec4321975d99cd13042d4d685f106f5b88833473de7bf0dd15bc50283c822805f85ab6840137861d5e458c52aef21034e75f8e6ae94189b72e1c5e430e5fc8ba9d898962da0d03cd5b28e4313cafe874164972598cb6fceabfd4daa6741da528564597b68bd73fad4373eb773c680237c2c6aeb8ed3b8bcdabf334399d609c3d5864bb68b4b9ffa9458e6e9c12480989ca69df4c7acf5fd1edd44381ba78bf23b8a67b24f44a111e72ca885a72b454e14d3be19dcafba7854382f9eeccc5d27896da04543f2c847450c1acadb46daa2928905cdeb995b16d2b55dcb76793aa448093e40bb3fe44e81df52382105d53064cff6ad6587b106e6748ccafd20b353e443e983cc1f7b54de68ac02fcc50deb2d65bf6dfb25ff70c50c83370ef47225bd8490e1357f22fa8fee0a360f1494accc56ad85c7e0a65c55ac325a57aac7b1ec65b7dad80f4f2f9532be6805c9fc33bcdaa9050a222f8fd028ebc5446db801616bcab5a4539394b2471d17888437f8c8ca25497777f4b522879cb8a6f23a9a4e6cb92a10a8f7d6df6e758656d7642e85f26867b91e8fa054bd37e2eb06a6539aeeaa6b3d7e0aea66e5c1f3aa38b684e5a5d59f6a59ad825413f831d341d6facccfb792cf89346adb92ab694e577c1fa6ec15a0cb7f0b033466917feb0914260cb4c22f0da24ad76893ddaa7af73d0b1063094d40077e585625581f92b1558454ef9fcd45d8c9aac2099cbf7d159418132e062350d80fb22fcc7d680f95c81b08fb06687ec0669d883fa4f7276b5fe6d5ce71ebda51418522740be7193a916d380103b41b8b0596b243110193bc067714ad43fe3dc0356c70dfcbc10ea69830b867d20f0d37d1a876e0a10148f8ae603edd34591aa3b95a4d6887242da735a1240e51a34675a74f8f6c484f202f37d18474712df34fccaec01c83cb3fe9ba0a789b2f8f741cc08f004ad5888eaa8460bdc8953a33bd88eb945c1972a926d7ca58b250f829b7f188096355ee1d578c1f2236b8980cea7d2b1e3eff89fc8f45fd3300998b56852f80121bd18a5cf073a2e76496415cd90ef8a7ef790065855ace303899d2f60d462b9b522cde3622657f5b16ce5b26fa9d762125fbf6b891026a8a6922aaaa5d36996de33fd476f68398653f11431393b982f63456ff288b93f0a8a4ecb8282dc2434da33ab12ae850bf22357944eb9b1e79e37517cbae8306914f712eea78303f323a1e913a9000ef7a301820c27df77aa0179a88f58b3ac4cd0cacea53f3724b00b30996f418f76412ddb44e2ae1708078ac1efe5079d170dcb13087221ba90a7ecec992336473e230e5b3d24bf38686d3769cd1e222d7e5b8175f336d6869b4e0d10fb6c7cdb4f3af2d69c3c615b80189770d1b44a1edd943e49059173c61319563ab30bab6ef4a600dcebaa51e1e7ca2df87b6b843711a77ce57194ce14560519fb23043a6cea1dbb7f1accfac41dfd80818ec4d3ba5b0ba373d36f275b43e1b3e71ea4b3eb42ef8f49aab63c51d7901156dc55c762f8f646ef22e46660b903b89e01b2a292e360004f13eb7064775a9317424a79857d1a40864bfd3019134c9d22cc06d7cd68391a6c938be8a4ae0c8ec210a9dd5672d564b85517990f51974a7fee4030827dddfbe9affb567ce2f1e99032b08db9106a9f0114db5e0d0f81bdb45f8932ce2889425274e47d544320bd31c1485e7cc99b0a13308d699e7cc20be3dd779f0fecdd64963a9c22c1aba9f0b17589a0023ca9d8d07ba33c071409b7bd7997d2f1c906956c6504d91d2a020348d0e991de2f3514bc34b79878d543295fde45ba76e3f005e749748d143d9cbf561ee34eb478fca6a242df9a1c751f25dba64f9308a7aa7906ba8c897bca07957b757bb87619efa7bc1807ea1e61ae2a994d55b38030905fc7814bcbd3ce6b8e6c38089ce08a017ca9ea575371ea2cc297f7100673b087ccdc2285a82c63d20d192dbc1d6024a9e1863476d8815e21681c6937c9bf451afa16cb25ca23adc9dd8a79ff2d3d7a5e2bd72736f06980a7209b62150bded14f441d5e60773939b2577f9bfc6662e5eab2fe4c4e463aff2ab5e19990c8f840a56c687685f95e4075dc6e5ff989d1d5b941962b5113623fa77bcf5076301700ed55c6940cf1208f1b877948a67df10f2d479723f16f9a9bda4bdf6ff167ff95879d8b913e1c386f4e6c2882c300f7cb42e6f390722cb976e537ea3a36cfa79990f1d5d813fad703a7b562ff3e24780f17ed0eae64756d6cd3de66f2b717690415004d165b314372139ced19d033dbdd88bd451b3f4f082dc90da66cc40066e6d329d3392b21312708813634fe954794f711dad570ac93320050736fcd8e6432a9180b79231ae385c23316e5a5930cdd79719e9d049e614379bcdf63e768db3ca1dc3ed0a0a5cab87e0cb12d444ef31293fc556efa0eff5a6818e25c24a173f44c31a781ec1bf94b9b7537ecbce686bc519cd326cd03e72c50f68da18f010a9d1a8432f6d9093254ff5d13bb4bcf903c63fa1ab1b96d21ff811b616204722d0a794e3f5fbd8a569b48078720a51400b54d10f3ded1ef09fb2fd6a3a40528a30d2f2dfe03b3d3b42ca6ddfdcbaa5975db55d4120cee641f2129e049c7a45fbcb74d71251d3dfd34e89652b0e1da64517134671fed370f354a3e6361a9edc5e199c94ffb54a37ee644ccdb9eb28db9301d599a203d05b38d9f4dc1ea50fb2747147931d106a3fc6d8c1cb74af3c926f0b2c53d208341f0cf9cd2ac2ca1c546564d09d51b153a72143ec527565215633e56766f0594af34c98923d2ad6656fb8711ac394b5ed8e3756d342ad78fd98b46ec588ec8070517c35f0510f4e5eb9e74062dca80007d80039513d13dc777ab5aa17f14841985a9594db1240c10d24b4b46eadeb2aea89c0e4694186cb50cdac177f98248ae0ab4167c7a75bec81a06ed2cc20036347382d3ffc9f95c677fa00f30a81e45f59c8633cdd5788281095df722c587f5a5620bb90eded5daa0c86150d579c8a3f487fb2379b13b82af127661aa7974ae89b8427e2f11be8aa87d05aecfca9287e3ac32cabf437dd2dca4610b8fc5dfc1bce679feb02a8c7d9ad98e713b40a1253eb9ac104c76bcb624fd9e178e39d9a51fc412e5bf22523f5ff67b3dd1535f0cf4fc87d5a54fd6814639918154a1b5f362961a4c8510f33e0256534d8378b9afe0f1589e5851a0ecd33eda4295cdbf5571767d66fc417aee3938bd00784bcb42a5cc5aa104d28a1a6e9b341700975e5668020a92745b42b248c00d736043a37ad75a25e565f739b0349c1e8581403e3d9b20891edb0573177a4fdc8f52d9048510a4c7b9acf2a3194ffa5af5b4c443d1e17fe2c76c91f23bd27d8b9df98c6c772f9d28bb4cab13073d8971d6355faba891dc1657bb64272d87b8188beba73c89f6916a6768c31a357d92c7858eacddff67f0dd7cd01abceacc4b730233b32e8b60b389c295e48dcb94f4984558ab653b0cb0fdd3d0d71e695c15db3069f13d0954498ff107d37e8d7a4bf0aa4711213633f42e9bd233682da50f75bbc17cec9d6426d56995dd410a365ca861e83912e54ac0743b9af2a99e82a6e50ed7fb44eb3813d523a1446037ab1fba54a932007737274b0e5325c4dc4f5dfb69d0c4a7680f3d41894112af673ce3684be156e0fa62afd6e428caa8e8e363c69a3f540a6f8c6d95a3314fac7b15e70427f1feab9131837be962f686c45584f0c1cc75ab884898cbde1bbac2ca26605ba24eda5c6d1e3741147f7b2efb491a7c799dbbf57d83093059ca6f9c0c7dd56619505604504df238d239153fe0a6a64f8dd49a8524d58be2afed7591dbf40e474b97f54673fd0e6ef2e94176c5d77ce90d25836b571d94dd29c87883657807f77a13a005b90960ae22e561e4ca007c480107a8f82b4875a6a5bf9afb6ac0872df86380718dace848fd35268d10c97393f5a1f263a1ed6d6ac881596f0d4e19111ab7306f58000c3d0ba09021fad9894a495efe86dc49ef7eef91cb454e215e63b4432740d3fa7abe68edd266c6b1577364d5b53864aa7b93e7dc4edcf42e60d39d61c028a61109919bdf4cc513dbacc5a82a39dcc00038525a203473874e724b63b87d095019b63a9e8c2482bbd0d90f505dbd8c6f09c1f1ddbeabb8c3f541f3e5362778c4057baf849fdb86cedc1559867af39c037d2d193e07f2421bef83d0ec1852565dfc9cb41b82a47ae7ab688a77daad84f80f3e3866bd9c41bbd4e41a683aa53a4e37aa95b1bee0628f472bfcea4d9d8cf473c406aeff839747b326aeee78c20b9e9b82f30a4ae8b00ea950d9b6f864c37a67c174d34fa10e09c4bc503c652346c05fc31bccba5e1f11846aa8821d99596f2f47d9c292e1c05627a0a48fdabea906e5b204aaf5c0e08112759dfc51cd0efb987e87aa637cc26035c2eff3fdb6728c69c4987c796dff25541c073e83699747147c3fa0343b07183f8c1d80c7bf89df71fcd6156fe4f47722a2772ad10a5b8ccd028357b8b8ae4a31ee29d894da6660a0af04c3c14c1d2fbb52c95b495f36c6e6d2ca82e8b8934e34295bbfe3d6d47d919e1af1c9410360422bef5b85f92c1d26f7a2dec27d40367cceac01755606f7be3135cc282c527da73cbe14206f8a115377eba07467116c3aa577f12104511c8010e83962148c08ad6ee92d864aa0f30259a287ef0b2d4a6f3e59a7665d8119f666dfd6fce42a663545de4286c0e73fe52134a2959a7355730c65922e3c6d346f550dc81e3af61aa218dc0a0d99890ae712af3fe53bbf63e4c9fa8653e8b89a15f547cf59fb350c1a6a054d0ebc26a36948102d17870ded7fd230ea7049cb22d813062878002fca63a1b82e554c5a8a582a8c93bf86158e177cf923978caaa2e30cf26a5ea27888ea68a8ee8035ba9047373973e493e11c2bedf4dd4202239cebaff9d3542a8d14abd3075883f26202c7482ea411951bb7244eee24076ea425ee8201aa4239044bb7bce583875dc9e28eab227e4ad814b8a66c76c81e4995fe0d4ad823d06279ed2a6317b42c9e5d9896cffbb46ed64df2ee85bda34100f4409d85c41dcd1b973deb9c95208d07c99b86366a50ac60d69180fb2c12e19dd6d7823c658fed97b76600afe864c6da2782b4121566ef02bda12c27e8077d81d3ba7e37d0fae6e3b4b28fbf69be41e55a0fa609f5b9b7d377dbdb26b3f0e95a16f819cafee73981c449fda0bf4a95de7bd2a9a567de972b0ac4505f2e23c8dc0e0f496129424010c2bbc5b4834814d186843461a9cfcabc4d6abb01f4a618979049d49c8976d31057f01c4d26df4dfc1fecf51769dcd6ace2810295c4c8b30a8ef52c788f3f38c72635e439129443d737fbde2ba49f55f75df6535dcf6c3ef1001a404987694edce8c07e98808d7386465e93978fb664e3b271241b7abe917e8345672af8cd7e53f304b4ab211fb4833eb23c6b11f1c15a2b078705fb57f1b14787508844923207472fd6c072c7c3701e01391f23a9042c2e3fa324571da0ff806a00432d94119fb1be09f67927b6e6b50288ef5b41aee6bdc47a4bfbfcb67f3b3fe50d6416d5476d7717ae5b332637c8b4db253764a3999a0ad4a180586a143421832d7aa343f6369631a74b4351957d558fe92b27c4827e026f0b2975b3e856f6e5842d0dcdba69abaf8cd265ca075eb9168e2f823fbc39af453e3149d568492f4b837a17133cfedff44a3de8e163cc45d0c0ac1bb163186dc66d7f83a2f555c413036abcbe6a8217c89757ec2fdbfdd421acd3f4f7169ac72219b711e9f9447f614847bba2aedd929791ecf58800fb5efcfd07d891903a8a1533bac5bd5ca83081c1738c15b1deb39a6347a964dbeb2aeec73584c61917eed60c594fde273fc8b8007c7bc6545f78f2ba78d99d4859f3c7bd97bc0a40de84e3f5b881c86db0511dfcf5c537687d5f0bf874895847c0114782617aa50cd67d88f3860e31f4485e5036160ff76c50e418e8e01a85dd2c6f26269780f6ee58446c64e41362c81afd80b1c656cad31c1e5e8d88e978d468676d27dda66c3eeb13f2534d2249b8eabd0c62e9839fff1da5b26cf86b3c38965ae4e27ead43890c62cee81f70a5a675465de9fc46afc80c4f3280eb3b51a2af3997f1532d4613d4bcbfccbaa64d525808ba84ea0dff426370f80477d9b3b5fd2236ec277282719f675bc19e44673e3fe03e7038bf2826565edc68b530a7d75a6547861483b4b5f57059b16dccc78f9d864d7eefafa2ef2ff81d83d7d29370ed0c053359e838ff26615740c517a83f57ea29da9e918bbb48705d2ba77178436959db5490f48f49fa562ba05f2887ef21ee7f05fe6cc4b2d896e8fbd5955294132d0a5f83e2177d2e686e500692aa0526c14d0e7312336cac5dff7dbfc9da25790f4a5d9da3b24d71b6121135825166be846f0eb6c550eead266932ea3142f1ab2e754050c9f20eeffa07dc54d5b27028df91bf552ae4f9cba4bc1f143dfeeaee8f94d84fe5729faefbe6f11691c88683389a9e00bebf9f3797633eee9e7c095405c35f0d76cb3274a24a5a74422b2b24c1647e68b961b8420b56a4b8c725527a7da3ec4e096ecabd5b9ded310c85759ac15486bae8e6012a987b6aa5173d87e3471633e6e346a96b0c3eb0478526490e93071eb332f72a95a7a3e5102d757432cc51184e7d867ad574368fd3e4f8192a964f9c83397d49565ecc74ff5ea09aa0a925a323ede5625f7f090eb8d6a9539ea071ee9237e9c0ac2616455cb2d53ed966071acea208b5059ae8b39e42940d1dc8c37b243889e4dba86c6f1df77784d125e9ca2984284f57e34555e081ee67f67bf5439967976426117c3b8f44df52b035f106b1b56113bf37518662e0a2b3300525427856f785e6f7b8c282da2202cf62c59f81ba764cf1a4470715d4ed9d0d5fe7ff6e8b56d98aa8cddcee4df5de00d17a0d3f540403b796562a0a01c9f21ab7e2f2277c3f88dc5d3d30ff8544136a9b324f90d746e9e94554923fa434248089b16d42c8c0d157ff478804f29a537b123b71abc3f8959d2f76c384ed4993545aa6fab5125780450a013e01446cad5646dd9ef6dd8e9434f4ae8bc42a87c269344f7ee7d276497aa9d86e0dcfd63d38868129188e59954aef1ed46dc9be231f597f0327fc33d5b4d1bf73c129520a8ac299ee782e1e695fb1bf05175180465f3f1952da61f149aa4c8756b8eb3cdefe4f3594ebbb8226d2653025fef562e86dc42ac0cdb6bb39fecd3abee71aff2a32e0eb518c612b9abbc7bfc8e41337fc539f4b134e8bc9fedde2da886b1b339dba3310deed375ae5141fb93ab5738010f07af36e1bf69e519ed38399717776e27a53f2ca1a54d692a017d4abd478730355312fd63cb2712cf8675e01dbcb68f1ffe41e5112c3f4dfe20d2648a5637a6bc177521b05e26b907aa73a6d36c17aaaa4f0b2c3492cbc99412b95f97f8aab983c00f2d9adc4fd07fb06d630b058a0760a0a076936653da91c10c3f542eb68a20c642d2fc05be2fc7a18f76f28699b321cb50c399b001dcf6970a7d30e128966eef56c0dccdec65bb9127bf085eb348c640d3a7f015f3712c54e4529cdfe6ac9152432c790aa2dab81745137ffe52f0ccb656ca7db4a1ded9741908eb8a622c3e248a7fb136aa2c128a2033dc7ce92441d8d80ddd97d5a75e235e36a430fa58383fe2b6370879915a6ae1b0a5c511241e3ddbd572b21cbe25ab97131b18e0579a1ba99b5fbf16e0153a89ca6e4296c7c611fbdd1f5d8b6a5fc44b78b07b17169757b5e1cd3f578fce29e11887585ceabd7018df06ee1a329208a9b3e87fb5b47aab578abf55757012f3eaef578c92c3b96b18298986ea5a85951ebfac94992d1a6721af1af832f8750506cf30ecff9b9b7f46b6d482a06778aa367675c61be447d33f05bcca8ee73b342f193437e23b82c5651c773de21b5bf175a5679a1ae297c6b66abdae129bb8d88714d6c088b3bf54025c298a27a59c84a5b22820b8065988a9beef774d89bf14a25e229f7ad614980ce5566fa5a4b54cf2f3a40a609924e3c977c589ac11ee4045ee8e576843e2d94cb7eaa5ad691fd743c725054b5c23692b29f86b38487caf5f41ccc64ab469e2430231421b117bfd5c46a283433d9d14d8208881dca298c02028d2a080708a2ad6b8df18b0bfb7f64ca1bd3b5b1c89fca9ab0e4f8a49a30a700f4a2e2f32cfafff995ff7c813a6ca4d8dc980c6f6ef2ff46327f6f247448be410ab52875703efceea1222a85104a436ce1f292f7c07ce1d67f93fcc7227e24f5d98a2b5a804b6663f98187b280c7576a51b4c2ddf3aead3354aecc9433d4f9309c4f24df1b17212a3ce692b8a17e008be3522756d1bc960202507f7d94299bc0574939d8d08e721cd3880eb20e7bf0005c0a69b221f2db1061b2d4f1a9f63c143a131f6ceed361b2b06df0173625db47fd13acfbc36f8c5e32d5a93eacc3af1fa3a1a292beb9206ec9d7a1370da6b7ca14657eaa5d9a51cc41ecb670e6850a750ff3a7f21d433cd27c3dae11fd26e21ba6fde42cb185f8a3e50b7747487ac79dc5bb4853b1a8859b9b3ae82cb3966177ace50bfe0fc5a1fcc6cdafdba6abda698f59467cd019459aa345576ce477e1afaa500d2f65eca36e09d1faea9ab497bad9c9e0c62ff7e1621c21a5bf2550d70516f1b6e45c86c541274e5e3a296e6fbb0994f623919bb35635bbd9d2c097c991b30622eac49557af0951139edb84a4607531f4a1937129f0e78c95cde56559925103a25201838e802a01d81f259a5ae1c12f0ce5244c3a443bec2a933801509dfe6a79684bda6ead69cb8a50831338e7b7e48d7302269ecf7941f8244946b2894a4bb4b6af93c49d570333193910f1d52d24bd3b607c5a6182081a62c4f79314259d606c75f0b9185b3287521c34f30130369d19b9c787c1ce5cc2198eaea45d3e84c6989428e5e0fef7d03e820a65e1d3a1a23c85b4894d9ff820da6333b20070ae575b4e88f8282821d7e6eeb23f453c1436da8d40caa24e05ca01b2ddf56d767f84c4f098e5058f2433a6230b9dfef5ddb20680e3fd7003f7c6dce6b2fbe38fa5b9fe89a0995b417be89282d05dbacea021d15b435c7462e68a3b2b05e776faa6e567d7f5bc6be1982fec3d03956ec8d4afe59a9baa551b3bbd99ed5308135e533d7db48efe82efe33b0aed9eed100dc9a4c7b2d9f70709a2ff3c29e1fcda70782340cb1a38dcc678f7a53aa42ce05623f202f58b218443b1e65b8991c6a4b7ac1e06d876cd61b94e20c5a4a19b25cc70140a12a62e0330ebbf976ef023cfe93b686e016ec4745e7dfc9ff877b5514017b16426e021729eb13fe2df70bee472e936045d35a31723e92c5263aabc2809457de69df49936af1afc2a2d792b38b98dcbde07bc96778aed9574250cb85c3de9f9a7126a0a7cbbcc287562d29da75810c48405b6c85b0726f1f8ae9464733dd2a60146163ca4ba4ba3095a019a76d0f77b2fbe652aa401b2ea24610362c1888566d4b47d0a83c79241609e610bb0c6c023b309463d5026450d16c74a181fab38a260e0d6a6edbe6de69028d73256e49db7f6d12a41274280dbd9c0c4bf54d31297e44a88780fc0cf4dbb70d8a4ac6673b60e23d3b7234399040cd11285a6575d5b3412120234c17e24132221afe441c6c905a2af7d552d463f458d5d1b2eb22439b48de2833bb604bc7b429c00cc2c3ea806c6512a6a51ab56b88bb4edd7c4c9408f8f00e52413264aa0c50b44c6e176d05rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootcppad-20220000.4-1.el8.src.rpmcppad-doc    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3b@b D@ar@a a@aa@a@` @`D@`;`.V`>`@`@_w@_%Y@_%Y@_^0"@^)^ @]@]Ik]8H@\t@\T4\T4\R@[GBZz@ZKt@ZJ"Z YYx@X9@XX@X@XVVj@Ua@U) TPTء@T@TSGSRa@RR@QQ/FQ@Q@P @PP@P@PP@O@NMQ0@M6@M5M4/@M)@M(QL5K9@KrK=Ji@J<@J*Z@Iд@IbI@HG@GGGGZ@GG@G@Gv6GsGpGkGjY@GjY@GZ@GSBrad Bell - 20220000.4-1Brad Bell - 20220000.1-1Brad Bell - 20220000.1-1Brad Bell - 20220000.1-1Brad Bell - 20220000.1-1Brad Bell - 20220000.1-1Fedora Release Engineering - 20210000.7-2Brad Bell - 20210000.7-1Fedora Release Engineering - 20210000.5-3Brad Bell - 20210000.5-2Brad Bell - 20210000.5-1Brad Bell - 20210000.3-3Brad Bell - 20210000.3-2Brad Bell - 20210000.3-1Fedora Release Engineering - 20200000.0-8Brad Bell - 20200000.0-7Brad Bell - 20200000.0-6Fedora Release Engineering - 20200000.0-5Fedora Release Engineering - 20200000.0-4Fedora Release Engineering - 20200000.0-3Brad Bell - 20200000.0-2Brad Bell - 20200000.0-1Brad Bell - 20190200.4-2Brad Bell - 20190200.4-1Fedora Release Engineering - 20190200.0-4Brad Bell - 20190200.0-3Brad Bell - 20190200.0-2Brad Bell - 20190200.0-1Fedora Release Engineering - 20180000.0-4Fedora Release Engineering - 20180000.0-3Fedora Release Engineering - 20180000.0-2Brad Bell - 20180000.0-1Brad Bell - 20180000.0-1Brad Bell - 20170000.4-3Fedora Release Engineering - 20170000.4-3Fedora Release Engineering - 20170000.4-2Brad Bell - 20170000.4-1Brad Bell - 20170000.3-1Brad Bell - 20170000.1-3Fedora Release Engineering - 20170000.1-2Brad Bell - 20170000.1-1Fedora Release Engineering - 20160000.0-2Brad Bell - 20160000.0-1Fedora Release Engineering - 20150000.9-3Brad Bell - 20150000.9-2Brad Bell - 20150000.9-1Brad Bell - 20150000.4-3Brad Bell - 20150000.4-2Brad Bell - 20150000.4-1Fedora Release Engineering - 20140000.2-3Fedora Release Engineering - 20140000.2-2Brad Bell - 20140000.2-1Brad Bell - 20130000.3-1Fedora Release Engineering - 20130000.2-2Brad Bell - 20130000.2-1Brad Bell - 20130000.1-3Fedora Release Engineering - 20130000.1-2Brad Bell - 20130000.1-1Brad Bell - 20130000.0-3Brad Bell - 20130000.0-2Brad Bell - 20130000.0-1Ralf Corsépius - 20120101.1-3Fedora Release Engineering - 20120101.1-2Brad Bell - 20120101.1-1 Brad Bell - 20110101.5-1Fedora Release Engineering - 20110101.2-4Brad Bell - 20110101.2-3Brad Bell - 20110101.2-2Brad Bell - 20110101.2-1 Brad Bell - 20110101.0-2Brad Bell - 20110101.0-1Brad Bell - 20100101.4-1Brad Bell - 20100101.2-1Brad Bell - 20100101.0-2Brad Bell - 20100101.0-1Fedora Release Engineering - 20090303.0-5Brad Bell 20090303-4Brad Bell 20090303-3Brad Bell 20090303-2Brad Bell 20090303-1Fedora Release Engineering - 20080826.0-2Brad Bell 20080826-1Brad Bell 20080403-3Brad Bell 20080403-2Brad Bell 20080403-1Brad Bell 20071229-6Brad Bell 20071229-5Brad Bell 20071229-4Brad Bell 20071229-3Brad Bell 20071229-2Brad Bell 20071229-1Brad Bell 20071225-2Brad Bell 20071225-1Brad Bell 20071221-1Brad Bell 20071208-2Brad Bell 20071208-1Brad Bell 20071208-1Brad Bell 20071203-1- Advance to upstream 20220000.4. Main motivation for this is to make cppad_eigen.hpp work with Eigen 3.4.0.- Not necessary to advance to 20220000.2 because Fedora build is getting correct result for cppad.pc.- Try commenting out to_string test of long double on ppc56le arch. This problem does not reproduce on ppc64le-test.fedorainfracloud.org.- Modify to_string.cpp patch to print out more information on failure. - Add simple program to print machine epsilon before any other testing.- Fix following long standing typos in cmake command: - 1. cppad_test_vector -> cppad_testvector - 2. cppad_max_num_theads -> cppad_max_num_threads - Temporary change to debug ppc64le build failure: replace to_string.cpp - Replace temporary change by a patch to example/utility/to_string.cpp- Advance to upstream source 20220000.1 - Add -Wno-array-bounds to compiler flags (see remarks about this flag)- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild- Advance to upstream source 20210000.7- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild- Remove %debug_package (not necessary to create debug info). - Use %setup to unpack tarballs (sets premissions properly). - Add comments about using %clean to check BUILDROOT.- Advance to upstream source 20210000.5 - Remove patches that are no longer necessary. - Change: Source1, Source2 -> Source0, Source1. - Change: make %{?_smp_mflags} -> %make_build - Change: make install DESTDIR=%{buildroot} -> %make_install.- Patch corresponding to bug fix in upstream source 20210000.5- Patch corresponding to bug fix in upstream source 20210000.4- Advance to upstream source 20210000.3 - Remove patches that are no longer necessary. - Update cmake command line to new version of upstream source.- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild- Add _smp_mflags to the make check command (parallel make) - Build Debuginfo version of the cppad_lib library.- define __cmake_in_source_build see: https://docs.fedoraproject.org/en-US/packaging-guidelines/CMake/ - Change soversion edit so modified soversion displayed during cmake command- Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild- Remove comment about object library becasue install libcppadlib.so - Patch to not install empty include (in 20200000.1 upstream) - Patch to not use GreaterThanZero during reverse mode (in 2020000.2) - Remove PowTestSeven which tested the GreaterThanZeor in reverse mode- Advance to version 2020 of cppad - This is a major change because it we need to install the binary cppad_lib. - No longer have lint error because must build library before installing. - Remove patch for upstream source < 20190200.5. - No debug_package, so need to ensure CPPAD_DEBUG_AND_RELEASE always defined. - cppad_deprecatred is no longer in cmake command line. - cppad_debug_which is set to debug_all and overridden for cppad_lib directory.- fedpkg lint now reconizes EPL-2.0 license so remove comment about its error - Use sed edit of 20190200.4 to obtain bug fix that is in 20190200.5- Bug fix by advancing to upstream source 20190200.4- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild- Bug fix corresponding to upstream source 20190200.3. - Fix license field and add comment at top about fedpkg lint license mistake.- Test with corrected version of source2; i.e., 20190200.doc.tar.gz- Advance to version 2019 of cppad (actually 2019-02). - Home page and sources have moved to github. - Documentation is now a separate source tarball. - Copyright changed from GPL3 -> EPL2 with GPL2 or later option. - Change tabs to spaces and add 'vim: setexpandtab' command at top. - Install pkgconfig files in both data and lib directories.- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild- fedpkg lint no longer generates spelling error for use of 'devel'. - Comment out %clean because only the normal build area is used. - Change minumum cmake version to 2.8 (needed for epel7 branch). - Use comments to better group to sections of the spec file.- Advance to version 2018 of cppad.- Use sed to add bug fix corresponding to cppad-20170000.8.- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild- Advance to 20170000.4 to take advantage of some upstrean bug fixes.- Advance to 20170000.3 to take advantage of some upstrean bug fixes. - The results of cmake comman depend on the architecture, so remove 'noarch' - see https://bugzilla.redhat.com/show_bug.cgi?id=1427391- patch source to fix bug in ForSparseHes.- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild- Advance to version 2017 of cppad. - New link for discussion of fedpkg lint warning rpm-builroot-usage - (old link seems to have disappeared). - Change CMakeLists.txtbak -> CMakeLists.txt.bak. - Use find to create list of CMakeLists.txt files and check that edit - of these files goes as expected. - Include explicit setting of all possible cmake command options - (empty prefix setting correspond to packages not included). - cppad_sparse_list=YES removed (YES is now always chosen by upstream source) - Change some comparisons to properly scale to machine epsilon.- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild- Advance to version 2016 of cppad. - Remove patch for static testing library (fixed upstream). - Remove patch to avoid install of cppad_colpack.cpp (fixed upstream). - Change cmake_install_prefix -> cppad_prefix (changed upstream). - Change c++98 to c++11 so installed version can support both (new capability). - Remove setting cppad_implicit_ctor_from_any type (no longer in upstream). - Add setting cppad_deprecated (new upstream flag). - Change original copy of files from *.stamp to *.bak - Patch CMakeLists.txt files to remove building and use of cppad_lib object.- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild- Move Provides coin-or-cppad below %package-devel; - see https://bugzilla.redhat.com/show_bug.cgi?id=1197488- 1: Advance to newer version of upstream source to fix some bugs. - 2: Remove patch of test_more/optimize.cpp which is no longer necessary. - 3: Add Provides coin-or-cppad.- 1: Change std=c++11 to std=c++98 so works with rel6 (also so works - in f20 and f21 when std=c++11 is not specified). - 2: Change speed/src/libspeed_src to be a static library because it is only - used for testing (shared library was not being found on epl6). - 3: Cleanup %{buildroot} at start so it can be used for debugging on failure. - 4: Fix an exact equal check that should have been a near equal check.- Fix rmplint warning about macro-in-comment. - Edit comments at top of about warnings that won't be fixed.- Advance to version 2015 of cppad. - Ensure cmake >= 2.8; see https://bugzilla.redhat.com/show_bug.cgi?id=896116 - Remove patch for location of docdir (fixed upstream). - Patch CMakeLists.txt to remove install of cppad_colpack.cpp (it is not used). - List all cmake options (including defaults) that are used by this install.- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild- Advance to version 2014 of cppad. - Add link to web discussion about rpm-buildroot-usage warning. - Fix rpmlint warning about mixing tabs and spaces in spec file.- 1. Use new upstream source to fix warnings generated by g++ 4.8.1. - 2. As per https://fedoraproject.org/wiki/Changes/UnversionedDocdirs - move xml documentation from /usr/share/doc/%{name}-%{version} to - /usr/share/doc/%{name}- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild- Fix bug https://bugzilla.redhat.com/show_bug.cgi?id=913929 - in the upstream soruce and use the corresponding upstream release. - Note, the previous commit, 20130000.1-3, could have been avoided using - https://fedoraproject.org/wiki/Using_the_Koji_build_system#Scratch_Builds- Attempt to reproduce failure reported in bug id=913929 - (The build logs were deleted because I did not get to this soon enough)- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild- Use a new upstream source. - Remove the patches that were fixed in the upstream source. - Convert tabs to spaces (avoid rpmlint warning). - Fix rpmlint warning for cppad-doc group warning. - Add comment for rpmlint warning about using buildroot.- The patch.sed script in this file is for a final test of a solution on the - remote machine. Expect to modify upstream source so it is not necessary.- Debugging build to try to understand failure of test_more/epsilon.cpp - on a remote machine that I do not have access to.- Advance to version 2013 of cppad. - Remove old patches that are no longer necessary. - Convert from auto-tools to cmake build system. - Add new patches (using sed in setup section) that are now necessary. - Fix some bogus dates in change log by changing day of the week. - Getting folloing incorrect warning from g++ during rpmbuild: - .../cppad/thread_alloc.hpp:203:44: ... subsrcipt is above array bounds ...- Switch to arch'ed BuildArch.- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild- Advance to version 2012 of cppad. - Remove old patches that are no longer necessary. - Add new patches (using sed in setup section) that are now necessary. - Change comments about rpmlint output (using more recent version).- Advance to next 2011 release to fix warnings generated by g++ 4.6.1. - Fix comment as to when certain sed patching will no longer be necessary. - Make sed patching of permissions in doc destination directory more specific.- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild- Remove duplicate test results from build.log - Improve comments before patching top level makefile.in. - Fix rpmlint warnings about %{_docdir}, %{name}, and %{version} in comments. - Fix rpmlint warning by changing tabs to spaces. - Fix rpmlint wrning by removing dot at end of Summary. - Change RPM_BUILD_ROOT to _builddir. - Improve comments (at top) about know rpmlint warnings.- Fix rpmlint error, libdir-macro-in-noarch-package by moving the pkg-config - file cppad.pc from %_libdir to %_datadir. - Improve the %Summary and %description entries. - Fix some rpmlint spelling warnings including xml -> XML, html -> HTML. - Document (at top of spec file) reason for other warnings that are not fixed.- The fedora source 20110101.0 has the worng check sum, get new upstream source. - Remove sed patches for problems that were fixed in upstream source. - Change makefile.in so tests include from install (not distribute) directory - (see comments above `find . -name 'makefile.in` above).- Remove include/cppad_ipopt_nlp.hpp from distribution. - Remove lib/libspeed.a from distribution. - Add lib/pkgconfig/cppad.pc to files section (because it is installed). - Use a single sed script file with comments to do all the makefile.in edits. - Remove edits of makefile.am (not used so not reason to patch it).- Use new major version for 2011. - abs_top_builddir is missing from definitions in makefile.in - (should be fixed in future versions of cppad). - The single command "make test" now builds and runs all the tests.- Use new upstream source which has bug fix at revision - https://projects.coin-or.org/CppAD/changeset/1698- Use new upstream source with bug fixes at revision - https://projects.coin-or.org/CppAD/changeset/1664 - and remove patch from Wed Feb 10 2010.- Patch sources for bug fix between 20100101.0 and 20100101.1. - This should no longer be necessary once a new upstream source is loaded.- Use new upstream source. - Remove out of date comment about where this spec file is maintained. - Remove patches that are no longer necessary in prep section. - Change calling sequence for correctness of speed tests (we do not run speed - tests, that requires a computer with no other processes running).- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild- Patch cppad/local/fun_construct.hpp to give a more useful error message - (so we can figure out why the Fedora 11 build is failing).- Patch file test_more/jacobian.cpp (required for versions below 20090606). - Patch file cppad/local/default.hpp (required for versions below 20090606). - Fix version (change 20080303 to 20090303) in previous two log entries.- Change tabs to spaces in spec file to avoid an rpmlint warning. - The base package in previous release had no files, hence did not exist. - Use Provides: in cppad-devel to indicate that it provides cppad.- Change to newer version of cppad. - Create a base package that requres both devel and doc sub-packages- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild- Change to newer version of cppad. - Change download directory to standard coin-or location. - Remove editing of speed/main.cpp (no longer necessary). - Add retape argument to check programs in speed directory.- Patch speed/main.cpp work with newer version of gcc - (speed/main.cpp had not been tested with new version of gcc.)- Upload new source with the command - make new-sources FILES="cppad-20080403.gpl.tgz"- New upstream version- Remove speed estimation correctness test because we are not in control of - which other jobs are on the machine that is doing the rpmbuild.- Remove introduction/exp_apx/exp_apx from the set of tests - (which should have been done in 20071229-4). - From now on test building rpm locally before making tags.- Add code to print out DBL_EPSILON at the beginning of the example tests. - Remove --with-Introduction (it only checks by hand calculations that are in - AD Introduction section of the documentation). - Remove extra --with-Documentation- I mistakenly tried to make tag 20071229-2 in devel before committing local - changes. It appears tag was partially created, but not sure it is correct. - So I am bumping the version number.- Cygwin's version of md5sum puts a between the check sum - and the file name. Fedora build tools expect two spaces, so the star has - was changed to a space in the devel, F-7, and F-8 sources file.- Fix gpl_license.sh in upstream source (missed some special cases).- Fix spelling errors in this file and day of the week errors in %changelog. - Add ChangeLog, AUTHORS, uw_copy_040507.html to devel %doc files.- %Source points to newly created directory for archived versions cppad - modify makefile.in so does not set permissions for documentation files- Added introduction/exp_apx/exp_apx to the list of correctness tests. - Use % to avoid macro expansion in %changelog. - Remove tabs from this spec file. - Remove period from end of base package summary. - Change upstream makefile.am so that it copies directories instead of files.- Increment release number each time a new spec file is uploaded. - Use the commands %configure, %check. - Remove the %doc command. - Use more macros, including %{?_smp_mflags}, %{_includedir}, %{_docdir}.- Remove comments, except for those that are useful to a fedora reviewer. - Use different Summary and description for each sub-package. - Use %{?dist} in Release entry. - Use %(%{__id_u} -n) in BuildRoot entry. - Use noarch in BuildArch entry. - Move -rf RPM_BUILD_ROOT from prep entry to install entry. - Use macros where possible.- Fix all but one rpmlint warning (see Notes at beginning of this file).- first version of cppad that included RPM spec file.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP20220000.4-1.el8cppad__contents_htm.js__external_htm.js__index_htm.js__reference_htm.js__search_htm.js_a11c_bthread.cpp_htm.js_a11c_openmp.cpp_htm.js_a11c_pthread.cpp_htm.js_abort_recording.cpp_htm.js_abort_recording_htm.js_abs_eval.cpp_htm.js_abs_eval.hpp_htm.js_abs_eval_htm.js_abs_get_started.cpp_htm.js_abs_htm.js_abs_min_linear.cpp_htm.js_abs_min_linear.hpp_htm.js_abs_min_linear_htm.js_abs_min_quad.cpp_htm.js_abs_min_quad.hpp_htm.js_abs_min_quad_htm.js_abs_normal_fun_htm.js_abs_print_mat_htm.js_acos.cpp_htm.js_acos_forward_htm.js_acos_htm.js_acos_reverse_htm.js_acosh.cpp_htm.js_acosh_htm.js_ad_assign.cpp_htm.js_ad_assign_htm.js_ad_binary_htm.js_ad_ctor.cpp_htm.js_ad_ctor_htm.js_ad_fun.cpp_htm.js_ad_htm.js_ad_in_c.cpp_htm.js_ad_input.cpp_htm.js_ad_input_htm.js_ad_output.cpp_htm.js_ad_output_htm.js_ad_to_string_htm.js_add.cpp_htm.js_addeq.cpp_htm.js_addon_htm.js_adfun_htm.js_adolc_alloc_mat_htm.js_adolc_det_lu.cpp_htm.js_adolc_det_minor.cpp_htm.js_adolc_htm.js_adolc_mat_mul.cpp_htm.js_adolc_ode.cpp_htm.js_adolc_poly.cpp_htm.js_adolc_sparse_hessian.cpp_htm.js_adolc_sparse_jacobian.cpp_htm.js_advalued_htm.js_appendix_htm.js_arithmetic_htm.js_asin.cpp_htm.js_asin_forward_htm.js_asin_htm.js_asin_reverse_htm.js_asinh.cpp_htm.js_asinh_htm.js_atan.cpp_htm.js_atan2.cpp_htm.js_atan2_htm.js_atan_forward_htm.js_atan_htm.js_atan_reverse_htm.js_atanh.cpp_htm.js_atanh_htm.js_atomic_htm.js_atomic_one_htm.js_atomic_three_afun_htm.js_atomic_three_base2ad.cpp_htm.js_atomic_three_ctor_htm.js_atomic_three_dynamic.cpp_htm.js_atomic_three_example_htm.js_atomic_three_for_type_htm.js_atomic_three_forward.cpp_htm.js_atomic_three_forward_htm.js_atomic_three_get_started.cpp_htm.js_atomic_three_hes_sparsity.cpp_htm.js_atomic_three_hes_sparsity_htm.js_atomic_three_htm.js_atomic_three_jac_sparsity.cpp_htm.js_atomic_three_jac_sparsity_htm.js_atomic_three_mat_mul.cpp_htm.js_atomic_three_mat_mul.hpp_htm.js_atomic_three_norm_sq.cpp_htm.js_atomic_three_reciprocal.cpp_htm.js_atomic_three_rev_depend.cpp_htm.js_atomic_three_rev_depend_htm.js_atomic_three_reverse.cpp_htm.js_atomic_three_reverse_htm.js_atomic_three_tangent.cpp_htm.js_atomic_three_vector_op.cpp_htm.js_atomic_two_afun_htm.js_atomic_two_clear_htm.js_atomic_two_ctor_htm.js_atomic_two_eigen_cholesky.cpp_htm.js_atomic_two_eigen_cholesky.hpp_htm.js_atomic_two_eigen_mat_inv.cpp_htm.js_atomic_two_eigen_mat_inv.hpp_htm.js_atomic_two_eigen_mat_mul.cpp_htm.js_atomic_two_eigen_mat_mul.hpp_htm.js_atomic_two_example_htm.js_atomic_two_for_sparse_hes_htm.js_atomic_two_for_sparse_jac_htm.js_atomic_two_forward_htm.js_atomic_two_htm.js_atomic_two_option_htm.js_atomic_two_rev_sparse_hes_htm.js_atomic_two_rev_sparse_jac_htm.js_atomic_two_reverse_htm.js_autotools_htm.js_azmul.cpp_htm.js_azmul_htm.js_base2ad.cpp_htm.js_base2ad_htm.js_base_adolc.hpp_htm.js_base_alloc.hpp_htm.js_base_complex.hpp_htm.js_base_cond_exp_htm.js_base_double.hpp_htm.js_base_example_htm.js_base_float.hpp_htm.js_base_hash_htm.js_base_identical_htm.js_base_limits_htm.js_base_member_htm.js_base_ordered_htm.js_base_require.cpp_htm.js_base_require_htm.js_base_std_math_htm.js_base_to_string_htm.js_bender_quad.cpp_htm.js_benderquad_htm.js_bib_htm.js_binary_math_htm.js_bool_fun.cpp_htm.js_boolfun_htm.js_boolvalued_htm.js_capacity_order.cpp_htm.js_capacity_order_htm.js_change_param.cpp_htm.js_check_for_nan.cpp_htm.js_check_for_nan_htm.js_check_numeric_type.cpp_htm.js_check_simple_vector.cpp_htm.js_checknumerictype_htm.js_checksimplevector_htm.js_childtable_abort_recording_htm.js_childtable_abs_eval_htm.js_childtable_abs_htm.js_childtable_abs_min_linear_htm.js_childtable_abs_min_quad_htm.js_childtable_abs_normal_fun_htm.js_childtable_acos_htm.js_childtable_acosh_htm.js_childtable_ad_assign_htm.js_childtable_ad_binary_htm.js_childtable_ad_ctor_htm.js_childtable_ad_htm.js_childtable_ad_input_htm.js_childtable_ad_output_htm.js_childtable_adfun_htm.js_childtable_advalued_htm.js_childtable_appendix_htm.js_childtable_arithmetic_htm.js_childtable_asin_htm.js_childtable_asinh_htm.js_childtable_atan2_htm.js_childtable_atan_htm.js_childtable_atanh_htm.js_childtable_atomic_htm.js_childtable_atomic_three_example_htm.js_childtable_atomic_three_forward_htm.js_childtable_atomic_three_hes_sparsity_htm.js_childtable_atomic_three_htm.js_childtable_atomic_three_jac_sparsity_htm.js_childtable_atomic_three_mat_mul.cpp_htm.js_childtable_atomic_three_rev_depend_htm.js_childtable_atomic_three_reverse_htm.js_childtable_atomic_two_eigen_cholesky.cpp_htm.js_childtable_atomic_two_eigen_mat_inv.cpp_htm.js_childtable_atomic_two_eigen_mat_mul.cpp_htm.js_childtable_atomic_two_example_htm.js_childtable_atomic_two_htm.js_childtable_azmul_htm.js_childtable_base2ad_htm.js_childtable_base_adolc.hpp_htm.js_childtable_base_complex.hpp_htm.js_childtable_base_example_htm.js_childtable_base_require_htm.js_childtable_benderquad_htm.js_childtable_binary_math_htm.js_childtable_boolfun_htm.js_childtable_boolvalued_htm.js_childtable_capacity_order_htm.js_childtable_check_for_nan_htm.js_childtable_checknumerictype_htm.js_childtable_checksimplevector_htm.js_childtable_chkpoint_two_htm.js_childtable_cmake_htm.js_childtable_code_gen_fun_htm.js_childtable_colpack_prefix_htm.js_childtable_compare_c_htm.js_childtable_compare_change_htm.js_childtable_compare_htm.js_childtable_compound_assign_htm.js_childtable_con_dyn_var_htm.js_childtable_condexp_htm.js_childtable_convert_htm.js_childtable_cos_htm.js_childtable_cosh_htm.js_childtable_cpp_ad_graph_htm.js_childtable_cpp_graph_htm.js_childtable_cpp_graph_print_htm.js_childtable_cppad_eigen.hpp_htm.js_childtable_cppad_htm.js_childtable_cppad_vector_htm.js_childtable_deprecated_htm.js_childtable_det_33_htm.js_childtable_det_by_lu_htm.js_childtable_det_by_minor_htm.js_childtable_det_grad_33_htm.js_childtable_det_of_minor_htm.js_childtable_discrete_htm.js_childtable_drivers_htm.js_childtable_elapsed_seconds_htm.js_childtable_equalopseq_htm.js_childtable_erf_htm.js_childtable_erfc_htm.js_childtable_errorhandler_htm.js_childtable_example_abs_normal_htm.js_childtable_example_htm.js_childtable_exampleutility_htm.js_childtable_exp_2_for0_htm.js_childtable_exp_2_for1_htm.js_childtable_exp_2_for2_htm.js_childtable_exp_2_htm.js_childtable_exp_2_rev1_htm.js_childtable_exp_2_rev2_htm.js_childtable_exp_eps_for0_htm.js_childtable_exp_eps_for1_htm.js_childtable_exp_eps_for2_htm.js_childtable_exp_eps_htm.js_childtable_exp_eps_rev1_htm.js_childtable_exp_eps_rev2_htm.js_childtable_exp_htm.js_childtable_expm1_htm.js_childtable_for_hes_sparsity_htm.js_childtable_for_jac_sparsity_htm.js_childtable_forone_htm.js_childtable_forsparsehes_htm.js_childtable_forsparsejac_htm.js_childtable_fortwo_htm.js_childtable_forward_dir_htm.js_childtable_forward_htm.js_childtable_forward_order_htm.js_childtable_forwardtheory_htm.js_childtable_from_graph_htm.js_childtable_from_json_htm.js_childtable_fun_property_htm.js_childtable_funcheck_htm.js_childtable_funconstruct_htm.js_childtable_function_name_htm.js_childtable_general_htm.js_childtable_get_optional.sh_htm.js_childtable_graph_op_enum_htm.js_childtable_harmonic.cpp_htm.js_childtable_hessian_htm.js_childtable_independent_htm.js_childtable_index_sort_htm.js_childtable_install_htm.js_childtable_integer_htm.js_childtable_introduction_htm.js_childtable_ipopt_solve_htm.js_childtable_jacobian_htm.js_childtable_json_ad_graph_htm.js_childtable_json_graph_op_htm.js_childtable_link_routines_htm.js_childtable_log10_htm.js_childtable_log1p_htm.js_childtable_log_htm.js_childtable_lp_box_htm.js_childtable_lu_vec_ad.cpp_htm.js_childtable_ludetandsolve_htm.js_childtable_lufactor_htm.js_childtable_luinvert_htm.js_childtable_luratio_htm.js_childtable_lusolve_htm.js_childtable_mat_sum_sq_htm.js_childtable_min_nso_linear_htm.js_childtable_min_nso_quad_htm.js_childtable_mul_level_htm.js_childtable_multi_atomic_three.cpp_htm.js_childtable_multi_atomic_two.cpp_htm.js_childtable_multi_chkpoint_one.cpp_htm.js_childtable_multi_chkpoint_two.cpp_htm.js_childtable_multi_newton.cpp_htm.js_childtable_multi_thread_htm.js_childtable_nan_htm.js_childtable_nearequal_htm.js_childtable_nearequalext_htm.js_childtable_new_dynamic_htm.js_childtable_number_skip_htm.js_childtable_numeric_ad_htm.js_childtable_numeric_limits_htm.js_childtable_numerictype_htm.js_childtable_ode_evaluate_htm.js_childtable_odeerrcontrol_htm.js_childtable_odegear_htm.js_childtable_odegearcontrol_htm.js_childtable_omp_alloc_htm.js_childtable_opt_val_hes_htm.js_childtable_optimize_htm.js_childtable_other_adfun_htm.js_childtable_poly_htm.js_childtable_pow_htm.js_childtable_pow_int_htm.js_childtable_printfor_htm.js_childtable_qp_box_htm.js_childtable_qp_interior_htm.js_childtable_record_adfun_htm.js_childtable_rev_hes_sparsity_htm.js_childtable_rev_jac_sparsity_htm.js_childtable_reverse_any_htm.js_childtable_reverse_htm.js_childtable_reverse_one_htm.js_childtable_reverse_two_htm.js_childtable_reversetheory_htm.js_childtable_revone_htm.js_childtable_revsparsehes_htm.js_childtable_revsparsejac_htm.js_childtable_revtwo_htm.js_childtable_rombergmul_htm.js_childtable_rombergone_htm.js_childtable_rosen34_htm.js_childtable_runge45_htm.js_childtable_set_union_htm.js_childtable_sign_htm.js_childtable_simplevector_htm.js_childtable_simplex_method_htm.js_childtable_sin_htm.js_childtable_sinh_htm.js_childtable_sparse2eigen_htm.js_childtable_sparse_derivative_htm.js_childtable_sparse_hes_fun_htm.js_childtable_sparse_hes_htm.js_childtable_sparse_hessian_htm.js_childtable_sparse_jac_fun_htm.js_childtable_sparse_jac_htm.js_childtable_sparse_jacobian_htm.js_childtable_sparse_rc_htm.js_childtable_sparse_rcv_htm.js_childtable_sparsity_pattern_htm.js_childtable_speed_adolc_htm.js_childtable_speed_cppad_htm.js_childtable_speed_cppadcg_htm.js_childtable_speed_double_htm.js_childtable_speed_fadbad_htm.js_childtable_speed_htm.js_childtable_speed_main_htm.js_childtable_speed_sacado_htm.js_childtable_speed_test_htm.js_childtable_speed_utility_htm.js_childtable_speed_xpackage_htm.js_childtable_speedtest_htm.js_childtable_sqrt_htm.js_childtable_subgraph_jac_rev_htm.js_childtable_subgraph_reverse_htm.js_childtable_subgraph_sparsity_htm.js_childtable_tan_htm.js_childtable_tanh_htm.js_childtable_taylor_ode_htm.js_childtable_team_thread.hpp_htm.js_childtable_theory_htm.js_childtable_thread_alloc_htm.js_childtable_thread_test.cpp_htm.js_childtable_time_test_htm.js_childtable_to_json_htm.js_childtable_to_string_htm.js_childtable_unary_standard_math_htm.js_childtable_unaryminus_htm.js_childtable_unaryplus_htm.js_childtable_uniform_01_htm.js_childtable_utility_htm.js_childtable_value_htm.js_childtable_var2par_htm.js_childtable_vecad_htm.js_childtable_whats_new_htm.js_chkpoint_one_htm.js_chkpoint_two_base2ad.cpp_htm.js_chkpoint_two_chk_fun_htm.js_chkpoint_two_compare.cpp_htm.js_chkpoint_two_ctor_htm.js_chkpoint_two_dynamic.cpp_htm.js_chkpoint_two_dynamic_htm.js_chkpoint_two_get_started.cpp_htm.js_chkpoint_two_htm.js_chkpoint_two_ode.cpp_htm.js_cholesky_theory_htm.js_close.gif_closeblue.gif_cmake_check_htm.js_cmake_htm.js_code_gen_fun.cpp_htm.js_code_gen_fun.hpp_htm.js_code_gen_fun_file.cpp_htm.js_code_gen_fun_function.cpp_htm.js_code_gen_fun_htm.js_code_gen_fun_jac_as_fun.cpp_htm.js_code_gen_fun_jacobian.cpp_htm.js_code_gen_fun_sparse_jac_as_fun.cpp_htm.js_code_gen_fun_sparse_jacobian.cpp_htm.js_colpack_hes.cpp_htm.js_colpack_hessian.cpp_htm.js_colpack_jac.cpp_htm.js_colpack_jacobian.cpp_htm.js_colpack_prefix_htm.js_compare.cpp_htm.js_compare_c_htm.js_compare_change.cpp_htm.js_compare_change_htm.js_compare_htm.js_comparechange_htm.js_complex_poly.cpp_htm.js_compound_assign_htm.js_con_dyn_var.cpp_htm.js_con_dyn_var_htm.js_cond_exp.cpp_htm.js_condexp_htm.js_conj_grad.cpp_htm.js_contents.htm_contents.js_convert_htm.js_correct_det_by_minor_c_htm.js_cos.cpp_htm.js_cos_htm.js_cosh.cpp_htm.js_cosh_htm.js_cpp_ad_graph_htm.js_cpp_graph_ctor_htm.js_cpp_graph_htm.js_cpp_graph_print_htm.js_cpp_graph_scalar_htm.js_cpp_graph_vector_htm.js_cppad_assert_htm.js_cppad_det_lu.cpp_htm.js_cppad_det_minor.cpp_htm.js_cppad_eigen.hpp_htm.js_cppad_htm.js_cppad_ipopt_nlp_htm.js_cppad_mat_mul.cpp_htm.js_cppad_ode.cpp_htm.js_cppad_poly.cpp_htm.js_cppad_sparse_hessian.cpp_htm.js_cppad_sparse_jacobian.cpp_htm.js_cppad_testvector_htm.js_cppad_vector.cpp_htm.js_cppad_vector_htm.js_cppadcg_det_lu.cpp_htm.js_cppadcg_det_minor.cpp_htm.js_cppadcg_htm.js_cppadcg_mat_mul.cpp_htm.js_cppadcg_ode.cpp_htm.js_cppadcg_poly.cpp_htm.js_cppadcg_sparse_hessian.cpp_htm.js_cppadcg_sparse_jacobian.cpp_htm.js_dependency.cpp_htm.js_dependent_htm.js_deprecated_htm.js_det_33.hpp_htm.js_det_33_htm.js_det_by_lu.cpp_htm.js_det_by_lu.hpp_htm.js_det_by_lu_htm.js_det_by_minor.cpp_htm.js_det_by_minor.hpp_htm.js_det_by_minor_c_htm.js_det_by_minor_htm.js_det_grad_33.hpp_htm.js_det_grad_33_htm.js_det_of_minor.cpp_htm.js_det_of_minor.hpp_htm.js_det_of_minor_c_htm.js_det_of_minor_htm.js_directory_htm.js_discrete_htm.js_div.cpp_htm.js_div_eq.cpp_htm.js_double_det_lu.cpp_htm.js_double_det_minor.cpp_htm.js_double_mat_mul.cpp_htm.js_double_ode.cpp_htm.js_double_poly.cpp_htm.js_double_sparse_hessian.cpp_htm.js_double_sparse_jacobian.cpp_htm.js_download_htm.js_drivers_htm.js_eigen_array.cpp_htm.js_eigen_det.cpp_htm.js_eigen_htm.js_eigen_plugin.hpp_htm.js_elapsed_seconds.cpp_htm.js_elapsed_seconds_c_htm.js_elapsed_seconds_htm.js_epsilon_htm.js_equal_op_seq.cpp_htm.js_equalopseq_htm.js_erf.cpp_htm.js_erf_forward_htm.js_erf_htm.js_erf_reverse_htm.js_erfc.cpp_htm.js_erfc_htm.js_error_handler.cpp_htm.js_errorhandler_htm.js_example_abs_normal_htm.js_example_htm.js_exampleutility_htm.js_exp.cpp_htm.js_exp_2.cpp_htm.js_exp_2.hpp_htm.js_exp_2_cppad_htm.js_exp_2_for0.cpp_htm.js_exp_2_for0_htm.js_exp_2_for1.cpp_htm.js_exp_2_for1_htm.js_exp_2_for2.cpp_htm.js_exp_2_for2_htm.js_exp_2_htm.js_exp_2_rev1.cpp_htm.js_exp_2_rev1_htm.js_exp_2_rev2.cpp_htm.js_exp_2_rev2_htm.js_exp_apx.cpp_htm.js_exp_eps.cpp_htm.js_exp_eps.hpp_htm.js_exp_eps_cppad_htm.js_exp_eps_for0.cpp_htm.js_exp_eps_for0_htm.js_exp_eps_for1.cpp_htm.js_exp_eps_for1_htm.js_exp_eps_for2.cpp_htm.js_exp_eps_for2_htm.js_exp_eps_htm.js_exp_eps_rev1.cpp_htm.js_exp_eps_rev1_htm.js_exp_eps_rev2.cpp_htm.js_exp_eps_rev2_htm.js_exp_forward_htm.js_exp_htm.js_exp_reverse_htm.js_expm1.cpp_htm.js_expm1_htm.js_external.htm_fabs.cpp_htm.js_fadbad_det_lu.cpp_htm.js_fadbad_det_minor.cpp_htm.js_fadbad_mat_mul.cpp_htm.js_fadbad_ode.cpp_htm.js_fadbad_poly.cpp_htm.js_fadbad_prefix_htm.js_fadbad_sparse_hessian.cpp_htm.js_fadbad_sparse_jacobian.cpp_htm.js_faq_htm.js_for_hes_sparsity.cpp_htm.js_for_hes_sparsity_htm.js_for_jac_sparsity.cpp_htm.js_for_jac_sparsity_htm.js_for_one.cpp_htm.js_for_sparse_hes.cpp_htm.js_for_sparse_jac.cpp_htm.js_for_two.cpp_htm.js_forone_htm.js_forsparsehes_htm.js_forsparsejac_htm.js_fortwo_htm.js_forward.cpp_htm.js_forward_dir.cpp_htm.js_forward_dir_htm.js_forward_htm.js_forward_one_htm.js_forward_order.cpp_htm.js_forward_order_htm.js_forward_two_htm.js_forward_zero_htm.js_forwardtheory_htm.js_from_graph_htm.js_from_json.cpp_htm.js_from_json_htm.js_fun_assign.cpp_htm.js_fun_check.cpp_htm.js_fun_property.cpp_htm.js_fun_property_htm.js_funcheck_htm.js_funconstruct_htm.js_function_name.cpp_htm.js_function_name_htm.js_fundeprecated_htm.js_general.cpp_htm.js_general_htm.js_get_adolc.sh_htm.js_get_colpack.sh_htm.js_get_cppadcg.sh_htm.js_get_eigen.sh_htm.js_get_fadbad.sh_htm.js_get_ipopt.sh_htm.js_get_optional.sh_htm.js_get_sacado.sh_htm.js_get_started.cpp_htm.js_glossary_htm.js_graph_add_op.cpp_htm.js_graph_atom_op.cpp_htm.js_graph_azmul_op.cpp_htm.js_graph_cexp_op.cpp_htm.js_graph_comp_op.cpp_htm.js_graph_discrete_op.cpp_htm.js_graph_div_op.cpp_htm.js_graph_mul_op.cpp_htm.js_graph_op_enum_htm.js_graph_pow_op.cpp_htm.js_graph_print_op.cpp_htm.js_graph_sub_op.cpp_htm.js_graph_sum_op.cpp_htm.js_graph_unary_op.cpp_htm.js_harmonic.cpp_htm.js_harmonic_common_htm.js_harmonic_setup_htm.js_harmonic_sum_htm.js_harmonic_takedown_htm.js_harmonic_time_htm.js_harmonic_worker_htm.js_hes_lagrangian.cpp_htm.js_hes_lu_det.cpp_htm.js_hes_minor_det.cpp_htm.js_hes_times_dir.cpp_htm.js_hessian.cpp_htm.js_hessian_htm.js_image.gif_include_deprecated_htm.js_independent.cpp_htm.js_independent_htm.js_index.htm_index_sort.cpp_htm.js_index_sort_htm.js_install_htm.js_integer.cpp_htm.js_integer_htm.js_interface2c.cpp_htm.js_interp_onetape.cpp_htm.js_interp_retape.cpp_htm.js_introduction_htm.js_ipopt_htm.js_ipopt_solve_get_started.cpp_htm.js_ipopt_solve_htm.js_ipopt_solve_ode_inverse.cpp_htm.js_ipopt_solve_retape.cpp_htm.js_jac_lu_det.cpp_htm.js_jac_minor_det.cpp_htm.js_jacobian.cpp_htm.js_jacobian_htm.js_json_ad_graph_htm.js_json_add_op.cpp_htm.js_json_atom_op.cpp_htm.js_json_azmul_op.cpp_htm.js_json_cexp_op.cpp_htm.js_json_comp_op.cpp_htm.js_json_discrete_op.cpp_htm.js_json_div_op.cpp_htm.js_json_get_started.cpp_htm.js_json_graph_op_htm.js_json_mul_op.cpp_htm.js_json_pow_op.cpp_htm.js_json_print_op.cpp_htm.js_json_sparse.cpp_htm.js_json_sub_op.cpp_htm.js_json_sum_op.cpp_htm.js_json_unary_op.cpp_htm.js_license_htm.js_link_det_lu_htm.js_link_det_minor_htm.js_link_mat_mul_htm.js_link_ode_htm.js_link_poly_htm.js_link_routines_htm.js_link_sparse_hessian_htm.js_link_sparse_jacobian_htm.js_listallexamples_htm.js_log.cpp_htm.js_log10.cpp_htm.js_log10_htm.js_log1p.cpp_htm.js_log1p_htm.js_log_forward_htm.js_log_htm.js_log_reverse_htm.js_lp_box.cpp_htm.js_lp_box.hpp_htm.js_lp_box_htm.js_lu_factor.cpp_htm.js_lu_factor.hpp_htm.js_lu_invert.cpp_htm.js_lu_invert.hpp_htm.js_lu_ratio.cpp_htm.js_lu_solve.cpp_htm.js_lu_solve.hpp_htm.js_lu_vec_ad.cpp_htm.js_lu_vec_ad_ok.cpp_htm.js_ludetandsolve_htm.js_lufactor_htm.js_luinvert_htm.js_luratio_htm.js_lusolve_htm.js_main_compare_c_htm.js_mat_sum_sq.cpp_htm.js_mat_sum_sq.hpp_htm.js_mat_sum_sq_htm.js_memory_leak_htm.js_min_nso_linear.cpp_htm.js_min_nso_linear.hpp_htm.js_min_nso_linear_htm.js_min_nso_quad.cpp_htm.js_min_nso_quad.hpp_htm.js_min_nso_quad_htm.js_mul.cpp_htm.js_mul_eq.cpp_htm.js_mul_level.cpp_htm.js_mul_level_adolc.cpp_htm.js_mul_level_adolc_ode.cpp_htm.js_mul_level_htm.js_mul_level_ode.cpp_htm.js_multi_atomic_three.cpp_htm.js_multi_atomic_three_common_htm.js_multi_atomic_three_run_htm.js_multi_atomic_three_setup_htm.js_multi_atomic_three_takedown_htm.js_multi_atomic_three_time_htm.js_multi_atomic_three_user_htm.js_multi_atomic_three_worker_htm.js_multi_atomic_two.cpp_htm.js_multi_atomic_two_common_htm.js_multi_atomic_two_run_htm.js_multi_atomic_two_setup_htm.js_multi_atomic_two_takedown_htm.js_multi_atomic_two_time_htm.js_multi_atomic_two_user_htm.js_multi_atomic_two_worker_htm.js_multi_chkpoint_one.cpp_htm.js_multi_chkpoint_one_algo_htm.js_multi_chkpoint_one_common_htm.js_multi_chkpoint_one_run_htm.js_multi_chkpoint_one_setup_htm.js_multi_chkpoint_one_takedown_htm.js_multi_chkpoint_one_time_htm.js_multi_chkpoint_one_worker_htm.js_multi_chkpoint_two.cpp_htm.js_multi_chkpoint_two_algo_htm.js_multi_chkpoint_two_common_htm.js_multi_chkpoint_two_run_htm.js_multi_chkpoint_two_setup_htm.js_multi_chkpoint_two_takedown_htm.js_multi_chkpoint_two_time_htm.js_multi_chkpoint_two_worker_htm.js_multi_newton.cpp_htm.js_multi_newton_common_htm.js_multi_newton_run_htm.js_multi_newton_setup_htm.js_multi_newton_takedown_htm.js_multi_newton_time_htm.js_multi_newton_worker_htm.js_multi_thread_htm.js_nan.cpp_htm.js_nan_htm.js_near_equal.cpp_htm.js_near_equal_ext.cpp_htm.js_nearequal_htm.js_nearequalext_htm.js_new_dynamic.cpp_htm.js_new_dynamic_htm.js_num_limits.cpp_htm.js_number_skip.cpp_htm.js_number_skip_htm.js_numeric_ad_htm.js_numeric_limits_htm.js_numeric_type.cpp_htm.js_numerictype_htm.js_ode_err_control.cpp_htm.js_ode_err_maxabs.cpp_htm.js_ode_evaluate.cpp_htm.js_ode_evaluate.hpp_htm.js_ode_evaluate_htm.js_ode_gear.cpp_htm.js_ode_gear_control.cpp_htm.js_ode_stiff.cpp_htm.js_odeerrcontrol_htm.js_odegear_htm.js_odegearcontrol_htm.js_old_max_num_threads_htm.js_omp_alloc_htm.js_omp_available_htm.js_omp_create_array_htm.js_omp_delete_array_htm.js_omp_efficient_htm.js_omp_free_available_htm.js_omp_get_memory_htm.js_omp_get_thread_num_htm.js_omp_in_parallel_htm.js_omp_inuse_htm.js_omp_max_num_threads_htm.js_omp_max_thread_htm.js_omp_return_memory_htm.js_open.gif_openblue.gif_opt_val_hes.cpp_htm.js_opt_val_hes_htm.js_optimize_compare_op.cpp_htm.js_optimize_conditional_skip.cpp_htm.js_optimize_cumulative_sum.cpp_htm.js_optimize_forward_active.cpp_htm.js_optimize_htm.js_optimize_nest_conditional.cpp_htm.js_optimize_print_for.cpp_htm.js_optimize_reverse_active.cpp_htm.js_optimize_twice.cpp_htm.js_other_adfun_htm.js_parallel_ad_htm.js_pkgconfig_htm.js_poly.cpp_htm.js_poly.hpp_htm.js_poly_htm.js_pow.cpp_htm.js_pow_forward_htm.js_pow_htm.js_pow_int.cpp_htm.js_pow_int_htm.js_pow_nan.cpp_htm.js_pow_reverse_htm.js_preprocessor_htm.js_print_for_cout.cpp_htm.js_print_for_string.cpp_htm.js_print_graph.cpp_htm.js_printfor_htm.js_qp_box.cpp_htm.js_qp_box.hpp_htm.js_qp_box_htm.js_qp_interior.cpp_htm.js_qp_interior.hpp_htm.js_qp_interior_htm.js_rc_sparsity.cpp_htm.js_record_adfun_htm.js_reference.htm_repeat_det_by_minor_c_htm.js_research_htm.js_rev_checkpoint.cpp_htm.js_rev_hes_sparsity.cpp_htm.js_rev_hes_sparsity_htm.js_rev_jac_sparsity.cpp_htm.js_rev_jac_sparsity_htm.js_rev_one.cpp_htm.js_rev_sparse_hes.cpp_htm.js_rev_sparse_jac.cpp_htm.js_rev_two.cpp_htm.js_reverse_any_htm.js_reverse_htm.js_reverse_identity_htm.js_reverse_one.cpp_htm.js_reverse_one_htm.js_reverse_three.cpp_htm.js_reverse_two.cpp_htm.js_reverse_two_htm.js_reversetheory_htm.js_revone_htm.js_revsparsehes_htm.js_revsparsejac_htm.js_revtwo_htm.js_romberg_one.cpp_htm.js_rombergmul.cpp_htm.js_rombergmul_htm.js_rombergone_htm.js_rosen34_htm.js_rosen_34.cpp_htm.js_runge45_1.cpp_htm.js_runge45_htm.js_runge_45.cpp_htm.js_sacado_det_lu.cpp_htm.js_sacado_det_minor.cpp_htm.js_sacado_mat_mul.cpp_htm.js_sacado_ode.cpp_htm.js_sacado_poly.cpp_htm.js_sacado_prefix_htm.js_sacado_sparse_hessian.cpp_htm.js_sacado_sparse_jacobian.cpp_htm.js_search.htm_search.htm.js_set_union.cpp_htm.js_set_union_htm.js_sign.cpp_htm.js_sign_htm.js_simple_ad_bthread.cpp_htm.js_simple_ad_openmp.cpp_htm.js_simple_ad_pthread.cpp_htm.js_simple_vector.cpp_htm.js_simplevector_htm.js_simplex_method.cpp_htm.js_simplex_method.hpp_htm.js_simplex_method_htm.js_sin.cpp_htm.js_sin_cos_forward_htm.js_sin_cos_reverse_htm.js_sin_htm.js_sinh.cpp_htm.js_sinh_htm.js_size_order_htm.js_sparse2eigen.cpp_htm.js_sparse2eigen_htm.js_sparse_derivative_htm.js_sparse_hes.cpp_htm.js_sparse_hes_fun.cpp_htm.js_sparse_hes_fun.hpp_htm.js_sparse_hes_fun_htm.js_sparse_hes_htm.js_sparse_hessian.cpp_htm.js_sparse_hessian_htm.js_sparse_jac_for.cpp_htm.js_sparse_jac_fun.cpp_htm.js_sparse_jac_fun.hpp_htm.js_sparse_jac_fun_htm.js_sparse_jac_htm.js_sparse_jac_rev.cpp_htm.js_sparse_jacobian.cpp_htm.js_sparse_jacobian_htm.js_sparse_rc.cpp_htm.js_sparse_rc_htm.js_sparse_rcv.cpp_htm.js_sparse_rcv_htm.js_sparse_sub_hes.cpp_htm.js_sparsity_pattern_htm.js_sparsity_sub.cpp_htm.js_speed_adolc_htm.js_speed_cppad_htm.js_speed_cppadcg_htm.js_speed_double_htm.js_speed_example.cpp_htm.js_speed_fadbad_htm.js_speed_htm.js_speed_main_htm.js_speed_program.cpp_htm.js_speed_sacado_htm.js_speed_test.cpp_htm.js_speed_test_htm.js_speed_utility_htm.js_speed_xpackage_htm.js_speedtest_htm.js_sqrt.cpp_htm.js_sqrt_forward_htm.js_sqrt_htm.js_sqrt_reverse_htm.js_stack_machine.cpp_htm.js_sub.cpp_htm.js_sub_eq.cpp_htm.js_sub_sparse_hes.cpp_htm.js_subgraph_hes2jac.cpp_htm.js_subgraph_jac_rev.cpp_htm.js_subgraph_jac_rev_htm.js_subgraph_reverse.cpp_htm.js_subgraph_reverse_htm.js_subgraph_sparsity.cpp_htm.js_subgraph_sparsity_htm.js_switch_var_dyn.cpp_htm.js_ta_available_htm.js_ta_create_array_htm.js_ta_delete_array_htm.js_ta_free_all_htm.js_ta_free_available_htm.js_ta_get_memory_htm.js_ta_hold_memory_htm.js_ta_in_parallel_htm.js_ta_inuse_htm.js_ta_num_threads_htm.js_ta_parallel_setup_htm.js_ta_return_memory_htm.js_ta_thread_num_htm.js_tan.cpp_htm.js_tan_forward_htm.js_tan_htm.js_tan_reverse_htm.js_tanh.cpp_htm.js_tanh_htm.js_tape_index.cpp_htm.js_taylor_ode.cpp_htm.js_taylor_ode_htm.js_team_bthread.cpp_htm.js_team_example.cpp_htm.js_team_openmp.cpp_htm.js_team_pthread.cpp_htm.js_team_thread.hpp_htm.js_test_boolofvoid_htm.js_test_vector_htm.js_testvector_htm.js_theory_htm.js_thread_alloc.cpp_htm.js_thread_alloc_htm.js_thread_test.cpp_htm.js_time_det_by_minor_c_htm.js_time_test.cpp_htm.js_time_test_htm.js_to_graph_htm.js_to_json.cpp_htm.js_to_json_htm.js_to_string.cpp_htm.js_to_string_htm.js_tracknewdel_htm.js_unary_minus.cpp_htm.js_unary_plus.cpp_htm.js_unary_standard_math_htm.js_unaryminus_htm.js_unaryplus_htm.js_uniform_01.hpp_htm.js_uniform_01_c_htm.js_uniform_01_htm.js_utility_htm.js_value.cpp_htm.js_value_htm.js_var2par.cpp_htm.js_var2par_htm.js_vec_ad.cpp_htm.js_vecad_htm.js_vector_bool.cpp_htm.js_whats_new_03_htm.js_whats_new_04_htm.js_whats_new_05_htm.js_whats_new_06_htm.js_whats_new_07_htm.js_whats_new_08_htm.js_whats_new_09_htm.js_whats_new_10_htm.js_whats_new_11_htm.js_whats_new_12_htm.js_whats_new_13_htm.js_whats_new_14_htm.js_whats_new_15_htm.js_whats_new_16_htm.js_whats_new_17_htm.js_whats_new_18_htm.js_whats_new_19_htm.js_whats_new_20_htm.js_whats_new_21_htm.js_whats_new_htm.js_wish_list_htm.js_wno_conversion_htm.js_xpackage_det_lu.cpp_htm.js_xpackage_det_minor.cpp_htm.js_xpackage_mat_mul.cpp_htm.js_xpackage_ode.cpp_htm.js_xpackage_poly.cpp_htm.js_xpackage_sparse_hessian.cpp_htm.js_xpackage_sparse_jacobian.cpp_htm.js_zdouble_htm.jsa11c_bthread.cpp.htma11c_openmp.cpp.htma11c_pthread.cpp.htmabort_recording.cpp.htmabort_recording.htmabs.htmabs_eval.cpp.htmabs_eval.hpp.htmabs_eval.htmabs_get_started.cpp.htmabs_min_linear.cpp.htmabs_min_linear.hpp.htmabs_min_linear.htmabs_min_quad.cpp.htmabs_min_quad.hpp.htmabs_min_quad.htmabs_normal_fun.htmabs_print_mat.htmacos.cpp.htmacos.htmacos_forward.htmacos_reverse.htmacosh.cpp.htmacosh.htmad.htmad_assign.cpp.htmad_assign.htmad_binary.htmad_ctor.cpp.htmad_ctor.htmad_fun.cpp.htmad_in_c.cpp.htmad_input.cpp.htmad_input.htmad_output.cpp.htmad_output.htmad_to_string.htmadd.cpp.htmaddeq.cpp.htmaddon.htmadfun.htmadolc.htmadolc_alloc_mat.htmadolc_det_lu.cpp.htmadolc_det_minor.cpp.htmadolc_mat_mul.cpp.htmadolc_ode.cpp.htmadolc_poly.cpp.htmadolc_sparse_hessian.cpp.htmadolc_sparse_jacobian.cpp.htmadvalued.htmappendix.htmarithmetic.htmasin.cpp.htmasin.htmasin_forward.htmasin_reverse.htmasinh.cpp.htmasinh.htmatan.cpp.htmatan.htmatan2.cpp.htmatan2.htmatan_forward.htmatan_reverse.htmatanh.cpp.htmatanh.htmatomic.htmatomic_one.htmatomic_three.htmatomic_three_afun.htmatomic_three_base2ad.cpp.htmatomic_three_ctor.htmatomic_three_dynamic.cpp.htmatomic_three_example.htmatomic_three_for_type.htmatomic_three_forward.cpp.htmatomic_three_forward.htmatomic_three_get_started.cpp.htmatomic_three_hes_sparsity.cpp.htmatomic_three_hes_sparsity.htmatomic_three_jac_sparsity.cpp.htmatomic_three_jac_sparsity.htmatomic_three_mat_mul.cpp.htmatomic_three_mat_mul.hpp.htmatomic_three_norm_sq.cpp.htmatomic_three_reciprocal.cpp.htmatomic_three_rev_depend.cpp.htmatomic_three_rev_depend.htmatomic_three_reverse.cpp.htmatomic_three_reverse.htmatomic_three_tangent.cpp.htmatomic_three_vector_op.cpp.htmatomic_two.htmatomic_two_afun.htmatomic_two_clear.htmatomic_two_ctor.htmatomic_two_eigen_cholesky.cpp.htmatomic_two_eigen_cholesky.hpp.htmatomic_two_eigen_mat_inv.cpp.htmatomic_two_eigen_mat_inv.hpp.htmatomic_two_eigen_mat_mul.cpp.htmatomic_two_eigen_mat_mul.hpp.htmatomic_two_example.htmatomic_two_for_sparse_hes.htmatomic_two_for_sparse_jac.htmatomic_two_forward.htmatomic_two_option.htmatomic_two_rev_sparse_hes.htmatomic_two_rev_sparse_jac.htmatomic_two_reverse.htmautotools.htmazmul.cpp.htmazmul.htmbase2ad.cpp.htmbase2ad.htmbase_adolc.hpp.htmbase_alloc.hpp.htmbase_complex.hpp.htmbase_cond_exp.htmbase_double.hpp.htmbase_example.htmbase_float.hpp.htmbase_hash.htmbase_identical.htmbase_limits.htmbase_member.htmbase_ordered.htmbase_require.cpp.htmbase_require.htmbase_std_math.htmbase_to_string.htmbender_quad.cpp.htmbenderquad.htmbib.htmbinary_math.htmbool_fun.cpp.htmboolfun.htmboolvalued.htmcapacity_order.cpp.htmcapacity_order.htmchange_param.cpp.htmcheck_for_nan.cpp.htmcheck_for_nan.htmcheck_numeric_type.cpp.htmcheck_simple_vector.cpp.htmchecknumerictype.htmchecksimplevector.htmchkpoint_one.htmchkpoint_two.htmchkpoint_two_base2ad.cpp.htmchkpoint_two_chk_fun.htmchkpoint_two_compare.cpp.htmchkpoint_two_ctor.htmchkpoint_two_dynamic.cpp.htmchkpoint_two_dynamic.htmchkpoint_two_get_started.cpp.htmchkpoint_two_ode.cpp.htmcholesky_theory.htmcmake.htmcmake_check.htmcode_gen_fun.cpp.htmcode_gen_fun.hpp.htmcode_gen_fun.htmcode_gen_fun_file.cpp.htmcode_gen_fun_function.cpp.htmcode_gen_fun_jac_as_fun.cpp.htmcode_gen_fun_jacobian.cpp.htmcode_gen_fun_sparse_jac_as_fun.cpp.htmcode_gen_fun_sparse_jacobian.cpp.htmcoin.pngcolpack_hes.cpp.htmcolpack_hessian.cpp.htmcolpack_jac.cpp.htmcolpack_jacobian.cpp.htmcolpack_prefix.htmcompare.cpp.htmcompare.htmcompare_c.htmcompare_change.cpp.htmcompare_change.htmcomparechange.htmcomplex_poly.cpp.htmcompound_assign.htmcon_dyn_var.cpp.htmcon_dyn_var.htmcond_exp.cpp.htmcondexp.htmconj_grad.cpp.htmconvert.htmcorrect_det_by_minor_c.htmcos.cpp.htmcos.htmcosh.cpp.htmcosh.htmcpp_ad_graph.htmcpp_graph.htmcpp_graph_ctor.htmcpp_graph_print.htmcpp_graph_scalar.htmcpp_graph_vector.htmcppad.htmcppad_assert.htmcppad_det_lu.cpp.htmcppad_det_minor.cpp.htmcppad_eigen.hpp.htmcppad_ipopt_nlp.htmcppad_mat_mul.cpp.htmcppad_ode.cpp.htmcppad_poly.cpp.htmcppad_sparse_hessian.cpp.htmcppad_sparse_jacobian.cpp.htmcppad_testvector.htmcppad_vector.cpp.htmcppad_vector.htmcppadcg.htmcppadcg_det_lu.cpp.htmcppadcg_det_minor.cpp.htmcppadcg_mat_mul.cpp.htmcppadcg_ode.cpp.htmcppadcg_poly.cpp.htmcppadcg_sparse_hessian.cpp.htmcppadcg_sparse_jacobian.cpp.htmdependency.cpp.htmdependent.htmdeprecated.htmdet_33.hpp.htmdet_33.htmdet_by_lu.cpp.htmdet_by_lu.hpp.htmdet_by_lu.htmdet_by_minor.cpp.htmdet_by_minor.hpp.htmdet_by_minor.htmdet_by_minor_c.htmdet_grad_33.hpp.htmdet_grad_33.htmdet_of_minor.cpp.htmdet_of_minor.hpp.htmdet_of_minor.htmdet_of_minor_c.htmdirectory.htmdiscrete.htmdiv.cpp.htmdiv_eq.cpp.htmdouble_det_lu.cpp.htmdouble_det_minor.cpp.htmdouble_mat_mul.cpp.htmdouble_ode.cpp.htmdouble_poly.cpp.htmdouble_sparse_hessian.cpp.htmdouble_sparse_jacobian.cpp.htmdownload.htmdrivers.htmeigen.htmeigen_array.cpp.htmeigen_det.cpp.htmeigen_plugin.hpp.htmelapsed_seconds.cpp.htmelapsed_seconds.htmelapsed_seconds_c.htmepsilon.htmequal_op_seq.cpp.htmequalopseq.htmerf.cpp.htmerf.htmerf_forward.htmerf_reverse.htmerfc.cpp.htmerfc.htmerror.wrderror_handler.cpp.htmerrorhandler.htmexample.htmexample_abs_normal.htmexampleutility.htmexp.cpp.htmexp.htmexp_2.cpp.htmexp_2.hpp.htmexp_2.htmexp_2_cppad.htmexp_2_for0.cpp.htmexp_2_for0.htmexp_2_for1.cpp.htmexp_2_for1.htmexp_2_for2.cpp.htmexp_2_for2.htmexp_2_rev1.cpp.htmexp_2_rev1.htmexp_2_rev2.cpp.htmexp_2_rev2.htmexp_apx.cpp.htmexp_eps.cpp.htmexp_eps.hpp.htmexp_eps.htmexp_eps_cppad.htmexp_eps_for0.cpp.htmexp_eps_for0.htmexp_eps_for1.cpp.htmexp_eps_for1.htmexp_eps_for2.cpp.htmexp_eps_for2.htmexp_eps_rev1.cpp.htmexp_eps_rev1.htmexp_eps_rev2.cpp.htmexp_eps_rev2.htmexp_forward.htmexp_reverse.htmexpm1.cpp.htmexpm1.htmfabs.cpp.htmfadbad_det_lu.cpp.htmfadbad_det_minor.cpp.htmfadbad_mat_mul.cpp.htmfadbad_ode.cpp.htmfadbad_poly.cpp.htmfadbad_prefix.htmfadbad_sparse_hessian.cpp.htmfadbad_sparse_jacobian.cpp.htmfaq.htmfor_hes_sparsity.cpp.htmfor_hes_sparsity.htmfor_jac_sparsity.cpp.htmfor_jac_sparsity.htmfor_one.cpp.htmfor_sparse_hes.cpp.htmfor_sparse_jac.cpp.htmfor_two.cpp.htmforone.htmforsparsehes.htmforsparsejac.htmfortwo.htmforward.cpp.htmforward.htmforward_dir.cpp.htmforward_dir.htmforward_one.htmforward_order.cpp.htmforward_order.htmforward_two.htmforward_zero.htmforwardtheory.htmfrom_graph.htmfrom_json.cpp.htmfrom_json.htmfun_assign.cpp.htmfun_check.cpp.htmfun_property.cpp.htmfun_property.htmfuncheck.htmfunconstruct.htmfunction_name.cpp.htmfunction_name.htmfundeprecated.htmgeneral.cpp.htmgeneral.htmget_adolc.sh.htmget_colpack.sh.htmget_cppadcg.sh.htmget_eigen.sh.htmget_fadbad.sh.htmget_ipopt.sh.htmget_optional.sh.htmget_sacado.sh.htmget_started.cpp.htmglossary.htmgraph_add_op.cpp.htmgraph_atom_op.cpp.htmgraph_azmul_op.cpp.htmgraph_cexp_op.cpp.htmgraph_comp_op.cpp.htmgraph_discrete_op.cpp.htmgraph_div_op.cpp.htmgraph_mul_op.cpp.htmgraph_op_enum.htmgraph_pow_op.cpp.htmgraph_print_op.cpp.htmgraph_sub_op.cpp.htmgraph_sum_op.cpp.htmgraph_unary_op.cpp.htmharmonic.cpp.htmharmonic_common.htmharmonic_setup.htmharmonic_sum.htmharmonic_takedown.htmharmonic_time.htmharmonic_worker.htmhes_lagrangian.cpp.htmhes_lu_det.cpp.htmhes_minor_det.cpp.htmhes_times_dir.cpp.htmhessian.cpp.htmhessian.htminclude_deprecated.htmindependent.cpp.htmindependent.htmindex.htmlindex_sort.cpp.htmindex_sort.htminstall.htminteger.cpp.htminteger.htminterface2c.cpp.htminterp_onetape.cpp.htminterp_retape.cpp.htmintroduction.htmipopt.htmipopt_solve.htmipopt_solve_get_started.cpp.htmipopt_solve_ode_inverse.cpp.htmipopt_solve_retape.cpp.htmjac_lu_det.cpp.htmjac_minor_det.cpp.htmjacobian.cpp.htmjacobian.htmjson_ad_graph.htmjson_add_op.cpp.htmjson_atom_op.cpp.htmjson_azmul_op.cpp.htmjson_cexp_op.cpp.htmjson_comp_op.cpp.htmjson_discrete_op.cpp.htmjson_div_op.cpp.htmjson_get_started.cpp.htmjson_graph_op.htmjson_mul_op.cpp.htmjson_pow_op.cpp.htmjson_print_op.cpp.htmjson_sparse.cpp.htmjson_sub_op.cpp.htmjson_sum_op.cpp.htmjson_unary_op.cpp.htmlicense.htmlink_det_lu.htmlink_det_minor.htmlink_mat_mul.htmlink_ode.htmlink_poly.htmlink_routines.htmlink_sparse_hessian.htmlink_sparse_jacobian.htmlistallexamples.htmlog.cpp.htmlog.htmlog10.cpp.htmlog10.htmlog1p.cpp.htmlog1p.htmlog_forward.htmlog_reverse.htmlp_box.cpp.htmlp_box.hpp.htmlp_box.htmlu_factor.cpp.htmlu_factor.hpp.htmlu_invert.cpp.htmlu_invert.hpp.htmlu_ratio.cpp.htmlu_solve.cpp.htmlu_solve.hpp.htmlu_vec_ad.cpp.htmlu_vec_ad_ok.cpp.htmludetandsolve.htmlufactor.htmluinvert.htmluratio.htmlusolve.htmmain_compare_c.htmmat_sum_sq.cpp.htmmat_sum_sq.hpp.htmmat_sum_sq.htmmemory_leak.htmmin_nso_linear.cpp.htmmin_nso_linear.hpp.htmmin_nso_linear.htmmin_nso_quad.cpp.htmmin_nso_quad.hpp.htmmin_nso_quad.htmmul.cpp.htmmul_eq.cpp.htmmul_level.cpp.htmmul_level.htmmul_level_adolc.cpp.htmmul_level_adolc_ode.cpp.htmmul_level_ode.cpp.htmmulti_atomic_three.cpp.htmmulti_atomic_three_common.htmmulti_atomic_three_run.htmmulti_atomic_three_setup.htmmulti_atomic_three_takedown.htmmulti_atomic_three_time.htmmulti_atomic_three_user.htmmulti_atomic_three_worker.htmmulti_atomic_two.cpp.htmmulti_atomic_two_common.htmmulti_atomic_two_run.htmmulti_atomic_two_setup.htmmulti_atomic_two_takedown.htmmulti_atomic_two_time.htmmulti_atomic_two_user.htmmulti_atomic_two_worker.htmmulti_chkpoint_one.cpp.htmmulti_chkpoint_one_algo.htmmulti_chkpoint_one_common.htmmulti_chkpoint_one_run.htmmulti_chkpoint_one_setup.htmmulti_chkpoint_one_takedown.htmmulti_chkpoint_one_time.htmmulti_chkpoint_one_worker.htmmulti_chkpoint_two.cpp.htmmulti_chkpoint_two_algo.htmmulti_chkpoint_two_common.htmmulti_chkpoint_two_run.htmmulti_chkpoint_two_setup.htmmulti_chkpoint_two_takedown.htmmulti_chkpoint_two_time.htmmulti_chkpoint_two_worker.htmmulti_newton.cpp.htmmulti_newton_common.htmmulti_newton_run.htmmulti_newton_setup.htmmulti_newton_takedown.htmmulti_newton_time.htmmulti_newton_worker.htmmulti_thread.htmnan.cpp.htmnan.htmnear_equal.cpp.htmnear_equal_ext.cpp.htmnearequal.htmnearequalext.htmnew_dynamic.cpp.htmnew_dynamic.htmnum_limits.cpp.htmnumber_skip.cpp.htmnumber_skip.htmnumeric_ad.htmnumeric_limits.htmnumeric_type.cpp.htmnumerictype.htmode_err_control.cpp.htmode_err_maxabs.cpp.htmode_evaluate.cpp.htmode_evaluate.hpp.htmode_evaluate.htmode_gear.cpp.htmode_gear_control.cpp.htmode_stiff.cpp.htmodeerrcontrol.htmodegear.htmodegearcontrol.htmold_max_num_threads.htmomp_alloc.htmomp_available.htmomp_create_array.htmomp_delete_array.htmomp_efficient.htmomp_free_available.htmomp_get_memory.htmomp_get_thread_num.htmomp_in_parallel.htmomp_inuse.htmomp_max_num_threads.htmomp_max_thread.htmomp_return_memory.htmopt_val_hes.cpp.htmopt_val_hes.htmoptimize.htmoptimize_compare_op.cpp.htmoptimize_conditional_skip.cpp.htmoptimize_cumulative_sum.cpp.htmoptimize_forward_active.cpp.htmoptimize_nest_conditional.cpp.htmoptimize_print_for.cpp.htmoptimize_reverse_active.cpp.htmoptimize_twice.cpp.htmother_adfun.htmparallel_ad.htmpkgconfig.htmpoly.cpp.htmpoly.hpp.htmpoly.htmpow.cpp.htmpow.htmpow_forward.htmpow_int.cpp.htmpow_int.htmpow_nan.cpp.htmpow_reverse.htmpreprocessor.htmprint_for_cout.cpp.htmprint_for_string.cpp.htmprint_graph.cpp.htmprintfor.htmqp_box.cpp.htmqp_box.hpp.htmqp_box.htmqp_interior.cpp.htmqp_interior.hpp.htmqp_interior.htmrc_sparsity.cpp.htmrecord_adfun.htmrepeat_det_by_minor_c.htmresearch.htmrev_checkpoint.cpp.htmrev_hes_sparsity.cpp.htmrev_hes_sparsity.htmrev_jac_sparsity.cpp.htmrev_jac_sparsity.htmrev_one.cpp.htmrev_sparse_hes.cpp.htmrev_sparse_jac.cpp.htmrev_two.cpp.htmreverse.htmreverse_any.htmreverse_identity.htmreverse_one.cpp.htmreverse_one.htmreverse_three.cpp.htmreverse_two.cpp.htmreverse_two.htmreversetheory.htmrevone.htmrevsparsehes.htmrevsparsejac.htmrevtwo.htmromberg_one.cpp.htmrombergmul.cpp.htmrombergmul.htmrombergone.htmrosen34.htmrosen_34.cpp.htmrunge45.htmrunge45_1.cpp.htmrunge_45.cpp.htmsacado_det_lu.cpp.htmsacado_det_minor.cpp.htmsacado_mat_mul.cpp.htmsacado_ode.cpp.htmsacado_poly.cpp.htmsacado_prefix.htmsacado_sparse_hessian.cpp.htmsacado_sparse_jacobian.cpp.htmset_union.cpp.htmset_union.htmsign.cpp.htmsign.htmsimple_ad_bthread.cpp.htmsimple_ad_openmp.cpp.htmsimple_ad_pthread.cpp.htmsimple_vector.cpp.htmsimplevector.htmsimplex_method.cpp.htmsimplex_method.hpp.htmsimplex_method.htmsin.cpp.htmsin.htmsin_cos_forward.htmsin_cos_reverse.htmsinh.cpp.htmsinh.htmsize_order.htmsparse2eigen.cpp.htmsparse2eigen.htmsparse_derivative.htmsparse_hes.cpp.htmsparse_hes.htmsparse_hes_fun.cpp.htmsparse_hes_fun.hpp.htmsparse_hes_fun.htmsparse_hessian.cpp.htmsparse_hessian.htmsparse_jac.htmsparse_jac_for.cpp.htmsparse_jac_fun.cpp.htmsparse_jac_fun.hpp.htmsparse_jac_fun.htmsparse_jac_rev.cpp.htmsparse_jacobian.cpp.htmsparse_jacobian.htmsparse_rc.cpp.htmsparse_rc.htmsparse_rcv.cpp.htmsparse_rcv.htmsparse_sub_hes.cpp.htmsparsity_pattern.htmsparsity_sub.cpp.htmspeed.htmspeed_adolc.htmspeed_cppad.htmspeed_cppadcg.htmspeed_double.htmspeed_example.cpp.htmspeed_fadbad.htmspeed_main.htmspeed_program.cpp.htmspeed_sacado.htmspeed_test.cpp.htmspeed_test.htmspeed_utility.htmspeed_xpackage.htmspeedtest.htmsqrt.cpp.htmsqrt.htmsqrt_forward.htmsqrt_reverse.htmstack_machine.cpp.htmsub.cpp.htmsub_eq.cpp.htmsub_sparse_hes.cpp.htmsubgraph_hes2jac.cpp.htmsubgraph_jac_rev.cpp.htmsubgraph_jac_rev.htmsubgraph_reverse.cpp.htmsubgraph_reverse.htmsubgraph_sparsity.cpp.htmsubgraph_sparsity.htmswitch_var_dyn.cpp.htmta_available.htmta_create_array.htmta_delete_array.htmta_free_all.htmta_free_available.htmta_get_memory.htmta_hold_memory.htmta_in_parallel.htmta_inuse.htmta_num_threads.htmta_parallel_setup.htmta_return_memory.htmta_thread_num.htmtan.cpp.htmtan.htmtan_forward.htmtan_reverse.htmtanh.cpp.htmtanh.htmtape_index.cpp.htmtaylor_ode.cpp.htmtaylor_ode.htmteam_bthread.cpp.htmteam_example.cpp.htmteam_openmp.cpp.htmteam_pthread.cpp.htmteam_thread.hpp.htmtest_boolofvoid.htmtest_vector.htmtestvector.htmtheory.htmthread_alloc.cpp.htmthread_alloc.htmthread_test.cpp.htmtime_det_by_minor_c.htmtime_test.cpp.htmtime_test.htmto_graph.htmto_json.cpp.htmto_json.htmto_string.cpp.htmto_string.htmtracknewdel.htmunary_minus.cpp.htmunary_plus.cpp.htmunary_standard_math.htmunaryminus.htmunaryplus.htmuniform_01.hpp.htmuniform_01.htmuniform_01_c.htmutility.htmvalue.cpp.htmvalue.htmvar2par.cpp.htmvar2par.htmvec_ad.cpp.htmvecad.htmvector_bool.cpp.htmwhats_new.htmwhats_new_03.htmwhats_new_04.htmwhats_new_05.htmwhats_new_06.htmwhats_new_07.htmwhats_new_08.htmwhats_new_09.htmwhats_new_10.htmwhats_new_11.htmwhats_new_12.htmwhats_new_13.htmwhats_new_14.htmwhats_new_15.htmwhats_new_16.htmwhats_new_17.htmwhats_new_18.htmwhats_new_19.htmwhats_new_20.htmwhats_new_21.htmwish_list.htmwno_conversion.htmxpackage_det_lu.cpp.htmxpackage_det_minor.cpp.htmxpackage_mat_mul.cpp.htmxpackage_ode.cpp.htmxpackage_poly.cpp.htmxpackage_sparse_hessian.cpp.htmxpackage_sparse_jacobian.cpp.htmzdouble.htm/usr/share/doc//usr/share/doc/cppad/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protectiondrpmxz2aarch64-redhat-linux-gnu    directoryASCII textGIF image data, version 89a, 20 x 20HTML document, ASCII textHTML document, ASCII text, with very long linesGIF image data, version 89a, 46 x 34ASCII text, with very long linesLaTeX document, ASCII text, with very long linesLaTeX document, ASCII textC++ source, ASCII text, with very long linesPNG image data, 184 x 184, 8-bit/color RGBA, non-interlacedemptyhttps://bugz.fedoraproject.org/cppadutf-88abf5e04a34fa8d173732a7aca16e8f9b363013767663fce43c1a99da7b2efbb?`7zXZ !#,.!]"k%wIYQ3o>l bU1K8z-'M9֍S @l( XAWT VTB=Y` oy%5y@)0TUFZ8x~ܴ90(C]-Tu |7KN3MU ۉp 榺cВQ<<@l ^[%#"$Jڰ)[ZVszNF`+'&l(3|9j ev] 14(QVWOAUaBD2L"*mZO"*7H5 Ǚ8˛ūq`N6"d'"youk"]NF%cߊL'؅ E~ɨ?c[/^Kd7{-.֛}/WKؖqho.oI=;O"ռ73H K p::ݜotto_Q#U\לF55i`Y== !w&R%Fs?GkMS1 W00zP4E֏`a~89"eQ&7nc2 s[| @O^K|V{?=F|NIUɷr_ yܹr%dqq[2?F\n5E+GHW[M$GΣ=oØޝ@ѽ]0 *M5ş)oI˰@N޼T[}?R2G,Ov97Ca]pJ)h`  0t[[g#זțMy*XCӠ}Fd~?Ahf]Av?9^XFn_ZdeJ |]$TyVl"'] [1/ŠyY 3gSk8]]'!TB~f*oO/s'>umvkkV E_ H w #VSkL 16ЭG5]arw>"ds>gSCSHlHYe&)GRz]#LW*W|j'xgiv2\z Ǹ8P0U|!9RHsQ^R_p < >31=rK˳sY"n k?s;='I\#Sg'Y~ OMgO&?c>QY<;hEkN}*MtudWh3}'!o).a^"Wӗs l|,YqF=c^S2jghoL4MG6}9nZ|ms󂛄f} RӭXF${5>#ǘ_ぬQcI8$,M%Ǟ2K_>XwӐUI0ql-Vhu.w=U{\<14]zE|_ E2vV3N=0亳i.T!xgQtM&+pg[-/ G枣$X)mc8[I۔S+,)R훆KzI&%o% L"ZcgyU@8_oE@\g ӣ2( Ba3 `rH_z?ZA;^r̟tQ/FX3 pt&EpFL1pW+9:ṶglzC͜ cR[c+q~Ǣpoth*#DJմcH0Ht%-2ΧEfЦxRki{LzϜ%1;Q8t\gW7uas߮:>J^Ā{*awi]$;te+ D/Iǡ,mKy[8pc'BFlw [LIG8@p/o>,dZHT2\LQFz.j>έj)I B{(6x7Kr/;vÜӼ}#<(cOKM؎ܲUMR. g ۽!fH*㯚$j5{Z)Ft#u#6I4#/a:wTw]T碕 8T{T0vu43癮xHjH$Q 't8͚8Aa}> (%jMkn oWg_Jl)p{|xɡiߦFW853f)y!]ɖvk._J*[+In$S3OmYtxӂ>H,A kڤjWj\y|MP01˿,O}cѽޜH#LO#ߔ`eHO3y) C Ѥ(nK}3lK?2۽zD A Qtq3I!HtVOyü_ u4W "P&VlfLkD>21){&"\U (I408`|vX[:KL9ǧ_,ypx ӬG=C3@[~XT;Y(>?dEy(и*|H X46v0{9- ׄ[%iH*`p.Bdpq ~ )]}in`B5J>c[28dஃږ &#%&v; =ѯ=MZ RX oB4/Z10b&%ncD4 nU>.[n: |cPm:D XH2>h/D/F߼a^PEmQaQvo15n/,m>ֶ{_6%֛tx OX8c*t=Wsyz@G{!L4>P@1,)*ZZ8ف2ʪ\v8:=+g~k(>SUYr&YŊacc`Ӳ`$(|pSиdޖ ӆDyM7F}A555-$kY!6Ѯ*iįG`yqKJxV(mc1Z.F71Qrˍq#w 2/UKf[_IcR~y>ߠ!>֥ Nwҗnj6=MnVv+^ GZ;nHCRn ,՗l]BA86ç^*W*&p?d\30xtMRv*G;N~n7 #}t8M"}; 7nYj۽( ‚:1Q2KϔK$Xfhb(0u敭##9Iȫ>>g]ڂ7LWdbZ9_6,Q;7V-m+}# F|lO) g&|aݰl5t/C@sS/myEm1j etʗUW}rVw.3ˠRdNPH)K&"4-۾9;qzqlRU`;=Ȉ㞗qtU1w7gp+ǔ6IDai/`g2S{yxJ)$< Jk#>֛+QQdHYyS+"JtVzoU=` g,ԄBl;"PMҗ*i}l]XSci!զ*A)&乮H /}QDkxsbih3_SOPS2xxۓ1n @ƌ,́z.ͷ#ݰbbr7mxk_K ,H}(T=K * p}3~q/(duQ'Y[$4-ly&_kg'/6SEQT=zA"1Q ¬F 0;^UVKy-}oxv=d,S*BaQqir8.5?ʻc#YQ|c`Ȝ&W@X^j][PV-S;1 | !eK2 43R.n@&I\RGBUe \u^3ٓޝNC\KXfܠ|N؃@;w.*z@pFO24Oڛb{?7.d#4IsIyڛx6n'm3%vdܸ|%,2uLWj+J^r_]Br-/)+@lYxJ5zB:2$WVM܃f-l+itӘsS^B\Y",^&HmIJ~.m ږu14 m91tjdE`}6L &,ES]W:fp~Dj0>-<Ώ<$&v4[dgCHzЍYiL:$*!|#2jVQay} D5pu$ؼޙı9%4L`پ}lpŬ OIVe<}cMA W{#dFvH8k<*w/bH A%Gxel2NFv0)JZ!vZVDiJde"bA~ա*!4K Y @=hDӥ9 ӎ&lD3vƆ1nHQ\|6S4:5,y\e s@m<$p78Xuws-T$ ~3|hpHN)rx?0l? N_%CV IP XԌOtzf[z>t&!CA{Ji;j;P *gOwmgFOyJd`"P1y1ߛ[F(x joߖ6oXc YȸnC`ŝeeF%\EQ4bq~2{ekj`n !Q] ,c-u= jYW\5#b#o󒴳E3@kVr1/eo<>3zt "@")7ymf>$W]; nt:A]^Z|4>٣>25ΞW|%5*k#o`,L\ لZ?B<7RtևIS8823`^M6'.J8W}eBʷ[t0qFE7K"5>ڇJuZ#MN3;6FBò Ń$dD]-=f YZ