From 40eb3294b9730263d13b672ab3b5a9abe257e541 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 2 Oct 2025 03:48:48 +0000 Subject: [PATCH 1/3] Initial plan From a53ac62a975aa90064097cbdce2595c70b257e7a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 2 Oct 2025 03:56:12 +0000 Subject: [PATCH 2/3] Initial analysis: understand build requirements Co-authored-by: NathanHowell <170829+NathanHowell@users.noreply.github.com> --- .../alphaheavy-quickfix-0.1/setup-config | Bin 0 -> 451873 bytes dist-newstyle/cache/compiler | Bin 0 -> 13559 bytes dist-newstyle/cache/config | Bin 0 -> 4507 bytes dist-newstyle/cache/elaborated-plan | Bin 0 -> 885384 bytes dist-newstyle/cache/improved-plan | Bin 0 -> 1752857 bytes dist-newstyle/cache/plan.json | 1 + dist-newstyle/cache/solver-plan | Bin 0 -> 677434 bytes dist-newstyle/cache/source-hashes | Bin 0 -> 38335 bytes dist-newstyle/cache/up-to-date | Bin 0 -> 4456 bytes .../packagedb/ghc-9.12.2/package.cache | Bin 0 -> 40 bytes .../packagedb/ghc-9.12.2/package.cache.lock | 0 .../tmp/src-3399/assoc-1.1.1/CHANGELOG.md | 18 + .../tmp/src-3399/assoc-1.1.1/LICENSE | 30 + .../tmp/src-3399/assoc-1.1.1/assoc.cabal | 56 + .../assoc-1.1.1/src/Data/Bifunctor/Assoc.hs | 119 + .../assoc-1.1.1/src/Data/Bifunctor/Swap.hs | 59 + .../tmp/src-3402/hashable-1.5.0.0/CHANGES.md | 378 ++ .../tmp/src-3402/hashable-1.5.0.0/LICENSE | 30 + .../tmp/src-3402/hashable-1.5.0.0/README.md | 7 + .../tmp/src-3402/hashable-1.5.0.0/Setup.hs | 3 + .../hashable-1.5.0.0/cbits-unix/init.c | 39 + .../hashable-1.5.0.0/cbits-win/init.c | 28 + .../hashable-1.5.0.0/examples/Main.hs | 52 + .../src-3402/hashable-1.5.0.0/hashable.cabal | 214 + .../hashable-1.5.0.0/include/HsHashable.h | 8 + .../hashable-1.5.0.0/include/HsXXHash.h | 35 + .../hashable-1.5.0.0/src/Data/Hashable.hs | 215 + .../src/Data/Hashable/Class.hs | 999 +++++ .../hashable-1.5.0.0/src/Data/Hashable/FFI.hs | 76 + .../src/Data/Hashable/Generic.hs | 25 + .../src/Data/Hashable/Generic/Instances.hs | 124 + .../src/Data/Hashable/Imports.hs | 14 + .../src/Data/Hashable/Lifted.hs | 98 + .../src/Data/Hashable/LowLevel.hs | 103 + .../hashable-1.5.0.0/src/Data/Hashable/Mix.hs | 48 + .../src/Data/Hashable/XXH3.hs | 126 + .../src-3402/hashable-1.5.0.0/tests/Main.hs | 14 + .../hashable-1.5.0.0/tests/Properties.hs | 287 ++ .../hashable-1.5.0.0/tests/Regress.hs | 128 + .../hashable-1.5.0.0/tests/Regress/Mmap.hsc | 73 + .../hashable-1.5.0.0/tests/xxhash-tests.hs | 63 + .../hashable-1.5.0.0/xxHash-0.8.2/xxhash.h | 3780 +++++++++++++++++ 42 files changed, 7250 insertions(+) create mode 100644 dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1/setup-config create mode 100644 dist-newstyle/cache/compiler create mode 100644 dist-newstyle/cache/config create mode 100644 dist-newstyle/cache/elaborated-plan create mode 100644 dist-newstyle/cache/improved-plan create mode 100644 dist-newstyle/cache/plan.json create mode 100644 dist-newstyle/cache/solver-plan create mode 100644 dist-newstyle/cache/source-hashes create mode 100644 dist-newstyle/cache/up-to-date create mode 100644 dist-newstyle/packagedb/ghc-9.12.2/package.cache create mode 100644 dist-newstyle/packagedb/ghc-9.12.2/package.cache.lock create mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/CHANGELOG.md create mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/LICENSE create mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/assoc.cabal create mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Assoc.hs create mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Swap.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/CHANGES.md create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/LICENSE create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/README.md create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/Setup.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-unix/init.c create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-win/init.c create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/examples/Main.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/hashable.cabal create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsHashable.h create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsXXHash.h create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Class.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/FFI.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic/Instances.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Imports.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Lifted.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/LowLevel.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Mix.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/XXH3.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Main.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Properties.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress/Mmap.hsc create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/xxhash-tests.hs create mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/xxHash-0.8.2/xxhash.h diff --git a/dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1/setup-config b/dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1/setup-config new file mode 100644 index 0000000000000000000000000000000000000000..5c321a4564e255e181c7e2fe1d3c093d03b30a02 GIT binary patch literal 451873 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 literal 0 HcmV?d00001 diff --git a/dist-newstyle/cache/compiler b/dist-newstyle/cache/compiler new file mode 100644 index 0000000000000000000000000000000000000000..7db724e14e53f4d0849c7acd2b6feba56882334a GIT binary patch literal 13559 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 literal 0 HcmV?d00001 diff --git a/dist-newstyle/cache/config b/dist-newstyle/cache/config new file mode 100644 index 0000000000000000000000000000000000000000..a6954d651b311df200ac7b0f0bbc472eba050070 GIT binary patch literal 4507 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 z z8j4G+;mBIivrtJaQL{G1)3stZ)QG@D%n&LiF^NkIz;xKE0hoe9ltiLBQ9LRxRbHcb zr@J*A?CoMJHBlk5^)YZMMNuQ3ESW@yD9eYwAuo({87gAw=}#g>OpVuWxD+npsh-Vi zjNT385|Aas1RIf~&AlKZ4GCK}03yobp(g>d-f3XZ_<2NqR`3L8(43k+f*s?&} z*RO32%Y>Yp+YCWUz5tqax&RX()2v;{{pQ~%>!&vx>n2c0aYgLt1R!5txT``%w zKw&NUjL|#!RpGBr1}N~=$$*JQDZ;MiqTH%**q$R|z*X^)w5%Gb!}9c-_8gx1q-VBt ztq}1u-m`C~j;hNevh(jW^fJUC>_a;JDiYTHOuS{?8>fU5=fh3+R{3b)Era95XPm+*A+8M8yDXsdbfZ@{^6Rs;o zl%gxb?8lr-z-&OyEuRRe@&zdZ*$1O;I{uJ#%1FBs;l-kQYzx2F;Axl1~po`cf z0_=ekc#VR*3un7Q0{>szF*d={!WYj#IZZfZL1)F&OpBC}Mz3HWj|0|EcDhyz-+#OX`Ti(_vxE&T3xK z)iRBgmUq9cB$!0gQCq2JY7c%++k-l^mK>p6gcnBNNUo@)1xnDP0y79%2>iH# z=nTuxsfe4u%+X5nqDM+c(grfckiEkWmB{xMrimR)#xy6WX%;t}QB;`R>EesTCw#Go zYqGw&%)3LEhteiMh2rWJ>}MdVaoM#iuFnF%U6NB!@&g3_nA&Y4O(bu28*#(%6KqZl z8@&&gfHAu7S*%*(ZU!HA$a|ac*p>3z$aXJ=ztTO7#;X2JUoJEme1}PREjh^)XKK*# z=%4IGypHh-oWH{n?KfZc`!Dz}Ep5oJR!UEHeqBltbiSEKCL5f1E>qhzdm z%KF(U5|Sa&n@Ve9&WeyJ$XdvaKv7k7xznO87O!jbY_`DAWR0d}MDS#-X16uP z^#~EN^Bn4eu4m*((QrfZl`CCDDS`+|l5{xcr?7N~tXb6;_L+GBkVK>ifXxRtk(^6i z+z6@JRPHPaJKlG$+`N4C#-$Ix`SC|Luid(SY4eKg0DR3av>X_GNPBn9G`5BxLfPcp zD%wc>GiQ72L>|i~rF`&7Usq@Uohp6~8l^?3w&&_6s*%T5-LmYX8A622C1@E>{ znu@pJX*1J6lJsHb91YrmL>{v>rfk9y)4lBHx%S!DY6D|VVb6K&7+XLqV_E!RTihp6 zS?cSn8+)VShBRhw;Pc+@2DSraYO4rNQpN7xWyAfANqP`$NQ-BVO7zMII?X)yl;s3` z*4EYu>|Xtt@iXkE1j=vsF4Q@=Kz01qrOm4<%CX}cqrNYSa6V^m+>j+i(avu`1hlc+ z-Tm}q@wS~eIUjBfs1$|R*m^?|j~rdo#oln^9@go>P!g8aUmxqf4K&Z`pCwNK61cu%@u5CdZU^~Dy9XRPULLCjWqY) ze>LA#=0#wjOcygzc!+!l$5VMol|$A}_SP!~|$X z)AGEI6Sq5l;CO9D(D>ILIU_XnsCrugW}tRhXvCFbYNeR@!;il2pt<5tV_x97<$iu8 z7~4?7PsP#8C7^@(G`7Xf`ejve(De?OjnKUP1+NO6jW{Ya>^#2@VSkFPzCg9@jR4V?a* zjq|!9l^zG_;PVt5&1DWgpAoJI>!jEY5R`hS>1gjq()A#ni3A{1%E)!0?~eOG{IA~e zuvKWb{0^YOTA|zY%{F!dw&gpq>vo)$?YA7eWp(TTdj(*Dd3Fc)e`aI_mIDy27MDf9 zIj_Mh*~?VuG_%jpB}?6DSfoSWtOLf2_ZVwAH-=QU8o6Riquv%#m77BpvD2{YO|xSq zNn$mFR?7k6SlITX1Xx^tyX82(A2kC%=y)yH>R?wB*s&dUoThDuW)c9=%uSfxj6+01 z)H*3Wk#Xp^Qg?~iSGhpC0^pa`@ta6H03sR^_S=>f#IA!JLm;8Kju$kWjvd6U$a1i+ zG67EJ0xm4^5<7}@nKRJ7R8%??W-9BIR8WEP62um&%!?uhY+K9tS)}Oj$(XIMZ>3uM zhz_m(dT6%YR;QU@>z6o9Fx_c;foplblh~cMW1>;pw&%1Rz?=m^5;wir?u59o_dy-D z7?^F1!Rx86sGTTZ^}DHL%BUzbQQZrzcGHj06rl@1HS{8{<63~8OMtZ&yOy5-R1N@e zi5*8y49qmkNvtqHv$jI;l2%lD8AQ1W5ZE-+7t&Ca)T_7rwr<*W3e#2r)c?s}WQOC- z90A4wG`H(*+wGu-w}C6y2|FFf38<5MQH<@fAKR#vT&`&sm9oyz zxl*=YVnYT|UDUN=x1;yO!d)fx4NQC4n!ZM64CokEy$zJUxQRxN;*RCof!zU4pqaR) z<#b}yVcYTW-0Vb-?Kizv5P0ad0XmYEpk7=?-a zvk}=ELKZGJM}3RKMB!+fvfCymIj`xsp6v&K4Q%@W_v`ox@C0LYaW87&4yzSo&^Tex z?AYikCIA=Pm>NQWDsp?2InyMTpCI>*Dd*oUGo3&o8crR^f^AfSW1AgRq1gnoVG@{D zVp{Duh&zdECtf>@qR?!%BM)67wyAm(v)O4|kpKb~%uM&rDS1Ncr94GtJc%nzQh22* zMzhA4S1}mc$TdznR@iO=AQ9s`MnyD}#KhRKFi~S{cRH>^_19|op@-F^?Ewu^kM@G& zPuZ0)=2Lb)%3Fz0r^2{*I<^@&uH^(_95n&u=-Q4Ow~#oN0?)EN6GIoRWru;^GDCn# zy0~Nw6SvvIByH-hPtJ|Vk(clclV*AbpX+3dU_wtS(XD!lZAhda(cBdNEe@-b9SP0f zPT;hyX5_S@w&{3|gGI^05)meGC+b*DLcnZ!EzG}IFigwxL#t_F3P#C%%$-d=_h&tl zQU#sNua+M|9fA#1#G+-_EkJ*wt6;v5+CZg@o1qtCg(_u5gf=w$EnHP^Ru;1wu;&05bJ4 zt2h|NafrTXHXY!9#y+q|Ev!of9NJFY0Fyb!kso-0)dT~U2k=kN(|tmDTcu7Yd;zD~ z-jJ3y7z41vs(Yy0W@JSuN&;9?V5xdoV7;h`%?AKPTP|i2%xfLA1UjLO>7(88P}8p0 zvfHtvOZ$|x!=e06=WF)C3>qVJaoyf zk()!FB}EORk?%q13P80;0?R%`+k6`N_(j)HVkfc=QJ zC8E-vq>R%{U(JT2tge_`?RKCi$QN=HB&PS_#GI-vSK;3+Aro~6tX7}_0~Z)3_1J=A z6CK*7W44=Z!10E08_NoybwjMT9-wSnp@qfSw`gi@Sw8xeucx6>e-OmVlWQ;0AO3x> z?7kDcpabEYVws^CVB(3}QH0TlzH8Giu^G2p?ItQ3fW}UM*$5lN2-{I`f*k>7ZLb*u z_?Llo*Oa#j%J&Qy$aJ7v@=_HUVk**Z)0-8amVifD7cNK%L~0$ zJ4jrh_yRP!6JvYY4uTe{D)fD9in&~TBwL$u^kUkDoU}OcDJLr?S>y?d^H|(jiF25F zDq_OLoqsro1s!%c`Dw=*rdjCeg)>>~DTQ;HaUNl^>1Pk7I{dQ+r#$ss!9_2mvTvc(PyPbT1a*Fs>kFsM-!UOVT-p8g&VC{vSZn*8oy^Ev%-~rSW$t#!& zJ9|S08MkH7IpZe>+kN9sH{R;S58y3p7;hPOpi(g8#0r0HaspO>pr&jPV{4;0KYV2f zFzX$Cm8z23R}vf2t(b~RN^$yj=iGi+$rR)2CLnH%5a7rJy+Cl+JO1u2tVhq`rH8F8 z9>@)pn!U-alnS;(Drhh@PIZn{n%8d$8*Jc$kll4`NL+9Oz#ZC2$^HBH8^8#YE*;?= zl%4%e)Y#i9&EwQ-nP)UNw>T+`h~EL`w}%+SGrBM}%WD3ZuP1>xp*ZAEFW>UV+oO-E zX+O>^)Wve>?p6#~_B-=^LfDiqD0k@eiJ#EpJoyA^a-N|NxL)STM-nhMYZ+BWkPEFq zNr8V;qIA#*B2r)FpC&rR`d5O4gXym(IYDUOV-XIH^iPKi4FnPVj1J61e+KQWFW?2) z@iMZ~yY1>s)$Ow&(0ap2S9A5ex`g(7a4-p^mz|NIWf$DUf~L*zQ~Jn+DCr1S|6&7{ z5}v#P;0ze>G8KpL`g6H_cSHT>|T!p{PJ(rny;%|@ZD1Ng3f!3us z>RF~)3Zo*wH@5WEwhLZv8vlQLqHl}$I$*s&7;H;nYLIE%9l5O#R{Dpb~h0U<; z_qtpCowz@~;A(ZcLvBG{ahEotPb%a7>VbG-%ir6ItHbv(rfWO*!#Y;?Xs}bA-i(32 z{~_8?ZG^D0J^y@! z96PLQdlBKVuu1H|g}$mELzo8zY4Fj3T@mz4Bggbe{%3|z_fMenXh&h#gvz!j^rp4G zqgEMp^M;2ZP|o8GfilJi%+W@5mzo$|sW^}OnQ`O4fBVlk|HaF{ymoQpOG|LecQeX9Jgus9Pz7xSFXYtjy9Mt9+@yrFf5ABPl$ zD)HfznkR~+JtkO$VcN4aM*EUNe8`vUchyFnBXsze@-;E2t=ejgYo z4_TXPsGRy=CAuHU`-Q7ESXEjA!AW>PC%Y+fD+r)E009c18vq4G($N<8@(2D7U}oV0 zjy|x@Ex7Bj;hlwDra{P5>IQB!=xvC2wOSvrDd&y!SCq=tG>?jguO^Cq-i^Z&l;xbl zQ>KS0F@rHAAeZ1ekIPJ=vl_wO>|*NRkNc4oDzRlP*xLebFJUqQs}8^Yq@m=NHGdB- zLWj(S0nd9vG&@`VTB9Al#KDxYON6?$UNUm;4kZDu%D~ha`RDCLIaTO%n6)!WIQGTRC` zQ}BnV`8G}gTnVI`A+Rsh=@1X%${{Ow$c|F=VWOGTDOm-J6R~=(XsGn0tLQQCN`O@+TchB!hFvTA^Y{tg{ckh6B zNyTaU&{e&DDR=r;5T8&d7_+cv1kd4d=7e8|@v%LjTX1-MWl;H6kGDyXzE$RNm3jNs zmFsuqh9E5O@2=jw#hwk;VOyKx~=R!lT01NU+enoDbenL@rK<-v+V*m z(FPn%=;6ZHjU(5ynzq@71qYD$d_sat04C+)k~;A077z~2j^hDJCI-BssUb3XM6OjE z#&RcFn`LdP38&a`YMR9j9nNAQBZU*MFs|a@wV5VMnsOPIMLM%XH!;#FtA{0Y*E9eP$jp3;36)@v8hSu6VJ%&xhN9=WKFxP<D z??Q2AH1fN~Tk63CQ02uf+&=Wkc;@YMwJSSa_~N?-N3gI1iH)~ndf)9{3f z)&o#|bMOP>!@+1|ymfc*gT@d~7l-k9IH(f>Dpb=N{U5M}$LUM`=z;M*5@aUS-!BSH zuZ@i@TsQ0mls$BKgvZ(q0Z*ADzknN0Kgt=iWG`>d8G9qTAQXs@P)qQ8xTGQHYjENP zCq*i$U%at--GG-vAGR&MUL2BVVscIj!B(2~IdWHsn3Nn@xxA6h=Z%`uVVIGju(nZd zevDo>A*D~`R1-PDw#FBEk65klB;E232V6sj2YkiQv9R?5RBYr~&;fHI=&gAjfM>?B zr#Ee{sFJ;)5@?8OYFrA#J=VNj`%FHJ-neRCnG9-NCVL?!cr{OOWjGuR^As-@Ci>H{f_YY#({;*Wni{p3YjxOwrvVUR3zCFd_G^niXvYG=132OV5+|wh|@As z;|+RkG{m1z+wRA%Q}1>Ad!N?nPEfkCsRJ&yP16w2JPUBRyodf#$no|9YE?De`LF&o zoQlB_`S@R^wh%(Pjrm$brN9mG+|}Eq4W;|Yj0e^|tlrhl+}6yf&}) zq6iSuePRJ`HU_#Zfa&4v0g{EL)pA?SI0D=@(Dp-M`$Lb}3!S**LPa{TpkEE8WS?}r zfsU<8y1=A$<8m=-X)&atv62aakV)2WKNtaOxN&^|7Y2IvUt0o~6*=od$Opd1E-T70 zwgTb8R2XN!q&wn8wXJKwAh?hbzdlP3r(i6p5~oLHMMIBjh@O%l;F4DOu;52ca3YO% zB8~QB`c-QKpF(S>a?+#Dn8ae@M_*OCCm|H%V#~nnzh(B>ypv7)!W0AVvn2|blL<7i zQO;z0MvfHhE`=JQ3i()Q;i^rl0h611aIQTP8(BZ-!lo47y~(AwzdOc5O{EbI`tX2A z+u;$sbBEgo6nG=-OQd;tcPFO(?2bRy8`h^}2UeMKPpEwgHPU-s(hKGg3t=3rAEtN0 z)i<&}#{2e6bI3zE2p0SjQ`<3__^QzPyW#V^Q(X0&WV$M>{ovMt)IB~ ze{8(_Z~s$s<7a;6i~s27fBM$+G4eRr1|2?+df|qNR*6R9Xr`JFTc1P$@A!|bjnL6n zvo_Tne|#fvWZQ!S!+K^9a^A4kYxTNu^MlPR=Z$v<{Wr$6kJ*Z8>tpQg ziXBd4BfE;MvsH<*G>$S^%;P>j^RyJF2Ux3k8b6waQ#E~%CMtR@AdilZy4?b6Hz$5Xq zm3cPxvzwuTN3YEHlm@$ULXt;lWLRhbdU*Ii-imhWZYdA&|_h=M1ja zg_`)jHo!8Q4BAHsgKcN)|d&4jm23Dgk6c}Om2AQFx<#vKHes`QQLp$+O z>$mb#0kLyk9s^_=l?Do(wj_{7213wHyLFg-UA}co26YpI45r?MFzjt~2kWf-Otupk zOJD!Gu+1Pd9W-hhG@0OS_%R{IC}PpTDUFvq2s3%!)<9$k6B+|ON*D$iEg3(r!cX=K z>qlDqeScSKUYD$q!r}anoJRJmlR`FB1j)_RHjAYlM_T(wTKlMh>F(}xuI~9HYEO1C zbgvCbOT$q}X(8{QjBP=xIN;0>S zO#R})&UlOHTWH4k)0h_vZqZ*}DFzEl_`k3^%#~^1|M3-LFQaz9a;&BL_6M|5S;UZ# zx3zTpNLP+(NUS=4D>TnNUaIxH%Ml{}{i)V-)OmD(d1fvAd;&KZx zg_X~haM`#7-Lm^y4{2?=%+BWM^)jB{@kiU2;heS?lf>o`RrLIveZI5|Brr_X+m>AM zbFlQaDO@*H?LRX9_r=^-ri!9Su3pNpx|aZA0V zaXp4k&uDubcOTWL+z)SGs%(K{Anv`Zf@hWw$?9k313%iDYR8==3m8^pa{YVM@? z|6(DfbH>%Z`$$-l>&ag}yg+|y&<9mYB(=4t)5p`SQCbsb%OXY%-&FZ)P%S+rld0k8 zCiLXipx*j4e?5&CMSB`4CkVs-cW?A?S zAzK7R+J0=Hm~7~cVbR#YI$ zC)gdv+t_?S3<4%e)SPilE{W``nS&+KcIhzGU<-C zMQZYVJwnNEE8kPye%RZKz`JrnMc%EV7%;LueCzgs7rG}+>_kHGrx?t=cyz9IAD*qY zMGN*u(1X5*2;c@a2C!mbhgj3TtTJ|qGseN&tPlJ}sm^fDxP1NEIpYJ_m(F3P5jX4L|a;p%h^+7=|Yq}qaDr>^ghyhbtlp^twc$?nyK$#9*fG{28c*MdsLy80P4e(?!=6b_O(>*`*In@*g| zu=}F5id?8YA-6Gz@&xuV=}$-bd@f2IW~bdc;_hHo?#Tq6piPlT0RQNpPJlO-l308e z#A;I|B4}cEf+EtKOe+U8LkS*}B}Ia%!4^f+3Fb1VJK5W6i9sZa9WYb=-@%3J#k|o8z30?8IYr3K0qH~ikXfh~Ds{3)*=FUSDlrK2inIDAkD zdRfI%Bef9v#eC?;q`({x3q-G%5`B!LO|L+yGK+?T-2fgy3Zbe1I5z-oBww~yWfpX# z81!S3^ArfaFhMW^v`A?pJxnDZ$Di!^y-|VS6`6=Md8Emy5dLN{97fCitvYhTLQXSA zf&N8F-xou<5T>d^o*4aNMSWeyq;q9F{212qd%GV)%~?Lh#eCq{0P7B1;bf?BqUwf) zJkOTUDb8ie#R{=YB1AmpeLOYl*QP}+=JVwe;?i1E{ZWQ}Tv2(d8PP1VMvA#jjKw4O zWJm7F9)WwZ(&dC!BdOrQ>xl8+zWf({_wRps^vwPCyFc?Af8#Ix`@iwueBsyrtIf5) zd-I?C?AaU6Pkl1cpK~7$-yrXCNb$&M@KAhzsh+gzwW)^6%l~oSXpk(B@GBFV7K{ib zAv}>u&9Q<3o(esc$#0nEJ}4?88gM6E@vi+Mm3*v3!EvPhY~td0uLv6 z7A!oZ@R`z()$y=WXi90eB$}uWB#kZ@u~Ittku58SXs2l+ggvJfeYlChsh48~8(0wm z{-8>4+iKxp_rb8cwLR8u+(5toJH3M8tIBh# z`AiHCm0gLmiyey*=-tG?j$#zFmtY(N?17M%|lx_^X(%_?gTh3UhzCQjW%~W zoIzMTE6z!tIXO;?QF4x)Mm~9}oR7Ndj5#fK{_Hf3vUr4=Mw>fdmYhcCj+;B1&K;}# zxH)(9S?AXMC#27nb4Q)OT`Eqv({h?T@75-qgo=r3|M%+!FatH+?LQs%8A{V2;}4)n z0(3ywOp;$le#2%geQP(I^aU6I=?m=9(-*7Zr7z6}Ierw$wK1iqL2Y0i=tyu3*C3CR ziY}8}y8+08G$fOpN6C?^ND+yk6LfMOlFNj^bUh`@Bu5T!otb_{siJWkjT8u}pb{Kl z#w|5zN7QOb&)*_kFw);af&d2#hh1?|eIBoHFDhVj={}rP7Zf2B1%!WUq2&OVN@VCsqM4gl|AAA*!JmJ#ye9lHPTm40&{jxq0;vj$zzU)gKbW)u z5gBt0>%Uq>A!{z83^Dc-gL=f}Y-i9pqz~nJy(5he_LZ58l4|}RBr;!x?ZYP!lYH}O|=-w>9VBO zd9j+vSA7tPH}Rsl^i<+sX1p6Q_g5xA0u;Wuf*F-(AZpV@`XYI36QpbEFav(I6$K!u787>CTkmk_cJ|RQ4Qz4ikv=*U(qE zM*RcJD800$6iOF&ak{0@*-Lod*|B0lUxa5>4Uk;P@0_8Dh3dg28&(GVCiF*5hutuNbtpX;p`P#ngHXhmZty?~-4pk+YR^Q=A^CpOwr7 z_=p*}D!nqXYZdLc_PXKS%iD2yw}dr(!mzg*Z8_+zhUpSRn6dUfsT@I99YI&|jUC_l z9YI$ezjbNzs;Z7-$2UeteWch&rlaj=v8Ns#bkzZ!Tb51JhYss-P}q_Zdzi!HEdyw^ zn*2>-Tdg{utIpp6ojWgfjF2~x67Z`(eLw)G#f};9TEM|NpcCZ<*J&9f)}LI-8r3*Y zYSCF`E^&TQT>hEWuFEWD)?>u#YR;dJ7m^m6(i{LuD{pQijcsx|=bJep9k4!eJ5`Tc zR^mAw8=jimzTIhtq31Tk$nm|n?KqC<`taE6`@R#0?N-uq;PN+Vw%S(5qzE1xTC7d8 z+#z0`Ap2uJwXCfLd0ujcKH$u3*mbw%cxIGz91FVSz7x70d`Wvwt7ST!B(#H|<-);} z8wPgR@>^c)nSt+{rVXmZh8rl}2D3>JadC3(b6Fq9FDZc_as)_u3rJv8M2@(8$JE^V z^MIi(v^BX3me@?3<@7dTstWhA9J~(~$T~{?ft#WPR8A2tvH_M??^CP0qLycSyE{D? z3HzNs+<85TVV^a><9dEk)4+uyfey!x&E{6qX=obJj%z>rlY2c#v5gN#yM8YM`h#Tx z{lT(T60ak;>+9gRaR0lPKpcA!_VVL+(1>D&fS8|>xjU~fmM0z5>cVXVy+N?C<0H4> zhSvJxB-CH)x&-GJ*XP)$bazoGVUGX7ZcMk*u(BTsk8lQ=MfJC|pRJ!M_hyi~xh02Q zP$`0_Ka=Xk4@S2|Iv2_Ge-C!=!U`UqZ%5nR-CbD7-$#*B-NO6#@8@pL3A>tf8nj(| z-rbi0*Y6$p-|GZn%WT_mULD~aKm4fXyFhoV7xOMY<-u-0?W6hxH_gjeZ%=7J?m)BtGA>Z{ zGW<$_$v{quBwd5*6t;0*6g5@SFGg{^JBmNS909P{uQQQT&uQ+FaO zR-v!K0p~8J;kd4phR_c!n-qfT*aYis;;bSR!nuBa_5ec$qXz%!Gk11S6+F9^RsDwk zSmEXMdcF%hTy9*>>C)%Pse$8t3tFVm9gTZ+o7C%2=}zFZt!Cu3qPFRHj$_BRWjXCI zi91opYPL+cJ_lZ}8@Rq}T9zMT8xZomDTEG%K&&|HL5T!b|oeh5^F1K8~N zId)`?TT4+^oy5YKtjb#Z)@GK-^Et-A7C@4g$K4!UJk51?J5CMT7G7DAwmU)~^ z0sDGmj_3t+uP<;HCM8wqcJ2U1WQ*arBxlEdyL|iXGZ~|HiP4!&2S`&;05O1YFOaf? z;^;YS&ix@=$PEWOLOJ$z?xV~}W-z^8+ZjZA0G0yc+~B@SZU;Jd#u%Ej!>-?(NF1uH zq;eY!26xk~`KSw>!ySJ}h2MrLdv^f)?kza?-VJxR8?-DCx|HOfAhW>9mV)}+F@dqe)9H+QgB`gKl z?CttE%ZxU#R;&4>u^S~&(EY^d4-6{#dE*^uk;OwJopMC|YyLHds$adR>Q?}0i6VAK zJ1UIl+KjtD74n4HL?DM_1jt{>(0-^%QuCp6QeRf(5A&trB_x=GyUnrPtgGkP)s{H zkuVWzk~G%-o^=1=l#bjkx8hb1*)D|UM{bu_%kA>yrc4h2CxAL;-8^kMNhpdB1OkE?F+uiEU0%|n5CP&53= z-!Ga(v%}ybuEMU`dKR5A8-_a7=iM=r&*6vj$1JVbiyoN`qrxXM4CcfZ7N^^bO3Fi~ zVMVXZ&|@EucSq+pHZqv6ik{$<#NM;QE3=XAze~;`MK8^;9mg(UIOyf}v_-GYhQWTD z^FEr%?JdOe2J8cbuocyr{QwzP?gI=LbMJ1$&AmGf;SE@)2sP$hI7}Ea@6vWM_W|~f zxp!Dl=H6jMnR|zzC-<&0K$mzIP+)ZAfYA*6l~Eyq(M;#8%h%3R6p$!3rOjpWo8lx( z2K&n*6|69epA<{kh_J{cN5omnNQz|`2R=;7=neVjAB;_;c<71|%uC)Ww}{7-w2B zpULE@xFSpVaBpPu%-5i$66)7!UN59)T4dFrmJs`xn`!-05eyu1;`X@)5^v~ zQwySrrZLS#6@R%*)s0$Rk|_n4#`n}Zeo9)~$ZO)`xeH=hf)^x#w7hA!xKK~KpDJT1 z3AM4-#OKQR^1J@MZe(o6!x%mnp%fiojOYu5OL4am4t7}Mo+CVUdrU6Y)T2kX-6y=pzOokrwaza_v^WpDLK^9F!BmZ=xcuXGhF5SBJ#;7*_|Ji#N zSh zZeHHe+JYi@Ez7c{IC@xtVjF^CC$WG$6i0Ca8Hf=JaxB1xUphejNG~+7J0e z96Lm(L-0W|x*7Updg|pz{XXJPz$9lIxmDA^LukQ9Xp7<^feA3y+3LY+-`TUi+~0;N z&v*+*$LB4=p-f+z2w zS==+Fl2f;D)WT8T2g99Pe?-x>#gHDuJ7^_ZLW zV+YXk`R&P5B(@=+Wmv9%CEjTdRTDRH`l%HSSy~}PJ}q2snSO!Gq^-N08?q)vF5Ynd zkQNV5<3IlUl=|{<;gMxbmLh-gO5f$2xx?UkCL6D1@;Tv;btnwa&(FEpoENY7&Nwo9 zJPd*Fm#edLw1QmJ4pnRR$<&nWw|%mgrYlO*`t&e5VxLTXKD!@O8)z&aYA@`Ir5~Kl zzp|eX(Hk%bzG1ttSNHFzr-$0I1u=VZA8o#aINGu!p@@&9(Tn2tOEX(dfp&_w;Mjb) z@0tTJR-Lac(y9yZPU^)&)zpVzurg=cjKO%QO*=S$Q>NCc`U?31bU z*}cPUcpn1@r!p)#0S^(!%c9?hzEIuD;p=kO7% zZs+0TlNsC|`YLt~MiN;b-D-6XMm`>w>!Vtg&SayS&gbf^J|BX?+Kje6`c>w`aQNxe z);*%t*C#cFRZR$hqn zd+4jWY4yw18=roj78cS&;1cfes+kW>a|$(36wsIF`!9Gxtrs&6VUO{Z0N0yW4o<}# zeSxMZye}{JzHHy?JGhSx>8h{zE%EE(76O2D#g**3C2wu7j{%GZXNFEMytik)?sa3o zaTB`L?{9TAXxb0m+D4?34{Q(jmP7(bYuEkGxBT8Z`~@CZZwY5?XV|~zBSwR_YY#o^ zD?4!VPpxj9yqf3&QZT33=MRAtmd7=llI5w~Y2a9hzf&-!&|go&Y(YIe5j`dJ74=lZ zTs#d5!X-P0gKbUWX-X4&IF2$^1HS(7lq~XS z5-vx8iLjCwcrU*n0`fs1nguq3&aK08AUc4AezS___{!k`yPE~A=M%GT+A?~X%f>@k z^DOm^o;}0P^@2!9pI>O^%Xfj-Kuf;hm~xDhrdE&QjQkNEC;81(z~i}c?qj*PlKH>K zezSs|#A=TKGSNI(^BRpjc>{}l^t<`YNPgsBnXfa%{RZyDR4Y;$%k1pb+)I3@whp=2 zymCqhOH?&KT^No+1QFpu_gsPSmigfuh4+@kA#<0HV%9-Vj>o1PmV3^anuGy)_SD2W z23p4eMHu~QTJdeH$QR|BGK-y}P7lYO5$&@dPyKyH=8jAK?XOXF4<38WeVc_uYjZx5$Qn^dI+K zZeFc^>Dv?{5@!YOy(l`jAj<=iXlt@3MnH?-6X}eP9!ozh(hJ+;UPm&QI^>>{xuU8C zL6%aCpg6M<$@G~2G(Y@+KY8u+R4^tS2|SLE%u{cR=a0d=<%Hw++=-O~w=;9#9m5LZ zaR1Ob;x9IWl5dekvm|DH5Pe33XW8u*2I7oMC`u~Gpz+3-v6wxvWskRfL5a1AxYsIo zd}q`}Y6ROAOPzPzJ%#YrUY{Tj;|i*)nW6Y+%=p-X+0^k$ywTqafr#=@823Uu@Cze( zj1{l?#kWPC_eB2o|c^0R}>xnOIN;jpWGtRHqrwLD~ z0QbIuJ(BpfdAdl!^nMKB00lO>NwVlOGmNN?08SYyZ(+VaIld{jiw1968Qv_2M?nnt^z1 zhU8Ifoe%1wOX#1DveU3RjL49$}I!vwp{btPTRLz z)xh^#4&wXxL9<+~B79rhuK10X*Q(i`+i*Al!^N_1w;j7$aS?RRE4yyHY&%DYxixl) zzPMV5x$*HsODX9F#7buUNbfKIZ26^s^Zd{JcKsKs|Ld>+{{Q^@e|`O_-`f0pU)=rm zFMa;gr?0X?rGG9SlJ;?+7%gls9u$m1P63|7v%>WlA#7gnZHT>J(0NeU4rAXv>}m@= ze;2#Vt`GcDLCP~7+Eia1vAIat+)sWb36E>h-@r5z&Z~FB1(C%6h*+KZB%FIF)1YCRwB_4)&NsK>HC{55|J5S2N%9-eN7`2gTAT>x1kYJ~as*5;K8 zrxXIX)9d8OKqilk+0ZV8@W^+4k%>g1U*7`C)uf5<>z4U4PtP&Ot37XzM+jJ_d6Km( z&xR%s`yLfjz^K!-vRRlxP#zA5g`qz{I6gzM_GSH&-|p}D6uiXXRU$9XwtqqOovv3H z!Gq8!jg|tMG*2h6z9-JuqeQ?3zwt&J;k?T01Reaw8v?($rhfo2Sbqm@vHlLsV*MT9 z!1_C|iq&_CK&*d6gqjF5Th-42G@8#VB_zRx9mIXvBYXx=D41*utbfF>ZXY8Yi^dDq z-1b0u{3*l;K_ZFFYN&C{^iDqq2DLdiX_tYS8KlMj>}+HzpP4IW1~Dra9i`07Gu1SE z{?e(&&$Eh0*2Qz>l$xtN!R9MrSkPt`ATIKmscep*Ohjkq6P7n7xlA7&gH&doH1(RD zc|z6ZD3VaS>=IcjII~1T9cSmCS2g!RX_lJKB$cYN^Oed{-#JUCt8#YXq*`a^%vSN) zWejzXBQ1Xb6dnt5e_WAfM7=K|G#{+bwcTz;=tL za_L~=cI(GjtlYX~{JM!XWw&p8z9-$&LnG~qAK0*=*aUu%JsJ;vGi}rDBNQ+Vmao|e zNCq3xP!9GuK(wZ2Sprg9fN9qy0(M;%0LFFDwYSdEk@$I?KTbvhD2e5)6r|q`qn88l z_b*w2eGehfKm$P7V$TBm)g6wMOi{{00MQa`)4JsVk;y?Og>NL>@^!^2T_jHHbp|PN ziJ>1}(2u3ewW7qHlSMN^6Vt#iUb~r@blv`FZ)#%kEn3LH3(6prx6v4Y5y z9|M-@l4e1G%0&ee+AGiO1Xt*&Sbec#iT(=xozB*_W6Y5kH&I!Y;=4 zaTf_A3?|psMbe0i>r^{(+xQO=^CG>LDrLEyAp!|fxII`vTjzHA;Rq02yRa^wpo^gx z5)c`2;Q0f>o#?rH;6O-I(W4Jq^;*Jq0$^bQ4;cax!zj8KU4vf)l$dpqS_`JP{hiS7 z-uJ`vqV@@zghEFDN3iSOeZSWM$XOA_+bD>qE>3_gpoig0&%z-CO&KzUMn9qi_VLS( z)@h2_q~rojr!;m$lHo-;XI(5NyXwwxjGn??&UeQGKaP8qE!_m~$)OG#GVz=?Mg`ge zPuRhUxx!o9l=SehK6Fw=$1xxfE zk&Vsrf`-hXMq*xU-U>pEDIg{(wWwC^j{FCm5&5nc!jaeM1HVwtDal@^QfxvdO6%@d zMsVWc^iG#D5VKfH*DKa26S5$Zw4g{olWIZF=#L}`tB}iN6(SX&F3Kb(XR)*xZPUbs zcNv?ASxJL2QFONMptI<$V2St1>v)|^%(bTUC8Hv^j`U-QZzw96w~^pjhn>dsk%c_t`+rCSoY22j35Y6;<_cwVmP1bN4Xl7=`f3l zQbjsKw;1K6!Hdp<`gux}<&!TWlu$=ib*Apc4S%H4G(>fAEs+}_Wz#Csr>g=n zGtYZUkRp|ttG|uz7DhIvA&#K5l+F^v(d;83V^Lr7HAKxu_+*%ziDa!(;<@@K#Xd-6 zjtQI#M6Uzt0g-P~@W^b0f)bhJ7+@;uGv!?>G9N(xrp<|gykJ(qkTM;n@T0`*nFc}0V$mWg$p3Iio;I!Ncot#L#} zkG9{RqNDp|z7jnS;i;!H;}o4FK@aXRh~jkg&&-%L z5fAd4$qD$(!xDz=MIs}YXA0^#qu}@Mzfnlg;N~608JZPmXl5TPC-K~x4pl@Lu1emY zjNP9X>As~);ctvA&u_qIV`I=6Jh&TANR)M9RM$_GU5}H;bP{y7Ht6W35C3PF1i?~u zm?*;Y~M-Diyc@S2o;vSpR0!=3p95~roGk^b7Tvend;%sQ-ZwM2B zjS#yl-+&)3w4G`-4nu&gFgAAuzg`KNwRRPjRxP{QF1c>AQF6VS-Sk_vTCLo$ORchP z+lW-&st5I2*=+`;daKd~xO>ZPI*QjnvpO8n5LrR4aL=0P*Hw~P#NBFg^=DT|zaT3* zQ%v;cL8J1R_vZ^5lN3K|L)|7RE`N4~!$B$gUwtnAvt>#|s53UiN}^t%6f} zyXH2U4clqf>adM(2X57I>W!dWYq(C;t=sjc-z+<}T`pIVE2uVn#+*33nzWF(k)NE> zNHY0;f-$jBl3kvr0HG+m8H9imV$#(eehc@_H#54nZ!$BV!UhFahJ&y7b=WHJA&? zX;d0CAvPREiz9QVzxm(9rtQD^SJ}v;sHDEO`A~p+2cGGdJS`n?Y<-UcYCVyAY2kPT zye@bgptM*^*J4XEEclLL(aH@mmZ9^zw8mZEK#_dk(kRlpRwQG&tN)^m`ce89&d4x2 z$Q1_-ID%?Q7u>@=Wxa{v0~{FJ=HYmmEX^AhLtBL>H#CeLa%Cabo*b)>(EL`UEX)psuUGnP@c7We(R=pY@wOlOOb+_r;wWjNpopL=Wl>^*=mF;TP_7Kt7 zZ`A9KTM9}}sZp-uw5H`(n&qJ80@tAISIVA}@Wpx=MH^+OU22rdWv5(!v@HXXa{Iew+x^6XYQ zD1*OJ-EDi-w&%5cU;~sJZrky^pj@xiUAyI$s{X2C2TU7H(XkSb6YIyD?b1*E4=0|o zKKPSA_fP-d&z$(FSM#-3U-{L4`T6kQ{O*^&@qNEGq1LenkAvU;;(0uB(O-y*zS5*s zm!=vj`DbP$3B*sTvv37)e7$5`fdigkq@xMM&NJB0Kl14&tGuNl0L?yth74TR44=PQ*{?5+>K;%6Xit?<^RL(q%rS{n7kSOo=Y9T zo>#J7j`{p3Hz`4NUyc|H^57COpW?nHOv0t_Rze&r=7$9jOW}njysvN}KrX`*?pAPA zg?|=2I;{(ZbNPJaA91+$`KhM!Y%9--%)T$82Qt+;OU)CDorvf(lm3Tu)R@~=|7OK- z+gpyG29||lWq4!^PY^;IL%Ai0Y`8DP47V@Dt*W%OcJg_qiS~s_D_~fqCW?FgQO_T3 zjQR)@Z59Yc)^Rx8&?e?GIZ6;Y3(y8JI_g2#vj>JvtiGN&GKN1ghW}nLhW~T% z!Fn)b_}G$au|`|JysG>elfvrq7#XJXQQqUg>*K)VUtC$eOgFIqORLOp!rcDPuPm== z#`nLn+T0qZ_^Zz8j?Jz|e`WP$YMSXkX6&x+{Q7vA@Uw+W+%igEyz#wTE_WwwfmCYa z;xQ=E7SS>#lN1OKuiJ>4w9^@N?)wFTumB)Sp>4aZTD@7SH=RZ`aP4;0cPogU z(D0pxTd7x^M!DT`s&xmE6-srlUTw76a2IjCQWe+zZcWK}d6ac0awAUZM$l1H-Y`%+ zqw>Cb83-A}ez$m|-?P2qEpD_XwR~=8u<(qyIe8R}rPusYoS)*Q;n3bYL~%{4|6>W> z-r5`aht1zC9^h^O#7*6w#T$SrJw)+Mss7a@XSTb2#UF6E&s^>h#=>+KUQQ;DM~5rD zsSG50p8EJvYhRLwR}vDW^urb5bPirf@;5rn!I542#}j;Q?%-&)Gky? zWj2_6S=uB3)A8cA9p3Z1-C}>pU`c0F2)sV*UUWmhh+v4jMc*42?eUvwY@dRQu(E|d z1%D0Y_jW3GlFi&t<>P2MqC-$0|e>%j1i(X3it0{(2HLR9>n?eLan(3;%tN z!c*WI#D^64SWSTi&BwrTErAjiL1ZtL_ITvKlWm8{bQ`QI5XKofesg3>~|H99o zD_nW^($}uu{mRv=w=P}3_O+|=Z2A}L{Bwn1H1z$#eTmTek*{(*RoDqb?TD_6J>(bW z@?);k8HLf1Dv%}*!lIi&pUY`Gd1n8$#Jl5K55AG`!!O=Uj)hNUB9P zy83z&um>;Y+PTl=KA&sl&T)nXeR4xj2mxgfPSR8ZkUU z#9IgR>WSQ|23h6>?npjXy#BW-7NjzJM&>7YQWiyY=I4@-*eG;d&o-1-XN?8rm4PPN zC*>Hw9pc2ruPOg9>5~GS_}iqF`}4nJ0?(__`2KsBZh!sm^-CXYPO0@Ul6c%8R%}SY zU+M2@VM>Ll6!NDQ?9((aUblDoZK9GPd2XJ5@`%1LA4^nocAGPTsFI2u&pktJhW;MU zJ#Vz0Ihqx8{)|8}?GFdrIA{euT~5%_zoPY9cAi%a)M&SBW7ZA}L|u*qvEl)n86)AT zk-fF$d)d@w=y^G0K}Iw=bI1zR>4=?ds<9y}vY9T7y7@1f;kH$9)NG*u1*b^LibW zNOΠ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 z%0A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 z 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 AS^xk5 literal 0 HcmV?d00001 diff --git a/dist-newstyle/cache/plan.json b/dist-newstyle/cache/plan.json new file mode 100644 index 0000000..5d575a4 --- /dev/null +++ b/dist-newstyle/cache/plan.json @@ -0,0 +1 @@ +{"cabal-version":"3.16.0.0","cabal-lib-version":"3.16.0.0","compiler-id":"ghc-9.12.2","compiler-abi":"9b33","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Decimal-0.5.2-600669ba4edadcd5ebc0a15840217786960d826403f83e864596076b23eb1f8f","pkg-name":"Decimal","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"83dd16a1c0737fd35fdb1088af36e1a53034e75090e3f0d4ad32296f1a35a13b","pkg-src-sha256":"a37a0220424e4bcb8cae1d38844c7027ee314449758d0d14ff3e2e0a5c8a87a7","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"OneTuple-0.4.2-b32b398a76b5194fb920d0aa22c753c0d6c85d7aba8eb48c65a953f1499f3827","pkg-name":"OneTuple","pkg-version":"0.4.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dd7266f983da2970e5662168add810dabadabb3a4bb9b137181eafc0ac7ea4d4","pkg-src-sha256":"174da8a0f4004d17b08182cb25b0e045fce5de1fdeae84e9d75fdea2867aab55","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168","template-haskell-2.23.0.0-c7f4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"StateVar-1.2.2-e224a30d0780e82758e45fc9d0e7ae88b12352f5b7218586383b35aa2969138c","pkg-name":"StateVar","pkg-version":"1.2.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3c022c00485fe165e3080d5da6b3ca9c9b02f62c5deebc584d1b3d1309ce673e","pkg-src-sha256":"5e4b39da395656a59827b0280508aafdc70335798b50e5d6fd52596026251825","depends":["base-4.21.0.0-ae91","stm-2.5.3.1-d35b","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"adjunctions-4.4.3-4f7e84f876f3489c05054a9739a17c08ef6cd2fa770f59223ef46cc74627e5de","pkg-name":"adjunctions","pkg-version":"4.4.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"766e116f1c348b6518b96291961a7768e98fc467cfd29e51c230177eb997e676","pkg-src-sha256":"8beb121cee2bf913dac3188ed1e0e05cf1a0d0f12d4cb4a27c0da58450eb189a","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","free-5.2-8807e0925de9263b39b151f61249e37b84761209d43a075bb790fb0ad2f88168","mtl-2.3.1-fdf9","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","semigroups-0.20-f42133f5dab06e419b9f5765382f7b736c1e55c657f7b1537e7ebeaa6cff7a48","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","void-0.7.3-103ab5eb56dd906e16f096cfb98ad9bd3939fff42d98fcee03390afb5a137a87"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"alphaheavy-quickfix-0.1-inplace","pkg-name":"alphaheavy-quickfix","pkg-version":"0.1","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/runner/work/quickfix-hs/quickfix-hs/."},"dist-dir":"/home/runner/work/quickfix-hs/quickfix-hs/dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1","build-info":"/home/runner/work/quickfix-hs/quickfix-hs/dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1/build-info.json","depends":["Decimal-0.5.2-600669ba4edadcd5ebc0a15840217786960d826403f83e864596076b23eb1f8f","base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","conduit-1.3.6.1-3253a6d7fc24b7ae4b6194c2ccb72f83196b6e331de00421badb334ae8e92501","containers-0.7-5a8f","lens-5.3.5-e458ca06d7768e007dc3d36c8d55776b01d03f4d7c37f18f0027794e89ab4781","mtl-2.3.1-fdf9","old-locale-1.0.0.7-f27e5e13de030446e2025650edff14e6c7a407c7c4e965bab23d4f15a2606634","resourcet-1.3.0-72b3db864ef7732b52c231e1c8afdfed5067df650015181c1b1cbc43b76890dc","stm-2.5.3.1-d35b","time-1.14-9bf8"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ansi-terminal-1.1.3-09b05f002e607d6b8f1414f0dad33cb8a1a839b42b8512890844eb4665f0137f","pkg-name":"ansi-terminal","pkg-version":"1.1.3","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4b26711a95ec724284cdf41aaebc624d9f8a51799424f90ab09d1276bb154e7f","pkg-src-sha256":"88d11a165cd709bfd603b4bc36afd5b39d3e9eec69ee466ca4359441d468c092","depends":["ansi-terminal-types-1.1.3-db1685275f2ae75f174ebcb59477d0f46dc1d49444ea3ca385251c4aa0706203","base-4.21.0.0-ae91","colour-2.3.6-877af711e01a9768ff7baeb2add940dbae8048532d7eeae7b6649d02b1864531"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ansi-terminal-types-1.1.3-db1685275f2ae75f174ebcb59477d0f46dc1d49444ea3ca385251c4aa0706203","pkg-name":"ansi-terminal-types","pkg-version":"1.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"1d6061eceaf35a9ed269b81177dd4c8c60403a499526f7f68fdffa4ec7842e7f","pkg-src-sha256":"9fc9ce2157f1889bd99a4d22c9f1c64589590be0f797c3efe71c8fa17a11a689","depends":["base-4.21.0.0-ae91","colour-2.3.6-877af711e01a9768ff7baeb2add940dbae8048532d7eeae7b6649d02b1864531"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.8.0-9044","pkg-name":"array","pkg-version":"0.5.8.0","depends":["base-4.21.0.0-ae91"]},{"type":"configured","id":"assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","pkg-name":"assoc","pkg-version":"1.1.1","flags":{"tagged":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0ab39b4d1feb4caca95ac6e314f48782b27a86a6b8d1f5e8dc4be9fbed11185f","pkg-src-sha256":"231149b7fef09f5dd95af51228615e3b296dbd0faadeca053e0644a4b13b0ff6","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.21.0.0-ae91","pkg-name":"base","pkg-version":"4.21.0.0","depends":["ghc-internal-9.1202.0-1465","ghc-prim-0.13.0-e168"]},{"type":"configured","id":"base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","pkg-name":"base-orphans","pkg-version":"0.9.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c95cd3490ef99998a496de26afe8879a1d7780fa181a4479a956c690d74f75f1","pkg-src-sha256":"17a35079c8719014560c028d9805ec1301b900972adf212e00af23fe3ebfabd8","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","pkg-name":"bifunctors","pkg-version":"5.6.2","flags":{"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"115a621c4eaaabb07834f9e4dd3371e21f39d034305062f4bd5cd72c2f8880d2","pkg-src-sha256":"1086a9285061eed0c2c5d3cb65aa223defd52fca6d0515bb69ddf2dbc3d9697a","depends":["assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","base-4.21.0.0-ae91","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","template-haskell-2.23.0.0-c7f4","th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.3-25e5","pkg-name":"binary","pkg-version":"0.8.9.3","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","containers-0.7-5a8f"]},{"type":"configured","id":"bitvec-1.1.5.0-894dbc1458e6c578920cddadc3f8e4d54948ff717378713f39e084edef2957b4","pkg-name":"bitvec","pkg-version":"1.1.5.0","flags":{"simd":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"434be6dc60e22858a52869c58038c35353f1a778b9679ebc06a2165bcc7f88b3","pkg-src-sha256":"83d27cee5be1d5342ddbf39999d0c8ea54cb433d0891eea5471fbfaa29f8dec5","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","ghc-bignum-1.3-6db4","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"bytestring-0.12.2.0-7dd0","pkg-name":"bytestring","pkg-version":"0.12.2.0","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"call-stack-0.4.0-c186590f776f40ea8987b627a4f39841bf0837484e46bbfe07e39cafea40ec5d","pkg-name":"call-stack","pkg-version":"0.4.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ac44d2c00931dc20b01750da8c92ec443eb63a7231e8550188cb2ac2385f7feb","pkg-src-sha256":"430bcf8a3404f7e55319573c0b807b1356946f0c8f289bb3d9afb279c636b87b","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"colour-2.3.6-877af711e01a9768ff7baeb2add940dbae8048532d7eeae7b6649d02b1864531","pkg-name":"colour","pkg-version":"2.3.6","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ebdcbf15023958838a527e381ab3c3b1e99ed12d1b25efeb7feaa4ad8c37664a","pkg-src-sha256":"2cd35dcd6944a5abc9f108a5eb5ee564b6b1fa98a9ec79cefcc20b588991f871","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","pkg-name":"comonad","pkg-version":"5.0.9","flags":{"containers":true,"distributive":true,"indexed-traversable":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"75aded79bf583c908e4e4687c0ae067f256e2507536b75f58ffba7748767c353","pkg-src-sha256":"69fb0eb49a80055a9b76d31d0a5648777c4050ac8dbf56a9344b862ed878a789","depends":["base-4.21.0.0-ae91","containers-0.7-5a8f","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"conduit-1.3.6.1-3253a6d7fc24b7ae4b6194c2ccb72f83196b6e331de00421badb334ae8e92501","pkg-name":"conduit","pkg-version":"1.3.6.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4e5be34eeff16646eb7e13471c7ae7e8db59a3f7cc3125ecb1fc0ae3632baac9","pkg-src-sha256":"69902af03ea7e4cb982fa83da42afe36973b62d0a52ea140ae5362e52854ba3f","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","directory-1.3.9.0-af18","exceptions-0.10.9-4d2e","filepath-1.5.4.0-e69b","mono-traversable-1.0.21.0-af8d364e526d45e94bdbcda616e674eb5dbf38164b53620a73ef7cdfb0bc2143","mtl-2.3.1-fdf9","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","resourcet-1.3.0-72b3db864ef7732b52c231e1c8afdfed5067df650015181c1b1cbc43b76890dc","text-2.1.2-ecdb","transformers-0.6.1.2-38b1","unix-2.8.6.0-c07b","unliftio-core-0.2.1.0-bad6263037f56d4ca365d47d8166f461027fb9e515d2cde0511d2e722b88f2a0","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.7-5a8f","pkg-name":"containers","pkg-version":"0.7","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","pkg-name":"contravariant","pkg-version":"1.5.5","flags":{"semigroups":true,"statevar":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"470ed0e040e879e2da4af1b2c8f94e199f6135852a8107858d5ae0a95365835f","pkg-src-sha256":"062fd66580d7aad0b5ba93e644ffa7feee69276ef50f20d4ed9f1deb7642dffa","depends":["StateVar-1.2.2-e224a30d0780e82758e45fc9d0e7ae88b12352f5b7218586383b35aa2969138c","base-4.21.0.0-ae91","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.5.1.0-6837","pkg-name":"deepseq","pkg-version":"1.5.1.0","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168"]},{"type":"pre-existing","id":"directory-1.3.9.0-af18","pkg-name":"directory","pkg-version":"1.3.9.0","depends":["base-4.21.0.0-ae91","file-io-0.1.5-178f","filepath-1.5.4.0-e69b","os-string-2.0.7-e43c","time-1.14-9bf8","unix-2.8.6.0-c07b"]},{"type":"configured","id":"distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","pkg-name":"distributive","pkg-version":"0.6.2.1","flags":{"semigroups":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0f99f5541cca04acf89b64432b03422b6408e830a8dff30e6c4334ef1a48680c","pkg-src-sha256":"d7351392e078f58caa46630a4b9c643e1e2e9dddee45848c5c8358e7b1316b91","depends":["base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"exceptions-0.10.9-4d2e","pkg-name":"exceptions","pkg-version":"0.10.9","depends":["base-4.21.0.0-ae91","mtl-2.3.1-fdf9","stm-2.5.3.1-d35b","template-haskell-2.23.0.0-c7f4","transformers-0.6.1.2-38b1"]},{"type":"pre-existing","id":"file-io-0.1.5-178f","pkg-name":"file-io","pkg-version":"0.1.5","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","filepath-1.5.4.0-e69b","os-string-2.0.7-e43c","unix-2.8.6.0-c07b"]},{"type":"pre-existing","id":"filepath-1.5.4.0-e69b","pkg-name":"filepath","pkg-version":"1.5.4.0","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","exceptions-0.10.9-4d2e","os-string-2.0.7-e43c","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"free-5.2-8807e0925de9263b39b151f61249e37b84761209d43a075bb790fb0ad2f88168","pkg-name":"free","pkg-version":"5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7f3992a66987bbba5a6546420f6129fb9b66b80cdd005d34ec77a1e1c8ed8340","pkg-src-sha256":"72867f7c89173263765736e8d395e94291f1aaea626ecb1d673d72ce90b94f89","depends":["base-4.21.0.0-ae91","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","exceptions-0.10.9-4d2e","indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","mtl-2.3.1-fdf9","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","template-haskell-2.23.0.0-c7f4","th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","transformers-0.6.1.2-38b1","transformers-base-0.4.6-b096b554d8a0f02a6886d81a5d2dffd8d934d4910150c4e8abd056f0f3bfb6de"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3-6db4","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.13.0-e168"]},{"type":"pre-existing","id":"ghc-boot-th-9.12.2-e976","pkg-name":"ghc-boot-th","pkg-version":"9.12.2","depends":["base-4.21.0.0-ae91","ghc-internal-9.1202.0-1465","ghc-prim-0.13.0-e168","pretty-1.1.3.6-fe44"]},{"type":"pre-existing","id":"ghc-internal-9.1202.0-1465","pkg-name":"ghc-internal","pkg-version":"9.1202.0","depends":["ghc-bignum-1.3-6db4","ghc-prim-0.13.0-e168","rts-1.0.2"]},{"type":"pre-existing","id":"ghc-prim-0.13.0-e168","pkg-name":"ghc-prim","pkg-version":"0.13.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","pkg-name":"hashable","pkg-version":"1.5.0.0","flags":{"arch-native":false,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef","pkg-src-sha256":"e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","containers-0.7-5a8f","deepseq-1.5.1.0-6837","filepath-1.5.4.0-e69b","ghc-bignum-1.3-6db4","ghc-prim-0.13.0-e168","os-string-2.0.7-e43c","text-2.1.2-ecdb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","pkg-name":"indexed-traversable","pkg-version":"0.1.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"42d9e84a65a0c17c248233cab98ada872ff6140dfa24d109d6eb285204d07e7d","pkg-src-sha256":"58be09afdf3ad5a25c2aa0d2a7df80d602df09f4e76d3abf2b7cdb0e75d03b22","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","containers-0.7-5a8f","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"indexed-traversable-instances-0.1.2-e1fbf7f8ee3ef92c803b8e8ae86b0ff13fa255425c99649af755ac793b870b01","pkg-name":"indexed-traversable-instances","pkg-version":"0.1.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"68df0fc8070ae2c15f9e6febf1449fee364c131a6d1e93cac45e7895ba86dd89","pkg-src-sha256":"3c2bb62fba141d6696177070d63b88bc56b194bc60f6b73d2263b0244e2fc7c1","depends":["OneTuple-0.4.2-b32b398a76b5194fb920d0aa22c753c0d6c85d7aba8eb48c65a953f1499f3827","base-4.21.0.0-ae91","indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"invariant-0.6.4-54894771ba6c9abe9a680e7134d0373d9f079c89e8942dd78a2f2d8733384c81","pkg-name":"invariant","pkg-version":"0.6.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a9a609f4e93ffed158b3b4f5a80822c6da30aa71a5370307c0c00c2d658d1c6","pkg-src-sha256":"a9e2ab4ee3e0d4613beb7bda36a8ebc4f72318450514f4832d2fa43b74f0aeb3","depends":["StateVar-1.2.2-e224a30d0780e82758e45fc9d0e7ae88b12352f5b7218586383b35aa2969138c","array-0.5.8.0-9044","base-4.21.0.0-ae91","bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","ghc-prim-0.13.0-e168","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","stm-2.5.3.1-d35b","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","template-haskell-2.23.0.0-c7f4","th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"kan-extensions-5.2.7-4931b4624bced06c96346e5870ad072371e3827d3cba51c6136beccf60548f1e","pkg-name":"kan-extensions","pkg-version":"5.2.7","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b91397acc14202e8a9eb5717c9d5ca12b63c00b410e902cb11f76d38fcec7895","pkg-src-sha256":"c323acff95cdef6516f2f1a733a1f00f7e0caa1b7061f8831ed82e18fd37e158","depends":["adjunctions-4.4.3-4f7e84f876f3489c05054a9739a17c08ef6cd2fa770f59223ef46cc74627e5de","array-0.5.8.0-9044","base-4.21.0.0-ae91","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","free-5.2-8807e0925de9263b39b151f61249e37b84761209d43a075bb790fb0ad2f88168","invariant-0.6.4-54894771ba6c9abe9a680e7134d0373d9f079c89e8942dd78a2f2d8733384c81","mtl-2.3.1-fdf9","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"lens-5.3.5-e458ca06d7768e007dc3d36c8d55776b01d03f4d7c37f18f0027794e89ab4781","pkg-name":"lens","pkg-version":"5.3.5","flags":{"benchmark-uniplate":false,"dump-splices":false,"inlining":true,"j":false,"test-hunit":true,"test-properties":true,"test-templates":true,"trustworthy":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3bce9b67767ff9feccba39e41f9ad21a0fbf395b75069ecefe400a791a9acd69","pkg-src-sha256":"efebacf3dfb108c96171e564f059778d21ac262a98a956fef8890223ed8f1fe8","depends":["array-0.5.8.0-9044","assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","bytestring-0.12.2.0-7dd0","call-stack-0.4.0-c186590f776f40ea8987b627a4f39841bf0837484e46bbfe07e39cafea40ec5d","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","exceptions-0.10.9-4d2e","filepath-1.5.4.0-e69b","free-5.2-8807e0925de9263b39b151f61249e37b84761209d43a075bb790fb0ad2f88168","ghc-prim-0.13.0-e168","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","indexed-traversable-instances-0.1.2-e1fbf7f8ee3ef92c803b8e8ae86b0ff13fa255425c99649af755ac793b870b01","kan-extensions-5.2.7-4931b4624bced06c96346e5870ad072371e3827d3cba51c6136beccf60548f1e","mtl-2.3.1-fdf9","parallel-3.2.2.0-4b4820d45d8147443e32248cfe9d92051e257546b6a6122ac202caf931a67900","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","reflection-2.1.9-4d93b8afcdf20c695bdfece5fab90e43704018f56c3804a5a16991e61a24a017","semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","strict-0.5.1-78770d2d804f113c52727a7d0e3cd26561719d4912fba53e7c897a2167538e47","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","template-haskell-2.23.0.0-c7f4","text-2.1.2-ecdb","th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","these-1.2.1-23bce68b3da478e578d273fbb854a7aeee97d7e54823cbde065e19b394a13dbd","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mono-traversable-1.0.21.0-af8d364e526d45e94bdbcda616e674eb5dbf38164b53620a73ef7cdfb0bc2143","pkg-name":"mono-traversable","pkg-version":"1.0.21.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7e6269eadfa45fe8433e01f6dace1397eb3ae423931071634be806eb2ed73b17","pkg-src-sha256":"4dd93ea334c0169500402f07aa39c98dbb7bffe55dc63fdf228da2cc22c7c5cd","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","containers-0.7-5a8f","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","split-0.2.5-c0c6439cb2871a837140700d69b7241de447526ab2d9d9bc2bd946398cda6e2b","text-2.1.2-ecdb","transformers-0.6.1.2-38b1","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c","vector-algorithms-0.9.1.0-0868983b21c72216ed672031894bc1aa2015f29b63adb735f9e1947f66ef0815"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.3.1-fdf9","pkg-name":"mtl","pkg-version":"2.3.1","depends":["base-4.21.0.0-ae91","transformers-0.6.1.2-38b1"]},{"type":"configured","id":"old-locale-1.0.0.7-f27e5e13de030446e2025650edff14e6c7a407c7c4e965bab23d4f15a2606634","pkg-name":"old-locale","pkg-version":"1.0.0.7","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fa998be2c7e00cd26a6e9075bea790caaf3932caa3e9497ad69bc20380dd6911","pkg-src-sha256":"dbaf8bf6b888fb98845705079296a23c3f40ee2f449df7312f7f7f1de18d7b50","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"optparse-applicative-0.19.0.0-c16e4d5bae24108c1a1eb93cd6754d066d5859e41ee0b96d961510a6b2e69f12","pkg-name":"optparse-applicative","pkg-version":"0.19.0.0","flags":{"process":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0b47b3ff7eb4a855b5f7d401690365fc62a32057374927ce0d478b620996222d","pkg-src-sha256":"cf16aeefd821730c7738447fa7c6b7ada7ca1c9cc25400d64ef283294d345871","depends":["base-4.21.0.0-ae91","prettyprinter-1.7.1-e52f74935268a390cc760cd4a7e844416a081aaa4ec85f541c7f058291268a7b","prettyprinter-ansi-terminal-1.1.3-65471df942eada4c676ab7455149fc3bb56f146cb3c5a57e71baa1136abf36e2","process-1.6.25.0-5f54","text-2.1.2-ecdb","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"os-string-2.0.7-e43c","pkg-name":"os-string","pkg-version":"2.0.7","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","exceptions-0.10.9-4d2e","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"parallel-3.2.2.0-4b4820d45d8147443e32248cfe9d92051e257546b6a6122ac202caf931a67900","pkg-name":"parallel","pkg-version":"3.2.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3df46ec247e12b5e406a0adb9577294431b24814b30df420551d176fd112a966","pkg-src-sha256":"170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","containers-0.7-5a8f","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"pretty-1.1.3.6-fe44","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168"]},{"type":"configured","id":"prettyprinter-1.7.1-e52f74935268a390cc760cd4a7e844416a081aaa4ec85f541c7f058291268a7b","pkg-name":"prettyprinter","pkg-version":"1.7.1","flags":{"buildreadme":false,"text":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9c43c9d8c3cd9f445596e5a2379574bba87f935a4d1fa41b5407ee3cf4edc743","pkg-src-sha256":"5e6ea6903114fa118fcc359633dfb7ecddecb92c06c853d02a77b72b251f0b45","depends":["base-4.21.0.0-ae91","text-2.1.2-ecdb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"prettyprinter-ansi-terminal-1.1.3-65471df942eada4c676ab7455149fc3bb56f146cb3c5a57e71baa1136abf36e2","pkg-name":"prettyprinter-ansi-terminal","pkg-version":"1.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b00f727b964cf13adff7acf575a71fa7e405f5240aff50b07f10df76ab89f8d3","pkg-src-sha256":"813739308ad6050620578994effe21058a170a341716acf52573fae42b5b1db3","depends":["ansi-terminal-1.1.3-09b05f002e607d6b8f1414f0dad33cb8a1a839b42b8512890844eb4665f0137f","base-4.21.0.0-ae91","prettyprinter-1.7.1-e52f74935268a390cc760cd4a7e844416a081aaa4ec85f541c7f058291268a7b","text-2.1.2-ecdb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","pkg-name":"primitive","pkg-version":"0.9.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dfdd6572944c11e69208237dd32a2eb9d975b4f4e9064a7b8dc952cb0e256846","pkg-src-sha256":"44b4de41813c7bc5db8a57f87c3612a069b65086946268ba165097252ebd3d76","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","template-haskell-2.23.0.0-c7f4","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.25.0-5f54","pkg-name":"process","pkg-version":"1.6.25.0","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","directory-1.3.9.0-af18","filepath-1.5.4.0-e69b","unix-2.8.6.0-c07b"]},{"type":"configured","id":"profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","pkg-name":"profunctors","pkg-version":"5.6.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bfdb8c8b8cd4390e30219219edaff6ae7f428516f7338f0b7c39cb16b84bad2c","pkg-src-sha256":"b9c6f427368d2e811e4c48b59005218672458fd2f00a02cbefb8be9c751c0ef3","depends":["base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"random-1.3.1-32799ebf2c8c2dfa25f23ba32a29839a988fb24a6591cac266d756adea72e6bf","pkg-name":"random","pkg-version":"1.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8","pkg-src-sha256":"d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","mtl-2.3.1-fdf9","splitmix-0.1.3.1-c7ca4e77820c2b9f88c40c7618aa0afff79626341a5f693f62490b554eaf15a1","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"reflection-2.1.9-4d93b8afcdf20c695bdfece5fab90e43704018f56c3804a5a16991e61a24a017","pkg-name":"reflection","pkg-version":"2.1.9","flags":{"slow":false,"template-haskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"eaf28dc9884718a306ed1e0c215a24b36c68b8aa3be425617f66d886d43fe1e0","pkg-src-sha256":"c6a7d5e41ad0ee1a05c660acf4fd34b21f38330eec165d246b7fffb398e59fb3","depends":["base-4.21.0.0-ae91","template-haskell-2.23.0.0-c7f4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resourcet-1.3.0-72b3db864ef7732b52c231e1c8afdfed5067df650015181c1b1cbc43b76890dc","pkg-name":"resourcet","pkg-version":"1.3.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"faa760fb28fb5c98fbe4867e375a775495cabc00926da81fa102dc991017d2c5","pkg-src-sha256":"ec601785ee42a201f32adb205b8685c983f18757b1bd33d2e806d571e0f9996b","depends":["base-4.21.0.0-ae91","containers-0.7-5a8f","exceptions-0.10.9-4d2e","mtl-2.3.1-fdf9","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","transformers-0.6.1.2-38b1","unliftio-core-0.2.1.0-bad6263037f56d4ca365d47d8166f461027fb9e515d2cde0511d2e722b88f2a0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","pkg-name":"semigroupoids","pkg-version":"6.0.1","flags":{"comonad":true,"containers":true,"contravariant":true,"distributive":true,"tagged":true,"unordered-containers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bfee06a6d88038a88ddd10fc21c230bf5ee3a14d0584dc6ab7ad54a9252c2c21","pkg-src-sha256":"1d532030862414f5d4f2f6f001783f77aa14e5f05ee8e3c4a2d2129fca29cc1f","depends":["base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","template-haskell-2.23.0.0-c7f4","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"semigroups-0.20-f42133f5dab06e419b9f5765382f7b736c1e55c657f7b1537e7ebeaa6cff7a48","pkg-name":"semigroups","pkg-version":"0.20","flags":{"binary":true,"bytestring":true,"bytestring-builder":false,"containers":true,"deepseq":true,"hashable":true,"tagged":true,"template-haskell":true,"text":true,"transformers":true,"unordered-containers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"925341e6f7eb104cb490bef06eab93bb7995c7c67c51ee938185a2ddefa7aaf2","pkg-src-sha256":"902d2e33c96b40a89de5957f2a9e097197afcc35e257e45b32ebe770993673e1","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"split-0.2.5-c0c6439cb2871a837140700d69b7241de447526ab2d9d9bc2bd946398cda6e2b","pkg-name":"split","pkg-version":"0.2.5","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5bc1ae848bfded3087ea3e568908f1b75f56ecde6f02df3fad1a138dd5c783d5","pkg-src-sha256":"52da404e8397c1ab238354c8d4fd9a7e9c5cac8849cc2ce2e45facc85e74a913","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"splitmix-0.1.3.1-c7ca4e77820c2b9f88c40c7618aa0afff79626341a5f693f62490b554eaf15a1","pkg-name":"splitmix","pkg-version":"0.1.3.1","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d0002f3fb16a2cc5ba8afd47a6657726386edccfe8853d310e3479fe3b45201b","pkg-src-sha256":"b6bcd0d79bd4fe40975c8ebe803be2f3bfbf6006069a59745a325a0df3f86270","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.3.1-d35b","pkg-name":"stm","pkg-version":"2.5.3.1","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91"]},{"type":"configured","id":"strict-0.5.1-78770d2d804f113c52727a7d0e3cd26561719d4912fba53e7c897a2167538e47","pkg-name":"strict","pkg-version":"0.5.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"58c373b7c7748cbb4a5a6c8c15073f99a1c10a9a9bb6894ac33f43a5cdb901f2","pkg-src-sha256":"77719280c2a86312e748227bfa732eeaae0e7df48d57acc3c2e5b7b07afe2f8b","depends":["assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","base-4.21.0.0-ae91","binary-0.8.9.3-25e5","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","text-2.1.2-ecdb","these-1.2.1-23bce68b3da478e578d273fbb854a7aeee97d7e54823cbde065e19b394a13dbd","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","pkg-name":"tagged","pkg-version":"0.8.9","flags":{"deepseq":true,"transformers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6aad7d2fd594bd51834450d97850b9959305951993ea739fa2bbc18b55d8767d","pkg-src-sha256":"6daad88ebb414ba6a556d2898d2cbe7650e4276010e3a6eed939daf54b956784","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","template-haskell-2.23.0.0-c7f4","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tasty-1.5.3-59edcf52ea0253f7ec7887268ce348f19c42cfc09647b726bfff6322b3a12433","pkg-name":"tasty","pkg-version":"1.5.3","flags":{"unix":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6b5dda3f16db1274a0b3e6c4073ac57172a1e96b1dca05666c5cbd1183639412","pkg-src-sha256":"54a0c7b644813af871a3726ac8771b5e17b5158c792a7acf8f9e2d3ae9360780","depends":["ansi-terminal-1.1.3-09b05f002e607d6b8f1414f0dad33cb8a1a839b42b8512890844eb4665f0137f","base-4.21.0.0-ae91","containers-0.7-5a8f","optparse-applicative-0.19.0.0-c16e4d5bae24108c1a1eb93cd6754d066d5859e41ee0b96d961510a6b2e69f12","stm-2.5.3.1-d35b","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1","unix-2.8.6.0-c07b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.23.0.0-c7f4","pkg-name":"template-haskell","pkg-version":"2.23.0.0","depends":["base-4.21.0.0-ae91","ghc-boot-th-9.12.2-e976"]},{"type":"pre-existing","id":"text-2.1.2-ecdb","pkg-name":"text","pkg-version":"2.1.2","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","binary-0.8.9.3-25e5","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","pkg-name":"th-abstraction","pkg-version":"0.7.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3011403d85b0070630e33d66b9370535ccd1e0e672ae58f847550b2b15bb4fd8","pkg-src-sha256":"f9b6184aba4c6b61dd0d96f7dad41a4c9db0a01d3cdbf993a7d860488f1c04c5","depends":["base-4.21.0.0-ae91","containers-0.7-5a8f","ghc-prim-0.13.0-e168","template-haskell-2.23.0.0-c7f4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"these-1.2.1-23bce68b3da478e578d273fbb854a7aeee97d7e54823cbde065e19b394a13dbd","pkg-name":"these","pkg-version":"1.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"35c57aede96c15ea1fed559ac287b1168eb2b2869d79e62ed8c845780b7ea136","pkg-src-sha256":"17d6d933365edabf801a16842c1403bdd37cc5300faa2fcca980decdab22e4de","depends":["assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","base-4.21.0.0-ae91","binary-0.8.9.3-25e5","deepseq-1.5.1.0-6837","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.14-9bf8","pkg-name":"time","pkg-version":"1.14","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","template-haskell-2.23.0.0-c7f4"]},{"type":"pre-existing","id":"transformers-0.6.1.2-38b1","pkg-name":"transformers","pkg-version":"0.6.1.2","depends":["base-4.21.0.0-ae91"]},{"type":"configured","id":"transformers-base-0.4.6-b096b554d8a0f02a6886d81a5d2dffd8d934d4910150c4e8abd056f0f3bfb6de","pkg-name":"transformers-base","pkg-version":"0.4.6","flags":{"orphaninstances":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6f18f320e371c8954c4b6b211e2fdd5d15a6d6310bd605b9d640f47ede408961","pkg-src-sha256":"323bf8689eb691b122661cffa41a25e00fea7a768433fe2dde35d3da7d32cf90","depends":["base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","stm-2.5.3.1-d35b","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","pkg-name":"transformers-compat","pkg-version":"0.7.2","flags":{"five":false,"five-three":true,"four":false,"generic-deriving":true,"mtl":true,"three":false,"two":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"044fb9955f63ee138fcebedfdcbe54afe741f2d5892a2d0bdf3a8052bd342643","pkg-src-sha256":"b62c7304c9f3cbc9463d0739aa85cb9489f217ea092b9d625d417514fbcc9d6a","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"unix-2.8.6.0-c07b","pkg-name":"unix","pkg-version":"2.8.6.0","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","filepath-1.5.4.0-e69b","os-string-2.0.7-e43c","time-1.14-9bf8"]},{"type":"configured","id":"unliftio-core-0.2.1.0-bad6263037f56d4ca365d47d8166f461027fb9e515d2cde0511d2e722b88f2a0","pkg-name":"unliftio-core","pkg-version":"0.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f6a2736f858b5390d9384dca43d3ea4d96e9ca17217791791ca4951ba6e8072a","pkg-src-sha256":"99384cba8d56d9d61b85e38a313a93ebcdb78be6566367f0930ef580597fe3e3","depends":["base-4.21.0.0-ae91","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22","pkg-name":"unordered-containers","pkg-version":"0.2.20","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"233cbcdda6c2698932bb391ce0935fb44f80c115621ee815a21ed33ac8ede422","pkg-src-sha256":"d9cfb287cf00592d39dc9c3cac8b99627ea08f2c01798e70130fc39f7c90f11d","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","template-haskell-2.23.0.0-c7f4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c","pkg-name":"vector","pkg-version":"0.13.2.0","flags":{"boundschecks":true,"internalchecks":false,"unsafechecks":false,"wall":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ac338c8da52d8a37db08434ca4480fef2cea4f9aac240f4f994bb467f5275b4","pkg-src-sha256":"28f203c786cbf8ac6dc3fea3378ec36f34173d505fb4a1dd60fc8418ad91c423","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","vector-stream-0.1.0.1-50ecf8acf0aec60374ee526fa1fa98266d640daf89a5942e0a5637f1af3ce9c7"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-0.13.2.0-l-benchmarks-O2-2fbacd8a973de54f0ffde031957072c30e9c52cd9bd728ad35da6f2d94d3e9f5","pkg-name":"vector","pkg-version":"0.13.2.0","flags":{"boundschecks":true,"internalchecks":false,"unsafechecks":false,"wall":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ac338c8da52d8a37db08434ca4480fef2cea4f9aac240f4f994bb467f5275b4","pkg-src-sha256":"28f203c786cbf8ac6dc3fea3378ec36f34173d505fb4a1dd60fc8418ad91c423","depends":["base-4.21.0.0-ae91","random-1.3.1-32799ebf2c8c2dfa25f23ba32a29839a988fb24a6591cac266d756adea72e6bf","tasty-1.5.3-59edcf52ea0253f7ec7887268ce348f19c42cfc09647b726bfff6322b3a12433","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib:benchmarks-O2"},{"type":"configured","id":"vector-algorithms-0.9.1.0-0868983b21c72216ed672031894bc1aa2015f29b63adb735f9e1947f66ef0815","pkg-name":"vector-algorithms","pkg-version":"0.9.1.0","flags":{"bench":true,"boundschecks":true,"internalchecks":false,"llvm":false,"unsafechecks":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccb940a004509aa908a16fa6b9b9f4e409e8a660fb5dd4c88274c8df16b1ffbf","pkg-src-sha256":"d2b674676802670d8a682b357da6b6b5741b4a33b191f0ffe5f2b2bc40558eb2","depends":["base-4.21.0.0-ae91","bitvec-1.1.5.0-894dbc1458e6c578920cddadc3f8e4d54948ff717378713f39e084edef2957b4","bytestring-0.12.2.0-7dd0","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-stream-0.1.0.1-50ecf8acf0aec60374ee526fa1fa98266d640daf89a5942e0a5637f1af3ce9c7","pkg-name":"vector-stream","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"483be6df13c72169a917640589666f9fece7bea9fa13fcd41d052dab37ea289e","pkg-src-sha256":"d0f507334bdea5431a2f07f525a97f29e76522c32210f5de6d5a2b4f1d42bf7c","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"void-0.7.3-103ab5eb56dd906e16f096cfb98ad9bd3939fff42d98fcee03390afb5a137a87","pkg-name":"void","pkg-version":"0.7.3","flags":{"safe":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"13d30f62fcdf065e595d679d4ac8b4b0c1bb1a1b73db7b5b5a8f857cb5c8a546","pkg-src-sha256":"53af758ddc37dc63981671e503438d02c6f64a2d8744e9bec557a894431f7317","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/dist-newstyle/cache/solver-plan b/dist-newstyle/cache/solver-plan new file mode 100644 index 0000000000000000000000000000000000000000..ba1c372257919c85c93e0a1d01ebeafd8279fae9 GIT binary patch literal 677434 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

1I}rXTZ&Q85ZQgBT6g-yHBgTy46p&=OVZ5Upuy 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 at2<=nM_DZNJ0`olvaFD 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 literal 0 HcmV?d00001 diff --git a/dist-newstyle/cache/up-to-date b/dist-newstyle/cache/up-to-date new file mode 100644 index 0000000000000000000000000000000000000000..253c6b84a8fb708ccaf76062067f0945db32025e GIT binary patch literal 4456 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 j&?p`hfTo literal 0 HcmV?d00001 diff --git a/dist-newstyle/packagedb/ghc-9.12.2/package.cache b/dist-newstyle/packagedb/ghc-9.12.2/package.cache new file mode 100644 index 0000000000000000000000000000000000000000..b3cae5cf028ad4728b344193a7c6fe4e76e36af3 GIT binary patch literal 40 ZcmZQb&qyxFPG (b,a)@ and + @assoc :: ((a,b),c) -> (a,(b,c))@ + to + @Bifunctor@s supporting similar operations (e.g. @Either@, @These@). + +author: Oleg Grenrus +maintainer: Oleg Grenrus +build-type: Simple +extra-source-files: CHANGELOG.md +tested-with: + GHC ==8.6.5 + || ==8.8.4 + || ==8.10.7 + || ==9.0.2 + || ==9.2.8 + || ==9.4.8 + || ==9.6.6 + || ==9.8.4 + || ==9.10.1 + || ==9.12.1 + +source-repository head + type: git + location: https://github.com/phadej/assoc.git + +flag tagged + default: False + manual: True + description: + You can disable the use of the `tagged` package using `-f-tagged`. + . + Disabing this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users. + +library + default-language: Haskell2010 + hs-source-dirs: src + build-depends: base >=4.12 && <4.22 + + if flag(tagged) + build-depends: tagged >=0.8.8 && <0.9 + + exposed-modules: + Data.Bifunctor.Assoc + Data.Bifunctor.Swap + + other-extensions: TypeFamilies diff --git a/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Assoc.hs b/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Assoc.hs new file mode 100644 index 0000000..c33d49e --- /dev/null +++ b/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Assoc.hs @@ -0,0 +1,119 @@ +{-# LANGUAGE CPP #-} +#if __GLASGOW_HASKELL__ >=704 +{-# LANGUAGE Safe #-} +#elif __GLASGOW_HASKELL__ >=702 +{-# LANGUAGE Trustworthy #-} +#endif +module Data.Bifunctor.Assoc ( + Assoc (..), + ) where + +import Control.Applicative (Const (..)) +import Data.Bifunctor (Bifunctor (..)) + +#ifdef MIN_VERSION_tagged +import Data.Tagged (Tagged (..)) +#endif + +-- | "Semigroup-y" 'Bifunctor's. +-- +-- @ +-- 'assoc' . 'unassoc' = 'id' +-- 'unassoc' . 'assoc' = 'id' +-- 'assoc' . 'bimap' ('bimap' f g) h = 'bimap' f ('bimap' g h) . 'assoc' +-- @ +-- +-- This library doesn't provide @Monoidal@ class, with left and right unitors. +-- Are they useful in practice? +-- +class Bifunctor p => Assoc p where + assoc :: p (p a b) c -> p a (p b c) + unassoc :: p a (p b c) -> p (p a b) c + +instance Assoc (,) where + assoc ((a, b), c) = (a, (b, c)) + unassoc (a, (b, c)) = ((a, b), c) + +instance Assoc Either where + assoc (Left (Left a)) = Left a + assoc (Left (Right b)) = Right (Left b) + assoc (Right c) = Right (Right c) + + unassoc (Left a) = Left (Left a) + unassoc (Right (Left b)) = Left (Right b) + unassoc (Right (Right c)) = Right c + +instance Assoc Const where + assoc (Const (Const a)) = Const a + unassoc (Const a) = Const (Const a) + +#ifdef MIN_VERSION_tagged +instance Assoc Tagged where + assoc (Tagged a) = Tagged (Tagged a) + unassoc (Tagged (Tagged a)) = Tagged a +#endif + +-- $setup +-- +-- TODO: make proper test-suite +-- +-- >>> import Data.Proxy +-- >>> import Test.QuickCheck +-- >>> import Test.QuickCheck.Instances +-- >>> import Data.Functor.Classes +-- +-- >>> :{ +-- let assocUnassocLaw :: (Assoc p, Eq2 p) => Proxy p -> p Bool (p Int Char) -> Bool +-- assocUnassocLaw _ x = liftEq2 (==) eq2 (assoc (unassoc x)) x +-- :} +-- +-- >>> quickCheck $ assocUnassocLaw (Proxy :: Proxy (,)) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ assocUnassocLaw (Proxy :: Proxy Either) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ assocUnassocLaw (Proxy :: Proxy Tagged) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ assocUnassocLaw (Proxy :: Proxy Const) +-- +++ OK, passed 100 tests. +-- +-- >>> :{ +-- let unassocAssocLaw :: (Assoc p, Eq2 p) => Proxy p -> p (p Int Char) Bool -> Bool +-- unassocAssocLaw _ x = liftEq2 eq2 (==) (unassoc (assoc x)) x +-- :} +-- +-- >>> quickCheck $ unassocAssocLaw (Proxy :: Proxy (,)) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ unassocAssocLaw (Proxy :: Proxy Either) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ unassocAssocLaw (Proxy :: Proxy Tagged) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ unassocAssocLaw (Proxy :: Proxy Const) +-- +++ OK, passed 100 tests. +-- +-- >>> :{ +-- let bimapLaw :: (Assoc p, Eq2 p) => Proxy p +-- -> Fun Int Char -> Fun Char Bool -> Fun Bool Int +-- -> p (p Int Char) Bool +-- -> Bool +-- bimapLaw _ (Fun _ f) (Fun _ g) (Fun _ h) x = liftEq2 (==) eq2 +-- (assoc . bimap (bimap f g) h $ x) +-- (bimap f (bimap g h) . assoc $ x) +-- :} +-- +-- >>> quickCheck $ bimapLaw (Proxy :: Proxy (,)) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ bimapLaw (Proxy :: Proxy Either) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ bimapLaw (Proxy :: Proxy Tagged) +-- +++ OK, passed 100 tests. +-- +-- >>> quickCheck $ bimapLaw (Proxy :: Proxy Const) +-- +++ OK, passed 100 tests. diff --git a/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Swap.hs b/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Swap.hs new file mode 100644 index 0000000..6a4c28d --- /dev/null +++ b/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Swap.hs @@ -0,0 +1,59 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE TypeFamilies #-} +#if __GLASGOW_HASKELL__ >=704 +{-# LANGUAGE Safe #-} +#elif __GLASGOW_HASKELL__ >=702 +{-# LANGUAGE Trustworthy #-} +#endif +module Data.Bifunctor.Swap ( + Swap (..), + ) where + +import Data.Bifunctor (Bifunctor (..)) + +import qualified Data.Tuple + +-- | Symmetric 'Bifunctor's. +-- +-- @ +-- 'swap' . 'swap' = 'id' +-- @ +-- +-- If @p@ is a 'Bifunctor' the following property is assumed to hold: +-- +-- @ +-- 'swap' . 'bimap' f g = 'bimap' g f . 'swap' +-- @ +-- +-- 'Swap' isn't a subclass of 'Bifunctor', as for example +-- +-- >>> newtype Bipredicate a b = Bipredicate (a -> b -> Bool) +-- +-- is not a 'Bifunctor' but has 'Swap' instance +-- +-- >>> instance Swap Bipredicate where swap (Bipredicate p) = Bipredicate (flip p) +-- +class Swap p where + swap :: p a b -> p b a + +instance Swap (,) where + swap = Data.Tuple.swap + +instance Swap Either where + swap (Left x) = Right x + swap (Right x) = Left x + +instance Swap ((,,) x) where + swap (x,a,b) = (x,b,a) + +instance Swap ((,,,) x y) where + swap (x,y,a,b) = (x,y,b,a) + +instance Swap ((,,,,) x y z) where + swap (x,y,z,a,b) = (x,y,z,b,a) + +instance Swap ((,,,,,) x y z w) where + swap (x,y,z,w,a,b) = (x,y,z,w,b,a) + +instance Swap ((,,,,,,) x y z w v) where + swap (x,y,z,w,v,a,b) = (x,y,z,w,v,b,a) diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/CHANGES.md b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/CHANGES.md new file mode 100644 index 0000000..5a328fd --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/CHANGES.md @@ -0,0 +1,378 @@ +See also https://pvp.haskell.org/faq + +## Version 1.5.0.0 + + * Add `QuantifiedConstraints` superclasses to `Hashable1/2`: + +```haskell +class (Eq1 t, forall a. Hashable a => Hashable (t a)) => Hashable1 t where +class (Eq2 t, forall a. Hashable a => Hashable1 (t a)) => Hashable2 t where +``` + + * Change contexts of `Compose`, `Product` and `Sum` instances. + This and above is the similar change as [CLC proposal #10](https://github.com/haskell/core-libraries-committee/issues/10) + + * The above changes require `base-4.18.0.0`, so we drop support for GHC prior GHC-9.6.5 + (The `hashable-1.4` branch will be maintained for time being for older GHC users). + + * Make `Arg a b` instance behave as `Hashable a` instance. + +## Version 1.4.7.0 + + * Make `arch-native` disabled by default. + +## Version 1.4.6.0 + + * Use GND&DerivingVia to derive `newtype` intances (`Data.Semigroup`, `Data.Monoid`, `Identity` etc). + +## Version 1.4.5.0 + + * Drop support for GHCs prior 8.6.5 + * Use xxhash for hashing bytestrings and bytearrays. + Note: when compiling binaries for distribution, you may need to disable + `arch-native` flag. + +## Version 1.4.4.0 + + * Depend on `os-string-2` for GHC-9.2+ + * Support `filepath-1.5` + +## Version 1.4.3.0 + + * Export `defaultHashWithSalt` and `defaultHash`. + * Fix issue of tuples with 0 first component causing all-zero state. + * Change `hashInt` to mix bits more. + +## Version 1.4.2.0 + + * Fix the foreign signature of `getThreadId` + https://github.com/haskell-unordered-containers/hashable/pull/263 + * Drop support for GHCs prior GHC-8.2 + The recent `unordered-containers` releases support only GHC-8.2+ + * Add instance for `OsString`, `PosixString`, `WindowsString` from `filepath-1.4.100.1` + * Add `Hashable ByteArray` instance using `data-array-byte` compat package + +## Version 1.4.1.0 + + * Add instance for `Data.Array.Byte.ByteArray`. + +## Version 1.4.0.2 + + * Restore older GHC support + * Support GHC-9.0.2 + +## Version 1.4.0.1 + + * `text-2.0` compatibility + +## Version 1.4.0.0 + + * `Eq` is now a superclass of `Hashable`. + Also `Eq1` is a superclass of `Hashable1` and `Eq2` is a superclass of `Hashable2` + when exists. + + * Remove `Hashable1 Fixed` instance + * Remove `Hashable1 Semi.Min/Max/...` instances as they don't have `Eq1` instance. + +## Version 1.3.5.0 + + * Add `Solo` instance (base-4.15+, GHC-9+) + +## Version 1.3.4.1 + + * Fix compilation on 32 bit platforms + * Fix `Tree` instance + +## Version 1.3.4.0 + * `Text` and `ByteString` hashes include length. + This fixes a variant of https://github.com/haskell-unordered-containers/hashable/issues/74 + for texts and bytestrings. + https://github.com/haskell-unordered-containers/hashable/pull/223 + * Use correct prime in `combine`. + This should improve the hash quality of compound structures on 64bit systems. + https://github.com/haskell-unordered-containers/hashable/pull/224 + * Add instance for types in `containers` package + https://github.com/haskell-unordered-containers/hashable/pull/226 + * Change `Int`, `Int64` and `Word64` `hashWithSalt` slightly. + https://github.com/haskell-unordered-containers/hashable/pull/227 + +## Version 1.3.3.0 + + * `Text` hashing uses 64-bit FNV prime + * Don't truncate Text hashvalues on 64bit Windows: + https://github.com/haskell-unordered-containers/hashable/pull/211 + +## Version 1.3.2.0 + + * Add `Hashable (Fixed a)` for `base <4.7` versions. + * Add documentation: + - `hashable` is not a stable hash + - `hashWithSalt` may return negative values + - there is `time-compat` with `Hashable` instances for `time` types. + * Add `random-initial-seed` flag causing the initial seed + to be randomized on each start of an executable using `hashable`. + +## Version 1.3.1.0 + + * Add `Hashable1` instances to `semigroups` types. + + * Use `ghc-bignum` with GHC-9.0 + + * Use FNV-1 constants. + + * Make `hashable-examples` a test-suite + +## Version 1.3.0.0 + + * Semantic change of `Hashable Arg` instance to *not* hash the second + argument of `Arg` in order to be consistent with `Eq Arg` (#171) + + * Semantic change of `Hashable Float` and `Hashable Double` instances + to hash `-0.0` and `0.0` to the same value (#173) + + * Add `Hashable` instance for `Fingerprint` (#156) + + * Add new `Data.Hashable.Generic` module providing the default + implementations `genericHashWithSalt` and `genericLiftHashWithSalt` + together with other Generics support helpers (#148, #178) + + * Bump minimum version requirement of `base` to `base-4.5` (i.e. GHC >= 7.4) + +---- + +## Version 1.2.7.0 + + * Add `Hashable` and `Hashable1` instances for `Complex` + + * Fix undefined behavior in `hashable_fn_hash()` implementation + due to signed integer overflow (#152) + + * Mark `Data.Hashable.Lifted` as `Trustworthy` (re SafeHaskell) + + * Support GHC 8.4 + +## Version 1.2.6.1 + + * Use typeRepFingerprint from Type.Reflection.Unsafe + + * Bump minimum version of base to 4.4. + +## Version 1.2.6.0 + + * Add support for type-indexed `Typeable`. + + * Rework the `Generic` hashable for sums. + +## Version 1.2.5.0 + + * Add `Hashable1` and `Hashable2` + + * Add instances for: `Eq1`, `Ord1`, `Show1`, `Ptr`, `FunPtr`, `IntPtr`, `WordPtr` + + * Add `Hashed` type for caching the `hash` function result. + +## Version 1.2.4.0 + + * Add instances for: Unique, Version, Fixed, NonEmpty, Min, Max, Arg, + First, Last, WrappedMonoid, Option + + * Support GHC 8.0 + +## Version 1.2.3.3 + + * Support integer-simple. + +## Version 1.2.3.2 + + * Add support for GHC 7.10 typeRepFingerprint + +## Version 1.2.3.1 + + * Added support for random 1.1.*. + +## Version 1.2.3.0 + + * Silence integer literal overflow warning + + * Add support for GHC 7.10 `integer-gmp2` & `Natural` + + * Add instance for Data.Void + + * Make the SSE .cabal flags manual + + * Add an upper bound on bytestring + +## Version 1.2.2.0 + + * Add instances for `Data.ByteString.Short` + + * Use a 32-bit default salt on 32-bit archs. + +## Version 1.2.1.0 + + * Revert instances to their 1.1 implementations to regain the + performance we had then. + + * Remove use of random salt altogether. Without using SipHash the + benefit is unclear (i.e. collision attacks still work) and the + complexity is no longer worth it. + + * Documentation improvements. + +## Version 1.2.0.10 + + * Fix for GHC 7.0. + +## Version 1.2.0.9 + + * Stop using SipHash. The current implementation still has segfault + causing bugs that we won't be able to fix soon. + + * Stop using Wang hash. It degrades performance of fixed-size integer + hashing too much. + +## Version 1.2.0.8 + + * Fix linking issue when SSE was disabled. + + * Hash small signed Integers correctly. + +## Version 1.2.0.7 + + * Add flags to control usage of SSE. + +## Version 1.2.0.6 + + * Fix another segfault caused by SSE2 code. + +## Version 1.2.0.5 + + * More portability fixes. + + * Force stack alignment to 16 bytes everywhere. Fixes a segfault. + + * Fix bug where code relied on rewrite rules firing for correctness. + +## Version 1.2.0.4 + + * Update docs to match code. + + * Work around bug in GHCi runtime linker, which never call static + initializers. + +## Version 1.2.0.3 + + * Make building of SSE 4.1 code conditional, as it doesn't work on all + platforms. + + * Use a fixed salt, but allow random salting. Random salting by + default broke people's code. + +## Version 1.2.0.2 + + * Work around ghci linker bug on Windows. + +## Version 1.2.0.1 + + * Fix performance bug in SSE implementation of SipHash. + + * Fix segfault due to incorrect stack alignment on Windows. + +## Version 1.2.0.0 + + * Switch string hashing from FNV-1 to SipHash, in an effort to + prevent collision attacks. + + * Switch fixed-size integer hashing to Wang hash. + + * The default salt now switched on every program run, in an effort to + prevent collision attacks. + + * Move hash method out of Hashable type class. + + * Add support for generic instance deriving. + + * Add instance for Ordering. + +---- + +## Version 1.1.2.5 + + * Bug fix for bytestring < 0.10.0. + +## Version 1.1.2.4 + + * Switch string hashing from Bernstein to FNV-1 + + * Faster instance for Integer. + + * Update dependency on base, ghc-prim + + * Now works with GHC 7.6. + +## Version 1.1.2.3 + + * Add instance for TypeRep. + + * Update dependency on test-framework. + +## Version 1.1.2.2 + + * Bug fix for GHC 7.4 + +## Version 1.1.2.1 + + * Update dependency on test-framework. + + * Improve documentation of combine. + +## Version 1.1.2.0 + + * Fix hash collision issues for lists and tuples when using a + user-specified salt. + + * Add instances for `Integer`, `Ratio`, `Float`, `Double`, and `StableName`. + + * Improved instances for tuples and lists. + +## Version 1.1.1.0 + + * Add `hashWithSalt`, which allows the user to create different hash + values for the same input by providing different seeds. This is + useful for application like Cuckoo hashing which need a family of + hash functions. + + * Fix a bug in the `Hashable` instance for `Int64`/`Word64` on 32-bit + platforms. + + * Improved resilience to leading zero in the input being hashed. + +## Version 1.1.0.0 + + * Add instance for: strict and lazy Texts, ThreadId + + * Add hashPtrWithSalt and hashByteArrayWithSalt. + + * Faster ByteArray# hashing. + + * Fix a signedness bug that affected ByteString. + + * Fix ByteString hashing to work correctly on both 32 and 64-bit + platforms. + +## Version 1.0.1.1 + + * Fix bug in Hashable instance for lazy ByteStrings where differences + in the internal structure of the ByteString could cause different + hash values for ByteStrings that are equal according to ==. + +## Version 1.0.1.0 + + * Add two helpers for creating Hashable instances: hashPtr and + hashByteArray. + +---- + +## Version 1.0.0 + + * Separate Hashable class to its own package from hashmap 1.0.0.3. diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/LICENSE b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/LICENSE new file mode 100644 index 0000000..7130957 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/LICENSE @@ -0,0 +1,30 @@ +Copyright Milan Straka 2010 + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Milan Straka nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/README.md b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/README.md new file mode 100644 index 0000000..d692480 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/README.md @@ -0,0 +1,7 @@ +The hashable package +==================== + +This package defines a class, `Hashable`, for types that can be +converted to a hash value. This class exists for the benefit of +hashing-based data structures. The package provides instances for +basic types and a way to combine hash values. diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/Setup.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/Setup.hs new file mode 100644 index 0000000..cd7dc32 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/Setup.hs @@ -0,0 +1,3 @@ +#!/usr/bin/env runhaskell +import Distribution.Simple +main = defaultMain diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-unix/init.c b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-unix/init.c new file mode 100644 index 0000000..db1ef62 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-unix/init.c @@ -0,0 +1,39 @@ +#include +#include +#include +#include +#include +#include + +uint64_t hs_hashable_init() { + + /* if there is /dev/urandom, read from it */ + FILE *urandom = fopen("/dev/urandom", "r"); + if (urandom) { + uint64_t result = 0; + size_t r = fread(&result, sizeof(uint64_t), 1, urandom); + fclose(urandom); + + if (r == 1) { + return result; + } else { + return 0xfeed1000; + } + + } else { + /* time of day */ + struct timeval tp = {0, 0}; + gettimeofday(&tp, NULL); + + /* cputime */ + clock_t c = clock(); + + /* process id */ + pid_t p = getpid(); + + return ((uint64_t) tp.tv_sec) + ^ ((uint64_t) tp.tv_usec) + ^ ((uint64_t) c << 16) + ^ ((uint64_t) p << 32); + } +} diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-win/init.c b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-win/init.c new file mode 100644 index 0000000..81f4e86 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-win/init.c @@ -0,0 +1,28 @@ +#include + +#include + +uint64_t hs_hashable_init() { + /* Handy list at https://stackoverflow.com/a/3487338/1308058 */ + + uint64_t a = GetCurrentProcessId(); /* DWORD */ + uint64_t b = GetCurrentThreadId(); /* DWORD */ + uint64_t c = GetTickCount(); /* DWORD */ + + SYSTEMTIME t = {0,0,0,0,0,0,0,0}; + GetSystemTime(&t); + + LARGE_INTEGER i; + QueryPerformanceCounter(&i); + + return a ^ (b << 32) ^ (c << 16) + ^ ((uint64_t) t.wYear << 56) + ^ ((uint64_t) t.wMonth << 48) + ^ ((uint64_t) t.wDayOfWeek << 40) + ^ ((uint64_t) t.wDay << 32) + ^ ((uint64_t) t.wHour << 24) + ^ ((uint64_t) t.wMinute << 16) + ^ ((uint64_t) t.wSecond << 8) + ^ ((uint64_t) t.wMilliseconds << 0) + ^ ((uint64_t) i.QuadPart); +} diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/examples/Main.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/examples/Main.hs new file mode 100644 index 0000000..961b057 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/examples/Main.hs @@ -0,0 +1,52 @@ +{-# LANGUAGE DeriveGeneric #-} +import Data.Hashable +import Data.Hashable.Lifted +import GHC.Generics (Generic) + +data Foo + = Foo1 Int Char Bool + | Foo2 String () + deriving (Eq, Generic) + +instance Hashable Foo + +data Bar = Bar Double Float + deriving (Eq, Generic) + +instance Hashable Bar + +-- printHash :: (Hashable a, Show a) => a -> IO () +-- printHash = print . hash + +main :: IO () +main = do + putStrLn "Hashing Foo1" + print . hash $ Foo1 22 'y' True + putStrLn "Hashing Foo2" + print . hash $ Foo2 "hello" () + putStrLn "Hashing Bar" + print . hash $ Bar 55.50 9.125 + +----------------------------------- +-- Higher Rank Hashable Examples -- +----------------------------------- + +{- TODO: + +newtype WriterT w m a = WriterT { runWriterT :: m (a, w) } +data Free f a = Pure a | Free (f (Free f a)) + +instance (Hashable w, Hashable1 m) => Hashable1 (WriterT w m) where + liftHashWithSalt h s (WriterT m) = + liftHashWithSalt (liftHashWithSalt2 h hashWithSalt) s m +instance Hashable1 f => Hashable1 (Free f) where + liftHashWithSalt h = go where + go s x = case x of + Pure a -> h s a + Free p -> liftHashWithSalt go s p + +instance (Hashable w, Hashable1 m, Hashable a) => Hashable (WriterT w m a) where + hashWithSalt = hashWithSalt1 +instance (Hashable1 f, Hashable a) => Hashable (Free f a) where + hashWithSalt = hashWithSalt1 +-} diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/hashable.cabal b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/hashable.cabal new file mode 100644 index 0000000..79901f9 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/hashable.cabal @@ -0,0 +1,214 @@ +cabal-version: 2.2 +name: hashable +version: 1.5.0.0 +synopsis: A class for types that can be converted to a hash value +description: + This package defines a class, 'Hashable', for types that can be converted to a hash value. + This class exists for the benefit of hashing-based data structures. + The package provides instances for basic types and a way to combine hash values. + . + 'Hashable' is intended exclusively for use in in-memory data structures. + . + 'Hashable' does /not/ have a fixed standard. + This allows it to improve over time. + . + Because it does not have a fixed standard, different computers or computers on different versions of the code will observe different hash values. + As such, 'hashable' is not recommended for use other than in-memory datastructures. + Specifically, 'hashable' is not intended for network use or in applications which persist hashed values. + For stable hashing use named hashes: sha256, crc32, xxhash etc. + +homepage: http://github.com/haskell-unordered-containers/hashable +license: BSD-3-Clause +license-file: LICENSE +author: + Milan Straka + Johan Tibell + +maintainer: Oleg Grenrus +bug-reports: + https://github.com/haskell-unordered-containers/hashable/issues + +stability: Provisional +category: Data +build-type: Simple +tested-with: GHC ==9.6.5 || ==9.8.2 || ==9.10.1 +extra-source-files: + CHANGES.md + include/HsHashable.h + include/HsXXHash.h + README.md + xxHash-0.8.2/xxhash.h + +flag arch-native + description: + Use @-march=native@ when compiling C sources. + Portable implementation is 15-50% slower. + Consider enabling this flag if hashing performance is important. + + manual: True + default: False + +flag random-initial-seed + description: + Randomly initialize the initial seed on each final executable invocation + This is useful for catching cases when you rely on (non-existent) + stability of hashable's hash functions. + This is not a security feature. + + manual: True + default: False + +library + exposed-modules: + Data.Hashable + Data.Hashable.Generic + Data.Hashable.Lifted + + other-modules: + Data.Hashable.Class + Data.Hashable.FFI + Data.Hashable.Generic.Instances + Data.Hashable.Imports + Data.Hashable.LowLevel + Data.Hashable.Mix + Data.Hashable.XXH3 + + include-dirs: include xxHash-0.8.2 + includes: + HsHashable.h + HsXXHash.h + xxhash.h + + hs-source-dirs: src + build-depends: + , base >=4.18.0.0 && <4.21 + , bytestring >=0.11.5.3 && <0.13 + , containers >=0.6.7 && <0.8 + , deepseq >=1.4.8.1 && <1.6 + , ghc-prim + , text >=2.0.2 && <2.2 + + -- depend on os-string on newer GHCs only. + -- os-string has tight lower bound on bytestring, which prevents + -- using bundled version on older GHCs. + build-depends: os-string >=2.0.2 && <2.1 + + -- we also ensure that we can get filepath-1.5 only with GHC-9.2 + -- therefore there is else-branch with stricter upper bound. + build-depends: filepath >=1.4.200.1 && <1.6 + + -- Integer internals + build-depends: ghc-bignum >=1.3 && <1.4 + + if (flag(random-initial-seed) && impl(ghc)) + cpp-options: -DHASHABLE_RANDOM_SEED=1 + + if os(windows) + c-sources: cbits-win/init.c + + else + c-sources: cbits-unix/init.c + + default-language: Haskell2010 + other-extensions: + BangPatterns + CPP + DeriveDataTypeable + FlexibleContexts + FlexibleInstances + GADTs + KindSignatures + MagicHash + MultiParamTypeClasses + QuantifiedConstraints + ScopedTypeVariables + Trustworthy + TypeOperators + UnliftedFFITypes + + ghc-options: -Wall + + if flag(arch-native) + -- Cabal doesn't pass cc-options to "ordinary" Haskell source compilation + -- https://github.com/haskell/cabal/issues/9801 + ghc-options: -optc=-march=native -optc-mtune=native + + if impl(ghc >=9.0) + -- these flags may abort compilation with GHC-8.10 + -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295 + ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode + +test-suite hashable-tests + type: exitcode-stdio-1.0 + hs-source-dirs: tests + main-is: Main.hs + other-modules: + Properties + Regress + + build-depends: + , base + , bytestring + , filepath + , ghc-prim + , hashable + , HUnit + , QuickCheck >=2.15 + , random >=1.0 && <1.3 + , tasty ^>=1.5 + , tasty-hunit ^>=0.10.1 + , tasty-quickcheck ^>=0.10.3 + , text >=0.11.0.5 + + if impl(ghc >=9.2) + build-depends: os-string + + if !os(windows) + build-depends: unix + cpp-options: -DHAVE_MMAP + other-modules: Regress.Mmap + other-extensions: CApiFFI + + ghc-options: -Wall -fno-warn-orphans + default-language: Haskell2010 + +test-suite xxhash-tests + type: exitcode-stdio-1.0 + hs-source-dirs: tests src + main-is: xxhash-tests.hs + other-modules: + Data.Hashable.FFI + Data.Hashable.XXH3 + + default-language: Haskell2010 + build-depends: + , base + , bytestring + , primitive ^>=0.9.0.0 + , tasty ^>=1.5 + , tasty-hunit ^>=0.10.1 + , tasty-quickcheck ^>=0.10.3 + + include-dirs: include xxHash-0.8.2 + includes: + HsXXHash.h + xxhash.h + + if !impl(ghc >=9.4) + build-depends: data-array-byte >=0.1.0.1 && <0.2 + +test-suite hashable-examples + type: exitcode-stdio-1.0 + build-depends: + , base + , ghc-prim + , hashable + + hs-source-dirs: examples + main-is: Main.hs + default-language: Haskell2010 + +source-repository head + type: git + location: + https://github.com/haskell-unordered-containers/hashable.git diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsHashable.h b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsHashable.h new file mode 100644 index 0000000..5dee9ef --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsHashable.h @@ -0,0 +1,8 @@ +#ifndef HS_HASHABLE_H +#define HS_HASHABLE_H + +#include + +uint64_t hs_hashable_init(); + +#endif diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsXXHash.h b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsXXHash.h new file mode 100644 index 0000000..6373e76 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsXXHash.h @@ -0,0 +1,35 @@ +#ifndef HS_XXHASH_H +#define HS_XXHASH_H + +#include + +#define XXH_INLINE_ALL +#include "xxhash.h" + +#define hs_XXH3_sizeof_state_s sizeof(struct XXH3_state_s) + +static inline uint64_t hs_XXH3_64bits_withSeed_offset(const uint8_t *ptr, size_t off, size_t len, uint64_t seed) { + return XXH3_64bits_withSeed(ptr + off, len, seed); +} + +static inline uint64_t hs_XXH3_64bits_withSeed_u64(uint64_t val, uint64_t seed) { + return XXH3_64bits_withSeed(&val, sizeof(val), seed); +} + +static inline uint64_t hs_XXH3_64bits_withSeed_u32(uint32_t val, uint64_t seed) { + return XXH3_64bits_withSeed(&val, sizeof(val), seed); +} + +static inline void hs_XXH3_64bits_update_offset(XXH3_state_t *statePtr, const uint8_t *ptr, size_t off, size_t len) { + XXH3_64bits_update(statePtr, ptr + off, len); +} + +static inline void hs_XXH3_64bits_update_u64(XXH3_state_t *statePtr, uint64_t val) { + XXH3_64bits_update(statePtr, &val, sizeof(val)); +} + +static inline void hs_XXH3_64bits_update_u32(XXH3_state_t *statePtr, uint32_t val) { + XXH3_64bits_update(statePtr, &val, sizeof(val)); +} + +#endif /* HS_XXHASH_H */ diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable.hs new file mode 100644 index 0000000..c2045eb --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable.hs @@ -0,0 +1,215 @@ +{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE Safe #-} + +------------------------------------------------------------------------ +-- | +-- Module : Data.Hashable +-- Copyright : (c) Milan Straka 2010 +-- (c) Johan Tibell 2011 +-- (c) Bryan O'Sullivan 2011, 2012 +-- SPDX-License-Identifier : BSD-3-Clause +-- Maintainer : johan.tibell@gmail.com +-- Stability : provisional +-- Portability : portable +-- +-- This module defines a class, 'Hashable', for types that can be +-- converted to a hash value. This class exists for the benefit of +-- hashing-based data structures. The module provides instances for +-- most standard types. Efficient instances for other types can be +-- generated automatically and effortlessly using the generics support +-- in GHC 7.4 and above. +-- +-- The easiest way to get started is to use the 'hash' function. Here +-- is an example session with @ghci@. +-- +-- > ghci> import Data.Hashable +-- > ghci> hash "foo" +-- > 60853164 + +module Data.Hashable + ( + -- * Hashing and security + -- $security + + -- * Computing hash values + Hashable(..) + + -- * Creating new instances + -- | There are two ways to create new instances: by deriving + -- instances automatically using GHC's generic programming + -- support or by writing instances manually. + + -- ** Generic instances + -- $generics + + -- *** Understanding a compiler error + -- $generic_err + + -- ** Writing instances by hand + -- $blocks + + -- *** Hashing contructors with multiple fields + -- $multiple-fields + + -- *** Hashing types with multiple constructors + -- $multiple-ctors + + , hashUsing + , hashPtr + , hashPtrWithSalt + , hashByteArray + , hashByteArrayWithSalt + + , defaultHashWithSalt + , defaultHash + + -- * Caching hashes + , Hashed + , hashed + , hashedHash + , unhashed + , mapHashed + , traverseHashed + ) where + +import Data.Hashable.Class +import Data.Hashable.Generic () + +-- $security +-- #security# +-- +-- Applications that use hash-based data structures to store input +-- from untrusted users can be susceptible to \"hash DoS\", a class of +-- denial-of-service attack that uses deliberately chosen colliding +-- inputs to force an application into unexpectedly behaving with +-- quadratic time complexity. +-- +-- At this time, the string hashing functions used in this library are +-- susceptible to such attacks and users are recommended to either use +-- a 'Data.Map' to store keys derived from untrusted input or to use a +-- hash function (e.g. SipHash) that's resistant to such attacks. A +-- future version of this library might ship with such hash functions. + +-- $generics +-- +-- The recommended way to make instances of +-- 'Hashable' for most types is to use the compiler's support for +-- automatically generating default instances using "GHC.Generics". +-- +-- > {-# LANGUAGE DeriveGeneric #-} +-- > +-- > import GHC.Generics (Generic) +-- > import Data.Hashable +-- > +-- > data Foo a = Foo a String +-- > deriving (Eq, Generic) +-- > +-- > instance Hashable a => Hashable (Foo a) +-- > +-- > data Colour = Red | Green | Blue +-- > deriving Generic +-- > +-- > instance Hashable Colour +-- +-- If you omit a body for the instance declaration, GHC will generate +-- a default instance that correctly and efficiently hashes every +-- constructor and parameter. +-- +-- The default implementations are provided by +-- 'genericHashWithSalt' and 'genericLiftHashWithSalt'; those together with +-- the generic type class 'GHashable' and auxiliary functions are exported +-- from the "Data.Hashable.Generic" module. + +-- $generic_err +-- +-- Suppose you intend to use the generic machinery to automatically +-- generate a 'Hashable' instance. +-- +-- > data Oops = Oops +-- > -- forgot to add "deriving Generic" here! +-- > +-- > instance Hashable Oops +-- +-- And imagine that, as in the example above, you forget to add a +-- \"@deriving 'Generic'@\" clause to your data type. At compile time, +-- you will get an error message from GHC that begins roughly as +-- follows: +-- +-- > No instance for (GHashable (Rep Oops)) +-- +-- This error can be confusing, as 'GHashable' is not exported (it is +-- an internal typeclass used by this library's generics machinery). +-- The correct fix is simply to add the missing \"@deriving +-- 'Generic'@\". + +-- $blocks +-- +-- To maintain high quality hashes, new 'Hashable' instances should be +-- built using existing 'Hashable' instances, combinators, and hash +-- functions. +-- +-- The functions below can be used when creating new instances of +-- 'Hashable'. For example, for many string-like types the +-- 'hashWithSalt' method can be defined in terms of either +-- 'hashPtrWithSalt' or 'hashByteArrayWithSalt'. Here's how you could +-- implement an instance for the 'B.ByteString' data type, from the +-- @bytestring@ package: +-- +-- > import qualified Data.ByteString as B +-- > import qualified Data.ByteString.Internal as B +-- > import qualified Data.ByteString.Unsafe as B +-- > import Data.Hashable +-- > import Foreign.Ptr (castPtr) +-- > +-- > instance Hashable B.ByteString where +-- > hashWithSalt salt bs = B.inlinePerformIO $ +-- > B.unsafeUseAsCStringLen bs $ \(p, len) -> +-- > hashPtrWithSalt p (fromIntegral len) salt + +-- $multiple-fields +-- +-- Hash constructors with multiple fields by chaining 'hashWithSalt': +-- +-- > data Date = Date Int Int Int +-- > +-- > instance Hashable Date where +-- > hashWithSalt s (Date yr mo dy) = +-- > s `hashWithSalt` +-- > yr `hashWithSalt` +-- > mo `hashWithSalt` dy +-- +-- If you need to chain hashes together, use 'hashWithSalt' and follow +-- this recipe: +-- +-- > combineTwo h1 h2 = h1 `hashWithSalt` h2 + +-- $multiple-ctors +-- +-- For a type with several value constructors, there are a few +-- possible approaches to writing a 'Hashable' instance. +-- +-- If the type is an instance of 'Enum', the easiest path is to +-- convert it to an 'Int', and use the existing 'Hashable' instance +-- for 'Int'. +-- +-- > data Color = Red | Green | Blue +-- > deriving Enum +-- > +-- > instance Hashable Color where +-- > hashWithSalt = hashUsing fromEnum +-- +-- If the type's constructors accept parameters, it is important to +-- distinguish the constructors. To distinguish the constructors, add +-- a different integer to the hash computation of each constructor: +-- +-- > data Time = Days Int +-- > | Weeks Int +-- > | Months Int +-- > +-- > instance Hashable Time where +-- > hashWithSalt s (Days n) = s `hashWithSalt` +-- > (0::Int) `hashWithSalt` n +-- > hashWithSalt s (Weeks n) = s `hashWithSalt` +-- > (1::Int) `hashWithSalt` n +-- > hashWithSalt s (Months n) = s `hashWithSalt` +-- > (2::Int) `hashWithSalt` n diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Class.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Class.hs new file mode 100644 index 0000000..9de9209 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Class.hs @@ -0,0 +1,999 @@ +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE CApiFFI #-} +{-# LANGUAGE CPP #-} +{-# LANGUAGE DefaultSignatures #-} +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE MagicHash #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE PackageImports #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE QuantifiedConstraints #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE UnliftedFFITypes #-} +{-# OPTIONS_GHC -fno-warn-deprecations #-} + +------------------------------------------------------------------------ +-- | +-- Module : Data.Hashable.Class +-- Copyright : (c) Milan Straka 2010 +-- (c) Johan Tibell 2011 +-- (c) Bryan O'Sullivan 2011, 2012 +-- SPDX-License-Identifier : BSD-3-Clause +-- Maintainer : johan.tibell@gmail.com +-- Stability : provisional +-- Portability : portable +-- +-- This module defines a class, 'Hashable', for types that can be +-- converted to a hash value. This class exists for the benefit of +-- hashing-based data structures. The module provides instances for +-- most standard types. + +module Data.Hashable.Class + ( + -- * Computing hash values + Hashable(..) + , Hashable1(..) + , Hashable2(..) + + -- ** Support for generics + , genericHashWithSalt + , genericLiftHashWithSalt + , GHashable(..) + , HashArgs(..) + , Zero + , One + + -- * Creating new instances + , hashUsing + , hashPtr + , hashPtrWithSalt + , hashByteArray + , hashByteArrayWithSalt + , defaultHashWithSalt + , defaultHash + -- * Higher Rank Functions + , hashWithSalt1 + , hashWithSalt2 + , defaultLiftHashWithSalt + -- * Caching hashes + , Hashed + , hashed + , hashedHash + , unhashed + , mapHashed + , traverseHashed + ) where + +import Control.Applicative (Const (..)) +import Control.DeepSeq (NFData (rnf)) +import Control.Exception (assert) +import Control.Monad.ST (runST) +import Data.Array.Byte (ByteArray (..)) +import Data.Complex (Complex (..)) +import Data.Fixed (Fixed (..)) +import Data.Functor.Classes (Eq1 (..), Eq2 (..), Ord1 (..), Show1 (..)) +import Data.Functor.Compose (Compose (..)) +import Data.Functor.Identity (Identity (..)) +import Data.Int (Int16, Int8) +import Data.Kind (Type) +import Data.List (foldl') +import Data.Proxy (Proxy) +import Data.Ratio (Ratio, denominator, numerator) +import Data.String (IsString (..)) +import Data.Tuple (Solo (..)) +import Data.Unique (Unique, hashUnique) +import Data.Version (Version (..)) +import Data.Void (Void, absurd) +import Data.Word (Word16, Word8) +import Foreign.Ptr (FunPtr, IntPtr, Ptr, WordPtr, castFunPtrToPtr, ptrToIntPtr) +import Foreign.Storable (alignment, sizeOf) +import GHC.Base (ByteArray#) +import GHC.Conc (ThreadId (..)) +import GHC.Fingerprint.Type (Fingerprint (..)) +import GHC.Word (Word (..)) +import System.Mem.StableName (StableName, hashStableName) +import Type.Reflection (SomeTypeRep (..), TypeRep) +import Type.Reflection.Unsafe (typeRepFingerprint) + +import qualified Data.Array.Byte as AB +import qualified Data.ByteString as B +import qualified Data.ByteString.Lazy as BL +import qualified Data.ByteString.Short.Internal as BSI +import qualified Data.Functor.Product as FP +import qualified Data.Functor.Sum as FS +import qualified Data.IntMap as IntMap +import qualified Data.IntSet as IntSet +import qualified Data.List.NonEmpty as NE +import qualified Data.Map as Map +import qualified Data.Semigroup as Semi +import qualified Data.Sequence as Seq +import qualified Data.Set as Set +import qualified Data.Text as T +import qualified Data.Text.Array as TA +import qualified Data.Text.Internal as T +import qualified Data.Text.Lazy as TL +import qualified Data.Tree as Tree + +import GHC.Generics + +#if MIN_VERSION_base(4,19,0) +import GHC.Conc.Sync (fromThreadId) +#else +import GHC.Prim (ThreadId#) +#if __GLASGOW_HASKELL__ >= 904 +import Foreign.C.Types (CULLong (..)) +#elif __GLASGOW_HASKELL__ >= 900 +import Foreign.C.Types (CLong (..)) +#else +import Foreign.C.Types (CInt (..)) +#endif +#endif + +import GHC.Exts (Int (..), sizeofByteArray#) +import GHC.Num.BigNat (BigNat (..)) +import GHC.Num.Integer (Integer (..)) +import GHC.Num.Natural (Natural (..)) + + +import GHC.Float (castDoubleToWord64, castFloatToWord32) + +-- filepath >=1.4.100 && <1.5 has System.OsString.Internal.Types module +#if MIN_VERSION_filepath(1,4,100) && !(MIN_VERSION_filepath(1,5,0)) +#define HAS_OS_STRING_filepath 1 +#else +#define HAS_OS_STRING_filepath 0 +#endif + +-- if we depend on os_string module, then it has System.OsString.Internal.Types +-- module as well +#ifdef MIN_VERSION_os_string +#define HAS_OS_STRING_os_string 1 +#else +#define HAS_OS_STRING_os_string 0 +#endif + +#if HAS_OS_STRING_filepath && HAS_OS_STRING_os_string +import "os-string" System.OsString.Internal.Types (OsString (..), PosixString (..), WindowsString (..)) +import qualified "filepath" System.OsString.Internal.Types as FP (OsString (..), PosixString (..), WindowsString (..)) +#elif HAS_OS_STRING_filepath || HAS_OS_STRING_os_string +import System.OsString.Internal.Types (OsString (..), PosixString (..), WindowsString (..)) +#endif + +import Data.Hashable.Imports +import Data.Hashable.LowLevel +import Data.Hashable.XXH3 + +#include "MachDeps.h" + +infixl 0 `hashWithSalt` + +------------------------------------------------------------------------ +-- * Computing hash values + +-- | The class of types that can be converted to a hash value. +-- +-- Minimal implementation: 'hashWithSalt'. +-- +-- 'Hashable' is intended exclusively for use in in-memory data structures. +-- . +-- 'Hashable' does /not/ have a fixed standard. +-- This allows it to improve over time. +-- . +-- Because it does not have a fixed standard, different computers or computers on different versions of the code will observe different hash values. +-- As such, 'Hashable' is not recommended for use other than in-memory datastructures. +-- Specifically, 'Hashable' is not intended for network use or in applications which persist hashed values. +-- For stable hashing use named hashes: sha256, crc32, xxhash etc. +-- +-- If you are looking for 'Hashable' instance in @time@ package, +-- check [time-compat](https://hackage.haskell.org/package/time-compat) +-- +class Eq a => Hashable a where + -- | Return a hash value for the argument, using the given salt. + -- + -- The general contract of 'hashWithSalt' is: + -- + -- * If two values are equal according to the '==' method, then + -- applying the 'hashWithSalt' method on each of the two values + -- /must/ produce the same integer result if the same salt is + -- used in each case. + -- + -- * It is /not/ required that if two values are unequal + -- according to the '==' method, then applying the + -- 'hashWithSalt' method on each of the two values must produce + -- distinct integer results. However, the programmer should be + -- aware that producing distinct integer results for unequal + -- values may improve the performance of hashing-based data + -- structures. + -- + -- * This method can be used to compute different hash values for + -- the same input by providing a different salt in each + -- application of the method. This implies that any instance + -- that defines 'hashWithSalt' /must/ make use of the salt in + -- its implementation. + -- + -- * 'hashWithSalt' may return negative 'Int' values. + -- + hashWithSalt :: Int -> a -> Int + + -- | Like 'hashWithSalt', but no salt is used. The default + -- implementation uses 'hashWithSalt' with some default salt. + -- Instances might want to implement this method to provide a more + -- efficient implementation than the default implementation. + hash :: a -> Int + hash = defaultHash + + default hashWithSalt :: (Generic a, GHashable Zero (Rep a)) => Int -> a -> Int + hashWithSalt = genericHashWithSalt + {-# INLINE hashWithSalt #-} + +-- | Generic 'hashWithSalt'. +-- +-- @since 1.3.0.0 +genericHashWithSalt :: (Generic a, GHashable Zero (Rep a)) => Int -> a -> Int +genericHashWithSalt = \salt -> ghashWithSalt HashArgs0 salt . from +{-# INLINE genericHashWithSalt #-} + +data Zero +data One + +data family HashArgs arity a :: Type +data instance HashArgs Zero a = HashArgs0 +newtype instance HashArgs One a = HashArgs1 (Int -> a -> Int) + +-- | The class of types that can be generically hashed. +class GHashable arity f where + ghashWithSalt :: HashArgs arity a -> Int -> f a -> Int + +class (Eq1 t, forall a. Hashable a => Hashable (t a)) => Hashable1 t where + -- | Lift a hashing function through the type constructor. + liftHashWithSalt :: (Int -> a -> Int) -> Int -> t a -> Int + + default liftHashWithSalt :: (Generic1 t, GHashable One (Rep1 t)) => (Int -> a -> Int) -> Int -> t a -> Int + liftHashWithSalt = genericLiftHashWithSalt + {-# INLINE liftHashWithSalt #-} + +-- | Generic 'liftHashWithSalt'. +-- +-- @since 1.3.0.0 +genericLiftHashWithSalt :: (Generic1 t, GHashable One (Rep1 t)) => (Int -> a -> Int) -> Int -> t a -> Int +genericLiftHashWithSalt = \h salt -> ghashWithSalt (HashArgs1 h) salt . from1 +{-# INLINE genericLiftHashWithSalt #-} + +class (Eq2 t, forall a. Hashable a => Hashable1 (t a)) => Hashable2 t where + -- | Lift a hashing function through the binary type constructor. + liftHashWithSalt2 :: (Int -> a -> Int) -> (Int -> b -> Int) -> Int -> t a b -> Int + +-- | Lift the 'hashWithSalt' function through the type constructor. +-- +-- > hashWithSalt1 = liftHashWithSalt hashWithSalt +hashWithSalt1 :: (Hashable1 f, Hashable a) => Int -> f a -> Int +hashWithSalt1 = liftHashWithSalt hashWithSalt + +-- | Lift the 'hashWithSalt' function through the type constructor. +-- +-- > hashWithSalt2 = liftHashWithSalt2 hashWithSalt hashWithSalt +hashWithSalt2 :: (Hashable2 f, Hashable a, Hashable b) => Int -> f a b -> Int +hashWithSalt2 = liftHashWithSalt2 hashWithSalt hashWithSalt + +-- | Lift the 'hashWithSalt' function halfway through the type constructor. +-- This function makes a suitable default implementation of 'liftHashWithSalt', +-- given that the type constructor @t@ in question can unify with @f a@. +defaultLiftHashWithSalt :: (Hashable2 f, Hashable a) => (Int -> b -> Int) -> Int -> f a b -> Int +defaultLiftHashWithSalt h = liftHashWithSalt2 hashWithSalt h + +-- | Since we support a generic implementation of 'hashWithSalt' we +-- cannot also provide a default implementation for that method for +-- the non-generic instance use case. Instead we provide +-- 'defaultHashWith'. +-- +-- @since 1.4.3.0 +-- +defaultHashWithSalt :: Hashable a => Int -> a -> Int +defaultHashWithSalt salt x = salt `hashInt` hash x + +-- | Default implementation of 'hash' based on 'hashWithSalt'. +-- +-- @since 1.4.3.0 +-- +defaultHash :: Hashable a => a -> Int +defaultHash = hashWithSalt defaultSalt + +-- | Transform a value into a 'Hashable' value, then hash the +-- transformed value using the given salt. +-- +-- This is a useful shorthand in cases where a type can easily be +-- mapped to another type that is already an instance of 'Hashable'. +-- Example: +-- +-- > data Foo = Foo | Bar +-- > deriving (Enum) +-- > +-- > instance Hashable Foo where +-- > hashWithSalt = hashUsing fromEnum +-- +-- @since 1.2.0.0 +hashUsing :: (Hashable b) => + (a -> b) -- ^ Transformation function. + -> Int -- ^ Salt. + -> a -- ^ Value to transform. + -> Int +hashUsing f salt x = hashWithSalt salt (f x) +{-# INLINE hashUsing #-} + +instance Hashable Int where + hash = id + hashWithSalt = hashInt + +instance Hashable Int8 where + hash = fromIntegral + hashWithSalt = defaultHashWithSalt + +instance Hashable Int16 where + hash = fromIntegral + hashWithSalt = defaultHashWithSalt + +instance Hashable Int32 where + hash = fromIntegral + hashWithSalt = defaultHashWithSalt + +instance Hashable Int64 where + hash = fromIntegral + hashWithSalt = hashInt64 + +instance Hashable Word where + hash = fromIntegral + hashWithSalt = defaultHashWithSalt + +instance Hashable Word8 where + hash = fromIntegral + hashWithSalt = defaultHashWithSalt + +instance Hashable Word16 where + hash = fromIntegral + hashWithSalt = defaultHashWithSalt + +instance Hashable Word32 where + hash = fromIntegral + hashWithSalt = defaultHashWithSalt + +instance Hashable Word64 where + hash = fromIntegral + hashWithSalt = hashWord64 + +instance Hashable () where + hash = fromEnum + hashWithSalt = defaultHashWithSalt + +instance Hashable Bool where + hash = fromEnum + hashWithSalt = defaultHashWithSalt + +instance Hashable Ordering where + hash = fromEnum + hashWithSalt = defaultHashWithSalt + +instance Hashable Char where + hash = fromEnum + hashWithSalt = defaultHashWithSalt + +instance Hashable BigNat where + hashWithSalt salt (BN# ba) = hashWithSalt salt (ByteArray ba) + +instance Hashable Natural where + hash (NS n) = hash (W# n) + hash (NB bn) = hash (BN# bn) + + hashWithSalt salt (NS n) = hashWithSalt salt (W# n) + hashWithSalt salt (NB bn) = hashWithSalt salt (BN# bn) + +instance Hashable Integer where + hash (IS n) = I# n + hash (IP bn) = hash (BN# bn) + hash (IN bn) = negate (hash (BN# bn)) + + hashWithSalt salt (IS n) = hashWithSalt salt (I# n) + hashWithSalt salt (IP bn) = hashWithSalt salt (BN# bn) + hashWithSalt salt (IN bn) = negate (hashWithSalt salt (BN# bn)) + +instance Hashable a => Hashable (Complex a) where + {-# SPECIALIZE instance Hashable (Complex Double) #-} + {-# SPECIALIZE instance Hashable (Complex Float) #-} + hash (r :+ i) = hash r `hashWithSalt` i + hashWithSalt = hashWithSalt1 +instance Hashable1 Complex where + liftHashWithSalt h s (r :+ i) = s `h` r `h` i + +instance Hashable a => Hashable (Ratio a) where + {-# SPECIALIZE instance Hashable (Ratio Integer) #-} + hash a = hash (numerator a) `hashWithSalt` denominator a + hashWithSalt s a = s `hashWithSalt` numerator a `hashWithSalt` denominator a + +-- | __Note__: prior to @hashable-1.3.0.0@, @hash 0.0 /= hash (-0.0)@ +-- +-- The 'hash' of NaN is not well defined. +-- +-- @since 1.3.0.0 +instance Hashable Float where + hash x + | x == -0.0 || x == 0.0 = 0 -- see note in 'Hashable Double' + | isIEEE x = + assert (sizeOf x >= sizeOf (0::Word32) && + alignment x >= alignment (0::Word32)) $ + hash (castFloatToWord32 x) + | otherwise = hash (show x) + hashWithSalt = defaultHashWithSalt + +-- | __Note__: prior to @hashable-1.3.0.0@, @hash 0.0 /= hash (-0.0)@ +-- +-- The 'hash' of NaN is not well defined. +-- +-- @since 1.3.0.0 +instance Hashable Double where + hash x + | x == -0.0 || x == 0.0 = 0 -- s.t. @hash -0.0 == hash 0.0@ ; see #173 + | isIEEE x = + assert (sizeOf x >= sizeOf (0::Word64) && + alignment x >= alignment (0::Word64)) $ + hash (castDoubleToWord64 x) + | otherwise = hash (show x) + hashWithSalt = defaultHashWithSalt + +-- | A value with bit pattern (01)* (or 5* in hexa), for any size of Int. +-- It is used as data constructor distinguisher. GHC computes its value during +-- compilation. +distinguisher :: Int +distinguisher = fromIntegral $ (maxBound :: Word) `quot` 3 +{-# INLINE distinguisher #-} + +instance Hashable a => Hashable (Maybe a) where + hash Nothing = 0 + hash (Just a) = distinguisher `hashWithSalt` a + hashWithSalt = hashWithSalt1 + +instance Hashable1 Maybe where + liftHashWithSalt _ s Nothing = s `hashInt` 0 + liftHashWithSalt h s (Just a) = s `hashInt` distinguisher `h` a + +instance (Hashable a, Hashable b) => Hashable (Either a b) where + hash (Left a) = 0 `hashWithSalt` a + hash (Right b) = distinguisher `hashWithSalt` b + hashWithSalt = hashWithSalt1 + +instance Hashable a => Hashable1 (Either a) where + liftHashWithSalt = defaultLiftHashWithSalt + +instance Hashable2 Either where + liftHashWithSalt2 h _ s (Left a) = s `hashInt` 0 `h` a + liftHashWithSalt2 _ h s (Right b) = s `hashInt` distinguisher `h` b + +instance (Hashable a1, Hashable a2) => Hashable (a1, a2) where + hashWithSalt = hashWithSalt1 + +instance Hashable a1 => Hashable1 ((,) a1) where + liftHashWithSalt = defaultLiftHashWithSalt + +instance Hashable2 (,) where + liftHashWithSalt2 h1 h2 s (a1, a2) = s `h1` a1 `h2` a2 + +instance (Hashable a1, Hashable a2, Hashable a3) => Hashable (a1, a2, a3) where + hashWithSalt = hashWithSalt1 + +instance (Hashable a1, Hashable a2) => Hashable1 ((,,) a1 a2) where + liftHashWithSalt = defaultLiftHashWithSalt + +instance Hashable a1 => Hashable2 ((,,) a1) where + liftHashWithSalt2 h1 h2 s (a1, a2, a3) = + (s `hashWithSalt` a1) `h1` a2 `h2` a3 + +instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4) => + Hashable (a1, a2, a3, a4) where + hashWithSalt = hashWithSalt1 + +instance (Hashable a1, Hashable a2, Hashable a3) => Hashable1 ((,,,) a1 a2 a3) where + liftHashWithSalt = defaultLiftHashWithSalt + +instance (Hashable a1, Hashable a2) => Hashable2 ((,,,) a1 a2) where + liftHashWithSalt2 h1 h2 s (a1, a2, a3, a4) = + (s `hashWithSalt` a1 `hashWithSalt` a2) `h1` a3 `h2` a4 + +instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5) + => Hashable (a1, a2, a3, a4, a5) where + hashWithSalt s (a1, a2, a3, a4, a5) = + s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 + `hashWithSalt` a4 `hashWithSalt` a5 + +{- +instance (Hashable a1, Hashable a2, Hashable a3, + Hashable a4) => Hashable1 ((,,,,) a1 a2 a3 a4) where + liftHashWithSalt = defaultLiftHashWithSalt + +instance (Hashable a1, Hashable a2, Hashable a3) + => Hashable2 ((,,,,) a1 a2 a3) where + liftHashWithSalt2 h1 h2 s (a1, a2, a3, a4, a5) = + (s `hashWithSalt` a1 `hashWithSalt` a2 + `hashWithSalt` a3) `h1` a4 `h2` a5 +-} + +instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5, + Hashable a6) => Hashable (a1, a2, a3, a4, a5, a6) where + hashWithSalt s (a1, a2, a3, a4, a5, a6) = + s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 + `hashWithSalt` a4 `hashWithSalt` a5 `hashWithSalt` a6 + +{- +instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, + Hashable a5) => Hashable1 ((,,,,,) a1 a2 a3 a4 a5) where + liftHashWithSalt = defaultLiftHashWithSalt + +instance (Hashable a1, Hashable a2, Hashable a3, + Hashable a4) => Hashable2 ((,,,,,) a1 a2 a3 a4) where + liftHashWithSalt2 h1 h2 s (a1, a2, a3, a4, a5, a6) = + (s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 + `hashWithSalt` a4) `h1` a5 `h2` a6 +-} + +instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5, + Hashable a6, Hashable a7) => + Hashable (a1, a2, a3, a4, a5, a6, a7) where + hashWithSalt s (a1, a2, a3, a4, a5, a6, a7) = + s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 + `hashWithSalt` a4 `hashWithSalt` a5 `hashWithSalt` a6 `hashWithSalt` a7 + +{- +instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5, Hashable a6) => Hashable1 ((,,,,,,) a1 a2 a3 a4 a5 a6) where + liftHashWithSalt = defaultLiftHashWithSalt + +instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, + Hashable a5) => Hashable2 ((,,,,,,) a1 a2 a3 a4 a5) where + liftHashWithSalt2 h1 h2 s (a1, a2, a3, a4, a5, a6, a7) = + (s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 + `hashWithSalt` a4 `hashWithSalt` a5) `h1` a6 `h2` a7 +-} + +instance Hashable (StableName a) where + hash = hashStableName + hashWithSalt = defaultHashWithSalt + +-- Auxiliary type for Hashable [a] definition +data SPInt = SP !Int !Int + +instance Hashable a => Hashable [a] where + {-# SPECIALIZE instance Hashable [Char] #-} + hashWithSalt = hashWithSalt1 + +instance Hashable1 [] where + liftHashWithSalt h salt arr = finalise (foldl' step (SP salt 0) arr) + where + finalise (SP s l) = hashWithSalt s l + step (SP s l) x = SP (h s x) (l + 1) + +instance Hashable B.ByteString where + hash bs = fromIntegral (xxh3_64bit_withSeed_bs bs 0) + + hashWithSalt salt bs = + fromIntegral (xxh3_64bit_withSeed_bs bs (fromIntegral (hashWithSalt salt len))) + where + len = B.length bs + +instance Hashable BL.ByteString where + hashWithSalt salt lbs = runST $ do + s <- xxh3_64bit_createState + xxh3_64bit_reset_withSeed s (fromIntegral salt) + len <- BL.foldrChunks (step s) return lbs 0 + xxh3_64bit_update_w64 s len + digest <- xxh3_64bit_digest s + return (fromIntegral digest) + where + step s bs next !acc = do + xxh3_64bit_update_bs s bs + next (acc + fromIntegral (B.length bs)) + +instance Hashable BSI.ShortByteString where + hash (BSI.SBS ba) = hash (ByteArray ba) + hashWithSalt salt (BSI.SBS ba) = hashWithSalt salt (ByteArray ba) + +#if HAS_OS_STRING_filepath || HAS_OS_STRING_os_string +-- | @since 1.4.2.0 +deriving newtype instance Hashable PosixString + +-- | @since 1.4.2.0 +deriving newtype instance Hashable WindowsString + +-- | @since 1.4.2.0 +deriving newtype instance Hashable OsString +#endif + +#if HAS_OS_STRING_filepath && HAS_OS_STRING_os_string +deriving newtype instance Hashable FP.PosixString +deriving newtype instance Hashable FP.WindowsString +deriving newtype instance Hashable FP.OsString +#endif + +#if MIN_VERSION_text(2,0,0) + +instance Hashable T.Text where + hash (T.Text (TA.ByteArray arr) off len) = + fromIntegral (xxh3_64bit_withSeed_ba (ByteArray arr) off len 0) + hashWithSalt salt (T.Text (TA.ByteArray arr) off len) = + fromIntegral (xxh3_64bit_withSeed_ba (ByteArray arr) off len (fromIntegral (hashWithSalt salt len))) + +instance Hashable TL.Text where + hashWithSalt salt lt = runST $ do + s <- xxh3_64bit_createState + xxh3_64bit_reset_withSeed s (fromIntegral salt) + len <- TL.foldrChunks (step s) return lt 0 + xxh3_64bit_update_w64 s len + digest <- xxh3_64bit_digest s + return (fromIntegral digest) + where + step s (T.Text (TA.ByteArray arr) off len) next !acc = do + xxh3_64bit_update_ba s (ByteArray arr) off len + next (acc + fromIntegral len) + +#else + +instance Hashable T.Text where + hash (T.Text arr off len) = + fromIntegral (xxh3_64bit_withSeed_ba (ByteArray (TA.aBA arr)) (unsafeShiftL off 1) (unsafeShiftL len 1) 0) + hashWithSalt salt (T.Text arr off len) = + fromIntegral (xxh3_64bit_withSeed_ba (ByteArray (TA.aBA arr)) (unsafeShiftL off 1) (unsafeShiftL len 1) (fromIntegral (hashWithSalt salt len))) + +instance Hashable TL.Text where + hashWithSalt salt lt = runST $ do + s <- xxh3_64bit_createState + xxh3_64bit_reset_withSeed s (fromIntegral salt) + len <- TL.foldrChunks (step s) return lt 0 + xxh3_64bit_update_w64 s len + digest <- xxh3_64bit_digest s + return (fromIntegral digest) + where + step s (T.Text arr off len) next !acc = do + xxh3_64bit_update_ba s (ByteArray (TA.aBA arr)) (unsafeShiftL off 1) (unsafeShiftL len 1) + next (acc + fromIntegral len) + +#endif + +#if !MIN_VERSION_base(4,19,0) +fromThreadId :: ThreadId -> Word64 +fromThreadId (ThreadId t) = fromIntegral (getThreadId t) + +-- this cannot be capi, as GHC panics. +foreign import ccall unsafe "rts_getThreadId" getThreadId +#if __GLASGOW_HASKELL__ >= 904 + -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6163 + :: ThreadId# -> CULLong +#elif __GLASGOW_HASKELL__ >= 900 + -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/1254 + :: ThreadId# -> CLong +#else + :: ThreadId# -> CInt +#endif +#endif + +instance Hashable ThreadId where + hash = hash . fromThreadId + hashWithSalt = defaultHashWithSalt + +instance Hashable (Ptr a) where + hashWithSalt salt p = hashWithSalt salt $ ptrToIntPtr p + +instance Hashable (FunPtr a) where + hashWithSalt salt p = hashWithSalt salt $ castFunPtrToPtr p + +instance Hashable IntPtr where + hash n = fromIntegral n + hashWithSalt = defaultHashWithSalt + +instance Hashable WordPtr where + hash n = fromIntegral n + hashWithSalt = defaultHashWithSalt + +---------------------------------------------------------------------------- +-- Fingerprint & TypeRep instances + +-- | @since 1.3.0.0 +instance Hashable Fingerprint where + hash (Fingerprint x _) = fromIntegral x + hashWithSalt = defaultHashWithSalt + {-# INLINE hash #-} + +hashTypeRep :: Type.Reflection.TypeRep a -> Int +hashTypeRep tr = + let Fingerprint x _ = typeRepFingerprint tr in fromIntegral x + +instance Hashable Type.Reflection.SomeTypeRep where + hash (Type.Reflection.SomeTypeRep r) = hashTypeRep r + hashWithSalt = defaultHashWithSalt + {-# INLINE hash #-} + +instance Hashable (Type.Reflection.TypeRep a) where + hash = hashTypeRep + hashWithSalt = defaultHashWithSalt + {-# INLINE hash #-} + +---------------------------------------------------------------------------- + +instance Hashable Void where + hashWithSalt _ = absurd + +-- | Compute a hash value for the content of this pointer. +hashPtr :: Ptr a -- ^ pointer to the data to hash + -> Int -- ^ length, in bytes + -> IO Int -- ^ hash value +hashPtr p len = hashPtrWithSalt p len defaultSalt + +-- | Compute a hash value for the content of this 'ByteArray#', +-- beginning at the specified offset, using specified number of bytes. +hashByteArray :: ByteArray# -- ^ data to hash + -> Int -- ^ offset, in bytes + -> Int -- ^ length, in bytes + -> Int -- ^ hash value +hashByteArray ba0 off len = hashByteArrayWithSalt ba0 off len defaultSalt +{-# INLINE hashByteArray #-} + +instance Hashable Unique where + hash = hashUnique + hashWithSalt = defaultHashWithSalt + +instance Hashable Version where + hashWithSalt salt (Version branch tags) = + salt `hashWithSalt` branch `hashWithSalt` tags + +deriving newtype instance Hashable (Fixed a) + +deriving newtype instance Hashable a => Hashable (Identity a) +instance Hashable1 Identity where + liftHashWithSalt h salt (Identity x) = h salt x + +-- Using hashWithSalt1 would cause needless constraint +deriving newtype instance Hashable a => Hashable (Const a b) + +instance Hashable a => Hashable1 (Const a) where + liftHashWithSalt = defaultLiftHashWithSalt + +instance Hashable2 Const where + liftHashWithSalt2 f _ salt (Const x) = f salt x + +instance Hashable (Proxy a) where + hash _ = 0 + hashWithSalt s _ = s + +instance Hashable1 Proxy where + liftHashWithSalt _ s _ = s + +instance Hashable a => Hashable (NE.NonEmpty a) where + hashWithSalt p (a NE.:| as) = p `hashWithSalt` a `hashWithSalt` as + +-- | @since 1.3.1.0 +instance Hashable1 NE.NonEmpty where + liftHashWithSalt h salt (a NE.:| as) = liftHashWithSalt h (h salt a) as + +deriving newtype instance Hashable a => Hashable (Semi.Min a) +deriving newtype instance Hashable a => Hashable (Semi.Max a) + +-- | __Note__: Prior to @hashable-1.3.0.0@ the hash computation included the second argument of 'Arg' which wasn't consistent with its 'Eq' instance. +-- +-- Since @hashable-1.5.0.0@, @hash (Semi.arg a _) = hash a@ +-- +-- @since 1.3.0.0 +instance Hashable a => Hashable (Semi.Arg a b) where + hash (Semi.Arg a _) = hash a + hashWithSalt p (Semi.Arg a _) = hashWithSalt p a + +deriving newtype instance Hashable a => Hashable (Semi.First a) +deriving newtype instance Hashable a => Hashable (Semi.Last a) +deriving newtype instance Hashable a => Hashable (Semi.WrappedMonoid a) + +#if !MIN_VERSION_base(4,16,0) +deriving newtype instance Hashable a => Hashable (Semi.Option a) +#endif + +-- TODO: this instance is removed as there isn't Eq1 Min/Max, ... + +#if 0 +-- | @since 1.3.1.0 +-- instance Hashable1 Min where liftHashWithSalt h salt (Min a) = h salt a + +-- | @since 1.3.1.0 +-- instance Hashable1 Max where liftHashWithSalt h salt (Max a) = h salt a + +-- | @since 1.3.1.0 +-- instance Hashable1 First where liftHashWithSalt h salt (First a) = h salt a + +-- | @since 1.3.1.0 +-- instance Hashable1 Last where liftHashWithSalt h salt (Last a) = h salt a + + +-- | @since 1.3.1.0 +-- instance Hashable1 WrappedMonoid where liftHashWithSalt h salt (WrapMonoid a) = h salt a + +-- | @since 1.3.1.0 +-- instance Hashable1 Option where liftHashWithSalt h salt (Option a) = liftHashWithSalt h salt a +#endif + +instance (Hashable (f (g a))) => Hashable (Compose f g a) where + hash (Compose x) = hash x + hashWithSalt p (Compose x) = hashWithSalt p x + +instance (Hashable1 f, Hashable1 g) => Hashable1 (Compose f g) where + liftHashWithSalt h s = liftHashWithSalt (liftHashWithSalt h) s . getCompose + +instance (Hashable1 f, Hashable1 g) => Hashable1 (FP.Product f g) where + liftHashWithSalt h s (FP.Pair a b) = liftHashWithSalt h (liftHashWithSalt h s a) b + +instance (Hashable (f a), Hashable (g a)) => Hashable (FP.Product f g a) where + hashWithSalt s (FP.Pair a b) = s `hashWithSalt` a `hashWithSalt` b + +instance (Hashable1 f, Hashable1 g) => Hashable1 (FS.Sum f g) where + liftHashWithSalt h s (FS.InL a) = liftHashWithSalt h (s `hashInt` 0) a + liftHashWithSalt h s (FS.InR a) = liftHashWithSalt h (s `hashInt` distinguisher) a + +instance (Hashable (f a), Hashable (g a)) => Hashable (FS.Sum f g a) where + hashWithSalt s (FS.InL a) = hashWithSalt (s `hashInt` 0) a + hashWithSalt s (FS.InR a) = hashWithSalt (s `hashInt` distinguisher) a + +-- | This instance was available since 1.4.1.0 only for GHC-9.4+ +-- +-- @since 1.4.2.0 +-- +instance Hashable AB.ByteArray where + hash ba@(AB.ByteArray ba') = + fromIntegral (xxh3_64bit_withSeed_ba ba 0 len 0) + where + !len = I# (sizeofByteArray# ba') + + hashWithSalt salt ba@(AB.ByteArray ba') = + fromIntegral (xxh3_64bit_withSeed_ba ba 0 len (fromIntegral (hashWithSalt salt len))) + where + !len = I# (sizeofByteArray# ba') + +------------------------------------------------------------------------------- +-- Hashed +------------------------------------------------------------------------------- + +-- | A hashable value along with the result of the 'hash' function. +data Hashed a = Hashed a {-# UNPACK #-} !Int + +-- | Wrap a hashable value, caching the 'hash' function result. +hashed :: Hashable a => a -> Hashed a +hashed a = Hashed a (hash a) + +-- | Unwrap hashed value. +unhashed :: Hashed a -> a +unhashed (Hashed a _) = a + +-- | 'hash' has 'Eq' requirement. +-- +-- @since 1.4.0.0 +hashedHash :: Hashed a -> Int +hashedHash (Hashed _ h) = h + +-- | Uses precomputed hash to detect inequality faster +instance Eq a => Eq (Hashed a) where + Hashed a ha == Hashed b hb = ha == hb && a == b + +instance Ord a => Ord (Hashed a) where + Hashed a _ `compare` Hashed b _ = a `compare` b + +instance Show a => Show (Hashed a) where + showsPrec d (Hashed a _) = showParen (d > 10) $ + showString "hashed" . showChar ' ' . showsPrec 11 a + +instance Eq a => Hashable (Hashed a) where + hashWithSalt = defaultHashWithSalt + hash = hashedHash + + +-- This instance is a little unsettling. It is unusal for +-- 'liftHashWithSalt' to ignore its first argument when a +-- value is actually available for it to work on. +instance Hashable1 Hashed where + liftHashWithSalt _ s (Hashed _ h) = defaultHashWithSalt s h + +instance (IsString a, Hashable a) => IsString (Hashed a) where + fromString s = let r = fromString s in Hashed r (hash r) + +instance Foldable Hashed where + foldMap f (Hashed a _) = f a + foldr f acc (Hashed a _) = f a acc + +instance NFData a => NFData (Hashed a) where + rnf = rnf . unhashed + +-- | 'Hashed' cannot be 'Functor' +mapHashed :: Hashable b => (a -> b) -> Hashed a -> Hashed b +mapHashed f (Hashed a _) = hashed (f a) + +-- | 'Hashed' cannot be 'Traversable' +traverseHashed :: (Hashable b, Functor f) => (a -> f b) -> Hashed a -> f (Hashed b) +traverseHashed f (Hashed a _) = fmap hashed (f a) + +-- instances for @Data.Functor.Classes@ higher rank typeclasses +-- in base-4.9 and onward. +instance Eq1 Hashed where + liftEq f (Hashed a ha) (Hashed b hb) = ha == hb && f a b + +instance Ord1 Hashed where + liftCompare f (Hashed a _) (Hashed b _) = f a b + +instance Show1 Hashed where + liftShowsPrec sp _ d (Hashed a _) = showParen (d > 10) $ + showString "hashed " . sp 11 a + +------------------------------------------------------------------------------- +-- containers +------------------------------------------------------------------------------- + +-- | @since 1.3.4.0 +instance Hashable2 Map.Map where + liftHashWithSalt2 hk hv s m = Map.foldlWithKey' + (\s' k v -> hv (hk s' k) v) + (hashWithSalt s (Map.size m)) + m + +-- | @since 1.3.4.0 +instance Hashable k => Hashable1 (Map.Map k) where + liftHashWithSalt h s m = Map.foldlWithKey' + (\s' k v -> h (hashWithSalt s' k) v) + (hashWithSalt s (Map.size m)) + m + +-- | @since 1.3.4.0 +instance (Hashable k, Hashable v) => Hashable (Map.Map k v) where + hashWithSalt = hashWithSalt2 + +-- | @since 1.3.4.0 +instance Hashable1 IntMap.IntMap where + liftHashWithSalt h s m = IntMap.foldlWithKey' + (\s' k v -> h (hashWithSalt s' k) v) + (hashWithSalt s (IntMap.size m)) + m + +-- | @since 1.3.4.0 +instance Hashable v => Hashable (IntMap.IntMap v) where + hashWithSalt = hashWithSalt1 + +-- | @since 1.3.4.0 +instance Hashable1 Set.Set where + liftHashWithSalt h s x = Set.foldl' h (hashWithSalt s (Set.size x)) x + +-- | @since 1.3.4.0 +instance Hashable v => Hashable (Set.Set v) where + hashWithSalt = hashWithSalt1 + +-- | @since 1.3.4.0 +instance Hashable IntSet.IntSet where + hashWithSalt salt x = IntSet.foldl' hashWithSalt + (hashWithSalt salt (IntSet.size x)) + x + +-- | @since 1.3.4.0 +instance Hashable1 Seq.Seq where + liftHashWithSalt h s x = foldl' h (hashWithSalt s (Seq.length x)) x + +-- | @since 1.3.4.0 +instance Hashable v => Hashable (Seq.Seq v) where + hashWithSalt = hashWithSalt1 + +-- | @since 1.3.4.0 +instance Hashable1 Tree.Tree where + liftHashWithSalt h = go where + go s (Tree.Node x xs) = liftHashWithSalt go (h s x) xs + +-- | @since 1.3.4.0 +instance Hashable v => Hashable (Tree.Tree v) where + hashWithSalt = hashWithSalt1 + +------------------------------------------------------------------------------- +-- Solo +------------------------------------------------------------------------------- + +instance Hashable a => Hashable (Solo a) where + hashWithSalt = hashWithSalt1 +instance Hashable1 Solo where + liftHashWithSalt h salt (Solo x) = h salt x diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/FFI.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/FFI.hs new file mode 100644 index 0000000..e417e54 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/FFI.hs @@ -0,0 +1,76 @@ +{-# LANGUAGE CApiFFI #-} +{-# LANGUAGE MagicHash #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE UnliftedFFITypes #-} +module Data.Hashable.FFI ( + -- * One shot + unsafe_xxh3_64bit_withSeed_ptr, + unsafe_xxh3_64bit_withSeed_ba, + unsafe_xxh3_64bit_withSeed_u64, + unsafe_xxh3_64bit_withSeed_u32, + -- * Incremental + unsafe_xxh3_sizeof_state, + unsafe_xxh3_initState, + unsafe_xxh3_64bit_reset_withSeed, + unsafe_xxh3_64bit_digest, + unsafe_xxh3_64bit_update_ptr, + unsafe_xxh3_64bit_update_ba, + unsafe_xxh3_64bit_update_u64, + unsafe_xxh3_64bit_update_u32, +) where + +import Data.Word (Word32, Word64, Word8) +import Foreign.C.Types (CSize (..)) +import Foreign.Ptr (Ptr) +import GHC.Exts (ByteArray#, MutableByteArray#) + +-- Note: we use unsafe FFI calls, as we expect our use case to be hashing only small data (<1kb, at most 4k). + +------------------------------------------------------------------------------- +-- OneShot +------------------------------------------------------------------------------- + +foreign import capi unsafe "HsXXHash.h XXH3_64bits_withSeed" + unsafe_xxh3_64bit_withSeed_ptr :: Ptr Word8 -> CSize -> Word64 -> IO Word64 + +foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_withSeed_offset" + unsafe_xxh3_64bit_withSeed_ba :: ByteArray# -> CSize -> CSize -> Word64 -> Word64 + +foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_withSeed_u64" + unsafe_xxh3_64bit_withSeed_u64 :: Word64 -> Word64 -> Word64 + +foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_withSeed_u32" + unsafe_xxh3_64bit_withSeed_u32 :: Word32 -> Word64 -> Word64 + +------------------------------------------------------------------------------- +-- Incremental +------------------------------------------------------------------------------- + +-- reset and update functions return OK/Error +-- we ignore that: +-- * reset errors only on NULL state +-- * update cannot even error + +foreign import capi unsafe "HsXXHash.h value hs_XXH3_sizeof_state_s" + unsafe_xxh3_sizeof_state :: Int + +foreign import capi unsafe "HsXXHash.h XXH3_INITSTATE" + unsafe_xxh3_initState :: MutableByteArray# s -> IO () + +foreign import capi unsafe "HsXXHash.h XXH3_64bits_reset_withSeed" + unsafe_xxh3_64bit_reset_withSeed :: MutableByteArray# s -> Word64 -> IO () + +foreign import capi unsafe "HsXXHash.h XXH3_64bits_digest" + unsafe_xxh3_64bit_digest :: MutableByteArray# s -> IO Word64 + +foreign import capi unsafe "HsXXHash.h XXH3_64bits_update" + unsafe_xxh3_64bit_update_ptr :: MutableByteArray# s -> Ptr Word8 -> CSize -> IO () + +foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_update_offset" + unsafe_xxh3_64bit_update_ba :: MutableByteArray# s -> ByteArray# -> CSize -> CSize -> IO () + +foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_update_u64" + unsafe_xxh3_64bit_update_u64 :: MutableByteArray# s -> Word64 -> IO () + +foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_update_u32" + unsafe_xxh3_64bit_update_u32 :: MutableByteArray# s -> Word32 -> IO () diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic.hs new file mode 100644 index 0000000..267bd33 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic.hs @@ -0,0 +1,25 @@ +{-# LANGUAGE Safe #-} + +-- | +-- Module : Data.Hashable.Generic +-- SPDX-License-Identifier : BSD-3-Clause +-- Stability : provisional +-- Portability : GHC >= 7.4 +-- +-- Hashable support for GHC generics. +-- +-- @since 1.3.0.0 +module Data.Hashable.Generic + ( + -- * Implementation using Generics. + genericHashWithSalt + , genericLiftHashWithSalt + -- * Constraints + , GHashable (..) + , One + , Zero + , HashArgs (..) + ) where + +import Data.Hashable.Generic.Instances () +import Data.Hashable.Class diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic/Instances.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic/Instances.hs new file mode 100644 index 0000000..425adf2 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic/Instances.hs @@ -0,0 +1,124 @@ +{-# LANGUAGE BangPatterns, FlexibleInstances, KindSignatures, + ScopedTypeVariables, TypeOperators, + MultiParamTypeClasses, GADTs, FlexibleContexts #-} +{-# OPTIONS_GHC -fno-warn-orphans #-} +{-# LANGUAGE Trustworthy #-} + +------------------------------------------------------------------------ +-- | +-- Module : Data.Hashable.Generic.Instances +-- Copyright : (c) Bryan O'Sullivan 2012 +-- SPDX-License-Identifier : BSD-3-Clause +-- Maintainer : bos@serpentine.com +-- Stability : provisional +-- Portability : GHC >= 7.4 +-- +-- Internal module defining orphan instances for "GHC.Generics" +-- +module Data.Hashable.Generic.Instances () where + +import Data.Hashable.Class +import GHC.Generics +import Data.Kind (Type) + + +-- Type without constructors +instance GHashable arity V1 where + ghashWithSalt _ salt _ = hashWithSalt salt () + +-- Constructor without arguments +instance GHashable arity U1 where + ghashWithSalt _ salt U1 = hashWithSalt salt () + +instance (GHashable arity a, GHashable arity b) => GHashable arity (a :*: b) where + ghashWithSalt toHash salt (x :*: y) = + (ghashWithSalt toHash (ghashWithSalt toHash salt x) y) + +-- Metadata (constructor name, etc) +instance GHashable arity a => GHashable arity (M1 i c a) where + ghashWithSalt targs salt = ghashWithSalt targs salt . unM1 + +-- Constants, additional parameters, and rank-1 recursion +instance Hashable a => GHashable arity (K1 i a) where + ghashWithSalt _ = hashUsing unK1 + +instance GHashable One Par1 where + ghashWithSalt (HashArgs1 h) salt = h salt . unPar1 + +instance Hashable1 f => GHashable One (Rec1 f) where + ghashWithSalt (HashArgs1 h) salt = liftHashWithSalt h salt . unRec1 + +instance (Hashable1 f, GHashable One g) => GHashable One (f :.: g) where + ghashWithSalt targs salt = liftHashWithSalt (ghashWithSalt targs) salt . unComp1 + +class SumSize f => GSum arity f where + hashSum :: HashArgs arity a -> Int -> Int -> f a -> Int + -- hashSum args salt index value = ... + +-- [Note: Hashing a sum type] +-- +-- The tree structure is used in GHC.Generics to represent the sum (and +-- product) part of the generic representation of the type, e.g.: +-- +-- (C0 ... :+: C1 ...) :+: (C2 ... :+: (C3 ... :+: C4 ...)) +-- +-- The value constructed with C2 constructor is represented as (R1 (L1 ...)). +-- Yet, if we think that this tree is a flat (heterogeneous) list: +-- +-- [C0 ..., C1 ..., C2 ..., C3 ..., C4... ] +-- +-- then the value constructed with C2 is a (dependent) pair (2, ...), and +-- hashing it is simple: +-- +-- salt `hashWithSalt` (2 :: Int) `hashWithSalt` ... +-- +-- This is what we do below. When drilling down the tree, we count how many +-- leafs are to the left (`index` variable). At the leaf case C1, we'll have an +-- actual index into the sum. +-- +-- This works well for balanced data. However for recursive types like: +-- +-- data Nat = Z | S Nat +-- +-- the `hashWithSalt salt (S (S (S Z)))` is +-- +-- salt `hashWithSalt` (1 :: Int) -- first S +-- `hashWithSalt` (1 :: Int) -- second S +-- `hashWithSalt` (1 :: Int) -- third S +-- `hashWithSalt` (0 :: Int) -- Z +-- `hashWithSalt` () -- U1 +-- +-- For that type the manual implementation: +-- +-- instance Hashable Nat where +-- hashWithSalt salt n = hashWithSalt salt (natToInteger n) +-- +-- would be better performing CPU and hash-quality wise (assuming that +-- Integer's Hashable is of high quality). +-- +instance (GSum arity a, GSum arity b) => GHashable arity (a :+: b) where + ghashWithSalt toHash salt = hashSum toHash salt 0 + +instance (GSum arity a, GSum arity b) => GSum arity (a :+: b) where + hashSum toHash !salt !index s = case s of + L1 x -> hashSum toHash salt index x + R1 x -> hashSum toHash salt (index + sizeL) x + where + sizeL = unTagged (sumSize :: Tagged a) + {-# INLINE hashSum #-} + +instance GHashable arity a => GSum arity (C1 c a) where + hashSum toHash !salt !index (M1 x) = ghashWithSalt toHash (hashWithSalt salt index) x + {-# INLINE hashSum #-} + +class SumSize f where + sumSize :: Tagged f + +newtype Tagged (s :: Type -> Type) = Tagged {unTagged :: Int} + +instance (SumSize a, SumSize b) => SumSize (a :+: b) where + sumSize = Tagged $ unTagged (sumSize :: Tagged a) + + unTagged (sumSize :: Tagged b) + +instance SumSize (C1 c a) where + sumSize = Tagged 1 diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Imports.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Imports.hs new file mode 100644 index 0000000..65f507d --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Imports.hs @@ -0,0 +1,14 @@ +-- | This module exists to avoid conditional imports +-- and unused import warnings. +{-# LANGUAGE Safe #-} +module Data.Hashable.Imports ( + Int64, Int32, + Word64, Word32, + xor, shiftR, shiftL, unsafeShiftL, unsafeShiftR, + (.&.), +) where + +import Data.Bits (shiftL, shiftR, unsafeShiftL, unsafeShiftR, xor, (.&.)) +import Data.Int (Int32, Int64) +import Data.Word (Word32, Word64) +import Prelude () diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Lifted.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Lifted.hs new file mode 100644 index 0000000..d70f340 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Lifted.hs @@ -0,0 +1,98 @@ +{-# LANGUAGE Safe #-} + +------------------------------------------------------------------------ +-- | +-- Module : Data.Hashable.Lifted +-- Copyright : (c) Milan Straka 2010 +-- (c) Johan Tibell 2011 +-- (c) Bryan O'Sullivan 2011, 2012 +-- SPDX-License-Identifier : BSD-3-Clause +-- Maintainer : johan.tibell@gmail.com +-- Stability : provisional +-- Portability : portable +-- +-- Lifting of the 'Hashable' class to unary and binary type constructors. +-- These classes are needed to express the constraints on arguments of +-- types that are parameterized by type constructors. Fixed-point data +-- types and monad transformers are such types. + +module Data.Hashable.Lifted + ( -- * Type Classes + Hashable1(..) + , Hashable2(..) + -- * Auxiliary Functions + , hashWithSalt1 + , hashWithSalt2 + , defaultLiftHashWithSalt + -- * Motivation + -- $motivation + ) where + +import Data.Hashable.Class + +-- $motivation +-- +-- This type classes provided in this module are used to express constraints +-- on type constructors in a Haskell98-compatible fashion. As an example, consider +-- the following two types (Note that these instances are not actually provided +-- because @hashable@ does not have @transformers@ or @free@ as a dependency): +-- +-- > newtype WriterT w m a = WriterT { runWriterT :: m (a, w) } +-- > data Free f a = Pure a | Free (f (Free f a)) +-- +-- The 'Hashable1' instances for @WriterT@ and @Free@ could be written as: +-- +-- > instance (Hashable w, Hashable1 m) => Hashable1 (WriterT w m) where +-- > liftHashWithSalt h s (WriterT m) = +-- > liftHashWithSalt (liftHashWithSalt2 h hashWithSalt) s m +-- > instance Hashable1 f => Hashable1 (Free f) where +-- > liftHashWithSalt h = go where +-- > go s x = case x of +-- > Pure a -> h s a +-- > Free p -> liftHashWithSalt go s p +-- +-- The 'Hashable' instances for these types can be trivially recovered with +-- 'hashWithSalt1': +-- +-- > instance (Hashable w, Hashable1 m, Hashable a) => Hashable (WriterT w m a) where +-- > hashWithSalt = hashWithSalt1 +-- > instance (Hashable1 f, Hashable a) => Hashable (Free f a) where +-- > hashWithSalt = hashWithSalt1 + +-- +-- $discussion +-- +-- Regardless of whether 'hashWithSalt1' is used to provide an implementation +-- of 'hashWithSalt', they should produce the same hash when called with +-- the same arguments. This is the only law that 'Hashable1' and 'Hashable2' +-- are expected to follow. +-- +-- The typeclasses in this module only provide lifting for 'hashWithSalt', not +-- for 'hash'. This is because such liftings cannot be defined in a way that +-- would satisfy the @liftHash@ variant of the above law. As an illustration +-- of the problem we run into, let us assume that 'Hashable1' were +-- given a 'liftHash' method: +-- +-- > class Hashable1 t where +-- > liftHash :: (a -> Int) -> t a -> Int +-- > liftHashWithSalt :: (Int -> a -> Int) -> Int -> t a -> Int +-- +-- Even for a type as simple as 'Maybe', the problem manifests itself. The +-- 'Hashable' instance for 'Maybe' is: +-- +-- > distinguisher :: Int +-- > distinguisher = ... +-- > +-- > instance Hashable a => Hashable (Maybe a) where +-- > hash Nothing = 0 +-- > hash (Just a) = distinguisher `hashWithSalt` a +-- > hashWithSalt s Nothing = ... +-- > hashWithSalt s (Just a) = ... +-- +-- The implementation of 'hash' calls 'hashWithSalt' on @a@. The hypothetical +-- @liftHash@ defined earlier only accepts an argument that corresponds to +-- the implementation of 'hash' for @a@. Consequently, this formulation of +-- @liftHash@ would not provide a way to match the current behavior of 'hash' +-- for 'Maybe'. This problem gets worse when 'Either' and @[]@ are considered. +-- The solution adopted in this library is to omit @liftHash@ entirely. + diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/LowLevel.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/LowLevel.hs new file mode 100644 index 0000000..ac62616 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/LowLevel.hs @@ -0,0 +1,103 @@ +{-# LANGUAGE CPP, BangPatterns, MagicHash, CApiFFI, UnliftedFFITypes #-} +{-# LANGUAGE Trustworthy #-} +-- | A module containing low-level hash primitives. +module Data.Hashable.LowLevel ( + Salt, + defaultSalt, + hashInt, + hashInt64, + hashWord64, + hashPtrWithSalt, + hashByteArrayWithSalt, +) where + +#include "MachDeps.h" + +import Data.Array.Byte (ByteArray (..)) +import Foreign.Ptr (Ptr, castPtr) +import GHC.Base (ByteArray#) + +#ifdef HASHABLE_RANDOM_SEED +import System.IO.Unsafe (unsafePerformIO) +#endif + +import Data.Hashable.Imports +import Data.Hashable.Mix +import Data.Hashable.XXH3 + +------------------------------------------------------------------------------- +-- Initial seed +------------------------------------------------------------------------------- + +#ifdef HASHABLE_RANDOM_SEED +initialSeed :: Word64 +initialSeed = unsafePerformIO initialSeedC +{-# NOINLINE initialSeed #-} + +foreign import capi "HsHashable.h hs_hashable_init" initialSeedC :: IO Word64 +#endif + +-- | A default salt used in the implementation of 'hash'. +defaultSalt :: Salt +#ifdef HASHABLE_RANDOM_SEED +defaultSalt = hashInt defaultSalt' (fromIntegral initialSeed) +#else +defaultSalt = defaultSalt' +#endif +{-# INLINE defaultSalt #-} + +defaultSalt' :: Salt +#if WORD_SIZE_IN_BITS == 64 +defaultSalt' = -3750763034362895579 -- 14695981039346656037 :: Int64 +#else +defaultSalt' = -2128831035 -- 2166136261 :: Int32 +#endif +{-# INLINE defaultSalt' #-} + +------------------------------------------------------------------------------- +-- Hash primitives +------------------------------------------------------------------------------- + +-- | Hash 'Int'. First argument is a salt, second argument is an 'Int'. +-- The result is new salt / hash value. +hashInt :: Salt -> Int -> Salt +hashInt !s !x = fromIntegral (mixHash (fromIntegral s) (fromIntegral x)) + +hashInt64 :: Salt -> Int64 -> Salt +hashWord64 :: Salt -> Word64 -> Salt + +#if WORD_SIZE_IN_BITS == 64 +hashInt64 !s !x = hashInt s (fromIntegral x) +hashWord64 !s !x = hashInt s (fromIntegral x) +#else +hashInt64 !s !x = hashInt (hashInt s (fromIntegral x)) (fromIntegral (x `unsafeShiftR` 32)) +hashWord64 !s !x = hashInt (hashInt s (fromIntegral x)) (fromIntegral (x `unsafeShiftR` 32)) +#endif + +-- | Compute a hash value for the content of this pointer, using an +-- initial salt. +-- +-- This function can for example be used to hash non-contiguous +-- segments of memory as if they were one contiguous segment, by using +-- the output of one hash as the salt for the next. +hashPtrWithSalt :: Ptr a -- ^ pointer to the data to hash + -> Int -- ^ length, in bytes + -> Salt -- ^ salt + -> IO Salt -- ^ hash value +hashPtrWithSalt ptr len salt = + fromIntegral `fmap` xxh3_64bit_withSeed_ptr (castPtr ptr) len (fromIntegral salt) + +-- | Compute a hash value for the content of this 'ByteArray#', using +-- an initial salt. +-- +-- This function can for example be used to hash non-contiguous +-- segments of memory as if they were one contiguous segment, by using +-- the output of one hash as the salt for the next. +hashByteArrayWithSalt + :: ByteArray# -- ^ data to hash + -> Int -- ^ offset, in bytes + -> Int -- ^ length, in bytes + -> Salt -- ^ salt + -> Salt -- ^ hash value +hashByteArrayWithSalt ba !off !len !salt = + fromIntegral (xxh3_64bit_withSeed_ba (ByteArray ba) off len (fromIntegral salt)) diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Mix.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Mix.hs new file mode 100644 index 0000000..9c03221 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Mix.hs @@ -0,0 +1,48 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE MagicHash #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE UnboxedTuples #-} +module Data.Hashable.Mix ( + Salt, + mixHash, +) where + +#include "MachDeps.h" + +import Data.Bits (unsafeShiftR, xor) +import GHC.Exts (Word (..), byteSwap#, timesWord2#, xor#) + +type Salt = Int + +mulFold :: Word -> Word -> Word +mulFold (W# x) (W# y) = case timesWord2# x y of + (# hi, lo #) -> W# (xor# hi lo) + +byteSwap :: Word -> Word +byteSwap (W# w) = W# (byteSwap# w) + +avalanche :: Word -> Word +avalanche z0 = +#if WORD_SIZE_IN_BITS == 64 + -- MurmurHash3Mixer + let z1 = shiftXorMultiply 33 0xff51afd7ed558ccd z0 + z2 = shiftXorMultiply 33 0xc4ceb9fe1a85ec53 z1 + z3 = shiftXor 33 z2 + in z3 +#else + -- MurmurHash3Mixer 32bit + let z1 = shiftXorMultiply 16 0x85ebca6b z0 + z2 = shiftXorMultiply 13 0xc2b2ae35 z1 + z3 = shiftXor 16 z2 + in z3 +#endif + +shiftXor :: Int -> Word -> Word +shiftXor n w = w `xor` (w `unsafeShiftR` n) + +shiftXorMultiply :: Int -> Word -> Word -> Word +shiftXorMultiply n k w = shiftXor n w * k + +-- | Mix hash is inspired by how xxh3 works on small (<=16byte) inputs. +mixHash :: Word -> Word -> Word +mixHash hi lo = avalanche (byteSwap lo + hi + mulFold hi lo) diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/XXH3.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/XXH3.hs new file mode 100644 index 0000000..685b99e --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/XXH3.hs @@ -0,0 +1,126 @@ +{-# LANGUAGE BangPatterns #-} +{-# LANGUAGE CPP #-} +{-# LANGUAGE MagicHash #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE Trustworthy #-} +{-# LANGUAGE UnboxedTuples #-} +module Data.Hashable.XXH3 ( + -- * One shot + xxh3_64bit_withSeed_ptr, + xxh3_64bit_withSeed_bs, + xxh3_64bit_withSeed_ba, + xxh3_64bit_withSeed_w64, + xxh3_64bit_withSeed_w32, + -- * Incremental + XXH3_State, + xxh3_64bit_createState, + xxh3_64bit_reset_withSeed, + xxh3_64bit_digest, + xxh3_64bit_update_bs, + xxh3_64bit_update_ba, + xxh3_64bit_update_w64, + xxh3_64bit_update_w32, +) where + +import Control.Monad.ST.Unsafe (unsafeIOToST) +import Data.Array.Byte (ByteArray (..), MutableByteArray (..)) +import Data.ByteString.Internal (ByteString (..), accursedUnutterablePerformIO) +import Data.Word (Word32, Word64, Word8) +import Foreign (Ptr) +import GHC.Exts (Int (..), MutableByteArray#, newAlignedPinnedByteArray#) +import GHC.ForeignPtr (unsafeWithForeignPtr) +import GHC.ST (ST (..)) + +import Data.Hashable.FFI + +------------------------------------------------------------------------------- +-- OneShot +------------------------------------------------------------------------------- + +-- | Hash 'Ptr' +xxh3_64bit_withSeed_ptr :: Ptr Word8 -> Int -> Word64 -> IO Word64 +xxh3_64bit_withSeed_ptr !ptr !len !salt = + unsafe_xxh3_64bit_withSeed_ptr ptr (fromIntegral len) salt + +-- | Hash 'ByteString'. +xxh3_64bit_withSeed_bs :: ByteString -> Word64 -> Word64 +xxh3_64bit_withSeed_bs (BS fptr len) !salt = accursedUnutterablePerformIO $ + unsafeWithForeignPtr fptr $ \ptr -> + unsafe_xxh3_64bit_withSeed_ptr ptr (fromIntegral len) salt + +-- | Hash (part of) 'ByteArray'. +xxh3_64bit_withSeed_ba :: ByteArray -> Int -> Int -> Word64 -> Word64 +xxh3_64bit_withSeed_ba (ByteArray ba) !off !len !salt = + unsafe_xxh3_64bit_withSeed_ba ba (fromIntegral off) (fromIntegral len) salt + +-- | Hash 'Word64'. +xxh3_64bit_withSeed_w64 :: Word64 -> Word64 -> Word64 +xxh3_64bit_withSeed_w64 !x !salt = + unsafe_xxh3_64bit_withSeed_u64 x salt + +-- | Hash 'Word32'. +xxh3_64bit_withSeed_w32 :: Word32 -> Word64 -> Word64 +xxh3_64bit_withSeed_w32 !x !salt = + unsafe_xxh3_64bit_withSeed_u32 x salt + +------------------------------------------------------------------------------- +-- Incremental +------------------------------------------------------------------------------- + +-- | Mutable XXH3 state. +data XXH3_State s = XXH3 (MutableByteArray# s) + +-- | Create 'XXH3_State'. +xxh3_64bit_createState :: forall s. ST s (XXH3_State s) +xxh3_64bit_createState = do + -- aligned alloc, otherwise we get segfaults. + -- see XXH3_createState implementation + MutableByteArray ba <- newAlignedPinnedByteArray unsafe_xxh3_sizeof_state 64 + unsafeIOToST (unsafe_xxh3_initState ba) + return (XXH3 ba) + +-- | Reset 'XXH3_State' with a seed. +xxh3_64bit_reset_withSeed :: XXH3_State s -> Word64 -> ST s () +xxh3_64bit_reset_withSeed (XXH3 s) seed = do + unsafeIOToST (unsafe_xxh3_64bit_reset_withSeed s seed) + +-- | Return a hash value from a 'XXH3_State'. +-- +-- Doesn't mutate given state, so you can update, digest and update again. +xxh3_64bit_digest :: XXH3_State s -> ST s Word64 +xxh3_64bit_digest (XXH3 s) = + unsafeIOToST (unsafe_xxh3_64bit_digest s) + +-- | Update 'XXH3_State' with 'ByteString'. +xxh3_64bit_update_bs :: XXH3_State s -> ByteString -> ST s () +xxh3_64bit_update_bs (XXH3 s) (BS fptr len) = unsafeIOToST $ + unsafeWithForeignPtr fptr $ \ptr -> + unsafe_xxh3_64bit_update_ptr s ptr (fromIntegral len) + +-- | Update 'XXH3_State' with (part of) 'ByteArray' +xxh3_64bit_update_ba :: XXH3_State s -> ByteArray -> Int -> Int -> ST s () +xxh3_64bit_update_ba (XXH3 s) (ByteArray ba) !off !len = unsafeIOToST $ + unsafe_xxh3_64bit_update_ba s ba (fromIntegral off) (fromIntegral len) + +-- | Update 'XXH3_State' with 'Word64'. +xxh3_64bit_update_w64 :: XXH3_State s -> Word64 -> ST s () +xxh3_64bit_update_w64 (XXH3 s) w64 = unsafeIOToST $ + unsafe_xxh3_64bit_update_u64 s w64 + +-- | Update 'XXH3_State' with 'Word32'. +xxh3_64bit_update_w32 :: XXH3_State s -> Word32 -> ST s () +xxh3_64bit_update_w32 (XXH3 s) w32 = unsafeIOToST $ + unsafe_xxh3_64bit_update_u32 s w32 + +------------------------------------------------------------------------------- +-- mini-primitive +------------------------------------------------------------------------------- + +newAlignedPinnedByteArray + :: Int -- ^ size + -> Int -- ^ alignment + -> ST s (MutableByteArray s) +{-# INLINE newAlignedPinnedByteArray #-} +newAlignedPinnedByteArray (I# n) (I# k) = + ST (\s -> case newAlignedPinnedByteArray# n k s of (# s', arr #) -> (# s', MutableByteArray arr #)) diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Main.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Main.hs new file mode 100644 index 0000000..a661b39 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Main.hs @@ -0,0 +1,14 @@ +-- | Tests for the 'Data.Hashable' module. We test functions by +-- comparing the C and Haskell implementations. + +module Main (main) where + +import Properties (properties) +import Regress (regressions) +import Test.Tasty (defaultMain, testGroup) + +main :: IO () +main = defaultMain $ testGroup "hashable" + [ testGroup "properties" properties + , testGroup "regressions" regressions + ] diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Properties.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Properties.hs new file mode 100644 index 0000000..29425d9 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Properties.hs @@ -0,0 +1,287 @@ +{-# LANGUAGE BangPatterns, CPP, GeneralizedNewtypeDeriving, MagicHash, + Rank2Types, UnboxedTuples #-} +{-# LANGUAGE DeriveGeneric, ScopedTypeVariables, PackageImports #-} + +-- | QuickCheck tests for the 'Data.Hashable' module. We test +-- functions by comparing the C and Haskell implementations. + +module Properties (properties) where + +import Data.Hashable (Hashable, hash, hashByteArray, hashPtr, + Hashed, hashed, unhashed, hashWithSalt) +import Data.Hashable.Generic (genericHashWithSalt) +import Data.Hashable.Lifted (hashWithSalt1) +import qualified Data.ByteString as B +import qualified Data.ByteString.Lazy as BL +import qualified Data.Text as T +import qualified Data.Text.Lazy as TL +import Data.List (nub) +import Control.Monad (ap, liftM) +import System.IO.Unsafe (unsafePerformIO) +import Foreign.Marshal.Array (withArray) +import GHC.Base (ByteArray#, Int(..), newByteArray#, writeWord8Array#) +import GHC.Exts (unsafeCoerce#) +import GHC.ST (ST(..), runST) +import GHC.Word (Word8(..)) +import Test.QuickCheck hiding ((.&.)) +import Test.Tasty (TestTree, testGroup) +import Test.Tasty.QuickCheck (testProperty) +import GHC.Generics + +import qualified Data.ByteString.Short as BS + +#if MIN_VERSION_filepath(1,4,100) && !(MIN_VERSION_filepath(1,5,0)) +import qualified "filepath" System.OsString.Internal.Types as FP +#endif + +#ifdef MIN_VERSION_os_string +import qualified "os-string" System.OsString.Internal.Types as OS +#endif + +------------------------------------------------------------------------ +-- * Properties + +instance Arbitrary T.Text where + arbitrary = T.pack `fmap` arbitrary + +instance Arbitrary TL.Text where + arbitrary = TL.pack `fmap` arbitrary + +instance Arbitrary B.ByteString where + arbitrary = B.pack `fmap` arbitrary + +instance Arbitrary BL.ByteString where + arbitrary = sized $ \n -> resize (round (sqrt (toEnum n :: Double))) + ((BL.fromChunks . map (B.pack . nonEmpty)) `fmap` arbitrary) + where nonEmpty (NonEmpty a) = a + +instance Arbitrary BS.ShortByteString where + arbitrary = BS.pack `fmap` arbitrary + +-- | Validate the implementation by comparing the C and Haskell +-- versions. +pHash :: [Word8] -> Bool +pHash xs = unsafePerformIO $ withArray xs $ \ p -> + (hashByteArray (fromList xs) 0 len ==) `fmap` hashPtr p len + where len = length xs + +-- | Content equality implies hash equality. +pText :: T.Text -> T.Text -> Bool +pText a b = if (a == b) then (hash a == hash b) else True + +-- | Content equality implies hash equality. +pTextLazy :: TL.Text -> TL.Text -> Bool +pTextLazy a b = if (a == b) then (hash a == hash b) else True + +-- | A small positive integer. +newtype ChunkSize = ChunkSize { unCS :: Int } + deriving (Eq, Ord, Num, Integral, Real, Enum) + +instance Show ChunkSize where show = show . unCS + +instance Arbitrary ChunkSize where + arbitrary = (ChunkSize . (`mod` maxChunkSize)) `fmap` + (arbitrary `suchThat` ((/=0) . (`mod` maxChunkSize))) + where maxChunkSize = 16 + +-- | Ensure that the rechunk function causes a rechunked string to +-- still match its original form. +pTextRechunk :: T.Text -> NonEmptyList ChunkSize -> Property +pTextRechunk t cs = TL.fromStrict t === rechunkText t cs + +-- | Lazy strings must hash to the same value no matter how they are +-- chunked. +pTextLazyRechunked :: T.Text -> NonEmptyList ChunkSize -> NonEmptyList ChunkSize -> Property +pTextLazyRechunked t cs0 cs1 = hash (rechunkText t cs0) === hash (rechunkText t cs1) + +pTextLazyRechunked' :: T.Text -> Int -> NonEmptyList ChunkSize -> NonEmptyList ChunkSize -> Property +pTextLazyRechunked' t salt cs0 cs1 = hashWithSalt salt (rechunkText t cs0) === hashWithSalt salt (rechunkText t cs1) + +-- | Break up a string into chunks of different sizes. +rechunkText :: T.Text -> NonEmptyList ChunkSize -> TL.Text +rechunkText t0 (NonEmpty cs0) = TL.fromChunks . go t0 . cycle $ cs0 + where + go t _ | T.null t = [] + go t (c:cs) = a : go b cs + where (a,b) = T.splitAt (unCS c) t + go _ [] = error "Properties.rechunk - The 'impossible' happened!" + +-- | Content equality implies hash equality. +pBSShort :: BS.ShortByteString -> BS.ShortByteString -> Bool +pBSShort a b = if (a == b) then (hash a == hash b) else True + +-- | Content equality implies hash equality. +pBS :: B.ByteString -> B.ByteString -> Bool +pBS a b = if (a == b) then (hash a == hash b) else True + +-- | Content equality implies hash equality. +pBSLazy :: BL.ByteString -> BL.ByteString -> Bool +pBSLazy a b = if (a == b) then (hash a == hash b) else True + +-- | Break up a string into chunks of different sizes. +rechunkBS :: B.ByteString -> NonEmptyList ChunkSize -> BL.ByteString +rechunkBS t0 (NonEmpty cs0) = BL.fromChunks . go t0 . cycle $ cs0 + where + go t _ | B.null t = [] + go t (c:cs) = a : go b cs + where (a,b) = B.splitAt (unCS c) t + go _ [] = error "Properties.rechunkBS - The 'impossible' happened!" + +-- | Ensure that the rechunk function causes a rechunked string to +-- still match its original form. +pBSRechunk :: B.ByteString -> NonEmptyList ChunkSize -> Bool +pBSRechunk t cs = fromStrict t == rechunkBS t cs + +-- | Lazy bytestrings must hash to the same value no matter how they +-- are chunked. +pBSLazyRechunked :: B.ByteString -> NonEmptyList ChunkSize -> NonEmptyList ChunkSize -> Property +pBSLazyRechunked t cs1 cs2 = hash (rechunkBS t cs1) === hash (rechunkBS t cs2) + +pBSLazyRechunked' :: B.ByteString -> Int -> NonEmptyList ChunkSize -> NonEmptyList ChunkSize -> Property +pBSLazyRechunked' t salt cs1 cs2 = hashWithSalt salt (rechunkBS t cs1) === hashWithSalt salt (rechunkBS t cs2) + +-- This wrapper is required by 'runST'. +data ByteArray = BA { unBA :: ByteArray# } + +-- | Create a 'ByteArray#' from a list of 'Word8' values. +fromList :: [Word8] -> ByteArray# +fromList xs0 = unBA (runST $ ST $ \ s1# -> + case newByteArray# len# s1# of + (# s2#, marr# #) -> case go s2# 0 marr# xs0 of + s3# -> (# s3#, BA (unsafeCoerce# marr#) #)) + where + !(I# len#) = length xs0 + go s# _ _ [] = s# + go s# i@(I# i#) marr# ((W8# x):xs) = + case writeWord8Array# marr# i# x s# of + s2# -> go s2# (i + 1) marr# xs + +-- Generics + +data Product2 a b = Product2 a b + deriving (Eq, Generic) + +instance (Arbitrary a, Arbitrary b) => Arbitrary (Product2 a b) where + arbitrary = Product2 `liftM` arbitrary `ap` arbitrary + +instance (Hashable a, Hashable b) => Hashable (Product2 a b) + +data Product3 a b c = Product3 a b c + deriving (Eq, Generic) + +instance (Arbitrary a, Arbitrary b, Arbitrary c) => + Arbitrary (Product3 a b c) where + arbitrary = Product3 `liftM` arbitrary `ap` arbitrary `ap` arbitrary + +instance (Hashable a, Hashable b, Hashable c) => Hashable (Product3 a b c) + +-- Hashes of all product types of the same shapes should be the same. + +pProduct2 :: Int -> String -> Bool +pProduct2 x y = hash (x, y) == hash (Product2 x y) + +pProduct3 :: Double -> Maybe Bool -> (Int, String) -> Bool +pProduct3 x y z = hash (x, y, z) == hash (Product3 x y z) + +data Sum2 a b = S2a a | S2b b + deriving (Eq, Ord, Show, Generic) + +instance (Hashable a, Hashable b) => Hashable (Sum2 a b) + +data Sum3 a b c = S3a a | S3b b | S3c c + deriving (Eq, Ord, Show, Generic) + +instance (Arbitrary a, Arbitrary b, Arbitrary c) => Arbitrary (Sum3 a b c) where + arbitrary = oneof + [ fmap S3a arbitrary + , fmap S3b arbitrary + , fmap S3c arbitrary + ] + +instance (Hashable a, Hashable b, Hashable c) => Hashable (Sum3 a b c) + +-- Hashes of the same parameter, but with different sum constructors, +-- should differ. (They might legitimately collide, but that's +-- vanishingly unlikely.) + +pSum2_differ :: Int -> Bool +pSum2_differ x = nub hs == hs + where hs = [ hash (S2a x :: Sum2 Int Int) + , hash (S2b x :: Sum2 Int Int) ] + +pSum3_differ :: Int -> Bool +pSum3_differ x = nub hs == hs + where hs = [ hash (S3a x :: Sum3 Int Int Int) + , hash (S3b x :: Sum3 Int Int Int) + , hash (S3c x :: Sum3 Int Int Int) ] + +pGeneric :: Sum3 Int Bool String -> Int -> Bool +pGeneric x salt = hashWithSalt salt x == genericHashWithSalt salt x + +instance (Arbitrary a, Hashable a) => Arbitrary (Hashed a) where + arbitrary = fmap hashed arbitrary + shrink xs = map hashed $ shrink $ unhashed xs + +pLiftedHashed :: Int -> Hashed (Either Int String) -> Bool +pLiftedHashed s h = hashWithSalt s h == hashWithSalt1 s h + +properties :: [TestTree] +properties = + [ testProperty "bernstein" pHash + , testGroup "text" + [ testProperty "text/strict" pText + , testProperty "text/lazy" pTextLazy + , testProperty "text/rechunk" pTextRechunk + , testProperty "text/rechunked" pTextLazyRechunked + , testProperty "text/rechunked-salt" pTextLazyRechunked' + ] + , testGroup "bytestring" + [ testProperty "bytestring/strict" pBS + , testProperty "bytestring/lazy" pBSLazy + , testProperty "bytestring/short" pBSShort + , testProperty "bytestring/rechunk" pBSRechunk + , testProperty "bytestring/rechunked" pBSLazyRechunked + , testProperty "bytestring/rechunked-salt" pBSLazyRechunked' + ] + , testGroup "generics" + [ + -- Note: "product2" and "product3" have been temporarily + -- disabled until we have added a 'hash' method to the GHashable + -- class. Until then (a,b) hashes to a different value than (a + -- :*: b). While this is not incorrect, it would be nicer if + -- they didn't. testProperty "product2" pProduct2 , testProperty + -- "product3" pProduct3 + testProperty "sum2_differ" pSum2_differ + , testProperty "sum3_differ" pSum3_differ + , testProperty "genericHashWithSalt" pGeneric + ] + , testGroup "lifted law" + [ testProperty "Hashed" pLiftedHashed + ] + ] + +------------------------------------------------------------------------ +-- Utilities + +fromStrict :: B.ByteString -> BL.ByteString +fromStrict = BL.fromStrict + +------------------------------------------------------------------------ +-- test that instances exist + +instanceExists :: Hashable a => a -> () +instanceExists _ = () + +#if MIN_VERSION_filepath(1,4,100) && !(MIN_VERSION_filepath(1,5,0)) +_fp1, _fp2, _fp3 :: () +_fp1 = instanceExists (undefined :: FP.OsString) +_fp2 = instanceExists (undefined :: FP.WindowsString) +_fp3 = instanceExists (undefined :: FP.PosixString) +#endif + +#ifdef MIN_VERSION_os_string +_os1, _os2, _os3 :: () +_os1 = instanceExists (undefined :: OS.OsString) +_os2 = instanceExists (undefined :: OS.WindowsString) +_os3 = instanceExists (undefined :: OS.PosixString) +#endif diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress.hs new file mode 100644 index 0000000..19834f8 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress.hs @@ -0,0 +1,128 @@ +{-# LANGUAGE CPP #-} +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE OverloadedStrings #-} + +module Regress (regressions) where + +import Test.Tasty (TestTree, testGroup) +import Control.Monad (when) +import Test.Tasty.HUnit (testCase, Assertion, assertFailure, (@?=)) +import Test.Tasty.QuickCheck (testProperty) +import GHC.Generics (Generic) +import Data.List (nub) +import Data.Fixed (Pico) +import Data.Text (Text) +import Data.ByteString (ByteString) + +import qualified Data.Text.Lazy as TL +import qualified Data.ByteString.Char8 as BS8 +import qualified Data.ByteString.Lazy as BSL +import qualified Data.ByteString.Lazy.Char8 as BSL8 + +#ifdef HAVE_MMAP +import qualified Regress.Mmap as Mmap +#endif + +import Data.Hashable + +#include "MachDeps.h" + +assertInequal :: Eq a => String -> a -> a -> Assertion +assertInequal msg x y + | x == y = assertFailure msg + | otherwise = return () + +regressions :: [TestTree] +regressions = [] ++ +#ifdef HAVE_MMAP + Mmap.regressions ++ + [ testCase "Fixed" $ do + (hash (1 :: Pico) == hash (2 :: Pico)) @?= False + ] ++ +#endif + [ testGroup "Generic: sum of nullary constructors" + [ testCase "0" $ nullaryCase 0 S0 + , testCase "1" $ nullaryCase 1 S1 + , testCase "2" $ nullaryCase 2 S2 + , testCase "3" $ nullaryCase 3 S3 + , testCase "4" $ nullaryCase 4 S4 + ] + + , testCase "Zero tuples: issue 271" $ do + assertInequal "Hash of (0,0) != 0" (hash (0 :: Int, 0 :: Int)) 0 + assertInequal "Hash of (0,0,0) != 0" (hash (0 :: Int, 0 :: Int, 0 :: Int)) 0 + + , testProperty "odd, odd: issue 271" $ \x' y' -> + let x = if odd x' then x' else x' + 1 :: Int + y = if odd y' then y' else y' + 1 :: Int + in hash (x, y) /= hash (negate x, negate y) + + , testCase "Generic: Peano https://github.com/tibbe/hashable/issues/135" $ do + let ns = take 20 $ iterate S Z + let hs = map hash ns + hs @?= nub hs +#if WORD_SIZE_IN_BITS == 64 + , testCase "64 bit Text" $ do + let expected = +#if MIN_VERSION_text(2,0,0) + -3150353794653054837 +#else + 660667291861873677 +#endif + hash ("hello world" :: Text) @?= expected +#endif + , testGroup "concatenation" + [ testCase "String" $ do + let lhs, rhs :: (String, String) + lhs = ("foo", "bar") + rhs = ("foobar", "") + + when (hash lhs == hash rhs) $ do + assertFailure "Should have different hashes" + + , testCase "Text" $ do + let lhs, rhs :: (Text, Text) + lhs = ("foo", "bar") + rhs = ("foobar", "") + + when (hash lhs == hash rhs) $ do + assertFailure "Should have different hashes" + + , testCase "Lazy Text" $ do + let lhs, rhs :: (TL.Text, TL.Text) + lhs = ("foo", "bar") + rhs = ("foobar", "") + + when (hash lhs == hash rhs) $ do + assertFailure "Should have different hashes" + + , testCase "ByteString" $ do + let lhs, rhs :: (ByteString, ByteString) + lhs = (BS8.pack "foo", BS8.pack "bar") + rhs = (BS8.pack "foobar", BS8.empty) + + when (hash lhs == hash rhs) $ do + assertFailure "Should have different hashes" + + , testCase "Lazy ByteString" $ do + let lhs, rhs :: (BSL.ByteString, BSL.ByteString) + lhs = (BSL8.pack "foo", BSL8.pack "bar") + rhs = (BSL8.pack "foobar", BSL.empty) + + when (hash lhs == hash rhs) $ do + assertFailure "Should have different hashes" + ] + ] + where + nullaryCase :: Int -> SumOfNullary -> IO () + nullaryCase n s = do + let salt = 42 + let expected = salt `hashWithSalt` n `hashWithSalt` () + let actual = hashWithSalt salt s + actual @?= expected + +data SumOfNullary = S0 | S1 | S2 | S3 | S4 deriving (Eq, Generic) +instance Hashable SumOfNullary + +data Nat = Z | S Nat deriving (Eq, Generic) +instance Hashable Nat diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress/Mmap.hsc b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress/Mmap.hsc new file mode 100644 index 0000000..861f5a0 --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress/Mmap.hsc @@ -0,0 +1,73 @@ +{-# LANGUAGE CApiFFI #-} + +module Regress.Mmap (regressions) where + +#include + +import Control.Exception (bracket, evaluate) +import Control.Monad (forM_) +import Data.Bits ((.|.)) +import Data.ByteString.Internal (ByteString(..)) +import Data.Hashable (hash) +import Foreign.C.Error (throwErrnoIf, throwErrnoIfMinus1, throwErrnoIfMinus1_) +import Foreign.C.Types (CInt(..), CSize(..)) +import Foreign.Ptr (Ptr, intPtrToPtr, nullPtr, plusPtr) +import GHC.ForeignPtr (newForeignPtr_) +import System.Posix.Types (COff(..)) +import Test.Tasty (TestTree) +import Test.Tasty.HUnit (testCase) +import qualified Data.ByteString as B + +withMapping :: (Ptr a -> Int -> IO ()) -> IO () +withMapping go = do + pageSize <- fromIntegral `fmap` getPageSize + let mappingSize = pageSize * 2 + bracket (mmap + nullPtr + mappingSize + ((#const PROT_READ) .|. (#const PROT_WRITE)) + ((#const MAP_ANON) .|. (#const MAP_PRIVATE)) + (-1) + 0) + (flip munmap mappingSize) $ \mappingPtr -> do + go mappingPtr (fromIntegral pageSize) + mprotect (mappingPtr `plusPtr` fromIntegral pageSize) + pageSize (#const PROT_NONE) + +hashNearPageBoundary :: IO () +hashNearPageBoundary = + withMapping $ \ptr pageSize -> do + let initialSize = 16 + fp <- newForeignPtr_ (ptr `plusPtr` (pageSize - initialSize)) + let bs0 = PS fp 0 initialSize + forM_ (B.tails bs0) $ \bs -> do + evaluate (hash bs) + +regressions :: [TestTree] +regressions = [ + testCase "hashNearPageBoundary" hashNearPageBoundary + ] + +mmap :: Ptr a -> CSize -> CInt -> CInt -> CInt -> COff -> IO (Ptr a) +mmap addr len prot flags fd offset = + throwErrnoIf (== intPtrToPtr (#const MAP_FAILED)) "mmap" $ + c_mmap addr len prot flags fd offset + +munmap :: Ptr a -> CSize -> IO CInt +munmap addr len = throwErrnoIfMinus1 "munmap" $ c_munmap addr len + +mprotect :: Ptr a -> CSize -> CInt -> IO () +mprotect addr len prot = + throwErrnoIfMinus1_ "mprotect" $ c_mprotect addr len prot + +foreign import capi unsafe "sys/mman.h mmap" + c_mmap :: Ptr a -> CSize -> CInt -> CInt -> CInt -> COff -> IO (Ptr a) + +foreign import capi unsafe "sys/mman.h munmap" + c_munmap :: Ptr a -> CSize -> IO CInt + +foreign import capi unsafe "sys/mman.h mprotect" + c_mprotect :: Ptr a -> CSize -> CInt -> IO CInt + +foreign import capi unsafe "unistd.h getpagesize" + getPageSize :: IO CInt diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/xxhash-tests.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/xxhash-tests.hs new file mode 100644 index 0000000..3dd6dfb --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/xxhash-tests.hs @@ -0,0 +1,63 @@ +{-# LANGUAGE NumericUnderscores #-} +module Main (main) where + +import Control.Monad.ST (runST) +import qualified Data.ByteString as BS +import qualified Data.Primitive as P +import Data.Word (Word32, Word64) +import Test.Tasty (defaultMain, testGroup) +import Test.Tasty.HUnit (testCase, (@=?)) +import Test.Tasty.QuickCheck (testProperty, (===)) + +import Data.Hashable.XXH3 + +main :: IO () +main = defaultMain $ testGroup "xxhash" + [ testGroup "oneshot" + [ testProperty "w64-ref" $ \w salt -> + xxh3_64bit_withSeed_w64 w salt === xxh3_64bit_withSeed_w64_ref w salt + , testCase "w64-examples" $ do + xxh3_64bit_withSeed_w64 0 0 @=? 0xc77b_3abb_6f87_acd9 + xxh3_64bit_withSeed_w64 0x12 1 @=? 0xbba4_8522_c425_46b2 + xxh3_64bit_withSeed_w64 0x2100_0000_0000_0000 0 @=? 0xb7cb_e42a_e127_8055 + xxh3_64bit_withSeed_w64 0x1eb6e9 0 @=? 0x8e_adc3_1b56 + + , testProperty "w32-ref" $ \w salt -> + xxh3_64bit_withSeed_w32 w salt === xxh3_64bit_withSeed_w32_ref w salt + + , testCase "w32-examples" $ do + xxh3_64bit_withSeed_w32 0 0 @=? 0x48b2_c926_16fc_193d + xxh3_64bit_withSeed_w32 0x12 1 @=? 0x2870_1df3_2a21_6ad3 + + ] + + , testGroup "incremental" + [ testProperty "empty" $ \seed -> do + let expected = xxh3_64bit_withSeed_bs BS.empty seed + let actual = runST $ do + s <- xxh3_64bit_createState + xxh3_64bit_reset_withSeed s seed + xxh3_64bit_digest s + + actual === expected + + , testProperty "bs" $ \w8s seed -> do + let bs = BS.pack w8s + let expected = xxh3_64bit_withSeed_bs bs seed + let actual = runST $ do + s <- xxh3_64bit_createState + xxh3_64bit_reset_withSeed s seed + xxh3_64bit_update_bs s bs + xxh3_64bit_digest s + + actual === expected + ] + ] + +xxh3_64bit_withSeed_w64_ref :: Word64 -> Word64 -> Word64 +xxh3_64bit_withSeed_w64_ref w salt = case P.primArrayFromList [w] of + P.PrimArray ba -> xxh3_64bit_withSeed_ba (P.ByteArray ba) 0 8 salt + +xxh3_64bit_withSeed_w32_ref :: Word32 -> Word64 -> Word64 +xxh3_64bit_withSeed_w32_ref w salt = case P.primArrayFromList [w] of + P.PrimArray ba -> xxh3_64bit_withSeed_ba (P.ByteArray ba) 0 4 salt diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/xxHash-0.8.2/xxhash.h b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/xxHash-0.8.2/xxhash.h new file mode 100644 index 0000000..682aedf --- /dev/null +++ b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/xxHash-0.8.2/xxhash.h @@ -0,0 +1,3780 @@ +/* + * xxHash - Extremely Fast Hash algorithm + * Header File + * Copyright (C) 2012-2021 Yann Collet + * + * BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * You can contact the author at: + * - xxHash homepage: https://www.xxhash.com + * - xxHash source repository: https://github.com/Cyan4973/xxHash + */ + +/*! + * @mainpage xxHash + * + * xxHash is an extremely fast non-cryptographic hash algorithm, working at RAM speed + * limits. + * + * It is proposed in four flavors, in three families: + * 1. @ref XXH32_family + * - Classic 32-bit hash function. Simple, compact, and runs on almost all + * 32-bit and 64-bit systems. + * 2. @ref XXH64_family + * - Classic 64-bit adaptation of XXH32. Just as simple, and runs well on most + * 64-bit systems (but _not_ 32-bit systems). + * 3. @ref XXH3_family + * - Modern 64-bit and 128-bit hash function family which features improved + * strength and performance across the board, especially on smaller data. + * It benefits greatly from SIMD and 64-bit without requiring it. + * + * Benchmarks + * --- + * The reference system uses an Intel i7-9700K CPU, and runs Ubuntu x64 20.04. + * The open source benchmark program is compiled with clang v10.0 using -O3 flag. + * + * | Hash Name | ISA ext | Width | Large Data Speed | Small Data Velocity | + * | -------------------- | ------- | ----: | ---------------: | ------------------: | + * | XXH3_64bits() | @b AVX2 | 64 | 59.4 GB/s | 133.1 | + * | MeowHash | AES-NI | 128 | 58.2 GB/s | 52.5 | + * | XXH3_128bits() | @b AVX2 | 128 | 57.9 GB/s | 118.1 | + * | CLHash | PCLMUL | 64 | 37.1 GB/s | 58.1 | + * | XXH3_64bits() | @b SSE2 | 64 | 31.5 GB/s | 133.1 | + * | XXH3_128bits() | @b SSE2 | 128 | 29.6 GB/s | 118.1 | + * | RAM sequential read | | N/A | 28.0 GB/s | N/A | + * | ahash | AES-NI | 64 | 22.5 GB/s | 107.2 | + * | City64 | | 64 | 22.0 GB/s | 76.6 | + * | T1ha2 | | 64 | 22.0 GB/s | 99.0 | + * | City128 | | 128 | 21.7 GB/s | 57.7 | + * | FarmHash | AES-NI | 64 | 21.3 GB/s | 71.9 | + * | XXH64() | | 64 | 19.4 GB/s | 71.0 | + * | SpookyHash | | 64 | 19.3 GB/s | 53.2 | + * | Mum | | 64 | 18.0 GB/s | 67.0 | + * | CRC32C | SSE4.2 | 32 | 13.0 GB/s | 57.9 | + * | XXH32() | | 32 | 9.7 GB/s | 71.9 | + * | City32 | | 32 | 9.1 GB/s | 66.0 | + * | Blake3* | @b AVX2 | 256 | 4.4 GB/s | 8.1 | + * | Murmur3 | | 32 | 3.9 GB/s | 56.1 | + * | SipHash* | | 64 | 3.0 GB/s | 43.2 | + * | Blake3* | @b SSE2 | 256 | 2.4 GB/s | 8.1 | + * | HighwayHash | | 64 | 1.4 GB/s | 6.0 | + * | FNV64 | | 64 | 1.2 GB/s | 62.7 | + * | Blake2* | | 256 | 1.1 GB/s | 5.1 | + * | SHA1* | | 160 | 0.8 GB/s | 5.6 | + * | MD5* | | 128 | 0.6 GB/s | 7.8 | + * @note + * - Hashes which require a specific ISA extension are noted. SSE2 is also noted, + * even though it is mandatory on x64. + * - Hashes with an asterisk are cryptographic. Note that MD5 is non-cryptographic + * by modern standards. + * - Small data velocity is a rough average of algorithm's efficiency for small + * data. For more accurate information, see the wiki. + * - More benchmarks and strength tests are found on the wiki: + * https://github.com/Cyan4973/xxHash/wiki + * + * Usage + * ------ + * All xxHash variants use a similar API. Changing the algorithm is a trivial + * substitution. + * + * @pre + * For functions which take an input and length parameter, the following + * requirements are assumed: + * - The range from [`input`, `input + length`) is valid, readable memory. + * - The only exception is if the `length` is `0`, `input` may be `NULL`. + * - For C++, the objects must have the *TriviallyCopyable* property, as the + * functions access bytes directly as if it was an array of `unsigned char`. + * + * @anchor single_shot_example + * **Single Shot** + * + * These functions are stateless functions which hash a contiguous block of memory, + * immediately returning the result. They are the easiest and usually the fastest + * option. + * + * XXH32(), XXH64(), XXH3_64bits(), XXH3_128bits() + * + * @code{.c} + * #include + * #include "xxhash.h" + * + * // Example for a function which hashes a null terminated string with XXH32(). + * XXH32_hash_t hash_string(const char* string, XXH32_hash_t seed) + * { + * // NULL pointers are only valid if the length is zero + * size_t length = (string == NULL) ? 0 : strlen(string); + * return XXH32(string, length, seed); + * } + * @endcode + * + * @anchor streaming_example + * **Streaming** + * + * These groups of functions allow incremental hashing of unknown size, even + * more than what would fit in a size_t. + * + * XXH32_reset(), XXH64_reset(), XXH3_64bits_reset(), XXH3_128bits_reset() + * + * @code{.c} + * #include + * #include + * #include "xxhash.h" + * // Example for a function which hashes a FILE incrementally with XXH3_64bits(). + * XXH64_hash_t hashFile(FILE* f) + * { + * // Allocate a state struct. Do not just use malloc() or new. + * XXH3_state_t* state = XXH3_createState(); + * assert(state != NULL && "Out of memory!"); + * // Reset the state to start a new hashing session. + * XXH3_64bits_reset(state); + * char buffer[4096]; + * size_t count; + * // Read the file in chunks + * while ((count = fread(buffer, 1, sizeof(buffer), f)) != 0) { + * // Run update() as many times as necessary to process the data + * XXH3_64bits_update(state, buffer, count); + * } + * // Retrieve the finalized hash. This will not change the state. + * XXH64_hash_t result = XXH3_64bits_digest(state); + * // Free the state. Do not use free(). + * XXH3_freeState(state); + * return result; + * } + * @endcode + * + * @file xxhash.h + * xxHash prototypes and implementation + */ + +#if defined (__cplusplus) +extern "C" { +#endif + +/* **************************** + * INLINE mode + ******************************/ +/*! + * @defgroup public Public API + * Contains details on the public xxHash functions. + * @{ + */ +#ifdef XXH_DOXYGEN +/*! + * @brief Gives access to internal state declaration, required for static allocation. + * + * Incompatible with dynamic linking, due to risks of ABI changes. + * + * Usage: + * @code{.c} + * #define XXH_STATIC_LINKING_ONLY + * #include "xxhash.h" + * @endcode + */ +# define XXH_STATIC_LINKING_ONLY +/* Do not undef XXH_STATIC_LINKING_ONLY for Doxygen */ + +/*! + * @brief Gives access to internal definitions. + * + * Usage: + * @code{.c} + * #define XXH_STATIC_LINKING_ONLY + * #define XXH_IMPLEMENTATION + * #include "xxhash.h" + * @endcode + */ +# define XXH_IMPLEMENTATION +/* Do not undef XXH_IMPLEMENTATION for Doxygen */ + +/*! + * @brief Exposes the implementation and marks all functions as `inline`. + * + * Use these build macros to inline xxhash into the target unit. + * Inlining improves performance on small inputs, especially when the length is + * expressed as a compile-time constant: + * + * https://fastcompression.blogspot.com/2018/03/xxhash-for-small-keys-impressive-power.html + * + * It also keeps xxHash symbols private to the unit, so they are not exported. + * + * Usage: + * @code{.c} + * #define XXH_INLINE_ALL + * #include "xxhash.h" + * @endcode + * Do not compile and link xxhash.o as a separate object, as it is not useful. + */ +# define XXH_INLINE_ALL +# undef XXH_INLINE_ALL +/*! + * @brief Exposes the implementation without marking functions as inline. + */ +# define XXH_PRIVATE_API +# undef XXH_PRIVATE_API +/*! + * @brief Emulate a namespace by transparently prefixing all symbols. + * + * If you want to include _and expose_ xxHash functions from within your own + * library, but also want to avoid symbol collisions with other libraries which + * may also include xxHash, you can use @ref XXH_NAMESPACE to automatically prefix + * any public symbol from xxhash library with the value of @ref XXH_NAMESPACE + * (therefore, avoid empty or numeric values). + * + * Note that no change is required within the calling program as long as it + * includes `xxhash.h`: Regular symbol names will be automatically translated + * by this header. + */ +# define XXH_NAMESPACE /* YOUR NAME HERE */ +# undef XXH_NAMESPACE +#endif + +#if (defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API)) \ + && !defined(XXH_INLINE_ALL_31684351384) + /* this section should be traversed only once */ +# define XXH_INLINE_ALL_31684351384 + /* give access to the advanced API, required to compile implementations */ +# undef XXH_STATIC_LINKING_ONLY /* avoid macro redef */ +# define XXH_STATIC_LINKING_ONLY + /* make all functions private */ +# undef XXH_PUBLIC_API +# if defined(__GNUC__) +# define XXH_PUBLIC_API static __inline __attribute__((unused)) +# elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define XXH_PUBLIC_API static inline +# elif defined(_MSC_VER) +# define XXH_PUBLIC_API static __inline +# else + /* note: this version may generate warnings for unused static functions */ +# define XXH_PUBLIC_API static +# endif + + /* + * This part deals with the special case where a unit wants to inline xxHash, + * but "xxhash.h" has previously been included without XXH_INLINE_ALL, + * such as part of some previously included *.h header file. + * Without further action, the new include would just be ignored, + * and functions would effectively _not_ be inlined (silent failure). + * The following macros solve this situation by prefixing all inlined names, + * avoiding naming collision with previous inclusions. + */ + /* Before that, we unconditionally #undef all symbols, + * in case they were already defined with XXH_NAMESPACE. + * They will then be redefined for XXH_INLINE_ALL + */ +# undef XXH_versionNumber + /* XXH32 */ +# undef XXH32 +# undef XXH32_createState +# undef XXH32_freeState +# undef XXH32_reset +# undef XXH32_update +# undef XXH32_digest +# undef XXH32_copyState +# undef XXH32_canonicalFromHash +# undef XXH32_hashFromCanonical + /* XXH64 */ +# undef XXH64 +# undef XXH64_createState +# undef XXH64_freeState +# undef XXH64_reset +# undef XXH64_update +# undef XXH64_digest +# undef XXH64_copyState +# undef XXH64_canonicalFromHash +# undef XXH64_hashFromCanonical + /* XXH3_64bits */ +# undef XXH3_64bits +# undef XXH3_64bits_withSecret +# undef XXH3_64bits_withSeed +# undef XXH3_64bits_withSecretandSeed +# undef XXH3_createState +# undef XXH3_freeState +# undef XXH3_copyState +# undef XXH3_64bits_reset +# undef XXH3_64bits_reset_withSeed +# undef XXH3_64bits_reset_withSecret +# undef XXH3_64bits_update +# undef XXH3_64bits_digest +# undef XXH3_generateSecret + /* XXH3_128bits */ +# undef XXH128 +# undef XXH3_128bits +# undef XXH3_128bits_withSeed +# undef XXH3_128bits_withSecret +# undef XXH3_128bits_reset +# undef XXH3_128bits_reset_withSeed +# undef XXH3_128bits_reset_withSecret +# undef XXH3_128bits_reset_withSecretandSeed +# undef XXH3_128bits_update +# undef XXH3_128bits_digest +# undef XXH128_isEqual +# undef XXH128_cmp +# undef XXH128_canonicalFromHash +# undef XXH128_hashFromCanonical + /* Finally, free the namespace itself */ +# undef XXH_NAMESPACE + + /* employ the namespace for XXH_INLINE_ALL */ +# define XXH_NAMESPACE XXH_INLINE_ + /* + * Some identifiers (enums, type names) are not symbols, + * but they must nonetheless be renamed to avoid redeclaration. + * Alternative solution: do not redeclare them. + * However, this requires some #ifdefs, and has a more dispersed impact. + * Meanwhile, renaming can be achieved in a single place. + */ +# define XXH_IPREF(Id) XXH_NAMESPACE ## Id +# define XXH_OK XXH_IPREF(XXH_OK) +# define XXH_ERROR XXH_IPREF(XXH_ERROR) +# define XXH_errorcode XXH_IPREF(XXH_errorcode) +# define XXH32_canonical_t XXH_IPREF(XXH32_canonical_t) +# define XXH64_canonical_t XXH_IPREF(XXH64_canonical_t) +# define XXH128_canonical_t XXH_IPREF(XXH128_canonical_t) +# define XXH32_state_s XXH_IPREF(XXH32_state_s) +# define XXH32_state_t XXH_IPREF(XXH32_state_t) +# define XXH64_state_s XXH_IPREF(XXH64_state_s) +# define XXH64_state_t XXH_IPREF(XXH64_state_t) +# define XXH3_state_s XXH_IPREF(XXH3_state_s) +# define XXH3_state_t XXH_IPREF(XXH3_state_t) +# define XXH128_hash_t XXH_IPREF(XXH128_hash_t) + /* Ensure the header is parsed again, even if it was previously included */ +# undef XXHASH_H_5627135585666179 +# undef XXHASH_H_STATIC_13879238742 +#endif /* XXH_INLINE_ALL || XXH_PRIVATE_API */ + +/* **************************************************************** + * Stable API + *****************************************************************/ +#ifndef XXHASH_H_5627135585666179 +#define XXHASH_H_5627135585666179 1 + +/*! @brief Marks a global symbol. */ +#if !defined(XXH_INLINE_ALL) && !defined(XXH_PRIVATE_API) +# if defined(WIN32) && defined(_MSC_VER) && (defined(XXH_IMPORT) || defined(XXH_EXPORT)) +# ifdef XXH_EXPORT +# define XXH_PUBLIC_API __declspec(dllexport) +# elif XXH_IMPORT +# define XXH_PUBLIC_API __declspec(dllimport) +# endif +# else +# define XXH_PUBLIC_API /* do nothing */ +# endif +#endif + +#ifdef XXH_NAMESPACE +# define XXH_CAT(A,B) A##B +# define XXH_NAME2(A,B) XXH_CAT(A,B) +# define XXH_versionNumber XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber) +/* XXH32 */ +# define XXH32 XXH_NAME2(XXH_NAMESPACE, XXH32) +# define XXH32_createState XXH_NAME2(XXH_NAMESPACE, XXH32_createState) +# define XXH32_freeState XXH_NAME2(XXH_NAMESPACE, XXH32_freeState) +# define XXH32_reset XXH_NAME2(XXH_NAMESPACE, XXH32_reset) +# define XXH32_update XXH_NAME2(XXH_NAMESPACE, XXH32_update) +# define XXH32_digest XXH_NAME2(XXH_NAMESPACE, XXH32_digest) +# define XXH32_copyState XXH_NAME2(XXH_NAMESPACE, XXH32_copyState) +# define XXH32_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash) +# define XXH32_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical) +/* XXH64 */ +# define XXH64 XXH_NAME2(XXH_NAMESPACE, XXH64) +# define XXH64_createState XXH_NAME2(XXH_NAMESPACE, XXH64_createState) +# define XXH64_freeState XXH_NAME2(XXH_NAMESPACE, XXH64_freeState) +# define XXH64_reset XXH_NAME2(XXH_NAMESPACE, XXH64_reset) +# define XXH64_update XXH_NAME2(XXH_NAMESPACE, XXH64_update) +# define XXH64_digest XXH_NAME2(XXH_NAMESPACE, XXH64_digest) +# define XXH64_copyState XXH_NAME2(XXH_NAMESPACE, XXH64_copyState) +# define XXH64_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash) +# define XXH64_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical) +/* XXH3_64bits */ +# define XXH3_64bits XXH_NAME2(XXH_NAMESPACE, XXH3_64bits) +# define XXH3_64bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecret) +# define XXH3_64bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSeed) +# define XXH3_64bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecretandSeed) +# define XXH3_createState XXH_NAME2(XXH_NAMESPACE, XXH3_createState) +# define XXH3_freeState XXH_NAME2(XXH_NAMESPACE, XXH3_freeState) +# define XXH3_copyState XXH_NAME2(XXH_NAMESPACE, XXH3_copyState) +# define XXH3_64bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset) +# define XXH3_64bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSeed) +# define XXH3_64bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret) +# define XXH3_64bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecretandSeed) +# define XXH3_64bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_update) +# define XXH3_64bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_digest) +# define XXH3_generateSecret XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret) +# define XXH3_generateSecret_fromSeed XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret_fromSeed) +/* XXH3_128bits */ +# define XXH128 XXH_NAME2(XXH_NAMESPACE, XXH128) +# define XXH3_128bits XXH_NAME2(XXH_NAMESPACE, XXH3_128bits) +# define XXH3_128bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSeed) +# define XXH3_128bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecret) +# define XXH3_128bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecretandSeed) +# define XXH3_128bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset) +# define XXH3_128bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSeed) +# define XXH3_128bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecret) +# define XXH3_128bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecretandSeed) +# define XXH3_128bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_update) +# define XXH3_128bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_digest) +# define XXH128_isEqual XXH_NAME2(XXH_NAMESPACE, XXH128_isEqual) +# define XXH128_cmp XXH_NAME2(XXH_NAMESPACE, XXH128_cmp) +# define XXH128_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH128_canonicalFromHash) +# define XXH128_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH128_hashFromCanonical) +#endif + + +/* ************************************* +* Compiler specifics +***************************************/ + +/* specific declaration modes for Windows */ +#if !defined(XXH_INLINE_ALL) && !defined(XXH_PRIVATE_API) +# if defined(WIN32) && defined(_MSC_VER) && (defined(XXH_IMPORT) || defined(XXH_EXPORT)) +# ifdef XXH_EXPORT +# define XXH_PUBLIC_API __declspec(dllexport) +# elif XXH_IMPORT +# define XXH_PUBLIC_API __declspec(dllimport) +# endif +# else +# define XXH_PUBLIC_API /* do nothing */ +# endif +#endif + +#if defined (__GNUC__) +# define XXH_CONSTF __attribute__((const)) +# define XXH_PUREF __attribute__((pure)) +# define XXH_MALLOCF __attribute__((malloc)) +#else +# define XXH_CONSTF /* disable */ +# define XXH_PUREF +# define XXH_MALLOCF +#endif + +/* ************************************* +* Version +***************************************/ +#define XXH_VERSION_MAJOR 0 +#define XXH_VERSION_MINOR 8 +#define XXH_VERSION_RELEASE 2 +/*! @brief Version number, encoded as two digits each */ +#define XXH_VERSION_NUMBER (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE) + +/*! + * @brief Obtains the xxHash version. + * + * This is mostly useful when xxHash is compiled as a shared library, + * since the returned value comes from the library, as opposed to header file. + * + * @return @ref XXH_VERSION_NUMBER of the invoked library. + */ +XXH_PUBLIC_API XXH_CONSTF unsigned XXH_versionNumber (void); + + +/* **************************** +* Common basic types +******************************/ +#include /* size_t */ +/*! + * @brief Exit code for the streaming API. + */ +typedef enum { + XXH_OK = 0, /*!< OK */ + XXH_ERROR /*!< Error */ +} XXH_errorcode; + + +/*-********************************************************************** +* 32-bit hash +************************************************************************/ +#if defined(XXH_DOXYGEN) /* Don't show include */ +/*! + * @brief An unsigned 32-bit integer. + * + * Not necessarily defined to `uint32_t` but functionally equivalent. + */ +typedef uint32_t XXH32_hash_t; + +#elif !defined (__VMS) \ + && (defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +# include + typedef uint32_t XXH32_hash_t; + +#else +# include +# if UINT_MAX == 0xFFFFFFFFUL + typedef unsigned int XXH32_hash_t; +# elif ULONG_MAX == 0xFFFFFFFFUL + typedef unsigned long XXH32_hash_t; +# else +# error "unsupported platform: need a 32-bit type" +# endif +#endif + +/*! + * @} + * + * @defgroup XXH32_family XXH32 family + * @ingroup public + * Contains functions used in the classic 32-bit xxHash algorithm. + * + * @note + * XXH32 is useful for older platforms, with no or poor 64-bit performance. + * Note that the @ref XXH3_family provides competitive speed for both 32-bit + * and 64-bit systems, and offers true 64/128 bit hash results. + * + * @see @ref XXH64_family, @ref XXH3_family : Other xxHash families + * @see @ref XXH32_impl for implementation details + * @{ + */ + +/*! + * @brief Calculates the 32-bit hash of @p input using xxHash32. + * + * Speed on Core 2 Duo @ 3 GHz (single thread, SMHasher benchmark): 5.4 GB/s + * + * See @ref single_shot_example "Single Shot Example" for an example. + * + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * @param seed The 32-bit seed to alter the hash's output predictably. + * + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return The calculated 32-bit hash value. + * + * @see + * XXH64(), XXH3_64bits_withSeed(), XXH3_128bits_withSeed(), XXH128(): + * Direct equivalents for the other variants of xxHash. + * @see + * XXH32_createState(), XXH32_update(), XXH32_digest(): Streaming version. + */ +XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32 (const void* input, size_t length, XXH32_hash_t seed); + +#ifndef XXH_NO_STREAM +/*! + * Streaming functions generate the xxHash value from an incremental input. + * This method is slower than single-call functions, due to state management. + * For small inputs, prefer `XXH32()` and `XXH64()`, which are better optimized. + * + * An XXH state must first be allocated using `XXH*_createState()`. + * + * Start a new hash by initializing the state with a seed using `XXH*_reset()`. + * + * Then, feed the hash state by calling `XXH*_update()` as many times as necessary. + * + * The function returns an error code, with 0 meaning OK, and any other value + * meaning there is an error. + * + * Finally, a hash value can be produced anytime, by using `XXH*_digest()`. + * This function returns the nn-bits hash as an int or long long. + * + * It's still possible to continue inserting input into the hash state after a + * digest, and generate new hash values later on by invoking `XXH*_digest()`. + * + * When done, release the state using `XXH*_freeState()`. + * + * @see streaming_example at the top of @ref xxhash.h for an example. + */ + +/*! + * @typedef struct XXH32_state_s XXH32_state_t + * @brief The opaque state struct for the XXH32 streaming API. + * + * @see XXH32_state_s for details. + */ +typedef struct XXH32_state_s XXH32_state_t; + +/*! + * @brief Allocates an @ref XXH32_state_t. + * + * Must be freed with XXH32_freeState(). + * @return An allocated XXH32_state_t on success, `NULL` on failure. + */ +XXH_PUBLIC_API XXH_MALLOCF XXH32_state_t* XXH32_createState(void); +/*! + * @brief Frees an @ref XXH32_state_t. + * + * Must be allocated with XXH32_createState(). + * @param statePtr A pointer to an @ref XXH32_state_t allocated with @ref XXH32_createState(). + * @return XXH_OK. + */ +XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr); +/*! + * @brief Copies one @ref XXH32_state_t to another. + * + * @param dst_state The state to copy to. + * @param src_state The state to copy from. + * @pre + * @p dst_state and @p src_state must not be `NULL` and must not overlap. + */ +XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dst_state, const XXH32_state_t* src_state); + +/*! + * @brief Resets an @ref XXH32_state_t to begin a new hash. + * + * This function resets and seeds a state. Call it before @ref XXH32_update(). + * + * @param statePtr The state struct to reset. + * @param seed The 32-bit seed to alter the hash result predictably. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + */ +XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t* statePtr, XXH32_hash_t seed); + +/*! + * @brief Consumes a block of @p input to an @ref XXH32_state_t. + * + * Call this to incrementally consume blocks of data. + * + * @param statePtr The state struct to update. + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + */ +XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* statePtr, const void* input, size_t length); + +/*! + * @brief Returns the calculated hash value from an @ref XXH32_state_t. + * + * @note + * Calling XXH32_digest() will not affect @p statePtr, so you can update, + * digest, and update again. + * + * @param statePtr The state struct to calculate the hash from. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return The calculated xxHash32 value from that state. + */ +XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32_digest (const XXH32_state_t* statePtr); +#endif /* !XXH_NO_STREAM */ + +/******* Canonical representation *******/ + +/* + * The default return values from XXH functions are unsigned 32 and 64 bit + * integers. + * This the simplest and fastest format for further post-processing. + * + * However, this leaves open the question of what is the order on the byte level, + * since little and big endian conventions will store the same number differently. + * + * The canonical representation settles this issue by mandating big-endian + * convention, the same convention as human-readable numbers (large digits first). + * + * When writing hash values to storage, sending them over a network, or printing + * them, it's highly recommended to use the canonical representation to ensure + * portability across a wider range of systems, present and future. + * + * The following functions allow transformation of hash values to and from + * canonical format. + */ + +/*! + * @brief Canonical (big endian) representation of @ref XXH32_hash_t. + */ +typedef struct { + unsigned char digest[4]; /*!< Hash bytes, big endian */ +} XXH32_canonical_t; + +/*! + * @brief Converts an @ref XXH32_hash_t to a big endian @ref XXH32_canonical_t. + * + * @param dst The @ref XXH32_canonical_t pointer to be stored to. + * @param hash The @ref XXH32_hash_t to be converted. + * + * @pre + * @p dst must not be `NULL`. + */ +XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash); + +/*! + * @brief Converts an @ref XXH32_canonical_t to a native @ref XXH32_hash_t. + * + * @param src The @ref XXH32_canonical_t to convert. + * + * @pre + * @p src must not be `NULL`. + * + * @return The converted hash. + */ +XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src); + + +/*! @cond Doxygen ignores this part */ +#ifdef __has_attribute +# define XXH_HAS_ATTRIBUTE(x) __has_attribute(x) +#else +# define XXH_HAS_ATTRIBUTE(x) 0 +#endif +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +/* + * C23 __STDC_VERSION__ number hasn't been specified yet. For now + * leave as `201711L` (C17 + 1). + * TODO: Update to correct value when its been specified. + */ +#define XXH_C23_VN 201711L +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +/* C-language Attributes are added in C23. */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= XXH_C23_VN) && defined(__has_c_attribute) +# define XXH_HAS_C_ATTRIBUTE(x) __has_c_attribute(x) +#else +# define XXH_HAS_C_ATTRIBUTE(x) 0 +#endif +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +#if defined(__cplusplus) && defined(__has_cpp_attribute) +# define XXH_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) +#else +# define XXH_HAS_CPP_ATTRIBUTE(x) 0 +#endif +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +/* + * Define XXH_FALLTHROUGH macro for annotating switch case with the 'fallthrough' attribute + * introduced in CPP17 and C23. + * CPP17 : https://en.cppreference.com/w/cpp/language/attributes/fallthrough + * C23 : https://en.cppreference.com/w/c/language/attributes/fallthrough + */ +#if XXH_HAS_C_ATTRIBUTE(fallthrough) || XXH_HAS_CPP_ATTRIBUTE(fallthrough) +# define XXH_FALLTHROUGH [[fallthrough]] +#elif XXH_HAS_ATTRIBUTE(__fallthrough__) +# define XXH_FALLTHROUGH __attribute__ ((__fallthrough__)) +#else +# define XXH_FALLTHROUGH /* fallthrough */ +#endif +/*! @endcond */ + +/*! @cond Doxygen ignores this part */ +/* + * Define XXH_NOESCAPE for annotated pointers in public API. + * https://clang.llvm.org/docs/AttributeReference.html#noescape + * As of writing this, only supported by clang. + */ +#if XXH_HAS_ATTRIBUTE(noescape) +# define XXH_NOESCAPE __attribute__((noescape)) +#else +# define XXH_NOESCAPE +#endif +/*! @endcond */ + + +/*! + * @} + * @ingroup public + * @{ + */ + +#ifndef XXH_NO_LONG_LONG +/*-********************************************************************** +* 64-bit hash +************************************************************************/ +#if defined(XXH_DOXYGEN) /* don't include */ +/*! + * @brief An unsigned 64-bit integer. + * + * Not necessarily defined to `uint64_t` but functionally equivalent. + */ +typedef uint64_t XXH64_hash_t; +#elif !defined (__VMS) \ + && (defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +# include + typedef uint64_t XXH64_hash_t; +#else +# include +# if defined(__LP64__) && ULONG_MAX == 0xFFFFFFFFFFFFFFFFULL + /* LP64 ABI says uint64_t is unsigned long */ + typedef unsigned long XXH64_hash_t; +# else + /* the following type must have a width of 64-bit */ + typedef unsigned long long XXH64_hash_t; +# endif +#endif + +/*! + * @} + * + * @defgroup XXH64_family XXH64 family + * @ingroup public + * @{ + * Contains functions used in the classic 64-bit xxHash algorithm. + * + * @note + * XXH3 provides competitive speed for both 32-bit and 64-bit systems, + * and offers true 64/128 bit hash results. + * It provides better speed for systems with vector processing capabilities. + */ + +/*! + * @brief Calculates the 64-bit hash of @p input using xxHash64. + * + * This function usually runs faster on 64-bit systems, but slower on 32-bit + * systems (see benchmark). + * + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * @param seed The 64-bit seed to alter the hash's output predictably. + * + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return The calculated 64-bit hash. + * + * @see + * XXH32(), XXH3_64bits_withSeed(), XXH3_128bits_withSeed(), XXH128(): + * Direct equivalents for the other variants of xxHash. + * @see + * XXH64_createState(), XXH64_update(), XXH64_digest(): Streaming version. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t seed); + +/******* Streaming *******/ +#ifndef XXH_NO_STREAM +/*! + * @brief The opaque state struct for the XXH64 streaming API. + * + * @see XXH64_state_s for details. + */ +typedef struct XXH64_state_s XXH64_state_t; /* incomplete type */ + +/*! + * @brief Allocates an @ref XXH64_state_t. + * + * Must be freed with XXH64_freeState(). + * @return An allocated XXH64_state_t on success, `NULL` on failure. + */ +XXH_PUBLIC_API XXH_MALLOCF XXH64_state_t* XXH64_createState(void); + +/*! + * @brief Frees an @ref XXH64_state_t. + * + * Must be allocated with XXH64_createState(). + * @param statePtr A pointer to an @ref XXH64_state_t allocated with @ref XXH64_createState(). + * @return XXH_OK. + */ +XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr); + +/*! + * @brief Copies one @ref XXH64_state_t to another. + * + * @param dst_state The state to copy to. + * @param src_state The state to copy from. + * @pre + * @p dst_state and @p src_state must not be `NULL` and must not overlap. + */ +XXH_PUBLIC_API void XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dst_state, const XXH64_state_t* src_state); + +/*! + * @brief Resets an @ref XXH64_state_t to begin a new hash. + * + * This function resets and seeds a state. Call it before @ref XXH64_update(). + * + * @param statePtr The state struct to reset. + * @param seed The 64-bit seed to alter the hash result predictably. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + */ +XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH_NOESCAPE XXH64_state_t* statePtr, XXH64_hash_t seed); + +/*! + * @brief Consumes a block of @p input to an @ref XXH64_state_t. + * + * Call this to incrementally consume blocks of data. + * + * @param statePtr The state struct to update. + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + */ +XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH_NOESCAPE XXH64_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); + +/*! + * @brief Returns the calculated hash value from an @ref XXH64_state_t. + * + * @note + * Calling XXH64_digest() will not affect @p statePtr, so you can update, + * digest, and update again. + * + * @param statePtr The state struct to calculate the hash from. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return The calculated xxHash64 value from that state. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64_digest (XXH_NOESCAPE const XXH64_state_t* statePtr); +#endif /* !XXH_NO_STREAM */ +/******* Canonical representation *******/ + +/*! + * @brief Canonical (big endian) representation of @ref XXH64_hash_t. + */ +typedef struct { unsigned char digest[sizeof(XXH64_hash_t)]; } XXH64_canonical_t; + +/*! + * @brief Converts an @ref XXH64_hash_t to a big endian @ref XXH64_canonical_t. + * + * @param dst The @ref XXH64_canonical_t pointer to be stored to. + * @param hash The @ref XXH64_hash_t to be converted. + * + * @pre + * @p dst must not be `NULL`. + */ +XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical_t* dst, XXH64_hash_t hash); + +/*! + * @brief Converts an @ref XXH64_canonical_t to a native @ref XXH64_hash_t. + * + * @param src The @ref XXH64_canonical_t to convert. + * + * @pre + * @p src must not be `NULL`. + * + * @return The converted hash. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE const XXH64_canonical_t* src); + +#ifndef XXH_NO_XXH3 + +/*! + * @} + * ************************************************************************ + * @defgroup XXH3_family XXH3 family + * @ingroup public + * @{ + * + * XXH3 is a more recent hash algorithm featuring: + * - Improved speed for both small and large inputs + * - True 64-bit and 128-bit outputs + * - SIMD acceleration + * - Improved 32-bit viability + * + * Speed analysis methodology is explained here: + * + * https://fastcompression.blogspot.com/2019/03/presenting-xxh3.html + * + * Compared to XXH64, expect XXH3 to run approximately + * ~2x faster on large inputs and >3x faster on small ones, + * exact differences vary depending on platform. + * + * XXH3's speed benefits greatly from SIMD and 64-bit arithmetic, + * but does not require it. + * Most 32-bit and 64-bit targets that can run XXH32 smoothly can run XXH3 + * at competitive speeds, even without vector support. Further details are + * explained in the implementation. + * + * XXH3 has a fast scalar implementation, but it also includes accelerated SIMD + * implementations for many common platforms: + * - AVX512 + * - AVX2 + * - SSE2 + * - ARM NEON + * - WebAssembly SIMD128 + * - POWER8 VSX + * - s390x ZVector + * This can be controlled via the @ref XXH_VECTOR macro, but it automatically + * selects the best version according to predefined macros. For the x86 family, an + * automatic runtime dispatcher is included separately in @ref xxh_x86dispatch.c. + * + * XXH3 implementation is portable: + * it has a generic C90 formulation that can be compiled on any platform, + * all implementations generate exactly the same hash value on all platforms. + * Starting from v0.8.0, it's also labelled "stable", meaning that + * any future version will also generate the same hash value. + * + * XXH3 offers 2 variants, _64bits and _128bits. + * + * When only 64 bits are needed, prefer invoking the _64bits variant, as it + * reduces the amount of mixing, resulting in faster speed on small inputs. + * It's also generally simpler to manipulate a scalar return type than a struct. + * + * The API supports one-shot hashing, streaming mode, and custom secrets. + */ +/*-********************************************************************** +* XXH3 64-bit variant +************************************************************************/ + +/*! + * @brief 64-bit unseeded variant of XXH3. + * + * This is equivalent to @ref XXH3_64bits_withSeed() with a seed of 0, however + * it may have slightly better performance due to constant propagation of the + * defaults. + * + * @see + * XXH32(), XXH64(), XXH3_128bits(): equivalent for the other xxHash algorithms + * @see + * XXH3_64bits_withSeed(), XXH3_64bits_withSecret(): other seeding variants + * @see + * XXH3_64bits_reset(), XXH3_64bits_update(), XXH3_64bits_digest(): Streaming version. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits(XXH_NOESCAPE const void* input, size_t length); + +/*! + * @brief 64-bit seeded variant of XXH3 + * + * This variant generates a custom secret on the fly based on default secret + * altered using the `seed` value. + * + * While this operation is decently fast, note that it's not completely free. + * + * @note + * seed == 0 produces the same results as @ref XXH3_64bits(). + * + * @param input The data to hash + * @param length The length + * @param seed The 64-bit seed to alter the state. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_withSeed(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t seed); + +/*! + * The bare minimum size for a custom secret. + * + * @see + * XXH3_64bits_withSecret(), XXH3_64bits_reset_withSecret(), + * XXH3_128bits_withSecret(), XXH3_128bits_reset_withSecret(). + */ +#define XXH3_SECRET_SIZE_MIN 136 + +/*! + * @brief 64-bit variant of XXH3 with a custom "secret". + * + * It's possible to provide any blob of bytes as a "secret" to generate the hash. + * This makes it more difficult for an external actor to prepare an intentional collision. + * The main condition is that secretSize *must* be large enough (>= XXH3_SECRET_SIZE_MIN). + * However, the quality of the secret impacts the dispersion of the hash algorithm. + * Therefore, the secret _must_ look like a bunch of random bytes. + * Avoid "trivial" or structured data such as repeated sequences or a text document. + * Whenever in doubt about the "randomness" of the blob of bytes, + * consider employing "XXH3_generateSecret()" instead (see below). + * It will generate a proper high entropy secret derived from the blob of bytes. + * Another advantage of using XXH3_generateSecret() is that + * it guarantees that all bits within the initial blob of bytes + * will impact every bit of the output. + * This is not necessarily the case when using the blob of bytes directly + * because, when hashing _small_ inputs, only a portion of the secret is employed. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_withSecret(XXH_NOESCAPE const void* data, size_t len, XXH_NOESCAPE const void* secret, size_t secretSize); + + +/******* Streaming *******/ +#ifndef XXH_NO_STREAM +/* + * Streaming requires state maintenance. + * This operation costs memory and CPU. + * As a consequence, streaming is slower than one-shot hashing. + * For better performance, prefer one-shot functions whenever applicable. + */ + +/*! + * @brief The state struct for the XXH3 streaming API. + * + * @see XXH3_state_s for details. + */ +typedef struct XXH3_state_s XXH3_state_t; +XXH_PUBLIC_API XXH_MALLOCF XXH3_state_t* XXH3_createState(void); +XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr); + +/*! + * @brief Copies one @ref XXH3_state_t to another. + * + * @param dst_state The state to copy to. + * @param src_state The state to copy from. + * @pre + * @p dst_state and @p src_state must not be `NULL` and must not overlap. + */ +XXH_PUBLIC_API void XXH3_copyState(XXH_NOESCAPE XXH3_state_t* dst_state, XXH_NOESCAPE const XXH3_state_t* src_state); + +/*! + * @brief Resets an @ref XXH3_state_t to begin a new hash. + * + * This function resets `statePtr` and generate a secret with default parameters. Call it before @ref XXH3_64bits_update(). + * Digest will be equivalent to `XXH3_64bits()`. + * + * @param statePtr The state struct to reset. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + * + */ +XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr); + +/*! + * @brief Resets an @ref XXH3_state_t with 64-bit seed to begin a new hash. + * + * This function resets `statePtr` and generate a secret from `seed`. Call it before @ref XXH3_64bits_update(). + * Digest will be equivalent to `XXH3_64bits_withSeed()`. + * + * @param statePtr The state struct to reset. + * @param seed The 64-bit seed to alter the state. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + * + */ +XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t seed); + +/*! + * XXH3_64bits_reset_withSecret(): + * `secret` is referenced, it _must outlive_ the hash streaming session. + * Similar to one-shot API, `secretSize` must be >= `XXH3_SECRET_SIZE_MIN`, + * and the quality of produced hash values depends on secret's entropy + * (secret's content should look like a bunch of random bytes). + * When in doubt about the randomness of a candidate `secret`, + * consider employing `XXH3_generateSecret()` instead (see below). + */ +XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize); + +/*! + * @brief Consumes a block of @p input to an @ref XXH3_state_t. + * + * Call this to incrementally consume blocks of data. + * + * @param statePtr The state struct to update. + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + */ +XXH_PUBLIC_API XXH_errorcode XXH3_64bits_update (XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); + +/*! + * @brief Returns the calculated XXH3 64-bit hash value from an @ref XXH3_state_t. + * + * @note + * Calling XXH3_64bits_digest() will not affect @p statePtr, so you can update, + * digest, and update again. + * + * @param statePtr The state struct to calculate the hash from. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return The calculated XXH3 64-bit hash value from that state. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_digest (XXH_NOESCAPE const XXH3_state_t* statePtr); +#endif /* !XXH_NO_STREAM */ + +/* note : canonical representation of XXH3 is the same as XXH64 + * since they both produce XXH64_hash_t values */ + + +/*-********************************************************************** +* XXH3 128-bit variant +************************************************************************/ + +/*! + * @brief The return value from 128-bit hashes. + * + * Stored in little endian order, although the fields themselves are in native + * endianness. + */ +typedef struct { + XXH64_hash_t low64; /*!< `value & 0xFFFFFFFFFFFFFFFF` */ + XXH64_hash_t high64; /*!< `value >> 64` */ +} XXH128_hash_t; + +/*! + * @brief Unseeded 128-bit variant of XXH3 + * + * The 128-bit variant of XXH3 has more strength, but it has a bit of overhead + * for shorter inputs. + * + * This is equivalent to @ref XXH3_128bits_withSeed() with a seed of 0, however + * it may have slightly better performance due to constant propagation of the + * defaults. + * + * @see + * XXH32(), XXH64(), XXH3_64bits(): equivalent for the other xxHash algorithms + * @see + * XXH3_128bits_withSeed(), XXH3_128bits_withSecret(): other seeding variants + * @see + * XXH3_128bits_reset(), XXH3_128bits_update(), XXH3_128bits_digest(): Streaming version. + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits(XXH_NOESCAPE const void* data, size_t len); +/*! @brief Seeded 128-bit variant of XXH3. @see XXH3_64bits_withSeed(). */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_withSeed(XXH_NOESCAPE const void* data, size_t len, XXH64_hash_t seed); +/*! @brief Custom secret 128-bit variant of XXH3. @see XXH3_64bits_withSecret(). */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_withSecret(XXH_NOESCAPE const void* data, size_t len, XXH_NOESCAPE const void* secret, size_t secretSize); + +/******* Streaming *******/ +#ifndef XXH_NO_STREAM +/* + * Streaming requires state maintenance. + * This operation costs memory and CPU. + * As a consequence, streaming is slower than one-shot hashing. + * For better performance, prefer one-shot functions whenever applicable. + * + * XXH3_128bits uses the same XXH3_state_t as XXH3_64bits(). + * Use already declared XXH3_createState() and XXH3_freeState(). + * + * All reset and streaming functions have same meaning as their 64-bit counterpart. + */ + +/*! + * @brief Resets an @ref XXH3_state_t to begin a new hash. + * + * This function resets `statePtr` and generate a secret with default parameters. Call it before @ref XXH3_128bits_update(). + * Digest will be equivalent to `XXH3_128bits()`. + * + * @param statePtr The state struct to reset. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + * + */ +XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr); + +/*! + * @brief Resets an @ref XXH3_state_t with 64-bit seed to begin a new hash. + * + * This function resets `statePtr` and generate a secret from `seed`. Call it before @ref XXH3_128bits_update(). + * Digest will be equivalent to `XXH3_128bits_withSeed()`. + * + * @param statePtr The state struct to reset. + * @param seed The 64-bit seed to alter the state. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + * + */ +XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t seed); +/*! @brief Custom secret 128-bit variant of XXH3. @see XXH_64bits_reset_withSecret(). */ +XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize); + +/*! + * @brief Consumes a block of @p input to an @ref XXH3_state_t. + * + * Call this to incrementally consume blocks of data. + * + * @param statePtr The state struct to update. + * @param input The block of data to be hashed, at least @p length bytes in size. + * @param length The length of @p input, in bytes. + * + * @pre + * @p statePtr must not be `NULL`. + * @pre + * The memory between @p input and @p input + @p length must be valid, + * readable, contiguous memory. However, if @p length is `0`, @p input may be + * `NULL`. In C++, this also must be *TriviallyCopyable*. + * + * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. + */ +XXH_PUBLIC_API XXH_errorcode XXH3_128bits_update (XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); + +/*! + * @brief Returns the calculated XXH3 128-bit hash value from an @ref XXH3_state_t. + * + * @note + * Calling XXH3_128bits_digest() will not affect @p statePtr, so you can update, + * digest, and update again. + * + * @param statePtr The state struct to calculate the hash from. + * + * @pre + * @p statePtr must not be `NULL`. + * + * @return The calculated XXH3 128-bit hash value from that state. + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_digest (XXH_NOESCAPE const XXH3_state_t* statePtr); +#endif /* !XXH_NO_STREAM */ + +/* Following helper functions make it possible to compare XXH128_hast_t values. + * Since XXH128_hash_t is a structure, this capability is not offered by the language. + * Note: For better performance, these functions can be inlined using XXH_INLINE_ALL */ + +/*! + * XXH128_isEqual(): + * Return: 1 if `h1` and `h2` are equal, 0 if they are not. + */ +XXH_PUBLIC_API XXH_PUREF int XXH128_isEqual(XXH128_hash_t h1, XXH128_hash_t h2); + +/*! + * @brief Compares two @ref XXH128_hash_t + * This comparator is compatible with stdlib's `qsort()`/`bsearch()`. + * + * @return: >0 if *h128_1 > *h128_2 + * =0 if *h128_1 == *h128_2 + * <0 if *h128_1 < *h128_2 + */ +XXH_PUBLIC_API XXH_PUREF int XXH128_cmp(XXH_NOESCAPE const void* h128_1, XXH_NOESCAPE const void* h128_2); + + +/******* Canonical representation *******/ +typedef struct { unsigned char digest[sizeof(XXH128_hash_t)]; } XXH128_canonical_t; + + +/*! + * @brief Converts an @ref XXH128_hash_t to a big endian @ref XXH128_canonical_t. + * + * @param dst The @ref XXH128_canonical_t pointer to be stored to. + * @param hash The @ref XXH128_hash_t to be converted. + * + * @pre + * @p dst must not be `NULL`. + */ +XXH_PUBLIC_API void XXH128_canonicalFromHash(XXH_NOESCAPE XXH128_canonical_t* dst, XXH128_hash_t hash); + +/*! + * @brief Converts an @ref XXH128_canonical_t to a native @ref XXH128_hash_t. + * + * @param src The @ref XXH128_canonical_t to convert. + * + * @pre + * @p src must not be `NULL`. + * + * @return The converted hash. + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH128_hashFromCanonical(XXH_NOESCAPE const XXH128_canonical_t* src); + + +#endif /* !XXH_NO_XXH3 */ +#endif /* XXH_NO_LONG_LONG */ + +/*! + * @} + */ +#endif /* XXHASH_H_5627135585666179 */ + + + +#if defined(XXH_STATIC_LINKING_ONLY) && !defined(XXHASH_H_STATIC_13879238742) +#define XXHASH_H_STATIC_13879238742 +/* **************************************************************************** + * This section contains declarations which are not guaranteed to remain stable. + * They may change in future versions, becoming incompatible with a different + * version of the library. + * These declarations should only be used with static linking. + * Never use them in association with dynamic linking! + ***************************************************************************** */ + +/* + * These definitions are only present to allow static allocation + * of XXH states, on stack or in a struct, for example. + * Never **ever** access their members directly. + */ + +/*! + * @internal + * @brief Structure for XXH32 streaming API. + * + * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, + * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. Otherwise it is + * an opaque type. This allows fields to safely be changed. + * + * Typedef'd to @ref XXH32_state_t. + * Do not access the members of this struct directly. + * @see XXH64_state_s, XXH3_state_s + */ +struct XXH32_state_s { + XXH32_hash_t total_len_32; /*!< Total length hashed, modulo 2^32 */ + XXH32_hash_t large_len; /*!< Whether the hash is >= 16 (handles @ref total_len_32 overflow) */ + XXH32_hash_t v[4]; /*!< Accumulator lanes */ + XXH32_hash_t mem32[4]; /*!< Internal buffer for partial reads. Treated as unsigned char[16]. */ + XXH32_hash_t memsize; /*!< Amount of data in @ref mem32 */ + XXH32_hash_t reserved; /*!< Reserved field. Do not read nor write to it. */ +}; /* typedef'd to XXH32_state_t */ + + +#ifndef XXH_NO_LONG_LONG /* defined when there is no 64-bit support */ + +/*! + * @internal + * @brief Structure for XXH64 streaming API. + * + * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, + * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. Otherwise it is + * an opaque type. This allows fields to safely be changed. + * + * Typedef'd to @ref XXH64_state_t. + * Do not access the members of this struct directly. + * @see XXH32_state_s, XXH3_state_s + */ +struct XXH64_state_s { + XXH64_hash_t total_len; /*!< Total length hashed. This is always 64-bit. */ + XXH64_hash_t v[4]; /*!< Accumulator lanes */ + XXH64_hash_t mem64[4]; /*!< Internal buffer for partial reads. Treated as unsigned char[32]. */ + XXH32_hash_t memsize; /*!< Amount of data in @ref mem64 */ + XXH32_hash_t reserved32; /*!< Reserved field, needed for padding anyways*/ + XXH64_hash_t reserved64; /*!< Reserved field. Do not read or write to it. */ +}; /* typedef'd to XXH64_state_t */ + +#ifndef XXH_NO_XXH3 + +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* >= C11 */ +# include +# define XXH_ALIGN(n) alignas(n) +#elif defined(__cplusplus) && (__cplusplus >= 201103L) /* >= C++11 */ +/* In C++ alignas() is a keyword */ +# define XXH_ALIGN(n) alignas(n) +#elif defined(__GNUC__) +# define XXH_ALIGN(n) __attribute__ ((aligned(n))) +#elif defined(_MSC_VER) +# define XXH_ALIGN(n) __declspec(align(n)) +#else +# define XXH_ALIGN(n) /* disabled */ +#endif + +/* Old GCC versions only accept the attribute after the type in structures. */ +#if !(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) /* C11+ */ \ + && ! (defined(__cplusplus) && (__cplusplus >= 201103L)) /* >= C++11 */ \ + && defined(__GNUC__) +# define XXH_ALIGN_MEMBER(align, type) type XXH_ALIGN(align) +#else +# define XXH_ALIGN_MEMBER(align, type) XXH_ALIGN(align) type +#endif + +/*! + * @brief The size of the internal XXH3 buffer. + * + * This is the optimal update size for incremental hashing. + * + * @see XXH3_64b_update(), XXH3_128b_update(). + */ +#define XXH3_INTERNALBUFFER_SIZE 256 + +/*! + * @internal + * @brief Default size of the secret buffer (and @ref XXH3_kSecret). + * + * This is the size used in @ref XXH3_kSecret and the seeded functions. + * + * Not to be confused with @ref XXH3_SECRET_SIZE_MIN. + */ +#define XXH3_SECRET_DEFAULT_SIZE 192 + +/*! + * @internal + * @brief Structure for XXH3 streaming API. + * + * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, + * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. + * Otherwise it is an opaque type. + * Never use this definition in combination with dynamic library. + * This allows fields to safely be changed in the future. + * + * @note ** This structure has a strict alignment requirement of 64 bytes!! ** + * Do not allocate this with `malloc()` or `new`, + * it will not be sufficiently aligned. + * Use @ref XXH3_createState() and @ref XXH3_freeState(), or stack allocation. + * + * Typedef'd to @ref XXH3_state_t. + * Do never access the members of this struct directly. + * + * @see XXH3_INITSTATE() for stack initialization. + * @see XXH3_createState(), XXH3_freeState(). + * @see XXH32_state_s, XXH64_state_s + */ +struct XXH3_state_s { + XXH_ALIGN_MEMBER(64, XXH64_hash_t acc[8]); + /*!< The 8 accumulators. See @ref XXH32_state_s::v and @ref XXH64_state_s::v */ + XXH_ALIGN_MEMBER(64, unsigned char customSecret[XXH3_SECRET_DEFAULT_SIZE]); + /*!< Used to store a custom secret generated from a seed. */ + XXH_ALIGN_MEMBER(64, unsigned char buffer[XXH3_INTERNALBUFFER_SIZE]); + /*!< The internal buffer. @see XXH32_state_s::mem32 */ + XXH32_hash_t bufferedSize; + /*!< The amount of memory in @ref buffer, @see XXH32_state_s::memsize */ + XXH32_hash_t useSeed; + /*!< Reserved field. Needed for padding on 64-bit. */ + size_t nbStripesSoFar; + /*!< Number or stripes processed. */ + XXH64_hash_t totalLen; + /*!< Total length hashed. 64-bit even on 32-bit targets. */ + size_t nbStripesPerBlock; + /*!< Number of stripes per block. */ + size_t secretLimit; + /*!< Size of @ref customSecret or @ref extSecret */ + XXH64_hash_t seed; + /*!< Seed for _withSeed variants. Must be zero otherwise, @see XXH3_INITSTATE() */ + XXH64_hash_t reserved64; + /*!< Reserved field. */ + const unsigned char* extSecret; + /*!< Reference to an external secret for the _withSecret variants, NULL + * for other variants. */ + /* note: there may be some padding at the end due to alignment on 64 bytes */ +}; /* typedef'd to XXH3_state_t */ + +#undef XXH_ALIGN_MEMBER + +/*! + * @brief Initializes a stack-allocated `XXH3_state_s`. + * + * When the @ref XXH3_state_t structure is merely emplaced on stack, + * it should be initialized with XXH3_INITSTATE() or a memset() + * in case its first reset uses XXH3_NNbits_reset_withSeed(). + * This init can be omitted if the first reset uses default or _withSecret mode. + * This operation isn't necessary when the state is created with XXH3_createState(). + * Note that this doesn't prepare the state for a streaming operation, + * it's still necessary to use XXH3_NNbits_reset*() afterwards. + */ +#define XXH3_INITSTATE(XXH3_state_ptr) \ + do { \ + XXH3_state_t* tmp_xxh3_state_ptr = (XXH3_state_ptr); \ + tmp_xxh3_state_ptr->seed = 0; \ + tmp_xxh3_state_ptr->extSecret = NULL; \ + } while(0) + + +/*! + * simple alias to pre-selected XXH3_128bits variant + */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH128(XXH_NOESCAPE const void* data, size_t len, XXH64_hash_t seed); + + +/* === Experimental API === */ +/* Symbols defined below must be considered tied to a specific library version. */ + +/*! + * XXH3_generateSecret(): + * + * Derive a high-entropy secret from any user-defined content, named customSeed. + * The generated secret can be used in combination with `*_withSecret()` functions. + * The `_withSecret()` variants are useful to provide a higher level of protection + * than 64-bit seed, as it becomes much more difficult for an external actor to + * guess how to impact the calculation logic. + * + * The function accepts as input a custom seed of any length and any content, + * and derives from it a high-entropy secret of length @p secretSize into an + * already allocated buffer @p secretBuffer. + * + * The generated secret can then be used with any `*_withSecret()` variant. + * The functions @ref XXH3_128bits_withSecret(), @ref XXH3_64bits_withSecret(), + * @ref XXH3_128bits_reset_withSecret() and @ref XXH3_64bits_reset_withSecret() + * are part of this list. They all accept a `secret` parameter + * which must be large enough for implementation reasons (>= @ref XXH3_SECRET_SIZE_MIN) + * _and_ feature very high entropy (consist of random-looking bytes). + * These conditions can be a high bar to meet, so @ref XXH3_generateSecret() can + * be employed to ensure proper quality. + * + * @p customSeed can be anything. It can have any size, even small ones, + * and its content can be anything, even "poor entropy" sources such as a bunch + * of zeroes. The resulting `secret` will nonetheless provide all required qualities. + * + * @pre + * - @p secretSize must be >= @ref XXH3_SECRET_SIZE_MIN + * - When @p customSeedSize > 0, supplying NULL as customSeed is undefined behavior. + * + * Example code: + * @code{.c} + * #include + * #include + * #include + * #define XXH_STATIC_LINKING_ONLY // expose unstable API + * #include "xxhash.h" + * // Hashes argv[2] using the entropy from argv[1]. + * int main(int argc, char* argv[]) + * { + * char secret[XXH3_SECRET_SIZE_MIN]; + * if (argv != 3) { return 1; } + * XXH3_generateSecret(secret, sizeof(secret), argv[1], strlen(argv[1])); + * XXH64_hash_t h = XXH3_64bits_withSecret( + * argv[2], strlen(argv[2]), + * secret, sizeof(secret) + * ); + * printf("%016llx\n", (unsigned long long) h); + * } + * @endcode + */ +XXH_PUBLIC_API XXH_errorcode XXH3_generateSecret(XXH_NOESCAPE void* secretBuffer, size_t secretSize, XXH_NOESCAPE const void* customSeed, size_t customSeedSize); + +/*! + * @brief Generate the same secret as the _withSeed() variants. + * + * The generated secret can be used in combination with + *`*_withSecret()` and `_withSecretandSeed()` variants. + * + * Example C++ `std::string` hash class: + * @code{.cpp} + * #include + * #define XXH_STATIC_LINKING_ONLY // expose unstable API + * #include "xxhash.h" + * // Slow, seeds each time + * class HashSlow { + * XXH64_hash_t seed; + * public: + * HashSlow(XXH64_hash_t s) : seed{s} {} + * size_t operator()(const std::string& x) const { + * return size_t{XXH3_64bits_withSeed(x.c_str(), x.length(), seed)}; + * } + * }; + * // Fast, caches the seeded secret for future uses. + * class HashFast { + * unsigned char secret[XXH3_SECRET_SIZE_MIN]; + * public: + * HashFast(XXH64_hash_t s) { + * XXH3_generateSecret_fromSeed(secret, seed); + * } + * size_t operator()(const std::string& x) const { + * return size_t{ + * XXH3_64bits_withSecret(x.c_str(), x.length(), secret, sizeof(secret)) + * }; + * } + * }; + * @endcode + * @param secretBuffer A writable buffer of @ref XXH3_SECRET_SIZE_MIN bytes + * @param seed The seed to seed the state. + */ +XXH_PUBLIC_API void XXH3_generateSecret_fromSeed(XXH_NOESCAPE void* secretBuffer, XXH64_hash_t seed); + +/*! + * These variants generate hash values using either + * @p seed for "short" keys (< XXH3_MIDSIZE_MAX = 240 bytes) + * or @p secret for "large" keys (>= XXH3_MIDSIZE_MAX). + * + * This generally benefits speed, compared to `_withSeed()` or `_withSecret()`. + * `_withSeed()` has to generate the secret on the fly for "large" keys. + * It's fast, but can be perceptible for "not so large" keys (< 1 KB). + * `_withSecret()` has to generate the masks on the fly for "small" keys, + * which requires more instructions than _withSeed() variants. + * Therefore, _withSecretandSeed variant combines the best of both worlds. + * + * When @p secret has been generated by XXH3_generateSecret_fromSeed(), + * this variant produces *exactly* the same results as `_withSeed()` variant, + * hence offering only a pure speed benefit on "large" input, + * by skipping the need to regenerate the secret for every large input. + * + * Another usage scenario is to hash the secret to a 64-bit hash value, + * for example with XXH3_64bits(), which then becomes the seed, + * and then employ both the seed and the secret in _withSecretandSeed(). + * On top of speed, an added benefit is that each bit in the secret + * has a 50% chance to swap each bit in the output, via its impact to the seed. + * + * This is not guaranteed when using the secret directly in "small data" scenarios, + * because only portions of the secret are employed for small data. + */ +XXH_PUBLIC_API XXH_PUREF XXH64_hash_t +XXH3_64bits_withSecretandSeed(XXH_NOESCAPE const void* data, size_t len, + XXH_NOESCAPE const void* secret, size_t secretSize, + XXH64_hash_t seed); +/*! @copydoc XXH3_64bits_withSecretandSeed() */ +XXH_PUBLIC_API XXH_PUREF XXH128_hash_t +XXH3_128bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t length, + XXH_NOESCAPE const void* secret, size_t secretSize, + XXH64_hash_t seed64); +#ifndef XXH_NO_STREAM +/*! @copydoc XXH3_64bits_withSecretandSeed() */ +XXH_PUBLIC_API XXH_errorcode +XXH3_64bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, + XXH_NOESCAPE const void* secret, size_t secretSize, + XXH64_hash_t seed64); +/*! @copydoc XXH3_64bits_withSecretandSeed() */ +XXH_PUBLIC_API XXH_errorcode +XXH3_128bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, + XXH_NOESCAPE const void* secret, size_t secretSize, + XXH64_hash_t seed64); +#endif /* !XXH_NO_STREAM */ + +#endif /* !XXH_NO_XXH3 */ +#endif /* XXH_NO_LONG_LONG */ +#if defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API) +# define XXH_IMPLEMENTATION +#endif + +#endif /* defined(XXH_STATIC_LINKING_ONLY) && !defined(XXHASH_H_STATIC_13879238742) */ + + +/* ======================================================================== */ +/* ======================================================================== */ +/* ======================================================================== */ + + +/*-********************************************************************** + * xxHash implementation + *-********************************************************************** + * xxHash's implementation used to be hosted inside xxhash.c. + * + * However, inlining requires implementation to be visible to the compiler, + * hence be included alongside the header. + * Previously, implementation was hosted inside xxhash.c, + * which was then #included when inlining was activated. + * This construction created issues with a few build and install systems, + * as it required xxhash.c to be stored in /include directory. + * + * xxHash implementation is now directly integrated within xxhash.h. + * As a consequence, xxhash.c is no longer needed in /include. + * + * xxhash.c is still available and is still useful. + * In a "normal" setup, when xxhash is not inlined, + * xxhash.h only exposes the prototypes and public symbols, + * while xxhash.c can be built into an object file xxhash.o + * which can then be linked into the final binary. + ************************************************************************/ + +#if ( defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API) \ + || defined(XXH_IMPLEMENTATION) ) && !defined(XXH_IMPLEM_13a8737387) +# define XXH_IMPLEM_13a8737387 + +/* ************************************* +* Tuning parameters +***************************************/ + +/*! + * @defgroup tuning Tuning parameters + * @{ + * + * Various macros to control xxHash's behavior. + */ +#ifdef XXH_DOXYGEN +/*! + * @brief Define this to disable 64-bit code. + * + * Useful if only using the @ref XXH32_family and you have a strict C90 compiler. + */ +# define XXH_NO_LONG_LONG +# undef XXH_NO_LONG_LONG /* don't actually */ +/*! + * @brief Controls how unaligned memory is accessed. + * + * By default, access to unaligned memory is controlled by `memcpy()`, which is + * safe and portable. + * + * Unfortunately, on some target/compiler combinations, the generated assembly + * is sub-optimal. + * + * The below switch allow selection of a different access method + * in the search for improved performance. + * + * @par Possible options: + * + * - `XXH_FORCE_MEMORY_ACCESS=0` (default): `memcpy` + * @par + * Use `memcpy()`. Safe and portable. Note that most modern compilers will + * eliminate the function call and treat it as an unaligned access. + * + * - `XXH_FORCE_MEMORY_ACCESS=1`: `__attribute__((aligned(1)))` + * @par + * Depends on compiler extensions and is therefore not portable. + * This method is safe _if_ your compiler supports it, + * and *generally* as fast or faster than `memcpy`. + * + * - `XXH_FORCE_MEMORY_ACCESS=2`: Direct cast + * @par + * Casts directly and dereferences. This method doesn't depend on the + * compiler, but it violates the C standard as it directly dereferences an + * unaligned pointer. It can generate buggy code on targets which do not + * support unaligned memory accesses, but in some circumstances, it's the + * only known way to get the most performance. + * + * - `XXH_FORCE_MEMORY_ACCESS=3`: Byteshift + * @par + * Also portable. This can generate the best code on old compilers which don't + * inline small `memcpy()` calls, and it might also be faster on big-endian + * systems which lack a native byteswap instruction. However, some compilers + * will emit literal byteshifts even if the target supports unaligned access. + * + * + * @warning + * Methods 1 and 2 rely on implementation-defined behavior. Use these with + * care, as what works on one compiler/platform/optimization level may cause + * another to read garbage data or even crash. + * + * See https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html for details. + * + * Prefer these methods in priority order (0 > 3 > 1 > 2) + */ +# define XXH_FORCE_MEMORY_ACCESS 0 + +/*! + * @def XXH_SIZE_OPT + * @brief Controls how much xxHash optimizes for size. + * + * xxHash, when compiled, tends to result in a rather large binary size. This + * is mostly due to heavy usage to forced inlining and constant folding of the + * @ref XXH3_family to increase performance. + * + * However, some developers prefer size over speed. This option can + * significantly reduce the size of the generated code. When using the `-Os` + * or `-Oz` options on GCC or Clang, this is defined to 1 by default, + * otherwise it is defined to 0. + * + * Most of these size optimizations can be controlled manually. + * + * This is a number from 0-2. + * - `XXH_SIZE_OPT` == 0: Default. xxHash makes no size optimizations. Speed + * comes first. + * - `XXH_SIZE_OPT` == 1: Default for `-Os` and `-Oz`. xxHash is more + * conservative and disables hacks that increase code size. It implies the + * options @ref XXH_NO_INLINE_HINTS == 1, @ref XXH_FORCE_ALIGN_CHECK == 0, + * and @ref XXH3_NEON_LANES == 8 if they are not already defined. + * - `XXH_SIZE_OPT` == 2: xxHash tries to make itself as small as possible. + * Performance may cry. For example, the single shot functions just use the + * streaming API. + */ +# define XXH_SIZE_OPT 0 + +/*! + * @def XXH_FORCE_ALIGN_CHECK + * @brief If defined to non-zero, adds a special path for aligned inputs (XXH32() + * and XXH64() only). + * + * This is an important performance trick for architectures without decent + * unaligned memory access performance. + * + * It checks for input alignment, and when conditions are met, uses a "fast + * path" employing direct 32-bit/64-bit reads, resulting in _dramatically + * faster_ read speed. + * + * The check costs one initial branch per hash, which is generally negligible, + * but not zero. + * + * Moreover, it's not useful to generate an additional code path if memory + * access uses the same instruction for both aligned and unaligned + * addresses (e.g. x86 and aarch64). + * + * In these cases, the alignment check can be removed by setting this macro to 0. + * Then the code will always use unaligned memory access. + * Align check is automatically disabled on x86, x64, ARM64, and some ARM chips + * which are platforms known to offer good unaligned memory accesses performance. + * + * It is also disabled by default when @ref XXH_SIZE_OPT >= 1. + * + * This option does not affect XXH3 (only XXH32 and XXH64). + */ +# define XXH_FORCE_ALIGN_CHECK 0 + +/*! + * @def XXH_NO_INLINE_HINTS + * @brief When non-zero, sets all functions to `static`. + * + * By default, xxHash tries to force the compiler to inline almost all internal + * functions. + * + * This can usually improve performance due to reduced jumping and improved + * constant folding, but significantly increases the size of the binary which + * might not be favorable. + * + * Additionally, sometimes the forced inlining can be detrimental to performance, + * depending on the architecture. + * + * XXH_NO_INLINE_HINTS marks all internal functions as static, giving the + * compiler full control on whether to inline or not. + * + * When not optimizing (-O0), using `-fno-inline` with GCC or Clang, or if + * @ref XXH_SIZE_OPT >= 1, this will automatically be defined. + */ +# define XXH_NO_INLINE_HINTS 0 + +/*! + * @def XXH3_INLINE_SECRET + * @brief Determines whether to inline the XXH3 withSecret code. + * + * When the secret size is known, the compiler can improve the performance + * of XXH3_64bits_withSecret() and XXH3_128bits_withSecret(). + * + * However, if the secret size is not known, it doesn't have any benefit. This + * happens when xxHash is compiled into a global symbol. Therefore, if + * @ref XXH_INLINE_ALL is *not* defined, this will be defined to 0. + * + * Additionally, this defaults to 0 on GCC 12+, which has an issue with function pointers + * that are *sometimes* force inline on -Og, and it is impossible to automatically + * detect this optimization level. + */ +# define XXH3_INLINE_SECRET 0 + +/*! + * @def XXH32_ENDJMP + * @brief Whether to use a jump for `XXH32_finalize`. + * + * For performance, `XXH32_finalize` uses multiple branches in the finalizer. + * This is generally preferable for performance, + * but depending on exact architecture, a jmp may be preferable. + * + * This setting is only possibly making a difference for very small inputs. + */ +# define XXH32_ENDJMP 0 + +/*! + * @internal + * @brief Redefines old internal names. + * + * For compatibility with code that uses xxHash's internals before the names + * were changed to improve namespacing. There is no other reason to use this. + */ +# define XXH_OLD_NAMES +# undef XXH_OLD_NAMES /* don't actually use, it is ugly. */ + +/*! + * @def XXH_NO_STREAM + * @brief Disables the streaming API. + * + * When xxHash is not inlined and the streaming functions are not used, disabling + * the streaming functions can improve code size significantly, especially with + * the @ref XXH3_family which tends to make constant folded copies of itself. + */ +# define XXH_NO_STREAM +# undef XXH_NO_STREAM /* don't actually */ +#endif /* XXH_DOXYGEN */ +/*! + * @} + */ + +#ifndef XXH_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ + /* prefer __packed__ structures (method 1) for GCC + * < ARMv7 with unaligned access (e.g. Raspbian armhf) still uses byte shifting, so we use memcpy + * which for some reason does unaligned loads. */ +# if defined(__GNUC__) && !(defined(__ARM_ARCH) && __ARM_ARCH < 7 && defined(__ARM_FEATURE_UNALIGNED)) +# define XXH_FORCE_MEMORY_ACCESS 1 +# endif +#endif + +#ifndef XXH_SIZE_OPT + /* default to 1 for -Os or -Oz */ +# if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE_SIZE__) +# define XXH_SIZE_OPT 1 +# else +# define XXH_SIZE_OPT 0 +# endif +#endif + +#ifndef XXH_FORCE_ALIGN_CHECK /* can be defined externally */ + /* don't check on sizeopt, x86, aarch64, or arm when unaligned access is available */ +# if XXH_SIZE_OPT >= 1 || \ + defined(__i386) || defined(__x86_64__) || defined(__aarch64__) || defined(__ARM_FEATURE_UNALIGNED) \ + || defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM64) || defined(_M_ARM) /* visual */ +# define XXH_FORCE_ALIGN_CHECK 0 +# else +# define XXH_FORCE_ALIGN_CHECK 1 +# endif +#endif + +#ifndef XXH_NO_INLINE_HINTS +# if XXH_SIZE_OPT >= 1 || defined(__NO_INLINE__) /* -O0, -fno-inline */ +# define XXH_NO_INLINE_HINTS 1 +# else +# define XXH_NO_INLINE_HINTS 0 +# endif +#endif + +#ifndef XXH3_INLINE_SECRET +# if (defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12) \ + || !defined(XXH_INLINE_ALL) +# define XXH3_INLINE_SECRET 0 +# else +# define XXH3_INLINE_SECRET 1 +# endif +#endif + +#ifndef XXH32_ENDJMP +/* generally preferable for performance */ +# define XXH32_ENDJMP 0 +#endif + +/*! + * @defgroup impl Implementation + * @{ + */ + + +/* ************************************* +* Includes & Memory related functions +***************************************/ +#if defined(XXH_NO_STREAM) +/* nothing */ +#elif defined(XXH_NO_STDLIB) + +/* When requesting to disable any mention of stdlib, + * the library loses the ability to invoked malloc / free. + * In practice, it means that functions like `XXH*_createState()` + * will always fail, and return NULL. + * This flag is useful in situations where + * xxhash.h is integrated into some kernel, embedded or limited environment + * without access to dynamic allocation. + */ + +static XXH_CONSTF void* XXH_malloc(size_t s) { (void)s; return NULL; } +static void XXH_free(void* p) { (void)p; } + +#else + +/* + * Modify the local functions below should you wish to use + * different memory routines for malloc() and free() + */ +#include + +/*! + * @internal + * @brief Modify this function to use a different routine than malloc(). + */ +static XXH_MALLOCF void* XXH_malloc(size_t s) { return malloc(s); } + +/*! + * @internal + * @brief Modify this function to use a different routine than free(). + */ +static void XXH_free(void* p) { free(p); } + +#endif /* XXH_NO_STDLIB */ + +#include + +/*! + * @internal + * @brief Modify this function to use a different routine than memcpy(). + */ +static void* XXH_memcpy(void* dest, const void* src, size_t size) +{ + return memcpy(dest,src,size); +} + +#include /* ULLONG_MAX */ + + +/* ************************************* +* Compiler Specific Options +***************************************/ +#ifdef _MSC_VER /* Visual Studio warning fix */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +#endif + +#if XXH_NO_INLINE_HINTS /* disable inlining hints */ +# if defined(__GNUC__) || defined(__clang__) +# define XXH_FORCE_INLINE static __attribute__((unused)) +# else +# define XXH_FORCE_INLINE static +# endif +# define XXH_NO_INLINE static +/* enable inlining hints */ +#elif defined(__GNUC__) || defined(__clang__) +# define XXH_FORCE_INLINE static __inline__ __attribute__((always_inline, unused)) +# define XXH_NO_INLINE static __attribute__((noinline)) +#elif defined(_MSC_VER) /* Visual Studio */ +# define XXH_FORCE_INLINE static __forceinline +# define XXH_NO_INLINE static __declspec(noinline) +#elif defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) /* C99 */ +# define XXH_FORCE_INLINE static inline +# define XXH_NO_INLINE static +#else +# define XXH_FORCE_INLINE static +# define XXH_NO_INLINE static +#endif + +#if XXH3_INLINE_SECRET +# define XXH3_WITH_SECRET_INLINE XXH_FORCE_INLINE +#else +# define XXH3_WITH_SECRET_INLINE XXH_NO_INLINE +#endif + + +/* ************************************* +* Debug +***************************************/ +/*! + * @ingroup tuning + * @def XXH_DEBUGLEVEL + * @brief Sets the debugging level. + * + * XXH_DEBUGLEVEL is expected to be defined externally, typically via the + * compiler's command line options. The value must be a number. + */ +#ifndef XXH_DEBUGLEVEL +# ifdef DEBUGLEVEL /* backwards compat */ +# define XXH_DEBUGLEVEL DEBUGLEVEL +# else +# define XXH_DEBUGLEVEL 0 +# endif +#endif + +#if (XXH_DEBUGLEVEL>=1) +# include /* note: can still be disabled with NDEBUG */ +# define XXH_ASSERT(c) assert(c) +#else +# if defined(__INTEL_COMPILER) +# define XXH_ASSERT(c) XXH_ASSUME((unsigned char) (c)) +# else +# define XXH_ASSERT(c) XXH_ASSUME(c) +# endif +#endif + +/* note: use after variable declarations */ +#ifndef XXH_STATIC_ASSERT +# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */ +# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { _Static_assert((c),m); } while(0) +# elif defined(__cplusplus) && (__cplusplus >= 201103L) /* C++11 */ +# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0) +# else +# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { struct xxh_sa { char x[(c) ? 1 : -1]; }; } while(0) +# endif +# define XXH_STATIC_ASSERT(c) XXH_STATIC_ASSERT_WITH_MESSAGE((c),#c) +#endif + +/*! + * @internal + * @def XXH_COMPILER_GUARD(var) + * @brief Used to prevent unwanted optimizations for @p var. + * + * It uses an empty GCC inline assembly statement with a register constraint + * which forces @p var into a general purpose register (eg eax, ebx, ecx + * on x86) and marks it as modified. + * + * This is used in a few places to avoid unwanted autovectorization (e.g. + * XXH32_round()). All vectorization we want is explicit via intrinsics, + * and _usually_ isn't wanted elsewhere. + * + * We also use it to prevent unwanted constant folding for AArch64 in + * XXH3_initCustomSecret_scalar(). + */ +#if defined(__GNUC__) || defined(__clang__) +# define XXH_COMPILER_GUARD(var) __asm__("" : "+r" (var)) +#else +# define XXH_COMPILER_GUARD(var) ((void)0) +#endif + +/* Specifically for NEON vectors which use the "w" constraint, on + * Clang. */ +#if defined(__clang__) && defined(__ARM_ARCH) && !defined(__wasm__) +# define XXH_COMPILER_GUARD_CLANG_NEON(var) __asm__("" : "+w" (var)) +#else +# define XXH_COMPILER_GUARD_CLANG_NEON(var) ((void)0) +#endif + +/* ************************************* +* Basic Types +***************************************/ +#if !defined (__VMS) \ + && (defined (__cplusplus) \ + || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) +# include + typedef uint8_t xxh_u8; +#else + typedef unsigned char xxh_u8; +#endif +typedef XXH32_hash_t xxh_u32; + +#ifdef XXH_OLD_NAMES +# warning "XXH_OLD_NAMES is planned to be removed starting v0.9. If the program depends on it, consider moving away from it by employing newer type names directly" +# define BYTE xxh_u8 +# define U8 xxh_u8 +# define U32 xxh_u32 +#endif + +/* *** Memory access *** */ + +/*! + * @internal + * @fn xxh_u32 XXH_read32(const void* ptr) + * @brief Reads an unaligned 32-bit integer from @p ptr in native endianness. + * + * Affected by @ref XXH_FORCE_MEMORY_ACCESS. + * + * @param ptr The pointer to read from. + * @return The 32-bit native endian integer from the bytes at @p ptr. + */ + +/*! + * @internal + * @fn xxh_u32 XXH_readLE32(const void* ptr) + * @brief Reads an unaligned 32-bit little endian integer from @p ptr. + * + * Affected by @ref XXH_FORCE_MEMORY_ACCESS. + * + * @param ptr The pointer to read from. + * @return The 32-bit little endian integer from the bytes at @p ptr. + */ + +/*! + * @internal + * @fn xxh_u32 XXH_readBE32(const void* ptr) + * @brief Reads an unaligned 32-bit big endian integer from @p ptr. + * + * Affected by @ref XXH_FORCE_MEMORY_ACCESS. + * + * @param ptr The pointer to read from. + * @return The 32-bit big endian integer from the bytes at @p ptr. + */ + +/*! + * @internal + * @fn xxh_u32 XXH_readLE32_align(const void* ptr, XXH_alignment align) + * @brief Like @ref XXH_readLE32(), but has an option for aligned reads. + * + * Affected by @ref XXH_FORCE_MEMORY_ACCESS. + * Note that when @ref XXH_FORCE_ALIGN_CHECK == 0, the @p align parameter is + * always @ref XXH_alignment::XXH_unaligned. + * + * @param ptr The pointer to read from. + * @param align Whether @p ptr is aligned. + * @pre + * If @p align == @ref XXH_alignment::XXH_aligned, @p ptr must be 4 byte + * aligned. + * @return The 32-bit little endian integer from the bytes at @p ptr. + */ + +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) +/* + * Manual byteshift. Best for old compilers which don't inline memcpy. + * We actually directly use XXH_readLE32 and XXH_readBE32. + */ +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==2)) + +/* + * Force direct memory access. Only works on CPU which support unaligned memory + * access in hardware. + */ +static xxh_u32 XXH_read32(const void* memPtr) { return *(const xxh_u32*) memPtr; } + +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==1)) + +/* + * __attribute__((aligned(1))) is supported by gcc and clang. Originally the + * documentation claimed that it only increased the alignment, but actually it + * can decrease it on gcc, clang, and icc: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69502, + * https://gcc.godbolt.org/z/xYez1j67Y. + */ +#ifdef XXH_OLD_NAMES +typedef union { xxh_u32 u32; } __attribute__((packed)) unalign; +#endif +static xxh_u32 XXH_read32(const void* ptr) +{ + typedef __attribute__((aligned(1))) xxh_u32 xxh_unalign32; + return *((const xxh_unalign32*)ptr); +} + +#else + +/* + * Portable and safe solution. Generally efficient. + * see: https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html + */ +static xxh_u32 XXH_read32(const void* memPtr) +{ + xxh_u32 val; + XXH_memcpy(&val, memPtr, sizeof(val)); + return val; +} + +#endif /* XXH_FORCE_DIRECT_MEMORY_ACCESS */ + + +/* *** Endianness *** */ + +/*! + * @ingroup tuning + * @def XXH_CPU_LITTLE_ENDIAN + * @brief Whether the target is little endian. + * + * Defined to 1 if the target is little endian, or 0 if it is big endian. + * It can be defined externally, for example on the compiler command line. + * + * If it is not defined, + * a runtime check (which is usually constant folded) is used instead. + * + * @note + * This is not necessarily defined to an integer constant. + * + * @see XXH_isLittleEndian() for the runtime check. + */ +#ifndef XXH_CPU_LITTLE_ENDIAN +/* + * Try to detect endianness automatically, to avoid the nonstandard behavior + * in `XXH_isLittleEndian()` + */ +# if defined(_WIN32) /* Windows is always little endian */ \ + || defined(__LITTLE_ENDIAN__) \ + || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) +# define XXH_CPU_LITTLE_ENDIAN 1 +# elif defined(__BIG_ENDIAN__) \ + || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +# define XXH_CPU_LITTLE_ENDIAN 0 +# else +/*! + * @internal + * @brief Runtime check for @ref XXH_CPU_LITTLE_ENDIAN. + * + * Most compilers will constant fold this. + */ +static int XXH_isLittleEndian(void) +{ + /* + * Portable and well-defined behavior. + * Don't use static: it is detrimental to performance. + */ + const union { xxh_u32 u; xxh_u8 c[4]; } one = { 1 }; + return one.c[0]; +} +# define XXH_CPU_LITTLE_ENDIAN XXH_isLittleEndian() +# endif +#endif + + + + +/* **************************************** +* Compiler-specific Functions and Macros +******************************************/ +#define XXH_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) + +#ifdef __has_builtin +# define XXH_HAS_BUILTIN(x) __has_builtin(x) +#else +# define XXH_HAS_BUILTIN(x) 0 +#endif + + + +/* + * C23 and future versions have standard "unreachable()". + * Once it has been implemented reliably we can add it as an + * additional case: + * + * ``` + * #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= XXH_C23_VN) + * # include + * # ifdef unreachable + * # define XXH_UNREACHABLE() unreachable() + * # endif + * #endif + * ``` + * + * Note C++23 also has std::unreachable() which can be detected + * as follows: + * ``` + * #if defined(__cpp_lib_unreachable) && (__cpp_lib_unreachable >= 202202L) + * # include + * # define XXH_UNREACHABLE() std::unreachable() + * #endif + * ``` + * NB: `__cpp_lib_unreachable` is defined in the `` header. + * We don't use that as including `` in `extern "C"` blocks + * doesn't work on GCC12 + */ + +#if XXH_HAS_BUILTIN(__builtin_unreachable) +# define XXH_UNREACHABLE() __builtin_unreachable() + +#elif defined(_MSC_VER) +# define XXH_UNREACHABLE() __assume(0) + +#else +# define XXH_UNREACHABLE() +#endif + +#if XXH_HAS_BUILTIN(__builtin_assume) +# define XXH_ASSUME(c) __builtin_assume(c) +#else +# define XXH_ASSUME(c) if (!(c)) { XXH_UNREACHABLE(); } +#endif + +/*! + * @internal + * @def XXH_rotl32(x,r) + * @brief 32-bit rotate left. + * + * @param x The 32-bit integer to be rotated. + * @param r The number of bits to rotate. + * @pre + * @p r > 0 && @p r < 32 + * @note + * @p x and @p r may be evaluated multiple times. + * @return The rotated result. + */ +#if !defined(NO_CLANG_BUILTIN) && XXH_HAS_BUILTIN(__builtin_rotateleft32) \ + && XXH_HAS_BUILTIN(__builtin_rotateleft64) +# define XXH_rotl32 __builtin_rotateleft32 +# define XXH_rotl64 __builtin_rotateleft64 +/* Note: although _rotl exists for minGW (GCC under windows), performance seems poor */ +#elif defined(_MSC_VER) +# define XXH_rotl32(x,r) _rotl(x,r) +# define XXH_rotl64(x,r) _rotl64(x,r) +#else +# define XXH_rotl32(x,r) (((x) << (r)) | ((x) >> (32 - (r)))) +# define XXH_rotl64(x,r) (((x) << (r)) | ((x) >> (64 - (r)))) +#endif + +/*! + * @internal + * @fn xxh_u32 XXH_swap32(xxh_u32 x) + * @brief A 32-bit byteswap. + * + * @param x The 32-bit integer to byteswap. + * @return @p x, byteswapped. + */ +#if defined(_MSC_VER) /* Visual Studio */ +# define XXH_swap32 _byteswap_ulong +#elif XXH_GCC_VERSION >= 403 +# define XXH_swap32 __builtin_bswap32 +#else +static xxh_u32 XXH_swap32 (xxh_u32 x) +{ + return ((x << 24) & 0xff000000 ) | + ((x << 8) & 0x00ff0000 ) | + ((x >> 8) & 0x0000ff00 ) | + ((x >> 24) & 0x000000ff ); +} +#endif + + +/* *************************** +* Memory reads +*****************************/ + +/*! + * @internal + * @brief Enum to indicate whether a pointer is aligned. + */ +typedef enum { + XXH_aligned, /*!< Aligned */ + XXH_unaligned /*!< Possibly unaligned */ +} XXH_alignment; + +/* + * XXH_FORCE_MEMORY_ACCESS==3 is an endian-independent byteshift load. + * + * This is ideal for older compilers which don't inline memcpy. + */ +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) + +XXH_FORCE_INLINE xxh_u32 XXH_readLE32(const void* memPtr) +{ + const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; + return bytePtr[0] + | ((xxh_u32)bytePtr[1] << 8) + | ((xxh_u32)bytePtr[2] << 16) + | ((xxh_u32)bytePtr[3] << 24); +} + +XXH_FORCE_INLINE xxh_u32 XXH_readBE32(const void* memPtr) +{ + const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; + return bytePtr[3] + | ((xxh_u32)bytePtr[2] << 8) + | ((xxh_u32)bytePtr[1] << 16) + | ((xxh_u32)bytePtr[0] << 24); +} + +#else +XXH_FORCE_INLINE xxh_u32 XXH_readLE32(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_read32(ptr) : XXH_swap32(XXH_read32(ptr)); +} + +static xxh_u32 XXH_readBE32(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_swap32(XXH_read32(ptr)) : XXH_read32(ptr); +} +#endif + +XXH_FORCE_INLINE xxh_u32 +XXH_readLE32_align(const void* ptr, XXH_alignment align) +{ + if (align==XXH_unaligned) { + return XXH_readLE32(ptr); + } else { + return XXH_CPU_LITTLE_ENDIAN ? *(const xxh_u32*)ptr : XXH_swap32(*(const xxh_u32*)ptr); + } +} + + +/* ************************************* +* Misc +***************************************/ +/*! @ingroup public */ +XXH_PUBLIC_API unsigned XXH_versionNumber (void) { return XXH_VERSION_NUMBER; } + + +/* ******************************************************************* +* 32-bit hash functions +*********************************************************************/ +/*! + * @} + * @defgroup XXH32_impl XXH32 implementation + * @ingroup impl + * + * Details on the XXH32 implementation. + * @{ + */ + /* #define instead of static const, to be used as initializers */ +#define XXH_PRIME32_1 0x9E3779B1U /*!< 0b10011110001101110111100110110001 */ +#define XXH_PRIME32_2 0x85EBCA77U /*!< 0b10000101111010111100101001110111 */ +#define XXH_PRIME32_3 0xC2B2AE3DU /*!< 0b11000010101100101010111000111101 */ +#define XXH_PRIME32_4 0x27D4EB2FU /*!< 0b00100111110101001110101100101111 */ +#define XXH_PRIME32_5 0x165667B1U /*!< 0b00010110010101100110011110110001 */ + +#ifdef XXH_OLD_NAMES +# define PRIME32_1 XXH_PRIME32_1 +# define PRIME32_2 XXH_PRIME32_2 +# define PRIME32_3 XXH_PRIME32_3 +# define PRIME32_4 XXH_PRIME32_4 +# define PRIME32_5 XXH_PRIME32_5 +#endif + +/*! + * @internal + * @brief Normal stripe processing routine. + * + * This shuffles the bits so that any bit from @p input impacts several bits in + * @p acc. + * + * @param acc The accumulator lane. + * @param input The stripe of input to mix. + * @return The mixed accumulator lane. + */ +static xxh_u32 XXH32_round(xxh_u32 acc, xxh_u32 input) +{ + acc += input * XXH_PRIME32_2; + acc = XXH_rotl32(acc, 13); + acc *= XXH_PRIME32_1; +#if (defined(__SSE4_1__) || defined(__aarch64__) || defined(__wasm_simd128__)) && !defined(XXH_ENABLE_AUTOVECTORIZE) + /* + * UGLY HACK: + * A compiler fence is the only thing that prevents GCC and Clang from + * autovectorizing the XXH32 loop (pragmas and attributes don't work for some + * reason) without globally disabling SSE4.1. + * + * The reason we want to avoid vectorization is because despite working on + * 4 integers at a time, there are multiple factors slowing XXH32 down on + * SSE4: + * - There's a ridiculous amount of lag from pmulld (10 cycles of latency on + * newer chips!) making it slightly slower to multiply four integers at + * once compared to four integers independently. Even when pmulld was + * fastest, Sandy/Ivy Bridge, it is still not worth it to go into SSE + * just to multiply unless doing a long operation. + * + * - Four instructions are required to rotate, + * movqda tmp, v // not required with VEX encoding + * pslld tmp, 13 // tmp <<= 13 + * psrld v, 19 // x >>= 19 + * por v, tmp // x |= tmp + * compared to one for scalar: + * roll v, 13 // reliably fast across the board + * shldl v, v, 13 // Sandy Bridge and later prefer this for some reason + * + * - Instruction level parallelism is actually more beneficial here because + * the SIMD actually serializes this operation: While v1 is rotating, v2 + * can load data, while v3 can multiply. SSE forces them to operate + * together. + * + * This is also enabled on AArch64, as Clang is *very aggressive* in vectorizing + * the loop. NEON is only faster on the A53, and with the newer cores, it is less + * than half the speed. + * + * Additionally, this is used on WASM SIMD128 because it JITs to the same + * SIMD instructions and has the same issue. + */ + XXH_COMPILER_GUARD(acc); +#endif + return acc; +} + +/*! + * @internal + * @brief Mixes all bits to finalize the hash. + * + * The final mix ensures that all input bits have a chance to impact any bit in + * the output digest, resulting in an unbiased distribution. + * + * @param hash The hash to avalanche. + * @return The avalanched hash. + */ +static xxh_u32 XXH32_avalanche(xxh_u32 hash) +{ + hash ^= hash >> 15; + hash *= XXH_PRIME32_2; + hash ^= hash >> 13; + hash *= XXH_PRIME32_3; + hash ^= hash >> 16; + return hash; +} + +#define XXH_get32bits(p) XXH_readLE32_align(p, align) + +/*! + * @internal + * @brief Processes the last 0-15 bytes of @p ptr. + * + * There may be up to 15 bytes remaining to consume from the input. + * This final stage will digest them to ensure that all input bytes are present + * in the final mix. + * + * @param hash The hash to finalize. + * @param ptr The pointer to the remaining input. + * @param len The remaining length, modulo 16. + * @param align Whether @p ptr is aligned. + * @return The finalized hash. + * @see XXH64_finalize(). + */ +static XXH_PUREF xxh_u32 +XXH32_finalize(xxh_u32 hash, const xxh_u8* ptr, size_t len, XXH_alignment align) +{ +#define XXH_PROCESS1 do { \ + hash += (*ptr++) * XXH_PRIME32_5; \ + hash = XXH_rotl32(hash, 11) * XXH_PRIME32_1; \ +} while (0) + +#define XXH_PROCESS4 do { \ + hash += XXH_get32bits(ptr) * XXH_PRIME32_3; \ + ptr += 4; \ + hash = XXH_rotl32(hash, 17) * XXH_PRIME32_4; \ +} while (0) + + if (ptr==NULL) XXH_ASSERT(len == 0); + + /* Compact rerolled version; generally faster */ + if (!XXH32_ENDJMP) { + len &= 15; + while (len >= 4) { + XXH_PROCESS4; + len -= 4; + } + while (len > 0) { + XXH_PROCESS1; + --len; + } + return XXH32_avalanche(hash); + } else { + switch(len&15) /* or switch(bEnd - p) */ { + case 12: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 8: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 4: XXH_PROCESS4; + return XXH32_avalanche(hash); + + case 13: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 9: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 5: XXH_PROCESS4; + XXH_PROCESS1; + return XXH32_avalanche(hash); + + case 14: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 10: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 6: XXH_PROCESS4; + XXH_PROCESS1; + XXH_PROCESS1; + return XXH32_avalanche(hash); + + case 15: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 11: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 7: XXH_PROCESS4; + XXH_FALLTHROUGH; /* fallthrough */ + case 3: XXH_PROCESS1; + XXH_FALLTHROUGH; /* fallthrough */ + case 2: XXH_PROCESS1; + XXH_FALLTHROUGH; /* fallthrough */ + case 1: XXH_PROCESS1; + XXH_FALLTHROUGH; /* fallthrough */ + case 0: return XXH32_avalanche(hash); + } + XXH_ASSERT(0); + return hash; /* reaching this point is deemed impossible */ + } +} + +#ifdef XXH_OLD_NAMES +# define PROCESS1 XXH_PROCESS1 +# define PROCESS4 XXH_PROCESS4 +#else +# undef XXH_PROCESS1 +# undef XXH_PROCESS4 +#endif + +/*! + * @internal + * @brief The implementation for @ref XXH32(). + * + * @param input , len , seed Directly passed from @ref XXH32(). + * @param align Whether @p input is aligned. + * @return The calculated hash. + */ +XXH_FORCE_INLINE XXH_PUREF xxh_u32 +XXH32_endian_align(const xxh_u8* input, size_t len, xxh_u32 seed, XXH_alignment align) +{ + xxh_u32 h32; + + if (input==NULL) XXH_ASSERT(len == 0); + + if (len>=16) { + const xxh_u8* const bEnd = input + len; + const xxh_u8* const limit = bEnd - 15; + xxh_u32 v1 = seed + XXH_PRIME32_1 + XXH_PRIME32_2; + xxh_u32 v2 = seed + XXH_PRIME32_2; + xxh_u32 v3 = seed + 0; + xxh_u32 v4 = seed - XXH_PRIME32_1; + + do { + v1 = XXH32_round(v1, XXH_get32bits(input)); input += 4; + v2 = XXH32_round(v2, XXH_get32bits(input)); input += 4; + v3 = XXH32_round(v3, XXH_get32bits(input)); input += 4; + v4 = XXH32_round(v4, XXH_get32bits(input)); input += 4; + } while (input < limit); + + h32 = XXH_rotl32(v1, 1) + XXH_rotl32(v2, 7) + + XXH_rotl32(v3, 12) + XXH_rotl32(v4, 18); + } else { + h32 = seed + XXH_PRIME32_5; + } + + h32 += (xxh_u32)len; + + return XXH32_finalize(h32, input, len&15, align); +} + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH32_hash_t XXH32 (const void* input, size_t len, XXH32_hash_t seed) +{ +#if !defined(XXH_NO_STREAM) && XXH_SIZE_OPT >= 2 + /* Simple version, good for code maintenance, but unfortunately slow for small inputs */ + XXH32_state_t state; + XXH32_reset(&state, seed); + XXH32_update(&state, (const xxh_u8*)input, len); + return XXH32_digest(&state); +#else + if (XXH_FORCE_ALIGN_CHECK) { + if ((((size_t)input) & 3) == 0) { /* Input is 4-bytes aligned, leverage the speed benefit */ + return XXH32_endian_align((const xxh_u8*)input, len, seed, XXH_aligned); + } } + + return XXH32_endian_align((const xxh_u8*)input, len, seed, XXH_unaligned); +#endif +} + + + +/******* Hash streaming *******/ +#ifndef XXH_NO_STREAM +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void) +{ + return (XXH32_state_t*)XXH_malloc(sizeof(XXH32_state_t)); +} +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr) +{ + XXH_free(statePtr); + return XXH_OK; +} + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dstState, const XXH32_state_t* srcState) +{ + XXH_memcpy(dstState, srcState, sizeof(*dstState)); +} + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t seed) +{ + XXH_ASSERT(statePtr != NULL); + memset(statePtr, 0, sizeof(*statePtr)); + statePtr->v[0] = seed + XXH_PRIME32_1 + XXH_PRIME32_2; + statePtr->v[1] = seed + XXH_PRIME32_2; + statePtr->v[2] = seed + 0; + statePtr->v[3] = seed - XXH_PRIME32_1; + return XXH_OK; +} + + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH_errorcode +XXH32_update(XXH32_state_t* state, const void* input, size_t len) +{ + if (input==NULL) { + XXH_ASSERT(len == 0); + return XXH_OK; + } + + { const xxh_u8* p = (const xxh_u8*)input; + const xxh_u8* const bEnd = p + len; + + state->total_len_32 += (XXH32_hash_t)len; + state->large_len |= (XXH32_hash_t)((len>=16) | (state->total_len_32>=16)); + + if (state->memsize + len < 16) { /* fill in tmp buffer */ + XXH_memcpy((xxh_u8*)(state->mem32) + state->memsize, input, len); + state->memsize += (XXH32_hash_t)len; + return XXH_OK; + } + + if (state->memsize) { /* some data left from previous update */ + XXH_memcpy((xxh_u8*)(state->mem32) + state->memsize, input, 16-state->memsize); + { const xxh_u32* p32 = state->mem32; + state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p32)); p32++; + state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p32)); p32++; + state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p32)); p32++; + state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p32)); + } + p += 16-state->memsize; + state->memsize = 0; + } + + if (p <= bEnd-16) { + const xxh_u8* const limit = bEnd - 16; + + do { + state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p)); p+=4; + state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p)); p+=4; + state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p)); p+=4; + state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p)); p+=4; + } while (p<=limit); + + } + + if (p < bEnd) { + XXH_memcpy(state->mem32, p, (size_t)(bEnd-p)); + state->memsize = (unsigned)(bEnd-p); + } + } + + return XXH_OK; +} + + +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state) +{ + xxh_u32 h32; + + if (state->large_len) { + h32 = XXH_rotl32(state->v[0], 1) + + XXH_rotl32(state->v[1], 7) + + XXH_rotl32(state->v[2], 12) + + XXH_rotl32(state->v[3], 18); + } else { + h32 = state->v[2] /* == seed */ + XXH_PRIME32_5; + } + + h32 += state->total_len_32; + + return XXH32_finalize(h32, (const xxh_u8*)state->mem32, state->memsize, XXH_aligned); +} +#endif /* !XXH_NO_STREAM */ + +/******* Canonical representation *******/ + +/*! + * @ingroup XXH32_family + * The default return values from XXH functions are unsigned 32 and 64 bit + * integers. + * + * The canonical representation uses big endian convention, the same convention + * as human-readable numbers (large digits first). + * + * This way, hash values can be written into a file or buffer, remaining + * comparable across different systems. + * + * The following functions allow transformation of hash values to and from their + * canonical format. + */ +XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash) +{ + XXH_STATIC_ASSERT(sizeof(XXH32_canonical_t) == sizeof(XXH32_hash_t)); + if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap32(hash); + XXH_memcpy(dst, &hash, sizeof(*dst)); +} +/*! @ingroup XXH32_family */ +XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src) +{ + return XXH_readBE32(src); +} + + +#ifndef XXH_NO_LONG_LONG + +/* ******************************************************************* +* 64-bit hash functions +*********************************************************************/ +/*! + * @} + * @ingroup impl + * @{ + */ +/******* Memory access *******/ + +typedef XXH64_hash_t xxh_u64; + +#ifdef XXH_OLD_NAMES +# define U64 xxh_u64 +#endif + +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) +/* + * Manual byteshift. Best for old compilers which don't inline memcpy. + * We actually directly use XXH_readLE64 and XXH_readBE64. + */ +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==2)) + +/* Force direct memory access. Only works on CPU which support unaligned memory access in hardware */ +static xxh_u64 XXH_read64(const void* memPtr) +{ + return *(const xxh_u64*) memPtr; +} + +#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==1)) + +/* + * __attribute__((aligned(1))) is supported by gcc and clang. Originally the + * documentation claimed that it only increased the alignment, but actually it + * can decrease it on gcc, clang, and icc: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69502, + * https://gcc.godbolt.org/z/xYez1j67Y. + */ +#ifdef XXH_OLD_NAMES +typedef union { xxh_u32 u32; xxh_u64 u64; } __attribute__((packed)) unalign64; +#endif +static xxh_u64 XXH_read64(const void* ptr) +{ + typedef __attribute__((aligned(1))) xxh_u64 xxh_unalign64; + return *((const xxh_unalign64*)ptr); +} + +#else + +/* + * Portable and safe solution. Generally efficient. + * see: https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html + */ +static xxh_u64 XXH_read64(const void* memPtr) +{ + xxh_u64 val; + XXH_memcpy(&val, memPtr, sizeof(val)); + return val; +} + +#endif /* XXH_FORCE_DIRECT_MEMORY_ACCESS */ + +#if defined(_MSC_VER) /* Visual Studio */ +# define XXH_swap64 _byteswap_uint64 +#elif XXH_GCC_VERSION >= 403 +# define XXH_swap64 __builtin_bswap64 +#else +static xxh_u64 XXH_swap64(xxh_u64 x) +{ + return ((x << 56) & 0xff00000000000000ULL) | + ((x << 40) & 0x00ff000000000000ULL) | + ((x << 24) & 0x0000ff0000000000ULL) | + ((x << 8) & 0x000000ff00000000ULL) | + ((x >> 8) & 0x00000000ff000000ULL) | + ((x >> 24) & 0x0000000000ff0000ULL) | + ((x >> 40) & 0x000000000000ff00ULL) | + ((x >> 56) & 0x00000000000000ffULL); +} +#endif + + +/* XXH_FORCE_MEMORY_ACCESS==3 is an endian-independent byteshift load. */ +#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) + +XXH_FORCE_INLINE xxh_u64 XXH_readLE64(const void* memPtr) +{ + const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; + return bytePtr[0] + | ((xxh_u64)bytePtr[1] << 8) + | ((xxh_u64)bytePtr[2] << 16) + | ((xxh_u64)bytePtr[3] << 24) + | ((xxh_u64)bytePtr[4] << 32) + | ((xxh_u64)bytePtr[5] << 40) + | ((xxh_u64)bytePtr[6] << 48) + | ((xxh_u64)bytePtr[7] << 56); +} + +XXH_FORCE_INLINE xxh_u64 XXH_readBE64(const void* memPtr) +{ + const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; + return bytePtr[7] + | ((xxh_u64)bytePtr[6] << 8) + | ((xxh_u64)bytePtr[5] << 16) + | ((xxh_u64)bytePtr[4] << 24) + | ((xxh_u64)bytePtr[3] << 32) + | ((xxh_u64)bytePtr[2] << 40) + | ((xxh_u64)bytePtr[1] << 48) + | ((xxh_u64)bytePtr[0] << 56); +} + +#else +XXH_FORCE_INLINE xxh_u64 XXH_readLE64(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_read64(ptr) : XXH_swap64(XXH_read64(ptr)); +} + +static xxh_u64 XXH_readBE64(const void* ptr) +{ + return XXH_CPU_LITTLE_ENDIAN ? XXH_swap64(XXH_read64(ptr)) : XXH_read64(ptr); +} +#endif + +XXH_FORCE_INLINE xxh_u64 +XXH_readLE64_align(const void* ptr, XXH_alignment align) +{ + if (align==XXH_unaligned) + return XXH_readLE64(ptr); + else + return XXH_CPU_LITTLE_ENDIAN ? *(const xxh_u64*)ptr : XXH_swap64(*(const xxh_u64*)ptr); +} + + +/******* xxh64 *******/ +/*! + * @} + * @defgroup XXH64_impl XXH64 implementation + * @ingroup impl + * + * Details on the XXH64 implementation. + * @{ + */ +/* #define rather that static const, to be used as initializers */ +#define XXH_PRIME64_1 0x9E3779B185EBCA87ULL /*!< 0b1001111000110111011110011011000110000101111010111100101010000111 */ +#define XXH_PRIME64_2 0xC2B2AE3D27D4EB4FULL /*!< 0b1100001010110010101011100011110100100111110101001110101101001111 */ +#define XXH_PRIME64_3 0x165667B19E3779F9ULL /*!< 0b0001011001010110011001111011000110011110001101110111100111111001 */ +#define XXH_PRIME64_4 0x85EBCA77C2B2AE63ULL /*!< 0b1000010111101011110010100111011111000010101100101010111001100011 */ +#define XXH_PRIME64_5 0x27D4EB2F165667C5ULL /*!< 0b0010011111010100111010110010111100010110010101100110011111000101 */ + +#ifdef XXH_OLD_NAMES +# define PRIME64_1 XXH_PRIME64_1 +# define PRIME64_2 XXH_PRIME64_2 +# define PRIME64_3 XXH_PRIME64_3 +# define PRIME64_4 XXH_PRIME64_4 +# define PRIME64_5 XXH_PRIME64_5 +#endif + +/*! @copydoc XXH32_round */ +static xxh_u64 XXH64_round(xxh_u64 acc, xxh_u64 input) +{ + acc += input * XXH_PRIME64_2; + acc = XXH_rotl64(acc, 31); + acc *= XXH_PRIME64_1; + return acc; +} + +static xxh_u64 XXH64_mergeRound(xxh_u64 acc, xxh_u64 val) +{ + val = XXH64_round(0, val); + acc ^= val; + acc = acc * XXH_PRIME64_1 + XXH_PRIME64_4; + return acc; +} + +/*! @copydoc XXH32_avalanche */ +static xxh_u64 XXH64_avalanche(xxh_u64 hash) +{ + hash ^= hash >> 33; + hash *= XXH_PRIME64_2; + hash ^= hash >> 29; + hash *= XXH_PRIME64_3; + hash ^= hash >> 32; + return hash; +} + + +#define XXH_get64bits(p) XXH_readLE64_align(p, align) + +/*! + * @internal + * @brief Processes the last 0-31 bytes of @p ptr. + * + * There may be up to 31 bytes remaining to consume from the input. + * This final stage will digest them to ensure that all input bytes are present + * in the final mix. + * + * @param hash The hash to finalize. + * @param ptr The pointer to the remaining input. + * @param len The remaining length, modulo 32. + * @param align Whether @p ptr is aligned. + * @return The finalized hash + * @see XXH32_finalize(). + */ +static XXH_PUREF xxh_u64 +XXH64_finalize(xxh_u64 hash, const xxh_u8* ptr, size_t len, XXH_alignment align) +{ + if (ptr==NULL) XXH_ASSERT(len == 0); + len &= 31; + while (len >= 8) { + xxh_u64 const k1 = XXH64_round(0, XXH_get64bits(ptr)); + ptr += 8; + hash ^= k1; + hash = XXH_rotl64(hash,27) * XXH_PRIME64_1 + XXH_PRIME64_4; + len -= 8; + } + if (len >= 4) { + hash ^= (xxh_u64)(XXH_get32bits(ptr)) * XXH_PRIME64_1; + ptr += 4; + hash = XXH_rotl64(hash, 23) * XXH_PRIME64_2 + XXH_PRIME64_3; + len -= 4; + } + while (len > 0) { + hash ^= (*ptr++) * XXH_PRIME64_5; + hash = XXH_rotl64(hash, 11) * XXH_PRIME64_1; + --len; + } + return XXH64_avalanche(hash); +} + +#ifdef XXH_OLD_NAMES +# define PROCESS1_64 XXH_PROCESS1_64 +# define PROCESS4_64 XXH_PROCESS4_64 +# define PROCESS8_64 XXH_PROCESS8_64 +#else +# undef XXH_PROCESS1_64 +# undef XXH_PROCESS4_64 +# undef XXH_PROCESS8_64 +#endif + +/*! + * @internal + * @brief The implementation for @ref XXH64(). + * + * @param input , len , seed Directly passed from @ref XXH64(). + * @param align Whether @p input is aligned. + * @return The calculated hash. + */ +XXH_FORCE_INLINE XXH_PUREF xxh_u64 +XXH64_endian_align(const xxh_u8* input, size_t len, xxh_u64 seed, XXH_alignment align) +{ + xxh_u64 h64; + if (input==NULL) XXH_ASSERT(len == 0); + + if (len>=32) { + const xxh_u8* const bEnd = input + len; + const xxh_u8* const limit = bEnd - 31; + xxh_u64 v1 = seed + XXH_PRIME64_1 + XXH_PRIME64_2; + xxh_u64 v2 = seed + XXH_PRIME64_2; + xxh_u64 v3 = seed + 0; + xxh_u64 v4 = seed - XXH_PRIME64_1; + + do { + v1 = XXH64_round(v1, XXH_get64bits(input)); input+=8; + v2 = XXH64_round(v2, XXH_get64bits(input)); input+=8; + v3 = XXH64_round(v3, XXH_get64bits(input)); input+=8; + v4 = XXH64_round(v4, XXH_get64bits(input)); input+=8; + } while (input= 2 + /* Simple version, good for code maintenance, but unfortunately slow for small inputs */ + XXH64_state_t state; + XXH64_reset(&state, seed); + XXH64_update(&state, (const xxh_u8*)input, len); + return XXH64_digest(&state); +#else + if (XXH_FORCE_ALIGN_CHECK) { + if ((((size_t)input) & 7)==0) { /* Input is aligned, let's leverage the speed advantage */ + return XXH64_endian_align((const xxh_u8*)input, len, seed, XXH_aligned); + } } + + return XXH64_endian_align((const xxh_u8*)input, len, seed, XXH_unaligned); + +#endif +} + +/******* Hash Streaming *******/ +#ifndef XXH_NO_STREAM +/*! @ingroup XXH64_family*/ +XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void) +{ + return (XXH64_state_t*)XXH_malloc(sizeof(XXH64_state_t)); +} +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr) +{ + XXH_free(statePtr); + return XXH_OK; +} + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API void XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dstState, const XXH64_state_t* srcState) +{ + XXH_memcpy(dstState, srcState, sizeof(*dstState)); +} + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH_NOESCAPE XXH64_state_t* statePtr, XXH64_hash_t seed) +{ + XXH_ASSERT(statePtr != NULL); + memset(statePtr, 0, sizeof(*statePtr)); + statePtr->v[0] = seed + XXH_PRIME64_1 + XXH_PRIME64_2; + statePtr->v[1] = seed + XXH_PRIME64_2; + statePtr->v[2] = seed + 0; + statePtr->v[3] = seed - XXH_PRIME64_1; + return XXH_OK; +} + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH_errorcode +XXH64_update (XXH_NOESCAPE XXH64_state_t* state, XXH_NOESCAPE const void* input, size_t len) +{ + if (input==NULL) { + XXH_ASSERT(len == 0); + return XXH_OK; + } + + { const xxh_u8* p = (const xxh_u8*)input; + const xxh_u8* const bEnd = p + len; + + state->total_len += len; + + if (state->memsize + len < 32) { /* fill in tmp buffer */ + XXH_memcpy(((xxh_u8*)state->mem64) + state->memsize, input, len); + state->memsize += (xxh_u32)len; + return XXH_OK; + } + + if (state->memsize) { /* tmp buffer is full */ + XXH_memcpy(((xxh_u8*)state->mem64) + state->memsize, input, 32-state->memsize); + state->v[0] = XXH64_round(state->v[0], XXH_readLE64(state->mem64+0)); + state->v[1] = XXH64_round(state->v[1], XXH_readLE64(state->mem64+1)); + state->v[2] = XXH64_round(state->v[2], XXH_readLE64(state->mem64+2)); + state->v[3] = XXH64_round(state->v[3], XXH_readLE64(state->mem64+3)); + p += 32 - state->memsize; + state->memsize = 0; + } + + if (p+32 <= bEnd) { + const xxh_u8* const limit = bEnd - 32; + + do { + state->v[0] = XXH64_round(state->v[0], XXH_readLE64(p)); p+=8; + state->v[1] = XXH64_round(state->v[1], XXH_readLE64(p)); p+=8; + state->v[2] = XXH64_round(state->v[2], XXH_readLE64(p)); p+=8; + state->v[3] = XXH64_round(state->v[3], XXH_readLE64(p)); p+=8; + } while (p<=limit); + + } + + if (p < bEnd) { + XXH_memcpy(state->mem64, p, (size_t)(bEnd-p)); + state->memsize = (unsigned)(bEnd-p); + } + } + + return XXH_OK; +} + + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH64_hash_t XXH64_digest(XXH_NOESCAPE const XXH64_state_t* state) +{ + xxh_u64 h64; + + if (state->total_len >= 32) { + h64 = XXH_rotl64(state->v[0], 1) + XXH_rotl64(state->v[1], 7) + XXH_rotl64(state->v[2], 12) + XXH_rotl64(state->v[3], 18); + h64 = XXH64_mergeRound(h64, state->v[0]); + h64 = XXH64_mergeRound(h64, state->v[1]); + h64 = XXH64_mergeRound(h64, state->v[2]); + h64 = XXH64_mergeRound(h64, state->v[3]); + } else { + h64 = state->v[2] /*seed*/ + XXH_PRIME64_5; + } + + h64 += (xxh_u64) state->total_len; + + return XXH64_finalize(h64, (const xxh_u8*)state->mem64, (size_t)state->total_len, XXH_aligned); +} +#endif /* !XXH_NO_STREAM */ + +/******* Canonical representation *******/ + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical_t* dst, XXH64_hash_t hash) +{ + XXH_STATIC_ASSERT(sizeof(XXH64_canonical_t) == sizeof(XXH64_hash_t)); + if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap64(hash); + XXH_memcpy(dst, &hash, sizeof(*dst)); +} + +/*! @ingroup XXH64_family */ +XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE const XXH64_canonical_t* src) +{ + return XXH_readBE64(src); +} + +#ifndef XXH_NO_XXH3 + +/* ********************************************************************* +* XXH3 +* New generation hash designed for speed on small keys and vectorization +************************************************************************ */ +/*! + * @} + * @defgroup XXH3_impl XXH3 implementation + * @ingroup impl + * @{ + */ + +/* === Compiler specifics === */ + +#if ((defined(sun) || defined(__sun)) && __cplusplus) /* Solaris includes __STDC_VERSION__ with C++. Tested with GCC 5.5 */ +# define XXH_RESTRICT /* disable */ +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* >= C99 */ +# define XXH_RESTRICT restrict +#elif (defined (__GNUC__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))) \ + || (defined (__clang__)) \ + || (defined (_MSC_VER) && (_MSC_VER >= 1400)) \ + || (defined (__INTEL_COMPILER) && (__INTEL_COMPILER >= 1300)) +/* + * There are a LOT more compilers that recognize __restrict but this + * covers the major ones. + */ +# define XXH_RESTRICT __restrict +#else +# define XXH_RESTRICT /* disable */ +#endif + +#if (defined(__GNUC__) && (__GNUC__ >= 3)) \ + || (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 800)) \ + || defined(__clang__) +# define XXH_likely(x) __builtin_expect(x, 1) +# define XXH_unlikely(x) __builtin_expect(x, 0) +#else +# define XXH_likely(x) (x) +# define XXH_unlikely(x) (x) +#endif + +#ifndef XXH_HAS_INCLUDE +# ifdef __has_include +# define XXH_HAS_INCLUDE(x) __has_include(x) +# else +# define XXH_HAS_INCLUDE(x) 0 +# endif +#endif + +#if defined(__GNUC__) || defined(__clang__) +# if defined(__ARM_FEATURE_SVE) +# include +# endif +# if defined(__ARM_NEON__) || defined(__ARM_NEON) \ + || (defined(_M_ARM) && _M_ARM >= 7) \ + || defined(_M_ARM64) || defined(_M_ARM64EC) \ + || (defined(__wasm_simd128__) && XXH_HAS_INCLUDE()) /* WASM SIMD128 via SIMDe */ +# define inline __inline__ /* circumvent a clang bug */ +# include +# undef inline +# elif defined(__AVX2__) +# include +# elif defined(__SSE2__) +# include +# endif +#endif + +#if defined(_MSC_VER) +# include +#endif + +/* + * One goal of XXH3 is to make it fast on both 32-bit and 64-bit, while + * remaining a true 64-bit/128-bit hash function. + * + * This is done by prioritizing a subset of 64-bit operations that can be + * emulated without too many steps on the average 32-bit machine. + * + * For example, these two lines seem similar, and run equally fast on 64-bit: + * + * xxh_u64 x; + * x ^= (x >> 47); // good + * x ^= (x >> 13); // bad + * + * However, to a 32-bit machine, there is a major difference. + * + * x ^= (x >> 47) looks like this: + * + * x.lo ^= (x.hi >> (47 - 32)); + * + * while x ^= (x >> 13) looks like this: + * + * // note: funnel shifts are not usually cheap. + * x.lo ^= (x.lo >> 13) | (x.hi << (32 - 13)); + * x.hi ^= (x.hi >> 13); + * + * The first one is significantly faster than the second, simply because the + * shift is larger than 32. This means: + * - All the bits we need are in the upper 32 bits, so we can ignore the lower + * 32 bits in the shift. + * - The shift result will always fit in the lower 32 bits, and therefore, + * we can ignore the upper 32 bits in the xor. + * + * Thanks to this optimization, XXH3 only requires these features to be efficient: + * + * - Usable unaligned access + * - A 32-bit or 64-bit ALU + * - If 32-bit, a decent ADC instruction + * - A 32 or 64-bit multiply with a 64-bit result + * - For the 128-bit variant, a decent byteswap helps short inputs. + * + * The first two are already required by XXH32, and almost all 32-bit and 64-bit + * platforms which can run XXH32 can run XXH3 efficiently. + * + * Thumb-1, the classic 16-bit only subset of ARM's instruction set, is one + * notable exception. + * + * First of all, Thumb-1 lacks support for the UMULL instruction which + * performs the important long multiply. This means numerous __aeabi_lmul + * calls. + * + * Second of all, the 8 functional registers are just not enough. + * Setup for __aeabi_lmul, byteshift loads, pointers, and all arithmetic need + * Lo registers, and this shuffling results in thousands more MOVs than A32. + * + * A32 and T32 don't have this limitation. They can access all 14 registers, + * do a 32->64 multiply with UMULL, and the flexible operand allowing free + * shifts is helpful, too. + * + * Therefore, we do a quick sanity check. + * + * If compiling Thumb-1 for a target which supports ARM instructions, we will + * emit a warning, as it is not a "sane" platform to compile for. + * + * Usually, if this happens, it is because of an accident and you probably need + * to specify -march, as you likely meant to compile for a newer architecture. + * + * Credit: large sections of the vectorial and asm source code paths + * have been contributed by @easyaspi314 + */ +#if defined(__thumb__) && !defined(__thumb2__) && defined(__ARM_ARCH_ISA_ARM) +# warning "XXH3 is highly inefficient without ARM or Thumb-2." +#endif + +/* ========================================== + * Vectorization detection + * ========================================== */ + +#ifdef XXH_DOXYGEN +/*! + * @ingroup tuning + * @brief Overrides the vectorization implementation chosen for XXH3. + * + * Can be defined to 0 to disable SIMD or any of the values mentioned in + * @ref XXH_VECTOR_TYPE. + * + * If this is not defined, it uses predefined macros to determine the best + * implementation. + */ +# define XXH_VECTOR XXH_SCALAR +/*! + * @ingroup tuning + * @brief Possible values for @ref XXH_VECTOR. + * + * Note that these are actually implemented as macros. + * + * If this is not defined, it is detected automatically. + * internal macro XXH_X86DISPATCH overrides this. + */ +enum XXH_VECTOR_TYPE /* fake enum */ { + XXH_SCALAR = 0, /*!< Portable scalar version */ + XXH_SSE2 = 1, /*!< + * SSE2 for Pentium 4, Opteron, all x86_64. + * + * @note SSE2 is also guaranteed on Windows 10, macOS, and + * Android x86. + */ + XXH_AVX2 = 2, /*!< AVX2 for Haswell and Bulldozer */ + XXH_AVX512 = 3, /*!< AVX512 for Skylake and Icelake */ + XXH_NEON = 4, /*!< + * NEON for most ARMv7-A, all AArch64, and WASM SIMD128 + * via the SIMDeverywhere polyfill provided with the + * Emscripten SDK. + */ + XXH_VSX = 5, /*!< VSX and ZVector for POWER8/z13 (64-bit) */ + XXH_SVE = 6, /*!< SVE for some ARMv8-A and ARMv9-A */ +}; +/*! + * @ingroup tuning + * @brief Selects the minimum alignment for XXH3's accumulators. + * + * When using SIMD, this should match the alignment required for said vector + * type, so, for example, 32 for AVX2. + * + * Default: Auto detected. + */ +# define XXH_ACC_ALIGN 8 +#endif + +/* Actual definition */ +#ifndef XXH_DOXYGEN +# define XXH_SCALAR 0 +# define XXH_SSE2 1 +# define XXH_AVX2 2 +# define XXH_AVX512 3 +# define XXH_NEON 4 +# define XXH_VSX 5 +# define XXH_SVE 6 +#endif + +#ifndef XXH_VECTOR /* can be defined on command line */ +# if defined(__ARM_FEATURE_SVE) +# define XXH_VECTOR XXH_SVE +# elif ( \ + defined(__ARM_NEON__) || defined(__ARM_NEON) /* gcc */ \ + || defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) /* msvc */ \ + || (defined(__wasm_simd128__) && XXH_HAS_INCLUDE()) /* wasm simd128 via SIMDe */ \ + ) && ( \ + defined(_WIN32) || defined(__LITTLE_ENDIAN__) /* little endian only */ \ + || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) \ + ) +# define XXH_VECTOR XXH_NEON +# elif defined(__AVX512F__) +# define XXH_VECTOR XXH_AVX512 +# elif defined(__AVX2__) +# define XXH_VECTOR XXH_AVX2 +# elif defined(__SSE2__) || defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP == 2)) +# define XXH_VECTOR XXH_SSE2 +# elif (defined(__PPC64__) && defined(__POWER8_VECTOR__)) \ + || (defined(__s390x__) && defined(__VEC__)) \ + && defined(__GNUC__) /* TODO: IBM XL */ +# define XXH_VECTOR XXH_VSX +# else +# define XXH_VECTOR XXH_SCALAR +# endif +#endif + +/* __ARM_FEATURE_SVE is only supported by GCC & Clang. */ +#if (XXH_VECTOR == XXH_SVE) && !defined(__ARM_FEATURE_SVE) +# ifdef _MSC_VER +# pragma warning(once : 4606) +# else +# warning "__ARM_FEATURE_SVE isn't supported. Use SCALAR instead." +# endif +# undef XXH_VECTOR +# define XXH_VECTOR XXH_SCALAR +#endif + +/* + * Controls the alignment of the accumulator, + * for compatibility with aligned vector loads, which are usually faster. + */ +#ifndef XXH_ACC_ALIGN +# if defined(XXH_X86DISPATCH) +# define XXH_ACC_ALIGN 64 /* for compatibility with avx512 */ +# elif XXH_VECTOR == XXH_SCALAR /* scalar */ +# define XXH_ACC_ALIGN 8 +# elif XXH_VECTOR == XXH_SSE2 /* sse2 */ +# define XXH_ACC_ALIGN 16 +# elif XXH_VECTOR == XXH_AVX2 /* avx2 */ +# define XXH_ACC_ALIGN 32 +# elif XXH_VECTOR == XXH_NEON /* neon */ +# define XXH_ACC_ALIGN 16 +# elif XXH_VECTOR == XXH_VSX /* vsx */ +# define XXH_ACC_ALIGN 16 +# elif XXH_VECTOR == XXH_AVX512 /* avx512 */ +# define XXH_ACC_ALIGN 64 +# elif XXH_VECTOR == XXH_SVE /* sve */ +# define XXH_ACC_ALIGN 64 +# endif +#endif + +#if defined(XXH_X86DISPATCH) || XXH_VECTOR == XXH_SSE2 \ + || XXH_VECTOR == XXH_AVX2 || XXH_VECTOR == XXH_AVX512 +# define XXH_SEC_ALIGN XXH_ACC_ALIGN +#elif XXH_VECTOR == XXH_SVE +# define XXH_SEC_ALIGN XXH_ACC_ALIGN +#else +# define XXH_SEC_ALIGN 8 +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define XXH_ALIASING __attribute__((may_alias)) +#else +# define XXH_ALIASING /* nothing */ +#endif + +/* + * UGLY HACK: + * GCC usually generates the best code with -O3 for xxHash. + * + * However, when targeting AVX2, it is overzealous in its unrolling resulting + * in code roughly 3/4 the speed of Clang. + * + * There are other issues, such as GCC splitting _mm256_loadu_si256 into + * _mm_loadu_si128 + _mm256_inserti128_si256. This is an optimization which + * only applies to Sandy and Ivy Bridge... which don't even support AVX2. + * + * That is why when compiling the AVX2 version, it is recommended to use either + * -O2 -mavx2 -march=haswell + * or + * -O2 -mavx2 -mno-avx256-split-unaligned-load + * for decent performance, or to use Clang instead. + * + * Fortunately, we can control the first one with a pragma that forces GCC into + * -O2, but the other one we can't control without "failed to inline always + * inline function due to target mismatch" warnings. + */ +#if XXH_VECTOR == XXH_AVX2 /* AVX2 */ \ + && defined(__GNUC__) && !defined(__clang__) /* GCC, not Clang */ \ + && defined(__OPTIMIZE__) && XXH_SIZE_OPT <= 0 /* respect -O0 and -Os */ +# pragma GCC push_options +# pragma GCC optimize("-O2") +#endif + +#if XXH_VECTOR == XXH_NEON + +/* + * UGLY HACK: While AArch64 GCC on Linux does not seem to care, on macOS, GCC -O3 + * optimizes out the entire hashLong loop because of the aliasing violation. + * + * However, GCC is also inefficient at load-store optimization with vld1q/vst1q, + * so the only option is to mark it as aliasing. + */ +typedef uint64x2_t xxh_aliasing_uint64x2_t XXH_ALIASING; + +/*! + * @internal + * @brief `vld1q_u64` but faster and alignment-safe. + * + * On AArch64, unaligned access is always safe, but on ARMv7-a, it is only + * *conditionally* safe (`vld1` has an alignment bit like `movdq[ua]` in x86). + * + * GCC for AArch64 sees `vld1q_u8` as an intrinsic instead of a load, so it + * prohibits load-store optimizations. Therefore, a direct dereference is used. + * + * Otherwise, `vld1q_u8` is used with `vreinterpretq_u8_u64` to do a safe + * unaligned load. + */ +#if defined(__aarch64__) && defined(__GNUC__) && !defined(__clang__) +XXH_FORCE_INLINE uint64x2_t XXH_vld1q_u64(void const* ptr) /* silence -Wcast-align */ +{ + return *(xxh_aliasing_uint64x2_t const *)ptr; +} +#else +XXH_FORCE_INLINE uint64x2_t XXH_vld1q_u64(void const* ptr) +{ + return vreinterpretq_u64_u8(vld1q_u8((uint8_t const*)ptr)); +} +#endif + +/*! + * @internal + * @brief `vmlal_u32` on low and high halves of a vector. + * + * This is a workaround for AArch64 GCC < 11 which implemented arm_neon.h with + * inline assembly and were therefore incapable of merging the `vget_{low, high}_u32` + * with `vmlal_u32`. + */ +#if defined(__aarch64__) && defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 11 +XXH_FORCE_INLINE uint64x2_t +XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) +{ + /* Inline assembly is the only way */ + __asm__("umlal %0.2d, %1.2s, %2.2s" : "+w" (acc) : "w" (lhs), "w" (rhs)); + return acc; +} +XXH_FORCE_INLINE uint64x2_t +XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) +{ + /* This intrinsic works as expected */ + return vmlal_high_u32(acc, lhs, rhs); +} +#else +/* Portable intrinsic versions */ +XXH_FORCE_INLINE uint64x2_t +XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) +{ + return vmlal_u32(acc, vget_low_u32(lhs), vget_low_u32(rhs)); +} +/*! @copydoc XXH_vmlal_low_u32 + * Assume the compiler converts this to vmlal_high_u32 on aarch64 */ +XXH_FORCE_INLINE uint64x2_t +XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) +{ + return vmlal_u32(acc, vget_high_u32(lhs), vget_high_u32(rhs)); +} +#endif + +/*! + * @ingroup tuning + * @brief Controls the NEON to scalar ratio for XXH3 + * + * This can be set to 2, 4, 6, or 8. + * + * ARM Cortex CPUs are _very_ sensitive to how their pipelines are used. + * + * For example, the Cortex-A73 can dispatch 3 micro-ops per cycle, but only 2 of those + * can be NEON. If you are only using NEON instructions, you are only using 2/3 of the CPU + * bandwidth. + * + * This is even more noticeable on the more advanced cores like the Cortex-A76 which + * can dispatch 8 micro-ops per cycle, but still only 2 NEON micro-ops at once. + * + * Therefo \ No newline at end of file From 5f9c439b14e12d37f65f6ce6cb589cc6ee855923 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 2 Oct 2025 04:05:05 +0000 Subject: [PATCH 3/3] Add GitHub Actions CI workflow and fix build issues Co-authored-by: NathanHowell <170829+NathanHowell@users.noreply.github.com> --- .github/workflows/ci.yml | 42 + .gitignore | 1 + alphaheavy-quickfix.cabal | 2 +- cbits/QuickFIXThunks.cpp | 2 +- .../alphaheavy-quickfix-0.1/setup-config | Bin 451873 -> 0 bytes dist-newstyle/cache/compiler | Bin 13559 -> 0 bytes dist-newstyle/cache/config | Bin 4507 -> 0 bytes dist-newstyle/cache/elaborated-plan | Bin 885384 -> 0 bytes dist-newstyle/cache/improved-plan | Bin 1752857 -> 0 bytes dist-newstyle/cache/plan.json | 1 - dist-newstyle/cache/solver-plan | Bin 677434 -> 0 bytes dist-newstyle/cache/source-hashes | Bin 38335 -> 0 bytes dist-newstyle/cache/up-to-date | Bin 4456 -> 0 bytes .../packagedb/ghc-9.12.2/package.cache | Bin 40 -> 0 bytes .../packagedb/ghc-9.12.2/package.cache.lock | 0 .../tmp/src-3399/assoc-1.1.1/CHANGELOG.md | 18 - .../tmp/src-3399/assoc-1.1.1/LICENSE | 30 - .../tmp/src-3399/assoc-1.1.1/assoc.cabal | 56 - .../assoc-1.1.1/src/Data/Bifunctor/Assoc.hs | 119 - .../assoc-1.1.1/src/Data/Bifunctor/Swap.hs | 59 - .../tmp/src-3402/hashable-1.5.0.0/CHANGES.md | 378 -- .../tmp/src-3402/hashable-1.5.0.0/LICENSE | 30 - .../tmp/src-3402/hashable-1.5.0.0/README.md | 7 - .../tmp/src-3402/hashable-1.5.0.0/Setup.hs | 3 - .../hashable-1.5.0.0/cbits-unix/init.c | 39 - .../hashable-1.5.0.0/cbits-win/init.c | 28 - .../hashable-1.5.0.0/examples/Main.hs | 52 - .../src-3402/hashable-1.5.0.0/hashable.cabal | 214 - .../hashable-1.5.0.0/include/HsHashable.h | 8 - .../hashable-1.5.0.0/include/HsXXHash.h | 35 - .../hashable-1.5.0.0/src/Data/Hashable.hs | 215 - .../src/Data/Hashable/Class.hs | 999 ----- .../hashable-1.5.0.0/src/Data/Hashable/FFI.hs | 76 - .../src/Data/Hashable/Generic.hs | 25 - .../src/Data/Hashable/Generic/Instances.hs | 124 - .../src/Data/Hashable/Imports.hs | 14 - .../src/Data/Hashable/Lifted.hs | 98 - .../src/Data/Hashable/LowLevel.hs | 103 - .../hashable-1.5.0.0/src/Data/Hashable/Mix.hs | 48 - .../src/Data/Hashable/XXH3.hs | 126 - .../src-3402/hashable-1.5.0.0/tests/Main.hs | 14 - .../hashable-1.5.0.0/tests/Properties.hs | 287 -- .../hashable-1.5.0.0/tests/Regress.hs | 128 - .../hashable-1.5.0.0/tests/Regress/Mmap.hsc | 73 - .../hashable-1.5.0.0/tests/xxhash-tests.hs | 63 - .../hashable-1.5.0.0/xxHash-0.8.2/xxhash.h | 3780 ----------------- src/AlphaHeavy/QuickFIX/GReceive.hs | 1 + src/AlphaHeavy/QuickFIX/GSend.hs | 1 + src/AlphaHeavy/QuickFIX/GetMessageField.hs | 2 +- 49 files changed, 48 insertions(+), 7253 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1/setup-config delete mode 100644 dist-newstyle/cache/compiler delete mode 100644 dist-newstyle/cache/config delete mode 100644 dist-newstyle/cache/elaborated-plan delete mode 100644 dist-newstyle/cache/improved-plan delete mode 100644 dist-newstyle/cache/plan.json delete mode 100644 dist-newstyle/cache/solver-plan delete mode 100644 dist-newstyle/cache/source-hashes delete mode 100644 dist-newstyle/cache/up-to-date delete mode 100644 dist-newstyle/packagedb/ghc-9.12.2/package.cache delete mode 100644 dist-newstyle/packagedb/ghc-9.12.2/package.cache.lock delete mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/CHANGELOG.md delete mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/LICENSE delete mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/assoc.cabal delete mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Assoc.hs delete mode 100644 dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Swap.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/CHANGES.md delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/LICENSE delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/README.md delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/Setup.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-unix/init.c delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-win/init.c delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/examples/Main.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/hashable.cabal delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsHashable.h delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsXXHash.h delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Class.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/FFI.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic/Instances.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Imports.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Lifted.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/LowLevel.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Mix.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/XXH3.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Main.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Properties.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress/Mmap.hsc delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/xxhash-tests.hs delete mode 100644 dist-newstyle/tmp/src-3402/hashable-1.5.0.0/xxHash-0.8.2/xxhash.h diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1dbdb45 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,42 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install QuickFIX C++ library + run: | + sudo apt-get update + sudo apt-get install -y libquickfix-dev + + - name: Setup Haskell + uses: haskell-actions/setup@v2 + with: + ghc-version: '9.4' + cabal-version: '3.10' + + - name: Cache Cabal packages + uses: actions/cache@v4 + with: + path: | + ~/.cabal/packages + ~/.cabal/store + dist-newstyle + key: ${{ runner.os }}-cabal-${{ hashFiles('**/*.cabal') }} + restore-keys: | + ${{ runner.os }}-cabal- + + - name: Update Cabal package list + run: cabal update + + - name: Build + run: cabal build diff --git a/.gitignore b/.gitignore index 94b804a..3ca6763 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ # GHC build goo dist/ +dist-newstyle/ docs/ out/ *.dump-* diff --git a/alphaheavy-quickfix.cabal b/alphaheavy-quickfix.cabal index 8e80db9..da14c92 100644 --- a/alphaheavy-quickfix.cabal +++ b/alphaheavy-quickfix.cabal @@ -34,7 +34,7 @@ Library HS-Source-Dirs: src - GHC-Options: -Wall + GHC-Options: -Wall -optcxx-std=c++11 CC-Options: -O2 -ggdb C-Sources: cbits/QuickFIXThunks.cpp diff --git a/cbits/QuickFIXThunks.cpp b/cbits/QuickFIXThunks.cpp index 48ac0b6..b1cc17d 100644 --- a/cbits/QuickFIXThunks.cpp +++ b/cbits/QuickFIXThunks.cpp @@ -277,5 +277,5 @@ char* sessionDisconnect(const FIX::SessionID& sid) extern "C" char* sessionString(const FIX::SessionID& sid) { - strdup(sid.toStringFrozen().c_str()); + return strdup(sid.toStringFrozen().c_str()); } diff --git a/dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1/setup-config b/dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1/setup-config deleted file mode 100644 index 5c321a4564e255e181c7e2fe1d3c093d03b30a02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451873 zcmeFa>vLRJb}x2XltiiZpd{)o&CD6jXefHnjeb954Gj_`MMxk45uhZ`$dS(z=wYJ| zrcXCX*w=9!$BwVBuOHXO8|APD*`IN88m*lth-fN$| zPoHi;ATXv%;?xMhS!=Jo_IvHM*JI1OABFC|7u@r9A~#4z@nFY|ldHqbAeEG>6|KSJ!`+rp`IsA`*`|0v-vKK9nr=w9cUVe~_?=9=9c2n#3DwkOe z2kE3TiXNnsgJHDnPY1(r`C+f~Ri{-M4o1_5%aVb5quN-W(}p}BZwv?i2L-qeS8DLi zW#!K&)SqWisrvP;n;4w>j-6da3lO?kGi+eLMyyWTi@w3@g|{^{JAUs0GGuUWIL`TXQ7S>B!O&CbAI zTSbLaJ(}=>=fzj>lY9OL1-lRJwmhA6FFH@+*Aj0#D|T1PO(&grlW18i%H?#DV3Oq5 zj@lKfp|2^eTa*@V#r6iQXobE}i`Z0%&wPuYQyv1nuWS{iC zG~y~=p+73EYNJkPRmF??bp2a_nBjB$7|@|)Qw8U^gSDAEnXnnE~>b26L`CXBzS z{;t%k&1wh3)@-z!UMK9vL8Ik&y{P4P>it&G2m-&`0Mqq;$L~bVW<88*wN|6Xcs20T?etJ# zHw>C#vlH~fb{n7kT0KNpw!&`E?8fz8T&p#@-F_?T^*z7U?J+lJ_9lA7Uc~Q}2B_C7 zaTxcxE0bYZ5wlSD`&RY|y@Rd?&vBz0wWE3yjc?XktxnXaHQJqaEehkf-ikUw*K5_f zK{sec{Z8BWFtA}OuD88L2NR>&Qnfuhj?!d04x(%v^cOJ_7_)}o41LUyDDHNf4Zqz8 z8qIoC4|*Qhj>2}W(+y)(U8}e2y?Rjh>wzD%nm#(JUkiB!pGhZsJk~GaceI>(wq6OF zZC?SNoDBAKt6!u)z(c)-(<<(9+5AtrP;lsq#bPfP`B&L_!8wy1y-(8Fm!t9|;Nsu2 zl`lTJxr)AQ@&2H{)S31Rl`n33>Ah$;Y}D#Jot@|O*S_Ml^sc6%@cTWcVPZ4Za|Tt$ zv+H8avyw;6QO08qqs4SIM$7qa{`O4ei@T%LizDX?{)Fnb$J2Cz&1rEtZr_W^xtPIU))acCF|zbD_?BfkH$l9e;>QT+6Y_fD2UQ*M|+cs6rs>q z%7377cNAiu3q5}rWi&K`pizY4Ji#}7DfA8Q$L;V?TeZ<>^v3BL7g_2M2&Z%q4zKf zH%MOyf&IdGm06%$e=OLHG z3eLekohA@RN*V(z_;yl=DHoO4V8^fx_dE5@TOtR!zTg?v!bP|&}f%)p&pE)DpV;V^k{WzQe% zOp|FUmyU*u`U^0e9#cSX-W~Y~_MPqNKJl(0Vzyc^=MT6PMpHqyrs!tF;6=7!YTf>q7Id4N_0cRqR7J-#MuBJuXQ@NT;2scyl^ROBy702^;8WwI0Sr(iCO%XE81rz`4%# z0Pxu$dZ6c>28cOif}DTDWl+b)SeMYBMI9NyX)r$I!jG<8+fGaR3r@7#iTLI;84FbD z%hmyIY7a~Lv!I#*oR1lw7~C9A(@!)f8YFwj0y>{?IgH7*qi??^9(e+^(l{8F@ zNe=4#A(uprS8*x3cV)aY-Gd;RmNZDzXak+wTn@lH5j1u}fK~0&K(VXj!OqXQEVx}w zAUBV3d!2kDgggxs+~%OpFSsNm1QOC@8U2;kL!!SsUmDo7Ye{VVRbcDy&hIcb4sTlb z1S#o{7(lu9>9g}8<6;0=;>O{TmNY=jFcajAxeQk4m3=xRy~*Hygp*i9&>s*ROqlcM zTngN-x06`}r*D)Or9^)c?{q$wG+30MMR0th{FUhhQafsnba@RHbI4K4waG+(eMC8L8qUW;i-BZ&J#5sLFN(?A#87)B52QiHu{5xxRefrKu*mS z#L)Q~L+k^EI8Mw|sIk-G&>J6^Bs5rz-z&iV7%{+ z20;?iz|vu=A!3bKFy{p>g`T?p5TX?hwt+XqWd}cFu>(Uhp|QS4o7r4E=f_M9r_U{K zXAs~Tw_DO*#d)H?JLef2E9^Qn5eIZ~Kvo;3B@GfQ%mzBI8Rh82G8VN4iE=j3`HIV- zAMPZ>=*no6KvIY5B`s-~I8}2{=P51;vV6%UIdnDI+b?OLnC*G6v&v;bd3)@QQoIW9 z>B1T+X8R1>xyGddheF2-smgH#(IpjpYq+>Y6<|0&UM&7wDp=sd~vFgqZkPRFS{^YwSJe;E+x43~gpc`X5?q`wHsQhal+ zFcytjl1}jOz5%tJho_vhq=9nGa$x5smqp#;%DEK@2WxRje-`)|zzG>2a}NrB2o~!D%m@$XqXvmN zWCNXm%MmczkrRkZYM>aOJlOe686 zq(P#b4Rj`44nSg8-=j$Y(m>I(d9d>FvI@M_eA`$RaPU z5?bSumNbSK$3h(EKV>SS&E9xTXt+!IvuZN~oIhcFv`QW(`fY&(m6C>oE4)jJ*@NaxLC)+1 zY$@`RffNtD9c_=JP+v3PXx}~8M0%z2`EaRH86_1jg^6o~CkIvR9ivz}-4}A4ONjde zwmCWT+t;@g_N%Ku{poyOfBI8}_KJmOGNKTibE}n#3(JW4?R|kU%;HZ}u4_&dfsE-L zwmLBwer{nM&l0ql{xjDif4bx9F@ECqhN}5FycWCH4n}xn;;}I*e4e12<0Qstavx`9 zU;b#Az@*hxqOp7Jsv>%Mp{*|2tY)Tm%k(FNb+W6j2C%EHaz*FW8}Z_vec8k^TmO3H zx?7pzw20jbmNUzNip7_1LaXVDQx#VgtOE7jX#Cp(Mat(G*)Vcu$~hXC*F8RTb?c4H`XHz5-j6s%;X8L zx;dM1Pvd%gZNS~X*d%;*nkjOx-HO1HoA|%PF_mxX6GJ`yY&5gmpQtbk@7YLt`9eCu z-8qe1S~Yk04h*E#x#4gCt&75@baDQEjN0&FD45nRro;hlugTL2;~9nWfbI( z?z@xSG5!CmP;9*Vx3BiIuV3wd6&{R?zxgkTV?co=>4^V=hWaVW%ipQ&zAMY%cg4ut zbTy_oHtL+ht@_2nt@kJDNi4-;6xK4>DbooV24y}lYuC8B#=L$C0_F~nik>SkZOOCP zy^4LFD&$ek&f@17W$P9U48=c#?0JTwX>?LmCP^}j^#)_@D`~8qr#XNaMoP5S-u-)q&Q@YgBc9TbSdxBfOlrlSCXO zvvs__Ew)Jvtazq!eRL9RHx%M)iw>c4s_54c(O$ee8sqf|D`7l<##Ysm&FAu6>|EGt z$v8~@%V6&iOnHyEw+5q+K1ZvPVX%uA>>1>95*hW(J7ix5MymVpUZmHM(S08P?C6aBm_ua)o5Db}kqvsW?L*@M1R1 zka?U53zfI&FuDFSD#5n&2Iy&`6q!J7Z$A62Y4@;Vd7O2 zmrkT1#(oCtEfb4WcEiY(i(&@#g`}V*Pl=BT_eH#fV6)6M_G$T5;nbvT;L`3%LOw1G z$!K_xHB0#Jgn;>Dn6>G(nN7y$6a{Y_>?)$=EBO5j;pnEmyrYnIA=gyl@im&bAxr{r zzq?iJhX>TAOquqfsw*?ml%Wy;ocv3 zZhEliCqv$wvi3i#$|MXryRo%S-hGOJ*A<-i2DHNP-&iD#aYMvsfI)`t!q~p_B)3ZaJiETOdj0m+b@k_||G<@>Z~gFWlK)=3LY}8L$@8>& zW9BvQvdXK;bcdcPdU#h*i+8y#v;;~hM%3JT-LP6$BFUyr^8NmXYu6;4SoXq z#96s}p}0maL&Ksx_q9Aa`FQd_{Tun9*@$PrZpMj56pm;%<`d32re}77@$GBJn4jkHPQ_n5*C5T*@w~+)wUYL()#OgxYdpvIle$W$v|Q55^%-n00l8k}`|^Z6 z%X8f5W}k*%xvcAn5(_%clgm)a=NouhKH&dY^%O3W%+>si-k2WQHJo?26ZH(AH$fcd zP!D)n^oVG>9zN4f$HUz4W4DjT`QGO2lx`oAhdG=ZXD6Cg5>COqx=zdaoX=lWXdk)@ zT+oeUSnz3{y{F)jE>3Y&WFOtdzUj()-9Efe(L3D`2Sg8=GQcLTchYnHWc}1LkwOg` z&k@I&=eDj~+ih8**nOQn+-+$>TkDgU$?|Z{(#NGGgEpNgad$-&5{J7p}^bm{=@yY_f?>BnAxZOd(w{{%GTBpn6 z-t%N&UM=pROceYxD==U6s3HCo*%Jz=N4AV=?3nxS_*xKv@Eg!yfBsm^D`5zcn^~JT zw@!BU@~(5lpRD*S&^ss!uZ9RimPWsV@}^xyP{T^6*X$mVdLE6})89Ql!lT)ZJR>c=i3@l8`yvYjBc@4j^jO*jnbs#xUA(KZ0=~LNvM`!ijySx+DKu8QdFG z~{Y$tM$%PcEy5Tp%%nYgvf-JQ=tmlpMKe&U-gMw7`Sg|Mx6R^0dD zz<_wzjZ0bpGx zDuL$=7%`@bIIrZsSGR96NdM&J_)m|u9G97u6IzD_$MScKE!?@j2|f1D9*?tqJPOFdGODP}7;%pqzyVg!jX4bS z(KyMlcu)BEkI}egA`g$(9GT}|K8{Rtk3O2v0}qD@h1rBui(#%rjYi9BLeA;-Y7vB( zb`N31ZsVlMQ+I2j=Vz_w9aDPC%Q zfEsmo>pt?QYfHl+4E`QHH$aKG+?={|dP&;7Jlw;A%sAvbF)k zd&B}-Dh~(uB6n@$P86pu#3wkmz+(+s7t+BXK+5Q&bxFBUyb1i8-|yC2U4*Yku=ubY z_M!ms;Tu7}+mE}U7H@cAydXrCIql7KEyolFnC=Np-;+CYzhg|L7CN%p?DTr_(y>d{+`%p>>9ny=$G%cWRQrH)dhRtHdyCfL62r@DaL~!^e z*C?+@y1jn08G6mG?<0SY2WS3Px9=nIP^aPhH7{staf6Lbe}q6hlW{Vvt|DCq#GUG$ z$Y8m;1%6rbbH10yMbNHMS_K;v8j1Vj0%M6li8*?Az><#h;QVkAs#xkw^c@?su;NQa zIN}>rQ;5iqx3wIrZ_O*gL*%?6q%jq=mx`;E&3wIQ!DlMVVSj%CHu{~3zGR^p07lTG z_!q~!;(59qC$&Qr2!h}7c7&b%8`5uo`Pj^}BB5~m=GMv2XuZ~s_6s{Lz2Z^Q7KnH4 zY7e@nK5~XB0`v7+w{dNzy%#CaYSn(F8#H<~FZ7U4uG0>XS+3K?Gkq`Y#f?rKJGmG4 zqaL1b;${@KqFSfbXvK}duOk~9W?YlS$s(Iy#maU-n?CP~kfqwlyw+=W`bekNt2e!V z(C@d946YtFx|H}V_9CcEy0vDv*XaATCMra_IKLazyRDE88vsH@`!40&8xQ;`xpoUN zw}IqiIEXsEUOh(AwxHL-VdQuG5DCosUag6wZegd^Z$Uv5_FJKcWM4tu^J~3!BZ55x zZp}?j+O`%WSOmJMQR($+-Kd5phsZ+LfjXz}BQ09osW)2v2rTtlUHo3_hpnbp>$ZKr z+ponq0wHFB53M%LnJKF_+<`p6hc#;JK!k$=sa0>p5Xiz_x7&_tNco0J<8BQZ^SoZ8 z9f$2k12uHiq7mrt$N?@$IwEw@y-_`LJhL&)uVPBldOwB>+NPY>PCL#d7S`!do5P2-aQ4jW}r5TXhPv<6*k=qHenudI3hd zTZ2tY(7?3t8W@8{yWxRHucpT0llvG0L9$t?*P5P>>>8utCL z*~eJN=+Lm=i-QPjqS>!`vETOU&92wuXH!M_$UpeP@jpCX`)hWKGxpUv7rB4)n6l1Y z`$%`W`Mdd3VxK2{+|$mpS{};=ett>DDZ(J8wYruOU(>NSR+Lth-j^AA$j^6gP37f- z;^hqX_V_Q6T1=KL-Ci5Hu$mA-dMP}PxDAOgV5H)_Af!>G5%Uf%s8}TB57q7H!Gi~w z7UJ=ncv?p25Xt}=Q8=Gv1;E9v#=i%<^%l(W_J(A`mLi-J2R0JQ)SHqLDW+@gI-;FT zDbF|LUr@WeR7U8Z?2Q|-B@&9%gX*L;9KxefszCSRnqc)JG_>V>d&QmX;w_B;)h}gO zbGcW@v=5KhNToPV@XiEnaakP9=@Rk#08jjaZzKZ88+R%bEhV zz$K(wS(aGa;IHy}!(Xe2^+mz3b&wPFZm!`XH>E0TRwa9siN0pvlSBHW!jF z^s=U{ZL5HM@K+$*N9iuj#lC0MMR!$#%{JrBA}o_9vv!rWjB7C4snU2dh=1}{6CWd@ z3fA`A#MlrkdduECdGgy>>((jsuo}h7KmL6rt{)>B>mMv5(v4IMst~K#)TR&3wC=Mb zqp0wpyoxKyyn*9sbJ$O&HUHvp7==8XDgMDRx)FV%yM>JIvhab@{!SlK1v6HDnj=7b zYCs?oFECpaY8X)uk^b}L0yA&T+0g~BO|GI4;iML4Z4qY`jC9Rb_ieezO?ptK|IPk8jXJrOlci0aJ0qK1INVlFadUJ` zW8_kC~4zvNafyYKr;-lY|yT3!+3=Mq$amtZ$Y7~T?)f=icH%9EtLqAOg1 zSR(`4QCPxsfV7c_VTVU-gsc^j#NLmpJ5_h(IwXx~yt3r3Z0|xryi#l%hs@_8Qhmo! z#}8nik2mUmy#*m5_FFYvdwW_`;Fi1c&463zPKN29yoCPrm}312 zuAl)fWLX{*yW*lH2r}xgN7R$St5GaztzN0u~qEQD%qqtd_ojq5YID5^lz==36CPl zjz#=V7Y}`Vuu+d9_e09yfxH0Wxwy%-QKD zOP={aUG!m3PW_`|i^51<9n!dMGef535#mxOO2sY>7^Fr^%r2x1#e zgdT&!PYU*g{3HaHc%1C1kx_Z7&wVk~_uB78TLwqg6qeMqg~>Pt^puNDo-IbXJYHT8eI`1-&)yCO&LO zeE3f^<5mbe6R+KFFrDDmvC^AqVfyv_?6HXbJrc(uR8Uso|>cCtXG z&MO+gGgq4eyfF)^u3{B1%_8_MnDs7#e+oID;cphuC-`kfc$pFON@U2pGmvVQs*;hk z)qyS!ZCh{;FB5^*K)pUo$kfPb6N8Kd6~M@HCAzzXy##;Ny(+#Uc+D3Jiw4w~w-L1f^!eqD}VhPWbbFXn58BksKevc#BI&T+3Eft>bZHqwF)~C(Z zVyftJ%#)6gu70{3XW=&WT(A9npzl7GG8M60xI5%`+?Q1PWd1JAGqUe|q&qLt4p!9{ zEXJ40#j68)am8k5sxO~aB_?`|)EAs)TwMBIUri__2S2hp5)Erfua)NnsnsMJXLC~) z#eu(%?7>V=7A0){qP)AU1T>DMC-13@D2rZ)<2iphD{8&|EB;&Rs&5P)W~@qm?~Pn1 z%D&>Sx(gL@&Td9BsH||fDtXscALT^Xv6Gz~5IvBjdSK;%=#rF)jETN2+GBvSXL3e) z%|cnDSmyAsW2jv*)D9s;AqLupJzH5f%5D=j=8XG{s0Q*2e~?|hmK#UPG{zWmcu0=n zFS4cdrFuIViQH}sl2r;JhCj(6#}dW6D1Vb|Y>f2>Sq=?*sM{<*-60JJ7n7g1wqZ2S zpX729pRDaeD%jJ|M327j3Mn-jf(oXbGhaq#Q!FJ<5DJ~s+b`}G!< z)iEOwXpo|5RR0E7lYy)wFv3{W}sHr zyqc%HY0Re?pn00To-b)PWv1G@lR@?>_Z$~Cy6<`ZX4dku{wUsn4Rk%I{Ak7vJ_~2v zD&E@o?-$kI-hp_4a zx(!e8jj4tRMzs*h6hzDP*D9^U90=LI=~fDB+N_J;5lulxjSQq8O}V&i)WfV#M5At? z?UYDnkg@zK5i`D9Oo$eW1h-80ErCucZ)r?b(kE+r8yGMb9^SwXcPpCgCZV2NVtCZt zX1Zdcs&B?b7tKJG1IBxa>ZcFYo6!(@c}{Ufh_CcUOK20C9X(t8&V)fN243P9N zib2y~qi`1gT6BMqZPTJBfzOkPS$k7froW?u!e}$g<>b7PN1$uLG&9hCEe~G{(8Wyt z^*nSPC-z8-UNeQQO??K61yERDCg?nEv zVgAYl-Fdr|)k)0Y+Qu!69GBqfu{8-L zJw3aa^{uII@$!O0;z!v(X* zKFo}X)sDY$+u8wYmIviLy-Ook4(=#;$Zb|Sq2E%4a%I$4u^5RG%?~vFNTl+G^0XB9 zUyqjEWHB5Y!_e$Jv5>L^y6YleH+PAcGZ_acMCLGWCHNV(Ts-$Zzdt+9ffQa7G!XJz}`zr`uVU zK}QlZPczXZalTboSGSl4(O2s0Frn>O4Vg)7qx^B^MAk(xQS=z-BJ^>lh!{0oI3Tp>!4ZA`dE{w< zOYBedflhH;Zgl=ADTN#{kSdQwx%t2FZFGbiHz?G1@b0t zL(v#YAmk^Zyt!$W7WyW$|AR$H2yV!D&q+Lz{PdOnS@F%>H(to5!WhI`u-p>m> z`cf6j7J6!6>~qvMFd0({bK@5NdhUBpefWYLDhN%c3hXIG^=;L;Y6enSX{VtTRj=kT zj4Rg1bMA|v5mOPwW@J~+F z=y0}kmg&#Jld+U=P9VZX$F{G+Zhxm$MdZGJ_`AeiMb_QPKm7fD z{H_t&vhbY)gxuWLH(OMG#(4tg(ukVm}%~uE>NtMMb=r zQh1?Ml^H-BLL42M@P-#fjL14PUuCH$92r1RQC`uW9y8@8yT}W?2RqBaAZ9-HmnkUN z*j0)q5x7UtULj8x4-fayPP*^obt)QPa^Z4DS?OaDJrNfg2utNWCrKp3Aj+iGu$DLw z7Aml+AOjHbeiH=M5v$45sc1`_e2jl@Kdgc6r(O{qhQIF}7gI zLv{vtu3x!!>$*!F`G7hl^H8AxM?r!fh{6w~>rO5j_Thtixhm=rUN@-hYf~YPDuc9w z_>q_ff)&N3>`e9Ta#^L^WkUx%jvHYt)s%9hpx){FeYhyLT8(bA23Npt?6vzrqwaTF zURT@2^5!gGSvKS@%hQ{I^2tsCtGSyCBmMK^8K{|C@Cohi1*V?gF?XbM@te|ffA#px zwIX->yGj(5yW9y2Exb4n`^mCwkr|{cdm1wA|MZxROy;O-ZZva*-v8opWuEugM>4hj z)YncQ!ezfvfggJV@dY3%!v((sIT>DC4L|C%AV3FU3o-G#ey!GO`UtVqX!T+Q80vV4 zKI|j7K{Jf_VWgZ9rtE!Z3*$nbTJ5|JPN4$o_Ai+JOvt5LkEG$wuQBA(kLQM5%0^(B z`Bgv5+S-csE6-(LScnjIBulQc>S06|qZ}YGBQjp}`i%%7HtLAL(1{uW{Jr|kMng*x zFRIFUEYnN)gPhq(283DFJeoI#nLV5I zzcq@v=MmJ~N#Jv;C>Z*o$lQi+kN@mfwr7@KOp6t~7q)bF4^s z+k)_R(iQO{JK|4Hw0pAdsj~9<;^416$kM5V%{f|_^Uo){70*v$yDA<~M2s8C{nBl= zLI^;ikBp1~Li5y{bq`UbD9VywM?4?ICx)05)uTqe6E=}3BtpobP8|`4f@ZVX;8W|+ z*gZ#_2pWxd=l}kg66#4$=zJ{GY{kqGt^f7o$vF4xBMH{$>D_QlA}D`VJh#a=S+%ZzReRg+HfgrY>plgwhfEZ}NYV zerS>cIX*$fDbv<@(@6rVkd}wT1Lb@Vhclv7K1iklE!a(9oKMxkTTQA(p_mP(P@eBm zr=h$%h>bRgrZPrbp=m#_oFYDp+iL0z5D2}2+c@*48wiYSw_Sl5kp8h zQ@QDGG9AJ-E`rbgKt@R-?ddKerTH1rlxx({@FAKEfU}iWVy)?tvAw|IO z?#$n1cpFKFY$#@=U#s9|W+3pSqQLUGAZ)q}N!6&LOa@XE9Y__jI8}C&3dB;qpeL+9 zSG~+Bfp?{yV>}3A=oW{|ku$Yuv-);cdx{U-zhwt*k>1`5Bj(tHqb3WF%WEW=(u^q@ zJcWDc51!FQ!PR8p`4Zxr{^CU5=V45%99Bu9sbbVNokRLud&;Bi4`xp^u)U8NmufuSi4+SPVq=Yvo9mY zLpU7y3H&HINFiROC8uc_LJv9&l4Biy{YYu^evg`&ULvW*_0gILb_HMs0RULm+2;UA zlyX=${(;b@p{ZAq+E0jsTI%ArV@fUzL5?}$PT>Fp#54(qc*cesBp$dAmdakRJAk(X zm_xy@zCx#^dl3G>nCv%5bjd_GkW|0=N_3YYYEdE`ipQ9w6NroSs-0rO{3gAhi;sw? zv@=4?NJy6xRJk)om}D{$gt!OA;3yR`HXiXqNRA}NMrrwdIZXB1du|HlDqi`k3&_NT;)6G5XwG}P##q>q5X6l!4P zK^+aI&>>jcTm%N6FpcS;X$@eg(YN+Q$s8{5X!GLb-;*Q(h`EpO#4={=_0Ty*Qs! zNPLT%RBtpklOg-4^5u;`Z*M7levrX^kmLR;2w&?Ah%S|pn{(gGu9vzDM?{!ZRkYz5 z4%ByDBCBOHjP^G(|0<55FsYh8fzqEE{Z-vsyQTfXSj0SLE;Q_Km~$fB<4H)E1&)cmX8FnujaoZwH#uGKxq3gibfCBXNY^Y&CjbGei~+W*;}rWBuc;?eC8Juy6{~&oDL;JLeoF!ZFj%p72!8 zJ>hVFKGI9bVY9iMDUj$%_HYj!yPts; z*-(ERO?M_DcE1EmqxoCW05JUzHITH8#iiQ0!S59G{(%=ux(#ec-ri#U!xFg1rD&Z) z7iK{X71_6qj#w&NE#?kZKSiRqVteRib3CnLS8m|GPr^TplLP!hj6)iSTqz%O#I0Pm z26+SEGmRSx-hs#{8)^cQH6^*HfB(wJ&2$x-UY5APpd^AHA~rFut@#Qsm8};HsraMU znjUQD@&L4@lazrTog9o+hUH64uQ&8CVwbOd?c z;98g(k?SC??}+L0Kd6O1>v~9ns^UP+jaJ%o{Bo>Q7Q(J)oDbRWTt| z4~Tmeg>B1mK)M4=P6CJ-it#31z-h2M9pOGIlO)Tk2NQdut$n$?LFibpRQm)8JTNJQ zR%eBxy!2K`CoqNDjQaw0>DgEzxgm7#51^^ zM*+xSxJl0mq7(A#fK>U^ckj#AVGd*Mk>7;f{k{}tT z&?AY4UR1Ai7gbZar5H(bZ9jl=0}T4~q({0Vvt?-+)dCwSz;=_sB~--g#Bz+F%prFX zY}jB|-2YYk!7)5n5NwhzxuiXU=Y;t#imy;4P9_vp6`Kx5N3x4qiK0Tw;<*>$fIFU; zD~kM@)QInjxhPa-th%Eo)?MgkM2DysUbSeXnt^zsc%dL|P_4QJ+XT&gaD_RI-o{HT z)}34fXc((;5ULdWK!7)NsA=HDzf+;@1KLOIs5rfVNV+GQc_32WPp}5axd<%ogAZ?q zG$K+z7(k;)Gt*>Cu2H(|BQQMlif96LrgE3Bx;L^vG;8!`EuW3cv~aK#-HYVPtaeb* zc>1_9!N(Qk3YXze#Y_P{F9zBi=qR9&eqvVOPma_o0*u82dL+ku@$MrE7?gX^mr;Hh z1dA_=^CXM;sy9LOR+UEivZCc`O71n<_OlV8ZRRSg37#aNI^A%52b~C7j7A$-)0*v0 zv(<0bf_^>nS}>JGs$v#s&Z!bgDWNxIJ|<;mnXJnETeeKxG7Co>7?>?Fl|182W#)xj zBu6z`s1Y}DQ($T`S!Y3=gfv6)hq+GEB=1mAA_`!{bk%dW?gNT(I_@!4z0POQoL+^E zZZiZcxMrRU0@@YKbfrMa*D}MTSo_SR%uH%@jeySdi89E|Shd3=yrjs@aHO`#>Xoh4 zwKavL;x=cr7)gwViTR^^A6S@I#V)UiE-ggmJ`s`2bo8R?(aMM+$6ljqnmd{F^njX< z*Vqw|uW97pn8!~>nH!>bsU2Qoo1#z%D-DVPp~}sS6Vo+gc+D&=F}=V`2y8`YJ`Tc? zD4dxc!6s1%&Px9v-$bDv6f52gFgMfD674R{#W7>1`<6W|1n!fT{vBKX{-gzs^av z4AF=}!socr<}q_Mc8fG}i#+O%W|*8~=g>d7@BZu)Nzu+M`#= z4L+vT%%@~$S-~TEa1WbK3;N5T-s`lH`nKEc#7G+C_4++%NE=A+3KN-LtB!m!$m|P8 z>ZsN6{WwBaU1%-wRO$gcXoqTu${Ar&Z9S#8PICxPt#+>D6e>W6XHg`$p6@RX_`qnn zpE~J*5iS9-B9^nRD~^y*yNjCvV&36Bn+H$afpC$>I8x{Yx||}~g1Fq^a+s^v65u;{ zh=jfxc28Zei$t{%iSTvgBWu+A$buZ}f#aDbAKX?^H6m4IAwv13QUzNc2MCX->V0X` zo9w1v5w~B7smA;;$z#5mWX(UJxm)nQ^c`!5uJ~_8uN~9L>g4BG(aRj1tWLZlUSvo7 z$!l@Gx$6-LX*8yIOedWa?~vRJkFm|pIjoQAq;uMgbH6^))70sBx1GhglZ+@TD4EKZ z^;F1yIh}f${z+4(uGTMSw~d#xRSF&@J>FY+kM||mxa}W|;S>UOu|%XuQnenGQ?R(Z z6~SRSjDAn?eBpX1PV6gH_Y)+igj-T{kABV?&z{R+Dgp%#NI#tG7_Y`B?-l>dsvI}I z=swGT^Q#*tL!oyxF~W@LwqrbPH|ky+>8KF}pBomS?=q7{IvDwB|+ z#ABy345{ykYOO;L>!dga%uZFKGw(3Q%><7&Hja_~N3@}u&&8n=$}ka%*s8BYGgSzv zU4>4l!xTii1r~}Ooz}(%+cakC0gX{=>WAoyLS3!@F#S|G?>&}j#hYqyKQ485=i ztBZQnX?SrzLL9sZUaMg%s&!h8R@?}Dm|L_1Tx9A6!pnDjeY5-P&yQyUbHekgNX*-W zn0KPHSFfp~{c={J&6n{OxGdd;ZztY)Ve<^Taa_1MP*Bz@UfAmNka4)#jbTsK@O=c% z3H^G2I6BRaUkf|6eyb6;LwMtOFy#o~8eZ$Q8{|RW36KI?arAR!C5rF_TbX1Tc}NRd zZB<$|_(C?|D+zn7TDM+{y6xDnH{yDu7x_^?hV>RqXTvb4*Lq6 zS=idNjl1)agz-(hiH9(Wp#%h2SM^G>fpqbm5NoQ@^1EKtB5TA}&i2q!oqd zlhuXl1v1mv!Q}^8Iwb1|=8k@Vb&0Zi00P|F#;9QmQzlr{z$$7mQk@mSBI5u)bLgKG z0Ze~E9jFMGcayznAK}omq^S#rQ|VO68t108ws4V67HJCD^h5F}1`529xd*c44(K^l zns`V*F7z&}(aeGfx&S{UsAj?62huqP6YIf)2UVf;q^!0HW|e9z&#udS#ZoZ>R(Z*a zN$0lP(5XZH9=1G~ShW3Cw~J$~T@QQk8-Y$$$mb04L!u0E2mPL@v; z>Yr!2d_65dKzah2w2UW>1Q?HBgBdDcdGk;N@J}(F8A+N=%pk4P_06tK`hYOz`XJ_) zVkZyDVh22>s*xeTxGXbT-5lurSMqIp219*NWPW^&3}YC{=s4sD(AF~wS3Xe7CeRw8 zgeUZbt-x;yQZ`u5aD||U_SgdL$sQ^NSEcVbJLDk#M)cWV99OP7;rUf`Wx7LGrjxCQ zm)8-0zNql#Uz+Ay-pit|hcHPdhw=j<;Pvs!>cw@o_j+B%0mqI=k#Xy!)M$kbzP7wZ zcBOdA+eOi~c%Y3seP6NkbEvTr>&iq9HRM%;3VLC)(~8=SPKbaq2>Xv{2%*=hcc39@ zMSeT<<7N*EIv<`bjhfeO;sG!SV;`YT8}(LG)$ropWLRlHDy>)IFy`CZDZ10JXdz`` zL?CPU&Cu_mC3ul;HvD!YXf*3l9VrgLP!zUn@V1FN@Tsr2>%DqV$KBHp5TmsVf1Mg) z=*WNP$h;B_spH}m1tE9fq4&3!r=!6`l^8W4aC#?HUY} zaaebnHC%_===i{EcG_X98=|N2oZhL|8r|6MN9{Ty$OaJJ+x0rex{ENg@Ca?_OWot< zRrK#4ryWAyy;y{rb6xybk0sM5a$#JcrYU2)R6%FR@PcC}s&$}#EGW;2g($?leh*>H z*W|Sa-WV$|0lyawha~4R^pKxFyppCc!V0P0{U5;&thrJ2`Jw#z#PSWZiVYh=Yf;~7gI-t$) zD*}hm!GTi_6F^tg2xju|`9WBL6j>MODnl*9t!{!GZ!j;1?yn5z8ic$^DIgu}%n@q< zE)e3{iAySC&Pf}2agv98vk@lWZ9YtV9an_;64{ZPnD1&^J>;ox+DmLO`c^kd-q2)GW2gnSvqNN@0{S}J8}jm)!R+=*M*)J`-(??W-)9(= zjBKej%RMVchQH1flJ@K~;OZ7ler?0;$o?{VSN2y?*UAj++t@Fdg$vTQ*qFZ3%Aq3bQSqo)FA%a^KEsPthX$>xU||2S-gw9v6fvwBhF9@k&1I=aUNIIH3v` zS!tiHCH5bmswH+ouhOkR3BYqM2FH$Cm{HaXkVp8K_Sf4)5>K8GOrfC{cl>sx*X;CT z*bCL0UO(vfTX+J(EwPL1Vl(!lCd{vKzw9;oeys^>20Rk^-JsrWh0U(-1HcN#7cAQJ z2J|%kH~a52dEnYkrw;0TeI1!iNYWMY3G(Jyilx)AySli*?#dYEy!Dkd8sbUds(cuH zti7>nP7w`d;Tj3g=w5&)6_O8Cj+>X96efQUo(R?e?g?}cch*LT)^zu987v3>8;Qld*KJ&&nwcxB+i5iWT*Q|xL zZm$;g8i;Zfwc2se4`Hzb!-O7ecA9ON0>Ofz-fQq| z_7KKrz%4G{g11DJ%0Ze(KnWL;2}zn$jXm)nEM=!w9KtSqH$n0OvI{{nVZ^v# zVo+G-D3#y;@&fgaMoC6rUbs|s^E^Q9m&BC40pTfRJPQx;N)cxROyS}_q5#GeR)P#s zpz(zH1qF>DTMmTBfwB-Vumf8V4l$fPXDyMk5FtR^6lz<9r-{6KP@NL*qJT6vK|C0c zkl}ba?uUpr0)Eg&3UmUS5SYY7LuLU)Pz2F?DaQp@OR-R4j{yZFS#0bf;xid&01qln zWT-$a5d21(Q7CM;p;<+glRXOdf@(+^YH4cGC-(=QP{3YPGwh-iyvPj4^~$nqzr4U% zf{DUK%)^V^0-cxweJTuo_6Y?MTQ1(dL6X+RG6hbd03E4|fx1l=GeZg>vM0p2FE1?R z$5Tdy8YPH=s|FnbYoIvZPvA~Kp`4}74*d8A7&DquX#WnB@^fa(fMThlWLeA`;wG)S zTTna8kR!Hf3k~-LC1^tH7wtn)c0mv(lbOb@z3Fvu;Zik!TkAbV zP0Nby5iR7N#Th$tCsgRtzCj+FufAs{fe77)k-JO!CF5-)uEaZersFpM4S z!?cnfG(@~IiZ~XQx##Gtz&?+Y9&a9G?nrUPSk3VCmN33l?RLA+K80ZyN++b&sD%hz z3N!Y&S+CV%Btwm|0M@Lud`XtCUSm@j?!mY60IiZ|j33U$$md>vV+M00CEs(V^pyJL zy%{{M*I)f=IvKzgG}U2f+y%(u-BuA@h&PG{{38B?`Sdp7GWAfAThQvy;Vh9n;HjV| z`Y(^MdmMfk@_6AmY$BbTWxB*G`rBCZDISSe?OpdMM`C`I)Fk2odJ~6Y9>uglQ|O2O zVD<6*WAPQTSF6A*ikx@am3mjFJX&bU_G*$M3JFE#gRvDoZbhvoYXn}T1&QfbZ&mt! z+*3@>wahxS5jh0zqdz&u^7$GEVqy0$>rt6=0N=K!!lTy5Z9V1@e5x*B&zt^bWV%F& z(^(G7#_Uvi;A&2(66$^}Ld?8Z)a&$K@#{>W{*$@y73NsvpDUKG8IFMZJ;JS2+-t~> zLRaqX%!yC+D9(La-qLxnu*`~4XhoHpXE@a9B5@T`b|F$x95($PEGwf<)ao^1TM1Y6 zo<0(J`baAclLu9UBTb4-2ofT~M`gjY#9tjx-xeA@fZg$A+$Rfk>))|=WarawPVfEA z<22`r-X=aL2_swLCpN)(ogVQgUpM9pC|e?uT{7NBR-7h&=e;X;dd zh6A!7M}D-2K_ou$J^Lp|LgpsEt<5s7YeGxzEg2k1biE5bc(d;z_Y0g_I=xQc>(!8u z2JsX;uhXa-=Fcp}=mLwb(!>oVu>^zlAd)8}o0nGU_eVc23 ztkeZFqogJW4-nJ^GbpB0nx0FC{KERS`KNKQf7wgvWDk0Pw(vU(k%LLqb2LlEQ?nEJ z(^J(D6!-XY_Ib`hcx)9xM%i4eJO_@cBABoLIjb~7bY77u;_ScqWf`{!gBaGA>Q_FV z!c~9dZs5roX)_wNMnjc-1&%V)7|uy6uw|P>Nma)>e!(ikRjHppqGM$?+mE2MtXpIi zdhe>x!4uG3+c0$Z;!*jcR7qb{MS63Qhl6{OtE};5I!ZhhxLlminVep}9|x^gE$G$i zalPMdwt9H*4%%%bX9$o4J8J5iu@;n-Hu?s*t=ii1cVI&H<+ricQ#`OP+e*zN=(nwrQFDO@<<*;87TDA| z^RzkaC+|k{530j_yo+s!WWC4Me4n_E`wx$?Y>uvTo*f3>A?F-jAKMe*QEKAZaLi+C z;SfDT4I>|XX=YXw%Y0#Zo_%wWh;@B{)ow?Fp?hlp(H>_N1sSDGe2v(i%&uF^%X-*owMu@6MuORnWduf@}28f zuHCv`-D6(_CiI)@A_E`NW#KHd-lK1zkLlo0Z_vRQ$(ayPM?R1nFVRo_f5o(m1yu7m;EK|(&%fiA-Ke$hj z&P_RQC_^hXRZ^sIt5;$3w&MjdIT-a(`T-I>QN}Fh#{HQ{^ETR9DVG~nmKDhTSUk78 zo==8cBB41?LKuv#$b)+2(g%33mmY+$1)PqMAB&Pwt%zJaS#F*c_kHfj3X&&N^jSoM zLbg66ZXfMjDyyV?aDT&lwoWlchH+dGjLTpl2*F9*l_8D5Q;y&=9i9mLgfIvc` zH1v8lh-7Io3`X?iG6H$+BbEFZCYWSPNF;PqvC7DrktfHJOG(ZsyBkdj>Ri2w7A1Pu zFTQT}n{w~JoK0~VIZdpY^k9^X4)(;_M%`P2s}&l$E0l&WbB?D!WQ4U55(Qq_TocS8 zqkT;2Ny)~AtUb+i^zvp2aF9?R9@ucPD#87hB&B zEsx3NDl}jrX^)h5KW#+RC54>melo(9@y4z9)rzJ?%SeX{%L)D-f@6j~L~iLJbwkJR z)$2jfML^C@8_#2nxTXbvog6;5=6HvGE%#lnIfk-@O@4_m`~_9ozDc}peMMkrx$|(L z9GGo!7<}F?E%pY6y;}gAxmn~0Y?G}k6X52m4JKz=^L?AVg3eUH#B?VQjv;3q>3Txj zmM~1ER4qm%AQpeVeHEYLJ>`lmo*wa@Vh)j-7(6;}$g7HpVGg36Mu+@zy0?{i?*Wpj zMTR;@Q_mgJxEU~a-sw6L^M-CMF1-iOxxd`9C&<^kzs$@6Zs;+uFl#YnD?~+aRC~z z5u{8GXJ*EPKAd=cT+0a(rY_Z2s~LkEnZIG?4NLKH8jn=ppZiEfeVu=vIw#(8)V)HC z1+jMKA8z1x$j`{LA*1a;>>@Eu-Fc8T81RZvA3}1|VR<0=gozNnwbVECMu_pc1J4iK z0U*%DD^lFLsQh)2q?Y7F;zz(i(0%a+?iIzSxZ}wC5IJeYt+rn>af~Ztw8HU$KDDq&J8jjvW3|C?O?c$ytA%vigYNfI?i@t{x?Tz40MV?fU zz9-&88UIR-S77nTGBzSt!G;{PRV~7M3yy0rsX`1X>Qv-<=J|#E>z;@YOzuLs`6J+O z#wD`eV~(IRZso%YWBwVPump*oqjs^Zyu|DnB0o~Ji=^+=16p9mJzY!TGVzLW3m|tf zC^IN`%d+h73Km&~>R!Hllydd@G9g!t!m#O2msuCXj!x=jn59y;iBR?(k0Jsh5;%o} z?{sQSxb!z$t+0G^msukSP=|J)b)f))?%dT2ZMrVJ2h-pfp zp)ES!Q}5c;Pf4QPI5Yn#C`Ys;82&|n9Mfp*|(vwKAoiJqvNmg?R zB}N)x`f_!za1Y#~rD-v$^T%W$^b;4_q>Mr7F&wIqDKCoL+RKfO5u0Ri-tYEey zb+VT{g2Ckv?B-=ekVAR_uM%&~=qKh%&(%LZp2dz>Kqn#A6j=Lx$I^`O_jvcxpZsIb zp(5MIPjIcHUH&8{sa`cl`{f0NHvi%3wvr)EC|{DQuP{2Ogq@P@yd=K(a(en%WQy%o z5Dz&K?+*}Z(a#;2lp@we3rT7ya(}PeZAZ1B8{i@qcWcPz;UR)Q{Nx%9+`77*S`;;+ zw%4d5HZX!5`vJ1NbW}fYrxCfbC)5385T+FbA*M*oegG3^T;*Db;0#TC)T`H8{T@`k z^|s%@gTL26Ql1$0Wqlucay-B5H)@@JztIg4II7Ds!O^bkpF`oquMklD;&HqyA|1oH zAoQb7=r_6`8`tX1x`!lNl-S3w$4CX-MM{z=sz;4_Cu{~i#Gv;39k_t|L9^Lxu+8kD z#yVe2%nUlhc$X3tcPf4jvDaa*8}>X@-|&!zsDn7m9wIA;aUAx-J~%`wTUaU9f)?+}5F5mGqIWI~s6!1*>>zDSh4$;Bmv zq3{r`*Bf3G*V~Jva^H!@xbKTN5UR@8zy*22EV);PI}t8sOY{P&fNs$1b`Z!R4m+)O zJ8H*WXpoSm$U}Jf7*WQu5M$4%66a933X;{UNV|e(M)lcwJ@>r|-f-<;@SAz?7W4^p z_h*C`HG*gzf7aEh#?5?JUBKU|>jit8hzx>zKAzeb^fH4!hl=9Lc${U_=DB>HF;v^C zAKlvI(u{K|F+sDro?iyv&T3EbIpFKZ1hof8%?BPA#00hB<{rjKXLk1V{gLNWj!tqK zZ%qZ9ElVwnUY9vGP9q-1>8kvT+L(QtbCw=Ec4$UfFH|1nV=DaL5G0diQh|upuhvBn zwtkmI$L9>N1OJd03ibGh5aBsD7meDWHSCNn=0X_VKTbk`)va9-rQWvZ@uSHDQY>Pd zWrZv(X(AkV&`t8I{7M;bsAB|mQhfYBR*(!RM=2~UMXr}w0DMw6iu)YYl8QbZmn-Nv zq4q7$)}Rh$gvx+k(mIi&hj4!rDpwVlN~ksqDByt~5u_-W8ijmPkvfEsD-Io`T9Xz! z0V+Z20jxTAQsi_3w~Rzqhyh7LH4*f{tMx=Zzi8zDb)AHs3B?e!Z- zHUd`@zm5!(xPTxUU#+9nG@P~j4LZ_pK=leCYik^=e@36&d7))$N;A zn0A#kmA7g35yJ!(v$F=r{z|>oX)6Ln$=pSgpn zC)6RoXeS1t7HEmgR}`TJ33XM;!?&SDa?5$71ei=HYnMpOT8X0;UosEjYzEA2|FdH( zjicKY%yxYxfps})~%_Z+!q!ye{Gu9Dk(Oxfn}aeLl8U?AT-`S*JJF+2ZoLX5o# zlUg$)tyYvf0qhtynDu_%I zyn_nkPG!3)q$FB%(t?%R96dz)DR34ZoLBJX8{8wi0@Z@Ec2W`7YX)(nUhA}4{h$$J zf;JoE`wA^Wt=WU=iXO@TQxSNH4jp~&;s(xLXiEy>YHr=n#m!w8ME~kTD+hrr$TaOU zlFX<#DAFl|?SiY2Rv98R2)eS>VG`V9&|6jm0HWBXmLa0u5^~fJIY>oqWrakk%xTYj8Ra-b&&^+ z5$u&GNL)w6Y5C8dOagc#8HN--aS_UNBvN`aN&%P3M20c!87b=_A~2A_YR)V#?BTZX z*2wJx&M`+IDUvQRp1m^(l4~1xB7VVf3i@a5Ar~$f9!lEA;DTm}#Lu^r(RCy>*Sr?+ zV5XERnkHB>cr)XQ3VL{B7@DluS1-{_?E754fPu|%@^BG@TiZq_*^5O`7x3zquw>(E z?7dN<@e80n02#Sp<`T6mTbaF=2x_p?xR1l#oSy|v+n(Ybfvd3(2T28b031)*GA$TK zI^8fgqj7*|L#8zkFPHVpDOgs5o-rbGP|TJUbkN<=;8$6iwSrmk8G6THxM2Q%W=yMG z4Us>Ek^~N0y7O|2BTA<`+2Lk4f!!jiceii!xWjB|<2s(Z7-Cm_eRO|-Am=22F@h~L zA^jNxY&qpROa^tC97hDIZbPiwm}(TeM`li9l8E(8t!l7%^nsQu>lu4RWQf?#C|NHv zYtOz6%~VC@aiRc0T$2$JRAdsEy|S)9G;uV)TxqV?A7;mu-RrQO!?PJe$!9%iuQ>z3 z(xTWyaATP0aI=oRg9{LC@w95uCTnLdLcIfruN&y+TQXMwx5!?2O08F2m4^q??lIoG z*6?L`X7)TM*G8!$1TlN}vBimul*F3x0-9H|B_+>khL#<<8O3;t2cx;RWX3#Zc&5Bl z+#Un>E}{mP>j86n2&(zuxER$MC0j=1wlM>n#_qisbIWK{ zaepz*uhRk6M9!@$)mO$i*_#Eo1q&Q!3&MHA?J~?ZvnU99^xz4X_3#b9D*%AgugF*FHFaapM|S zF*Ek^0?*(X+7fIKm>Cd-!ShVdK6`GYi;8eW)e4R zW=d~OLdlM1cc$fAQ(roEGLe}&?48UO;?_1S6_fprwYIT|==n@HKU&6xz+T^Lqd38R zLeJ$~?zv=v>#y9ZGky-K0%JT(xH;rUo1ojhmg#xp4y8R8Y`{GSqNCH`^FwH0EM*x7qxp1Q2E%;;7isx(V<%1#ML4iuO@pwe5}a3vPx@Ln;|Y8 zxdh_4a5XtDs2X!aun%9s1%a#B(ic!L7ppzE+sVE>yY=APGlV)G48&vrYA9*!Va*{` z?Xx`BA`rADTW(MQUN@B0woFJB5me6|Zu2Y=oDOoW=5R(Rz|if~CA`tC4K@)y4$8J%MrX4#aw|(+KmT$Pd9EC2D-V{|2+UJXg zYWr(joRM(8ttb+9f7vLOJUxfjwxKz&1sP2%d#)^M&F0ppij|_`mOk1>P)pu?EnBws za7Lgv=;}2*zu%9-Rp?G2Ekctp$t(!k^NT4OVsZ*4gE!2**M4}k!dt=?VVz<|t>Up2 z)_RCW#yPLP7LDz}WEednjk^fxR=|gSnsEQwD*vk0-U10o>W*nzY{H*kjjg>Q%c(({ z>?{pt(Oka136Jyzv*VLbr;&cGD5~O?H-bimmy3OvN+u4eVO!)xRV>(RR+cC2|JbfZ zn`exUVax=Jl*Q>CO}m~#!%;RZ`Zm{oiUxl-Y)h~s8vG5QNU%(O)s*7FdRN-~&7f5b zi(pk`<_FWb|LdJ@%eKPbRcA;c|S?I7U`@_r?t`t^Q{J{Y0}qVf*Xts17oBLO{Wx%L&j>MvrvTxMR*+^ zWw!4_GVc)rkH#v-A(;}w<&fBc38XTKtdhYv84qR_g=B+BxP!?LT^DhOD12my#Ma^y zc`S|)KM~onCuM((%L&8?H`s+$Ie-KzZ{D!)x^K}LMsL?T#y#Wy}r#+hN0rk?Eo|Lnc_lU!Gp9#(9!$!3zx zrMdS08od+Y|`LZgJ$mA5JfthAz<-PCj_r7z_ z`ObIl4Is?rOj8pV9@z`J4(m(qH@F4dE&a(GcPX*EdFK*`dy6O%Gdi>1)q0mGDm;Gd z?$Z3IMZr^p*xjWJ`3dAOIM4CYeNL+Y_2R1j!sWlbsCVsuxb$}|ozeM4EZ(y8yGg2As!h&Ufo4aB^EfIHmy z5PZ#pG5iXE$KGx1%D*-``<+JGVYh-mxZQzHo_NHA{lK`G_8)GHqoYRj=u+*MeY`h~ zoepeHUE|`H^jBjf{+i@^e}(Li9l{uCE0#A&SBM!P*7y3j2c01Jh+~lL3BO9bAJ((! z;n5PG-lh@JTTcoKLgbLVZ)h9*7|DhYbp-?t;+r$55XsRl3wi!~1xZHG@R1}S%LJ9d z4Yk@pYak?%*(+#B7f#tY<-p0pOo%9;Dfs*#&`^sYVAM%k0Er^d#l&r=h!v>}q7xSm z56r|zB=$r2U_@vr6^JK0ktA0Tju-(E+EaHy&I4_IlIt`%mS$Zd8bp%1gu6!a5Hxo~ zXnB;(B?Kmt%IXIRIM|OTo0cyr?xQj5kiFJX+XL{igY^3$`a|s`u0k~!h=7LJ;>7GO zWhX2ONOhPXA#|Z}mox5nQ6x!ol?ARDafiSszz|YD568G6g7J}DRP`UdTprXxt51+Z zl7|WDyCLLZ<@Q5}k7!0#UbaXuUYqb$8Ap3q3iLA_JgYQr)UZ6KJxv4+Ss#TfzR2Rx zrVRl#~vsMH?3hx>zlS^5AIVnAS$^m){uqrFbFXOIL1~)Nl~BtTp4|L(%_aq$BFRKngsy>5Ra# zY}1Tm*NG4hH}-7=#dYE5>xS*99a~utpy$;S-xTV<8*1>>k1OvKel3T^eY==?tCQv^ zIbKp_yj9F}g-!vLBt!CYosH|)Z>oeJ7N1ebC+LmUhEmx|t%Jt{qUayYXA7GtTC)v9YB(0 z!tEQ|3t!B<$xiv?#cCB@8 zTukY+t-Sm00djehMtaR)ufg0;a3ms`nB)fit1RgG^}?O#Q1X9MWFxQulKe<~@VmId z0Fl^v1PmF(P()hVsL892s@+J9UtBWEO))z7{qNy_^-K7Qz)ypu_Jsj8YH(C%i!a1%J8x2vL4kg>r&ab*R5|H>OnrhVB@qW2#8{?->Ww#$2Tb`AQG+Ri3Zt z$*5vrQ8#|h4X!b|K$YZv$+vTa!5C2w^Mj$bMM4eDF=5Nz=31MoL4w*^4$}D%exX(u zCQ#j>%hyJ!p2u|p%2b2+8}jr+;^NSU9z2L+X!GgXp1XB|hTZs0#U=(PkCLPR@H_`~ zJ1I)jiA7NCCA$6oW1fyfArP9>OBg4F-||U-Sizs%y0n>V2$cggnE=p&xbN zNgiJ?Hb~Qa9X`CUQb3*01O>RMZ-^xzp1+!-QQBaYe&L#wAWVkSjG=9Enu!lpK5j^{ z8@0nIXh%&u(lY-GYWKb;t_QqP5gklzUf$gA7t+ni4Dwo{mg!{jcf|9#WjL8di$Kx| z8pt4o5mEKO^x1pBRN z`AL|xQ@53ReiX-%30`~8v67@kVM$W6+4e!!npBA8&)WF6e;nr&(U!Olt1diW+}K`T zjeK;>_{k^Hw*vABgnhti_)xF6o0^ws`t9a~+smmW%riDmXXBIR-<`RWM$B+_iKv*_ zDffwgamKsCL;ge;3&aDR5c@NUf$ULqr!>?Fc#^g)1RHOKKKQi}r6g>oso6@Q ztaNP4iP~+~CL<5xk4Ih`xx8lBWIw#`pIDcS63?$Yy|D1*t863J`_6<$C-QZaRu zEJ#+4vh-XbITxhnl6djlzb#0#`bq*_#30BCrlcNebvBW*VjXD- zQwgX-TTe1F*#%(N*iVu}T$b<$8*UUI=kM2G_|R?FvNG}ld4i@NknKfSilCiG%Qw1U z`;;tL{X@9w3_*m2{%$mC_ma%`V8HeP57b>{ddP~6I}|e)MWTTsVrgdp=u9fZQ>muG zz(F$hMnyL@(H3>9+u7a2y#}TjQ4;}kCa(>(fJ{3><__%<$!Mi;jA(Fi+fQ64Nc}jq z+jh$dn^79Mb~Ey^&9!jM=Z+zTU*!m`7srI&p0^ZjaQW}QU);&6M|MF+RfS;sthK-E zWBWgx;q_W2z^2s#?4tKdwy|gW#z9Q)-03C4*#^rB44(C{Wg$+AA9x7vVYclQ7EIjH z1K2bp&uK+X+|Yfn7zbg1yQS?%IHB4Ou99}Uowj_-Q#KI|8&eMw}wx!_ubLj{G*1bG8-7o*!5#;0zw( z2l;m7^F`uiT`tKKFI8G7mQ^>e?8TQ)Lq1`Rxbrc*KmnpKt`9mxu(n<#uTcEmNX6ed zP}f@R?lFPFqW)-PTpZwgW4GHF(x16ps`(dYE|&YNKI^PP&IPdV$+p0If@eFGLLq}Q zxQy??TuWH8wh!@F<<&7zRi^*rq&(0HcZU$>d;KF3aulF(_}hcy5SnnVlT_5CDF;3Z zfOGI@3@H9;zXxW0Xvp&>8_?zkaGHw%#QEafU5pc8=$GMM)eD9cOIC*a{9t_@=q2dd z;|4z00Z#`AP6h}ah(`bt6OZT+pWjqoU~57^R^2k%c7h;ZsT1J546x{3*R(yn1|rkK zi^0uw&kTAks*Z2+c=1?%yC8k*WYF?+4ld~2)SM92r4NsK)6x7UoHZ>W5CwkbUGXTbnqYY_nk z;J=^+k=ets0(sc+A$6v}{o&0D$J z5_b656;TkaI$rEnJ7|V&ifRZfcY?@=7NQ2?1s_JSZMin0hBfV0m>_DO?IVhy?FMcO z5&FEe6({_L|H@-n?vOzi)^{bY5RBcaLmY=h()7(1?1SyL4H4P|PCZT_(gz8~(Sy|D zBj#eWW!dOJ6hiFw?6~EHArhEDq1r7>&gSw0Nxm^09RL&LG+GEC8AF+)md{e|Do;mb z$S*zi$3*Au^}_5amthr^oaCOU8!kR&UcY&}+Krr%*_%*IMabO_S=K*4J!hORyAN4PQ-hBwv zjQB3DD171i^$Eq%E3OX*BRU4P=f$k$v*qCT=uSZnNXjQ>jlf$$jMf66qP{8f61T~K z28x1ySdO2@5w7LVkmhs|l5N>cnlB zYnmp^IY9_3l9k~4;YOGPHE%Z;7NcDixOhFbEcms9Q5V-wx_qW_%FSQib$4gTQBx4C zV_0|Lg^rrT2m{*=s??1XZ0M1x+{h5S2G+ zHoZ7%#VuI8W5>Zy0MEfPmfEow;ovZ#FKb$!2U~&<^O@~wi`WZPBwg`d!2c%yEuluP zWT8dV@M;s-#C6WJzUu4T4<_jl)OC)=yL^fJ-Yxt{A)Lu!K$0x&D2E;<0Dtv=EMVrK zf&w1yi*uI)7@r`_4~?5Wc>IGk{EKsf?Z`MF@+0NmLvK1Cgk#XvP-8Wz$VhUK)?!zyLH{zbi`##-lzN$Ar&&O?nRr)S9Y^?wOq-E?za`_;%;x4Y{@QotM2aN7op<%cr>wzXapU5e$$+@239^Dz#6sS(b z1czao$QL$yg6`l!CplV^qmG+)FxZ7p{`epSa{y{j9tH?Kj?s^BF$aZ3N|73=gLFH; zSYZ^+t&<;9BkHmxbe7#C|IczDo>lRikdL_NdN zF>IA+jUY-86E0dHuz(^CItBIwFDLSECC4Lt{1TU0006NXA0WhrARQ2EL^nAYM0=1^ z8vViUdYm9$dUv?4nyThOdK%Sfrt3ijf{USOK2~PuaE#>z5wZ?%9{l%E)LH+M>a0Vx zx~Hf^u&T+I-c8zdP&`e z78>AVAV*U*7+C7!P@o?JBg8S08YApn04uuUiGw~QO;K1)oecn$iap6alB-p%B0cq! zN-7%t^&^nYh^ny{_B(Q_hKO7b|3XkyP`fr@b>H0(bxUduVQZ)5(oG&_TSY)sSyH{fnHU zjq{BQdGb6J)OSO^Ot7h_>>6!bDp!?BLsJ|ppjSk_zV{>7{%ep!vOw|rX z7o$J!B3LnbwbE(_9tP9-7 z7!|@8NKDPo1$!Wk4)Ji$IHXZFXDPOeJ*O+%1V3T*Ty>*l zA5a6D5}_$PcbF3}63IQqYnet~?uL%o1wogfOJIy5X9IePN|9oN_cW$&6AM;tYLyLL z(d&#B_yP832Zua}q{Lzt@+9PR!Ft`uxkcx{uZjhLIaEa@mxBSSx*R;B5zK9v;Zx>3uDQAlli;cngCTO@h^?Rj9Wh#QPJ_-V6jbDL$Ah#?HwnhOqDDpjQdRSnm zly+qYr;G06_p3{zUt!YZqP|<5>uQpV&O4=~tNmz{3s?2S>XP)j;u@!vcAd_y3?})V z>eBL4HDyeTb2g>6(&SBP`%UI(;I@Cex>Yxa+Q>O&JoB_?D^vQG;|y4tQVht44+3t? zlssS-9%@3?Dcu)&vcaCR@U{@`Ojv|zYwn-F` zZMF@tJU}Vh+th201h; zLt&hWLY)Pz!Xxi7z!gbs5XAK-s z16UyUfH5+3Jzx{spn8w3(6U?Y*x}lUJG&15UW#U=Q;RNLBU%s3BS3`;;d$T0K zxGcOHob<_|lJV;;a;(A{vB5V0G6LI)eRylyHVz&*TlrC%v}3RoIA&rwo`VexA12eX zg2-yZ4?YEeKfuOpvRBCRP*0yA=#dJIEBJqD%@gfXkVbIahhJ&i2|>3PB~FS16m$e| zS+bkJkvMMD0vJ1R0uy*A933X0Pyn7Wo5E7zRIubi%*HNt@V@b&IBdr7@^0FxX|^KA z@^DIe@Lp>HZs3B9@OFnsTpR+)6M_A~#A?BLO-R4c1Z70zfqNlIu(nJWP9DCKw8OS* z0-YAY58mQ~`WAG+c*Bwppjo$Ca29d>uoVYD1%dtn?2KM34MV&?19$<#s|m051P&q= z+(zKQ<~oVl2JMC&n5{VEx6P@Tw7(r5RA-I#;-8-psWrptk+eDmo%d&Ft+9NMd?Ht@ z&mm>?H6#aDdTcCEtL2+4xTNV~>8(93EwhI+770l%W+k#l#w zJnBCtGw1<}h1{$gq{)%-g%mglR^USzLL}Twe90N{$OK0P!}tbdTm&;6i_@yWTU*@( z_aC5(1oTA#yeOEVM&BGA9W}&-0VocEzEbA&i57FzrvjBR)+Aos9)XtO&<%Iv5YDQJ zPpm?r9Y;;Qs=lsTB-M~)RgiK&_grcdZ=*A;rN!dsL>ZZ-l-T&RN3j+ulo028Rj3R< z?)N?(>*&TSQgg<-J8doE?fR}Ho1kI5k9Q>Vo^z3$ZBANXDt0;Bxk3fyL*1k?%j2sbDwwIVpK zdM4P}JkxG^O*recL8f7wabnvbH+O^3ig6*t>pq14jtl(`$p_$EQzJ0tf^e#|{Z+6D zEK3&tTrtZ9-CZD6M|%fS)kgwV(|4f_Yk{3E@+@3(lGydEX3GTWR|vnSfC59N@W^q& zp%;2B2RbeA0(u~wOQ19}S;IKvGSu1ljq<K0yv$$5OF3fs8j6Nfs0fdin%25v=scl zdO~9v#4t5BqiD?6j|~4M)2J#Q+7e8Fk{bEYhASGbBcGKxfc*SM+(o*FzF+VY-$~i-RZc1HLS@J#5s4O|aDo3#k+*`d7!a3qt1L3;< z(0A{wBYv zE?qz2%Y&C*Y5CHhQzWkI#krWb2JY3I!Pd6{BCdDI%||LJ$$*;@1w#T=KB(ys8U}Zd zCc+0J%2kZ;9Iz5cusb)w-5l9T+jU?}w^}jGElvP(XBYfZYUFEK(Na74Tm@s)66@y$ zu#_rj*e3+Ncl0vYP(l^y;yrnWa(yAE8R-)^>cB@$x(sSr=tT+BQk5F93$ntt1?n(Rc!PS}4O$>J zX!=nI^HQ^!=r;hbzHcg+mv9)<8b94*&NgRg+H4_-`^6&GXobS)S>tBf-A~KN&B@HP zjI~y!T>JFKQqCp4hnlZnneY7)-u`eKyfZuux-sY#E#MBCR!bFe z4#}YU=j4lcosLtuw!v8(j@tc3oUo>2_MF_h4=OBttOL;lP;d*Ej0%kdZK6^|S+|7P zcPtbS8HE9~4$=>U^bf;hH246{>NKqSeftlpU+bABgP?>OTvkQRWK)rkkqb1}9;vxQN>Gy^(>E*l(w)gr2tq^IEjY)$Q_i*pYLkat-+SfM zdvML{A88E@=hM@;H^)ur)cd>MLcoxbqz0H+q-y2^?02o+CEn;ainmB1X`HNIDa}u5 zYTkud!Y_fz3Dhg-lrM}Em@ZeGX03ZWMvT2-@>>Y}!1ck-L3^>f}2LCzkVnPY!0Kty#}e|46a>>NN5rx-~L9~hSfsS6Qct1LqD)9u$SRO^GS1#7yCndh_tptEbXA+I@MV!_46N1$CR zL6iw#cw1?d1>SsKm8M-yxjtTn+9JRSxoPA)ukci(Km42iYJ8mm(EY~R>kctv`b&GtnLWQ&dbev*`SlH1a3jm~oMQ8H)Lk%fl4ExYUJt5S5zE&3ht!(p!MGz6Po7rEEUcw-cV_yp>s~;S*95f+m39(%4A`2_bFzak3H9FEFJi9YTh)#)yl4 z5oY=fo@`79#&9?ILGk(Cmh3l)2$JTsAYyq15exPhLP`^NX2*h>3-|cn)^+6** zeF>&RXq~_lD$w;e#=Af|Q6xl^1jQ5R4?(n0Ll~r(O#0#0(ir*0Y3vzQn3|(d5O+v-eRqy~DW>&gRe@To6R&L61|M9JL^LUfzMoG4)*5i|3Rtd_|b9#rdk=|Nmf)RX)2uq+-O@ z^Q1a!)YV*u!Fz>5kgj`aH{q|QsG&?PcFlW>FamXtLljof>d`vB`Y7ViJzrYnf|#U z*su5*$&ZvJl8vd5L2@`{8E$`;F&Dlk%u=~D5IBN6m&a{Ik~!tl$D`cS<*F%Pp=ud) zIeVPG<(`+UPr2lg_C=JuU0KpLF=iLaE)Pn@W-pFaV0>!9qlnRnY`EU zL>f6gncVFoBoh}diCJ^?Uy)Ic2=UE%Sh&><039lkP;fd6w^=&5$#E)+%{p}=ervAw zyU8IxH&N<#CwVZvTd;W|`U^iiF|6>CA}WWIT3rx)Cx#8gzF@)Q@+Xo{i9I{FFv+7v zoT4rm39Xi6gK`RteKEWXoumop3GgMQh{B!N@OpC6*s(xK)%4tE0(&i7DNM^t!S@$N zh~DikQeb=5HpJ*zAB=k-EL?90hY48caaOEHK^S!L9YGLs4nB1-TeYAETH?6PE$A-1 zO;ZKkMc2eza>h?aB2SkkpGG3kgr&;>8* zy;f}cLhcAlW3jAd^q52!@ipkeC;u(2cCKm(6%_6VpR&TcRlX6d)kqC)TNRkNXcK-fnN)+pR;1p6nUhpk`LBKX)xY3I?&U*)Tpj0Bpdx zDCPbf8HUQaS<1OqtatV*tL`5^o_hbtPce_U_`D%wT)?zF2s;4kA(|$D1&Cq_>vCVk zNfRb}3WkP|o~j@+j)TTo<)Q~&6k-;r3v?ui+P<9gzxTXCW^=PXW{@`lAlfi60>C)XD7=D1$C=mw2wGqi>Z9=%Yvx zgtzaGo4#Gbm6Pp<-ZBg&a&_`*!z6hkXoSf}b$iuqQDauyI#?#S)N?N7RoIg>4eMot8L) zo5^sz_z6D82LR`az?PWF8ZMrLK5Q!pjJgjf2xcSSd|H&a1WMl}fd%Fmr1+5|a$qCUhn*wTIJK9fqa@fBkl_AsG+f82<<%+NvzhBsod-yQg*Op34FM#9r^$MK z36&p`liG0Fz_ZQ)(4$eXrbnsYThk#JM@IgFY6Pv87pKkCNy8M}URG?!E_iy0kP4SU zXVS4+Y9M(0v)jEsocNtNCzLho?t&2Hy(F1 zHdH;)zM7C=k6_A>r@$Epc{!3|Dank)v`2z4B(ouctVbfww3uD(+Wn7iKsJFdQqfDw z5WIA! z&|4#F+E7Hd5n#geE!$2kD@nmeo`Qhfii2jTmlJyq=opHUAPky$khF%Q z{cfWw(}V-HBzoSAemm|Aw2odH5Y&$okG%P5kBI$n!6;YFP0$Vhk&*xg6)~`w_y;wmfLE!JOs#z?I>uuPHe*hXu62v<(gm?O~ZELm^gAH zaIHBe;+`cSF%Er1;DTGjeE(P&oYPlo(d%YX7F6qUiYPcIv}wuB=0SZT^vcVF(GYJH zuz{R3}=2!A7$Ezz6h@p(qeBf?kdSMVk)?V1;^q-jUZ7lX8(<6F^l z%)tCL%`fz|m~lttN#6L`ZT0)b`n~R2eY}SDJi;9XHx;qs~tM@CGg`@aemcjeGOX z{RrTpu@!>-j0!Nr`-aXE07m`7fN5|9a3J zmLIs3e_-0sY~gNpf7~PU!xdnUaN?Az{dksA?j^zgqt115gX}zdl+Y;aKL(eBQM6Yo z^}|_8y?N(RM-xNc2P7rhzXO9p3WH6lxa*H!9NaGtrA_yKB=GiP&D)#mh z7Q58}Ua365GcDHQvMRLowzTDynmXg^+Ja5+e%v3!_(x76*~%@RHZv^(r8dZ||3{t6 zPs+@gYhBMFsj^A8)rIEvf}!xlq2;>3&f#5d)YM|ijNd-prN zw6A1>6Z7AE%>36MGym1c%ztk(zdg&&pve;xSnRtu>$5nPD;{@dc^rb({hR(|yWN=| zHr*$Ax@A4d)2=<|)5M#3|6WDEXBu<)bXCV6* ztDH=HnAJHs6iC#SR;KD&D^qo~-^zL#9UMN4_IA0SZ%w4=3MZ3vZIem5s@Jmu^Yy$@ z{8?90`d!yh`dt@4F@PkJac3q5ff999m8rVI%2ZwLL@Md160Ub*orzRkadon;xjI=_ z{gE2E6LkSN!y?>OuK;0{i0^c&Mf=;m;BdItAC&~RDcT1jevtp>WT#kW0QheX5iJcd zZN`WFP7HPGOK2=>kMjLlW*fMk<?t$9^zXMa7~v5hpnyaUKz#*+`*|w;f}UxCJj}Q*1eeuO zf3QzlmG15fSV?YRytKqS%E-PBVTaU{PAl5C3<)vq(51Ii0>;aIUh)ys>DfjlE z<}UOGP)+jB8xo@znnr5yJvhgS>Nmc)`13C=Z5W3H(*;fxEeEQ0WAl*ku(&xtNH*4t za6GD!9-ZpkIK-`RL(zc|t5<~hG585w@;&2IAW6Y4FUI$?q?Z6^`Ng?wKqmvJN<|ac zk(5$-Ce<&_)znZB(3f(FYM>LLMt|Np+>lWOdBEb}m?%||8I8%evtiI*L~w>x2ZAwx zNrC3v2jaKW6IkQkNOVO^g&2As7Z^E!&%n?ELlGFFfha^%y`E3|Aa~{ZB_tQa_sA=2jY}aU0sPF0jd7&6oqH#u6bi7Bf-+bnt;_WMmK1Q!0L)2Jp{moVacbp z>Gxq->h!X5@Nzt{7}4+qI_IN3)Y~u+x&>5&NxYj3vF;IDl3+Uodk!NCyH^-73=~1~ zG4G^h0;ZVe@%OPxhkNLOCO^|8FDTat1$|W`^m7kI>P*2)Bzv{ z!I5G}CKDhHG0roA`mQ>#*AD`y#0Kk~gWYw}k7U>wKG+4W8JvK6{sU}jcmm{SUJOru z&gI#R6*3rJx`ZQ`w)C2D8Qlcf8`E@61p743(^^NTj(Qi2U7S+J06rvQVL?a%`fAPi zsGD?#-Hv$ZN`GJdRd~%{u!n~@i}8Gy4qz-1Fcv1*D`T371A^L%-KP#EWQXD(`LUqo z+M`9+M`m$W8CZon!f6dhBhEGPc!Xsu{WC(EE&_o8!7m1ed>{A>&VHl`Q9v*8QlXB~ z3rUy?Xgpy4q$6Ixtvn~s%Lv2$0i@pJp- zuH#aQz21UqlT!p@u<@Z1srgqqvNv&L_XmgAV{B+$kz`d`#%f?@)RN&xCA(BU2Oafl znQmIO@Qc}?K_(uNmVdE+*jP-5q z-C_o|AafOb>6_C%eVCJlhIJRX7qgy*QPd9F3D{hHGl_!4H=B0bho_h6V8h2zVA(E0 z4Tgx=Zlz`rdZE>%P=p>R2|X{VKn6Z*-QTvc`?L9wyGvPbRp`pkZfq~3F5Y%CetuKs zn~t!2Mu}jmF**Tj`qZ)|d;)ae9tmcE6goIun{^zire}Ih+x1#On3}O4*sZu7q#h!; zc@fBG9AbJ(+%UAk+1YNzmS-Zco9~9LC_#8P`EMyS46`{toeH)69D;+E&H=XtdpvNc|cVQ&c7t zBprDF3uT3*ejri?)_o_Eo1tOc#4W!Ig~53yKjLZ~{Go(IURbs?w8fk^3Zd<83s5SC=($hjygGL*@0J=jxnyhE| z$)+4nc;E}4eEKg%)>3-cHRCp>L#;ZfM0~f2jTXQS13s1(LS{uy%R<P@B&B(P|Z5-*oX9kEIYuZh(*^J$G=vlTIBSw|yz!@mC;&zO1*H##}LC4beqd0IO zwW}Hbx+s%`uIE7sJo#@Kb#g6>Et`f|3tPWOp)M|qV3@z|4|WrnB5w7^url0(OaZht zUbmq2^7BzI-VBdL&Wxx_we!_{IqJ6;p@+o1lzUS8gs68w@(O4+bzmtnbc(SSGLNuy zsu%k6Uv5Gi>UPP%BQ4w7S_5&Y4|{mw*_yPH0-+4oGDIaMkqd|bVHbqV@WnY%3mBnN z#U6!FS;{OtBtZoBl>=h@5sXbn7Z~I*g%xcWH%LkX^%nfiz+%)*z`1mXtg=9zQ0y(? z9Y<0LsbFKGIFqp#Zb6JY2Vsa}p4RpfM7l@RPp-Szbd*Akhor-8uLTiIo5Iv2gr*pT z0r0j+1`PvZ4D88)0m<<}QtJi>VI0)=dqRpM;|~D?AZNuev5vvJ1bevZudo`zU_@3R zWQ4VV;1bfz1;#Ki7twg$>XV?A7~5kQ!4DER^x^Ri;)Q`UiV6;4g@xdQM};*Itw!zx zc;Y>Ph`B;9OfHnwR5czv=6{Q@mowP_6--jZ$4bih!RxM|A-!-*^Hdk;?Ep`8=bG~I4_#&u~0-v>N%1iUi zkJUdq1M8_uQvMi{@&eba-bb^2Vd-n}Qu4nzE90G$kZGK!2*-bZ=9^F)I28^h57 z=&>AdPnq=?;oj7;cpkqKkL`;qFI3=Vr#;1MYBIebVsf?PI2iW?Hn86#KqY~VAf!mZ4x|9QrBMm3w9_4Bm91$kESN7v#8@FG#fd--Y`BJ2lA)>v);xRf_ zs8U=ffDyyM5a^9@r-Y%Z37w#53k@b^`S6Q5om(`ki7ljDkDqR?)mz~?Zvc6xP z+}J6EWc$IiT$eu?Cu4mb(nMOtx*9v=^2jw#&6E#cH?>)X`o24@S=)(*@J!8vq2?wr zf~#?xAieqF;bTgV;xaFFCMjscsjlXi6=|Uzm<5ko%YGsjc*C}0H}SOhEFk1n>zaV;^mp+ zITr5hF=5LCLc=#jQn^u_iuvo{`IytK=Qe2&B2v0JkS#ofwrPSr&~MtQX|^KA0-Q7O zU>t8nvE@2AhRrs@gdz}57&t8;68yG@KsT-ji)dndYRaKKqC!dQ_F{!#va+(2T6w)K zxNsU^t#{iXy&E)ZE;MURpJ=cr!^PHQ9uqNxnx>rvNxz+R5M9f^+oJ>$5g7Di z7z;OcL809llF{WDhnCyi#d}mQ(nnMggqqJQsGIm2V#XuM-c+D!z>CV5&a6?54a^| z?w9^TK*^OG17oWp=E$c>LnJWd5MP8JgI4`9H&qPVV@;NS{xIkaAlKavj-e8x+OEOO zoD42xR@F$VaCG@M?_>aTatVU<6*3jco0yaRUjL{|z5`P7>jsbD0D$VyHuf+fX%GrD z;S(`LCz3k;+DA#US2Cyo6-k=1PBfN&D)2ACjN;`DS&)2?q##;V{-|FQp^~I3jRGi< zAO~d~)LC_K8xYNe5wHsq+Kh!F1@?wPdOz8d+OXdp3)L<(b1P9i*$ARWVBOo+ncLyQLIRmiHCm=T;d6hS|lctA2G ziOEpA>H2kjHBj$EW>wQH=MOEBofYD!C{QusH;l{2&?`?q110lOQaea64YCYUtR4wJ z7{#Fv<)iTT5>3WkLpV)At4o?@2>h6>I%s=HM+lvK7nvqP4T3~3jQWT6OJ zf7Dalo-n=mri6b?A=M52CG_|r_yqK|QRk4N9+(YmiGAz{=#|qB^yA_-Ag2|rkjt5j z17gqpzR_tU4XE^?*M{yJ+IcLITJ|gov>L{zSTg-yc?N0pMI&@A^jEG9(Kq}wOz>mO zDrMmbn5{~JaR7M%+BtCIiKrI{89)WmI_;;VSVvp2zsUr^=fJAi^>Dsgm75;l=mel6 zK`sq-Wdfxb1s0(#L3;GUZotbzx_;5FQcF|s1WYC>MhoOZqr&lbhc2q@86_W64I7RR z$yG3?-xiNx?&{KiiJi`9Og`>oXNyfG8l)O2+>MOP`-qke`=%9E1?ld^p_3f*1r^hW z1(jd!@MWVd$7+1NSFtGy-ZxlS6#OKFdFdEd3pxeV88PmK{f8)3uN6c7{Q!oeKB@A_ z^^9g`RsOOHOOY7uEb7Oe^aU&^9@OE#E+4u?ZfS6l!k(lgYbZw`nedHPBvDohh$~!M<>csVzu=BuGi1OS^>#O4 z&b53**9bslZTk>JEz@)3Ah1)gKH5%(=V5l*SFYmBYS0{!z$yPppBed^^an|_i9$LN zsWiEn`7z}zB8qB=4PTkEL;JKkWelQkPI)7Xq*H7iXV6BHe>kVsQZ#fyl6!^b|5>x9 z-gD0WX#HnrVNF$8O74)}fHv!b7Ovh+vwh)!Z?^>Y61aQ(U%lSPrz0>nw}0t=%me4ErY#M?D45Hby)QzirE%%ONcLMrG){tT49v9K7wQfw&w#>?*p{oO2g21?7#~W;QKM; ziDUa#D+)oJ?K%mt)h$ebiNG4{q<5+>!EAG$?Gl8LGF&H zHL{$}2gRHs%0kDx1oB>&g-@|)%_*WRv%x%;Pb8wuwhrDHB?w&$H7iH#AY9J-kU+Q% z**woyAm=|VHNV24?x^muMpR|~zjlPaUut$(dq^}q zgq9{#hrqPb8$JzyK88x0v_>co2=&e(3>JhIukmYMhLyonumMP`MY&oi#I}KfOOyvRH$+%^nEdFz&foHta(IT7JI6=`6RiIa@j<7ZV___u3Bx+F|iJX!B? zQm(eftq$MHR*Wg>8oPU9L0gAxuw1EZI?{7>eY>izPsUI_b0w99fGd3zJmf6Tt1quB z_1X1KH`&S@{@yA5+}Hxhi64HioOlm(KOp_%vUx8K=0E{pGpwHol^B%{09=tR+{tk( zkG#}YO?cJp$B~RGz zkLshnx{PO2hx)`lwdm>$JoBZt(TLhh!md{r*To$^AOAlnVF&hdx7*~ z^w$3x{x|t=%2S+iBAFVg8Dnqoz2Ah>*D=h|cUHGy;qCw;vc`^H&9hx8Rx`0Sd6s^iem}s|m05hX`+u(DuefSZk2C(bakLC=ockz@&|{9@b5I zgvSAjZ0iUc#$I=7` zn&zkVsCy5HPE~FZAX#?>mtlaR`f=wIlV(1rS9s|vj zP+j0eD7Y;QXP_yCf<}sEXr{3T_cOThArz1>Jr?_o21!C!-P<|{W&7ma29N@oo(Vn- z6EP6Nko=T!(Rk1S0W44wNET{tk%2@*&XD$gj?|TdHkIOvkR3C7 zkOn}ODBKU#Y$>1w0SwSLVXR!e40Su%<1j}s;!7!${RXw!pSv}zm0HxeraDYbt6kHp zQ3M`C2T3|3*ak4q%07>ViP;1e2p9xmSygFCJW=}1JEB}+Vbnsj1d~AUBa=H+Xh0uz z0755^Fq%FD)9sLNm{zV4t3r)H0I*X^Tk#g?U&oNC^?1SGt+9&^Tv8=v2+CK_DKC5-z4Syv|{Z$*VHvE#gN z#L%3V7Hmw30>N}13E6xNJ8hRhO{j`?oDh81z<}JtNcC2|IrTu>^og@vE2>VT+c&Hn6f4RWdks4XG*TnIx&OjqEVS@_W z@DgpM9^xN*t*{NVNgA|$F9qG6maCXC>t$gXr>W#)R66$2FO351UE0LO@4UYG5lLcL zNNQXod;w>WMstzjI^Gco*~2L^Hnd2&d53?@Wd};{(^1Oys+C+L$}EPGt5KE&)>8_Y zCp+-z2$aZNw4zg_-f;nq%kYi>&oF2Ci5`-PERwd9(14uzrzd1a1&ym6ytj1j#tFIa z0vmI^+Yd&Ql}LKgV%M@G3a?qPV{wDNTTw-MzNBYpu{_R$+Gz`MaTiV~PG!a2l(35Y zgk&w9QaI*PM@3jUEvF8Uu#z1(*_7x8=huhyJ}p*W>`>K&$sC~e945DcWW>q9ovEsr za~FF3gNkud8MpEFWlpRgD+< zi$gax+cpT!BWBxKsoIEJus;{qY1KwVt_MM;2&n2Nb_pAP6(MbL7>Z4)nm&53N2Ai7 zuUa>s!l^9PGgsAlnWF)R9({OJZNJa(`i*n_s@i^>r|~h~Y7ca+uVpitpJ2&PBzi99 zsnna?*yfXI@9+}IjZ7hnK7}}AZW2UB-gcaxJF7){Qv?@B>*eyM1E>>{m%a^ zxrxOi#o76~Dm3@pHhkFBuetHihyHEgg27O5LXNuxPt_o4b+9twGyw1g)Vb#u5m zj5-|5R={ zc;h_IQGWwyqtmPur}nop1CQo%y|zjdB~%Yn6jC1+SIFZiqza3HJ2s~V>K-(KIqzM- z0zBZ@02^!BahSMqXn7#pPMc=S4ANEtijgEV0Tzh7IK-c30*|e@75PpAK1L7r)2*E*M9283GoI-u1#n~wt0paE# zwNVW17B^s4eSq{5;&vAbDCMUkasGMh8#Gk9GSCJg4vu=5bOBJ2WeD{e)IH_u8*1cU zxr*0$w|_{E9_lBf*-pHclZ2@SGB7OoW(clekl>_o8#};v^lD}W{P(JiS69_Y@Dx=V z=QvYi=NP`$m!U@G?7U-sdQ#c?+EadNPBM$)@>$FhK4Rq?G$nBzdOra;KTokz(>nK z)qh6FmcQEzH_sIAtyu<7L0gU&sE0Ua(H&8y`C`f8K^OnwOY)C^8{A4$nRS|X< zayW)*Q5d(#3MMNOj(Oxesf=EfK%9ocCJI&}7@zR};2ll}+(S;)y%seRcoUp+R z$#m5poRfu}C-~L?4(TL~ZAf1^RE);pnRCfQ_y_U>7pP`cQh!W#&@cO)-Z@b__z?2t zoQGW_ydcZykP%d7C41UNP4r#&+W3WRcwqcJd;vXDD87)JESiDrpc^1_CmRw?W3bQw9>mBt_-2_h3lF|ffSc!=L>r#|9CJDwA0S^s&pJ*BDXI`OIY z2iS+X4J-_A#h;W$mU59jL=oTeg)2KO_`si&T~dzxV*IBnM9pWdn&NAA=ErJI&dY_a zrz!y)oR^ENBil$bePgr0nQ`Pi$(LYh&X_X|RW1{sQFHQoE^@vnoD0MOTkZZhx2A#K zU<*1@r8yw(N9%i|gDwx`6G`{45$8DhAlvnJsF4sa(61z(zn+`8>}&NyoL)|)c4`Zd&^##hIavRMEy#9$9he0z%@FmwvT^AU~b_=n;+JT<| z@!wQWDEv!S1Vc>l3jhJKDwUTF&iSOqHHf|$c0}2c3psu{?t;jO%TQRELXO)IeYN>q zS&%0)Tn%`fSClcjkmn9D$Om008hJEUl-;wC?Gr=_&NaBIwtGpkpD#usfu;94vw4%#l$n>(AWFjrgA;OtCleYsx9=df52Km# zGsGFHtGz(QL2##p3S`~VETL|Qz(hsiV#Vc3{@K)$0Vbpy zU}3`ZlUi(tT&uZ)^D|P+`svP52d<$;`?p$tB zt5i`NCo6ywEhm+%KCS={%ey!?k;P0mndwM1Jhz`!M$wc)i0RxE7V?zK(wES1Daa7? zctVh18Rd7O#wEf+J}4UfXMu(AY^Zg_6Y&OaOq`UL_*Axu4}R{;Nyh2XMNL|swBIp0<-9Cc$z?BoPYQX0&-fi&rjR>5xjUZ}__xTcn zsGRY!@nNUiT?4~z?l~@P$|oXI^`b!nxYf}4f1NBP*)7l z*M22apB3zYhaC#z6CMkvg2MpLH>3^y;+#+_0%ZYY!`7g`I|$$>1?{<@?7IUg1t@S4 z4T_p|1I{+dpbqICPjB_R#|QnvAr$ooUz~%A{1~*FgMDMm_$6MD!!>f?S>KG|@fD%s z?P#yx?^0WE}!`?x6bU$GU zfqM-cT!f1Uan<&Z1nsR}ChR#!UT3rtYAW0n&c}S!J-ARQXB}LzrO}0&N54W54&zIH zJ%WZ8F7y~axT%~pegX|7n2M8!0lZKVjI~kQ>|#qHQWb>YF5_ zGrAXYM<|O0^@4J29E`dfWXRbN$;0|6%~%_WOqkqzf-(4fP#Nx5@bW2*I2I{pJ|5E& z#R8t(ce?XpD)K|1X(3-y%SY{SBX+@ZV@8P06$O@q0Dmb00s4U(G(pZ2dWjaS-d9iP zmKzuT*mlrW80X->a(W?!9d;K?j(~ zSA+D%l`Wm8vMH2@P~u#W4zf`$NW%9yTV>A)F`lVpDzj{p1FIgK%6@MXn>5!`*&LCh z&}z86PM&Hq+YIf#2Zzk8-IZ0!Ecwy=VO5nXTYf-)bV9yj+oW1YyfR?;!ecmhvbFZM zxC(M=5hKr|MS_F;cQA+ebvnX5X9Waw%>}I0s<-@*rOjuRFY%&tttiOOa?z=nF10*( zroM|iPerc$q-JaDY>TdSEb(of^HhOJNtV9BDH?jAM_vX zjfVXP#>E5qTLaNU)o&RXeYS8Rsw?JWm#!ZC?6Du5DT;|I{Z)8)gUy@}+**yQ9kX-v z5C;z)6gG`mf2s`r@JWipE#u%2R1XsIu6fD<#UeUNf<5JhPp~#XK2!zVp9ahtVr5cz z-n2g;QBqtT1w`e5E;_e5;l}FFxJ;g=0zV~hM7Wl06u6rwuAf*LE!{i+INS_glr+K2^*^pg%e9yyR^8lWT!ny#jObtc8zxTs~D}_!n~` zb(gjNs_-nImn4-1u6Mm3XZ!MXm2JA9vn?7&>LMstASe^5c++fKX_~^-1ux+wup>W+ z)5!G$kZ#*S5H}HXqwP7a)%Myp{J>ff0zkJ~AdL;}By!o-G#M6Dw&nzVpUm)i{+O%N z`5O?)y9Wuror3u$NzxF+-_**eW!k3S^uquyPJZG!Ak~WkaD+Gg)QK#|gtJbFQ_rzr z+)o4MLZ5B)vRr)n{hPD6`f^zJ@+zMq3jXsm-3=b>Cql$5e+|7=u}Vq6{6-~f*YexL zt96+*(bQ-m6Dsn<;{nMr#`!B0%+9oy$|(MdfVLCyh?eZ?(+S1%TR|Qn>pVj0)7vzL zh^5sP5+39`8H(2!?sX1?dXzMo`8j6AzI^<-zb;63%IY;lB&ukiw4+d5Dm1x_ltXw5 z>En2mfO1R3J*q*bE7U;TTDgWB%|>et|FI?#3fgEq zW0C$9&zE|K8WE3;Xom>=UufYT;wgbg6+$UOi-m|~B{-&}{#k@7BXGKmjMayZTDD>c z{67k!Kz3yNK=EIWhX|*afUZrbz6&y|ap@P-v<*R{RY+0Cyv)!doH@ms`oK8oNM84Y z1fB+n2u2)M6km$mJG+9eids4%uLQvQ5!DWr;{pIqIT>e6v{~uTNsZ0$?{5Ntjn|5r zbhRRk78ubH6FBwpZlM=RWP|hEOIwJ}k-B~wX`L0DGqs91uY#Pg*h}+2>%)ZJ76bWV z0-uErBREzhG-FC8jnUvW%!lN+Vf)$}%2?Pmb66So<#I3QT!iGb(06f#-1)4HbI3GL z**N~w1qdIDU58aN{1+t|exWt;)|~N^51Z*y{7KHAr;6J%wnAs)qvzk9&54{M4$BFg zA`s7uV$Z#+7kf`BVcL1fpGYKrbKL7Z1jn!sYY4ccn;vs}zd#8@IQuemqg<7q?v<&} zah8e^pcHO{U$)>Ym=O`CsWUID@vayA<*Tx6drg>ph-0WCfxc)${zXLj|&3f zF0AMx=BxpOGbkrX1|f-ZmeoL&5Th$fjV#71)cm+lJZ?7xMPHA(}|Rvk+POQtdoOlPbP>?b#)ToFo7pgC&SdJj7Aw(5TB&wnuTpFq_R*!z6FZ9hA<%2gqS8 zo=G8i3@5{Zq4?8T`g*Z|^EQ$eIo^3*Y`cDJ2kq1iVl#@`PK0Yb1Zuq~>uN4umCqMA z+gF&hT@bl9GVVj3Kh;zDP%gbuVuoLNH(xqH%!p8nC8^EMKdMg7mB=-IdrHphnx3xM zCS8>l_cTUeT1L@Xk^#BS?-c7i28nAYy4C6JXIA5%PR~-&iBfm-1vYMr@C;n_+6m># zoE63Y@Pvnm5s(Y#D423~u_`&?yM+RfP*KVECh~}4U{J&o=Yqaf%#`OQEhb%$dLxEt zuauHNJ)`IB`-K8&l?^M}_JfLC6|Lhi2D1MdgI;mIL4`WG@QWjaEEUBUr$J<(RW-3U z-Y>MaqM)~n86@>I4{@m$nOM={;+O#cMknZLn}V}dG>U^gh@{5dM8*fBUykDJWj(xmjkxE|~+Oa4OtpnrQjESLqUAHNPk#IA(y=r~I})63(mE{=?mH>o#L)fi!Oz73-~`cb-8SEa-tG@obOGFyU~{S` zc8gVXWtZ6U_{{b=33t`plHFhQ=H+OFBOyfkbljtPWNgdo6PXIY`| zrseMU=+AS1#g)86T$H#7T215n76n@Y)LSD~-@?sc zFG#u@!(RUw;BpGBq8>bVTP7LXGHK1Y4qXSNu&57jf=7?~T}@Q1p4hA)H%bqq{yGmj z;5JFJejr?-^^anne>?yfHng5YjH7N8))@d#gzyVo|a-o8dw198J95+8~JCjdObZXzz&>Q-B9 zF1wbLaW@X=W9$}ei)Kh0BYqBvs7W{#8~%_0y%{@*v()X@=x5_vEbzFWH$YmW6@&F* z2LeXp%V57Bb~3c|8XWc!#jJ5X87G76XVs-w^M!La)#ud;QAzPY)~n_STV!%^l*(Mq zLWrTLJ*YJWq8U^;yqtveq;!*Cdu7J#4Z|QYOcydV_5v_F0)E$n10{T!XN(#L&%mmv zakbN;#>FJ>k%Mdm6A?kA1r??C%p@jC$y#Y3D%fyTr;u>~zSIJEz>cVG63H@vP7hwE zL}}SUsILbJTrpFMus4oI2=F0cCE{G7aCPh3Ni>F^)$uynHc$l{H}LBKb`ZEL3Mf*H z2YY>BT~Z3qg+g|zk`abzxQ7NKtRjJxAYlrh%-V2FUXMeH3%qx=zul;j7AJ?}fq`fU zI|H$$18^>*%#GnH20RT0K&mWdON01&Hx-qP0t4Nd8}_u9IRM6gi+Vf zjtSk9WDqK+7GsA^$#XRc$67@%xojrNxdkO6?+1ysnaDz_{>+(A2BhIkc^5cIIm9W& zr(_&5O2g=KeObrx<3z_fmmaS<(GOK8z@lCc71HLjR?hjVed@;YpUo>-O}>#9wjQgb z_`gF^{POD5`*gN1r!%#m#AdQI636Azr2L;}b*W^CpQWU6Y|9T?F(R8ZgP`qz__%FFUgSA`2ueh|<(aKE*e7g13>^Ss zqabLtSr`7IESIhiuR)E3(5lIrfK?Wp5lG;|lR$B11W}c9uc)_1{3` z0EK4PfM=izn=K=4!z?HN-q@2lNNITqJRTE`x(Gf(G<0L18`_BW;O>c>rN*g@jp2Sb zh@tzYILAHWl}fIKYkVK~mFU z$7Msw157~mV~#8!LoXvdJGH#fw8l1WD1`K{s0RbN%E>aodByVt=@Eggs|x^wkW7}{ z#3 zUD?Ex$|9)tJo~-a>9mg#Qb2q^>g;#cKZfxF7nu9%B>3R|=6%`Q`#Y)v-ag_!Lb?e= ziNN(mU2xS#F&uU(w=XTHJjsV5}OsjQ24nZ zM5x6y5dLKD(DII2%5WRr;aFWTZKY9w zpp%j1hpwB1F8tfA&_#%vu;qjZz}j>WyvFt0unt9WvlZe0Z8f5wsX>4Migza61_5p| z>+p7rQiQvKmm?hafv>TX#If8I&hkOqw_G=NZFtnDemij5wv{vk#{~$7g26^fJMyaM z>(pO)LjR|;w9GRtf*h+UdV{|_lWpb^eIg^|=W3AzT_Tzv?Hx!$2tr^reXJ|L1tVhw zSe5A}vFlmQmg$24A~J&j)-xxy+E}B|D2O_3FnwCS6US`u$g)IbV^S|ti= z`K{q~y3CpiN`;%GR3NXMHTiPefd=*9eI z)AHL*yA5zC@2{F_sN|OaOvrPMOdndcJSS^46W%Y|jn1@SaYD-Zxj+_1~J=kzL<>nOLj^-K9lPs0is^jRC{ zc&j{R<2a{Pb&2b+O1_8Z`|@h!tvThB_xGFxMaygVNizTG9tn4#yG7e5t_C~~nsrD` zF~la@@e?<4JeXaYQ5*+x)JlEm<$xfz{WSFugwpe2gh^qBY5HLEOCVz5BEUlZX^sxd zyG|_L_%dZdobofTmw)?2LV2Ly--|op#m*{UDRS?UDYuI`i3pas@QWSc0e_-<#&R#C z-&BJkuex-1f50Z2YWw7y+2sa$Y^Y(_QG9P(m?Vv3P(x^gBIH=IlaR@fvcic4)+=Jag83+} z!Fq_m)u0*+5z`}oonokBiip~`ScWl1K3r$!$&-m9L}&JjhQZ zwSDxU--&VbdSD1Po2?*pk`Ugwal7dzCfN7eZUiS>PzARE9B;SUU=X&g7*TejB>Df@ zd)Mcg?k~p;IS6FdUu8ftHbEuKYFO{^x zi_M^-b|dmO@!7ZJYR7sXV3uq@enGjM@Mp+p?^AL`jH}xGYAvVw{5*$ZQh)!DWVP^R ztzg|titBQ)c?87IwX5WfAZ*Ke5p0j5tSrhCEVPEx! z;ARjlM=>%M;bTdk5FoA!3{k?3f}zf2%6y85DcoShQlt)y5$!G_I2T@FJAvPe^1?0P z^Ar|E8fj*O*S(At{4o|AjDsd%aEw8qKRD-~F8GjK-qvWiQ@?Ih<00~-kJLZ-n_o*! ze8yey8OvL)GdttywePx_mW4U3E z#UWf%v-8~bJgw@8K>VqdXDhJiTw9sZOfP5o14RmahY$GwpxX_A)e=J%3TbHu4kYcy zwjX(2#}30NfYWORvjs#WC?YpUyb~W^!XRk*lKB6g`td8tZ3eS0R!wUZt~Y)%gewxV*? zQxR3=y1Lohwb@XVR@G-~cyy2mKSXH!;UEcPRWg-51n8k~UsT!u=~XC_#jL6VSQo?C81Z-@q8Lt;W;g-L>x&wPHpp8KbQJu*D-au3!hZ*vV0URI4U(p&2Kzzm4L=(|+h*s;06iV!j z2IOkelE>6WtF=LyHiVDP1B68sYz|n84G{s$>)64D zb@AO>o9$l5xun?(vPn`svl8%aL4c6d2to-I7Ff)>ZUFU&m-f;qO-tvQr&S5584Z|y933G1D8wqJOE&zEAHq#`+AFa3Y}1kGD%|HAV%hmBd#`jM$F>mV~(FFs`- zkB`}*5b+O>7H0w1>wu5R9mk7Zur48Bz`&Qlo(zza zX%EO?VVp;ZcJ8=7p1w)w*nkQPTv+hCKKL9&i?H1&Eh&rNmQJ2VP|HJpITJ3~zMs#Rx!`_|Qz{(fv@&u`elsKy_`F>ea2qcv5q^f!0&i|r8jH0-twg|T| zSm$BqBI@U>;=7iausO#AgTqnCOCqiZv>z;BnZSj7pWp(>q+<*ODR6BS83({lg#pM~ zYtX-s*d1H<@&Zo7V?a@j5r+e^5t4);h{y2VJ7oMmEd?S~jwMaHh}3C&q3?%58fJbL z!QsdDofMHmim-%n;z%HP7#M;7YNu6)GvT( zPty>Qn8V!9_%`P{&Z7qE<9l4ej8TS7(Xjvl+H6zt*hU!*p=y6V*Dj+nyffZ&SIeOn zd`t=5LP{E8-3g(P>gMX%as>xtYY^v(eIl%8!Nullt+Av1seyYR;{VuomYaVXhnj4aFo|_ zz`0$uD6lk^)ymY?=G@XrkExkW!?<%cY5&66DhZrH&*Fl>197=R74t$Cte!DbF<8J6DKv?e{@cwo`y1%Azpz^DdAVQE3qZio=T|$1gJ9aZp1DO+)VF zehh$jm^X%Dk|tgds1EE-@`JvJ2nySvNgI(}spbU1Gh;Lx;YjQp*LGyXjXlbM;Or+3 zmO<=b^a|L;z(4|M9!Ut*1_FpW;N9FX6~aC(~B0iAw`}SfHg-9Ri{W@+q0u?l*CvrQ6BohKuIyvA;OXRKwSYk3NZEqz^?!( zrO@$(mTFY2=J#{{V9x%3da};fQV?7@SLeLV{>2m8bROErdY*k#oaQ{KAW4RAFKG6Q z>)>o=Di>Q>nSUv8o~9f`U5jHm<6Dg&qMUll&mSnDH1Rgk@R$as$5S8NCg{lwppVc5 z!w_6T=M$C(i7+MZrNHaF0Fh?~d{Q0pn8GnBNvr@wl;Mu?1OgTayV~Iu*X7^SecOXk z+`)h>$tDOD)i3%mD^q4;x0Infm9Xw0yu%S7Lo6`EpayKyX%*;SfH+FvNokWNqE5jC zZS}Tj>MA6#t$KgOAgtci8PqUX2NEApK!&0%@gYV4Ku-{{w!|$BQ83#3kN{q(-2`Vs z(EK9YmXh=$sDWw$Ki=lq#^(vHqbx-T)E3%MG z=~N3=Te7pug{n2}>>356j$YDZ5JN5|VMfff*=|UP!CJ0ro2s?f;0de!JjFGkSRh^? zA(cIfg5LyQ84!opBc3v zc~aiQ`()n4@!CD@C)1k$ia3ozJ)J53Ckrgpvxl6V?YLaTbGV83%z=NLdbocJ#*85kdd9JVtpxbht?68?u2Fe4mWewU&iWW@e&X*h$hK33OIpnhvahdO zHD~8P@nf~1bHg%EN2yd)E1u8i4{-M`am~)`r;|T$E0%w2FNi#}%(18|aRu!;_xfKx z0mscbn2S9_#>l(`FxlT+c^fAz&pQ89xy(c^1?hmYXoizn7hHXeOQ1{?zcu9`;xpIv zA8k@Vx;q?agd#{IKEo72l`o43-CB4+0yUXp#3HHHJMT{@4N*--F$*B;)j|1&2uq=F zLRt3dchox`7T(lNOSYhl$cM)?Ue$Y+!~(^uez=DRHZ@j-l#mzdr`JZK!Jk}|;s^Tu z!X?2JdqcAsILdOCzOY>yEc1a%1inOu-heO!u7%Szc<3LFM6g2(H9>}f z$b^6`B7-zo*^@_Lra^}g;bc5IP%|NAJBSF<+CuZkGm|as+&)F{z(2Xj26_9yH=;<~ zRT+@-4p=9J1EMX$agk(;lXa3}v?=r;$$v0spCTIHV^E@4eu9#)&w~cG^cN6=UsnHl zE4jog7Q;WHsFn9+ESYKkXnKS=A+*>8YJ!|)`h2!3C}(9XcJZg`g4!Z1I(kmcxY~?X z-~q)0Z-xYR8Zhkw%($1qrX%*9ZkQErsp9{CREamRpoEJ5>fzylKpmi%;hp`mP8*L$ z5BckB{B;v62H?`iobb9%;FYV@{yI83vZ%nD2!0U{xoA`R-HM@YQ~HPC`MLaeW~=T{ z`UjlhTbx1fL{9m^OiJhK5dJ2DW#>%V!ax^?FfF|gEkvqE>+M-W*D4o)HYX@aPyx&= zSE7eo*hcVIJ*whs=O$J!C+SY9q!Of8w?(EP8vW(~H!v5}!>N*4LdofRie-8!dwYxf z$O)Zlyv^@5rWz7DJ=z9=8j{CsEma9zt??uRG~$8IrkldJ+Nk}yuirt2tn_%QXI6g4 z+i5g_wybnxlcpHucYQOzLMK>9Kel*SrR?w;#eRB#!>&r|1yy3I=SY3QZN|l=gY&f! zqVwdeP+gJPu$Q#mjEwTLIm*Z7+LT3c;ll~<5z~`Jsbc=3T&RzS@j)5YN79pTR?aAk z-hg*Ee|b)H;KuLxZz+nt*+&>F{v^e@H*13^$BMt|Ayk=bHZrn-%J_xp%6BhY#E6BS z>tU=VVgzvGaY;ELx+I?HdNayUHI<}NCC;T~P#(^5JA+vi;tX@DSusQq8CW4sG>v$6 z%3+klCQQURFM!;!n83gA2RYQYYxDR%KzTTaoF3w1_>1f*ed&BK8s0cKEE_7T6if`~ zmQ#)`3OzJ`lg-!~>kqOVI`&BSS$?`lM<*APpLTX(^Uj~-b`qbA<3q~N<#%&S%Qd29 zJWNP7ld|gg-YarscV~B)Y>43ExV$903tp!~TqA#$VzreT;>wbHx50F>Oq#L;S_4n7x@8+0S3Q+&`-Ye_SxBg7^ie{zy zZ*w(el5vH6w;|m;;dOiN#$&we^u)f!CDnI;{li3_n>3qBV)?nL#?ZW3r@UQRPcwlE9fwC)tys@K*Flx-99!H_8{G7FXtH{nH*1t0K6;%~3& zZ#!7;xxUe6~-d*ucDEh2Jbn2s`> zJDrbqZ${i0(c_pkm&eXDlZA8( zxam7biIf6y5hi5b3gT3{y=5H4E!muHNO`!h8n_DUC6@N>VKE|=7-tiQQH8&h)GS^1>Oamo#&nN+d;s_EiG^^GrDYqFu#r4QmMWK;SM7mY;( zRjyg=cKnUk)*iB!^3^xUJR-rJaC88bl-mw69c!UhMv)SmktosnK-bSis$Qs0OSS&< z(K5R%rekZ6RR>ROq%EA8I6mg>^i=AZ=HZaZ#P=eWoBk-g{8-1Ib|KpP~0YQ-Sy(se$=ck|aFNkl|bK_P;=`BaRDo%#iom|9N`Frc zu3CXqR@!W6LDie}9F-^6Pikp$4#cwsYqqka>(!{q!n|;;YFCY3O6lzBhdV(5FsBViv4c340HbR8&}Z7*PJvXiiH z=24&boqO=N&()@Ic5v3|(;U--g-r@)tKse~Xj1r+pg0;I?!&W%hY&O=r0O&Lx3(Ur zJ!~;y4KJ!&A=TZgr`+wwae58V=I^^aZS_rTM=Yv~024yY>NXF|Z^ z{q?^YS({_Xx&QjF9^iMK!Iy>a9RuceCmm_b{=+Icz|f2a8&ljm#nGTM%*mHvhNN}* zw+C@bRg50QqY7NjTC1dPT^^&R&fcIip~@<`RImP~>g7T8SutM$99Ft{C~aB9x#HW4r`ZnLaoiAluLyuJ}C^z`CK;ElYi4MWXa6${RoiE};A;M4VbV z5hm#XW|V1#SXF=D8bAd-MjTloI}%Vjg7yaaro_<2L*Qs#gu*EwU$Wpa1|Ja^H^92( z5N{OlKdpL8Mrei%T|m|nFn~A~Mkg?oAe#=M#jm##&L;W6Bp*CLQ8Jhy>VuqweG_Zr zvH}V?$@)R;dny%ATb19hY{0x?2gW&Mqj2xW)$4a}h}cjMDRxxpQ$mnK=?Ei`XYWX7 zn;MGr>63b;BkB=;GN|lxQ=t~M`;#^X4$D9^1$ao*N;#P7+m+TtvT+@?dZ6#FU`48r zR-W2HnDpRb=y^`)cHzkv7Km7$I(8Cxaj1_#K5wPsWNYT&6a=LfP9=6~j}fNuj~BB) zs~*@(I$IkoIlpe)nQo;o%gFu3le5;EyyZVq+@(C_WX$-bvkYph&;7ydX_IB6EOZ`h z>HqwM%}nWMTRmvz@Uj2$No_ozv5)0x+e+#_9drvkyYgHE^rDg1%u+764@-i=h2Lqz zuiXLO061T`Ss&aMDY{n#qtaD1;Q+2%~FOnoYBHK zBg}G$;17tgoCEa21|~v~I|v<;_FTu&jKM3aGHJ(gtq&*Nx@BYC8-_A*Q)kl({pOME zgl;nFs~>733$CvqIo4YNTRBvs?2uT{^lr1VztEI_PC4~?>b#v-H`DBct*J3q2Khm_SLgbc~adM~m)L0Nd zFww`wl6H3kcky-8PCXO99HX`-$pjXrLd_w7Y$yy$=z1AgkSuXRfcb#saP1hlPK0}e2w1?<2{SM% zxt%+9khutRkpsjhuz>-Tx~}W+t#vAz&KVbi&c>(nzgv*$T=s&l`(0mG@G^GrgE7AGPWIf3%Z%9H|jX-uHkSjlDtpI0g%t94tK9zHJ z@8m-?Yihke8o+y~k05H-A;sO9<`5rFt;-n{zuoSvnDpoMa@OVhio$H>2Bgjl4Ps6v zux^f&YU-71V*KC<1z4AXaupYnH|4A*W0p-23>DTD)*${pT+U(LC{1D&xBAq7uH(b6 zS%)ypvSeK~s?8)ity)b7@v)WU7C^OkXO0if+ z7NFMd69|pWvPOX8gxqP7giZ(*A>SsKCFwdQDaZ(~DWtckFFu-%Kvjj2mA>=v5hF^i znYQ0@f$bgw$5F$+q78 zY#lN}M5B9v0n5>iQG#iBfI3@~5!wuaBD)BxIJ0Qx1fg$8vo7XnzrVL{!I)1}4G{L$ zB+aqz`lCrl&9AV?UIP$4WX9S$#wt9LGy*;?O+5rTE)bHo@Sza#a{%uEgGV#3tVWh5 z+;Xk(B4;k2_8%+*`y_YfH1;78X;2mOcL_Kn>5$pO3@dCD+%9$ctP^5pT@bE%`S9aF zB#=!L*}SQ0jh4PEO&wJdv-qNzFxcFTOFsfWJ@yvR;bH1d2C$JUwduh5YF2xWI_W<$ zp;V;z^NAQX=H#fw!t?SLv8l9TnkJ8z`e{FTMK{5n$+Gj=#qT6Ig26#yOQQ({ZBP7D zmUUI7Z@~Ul`IsWzz`H!HS@m@8^WRxu3!ELYreQeMeKm)tdEcDT$Eu0DxS%QtEX^!eyHs~xq_vWr;cgX2LPkC2z}yMSBKd+e`wvwVaT+f z5ATme@K~YG4y^ZJ(>Q@M{)lbX)@QO?mvP~PLT8{U%yK^;e$HZ0ZR?t?%Lk+TN0SW- z#F&f_-CZcZd7RYGCSK|qc)7iC{{U;VI_0Xw_jlmpowsqZ_R~JG2FL|%ElI}|qx5X| zDwqQi)lD)ctK^BbD&44KFah9Z#@6b`qRgt+d%j~ukE}sHnZTR=04~UIvOXjx#Pz$~ zM^=FgD<4CBx(n5*P{EQ;^duduY?Er*l@^Ds13aOGI|sKnOh)i!WE?=Kk!4FKEpRay zFtCEQMTd}eF`{lxE)g4ICFo5KLjW|T!n_HOfAeEvlDHF!`Mp`8yqr5q*dzOctfN zAC897%1bEV@nHgaINC)(4`=|*DpnPk)xoh?D&*hQqDO}?3BdXlZ;qoO1&T}wB?6lQ z_z{5O01KT83x#9x8W3y*8D3ClFn6*mo$3I0K z!`#6)2L7r7Bc-y046?lb)6)o3HzAM=(d&+N3o90nCp>_#OT$T>kyy_oa%9r@rs|MJ1JBqL0p%x8$15%D1UdDUqo4M)JTm3R zLKyJ-lU9twVwfG5`&3vX7PvLUmII;sUQ<_#c=oIT>}_hv%R%djfSFn#AQrH~0l*D; z8Gx>PVU$9P2gGl{Vrw>p)y&ef8I<_Gf@5CmrdQ!fqGV!x)+PUd$j|S`~%C9m0 zyt||Fv$_QjyaNRyt5W!#R!PyNN^)}^aOHbZmtjHzPSr0@`ZUwmo!fV>E9!bw7Yrws2>xMdoL+K-$QyqdMr>i78}X*gTU$+v z8pJVO@)G8ab;h61@-`RNB8ZGV0~mJN8~M!>!myv?l0vI);EJmS

?yEd8plq#s1Ojx-St!UV^fMqP^Sl@1O**zd1}!pxelI`Tn<9_hmC4fL{chez zn*K-0RE^7W@-0?Eka9yx)~ww;J~&wxv4+;;wR2|{WKa#?_bLOi)-rm`1FU|EAZyLW z%4y(9UMo=YkVQ2_2E=ztLeKuk zSBF+9x6t&;H~|$(0xl1@!Fa;fE4T#7i--E&pWv~4 zAMa^ArVnIWheFy#Po6`-uF<2K#*@TZ4@s@HDHfy}0rAEn7`0jpNREKTNeNPoah@&N?snDAJjF1;Gt z#6x7(gFb|o6(K>ZA|$AemV}FxLt$}yssn*3q-P$6?tlQnV4_L70x<~neL!-0k`!K) zy~6_#dygD`NSpwF3=3ZELe)q5&KB)!rN*RwOh@TxFo8@-baYjz;8s;vxu=-P>fU|` zK?fR`kiL%ONY$QATBsJe5q@iblvoDbA>EG^&c&U+X=uQY4%By z1hlI8kwXAtTA5Xyt)O>u`iUKpI*!@eu8Z_eeS-WrZoEi?lMU&60bR9{vDr zhl~+jputq`>mBQ6`G;;ADWs)NxJ4U>5a0Q{mTG!Vo=1^)o3ToCj@c1Gb`0OZ~h_eqJtst-YoR)=Q!ilSv{ zO4fBc_RATeW9Ax*44$Dxb+6(2PJHeL-(O$N$rsFO0yko-w) z&@{<=1QJw*7*e`yJqCn1I*zzjrFt(@YciG1HNa+44qfG!@`S<5#urbF@0SZrUiE z#p+~suGFgKY5E=nZ?l=IwjZj%%nzn8{UR6HI#?ruXs@+K+rG?|-kl_!JINjHY$nLH z=A8N`kKLawFm|8AG-b}jR^I<}?nWdbU4@-hL#XJaIQ#%TL#IX&-pg@G6IO;_ZzdDH33Oks{vk^Q7VS3?KoqIu& z6gfiVLL>@3Y>eEgpOv)5Z|6_}^;n}iaCJXA8GwPa)qd)@0u}fIU^lFnqtc96(ESL^ zK49gbuIBj=&lgiIm-6(&}kY zAAQ}lQ}^7LW7HP(kXrs4Yf`+yLu%<2)i(WUfAaR8Z=QM@g?c(uT+qX2=>t;NIh7U6 zxqlb*uqo*->sXRJCc?_BQwSIy*T>R4J%<}&G%O)9L6mG;TY3_?mNKK6t~0KjkCz+M zUp95>m)386P|e(s z5F(`Q5=((|T7Cg#v}4CUVl)F6!0v`AJojuklt2v~c%>hS7SnC2_&bUc&z+9TqrL+R zS_Ag#P%@P?Gr)_ESHn4Oji6dF^HgHyh(2`c5iE2V7A8VCr~2VCQ-w%1tI%O+n1TpW zpgBz)48}}0Y0T6E8pDa1XJ$ZTp30E@s5ZgH^cO%~+kM1BvKxfsWUn7=J4n=8uTE?+K9d^fSdtJCAI&fEn1ywh+ zyLspriR~1&6Xi+XD`0O0W7jN8?QWEXAe|!!T;djXw--5C!N>Qxc)OqKX#Q*TXE=c_ z57^NR8Hj#`9jDzxfa4+u*jtVWmjI|tUE8yxZj{6rn+Uz^W^o#4PS}kKA2wum5j%+& zz?cl4nnlchUT2&6G8dn|3z~KZQxVX^;?FN8WkdjjMjnHsuYj3tOWvRj9FT0VXBZB|D12HZyW<9x6&8IF#jm+xTRsZPFn zS0-6IGO6sl_)Yk1!TG5wCPT&~AMdT}(KE_i*wI!a8QHABtb#N%q{~;n*NO}N#vlAG zMd5D=%LSP23~(C4R0G;^QnllJROTm42%0X6dP){SM30pEAWwnOP;9NGPX}QdAj6}g zipdeel@VQO0Rx)CPDv1jc?RX6m_6)mqHG%CVJjZMDuIkM@XkP+24qSj3}d8iiFV2$ zhbgjO=p!mC+}+8&Wpsq-dD3VFErsr$Y!2XQM%Dpzeo5nnI3Z&PH40=Mp#sdyrX#8W z#sNkh%GdxI;8}*?@aYl7g)hict3OnOg@6hZ5&sqDPXPV=lm<`{Ztaf_@lbMKY;mC+`DsAWHnOrn(AYj{A*E%7bfv=R!U(Kd5I_cS1%mh# z?R!W1r(j_{eE6^<1d|lpb%a%=I?Jo;3cs0@-~A?US+VFW--qNGLh8(mVcFm(UKrw@ z^6e~w>jos(T7>$7TBOgJ1Xd*aXYHfpzST$KzRBRIbUIvFkxI*k3_$6pMaw%v>gG8g zD`7cRDp%{Nz_G7}aFf;wGnwwtd(5m%x?yn6JN-hRfc2EpAOD-GEfQ0U%W^|I+kG7d zN~)A+a;OiA%+IcqJql;43>;wcwb6>oEA_(qv;f@MAScbSO8%}OWhToNt}^JUU6?}^ zhyT)!_J+65*DX8cI{Z?M*`F`UC@pz?HNAoE(Hm&F_3-vO2h%~@0dHuxi>%=1*ExE$Fl#XtLj{NmCvmeRLQkN#b)Cd_QpdG(8=(AX zP@ef+IJ^`A+}ds5j_lONV=_qrLmI+mrVCse`R`S-YD7nDyrl9p;{iPNLH4bqVgC`z zMPQDhLGFfJ^5di702fey1VryKy>E$j7k0t8tOK`;_pOhCPh&UmGcU|A(oi}FcGn4u zq?h|PKvGk%(7tVBu0tTH!YR|yue2x4vFG1DNhgGUOfd^J=l%E3p2$Y?+w8GkfGwPf z3av#gaAFpoT45+c`p6X-dCe?bc4g%RK@MkX%tDoDjR)s^OTL5P6|n(R?ECp(K#VV^ zp7Qf2S0@vgR4e0g7=jBnUv^g7(MtkP{gptB;HQHc5O||&EDiP6Xaimh!ewEnEZxq< z+hjs$5f2FY>Ikn4b~&aeMYS%xKgb%19%GZ7TrUpdLvp}iClh*;<>dWAhV}q>INT>& zZF&pA$v+<4hcEu<2#8y#OCbIm&mHAtq5N#}M==FP5KlKeUvadzDsJ@j=AkFgr@Db; zdOy{V!}95)h8*V-FOd#7_6&vbTA6hEBR2ofa@b`fECTur{~ojuQZ}@dUH9qnlfzsc zzBh37pCEJry=|yxc;-zJ`wV8@knXkM?Up1#nqni zQ%9IylUs?(qLzf^+HM{MA+8`l14vELg&Zq%GslJmtAG!qUeiBRB_t2MS@x7(4Z?7e zSDB1z{VvT6f09-tcmmulF^#1qv-~z=J1pN0wZx8yD$O*dPr1rMW~Q7V?T%H#T}Tyj zBc!){h#AQk7WlAmdFd9fGMGu<7Y_&{X{PDAuRA58n(iyU%@mNn{*{rDPb++w$tvGB z)f96~q#Hb?R|iC52hi8q(U7mnGR^F-G}xz9^Sd0w^7~9fWkYt91Gs9nJ3Q4>2 zndHt6Eq-lFy&}h}GP-iSnub17qcl~=sMT>(+`jGGWz*XPRvS) zO!Q~-bINhsj{9sztuKrd$eS@ietZ&jh(uH?etuFmTHn<;rYB@ZY{?tqT|MO;_0##3 zIT$@Fn@`9}0rIMW4CT9?){vfo>x6AY-b)!g3LaLbP3Bemt|7Z|Fz_vWE_i_D5l>2j zwjW0fY5Ucz_8cvkY^=yr3QQ%R~}NO)#bq+4BkjQNjmg z2#b=ruV*)Naq*RvU4yKUCHU>g4SEF(jchmWrM;d9g%4h%A)cjf5$7(9q4AE5oL_ zSxl*Q zAcNbv<9M;#&AMUK%_9e3Lb>M`X)lAB4NL$c7}~f#>~~-*U`Kuw;0^(bQ5-wH0Qf}_ zOJnD=C8r8x&({7j7hlK!%ab|J4)Qd>-J(l4m}rkhOT;6u&wi_drK?z?cdPpF_$5WR%qpZW7zI+9H4w0>YSB zn5YlPL}oxh9S4G^`|QG6eLf}n(r^UiSvBbZhJj%Ca0G_{f=`x4IvgArvxolgLFhhb zwe$(U6eU|?-B4>L9cu?-WeM$J+Op7eUr<~pq=4|K=~vN<9C zRBajy8ZbM>agRtlc@GlZ1h!;ZMi!m0uJ*HRW?R2ntBQA@{>l4)e}Tv2ss8S2#>G`j zO1uCsA64^Lwcc}-q->a;$ASquIqXGkeri+m_N|>-hUx_B6?DokY&togH95(L{1oCd z$-J!o(*>6E*Eo>f&B5C<=K&n@#Zefgl;Owr0+cYF0A`7hPF7 z*$RX6&C5l7SuS(nZV%!qF2;j)yf=gf4tABwepDXdu=|kaV5Lfq#RYxAEpTqlEs&4) z1Y{<;Q0Hk)p1cuY7TZ6BVI^rV1V|Xcd}S>jWV$$T=;PXlf^RgCmQ?3Iw7-A(kh}S<{K7$R)7C^KD}*t zKs{3APU!U~@O>CP0BSdA@Krx(IS+7%uVl{wmgdj`!m=^9Vl6{aBwR zwTO6vzJnXGo~3Gmrm~;GD@5tB5TCEMEDDuVe+jgiGQYYH6y*Ziy`a{GfLRcbb zvU1O5S-~r`A+h{yuiZL$k3oKq##Rm~I3s3vTiR1;rh!0|tr ztD30JTwOD@Lr&SMDyKP-Z#1VQ>@0Lz>YD967(|(oCeT`){Dup&wsd;8UL5NUL z2u1~Xo+5LT2!@h*kb98}Q%SgrNBWNAH70E=s%=m;tVn~PY6@Zo4uLPq#|dXFRcL>) zm}o7li~x?i<+wLCh|#}p-kF_4zdWP&mrv4~Yf?jeLM%hM#h13g%k6ij-}wD7pX1mO zcyOcfA@GyQex3sHLd@jAU=Z3--}ivt1zYi~NCWuw`<@5ae`rmUUg!r1djq?8H+R#X z*LB_0E)p+K1Gb_0n{fd?)3{VJ@qN3Xg5z9fx$dW1tz-_X^RJ$`9ibI8Ji?Eq;b@go za-KZUeQM>!23Q;;ubG9*LYz?&ByPLrHp2PllJ=;CK{Ih%46>U_=5fya!Oyuhg&3IAB=6pqOn9P!5%GJHfYhXbM zz;jBx!z%;io)U(Ml@H?AGNYN!`BqluONuy8Qx0msesRD4-VxmLht?Lf&4^6lbR9>P zeH}h9M+N+jHek~>%|{&#C;YNehO1IPe@eH^Y(O1BX}#8URpjT_gv6Z^t=n4_Nxje~ zuSx;*s>&SA%{=Je&n;zWFQY#~F<^0VzIJL-_+F8EUN?=pc47BI*NdR*PJJKo4^qT_ z&RzX%)?BobJ>NuYJEm;>`?Eodved*(J=g)4(U>oSW=Db0IuVO}rWwyv3fUwv$UeuN2TDYqAn*oGYm0 zG&69?m6a3co3qWyMAhiqtouRUA6R$$VEb`#5nL!mzH_>3mT_g#HAjMFeb-$ulP}L+ zeOFX7erDEid6*$8rKoKdJd|7BYrYc6r&r834dZ$;7$xfmh~$)y*YDl9dj0N=&OzNd z;1BPJh<6B2g^SHlMc>41&@H0W&*>P!kbtBkb>kFKN?m`?{C~|ha>A4zW?FDRMa-xf z@*7NlgFIA^*jE=8Uz7bl!mwx3&Ps=qCcK`C*Yf(_e!5P8=vRcLm)5mU5k5^hX()p$ zwWuZtnPzuj`?eRSG8h+)(c~QjR-y=1+#2hbBCOhQZ==<6I?Onbo3YTeTX8}LT_Tt` zFIO0jZOB`D7C)py|WC zODz=y4{mNyW$TbmWFW^C!N?4jg5aXWI~uGBJmM%_hMyC7PryGQbPMJ7EPRO7z>qy1 z9@`W$iY)P9X-4ttRU|19S?)sR{--t25jyY-*1E+hvcvpcFB}*vY;Wz{{?%veclyJl zM=+?QsChGUjVNgp!f@lW^$m&~h4#RkBaA_tz3TONbqFro!qK-!+hcmA1L;^s zk|pKEPX`eVNn=a&I8|`U_~6#(YFpEyZKQF+YOjD8Fqc^b$d(9k6@nzP?KBMmtr_@G zq&Y=bzXEh%_S$0SqyDYhce&>{m5poo{OZ)qP+nH0&1c2i##cZz%aezR){@x_hm+qh zON+CC(|*v9HuKD=5!fZ0S0=#SRR>J1J3lhXtJIkan3x{q{sK(bncgaNYzYHZieyrO z0Ag0vuve9t^nR3Ifl>sbW&F8?ucmCH;l zv)v{l07-Y+5nz+^F2GzfAi5GXaxVe2RuR~a*URDh8+jpq@Afj!MWjuH@d*)ADFLWD z;9&uC#THsjdWnRoEBd`OV{aqFD}0fzz(1O+m7>9{>!V&3${Y1q&@=Y*U*E*tkU9ie)biPdqaiSYz|qlD2N}VY6XMVm>U<>r zJ|7dn+GP6Kg?CyTVx-V389^DIF|u+zDu_#kXN|(ao#2^r4A4MOq1Nw#c^*<&V(KN~ zG@%A~uoNi9sJUt=I@VRyPVsP&j~w#WLMe)TMHsj;OfZoE#x3Gm!=4&JS%@a^{e;g? z_S+HoP;C{3+1MP30mmz=oaRg!SBVt)T?`zBJsu&1y%<_FTm;I-D_A&XO#vy@lAyW? zkiye_>NrMEK>kwK@OaJv2&f^cRH$Py_F#?UA$+CCO$sdaG=3z(tK@v8MjM%N2J94U z!ZG)%7U7x&uQXUx0RV~y6#EYN<*7YNUJ!1tD|MCf>|5e&xNI!G|qUu6*1 zz@{_g7Bj$zSC8dj^6`jsE+VJX2xu-Gk8jOd%eW{N)}DO9AfcepD(iB<+t_4ns(by) zS<2b=I%RHG3d2T!vd#h)_F_`1U}iNf7fAB~uvwfK=-PzV9t2$%&ik(C6+U3xHTU?2 zIyAMu_i72y+_{OW`B2r-I_eoZHv#0!epo9dox{TcmMH-}8+3liepgp(89Fy1&Y7)k zCReq#vQd?6Fat#Fk80azVxGv|!IjNK50S}cJd>GBvYJyUai%_&FIV?EkHB5pnnpu) zc$YG%bM=r5>X0gx)XjaMVr#LY9{p+#asXr!O%?3k;?!F4*@4utSS0;2L#35JHoI5J zb7EU%zT1^?;#TRk`u7$y*by6O8Ei&_vESECnqkJC>{0sDzv(s9Wcv6%-fDEpFJqDF zU30cyURK%Wn^b(Dc!(v1Gg9?6LVL=zb26Qm#7};4o_~;+W&;(V8;^ui0W2-XIe-r%1=io~h~NOPh74h3#8%m=b053;mC$LxlOrb31qJAam0Qh|)C@HjajG?En?uDCt`p=@I81ydaYaeaLgc;T(bW2b&9Nft-trd(E&UA zsx0@Lm7920S_lTy9spN&0GMI`1ebwI=#`Fiex9~giE=z$T?6Pu4D8)_uqxiWt0Y+8 z%f}D^2-F8vGHrm3S3}J0RJ)hNvn~CaTXXZ`Zze&^Ek7IQcvEPIYeP zyBY%iPD3x6w+$Q+Jp7?hMrU*$8l{GotxK_s-j}szoCo^F z`3m-%`dEIObGa^z1X@zo_YF_-f@1v_1_qNj`l@az`AxEU$(2OpePBqD$7q zZ?vE{9Rtuwwfg@xFfkw*CdgMprI!f*2}vWxa}QEWMV~Iu4Gf8p3b$r!P**gNF(9@y z?&tgwoa2N^FZ88ZuS2O-RcNOueYc$Twu@Y5JBH5OKm=*m6t&Y>Uo97Gm@>q%lGJ|x~JfaU83 zT8hIlxxY;p+)YSk!GrCL(>qWlbVyy!OF~?LbkibS+@Q02s{?bcr!s{4 zUHI|0Z7=W@fu`~*NmN}U-2oCeSN$e6%}g(*pQr9d0`uCneW*o)f^n%b1{c_%M5;s0G4v^j*aV&7DlWpicRP--7dnW2YZO zCvh=v0PcS}r4U^r7HYf5HH`WxEt^T^zW><*TjT7u1hYfm&T*NO#cDf|!##(~*)pg3 zv8&|%F39P;RJ}fUFhR5R%wOqKro?Ng6Mk!7X#-#DJS)8hU2-k3&sH_BcL_$ zDkqq&iFKL!Q0IbJF~~K|`}wML43Z2DI02RK-y1xKW@(6RnUw^fJ*(hwSXHfQ2@VQI zj|7rQS2S#ZCF&;_2-4r;Lz{RB@Hm~;NAwHWq|p%^s=z)?p)wW5oyvAqa7-k%lNPMh z=ll`+PncQIO>aOwoZcrB1l5D*%-|tb?52fdcLUGsrA~px>N?~X3;9CVjbL@6r~Cg_ z1YV;HNZ-MDoAVHwT!VPD8!vb9rq=~AzWM^IrGPJFn&y2;X4G4Rc*@CU!A)?koFZfk zy0Xo|D80`~-!(dbB*HK?3=z$qKwp=3u93MaQ!v>Vk$!uN6NU7oteFb$fQ2hnz-FIB zX)qEgmlsSxwLD@J=eJ-a&B<9zA3-KWxkbALe`yRuP=*XU)0L=p&er z52u~GK$_;vKWfZ;gZ-^J+fPr<24Pe=^UWO*+EXU?<3@5yfeXk}&ez;Jl~1F%tu(hz zX1l#*>a?53Q0Cp)<%)lDLIZbpJGV=D!iAG_R%0^#!RcA6luzpXult&DH{)3TpWBbPaKrRaa5heE=$451{K05=1JTTNTN~O?4IS0AOt593 zUgL@yMtEzGRhwcy!$dc6?sNHu25gT2|}~%*QD- zj7)1@zFKszm4m`*CGi)oRF-BM403 zu%!pDwmI_2(O!AEnO$JFh|Wj5HzOV}liRpa(Ttf@-xxmV1MHj_FfM8`O$c+w2_~O% z1J;GQOsz$f)Y%1Fw{@hmm?JWC6B9?QS87Km3w01AUggM`JEF{pT`^B^kwiy4?OOE7IGLNW-h;!}O^owh88d);WNthq;_Gb6%LC!{INuM9=_~V9 zqvWmB`Y7dvAZDIECOc7*lDTHQfacX~aLIGJp?OE{Msq&ZhDvu$&Wzhw=Bx5M&Hbt5 z{Rn`;h2HtK$x(xJHy%TrGU!|#;CaBUJtb>Z6?t-2W0p)Fk^9CC*sh%3C+FO$bgFs0 znC9mh0AnH7c9j~d$~>8e1@{FT9DG(KTl2!)0hd(07R(E;oIsuq^EgrIN*vC4YO7VT zVqkl#EQNWDU}yEYxOwqVO6OKSAQ1xRFxe4>Ua3=s+FL)^%7>tNIOA<`?TF$%Fj4b( z*U5Qy0tHAn`sJx@&J-x{t;JQCYpId}M@)Ui%$uT`^Cq5H6<8~C@~atdr#Kk7 zW^>P1v)v)IbDQ(cCubZr^RwZ8wzabC#B8p^m6|KF+PLa%Z!QbURe$K37YB0Oyv|k3 z%)NZTbMg#rnOq?-Ga)JmuQR>+%ngD@sEl_i5|4R#b}M(gxrs_T#yre)>-N@NtR(K% z%#z-jX0kcDxidZAIZC8sCli^e!#v4MChqo@A!0IhTDP~h0i4ft>$6pP5SaV>_OKY? zJ)zffZS+*CU?Ft3O#Tj&#I@F%3w8=j3MbZfiA?O=8G$XutM@=tuXSruJ=bcdkACc# zv}ct{+y;~O9Ye8Xo|)BJ&6KK;$Q)+lVQ7v;%^1iWK^QG@18b$EffOg2t5#W0kvS8Y zT5%?Gzi)wi1CIxp>mBl((t~VvX}iL%nky1Z0}hInmz~-2$_;3iySKa3xjBgUbcN=+ z(#f4&IA3wo%|?Nr)Q{kq6y05O!0rJ_Vw~wp&HZ;TpFnp#$;pMBt27r>DdsXK)_72x zZK2rAOw3$el1Jb)^XivrAH=0vvsPjC0b!1;cw2NfH+Pt_IpHdKfFMocSI%W#pEB18 zryVlDudFh?Gwmy1Cgy=s=XuPnsodHd9*sXY`2X2_oonzf)MD*gcLZh$?ySCEOSM6h z8A@iu+)Ao8y7nMd)+bhN&LoYyx!$ZMORR_>9nTTs`l{1wvac$u02I(qK)q@kM@;55 zX3Sh}(k6nZ+uRl+tdp4fhpH(}#SMA1 znL%y&s7YB;p?-gmXPc0nfLnwlVOm-c`16Y?8e(w@AwxW<>1!{at?-Vp zMYuzlQJYY+<`rE((N!c+ii*306 ztGP7~WVtj*l3j+wY+B1Vw&A>f!s>Yc!=qelE1Igf8xJ8-;q78xrm_*I)UYdJqpBvD zdsdbw>HpZQMw@307cgvsMas!x9;;SBjYgzwX7p9A{Tz+|ZkkqMXEgrnLy%yY{i-F! zll22>|2LDZU9k>UMP`05jR#-sa$7fDA-EOK-nb2VuntR2*yK#ywJ_4z(N7U!gJ2nehBeB1Pp1R5D&?)5Uz>T92i6@ z1IZ4Vl9MT6XxAfL51s4F+1*WJ)SKGue` zXjHa~Z1>pYSK<1Z+k?|{k%w`wXFEOHMSvl<*UMus&%2IZMK7z_d6BByG}WW>8v%i6 zJINLCl(yhOFDB%NQ75g)e^5mrC= zE1#$1(#%OyA02)&25VPQRLwkpWH0D(te?Eka|^gz`X_JWbBXAE!nXXX)_abO!{?9a zU7H`ZD0pfR(YuzRdaiQ7oTqr{KBbRxy||ixVfrsD>*oEt=YI3j8C|_w#GOkY=iIjo z$M0?$a2~HkZ(2CN?N=VrbT|@>dMRAt3Z5@>nisdi7QdZC1=PKnJO08J zpuw$oVedRXg4+Pht@k>6@~@5l{eGwDv)8~M-R(o+qr4Kvl@2|Ap z8{s0fcKc8%4Xn$*rN25;@z*Sr`-`Mr?2`$RR#Jttz=arI0(Ea64I%Oa+;9fiJ>f!$ z1Am>zzBXjxRV$@yOy2y0hmZ(x60D6>^pHk?gCOKNi-<@Fc1h;x9~i8O0OX^qUD5=G z!7a6XfM+0Bi?dhIk=~lJamrVdxswFpKno!IfkUAdfn#XX^$$2j7!MQ5oq|{-8iW=u z{23UNk1*;daIr|yP$Gzu{ZyhV2=*x^yn5;`V0s{o&nulKAJVc*1c*p%l<>yL9|7=g z0wIoKq67y-Y*zaq2gLgEY}2ZgvJo1y4rXc{wLJjbIxxK-p+D44LM>E-f#7F|8cx9N zk{QCH0Goyh5?mA-cddkW7bJ;2Yb3a4Wqq&<)SjmGrX!Qwr zNOB+{aW=R%tlUuoeh|$l>6MEF<8>9TC`ai&mI8gIlVp{~jT%;ktfz^fAsd0XLXI?t zt~#kZU?}?qK{gJKn+WSkA*w?-3XjJ3CG{~T!~zE-f%K?95BK}&zC|n%44cJNW7uVo zfllit%3})9XputPD>V`p=*UF<$q^F(y>k2j@P^~mb=Is$k3|3TsSc+149VxzwzFc# z@oYQG0zXAy+${1C9XEhWZ;3$#Nm*l9vpRMp z^I$u-c9y=Fd6S*;laH&HZcX&L!9upytqHa(c9|BtJugp5{r3xs`h36O)8aXu0Dre| zsHX*mf+wM@ze?8eh@5Bxq&rVD4McFt=+={Y!vBXSYBiS7XS@pMym0>cli6$@)yINC zd!rA25WE`@oM)VMPyxkK{HC5xuCck0nO7HDIe$<^uIoH&qQ1Y!74grrzpP%mkwIFR zS?>eMTFb?lOzme+`Qv>8Bgxw|J!=;G`Bgr_^@rG8Vg>Y9N$BZyTaL)ia4tiHfmA~w=SOTJ!I?N(v^@`_b&iq*&Wzm5O5ui#gNY8vOQ&n$>K z<3sD6cdUzjN{Hz{$tC)4A^#|>1oX=)l-r`JL;a<@F|QK9Z)Z^UQbp3^&N`qrRw_NH zR(epa@?t|zrVRs&y79R(xYqO%RZ{s#LezJMpt8VusG#J3lHfothnD}e|es~JJc zAQ2d)efWN7m#htv2H%9&Ei?%bxih2y9^V^c35fF7DQ{T(CSp3NX%8fux&CVx+quPnpa zESjs4Zp*OcLEsNn|8wu|rxgq57iQYWhx>oI*lpLe6e!ZE*Y>(mgh(BpYa?z{Xm|6_ zFA_l8+D?=wd9MiEB8<{3OKpJGhrW~NF2w*T>~1dt5^LVTX@A|u|M16gL9Xi@*J0Be z=CfNn=T{>i9cTQ>C(-LMdGSGp?{^|dt$SUKDm4GWa>9e;RD|U-Hcw~clji??;!YYd z!{xi6VP@w%5&qjJyemB9kM&mgVZ(To90N};s-l+w-$kWy!)e9MQcP}T1%X3no+xFt zq^hFVsa+&RSVXuy@}lP;M7f(p!0blklcZY|wp&2#>3fc!_IiOwDjP&CPs1K^h25m9 z9rjeUUre1eD__u?;(ZkZN3nOLi>Nci4a~5?2-i4!xq#Ny6u|% zMP3+upy>ysArbl<$k5U9jRD{{B^1@@5dJa~pi!Z}8=clCd8s0>prL>p=$=v#lw`9$ z1+E22G*E;M?T=xxQpj*ps%cO|5Zk=b&`phYMco?o_xABrfx<-8MD{SVFM(D}3YZCl zc@7EnvytCLG_|Z3<$)g;QC4_8&-IgTTBL#3O(Sd}&F}J2Vo82hc_Zt^F(X|sH!_#} zZXBX2G0?zke%;!y`q=(=Pw;we;z^5Uo^;uJrQFzO`i&!rZfy;7;qiiH<>BT| zTnBMYqBuk_4!h?S&@fr&L=4k;S!m#J` z0)!p`lY*$p3F5W6fgMJwL!UL-MW6~GXoIJB?9@&W{3VaF46#{2+YOv3gQx;v%efz> zw(li~2m|25444{D;vr~e(DlP^>SAbB9or9Z8zCT_FeN4YWEYJMGaHvdf^czB>}G`% zU^05X??zy&Ld;2&6hYv*q3!naJoBQ2=FLfC7$v5P?&tl%H^cw+r0=v7-v%X9I_H(} z@4htM;|Y1J_reSPAz`7%C0YQ;KDF{(gGQm6)yz>YrEN_P>otI2$wvTkFAVJ@hFlK5 z?mdL?fpiH5vKhh@!7!`nhP^cEL44;qSr$gIQ^1BHMEIb{OQSl^zkK>MiZlHE)(7ye zg!O`TbKIW*4fQg4TjK9dA^xsdQ?0e`9g{UyI+{+c%VYfB*&B2w^k*fP8lX#OCR>iE z_^r)?-b!Hjp==Ah64V5?3(4oPRRq)c0raF~#MO(y(W<;U45`ZW?@!7D+3jEg{(Lxk zD58GC{2G4jzz&4Gn(HJ%GRd=Hm;}>p;8Tn#1nOuA^m@p#tBMuC(Z+B_OJM=?*@b%; zCm3{JgWJ+Do=`Yf8FBNS^>vsHK_Z@Y@N*r8-mpHCF*?Vh2&}V25gldoW#wJ9CU{=e zEvx6{h_hArF^<3(3oi(4FT}~7+78b8pp+1^`KT%2z0KprWBFZ!q1MTOzULfF=)&Bb z;J&4Aj4JXfxs6SJqvwVx@&5jYi=IflE|#+s8`$ozTXxFn^`#iIKYv2jR}-6jkJ#kp zu4CR_XZ-n^%D1&c5t2WS$FS)V0a9Rf7rWqsLmVq$as3F4WC4Ra+-_hNBWO=t-zoeg zbZqc@fg3?z;)7-G1#l0Em1oe9OD>*bBGZ3uJfjO~0+)MuZ$A-c;9Re|hX)<8)Csa&dw#$O&qoIQ^%_BS%o-%N$gW#aMIRADxi* zx<+tW`N;{{3_6txl#P$li6Eh~i8vGRXlA<7h==KxZ@dZ(=?%eI zutq3i7MGt*yjLbl7YQzDc8Ce+`TL8-4&nR8`L?8EsNpH|b@R@Ah<|xT?=PREHP`ec z{N&coxh!zK`_A^uD=OQ)IQuP~CB#a!J!nhZHXbEVCKQO2T(}T_rZ|&*FYbkIFSZdz zJ<5w9g|S^6hTX#NIS#BLydX_OFbN?ZXnf-@@-+Mp>IL^v1_!!vA10)5f)w&(csaD= z3~}!xyKwRHi##Vu@Zil78`9-2I47v0x{xFne%6ChrE5d!5+~60I25x!NHGU$-fk}~ z^0^|oe9^Qd{K~;}fEOjbCyT7$=AYjSc6Y)7MiAFx(hlHNjhd4b1Ki795B}Bg2+bqA z>-C~6k8MA3;w+6F%t{d?c$ULzG)}?dEZ@Kdv6@CHD*&`l#(kOw+R~&*1<3kE>9*%tX$#vhqF=0h8o*{5C{*Q5tuH zEJQ@yyxR@4)XiKdw=>_zC)l7tYgKqznBw%YAxG;vVF(>V1l5)o&SA=+mbuEkIh zfj^&Ew})_u2WIwX7X-SGbwFT0%2kHyL>9co#4}I$U9>;~?;Y4&Arqn-jz{$D4cyK7=y>%+N*yNhLm-j!16+ zH9}HGPdm{PW$}jgFcvR#WYz{hyJ&1+HYR<5EMOww>5W#4N(o2+jY>w3L=7NuIGVti ztW_xY2{IGh!)qIUMudof(OokdhIg+XXwt@soZ{tM=?R|3{c%fKvx(@~&A`)uL3LSKCqJb| zv}H@$qV;WztoC%nWZb)P_4?f#S7cjYk~bb@cqX}TBp;1I@1df21 zaM1!`geM|`Q&>x&QX>C$emupG_wYW2S)1r-**5^0lW`3`)7*+aLV#X6G=YxzgpRer5kkdr}M?&uvP*q;5l2469$5 zY!+%Tu++t&Kp$f(!7))-Q|w$=Gz>(EgAtfVL9C_D23T{7J;^q*$?m2uN z0SLE#i`zuhtc!pz#w0i)&N$jTuc1ZgeOD?1h^gpMMoXyan% zQWY#tg|yv}mkBl%(QeVUCAx|x4UIWgurU$!!uXm%SP;|UJ~kINysWD~#Z>KLbTRrz z1BB`&4^dhzKy5*Y1`A+(ID?bwfm=5BB5ow~FDLMPt4}p!Ps_Xng~H~QKPL@+S#iF@FM@*5jV>!+WQNOS}ccE_%%|uQJ_izn;Bo; zm1V5selEBIMU70XPVY7h(wrLl9>Si3r6Rld)GK);Zlgm=QV7_#0C*z9f$aHen}7 z!oh$#ly~+z>!LleMDC&1V5qOiziy5Q4e6KQk4AJQi2ujsB9%Bud@vCH4ThZxx7&al z8j}|*9k{F3MM3Bil}D;dQu0RS+)Cty+b@0*zOAxu@ktd|MGHmFN~{zfwpKwd#1}t{ zSE;-xwJMV?VuCNJ=KSvH=n=O^H%HKgCoK+X(B>>=yOe{i^tY|I2|l-~Tyvvjew0O1 zQZ$9<4s!y)9=WG@Ez`)$-Ov}iARdr`5df9Q%AYP#$x>|ap2qZD#e!9vT4h65^g5#j zet`Yi#~}}#C9#+VKM6ivU_N&$F2>d0SH%Lr94b=zwRnuGuEoEn5v*(&b6Oj7SE~42 z6Fp0;KEgD%mwzT5#V`MYekK_{ z0n(aZvUO4IN6k4a#+Voi;mIVf${H(uiM2MuN^DK+IC|44&?0_{T8@`OG?iv?kQC6& z_;~~i$jtL>@Gk)*epRm$<>dqRzG&GvJdgfcZ~0w#yjA)f48|+wzqOQ^=PC!rRWu7L+tmu4`D?%4>gUy411URMM)}(4ofYxIRsPvxfcQW3B4|#Oc+EP|q*+gd*r`Zoo~HFcJkjD39kwzy$GLZe1AoJzecf?s&u6F zb$Jp)>;C&=BZt(zS94UZ(eF#D`XCqaiPNb;K!OG0)}-gUks{k9NL1S-3tT@2f@425 z3Y55mSQkc$v`xTvt0%}h=m;|MOTb2;>KI=od?AMPC)|%Di}tbUq*(PI3{D2-kbbU1$#0|yvAW(5W3DtcvB@%utGB1Z%pKXbw(mBz!WY?rO{xy@O7gal|N7VNd1Gq`L)z!&vEzG&Jvd^Z=f^&yrA;U zx3#z)G)x|PFemAfWpq(E-2~tmh$xXp zaR#6ND2{y3i(y2X#4!B#1E&X7By9iPwC8nQ7oMz%m#0CYNS~Y6z-c&|ACd~K4e@q* zA3gHW;na@s4DJ?CsTN)r&I-LKOkn&Hdj-6VJsYD3D}OH{=dA=$HQ+)Ezg4)%#>k!e z%)5L52>`JsIO#A_ZGgK+u!O{j!2dXh6GCv<&EOB+^$Oc|Q{M@3N`~+;b74Uk z_<$m?dzpujLj{}%T*SACdSMLscc3!BAB`J)E@oF}b3U4bPW%ZDn>ayVV_`W-2Q4nx zZaaiuIQ-VK1a>tkU>EHFzrA;Ta^uSK#EK#%wV?N_rG96#TTODhkU-)M4VzoVm&g$* zRAI9Mi4u>OV?Qn!6>#Qyvl@9G-k&aF z^$>f6*LsL(iwa^e5N6h>hfW)K7d6+Z1|Gj{PINQ-`w{2#yunTU+vh}TOTOm24XK+1}>OAfB|N}?n)#!L9;``Vtt-R0CU3Au%hjjywfYT_1YW@I`YzZO_ znTRA)h-C4UE08kha3gOB72p?f|BH#v)w>}zVXTYO)*pTzzAqsjXc-^koyVBq+$57N z37JdHrXSDMJwZ7tjngqMaT2{?>$oJW?;80qPjLiT-}Uv#kLH4(1w}U-;p`+W$sD!A z+HS>nM)2mNy9NLYiau^cP*VAbEp0l0Icqw#aOTYEBT=Y5@LjxLzf|1rKjn z4l#4Jz&`bkhbY8PshmHyWdrhFXg;0VytT9}W4K*3RQU2HE z1k&|AS6Li_Y)>-;>m{+9v#qc2%_vSJeJSAeekM8lEF!&l2hreJM65}9S1 zXd_>F!{ymh8nq7kXQBficjuAYwJxhK4$zoWq5PYL8_3&mZ0#UbpYUzIjCir$@u0iq z#~nzCz1ZGAzOq^PJbq%`kC6uQ@9^%{9FogGhkpl06_|Wb@VQKF*xV!-v7Y*_t z)aOs8V@%k+JhfJe_&0Y+8Ego)khL`O$fk1K70wjUgu)Y8`*Olyts41PclYi{cQpXM zDeaN)?n}453BOrN(nz8)`4?VD_j943gxeE36t18g;z0-n)LI-Bz_V@uIa_K*G!XEs z%IQUo(`rI3gy4T1)=dv787k10)Pg$Vk=oF^g<(@O%*U#Rc2y9|WN-Wagl{8>dzUPu zu2ikWoh&J`(~12yv^S0|&p}^4s9M(Bm2th=2Oae>6DQA0lhgKQ7s}k{lM>4Ym2a5%1utkQYU*dE|sI z{2HDu-k&Jnp3uWoF%SJ{39iLr>GcX?Ut|ZDOk3)V4|{YQMW_y5dKvbmKW7MFH_g3R zwg;ZolDWeR@DVQdD2hibwa_A|7SCwlCho$ZHA#}i-c1@5vLP9KBSK*aq522l9MZDj zZc|1!USyaGkfQ=tWgm9xGC-F7TG(#XVSKMt1DI#(E>M^o0C!4S7vI*>1x<2Fa{Ey4 z>z0y|NY|Db&a6M*lFQ02`-<$L5t6I?`$Y^A0+f)w3z$h1s}#5cip43YHlQMWM6Yp* z_)?)N6yzdf_{Lqtl*tf3E!?~!-KtclR?q+hV7mg`EMQ#&qr2f&fh|yO`5w$c<#MQx zbl&SXm0Okw@Y1ZIr^;kYW?EeXkK`zXP6xNp)AgdP+>+o(>)^FK<=L0F)^aZCM{c1n z{9Mj{tuE9|iilhMAD7d6tZntRqM(#?G2>19Z=Tno^V&X>j^nj>1Xr+h7!8^|n|ggG zxv0{lCPlL0^AaO7RXz>PM!!Kn`V$1}BkJ$oXyEn&03KH0Hc+lqRTJk?42XO#zKpl) zBtm2wV!aV(9os?3nvBIMd32xV81z`jq1VcY>Xv{A_Mx^&sirD-gjjbh6blIg0kjG- zjDqwFqhk#C5V7X81N!y*Px9aLiKc|!^Auudw7PX~L^m#qc7NpdCKL!qW<$jKjXGV# zB?l5O!Y~4+v zpU)zg>VK*!j^^Q}&S#rq0(&Yr?58tHjo7vivt&C!CV9;LeUvSIfXK@DNNZr2PH$sp ziJQ)e_jCOS!3B(jdw6;Is%JjWzH9xi@y5Po-V&vbeC~}svp<=w`97o+eqT&)pyr?x zzOY-sY%${`hh}l_LgvAc2q6Sxwh&yZmjx2#Eg6zVh&y{gaYD5E5c46( z1K5oQke+f-0%V0SrWJ`0<@EUV2o-;@dVf<-F^Och;CS3{+7Q6%URXiMOAFatD6`pNw<7itwg7o@h4XD|matZv)qI}VH7|^4u|X$Pe3UGit7GM>pLLSq4rYj4 zOS$qbuU^_lcVufY9woWRMT&6n_h=a8UK{>PnYI4#KT~et{u8?2?-|>w~z5S72mMe2uNyZY}0? zRrQZ{#3B?)UXU21hP>4@Gr#D)WINtO9>c4=#&8BDO}}m zP4?lZM9Bov64Xk-CIkvX0hxsQRwu+}pb~^Zf#i{o{K;yka|CaoR@y??ZrugSb<;tr z7R0SJ8i)@IT!dKxq1{EsAdKcE2AJ$fH)={bDwWE$6qR z5q~c(Kx=s2{9vj=w#lE)q%a!d3F)ctFLCR{w$68?P`sM+c=C#Wx4K=UmgXOrSM&w6 zH0I_ghTwhq5b}pSpK>-&GtUWM_`Wb(NArgk2L8zsT)w!rBWJ}*^0yf;`OnQwd#0Xv z=ay8fyoNWzA%Hy}X-hjAJhM>{ju>*Exra2VNs;gaB7jwM@I;533e;v>(l|y4VQvBvqFHIRC_p!KTKZ-4hN_Wq=+qNX#VP`8>Sr19rGK^s z))d!~XhcaNnS=}iiI|iS-2E!S3H(S{ky2%VO9WCauiJ)%PD+(e#;Mxbu8Gd*S|%b+ zs?)breTlJ@Djw@dL5Y%;6zvi|wb6EVQ4FgN`?|>l#z`~UT%@dt35)zVvl5z;ykdE+ z`9xSU+w6cDc4cQoj^^QXYzv&NFUY$6XG^LDSI=j8I-5O`nb!Q)<0p?l`3d~j&&|rv zr2v^oMOF_UrTRRlK9`dR7qhyp&1d(2cy3l$%J$>~EF6C|&&?1r|EuS8;LN(uq)MVJ zqY6n?zogOdE6^n|wQ_G4tB*IRZH)=zcooXM*xPX!4_NR(Z$j7?0e8{Ut zpqvdr`c^JTPRE8MH>KgE55&KcEg~3TPRChM@?FpE;XASjq(W$lfQG6S^~1Vqv0pd5 zs`r{X^p%MHg#-qY4;Qq17RqV{ZAqklgVrSBx^M(c8eA=|BzLif4h)h1OIAx)vqJu6 zft1zOjb5)CkH^-n?l7RA$~Eg=4}fH!cSm9GIDRC3-a3>1ei5qfuw(54u2_x!{Egtq z9R}96ZGC`%5!ctBN!jR@tHAFUPKpQJ6svz4t`+pmnb2kW(!;Ny3lILFu2K1(>f5MYWFS_$KR55AA6 zSI`-$vJJ#&Qe=M98O|^?gg{VdnCjs~I4czPkxCFK8Kmkb=LNFITNjj9KQQj4EKQ~f zh}1jbkQ@PS-=hR@do)7MfCigB){7DcinMxi!tfTLWk5bBSngr>8sR#q6K?@P16M?( ze!Zy@t78y5p*!q-YTc&%gFX`FT}!Xu2pM7F7hv#cf&2olWq8!O$QcLYgTwB(0*Wpg z4@$}hvNRqRoqDlc6Uiyr`v5b+aIPRr-Yq2E!~H|%K7{Lp@H-G52k^fP-9tbGU=mnC z%ofR9;ovD(#ijfVB99;K8vQ?N_5<>YpoLKRDzUzBT}aY>j#KUsA|>DUWP~k(b0?x} z;P}Ax61Pv^%Z*3lQ3|+kW>+FEXk~|pz{GmevM`=JgX7l@iTTe^(w{vO`Vo-Y^Cp4(&wn=oe$vmh^O8 zJ&)zxJmKlO@{aUVw%8Z8j?TV#E@pdJtha=U&wwRO3oBo?jIU=Y>0rhkV@W5~q}^2= zUTe5wyhh^FWax+5`48JgUaGun$qge-YEmS7y`!6hw`vvcFwF|U%e@w$kf8yrR=j$} z2RKIPAQMOg1be`KHSo#-L<#ivPRsEf&+$FKR`r_jizx?w(zN)t`u1s_+M>X{&4E9D zI|F~rRn+JCY2jUC97C23CSASIsz&>INU}O|217&wb{a%rUrL%J1`^^N$+i%-M#v@Z zi*(9j!*mGrKfeWW10gy|wXjkNBOqf(fWoc>ZrRfe#}4^A zRiFgQg8m%X<@Xi0@~VG=UZ8jH*?B}$fyNU5c-#MrNq49<=~B(Few?cE?w5T6xWkklWK|6Z2%C}D4(kq%Tpti&bqDFaLSXxPEhL&kfWUJ9v81qM2-2$gW?H;c zd^tn9Thga!&BNwJeI~b&v%_)PU4)S2*jYUh>m-p`mN3F=XaWy3aJG}*#J5yIt_bz> zec)p5$45n_%_)*5XS4*m+xPdNZ3ET{sR;!D+eiSxsNwu&ekl|(*AUu7TAyIz%h(%g z18S}VQbVSqbsz*O-H>(I9g%LyOt>yXjG#Cr5emA~BY=h?dWeFFlFr!U_}p5jh+NHhN4Rli>@KIm;0Cz}}06Wm*H zdqJSvLp)wjy6ivwq`ManZs7uhh`EP&aBtsx=)>)2qQ&li@bqmUZ^=|M7t+m;i=Z5a zNIm`V>+)Wv*NZdANmu-EZ#W4v^q1z*-*kJUY=tZ73bU4G2lusylRjA)uEA>vCr+l@ zFBWO#LFgVl>E5Iu!|szOA+56hV|dja`<+aypDohr?R!tU8dT{aoJstHd$1csu*+nc zyZQ9ZA-HicqqW~YeQU{0`3|`w)2PEB3^K#qefowyJcI{fa2tph5w7K97!L3CDSjf; z^!*hzy}Nfe)AGHiZ&|*e$axOv>ui0>G<)|Mo89Tc(oNGN|Rk?s0(t} z4orU!gLncPA4O~=oNJyo3o(IGC8YTON%txgArJd;e@|#=gf=BJ&@UHR)7edjh(r#y z$1(D4fuD~vjo(_N@f!qKivzaGq zEVRR^)-bfYFd|O9Sm(YeuRX!LCGJ1$_M=$I1as+cKPCOmr=-9Bl=Kg#>1&HT8MJv~ z1I@WN7p;q9Ij4Gkk?Ihv9^P(EkGrvOWvB5hwX2n9sokh8S(`8?A3n&L_d;tfYv)b; zDXQnq{3)vEP5n2EY?_4Kcql(|*ycmkNN4oW74MIS@Y89j$MO4lg&Mpwx3tPP{M^z8 z2PRKO|n3<$H}x_StoO{#K_?fyR|(aPgY!pAB9_+mNyv}NHtD1zbH1RKf?RZoN^}D?2Mzk`?qEwM z&Eo|N++zYH1u+Jb9;a>5UxWw-t^*<$+(6-nc>rJCZeMr__s3!?Vk^Yb^SZ!p0XGaR zEnFpBOAHW=XrR=KQ4DBQ?q537!Y>%d8}7Q7$ln&5rTZWz5kAAiM`0kxq*hWJ9R$)C zaLB}p)2xNdYKqgajk{2I_25+uoG`Z!P9F~^KCLrIG4Vb*93NwbYH#JlXpg{zW4Kw< zY~VNwFjuU64}K>!D6uZ6gtyWNiwlj4bwTC|ypTYv@H}Z;v>O+I*VY?dkUa#ka5Hgx z0Aa({OE5RID4cSM`QT|1j{IR4Ruo!d0o+1(Ex_ETU4v&VxQ|N6c~@sc6k0gRLSix1 z+6pgecm^YVcQlL-tv~mmtNC;5A|xCB}Is{I&BA?9!nNE!VKrJ=`ye zd4wZ-^k^R*$pF#Q`|skBh7W&w=f(1*_gtRM;E>_y$`u^J^hj@7S20bvX=9sih}@Re zMdEc#>ZpIo+Q%tn4H5kz7z=U-oUAsj&wF8a)a!~$*Wv^9m+_jxVvhzmi&4Kv2QXL! z5Pu<_l?iRcAvwv5r%xS9Acrm=^k8Vod&G1xh{aiDfeUp)&jOA{oNJ=G54M$&6&`ID z`Fg?kUMvhnE$|tf{74(3{JF$Sg(gNXB%%GM^?*f_j(GjH!rawampUjAh=BQcIEN!d zB_K=zwZy@%o?9%jwtVW-0rjy-I5hVsz#zu1V-7B38NfAX5WAR`b0P_VI;lWdZ|nS7Bc zvB0WV!bTfT4~<&0-K;drP4Ydfm0MoLZP(pqg7^GGRYO7xUF|BM1zT{JD%*I6-cGjA ztH(ooyQjVQB$|;fAdciZ?;3T8OSwb_v~wjYG4o*NlnehiuKx?8i0;Q-GV z+fFwm7?hT=Z0w9;8LlePo6;0?)GIb)BDt0c5%V3F|3s|ibh)`BGM+!7O7Sx{Bm@{c zm&9yKu8=0gZG@Z1j0GjYT9D8WFb^=5jQvm7x3A+Rz{Qe}jpBPA7fSFhqfnlSOduzk znjTytrKF(u@tt(_k$s(Yz}ge?`z8S!g}DnhJ}((7K1#_#qhbTTDNZr+e826sL%^T5 zoX~f}mQ${^TZqwe>UiJ-->uXdNW|wMUwI{RT(9X>%9NrL-POwX1!}Dsu#B5iCO4C7}vsS~a`XREN z$^X`ZiLhA6(up3mUqf)v(mA|p;YBfqUu_e)vfEJ@MIize!m#bME0JGyYEBDsr0e=& zD{R)wf$O`Na=8`Nf$-`?ZUsO$fFpDrKI;0O>%Q4G^-74!mZ&0g&0UUv(>Nxls$f@CUz$ z|EK5eU`%pO8VBMG58nU!xg9<)@H2Vw7W5iu2@LI?+4wNE&)ktgYmy|?J4u7YfaPLT zt2jtkT*rN^+z4w9poyb;vr(_MDtN}5Kqq#>dff-gE&g=s)n?cXz0h?VKH`Gi8XFq8 zht;=F)B96y{yET83*cg8Hrj_ic;e+MK1Ny4w~x2`$D|#CjzcJJMxz+_?lD8Uo%!}Q zDFo;)Pbvz^NQq1b%3vXM%Sc|(+Ygcc98qHWB2QOtN@pPS22jt6>kU`a14K-1(u)LU(kB3rCkoC*ew! zkWi3WQb(>ju>uT@G(A#Zt<)DZ8d;xouh70=&{p4tK2WbF>kfXoE!PwA@FGH<{-s<~ zN|(B6-Nkk&u7jGR)hL74T|`hIM6rS-QhvQ!L85h>(e-LoUw-&e%-quK&uH>ppSf6n zGX0W4T6$LEW%BILa?VZYbYv%-e=o$EEg3$xa{kJ@`5=63)&1z_Yq2l<6wbc&EY?m! z#V!8LGfF3`dalK~=LlBt|A*rcJf79idE86JMXh=tGvQo3x@VH8ULL`KsWrH0lH#IX z(ObuTFqv7Z$u{nYW`qo1FZyM_QLDD`W@t4X7dcj)TDe&+2aUGZtkj$UIh&ewg#LJy zpdBDFbj1tWz*uRw{J?EMpii0=-&Wf;%}C2nzov{2S4GCh-^IiI5Eg?w@dUmCaeY*OWj`Rj9g+wFXiA+hiR_VLErl2( z43g>{efHaJNI1P7*g|@vU>3Tolx#f+qy-953sEe=>?deUIB=h zh#0s>kQ$F5-4>`xB9vA)0uO_~16CLN4l^~|@$dCRi=u7{!jeE6EZrA;GDpJJidt}fEd$&45?zT z=n!B_{bqqK{jd|#tOCf%Nc6>vmSHkABG~XmPSi~+B=9I>vxrUPRIyib1Ytp~CJa?_ zHF4|`I}o}Q#!T}diMTI$y5J7?MJ8FfBQ)N~eFV3L0NF~2^J$WzV=OhsE;R}w3oG)t z^~qitL*9lNlv2=!u#b*Zy4Zv>?Oj>{=1-Q2&k@tAr`D<=PO;r|>VSX>8&S0ejNiz2 zf@;{Vm2re6xlY)BN+Lp06S8%F{G~A``CS7o=sPV_YC-xxS@Ok6lUmWCoFmwsj%vmW z?73g7fBqcsQ=ahq1%%%f@~nQ27W=}&&guo<|L%EN@08F>>pVl={a4T3aCvK8YDUQoc4C*9wd=jmaxw|XaW#cbpSd!#Q>?xk|ObKx}4h8@+MQy%^=1^{MjI1 zP)Z(t)II28$0Q;ogwWD1oD>1m8a@;%d-y*=Za|EcOa{i))#p!`7-9zW`%G-z6`8{% z(V72iE|Cy25TUurIyet?(E+klicPT28izfNW2nX(T&u%g(l5J2? zxzngTsIoKmt07S%hD0$er0T(sv)dadoo#CWRp3mDw5UR83PR!WM^k}+RYBxUO}8Rr z{gBcWR*Lbl@&v`*0)Aas7;;o&Us3XVDhQpQ7z-^XTpiKwtQCa_BZOIaVd1t4(qZ8O zMde=5NLa65lf8Q3=6DIlT|Dt=c0p+QW{54f%&l0y58jU@qidk`A@5h-BeZq~q6TkG5>}(> z%wn#$v2j;6B(~8hHj!ke41~Z|xfVH2)vs6J%jq^@8L#?5rBTOu?zEAE6Destw_b%i zLaW_G%9%zJ*2}QgOxhLSR@^wPnU-_5NUsLXSp%B0a*J@Jr?a9KB#nbSI%TJpB=^1> zc0)d0|K>UrA-m%cLJlD41K9Vr_JKj&9g&^!%4PwW1aPVETi3ha9$1$j*#SOnIKL;# zIS>gz@z0>-8$$JQIR*s2y)XaTB7rLEf(B6p=t*>KUG5IMfyf5G51B<^Z-e4bp>RT8 z*h!3XfW89@y}HOEV9LtMU{aDt@K~gIPSqz9 z9yn3PYmh%VESXRO(XY_$0Lf9(z53U}qgzE2u!}P!7g?J$K*E(95{U>W(5gK~eF|VM zEXejR4&3e#qS{^e7%DI7?FKBv;qX#o2=%3kMz??aUgGCXkvTA!LQEnN5_@vckB@rf z!Y_rnp8EuT_~;H}<3JA*@Sq?Qp$Q{QA}r#s1GFS(B~kgQNz#OM{fP`0L6`@26z^k* zcN7XFWy`$w$8kZV50a`fN-9LM8I*BQR~3O8KmZPw%aK4BGZ;n6;I>72Jvo!YDDF*! z>K2+eSieP}36#T!G&1~z@BwRU6#m7QSTs_bk$xAR<-$K+ntKP`Py`4;;6>P$kZvaf ztOoW~h@aS)F=8ha!aas~NMa&MzEG>_{&jx^VAn$oRog8048CiF_0m4nu5%Y=ac1MO%i51bn%z7=>hKQvQo)?vJgm9okUYLvIb;Hni_xkwQ`z4OVRHOR!Ab&+Z_t zz8Hk=h5kzQA?AjkMj?I-SY<2%@)E8j&kHz90MHF+b0Td7F!!k;;?p=H#W}``=bKdg zd=6X?Pd#FwF35)--{=IOBSEr;x&;BOi!yW2BSCs{<7vRlLPlWGQ>9o_KMB}Obc_*5 zMx(~@cbD#-9H1ntsez3q1B%#7>90i<>|IfY5pnDnt;rWLo^0_@i2_Z0(Ad$`;rf&qV&vRXbaI2&UUor%E#3t+Du-c|#}pm^WIg zLODHDNRpZ;4qR}RxKMj85DF<~iX4!a0A9h#hhNHgMTALNqLVEDrOM!x{D zM_UwIhqz9>q|}ilnx*!+Djq=bGL$Taw)B>41tD^aWVJz6!uj9xvjxKTV5$;iPJJgu5i%-|>IN zb~C^Y6v=gKZU7h9vg^PFuvV?OwGawLoH}m3R;^dsRWB-+y#|sTwA;9o1{JRYcaWg2 zx}L3pcwe50m~zW*Q-alc$dx|!jv?h@MIdq`%Bf;kD5F9Uuuu61>SPt3`h)=8fZvJg z@B`Ao5F#ekq)ZIZeYRBD+FbnKrdN~5c2OyYe!zx;J3@THC@WadO4akjMhj^n+*-2* z-}V-K=c|$Dwdysu>4tE#$C8KjTB}m^J-}2q>LEOmtJnYssU$d7?nIaV#r8a*V*SUz zdv2bNl-)|cck&&z{`2Q=z`T~vWVw1}?Ct}7k9SCDlwQlpe5mQpY^0019yCg_A^C*i z`6{>Y)CP^H3@ZT8(xXP$s?|NjTttyybIQ1F`cbn{MZhpZEF$DJh8sK{Z8&v7+r-Zh zH^1V>4UN(dph#-}!Bd+5Y$gngxglx=uJS#o-LeKSTL6npT~r{u!(|0d+A_}`WP0+w zp{q)O3~Y46l`bwUe_ea_me`3!NO_yqjvCJ%X@S&utr|jgyr5jE1!Ziw=R4JQrB!xZ zzfx;AyjB9s&B{v|x4biqA0OL$w|L{FaJgsjD3?8}__k7pU7bL3I;^M3v%Rj>T2g#l z?Qmv@Z!7IYKTV5$Ij6{Gi(2#Kr41`jma2|%nnv_Cl z4-V$t0qhav>|NkjzRb~rT2S#zqeQk_=(~2|!pd22DIpp3M^k!P z9py1@tBzCR!Vh!GfYlO&34F${@<{l%8w716EKH>+81@=$5&Y+(rO0K6W27$yxQ~ZKWN%+3kfpNeJGDnV;<)xFvDr zkFtdi0ICCMJ#L#H*5ML%dpr!Kxy}va%#nc`a0ORxT)O>cR8vDZ9YNv*utwLEKQa9w z7I00OxqF$7vu?pCZ@wFHH=0@Qq))zH%$8R^A{~ww$K&F-Q4Ixk#z^L z(>@IU2aMTtTfM39mVb5YC39t)HZix2uw zvcs}2d+`W1ehdaNK>bj7vG8Qor%*YNx9_y82N)(w3^ST(pLkfE9Ue_;@Yi!TI0WlFRj zb%DAHp9mBSrM4g-Ns$SXh%12dhAN1T*84nGpN)^Yb6}NHeh#u)CKYJ`WQ!u0Q0 zr)6c0$H2sH!t)0n2f~i3%EDl(_1pJEyTYERWoqd<0y&Tj?9i^k*Qg6Ga*FSw?L(s4 zE=782y&J(E6v*TctE99H?*Mak0ufuU7oykfeN5nrYAI<)!r9T{lSjl}q41mEShufz zNkM_sr3f%1w+Ng;ppj#u#l>F2)Zc{*PUHfmRzNK4?t~z&@Q0=IH$OLGX)a28HMT^# zymX%kQGF9n+CI53p(}dggdDsH*x^1n37wKVhTbVG01euM*8zbxOIx$tmJtAX!C1nN z|Fr z)oa5@61nYGGXln)zM(Qq)oa2IPFu<6t_;(oUu?r~U0T4!@66v^MIr|pMfMHyCSU?- zA{PWV@s2?18!nM~mqp3#d;DXH96otpjw7vEPYogq9Vh`3WlMk>rNnb`0$+}SL(EMp z3`3e7H(*~ycmu$FndFyxNv237RwnuWG4UsJh|z(4y^Hsjrncu$--jp6&0g$|r#q3D zp61k&BMPrsKvMC5ew5QicE4ntr`aCUpm%zNxVcMnnp32>s*-0S*N{-5GaAQU>g)m= zCsFD|0~^VKlWd6|aGF14EUDSKIib7_lN7+y9EEq`w}_L0CzIDPQya7XY0f$+!d<+5 zxxJswCQBP4He}{;a~{d_A#qF1(mRktxR(n#y->M+F=aM6Z}5WNT)LTLyFeB984hP7 z??K#wwb|s;yay3fkK9BrkT*>{CEDzlx7p@U^0trO>;5?N%;z=rC8EM2y>oe!mlQT4 za`fSm_xOE<*Kd%TSKi~tH1-#Gt3A@azLo4`dV?i^kYE6@Pnp@I);3*C&knOlYGn)( zeF`yQY7+z@KXzQ6I;%x_E|28%wBE7Y#d8dDtfWV@PxjQebMpN~65rn3G zO|6GM^zXt87NA)VffB8;SLAyvuZ8y!bad#nt;xZ%1+gBqiP5wlF)PDQR6oQ4}Ur#La>6W->QcI zlWaIZ-1e*0Y9&f~5Z~6;4XwaG=$^Jc{+lapt4VS9(Mh-PM zcOfS*X}`BWIWC!t#`Nm5^#!hhlz0XA7MR2+U}A`St+=$~SN)1n85JN*NbEztSp0v6 z!A*vQ2%JU{C_pbK5i~ zGYR>*2aS>nvypE4Y3mwPPP#Lo`XHN(s!W%A=)4jK^8)lY+3sz%X0Knz`?(hnC{9ED zWR=@tvsw?mr~=$9Fk0CI;w~_1qM!}VYt=Q=vx5D{dB&;hY9)A+a*c0HWbYj#`uQsK zqD;;Y)F<=W*7ulfttGK0O!ivYGnwNcbUMJNI@MmJ75p!ja~E9~@8vlX{SGpd@m^aQ ztMh}n;OEIMMRO3~=XqeSS4#R{p2ICpoSDt7ogrWSx6ktw`0#%wN28a8Q#>;wnj}*q zzp@fzB9ob=Ty0}x9lrJ4`fA&zRhx2GI)8GYx*E+#*APtVUxT%5(@Iz3!K%++_)3|eG^MpAjWvi|-C`U=*hVM> z80J4=fFetk>_~*lQ8c46Oi=-$2nxF;pnqT>!v7{CncEF`e-pyo1{F*(X!N|WlZ?o` z6c5kK#x9b_)es@#Bw%gH=rweV!Jy9h@G&CxxWXmsS+x{T$X5An-0hziy#t{j-OfeW z9=uDkjV>7~B`MjwwhChIde+u&dnIzfR=cwpqws{g} zqyR!A@m1k>0%!A&q{|mshv(U42zM4Lxcxp1JnGvO3w8*kfuvt$fccil7%2>toQUq} zJ1D}lD5PLi-4XwyIs}-G9LfVQ)omhHSt>V`o1EC8ghY+4`=mRd8e3S~1t%@I8G-*I z`Wp)^zRFREAAOCrN};~0(GwODT7EYu`W<9?>jHw4(Am>}%hthYI$Z{MScL2od&*~E zD-qxE9Km>%dg!cjtr`UY=Wu-ohATj-BdbQM+KyVtg`O z)IgbBWgp3dw9q$J-9I;>mGeRY))pSQ&{Cy{_>5W-NpqF^Jrx@u4%qyF#HE!7^afke zkt$X8fVD4m#)my#$Y&DR&k@Qu?+#jgY2$7F3!mJDqB08;y0@qi3N5Y`+g{@Gpa`<1 z)Tnm-<3>Kb42Paxc)SJqgIuF(KLKdfTPu$b;IJ_~y!Q zMg982Jy31}q+4JylD`YQ%-{v&4*6YsjwlqhRrY~$A3A~OmLnt;YBZxp1Ad9^Dw1Ti z-B#jD|E{W`d{&YsHk4Zket{8RcBN=ls!-}r7uh!;3Mc*^%Jyqe{K=#Ts3C4c`L`Gp zcOeRElee<^P7_>rd7U?u0okCrM;PvI54uENjSXe1G{}C7l)9+_=k@j=3=h)HC@&t- z4DAC?ML8De-|d}yySMe#OG!vcsdSy^%F1G!6z^@{<}ziPr80=t2&3SF)Z)nk`}XcV zB+OwCr1TCkLB6G!+P)Kmmr~rb@e|dLjJY(rR&Fz5xQZ(@4_xm?5jKYzQdzkT(p0g` zCTlVg5Y+aO!ANt7vZxzPNH+Q%+#?c3$lGAk@gcQh%+1g;Ct<32gQfjfE1@jaVj#5j zTGb3^q$o8%^I98YTsb-9G%h$U)$*@qwhRYA zx)B;1p59b*9FkX44X1a+B>i&lT8eJ=f(a_z!_~^po|7OXQ;MRT+cm9}qDyVT9p>z0 zzi5nK13pL*rxt1k@jc>cMO{pmHHVrRE3<3!yU^_{G$0yzkXq){;i8`N9lQ~Eaw(=( zrJ^@3R!&94PO4aaT!RlQKgFqyG>L9A7Lgiw>Uma#Vkkx~=F}D%G}*TF>)l(6HwR`s zB@?hf@m=U~jjkM@nuhvCTse3*6d&HjgG9`ucrTdm&v<8J- zm5VjI0t-HD_%0HeD$04+p!M1)9xt&fPvK=@Y*dN%ZHA%YrpX`6cEOvyq#wr{X@wf^ zBHBE&@v5*3$e*~A47EwbwKp~vhRB&iNL^~lk(>VHevBMC2+hQM8~*Q?@7w%+%LhcP z?fUlQfNvzodl?*CpLKh^O#tGi>Tzo`K9MM@?+-(u6N=~o(pck?A+(X!^lF{`m)jPF zB~a!m_ORE1Av5a=Fuy^Uvg&xpA}V0uB6@~YrQe(v8b^3lz>{HT81D~V1Uf;rE)e$a zL1cj&w@A)J!@7lNnQ&NysE^t^aqsvr9uAx9Nvs^2mU&NuLd+>hB|xv(X5qyG?LT5!VDCr~=xTBUV5GrHr}+R1?mbLL z&l6@6#K#~)MZ{1;r%0kg~P`#qDqnO)GloI@JJzX6eQvv(y{@DRON9H(-7-N zTSjp&dKU7DQ05Gp1yO7rj(b~V<=GO&qvAM9Ko$x6m*R8W39x$587^B0)5)wjm=rr7 zOo&Cnz|+s2p1jzK^b%+k$5$2ms3+VC8h~7Ke5A_q-AWy~?;_;LYq<@#4B#EF8EPr( zV^u?EHP~jL;YXo;73&LZ?0^NrjgOg2(^Pk`LwvGm0?Ed^um_1eWV(ePa0`+^^7*#! zPjpsQ+`hJ>X>x}`H00*Z4e2x&*@mS5J(K0moLs&W{Y);&E=8c~#mSxbE`dLDKe@vZ z6vn6#vpRjMNwNjT{Qwb_$+&a7lqBiZ{8?U?iY&dLKc7Qqj!o)##47_NNsAO4Zf+`k`6t+t2UeMebO4 zy9XU4$gsYOhw+oncoaXfE+5L@Y~<%uza{?UizVz(GjX1}bye}Jr>?kA9ud|08;H6F zo;W#SYc;73mQF!796owvJO>6#skT}qnBn4ZH~{>DbXwO);c&eo^hk1ZO3RZ#Qh>;( z>OY+2h&2MYQ3Bj39+Gq@ZiB)l<&f?!ce>uzg^_iYqCbVdl)U8Nrm>agQti2t65YX~g(JdCz>4Q^#rs$p_Oei=~!6jD(73HIG-0 zkHzT-pYn)$q1N!PmvpvW7ysq?uY8>mK32%@$pg92x0e;wY}sX3430EF(3jwyN3h;y zr(KDn2+=Bd@r7>9Z@EF_H(D-WuWPOwl#%tK-K;k%?Pj}%5UQ$=6wB2rK#9Ft=r`Dw zG@WZxj%JPuPZE5cKIV#a{<;LS-h@!zj(|oJhLH#8Z5pLtb!twl-11yRDYe389k_SC z3zY71E2{gIx`TKd52s$e0^@z;G8*|piFukKC7XSI=_!4C(IQKG)OW#eOCa znD=vdh&L1+P%I&v9FogrekGHZ8`;?S!?Ec)d!p6Waw8PkgX1BICf3Dklp)TktQFJy zb>W>(_#RqVE6#@WPII?B6-vo&h;PkpYlH+0YD3q9_Z%i`=tKVfa zXa3d@*p#7ag!E4S0qHQIUQ`a@GW`s>K*-3$qY%heBAHMDVw%wdL0F{*Zk6roCjO~O ztREzR6a$0O6sds#IAsYHE(AniLKr$@)Txk`6!kN+Lyt&uM(94|zi*7NgCs>jFNK_m zd|e(ALm*+Zdy?|Wn`BYd)8VB?J5@Xvk+kiU7xv9dQ;3G(ry(@&F9_^V4>=aWX@>X zIdH~9$?jRoRR}{XeZA(0lBZ)_LQHwV*73hwfjqHVKFkx#zsZQ@EA5dV%>_UCu$e8G z&kM;sQG#A@6q<~Wp8x&%+{hUcuH3*GGVZdD=&5)0YOfv{w{%|eXOeQyP5K&EnqFjQ zkyhqa{YK+16qQ-1_kQDDY6S4WEf_uk16^)vSZ+m=LqJVysgaxd$I`vjx(D1)2oRSM z%Q%SuHn=s2;oltFL3m};`l@??*eL7zUWW?HylUB!0m@yf%;82iEmEhz|Mzz zIVW@5xGNwLMz-Q+Ko2U zdbn`6OO_ZSrKdvf<|~DZSWW8q_Kh1itR40%xhMS*(7$v;rBtjbERSnKsR;*+!j1l; zF5>4%VLGykvX$L&U|UYPT(upFp4>z0?5hBwjAb<`5l;{_IJ6XmIg4Vi7=GGTSfxO^ zW;3WYT0zZiM-4Y{e7{}yaZQJGtvR-+cHs?K-+)cuVBBD)}KWvCQAY#_xVG!&tm|m zcKtiu{y}2s{bV*t&LlF^O*d%Y6&Vt^>&-dsO3Iw(e>SHQq406zoM%$*F1V5leq=O& zf}Bo%JVhg#*%gqv+|YX_Q5p}_EV}9U$LwOgktqT?jNY@K7!4AajdI5J(;TXt(QzgL zIsXK;&fIUnk4`hbxk4bxY2MrhK|owJ^=y1>j5epC4@?3H_smP2=|vXijM!WgxUA6$ zdeTF|WI2Q4d<&w;z8}gI9Xu-Yc}K{zJLmxQbw)A36T{$cs2S6ouyDvp;9JcTKo#0I z9w!j1?;7hx;6dE4$+T3Gvr;CH38E9{zektlM5D4{o-JIO)0ue`Xu_NhGqZxdjc4_~ zF<(SXjK=yjG;4i{S0dLk*MdrNhW9;1ZLUdjsN$st1DYZ-=W^XR)(k>(3*}R65SZ+P z$IB=+A3o+$gT$PiURHy~eD1^o80F?D=@b+%^wci1v==VnRdAw*%q$V{yVvO&Jz;)h zI$bQ_36tIy#rM1;@88-@m*&a!{P6K7S6z#n)6`%}`GEi@o2*VsHTz+NH!&1}9mJ{B z;lzP_vW+(1X+DTY3eg`o9@vzMVXeygx@<@*uglYY@+$tLC7#2@{cNU}lYW_T7rt#W z)-&|NlUve@=gkRjG!a}WaJ5cez-aW002JcZ`7=vyQYG8+mC-Crg-G6uZTFBlwbDS^ z)Miv~1U28SHtIpG3HO~wBdRr=a-|u0?Xd2^na4-=-nxTa$YHZm@mj5@GG#1WS1&aE zzv0PzNcfMq*;UHc%^k{E0(WceHTph8{f-;fMs8KH`M8q`KNoRj)`ITucSzGu_h*oRXdb{3o z0tbI4KHkia8E0k61t6xxo5ytTOAS6RB((PivkUUST29r*ZHj$Z8K>vyn@`906eqEb;Yb*{`~lO45z^ zw%)#I&9%MYk09fe$*-h_C`0(2S$jx7)aw=KXX{2FTw=erfeWMao)kx2hz$0(?m_Hz z6NlwZ#Ka@Hmwhvwgu~=#HM2L;jb~qMF-Q*-fq?Qg(R~Un(9EgE}V*i zHp2`euXHB0S*w2unn`@Pf(I5O0^4Os#NIGPQstI0`%U zVZ|XYWr6;v;~fe7Q36F;NR~Ak7b%k(990S~;!4LfHtBgXgxU?UoP;9TMFy-#Ap#sD zN<265$H;pj-9W@iLs{HPyP-cp^wM#O%n#^-?GN~M2vY@u0EO#NfQtPXz9|u9twJOF z)X5l2H0of$$TmpMMUWXqq+?+;p;*EZWzX$gk9X|?DOyr~H?ZN1UxaUyV3;=QMp+Iet4h{6;A0Z!>nj(7{`=)NP_faOU;y8 zGia`d-b800l5jCo?c9N$kDoE=8#6^h+V~_yPUdN0qI6)HMD^hkvzAQHMP*oB?k|}* zew>;(Q|a|u(pw?#1X$HsoFhM;j&jNO+6%Xq|7KZPY5I+{GJedH%l{$CcikA!~#v$eP!yoKulH_o4$ z?#xEInCoq9?8t`jkULeVILpN*#940^e+Kc1$s;5b{=(nNXVmu?lGr= zb}E|%3;%8RfLMKOeLjIXy%WM`rbB6=>Ap}&C=NzM(wPLuxDq^?BFJWtP6*Uo|2;$q zpicHI1ly_X&@!PkEMfBRt&XH1wc-_^T}%z?G9dgg(5(X=sO@(UK?%yt;1r=fI_S9p zw6n=Yg~+FdIya}a8vccxWxPD>ZTUcwp7cjYgtcP36IOik2LF8at*2x%sjBf#az_!l zSNZPp{{sIbo!1(veS64HgqTaAttE7Am?yUwY#c7$Ltq=KWYsE}wQv~MsjZRiR${Io z7!uy}(WGbf;&`CaMUP~=5rAz%O37>41(9SK7Xy8R0CfEbzVy9bd<4W8yYPF7j`x*# z_|E^Cbu}g+bU97ozwZvcE?o1G0$6#$XX-$?>roxlRo`@NIaJ&$0v9*1M`1x{*OmjN zpeo@iA22w-%rJ~B&c&TjxXJF-|#6RT9f zbqRiD0xU&bO*DzVnb<0!wOl>D5_H+awJt0~;QcN|2S6K-`xl(e$WxsR4&s_PJxS#m zk0GjWxciKiLz?oOlUtK)25!A{6T^M0hYU}ybuk#a(fE=z1{Mr(E`dYTM`vX6rz@D) zQrQIco(7N?PdYuvK;;+TkGcol(ibo<;6n0Hodlmg+kl(Uy!Z=i574j zQ5RPAh*)(b4s(GJ)2M{CpwVhn13G=nl`v{GYhI9q+kT{KNMumi7eAR2^Hu)FX>6~; zwXUcADkPR*9tFI#5H*}c9Y|o;T*`Fn*SrQXyU;z%HYlMG%?2rnF%Mo|*i?BY1VUnm znq`2+Ng|BpoijslSLVCt4#d*i`7}mj#z@sj>@UJ2Zb)8URYUARfqbckCr&7G{Yh2*)IC`wQPekqAlD)+OFTK!3t7udW~x2yGX_8 zS6W`95qb@Tj90t{vb=cJx`%Y2u}MGR7dv5V7#^J*kCZz0!yff9|$hl}00I)DWZ|wc2jIU8{s;x88t*3Z*9X!?xed z->(yYj?v;uOiX6OO_^>aC9UeRYV6TYjM#O)C_`?zyx+6W6kOyz#~Gq1{- zjWlJ#3|~(*uerS30^7E#FaY}SXmT21&}df5Ri_2W2H$aA7~ASmrHw}b+5;phjoP8p zu2HUoFeQy2HC>HXJOOfeUJ&5?}o*A)wjYx+h*Y37kJwY;TKencKhFbG6aQkSLR; z>|3F$-RX@>LW<@#41-t~?HImch|dNg7=TANi|B4R+}C$9XPojV563REB6cyN>8{%!4)gXKdab?a@FBzsS`6$KPD?5L3gv!$~ zE^&^(VC%S~*>jD2m?y9!lze?X@}oK9lb`P;L44LX?s-D|$zJ{Upp3=XD7OT>_RB@c zDFFnPTD=uE{CX4SjItjDZs1p=78Gr8+O4&ssENdk%@&Ls5zHIq77*`32sM!GSxP@C zSYUnkgVkG8W-!DFKQq7lZ_gxUyZZgTx)WYJS=l>6>RmG9y0Bzq{~8(JoCq)YGhH0s zRKu0GOWtBMeMVdv*f*8?%95K@TzzBX4|8cw$oYC-HwklZ0YWTQ&H1@YbFwgOEv6eWBC?(7Pqp>+(r1a0zzU`mz@GU^d20zqJ3 zB77(qc!C1#d&tfVFfI?dDbn{Nb`Fe?HX7ETi1P2^ivVw6-@5rm9Qelq9x7}?0~0yG z?*-^#@&swbdaS26{R}Slh2N*MV?E~KF)h|dLdEC8l3^a}S+NX05v#4_Q9MHwTQbb! z4>AE>MBx0N*yth8yGjux+`pg_wl z3fZW0fX23MeGUXicEUcd;x_na=ui)+IHhV;3-We`QvLir&Jv{l{t4+*5#pJ`Y?m#T z(p#d4H@C^9UpRENTW}oOSBZiU6W#B)xLLy4MZ4mtI^NUN*%T58VLWyF5KxfFMad=> z;Xuj23c!pC;7r0tf_Kbl%%X?LeVgMs68RN4;yGnx8jfm_Q)$%OtuU%ah|+0Bk>Aq% z#e61n+I|IYf=A8>GK-o@^1+n<@sgLl)iG+$Yw~nZxsUYozEc0}@1B?PM2EW&9ahJ# z$s@GTH-64$%L@xNlOp04msRVnZYib&0XlCwKsQd(cJpADy*R9GuspD5dg*f`AHgf( zQ@00b{7&dTIxhajr0X9<+GO+687Aayd{cdS$z@=pj&{r5>7_LQjc;y zm+bwHKgsJnh{yeKTpAGe#0&(zfH zl~DZJYFACezH95WSabgxD)7c{f#J6ucn{OyaZqK1V^&S1k5h zyzt_aSO2}@gWhJb*pG|u2rdCIGw54^qG!s}$GLR+IO8zQECO>Cvx#Iz;?INw`FVcX zPW||1@<1n)KQbQ?eJ-Zzy=y+wGwUYLbV9OeHb3W~PU`$1_1LAJ>V)8@W~0Vqolw1> zYDPS&Nm2TdHy7^BBu>a^cMODnD?-e`U zAcRq>$7HO)W{T4XKFjN$YL@*D3o*=Q{5k9S&`ipNuYy^Ng9G+`;yl+=`4Pt@vk8CBNAMHptK`EXyrwI57B1%O{(wF2=qs4d6r8vl{ygQ*Q|?S(9W#$; zmQ7OP(XW543e)0|{xK~c=^tl{N17xn9_fNi-IREwNuEMH(sgDX|C(T~c%-SO#Uoub zB_8RLw0NX{eAU$G@Sk{2&u;uoYo2*ulF!oz`Sd}4iU+xxlIPX60P;;qzEem61@{r5 zSuB#+lmDve474DRuVBD48#fb%oceakp{E@B6dZc8AOxnH&7H4wMt-HkmqPWI;L#f! z{KlGMQGLFiULH>`kED7(K^&@_e2NM#oXw^$^;lt4plh07* zk{|6Nbti()M%FMSUF29K4vi;cfG8@4I{UjDyG)*#GBi_i%vj2Nq02Hxh(y_`DKh2@ z{d=ZnBFk%v#myJG$_(>`E}v(<&_rorU8p&AN!EO!3sU9_{aXQgBEp}AaZjyt>K82c zOUMVuu5HsVA=ZVSzJ#*p@2SQp(HQ-7=kw1VUc2|j&D)mM#R-Jgr*(K50rYNgspL5J4Q&p|$7kcj0KQX&7j3!f!{xH?3I8>%6(prez{yq>*#01hH zqh~i*`Iu#E`kQ+_W$jbeUVydV60A+fZkpFv@_jpbxuuIU(q!^pOB20szS7b~nfl4w zEKOvaZ<#qSvUIHGk;rDoT_qmtevD%U#Fho z(+BwUmb>^Z_g#I`e)qCnOnLRZ@_tn>^eJ$>O%E sq)u8&Ou6zT1oLcF3DuOXDk(}|f9cFfN>a8e{D=osJfmk)uC|5$A0&fX`v3p{ diff --git a/dist-newstyle/cache/compiler b/dist-newstyle/cache/compiler deleted file mode 100644 index 7db724e14e53f4d0849c7acd2b6feba56882334a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13559 zcmb7L>2e&&ajxREyg=|?k=&Kr$I5GS2Sb9~U2rYQ0RlXr1wkwZAR*f_-7`}dw9wN% z+ueghz9irGE%^-`eg*yZYxouX3bwz>uFS6P88Cu~AZI4OFSD|)tgPzl|6Tacpa0;0 zlIuVJumAYjFJAbmQRUwmeZqaa)gI?rJ5GCH+@2fk_Qs=jH%i+0ruBb+a_0X|clJ&) zccz^uq2Q-Qey6>g4oy27CyB}0bEPq7rD9!ar=y}hibjWTCa{KuUYHG1_M@`!Nxht2 zn(Rb_b}t={(i{cvo1~v+qUI{7G=EWQ)_pxE6>)<1>z1Vk4xXvGK3zwAcJRk_lgB&j z_&26@gadEajrG$aF-5yb(>QmGSx-Gj`#SL@Ph3gQk<_D|B|$|v-S)s!wn?46^F$nk zL&F7M_Db;OPJuqos~L4tNl%=5)P3;4$MO9XaQZvf+J5$YY5v~)LmqY_xzAlW)7pL> z=6fcN=kMLW=M>cikv>`|W%>iL;rNdh*oMz$)&2#!Fb4agz->) zpJiuT+gnK6u(hKYYWgOrt2xrNG8k(l@=RA9iC?*$@KRm_|`2*v5_4 z_Da%AcTHxJqB0@)`__#q47JY|Zq>Z#j7KJ0io-ldWrTCbTJaq5S?WE{(u*`nhiNw2 zjq>4!$%`!N6;YaK;gF?cSn4abbh)){Ijc5uK8})pt_8YkU8#fWEbCoqZ7&-$>WsVj zcsQbx1-oVy8>sq}HBsV*iNizFUr*zs4b#&CQHga>ea3p|!zYIYf}`m#o1JhR7aQXk zO(z8E!)X-tIop_pXPESCAlHJRK5J_c5C}-nwe;jJRK+0$}34>vYoJJw2(fq z29BetkJ%QgxRu1wPGR~_pRQ~kjZgytuUi{USpAx(O9f|RG&sgF3}^vKw+X9XXI;$O zrNvQXRYZo^fw@*n)e1Aw&WH-GCM#H!vSK}phFS>J&QmE7+o0C`Ubr82dRa6oP^$V} z#?b%kVHU=*i5IghJj%5|)cl%6FN)tJ2 zFrqHA2HFrk6Gy$Mu+25hwLsK{bx?i4dT1MgG82#cMhix5(?HcF)(+adcZ z%pw~|b1gVUzbOng%NAgNJuEP9k`884Sd2613kv&d=>)EJSsVCb9H$41!)`Pfr{lbw zI)YRAQy6N2Eub~Gl5UE)vpF7F-vy!3TEo;IvKD&NA)PUrS>)6=9-{t|HM|+VW)2FP z;R4oXIK%26Sr=`@(|0o*A9*^qC7*`F zD2~u50+5amsUNWp0)PNV%VuO_a?-QfLP5yHL}9}!YSQ`(Qkvc5WS{!*C1gka=%163cg zrtLzz+EKyl<0RJtQIx2IYL4~LFQrY=5i#{k1*j*?2kfc!hWxUKp zL&Q`@1*m!EBQJcmxV)KbkzhqzOG&04Fbh_#q;r%M;h`2WS*-x|J?2{n*W+>irFbGx z*+Ml?eaU+0ljU?V>96c;?waIDoEt3|^+^L&f6SUF@iF#gdyCm%JVYXyYk{c5I;hrI z58#Hu28I$?S3dzMsx)EsTdWIjmr~@-Sr{e7mz3lQM&341_1mn848bO8rH)ALd`LyE ze#c|ms8zB>N^Fsx1IME(IP|#mUG{V)wh|84&;m*i$|^npb_RnDq|hY&c%^k zBf}!vH&}@UL3Tg*CE6;}cdK_it+E{h0Feq!7 z%2D59E9k-wHa7h*P7||ivS=UCO$&^qY%QH6s7IbYX;FJx-|hOW1t$GTg6ewui{k=W zJ4!a9FEHs(64VCkqkT$UN|Dn{3qq}3!&Ha0F#24HS%^JePEHF-5q$zzo2-q_cXrd5 z=7koB=29J0U$CC|`pn>@C+cZIJYOBAeuK5hSK4=Y`HP^=*9NYJtS!DSCP%dC(*k+E zGN=;P!-OcSv5Gx|7BNM%3Q)h#e2gO!WAtE!#M(2k>$1SrIH(cSAFw{gKkL7WLM?I{ z{~n^=XAPLN;{`D(O^${<7jrEH+AmC_s4Hv(P4F}}hjvqgSX7up#6CjVK|v)g@zSd|^-= zn95N*Y{gb~9LHgHVRpT+7XbLb=&=lKNG)gZ|!1qF&m!9cvd; zL1>QDFg3$kXsIWMNUgB2MPZE14nB7%0^?*tSRdM8b}Uc*3R}bK^CBEXJ#6E4wMc0_ z5xKg?Y|OAHIEgs2D+h8lBx(ZD46B3chNov&EN@Z^M0#~lyPXFm;!;(8H@y7aqo5#Lczf)WcI4 z>H=H9in9?Wduvud*CM7BrvlXZ27kWfi&*$2pe`~W9@yNmJiF}Kk%)}PCc?s?I60N0 zev_@B$#GVJoXh2RW$6M_oSY=6Pgvjf2`X51rXXdX_?Q~77D|0`Sf0Ds%~L+Y5n!$b zrcx&f>btCu7_}bu_QHXIZ#Y=XwLlbW>Y#e*>9JWH%;A_r3q*Q#Q2jIOp{*BVd*nhn z@M?IJj_K4?3xnEvDo6bbTlwWGMEmTubUID_E8D_|a7WK&J83~^MAR^KkG0T# zs8-*#Lb*G3E2eNLe>jGvUa%$1yH%VR^uwhP+es1AJgNY->hUR;cpV}U}azXDXB z`51dR;74My8ev4(gA9Ra4Anu^V?7I+K{tgIK?AZvn}JCagl%MgBoa19gZV`5}eHVYGoMr$2Zf6sborD~#=VR|_&wBXcAQyA(W*aCJ|O?+$A zM{v?Yq2*{gN&Oq!;d#@|i!5{rp@7xA@nH2&o-RM&lz1v2={8~YQ`W`$W;YC!ZPLN6 zAhf>KF!eLmg15Ao#5feQGtM5l3rHn4VRw(=wfnsEIK?xxEU?Er$P}FP%%i#c_vY>k zXNrli9waTeFg|qH)uq5*n2BOo#+M;Z&Kz=b(CfLc zmp#%>91i%dhlAA(4~Ox+z$aa8y^cR=wUV?I=B>mSJaTY)cRaOxJfb`gGm8qIfvy`5cZwF2CXIKI9!%<$Duw4R73&Oqh#fN!064qtd{ z8RslI-Tv8S(;W{2>Ejb?FI~wO@U%EsK1%SAiTlPY@S;W6vvdc&$!%QeUU?R$-7pSZ zY8)&-c1FMJ-PmzgzHr^Eje#{kH{XtCAbcbMf+XoN5NNs$#2xS>WVeFB)!a_VVKg3lF+xeqm>)-|z2y z_G$Oi&%2*@@87@Q-RUhnTDZ5+eK%m(| zY(R7Dnq^Bklq`Z3c6zp&{w?pOp7{2vT#y3XnQ<3IHJLV*wsI9Ks7ASTFL?L z%Q)mG`$4gr*?({P6nN#^n^7fwGkViMO1$6vtK@hnSfw5MA2!@4>6hQF?kFgA@ZC9b z+is2RGd9~eQ$zKosiF5Vz`rS(kkB1)dUMy=Agw~Hs(6Xe;FjB<`!WUqjcOB?PPnL}O^&JYJ95g}yS zpgSKnGtCoW=6pE|%Xa!2x9o9$(3PHPAfUW|qbGq>Et zd1Is18{1NiHS@{@!P&Tov^zpDTiXg`P4Y^<4OslQ2{$$@n5_qRUNYgtb)Rcjq!@ia z!Mf$M?2%n;f^t$!P-oI9H91W}$GwCnAqbX@%AP5uj&rZf4FVfIZIX`-Lz=`#RkiZn z5XZ>Cx*4vu$=s|4;{|6S%zC@d==nu_-=^(}liYEnUF0=$kv)YB`nVE+{oVeQ(C~rB zwr!6`r{>V~0))S5aqEUhuj=7S_PT4<FyAp_(E)mQ2RG35_y7O^ diff --git a/dist-newstyle/cache/config b/dist-newstyle/cache/config deleted file mode 100644 index a6954d651b311df200ac7b0f0bbc472eba050070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4507 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 z 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Π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 z%0A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 z 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 AS^xk5 diff --git a/dist-newstyle/cache/plan.json b/dist-newstyle/cache/plan.json deleted file mode 100644 index 5d575a4..0000000 --- a/dist-newstyle/cache/plan.json +++ /dev/null @@ -1 +0,0 @@ -{"cabal-version":"3.16.0.0","cabal-lib-version":"3.16.0.0","compiler-id":"ghc-9.12.2","compiler-abi":"9b33","os":"linux","arch":"x86_64","install-plan":[{"type":"configured","id":"Decimal-0.5.2-600669ba4edadcd5ebc0a15840217786960d826403f83e864596076b23eb1f8f","pkg-name":"Decimal","pkg-version":"0.5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"83dd16a1c0737fd35fdb1088af36e1a53034e75090e3f0d4ad32296f1a35a13b","pkg-src-sha256":"a37a0220424e4bcb8cae1d38844c7027ee314449758d0d14ff3e2e0a5c8a87a7","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"OneTuple-0.4.2-b32b398a76b5194fb920d0aa22c753c0d6c85d7aba8eb48c65a953f1499f3827","pkg-name":"OneTuple","pkg-version":"0.4.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dd7266f983da2970e5662168add810dabadabb3a4bb9b137181eafc0ac7ea4d4","pkg-src-sha256":"174da8a0f4004d17b08182cb25b0e045fce5de1fdeae84e9d75fdea2867aab55","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168","template-haskell-2.23.0.0-c7f4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"StateVar-1.2.2-e224a30d0780e82758e45fc9d0e7ae88b12352f5b7218586383b35aa2969138c","pkg-name":"StateVar","pkg-version":"1.2.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3c022c00485fe165e3080d5da6b3ca9c9b02f62c5deebc584d1b3d1309ce673e","pkg-src-sha256":"5e4b39da395656a59827b0280508aafdc70335798b50e5d6fd52596026251825","depends":["base-4.21.0.0-ae91","stm-2.5.3.1-d35b","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"adjunctions-4.4.3-4f7e84f876f3489c05054a9739a17c08ef6cd2fa770f59223ef46cc74627e5de","pkg-name":"adjunctions","pkg-version":"4.4.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"766e116f1c348b6518b96291961a7768e98fc467cfd29e51c230177eb997e676","pkg-src-sha256":"8beb121cee2bf913dac3188ed1e0e05cf1a0d0f12d4cb4a27c0da58450eb189a","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","free-5.2-8807e0925de9263b39b151f61249e37b84761209d43a075bb790fb0ad2f88168","mtl-2.3.1-fdf9","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","semigroups-0.20-f42133f5dab06e419b9f5765382f7b736c1e55c657f7b1537e7ebeaa6cff7a48","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","void-0.7.3-103ab5eb56dd906e16f096cfb98ad9bd3939fff42d98fcee03390afb5a137a87"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"alphaheavy-quickfix-0.1-inplace","pkg-name":"alphaheavy-quickfix","pkg-version":"0.1","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/runner/work/quickfix-hs/quickfix-hs/."},"dist-dir":"/home/runner/work/quickfix-hs/quickfix-hs/dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1","build-info":"/home/runner/work/quickfix-hs/quickfix-hs/dist-newstyle/build/x86_64-linux/ghc-9.12.2/alphaheavy-quickfix-0.1/build-info.json","depends":["Decimal-0.5.2-600669ba4edadcd5ebc0a15840217786960d826403f83e864596076b23eb1f8f","base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","conduit-1.3.6.1-3253a6d7fc24b7ae4b6194c2ccb72f83196b6e331de00421badb334ae8e92501","containers-0.7-5a8f","lens-5.3.5-e458ca06d7768e007dc3d36c8d55776b01d03f4d7c37f18f0027794e89ab4781","mtl-2.3.1-fdf9","old-locale-1.0.0.7-f27e5e13de030446e2025650edff14e6c7a407c7c4e965bab23d4f15a2606634","resourcet-1.3.0-72b3db864ef7732b52c231e1c8afdfed5067df650015181c1b1cbc43b76890dc","stm-2.5.3.1-d35b","time-1.14-9bf8"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ansi-terminal-1.1.3-09b05f002e607d6b8f1414f0dad33cb8a1a839b42b8512890844eb4665f0137f","pkg-name":"ansi-terminal","pkg-version":"1.1.3","flags":{"example":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4b26711a95ec724284cdf41aaebc624d9f8a51799424f90ab09d1276bb154e7f","pkg-src-sha256":"88d11a165cd709bfd603b4bc36afd5b39d3e9eec69ee466ca4359441d468c092","depends":["ansi-terminal-types-1.1.3-db1685275f2ae75f174ebcb59477d0f46dc1d49444ea3ca385251c4aa0706203","base-4.21.0.0-ae91","colour-2.3.6-877af711e01a9768ff7baeb2add940dbae8048532d7eeae7b6649d02b1864531"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"ansi-terminal-types-1.1.3-db1685275f2ae75f174ebcb59477d0f46dc1d49444ea3ca385251c4aa0706203","pkg-name":"ansi-terminal-types","pkg-version":"1.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"1d6061eceaf35a9ed269b81177dd4c8c60403a499526f7f68fdffa4ec7842e7f","pkg-src-sha256":"9fc9ce2157f1889bd99a4d22c9f1c64589590be0f797c3efe71c8fa17a11a689","depends":["base-4.21.0.0-ae91","colour-2.3.6-877af711e01a9768ff7baeb2add940dbae8048532d7eeae7b6649d02b1864531"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"array-0.5.8.0-9044","pkg-name":"array","pkg-version":"0.5.8.0","depends":["base-4.21.0.0-ae91"]},{"type":"configured","id":"assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","pkg-name":"assoc","pkg-version":"1.1.1","flags":{"tagged":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0ab39b4d1feb4caca95ac6e314f48782b27a86a6b8d1f5e8dc4be9fbed11185f","pkg-src-sha256":"231149b7fef09f5dd95af51228615e3b296dbd0faadeca053e0644a4b13b0ff6","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"base-4.21.0.0-ae91","pkg-name":"base","pkg-version":"4.21.0.0","depends":["ghc-internal-9.1202.0-1465","ghc-prim-0.13.0-e168"]},{"type":"configured","id":"base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","pkg-name":"base-orphans","pkg-version":"0.9.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"c95cd3490ef99998a496de26afe8879a1d7780fa181a4479a956c690d74f75f1","pkg-src-sha256":"17a35079c8719014560c028d9805ec1301b900972adf212e00af23fe3ebfabd8","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","pkg-name":"bifunctors","pkg-version":"5.6.2","flags":{"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"115a621c4eaaabb07834f9e4dd3371e21f39d034305062f4bd5cd72c2f8880d2","pkg-src-sha256":"1086a9285061eed0c2c5d3cb65aa223defd52fca6d0515bb69ddf2dbc3d9697a","depends":["assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","base-4.21.0.0-ae91","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","template-haskell-2.23.0.0-c7f4","th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"binary-0.8.9.3-25e5","pkg-name":"binary","pkg-version":"0.8.9.3","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","containers-0.7-5a8f"]},{"type":"configured","id":"bitvec-1.1.5.0-894dbc1458e6c578920cddadc3f8e4d54948ff717378713f39e084edef2957b4","pkg-name":"bitvec","pkg-version":"1.1.5.0","flags":{"simd":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"434be6dc60e22858a52869c58038c35353f1a778b9679ebc06a2165bcc7f88b3","pkg-src-sha256":"83d27cee5be1d5342ddbf39999d0c8ea54cb433d0891eea5471fbfaa29f8dec5","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","ghc-bignum-1.3-6db4","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"bytestring-0.12.2.0-7dd0","pkg-name":"bytestring","pkg-version":"0.12.2.0","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"call-stack-0.4.0-c186590f776f40ea8987b627a4f39841bf0837484e46bbfe07e39cafea40ec5d","pkg-name":"call-stack","pkg-version":"0.4.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ac44d2c00931dc20b01750da8c92ec443eb63a7231e8550188cb2ac2385f7feb","pkg-src-sha256":"430bcf8a3404f7e55319573c0b807b1356946f0c8f289bb3d9afb279c636b87b","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"colour-2.3.6-877af711e01a9768ff7baeb2add940dbae8048532d7eeae7b6649d02b1864531","pkg-name":"colour","pkg-version":"2.3.6","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ebdcbf15023958838a527e381ab3c3b1e99ed12d1b25efeb7feaa4ad8c37664a","pkg-src-sha256":"2cd35dcd6944a5abc9f108a5eb5ee564b6b1fa98a9ec79cefcc20b588991f871","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","pkg-name":"comonad","pkg-version":"5.0.9","flags":{"containers":true,"distributive":true,"indexed-traversable":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"75aded79bf583c908e4e4687c0ae067f256e2507536b75f58ffba7748767c353","pkg-src-sha256":"69fb0eb49a80055a9b76d31d0a5648777c4050ac8dbf56a9344b862ed878a789","depends":["base-4.21.0.0-ae91","containers-0.7-5a8f","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"conduit-1.3.6.1-3253a6d7fc24b7ae4b6194c2ccb72f83196b6e331de00421badb334ae8e92501","pkg-name":"conduit","pkg-version":"1.3.6.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4e5be34eeff16646eb7e13471c7ae7e8db59a3f7cc3125ecb1fc0ae3632baac9","pkg-src-sha256":"69902af03ea7e4cb982fa83da42afe36973b62d0a52ea140ae5362e52854ba3f","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","directory-1.3.9.0-af18","exceptions-0.10.9-4d2e","filepath-1.5.4.0-e69b","mono-traversable-1.0.21.0-af8d364e526d45e94bdbcda616e674eb5dbf38164b53620a73ef7cdfb0bc2143","mtl-2.3.1-fdf9","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","resourcet-1.3.0-72b3db864ef7732b52c231e1c8afdfed5067df650015181c1b1cbc43b76890dc","text-2.1.2-ecdb","transformers-0.6.1.2-38b1","unix-2.8.6.0-c07b","unliftio-core-0.2.1.0-bad6263037f56d4ca365d47d8166f461027fb9e515d2cde0511d2e722b88f2a0","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"containers-0.7-5a8f","pkg-name":"containers","pkg-version":"0.7","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","pkg-name":"contravariant","pkg-version":"1.5.5","flags":{"semigroups":true,"statevar":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"470ed0e040e879e2da4af1b2c8f94e199f6135852a8107858d5ae0a95365835f","pkg-src-sha256":"062fd66580d7aad0b5ba93e644ffa7feee69276ef50f20d4ed9f1deb7642dffa","depends":["StateVar-1.2.2-e224a30d0780e82758e45fc9d0e7ae88b12352f5b7218586383b35aa2969138c","base-4.21.0.0-ae91","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"deepseq-1.5.1.0-6837","pkg-name":"deepseq","pkg-version":"1.5.1.0","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168"]},{"type":"pre-existing","id":"directory-1.3.9.0-af18","pkg-name":"directory","pkg-version":"1.3.9.0","depends":["base-4.21.0.0-ae91","file-io-0.1.5-178f","filepath-1.5.4.0-e69b","os-string-2.0.7-e43c","time-1.14-9bf8","unix-2.8.6.0-c07b"]},{"type":"configured","id":"distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","pkg-name":"distributive","pkg-version":"0.6.2.1","flags":{"semigroups":true,"tagged":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0f99f5541cca04acf89b64432b03422b6408e830a8dff30e6c4334ef1a48680c","pkg-src-sha256":"d7351392e078f58caa46630a4b9c643e1e2e9dddee45848c5c8358e7b1316b91","depends":["base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"exceptions-0.10.9-4d2e","pkg-name":"exceptions","pkg-version":"0.10.9","depends":["base-4.21.0.0-ae91","mtl-2.3.1-fdf9","stm-2.5.3.1-d35b","template-haskell-2.23.0.0-c7f4","transformers-0.6.1.2-38b1"]},{"type":"pre-existing","id":"file-io-0.1.5-178f","pkg-name":"file-io","pkg-version":"0.1.5","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","filepath-1.5.4.0-e69b","os-string-2.0.7-e43c","unix-2.8.6.0-c07b"]},{"type":"pre-existing","id":"filepath-1.5.4.0-e69b","pkg-name":"filepath","pkg-version":"1.5.4.0","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","exceptions-0.10.9-4d2e","os-string-2.0.7-e43c","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"free-5.2-8807e0925de9263b39b151f61249e37b84761209d43a075bb790fb0ad2f88168","pkg-name":"free","pkg-version":"5.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7f3992a66987bbba5a6546420f6129fb9b66b80cdd005d34ec77a1e1c8ed8340","pkg-src-sha256":"72867f7c89173263765736e8d395e94291f1aaea626ecb1d673d72ce90b94f89","depends":["base-4.21.0.0-ae91","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","exceptions-0.10.9-4d2e","indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","mtl-2.3.1-fdf9","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","template-haskell-2.23.0.0-c7f4","th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","transformers-0.6.1.2-38b1","transformers-base-0.4.6-b096b554d8a0f02a6886d81a5d2dffd8d934d4910150c4e8abd056f0f3bfb6de"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"ghc-bignum-1.3-6db4","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.13.0-e168"]},{"type":"pre-existing","id":"ghc-boot-th-9.12.2-e976","pkg-name":"ghc-boot-th","pkg-version":"9.12.2","depends":["base-4.21.0.0-ae91","ghc-internal-9.1202.0-1465","ghc-prim-0.13.0-e168","pretty-1.1.3.6-fe44"]},{"type":"pre-existing","id":"ghc-internal-9.1202.0-1465","pkg-name":"ghc-internal","pkg-version":"9.1202.0","depends":["ghc-bignum-1.3-6db4","ghc-prim-0.13.0-e168","rts-1.0.2"]},{"type":"pre-existing","id":"ghc-prim-0.13.0-e168","pkg-name":"ghc-prim","pkg-version":"0.13.0","depends":["rts-1.0.2"]},{"type":"configured","id":"hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","pkg-name":"hashable","pkg-version":"1.5.0.0","flags":{"arch-native":false,"random-initial-seed":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"2f23146cbe0325029927b221647695a4c7d6e97548ff731110979e34361f58ef","pkg-src-sha256":"e58b3a8e18da5f6cd7e937e5fd683e500bb1f8276b3768269759119ca0cddb6a","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","containers-0.7-5a8f","deepseq-1.5.1.0-6837","filepath-1.5.4.0-e69b","ghc-bignum-1.3-6db4","ghc-prim-0.13.0-e168","os-string-2.0.7-e43c","text-2.1.2-ecdb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","pkg-name":"indexed-traversable","pkg-version":"0.1.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"42d9e84a65a0c17c248233cab98ada872ff6140dfa24d109d6eb285204d07e7d","pkg-src-sha256":"58be09afdf3ad5a25c2aa0d2a7df80d602df09f4e76d3abf2b7cdb0e75d03b22","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","containers-0.7-5a8f","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"indexed-traversable-instances-0.1.2-e1fbf7f8ee3ef92c803b8e8ae86b0ff13fa255425c99649af755ac793b870b01","pkg-name":"indexed-traversable-instances","pkg-version":"0.1.2","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"68df0fc8070ae2c15f9e6febf1449fee364c131a6d1e93cac45e7895ba86dd89","pkg-src-sha256":"3c2bb62fba141d6696177070d63b88bc56b194bc60f6b73d2263b0244e2fc7c1","depends":["OneTuple-0.4.2-b32b398a76b5194fb920d0aa22c753c0d6c85d7aba8eb48c65a953f1499f3827","base-4.21.0.0-ae91","indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"invariant-0.6.4-54894771ba6c9abe9a680e7134d0373d9f079c89e8942dd78a2f2d8733384c81","pkg-name":"invariant","pkg-version":"0.6.4","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"4a9a609f4e93ffed158b3b4f5a80822c6da30aa71a5370307c0c00c2d658d1c6","pkg-src-sha256":"a9e2ab4ee3e0d4613beb7bda36a8ebc4f72318450514f4832d2fa43b74f0aeb3","depends":["StateVar-1.2.2-e224a30d0780e82758e45fc9d0e7ae88b12352f5b7218586383b35aa2969138c","array-0.5.8.0-9044","base-4.21.0.0-ae91","bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","ghc-prim-0.13.0-e168","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","stm-2.5.3.1-d35b","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","template-haskell-2.23.0.0-c7f4","th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"kan-extensions-5.2.7-4931b4624bced06c96346e5870ad072371e3827d3cba51c6136beccf60548f1e","pkg-name":"kan-extensions","pkg-version":"5.2.7","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b91397acc14202e8a9eb5717c9d5ca12b63c00b410e902cb11f76d38fcec7895","pkg-src-sha256":"c323acff95cdef6516f2f1a733a1f00f7e0caa1b7061f8831ed82e18fd37e158","depends":["adjunctions-4.4.3-4f7e84f876f3489c05054a9739a17c08ef6cd2fa770f59223ef46cc74627e5de","array-0.5.8.0-9044","base-4.21.0.0-ae91","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","free-5.2-8807e0925de9263b39b151f61249e37b84761209d43a075bb790fb0ad2f88168","invariant-0.6.4-54894771ba6c9abe9a680e7134d0373d9f079c89e8942dd78a2f2d8733384c81","mtl-2.3.1-fdf9","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"lens-5.3.5-e458ca06d7768e007dc3d36c8d55776b01d03f4d7c37f18f0027794e89ab4781","pkg-name":"lens","pkg-version":"5.3.5","flags":{"benchmark-uniplate":false,"dump-splices":false,"inlining":true,"j":false,"test-hunit":true,"test-properties":true,"test-templates":true,"trustworthy":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3bce9b67767ff9feccba39e41f9ad21a0fbf395b75069ecefe400a791a9acd69","pkg-src-sha256":"efebacf3dfb108c96171e564f059778d21ac262a98a956fef8890223ed8f1fe8","depends":["array-0.5.8.0-9044","assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","bytestring-0.12.2.0-7dd0","call-stack-0.4.0-c186590f776f40ea8987b627a4f39841bf0837484e46bbfe07e39cafea40ec5d","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","exceptions-0.10.9-4d2e","filepath-1.5.4.0-e69b","free-5.2-8807e0925de9263b39b151f61249e37b84761209d43a075bb790fb0ad2f88168","ghc-prim-0.13.0-e168","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","indexed-traversable-0.1.4-4088d2f431980710e75fb12f128ebe9f63f78cddc108d752ee363b3f10982dfe","indexed-traversable-instances-0.1.2-e1fbf7f8ee3ef92c803b8e8ae86b0ff13fa255425c99649af755ac793b870b01","kan-extensions-5.2.7-4931b4624bced06c96346e5870ad072371e3827d3cba51c6136beccf60548f1e","mtl-2.3.1-fdf9","parallel-3.2.2.0-4b4820d45d8147443e32248cfe9d92051e257546b6a6122ac202caf931a67900","profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","reflection-2.1.9-4d93b8afcdf20c695bdfece5fab90e43704018f56c3804a5a16991e61a24a017","semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","strict-0.5.1-78770d2d804f113c52727a7d0e3cd26561719d4912fba53e7c897a2167538e47","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","template-haskell-2.23.0.0-c7f4","text-2.1.2-ecdb","th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","these-1.2.1-23bce68b3da478e578d273fbb854a7aeee97d7e54823cbde065e19b394a13dbd","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"mono-traversable-1.0.21.0-af8d364e526d45e94bdbcda616e674eb5dbf38164b53620a73ef7cdfb0bc2143","pkg-name":"mono-traversable","pkg-version":"1.0.21.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"7e6269eadfa45fe8433e01f6dace1397eb3ae423931071634be806eb2ed73b17","pkg-src-sha256":"4dd93ea334c0169500402f07aa39c98dbb7bffe55dc63fdf228da2cc22c7c5cd","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","containers-0.7-5a8f","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","split-0.2.5-c0c6439cb2871a837140700d69b7241de447526ab2d9d9bc2bd946398cda6e2b","text-2.1.2-ecdb","transformers-0.6.1.2-38b1","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c","vector-algorithms-0.9.1.0-0868983b21c72216ed672031894bc1aa2015f29b63adb735f9e1947f66ef0815"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"mtl-2.3.1-fdf9","pkg-name":"mtl","pkg-version":"2.3.1","depends":["base-4.21.0.0-ae91","transformers-0.6.1.2-38b1"]},{"type":"configured","id":"old-locale-1.0.0.7-f27e5e13de030446e2025650edff14e6c7a407c7c4e965bab23d4f15a2606634","pkg-name":"old-locale","pkg-version":"1.0.0.7","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"fa998be2c7e00cd26a6e9075bea790caaf3932caa3e9497ad69bc20380dd6911","pkg-src-sha256":"dbaf8bf6b888fb98845705079296a23c3f40ee2f449df7312f7f7f1de18d7b50","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"optparse-applicative-0.19.0.0-c16e4d5bae24108c1a1eb93cd6754d066d5859e41ee0b96d961510a6b2e69f12","pkg-name":"optparse-applicative","pkg-version":"0.19.0.0","flags":{"process":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0b47b3ff7eb4a855b5f7d401690365fc62a32057374927ce0d478b620996222d","pkg-src-sha256":"cf16aeefd821730c7738447fa7c6b7ada7ca1c9cc25400d64ef283294d345871","depends":["base-4.21.0.0-ae91","prettyprinter-1.7.1-e52f74935268a390cc760cd4a7e844416a081aaa4ec85f541c7f058291268a7b","prettyprinter-ansi-terminal-1.1.3-65471df942eada4c676ab7455149fc3bb56f146cb3c5a57e71baa1136abf36e2","process-1.6.25.0-5f54","text-2.1.2-ecdb","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"os-string-2.0.7-e43c","pkg-name":"os-string","pkg-version":"2.0.7","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","exceptions-0.10.9-4d2e","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"parallel-3.2.2.0-4b4820d45d8147443e32248cfe9d92051e257546b6a6122ac202caf931a67900","pkg-name":"parallel","pkg-version":"3.2.2.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3df46ec247e12b5e406a0adb9577294431b24814b30df420551d176fd112a966","pkg-src-sha256":"170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","containers-0.7-5a8f","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"pretty-1.1.3.6-fe44","pkg-name":"pretty","pkg-version":"1.1.3.6","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168"]},{"type":"configured","id":"prettyprinter-1.7.1-e52f74935268a390cc760cd4a7e844416a081aaa4ec85f541c7f058291268a7b","pkg-name":"prettyprinter","pkg-version":"1.7.1","flags":{"buildreadme":false,"text":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9c43c9d8c3cd9f445596e5a2379574bba87f935a4d1fa41b5407ee3cf4edc743","pkg-src-sha256":"5e6ea6903114fa118fcc359633dfb7ecddecb92c06c853d02a77b72b251f0b45","depends":["base-4.21.0.0-ae91","text-2.1.2-ecdb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"prettyprinter-ansi-terminal-1.1.3-65471df942eada4c676ab7455149fc3bb56f146cb3c5a57e71baa1136abf36e2","pkg-name":"prettyprinter-ansi-terminal","pkg-version":"1.1.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"b00f727b964cf13adff7acf575a71fa7e405f5240aff50b07f10df76ab89f8d3","pkg-src-sha256":"813739308ad6050620578994effe21058a170a341716acf52573fae42b5b1db3","depends":["ansi-terminal-1.1.3-09b05f002e607d6b8f1414f0dad33cb8a1a839b42b8512890844eb4665f0137f","base-4.21.0.0-ae91","prettyprinter-1.7.1-e52f74935268a390cc760cd4a7e844416a081aaa4ec85f541c7f058291268a7b","text-2.1.2-ecdb"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","pkg-name":"primitive","pkg-version":"0.9.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"dfdd6572944c11e69208237dd32a2eb9d975b4f4e9064a7b8dc952cb0e256846","pkg-src-sha256":"44b4de41813c7bc5db8a57f87c3612a069b65086946268ba165097252ebd3d76","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","template-haskell-2.23.0.0-c7f4","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"process-1.6.25.0-5f54","pkg-name":"process","pkg-version":"1.6.25.0","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","directory-1.3.9.0-af18","filepath-1.5.4.0-e69b","unix-2.8.6.0-c07b"]},{"type":"configured","id":"profunctors-5.6.3-235412f627d8775e0c7cb39f70ae4a825fd522fb0760ee2e5a2127ff77bcb466","pkg-name":"profunctors","pkg-version":"5.6.3","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bfdb8c8b8cd4390e30219219edaff6ae7f428516f7338f0b7c39cb16b84bad2c","pkg-src-sha256":"b9c6f427368d2e811e4c48b59005218672458fd2f00a02cbefb8be9c751c0ef3","depends":["base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"random-1.3.1-32799ebf2c8c2dfa25f23ba32a29839a988fb24a6591cac266d756adea72e6bf","pkg-name":"random","pkg-version":"1.3.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"0b4f649c3e78713b2ccad1535251ee34b148237fb2229d7058c2b1d9ccc324b8","pkg-src-sha256":"d840ac83f265b0cfa2a678f8ec78627eb50cf9be2f067c52c8a4239c29b71a35","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","mtl-2.3.1-fdf9","splitmix-0.1.3.1-c7ca4e77820c2b9f88c40c7618aa0afff79626341a5f693f62490b554eaf15a1","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"reflection-2.1.9-4d93b8afcdf20c695bdfece5fab90e43704018f56c3804a5a16991e61a24a017","pkg-name":"reflection","pkg-version":"2.1.9","flags":{"slow":false,"template-haskell":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"eaf28dc9884718a306ed1e0c215a24b36c68b8aa3be425617f66d886d43fe1e0","pkg-src-sha256":"c6a7d5e41ad0ee1a05c660acf4fd34b21f38330eec165d246b7fffb398e59fb3","depends":["base-4.21.0.0-ae91","template-haskell-2.23.0.0-c7f4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"resourcet-1.3.0-72b3db864ef7732b52c231e1c8afdfed5067df650015181c1b1cbc43b76890dc","pkg-name":"resourcet","pkg-version":"1.3.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"faa760fb28fb5c98fbe4867e375a775495cabc00926da81fa102dc991017d2c5","pkg-src-sha256":"ec601785ee42a201f32adb205b8685c983f18757b1bd33d2e806d571e0f9996b","depends":["base-4.21.0.0-ae91","containers-0.7-5a8f","exceptions-0.10.9-4d2e","mtl-2.3.1-fdf9","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","transformers-0.6.1.2-38b1","unliftio-core-0.2.1.0-bad6263037f56d4ca365d47d8166f461027fb9e515d2cde0511d2e722b88f2a0"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"rts-1.0.2","pkg-name":"rts","pkg-version":"1.0.2","depends":[]},{"type":"configured","id":"semigroupoids-6.0.1-fbcc9a9e34381ecae810498dea15b2adca2468f6b29b2f1ab7b2069927c0377e","pkg-name":"semigroupoids","pkg-version":"6.0.1","flags":{"comonad":true,"containers":true,"contravariant":true,"distributive":true,"tagged":true,"unordered-containers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"bfee06a6d88038a88ddd10fc21c230bf5ee3a14d0584dc6ab7ad54a9252c2c21","pkg-src-sha256":"1d532030862414f5d4f2f6f001783f77aa14e5f05ee8e3c4a2d2129fca29cc1f","depends":["base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","bifunctors-5.6.2-a6c29a0b97bcb6b3ea822be64d0bcd42647b0043be5d248f0146a633bf7f3de1","comonad-5.0.9-7c280adaadc65ca4e679628d8f261e62af9e8a8ef3ed4e06424f2cb1925c0831","containers-0.7-5a8f","contravariant-1.5.5-8369f00813a9c9944b71d27de03fae3837037829b0324f7fcb7c174d37bb378d","distributive-0.6.2.1-ad46881f37fc842bbb6bdb1c9a036b0d60942f5d94da010c1ab0852eace6c739","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","template-haskell-2.23.0.0-c7f4","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"semigroups-0.20-f42133f5dab06e419b9f5765382f7b736c1e55c657f7b1537e7ebeaa6cff7a48","pkg-name":"semigroups","pkg-version":"0.20","flags":{"binary":true,"bytestring":true,"bytestring-builder":false,"containers":true,"deepseq":true,"hashable":true,"tagged":true,"template-haskell":true,"text":true,"transformers":true,"unordered-containers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"925341e6f7eb104cb490bef06eab93bb7995c7c67c51ee938185a2ddefa7aaf2","pkg-src-sha256":"902d2e33c96b40a89de5957f2a9e097197afcc35e257e45b32ebe770993673e1","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"split-0.2.5-c0c6439cb2871a837140700d69b7241de447526ab2d9d9bc2bd946398cda6e2b","pkg-name":"split","pkg-version":"0.2.5","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"5bc1ae848bfded3087ea3e568908f1b75f56ecde6f02df3fad1a138dd5c783d5","pkg-src-sha256":"52da404e8397c1ab238354c8d4fd9a7e9c5cac8849cc2ce2e45facc85e74a913","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"splitmix-0.1.3.1-c7ca4e77820c2b9f88c40c7618aa0afff79626341a5f693f62490b554eaf15a1","pkg-name":"splitmix","pkg-version":"0.1.3.1","flags":{"optimised-mixer":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"d0002f3fb16a2cc5ba8afd47a6657726386edccfe8853d310e3479fe3b45201b","pkg-src-sha256":"b6bcd0d79bd4fe40975c8ebe803be2f3bfbf6006069a59745a325a0df3f86270","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"stm-2.5.3.1-d35b","pkg-name":"stm","pkg-version":"2.5.3.1","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91"]},{"type":"configured","id":"strict-0.5.1-78770d2d804f113c52727a7d0e3cd26561719d4912fba53e7c897a2167538e47","pkg-name":"strict","pkg-version":"0.5.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"58c373b7c7748cbb4a5a6c8c15073f99a1c10a9a9bb6894ac33f43a5cdb901f2","pkg-src-sha256":"77719280c2a86312e748227bfa732eeaae0e7df48d57acc3c2e5b7b07afe2f8b","depends":["assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","base-4.21.0.0-ae91","binary-0.8.9.3-25e5","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","text-2.1.2-ecdb","these-1.2.1-23bce68b3da478e578d273fbb854a7aeee97d7e54823cbde065e19b394a13dbd","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","pkg-name":"tagged","pkg-version":"0.8.9","flags":{"deepseq":true,"transformers":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6aad7d2fd594bd51834450d97850b9959305951993ea739fa2bbc18b55d8767d","pkg-src-sha256":"6daad88ebb414ba6a556d2898d2cbe7650e4276010e3a6eed939daf54b956784","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","template-haskell-2.23.0.0-c7f4","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"tasty-1.5.3-59edcf52ea0253f7ec7887268ce348f19c42cfc09647b726bfff6322b3a12433","pkg-name":"tasty","pkg-version":"1.5.3","flags":{"unix":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6b5dda3f16db1274a0b3e6c4073ac57172a1e96b1dca05666c5cbd1183639412","pkg-src-sha256":"54a0c7b644813af871a3726ac8771b5e17b5158c792a7acf8f9e2d3ae9360780","depends":["ansi-terminal-1.1.3-09b05f002e607d6b8f1414f0dad33cb8a1a839b42b8512890844eb4665f0137f","base-4.21.0.0-ae91","containers-0.7-5a8f","optparse-applicative-0.19.0.0-c16e4d5bae24108c1a1eb93cd6754d066d5859e41ee0b96d961510a6b2e69f12","stm-2.5.3.1-d35b","tagged-0.8.9-250853ad6f0e45303f6e845b0c1ffc410ececf763792960f0ae82f0b6a836178","transformers-0.6.1.2-38b1","unix-2.8.6.0-c07b"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"template-haskell-2.23.0.0-c7f4","pkg-name":"template-haskell","pkg-version":"2.23.0.0","depends":["base-4.21.0.0-ae91","ghc-boot-th-9.12.2-e976"]},{"type":"pre-existing","id":"text-2.1.2-ecdb","pkg-name":"text","pkg-version":"2.1.2","depends":["array-0.5.8.0-9044","base-4.21.0.0-ae91","binary-0.8.9.3-25e5","bytestring-0.12.2.0-7dd0","deepseq-1.5.1.0-6837","ghc-prim-0.13.0-e168","template-haskell-2.23.0.0-c7f4"]},{"type":"configured","id":"th-abstraction-0.7.1.0-734dbe6db277c0f0131af3eeaceb1f0ec7db3ee1e216d3c85e9b9611abc3332f","pkg-name":"th-abstraction","pkg-version":"0.7.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"3011403d85b0070630e33d66b9370535ccd1e0e672ae58f847550b2b15bb4fd8","pkg-src-sha256":"f9b6184aba4c6b61dd0d96f7dad41a4c9db0a01d3cdbf993a7d860488f1c04c5","depends":["base-4.21.0.0-ae91","containers-0.7-5a8f","ghc-prim-0.13.0-e168","template-haskell-2.23.0.0-c7f4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"these-1.2.1-23bce68b3da478e578d273fbb854a7aeee97d7e54823cbde065e19b394a13dbd","pkg-name":"these","pkg-version":"1.2.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"35c57aede96c15ea1fed559ac287b1168eb2b2869d79e62ed8c845780b7ea136","pkg-src-sha256":"17d6d933365edabf801a16842c1403bdd37cc5300faa2fcca980decdab22e4de","depends":["assoc-1.1.1-97d7705a94ad5c60a18ab432a4e669453a5435293bf00b677399171d2b2439d5","base-4.21.0.0-ae91","binary-0.8.9.3-25e5","deepseq-1.5.1.0-6837","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"time-1.14-9bf8","pkg-name":"time","pkg-version":"1.14","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","template-haskell-2.23.0.0-c7f4"]},{"type":"pre-existing","id":"transformers-0.6.1.2-38b1","pkg-name":"transformers","pkg-version":"0.6.1.2","depends":["base-4.21.0.0-ae91"]},{"type":"configured","id":"transformers-base-0.4.6-b096b554d8a0f02a6886d81a5d2dffd8d934d4910150c4e8abd056f0f3bfb6de","pkg-name":"transformers-base","pkg-version":"0.4.6","flags":{"orphaninstances":true},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"6f18f320e371c8954c4b6b211e2fdd5d15a6d6310bd605b9d640f47ede408961","pkg-src-sha256":"323bf8689eb691b122661cffa41a25e00fea7a768433fe2dde35d3da7d32cf90","depends":["base-4.21.0.0-ae91","base-orphans-0.9.3-0192fff20b554ea4c8adfc68a8544aad0bab975629794b3e3c94033c1fb4ec6f","stm-2.5.3.1-d35b","transformers-0.6.1.2-38b1","transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"transformers-compat-0.7.2-9feffeefbee9192fc3141808baace8e750dacad2708f5c251fa2b46252a1ffa0","pkg-name":"transformers-compat","pkg-version":"0.7.2","flags":{"five":false,"five-three":true,"four":false,"generic-deriving":true,"mtl":true,"three":false,"two":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"044fb9955f63ee138fcebedfdcbe54afe741f2d5892a2d0bdf3a8052bd342643","pkg-src-sha256":"b62c7304c9f3cbc9463d0739aa85cb9489f217ea092b9d625d417514fbcc9d6a","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"pre-existing","id":"unix-2.8.6.0-c07b","pkg-name":"unix","pkg-version":"2.8.6.0","depends":["base-4.21.0.0-ae91","bytestring-0.12.2.0-7dd0","filepath-1.5.4.0-e69b","os-string-2.0.7-e43c","time-1.14-9bf8"]},{"type":"configured","id":"unliftio-core-0.2.1.0-bad6263037f56d4ca365d47d8166f461027fb9e515d2cde0511d2e722b88f2a0","pkg-name":"unliftio-core","pkg-version":"0.2.1.0","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"f6a2736f858b5390d9384dca43d3ea4d96e9ca17217791791ca4951ba6e8072a","pkg-src-sha256":"99384cba8d56d9d61b85e38a313a93ebcdb78be6566367f0930ef580597fe3e3","depends":["base-4.21.0.0-ae91","transformers-0.6.1.2-38b1"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"unordered-containers-0.2.20-921c1bb07e8dd2060c13628d0e8580e57c154b212064dafe2b4b7960570c3a22","pkg-name":"unordered-containers","pkg-version":"0.2.20","flags":{"debug":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"233cbcdda6c2698932bb391ce0935fb44f80c115621ee815a21ed33ac8ede422","pkg-src-sha256":"d9cfb287cf00592d39dc9c3cac8b99627ea08f2c01798e70130fc39f7c90f11d","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","hashable-1.5.0.0-381171704673abf1d8a43d9af7bae7c27d52015e6bb4cb093d2716ff86b3cea9","template-haskell-2.23.0.0-c7f4"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c","pkg-name":"vector","pkg-version":"0.13.2.0","flags":{"boundschecks":true,"internalchecks":false,"unsafechecks":false,"wall":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ac338c8da52d8a37db08434ca4480fef2cea4f9aac240f4f994bb467f5275b4","pkg-src-sha256":"28f203c786cbf8ac6dc3fea3378ec36f34173d505fb4a1dd60fc8418ad91c423","depends":["base-4.21.0.0-ae91","deepseq-1.5.1.0-6837","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","vector-stream-0.1.0.1-50ecf8acf0aec60374ee526fa1fa98266d640daf89a5942e0a5637f1af3ce9c7"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-0.13.2.0-l-benchmarks-O2-2fbacd8a973de54f0ffde031957072c30e9c52cd9bd728ad35da6f2d94d3e9f5","pkg-name":"vector","pkg-version":"0.13.2.0","flags":{"boundschecks":true,"internalchecks":false,"unsafechecks":false,"wall":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"9ac338c8da52d8a37db08434ca4480fef2cea4f9aac240f4f994bb467f5275b4","pkg-src-sha256":"28f203c786cbf8ac6dc3fea3378ec36f34173d505fb4a1dd60fc8418ad91c423","depends":["base-4.21.0.0-ae91","random-1.3.1-32799ebf2c8c2dfa25f23ba32a29839a988fb24a6591cac266d756adea72e6bf","tasty-1.5.3-59edcf52ea0253f7ec7887268ce348f19c42cfc09647b726bfff6322b3a12433","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib:benchmarks-O2"},{"type":"configured","id":"vector-algorithms-0.9.1.0-0868983b21c72216ed672031894bc1aa2015f29b63adb735f9e1947f66ef0815","pkg-name":"vector-algorithms","pkg-version":"0.9.1.0","flags":{"bench":true,"boundschecks":true,"internalchecks":false,"llvm":false,"unsafechecks":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"ccb940a004509aa908a16fa6b9b9f4e409e8a660fb5dd4c88274c8df16b1ffbf","pkg-src-sha256":"d2b674676802670d8a682b357da6b6b5741b4a33b191f0ffe5f2b2bc40558eb2","depends":["base-4.21.0.0-ae91","bitvec-1.1.5.0-894dbc1458e6c578920cddadc3f8e4d54948ff717378713f39e084edef2957b4","bytestring-0.12.2.0-7dd0","primitive-0.9.1.0-9ac8457057b63fca93ec28b66eb6c252b6198b35b9b905d53689136cd03c03c4","vector-0.13.2.0-33f67d10adb3428a3df260aa9553892c7c758bf66437139eed48bb5192caa39c"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"vector-stream-0.1.0.1-50ecf8acf0aec60374ee526fa1fa98266d640daf89a5942e0a5637f1af3ce9c7","pkg-name":"vector-stream","pkg-version":"0.1.0.1","flags":{},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"483be6df13c72169a917640589666f9fece7bea9fa13fcd41d052dab37ea289e","pkg-src-sha256":"d0f507334bdea5431a2f07f525a97f29e76522c32210f5de6d5a2b4f1d42bf7c","depends":["base-4.21.0.0-ae91","ghc-prim-0.13.0-e168"],"exe-depends":[],"component-name":"lib"},{"type":"configured","id":"void-0.7.3-103ab5eb56dd906e16f096cfb98ad9bd3939fff42d98fcee03390afb5a137a87","pkg-name":"void","pkg-version":"0.7.3","flags":{"safe":false},"style":"global","pkg-src":{"type":"repo-tar","repo":{"type":"secure-repo","uri":"http://hackage.haskell.org/"}},"pkg-cabal-sha256":"13d30f62fcdf065e595d679d4ac8b4b0c1bb1a1b73db7b5b5a8f857cb5c8a546","pkg-src-sha256":"53af758ddc37dc63981671e503438d02c6f64a2d8744e9bec557a894431f7317","depends":["base-4.21.0.0-ae91"],"exe-depends":[],"component-name":"lib"}]} \ No newline at end of file diff --git a/dist-newstyle/cache/solver-plan b/dist-newstyle/cache/solver-plan deleted file mode 100644 index ba1c372257919c85c93e0a1d01ebeafd8279fae9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 677434 zcmeFaO^_T%mL?WS{1FL~00|QO?~VqW4Whd;EB}AEXbym?0#V%ns)#C(>~4;*kr9zq z*~rQ$W@G{=&d$!v{)}cdBkk^JR@$3%(Lp9N&0%d<(%x1VnM?<*<~TNzuCmoZYnqcx zW|F?=?$5(LA~Nd-te%!(U`AF|yywsVp1VJP{(k7D{N3Ms{a^mm z_6LsqclJa<{r39eG#)R;+uk@_+tx|C7Eb*i|Hab}G}>zdZ8+$eNPqqh z{>T64|NifOS0jC(k)C#14_l4Wa4?!aEp3gaW~skeID6qo|66e41=WIgWU0vahUs>k z(nxO^NLDKnl&dL}*=;!W0@uB|xE<|;i{t5N6pk0mzUOa;i@w)GQ+7T7k+&7bi`(*- z^0pU03WvjTG~QaQR7-l? z>+#LA|8)4LKkN;Du=!uzxxaqpfBw(@`1(>sw_)X3+aOvk>i_fq^6Kw%{bx@7(fXhK z@Bili{5SvWr#~zI=Y!w=`d|O~$A9^I|NWo-^EdyKfB2Vwu<@@7%mH_daVu|a`_tV; z{C}}quGY%6MH+1USu*}qBU2_`DF-}Ia_|b^oHOk|`?H^^X7CTL>|)MnDx6c>lgaMK zjK~G&6kwFXBLBueb>B{_FW38Fypbs&#yMaX0;J?d)?6M)caxB>9zX( zu-~rM>&-^H>(#`Os5)p-JVyk`OR7@sQP}l>h(aV7t~vg&~Jv_u;cey z?JCMQ+SN|G)^CNiR=?tf?RGtA)R<1iYx?aFIDSy=Rh#`vwcqSFt6shC1%cNNTg_(A zuk1wX6MxkG56AS~Xxg%_@qvs=aQdRjF2c&6?k8p#$w!uj++e{A^bO zuhp&BYSn7pt2J6)rQ7dR+I|Zy>(;7Frx&)H&1St{_uD)69% zquLI8O^jTl(&<-Pje6kwm3F(??uUNZtnv8hEk)5i)DOi%=l@ej^8uIFA1->s-ED6> z^d9e(zMc;JNBzN5$0;~sV>qSI=OPtODlF#MGj~>(R_<-Aa9zj!lj}V~J%#dt3+Y<8 zyRY1!k-JSJSH89Sr6Tm6{goh%TKSgePonXj!g(hbXLD~ij1|U31LHHAm81gQ-~wjp zaQ}F-KT%p^{yJ6K+6sDyBeO3yx9csxH<-kW+=0#Q>F7~h_IGz@P~dVW;<2w#c;9+A zXF$rgqH#Fb8YxtBX>xI)k%2m<}c=^@6pY5;DM; zcms$e7Fm9EPJgZ8$p)<7hhe z!^vzCC*sM@Z0Jc6;%0-n=YKu^JQDO%PtUJx{LR|u{{ACNpnejKA1(4aE^Wuw@A@3% z?&Kf&y1JtCvU4Ko{K;;wUe`eR%Sph+zq6$;KfS$FtJE6cE&EHAt9!ZhUox1YU0#CN%WPBWUEII4^KZ-za^# zI`X6Ka2$>%2?-5`RJt;w&>Dq~`tu`8&atnTb$1+R|>I|Yp(#yJ;dz%;~Y{=|Fi zZTREC?gX_u{|>`2|Lfiul2SOlF&=w+aY2K`{M$h19WIAm2KdpFxS&53sRQz(^A_Ww z?#*y#cj!$*wGS3FOmJoj>OAF=SivdSXVVDcR6%241>cKuah!j^RIv4ZHuW&Y1Mpc? z(BFyoA_L;wv`fSTRh$0KB^csd;1U=^%*=4$4<+%D|m%E)DpN;V^n~W2ZORnnu%DE*%XQ_2*zX9j1WMd@$-o*mpLkyVQ0K5!`CQ zoZseBm`w%Qm|~dqcQH2x#QAr*gt5Z!g-<4Q!7XT@wZa+f{6j8_G2-RF>`gpbSVP4a zW#G;wF8xaB%bVV4OO0Y&&;YQ@y~qSP9~xz7ByV{;gW&)z)c{e(1UcVu8EgO=u(urU z(w;o>skBDHmWhSJge@dz%5+|mbXG@%SkRx*4OvzK94(z-bi^?qc{l?$#3d&#Xs8&S z4BYvfTpMONf!-O!lenN^g7;HUC*+dgfqT;(b=!#x`n%u(1L7=l33PvX5PO1Gu@B*p zi^hStN5=(?Bu*9&40J|Z4huqd;|}f&1^rp1m|yYdGJ4%|9s#T^moDk2E=)jOMoQt3-+XFw70`+F)nBXabL(oab9H_7=l~F z@F`ttuoq3jr`Q)YQ0#7Lu=5(1#k?>usa!+Fyky|ckGV9~rr!O+K+MeDaIziYl+`%m zCOreoIn9)?58TD2bRYzB>aHM$!PgjKAIQaV`b>p7I~@+a@t#RSgT?%15uCGJ9)r!7 zRBvd>W*SAvX8B0Y6{dsvelQyNQNV|dhKMy{!JL=56h><0DMTwAYy)qI%MO0_#SRS3 zgvNTGHnW*{&i9!bPM^Ep*1*R#Zo8nrit|K&cP=tER@e$O5qorUKvo;Z1q~7_%mzAd z80F~1G8VN4iE=j3dC2834)>#Bcw;n*AgM$35*IW~oT@3PbBarXEMIa-4qb|Nb_*IP zxIGPambfe^Z;riD+>gdPy0C@{ZqLA-WiAak6gpl&RgOc5F0p90hKpNN4upi5?_DT_!8i}#Q10d$&ONY=@TbH;vqp;V~Bk+7svSxrh*}dt^zWb zlJ8{g8Z7q7EP}JZayHQU$6O9$ePc)}7a;@R@%Eyr(3%!B zh8XKy9OsXj$_F#3h>d1ITc0;9XzUMZ>E}{3@tt+1jtRFCcK|=&bSTLu;r7(WzR-i^f z-j3DvOydaoVFs3SmnmW0-GRm+@RsnxThO1yI!XY}9Rpv;5?^?GtNnuhEbtS66EHq_ z4+?$=7Iy~V2oL9@1_>UrfsW7R2pDcj2I7($DCQ>(cK)_e_ICL6)-duWx>gMoWz%3M z=Ca`3Whm-secK8YjUjk97suISDrmi-*YSEG`mKSY1!=J3aaqV8LTC^ZqQ46HLw|RE z$=Ki$wI?f4I4)?IkOxvw=Mk5r9nl+;#6(+?A&6)Uxg+M`I76m_`4tMCL`|eYVt#F) z6B*@jv78M2^$6+#T*3+(B+A)9XTs$Gq~_{-GzmZ&C`L97cE0Aa(B+f<&Yu+YC!x!i zADvys!KI5ZT@-WeF z3nZu%G#stMyQDa7EDY!GF$G9KOAj`F8W;2zApwbR&hIl8_S!@NVGG3tjU@KkS!m85 zFfFW=JGk!Q%~9?hxE*MiSSu;0^G93~TrSj^8{rVr6iHzkB)HWEI{!YG!zd*SU2fCM z(WIc^Vw7?)od19+;AWMEKiCbhITbXDIF9m>oIhbYyl#5&WDE;AA%JUOvTh8p^N)X~m78ebYcuV;Zc? z9llUMU%46K4Q=d_dIx<~Ur)oLxKd^V)K_j!q1$%p&5rIh3g>lY!wmzvQS@Xa?a3AF zwI$bwBq5g&gM+;_iS=?oRw{WkX@VzVxFX&2FnUT6@hxGaJIKJ-<{cxv-3w z-QSlP!z}(niEUC}XK>Q!Ew(x_8hmbU9cKxePyfZ`us7Xu^&G!&Z%wuR9A1mv<-HLe znRsrD3ST1V`Z(%iHhGMbvafzRj9`)PD$&?ozNv_Q@@$stipoXxMm&FHUp2AJ-d`%M zxTPshi@saJa%MSD5x;O7T1{7+s<^6P6{zn<=id=1Qa;Db2BEt}N=dq4W|3dMjh+24 z%j8n>20y=pucr{rKE6+VTv~EVUx3G_QYl3I4x`J#i0AXdojaf3b%#Sg#h$0}sZ?bP z@z)jB;~lK36y}Tm5RaD$uA~_4PEvTM@hQPNCn!$5@m4rd12%WxxD#TMMq4h;nLOcD zsf6QB<9fV2;Nf39B%3L6Z`=*hBsc2)630}!t1oDK+KV=tIqWZ#xCtNHNP77~I>FsJ z4qaL~yt$dYwI*tJV@T1H3H4eP%~@t|U;$E7-A@N{!0}_itMQ|Hrw*rpPQM?(^uN{Y zHQT**uL_rgzTfF~DxF@VR_lg6W`>JQ3?i?;?cNC=hin&HsPQc2;P81c7l{cJc<(yT zl%SNHxU1ag^NHh1$*|PZZTnmvNG@zgm1wpua{lm8Ofy967IP@5mRcL$?Szd)~|p}&n6>`z$*a6T132)Y5GMI?oGr-u8@qTo%hF4 zEY1)Jyx@imnYY!#c}Tm}LmH{nnfYo4LD6^#V)p=>*}Vs@K9h`^-vL;+p9F4PSg=~3 z;JqZ%h}TVAI+2E$`wZ6GCKjpehM_ALMF#cdD5oc<#7Bku3SL66S*ALBT7FeH6)79I zw0n|}j|)RI8tx_C65g)?V7)QS+Vt8?nDLyV;EjED0V&?V?_UZxS5?is3TYd1O?g0C zNH>5<0Pc6%562kS_Y7X5TiELIeV zeJD{wz9>uQK@>XyxdR`SvjDeL{d}dQcJfj*(`kMK{MBmPKfm(?umcb7 zOvNd@}{BhtzVIH4eZyUTx{^2nH%%=S+^XYv2^zt;r3R4F&hopPnrtuz`b zlspWg^JNOpc|)(&>sW5=mYv3$@%MXorxQ9X#rZne+2Oy0DY7h6xVJiT;fX7h`gEM` zj-$r|ac!7D1iVbj$TG~1y}iq7?Y&jG z8&$vGs`oTAomVA_$pok`j-V~)qhq`nl0Jbviw3<7C<=(3x!C(TuxvNp%EL0- zWY(^%oVfNmaFK}A%XZ(8k>eYo}x?PF_J@zmv{eJoCg8K{cGQ?lSA58eJx7Q09BK{D> zNksX@%2PiS{(pdz{l+*Nmi0Ff*a>lKAHhixy@N(Wlv!N^vQ(0lSJ!~_1NRpw3$raK zJp4U_lKzS&y2*f+i<=~ftxF#!mcka?C))$)8zB`9#Cs68l428T4IZh0IQvG2oxyl@i z;g4K$t#(O3bje;99&av<%Yr)vXN!vH^TDbhOk*rI@u%v7S|Th$o>4Qd)}-5Nw1S{s z^Ln*f9nRRTdcP5Ly1v(}RoX!x-r2kX{aaPyA{a`rs5V>B*K_A(4I?*0UiKIG>k>F- zD~V^~yru!nxvcGQ-pqo^OIQU=GY@_jPIdF(pKWN3vh!9BeS+U(0b{0%uFtc2V9&TZ8%3t-Uim!+vGvJp4M|VnrC}xlR zr`sYSt7~Opd(B`y+zQMt7g1lFsj=BeK; z)m`c40Bpm)9Zc%1DluV|lB2%hG-I5XBu+#xb*ybvXjn^nt(+5ROHqg*Aa+q4`0(@8 zOd@L_Y#VLadY5)2y%p?hp{_#~T^UVTqvo6uwXU$9*O6D!TLXBPGIe>ayOkP5Iad5t z51~Ri~`DIi7wCmxrSmpWaN43rr3j!l#{Nt_(G@$1Ji z=M4*Gl~kOAiCzqL#dtjnAPO;c$vIpx9BCOKhi!H3e%R+vFN$iCM>#drtEqV;10*gY zr-$Si{vvxyU&=826eeE`l2r;JhCj(E#}bY7i>D)-u{PF~$a3h|Q{89z=|0JLOiF&* z*fcsMmznrvZ6ER;Ex+4KTJi|?^8v13Q@vhgGYM5IR~y%llhhmD?r8|C0|XQglsroXTP3mUX-k@-e9>Yaw0!B zra^xB0{UUbIk!xYon>@6S?_05v;xLCtNt!8@t4>1moj$kc(Ojxi~D>6TEW4uzh6kc z+hcANp#JMEEU6dyzhy3P$+>5#Jc&Wr2a?6w4wxK?It4Y@H>vCGrI3 zf)WL+!ym|Min!Is9f`l4*WZMhu%2sCtH6cvv8M2v!j9pmbQ{+jSj#aXE`S#&_+Ic= zQRQ+NPq&f-_EjRXg2*?d053n-ywzcB(PHyd6s=nsJsyms5ji(Aq8MCo5dSSYzw+3? zkd@Gv@+RVOtxa`V(a?+-D|)8CmT4U_aRq`C5Z%3DDv%8EyP_+2XiGp^H_F9jr{I9d zA4I2aq3`s*JV-kAIuSFzTa6Gs6n5`S=52vamhd#E$`-_8Zv*3g=nZdShf}VIOhZhM z;%)vW7*%~U7+rJ&RSp>M0@Y6+%D2NIG!wdiWPVpx-md!NY5JJ3otOlO)i&@bMtoro~7CpP7l9_Li(nf5!j?;d)}?;k=nfplbo*hcJOR((qLuL(I@i zY3LoC*dr}^WeQuHdIpLGP;D{kJZQbfP{AQaf33wM=7WH&KjBh>bpW`v%wKr)O7jdrcqFu@wByQm9+Fi^XmtgkTm;{oZ z<}PkJqDNV#QVtWcPX)pDt83OqT$IgO$GaNWrv}aty##Boj`|VAHq8!VGcx2$NgacP z1^DRIgLqlHwl{7ks`VBYaXYi%)E=HQ8il-SkZ5pFy@B!Xu!!7w>71YN#_-%uam7wN4TvCMKwlsLEr&7-}4~GO>Y|Fz-V++q#ZrOW6fee?r7y%X|1YsHp zf9*0Ybhi6+zB>;IhFeVRoWvu^PwOboif`t=@v{C>hU*fSm3ZcQzbNqNOIfHxlGh=} zIZu5uz2mR)L=hQZM2%I*4GIGx4a$LmsIP3h1Hh6?lPAi@F(}+Zyl>` zL3VH!>C?AuT9B=VyZ5Z71w1*llUo0;3L-iIe zHq#!FUStAf+bTxDYV0RB#aBF;<5ggY;D&TWx&3IYtrQ=7!)XX-4zlWYhj=J+Z$b?w zb*JhSDE#qCzmKS;(DN*~ySTx_>X+(DQOze&E-L#8SJkxR?YX@WM#CiL!L%R}76#(s zUXexfb|4=v6rbP%hp0q^6Aa=t554N^lXnjQ0u+l8XK3q%S$rSU`x=`IOz|9hFy83;=?KkR`u-~tGzTfEk zVc++Vs;1LyG?7tZpzH7OV z5v+piiSWk@Rz9yN0_JnDe5q0Zy8M!Xr=n`LRO!SNNIrk5VnVZrun@YrypL=hVYA27 z&9`{$i8Ye9;XI$!9;5K`8@BD;0gN8)$x+P0^YR9ymzk5toV?#p=IA{8cv&{jCQd@$ zO7ek_NCSsM2sP~>sHjRWLQ$#`eE{ArHNB3$}>oOn8IJn)zntunm(>xWmXv zlWs$Tv~Oz^>TEo!Sj$)c^-{FEH^!kiaX<2}S~8W(|7w*=vxNV37m5N0#uqr?m!L?1 z!?yYda0@uqro!>y2jbo*o0L69ae)IV5X2q9L480xq8lLgS;gd4l>tI+JjvhsZytjbXL#DdJ zmaU1+s~Wv`4B>L2xNP<~nF{gShdBbG@?Tj@_LNki8@F&IlEtcU6kHIFU~m{D!%86! zQbFY%2JaCv9rR#Qh>!;2Qbzd{B*D|abz|g0?2wXTLN9S&F(?V!SofnItY*^{UM*Te zklZ^+;OjtD4tFt_5y7Dm6A_SQQ&AX|UZD|}LhBVt8s0nb0D}Yv4;=*hg}4bR7fvo> z7;>n^<>D&31nhYd7>Se%u4pw`W`^S(K@^cc;o?K>DZ=7{Ol;tiD1=lY!U@q3Zowkn zu!tXBb~j-PYqh$s%!pvb8sW+R2^@tm?9e4+eD=umDQ21dE0`if%_(JYnh8_|i4tRj z<|Cxq9!aqDmKNeNLQ-~7NY_$6zoJJevg)USd}4os#4c=!V0#Px6xR{Ry&o5gKO}!3 z#DTI1#O@=c77?941H?;*V^+iTEWoj&|9!zXTTm5Qr zjnJ`RsrCu{zQ7cMy{?lHKi!ZJ ziGsQ;Q9mY;5BJfldL2nY|BC7=_Y^Z}u5AP~ARg<906^1St7mZ$)dJfKO52f7u@A_c z8_O{i#@lEt#fF1&7dKJWe=_|J@OUm}zmMIhXx~?{_OX~J6EeETrh~DR%>`GYsPLil z+$+$}jwhLYK#mDEL1K*P3AT-$5K%1m#LW@OBm*%Z>XN7yjl7nkR?0dx#=AS#3Y?WyHfb~0eRGeNwBujeY6A&rx!grhk zE4ygoF52O3(Y_(C?|y_Oj}b7Nh3;WA5Y!gOSBwWmbb)S=>NTb8-b((^O`~hCym=Pc z{QC-Ny44OUI!~L>^$9*+XHR@N^jK)hz+O~LM*&%U3a-Gcupz&&KkFl>$^t>W$1oCe z$=zLe8N%JLD9)3_B|vY27%g~B6pNoITCS$#3RA;mMrdQaxuMRqlLS=1*Ayr>(q9s@FgA8T!@y5J|!)Ky%WvKm8S z*ELNJ)qXv@pvYxfq;w(W8yicj90WtT z^(5oMNHk>@<_GD#+_SOf*X-EXAYanL_`?Ec^g zV|NGz*o=ua?*B7%ZtFIuJ$seh;crdxmg|N*d-|O-YW^u>@@XS$@;tsc+KZ%fAMbU_8ax2~W+@=OsvUG<%Gci$c|D?Hgl0Q=pdb-H2mce{d6^iyno~q+g`6 zTHbkOHHCjhN&vo7Fb>ogT7M*;=!PXcIN~xS?iBJ#PF#ZGBJTF2pNJ6EFVQfi>Y_^( zb`H8!!D$$3k{xfClqIYXLNpeHdBYdF6mN~a-EF#8(Ot>I#dY`y!TF*o-r!KzlWjcy ziAOt*>ZX(cN+%XR_2|t|sDtG7yO?-BqekUks~bqyWcaj_!xb*VrpK)aHv{)}R`Hj| z5KnLqBe&!7AmXb!0^>ueA_f||IJ7YI;6<(L6uKZ>Epg$+yJ$Qq`Q*G#J;UvHLTNyt z$C^%x;}EaZ6iW(1Mc^XlBh&^$YoeXvajz7oPQYqTaZMr>kU~+6!i29UfhS^iTRYF{Y^EH2y zuY>YiM$VUBaw%Y0I3#g->5!#R%o~fmBPf6f=xKR_$?K2>#;`!&#Dt}rmO`*W?~2Y_ zpiI+sU*R6kBz0fOWgNxLmr&&ZXN-(|P$fV0G^&(QO^7`v(kqPM=77kzR{EM94S6d| zV0M4y<(i=OcR7a1_e?`&LpIc!wAwHFJp9-e_zhfN~g9> z>=)dG%TgXU_?O2RhTfCUreWeZ_r1BO1Z1M$pN%QUZQUDaYh8ZbnM2;TZT;>%>JWHT zD?XfuM*MA>z|TR3S@MeQg80E~%IwF;H<~%9WLs(4zCE_7H1IVHUdr(q2;`aZ< zm^O(Eycy`$#=z(Cu~-NsTYUNz_xY^$7;jOBw-B%=N39E<7gz|`@S{Az>-&p%6#)xm zV(iTpZRbg_2a_~;zd7hn?)u+7*4s`|C6(kl){wZ!WZ8ik`5ks|SI zipLaso5P(2Pe>xb6ds!JC=78QFcd-vW=io*SD%ob6=6~daUbT12wF)onuler!nE-QUcRXikXG`74A0jMTy?_cF3xf-l8xM)?Eu@Lcwn7HR_7G)L+qIpKyIE z%Ax)0GG{Cy3RmLr>nq#?ZPAGv6P`vV(JrCjo$|`PTO>VPDNZ0%h~SqlCh8tpdk*Q@ zY)8D?e06ytJ)hDRViX~?vf>~-(~=d1%#3$cJvMW6Ps|?rPl;V;aLa(abn(bn6nsOi ziOcQ=E{^h{4MXXR)cLa7m zxZ*T#SQgdC8M4kDdvczwE}o%h6?S-T4sGc8EqQ;Ol|kD@n70?;{87~VSHe`6G!A)M z!v_Q*Nc%d)4dcziqLKP`MUVPA9vE=!BB#z4W#t+89H&nn50o56BqT{xdVDb+2w4QX zCSqhJaVQ}Wzyt|opy{NeO=|+>c>~jw!R{1wl0+a<&ydoy$fH8X5{?uI6;O}}2Lu@I zu)^=O^a50aVq~(>dc#wSFa!iivoF-op8tM#TAtUcRgDKv7LauyV?m~j;KVvPQ4${5fR)#ccv;+M z&27hW@+PB}!*R^U&tuKMR%d=@mK1aF1mVojpyX{Gnx|&`!b0=xGyj#H$q*-Ty<9Ez zgML@hxe!lw@U0hXYX@gz=C{+G`t&I#}dp`JF7XYtOrWn<;MWU?0> zzGu+T6RM^A@*WQ__snr-$u$Ya90^AugqM9?hz`WR;h8s!q;G= zIPD{=({*IIB1u^VO@=>PvARx1|dU=Ifi34StWRY8R=M}DD`LE%bv$t zkMSTseD)=4W)v^*q#%lt1vW3#%r^V|R0WR^i%7Sa1^ducr3BV%4WgC1gD=~10 zs_)x1TpI;QvL$NEUhTQ%-F!)cQhbVKLQ}ceLzeNy9r*T!0e>Q_4YYL#B2pzj^i(M`b_^%_Y8mzyTb?i7 zvuTXtkKt;IXMdMl#6p0xuUaxlH+EeLJJ+v% zj29hg9t^vb=?EUm@Eo|0}_xu0_^*dB+Q>E<9cDKu7V4YO$QLjdzq|3VC?{N zboMP4u?9Hj7>`O>yp&va7hQ(P4)b@-IC#=pU)xyy@~cIW_!ve#6h|R5*YKOCpcdD^ zTD(ra#AIVavw?RsGIK#{9J09op{`6fL%qc0G(N?rw%x;wA zQ1Y5r4hX>*Nvnk;f3~gJHcDF&Do*c#VgO_!w~4E{LAa|UoJYc3(l^1_eS$TrKDiVS|Jy2v6J_>#HL48$z%3DL@Q8f|BKt%ndA) z!pYlJS?MJQ(IVZm;zinDOB86PTj~#<((46#i|NHElLTYy+oI($`J@c(YCxJvynmtJ&-HYyFB= zDV|e1F-QGnX6KEXV+Hefx#k$kPp}%AdaQg|y?)xaF^(jxR&hGdKnl!{wOr>#i>BS4 z_i|vF+gXYLnU?Fc^;+-2Gwy(QZ3a2`^KEWz+|lRf8aU^LbUqgz_4)VMjN*%AnJCkI(3O@olr}TZ z$pylQxhTXK`hv)qbA5Pm3=ffDcI4g;M-(%8?mtQ{<5J#|=?)vHDf~zIS1pof5NN41 zgfHnZ38bs->j@qse^r22XM`{k8Bwk*zzkdFP`M&}aj(!ZkNhSw6p^-LenVw&Sa5F) zw?f#zEzqq?wa4{4?G_A~`$4PGM0n?ZyI1jgt*X~*H~O7!r>hTOcAL|QQ7BI;t~NXn zB9RQLLTDB7of1YsxMr}(d}M+*D6AiDVT_QUyT#Gfsm?LF{;r0Azl*#+R1XD_K}b1> z_Y4wQFbMPoZ2qkjJG@Vb%s*x$KfSB7C@{{kc(opF-F#LdgXtVCn1(K`r{$bzYZOgNq!ccSh`1W4e|giu5{V*UG!S;%I`5l8 zoQX#DW=>MUMM3yDzHX=~bd~deS=vDCG*Zr~(4JEJ$Pq2+V5PVdbRZ(co*i-KdQsVT zs~Y|<%jR1-E>hG6836-E`|hJEf{)dYf#5IEWd>V7L=VF*&=*OK}8Lh zt_cOd$f1BCf$tTy@>FP{Ob-u?XFZLJZs~ zyr(E$B$P#CXbppqH5w<3gFXx!)vkvi6HTvM>vZ}sy6RN}4|brfPP0>K>4Tna>O^wA zTTnzIZq~-wzvCf-Bwh4*`ed3sr7SIP-Y!ECorG@LKaE9Rc|}|1^|MKr;d;(h%XEVl zyl-TP+rREy0*ZR3UF*9#c7V>7N0IcY&w!!Z+%B0U(P-Ca(`XVNW>E4eDEgV&kpXq$ zJv|Kl86;E%B5Np3^b{&aW%!4*9M-gpJZ{MRgiH_IZT*usp-0Ddn91!dXQO()t3F0~ zY018kA3$Z3Jy8^c@EpCZWTu&usTpdYU-(iuTWxcIt$>j2GEl47W33(8YPvkJKB_w(zqPH_h zMG%=vBpE?sD;FQoFDigDu<^3)L4E?FdP5ZQA6x=M`I1O|4xgg`|KA<`txlW9m(`CH!sYv~s#WS10f|7DDJ zlD+o*Tom{sgjl7Y2@yLJqt&?cTu5D(ca`MMe;wGttzc;6W8=K|TM3ZuPKBgIg?Faj# znv~~t{^tXI4Y65|0%A}MGu|4UJaDArNjNrVi_&&t)12~z#Y1l|JW+mm4{_p?+`Tz9 ztO!#HCSk8UL1N`=2HMOdfVZMyKz`2iP}H@ZQF2;&i%=rHx7Zvh>ya3=6qCeb_Hf7Frws%y--|{oJG)6+bJ}1A zipygYEE(hk;EHlaIF(e~zEp~CB4jp~&uPH=IC`oFGY4*E`nDH~pf2ELGABu*I@)`q zL<=dvO*Bm+&~ck`I9D2{FoM082x^;SBn=$LCV%EMeRGO{qfEs<93&NJIB+~A%QR;m z>2w2cA_*~k=a|+kyi_bdCudm+dd7^*KrwrkGeAgNfs{SmoE)zB9HV12IEQ~fH`ppw zL)e=_{R6`}T|;VdgzoL_L0+lJP^IDQn(H@b^NlX%PA|`0Cc<>^VLOn9}ibxPivIw8*7TMgFpqWax zG*0Lv+Cnr!%5h(3Lbq4e%2N|Zx0gpKHR?~32-<7TK(O>f_7qrY zGVC2(fM|=SRf|4ZJ98c?(gh4}VVv*E_+i{5d*LaCWqC;+9tft%c<))$m*AN(F;g;1 zf@JSLwm6Z-Dl@z9SF2qd2sx?ctjL3cC2CN&q_k7F^udf$v{&+FX!wi7M$f;GO z#>$u{d$ZuaV1YxohZ0c?lVqmohVTZVy`LP*xLwJ z)_{xK2Mbnc4d=7YisQ^htJk=3HfNfRGf#V)EeI=p(X|f_VBA{fDl&5~FYpY`(3W6>KxRS| z2J@NbK6`ace*TZmg-vs6s>OW5k#I>KBr-Sli3w89(!>o+l|pb#T+$e5b1g~{kPNw|W1ToWB_gdsdK*R_(%9Yc zdf`wHvfZV1LtM2v608B!O$eLZ2D|0P322wQzqwJqHT1T0g*IPlaCs9sn3%TRD9Drg z5}bi(MVLKc_u4U(gv5bH+Tg`GDhT%HKx@*J|)(i-3|x{-)Bs3rhUoH z#NJTSGLOA9m3u+XrSU^c{?Fo-Zw|eYzEq{UBYekjW(_nir3OtRB*KQhlvHhW>_Mxn zcdXQ$Ng8)Uy;yCLSP=mnsuhy@%;~koSA{B^zVsDPb8YU3NnC5jY<80t9?TT>vJkMo z9vgeY02Fo*T+|*pK&2T2gRffiM2Bj59aoERycF$FLRW~qahcYxHqBf(a0&R+aW$z{ zP&MX;U?0As6$CD0OP@o*T&(uwZbrNE?ADWSa|jJQ8qg=BSVKu;PiqRPY@g++9)Y06 zY^g~B_>Q5hwuL>ah@hHxxX)Q4I2|-&Wr+|pL&WAC=&i_RiEFS2UiMHb+cb*3L4JXN z-1&tGQih%aCS>2tDvaHn3#TlQ6SJCJ6LMK9RYsB0#>pgKLP9wZsdS+@ORYGiO({Lw_8yi5kjWQRpJ+O;L5$K3_Cct3zyY zM#A~Fk~>~DiX~6apd~VbDq6N6qiKDvHM)7dS>O09jx$%utm5-zPn3!W``Xj<*il? zI24V|!DJXdBaH`etpJYHT| zkA^Hm+mkOT{M1bKlvl-FZv>4BFBkhTl_d75VN>KuP@S;XtSnF3|FK<-Hi8`;mj&Yh zCjwbY2wSNNLbsNxjaE~&l5K&W=h~0al<}5r<90w(#>|YRChI+E&6q(mCsq~7{NM?H z{HtZRMcWC4Tk+!UnCytkyz)<|_Rf)i=1LFaNet7;O1YNl_rX4JyZ-11qjNX|#{9_> zW|It>VK;f-=BaO^TJH9Qfj&nB63Eahm4`yaH zNKoeS8e`?-P<3B23jdtz?#W2Aev;fTlJA%J(kZP1$RKth^B+5!Aob7)p=tUm3I^FOB60{d2gaGoShGw<`obMV+d7hU zB;gJw-*es7z6dZ9APtZBMD8>rMA$$spGmPd#YQ^NKYFET|$3W3A~U9o$ey0U^d=Id^M9PLQ29cf+3ZZpaTGtXnC z-VEy9s@Lm>ZLiy{*1FYtBShkaZs;|_uu{{9^~-9O&QWzs_EW9=HuU0H%Z!e=)>tVE z#h1I@R-y_O7d!E#ylhyp2rU)4mS*2CUZUC+NNYj_8S!x)p_#Pu!T3zs9+}HD^=S7C zq;EAJ%`#Up*$cX;vn=eq$Sq)c`X{fqW63l`MzX}-IR^C4YrV%P#2h};P-=b@Q}EOv z(@+Yb6joborNhB!3(UF&t(?@%mH!LV&+PsA=(E2vp}%wNQb3xC#raPkXPo^<&MTBR z;M~n;J@uK+Q4iw0K*Y)9%m_)W5YkX;OXl2tgvfYt>X&M_+cE;>EfiOF1~}o? z2g9L=nsp6kg2TPt!F4~{j&`D9RNmVAWTE)e=o|Mw;-|US9!1}j$N23!ymiJ=sgHpFI@t7_29}81uSERecu_#VpBj)x34pTZd z6USBd&>WE~ry})_?{40a5x9I@kfpMh4sfW!;EAAUBRe65=og6y$s^&4a1TX=6x;hs zQJtOpR45uK62cECO;TSZF^c*{Q4>BP1|Ag6I!r`5-CaAV1%9Je>$KawPSCFTl|FJ8 zRch^SSZjtx!lJiS&r)&vZ}`Z($K&^!QW%uQ5Rz$@J|W-Af^4(#w`~NW)3z~QPhkkl z0kfxYSh9Tb$O9r-oa=Y|^Q=OAOQ6KGi&lV0SOo0vMK#^w6cc{sms| zldh*Kmq2r3Qk64;IX9^;DipH^@7lAgFzhbyU}`b6cZ3599#M-=JFSPUMhTDL)2Agm z8oK3b4Q}{er`DluD4QvO_xR_b#$yzvKDO`f2ha!U*-(?u6LI18h6b4_9W;;Z^9zev zvmIIY4Y9vZ4H+;u{mBuy_TX9$dsK*-k3++y1++I2@R%Z8CD{^0Jmk6}aqxJ^2gl^reLN=`vW{hXpm4}FgkumX z9!WgYp=3!eTf=pltR;0M;8=t^)dJA(SjwASn5+!~67!Tp)2t}SI&A8*MnP6%kxJpv zYt_3!zu)co&1$C}_UgTE+w0YOUKq6ceJ_d6m5xHn?cyQk6psA8EFQ*^kj7;Z;+U~v zlL6n@9pr$ZLl26cT(P*QP|BgjNqn8jwiBzt@=e6Er6e|v| zp-Ih;Vg;TWXlPOhX0peGh35ZuN`YsK82cqAn3vRIesIbEKZh~R8~R24afUQ=WX+H! zY^+q~gJ+d#m;(+i)BMVlSsXoz>9K_)oe|h0S#xtjd@xcj3eBz-!5H&<%O0c;cN5{s zNlymzxa$FZ!9_S6l#x_`HCtTZG%neRW41e6t;O+4xS;s?CZbqSoEzvm;YSS#Ne1dr zu33e)B^mip-at&myAU40a*H9%KF2jfsQ4>!QG`O%5|xM7BRnTXZiviSQ1ppfU3yg_ z???(J?;(mA5>!G08BL0$_QDesbYuvMkN9TWQAB#SvMXAJ2yA%6qL}(5@L^0;@n@cRlW$g_8TU}XaJP;(`&Q0~Ey`~*M3y6mM9ry*yZEdU3s2giC6+Tm z81BX)9@Z&mHW{PHfAi+}X!b5lIbne_IOu%5a8cc7oOg8H3C0@=1IAIUa;*s)z-GVM zNZ{hP8Aw!LMqGF%Q(Y&fw{8sI<|1E6B0B7qHz z6aokr;w#&+$VV{ozz44k9Q5wQdjwk+I{g_H(!)aW$@akCrbC|63>g7e*)V3fClW~Y zLvm9C5<20lZukinSzJ(&&2!zqqDN+dZ%B6tX;wqm=LR~J8^(mOLV%yfGF9@78T>tU->>-5`U zr&;NTey>q))Vh_Xr&)(3_o7mSEG1dMUQwUaBr+4RoKKe_nVM|kzX#y9`1F1JA`TU%}jFX^MnBbR~!rG`W3Ik0fO+{F>% z^{X94d`4D83H{cyh#s$9PX3sxuQNoMBPWr`t&CabS%n#%@n4NFb5?T*$ss2Z|DF3W zpLd*@sX6Czm2(oO%TvlqeilLxS2dH@7=c#<3g(y%C(xNjWCnm}W+bEUZQN6rn*ocX-wYDB>xWplt7{K^8K73t_>IHUK>WrGnJXq4 zG8mQ35T3RVe_q*4)%wv4bh71sxH+DNDg3MR@NXfRX}Z8CW`S8lLoqoXBEv0yD4Y3I zwf7D}g?y~P87L>~Z$cVn{m1yGhcw73s-GT&>gw7z105jfVN7u*D9}hBIkHmZZXKQ+ zw70u6sC{;LYS11>@>+F=JUpn?A)=wAnz?a!!pMM%L|VZratrs7EMyW6_tr)f8zx2i z{Bec=A5P=#Bp_Le+JR=+poXU1 z#hYU0V4ZtXE`5Wu1-r`tF~rn)J{N!WkodO_iNAbE{4cWjjf1QVnmjRqcHi3vEsJeA zr+D)q#UWTdTabobY8~~Q9Q5bhbW%c z^&cN((xhF%L-`|zZQf8sw&RD0%!Kpfp%(uU3Wy3#zLt}+XJn$(#c3IKJbxlmneE>u_hTGCU0XZNYUy~X{!n1SdDvmjkt z7Nn~>pAa ziu1v`=6tZO`lo8-=IR2lhxxdxB1Me~T}Zo{|7c_6?Z(^DBqhSkQa@TKGOAyTZGRkzK?u)X0VZb}kZP9gJPvOBcjr zF(Kk{j(*@I+c4-+$(f-Sj&OZOVounPfs%{H7Z>@lmjvv+ zMPcE!2wN_=KY(NR7O6Na&IU-oDP20LAdJsk+!%%8H8g8B8bvx?6eKjLXq9=JtPINE zCx}8TA}K`h=^Pi0a&B)r7*c!&Qu~Vj5-vSABPN5eb`zl!f)IvxL(vrk1uY75IFpLJ z;lNT2Va+Fa6=wrEJW9)ZolDANRE`$LVNtY4w1oz9N6?)$qDVwK#Vb6_;7BV$mUG1` zq>H$st=!JhB}Sw<@|hD{FYvm(o?mZuTdgj<%B$^4v(pJ1&9L69h5f2tOJ^0&Xs=04 zY*NN}Fweh_&lGox97s8(62Rq6D{S$1W?|hlV@^5m%|fI57S}iv$qdpvvsqSs+NUtx z_>Cms=S-X=5Sx?oST%-+)v0uh$D!(-v0ZV~o|ih0@j>C*p}iK3 zIZ=Gg)A8Ev4Fi~WzVJer^^;Gm*F4JQfDj z&$*tj6ncW5>6=*OC)^ko?nw7d2LDPLNLPy|<&7|OuPF=vCr_SO0-6%mNN`)^q7N1I zPh`EYb}N#~jI8RRoagsq*qO_0>ZuO8^=7}*@Y-HjZ}hxoBdAnxs{5^4)oWI~n%CFd z#fSJs4v&xI2~u?2yv;-WP7VyGc@QqM3eWjL9twX$Feykm6t{vYzR4h?HcCa#aCZhg zW7C#P$jJSj+jKks_uF}OS+TEkiP-V4+35AWvdg1r^6Q=s$H^9T{JCse&9S?o2BzE% zdD)JSu!HVv{xnexq-`w_!~hAEaT@sTJ}Ykix&?`^=P?QiKe11y1B5o1IeTg$@x-~e zH)f)m6V2;yzn@xwptx|QM!7~2BVo=Kb~&xhn-mkH_sq${xgp$ z;28qO=k_#yTh;Rrd~4#yNt!&zIpti!X~5Ly2!7{`DRp3*_OcNya-ZpD>O7r}b8-T= zG18#CU{FcG=LrlIN);hhLO;+4gTlywsRHd4b-PxnbW62Lwd&p+@8Mp*c4cEa91b3P zqXieR4q%n8yNTe2x4khU4A9qF)x9wa#^Dq9PKXdsh^_dDPq$S*>B%(;{(at#dkxB3 z;FgCP*9?Z`QrK%3=NW<;kj*`w)?sBZ2{GE@--qdDxz~D8d>!c$cIoCf3iG@Lzsm|9 z!+c#y4&clri;=412R9HL5{5N}3P3YZQ)^a)kPVDAR0u2mK9Ai!uWRwW4pl!%F226i5i%3G&D( z5D1A1vo55m5lL=PAd#+x{1p~l>K9}!P*v&`D40-NfGoc5*HaJkL+`uN!*H;LA=riO zNKU`CSgCtk3P%tU(ZU5WG9^;^NUaVePL)v6eLR4x<#sd-OLA-k0*R!Iz_Bf2_oEm> zD^F^siYBKdnFN)wt7Ora;F2ypn{P zh_A3>Ek?*vq!voDx^uVUVyZ5`p=s)?Yl1Eq4gpbFc&DkR2Yy)K1mv#@ot_MAia#-Zh^YqOPfS4MdXJGg)kX4U zXa-?$3Mx|Dw+MnxCAfvTn z55fe=Hqqc>0QX$1oNc#{+|O`I%}mdeXiV{3rM}Nvwjaqj&;UX+i2DHYWQaS#0#@1< zX+uf>h!rOU?u8;OP{2v3)Eft`o+%6fEgB9RE4^yuw8U4THw;7Au7>U}2&**kr|baq zn;-Emv@KVmb&*jkQ*1|6>S~dW7{tuQY67(<&`6iiGKyG>uQU*lPl=a?d&MEL`XLQd z;QoRJ5Z@^vjI8eC#YON*SO!IMNcts;3&r+Tz6KR(8WylK>s`1x_uDX- zZ6gLts~IBrN~hiLw|e@(V}a$Yo=UZWI_LElN&%shJUFi<-#MlU7kMiSvXckBnjqZ5 z83FHQF8WdeNfHtn=*VvIVAAJ@8M6_1-xp?-OzC}tk^;#NSUE1=$-%k_jkXc7?)$S* z%CJX}p$NIw59c7Gg$T%tb4y`jo=ijEN+ zv%4OI3iAL{OV-Dm zIZ!hs;FTG0eK4gaIj`|V@1STKp*QxmO?2KuL^OaMn@{r=BCsAKCIGW?UN^~Rk>Poh zZ8s&4Z)nl@lhm5eBV}i-${Qoj_yoC*+myHbKF47d82!pyevCsI3?UjYxmS{zG$;6y z{h9X=E@h0Zm`2`Wupu#uF)|j4-h~*^m;`~yOPS%uUM=9cTq+@{4f|rM6Xw(!{Wd>e zNQ&6Ab4oSGC}-q1Gsc5Yjq+VQc_!Iy^Dyp{z(-d_@h@*%6OYAOJE;)!NUg>Hi z5Bd=Hk8rI&fNCr63dvW|=cCGF)K>isTg`DGZ52<5;t-yTS4lm^u)O=e!k_u$jDpO5 zE19j=xG0^@@e0;~PiDP@K*^li=UIYl&5J&<-|NWCe$EB(XddrNTWX?&tUp5$_NmPw zhf#!C%)lLcR?Qc4iF4c!ZO&=QQ=~OM3r!h&dCg%p=T{!DYi9D6d7SI)`(k)7-sUMy z82ThBf5`3ieDcls?G*yUZ@Stjb$iJ*NMWR*L|&@{naUg2aLFHrd(g8%p9GB$T_QOq z*DE&!%>5bSSpY|sIgOih5}|9Z22Qk|s}et7xgpc9sJpC!y|W3-1q6*3COLEmCS3?! z&-rq6k}wpuTk*YC7*>OxSLxUK?N+NHZ zrEnc3?U|tRiU+?EEym?xAmr>Iv9?inUW*1I#_P8)M@fQNgyrN;t%OPoXKf5!nKy)_ z!=vFSk-|dzZ0e1T2ItlGMHoIZ$*7yXAVc%O!=Wx4`g?hOZDUnGQ!80Bfy%c&F07=u z1iX1;m0?O;BN(pzc*A9YF?bSCUfo#hv?{EXFlUGn@})gzECHY#Y2KYTGi(24Mp^HMGHq9kU%C>MM8~qGdri2mlCfL3V z86(ErY~{_&Yb?#b8VM!6iiXhCC)a4|v@v$-dYprJqZdcR=_E9eKQe~Erg{(N^~A(B zadq*@Auc%1p!|cGl%W(PvD}()b5iYgNM1Dvn=@jgKG<9`@MaH~z=G0PjqL0`2}IKR zDa^T5(?}^iV+!stXD9PTZTvZ`f)%ncP&1I%h^G~HDH+xrY-X&~tj(`N(>YLssO5n% z%*N)T*15=^t!Noct)QYd?z>Vn5IZTb`eBCbGbYkTS{;#o7}2j(WyX3|h@vT0J_%zA zEu1theZxDJtOpbHI3p9VXz@JMc#PM(!-qi7v!VEiCjxmEG$>DaQ|S5!m;2?hC4-d`TjLY4Tb3fR;z}Rix|HP>i5!_Wyzu--bKJI%FZd?GIu?^`4@{nbicaH?@D;YULQwWV-MyTcup0* z6%=G*7yB6)rBgNTb#)exwaU!(Q1B{kXgvJS~U8bn$QR?EZ3bciM{=V?-!{ zp@g7V-k$6XKasW;Mr=i8wi*S{9CG+BqJSdOg>P?6>RsR zJau5KAzqe+pU@K#R7tZ58|;uxE^&g2M@b$uX4NBDZYUc8Xary!fR}h`9(~;&M+hcu z@?#NV61mYxGlbdWC#)Fa2;ru}ryk66!x&R_V<;YJ=}BXVAeM+oX?8=5A59s(*6Uu# z`6Jr|ild2M5XN<+)2Kq zE+K~~*?H+_WKD%y(&@x=L8}rrs=nv@zE^A3yPbZc((ZUIuhMPxdhJllfo~}S+WqDR z<8x99Xwm1vN1QS8)qx&7WS6WrxCM_^d3hNWG0SCeQ5Xt&H5 z$6d>J$?WZ|zdSb1-a|CH| z|A#drfhL|!TEa@R-s!Q@ie`D0+YUNHp>%EBS9QIzM%jx;Z4Hl}Q z&dji(jFN*um1M3Uzb*B`oYC$YY@DZkSPou?Q}rZ_%0c+ag8TX45d!JD%hN~O(c=-) ztqj6RzZ7^Qg0S4?NhPrqC}6HLjL>VfHdnCu`vY%lB*x zVoxmG)FC>-W|O2*lJeqEBu`OtH0~xca%mAJ;*Vh{33qX2(m5b07&jcgLeOQQjAElL zh;X~YOfniFbZIDV5#3g|+pTun-R`0*nuz!WWDx&J@gs~TRlK^gvf@%`G;!TZ((g(A zu`8@b`Y_HGLM|CHP056~xH5V?7)PTWVdh{crk1VNB@6_{)*({0>Z$g5qO z_PSG;>yBOJ_{3(NsjPbNWvlmtb~|XaIzhwh_FIU7;rrdDU+MIFp08!hlA4W|WTP!- zD~G+Uga=kRv2W%Xbj?Bryv*)djCjdHT;|x$4E|m|*r3RmZ_mKIrR}@yHtDLgE?mpY zvk*mRaXZ(hY46x|?!gLr;NL-n+eB{T+=FtUmQ9qLPNcePVc!*gmE2uUH<(9PV&;(l z?(FuK$)t{nU$F4Nl?-?{4alkFy$p_MBS~kYEhhAujWixd`mNLk-SS5hej9O8Ab1Dr zIeXtCNL&`@w2c!R%2AV8Ijv*=Ly4A{pxN^cTjDI^+am;&9P;)w2n6D)%-Z0TjVX)m{8Qf2^fV~4KAd*`q_R_CfOtJ~5O(twJEkSZd%H}bFv~T}6W!y^5 z!uH<6(45Nbtw1B@RG8`&l+E0$i&lT})EQ6oZfKW!fFqGh*<(SFoaVi#uU1yS4Q|3SK92>_xx3Qj2FZo+jo%zToBD^QGCENa`EisrF}JKUZHty3pM(9)qxf6Ldg;v$Cw-Z5$z8P>>)@B% zOfB5GXT99=EFboA`%K1`N6fV`J16`+W`duzI2CQP$b1&#QBAaeXO=^M01rX>a+>_C z*#b5LD6okt6FGNhb!p|^#!7jjed@lu?jd6*<=Mp3Ah}Fe>*D_%=|0W3w%2xncHNKQ z?iJDf6Ay-pLx;(N6W4d)7Gz?{xl$SFg!#3|~OQ|CtD?1}&;L zpOWq~7tH;6MWMN)=?+{FmFwqY_-l)cFB~ZSf#Lr3k8U8@s2EFCKx7w%TPNO9!Yy1~ zg+*x`d*Uh6b4THpc+x;p++A4u!2iufWH)*dl7I5+4;3GyGT{$N4=;EE5)CTi)sSo4 z9pb`G4?qGg+;n-cPu?{ybv$>u9iIQOzy#B1{H~tE4`=VM+*rQ5Qr3CRUV^7He2s_E zR`M;Or(4IrNRP)E)0IRdNGSYz{Km~c5s&>}j~2~t1-JE7=?lCB&c=Ht2nPcZ@g&aR zFSTaDI-Czz(&yG_n+xFTZvw^s3!jdIb^-ef=)Q=$GxZq*F&}Cm{`&k{nAe|QpJx6Q zw1fu+`{iI{)SqM-rH^L_THcNs+d%xa_?0(fW9xYlyU-#%391I3njkF%D;BsP^LJXt z`m63DuXSs)da;D`NeJD+UHY~f$(=s?l(LJF6@{XFa)Mkw>US2G4!*OUy8QrIUuY9l zacwYVJZq9DSL_r&n+}l0XFK#C0sRE;ngUBBy+YGj>cc`Qq=*neEC7*5%Gf^Nu@OsO z6LCbb@gLPhA=M+B`s=Ae+mO^Jv(ed9ZZ?Kl3;q7r14yHwXY&vPc!KBnVosn9B8q>f zL_9%FU4C@t6i^sWVUd61pZetB6Z?8Utkh-H|jI1_-Zm%19oq9hE zJH1xFANJeTdcE0bcfDGOhZ%$&4E$EFq9|Xlh6pF@)oXsU))LP(Rj&s^y`bJ|AirJM z4Lg3X)vls^qh0N^YyDPOYxOH$*lyQ@MvduIyr$m{f#V0&UbWe;RQpK4T=nX8$O_7TK8%VGGXd>Ds2Q$?6(#Oa#dQ5df-EI)^4_ubU19*czjMU8?+X;VS2WRWHQ~#9oUi=(aC%<(_!eKj?|;!nP`9{LWOM{J*aZIO;7BpxS= z$YeB-An?aO?vxRma=}%`~F4At->MB^iJZHl~jRnkJzIVeOXr6I22Q!y+`DFR(h1t=82 zkHVnAq)d&NxEBIKQw&Rjl8T}Qs4z3*%p2+ZlKemA-ykQX2x z1m+MV4jUZI(U~hUyDF=@2GvzP^#IUgv(Zv!`T=*Lm1L%cRx-PHt-Cm;*H(KiwAEIB zK%aZKM@B|Q)}zrtH#t>CqBA2r-j9rM|J3V^Os zVct`t(}F8T0=g3(1k5IEt;D)YFdEy$U3wrUyB7qhM6Zj5q8L+Ol8c4lmT%Ie9+`>UVH>{;2Kq;2nAtzBcjY<#x^J1zTc<5J@8 zf89#AW2ob{yMtbQ6Ltl+tJ~)77C8!OG=Zif7OJKtycM|)0SC8*OGKYdt*OSx$754o z#Ey~zn1Lx|HAIOCJp+RXXX&qbJWtmi^LPOq8Gek=rP3b}9$=xG2qIA0$FrI&;_QUr zf($B|Ce`D!bVJ||@pn$>!2Blg(b(GojQLOVI#5;cotk2!c3 za83zSDab5Y(;Ou%1PVGnh$H7ACX+hZm!#7H*%{=Q%}xtO3gb`XN6*Y-6n)j{<6GD4 ze`4@cNqnoFzMw?6qUaV8-D0ze&*5=|+1Oarw`e1UiQdJvTk%z_+{#9E$r{c(IH&#NK3dMQ=5g_k^9>!Di>9)-Xi>8t;Mi2vp^;oft)HW)GbC8- z_1WNRX4zbeKfb&^ZNJ0v(MsFDN@D|lY!AAa9X`w~wGq3->6xE6t+hQ-P|zFAvv{qA zkW32&(AGBWcYNpJuv-79<8;8Rxt!56X_6#LTkON>TqyR*5r^ntox>Svhd!`|(R&K# zj}zF7-m?5os;3g$I%~j$sfm$1-8yV9{(v5Iz(2&zt4`Bpu_DTx6>}z}>2rbxmp^5E z>b1?&#D#!Y&CSjy%-A8n>Gm_EbB-oTr^H1*(vuo`((dsTqC1uTluF<2Ml@kEo8Eum z`HH~v(6G-Ljv>PAK1^>HEy*#Ks%nS9B}LD@;ZXzZPl;^6kL^Ks13qK(q;gwmn{Pi} zLrC;mR!-t(P0w$%@V8_K%v`K-br9_TY^(i<>HE?2fX)->!RDGv&l6PW zX()dkU%Zrd#PrKfV>Rl_KKiqL0InJpOh4TxkERk+G|d!Ea|CFbq9{){&$ItGLvlQz z2yh}x5jmt%X}RJEbZJH&u!Q4DNWJ7pZL-9RQ7-^2@dQ_JmsSL`kX$ILJHQgiTVGwW z6~`nsE){Q?=piyLLokt`D~f6X5K%~AsvfAa?nCb~PDxx-<#0+OfsJ5ktAI8dEhLRd ztSt~E^vL1JXd^OERsbxya@fegF7g;8fgriK8&rv8`~-Kd6IFu#l4Qigw+e+?j&Bg?`fB+X5o3n^AzF!OW{kVfk{Ub0lU@71HFz{^# z<&Nrq+u<}Wfz@QryoG=DK4MS96DzJ-DI^IFF6n6k1-)6P9omp{fXMdK-;>ubVnX1M zulkzBm{BOEPc7OvzIx{xsh6&h58u`JUY%@0#<#2SKkcUdK4E^@y)QiWZaz=j00aZ- zEPd^S#5a40-J?jyH?PqBEKA86n^FcB;0@a)dM9NuY1%o{P!oDuhw>aa@S;O|4wxiM zdqG2q+bEZyoQmt|jDT@bl<)a02hxF+d>wUI!VzTb%HIaQWP;)X+!LmtTJzaBQU3O~ zIDX3cX0HeLu#%LdLnm|=gfw$Y$}fPZX#T{icB{ER&mA>uu<3~765G6TiLJ3yczo@q zjTERhM@<$UWMRf5sn6kD_Y8KezWyd{^vG`N9^8fCp~1?uFmToW;!Coo1^=SbHWw6y zW*+!wkxx2OMTOZr4{m?;#l0`T{vxC>>lbXRq7SolO0Sj-Ee(*L!!dc+dJV-iDUo02 zGc)haY(U_Ce&*eoU;B}-`CaRj(@;C?GIN}gvD9f#_WHX-coI7W_61~c(vb%`NQ4|m z+z6j}Z$XL^gub*tZKw@6R+XX;4QdE9=+NKsT>wL?eH2a>+N(s ziTtDjQ=2$3!A4!Bmo(A}F66NJspqesRi5tRxCd;yiPgg#w1d*uTftYzeahpX^7xN} z$Df_QWoDzyTfiKIEuZj(<-Ck9nKf zu-Hy+gmf`=Gx2Vwa=&!h^{>Pb$k_P-9=^}LAHofAS@k2i3yv&>B`AiEWSEJ=`0T93 zNvw6lcE>AC5a*R7JkIM{b=iG2Yv5t zw4~+Tg$;0;El;4wMJQnoegr+uu18a&THsP6hlk2d z<^+_%eb{$y5g9^!wzLr^WZO;B50ul&}ddv z&fK+dMQeL|nR;^hxn20qjtn8TLIjis8){IrZnTo^9vJQWak7Pz4J+ZP3M+ft!3?j^ zeCCpo%-P|fI|mbptOdyi)Y0I1`oA&{uUy;dcir^Q;Dq&i^UF){-b7>KbxH7S6%RR7 zjg()FA-gKsSBc{ml^m<|lBA4D!H5tS_XB*zG`ie~<_xhOh~01otOq?@zKt+gd0mC* zXR%UWUft5tbL9sZ)KjT7D|C4%_qB=7xRWFReNYc{apJwK1(!w*D zSe#HEG}*^rT=99(lFP>)YdXG}J|h-&k>7mTqm&FT>~%Xv)zT`-vSM2~vsjuZO0<-X z$1D~$jwsO*fhf_MM^>UWk7t!hL`t-hZv=L;jALGl_SdvN^2QfUTj!lY@XgBn<5-Ex z8Ozt4MY%J8Z?w+te6duIr~I4S*{opRK4ijOYzbf@V{0@%8K5RjeSqI5<54Sbn0=$h zun0e>v70IQm&i&pIcD=y-zWHMdB!@8BWhi9yPa7YzfgVN+^yCIJ-GOioXHa=M zhw}ce^Cg9Qx_ak@+C00g-`jj}c@1@;U|yKtuhfsxoeuNYtKYcY3vP5)Q|sePNuQ8p zv5Fq+pt_Qu=ZG$!Th5czFSTUjk}6NhCjrSa=maZY>a~1creYkHurLC>nNJXOQAG)~ z&y9;-^~;pa3aOLvWvtPKl4KhbV&e@xOpIm=m2oPrR9U!0(>%1JXTy%igVyW75`gnF z@8Fv=N}cxb8>`DQCjs!eq`#;Jy4_@7g#(aTmJ0_M%V{JOe8K=F zS!&3BI?OX?v2#-=7-A*>aSpDY%~f0h1sm1VY9Iwy!#&8@%x8(dtLv7M$QKMr@SpRu zNiNpmP@vn~g7cc^ti(yCDUb@}l2%gL6sH>9lqqEffU>0eC*h!xDnT*|lVyo*Kl=DL zXyM~)G*-u)=_fGQ!ksAMn)3S2T3|<~S@*JcB|Xm9%2BE?{eF=;p}dIPan7V*BhyGx zB25aZT9||?hAQj*=V*l%fsrb&l#cdvI-9vy)}hns?62@+Ih`|Iwc*mvK6ZT=&Rj;C7r^T`wcdQ1!AstZ>a3);D>r;tS}w?clf;3>nB|p8)GAlVp+)4^6^6HLyIpg{qRT7XXgFL|J8Q%;4$~2( zI6o&&RNk^kCr%XLf^m?AvpQTLk_6*M^~y%tOkt1HD972TtfCuOHLOM#j9W8`bHTXs zif)h)pH=LF2^U%6ZiG7B7~;sVoW>RFhvd*0l!COF2TH}|%JDl8qa}Z{dNu)?_nXnfM$<2Ve!vAQp}JwJkmHXEJ%|_Ok%`4_w#ygQoH^fB zz#^myVi21+NJ^rAOKJ;_s8ZO!AYEdxh2(0Daywj6mzb~{^mBW`@Iy_w{>!z!&TmXA zwau|Zh1RdFjF=_uX`awoCR^Z(++%L8IcP|hD?2{GE0fxp;1Y`pox({dshcmcJ0&~& zhpVt!rGYS{go6k|V`u?%J1z1sOHB8WgwCufkIqQJ@FgJeT#h0naWk^Hkz_2G3s8+J z%*1n3l(nxSxzgN-+N@^Qj8V~8_HE;oxwt|BB8eMC32|GIgaQ%jp+VqzjY5aRgg^ig z$|jbSm3i;rBJZG3FntUR& z?D2Zyq}3GE0LCDS_~HIxXw200=6ViE<m^!3ON)FodCyD#xN z7e^6=omut+-3?4$Tot=z-~m)i{LXnTQ_ouMW8#v4SA-zXl)lSGp%mVH!i0`3yTWxy zFno&ZrQQ2$FZU|4nK2?r;zf{}m&U)#pWO=Wt(fwajfIsJ&55}aW1yBaD-}l)6XOJ= z$oA)m9(^I!l^Qk|s3F3$3+iyavYM90N=$PI`D}jWFfPqDBm|^fNUzqGeTu$-CRBMmS!DKfC27G3CM-QX-#0Ee z8qJp!%Th0u)ej{arIjqrdVPPiTMkfy1q+Q%YfI7IymXs-?g8~&_5Q;@NDe>Ghf>VS zQuTg9GU|Py`Du`b57I($#i3x&D_H@yrjyGoRFZkJ^0hj>I$hb`u5Z~q59dL<>ciSr z6Btizz!UgvdDg1}qgqmorgJbY$|C()phK$n0h9u;OLB92UW=@L@eO=@0ihr?ABD2{ zViPWhgy2^}g0%lAg=gaJ^nNpK4JF+Sk_L-)$J=(u3GD+LQu3f%YR`DlGUXZg z4yyg*KbEALG+1l%ww3~C@%0q$%}X*;`W$1vg!aI}ilgIi7W(0ISn)R6+NUE(7dluV z%6+8lCP}cGb{#%iQ1QGNNLw=Fe9$->x7wCSoxYV*(ATIuHiCKU3fa|ZrR7AYT7bWo zN1q2olTG*x@jppmN6C5F(6>PQ=l&zJ`W`?P*hNGN`(Eq$XDGPhf zM-G?za1jMxaj^BWvDHwgm{}3}Gz;Kxv(ityyG^kEC>QEEoJ-BGBzoM#-MvSo68E^- zf@iGV_~zbV3(|*MaCt`WggS?htZzEINgGDT(!JJx@+^sOb`fx^+o{06W)%t_9rclQ z`BCyR{=9=L^7dA@^GrY9Qd9e9!QS)X=}@rk-?pFO3k9v8J}}>%_Pp0b+h1)ygoQBE*Ku#KN4mjM=KmCoWG`_K471`!jQe5dMK7)m zx;@xi*#*#m+&Bfye{TS@KD`~|oen`e%{mB3l_xT} z%&{ngy)Q~cj6Q-3sQ4*12AFec$KQVS@DEG{)n*`Nd%7uH{iM(*MNQ6qsaSi+=CvPu)Jg=|IUrX zGg{JaeP_5jmZ-G)+Rn4-%Y>Yb3gO>oV(yE zwtH|RSEY#{dD;EzqW}#Oz>uU+jwF}~Qn;thkp#3LN_*pIBeY)59YKSB9_l)twY=fw z>undj2A_acoTK?^{a@>$S-A@i422j&q|W7h@X!HTo0%)Qy^|4LGzaCoAzfvu&(KaZ z=wcod;LZj+PmNr?Iv*@}SK< ziBuA#qwuTHnt3YQfBt^`$uLqR!FKCzGFL~FKWet0Joy*Dwr}cPd*uT4rF>LM%2v|z z+S6tC-;(r)7pyfY=6Liow^%0=qIEtsXcKR7`WvSQwA0?t@51>L$k52>o;j^RJ~3p& z8>cR>k49U05(lTUQVL({GQ!s#u9ZDz-|76#4WAFKr|A#-mVKdZ5L4ve5TxIR@sA3J zR)rIEx-dWQusw9DOOolIA7T$oF}za@?-5{l^LtiyuaWIA`akZl5uV>eS`9{$q90&) zYH2q5D&SxOj1z~yHXC^fWB!3nS6!Zs?gacr#2%AnHrfn$o`{Drm}aB9j=u?0BK|!% zziAf8g~0D1T&R+)4$hmJjlOKwAP~s`Q;fR_8&$avM+Z7|u>hcFquT+G6S2p0oQ)m< zsvr&~vOYKzHs@^gptGCqL7r&qMkP$j&YX>y0ac+}my?m1A+yme4uC*BRW^-Z2kHu# z6QiHYYAYERP$_`8UQXiNob-meGaj|QNR3C1g7PdoYMwL<=xozIDumM04_LXUWc9m307#g3B1jTUdgpdA!}N*!oj3uS z(y&XL#y<-2t8L~It5_n$v%i*wQwE_K1j;;7sGmX|{4~!O%4d?Vu6Y}l2{KcT(P3m{ zcuD!39vVqO#a%pTyfS-yVxS;ft%@Y#@h;h=?#QZi=LF?z8FC_;a29E(cPK2EOp9~U zk%O3gJwqc(j1_m{igCCKJ^*Slk1GHb0GI5Gom%DVJ(82TEy33C6djS3s=0lcw6_P& zM@yttWTTIAz4tP$4UC1T{6rU?MV4Wx2~h3sMmb&Uai6Q=4b;>>Qh({ zke36D?S@4&6>fw9Xl8a`G&GVJ+DWY~-R9c4K%+t#7&fj;SwbapaT zxOnr6Z{mbd+-kq;#OF_T()f>`&~@XFpO8b4b{$@4dd9N|CC2AChONFq(n9P$EXj2m z5kT2{tz@4>(vVF9ppSDNwC;LD-0UJdfb{ovnlo$dxpJG)JI?^)11CgGV}!GNJYm`)*y_=?8rAEa994? zSORyuD-<5=Le>0&LgkTyYo2R<=Eq-@;YgqT%4bj#jroyFmURM*&o0h5(IaHVuQ6*K zoYKEjw&av8c?4|9p(hy??VSGqUWqwruJx~tMLF^Lp@eUFfa64V2G=7p|2^;_qa?or z9X(3&dW8c?Nsb3Trj+D2?%~CsXYtjo zx#Zd{$~C&hWyKWB(Q`FJk<5XpcJ11&sNach*#d9DyQsmr(_OyTgtv?Y$n-sw$sES` zYFgc{#<%VPteKKO%Hjj_y5xYeFqkeBpYTPT)=P&X7?CdlH+u-S$pE#u{p$*c2@l%Q_IdaIa8=IwlIKI=yR`GA`L5DkM zH=W$2&=<2rrB?gsRnlr6<$tH_nJIhb2-q{Bvo0p->HpSq*~S+D7&D7JTaX;i2P@ya zBgYUFV9`1BWH;%>%o`t5ntyP&t}IvJ+YH}wC8#tU(32W{%seG#sSj|d^zB!2W^^LR z8AAldWZ0=Qj)$H*5k2zc35ZVzr5wiTGm4S`9BlNp#5a`5T`@*7K9n&BE*o3}*$Vmh z%VD*0HXIqqW2`a4vQyP~QH%fjS6FUTpM$89yk~|LIlwWdDDT#QqP$z9iSlj@CCa-s zjwtV$K|~E0#|R?z*%*cp{hLt~k=Q&o$7l3I-T1;Y{mCM71VYysf=21%C*1)#1;jO| z)@?H4;Rg5LA)MW*4OPzU=+5x2O-SjCO3R`(9GnK~xziJ!GMF$om@?zN(9Fv^J47_7 z3xPSUK>wcY<-vpIlGqhv*n;VQV^hpaZKA+6SpY<8om0b>A|)o#D52FvUTTKHyHoIe z!*nUOmTGnpq00tkQZR5C6VKUtXp~cfcL4E1?a@NXEURK{21+4E&FUgslk0Rbaof)%IasLL^W{KSCT_+qcG`1h4?d`NR7fIZTiThpW-~NYA ze5VT!J^%I}pX1pQtQvxE_Hn)3tabXTlfLI>7vF?-@+}fx<5pR1r~S|7qC%GO%|GoX zSWNJt_B`o0?)v7UEO)5*qonF~s|sWJA*X&vRjwI`8Q7e_kMv-1oHdUpvqy4=D51?y zMf*Ff#(`tS3(85yV2fR_nrcoUY+Zu&MCCNwQ42`>ZVW#S>^GKpGMx72aBWdsVcZhA1zO1EtfRupu+Fa zAyBfuC4dWisz~cMA}+3%w{J0eVtrQSa)3Q!49~>5P>skb2s#ea0D}RBmZ_!bObPo8 zru1sWD^!l)>>W0{DTrg8R=Pjx`viY2|4)GhZyPB5W_363&GFz)9<_EC`J48&egg89 zJieR`t-b?r(ICSWlonMVcT=*$k#841bxQ3=yy@D$9cG!3w!`-FlBd z4YaKliQbo!Z@(9a{D>p(33SSb?U`Ur81pav7ql7Rp0x zK(JTZl01HfTWIw@zJh5NGaG(ii|zcWXaYQjrp`-aCZY3v6E!S6aHd#g@i8HXeLqxE>LI}olF{EOJ)C2VWeo?+k6qD`EA8-JV1T~W$2JOsZ( zKb(qBInGm#^AT{Ib4$_k5_E}Q{1=b$4E`~gG*Iqilsd73V;u0~EixNt5CDCgz8f&T zrvmBfezMz&xAx;5x^U=S3C)y>O3 z`*l9Z4c2DnJ{;z?*3H*Gdv{$M?migKs~f`46JCo8=_%mAcjaJiR3m$V4pK~7-q^S5 zU}<{Q4oY<3IE(yU$i>_D;$`v+YzCt_3BGTygJdO)s-V~=#}*CoF@t?E33D@;!8jbx zpuFff*SFT$+wV5Fclw!}DvpOSp@UsBk~2LlRe@ctGETQjas24v6OG6TKh@%c?{du) zDMB~8;Xxkp0BRSv zc0+aoS61c8qPR9}-2hL-DCwwjGHWCwFfV2jdiqX4)I|Qk$VH2hgwAmW#AyLlQ0Qd5 zFY09#RCyOJlDW&qQ>GW9hD+I4P+RH2u6!DkiX;-4t_wQO33!tUcMMHcWHo-zWS2s2 z4RC|uuHrAP9;|3}%oztgkR>lwe~Yvtw4T6)59}J4q`_Vt!9wBM!cK`WT7n!Dp$Rfj z+_(_`#EmbqPu$oN?uknhV4g_yFy4uf3}KxJMSw3NoRe|_hjAiAMZO6lhEHPQEckyc zH$nN6lZs1cEDw}!Gne!xgL2+e<|x^G2Y9BEF0PduG>^6%tTXxSfmBT$5ryJLseymu zdkbAyCu!-L?*dgiSCaXe0z+3H)KvVSeWFEf4t6D-3K2BsNz!ho+PrtXnm&0@Qrc74 zS=dXJ9WO+*L)+1@VaMY^>lF}H{mGT0S?1kRLn8q{R>o}BV!Kbt1! zoKNcpI!+;gA5LadXeQd!Y409p@1CaVhQYSy6zy*B@A2KKyo&zqykgY&_n|#9R%$JP zyHkaOndQY~JZ12Y{n_Oea(8JG@`5X$Yns*3S3_%%Ke%cAvcJv*IMB+<=XY}}pPocs=Bt>})zL44i+ob8k zaqR*5Oh(>`%dhTqO#L1?@^@WiA2wtyFCOGGsm(aF-1yW*(Dq@!>2w;_J454iEB{Fa zws0G;84EE~FKMKe<}O)eR({scDo=O8GXuWP#Hwrs8Z-s??a=bxK%~x<%l5zrZKDhm zNi}etgW+~ah)H;;(S%w@eZRCr$)TzQ1rmI>B-#r_N4}N2%V{o0^;c_unj|(ljyl}4 zmOn{tmnxopvcBQG+KT_pvnRMGaMDukDAP0A!7~n{AN^~CnaaKym||g;*mwtnNcReq zMnC*fbfpQf^aWl-dC@s$LOEIJic?N)s+0X2;5%^SwA-i~?68rR7dn*;0y)385aj)A z3NL*6I-&=(y?X@cUFZ8m-!K+Z>y9*gs({^H zTAB5suh~gz*2n4*2OyJb&iatpRhR{Uv!cv|){Pji@K5Y|%`w&)B~Z~*)>DpW8o?7} z&-$1)FFw9$q_>WC@N7gjx|^+Lf8SuZ93l9u4>TM{nmp@63dc!gM9}EZJj88G007#M z_snDubiG+0H=ISmABv!87(@k-jRBy|=Bzp(*u|fD7CG~1wDL$`)5;@(R4b1JZmm3$ zP;6zfjA<*61j4O65_q@r$hGnsZNRtyW;FUN``Iqqs1h=6HUx#EBt@A#g?@AI_T5MK ztTrgQwFraZh}fdx=q2+oG%kpNGI#7)P$mM%xe=4S3JOpo7W(cQu%P%jes$Tu$w%Dv z9Gwjd>W)_C0LeqZsmr500MJyOL2cO#$e!3m&j!B}Ffd-7GYO1&nT*apAp!I!vIOw< zCP_rJX({aklB_~a;yMDjj5V7;oQL%+sd+$xh3abcI?CY$P+5>9zJ${zL=u2Hxn7)P zsk*eHX>#&Sn<6HIr3+P9>`?baFvOurpy%F$8Ngj~wBY_s%{WAAhSg3zMvh9rlW1K9 zK8rHOsuN!&q2T~pP=Q$<8_QJ6wp;raE6J&n7z!{I<0`FbM`4$c>bUktWD=0A!-_Ru zVhxa>7hoR8@sNV z8}&|~<>&X6$<_z5nuTyY_Ul_`m6G=dR~lL^KEB@+$@MkX9#5Hi6y!pD?E z038#I5o}B_4#=2bxWUDQqaFl<1ruZXJ`ZFK(m#1%aV92B5voh+hT<;m{Lwi|GXY;$ znLg0Pg5nJT&$I;Kb|l%4lP&V!h8+q{|49=p0eO^oDOHn!!lte3)P#BWG#? z^_-{wEA!YDw$tyr#1dk`Eo27l2U zk3xHG=+lQ3D;RLz!u5-n^|pKjn5|0l!ugq^gdl^CXA~eX`Gke863&|qZ{*!Oe#kTc+wu4YcPId*}Au$?1bn5sE{}@og z=N@2a)E5esE1JKDY%*1IcLZT@Xq?d=$!h5s>N);HsCF;@jO*34_J8owWU|GiU8vt;N5Ci`^bH z06Nd4p!ouMd=ut$kVCa)b8v2&lI))+Oa@a|w&eKcZs*yccdMSJds`j2pJHQJlCl2b zu_dEW0;m>y;}lJXQiZ!nkJ9_}Xlct#NXaydvV2Ldo3ScCb~bZ`XMf(QH@BhiGOt6W zRm}aR)nJ#^KNQ@ddYO1=>z{2xM;Ij5}Wvw z&!IK)iTNZY&_nK%L8ecB&uKofc8YGq>n~%dDdCHj?smHSbMau0Y&0#eE-bu^8wqr@ zx-fV21g4Ixp5!o_Nv2Lxwa+5;)&-TOE^K0KPW$sl$e4#2v}K3PMTn)V_{oG{if z>a+;0XlU?UU8iRDuEnsL9dDsEDQuddDzMTm7nYd07-VEUv5kMhcv@t{oA8%5*80!PQK{kbTq?KEK!9hHLxx9`3~r}cL6 z-9p7ozu`RD=^HB?-+jm3g-X+5pA2o0Pc}4lx6|vl_StMy4|Dy$AOlq#2&?Ve?Iwmc z!N}HAI8dvb^TZB8gW&}Z8IhH&I@<7}3+1L>bkz*g;=-@v9zfMFqg9Q*ZW}vT$hHgR z^LBlX6V_mJ96lYPOVoPC^Cq(mA8FI2x6rf2;YX%uvqMSq3UlI9s2V-lArojYbKXe% z`%(1U_+vQ}_dh0M>Sq2Jv+1VdJRl7mRxxBSkVPiF`kV*LSY>pPax1NoZPmD)G@rxJ z`W`xjMp=?17|mww26f;*9Mqu()RixGFh$}Qux(=W>}5t1Rh#_8H5)jyQ4h=!dE0cQ zpK=T8>eUDuQ1Flq*LO5vCMk`5yVI_~&J!0VTB&G_`sA5*Zs9B30>+uu^ zuMWkM2`|iFc6B#slOcFG+^eJRy+Nzro5KvCd4f##*`|FDF8QFhY#M{HGfkt1q+0>-=2D->w@kf0ULyYaU+vF(A({bUikI zPpz)T4=`h~N6ooz3fQJx(rBP#;$3t~6UN$Nd|-BY*N~Bq;0P59p`W7fuuH)PznKa$ z9l_aS?+3E&^k_zowQX%ZkGGzGM*Wi+SsS*^Z9T7mmD)!Q?bByby~FdlgEnAW5SOg7 zNuz>eR)r^x*&RQNuoBGBJ6k_(24-_N3#)}0+lvxj@%!02<$2n`SA$0#8To5XzD}&D zFo(l>KQYJ`CUgrMZXB=zTvI zf8T6lmiGCLd-3~PXV5n9;yMB|0EP&$(~)6Z++dJ1EnNJMPZO+1?e@$Um`c18-@pH` z>Zsjli_ht%DXmgHmcFybZG+_@J6!uQNByoN;^>FyIb1=K{p$Ut$DP)`R8@6lH2BG; zL|BMq_2I58D2Y*ho_-c%Q)StC$|qUBYJ^Smwhlq{ky*Hf8c4WJk(Kfo+^@&b{FWrF z^akU({pz>qN>20n7OQk_-ko3?8n$Py3wL1rx-;YsctN6F}po0|=n{^8p(ZLutQYTAv>XhZ6@G%YS zviI@-2c=zIK25aX^Od_enu&w8kSnztFYASBI8mCFNgVVeyv}WJgwW zBIUC(&SfXyAtC$eqO~nig$}COi9cVFHa}uWUe_M zlchE``#eofIeu%n5mU~W;!#p2aoSx9ju8C{MwuYCDufGSlde5wH?h7fAfd6 zbDvZ658$+R+HHq^n=YB!gZ=jqf*>_%bkT&~>FmN%i?sZ_3H#!XUSWjjAv2wY=v_m^ z{7Nw$D>1VsMgUn7__hiBhGm70-K1RjH;_XK{W~uGQxYvo#AS&{3FiZWR=&`0NP44g zgJz^5nPH?0Ch@mzn0}Fj_RkwTCfX899&{f(DxRk*L%r%b#lgv-NhP**&KT)2e*lyr zN&TWLbH*IV%8!~C%zaCwpn-qu{SZE41(r#n=d=f> ze~+dIbU@rgQuzwfI!>5M$wP7@8>e|s{~m1*=zvUgw3;l@RG)IHPk99Tls?>4PYzc$ zjK>hehILdS$)h$DbngNH%1K^LNE*Vmkw0e?`BH_gN z*1Q(wZ66dn9OdfjOpbWbk>*k_LP4-w=<3URe`Q-RgQZlLmV7U#of*Y)`nM0Y*T1P??etJc%iFSxlDkG}< zrhaBb#~;e}a1&$n{h?+C4>I};y*=l7$$8G`*{6(2U>wTm^Afa?^*Jj58mO5%e7#d+ zTMxY()T=JgmEJALmFhjQ{`)v8C6qBkRSBa&MHUs?-voBnOexlRpBzAIs@+Hc;4M?w z&uO#|)!pq&RbbJBA)6Vfo+3(B|H$hN6vIg)&#L-aKq3@JVF6)*W67b0Ojto6#y1zM zs;q7yhnz%nl7klKV#+`+Y#w5yo};g>+3VJ*9eKq}ugL~D5Da{>=>=ODZdrIS1*uEG z{=1(*f(!Hlv-QX=_|^+o=&cvbz*`E-tB!uX1VvdWIN)CcXC)FSUXVj=n7ZrsZWwb1 z9PDVL-ptg1^D_d8EsBm3rL7*DkML&>*TZ0|Xa%xnKdaKyGQ36;<(EmfwsZAQ$@8RF z>o)iLPT-5Ax4W#0|21(gg{lTHN0c?T71x22i++;my*TxgH1JoJ0AzM1ls= zCFeqXTrvgyxM2qJLm~MUWmc2IX=26E3|U~Np_G%W?>*KEqps)P9dntnuwoaUUr6T* z16tt#DteMh2URH1HKyTJV;-W7hZ;9KBAR%XQlhaYsIaP){p%_) zozOsKXWMrxYh$tD7<%@aLqsaIMqz@)ezOqWX{H}$QRDy&YVXi_zh18|Xj)aCAW8ih zM_T`$9BC@V>Vs;3Wo>==x+ZdX;FM00cocmlgBm00a%HW)W%cVbOdC}*qSCaUB2uLA zOHTDQI+JGN+R^x1tg^o%Rn}bBKXuBp~p#?XzD7n3MTJwHW+eptC>SV6rOpaKwqB zG%HS=+1d#?sKv4UMWXs!n#C!?GV6=>rM^$_w^T*2n1?MzAB^_Z9ZY~tGyeHB<;e0p z-J5^Y1~}?k5GL~P0%OECyR|PnH3@p#I2NRV`c5Xg#K<2z1M(bsv^aOG0fA;VYfK4n#5sU`12%J7puPeap4eUxz==!fm#BB!hK99Aw(Xqlj9g>mn`1``A~q`{N|ehJYYil^EEuqx7#oSbhFz5cNb5$fE(#_)7@$<`Ai!0womOfoa^hD z6h!nj+F)WfDVpzf3gE>Cc$+goW-&I53aDe6C86#MixAWEn zy#ySD-J~9j4Qs|UO0qMigruFD-+b}8g#X0sZ`^rR3a@_IY^RB;))?DJlI+gIdy>ky z)Xsvd4_mFlZWB9!-nxt_B%wgI3^0_`AG&2~T=l``mm}hTFY(66k>t%|CK2{eIm5$} z9Pxwh8@YZ`15i@8+?d^g{V@s84N5kYa=|r2`6z)IB31PIx!d6w#p<1%ZU<(@V79aG zvr7*$rH{BTCoEn!b>|X$iLy8lTW-vhWmVL=T%gZ1>>!(Oi>1zUU(P)NQSTV*AZoq2 zQ}FV)x(`hkwa$b$_E#C|<1cDCv6b_a3XTA|4D1poXWn+&rAv55)ESAP7QC{TFH`0)VG5gsxKh39c>`*MJ@*`4ldi}akE;fCZrFoim*$KlV z9HYyoT)HWj?g+Sa{;g6M^ZDP=vDf%aqdU3$%=sbuz3MS(IQ?C!E?3v0JFMvB5wNR= z#f9k0yfZkHnm9=kVL3@0qwJ*HgZ@sZ>(#}-r$z*>Gl(UJ(x(dFeWM4RT}Z^X^X(n` zS{r@N&VZh%qczhkVS3&1xP2U%zv@MsdH-%E{n(e`=x%DjldM^05{nkeD_o5=pWI(_ zBN}mE&ZW?ou`ba{ocsF6y>A2=jBRn{@ZV zJu0%;;s;6Z85k@Z>xec};ciMc{Q*{`AM+H+OA0X242O$XL3r;avll9lI(4uOnAEvL z37aab5bv(8U7;)IPuGi3ETrBzGT zu17Lr<+{|v)@_KcY}J;~2G^`ht1C8}d-CKG4O_1+UD;}NX~r0j@|EglR9L6}wMgFW zwaGrbvh1MXRZ6dEg@{pplfDW&r(KCXpSyG5q3`W?o7+46`0AZ&@Tjz~0tXxm>(G3I z2a`vT-GZh57isdxUh06yUZK3~QA+Ry=9-fZeWCywwm@|r=T=;@=tqu^>|>dmBWFOC}1@#DFl0$?Xgx?+kT`Z5N1|v`*6@gGw9VQv?#1Ljc z(3;fexwhFqpU8Q$Jb`f|EGdWqeL`o>uL??V`LaB>O6P!arz)tB;k>?ACG&S6De8AS ztvPta%28^80p}RjwOQ7rv7f9cLaic2RAU%rhIC3Yxlr9{;egL#e;f3?3E34pIntn7 z=g;$-eI%i{2y)vJ{H_&;SogaUb0sxkt={~DCj2LL_rVX9sM0?&bMoHX znEHPk)t#Wf0H}+E(5M5nH>_+#UcHf~~;#gMlL#QYnWRZ_rB{10zLD zYBl)MAu{B}Cl*F__aNaTcU;EB6uBjWM@uB@_E7l4MvVF-5C+!c7r=WrAv+}}GE_Po z3^m&T9>Z%9yFdE=uG1UeN4A%)ko7pY`>HseTBWmoI;yh*Nke@WBKtvg-F@St^(i*U zhtylteY(F`-x8N)C#uRuBrEWW7hJv9*7g2TAgX$&1t-js_Gdo9gAN8UNAjUh@(>=; z`k5%}eLtSJoU;7Qe&kl+13&$fE`-W;$>8VV*jx<@jX(}<*vEF-S?CBulJ(Rt0_7kN zudO8|xh)P=7#ZanWkj+v<}{kP{$h)_vV3Vfag*&NuwlpJLF?tHDikV~&0sI;%*=Z@ zDxAT|;oUdhK&|*|)kO$^VOhw4Pov5KOqXbFX2fTyiY8!O8?@O8il{AZ&cCQHj8NOx zxfECWv?9pG6}EM80BaJel%=F7Q_CQ__lMb_%ngNOG*eqy_AI`+8%)O`^9ZTXg~^?#)tbpDhdh_x8!?{peD zopC%KbrOWe(aa`t)J?O=vQfC=n$EUD170PglT?)FoWT~L57SAcJu&fLU9>-`JZ-k& z)wPR@EcrUF0LR~f<(@XO*YB;7Q?XZDIxRTOknd#AUvz1XG;F6lZY+IEw-UUavNn zPPX$vi<;rMx<=$;`pIQIW63&JXPF>|-P!6!-tz3CV^P)+8N0Hc`V|Y(7GaW>{CdOn zyW%jc!Pz7a!SI;#d6Tjz$BPfJ`C;g-pKLYZO&Uh>=;tu@T_dv`Hwsf~E-IRAH z%5P)}!%IgetMtOuq9DvzhcIKYDD^OQR=9HJpF+Zr6vVZM%gL0xp0|LDD2;%TMk8mn zGFt;HnPuUx18uONh6Q6Q$f??#Smy)c0X9y&nmduun=6lmwZQU704d5N$!=g-EE^Im zk6fy*mq)G)i(IR&m8Tq1-3=J9BeR80_mKjU^e$o{ke-d;^thXdMKS@8P?Ah$!Ec$o zf?qRP1-&|Q3VQWq6ckjHPf%z;Hern$)~u|6D2pZzM=_qW^dWw;6U(MU#eyiL+QckB z5?;M&<_MFBZ1>R>FdVFN+#EvPlZy{@(9uXUsI7LO4ldYmvJq@axd}?+622(@I9Rub zq#OY;S%~aMFbD+^$s_}D7`9Z4Vr1HFS_TbAmGM+UjUmYp0!ct}_?qIF5z-bl79#Vg zBGX(3(B*dIn7}wI)eV8uS@Uz-+mPAieg^SFwrCCQqS89dVNJla7T}{M5d&;w0|gR@ z621piO(+YqY0GSzye740aA;i-fmyrYy9dY)YSh#nFt!YtY_f%0BR+Y%doVOjG9L(4`#bbi zt-$gy&xbfhIy$xW3}&L0Y~_?mQOrF3UzrCxe>?rIoBnw~x=QoQOB-@B@f47QH&<9_ zEWNUtcKJ%$W)SZfJcLRigMlQ2ER8Udxp1^2e+(0-L@pf5lDHvJ!-_T{x^Q9>HzKvl z980qRL219B1V`RDEQ=v+G?};!VK7!e(r5uTqA^L0L)(KtU z#0c{P+%x_;e0~Wzp=`4p8`qBv@zi`8dDrVFoJ4ELgy^$8*5!oas5rMP*)9juiq|Wv z$$F!t1t(Ae@bfe_+=LTg_yKUGL?Sq(fb*^KJ}%yWDX%SToq(T7b^S#APFzzv*?wJsmHD}Nz_O1w`>^E*HSO)V zPAd4g)B`9(9Ku-641zFw>o?y^J-#Ph_#}p54S&O@=v0xATHSIbb`hm&0 z590;MJ_UA&zlcK8idVWNy;fxdG;ms=m{CVX#lC!qIF;Fk65U2CbwE0~vh+ zGD&BpwN7up*Qfr0#hdtF@%`0|tznseAGD|GO$sq8a}9NV0INFCh>2mkf3OSii>b8O z;-P`Uun{V%o3@&?n^j|KrSYbM-t`jB#V`OvwpG|74||9ZixF(a5d~E{n48jAoui*A z9&whobmDyFrmk)W!HGOP&;kw>nsAYT-}8ic&(MBva~L{+{*qR-os+$xc&M?{m{6 z@h^ip1J@4FmDw+Z@b7bkPTlilXY(zV#MD2whiusKc+h$|z#;uesGSS110Of{RD|+( zxn8kdobQBx$Pu|+_ig*ngQV4LG%dW$804@!b@e_bFPWZ}zWRu>%14{s#qUh}o$w6zoz&&AqX^DHIB4i@V(O>0nK`c?g+7T&nHyS%_teH`M;qsK7$cpe*gS|f;ec{bX)(^1!+puct~f25<1_Sq)7?dIq5 z4~?cdcE*miVsCHqIk5`4{_+xS{DsE-$OE(^PIC{8UiM?tD`Bz!%BM?_b{g_VdO!#3 z)S%sbIsPOVlf0}6TI$7`IkH#i9^nw@Z84pd%ZR3O2>DUN&s6R{xwrYmkAB1NS{r{x0`EP2pAd9A0> zD^j>}o62W1pI6JHPw(_F5{S<`Ezw5IIL3-VbkaH3Ip50S(ber6o7ae=t3584*VbW? z4k7Z+t(Mh^O4+)cB4k^69;bVI0I6{NNhH!_`gbOD0J4$Xc>6Zuz&i3&JkD`-tdsM( z9=`nTerw3FcZ}2XIlVnd=diz-e2d+|r|0QpEuU!qC2Kla&Fpz&lNIaKF4ea%PTtSP zm4qL=Grw2Q>8tGl9o)+u$Od+se@PkSx3F#r4Cf+yeb*yA#uhSlnnqjX&5qmvD(g3E zjyxTkgA!O_{L3AbPFB8NlJIltU{T%=`;RizN1TvGAF)P$!quhRkk0@v2jY0KoM_Br zmOawxq%a+4-=f_YwF;!7_0Dd2S*N#?!S;{?k`BhS6Az&i&kouU3t3h@^=fAP!)NC!(o_{ddk#IPjq%R3R`?nA}2( z!qG0!C`{qOjz-wFjn%p>0r!!ikN4;18ZTRF(H82zYSGr3yfnL^?VJ2V8FnR9e@dC7 zCm7LKgo>OQi}*{xBE}-rTm|wpSsDidHC93w*JHjDWywUgg6O=%Ea~`M585UW=%_5i zaEh#${D_8%aVzhDl7<#&KZX{hGy%B*Eg`|@c?}FxxsXx`$FOF};*xF9Z+;WsWQ)x< zBzu^%aL;}gXr7P_@WojuXS2v=W3xc}gw4W1C);3pV67CgHXHcO#lQfSMOgq)8G-We z8U0g6l!;KvD16+HttWQ@;NN8lpELHREOu+3cGxZuv}F{8|0#>hd62U;(uX-%_!Hz$ zgd75n{_=WAoQ@F#TwY*J`M3(E%XtelWm_-UAV^z1v)%%QkzkstmQ!lc>Q}^tVY6Lp z4PdkxjS*Yppa6E4I6>`B@iA}tMP$heI)$Ah3@YpCD4ejK5D#3FPqtS}bf#}T~0SQAnVrd=c) z!_rh*yg2QLDSVUH!F7_~7{VEq>;cZ^6i%0M8pH9~(l?vXT9}OFrzJ5YIyGsRV4Hx> z4}~ALFb_8vrYc+Pb8!7i5WaA#Y?&7d=HVN<#{f+)a?)_-!}gdtm@75dN^Sp&w7;;T z&1&W%0vl0buF`B(zoYPR>#TJ>YLe$${QRRDFJcpAm$4=RJ5f@VE*q0FSNlqT2U;5N zm?&wzwL^=;*=g};p!B9k*4f{$l~Tlmeq+62)G#W89y9_Z({dlBrbdN!+AOt6zNvb% zY9)1kUeKZaCH79Mfqy(eg16PoMckp0LCN>F1v%rL7{89DBfX0-1DYvNb?hGibEg?~EAVmVeDSsFP zm~{xXHv0uWZhntt;*PO<%IIIQH5gc!1-Luj!6t>|8N&dVeY|I$rpMBAb4@HNf1LhW zaoQyfWiI~sK7eN&&<!o@{UV~kRd``v zsHAHfTN+zHN*USK2R8W(!NLeymKiLanYo0p3b~eAtTgJ44bAMlz1>jdBVx$fC<`Am zJ)+_0F-Blf37J~x%*Y!<@zNI~z6O~XY<7ty>at4c1S?7^Z>+lYp>(QKb zFn|{-wT0`pck;RzR2F6 z+_AA%3zMVCD+FEfv;%bF>H7qKtv;8EUjt4a%KbEyICdy4UkkC?<4pOVM_EPcCuCJ5 zWb#L1j@IbD-65i0y4&3Db_RPood5f%re!HY&2wUpNfXaOS-78KYm+hlw^0q;Bzm}> z3pLNi9d+aE0@6*zc#O{sSUCFuY4nocIOzbR_8F$U+kD>akp&8WL1Z9iKjx_4wI>`s z*+P}a1}7KQ-ZDMYbzk4BNqCI zKE1t;`)3ltsH$DB5kq|C02a=fz>C(}O<^~-ePgnH#j!*t?I z;vPmTe6Y0H&N=W4hyA8AXISqXNt_*f zlH?F)8Uw0frb78QglWLJv63*W^L+mLr#ToCQb8tw-xS$xmc3SW?(yjS5pT6rw zNVw3ZL$uq5v5dZe59V&O(4)t9E==>NY2*6h^787+^^IgHU0biO zuO#)_+Lq!PZY`$C##XYtR9jtIt1s4S8;i*nGTN#yudSrD)pR3WuWhYeUqt$q>x=8x zml|v7(pqC7nd-+Kfqq;GtUyn>7yh4ulPgE471i=8KRGdT8$r*YJot3alt7y1KtB7z&20g}QjCN=>#GjS5!7SAsQ}jQ9Pb;T0=M7?Dq+_cv zek1Dbw>x{irozd?fPkC^Vl1x73ZQ~&*mYHj=c?-f2(K{43mKZ9^}BSP99Nabtqh4< z^TF3no^S(InkO(%9%|brTt`LAD#ISON-{-pr3DfkXtgw5c}2;4Mro$xTx&6;yM}_Q znR6<<6-mshrPvlJ1sf&Z)bq+({DBDalTW+X{8sWX30lAe7pnT_BYc`9-$NBLb3=4a?d z9f4Hx#YdEzXSQTQ`7SO7GtLs3%oo?IUVFK|I{kuqXe8wTXsWFoK1`;J9bsv*gZjbZ^j?K0c7sJt^74Sw z6$BP_4IH0t3XX^Tf`5+eOhQg5i^Z3X*@!$a(*{d=y-PrXXLHguV#G9BHWEyVz|R4w zh&ewI)?4e7arHenP2%K8S-0WXi80uVi-f^mdxIEk7KI-v20IhM{igI9p2`cp~<`j4@dAO)DX}$dAz%e(;vAPdIH3L+NG1J@*Aro)7)|r z-I7IenYQtGv)_eVqyh9GBv>bC^b%?@1Pkr7HO6|sl7LD6Sp2q5>;QiILN#-ID|w%( zb=r;Qw!9r4z+3rx#l7c8hlI{=l|Ot8yG~HM$s3PD?i%nX=J92KYh$J`W*syAGV^Dd z&(g{pwI`0vUtO9x+$y7w%Qr2p`~lNW zp<~*CKiI!I^5fyaxS5kB5$KpE3U}0WI|=v8F$~R=kBj%5Vs)njTkMk~4$+n944*l! zvi*qhzZC~b&zk`$#t-`)-#L?YUAHFE1ZjxIToCJHX}6}FlwnQ%TZx-O%3kkC>#_Yu z1S!)Mb&A}AIlX61Uvt=5vbPs-Mxd!Lu@xm)DD2fb;BZPlUMPA`>79a(@KI}Xnrx=| zOw@}aHR@5*{Yn<37Cyn7ddGK!e>wH^^VVXU#J+CND$1^(fboN=VtM6-iJ=2C^EP{; zZ`NR=tqVg3?QQymzBR)F3N&3?Z<=XS8HXrDDg^kWRrE-ugX|wA`vJFP>N{bI4Lt&E zXjs~*JN||L8OJ?Mq=n^&aWqQiD`c)!vMmzGb z(YwwbK1$v>>!V3WCe8^ysliR?j9KG;n}mx=XNSQ|XBj9F>(4?v8E0A^37~0tB#@@% zkw9>kM-tYwESABh<&l8JmPZ0^S{@0!X?f(3>N4UK)rFPRZc-6QC@qxU4a(2KmGWyQ z`=wVS_ob&I;*>%?$mwi^iPah4Cg&S-Bw{n*kjB%?5L1oMJV8UbzSoD zF^%Yc;Z2!Zht1;?gUaMv1ltwM!xSN0p~-M^V4+QSP-LOWz^m!R&_dI$p*TV!aZH*M z?}5s;Uw2svMYH}y<&Om4-YG(k2%Sy~_r<-mT{mAVN`V3_cj89=)l@e>dre0aR=X_q z{91QEIkKqzTdM*0E(-8?NvOCQy5{LGvS(K!yp`bVOSQ0;l7$09Vct}885JgxH-Z3m z#+D@ztKo3UX~ZDOwHOy^{yD5@2|1y6?z|w|1`Cc|Wo@#VcFq|2qGGo=W^Pv+1JQvpAw2@uzq4Vet;g6ihgMB=$ zupQDv7u?SI%*gI}So#xVTco@!$s#<6)_R2W0{n@%zjYG)q7;-#z3M|a|6w?FIdt=5 zXZPC~Y*k^=ZeC7@RE`JQy!@!sPU^k5(dou!aH+Z{|Ls0V$!7({CEYZJyVk~_#bh`n z?Zc5znpRrPXK4&RmcTG$_}GQ_16r~%?KsUwvlh3K_VxgN4tg*^`mhn-YTSyO$TI#! zAn%_Le7sHnaQX2kT%k|mPFrayigw1R)8Jxz@rxZ82aVhCT3{;IO19EgT93&u0Oy1w zxT#jB+l!G5rB>r7$md0;TaW(uF}3uMA5%rh4Q-72QX##xjch^w$BzeXz)HcOtM$`5 z2)ha5yC6#1i2O_1?cm$j>;LiN8__N9DYR-gd4}q=J9Pd>Qgj0Nb#c<`4R-k)-HW%< zec1m;E>!z%fMnb8);_nAIu0e^j@UplI(1Vuq${fNZK)^fkjC&e!X4P_BUREx!nC`K zzU%CA7Q0kc{L`!v=5{9~%kao6ssE`1T~B*W#c15=P&c5u&M?;nsmn1YoI7qm-s^Ur zH|y+b2NiFo$m>P2-y>LWKWROSlC935A8*0GQ*DPDjxI=(U5pQ!)S@ClWgDC(0O5}N%*V{|1G3Q5_ri8Y}rtWwD`{hB+bqRGglF|7%2Cm0c*7vTK#f!{s>HEbPjDi&Z zQ6Tcp4wykZLSXwT%Qsj5Q0`A2gcBDA;b-~Mv-qrne_u*6tePgLhgtVXg=l8J!scRg zc^wa0uLI%P$@|3lnRn5+XlChk)NV+gas-{p$w1Flp5ns}Q^u0;7o^nJ#s{m@rjvpB zT2z`iso;ZcHE4#EGEtQF<%cgT*l79oX;`Uy#`=n`K6`KB+-Ic>NBGDmbu_R9KYtc& zq;*fS&NJwIAbvocHy@>SnE~5hj9pl${kfU9Ku?2~{VaV>qC+K+MQD)YKfMu}R5pd< zY{t-Epql`f;F?#p^jDhgdipX2TR&5bG6~g?UCd9pd8@LV+)y;#Vs&xdQvOh&bj%DLA413EV?yUjWO-#cwc`o=!q}5I+WstZj%*EIRvM+K}NX>=t5@rWrDdpfRM_$kBNTBB09>JfmyF6siSNlb7DEpD+=oB0S3NaHV*h<7h#i?VQ7s=TU}1ksd`H zP^vd((o(@5fm{UZ1F<-NpA-&U23WN+IPRd#EGoa|;j0CBY8j5TT!iMx+o*tYLY5P_ zvNj^OVln#gRP@cr*>dp~vhJiI`C5+Xw^hj26v>O4@JHGJqcrRJvP1^}=Bk`m1iau+ z```;2JqKp#qq!K?$i0@b5!H$UC}^A=Q*=aPfKV8702jb{Rk+uqL95?(?d zO1V?;%^<5>AWd3#86lRoYfT&10^SV#zK1Flpd#Ymqr;;ba^y!TT5e~JP1XVb+)N!7F$v+hoHQ2 zhKQu(X1;}Bt0KjXLp;Qce^|B*6uj-_T$BXo*^xFo#i`T!_|YJ<%Vg3w1hYTuN`o!a z3lGZBol&vi*alcNrOK;~wAv}hkxf%Mt_1W-_I0bkEOliyS#M~5IT1A_JZq#xrq+%) zn&K`vV(t&J&l)ntmu#c5QeR3n-;iLMvUp38tyBOBp-Ezq`4yd+xrDIFQgykySZUN7 z8=9XhhBiWI2fUmYIg?~MGyZ~N3KCo@^Fz>R=D+Yoyr{s^GR_GLmD=^jijsL^YSYb* zntx6tZTgaAB6t8SaOTg_+9YNM&>z<>9si329t zQca#E@y$l(<*h;OMYZ;q&!XRT2=4l%32bdEzWFD5tM>Wr);2J{tt!rFn$3mB1P`S{ zsKtR9|JekAhG3p#^AX?~=udsb3^0!u1WplQT`AjqX6AYk|11*x$^c+OD8vIdku8n+ ztShw>`0u|99LUGYM?8#3W;EMQ=&;#qpL56`D^Cx5ef@UKfLPYHc;!snck}k7rFH2sGf#&~ZWcU@vP8dO$R`_BmHzx(SWjY*%*EUBW*X zs^;cY@1R=qKp@YfG#D;U;zkpg95lt?tEDrbMACUd@L{SRzKduOu;Lh?xZm7OQMu34 zTEZpwap6Ul$T6JZTwHI$GZdC1!IF3P1~>o!rQUU4+71nwOs3l%v((V1HQ?R>b;qLY zZ1vJEs*&ZFO%n7MVB@_(Z3k0cu-Nezc^ z{pgPUP{wvpDA#t{2jKph$-PTsk|_L?+Vf(kS=)*CsChl=tKJT}oo6^Ie;?^F1gJE} z5TKeWNzDGbp@sJzv}$Q}4M6N}ZFy-fe)*EypZ052S+}Q15zww-^AJEh+g)5pC;4L$ z&kDebjN0#JhBkiBfXCDM2fYU}64f0k}zy})_oO#n& zOI=!J-BK?kK$TVu(pHH7!?)sS)qdZu;Ij*j5}b4aA_r^{$bapP|LYr$!kU*zVE;+sL0_THftiBp!8zLw z)-=9M*eTN5K-$oL-XR=xr)@SnR1fn@bzBf*)EH_2n$b)}pX_%AST`sSd0xd48muYI zTlB)U%)o(ei@ex++)$%(K?_)R5?O-SEK!+mvyV+HO~{TpnysH0d+?ZLO;(*XGH&nZ z0#!FvBHznLe%Wl`6XMT~?DXWv9QC{QfCIx-sN$7;%b2kx)is8+wVSH&tRUVNG2V-qg=QS+rlyqiyk)x9h+_D?q6Hpo0&n)zVn zy_t=fcYrBgnt6ZbA8=OsuV*gJ{9$Hp=Bh{gs;|01oRytO^1JBnHWG&88~-i_HnQkJ z&)dMxjo6}esB^$&DdEumD7?u568m!(CD%DXX)O6UvUmXq`Ht4~{~T7+h?opp(DWJX8hRY?xiYy+ zW0pI`(og$nIzZ@)<1|1gvx|N3Gt3Y&J6X(N7XB^&&}hmJD|a8<-h6QT^Dpmx_s#9E z?tcB~yUly|?tZ#h$ZHyKq&-KhS3p$<^s9?_1!LV9;J;nV9 zbJZR!HtqO~?mK352kqv|>F^c@YIul#z^J1NTAR*e%S1O&oe(lrT1zVc% zE=N^%`-65WSMN99xG4zy_4c{WgC7wHT<;Z^h=)U5j*4qMn7Y#uso?GGBN)N}Ca3({ z@_L70RPI`@oDF0hw+K=V@TmHL$VfhCzeyoSvD)J{_tJ~JrFcURTJ_wW`khLn-Ko4t zy6uYintDyOQSlYuME3SMgoLh~d)?;l5E7lI@W& zaLDO{iX^uvSbmo3ZA0~Es$7jKcSdMYCO_$5P(quEnFZX|iwM->ZM2r6e>IQkfC?+) zhc=+1=12CaoZnm7eA3X;DWC+?zi+k&bU-qm5HDM|5=!ER@v}yZm)6a9f|;R(Tp$L{ z@9%y0=+W)Rg_;~qfL86Ie6FjHb`v$ZGO|V|W_~-8=7&L`-EfMo%kC(1^)jJQ%xnOCAr6A!+yxs>JVS__A=rgI)=2|B5TXP6@I;srtqnig{hT=Be1ey z*N0(G(J@K(<)8f2b0rkh4_N!iv%tXNx(oZhi#T!-ns&hFJ4j5mvJl6MzMCCRaX_ea z&g%|Tx?Uq>S~7n{&@|<8$gpXsi=*X-hMg{CHyS`KT{8+oZE`+-IO>=Ta34C7I*#8M zmKu7$uZE_Md^cTYiTC?^H|FOj)q?QdlyP34Z{DpeR{-e*2v-Tzo(dC)qKmpG!;CK1 zT#4hcbXOwZml+o{T6HGpd<+$NMHQ1MgAZrBVC*Q=`0nAjnglNOtpIR@F$Iuw42C*> z@!(GU>8E6AWHtWlU-=Or^6YV0AE67jXrJL^E($rpLWUX09WNP%{eg%Dt2?=1MTR2K zqT2E7LQE~7Ju)7v9Jo3tp*vz7QsEV9=@UWMDaH8kb)tS%2z!KDsyivlFMiS;q}&iz z>o+5PKWSmQoAw5f?xA)c8tR?vM5z2%LcUWjq^1F70RY)WDX0Yf?v_YOC;)&%O zb1@n3r2^>p*{3Top+$#5R_ceXfhDD~C~Tr43kx_j8edg-Sr)1cdu^!Js@Ex7G7tbY z86gtDHANt+#p((aXkbTxh!(4BLZq@}c_mOaC*U-&fWYP$I1L?nK?Mg@#?2BbgjnD% zy|hzk!O)fqovn6jpN?N3&PdR2&>Gv`>BFNRQNncwl;4mrL!Qs6c2pOt2JL>&WC1NV zax4LAa(5z%VO)HRv~8$FDlFgY)QYU^&ptJ6p~my}&UJeMy|-4c1AUzy6j6*CBErbQ z#dZp>Ap!)iU<|lP#?=bStHA7)sT)*px+&CoSP6%mY4qY0yIaLL+b{_Td=8f?&^Oxy zuEMlCTwyIy#tZH-Fk(7jroe~L|Jz0`q;dui0xjyJV#_mBI%j1j5T*bxj7EHwy`}~B z-fL7EDLP$64%eGIr&%V5itF`K05^sWMgT8Gx4NsaX4N)oAkkg7>V z9mdH6v<~Evh=;naLVUqC4Cnhfyzx9v`qW|6UHHsBe$0RGl7s1#4i#k3g*I>wzArXm z@HM0bVbW-zRia^1w*JCT|Aba=LJ@$KnoN>M$#%0wn=umv4b*VVKM$b(1^vRbPTyZB zC1Y?+4x4b=n%1duzfZbNs-OwSXSGLKhW(v=&VeYt#^g%i*TqnL+itNA6!v6_>{0L0 ztgs_V{Qv_CxSmiH^wW4wIOh*DepteH$d@jwceX$2L%Frri)%I`QVjhVn#s^K>+XN7 zwt7T;PBiL_!WoxW8FFr%=bN^uAkS~CFD!D~abW)n>h%)rvFUEd>&L6qN4` z1bF9c(!30W>Pd8X1Ba{`?l}9;O`VY0d5H_1gO@Uq@>*J+ab&pD>|S#)@&fRkjiv{X zypB1JDjoRbU3$>=OkHhMSAuK86USl2V-cbg%oz%2+3+r^awb%L%qf*$TQUlCz?a9e zT@2C1J=iI}I2p5Tc=#+Tai*PX5?EGvx9+sLuFgkI-6qP1ZMeY^GU}n0d=x_wP_R(p z=1fqR&WM~WjY^yj;NX68Meuhb*3Ayi2h*VZ*vhNdGhsM{g$ z+4~i250R0kbY;1w$ry4=DKc|HGc%XzI1OSlBb3(a+8`Yps+aidZgQ z@|BGSUA$KZn7khU6MQbJgDEKk^`=UR?^N@6p76-#k$tDqBLQ$wFY|bklz`16sYA=- zS<;9$p*DxeVxjZag0yu1FN?3V-HYW*99IgclNFpXAv;YR?qV))LtL3Yg;U3el*t_U z?Jc&L=>);r8(rAxv}!|5bx+Rc#8PBhhHd5acgVuCSfyZ}%1NvF7rsJ(MHAhMjI2pY zj~nr)pBV$6ovtk*ZX*1z_`mWQ9%09#n?`@chY5Jd_{NR+YLg-o`e*AJ{R>Z_=Fb-L z&x(-dNEv?P$_jzu-1;L^5bWl`p;Wv}b#w~dbqn2fi@fT0DhlZbI@Sa`og4SBQ6Wx< z+ZlayMxR>fb_VX5G&Cvoh-22#wAQI@Lpq6Am)uuZ;qmku)jBtTvTgdtj_8X@Va$u) z>VN@iIGE5b5py@4U9e&5b#?%YduC=U38qZqe+|sf%mU!Qzp9ga$GBL_-O9vBRA`E4 zSzLn=BN9IT>$7yfH(q{3d97&VsfR;YD}h5{Yi$%e^ zZteeP@6DRyII=ZCP~4LQwX393Epb^3$-2nE!ksPhk|MS67Pm`6#i{OUlO-|(K#I9Q zxsXCx|C)K7=NYr^d25^bCu27MV4mkY$ItO__wdLC00~gakcfXz&k>_ESirDL*|cd36`cJ$fL%jB_PXe zqU1+GgPDyqGG==;MFtkLXH3zgAlHM&BcOYbv?;WBZ+SIxSys2jwQ~9I!JUA48Gm7K zIut*pV+$SAmiNR@+n!(>-xV`)!I`+=K8Op(uSIGpSfTQBq}UM*0%jYqCF=4P=(x305u(~~u-Wao*pkG( zRY!#&!z)qbI2^TobbMBr1NfrR<^@yCmi`qcJYLV9^^uNVJElgZ=fc>sqdh% z+~3q?)D(G_*U`KJyS|l*;NZUBOU-C_t(Q|`KJ3x;G%7NexEIH`blx?R&Ldhh3+P>g zkjf?J3tYCV_LDu4IbSPA)cm?uhm|*)$KRI zM&C|0aU%!Dd^rsW=p$I!C6qN_>kro;kwi;iY{6F_IRG3@?~gGOjPOx}S>@g!sfiM~ zKJvT0I}+cnT&Aped*{?;S9d3p$Qj*Uek;$TqL+3mMufitM_r_6MWyG5cspe7eud>@ zV4I%N`eIhZ^M#-ld6Z!&N6sq0*-<1RyW%j4RD=p^lJ&lBpe_@fWO-Ftub!O2l_+bf z>^y9ERDy6tIV$17R}blyqB3XhyL9(F2HLU4e_(Xc$fXaY%c|FxE?MF~-+Jk$`w5^e zJn^imXcppO z1fMYnOmofcia9W@u{n>wicdN+EMEr|6co-KALvY>5B+y-jjinlmHc)K$M@T0F#k4*aMk-z^hAAcrkko z$btPR<`c%GB<8ZAJ1c3~&*ddngKp2jo*|WW&gETOdM6hR)8fvWjHD+fYBFuQ@K+^f zj`VBmnG>0djZolmiao$KV|2`VHe;OHnAe~EQlgWd=LLFJn?F%ArS}t;*AB zZu)y53pa017$hXEMa6G0{z)8eHvXOVIgqcDT1(8Y+~vdf%}f%zBbOJ%yT_J;MR(wG z@MC7%EeCL{ZqnX-c%3!(_(Fow0KFft5S@phfGM zp3XRF0 zJ)#wYxf7ul&Nzy2NJ%b!NzZhL97Sif*#q8UlrQHRHXvr2d2-HM$a=Gvzg#r{NsO-6 zB}z=%nWU^m?+b}i&*&?EnEhuy4Y(@D8S+^UXx<1MjAr^U;MWCvjDltg1LiWRiyClM z6*cGg7BUuH%7keMo4gCmH@o_-ope^APt{jAwWb$h307nke)3f&2rmv*=` zU!*U~W8ASwnOFP6=72nxiUtZ11NNuFLTH$v!uch(yq@JTP76?H=7U?3xcp`biVaYS zGJ~;{UtUy@raW0m8XRA|(pZJ)gL2MeS4lG!E~YEj1%Am$XQ1dsjZ%Xix?M0>BH+29 z5u-(&=RpuM>q(+bRWub>>6^XA(<$vJU10T@l-aGAVq^z%^uyg*frK(o z0Vjzbui;S|07V~$3sVavcRC6XTq9)~JKYrA# zcU#zHzwR~rYum{e9rK;8^S9&MexdSo8wOBdd15d~zUbjS-DstK`gEYAr7uj3R=Y-i znPfnM3({*R@nT<(YK=vqj?$dOf6@*op$;d~^rBEl0OagJr1C3(w6CmCX8goyj(N9^X(Ff*NxxLrjYx}2xg-Rarb;Y!E+l7S7ar2Vu;Wtv=38@ExPA?* zs+88~Bf%_)^=<O%Ex!-g?$_*={2xuV+ZGN>~qU+W3EUm>tn1;c_Dh{&yam z#HzUiwGCuI`*jL}H(?zCU0&=H&jt{M|67eY<{*0$y7Cen?hn`-v}|brbeZr@sXS)? z2}^}{YL(aEy+H=MTqs3VZiLhrhv%5A&PDmmNoH$$X0TbUt&vTsI!Pt@4M+!>{IO{~ z-iJwn47kFs`oB|;58Z=n72^T^vrR&kcHkDXdD*O@XD7`P+dc9<=Lsx zrdK?LUqyVRzm?UU*g!&qjCn^SG&J>@O-c?EthheH)`Z{*LQzG9cQV??S1k=p*jN>N z?T2}L2B)e^A&;$o>wMXg+xwgi*{2t+&}%)DDv`nw59I1%3okin9_7)2mVGCF4#~+K zg(0FfnkxuQ=y|B*#8o&&m7@+j>t|O%BEF#dEM%HjcIJR8Z;Rc&=`el2`W&u^p#ssX zHv3hg=Z-uKp+w@4g^Z*<3OO9J`QAT zm5dJiI5ec#J|FXBqmFD07h@s!PBUM@(%But-dLyzPk9wZ5zuAelu?{DD{FfZFH_Ap z%3Hjf5W=GL1Q5pg1<`gO_Iex~+!IRSE6Pi;OH){eL}_LLhl1dW#(t3v)buH?D6oMz z*=|;rXbOhn7g9uD4_*Q>Z=nxQAH>zCO|i6`QF$GtzmyV_-=vREI%?9KIY7YjAobefb)0K z3-^MX-knk9)sIQ&P{(19Od-$4)dwajJq;n>0S5}pJ~(LcgQ(|v@-L1t3EF5cm|FXS zSX{-NWGFSJAI^9AikQWqld##!Mb?VQafC3sk{9L52sFBe5oL@bCt1XbM$J)9qL+bi zNI0VFut#PisOV$pZWJA99|SrsmpDCI$4VF`Ca2cAFfuE@BHBrDJ|=3UOMOPEmd z$J~4RX8EW_?Fh6%eO{YE6V2LTYZFECI1$)2PFdI#;ptjC>}rB`ZFt6v!7DzWYfW`M z<`O|ITaIv!HN>t+U8c3EfkWdYmNT(SkAYhXnjSyzAq>XW;Xf>0t~M@SUQ~WM?$3nT07)2lBHk&-0 zE{$@Q35uoiq{fPo!p(E$MXf`YHN>e2wew->b|wCn#UIkXP(*>b`Ez%>TiZSMes=!u zg@nYLsyO9cQF*C5sb^RItXRd<;N*+!1(}^MO5nX4KuSGmu)J*c!Sb)QG>Cpl1WxMm z#)a$HShw#w)zoUyZ}deeu>PbXCg#ZG#nUzWeYjncWHf3IX>Tka# zO2_HwuTcBJ2^vHL1;?rMWwV{u;jXNU1&W^!91*%&?*)9tbtL9pb(87`OKjvv``1`< z2Eea`3YAKI(|e{bB<*_|&CLQJ3Af2KT)I%Af9G8b8Hb7_rT1#v0`)H=pv*uKz(0%t zyxZO8F(shyd7yb-Vl!O?0}-Cy9rk+gASdaJRdnfU++9V0$|>zf9%c;8^g&Jgp&0kn z#(n6e^Xm1n7Zub*3PwwT@HFC58DN9o{-{aM^|YH>iKSI^|jk0`)N;@vw-fkHKnSr(`dyc1Dn$sx^L~;fyVd zWgtYLA6t4E`*=qt-<3aHf>cj}B!waSBuY>s`RJSujnoFG;6sReB-UXy=N}6xi5%6C z1phmaO>!Et6L232E1hsuX)Jl5g_Hy zKlqhITm)MJ_n=A%q^VJcl6IW8S6O&V;m)U17vS-~d*sfKX>)<(q=7|V&ST5t9XCy* zaFLM6KhoP2ie)x7xew4#&SP6?Ha4ABd1GTUm-cgocfFGE$HCoZi)B4vAv(g(#&*l~ zTC-KyF%MV;P@I{3$4tIsALKjA=p%aOubd2oJYIP8mQb>QE))}9XG7@_;<{W7r4S&0 za4}?jGjSJgp2b6gN+pOqLdgFQ$SomzKZuUdZ7L80TZ7xLfp}GL2sNST!=!YNP~2hC zbcSAnQ>>7tj1a(tl&Vm~W&~+t8cIeehBE@~?kFaqaD@2DAkIeCsJ?<%Luw8y@c>x` zp9|p&DU`;EIs2TO;G|RI_K`?y>OLALhVP?sVg^4NCr0t3apeWg4dzD^8uR&VT%{_q z1LVCF&KhCx#FB&PBc}x6t4IVwU_k#FYn319kt&xxn1;+(QE3BU2$@`DN*}?7HI>u< zs7fgLlPCQ9aM&6&pVWG__9`Sg??Ss8ZvHstn>+Vb%^T<@FIFhJzrZnHx4>nCmnCaA z*b61f5^^(1zk^+bdXs%J`Ot(;T?dwE|2ubS+h@f5GTdOple}z76cZ-^sB2xH#0d;= zfujcOjF&mR9^M$MpFpKN%oY`_byPd#>vItduy9bXn<5afRR|Ph0A?mRJ`K0ofVy{Q zfmFt<+CNB^4X9<|DI9*e2nH`>6;Qe`J5c;uQZd|^LrB6(PKO=N_$5<>nD_vIMKr=x zOd8C)FG~&t3cR*rR}Iz}YagIshv%SDF;|ICi_M^>2+|Gg^&k|^;Ze+V(QYdwy?Sv< zUyTL|(Us!@Qliu6M8g~hV#t!?pp-&cgo|e3P+5y9JQ8a$TIj3s2rLrCi1I2J0x`{e zk2}k91dt{$1V6ltqV#ceH6-x?Wl;p-nsI0m{QQh$=)>AV&2&8q3r=!<0muX=qOJGYK5391-n^ zhLdxJ=jP5J42)ai3a>ZTuPYXpY)4rfr)JhjpF~HLJTi=DqsutT9_h^#ZW2zfj0ep; z&*unvL7>7NA*!O16aCO}CQ%Bk*yWWs&5Avs)=z#{dU2p;581MR91UI0j6GX^N~3%N z7VK{xAdEPfvK>$W*kmapUq^zeyKYgoRF zlH_p=7C5=*xnZWf`HdcStFkwWVE)n;19ZyH0avP zB@wqGD9>86Q-jHV_N9GWw_0i&_~tOa)00}V2?+y~nlo+I6DrhN_b1MQwgq^$>TFcj z#qBitV%dOD0puwc0D{(C@CpVNw{2)L?!u7V0ZvWWl}JTwcqPJSgeQ^8olZhJpD&x) zs|C~Q;FH&S8(GpBw%4*A<(~aigG~dpJ~&dzT82Ulsd0>-7FJ8>N96@5|3A>5swqj8 zOJ7CHVoNg)=g}GFGI7h41tu4J-3Hj=I~)wtwQRATt#{f# z4DNJWfB(15#?9q~W7aat_E`%ps*|WTz+eID25f}2UTEKT*Z7Ptvq`a|HLU5MO=G-h z@d1~%%JZEYC7FYi!F%BuuFF7hg4B zG&yU`g%?fJReksYY9$-BHV?nsFtxOCoAWl_d)UAd4Hw)Q^QpoPf-p>Km`ObO5)hPN zMsG-STYGv3^J#Id)m>X`*FgU0E$YNv)O>k;$a++6>7V$5yjZD_L%9U&TbA@82~uM@ z6uhDu&2=npMsTK1#-lLjh%~g>%rML9o7)sXja6+mUpRx4IKsH&cVCd}p%)npM^(Pi z@zYG3?TulNoBPg#*4mS&wREeqaqE^?m!kEfS9?W!3VMZBSqw}_cMS?1BsGU`rj4w> z_^p_3F|DS+ z)O{7Y<}Z+mGOeREIA^EtIWj3$OU}{EK1Z&s%;z)SSgB~&MjBj*J z?}Aw#)K3^zQLGMBp)B1<7kLk_FLlw~3C3MLxmuNQ0Trlend@I%Rr?&V*37q~nD1evStK`cP11 zU)Fla>dV?csRf-0<9BNm+Ce*2M;DQWElh3u#UE+J)RHg$LceSLy9MFI1SHnyn;7Pp z2r?CmCoejcI0r^Z5!PSmSf+hliU6yHG(qIt4%c*SGucdAtgC2J9PJFH6Ag|9#-65W zn!oDyUeFvxkIRvswq7XC;RsMSb`SZq2A<7Aa$e@6Jvqz4m<|+d$dy8MK+;%ufj*`HfdYCjPaum>)`#m@MWdwuwQyU29vRV23C#>E>B6G)0&E z04HG*_?|rx2wzOXe`CXWCQ=JV#ihKt__Nx%muj!{@G`6kbR$ie$h4I0+*Cg-V`EK>w$4{T7ZC}!L zYSGyDo_+V^$>XQ1AtI@hCD5FfbIo7qJfo5Nt1?y}tiey?CKahV#5IJB%_)dQbfVe8 z7{YAPm_s^dPdA3`t!kfED=UPZQ*KzHxVj0vI;3*x?04B3bl!~x)Mpq#l@D|X(XLqBLxo?vcO!cOZl`v7~Ogngo6U;R|i;A^uB(bzopU5%x%^p4i%Q!n^#zQPF7 z_k(zwn;-F2t*(Rn124r_?X7_d8h`A^{5Y%;J6SUN(2pc1p;|FND>{Wm)0nfBM1AC; zyKj~_iSx^WGXbunR^8w?K|&LmVuPyH)Do214B+;)8n)?|+k*@;?D-)3Z5$Vcf?X!1 zDar8eDp7O<=JPnBd)bde9qJ`{-Rt6(Y|TOaK90u@7|E^#*VnYqTNAD&Ku=(pxov@d z9na9|!;W5cvph(t+h_3--S4YReMwtC$X;f;`;^q`0j?IKJM3X?qg@*f z!tEy@CFAUgwE`+|C2jaLBP!Nt7;}jc7=JO)iIH3FEvff^?phrQtEj-MOx~#e6n2&+ zf3M^!TrXxyG{pErPn^uRwN9newRhM9tg=X~EjHemj`=j}JE$bJ>YfyjD zwX?#n+NvI^B`d%D?1EKd{8pp|LL&Tv4>oX`apCNEc$WR>hQG^v(mTB#G(eouaE61wgac+b)Tnjj ztE(ILxk+JHUMfekK5#*dF={t??Vnz*?=ueUeMGTxQ<~y%tW!t>es3ERVa>V=ZX!Tz z-^3trBaAi-=2H-E@YAy4LeF!C4{KX);0GLtRvhB2lesYlJc@Z0yNnBJ6kRy9*i1%2 z#v}Za#?vNdeSls=`X<_(&3Z0>iAt+|4utu=PxoJ;78n)?zu+mgVK$wdMfPcV5$iwHz2iLfD&zpH{6geav5!zLci zhD>Si-&|g@D9B`ImF6sne$C2Ey{v(i z9E3mEcOafe4fkLzkO1!bN7YY0{i)jM*2&ZYX%hEpC}aHvQI#c!GhB7Du(RIEZ`k8f z9dBgWRzLeukeroY*91HXC>TfH${8mh?f$u=5K!yZNdbm*u@AFqN6wA+Kpi8VET;kB z5{0SLBobC7US`ecZ5;xn;+8VcB|-0vmCP~a&?#0nWn^gq>4M-{UynP^ zMep>HFWqCZVEGa^cF6#JBpoB-uTPkYd!en_E9+FIdL<=dts0=K* zKRV2P_in5|H0-Rr%=Q~;2-|_P{RXpUw%>>oL!m)nhs%`&%|zn`k0%=b*vAf|*?wcz zV0V#p*5KKG6J5%GcKglYTvFNN>hKxHP8K_T{Fid7fu?-7dT;gVch6RzgJ<^b-)}Da z=@0(bp}GI%;1_bYCFGS7ND92h0^;!=WPz)XqB*t#@pamQK-xmlOI~!gdX(Xl)xjn^ZPmJ!Bz|qd zVvmUY|2ofG=*Gqlq1EN3l>;|nownVtR~>&*Nu#&0!}qHl$L6ae@l3T573vy`V2=UB z<0`P0NPyhdIEfOKlhLbopTm5~$U@{EM(!A`PnTUl7z1LFusF-`EjT3pSxFf*znp zpEyrcdxJjwD(JEMJvQH?fj6sQTX)deZ{w%Vr`gv17WAHq28`Ld9kcx9d*YajDM|8;NKE2p<LD{97=X zD^^Ke$vsX(OPAU{EkwQ90BwDbeB~(56nLl8Yt!s?g;aoh%pR*s6XlcTWW7gvJrF@J zhZ#TR-V;-HaCO;hzJv-$IkGW3`jmI&UwS*R_&*P>5mq50_sp`Xr{Nz}?|u2zqr2Ze zyz}(0-+%Y${*woHR=?WoK|I4ZSqo^VoKSNghE{c46tdp&ls^>MqSk<&rJg%kYr)`M zAC`G6#_*7J+JekBCZ~~h|N0hgOnPdYd}Go|ncI=43))86hjKkLdJT_@YJ&Y<;= zo+mhZHo=_++Wo7J{h!~-bCT&h5d~->Dos?$uKWxtnswy>W0no=_z6#+zlgS|KtU3Q zr2DY(r_F<3e+`+>VP*@7(@ML4eG3YMQHackAvYYT!bdv!5uo9R?^fveqF)A!g(yr_!a0aqNDxH+F|C1b>@h59~`mr zenz}5_LQWOVb}k!!2K$T5W|243=YCCit+!MkcGUWiRz+%)r;w6b($(E6ZltM0lGDK zHlZUsi2pZ|<#hR)!o3a7RjEl9Cw8gI(33e*E%7r|;)s;Y^ADRXc(ftULe#+Zt*y;I z3nIlFlrE(!aJl9@j-yey1uTu5IW~3LEJC+E6EN!tUZ1B$hhrV2AuPMT9a|ane-~#pWQwjUUa0ok zyH&z&>2~Yi%9MBY^*gyT8GVhJlzX}|VY_j6r5LCJrm=VE^U5G9cYI~yU$^%w98X?{ z|0}6ni4!anJJJ)D0nt$%cZa2DM)|~oL-3t@#nQx~gQPKjv7B&MuM)Tg2VA9d0@JcjCUGcsbKm3s>AMht&lL?Z)+Pc_YR+zkFsVfdDt94 z!Lrpl*H2XH4bC%-pId<`1}^*qZe_TDcIw+HA}H>b8I#Dav)+UU(+vI? zGcJ48mc5@;*X@UO$(8*1&ytquL(V68@2ae~Y8xn4=*SCgiLH;yeIxlAtaO?&@FEM> zQRFRfm~rE=%Lotyam;~}FVw$Besn(On1G=X`Qg_;MxT3qm@Tt zjGN8`4h^>?6Zo-SNw1}*BW%Tj)^>Wsw*JE!yx!87AFNu=Lb;}n&lMB4d zzRJ#F`14@q$wUU!oJ{f*Zmqc0!kl>QbIG)=Xl1tJKAHxlyVHkXU~>40&U{6FBGCms zY#s0mIe=GU9{mU>x4b5YJaQuR@K6EoZAmRrtM8_=rfuP>CApejGnjvH@x`a9tW^Ls z3rO}nJlH3)1`DNp;hAxd|g=pBBUeF5DujOige3JwL+nsZaG~s z>B#wm59@v*-KF%p3E^~?^Hl0G!i6{QQc5Q`N!5f?5%S;OFQ&oC>Sl5ob-PM&oR`!r zcOFraYAIb_N-v>Fq(zo5n(T5f66Fa^j3kuGVQnE-Pq9P@<6LXV{izInq3>6X(=CX`Dl-PVAoq+S!tGi`E(M{+}6+TA9v+{;8E2?99P zwG=dSKb88Lh^66F7);KPT-G7E4lhaZG!%;5&>HDwdUv~fW3vv6IL)>xu{xU|sN%z| zvyxu5)4}E~#A3LgF_LGn=ItcsnsV#d-jH^Uq|2>(q;$4bE~YXgun>=!fmBLNzMN-L9IN8J`rfd?*ZgVWyi{nX^(x}kM5U}^^Dr!Fn%4e0>V9`<0p4l@cPEh>F*}e4Q@K|XrYPlYtx}C+~yqO z9tSNi@HS(MA*aHy#MWg}EomuVvU@Zq1Mij75ho8LQ#yV5QU#kH_I;O6MZW0i0JPrh z;qcY&HioTifn2%s)e+~zEu2=nH4H|0PDAqSCnAnEss>WFUl$?eF%rl+3uOmrybZhQ z;aavBb~pDc8;b-lpDOR6A&;_=P;w_52^L?nkr;L)TMQ=;q{UFQjsT*z!Sovi!46|b0I;{%QSnB1d<2B;`VlbVBz6RZc!(VV5$_!9kF>m( zOlQC&FMG8Zk%RRLI|`=X9TCf}N=L=xtTG~+J;9EM=SCVCubbKkAmgTV1OP}aXtEIi ztKW`@B!8ii=vcEoz!{+kTGEEr*K09_ar7DqC$Gb?;PO@y|E|SEWvy1$Sg|%*RoVX{ zdUog<2?q737%Hw@ixJ|-wHQ(8l+c5#m!!;ns|TdMTRD*ZkminC^DyhR)d{jITfSFt zddC^-v)o^6JfZp`&112fSWm5aC?mGxjK5qTtvR6UpfwM5ytC$k)-`J$q<&fR5YH*A z8*E&a<{_(Cz=MY1plA~q;9}*i7gh(a>w+~8cKojv0>#N{UYdgERZbGRU3CLJpQ~RLII{r)X6>(gO&`};sxnjz-or2vA{)2Odfs_SN7 zIUo(3Qg0-%_sUJsskerWtZD*<;Xn~W_^P(VN$-tBy!5UtEiVxO&cN$K5U+{S+wHC| z5UGm>hn$4rv=uZeG#5ykAZxU1Ngr+_$vrh_-MysK<&$ukw^NjlMu+utiu}q!#kna{ zq5lR`59`~89JeYoPc1nesc|X6_(?#Wdtt;Ot4u4k^ikR%4G$rMo8x*HP17GVn%yd{ zVu)&k8BlGa`SkwQHyoYFw6Ja)kPPyC@Y!Hq;IKhnu99FSCWp=gy4_q)SKR5~-4K9< zjQb-|Y*eZz1w@B^O;k;Xm|5PZI#XS8aBOaPmfd+6ttbCt<~WghZR41Nz|Bd5}Fn+b`?S}{-nE#EI*pGB#s!Hv*V^L4>hNg^7>BOOI%2F9rcyG zQ;+F;-XAoeE#(OHB8#RJMs!7?76=hVA{`s1=Bke?yI#D7jsZxAvQTlmocRwZ&?LRh zu%@F&O{Qu3&i32br4!T4=?E^$9`r%odKcE7aC-#=KMkfktiI%_SqVot!;2pYt0s|I>bXd-%PVKsjcIpm0ZN=0~0XA@V$Ut zi+M8$Xm>%+=2GY7P2J(8M%(NNqq%CI(c6UuOB9P4d*MnAIGz2)QKb8r?!Z0|hv#GR z#pMNT-R$fe6ew>GH8biWi{QjtG?`=ufU@~n%0bQP zBr4*Wk8ss`74&aaKc&H+r(X zdJIm;HU5KIuUFfylB~Cz>QI?9qRWIiVM%>ra>RBR4T8a@FMh5dkTN7YN| z3JJd~RcqPxWsN$`QQh9wCWsM~eFb{9HeqGWimH$X?s3;Mp<@b!63in`k$##_Qj{G$ zOUOl3uQnP>3gCE}r?f{YrN*ft0m_hyV;{#B5<%;rq4*E;>jpBsTD@GmwyyZ*Db7lk zP=g)Ae>S_*t_TSQQzfl+0tkQBGehO0xKmDfKFOn~l1u6J>ZQg?ro}y>;vyzTt|G^M ztP!B%Tqb#)YIf!NnwItmNsCa`)zU7fIYA2sNrO-!&e*cg&3&X1R0J^EtJ(6EYl`cH zN{yHzU_5BdhY|S>Le1Vi6zI1Rpj-&VfTNTO9=Lrsb#OX~43U$?YS+&28H80yLSPxh z%k}Gu>Vyh*U_2uQ2A0O00--=fH_V81M{6#jK^eV6ouvuqJvody^fKE8)o5|bPVmR5 z_ieZlsGxw8PT$YHr&J{snV<|m1(YWIT?l|`uAqa^MfI!e)+go>y8fEN<{gd&=%)eT z!RfDN^@bfAX9k|w1QqH83TqqZDDJI&44!wm@;VUVb=IL#P@>}uVd6h?BQc1saIP1x zt=SdgLk|MCj;$I>Oj$dfAGIz

1I}rXTZ&Q85ZQgBT6g-yHBgTy46p&=OVZ5Upuy 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 at2<=nM_DZNJ0`olvaFD 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 diff --git a/dist-newstyle/cache/up-to-date b/dist-newstyle/cache/up-to-date deleted file mode 100644 index 253c6b84a8fb708ccaf76062067f0945db32025e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4456 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 j&?p`hfTo diff --git a/dist-newstyle/packagedb/ghc-9.12.2/package.cache b/dist-newstyle/packagedb/ghc-9.12.2/package.cache deleted file mode 100644 index b3cae5cf028ad4728b344193a7c6fe4e76e36af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 ZcmZQb&qyxFPG (b,a)@ and - @assoc :: ((a,b),c) -> (a,(b,c))@ - to - @Bifunctor@s supporting similar operations (e.g. @Either@, @These@). - -author: Oleg Grenrus -maintainer: Oleg Grenrus -build-type: Simple -extra-source-files: CHANGELOG.md -tested-with: - GHC ==8.6.5 - || ==8.8.4 - || ==8.10.7 - || ==9.0.2 - || ==9.2.8 - || ==9.4.8 - || ==9.6.6 - || ==9.8.4 - || ==9.10.1 - || ==9.12.1 - -source-repository head - type: git - location: https://github.com/phadej/assoc.git - -flag tagged - default: False - manual: True - description: - You can disable the use of the `tagged` package using `-f-tagged`. - . - Disabing this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users. - -library - default-language: Haskell2010 - hs-source-dirs: src - build-depends: base >=4.12 && <4.22 - - if flag(tagged) - build-depends: tagged >=0.8.8 && <0.9 - - exposed-modules: - Data.Bifunctor.Assoc - Data.Bifunctor.Swap - - other-extensions: TypeFamilies diff --git a/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Assoc.hs b/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Assoc.hs deleted file mode 100644 index c33d49e..0000000 --- a/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Assoc.hs +++ /dev/null @@ -1,119 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >=704 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >=702 -{-# LANGUAGE Trustworthy #-} -#endif -module Data.Bifunctor.Assoc ( - Assoc (..), - ) where - -import Control.Applicative (Const (..)) -import Data.Bifunctor (Bifunctor (..)) - -#ifdef MIN_VERSION_tagged -import Data.Tagged (Tagged (..)) -#endif - --- | "Semigroup-y" 'Bifunctor's. --- --- @ --- 'assoc' . 'unassoc' = 'id' --- 'unassoc' . 'assoc' = 'id' --- 'assoc' . 'bimap' ('bimap' f g) h = 'bimap' f ('bimap' g h) . 'assoc' --- @ --- --- This library doesn't provide @Monoidal@ class, with left and right unitors. --- Are they useful in practice? --- -class Bifunctor p => Assoc p where - assoc :: p (p a b) c -> p a (p b c) - unassoc :: p a (p b c) -> p (p a b) c - -instance Assoc (,) where - assoc ((a, b), c) = (a, (b, c)) - unassoc (a, (b, c)) = ((a, b), c) - -instance Assoc Either where - assoc (Left (Left a)) = Left a - assoc (Left (Right b)) = Right (Left b) - assoc (Right c) = Right (Right c) - - unassoc (Left a) = Left (Left a) - unassoc (Right (Left b)) = Left (Right b) - unassoc (Right (Right c)) = Right c - -instance Assoc Const where - assoc (Const (Const a)) = Const a - unassoc (Const a) = Const (Const a) - -#ifdef MIN_VERSION_tagged -instance Assoc Tagged where - assoc (Tagged a) = Tagged (Tagged a) - unassoc (Tagged (Tagged a)) = Tagged a -#endif - --- $setup --- --- TODO: make proper test-suite --- --- >>> import Data.Proxy --- >>> import Test.QuickCheck --- >>> import Test.QuickCheck.Instances --- >>> import Data.Functor.Classes --- --- >>> :{ --- let assocUnassocLaw :: (Assoc p, Eq2 p) => Proxy p -> p Bool (p Int Char) -> Bool --- assocUnassocLaw _ x = liftEq2 (==) eq2 (assoc (unassoc x)) x --- :} --- --- >>> quickCheck $ assocUnassocLaw (Proxy :: Proxy (,)) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ assocUnassocLaw (Proxy :: Proxy Either) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ assocUnassocLaw (Proxy :: Proxy Tagged) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ assocUnassocLaw (Proxy :: Proxy Const) --- +++ OK, passed 100 tests. --- --- >>> :{ --- let unassocAssocLaw :: (Assoc p, Eq2 p) => Proxy p -> p (p Int Char) Bool -> Bool --- unassocAssocLaw _ x = liftEq2 eq2 (==) (unassoc (assoc x)) x --- :} --- --- >>> quickCheck $ unassocAssocLaw (Proxy :: Proxy (,)) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ unassocAssocLaw (Proxy :: Proxy Either) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ unassocAssocLaw (Proxy :: Proxy Tagged) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ unassocAssocLaw (Proxy :: Proxy Const) --- +++ OK, passed 100 tests. --- --- >>> :{ --- let bimapLaw :: (Assoc p, Eq2 p) => Proxy p --- -> Fun Int Char -> Fun Char Bool -> Fun Bool Int --- -> p (p Int Char) Bool --- -> Bool --- bimapLaw _ (Fun _ f) (Fun _ g) (Fun _ h) x = liftEq2 (==) eq2 --- (assoc . bimap (bimap f g) h $ x) --- (bimap f (bimap g h) . assoc $ x) --- :} --- --- >>> quickCheck $ bimapLaw (Proxy :: Proxy (,)) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ bimapLaw (Proxy :: Proxy Either) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ bimapLaw (Proxy :: Proxy Tagged) --- +++ OK, passed 100 tests. --- --- >>> quickCheck $ bimapLaw (Proxy :: Proxy Const) --- +++ OK, passed 100 tests. diff --git a/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Swap.hs b/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Swap.hs deleted file mode 100644 index 6a4c28d..0000000 --- a/dist-newstyle/tmp/src-3399/assoc-1.1.1/src/Data/Bifunctor/Swap.hs +++ /dev/null @@ -1,59 +0,0 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE TypeFamilies #-} -#if __GLASGOW_HASKELL__ >=704 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >=702 -{-# LANGUAGE Trustworthy #-} -#endif -module Data.Bifunctor.Swap ( - Swap (..), - ) where - -import Data.Bifunctor (Bifunctor (..)) - -import qualified Data.Tuple - --- | Symmetric 'Bifunctor's. --- --- @ --- 'swap' . 'swap' = 'id' --- @ --- --- If @p@ is a 'Bifunctor' the following property is assumed to hold: --- --- @ --- 'swap' . 'bimap' f g = 'bimap' g f . 'swap' --- @ --- --- 'Swap' isn't a subclass of 'Bifunctor', as for example --- --- >>> newtype Bipredicate a b = Bipredicate (a -> b -> Bool) --- --- is not a 'Bifunctor' but has 'Swap' instance --- --- >>> instance Swap Bipredicate where swap (Bipredicate p) = Bipredicate (flip p) --- -class Swap p where - swap :: p a b -> p b a - -instance Swap (,) where - swap = Data.Tuple.swap - -instance Swap Either where - swap (Left x) = Right x - swap (Right x) = Left x - -instance Swap ((,,) x) where - swap (x,a,b) = (x,b,a) - -instance Swap ((,,,) x y) where - swap (x,y,a,b) = (x,y,b,a) - -instance Swap ((,,,,) x y z) where - swap (x,y,z,a,b) = (x,y,z,b,a) - -instance Swap ((,,,,,) x y z w) where - swap (x,y,z,w,a,b) = (x,y,z,w,b,a) - -instance Swap ((,,,,,,) x y z w v) where - swap (x,y,z,w,v,a,b) = (x,y,z,w,v,b,a) diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/CHANGES.md b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/CHANGES.md deleted file mode 100644 index 5a328fd..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/CHANGES.md +++ /dev/null @@ -1,378 +0,0 @@ -See also https://pvp.haskell.org/faq - -## Version 1.5.0.0 - - * Add `QuantifiedConstraints` superclasses to `Hashable1/2`: - -```haskell -class (Eq1 t, forall a. Hashable a => Hashable (t a)) => Hashable1 t where -class (Eq2 t, forall a. Hashable a => Hashable1 (t a)) => Hashable2 t where -``` - - * Change contexts of `Compose`, `Product` and `Sum` instances. - This and above is the similar change as [CLC proposal #10](https://github.com/haskell/core-libraries-committee/issues/10) - - * The above changes require `base-4.18.0.0`, so we drop support for GHC prior GHC-9.6.5 - (The `hashable-1.4` branch will be maintained for time being for older GHC users). - - * Make `Arg a b` instance behave as `Hashable a` instance. - -## Version 1.4.7.0 - - * Make `arch-native` disabled by default. - -## Version 1.4.6.0 - - * Use GND&DerivingVia to derive `newtype` intances (`Data.Semigroup`, `Data.Monoid`, `Identity` etc). - -## Version 1.4.5.0 - - * Drop support for GHCs prior 8.6.5 - * Use xxhash for hashing bytestrings and bytearrays. - Note: when compiling binaries for distribution, you may need to disable - `arch-native` flag. - -## Version 1.4.4.0 - - * Depend on `os-string-2` for GHC-9.2+ - * Support `filepath-1.5` - -## Version 1.4.3.0 - - * Export `defaultHashWithSalt` and `defaultHash`. - * Fix issue of tuples with 0 first component causing all-zero state. - * Change `hashInt` to mix bits more. - -## Version 1.4.2.0 - - * Fix the foreign signature of `getThreadId` - https://github.com/haskell-unordered-containers/hashable/pull/263 - * Drop support for GHCs prior GHC-8.2 - The recent `unordered-containers` releases support only GHC-8.2+ - * Add instance for `OsString`, `PosixString`, `WindowsString` from `filepath-1.4.100.1` - * Add `Hashable ByteArray` instance using `data-array-byte` compat package - -## Version 1.4.1.0 - - * Add instance for `Data.Array.Byte.ByteArray`. - -## Version 1.4.0.2 - - * Restore older GHC support - * Support GHC-9.0.2 - -## Version 1.4.0.1 - - * `text-2.0` compatibility - -## Version 1.4.0.0 - - * `Eq` is now a superclass of `Hashable`. - Also `Eq1` is a superclass of `Hashable1` and `Eq2` is a superclass of `Hashable2` - when exists. - - * Remove `Hashable1 Fixed` instance - * Remove `Hashable1 Semi.Min/Max/...` instances as they don't have `Eq1` instance. - -## Version 1.3.5.0 - - * Add `Solo` instance (base-4.15+, GHC-9+) - -## Version 1.3.4.1 - - * Fix compilation on 32 bit platforms - * Fix `Tree` instance - -## Version 1.3.4.0 - * `Text` and `ByteString` hashes include length. - This fixes a variant of https://github.com/haskell-unordered-containers/hashable/issues/74 - for texts and bytestrings. - https://github.com/haskell-unordered-containers/hashable/pull/223 - * Use correct prime in `combine`. - This should improve the hash quality of compound structures on 64bit systems. - https://github.com/haskell-unordered-containers/hashable/pull/224 - * Add instance for types in `containers` package - https://github.com/haskell-unordered-containers/hashable/pull/226 - * Change `Int`, `Int64` and `Word64` `hashWithSalt` slightly. - https://github.com/haskell-unordered-containers/hashable/pull/227 - -## Version 1.3.3.0 - - * `Text` hashing uses 64-bit FNV prime - * Don't truncate Text hashvalues on 64bit Windows: - https://github.com/haskell-unordered-containers/hashable/pull/211 - -## Version 1.3.2.0 - - * Add `Hashable (Fixed a)` for `base <4.7` versions. - * Add documentation: - - `hashable` is not a stable hash - - `hashWithSalt` may return negative values - - there is `time-compat` with `Hashable` instances for `time` types. - * Add `random-initial-seed` flag causing the initial seed - to be randomized on each start of an executable using `hashable`. - -## Version 1.3.1.0 - - * Add `Hashable1` instances to `semigroups` types. - - * Use `ghc-bignum` with GHC-9.0 - - * Use FNV-1 constants. - - * Make `hashable-examples` a test-suite - -## Version 1.3.0.0 - - * Semantic change of `Hashable Arg` instance to *not* hash the second - argument of `Arg` in order to be consistent with `Eq Arg` (#171) - - * Semantic change of `Hashable Float` and `Hashable Double` instances - to hash `-0.0` and `0.0` to the same value (#173) - - * Add `Hashable` instance for `Fingerprint` (#156) - - * Add new `Data.Hashable.Generic` module providing the default - implementations `genericHashWithSalt` and `genericLiftHashWithSalt` - together with other Generics support helpers (#148, #178) - - * Bump minimum version requirement of `base` to `base-4.5` (i.e. GHC >= 7.4) - ----- - -## Version 1.2.7.0 - - * Add `Hashable` and `Hashable1` instances for `Complex` - - * Fix undefined behavior in `hashable_fn_hash()` implementation - due to signed integer overflow (#152) - - * Mark `Data.Hashable.Lifted` as `Trustworthy` (re SafeHaskell) - - * Support GHC 8.4 - -## Version 1.2.6.1 - - * Use typeRepFingerprint from Type.Reflection.Unsafe - - * Bump minimum version of base to 4.4. - -## Version 1.2.6.0 - - * Add support for type-indexed `Typeable`. - - * Rework the `Generic` hashable for sums. - -## Version 1.2.5.0 - - * Add `Hashable1` and `Hashable2` - - * Add instances for: `Eq1`, `Ord1`, `Show1`, `Ptr`, `FunPtr`, `IntPtr`, `WordPtr` - - * Add `Hashed` type for caching the `hash` function result. - -## Version 1.2.4.0 - - * Add instances for: Unique, Version, Fixed, NonEmpty, Min, Max, Arg, - First, Last, WrappedMonoid, Option - - * Support GHC 8.0 - -## Version 1.2.3.3 - - * Support integer-simple. - -## Version 1.2.3.2 - - * Add support for GHC 7.10 typeRepFingerprint - -## Version 1.2.3.1 - - * Added support for random 1.1.*. - -## Version 1.2.3.0 - - * Silence integer literal overflow warning - - * Add support for GHC 7.10 `integer-gmp2` & `Natural` - - * Add instance for Data.Void - - * Make the SSE .cabal flags manual - - * Add an upper bound on bytestring - -## Version 1.2.2.0 - - * Add instances for `Data.ByteString.Short` - - * Use a 32-bit default salt on 32-bit archs. - -## Version 1.2.1.0 - - * Revert instances to their 1.1 implementations to regain the - performance we had then. - - * Remove use of random salt altogether. Without using SipHash the - benefit is unclear (i.e. collision attacks still work) and the - complexity is no longer worth it. - - * Documentation improvements. - -## Version 1.2.0.10 - - * Fix for GHC 7.0. - -## Version 1.2.0.9 - - * Stop using SipHash. The current implementation still has segfault - causing bugs that we won't be able to fix soon. - - * Stop using Wang hash. It degrades performance of fixed-size integer - hashing too much. - -## Version 1.2.0.8 - - * Fix linking issue when SSE was disabled. - - * Hash small signed Integers correctly. - -## Version 1.2.0.7 - - * Add flags to control usage of SSE. - -## Version 1.2.0.6 - - * Fix another segfault caused by SSE2 code. - -## Version 1.2.0.5 - - * More portability fixes. - - * Force stack alignment to 16 bytes everywhere. Fixes a segfault. - - * Fix bug where code relied on rewrite rules firing for correctness. - -## Version 1.2.0.4 - - * Update docs to match code. - - * Work around bug in GHCi runtime linker, which never call static - initializers. - -## Version 1.2.0.3 - - * Make building of SSE 4.1 code conditional, as it doesn't work on all - platforms. - - * Use a fixed salt, but allow random salting. Random salting by - default broke people's code. - -## Version 1.2.0.2 - - * Work around ghci linker bug on Windows. - -## Version 1.2.0.1 - - * Fix performance bug in SSE implementation of SipHash. - - * Fix segfault due to incorrect stack alignment on Windows. - -## Version 1.2.0.0 - - * Switch string hashing from FNV-1 to SipHash, in an effort to - prevent collision attacks. - - * Switch fixed-size integer hashing to Wang hash. - - * The default salt now switched on every program run, in an effort to - prevent collision attacks. - - * Move hash method out of Hashable type class. - - * Add support for generic instance deriving. - - * Add instance for Ordering. - ----- - -## Version 1.1.2.5 - - * Bug fix for bytestring < 0.10.0. - -## Version 1.1.2.4 - - * Switch string hashing from Bernstein to FNV-1 - - * Faster instance for Integer. - - * Update dependency on base, ghc-prim - - * Now works with GHC 7.6. - -## Version 1.1.2.3 - - * Add instance for TypeRep. - - * Update dependency on test-framework. - -## Version 1.1.2.2 - - * Bug fix for GHC 7.4 - -## Version 1.1.2.1 - - * Update dependency on test-framework. - - * Improve documentation of combine. - -## Version 1.1.2.0 - - * Fix hash collision issues for lists and tuples when using a - user-specified salt. - - * Add instances for `Integer`, `Ratio`, `Float`, `Double`, and `StableName`. - - * Improved instances for tuples and lists. - -## Version 1.1.1.0 - - * Add `hashWithSalt`, which allows the user to create different hash - values for the same input by providing different seeds. This is - useful for application like Cuckoo hashing which need a family of - hash functions. - - * Fix a bug in the `Hashable` instance for `Int64`/`Word64` on 32-bit - platforms. - - * Improved resilience to leading zero in the input being hashed. - -## Version 1.1.0.0 - - * Add instance for: strict and lazy Texts, ThreadId - - * Add hashPtrWithSalt and hashByteArrayWithSalt. - - * Faster ByteArray# hashing. - - * Fix a signedness bug that affected ByteString. - - * Fix ByteString hashing to work correctly on both 32 and 64-bit - platforms. - -## Version 1.0.1.1 - - * Fix bug in Hashable instance for lazy ByteStrings where differences - in the internal structure of the ByteString could cause different - hash values for ByteStrings that are equal according to ==. - -## Version 1.0.1.0 - - * Add two helpers for creating Hashable instances: hashPtr and - hashByteArray. - ----- - -## Version 1.0.0 - - * Separate Hashable class to its own package from hashmap 1.0.0.3. diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/LICENSE b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/LICENSE deleted file mode 100644 index 7130957..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/LICENSE +++ /dev/null @@ -1,30 +0,0 @@ -Copyright Milan Straka 2010 - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of Milan Straka nor the names of other - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/README.md b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/README.md deleted file mode 100644 index d692480..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/README.md +++ /dev/null @@ -1,7 +0,0 @@ -The hashable package -==================== - -This package defines a class, `Hashable`, for types that can be -converted to a hash value. This class exists for the benefit of -hashing-based data structures. The package provides instances for -basic types and a way to combine hash values. diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/Setup.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/Setup.hs deleted file mode 100644 index cd7dc32..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/Setup.hs +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env runhaskell -import Distribution.Simple -main = defaultMain diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-unix/init.c b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-unix/init.c deleted file mode 100644 index db1ef62..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-unix/init.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include -#include -#include -#include - -uint64_t hs_hashable_init() { - - /* if there is /dev/urandom, read from it */ - FILE *urandom = fopen("/dev/urandom", "r"); - if (urandom) { - uint64_t result = 0; - size_t r = fread(&result, sizeof(uint64_t), 1, urandom); - fclose(urandom); - - if (r == 1) { - return result; - } else { - return 0xfeed1000; - } - - } else { - /* time of day */ - struct timeval tp = {0, 0}; - gettimeofday(&tp, NULL); - - /* cputime */ - clock_t c = clock(); - - /* process id */ - pid_t p = getpid(); - - return ((uint64_t) tp.tv_sec) - ^ ((uint64_t) tp.tv_usec) - ^ ((uint64_t) c << 16) - ^ ((uint64_t) p << 32); - } -} diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-win/init.c b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-win/init.c deleted file mode 100644 index 81f4e86..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/cbits-win/init.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -#include - -uint64_t hs_hashable_init() { - /* Handy list at https://stackoverflow.com/a/3487338/1308058 */ - - uint64_t a = GetCurrentProcessId(); /* DWORD */ - uint64_t b = GetCurrentThreadId(); /* DWORD */ - uint64_t c = GetTickCount(); /* DWORD */ - - SYSTEMTIME t = {0,0,0,0,0,0,0,0}; - GetSystemTime(&t); - - LARGE_INTEGER i; - QueryPerformanceCounter(&i); - - return a ^ (b << 32) ^ (c << 16) - ^ ((uint64_t) t.wYear << 56) - ^ ((uint64_t) t.wMonth << 48) - ^ ((uint64_t) t.wDayOfWeek << 40) - ^ ((uint64_t) t.wDay << 32) - ^ ((uint64_t) t.wHour << 24) - ^ ((uint64_t) t.wMinute << 16) - ^ ((uint64_t) t.wSecond << 8) - ^ ((uint64_t) t.wMilliseconds << 0) - ^ ((uint64_t) i.QuadPart); -} diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/examples/Main.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/examples/Main.hs deleted file mode 100644 index 961b057..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/examples/Main.hs +++ /dev/null @@ -1,52 +0,0 @@ -{-# LANGUAGE DeriveGeneric #-} -import Data.Hashable -import Data.Hashable.Lifted -import GHC.Generics (Generic) - -data Foo - = Foo1 Int Char Bool - | Foo2 String () - deriving (Eq, Generic) - -instance Hashable Foo - -data Bar = Bar Double Float - deriving (Eq, Generic) - -instance Hashable Bar - --- printHash :: (Hashable a, Show a) => a -> IO () --- printHash = print . hash - -main :: IO () -main = do - putStrLn "Hashing Foo1" - print . hash $ Foo1 22 'y' True - putStrLn "Hashing Foo2" - print . hash $ Foo2 "hello" () - putStrLn "Hashing Bar" - print . hash $ Bar 55.50 9.125 - ------------------------------------ --- Higher Rank Hashable Examples -- ------------------------------------ - -{- TODO: - -newtype WriterT w m a = WriterT { runWriterT :: m (a, w) } -data Free f a = Pure a | Free (f (Free f a)) - -instance (Hashable w, Hashable1 m) => Hashable1 (WriterT w m) where - liftHashWithSalt h s (WriterT m) = - liftHashWithSalt (liftHashWithSalt2 h hashWithSalt) s m -instance Hashable1 f => Hashable1 (Free f) where - liftHashWithSalt h = go where - go s x = case x of - Pure a -> h s a - Free p -> liftHashWithSalt go s p - -instance (Hashable w, Hashable1 m, Hashable a) => Hashable (WriterT w m a) where - hashWithSalt = hashWithSalt1 -instance (Hashable1 f, Hashable a) => Hashable (Free f a) where - hashWithSalt = hashWithSalt1 --} diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/hashable.cabal b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/hashable.cabal deleted file mode 100644 index 79901f9..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/hashable.cabal +++ /dev/null @@ -1,214 +0,0 @@ -cabal-version: 2.2 -name: hashable -version: 1.5.0.0 -synopsis: A class for types that can be converted to a hash value -description: - This package defines a class, 'Hashable', for types that can be converted to a hash value. - This class exists for the benefit of hashing-based data structures. - The package provides instances for basic types and a way to combine hash values. - . - 'Hashable' is intended exclusively for use in in-memory data structures. - . - 'Hashable' does /not/ have a fixed standard. - This allows it to improve over time. - . - Because it does not have a fixed standard, different computers or computers on different versions of the code will observe different hash values. - As such, 'hashable' is not recommended for use other than in-memory datastructures. - Specifically, 'hashable' is not intended for network use or in applications which persist hashed values. - For stable hashing use named hashes: sha256, crc32, xxhash etc. - -homepage: http://github.com/haskell-unordered-containers/hashable -license: BSD-3-Clause -license-file: LICENSE -author: - Milan Straka - Johan Tibell - -maintainer: Oleg Grenrus -bug-reports: - https://github.com/haskell-unordered-containers/hashable/issues - -stability: Provisional -category: Data -build-type: Simple -tested-with: GHC ==9.6.5 || ==9.8.2 || ==9.10.1 -extra-source-files: - CHANGES.md - include/HsHashable.h - include/HsXXHash.h - README.md - xxHash-0.8.2/xxhash.h - -flag arch-native - description: - Use @-march=native@ when compiling C sources. - Portable implementation is 15-50% slower. - Consider enabling this flag if hashing performance is important. - - manual: True - default: False - -flag random-initial-seed - description: - Randomly initialize the initial seed on each final executable invocation - This is useful for catching cases when you rely on (non-existent) - stability of hashable's hash functions. - This is not a security feature. - - manual: True - default: False - -library - exposed-modules: - Data.Hashable - Data.Hashable.Generic - Data.Hashable.Lifted - - other-modules: - Data.Hashable.Class - Data.Hashable.FFI - Data.Hashable.Generic.Instances - Data.Hashable.Imports - Data.Hashable.LowLevel - Data.Hashable.Mix - Data.Hashable.XXH3 - - include-dirs: include xxHash-0.8.2 - includes: - HsHashable.h - HsXXHash.h - xxhash.h - - hs-source-dirs: src - build-depends: - , base >=4.18.0.0 && <4.21 - , bytestring >=0.11.5.3 && <0.13 - , containers >=0.6.7 && <0.8 - , deepseq >=1.4.8.1 && <1.6 - , ghc-prim - , text >=2.0.2 && <2.2 - - -- depend on os-string on newer GHCs only. - -- os-string has tight lower bound on bytestring, which prevents - -- using bundled version on older GHCs. - build-depends: os-string >=2.0.2 && <2.1 - - -- we also ensure that we can get filepath-1.5 only with GHC-9.2 - -- therefore there is else-branch with stricter upper bound. - build-depends: filepath >=1.4.200.1 && <1.6 - - -- Integer internals - build-depends: ghc-bignum >=1.3 && <1.4 - - if (flag(random-initial-seed) && impl(ghc)) - cpp-options: -DHASHABLE_RANDOM_SEED=1 - - if os(windows) - c-sources: cbits-win/init.c - - else - c-sources: cbits-unix/init.c - - default-language: Haskell2010 - other-extensions: - BangPatterns - CPP - DeriveDataTypeable - FlexibleContexts - FlexibleInstances - GADTs - KindSignatures - MagicHash - MultiParamTypeClasses - QuantifiedConstraints - ScopedTypeVariables - Trustworthy - TypeOperators - UnliftedFFITypes - - ghc-options: -Wall - - if flag(arch-native) - -- Cabal doesn't pass cc-options to "ordinary" Haskell source compilation - -- https://github.com/haskell/cabal/issues/9801 - ghc-options: -optc=-march=native -optc-mtune=native - - if impl(ghc >=9.0) - -- these flags may abort compilation with GHC-8.10 - -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295 - ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode - -test-suite hashable-tests - type: exitcode-stdio-1.0 - hs-source-dirs: tests - main-is: Main.hs - other-modules: - Properties - Regress - - build-depends: - , base - , bytestring - , filepath - , ghc-prim - , hashable - , HUnit - , QuickCheck >=2.15 - , random >=1.0 && <1.3 - , tasty ^>=1.5 - , tasty-hunit ^>=0.10.1 - , tasty-quickcheck ^>=0.10.3 - , text >=0.11.0.5 - - if impl(ghc >=9.2) - build-depends: os-string - - if !os(windows) - build-depends: unix - cpp-options: -DHAVE_MMAP - other-modules: Regress.Mmap - other-extensions: CApiFFI - - ghc-options: -Wall -fno-warn-orphans - default-language: Haskell2010 - -test-suite xxhash-tests - type: exitcode-stdio-1.0 - hs-source-dirs: tests src - main-is: xxhash-tests.hs - other-modules: - Data.Hashable.FFI - Data.Hashable.XXH3 - - default-language: Haskell2010 - build-depends: - , base - , bytestring - , primitive ^>=0.9.0.0 - , tasty ^>=1.5 - , tasty-hunit ^>=0.10.1 - , tasty-quickcheck ^>=0.10.3 - - include-dirs: include xxHash-0.8.2 - includes: - HsXXHash.h - xxhash.h - - if !impl(ghc >=9.4) - build-depends: data-array-byte >=0.1.0.1 && <0.2 - -test-suite hashable-examples - type: exitcode-stdio-1.0 - build-depends: - , base - , ghc-prim - , hashable - - hs-source-dirs: examples - main-is: Main.hs - default-language: Haskell2010 - -source-repository head - type: git - location: - https://github.com/haskell-unordered-containers/hashable.git diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsHashable.h b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsHashable.h deleted file mode 100644 index 5dee9ef..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsHashable.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef HS_HASHABLE_H -#define HS_HASHABLE_H - -#include - -uint64_t hs_hashable_init(); - -#endif diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsXXHash.h b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsXXHash.h deleted file mode 100644 index 6373e76..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/include/HsXXHash.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef HS_XXHASH_H -#define HS_XXHASH_H - -#include - -#define XXH_INLINE_ALL -#include "xxhash.h" - -#define hs_XXH3_sizeof_state_s sizeof(struct XXH3_state_s) - -static inline uint64_t hs_XXH3_64bits_withSeed_offset(const uint8_t *ptr, size_t off, size_t len, uint64_t seed) { - return XXH3_64bits_withSeed(ptr + off, len, seed); -} - -static inline uint64_t hs_XXH3_64bits_withSeed_u64(uint64_t val, uint64_t seed) { - return XXH3_64bits_withSeed(&val, sizeof(val), seed); -} - -static inline uint64_t hs_XXH3_64bits_withSeed_u32(uint32_t val, uint64_t seed) { - return XXH3_64bits_withSeed(&val, sizeof(val), seed); -} - -static inline void hs_XXH3_64bits_update_offset(XXH3_state_t *statePtr, const uint8_t *ptr, size_t off, size_t len) { - XXH3_64bits_update(statePtr, ptr + off, len); -} - -static inline void hs_XXH3_64bits_update_u64(XXH3_state_t *statePtr, uint64_t val) { - XXH3_64bits_update(statePtr, &val, sizeof(val)); -} - -static inline void hs_XXH3_64bits_update_u32(XXH3_state_t *statePtr, uint32_t val) { - XXH3_64bits_update(statePtr, &val, sizeof(val)); -} - -#endif /* HS_XXHASH_H */ diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable.hs deleted file mode 100644 index c2045eb..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable.hs +++ /dev/null @@ -1,215 +0,0 @@ -{-# LANGUAGE DeriveDataTypeable #-} -{-# LANGUAGE Safe #-} - ------------------------------------------------------------------------- --- | --- Module : Data.Hashable --- Copyright : (c) Milan Straka 2010 --- (c) Johan Tibell 2011 --- (c) Bryan O'Sullivan 2011, 2012 --- SPDX-License-Identifier : BSD-3-Clause --- Maintainer : johan.tibell@gmail.com --- Stability : provisional --- Portability : portable --- --- This module defines a class, 'Hashable', for types that can be --- converted to a hash value. This class exists for the benefit of --- hashing-based data structures. The module provides instances for --- most standard types. Efficient instances for other types can be --- generated automatically and effortlessly using the generics support --- in GHC 7.4 and above. --- --- The easiest way to get started is to use the 'hash' function. Here --- is an example session with @ghci@. --- --- > ghci> import Data.Hashable --- > ghci> hash "foo" --- > 60853164 - -module Data.Hashable - ( - -- * Hashing and security - -- $security - - -- * Computing hash values - Hashable(..) - - -- * Creating new instances - -- | There are two ways to create new instances: by deriving - -- instances automatically using GHC's generic programming - -- support or by writing instances manually. - - -- ** Generic instances - -- $generics - - -- *** Understanding a compiler error - -- $generic_err - - -- ** Writing instances by hand - -- $blocks - - -- *** Hashing contructors with multiple fields - -- $multiple-fields - - -- *** Hashing types with multiple constructors - -- $multiple-ctors - - , hashUsing - , hashPtr - , hashPtrWithSalt - , hashByteArray - , hashByteArrayWithSalt - - , defaultHashWithSalt - , defaultHash - - -- * Caching hashes - , Hashed - , hashed - , hashedHash - , unhashed - , mapHashed - , traverseHashed - ) where - -import Data.Hashable.Class -import Data.Hashable.Generic () - --- $security --- #security# --- --- Applications that use hash-based data structures to store input --- from untrusted users can be susceptible to \"hash DoS\", a class of --- denial-of-service attack that uses deliberately chosen colliding --- inputs to force an application into unexpectedly behaving with --- quadratic time complexity. --- --- At this time, the string hashing functions used in this library are --- susceptible to such attacks and users are recommended to either use --- a 'Data.Map' to store keys derived from untrusted input or to use a --- hash function (e.g. SipHash) that's resistant to such attacks. A --- future version of this library might ship with such hash functions. - --- $generics --- --- The recommended way to make instances of --- 'Hashable' for most types is to use the compiler's support for --- automatically generating default instances using "GHC.Generics". --- --- > {-# LANGUAGE DeriveGeneric #-} --- > --- > import GHC.Generics (Generic) --- > import Data.Hashable --- > --- > data Foo a = Foo a String --- > deriving (Eq, Generic) --- > --- > instance Hashable a => Hashable (Foo a) --- > --- > data Colour = Red | Green | Blue --- > deriving Generic --- > --- > instance Hashable Colour --- --- If you omit a body for the instance declaration, GHC will generate --- a default instance that correctly and efficiently hashes every --- constructor and parameter. --- --- The default implementations are provided by --- 'genericHashWithSalt' and 'genericLiftHashWithSalt'; those together with --- the generic type class 'GHashable' and auxiliary functions are exported --- from the "Data.Hashable.Generic" module. - --- $generic_err --- --- Suppose you intend to use the generic machinery to automatically --- generate a 'Hashable' instance. --- --- > data Oops = Oops --- > -- forgot to add "deriving Generic" here! --- > --- > instance Hashable Oops --- --- And imagine that, as in the example above, you forget to add a --- \"@deriving 'Generic'@\" clause to your data type. At compile time, --- you will get an error message from GHC that begins roughly as --- follows: --- --- > No instance for (GHashable (Rep Oops)) --- --- This error can be confusing, as 'GHashable' is not exported (it is --- an internal typeclass used by this library's generics machinery). --- The correct fix is simply to add the missing \"@deriving --- 'Generic'@\". - --- $blocks --- --- To maintain high quality hashes, new 'Hashable' instances should be --- built using existing 'Hashable' instances, combinators, and hash --- functions. --- --- The functions below can be used when creating new instances of --- 'Hashable'. For example, for many string-like types the --- 'hashWithSalt' method can be defined in terms of either --- 'hashPtrWithSalt' or 'hashByteArrayWithSalt'. Here's how you could --- implement an instance for the 'B.ByteString' data type, from the --- @bytestring@ package: --- --- > import qualified Data.ByteString as B --- > import qualified Data.ByteString.Internal as B --- > import qualified Data.ByteString.Unsafe as B --- > import Data.Hashable --- > import Foreign.Ptr (castPtr) --- > --- > instance Hashable B.ByteString where --- > hashWithSalt salt bs = B.inlinePerformIO $ --- > B.unsafeUseAsCStringLen bs $ \(p, len) -> --- > hashPtrWithSalt p (fromIntegral len) salt - --- $multiple-fields --- --- Hash constructors with multiple fields by chaining 'hashWithSalt': --- --- > data Date = Date Int Int Int --- > --- > instance Hashable Date where --- > hashWithSalt s (Date yr mo dy) = --- > s `hashWithSalt` --- > yr `hashWithSalt` --- > mo `hashWithSalt` dy --- --- If you need to chain hashes together, use 'hashWithSalt' and follow --- this recipe: --- --- > combineTwo h1 h2 = h1 `hashWithSalt` h2 - --- $multiple-ctors --- --- For a type with several value constructors, there are a few --- possible approaches to writing a 'Hashable' instance. --- --- If the type is an instance of 'Enum', the easiest path is to --- convert it to an 'Int', and use the existing 'Hashable' instance --- for 'Int'. --- --- > data Color = Red | Green | Blue --- > deriving Enum --- > --- > instance Hashable Color where --- > hashWithSalt = hashUsing fromEnum --- --- If the type's constructors accept parameters, it is important to --- distinguish the constructors. To distinguish the constructors, add --- a different integer to the hash computation of each constructor: --- --- > data Time = Days Int --- > | Weeks Int --- > | Months Int --- > --- > instance Hashable Time where --- > hashWithSalt s (Days n) = s `hashWithSalt` --- > (0::Int) `hashWithSalt` n --- > hashWithSalt s (Weeks n) = s `hashWithSalt` --- > (1::Int) `hashWithSalt` n --- > hashWithSalt s (Months n) = s `hashWithSalt` --- > (2::Int) `hashWithSalt` n diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Class.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Class.hs deleted file mode 100644 index 9de9209..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Class.hs +++ /dev/null @@ -1,999 +0,0 @@ -{-# LANGUAGE BangPatterns #-} -{-# LANGUAGE CApiFFI #-} -{-# LANGUAGE CPP #-} -{-# LANGUAGE DefaultSignatures #-} -{-# LANGUAGE DerivingStrategies #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE GeneralizedNewtypeDeriving #-} -{-# LANGUAGE MagicHash #-} -{-# LANGUAGE MultiParamTypeClasses #-} -{-# LANGUAGE PackageImports #-} -{-# LANGUAGE PolyKinds #-} -{-# LANGUAGE QuantifiedConstraints #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE StandaloneDeriving #-} -{-# LANGUAGE Trustworthy #-} -{-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE UnliftedFFITypes #-} -{-# OPTIONS_GHC -fno-warn-deprecations #-} - ------------------------------------------------------------------------- --- | --- Module : Data.Hashable.Class --- Copyright : (c) Milan Straka 2010 --- (c) Johan Tibell 2011 --- (c) Bryan O'Sullivan 2011, 2012 --- SPDX-License-Identifier : BSD-3-Clause --- Maintainer : johan.tibell@gmail.com --- Stability : provisional --- Portability : portable --- --- This module defines a class, 'Hashable', for types that can be --- converted to a hash value. This class exists for the benefit of --- hashing-based data structures. The module provides instances for --- most standard types. - -module Data.Hashable.Class - ( - -- * Computing hash values - Hashable(..) - , Hashable1(..) - , Hashable2(..) - - -- ** Support for generics - , genericHashWithSalt - , genericLiftHashWithSalt - , GHashable(..) - , HashArgs(..) - , Zero - , One - - -- * Creating new instances - , hashUsing - , hashPtr - , hashPtrWithSalt - , hashByteArray - , hashByteArrayWithSalt - , defaultHashWithSalt - , defaultHash - -- * Higher Rank Functions - , hashWithSalt1 - , hashWithSalt2 - , defaultLiftHashWithSalt - -- * Caching hashes - , Hashed - , hashed - , hashedHash - , unhashed - , mapHashed - , traverseHashed - ) where - -import Control.Applicative (Const (..)) -import Control.DeepSeq (NFData (rnf)) -import Control.Exception (assert) -import Control.Monad.ST (runST) -import Data.Array.Byte (ByteArray (..)) -import Data.Complex (Complex (..)) -import Data.Fixed (Fixed (..)) -import Data.Functor.Classes (Eq1 (..), Eq2 (..), Ord1 (..), Show1 (..)) -import Data.Functor.Compose (Compose (..)) -import Data.Functor.Identity (Identity (..)) -import Data.Int (Int16, Int8) -import Data.Kind (Type) -import Data.List (foldl') -import Data.Proxy (Proxy) -import Data.Ratio (Ratio, denominator, numerator) -import Data.String (IsString (..)) -import Data.Tuple (Solo (..)) -import Data.Unique (Unique, hashUnique) -import Data.Version (Version (..)) -import Data.Void (Void, absurd) -import Data.Word (Word16, Word8) -import Foreign.Ptr (FunPtr, IntPtr, Ptr, WordPtr, castFunPtrToPtr, ptrToIntPtr) -import Foreign.Storable (alignment, sizeOf) -import GHC.Base (ByteArray#) -import GHC.Conc (ThreadId (..)) -import GHC.Fingerprint.Type (Fingerprint (..)) -import GHC.Word (Word (..)) -import System.Mem.StableName (StableName, hashStableName) -import Type.Reflection (SomeTypeRep (..), TypeRep) -import Type.Reflection.Unsafe (typeRepFingerprint) - -import qualified Data.Array.Byte as AB -import qualified Data.ByteString as B -import qualified Data.ByteString.Lazy as BL -import qualified Data.ByteString.Short.Internal as BSI -import qualified Data.Functor.Product as FP -import qualified Data.Functor.Sum as FS -import qualified Data.IntMap as IntMap -import qualified Data.IntSet as IntSet -import qualified Data.List.NonEmpty as NE -import qualified Data.Map as Map -import qualified Data.Semigroup as Semi -import qualified Data.Sequence as Seq -import qualified Data.Set as Set -import qualified Data.Text as T -import qualified Data.Text.Array as TA -import qualified Data.Text.Internal as T -import qualified Data.Text.Lazy as TL -import qualified Data.Tree as Tree - -import GHC.Generics - -#if MIN_VERSION_base(4,19,0) -import GHC.Conc.Sync (fromThreadId) -#else -import GHC.Prim (ThreadId#) -#if __GLASGOW_HASKELL__ >= 904 -import Foreign.C.Types (CULLong (..)) -#elif __GLASGOW_HASKELL__ >= 900 -import Foreign.C.Types (CLong (..)) -#else -import Foreign.C.Types (CInt (..)) -#endif -#endif - -import GHC.Exts (Int (..), sizeofByteArray#) -import GHC.Num.BigNat (BigNat (..)) -import GHC.Num.Integer (Integer (..)) -import GHC.Num.Natural (Natural (..)) - - -import GHC.Float (castDoubleToWord64, castFloatToWord32) - --- filepath >=1.4.100 && <1.5 has System.OsString.Internal.Types module -#if MIN_VERSION_filepath(1,4,100) && !(MIN_VERSION_filepath(1,5,0)) -#define HAS_OS_STRING_filepath 1 -#else -#define HAS_OS_STRING_filepath 0 -#endif - --- if we depend on os_string module, then it has System.OsString.Internal.Types --- module as well -#ifdef MIN_VERSION_os_string -#define HAS_OS_STRING_os_string 1 -#else -#define HAS_OS_STRING_os_string 0 -#endif - -#if HAS_OS_STRING_filepath && HAS_OS_STRING_os_string -import "os-string" System.OsString.Internal.Types (OsString (..), PosixString (..), WindowsString (..)) -import qualified "filepath" System.OsString.Internal.Types as FP (OsString (..), PosixString (..), WindowsString (..)) -#elif HAS_OS_STRING_filepath || HAS_OS_STRING_os_string -import System.OsString.Internal.Types (OsString (..), PosixString (..), WindowsString (..)) -#endif - -import Data.Hashable.Imports -import Data.Hashable.LowLevel -import Data.Hashable.XXH3 - -#include "MachDeps.h" - -infixl 0 `hashWithSalt` - ------------------------------------------------------------------------- --- * Computing hash values - --- | The class of types that can be converted to a hash value. --- --- Minimal implementation: 'hashWithSalt'. --- --- 'Hashable' is intended exclusively for use in in-memory data structures. --- . --- 'Hashable' does /not/ have a fixed standard. --- This allows it to improve over time. --- . --- Because it does not have a fixed standard, different computers or computers on different versions of the code will observe different hash values. --- As such, 'Hashable' is not recommended for use other than in-memory datastructures. --- Specifically, 'Hashable' is not intended for network use or in applications which persist hashed values. --- For stable hashing use named hashes: sha256, crc32, xxhash etc. --- --- If you are looking for 'Hashable' instance in @time@ package, --- check [time-compat](https://hackage.haskell.org/package/time-compat) --- -class Eq a => Hashable a where - -- | Return a hash value for the argument, using the given salt. - -- - -- The general contract of 'hashWithSalt' is: - -- - -- * If two values are equal according to the '==' method, then - -- applying the 'hashWithSalt' method on each of the two values - -- /must/ produce the same integer result if the same salt is - -- used in each case. - -- - -- * It is /not/ required that if two values are unequal - -- according to the '==' method, then applying the - -- 'hashWithSalt' method on each of the two values must produce - -- distinct integer results. However, the programmer should be - -- aware that producing distinct integer results for unequal - -- values may improve the performance of hashing-based data - -- structures. - -- - -- * This method can be used to compute different hash values for - -- the same input by providing a different salt in each - -- application of the method. This implies that any instance - -- that defines 'hashWithSalt' /must/ make use of the salt in - -- its implementation. - -- - -- * 'hashWithSalt' may return negative 'Int' values. - -- - hashWithSalt :: Int -> a -> Int - - -- | Like 'hashWithSalt', but no salt is used. The default - -- implementation uses 'hashWithSalt' with some default salt. - -- Instances might want to implement this method to provide a more - -- efficient implementation than the default implementation. - hash :: a -> Int - hash = defaultHash - - default hashWithSalt :: (Generic a, GHashable Zero (Rep a)) => Int -> a -> Int - hashWithSalt = genericHashWithSalt - {-# INLINE hashWithSalt #-} - --- | Generic 'hashWithSalt'. --- --- @since 1.3.0.0 -genericHashWithSalt :: (Generic a, GHashable Zero (Rep a)) => Int -> a -> Int -genericHashWithSalt = \salt -> ghashWithSalt HashArgs0 salt . from -{-# INLINE genericHashWithSalt #-} - -data Zero -data One - -data family HashArgs arity a :: Type -data instance HashArgs Zero a = HashArgs0 -newtype instance HashArgs One a = HashArgs1 (Int -> a -> Int) - --- | The class of types that can be generically hashed. -class GHashable arity f where - ghashWithSalt :: HashArgs arity a -> Int -> f a -> Int - -class (Eq1 t, forall a. Hashable a => Hashable (t a)) => Hashable1 t where - -- | Lift a hashing function through the type constructor. - liftHashWithSalt :: (Int -> a -> Int) -> Int -> t a -> Int - - default liftHashWithSalt :: (Generic1 t, GHashable One (Rep1 t)) => (Int -> a -> Int) -> Int -> t a -> Int - liftHashWithSalt = genericLiftHashWithSalt - {-# INLINE liftHashWithSalt #-} - --- | Generic 'liftHashWithSalt'. --- --- @since 1.3.0.0 -genericLiftHashWithSalt :: (Generic1 t, GHashable One (Rep1 t)) => (Int -> a -> Int) -> Int -> t a -> Int -genericLiftHashWithSalt = \h salt -> ghashWithSalt (HashArgs1 h) salt . from1 -{-# INLINE genericLiftHashWithSalt #-} - -class (Eq2 t, forall a. Hashable a => Hashable1 (t a)) => Hashable2 t where - -- | Lift a hashing function through the binary type constructor. - liftHashWithSalt2 :: (Int -> a -> Int) -> (Int -> b -> Int) -> Int -> t a b -> Int - --- | Lift the 'hashWithSalt' function through the type constructor. --- --- > hashWithSalt1 = liftHashWithSalt hashWithSalt -hashWithSalt1 :: (Hashable1 f, Hashable a) => Int -> f a -> Int -hashWithSalt1 = liftHashWithSalt hashWithSalt - --- | Lift the 'hashWithSalt' function through the type constructor. --- --- > hashWithSalt2 = liftHashWithSalt2 hashWithSalt hashWithSalt -hashWithSalt2 :: (Hashable2 f, Hashable a, Hashable b) => Int -> f a b -> Int -hashWithSalt2 = liftHashWithSalt2 hashWithSalt hashWithSalt - --- | Lift the 'hashWithSalt' function halfway through the type constructor. --- This function makes a suitable default implementation of 'liftHashWithSalt', --- given that the type constructor @t@ in question can unify with @f a@. -defaultLiftHashWithSalt :: (Hashable2 f, Hashable a) => (Int -> b -> Int) -> Int -> f a b -> Int -defaultLiftHashWithSalt h = liftHashWithSalt2 hashWithSalt h - --- | Since we support a generic implementation of 'hashWithSalt' we --- cannot also provide a default implementation for that method for --- the non-generic instance use case. Instead we provide --- 'defaultHashWith'. --- --- @since 1.4.3.0 --- -defaultHashWithSalt :: Hashable a => Int -> a -> Int -defaultHashWithSalt salt x = salt `hashInt` hash x - --- | Default implementation of 'hash' based on 'hashWithSalt'. --- --- @since 1.4.3.0 --- -defaultHash :: Hashable a => a -> Int -defaultHash = hashWithSalt defaultSalt - --- | Transform a value into a 'Hashable' value, then hash the --- transformed value using the given salt. --- --- This is a useful shorthand in cases where a type can easily be --- mapped to another type that is already an instance of 'Hashable'. --- Example: --- --- > data Foo = Foo | Bar --- > deriving (Enum) --- > --- > instance Hashable Foo where --- > hashWithSalt = hashUsing fromEnum --- --- @since 1.2.0.0 -hashUsing :: (Hashable b) => - (a -> b) -- ^ Transformation function. - -> Int -- ^ Salt. - -> a -- ^ Value to transform. - -> Int -hashUsing f salt x = hashWithSalt salt (f x) -{-# INLINE hashUsing #-} - -instance Hashable Int where - hash = id - hashWithSalt = hashInt - -instance Hashable Int8 where - hash = fromIntegral - hashWithSalt = defaultHashWithSalt - -instance Hashable Int16 where - hash = fromIntegral - hashWithSalt = defaultHashWithSalt - -instance Hashable Int32 where - hash = fromIntegral - hashWithSalt = defaultHashWithSalt - -instance Hashable Int64 where - hash = fromIntegral - hashWithSalt = hashInt64 - -instance Hashable Word where - hash = fromIntegral - hashWithSalt = defaultHashWithSalt - -instance Hashable Word8 where - hash = fromIntegral - hashWithSalt = defaultHashWithSalt - -instance Hashable Word16 where - hash = fromIntegral - hashWithSalt = defaultHashWithSalt - -instance Hashable Word32 where - hash = fromIntegral - hashWithSalt = defaultHashWithSalt - -instance Hashable Word64 where - hash = fromIntegral - hashWithSalt = hashWord64 - -instance Hashable () where - hash = fromEnum - hashWithSalt = defaultHashWithSalt - -instance Hashable Bool where - hash = fromEnum - hashWithSalt = defaultHashWithSalt - -instance Hashable Ordering where - hash = fromEnum - hashWithSalt = defaultHashWithSalt - -instance Hashable Char where - hash = fromEnum - hashWithSalt = defaultHashWithSalt - -instance Hashable BigNat where - hashWithSalt salt (BN# ba) = hashWithSalt salt (ByteArray ba) - -instance Hashable Natural where - hash (NS n) = hash (W# n) - hash (NB bn) = hash (BN# bn) - - hashWithSalt salt (NS n) = hashWithSalt salt (W# n) - hashWithSalt salt (NB bn) = hashWithSalt salt (BN# bn) - -instance Hashable Integer where - hash (IS n) = I# n - hash (IP bn) = hash (BN# bn) - hash (IN bn) = negate (hash (BN# bn)) - - hashWithSalt salt (IS n) = hashWithSalt salt (I# n) - hashWithSalt salt (IP bn) = hashWithSalt salt (BN# bn) - hashWithSalt salt (IN bn) = negate (hashWithSalt salt (BN# bn)) - -instance Hashable a => Hashable (Complex a) where - {-# SPECIALIZE instance Hashable (Complex Double) #-} - {-# SPECIALIZE instance Hashable (Complex Float) #-} - hash (r :+ i) = hash r `hashWithSalt` i - hashWithSalt = hashWithSalt1 -instance Hashable1 Complex where - liftHashWithSalt h s (r :+ i) = s `h` r `h` i - -instance Hashable a => Hashable (Ratio a) where - {-# SPECIALIZE instance Hashable (Ratio Integer) #-} - hash a = hash (numerator a) `hashWithSalt` denominator a - hashWithSalt s a = s `hashWithSalt` numerator a `hashWithSalt` denominator a - --- | __Note__: prior to @hashable-1.3.0.0@, @hash 0.0 /= hash (-0.0)@ --- --- The 'hash' of NaN is not well defined. --- --- @since 1.3.0.0 -instance Hashable Float where - hash x - | x == -0.0 || x == 0.0 = 0 -- see note in 'Hashable Double' - | isIEEE x = - assert (sizeOf x >= sizeOf (0::Word32) && - alignment x >= alignment (0::Word32)) $ - hash (castFloatToWord32 x) - | otherwise = hash (show x) - hashWithSalt = defaultHashWithSalt - --- | __Note__: prior to @hashable-1.3.0.0@, @hash 0.0 /= hash (-0.0)@ --- --- The 'hash' of NaN is not well defined. --- --- @since 1.3.0.0 -instance Hashable Double where - hash x - | x == -0.0 || x == 0.0 = 0 -- s.t. @hash -0.0 == hash 0.0@ ; see #173 - | isIEEE x = - assert (sizeOf x >= sizeOf (0::Word64) && - alignment x >= alignment (0::Word64)) $ - hash (castDoubleToWord64 x) - | otherwise = hash (show x) - hashWithSalt = defaultHashWithSalt - --- | A value with bit pattern (01)* (or 5* in hexa), for any size of Int. --- It is used as data constructor distinguisher. GHC computes its value during --- compilation. -distinguisher :: Int -distinguisher = fromIntegral $ (maxBound :: Word) `quot` 3 -{-# INLINE distinguisher #-} - -instance Hashable a => Hashable (Maybe a) where - hash Nothing = 0 - hash (Just a) = distinguisher `hashWithSalt` a - hashWithSalt = hashWithSalt1 - -instance Hashable1 Maybe where - liftHashWithSalt _ s Nothing = s `hashInt` 0 - liftHashWithSalt h s (Just a) = s `hashInt` distinguisher `h` a - -instance (Hashable a, Hashable b) => Hashable (Either a b) where - hash (Left a) = 0 `hashWithSalt` a - hash (Right b) = distinguisher `hashWithSalt` b - hashWithSalt = hashWithSalt1 - -instance Hashable a => Hashable1 (Either a) where - liftHashWithSalt = defaultLiftHashWithSalt - -instance Hashable2 Either where - liftHashWithSalt2 h _ s (Left a) = s `hashInt` 0 `h` a - liftHashWithSalt2 _ h s (Right b) = s `hashInt` distinguisher `h` b - -instance (Hashable a1, Hashable a2) => Hashable (a1, a2) where - hashWithSalt = hashWithSalt1 - -instance Hashable a1 => Hashable1 ((,) a1) where - liftHashWithSalt = defaultLiftHashWithSalt - -instance Hashable2 (,) where - liftHashWithSalt2 h1 h2 s (a1, a2) = s `h1` a1 `h2` a2 - -instance (Hashable a1, Hashable a2, Hashable a3) => Hashable (a1, a2, a3) where - hashWithSalt = hashWithSalt1 - -instance (Hashable a1, Hashable a2) => Hashable1 ((,,) a1 a2) where - liftHashWithSalt = defaultLiftHashWithSalt - -instance Hashable a1 => Hashable2 ((,,) a1) where - liftHashWithSalt2 h1 h2 s (a1, a2, a3) = - (s `hashWithSalt` a1) `h1` a2 `h2` a3 - -instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4) => - Hashable (a1, a2, a3, a4) where - hashWithSalt = hashWithSalt1 - -instance (Hashable a1, Hashable a2, Hashable a3) => Hashable1 ((,,,) a1 a2 a3) where - liftHashWithSalt = defaultLiftHashWithSalt - -instance (Hashable a1, Hashable a2) => Hashable2 ((,,,) a1 a2) where - liftHashWithSalt2 h1 h2 s (a1, a2, a3, a4) = - (s `hashWithSalt` a1 `hashWithSalt` a2) `h1` a3 `h2` a4 - -instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5) - => Hashable (a1, a2, a3, a4, a5) where - hashWithSalt s (a1, a2, a3, a4, a5) = - s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 - `hashWithSalt` a4 `hashWithSalt` a5 - -{- -instance (Hashable a1, Hashable a2, Hashable a3, - Hashable a4) => Hashable1 ((,,,,) a1 a2 a3 a4) where - liftHashWithSalt = defaultLiftHashWithSalt - -instance (Hashable a1, Hashable a2, Hashable a3) - => Hashable2 ((,,,,) a1 a2 a3) where - liftHashWithSalt2 h1 h2 s (a1, a2, a3, a4, a5) = - (s `hashWithSalt` a1 `hashWithSalt` a2 - `hashWithSalt` a3) `h1` a4 `h2` a5 --} - -instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5, - Hashable a6) => Hashable (a1, a2, a3, a4, a5, a6) where - hashWithSalt s (a1, a2, a3, a4, a5, a6) = - s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 - `hashWithSalt` a4 `hashWithSalt` a5 `hashWithSalt` a6 - -{- -instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, - Hashable a5) => Hashable1 ((,,,,,) a1 a2 a3 a4 a5) where - liftHashWithSalt = defaultLiftHashWithSalt - -instance (Hashable a1, Hashable a2, Hashable a3, - Hashable a4) => Hashable2 ((,,,,,) a1 a2 a3 a4) where - liftHashWithSalt2 h1 h2 s (a1, a2, a3, a4, a5, a6) = - (s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 - `hashWithSalt` a4) `h1` a5 `h2` a6 --} - -instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5, - Hashable a6, Hashable a7) => - Hashable (a1, a2, a3, a4, a5, a6, a7) where - hashWithSalt s (a1, a2, a3, a4, a5, a6, a7) = - s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 - `hashWithSalt` a4 `hashWithSalt` a5 `hashWithSalt` a6 `hashWithSalt` a7 - -{- -instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5, Hashable a6) => Hashable1 ((,,,,,,) a1 a2 a3 a4 a5 a6) where - liftHashWithSalt = defaultLiftHashWithSalt - -instance (Hashable a1, Hashable a2, Hashable a3, Hashable a4, - Hashable a5) => Hashable2 ((,,,,,,) a1 a2 a3 a4 a5) where - liftHashWithSalt2 h1 h2 s (a1, a2, a3, a4, a5, a6, a7) = - (s `hashWithSalt` a1 `hashWithSalt` a2 `hashWithSalt` a3 - `hashWithSalt` a4 `hashWithSalt` a5) `h1` a6 `h2` a7 --} - -instance Hashable (StableName a) where - hash = hashStableName - hashWithSalt = defaultHashWithSalt - --- Auxiliary type for Hashable [a] definition -data SPInt = SP !Int !Int - -instance Hashable a => Hashable [a] where - {-# SPECIALIZE instance Hashable [Char] #-} - hashWithSalt = hashWithSalt1 - -instance Hashable1 [] where - liftHashWithSalt h salt arr = finalise (foldl' step (SP salt 0) arr) - where - finalise (SP s l) = hashWithSalt s l - step (SP s l) x = SP (h s x) (l + 1) - -instance Hashable B.ByteString where - hash bs = fromIntegral (xxh3_64bit_withSeed_bs bs 0) - - hashWithSalt salt bs = - fromIntegral (xxh3_64bit_withSeed_bs bs (fromIntegral (hashWithSalt salt len))) - where - len = B.length bs - -instance Hashable BL.ByteString where - hashWithSalt salt lbs = runST $ do - s <- xxh3_64bit_createState - xxh3_64bit_reset_withSeed s (fromIntegral salt) - len <- BL.foldrChunks (step s) return lbs 0 - xxh3_64bit_update_w64 s len - digest <- xxh3_64bit_digest s - return (fromIntegral digest) - where - step s bs next !acc = do - xxh3_64bit_update_bs s bs - next (acc + fromIntegral (B.length bs)) - -instance Hashable BSI.ShortByteString where - hash (BSI.SBS ba) = hash (ByteArray ba) - hashWithSalt salt (BSI.SBS ba) = hashWithSalt salt (ByteArray ba) - -#if HAS_OS_STRING_filepath || HAS_OS_STRING_os_string --- | @since 1.4.2.0 -deriving newtype instance Hashable PosixString - --- | @since 1.4.2.0 -deriving newtype instance Hashable WindowsString - --- | @since 1.4.2.0 -deriving newtype instance Hashable OsString -#endif - -#if HAS_OS_STRING_filepath && HAS_OS_STRING_os_string -deriving newtype instance Hashable FP.PosixString -deriving newtype instance Hashable FP.WindowsString -deriving newtype instance Hashable FP.OsString -#endif - -#if MIN_VERSION_text(2,0,0) - -instance Hashable T.Text where - hash (T.Text (TA.ByteArray arr) off len) = - fromIntegral (xxh3_64bit_withSeed_ba (ByteArray arr) off len 0) - hashWithSalt salt (T.Text (TA.ByteArray arr) off len) = - fromIntegral (xxh3_64bit_withSeed_ba (ByteArray arr) off len (fromIntegral (hashWithSalt salt len))) - -instance Hashable TL.Text where - hashWithSalt salt lt = runST $ do - s <- xxh3_64bit_createState - xxh3_64bit_reset_withSeed s (fromIntegral salt) - len <- TL.foldrChunks (step s) return lt 0 - xxh3_64bit_update_w64 s len - digest <- xxh3_64bit_digest s - return (fromIntegral digest) - where - step s (T.Text (TA.ByteArray arr) off len) next !acc = do - xxh3_64bit_update_ba s (ByteArray arr) off len - next (acc + fromIntegral len) - -#else - -instance Hashable T.Text where - hash (T.Text arr off len) = - fromIntegral (xxh3_64bit_withSeed_ba (ByteArray (TA.aBA arr)) (unsafeShiftL off 1) (unsafeShiftL len 1) 0) - hashWithSalt salt (T.Text arr off len) = - fromIntegral (xxh3_64bit_withSeed_ba (ByteArray (TA.aBA arr)) (unsafeShiftL off 1) (unsafeShiftL len 1) (fromIntegral (hashWithSalt salt len))) - -instance Hashable TL.Text where - hashWithSalt salt lt = runST $ do - s <- xxh3_64bit_createState - xxh3_64bit_reset_withSeed s (fromIntegral salt) - len <- TL.foldrChunks (step s) return lt 0 - xxh3_64bit_update_w64 s len - digest <- xxh3_64bit_digest s - return (fromIntegral digest) - where - step s (T.Text arr off len) next !acc = do - xxh3_64bit_update_ba s (ByteArray (TA.aBA arr)) (unsafeShiftL off 1) (unsafeShiftL len 1) - next (acc + fromIntegral len) - -#endif - -#if !MIN_VERSION_base(4,19,0) -fromThreadId :: ThreadId -> Word64 -fromThreadId (ThreadId t) = fromIntegral (getThreadId t) - --- this cannot be capi, as GHC panics. -foreign import ccall unsafe "rts_getThreadId" getThreadId -#if __GLASGOW_HASKELL__ >= 904 - -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6163 - :: ThreadId# -> CULLong -#elif __GLASGOW_HASKELL__ >= 900 - -- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/1254 - :: ThreadId# -> CLong -#else - :: ThreadId# -> CInt -#endif -#endif - -instance Hashable ThreadId where - hash = hash . fromThreadId - hashWithSalt = defaultHashWithSalt - -instance Hashable (Ptr a) where - hashWithSalt salt p = hashWithSalt salt $ ptrToIntPtr p - -instance Hashable (FunPtr a) where - hashWithSalt salt p = hashWithSalt salt $ castFunPtrToPtr p - -instance Hashable IntPtr where - hash n = fromIntegral n - hashWithSalt = defaultHashWithSalt - -instance Hashable WordPtr where - hash n = fromIntegral n - hashWithSalt = defaultHashWithSalt - ----------------------------------------------------------------------------- --- Fingerprint & TypeRep instances - --- | @since 1.3.0.0 -instance Hashable Fingerprint where - hash (Fingerprint x _) = fromIntegral x - hashWithSalt = defaultHashWithSalt - {-# INLINE hash #-} - -hashTypeRep :: Type.Reflection.TypeRep a -> Int -hashTypeRep tr = - let Fingerprint x _ = typeRepFingerprint tr in fromIntegral x - -instance Hashable Type.Reflection.SomeTypeRep where - hash (Type.Reflection.SomeTypeRep r) = hashTypeRep r - hashWithSalt = defaultHashWithSalt - {-# INLINE hash #-} - -instance Hashable (Type.Reflection.TypeRep a) where - hash = hashTypeRep - hashWithSalt = defaultHashWithSalt - {-# INLINE hash #-} - ----------------------------------------------------------------------------- - -instance Hashable Void where - hashWithSalt _ = absurd - --- | Compute a hash value for the content of this pointer. -hashPtr :: Ptr a -- ^ pointer to the data to hash - -> Int -- ^ length, in bytes - -> IO Int -- ^ hash value -hashPtr p len = hashPtrWithSalt p len defaultSalt - --- | Compute a hash value for the content of this 'ByteArray#', --- beginning at the specified offset, using specified number of bytes. -hashByteArray :: ByteArray# -- ^ data to hash - -> Int -- ^ offset, in bytes - -> Int -- ^ length, in bytes - -> Int -- ^ hash value -hashByteArray ba0 off len = hashByteArrayWithSalt ba0 off len defaultSalt -{-# INLINE hashByteArray #-} - -instance Hashable Unique where - hash = hashUnique - hashWithSalt = defaultHashWithSalt - -instance Hashable Version where - hashWithSalt salt (Version branch tags) = - salt `hashWithSalt` branch `hashWithSalt` tags - -deriving newtype instance Hashable (Fixed a) - -deriving newtype instance Hashable a => Hashable (Identity a) -instance Hashable1 Identity where - liftHashWithSalt h salt (Identity x) = h salt x - --- Using hashWithSalt1 would cause needless constraint -deriving newtype instance Hashable a => Hashable (Const a b) - -instance Hashable a => Hashable1 (Const a) where - liftHashWithSalt = defaultLiftHashWithSalt - -instance Hashable2 Const where - liftHashWithSalt2 f _ salt (Const x) = f salt x - -instance Hashable (Proxy a) where - hash _ = 0 - hashWithSalt s _ = s - -instance Hashable1 Proxy where - liftHashWithSalt _ s _ = s - -instance Hashable a => Hashable (NE.NonEmpty a) where - hashWithSalt p (a NE.:| as) = p `hashWithSalt` a `hashWithSalt` as - --- | @since 1.3.1.0 -instance Hashable1 NE.NonEmpty where - liftHashWithSalt h salt (a NE.:| as) = liftHashWithSalt h (h salt a) as - -deriving newtype instance Hashable a => Hashable (Semi.Min a) -deriving newtype instance Hashable a => Hashable (Semi.Max a) - --- | __Note__: Prior to @hashable-1.3.0.0@ the hash computation included the second argument of 'Arg' which wasn't consistent with its 'Eq' instance. --- --- Since @hashable-1.5.0.0@, @hash (Semi.arg a _) = hash a@ --- --- @since 1.3.0.0 -instance Hashable a => Hashable (Semi.Arg a b) where - hash (Semi.Arg a _) = hash a - hashWithSalt p (Semi.Arg a _) = hashWithSalt p a - -deriving newtype instance Hashable a => Hashable (Semi.First a) -deriving newtype instance Hashable a => Hashable (Semi.Last a) -deriving newtype instance Hashable a => Hashable (Semi.WrappedMonoid a) - -#if !MIN_VERSION_base(4,16,0) -deriving newtype instance Hashable a => Hashable (Semi.Option a) -#endif - --- TODO: this instance is removed as there isn't Eq1 Min/Max, ... - -#if 0 --- | @since 1.3.1.0 --- instance Hashable1 Min where liftHashWithSalt h salt (Min a) = h salt a - --- | @since 1.3.1.0 --- instance Hashable1 Max where liftHashWithSalt h salt (Max a) = h salt a - --- | @since 1.3.1.0 --- instance Hashable1 First where liftHashWithSalt h salt (First a) = h salt a - --- | @since 1.3.1.0 --- instance Hashable1 Last where liftHashWithSalt h salt (Last a) = h salt a - - --- | @since 1.3.1.0 --- instance Hashable1 WrappedMonoid where liftHashWithSalt h salt (WrapMonoid a) = h salt a - --- | @since 1.3.1.0 --- instance Hashable1 Option where liftHashWithSalt h salt (Option a) = liftHashWithSalt h salt a -#endif - -instance (Hashable (f (g a))) => Hashable (Compose f g a) where - hash (Compose x) = hash x - hashWithSalt p (Compose x) = hashWithSalt p x - -instance (Hashable1 f, Hashable1 g) => Hashable1 (Compose f g) where - liftHashWithSalt h s = liftHashWithSalt (liftHashWithSalt h) s . getCompose - -instance (Hashable1 f, Hashable1 g) => Hashable1 (FP.Product f g) where - liftHashWithSalt h s (FP.Pair a b) = liftHashWithSalt h (liftHashWithSalt h s a) b - -instance (Hashable (f a), Hashable (g a)) => Hashable (FP.Product f g a) where - hashWithSalt s (FP.Pair a b) = s `hashWithSalt` a `hashWithSalt` b - -instance (Hashable1 f, Hashable1 g) => Hashable1 (FS.Sum f g) where - liftHashWithSalt h s (FS.InL a) = liftHashWithSalt h (s `hashInt` 0) a - liftHashWithSalt h s (FS.InR a) = liftHashWithSalt h (s `hashInt` distinguisher) a - -instance (Hashable (f a), Hashable (g a)) => Hashable (FS.Sum f g a) where - hashWithSalt s (FS.InL a) = hashWithSalt (s `hashInt` 0) a - hashWithSalt s (FS.InR a) = hashWithSalt (s `hashInt` distinguisher) a - --- | This instance was available since 1.4.1.0 only for GHC-9.4+ --- --- @since 1.4.2.0 --- -instance Hashable AB.ByteArray where - hash ba@(AB.ByteArray ba') = - fromIntegral (xxh3_64bit_withSeed_ba ba 0 len 0) - where - !len = I# (sizeofByteArray# ba') - - hashWithSalt salt ba@(AB.ByteArray ba') = - fromIntegral (xxh3_64bit_withSeed_ba ba 0 len (fromIntegral (hashWithSalt salt len))) - where - !len = I# (sizeofByteArray# ba') - -------------------------------------------------------------------------------- --- Hashed -------------------------------------------------------------------------------- - --- | A hashable value along with the result of the 'hash' function. -data Hashed a = Hashed a {-# UNPACK #-} !Int - --- | Wrap a hashable value, caching the 'hash' function result. -hashed :: Hashable a => a -> Hashed a -hashed a = Hashed a (hash a) - --- | Unwrap hashed value. -unhashed :: Hashed a -> a -unhashed (Hashed a _) = a - --- | 'hash' has 'Eq' requirement. --- --- @since 1.4.0.0 -hashedHash :: Hashed a -> Int -hashedHash (Hashed _ h) = h - --- | Uses precomputed hash to detect inequality faster -instance Eq a => Eq (Hashed a) where - Hashed a ha == Hashed b hb = ha == hb && a == b - -instance Ord a => Ord (Hashed a) where - Hashed a _ `compare` Hashed b _ = a `compare` b - -instance Show a => Show (Hashed a) where - showsPrec d (Hashed a _) = showParen (d > 10) $ - showString "hashed" . showChar ' ' . showsPrec 11 a - -instance Eq a => Hashable (Hashed a) where - hashWithSalt = defaultHashWithSalt - hash = hashedHash - - --- This instance is a little unsettling. It is unusal for --- 'liftHashWithSalt' to ignore its first argument when a --- value is actually available for it to work on. -instance Hashable1 Hashed where - liftHashWithSalt _ s (Hashed _ h) = defaultHashWithSalt s h - -instance (IsString a, Hashable a) => IsString (Hashed a) where - fromString s = let r = fromString s in Hashed r (hash r) - -instance Foldable Hashed where - foldMap f (Hashed a _) = f a - foldr f acc (Hashed a _) = f a acc - -instance NFData a => NFData (Hashed a) where - rnf = rnf . unhashed - --- | 'Hashed' cannot be 'Functor' -mapHashed :: Hashable b => (a -> b) -> Hashed a -> Hashed b -mapHashed f (Hashed a _) = hashed (f a) - --- | 'Hashed' cannot be 'Traversable' -traverseHashed :: (Hashable b, Functor f) => (a -> f b) -> Hashed a -> f (Hashed b) -traverseHashed f (Hashed a _) = fmap hashed (f a) - --- instances for @Data.Functor.Classes@ higher rank typeclasses --- in base-4.9 and onward. -instance Eq1 Hashed where - liftEq f (Hashed a ha) (Hashed b hb) = ha == hb && f a b - -instance Ord1 Hashed where - liftCompare f (Hashed a _) (Hashed b _) = f a b - -instance Show1 Hashed where - liftShowsPrec sp _ d (Hashed a _) = showParen (d > 10) $ - showString "hashed " . sp 11 a - -------------------------------------------------------------------------------- --- containers -------------------------------------------------------------------------------- - --- | @since 1.3.4.0 -instance Hashable2 Map.Map where - liftHashWithSalt2 hk hv s m = Map.foldlWithKey' - (\s' k v -> hv (hk s' k) v) - (hashWithSalt s (Map.size m)) - m - --- | @since 1.3.4.0 -instance Hashable k => Hashable1 (Map.Map k) where - liftHashWithSalt h s m = Map.foldlWithKey' - (\s' k v -> h (hashWithSalt s' k) v) - (hashWithSalt s (Map.size m)) - m - --- | @since 1.3.4.0 -instance (Hashable k, Hashable v) => Hashable (Map.Map k v) where - hashWithSalt = hashWithSalt2 - --- | @since 1.3.4.0 -instance Hashable1 IntMap.IntMap where - liftHashWithSalt h s m = IntMap.foldlWithKey' - (\s' k v -> h (hashWithSalt s' k) v) - (hashWithSalt s (IntMap.size m)) - m - --- | @since 1.3.4.0 -instance Hashable v => Hashable (IntMap.IntMap v) where - hashWithSalt = hashWithSalt1 - --- | @since 1.3.4.0 -instance Hashable1 Set.Set where - liftHashWithSalt h s x = Set.foldl' h (hashWithSalt s (Set.size x)) x - --- | @since 1.3.4.0 -instance Hashable v => Hashable (Set.Set v) where - hashWithSalt = hashWithSalt1 - --- | @since 1.3.4.0 -instance Hashable IntSet.IntSet where - hashWithSalt salt x = IntSet.foldl' hashWithSalt - (hashWithSalt salt (IntSet.size x)) - x - --- | @since 1.3.4.0 -instance Hashable1 Seq.Seq where - liftHashWithSalt h s x = foldl' h (hashWithSalt s (Seq.length x)) x - --- | @since 1.3.4.0 -instance Hashable v => Hashable (Seq.Seq v) where - hashWithSalt = hashWithSalt1 - --- | @since 1.3.4.0 -instance Hashable1 Tree.Tree where - liftHashWithSalt h = go where - go s (Tree.Node x xs) = liftHashWithSalt go (h s x) xs - --- | @since 1.3.4.0 -instance Hashable v => Hashable (Tree.Tree v) where - hashWithSalt = hashWithSalt1 - -------------------------------------------------------------------------------- --- Solo -------------------------------------------------------------------------------- - -instance Hashable a => Hashable (Solo a) where - hashWithSalt = hashWithSalt1 -instance Hashable1 Solo where - liftHashWithSalt h salt (Solo x) = h salt x diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/FFI.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/FFI.hs deleted file mode 100644 index e417e54..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/FFI.hs +++ /dev/null @@ -1,76 +0,0 @@ -{-# LANGUAGE CApiFFI #-} -{-# LANGUAGE MagicHash #-} -{-# LANGUAGE Trustworthy #-} -{-# LANGUAGE UnliftedFFITypes #-} -module Data.Hashable.FFI ( - -- * One shot - unsafe_xxh3_64bit_withSeed_ptr, - unsafe_xxh3_64bit_withSeed_ba, - unsafe_xxh3_64bit_withSeed_u64, - unsafe_xxh3_64bit_withSeed_u32, - -- * Incremental - unsafe_xxh3_sizeof_state, - unsafe_xxh3_initState, - unsafe_xxh3_64bit_reset_withSeed, - unsafe_xxh3_64bit_digest, - unsafe_xxh3_64bit_update_ptr, - unsafe_xxh3_64bit_update_ba, - unsafe_xxh3_64bit_update_u64, - unsafe_xxh3_64bit_update_u32, -) where - -import Data.Word (Word32, Word64, Word8) -import Foreign.C.Types (CSize (..)) -import Foreign.Ptr (Ptr) -import GHC.Exts (ByteArray#, MutableByteArray#) - --- Note: we use unsafe FFI calls, as we expect our use case to be hashing only small data (<1kb, at most 4k). - -------------------------------------------------------------------------------- --- OneShot -------------------------------------------------------------------------------- - -foreign import capi unsafe "HsXXHash.h XXH3_64bits_withSeed" - unsafe_xxh3_64bit_withSeed_ptr :: Ptr Word8 -> CSize -> Word64 -> IO Word64 - -foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_withSeed_offset" - unsafe_xxh3_64bit_withSeed_ba :: ByteArray# -> CSize -> CSize -> Word64 -> Word64 - -foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_withSeed_u64" - unsafe_xxh3_64bit_withSeed_u64 :: Word64 -> Word64 -> Word64 - -foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_withSeed_u32" - unsafe_xxh3_64bit_withSeed_u32 :: Word32 -> Word64 -> Word64 - -------------------------------------------------------------------------------- --- Incremental -------------------------------------------------------------------------------- - --- reset and update functions return OK/Error --- we ignore that: --- * reset errors only on NULL state --- * update cannot even error - -foreign import capi unsafe "HsXXHash.h value hs_XXH3_sizeof_state_s" - unsafe_xxh3_sizeof_state :: Int - -foreign import capi unsafe "HsXXHash.h XXH3_INITSTATE" - unsafe_xxh3_initState :: MutableByteArray# s -> IO () - -foreign import capi unsafe "HsXXHash.h XXH3_64bits_reset_withSeed" - unsafe_xxh3_64bit_reset_withSeed :: MutableByteArray# s -> Word64 -> IO () - -foreign import capi unsafe "HsXXHash.h XXH3_64bits_digest" - unsafe_xxh3_64bit_digest :: MutableByteArray# s -> IO Word64 - -foreign import capi unsafe "HsXXHash.h XXH3_64bits_update" - unsafe_xxh3_64bit_update_ptr :: MutableByteArray# s -> Ptr Word8 -> CSize -> IO () - -foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_update_offset" - unsafe_xxh3_64bit_update_ba :: MutableByteArray# s -> ByteArray# -> CSize -> CSize -> IO () - -foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_update_u64" - unsafe_xxh3_64bit_update_u64 :: MutableByteArray# s -> Word64 -> IO () - -foreign import capi unsafe "HsXXHash.h hs_XXH3_64bits_update_u32" - unsafe_xxh3_64bit_update_u32 :: MutableByteArray# s -> Word32 -> IO () diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic.hs deleted file mode 100644 index 267bd33..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic.hs +++ /dev/null @@ -1,25 +0,0 @@ -{-# LANGUAGE Safe #-} - --- | --- Module : Data.Hashable.Generic --- SPDX-License-Identifier : BSD-3-Clause --- Stability : provisional --- Portability : GHC >= 7.4 --- --- Hashable support for GHC generics. --- --- @since 1.3.0.0 -module Data.Hashable.Generic - ( - -- * Implementation using Generics. - genericHashWithSalt - , genericLiftHashWithSalt - -- * Constraints - , GHashable (..) - , One - , Zero - , HashArgs (..) - ) where - -import Data.Hashable.Generic.Instances () -import Data.Hashable.Class diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic/Instances.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic/Instances.hs deleted file mode 100644 index 425adf2..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Generic/Instances.hs +++ /dev/null @@ -1,124 +0,0 @@ -{-# LANGUAGE BangPatterns, FlexibleInstances, KindSignatures, - ScopedTypeVariables, TypeOperators, - MultiParamTypeClasses, GADTs, FlexibleContexts #-} -{-# OPTIONS_GHC -fno-warn-orphans #-} -{-# LANGUAGE Trustworthy #-} - ------------------------------------------------------------------------- --- | --- Module : Data.Hashable.Generic.Instances --- Copyright : (c) Bryan O'Sullivan 2012 --- SPDX-License-Identifier : BSD-3-Clause --- Maintainer : bos@serpentine.com --- Stability : provisional --- Portability : GHC >= 7.4 --- --- Internal module defining orphan instances for "GHC.Generics" --- -module Data.Hashable.Generic.Instances () where - -import Data.Hashable.Class -import GHC.Generics -import Data.Kind (Type) - - --- Type without constructors -instance GHashable arity V1 where - ghashWithSalt _ salt _ = hashWithSalt salt () - --- Constructor without arguments -instance GHashable arity U1 where - ghashWithSalt _ salt U1 = hashWithSalt salt () - -instance (GHashable arity a, GHashable arity b) => GHashable arity (a :*: b) where - ghashWithSalt toHash salt (x :*: y) = - (ghashWithSalt toHash (ghashWithSalt toHash salt x) y) - --- Metadata (constructor name, etc) -instance GHashable arity a => GHashable arity (M1 i c a) where - ghashWithSalt targs salt = ghashWithSalt targs salt . unM1 - --- Constants, additional parameters, and rank-1 recursion -instance Hashable a => GHashable arity (K1 i a) where - ghashWithSalt _ = hashUsing unK1 - -instance GHashable One Par1 where - ghashWithSalt (HashArgs1 h) salt = h salt . unPar1 - -instance Hashable1 f => GHashable One (Rec1 f) where - ghashWithSalt (HashArgs1 h) salt = liftHashWithSalt h salt . unRec1 - -instance (Hashable1 f, GHashable One g) => GHashable One (f :.: g) where - ghashWithSalt targs salt = liftHashWithSalt (ghashWithSalt targs) salt . unComp1 - -class SumSize f => GSum arity f where - hashSum :: HashArgs arity a -> Int -> Int -> f a -> Int - -- hashSum args salt index value = ... - --- [Note: Hashing a sum type] --- --- The tree structure is used in GHC.Generics to represent the sum (and --- product) part of the generic representation of the type, e.g.: --- --- (C0 ... :+: C1 ...) :+: (C2 ... :+: (C3 ... :+: C4 ...)) --- --- The value constructed with C2 constructor is represented as (R1 (L1 ...)). --- Yet, if we think that this tree is a flat (heterogeneous) list: --- --- [C0 ..., C1 ..., C2 ..., C3 ..., C4... ] --- --- then the value constructed with C2 is a (dependent) pair (2, ...), and --- hashing it is simple: --- --- salt `hashWithSalt` (2 :: Int) `hashWithSalt` ... --- --- This is what we do below. When drilling down the tree, we count how many --- leafs are to the left (`index` variable). At the leaf case C1, we'll have an --- actual index into the sum. --- --- This works well for balanced data. However for recursive types like: --- --- data Nat = Z | S Nat --- --- the `hashWithSalt salt (S (S (S Z)))` is --- --- salt `hashWithSalt` (1 :: Int) -- first S --- `hashWithSalt` (1 :: Int) -- second S --- `hashWithSalt` (1 :: Int) -- third S --- `hashWithSalt` (0 :: Int) -- Z --- `hashWithSalt` () -- U1 --- --- For that type the manual implementation: --- --- instance Hashable Nat where --- hashWithSalt salt n = hashWithSalt salt (natToInteger n) --- --- would be better performing CPU and hash-quality wise (assuming that --- Integer's Hashable is of high quality). --- -instance (GSum arity a, GSum arity b) => GHashable arity (a :+: b) where - ghashWithSalt toHash salt = hashSum toHash salt 0 - -instance (GSum arity a, GSum arity b) => GSum arity (a :+: b) where - hashSum toHash !salt !index s = case s of - L1 x -> hashSum toHash salt index x - R1 x -> hashSum toHash salt (index + sizeL) x - where - sizeL = unTagged (sumSize :: Tagged a) - {-# INLINE hashSum #-} - -instance GHashable arity a => GSum arity (C1 c a) where - hashSum toHash !salt !index (M1 x) = ghashWithSalt toHash (hashWithSalt salt index) x - {-# INLINE hashSum #-} - -class SumSize f where - sumSize :: Tagged f - -newtype Tagged (s :: Type -> Type) = Tagged {unTagged :: Int} - -instance (SumSize a, SumSize b) => SumSize (a :+: b) where - sumSize = Tagged $ unTagged (sumSize :: Tagged a) + - unTagged (sumSize :: Tagged b) - -instance SumSize (C1 c a) where - sumSize = Tagged 1 diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Imports.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Imports.hs deleted file mode 100644 index 65f507d..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Imports.hs +++ /dev/null @@ -1,14 +0,0 @@ --- | This module exists to avoid conditional imports --- and unused import warnings. -{-# LANGUAGE Safe #-} -module Data.Hashable.Imports ( - Int64, Int32, - Word64, Word32, - xor, shiftR, shiftL, unsafeShiftL, unsafeShiftR, - (.&.), -) where - -import Data.Bits (shiftL, shiftR, unsafeShiftL, unsafeShiftR, xor, (.&.)) -import Data.Int (Int32, Int64) -import Data.Word (Word32, Word64) -import Prelude () diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Lifted.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Lifted.hs deleted file mode 100644 index d70f340..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Lifted.hs +++ /dev/null @@ -1,98 +0,0 @@ -{-# LANGUAGE Safe #-} - ------------------------------------------------------------------------- --- | --- Module : Data.Hashable.Lifted --- Copyright : (c) Milan Straka 2010 --- (c) Johan Tibell 2011 --- (c) Bryan O'Sullivan 2011, 2012 --- SPDX-License-Identifier : BSD-3-Clause --- Maintainer : johan.tibell@gmail.com --- Stability : provisional --- Portability : portable --- --- Lifting of the 'Hashable' class to unary and binary type constructors. --- These classes are needed to express the constraints on arguments of --- types that are parameterized by type constructors. Fixed-point data --- types and monad transformers are such types. - -module Data.Hashable.Lifted - ( -- * Type Classes - Hashable1(..) - , Hashable2(..) - -- * Auxiliary Functions - , hashWithSalt1 - , hashWithSalt2 - , defaultLiftHashWithSalt - -- * Motivation - -- $motivation - ) where - -import Data.Hashable.Class - --- $motivation --- --- This type classes provided in this module are used to express constraints --- on type constructors in a Haskell98-compatible fashion. As an example, consider --- the following two types (Note that these instances are not actually provided --- because @hashable@ does not have @transformers@ or @free@ as a dependency): --- --- > newtype WriterT w m a = WriterT { runWriterT :: m (a, w) } --- > data Free f a = Pure a | Free (f (Free f a)) --- --- The 'Hashable1' instances for @WriterT@ and @Free@ could be written as: --- --- > instance (Hashable w, Hashable1 m) => Hashable1 (WriterT w m) where --- > liftHashWithSalt h s (WriterT m) = --- > liftHashWithSalt (liftHashWithSalt2 h hashWithSalt) s m --- > instance Hashable1 f => Hashable1 (Free f) where --- > liftHashWithSalt h = go where --- > go s x = case x of --- > Pure a -> h s a --- > Free p -> liftHashWithSalt go s p --- --- The 'Hashable' instances for these types can be trivially recovered with --- 'hashWithSalt1': --- --- > instance (Hashable w, Hashable1 m, Hashable a) => Hashable (WriterT w m a) where --- > hashWithSalt = hashWithSalt1 --- > instance (Hashable1 f, Hashable a) => Hashable (Free f a) where --- > hashWithSalt = hashWithSalt1 - --- --- $discussion --- --- Regardless of whether 'hashWithSalt1' is used to provide an implementation --- of 'hashWithSalt', they should produce the same hash when called with --- the same arguments. This is the only law that 'Hashable1' and 'Hashable2' --- are expected to follow. --- --- The typeclasses in this module only provide lifting for 'hashWithSalt', not --- for 'hash'. This is because such liftings cannot be defined in a way that --- would satisfy the @liftHash@ variant of the above law. As an illustration --- of the problem we run into, let us assume that 'Hashable1' were --- given a 'liftHash' method: --- --- > class Hashable1 t where --- > liftHash :: (a -> Int) -> t a -> Int --- > liftHashWithSalt :: (Int -> a -> Int) -> Int -> t a -> Int --- --- Even for a type as simple as 'Maybe', the problem manifests itself. The --- 'Hashable' instance for 'Maybe' is: --- --- > distinguisher :: Int --- > distinguisher = ... --- > --- > instance Hashable a => Hashable (Maybe a) where --- > hash Nothing = 0 --- > hash (Just a) = distinguisher `hashWithSalt` a --- > hashWithSalt s Nothing = ... --- > hashWithSalt s (Just a) = ... --- --- The implementation of 'hash' calls 'hashWithSalt' on @a@. The hypothetical --- @liftHash@ defined earlier only accepts an argument that corresponds to --- the implementation of 'hash' for @a@. Consequently, this formulation of --- @liftHash@ would not provide a way to match the current behavior of 'hash' --- for 'Maybe'. This problem gets worse when 'Either' and @[]@ are considered. --- The solution adopted in this library is to omit @liftHash@ entirely. - diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/LowLevel.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/LowLevel.hs deleted file mode 100644 index ac62616..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/LowLevel.hs +++ /dev/null @@ -1,103 +0,0 @@ -{-# LANGUAGE CPP, BangPatterns, MagicHash, CApiFFI, UnliftedFFITypes #-} -{-# LANGUAGE Trustworthy #-} --- | A module containing low-level hash primitives. -module Data.Hashable.LowLevel ( - Salt, - defaultSalt, - hashInt, - hashInt64, - hashWord64, - hashPtrWithSalt, - hashByteArrayWithSalt, -) where - -#include "MachDeps.h" - -import Data.Array.Byte (ByteArray (..)) -import Foreign.Ptr (Ptr, castPtr) -import GHC.Base (ByteArray#) - -#ifdef HASHABLE_RANDOM_SEED -import System.IO.Unsafe (unsafePerformIO) -#endif - -import Data.Hashable.Imports -import Data.Hashable.Mix -import Data.Hashable.XXH3 - -------------------------------------------------------------------------------- --- Initial seed -------------------------------------------------------------------------------- - -#ifdef HASHABLE_RANDOM_SEED -initialSeed :: Word64 -initialSeed = unsafePerformIO initialSeedC -{-# NOINLINE initialSeed #-} - -foreign import capi "HsHashable.h hs_hashable_init" initialSeedC :: IO Word64 -#endif - --- | A default salt used in the implementation of 'hash'. -defaultSalt :: Salt -#ifdef HASHABLE_RANDOM_SEED -defaultSalt = hashInt defaultSalt' (fromIntegral initialSeed) -#else -defaultSalt = defaultSalt' -#endif -{-# INLINE defaultSalt #-} - -defaultSalt' :: Salt -#if WORD_SIZE_IN_BITS == 64 -defaultSalt' = -3750763034362895579 -- 14695981039346656037 :: Int64 -#else -defaultSalt' = -2128831035 -- 2166136261 :: Int32 -#endif -{-# INLINE defaultSalt' #-} - -------------------------------------------------------------------------------- --- Hash primitives -------------------------------------------------------------------------------- - --- | Hash 'Int'. First argument is a salt, second argument is an 'Int'. --- The result is new salt / hash value. -hashInt :: Salt -> Int -> Salt -hashInt !s !x = fromIntegral (mixHash (fromIntegral s) (fromIntegral x)) - -hashInt64 :: Salt -> Int64 -> Salt -hashWord64 :: Salt -> Word64 -> Salt - -#if WORD_SIZE_IN_BITS == 64 -hashInt64 !s !x = hashInt s (fromIntegral x) -hashWord64 !s !x = hashInt s (fromIntegral x) -#else -hashInt64 !s !x = hashInt (hashInt s (fromIntegral x)) (fromIntegral (x `unsafeShiftR` 32)) -hashWord64 !s !x = hashInt (hashInt s (fromIntegral x)) (fromIntegral (x `unsafeShiftR` 32)) -#endif - --- | Compute a hash value for the content of this pointer, using an --- initial salt. --- --- This function can for example be used to hash non-contiguous --- segments of memory as if they were one contiguous segment, by using --- the output of one hash as the salt for the next. -hashPtrWithSalt :: Ptr a -- ^ pointer to the data to hash - -> Int -- ^ length, in bytes - -> Salt -- ^ salt - -> IO Salt -- ^ hash value -hashPtrWithSalt ptr len salt = - fromIntegral `fmap` xxh3_64bit_withSeed_ptr (castPtr ptr) len (fromIntegral salt) - --- | Compute a hash value for the content of this 'ByteArray#', using --- an initial salt. --- --- This function can for example be used to hash non-contiguous --- segments of memory as if they were one contiguous segment, by using --- the output of one hash as the salt for the next. -hashByteArrayWithSalt - :: ByteArray# -- ^ data to hash - -> Int -- ^ offset, in bytes - -> Int -- ^ length, in bytes - -> Salt -- ^ salt - -> Salt -- ^ hash value -hashByteArrayWithSalt ba !off !len !salt = - fromIntegral (xxh3_64bit_withSeed_ba (ByteArray ba) off len (fromIntegral salt)) diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Mix.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Mix.hs deleted file mode 100644 index 9c03221..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/Mix.hs +++ /dev/null @@ -1,48 +0,0 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE MagicHash #-} -{-# LANGUAGE Trustworthy #-} -{-# LANGUAGE UnboxedTuples #-} -module Data.Hashable.Mix ( - Salt, - mixHash, -) where - -#include "MachDeps.h" - -import Data.Bits (unsafeShiftR, xor) -import GHC.Exts (Word (..), byteSwap#, timesWord2#, xor#) - -type Salt = Int - -mulFold :: Word -> Word -> Word -mulFold (W# x) (W# y) = case timesWord2# x y of - (# hi, lo #) -> W# (xor# hi lo) - -byteSwap :: Word -> Word -byteSwap (W# w) = W# (byteSwap# w) - -avalanche :: Word -> Word -avalanche z0 = -#if WORD_SIZE_IN_BITS == 64 - -- MurmurHash3Mixer - let z1 = shiftXorMultiply 33 0xff51afd7ed558ccd z0 - z2 = shiftXorMultiply 33 0xc4ceb9fe1a85ec53 z1 - z3 = shiftXor 33 z2 - in z3 -#else - -- MurmurHash3Mixer 32bit - let z1 = shiftXorMultiply 16 0x85ebca6b z0 - z2 = shiftXorMultiply 13 0xc2b2ae35 z1 - z3 = shiftXor 16 z2 - in z3 -#endif - -shiftXor :: Int -> Word -> Word -shiftXor n w = w `xor` (w `unsafeShiftR` n) - -shiftXorMultiply :: Int -> Word -> Word -> Word -shiftXorMultiply n k w = shiftXor n w * k - --- | Mix hash is inspired by how xxh3 works on small (<=16byte) inputs. -mixHash :: Word -> Word -> Word -mixHash hi lo = avalanche (byteSwap lo + hi + mulFold hi lo) diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/XXH3.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/XXH3.hs deleted file mode 100644 index 685b99e..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/src/Data/Hashable/XXH3.hs +++ /dev/null @@ -1,126 +0,0 @@ -{-# LANGUAGE BangPatterns #-} -{-# LANGUAGE CPP #-} -{-# LANGUAGE MagicHash #-} -{-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE Trustworthy #-} -{-# LANGUAGE UnboxedTuples #-} -module Data.Hashable.XXH3 ( - -- * One shot - xxh3_64bit_withSeed_ptr, - xxh3_64bit_withSeed_bs, - xxh3_64bit_withSeed_ba, - xxh3_64bit_withSeed_w64, - xxh3_64bit_withSeed_w32, - -- * Incremental - XXH3_State, - xxh3_64bit_createState, - xxh3_64bit_reset_withSeed, - xxh3_64bit_digest, - xxh3_64bit_update_bs, - xxh3_64bit_update_ba, - xxh3_64bit_update_w64, - xxh3_64bit_update_w32, -) where - -import Control.Monad.ST.Unsafe (unsafeIOToST) -import Data.Array.Byte (ByteArray (..), MutableByteArray (..)) -import Data.ByteString.Internal (ByteString (..), accursedUnutterablePerformIO) -import Data.Word (Word32, Word64, Word8) -import Foreign (Ptr) -import GHC.Exts (Int (..), MutableByteArray#, newAlignedPinnedByteArray#) -import GHC.ForeignPtr (unsafeWithForeignPtr) -import GHC.ST (ST (..)) - -import Data.Hashable.FFI - -------------------------------------------------------------------------------- --- OneShot -------------------------------------------------------------------------------- - --- | Hash 'Ptr' -xxh3_64bit_withSeed_ptr :: Ptr Word8 -> Int -> Word64 -> IO Word64 -xxh3_64bit_withSeed_ptr !ptr !len !salt = - unsafe_xxh3_64bit_withSeed_ptr ptr (fromIntegral len) salt - --- | Hash 'ByteString'. -xxh3_64bit_withSeed_bs :: ByteString -> Word64 -> Word64 -xxh3_64bit_withSeed_bs (BS fptr len) !salt = accursedUnutterablePerformIO $ - unsafeWithForeignPtr fptr $ \ptr -> - unsafe_xxh3_64bit_withSeed_ptr ptr (fromIntegral len) salt - --- | Hash (part of) 'ByteArray'. -xxh3_64bit_withSeed_ba :: ByteArray -> Int -> Int -> Word64 -> Word64 -xxh3_64bit_withSeed_ba (ByteArray ba) !off !len !salt = - unsafe_xxh3_64bit_withSeed_ba ba (fromIntegral off) (fromIntegral len) salt - --- | Hash 'Word64'. -xxh3_64bit_withSeed_w64 :: Word64 -> Word64 -> Word64 -xxh3_64bit_withSeed_w64 !x !salt = - unsafe_xxh3_64bit_withSeed_u64 x salt - --- | Hash 'Word32'. -xxh3_64bit_withSeed_w32 :: Word32 -> Word64 -> Word64 -xxh3_64bit_withSeed_w32 !x !salt = - unsafe_xxh3_64bit_withSeed_u32 x salt - -------------------------------------------------------------------------------- --- Incremental -------------------------------------------------------------------------------- - --- | Mutable XXH3 state. -data XXH3_State s = XXH3 (MutableByteArray# s) - --- | Create 'XXH3_State'. -xxh3_64bit_createState :: forall s. ST s (XXH3_State s) -xxh3_64bit_createState = do - -- aligned alloc, otherwise we get segfaults. - -- see XXH3_createState implementation - MutableByteArray ba <- newAlignedPinnedByteArray unsafe_xxh3_sizeof_state 64 - unsafeIOToST (unsafe_xxh3_initState ba) - return (XXH3 ba) - --- | Reset 'XXH3_State' with a seed. -xxh3_64bit_reset_withSeed :: XXH3_State s -> Word64 -> ST s () -xxh3_64bit_reset_withSeed (XXH3 s) seed = do - unsafeIOToST (unsafe_xxh3_64bit_reset_withSeed s seed) - --- | Return a hash value from a 'XXH3_State'. --- --- Doesn't mutate given state, so you can update, digest and update again. -xxh3_64bit_digest :: XXH3_State s -> ST s Word64 -xxh3_64bit_digest (XXH3 s) = - unsafeIOToST (unsafe_xxh3_64bit_digest s) - --- | Update 'XXH3_State' with 'ByteString'. -xxh3_64bit_update_bs :: XXH3_State s -> ByteString -> ST s () -xxh3_64bit_update_bs (XXH3 s) (BS fptr len) = unsafeIOToST $ - unsafeWithForeignPtr fptr $ \ptr -> - unsafe_xxh3_64bit_update_ptr s ptr (fromIntegral len) - --- | Update 'XXH3_State' with (part of) 'ByteArray' -xxh3_64bit_update_ba :: XXH3_State s -> ByteArray -> Int -> Int -> ST s () -xxh3_64bit_update_ba (XXH3 s) (ByteArray ba) !off !len = unsafeIOToST $ - unsafe_xxh3_64bit_update_ba s ba (fromIntegral off) (fromIntegral len) - --- | Update 'XXH3_State' with 'Word64'. -xxh3_64bit_update_w64 :: XXH3_State s -> Word64 -> ST s () -xxh3_64bit_update_w64 (XXH3 s) w64 = unsafeIOToST $ - unsafe_xxh3_64bit_update_u64 s w64 - --- | Update 'XXH3_State' with 'Word32'. -xxh3_64bit_update_w32 :: XXH3_State s -> Word32 -> ST s () -xxh3_64bit_update_w32 (XXH3 s) w32 = unsafeIOToST $ - unsafe_xxh3_64bit_update_u32 s w32 - -------------------------------------------------------------------------------- --- mini-primitive -------------------------------------------------------------------------------- - -newAlignedPinnedByteArray - :: Int -- ^ size - -> Int -- ^ alignment - -> ST s (MutableByteArray s) -{-# INLINE newAlignedPinnedByteArray #-} -newAlignedPinnedByteArray (I# n) (I# k) = - ST (\s -> case newAlignedPinnedByteArray# n k s of (# s', arr #) -> (# s', MutableByteArray arr #)) diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Main.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Main.hs deleted file mode 100644 index a661b39..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Main.hs +++ /dev/null @@ -1,14 +0,0 @@ --- | Tests for the 'Data.Hashable' module. We test functions by --- comparing the C and Haskell implementations. - -module Main (main) where - -import Properties (properties) -import Regress (regressions) -import Test.Tasty (defaultMain, testGroup) - -main :: IO () -main = defaultMain $ testGroup "hashable" - [ testGroup "properties" properties - , testGroup "regressions" regressions - ] diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Properties.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Properties.hs deleted file mode 100644 index 29425d9..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Properties.hs +++ /dev/null @@ -1,287 +0,0 @@ -{-# LANGUAGE BangPatterns, CPP, GeneralizedNewtypeDeriving, MagicHash, - Rank2Types, UnboxedTuples #-} -{-# LANGUAGE DeriveGeneric, ScopedTypeVariables, PackageImports #-} - --- | QuickCheck tests for the 'Data.Hashable' module. We test --- functions by comparing the C and Haskell implementations. - -module Properties (properties) where - -import Data.Hashable (Hashable, hash, hashByteArray, hashPtr, - Hashed, hashed, unhashed, hashWithSalt) -import Data.Hashable.Generic (genericHashWithSalt) -import Data.Hashable.Lifted (hashWithSalt1) -import qualified Data.ByteString as B -import qualified Data.ByteString.Lazy as BL -import qualified Data.Text as T -import qualified Data.Text.Lazy as TL -import Data.List (nub) -import Control.Monad (ap, liftM) -import System.IO.Unsafe (unsafePerformIO) -import Foreign.Marshal.Array (withArray) -import GHC.Base (ByteArray#, Int(..), newByteArray#, writeWord8Array#) -import GHC.Exts (unsafeCoerce#) -import GHC.ST (ST(..), runST) -import GHC.Word (Word8(..)) -import Test.QuickCheck hiding ((.&.)) -import Test.Tasty (TestTree, testGroup) -import Test.Tasty.QuickCheck (testProperty) -import GHC.Generics - -import qualified Data.ByteString.Short as BS - -#if MIN_VERSION_filepath(1,4,100) && !(MIN_VERSION_filepath(1,5,0)) -import qualified "filepath" System.OsString.Internal.Types as FP -#endif - -#ifdef MIN_VERSION_os_string -import qualified "os-string" System.OsString.Internal.Types as OS -#endif - ------------------------------------------------------------------------- --- * Properties - -instance Arbitrary T.Text where - arbitrary = T.pack `fmap` arbitrary - -instance Arbitrary TL.Text where - arbitrary = TL.pack `fmap` arbitrary - -instance Arbitrary B.ByteString where - arbitrary = B.pack `fmap` arbitrary - -instance Arbitrary BL.ByteString where - arbitrary = sized $ \n -> resize (round (sqrt (toEnum n :: Double))) - ((BL.fromChunks . map (B.pack . nonEmpty)) `fmap` arbitrary) - where nonEmpty (NonEmpty a) = a - -instance Arbitrary BS.ShortByteString where - arbitrary = BS.pack `fmap` arbitrary - --- | Validate the implementation by comparing the C and Haskell --- versions. -pHash :: [Word8] -> Bool -pHash xs = unsafePerformIO $ withArray xs $ \ p -> - (hashByteArray (fromList xs) 0 len ==) `fmap` hashPtr p len - where len = length xs - --- | Content equality implies hash equality. -pText :: T.Text -> T.Text -> Bool -pText a b = if (a == b) then (hash a == hash b) else True - --- | Content equality implies hash equality. -pTextLazy :: TL.Text -> TL.Text -> Bool -pTextLazy a b = if (a == b) then (hash a == hash b) else True - --- | A small positive integer. -newtype ChunkSize = ChunkSize { unCS :: Int } - deriving (Eq, Ord, Num, Integral, Real, Enum) - -instance Show ChunkSize where show = show . unCS - -instance Arbitrary ChunkSize where - arbitrary = (ChunkSize . (`mod` maxChunkSize)) `fmap` - (arbitrary `suchThat` ((/=0) . (`mod` maxChunkSize))) - where maxChunkSize = 16 - --- | Ensure that the rechunk function causes a rechunked string to --- still match its original form. -pTextRechunk :: T.Text -> NonEmptyList ChunkSize -> Property -pTextRechunk t cs = TL.fromStrict t === rechunkText t cs - --- | Lazy strings must hash to the same value no matter how they are --- chunked. -pTextLazyRechunked :: T.Text -> NonEmptyList ChunkSize -> NonEmptyList ChunkSize -> Property -pTextLazyRechunked t cs0 cs1 = hash (rechunkText t cs0) === hash (rechunkText t cs1) - -pTextLazyRechunked' :: T.Text -> Int -> NonEmptyList ChunkSize -> NonEmptyList ChunkSize -> Property -pTextLazyRechunked' t salt cs0 cs1 = hashWithSalt salt (rechunkText t cs0) === hashWithSalt salt (rechunkText t cs1) - --- | Break up a string into chunks of different sizes. -rechunkText :: T.Text -> NonEmptyList ChunkSize -> TL.Text -rechunkText t0 (NonEmpty cs0) = TL.fromChunks . go t0 . cycle $ cs0 - where - go t _ | T.null t = [] - go t (c:cs) = a : go b cs - where (a,b) = T.splitAt (unCS c) t - go _ [] = error "Properties.rechunk - The 'impossible' happened!" - --- | Content equality implies hash equality. -pBSShort :: BS.ShortByteString -> BS.ShortByteString -> Bool -pBSShort a b = if (a == b) then (hash a == hash b) else True - --- | Content equality implies hash equality. -pBS :: B.ByteString -> B.ByteString -> Bool -pBS a b = if (a == b) then (hash a == hash b) else True - --- | Content equality implies hash equality. -pBSLazy :: BL.ByteString -> BL.ByteString -> Bool -pBSLazy a b = if (a == b) then (hash a == hash b) else True - --- | Break up a string into chunks of different sizes. -rechunkBS :: B.ByteString -> NonEmptyList ChunkSize -> BL.ByteString -rechunkBS t0 (NonEmpty cs0) = BL.fromChunks . go t0 . cycle $ cs0 - where - go t _ | B.null t = [] - go t (c:cs) = a : go b cs - where (a,b) = B.splitAt (unCS c) t - go _ [] = error "Properties.rechunkBS - The 'impossible' happened!" - --- | Ensure that the rechunk function causes a rechunked string to --- still match its original form. -pBSRechunk :: B.ByteString -> NonEmptyList ChunkSize -> Bool -pBSRechunk t cs = fromStrict t == rechunkBS t cs - --- | Lazy bytestrings must hash to the same value no matter how they --- are chunked. -pBSLazyRechunked :: B.ByteString -> NonEmptyList ChunkSize -> NonEmptyList ChunkSize -> Property -pBSLazyRechunked t cs1 cs2 = hash (rechunkBS t cs1) === hash (rechunkBS t cs2) - -pBSLazyRechunked' :: B.ByteString -> Int -> NonEmptyList ChunkSize -> NonEmptyList ChunkSize -> Property -pBSLazyRechunked' t salt cs1 cs2 = hashWithSalt salt (rechunkBS t cs1) === hashWithSalt salt (rechunkBS t cs2) - --- This wrapper is required by 'runST'. -data ByteArray = BA { unBA :: ByteArray# } - --- | Create a 'ByteArray#' from a list of 'Word8' values. -fromList :: [Word8] -> ByteArray# -fromList xs0 = unBA (runST $ ST $ \ s1# -> - case newByteArray# len# s1# of - (# s2#, marr# #) -> case go s2# 0 marr# xs0 of - s3# -> (# s3#, BA (unsafeCoerce# marr#) #)) - where - !(I# len#) = length xs0 - go s# _ _ [] = s# - go s# i@(I# i#) marr# ((W8# x):xs) = - case writeWord8Array# marr# i# x s# of - s2# -> go s2# (i + 1) marr# xs - --- Generics - -data Product2 a b = Product2 a b - deriving (Eq, Generic) - -instance (Arbitrary a, Arbitrary b) => Arbitrary (Product2 a b) where - arbitrary = Product2 `liftM` arbitrary `ap` arbitrary - -instance (Hashable a, Hashable b) => Hashable (Product2 a b) - -data Product3 a b c = Product3 a b c - deriving (Eq, Generic) - -instance (Arbitrary a, Arbitrary b, Arbitrary c) => - Arbitrary (Product3 a b c) where - arbitrary = Product3 `liftM` arbitrary `ap` arbitrary `ap` arbitrary - -instance (Hashable a, Hashable b, Hashable c) => Hashable (Product3 a b c) - --- Hashes of all product types of the same shapes should be the same. - -pProduct2 :: Int -> String -> Bool -pProduct2 x y = hash (x, y) == hash (Product2 x y) - -pProduct3 :: Double -> Maybe Bool -> (Int, String) -> Bool -pProduct3 x y z = hash (x, y, z) == hash (Product3 x y z) - -data Sum2 a b = S2a a | S2b b - deriving (Eq, Ord, Show, Generic) - -instance (Hashable a, Hashable b) => Hashable (Sum2 a b) - -data Sum3 a b c = S3a a | S3b b | S3c c - deriving (Eq, Ord, Show, Generic) - -instance (Arbitrary a, Arbitrary b, Arbitrary c) => Arbitrary (Sum3 a b c) where - arbitrary = oneof - [ fmap S3a arbitrary - , fmap S3b arbitrary - , fmap S3c arbitrary - ] - -instance (Hashable a, Hashable b, Hashable c) => Hashable (Sum3 a b c) - --- Hashes of the same parameter, but with different sum constructors, --- should differ. (They might legitimately collide, but that's --- vanishingly unlikely.) - -pSum2_differ :: Int -> Bool -pSum2_differ x = nub hs == hs - where hs = [ hash (S2a x :: Sum2 Int Int) - , hash (S2b x :: Sum2 Int Int) ] - -pSum3_differ :: Int -> Bool -pSum3_differ x = nub hs == hs - where hs = [ hash (S3a x :: Sum3 Int Int Int) - , hash (S3b x :: Sum3 Int Int Int) - , hash (S3c x :: Sum3 Int Int Int) ] - -pGeneric :: Sum3 Int Bool String -> Int -> Bool -pGeneric x salt = hashWithSalt salt x == genericHashWithSalt salt x - -instance (Arbitrary a, Hashable a) => Arbitrary (Hashed a) where - arbitrary = fmap hashed arbitrary - shrink xs = map hashed $ shrink $ unhashed xs - -pLiftedHashed :: Int -> Hashed (Either Int String) -> Bool -pLiftedHashed s h = hashWithSalt s h == hashWithSalt1 s h - -properties :: [TestTree] -properties = - [ testProperty "bernstein" pHash - , testGroup "text" - [ testProperty "text/strict" pText - , testProperty "text/lazy" pTextLazy - , testProperty "text/rechunk" pTextRechunk - , testProperty "text/rechunked" pTextLazyRechunked - , testProperty "text/rechunked-salt" pTextLazyRechunked' - ] - , testGroup "bytestring" - [ testProperty "bytestring/strict" pBS - , testProperty "bytestring/lazy" pBSLazy - , testProperty "bytestring/short" pBSShort - , testProperty "bytestring/rechunk" pBSRechunk - , testProperty "bytestring/rechunked" pBSLazyRechunked - , testProperty "bytestring/rechunked-salt" pBSLazyRechunked' - ] - , testGroup "generics" - [ - -- Note: "product2" and "product3" have been temporarily - -- disabled until we have added a 'hash' method to the GHashable - -- class. Until then (a,b) hashes to a different value than (a - -- :*: b). While this is not incorrect, it would be nicer if - -- they didn't. testProperty "product2" pProduct2 , testProperty - -- "product3" pProduct3 - testProperty "sum2_differ" pSum2_differ - , testProperty "sum3_differ" pSum3_differ - , testProperty "genericHashWithSalt" pGeneric - ] - , testGroup "lifted law" - [ testProperty "Hashed" pLiftedHashed - ] - ] - ------------------------------------------------------------------------- --- Utilities - -fromStrict :: B.ByteString -> BL.ByteString -fromStrict = BL.fromStrict - ------------------------------------------------------------------------- --- test that instances exist - -instanceExists :: Hashable a => a -> () -instanceExists _ = () - -#if MIN_VERSION_filepath(1,4,100) && !(MIN_VERSION_filepath(1,5,0)) -_fp1, _fp2, _fp3 :: () -_fp1 = instanceExists (undefined :: FP.OsString) -_fp2 = instanceExists (undefined :: FP.WindowsString) -_fp3 = instanceExists (undefined :: FP.PosixString) -#endif - -#ifdef MIN_VERSION_os_string -_os1, _os2, _os3 :: () -_os1 = instanceExists (undefined :: OS.OsString) -_os2 = instanceExists (undefined :: OS.WindowsString) -_os3 = instanceExists (undefined :: OS.PosixString) -#endif diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress.hs deleted file mode 100644 index 19834f8..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress.hs +++ /dev/null @@ -1,128 +0,0 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE OverloadedStrings #-} - -module Regress (regressions) where - -import Test.Tasty (TestTree, testGroup) -import Control.Monad (when) -import Test.Tasty.HUnit (testCase, Assertion, assertFailure, (@?=)) -import Test.Tasty.QuickCheck (testProperty) -import GHC.Generics (Generic) -import Data.List (nub) -import Data.Fixed (Pico) -import Data.Text (Text) -import Data.ByteString (ByteString) - -import qualified Data.Text.Lazy as TL -import qualified Data.ByteString.Char8 as BS8 -import qualified Data.ByteString.Lazy as BSL -import qualified Data.ByteString.Lazy.Char8 as BSL8 - -#ifdef HAVE_MMAP -import qualified Regress.Mmap as Mmap -#endif - -import Data.Hashable - -#include "MachDeps.h" - -assertInequal :: Eq a => String -> a -> a -> Assertion -assertInequal msg x y - | x == y = assertFailure msg - | otherwise = return () - -regressions :: [TestTree] -regressions = [] ++ -#ifdef HAVE_MMAP - Mmap.regressions ++ - [ testCase "Fixed" $ do - (hash (1 :: Pico) == hash (2 :: Pico)) @?= False - ] ++ -#endif - [ testGroup "Generic: sum of nullary constructors" - [ testCase "0" $ nullaryCase 0 S0 - , testCase "1" $ nullaryCase 1 S1 - , testCase "2" $ nullaryCase 2 S2 - , testCase "3" $ nullaryCase 3 S3 - , testCase "4" $ nullaryCase 4 S4 - ] - - , testCase "Zero tuples: issue 271" $ do - assertInequal "Hash of (0,0) != 0" (hash (0 :: Int, 0 :: Int)) 0 - assertInequal "Hash of (0,0,0) != 0" (hash (0 :: Int, 0 :: Int, 0 :: Int)) 0 - - , testProperty "odd, odd: issue 271" $ \x' y' -> - let x = if odd x' then x' else x' + 1 :: Int - y = if odd y' then y' else y' + 1 :: Int - in hash (x, y) /= hash (negate x, negate y) - - , testCase "Generic: Peano https://github.com/tibbe/hashable/issues/135" $ do - let ns = take 20 $ iterate S Z - let hs = map hash ns - hs @?= nub hs -#if WORD_SIZE_IN_BITS == 64 - , testCase "64 bit Text" $ do - let expected = -#if MIN_VERSION_text(2,0,0) - -3150353794653054837 -#else - 660667291861873677 -#endif - hash ("hello world" :: Text) @?= expected -#endif - , testGroup "concatenation" - [ testCase "String" $ do - let lhs, rhs :: (String, String) - lhs = ("foo", "bar") - rhs = ("foobar", "") - - when (hash lhs == hash rhs) $ do - assertFailure "Should have different hashes" - - , testCase "Text" $ do - let lhs, rhs :: (Text, Text) - lhs = ("foo", "bar") - rhs = ("foobar", "") - - when (hash lhs == hash rhs) $ do - assertFailure "Should have different hashes" - - , testCase "Lazy Text" $ do - let lhs, rhs :: (TL.Text, TL.Text) - lhs = ("foo", "bar") - rhs = ("foobar", "") - - when (hash lhs == hash rhs) $ do - assertFailure "Should have different hashes" - - , testCase "ByteString" $ do - let lhs, rhs :: (ByteString, ByteString) - lhs = (BS8.pack "foo", BS8.pack "bar") - rhs = (BS8.pack "foobar", BS8.empty) - - when (hash lhs == hash rhs) $ do - assertFailure "Should have different hashes" - - , testCase "Lazy ByteString" $ do - let lhs, rhs :: (BSL.ByteString, BSL.ByteString) - lhs = (BSL8.pack "foo", BSL8.pack "bar") - rhs = (BSL8.pack "foobar", BSL.empty) - - when (hash lhs == hash rhs) $ do - assertFailure "Should have different hashes" - ] - ] - where - nullaryCase :: Int -> SumOfNullary -> IO () - nullaryCase n s = do - let salt = 42 - let expected = salt `hashWithSalt` n `hashWithSalt` () - let actual = hashWithSalt salt s - actual @?= expected - -data SumOfNullary = S0 | S1 | S2 | S3 | S4 deriving (Eq, Generic) -instance Hashable SumOfNullary - -data Nat = Z | S Nat deriving (Eq, Generic) -instance Hashable Nat diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress/Mmap.hsc b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress/Mmap.hsc deleted file mode 100644 index 861f5a0..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/Regress/Mmap.hsc +++ /dev/null @@ -1,73 +0,0 @@ -{-# LANGUAGE CApiFFI #-} - -module Regress.Mmap (regressions) where - -#include - -import Control.Exception (bracket, evaluate) -import Control.Monad (forM_) -import Data.Bits ((.|.)) -import Data.ByteString.Internal (ByteString(..)) -import Data.Hashable (hash) -import Foreign.C.Error (throwErrnoIf, throwErrnoIfMinus1, throwErrnoIfMinus1_) -import Foreign.C.Types (CInt(..), CSize(..)) -import Foreign.Ptr (Ptr, intPtrToPtr, nullPtr, plusPtr) -import GHC.ForeignPtr (newForeignPtr_) -import System.Posix.Types (COff(..)) -import Test.Tasty (TestTree) -import Test.Tasty.HUnit (testCase) -import qualified Data.ByteString as B - -withMapping :: (Ptr a -> Int -> IO ()) -> IO () -withMapping go = do - pageSize <- fromIntegral `fmap` getPageSize - let mappingSize = pageSize * 2 - bracket (mmap - nullPtr - mappingSize - ((#const PROT_READ) .|. (#const PROT_WRITE)) - ((#const MAP_ANON) .|. (#const MAP_PRIVATE)) - (-1) - 0) - (flip munmap mappingSize) $ \mappingPtr -> do - go mappingPtr (fromIntegral pageSize) - mprotect (mappingPtr `plusPtr` fromIntegral pageSize) - pageSize (#const PROT_NONE) - -hashNearPageBoundary :: IO () -hashNearPageBoundary = - withMapping $ \ptr pageSize -> do - let initialSize = 16 - fp <- newForeignPtr_ (ptr `plusPtr` (pageSize - initialSize)) - let bs0 = PS fp 0 initialSize - forM_ (B.tails bs0) $ \bs -> do - evaluate (hash bs) - -regressions :: [TestTree] -regressions = [ - testCase "hashNearPageBoundary" hashNearPageBoundary - ] - -mmap :: Ptr a -> CSize -> CInt -> CInt -> CInt -> COff -> IO (Ptr a) -mmap addr len prot flags fd offset = - throwErrnoIf (== intPtrToPtr (#const MAP_FAILED)) "mmap" $ - c_mmap addr len prot flags fd offset - -munmap :: Ptr a -> CSize -> IO CInt -munmap addr len = throwErrnoIfMinus1 "munmap" $ c_munmap addr len - -mprotect :: Ptr a -> CSize -> CInt -> IO () -mprotect addr len prot = - throwErrnoIfMinus1_ "mprotect" $ c_mprotect addr len prot - -foreign import capi unsafe "sys/mman.h mmap" - c_mmap :: Ptr a -> CSize -> CInt -> CInt -> CInt -> COff -> IO (Ptr a) - -foreign import capi unsafe "sys/mman.h munmap" - c_munmap :: Ptr a -> CSize -> IO CInt - -foreign import capi unsafe "sys/mman.h mprotect" - c_mprotect :: Ptr a -> CSize -> CInt -> IO CInt - -foreign import capi unsafe "unistd.h getpagesize" - getPageSize :: IO CInt diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/xxhash-tests.hs b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/xxhash-tests.hs deleted file mode 100644 index 3dd6dfb..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/tests/xxhash-tests.hs +++ /dev/null @@ -1,63 +0,0 @@ -{-# LANGUAGE NumericUnderscores #-} -module Main (main) where - -import Control.Monad.ST (runST) -import qualified Data.ByteString as BS -import qualified Data.Primitive as P -import Data.Word (Word32, Word64) -import Test.Tasty (defaultMain, testGroup) -import Test.Tasty.HUnit (testCase, (@=?)) -import Test.Tasty.QuickCheck (testProperty, (===)) - -import Data.Hashable.XXH3 - -main :: IO () -main = defaultMain $ testGroup "xxhash" - [ testGroup "oneshot" - [ testProperty "w64-ref" $ \w salt -> - xxh3_64bit_withSeed_w64 w salt === xxh3_64bit_withSeed_w64_ref w salt - , testCase "w64-examples" $ do - xxh3_64bit_withSeed_w64 0 0 @=? 0xc77b_3abb_6f87_acd9 - xxh3_64bit_withSeed_w64 0x12 1 @=? 0xbba4_8522_c425_46b2 - xxh3_64bit_withSeed_w64 0x2100_0000_0000_0000 0 @=? 0xb7cb_e42a_e127_8055 - xxh3_64bit_withSeed_w64 0x1eb6e9 0 @=? 0x8e_adc3_1b56 - - , testProperty "w32-ref" $ \w salt -> - xxh3_64bit_withSeed_w32 w salt === xxh3_64bit_withSeed_w32_ref w salt - - , testCase "w32-examples" $ do - xxh3_64bit_withSeed_w32 0 0 @=? 0x48b2_c926_16fc_193d - xxh3_64bit_withSeed_w32 0x12 1 @=? 0x2870_1df3_2a21_6ad3 - - ] - - , testGroup "incremental" - [ testProperty "empty" $ \seed -> do - let expected = xxh3_64bit_withSeed_bs BS.empty seed - let actual = runST $ do - s <- xxh3_64bit_createState - xxh3_64bit_reset_withSeed s seed - xxh3_64bit_digest s - - actual === expected - - , testProperty "bs" $ \w8s seed -> do - let bs = BS.pack w8s - let expected = xxh3_64bit_withSeed_bs bs seed - let actual = runST $ do - s <- xxh3_64bit_createState - xxh3_64bit_reset_withSeed s seed - xxh3_64bit_update_bs s bs - xxh3_64bit_digest s - - actual === expected - ] - ] - -xxh3_64bit_withSeed_w64_ref :: Word64 -> Word64 -> Word64 -xxh3_64bit_withSeed_w64_ref w salt = case P.primArrayFromList [w] of - P.PrimArray ba -> xxh3_64bit_withSeed_ba (P.ByteArray ba) 0 8 salt - -xxh3_64bit_withSeed_w32_ref :: Word32 -> Word64 -> Word64 -xxh3_64bit_withSeed_w32_ref w salt = case P.primArrayFromList [w] of - P.PrimArray ba -> xxh3_64bit_withSeed_ba (P.ByteArray ba) 0 4 salt diff --git a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/xxHash-0.8.2/xxhash.h b/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/xxHash-0.8.2/xxhash.h deleted file mode 100644 index 682aedf..0000000 --- a/dist-newstyle/tmp/src-3402/hashable-1.5.0.0/xxHash-0.8.2/xxhash.h +++ /dev/null @@ -1,3780 +0,0 @@ -/* - * xxHash - Extremely Fast Hash algorithm - * Header File - * Copyright (C) 2012-2021 Yann Collet - * - * BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * You can contact the author at: - * - xxHash homepage: https://www.xxhash.com - * - xxHash source repository: https://github.com/Cyan4973/xxHash - */ - -/*! - * @mainpage xxHash - * - * xxHash is an extremely fast non-cryptographic hash algorithm, working at RAM speed - * limits. - * - * It is proposed in four flavors, in three families: - * 1. @ref XXH32_family - * - Classic 32-bit hash function. Simple, compact, and runs on almost all - * 32-bit and 64-bit systems. - * 2. @ref XXH64_family - * - Classic 64-bit adaptation of XXH32. Just as simple, and runs well on most - * 64-bit systems (but _not_ 32-bit systems). - * 3. @ref XXH3_family - * - Modern 64-bit and 128-bit hash function family which features improved - * strength and performance across the board, especially on smaller data. - * It benefits greatly from SIMD and 64-bit without requiring it. - * - * Benchmarks - * --- - * The reference system uses an Intel i7-9700K CPU, and runs Ubuntu x64 20.04. - * The open source benchmark program is compiled with clang v10.0 using -O3 flag. - * - * | Hash Name | ISA ext | Width | Large Data Speed | Small Data Velocity | - * | -------------------- | ------- | ----: | ---------------: | ------------------: | - * | XXH3_64bits() | @b AVX2 | 64 | 59.4 GB/s | 133.1 | - * | MeowHash | AES-NI | 128 | 58.2 GB/s | 52.5 | - * | XXH3_128bits() | @b AVX2 | 128 | 57.9 GB/s | 118.1 | - * | CLHash | PCLMUL | 64 | 37.1 GB/s | 58.1 | - * | XXH3_64bits() | @b SSE2 | 64 | 31.5 GB/s | 133.1 | - * | XXH3_128bits() | @b SSE2 | 128 | 29.6 GB/s | 118.1 | - * | RAM sequential read | | N/A | 28.0 GB/s | N/A | - * | ahash | AES-NI | 64 | 22.5 GB/s | 107.2 | - * | City64 | | 64 | 22.0 GB/s | 76.6 | - * | T1ha2 | | 64 | 22.0 GB/s | 99.0 | - * | City128 | | 128 | 21.7 GB/s | 57.7 | - * | FarmHash | AES-NI | 64 | 21.3 GB/s | 71.9 | - * | XXH64() | | 64 | 19.4 GB/s | 71.0 | - * | SpookyHash | | 64 | 19.3 GB/s | 53.2 | - * | Mum | | 64 | 18.0 GB/s | 67.0 | - * | CRC32C | SSE4.2 | 32 | 13.0 GB/s | 57.9 | - * | XXH32() | | 32 | 9.7 GB/s | 71.9 | - * | City32 | | 32 | 9.1 GB/s | 66.0 | - * | Blake3* | @b AVX2 | 256 | 4.4 GB/s | 8.1 | - * | Murmur3 | | 32 | 3.9 GB/s | 56.1 | - * | SipHash* | | 64 | 3.0 GB/s | 43.2 | - * | Blake3* | @b SSE2 | 256 | 2.4 GB/s | 8.1 | - * | HighwayHash | | 64 | 1.4 GB/s | 6.0 | - * | FNV64 | | 64 | 1.2 GB/s | 62.7 | - * | Blake2* | | 256 | 1.1 GB/s | 5.1 | - * | SHA1* | | 160 | 0.8 GB/s | 5.6 | - * | MD5* | | 128 | 0.6 GB/s | 7.8 | - * @note - * - Hashes which require a specific ISA extension are noted. SSE2 is also noted, - * even though it is mandatory on x64. - * - Hashes with an asterisk are cryptographic. Note that MD5 is non-cryptographic - * by modern standards. - * - Small data velocity is a rough average of algorithm's efficiency for small - * data. For more accurate information, see the wiki. - * - More benchmarks and strength tests are found on the wiki: - * https://github.com/Cyan4973/xxHash/wiki - * - * Usage - * ------ - * All xxHash variants use a similar API. Changing the algorithm is a trivial - * substitution. - * - * @pre - * For functions which take an input and length parameter, the following - * requirements are assumed: - * - The range from [`input`, `input + length`) is valid, readable memory. - * - The only exception is if the `length` is `0`, `input` may be `NULL`. - * - For C++, the objects must have the *TriviallyCopyable* property, as the - * functions access bytes directly as if it was an array of `unsigned char`. - * - * @anchor single_shot_example - * **Single Shot** - * - * These functions are stateless functions which hash a contiguous block of memory, - * immediately returning the result. They are the easiest and usually the fastest - * option. - * - * XXH32(), XXH64(), XXH3_64bits(), XXH3_128bits() - * - * @code{.c} - * #include - * #include "xxhash.h" - * - * // Example for a function which hashes a null terminated string with XXH32(). - * XXH32_hash_t hash_string(const char* string, XXH32_hash_t seed) - * { - * // NULL pointers are only valid if the length is zero - * size_t length = (string == NULL) ? 0 : strlen(string); - * return XXH32(string, length, seed); - * } - * @endcode - * - * @anchor streaming_example - * **Streaming** - * - * These groups of functions allow incremental hashing of unknown size, even - * more than what would fit in a size_t. - * - * XXH32_reset(), XXH64_reset(), XXH3_64bits_reset(), XXH3_128bits_reset() - * - * @code{.c} - * #include - * #include - * #include "xxhash.h" - * // Example for a function which hashes a FILE incrementally with XXH3_64bits(). - * XXH64_hash_t hashFile(FILE* f) - * { - * // Allocate a state struct. Do not just use malloc() or new. - * XXH3_state_t* state = XXH3_createState(); - * assert(state != NULL && "Out of memory!"); - * // Reset the state to start a new hashing session. - * XXH3_64bits_reset(state); - * char buffer[4096]; - * size_t count; - * // Read the file in chunks - * while ((count = fread(buffer, 1, sizeof(buffer), f)) != 0) { - * // Run update() as many times as necessary to process the data - * XXH3_64bits_update(state, buffer, count); - * } - * // Retrieve the finalized hash. This will not change the state. - * XXH64_hash_t result = XXH3_64bits_digest(state); - * // Free the state. Do not use free(). - * XXH3_freeState(state); - * return result; - * } - * @endcode - * - * @file xxhash.h - * xxHash prototypes and implementation - */ - -#if defined (__cplusplus) -extern "C" { -#endif - -/* **************************** - * INLINE mode - ******************************/ -/*! - * @defgroup public Public API - * Contains details on the public xxHash functions. - * @{ - */ -#ifdef XXH_DOXYGEN -/*! - * @brief Gives access to internal state declaration, required for static allocation. - * - * Incompatible with dynamic linking, due to risks of ABI changes. - * - * Usage: - * @code{.c} - * #define XXH_STATIC_LINKING_ONLY - * #include "xxhash.h" - * @endcode - */ -# define XXH_STATIC_LINKING_ONLY -/* Do not undef XXH_STATIC_LINKING_ONLY for Doxygen */ - -/*! - * @brief Gives access to internal definitions. - * - * Usage: - * @code{.c} - * #define XXH_STATIC_LINKING_ONLY - * #define XXH_IMPLEMENTATION - * #include "xxhash.h" - * @endcode - */ -# define XXH_IMPLEMENTATION -/* Do not undef XXH_IMPLEMENTATION for Doxygen */ - -/*! - * @brief Exposes the implementation and marks all functions as `inline`. - * - * Use these build macros to inline xxhash into the target unit. - * Inlining improves performance on small inputs, especially when the length is - * expressed as a compile-time constant: - * - * https://fastcompression.blogspot.com/2018/03/xxhash-for-small-keys-impressive-power.html - * - * It also keeps xxHash symbols private to the unit, so they are not exported. - * - * Usage: - * @code{.c} - * #define XXH_INLINE_ALL - * #include "xxhash.h" - * @endcode - * Do not compile and link xxhash.o as a separate object, as it is not useful. - */ -# define XXH_INLINE_ALL -# undef XXH_INLINE_ALL -/*! - * @brief Exposes the implementation without marking functions as inline. - */ -# define XXH_PRIVATE_API -# undef XXH_PRIVATE_API -/*! - * @brief Emulate a namespace by transparently prefixing all symbols. - * - * If you want to include _and expose_ xxHash functions from within your own - * library, but also want to avoid symbol collisions with other libraries which - * may also include xxHash, you can use @ref XXH_NAMESPACE to automatically prefix - * any public symbol from xxhash library with the value of @ref XXH_NAMESPACE - * (therefore, avoid empty or numeric values). - * - * Note that no change is required within the calling program as long as it - * includes `xxhash.h`: Regular symbol names will be automatically translated - * by this header. - */ -# define XXH_NAMESPACE /* YOUR NAME HERE */ -# undef XXH_NAMESPACE -#endif - -#if (defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API)) \ - && !defined(XXH_INLINE_ALL_31684351384) - /* this section should be traversed only once */ -# define XXH_INLINE_ALL_31684351384 - /* give access to the advanced API, required to compile implementations */ -# undef XXH_STATIC_LINKING_ONLY /* avoid macro redef */ -# define XXH_STATIC_LINKING_ONLY - /* make all functions private */ -# undef XXH_PUBLIC_API -# if defined(__GNUC__) -# define XXH_PUBLIC_API static __inline __attribute__((unused)) -# elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) -# define XXH_PUBLIC_API static inline -# elif defined(_MSC_VER) -# define XXH_PUBLIC_API static __inline -# else - /* note: this version may generate warnings for unused static functions */ -# define XXH_PUBLIC_API static -# endif - - /* - * This part deals with the special case where a unit wants to inline xxHash, - * but "xxhash.h" has previously been included without XXH_INLINE_ALL, - * such as part of some previously included *.h header file. - * Without further action, the new include would just be ignored, - * and functions would effectively _not_ be inlined (silent failure). - * The following macros solve this situation by prefixing all inlined names, - * avoiding naming collision with previous inclusions. - */ - /* Before that, we unconditionally #undef all symbols, - * in case they were already defined with XXH_NAMESPACE. - * They will then be redefined for XXH_INLINE_ALL - */ -# undef XXH_versionNumber - /* XXH32 */ -# undef XXH32 -# undef XXH32_createState -# undef XXH32_freeState -# undef XXH32_reset -# undef XXH32_update -# undef XXH32_digest -# undef XXH32_copyState -# undef XXH32_canonicalFromHash -# undef XXH32_hashFromCanonical - /* XXH64 */ -# undef XXH64 -# undef XXH64_createState -# undef XXH64_freeState -# undef XXH64_reset -# undef XXH64_update -# undef XXH64_digest -# undef XXH64_copyState -# undef XXH64_canonicalFromHash -# undef XXH64_hashFromCanonical - /* XXH3_64bits */ -# undef XXH3_64bits -# undef XXH3_64bits_withSecret -# undef XXH3_64bits_withSeed -# undef XXH3_64bits_withSecretandSeed -# undef XXH3_createState -# undef XXH3_freeState -# undef XXH3_copyState -# undef XXH3_64bits_reset -# undef XXH3_64bits_reset_withSeed -# undef XXH3_64bits_reset_withSecret -# undef XXH3_64bits_update -# undef XXH3_64bits_digest -# undef XXH3_generateSecret - /* XXH3_128bits */ -# undef XXH128 -# undef XXH3_128bits -# undef XXH3_128bits_withSeed -# undef XXH3_128bits_withSecret -# undef XXH3_128bits_reset -# undef XXH3_128bits_reset_withSeed -# undef XXH3_128bits_reset_withSecret -# undef XXH3_128bits_reset_withSecretandSeed -# undef XXH3_128bits_update -# undef XXH3_128bits_digest -# undef XXH128_isEqual -# undef XXH128_cmp -# undef XXH128_canonicalFromHash -# undef XXH128_hashFromCanonical - /* Finally, free the namespace itself */ -# undef XXH_NAMESPACE - - /* employ the namespace for XXH_INLINE_ALL */ -# define XXH_NAMESPACE XXH_INLINE_ - /* - * Some identifiers (enums, type names) are not symbols, - * but they must nonetheless be renamed to avoid redeclaration. - * Alternative solution: do not redeclare them. - * However, this requires some #ifdefs, and has a more dispersed impact. - * Meanwhile, renaming can be achieved in a single place. - */ -# define XXH_IPREF(Id) XXH_NAMESPACE ## Id -# define XXH_OK XXH_IPREF(XXH_OK) -# define XXH_ERROR XXH_IPREF(XXH_ERROR) -# define XXH_errorcode XXH_IPREF(XXH_errorcode) -# define XXH32_canonical_t XXH_IPREF(XXH32_canonical_t) -# define XXH64_canonical_t XXH_IPREF(XXH64_canonical_t) -# define XXH128_canonical_t XXH_IPREF(XXH128_canonical_t) -# define XXH32_state_s XXH_IPREF(XXH32_state_s) -# define XXH32_state_t XXH_IPREF(XXH32_state_t) -# define XXH64_state_s XXH_IPREF(XXH64_state_s) -# define XXH64_state_t XXH_IPREF(XXH64_state_t) -# define XXH3_state_s XXH_IPREF(XXH3_state_s) -# define XXH3_state_t XXH_IPREF(XXH3_state_t) -# define XXH128_hash_t XXH_IPREF(XXH128_hash_t) - /* Ensure the header is parsed again, even if it was previously included */ -# undef XXHASH_H_5627135585666179 -# undef XXHASH_H_STATIC_13879238742 -#endif /* XXH_INLINE_ALL || XXH_PRIVATE_API */ - -/* **************************************************************** - * Stable API - *****************************************************************/ -#ifndef XXHASH_H_5627135585666179 -#define XXHASH_H_5627135585666179 1 - -/*! @brief Marks a global symbol. */ -#if !defined(XXH_INLINE_ALL) && !defined(XXH_PRIVATE_API) -# if defined(WIN32) && defined(_MSC_VER) && (defined(XXH_IMPORT) || defined(XXH_EXPORT)) -# ifdef XXH_EXPORT -# define XXH_PUBLIC_API __declspec(dllexport) -# elif XXH_IMPORT -# define XXH_PUBLIC_API __declspec(dllimport) -# endif -# else -# define XXH_PUBLIC_API /* do nothing */ -# endif -#endif - -#ifdef XXH_NAMESPACE -# define XXH_CAT(A,B) A##B -# define XXH_NAME2(A,B) XXH_CAT(A,B) -# define XXH_versionNumber XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber) -/* XXH32 */ -# define XXH32 XXH_NAME2(XXH_NAMESPACE, XXH32) -# define XXH32_createState XXH_NAME2(XXH_NAMESPACE, XXH32_createState) -# define XXH32_freeState XXH_NAME2(XXH_NAMESPACE, XXH32_freeState) -# define XXH32_reset XXH_NAME2(XXH_NAMESPACE, XXH32_reset) -# define XXH32_update XXH_NAME2(XXH_NAMESPACE, XXH32_update) -# define XXH32_digest XXH_NAME2(XXH_NAMESPACE, XXH32_digest) -# define XXH32_copyState XXH_NAME2(XXH_NAMESPACE, XXH32_copyState) -# define XXH32_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash) -# define XXH32_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical) -/* XXH64 */ -# define XXH64 XXH_NAME2(XXH_NAMESPACE, XXH64) -# define XXH64_createState XXH_NAME2(XXH_NAMESPACE, XXH64_createState) -# define XXH64_freeState XXH_NAME2(XXH_NAMESPACE, XXH64_freeState) -# define XXH64_reset XXH_NAME2(XXH_NAMESPACE, XXH64_reset) -# define XXH64_update XXH_NAME2(XXH_NAMESPACE, XXH64_update) -# define XXH64_digest XXH_NAME2(XXH_NAMESPACE, XXH64_digest) -# define XXH64_copyState XXH_NAME2(XXH_NAMESPACE, XXH64_copyState) -# define XXH64_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash) -# define XXH64_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical) -/* XXH3_64bits */ -# define XXH3_64bits XXH_NAME2(XXH_NAMESPACE, XXH3_64bits) -# define XXH3_64bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecret) -# define XXH3_64bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSeed) -# define XXH3_64bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecretandSeed) -# define XXH3_createState XXH_NAME2(XXH_NAMESPACE, XXH3_createState) -# define XXH3_freeState XXH_NAME2(XXH_NAMESPACE, XXH3_freeState) -# define XXH3_copyState XXH_NAME2(XXH_NAMESPACE, XXH3_copyState) -# define XXH3_64bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset) -# define XXH3_64bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSeed) -# define XXH3_64bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret) -# define XXH3_64bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecretandSeed) -# define XXH3_64bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_update) -# define XXH3_64bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_digest) -# define XXH3_generateSecret XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret) -# define XXH3_generateSecret_fromSeed XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret_fromSeed) -/* XXH3_128bits */ -# define XXH128 XXH_NAME2(XXH_NAMESPACE, XXH128) -# define XXH3_128bits XXH_NAME2(XXH_NAMESPACE, XXH3_128bits) -# define XXH3_128bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSeed) -# define XXH3_128bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecret) -# define XXH3_128bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecretandSeed) -# define XXH3_128bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset) -# define XXH3_128bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSeed) -# define XXH3_128bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecret) -# define XXH3_128bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecretandSeed) -# define XXH3_128bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_update) -# define XXH3_128bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_digest) -# define XXH128_isEqual XXH_NAME2(XXH_NAMESPACE, XXH128_isEqual) -# define XXH128_cmp XXH_NAME2(XXH_NAMESPACE, XXH128_cmp) -# define XXH128_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH128_canonicalFromHash) -# define XXH128_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH128_hashFromCanonical) -#endif - - -/* ************************************* -* Compiler specifics -***************************************/ - -/* specific declaration modes for Windows */ -#if !defined(XXH_INLINE_ALL) && !defined(XXH_PRIVATE_API) -# if defined(WIN32) && defined(_MSC_VER) && (defined(XXH_IMPORT) || defined(XXH_EXPORT)) -# ifdef XXH_EXPORT -# define XXH_PUBLIC_API __declspec(dllexport) -# elif XXH_IMPORT -# define XXH_PUBLIC_API __declspec(dllimport) -# endif -# else -# define XXH_PUBLIC_API /* do nothing */ -# endif -#endif - -#if defined (__GNUC__) -# define XXH_CONSTF __attribute__((const)) -# define XXH_PUREF __attribute__((pure)) -# define XXH_MALLOCF __attribute__((malloc)) -#else -# define XXH_CONSTF /* disable */ -# define XXH_PUREF -# define XXH_MALLOCF -#endif - -/* ************************************* -* Version -***************************************/ -#define XXH_VERSION_MAJOR 0 -#define XXH_VERSION_MINOR 8 -#define XXH_VERSION_RELEASE 2 -/*! @brief Version number, encoded as two digits each */ -#define XXH_VERSION_NUMBER (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE) - -/*! - * @brief Obtains the xxHash version. - * - * This is mostly useful when xxHash is compiled as a shared library, - * since the returned value comes from the library, as opposed to header file. - * - * @return @ref XXH_VERSION_NUMBER of the invoked library. - */ -XXH_PUBLIC_API XXH_CONSTF unsigned XXH_versionNumber (void); - - -/* **************************** -* Common basic types -******************************/ -#include /* size_t */ -/*! - * @brief Exit code for the streaming API. - */ -typedef enum { - XXH_OK = 0, /*!< OK */ - XXH_ERROR /*!< Error */ -} XXH_errorcode; - - -/*-********************************************************************** -* 32-bit hash -************************************************************************/ -#if defined(XXH_DOXYGEN) /* Don't show include */ -/*! - * @brief An unsigned 32-bit integer. - * - * Not necessarily defined to `uint32_t` but functionally equivalent. - */ -typedef uint32_t XXH32_hash_t; - -#elif !defined (__VMS) \ - && (defined (__cplusplus) \ - || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) -# include - typedef uint32_t XXH32_hash_t; - -#else -# include -# if UINT_MAX == 0xFFFFFFFFUL - typedef unsigned int XXH32_hash_t; -# elif ULONG_MAX == 0xFFFFFFFFUL - typedef unsigned long XXH32_hash_t; -# else -# error "unsupported platform: need a 32-bit type" -# endif -#endif - -/*! - * @} - * - * @defgroup XXH32_family XXH32 family - * @ingroup public - * Contains functions used in the classic 32-bit xxHash algorithm. - * - * @note - * XXH32 is useful for older platforms, with no or poor 64-bit performance. - * Note that the @ref XXH3_family provides competitive speed for both 32-bit - * and 64-bit systems, and offers true 64/128 bit hash results. - * - * @see @ref XXH64_family, @ref XXH3_family : Other xxHash families - * @see @ref XXH32_impl for implementation details - * @{ - */ - -/*! - * @brief Calculates the 32-bit hash of @p input using xxHash32. - * - * Speed on Core 2 Duo @ 3 GHz (single thread, SMHasher benchmark): 5.4 GB/s - * - * See @ref single_shot_example "Single Shot Example" for an example. - * - * @param input The block of data to be hashed, at least @p length bytes in size. - * @param length The length of @p input, in bytes. - * @param seed The 32-bit seed to alter the hash's output predictably. - * - * @pre - * The memory between @p input and @p input + @p length must be valid, - * readable, contiguous memory. However, if @p length is `0`, @p input may be - * `NULL`. In C++, this also must be *TriviallyCopyable*. - * - * @return The calculated 32-bit hash value. - * - * @see - * XXH64(), XXH3_64bits_withSeed(), XXH3_128bits_withSeed(), XXH128(): - * Direct equivalents for the other variants of xxHash. - * @see - * XXH32_createState(), XXH32_update(), XXH32_digest(): Streaming version. - */ -XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32 (const void* input, size_t length, XXH32_hash_t seed); - -#ifndef XXH_NO_STREAM -/*! - * Streaming functions generate the xxHash value from an incremental input. - * This method is slower than single-call functions, due to state management. - * For small inputs, prefer `XXH32()` and `XXH64()`, which are better optimized. - * - * An XXH state must first be allocated using `XXH*_createState()`. - * - * Start a new hash by initializing the state with a seed using `XXH*_reset()`. - * - * Then, feed the hash state by calling `XXH*_update()` as many times as necessary. - * - * The function returns an error code, with 0 meaning OK, and any other value - * meaning there is an error. - * - * Finally, a hash value can be produced anytime, by using `XXH*_digest()`. - * This function returns the nn-bits hash as an int or long long. - * - * It's still possible to continue inserting input into the hash state after a - * digest, and generate new hash values later on by invoking `XXH*_digest()`. - * - * When done, release the state using `XXH*_freeState()`. - * - * @see streaming_example at the top of @ref xxhash.h for an example. - */ - -/*! - * @typedef struct XXH32_state_s XXH32_state_t - * @brief The opaque state struct for the XXH32 streaming API. - * - * @see XXH32_state_s for details. - */ -typedef struct XXH32_state_s XXH32_state_t; - -/*! - * @brief Allocates an @ref XXH32_state_t. - * - * Must be freed with XXH32_freeState(). - * @return An allocated XXH32_state_t on success, `NULL` on failure. - */ -XXH_PUBLIC_API XXH_MALLOCF XXH32_state_t* XXH32_createState(void); -/*! - * @brief Frees an @ref XXH32_state_t. - * - * Must be allocated with XXH32_createState(). - * @param statePtr A pointer to an @ref XXH32_state_t allocated with @ref XXH32_createState(). - * @return XXH_OK. - */ -XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr); -/*! - * @brief Copies one @ref XXH32_state_t to another. - * - * @param dst_state The state to copy to. - * @param src_state The state to copy from. - * @pre - * @p dst_state and @p src_state must not be `NULL` and must not overlap. - */ -XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dst_state, const XXH32_state_t* src_state); - -/*! - * @brief Resets an @ref XXH32_state_t to begin a new hash. - * - * This function resets and seeds a state. Call it before @ref XXH32_update(). - * - * @param statePtr The state struct to reset. - * @param seed The 32-bit seed to alter the hash result predictably. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - */ -XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t* statePtr, XXH32_hash_t seed); - -/*! - * @brief Consumes a block of @p input to an @ref XXH32_state_t. - * - * Call this to incrementally consume blocks of data. - * - * @param statePtr The state struct to update. - * @param input The block of data to be hashed, at least @p length bytes in size. - * @param length The length of @p input, in bytes. - * - * @pre - * @p statePtr must not be `NULL`. - * @pre - * The memory between @p input and @p input + @p length must be valid, - * readable, contiguous memory. However, if @p length is `0`, @p input may be - * `NULL`. In C++, this also must be *TriviallyCopyable*. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - */ -XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* statePtr, const void* input, size_t length); - -/*! - * @brief Returns the calculated hash value from an @ref XXH32_state_t. - * - * @note - * Calling XXH32_digest() will not affect @p statePtr, so you can update, - * digest, and update again. - * - * @param statePtr The state struct to calculate the hash from. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return The calculated xxHash32 value from that state. - */ -XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32_digest (const XXH32_state_t* statePtr); -#endif /* !XXH_NO_STREAM */ - -/******* Canonical representation *******/ - -/* - * The default return values from XXH functions are unsigned 32 and 64 bit - * integers. - * This the simplest and fastest format for further post-processing. - * - * However, this leaves open the question of what is the order on the byte level, - * since little and big endian conventions will store the same number differently. - * - * The canonical representation settles this issue by mandating big-endian - * convention, the same convention as human-readable numbers (large digits first). - * - * When writing hash values to storage, sending them over a network, or printing - * them, it's highly recommended to use the canonical representation to ensure - * portability across a wider range of systems, present and future. - * - * The following functions allow transformation of hash values to and from - * canonical format. - */ - -/*! - * @brief Canonical (big endian) representation of @ref XXH32_hash_t. - */ -typedef struct { - unsigned char digest[4]; /*!< Hash bytes, big endian */ -} XXH32_canonical_t; - -/*! - * @brief Converts an @ref XXH32_hash_t to a big endian @ref XXH32_canonical_t. - * - * @param dst The @ref XXH32_canonical_t pointer to be stored to. - * @param hash The @ref XXH32_hash_t to be converted. - * - * @pre - * @p dst must not be `NULL`. - */ -XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash); - -/*! - * @brief Converts an @ref XXH32_canonical_t to a native @ref XXH32_hash_t. - * - * @param src The @ref XXH32_canonical_t to convert. - * - * @pre - * @p src must not be `NULL`. - * - * @return The converted hash. - */ -XXH_PUBLIC_API XXH_PUREF XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src); - - -/*! @cond Doxygen ignores this part */ -#ifdef __has_attribute -# define XXH_HAS_ATTRIBUTE(x) __has_attribute(x) -#else -# define XXH_HAS_ATTRIBUTE(x) 0 -#endif -/*! @endcond */ - -/*! @cond Doxygen ignores this part */ -/* - * C23 __STDC_VERSION__ number hasn't been specified yet. For now - * leave as `201711L` (C17 + 1). - * TODO: Update to correct value when its been specified. - */ -#define XXH_C23_VN 201711L -/*! @endcond */ - -/*! @cond Doxygen ignores this part */ -/* C-language Attributes are added in C23. */ -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= XXH_C23_VN) && defined(__has_c_attribute) -# define XXH_HAS_C_ATTRIBUTE(x) __has_c_attribute(x) -#else -# define XXH_HAS_C_ATTRIBUTE(x) 0 -#endif -/*! @endcond */ - -/*! @cond Doxygen ignores this part */ -#if defined(__cplusplus) && defined(__has_cpp_attribute) -# define XXH_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) -#else -# define XXH_HAS_CPP_ATTRIBUTE(x) 0 -#endif -/*! @endcond */ - -/*! @cond Doxygen ignores this part */ -/* - * Define XXH_FALLTHROUGH macro for annotating switch case with the 'fallthrough' attribute - * introduced in CPP17 and C23. - * CPP17 : https://en.cppreference.com/w/cpp/language/attributes/fallthrough - * C23 : https://en.cppreference.com/w/c/language/attributes/fallthrough - */ -#if XXH_HAS_C_ATTRIBUTE(fallthrough) || XXH_HAS_CPP_ATTRIBUTE(fallthrough) -# define XXH_FALLTHROUGH [[fallthrough]] -#elif XXH_HAS_ATTRIBUTE(__fallthrough__) -# define XXH_FALLTHROUGH __attribute__ ((__fallthrough__)) -#else -# define XXH_FALLTHROUGH /* fallthrough */ -#endif -/*! @endcond */ - -/*! @cond Doxygen ignores this part */ -/* - * Define XXH_NOESCAPE for annotated pointers in public API. - * https://clang.llvm.org/docs/AttributeReference.html#noescape - * As of writing this, only supported by clang. - */ -#if XXH_HAS_ATTRIBUTE(noescape) -# define XXH_NOESCAPE __attribute__((noescape)) -#else -# define XXH_NOESCAPE -#endif -/*! @endcond */ - - -/*! - * @} - * @ingroup public - * @{ - */ - -#ifndef XXH_NO_LONG_LONG -/*-********************************************************************** -* 64-bit hash -************************************************************************/ -#if defined(XXH_DOXYGEN) /* don't include */ -/*! - * @brief An unsigned 64-bit integer. - * - * Not necessarily defined to `uint64_t` but functionally equivalent. - */ -typedef uint64_t XXH64_hash_t; -#elif !defined (__VMS) \ - && (defined (__cplusplus) \ - || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) -# include - typedef uint64_t XXH64_hash_t; -#else -# include -# if defined(__LP64__) && ULONG_MAX == 0xFFFFFFFFFFFFFFFFULL - /* LP64 ABI says uint64_t is unsigned long */ - typedef unsigned long XXH64_hash_t; -# else - /* the following type must have a width of 64-bit */ - typedef unsigned long long XXH64_hash_t; -# endif -#endif - -/*! - * @} - * - * @defgroup XXH64_family XXH64 family - * @ingroup public - * @{ - * Contains functions used in the classic 64-bit xxHash algorithm. - * - * @note - * XXH3 provides competitive speed for both 32-bit and 64-bit systems, - * and offers true 64/128 bit hash results. - * It provides better speed for systems with vector processing capabilities. - */ - -/*! - * @brief Calculates the 64-bit hash of @p input using xxHash64. - * - * This function usually runs faster on 64-bit systems, but slower on 32-bit - * systems (see benchmark). - * - * @param input The block of data to be hashed, at least @p length bytes in size. - * @param length The length of @p input, in bytes. - * @param seed The 64-bit seed to alter the hash's output predictably. - * - * @pre - * The memory between @p input and @p input + @p length must be valid, - * readable, contiguous memory. However, if @p length is `0`, @p input may be - * `NULL`. In C++, this also must be *TriviallyCopyable*. - * - * @return The calculated 64-bit hash. - * - * @see - * XXH32(), XXH3_64bits_withSeed(), XXH3_128bits_withSeed(), XXH128(): - * Direct equivalents for the other variants of xxHash. - * @see - * XXH64_createState(), XXH64_update(), XXH64_digest(): Streaming version. - */ -XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t seed); - -/******* Streaming *******/ -#ifndef XXH_NO_STREAM -/*! - * @brief The opaque state struct for the XXH64 streaming API. - * - * @see XXH64_state_s for details. - */ -typedef struct XXH64_state_s XXH64_state_t; /* incomplete type */ - -/*! - * @brief Allocates an @ref XXH64_state_t. - * - * Must be freed with XXH64_freeState(). - * @return An allocated XXH64_state_t on success, `NULL` on failure. - */ -XXH_PUBLIC_API XXH_MALLOCF XXH64_state_t* XXH64_createState(void); - -/*! - * @brief Frees an @ref XXH64_state_t. - * - * Must be allocated with XXH64_createState(). - * @param statePtr A pointer to an @ref XXH64_state_t allocated with @ref XXH64_createState(). - * @return XXH_OK. - */ -XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr); - -/*! - * @brief Copies one @ref XXH64_state_t to another. - * - * @param dst_state The state to copy to. - * @param src_state The state to copy from. - * @pre - * @p dst_state and @p src_state must not be `NULL` and must not overlap. - */ -XXH_PUBLIC_API void XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dst_state, const XXH64_state_t* src_state); - -/*! - * @brief Resets an @ref XXH64_state_t to begin a new hash. - * - * This function resets and seeds a state. Call it before @ref XXH64_update(). - * - * @param statePtr The state struct to reset. - * @param seed The 64-bit seed to alter the hash result predictably. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - */ -XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH_NOESCAPE XXH64_state_t* statePtr, XXH64_hash_t seed); - -/*! - * @brief Consumes a block of @p input to an @ref XXH64_state_t. - * - * Call this to incrementally consume blocks of data. - * - * @param statePtr The state struct to update. - * @param input The block of data to be hashed, at least @p length bytes in size. - * @param length The length of @p input, in bytes. - * - * @pre - * @p statePtr must not be `NULL`. - * @pre - * The memory between @p input and @p input + @p length must be valid, - * readable, contiguous memory. However, if @p length is `0`, @p input may be - * `NULL`. In C++, this also must be *TriviallyCopyable*. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - */ -XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH_NOESCAPE XXH64_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); - -/*! - * @brief Returns the calculated hash value from an @ref XXH64_state_t. - * - * @note - * Calling XXH64_digest() will not affect @p statePtr, so you can update, - * digest, and update again. - * - * @param statePtr The state struct to calculate the hash from. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return The calculated xxHash64 value from that state. - */ -XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64_digest (XXH_NOESCAPE const XXH64_state_t* statePtr); -#endif /* !XXH_NO_STREAM */ -/******* Canonical representation *******/ - -/*! - * @brief Canonical (big endian) representation of @ref XXH64_hash_t. - */ -typedef struct { unsigned char digest[sizeof(XXH64_hash_t)]; } XXH64_canonical_t; - -/*! - * @brief Converts an @ref XXH64_hash_t to a big endian @ref XXH64_canonical_t. - * - * @param dst The @ref XXH64_canonical_t pointer to be stored to. - * @param hash The @ref XXH64_hash_t to be converted. - * - * @pre - * @p dst must not be `NULL`. - */ -XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical_t* dst, XXH64_hash_t hash); - -/*! - * @brief Converts an @ref XXH64_canonical_t to a native @ref XXH64_hash_t. - * - * @param src The @ref XXH64_canonical_t to convert. - * - * @pre - * @p src must not be `NULL`. - * - * @return The converted hash. - */ -XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE const XXH64_canonical_t* src); - -#ifndef XXH_NO_XXH3 - -/*! - * @} - * ************************************************************************ - * @defgroup XXH3_family XXH3 family - * @ingroup public - * @{ - * - * XXH3 is a more recent hash algorithm featuring: - * - Improved speed for both small and large inputs - * - True 64-bit and 128-bit outputs - * - SIMD acceleration - * - Improved 32-bit viability - * - * Speed analysis methodology is explained here: - * - * https://fastcompression.blogspot.com/2019/03/presenting-xxh3.html - * - * Compared to XXH64, expect XXH3 to run approximately - * ~2x faster on large inputs and >3x faster on small ones, - * exact differences vary depending on platform. - * - * XXH3's speed benefits greatly from SIMD and 64-bit arithmetic, - * but does not require it. - * Most 32-bit and 64-bit targets that can run XXH32 smoothly can run XXH3 - * at competitive speeds, even without vector support. Further details are - * explained in the implementation. - * - * XXH3 has a fast scalar implementation, but it also includes accelerated SIMD - * implementations for many common platforms: - * - AVX512 - * - AVX2 - * - SSE2 - * - ARM NEON - * - WebAssembly SIMD128 - * - POWER8 VSX - * - s390x ZVector - * This can be controlled via the @ref XXH_VECTOR macro, but it automatically - * selects the best version according to predefined macros. For the x86 family, an - * automatic runtime dispatcher is included separately in @ref xxh_x86dispatch.c. - * - * XXH3 implementation is portable: - * it has a generic C90 formulation that can be compiled on any platform, - * all implementations generate exactly the same hash value on all platforms. - * Starting from v0.8.0, it's also labelled "stable", meaning that - * any future version will also generate the same hash value. - * - * XXH3 offers 2 variants, _64bits and _128bits. - * - * When only 64 bits are needed, prefer invoking the _64bits variant, as it - * reduces the amount of mixing, resulting in faster speed on small inputs. - * It's also generally simpler to manipulate a scalar return type than a struct. - * - * The API supports one-shot hashing, streaming mode, and custom secrets. - */ -/*-********************************************************************** -* XXH3 64-bit variant -************************************************************************/ - -/*! - * @brief 64-bit unseeded variant of XXH3. - * - * This is equivalent to @ref XXH3_64bits_withSeed() with a seed of 0, however - * it may have slightly better performance due to constant propagation of the - * defaults. - * - * @see - * XXH32(), XXH64(), XXH3_128bits(): equivalent for the other xxHash algorithms - * @see - * XXH3_64bits_withSeed(), XXH3_64bits_withSecret(): other seeding variants - * @see - * XXH3_64bits_reset(), XXH3_64bits_update(), XXH3_64bits_digest(): Streaming version. - */ -XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits(XXH_NOESCAPE const void* input, size_t length); - -/*! - * @brief 64-bit seeded variant of XXH3 - * - * This variant generates a custom secret on the fly based on default secret - * altered using the `seed` value. - * - * While this operation is decently fast, note that it's not completely free. - * - * @note - * seed == 0 produces the same results as @ref XXH3_64bits(). - * - * @param input The data to hash - * @param length The length - * @param seed The 64-bit seed to alter the state. - */ -XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_withSeed(XXH_NOESCAPE const void* input, size_t length, XXH64_hash_t seed); - -/*! - * The bare minimum size for a custom secret. - * - * @see - * XXH3_64bits_withSecret(), XXH3_64bits_reset_withSecret(), - * XXH3_128bits_withSecret(), XXH3_128bits_reset_withSecret(). - */ -#define XXH3_SECRET_SIZE_MIN 136 - -/*! - * @brief 64-bit variant of XXH3 with a custom "secret". - * - * It's possible to provide any blob of bytes as a "secret" to generate the hash. - * This makes it more difficult for an external actor to prepare an intentional collision. - * The main condition is that secretSize *must* be large enough (>= XXH3_SECRET_SIZE_MIN). - * However, the quality of the secret impacts the dispersion of the hash algorithm. - * Therefore, the secret _must_ look like a bunch of random bytes. - * Avoid "trivial" or structured data such as repeated sequences or a text document. - * Whenever in doubt about the "randomness" of the blob of bytes, - * consider employing "XXH3_generateSecret()" instead (see below). - * It will generate a proper high entropy secret derived from the blob of bytes. - * Another advantage of using XXH3_generateSecret() is that - * it guarantees that all bits within the initial blob of bytes - * will impact every bit of the output. - * This is not necessarily the case when using the blob of bytes directly - * because, when hashing _small_ inputs, only a portion of the secret is employed. - */ -XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_withSecret(XXH_NOESCAPE const void* data, size_t len, XXH_NOESCAPE const void* secret, size_t secretSize); - - -/******* Streaming *******/ -#ifndef XXH_NO_STREAM -/* - * Streaming requires state maintenance. - * This operation costs memory and CPU. - * As a consequence, streaming is slower than one-shot hashing. - * For better performance, prefer one-shot functions whenever applicable. - */ - -/*! - * @brief The state struct for the XXH3 streaming API. - * - * @see XXH3_state_s for details. - */ -typedef struct XXH3_state_s XXH3_state_t; -XXH_PUBLIC_API XXH_MALLOCF XXH3_state_t* XXH3_createState(void); -XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr); - -/*! - * @brief Copies one @ref XXH3_state_t to another. - * - * @param dst_state The state to copy to. - * @param src_state The state to copy from. - * @pre - * @p dst_state and @p src_state must not be `NULL` and must not overlap. - */ -XXH_PUBLIC_API void XXH3_copyState(XXH_NOESCAPE XXH3_state_t* dst_state, XXH_NOESCAPE const XXH3_state_t* src_state); - -/*! - * @brief Resets an @ref XXH3_state_t to begin a new hash. - * - * This function resets `statePtr` and generate a secret with default parameters. Call it before @ref XXH3_64bits_update(). - * Digest will be equivalent to `XXH3_64bits()`. - * - * @param statePtr The state struct to reset. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - * - */ -XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr); - -/*! - * @brief Resets an @ref XXH3_state_t with 64-bit seed to begin a new hash. - * - * This function resets `statePtr` and generate a secret from `seed`. Call it before @ref XXH3_64bits_update(). - * Digest will be equivalent to `XXH3_64bits_withSeed()`. - * - * @param statePtr The state struct to reset. - * @param seed The 64-bit seed to alter the state. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - * - */ -XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t seed); - -/*! - * XXH3_64bits_reset_withSecret(): - * `secret` is referenced, it _must outlive_ the hash streaming session. - * Similar to one-shot API, `secretSize` must be >= `XXH3_SECRET_SIZE_MIN`, - * and the quality of produced hash values depends on secret's entropy - * (secret's content should look like a bunch of random bytes). - * When in doubt about the randomness of a candidate `secret`, - * consider employing `XXH3_generateSecret()` instead (see below). - */ -XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize); - -/*! - * @brief Consumes a block of @p input to an @ref XXH3_state_t. - * - * Call this to incrementally consume blocks of data. - * - * @param statePtr The state struct to update. - * @param input The block of data to be hashed, at least @p length bytes in size. - * @param length The length of @p input, in bytes. - * - * @pre - * @p statePtr must not be `NULL`. - * @pre - * The memory between @p input and @p input + @p length must be valid, - * readable, contiguous memory. However, if @p length is `0`, @p input may be - * `NULL`. In C++, this also must be *TriviallyCopyable*. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - */ -XXH_PUBLIC_API XXH_errorcode XXH3_64bits_update (XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); - -/*! - * @brief Returns the calculated XXH3 64-bit hash value from an @ref XXH3_state_t. - * - * @note - * Calling XXH3_64bits_digest() will not affect @p statePtr, so you can update, - * digest, and update again. - * - * @param statePtr The state struct to calculate the hash from. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return The calculated XXH3 64-bit hash value from that state. - */ -XXH_PUBLIC_API XXH_PUREF XXH64_hash_t XXH3_64bits_digest (XXH_NOESCAPE const XXH3_state_t* statePtr); -#endif /* !XXH_NO_STREAM */ - -/* note : canonical representation of XXH3 is the same as XXH64 - * since they both produce XXH64_hash_t values */ - - -/*-********************************************************************** -* XXH3 128-bit variant -************************************************************************/ - -/*! - * @brief The return value from 128-bit hashes. - * - * Stored in little endian order, although the fields themselves are in native - * endianness. - */ -typedef struct { - XXH64_hash_t low64; /*!< `value & 0xFFFFFFFFFFFFFFFF` */ - XXH64_hash_t high64; /*!< `value >> 64` */ -} XXH128_hash_t; - -/*! - * @brief Unseeded 128-bit variant of XXH3 - * - * The 128-bit variant of XXH3 has more strength, but it has a bit of overhead - * for shorter inputs. - * - * This is equivalent to @ref XXH3_128bits_withSeed() with a seed of 0, however - * it may have slightly better performance due to constant propagation of the - * defaults. - * - * @see - * XXH32(), XXH64(), XXH3_64bits(): equivalent for the other xxHash algorithms - * @see - * XXH3_128bits_withSeed(), XXH3_128bits_withSecret(): other seeding variants - * @see - * XXH3_128bits_reset(), XXH3_128bits_update(), XXH3_128bits_digest(): Streaming version. - */ -XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits(XXH_NOESCAPE const void* data, size_t len); -/*! @brief Seeded 128-bit variant of XXH3. @see XXH3_64bits_withSeed(). */ -XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_withSeed(XXH_NOESCAPE const void* data, size_t len, XXH64_hash_t seed); -/*! @brief Custom secret 128-bit variant of XXH3. @see XXH3_64bits_withSecret(). */ -XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_withSecret(XXH_NOESCAPE const void* data, size_t len, XXH_NOESCAPE const void* secret, size_t secretSize); - -/******* Streaming *******/ -#ifndef XXH_NO_STREAM -/* - * Streaming requires state maintenance. - * This operation costs memory and CPU. - * As a consequence, streaming is slower than one-shot hashing. - * For better performance, prefer one-shot functions whenever applicable. - * - * XXH3_128bits uses the same XXH3_state_t as XXH3_64bits(). - * Use already declared XXH3_createState() and XXH3_freeState(). - * - * All reset and streaming functions have same meaning as their 64-bit counterpart. - */ - -/*! - * @brief Resets an @ref XXH3_state_t to begin a new hash. - * - * This function resets `statePtr` and generate a secret with default parameters. Call it before @ref XXH3_128bits_update(). - * Digest will be equivalent to `XXH3_128bits()`. - * - * @param statePtr The state struct to reset. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - * - */ -XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset(XXH_NOESCAPE XXH3_state_t* statePtr); - -/*! - * @brief Resets an @ref XXH3_state_t with 64-bit seed to begin a new hash. - * - * This function resets `statePtr` and generate a secret from `seed`. Call it before @ref XXH3_128bits_update(). - * Digest will be equivalent to `XXH3_128bits_withSeed()`. - * - * @param statePtr The state struct to reset. - * @param seed The 64-bit seed to alter the state. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - * - */ -XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSeed(XXH_NOESCAPE XXH3_state_t* statePtr, XXH64_hash_t seed); -/*! @brief Custom secret 128-bit variant of XXH3. @see XXH_64bits_reset_withSecret(). */ -XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSecret(XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* secret, size_t secretSize); - -/*! - * @brief Consumes a block of @p input to an @ref XXH3_state_t. - * - * Call this to incrementally consume blocks of data. - * - * @param statePtr The state struct to update. - * @param input The block of data to be hashed, at least @p length bytes in size. - * @param length The length of @p input, in bytes. - * - * @pre - * @p statePtr must not be `NULL`. - * @pre - * The memory between @p input and @p input + @p length must be valid, - * readable, contiguous memory. However, if @p length is `0`, @p input may be - * `NULL`. In C++, this also must be *TriviallyCopyable*. - * - * @return @ref XXH_OK on success, @ref XXH_ERROR on failure. - */ -XXH_PUBLIC_API XXH_errorcode XXH3_128bits_update (XXH_NOESCAPE XXH3_state_t* statePtr, XXH_NOESCAPE const void* input, size_t length); - -/*! - * @brief Returns the calculated XXH3 128-bit hash value from an @ref XXH3_state_t. - * - * @note - * Calling XXH3_128bits_digest() will not affect @p statePtr, so you can update, - * digest, and update again. - * - * @param statePtr The state struct to calculate the hash from. - * - * @pre - * @p statePtr must not be `NULL`. - * - * @return The calculated XXH3 128-bit hash value from that state. - */ -XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH3_128bits_digest (XXH_NOESCAPE const XXH3_state_t* statePtr); -#endif /* !XXH_NO_STREAM */ - -/* Following helper functions make it possible to compare XXH128_hast_t values. - * Since XXH128_hash_t is a structure, this capability is not offered by the language. - * Note: For better performance, these functions can be inlined using XXH_INLINE_ALL */ - -/*! - * XXH128_isEqual(): - * Return: 1 if `h1` and `h2` are equal, 0 if they are not. - */ -XXH_PUBLIC_API XXH_PUREF int XXH128_isEqual(XXH128_hash_t h1, XXH128_hash_t h2); - -/*! - * @brief Compares two @ref XXH128_hash_t - * This comparator is compatible with stdlib's `qsort()`/`bsearch()`. - * - * @return: >0 if *h128_1 > *h128_2 - * =0 if *h128_1 == *h128_2 - * <0 if *h128_1 < *h128_2 - */ -XXH_PUBLIC_API XXH_PUREF int XXH128_cmp(XXH_NOESCAPE const void* h128_1, XXH_NOESCAPE const void* h128_2); - - -/******* Canonical representation *******/ -typedef struct { unsigned char digest[sizeof(XXH128_hash_t)]; } XXH128_canonical_t; - - -/*! - * @brief Converts an @ref XXH128_hash_t to a big endian @ref XXH128_canonical_t. - * - * @param dst The @ref XXH128_canonical_t pointer to be stored to. - * @param hash The @ref XXH128_hash_t to be converted. - * - * @pre - * @p dst must not be `NULL`. - */ -XXH_PUBLIC_API void XXH128_canonicalFromHash(XXH_NOESCAPE XXH128_canonical_t* dst, XXH128_hash_t hash); - -/*! - * @brief Converts an @ref XXH128_canonical_t to a native @ref XXH128_hash_t. - * - * @param src The @ref XXH128_canonical_t to convert. - * - * @pre - * @p src must not be `NULL`. - * - * @return The converted hash. - */ -XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH128_hashFromCanonical(XXH_NOESCAPE const XXH128_canonical_t* src); - - -#endif /* !XXH_NO_XXH3 */ -#endif /* XXH_NO_LONG_LONG */ - -/*! - * @} - */ -#endif /* XXHASH_H_5627135585666179 */ - - - -#if defined(XXH_STATIC_LINKING_ONLY) && !defined(XXHASH_H_STATIC_13879238742) -#define XXHASH_H_STATIC_13879238742 -/* **************************************************************************** - * This section contains declarations which are not guaranteed to remain stable. - * They may change in future versions, becoming incompatible with a different - * version of the library. - * These declarations should only be used with static linking. - * Never use them in association with dynamic linking! - ***************************************************************************** */ - -/* - * These definitions are only present to allow static allocation - * of XXH states, on stack or in a struct, for example. - * Never **ever** access their members directly. - */ - -/*! - * @internal - * @brief Structure for XXH32 streaming API. - * - * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, - * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. Otherwise it is - * an opaque type. This allows fields to safely be changed. - * - * Typedef'd to @ref XXH32_state_t. - * Do not access the members of this struct directly. - * @see XXH64_state_s, XXH3_state_s - */ -struct XXH32_state_s { - XXH32_hash_t total_len_32; /*!< Total length hashed, modulo 2^32 */ - XXH32_hash_t large_len; /*!< Whether the hash is >= 16 (handles @ref total_len_32 overflow) */ - XXH32_hash_t v[4]; /*!< Accumulator lanes */ - XXH32_hash_t mem32[4]; /*!< Internal buffer for partial reads. Treated as unsigned char[16]. */ - XXH32_hash_t memsize; /*!< Amount of data in @ref mem32 */ - XXH32_hash_t reserved; /*!< Reserved field. Do not read nor write to it. */ -}; /* typedef'd to XXH32_state_t */ - - -#ifndef XXH_NO_LONG_LONG /* defined when there is no 64-bit support */ - -/*! - * @internal - * @brief Structure for XXH64 streaming API. - * - * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, - * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. Otherwise it is - * an opaque type. This allows fields to safely be changed. - * - * Typedef'd to @ref XXH64_state_t. - * Do not access the members of this struct directly. - * @see XXH32_state_s, XXH3_state_s - */ -struct XXH64_state_s { - XXH64_hash_t total_len; /*!< Total length hashed. This is always 64-bit. */ - XXH64_hash_t v[4]; /*!< Accumulator lanes */ - XXH64_hash_t mem64[4]; /*!< Internal buffer for partial reads. Treated as unsigned char[32]. */ - XXH32_hash_t memsize; /*!< Amount of data in @ref mem64 */ - XXH32_hash_t reserved32; /*!< Reserved field, needed for padding anyways*/ - XXH64_hash_t reserved64; /*!< Reserved field. Do not read or write to it. */ -}; /* typedef'd to XXH64_state_t */ - -#ifndef XXH_NO_XXH3 - -#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* >= C11 */ -# include -# define XXH_ALIGN(n) alignas(n) -#elif defined(__cplusplus) && (__cplusplus >= 201103L) /* >= C++11 */ -/* In C++ alignas() is a keyword */ -# define XXH_ALIGN(n) alignas(n) -#elif defined(__GNUC__) -# define XXH_ALIGN(n) __attribute__ ((aligned(n))) -#elif defined(_MSC_VER) -# define XXH_ALIGN(n) __declspec(align(n)) -#else -# define XXH_ALIGN(n) /* disabled */ -#endif - -/* Old GCC versions only accept the attribute after the type in structures. */ -#if !(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) /* C11+ */ \ - && ! (defined(__cplusplus) && (__cplusplus >= 201103L)) /* >= C++11 */ \ - && defined(__GNUC__) -# define XXH_ALIGN_MEMBER(align, type) type XXH_ALIGN(align) -#else -# define XXH_ALIGN_MEMBER(align, type) XXH_ALIGN(align) type -#endif - -/*! - * @brief The size of the internal XXH3 buffer. - * - * This is the optimal update size for incremental hashing. - * - * @see XXH3_64b_update(), XXH3_128b_update(). - */ -#define XXH3_INTERNALBUFFER_SIZE 256 - -/*! - * @internal - * @brief Default size of the secret buffer (and @ref XXH3_kSecret). - * - * This is the size used in @ref XXH3_kSecret and the seeded functions. - * - * Not to be confused with @ref XXH3_SECRET_SIZE_MIN. - */ -#define XXH3_SECRET_DEFAULT_SIZE 192 - -/*! - * @internal - * @brief Structure for XXH3 streaming API. - * - * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY, - * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. - * Otherwise it is an opaque type. - * Never use this definition in combination with dynamic library. - * This allows fields to safely be changed in the future. - * - * @note ** This structure has a strict alignment requirement of 64 bytes!! ** - * Do not allocate this with `malloc()` or `new`, - * it will not be sufficiently aligned. - * Use @ref XXH3_createState() and @ref XXH3_freeState(), or stack allocation. - * - * Typedef'd to @ref XXH3_state_t. - * Do never access the members of this struct directly. - * - * @see XXH3_INITSTATE() for stack initialization. - * @see XXH3_createState(), XXH3_freeState(). - * @see XXH32_state_s, XXH64_state_s - */ -struct XXH3_state_s { - XXH_ALIGN_MEMBER(64, XXH64_hash_t acc[8]); - /*!< The 8 accumulators. See @ref XXH32_state_s::v and @ref XXH64_state_s::v */ - XXH_ALIGN_MEMBER(64, unsigned char customSecret[XXH3_SECRET_DEFAULT_SIZE]); - /*!< Used to store a custom secret generated from a seed. */ - XXH_ALIGN_MEMBER(64, unsigned char buffer[XXH3_INTERNALBUFFER_SIZE]); - /*!< The internal buffer. @see XXH32_state_s::mem32 */ - XXH32_hash_t bufferedSize; - /*!< The amount of memory in @ref buffer, @see XXH32_state_s::memsize */ - XXH32_hash_t useSeed; - /*!< Reserved field. Needed for padding on 64-bit. */ - size_t nbStripesSoFar; - /*!< Number or stripes processed. */ - XXH64_hash_t totalLen; - /*!< Total length hashed. 64-bit even on 32-bit targets. */ - size_t nbStripesPerBlock; - /*!< Number of stripes per block. */ - size_t secretLimit; - /*!< Size of @ref customSecret or @ref extSecret */ - XXH64_hash_t seed; - /*!< Seed for _withSeed variants. Must be zero otherwise, @see XXH3_INITSTATE() */ - XXH64_hash_t reserved64; - /*!< Reserved field. */ - const unsigned char* extSecret; - /*!< Reference to an external secret for the _withSecret variants, NULL - * for other variants. */ - /* note: there may be some padding at the end due to alignment on 64 bytes */ -}; /* typedef'd to XXH3_state_t */ - -#undef XXH_ALIGN_MEMBER - -/*! - * @brief Initializes a stack-allocated `XXH3_state_s`. - * - * When the @ref XXH3_state_t structure is merely emplaced on stack, - * it should be initialized with XXH3_INITSTATE() or a memset() - * in case its first reset uses XXH3_NNbits_reset_withSeed(). - * This init can be omitted if the first reset uses default or _withSecret mode. - * This operation isn't necessary when the state is created with XXH3_createState(). - * Note that this doesn't prepare the state for a streaming operation, - * it's still necessary to use XXH3_NNbits_reset*() afterwards. - */ -#define XXH3_INITSTATE(XXH3_state_ptr) \ - do { \ - XXH3_state_t* tmp_xxh3_state_ptr = (XXH3_state_ptr); \ - tmp_xxh3_state_ptr->seed = 0; \ - tmp_xxh3_state_ptr->extSecret = NULL; \ - } while(0) - - -/*! - * simple alias to pre-selected XXH3_128bits variant - */ -XXH_PUBLIC_API XXH_PUREF XXH128_hash_t XXH128(XXH_NOESCAPE const void* data, size_t len, XXH64_hash_t seed); - - -/* === Experimental API === */ -/* Symbols defined below must be considered tied to a specific library version. */ - -/*! - * XXH3_generateSecret(): - * - * Derive a high-entropy secret from any user-defined content, named customSeed. - * The generated secret can be used in combination with `*_withSecret()` functions. - * The `_withSecret()` variants are useful to provide a higher level of protection - * than 64-bit seed, as it becomes much more difficult for an external actor to - * guess how to impact the calculation logic. - * - * The function accepts as input a custom seed of any length and any content, - * and derives from it a high-entropy secret of length @p secretSize into an - * already allocated buffer @p secretBuffer. - * - * The generated secret can then be used with any `*_withSecret()` variant. - * The functions @ref XXH3_128bits_withSecret(), @ref XXH3_64bits_withSecret(), - * @ref XXH3_128bits_reset_withSecret() and @ref XXH3_64bits_reset_withSecret() - * are part of this list. They all accept a `secret` parameter - * which must be large enough for implementation reasons (>= @ref XXH3_SECRET_SIZE_MIN) - * _and_ feature very high entropy (consist of random-looking bytes). - * These conditions can be a high bar to meet, so @ref XXH3_generateSecret() can - * be employed to ensure proper quality. - * - * @p customSeed can be anything. It can have any size, even small ones, - * and its content can be anything, even "poor entropy" sources such as a bunch - * of zeroes. The resulting `secret` will nonetheless provide all required qualities. - * - * @pre - * - @p secretSize must be >= @ref XXH3_SECRET_SIZE_MIN - * - When @p customSeedSize > 0, supplying NULL as customSeed is undefined behavior. - * - * Example code: - * @code{.c} - * #include - * #include - * #include - * #define XXH_STATIC_LINKING_ONLY // expose unstable API - * #include "xxhash.h" - * // Hashes argv[2] using the entropy from argv[1]. - * int main(int argc, char* argv[]) - * { - * char secret[XXH3_SECRET_SIZE_MIN]; - * if (argv != 3) { return 1; } - * XXH3_generateSecret(secret, sizeof(secret), argv[1], strlen(argv[1])); - * XXH64_hash_t h = XXH3_64bits_withSecret( - * argv[2], strlen(argv[2]), - * secret, sizeof(secret) - * ); - * printf("%016llx\n", (unsigned long long) h); - * } - * @endcode - */ -XXH_PUBLIC_API XXH_errorcode XXH3_generateSecret(XXH_NOESCAPE void* secretBuffer, size_t secretSize, XXH_NOESCAPE const void* customSeed, size_t customSeedSize); - -/*! - * @brief Generate the same secret as the _withSeed() variants. - * - * The generated secret can be used in combination with - *`*_withSecret()` and `_withSecretandSeed()` variants. - * - * Example C++ `std::string` hash class: - * @code{.cpp} - * #include - * #define XXH_STATIC_LINKING_ONLY // expose unstable API - * #include "xxhash.h" - * // Slow, seeds each time - * class HashSlow { - * XXH64_hash_t seed; - * public: - * HashSlow(XXH64_hash_t s) : seed{s} {} - * size_t operator()(const std::string& x) const { - * return size_t{XXH3_64bits_withSeed(x.c_str(), x.length(), seed)}; - * } - * }; - * // Fast, caches the seeded secret for future uses. - * class HashFast { - * unsigned char secret[XXH3_SECRET_SIZE_MIN]; - * public: - * HashFast(XXH64_hash_t s) { - * XXH3_generateSecret_fromSeed(secret, seed); - * } - * size_t operator()(const std::string& x) const { - * return size_t{ - * XXH3_64bits_withSecret(x.c_str(), x.length(), secret, sizeof(secret)) - * }; - * } - * }; - * @endcode - * @param secretBuffer A writable buffer of @ref XXH3_SECRET_SIZE_MIN bytes - * @param seed The seed to seed the state. - */ -XXH_PUBLIC_API void XXH3_generateSecret_fromSeed(XXH_NOESCAPE void* secretBuffer, XXH64_hash_t seed); - -/*! - * These variants generate hash values using either - * @p seed for "short" keys (< XXH3_MIDSIZE_MAX = 240 bytes) - * or @p secret for "large" keys (>= XXH3_MIDSIZE_MAX). - * - * This generally benefits speed, compared to `_withSeed()` or `_withSecret()`. - * `_withSeed()` has to generate the secret on the fly for "large" keys. - * It's fast, but can be perceptible for "not so large" keys (< 1 KB). - * `_withSecret()` has to generate the masks on the fly for "small" keys, - * which requires more instructions than _withSeed() variants. - * Therefore, _withSecretandSeed variant combines the best of both worlds. - * - * When @p secret has been generated by XXH3_generateSecret_fromSeed(), - * this variant produces *exactly* the same results as `_withSeed()` variant, - * hence offering only a pure speed benefit on "large" input, - * by skipping the need to regenerate the secret for every large input. - * - * Another usage scenario is to hash the secret to a 64-bit hash value, - * for example with XXH3_64bits(), which then becomes the seed, - * and then employ both the seed and the secret in _withSecretandSeed(). - * On top of speed, an added benefit is that each bit in the secret - * has a 50% chance to swap each bit in the output, via its impact to the seed. - * - * This is not guaranteed when using the secret directly in "small data" scenarios, - * because only portions of the secret are employed for small data. - */ -XXH_PUBLIC_API XXH_PUREF XXH64_hash_t -XXH3_64bits_withSecretandSeed(XXH_NOESCAPE const void* data, size_t len, - XXH_NOESCAPE const void* secret, size_t secretSize, - XXH64_hash_t seed); -/*! @copydoc XXH3_64bits_withSecretandSeed() */ -XXH_PUBLIC_API XXH_PUREF XXH128_hash_t -XXH3_128bits_withSecretandSeed(XXH_NOESCAPE const void* input, size_t length, - XXH_NOESCAPE const void* secret, size_t secretSize, - XXH64_hash_t seed64); -#ifndef XXH_NO_STREAM -/*! @copydoc XXH3_64bits_withSecretandSeed() */ -XXH_PUBLIC_API XXH_errorcode -XXH3_64bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, - XXH_NOESCAPE const void* secret, size_t secretSize, - XXH64_hash_t seed64); -/*! @copydoc XXH3_64bits_withSecretandSeed() */ -XXH_PUBLIC_API XXH_errorcode -XXH3_128bits_reset_withSecretandSeed(XXH_NOESCAPE XXH3_state_t* statePtr, - XXH_NOESCAPE const void* secret, size_t secretSize, - XXH64_hash_t seed64); -#endif /* !XXH_NO_STREAM */ - -#endif /* !XXH_NO_XXH3 */ -#endif /* XXH_NO_LONG_LONG */ -#if defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API) -# define XXH_IMPLEMENTATION -#endif - -#endif /* defined(XXH_STATIC_LINKING_ONLY) && !defined(XXHASH_H_STATIC_13879238742) */ - - -/* ======================================================================== */ -/* ======================================================================== */ -/* ======================================================================== */ - - -/*-********************************************************************** - * xxHash implementation - *-********************************************************************** - * xxHash's implementation used to be hosted inside xxhash.c. - * - * However, inlining requires implementation to be visible to the compiler, - * hence be included alongside the header. - * Previously, implementation was hosted inside xxhash.c, - * which was then #included when inlining was activated. - * This construction created issues with a few build and install systems, - * as it required xxhash.c to be stored in /include directory. - * - * xxHash implementation is now directly integrated within xxhash.h. - * As a consequence, xxhash.c is no longer needed in /include. - * - * xxhash.c is still available and is still useful. - * In a "normal" setup, when xxhash is not inlined, - * xxhash.h only exposes the prototypes and public symbols, - * while xxhash.c can be built into an object file xxhash.o - * which can then be linked into the final binary. - ************************************************************************/ - -#if ( defined(XXH_INLINE_ALL) || defined(XXH_PRIVATE_API) \ - || defined(XXH_IMPLEMENTATION) ) && !defined(XXH_IMPLEM_13a8737387) -# define XXH_IMPLEM_13a8737387 - -/* ************************************* -* Tuning parameters -***************************************/ - -/*! - * @defgroup tuning Tuning parameters - * @{ - * - * Various macros to control xxHash's behavior. - */ -#ifdef XXH_DOXYGEN -/*! - * @brief Define this to disable 64-bit code. - * - * Useful if only using the @ref XXH32_family and you have a strict C90 compiler. - */ -# define XXH_NO_LONG_LONG -# undef XXH_NO_LONG_LONG /* don't actually */ -/*! - * @brief Controls how unaligned memory is accessed. - * - * By default, access to unaligned memory is controlled by `memcpy()`, which is - * safe and portable. - * - * Unfortunately, on some target/compiler combinations, the generated assembly - * is sub-optimal. - * - * The below switch allow selection of a different access method - * in the search for improved performance. - * - * @par Possible options: - * - * - `XXH_FORCE_MEMORY_ACCESS=0` (default): `memcpy` - * @par - * Use `memcpy()`. Safe and portable. Note that most modern compilers will - * eliminate the function call and treat it as an unaligned access. - * - * - `XXH_FORCE_MEMORY_ACCESS=1`: `__attribute__((aligned(1)))` - * @par - * Depends on compiler extensions and is therefore not portable. - * This method is safe _if_ your compiler supports it, - * and *generally* as fast or faster than `memcpy`. - * - * - `XXH_FORCE_MEMORY_ACCESS=2`: Direct cast - * @par - * Casts directly and dereferences. This method doesn't depend on the - * compiler, but it violates the C standard as it directly dereferences an - * unaligned pointer. It can generate buggy code on targets which do not - * support unaligned memory accesses, but in some circumstances, it's the - * only known way to get the most performance. - * - * - `XXH_FORCE_MEMORY_ACCESS=3`: Byteshift - * @par - * Also portable. This can generate the best code on old compilers which don't - * inline small `memcpy()` calls, and it might also be faster on big-endian - * systems which lack a native byteswap instruction. However, some compilers - * will emit literal byteshifts even if the target supports unaligned access. - * - * - * @warning - * Methods 1 and 2 rely on implementation-defined behavior. Use these with - * care, as what works on one compiler/platform/optimization level may cause - * another to read garbage data or even crash. - * - * See https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html for details. - * - * Prefer these methods in priority order (0 > 3 > 1 > 2) - */ -# define XXH_FORCE_MEMORY_ACCESS 0 - -/*! - * @def XXH_SIZE_OPT - * @brief Controls how much xxHash optimizes for size. - * - * xxHash, when compiled, tends to result in a rather large binary size. This - * is mostly due to heavy usage to forced inlining and constant folding of the - * @ref XXH3_family to increase performance. - * - * However, some developers prefer size over speed. This option can - * significantly reduce the size of the generated code. When using the `-Os` - * or `-Oz` options on GCC or Clang, this is defined to 1 by default, - * otherwise it is defined to 0. - * - * Most of these size optimizations can be controlled manually. - * - * This is a number from 0-2. - * - `XXH_SIZE_OPT` == 0: Default. xxHash makes no size optimizations. Speed - * comes first. - * - `XXH_SIZE_OPT` == 1: Default for `-Os` and `-Oz`. xxHash is more - * conservative and disables hacks that increase code size. It implies the - * options @ref XXH_NO_INLINE_HINTS == 1, @ref XXH_FORCE_ALIGN_CHECK == 0, - * and @ref XXH3_NEON_LANES == 8 if they are not already defined. - * - `XXH_SIZE_OPT` == 2: xxHash tries to make itself as small as possible. - * Performance may cry. For example, the single shot functions just use the - * streaming API. - */ -# define XXH_SIZE_OPT 0 - -/*! - * @def XXH_FORCE_ALIGN_CHECK - * @brief If defined to non-zero, adds a special path for aligned inputs (XXH32() - * and XXH64() only). - * - * This is an important performance trick for architectures without decent - * unaligned memory access performance. - * - * It checks for input alignment, and when conditions are met, uses a "fast - * path" employing direct 32-bit/64-bit reads, resulting in _dramatically - * faster_ read speed. - * - * The check costs one initial branch per hash, which is generally negligible, - * but not zero. - * - * Moreover, it's not useful to generate an additional code path if memory - * access uses the same instruction for both aligned and unaligned - * addresses (e.g. x86 and aarch64). - * - * In these cases, the alignment check can be removed by setting this macro to 0. - * Then the code will always use unaligned memory access. - * Align check is automatically disabled on x86, x64, ARM64, and some ARM chips - * which are platforms known to offer good unaligned memory accesses performance. - * - * It is also disabled by default when @ref XXH_SIZE_OPT >= 1. - * - * This option does not affect XXH3 (only XXH32 and XXH64). - */ -# define XXH_FORCE_ALIGN_CHECK 0 - -/*! - * @def XXH_NO_INLINE_HINTS - * @brief When non-zero, sets all functions to `static`. - * - * By default, xxHash tries to force the compiler to inline almost all internal - * functions. - * - * This can usually improve performance due to reduced jumping and improved - * constant folding, but significantly increases the size of the binary which - * might not be favorable. - * - * Additionally, sometimes the forced inlining can be detrimental to performance, - * depending on the architecture. - * - * XXH_NO_INLINE_HINTS marks all internal functions as static, giving the - * compiler full control on whether to inline or not. - * - * When not optimizing (-O0), using `-fno-inline` with GCC or Clang, or if - * @ref XXH_SIZE_OPT >= 1, this will automatically be defined. - */ -# define XXH_NO_INLINE_HINTS 0 - -/*! - * @def XXH3_INLINE_SECRET - * @brief Determines whether to inline the XXH3 withSecret code. - * - * When the secret size is known, the compiler can improve the performance - * of XXH3_64bits_withSecret() and XXH3_128bits_withSecret(). - * - * However, if the secret size is not known, it doesn't have any benefit. This - * happens when xxHash is compiled into a global symbol. Therefore, if - * @ref XXH_INLINE_ALL is *not* defined, this will be defined to 0. - * - * Additionally, this defaults to 0 on GCC 12+, which has an issue with function pointers - * that are *sometimes* force inline on -Og, and it is impossible to automatically - * detect this optimization level. - */ -# define XXH3_INLINE_SECRET 0 - -/*! - * @def XXH32_ENDJMP - * @brief Whether to use a jump for `XXH32_finalize`. - * - * For performance, `XXH32_finalize` uses multiple branches in the finalizer. - * This is generally preferable for performance, - * but depending on exact architecture, a jmp may be preferable. - * - * This setting is only possibly making a difference for very small inputs. - */ -# define XXH32_ENDJMP 0 - -/*! - * @internal - * @brief Redefines old internal names. - * - * For compatibility with code that uses xxHash's internals before the names - * were changed to improve namespacing. There is no other reason to use this. - */ -# define XXH_OLD_NAMES -# undef XXH_OLD_NAMES /* don't actually use, it is ugly. */ - -/*! - * @def XXH_NO_STREAM - * @brief Disables the streaming API. - * - * When xxHash is not inlined and the streaming functions are not used, disabling - * the streaming functions can improve code size significantly, especially with - * the @ref XXH3_family which tends to make constant folded copies of itself. - */ -# define XXH_NO_STREAM -# undef XXH_NO_STREAM /* don't actually */ -#endif /* XXH_DOXYGEN */ -/*! - * @} - */ - -#ifndef XXH_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ - /* prefer __packed__ structures (method 1) for GCC - * < ARMv7 with unaligned access (e.g. Raspbian armhf) still uses byte shifting, so we use memcpy - * which for some reason does unaligned loads. */ -# if defined(__GNUC__) && !(defined(__ARM_ARCH) && __ARM_ARCH < 7 && defined(__ARM_FEATURE_UNALIGNED)) -# define XXH_FORCE_MEMORY_ACCESS 1 -# endif -#endif - -#ifndef XXH_SIZE_OPT - /* default to 1 for -Os or -Oz */ -# if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE_SIZE__) -# define XXH_SIZE_OPT 1 -# else -# define XXH_SIZE_OPT 0 -# endif -#endif - -#ifndef XXH_FORCE_ALIGN_CHECK /* can be defined externally */ - /* don't check on sizeopt, x86, aarch64, or arm when unaligned access is available */ -# if XXH_SIZE_OPT >= 1 || \ - defined(__i386) || defined(__x86_64__) || defined(__aarch64__) || defined(__ARM_FEATURE_UNALIGNED) \ - || defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM64) || defined(_M_ARM) /* visual */ -# define XXH_FORCE_ALIGN_CHECK 0 -# else -# define XXH_FORCE_ALIGN_CHECK 1 -# endif -#endif - -#ifndef XXH_NO_INLINE_HINTS -# if XXH_SIZE_OPT >= 1 || defined(__NO_INLINE__) /* -O0, -fno-inline */ -# define XXH_NO_INLINE_HINTS 1 -# else -# define XXH_NO_INLINE_HINTS 0 -# endif -#endif - -#ifndef XXH3_INLINE_SECRET -# if (defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 12) \ - || !defined(XXH_INLINE_ALL) -# define XXH3_INLINE_SECRET 0 -# else -# define XXH3_INLINE_SECRET 1 -# endif -#endif - -#ifndef XXH32_ENDJMP -/* generally preferable for performance */ -# define XXH32_ENDJMP 0 -#endif - -/*! - * @defgroup impl Implementation - * @{ - */ - - -/* ************************************* -* Includes & Memory related functions -***************************************/ -#if defined(XXH_NO_STREAM) -/* nothing */ -#elif defined(XXH_NO_STDLIB) - -/* When requesting to disable any mention of stdlib, - * the library loses the ability to invoked malloc / free. - * In practice, it means that functions like `XXH*_createState()` - * will always fail, and return NULL. - * This flag is useful in situations where - * xxhash.h is integrated into some kernel, embedded or limited environment - * without access to dynamic allocation. - */ - -static XXH_CONSTF void* XXH_malloc(size_t s) { (void)s; return NULL; } -static void XXH_free(void* p) { (void)p; } - -#else - -/* - * Modify the local functions below should you wish to use - * different memory routines for malloc() and free() - */ -#include - -/*! - * @internal - * @brief Modify this function to use a different routine than malloc(). - */ -static XXH_MALLOCF void* XXH_malloc(size_t s) { return malloc(s); } - -/*! - * @internal - * @brief Modify this function to use a different routine than free(). - */ -static void XXH_free(void* p) { free(p); } - -#endif /* XXH_NO_STDLIB */ - -#include - -/*! - * @internal - * @brief Modify this function to use a different routine than memcpy(). - */ -static void* XXH_memcpy(void* dest, const void* src, size_t size) -{ - return memcpy(dest,src,size); -} - -#include /* ULLONG_MAX */ - - -/* ************************************* -* Compiler Specific Options -***************************************/ -#ifdef _MSC_VER /* Visual Studio warning fix */ -# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ -#endif - -#if XXH_NO_INLINE_HINTS /* disable inlining hints */ -# if defined(__GNUC__) || defined(__clang__) -# define XXH_FORCE_INLINE static __attribute__((unused)) -# else -# define XXH_FORCE_INLINE static -# endif -# define XXH_NO_INLINE static -/* enable inlining hints */ -#elif defined(__GNUC__) || defined(__clang__) -# define XXH_FORCE_INLINE static __inline__ __attribute__((always_inline, unused)) -# define XXH_NO_INLINE static __attribute__((noinline)) -#elif defined(_MSC_VER) /* Visual Studio */ -# define XXH_FORCE_INLINE static __forceinline -# define XXH_NO_INLINE static __declspec(noinline) -#elif defined (__cplusplus) \ - || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) /* C99 */ -# define XXH_FORCE_INLINE static inline -# define XXH_NO_INLINE static -#else -# define XXH_FORCE_INLINE static -# define XXH_NO_INLINE static -#endif - -#if XXH3_INLINE_SECRET -# define XXH3_WITH_SECRET_INLINE XXH_FORCE_INLINE -#else -# define XXH3_WITH_SECRET_INLINE XXH_NO_INLINE -#endif - - -/* ************************************* -* Debug -***************************************/ -/*! - * @ingroup tuning - * @def XXH_DEBUGLEVEL - * @brief Sets the debugging level. - * - * XXH_DEBUGLEVEL is expected to be defined externally, typically via the - * compiler's command line options. The value must be a number. - */ -#ifndef XXH_DEBUGLEVEL -# ifdef DEBUGLEVEL /* backwards compat */ -# define XXH_DEBUGLEVEL DEBUGLEVEL -# else -# define XXH_DEBUGLEVEL 0 -# endif -#endif - -#if (XXH_DEBUGLEVEL>=1) -# include /* note: can still be disabled with NDEBUG */ -# define XXH_ASSERT(c) assert(c) -#else -# if defined(__INTEL_COMPILER) -# define XXH_ASSERT(c) XXH_ASSUME((unsigned char) (c)) -# else -# define XXH_ASSERT(c) XXH_ASSUME(c) -# endif -#endif - -/* note: use after variable declarations */ -#ifndef XXH_STATIC_ASSERT -# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */ -# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { _Static_assert((c),m); } while(0) -# elif defined(__cplusplus) && (__cplusplus >= 201103L) /* C++11 */ -# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0) -# else -# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { struct xxh_sa { char x[(c) ? 1 : -1]; }; } while(0) -# endif -# define XXH_STATIC_ASSERT(c) XXH_STATIC_ASSERT_WITH_MESSAGE((c),#c) -#endif - -/*! - * @internal - * @def XXH_COMPILER_GUARD(var) - * @brief Used to prevent unwanted optimizations for @p var. - * - * It uses an empty GCC inline assembly statement with a register constraint - * which forces @p var into a general purpose register (eg eax, ebx, ecx - * on x86) and marks it as modified. - * - * This is used in a few places to avoid unwanted autovectorization (e.g. - * XXH32_round()). All vectorization we want is explicit via intrinsics, - * and _usually_ isn't wanted elsewhere. - * - * We also use it to prevent unwanted constant folding for AArch64 in - * XXH3_initCustomSecret_scalar(). - */ -#if defined(__GNUC__) || defined(__clang__) -# define XXH_COMPILER_GUARD(var) __asm__("" : "+r" (var)) -#else -# define XXH_COMPILER_GUARD(var) ((void)0) -#endif - -/* Specifically for NEON vectors which use the "w" constraint, on - * Clang. */ -#if defined(__clang__) && defined(__ARM_ARCH) && !defined(__wasm__) -# define XXH_COMPILER_GUARD_CLANG_NEON(var) __asm__("" : "+w" (var)) -#else -# define XXH_COMPILER_GUARD_CLANG_NEON(var) ((void)0) -#endif - -/* ************************************* -* Basic Types -***************************************/ -#if !defined (__VMS) \ - && (defined (__cplusplus) \ - || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) -# include - typedef uint8_t xxh_u8; -#else - typedef unsigned char xxh_u8; -#endif -typedef XXH32_hash_t xxh_u32; - -#ifdef XXH_OLD_NAMES -# warning "XXH_OLD_NAMES is planned to be removed starting v0.9. If the program depends on it, consider moving away from it by employing newer type names directly" -# define BYTE xxh_u8 -# define U8 xxh_u8 -# define U32 xxh_u32 -#endif - -/* *** Memory access *** */ - -/*! - * @internal - * @fn xxh_u32 XXH_read32(const void* ptr) - * @brief Reads an unaligned 32-bit integer from @p ptr in native endianness. - * - * Affected by @ref XXH_FORCE_MEMORY_ACCESS. - * - * @param ptr The pointer to read from. - * @return The 32-bit native endian integer from the bytes at @p ptr. - */ - -/*! - * @internal - * @fn xxh_u32 XXH_readLE32(const void* ptr) - * @brief Reads an unaligned 32-bit little endian integer from @p ptr. - * - * Affected by @ref XXH_FORCE_MEMORY_ACCESS. - * - * @param ptr The pointer to read from. - * @return The 32-bit little endian integer from the bytes at @p ptr. - */ - -/*! - * @internal - * @fn xxh_u32 XXH_readBE32(const void* ptr) - * @brief Reads an unaligned 32-bit big endian integer from @p ptr. - * - * Affected by @ref XXH_FORCE_MEMORY_ACCESS. - * - * @param ptr The pointer to read from. - * @return The 32-bit big endian integer from the bytes at @p ptr. - */ - -/*! - * @internal - * @fn xxh_u32 XXH_readLE32_align(const void* ptr, XXH_alignment align) - * @brief Like @ref XXH_readLE32(), but has an option for aligned reads. - * - * Affected by @ref XXH_FORCE_MEMORY_ACCESS. - * Note that when @ref XXH_FORCE_ALIGN_CHECK == 0, the @p align parameter is - * always @ref XXH_alignment::XXH_unaligned. - * - * @param ptr The pointer to read from. - * @param align Whether @p ptr is aligned. - * @pre - * If @p align == @ref XXH_alignment::XXH_aligned, @p ptr must be 4 byte - * aligned. - * @return The 32-bit little endian integer from the bytes at @p ptr. - */ - -#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) -/* - * Manual byteshift. Best for old compilers which don't inline memcpy. - * We actually directly use XXH_readLE32 and XXH_readBE32. - */ -#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==2)) - -/* - * Force direct memory access. Only works on CPU which support unaligned memory - * access in hardware. - */ -static xxh_u32 XXH_read32(const void* memPtr) { return *(const xxh_u32*) memPtr; } - -#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==1)) - -/* - * __attribute__((aligned(1))) is supported by gcc and clang. Originally the - * documentation claimed that it only increased the alignment, but actually it - * can decrease it on gcc, clang, and icc: - * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69502, - * https://gcc.godbolt.org/z/xYez1j67Y. - */ -#ifdef XXH_OLD_NAMES -typedef union { xxh_u32 u32; } __attribute__((packed)) unalign; -#endif -static xxh_u32 XXH_read32(const void* ptr) -{ - typedef __attribute__((aligned(1))) xxh_u32 xxh_unalign32; - return *((const xxh_unalign32*)ptr); -} - -#else - -/* - * Portable and safe solution. Generally efficient. - * see: https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html - */ -static xxh_u32 XXH_read32(const void* memPtr) -{ - xxh_u32 val; - XXH_memcpy(&val, memPtr, sizeof(val)); - return val; -} - -#endif /* XXH_FORCE_DIRECT_MEMORY_ACCESS */ - - -/* *** Endianness *** */ - -/*! - * @ingroup tuning - * @def XXH_CPU_LITTLE_ENDIAN - * @brief Whether the target is little endian. - * - * Defined to 1 if the target is little endian, or 0 if it is big endian. - * It can be defined externally, for example on the compiler command line. - * - * If it is not defined, - * a runtime check (which is usually constant folded) is used instead. - * - * @note - * This is not necessarily defined to an integer constant. - * - * @see XXH_isLittleEndian() for the runtime check. - */ -#ifndef XXH_CPU_LITTLE_ENDIAN -/* - * Try to detect endianness automatically, to avoid the nonstandard behavior - * in `XXH_isLittleEndian()` - */ -# if defined(_WIN32) /* Windows is always little endian */ \ - || defined(__LITTLE_ENDIAN__) \ - || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) -# define XXH_CPU_LITTLE_ENDIAN 1 -# elif defined(__BIG_ENDIAN__) \ - || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) -# define XXH_CPU_LITTLE_ENDIAN 0 -# else -/*! - * @internal - * @brief Runtime check for @ref XXH_CPU_LITTLE_ENDIAN. - * - * Most compilers will constant fold this. - */ -static int XXH_isLittleEndian(void) -{ - /* - * Portable and well-defined behavior. - * Don't use static: it is detrimental to performance. - */ - const union { xxh_u32 u; xxh_u8 c[4]; } one = { 1 }; - return one.c[0]; -} -# define XXH_CPU_LITTLE_ENDIAN XXH_isLittleEndian() -# endif -#endif - - - - -/* **************************************** -* Compiler-specific Functions and Macros -******************************************/ -#define XXH_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) - -#ifdef __has_builtin -# define XXH_HAS_BUILTIN(x) __has_builtin(x) -#else -# define XXH_HAS_BUILTIN(x) 0 -#endif - - - -/* - * C23 and future versions have standard "unreachable()". - * Once it has been implemented reliably we can add it as an - * additional case: - * - * ``` - * #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= XXH_C23_VN) - * # include - * # ifdef unreachable - * # define XXH_UNREACHABLE() unreachable() - * # endif - * #endif - * ``` - * - * Note C++23 also has std::unreachable() which can be detected - * as follows: - * ``` - * #if defined(__cpp_lib_unreachable) && (__cpp_lib_unreachable >= 202202L) - * # include - * # define XXH_UNREACHABLE() std::unreachable() - * #endif - * ``` - * NB: `__cpp_lib_unreachable` is defined in the `` header. - * We don't use that as including `` in `extern "C"` blocks - * doesn't work on GCC12 - */ - -#if XXH_HAS_BUILTIN(__builtin_unreachable) -# define XXH_UNREACHABLE() __builtin_unreachable() - -#elif defined(_MSC_VER) -# define XXH_UNREACHABLE() __assume(0) - -#else -# define XXH_UNREACHABLE() -#endif - -#if XXH_HAS_BUILTIN(__builtin_assume) -# define XXH_ASSUME(c) __builtin_assume(c) -#else -# define XXH_ASSUME(c) if (!(c)) { XXH_UNREACHABLE(); } -#endif - -/*! - * @internal - * @def XXH_rotl32(x,r) - * @brief 32-bit rotate left. - * - * @param x The 32-bit integer to be rotated. - * @param r The number of bits to rotate. - * @pre - * @p r > 0 && @p r < 32 - * @note - * @p x and @p r may be evaluated multiple times. - * @return The rotated result. - */ -#if !defined(NO_CLANG_BUILTIN) && XXH_HAS_BUILTIN(__builtin_rotateleft32) \ - && XXH_HAS_BUILTIN(__builtin_rotateleft64) -# define XXH_rotl32 __builtin_rotateleft32 -# define XXH_rotl64 __builtin_rotateleft64 -/* Note: although _rotl exists for minGW (GCC under windows), performance seems poor */ -#elif defined(_MSC_VER) -# define XXH_rotl32(x,r) _rotl(x,r) -# define XXH_rotl64(x,r) _rotl64(x,r) -#else -# define XXH_rotl32(x,r) (((x) << (r)) | ((x) >> (32 - (r)))) -# define XXH_rotl64(x,r) (((x) << (r)) | ((x) >> (64 - (r)))) -#endif - -/*! - * @internal - * @fn xxh_u32 XXH_swap32(xxh_u32 x) - * @brief A 32-bit byteswap. - * - * @param x The 32-bit integer to byteswap. - * @return @p x, byteswapped. - */ -#if defined(_MSC_VER) /* Visual Studio */ -# define XXH_swap32 _byteswap_ulong -#elif XXH_GCC_VERSION >= 403 -# define XXH_swap32 __builtin_bswap32 -#else -static xxh_u32 XXH_swap32 (xxh_u32 x) -{ - return ((x << 24) & 0xff000000 ) | - ((x << 8) & 0x00ff0000 ) | - ((x >> 8) & 0x0000ff00 ) | - ((x >> 24) & 0x000000ff ); -} -#endif - - -/* *************************** -* Memory reads -*****************************/ - -/*! - * @internal - * @brief Enum to indicate whether a pointer is aligned. - */ -typedef enum { - XXH_aligned, /*!< Aligned */ - XXH_unaligned /*!< Possibly unaligned */ -} XXH_alignment; - -/* - * XXH_FORCE_MEMORY_ACCESS==3 is an endian-independent byteshift load. - * - * This is ideal for older compilers which don't inline memcpy. - */ -#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) - -XXH_FORCE_INLINE xxh_u32 XXH_readLE32(const void* memPtr) -{ - const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; - return bytePtr[0] - | ((xxh_u32)bytePtr[1] << 8) - | ((xxh_u32)bytePtr[2] << 16) - | ((xxh_u32)bytePtr[3] << 24); -} - -XXH_FORCE_INLINE xxh_u32 XXH_readBE32(const void* memPtr) -{ - const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; - return bytePtr[3] - | ((xxh_u32)bytePtr[2] << 8) - | ((xxh_u32)bytePtr[1] << 16) - | ((xxh_u32)bytePtr[0] << 24); -} - -#else -XXH_FORCE_INLINE xxh_u32 XXH_readLE32(const void* ptr) -{ - return XXH_CPU_LITTLE_ENDIAN ? XXH_read32(ptr) : XXH_swap32(XXH_read32(ptr)); -} - -static xxh_u32 XXH_readBE32(const void* ptr) -{ - return XXH_CPU_LITTLE_ENDIAN ? XXH_swap32(XXH_read32(ptr)) : XXH_read32(ptr); -} -#endif - -XXH_FORCE_INLINE xxh_u32 -XXH_readLE32_align(const void* ptr, XXH_alignment align) -{ - if (align==XXH_unaligned) { - return XXH_readLE32(ptr); - } else { - return XXH_CPU_LITTLE_ENDIAN ? *(const xxh_u32*)ptr : XXH_swap32(*(const xxh_u32*)ptr); - } -} - - -/* ************************************* -* Misc -***************************************/ -/*! @ingroup public */ -XXH_PUBLIC_API unsigned XXH_versionNumber (void) { return XXH_VERSION_NUMBER; } - - -/* ******************************************************************* -* 32-bit hash functions -*********************************************************************/ -/*! - * @} - * @defgroup XXH32_impl XXH32 implementation - * @ingroup impl - * - * Details on the XXH32 implementation. - * @{ - */ - /* #define instead of static const, to be used as initializers */ -#define XXH_PRIME32_1 0x9E3779B1U /*!< 0b10011110001101110111100110110001 */ -#define XXH_PRIME32_2 0x85EBCA77U /*!< 0b10000101111010111100101001110111 */ -#define XXH_PRIME32_3 0xC2B2AE3DU /*!< 0b11000010101100101010111000111101 */ -#define XXH_PRIME32_4 0x27D4EB2FU /*!< 0b00100111110101001110101100101111 */ -#define XXH_PRIME32_5 0x165667B1U /*!< 0b00010110010101100110011110110001 */ - -#ifdef XXH_OLD_NAMES -# define PRIME32_1 XXH_PRIME32_1 -# define PRIME32_2 XXH_PRIME32_2 -# define PRIME32_3 XXH_PRIME32_3 -# define PRIME32_4 XXH_PRIME32_4 -# define PRIME32_5 XXH_PRIME32_5 -#endif - -/*! - * @internal - * @brief Normal stripe processing routine. - * - * This shuffles the bits so that any bit from @p input impacts several bits in - * @p acc. - * - * @param acc The accumulator lane. - * @param input The stripe of input to mix. - * @return The mixed accumulator lane. - */ -static xxh_u32 XXH32_round(xxh_u32 acc, xxh_u32 input) -{ - acc += input * XXH_PRIME32_2; - acc = XXH_rotl32(acc, 13); - acc *= XXH_PRIME32_1; -#if (defined(__SSE4_1__) || defined(__aarch64__) || defined(__wasm_simd128__)) && !defined(XXH_ENABLE_AUTOVECTORIZE) - /* - * UGLY HACK: - * A compiler fence is the only thing that prevents GCC and Clang from - * autovectorizing the XXH32 loop (pragmas and attributes don't work for some - * reason) without globally disabling SSE4.1. - * - * The reason we want to avoid vectorization is because despite working on - * 4 integers at a time, there are multiple factors slowing XXH32 down on - * SSE4: - * - There's a ridiculous amount of lag from pmulld (10 cycles of latency on - * newer chips!) making it slightly slower to multiply four integers at - * once compared to four integers independently. Even when pmulld was - * fastest, Sandy/Ivy Bridge, it is still not worth it to go into SSE - * just to multiply unless doing a long operation. - * - * - Four instructions are required to rotate, - * movqda tmp, v // not required with VEX encoding - * pslld tmp, 13 // tmp <<= 13 - * psrld v, 19 // x >>= 19 - * por v, tmp // x |= tmp - * compared to one for scalar: - * roll v, 13 // reliably fast across the board - * shldl v, v, 13 // Sandy Bridge and later prefer this for some reason - * - * - Instruction level parallelism is actually more beneficial here because - * the SIMD actually serializes this operation: While v1 is rotating, v2 - * can load data, while v3 can multiply. SSE forces them to operate - * together. - * - * This is also enabled on AArch64, as Clang is *very aggressive* in vectorizing - * the loop. NEON is only faster on the A53, and with the newer cores, it is less - * than half the speed. - * - * Additionally, this is used on WASM SIMD128 because it JITs to the same - * SIMD instructions and has the same issue. - */ - XXH_COMPILER_GUARD(acc); -#endif - return acc; -} - -/*! - * @internal - * @brief Mixes all bits to finalize the hash. - * - * The final mix ensures that all input bits have a chance to impact any bit in - * the output digest, resulting in an unbiased distribution. - * - * @param hash The hash to avalanche. - * @return The avalanched hash. - */ -static xxh_u32 XXH32_avalanche(xxh_u32 hash) -{ - hash ^= hash >> 15; - hash *= XXH_PRIME32_2; - hash ^= hash >> 13; - hash *= XXH_PRIME32_3; - hash ^= hash >> 16; - return hash; -} - -#define XXH_get32bits(p) XXH_readLE32_align(p, align) - -/*! - * @internal - * @brief Processes the last 0-15 bytes of @p ptr. - * - * There may be up to 15 bytes remaining to consume from the input. - * This final stage will digest them to ensure that all input bytes are present - * in the final mix. - * - * @param hash The hash to finalize. - * @param ptr The pointer to the remaining input. - * @param len The remaining length, modulo 16. - * @param align Whether @p ptr is aligned. - * @return The finalized hash. - * @see XXH64_finalize(). - */ -static XXH_PUREF xxh_u32 -XXH32_finalize(xxh_u32 hash, const xxh_u8* ptr, size_t len, XXH_alignment align) -{ -#define XXH_PROCESS1 do { \ - hash += (*ptr++) * XXH_PRIME32_5; \ - hash = XXH_rotl32(hash, 11) * XXH_PRIME32_1; \ -} while (0) - -#define XXH_PROCESS4 do { \ - hash += XXH_get32bits(ptr) * XXH_PRIME32_3; \ - ptr += 4; \ - hash = XXH_rotl32(hash, 17) * XXH_PRIME32_4; \ -} while (0) - - if (ptr==NULL) XXH_ASSERT(len == 0); - - /* Compact rerolled version; generally faster */ - if (!XXH32_ENDJMP) { - len &= 15; - while (len >= 4) { - XXH_PROCESS4; - len -= 4; - } - while (len > 0) { - XXH_PROCESS1; - --len; - } - return XXH32_avalanche(hash); - } else { - switch(len&15) /* or switch(bEnd - p) */ { - case 12: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 8: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 4: XXH_PROCESS4; - return XXH32_avalanche(hash); - - case 13: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 9: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 5: XXH_PROCESS4; - XXH_PROCESS1; - return XXH32_avalanche(hash); - - case 14: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 10: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 6: XXH_PROCESS4; - XXH_PROCESS1; - XXH_PROCESS1; - return XXH32_avalanche(hash); - - case 15: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 11: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 7: XXH_PROCESS4; - XXH_FALLTHROUGH; /* fallthrough */ - case 3: XXH_PROCESS1; - XXH_FALLTHROUGH; /* fallthrough */ - case 2: XXH_PROCESS1; - XXH_FALLTHROUGH; /* fallthrough */ - case 1: XXH_PROCESS1; - XXH_FALLTHROUGH; /* fallthrough */ - case 0: return XXH32_avalanche(hash); - } - XXH_ASSERT(0); - return hash; /* reaching this point is deemed impossible */ - } -} - -#ifdef XXH_OLD_NAMES -# define PROCESS1 XXH_PROCESS1 -# define PROCESS4 XXH_PROCESS4 -#else -# undef XXH_PROCESS1 -# undef XXH_PROCESS4 -#endif - -/*! - * @internal - * @brief The implementation for @ref XXH32(). - * - * @param input , len , seed Directly passed from @ref XXH32(). - * @param align Whether @p input is aligned. - * @return The calculated hash. - */ -XXH_FORCE_INLINE XXH_PUREF xxh_u32 -XXH32_endian_align(const xxh_u8* input, size_t len, xxh_u32 seed, XXH_alignment align) -{ - xxh_u32 h32; - - if (input==NULL) XXH_ASSERT(len == 0); - - if (len>=16) { - const xxh_u8* const bEnd = input + len; - const xxh_u8* const limit = bEnd - 15; - xxh_u32 v1 = seed + XXH_PRIME32_1 + XXH_PRIME32_2; - xxh_u32 v2 = seed + XXH_PRIME32_2; - xxh_u32 v3 = seed + 0; - xxh_u32 v4 = seed - XXH_PRIME32_1; - - do { - v1 = XXH32_round(v1, XXH_get32bits(input)); input += 4; - v2 = XXH32_round(v2, XXH_get32bits(input)); input += 4; - v3 = XXH32_round(v3, XXH_get32bits(input)); input += 4; - v4 = XXH32_round(v4, XXH_get32bits(input)); input += 4; - } while (input < limit); - - h32 = XXH_rotl32(v1, 1) + XXH_rotl32(v2, 7) - + XXH_rotl32(v3, 12) + XXH_rotl32(v4, 18); - } else { - h32 = seed + XXH_PRIME32_5; - } - - h32 += (xxh_u32)len; - - return XXH32_finalize(h32, input, len&15, align); -} - -/*! @ingroup XXH32_family */ -XXH_PUBLIC_API XXH32_hash_t XXH32 (const void* input, size_t len, XXH32_hash_t seed) -{ -#if !defined(XXH_NO_STREAM) && XXH_SIZE_OPT >= 2 - /* Simple version, good for code maintenance, but unfortunately slow for small inputs */ - XXH32_state_t state; - XXH32_reset(&state, seed); - XXH32_update(&state, (const xxh_u8*)input, len); - return XXH32_digest(&state); -#else - if (XXH_FORCE_ALIGN_CHECK) { - if ((((size_t)input) & 3) == 0) { /* Input is 4-bytes aligned, leverage the speed benefit */ - return XXH32_endian_align((const xxh_u8*)input, len, seed, XXH_aligned); - } } - - return XXH32_endian_align((const xxh_u8*)input, len, seed, XXH_unaligned); -#endif -} - - - -/******* Hash streaming *******/ -#ifndef XXH_NO_STREAM -/*! @ingroup XXH32_family */ -XXH_PUBLIC_API XXH32_state_t* XXH32_createState(void) -{ - return (XXH32_state_t*)XXH_malloc(sizeof(XXH32_state_t)); -} -/*! @ingroup XXH32_family */ -XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr) -{ - XXH_free(statePtr); - return XXH_OK; -} - -/*! @ingroup XXH32_family */ -XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dstState, const XXH32_state_t* srcState) -{ - XXH_memcpy(dstState, srcState, sizeof(*dstState)); -} - -/*! @ingroup XXH32_family */ -XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t seed) -{ - XXH_ASSERT(statePtr != NULL); - memset(statePtr, 0, sizeof(*statePtr)); - statePtr->v[0] = seed + XXH_PRIME32_1 + XXH_PRIME32_2; - statePtr->v[1] = seed + XXH_PRIME32_2; - statePtr->v[2] = seed + 0; - statePtr->v[3] = seed - XXH_PRIME32_1; - return XXH_OK; -} - - -/*! @ingroup XXH32_family */ -XXH_PUBLIC_API XXH_errorcode -XXH32_update(XXH32_state_t* state, const void* input, size_t len) -{ - if (input==NULL) { - XXH_ASSERT(len == 0); - return XXH_OK; - } - - { const xxh_u8* p = (const xxh_u8*)input; - const xxh_u8* const bEnd = p + len; - - state->total_len_32 += (XXH32_hash_t)len; - state->large_len |= (XXH32_hash_t)((len>=16) | (state->total_len_32>=16)); - - if (state->memsize + len < 16) { /* fill in tmp buffer */ - XXH_memcpy((xxh_u8*)(state->mem32) + state->memsize, input, len); - state->memsize += (XXH32_hash_t)len; - return XXH_OK; - } - - if (state->memsize) { /* some data left from previous update */ - XXH_memcpy((xxh_u8*)(state->mem32) + state->memsize, input, 16-state->memsize); - { const xxh_u32* p32 = state->mem32; - state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p32)); p32++; - state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p32)); p32++; - state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p32)); p32++; - state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p32)); - } - p += 16-state->memsize; - state->memsize = 0; - } - - if (p <= bEnd-16) { - const xxh_u8* const limit = bEnd - 16; - - do { - state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p)); p+=4; - state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p)); p+=4; - state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p)); p+=4; - state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p)); p+=4; - } while (p<=limit); - - } - - if (p < bEnd) { - XXH_memcpy(state->mem32, p, (size_t)(bEnd-p)); - state->memsize = (unsigned)(bEnd-p); - } - } - - return XXH_OK; -} - - -/*! @ingroup XXH32_family */ -XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state) -{ - xxh_u32 h32; - - if (state->large_len) { - h32 = XXH_rotl32(state->v[0], 1) - + XXH_rotl32(state->v[1], 7) - + XXH_rotl32(state->v[2], 12) - + XXH_rotl32(state->v[3], 18); - } else { - h32 = state->v[2] /* == seed */ + XXH_PRIME32_5; - } - - h32 += state->total_len_32; - - return XXH32_finalize(h32, (const xxh_u8*)state->mem32, state->memsize, XXH_aligned); -} -#endif /* !XXH_NO_STREAM */ - -/******* Canonical representation *******/ - -/*! - * @ingroup XXH32_family - * The default return values from XXH functions are unsigned 32 and 64 bit - * integers. - * - * The canonical representation uses big endian convention, the same convention - * as human-readable numbers (large digits first). - * - * This way, hash values can be written into a file or buffer, remaining - * comparable across different systems. - * - * The following functions allow transformation of hash values to and from their - * canonical format. - */ -XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash) -{ - XXH_STATIC_ASSERT(sizeof(XXH32_canonical_t) == sizeof(XXH32_hash_t)); - if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap32(hash); - XXH_memcpy(dst, &hash, sizeof(*dst)); -} -/*! @ingroup XXH32_family */ -XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src) -{ - return XXH_readBE32(src); -} - - -#ifndef XXH_NO_LONG_LONG - -/* ******************************************************************* -* 64-bit hash functions -*********************************************************************/ -/*! - * @} - * @ingroup impl - * @{ - */ -/******* Memory access *******/ - -typedef XXH64_hash_t xxh_u64; - -#ifdef XXH_OLD_NAMES -# define U64 xxh_u64 -#endif - -#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) -/* - * Manual byteshift. Best for old compilers which don't inline memcpy. - * We actually directly use XXH_readLE64 and XXH_readBE64. - */ -#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==2)) - -/* Force direct memory access. Only works on CPU which support unaligned memory access in hardware */ -static xxh_u64 XXH_read64(const void* memPtr) -{ - return *(const xxh_u64*) memPtr; -} - -#elif (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==1)) - -/* - * __attribute__((aligned(1))) is supported by gcc and clang. Originally the - * documentation claimed that it only increased the alignment, but actually it - * can decrease it on gcc, clang, and icc: - * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69502, - * https://gcc.godbolt.org/z/xYez1j67Y. - */ -#ifdef XXH_OLD_NAMES -typedef union { xxh_u32 u32; xxh_u64 u64; } __attribute__((packed)) unalign64; -#endif -static xxh_u64 XXH_read64(const void* ptr) -{ - typedef __attribute__((aligned(1))) xxh_u64 xxh_unalign64; - return *((const xxh_unalign64*)ptr); -} - -#else - -/* - * Portable and safe solution. Generally efficient. - * see: https://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html - */ -static xxh_u64 XXH_read64(const void* memPtr) -{ - xxh_u64 val; - XXH_memcpy(&val, memPtr, sizeof(val)); - return val; -} - -#endif /* XXH_FORCE_DIRECT_MEMORY_ACCESS */ - -#if defined(_MSC_VER) /* Visual Studio */ -# define XXH_swap64 _byteswap_uint64 -#elif XXH_GCC_VERSION >= 403 -# define XXH_swap64 __builtin_bswap64 -#else -static xxh_u64 XXH_swap64(xxh_u64 x) -{ - return ((x << 56) & 0xff00000000000000ULL) | - ((x << 40) & 0x00ff000000000000ULL) | - ((x << 24) & 0x0000ff0000000000ULL) | - ((x << 8) & 0x000000ff00000000ULL) | - ((x >> 8) & 0x00000000ff000000ULL) | - ((x >> 24) & 0x0000000000ff0000ULL) | - ((x >> 40) & 0x000000000000ff00ULL) | - ((x >> 56) & 0x00000000000000ffULL); -} -#endif - - -/* XXH_FORCE_MEMORY_ACCESS==3 is an endian-independent byteshift load. */ -#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3)) - -XXH_FORCE_INLINE xxh_u64 XXH_readLE64(const void* memPtr) -{ - const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; - return bytePtr[0] - | ((xxh_u64)bytePtr[1] << 8) - | ((xxh_u64)bytePtr[2] << 16) - | ((xxh_u64)bytePtr[3] << 24) - | ((xxh_u64)bytePtr[4] << 32) - | ((xxh_u64)bytePtr[5] << 40) - | ((xxh_u64)bytePtr[6] << 48) - | ((xxh_u64)bytePtr[7] << 56); -} - -XXH_FORCE_INLINE xxh_u64 XXH_readBE64(const void* memPtr) -{ - const xxh_u8* bytePtr = (const xxh_u8 *)memPtr; - return bytePtr[7] - | ((xxh_u64)bytePtr[6] << 8) - | ((xxh_u64)bytePtr[5] << 16) - | ((xxh_u64)bytePtr[4] << 24) - | ((xxh_u64)bytePtr[3] << 32) - | ((xxh_u64)bytePtr[2] << 40) - | ((xxh_u64)bytePtr[1] << 48) - | ((xxh_u64)bytePtr[0] << 56); -} - -#else -XXH_FORCE_INLINE xxh_u64 XXH_readLE64(const void* ptr) -{ - return XXH_CPU_LITTLE_ENDIAN ? XXH_read64(ptr) : XXH_swap64(XXH_read64(ptr)); -} - -static xxh_u64 XXH_readBE64(const void* ptr) -{ - return XXH_CPU_LITTLE_ENDIAN ? XXH_swap64(XXH_read64(ptr)) : XXH_read64(ptr); -} -#endif - -XXH_FORCE_INLINE xxh_u64 -XXH_readLE64_align(const void* ptr, XXH_alignment align) -{ - if (align==XXH_unaligned) - return XXH_readLE64(ptr); - else - return XXH_CPU_LITTLE_ENDIAN ? *(const xxh_u64*)ptr : XXH_swap64(*(const xxh_u64*)ptr); -} - - -/******* xxh64 *******/ -/*! - * @} - * @defgroup XXH64_impl XXH64 implementation - * @ingroup impl - * - * Details on the XXH64 implementation. - * @{ - */ -/* #define rather that static const, to be used as initializers */ -#define XXH_PRIME64_1 0x9E3779B185EBCA87ULL /*!< 0b1001111000110111011110011011000110000101111010111100101010000111 */ -#define XXH_PRIME64_2 0xC2B2AE3D27D4EB4FULL /*!< 0b1100001010110010101011100011110100100111110101001110101101001111 */ -#define XXH_PRIME64_3 0x165667B19E3779F9ULL /*!< 0b0001011001010110011001111011000110011110001101110111100111111001 */ -#define XXH_PRIME64_4 0x85EBCA77C2B2AE63ULL /*!< 0b1000010111101011110010100111011111000010101100101010111001100011 */ -#define XXH_PRIME64_5 0x27D4EB2F165667C5ULL /*!< 0b0010011111010100111010110010111100010110010101100110011111000101 */ - -#ifdef XXH_OLD_NAMES -# define PRIME64_1 XXH_PRIME64_1 -# define PRIME64_2 XXH_PRIME64_2 -# define PRIME64_3 XXH_PRIME64_3 -# define PRIME64_4 XXH_PRIME64_4 -# define PRIME64_5 XXH_PRIME64_5 -#endif - -/*! @copydoc XXH32_round */ -static xxh_u64 XXH64_round(xxh_u64 acc, xxh_u64 input) -{ - acc += input * XXH_PRIME64_2; - acc = XXH_rotl64(acc, 31); - acc *= XXH_PRIME64_1; - return acc; -} - -static xxh_u64 XXH64_mergeRound(xxh_u64 acc, xxh_u64 val) -{ - val = XXH64_round(0, val); - acc ^= val; - acc = acc * XXH_PRIME64_1 + XXH_PRIME64_4; - return acc; -} - -/*! @copydoc XXH32_avalanche */ -static xxh_u64 XXH64_avalanche(xxh_u64 hash) -{ - hash ^= hash >> 33; - hash *= XXH_PRIME64_2; - hash ^= hash >> 29; - hash *= XXH_PRIME64_3; - hash ^= hash >> 32; - return hash; -} - - -#define XXH_get64bits(p) XXH_readLE64_align(p, align) - -/*! - * @internal - * @brief Processes the last 0-31 bytes of @p ptr. - * - * There may be up to 31 bytes remaining to consume from the input. - * This final stage will digest them to ensure that all input bytes are present - * in the final mix. - * - * @param hash The hash to finalize. - * @param ptr The pointer to the remaining input. - * @param len The remaining length, modulo 32. - * @param align Whether @p ptr is aligned. - * @return The finalized hash - * @see XXH32_finalize(). - */ -static XXH_PUREF xxh_u64 -XXH64_finalize(xxh_u64 hash, const xxh_u8* ptr, size_t len, XXH_alignment align) -{ - if (ptr==NULL) XXH_ASSERT(len == 0); - len &= 31; - while (len >= 8) { - xxh_u64 const k1 = XXH64_round(0, XXH_get64bits(ptr)); - ptr += 8; - hash ^= k1; - hash = XXH_rotl64(hash,27) * XXH_PRIME64_1 + XXH_PRIME64_4; - len -= 8; - } - if (len >= 4) { - hash ^= (xxh_u64)(XXH_get32bits(ptr)) * XXH_PRIME64_1; - ptr += 4; - hash = XXH_rotl64(hash, 23) * XXH_PRIME64_2 + XXH_PRIME64_3; - len -= 4; - } - while (len > 0) { - hash ^= (*ptr++) * XXH_PRIME64_5; - hash = XXH_rotl64(hash, 11) * XXH_PRIME64_1; - --len; - } - return XXH64_avalanche(hash); -} - -#ifdef XXH_OLD_NAMES -# define PROCESS1_64 XXH_PROCESS1_64 -# define PROCESS4_64 XXH_PROCESS4_64 -# define PROCESS8_64 XXH_PROCESS8_64 -#else -# undef XXH_PROCESS1_64 -# undef XXH_PROCESS4_64 -# undef XXH_PROCESS8_64 -#endif - -/*! - * @internal - * @brief The implementation for @ref XXH64(). - * - * @param input , len , seed Directly passed from @ref XXH64(). - * @param align Whether @p input is aligned. - * @return The calculated hash. - */ -XXH_FORCE_INLINE XXH_PUREF xxh_u64 -XXH64_endian_align(const xxh_u8* input, size_t len, xxh_u64 seed, XXH_alignment align) -{ - xxh_u64 h64; - if (input==NULL) XXH_ASSERT(len == 0); - - if (len>=32) { - const xxh_u8* const bEnd = input + len; - const xxh_u8* const limit = bEnd - 31; - xxh_u64 v1 = seed + XXH_PRIME64_1 + XXH_PRIME64_2; - xxh_u64 v2 = seed + XXH_PRIME64_2; - xxh_u64 v3 = seed + 0; - xxh_u64 v4 = seed - XXH_PRIME64_1; - - do { - v1 = XXH64_round(v1, XXH_get64bits(input)); input+=8; - v2 = XXH64_round(v2, XXH_get64bits(input)); input+=8; - v3 = XXH64_round(v3, XXH_get64bits(input)); input+=8; - v4 = XXH64_round(v4, XXH_get64bits(input)); input+=8; - } while (input= 2 - /* Simple version, good for code maintenance, but unfortunately slow for small inputs */ - XXH64_state_t state; - XXH64_reset(&state, seed); - XXH64_update(&state, (const xxh_u8*)input, len); - return XXH64_digest(&state); -#else - if (XXH_FORCE_ALIGN_CHECK) { - if ((((size_t)input) & 7)==0) { /* Input is aligned, let's leverage the speed advantage */ - return XXH64_endian_align((const xxh_u8*)input, len, seed, XXH_aligned); - } } - - return XXH64_endian_align((const xxh_u8*)input, len, seed, XXH_unaligned); - -#endif -} - -/******* Hash Streaming *******/ -#ifndef XXH_NO_STREAM -/*! @ingroup XXH64_family*/ -XXH_PUBLIC_API XXH64_state_t* XXH64_createState(void) -{ - return (XXH64_state_t*)XXH_malloc(sizeof(XXH64_state_t)); -} -/*! @ingroup XXH64_family */ -XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr) -{ - XXH_free(statePtr); - return XXH_OK; -} - -/*! @ingroup XXH64_family */ -XXH_PUBLIC_API void XXH64_copyState(XXH_NOESCAPE XXH64_state_t* dstState, const XXH64_state_t* srcState) -{ - XXH_memcpy(dstState, srcState, sizeof(*dstState)); -} - -/*! @ingroup XXH64_family */ -XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH_NOESCAPE XXH64_state_t* statePtr, XXH64_hash_t seed) -{ - XXH_ASSERT(statePtr != NULL); - memset(statePtr, 0, sizeof(*statePtr)); - statePtr->v[0] = seed + XXH_PRIME64_1 + XXH_PRIME64_2; - statePtr->v[1] = seed + XXH_PRIME64_2; - statePtr->v[2] = seed + 0; - statePtr->v[3] = seed - XXH_PRIME64_1; - return XXH_OK; -} - -/*! @ingroup XXH64_family */ -XXH_PUBLIC_API XXH_errorcode -XXH64_update (XXH_NOESCAPE XXH64_state_t* state, XXH_NOESCAPE const void* input, size_t len) -{ - if (input==NULL) { - XXH_ASSERT(len == 0); - return XXH_OK; - } - - { const xxh_u8* p = (const xxh_u8*)input; - const xxh_u8* const bEnd = p + len; - - state->total_len += len; - - if (state->memsize + len < 32) { /* fill in tmp buffer */ - XXH_memcpy(((xxh_u8*)state->mem64) + state->memsize, input, len); - state->memsize += (xxh_u32)len; - return XXH_OK; - } - - if (state->memsize) { /* tmp buffer is full */ - XXH_memcpy(((xxh_u8*)state->mem64) + state->memsize, input, 32-state->memsize); - state->v[0] = XXH64_round(state->v[0], XXH_readLE64(state->mem64+0)); - state->v[1] = XXH64_round(state->v[1], XXH_readLE64(state->mem64+1)); - state->v[2] = XXH64_round(state->v[2], XXH_readLE64(state->mem64+2)); - state->v[3] = XXH64_round(state->v[3], XXH_readLE64(state->mem64+3)); - p += 32 - state->memsize; - state->memsize = 0; - } - - if (p+32 <= bEnd) { - const xxh_u8* const limit = bEnd - 32; - - do { - state->v[0] = XXH64_round(state->v[0], XXH_readLE64(p)); p+=8; - state->v[1] = XXH64_round(state->v[1], XXH_readLE64(p)); p+=8; - state->v[2] = XXH64_round(state->v[2], XXH_readLE64(p)); p+=8; - state->v[3] = XXH64_round(state->v[3], XXH_readLE64(p)); p+=8; - } while (p<=limit); - - } - - if (p < bEnd) { - XXH_memcpy(state->mem64, p, (size_t)(bEnd-p)); - state->memsize = (unsigned)(bEnd-p); - } - } - - return XXH_OK; -} - - -/*! @ingroup XXH64_family */ -XXH_PUBLIC_API XXH64_hash_t XXH64_digest(XXH_NOESCAPE const XXH64_state_t* state) -{ - xxh_u64 h64; - - if (state->total_len >= 32) { - h64 = XXH_rotl64(state->v[0], 1) + XXH_rotl64(state->v[1], 7) + XXH_rotl64(state->v[2], 12) + XXH_rotl64(state->v[3], 18); - h64 = XXH64_mergeRound(h64, state->v[0]); - h64 = XXH64_mergeRound(h64, state->v[1]); - h64 = XXH64_mergeRound(h64, state->v[2]); - h64 = XXH64_mergeRound(h64, state->v[3]); - } else { - h64 = state->v[2] /*seed*/ + XXH_PRIME64_5; - } - - h64 += (xxh_u64) state->total_len; - - return XXH64_finalize(h64, (const xxh_u8*)state->mem64, (size_t)state->total_len, XXH_aligned); -} -#endif /* !XXH_NO_STREAM */ - -/******* Canonical representation *******/ - -/*! @ingroup XXH64_family */ -XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH_NOESCAPE XXH64_canonical_t* dst, XXH64_hash_t hash) -{ - XXH_STATIC_ASSERT(sizeof(XXH64_canonical_t) == sizeof(XXH64_hash_t)); - if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap64(hash); - XXH_memcpy(dst, &hash, sizeof(*dst)); -} - -/*! @ingroup XXH64_family */ -XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(XXH_NOESCAPE const XXH64_canonical_t* src) -{ - return XXH_readBE64(src); -} - -#ifndef XXH_NO_XXH3 - -/* ********************************************************************* -* XXH3 -* New generation hash designed for speed on small keys and vectorization -************************************************************************ */ -/*! - * @} - * @defgroup XXH3_impl XXH3 implementation - * @ingroup impl - * @{ - */ - -/* === Compiler specifics === */ - -#if ((defined(sun) || defined(__sun)) && __cplusplus) /* Solaris includes __STDC_VERSION__ with C++. Tested with GCC 5.5 */ -# define XXH_RESTRICT /* disable */ -#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* >= C99 */ -# define XXH_RESTRICT restrict -#elif (defined (__GNUC__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))) \ - || (defined (__clang__)) \ - || (defined (_MSC_VER) && (_MSC_VER >= 1400)) \ - || (defined (__INTEL_COMPILER) && (__INTEL_COMPILER >= 1300)) -/* - * There are a LOT more compilers that recognize __restrict but this - * covers the major ones. - */ -# define XXH_RESTRICT __restrict -#else -# define XXH_RESTRICT /* disable */ -#endif - -#if (defined(__GNUC__) && (__GNUC__ >= 3)) \ - || (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 800)) \ - || defined(__clang__) -# define XXH_likely(x) __builtin_expect(x, 1) -# define XXH_unlikely(x) __builtin_expect(x, 0) -#else -# define XXH_likely(x) (x) -# define XXH_unlikely(x) (x) -#endif - -#ifndef XXH_HAS_INCLUDE -# ifdef __has_include -# define XXH_HAS_INCLUDE(x) __has_include(x) -# else -# define XXH_HAS_INCLUDE(x) 0 -# endif -#endif - -#if defined(__GNUC__) || defined(__clang__) -# if defined(__ARM_FEATURE_SVE) -# include -# endif -# if defined(__ARM_NEON__) || defined(__ARM_NEON) \ - || (defined(_M_ARM) && _M_ARM >= 7) \ - || defined(_M_ARM64) || defined(_M_ARM64EC) \ - || (defined(__wasm_simd128__) && XXH_HAS_INCLUDE()) /* WASM SIMD128 via SIMDe */ -# define inline __inline__ /* circumvent a clang bug */ -# include -# undef inline -# elif defined(__AVX2__) -# include -# elif defined(__SSE2__) -# include -# endif -#endif - -#if defined(_MSC_VER) -# include -#endif - -/* - * One goal of XXH3 is to make it fast on both 32-bit and 64-bit, while - * remaining a true 64-bit/128-bit hash function. - * - * This is done by prioritizing a subset of 64-bit operations that can be - * emulated without too many steps on the average 32-bit machine. - * - * For example, these two lines seem similar, and run equally fast on 64-bit: - * - * xxh_u64 x; - * x ^= (x >> 47); // good - * x ^= (x >> 13); // bad - * - * However, to a 32-bit machine, there is a major difference. - * - * x ^= (x >> 47) looks like this: - * - * x.lo ^= (x.hi >> (47 - 32)); - * - * while x ^= (x >> 13) looks like this: - * - * // note: funnel shifts are not usually cheap. - * x.lo ^= (x.lo >> 13) | (x.hi << (32 - 13)); - * x.hi ^= (x.hi >> 13); - * - * The first one is significantly faster than the second, simply because the - * shift is larger than 32. This means: - * - All the bits we need are in the upper 32 bits, so we can ignore the lower - * 32 bits in the shift. - * - The shift result will always fit in the lower 32 bits, and therefore, - * we can ignore the upper 32 bits in the xor. - * - * Thanks to this optimization, XXH3 only requires these features to be efficient: - * - * - Usable unaligned access - * - A 32-bit or 64-bit ALU - * - If 32-bit, a decent ADC instruction - * - A 32 or 64-bit multiply with a 64-bit result - * - For the 128-bit variant, a decent byteswap helps short inputs. - * - * The first two are already required by XXH32, and almost all 32-bit and 64-bit - * platforms which can run XXH32 can run XXH3 efficiently. - * - * Thumb-1, the classic 16-bit only subset of ARM's instruction set, is one - * notable exception. - * - * First of all, Thumb-1 lacks support for the UMULL instruction which - * performs the important long multiply. This means numerous __aeabi_lmul - * calls. - * - * Second of all, the 8 functional registers are just not enough. - * Setup for __aeabi_lmul, byteshift loads, pointers, and all arithmetic need - * Lo registers, and this shuffling results in thousands more MOVs than A32. - * - * A32 and T32 don't have this limitation. They can access all 14 registers, - * do a 32->64 multiply with UMULL, and the flexible operand allowing free - * shifts is helpful, too. - * - * Therefore, we do a quick sanity check. - * - * If compiling Thumb-1 for a target which supports ARM instructions, we will - * emit a warning, as it is not a "sane" platform to compile for. - * - * Usually, if this happens, it is because of an accident and you probably need - * to specify -march, as you likely meant to compile for a newer architecture. - * - * Credit: large sections of the vectorial and asm source code paths - * have been contributed by @easyaspi314 - */ -#if defined(__thumb__) && !defined(__thumb2__) && defined(__ARM_ARCH_ISA_ARM) -# warning "XXH3 is highly inefficient without ARM or Thumb-2." -#endif - -/* ========================================== - * Vectorization detection - * ========================================== */ - -#ifdef XXH_DOXYGEN -/*! - * @ingroup tuning - * @brief Overrides the vectorization implementation chosen for XXH3. - * - * Can be defined to 0 to disable SIMD or any of the values mentioned in - * @ref XXH_VECTOR_TYPE. - * - * If this is not defined, it uses predefined macros to determine the best - * implementation. - */ -# define XXH_VECTOR XXH_SCALAR -/*! - * @ingroup tuning - * @brief Possible values for @ref XXH_VECTOR. - * - * Note that these are actually implemented as macros. - * - * If this is not defined, it is detected automatically. - * internal macro XXH_X86DISPATCH overrides this. - */ -enum XXH_VECTOR_TYPE /* fake enum */ { - XXH_SCALAR = 0, /*!< Portable scalar version */ - XXH_SSE2 = 1, /*!< - * SSE2 for Pentium 4, Opteron, all x86_64. - * - * @note SSE2 is also guaranteed on Windows 10, macOS, and - * Android x86. - */ - XXH_AVX2 = 2, /*!< AVX2 for Haswell and Bulldozer */ - XXH_AVX512 = 3, /*!< AVX512 for Skylake and Icelake */ - XXH_NEON = 4, /*!< - * NEON for most ARMv7-A, all AArch64, and WASM SIMD128 - * via the SIMDeverywhere polyfill provided with the - * Emscripten SDK. - */ - XXH_VSX = 5, /*!< VSX and ZVector for POWER8/z13 (64-bit) */ - XXH_SVE = 6, /*!< SVE for some ARMv8-A and ARMv9-A */ -}; -/*! - * @ingroup tuning - * @brief Selects the minimum alignment for XXH3's accumulators. - * - * When using SIMD, this should match the alignment required for said vector - * type, so, for example, 32 for AVX2. - * - * Default: Auto detected. - */ -# define XXH_ACC_ALIGN 8 -#endif - -/* Actual definition */ -#ifndef XXH_DOXYGEN -# define XXH_SCALAR 0 -# define XXH_SSE2 1 -# define XXH_AVX2 2 -# define XXH_AVX512 3 -# define XXH_NEON 4 -# define XXH_VSX 5 -# define XXH_SVE 6 -#endif - -#ifndef XXH_VECTOR /* can be defined on command line */ -# if defined(__ARM_FEATURE_SVE) -# define XXH_VECTOR XXH_SVE -# elif ( \ - defined(__ARM_NEON__) || defined(__ARM_NEON) /* gcc */ \ - || defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) /* msvc */ \ - || (defined(__wasm_simd128__) && XXH_HAS_INCLUDE()) /* wasm simd128 via SIMDe */ \ - ) && ( \ - defined(_WIN32) || defined(__LITTLE_ENDIAN__) /* little endian only */ \ - || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) \ - ) -# define XXH_VECTOR XXH_NEON -# elif defined(__AVX512F__) -# define XXH_VECTOR XXH_AVX512 -# elif defined(__AVX2__) -# define XXH_VECTOR XXH_AVX2 -# elif defined(__SSE2__) || defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP == 2)) -# define XXH_VECTOR XXH_SSE2 -# elif (defined(__PPC64__) && defined(__POWER8_VECTOR__)) \ - || (defined(__s390x__) && defined(__VEC__)) \ - && defined(__GNUC__) /* TODO: IBM XL */ -# define XXH_VECTOR XXH_VSX -# else -# define XXH_VECTOR XXH_SCALAR -# endif -#endif - -/* __ARM_FEATURE_SVE is only supported by GCC & Clang. */ -#if (XXH_VECTOR == XXH_SVE) && !defined(__ARM_FEATURE_SVE) -# ifdef _MSC_VER -# pragma warning(once : 4606) -# else -# warning "__ARM_FEATURE_SVE isn't supported. Use SCALAR instead." -# endif -# undef XXH_VECTOR -# define XXH_VECTOR XXH_SCALAR -#endif - -/* - * Controls the alignment of the accumulator, - * for compatibility with aligned vector loads, which are usually faster. - */ -#ifndef XXH_ACC_ALIGN -# if defined(XXH_X86DISPATCH) -# define XXH_ACC_ALIGN 64 /* for compatibility with avx512 */ -# elif XXH_VECTOR == XXH_SCALAR /* scalar */ -# define XXH_ACC_ALIGN 8 -# elif XXH_VECTOR == XXH_SSE2 /* sse2 */ -# define XXH_ACC_ALIGN 16 -# elif XXH_VECTOR == XXH_AVX2 /* avx2 */ -# define XXH_ACC_ALIGN 32 -# elif XXH_VECTOR == XXH_NEON /* neon */ -# define XXH_ACC_ALIGN 16 -# elif XXH_VECTOR == XXH_VSX /* vsx */ -# define XXH_ACC_ALIGN 16 -# elif XXH_VECTOR == XXH_AVX512 /* avx512 */ -# define XXH_ACC_ALIGN 64 -# elif XXH_VECTOR == XXH_SVE /* sve */ -# define XXH_ACC_ALIGN 64 -# endif -#endif - -#if defined(XXH_X86DISPATCH) || XXH_VECTOR == XXH_SSE2 \ - || XXH_VECTOR == XXH_AVX2 || XXH_VECTOR == XXH_AVX512 -# define XXH_SEC_ALIGN XXH_ACC_ALIGN -#elif XXH_VECTOR == XXH_SVE -# define XXH_SEC_ALIGN XXH_ACC_ALIGN -#else -# define XXH_SEC_ALIGN 8 -#endif - -#if defined(__GNUC__) || defined(__clang__) -# define XXH_ALIASING __attribute__((may_alias)) -#else -# define XXH_ALIASING /* nothing */ -#endif - -/* - * UGLY HACK: - * GCC usually generates the best code with -O3 for xxHash. - * - * However, when targeting AVX2, it is overzealous in its unrolling resulting - * in code roughly 3/4 the speed of Clang. - * - * There are other issues, such as GCC splitting _mm256_loadu_si256 into - * _mm_loadu_si128 + _mm256_inserti128_si256. This is an optimization which - * only applies to Sandy and Ivy Bridge... which don't even support AVX2. - * - * That is why when compiling the AVX2 version, it is recommended to use either - * -O2 -mavx2 -march=haswell - * or - * -O2 -mavx2 -mno-avx256-split-unaligned-load - * for decent performance, or to use Clang instead. - * - * Fortunately, we can control the first one with a pragma that forces GCC into - * -O2, but the other one we can't control without "failed to inline always - * inline function due to target mismatch" warnings. - */ -#if XXH_VECTOR == XXH_AVX2 /* AVX2 */ \ - && defined(__GNUC__) && !defined(__clang__) /* GCC, not Clang */ \ - && defined(__OPTIMIZE__) && XXH_SIZE_OPT <= 0 /* respect -O0 and -Os */ -# pragma GCC push_options -# pragma GCC optimize("-O2") -#endif - -#if XXH_VECTOR == XXH_NEON - -/* - * UGLY HACK: While AArch64 GCC on Linux does not seem to care, on macOS, GCC -O3 - * optimizes out the entire hashLong loop because of the aliasing violation. - * - * However, GCC is also inefficient at load-store optimization with vld1q/vst1q, - * so the only option is to mark it as aliasing. - */ -typedef uint64x2_t xxh_aliasing_uint64x2_t XXH_ALIASING; - -/*! - * @internal - * @brief `vld1q_u64` but faster and alignment-safe. - * - * On AArch64, unaligned access is always safe, but on ARMv7-a, it is only - * *conditionally* safe (`vld1` has an alignment bit like `movdq[ua]` in x86). - * - * GCC for AArch64 sees `vld1q_u8` as an intrinsic instead of a load, so it - * prohibits load-store optimizations. Therefore, a direct dereference is used. - * - * Otherwise, `vld1q_u8` is used with `vreinterpretq_u8_u64` to do a safe - * unaligned load. - */ -#if defined(__aarch64__) && defined(__GNUC__) && !defined(__clang__) -XXH_FORCE_INLINE uint64x2_t XXH_vld1q_u64(void const* ptr) /* silence -Wcast-align */ -{ - return *(xxh_aliasing_uint64x2_t const *)ptr; -} -#else -XXH_FORCE_INLINE uint64x2_t XXH_vld1q_u64(void const* ptr) -{ - return vreinterpretq_u64_u8(vld1q_u8((uint8_t const*)ptr)); -} -#endif - -/*! - * @internal - * @brief `vmlal_u32` on low and high halves of a vector. - * - * This is a workaround for AArch64 GCC < 11 which implemented arm_neon.h with - * inline assembly and were therefore incapable of merging the `vget_{low, high}_u32` - * with `vmlal_u32`. - */ -#if defined(__aarch64__) && defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 11 -XXH_FORCE_INLINE uint64x2_t -XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) -{ - /* Inline assembly is the only way */ - __asm__("umlal %0.2d, %1.2s, %2.2s" : "+w" (acc) : "w" (lhs), "w" (rhs)); - return acc; -} -XXH_FORCE_INLINE uint64x2_t -XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) -{ - /* This intrinsic works as expected */ - return vmlal_high_u32(acc, lhs, rhs); -} -#else -/* Portable intrinsic versions */ -XXH_FORCE_INLINE uint64x2_t -XXH_vmlal_low_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) -{ - return vmlal_u32(acc, vget_low_u32(lhs), vget_low_u32(rhs)); -} -/*! @copydoc XXH_vmlal_low_u32 - * Assume the compiler converts this to vmlal_high_u32 on aarch64 */ -XXH_FORCE_INLINE uint64x2_t -XXH_vmlal_high_u32(uint64x2_t acc, uint32x4_t lhs, uint32x4_t rhs) -{ - return vmlal_u32(acc, vget_high_u32(lhs), vget_high_u32(rhs)); -} -#endif - -/*! - * @ingroup tuning - * @brief Controls the NEON to scalar ratio for XXH3 - * - * This can be set to 2, 4, 6, or 8. - * - * ARM Cortex CPUs are _very_ sensitive to how their pipelines are used. - * - * For example, the Cortex-A73 can dispatch 3 micro-ops per cycle, but only 2 of those - * can be NEON. If you are only using NEON instructions, you are only using 2/3 of the CPU - * bandwidth. - * - * This is even more noticeable on the more advanced cores like the Cortex-A76 which - * can dispatch 8 micro-ops per cycle, but still only 2 NEON micro-ops at once. - * - * Therefo \ No newline at end of file diff --git a/src/AlphaHeavy/QuickFIX/GReceive.hs b/src/AlphaHeavy/QuickFIX/GReceive.hs index a5a1e25..39c322a 100644 --- a/src/AlphaHeavy/QuickFIX/GReceive.hs +++ b/src/AlphaHeavy/QuickFIX/GReceive.hs @@ -4,6 +4,7 @@ {-# LANGUAGE KindSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} +{-# LANGUAGE UndecidableInstances #-} module AlphaHeavy.QuickFIX.GReceive where diff --git a/src/AlphaHeavy/QuickFIX/GSend.hs b/src/AlphaHeavy/QuickFIX/GSend.hs index c6b6502..ae9b4e9 100644 --- a/src/AlphaHeavy/QuickFIX/GSend.hs +++ b/src/AlphaHeavy/QuickFIX/GSend.hs @@ -4,6 +4,7 @@ {-# LANGUAGE KindSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} +{-# LANGUAGE UndecidableInstances #-} module AlphaHeavy.QuickFIX.GSend where diff --git a/src/AlphaHeavy/QuickFIX/GetMessageField.hs b/src/AlphaHeavy/QuickFIX/GetMessageField.hs index 03936a2..3113dab 100644 --- a/src/AlphaHeavy/QuickFIX/GetMessageField.hs +++ b/src/AlphaHeavy/QuickFIX/GetMessageField.hs @@ -56,7 +56,7 @@ instance GetMessageField ByteString where instance GetMessageField Data.Time.UTCTime where getMessageField msg fid = do txt <- getMessageField msg fid - case parseTime defaultTimeLocale "%Y%m%d-%H:%M:%S" txt of + case parseTimeM True defaultTimeLocale "%Y%m%d-%H:%M:%S" txt of Just val -> return $! val Nothing -> throwIO . IncorrectTagValue fid $ txt