From 036044f62e91c6d35a636bad49d36464d85a3c25 Mon Sep 17 00:00:00 2001 From: Mc-Zen <52877387+Mc-Zen@users.noreply.github.com> Date: Thu, 20 Feb 2025 10:38:07 +0100 Subject: [PATCH] [update] use new `curve` element (#21) --- .github/workflows/run_tests.yml | 28 +++++++++++------- src/arrow.typ | 2 +- src/draw-functions.typ | 20 +++++++++++-- .../fault-tolerant-measurement/ref/1.png | Bin 9611 -> 9604 bytes .../fault-tolerant-toffoli1/ref/1.png | Bin 6569 -> 6570 bytes .../fault-tolerant-toffoli2/ref/1.png | Bin 8355 -> 8353 bytes tests/examples/teleportation/ref/1.png | Bin 2810 -> 2793 bytes tests/gates/meter/ref/1.png | Bin 392 -> 389 bytes tests/gates/meter/ref/2.png | Bin 2948 -> 2946 bytes tests/gates/meter/ref/3.png | Bin 3903 -> 3913 bytes tests/gates/permute/ref/1.png | Bin 1957 -> 1954 bytes tests/gates/permute/ref/2.png | Bin 1674 -> 1662 bytes tests/gates/permute/ref/3.png | Bin 509 -> 511 bytes tests/layout/placed-items/ref/1.png | Bin 3806 -> 3803 bytes tests/tequila/basic/ref/2.png | Bin 1685 -> 1682 bytes tests/tequila/basic/ref/8.png | Bin 1203 -> 1195 bytes tests/wire/mode/ref/1.png | Bin 2183 -> 2228 bytes 17 files changed, 35 insertions(+), 15 deletions(-) diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index e4db44d..573b79f 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -6,6 +6,7 @@ on: - src/** - tests/** - examples/** + - .github/** pull_request: branches: [ main ] @@ -22,17 +23,22 @@ jobs: packages: cargo version: 1.0 - - name: Install typst-test from github - uses: baptiste0928/cargo-install@v2.2.0 + - name: Install tytanic from crates.io + uses: baptiste0928/cargo-install@v3.0.0 with: - crate: typst-test - git: https://github.com/tingerrr/typst-test.git - tag: ci-semi-stable - - - name: Setup typst - uses: typst-community/setup-typst@v3 - with: - typst-version: 'v0.13.0' + crate: tytanic + version: '0.2.0' - name: Run test suite - run: typst-test run \ No newline at end of file + run: tt run + + - name: Archive artifacts + uses: actions/upload-artifact@v4 + if: always() + with: + name: artifacts + path: | + tests/**/diff/*.png + tests/**/out/*.png + tests/**/ref/*.png + retention-days: 5 \ No newline at end of file diff --git a/src/arrow.typ b/src/arrow.typ index 2e815e4..a155f94 100644 --- a/src/arrow.typ +++ b/src/arrow.typ @@ -14,7 +14,7 @@ let w = width/2 let v1 = (arrow-start.at(0) - w*normal.at(0), arrow-start.at(1) - w*normal.at(1)) let v2 = (arrow-start.at(0) + w*normal.at(0), arrow-start.at(1) + w*normal.at(1)) - path(arrow-end, v1, v2, closed: true, fill: arrow-color) + polygon(arrow-end, v1, v2, fill: arrow-color) } #let test-arrow() = { diff --git a/src/draw-functions.typ b/src/draw-functions.typ index 6738bec..847af79 100644 --- a/src/draw-functions.typ +++ b/src/draw-functions.typ @@ -138,7 +138,13 @@ width: width, height: height, inset: 0pt, { let center-x = width / 2 - place(path((0%, 110%), ((50%, 40%), (-40%, 0pt)), (100%, 110%), stroke: stroke)) + // place(path((0%, 110%), ((50%, 40%), (-40%, 0pt)), (100%, 110%), stroke: stroke)) + place(curve( + curve.move((0%, 110%)), + curve.quad((13%, 40%), (50%, 40%)), + curve.quad(auto, (100%, 110%)), + stroke: stroke + )) set align(left) arrow.draw-arrow((center-x, height * 1.2), (width * .9, height*.3), length: 3.8pt, width: 2.8pt, stroke: stroke, arrow-color: draw-params.color) }) @@ -187,9 +193,17 @@ let y-from = draw-params.center-y-coords.at(from + gate.qubit) - y0 let y-to = draw-params.center-y-coords.at(to + gate.qubit) - y0 if separation != none { - place(path(((0pt,y-from), (-bend, 0pt)), ((width, y-to), (-bend, 0pt)), stroke: separation)) + place(curve( + curve.move((0pt, y-from)), + curve.cubic((bend, y-from), (width - bend, y-to), (width, y-to)), + stroke: separation + )) } - place(path(((-.1pt,y-from), (-bend, 0pt)), ((width+.1pt, y-to), (-bend, 0pt)), stroke: draw-params.wire)) + place(curve( + curve.move((-.1pt, y-from)), + curve.cubic((bend, y-from), (width + .1pt - bend, y-to), (width + .1pt, y-to)), + stroke: draw-params.wire + )) } } ) diff --git a/tests/examples/fault-tolerant-measurement/ref/1.png b/tests/examples/fault-tolerant-measurement/ref/1.png index d7b0c247ba00d0110e83b6937cb63e4cbd529c32..94759ca7da6caf320c5d2d10429a2b9d64f44c63 100644 GIT binary patch delta 7079 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 ImS^Ms3m8aY?EnA( delta 7068 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 BXtw|W diff --git a/tests/examples/fault-tolerant-toffoli1/ref/1.png b/tests/examples/fault-tolerant-toffoli1/ref/1.png index 2ed32092c71fe60a9f64c8e7f587ff3821f3ca10..b1ddd6770cb417f3f80b9fd0572c390a81df6cb1 100644 GIT binary patch delta 5174 zcmaKwc{tSH+s8jc%2H%aL&*{$TV_a>tRp*F6B(u~Bj1vJ{SZp{kc3ePW0{eiY-MRN zEyy;O?7m~0i7e6BJ@frNzi0X9dCqnJajxq==f2LluJ?JJ_jMDMOO>BWzl^`Z zfL=BnC02OrB3tYCXm{oG`r_0e-Xao@RA*Lq z8j{5n{7K9)<4cD7NQz;jO9|DDS&5e7E8%WR3m)eAC~V>X4iXdmY9#CSM0?oSb;_yT zRqk2(7vnr(`hF`qdSc%*TPtz643S37?(+j%7l z_4(KCe*0W9c3coT-n=djfGH>H--_Jy2Ir|Eoo*LjhCVDgEdNRDTknbp@1#yv9=LP7 zs8~O%>KKqlvPjt;*MVN{YA}tDRdRb?39Mb-7hExVPZ-XBwVpmY)V2RJ4-*J925gl? zy+nvz>DGZj8Vr~?JTh$`G%}eIdCZ3;imOHRxf8~TN377c6m@(9)H>evq%MCCPJv44*6Nijx(AY7#uP%hcAt^3EEHhYia+^1i63(t%c{LoifsE z&3mx+s2_{h?9~-O^M<7>ci+L9X7idq^N8gO{4(vEY{ACe9*R%-er9%GybC_~kbftZ zQ%L#k=Mqt${>zoE%ZtA4vXcui^v?YfM8&2PGmsfl&(sbjl;dAD4-TLML`o2}$xdLpK+kn!LiKJp^-b=!;+3_k z;%DCa`hwea-^h*ox+gA=slU#KcPq=pL+VFcS*O`nLd-$$i;?c#@E$l*ov^QFQfTp+0i4F3GI~r@ z89;C3)X)3-?YdILbB#DXyEN_QyuuH6L0DAAugUZ%*~vtzssL^-L;xVy&fri^>Tceh zgL;lnL%e%Qk?%C;bbA`4DnBTz(*NvjWb`mJJ=xW^B|BMNuKhc}Wi$8EomyE0Xudz$ zY?z`ItPbd(^|utiB}nfKy9t}_6Ak=>p=2BMXll~MFTSL2_$AIaSmNhewiiBloRSB6 zFWsA|O`LC>jiCK#+x-~?K6`uj12)Nqfc~j@a2*Ic9++O0(s-`s7ZWR z4Qc_8GO0!1eFusoum7I`{y(|@JB7Jn@|oj#F$#Ne3dd2%s2-TA^qPDP`kz>2hpr&6 zV}^SjZk{G+p?#I{FeQJe}SRL?HSvJ`u)xZ*u;vha#D2u

fvwTkOVD<-&NAftiUj8#f^jq1 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 delta 5187 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 diff --git a/tests/examples/fault-tolerant-toffoli2/ref/1.png b/tests/examples/fault-tolerant-toffoli2/ref/1.png index 3758acd75daf0d146e9f3ad48bfddbc66f1b4c8d..22c798e1afecb544408bea4c60af6e0673b647ec 100644 GIT binary patch delta 3201 zcmb_dYdDna8Xi;_q0vNgT4s!yA%{fdeCmKO&N=I(C}tdDFnnYtCKYlj#|X1)LMaL3 z^hK5u!csDZkE9|diXpORU3=};`mulR_qu=F@B2K@`{TLp`?~K~lv-q{2%LL}kw5}U z9nwWH6Ui#>ft>+@h``?@%Q2CRU9s)Le)j@4WCG=~)ASl29^I86I2`P){5T?pU|%py zcMHZ%x~EwLcN1-p-lE%GwF55gw7gw~%X&Xh*%7O>KVmab^UZ7zrpajkO3bsKQ+oiMh{dIPIXyg5wtjl8>&Ak&ZUKML7G_f7`r_x&hgD$#We*%nm6?5?YwDQaNi!qK)0(Jvd&e)!gLZE_EZ{YlxfeVk3X1S#uG|Lt zL#7uisFC7k`^;}|JSnSEY&&V-7bnC^9_eW5yNji!aOy3>t>8C7LsI zP)w{ZidQj*N3>kzh`k9NFb)^Fn{`9Us+(i=dy6&_VkEfr?xguwaLtsui>08Io;c`T z)iZySLQ{NN8^6$AsC%P#=G*#9D0J^@-8$GgMMn9^LxomBOp4~`M| zLQowmzk1&Jp98#b1joCnBx_eVe@SYlae7GfDx+qw1jEZwgFOu-mmphuoZ%g;L8R%wt5IBbwj zMw)Ji=)`>lB`DoEF&vqib`Ux@t4x!$dWz1ASP~sSP1J1V?!RV}UFIYd1Z6@5o;G!A z2_-d+Xt9|*kmtf1J)79QBMhxoiqvCYB|X-FE8XNikO?pZ{111uyV`eW`X7eOlksEpkw`Qs=%z-PH*83tpVGMK+S8SbJNveN90ck#p^TL2|)X1W8r zeo_y%aQ|T1NIB6HbQb>_(R-=BbN5A)itGi$%f}_@Sxa&y=7DOZ+`eOzV{)xDmm`Si z1=F4n%T<8M{Ny$I8SJOVqSH2`zPjFQ%E3tqog>xl-UsI1O+K%mGe-dhrt!C_V08S%LXr2A$s8>o!Nd^L7f!!bc|uNhg75_58-;y28rF1q*23Yt)62uEh*`fj zPoH7~I_j%BHSDz#pp&fc08&Ff7u4SEt|f-CmYbsYL_$y!0b0S9f8G6FbAA7z`y#kn3H_%MT{EFuA3*A5b z?y?WNlSj=>sMun3dD^7XmVIB1XGwafust;uu;^24W9Untx2?T`$jjmBQvx|}6c0>+*7Zx?-MGlEbS6p^B z@w~g^16GMKb<1G+{wtG4(}mHf^+m&VazbBTijx6t|KIL*%pqL^2XX7VSAEGAP=O|U zp^U2w*GhiKSwbpmuqs;a-UV8O7S8wS=?{Hpn3L;$x8T`2kXXzkq#}m$#NSY7pJdNt zyZKw4r)je-hm`xEVbLRTGCC{*WA{*xSju>mQY<#4B=IyYFLj!N3@zopnf`rly>T6{e1{eB0#K zV4eJ2PDzaFXa)#K-|H&%_`W?e`-^LqRIBsDTq&cGkB<+3j;mw$U*FIc(IOn^soou5 z{{q|vdRZ_s!u2>oUQrSy=l68l#*6J%5vKb0=lG1V>+Y1h1xb(Qst7Eu(FO6!7?BRtU{Q2t{`qE`%P=>9Axw_ zwU?7hzU_!*T*y+Tb#1E_eA$6#!y%Wt{cS6!VBAuXTVsiKVN7jxHonSK+$@nwjT;t7 zL9ZV%--6@s1W+&;B=`A$7D|-!Tc44oZDvQ5>Z{aYRE$-OQ}11T^=Qxm`XrO^1=AQE zIF{rGAoSbNAR}jz#jX`5$AZPJ^%PwJsM<0_fotB;k`4}PQUu!aVm^v{kOKJbElH@99OuH nZ^7Q(wEc&nt4;=|3SRrOw|cmvXAddD_{ZjugLSoKz@>i!hK~ZT delta 3222 zcmbW2S5%YP7RLi9C1?^uAVXIm1Qdh;Bq$N2gchj*Q8a*+p@@+(L=8qIAxMX)R8fjB zN>dRDMZk|LOTnS4)Q_$}3`GeN;l{hBJx&d#;Sw@B6y33!5m zq39~ja>JL#qBNe*$G+UMX-0zpwBPi$~<4=sCMuN9RdGOO`1 zg^qLC9sye8M_P7PPF78#j!SKG*Y~{<%7}WNcQ}=pg`A75ySt7Ht@ifYTUBdVaS!(z z&xw58#*Ld=9lkqyX3f#iHFBG>^T+P8Q!F}pv`F6gQMXgXy03&aDec#)cPDXQ{SRan z3~SyxU;>9u2 z@M2@;s-=n99<`GSpy`9*G8&YA1(^MS5h zRm?18z1M2aTa4E^9e333z@1$>N8mm)8dT!$sKkJo53&!H)2G5 zlV(|8Xzk-7-Z*RHUsv#o8#BTinobmP2`Wh3C30+&heMI4cCPCpqHEy!kP0@~AyzyT zi~q#?Mogc3Vw=KRv2o*^ccc0-*S-2|>s)%8T#{mnj&R9hx1T1E4^Vjn`%QP(bF>bB>Olt)PdDf9Iy=`^!vXzEKs)*88;kQ>~> zR6IcMnJ?j8Zt)SNeTARwv%@O6l!=CD2^u9f%tG3N>z1kmA&=Xv%$6S1@5GnHIfKfw zWzDrP>e2vx%6-#fFSB7|%#(gG+$VDMEQIs)BQzw{^Jl>^@M`J!Vn=Z&wCZrP1Fc}N z@|3jmbYDsqja>45@cBYj^ET?2AU~$WIOaN0W_fG3P70-hsWkPWCMNjG&_s_vD9LV= z856r@%U{!NCl3|9-wwXQ!xtSi1dXfO*+9O7nt=XVUSnybfC6pU1r7x|gD9szEKnU! z6gmVMl}9>Te+XpG!9St-S5*GL#lQLEIZ3AJWC%}U%5Wd`z88uXnX=>qEI@eEzpak7 zRWET!bG?lwBn|U@0Ui?(h9m^Jvp=y2XnE*5fuHUSK4jojZR=E34lP1;{TYw9@OJO( zLj!FA9#^Bw9r(--M$j}@k3$+t;C((FgH~CSyQoF;04{!3l{Pu`EgcP;wRz9nV|5Oy zO$!I^ZK^@<=)q0_kry5I4wc8mB)9{(n09?;TW!snTC7KYEQezBELFPg_fj>eYiD9V zR314+;#bOy3_>;xMSMS#w2n;sx^Yq;2LVm}@7fQa)_t~oro8O5u`PSG+=dR03chn$ zBC|~p?-ycmmC(1PwKn=uD)CBQV! zm?a)ulw(#H0jl37o1M)#@(bJ}T3&_y*=Uucx9{r!Vi(gSVA}#vIgTb*r;Kngu|{+A zXh0U$;R3NmBnEiUnNKCFitXHeAc=?Y&@MH>&9-Z!W#$qPi3XNve@RSlfo8X)s{*(k zCv_t8=x?AKRUAyaFcL)^go`$=*kWCpEvMcU_H65@ZEKT(KjApMQd3&poL*bcv8+w| zY>~UCoTBBz4`4L#w_J;GN_18a=n6&Ukih#q52<^Xl^5xq&cZ1YT7K}qlZ5|>IbiGN z=W4=CTOX+qB2bO!9LN#2zi`Fyf6-?HqB^yHFd_{4=R^|fA31+*|AV4zAXIlq@zN+> zhn}TSU0-9}X0Vl}r&Wgq-gt}_HmB%l*P~G*ir{p>g~I7{JJla`|EMMWA2v3>aT+$*JPRnfFo0n?gICtyhTDI(RS3QyndVVswXm^=enwl_H8?3K~0Jy*mKSUGt%em zsHwaR5$-HsNq@L=tq5%(8_Yk4S%FnKn|!DRd8f$p4}-}jfPfzP)7^1%kqoGwACYOt zNdSC2f%i;8Yx8om!BaM z7&G4d8@101>9d!=;2>-aJz0x$w?^^suzoDEOncCHD8 z%~SIqK4A|;<&6zI_Od=nd*Wp3I5+}UjO@@E7~LX~Mu!A1-hRp{LfAA73HdOqd5uyo zTv4yhNMa0P1c4J;<6m}DC?axt0j`|ZeND5P18F&wVclQ!4I&YwA3^H0JWyRAV;uz)Z-X1<+f4uhyVfb(jxlLNjU9MB$6av+gNWiXR(UFfS&Yqg_x zGJUSx%(;6h!q?paJthT`+>TjXZ4twpe%!57retr$(J9?prk1n!Z7X&am=U36ME&j} zyM6bvPnXTW>=*1cF_Dz#Uw;i=IIh}rpKgFwk$#ySAPOU6gzvkVVor?e__o!$+R`)V zIDwx}G%A{x9{A|gV*}3kaz80%%8=E1Fa}cCAKl5OAnOTi>-~hX1V-G`FLowURoV@= z49xo-Z+F}0yRs>7Wrw1JjJYo%tWtAXlVKCCN5RxvS)bG0zowCSPxlK# z)Ig&Kga5l_ff+3nF?#6G_cE(f<@aQ6I@czf=>}y7(dyax?}OLPfaRQknI1-4Z_85M z>^#%rs1ZWMLLUHW6ewF0w8)QF4&-stbAukXfl{d&*b~qXimK)7{18KD`JvE+YF=;owda53@zgr(K-TpLajp`kDwIOuY z;nLWYS>{)#McfMnP=nB&LCn3^^_#L!-J0^5hLd<6$ zsq_N8w_q1x$eqpu@1koJFA!B?C6!D*&(n!^l6Z!l*KnN*gq0O~^xk+8Y~Uz@RSsyb zO{~AP7QJrS8a+dj{d{&Si6k37FYMf12GenR7@HR)1G(Vx)FpiP==_$Qh6hn=z2vUF~nr`|W zFmC0L9qx=PwlSA=fj`f*0>RCIWLv?VOt{r6=JB&78)KriQ0Q#z(^lPcwqf8kJ6 zV!kQQwN-OqS~uBqm|UQEV&CvBcQw?8RNH^xm)KU&GEv|hy%QADBatjBitzbV#e&5Q zdrq?F|DkCmds{VPkoK$$KrmL-0xk4+0_gjsYao^0T<*+Cv#Ze^#2M2GVy64p#dUBJ zlOVFF-5)$u{lKEa7+?C9b5c$viMxkHXXRzs{__wD=WZ|krB|Y@k_JvyiH(_)+L`g# z_vsropKbLE-&jP6J8~>fXqmYBx^{WJ%LJdO7r96`QCUBa{05#4L0ph_%A1~jEjqbv zl3dc%-$ffu)V8P(qvRk2EA0S}QU=jbwwE)cqtCc`xx1fNfT;Ssob=r@XWiON91c_W z_%);0&pJFFjvqQhBo^hf@rPme6;MbJGuYApEsqugnca_hn;^6ar2TAvLEZ}K|K zCx=*~LbtL%0Z(G!*WGvbr?yO9{b<)n8H(MtE_gLj8Y>w|42qd?riS)_?s`Spv^)3k zDK;7BWy^$OXn?;CW2NQ%tDv8R%sVQUd-|7?>oUJk;=$*RS`bF1-@E%CtNx^oRMj3- zR^4}EI3>2?yTfy9)R*jgq3fpqco{X!wJ1M{cvQAro_^bO5zsOdBoOg5ZVUZ_i2^J zhG3lvG0aQ&a=HeFtj=d&$u`iDibjXnNoDs<|Ne9Q3JOdKiZGbBYITY1e9SAzmAJ18 zjQYz1yeqdU=A}&%BOJk8X{JPzwdXOCIvmv`+=7H%kzxh}WZhA%0BLBD`6(@YyEbnz0 zd7%W`+#ET2mlB9GyC&WqvlJ@R9Hs3zc7*p$JPA$aQ6cECHKo;_2$asimgwnDtIQeV%*wwHMpQvJ8Y^Gw40*$0HCN>3X=+hXfqBD?@7@OB zD76nJ{2@)TC0)xPY3)`SM;N)PEz{J~;>D@aP+@m%mWB2ATz!mEs%(Y3C8&^8P)-V}-xA&+ha>))T?1WN9qpwJ$ob)qu<o|ED453Mcqso<2juYJJBAV0uarck`cj*PcQ*+j>0+ zFAVjYUmEJC1=t&1mjSX`!NJ$E?(CObXU9nz89&fs=rPa@o&l_jmkJThn#DU60O=lN zC8M!yb8mgHgSLGUjsTB#C%5EfcsqDLFCiN8$TrOvpLI`h&sHoxiz>3*`UkH8Ya#@~ zz`)bB&Iu<^UNbpBT3L^CApS^>OZ=H0x6`*Mc-*s9H~iqm;v@bTGl_%<+zlk5u@fyj zg1n)^u#N}5)Ij=FB2I_g2FJpLrdFUg5Z(-lr3Yx2k;uIsufEJt+RR}-7atv4rKt(3 zk0+T%i zwSLU+!Q)Yc}C?pJxf_SXYVS7`GiM!>2!yz@f_eQpS;?Z?&u=~d*JjO4_Rd>G< z_;KY~yR+MT)?b82$wOupV`v5^F4{CEJbPQMd#OypzcuMGed1kk6<9Z`Ql(SWt(1R( z=S$BaR{uam^P>}rhQDKb-^|D_1y_FXT8!y)^7cnwu*p#oDvQSuD?fz#k7OZ>U{`Mg z!ashoy>Yx>y@z9US)BRKiqB3&tJbgc0tx-2ESpQRx14h zTxX>P^y$haj`Hz2nt`FC(4Y9-a~UkduuJP9?JMTH&?eFsxxQ}_q)C=uz>-YD^Pco# z?3POj%@Xn~R)J!0WVrIjIZ{7(BsJB@GE= z2?+UP6O6*SCu+3)`_`V7VFj zBfG(qFZVgL;Q29$~#gOCv>>ZNfW%5jEGbN)muY=(2|9;jUHpPAi cTX@;F&}8G?clCrfG|0|it(~kYEPQVL4^-uUR{#J2 delta 2802 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 diff --git a/tests/gates/meter/ref/1.png b/tests/gates/meter/ref/1.png index a72013f1286f979875f7dded3dce955e09976b3d..f200c212e0f6152b4d575eff858f4c75b764538e 100644 GIT binary patch delta 362 zcmV-w0hRuU1BC;SB!5gvL_t(|+U?rCZG|uthT*e;DbpmEE+rly5^Ruc02?G-O0&To zfo#ACW&@AlY;Z<6K_m(gLBzF9_q`nyj}ZQAOmad56zFcR)h)SWXsOD>6=V;hr5w%z z1qu}CRJC0eg_`Yh3=~kHK!E}U3KS?%pg@71fU-@Fa+`Ij(0`evi=;(IlE|b*xu7wh z7M0IOqFNH5!|*Y9nPPqaOg0kbwxXZ%m(kG5iIF{&c3Ppn$*4BgvN(G+7pk6=`)~5w z?er4uNEw#7{*E3vaz%Aivn*@qU1^R&->8;VSL(zm?SjymSk+B)-WPc|%31x_{C?rd z1fxcIS=RsljAJ_EK-6bOmbv-ES(!kzQ@l2d`Pp0o(RF?_)9?H} delta 365 zcmV-z0h0cO1Be5VB!5pyL_t(|+U?r0QG`Gg#__KM2u++N)9ki`yU^_H02*+(4!91m z1MC1hSUT7eu!C2^bB1#i7;rcivhN=f{8)G_BtUlvM2XIppYF*oLyysMaR<1C=usEv zh!Q1AwCglo9E29rB^(q{qC|-jB}$YiQKCeN?tqHh9F=Qahkv7E5=Mj3F$okKqXz(J zw?*~q2}m^@ZJOqzX>O|%`*?;6MBDdQ{FGciRc++8)HxJ04N$oN=hAsqadmExyhQ%L zhu=+S`)CzMg=kNCz_SGIs0wG%ei_~(D?w<6LI;(o)SILYKx8QEg*x1G85o4*!*_=plEN|Y#3 zqC|-jCAtsVOlN~o%oK#W=`5#Dlqk{7(B!(fY%z*^a{Q;4=q~6t1mFX6JS@ql00000 LNkvXXu0mjf0SKs6 diff --git a/tests/gates/meter/ref/2.png b/tests/gates/meter/ref/2.png index d13620ce61b2baf33f37ab2be918b9c6dc16a9b2..b7d11df1d1ab35fed340a2ecfac4647bc463a68d 100644 GIT binary patch delta 2327 zcmV+y3F!8O7lId%BmqgWC1nDCb`a8J9L90{`5UOL+N-e&FU<~N5@Mkdfi)$pDDYZz znc5`};i%(m2XY`^~_m|DHqwg#8t>ts}nq3bA6DOr~9$c)eyJmT|u&P5-df3JrVh)5{qX~v=9G* zJ(iDmfu&cqQ}TUmks7*=|90sPIEuE+1MSih&Tp*l+4#$$R%z+{RF}{?CoP@d+_>J1 zw3JCpnT?jA=7Q=*p7_^=kTaG41DXqqf1+y4GC=h{ewVhol>)^S?u6MGpgbxHEWX_opS$O{HbBkMRV!_`De zg3nTyBvPGbsh^gpm%-A&x)7tKes}VN&oVQy9!|3ila`WyV6Zf@j?Z#dAuW}`GJ9gk zah3>W{?!bYM%M9JLe)<11D_=l^+cq=ftCjpB9+0?z`9vh%SMGL#A>;thNye}TTb)^ zga6vQW8JomIF94LqManPk8*wPmKtVw+2{IHQrw%Sqd(qN`1iG}!KrcqeQ&ug~ z;`uytQI^hs6#4@92<#i&BU~dYc0^Gmd<>^6uAF2-Ba~S6 zZ&{8D+Q;cz-dtcO?@}n?LMX{QTfR$Ne9TS6hLV?mM|@aIhL-jhSI%4@WGv5>68VCi z1NiM5N2uMnHu9pLBhz(3)LD-Rf@ACEW!e)?hWqe8UQ zpCu2Q^Y#{Z<-&=J%4)N(@x_&@1UGE%k53=>R#k!*HWuuysqlcfGDPz4fnPKpz}^vM z1cWPpwHx<=XL8RnZ0=E>V`p%fRMn(|0TRvUjPBzK2SX%XudQE?t4m7D$3{M(snIB$TR=)MI=*zNw+~UJH zu5T$_CqGEJDMs4CGB`lV;mhq2BV#QCh{lyr(s5-UmhIy%D&ur5FAjcHhHBdgLfevo zHBpwB3qvhg!-=8x?yi=)<8&=^_$>>sas;}T1sqvFqEp={H9xdg6 zJ;rHTM#!5e%R;O)E#vxR;qIInQZOSeIoQE-{9PPz50*OP^el6Pt&}Q9q-QDJQ7dJ6 zCNR=6l+7zq7P1~JHO4J8EkmKo8ed(dsh(wV&TEvY9FfI^ftK}h_)_O{>wlb=-+L+-LiKEa$vN$hrTwvFNtR?umSkzU<#MfGH_OiB+AWj5 zA3&!g1}0c`s=H;ES}ps30O-`?Tjs1&T(#8yxLh?>^#1@@Lmn7o@K{5i!IFL_%;zdZ zD+^hYC0UXsWxl1H7=`0 zWNEo&*%PC4jKJ z?{st1Y3KmaTlkW$`&ehW+`sKqE=It~e{>DcHcOdc#H6aW!j}jNvb4)m2Jq#f{qQkd zL6%loCJmI^J37hIB1=}Gtlrvx5F;QkH zv|h~a*>Ww((p*b<39TYYmWEmi590~DcX0$~MV3ZdN^clvTCt&1kfn)#mMP*)GlqyP zO|--~(=I|zmgZUJm}J^9aI!Sdl7nU1T_Yt+^DJ2x%M2k|+HT3GWcf5K`D93zc3RdY zG2mory=5s0M0CEi-*P&{rumUuuGee(E%{3T7-vUq>0#4z+by%}=K!WhZJA(OYMte* zEc+1m@EU{cm@PSO%Pq2h?@^E8uCF599_nwIRxSCjz+iH{^B?gEfY(_i*iisOdX(qbxrdV} z&#FBKhV1CC$BuBDZ^ij?K17u57a^Jg(_^<}xQ&}{SyGHDOFJyjz-pA(q0IPTOqO<7X18vQFKg%Y z9BYSVz4>68HH4Ude9W`V5ob;DtRV(QKIU0UoMqa@$jQe%OXXvpX~u_+Bp(AU1-xrb z%2!wskBOFQf#DksO@4JsuY63kRQU)PzPM+nfU_VR&EQ7*c^xd3C;zdC=x`o{m x^gCgmPGm`z6j@SaNs%R4Qe;VyCDmvD1C|N21%JVS1pojF002ovPDHLkV1mr&i8}xQ delta 2329 zcmV+!3Fh{K7lap(BmqmYC1nDC_7f6C7{+n@c@0#y+R@kwFRdNIB*a1^0&A79qQGm> z#Xnv05PPcd(pp3m6b3?3foqq#SYl#ry0L{p5yXI9q(~vGO%IM#;@0Z^WM)qbyTa@| zv*W<~z3lCInCG*{7hLrn{}1$u;ve=}_KE=j?PAgy%fX#kZ*{i=z+{nscm}4P9$o~n zP!DG6jnznnqKm}cv5jSA;Scu!UTBh2ot~S(&d(K$i zYJ$~bnpZ4rRY3txBOZxGU@>E(YpxC{Q;0r zj!MhDB7)RO|BU^XKq?~u=_9`b=Jk5c~_7q9|uc+QC~#9sl@!*6KzBP z;Ed&yU0~^T^@MyMTc8H6BWsuLf}?2DEYKz`;r>Qzo{zm6XqJ}lPxT1BbJEiN&5RjM zNlTfulsRY_Zp^D7vSi=7Fmk5ye?Vh?@lRCES%#=KU_J^UOZKe`A!jl2bALcy6BR=4 zNC}wFPcgHWF_>?EZAl6KOnD(0ph+_NLoruX(=tGrL>fm(o$No9ak%?r6w(H zv%C{5q@~s!&XFSq_qao}w{WnpwwZIjxYM%3zr} zG3+`^gwy|O21_&R_$;C7rw@S75?U=0DR80X0fk5{n5D69n$@yiAqulv?x-RPu769l zzk9X4JJxO6h~qf^Ytb%J3v#iyM%)@W1G%*5M$XP4En2difG(|qLS77XJEEf(Y0=c- zGIL>;&L`x51?~~}2=@rr(ux&}CRHEB#60W&T@oY#{~BiE2oV{i7K22vyxkbI5;Cugso;kv@*re%Ia+RhZx2PkmLlix?d_VKC%b&c{M!{1? zdsQc%>|W%s}gv;F!$2pdwl)3*$aN$+^^k_3*yG2$}!b5fT_Jd$$tR;u-Jj>7E@rX z%>D9z7>G>8GH&ik&auh|(`G;IVE|!y&S*cb@GyjE`)pkWh>PkDL>OS!_Ia$15KB{O zhVL-Zy?!1m;3@O)NC-8;>Uc}*arTzVhcML=Fdbsn&QeEU<{>3B43X}!W!`XXjnN@^ z=a%B&xHgu`_eAZ1H=1GA#!?3mbt}-c*<$v8)w1xtqUPB0+h0S-jxAOFxaDq~wWSWA zYAMSYmMtuk8cKoi7IBGLZ!IIp#v@@0&(~d9HjkTB#@Sg;u&mjEc=wn_Sz9i_8Ys)g z5Iwcz;7yceIg%qSEys;*EpvFrz~d(b^WUiB_>%qWGN7T*HA)j`6guPj-~QPca$|RUyrdQOJ^)2)W6riO^;BJ zr6ZOCypgg@f{~>omI<_}6k)M9M3bcxmO5nhFN5#OM>$zKa=omfq_tbm#8Skx4v*GU zHndr$k8HKkWZ7R!eFdu$O_n{iQ~@rg{L!%lUQU+1wA8_nWmfT_SCD0YA1xPPnPnUa zS@zKq7nyYlBw6;)Qev7}$05kFf0hC~vu=$AS@zG8x3SC+lcnpHVosLN!%|F#Wa+A9 zRT2Y1mhM}Yl0ZV&OZP43LzJyg+;X$oxNj+b0)UI`q%8xKy>#6&TfYP_KWWPuwk_PV zO#dspO9c1@XW1!R3fv`sU9!A+9pGcJp7bQ=Sn&!2 zmQ{KQ1mfhM$BuAU=*0C>1V}_yDM2#D@aEJlIqnh;SeBHRS+yyD0+G#2%+t2iA-09a z1$NyG)9+p&&~)EIE>9%Cb4;Wa)-wg7pJR+@s9IARtROEVC-5IIrB+ zuIYN|ie7S(uag$jlhMp#$9$G2{ zYfH+XkrPiJEzJ_cw-%b>`kd~3`f6$92pGP4WaoglBpl1&C-wy`ER7b6_|dUtK{mF< z?NaoaFwZBlBuk1cDYB%{^Ee diff --git a/tests/gates/meter/ref/3.png b/tests/gates/meter/ref/3.png index a5a533018b536308611d8a74e97e6cbda6f6d053..c2a1f101c8134fa4c75af23a8baa63147541bab5 100644 GIT binary patch literal 3913 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 XKv*rI_v`0B00000NkvXXu0mjfzw%jT literal 3903 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 N002ovPDHLkV1j{yY1jY& diff --git a/tests/gates/permute/ref/1.png b/tests/gates/permute/ref/1.png index bb4ac412c1f9ce881fb854633105df146be1e122..7061b698a12ec5b7ea993f816ac4e26fa17bc920 100644 GIT binary patch delta 1940 zcmV;F2W$AH526o{B!6j1L_t(|+U=dcizG!9$Db1kf>o&|J%I>n&<%Hqf^;VaYA_S~ ztJ@!3ph0h@AXsCl$=p96J;6nHU@wTF*9%4pQeY@Z-60B^l%kw>aNd)dyQMsP=W2KR zZOu&aKGE*7d|yw0=<1sO@d}XH34nJ2i(*(5i(*(5!=hLe!+)X}7R90%7R9hA7R9hA zhDEU`CWNTsWSpPQW{U%hC&V5sX0z$}0Ga;nzo-$ZYthpam7k1rc?tlK%?|L`=vf8; zkmlzCWO_KaEH$24MABOHkPLmMDFw*meOfz{ASR6omFcHzN{};j5Y*b@bCfO*cdPGX zmO5~zADu&H(0}2nwd0csQ-W;pfwU4zvw=)MjgT6b_-jQl>oXIWT3n0WgNfNprXQO^ zgG)TMBAK4IVytluIur9Sne?Vytw=~ zWza!ii(VAHsRqgbnFFy&fe!Lo^rGlZX($6^4yFTzj(=XQ*hFCo8t+5PJU}J^6IZ2I zD?(BDztghKQX3$X04oY~^lC*X%BGn`MOeMaVO#cnN(PzdJ~CwMY#!7 zEp(tv`hP>p)rwgZc5ulJ@BuQZu%LP;sHjEZ2L`R21jr<&lz51%6{RRgA#8w5Vhl9B zT9J#ILl+>EoILB*id&S1IzT2pEp)C{+@jpf_GW-ga+30}R^+1GrI+ik2FN5wf$d#7 zig|iIN4yI20GZSnxOA@;#xKgse02y&9UzmMSATv!tQEhgLRfcqB0wf7zw~G3@n4h` zRme=rS`NO=L7z!kD}GU0PDpRO(P#Q=MK7xV4J4H&WF}dy_(f$x_a1i$m`PIW_dntn zRrMb25=F>Nl3GO*y{PJ_hb60!nH04qS?r>!qaQ!6LS_=wYQSu>D0)wBuiB8AgKJrs z$A2u!WNTlM5t$B|Ik?s&i&#`E6OC)osk|66b7-v=Ost~J^uaF?)i5<7GY8fZDo#D)M}%l`Em23* z3#qu)?7MT>=?;raP_J3!yYTfo%v)R6K3QtV~_0fM;+)kTr-bc~2YQCoF7WX|TL)0Wa3`*$w^N5lg)Dw?=cAQ!q zMlKCH?q#wlI$HP>aViWB#3q?V$A2o5mwce)14IQa4x#^I!zz>4<{;$;YEVc(15V8{ zlNV7T#*R}YVInQMOkVAVnpzmT20<>9MbW>CO#IT-DwEfbqJ{QV-ddV_nY_@~Sqyxd zv|slslSLu@z;{a;y136)nY?r!F?O6I-Vh3@D8F82@*0QKC@{2-%>K2?WPeeVxUZ!h zbflTQYA7{X>Y7;5W%BZ_)F{xnVh)xtlSL6@WbHaPQ)X%wMM{xacUOuq^U9b-omEd% z4Gmr9_n=r59afg;$P2jQ8VZcI>O8}V^LJhp~e4_6oi=?Y8FL0<8w675oRjr zHYutuywtcGWQoQ5Near$e1B{=C@N2K4@tg5Uv+zj6k(EbMl8bAfDXW?t2Of3o) zMci-DomVI`HB>C>l-LRy&+^)YnGFA9 zXNn}V6Jx#cBkJ<#0xo%D^u?|mQT}(-wUC-J)1~yiaGkRDePIw%qDSxn-KNesK6zQ(I-0~>R?YEw}XnU zK`tmWtrBu?e`BJqjDJ4HC2x+t*=|whV84=(lm?GWmqNC;&~%x$PC!=s2Zp4vq93X5 zJ4HS9+>%GcZFHh!v0Y@aB&{``h;AYPAS2Awbqe4z{f!mX0LJR5Q`Af7P-C@S)T-?| zJPlo=YU0eUYu9C}GaLGT9p(2D delta 1943 zcmV;I2Wa@B52X)~B!6s4L_t(|+U=dOk0VJH#vhK5kgh6)q#Yn6An2BM6HY?yga9sR z#~erZacBbwdNPoZXcI!>{SVp!(IL@uLIecRlOd2$Nsxh1-HHGm$s>W=la_nPUY|-} z&pgk}^L0(>{es<@+#^s3=86sVGH7DSs+TMJXyuQBf*NQBjJD zQc;SEQdE?RQa%n*i`(&dxms*L-r4>!#Ffe8!!apzr7ViR{*1h>W6R{J z=d>quB`xX$q9ViCGI_@EE(%>KiVAe#;>+a8E2b+oQ6qE_X7cplnXa@%;k+bz9$zMp zX+P>pTvRx-efD~MnLMrCccm^WoY}queRP>TK7V`)NL*Anv#qR;E|cfAzwf)!7lr#X zTg(cKEtBWjzAJrE;kyB6nm9B0u7G~cA)hJPmA)tk^})9jv1RgI>5D>}A6)JbStj3= zzNmu(F`5D+%jCQMN$HDP7{^@MIC&=DwHT5Y)f~H6vWY8`@5-yxMK#ASKW?JRvN=DG{|8;mHE@AA;6D2l&{s5ga+AoKLDvPxLgQ=2>HHm8X*Pw(mhQx)Zx&>~$6 zwy^Y5XP(}LuufByZ@_RjMjL4S#F?jeRYi)Tt{N~M5(9PynyU#i@6y$SPfV2GENyt2 z{L5;W8$UtjZMzWG3C%)Uyc{>vIXW5Fy?-2`vv_=tOo_+OuYFgSt5tK|<8M~0%PV4F zGR0>hRbAJQNVf#XzU!(-=g1Uz{LI>inVSGVszT;E zzkH4d*AD7V0)q7LKGDLU@Hnhprhkf(TWke$Pd}^rlF9jqJ$Y>5WNF=pQ-yt34^vGF)EAuOx@^9nx#SdlbCh0 z+-It&Gc0`1Ey~6HYL}^7=bdBW`!}pfit@MHOx@#9n$~zCs^%ocd%H{(C4WiySUSKc znyI^np6jD-R!e5;_O8-&;P*dR6wFjnXB&Zzu$IjHi;5DZ$PdQMie&z@P*LZai8{g{ zm-$ENRFoXvwiGBAf|;%LDoTXI0nI&(a+#PFD(YOrptD*qbA(PsooUmX9=t?mP&TEg zcEQq8v@lzzWJ}4+yub-Xm48{ukd^cxXpE;oI7*3SI@3%ksw0LjT2cJ9#^oF(GQ+Pb z>OAu=N9ZIoYwJ{$fee2yyWK44)yvu~+LrZ)wusC%$9j=9)XDASonMM=)u z47AosW)9G(s5^oS=x^L!+ev2ju)wKBz4*%KUNNu!fd25MPn*wt`G1!WM3gJcNH>6) zb&{E*Dct1msJCZNXv;Tezj!F`sKMr*+g{r`$xNTyVQNv|o&B1&WUst<7@~Xw6%z5L zBr~ys#!oBii=TXd_fThFrH3F2SEo%-@i|iFQg{(z7l`)6nV&mj8vCY6Xmseh7up*D` z{^t<&`B%4m%DkW;$}ZxffFpAidB(~BKp~jv+8iKc@`Dw-dob^g9iqNQfo|T#McWPI zNOxiEyH+@J9Ea;NyR$8Q@6F2nA?ha-=t}+a_+H41dVBUm+JDl_ey^fp7WJLkZ)nTh z{6|H_Eb0p%9im<%6&0Lm z^^L!(sAK5GEh( d6_p161@0QWWDt1ZnlS(X002ovPDHLkV1lV|(nJ6N diff --git a/tests/gates/permute/ref/2.png b/tests/gates/permute/ref/2.png index 59e8049376cc6b2eaa11393162ab5ae8f9c09f18..406a70b1588d98dbf49826e5aa1a846c1a131c9d 100644 GIT binary patch delta 1645 zcmV-z29o)T4gL&}B!4VWOjJex|NlQfKhMw45D*YAFE21KFb@w8udlEF=jDHYe}I61 zP*70+K{oF_GtV_FpD7~$h=Tu!f&Y|^-#IY!HCq@I;W{vCYHIuY`-+N+{QUgz@bEi3 zJ3Kr*`uh6+pqh}7kpG~YARr(gA0Pj$r~kyjaBy({(9Qo@PrxxL|8Z&ml#c&=bfBQ1 zz`(%&&&)J5G=DQQGmj-7Zygx_tEXTY7604WPft(3zrSy9Z;y|UU|?WhUtizf-v9sr zpP!%a@9#iBK(i8~IRF3!4M{{nRCwC$+i6qcNE`<6zX`+!o`fTyoDmW5m}BqzoSog7 zb-ZU3g9>TF_x}#tmBiY00}j^2kecb=3yW7zRXe00{cQUZ>OZGsEcrR%Uy*lHx)-drAvavS}`)R^G*!x!dAGvvc6rv`9rp zr^$uZu795yMi1dk#u`_%E-k>#s$3gRoVYU~nECYvw>mn2Bf7^C0KH@JMn7*tpr|Ng zZ%GR*XRItE69Hr0uc^#v4p#OnS~n1&=s03Y6S~)`SdO!#Om=oQIEG+~n({z>i)PxY z0~?|u6TG&M0sO7}jn~9SJG*&WhZ0%1u^g&{E4XP-o;} zb?D8O9$QD`rqV9`E3G*R%oHu@t)`ALdCEYuVaC>x;AlCbTi0AkWTst(+2{eKU}#@( z167;iv&wHm9}|~p0~`F@8{W0xqfK$T=6_eW19qI)%mHx0H&JJ-4#Qdp1{ALq)eQ~U z#AO}>yOxe}*&o`+6f;+wl5njl3C^rMf!^4LaM3Wlp&hd;e&Y>~L}%JnZ1OL?ffVP^ zzViff)nU|`zeJlk06sIJTYX?a%aBU{rnwZYpJ*Cw<_?7IhK?Ot3Wf74irCLL5r1b^ zo&o246VECiPe}^D{xRB;p2Of5!1MS^3ZB%zs&3?&?hlb>9{NxJZ*fSpq`|G_BG3Fi z(#(PXbL9K)yumHM0?cC9vB}SYZ^WOvO>uMm{hn)8NpNQ64RmW4!i8m^T%njvH8-@w zk+{rm@bnLMO}a!&`hlyB5}O(Pz<;eWR)x{H^v06hDw(}ivbCJ85=9+`Hpmi}Y1d&` z{X3g(u?_F=UPelF5|~*j2b9RSQ$pL*Nz1Hwo7x7dj6AIB4e!`m8iii} zXwyVx1|407UMV%U5mQT}SuYYtNy-d5n)Pz>GM<)3vtLP%l9Xu&9fe^q8FV++#9YT1iGG>jGvo=qTJ$qiFzLMvrDy{Y#-al$82M z0y0?vz=rje;dc~n$!J-hhfe55$I0D)VCb6XoF!+zE&wold|d}hG(!o%1@D;v3a=@0 z&WLO8I|Qonk+Y;sw!iMNJ0?P!yb#oEl!v{3WTm6DRIW2ru4rLO#=jOZeH&xuwtoepy$PYn7C4~`qwQa{*#6+VC1%4+W^(1y1G!g| zOlJ5l#>{@Zo!`_Es_5RDpl{~e?Y^HGMjspas>K?kg|J$&3Lkwc@MLGF^uneGv0s#S rcAh|9sgxv1k|arzBuSDaNm|%HwbpHw(C3m900000NkvXXu0mjfF=8A0 delta 1657 zcmV-<28Q|m42lhqB!3!EOjJex|Nr~@`~UOu_4W1d@9+QT<^S8+-{0T=(9QqP%>Tr| z|HHt~&(Ht3wEwrW|E#C~tEa%gz`wu0|Dc=ypql@bj{lU6udlEFh=Tu!f&YDV|9o_y zprD_hpZ{@b|8QvkWnBMcTab{D|5;D}SWo{=LxF*T|4c%FfPa90e}Df;KmSQS|3NnS zKsES4HFR`z?>#ecaBy#LZ{a#H-#IYPH7sCYU|(Nfz%ePmF)6VwCa*0eP*6}$PfwsJ zBA+QDkR=~LKtMk~KY$?{e<2%i9T;yN7&J6AGcz+VFfcDKFJKuJUl|o!7!+C<6i^ir zPZbd$ARr$fAAdj*4nGhMFbxYY3a zL_t(|+U?tabJ9p02Jo-ANm?6`R*OJOOHVmKpS#=B1X>H_S~!&-ci<0*G1>S3Hm+uI zdSybTV+a}D&p&Pdd1m&R>F&%oyQC6{&Ne38?Zs3?ao`0-h% zGYT?8(7cOqZ!h}dQm<;#(#&d4TLY+2JX71^DMxHSD3WQL&IFp4c# zI8{bVV1HFdxUHfQcP0Q>?XfSs4hOJHH`oQhJD%{zZ3_S>DrO^C(h|#QnCr;Ij6IY! zl{8vFE6Iw6HfAU~MngD{=|+zo(Jd3hxvsZ&9eNGH~jNp#=bYnaxd& zB4xD1pNtk_b^nsYRdo7hGBUM2z@B<-AQ#e6+nd_Jo<=Lg8lo7w9?@Wl$xK(k zheEbA-;o${RMNC!!HPoGlcY@j2nbrr(*I;}9^jWepWlMbOag;R*Xk~D3 z%4J7!U~Z4Du%62jmnmEFCqRh;CGd$aJBo?v)``BVyJjLY^$Ki%0Ay#I_Q1DM(J4Mf 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 delta 1183 zcmV;Q1YrBC39|{1B!7BIL_t(|+U?m-XdG1>2k_rZYzRF#L&WwVl0`7}{Qa0hy*SnW_R9z4uiSP`n-P#UxcnY}0~wQFcm#KWXf3!?HoNbyh8X+%r4 zw$F>&WRpC1X9$^HW|p0K+nsIsePQRv>@MsFcHZOn-UHq<0e_?*1u3_XV(KkJyGYR_ zEjkJ~-K1zdIu25hf|OX4e`nwMa)E!-1C+C)ubr~8CwHVz`S`(Wwd)t;Na~auL(^W} za4vPq8S;x)AHSJ8S>-j<%j;hZEt*c>j$$Q9yvhauMZGH#(oP>R6Rz_HYrwk zGC>NzJhgj(WPbycycHvMhiBXQjf2(HpB2+D2ku@;n=+U6>%=%un{sk!sb1#qIiEUZ z@5TdF&M!V%;;B>gEAMXEx^?^?e=X&HvQPDnutQjmfa zq#y+;NI?ox(pv{P5GPu@6vc^7DUwoh+K!@iXrU^;fPdAHf|T2dQf4BQ&kkk}(ZymX zDCJC!C#NhvyKipgLUz|aF^UfXs0dKZJ@xDL{~zrUwd`rf+(dT0YFKB zQYO@^JH#K`=Oh3oKzWbs{G(p4CZMpHa-o(P>fIS|Ov>{p%1n6F0OhX@>#N!%JXuN+T%{kpP8%JJwIg;HLpfJIwbxJ@7CEii;AOS}Dg z_Zf)!B9EJxebO0<@}R=-M&8tg~=Lklz;d%8%hF{BkR0DeCEFEF(|skLL{}A zK$BC(_dM~*@4p^>_!F3EN&rA?A}=i;hGsKNJ)jlYOke^P@EhSpxoHMb7EWZ;;s%*934!aoO0=b zO6^*d4~bEH2!NZMQr-M!y)3W)NR(pwvutw8SL7$Jj{Yf1VG01)0+cCo)~koPFlEao z80G?$&&j=0bIAs?TQ+oER&~8V{muT_ynhu*X}Oi@XIUqNWR6uMHbtX1QOhcTrdgJi z(_A+H1|sumWtf#Rr;x7q3)HKl>U*-lJx|D6~diuVWE zpf!GL0zhSAln?xpTelF0Vt~mTVt`F0)fJ)qo%8EKg~y;+t7Ep|4XR|A0Ojn)l4F~OON2#v#v;gG=GF=}<&p*Z6r!ZM-mgKpY3fRdhk9@e-C>?$5rNtN&tLbdF z;z_*ZGs!8G^B+%5UyU`zW%5m@%xm`)?5>`u+HTl+w;$V0v5T`5hP^FPx|xfru3{{vF~VUsq diff --git a/tests/wire/mode/ref/1.png b/tests/wire/mode/ref/1.png index afe3e86fae2cbab14a8b4aa7c47721eafd2a2fde..28415427862ad77885e7fd87ad0923a9fb8f331e 100644 GIT binary patch delta 2216 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