ELF>@@ HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rnIM;wVID$II$LHIT$HHHt/HEID$HEAHIDžAe#HEL9rHEH]LsHAeDHEL9rIIM;w1HEH]ID$HCI$AIt$HIDžAefHEL9rHEH]LsHAeDHEL9rIIM;w1HEH]ID$HCI$AIt$HIDžAef HHHsLI0M;ID$HEID$ID$ID$ID$I$Mt$HI0M;w;ID$HEID$ID$ID$ID$I$Mt$HIDž0AeIDž0Ae HEL9r"LuHHEHH#Ae@import Data.HashTable as Himport System.IO.Unsafe (unsafePerformIO){-# NOINLINE stringPool #-}stringPool :: HashTable String StringstringPool = unsafePerformIO $ new (==) hashString{-# NOINLINE shareString #-}shareString :: String -> StringshareString s = unsafePerformIO $ do mv <- H.lookup stringPool s case mv of Just s' -> return s' Nothing -> do H.insert stringPool s s return simport Data.Map as Mimport Data.IORefimport qualified Data.ByteString.Char8 as BS{-# NOINLINE stringPoolRef #-}stringPoolRef :: IORef (M.Map BS.ByteString BS.ByteString)stringPoolRef = unsafePerformIO $ newIORef M.emptyshareString :: BS.ByteString -> BS.ByteString stringPool <- readIORef stringPoolRef case M.lookup s stringPool of Just s' -> return s' Nothing -> do let s' = BS.copy s writeIORef stringPoolRef $! M.insert s' s' stringPool return s' (shareString) wheremodule module GHC 7.4.1.symtab.strtab.shstrtab.rela.text.rela.data.bss.rodata.note.GNU-stack.comment @A  +@&QP 168>@N0@ KW"@ , 0  Pp!)19A8IXQhYaiqy Pp@`+ ( V+'0/V8HA(az}# I}l@0}`}$P}Gm}p}}"H}k  }@}`#@}Fl}`}"Dj @`(Nt @ `2X~} }6  \  } @  } ` 0 } 7  }Z  P }   }  p }5 [  }~    } @  } `6 }Y       = @c `    D i@`"H@}k(45R0vcie_strciD_strcj2_strcjr_strcjQ_strckf_strckE_strcl3_strcls_strclR_strcmg_strcmF_strcn4_strcnt_strcoq_strcoP_strcpe_strcpD_strcq2_strcqr_strcqQ_strcrf_strcrE_strcs3_strcss_strcsR_strctg_strcuh_strMkSharedString_zdwsharedString_srtshM_infocuV_strshZ_infoshQ_infocvn_strsi2_infosi1_infoMkSharedString_sharedString_srt__stginit_MkSharedStringMkSharedString_sharedString63_closureMkSharedString_sharedString63_infostg_CAF_BLACKHOLE_infonewCAFstg_bh_upd_frame_infoghczmprim_GHCziCString_unpackCStringzh_infoMkSharedString_sharedString32_closureMkSharedString_sharedString32_infoMkSharedString_sharedString62_closureMkSharedString_sharedString62_infoMkSharedString_sharedString61_closureMkSharedString_sharedString61_infoMkSharedString_sharedString60_closureMkSharedString_sharedString60_infoMkSharedString_sharedString28_closureMkSharedString_sharedString28_infoMkSharedString_sharedString59_closureMkSharedString_sharedString59_infoMkSharedString_sharedString26_closureMkSharedString_sharedString26_infoMkSharedString_sharedString58_closureMkSharedString_sharedString58_infoMkSharedString_sharedString57_closureMkSharedString_sharedString57_infoMkSharedString_sharedString56_closureMkSharedString_sharedString56_infoMkSharedString_sharedString55_closureMkSharedString_sharedString55_infoMkSharedString_sharedString54_closureMkSharedString_sharedString54_infoMkSharedString_sharedString53_closureMkSharedString_sharedString53_infoMkSharedString_sharedString52_closureghczmprim_GHCziTypes_ZC_static_infoghczmprim_GHCziTypes_ZMZN_closureMkSharedString_sharedString51_closureMkSharedString_sharedString50_closureMkSharedString_sharedString49_closureMkSharedString_sharedString48_closureMkSharedString_sharedString47_closureMkSharedString_sharedString46_closureMkSharedString_sharedString45_closureMkSharedString_sharedString44_closureMkSharedString_sharedString43_closureMkSharedString_sharedString42_closureMkSharedString_sharedString41_closureMkSharedString_sharedString40_closureMkSharedString_sharedString39_closureMkSharedString_sharedString38_closureMkSharedString_sharedString37_closureMkSharedString_sharedString36_closureMkSharedString_sharedString35_closureMkSharedString_sharedString35_infoMkSharedString_sharedString34_closureMkSharedString_sharedString34_infoMkSharedString_sharedString33_closureMkSharedString_sharedString33_infoMkSharedString_sharedString31_closureMkSharedString_sharedString31_infoMkSharedString_sharedString30_closureMkSharedString_sharedString30_infoMkSharedString_sharedString29_closureMkSharedString_sharedString29_infoMkSharedString_sharedString27_closureMkSharedString_sharedString27_infoMkSharedString_sharedString25_closureMkSharedString_sharedString25_infoMkSharedString_sharedString24_closureMkSharedString_sharedString24_infoMkSharedString_sharedString23_closureMkSharedString_sharedString23_infoMkSharedString_sharedString22_closureMkSharedString_sharedString22_infoMkSharedString_sharedString21_closureMkSharedString_sharedString21_infoMkSharedString_sharedString20_closureMkSharedString_sharedString20_infoMkSharedString_sharedString19_closureMkSharedString_sharedString18_closureMkSharedString_sharedString17_closureMkSharedString_sharedString16_closureMkSharedString_sharedString15_closureMkSharedString_sharedString14_closureMkSharedString_sharedString13_closureMkSharedString_sharedString12_closureMkSharedString_sharedString11_closureMkSharedString_sharedString10_closureMkSharedString_sharedString9_closureMkSharedString_sharedString8_closureMkSharedString_sharedString7_closureMkSharedString_sharedString6_closureMkSharedString_sharedString5_closureMkSharedString_sharedString4_closureMkSharedString_sharedString3_closureMkSharedString_sharedString2_closureMkSharedString_sharedString1_closureMkSharedString_sharedString64_closureMkSharedString_sharedString64_infoMkSharedString_zdwsharedString_closureMkSharedString_zdwsharedString_infostg_upd_frame_infobase_GHCziBase_zpzp_infoghczmprim_GHCziCString_unpackAppendCStringzh_infoghczmprim_GHCziTypes_ZC_con_infobase_DataziList_unlines_infoMkSharedString_sharedString_closureMkSharedString_sharedString_info+ /O0` 1o  /0 1  K /o0 1 P /0 1 pk /0 1  /00 1?  /0 1  /?0P 1_  /0 1 8; /_0p 1 X /0 1 h[ /0 1  /0  1/ { /0 1   //0@ 1O  /0 1 + /O 0` 1o   / 0 1 PK /o 0 1 p / 0 1 k / 0 1  / 00 1?  / 0 1 @ /? 0P 1_ ` / 0 1 ; /_0p 1  /0 1 [ /0 1   : G U (x      00k  }  _   < HT `x222(22H22h22222822X22x 2 2 2( 2 2H 2 2h 2 2222c. 4@6`8:<>@B D@F`HJLNKONIMNGP N(E0Q@NHCPR`NhApSN?TN=UN;VNOWN9X N(70Y@NH5PZ`NhOp[N3\N-]NO^ac e@g`ikmoqs u@w`yNxONvzNt{Nr|Np} N(n0~@NH?P`NhlpN;NONjNhNf N(O0@NH3P`NhdpNbN`NO_(0