From 6bb573eef30e7c8bb37192ea42b415252755159e Mon Sep 17 00:00:00 2001 From: Iavor Diatchki Date: Mon, 18 Oct 2021 10:21:33 -0700 Subject: [PATCH] Add the basic Cryptol classes --- docs/RefMan/RefMan.rst | 113 ++++++++++++++++++ docs/RefMan/_build/doctrees/RefMan.doctree | Bin 128008 -> 135528 bytes .../RefMan/_build/doctrees/environment.pickle | Bin 192381 -> 205668 bytes docs/RefMan/_build/html/RefMan.html | 108 +++++++++++++++++ .../_build/html/_sources/RefMan.rst.txt | 113 ++++++++++++++++++ docs/RefMan/_build/html/searchindex.js | 2 +- 6 files changed, 335 insertions(+), 1 deletion(-) diff --git a/docs/RefMan/RefMan.rst b/docs/RefMan/RefMan.rst index 0d33b469..47cfd9b2 100644 --- a/docs/RefMan/RefMan.rst +++ b/docs/RefMan/RefMan.rst @@ -701,6 +701,119 @@ Functions f p1 p2 = e // Function definition + +******************************************************************************** +Overloaded Operations +******************************************************************************** + +Equality +======== + +.. code-block:: cryptol + + Eq + (==) : {a} (Eq a) => a -> a -> Bit + (!=) : {a} (Eq a) => a -> a -> Bit + (===) : {a, b} (Eq b) => (a -> b) -> (a -> b) -> (a -> Bit) + (!==) : {a, b} (Eq b) => (a -> b) -> (a -> b) -> (a -> Bit) + +Comparisons +=========== + +.. code-block:: cryptol + + Cmp + (<) : {a} (Cmp a) => a -> a -> Bit + (>) : {a} (Cmp a) => a -> a -> Bit + (<=) : {a} (Cmp a) => a -> a -> Bit + (>=) : {a} (Cmp a) => a -> a -> Bit + min : {a} (Cmp a) => a -> a -> a + max : {a} (Cmp a) => a -> a -> a + abs : {a} (Cmp a, Ring a) => a -> a + + +Signed Comparisons +================== + +.. code-block:: cryptol + + SignedCmp + (<$) : {a} (SignedCmp a) => a -> a -> Bit + (>$) : {a} (SignedCmp a) => a -> a -> Bit + (<=$) : {a} (SignedCmp a) => a -> a -> Bit + (>=$) : {a} (SignedCmp a) => a -> a -> Bit + + +Zero +==== + +.. code-block:: cryptol + + Zero + zero : {a} (Zero a) => a + +Logical Operations +================== + +.. code-block:: cryptol + + Logic + (&&) : {a} (Logic a) => a -> a -> a + (||) : {a} (Logic a) => a -> a -> a + (^) : {a} (Logic a) => a -> a -> a + complement : {a} (Logic a) => a -> a + +Basic Arithmetic +================ + +.. code-block:: cryptol + + Ring + fromInteger : {a} (Ring a) => Integer -> a + (+) : {a} (Ring a) => a -> a -> a + (-) : {a} (Ring a) => a -> a -> a + (*) : {a} (Ring a) => a -> a -> a + negate : {a} (Ring a) => a -> a + (^^) : {a, e} (Ring a, Integral e) => a -> e -> a + +Integral Operations +=================== + +.. code-block:: cryptol + + Integral + (/) : {a} (Integral a) => a -> a -> a + (%) : {a} (Integral a) => a -> a -> a + (^^) : {a, e} (Ring a, Integral e) => a -> e -> a + toInteger : {a} (Integral a) => a -> Integer + infFrom : {a} (Integral a) => a -> [inf]a + infFromThen : {a} (Integral a) => a -> a -> [inf]a + + +Division +======== + +.. code-block:: cryptol + + Field + recip : {a} (Field a) => a -> a + (/.) : {a} (Field a) => a -> a -> a + +Rounding +======== + +.. code-block:: cryptol + + Round + ceiling : {a} (Round a) => a -> Integer + floor : {a} (Round a) => a -> Integer + trunc : {a} (Round a) => a -> Integer + roundAway : {a} (Round a) => a -> Integer + roundToEven : {a} (Round a) => a -> Integer + + + + ******************************************************************************** Type Declarations ******************************************************************************** diff --git a/docs/RefMan/_build/doctrees/RefMan.doctree b/docs/RefMan/_build/doctrees/RefMan.doctree index 4fb8de0cbfb36c423c4d5ee88e389f9c5e07bdc4..63baa1a724e24cca8509fe9e4dbe60b50b295163 100644 GIT binary patch delta 10466 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 SjjrrkSC(hFo&EV6$oe~2$I`|C delta 4584 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 L2Kj?g+ zQJy4}ocfp}HE;+-CBNBQJ$>h4)jK~_5^HtWUStRy|I^B z*%ZnMy*(~|b8aAifo5$ej=%EW^7s%xTHbO;fx6#+f`0O&T%lg{21l#)!dZO(V7b{U z*T(5h+h1|ct+qiDJXz@~kh>IaZ}y>A&6chM3qAVfn$orYGA5J$a!T99<7bt2@Gt&y zQ0vaj%IE$n{&Qq(0>&X)UMYV1tI@w(^+w>|Nc{dv@pp696@a!0T1En2!AuhheEIoC zz23SobUt`@;XJ(7g;~+TAjH6^-c-6pfLbrD8Msz=yEQg=`(P8EQZ!j7n@qZm zCVU4NAYkk+?GX*u6umLGU2Tmt>STxF;WoEe92slZ*fBtpVNI=)*8~G!EgEc~1{3vS z8-x<>;frfqjq(H}T5r|rEpH@L_>tzMTkvL|mYp_B^{Elz=$i6j={XOTO5nY}sRR#M zB`+EB2waqCO0qUaZR)J=5oOOV-5}ts4;e# zoNRbd;_wY@llbjl4noVdBHTxzJ~2^;X@e|yPrPS@b8wL(-ekF29}gJFk6?ewqfN{i z*fzX#Yh?Rak3Php z{c6#p$SzR$owPHX@v5@WmEJf?bt(L0tteFBdO4oTBGpNVROJ1%(ly1*(Kf zeG<4hvmyr!7PQsdt;sfg zS2%tw=kY^gFH{*m53U=&7~?6~ogzNr9LV;Ac(QNEksnLuG0Bl1*9j3XO)C-I3TBNo z3-D15@Qi(zWIBzn#Sys7aSv!kGP#ar;!Q&@$`sN;t?0?EBU6nsqElV-DQ+Y;8Hhu4 z%kBxo9mT=)0eg|nO^g&(Pe?q_>J(?7`fZUq+)lqJlfnXzuLWb=($6;?&g@iHB@PSmzdWaJmH-jJbd){;L)QGj@)DiOE`LR}Z2Qm%n5T%3KVvLAC#dc7rjUG&Z& zNEoLe+F$O~1`(Zx&9+6&B$ROavt&4Gwk~QWTv-S}>F4YyMs36^G$C6jJ@25LHihjs zM3B&)$I$Sd0;}OoP;8^Wzasip#0qY$0Kbj+A_Q?|)MTPu!@R69F;ewv;}}^Z-YBeV zw(65p^+u7rn^%hnR?rl&RrQE zGYU$I9KvQIemN7tx;%o#^usCe6x3h8yWMQ;9xc~)m&)x{xf*?E9I5zY=vSBnsdp9XsL{5$(O8*-VyjGnXZ%83zA z=__U8EB%kuR?Lyam>-#5@VfL+>FVHje>Ha_XY!@%!{-92AoP%O3*d_>67YblEs@iU zzLT@3Fnv(EHUznzyAom>E8{bNWxIB^R-b~#1ds(f&4M8636-dR{=5zQtk84e@B|ME zlu4Q0sXiJ12RX>EY5NqP1X2t6q>X=2G!k zpiGaEzL9Zq*c79}BtpE`sQn=#7ehiA(r;nXCg3Q=P%%|5QV=U?6xj1%3QML*ru3Qt zioR%}1QOw!4GdYCZVToa?`h0!ltY1cKWD z|EOmoSESIe%67DvH=zZUav#Ru@kiHtCXCB|gXZ(sLT$txbw^O>Kbby;&E}AG2ZeR=iTIQn= z^cSjblj352yn(_Qm}%jxF+JNDy=ZvQDulxiEa6X-H!Vax2F&}!+K@_RJGvl4oeWm*uk4?}n&YZ<{XG8Ex$^7v*mj^ErWgq6^BI^A9 zAgdunwKV`xL&nZ)x#cQC&bHJ?`o0yYTcJcVAAjY|2M1sJtXuNJT>Q1%q~=XgsD{_e z+BM`9gh$)V?`Vn>hS=ehm-=PUa@wth-W;yxrjbcSj-rK8T-xsyg~>@V>xt(u_?wN~ zpg4jwF1svXB<B6OwI__acYqCXQW=M!T?3MDKduM1SVZ!UPZiWw@3Z8 zBEICbE+W4NmiS?Y8=1Nw$37%PgkYLlY?B%J@L>r_cjTs8^fFl02w!5+0*|jWzNxt9 zT#+iJx0{W(6h+TI(C2S8o=?soF<(pShH~Tyy*FD$JT7g;s}%y)>;unj`&(rALB1ah z5L4jUr~OUZbGUV6XP!ppt4>KFauI$%$fO}dq%byk$h$yAD1(lG0UUVR---!`dv?Ub zC)E)s5M{I=%UAnrCXw`_Xo%xh-wCEEQ&Uqzg0P`_V|+Kpo84&H+>J1qz6cX|NW=JR z8e;_o#x(&94!efRUTchD&^(F0r`Fo{>&i84x>-8!ucL$*B}7K1DGf|qASc~ykLpiz zB^NnL_Tunj{^dMv23L?E!rTEfSPBG-pmVdD@d;9|NW*f*x3tusD?#b64Wcv12IDe^ z*8UoXIuazG+Wsn5XG)RM+QnEMvmDCXH)mf5y$zN}e!%ZXQcOI*Fk88!@3PCDfA}+} z&K~w&Fwyjpd8LsKlW+3or2&7n%yDAyqvaQoj)J)19F~%P|M2W9X0asGFZ1t+*zN?x z%H8-MzgUYYtLMUot5fa_VdD2sz%d~u{Rf`+5q$W$R0Vcv%SIJcFpT@k3~;E{}oAOYsJR7i-a-Se1d;P&>)I{gs$K zb94s9TO$oM2>f7d~(_gy-LuI)z z*c6z=6!kYU_Z(By_cMqtirRbb-s8bRHh4PNG`Oq165Rb_W*So(KDb*{F^O^a^O<{& zard*`x!X~7E0&tO{>03r=Nv}{&23?&+F)<&t>Ey|rCHrwS`Kg6(E>iS4jkYUWAbI0 zJC8B>TefnV!H0qc|6vQF6@n0=_A(4ml8^|CKVd9-t`sXCbZ2Njt~s*cp`d?XW+|jq zft5Ru-KXATlHZfL&zR%~Z9yzJ&-?Gj8a)lBI@hDeg6}WNOh8(`uiAmQO<)k?{E5uH z#yI~1TM!G*`PKLH(gEe54d!ca1pm)xCL=BX*X)RL;n@0PhM3ctJC2Eu2{BE(}6WRuqlR8 z!Hh>t6SidTIHn038HB}b)^@_R@ouD6kqUS2mD^Me{wBN^T)sUsv1yHN(++G*BAf<; zt+NU7$E}&WkMVl1Er>|pcMEZKN-@|9Wy2%L_LZkQjal*6LL{d%6O>jY8+SnMfl;@S z>BX6Qk4fZ(wjdTd{P=N{#pp+zh@>Wtw1)4M3JjtB-t5d<$p4B?=gw|ge`~#m&nx^p{wOW zx#h5E?yup95jMbyJu_Mq*R`dP)5kNDnO08M&gXnoyc@35e zgJTm$(5t@^f*8(BNLr0wi%h42NlXeunR|{&;TBsE3oZqCAM66B2}m&ar}3ldwCc_a z#aTnmO6G1Zr1fZKg40TCI~Lsp#)Cm_fJTz$V5>eTPe;Zicq}tEF$q3w3&ND3#r!@> z5eT1Y0V2XeOqnb|L|BMPvIU3;iv>$mh?RHNVLf@ZT74sw^anG`G_8`Zk?ZcPnepWP zYcqEo)5q^;5Q{i^F1xF2E=Gw*f|tLPnWVJ5T)tzJdX5?OyEFF~W8%APK}3rDP9cX* z83_B>@I)J%y_>uMa?Hc&F>DRfJn^Q420|2noSCY$qS(9xMJRw3FLN{`Rx!c+QRe<* zg86;H)y})0I`P{!6yI>TfTNjoKF+zf>{U%>$6pIp|668K)3SQw4mZGP5KEDSQH;_5 zoVoWHqyNDcL}US97qaTLMAkn_hj2RyB=%Ow7I|OhZeuEN z#1_QDGrz+U#j5DJV17L_3F(>NCF5Gn+-;2cWm^y?^DT@gvOf{qS%8SJSg81V>%%zQ zfuk8kuP9eX;!A=Z+6divOJ)wI)s4${&^b?mn_MSJUM74~W)xz2@+3u3`Vu!;5~!{Mm>*32NOfe=Xl%7qFD zH}9Zb$zE}=t6Y|6?ms4%K3fnAE|+C5@fvmAA&EzV_q#G9p4J$a?|6cGj#|b#>d^H20{{#WF{)DBxtpWvFbYF9?jf;OfKJT3u3|LvOy#k z52Fe~3Fj11)=~3K@z+8ot;__amB~h#e8iv?U=*{I$20dHlSs`L#DYs?^Zhu7hLeV! zO(n5~kjon~la*F3Td-+F;MLVwUY{9(m}q{;7Q}*!rvIMuxiXi2)r=&1EQIjunF&ZM zgjG9=0R}OncwgpTW1N4FEr^BZ{4qM*jr^7Fp8CVbg7aU$2G-;k{6a4Ja;^?KE>*mDnV9ZFS#jvNm(~ zG2O^9h((;PuVr52{BONBGhyT^jdy~_!hQmEW+yJP54-_|Iy3@q-FoA9Vm^{VHx;X=3Zl*f7lj;$$1Nx6?r{jUlt%D zEEdY^tvt%roedidp9=B6A~P4$iobt{s4ktbdiOn;IWej2w{o0lH;Z!75Qs;@N zV6F2I7tYq~t4lk<@waCtJ}t+u+EG$)92D#y6ope_zVD|pqY;zATWvu^y8mV&#!kM^ zdJn-mDWLl&CQ*6WFah(Wkjp1BQ!l?OmL)bZVf=RHzGK4pEy2mf+c&UA@D>N= zsH(7L1Ntk$-mhjRF)e%7?ht&%K{>)C#@xTj+;fb%e`O0I()2G1`E=5B+hyT(_myd8 z<0LD(@lr@){i=luYS+U75jLF_eNE=RW3pIf3u3`#vF!!4OoS~fMW>tl>D)}nXJ2Ll z(^|@vJ9r_BFbqbAjxK3WW-MZo8ngvrO3EUS=;U-jq*9vRdslG zzTrdH883xy6f(0kt!}KxIXlKiT)&dwNAsEcj%mahTM(&bVI47SeFSxtki^E3>nB13 zHe}MFjS$VNGSik;G?(w7`f(v{(sUCf^nIC8h)L)v2C;~7_0<$ZM-Edx6lHL~YfB-6 zpUKRCv@*D62gT8m+tl%tY>W=v{d8tTVv=~9Er`fg-XetA>zLyj-Bh##cZSTmHx)wr zWM)Fs3hi3MaI_q9h!l$jhzJXj+Ohx5eQEDHf$cWewQ}_BDM}%`T`lzAvC`GCjiWSoi`r>rlm6 ze}k-6iVEI*^Ilkn_6#cbZs78wxcUOMmZ>IBk-k_@w3+R8~GE_W98FN`^o14f#sUmLBWGO0z^Y^Ri9=nm| z%*1FNmlE{1x}$SlaAO<07_K-SJi*~p`Wq#Z!xEPG z6Sc7mG_vB?_2uR;!pj_MSn{tdP)GA)*H=59FxYt-n&F z!8ArJHBd z8CNbGk+`kGq4ls!lv0;}QORw>*I!X}M?I7xA`t!K9&Wp%+psDxNAIZE9NeQSN@PPn zMou)`S`)VxV1vvfjr#NqYU2)6oq2VrB$4e{lm3Z^DA+bnQfqDh#3I^8MUH z3uRj?ufTVeSJMApMgMy>{`accSI&;&8kK(VRNw;2W+)yNf1zgb_oCT=@vXl`3^7h; z=s%!9Um(~{kGPfesJX{@Y^eqg_26prXs=+o8dah?pN@o zCaBE4T9&Ej%XRz>_u|SGvWZ7)<;U+4mBdk__jR+Qu$HPQMO^tg^y06*2Y1BKwqN?9 zDJmiRn{WvU?(M)`I^xb0D%}iST19p^BHe_)8Y)JW>**!}dMj%GQ>k;h1c1tK50E~e z4yk%Ck@h}z15`&C*JwO&KNZx*wY#OQ08Y1xQq^m{9J9aq9(fb0lh5zI`DW+l-TC~i zEUZ0Hc@*%J>cjrB69g})yM3B^6OYvFA~b?4O@9=)Wm}t-qx}gYC8VeFYxwhl`vuGo zF-%#Fo1%_{qTQ8`5K~@^ufU`VBe^Q1QqO}b&jtKXEAUs!x?Tpya&bn9PF4v1X*~qI z_`EGI{+wtbUOdEnct}OlV$A)c0354|VC{FStc_rb>f`=;w}|^V`3gZCV}|tIN@79s zRpPE1s4bNB7+*@gpY3XJPmuBb&4kYH#}KhXd@8EiSH6K(;RtpTl!J#tm>J5?`pba` zZr<@%8aNPiK`)iiFP%#6DW>_A$54hXK!a5(s&=aCzG%nlzh*V8qaULuS5T0|ZN|go zE-U?brPx|XbsQHi94}eIxO6V;ui+LIoWB}4qoB5jKNFd81#m;7sUZ9q-_ce zYONfrM#R%7S%<(%oxW98#j zE>yTV3;N}8dGtom7vg{wL0<*xN@$_@ME{zxUE|Jv=e)aX^nx=mh9bo7PUqku=ahTK z8P#Rny{SrSAn@0qvupydOc4ds_@64{$`g3-bmct$-&Lg72$AYsXpctWh`194&X3CW zDn<8Q{hAcfz|k6LH>U`-DxFGFAyd!5^%w%UQYf4rVF{sQ?&SG1ve%>AG>cSn@)YqQJL%DaxMoK zX1O(9@WE{%Sca(A9E#|0c?nIThjOZOcBXKsz`-4NP7{+ewVi`mIxZce%0c1laq4s^ z_aI#jM_toQ3vb;P_bWO5Mx>B)pt`v6 z3_oW$g1Fh4#_vxA(L^pc&M#&(z4GnBs4NPGqW=&4S%@?0+`{ChkPLq1%sl3U3M&oJt>raZ3}w#|>{yE-I-89KHc z{sP1kf%n5^0o-~AzrdF{bcO~i*Pk$-M z4UiYvoF!u#PJuFhDYG)lIQB0IMYeZB7PiMT_qCc*Xg&JIyXfOiBX{Mm09hGZLDjfP zm43t~pz7ayOVyPfRa>X9OFJuSQ_677nye0`s|=U340X!nGb<`m%Ix~yQgLlpSEExm zM_VhZQ_5~{Z>e6bI8dEN?ae|`bfmWwJx?uD20xTIkg z_^gw*eB+dQ%oFFLp-=11S6`%{EbfC-YW7)MdXh($8`F*6I<09xvf{&xITq;!V*<{!7*(F0-FFyW`@a#0~n<)xCB~eL8K~$3F z2)Bx!%sGMyoz}eh&O0;p5j{`nG03-cPkK;(U=_tl=`$bSV`e_Ii_p~RM1`BO-Tw;7 ze<9KzzZeIsq(3OfZcZXziAh8-Q&%okbFlQ=#Aykd{L_>HGYF2n>7IMHfE+AB}pBhg68yKxE<^sg2{@MajV}%J_~TVci7)P`A@_2J-ole14|@hC8-{ zJ+h{-P)Cl1I7dhNH~~`AR&X!ZW5gxuTy>|y35Wf zx#y6znFKhunw#*D@<9eePELZ$!go1MPT$NhO1R#E&}vgs2n}if2DaehLMBv)r|C*D z$MX|spy_!|KG;OSp;~waSa@k$eq^UPcX{$+N=5eq7Z(-b7Csc$>@Z1DF-P;|tX29* zzGOrrDsZ5muyvr(C{Cya^QjXHp~@QK{=#&zuw4H0-g0^UPTj6`2F2dm(FRvxXwXes zKY<4QeQ#-Nkp?Zcf6@r^FAfSRq-5MI?mug8zp9IH&g(GM0o$LmwLp34+N{%ge;My+ zOwqv#L?iz7!S1xwS7?$;^82yoS+Aa>OXQaX{;3b+j7B3pn49xv5M~+TJtBJ2qZFXV zdoothZZm9D#fAcH`51NkkHUS1dntju2W z@!5+%LCX!%tU+PA7STI0qHj{9F5_xUA8>y%CKow1lBcDTD3q5g4@I%mpf6r7cHf#X zN}*bg#d#LS#cqb(YEs{mCg!8Ucj?jzy!J}$q@$bAb)W731qr6*j$-+TR*0sY0_Ja+ zE{TogEzFrlXPib`EM?~lrTXMhshOwM^%kvY(Lw$FIqYora#$7j8ns+`EGLhjV$GCy z&*j9v{hX{JgV*l(go__^wRCHSR-mk+oerG~|o~Q|rh)3vkM`IbCeo=@zS0D8Awi`4Su6p357)Uz()#5mLbBS-@Ob z?NZ{D8}&EJ83J|tgYsDAZRLkUj{G2g%f?j=c`S#AT0egX+-w*V{GXiw##?@2MbBB5fjwlHA{3~%sCyvcU3;D&7 z(HRcUv1L>o^7%d>(DbiJY=|QPXhtW1D%>m~rg@DX(}+P-&W)Nu^l}sCIvD2MR=pwa zL4t{u8yMJ{b)+ycc%dA=*p7z5*F#Dc8(<4KJBRB*ln*(1D*_?f{)%=O{K9rsx7iA_ zl485S>(b!%#h1Tv(XdnXv+@BjUO2h;({H^CQIn#gr<2A985NaAvqOyL{mN}8Ke%uyBlFWWY=)p&A zVMa3hFoWp5XZWOl)@vyUz+V4+e!KW_F#HpL2jkd4lE&0KjkVVcaakkL27xlr$d$LHqrnB~C39T5MAap8|c z_<`~*2c9kd5Y zkR6aBfgDJ*%^$tUsKQMjh&jH#1Ido$ofjWj(jc9&eTR~feSeRU&1v%Um*nL5*Fgt} zv5G#+vHHNXH7J3H{=FXKs*lxkD=d&b6i4<@GO}N|$jD-_W|yI>!BRX+RyxuHy;E*lMNM3g^ zi1f;vHp^20Tp3l`BH4xT$82GmgkK_xiooizE_(XC#7tFBmpqoJrmwJNOQfbx*@8%t z)?1{HwS^f;>pX))0?EIyMY0Rw zpR)rSzh}#!$kBd+LCoc7Wh>Ls0#$_+ z31l!4)i3l4RSQ`rsn|P&+WxjJT9JzVmf&FOy({S~>;D3(K=E6)D0U(HKWt%|WLrpM zAuQ|qeEw#(EbO(y5*eZ${C_th8v3JaU;`D#mxi_7oT$RvH_banzm`GFWo@!mg0-nz z$;9Ga@=mdR7avu~z~Jf)iCjH$kx@mkNQ$E4+P6D7K6uf^M^;s5p-6otN>9fGSXYr7enG$o^him?qg4(pU(W3%hx&TORpmh?`o5 z?y=-V^3U2bCJJKSZVMtwUOy*v;HPY1M)GCPQ}=Yijc z2SVJknHdnC?2xqTov~&4!Ti!+v zPa+}aFdfaZGpY*p(u2HIqdM3WHq$FqEz}@MJKrs2aLN{~NIOpoF{U=kw86z209PRS zBeqC(A^eAJVVZRh{6JvvJ26f6R-8pCa|{-JyOy@y>uh83!D3 z|AAjgsL>ErM3uKSqsHtxw^8;`b%848hNT(AeLhsx78P|TCfo8hUlcmx+j4MWv)3pW zxVTAE)RM&&L0pG+YzC!}P?HvS4{=?)CT<@l?l+B+3>Oy_EhzgO@sT1ZS#1PJs=e?&LEcvwX63UTiRy9j zgEg_@2j37F^thjaPW}8_2TFT!_&lnZpk+6r$C_ZT-4bZ?)%eXyut}rouM5F$vxOOr zrdt_A`W(f|qoS_0uHxZSjriw;#P795vQf4ErW z`=oV4h#qT}Z~@Q-s^@J{?Lz*vEliXAd0E0S!NJ}rt2z}mmG#ZUOifvnmz>{X%a%x4 zf7}*ClC(Z3G~f-kFe7QbovwTbPlwKFuJ~tL(a??P?1* z|CI}TN2;#1=1Wa+zlELz+TXB6y9+D+k1b4-6_<|Us+$T-#l3c`skq4-4z5Q#tLQdT z+^cOtBuVSHga&N0g&9d}D}zX{xc&E_Zela$XrsrPvK|Crn=gUR`(G?UiwH>o{&d z5^75q9MLW+Tr7 zw#DiDY zUuF>Lm34bCIB*H~cGDRUYZo30y(4u}8{etN^eNhF3cm63K*87JH>=pQ3&Ymf!ZaCn z=_q*D-Fm~sO-;c&?AF_7%a};PciVzUlGi7Ng73108OduWgGjI7>yAuMq6mGhMWxcs zyo&i!Q{5M!CxQ0EwrF=@#e=pmO;%hYs*3}1)$zSu0*S|oovQ9GMSCp}4R(VxZCMj3 zZ`~F|lEi*bXhGE$W+bsPgGjHuR|Vd=S|7)fbE`Dr42-(Cxnr;4mb*37l==sOfgtB~ zw&ZkSk#7srWYHy})O1xiRiy8t*1t#$Rn>aAs9~>iJy7glwq;MG*zdLlktDU>7n<-c zTbPm5-pL@+EB5xg$}QYk0oFPL*zAC7eX$pUJ;*@qmf@Yaxi<(qm-omXKYy(Nm8ODCeJ&yUi>8>U+jb7ek`n^i?}~& zi@Paq3$zwu0*jGn!kzA7qRX!^Omr#QYYY#>x)Lp|V$?{iOKm|UN$d}W7F=cvGm_Z1 zgaM@9hq&^nJ6)b=Pv}MwK2^P2q&Ff3l|0+@2lqn@G18 zV&Ci=hh87xh8kwA`lhdQTtqo4_zONj}T-q90j*nFUQn?iH= zOR<49DbDy)(Ub0wp|I(%sNHg8+MSrJin9iRch+j48Q2_2IqyjDS&mG`yF-+L!pzbjOcwqmQ1G^ij^lEyVA z&a6qB={bl)9*$43=cn@k)|&E=>vOp_L5)5|)n{D5!p_Kb3e|d3Jbdy{K0lO8in$^b z5+YdS^o$5rM4&nB`Ee%dFdH1p7m;Pr8*g|BA;&lljGzuV9b>>k44>Y!Ne@yMrAOgx zr^%If$Q4)O(a*FQ{Um2%p2}=uGMbB`A3`jM=C&lMkj}E?CMjq%cLN~PNUEv1R=@8+ z^8G)vwsb~Ot4im3!yt4LV{h%KBO5cQd-9OhQ{X7y(Oc@i=Mu1Nbv*Dd1%&37p*dn$ z#*qImdYVTJx%rWB7zifl#`gBa7AngtAB9Q@L_T7xTuG7Re+rl%WSFsh;Zp~mbfzDB z>^A2X`tcm`W3Tuzj32|!lZS#h^0^4^!o5f$+(dFPCm_gA_tB^PjUKs)pz>A&0!6I4 zy@qTE)I}s%1WK0yi(pJ61 z8d1(fQs(K9b89+#nFPw-g%I#`!fl+TlWEK+dfA+r7_C=<;UtB6LCQXvw+bju8xHRg zeA3`}1gBH}?z`qGN^M;9=M7D`sV|cg>=bh)#3SifKL0VZ3CFT%gj^7JZH(!#&X0um zmK3I50bPD&*3^Gj3io6+N1XxLKeyu#xd43(>8mG4-rIW1pWPW9kItUVUt4eo$57$x zbmlA>((nidxLbP5n>Vw=yHp*l#sU8l$JI{m7(ooVPij;LazE5tx!>J`VN1i)?+HXZ z9%A$~c<5=k1w4E~Z+W;{9kSJ6)Ysn3O_Lcn+RcuRE?XkHn$Ps;-gtbdvvzY*3zhgv z9b6WOOxW@}VS03Qjij!^Kx6Zx=J1}Oy~te;?e+GlGaAfi=pi!Q!+RdvhaC(1_6!Xh z4Jdhj8_kP`cMsntn@lRncEA|W+U&#!dmnp_&Y6pXfy((n&Ch3M`@H5rhGa}-rb*E4 z7hw|Q|JdPbHDQ`zF29EZAU1T;Iyx36uw8(52Q(?;ikz&NJLQz{UM%_Jh_N>`j!gym z{4w6u=~nakD7eq(@5KUti*^^d6Xhz`SY@y~&8?Q@MZ;8ci~b_^D;&ZPlWRyjX~2=D zh^@M*^#?CBdIJ4_Q)c~-h1Y~=FoDQLBGtO{)fX1@;YglT5S_T?{8Z~IpzPhfrEF7z zW~vUwPiinXrKSh49L~0M8qUl;M4OTAI8K{)gwe85^2$iaU`gjrr{LDG1smIjXq^W~ zsgWH?^bt9{FO-{Jbq2|W<8AD?39|&Wd8gr3yh01UqDkAi3zU_hrOld_N(nZD=Q?a& z0^}D(-!ydUBwT_m zi-PP3Bt|HL5PSSeShPlR)f*dwuR-l~GW(qT7IoXJZR|sAw}P`M9J;_alqV(|*jos{ z;1=Ccl-g>M3%ifDU6AMEO^(>f%e$t{je<9(!&3JdX+IJ|`AQZig0u+up^uJBMzrpO zk@27A?>q>#z@Ttng%EqgLDd>9q zW_1oaX$tB{D%LR2*c9~2J)c%7I`_Oqn9jxe-5}lPVBkI@B+A%aerDDWS_Dy36D_pO>mtlAof2yQeA=X{Pe$~E zfH4%-U;(FG7;MheS~zxZp1Blnu{I>%cIkRs*RI#W3#C6|dEGLQp&qhceI(q)WSp+# zro83xJ~9xU_VC=ATPc8_7iI@49`iLt_#WL#awHBoV(QVGmw+@QeD{x>C?ULUVvwVK zS2TK+iYJs?cKZz3m#a+fWexfC(JyErF4O6ykst z1=&psVr-iAe|`+>vg$wN<7m$1*V+5bK}_9Fr%~&n~%%pttqTo z2cId2OY&pdju(E6O|&!_n{=@iInN&&;mUt8+*NfC z#-Ao6mTd@~-}o~u6<^ns_GruEf7mV>8a>A7$-K@0kmx z`E7WFPjYvY4^^}RN3B=d1Ek@bCl9I#@2&r7hrlg~nSWl*<2+OEz9$X5h9xW_Na z3c+s#~0b#9FX2dw~PdDvjGtYP84=2x*=Oc7pZlR zKfC)Hw#D?m=2fPzS$}^G*mfG|xjDO<_ryIyZ(PkU#{ny@=H4V%b01s{ZD~{&@B;J0 zbwYAw#vHu&%E5bIJ|{lD*|}AY-Wfi|ir%gH+`uh6;kBavGXTiv$Zy=@jEA4k{V`dA zh&=EWxgG*Am;nIXpZI=|KNlDb5)QgUdWN$-YgAzbv zDECFvVe{V11@24L?8@H~E126~jWcCF+)kS9J}UKD=YM=Mc=C%FBc^d!lB#G1|KMn& z+efitPxCp-p0hmiXi2_V|0wne8pJ-LP>?=5b^96aD)tdKP(MS0(raW02xm`1H;ahfh$g8VmexLX7GzwMRnaL0!|SyOjJ7nd_n;@ zRjOklF<&0b=S~d|4LwiL&kQi>_o^O+;au?`&yCLzRbg=j<_1_lAeo5cqM(n?D)31K z6B)|>NSn|{uV-Zb9U*ho`vl2{e~0T?%;dw#PJZZ{Ijx8S@RK>$^vTl73Z#Agm1SIW zGd(ywD>t2d1Av8_)qS6le4yefAJlR1uX#k8OSET+FLb7@0O6^ofr@#B@Uj#2VqLQ^ zUpz_@z!g_#6@a8GN;+%?2!ooVV+kW^Wh*sQQ`y}KRM8dR@@RE~EyhXX(zw(Iq9Gn# zRW{*qm~;9Uh{sL5H{D;=!r<<;FoT@+*B$f5j=Ht|h93MT>A`yunkn(dSfVyoeihdZ zUzn}DPy8SpDy#6nW*k9(13B42B_@e2TW||CYMIZhl>?;o0pO?10PyNCmO4SP)crMV zun8|b(B#dZvb>*9^e@C(#yxSsifpP08tmVE{}>kW$FS!QL$x?sj-%U?sM#Y|?8D84 z=GyyGe5oZwe10N4!-+U1VE`5@T7y+{AfVg#k}(Z-;9buEZZ_{4+bKt=!8LJByJw}K zS{0(7=7YI8U?zrBELbI(dQBReF7|i`>LV)L@0>?0^$4vYI2VH75a}Frp70umZ=Jij z%9B7e=Q4|Cep&a)PSl&rbMyCTpGmq|=z z-x!0Tsi&XtUZ}w<7swD^mzmo!Lm<=wL%41ZZm0tH=W0AR*>lM9PfeWF~a32(fC(<(AsPz7;TK9p zD0zn5=^2swxP>zpqDWL6&J4q$#D@us6K1@9gm5+LyF9}d?4%KFQFS=*z@LKxXNv*n z=YhYslQyUKb6b|f`qbfO{aw|1;jD95CQyyEF*j#p{fFKfYc$3EdK|FgaM? zYoA4*+JNC(K@gtuKjS4ti_?`fK7RPG8FPXpv=|uRz4eV&>h23TTK3u^;Vsk8^j(;OraxpF z8o!0W)Ro*o-DwwAu$Bo>LqkKx4E7SkO%;3KNuA7UI6qJNqaEaGs*S&Xl-%QB$m>`R zNHhq2&m0?P^*F@LS+TQA@5^sDefgTZ>$M^;e#LGF;kN9^?*OY8Bc1ef>c>1V5fFIbJLbbS)inKi zL7JPhrm0za=(kBr*0nFeL(foD45`dGHz0aHc+lA+6mIWc;b`~m%jG&W8AgPTe^2ta z`_ymM7q==e_K6ql!Jn&Z#zn+K6>p$^mCWilKhOKq9pq)IgTDsmA2~BKZD79bk|*fy zbJ;JY_qnG{pNkB^M7>4HyNBc%HA=rDDy=&&q=RNgK+WH?AAUs_uVXR$jRNZLi33*r z@Go@q!{S_Ap^n=5O;iV?d%uYaH#~gDGhsS-2UqMC3aIvqXgRFxl^d&9tMw`RD%iyl z`eBjdW^ca`y{LL!nI-a>!#@;fMCjKoIGmJU_$8^$I?oflPhY;Jy8(Kj;vLxITY>aq z&ME(ACko8u^{??k$b2jBG)wh%wa8k4iz2YwMsALXl1O4vH8`|+7RzU2YM(*0U zS}%C2j0_ZX3N!6U*|^{vXT{*XdL;iaa{TU1ufvVdfZ%3`E;5K z3Jn7=`hy^ZYA7#tSk9Da-1p@(p*X+LMR5{};ths z1?8YBy#HU3fVuU<9LFrfn)h`w%aXC6aCN>#OKR?gsJuKfA)>mx?s2-dR3#I*qCd>6 zu=5KIKG2C~(-k%Oh}x)IIExArXT#x!Ql;WZ8$1QBO6Llem^rwUv>d@Xe0dx$mxph{ z%`rM5A%Ar7D z%dTDAfa140@xZj=srzZX=b%#7mO%`VczF}H`NE>hEw0nTAIOj)=eAq*iLj1Lp@hON zxPM>_7ZYGX9b36}AwI>$@(365@;Z%txV|N$fr&*$L$fJ=k^2^QumuXyDFGCVZdQeS z(_O?$$xe-)K;^E@ta33QK}ZHZ!YJoidE1&G!tX{(k4*aG9n{$b?_=w^m8PtytgkNYgES@@sUs%s;X`UCuaTAi6Zgo&y9gblo+5op`1sQF+;L-gs z7Ohgp@K_y972<3$UUuoZYb^kAVm|%M{tf2Le)U~cvcNe((|JwJE8LW)n2&U^C5tI$ zG>JbN2dqruKSh)H^rXGdByAZs_8T;D8>T5A?|MGd=7^>bVyF2ysgm%s_11MF;xgjimg&FX~$$717zf&U%YWoA3>f_Eb z613K7K=0GNrFS{&lGc+ipIJ~tHQj_#>f|ivr&=!oJ#XqQJ(WeY1~m-z7qjEJC1Van z`jDJ7%vF-|exH_6f$q{^E5Cz{<;sPT5T@8{5kE?>9)>HOO~Prl*jtsSm0yEy2wLB3 zt0nA~jXm>!BB}bH47Bpujth0g9{00; zk^0%zsh@-EI%&r@J8*QMvZTW|v0^~|4^Mj7saS95E+%@csn9=$D)jfZDwJdxpOq@~ zx3)kp1Gz#6z9MuWHT`Q3H=FfB8MDE2sNAPB!FZ=}V%2p)k1O$;)sWeZ6U%IY+H+#{ zJzlfWDD$;1Iv=z*8W)_93)k5q+>HxY+X6MYVBx^O5xSMX7An;PV?!`@@Su8=nsIMS z8}z?J3`SyoB02g9TJ2MH!wTU9B5$hc+5#rb5oNZHef{nT9P;lQWly z8Dp>H>D|hd%CKVJe9vdK`cCgoG~_qhGAA=Ui5qN@?xq9JvIS~#;u103Rr&1)^A1AiFpD`5TXI@PZFC9rZ9kZ3 zy7$|%C)!eTgh7Z6YD@G@!j`8=lRSRFbb{(q2v9KsJA2Rra=@fUv3UkBx% z^fQpkKx_>L1tQc*KgShIlBe~*Y|G3jtavwrn9DcGR_4?NsDkW(6ba-&q8t6_MMf2~ ztOF2=j%(k6WJmh{UwmXqgA8O3B_sRg9wVF6wAoDR^9^LL#k^Nny?hl z644#*6}lE9LDC5IB^j-}%T`6B5$c@`BK@2wU9|ED7$%~XhiqBbjqV3*f!fo3{oT<9 zhdXl5#)gX`ZKB1|mS%Yz+b49zpR=_V$Bc*E@@xs~#;s9XpeDC0w09xmm}U7VpNs|^ zV-iw%6){s?Y3O_M$wZ@m+LkTRZ0QxYAdC?J3Va80>R0)``^@nz8;y$b(seZwhDUqpu))qvPu)Zcu^-pYpM#B1I29e%WmsPznV@Xgv(vqjAjfC}m45IhO`Yyl~#`?3iNOq(A9kxL2Dc=wnYt0+ylcD-_ zHvU>O+mD3&_>e8?-T3hvwm?mO^uTN_KpY6SaEfibSwQ&9ur0Vb`@mAUh4#vPrDpX>VAfY&%2~Q!}I6n z8JmpjiDY=?KDP8Joiy}*SF4@(1#uAmz$ zd(|QYLe*{gz#i_7J&(rvKkiGIgDfXgN3|LHQXi_nU5HZkCs>i&3gyW*ho4^sj{oeW zN#@!8Pn^KH%urLWG33>VR;mWNoT`@Oq{O;?5Xe6%vbDWQkBql$Wnz2o-m z(RK;{Mvg6PuREh}1A0`g3H;E$MfO9hJL!+Y2kTtVpQS~ zR{hwmPU48VhZ03}s+^&~TXAEjhCA2I3kv^>)1vB4PDq@P{=r#ZXY zaF`1m(hzg62s$+SxINFUPV|<(s9M4c;((R8)wVvwccwM`YJ607gW(a=Diqrxg%65b zg(V#6Rso#rpK@nVO5t4D&B?0-(Xdr0@hID%fn1b8`+*%=PFP7}8o7I5&Cra(vJ z>&UF4*K8tDO)U(|R53EDttB?4{FkLd(~v@F0d8E7VUY)m8X-wDfUBeh=sJ@y19-u} z@U6R?y?b^J?Gb}0{~sgV@U6M<72Poz{KKogd%{5!-||4X$GI?sTDkO@KK?BLe3h%g zcvJ^V7c(xtt`mPv3;gjw{R6WLO(U>6PIA<1$ULA-6^$>G4H}dtFz(b^F0Q}HMO7|E z|syC>}6)yQixyz!5t8XVzz=XeUmRxbo2!RsjU2mXF31wAajY&nZg_T{>n5r_b zJQZ5f%NE{}Zs;Uwb1wa9u1Z7q!kp&~Q7Gevf)2P`mJ18wuT#Ufo^dYZa)?A<=vK=` z5s2_iXg@tK5UYct12bGU`@@>9yTGBA-x7QmX$M7hzRH}EN;+8owZ{$$Gig8k{OOyPAmY3IP8Gu?FfVtC4I1p;d3 z#?XM8io1jcFfQ+;C-NVf2I4c4;0x4;%H6;cerJ&_;rX5TY+Aw(oG7)S&TMYPvzh_J%nY4{B)BpU4@p{s3~18^LQJDq!E+XM=1t(++6q}-#X0kI$4E)aTBsQ z4S2$E2Hd3SF->e~WF+`Qdr*Eb@L{ql;7uv<(>AU6slO5#*FWi^__5P$I2}Z+2=El9 z+&8VSBL{N-VrIF^CH&~X4Izg~DW94gctA4bF=59Tvd9$M zbT}nQa`D0tT{h9&l~XO9tkk1V$wX;Bji?461yJD?RA`~$v%%*O);2J4$2>gn1*VZd zYi_hP8T)BI5K6XoN9UE~m}%qmCzzvaScjX;F9+Og$&{F36Ka8B-$vG^@-Ur5bgtL} zvEUR=#<4EwyjqH98cKmN?(8kM?(T&Os>8J36Nq#3u}A*k;k5qXh`4aUE4k;&n2RD! zf-xJGTtZOGQwZ#Z!S)wiM}r}lyaCpG9NY=xIx?U=cI1%*1$?62HIR>~^_ zchPSPyYu6C2kx1|@i&NMKX@}JR;$b%b4rU~mqpj2-}=g~v5W2~uTG?2eRj$gwD`i!nZ>7i%i?J9Q;zo=4&ZVey^7-PD$0(IUQfJIQeC47{tU!CW(St-VG!P zIN@`pH*d;5i&+kPvZVnpmFp zii1_JHjb^~IH^GU9%x+_gFVu)6T!}L^3Y9e@!|D0>{X}PqFm}D7<^@7m|?=V5@5cD zv=k?tG+^{)-pym_5A)VjwKI;(cUwG+ByWwbMoIuUiX#g&L8jJNHKb`WzNT$Y7{=V( z%~Mz&z8MQaFA}>!+|kj7hn*kt21R+{M)smTIC;BTbfswYWBdNywkV zcZ|K*%L$P50MqbtGlwKx0M)^*&mLC9!5E?=4BBNLt+u#A(Pn}EVs|d$vA4&yH;l(( z_4AfOjkIypUsBVE2%PJ?0X3U*l@tHyARHkUO#HWX(p{}{zjHGyT3wS?SL-gI^~1fT zbr~6>){!qBrJ%tq)P=i2q*3cqTh33lP6BE^ZA(p*i&Z6e13bap-bBO1Px*}nKUOPl zOXtW+>5(){0-pR$Z+Ws#_n2CjzWFi*mB;%oyUg$RCa@>8S#Hk$@T_u6h`&NOWS!b& zGIaR$ru`$8_MNzd>Z9)3s7Q*SZU&e!nes$@;rO1XWsBuU~c`|XgSQss(fB0d zG@ZER{8Z~NAnkN-NxOco08yPf`g69Pn+N7(%W|=+C1;cRBbPhX8g^i{t-a=lNBAO2-n$VrI-s{gGDvCU40u7w z8JvA>*NQuX&suwFfg5uP@z4AW@j8xeg{{$v+B~^6D&S5J#k(nD>tpb-`60cVavMdO zAE^BuLVwD4b9`oYjOD7m%)f~7CIlq^CJ8At9CTX4JHd00cs>*`B;w2ca%L3G8?i&G z!Kp&5LwLjVB`}~K)vwWG(wE-kBqhPowYPT=ALmXv9wq69hiMCmHw;jd!+XW=dkG1^ z3Fg?Gi*9(>1_)2`BKo0z&I*i5f>@iu9gIal$hnOMe|o1=F+RtKC#LFy#WLpA zL<5e|1e0dX6Pn`M1PDyPbK^o?ou@e5cXT+}QQsP&eJf zPGe-zcvx!E4h$pd)pQ10bo;kRpXG;!@;iAyB&D))$(0urU97Lsb=99g>@!fBzmx{huV9?`BMF%_e^KTul^sMyY`oZW@Pi@~s^jMSZpN5kCjICso zP945MO7_#XK%;V1e<(zg`U(;49!re{+8d1v{}6KF?`#q7#)Yrh0yVi{;a8%f)1R`% z;$Oo;ThdGx^sZWLPu!uT$Bc|h<*FOtiqs83OLim-lQ;9Sll6kV zJ#fYAaI*s4GJ_S;1ImRf@w;QN+nyTg66rgXe0$7kTP{VKeNvFfyY2fNBehKrgpg%3 z!vyK(OO+gXHsC<=1v2$sVQV4NBwc%xw8KYj@rrcqnBZdSk!kbs5>8(^1ALS1F0Aa2 zwRY+vPi&!C;A_#R5RPw4KsT;DZ41=oiiNbIk*dcQc!=+L(p1(^>B|2gwyL8_?hp); z?KWAhf5DbfkrBSj7DSQ&e?qGDJ8gkR0(?7zNI$%6IaY6RVz9GbCpXa)`}feRQ0!0I zlF*GWzhev3F;e>6RGmoY(XT6?5$FjzibOM z64{p+M0!=ec7X9L6Q3JVh|z@>U>eC zY-Jd#4^$OWB#`ZisNU5pR4rtgq+@TBmb%jxuSmyk6f8^~OI<69aD{7~&H$F5YACWY ziUPrgZO+kFvql$qh+$~NmZ)x=I&BNovV9x-L0cDh0K-I;8W z-)qaH$Rc0HAm*}2*~+v?AiG_mM$T`xC)?!fdxflpM3Xe_ze}5Z(iX2s(`Ez{Q`_Wr zX_L+N=wPrK+s!UhwAXC&SAdVO&0n%5t{cbRZ41=on1v)4!Zx?%^WrEO50~QCBeh~= zg>f^*ZMVTEx~Z-Zj}u3wKepvtWUhb6Am%bx*~&Cm_@D&h1h7@%n?%(ArdOz2h&)LZ z-!6^!Q?__Ts`yF4($vPg|4}}6$V;ibxJi5Ll`0u-D~F=A@1w%# z&AT)-)9+^NHUKmue+e)aWBN&3^1Jc$QCpxUPc39^8o33C=(-%S@|Fcea9vKHT!j9! za1~E1x0|r|x}0J2oM5->a`e5c#zB8vmlG>Od<#yyp^P?_(pHO+ah)+LGv;*Mqmb!K zO~GCrD%dOOw}mab@NQ|!I%nd$dVTlQB=54sPRo7x?>WkDQFTwGteu#f9CmhKPiC}n zGW?BNqv&!g-2R9Xi!D@vt?BXGBJ`(nJ=ileo7w#4w{PqhJMcfI>#KtKN&NOE?UnU; zSUxtI{yglt70^vJTf6Gsc8$-E8s}lTA@9U_cW>1>IuHAo%>c;x1>Ex~9V(5=+O)m3?c`$|&dUteT3{xzw_x+D?~ zdanxhSSP5l`pR03N!l^vSv`t#YK1|r5^0VXzIe%JnhB{cJ#Skb^T&#weTr@fOK(7L zHw|d(!{@w4weA*is`=q?>zfu3R`??}rq9Q9K0HNhQHVV^{^dqdaP;(!&pK9=Mp{^rQzIB76&@L*VKWxsRYy+Cea;K<{S zi{h?_Fyn*|;s4=mIyK*(t@*(SJV8f3_yR*8W#|J88NZ{G`0wa(r|2^5(+Y;}ufB80 zPI8^!gq~!Zy3a2H__%bPx_%}&v3~4#7pCLtN4RhjH+s{>eRa2Nwt)1O{Z-SlSKrNd z&6Jziud5q3H)Z3#Vj$)~dt=;N;(!(7{(}VLK6wWY6W%>BN#=7Pv~LurCj%eAi%#Z! zC`;o5p7o1&?H{njFZR(CT6PxaGj?wuj)!}I_;~8ceLjmzU3p0}( z(X*k`i|L5|NID|jmJ%G%YAOupHiV^{zQ}lK?T*-H)4QYfD~;*MrsKFu0+Ccluf$)l zSNg8F^XQFNIuHk}c%?5ScqRYS0`0&tJv($Z(#XTtnlVyzAft~%**`gOF#INUFWElP zoW-{*jY&5A;3C`b7o`pBnwMb1o9Lz$RDbGb%CZfgy^YM>+M-$C(_8dD)1sHX#B0>` z$b#Fj4Ufl7tv5DYj009|_-jcvd?O)>0pJPz2!>N>So9{aT-_+rew3tTtwq+duS+e{ zd6S@J%ZLTB33u?+T9cUT={4y^rY3EAus+Tg8Frdx^B1gFuZxSnH+tpA0V{g-&q;dq zD~vV;tT*0hjtl%M(5!GqN@2*rlTT)7{8-pF2v|EqCf^|nH#nUe>stO_lY}Ijd($G@ z+`mej)Ac67<~CJ@at}sJ6EO=6+9=Bx-7{a^r;eFx2nX^$K3qV${-ZDrNHJhx|S z{MES8^u`*0B@S4z#{ZjOjVG_b{E=owFfpnlaeuAljpJ@r>FAaDQt*b-L}ZV*#7sYn~^TuiaJO7I#EN~!HAB)@pHAAfr%#8)MyHMi;6gN=E0);h#JebF> zN3;277}bSQNuK4m7TL2bSt^#ZbsI?VEE_}?9igDyaUSz4q6L;ql@`{cJX>9Qukset zt85PW-f5WUPuQ`1K5qZLaV(#W16CZ%nx*ljsguuxV+l|vBitRc>)>tjcz;92_LfEt z)LM1M1YR!;0FqFXjqm|VQ`}26cj%w=J4qjKEiUqZvON~zYu(zj!xA6quICw6&WDvr z&gpB5?3~s~=cLAXqrivlH@%Dci0PvG?D)JFf3?CNjkj+ zyjaXc>oroRbr~e+bbm2W4>QZEzOf!)S<30P_pf8xdyMMpAq3X7m)o)S?v5*2Z${N! zalnf9?nu(!uQIaG%7Ry}(qe`(2JtIZd!rF+tXju?C*ofaDHGMnty>N3fl1vO7h2Ye zhjCLqzL*;}w?0unaxNMRJK?Pjg8p|Dv^W~s-@?%QKB?i{(I-&oMuc!KKg-{Tc=Gq)?2s&ne(q z2XRLuZWSky;nFMIjFp>gc!SQaDUN_n8&Pc7HS44`qs9j-ME#c<1+_3cytrIzm_b0FmPqDz>8mp?yUQw zNcV7nN6hr$z-coa=zqwYB3z9~fZH)w-`Bxb z0N^@B4nztq(H)h2561XH$t#@oa6zO;GfG@Ek2fL|;Wl*RR}L7Iz2=Z}wBGP&-hlG* zq>*wgCv4G$+PxYeO_i%v3Id!_FE`;$jCzeGpU|xV2|z&{-)wqBNz^~Z2Dm3io}{4o zspOR#%!u4nya#4ha%H&L#J2~mOxV|?YMajN*ITRA&@EAu)bYLu3 zZs7Jy@0?p}fspTRH(Q9X;?h-d7hOex6vE7jTogo&W2!irC0_dDxOsPumvG!x;$ntO zE9LXVsOj^W4K)@u5t=e;@~c|Nw7}-15wyr%i->kHB=nEHl@Le#bkiNC9*gFAbV*$t z6c$fn%Wuv)N$zG-C(oNRk!Sq1x0wD~jc=Y22E{r-3gTi6o*Yqk^SkCm!g8MSK+1^H z{{bZW8#5h)tI-DH9J)IKnU!V%TfGp7fp6gzHsb0C1W7r*x|IS&kr9%Cq{u@Ra8cG*mqF=H8M+%$iuNN5Iu#>=!o z<03Fw^$Pw)$7XIh_Q)(=*vTwPIC86AE;%@j8RbJX$=oM4pm`0x?1>+V87DH)!@KtG z!VOr)q%-5Uswjd9=$)C>ZGIEbmvrKbk*M~c;;96te0(XDm_}i4HCFa8X_{=*E8=cv zx;8m7`C=IjTSzD)k1LEmhb*u(c%+Z(I0BE%GtC|`+mdb}VYWkauh2h;k~WtBKC1jG z$H*74lYfMMTiBu+Bb}sXYV+DdPP0AXOb;PblDkb$kr?k(Y65M1Y<}9f49gbYY~=}< z*wdBs`2U4j88MFI52HHD(a{b>nI6FJ4-_btTvOk4S=H>GSEKw>tj~?4f`dx-Azog9 zo2c%6UWffNF829mc5mg;da+$KlY88Zwe+dpYH4)5|D|!jN^-A4$vxAzR1P~gPcXVS z)4C3pk~mu6#DmkUBeFnBgV&rmi&ds|Ata5QBb1^VD_8kicFMrCTsRNh95_)&+5@@= z4>O7T=g)anJR)|4PGs&?pV!9eh_V>p+@X&e{Q>^EiLDU5YB5Y;TR)oFwxsPu*Af$o zL101G!Y?f6R0rWNe0Rc`c9Vi>q?QqLRr(!Walu#9neGzObdDmcibP*7M?L|o(})Ld z$CZ#{l#0eLV|XyUM^}VwpQ@Y=)a4g4tIPZXgL)^fq+fCPdDACdd0!b9W;O~~qQ+&dJjO|`}gPbrdQiOC#IT5@>8@I*7*Bzu66c_>vVSL2C+tEm4;2A z@PCq7;bZ=h&<*@!aWTZ95#ldSmnkG;)`~1Z_?oR8qWuY~9F`1e zy;R<|CWxE6DOZnN{gcwE>DHg%>Ti;+{yw)^+Q0w!eTVnndRyT2nnu$D zRg!~Wc1zam>--%2%RBMHh|W&_5c0Su$mOuNYGbiU&d@mLL*7uy@Q9eL6?icjx8(#o zDP}udZPu}T26%TjW+q$kVeCF>w-0Z+qZo!Z7ODM-okKb94|7H?xr^8iZT??-*B&HU zRo-`TU(>rgz`_aywrEjtci7pd%7R&S78TZYFAFSW5wW{xrhBIE_Dqlc*qxCO9}$6Y zeI&FRDy5`S@fCxCGAd9$ptNF03{^y>v_d5nLqbV~M2!hmq%isYzH`pK_uPBCr~7vA zLva2$bNk+N&pqcm-}`*$JEHt)#m}(DKu0wGKK1o287}J;=L=-l43xsEWF5)76Z4uo19(ScPJ#&$C;T;KT|`woKF(usTaU6lgXu*3RXq4b*y2M@r!)O=P$eZ`U3~AeA|JsgIB~^{xdJC8M0W2 z_aYm+V)$o*U9|Hu#C)HpMN!)3TWiAjZo$?Ffek$~r`XaEJ8XpUE4v~ot0!KU@1%eZ zQYVLL*M?0dcx3g*KxW%uA#+w6&S8DqYg;SD=n=5U>5r-d%XriJsu}TRgB>xFz4puu zt$ul_T1Ww@QzJasMwHbd{%rNn!0o!h!mYg`)rmC>NRj$r8|5L|ymwAm&mUC+c2ta@ znDfr6YGkpg+QFM=+wD=WqL^~s+pLd8ZPwxa%1qrmGgqxOB8IBe7DIIbliQ9R_hqOa zi8mZFR6mkrs9t}tN-athq(B*}OBMmqHME{X9R=Z2v|-g9C`GbX2R#K!8HQ_znbj{f z7_Yr&V|{seNE*y4x-N&v^lJMqkEzK#9O6tZNClL;C9#)a_`~12|axwEqpIo zjV7Xps_SulPC-2C*SiEcmJigbN8o8u-sTX|Xv-z=`GviFJM2OA(M}i&2E`ue83g?q zgdek@6h$G)g})38AhtK`OEsU2?Jrd7e0`Pueue3IG1 zpdUnAOp)I^ayj-q802y+%5@(HJQZ?%zh}tmAtWK!-5P97v= zd4pY!@hvEh18mFUHT{DDq=_$Qrr?AqVQ(ku=1ckPQLN6YcVIFyWlR>Iut9Uedy|Cd zKkj)t`a^Vk#u5>I=kY-F?zNJiN41hQdqqBH--hVxh)yDPg@-;*gdf~Obg;ztT)g3s zPV$8$o#c*du#DFz!}%>r2E9f{5u(fx0FCB6K~%9{;|gKKx?1bY2sRhAngTBp6c2<* z)03n$7AP{NozNPs#42R)XheUb0&tD^PCKo|+&W)@>B4naz7|Hf#j$28Hv;?WiQH3*^oOHA4r1m>y9&oA7}^Rh!5ZU%(b#| zh>gOP@&tF!D)B*nSkF!uD|2;(SWGr2in2;3`(`C=43;nVHq^;P*vmU9AzL#AY$uth zLRl^%s~(I;@Nndr!1`nZld?IB<$#F-?9U9o!@5vP8mx+4IbhjEWtY~g%^JQ2Rv%Jr ze9o-wuV0l;hcUt34-`;rbRVw0mNYmhlqN79(`er)A)8j)#g^2`M2fg z3WXIGxQq_>ZnWR04#zGU9d4D6d11Ed1-BO;Rh0XsROlYj%++QJsT>sDdB6UUGbIe} z<7r`<*^Sei0tKFXv11l99#D705DR)+>->lZ`*D6O6uLR~T1w~E1zMpX@34rr zNZlkpzOCn>^vB2T(MC~06p7akhL78Lal90X{XUZH>lv~g6p5c}B)K9PN#5U9k-)On zfs8mu4_ta_Dbs1Siw~(+NN^`CT7*}^J6J3#&lTcSkvy+do>w823?Ma(rJ z3>`{B_v?F}l>X4&p0`AFzxa5dd(@}-yMZpCH5YL=a>kLgr(Pb%rVL2gqt)7BwP`iv zg~>Fgu}y56`E`(6r>gdI5Fdig>_j7G){(b}NVACNEtRnG2g_CpSA(QD%3*m@^eBun zZrvy4ckya)icpd_^7(esEIM;)yJeoK}q(QI@5p0t6LZ&u;$wtD5?wZ`@b{@6Z>t5hzWBwgSXJ&F%W zqcL6JkM*REF^c!5qO@0XHWjev#F7d0 zb^F{tPysX&a4U$GC@SzE&i7S{IK7v|cakecbi6(qo_P0upP0YGt7FUPhmJ3!dc+^w zcY4O_4*KXCJ&JEjqcKKxuEnS-;NIAC0XL+7bu`zS$nAIPHfB(}n{%JA_wsbzDh=wVr zz2!0$)|bq^bmPFBM#gc-YTb-uXiG}HC3zgX`$8nEhhCp;rGVSYyuxG~axVdPTRk(d zJ8!VCYae<=OlgP2QC5`Fjkd0hJc>5&oo!_Oq}ht1<$S>XbVx){(=6%-H9PD@=^P$G zuW+nS!^)Oy?|s*Pk*>bqc`uCY7U|ym?nb@u!v|{RBgn&&-NV4{NZhH^7RTx3K&^H& z-q&83H^mzc`P|Q122&|&YCg#52WF6&D8OXg9FD|LJMA=dXUbF44T*tZG!$}vm2l9G zRYtHAUYV;D za3SFsme_-HVPsANSEAZSMFtUY8U~~vhLvmg zCeE8MpoO#$P4Z`K&|^BHU>psfxJfgR#I+5?@NP#ms$wa@)s74faS=|Mfq%k0RoR1r z-@CJ@XMXO`$%TU7yR$oO;GEE&glEDa_N_fnLw{zDJyTJX=DN&|ZGoWgC&0tT@94Tr zR0jR>pqLvOL>WQ_q6Kc|5*^q|96`X~93FMR4fFO-PRe!&EgNcCbws7&fCOV7(JQ#$Xfx$C+UB!r z7_`n|m*yaVai(H~DEh>+@e%+X?W7eAF=0 zt(;*iHO5%5G7RE#Ju?Vxhdzm~2c0yM50SCdOT~w>!Kd57C(3+M%G1#k zDNp~3^DpxB+iB-1NuKV|V|rK`jk(?Geacf?nwnoCOVtk}NzJdA96cdD2xFrmkH7C3 z?ET44duF02Eb?>v36P(Mmgodjhl>kX%w?)2BZin~$zL#1`N=B5A|aywQY&4++Q={|gWVCMhTGq%Q@itMIg=0ADyOl_F)$`Wh~etvp(& z(HL*t*$N*taofRZi2b@cHUZfTCe-1)qMG3RS_w0oEY{0YvuckswhU5N(aH<97a~Z8 zXQ*K7pQ=WELR{SiCXU3uUTucsRNoM^l*WN0c8e3!h1qg_#*ZhD`OZ(i9?Ej#$YGqQcK(mm zae{^309zQRZci23YKcd-+%S8i-3k4+I#ncGAH5UO3&KIU?xP%BezVy4EJ)ITOptY5ucjCA&VN*IO%h0 z8a23soDt8VvHBLM^6L$()iBz)xBI;6*7!jEMYt4FJBhO%(a2)MG|mRS$H6hi5}{`D zcllbj&p!-*6Yhu~^NKkMpTf_D@K1}=%!8N~G8t}U81q99!V_V>=|C0tzpFVhwC)|q zfg*q4q1!Y1JG=EFQzoOlUU+qTBzfHnb&z5FGHmH%K(5{lvHsZ7d^=2wtP~yEWKyl; zlwz!-DAL>vhnJH_rW=qb;^XI<`oxG3c|!BEgdz#s;7J}y;PUW7X$B^3sW3Z}qJpm? zloh9N$?k_hF5;kyIzEo~H^ZOKG!*y@f+4JL>6ksNRn>|T-XQ79StWj+7f=6^4(PlT z*a!^Im&wSkx~6+o&$>LjxL`bPL9YmpQaobsjDz?j)afwbEdJ~z)=(EK|;Khix$S>5q^c`*fKutB6-0X;QX zh_q)foltr}?4{L)y+oV$&K0kRzcC*1MA2Ri9K_HvJv^WW0W2#gNI16QxzG zM!8WhR!X*eW=lpqyc5+X4yRUO`lTlJm6ez-njwuLMlVYyuuIKHUR4j;s>_Zb#{J7N z8PWazcc19K{`kFjb?j}}`QhHh$&mT}M0{EX?OgjKO?5T~BskZeI$_Q=-&ZGYPz$w; z@5J)4`Srz}2T$J49XRzh?0M_n+xDUvbr=JUy!|xL?|8c3?rw*R5%-(-C2X+~mlQV( zDMuAHkirXQoKQXr;NiS@)#!B6xmUqMLP#__g>z+Kyy<bTDs9AdwpgVK);cC_ci`tF2TRv)}YYo{A~x1NV52R!ygC?+!Y z#cHP;d$)@6vx6P`nMs_$9&mD%bffGRyEEH+W!N2QdC~piJ@KR!`8@ffO{S+{c`Hfu zY#8iF*2TH9^;s{eLb|yEueXP|biw+R;Y8a8JHqy+Tc=5i+Eyt&L-)54+|lN}^L)Wf zU2ZfaVi8^v3uUuwhXt~#-C=)sXX8x_n(mFaXQRg3`FkblIs>^5SZ17ByNiUl$?GcM z2y=c+?6(8)hC}w-H6?VTTf3YxorUJ%(N>+bz@t<8`MH zQ#B{SRN#F$4jvnrqBh$pV_8d-d%U4I&WAg2oY+xZnP9$bY+YsM(fW)b(ogh^gj%}` z@(-|^+EP2@0Cj$iE(1lEFzfg=e2)P+igdSW?PJ?tzC`}SL+^|EsOp(gvwgfvM(o`p zj%=(<9-Ur*IwT$-9WVtK5tfU&YKb(q6=aB~Q`_(u@@N%*h2RLB@`D#8wiDj+5cgz@ zvMPlA2Z(^Cqq|bA9!ADh9Px$Yhjb2{D8o9pL#Hej<8`d5SlqpxSX^{(BG$0FT_S%V zEn5qcgRyJI0X5b)pl!$upuKeP>(;gL-NC}|{KZf#%;da9YcD?b0a5A`Z74O`ym!9R zPr#i2W?9iw6 zo%*y7UFu~q)mx#?NNmZlw93T+d&7ErSWZ`Pyfx-d12_Y&3w0^_F)!ca}BE zmHHMWM3&@bEpNqjg-Wwn4>qK6#n$nLri!yTx4TiTp^2eMs_%`$%p88KR$t1Y`NQ~` z(LbBD3Vy9^R3~!OF!{9Ja+eIFkLya+Y6J457<#gAskfH<-LNGnH;?6vnHKI0WBX5e zE{DM88SH(pqrG$0onoaZcXIR%!%V z%e~W!^W{bkLuoYYrqXh6`DAgtIfeFy_4Yi}s1*w{xHE(eNfSkmsCAn+T%JY5bq?54 zr6JIozR5e!zLhK1YSmf}yXht?#TuZ?4o);$-l_0tSnqnvn~l=wu9mkU@+8uPd*KdF zvufA>vj6sZ_JhdF-f8T4oyY&_fb14dWG~E4H49Tkz)2vr)|jx4cuzlW2Joo3nC0x&fSWgK6?=v&g%Q zW=@qmfaz?VlOEifs~4M-)!h6HvFJ3MO^QIST=-4FjfqC?2+kr^Sb1u0vRp49vp)u+ zd%4n(fzXM!2IHv%_ho|)+Fh$_=1S!X#&=`O8=fo9<$S_sch>OEIM)1f#AtUTsKHy$ zdwhrYa*g5)V%rSqo~aF9p>l(>`M-++Cd%s^PIDdY!)$t7}V;Ba%UbvtIPiu{BPj8qZj z?U>Z+M0vJ^sWDW#j&xgZj@$K4E6$7;CqXz1_}p}{*g$LRCo0v#;T$tiRdTSbVMCK{ zZ<{V+hoQGh(JIIUGfpP~aIlesQ(>wI+Q;Oaj*npa8emxf4Q%#$>*kiX&brGu9l4Fx zO8$@YbsQhmVQifkZ zR{0Drbm?A$54i_e{Ph_q&g9i6(Ff^>`|-1Ibtj8U`GJdBymbSL%URsUpSQ5Mm&H9S ze#qhnEXL4l_w_8k&f-B9d-&QLSiI&u6gybFhsAHRxRehrX7Qs}p?I9dFJ6Y?XDsf7 zHROJj#kDN1W^o6L+gN;_l|RGcF&2-qxPB9g>sXw=5ydczOIW;?MS;aTS=`RzgDmc2 z@kJItV(~bOrEK7ryxPR83t3#n!eMdK2#R?YU*gYuS=9M+j>U7Fpl4asFXBBGW6Xr| zdKT~G@lH3ec$&piEH2@L*Rr@2;neQMEPl=g{*%QAu-NCmkHvoed@GBmSv-ZJ=?xJ> z7!INki#Xy4emH^~j^KqOIN`XH@|5%M$lNxBiFf4==g^V)b7bxunKwt~%#rzWWUd^UCr9SUk@<0CZXB5xN9M$l`EX<| z9GM44=D-p7I|6%0;O+>_aSc$Tp8%vIaCQX7XkYFSwvNEn5tupxPt*Yzou*p^*CJ&K zeTkYU^mRE2O6cpicqR08Gp|Tr?mfIJk}QXKB{X#(9|%odN5Ud;yC3G2(A0NHaY9pf zk;H_i-b~UFnwsF1(9|71O?`=1LR0_1E1{`3k+6iO9^#eI)PL|wXlfS;OK9r-yb_w) zPZATFx{+5xQ_qsbgr=^#09Qg&he%jLQy=G*(A1xku!N?b;FZwSzw=6H>P(V}(A018 zN@!}5S3*-BuY{)ll2<}gPw+};YMD<{n|UQP^$wq=D!dY!`UIeBYXJWa5FnX~Xd0`ar2K=HTi z_~%&sg2iJjzCzx><5S&#V!@Lz-94iyc;11vP{pekXXS0-Ki|tWH)f--2=MRzMED z*&N!+2m(0Eq^SGRg}}Djw-+vv$a;a@W!b7W^d_Cr!uD;uPq6>uZ(ES=MPrQIe~u1t z#nzFL?8w%{A-*^55CbQV>PFN&P3PC!_f|DDf-P?H%4`=*%m0mW7F?BG#kGt|cNZDR zb9k=jWq5^T5fu4ed7#@kZ4kCC(5vo zsB-ytsP3D3N;M1LQT3p(K}Ve#uU2wa)iWbE{n|rTwITCWX@8y7zN|FSKwKYfOFvoS zWnhdT#FwTwxPq(0``BjMW{RmPU# z`a&HVzj+ea$%jA*pe}u6eS`>t2SNa&S3ni0(I(C+{Wg06bF0peZo7c4MEY6*YvqT) zl2F+FWeE6dX|Y?jy9<#$&~p>sa&1U2^_Eeafz7ekdCQfwYpc!L1gysg00oViUzO(F z`|&Ttqyk8E2GN!{h>Q~7HH;qbd4Rg>0gS%aa}zNbxsRa@8$vME=#1I-I|Bh#TWs3i zHKcyp^DtwOdZyHB3v}W zYIny4p7+RQ%9n^-{&Vy`;m}^mJ!{N7Y`2{*<8T{cR#xe$KhDnlnFO$!Y zY~|K|nyf?@ZtxecSMvL)D^0nPebS3QOgA>7MPzJkRG^W;j_tzkkkKAfY!oD&2R$sy*AZyizTwzy7hGf61*OmkxvlM5CH z%vkT?hoe~62oCrSvo=}=Mj;d8JRTnm&!XWm*Y%8heI=FIcUhYWpeNI%0TP>Nx<`ET zLmM9SLltcELrKT!8&vz^cCndq$QGn%Z1)iU-X{Gx?_h^sM;kJbt6#^x{iUVuH~1`S z|E{O`)6V`qCwRD+{X5t5jD!_~ptBF6@9eB7)HBj(%m5DcS#=8=F&kV1VR{@0f7vE> z1QM6N{zxFNyep00oVLeF`K_j`9tYSkh2g---QND>k_8>|Fi%?UCA1jbDyJ{O3sdFe+Y6q`Tzg` literal 192381 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 VVTJ-Mpn%7SMf!*vZewD{{{w8tqf`I@ diff --git a/docs/RefMan/_build/html/RefMan.html b/docs/RefMan/_build/html/RefMan.html index 518049ff..f656d010 100644 --- a/docs/RefMan/_build/html/RefMan.html +++ b/docs/RefMan/_build/html/RefMan.html @@ -124,6 +124,18 @@
  • Functions
  • +
  • Overloaded Operations +
  • Type Declarations
    • Type Synonyms
    • Newtypes
    • @@ -873,6 +885,102 @@ a location +
      +

      Overloaded Operations

      +
      +

      Equality

      +
      Eq
      +  (==)        : {a}    (Eq a) => a -> a -> Bit
      +  (!=)        : {a}    (Eq a) => a -> a -> Bit
      +  (===)       : {a, b} (Eq b) => (a -> b) -> (a -> b) -> (a -> Bit)
      +  (!==)       : {a, b} (Eq b) => (a -> b) -> (a -> b) -> (a -> Bit)
      +
      +
      +
      +
      +

      Comparisons

      +
      Cmp
      +  (<)         : {a} (Cmp a) => a -> a -> Bit
      +  (>)         : {a} (Cmp a) => a -> a -> Bit
      +  (<=)        : {a} (Cmp a) => a -> a -> Bit
      +  (>=)        : {a} (Cmp a) => a -> a -> Bit
      +  min         : {a} (Cmp a) => a -> a -> a
      +  max         : {a} (Cmp a) => a -> a -> a
      +  abs         : {a} (Cmp a, Ring a) => a -> a
      +
      +
      +
      +
      +

      Signed Comparisons

      +
      SignedCmp
      +  (<$)        : {a} (SignedCmp a) => a -> a -> Bit
      +  (>$)        : {a} (SignedCmp a) => a -> a -> Bit
      +  (<=$)       : {a} (SignedCmp a) => a -> a -> Bit
      +  (>=$)       : {a} (SignedCmp a) => a -> a -> Bit
      +
      +
      +
      +
      +

      Zero

      +
      Zero
      +  zero        : {a} (Zero a) => a
      +
      +
      +
      +
      +

      Logical Operations

      +
      Logic
      +  (&&)        : {a} (Logic a) => a -> a -> a
      +  (||)        : {a} (Logic a) => a -> a -> a
      +  (^)         : {a} (Logic a) => a -> a -> a
      +  complement  : {a} (Logic a) => a -> a
      +
      +
      +
      +
      +

      Basic Arithmetic

      +
      Ring
      +  fromInteger : {a} (Ring a) => Integer -> a
      +  (+)         : {a} (Ring a) => a -> a -> a
      +  (-)         : {a} (Ring a) => a -> a -> a
      +  (*)         : {a} (Ring a) => a -> a -> a
      +  negate      : {a} (Ring a) => a -> a
      +  (^^)        : {a, e} (Ring a, Integral e) => a -> e -> a
      +
      +
      +
      +
      +

      Integral Operations

      +
      Integral
      +  (/)         : {a} (Integral a) => a -> a -> a
      +  (%)         : {a} (Integral a) => a -> a -> a
      +  (^^)        : {a, e} (Ring a, Integral e) => a -> e -> a
      +  toInteger   : {a} (Integral a) => a -> Integer
      +  infFrom     : {a} (Integral a) => a -> [inf]a
      +  infFromThen : {a} (Integral a) => a -> a -> [inf]a
      +
      +
      +
      +
      +

      Division

      +
      Field
      +  recip       : {a} (Field a) => a -> a
      +  (/.)        : {a} (Field a) => a -> a -> a
      +
      +
      +
      +
      +

      Rounding

      +
      Round
      +  ceiling     : {a} (Round a) => a -> Integer
      +  floor       : {a} (Round a) => a -> Integer
      +  trunc       : {a} (Round a) => a -> Integer
      +  roundAway   : {a} (Round a) => a -> Integer
      +  roundToEven : {a} (Round a) => a -> Integer
      +
      +
      +
      +

      Type Declarations

      diff --git a/docs/RefMan/_build/html/_sources/RefMan.rst.txt b/docs/RefMan/_build/html/_sources/RefMan.rst.txt index 0d33b469..47cfd9b2 100644 --- a/docs/RefMan/_build/html/_sources/RefMan.rst.txt +++ b/docs/RefMan/_build/html/_sources/RefMan.rst.txt @@ -701,6 +701,119 @@ Functions f p1 p2 = e // Function definition + +******************************************************************************** +Overloaded Operations +******************************************************************************** + +Equality +======== + +.. code-block:: cryptol + + Eq + (==) : {a} (Eq a) => a -> a -> Bit + (!=) : {a} (Eq a) => a -> a -> Bit + (===) : {a, b} (Eq b) => (a -> b) -> (a -> b) -> (a -> Bit) + (!==) : {a, b} (Eq b) => (a -> b) -> (a -> b) -> (a -> Bit) + +Comparisons +=========== + +.. code-block:: cryptol + + Cmp + (<) : {a} (Cmp a) => a -> a -> Bit + (>) : {a} (Cmp a) => a -> a -> Bit + (<=) : {a} (Cmp a) => a -> a -> Bit + (>=) : {a} (Cmp a) => a -> a -> Bit + min : {a} (Cmp a) => a -> a -> a + max : {a} (Cmp a) => a -> a -> a + abs : {a} (Cmp a, Ring a) => a -> a + + +Signed Comparisons +================== + +.. code-block:: cryptol + + SignedCmp + (<$) : {a} (SignedCmp a) => a -> a -> Bit + (>$) : {a} (SignedCmp a) => a -> a -> Bit + (<=$) : {a} (SignedCmp a) => a -> a -> Bit + (>=$) : {a} (SignedCmp a) => a -> a -> Bit + + +Zero +==== + +.. code-block:: cryptol + + Zero + zero : {a} (Zero a) => a + +Logical Operations +================== + +.. code-block:: cryptol + + Logic + (&&) : {a} (Logic a) => a -> a -> a + (||) : {a} (Logic a) => a -> a -> a + (^) : {a} (Logic a) => a -> a -> a + complement : {a} (Logic a) => a -> a + +Basic Arithmetic +================ + +.. code-block:: cryptol + + Ring + fromInteger : {a} (Ring a) => Integer -> a + (+) : {a} (Ring a) => a -> a -> a + (-) : {a} (Ring a) => a -> a -> a + (*) : {a} (Ring a) => a -> a -> a + negate : {a} (Ring a) => a -> a + (^^) : {a, e} (Ring a, Integral e) => a -> e -> a + +Integral Operations +=================== + +.. code-block:: cryptol + + Integral + (/) : {a} (Integral a) => a -> a -> a + (%) : {a} (Integral a) => a -> a -> a + (^^) : {a, e} (Ring a, Integral e) => a -> e -> a + toInteger : {a} (Integral a) => a -> Integer + infFrom : {a} (Integral a) => a -> [inf]a + infFromThen : {a} (Integral a) => a -> a -> [inf]a + + +Division +======== + +.. code-block:: cryptol + + Field + recip : {a} (Field a) => a -> a + (/.) : {a} (Field a) => a -> a -> a + +Rounding +======== + +.. code-block:: cryptol + + Round + ceiling : {a} (Round a) => a -> Integer + floor : {a} (Round a) => a -> Integer + trunc : {a} (Round a) => a -> Integer + roundAway : {a} (Round a) => a -> Integer + roundToEven : {a} (Round a) => a -> Integer + + + + ******************************************************************************** Type Declarations ******************************************************************************** diff --git a/docs/RefMan/_build/html/searchindex.js b/docs/RefMan/_build/html/searchindex.js index 6d89bd72..999f2fcb 100644 --- a/docs/RefMan/_build/html/searchindex.js +++ b/docs/RefMan/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["RefMan"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,sphinx:55},filenames:["RefMan.rst"],objects:{},objnames:{},objtypes:{},terms:{"0b1010":0,"0b1010111":0,"0b11010":0,"0b11111110":0,"0b_0000_0010":0,"0o1234":0,"0o376":0,"0x01":0,"0x02":0,"0x03":0,"0x04":0,"0x1234":0,"0x30":0,"0x_ffff_ffea":0,"0xfe":0,"1p4":0,"2e3":0,"case":0,"float":0,"new":0,"public":0,"short":0,"static":0,"true":0,"while":0,For:0,Not:0,One:0,Such:0,The:0,There:0,These:0,Uses:0,Using:0,abbrevi:0,about:0,abov:0,accommod:0,added:0,addit:0,after:0,all:0,allow:0,alphabet:0,also:0,ani:0,anoth:0,appear:0,appli:0,applic:0,arbitrarili:0,arithmet:0,arr:0,aspect:0,associ:0,assumpt:0,automat:0,avoid:0,back:0,backtick:0,baddef:0,base:0,becaus:0,begin:0,behavior:0,belong:0,between:0,binari:0,bind:0,bitvector:0,bodi:0,both:0,bound:0,brace:0,branch:0,bring:0,can:0,cannot:0,ceil:0,charact:0,checker:0,chosen:0,clash:0,claus:0,close:0,closest:0,code:0,collect:0,collis:0,combin:0,comma:0,compar:0,comparison:0,complex:0,compon:0,comprehens:0,comput:0,concaten:0,consid:0,consist:0,constraint:0,construct:0,contain:0,context:0,conveni:0,correspond:0,could:0,creat:0,cry:0,cryptolpath:0,curli:0,current:0,cut:0,data:0,decim:0,defin:0,definit:0,defint:0,degre:0,descript:0,design:0,determin:0,differ:0,digit:0,dimension:0,directli:0,directori:0,distance2:0,distinct:0,divis:0,document:0,doe:0,down:0,downward:0,e11:0,e12:0,e21:0,e22:0,each:0,easi:0,easier:0,effect:0,either:0,element:0,els:0,enclos:0,end:0,english:0,entri:0,enumer:0,equal:0,equat:0,equival:0,evalu:0,even:0,everi:0,everyth:0,exact:0,examin:0,exampl:0,except:0,exclus:0,exist:0,expon:0,exponenti:0,extend:0,extern:0,extract:0,fals:0,famili:0,few:0,file:0,fin:0,finit:0,first:0,fix:0,follow:0,form:0,fraction:0,from:0,front:0,gener:0,get:0,getfst:0,glu:0,good:0,group:0,had:0,handi:0,happen:0,has:0,hash:0,have:0,help:0,helper1:0,helper2:0,helper:0,here:0,hexadecim:0,highest:0,hold:0,howev:0,implement:0,implic:0,improv:0,includ:0,indent:0,index:0,indic:0,inf:0,infer:0,infinit:0,infixl:0,infixr:0,inform:0,inhabit:0,instead:0,insuffici:0,integ:0,intend:0,introduc:0,invalid:0,irrelev:0,isposit:0,its:0,itself:0,just:0,kind:0,known:0,label:0,lambda:0,languag:0,larg:0,last:0,left:0,length:0,less:0,let:0,letter:0,lexicograph:0,lg2:0,lift:0,like:0,line:0,locat:0,logarithm:0,logic:0,longer_nam:0,longernam:0,look:0,lowest:0,mai:0,make:0,mani:0,mark:0,match:0,max:0,maximum:0,mean:0,mechan:0,member:0,mention:0,might:0,min:0,minimum:0,mirror:0,modulu:0,more:0,moreov:0,most:0,multipl:0,must:0,name1:0,name2:0,need:0,negat:0,nest:0,newt:0,none:0,notat:0,note:0,number:0,obtain:0,octal:0,often:0,old:0,one:0,onli:0,open:0,option:0,order:0,ordinari:0,organ:0,other:0,otherwis:0,outsid:0,overload:0,overview:0,p11:0,p12:0,p21:0,p22:0,packag:0,pad:0,pair:0,paramet:0,paren:0,parenthes:0,pass:0,pattern:0,place:0,point:0,pointwis:0,polymorph:0,polynomi:0,posit:0,possibl:0,practic:0,pragma:0,pre:0,precis:0,previou:0,prime:0,primit:0,primtiv:0,principl:0,process:0,program:0,programm:0,project:0,properti:0,provid:0,purpos:0,quickli:0,quit:0,ration:0,readabl:0,recurs:0,redesign:0,reduc:0,reject:0,rel:0,relat:0,remain:0,repl:0,replac:0,repres:0,represent:0,result:0,right:0,rotat:0,round:0,same:0,scope:0,search:0,second:0,section:0,see:0,selector:0,separ:0,seq:0,set:0,sha256:0,shape:0,shift:0,should:0,sign:0,similarli:0,simpl:0,singl:0,site:0,situat:0,size:0,some:0,sometim:0,sourc:0,special:0,specifi:0,split:0,start:0,step:0,stream:0,stride:0,structur:0,sub:0,subtract:0,suffici:0,sugar:0,suitabl:0,sum:0,support:0,symbol:0,tabl:0,tend:0,term:0,termin:0,text:0,than:0,thei:0,them:0,thi:0,those:0,though:0,three:0,through:0,thu:0,togeth:0,top:0,transpar:0,treat:0,two:0,typaram:0,typecheck:0,typeclass:0,unari:0,underscor:0,understand:0,unfold:0,unlik:0,updateend:0,updatesend:0,use:0,used:0,useful:0,user:0,uses:0,using:0,usual:0,valid:0,variabl:0,varieti:0,variou:0,via:0,wai:0,want:0,weakest:0,when:0,where:0,wherea:0,which:0,whole:0,why:0,width:0,wise:0,without:0,word:0,work:0,would:0,write:0,written:0,xpo:0,you:0,ypo:0,zero:0},titles:["Cryptol Reference Manual"],titleterms:{"function":0,"import":0,access:0,annot:0,argument:0,basic:0,bit:0,block:0,built:0,call:0,comment:0,condit:0,cryptol:0,declar:0,demot:0,explicit:0,express:0,field:0,hide:0,hierarch:0,identifi:0,infix:0,instanti:0,keyword:0,layout:0,level:0,list:0,liter:0,local:0,manual:0,modul:0,name:0,newtyp:0,numer:0,oper:0,parameter:0,preced:0,prefix:0,privat:0,qualifi:0,record:0,refer:0,sequenc:0,signatur:0,synonym:0,syntax:0,todo:0,tupl:0,type:0,updat:0,valu:0}}) \ No newline at end of file +Search.setIndex({docnames:["RefMan"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,sphinx:55},filenames:["RefMan.rst"],objects:{},objnames:{},objtypes:{},terms:{"0b1010":0,"0b1010111":0,"0b11010":0,"0b11111110":0,"0b_0000_0010":0,"0o1234":0,"0o376":0,"0x01":0,"0x02":0,"0x03":0,"0x04":0,"0x1234":0,"0x30":0,"0x_ffff_ffea":0,"0xfe":0,"1p4":0,"2e3":0,"case":0,"float":0,"new":0,"public":0,"short":0,"static":0,"true":0,"while":0,For:0,Not:0,One:0,Such:0,The:0,There:0,These:0,Uses:0,Using:0,abbrevi:0,about:0,abov:0,abs:0,accommod:0,added:0,addit:0,after:0,all:0,allow:0,alphabet:0,also:0,ani:0,anoth:0,appear:0,appli:0,applic:0,arbitrarili:0,arithmet:[],arr:0,aspect:0,assert:[],associ:0,assumpt:0,automat:0,avoid:0,back:0,backtick:0,baddef:0,base:0,becaus:0,begin:0,behavior:0,belong:0,between:0,binari:0,bind:0,bitvector:0,bodi:0,both:0,bound:0,brace:0,branch:0,bring:0,can:0,cannot:0,ceil:0,charact:0,checker:0,chosen:0,clash:0,claus:0,close:0,closest:0,cmp:0,code:0,collect:0,collis:0,combin:0,comma:0,compar:0,comparison:[],complement:0,complex:0,compon:0,comprehens:0,comput:0,concaten:0,consid:0,consist:0,constraint:0,construct:0,contain:0,context:0,conveni:0,correspond:0,could:0,creat:0,cry:0,cryptolpath:0,curli:0,current:0,cut:0,data:0,decim:0,defin:0,definit:0,defint:0,degre:0,descript:0,design:0,determin:0,differ:0,digit:0,dimension:0,directli:0,directori:0,distance2:0,distinct:0,divis:[],document:0,doe:0,down:0,downward:0,e11:0,e12:0,e21:0,e22:0,each:0,easi:0,easier:0,effect:0,either:0,element:0,els:0,enclos:0,end:0,english:0,entri:0,enumer:0,equal:[],equat:0,equival:0,evalu:0,even:0,everi:0,everyth:0,exact:0,examin:0,exampl:0,except:0,exclus:0,exist:0,expon:0,exponenti:0,extend:0,extern:0,extract:0,fals:0,famili:0,few:0,file:0,fin:0,finit:0,first:0,fix:0,fliter:[],floor:0,follow:0,form:0,fraction:0,from:0,frominteg:0,front:0,gener:0,get:0,getfst:0,glu:0,good:0,group:0,had:0,handi:0,happen:0,has:0,hash:0,have:0,help:0,helper1:0,helper2:0,helper:0,here:0,hexadecim:0,highest:0,hold:0,howev:0,implement:0,implic:0,improv:0,includ:0,indent:0,index:0,indic:0,inf:0,infer:0,inffrom:0,inffromthen:0,infinit:0,infixl:0,infixr:0,inform:0,inhabit:0,instead:0,insuffici:0,integ:0,integr:[],intend:0,introduc:0,invalid:0,irrelev:0,isposit:0,its:0,itself:0,just:0,kind:0,known:0,label:0,lambda:0,languag:0,larg:0,last:0,left:0,length:0,less:0,let:0,letter:0,lexicograph:0,lg2:0,lift:0,like:0,line:0,literallessthan:[],locat:0,logarithm:0,logic:[],longer_nam:0,longernam:0,look:0,lowest:0,mai:0,make:0,mani:0,mark:0,match:0,max:0,maximum:0,mean:0,mechan:0,member:0,mention:0,might:0,min:0,minimum:0,mirror:0,modulu:0,more:0,moreov:0,most:0,multipl:0,must:0,name1:0,name2:0,need:0,negat:0,nest:0,newt:0,none:0,notat:0,note:0,number:0,obtain:0,octal:0,often:0,old:0,one:0,onli:0,open:0,option:0,order:0,ordinari:0,organ:0,other:0,otherwis:0,outsid:0,overload:[],overview:0,p11:0,p12:0,p21:0,p22:0,packag:0,pad:0,pair:0,paramet:0,paren:0,parenthes:0,pass:0,pattern:0,place:0,point:0,pointwis:0,polymorph:0,polynomi:0,posit:0,possibl:0,practic:0,pragma:0,pre:0,precis:0,previou:0,prime:0,primit:0,primtiv:0,principl:0,process:0,program:0,programm:0,project:0,properti:0,provid:0,purpos:0,quickli:0,quit:0,ration:0,readabl:0,recip:0,recurs:0,redesign:0,reduc:0,reject:0,rel:0,relat:0,remain:0,rep:[],repl:0,replac:0,repres:0,represent:0,result:0,right:0,ring:0,rotat:0,round:[],roundawai:0,roundtoeven:0,same:0,scope:0,search:0,second:0,section:0,see:0,selector:0,separ:0,seq:0,set:0,sha256:0,shape:0,shift:0,should:0,sign:[],signedcmp:0,similarli:0,simpl:0,singl:0,site:0,situat:0,size:0,some:0,sometim:0,sourc:0,special:0,specifi:0,split:0,start:0,step:0,stream:0,stride:0,structur:0,sub:0,subtract:0,suffici:0,sugar:0,suitabl:0,sum:0,support:0,symbol:0,tabl:0,tend:0,term:0,termin:0,text:0,than:0,thei:0,them:0,thi:0,those:0,though:0,three:0,through:0,thu:0,togeth:0,tointeg:0,top:0,transpar:0,treat:0,trunc:0,two:0,typaram:0,typecheck:0,typeclass:0,unari:0,underscor:0,understand:0,unfold:0,unlik:0,updateend:0,updatesend:0,use:0,used:0,useful:0,user:0,uses:0,using:0,usual:0,val:[],valid:0,variabl:0,varieti:0,variou:0,via:0,wai:0,want:0,weakest:0,when:0,where:0,wherea:0,which:0,whole:0,why:0,width:0,wise:0,without:0,word:0,work:0,would:0,write:0,written:0,xpo:0,you:0,ypo:0,zero:[]},titles:["Cryptol Reference Manual"],titleterms:{"function":0,"import":0,access:0,annot:0,argument:0,arithmet:0,basic:0,bit:0,block:0,built:0,call:0,comment:0,comparison:0,condit:0,cryptol:0,declar:0,demot:0,divis:0,equal:0,explicit:0,express:0,field:0,hide:0,hierarch:0,identifi:0,infix:0,instanti:0,integr:0,keyword:0,layout:0,level:0,list:0,liter:0,local:0,logic:0,manual:0,modul:0,name:0,newtyp:0,numer:0,oper:0,overload:0,parameter:0,preced:0,prefix:0,privat:0,qualifi:0,record:0,refer:0,round:0,sequenc:0,sign:0,signatur:0,synonym:0,syntax:0,todo:0,tupl:0,type:0,updat:0,valu:0,zero:0}}) \ No newline at end of file