8/p/8//8//P8//08/0/ش8//8/0/H8//8//8/0/8/p/(8//`8//8/0/ж8/p/8//@8//x8/0/8/p/8// 8//X8/0/8/p/ 8/  9#49I#%Y\h%Y%Y5>%Y%YNV%Y%Y%YZZ Z .{LQ  )S)) Ghhs3(8(8DDU(V(VWWXX'(8(E(EFFF OONSNN + + +  (C(( F"55h?? ee'(8(D(DEEE OO,d,, - - - OO.u.. / / /%0d%S%S%S"'7 q==G=#f'*xx'9'9WX_``%%  ,,\9hOOOOP/ui /QOčUa/`/Pa/OčUa/`/Pa/čU`čU JJJ F  r#wwH7"" j!>??? #GH    !Q & !!W/D%DEN,~=N !N,N  ( II I  E  % %1!z!\22!&q))Ay  aV$$$$ JJ>J * * * *E3 3 JC" jjl&C&C $nS)); %$$$$(3--    z%..' huoo%%%%% **UE22% y7Lhuoo%%%%E7++# ((((( $ % E=11 !k%((((((E5)) i&&&&&& **UG"<"< c%jj    $GUJ)G)GK([!6KLLFFZt,,K--e5JKKFF3U E98U8UG K%aj)z#t44l"+)VZ[^V_V_VhVh,j"k"kk!1!1#2G"I"I(KZZu-E-EK!1!1%9N!O!O#E400K!1!1%9N!O!O!,U4I!J!J#  EKKKK  % !Q & !'$99: : : :  !!!  Q;čUP*čU8/@.//%/// 8///0/`/p///0///p///0///q//0/1/`6//5/p/p/P`čU8/ 8/08//88/T/P@7/<//(38/3( Е/0r///P/JčUK|sdVdS$ |}|$vr d|$|<d}|dz }d|zz}|z}||z }nd}}d}|D]}|rd}n|}"|&r||zV'r$"|tr||zVM"|tr ||jzVk||dzVu|dur|d zV|dur|d zV"|!r||zV"|r||zVljr"| r|%|zV|Vo |d }|r|d |} n"|#r ||} no |d } | rE| d } "| s$tdt | j| |} n@r"|'r ||} n%"|r ||} n ||} | D]} | V|rdVn||dz}d|zzVdV$$|=dSdS @s7/T//ačU/bčUPcčU8cčU3/ //`d/cčUV dčUG/c/pb/4/cčU(/t7//P! /И/@K/z/0%/T/T/hčUrkčU A/> encoder for Python data structures. Supports the following objects and types by default: +-------------------+---------------+ | Python | JSON | +===================+===============+ | dict, namedtuple | object | +-------------------+---------------+ | list, tuple | array | +-------------------+---------------+ | str, unicode | string | +-------------------+---------------+ | int, long, float | number | +-------------------+---------------+ | True | true | +-------------------+---------------+ | False | false | +-------------------+---------------+ | None | null | +-------------------+---------------+ To extend this to recognize other objects, subclass and implement a ``.default()`` method with another method that returns a serializable object for ``o`` if possible, otherwise it should call the superclass implementation (to raise ``TypeError``). /p    0S/T/0U/pU/0V/0*/У/p*/ /p/*/*/0+//U/8/YčUYčU @čUčU/(38/3H.r/r///Д/TčUK|sdVdS*&|}|*vr d|*|<dV|dz }d|zz}|z}|Vnd}}d}r|}n|}rdg}|D]6\}} (|,s |}|||| f7|n|}|D]\} } s(| ,s | } | "|rd}n|V| VV(| ,r| VVr!(| tr| Vy(| t r | jV| d V| durd V| durd V(| 'r| V(| %r| V"r(| r+| Vo #| d } | r| d |} n(| )r | |} no #| d}|rE|d }(|$s$tdt|j ||} n@!r(| -r | |} n%(| $r | |} n | |} | D]}|V||dz}d|zzVdV**|=dSdS" !    8//r8/U/h8//`}8//8//r8/0/D6/p/m8/@Y/I/PQ/0/P6/02/čUp,/@/p/8/0/p7//`////8/i///Pg/0//0q/X/p(/]čU//0////p5//0/VY///@/`+/ /Pg/T/``čU/čU /,/ wMX~2R%r||D]}|VdSr|r |VdSr2 |}n#t$rYnwxYw||D]}|VdS|}|vr d ||< |}||D]}|V|=dSdS čU`čU :a & &< .(1++      : .jjE**: .y/D(1++      Z7 # #8 .. YLLLLL $YYLLLLL %ZZMMMMM Z= ) )0 .+a.. Z5 ! !. .)A,,      ?[[J%?%?H* .([!6KLL  EKKKK  At$$' .--a1FGG  EKKKK  0MKK94M4M".!!*C%:c400h'iRVWZR[R[RdRd(fggg!1!1#7L!M!M$$# $$%.**Q*>*>.!1!1!5J!K!K$$# $$Z4((.!1!1!5J!K!K$$# $$!.jjG&<&<.#a&&LLLLL, " $QAA("""!E"%5%5a9N%O%O((E"'KKKK*#%2a55#w..",*-J"K"KK,-)  A!,Q0E!F!F$$# *#H---+@07/7//p/3#/ s///0/xčUK|!r |VdS r"|tr  |VdS|tr |jVdS|dVdS|durdVdS|durdVdS|r |VdS|r|VdSo |d}|r|d|D]}|VdS|r||D]}|VdSo |d}|rM|d}|s$td t |j||D]}|VdSr!|"r||D]}|VdS|r||D]}|VdSr|r |VdSr2 |}n#t$rYnwxYw||D]}|VdS|}|vr d ||< |}||D]}|V|=dp p7/|;D~t (?P