7004p1\+"GP𜻰=fgt?        nKԕ,J.@$*|`61Zv=zN}NcqOGTP57%㭇 ZZOÀ D[9hFA''>~y ,L3hIIbwXH$q.mTwbVLa]Ǖ=ec;lGO; 8l“4k'bV6R$HPPG#@[U*i"ފ>"7L;$ ;JhKᒽ FVo LK+ !"###$%&'()*+,-./01234u>[/5 !?hKbnZD65l  hKbnZD66O78798:   8:  8:  hKbnZD6;278798:   8:  8:  hKbnZD6<  orМNC=  !y䃀~{>  "M}g3' 7࠲>?    hKbnZD6@AA9    hKbnZD6B C DC9  EDAF  GH   DI  nJ J: HKL  KM   IL  IL  ILIFA:   G  G  GhKbnZD6N}뇶=a+9O  ,   }뇶=a+9P c}뇶=a+9Q  R DR9  EDAF    AH   DI   WJ J: HKL    KILIF}뇶=a+9S TAD 8 U88V8 !8UV ADhKbnZD6W  <XYX9   Y  Y  Yqq< f[3RZ"## ""## 5_!y4V[$$""## ""##\$]$^"_"`a#b#* % &\$a9'  (\)*AAX+c % &]$a:'  (])*ddY+e ,ce^_`abfghijk -ghijkc ""##.efghiefghi|:aEs͋l$$""## ""##vn׽ ӽm# {\#n - / 0 1 2\,,X , 3  4 51 6n, 7 8X]  ^_^_9 op pod0, Fk{qr 9r ::r ""##5W؃vSsr 9r :: ::r ""##LE]Kl%p tr 9r ::r ""##+p҉??`ur 9rr" ""##r X9rYr\"]0 ;  < = > ?> @ > A B> CrXY D9 +A&]: +d EM +K FA GdK\]^_`abc -_`abc^ ""##._`abc_`abc ?2:VWv " ""##PX \"]2 H\] I J BX K I J B LX^_`abc -_`abc^ ""##._`abc_`abchKbnZD6 "!}뇶=a+9##""##'w&$%;yXBnPZJM"0 _1عYfeJ > >e#K0 f > gwQ#vcɵ >%o0 j> k lBF)wLPLm >%0 n> o p qzwVډW6L1#&1 6X[cZFo2 &u;/2B!g?83&A%G` K̂4{ M{{({ |M{47N{ O{|A P{7 'A9".TCJxyTQ9RSTd U Vd W\RS]^ XS]^H9h4Os":)G"44 P:4 Y GQ9RSTA U VA W\RS]^ XS]^20JoVR?O'" )T'T9".CJxyzC\Xqz9i:*[A4 r'A9".TCJxyT s  t  u#+|M:v:| w(|M:x:| y4i>M=d[^.z;6 "!N@B  ?>=E  W#SPQ  l##E% v  Z   ~[mqstu  5<O(4mainCombinatorialOptimisation.TSP(CombinatorialOptimisation.TSP.FixedPoint array-0.3.0.2basecontainers-0.4.0.0ghc-prim integer-gmpold-locale-1.0.0.2random-1.0.0.3 time-1.2.0.3Control.Monad.InstancesGHC.Base GHC.FloatGHC.NumData.Time.Calendar.GregorianData.Time.Format.ParseData.Time.LocalTime.LocalTime Data.Array Data.List Data.TupleGHC.Arr GHC.ClassesGHC.ListGHC.RealGHC.ShowPrelude Data.IntMapData.MapFP System.RandomInternalStorageExplicitMatrix RecomputationTriangularMatrix TSPProblemcityNameToIndexindexToCityName numCitiessolutionValueIedgeCostevaluateRouteNaiveexchangeCitiesexchangeCitiesOnIndexgetTSPPathAsListmakeASymmetricTSPMapmakeEuclideanTSPMapmakeSymmetricTSPMaprandomiseRouterouteMapsetRouteshowEdgeWeights solutionValue$fEqInternalStorage$fEqInternalStorage_$c/=a4bwildwild1$fEqInternalStorage_$c==$fShowInternalStorage$fShowInternalStorage1$fShowInternalStorage2$fShowInternalStorage3$fShowInternalStorage_$cshowx $fShowInternalStorage_$cshowListds1s[]xsetalvl84showlds2yyswild2!$fShowInternalStorage_$cshowsPrec$fShowTSPProblem$fShowTSPProblem_$cshow$fShowTSPProblem_$cshowListls$fShowTSPProblem_$cshowsPrecdscn $w$cshowsPrecww1$wevaluateRouteNaive$wexchangeCitieswwww1ww2ww3ww4ww5ww6ww7x1ww8ww9ww10ww11ww12ww13ww14$wexchangeCitiesOnIndex$wgetTSPPathAsListtasbs$wmakeASymmetricTSPMapg$wmakeEuclideanTSPMap$wmakeSymmetricTSPMap$wrandomiseRoute $wsetRoute edgeCostIds3ds4ds5a $dFloatinga5 edgeCost1edgeCost_$sedgeCostgetTSPPathAsList1getTSPPathAsList2getTSPPathAsList3tww_s7EA{v} [lid] containers-0.4.0.0:Data.IntMap.IntMap{tc r6UO} ghc-prim:GHC.Types.Int{(w) tc 3J}getTSPPathAsList42ww_s7Ez{v} [lid] ghc-prim:GHC.Types.Int{(w) tc 3J}getTSPPathAsList5getTSPPathAsList6Nww_s7Ex{v} [lid] main:CombinatorialOptimisation.TSP.FixedPoint.FP{tc r5eR}randomiseRoute1randomiseRoute2randomiseRoute3randomiseRoute4randomiseRoute5randomiseRoute6randomiseRoute7randomiseRoute8randomiseRoute_$dEqrandomiseRoute_$dOrdsolutionValue1solutionValue_$ssolutionValue>SPEC CombinatorialOptimisation.TSP.edgeCost [GHC.Types.Double]CSPEC CombinatorialOptimisation.TSP.solutionValue [GHC.Types.Double]EqGHC.BoolFalseTrueShowunpackCString#StringShowS GHC.TypesunpackAppendCString#: showList__3 showList__2 showList__1++augmentfoldrIntMapGHC.PrimInt# !_$slookupN int2Word# Data.MaybeNothing!1CoUnsafeJustI# foldWithKeyelems1$wspan RandomGenDoublemapFloatsndsortByzip$fRandomFloat_$crandomsGHC.EnumeftInt-# fromList1NilFloating Fractional $p1Floating fromRationalNTCo:FPRatioGHC.Integer.TypeIntegerGHC.IntI64#$w% GHC.Integerint64ToInteger divConstI:%$fFractionalDouble/=#Control.Exception.Base absentError GHC.OrderingOrderingcompare$fEq(,) $fEqFloat$fEqIntOrd$fOrd(,) $fOrdFloat$fOrdInt