From: Jaseem Abid Date: Sun, 22 Mar 2015 15:25:11 +0000 (+0530) Subject: Fix test which did file parsing on tracker response X-Git-Url: https://git.rkrishnan.org/pf/content/en/footer/somewhere?a=commitdiff_plain;h=4ca067b3afdf67592f131964cff799d2930395a5;p=functorrent.git Fix test which did file parsing on tracker response Relates to #11 --- diff --git a/test/Test.hs b/test/Test.hs index 5569d03..4b67b86 100644 --- a/test/Test.hs +++ b/test/Test.hs @@ -10,24 +10,46 @@ import Test.Tasty.HUnit import FuncTorrent.Bencode (decode, BVal(..)) +-- Initial response from tracker +response :: BVal +response = Bdict (fromList [ + (Bstr "interval", Bint 900), + (Bstr "peers", Bstr "U\EM\201e\200\213%;\FS\236V\206L\NAK\149+\202\154\US\183!\205\169\203\213\210xVkX\213\239\216\205\ESC\STX[\192\163\152.:>\210\240A\ESCWT\250g\161\ESC%X\195\241\192\200\213X\165=\223\SUB\225V\157\234\243\232\191\213)\137\242\200\213[\nT\195\183]@8\249\183\ESCo\202>\DLEG\234\EM\US+~z\225\216D\169\133H\196.\223\135a\177\229\189\ENQ\166]v\251\203\200\148m\141\200\213m\226\236\160\173\156N:\139\154Y\"\188\244/\186\154\219\203V\204o\204\187Pn(b\ESC\ACKD\187\142\217\227\240Gs\139\180\246YF\169#\173\200\213\185\ETX\135\186*\137X\198\224\202\200\213\183\157A\217#\219W\251\189\150\182XWr\202\174\&0i]:\ENQ\DLE\200\211Yf\tE'<^\159\DC3\222=\167_\FS1\176\229\170\217r:\135\SUB\225O\141\162&\139\222\136\169\&2H\214\143\187C\188\151\200\213Oo\218\&2\209\132>K\137\129\200\213\SO\204\DC4\156-PO\141\162\"_\211R\144\192\a\246\232\212\"\231\nP\204_\225\246\221\200\213|)\237fa*"), + (Bstr "peers6", Bstr "") + ]) + +-- Parsed .torrent file +file :: BVal +file = Bdict (fromList [ + (Bstr "announce", Bstr "http://bttracker.debian.org:6969/announce"), + (Bstr "comment", Bstr "\"Debian CD from cdimage.debian.org\""), + (Bstr "creation date", Bint 1420903224), + (Bstr "httpseeds", Blist [ + Bstr "http://cdimage.debian.org/cdimage/release/7.8.0/iso-cd/debian-7.8.0-amd64-CD-1.iso", + Bstr "http://cdimage.debian.org/cdimage/archive/7.8.0/iso-cd/debian-7.8.0-amd64-CD-1.iso" + ]), + (Bstr "info", Bdict (fromList [ + (Bstr "length", Bint 675282944), + (Bstr "name", Bstr "debian-7.8.0-amd64-CD-1.iso"), + (Bstr "piece length", Bint 524288), + (Bstr "pieces", Bstr "\203\254\248\251\219\234M\131K\225\145g{\213\139\208\n\187R\184C\173\212f\230\236\162$\227P\NAK\176\184\130\SUB\255QW\177\229\193\ESC\SI\150\220\190\ETB\185O\174\CANH\198\157\189\&5\167\153\183\ETX\233P-?O\176\SI\205\255=\238\238\149?\182O:\SOH\246\DC3$g\225\ENQ\EOT\228\225\208>\136[n\131\203\&8\242C\197\157\243\130\168\159$\193\167\181\214n\242 \237\fG\157\139\ACK!\US=\DC1(\ENQGc\197fU>'\193\166\129X\172]s\141\n\157\129H\SI\129Z\242\192Z2$\222\SI\138\238TpXn\134x\236\203\173p>\243\243\208\180\179\230\179\155\ACK\STX\228p\SYNy\138-.\173\162b\190\206\192f\ETB\225]q&\217\249\199\ESCp\204\&6\210\&8&\138D\222\247\160Eb\DEL\175\DLE\FS\155\157\162\155\236\NAK\204\222\149\197j\ESC\238\163\DC2\201\NULl\199\231\210\173X~H8\164\138-m\144\&3\168\249\DEL\243C\183\235\135f\130\FS\225O\132\155\148\231(xH\184\193\EOT\152\139\224\207A3O]\223\194;\149\DC4\194\251f\235%qV@\\\182H$\167\246XpMK\161\220\139\ETBu\222\183\190\&4\171\221r\221F\166[\233\239Se\223!\162s\SUB\180i\170\253\154\232\180b\155\&9\180J\242]\143\173\201\137\201\192\188\149l<\191;'\140\255|\EM\135{^,+\128\CANxL\177Y\nF.d2\148\ETX\ACK\207!0\226\246\235kux\152\255l6\184\198\DC4H\"\224\202\202n#\243{\189\151\172\147Ckm\236\136\\-\139\175\181\t\166\255\248f6\135\149\151\203A}Y\152\178\206\EM\173\159[P\186\a\255\141\224\249\133PqF[\f\220\177\239L\184\&3\247\189r\185\149|\179X\179\219\154\n4\253C4! \135\SI6\198\151)\193%\166\252\&3M\152;\248\215[_\208+\SO\USE\186\233\&1T\203\226\129\211\&1\186\188\f\193`\165\DC47iT\156\228x#\251\149\167\201\224\209\151\179\218\238\232\234\234c\175\ETX\236\SUB'\230\144\140\200\251\EOT\EM\fN\165Rp\\\163\&5\131\209\FS8\226$\199\131\197\ETX\241\133\173\CANz\225\157\&3\190&\SOHC\219\244t\ENQ\214,\151s\231\SYNm?\177\131\232\170\145\194\DEL\136f\199\217\161~b\213\246\SI\216\212caw\169\179\RS\197F\254\181U\136\240\160i~\FS/\DC1u}\226\236\RS\226\219\141\SI\DC4v(\229\140c\157\132\SYNvP\150\157s\255K\156D\188\172\f%(\183\SOp\219\RS*o\170v\EOT:H\f\EOTf\169P\252\198\193\180y\196i\173\SOH\169\203\&2\172)5f8\219B\199y\253]\"w\193\235\197\a\206\201\235\202\141\245,\195\134H\227a\137:\150=\\<\182q\133\238d\212+\216z\138\205\129\142b\174\144:\177.p\186\205\129.r4y\DEL[n\133[)q\166\239\158\237yX\199!)\CANW4\198Z\168a\t#\248z\SUB\"\205\197r\251\a\ETX\247\173\216*dq\207X\222\198?\213\SI\SOnI\167\240HF\246Pm\209a\233\131\128\DC2\150fjVkv%\133\NUL<\173hNy1\145;\204\SI\202\US\157\237\144\150\n\178\134\214\EOT \245m\239\195l\152y\187\US\176\129\129\SOH\238\n\SUBM(\177C\CANA;ny\254\252hY\ESC$E\200\RS\aC\218u\145\143k\158D~\f\235S\219\241\ESC\183\186\189njM\171\DC2d\SO\180\164\NUL9\165G\177\176\vB \128\130\165\206\190-\137\FS\243NJZ\186\226\212\SOH\129Ze\130\236\135~3\135Y\\\147\156'`\222/H\203\DEL\f\130\&9gL\233TAk575\ETXe\250N\209\SI\SO&\ENQ\160\169\186\US\185\129Q\172\250-\255\236r\162\t_\ESCc\DC1t\136\229\187\157`Q\188\ENQ\232\236\241\v6\251\EOT\235?{o\140\245vq\ENQ\174\a\179\182(\204\221\232\176\EOT\245\142O\160\DEL\211\242\214va.\201zf6u\199\167:\200\US\224>\201\211\210\157<\220&HvQ\159\146\180\225r\216\SUBn\147\159\231>\SOH\141\&19w'A.XI6\251=<\242\249OQ\EM<-\STX.\141\153\"uk$oj\ETB\168\197.'\207\154\252`\203pw\195\153\SOHt\233t_\181\229\SYN\183\DC1\248\207\139\DC2\DC3\224h.\146\212\137N8j\166\161\r\DC1\US\244\"\CAN\167\186\RS\DC4\231\161\136\153\144\199\169\&8V\219x\135\172\213\222\212\&2\143\228\SO\155\133\202\217\173\202\UST\ETX\164|\US\170\231\138`\190\&6\248_I\135B\SOq9\148\253\193\236\147\&9\DC4+\181\209\133\250t\170\179.\168\246z\137~\142\FSp\v\255\210\148\138\145\&334\183\156-\140\DEL\201S\248\246\247\217\174+@\ENQ\150$s,7\CAN\253\164\237NC\GS\155@,\193\131\208\182Q\v\250\153\243-eoR\228\193\216Q\157\231\249CN\171\132\US9p\242G\DC1\US/\253e\244\SO\ETX\244\172\225\198\215w\155\231\210\179\221\&6cZy\183\223b1\145\223\204\213\193\214\243%\179\n\ACKU\234[\145O\137\179\151D9\144\199]\227\SYNs\154\255\144z.|\176n\SO7\DC1\204q\194\251\223\DLE:\243UH:\241\&5Y\213\FSc\145\159\&5\224\225\210\209 n\140\fO\180\ENQ\150Y\134\129>\214$E\230\151CZt\204\182\145\192\rT4\SYNE\SI!\230{\SUB\205\191\SO\235\170\135\136Q\204\164\129\206\GS\128\186\&6m\154z\NUL#(\140\&4Ct\164s4\167\SOH\221\ra\134\179\173\191\&5\b\212\128\196\239I\131\200\217\238\161u@\SUB\169i|\168U\EM)6yw\177W\219\ETX\237\EOT\SO\177\246\156\DC4\211\243\SUBn|\183\236\173\DC3\225\DC4<\233\204\253=\227\196\195\192\157\203Y\219_\169\EOT>\131\ESC\DC28\ETB\213\142t\151/l4\130\&9\154\246\128:\245\134\156\198\187fa\210\159\193\233\DELa\239\134\180\160?\176\141\204\NUL\158\SObqu2\227\165\129\ENQor\DC2\146\238\"\178w\214\246\225\212\240gx\FS\247\236\151\212\188\192\130\189\213#\US\ESCbj\208\200\&8g`L\159x\SOH\138\&5\213\236\205P\138w\DC4ODy\243J=\206\129\250Ts\193;\147O\251\SYN\253\228{\233\216\v\250#\244\SUBz,\212].\198\165|k;\t\149`\195\188S\236\169S)! \167\220\"\189N\234\212\DC3\215\CAN%\222\GSKPn\\\"1\168\NAK\163*~S\DC1Z\165\220\137\DC3\NULV\140s\DC3\174\166\214\175\138n\DEL\233\236w\DLE\209r\CAN\205\245&\151j\182Y\USo\180<[\252\132\254\&7SN\212q\178\t\247cPUQ\244\147+m\134\EOTO\175\161c\GS_\r\187\208u9 \221s\156\SYN$\188 \144\&6\157J\DC2\238\141\226\145\144\t\144\153\DC4\247\246\183~\207 &\195T\162\135\199\142\205\ETB\132\224\214*Z[\US\STX\203F\199\230\179E\236\244\209\&8}\144\212^\192\136TG\238d\177$vhEc\142\143\214W\173B\ESC\227\DC4$\DEL|\180\239\206\&9\163\&0\250\&1\197\243\DC4\RS\232\131#\217\&8\240\a\202\241a\216\155\DEL\SOH\144\216\SO5j\211q\219\165e\196\201h>i\DC3\181\236\143\SO\194? \161\252\209\196\CANg\150/\174=\240\130\SI\145\186\153s\143\rf\203z\244\199>n\246w4h\225xSYaV~0\227s\223R\140T\240H\202^tx\141=\149\244\ETB\238\203\t7p:'K\252/!\154\132\167s\232\t\242\232\153\219\191\146\197\129\232\134[<\b\ACKq\DC2W\246\DC3\140\t\198\193\&7\160\216\128\156\232\STXP\191h\215\SOH\FS\f\ETB4\250\135\214~\161{\CAN\t\143\169\a\207>\t7\154\223\180c\216\212Z\168_\213\178\229\177<\205*\142E@\205*\135\144\&8\\\ESCo\218!5lF]1\USy\248\160\192\224\158\174\244z\\$\ETB\SYN4PM\212\&8@\US\213\177B.\170\&3vGf\168\ENQ\184x\165Z\139/\SO8\DLER\NUL\a?\ACKZ\134i\226\140\NAK\176\220\194\ENQO:eL\205\184~0d\227\134\US3=D\159Y\194\135\232\CANO[o\143\EM\216\250\241\"\213\163\DLE\bQ\145\NUL\EOT\200\215\178F\187B'\210@\158\129\132\247w\176Z\ENQ\226d\139\143\174\tm^T\132\240\159s\249\211\234\160\244O\130!\SI\198\241p\166\NUL\232\ENQ\156\244\nq\143L\164#\220\180\177\ESC\192C\a\b\222\\f!\DLE\234\152O\140\242rl\EM\217\t\217\174\141\189\242\208\217$T\141i\187\GSRG\214\187bV\154d\166\211<\195X9;\148|\134\v>\195\225\219\164r\163\179\238\&3\nR\232\191g\240\154\162g\171\211L:\218\162\147\201y\ACKUeQ\213s\DC3\222\\\195m}^\ETB&\204\156\212>X\NAK=\SUB\165\144\&4\238\160\239\246\ESC\238,F\144\149\181\212M\160\221\&9(\173\ENQ\248\146\189\202\&6\138\NUL\132t\189z/\US\200^\133\&7v)\ETBn\"h\209e\DEL'\202\196\207d\133\SYN-\174\187\186\169%n{${\251\&1\155\209\241_!\201v\SUB\227\128q\177\177N\251\217\230\214\&3p\179\&4\234\207\NUL\208\217\199\SI\131\US\207\160\150\150\236\202\146P3Zmh\132\158U\210A\ETB\EOT\DC3%\SUBm\RS\226\238\202\\\133\137I\221w\154mi\182\187(*g\199#,\165\223\157\131\177`rI\193\215jK\n\129\202\130\n1\234\SO\247|\161\147\241b\158\213\146\198\250\&5#AZ\RS\ESC\134\144\246q\185\SYN\136\249/[K\149\195\182\156\157\SIY\161\186x\132\STX\ETXC\SO\142\198\218\190\165\198\ESC\181o\198,P5\SO_\239\160\155\&2|\b\188&\149\188_\153Y\251$\141Q\EM\142\251Sz7\176\&4h\170:<\208O:\194/\170\250P?\212\163\136#;C\239S\DC2\FSh%\235%Z/ \154*E\151#\236\169\178\ACK\220\220\ah\198\206\198.f{\253O\190\DC1Tc\208Z\186$\DC2&\EOTpy\169\187\229\RS\138\196\\fA\b\203>\149\160v\157\ETX\239\167c(t2_\130\147\143\182\144pCY0\131\227\DC4\215`x\231\RSL\v\196^\191\175i-\US\160\254\175\FS\154\STX\ETB\224\152\&3Kh\131\191G\US\158iP\241V\160\170s\157\246\132\&1\FSMe\195\&6\147M(\SUB\196\177\152\173g\RS=\157E\252\180\DC1\165\179{\128\254\201yE\234\DC3^Y\135s\207\EOT\SUB\231\254\157#]F:\162\223\RS\SI\254\180\202\173\223o/F\221h,#\SOH\252\154\247e\157\DC4B\152\DEL\227\240\157]q\247\DEL\ESC\191\DC2\DC4b\NAK\148j\250|\239\172\211\128\186J\200\213\188\201r\211\NUL\212I\203+\195\244\248{\145\152\237,C\160\EOT\251\ENQ\191]\211<\208lA\183\f`7\a\128\253\191\133\131+\225\221gU\ENQ\SYNm\240\CANk\208\193\202\202\210F\DC2m\225\EM\189Y\203\DELT\248\&4\177\234\SIqA\220\NAK\157;fx\131\180D\214\166\163\147<\DEL\SYN]\187\137\171u\b\138\&1g\202\251}l\170j\131k\156/\157r\145\ETB\198\179\142\168!*a?b\221\SUB\201v\134~\EOT$\141\201\160\214p\229\187\ACK@\208\194\156l\221d{y\193\134=\168\199p\GS\174\155\168\193i\175\242\165\211\156\198\222\NAK\EM\230uK<\128_\220\&5C|U\243\245=2\166\189\196\141\&4#\242\145s\175mr\SI\180\187\225\220=\233\142$\200ia\139\246\150\182z\175\SO\139F]\147\153/\172\250P.\208%s\209\n8\EM\179\163\130\249\240\234\147\&3\DC4\159\146\156@\206\US\219\252\STX \224Ok1@\GSU\219\185\182>H\242\NUL\147w\128OO\CANU\140\168\r\GS\174\ESC\157Y\ESC\217\167\239M\147r\229\211\CAN\fc\SOH\DC4\138\147r?AmFPcT\162\ENQ\208\224\225\DC1TG3a\242\175E\174d\180i\DLE|5\241\SOHf\241\195\152\181\182*\251\&9\138\149\RS\155\226\STX\211\146\235\184\NUL\196\130\144\240_\187N\158\187\237]\207\198\178\162J\195\213l\b\CAN\211\198\US\245\145\239\156L\232\STX\179\189\168|\183\190\199.T\SUB\189l\NAK\242\187\&02{\234\NUL\133\246\154O\ESC+\221\161\190\236\DC3<\137\GS\176i\153k\\O\CAN\186\231\197\SUBPZ\149\191K\SOH\246\243zhI\129\FS\EOT\194\163\159\132\233\210\155\&0\172zP\142\176z\164A\167\128\130<\233\&0\178\219\193\197\155\141\220\148O_\233\190\FS\160\f7u\238\255\137\254\SI\250L%\144\144\184\ACK2\177\t\ESC[\173R\224\158\&4^E6\216VN?\250\SYN\143h\211\USO\222T\138\CAN\143\143\225\166\180~.%r\198\232\EOT\227!bEU\182\SOV\151R\191\&2_}\131\SI7\180\201\201\240H\201\&1\n\241\168\244\210\242\240\US^h\DLE\189]=\ETBT\180\203\235\222\DC38T\227`c\234\191\234\182\253n\214[\199ZA\150\DC4\ETB\254\155\217\170\ACK\202\154\133\198]$\208\234\251\&4\167\230i\139$\\^\154t\168\201\171qX\f\153#\250\209;\241\129=\236\v\DC4\159y\171\151\139\168\255\255\241\&0\213\DC4\DC2\ETB3\217\169{=\252\SOH\237l}'\255l\193MC\145\146'\130?\176\151k\DLE$\238\131Y^\182\&6\242z\254K\EOT>%Y_\232\194\140C$\241\&3_\174\186o^\208\ENQ/\STX\150\188\143\255\160\DLE\228g1\136\\\nB\235\213\187\&2\231YZ\177\RS\215\169\&8S\ENQE\245\243\236*Q\232c\164\t\CAN\179\211\n/\244\SOHsR\DLE&\156\242\215\167\150\NULQ\203\ACK\f\162M\152lu\157\152\190%#\149l\DLE\240\155\247\193\SYN\203\207\206\163\230W0\200+\245=\168\187\164\152\ETX\212\200i8\255\174\252T\b\211\168Ge\133\152v\242Q\176\192A\248\188/:!\FSz#\146\159\&0tt\228\130|\194\GS\EOT:\150\245i\246!\221\220\&8\204\SI~Xjf\SOH\206\US\137k\146\217\DC3\DC2U\DC2*\v&NkQ{\159j\204\170E\132\140'\234\SYN\129|\130$\241\204\252pk\237R\147\US\ESC|\196\249Sa\185\164\&0lL\ESC(k\225D_\139\137YxoU\136\252F\239 ^Yp\174\158\216\ESC\r\EM*\t\136H\138\203\ETX%\203\200\135\185\204\230\155\ESC\229\135\233\DLE\181\150\ETXhY\ETX\132\DLE\171\&3,\ENQ\144sG\152\208\138U\246\254\213\165\212@\130B7\196\192`\242\US\NAK`\214*\187\193\189\198p\EOTO\"p\130\208\158r\201C\226~\EM\231\SYN\SOH\246\175\204\SUBX\193+A\179\198\199\214bP\210\129\224\225v\218\241[\236\ESCaR\152\186\178e\170\255\169\&6\188\USw\179R\251fQ\137S\173N\162\186\255\225T\184h\221\168\159^\DLE\241-\137\209\228\240\193#\204\184+\DC1,\f\211\166RZ\175\174Lt\165\243\SUBJF\248\128\171\204`\207\159\NUL\222\213B\231<<$/\186\&7]\241i%%_\DC4\184\128\138;rd\211]\185\ACK\ESC\202\162}\200\SOH\f\218\177\&9\\\240u\227\197\&1\SOP\203\255\f;,f.\218\SOH\206)\131\236J\170\210e\DEL\188\215\201\196!\135\229\164\134\GS_\187\216\137\223\134\&5OX\177%\\\195\178]2q\194\SOHq\203\219P\177\220+\237\SO\217\159\&1=8\131\197![\165\&6i\137\176Yb\DLER!a{\GSX\226\163\183\178\172\158\176\192\SUBW\246L}z\249-\196\240\246r\188\142n|\142\136\196\253\234kr:\231\133\159I\DC33v\149\178Y\SOh\DC1\161\213<\248d@\244,\146\218\201\156\194\RS\RS\US\239\134_\205\150\228\ETBO\236\163h\228X\159\245\v\190\184\235L\213\ETXq\204mN$>;\155\184l-\ENQ\179\169\139\141\194\255tZc\158A\GSCP_\239\215A?\DEL\177\161\DC2\r5\SI%.\SYNJ{S\223k\250\132\204\196[\145\159-:\172\235\247\246?\179In\220\173\254\166\228SkKc\"\128\196\&1\236\211_zx\193q\150\172\&7\173\192M7\169o\220z\202\&4\ETB\131\220?z\DEL\v\219<\137\ETBT\146\131\241`eZ\CAN\238+\172c\160\SUB\238\185\165\158\177\SOH9v\182\191\ACK\223p\206t[\177CQ.\149\147\162\212\198&M\146R\182-V\RS\195\188\ENQ]0\246\237\214N%\254oyv\ESC\255\252\133\192B\130\216'\138W>\SO\f\251\183\151P1F?\153\GS\CANVq\186%\234\SOH\224gc\142\164NG\135\194\227u\212\&1\199A<\251\220y\183o\v\v\237\230\210\174\254ela\SO{\214w\224\131`>\157\NAK\213\GS\227\166\203%\156\162\179aC\224r\203\&5\199_>@>\231;C\173\165aM60\249zp\141$5\201\NAKp\182\DC3f\225\&5\176\225\ETX\212)\254*\230\204\237Z\173\DEL\NUL3H\211F\173\207\192@\SYN\247\143\202I\209U\DEL\255\USW\167u\r\DC46\EM\147\DC1\168\239\235\236Gv\244pR\245k\178\215t\131>\129\143/3\182kJs@\DC4\149nT\226\247\172\128\208I\243,%\229DNgfkS\160&\136\201\199a\139\226\178\128\&1!\r=\EOT\211\149%-0e\r\154\182\199J\223\227F\EMxJ\162A\GS\247akW\249\250\182t\238h>y\143\129\SI\188\r\176\244\ACK\SUB\136\196\214g U4;\142\208\SOkTI\\\142\247\166\216\139\192\ESC\US\221\233>\137\ENQ&7\211fO\253\ENQ(\182\rK\189I\223\246\172\&9\181\241\165\EMV\237\225\135)\131\&6\161\173\178\247\132\182\189\&1\180\145\134\196\131:\136\v5\f(\233\SOH\"\130\CAN\169\133\227\209\148s3\241\139Nw\144By\232\186\165\129l\SUBA|\142:\231Y\ESC\185K\a\150;\229\161\251\NUL\131 \SI\140\228'\142.\150\146\187\187\&8\182\174jXm\140\215b\133\182\&8\f\166\212q\170\187\ETBV\253\204\238\DLEAe\185%\215\177xF\247\146\129a\RS-h\f\133}V\US\NAK\234qZ\141\211+*:{\225\t\161o\150\SO\167<\US\171\157\189\&0}\226V\146\r\SOL\131_\243Zt\GS\199j\162?\171>?\143\193\EM\251\155\bh\131e\bwJ\183\149\213?\224\SOH\154\129\186\249\aN\SOH\184\t\150\167\230\184\236\219\135[\n\222\248\&6\236\172\250\NUL\DC2\136\163@\135\&1\STX\SOML\NAK7LG\DC1\206\130S!\240\EM\209Y\254\233Y\176\215\\\193:\187a\149\&7\202\DC1\186?\174\149\230\DC2\233[4\210\140\129#h\185*\173\151\247\240H\140=\128\235Y(b\147\143\230\fH\168/\229Qq\222\135\ESC^S\231)\189\134\142{\174E\149\&8U\ENQ\EOT\246\203I'\EOT(\205\GS\134\236\220\ETX\191G{1G\158^\163\aS\128\EM1\211V`\143\196-\USh\144\233\148\&2\165\199}\254\210n\ACK\222\199\230UDS\250*\227>P\173i\195m\170|WB\US\174\242\163\177!2!\169K\231|\209\\\194\r\194\&54\170|\EOT\NAK\172iJ\141\137*]?\254\145\225\250K#\173\b\195\218\246\170\&1\148\v;\254\192\nj\SO\170\GS?\183\160\178i!\198F\196<\178\226iCWV\162\220X\132k\232/\STX\149\146>6~\250\NAK\148\&7\146\212@\155\awX\v\170\171\NAKuB\206[\183\156t\180)\US\218\169\173I\245\234\218%\251\229yW\246$\140\144r\155\ax\252\201Ln\241\157\209\131\146)\138\189Bzi\213]X\198\255\213\EM?\236\203\172\182\210\198J\245j5\218t\171\131\SUB\213\241\233\207\190\\\230\191\144\220A&\212\DC4\151\207K\141\182g1\GS\215\132\195c_W\251\250\158m\160.\US\\0\154Z\138\243gK\241e\158\v\163s\151[\191\141\b\237\161\238\146\254\210\233T\241\GS\DEL`\202D\169\162\144\231\185xY\149\199Z\161W\251\163r;\162\194I\EOTZ\b\133S\241\176\168\244\245\181\190|\231\233\128\191\223\RSKB\206\215\183\235\tU\183N\180\197)4\220/%\246\SI7\182\&0T\DC3\ACKF\131<\203\231-co\156\&5\b\153\244\147\170w\\C\NUL\153>\243\164\214\245\STX\190\168\FS\ETB^!\135\ESC\230#\132_\156O\STX\166c\129W\133M\188\201\241\156\187\f\158z`\223=\206O\EOT\NUL\180\ENQ\195\237\&6n\211\DC3\176'\157\161\157F\163\235\201\206\DC1\198W\US\216\129q9&;\254\138o\248\172\169\148\EM\STX\211L\v\197\194\167\157\147V\243\199t F\137\242\170\189\216\165A\162\\H\146\253>\247,\NULn#\188\DLE>\146@\157\206w\246\157Rd;\176&\251\219\154\184w\248ELd\DLE$j\162\155\STX\248\222:\SI{\182Q\217\226\192Z\218H\151\227q\248b\r\220\233\GS\228J\FS\249\128\EOTf\152\n;UE\128\223E\163-\235\245:\150f\248\229\DC3\DC1\224\DC4\144@s\170x{*b\158i\EOTu\143\214\b\210\253\"b\251\226t\229\190^\163\158\192\187'\155\144\177\129}\213\206\157{e\195\219\140_\128\195\213Y\172Iw\170\NAK\182\SUB\245\189#\128\226cM\215\151\151G\f\147\206A\144=i\247:\227v\"\157\248F\129o\ETXQ\150\r\151\132\b\152\161\n,\164W\226!\234)\145\223\&5\NUL=\185X\233\&6\226\fn\155\SIVK\154\194\SI\132'N\198\140\ENQ\180\252\156Hd\166\221CZ\156H\DC49\146\243:-\182\129\148\162~\248\229\250rh\133[e\222\239<\NAK\212w\236\199 \134\165\v\181P\aC\200:B\NUL/\149\f\DC2FCd\148\143\177F3\232\STX\a\GS\238|\234\DLEW\252\217S~\175@\160\165<}\142\170d\211\227m\136\&3Ip\NUL\203\184\\L\159\NAK\DC4\181\135[\181\SOHrW\164\b\205\&9i\210\221g\241\&9]\215\222\GS\183f\179@\205M\227\182\EMh,\252\&5\152rC{5\174\245\\o\EM\178\STX\238Ss\191\GS\239g\213j\220@\148\204\172\232\232\EMS>\163\RS\143\243\209\171Z\tle\168\DC2\161(4\161+\169\220C\212@Tj\176\&3W\197\212v\204\141*\174{\231\237\139\183T\221S\SOH\145N\164\236\183\148 \145\&6F\v\DLE\SId\220~3\150p\141M\184\247{/K\138\t_\169\189P\252q\137\202&t\212]&+F\162\131\146\198pu\DLEO\SI\243\&7A\186\149;stz[\250\171\n0\154q\164s\129I\137\DLE,\234B\232\&1p\180\t\199f\211g\227\159\&9\208U\142\&0\164U\138Y\DC2\236\243\SO2\v\208\&8w\ETX\208\252yt\223\NAK\255\160\184i\183L\244\138\139Gf\197\163\194\189M\146\157\191\178+\228\188t\EOT\188\160@\169\218+\222\189\204\148\230S\230\&1\227p\159\205 \222fh~#\253{\GS\169\132I\SUB|L\140DfD4\EM/\176q\152Us\DC1\DC3)c#o\152\DC2A\208K\201\209L\216~\149F\DEL)\174\STXJ\195\b\141~\143~\NAKL\NUL\143\156\DLE\167\166\&4\212jC~\252\208\f\222\188\NUL\188,Yb\164\225\132\151\187\CAN\SI\196O-\138\248\255}D\132\EM\242\242\136\204\DEL\255\166\ENQB\215#\180\STX)\206\&5\250*g\STX\172\244\137+/\235\242p\NUL\160\202\219\241H/\170\r|K\212\SOH\213_W\168\r\148\131@K\134\t\b\130\171\249\189\&4\243\DC4\253\182\242\133\245\163\147!\EM\230\168\\\f\210\249\EOTb\217\STX\234\146\DC2X#s\234\FS>\203\206;Z\v*\205\EOT\222Tp\203\162\193\NUL\163\183\ETB\186\188\240\134\152\134\253\NAKm\210^\210f1\133q\135\DC4\145\194-\189Hu\179\253\142S\146q\135\129\"k?\239M\243\EOT'\130\243l+\DC3F\248\197<\159\221H\153\226n\SO\213D\211\249\184\&4+\240\210\202e\n,\a[\159\191\177T\223\215\201\US\ETB\231o\181\143\250\204\200@\147!\236TO\SIMFl\245\DC2\248KnzfR\f\207S,\196\149\145\245\ENQ\171\184\236U\157-e\158\&9\212\SYN\144\&7\235\140\184\146\131\213\SOH\DC35\212)\179\239X\NAK\192;\239\214\RS\188wb?\251M\217pb,S\129\216\183k\245\154>\140\183\194{\213\212\219\191\DC3\253kA\197\220\210\142\192Q\vW\FS\219U\180\212\212\251\254\197\ETB\b\185\225tX\SYN\243\162\177\241J\169K\r^\170\150n\156\150\196\US%a\131\EM=;\ETB\"\212O\tU\RS}e\179\tzz\231\&7U\"\245\248\DC21V\156\136\221\225\250\rx\FS\\\210\209\DC3c3\232\196\210S\216\209\a\133o\134\DC2x-*\204\DC2,\252L9\176\234\145nL\159\145k\DLE\214\239\219\188o \131\NAK`\189?5L<\251}\245z\251\DC30;\216\&2\188\206]\131\158\204J\144(y\228\225\161aj\158A\DC4\189\&1q^~\140\FSal\241I\206\208Q\161p\DC3\203\139\240\ACKej{\USrm\170\237\RSq\141\180[\f\241\148\221\210\162\175N\244\229\174\ESC\138yA\b\SOHw\164\214PM\"\149\177\228\156\202\210}\197%\147i\\`wYE\240\r`P\173B\235\167\221\227\152\DC4^\245\138\v\251\SYN\129.~\157i{}\tI$\r\193|\238\192g\ETB:&\206\170\245\227\\\ACK-\238~}P\209\134\222${\173@\239\137/\191\&1\f\252\233\153\230L\172\154\148{\170\214\DLE\190\240\&0Oly{-\195\226W\222\154\166o\SO\246\138\156\204\194\196X\216\v\133\228\130/?\183\245\253)5^\176U}h#\223\146\SI\218\249\153\152\136\&7I\238s9\244\190\139\175\DEL-D\216\RS$\232wU\237\218\&0p\147\150\249\ENQ\\Z\184L\172\136\202t\ETBu[\241-X\223{\202\215\137b1\SYNhy\SOH\219\146'\224h\201\199\203\142\208>\171\&8\179#\226\206\238>>(\210\177+\249.\DC1\238\202\167\228,\185\158\229q\166\SOH\158\249\215\175V\ETX\132\244\222\237c\225\207<\199\f#\ETX\ENQ\SOH9\198W(b\b\209\221\216\238\195\228v\215<\179\DC3q6\168\NULc}\207\213l.\140\NAK\196#\197\172\252\226\198!\NAKV\"\140\147v\194Q:\132b\162,]r\248K\158\EM\200\&0\152p\197\231Y@\255\210\234\191\&0\fe\182\218H\229q\a\226)^\133\&25/\194\250\169\210\DC4\165N]\204\226\SUB\215\218\181\223\139\a\198\&0z:R\EOTGK\234\242\206J\228\161\201\190v\ETX\194\ETB\SUB\DC4\164\DEL\208\199:\150)\170r\199\169uD\181\201\223e\136fCP\139\151:7*%\130\a\217ZL\137?U[!\169\ni\201\SOH>e\251\NUL\DC2\131\211\&8\237\255~\209q\149\&8I\184\156?I9\208\DC2\ESC\187\234\152\225\138~\150\NUL\RS&\STXS\228\EM\SIV\199K\172\253\243V\165\ACK,m\217\227\207\NAK\r\213,\166\164\178Lh\206\174<\131wS\"\248\210\f\244V\156A6\177v\EM$\188\241\&7\STX\n\252)\178\212\134\184^\184\245\248\&9,\SUBz\FS\211R\207\207kWS.{'\164\224]\147S\233\&2\188\DLE\250\210A\147Y\175u>]Bn\149\155f\216U\ETX^+\EM2\215\183\174\228_{2]pW\RSa\193\160L\rx\177\194\STX/ @\187)Wv\160\149\148\211\EOTb\254\183O\186\217\134\137\&1\174\236N'#XL|\USx\177P\137\143\DELiZt`\150mHE\222nZ\206\225uoN%+\241\214\137!0\213\NUL\237\SII\184\159\249\r\175\FS$\133\ENQ\174\128\DEL\128\219\v\ESC\140/\198\160\254\175\ENQ\b4\191\160\&7\241\142\249\244\255\174\133~\212\134hN/\183\DEL\128\230\&4\211>\FS6\145\SI\214\177\&32\214\t_\199\143\246I\CAN\182\135\231l\240\215\f5\207\147s\241\r\213\137\165\DEL\203\167 g\190B?\SOHr\US\233%\138b`\202\170~\213gC\255\228\GS\255\146O\ENQY\SYN^\157C}/\192\&1\SI\236X\130\142\DEL\189N\222\175\149\&6v\137>\RSw\254\&8\160\130\134\169~R,\r\FS\158a\189\191\133A\DLE'*\229e\205\US\159\n:w\DC4\209\&6\134\208\218\246\138\229\ESC]@\DC16\179\247\DLE\229\159B\a\202\205'%g\SO\222\229r\181\NAK|\\\ACK\DLEg\158\&9\211de0\US\GS\215\230,\147\234\199\155J\144d\200\193;I\165\217\"\128yh\FSH\SO\139\DEL8\130\&7'\247\226\131\"*\150~\253\142\204\ACK\133\157\136\180\183\179$\n\197\133Cq\170\131 \184@s\246\131\RS\253\245\184'\SYNz\133\255\DC4\SOH4\138\157r\ACK\144`SH\214\243`\136\159\GS\134E\147\195c\143#\162\155Q\215\RS\193t\217\206\161\139]w\214\181D\212\184K*\202\180\230\174\211\201\231\253\240\DLE\222G\184k\133\231\163\SYN\159\140\214\SUB\FS\SUBd\a\193^\237x,'j\254.d\206~\ETX\177\170\185t\245\146v\172\195<\213\146e\143Z\161\157\STX\214\229(N\195\147)T\244\222\186H\197\&7\STX\152\192\220\200\179=\b>\150s&H\191\168\155Sv\149\&1=\189\211Q\153\224\129\184\249T\ACK\205l(\235\175\201\203\ESC1^1$\211\212u\189E\205o\EOTQ\130\255\218\245\179\174\&8O>\186\CAN.{\156\206g\197n\240\181fVWri]n\255\193\146\132\241N\a\"\231'\209\SOt\160\r\215\147\vD\168\251\178\SYN;\249\237q\186\tY\251s\217\238\208*\246\&8k\DC1i\204\SYNh8JM^\214\245\&3\145\STX\SYN\132\&7n|Q7\131w\171\CAN\154\r1\201'\237\172\246_\210E\198(\DC4St\NAK\161d\156\&3\133\bLM\146\213N\SYN\134\r\148\148\177rG\134\228kj\171\132\145.\198\246y\247\229v\192\146k\227\201\140P\226\ACK\STX)\185\215\130\242\189{0z\213\252\193u_\240g\138\GS&\253\189\142\DC19\239T\246\&3k\210\148]cA#\196\247\179E\238\255\206\202\\!\141\178\&1\ESCM\SUB\211\251\142d\SO\156:\248\194\208\EM\251k4}\SYN\142\131\233\192\t\237&\219\248\150\143`\203\254\f\136AN\SI\146\fc-V\160\149\254\194{\228\162\132\206\204\147\249\&9\176\159$\222g5\ACK\140#\SUB\253d\228e\211\188[\157\189\"~f\224A\220f\211V\167\173&\146i\239\171+\179\188\135\201\234,RY\138\ETB\165a\173\"\220\233\133e\204\166\DC4E\205h\DC2vI\224\&9\US9%\249\n\156\228hM\205\212\171\142\152\138N\232\145\208\STX\170\208\133oH\223q\DELQ\172\ESC_6\133\214\DLE\145U\225\&3#\168\157\219\f\n\182t\153\&4\170\220f3\219-\170\FS\SO\233EJ\133\240\159\&4`\177\183|\191\148\194\194\249\&5\233@i\172Yj\162\139\178\150Q5\230\255o\193\r\SYN\167\&2Ay\ESC}\174\158\141\136\210\141)n\165z\ENQ\SOH\242\216m\131y\237ALh\171\158LWxA\172n\205\161Q\143\169\174\183a\DC4\163\250\213C\237\ACK\201\197_\181?\232\181\177\176+\205\b\223y\DC2u`7>\165yUO\175\181\157#Crk\SYN\f!\SIAz\205!\238?&\250\162\ENQ\192\246\229\a\151Yp~x\218L\150\n\222\252OI\205%\209\230\a7\205\190@Z\220'\208\FSTp~\160\248S\201\DC3\200\231\233\a\220\176\158\156\189\"\231%\133~\ENQ'n\163\&2\FS7-\160z\175\166_\246\f\226\132\236K\SUB\239{\EMr0\226b\144\253N;\243\250};6\178qa\188Y\232\220\169d\235\215\135\216\229\248Jx\230\b\209\140\bRMz\194\192\220#\217\&7\226L\165\r\173\147\170\128\DC1n\226\136\132ic\170s\141\229\222!\157a\176\228\US5J,_C?v\176brX\219\222N'y\146\251tf\245\170\ETB\222\v\226\196\255\240t\246\179\133AxS\250\SUB\156h\149\DC2Z\218\145\&7\131\EMt\SOH\155\212Y\SI\r\247=\255\DC3\175|\SO8s\154\196$N\SO\176xI\204\167\173\241\156\196\255\173m\FS\190\209\166\&71<\241\194\RSW\169\200\155\186F)>\218(s\194\ESCR\176\248'\154\198\233\229g\230\175\247\207\221\218\&0\GS\239\252\136\146\211D%S&B$N\STX\209\&2\254\255=\206\145\180\253d\184\140\207\237mMNp:f\t\ACK'\192&\ESC\EOT%\GSIC\169\184\129\228\177\169j\206\205\232q\180\EOTVRpF\210\202\143\248\DC4\194]&U8\170\182\182\171RM@\156\240\DC2\154\236\172\&2\183\184\178X\222\251\194~\"\GS\DC4\213\249m\162\DC22\f\172\162\196\244\240\243,\b\132\196ee\DEL\178\183\151G\137\129\219\ACK\247\157\228\221J\171\217\187|c:\252\136yD7\187\&0/J2\199\178\185)\152a\\\EM\183{y\242K\254\"\253\221\234wu>\bk\240\130\207\188\184!\179^1vPyc\128\SOH\211I\132\aE\160*V\205d\233\146\179y\RS\195\234\206,\128\135\174\FS\DC4\SI\250\ACK\243\226\250\255g\230\246R\162\246\146\128\193\223B~x\128\151\241W\191\217\253~\DELp\197)Tm\255\188\ACK\v\143\ESC\142\217\ETB\158\r\150\189\247W\DC1\187j\203:\208\DC1j\161\216\178\136\235\219\159\171\181\181\225uZ\\o9#\164P\241\NULU'\131\v}\194I\186\GS>\viE\175\&4\233\157\208}8\239nz\242_\198\DC4\213\239]\NAK\245\148\174n\188\146\176^|\137\ETX\174`\t\141\194\ESCl\137>UPc<6\192m1\180,BdY\208\230\168\243M-9j\226\164\RS\152\180\DC3\165\166\236[\128\235\182\ACK3\fRP\EOT\169f\222y\185\DC2\RSxa\CAN$\CAN\223\205\221#\248:\200\"#\194\159+\208%\222Z\222\222\188\142\&4v9\176\200\SUBK\159hDrC\SOH\155\226\143\130\&3\ENQ0v\131\144_Sl\192 \231\252\169\226d\207R\136\158\143\ACK\253\235\SUB<\202Q\210Q\227\161\204l\152\161x_\156'\243\234:S\191h]\ETX\195%?j?*\225\242\&8\142\SYN\200\DC2\192\198\DC1\172\253\169N\172\SI&\DC1\STX\SUB\158\140\DC1q\US\146A\170Q\169\236e\209\v\226\b\172wV\188E\228\ETB~\158\177\DC1\160\144\180\US\145\175\213^\173\204\157\246\235E\SIK_I\184K\SI\155-\133\164\194\148\&2\164\ETB\158\130\DC4\173\172n\196)\DEL\227~d\129QQh\229\212\&4\231\159\r\242t\215:\157\128^@-\173\185\192\254\209Tz\204{s\177\243V\v\233\228\n1\ENQ\201\&9\254\150}B \250\&9\SO\FS-\243@\247\226m\233nD\217tSk:\234\\6\200\217\252\229\219\USA\151\137t{jW3^jsf\130\222\171c\164\NAK6\140\236v1\183\175\162\222\ETBy\r\225\&4vt:\138\&5\201=W\165\SYN\143\DC3\170B\178v\232\235\&24\129\193\134\SI\SYN/\206l\DC1\174\&6W\212\224\175\211U\238!r/\178\SO\167P(\181*\250g\NUL+\142R\158\183ns\190\ACK\193\DC2\137\218\204\136\206\186\&2!\149h\EOTtH\147\150\226\bA\244L\ESC\141\181[FaBUgV9+x\219\ETB5\138g\220\196\212\EOT\245\221\225\b\150\175fQQ\154\151\191a\185\171M-\192\DC4\241G3\f\200\213B\251\221\&8\226\241.\178\222fo\185\133\137\139>\201\252\135\245`\206\173\194\211$\231\187\220\138=\136\FS\138\150UY\196~0\177\128WOt\162\178s\ESC\193!\195\144Y\153\ETBT\DC1\186\SO[\DC1\214[\205\206\130K\253\FS\207\ETX\156|\171q\141\143\&3]\185\139/\248(\238*{\207G\DC1\213/\DLE\247\&3s'\244\246^\254\215\135\194\&2\157\249\234\137~\147\203k\159\212\246\254\DC2\179O/^\175\EOT[\130\216;\157\156f\212\243[\198\147\233\SO\ETB\163\FS\200\157j~<\155A\210\204R\180\180'\186J\161(\155\229\NUL!R\173\188\200-\149\231a=\"+\217\212\233\169p\216\232\146\164C\238W\218,\DC3\250W\223wf\195~P\194\143\138VmR\143W\215O\147\175q\170pK\197\EM/V\178\fI\156\220\239t\204\165\NUL\165\&5\182\US\135\130\226X\131NG\211XhP\237h\208\203r\138\152\156\&3\135y\a\242\GS\200\196\147\191\&4\132\226\rT\221-\ETB3gX^\RS\212C#\221\185\SI*\129O\210\230\224\181\205J\f\150(\192\GS^\204\DEL\a\145\215U\244\SI\158e\203\129\191B1\EM\217?\209\246>\189\134\DC4\240\CANI\DC2\ACK\197\238\198N\212\ESC\132\187W3\176Il\182\130Qim\187\213\EOT4;\223\162\ESC\STX\249\252\&8W\232\t\DC2\181\157\209B1\209\SUBuu\162\NAK\220\&6\DLE\164\228((\ACK\208\245\142]#H\143\202\&1\202\234K\164+\139m\184*\202\167^\224\215'|E\198V\235\175\DC1\205\252/\136Y\176d$m\207Q}u\146%\153\174\176\t\159g\249\229\170\194N\n\129[\187Blo\DC4\202\r\150Bj:\224\189\162\170\137YZ\ACK@&K\193\211\SYN]\ETXd!W\200\142p\151N\EMK\US\234fv\161\CAN\177\131\200\SI\178\SUB\159\135\133\143\202\222\b\179E\219\bhs(\181\&1\DC4\158\173\181\131\ACKv\SUB\FS\163\194<\186M)\EM\216k[\226\158,\191k7O\209\150@gDX\ESC`8\211\SOHH94\142\150g\194\166\186XC\128\223\131\&4\138\200\DC2\170\157\ETX\211\rSX\\G\137\175\190Z\EM\231,Y\235\202_\222\168b~\141\243`\246\CAN u\147\167\US\214\239\150m\213\222QC\190\178w\134}\131=)\195\246\232\&1\218\163\140\&8c\249\138+\190\DC3\174\215\DC1\240\142)\179\170\247#\ESC\139bU\SUB\138\253\DC3]\131\243\CAN\DC1\CAN\226c\149\142 \175\151\244\218\DLE\131\150\240\145qG(\DC4\213\243q,\DELm\209\SUBn\196f0 8\b\169\176\192\NAK\151\136M\214\161\248z\230\CAN6\ba\184\183\166\235\226b\232!\179\145\205\234\&0g\SYN\FS=6B,\245\249\145\163\r\166\&9\185\152\246\170\\\166\189\208n\226_\204\&0\t\251F6\FS9\196\176p2\FS\"\SO\164\144\162\146\167\162\236\136\170B\163\137\160\&9\v\v8=\164=\176\r\212\206:\141rH\254\&7DH\131\151\200M*\SYNM\153*\DC3\221\161\147\185S\242\"[\251\SYN\138xB\168%\ETX~\RS\193\STX\135\STXC\178[\185\218w\246\151\198\197A\225\246\141\229\161\243{!/\162UUj\244\230\225\213\225\216\EM\ESC\245\228U\206W,p\214\255y5\DELe\220\137/\151KI\160-\171r\DC1e\142f\230X\187\242\186\168\234X\157Q\ESC\137\224\177\184\204\133\224\211\131\149u=\205\225\n{\200\FS=\185y/\251'\181rgxr\248\&0);\141\ETX\b\222Z\199\175^\194}\NAK\218\n\218\225\178\ETB.\FS\223\165$PdG\222\210*=\237\212\135\163b\155L \164}\187\n|\217\151}\183JQ\DC3\DLEe\235\a\EOT\209\133\141\248\237\244\183\132]\FS\142@+G\254C\222\202\238\&5\180\174C\181+\186[('\195\250\254!\148\205\FS\158lD\137)ns\222+\STX\167\168V\205\217\200o\235D\215\244\"\205c{\226\231\ENQ\220I\189\175+k\138\205\131\206\184\207\186\136:_\255Vn\a\147+\186\DC2\nf[\DEL\255\193\170U\190\SOH:?\208\&0P\241\227\148\153pL\230\242\222-\142\142\188\DC1\227,\155\229\140\202\FS\217$\250\149\131,wQ\ESCm@k\149\CAN|n\DC4\230\191\250\248\148S\240|\222]\248\ESCam\253\244\141\155\240\252|\169\195qLf\180\246\189t\203\ESC\178\244\215\&8\206\200d\198hj\156\185\n\151\184\132\ETX^\144\207U\134\&6\ETB\233M\181\175\252\195\FS\244\176\237\n\164~\254\193\157\247\228\161\188L\143@!\229\149\f+)\200\248\142@?\155,rpV\251Q\162\254\214\a]OV\218q\251\174\159\251\236\185+\149#u\ETX\139\181\206\SOH1Y\v\129\FS\154n\168\166\175V\202\222\136]\NUL\219\223\ACK\202\DC4\173\ETX\ACKg\167\178\DC2e\244&]\EOTR }\236ly\SO\223\&8\198\128\\g\142\SOHa\244\NAK\223*\205k\173b`]g\a=\DC3\SUB(\DLE\159r$:*\237\222\NAK\250\164?\232%\230\234p\164Do\NUL\233\224h\148Z\213\ETX\"\255\149\141\198\224f\\\193\139\247/z\255\DLEC\130\210?\184\159 B\175E\234\195sCQ\191\140\209\178Q\237\173Z\194\198iG'\a\"\137\DC4+\a(\153\CAN\SOH\223\128\179\239\154\155\&2Z\177\189QIGB\183d\149\156/\231\230u\159l-\183\130#I\240\249\198\194\CAN\235\t\214O/\219 5\191\224\184\146U!z\222^+\164\&3\206Lea|m\182[\180u\DC1\135\US\168\219\236\SYN\176\SYN&\142\173\&3\146\n+\FS\151\248\&5\129\164\214\178\166\180^\226\222\201]\139\133\v\147\STX\157\DLE\DC1&\ETBr<\CAN\DLE\250O\128$\141\GS\ETB\\@\151K\159\229\186/\194:(\SOD\158\&9\DC2\247\255\181\223n\236Nw0)\179\171\250\144\\\254F\234\f\STX\236W\133\&4\ENQN\200\DLE\DC1\156\SI}\DC4Xe\181\188\136}W\242\200\222\149\149\218\NUL\136\"_T\184\220\DEL@\212/,J\\V\203\134\178\157\DLEd5\236j\187W\157\235\231\\\164\189W\142\FSU\253I\130_FY\EM\f\202:@\184\DC3B\139\223\NAK\140\220%\139M\215\190\252R\192{X\"`e=\254\DEL\234\201D\230\156\"\239\222\148\243\137\ETB\161\194\208\172Q\196b\DELQ\231\180\139\248_\236\141 \DC4I\223\193\&5(C}A[\202`l\206\165\169\132]g\RS\197p\208\147+\193\236\226\173d\SI\214@\139\162\STX\DC3I(\235J\SUB\167P\ENQ\239\bn\DC2\GS\222\SUB\204\241\179U\SO\&Ht\203\&8\214V\182\212\DC4\ETX\164\&6\179g\DC1\252k\210\202H\203;\208\"B\226\&6_\t\196\209\SUB\184\173\139J\253X\241\STX\206\&6^\DEL\133\DEL\148\&9\151\176~\EM\199\156<;\216\247v\151\&9\138\227\226JO@1`\239\ENQ\a(\234A\NUL}\FS\r;\252\&9\192I\134\227\134=z\131M\145G\189\138\195\172\132\254k<\206\214\DC3\231s\131\236\170&\245\191L\164]\250$=d,\143(x\SIx\248_\193\n\237\137\141\EOT\NAK\211\216\240\188N\163\&3=j\STXE\129Go\DC1t\205\189\230\&0\135\DC2\224\ENQ\222\192\"\142hD\RS\133\v\160u\a\241\244\255\202?\STX\154\EM1+JS\145\129)0\170\198I<\196\DEL\133\FSq\245\&3\136\157}tnk\157\152\206\255\148\253\&0\136\236\249\141\233\178\212\241\196\EOTHr\181g\198!:\az\RS\SUB\182D\190\141\165\138\189,\229\203\&4c\NAKw\142\139\&2`v\EOTh\t\207\&6\243>:7\ETB3\243\229;U\201V[\159\DC4\251\188\174\164\r{\240\193\223y\229\185z\192\218\EM=\246\202\DC2x\SOH\234\DC4\ACKj\STX\US\134\ETB\232\214\237\235\206e\191\206\&7\136\&1\227:\187\210P\EOT\216\133~\210\176Ln\132\SOH\235I\169\135D\135P\222\236\NUL\201\191\147\163hi1|\222\&0\225\230K\180 \210\132\&1\200\178\151\&22/g\171_\250W\DC2\168t\n\219t\220\252\233\DC1J\202\229\206D\SOH\155\236\"\STXX\v\157\228)qlrg\218\ENQ\224\251\157~?\205\171)]a\193\206]\199;\246\145\241\179P\215\ETB\238\ACK\143\131\NUL}uC\166\169\148\190>?E\157,\179Z\161\180\243\253\225\244\240(|\224\EOT\248(\195f\200g\217\173\177\nl?{K\246I\178\DC2\FS\140\208\SUB\196\nvG\FS\184\227\166\ACK\150\&5zCVZ\254\216&W\230AO@`\139\220.c\227\151\226\225\136\179\131m\186\164\DC1\248\197\160[\238{\215\136q\148\&7\153\177\207P\CAN\227\SO\225\163\212\189\DC3\148\145\222\249\ESC\f\226X\SOPO?[G\204\155\219%\188\242\&9\174#;[=\203\179\&3b\155~\132\174z_E\220\161l\202\235\&6$*~\184\155\245dS\185:\GS5\224M\191\197\147\167h\t\211\\\n\238O%\143\225\139#,y\EMB\141\169\&7\216\235\CAN\148\ACK\SI\188\176|\175\215\USQ6:\202\191?\177\187\n\\\203\192\162\230:~>\220\223\DC1\191H\206R\242\146g\196=H\215\208\154\200\178\168\t~\CANl+\148\139\SUB\DEL%\158\188\152\NUL\212\USZ\150=\191\fF\185\185F\187 rB\229\178\198\"\175=Z.+\ACK*\219\143OR\t\198u\243\132\a\170\DC3y\197\149\US\143o<\246\"q\164\135f\230\STX\230\132\177\245R,\212\168\245\233\226\195o_\239n\182}\254\SUB\DC4\138\248\143\166\139}\t\145\218\218\159\197.Y\223\224\182\131CI\180\131\237\156$\231\236Z@\202\175\227\&8\169'{\159\217\206\n\151c\246\160i4\244~VO\142p\DC2\212\&1\159\&0\140\247s\CAN\142Dl\131\163Y=\173\135\201\142Yw\221Wz\207V\SI\236G\210T\rm\148\SO'f\177R\128\149\&8~\212\157\228M\255\230g\US\209\147P\161\130\149\ETX\EOT?N\SO\249#\225ah\202s\159i\SYN\ETBm\171\239Q\152CW\129\196\190A\240V.\184k\RS\248\SO\168[(x\232\149W\165\238w\244\215#\223h\188\171D&\173KW\213\245\201\144\190YeS\143R\179\229>\182K\224\163\216hv\170D\175\164Q\141\DC1\186\n\244V\210\SOH\204\&4\243\200\245\139U\f\160g\248\170\tl{S \128\ETX8O4\189Y\200\234\138\134\ETB\130\234\160+\192\218\171\187\161\147j\179Y\176\253\250\211\GS\176\222\153\240\233\163\211t\223\SOH\227\201I\211\SI,\RS\190J\185?\153\233\201\n\236\146\164\a\144\206\219}v\226m\222o\160\NAK\235Ke\137L_\160X\253\225\162\&3\192\ACK\185\139n\EM\249\148\245SH\250\\lc0\252M\190\243\USfR\181\DC2P(\184\154\212|K\210-Xa}\SUB\190q\ESCgj\128#nP\135\255dPp\\\175\SOc\215\219\vs\n\SYNR\130\179\151\196\227\144\192\212\221/\223\202=\ETX\228Z\231\&2%\223cU\ACK\152&\168\171\134\211{\240uPy\249\227\229<\180!g\200\162\&2_\150\221\216|\SYN\176\253\236#\ETB\216~\128\222i\157c\128UYx\195\212pOv\SYN.B\DC4:7\227\136\184\236\230=p'\235\247\228\236s\140h\FS\130]\174\215\STXni\249\184u\199\247Dil,|(\232\SI\191\&8\133\SI\149\191\&0\239\155)\196\&1t\200\DC3\DLE|\148\188b\STX\197\191ou\n\205c\193\180\250u\EM-\184q\228\215hj\141=\131\199\236\183\210}C\176\215W;]\170\f\181\201\227xo\DLE\187\208\ETB'?\130\171\182\135\228\248\GS3d\ETX_9A\144f\212\215\DC1R\237<\139)P\214\SUB\244U4\214K%?\211\184F\236G\DELKA\183\148M\205\228\DEL\199\208l\230\142gT\227\166\249\219\DC4@\147\207\RS\154Dy\251\&2\241\253\221\NAK\190\SYNl\SOH\191s#C6W\SI\177i}\173\EOT=\195T\255\231\168\&3\172&j\221X\DLE\ENQ\135\&2Sh\239v\a\244T7\131XEb \189\218\&7\226?\DC2\176)D\ENQM\210\ENQ\201B\159\168/^~$\133\142\199\EM*P\179\157\243\215$\STX\143Vy2J\205\185\238\&7\234]![Hj\204\137\177\DC2Y\RS\GS\149\227\248\132\164\ETX.\ESC\176\\XE\133\187\179 \191S\141\195^\134\128\218\215\SYNc\EM\179\145v\173\132\140\134\n\254D_\181Kk\249Uo\177\210\170\219\196)\218\NULM%X\173\165rn\162w\187\207\169t \201j{RR\165\152\&03\211s\193\f\174=\198\161\DC1\163\219Z\173rb\226\216tAp\CAN@+,\222\179\165\212C\222D|#\201o\DC2n,\192\ENQ\133\EOT\190\212\&6\148\243V\DC1r\228\130q\210h(\182\143\166}[\199H\179{\US\163\DLEnes0\ENQ\232\193\150\228\243\133]:\171\159\194\&5\EM\130x\183\&0$\219\v\EOT\195\169\134\220N\DC2;\194j\154\DC4\180\178\NAK\EOT\169/b\207\155\"\252\243\SIQz\\9\t|E=\210\167U\202;?\RS\146\212\173\b\134\f\206\141\v\133}\181\ETXn\129\244%Z\RS\230\STXzUFy\203El\DC1\GSy\177Z\162\&1c\ETB\SO\t\248X{\DC4\135\194\165\255o\194\&3\240\215\DEL\162\172\159\244I\191\DC43H\190\158y\235\234\241\226\146\SI\249IrOl\255\158\RST+R\192\155\SO\181\222\180\225u\227k\EM\DC2\215:\140c\218K\ETX7\DC3)\226\244\233\215o4\SUB\164\US\225\188\129\t\193\222\254)\183\SOe\EOT]\b\t\NUL\v\172\170\DC1X\234X\STXH'\207C\USc\136;\250j1|\222\&8\149\173\235t.^\129\214\183\n\168\166,\az\224|\212\192\176\166+b\206\DC4f5jT\134\179\129?\167\193\DC4\158W7\221\240\246;\212\154@\229\\\170v\"\183\186,T\215K\SYN\161\224Z\183\128ku\146*=\FS\183k\152\&8x^P\245\196Y\238\NAK\141O\144\155\243\148\186GHjQ\225\"\154\173\210{\193\"\208FHG\143\&8[n\SOg\235\194\195\221\217\178_\136\216\a \157\251\233\DC4h&+5\234\128O\171e\163\STX6\134B\USJ\164u\183\221[\135\128\179i\158\b\192a\158\US\160\&5`\v\213\253\DC4d\230@\147[\171Y4\161\158\FS\224\175;\191\194\237\224\&7\t\142\226g~\174$x\170w\159[m\DEL\228\141\&8\r\135\184+&{\178\167\252\&2$\DC3\212\219\159\220L\216\153(\191:g\188{]\233\186\v\223\RS\200\135\249\DEL\142%\212\208F\168\&1\DC3\173>\FS\143\193\250\166\255\137\235\189\174\210\195\129\162\237q:O=Ng\SOx\SOH\233\254\\\r\194\213\146\137\137K\255L\162\223+\202\140\194a;\175\162Q\169\171\"\219=\217\206\ETB\148\155\234\146J\178\135\181\177\166N\152\190t\209\244!\SIu\243\f\183\165\128\NAK\183\140lk\174X\191V\249\&0\FS\173t\254\154(G\ETX\253?\ETB\172\132C\168k\255q\FS\"W%\NUL$\173|\196L\183\186i\SUBg\a\132\241\SI\141\196\&4S\148j\vY\220\DC3)\164\240.b\SO,\193\216j\253\134\252\200\236\SYN\SYNL\242\231\155XQ\168\ENQ*\255\255\212\207\244Z`\166<\247\226\210Ni\220-\192\SOH\201\230/\SYN\180\212\236D\146\230\vH\169\&3S\181E\DC1\213\254\229\DC4\\\198K{\128\189\181g\EOTQ^\SOH~\195\150\144#\215q>a}\204\157\231\212\215Y\249\171\133\GS\229\225^O\n!q\152\133a\248\157\SUBe\156\217\v\150aw\187\168\CAN\128\&3\149EV\231(c\136\bk\206V\223\n\ESC\173z\149\"\DC2\195\176A\251\r\174\240\130\SI\204\196\SOH\168y\214K\r\204\143\SOH\NAKv\214\&4\205\214\138\212\134\221y\180}\ESC\144\197X\164\240g~\137.\DC2%\STX\a\206\181\173\220\211/\193$0\177\167\149\255,\190\\\152\&3\n\ENQ\b4)\vt\251=\RS8qL6\234\246[\183ZE\212\191\139!8ct\155^\162u\203\186j-\254\231\164\131\159w\221M\191\214\CAN$\128\223u0\236\196\&7\201N\FSy\168\136A;\DLEi?\142\221\150,,\199\182q\GS}}\223\188 /9r%\202^X$\GSV\DC4\252\141\252\EOT\146\242\ACK?i\146E\164\210K\153\&5e\193\t\250l\182%\222\&0y\185z:\161a\212\150\180\195\145\DC3\215\155c\228^\228J\191\199\"t\252\223\238\227\146\185\154\NAK\205U0<\ETB+\170\240\183Wa\245\&3\206\137\SYN}\200\138\196\&3\179 ~\CANT>\DC3\252\178\180\141\138\179\SUB\254\131\140\133\130\140\206\133\153u\225\NAK\"4y\185\"\229+\DLE\176\218\EM\207KT !\173\237\206\t\236gF'\a\189\170\239\&6W\200\190\242\128\180o\249\212W6\224W\165\218\195\160\229\237\148d\v\153\t\188k\184\197\&93N\206\253\248a4,ux\196\247\209\134\172\ENQA\RS=j3\148\NUL\178\146\255\249@\143;\233\187\EM\227h\172\EOT`+\t\161x\242Y\231\a\NUL\ESC\SYN:\SO\t\144\191\212Ar\208\128 &\219\233\245\DC2kg\212\149\171\162\250\251\193u\155\131\DC2g\236}\148\249\&3|\131\240z\138\139\239\132\a\193\143[\249\251\239\245\190\231\&6\144W4\NAK\164\234\135\228E\220\ENQ\133\195|\245\160\180L\194\162sKC\SYN\131_C\145\SUB\DC3\159+\SOH\FSOs\247T(\205\181\163\154\\\249\227D\203\203\145\198\223D\255\DC4\DC21\163\DLE\163\255\209\244Y\153\152>\249\SO\ESC`\171p\177\147\&3x\r\132\211$V[\161\197/\153(ro\192}P\GS\159\216\SUBF\223\137\197dS\156(\187\ETB\253W^\216CDw\216dx\237\DC1\198V\233\DLE\b\246]C\144\233\153Pn\197\137\152\250\175$<\196\245\f\180\&6\246\251\250\&0\169,\226\238\211\NAK\145\167\FS\DC4\229o\172>\137\DLE\146\ESC!\\\GSQ\218\b\246\201\200m\US\249\SIp\161\246)\209\&6\151\DC1\147\227?\SO\"c\249.\128\161\te\148\ETX\167\176\226\215\214\US-\163\EOT\225d\187\a\177\185\231\&1*\163i\141Xf\226\160\134\151\174\226B\170k\250E\216\STX|\205\ACK\ESC\EOT\ENQ/\232\177\161\202=\191\244\237l\SUBs\254;\174\229\US\191\128\150\246[\171\226\&5i[\173\vG\SUBv\209\&6\NAK9o\163\DC2\213\CAN\130>\132G\145\252\235\235(^\202/\162\ETB\n\236Z5m\a\173\221b\169\174\128\179\191m!e1X\235&\SUBX\164\237:\US4\177\182P\200{@\175@\tW\190\&8\218\215\t\162\US\ETBTf\182\&7\154\168\168\&0Lv\240j\244\188\210{\134^x\222\251\148\184\246U,\f\136\136b\NUL\181\170-\US/;d\228\NUL\237\DC3\174\246\198\248\213=/\SO\182\b\226\197fwx~R\189\182\142N||\225y]\tSI\182\191\161\139\DC2}\220\231\241\219m\238l\231D^\227\NAK/i\162q\234\v\185\253{0\ESC\161\130\187\150Dp+\205\196\241)\161F\SO\180\225\&7+\130z\171\193\192\167:7y\208\168a\SOHo8\ENQ\DC1\252T\202:\US\205\148\235\b\163|'v\218\&8\214$\251\182\196\181\227\DC4\ESC\242\EMP\146\216E\165\184t\186\213\234\137NB\144\135\&4[\ETB3\144e\174\DC2\169\141v\251\232\224\SUB\233z,\182i\176\187vI\183\194J\159\239M\199\198+\198\&7\US\183\185\236\STX\b\240\&1\vtV\ETBD\138tD>>\196\183Pz\DEL\195\DC1\191\t\SYNIX{\t\237S\179%\165\198k\170\173}M4\ESCG\248\GSC\154\209\187\US\220\161\200w|\134\ESCQ~\221\241\136\237\164\161Dm\140\174\225\249\239\223\NAK\169\251\CAN\144A<\240\222\206\vv\253\204\RS\157j\253)\246\206W\219\232\219\175\&7\158\238\202mb\209\148T{\166\247\218FN9\237\ACK\225@J\250\205\"\130\145\217f\183\171\239\DEL\178\235\\\174\RS\250\207X\DLE\235\"P\200<\154\194\DC3\175\134\NULzM\237\215\198\252\161\175\149\STX\143\219\&3?\231\245\214\NULA\ESC\GS\171\&5\242[-f\244\178\232\143B\v\CANq\141\235\149\195\175)$\177o[L\234.\228\EM:\SYNb\229 \247\243\232\222\NULR\253\243\253\ESC\aZ\206+\241\162\151\254\221r\v\199\223l\214\144)\240\215\ACK\242\196\fV\DC1\DC1\214\207\224\229y\218\201i@\218\NULm\206?\DC4b\148\194o\164+O\CANe\139\DC3\214\249\253\151*\207\238\GS\236P\145S\226\214\224\SYN\156\NAK!\175\142Y\221\"\DC3\230\133\168\177\f\156\226D\217\168\195gKz\167\200\217\155\239\"\171\226\176\243F\180\ACK*\NULr\206\190R4\ENQa\144L\149\DLE\255\DLE\215\210\"\233\DLE\163\224\199n\162\US\128m^\241_+\133<\159b\243\215\151\225\216\r\184\&9{F\156\EM\171C\EM\180\128\&8\241ds\r\216X\234<\130w\ETBy\v\227\240\206\176j\199+\ESC\a\235\152\182\202\245~i+\142s\227\t]\189+\171\131\232\246~\210\221\158\151\t\176\203\238.\214\&6\228\170(i\187\130\223\173\FSi\ry\188QJ}:\\\SI\191\198K\162G\137\144bD\185Mn86\174D\GS\182\226k\214*\226\155\206d\198\244\187n\194\135R\142\165WCz\137\&4AS\224\157\v;d\151\161\172\RS\189\197\165,\EM-FQ\v,\154\nj\249\168\211{\DC4\141B5Ir\152\163\SI[\n\196H\STX\155\234\172mb,\192\157\132PtZ\134,\CAN\255\158\240lbq^=\138\140\128\NULnp\242/N5xE\252%\tJ\207*\143\202\176\222\194\158Xx\213>\203\196\166:\128\STX\SYN\206\229\216\201\219\144C\154\FSR\DC4\139\239\238\&2YF\184\a\217x\231&*\151F;\196+F&GQ\152\246(\181n\133(\246\190\156s\ENQ=9A\199w &\143\a\nX\196\135\&2\249\138\197Lm\156Hd\164fW4s\184\139\&9K\159\196\NULh\210y\DC1\ACK\131\142^\179\146\149\\\231\235\239j\"\v\v\194\202)t/\198\152\193\DC25\204\ETBiG\194\178\198m\154\210}\247\SOHq.\DEL\131\242\161T\\\167>\202\&4\139<\202>\ACK\199\213\199\CANL\250\180Wc\GSB\221H\DC4\145\ACKm+C\EOT\NAK\143\217\180\240\GS\137 \175\199U\211\245\205\133\SOH\150\135\DC4\244\235\FS\242jy$:\230\184uY\222\DC2\238\227\156K\DC4\180\211\229D%E\DLE7\173E\195Y\168\217\227VgK\160\&0\193\141r\227\178\180W\154\168[D\182\192\223\237\171;\222z\170{K\198\248\SYN\157\244'V.J\209fi\163\244\204\250buh\255\ETXq\153-UC\222R7\128\217;\169\ESC\153\175J^9;\160\238R\224\ETX\ACK1\222WF\153\CAN\243l\163Jat\DC2\234e\225\250\b\149\144\207\b9\165\ENQ\DC1G\184\151\216\248H\172\fq12\140\152\&6^\196\175\222\228\247\244 \217\138h\189f\140\222\EM3\216\153\245\140\150\129^\169c\150\224~\192\n\135y\244\175I\EM\NUL\DC43\221]\131\182\143\148\160\209\142B\227=\254v8@\144\201l\FS<\225\SI\DC4-]\252\145=\215C_:b\240\&7\131IO\SOH\223.\169\175\208p\189\232\243\245Y1\163\249v\246\GSh\140T\253|\252]\FS&\243\&0\219hS\167B$\244\240vp,{\198\&3(\180h\227R\204\138\241\200\230\232\145pn\153\136\&0JI\DC3\146f\133]\178\152\211Q0:\200#!\NAK~!\227\143\223k\158\SOH\244h\246\147\235\174\153\236\t\181]\170\204\248i\249\241\168S\DC4n\195SR`\165\176\132\193\234\180\&3;6gm\225\t\243}\163\f\182\221\248m\188\176\138\144\209\&7\226\f\207\204>\241\&5\133F\210\DC4\173<\243_\237\171\172\181\198\DC4RS\DC4\vV\198\158Z\236\"4\DC1\179\CAN\150D+@\243\192\176*\164\175\244\219\tL\169Z:\241\232<\140\134\229t@9\DC4\233\231o\DC3o\DC4\156^n\CAN\175\US\251\168\141}\215\247\220\184RW.\137\DEL\133]\216\r\238\210\tA\137\&5m3\178\GS\170L\fw6V\250\150\168{\218\184\&5,\231Sl\t\140e\165\&5\223\&6\194\196\159\194\185E\220\129\204\183[\129L\166F\252\FS4\204`\DC3\156\144\169\b\165\\&)\139b\143\217\229g\\@\185\233\162j\152\250\129\141\217\239\135\143\222\216\DELGx\DC4\214\152,X\v:\235\207[G\177Q\152\187\180\161\&0\148\142_j\243\209>c\231_\r\143\187e\136f\239\198\ENQ\ACK\ETB\ETB\246\NAK3g\166/\231\167|N\218\SUBQ\ESC\t`PtN\205\167\158\209\244\141\175\129\155\212\145\180\244\181\&9\129\185\DC1\188\252\185Q\148w\158\195i~v\233\247\133\160\220\133\249\153\150+,?\NUL\230,\146\173\208\b\181\&1\NUL\STX\175\211\225\154\229Y\158\136\SI\vCE%\237'\160H\181f\251\RS\134\204\214\161*\206\NAKG\247CK\249\196\ETX.\180W\240\SYN\f\STX\254\139\234\NAKr\212se\179p\\\205\ESC\243\155\175\222jo`\220\176Vp\b\DLE\243\218\131V\STXF\247\n\207g\155p\255'\b\150*\GSb\NUL} \243|\161\254\RS9\167\248\ESCA$|\208\228\128\224\142&\218=\224V\216\233\141\157\208\170\160U\165\GS/\t7\237\176\215\214\204\163T\NAK\189\CAN\248\167,fE\143-\169,<\173\SOH'\171\FS\230\&4\fl=\ENQd\138\227\&7v\145I\215\172\232~\200{\232\202\NUL\129\182\206\192\231%\195f)\224\224\168L\196\155\213\217\239\221\225\206d\ACK\149\188zZ\151\SOH&\252\&0o\144;\173\196\140\SOO\224b/\254\128M\151\247\199\144\"\DC3\196\130G5\"\229c\135\145\"\vB'\NAKo\218\249\225\223vD\222\142\NULg\SUBy\148\235\ACK\211\DLE48\158P\133\160\253\136\159u\251\247\249\141\241\v\187!e\234?6J\147\187~\228\SO\225\240\222\180\200\176NWC\179\ACK1\159\208\235\246\137\187a\134\153\217/\254\160\151\139\143yg\228\159U5\128\ESC\150\161\129W\178\173X\DC1K\198\231\204}\179\t\248F\DLEr:\205\254z0\192\212\201\164\NAK\193d0F\227F\186\GS\210\151\ETX\165\250^\220\&7\128W\190\&2\237\ETXc\252\226\205\137Y\210\208\137B(a\186\201\rp2|V\190r~!2\163\DEL\247BI\253vu\169\166\&7\212\162\220/\253mB\141\244\SOm)\EOT4`n%\247\181\&0\172\&6\233)1\162\USy\ACK\227\EOT\187h\241\154>.o\217\246\209\201\247\201E\237:O\150\&2-\136\139M\177\223\SOH\158\216 71x*\215\243B\129\139\157\220\201*\142@\237\237\236P\160H\194\181\135L\207\236\154\DC4LU.\231%\244\&4a\233\240|e\146\246\144x\173\235\234$]y\233J\US\CAN\240\"\236\226i\137\&1\142\132o\166\154)\STX\191\164\202|\158\222E\153\193A\130\173p\199\244\ENQ.\154\160\188\210l%\255\173\255\208\247<\191Fw\r?\135\aZ\182\172G\226\228\214\171_V\167b\182J4B\134\DC4\SYN7\STX\142U\231O\144\174\197\142qT\164\v\150\169\NUL\184r.\214\169|?\231G\ESC\254a\140\SOHG\DC2&\200\200\205\254\210\144\167B\DC3\245\197\138.W\234\r\209p\157\155\223P}\SYNzMHT\130\175\247\247\210\159\190N\189\231!\186l!\"\202\ETB\"zK\213G\231\156\216\200&\164\178J3\152\202\&5#\217\STXe\STX?\NAK2Zv\151}\249\213\200\176{\185\138\182\208\&4\228\139@\b\161,\178\ETB\255\166\128;d-\193|\141A\ACK*;\161!~\208X\243\153}\231yh\134y\210M\232\136o\238\230\212\145v[\ETBV\129\220\176|D\128\199\210\133,\160\174\190\&9R\151\193\&1\175\133T\168\v\DEL\158.\232\DLE.\138\243\&21\DC2\185`n\221\135\218\ENQ\212\247o\FSO\187m\233\EM\136\206\DLE7<\209\209<\220\161\167\SI8\169Z\215\223YB\152:6\191+\251\ETX\225\154Z\253iM\214\SO\173\207^\220\f\164+\220\184o\136\237\251\136L\223\155\ACK\255\184\203\189\135\145\245\153)^z2D\150\216\218\ENQ\172\251\vy^\154\v\174\DC4>d\222\162\170\147\212\r 9\212\243\NAK\251\US}\151{\137V\223\ETX\148\152\218\249C\146\DLE\SUB\195\SO\191\244\NUL\170\156\av\EOTj\CAN\165X\NAK\ETX\144\190\140\243 \SUB\144\180\131\167\DC3\SOy|\237\165K\145r\156\143}\SIl9&Ph|P\159\188\&1\211)\DELp\NUL\230e\188\ENQ\204\186\130\170A>o\EOT\133\245\NUL\234\176\203D\r\207\154\236\128\129\221\RS\213\225dDXTF#%R\151\SOH\246\166-\245\DC3\175ER\218&\158\186\128\&9\138\177\222\198\225k\137\227\178O5#\211|\160\191\129\186\236\205\\p\207p\243\157\&8\184T\231I\139\"P\149\206L3\141\&6\228\229Ro;j\255\165m\174\219Ht\205\GS\246\ACKv\SUB\215\226b/\149\US\209\DC1qm`\202\247\195Y\253R\209\137\231\131/K\191\189\167\137\198\163\CAN\\k\207\aP\176u\253\SIg[\245\236\208\175\148c\167\237\180\202\150\201\198\237\200\232\237\223\&0]\216\199\SUB\137Hb\152\244T\169\n\148\&9\253\185\182\167\158\v\159m$N\138\150F7\171\140\179'F(+\SOiF\133\DEL\191\147\213\208\191\187q\227\&8\129\254\134\249\&1\143\STXxXj\237v\146\216/\233\221\165\190\136\207U\251a\ESC\bER[\128\240\&3)\162\169\&1\153\234n \195\154\DC3\243\220[D\171\224M\197\182Ra\a\155^#)\177\246\ESCq\235`o\145%C\140=o\171\235\189f\132\250\212\168\233\DC2\239(\233\234\&3\146\144\218\ETX\210\165\159\DC4#\192\226\185\135\215\181\167\STX\DC1\207\167\&5\151\187,2U\138\151\ETB\145\139t\128\132\v\245Y\b\182\146\185=\164\193\233\178\235\ETX\235\EM\242\139\186\207\GS\130\241x\v\191\219\186\193\170\249e\156\136\r\149\251\ACK6/'\ACK\170\214\SYN\233\207t\148\228\CAN\174^\179\235\v@\211;&c\132\188\236\CAN\219\&3\170\206tz\ESC\245>\182\245n?\177\198\201\232\197\206\148\144Pz\151>\DC2\219\173!\RSM\DC3\155\238\143:\EM\252\FS\SO\181\140\FS\185n\131\DEL\190&3\201\251\181kG1\ETB\DEL\130\DC3|\195JRdz\144\ENQ\149:\DC3\255\189\199r\NAK\198H<\222\175~u\165\148k\202\"T\254\177\177=\245}q\210\166}\247\201'\219\215\246\135\DEL/\151\132\180\225\251\184\129\166>t\164\CAN]\bQ\222\189\176,\245\236\213|\218\177\151\222\185>\134 0Fdb`OI.7q,\201\ESCU^;a\152d\236\&0\210\193\198N\ENQ]Y/\179\237\166\128W\153B\NAK\230\186\SYNf\234wlS\180\148`\STX\193\GS\220\175\128\205\164\244\144\222\229\b\181PI\186\190P\130\143]\164\SO\ESCi\247\221k\217\237\DC2\237\220\226\201\206v\210VYe\139\STX\226\&66\165JL\a]P\146?\240\133G\f\251\149YK]\223\180\154>\SYN\n\128^\211\159\177\165\&0\143\&4\157\220\189\243\170\250U\FS\SOH\169\218,x\167\ETX6\165\STXC\DC4)\176\164\194\222Q\ENQW\139\189%\196\DC30V\187\&69\144\242'>\154\149\&0R\144~\168\176\143\151(\171\134g\131\162\169\139\169J8-t3\199\153\255\a\240?\130\200\208 \195\&2 q`\n\177l\147\129o\195\b\213\217\223\179\203o\159K\EOT\CAN\137\146\170A\229\142\255\ETBy\250\218\182\SUB%\137lh\244\144\STXg7u\235s\132\220\SUB\212v\146Z\192\&3\233\157\239*oZB1\194\234\182\208\185.2\148m\149c_6\DC3\204\254\246\202B0\US\161\174o\217\135\135\232\&0\149J\207\196\147S\f\191\175{xEh\146##\238\252\143\227\&1@S\DC2\194\n\181\249\&0\207\168\174\174%p\SUB\"\ENQ_\218fus\238P.\\wn\255fN\186\226^\f\132\190\SOH\206x\131(z\179?\235roV,)d\b\226\155h R\GS\130\176\164F\253\173\248\SUB\202O&\va\147\221}(\ACK\STX\a\181U\NUL\212\179]\NUL\248\187\196\228\ETB\178\EOT;\FS\bg>z\197\131\DEL\207a\193h\DC2\216\180Pl\176F)\NAK\173\163\204V;\217\SO\SYN\227\250\SO \215{\245S\245\245\223\128\169\216\DC4\136\176(\147\ENQ\163\140\220\159@\DEL\186]\207\tc\192\159\186\&8\149\&5 S\SYN\189\240\141\187Wk\243?\207\172\ENQ\144N\178\DLE\215\234k?\153\166\164\199\STX\EM\178\149\220;\187F\223b4z\NUL\156\167\231\183\131h3\221\240\173\173E\226\147lG\NAK0\227\221D\194h\238\221b?c\US\a\189\ETX0\t\ENQJ\221\144\129\212E\232\207\221G\224-\229\181k\230$\230.\148\248\155\176\176X\190\216\203\145\186\242\190\141\236\224c\239\153\225\163\237\168 dS\155\197}\206\ESCA+\187\206\t\DELuz\150h\214\213\168y\252\210\234\251\GS\182\162z\SI\207\v\236\186x(_\176A\131\147\153\&0\DC4zzo\232\159\SOHk\230\248\204\186\243\253\218L\208\156\204\199`\196#<\166\a\DEL\186\SOBGF\132iG\235?\144\179+ohD\154\209w\ACK\171\NUL/\236\137\&08(\218\196\182+&\173\134\160\ACK\ETB\236\SYN\EOTb\181\DC2\245\217\186\222\CAN\148ud\178\239\143\223`O\220z\245\SO\160\251\138\220(\253\&3\254Z\249:\210|\133&\133O\157'\EM\158(hWf\180\244\194\237\173v8\176\179\135\222y\192w\161b\188\248l\178n\162\215\203\172\218xw\131\190I\"F\163\DC4=\143s\v\165\SUB\251\160\216\SUBG\212\167\192\130^c\187\212\252ZK\218\171\219s\211\EOTQ|\179\248\216\CAN\140\228\&5X2\217\205\131}\202\f\187J8\250\250\STX\234m\219\243o\254\158N3\179\150\239E=:\160ZZ\212\132\191\137\187fb8\138\240\235\FS\148@\142\192\215S\195\152y\"\187\&5\US\254\&3jz\201)\218n\SYN\SO\236R\156\244\249%\254I\\\253\163\207\&8M\191\237Z\128\186\159\238\197\SI\135\186\229U\255\252\147\ESC\236l\255\203\205\145\163v\182y\223}\172.\205js\188&\243\175\222\190v\217i0\182\226n1s\225\170$\ENQ)\161\130\249v\130\149/\134\168\254\247\&0\205ApB\143A\188c\225\198\222\164=\243\252\161\140~\234o\129p\128r\155\138\247\185y'\239EX\143\222\190\v\219\186\136ZY9\212\218]\134\249=\196\241T\247(\152\210B\231\&8W\184p~\237\DC3-?\208\220\b\151\208rN>M\198\154\fzzW\225\179\190=\154\221U\173i2(\221\f\168w\211\156X\181\232\185\253\205 P\237\206e\175V;>^\180N\152\141y\185\199U_\194KI\193\&7_\ENQ\164,\170\ETB@{O\217\STX\252Q\DC3\135\SUB\142\CAN\145P\170\195Fl\NULc\177,\ETX\175\142HA\244\ENQ\132\189\247\NAKo\254\238k\225\152C \252t2\r\130\202\n|\139\198\157\171\&8\146\139\137C\202q\SOH\".\248\ESC@JA\ETX\176\220F\212\144\NAK\238\161G\197\t\ACK#\167\179\153}\251\ETX\DC3\133\166\166\136\NAK\141u-\NAK\135f\NUL\238Q d\208\234j\133\236\193\154\219f\209\155\\o9\219\&8B\165\CAN\137'(~\138\217M\215\147\197\179U\211\ESC?0\189\ETXO\199@`\135\208|Vb\130\243J>\171\216|9\131\179v\219\161\207\145$[\vi\162\187e\NAK\199$;\189;\DC47\195\US\196K\169+\175\155\247t\205\210\DC2\bZ\SYN\140\191\251\&3\163g\225\&6\252`\190\bC\181\170\194\191\SOH3\131\225\196\aH\252\&4\ESC\SO\182'?\SUB\195\140\132ak\186\165sx\199\DC4i+J(L\RS^`eW\ACKk\201}\DLE\151CK\219!\160\235\158SPF\174\129\133\NUL\166\&7V>\142\140B\STXj \157\148\&7\231\167y\178,\179\196\178\253K=V\173ci\NULH\167\156\192\181j\r!\249\142k++\229`A\US\227\203\176`6\\w\251z\SUB_~2\174q1\147\149\233\&0\167\194\254\193\192J\159\237\&4\178\204N\177\ETB}:\USMA\210\219\184)\178\241}\n\250S\149\224\224\148(\162\228\142\196[\134\238f*.{G\160\&5\150\185S\SOH\230a\170z@p\\\RSa\FS\"f\157#R?\242\&9\191\ENQ[\222|\138\184\RS\211s\176hM\185\205s\205*uU\EM\137Z\154\177\EM\243\150J!\227}\219\185\196\186\182B\224\ESC\154\196et\219fa*b\133Y\243\194\188\227\149\214&\224\161\b<\157T\254?\159^\NAK\174\157\250t\216\DC1\238\243\232\&1\226\228s\217-\STXAr\188\RS\182\231FP\209PM\222\SI\152\186Lh\172\176\DC4)l\129\218\255aw\171\194\154\254\199\165\231\169\225)\211\209K\137D\f\DC1\DLEA]a\223\149D\134\194?\207C@T\203\231\177L\245\176\EM\153\ESC\222\EM\EOT\US$\253y\DEL\178c\221#\247\200\139J[9\162\226\&9\165#\v\128j\161G\252X\237\254\148\191\247B\155\131\227\218\193\GS;u/\202H~\172\145\NUL\240s\163-\246l\NAK\229\US\187\161\140\197s\DEL\189\228A%\212\EM\170\138\136\234)\149r\fKp\213\234\245$\158\129\224\b\162\195\150\f@>.\254\SYN_E\198\&1.\160{6\164\160K\226\195\144\&6\145\254\227L\179\178h\209ErA\SOH?\177\ENQ\158\&9\179\&0\a\205xE\DC32\fa*\156\150\206\136\146\240\154\170\139x8\190F)\197\195\163C\242\149\DLE\248\&7d\ESC\196\253\167\&7]%\206\232\&0\158I\153\237\139\211L\ACK\229\RS\135\226@\130\220\190\SYN*\165\225\166\132:WX\208\252\168\178b\193\240\244\228\195^' \222\213\149\199N\241C8\229\162\130v\DEL_-\252\&1\FS\166\210\138\161\200\140\216\CANn\192\161\t\"\129Qg\232\146\&9/\151:\217\EM\247\217^`\198\167\158\239\147\f\215\133\142\184\171\218\242\224-\238\r>\132C\138P\132\216\227(\219F\139b\f\156\207:\135}\194\198\141\SO\234Ec\169V2\211\235\131\133#\DC1\230E\253\249_\253\186\165G\155\&1\131IF\219\254\177\231z}l\203K\226a5*\234]\227\166\171\180\132\150p\175\b\185J\249{\201m6lq\DLE\173\140qM.\141\206\147 *\154j\213\ACK\160\168\v\225\161\251\178\238\RS\135\210\158\RS\198\188\148\137\209.\219\FS\136z\168\204U\159\161\SO\SYN\223\192*\139\175\206\217+O\168 \222\248\ACKf\ETB\179\&1\140\240\193\244}\187:\241\156!\STX\240\DEL4x\188\173\207\156\184\&3-$|.F\fk\212\165R\135\136U\144y{\155 \229\194gr\ACK\153\179\207\"\235\t\SYN\139k\226{_\165\234F\151A\221H\255\GS2\DC2\253<\158\STX+9P\n\243g\a9h\DC4u3\"\132\224\155\&0:\189\152EP\243\203\255\224\164\199$1g\\\153*\167\EOT$\240\138V[\137Q\\\179mN\171\NUL\SUB\202\&2\225\169Z\170\204b\DLEU\EOT\205s\ACK\224\199\SYNo\247\165O\218`\216fwh-\209N&2\GS\234\156\149\129\163\141\&8\195h9\203\178\167\136\191H\223\154{k\NAK\188\245\208\231:\201\181\245gr.-\179\193\ETX\168\NAK\ESC\144\&4\207\233*\144$\222\183`m=\v\200\DLE\203\193e]:Q\255o\180\209\"\164g\188\188\&1\236\237i\205\217?\150o\238\180\184\190O\147\168\146ip\248i\170\138\182S\t;\183\199h\145\133@ \217S\209=\180Rv\DC1C\147\182\224\222\STX*a\SUB\197\161e\165\232\DC4\SOHj\201\\a\248D\149\199Z\DEL\237\&7\209\213I\216\r\243\166\225\215\239\GSg\233\246\171\215\237\145\214\157\SUBu\211\GS~j\253\236\&5\209\247\242\205\197\t}\255\236[0T\180!\150\184\173\176\135\SO\DC3/u\128mT\FSN$|\149#k-d\186F\213\ESCi*\ETX\FS\FS\247<\US\DC1[\236\&7]\207\245\v\EM{\CAN?8\203\213\226fp\185\236V7C\215\244\252\&6\177\176~q^\v\205\133\151\ENQ\207\224M\164\DLE_\144\242\172\246o\151\170\160r=\145|\129\223\244\168Nkn\233\FS\230\215\206\156s\166\ETXe8\204\150\201k_\EM\242\&4\130\217\145\211l\147@\210z\143\t\139V\f>\162\207\200\148\214\167\200\131\228\140\219K\ETB\180\162\177P'\239\227?\t\159{\155\250\&0M\NAK\190\202xf\206;&*\252\161\222{\134\167\183\237\RS1\244\208\\q\166,^\204\160\172Dq\226\224r,\ETX\SO~\223M\f\230\198\v\183N@\175\DC2\191\224\204e7\EOT3]\a\228\247\v\SYN\216\133\NAKRm\198\208\149\&5\STX\203|k\193\215\FS\189\DC1\v\SOIw\183\239\SOH\179\223\182r\208\142R>E\157-j\187\222(@\SO\ESCh\135\200\188Hg\230\SI@\212\233\178\206\179\183yy\188\STXNG\187\177y\158u\158&\DEL\CANa\129\233\&3#\SO\SOH>_A>\246\146xH\131h\175\255\212\139\184\207&O\237\DC2\197\184f\231\202no)\221\193\221\255\GSu\230?\165<\206\214\224{\178tl\DC4\249\232\156Tk\b\139\129\240>\249\188\231\211\244F\131\152{\216R\240h8\218]\193\EOT\201\161\ETX\185\250d\254\213\t\244\128\250\218\248\214's\241\135\243\205\193\200m\138\228\163!\182\DC2%\159\206B\192}\165\165\140\188Z\150\153\195\159k\193\DEL\146.v\223\171\n|\201\SO\197\228\DEL\ENQ\218<_C\242\GS\240jY\203\184/\206\203R\180B\228\RS\SOH\163\130\139\156\154[\ESC\172@Z'\250\252\GSz\200py@\148\150\DC2\237\138i\"C\155QMF\194>\192\132\216\&0\238\DC2V\170\179\"\218\210\SO\196\179\239\CANy:\129P\"n\147\226\STX\133\n\140\&8\142\134\225=\180;\r\210Kb\131\DLE\ACK\DEL\168\172\NUL\224\RS\209\184Y\171\&4oWiA\140\194\178 \STX\188=\157\151V`]\DC2\149\176\ETX\245\173\156\n\ETX0\251\189\134\171 B\t\141\161m\140,\237\242\SOH \DC1\137\129\\Y\220\DLE\236\DC3\243\208\DC1\158\149\241\190O\252\163a\183c\207\&6rc\179\CAN\250h\207MF\199X~\137\"Az\170\&0\135I\153Q7\233\232MvPM\200\ng\235\a!\221\184\DC3\205SR\219&\DC3\173o\NAKW\DC4\214\167I'M\175\197R\224\243\n\205M\DC1\213\233\136\b\225s\154\165\129=\146a\ACK\242\129\136\DC1\184\152\218:-k\133\173\200\\\219}Xs\140p\219\136\220\146\155\f\144\EOTI?l\199* #]\178\217nfH\161\199\240,\193\t7(Y\143\157\176\184\NUL\251wNGS\f(\141\188\140?\150[$\208\b|\193#8'\152\197\213y\152g\153\208\160\SOH\130[\221\DC27\196\211\SO;\230j\ESC\238P\250\157hJ\EM%\162\139Iw9\196\170\152\206\170\183\231*&M6\SOH\210\DELc\147\231+\176\132\135\&5\177\ad\177P\DC1\202\140\&0\223M\156\177\232\DC1sm7\ESC\170\128\205\GSmJ\172Gj\128F`\185\207)\247f\234\173o\n\250\181H\194\&6\139\148UbZZ\242\149f[\129)/[{]\203\STX\FSG\DC1\199\154\186\203\237\150\199\187\199\210\185>\183\244gmF{\144\166\226\155@\172\SYN\187\247ly\136\242u\SYND\185F/W\234\206#\SUB\238\216\166\DC4\"\251%V2\211j\224\&4\DC1-\249\196\&7\145\DLE\DC2\131\249\177\214Q\213\v\248\224\SYN\169\DC1\DELdqR\225\158\237\189\184\ENQ\148\148v\198\GS^ :P\189+\DC3\223o\247\GS\139\245\244\155\241\239\EM\243\199\n0\218\144\179I\218\NAK\215\173>\226\131r1\v\233\222@\161\176Q\248\&1\235\245M0\196\201!\222\244\229>\206}rg\206e\228\193q\239t\168u\142\190c1C\CAN\197o,\DC3\214\215\DC4\193\255\EOT{}E\213\186\232 ?\238\bs\198\151\231e$\a\228\EOT2\165E\t\178\180|\217m\163h\132\150*y:\225\&3\209LJIq\152\172\196\225\136\175\US\222\ACK\137\134\190\160e\223i\RS\v\196\203\226Y9R%\140\143\242\&8\252\145Vs\221\179`8\165U\\sE\a\169J9(\164\ESC\136\250F\154\255\DC3\203\&1j\227-\138\"\EOT`\128K\242\150\173\129\219|_=[Q\135\130\152\232\153\EM\tJ\NUL\t\GS\225\237i-W\RSM\151C8*\144\&4-\EMkB\SI\240\ACKg\158\FS\255\205\149l\EOT\RS\154\130\NUL\134\DC2U\250\131n\242V\253\176\243\&7\236\ESCT,\213\b\196Hm\128^\186l\172\&0\194\CANIi-\183\255\SOTz\152lM\161\133y\159\146\nT\154\223\226 \n]\DLE<\131\131\130S\nw\219\197z(\139\234\250\253\140Va\157\182:\224\DLE!\211J\166\195z\198\236r\243A%F\165\186\168\160\206\137\SUB}\GS\a\215\199MZ\248c\"\196\243\&2L^\210\217\&2\NAK\253\218\&9\194\233D\ESC\US\186\158gY\135\134F\145\251;\229\221\195]\207\172\170\154\171]\133\250\186\231\160A\242C\DEL\144\182\139\DC2\162zI\144\136<\229~qw\253\180xa\n\234\ENQ\DC2\194\CAN\238\156\DEL\246\215\202.C\201\240\255\185\145\&7\176\ESC\238\221\224\201g,\216\227D\148\b\148\137\236\253sn5\177\150\136e\240\FS\SUB\207k\210\135?\182\165\166\212\170\168m4DjA\189o\255\DEL\163m\255\248Fh\241 \ENQ\US\235\220\198\222\223\f\182N\187\166\224\157(;\214\209\242\191MS\ACK\197\240\DC3\ACKI1")]))]) + +testFile :: TestTree +testFile = testCase "Should parse regular torrent files" $ do + str <- readFile "./data/debian-7.8.0-amd64-CD-1.iso.torrent" + case decode str of + Right expected -> expected @?= file + Left _ -> error "Failed parsing test file" - -debian :: BVal -debian = Bdict (fromList [ - (Bstr "interval", Bint 900), - (Bstr "peers", Bstr "U\EM\201e\200\213%;\FS\236V\206L\NAK\149+\202\154\US\183!\205\169\203\213\210xVkX\213\239\216\205\ESC\STX[\192\163\152.:>\210\240A\ESCWT\250g\161\ESC%X\195\241\192\200\213X\165=\223\SUB\225V\157\234\243\232\191\213)\137\242\200\213[\nT\195\183]@8\249\183\ESCo\202>\DLEG\234\EM\US+~z\225\216D\169\133H\196.\223\135a\177\229\189\ENQ\166]v\251\203\200\148m\141\200\213m\226\236\160\173\156N:\139\154Y\"\188\244/\186\154\219\203V\204o\204\187Pn(b\ESC\ACKD\187\142\217\227\240Gs\139\180\246YF\169#\173\200\213\185\ETX\135\186*\137X\198\224\202\200\213\183\157A\217#\219W\251\189\150\182XWr\202\174\&0i]:\ENQ\DLE\200\211Yf\tE'<^\159\DC3\222=\167_\FS1\176\229\170\217r:\135\SUB\225O\141\162&\139\222\136\169\&2H\214\143\187C\188\151\200\213Oo\218\&2\209\132>K\137\129\200\213\SO\204\DC4\156-PO\141\162\"_\211R\144\192\a\246\232\212\"\231\nP\204_\225\246\221\200\213|)\237fa*"), - (Bstr "peers6", Bstr "") - ]) - -testSimple :: TestTree -testSimple = testCase "Should parse regular torrent files" $ do +testResponse :: TestTree +testResponse = testCase "Should parse tracker response" $ do str <- readFile "./data/debian-7.8.0-amd64-CD-1.iso.cache" case decode str of - Right expected -> expected @?= debian + Right expected -> expected @?= response Left _ -> error "Failed parsing test file" unitTests :: TestTree -unitTests = testGroup "Unit tests" [testSimple] +unitTests = testGroup "Unit tests" [testFile, testResponse] tests :: TestTree tests = testGroup "Tests" [unitTests]