From 69e1668f167f126cf2ffa5da12acdcf1a5371f3a Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 7 Jan 2006 14:39:40 +0000 Subject: [PATCH] regular expression patterns --- doc/DocGF.pdf | Bin 56913 -> 56906 bytes lib/prelude/Predef.gf | 1 - lib/resource/finnish/MorphoFin.gf | 4 +- src/GF/Compile/CheckGrammar.hs | 7 + src/GF/Compile/Rename.hs | 4 + src/GF/Grammar/AppPredefined.hs | 2 - src/GF/Grammar/Compute.hs | 1 + src/GF/Grammar/Grammar.hs | 5 +- src/GF/Grammar/Macros.hs | 4 + src/GF/Grammar/PatternMatch.hs | 4 + src/GF/Grammar/Refresh.hs | 1 + src/GF/Source/AbsGF.hs | 1 + src/GF/Source/GF.cf | 1 + src/GF/Source/GrammarToSource.hs | 1 + src/GF/Source/ParGF.hs | 269 +++++++++++++++--------------- src/GF/Source/ParGF.y | 1 + src/GF/Source/PrintGF.hs | 1 + src/GF/Source/SourceToGrammar.hs | 3 +- 18 files changed, 173 insertions(+), 137 deletions(-) diff --git a/doc/DocGF.pdf b/doc/DocGF.pdf index 938dbe89ee7e7ac33d8954c1e1fa488b8482adef..27e4262db8c60614c16ad4055e759eceb330047c 100644 GIT binary patch delta 29978 zcmcb(hxybV<_&2Y_12Sbn+cSyJyze?+FdM^x8Xn%;|qTZ3K710gYh&%M&2Osb z$Naco?KpAMie{Cd1u5c^qE{Lez8&7TFZRK*fQHtt{l9)bOe!(nrMW>WTTWiDOZ@T0 z_y05Xl?6f$B-L2Ws&8P;VwQ`2IE8hZx%lG6{r$)1r|diU^e4+K9_gR;X*EVxRl>_H z9F88l>ij;<*!KShT@Pi2&Fj;Bp9fEfj*z%u8SP*B>B)JEm+uQdu3s>x&wxe#VPPW2 zn(NyHbi|r<^VAn#-gmoHYK<`~JMXG{@0V-%8Aqh88MNCavR_Q&z_Pk-=%>y|_W;=b^W_4_B(bdU0 z$Uf14VOn^2{Jr`9K~23=ClsyIopCTj>PUQF`u5AGH!pecBYgcEiAK#Ce~(;!{qpV_ zulm|W*|$$jJ@Wm}JH1Z-ZdaZB?zJxr-emAaF8;?Cd11%2&gkeL%BsSq3*ug=B>O+M zV%fvr`?_|g-TXa!cJ1&xxs_{6;TEA)d8#4Pzx@l(nksbCbH}fipJB}V*LH7r&vu%h zanRQKb5ziIu{oLU(MqPeZ@<5N{H4vXq4(sWW=p;e8JyW&CWB9Rei9UDpECDZF|98k%#+Lm}6!H7-{@{Quj4S zVE?Jh>jW0oWN#Da<$n~Azvwi}^OT+?KYu**i&%Mb=PctJxBpJK?Iob5;aor8NF+7I zF~>bQRf_Fh=!2*A7gt5Nd1~%)m%n*2BKPbcE04P~)@peMHgCu^6VP3|_DOoBCzqxF zn>N1#vp1+N_!iLY`YJc$u*dGjD<*E}GZRTF5BF-4IWg5L?CvC1(~8AM8+1O0JQw=) zb@zAC{tC_CQm1{+UA8%~W+H$7-ap1_hi~kkS!Lp(Kee_(uwTu&V`BZvBMYtApMAWV z8{{l>Kkg!*+n(jCRF(Vo$ElxpS!6uP^p45bWvk!a&xzVN>-zOsk5`{>URQ489c7Td zH|3np&F18O-+Y;(+r96Wo5ac{e=SHmX(+eu^2CpI6Veo>*Ly8*`Ti|(&6kIVd~2^> zcDxk0FMLW=^@VHS^!8ML+y5r){KfjZn3s2VYEBfhmH5YbYjN#-zco?IUECL(nX@dU zU~c8BqhCI$>{Oq$ELD7-RmR4`_qUYAq+K-GXWW0nddx|itNG5OtJ9~w;GFZ|MMbux z?q0vwDMvc8qFd*6?VcOa(6&?hHGZ0FzY2ZesCt-f{iuj{2%L1|6f zKb{h7TsviU);fv(1$Tb@X8UJz{L|!xIx>vLllSR3)xVAO&KGv%c{Yc;KCyr8kzL8> zd(xM2sQhA3RMgNo9=AwMbmgRd9;$VA^K87#=lYhJ-=4sHN-^}+jr+Imr&p_$&ty6i zQgimc{;|2c&&9S~J};Ip{`k#`+m=5Z+S}hhyXbR} zznN3&x!d#Vl@W|v4EGd-Fn*c-aQ(@PA9l?zN;A=rUcs@a<78vG#2uyz?FoMM_th?U zEZ}K>m2vKSa9+_Bsh;gK|1e%-nRhGBHP~}Q=&Wo-Q_mGan&Lk+ugKI-om3F1cg1OK z%vFKA8HWTcE*!dl_-#f(jj^BFNiBtKdA!#zSnfWv^|}9t>Dg<=bltfUlGK=3*4AF- zNWXZ5QR`aw^Vhy=m;X#)dN1F(Yw}Oe#r`|pxc#JcmYtdOVA>Q;;VG-;Y|?la*`$-< zzA&k2OZ4?ML7bDGYx!Pyy+mknZ(hA~`|NI&?|e<_w|Grf|GqW*n$-VicTSvCUQjs6 zoPXBRwbwZ6&G_>Rm2LAUuCtnPfz35;)%257I2T;;OTHtvGrlc$r@};crxs0?pHCV)=pGCy=~LmYl$DUI``-LJ~HJ}{_GjH;^)6y?bYADyjy54 zc`rtNafCwDZtrF1N~NdmU$c8^$Mo2Zt)i1}hdURLXi1w60&fLhk$ZsWY4cf0=}?n%A4t z8e@8`{bEYN{GLUcR#~n;bMAO&WR!B-Wh`aA9=K&yQOat8EmM8og$wGDUpqU2%1d^~P-FeA6jGI+@ZxH|+_T zq3~JeZc^^?RgL?4f6aea{kZVG-AZ|0Z($nX8L zZz%;ckH{Y|6x;4D#Cap2K4^XAmbB+j(wq_|3pp)Hwii6ML1te`R9Qr^hx=a(8Qy*0 zj(N7r=!Z;;E;p3_Xlb$TgICP&o9kT_rRJ4wen0oeFXrzJ0ee&PQi@B8QWJBzQu9*s zld`zX4HOI%KnzP`lgT26PW4mHdoddd9J75N{3L?kdhSV|f1!IgxSBX#?Q7T)x_w7$ z)_wW(?a?o$EzLWabW&0Ar_p`=$thuMjXc-ZzFi)=?NnIXtev^$YtQ&j?46%`Mbcx& z36cDpY0Q$FcqTS+zBusOYih5ZUU%!OnPp#@!ftGSr zVC$(OWySl3-xDq#4Ktb<^Zn>XITgdLix>m+U#~Cvc~89S^}?mGOYR8oXu0_0$ODz1 zX_piSJKXy|{d4MO!Gp?q{`=l3e{3-8Eb*A5ro(dGdC|5_(mIvkj7PiN%xvo_4 zAnEf7feBxXtuH-T87Oq^((OYwsinUe&E9vN#*70KXdD=unsUM-#&q&Oqm<1DjW%+! zx`sJLxoj@C5n-&)4H0=RI`3v;x*N-+8+~nAY13S^rb&EU>{^^Ph5vd6tFm^M%Ej1( z*4_h3yB8>&Xm8kET^=gNBFf6r)ZqQGIdmPXXyy5DT?=%^wP2~D|QgcrpQ(hI@R{w`@mTR^x+j=_q(V3mCmCJg3R;wxH?Ml1$ z=jX*)GjfvWX`Y?1*wY}wxc4U8>Q9rFUYvQ^$1VGz_pBLfbbKe(x4TYG*&^|otLLSE zU$1fc^Jme$m9toicNyxpFIvIbT5p+|_V}31TGistt5f!Co!&5Y(X~MB6&0^cy}Wf7 zmRvE(65TqbYr&+IsaLXIT@PUr_1^3E*T>P7HNfnZ-P*f2Ss*FT@LJaPBgu%{b5Q)F&B*Y(A|`fPVCDV{0qMC0{@%|a$e5)WlmlxBMRm1brf z{N;P==muf0g=>yIeUsJjc+c@mljf#s8tg4R_2J*!@^*jIZbjv+4<{StesNveaj(8z zxgzj~&R3qmqpB%-MxA^i8&eMQZJqb~0`E(qovW_a7q4B{|FGjzOnaF1`^$?uonJkB zaABj^X{U)Le@q&Fl<>5}zuZ{R68{f2>`eFT74|W`?-%yn>Wd>Bfap=U%zp z)75%9C)Q2#`JY4e#$|rYY=%YbvsmZYe72kEy6E{n2enC_-_suG^!)o>J4ZoCJW_K) zXT#&X`E8qh_g;E9`EPs82e~iLV+uD!>m%nOrd=zG}2TF8K{M*kbr_r`5m#_ZzH?7Rio0hU_ zdb#XiR*#=x#T-+6PFQ!ZuX}y{4fgvEvYbWx&b8YtyUr8z;BbCz#>WeX`QIy@PuM1- zr|??&vHS-9|5skDEVq1Pnp9ZnDk$regg_{u77{b`!w??bLJ{N1gPUPW=rQ?6;D?PfoaZTB}@6V#%s{ zn@!8Q+fMIzYoyG6n!8o4Ks@~B!bK5xGPPH)*)~(!{8|dbeBV0Olt-U`l+=}Py%P9# z8cl0uH#O~+4I$tBs=lG(s zW*MV1yIJ)%nMpy_KBgzD>%;dil4JYP|IUfqsNS^ubIhXRYF!hC`%Jr|mcEzboP7Ro zf84L9yME-<3+_+xJoDXE=I`VGSH1fsv(HQol3(`Y31{7Xj>+kdH=psa6yvP_DBZ+n z=BT98>T*=TKxa-flfm+*xi{y9<~68v+?ZcryZ8R5#zhGg1s}5hKe*7l{u|!`-UA8F z;+^H8SAHtiZ*5xbdq`%TXxY>5?nfoe>$e?s(75Rsr}QvI+4Jbj6sueMf4?3`n15yS zOWV_W52O?F7cVh*D*M{;Ts!ydm(gB|O?!FLejK&F>b`8zxdT>8K}t$Ff1VwXNyt6qB;q zzx*n8{dN)ZpT<@7?oqwwC$18Wtx{6KDNQmbHMeN&dRYH}MgC;xp>nOb)4DP9cO+aq z_wBP%-8sRx{J->`FN;0(b6KuL-cOh3r*)29Sy3C~q&jE969#)$MaknLyWa0{er#C( z@v{3f?*Frno|TJK`xByiT_i!a;BB?wih2J-UUK-nJ+QORI?3RwzJ={RsY-4 z$BE>Ozx#IG+V8lc|MJbZ2|;d?ETZshqqr-RQgADccVrVdwUVUouy}cjB@3$senh z{NPtnt-ta2{g0T*ArVvO?3a;^Y%`j^;LFmM7M0E4<<6}Nxt{6OKRx5=>&<2-E|tyqEd4g{dgF^ zS?lyw)2LRrdBKruE`$iMOpN;I^VB<%%XeGY_QK$UR!t{V>#qq^9_jBeQJP)R8sYv% zoljup5h10?3p!OFDY+OKy2&Z(t4vk@8#_sVX5&K>zAYc{}{fkk8v-tbpN=hP3c@f zRz8z#?UwgHZp>BOa!|V7sQD;E-(<6EYr^s?Bs1o2Ui;N&g?hoP*HZPux(%Mc&i_to zFOxa9)^x)(@1=iP3uOEO;tC7+lQSYB>|ihTRvmcVt zoM52t@odXSd&9TE!tXZQyzToS%Q$hhML?OYkF8MAsF(@=8hZAP@p4+81|L%SJ zCv1(<4aH>>mE&2gl*RT zYVZg#6EkYudXp*5`n%S>*6D9=@|7IB#<}H}d3wOFbdAp6FTTCK=-;^S`>$aC@W`nN z&xICo?f%KfKU+%Q;MfGKwz94iALZAToJPvFm-+XX_Pgfu9bkX3+`XUoePr+THAl}c z?a$raEjRzK`|Rs7^=7x{_)VU9_Rfx@Vfho{wGs*Tim|SA1I_F}`+$hGs!zQ=W`Q2Fw z@w3Xp0b$}dzt3aYdgSs9{S|#57QdQ%MLJ{ea?zMa5AJ@An|y4E@ZseW`BU>2zuLd~ zZF-29T;Z*ps*DM;GCI3{eVytac$MRvm2q_Wj*N1<3t1MI-?f+3%YS!J<2?NDUDazA zub*D^Lgq)sjh{=ka;?EBvAJy>k|*XpZovE;cQ*OdE&Qs zzpe9LE8*2$&~+}lBJs(Yotv3&O<1>Y-N}?+eCJCS-~E1KBFn$|AM+)W*FCx^{!LnH zuHS}>W!sO+i#F#7dc8E?wl6ebiRQ|Hc}At>C2Y=$W?R+FzHgRz$GbR7yp{X#$wPllb8S6`ekMH^_c*v@qPfUHA z;`H&+icE3et(lm6v|>bc05{-j(XJ zj|}FkKHMi*cUtN1boaLfQHu9B6s12{^+KV4M#A}tn~!~;Z<}~vPG_-t?E|~iSAQ}u zAJ>^-Se9mAxOhdru;?A1iPL?TxCPzTaL?j2?W~%9%Wv({X+e`$241nslKd*SbzYR8 zWuW$oi&xmPR88A%d8}QO7LdHs_li%J%+~suQNF#)w*~NBQOeTZ+7{*G8f+F)uQg-S zQnm@xZwE53OuV9yWs&O7yKs$W-=rYtm3CJ+x|aS5%J2LY#Lan3#CK=FcGru0kL=x3 zRoXTA$o1;;uWJux^-}N@nR?Y2}8N2UXyMHa` z_vE?jV<+D|ofvnxPWqkEpJ%t__r!jX_qP0HKJoCet<2VI4m9oQu}K%)yQ8~qh0tg7 z06S^Lz&+DD+8?MMI5X8Edy{m^pS&u5k-tYwBUI{MX+Ge*S8pKyhu0@SwKjJBhsmX3 zm+GXBy2qpl#H&f(nCNtG*VRMoO}Z8wjyu!;CgSWe@vKdc73Hp+`r`8D>d(o!Z^YKO z^hT+5th*q4#k`T#FYDFTp4NL(fuXq*C(0X7s_<~xwyk`Vs2GXQiGA_KE;xo$0zUw3IwN}JW+4x%o!{j zEF`My&sCQD(Yo&Aft#DB%0ynRI4rW^Lzr&S=F;CsuTGzMK2FdQ7AMf|v@%gsk?pXzOsk~;@6`C7O z4(#9)YusGDf?0X*w@Js|YpiK{p>3IYyFP`vURajfe(4G)UjA9DT?)8!>lEB()OUXk z(Qa1k=8qTDlLeaFt}gypS-IO`?xH|V)0h)WLQn2H zkTa`J;H=B${B3hi?OpLTTjjm@^C+K$mjZ%$S3ga?-#Kwpvd-+JFyS5v8~YVOmwaVS zW!cWvFWzNV>~o)ix4`GJMoyZ@mTM<|sLA$D`Tu6>%qcS`v6uZ!IC1iX`>j64ZM)8` zo+Nk9a~5y>0lQB>rA<~#daL}MsJ7qpSokI1Uw>Z5EM+}Ey@fgBa#CT&^UCNVj&$>N zsyw;Ii)+PRi*LWM)4hA%Essi(gWr=TPRqNHzP%`8!;`@J$7_7$^Jn)S-Sk`Y&Eij| zr$5kscJ9gSAG+%{U!Q$7{L-cA>sS8Y#&YxS?%&_7i}xRU#59w6-@!+UcfU5Tx)}A# z^Yju?Z?p5VSD9@?K02ROdhomBXX2mgoIJZ1ip`ontr2|jlQlm0tk&|p_W4uV6>bTY zi4T6AW7Ooj;IJz;$!wuY{Vr8a*S;{pNg{X3mrJK{EUQ&zuH3q)Ykrd0x#I7-hVmUu z5hf*Hv~3vpCEHz>EV~(hY_VO&fz8J~PCYDmb7oibY|S?wM-+E3__7?jJheTmZ_BK2 zhZQX})|ag>YcGAkT(=?comzP*_f0Mz^G?yUO78r0w|%&&4I%;a)ryzK`#M77m@Uv@O zflkLw%$7Q=?pDmG5eZS(WLvx~B6?x{wM@mfmpcEwmrcDi^QBd8+obsyex5Khk6eD1 zZ5hX=)2V+9cd zHm$zvzO12mcSB_J_BW2|7d*FAo@Z6rWzD)jf67Z?$5<90P6?k)?}87^*2!p^xjnmc z#iqRdJzjY?J@z|yU$ou!?#RYn!Utk@8^}gKWb{tIUHwynzvZNm?*eA!%?r!ZYEB=^ z=UD&i??@}`*)Hp~<(Abqz04z**ZU22R~qk7B)~6-~O*&$1cV-u%%~&^Obj>yOO0BAG=O4;=Q0nKylvzyC#zU{j<2 zfx(I5IjrmN2A)0WzL0m8#N5uaPRaY%-(o(~ZDVsM`i9oOz>CG_wpYFkE=)eo^vyrY zU!QYUyM+ncTG!Y09}7%G^(Q=B_+RE=+4c>4@3#I8`6L-LZGJ>iLGC-BOGh?X9J`nw zU2@}B>HG4)=oeCV7xb;}GUK|Vr^xkJ*8T@m_w@gwVt*nn-x?qF`nAIBPzWkPwAKIHJEf$(hpqjl8UV@oT{^Y!J;yIgYtxu zkQrtMicZsJ$%wvUJu^e5EdB*!sigtGe*C_BGWTTy6|-+$o)YP1Vl2!P)v6WCc(UFn zCb7sfuCmNEvuJPmmf4psH-FCfU~r;w=9ZkB?s;kRSIynDq~!*~hx8?~0wFJwJIi{w zOW5_(K2GM%P2I+uu}m zKiQkNYfdQq4k?oU+BQ>qdXB92g^=<(gO}QC>%~e^`X4Me3t3ps>V4I)|EzC($%yzwqJcmN^4QyqKZ$4-KxYZ7yGV>EH#!BGmieV_u2Vx*1w&3mg`+f zd&8v0d8s}r^~SWm<}H7G=C0c_=kjaE_^`SYk2hR%VQIAcv|Zny^}V0o1lB9n&nuo7 zTzc*IQ=98NZ}u9y0_m@(=147hUZS~^rF@xy(dpFl8II2`nNFBWBZm~*pBNl`)^Qx4bG{{&nh--DYL=i?;?% z-RZAZJMG~6)Yr;B3mrdg_+U`HW9hb2A@`G$J@?NJ%I3ZLaQX%D>1Ls~J=QOLzDKva zJxZo)um54o-P+6bw=CvAThW&-wmi7WXn(uWiKX0qCTqKl$luKb82-|ZLCuqpKbKLv+MFJ?^|lQaat?l zg>UWbzHrm3w$6;*s(InVDXGU*_wR1GP`j_Tr^+_AvUpqIHCZ3K%?oT}3!guUHN1b& zKD|0-(UJIE|22L5I)9Qk9rXO6;3Mrv{A}3Pc~36z+tz2Ye>IVm zb3fm%nQ=(HJ}0EFo9225H9tL)C$@0rQQi!j zDHB(nygVahL4!uyn>==vz9)N{RM>gWKjiqir-3=;Y1|i&dW~DkKXMG50wdk*R&Fa& z=oe=fc{uYf)7HmtH@rL6yJB~eiueVyC-)z$VpVxAD6=;)PJGhUFTBqDld_K5=*2j^ zWILE4f9Hjh=A3!U-??>~WVCk5yUh`sukkE>!R?$p*Ov#)?#>Pn=hXXUad4h#_GeEi z=1D;zUEd4(bl>&9n%Y|Lvhz#X)!z$xrj%~D<|+KOdc|%I$y0|EOt_S9uW_lZQWSA= z%X5qC*Hw6Mu~cIYNBC@sx9+NI!sgFoWjnE>%1;0JqfW8Co)OL+R-8_q@nsj(xw18` zKhsp;TqHa>`0@wqiUqpzuK!oAF`aNMl6`mL{<8hgwyxQ`K!5Jee}3J+&NU-If%MfyJ8_@^qNZ|>K5YM+-bJuVu3#rx{&X7P6&^*4C(&an3@>1~s}c|Yph z(uJ09GO7+el3jP(M!J7~=FZk1h8E>-o~F{pYsN^CudtZP&5Z&^u>Z)_Z;3l_Q7!3a+(sO2jkH z-FEdOXIk!DS;xnF>VEI4-#Tlq!@q#F+h45WWQ;bM%H&t%9Hl7IymQ^dL(@y|S$5S% z7mKuheDWqZNa#?@>A81z`F}}!H066{Id{ulj*Y)oSS@6~%`NyR{+;74k@X+zUu!+7 zugX-qF~MT~5$kV1*X8R4?E7c07qCk-I`N5n>C*?_%tHK_ZWwNvAb((y_Wz*z=lrWP z=ISk9v25x@H5bwCIe)W$ynbQ&jdR+W^76jk>5>JU-8Pwv7Vi2psdoOHlPg;eUl56V z8T>Xgf`8tF)rCBTcO{<)ZwTZ#K6T<*m9vrydK7J*rmAiEF!jYoNnMlfi!T4ns_i~) z*j=9!QBjc@F?pkge)pDyy?)D?-S|6K9oSNTbhT{C$&)J1t7mTU2~GRAHa{SqFSqLT z|L2BA`}a(fk1Txs@1Iuoj`ltBYj&k8zjfL6!g|{zx5$iw%blmhp7I$_f55uVaVqDt zNq2YtKDS$TZgcyihck{oGjLD0}!PU)k6z5032<$rsQp03@V)Bh~M{*UQysiyPV z-O14pqc_#x{q}45cdx#N=2q>`t-2d{w;jG_u|L6m`WFqwgPp(U$lDxm;d}4y-lKG7 zTl^V+mqMLY(?zB>UzA|(G>Yk$QgIECljSw+l*v25Tav`%;y&GZBG1J9NiH3RQVaLI z;QwAaEkt?Id$XBq^S3O#${!}ET`F@|sqc+P*`(z>;eV#~)PG2lie7#s`=tGb%NeE< zIC{Q_z3X11;-B~ae@^-3bsEagR|d8@*$4;B4T%d3-1Pf0ukN?W1^aa)jwGJke`Kfq zY{uB-t;Pl)=f~?SRKNT0aHjp^`WrEhuD(2Bo*x`8h^#s_lf#qYn@a7yfJxOGHz-)I zo|~cGyho+$M`eTx|BSBscJ>6xJ;&cLT~~I0P#{;{)MngfY`NT6t1D0b*BW=fkH_>j z{dJkKZBNV9ms>jJ+t(EqPt%;5(!NSBN#xFs#uwfb+4sa1uUw*_t^U5hLTPH?#nxr= z2R{kwt493$s`m5$lD|{JF1-&~aCPOEM%Q^q<`^h%Jn=I2W<9^slk~(w2FLop56#{8 zom$&CB}&g#bU*hYMKkqPdGn{XxpFQs9B>g$z)=kaD_8aDltS-+jeD-PbY~@uQm3w#Vr7XKV zBk{dW{70e4za_7)s~t_8FQ#`)Wd8S$b!qim*rTPdOVyaHFk5CSan0ZxxB2@c zv0buw89TkSQ2J~2p&ibarAw!sNUE$U==$Dud7iz%T*;1mZjDRMO_01C?{j;D?zO9P zKbQ1=YN&7Jk^A&G;>zzsjnj%nW#s+{O7rUplo)Q4>^p2|!Mk?ZvssU;xurYbXWs~X z6(ulZqg2ccOY394^>Yp5Iv-4x$hA0n%{8p8#l@|yCB*I8)zGkOdnFs3s*inO{{P-_ z$KLPzDCTXj}F z@A>@lhYt0uWEYe9^B`)=hWGhC?RBg6&$-EGF7c*){lodgYa*Cb`Gy(<|0lO*=j>f4EY1lFwf;{v%=ECNH;?Wp~a@KG^u` zM%Moj-i)g;N1rdBeV(!S{{!}7`#VE!0zvJPY^E4tl zQP_a}+==CC+1FZkpKRLxKEORAcvkvtrPHgPV3zl2wqGa;n-{0rv;oJ9TKicJNW;WyBLzf$+em(n+ zXX@0yT>5KAkPS;D`=ZhYHKwR7;<`@F7bYB%D_Y5ODmHj}^2?|^?srprjvi4tbN)E< zxrEi9D=xeZtvryDDzT}RqkeA6+VJ}`FFgGnFYx%sfiGF1SCx}^4ZPf{#3p=Qyt?Q&z`Uub-laLMZXdVAQm>^U&C6`UzEzxww2|Gw|A2L01*crk+R3~AHXAul zom&2$TjlQ*>&7Zk1;d*Ax(8QWPu_B?CnqoR@Z`5*BE{hocJ!WTb^ZIy?&y`W?-lj- ze7VbdPqmpmT6l4R_IK{hS7v4|*}Up<>P5}li^3bkccfU)4&s$E5`9^pw(_G$CnwWq4uys;hb3w3kv`2fo zN_qb_xqp{m-%|T;>z94ECgf#|$L84JGzkM?gUyn`|M$kV)%=(LzWd0dJxLQq|Gr2& z{rq@Vazl5xJNM3zmE9{m6*)~=CrSETX6`i6Gk82JNMw@!!FjA(mcD;l7jysK=H9=* zXB7YbzCY)UeZ!)E+?>be9G@JJAB(hM!e`pgiKaIxd7HC||m z7J6%HUA`*QD|nQ3(W1V`OfHL=l(?jt-tamt*nKcBN1V?j!}P?jba)X8aWmn z6E)dklqacre1&3`kZW>Jdf)mFg=)dQ7W322t^5`6{>t9>|K9)I`(K%}+PX>QDMTMJi=0q1+s4#a&U(knext~xfv1C0|DB4cT-Bt|(O;&Kv}Y>grz=yleCuz` zTEQCkZu7G$As3B}eIHbp2{ay&NmAX|_@jkG&8frph|i(fGaM|0l{wXucntdzToYM* zr%cvcGOZ?8Jn6c(?sBO&$8Y6tvw!^HWx|x6i82%ZIO;FDez{!YzWvFm7qyn#zkQ?c z`pCmOw12|M$(7$V4)WTjz0RL=%9#1^WiDr{`Wn_Og9B{Bix=!So3bL2Jw@`1<*xq1 zM&o4{7Vb?A;HVUSJ?o&-)0ZO78XAszY%DjKb}fjApVe}Q?adtJn1d50?=_B8&C)<3q=ld~>f+b8V(=ofRNc#KYpzj@coWi4Md+FR2vEU;UX z!K>}lAX%>vKV$D)!+jGIru(q7)^4uw*Jxi`QlYkHqSgzmV09A){<#6^0;X%uHcXb` zTJXR0^`on+Q)e?Tv3UId&rjARO&cc`{+gUK`|85gj(-lHlM<>5_@T`8H+sSb$wGm> zYm1g|y%uxq{*O0bl5BFmiP(tMe>uc!sqozGNkq^l_M*)_JL@HP&N*goVJR`A;i&8h zS>1QGW#3-3-rcy>tn_V>N#G0 zH(*}7h3U{8cJ~X4eG3?^?)4v#_4_y{z*{`Md7%pPMhlT%@%x+>CG}PFHgb3!m@+>- zsU_NkfB7%AMsC5zU?+|xHyU0y8?c&hnDy^HPiWc`V-3sSTB<$HyKhPf&xmKYKd!v- z$>o(5CT0JU*%n>snB1{K@5=M{XU$%GWz(xa`ntGO#31mp)CI0{KF?>~OnUNh$tuQs zPKsq`y*C(c`d##1VCnUH_m*FX548Hd>FxCQ-M$HDrl&oBbBkNcEpT>Z;>Ic0%vVV% ziEBK|`0mx)G3kNl|K?k4msvAfs&+7MO;X-=`Cc2d?wsKN789p#estO8o2`R%w#LJ> z|Mzb+R<+icCd2gdJmNpp?i8a^%%+@F-nWq}O5*i8XURK;HJTK>JG zS*~Aa%?qDg!L`x+?bBTuHlNV1=sh$iE_>~oEppxMcVlvYzg%UOuy3cz_XkNCdsNG3 zitD6K`!lQRsl57azu8NFCi;Fn-njCe*6+sMD{eZl=brYP?(Dv^CLm-9t=Jo(ZgH07^Kbocj5 z6)F;5#r0=;+$OagmdR52y~=CdG&v2uJ?yCm7OWKtf3vP@Zksq0-<%nohR1I$+!|6f zjqORA>zS3(+pa8TQz|SljrupKCTZb?WisEgqO#XGt@aF@Y1;dgy^D)$>F;k(9pwzv zJg%?zjTGP5ditcPltTMO@fX})RqvE;T~q&f&*inXr^8Z_`b~?z=BVrOE^GJN{>5La zWOmZU1oK7pn?88_SJ#2=bw`|U^MR96I~NM{qC(YIl03(Ki7nx zw!NHx;phX8n(2SJu7zX@&a9NIdSGVLvRibzR{or9E4^I>({I`AH{qCeK7qP`DIUapUdz1*5?|5IrHVC4rQtAwBBs~s_gAauBMcWZGTn2ZVg{|J@RO` zXW2)aJxKz#->W~0C4~9T-~W^4&FXd9_IDPTYH#LAI5Txtep%gRUZ3}s_bs`d!dccn zEwJz_zM(c@OK?=_|4msj;eAtnt6IEbILrTDPEj`ReQKdhnr30in{@>;p6mku8B0$! z22OS@@@Eb9a0_)>JhOr+h)FIVqA!o$OyT(Z()s%BJTgz26+ zlQ_48$ZeaVw1VSd=#nk*+DEqqXs~Ll}}`^0^hrplHXDo;CiKPqWm>RM^J^XR3H9ZN4gH8eDO zS+#bThX2%1h0qky=c~3x9zEo!?0aqHrz=O7UcB^Gs@LS@)gyM9ld9(L%Ghu9+y8>a z+-)0{M8v9uzSwltm6gS@B}X&h`H5ol=}YQU1YJZn_D&G~=wdO^!9^hR2>TH>rH~(1 zj>7W=CO`4Is1w-vV&)BvI-x02UmklKy?VIEQr~sseqSbg*;AA6$BDDE1ukAP#mFV( z!S+HOgNsv6rC1+jwOh=-=G^Wz)0a-*o^lk4x1zVYGyIIbPOlC5m~TA8lWcU5Xy zvshpJToH8X0z+7V(fOeI16Ou$`u-ti&x6b-#Udu3_I!Sk7-4XAmhV)zZ7IcG_xMh< zoLP5B@T^2kYjMxg&>|7tpU<8M+-ca{DJFA-L*lwksKsX9TB}bhcwee{NEFF9zYKS8 zKjP8zNcHX0+V-}FnY#=>Hkk8dR_}Z_FLCnQQpx(M)dB01x2hM-scwwi9Jx_zrT+2A zvzf)LU9TP9hs?jVf3efbrnx?ME}OV0UOb;%enClw@paeKgq6vr+y36Yz|Z$#TlLK2 zPbY~sboB8pw5{QoVNu|ap=}}eUyF14@8i|CYvRny_ng&ybNG(Ch|BU5mk+T%a@j2= zaA0wvTiW1AD9UMI6YEx!45#Z;@*t-KpOoECay1aEoJ+SC54-EzXaFZ=%pF7`UHKIJS& zpv9N`<}-it*#z%)&enMxXel3YYI1@3hL^i4X1TnaWbB?JtmFUQxPGaV;){f}uDOX{ zY`=WJwn|2?@tD${1#X*J*8i2-%CYs=Gk=XA|ANkJ-F(f zt3G-<%6M0(@_~|H(aUz6Uh4Vfnv-*@kY3-0%-Bh`Q@eVm%)Pn%{I?x{;^(Be`}dg7 z*dxhjd2e#vtgKs&WliKC@uxaBd6gz^zH@Ga!G7%=Gsi!SA?^EIChw~VU=4P4 zbadP-T*=Q^Uq8FbWVV>jmZIkk;-Z01e3d*6-Qph{;^$FOX|vAGjxRIYpKUGsyl7wE zoSl{17A{jin_;$AWlx95uLIJ&Dj%Y}zSvFpe@!swQmQz=&3XQL-)jXH1_^K|mR>HM z>sS7K&%J~lv86931k4Q9D2|%AGT_#e5A)3W*bo0u)OYzl)oF z@9Mq7QSuQsUn2in?pn2M*{o}p64!2}m0V(5eEg6_&%BromwnfnX+M6s)8qA+u_$|AeyLI=RP?m!$cV(}iw%~h4heA{bSJSDP zd+y{cYWUI7waQhR4;Ed2e0kIBvy1%{w53ydf0u|jT`bTLTXd=VwQ;7x z{PUlAzuk*Yo4M>4kJ#f{2?qWWwKSGYuDFStWiKA*`!;dy*Wl}yejRdCS<^dP+^2rE z!@qxBrpAkHcs?CW|EKVE!oHW=7&BkZ_VyO^j9GMr{nVkWL6<|+Yr`~+!;~?DM z!=W%qN&Ycg^MmhM-={xS5r4touwJI-VuQqqCk~N^cl4x|IV5BgPHlj^kTy}p7sQl zg`x5bF3#2UJG4z?osZ&;kVmO^R!Yup__&0>O7myYzc1IO=UY20`*i$x(S_N~(`tUU z)O_lxaSY43_HON3-L8j<6ZzQ^8;19KpjIj{b)Klx&fAX7Q&E&N;vW$k4PuCc-xkNZch5Kw~s#RgCkJ(#% z^_{Hra|^58yYzk>_|dCt?t8%3{NX?U8GTb@qW`;XUiLEV?&J$6J5LnbL>V*+aIs{Y z*S*rXsXm?U7rV=ieUE>vd)t(H`d`*-fk)cBcV3HTy?!Gq_(1xR=t2D>+w>;wZQLjL zsd5`%(#E%8k2?!)uif`>-zAOs`HJiNCQYcVpD4I5C_25ff4#{Rg^us$r<}hZ^Qigu z^H=V~U+wHJEW2EGxv{!;?{(T^f7iIY?e>|aN z+NOm$?DNh#!FW;cRLi7*@Z)>TpKacleQeome-ryW!^?-xE;{k(bYXt)XNmHHJG|b- z-tMQxAJ08*KgXch=|zjYn%=yMoJqpVH$N#!crb+BKx7h=|_f3oVXMpMXgBqxv6ScR zm-PS7z3oS#*sPWt+vaQEoPLl)YuCkxd5YV4zg~{&)neCLxy@sO;SWQ}DRX3w?CMMr zxVcS!i_|i?)b0~b79<{po!u$Hi zZ+|Dwa1(z1mw9&5<;wRDI&Zu>8I#iFGtb6#vc#KK@ymSYw#(PozrEEvJN$aR!TFo_ z8f8r$W;w)5O_-S|l&{|Jzmw^2UDr4Er;5wk*Q{uMw#*=4)4LeCn{%Q>ez=Q>O$wXa z>v*qTbl&9+3Fl&RTGef;-f!o2my-Ib!(|q$TT~dotLW=9>An8z<9F9>y?pfQj0_#q z1wY-UJ1a=r-g7NmF==1T%Qw%r>#dD4Nk99`RG!Vo=H!FzzWmj)zFCZ1oOM-AYcBj~ zwLkykN~|7V%G$cDGdiFD9!_QZ@_(JmiG@DC`g_~77$`!~rXO~E6Mo43E|&N`naZzJX1{BggYJQG=6ud1LL<(vQcl|}W(8yk(E_r1Bf z@9N=X_T35%=T6!PT;#mMZ);vXdy-W0mo?j#gvG8pbvt}=5KBm^uV-@an#$-y@76e& zn{BgLaEo`v_wd{LAJ_0`P2U(c!=uBuzKdrj7h~$BLlx}h5$v2-9zCCZA;sip<@M&W zpDX9``o!#;p2rxFeIli!`AH7z5~rF-r^sn+n;hrHF4J2y!SdgndAappB0>|ryW7^T z)@YGiP&H9f=i7$wbI$Ht@=(RD|0CPR#ICExB~qdn1Yf<7$;?|(70W5J5C5uP_8G4XF7B&0`4g<{FnRYyr+pzy-RyK^ zkG3zpKVf}J&do)FTsB7}pUlz!Tb*~;_Et3Ot%e0_R!FFwuFOti3DAD%b64AT?`?BV z-e=LpF#Gk1JodTtN^*MUs{SjUDibFPb?ODJzy9)z zTcVdi0jo{d^?;+M_v^FW9?xCTcy0N;?l#veeCKtwRd!$Ht(IKh_C+}|G;(TW=)uDt z39lVBN-9%zThA;MaDEdi$Mx#j;d`t9xj*ubeDD1Gll_`SYv$byt(^MfT|3|G%X8K9 z7i@g`zWeixIVT>4oGma_c)hU5qnpz+ZO`|7?ZW4$9W(YPojk5S=UwaOSM_V=E1fc0 zF@4hAud7^7U3jm%MJs|k)S)*l=gZk_5$g%>`?%jcY7TeE=5EgV7sI?`!ko*p_lkcM zOx!oO(lqPC+JnoaBR^Nnd$gQ4W$)aYtDCFZa(H~CU!|>f+jTQC#dyITMJYkn_K8L} z64y-qV*J7^fA;O~@yGad4s74ZaM$ee{`$I08A=m5?DaUG9GBX#vQ0`OPj+Hjar1)j zO#-ryG&_$ePrUgr@RUjZl@%_JR4dj=R@sT1`z82)F7v6oi>Kt?J0V+kUv>Y!qpuIw z82^8fXq@q;qw-@yPt=nOy)DNKgj?p!HuTZ$53o29siXAt;hvjPE7Gh_#{Sq6DK;}s zzFg^F{f0lEdmb@(JYiK-G*V90PrI~urA`sMRqi#6^P{8$RDIGx0v#_bOgoU!nN%{K9zx1)E=- zS(Y(@S=2^_C+bJf(b#&W|0@z7R#~(Ji~QJ}G55r(&EE@-Kb*B`##f%Ot`z;NZ@~z0rg%%2EUV< zJ?2cmaZF)(;EZ!`>o0e_3d*f-Y16;D)5&CKz1`ffDKV0qAzPH(=B@ENCbuV9>q_c5AB^wmUrjzujKzWwd-h|Z=x>yt68&WF1$bS@@m^TFXx*- zJiTnawMCQI^LzI5&aDq%6bT6JI`!g&h--{i^ZUIKvxR1}PRLQ#@4xus(`oO|ZRcXm z3N+hJ&+;rNb$-u$`0qX5aCY{M!Yd~JQ+l_;`c2E+chzR~Dgm+anm6v){#f8%dcbH`ZLVuu!;)&BL|*B1tV;kXB>!|o3l9#;O@DVp?Z z*UM{*-p)UmX;JwpAiQ4CG$_6K<)uHjOL8R*mOkG0^OVTRm6E4KI%IVm?_MrG@uho$ zSp0tj&jm}278Dx@$7ZC7pL*exU&i^s>3Zw^AN>=G-^}+|-My(;vEE?jL(NS;OxUjP zkC;4f#!NO%vrSz$Ufuem_3vPp+#j#|pLXxbo_=49z5Sc+a=)$d`;O{F`PLslE!8Kx zI!{A$<-O+*6>p25f0TPi_E+EeR{!$fbxHppI!>QFmtF6!+^v=NWjj`_+_FXM$Zcn} zPWd$lKSym@>VF|!V3GXJkYC#S%ib$gM*OhzbqTIp$F)h)RAuQYBbo3W8&76-X4W)( z@=A?-n}7F@bHDvQpWE{5B%kcRY$kOoxc;2ih%`QCn0N-Wdzo)uu-goX}jsJga^|k#!!e)6n zyB|Gze7UstE$N3mSM~n#SwEKCJvXK)TQn-ycj-QrwHmtpD=(Knk!N`|z4_py4JRrh zmAcb)>)Ts5O#jrl!`auhGPmdId)ErlzgArQtc_(KMC$tVE;pRHE5|zL*1hC#UA;FhkkN1ZYH*u>bHy!ou6^em995sYUN=?pPwC}qkNduycSYy_I8|&jGdi14jb~F6zt~+;_2_tW{m9(T^py21N{ZSV2dr{?}vKPPWl z_eR*-`uo~>$6V|#6$SsSm=^c&bhq-0Nq;WYtXOvC!j9<&g=IFs4vlwM?5ntijny$A zXvHZ_>z;#0o}W78<5ABz`-R0$r?5Fuvkoa86!XdH^zZa;&6r)nVS8i&r@8UrO>-2k zsBtz$MK9dC!SHqWnW|#~FP86ocU53EFRMeQ*XmQ+kGYLQ*K8?@&5n>vof&XuVbYr* zkEF_dCk(dTo+Fv9H9exoFe0KPx<|R=KYPo)!yiCr;=qqBn#|rO$Y?rQvd@s!Bh)d> zWwU=@IAeW@$kSW%Q%@Q=Xe{F1{p#+)CXiMYZ$irD&6zA5h9(cS6gpU~eV0ZGY+Uet?j7^{JMZu2jCi-a?)kjWwd(2rPRyHG zey?&~e07|pX$gnwI@e1pKFnQZ_iF)@uMy3E^Tb@ z=e&?!)63D%d2Ld?iSXZKXXV3NGyQ#HmR$6Sd0nSe_~_P$BOh9xeAsYsyIx;!r}w2c zb)PT2yxjgbJOi(M3GKdAR^Rrk>Ui7QI2rMMX`X+|_KORb?b%{tm^9Pul6~e~F5iMI zpA(lir`cOR*X)|*XzP=^=vsjH3iTE48uqVTv(&z7d==U{<8YJ zn-Yzl3(Qx{{j_7@nF|*d{*`n6lCvxQ#*@SYJjtip{H6A#A2}tM-<$K{&ZElWkh?E> zlim6~B|l%iF{}F7-QtQnUkcl*)$jj~=bG6hZ=YE6>c?&2954RV*ZWiUG1e{qZFAtN zdhtnzU25+?I~?s|iE3V{VI!o^n8qkOo2%Z`Y{RWnH(v+MzMHE1mn~%Nmb+V@su z@5;M;8|tT-ZMa(fiZ9f}kmH4$P3RLB+k#aZ@*V;FdCLxelPft`_d;}6<;DwPYF0CN zstiB4E-PdE?eVkg@sBy|ev91yXP=lcIk|8{@Ggg}f=Ip03#P7j_dT2C9Jbqg<-<)0 z>PHTXWlziK3KZKCy=XJ<%{1F?`9sr0SGb*c%&p*m^%8GrebzLs zZ~Q!U^znVsr>jq%TXuWT0o9drj84AJwe)houc4Ly(7ouaRR8tUX9|DGMkMzo?lcKr zazHwH>jt?qQmMNuuH0g%=l!5{UvGl`jTNm`(T>yC&eDCM`J(X4joV!Oa#j~E-3YzN zc4pqIDQ9Qatox^GCX{d1n%@grq9OaE55*N84mZw?9jLvR*jpXGQSg zOX^HwN7ESHYBKSo^Z|{e{2o7gjj6U(7P&sOj^R-I|ko#rr_cr?(CwRS#-S9+urKv|BV& z_OE{B!qw0C{QkdGci;Y7P5aE&CJA<)x@rHIf1G{$T&J^bf#(9LmcaIk6Svs>EY9w3 zshMt6s41hnL9C0f=~Wp2M7R3i`ZINpuhOn(3l)4KeoOYn@_iS*CeFL||De8xS+-T~ z`$KX8ZyUEKnwPVOocyxtP0e!OGwRu~lcV0OtvveN@u>>W#{=9iTsAo5an)`9-!f^- z=dTR*P5-vf$>{f1+gs$_x9qF!dV}m!3naBzrcPe{K#`N}oBxf)TU3fH4WEVR2?gD$ zohrBBVoJTr@1NJUvL1gXvgv+!?N_~+WIfyeW^!wfz5KCek#ywSvx^=ZteBu)yZO;h z+0WA|9zN8W*R)=%F11j9)pv(|U-+kPc22K4f5iFbMWN}@`jwWc1&m+ol%{h9G%}qO zuj|tMV<6`%wY2KV7T{_fI@j{4Ue)h`a++~buHrJwd_ zVHEQ+rLYaNw!Sub-6-i&ur7GkLzmmTQw!qs=DvzvdEjx0O$t}jf=3nJOa(pCXP6{* znv}8kT?=)Q`@kkD*FUv_rH-fn&!3~~_2sJfE@-&=Q^9qj=qcC0keh2Nza}LADSFcz zrm^8|Qn;Dsju3%MlTB~eo4>!q;d7(Q$|dyX#N!J$=UiXyp8cJ%c;mI(M;OmP-^6TW z!mw4fQD z?4LVoeYjy$(lJZthp9O`ip1dagel%-3Vm}{aTgNQ% zq;k%dxIBRqf7h%icCd>$$XL0}`t6ZMy)Qe0XNBoco}_;=&}iQ3h^3n?yQMCk*<-cM zVr_2y>&Q(fDwen?bHu%5mG_(bUVg^p(_-@v_Va3l?^G?Eu$cST;@*Wf9~iH&T))e7 zxnSQ1S*BneQ>}0N3m45YdHdv_>E;iIFB{k%w=X)cee;celyGqK9(IT50yn+A4MrlR zDf72!%@)>DnD3}8R-$)|KY_o<_kgqh+5eoqmc1{$7S&&`V$Q!f^Q!*&m|-rRZO~v z7hlkL)9U=uswnd#cLs}G_p=2GTNrblGGEn|{#QBrQ$S@v43iw@B}wi$PDC%ND7tFE+f< zeRSVxk>;QScb4SWZRR`gv;DzSZuunVYr1?jJTo%)7k;(=_uV`A;i8yT)55ebb%t{? z?L06;c#Ff#5~C$kHH^b1Wc3}Hyy5xNrSY|OZ+dL|OkGjCa$);wWC!5ndSUm>%wM}UGjI!nR$0^dBIfIaCH0s z6D@VK8_&$*yX~$rQQ&)pyw(2`w(C6RmhUc`xv#(|FHuZF!K( zO>NC8`3(FoRZqNmFYCO$gUn+&sg<*vH}-@$oKP$mTcpzeZ}PiYmM_h{drs!vy|Q`p z@7e#|SNxvv#yhQW_h#!A3%0L2F;T2`;fg)I?yoO%G}W_g=CbhS`mlfEPlcFduI)3# z8@(3%U(0_@Y2%HkBTFu=F8(w(b?pn+YSZYSxAv{y&)_C8E%A(RvxwTVdl6Cb;dd`d zg-bu%tXWXIXx0n~zLl=o{q=8|~)0Q@x8RMQ7npqm? zJaMIN&hc$uW_WB}SFf=tQTO5DH_y}BrymbpvYE}fLSs$yiK5)fbDOSAn6B6n`ST^) zlS*dao84^!hgK)7x;6iv=CbR~!Z(giYiqmqL$BD@VEek59e0+j_g|k{{q38RW~Qs9 zUSNh(`P_mV_A6c|&3*fJ>e&NVzNYV!Sv*bhN+iYjNAQXsRn; z_uUMEGc(0X&uz<1lvWU#H0P!K!sYk&_C8~rb^OoFxVLwMXT&c(ws}t1Q{UI;n56jI zyDuE!zj%RJKE|T7wc=U->W`-^IW1)T>*pUzo9B1K-{rwm-P=r?j=o`%?cUQRYP~t> zOUp^?;8VB0Zz+9OyEenS;p|$iM<+M3tYVK@ah>;SX3>?dbDDOG&u@9M#{cmpPL6kn z3@>Y|)~Oj3zs!5GgWJ7LWz(;<{He~b)@Qu=t8KFDW$8KDbKee!zIenjd+|$FOTOiE z4Hh2Kt=D8S}T z{7t*pPfu{=mRj9jk!vV>;rk2!X9u#>j1o^e&;FxzQDbt{3WjRF7Y+}0nCR|{Kl!>d zD@r1H-qHhlT~|$C)l^5Wyn9dJ=F;2FJ|8!(n;-x7)C&LA^(p1sj@)MMYU29a{m?-9 zP-;p3)yfa2o^5Une$CAqy>Ui-=I^&G56=0&Q*_w0_`1lpSeJQPY)n5cH?CeBbfu|6 zruMh^#w@@3r};n1)bC$EY`E|0+VlT!c5L`{Ui_r8Ra$v+*&A(@!wYn#n`9as`>{~L zwXXec9UEI|KDWHmn}&$`4&h`)$ufscQzd40*X_SF<4AGlp1!R|B)1h=z4g|2(P2wt zlPhJ?J|>;yKJ8e{_0bB=>9@%OVzRzx^8{B zHRHyMBeK@nm!xCPp4B_#xhKp}V?p_s&-D>6Nuku*my!nPca!89ujnHd)RMc7L>h@k+7QoAb#-KhjU*}7S3;9`>4V)?S-*zT+s*oO3!Y2H#(vaq8GnZ58aj zKlo3!(MnVInI-3&v_f7Qb% z*7wx2;wo3gJkI_Y27iO|ch6WSq+D+<`Rff=aZjZ1 zK3hXWC0nK$xfgwZyEp^~rd^y{V^crD&2#C0J$IKb(X`7wE32GqVmxjXA4({ly{0!w zxa1JyK9>#KHF}jeCzb{T20bi@`R^4e8!HC*LubIRW-6sgBQ zvFj;t-?ndQ{^{RR_4(S|OibI4t=0{nCX(B#u8T0ivA6DBQIvL>>2~=XD<+@sFL$(GJ}cZjee>n-5as3SadHwx9`A5GiUOjo()cyateU-aDDO((@`S2VKTcI?Fm;k+(pi&-~2G^+B^tYrgR$m@r$u;d;Ybe>HB$r`0o#T;MLQ zKbiD|b^e0+b-(VZ?*3qWt1MPeRUzN#@P}g}^VgJgA61&c%D1g>p-Q9fLeIpP^7r1~ zt9^6er11yV<|muu=QhgE=|8@fU(EgCS*y90(wjmq8B{H(za+10S+zy1_s74Gy>C|Eeqm>H@#})uU0IW!zb<>{ zrPa}zk#}xeYs0Ar=RsQ+%@0W4$sw){^ z-Z|SJFnspq)Z@t?ZM)}v^49gtxgC8qY`?w8rmO7z^UtqlShigGqJ7|Y8e_E~H zbk3PtTe`Pp6wiCyd+Z6%Wcdk=C)eCeuD%=lE3aZ|#Ig5mEBAE0z9#g|`a6T|%xm6< zMfd$ZY-?a2A!za>ddsO!wVEiOdw-d|)P8tR^wX>_dv5aS>buViR$o8O)vI)Va>nX( z^CdZEZ3oLZ&hf80xAF6lpS%a8f2`^K@!{?d?@6wOjTxmPE39|*o5(RgYta63RD@Y> z+uiow`F#zTNr!ZOy_2_Oy6cci+-J<6o*DPR^;#x;g!Y-4X|$S%2Qn>JBzz zS?Zdf?yhe6d!ADHqhnrMHqSVwsCqa?`CNZUzl7EHTg5vzU${JZ(LZT}-=Fy>`z;Az z4GxKj^4+|6i5+9T%cNshz5UZ;o|)*)Ha=I`d2Z1;134M*Bc0r=e)>-OTT-{YKKC+H z({^cmCik3q-)>x(7QI}J!z-qy&`wgQRBxC0_f0Os&xQB>^|wr^I;A@6$G89ge(t;f z_BTg~Lo-KH#@l@tiZ{OQO+OQR_x*f}xc>{ExO4tA?ESOjTIv5o*W&B9CLO+Xt-?A@ z{?Ix0!hGp0m5%M_Y7?Y;XWpH+;CkZb-@g7c`)B#hv8z2*a?G<@mRW52%F~awU-s*c z*KPB?`;L+QEx(-cTuC{zx$FIZ_&m>)f4kR*|J|oqcm2+{KuFa#LN3bJT8UtmzVhQxsTb@lLt)d zHT#@@oG7+^=DGON%I0)MlSgS1{m*6mk0qV-NRcY?d{y=6U8;qXmU!t0J&S!?fSim!IeahN+_i$k)pM%d;>Y~`^AL>0RQ@y#kGT_Kr?GM~B%F+MTzDVc( z&bzktN6Ohn(-)YSu`wR2_^&F<+*l;(HL1{lcl}-^Ypvh6-oJQg9Z{LT_WfkPM2-_4 zEIVRz_aD2i$GOdfeR6`j=+s-Bw!sq*S=;y2oYXwa_kzKE<(#XHl5Vy45-z;2p4_iq zDW~S4$G-FI{ro%gjFPVYoF5RgPtEh{tM8IUX=+n%n_in%^LpzPXH> z6rOf(uIZb(aLVEBAB4BJ_|!>twJA+b4-I@gCot1q?cwv_)+bHkJcY;@Jbxsd7YhJ7=dhu36eqO@_MU__WS6=C^%6awsk89|g9VzWx9Td@| zb-*cT)pGgYy|?}4tGE8}TN^(Atg~3q5(!a@Y5hfe0$<*E*Wa$l=gF+1IFC2^bJ_ia zITo@vt#^u~Jg)S5IpMeTKmMIP>)$yZ@|&MD?Kj`C&z&;NDSu7M1vJ+b{b_F(UX-M$ z+##9#`bEv#tv}tC>aLE?7v1-}VdKvOD~r4@|2nR#%kh`FDgRE}W3>$9!pTcl>pT1QU0b4R=yUJ3 z^yW#E7B`z@?#g|6t8^y2P)KK%{qoe>)QRHxL3h27-eGx@Sqf0I(?^P%ph%PyPib?HmuvK9^Ry{slwf9->H~2$NSkL!RCq1@?X|yYgta3&tIwL$~e=% zytBdyk|ESu!%J|LYwI=$GMqebzVWb8lapaeTzw5B@8Z;#7BMY|E)HJGEM^ z@*ndjp`K$r2jd#OFF4PeyWE~7a?h>07gsc^W8KStygYF~qdD~Emi&4ZqfKv~*A~w= zb2YYUn7l=I+NEs?yQ?I<=51?V&<39h` zT)*qkr8&)NwSAt6H>OUQ$s_IX-}j+I;QD`ZiEnH^Zss_`EPI8EZJOTwO?S6U`7^8S zcv+vX*z+TzV&53&CcXFLJl6G(>0HsINQq^WWG4$ZTB-Kv$Kw}L-wSV-E%f_>|Awvg0rm5+3+(e^M&|s-`QWp`A#g$zKLyPchb7zrLD({PH}m4 z_q{&Aa4c!>$_mz-R#OdbJaAebT^rvdYv}7<}a(Z zHB@rl>h+>tr?p@Goc}_AefRMl9x{>o6Q=&3xAbCm^3?y+!uE0Q``dryT#ZXQ=T+Yw zSC(=Jh3tM}!&TkV7#c6U-{4UuN66fhSy`ERIoTJk%deVtd$pev^M~zLCZ|PzTkhI4 z?Tzvz*AwzP{vJO)S6rt{qN7Uf{j_@1u%@jW88(SZdoK{nu}NId#m%(&QTgh(@&80; zUQ<7w!R#4zOsQ_G=eNCoJl*6j<{AmybzZXhd&?2|Y4UX2qUZonxKXF0D?FkF)-uA^(r>Z{e|~ z}c8Y_DO4&VKjqn#l}pJ8JJsWM&1| zP@5+noX^Y(xi`l2=p1Hl@B#PXAOj$#zCTgR%mq0vSlih*2yAHQnFeO)Zg##4Q<)(< z$TqLIe1bX1%v8Yu1QhZVxInalsi}dfIhvTEiLr?hhM1|LF}j$Mg@xJVL)We94bhD? zvNWGjn4zG%-_SBTPFC3@r@7>go;P{xP&PH!%PUBE(FM zj4aW`49zVKA(|2D49(3j{B3GzY=-V=LsK(z6tQ{(0|P@-6C)Hs0|Nt70~2F(-EAxFG;u}roOkaQ-{6pYKv{f^%!EJ1rdGdxpZqcTgmldG?F-f_)+@j7Iq&BF zeh~+=mQjrDFN4`Hk9L>3N-=iUsG7!hC|unjps;zhOJDzd*M;VfANf04$|iEy9a?-S zq9AU!(*_Hkbvx$woZFo@-PFR2m6dnZt@q1U_z7F2t~hkz5KH|W-*wORwG@^*eJz=0 z#MoGLCh;!I(&P=NS{J!6pJSW#f2u=$k(@khfZdIS8(t>7wK8KnFEOod?~KE#+{b?0 zEnqjFvnKbtE6bYL%=Rlvj6Bjy`BV1_sZL(hS~TNT)x%n@7t^I@`0A;BKj|X8^;{A! zx8(;%lavFWemy&V{IsXn#==QKXG)KP`>8e6^vg`so8!r zSr>HR_XeK5`rD^Z4mS_quDRE*(JaS2XsUToY3}>;!K~Br_ zb!}bN`Fo|hnd$5~uWn9Tux#t!ef5*>8L$;h)UlbN5Kv#ucytcykBe3+Thgpt!t58V z7p(5LxcAKFX_lIxJBN?qv;U&&qU#Gdu3PZOE%#WsIs2E{I$z0uCNm!dake_Xt+!bh zm(sbq?%Gr*jrX&3e4W`;&WP$xEbH|kB%F6av;X98Q zd+qWykLh{ya?P&P`npq>W_>lAy1`*u(>3XiX)gmc0{(5`S~>q#TiWf}8^qTe!OrWezy(xiEJ?x^dk{CqpL{_f$2;lwEB0DmYi%>0 zTbbXJb@zF6cJZqE^3)WwLJ^iF@ zq-4~$mBH+}W^#9Rj-(yF6~dsScbX}2VW8Qx$BWkN5rO8eDYK5y*PmA|R2-*r{=U{Rbw!cOb%{qyFiEoat! z+|Kvg*`O>qdFIP=3loY?r#DjrS`Z{_&G-!aucBlk;_C7%e9E=s4A%jqvT4Hs^VJbNatl%e;me zf|{L^ws|zF&1T_d$({9MM)$_DAog!{N4dW|ZXt3V9rfZ^cHL}!2#dPU8fenGbKJ0wmw{)Ya(xx@Kfdao2 zcJw~lFS@v*|A&Cgo)%J=-WSlz!HW6tMqHZwVTExzS@&YfU`6?>WXYXmj^ z{&2J7Qb)%fo(;?VH_g7R@ac@D+@<>Vi!);;+TH5Y=2}^QPsC<%vfYk{&R;)V`%;y9 z>1UfrbMUtBJ1Wb}_D7`o>pfn5mvv!|yTMt3Uo}BGHtWTvZ_fF6b-|nSip!jj`SG9m zS(a~Se|i(oR<_`_)JK};qOsx@y8frS%L8S!0uGkWdzsWEH8GVb;#2bi(=}EbwFS4! z`FI9LDaB2bS5@;cuXn#5z4iarIeT}{T^Dxw_8OOtRhC;zX8fzItK7I}cB;GB*#mFx z-g|g9=4EW`{ImO0{_;PN2!89~#3)^o|8(!;jKjyCB)TL_R(4vJWUp{+(aqYGTi$F~ z?o_)w;@tl^>o!Rj?eX{Y-p+9Mq};l74jyy417=H3jM-!$;#j%<<(JF9%IXV$ns&GR zm>zV%kn0{xdg(EauX0OY*O;wuZ8DSDE^`9~0|gMn(7@1a za=(F7{ltS_EQUM|@BenmTt9qdN#^9TqumSC1*iOLSfhRJkqq14`keB#MD}T^eUqHM zeoeBQCCDMU;^>_6X6d^eHEZTx%4=wUly|>omFSr%lBbr>mXf%^t!8G>wc=}9!R+<3 zi&pIUU@3orJ#eM%)5E#*e$T(Z{9pC|Pj+wAt1M%cXQkLDUH;p$L61em_Na;S?YDoI zTE-b>Y>PS%4sjAa4`GYAGvblIMe!dN9B!A%y6A-Xe7mKWMr|~&q$7oH6+N} z*K2d3jR<3Xb%@Aw(fKzM)7e-iU0Bzals3(UYnlXO?!`G$PZil7C$aRp3EgE4yYV3+ zMUd4|j_KXIyP=gFT3j3~jMJM=>4jVo@bxY7sCD&;-l)F(R+XQe8higvXS=F5I%fTo zzpS74^WV&wzwf^PefR$Re|o-^8XB{f)m~TIw7RHHFhs3W0Mn=AJ`OY`lDlq@jbI})<<>aN4&z!qE zZTiwm=bm5|v*H^}$SfRmx%IEI#$uH_$8x{o=HqSgB^SR>UW8tU9r+A)P zma*-gVtZWG%eY2f^IA{96W;bO6T8`#NM>&T(z5E=g?+mMAH>c%xQRVTL0qSPLdNs0 zbKdg2F`B)4P1?kYNq?VAzp-}DgCyT+q6sZB6{6ctIWCsTTGq76+q-C$_g`+a)ML8s zwgFtJre)FP%5$E`F1z+dC%ExpujAd{+waRt=LpuQPkk_HkIa|QC54lJ^Bw;<>DA^b zn_UDKpNvQoShFJGHKLGDR5>&`iX zsZ(mst(U34{M=-bxpL{Ez*ff3?OJp+Vg>Jp- z;9maptoiv4tMp3;O^tds+-DWEUo?;7Z~%{NRmGD6!;rUIX4RL6c1DLE6IVGc=orSc zL!+$n27Au(sNb{v|2&+*y|1zAQEv6z@3k)LkbCn)=8UADQP?jmT{Gp?NerceqG-G-(E$( zaHZ1?i6TCo`jhqVsjg4_rD)g7J?G4l>raHPUWt8scx82C)V9-oI$sWR z+-cqXN$pX8toV-eug%=M{oY*LcyYIRJ6HBb?)k}uj3qAeN_KlDPknD=;}mLHuTpBx z8(#2S)a}#6X{%-}+_vKsljzYya>bFUTW{XjvQ$m>N6sf{1>^Zg)wh2Q>7IMFZ&hu< zu16(uFMdovv>@T|s%82;PNCgb!&qt&QEE z0>j4%3erq$Y=r>~$FA&oyL;2A(g_@j?Iz}z+I-|saJ6+RUvG1B%daa)($_eXUX$}PofET7N*W++k4xlKH>XI0=X3t!baLaO}ctovU6HM(1VZ{f!Kv46Il zJi4l$ee-S4otI8tQ;z+vS$~ePuI3dV=haQy-w0pemOr3ga9a0gz{_*Ge*a>{BmG7C zuiEy8{d)ArBU8C2Ltc(ojnjQc|l(+*iy(*EJw{p;?wQ*|DLWXuHWE# zhw0Y(*3UWFvNG9g8-xm{^3Gb&tNz9H>Yfva&h%>b+5h8SIZyvPcR%~}EzTEz__K(9 zdU3yC!@hU#AH07wNk`1!gt8~M+xI(Jd282gIdNJ^Z;o`6o!9d2v(wwd^imG*dfD+> zrfs6j%~{Rf-dft?jr*rn-_L88yBRsBAg1kf{acM2@!8DLxpRMrYE4vR^qM;@cYFM_ zneV2pJtDh#&S%}+IX!tQTfgqu*{YgLQNjgWI+(g}b^Y(tdch6&ca>%)SWsAx(%d5BKXPF(Zna*ch7UuiE;h%-^_u}XGepf!YF-e8z_{Wf=5C6Pr za`xBS^m)Gj{dpD2{p*iDem&{Y{i##xx!%G~ro7V}C! ztXSj~yk6Hja@FMgu$+m@-`||9cz#Vl*6FTpt*19#cLk-oPV}n@I32%AOE37 z=k&pPvxJ>D_&1v9a94BQZV^pr-w=|+I<0f!4X#2#9m&}T`X7o<)|&KB@8sk&x-X}! zn`X5%-}Ap$j*6enfvNfV{CW$cm{GLqcN>eT0_)S>pH+J|Zd-kzbZ)kN z@yo^b3_rE68`gd+OpFXROx8(`cJP;zx3DZMXUYB8RP?1_8fAnsXN}T6bdxH{T^0rhMt+NB5L` zkNIN6pCTVJizjF9-2-pL)nwQDNpCO;Ua(R9($oH5nT5}?x7#zz?Ui?4{O480dGS~K zYkqg`F4WrR!5aUy{;49$<3FD$>Vn_m;JAd$%17@{lU_4fbY+#fUc%(Pa1u*JYx z!YAOmOoPUKeqJ4mH@-a^$_jmc9hsgwE$no0wtO9*lX~+r&Mk7Pi=V82R&TbB!>B1{ zhbyNxr|FKrcI6$P4U02ey1ogQ*V?c8ckmvslhEW}4D}oQKEGIF&|a@pJZT62$18j9 z++5x=l}UAtxY@G3vu*psl)Q5Gc8b+F@rM>Q?XO(Q@7cD_c>UcO5;ClxJ{|aY=g=*a zP`==q^*?T$cIaAtU-JZO9pm%DhzF|NyMD}Hac-vOcgwyK_Z{mR?%rOcm+p9U#ey?y z*)FBESOs5@Oj&2iwA_JTmv8l9rFs=zxd`PaM|MY9&z&Qea%k26yNBv!b^Ho8qdhZ)aI_7GKvqSIZf={UA5< zh07sXNudeKy$5&g%iCA`y+@uoquYOn3g?haQUOSp*&l8RPsMdeX z-KF%+lm(IXU);0iRp{SXk-0(IWzOMOTbRAgy0>&J@2q+muiSg0S$xl?0^<#C>e2a& zU(YwpIQsgXa$10j!JFr8j%`65>yuxtk=oXG)zGimSjUcsMoGJXGVr<`UNasl;AFF@p`%P%VK@JyX-GqcQ zM=lFwd~P^>d7{OWgFT)XZH(kJt3EWAtE|wS=T_@h(kdVRUNz2nw(Z*oLhSEzKg`;i zwpYSV^^o67y+seDZ`V0#v=}bGo7bRrbK=8C+3|6;GNET5tl56yt9$qN=Zq^GH_xqm z@rB=jKXsD9oA-HJ{1;BquU9E7uCXlLH*@`!%u=hx_g`(kl)mb&mf_D;ae_8ZMU5{{ zefVZl5g`>(=^{;&c*jiwb*UDz!cU?6!`^~;mPbNMYNvNeR;>zTxcs2aWe;{I9LiY5br5 zNBh*2#Wl}yp>i%;Nm;as!b?!P&{&_Pv~c z6GI*=wJa(y+W)0F^~)tyN!!!GNe7>vHhi;x*N-V-lfU`|umy#m!-+#SQZeDuA+r8JSuK(V9|F@oNh`zR$ ziqO~i-FY7;v93O@R}y7iIq5@p;-3J)|Jy|C|H~)o=lp2jqGTCA<@sN0(lpZlfEvL3!joSc4sp5+PgG{%daotc5XiWB+yRq@EoVTwMtGJUWWNg zlXE(zU#@T35%4~g`*4j|>uvuCX|I%T?t*2($@MFGuXttYZ0#&sBo;7x zW#|K61VK?90-FRa3u8p5!_ycdJh?K|^iH_g(j%|2pye!M>xl z^>4lh?vMYS{=Gi$advUVf%+E4dTEQo2ZtTs^IGN2)`?Zgm40KgW3KGUxXSEj(HF~_ z-=2EQcT0ck_wDAl|37)~`ofbBMIF~C+;7X1uKN6z|DN8D{-ZK~XP?OYn>Cv+dxL_$ z^7%*?{dbGxR~`AoJLSBahsb-?M~)SO2Afsa&3eNoxqtROW>@<{Ua`*kRYDa__2y?- z>zRc^Jmarx|4ErUb<2FWkAmWoN2Yt`SOuMkHjn=C)J?F&qU+~FS?!x&oP5h{jxbm=y9pm zUZD`agL(qTSTFjvX>SncJ0zIf-L~<_rE?SNXROUg*f8^a@|ym%L$#pSpvBtN19g0ty9k4km3DEfvGIh^ySI-$!l%J zls9YnPiBY{<=LqHF~!_ zr6-719Z3>?yR0EKrMY*P@Gq$qY8`I`1tOO<95&iA>EF{=>eKa}t&czb@JPLJk@C&v zGV|t`j2*nw7A!k*iQ%zS1jD-9&T}PRZk=vY=bk9*5`WV3cD>T(pS~qJf2J(rGPTKA zCv;GE%g08E#DBWig4go2si^JI*|qIf#IE1nmA~x{HLE3Y@gHfP-{Zt171aOh>C?AN zrCn}IuM{W>hpGH#+MM{x(M0y_o|{El-xpn5KXFg|oNU9!rOqxpLQjX+sk@!(yO`4z z>1&Ym;m!gtPxI0%B@#R8`(E5SV_3^I&j>S~=J89}w{CLJ`X#f!{Jg%?i+i3nC;NqE zM;~1{_xalsfphEPeI;(Cx&7AJrk}U4xL?d>>*P-wP1}@H{U+UagG^G9gx$Cgn>3eOLFL3B`if#X6 z(d43YS=H2*XLhW%8>ejWjVVlP_1YGE3=EjNM55AI~stzN7rSKdi;zrW1)`0*y@vSXJ&hU}58UMN{%6xEt$ z=Vo-|iDTI$rYXC(Y^o3W^KQe<2$nNidoua08vPdaR_iHTyzBX+cCpWVj#o+vUI!8; zmCk3nm*DvL%pPZNm#MkGQ$vbQ`~8xQ>Ug)YRK4%&T!v@2T36nX`W|m{`Qqv06$(Dn zGMHo~W|r$v4AM{C&_Zj)j3X*=7wdPyTXmDL!*V@X7ND(~|{ybNG}C zE8|w#*}5+Fxq9M{yH8u}2FX2T?xyVWt!5cXC2D5ez5n)Q@f+xW`Vf$xxcY~?>v_xj z&zAZh?Uns}!#>kCOvr@2FheA&_gejdwn0or#4#o9|D1v0-cWz4wc@T`=9{C>t!AE3zZjN#vJx-2+xJ{lD5eKQM{SVRG zY$r~Ra}P6__BZa1*E0@Y?^S=hWd9-#llgPm{I#=6 zz8($TG^eTS*53nn8Yc!O-a6325t&sKvO?ToanX(1h3r?J9WvFqPpVcvy(zl%RuNB3`huWwoS>cqWg&TKcAPrAKA+$Vm2#^;R2WxGBzd&XzhZ(X2V&0@cG z9oJs%h*f=-InO7W%O3tRYyBiQXY0T_%mwnZI3gIoSZL%-QGA>G>-nAolAE+b#1v=l z)K1VbmreEDH9N?jQ;IoMPjyD}s*dA=nVv6a{*-*WEkLkTZbczczhxmTTXtro{1O z;{Mu7t%~xZMx6!stdA?VPmC)+86Q@W=aKxi@%9O=;-U%jE-!r|bZ4g137zS-i&h>q}E;eFfXRCfg0{v)Yy~+IoH8+J7be z0W&l0wL0eYnJfz6o|P){w?LA2rI50_Bg?(556Ul|;^-_Z`>^4nmfJt(b&EeXw4d}1 z&t4z*=$zY{#h!OQ#j<_(?z}FtkxACGbMe3RIni;tYPP==qt2{P`e?v-{e1D%B}He~ zUtD#4?zQkq?{3|w@4Z$O`pjm&);<9atgJ++3`M?SvP0jg+4oz$B}uFbNo0@{gFGhAUC#PN#@p* znREW%dSG>)IhaG{(ahlcGfT4^t7quMmn!}Al2NXWn7qw;?X~M7^W5ua>21#Vd}yZP zXQTey2iN9=#a}YZ{2b)?ch-e*uMa{193_WyI<7Iq5NZ&luCWoPie|0J9G!^s+*|4tk3->wjJDSl$k zCh>i3$L`P7&~j5R{21T=vw8KVyp8p_@A=pa|6GuMlOokyk-W0QOIfP_Pi*D%3zxU) z#To=(t(xR)|K-n8*(<>*6+E`$Y6}bJ%dGmlrtkGOjTYX`z9%+DvV>|p*E_XRsNCnp zjI(7*o;=fpcSp7?6E|P5F~Dt=ntyUoBhw;@O}k|$Sj_p%HA%+6rd|2TXC}T0Q>!l? zu3wnZ|6ub$4%bx4pG$6?YP5-y320ef&V8kC`{7;E=8N8SO^k84J)ypNwb+C?&IMoE zEMq;wE}Qe%daM#H-ci7~RGMXRZNXyhr3F=eyQEbwEf7_!<0y=(Su|sQTi)iKqD$Ft zm*hLes^nZg&iQRkI{%e#0DI{ztHde#Ck{TJvcc|RKiAHmGOv!lS2?gC zF5^qCp;fcnMq%^aIRSdD#dUX1Hr>7IyYN`R&pwy(}84<|GRA}xmoC)xVU~ps%2v=pW=gM z{es)>EHOPkDc|eD5_R80JHIUs*t^QX`_~rdvvvlPG@Z80Hkl~Eqj-0PxpSwQzGm=D z`8l%2vdeGxJ0JVPq{zKj?tZP8){O<9g^$U%GnG0jY&yFCR=S#0P;2m|^i(lhXWwt< z3ya&FeoS>%l-T9JE}F&Ke!t?T z*t-1MhP1eSVX5l9;R|lx-yj)hD!2B)3_X!r_1`LoTH}NlhOn&QOD{SxwN32C^XqT+ z<` z>NVR;WHs_c&#A-+ui;gf$iJY@nVxj%iHf7mk@sF+;Z|q2&i~!hl4+Y_=}=g>Ze#YI zvYl#jWlgK~d=C8Jda-5gIe&xf_pf-Qu5XRLUcctr8eK~F{S}9U6N%|7k zLWwh_yyE-Td_EWW=JuS$8a?Xi^CwLbP>Xr@=34C{bK&KC{C7tyys7HA>VB2e_C{dG zga1YRmzGxa{*Mk<{D0Y7_+Z#gb|Twj-1x|*)-F;QH#BlUB*bG-Zdi~bu@-j!XyQ8ANo`i2ve)udLP z*1!4v2qlg<0*+l!EtF$pW{2_ zW?!t?EYbTsfAe!?{`~L#yxjcyyxB%#Pg5s~t-1cP(d02V-AaWt}kZu6rAGj?(Cz~E?vMpSAzNC z#is!(&QE5m2qyKoY3TntTsv3wYR8M+zG=6mb2FYciyrZkb>H5hY&~i26V1b-^{VyC zduANlrui}I6Tgf}6t4=C^4`|p3fU(o-~MfX`|cL)Qzt63rYsaV&k~|OH9Ta>n|~#- z-H%!BlnaX$MtssQe0M(0;d-4$|(KWj-|GIkOr%dM4)TEI1IX8=U0I2lI~CS4L^D0zC6yj^7>HYv|>>ixgUbk{I?ZeB;^>(v?mux zMfsjJJ^o$HOz8gg4U4a=RWL|a%}GvsD`EV#^jL*zQ+U#rcOuc^k&;3}l9EC}l9A!z zk&)li7`Wa_9=`qOese+f`ufib=l44Gxe3l_Rgb;#YKPSR7e`{fRF_}nxOyaGLA}Oe zyWgj~=bz+aStmW?&6l2%qiZU6^cOF^eel?(S+Dd8jmmG7-}QNVN9gnIi>6}xeE(nj zzdG0cyxvEK^az1>mWl`0sL`s@NL=H_J?jngYu=UIyysB0 z$!dS(wY6C%676Sgm@l#6FQ^=uYtQR1J0a!M z_8V-`)_!vy70K`{?PXOW=Bhri)JUV; zH?C{x>Yctfv?RMbJ!j1B|2_ZUwdWrjZfk#PIC;t-ghHl8nk zx4|tmKXEI|%AfbH{b!Pma@dgV$R>76bj5$Gl=`M#0|WrdaY#htz7fw4?dl4GXEc+pVQTCb8ZO5?={a!Tk@ZwzM$_* z$Cq!s_uXXf-wH0AFSUg&*Uo@MSJx{4^zgG+hh*^V<0 z#p-^_t*&rCvtBqaD}(#xhn^?zE?zraUln`%$^PT1TX*+s&E<~IEIY}=oF z_0tpH|9@OJJz`F{&ZcGZcXNLJiOA(C`1mSAak^HipsA+H!etId&6&5_JRaK^uhVo@ z{3-M%(jod+%)8THUz%RNv3|Sd_W1p$kJbIve6^n;BV^8^$(|XqOr{2tGcpWWBZB-r z!Zy##&|<954iE_!JH9(}MxN-$sbL{yQeMd}9~lD!uYYB9>1ER5l4`PPVN^6QKET7| zb+Cc&jEvhnrSp;rEK((kO)COJCj3aNO`SR=(D{l=*D;Cg)3+;Dp8dw~Zu#9+@Azw1 zpWpes{@nY2`koQdf-0VUcOP!gtZld-<1cR?ZhpFHvB6xCdYLsX`vWdoyx&`-aCzCy z#3|ohROUC>Nw4Fp=I+>fBYf%a?Q8@wrtub)8*_Ny4Q)#|Jl9eEa_ib*6y!VyUxMmf4a0j^MmLL2li;* zo;m-b!q+s3oVb#?*;M{br(Gi~-fb@}5ihkynjo)4Q@Vw#k4Gj)pO zwrt`rWQr{d%bF7;#^aMyBwBD`&h;EWJzr1XOD9s}-OI}6zt|CXyi>K1d3K|?j895F zKiB((ExH=BTc2N8V5ODMtJTp~Z>bPHYis+({ZkX#d893CS7+2Kw4W_0V9S|s>ZO&l zxCsM)Y`}71(;T1n%QByq{x9AA`_|S?vipMO{Hy=>he^oc{)roZJ-3~GedUV6zrb)_ z&b=Bx3|s%{dffQpabs%4%&c{$(>|KpTkn?XpJmVNe?)$7iJRGpeS$Z|#NW5i@u{u% ztKwV!?Nk3}_G9Ih>P3#HfBVg`t}BdpS?e0R`;1^k$?cX~m7Dg9|NX*UT9hEFZGQ2- z>=l=yX5NyNzGK0=-1TmF3H<&%c{;ys-GOAUo&Q$dHh*CE`SPOU6mm=9QcXL(FUG_f>y&7kAcFfY8V)Ecr+O${2 zR}Va>EIR2~Z^88S_soM~QGAYi&dM)D+%GW9J*-^NXl$c?<&taU0&PEc9X^-IN6WeR zY^F?Gt>2Pl@Z_nK#6z>QhiCp%e8A-LKtzDyqu7IAiXP{9>-_$gw|Oall9@E8v{y)N zVQo$?V^98{_y-#!KE3p@k-PohkUcQtOr}eSc*bYGl$TqgWb4J>?~4;<^SQBxZA+W+ zrJZiuICk2t&1xtQXqa2HShwfR?n~xQFTa-aYkUcxa%^AL@29_&m|uKe5_z+lzhTnE z>uDh~e3pLgJ=JzW^%Lt!_9ay=o*%aScg$^msAS?~d#5#OqhNIgf2=2Wy19X8%F{VN zOeX&2zqn1xYlrCv^Rf+b^?8$c9tVAA6z{zG!N=zUkAI`M@R5t%CGF7`DHUG(Ekqul zySjjD>ycPtWB*^8Rw|Ou(wbP#ve+%)u{JcFl<2CYc)4QB6_;;c722h^)(WI;JkfdF z??klj#q-^>b{n+cyxcxJ!{=^rX`Fr8TkDtGU*&FDZljYVYqNd|-~6~<&l&ai%!;Zm zZf|1$?fBNJ%5%f@SE;v*=LUUI?wzYs`=V9GobUX?gY1i>lFxipzjWSNRi<_S=bGH3 zg$&20y4_Kfo)n97)g1!@o4BiviCqtww`ZbtQsl-7EWZ<$vv!ol z*2$zq=y=cmXQ;RF__Y<0(aYFR%#SLUsbA&NBvf+Sk<)Nd>dz>qT@M4kJ&Z76-oO34 zzi|e?v!aLum$sxe<0PN(`&=&{En9!_4*L{?xQgT3o;|%UbLt^yk>PQrfG*2fFVfjB zFWzxb;FfO2=K4#|7I_z5a?4E?-D2=;ulu6VkC_wWZ0-E(YU)@cJ>C75aW0kWx7nq% zs7k#4?W>of?6#6KBQDOoR12x5w z&rY>ou1G(pRUUD2%@5Ouuk8J{&o%Y>+%#*EA5(Dc$~WxmqW4by=6%L%vSa$r5@+_; zZv=&Ru91!*zS1%y1J5uZkfAy z%2uA9{JJk>+Gp{U=i;5)68j_99N|52Z8`tM^S>{qn3Vq8?0+XIOv^+@sy%<>J%Q_U zBj-jgf7xJtrg_?R`}ilyi%%~Vo%n&Zw9~mgu0t^vQ*etcdef~O+@rgyHUc0yiVb=K({l8yczT7&0>70 zerw^@kg7hmCpm6sX3m~=iMHMfFs z-hrLmf0j=B-FE+hP_y$#+i%)80;cwy=+VBwUH(Au&gva8m7i-adtPkSU)j^`{WpPi zP4m|cT8GUgqbt?l|GQv4ao%_R2^sbKKQJBbc>CE+J7TMfx@q?8wD^p>WZ@34= zSATVz8@XqO%x?Vy*=!fN_lxH)-k| zg1zYn{|Dj5xXE@!{;VFZ{vIBSClxW)*ZKs9i`1`g{XVZD{&ZH-viGH(k`ipkUIZ0t z1&bs`n08pG3TLcjW%1e=DtIV-;-z_EUAYSbxI$`z1ROObgGIEhjAME%7VG((6-zhC zi%c^r@1B0f_Ib=SotyEeJ^hOE-<^Cv?>@U{O9#g!m2|b-8t_f`S z>lK^1T@JQBs;PN$v~A_93;$RbPQT|A{d^IB`eM~$4nt41WpBJLh)kdMWMy&br4=nl zFD)%BGvU0uJH_zbE-yy2M zLoMr@)H1lbzgmTMhO9doI8{WDMR40nkEMQR?ym5!Kdsgwk;FaGLq%|+i;J$C?Cug)5r|lIv`rnN4Pl$zoU3ILCj7#sN zpi=^&jrWgzJa8n)Yw}wW@jpFs8?4@MiklZS!^nY=bpvnLnx1L%GMet*`65|WE~>KW z)`D5{zE1k{cV4~7j|EqJ?{O@c(_pcKCw5{_nEipo)grT}K3(%uoU1*wHS6W-zQd9- z@0Nxh+a(g_T^`xqDE_MWg^{7n+@u_dCjnA_e|$P}_V%|YJYv%SUN3F9JtZ>dgF>x# z)O)pu+9BEw=Ut~xYGd2bG`VuyUv{6p+SUB$kA0r!X78?e_`G$$Ts>Rx+M6MnDPN^8 ze=2hjODPrQ7wUwO4a@1qI|z!583AUZhRo%c3{V|m4_m8UtE6Zp6g-k*L1&- zCpAX)WA{V}RnJ?efAjrpoVmyFUxWD%?&_WI<|#fm%xG}ia8>%OshdW!mW=7Tu-%uh z#@*W(KC?Ptbt1R_in-N|ky``n_bF}lf4k-xS21hXYlqh%b8qcm?6k0DuFs*%B`%5= z&o3^&z$C+(UBb2D%0||0fA3!4=lig&dgk$`lTsTx`uG;w)^NjO_HaQxl39F0+L3x39|Vzgcu6!z}#TrkR^!A4juYJ5VFjKm9?*ngcgq)XFqp zyFdF&?8~ROMD9vS8<=$;J-j#V$OAsT8fSJZ@t)~>IFBFSlJkAn*21mN^*6n+>rLO6 zbd+EHz@n4_sd`?|2}iSIM2~OX{=oXh?$q}wIvYi}wzq%!a&6WzLB72LpEQch>s46h ze4N-JZYJitc9PHiWqgUbE82?|PSv#&;gR5=j6aspBM7%-40XDB_F(( zaNPOaanU4e+JVv+=jHBPp8oWV@R@m9{`W2?XO+lqE|<5zQF0<8-Ryet-0OOkzZ!QM zOw)X9^m6U8uWh-lvx~gTo4O)Dd&o;jzuo&Nb?wZ%rxFvam~|)Ld3q_Ns(9l+k#8&hq6Ji`rRypu0=sliI{3 z8yX`m0uMVlCGAL#{=I4Q&)9b*ccy(VeSGHZX5OtfJA2YDdmZZbSjfNUq65?Vr7rK8 zf9A_3`tEx3sPXyFgP-^DD^0Ovaqj7np?fxe5<%5wX{?;Haj&Uxc#2n z>o0!F$ycp6A9T9Et$c<=`hVA5*OC@S^GWmVYArO#;ZOeYJv4iJS*f+;v}-qcd9sst z$*6VT4f7P3vuXXaEW@gPH_k=98tN<7oIHC@?Nev}3ym!I)sjoHbA#$ri`G@#FA6GQ ze_g&vsLA$Et$$MIBv}Mn>9Z!Dz|IqtlsiDdc3pk?&ZG3vq$Oq zF6aI=Z=8#NFTeM+_vqOK2jQ17CiQC=fBx1EJFZ?K@vzqauH7rf+QW%#mkccCPidO8 z!)K*YSJPIZ!#-L+WgNM*FNJEZw-S;OcTjP)JJb8)fb9~?h>6K_%5QM5Gb(7^v&eiZ z>(apO@=Ok04>xG+Vhx{QHQ__VyZ_>a^P@zZm|PT$bP5g~f)CLQP7RQ2XtRfGQHLwh7X9Igmid}=}G-CVyz&sf%ZDBK8oAbMxmZ@zn(BST^{KWb5iR90wIh#W_@87pih0V?N-g9Pt|Hvw9cB{sm zyx$+P6~E{SEDX6D^lO&N`OYL0|7+bpI}gdbo3vV-TJ_wO^elCLU%NnnHhm(LAxA`jVBi@(PZ)Vb@tu-t44*XzNGN(gEud1j$gcawe%qSvHYB! znM`@RIKS5)Dp~X7)-Ur}roP)>&1>=VbD8(}ViRXefI`IXkHPLI?RJ`6uva+rP4;+s zuDDM0xA5q8f%wb^aq9!3)7N(}+!t8SQKz`AbmAM{FTE4aZ!Q(+&fPBM-*P+eEARKI zZa;tVRF+O@dDC6r^I_^OEAN_`r3+ac_v{ap+hy+dX!H5&`Q2CSZ4{I)s9rMFvWR*k z`snY=c{`2oq@CM5`~S61k(=-Td=dNm`;Wgz@{)`<&iXOshSM5FJH=~4uRB;` z^s*4V-SPE^Qj+z?88;krRLX?T9nne>e(14A!A|9vpxO~HCyyTWWrFp>9L7mjjzS`a zZ5vdN2^n(~C&|rMJv7Cj_+uGoEI@G+A3LZ_jY~{lG5N5gOc49ioZk(X z@>7mRPFVZ1RX1n72lK513>|$**B*rk=JTKCiJ9#f@N@2j=%W)$gd^jQM{~DFi1jOq z25|^pcVb$9#bI=S`Uq9(x_r&(ft#9AHvF=;bef3O2#){JqvSxf)AicB9f8#H% zn}w5KifP7JKW8p-{S_4+4@{^E`dJ0I_GD*gcTTE(?}-|t!#{K}b`V%)sA z)}{HkRL}2w@_YRq?QU0=96kQ7(P-wy{8fy#sr3R5=3MVZi|RZaUOOwAni(2fwR-kW zep|?p)%p1Ad;eDxIeah6wWx%N2CQAfx+*OC=8ey4JCc8&t@stc;b{Nn3o1vp{f#-f zkH;l&#ic| zhNojA=M_iO`oq2IrIiaBi(XAyAys0N7kIHp|5~S8{I0(3@B5FK%(8ede?w&UxoUR* zBVqo}l!Q}0J<*(XBtd`AjIx4#e}DYWzMgky&#r&XmFK?ky;;B+&iw0A!x^5*71otC zr$k?T58h(0!Eb1r;wo!m-r6{+^!cX~&#o*wV83X?ge|Xfcs{MG|1hVGwfI?*w#~zf z)%#;DE?roW9=PFU*2M1Lm!_^ZzyG4P>hGzAm>O#f^3z9F^FC)PUXZP_MuOK|7I^gnE7^NpqZk54;)&&_1h zyNZx>miT#d6ulFb%k#V^HQ3&m-}QG|Q0&6fReJOH^QABFj`|_?RVc~iqJo3*?)qPT z9iJ-xDVz@M+3-f;{U6?0Grl;@|2u0I*Wam61$Nggy{(k?`^~~jCPhyr-&M^HY57?1 zvif=WifKCQ<(GZF{ba)AUbZQT0(V}x&9r&?Hb9Nvv~$Hg_kMY6n?p)s?maU3QUPsy zd|2~)gt`!}!aYN3kj>=*L-_O6d5LMu{B zWCN^xU7OYZowzht`iXRGO_|5L)eRD0#Q_g=|D<@}tgO#zw?^$Dq--5aq zJ8#~eaz$cs`c~DguYyAF?VB}4X@OR@msEDj+1o;8>8!gpZam6(HP2!1{#$jO>8Sxb zd$t~Oamop*PdO37p)pzPnDvgsRvrt)?C-azEk1dEx7?P~{%>;<9(~$d!rc(%tmZ7E zlCG^F`slRKsZAymcwfCSDiv%!^YQtYoZpL&ui}c1GRcW`Rs6zmwfjuM#`e9>bH1ta zs(-BPG4J3FUNdjuSkq`HpeiY)eB<)VBCtP@dFo z*7@(qbH=Cj0ayP!2Df*9TU!5cz7*rEJH29`mTH-PN_?qdr}MY1Mm71gSZ}}s#d8YJ zYhKwd=78%w=+ z;oV~QHO@q5QCUS^q~guBc{fg1m@bh&x$4xaGpo4d+?b;Iofe+f&elxfYn4b^|0y8A zT>e|!S9_uOQ&sY}rvFbAP5pXi-Ko__%I!;T%z0;1$=s`3A3x{#6Bn`NS#7HsBl)K~ zNBMXdJ>FX%-Dw@q=k#0D+s^J`iT<3>^!mRdfzurKPI-c98`&@-Jv*(m%Gd|_J*r8$3Gvy#(^4cZy9k*BBzO(PYQCR}xzFyWB z+h+dzT0hxMxYOlFp{IiVwFY0)D-MOPJ4|Lvv+Nabc_HBMX(HEo=39TzvdYD7szUk) zi_c#8ys+R}|Bv@F0q^9N=6rU0x8b+m&#$_1^3P`fbmyP#nCyP0n?3o8QhT0?N!v_? zCwF=hvnpE-Ii5=r)Z~AD_L_s~ZO?aymY>~p;>)ic!XMk~pUzJgVRul{=irC!O*5Bg+!TI%>xCn62lu|}kU6Tj!IH(YHMDJ4`>IVcvP+eU%eOo> zeD!3~3@weuvJ)!@!@t}aPTcMj|MxPgE^}YIUvlbC^ApoucO1BoE+cJI zJ<&M6BXEu<_gdlkXRPWOroOQha`u4lW+ilVht`f-2$=$hcL+nw9 zMz5tO^@685DF)QrE61IUDt%xoS@CC`W$^X7egCF^TleP~pIT$STfL|wi_6awf0OSh zN@}FP-_|_${XoIxus#YYr2_hv&@PIiisBvrR%&Cs{iTE%YFT@ z;+#bX=DWUj37fmO-J0+El%s3XHw39vugu&2f5XfDd7h8ivt9IfKK6Z{XwYTm87jcy z++k!>G-GR23mf}dc71kT>vOZ*UdJmRsZ23(d7IDdE1P`vW$6t0re%LK*$(aYsdlNC znpNTN&HFcBN>lrZ+4ug%?ghn4%|Z2(nr@0qyFA)+#Ei|d_fSdR|JiOK)3bgno7Aj4 zC%Wk5-_I|%EP8UvW5FU(!%r!tNq$=0@AgMbpB*8vm|5DlGBwn(D$s47AoH25ixDP) zA5MoV-kR^MJ?Hz8W6RakPFz-)6*T2|$hJR4d^06#_^RIYa&UgjowDuO)76_kvwvOs zeqa5x*$02W5nhxXBVKzgdhV1bbNAUAh@U@SmL78N!Q{7VxmLFa{opC$+QgqaKR7mc zZt&c|`R$vpIGoI0TBE^yY+d`g@8>1-@|Opy%=`Vw*QWf+t;`pxN90}0w`%n7KQ}pl z9!H=?`P6eSIdnQ6&y<)o;c;M>?V8Z8IU2TC9P_5GnpE!;J@I+{y+odg{yhH$7g@)a zRD0BJSRbPEEt@ObGT{21GdzF$=ES{y=<|OMXS`YM-GhQ#EWZEySW?%@wV+{DP>7rR zGL1(;k~Qy--kNelry)hUva-i*dVJh0^OAR)8odo;uK6^rmadYQc=tVThm}RgT!-E- z;)U*a6V>08+~2HN-*~GfDRYg$&gYe{MV5cQ;>sG}{PO2agOm1mb6+l<+ToS(r|0ha zot&?%QB?a{u%A9X>g^eOFigiiuXzKGUDw zUzUBkK~r}7+3;l^erE%gIlM{Wd^K;L^RoDsEkAy>dorm`Wt`hQ^M#Y~?f^IOs?FXE z;=A*xi4&Sy*hzw=7-t_mghg#Vo7(xN8M(B1)Y-J-^!V^WWT8A(sF6-G%ZRy_#LO zzYG87=ifEwjZMMJZx{UjZaf_7yL4%&;ypPd&p!#g^R6$_t!=Vv7WjK&>81FeTdUbm z9zOIvQ)$+x;?N0aS14+RPJ6iHP_M6_x6fndDdAeDv+7?zldt;oG4+h~dHKzZU=y+UiX-)Fa>E+(|vy=6AxnX+v-Li-C zw|?C@i>YkJycgkdPpbXD=>GU+9=G-1(e0N)q^z{`?CkDFT)fATzM|}9`3=eQH{L!G zidlUjD_iTUYNl&urO(`b%KsGt_RH{ywYwfWEfi^!ZCS6=vUdvq5!o!QQ`yOD>huq- zesMjpLW5&V^YRbHB{SJl-hI<}aOIoaZ|;W^I#Nx{?`&R}-~Q6Q|8Sb$s&|uJ||^ z$LUX|KXW!++IDO&&%6gSV%Ps-lFH>;XsW@{G|4H{?`9&8nq9b9niE(34VU95MK?XV za!Evtb6Y}^ca2w!mdouW&My?%e0R*0oc5Gup_!+^m0MhETYDqpQ?41eIoO{qUEg*i zM}xsDI4U$wGJeL&q@`0|M;$(;ak?dmPc(VDlhEnUu5BCdK06Z;yz@v>&%r~BZYRk& z{;{7HfA|TgCyeMPOM^Pa7Dft?lZT8g4NO4tAVFh;$qy>jS;GUpJiRu1^o29lhlo7C zHNP}fM%3FUtbFnv+2A*Ziwq5=e3hi67il!9c3l!lnYiuCuG+MDH&YW|Dr_j3rluv7 zb8+^Hi!+jT>2~TKl?e8EXMJb-`#bMrFHHHZ`tzLa^WS{w{}Rrhv3_rJe!cDb9x0oS zNhed3udk2XSkwA`i|f9B+UZq0>m~JVRVLTV$*KJHeb=4)-(_zV|MkQCesayb-Z?ui zzHsK^lo++>O`o2+8g5+qaiX=-mdEP)vyAGV-Pu`uOuvV(zn_Qqp6NaF2x&n%*)^*F zGmiZ}-s0Al9XwxVf52kN{n!4w9Qv{KA?L%7o(~h5^J7JXWoNJ8?U#QqEi5LtzkAV& zOl|RH@9Md}e(mFo-l}0%^Yzh=w{`kQ-$!g#QA}ECcFDf*Zjo<+SIG%u<8)io-+-@PL+Yepbe5)YNiuEEuR*+d4=Z{t1L^?nOqCP z0yeL7c$Jx@_0+pESbAmX6{Rd0)3#mns~Um=l2@vG)Yh+13|W-ZamMmQdcbO%G6Q3a zl7ji}iniVFS6+R$X<7~QDzRJdZXG<^AP~@ckbA>nHHjTQj^{%z z=Zi{B?%5M(u)+VU<=McRZ#Ds{m-hIbcv#xAWwzYS)$HQ8UQC)6esV#1XN=aX*mV!I zTJMycVCX(Nq0j$Y?OGq6zK&=%X8+Lc-)ny_;JWunx^++5(mLO~>C9{DRlnw3y?5*I z(_S8?U5x&MmVx|pvX=87SLJ4yj@UgB3EHBvK301ltMP>EDUlUi~U3#Tp<_7LZ3Eif_Ca&6_Z|ej` zw&`r1ceFp@bWw=zlTSYDZ?Nk`j;(HKei;7KlA?AQ%i;Ki#}U<^4zkU zdk(0soMUwIb*`nC^L-7iyvN6j&PerN_ddJvmuy6GU)s));3Ws7lecV;J0q1kyW&g~ zfBn}FTKCl^=-*h;Y873#d~Mg+_vhZ1mE4Zz=99I%apywhJ+3qNRy{c@S<_d?E8S^6 z`_Scs;vs2g4{)uzubZg9KT|vXvsKR2%G{k_D`f)?*6dkXcXBc#_hX|IeyQz``<`A| zcx}DatCRxHqjkE|#XOQlUso1$yqK}&kV|-M^3#2r>$_)7f4o1@--d7VjD3F|mA^Q+ zIK!p!aE7Tgi{0%d_jZ=NJ!g6#=Tok`NY#s4lXreEIqep8%Kp@^Y+U_I&+q?Bb@%cr zb(A7^y-K^DDOB-^=ndHy%kNF}nmF&)_k;QxX4zIb?+?WVylvf{$X_lV;`!y& z8k^<5XOy#Jr_Xw;yVF(N;i(GG#{-{VvTShhGpgJCe#xXQpT9ELH~rf_Cu6<0+TNn* zzGdI`EilOTTF7~db?Rj8=Zb>AzWd);yhWwp=EY|sdP0-#)=rgMbWx>V<@e8TUwrxB( zSABNa_k~|{vr~G-`2)>2CkjmuR7EfD-#qcr_f;6A34;x%2Ge>CJgrIuE`d7OSR zVTlvhlTNi2g@R^UNzX)-&fBVHOsIdYQT^l5&O2NQQF^Hl4n{FAQ<}DU*4Ec1uNx&D z3i^U)y>q#}JEg!;Z|=L;g$I&LY*ILy7Cfr(wkhb5KEoujGo*~Y@6uFvxi4&@a@|ua zB<6Lr*Z;e8eR|*idGpV|s+q9p0$1uHja50A?%{d zczI8CLe_%n1&4x;RDLbh)cx4DR`@|Znq;u%O3Sq23PCzVZG;_CARPW)Z7qS!$$;vnPBZM)wdY1I4D5oSA;&$33%Nm3&0_beh^XO+D=@M`9diz{c$dn>>5`&6B8;%nsfhZa`I?%eXj)r69Bpo(!KaZ=ZcW)py~?3aR`H*^?8P zc_ySUnEAD!C%?4#2yZ`Q-x1~2P0HHoYJ2yj#JZ^%cq^T+Z@4kLV`tso45wMM*(Klc zoqzM)mS236b?S@P*+oaZ`?Uq`>aTKsxkQ z@sz#K|4lQ4^{(7<+wwZHa=m|j0{0PabJhnlpRC)sKl82jic62R{+1P&B^XUVxO8J_ ziTSO!g8u1#-JY{}&jf$5OWC&l#%DgE<2(A@UM)+|Q5F^0baF1M#>M)@@2Bie^ZRu+ zDS1+~`PVmV_AUD__{vV@_oT=>@80lfy;!@tXo+jQhSs|W6Muy?DI8qGbZ!#QpZpX% zj_}!sbf2{@5PDJnx_N7W&L%M<%`dCo*raE2SDlPI8n$QK|JV8rf^AEri-QzrcCIs? zcI9fA>GmVnT7Kqm#mrxzrq<@1b)o*2@cgR_7H}I?Y+cB^RW93Bbvl<0g*9x0_qNnXOQGJri zkrY<5i?Q;a%jEA19a}zV%~?9mjXU@4Q(bpChW*Uj)#B?-UcJ7Qb>m&F zZGC`KRA5`T=&TEO)n&i&XIV$4M@PE~8*H_Ww5vKDlq)e?Xrr<#vyX^dm-^pb{8y)J z*>-gU?^M?hj0V^9n!c~P`A_)WDt^8{AMaY3oYFKEth?v5MfmPM)#;O%MZLTC=r4Y# zo8h|faFV$cOL3d)+`YNcH`q8@UD9v4zj#^xe!Z8x{q{zp+ ziW`m{n&@Qm&)MY119ox$c-477A8YMNDzo7`epzj^Wcnk10l|vO)7u(!47KBrE3H>L zy6#MdZQ`eOPcCiSyH@shoc0}|gyPj*6YuN=i+6*`x$lG(c8bJzJ7o6p{S9lX)7_iKHmVrR> zpMVKU>+j~-b2IPS-pVgn=D>5L%WwjVwZciSo-?ld;}dY`0){ z!^}SSIWFFx8TMAN@}~RO|9h%Ee^QcBzK!3dwPhVMCiDL+SN7sx75eSCs^f`sf$QtP zTzhl-%463}DH8YE%paxf5z*v$G5`0Qq}vzywrOls-O^#hW)^KJST*xw6d&iIX5C(U z&)4nAB>$NeR<~!b@SCIPEG@?8vmq}(c;XE0XZ5=mt|%~e{`A60xo+A*&i@k@pNreM zNNuf}m6}%K@pZ4ZRD}mm?k*5oAIih=BKEIM+^6HeZYs%bzt)t+U$QGbWxA1uWEOkD z|2CIOo`wz=uk~&>pFa=yXSwss&$}U+LLSLi9kVA#Z7UHHdnou={^()hwFhORBd>p} zy1aBrx92JI`o~4nou!QHXI>W;PM3Eq@qCx35hgw{)7sr&dEqM$nJfKOeyN*g%Klsw z@gm^+oRX~F=Kq^NRNUduFp&y7D$n~qak2GcnboHcaZf$@Z7!?Z>vKWA(lV)bmfuf? zs@VTIq@3wwxMX!{g2uL+uCHxB2%lTEE5%pkk?Ev>CeeC^!o~HPlf08Ae~_4bY(w4c zu+WexZtg8tqhGAq(mgdvubS!Zzr*aMofT_TCz`gt{-f9$`SjMe$6v$kl$y6|q?~h1 z{#SBI;>3$3%@zEDX8Jp)X#ZVvVyzhW>LTtny&GmH6lb{KS`uN`*sXjk^yM`@m-R9SR}`IW|3(i_?98vf4d zQkh@yYi3D%a7#?~L}}NF{KxNE@0h9VF1~cW$TzXxXiofgXHld3Xx3}}umbF^m zTElsN-UNY(VvJ|DtvL2qX@RE3;tzRt@B9}pxl})0S?MU(=FDFrdlmJ}RNho3F4)z3 zjcuc#)dPiiog1^Kx=n035v8H8S8kD4vvf_@s#}pejpM^-aEV=bdD(>N;_kGMrrErn zCx5rH&8wf1Y8-fIN|m1ew&>fEA6hqU`*!5zty{_M{kNnO9h#DUL@2g(JWb2qmeCjX zj9ZjRQhD;F%gITW-XF{sAABFZbl;J;837?7*HUCNQs!)!U%64L&EMHTl{a!^ZnD8 z{5S9ZY5#TQ{keV~hxJcf{I{R&+mn6zSq>t_xmp*q&cC+_61^tr=w@Z~y3cjqi$ar< zbHDv7*598t=Zw_fJ5RSvd!LtOeWgNV#yaDT{mW(^XV*{O{`=?gJjQ1?pLBnV+1PMG zIMFd_@s|~!H|u|&R8cN>v)*p1vi+Bxi(ahVB)xwB^&53h9z;KAVV?F$cFu|BPM5VT zxg}1iZI|mf&h2{~|JeVSVZ05${M>6z@(!zl-B0a=cs$Zq@NF-THh!>`Rste z+Fv~T7I54R`M;F6F30ltwC(S!zdI+`>BI^yI(umGqp;1(=DgKEr@nc`5y6Nzh4rQ3 zf~(@Ec?(y)-#>k_*Ov)vah|8X!l{UJBo$@INevi3Io{gHCF>htun^48tGJRwRjS;%3-ist9QgO$WY_DimQXSQvdGkfslK2^)mk$`;61W=FDh$AN^xXyjP*q>wTxL?P6XyVX0loBd0t|gS&4z|8ee0 zUD%lOqm83Zd%DxU3rA+NoMTdRo6bM=)xS-P*<*tYR_@;7r0-I$fV!S1ZTgy;r*Bp@ji^ z>_UB2=?@d$+U4At=6jntL3d4H-sznQ&$(Hw4St`#y?XVgxq;aS)RV8hTpGWKeFBqV z#-;76^?mONOp)3;S9a!$H?;>lrL``sQ<7>I;V3ERI{s=GlMtJ3srp)b8qg)^%(CIeYdCUV5zcl5^|lgGbNqug^N# zcJ%DWvNLav_q7-1OJ}KcY(HO{AloYy`>x@5-qxQy{?h#tee;k??JnZTOjH>pgDM58J*nuI9PB&T;ec z%uibRyURToH_V)Kt*$>a;lvwhv*?=tVYkoJb8K94`O`$vmAPeCWmf44dA7tk?|tE1 zA{pAL!sxp0wBJ!ScGG$D*0B+~o;*iG^ilbq}BW zm`y!-pk73?$N9yF&(nK2_ug6B_*}u_(W1=lzh&Ir7N0Dr;41Qb<@V>EsD;m|_t_6@ zZtUNBr{IspKgkI{B?XFv1^fcnr|HJKhdpBQIrLnm&W(Bgp|dW1JFjjv(RlDI^#|*^ z$!qI{Z++cnYo47|vncISSAdi>v;Ero51ZQ9>UZ*}2JT;7e>ZI6o2j;M%eQ`z)!D!M z)^|^FdzKUno;Q8l;*(cTugsp+%5uXaa$(tlr6&s>zTsDn-&C|&*6M)ksku@HhgMt{ z=J>HEzi^|<@q;WUpDAqr`1`E&gl)cu78|XO_=k&L63uH za+*h&@+tKv-|Qvif&woXmS{+v@&6#x%3pSh{k+SL3oI<9j)oxtVOGj73hRH@M%ArU zT-F&c?5q^R_-t~L?cW#qZ{mL4SbVHJd+)6rxlI$4S~<=e#k4&AQgl45UWdid4)SpnT$rTsc_B&yg;{ z*xp7*UXV*N?!=2|_vcyb&zqjgjXWDA`gw2rm$Se9rbW-XW|x=g_(J|&&Yi@`87uu+ z{apNg0ypnjX~7tGR9$OPQ_@ryrX_ng7p&OhtYXRXL~+X}j!rSgWM!s{UECd4=XOQk z{WW85#t3UR%q&AzoPHtQ+!>BlU-fDek&%SF*R1JOZ-JZQ^(xk=B zCYif(U*7sUlU*pJGfV&4K^3DjOljtuTW_9PlbB|B&_`nP+{i<363h(V8$R@55k9mg z$;^1Nz#0!m#>tUuWZayqB{v<{yH~QQVU3H9$bF$x_S&o8u-`kG+3W7etC`S}`$aIk zh_k4xyW8g|*CWTiiQ6|G-Fsg1vgCCqBb9?;9!nS0@j1Iq-o3_|@yO)=YvStz8hzNl zR8(-*-F^@daa;eI^+WA~C0A6VlN4o?ex^E9DD4Q+*c5zv$KvWU6_#h2+TFr9?OXRu zKb>*ox(tuaOv`G{z)9uv_Vw?poi6p}x#&X~w&}aAcM90f3GYyHzj5(+Q&zEypN?xk z`#t&`oI4StT(dnKUtczgVo$*(Jj|`^CK>4N}iOD)Vi_2 z#Q9%fK*aT3leG^{7n#(0Wd0EW({rlD7dsA~Sjb;>O?0Zv$@A?tlNU9dQFp3f$Z1gh znrQy$)}!AHPd_|4a@RZj_j`WX_f5YW?yVBrbSox+)%3va12sX8+^6#1=@unK7}x#S zw2YOxUdWIsm^IpRPS(Zy|9?z!x+?iCQ{!y%#ozx@lmh>4;CTLUPxs+c^*)D-iNS?_ z6O~F2|2pH*^}+n%mepNpD|aq_QnPsR!!zPx>VJe+b%dYPo27eu{@hQiJm>vy*u%2e z(0N1n1EDVy(x1QNcNAN{P2Q^XRNVE8vUOIU%x@)xn!S~-@9fd}U3ve`a^H(Q{0~%e zyO(a!y|FH?ZPN0b#D`*X`&0$@9u;+B4w2C`aylsZ^Wr0$y$daNnk}32X`;tHW}`~A zzVjKT8nbx5Ei%f`&+um!{r^zuM9+;7>lr%wn`U_NG0x{a`jYEVA-iM!qC-4e#eP2L z6@R?W!S=_uhb>ZH-g?z`Z2q{(QV3<^`6G3y^FMBr{=W; zNw3|Kvi48RI@`;g&)>W#@RK>_d84f^SWQ;Y{`mV$cI!9g54h}2K3fYZ$(Pn!-rbb; zxwzoMXa0<3D}Oz-%)8_&qn_Pvyz|->G2N5{R#jK--kP_gT}}H#{rbv3k@c~OndclQ z+Z|tG@W$(ePh0PT|H}#%tO&2~Hz=F;Ba-D&BVQIPv-kA;yLnMwb-ss_t&gj97eC_S z{@viWv3xm8vTHqKy5&h7p5T){#Y)f5Xg;&AbcnLt-~O`vUF?o3|9h*so?lZ}Q_X42 z&ne1Ejg-4;D6)J0LmjWpETzgq3m?}{zLrti6t+0?YT2Ca+sjUz%-S@s@9Nj<5_@@l zr(FJL=;nN+QqM29r0AH6;L;G`k6%uRFfR3rT=OwD;NoY!BS9;jUcOM6=vK)0S)k;S zF$-T-qeuM8MGFH(=IDsJ$S-{468V&Oy23H3-u2u`ldmo?Z#+5Sz0i@zE(bR2Ir^Bd zTUb9qg+o^Oh_uW)xw#Rg7jiZ<=Ie&cTCKDG*!QK)6EiMGuUMhIcE_`#2`Oh9BVH+` z>o~1@W%ML~-Tkwu@yX>aht0mPk7?RH^;Z7^$2W^+ypG9yxN**=rb~++TNyNLjL6rD zb97oR#3mi{qD1SwrU3uM2^MX~SQiUxZ94TO?8Dk+y7gh1lE;3nJiKI^*5T5xTb(j1 zU2Xph%RWl@E+O8jEX}g%)BVjRRk>?E-M@6o{NVQg6K~Ayf1$H*7w7a{B92X2)91J+ z_8V+?mHkNE&4#yem2sr6?%Cd4-e13*uNGBb^~_-S7uKG(Gs)gP{Mw{imrWc$nYaJ1 z*!j81RggLG{FA$z>W_JCFcWjwmK4l+rKwl_O=zNHLfD_Yt$$DNSGxS`iA1h~=jn(e z>&;H?n{I#dgz_$5wnfz)CEw<4{n-ArU4E_YM!{!}6&`6S|LfO@eRDkDTYRmD|KIDZ zpYs{sef?VS+cNC()#i)#+AlWyty{Nn-NI{^_HNc+FIzE%zrOvSMe@O9WuxTR^O`?q z9o^{huzTISUw*%GZ6Qy)aV_Z!^{dfA^-e|Y0R)whO^I1 zXJ&^$6FPnOi~y;bO*yh87qG8d#d3CnpnA3o~?e zh9;&Km`Tyh5LJxbz`)Shz|?4R`7LWvbYl&T4K2+kAHQWSiV@$&#wG@n#cx|pPP`?| zY+_+DIsLY^D5}vQlg*4QCU3uOC5D+%jLprBCbQqM5;HMCPhZBChGvt)@2J+Bn4o6_ zLsKKnv}a;qhGB-Gi5YsbFf=kXMUO>8Q_Rd}XkuglPPg?2ND17?)EvVxMi!W2rp9I% z!C-D?gb{$2=0;#kknAurGe^m(puAyVWNCzv=#335jnFMIHncRxNIqu97y)l$WMF|F gS|-NEmgu2nVrs!;VmA5rT{lic6E0O%SARDy09{3rasU7T diff --git a/lib/prelude/Predef.gf b/lib/prelude/Predef.gf index 198e9449d..11d094793 100644 --- a/lib/prelude/Predef.gf +++ b/lib/prelude/Predef.gf @@ -10,7 +10,6 @@ resource Predef = { oper Int : Type = variants {} ; -- the type of integers oper Ints : Int -> Type = variants {} ; -- the type of integers from 0 to n - oper CC : Tok -> Tok -> Tok = variants {} ; -- concatenation; used in patterns oper length : Tok -> Int = variants {} ; -- length of string oper drop : Int -> Tok -> Tok = variants {} ; -- drop prefix of length oper take : Int -> Tok -> Tok = variants {} ; -- take prefix of length diff --git a/lib/resource/finnish/MorphoFin.gf b/lib/resource/finnish/MorphoFin.gf index 173d67b57..7565780eb 100644 --- a/lib/resource/finnish/MorphoFin.gf +++ b/lib/resource/finnish/MorphoFin.gf @@ -1355,7 +1355,9 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn -> in {s = table { Imper Sg => "älä" ; - Impf n p | Cond n p => ei.s ! Pres n p ; +-- Impf n p | Cond n p => ei.s ! Pres n p ; + Impf n p => ei.s ! Pres n p ; + Cond n p => ei.s ! Pres n p ; v => ei.s ! v } } ; diff --git a/src/GF/Compile/CheckGrammar.hs b/src/GF/Compile/CheckGrammar.hs index 33db87e37..c55873409 100644 --- a/src/GF/Compile/CheckGrammar.hs +++ b/src/GF/Compile/CheckGrammar.hs @@ -515,11 +515,17 @@ inferLType gr trm = case trm of PSeq p q -> isConstPatt p && isConstPatt q PAlt p q -> isConstPatt p && isConstPatt q PRep p -> isConstPatt p + PNeg p -> isConstPatt p PAs _ p -> isConstPatt p _ -> False inferPatt p = case p of PP q c ps | q /= cPredef -> checkErr $ lookupResType gr q c >>= valTypeCnc + PAs _ p -> inferPatt p + PNeg p -> inferPatt p + PAlt p q -> checks [inferPatt p, inferPatt q] + PSeq _ _ -> return $ typeTok + PRep _ -> return $ typeTok _ -> infer (patt2term p) >>= return . snd checkLType :: SourceGrammar -> Term -> Type -> Check (Term, Type) @@ -700,6 +706,7 @@ pattContext env typ p = case p of g2 <- pattContext env typ q return $ g1 ++ g2 PRep p -> pattContext env typeStr p + PNeg p -> pattContext env typeStr p _ -> return [] ---- check types! where diff --git a/src/GF/Compile/Rename.hs b/src/GF/Compile/Rename.hs index 61f26b89e..ecabf03b1 100644 --- a/src/GF/Compile/Rename.hs +++ b/src/GF/Compile/Rename.hs @@ -255,6 +255,10 @@ renamePattern env patt = case patt of (p',vs) <- renp p return (PRep p', vs) + PNeg p -> do + (p',vs) <- renp p + return (PNeg p', vs) + PAs x p -> do (p',vs) <- renp p return (PAs x p', x:vs) diff --git a/src/GF/Grammar/AppPredefined.hs b/src/GF/Grammar/AppPredefined.hs index 442328eb4..c8710f32d 100644 --- a/src/GF/Grammar/AppPredefined.hs +++ b/src/GF/Grammar/AppPredefined.hs @@ -35,7 +35,6 @@ typPredefined c@(IC f) = case f of "PBool" -> return typePType "PFalse" -> return $ cnPredef "PBool" "PTrue" -> return $ cnPredef "PBool" - "CC" -> return $ mkFunType [typeTok,typeTok] typeTok "dp" -> return $ mkFunType [cnPredef "Int",typeTok] typeTok "drop" -> return $ mkFunType [cnPredef "Int",typeTok] typeTok "eqInt" -> return $ mkFunType [cnPredef "Int",cnPredef "Int"] (cnPredef "PBool") @@ -74,7 +73,6 @@ appPredefined t = case t of App (Q (IC "Predef") (IC f)) z0 -> do (z,_) <- appPredefined z0 case (f, norm z, norm x) of - ("CC", K r, K s) -> retb $ K (r ++ s) ("drop", EInt i, K s) -> retb $ K (drop (fi i) s) ("take", EInt i, K s) -> retb $ K (take (fi i) s) ("tk", EInt i, K s) -> retb $ K (take (max 0 (length s - fi i)) s) diff --git a/src/GF/Grammar/Compute.hs b/src/GF/Grammar/Compute.hs index a25f6f98f..4adc38ce6 100644 --- a/src/GF/Grammar/Compute.hs +++ b/src/GF/Grammar/Compute.hs @@ -310,6 +310,7 @@ computeTermOpt rec gr = comp where PSeq p q -> concatMap contP [p,q] PAlt p q -> concatMap contP [p,q] PRep p -> contP p + PNeg p -> contP p _ -> [] diff --git a/src/GF/Grammar/Grammar.hs b/src/GF/Grammar/Grammar.hs index 7be13a0d9..47970c882 100644 --- a/src/GF/Grammar/Grammar.hs +++ b/src/GF/Grammar/Grammar.hs @@ -175,9 +175,10 @@ data Patt = | PAs Ident Patt -- ^ as-pattern: x@p -- regular expression patterns + | PNeg Patt -- ^ negated pattern: -p | PAlt Patt Patt -- ^ disjunctive pattern: p1 | p2 - | PSeq Patt Patt -- ^ sequence of token parts - | PRep Patt -- ^ repetition of token part + | PSeq Patt Patt -- ^ sequence of token parts: p + q + | PRep Patt -- ^ repetition of token part: p* deriving (Read, Show, Eq, Ord) diff --git a/src/GF/Grammar/Macros.hs b/src/GF/Grammar/Macros.hs index bc394b143..8261f7f36 100644 --- a/src/GF/Grammar/Macros.hs +++ b/src/GF/Grammar/Macros.hs @@ -509,6 +509,9 @@ term2patt trm = case termForm trm of Ok ([], Cn (IC "@"), [Vr a,b]) -> do b' <- term2patt b return (PAs a b') + Ok ([], Cn (IC "-"), [a]) -> do + a' <- term2patt a + return (PNeg a') Ok ([], Cn (IC "*"), [a]) -> do a' <- term2patt a return (PRep a') @@ -540,6 +543,7 @@ patt2term pt = case pt of PSeq a b -> appc "+" [(patt2term a), (patt2term b)] --- an encoding PAlt a b -> appc "|" [(patt2term a), (patt2term b)] --- an encoding PRep a -> appc "*" [(patt2term a)] --- an encoding + PNeg a -> appc "-" [(patt2term a)] --- an encoding redirectTerm :: Ident -> Term -> Term diff --git a/src/GF/Grammar/PatternMatch.hs b/src/GF/Grammar/PatternMatch.hs index 4e3feb5dc..f850981f0 100644 --- a/src/GF/Grammar/PatternMatch.hs +++ b/src/GF/Grammar/PatternMatch.hs @@ -95,6 +95,10 @@ tryMatch (p,t) = do (PAlt p1 p2,_) -> checks [trym p1 t', trym p2 t'] + (PNeg p',_) -> case tryMatch (p',t) of + Bad _ -> return [] + _ -> prtBad "no match with negative pattern" p + (PSeq p1 p2, ([],K s, [])) -> do let cuts = [splitAt n s | n <- [0 .. length s]] matches <- checks [mapM tryMatch [(p1,K s1),(p2,K s2)] | (s1,s2) <- cuts] diff --git a/src/GF/Grammar/Refresh.hs b/src/GF/Grammar/Refresh.hs index 045fccfc0..8be951215 100644 --- a/src/GF/Grammar/Refresh.hs +++ b/src/GF/Grammar/Refresh.hs @@ -77,6 +77,7 @@ refreshPatt p = case p of PSeq p' q' -> liftM2 PSeq (refreshPatt p') (refreshPatt q') PAlt p' q' -> liftM2 PAlt (refreshPatt p') (refreshPatt q') PRep p' -> liftM PRep (refreshPatt p') + PNeg p' -> liftM PNeg (refreshPatt p') _ -> return p diff --git a/src/GF/Source/AbsGF.hs b/src/GF/Source/AbsGF.hs index 503a0ac97..1ffba4267 100644 --- a/src/GF/Source/AbsGF.hs +++ b/src/GF/Source/AbsGF.hs @@ -224,6 +224,7 @@ data Patt = | PSeq Patt Patt | PRep Patt | PAs Ident Patt + | PNeg Patt deriving (Eq,Ord,Show) data PattAss = diff --git a/src/GF/Source/GF.cf b/src/GF/Source/GF.cf index a84d37d5b..fc68164a9 100644 --- a/src/GF/Source/GF.cf +++ b/src/GF/Source/GF.cf @@ -225,6 +225,7 @@ PDisj. Patt ::= Patt "|" Patt1 ; PSeq. Patt ::= Patt "+" Patt1 ; PRep. Patt1 ::= Patt2 "*" ; PAs. Patt1 ::= Ident "@" Patt2 ; +PNeg. Patt1 ::= "-" Patt2 ; coercions Patt 2 ; diff --git a/src/GF/Source/GrammarToSource.hs b/src/GF/Source/GrammarToSource.hs index 3303a6487..526a29f4c 100644 --- a/src/GF/Source/GrammarToSource.hs +++ b/src/GF/Source/GrammarToSource.hs @@ -202,6 +202,7 @@ trp p = case p of PAlt p q -> P.PDisj (trp p) (trp q) PSeq p q -> P.PSeq (trp p) (trp q) PRep p -> P.PRep (trp p) + PNeg p -> P.PNeg (trp p) trAssign (lab, (mty, t)) = maybe (P.LDDef x t') (\ty -> P.LDFull x (trt ty) t') mty diff --git a/src/GF/Source/ParGF.hs b/src/GF/Source/ParGF.hs index 8f6f1f330..ebb017d90 100644 --- a/src/GF/Source/ParGF.hs +++ b/src/GF/Source/ParGF.hs @@ -526,21 +526,21 @@ happyOutTok x = unsafeCoerce# x {-# INLINE happyOutTok #-} happyActOffsets :: HappyAddr -happyActOffsets = HappyA# "\x00\x00\x0f\x00\xfb\x04\x48\x01\xdc\x04\x00\x00\x13\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x05\xb2\x01\x9f\x00\x0e\x05\xd1\x04\xfd\x04\x00\x00\x0b\x05\xc6\x04\x5e\x00\x44\x00\xc6\x04\x00\x00\x48\x01\xd8\x00\xc6\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x01\x00\x00\x0c\x05\xb2\x02\x16\x00\x0a\x05\x09\x05\x99\x02\x08\x05\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x04\x00\x00\xc8\x00\x0e\x00\xfe\x04\xad\x04\x00\x00\xa6\x04\x47\x01\xf6\x04\xf4\x04\xf3\x04\xa8\x04\xa8\x04\xa8\x04\xa8\x04\xa8\x04\xa8\x04\x00\x00\xc8\x00\x00\x00\xef\x04\x00\x00\xc8\x00\xc8\x00\xc8\x00\x86\x07\x48\x01\x00\x00\xdd\x01\x73\x00\xfa\x00\xa7\x04\xac\x00\xac\x00\xe7\x04\x2f\x00\xeb\x04\xb0\x04\x91\x04\x0a\x00\x73\x00\xa4\x04\x00\x00\x00\x00\xd0\x04\xd3\x04\xfb\xff\x00\x00\xd2\x04\xce\x04\xc3\x04\x85\x02\x80\x02\xc5\x04\x00\x00\x3e\x03\xcf\x04\xbb\x04\x4b\x02\x41\x02\xbf\x04\xac\x00\x7d\x01\xac\x00\x7d\x01\x7d\x01\x7d\x01\xac\x00\xbe\x04\xb1\x04\x09\x00\x32\x02\x00\x00\x72\x04\x00\x00\x00\x00\x6f\x04\x71\x04\x00\x00\x19\x02\x19\x02\x19\x02\x00\x00\x19\x02\x4e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x71\x04\x71\x04\xb4\x04\xac\x00\x00\x00\x00\x00\xe4\x01\xa9\x04\x6d\x04\x00\x00\x00\x00\xac\x00\xac\x00\x8c\x04\xac\x00\xfb\xff\xa1\x04\x95\x04\x00\x00\x00\x00\x00\x00\x73\x00\x9a\x04\xa0\x04\x9b\x04\x52\x04\x73\x00\x73\x00\x00\x00\x00\x00\x99\x04\xac\x00\x50\x04\xac\x00\xac\x00\x8b\x04\x87\x04\x86\x04\x77\x04\x00\x03\x70\x04\x00\x00\xdd\x00\x84\x04\x7f\x04\x73\x00\xac\x00\x7e\x04\x00\x00\x94\x00\x35\x04\x8c\x00\x35\x04\x35\x04\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x35\x04\x35\x04\x8c\x00\xbb\x00\x35\x04\x8c\x00\x8c\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x67\x04\x00\x00\x00\x00\x48\x04\x37\x04\x00\x00\xfc\xff\x64\x04\x42\x04\x37\x00\x00\x00\x2c\x04\x5b\x04\x4a\x04\x07\x04\x07\x04\x07\x04\x07\x04\x27\x00\x00\x00\x00\x00\x51\x04\x00\x00\x03\x01\x20\x00\xfc\x03\x00\x00\x45\x04\x36\x04\x00\x00\x2e\x04\x2f\x04\x8c\x00\x8c\x00\x00\x00\x2d\x04\x1a\x04\x00\x00\x2a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x04\x00\x00\x11\x04\x17\x04\x16\x04\x00\x00\x00\x00\x4c\x01\x14\x04\x00\x00\x00\x00\x00\x00\xfd\x03\x00\x00\xb1\x03\x00\x00\xf0\x03\xb5\x00\xef\x03\x00\x00\x73\x00\x73\x00\x73\x00\xac\x00\x00\x00\x00\x00\x99\x03\x73\x00\x00\x00\xac\x00\xac\x00\xe2\x03\x00\x00\x00\x00\x00\x00\xcd\x03\x25\x01\xd9\x03\xc7\x03\x89\x00\x22\x02\xd7\x03\xd6\x03\xc5\x03\x00\x00\x73\x00\xac\x00\x00\x00\x8a\x03\x73\x00\x00\x00\x00\x00\xac\x00\xb5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x03\x00\x00\xc3\x03\x00\x00\xbd\x03\x00\x00\xae\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x03\x00\x00\x00\x00\x00\x00\x00\x00\x68\x03\x73\x00\x00\x00\x00\x00\x00\x00\x73\x00\xac\x00\xac\x00\x94\x03\xae\x03\xa2\x03\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\xcb\x01\x64\x03\x64\x03\x64\x03\x64\x03\xac\x00\x64\x03\xab\x03\x60\x03\x26\x00\x00\x00\x00\x00\xac\x00\x25\x00\x25\x00\x00\x00\x9c\x03\xac\x00\xac\x00\xa3\x03\x25\x00\x00\x00\x98\x03\x95\x01\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x53\x03\x53\x03\x8b\x03\xfd\xff\x41\x03\x7a\x03\xfd\xff\x7d\x03\x3b\x03\x00\x00\x74\x03\x31\x03\x67\x03\x4e\x03\x00\x00\x22\x03\x00\x00\x1e\x03\x00\x00\x00\x00\xfd\xff\x00\x00\xac\x00\x52\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x03\x00\x00\x39\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x03\x42\x03\x00\x00\x47\x03\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x18\x00\x00\x00\x00\x00\xac\x00\xac\x00\x00\x00\x00\x00\x00\x00\x25\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x03\x34\x03\xe9\x02\xe9\x02\x6d\x03\xe9\x02\xe9\x02\xcb\x01\xac\x00\x00\x00\x00\x00\xf0\x00\xfd\xff\x4c\x03\x00\x00\x00\x00\x21\x03\xfd\xff\x26\x03\xcc\x02\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x02\x00\x00\x00\x00\x00\x00\x0f\x03\x12\x03\x00\x00\x00\x00\xac\x00\xc4\x02\x08\x03\x0a\x03\x00\x00\x00\x00\x07\x03\x09\x03\xfc\x02\xf7\x02\x00\x00\xaa\x02\xaa\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x02\x00\x00\xb6\x02\xf3\xff\xfd\xff\xfd\xff\xf1\x02\xef\x02\x00\x00\x00\x00\x00\x00"# +happyActOffsets = HappyA# "\x00\x00\x0f\x00\x0b\x05\x48\x01\xe1\x04\x00\x00\x17\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x05\xb2\x01\x9f\x00\x11\x05\xd6\x04\x0e\x05\x00\x00\x22\x05\xdb\x04\x5e\x00\x44\x00\xdb\x04\x00\x00\x48\x01\x8a\x00\xdb\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x01\x00\x00\x21\x05\xb2\x02\x16\x00\x20\x05\x1f\x05\x99\x02\x1d\x05\x00\x00\x00\x00\x00\x00\x00\x00\xcd\x04\x00\x00\x09\x01\x0e\x00\xa8\x04\xc5\x04\x00\x00\xc0\x04\x86\x01\x0f\x05\x0d\x05\x0c\x05\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\x04\xbf\x04\x00\x00\x09\x01\x00\x00\x08\x05\x00\x00\x09\x01\x09\x01\x09\x01\xad\x07\x48\x01\x00\x00\x23\x02\xe5\x00\xfa\x00\xbc\x04\xac\x00\xac\x00\xfd\x04\x2f\x00\x02\x05\xc6\x04\xa9\x04\x3c\x00\x73\x00\xbb\x04\x00\x00\x00\x00\xe8\x04\xe5\x04\xfb\xff\x00\x00\xea\x04\xe6\x04\xd9\x04\xcb\x02\x80\x02\xdf\x04\x00\x00\x01\x03\xe2\x04\xd1\x04\x4b\x02\x93\x03\xd7\x04\xac\x00\x7d\x01\xac\x00\x7d\x01\x7d\x01\x7d\x01\xac\x00\xd4\x04\xc8\x04\x09\x00\x32\x02\x00\x00\x89\x04\x00\x00\x00\x00\x87\x04\x86\x04\x00\x00\x19\x02\x19\x02\x19\x02\x00\x00\x19\x02\xc1\x02\x00\x00\x00\x00\x00\x00\x00\x00\x86\x04\x86\x04\xca\x04\xac\x00\x00\x00\x00\x00\xe4\x01\xc1\x04\x85\x04\x00\x00\x00\x00\xac\x00\xac\x00\xa4\x04\xac\x00\xfb\xff\xba\x04\xad\x04\x00\x00\x00\x00\x00\x00\x73\x00\xb4\x04\xb9\x04\xb5\x04\x6b\x04\xe5\x00\xe5\x00\x00\x00\x00\x00\xb2\x04\xac\x00\x69\x04\xac\x00\xac\x00\xb3\x04\xa1\x04\xa0\x04\x91\x04\x00\x03\x8a\x04\x00\x00\x20\x03\x9e\x04\x99\x04\x73\x00\xe5\x00\xac\x00\x97\x04\x00\x00\x89\x00\x4e\x04\x6a\x00\x4e\x04\x4e\x04\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x6a\x00\x4e\x04\x4e\x04\x6a\x00\xbb\x00\x4e\x04\x6a\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x09\x01\x00\x00\x92\x04\x00\x00\x00\x00\x66\x04\x60\x04\x00\x00\xfc\xff\x84\x04\x62\x04\x37\x00\x00\x00\x43\x04\x63\x04\x61\x04\x1e\x04\x1e\x04\x1e\x04\x1e\x04\x27\x00\x00\x00\x00\x00\x5f\x04\x00\x00\x03\x01\x20\x00\x12\x04\x00\x00\x4f\x04\x32\x04\x00\x00\x45\x04\x47\x04\x6a\x00\x6a\x00\x00\x00\x40\x04\x31\x04\x00\x00\x2f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2e\x04\x00\x00\x29\x04\x2b\x04\x16\x04\x00\x00\x00\x00\x42\x01\x15\x04\x00\x00\x00\x00\x00\x00\x13\x04\x00\x00\xc9\x03\x00\x00\x07\x04\xb5\x00\xf9\x03\x00\x00\x00\x00\x97\x00\x97\x00\x97\x00\xac\x00\x00\x00\x00\x00\xbf\x03\x73\x00\x00\x00\xac\x00\xac\x00\xfa\x03\x00\x00\x00\x00\x00\x00\xcd\x03\x83\x01\xe8\x03\xdc\x03\xd1\x01\xda\x01\xef\x03\xed\x03\xdd\x03\x00\x00\x73\x00\xac\x00\x00\x00\x94\x03\x97\x00\x00\x00\x00\x00\xac\x00\xcc\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x03\x00\x00\xd5\x03\x00\x00\xcf\x03\x00\x00\xae\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x7d\x03\x97\x00\x00\x00\x00\x00\x00\x00\x97\x00\xac\x00\xac\x00\xab\x03\xc6\x03\xc2\x03\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\xcb\x01\x78\x03\x78\x03\x78\x03\x78\x03\xac\x00\x78\x03\xbd\x03\x72\x03\x26\x00\x00\x00\x00\x00\xac\x00\x25\x00\x25\x00\x00\x00\xb1\x03\xac\x00\xac\x00\xb6\x03\x25\x00\x00\x00\xa2\x03\x75\x02\x00\x00\x00\x00\x56\x02\x00\x00\x00\x00\x60\x03\x60\x03\xa6\x03\xfd\xff\x5c\x03\x9a\x03\xfd\xff\xa0\x03\x53\x03\x00\x00\x8c\x03\x45\x03\x8d\x03\x62\x03\x00\x00\x44\x03\x00\x00\x41\x03\x00\x00\x00\x00\xfd\xff\x00\x00\xac\x00\x8a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x03\x00\x00\x51\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x03\x6d\x03\x00\x00\x79\x03\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x18\x00\x00\x00\x00\x00\xac\x00\xac\x00\x00\x00\x00\x00\x00\x00\x83\x01\x00\x00\x00\x00\x00\x00\x00\x00\x73\x03\x66\x03\x17\x03\x17\x03\x85\x03\x17\x03\x17\x03\xcb\x01\xac\x00\x00\x00\x00\x00\x5a\x01\xfd\xff\x5e\x03\x00\x00\x00\x00\x55\x03\xfd\xff\x5f\x03\x13\x03\x00\x00\x00\x00\x00\x00\x00\x00\x13\x03\x00\x00\x00\x00\x00\x00\x43\x03\x47\x03\x00\x00\x00\x00\xac\x00\xf9\x02\x3a\x03\x33\x03\x00\x00\x00\x00\x32\x03\x34\x03\x31\x03\x29\x03\x00\x00\xc0\x02\xc0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x03\x00\x00\xb7\x02\xf3\xff\xfd\xff\xfd\xff\x07\x03\xf5\x02\x00\x00\x00\x00\x00\x00"# happyGotoOffsets :: HappyAddr -happyGotoOffsets = HappyA# "\x89\x02\x76\x01\x20\x02\xf1\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x04\xb6\x03\x7c\x01\xee\x02\x00\x00\x28\x03\x46\x00\xeb\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x06\x00\x00\x00\x00\x69\x04\xa5\x04\x00\x00\x00\x00\x32\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x02\x04\x00\x00\x00\xce\x02\xd9\x02\x00\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x00\x00\xd7\x02\xd6\x02\xcb\x02\xc8\x02\xc7\x02\xbf\x02\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x08\x00\x07\x00\xad\x02\x25\x04\x00\x00\x00\x00\x1c\x03\xba\x06\xb4\x02\x09\x04\x9e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x89\x04\xb0\x02\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x04\x00\x00\x00\x00\x83\x06\x0c\x07\x67\x06\x2a\x07\x1b\x07\x0e\x02\x4c\x06\x00\x00\x00\x00\x2d\x00\xf8\x01\x00\x00\xff\x03\x00\x00\x00\x00\xb5\x02\x90\x01\x00\x00\x2e\x01\x2e\x01\x2e\x01\x00\x00\x2e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\xb3\x02\x00\x00\x30\x06\x00\x00\x00\x00\xc2\x03\x00\x00\xb1\x02\x00\x00\x00\x00\x46\x02\x15\x06\x00\x00\xf9\x05\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x03\x00\x00\x00\x00\x00\x00\x21\x01\x10\x04\x3f\x01\x00\x00\x00\x00\x00\x00\xde\x05\x85\x01\xc2\x05\xa7\x05\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x01\xed\x03\x00\x00\x00\x00\x0b\x02\x80\x07\x7d\x07\x33\x01\x19\x03\x77\x07\x6a\x07\x67\x07\x64\x07\x61\x07\xa7\x02\x92\x01\x55\x07\x4e\x07\xa6\x02\x48\x07\x31\x07\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x04\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x01\x00\x00\x00\x00\xa5\x02\xfd\x01\x96\x02\x94\x02\xa3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x06\x03\x00\x00\x6f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x07\x63\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x02\x00\x00\x00\x00\x2e\x02\x00\x00\x00\x00\x1f\x02\x00\x00\x00\x00\x29\x01\xbc\x03\xac\x01\x8b\x05\x00\x00\x00\x00\x27\x02\x5f\x03\x00\x00\xd1\x03\xf0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x70\x05\x00\x00\xf2\x01\x32\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x40\x03\x00\x00\x00\x00\x00\x00\xa3\x00\x39\x05\x1d\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x01\x09\x02\x11\x00\x8d\x00\x89\x01\xee\x00\xd9\x01\x02\x05\x62\x02\x00\x00\x1e\x00\x45\x01\x00\x00\x00\x00\xe6\x04\x0e\x01\x9d\x02\x00\x00\x00\x00\xcb\x04\xaf\x04\x00\x00\xc0\x02\x00\x00\x00\x00\x8c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x01\x83\x01\x00\x00\x75\x02\xb0\x00\x00\x00\x61\x02\x00\x00\x5b\x01\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x84\x01\x00\x00\x00\x00\x54\x01\x00\x00\x00\x00\x44\x01\x00\x00\x94\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x03\x00\x00\x11\x00\x00\x00\x00\x00\xac\x02\x78\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x01\xe2\x00\xab\x00\xb2\x00\x74\x00\x11\x00\x5d\x04\x00\x00\x00\x00\x00\x00\x4d\x02\x71\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x0d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x04\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\x01\x9a\x01\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\xed\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyGotoOffsets = HappyA# "\x1e\x01\xc4\x02\xde\x00\x09\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x03\xce\x03\x3e\x02\xfa\x02\x00\x00\x3f\x03\x46\x00\xf7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\x06\x00\x00\x00\x00\x81\x04\xdf\x01\x00\x00\x00\x00\x4a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x02\x04\x00\x00\x00\xe8\x02\xed\x02\x00\x00\x00\x00\xd9\x00\x00\x00\x00\x00\x00\x00\xec\x02\xeb\x02\xe3\x02\xc9\x02\xb6\x02\x7d\x02\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x08\x00\x07\x00\x7c\x02\x3d\x04\x00\x00\x00\x00\x1c\x03\xd2\x06\x72\x02\x21\x04\xb6\x06\x00\x00\x00\x00\x00\x00\x00\x00\x90\x01\x73\x02\x3f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x65\x04\x00\x00\x00\x00\x9b\x06\x24\x07\x7f\x06\x42\x07\x33\x07\x46\x02\x64\x06\x00\x00\x00\x00\x2d\x00\xf8\x01\x00\x00\x56\x01\x00\x00\x00\x00\x22\x02\x4e\x01\x00\x00\x50\x03\x50\x03\x50\x03\x00\x00\x50\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x01\x64\x02\x00\x00\x48\x06\x00\x00\x00\x00\xda\x03\x00\x00\x45\x02\x00\x00\x00\x00\x28\x03\x2d\x06\x00\x00\x11\x06\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x03\x00\x00\x00\x00\x00\x00\xd3\x00\x44\x04\x79\x02\x00\x00\x00\x00\x00\x00\xf6\x05\x30\x01\xda\x05\xbf\x05\x00\x00\x00\x00\x00\x00\x00\x00\x67\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x02\xa8\x01\x05\x04\x00\x00\x00\x00\x70\x02\xa9\x07\x9f\x07\x74\x02\x4b\x07\x92\x07\x8e\x07\x85\x07\x81\x07\x79\x07\x3f\x02\x7a\x01\x75\x07\x6e\x07\x27\x02\x67\x07\x18\x03\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x04\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x02\x00\x00\x00\x00\x11\x02\xb1\x02\x08\x02\xfd\x01\x93\x02\x00\x00\x00\x00\x00\x00\x00\x00\x86\x02\x00\x00\xf7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x07\x40\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x01\x00\x00\x00\x00\xd9\x01\x00\x00\x00\x00\x1f\x02\x00\x00\x00\x00\x00\x00\x29\x01\xd4\x03\xac\x01\xa3\x05\x00\x00\x00\x00\xb9\x01\xdb\x00\x00\x00\xe9\x03\xf0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x88\x05\x00\x00\xa7\x01\x32\x00\x00\x00\x00\x00\x6c\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x00\x28\x04\x00\x00\x00\x00\x00\x00\x12\x02\x51\x05\x35\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x01\xd2\x00\x11\x00\x09\x02\xf2\x01\xa6\x01\xa4\x01\x1a\x05\xee\x02\x00\x00\x1e\x00\x54\x01\x00\x00\x00\x00\xfe\x04\xf4\x00\x31\x07\x00\x00\x00\x00\xe3\x04\xc7\x04\x00\x00\xe4\x02\x00\x00\x00\x00\x6e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x02\xa3\x01\x00\x00\x5e\x02\x10\x01\x00\x00\x4f\x02\x00\x00\x6c\x01\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x68\x01\x00\x00\x00\x00\x5d\x01\x00\x00\x00\x00\x27\x01\x00\x00\xac\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\xff\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x03\x00\x00\x11\x00\x00\x00\x00\x00\xac\x02\x90\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x01\xf1\x00\xf0\x00\xee\x00\x45\x01\x11\x00\x75\x04\x00\x00\x00\x00\x00\x00\xb4\x01\xc0\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x59\x04\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\xaf\x00\x00\x00\x00\x00\x00\x00\x93\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# happyDefActions :: HappyAddr -happyDefActions = HappyA# "\xf5\xff\xd0\xff\x0a\xff\x00\x00\x00\x00\xfb\xff\x80\xff\x7b\xff\x7c\xff\x7a\xff\x6f\xff\x6b\xff\x61\xff\x5c\xff\x4e\xff\x4f\xff\x00\x00\x5a\xff\x7d\xff\x00\x00\x83\xff\x27\xff\x00\x00\x00\x00\x79\xff\x20\xff\x27\xff\x00\x00\x32\xff\x30\xff\x2f\xff\x31\xff\x33\xff\x00\x00\x77\xff\x00\x00\x00\x00\x83\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xf9\xff\xf8\xff\xf7\xff\x00\x00\xdc\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\x00\x00\xd0\xff\xf4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\x07\xff\x08\xff\x00\x00\x09\xff\x00\x00\x00\x00\x00\x00\x0b\xff\x4d\xff\x80\xff\x00\x00\x83\xff\x00\x00\x00\x00\x4d\xff\x00\x00\x8c\xff\x00\x00\x82\xff\x00\x00\x83\xff\x00\x00\x16\xff\x00\x00\x60\xff\x29\xff\x26\xff\x00\x00\x27\xff\x28\xff\x22\xff\x1f\xff\x00\x00\x00\x00\x4a\xff\x00\x00\x78\xff\x80\xff\x00\x00\x00\x00\x00\x00\x8c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xff\x00\x00\x00\x00\x62\xff\x83\xff\x35\xff\x6e\xff\x00\x00\x83\xff\x55\xff\x5e\xff\x5f\xff\x5d\xff\x59\xff\x5c\xff\x4e\xff\x5b\xff\x56\xff\x74\xff\x7f\xff\x00\x00\x00\x00\x80\xff\x00\x00\x70\xff\x75\xff\x4a\xff\x00\x00\x00\x00\x7e\xff\x73\xff\x20\xff\x00\x00\x00\x00\x00\x00\x27\xff\x00\x00\x47\xff\x44\xff\x42\xff\x43\xff\x2b\xff\x00\x00\x15\xff\x00\x00\x2e\xff\x00\x00\x1d\xff\x48\xff\x50\xff\x00\x00\x00\x00\x83\xff\x00\x00\x00\x00\x00\x00\x4c\xff\x00\x00\x00\x00\x8c\xff\x3a\xff\x37\xff\x00\x00\x19\xff\x00\x00\x00\x00\x4d\xff\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xff\x05\xff\x04\xff\x02\xff\x03\xff\x00\x00\xe6\xff\xe5\xff\x00\x00\x00\x00\xe7\xff\xd9\xff\x00\x00\x00\x00\xc8\xff\xf1\xff\xd5\xff\x00\x00\xca\xff\x00\x00\xcb\xff\x00\x00\x00\x00\x00\x00\x01\xff\x8a\xff\x00\x00\xaf\xff\x88\xff\x00\x00\x00\x00\xbc\xff\x00\x00\x00\x00\xb3\xff\x88\xff\x00\x00\x00\x00\x00\x00\xb1\xff\xa1\xff\x00\x00\xbb\xff\x00\x00\xba\xff\xb2\xff\xb8\xff\xb9\xff\xb7\xff\x00\x00\xc0\xff\x00\x00\x00\x00\x00\x00\xb4\xff\xbe\xff\x8c\xff\x00\x00\xbf\xff\xbd\xff\x0d\xff\x00\x00\xc1\xff\x00\x00\x65\xff\x00\x00\x47\xff\x00\x00\x69\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xff\x3e\xff\x00\x00\x00\x00\x63\xff\x4d\xff\x12\xff\x86\xff\x85\xff\x81\xff\x53\xff\x00\x00\x21\xff\x1c\xff\x00\x00\x00\x00\x8c\xff\x00\x00\x2d\xff\x00\x00\x51\xff\x16\xff\x00\x00\x2a\xff\x00\x00\x00\x00\x25\xff\x58\xff\x00\x00\x00\x00\x22\xff\x1e\xff\x6c\xff\x76\xff\x49\xff\x00\x00\x72\xff\x00\x00\x8b\xff\x00\x00\x34\xff\x8c\xff\x52\xff\x6d\xff\x24\xff\x71\xff\x57\xff\x00\x00\x45\xff\x17\xff\x14\xff\x41\xff\x2e\xff\x00\x00\x46\xff\x3f\xff\x40\xff\x1d\xff\x00\x00\x00\x00\x00\x00\x11\xff\x00\x00\x4b\xff\x3b\xff\x45\xff\x1a\xff\x38\xff\x39\xff\x18\xff\x68\xff\x67\xff\x0d\xff\x9b\xff\xad\xff\x97\xff\xa6\xff\x91\xff\x00\x00\x00\x00\x99\xff\x00\x00\x95\xff\x8f\xff\xb5\xff\xb6\xff\x00\x00\x00\x00\x93\xff\xae\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xd3\xff\x00\x00\xce\xff\xe3\xff\xe4\xff\xc8\xff\xdd\xff\xde\xff\xcb\xff\xda\xff\x00\x00\xd8\xff\x00\x00\x00\x00\xd8\xff\x00\x00\x00\x00\xe0\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xdc\xff\x00\x00\xc9\xff\x00\x00\xcd\xff\xcc\xff\x00\x00\x9c\xff\x00\x00\xc5\xff\xc4\xff\x89\xff\x92\xff\x87\xff\x9f\xff\x0d\xff\x8e\xff\xa3\xff\x00\x00\x94\xff\xdc\xff\x98\xff\xaa\xff\x9e\xff\x90\xff\xa8\xff\xa5\xff\xa9\xff\x00\x00\x96\xff\x0e\xff\x0c\xff\x27\xff\x9a\xff\x00\x00\x3d\xff\x64\xff\x12\xff\x00\x00\x84\xff\x54\xff\x1b\xff\x36\xff\x2c\xff\x66\xff\x13\xff\x10\xff\xac\xff\x00\x00\xa6\xff\x00\x00\x00\x00\x00\x00\x8f\xff\xa0\xff\x00\x00\xc3\xff\xe2\xff\x00\x00\xd8\xff\x00\x00\xd4\xff\xc7\xff\x00\x00\xd8\xff\x00\x00\xef\xff\xd6\xff\xc6\xff\xe1\xff\xdf\xff\x00\x00\xd2\xff\xc2\xff\x8d\xff\x00\x00\x00\x00\xa7\xff\xa4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xff\xa2\xff\x00\x00\x00\x00\xee\xff\x00\x00\xf2\xff\xef\xff\x00\x00\xd1\xff\x0f\xff\xab\xff\xeb\xff\xf0\xff\xed\xff\xec\xff\xea\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xff\xe8\xff"# +happyDefActions = HappyA# "\xf5\xff\xd0\xff\x09\xff\x00\x00\x00\x00\xfb\xff\x80\xff\x7b\xff\x7c\xff\x7a\xff\x6f\xff\x6b\xff\x61\xff\x5c\xff\x4e\xff\x4f\xff\x00\x00\x5a\xff\x7d\xff\x00\x00\x83\xff\x26\xff\x00\x00\x00\x00\x79\xff\x1f\xff\x26\xff\x00\x00\x31\xff\x2f\xff\x2e\xff\x30\xff\x32\xff\x00\x00\x77\xff\x00\x00\x00\x00\x83\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xf9\xff\xf8\xff\xf7\xff\x00\x00\xdc\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\x00\x00\xd0\xff\xf4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\x06\xff\x07\xff\x00\x00\x08\xff\x00\x00\x00\x00\x00\x00\x0a\xff\x4d\xff\x80\xff\x00\x00\x83\xff\x00\x00\x00\x00\x4d\xff\x00\x00\x8c\xff\x00\x00\x82\xff\x00\x00\x83\xff\x00\x00\x15\xff\x00\x00\x60\xff\x28\xff\x25\xff\x00\x00\x26\xff\x27\xff\x21\xff\x1e\xff\x00\x00\x00\x00\x4a\xff\x00\x00\x78\xff\x80\xff\x00\x00\x00\x00\x00\x00\x8c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xff\x00\x00\x00\x00\x62\xff\x83\xff\x34\xff\x6e\xff\x00\x00\x83\xff\x55\xff\x5e\xff\x5f\xff\x5d\xff\x59\xff\x5c\xff\x4e\xff\x5b\xff\x56\xff\x74\xff\x7f\xff\x00\x00\x00\x00\x80\xff\x00\x00\x70\xff\x75\xff\x4a\xff\x00\x00\x00\x00\x7e\xff\x73\xff\x1f\xff\x00\x00\x00\x00\x00\x00\x26\xff\x00\x00\x47\xff\x44\xff\x42\xff\x43\xff\x2a\xff\x00\x00\x14\xff\x00\x00\x2d\xff\x00\x00\x1c\xff\x48\xff\x50\xff\x00\x00\x00\x00\x83\xff\x00\x00\x00\x00\x00\x00\x4c\xff\x00\x00\x00\x00\x8c\xff\x39\xff\x36\xff\x00\x00\x18\xff\x00\x00\x00\x00\x00\x00\x4d\xff\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\xff\x04\xff\x03\xff\x01\xff\x02\xff\x00\x00\xe6\xff\xe5\xff\x00\x00\x00\x00\xe7\xff\xd9\xff\x00\x00\x00\x00\xc8\xff\xf1\xff\xd5\xff\x00\x00\xca\xff\x00\x00\xcb\xff\x00\x00\x00\x00\x00\x00\x00\xff\x8a\xff\x00\x00\xaf\xff\x88\xff\x00\x00\x00\x00\xbc\xff\x00\x00\x00\x00\xb3\xff\x88\xff\x00\x00\x00\x00\x00\x00\xb1\xff\xa1\xff\x00\x00\xbb\xff\x00\x00\xba\xff\xb2\xff\xb8\xff\xb9\xff\xb7\xff\x00\x00\xc0\xff\x00\x00\x00\x00\x00\x00\xb4\xff\xbe\xff\x8c\xff\x00\x00\xbf\xff\xbd\xff\x0c\xff\x00\x00\xc1\xff\x00\x00\x65\xff\x00\x00\x47\xff\x00\x00\x3a\xff\x69\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xff\x3e\xff\x00\x00\x00\x00\x63\xff\x4d\xff\x11\xff\x86\xff\x85\xff\x81\xff\x53\xff\x00\x00\x20\xff\x1b\xff\x00\x00\x00\x00\x8c\xff\x00\x00\x2c\xff\x00\x00\x51\xff\x15\xff\x00\x00\x29\xff\x00\x00\x00\x00\x24\xff\x58\xff\x00\x00\x00\x00\x21\xff\x1d\xff\x6c\xff\x76\xff\x49\xff\x00\x00\x72\xff\x00\x00\x8b\xff\x00\x00\x33\xff\x8c\xff\x52\xff\x6d\xff\x23\xff\x71\xff\x57\xff\x00\x00\x45\xff\x16\xff\x13\xff\x41\xff\x2d\xff\x00\x00\x46\xff\x3f\xff\x40\xff\x1c\xff\x00\x00\x00\x00\x00\x00\x10\xff\x00\x00\x4b\xff\x3b\xff\x45\xff\x19\xff\x37\xff\x38\xff\x17\xff\x68\xff\x67\xff\x0c\xff\x9b\xff\xad\xff\x97\xff\xa6\xff\x91\xff\x00\x00\x00\x00\x99\xff\x00\x00\x95\xff\x8f\xff\xb5\xff\xb6\xff\x00\x00\x00\x00\x93\xff\xae\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xd3\xff\x00\x00\xce\xff\xe3\xff\xe4\xff\xc8\xff\xdd\xff\xde\xff\xcb\xff\xda\xff\x00\x00\xd8\xff\x00\x00\x00\x00\xd8\xff\x00\x00\x00\x00\xe0\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xdc\xff\x00\x00\xc9\xff\x00\x00\xcd\xff\xcc\xff\x00\x00\x9c\xff\x00\x00\xc5\xff\xc4\xff\x89\xff\x92\xff\x87\xff\x9f\xff\x0c\xff\x8e\xff\xa3\xff\x00\x00\x94\xff\xdc\xff\x98\xff\xaa\xff\x9e\xff\x90\xff\xa8\xff\xa5\xff\xa9\xff\x00\x00\x96\xff\x0d\xff\x0b\xff\x26\xff\x9a\xff\x00\x00\x3d\xff\x64\xff\x11\xff\x00\x00\x84\xff\x54\xff\x1a\xff\x35\xff\x2b\xff\x66\xff\x12\xff\x0f\xff\xac\xff\x00\x00\xa6\xff\x00\x00\x00\x00\x00\x00\x8f\xff\xa0\xff\x00\x00\xc3\xff\xe2\xff\x00\x00\xd8\xff\x00\x00\xd4\xff\xc7\xff\x00\x00\xd8\xff\x00\x00\xef\xff\xd6\xff\xc6\xff\xe1\xff\xdf\xff\x00\x00\xd2\xff\xc2\xff\x8d\xff\x00\x00\x00\x00\xa7\xff\xa4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xff\xa2\xff\x00\x00\x00\x00\xee\xff\x00\x00\xf2\xff\xef\xff\x00\x00\xd1\xff\x0e\xff\xab\xff\xeb\xff\xf0\xff\xed\xff\xec\xff\xea\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xff\xe8\xff"# happyCheck :: HappyAddr -happyCheck = HappyA# "\xff\xff\x00\x00\x05\x00\x02\x00\x00\x00\x09\x00\x02\x00\x00\x00\x00\x00\x02\x00\x02\x00\x00\x00\x00\x00\x02\x00\x02\x00\x01\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x1b\x00\x00\x00\x0e\x00\x03\x00\x00\x00\x03\x00\x00\x00\x05\x00\x00\x00\x00\x00\x0c\x00\x2e\x00\x02\x00\x0b\x00\x0c\x00\x1c\x00\x0b\x00\x07\x00\x10\x00\x11\x00\x12\x00\x05\x00\x05\x00\x00\x00\x3b\x00\x13\x00\x0b\x00\x02\x00\x00\x00\x01\x00\x02\x00\x03\x00\x07\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2d\x00\x1f\x00\x42\x00\x30\x00\x28\x00\x30\x00\x0b\x00\x47\x00\x0d\x00\x27\x00\x00\x00\x4c\x00\x4c\x00\x4c\x00\x2b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3e\x00\x0c\x00\x41\x00\x42\x00\x52\x00\x53\x00\x4c\x00\x52\x00\x53\x00\x4e\x00\x52\x00\x52\x00\x41\x00\x42\x00\x52\x00\x52\x00\x4e\x00\x52\x00\x03\x00\x4c\x00\x05\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x0b\x00\x3d\x00\x39\x00\x3a\x00\x3b\x00\x10\x00\x11\x00\x12\x00\x4c\x00\x4c\x00\x4c\x00\x00\x00\x0b\x00\x03\x00\x19\x00\x05\x00\x1b\x00\x48\x00\x49\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4b\x00\x25\x00\x39\x00\x12\x00\x28\x00\x41\x00\x42\x00\x2b\x00\x19\x00\x40\x00\x2e\x00\x00\x00\x1b\x00\x06\x00\x4c\x00\x33\x00\x4e\x00\x01\x00\x20\x00\x4a\x00\x4b\x00\x0b\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3f\x00\x2a\x00\x0b\x00\x17\x00\x43\x00\x44\x00\x00\x00\x01\x00\x02\x00\x03\x00\x49\x00\x09\x00\x1c\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x00\x00\x26\x00\x15\x00\x16\x00\x4c\x00\x0b\x00\x03\x00\x1a\x00\x05\x00\x07\x00\x10\x00\x11\x00\x12\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0e\x00\x19\x00\x19\x00\x0b\x00\x12\x00\x14\x00\x14\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1b\x00\x25\x00\x39\x00\x00\x00\x28\x00\x0d\x00\x0e\x00\x2b\x00\x4c\x00\x40\x00\x2e\x00\x2b\x00\x39\x00\x3a\x00\x3b\x00\x33\x00\x4c\x00\x26\x00\x00\x00\x4a\x00\x4b\x00\x1d\x00\x00\x00\x2c\x00\x45\x00\x4a\x00\x47\x00\x3f\x00\x0f\x00\x00\x00\x00\x00\x43\x00\x44\x00\x19\x00\x02\x00\x1b\x00\x17\x00\x49\x00\x06\x00\x1a\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x2b\x00\x05\x00\x13\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0b\x00\x03\x00\x4c\x00\x05\x00\x00\x00\x10\x00\x11\x00\x12\x00\x0a\x00\x00\x00\x3c\x00\x22\x00\x2b\x00\x3f\x00\x19\x00\x4c\x00\x12\x00\x4e\x00\x29\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1b\x00\x25\x00\x0f\x00\x00\x00\x28\x00\x4f\x00\x4c\x00\x2b\x00\x1d\x00\x1e\x00\x2e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x33\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3f\x00\x2c\x00\x2d\x00\x17\x00\x43\x00\x44\x00\x00\x00\x01\x00\x02\x00\x03\x00\x49\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x2b\x00\x05\x00\x02\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0b\x00\x00\x00\x22\x00\x0a\x00\x13\x00\x10\x00\x11\x00\x12\x00\x00\x00\x29\x00\x3c\x00\x30\x00\x31\x00\x3f\x00\x19\x00\x39\x00\x3a\x00\x3b\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3e\x00\x25\x00\x39\x00\x2a\x00\x28\x00\x48\x00\x49\x00\x2b\x00\x2d\x00\x40\x00\x2e\x00\x30\x00\x39\x00\x3a\x00\x3b\x00\x33\x00\x00\x00\x07\x00\x02\x00\x0b\x00\x03\x00\x0d\x00\x05\x00\x00\x00\x45\x00\x00\x00\x47\x00\x3f\x00\x0b\x00\x00\x00\x14\x00\x43\x00\x44\x00\x10\x00\x11\x00\x12\x00\x00\x00\x49\x00\x00\x00\x0f\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x52\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x15\x00\x25\x00\x00\x00\x0a\x00\x28\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x1f\x00\x04\x00\x2e\x00\x2f\x00\x03\x00\x13\x00\x05\x00\x0a\x00\x27\x00\x08\x00\x2b\x00\x3f\x00\x0b\x00\x2e\x00\x2f\x00\x43\x00\x44\x00\x10\x00\x11\x00\x12\x00\x30\x00\x49\x00\x32\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x08\x00\x09\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x16\x00\x17\x00\x03\x00\x39\x00\x3a\x00\x3b\x00\x12\x00\x39\x00\x3a\x00\x03\x00\x0b\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x48\x00\x49\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x11\x00\x00\x00\x13\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x16\x00\x17\x00\x08\x00\x09\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x4f\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1a\x00\x0b\x00\x1a\x00\x04\x00\x00\x00\x30\x00\x10\x00\x11\x00\x12\x00\x0a\x00\x24\x00\x00\x00\x24\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x30\x00\x31\x00\x32\x00\x28\x00\x10\x00\x11\x00\x12\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0a\x00\x3e\x00\x00\x00\x03\x00\x0e\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x09\x00\x39\x00\x4f\x00\x28\x00\x10\x00\x11\x00\x12\x00\x11\x00\x40\x00\x13\x00\x00\x00\x00\x00\x15\x00\x16\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x50\x00\x51\x00\x11\x00\x28\x00\x13\x00\x00\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x1b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x11\x00\x25\x00\x13\x00\x43\x00\x44\x00\x0b\x00\x46\x00\x2b\x00\x05\x00\x06\x00\x10\x00\x11\x00\x12\x00\x0e\x00\x00\x00\x10\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x00\x03\x00\x01\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x21\x00\x00\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x28\x00\x19\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x00\x00\x18\x00\x00\x00\x28\x00\x0d\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x23\x00\x0f\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x3e\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x06\x00\x4c\x00\x06\x00\x4c\x00\x4d\x00\x05\x00\x04\x00\x46\x00\x01\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x04\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x0a\x00\x02\x00\x04\x00\x06\x00\x0e\x00\x0f\x00\x06\x00\x4d\x00\x12\x00\x01\x00\x14\x00\x06\x00\x16\x00\x17\x00\x4c\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x01\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0c\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x1b\x00\x4c\x00\x03\x00\x00\x00\x01\x00\x02\x00\x03\x00\x07\x00\x4c\x00\x4d\x00\x25\x00\x39\x00\x00\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x07\x00\x40\x00\x2b\x00\x0a\x00\x02\x00\x2e\x00\x2f\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x04\x00\x0f\x00\x14\x00\x0e\x00\x02\x00\x39\x00\x3a\x00\x3b\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00\x48\x00\x49\x00\x3e\x00\x2e\x00\x39\x00\x0f\x00\x4c\x00\x43\x00\x44\x00\x4b\x00\x46\x00\x40\x00\x39\x00\x04\x00\x26\x00\x0c\x00\x28\x00\x29\x00\x2a\x00\x40\x00\x2c\x00\x39\x00\x3a\x00\x3b\x00\x2e\x00\x4c\x00\x0a\x00\x02\x00\x34\x00\x35\x00\x36\x00\x37\x00\x21\x00\x0b\x00\x3a\x00\x4c\x00\x3c\x00\x3d\x00\x3e\x00\x28\x00\x40\x00\x4c\x00\x03\x00\x2c\x00\x2d\x00\x45\x00\x46\x00\x26\x00\x48\x00\x28\x00\x29\x00\x2a\x00\x39\x00\x2c\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x08\x00\x34\x00\x35\x00\x36\x00\x37\x00\x02\x00\x04\x00\x3a\x00\x0c\x00\x3c\x00\x3d\x00\x3e\x00\x4c\x00\x40\x00\x03\x00\x01\x00\x4c\x00\x1d\x00\x45\x00\x46\x00\x4c\x00\x48\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x06\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x04\x00\x13\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x01\x00\x3e\x00\x02\x00\x13\x00\x41\x00\x42\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0a\x00\x02\x00\x4c\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x04\x00\x3e\x00\x39\x00\x3a\x00\x41\x00\x42\x00\x43\x00\x38\x00\x2e\x00\x0c\x00\x4c\x00\x01\x00\x00\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x01\x00\x38\x00\x01\x00\x07\x00\x02\x00\x01\x00\x01\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2b\x00\x3e\x00\x02\x00\x2e\x00\x2f\x00\x02\x00\x43\x00\x02\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x3e\x00\x4c\x00\x39\x00\x3a\x00\x3b\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x4c\x00\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x3e\x00\x09\x00\x39\x00\x24\x00\x03\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x07\x00\x38\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x31\x00\x3e\x00\x38\x00\x4c\x00\x04\x00\x04\x00\x43\x00\x01\x00\x16\x00\x10\x00\x01\x00\x00\x00\x04\x00\x3e\x00\x01\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x31\x00\x3e\x00\x4c\x00\x04\x00\x4c\x00\x04\x00\x43\x00\x01\x00\x08\x00\x0e\x00\x03\x00\x00\x00\x1a\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2b\x00\x0c\x00\x3e\x00\x2e\x00\x2f\x00\x4c\x00\x06\x00\x43\x00\x4d\x00\x4c\x00\x4c\x00\x0e\x00\x00\x00\x03\x00\x07\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2b\x00\x0c\x00\x3e\x00\x2e\x00\x2f\x00\x06\x00\x13\x00\x43\x00\x0a\x00\x07\x00\x0a\x00\x08\x00\x38\x00\x4c\x00\x2e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2b\x00\x01\x00\x3e\x00\x2e\x00\x2f\x00\x01\x00\x0a\x00\x43\x00\x4c\x00\x4c\x00\x02\x00\x02\x00\x01\x00\x52\x00\x4c\x00\x00\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x52\x00\x0e\x00\x3e\x00\x10\x00\x03\x00\x03\x00\x03\x00\x43\x00\x03\x00\x16\x00\x17\x00\x4c\x00\x08\x00\x17\x00\x0e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x24\x00\x52\x00\x3e\x00\x27\x00\x18\x00\x14\x00\x4c\x00\x43\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\x41\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x46\x00\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\x00\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x3e\x00\xff\xff\x00\x00\xff\xff\xff\xff\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x21\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x28\x00\x36\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\x00\x00\x18\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x00\x00\xff\xff\xff\xff\xff\xff\x3e\x00\x30\x00\x31\x00\x32\x00\x2c\x00\x2d\x00\xff\xff\x18\x00\x00\x00\xff\xff\xff\xff\x00\x00\x30\x00\x31\x00\x00\x00\x3e\x00\xff\xff\x00\x00\x23\x00\xff\xff\x18\x00\xff\xff\x21\x00\xff\xff\xff\xff\xff\xff\x3e\x00\x2c\x00\x2d\x00\x28\x00\x00\x00\x23\x00\x18\x00\x2c\x00\x2d\x00\x18\x00\x00\x00\xff\xff\x18\x00\x00\x00\x2c\x00\x2d\x00\xff\xff\x23\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\x23\x00\x21\x00\xff\xff\x2c\x00\x2d\x00\x18\x00\x2c\x00\x2d\x00\x28\x00\x2c\x00\x2d\x00\x18\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\x23\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x25\x00\x26\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x2b\x00\x26\x00\xff\xff\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# +happyCheck = HappyA# "\xff\xff\x00\x00\x05\x00\x02\x00\x00\x00\x09\x00\x02\x00\x00\x00\x00\x00\x02\x00\x02\x00\x00\x00\x00\x00\x02\x00\x02\x00\x01\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x1b\x00\x00\x00\x0b\x00\x03\x00\x00\x00\x03\x00\x00\x00\x05\x00\x00\x00\x08\x00\x09\x00\x2e\x00\x02\x00\x0b\x00\x0c\x00\x1c\x00\x4f\x00\x07\x00\x10\x00\x11\x00\x12\x00\x05\x00\x05\x00\x00\x00\x3b\x00\x13\x00\x0b\x00\x02\x00\x00\x00\x01\x00\x02\x00\x03\x00\x07\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2d\x00\x1f\x00\x42\x00\x30\x00\x28\x00\x30\x00\x0b\x00\x47\x00\x0d\x00\x27\x00\x00\x00\x4c\x00\x4c\x00\x4c\x00\x0e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3e\x00\x0c\x00\x41\x00\x42\x00\x52\x00\x53\x00\x4c\x00\x52\x00\x53\x00\x0b\x00\x52\x00\x52\x00\x41\x00\x42\x00\x52\x00\x52\x00\x4e\x00\x52\x00\x03\x00\x4c\x00\x05\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x0b\x00\x3d\x00\x39\x00\x3a\x00\x3b\x00\x10\x00\x11\x00\x12\x00\x4c\x00\x4c\x00\x4c\x00\x00\x00\x0b\x00\x03\x00\x19\x00\x05\x00\x1b\x00\x48\x00\x49\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4b\x00\x25\x00\x39\x00\x12\x00\x28\x00\x41\x00\x42\x00\x2b\x00\x4e\x00\x40\x00\x2e\x00\x00\x00\x1b\x00\x00\x00\x4c\x00\x33\x00\x4e\x00\x00\x00\x0b\x00\x4a\x00\x4b\x00\x08\x00\x09\x00\x4c\x00\x03\x00\x01\x00\x05\x00\x3f\x00\x11\x00\x2b\x00\x13\x00\x43\x00\x44\x00\x19\x00\x0d\x00\x1b\x00\x13\x00\x49\x00\x09\x00\x12\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3c\x00\x05\x00\x1b\x00\x3f\x00\x15\x00\x16\x00\x4c\x00\x0b\x00\x03\x00\x1a\x00\x05\x00\x0c\x00\x10\x00\x11\x00\x12\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0e\x00\x00\x00\x19\x00\x0b\x00\x12\x00\x00\x00\x14\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1b\x00\x25\x00\x00\x00\x00\x00\x28\x00\x4c\x00\x4c\x00\x2b\x00\x00\x00\x19\x00\x2e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x33\x00\x07\x00\x26\x00\x0a\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x2c\x00\x03\x00\x4a\x00\x05\x00\x3f\x00\x1a\x00\x14\x00\x00\x00\x43\x00\x44\x00\x00\x00\x0d\x00\x2b\x00\x00\x00\x49\x00\x24\x00\x12\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x2b\x00\x05\x00\x1b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0b\x00\x03\x00\x4c\x00\x05\x00\x19\x00\x10\x00\x11\x00\x12\x00\x0a\x00\x0f\x00\x3c\x00\x00\x00\x00\x00\x3f\x00\x19\x00\x39\x00\x12\x00\x0d\x00\x0e\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1b\x00\x25\x00\x2c\x00\x2d\x00\x28\x00\x05\x00\x06\x00\x2b\x00\x1d\x00\x00\x00\x2e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x33\x00\x50\x00\x51\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3f\x00\x13\x00\x2b\x00\x2b\x00\x43\x00\x44\x00\x00\x00\x01\x00\x02\x00\x03\x00\x49\x00\x02\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x0a\x00\x05\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0b\x00\x00\x00\x4c\x00\x00\x00\x4e\x00\x10\x00\x11\x00\x12\x00\x2b\x00\x02\x00\x00\x00\x2e\x00\x2f\x00\x06\x00\x19\x00\x39\x00\x3a\x00\x3b\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x25\x00\x39\x00\x2a\x00\x28\x00\x48\x00\x49\x00\x2b\x00\x20\x00\x40\x00\x2e\x00\x0f\x00\x39\x00\x2b\x00\x00\x00\x33\x00\x2e\x00\x2f\x00\x2a\x00\x40\x00\x03\x00\x2b\x00\x05\x00\x15\x00\x2e\x00\x2f\x00\x4f\x00\x3f\x00\x0b\x00\x4a\x00\x4b\x00\x43\x00\x44\x00\x10\x00\x11\x00\x12\x00\x00\x00\x49\x00\x0f\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x17\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x27\x00\x25\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1d\x00\x1e\x00\x04\x00\x2d\x00\x00\x00\x03\x00\x30\x00\x05\x00\x0a\x00\x00\x00\x08\x00\x2b\x00\x3f\x00\x0b\x00\x2e\x00\x2f\x00\x43\x00\x44\x00\x10\x00\x11\x00\x12\x00\x11\x00\x49\x00\x13\x00\x22\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x29\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x06\x00\x52\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x04\x00\x00\x00\x0f\x00\x39\x00\x3a\x00\x3b\x00\x0a\x00\x39\x00\x3a\x00\x03\x00\x17\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x48\x00\x49\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x00\x00\x2b\x00\x4f\x00\x28\x00\x2e\x00\x2f\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x12\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x01\x00\x0b\x00\x1c\x00\x03\x00\x00\x00\x30\x00\x10\x00\x11\x00\x12\x00\x16\x00\x17\x00\x0b\x00\x26\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x00\x00\x00\x00\x02\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x39\x00\x3a\x00\x3b\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x45\x00\x39\x00\x47\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x40\x00\x11\x00\x0b\x00\x13\x00\x0d\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x11\x00\x00\x00\x13\x00\x00\x00\x28\x00\x00\x00\x02\x00\x30\x00\x31\x00\x32\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1a\x00\x0b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x10\x00\x11\x00\x12\x00\x00\x00\x24\x00\x19\x00\x22\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x29\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x30\x00\x13\x00\x32\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x39\x00\x3a\x00\x3b\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x45\x00\x39\x00\x47\x00\x28\x00\x10\x00\x11\x00\x12\x00\x39\x00\x40\x00\x16\x00\x17\x00\x00\x00\x09\x00\x07\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x15\x00\x16\x00\x14\x00\x0e\x00\x28\x00\x10\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x3e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0d\x00\x0f\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x06\x00\x18\x00\x46\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x04\x00\x05\x00\x00\x00\x23\x00\x07\x00\x1b\x00\x0a\x00\x0a\x00\x4c\x00\x06\x00\x0e\x00\x0f\x00\x2c\x00\x2d\x00\x12\x00\x25\x00\x14\x00\x14\x00\x16\x00\x17\x00\x00\x00\x2b\x00\x1a\x00\x1b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x04\x00\x3e\x00\x0f\x00\x18\x00\x2b\x00\x01\x00\x43\x00\x2e\x00\x2f\x00\x02\x00\x17\x00\x06\x00\x06\x00\x1a\x00\x23\x00\x4c\x00\x4d\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2c\x00\x2d\x00\x4d\x00\x2b\x00\x01\x00\x06\x00\x2e\x00\x2f\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x39\x00\x3a\x00\x3b\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x4c\x00\x01\x00\x0c\x00\x04\x00\x4c\x00\x48\x00\x49\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x44\x00\x07\x00\x46\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x03\x00\x00\x00\x01\x00\x02\x00\x03\x00\x02\x00\x0f\x00\x3e\x00\x0e\x00\x2e\x00\x30\x00\x31\x00\x43\x00\x44\x00\x26\x00\x46\x00\x28\x00\x29\x00\x2a\x00\x04\x00\x2c\x00\x0f\x00\x02\x00\x4c\x00\x3e\x00\x4b\x00\x2e\x00\x4c\x00\x34\x00\x35\x00\x36\x00\x37\x00\x0a\x00\x04\x00\x3a\x00\x0c\x00\x3c\x00\x3d\x00\x3e\x00\x0a\x00\x40\x00\x4c\x00\x39\x00\x0e\x00\x02\x00\x45\x00\x46\x00\x0b\x00\x48\x00\x40\x00\x4c\x00\x03\x00\x08\x00\x26\x00\x4c\x00\x28\x00\x29\x00\x2a\x00\x39\x00\x2c\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x40\x00\x02\x00\x34\x00\x35\x00\x36\x00\x37\x00\x0c\x00\x4c\x00\x3a\x00\x03\x00\x3c\x00\x3d\x00\x3e\x00\x4c\x00\x40\x00\x04\x00\x01\x00\x1d\x00\x4c\x00\x45\x00\x46\x00\x04\x00\x48\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x06\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x13\x00\x4c\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x13\x00\x3e\x00\x02\x00\x0a\x00\x41\x00\x42\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2e\x00\x02\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x4c\x00\x3e\x00\x39\x00\x3a\x00\x41\x00\x42\x00\x43\x00\x38\x00\x0c\x00\x01\x00\x4c\x00\x01\x00\x01\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x02\x00\x38\x00\x01\x00\x07\x00\x02\x00\x01\x00\x01\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x02\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x02\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0a\x00\x01\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x3e\x00\x01\x00\x39\x00\x3a\x00\x3b\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x0a\x00\x09\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x3e\x00\x39\x00\x39\x00\x3a\x00\x3b\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x24\x00\x03\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x31\x00\x3e\x00\x38\x00\x07\x00\x4c\x00\x04\x00\x43\x00\x04\x00\x38\x00\x01\x00\x16\x00\x10\x00\x01\x00\x3e\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x31\x00\x3e\x00\x01\x00\x4c\x00\x04\x00\x4c\x00\x43\x00\x04\x00\x01\x00\x0e\x00\x08\x00\x03\x00\x1a\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x24\x00\x0c\x00\x3e\x00\x27\x00\x06\x00\x4c\x00\x4c\x00\x43\x00\x4d\x00\x4c\x00\x0e\x00\x03\x00\x07\x00\x31\x00\x32\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x06\x00\x41\x00\x3e\x00\x0c\x00\x13\x00\x08\x00\x46\x00\x43\x00\x0a\x00\x07\x00\x0a\x00\x38\x00\x2e\x00\x4c\x00\x00\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x0e\x00\x3e\x00\x10\x00\x0a\x00\x4c\x00\x01\x00\x43\x00\x4c\x00\x16\x00\x17\x00\x02\x00\x02\x00\x01\x00\x4c\x00\x52\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x52\x00\x03\x00\x3e\x00\x03\x00\x03\x00\x03\x00\x17\x00\x43\x00\x4c\x00\x52\x00\x18\x00\x08\x00\x14\x00\x0e\x00\x4c\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2f\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\x00\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x00\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x21\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x28\x00\x36\x00\x00\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\x21\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x1b\x00\x00\x00\x28\x00\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\x00\x00\xff\xff\x25\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x00\x00\x2b\x00\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\x21\x00\x30\x00\x31\x00\x18\x00\x3e\x00\x00\x00\xff\xff\x28\x00\xff\xff\x00\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\x23\x00\x3e\x00\xff\xff\x18\x00\x00\x00\x21\x00\xff\xff\x18\x00\x00\x00\x2c\x00\x2d\x00\xff\xff\x28\x00\xff\xff\x23\x00\x18\x00\x2c\x00\x2d\x00\x23\x00\x18\x00\xff\xff\x00\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\x23\x00\x2c\x00\x2d\x00\xff\xff\x23\x00\x00\x00\x18\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x21\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\x23\x00\x28\x00\x18\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\x23\x00\xff\xff\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x26\x00\x2b\x00\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# happyTable :: HappyAddr -happyTable = HappyA# "\x00\x00\x41\x00\x75\x01\x42\x00\x41\x00\xcb\xff\x42\x00\x41\x00\x41\x00\x42\x00\x42\x00\x41\x00\x41\x00\x42\x00\x42\x00\x41\x00\x5a\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x5f\x00\xdd\x01\x76\x00\x56\x00\x5a\x00\x79\x00\x72\x01\xa9\x01\xf2\x00\x51\x00\xeb\x01\xef\x01\x6f\x01\x17\x00\xb8\x01\x7c\x00\xea\x01\x70\x01\x4f\x00\x19\x00\x1a\x00\x9b\x01\x75\x01\x79\x00\xf0\x01\xf0\x01\xe9\x00\xaa\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\xab\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x34\x00\xf3\x00\xde\x00\x35\x00\x23\x00\xa6\x01\x7f\x01\xdf\x00\x80\x01\x9b\x01\x5a\x00\x06\x00\x06\x00\x06\x00\xc7\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\x12\x00\x66\x00\x5b\x00\x2d\x01\x43\x00\xe2\x00\x06\x00\x43\x00\x44\x00\x2c\x00\xca\x00\xcb\x00\x5b\x00\x95\x00\xcc\x00\xce\x00\xa7\x01\xff\xff\x15\x00\x06\x00\x16\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x17\x00\x7a\x00\xb0\x00\xb1\x00\xb2\x00\x18\x00\x19\x00\x1a\x00\x06\x00\x06\x00\x06\x00\x97\x01\x0a\x01\xa2\x00\x1b\x00\xa3\x00\x5f\x00\xb3\x00\x42\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x81\x01\x22\x00\x9d\x00\xa4\x00\x23\x00\x5b\x00\x5c\x00\x24\x00\xb8\x00\x9e\x00\x6a\x00\xa4\x01\xa5\x00\x4b\x01\x06\x00\x26\x00\x2c\x00\xd9\x01\x98\x01\x9f\x00\x45\x01\xe9\x00\x11\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\x27\x00\xd2\x01\x0a\x01\x12\x01\x28\x00\x29\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x2a\x00\x70\x00\x03\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x51\x00\x16\x00\xd3\x01\xa5\x01\x71\x00\x72\x00\x06\x00\x17\x00\xa2\x00\x73\x00\xa3\x00\x37\x00\x18\x00\x19\x00\x1a\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x16\x01\xb8\x00\x1b\x00\xe9\x00\xa4\x00\x32\x00\x17\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xa5\x00\x22\x00\x9d\x00\x51\x00\x23\x00\x46\x00\x47\x00\x24\x00\x06\x00\x9e\x00\x25\x00\x86\x01\xb0\x00\xb1\x00\x1f\x01\x26\x00\x06\x00\xf0\x00\xd5\x01\x9f\x00\xa0\x00\x48\x00\x51\x00\xf1\x00\x20\x01\x74\x00\xb1\x01\x27\x00\x11\x01\x72\x01\xfe\x00\x28\x00\x29\x00\x5e\x00\xd0\x01\x5f\x00\x12\x01\x2a\x00\xd1\x01\x13\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x24\x01\x16\x00\xf1\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\xa2\x00\x06\x00\xa3\x00\xa1\x01\x18\x00\x19\x00\x1a\x00\x6b\x01\xe3\x00\x25\x01\xff\x00\x39\x01\xb3\x01\x1b\x00\x06\x00\xa4\x00\x2c\x00\xa0\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xa5\x00\x22\x00\xbb\x01\x23\x01\x23\x00\xbe\x01\x06\x00\x24\x00\xa2\x01\xd6\x01\x6a\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x26\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xfe\x00\x11\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\x27\x00\xed\x00\x95\x01\x12\x01\x28\x00\x29\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x2a\x00\x72\x01\x97\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x24\x01\x16\x00\x60\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\xc2\x01\xff\x00\x89\x00\xc1\x01\x18\x00\x19\x00\x1a\x00\xc9\x01\x00\x01\x25\x01\x0b\x00\x74\x00\x26\x01\x1b\x00\xb0\x00\xb1\x00\xb2\x00\x98\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x12\x00\x22\x00\x9d\x00\x99\x01\x23\x00\xb3\x00\x58\x01\x24\x00\x34\x00\xab\x01\x25\x00\x35\x00\xb0\x00\xb1\x00\x1f\x01\x26\x00\x63\x00\x31\x00\x64\x00\x7f\x01\x15\x00\x80\x01\x4e\x00\x89\x01\x20\x01\x51\x00\x21\x01\x27\x00\x17\x00\xa1\x01\x32\x00\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\x51\x00\x2a\x00\xf2\x00\xc4\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xf6\xff\xe7\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x8b\x01\x22\x00\x72\x01\xe8\x01\x23\x00\xa2\x01\xa3\x01\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x52\x00\xf3\x00\x88\x00\x53\x00\x1c\x01\x15\x00\x73\x01\x4e\x00\x89\x00\xf4\x00\x23\xff\x52\x00\x27\x00\x17\x00\x53\x00\x3a\x01\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\x8d\x01\x2a\x00\x8e\x01\x77\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\xde\x01\xa9\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\xdf\x01\xe9\x01\x9f\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x8a\x01\xdc\x00\xb6\x00\xb0\x00\xb1\x00\xb2\x00\x7c\x01\xb0\x00\x56\x01\x79\x00\xb7\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\xb3\x00\x0d\x01\x43\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x72\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x77\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xcb\x01\x06\x01\x84\x01\x06\x01\x23\x00\xde\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x78\x01\xdc\x00\xdf\x01\xe0\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\xaa\x01\x4e\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x07\x01\x17\x00\x07\x01\x4a\x01\x54\x01\x77\x00\x18\x00\x19\x00\x1a\x00\x89\x00\xa9\x01\x5b\x01\x08\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x12\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x0b\x00\x0c\x00\x7e\x00\x23\x00\x4f\x00\x19\x00\x1a\x00\x88\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x89\x00\x12\x00\x72\x01\x15\x00\x8a\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x70\x00\x9d\x00\x5d\x01\x23\x00\x18\x00\x19\x00\x1a\x00\xce\x01\x14\x01\x84\x01\x72\x01\x51\x00\x71\x00\x72\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x6d\x01\x2e\x00\x2f\x00\x83\x01\x23\x00\x84\x01\x72\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x31\x01\x11\x00\xfb\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x12\x00\x4e\x00\x87\x01\x9d\x01\x84\x01\x13\x00\x60\x00\x17\x00\x32\x01\xfd\x00\x35\x00\x36\x00\x4f\x00\x19\x00\x1a\x00\x91\x00\x75\x01\x92\x00\x76\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x4d\x00\xe3\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x79\x01\xea\x00\xf5\x00\x23\x00\x4f\x00\x19\x00\x1a\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x33\x01\xa5\x00\x38\x01\xae\x00\x15\x00\x3b\x01\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\xeb\x00\xcf\x00\xe3\x00\x23\x00\x18\x00\x19\x00\x1a\x00\x94\x01\xb8\x00\xd0\x00\xd1\x00\xed\x00\xee\x00\xd2\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xd3\x00\xd4\x00\xe4\x00\x38\x00\x23\x00\x39\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x4f\x01\x11\x00\x8f\x01\x48\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x12\x00\x59\x00\xe6\x00\xe7\x00\x62\x00\x13\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xf3\x01\x06\x00\xf4\x01\x50\x01\xb6\x01\xed\x01\xe2\x01\xee\x01\xe3\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xa2\x00\x88\x00\xa3\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x89\x00\xe4\x01\xe7\x01\xe5\x01\x16\x01\x47\xff\xe6\x01\x2b\x00\xa4\x00\xdc\x01\x17\x01\xdd\x01\x47\xff\x47\xff\x06\x00\x51\x00\x47\xff\xa5\x00\xaf\x00\x9a\x00\x9b\x00\x9c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x4f\x01\x11\x00\xcb\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xcd\x01\x12\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x13\x00\xfb\x00\x06\x00\xd9\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\xd8\x01\x50\x01\x51\x01\xfc\x00\x9d\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\xfd\x00\x29\xff\x70\x01\x52\x00\x29\xff\x60\x01\x53\x00\x6b\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\xce\x01\xba\x01\x77\x00\xbb\x01\xc0\x01\xb0\x00\xb1\x00\xb2\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x5f\x00\x11\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\xe3\x00\xb3\x00\xb4\x00\x12\x00\xbd\x01\x9d\x00\xbe\x01\x06\x00\x13\x00\x60\x00\xc4\x01\x61\x00\x14\x01\x9d\x00\xd5\x01\xba\x00\xc7\x01\xbb\x00\xbc\x00\xbd\x00\x2a\x01\xbe\x00\xb0\x00\xb1\x00\xb2\x01\xc6\x01\x06\x00\xc9\x01\x83\x01\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xeb\x00\x86\x01\xc3\x00\x06\x00\xc4\x00\xc5\x00\xc6\x00\x67\x01\xc7\x00\x06\x00\x89\x01\xed\x00\xee\x00\xc8\x00\xc9\x00\xba\x00\xca\x00\xbb\x00\xbc\x00\xbd\x00\x53\x01\xbe\x00\x66\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\x8f\x01\xbf\x00\xc0\x00\xc1\x00\xc2\x00\x91\x01\xad\x01\xc3\x00\x94\x01\xc4\x00\xc5\x00\xc6\x00\x06\x00\xc7\x00\x9d\x01\xae\x01\x06\x00\xaf\x01\xc8\x00\xc9\x00\x06\x00\xca\x00\x66\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xb5\x01\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x40\x01\x3e\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x3f\x01\x41\x01\x47\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\x48\x01\x12\x00\x49\x01\x4c\x01\x5b\x00\xb8\x01\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x4d\x01\x4f\x01\x06\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8e\x00\x5a\x01\x12\x00\xb0\x00\x57\x01\x5b\x00\x68\x00\x13\x00\x35\x01\x4e\x01\x5b\x01\x06\x00\x5d\x01\x3c\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\x52\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8e\x00\x12\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x13\x00\x5f\x01\x8f\x00\x61\x01\x63\x01\x62\x01\x64\x01\x66\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\x0b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x52\x00\x12\x00\x65\x01\x53\x00\x6b\x00\x67\x01\x13\x00\x6a\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x6c\x01\x6b\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\xad\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x6d\x01\x12\x00\x06\x00\xb0\x00\xb1\x00\x22\x01\x13\x00\x8a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x72\x01\x06\x00\x7b\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\xb7\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x4b\x00\x12\x00\x7c\x01\x7e\x01\x82\x01\xd8\x00\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xe2\x00\xe0\x00\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xda\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x56\x00\x12\x00\xe1\x00\x06\x00\x0b\x01\x0f\x01\x13\x00\x10\x01\x14\x01\x92\x00\x19\x01\x51\x00\x18\x01\x12\x00\x1a\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xd1\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x56\x00\x12\x00\x06\x00\x1f\x01\x06\x00\x28\x01\x13\x00\x29\x01\x2a\x01\x2c\x01\x2d\x01\x51\x00\x30\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xb5\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x52\x00\x35\x01\x12\x00\x53\x00\xa6\x00\x06\x00\x38\x01\x13\x00\x2b\x00\x06\x00\x06\x00\x76\x00\x6a\x00\x7d\x00\x8c\x00\x87\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xc0\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x52\x00\x8e\x00\x12\x00\x53\x00\x54\x00\x8d\x00\x93\x00\x13\x00\x94\x00\x95\x00\x98\x00\x97\x00\x99\x00\x06\x00\xa8\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x91\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x52\x00\xa9\x00\x12\x00\x53\x00\x6b\x00\xce\x00\x89\x00\x13\x00\x06\x00\x06\x00\xd6\x00\xd7\x00\x41\x00\xff\xff\x06\x00\xd8\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x92\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xff\xff\xd9\x00\x12\x00\xda\x00\x4a\x00\x50\x00\x51\x00\x13\x00\x58\x00\xdb\x00\xdc\x00\x06\x00\x6d\x00\x6e\x00\x76\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x96\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x3b\x00\xff\xff\x12\x00\x3c\x00\x6f\x00\x77\x00\x06\x00\x13\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x3e\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x9e\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x3f\x00\x12\x00\x00\x00\x00\x00\x00\x00\x40\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xaf\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xb0\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x41\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x44\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x55\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1a\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1b\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1d\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x2e\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x30\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x36\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x7d\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x81\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x85\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xab\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x58\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\xe3\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x12\x00\x00\x00\xe3\x00\x00\x00\x00\x00\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xeb\x00\x00\x00\x0b\x00\x0c\x00\x82\x00\x83\x00\x84\x00\x68\x01\x11\x00\x00\x00\x00\x00\xed\x00\xee\x00\x00\x00\xe3\x00\xe4\x00\x12\x00\x0b\x00\x0c\x00\x7f\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x12\x00\x0b\x00\x0c\x00\x80\x00\xe6\x00\xe7\x00\x00\x00\xe4\x00\xe3\x00\x00\x00\x00\x00\xe3\x00\x0b\x00\x74\x00\xe3\x00\x12\x00\x00\x00\xe3\x00\xe9\x00\x00\x00\xe4\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x12\x00\xe6\x00\xe7\x00\xec\x00\xe3\x00\xf1\x00\xe4\x00\xed\x00\xee\x00\xe4\x00\xe3\x00\x00\x00\xe4\x00\x02\x01\xe6\x00\xe7\x00\x00\x00\xf6\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x00\x00\xf8\x00\xeb\x00\x00\x00\xe6\x00\xe7\x00\xe4\x00\xe6\x00\xe7\x00\xf9\x00\xe6\x00\xe7\x00\xe4\x00\xed\x00\xee\x00\x00\x00\x00\x00\xfa\x00\xfb\x00\x03\x01\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\xe6\x00\xe7\x00\x04\x01\x05\x01\x00\x00\x00\x00\xe6\x00\xe7\x00\xfd\x00\xba\x00\x00\x00\xbb\x00\xbc\x00\xbd\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\x00\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\xc5\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\x00\x00\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyTable = HappyA# "\x00\x00\x41\x00\x77\x01\x42\x00\x41\x00\xcb\xff\x42\x00\x41\x00\x41\x00\x42\x00\x42\x00\x41\x00\x41\x00\x42\x00\x42\x00\x41\x00\x5a\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x5f\x00\xe0\x01\xec\x01\x56\x00\x5a\x00\x79\x00\x74\x01\xab\x01\xf3\x00\xe1\x01\xeb\x01\xf1\x01\x71\x01\x17\x00\xba\x01\x7c\x00\xc0\x01\x72\x01\x4f\x00\x19\x00\x1a\x00\x9d\x01\x77\x01\x79\x00\xf2\x01\xf2\x01\xea\x00\xaa\x00\x0d\x01\x9a\x00\x9b\x00\x9c\x00\xab\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x34\x00\xf4\x00\xdf\x00\x35\x00\x23\x00\xa8\x01\x81\x01\xe0\x00\x82\x01\x9d\x01\x5a\x00\x06\x00\x06\x00\x06\x00\x76\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x12\x00\x66\x00\x5b\x00\x2f\x01\x43\x00\xe3\x00\x06\x00\x43\x00\x44\x00\x0b\x01\xcb\x00\xcc\x00\x5b\x00\x95\x00\xcd\x00\xcf\x00\xa9\x01\xff\xff\x15\x00\x06\x00\x16\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x17\x00\x7a\x00\xb0\x00\xb1\x00\xb2\x00\x18\x00\x19\x00\x1a\x00\x06\x00\x06\x00\x06\x00\x51\x00\xea\x00\xa2\x00\x1b\x00\xa3\x00\x5f\x00\xb3\x00\x44\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x83\x01\x22\x00\x9d\x00\xa4\x00\x23\x00\x5b\x00\x5c\x00\x24\x00\x2c\x00\x9e\x00\x6a\x00\x74\x01\xa5\x00\xe0\x01\x06\x00\x26\x00\x2c\x00\x74\x01\x0b\x01\x9f\x00\x47\x01\xe1\x01\xe2\x01\x06\x00\xa2\x00\xdb\x01\xa3\x00\x27\x00\xcd\x01\x26\x01\x86\x01\x28\x00\x29\x00\x5e\x00\xb6\x00\x5f\x00\xf3\x01\x2a\x00\x70\x00\xa4\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x27\x01\x16\x00\xa5\x00\xb5\x01\x71\x00\x72\x00\x06\x00\x17\x00\xa2\x00\x73\x00\xa3\x00\xed\x01\x18\x00\x19\x00\x1a\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x18\x01\xdf\x01\x1b\x00\xea\x00\xa4\x00\x51\x00\x19\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xa5\x00\x22\x00\x07\x01\x25\x01\x23\x00\x06\x00\x06\x00\x24\x00\xe9\x01\xb9\x00\x25\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x26\x00\x37\x00\xf1\x00\xea\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\xf2\x00\xa2\x00\x74\x00\xa3\x00\x27\x00\x08\x01\x32\x00\xd5\x01\x28\x00\x29\x00\xd7\x01\xb6\x00\xc9\x01\xe4\x00\x2a\x00\xab\x01\xa4\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x26\x01\x16\x00\xa5\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\xa2\x00\x06\x00\xa3\x00\xb9\x00\x18\x00\x19\x00\x1a\x00\x6d\x01\xbd\x01\x27\x01\x51\x00\x51\x00\x28\x01\x1b\x00\x55\x01\xa4\x00\x46\x00\x47\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xa5\x00\x22\x00\xee\x00\x97\x01\x23\x00\x35\x00\x36\x00\x24\x00\x48\x00\x74\x01\x6a\x00\x0d\x01\x9a\x00\x9b\x00\x9c\x00\x26\x00\x2e\x00\x2f\x00\x51\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x27\x00\xc3\x01\x88\x01\x3b\x01\x28\x00\x29\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x2a\x00\x62\x01\x99\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x89\x00\x16\x00\x51\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\x99\x01\x06\x00\x3e\x01\x2c\x00\x18\x00\x19\x00\x1a\x00\x52\x00\xd2\x01\xc4\x01\x53\x00\x1e\x01\xd3\x01\x1b\x00\xb0\x00\xb1\x00\xb2\x00\x9a\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xcb\x01\x22\x00\x9d\x00\xd4\x01\x23\x00\xb3\x00\x5a\x01\x24\x00\x9a\x01\xad\x01\x25\x00\xc6\x01\x9d\x00\x52\x00\xf3\x00\x26\x00\x53\x00\x3c\x01\x9b\x01\x9e\x00\x15\x00\x52\x00\x4e\x00\x8d\x01\x53\x00\x6b\x00\xac\x01\x27\x00\x17\x00\x9f\x00\xa0\x00\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\x51\x00\x2a\x00\x13\x01\xa3\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xf4\x00\x14\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xf5\x00\x22\x00\x8b\x01\xa1\x01\x23\x00\xff\x00\x45\x01\x0d\x01\x9a\x00\x9b\x00\x9c\x00\x0d\x01\x9a\x00\x9b\x00\x9c\x00\xa4\x01\xd8\x01\x88\x00\x34\x00\x74\x01\x15\x00\x35\x00\x4e\x00\x89\x00\x56\x01\x22\xff\x52\x00\x27\x00\x17\x00\x53\x00\xa6\x00\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\xd0\x01\x2a\x00\x86\x01\x00\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\xa2\x01\xab\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x4d\x01\xf6\xff\x5d\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x4c\x01\x51\x00\x13\x01\xb0\x00\xb1\x00\xb2\x00\x89\x00\xb0\x00\x58\x01\x79\x00\x14\x01\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\xb3\x00\x0e\x01\xa3\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x6f\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x77\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x78\x01\xa6\x01\x52\x00\x5f\x01\x23\x00\x53\x00\x54\x00\xa4\x01\xa5\x01\x7b\x01\x0d\x01\x9a\x00\x9b\x00\x9c\x00\x79\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x7e\x01\x4e\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x3d\x01\x17\x00\x04\x01\xb7\x00\xeb\x00\x77\x00\x18\x00\x19\x00\x1a\x00\x8c\x01\xdd\x00\xb8\x00\xa7\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x12\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x63\x00\xf6\x00\x64\x00\x23\x00\x4f\x00\x19\x00\x1a\x00\x35\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xb0\x00\xb1\x00\x21\x01\x15\x00\x74\x01\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x22\x01\x9d\x00\xb3\x01\x23\x00\x18\x00\x19\x00\x1a\x00\x74\x01\x16\x01\x85\x01\x81\x01\x86\x01\x82\x01\x3a\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x89\x01\x07\x01\x86\x01\xae\x00\x23\x00\xff\x00\xa5\x00\x0b\x00\x0c\x00\x7e\x00\x0d\x01\x9a\x00\x9b\x00\x9c\x00\xd0\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x12\x00\x4e\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x08\x01\x17\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x4f\x00\x19\x00\x1a\x00\x74\x01\x09\x01\xb9\x00\x00\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x4d\x00\x01\x01\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x8f\x01\x75\x01\x90\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x79\x01\xb0\x00\xb1\x00\x21\x01\x15\x00\xd1\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x22\x01\x9d\x00\x23\x01\x23\x00\x18\x00\x19\x00\x1a\x00\x0f\x01\x72\x01\x7a\x01\xdd\x00\xd2\x00\x70\x00\x31\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x71\x00\x72\x00\x32\x00\x91\x00\x23\x00\x92\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x51\x01\x11\x00\xd3\x00\xe4\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x12\x00\xd4\x00\xd5\x00\x38\x00\x51\x00\x13\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x39\x00\x48\x00\x59\x00\x52\x01\xb8\x01\x62\x00\xf5\x01\xe5\x00\xf0\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xa2\x00\x88\x00\xa3\x00\x6a\x00\x91\x01\x28\xff\xfc\x00\x89\x00\x28\xff\x06\x00\xf6\x01\x18\x01\x47\xff\xe7\x00\xe8\x00\xa4\x00\x9f\x01\x19\x01\x77\x00\x47\xff\x47\xff\xe4\x00\xfe\x00\x47\xff\xa5\x00\xaf\x00\x9a\x00\x9b\x00\x9c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x51\x01\x11\x00\xef\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xe4\x01\x12\x00\x13\x01\xe5\x00\x52\x00\xe5\x01\x13\x00\x53\x00\x6b\x00\xe6\x01\x14\x01\xe7\x01\xe8\x01\x15\x01\xe6\x00\x52\x01\x53\x01\xe9\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xe7\x00\xe8\x00\x2b\x00\x52\x00\xde\x01\xdf\x01\x53\x00\x6b\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xb0\x00\xb1\x00\xb2\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x33\x01\x11\x00\x06\x00\xcd\x01\xcf\x01\xd0\x01\x06\x00\xb3\x00\xb4\x00\x12\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x13\x00\x60\x00\xda\x01\x34\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x5f\x00\x11\x00\xdb\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\x62\x01\xbc\x01\x12\x00\xbd\x01\xbf\x01\x0b\x00\x74\x00\x13\x00\x60\x00\xbb\x00\x61\x00\xbc\x00\xbd\x00\xbe\x00\xd7\x01\xbf\x00\xc0\x01\xc2\x01\x06\x00\x12\x00\xc6\x01\xc8\x01\x06\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xcb\x01\x88\x00\xc4\x00\xc9\x01\xc5\x00\xc6\x00\xc7\x00\x89\x00\xc8\x00\x06\x00\x9d\x00\x8a\x00\x85\x01\xc9\x00\xca\x00\x88\x01\xcb\x00\x16\x01\x06\x00\x8b\x01\x91\x01\xbb\x00\x06\x00\xbc\x00\xbd\x00\xbe\x00\x9d\x00\xbf\x00\x66\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x2c\x01\x93\x01\xc0\x00\xc1\x00\xc2\x00\xc3\x00\x96\x01\x06\x00\xc4\x00\x9f\x01\xc5\x00\xc6\x00\xc7\x00\x06\x00\xc8\x00\xaf\x01\xb0\x01\xb1\x01\x06\x00\xc9\x00\xca\x00\xb7\x01\xcb\x00\x66\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x40\x01\x0d\x01\x9a\x00\x9b\x00\x9c\x00\x42\x01\x41\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x43\x01\x06\x00\x49\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x4a\x01\x4e\x01\x12\x00\x4b\x01\x4f\x01\x5b\x00\xba\x01\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x50\x01\x51\x01\x5c\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8e\x00\x06\x00\x12\x00\xb0\x00\x59\x01\x5b\x00\x68\x00\x13\x00\x37\x01\x5d\x01\x5f\x01\x06\x00\x61\x01\x63\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\x54\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8e\x00\x12\x00\x0d\x01\x9a\x00\x9b\x00\x9c\x00\x13\x00\x64\x01\x8f\x00\x66\x01\x65\x01\x67\x01\x68\x01\x6e\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\x0c\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x69\x01\x12\x00\x0d\x01\x9a\x00\x9b\x00\x9c\x00\x13\x00\x6c\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x6d\x01\x6f\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\xad\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\x12\x00\x74\x01\xb0\x00\xb1\x00\xb4\x01\x13\x00\x8a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\x7d\x01\x7e\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\xb8\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x4b\x00\x12\x00\x80\x01\xb0\x00\xb1\x00\x24\x01\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x84\x01\xd9\x00\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xdc\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x56\x00\x12\x00\xe1\x00\xe3\x00\x06\x00\x0c\x01\x13\x00\x11\x01\xe2\x00\x12\x01\x16\x01\x92\x00\x1b\x01\x12\x00\x1a\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xd3\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x56\x00\x12\x00\x1c\x01\x06\x00\x21\x01\x06\x00\x13\x00\x2a\x01\x2b\x01\x2e\x01\x2c\x01\x2f\x01\x32\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xb7\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x3b\x00\x37\x01\x12\x00\x3c\x00\x3a\x01\x06\x00\x06\x00\x13\x00\x2b\x00\x06\x00\x76\x00\x7d\x00\x8c\x00\x3d\x00\x3e\x00\x87\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xc2\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8d\x00\x3f\x00\x12\x00\x8e\x00\x93\x00\x97\x00\x40\x00\x13\x00\x94\x00\x95\x00\x98\x00\x99\x00\xa8\x00\x06\x00\xd9\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x93\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xa9\x00\xda\x00\x12\x00\xdb\x00\x89\x00\x06\x00\xcf\x00\x13\x00\x06\x00\xdc\x00\xdd\x00\xd7\x00\xd8\x00\x41\x00\x06\x00\xff\xff\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x94\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xff\xff\x4a\x00\x12\x00\x50\x00\x51\x00\x58\x00\x6e\x00\x13\x00\x06\x00\xff\xff\x6f\x00\x6d\x00\x77\x00\x76\x00\x06\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x98\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x31\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xa0\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xb1\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xb2\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x43\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x46\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x57\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1c\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1d\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1f\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x30\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x32\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x38\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x7d\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x81\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x85\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xab\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x58\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\xe4\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\xe4\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x12\x00\x00\x00\x00\x00\x00\x00\x51\x00\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xec\x00\x00\x00\x0b\x00\x0c\x00\x82\x00\x83\x00\x84\x00\x96\x01\x11\x00\xe4\x00\x00\x00\xee\x00\xef\x00\x00\x00\x00\x00\xec\x00\x12\x00\x0b\x00\x0c\x00\x7f\x00\xfc\x00\xe4\x00\x69\x01\x00\x00\x00\x00\x00\x00\xee\x00\xef\x00\xe4\x00\x00\x00\xfd\x00\x12\x00\x0b\x00\x0c\x00\x80\x00\xe4\x00\xfe\x00\x00\x00\x00\x00\xe4\x00\x00\x00\x00\x00\xec\x00\x0b\x00\x74\x00\xe5\x00\x12\x00\xe4\x00\x00\x00\x6a\x01\x00\x00\xe4\x00\x00\x00\xee\x00\xef\x00\x00\x00\xea\x00\x12\x00\x00\x00\xe5\x00\xe4\x00\xec\x00\x00\x00\xe5\x00\xe4\x00\xe7\x00\xe8\x00\x00\x00\xed\x00\x00\x00\xf2\x00\xe5\x00\xee\x00\xef\x00\xf7\x00\xe5\x00\x00\x00\xe4\x00\x00\x00\xe7\x00\xe8\x00\x00\x00\xf8\x00\xe7\x00\xe8\x00\x00\x00\xf9\x00\x03\x01\xe5\x00\x00\x00\x00\x00\xe7\x00\xe8\x00\xec\x00\x00\x00\xe7\x00\xe8\x00\x00\x00\x00\x00\xfb\x00\xfa\x00\xe5\x00\x00\x00\x00\x00\xee\x00\xef\x00\x00\x00\x00\x00\xe7\x00\xe8\x00\x00\x00\x00\x00\x02\x01\x00\x00\xfc\x00\x04\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x00\xe8\x00\x00\x00\x05\x01\x06\x01\x00\x00\x00\x00\x00\x00\xbb\x00\xfe\x00\xbc\x00\xbd\x00\xbe\x00\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\xc1\x00\xc2\x00\xc3\x00\x00\x00\x00\x00\xc4\x00\x00\x00\xc5\x00\xc6\x00\xc7\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\xca\x00\x00\x00\xcb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# -happyReduceArr = array (4, 254) [ +happyReduceArr = array (4, 255) [ (4 , happyReduce_4), (5 , happyReduce_5), (6 , happyReduce_6), @@ -791,7 +791,8 @@ happyReduceArr = array (4, 254) [ (251 , happyReduce_251), (252 , happyReduce_252), (253 , happyReduce_253), - (254 , happyReduce_254) + (254 , happyReduce_254), + (255 , happyReduce_255) ] happy_n_terms = 83 :: Int @@ -2548,25 +2549,33 @@ happyReduction_196 happy_x_3 (PAs happy_var_1 happy_var_3 )}} -happyReduce_197 = happySpecReduce_1 58# happyReduction_197 -happyReduction_197 happy_x_1 +happyReduce_197 = happySpecReduce_2 58# happyReduction_197 +happyReduction_197 happy_x_2 + happy_x_1 + = case happyOut64 happy_x_2 of { happy_var_2 -> + happyIn65 + (PNeg happy_var_2 + )} + +happyReduce_198 = happySpecReduce_1 58# happyReduction_198 +happyReduction_198 happy_x_1 = case happyOut64 happy_x_1 of { happy_var_1 -> happyIn65 (happy_var_1 )} -happyReduce_198 = happySpecReduce_3 59# happyReduction_198 -happyReduction_198 happy_x_3 - happy_x_2 - happy_x_1 - = case happyOut66 happy_x_1 of { happy_var_1 -> - case happyOut65 happy_x_3 of { happy_var_3 -> - happyIn66 - (PDisj happy_var_1 happy_var_3 - )}} - happyReduce_199 = happySpecReduce_3 59# happyReduction_199 happyReduction_199 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut66 happy_x_1 of { happy_var_1 -> + case happyOut65 happy_x_3 of { happy_var_3 -> + happyIn66 + (PDisj happy_var_1 happy_var_3 + )}} + +happyReduce_200 = happySpecReduce_3 59# happyReduction_200 +happyReduction_200 happy_x_3 happy_x_2 happy_x_1 = case happyOut66 happy_x_1 of { happy_var_1 -> @@ -2575,15 +2584,15 @@ happyReduction_199 happy_x_3 (PSeq happy_var_1 happy_var_3 )}} -happyReduce_200 = happySpecReduce_1 59# happyReduction_200 -happyReduction_200 happy_x_1 +happyReduce_201 = happySpecReduce_1 59# happyReduction_201 +happyReduction_201 happy_x_1 = case happyOut65 happy_x_1 of { happy_var_1 -> happyIn66 (happy_var_1 )} -happyReduce_201 = happySpecReduce_3 60# happyReduction_201 -happyReduction_201 happy_x_3 +happyReduce_202 = happySpecReduce_3 60# happyReduction_202 +happyReduction_202 happy_x_3 happy_x_2 happy_x_1 = case happyOut50 happy_x_1 of { happy_var_1 -> @@ -2592,65 +2601,65 @@ happyReduction_201 happy_x_3 (PA happy_var_1 happy_var_3 )}} -happyReduce_202 = happySpecReduce_1 61# happyReduction_202 -happyReduction_202 happy_x_1 +happyReduce_203 = happySpecReduce_1 61# happyReduction_203 +happyReduction_203 happy_x_1 = case happyOut7 happy_x_1 of { happy_var_1 -> happyIn68 (LIdent happy_var_1 )} -happyReduce_203 = happySpecReduce_2 61# happyReduction_203 -happyReduction_203 happy_x_2 +happyReduce_204 = happySpecReduce_2 61# happyReduction_204 +happyReduction_204 happy_x_2 happy_x_1 = case happyOut8 happy_x_2 of { happy_var_2 -> happyIn68 (LVar happy_var_2 )} -happyReduce_204 = happySpecReduce_1 62# happyReduction_204 -happyReduction_204 happy_x_1 - = happyIn69 - (Sort_Type - ) - happyReduce_205 = happySpecReduce_1 62# happyReduction_205 happyReduction_205 happy_x_1 = happyIn69 - (Sort_PType + (Sort_Type ) happyReduce_206 = happySpecReduce_1 62# happyReduction_206 happyReduction_206 happy_x_1 = happyIn69 - (Sort_Tok + (Sort_PType ) happyReduce_207 = happySpecReduce_1 62# happyReduction_207 happyReduction_207 happy_x_1 = happyIn69 - (Sort_Str + (Sort_Tok ) happyReduce_208 = happySpecReduce_1 62# happyReduction_208 happyReduction_208 happy_x_1 + = happyIn69 + (Sort_Str + ) + +happyReduce_209 = happySpecReduce_1 62# happyReduction_209 +happyReduction_209 happy_x_1 = happyIn69 (Sort_Strs ) -happyReduce_209 = happySpecReduce_0 63# happyReduction_209 -happyReduction_209 = happyIn70 +happyReduce_210 = happySpecReduce_0 63# happyReduction_210 +happyReduction_210 = happyIn70 ([] ) -happyReduce_210 = happySpecReduce_1 63# happyReduction_210 -happyReduction_210 happy_x_1 +happyReduce_211 = happySpecReduce_1 63# happyReduction_211 +happyReduction_211 happy_x_1 = case happyOut67 happy_x_1 of { happy_var_1 -> happyIn70 ((:[]) happy_var_1 )} -happyReduce_211 = happySpecReduce_3 63# happyReduction_211 -happyReduction_211 happy_x_3 +happyReduce_212 = happySpecReduce_3 63# happyReduction_212 +happyReduction_212 happy_x_3 happy_x_2 happy_x_1 = case happyOut67 happy_x_1 of { happy_var_1 -> @@ -2659,15 +2668,15 @@ happyReduction_211 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_212 = happySpecReduce_1 64# happyReduction_212 -happyReduction_212 happy_x_1 +happyReduce_213 = happySpecReduce_1 64# happyReduction_213 +happyReduction_213 happy_x_1 = case happyOut64 happy_x_1 of { happy_var_1 -> happyIn71 ((:[]) happy_var_1 )} -happyReduce_213 = happySpecReduce_2 64# happyReduction_213 -happyReduction_213 happy_x_2 +happyReduce_214 = happySpecReduce_2 64# happyReduction_214 +happyReduction_214 happy_x_2 happy_x_1 = case happyOut64 happy_x_1 of { happy_var_1 -> case happyOut71 happy_x_2 of { happy_var_2 -> @@ -2675,33 +2684,33 @@ happyReduction_213 happy_x_2 ((:) happy_var_1 happy_var_2 )}} -happyReduce_214 = happySpecReduce_1 65# happyReduction_214 -happyReduction_214 happy_x_1 +happyReduce_215 = happySpecReduce_1 65# happyReduction_215 +happyReduction_215 happy_x_1 = case happyOut7 happy_x_1 of { happy_var_1 -> happyIn72 (BIdent happy_var_1 )} -happyReduce_215 = happySpecReduce_1 65# happyReduction_215 -happyReduction_215 happy_x_1 +happyReduce_216 = happySpecReduce_1 65# happyReduction_216 +happyReduction_216 happy_x_1 = happyIn72 (BWild ) -happyReduce_216 = happySpecReduce_0 66# happyReduction_216 -happyReduction_216 = happyIn73 +happyReduce_217 = happySpecReduce_0 66# happyReduction_217 +happyReduction_217 = happyIn73 ([] ) -happyReduce_217 = happySpecReduce_1 66# happyReduction_217 -happyReduction_217 happy_x_1 +happyReduce_218 = happySpecReduce_1 66# happyReduction_218 +happyReduction_218 happy_x_1 = case happyOut72 happy_x_1 of { happy_var_1 -> happyIn73 ((:[]) happy_var_1 )} -happyReduce_218 = happySpecReduce_3 66# happyReduction_218 -happyReduction_218 happy_x_3 +happyReduce_219 = happySpecReduce_3 66# happyReduction_219 +happyReduction_219 happy_x_3 happy_x_2 happy_x_1 = case happyOut72 happy_x_1 of { happy_var_1 -> @@ -2710,8 +2719,8 @@ happyReduction_218 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_219 = happyReduce 5# 67# happyReduction_219 -happyReduction_219 (happy_x_5 `HappyStk` +happyReduce_220 = happyReduce 5# 67# happyReduction_220 +happyReduction_220 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -2723,41 +2732,41 @@ happyReduction_219 (happy_x_5 `HappyStk` (DDec happy_var_2 happy_var_4 ) `HappyStk` happyRest}} -happyReduce_220 = happySpecReduce_1 67# happyReduction_220 -happyReduction_220 happy_x_1 +happyReduce_221 = happySpecReduce_1 67# happyReduction_221 +happyReduction_221 happy_x_1 = case happyOut57 happy_x_1 of { happy_var_1 -> happyIn74 (DExp happy_var_1 )} -happyReduce_221 = happySpecReduce_1 68# happyReduction_221 -happyReduction_221 happy_x_1 +happyReduce_222 = happySpecReduce_1 68# happyReduction_222 +happyReduction_222 happy_x_1 = case happyOut60 happy_x_1 of { happy_var_1 -> happyIn75 (TComp happy_var_1 )} -happyReduce_222 = happySpecReduce_1 69# happyReduction_222 -happyReduction_222 happy_x_1 +happyReduce_223 = happySpecReduce_1 69# happyReduction_223 +happyReduction_223 happy_x_1 = case happyOut66 happy_x_1 of { happy_var_1 -> happyIn76 (PTComp happy_var_1 )} -happyReduce_223 = happySpecReduce_0 70# happyReduction_223 -happyReduction_223 = happyIn77 +happyReduce_224 = happySpecReduce_0 70# happyReduction_224 +happyReduction_224 = happyIn77 ([] ) -happyReduce_224 = happySpecReduce_1 70# happyReduction_224 -happyReduction_224 happy_x_1 +happyReduce_225 = happySpecReduce_1 70# happyReduction_225 +happyReduction_225 happy_x_1 = case happyOut75 happy_x_1 of { happy_var_1 -> happyIn77 ((:[]) happy_var_1 )} -happyReduce_225 = happySpecReduce_3 70# happyReduction_225 -happyReduction_225 happy_x_3 +happyReduce_226 = happySpecReduce_3 70# happyReduction_226 +happyReduction_226 happy_x_3 happy_x_2 happy_x_1 = case happyOut75 happy_x_1 of { happy_var_1 -> @@ -2766,20 +2775,20 @@ happyReduction_225 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_226 = happySpecReduce_0 71# happyReduction_226 -happyReduction_226 = happyIn78 +happyReduce_227 = happySpecReduce_0 71# happyReduction_227 +happyReduction_227 = happyIn78 ([] ) -happyReduce_227 = happySpecReduce_1 71# happyReduction_227 -happyReduction_227 happy_x_1 +happyReduce_228 = happySpecReduce_1 71# happyReduction_228 +happyReduction_228 happy_x_1 = case happyOut76 happy_x_1 of { happy_var_1 -> happyIn78 ((:[]) happy_var_1 )} -happyReduce_228 = happySpecReduce_3 71# happyReduction_228 -happyReduction_228 happy_x_3 +happyReduce_229 = happySpecReduce_3 71# happyReduction_229 +happyReduction_229 happy_x_3 happy_x_2 happy_x_1 = case happyOut76 happy_x_1 of { happy_var_1 -> @@ -2788,8 +2797,8 @@ happyReduction_228 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_229 = happySpecReduce_3 72# happyReduction_229 -happyReduction_229 happy_x_3 +happyReduce_230 = happySpecReduce_3 72# happyReduction_230 +happyReduction_230 happy_x_3 happy_x_2 happy_x_1 = case happyOut66 happy_x_1 of { happy_var_1 -> @@ -2798,15 +2807,15 @@ happyReduction_229 happy_x_3 (Case happy_var_1 happy_var_3 )}} -happyReduce_230 = happySpecReduce_1 73# happyReduction_230 -happyReduction_230 happy_x_1 +happyReduce_231 = happySpecReduce_1 73# happyReduction_231 +happyReduction_231 happy_x_1 = case happyOut79 happy_x_1 of { happy_var_1 -> happyIn80 ((:[]) happy_var_1 )} -happyReduce_231 = happySpecReduce_3 73# happyReduction_231 -happyReduction_231 happy_x_3 +happyReduce_232 = happySpecReduce_3 73# happyReduction_232 +happyReduction_232 happy_x_3 happy_x_2 happy_x_1 = case happyOut79 happy_x_1 of { happy_var_1 -> @@ -2815,8 +2824,8 @@ happyReduction_231 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_232 = happySpecReduce_3 74# happyReduction_232 -happyReduction_232 happy_x_3 +happyReduce_233 = happySpecReduce_3 74# happyReduction_233 +happyReduction_233 happy_x_3 happy_x_2 happy_x_1 = case happyOut71 happy_x_1 of { happy_var_1 -> @@ -2825,20 +2834,20 @@ happyReduction_232 happy_x_3 (Equ happy_var_1 happy_var_3 )}} -happyReduce_233 = happySpecReduce_0 75# happyReduction_233 -happyReduction_233 = happyIn82 +happyReduce_234 = happySpecReduce_0 75# happyReduction_234 +happyReduction_234 = happyIn82 ([] ) -happyReduce_234 = happySpecReduce_1 75# happyReduction_234 -happyReduction_234 happy_x_1 +happyReduce_235 = happySpecReduce_1 75# happyReduction_235 +happyReduction_235 happy_x_1 = case happyOut81 happy_x_1 of { happy_var_1 -> happyIn82 ((:[]) happy_var_1 )} -happyReduce_235 = happySpecReduce_3 75# happyReduction_235 -happyReduction_235 happy_x_3 +happyReduce_236 = happySpecReduce_3 75# happyReduction_236 +happyReduction_236 happy_x_3 happy_x_2 happy_x_1 = case happyOut81 happy_x_1 of { happy_var_1 -> @@ -2847,8 +2856,8 @@ happyReduction_235 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_236 = happySpecReduce_3 76# happyReduction_236 -happyReduction_236 happy_x_3 +happyReduce_237 = happySpecReduce_3 76# happyReduction_237 +happyReduction_237 happy_x_3 happy_x_2 happy_x_1 = case happyOut60 happy_x_1 of { happy_var_1 -> @@ -2857,20 +2866,20 @@ happyReduction_236 happy_x_3 (Alt happy_var_1 happy_var_3 )}} -happyReduce_237 = happySpecReduce_0 77# happyReduction_237 -happyReduction_237 = happyIn84 +happyReduce_238 = happySpecReduce_0 77# happyReduction_238 +happyReduction_238 = happyIn84 ([] ) -happyReduce_238 = happySpecReduce_1 77# happyReduction_238 -happyReduction_238 happy_x_1 +happyReduce_239 = happySpecReduce_1 77# happyReduction_239 +happyReduction_239 happy_x_1 = case happyOut83 happy_x_1 of { happy_var_1 -> happyIn84 ((:[]) happy_var_1 )} -happyReduce_239 = happySpecReduce_3 77# happyReduction_239 -happyReduction_239 happy_x_3 +happyReduce_240 = happySpecReduce_3 77# happyReduction_240 +happyReduction_240 happy_x_3 happy_x_2 happy_x_1 = case happyOut83 happy_x_1 of { happy_var_1 -> @@ -2879,8 +2888,8 @@ happyReduction_239 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_240 = happyReduce 5# 78# happyReduction_240 -happyReduction_240 (happy_x_5 `HappyStk` +happyReduce_241 = happyReduce 5# 78# happyReduction_241 +happyReduction_241 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -2892,20 +2901,20 @@ happyReduction_240 (happy_x_5 `HappyStk` (DDDec happy_var_2 happy_var_4 ) `HappyStk` happyRest}} -happyReduce_241 = happySpecReduce_1 78# happyReduction_241 -happyReduction_241 happy_x_1 +happyReduce_242 = happySpecReduce_1 78# happyReduction_242 +happyReduction_242 happy_x_1 = case happyOut55 happy_x_1 of { happy_var_1 -> happyIn85 (DDExp happy_var_1 )} -happyReduce_242 = happySpecReduce_0 79# happyReduction_242 -happyReduction_242 = happyIn86 +happyReduce_243 = happySpecReduce_0 79# happyReduction_243 +happyReduction_243 = happyIn86 ([] ) -happyReduce_243 = happySpecReduce_2 79# happyReduction_243 -happyReduction_243 happy_x_2 +happyReduce_244 = happySpecReduce_2 79# happyReduction_244 +happyReduction_244 happy_x_2 happy_x_1 = case happyOut86 happy_x_1 of { happy_var_1 -> case happyOut85 happy_x_2 of { happy_var_2 -> @@ -2913,8 +2922,8 @@ happyReduction_243 happy_x_2 (flip (:) happy_var_1 happy_var_2 )}} -happyReduce_244 = happySpecReduce_2 80# happyReduction_244 -happyReduction_244 happy_x_2 +happyReduce_245 = happySpecReduce_2 80# happyReduction_245 +happyReduction_245 happy_x_2 happy_x_1 = case happyOut88 happy_x_1 of { happy_var_1 -> case happyOut22 happy_x_2 of { happy_var_2 -> @@ -2922,47 +2931,39 @@ happyReduction_244 happy_x_2 (OldGr happy_var_1 (reverse happy_var_2) )}} -happyReduce_245 = happySpecReduce_0 81# happyReduction_245 -happyReduction_245 = happyIn88 +happyReduce_246 = happySpecReduce_0 81# happyReduction_246 +happyReduction_246 = happyIn88 (NoIncl ) -happyReduce_246 = happySpecReduce_2 81# happyReduction_246 -happyReduction_246 happy_x_2 +happyReduce_247 = happySpecReduce_2 81# happyReduction_247 +happyReduction_247 happy_x_2 happy_x_1 = case happyOut90 happy_x_2 of { happy_var_2 -> happyIn88 (Incl happy_var_2 )} -happyReduce_247 = happySpecReduce_1 82# happyReduction_247 -happyReduction_247 happy_x_1 +happyReduce_248 = happySpecReduce_1 82# happyReduction_248 +happyReduction_248 happy_x_1 = case happyOut9 happy_x_1 of { happy_var_1 -> happyIn89 (FString happy_var_1 )} -happyReduce_248 = happySpecReduce_1 82# happyReduction_248 -happyReduction_248 happy_x_1 +happyReduce_249 = happySpecReduce_1 82# happyReduction_249 +happyReduction_249 happy_x_1 = case happyOut7 happy_x_1 of { happy_var_1 -> happyIn89 (FIdent happy_var_1 )} -happyReduce_249 = happySpecReduce_2 82# happyReduction_249 -happyReduction_249 happy_x_2 - happy_x_1 - = case happyOut89 happy_x_2 of { happy_var_2 -> - happyIn89 - (FSlash happy_var_2 - )} - happyReduce_250 = happySpecReduce_2 82# happyReduction_250 happyReduction_250 happy_x_2 happy_x_1 = case happyOut89 happy_x_2 of { happy_var_2 -> happyIn89 - (FDot happy_var_2 + (FSlash happy_var_2 )} happyReduce_251 = happySpecReduce_2 82# happyReduction_251 @@ -2970,11 +2971,19 @@ happyReduction_251 happy_x_2 happy_x_1 = case happyOut89 happy_x_2 of { happy_var_2 -> happyIn89 - (FMinus happy_var_2 + (FDot happy_var_2 )} happyReduce_252 = happySpecReduce_2 82# happyReduction_252 happyReduction_252 happy_x_2 + happy_x_1 + = case happyOut89 happy_x_2 of { happy_var_2 -> + happyIn89 + (FMinus happy_var_2 + )} + +happyReduce_253 = happySpecReduce_2 82# happyReduction_253 +happyReduction_253 happy_x_2 happy_x_1 = case happyOut7 happy_x_1 of { happy_var_1 -> case happyOut89 happy_x_2 of { happy_var_2 -> @@ -2982,16 +2991,16 @@ happyReduction_252 happy_x_2 (FAddId happy_var_1 happy_var_2 )}} -happyReduce_253 = happySpecReduce_2 83# happyReduction_253 -happyReduction_253 happy_x_2 +happyReduce_254 = happySpecReduce_2 83# happyReduction_254 +happyReduction_254 happy_x_2 happy_x_1 = case happyOut89 happy_x_1 of { happy_var_1 -> happyIn90 ((:[]) happy_var_1 )} -happyReduce_254 = happySpecReduce_3 83# happyReduction_254 -happyReduction_254 happy_x_3 +happyReduce_255 = happySpecReduce_3 83# happyReduction_255 +happyReduction_255 happy_x_3 happy_x_2 happy_x_1 = case happyOut89 happy_x_1 of { happy_var_1 -> diff --git a/src/GF/Source/ParGF.y b/src/GF/Source/ParGF.y index 3399c0862..944fe7562 100644 --- a/src/GF/Source/ParGF.y +++ b/src/GF/Source/ParGF.y @@ -456,6 +456,7 @@ Patt1 : Ident ListPatt { PC $1 $2 } | Ident '.' Ident ListPatt { PQC $1 $3 $4 } | Patt2 '*' { PRep $1 } | Ident '@' Patt2 { PAs $1 $3 } + | '-' Patt2 { PNeg $2 } | Patt2 { $1 } diff --git a/src/GF/Source/PrintGF.hs b/src/GF/Source/PrintGF.hs index ad9dd46c0..71bfe4dd6 100644 --- a/src/GF/Source/PrintGF.hs +++ b/src/GF/Source/PrintGF.hs @@ -402,6 +402,7 @@ instance Print Patt where PSeq patt0 patt -> prPrec i 0 (concatD [prt 0 patt0 , doc (showString "+") , prt 1 patt]) PRep patt -> prPrec i 1 (concatD [prt 2 patt , doc (showString "*")]) PAs id patt -> prPrec i 1 (concatD [prt 0 id , doc (showString "@") , prt 2 patt]) + PNeg patt -> prPrec i 1 (concatD [doc (showString "-") , prt 2 patt]) prtList es = case es of [x] -> (concatD [prt 2 x]) diff --git a/src/GF/Source/SourceToGrammar.hs b/src/GF/Source/SourceToGrammar.hs index 6465b6fc9..ffba51d6e 100644 --- a/src/GF/Source/SourceToGrammar.hs +++ b/src/GF/Source/SourceToGrammar.hs @@ -559,7 +559,8 @@ transPatt x = case x of PDisj p1 p2 -> liftM2 G.PAlt (transPatt p1) (transPatt p2) PSeq p1 p2 -> liftM2 G.PSeq (transPatt p1) (transPatt p2) PRep p -> liftM G.PRep (transPatt p) - PAs x p -> liftM2 G.PAs (transIdent x) (transPatt p) + PNeg p -> liftM G.PNeg (transPatt p) + PAs x p -> liftM2 G.PAs (transIdent x) (transPatt p)