From b06f5f7f3298cbab4ff10a3c095f9c518cca0916 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 21 Mar 2024 12:37:35 +0100 Subject: [PATCH 001/110] chore: update with struct comparison, solc version, storage keyword --- .github/workflows/certora.yml | 2 +- certora/confs/AccrueInterest.conf | 1 + certora/confs/AssetsAccounting.conf | 1 + certora/confs/ConsistentState.conf | 1 + certora/confs/ExactMath.conf | 1 + certora/confs/Health.conf | 1 + certora/confs/LibSummary.conf | 1 + certora/confs/Liveness.conf | 1 + certora/confs/RatioMath.conf | 1 + certora/confs/Reentrancy.conf | 1 + certora/confs/Reverts.conf | 1 + certora/confs/Transfer.conf | 1 + certora/specs/ConsistentState.spec | 22 +++++++--------------- certora/specs/Reverts.spec | 2 +- 14 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index e4bcbbacf..47e091715 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -43,7 +43,7 @@ jobs: run: | wget https://github.com/ethereum/solidity/releases/download/v0.8.19/solc-static-linux chmod +x solc-static-linux - sudo mv solc-static-linux /usr/local/bin/solc + sudo mv solc-static-linux /usr/local/bin/solc-0.8.19 - name: Verify ${{ matrix.conf }} run: certoraRun certora/confs/${{ matrix.conf }}.conf diff --git a/certora/confs/AccrueInterest.conf b/certora/confs/AccrueInterest.conf index 3ae9ec84b..b5adb6adc 100644 --- a/certora/confs/AccrueInterest.conf +++ b/certora/confs/AccrueInterest.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoHarness.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/AccrueInterest.spec", "prover_args": [ "-depth 3", diff --git a/certora/confs/AssetsAccounting.conf b/certora/confs/AssetsAccounting.conf index e8a011349..b31cecfa3 100644 --- a/certora/confs/AssetsAccounting.conf +++ b/certora/confs/AssetsAccounting.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoHarness.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/AssetsAccounting.spec", "rule_sanity": "basic", "server": "production", diff --git a/certora/confs/ConsistentState.conf b/certora/confs/ConsistentState.conf index 45c0c672f..e946d31df 100644 --- a/certora/confs/ConsistentState.conf +++ b/certora/confs/ConsistentState.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoHarness.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/ConsistentState.spec", "rule_sanity": "basic", "server": "production", diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 35d755e27..9c4434e3f 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoHarness.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/ExactMath.spec", "rule_sanity": "basic", "prover_args": [ diff --git a/certora/confs/Health.conf b/certora/confs/Health.conf index 9238fde6b..0b4cf1895 100644 --- a/certora/confs/Health.conf +++ b/certora/confs/Health.conf @@ -3,6 +3,7 @@ "certora/harness/MorphoHarness.sol", "src/mocks/OracleMock.sol" ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/Health.spec", "rule_sanity": "basic", "prover_args": [ diff --git a/certora/confs/LibSummary.conf b/certora/confs/LibSummary.conf index 6f944ed00..58d83ca43 100644 --- a/certora/confs/LibSummary.conf +++ b/certora/confs/LibSummary.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoHarness.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/LibSummary.spec", "rule_sanity": "basic", "server": "production", diff --git a/certora/confs/Liveness.conf b/certora/confs/Liveness.conf index b3788c685..2dafcec5e 100644 --- a/certora/confs/Liveness.conf +++ b/certora/confs/Liveness.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoInternalAccess.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoInternalAccess:certora/specs/Liveness.spec", "rule_sanity": "basic", "server": "production", diff --git a/certora/confs/RatioMath.conf b/certora/confs/RatioMath.conf index a0ac6df8b..4cba64fbe 100644 --- a/certora/confs/RatioMath.conf +++ b/certora/confs/RatioMath.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoHarness.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/RatioMath.spec", "rule_sanity": "basic", "prover_args": [ diff --git a/certora/confs/Reentrancy.conf b/certora/confs/Reentrancy.conf index db93b6a23..15c3577f2 100644 --- a/certora/confs/Reentrancy.conf +++ b/certora/confs/Reentrancy.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoHarness.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/Reentrancy.spec", "rule_sanity": "basic", "prover_args": [ diff --git a/certora/confs/Reverts.conf b/certora/confs/Reverts.conf index a31c697d4..7f8175a1a 100644 --- a/certora/confs/Reverts.conf +++ b/certora/confs/Reverts.conf @@ -2,6 +2,7 @@ "files": [ "certora/harness/MorphoHarness.sol", ], + "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/Reverts.spec", "rule_sanity": "basic", "server": "production", diff --git a/certora/confs/Transfer.conf b/certora/confs/Transfer.conf index bedba566c..a02ea90f8 100644 --- a/certora/confs/Transfer.conf +++ b/certora/confs/Transfer.conf @@ -5,6 +5,7 @@ "certora/dispatch/ERC20USDT.sol", "certora/dispatch/ERC20NoRevert.sol", ], + "solc": "solc-0.8.19", "verify": "TransferHarness:certora/specs/Transfer.spec", "rule_sanity": "basic", "server": "production", diff --git a/certora/specs/ConsistentState.spec b/certora/specs/ConsistentState.spec index d84995d8d..22a787a2f 100644 --- a/certora/specs/ConsistentState.spec +++ b/certora/specs/ConsistentState.spec @@ -46,24 +46,24 @@ persistent ghost mapping(address => mathint) idleAmount { init_state axiom (forall address token. idleAmount[token] == 0); } -hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].supplyShares uint256 newShares (uint256 oldShares) STORAGE { +hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].supplyShares uint256 newShares (uint256 oldShares) { sumSupplyShares[id] = sumSupplyShares[id] - oldShares + newShares; } -hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].borrowShares uint128 newShares (uint128 oldShares) STORAGE { +hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].borrowShares uint128 newShares (uint128 oldShares) { sumBorrowShares[id] = sumBorrowShares[id] - oldShares + newShares; } -hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].collateral uint128 newAmount (uint128 oldAmount) STORAGE { +hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].collateral uint128 newAmount (uint128 oldAmount) { sumCollateral[id] = sumCollateral[id] - oldAmount + newAmount; idleAmount[toMarketParams(id).collateralToken] = idleAmount[toMarketParams(id).collateralToken] - oldAmount + newAmount; } -hook Sstore market[KEY MorphoHarness.Id id].totalSupplyAssets uint128 newAmount (uint128 oldAmount) STORAGE { +hook Sstore market[KEY MorphoHarness.Id id].totalSupplyAssets uint128 newAmount (uint128 oldAmount) { idleAmount[toMarketParams(id).loanToken] = idleAmount[toMarketParams(id).loanToken] - oldAmount + newAmount; } -hook Sstore market[KEY MorphoHarness.Id id].totalBorrowAssets uint128 newAmount (uint128 oldAmount) STORAGE { +hook Sstore market[KEY MorphoHarness.Id id].totalBorrowAssets uint128 newAmount (uint128 oldAmount) { idleAmount[toMarketParams(id).loanToken] = idleAmount[toMarketParams(id).loanToken] + oldAmount - newAmount; } @@ -107,11 +107,7 @@ invariant hashOfMarketParamsOf(MorphoHarness.Id id) // This invariant is useful in the following rule, to link an id back to a market. invariant marketParamsOfHashOf(MorphoHarness.MarketParams marketParams) isCreated(libId(marketParams)) => - toMarketParams(libId(marketParams)).loanToken == marketParams.loanToken && - toMarketParams(libId(marketParams)).collateralToken == marketParams.collateralToken && - toMarketParams(libId(marketParams)).oracle == marketParams.oracle && - toMarketParams(libId(marketParams)).lltv == marketParams.lltv && - toMarketParams(libId(marketParams)).irm == marketParams.irm; + toMarketParams(libId(marketParams)) == marketParams; // Check that the idle amount on the singleton is greater to the sum amount, that is the sum over all the markets of the total supply plus the total collateral minus the total borrow. invariant idleAmountLessThanBalance(address token) @@ -167,11 +163,7 @@ rule libIdUnique() { // Assume that arguments are the same. require libId(marketParams1) == libId(marketParams2); - assert marketParams1.loanToken == marketParams2.loanToken; - assert marketParams1.collateralToken == marketParams2.collateralToken; - assert marketParams1.oracle == marketParams2.oracle; - assert marketParams1.irm == marketParams2.irm; - assert marketParams1.lltv == marketParams2.lltv; + assert marketParams1 == marketParams2; } // Check that only the user is able to change who is authorized to manage his position. diff --git a/certora/specs/Reverts.spec b/certora/specs/Reverts.spec index 531db22f8..f2c6c204a 100644 --- a/certora/specs/Reverts.spec +++ b/certora/specs/Reverts.spec @@ -27,7 +27,7 @@ persistent ghost mapping(MorphoHarness.Id => mathint) sumCollateral { init_state axiom (forall MorphoHarness.Id id. sumCollateral[id] == 0); } -hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].collateral uint128 newAmount (uint128 oldAmount) STORAGE { +hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].collateral uint128 newAmount (uint128 oldAmount) { sumCollateral[id] = sumCollateral[id] - oldAmount + newAmount; } From 34c7194da4e226be62cf9a29ee1007f890ff1ec9 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 21 Mar 2024 13:25:52 +0100 Subject: [PATCH 002/110] chore: update timeout for exact math --- certora/confs/ExactMath.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 9c4434e3f..c7fd84c69 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -9,6 +9,7 @@ "-depth 3", "-smt_hashingScheme plaininjectivity", "-mediumTimeout 30", + "-timeout 3600", ], "server": "production", "msg": "Morpho Blue Exact Math" From 762dbb2cd57832b875b367e19c0aa7074bd1401a Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 25 Mar 2024 21:57:42 +0100 Subject: [PATCH 003/110] chore: whitepaper update --- morpho-blue-whitepaper.pdf | Bin 708090 -> 590959 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/morpho-blue-whitepaper.pdf b/morpho-blue-whitepaper.pdf index b9a5a73c91302b1f9de6a9be8f8c15251c2b197f..01945f918dd40a1efce401503f26ad001a336a1f 100644 GIT binary patch delta 164992 zcmZ6yQ*iEQzm8(0X`;URueO0BQ{e`HWm&O zLrzXE4kmUM4l`3WRwg!9Hj|_yU@|!b3e2DpcA?^K=I|wDhy)q~%}q+8L`_7Qi^7Cx zgc>5Z2kiQA0pV0Zd{L)dGXtY9eLhedQqV&xZmC2O76v>I&gjITJQE!$*d*W))+SAm zJ@6zBs7e6)|Ln7{G7&M#nA(}USP-!=asAJ+vx}3dp)HI@wy}YMfsw)9+DJc$37Y4IhgdHKK~+XWy~t5v=evc66gT8XCA9z3Aj9x1Y<8R$I#Gu!{=DnxxUcB>P4d$;aPcgbISURy=2 z!MQF7j5!-9$b|Vmu;#=Cb)|?=a-9I+E2pZs%^C|-CyJptQmHK8?gnppprTdPV}S?VDNbwMa4;mz1IX&yOt}_ zT?}_q-KaEkADe8hN*=@2+{qJPVb0n1luqcjS!AhmW5oWItUEJ}Pusm!&29J1Jxe$f z*I1@-UQ-~EZmRXF0SuuV`4tWj*G)E8M>I&QVhp^k8j*k~i;8yTLSY`Z0+lbYXz$wn z9loV2Bt;ekEdbK4abxV*hwnGX@cbqmCCpj(cvUE#zBKkTA8VpzDwZi(7F3CMLZj&0!RT5$l>t(6nUz2iqTUg z#|zB2SeJWTViefZDo9LP4vL3l&AD<(ty1TF3}HAw{UhPljbIjyz(i^2m6?+r3Tr&x zUr{*B3CfgH{){V^qdEFrQ2BVYyAl$jS27K`ozx$dBhx9^T-m-ZRAvNPbMkBEX_=jt zlR9hCJ3&H}4#2m;iH_r}or!(vr!lQdfqsGQkyukveOL~Ss=iv{E#lV>tr-ZCwVz%R zg#9Cb4+h!tZWiZOA3!$p=toeuQF9ec5cO{6i=fd1uoTCF{Ij^H)=?DEI08gs!0B2S5vGdjM^xG7>3M?3#^6k5Hf? z_6NyL&Jj|lT0#IjHwdnrU4)DB<_^I1!kXf6H9{@-x@+3vND@G>!5YK#?o~*=Q+@;z z;=s4aCb)Vnmrz9;M^!R$`+;{;m2<=)-b9t5>;%0K?eb@O`qQ2rdOZN8O?-#sYj9F$ z(}udB3Gmi@dOS+Imy$25Q;8b62i9~bZ@T&SMT}xf?7J`Soh!k(F;D+NFjCR@$79tq z)q_{~uL-_NwRNKn8EI;MT>kD@HFrafIZx`DTT-r9Q^c+X<`?y!R@Wid24(!r)2 zpmT-fS_niWY1m6LcyXe~cgBVxw6Z z#-3D74E$Z%+0f4h-?!3yci}=HW3c_FCry=a?9X@TFzJf_n_}gm`D`p4k)YRyHhk7eVDWd(?o&>zHFwPHboT`GMnbQ5d*(c$U6F( zepi`PxFz$2ym1_P%F{{9Yi1@Z**j^foxid>`srMoa9yJIjP zgVi>!^zdnX!ItQ`Tb$F2G!~cxJ*2O>6(B~Awr7E)zei3Z<0*_DhLDX-C6Fa2481F4 z8>|e9ix$IoKa6CfQLeMcOvpI%P+}yaIPZ*&fqWNwbKCK6rEXdr%tg}$4Wm%EZ%$Nf z=h{h%co_Bo(=g_q&GVJcMN(Lb7=6E@3_&}UqtQD-mC)8ZDlEXpFrjW!PeP?tb`X(1yMxGeZ{B5slX1gw^I!g zsuAY^c+S;qbA74uw7;MJ8{KN`123>P=dfgh0*??rqCOx5X1|5GsSKuKnrcuSg}HiV z7Ju;}08}5DK&1=PmOy^?+s5;U46rmI8N9JadQMQFoq0j5P;e3|M!37;+1`yYqLS>ZF zV9kNLFV$wZ_zPcX1Ud9z~E#=GZx123>KZIxZPYeDxu{sK(1%Q$&^3P-tyVbpz z)Laca%4SQIilb1$tyl%=!zQ?KKi|xxHP))WxciDSo=cC+hz^|OjCSC4QCi`cF{k{i z)HZIq%)Ir*T`->g@VYjIzeLwvVb{nr;eqMf7+9Vi@k_s=b~1Pz4wf<9G%2{cFwMJ* z6I!7pruKPcn!}1^W zaBy%X-JzfXSlF34IsY#_h;9W}Nrr7_kl|dQW_EFxOmmTTN7#njCZVU_-loQ1px)jl z$CrY2-}26@`TY9TdSzI_Iq`h-y!;G}l+jF)T$&mHqdGT0G%_+aI|dD>?KU zYHDmGRaC6d46q6K4NoX%^Pgc*Ljb(^0I?Bf*;N|k-(bm)m?6>?mrS)G)M(7`% zoE&;f;}u#$II}UevO!c}g3tuH?#Gsmu?4O~C{+`RKLrTS!Ds{u#rn|E-2iTGrbgWu zrVwT@gk7S6+-c*<_weVy&#oZYK)-0P@-1v2zq(k=$Y}gCOHw9xom3&6x2ygWRs;_>XI5^l{ z>z&zJUz;1-fYPAKZ6fRwQZTDbN}lozuD1UEM!?|9e+MnC(S?10j}R`13yeob6& zNO$jBfPY6yPsV#4$&?Ph=F)XdwoU+x{Vy|cRJ`9Loj(x}CM_*3B7hMR=nM?VD_yJc z3#RVm9O_GY{6!kBwtsbVegN43fdS;q+7tooSLDHs*$os#Xr@+3|5gzF_pgMF4G=4> zGEzU7g`sKO6EBYj9NRB$P}r@_G4Pxz_$>jh|MTi@-|o}ErRj-*{pI`SSKWIfRr!R) zWVi8K*8#xQ$OwS|2w+bkrv`+|i%IK$y_$IM-}m;z8Qs{hEXekAm(sxL4s`c3jj>hw zYk2iC3o`fPjOXJ2JF4UYWKWMI^yxkRtkIz%J3wgjJ6rXWHu<|7`WyKG(0=%pl~`C_ zd0}L~*8lj8+gO{KSa~D_y<6xE?1#+X0}=rJ{I#uw{`#~)2l$(*)w=y^(}J=<5C)d_ zgk1O8HajIWKLBM?YX`{C|L&yr9bfd-POVH3lwa)`Jzq9}7=Xl`0M7f%OszouT-yEB z9~jY*e7JvQsSWKf3|=mW*E-sPM`vb6b0zkOgOD-%v*3NA%!K0lQnC66ZEk@;x`6tR z-$ADEvlIMe0m)gg{UjgKPn-u3_2J)Qd_WlYyJztJ$Jh45um%ZlnD_M{8e{-c4xp$d z`(Xrwgr68LAUc*lWJ>?PFPtFG37;|jI!6FfCd`mssHwmA|4E7;m_5MGia-BtsQ8gG zrMdSZr$=4bgPjz<;0AP*|B4wf;QUWI`JV)M{!g>`jq(`Kaq%Oq&%3t=dtrT#>F1Np zj*+$X-)oEKK5NT9)PLVid#VG;9(&Rs21hWvFo4}D{7rCh`bk_{|CW2R?$Ma~@!w1C z-$m{x2l-73h{4ALu`oBgGI|e#n}X~P228XAMjV~M^KNeE_5`wiLk&P51&K}>EdbBr zGE6`49bA5Y+IFYb{Gk0HPd`j=_Ab7}IqCyO2$Ar9IeF#oi0Jw8=>uK>8vdq$BXjUH zyKhLaxbYK2D7)*tl7LUUS8>a|+@IJfaJLr7-D^TGhiinsasM3rpCSm%!#8bsgcB$~ z{LNo;aIW>AgdcZcuKo_ZfSJA38vtSH7GS&@?+5F#?uGlCV1@Ar#^wDo;_;TD;TMI+ z-`|X)^;dFw;9dK^Zzb-Na2jy!`J3>wntr`H_KSsu+y2YYm-PY*y#0fPgt@i_{`K+M zM(0q$(E7VB!r}0<3*CQe`w8;3pnaOU6$MdU)H?Z)L$@=__m0pQaD{QsJ0JEBR4mtoKNzStWBu$iqVz7L68)^V|>M z_&hX&VD&x-QQ?RM9)Bf^ESl3cPvZaZo3XADj@d4W@=p|k%)|PC1e~0qwY04nCerN$ zx=Zd~^cRXp2@zXz&=^0^pz=HtdwaDkcS(Gf?r62mmoVCNaYy(gveiM>yP;Z1XVt^! zjHftMZo-i^2({pG2ptSDo)}qQbK-2Dtc;6Jb}#1X12vUzr2Ye*-rk9Oma`rr1(j(d z9;qSJC>M50BTI<};Tw$mYXw@EkU3A7oK#92x-M zzNQ%=2HR|cS6B1c8+a3oN6fT4`7jju(&93p_1VlA(XDkFUqJSNInwr~yHM!spdo2E zNnn`<&z+P?yM&$A{+lbmTLs273!2bi;GlKP*iH3HocL$&44~ITP{MGUka)hKSAiEl z>v?VNJ)JfeSS(kuk2;=EC*I_bFu~!qfx<(9g}FKGVdmZHrDnur?SDVXcLXS&6HsvA z^^}Z05_5h{cKKg1V3w#*&r6gSZsv68iK0d-|5x2vx=OLwWZ4J8avEw2Dcwg|GTKzw zLZo57op!;50lukEn7bG+C`(}Bd!fG;Fa~v(3Y|qELgPaEQKb`W`T?a(S6Frn?LHJ} z-ZhnOY2y1W(DPkP{H-D{u2x|So2^Q9=}mRm{j<-^=o=idnKp)$MAu#-@h`^1O`f8U zot<44-zFtym-@|>lEq-A)G}z zjpIV~w%BhGqIMmHI%(WQr^6bD^bh2NqaRdvqnG9|mDFj-)kF#v%ERu>Osg$BM&4@X6lll{>9FhZW?_sU#KxTJ00g&==*qjR=m z_*|?s%g%##F;m_7r{e?K++de2G2S(({Y&c4iypCdR*Mna=yaAh=96y~}LiaRr2&y9Qq zJLZVS4%<{pYV)5xBKoupv`1E_?%Thn{)YXru0O(HARY7IR&F#=@)XN@1#OK*U=`7| z2!1f=SH5q0m$mm5+yzZrPnNb%f6Kr50p-WajNLhhey@DG<75H85WLIsY}nXF0evBQ&ObEE04A$o+oIYuDc}kLVi#cD@Z= zk!e^e)Om9NHz6driAeQ(hKX!+jCo-@g37FJ$Png@|3kJ`P^`AG0tR&;ARJ}WkwKaw z_=x>_~a@^Y_q|%=$3de{! z(@3-z633;1sj5S@{R(BTh;@K0^tyI^*F&0!5p z?q9fSmHmGHrMW%*DO*C=EYFZg&645jo>a`wiPp~jBljyf-G!P^*a)wMe-v2UQ`?oBzI zkm-@45PuI$(5yv1%%(G!Pjx-VZK%7HcSvxbN6`mOJ+O~?EKJjxG2{?W(?52R_I;u> z68CpX6Jy%^%9P;@0Ilww#b&*^?*! zq7Np$3)A-&>w2IK5uIwOriEOQa!i*_CshoMS?vHLCUAc#0PGA}K=50tsJ-~*O8n=z z^0>s8+vGd82i`Nx7C#hIOIt}i+)6uH<)|7WssmF*BfPqHVlj?g8$&PnTw-|P8i%25 zP6KvLucK+Nn<>|(CJCS&@qH1UC-k-oo*3mPLSy0r!Vw~cf*^$FL zy&JgRqctiDV0AZl_cdQ1&7AUIR^2}i%hS0!b6bwdl*B_x^J-etAH1R)#g&UN-mRwB zqn>%0gQQ_aEoi6r1ZB1?!s5ZDRtL>s9m?BvWy>pwMLAL^OQ@%&)7}Cj@*$KW46K3> zg6s*A{TYx2CRj+;wcyH4&Yi}o8(ze>$}^4DxyH*Kb>N8ERQH+PN4E*I=%&Uo(Uva@ z(nc46x&}0C&s1NPiobBUKgDHK~!L+-_nk`k^F-AR|HahR-5 ze{`KK76>gbaDs_kRYXVUO;S1jsJwSEN@D8*I>}x5e3$fdo#_5uvnpCa_gXGa)ndJ} zRX*!2Sa5&N+7&mh;cie0Pfna3kdV$%L=Y|GANl0Sh*a7rkiDcP*{o@FFx5+PYTh;o zJ`C}*C)UlZifb@4D9nb~oWJ_P47qFyr0r_hZqFXdyv?KvpT`~BP<}X_B!+LZI{2Cb z>Y9LM^EN0nym${D4hMCV^~>&$vQ6^PX9+wPhnd#~ z|8kE+Ct6C~mU{Vc)7W8NV;z!?2?4eFzuHqBbgzxFM(#G}@kZwF)$dFt9 z@~J+5GXymiDAC^9;t!wnsge;TQkZroH0%&^{FU(Yife4WcTl5gFs#OX+4+)N4`LPK z;ez~k3Z?g0kqh`6X+nUjiyM_Ka>cv4@Vxl5o!U(BF4MuVg|EHfaZy2?c7SgW$S6YM zjkC#Go4tg<#5ijT7lYlnEg|5diLMh8?o{2hA4MtF`N#r&m)KQ&xNtUB4&z_*RGZgi zM-pv^2Q=Mu%+p0A-+EJ;34O^;t+hU`9X1)x1iDe^Su%eKcJ{lHYWo!@djoGd$UUr<85Y9ue>Q*gp{0Xl#02FYdfee=lb(E4Z*KbvBG>l8D6Bwb{a-xy zglQ65s<;5z#)94qn*vEZpcy1g^+n?f5542agNPjfLh5torH-*0Lt30f!|AGJR>`ef zwB*bC`HA4wm)37s1zI}ROJPZwi}zAxnO;aP+Bq4HDm-%qZ-wJWYm1*5)_WLu82z|o%nogt*CB4<>D1fF z<332yVYS{Gm&a3)DZFREU2_71C2cOyLVKQKx5Tzamfc2b3`1Nl{D4l-HLpCL^t z)<+8cS11X8i%a^BC~`Sk_jTB6nzikuzYKm+r$nU4FpyRNsF@4bhJkb{f$>oo`IX#q z`)DcsR3a-t5kzI4ZZ8z@hvrpX+GQg-%Bl&XFzErgR)x!E6;);)iJTuS?rCj%jzkWN zqff?lOi`qbiME}Q|DD!q?D;6$B4nN5C#BrUd)OnZRGtCoAmMUU3Gns%4tA(fTaqv z+l`d}pgE0Fa@d8jO(9mGzQb)O9!)bZljPDVfLR@y7NDT+t*@CBsLQY3bFswduf%#* zZX02MLRpfm!w3DEt}{~1RRNB)+MJHT3w%@6`j<5bxOQ7>ymxPxVZ|e~i>PtKDE_Nv z3_492=(oYvXDlH1d%qY%VK5hqon$8CT6Su?d6rmnib^dY4`N3U`4Z=OKb!LHwu=LY zQ&pnV0avoHe~Xj47D+HKL`P_zkjGgh*2Wmm!98TXPIEm3N4N{~&NIk-m6fJ>r=^4< znEWIHxQNQ8-NL2Ek!h0{-@bEB8A5MIBxoDBn&9HiiAr@ykLul>8?AS$fjZONyzaS3 z=Ml^pU2+rq75jSm2d^)))QAoJ)g^q!E)+-w1$vxbL6?f0W!JUbUTx66?BpG&?%ulg z4F2aCC{LXscMnu7FH@(Y0pqx~Ys5jgNGbjXz>zF|WL-9p?<0?ey-}RzX6?f8e!!B! zun3_~D4obK!By9`sd0hI-*98Qp$LaBNbB-8I*a&00rSDS##4u5^PT3eTL(!TqjM{o z59Mn>BPZc_qCSLhxd;K5+M%D>NFu^2)ND)ERpksEa(2DyjEFh z8|En0U5*VSPe~M<1aX!X$I3h?FNwUz&7C@l2?G^GinU6i$xa1ft8MgE1IC;HMB>p}G-~2DubG{#T#Z<)J2A1YHUEwFrO?kt z7QF6stQo4(gT36HD~o|*k=NmYq_hzC6S;XcUuhu}Xc7Xa=)dnWZ1`-|Y~qE}u49*q#I;RylX{Mx8fh!}>N-3tD3zAR!OGQp>f@As4zZYd_)ujcGILwmTQ57G z(gzuq663S1EO>jJdnywAm^L_odbTv4<<~*DT_G*MEAguKzE$FiyN|n8G_t@!N7!K* z=~)344K(D&Qq;L-whdJaL{u-$FLF-@^M#2^VlOL5~hP)zo z|28k*Tg4Jx^A3HL4}e_hoJpkvT*jTZ0-Jb}lTK1)>_duXmO*x{0(+3j;htu&m{W@0 z3`=+p`wFNx6yKAz*4{?QS?g?57w!|N4eM<|2VQUfCBc!L)I$*~jZ)g2fo6)>*)mO~ z%cPFvY^-k{*)@vVAul>WGnwxnuY%8?Q1#^tJ>wem@_g&2t)=WR*sDD@`vjj&6YQqJ z?l(>N$QdDYx5x;xwVmx(N>ZovSfeJenPRS^*9&bE+oN*#`hJMI-1RKj*cVIw;?ciz z=Z{S<7-@=dxy5;go#O5)NX=fU@?%J*e3jdg(XDDDo$Z}pCO#k zIE5i$=fB-gEY-d3tngk(J5gLvr+62WdZ1}TwOxtWCv!#8-~)omoKj+EWJW_f`8@z7 z#wibnvZ~Jd{>Zn;L$=8_OEX!;HKm?NR5R#Xws4*F`I`g(i6s)0I5J535!5CTz4Ia# zY?v1PmwL##jt3{eJ+$9#)-I)>dR-*C;uxlZ9*6m=-WKVEBLOR*AaZJlQUZyy?sL7` zl6hZ}L&W}>l|hnx9=-N_oW-wykv|i0OMMR0y0s#}WghhO6e_#2wxZHJP*JmuK#W_7 zP-3|1V=qE9=6P)mt~j~OB?a-hv+5G$Vq42cl<782J@~&=U{}szjVzD8sWzh0;URJp z*eNI?mSURlI`eAk)5@jtxzgKeZJ<=S9tYGWtSv4N{dR_+?&vNNhI-FzNVx{2oiNqW zsJ>aHkk1s1Gs~T!za%5})q*Uok$|?4C_pEJ8WGib`6T;M?|CCM(Iy5pgY zuJGRU_I*B9TkgY9;n?CHfrqnK0Bx=+=dMJf>0JcS$F{3FQN2}E4C{{CaMY_xQVF}& z$NNxO32B756NTxt(CiG$gKOdEAlexRY^$4EtXzpL+m23v=MxmIMN3C1rcc$ABz#D2 zlSK(G_0;9g3FgBd}Nv@9xB~0~f9Q1|; zL0rHf&F1O*JI-4TK{GO%+`u@Rq#}CjUnTrjT@FSJQ;$^Q%~T{RKZ)$8ghYvr55C)j zYC}7h3kX}Y4orq~*W!)Xa93yGq=cFY@ng=+oMDH;AUnb=rF<8G#W*(?HnaxH)oepm zc)W0HP*20sSUvNLW`01K&Vo(8+rNC@T{HmI19Pn}_(6)zBH}C~iIeAxPIOKN_fnN! z6Hv$eip|ny)@S)b!!|oJ^FP=$s)9odP(7Grhb7ULh^d+RVhB9`)#P_@xGU;I`j_6- z%8M@r+4$a|8^XlW$a%%ZgQs)j*zPrMX<2)Fh+}SQ#&vZv>-~wiZE%d3R%s5;Gd+N6 zGVTjQLH&urq>Nr3;{{mDdS+X(N}Z!G_wEueA9&8YB~)Q-vvOT;>^NX_r}l780x*!V z8XCFfn6!4v{ylowa1Zrk>g~6O9oHM6#CVjoyb5;pwl=TsDa7Ar1-PFBy4riPN$79c<^cxkMy z6nkF3W{9VotIAdUM^6rjI8`SIo6hXc4fIaxBf3UVXrD_0B>ekUES!1sY7QaR&6<^u z0qsOAX3<2zZxKtn=f?C;s^J(kPoS=fAvOAR{}dnSnO~-CoRd9~3sh_k-vE?ZwpWq$ za#wZs-gCUWMyTA23C;Tl9|Xnh1WEjB=Y_G!A>24Z__hgRv zPzSn$!(Q0(rYZ`TqposmCLF5*6?5Hkt_qWtr(Xuq>vq9h9q6uw_djANiv2GiE4#v- z34|kZDYPls7k@S!RJPQ3%K^DQr7nS6kGei0;Tq?{rM`w|@*nbRmI;!kJq z@fyty)pyv^yTf>?BQ0uS!joiUH3&H-P)Z>8N=}EU=qoku4l~A+ruMOP_gT_But16K zgR2U_IX?AA3#s?iN|-s|w$s9@VVO&<@>cQ$X-sn_xX~ZVQ?`57xY#Y!pQQPQmB&TB zt$0To;iVJzd}c=H8i3Q+Vd%Kb9}E^3Q4#lXwQ= z{Ul-^DbX$@StviC`^NAgqM3NgQOOlskNL2kxd>x0;i+)-(7GU1NxX=w zpY4{um@OoSHnKZz{D>M_iU>#m*LjgV2^UpGR}{^4S_cZeT7%b(HIP8IyRyH#B#r;$ zp?f=ckFfro1;Di~5NZ&Zw`|UP(t&*wZ~HvL`s*6k4NoH~j-27pDo#-Wo{G*DSMr(i z{sJx4@zi0evS4&vQJlHHiX8ctS&z>u0RQ4R>%cPQN%}1$LTl5V%?7+j>gS4?NkQ8c zNwYVaGoUX0bT<62CYZ{U71*ge0uS#1m+ECDHXt$V1~994O^l{DvtvdQQR?VA!X!RM zO(GOS?GalIbLDN3-~Wd+(~%1{j)I%oFmX0&Fxu@!6F~e*#F6gly?Jm^5o?@7d;V|? zDHqV%g&!|FD@M4yDc3DQCLuA74knT?HtGN6DX;op=yMq4F;kv3=|sAV3BYr>nM?=yMWeyUYx zS#F!=GRbbj>dR~@U<7qeo+fspWhVT9<6bC!ET{Ol@seHT@IjYMy+im}3RMgUQhv3_swbvX=-XT}<~A5i;FZv}>y9rOIxIvL1v)rRXyu|0I_ zg=0x@@KT#x5BBfB3rC0R8=mdwN>q*;qoT@j`13-044y|eI%^xjXDCCs(7$Twnnk@S zgW6N?EjPIPj2eztq<(l2obTylx^mxfKTE3+sERxzK0CEX!-^hnly=YQ9Hr-C8$d5| zi2!v4My{5;iO;jyWL9}tD)wnuTr!ab#m1oHeu6vVM2 zADgWg+4&Q+LRQ9DX>PJIe0#$!o3*%)FO&6X5J|%J8I2r{D+}^@e*ilDH0c#yUwZ5z zxy*M7nzxVii*J{m5}xx`(B0mbP2N=3ECA$#mWZ&YQ4)0AjsR?(s3*pp&s;ACAJg)^ zf}zEu4c2{KkpT2VoY+GO78Y#(Z0t6B2TupQgZYQ*k&BHgN~{9uG1FW)waQ)pFU5kT0YD-a z(EK;|l&3PNy3E}v*gduF0wxMS(8W%S=u{V7@-@uTdo)>EVaArw?c$oThvlO(J{HGR z9-LepH9*jYrHDe-dXzL9Tf+7ZAM~4cY2Y86{1sBxf%14&=2GpWEwNPPYrJfYhTSM1 z?@UmNNm2nqm%P%6lDPvkY;8wuCLsDlUIe>CP(&RTlh=SZmtyrCD zMdv9K_{8Sy#67BTJmhdl%U&n->6C0bZ*ThX$3mC_k72>-)dq#zi{E9oaTrW*VlIfy zYCfKA^tmRAvGgxpBUyf0K|DFsZ{}HB6f757crJB5yX`TwRdTa|mq}tg5df-`S8nn# zZ|TvMh}4nHEAT2l2Dj`kR!^%_mp{L~|CxyzK1Znrr03^Dv>hz%PV?AwG~UVQL@@Qa%N08_!UtEQ{($Nhfw^^45_)Y z$b(3^eC!(&jpZhrD-)wY7tqBu*DgTvFdbc->*~pdd*ls6(tbCO%^zc!Fqf1-l&?Hg z9+v-OB4;7y#dY@8{V_9OR85AfAxO4WD7KhqdUa}>{b*|q|k_V6r855P;u)j)D=#Z|eE z5p~``st&aW8Np{jbrlJA*F!gME0;G;AVw!<^H^BbvH9C>+qXuq;@(Vj(wr=Hph}oQ z_}+DcaC%RF{@3VIG`omQoO)5J<`nkdj>evXUra_9eM+-&>reh=9=GkJte( z9tWgi%(CNk+n-emBmjRV*PyH~*g*u$)zuw``wB2pAy;sfb_CQ27eF)(Mj?KFT|ifL=O+Wk{b zkQ4DzjzjyndQA^V(`C!q`OKGSNvI1vB#Oe>OhUm!zrmr46=3R6#ln{{plIGsH8dR; zX)uyupFrb?D$W&QgEwq#o%aUfcp?}EM_g(eSzHn>g0G$+Xr8CL3dxTI`0w)HV+IF_ zU>8?q>vv6~H*S!9(?W=zA0Ip$aa##-k zz$zh=A!@SeQ;zlH0a$=Q4geUvh6jNu2sz8mq0A#11W@w+fLB1KYcpmK`Sw_1$;@xO z7zEn(%F^SHL^`%9T!G&MA?O$iiYfH%r}nurU;FQ%P6)V%S~ep~x~LhPJ){62$rR;wNzW+h}U0bxxkK!wR&WRUANA)YZP@ z2ms)D2CwlkwW=)P;8)4mF9PZZHZl*7v#Q2P|?0i(b9IjhCCfuRG|CJijwrU;+0P4N7e znQtv4AE90l0hK%)MymUcQpd|h)7<0(24RUl84Om)h&!;VF*$E07B>Hs8qfj|$@0|Q z#)*6wrpZ~VU%x($1>e5AC_K!-9H9<7O{nN}#{(*>CDt?y&8oBaJ~gd52%%fbVQtL^ z01JVhFsvruih!M=tB?-+&mY_xA1UxU-EDFoTWw)St61|UyLpv_w5G9V_f!8C!9G2O zzRhk?#>EIX&O*k^zX{Nu*Cp~VA7pT(wo*K4k7mLJTdb7VhM(yMy3mk3nBZ9 z{zh4(k(ego`NG@l+!aR8RR10}{6Y990nX@N5F*nQ!y#4`V&|8is?hDDFd`(f#)=EF z9j}xw_EmnJnZDa)BvAg}#i@Mp!A9>;Ack!|f9vQnUeU32o}2AT3{NEIOa~MI(cv40 zv4q7}A7<0fONQHe62j>;ed32Vw}V+~E2lPTwc!XyDs>0i7~i zId<^!M_YwYBN-ZzN(_QL{X7T|)=tMP*ClA_t&<@)$-j|BGyy$aBIt)I?X=K_)^Vdz zDrWt07nRz9>rcR(WcAX%Ge^`hLd14cnnqGeRsG#IefV*==3Y{l#leH{%Y~ z`(YNNaY+>3wUerkTpn~ z%$>X8Ox_^`4!TrJ+O@`aZo>Gg;8UHsuR0uFG#dGTinWm>{~3)Y(k|Qk1Mq3;z>s(B zEa%YsQ;{&`?;rLn@epYGqzI`++XTxEVi6YqP-ny)$!TyhkHu?lq_##5kyJW4W}g&p zgN~8Dx`AQ#%4y#ELb3N7H;j7Cu(m4Z z5JsGm$(W_l`OE0m7fNZ|0G3hov3Y#DwKbjc*H@^cUpthgZb7N~oOvpjaX$^+Je)LC zh>X+4S{#$Avltp^zM6>FnQ|?Fs;CRn>3S{t#2TQtQ=-;3=e<;?G(pD}wz%cYl_jNk zURdkQt2XNI_a)Lg(RkjR5j%7SsSPNWwQj02-30?F;68hd@6Y^R0AI})Wm6nD!eki! zSA6jMC>6ecpiIlkUz?rnQAM5R|C_Hm(xcc>c^Hu$Z5WR_Qv5^lGDFe)ZdE3%kTjYN zG$xyg!x3THhW_%9XKEt?#_SeP`iH#!jeYNE?;TSVD<2MZY_@`|I<_xN8&Dp#lr;LP zoKO`{Aenoj<#knx2Y}+x16d%BQXP?$|9ijORw1D;a>7?qaD%(bwB-G-qvWhd=Uk^S(|eC)SvIUJ`HF7$msbJKLsz!X}+{jT#G{X~2(J1{SgOBSgi&3t7B9&nO0EdZBr&M?RFbJlz7y+uqC?${Ud*VBn(F*8y>^0t5+i9k7QgHYjWpcSc+;{ zv1Y9AfmCtCeg;;l{REaVY;$Ga~E$>MnpXe?=ND4tGI&BILe@08#L}?Um8OdWz-YU6I!v3%g_G;`xl$K+AiE&U@Ih5ypA;d!y#6D+d&i@4Vm7%Dl)>zi1~(*9y52GNm5l16JJm>gd8!&E~e^{Q8CL1oGr zssIz!9LBf;DxPpZOgqLF@Mk9QIZ+x-E*@!?Ex3xhS_aU?-JDDQ1|GnE)#;}s-T1AO zVJ&ZmVbbnNGoOR^@3%PE0_EDr5nbLQT}>Tj=k#@=BK(P^+Uvq=?QTIflM>k(nI31N zKgc_UpV)z#lBZ}HaZ3u!+=!#=p{zu6&wuY9S7<(a@sQqMnD%m5OHt=p;2<1~(MJA6jv*3dCewd%vdZod`k*399o*#L&Q zPqn8fS2Jw2!y_Mda(VnJxuq+LQz!WobV0r-^ewimBI9PKU+clcvyPi3^ zIjcYNE7~CGqdCD-7)P?YFMJ8g7y#6*_FPnn#v2Xxy;@Jw(dleGxk;r6PO5c?8`PVQ zYh-9F_1DVu(ivb(Nrt<)MTJ4Jyevn??k??6-jf{}&}-#I^Iq0gp%jme2oB4Y%`ahw zy*(v+FBi!$1iEeUJ!A6)pW!-6JGd3<+-+R$Tom^Sj@`NbWZ0PR^vDx42Y17g@{7cq7=>0I@G;N_Gcvsw$49SR zUUH!Ugpu@}k?o`SvtlHeyw|r%_s6iws`uBe z5W*QKzbA3IBVFKw(9FXV&;`BG7B=!wPrlI>2kdj7MiwD7k?`gsc>s4tB8Pfz`eB&- zK2IWdD~7PMHVBO&qnQ_fNeLf+zv2c8af?UV;>%$Mf0`Z}ukQl!DS7w})*n84YaROmhI#A>2S~3w=hQMJ#UAhhrP?F9^Br8f7eR?i#8Lp=3_H0^+GHm%vPR&C#2e zglhT_?JIm}z{mE<7uK=fRgH*cf1yvMG_njnEjOPj%9ZRk%$)@{A7&R?#5$K9sra2OvQp{A@mUUHYY3=69RscLOfe;Bc{hg5CY#PdsI zicGN65zFH_>oi+nO>|81#t@S5hUx^z-P=$Hr|}sK_mgJNiNY`)rpbi(BE)S?I>P&! z?Qev)Kd|Rx0CEOq!hY}LsRxKg9h4P+2zWLf=Wj~|+nk(7MOi}8pME}M$#mt;OL61i zcjmh^0AVZQ-*00rk>^*nx;f=iEfXGFK7y!%xMp*dXI0NE_1)aMUpdA#?i;Mm_^!F2 zwOf9<9DjAE;cvg7z+vPwo>^2IOfc8^~~Esj$}#sHZDSPE8n4xa+BQW=Wp?B zmVARsJnIzw*!o_|Fur_UP)#uo{6Pvzhx1FXwjo{X^6e(?s6sz2;j#7 zxOQa70Q)zRCTe+)gbP_WVFJ56a*WCbnKwRdpi0lO7h-TI*qo?R`x;kQ?p-NJ-wsJ5 zoAS&~MRTn9B&_L_b{S2vd4Skz3Ym7T;F$^t!^Nu?7|q1~wdZT8oAmAuuqQ{SR3@5v zO*H1AYeicCJYR6A3Nl17#)hAs0aqC1v+;a7;2p&-?OZm~CoGBcCT^!@M#0Nh+Bm=X zcU&RQRrD>`w>k>b7)Bf3wM(wAfu&*8|0YT0t%FPZ{{t^T z(7)s5O)d}kU?1v0i_UiH-u}}OgpAMaiuS>`LF~BK$LR$Xryi=wTqp548RR^^I{SRF zXSqO%@VS4~qpCT-m6}W|Q?HLaueWyeibQx}BiD!(TQG$A^&l_Z)YwZcQf5-n6AJSK z+|h^MM{bg&40^ED!>QD5E*P`BclZ)IDZYXo1mRJvZm^WlT3s973-~97TloeD8FwN5 zn7kB6CCes(r|RMtWp8RtACv!%VK6i%XU|W|fZuvtM*>jQZlXk1qk-WgrVR5U}(0D5quPZyNc+BJn0~tb+>+!=&D9 zQu~H6=tx$wN6FS2Ws8hQpUG_*il{a`RIdHTt4b6WpSGu0Ns2HYDlRi7(kf5pI@8e0 zxZ!`ug0^_eK~)dAWHgVN>yxcLE0meT*s!Q`Wc&v|q%b;(ID>{$Vn+VWbv()` zNruLKNFiib>gE{C3={bNwGRPIz9Ur^!Q~&{Ga$bY)n%^bC+4WPl-)lzd#C6gD?9|R zlg2ht?9t5a!Mk09tls{4wEZuYo%cm5i}N)=9Y+5^ z%)`reY3AY)!AF8y<}(q7+59ED@WZ#2udYOyHvuC^(9DBY)Hk%`f}?Ux(!AeXLTG=P z*U}bS_uM+ow(~ue1@v}Rny{+4QEJz14|Ro4J~$Q`_;(ISH-6?A9$%nI@%FLiHr6ur zkrR}WbpeoBY$()5YsGc(_U@j|4tJFbv|4t!%_DGU1;}lnnY*99(l;(jr}^$@!R)Xk z;C7eSBU3S^i$*At9WTvk9$Y-L^uT{R;FXr0Hz6G0I>YeRp49O><9^*-9cWr+k74Do ze088<@7~7JHblcjZCffyZR89kNNrU?nA`^QyUX$i`7y$H@f%K$)mbw>!Gh#eZNwEj z*0m(ODq?+>P;!Aa9S06L><2@HQkGThLN-y3}CK5$1B8;ksSrFzF4mqE#{I^*plk_=TK z=r>(G{YL6CDnlwo()kCpU0@Im(S=?w#GW-3=?pbOhQv)E#EtvFSYOGKpLOPo+xO~q zxOoiGP4norWrzyaB^LiYtDaZT&OG7|TXs2ATy-M6p673$?@finMSXv09S8((1%Y`* z*dAH>`MF-sAw*i8^-m}p1D>0xeHz>utQBT@McIdg#{p3y0}VwXXk~TB0I52ea~Z8L zK6q=Zm`rM^(f!qf;F|A(`rJ6rbTM@O3emxmp_+&HqY^fLWAhL$o943^gBs(wFWVXN zI+*h&O8u`GS-O#2q>g{=?mp*1P8{~u2KiW7v4biBxoCy;1rn_ zIB|}%gPNcd7mc6xG>d!g#RBwI9fxg9^ibH!G1umab7MR+6rxzUKqc~CHNpBpt+foK zPX_U`1@l6~ScLwc4-UTM7~cjkE(S|~31eQo%crTi-V_fneMf(EO)uS4NTh4Ry2p_A zYFU{@zJ?hK+gy4t0oj*;IH#(_N!xV0dzZTDoeUMiK_H(Rb}_7-(`BN>^)~E21SBUm z+6PsT?z$`8H+)12rlNs%S#1ofE2oZ0yLOnTZA=l686PaNE$a!9*i*q=*rq+nBm<3? zhoN{g8QTqQEGmDSCmZ%qaa@3DnEUj>zDn4@OPDmiA;a5iKkkG$g(n#0xEO-)se3mE z_jgzJ9l5Ipv=jMGDK9~xLvq(-Cd+Ow1T61Wf?JA`a^eld=#8nFS_7)AZY~!YQac0L z)r&FeHYdqr7Hm=-;hT&y+^*S9*L=6^n?LsRDO3{BDZzhje;X$>bT~G@7O4>UFvrH@ zYJwa}p9N=L*fq&Fn%7iKm+r5Zp$c=|ygcyLdlW?WKBwd7lF{Qe!ihuqsvVT)qD)|M z6pohi&$0(}l4EmfXF;#p73Io38|m}v{m3n8)OI6TmtN>I| zS!S6g2{}DdZ3X&|IxTEl4~CFMU1v5r$mrEeYui98Hb!i9NQrfv1g8lXA?}%^2g1UO zno!`>751QY$&(TLlxcALMIJV60s~YpS5``4UhIEd&V#9`O<3`!6_v#vxv@R8K|=U&sx$}#w8ZM}%SIW`cF zFHe4eL-;x*0Xw_jy?y8j-Tw!j}Hgyn!S|o-Fj?^ zJSiq!l9l#Ze8_m;EK^aLI;dRp`agxz3m+Bz6n9^@4N0-HJZkRciJT2$?>GLWl!R?c zjBOu-9CQOs^4Sj{mLQZkp_AB*8%5?Q&AzKe%DO9ZwfoZ4TxPxl$}yS361zyyUC)1Q zZjh*}-?Q|u_q@>_FxMCo+eh<$y&$_=Vs-gBw_>vsF`wY!cwIvCT6;dkY1Sd|t}kUk zJt9UkPf<#b-2w^p?E$|cz3o$2W1_|L0YgCY=qze|8YOt}>_Mw`}FEFN%{mgPscT!R%x*yeFU5I~!-qeL= zF$$t=`iab-b;HKddZ{3vHr2j=r>t}^`9{^*UeU)bm|Fbp6dyW48UG;Vfo6I5i>MhP zuuR!oBAGy2BD?qHH0hWrhm+NOrhxhN#bq-4ojxVXw|WdCf^%>F){f4dCSW>NRe_hA z(S`jBSpXZK+!UN<=m<(C4Xb~*CTSws;RNLzi8MFIu5whvRl-0=Qa{QDY9boD*5m6S zd^tGFo}Zh&#)bfGP8T;BExSA*-==Wg!?ifI$pYp6MW~~s^Fc-Oq9r+ z^9c$LocA!NO!TokbM>3qAzbIiEgiGP){6?!FHzz&Ggul_jHrlQ8XwW=)L79N+9mr! zEhNLYoERIGMlKyYa_APY}fy&OlV~9fgn;t z#l4j9@RSK{?GaZuwTOkx+B`*O7HzS?VS7k;lDk8j>|1=7Clh~=pTIc*dQRwaaFCtTF@D^LtDy@W@t5CZ}F{Bce<_o{+2xU=p z6Yz-JG!lDR-zdR{o&_cG3ueOGjGy{d%=_9bQC9jGNC#cU96{{45Fl-ZI8LsS(sGvQIDJpg>lnb zewm>_s#BS>oIWQEC$5rkfo<8_2nLDL&-83O z?yljCoB?w^^L9zm{uCe{w498y*0{Nw|BQcYBwl|(U)ut~*%Xz8&T0QLg8phstVOgH zNS+p{WC8kyX=A)HNaQ?s{_XB+wUA)gYSf2_3(bJJ0pFO0lr4IVFh^XU%}T-5U-`D4 zsE>0F1=)8@+KVRO!{}F@tiq%TCav=N*8OD;Da7?wkUAn&T@dE2lR#;#k3I7S+LS(J zX?$3Fy4JHj_bK(E8VRe5s<6%Fk8XteZ6B3Fgd+ z8=z{H2e_c(fT7K@b9dsT1z;4qrr%T|4laL}d?w$>I;OY+esu|2f0lkW@6DK*Y1kE^ zJF-~rjxSIxXDZyp&v{GLH2-(XQu44Ru)i>g@0!Z-2<~8ho;Q(TGn{IKrFdVu-{vnJ zLaBx|=Fo@br2rHU(j9~YiGq)xOga#rN{L$rDA>jmDY7p+oPf{+;A3YRjmS1qq0)c; zZpm>5fXn8i!!C_y7VfB@K~kQ}T%9(U$)?=Td+D#qaVUhS5DM}!$+Ql5qlHc}DMDri zV6co`axjS_6zXi2$}i`8r0%q5fpBsrO1YNJ__G4C-j5BT*~YEg;amUQt7X;p3{~Dc>y;W|Y|%A{ zKpJ>J&GpB45>zh@B~$&hZHu*o>+|i*b+08^F1Ih7cKd5ee^(fDCXCZFe}pR+CYjHXiIF#WuDYCJEn#Co zQaLsN>$UktvE&bW=jWVK75{qeI2yMrZaK;nL3Grf0B?yH_1nWV^f(+`c>sQSf(kwn8F_ucr>Zb= z;ZC2~Sn@z}eQc4fkcG)!z&bA;f2RC~CQYd#T zLfCN37_+4I@g*Uqi`ZaSz_@FZyocEci!1Blj064z$xg$sXPnEze`G=27# zj3S+zS|E9w_j{(RBocIzRhC;L{kTOG)jk=4vXk4aZUnCgGjUdNtHj7BkNI1JAn+R* zLC+-A{VA@$a(0ctD5WjLB+Tw_Iy(t%2MmvRXL=+C?6GvvVIw+`>pSTknDc(3sM%0! zc_>2Rm_6nWI(6oR++%-8m=)HG8>Nfy^wC0Uk=pxtA+eM71K8W$-}Q`Q&ais+^pfI6 zW8jLwQrdyolM{QlYBUo3Vo9E(YP&&#K?<-B%io^uBj9ix6+0tFZeD;iy zSxAR1iZ2v2spTQEw@X8ICL+h35p>*HAu%R!6PRnHB|A`eFgJgFn*hCnfhn#_Vj_t; z$IHFWIjA;;it*zzgX@Yt5>Lz1SGFGE$b01PY(tK9@$!Rj8$4!e4tAK|=wSaZ3WoXp zn1%ai-N3h@Fks*OlkyGc46pcA?mj?RDj=9yfftR462)1h%nuobWoPlb)n#1Gg0$Wc zm;0o8+z7m%{}q323o-Pbur@E1dbw|$-7|^vMMXgSGKY&Afsc<;8tv7h*DBG7{vLoh zNo0BctsZ80^O6V?>cW8l)*y2nvma{j29?rB5iFHM#NLy->iWT*>ezALvu&U`G3 z3(o)AHksKTu=b&SB@PRvozmt+-B9(Pye7Eh;H0D*j3JnyI}7vsga`nVI6EbPkS;Be zCwv-f{&l;BjW%-oU)k4bs1oitnTm*vzD$*H$>%38jCQ%2XlqXkBtt6FMBd3HFWc_F zw`5bs^`L*@Qw|dG!?9z9fuUk2;lp0h_0cIyxeqluk}0pH^6pqHyDn|&ux%YLalPGS z^;C{hi(f1d1M6{ZI7za$KrXc)^Kr8GPgC-ugCpQM6d`8ZL>+`ucrHY%h=S6>_bE>b%4;gE68Ib@n>$Xvma30^) zyQ0uOyNASt`AnMCl`7@n;3Y< zUtIiLIr%1_#$Vf5iY8MZWQZxadx4bsVp;g0en7J&Ug+N>Ge)!y-RFEp_}aZg0>!=& z$Mq^d3#D4MErmg3(Hhcd5~xS=I3U-KfSG^m-ytMd5Ehmr*lJ^>I%1We_=+Je z#K3k6w8zoD1~jPxv!~np-X7ERd0KAxx2#^D$89er^G3=eXhy{VFyU>zoR6nyHX46F zJ3Xm}X@qaT4k7;WBy*4J)2HnT$4ZnwF?HNaNd|<#$cHZ z@s?08?*~B#e*1#xsUct-PDdcoQ3a|qPfs?P<)rlz)_Ly$?RQ^GgtG#GmFguO3%JT5 z19KM%F$o^K%iqUn5+tW6Dj_-}4X%giWB8RV%#d@wn{Wz^__?+n0LggqPDhh18xT85~s$CFw!A3d7bfUqJgx;UEYFf-E-Tm)Ld0 zd>AADP*XkPAR( zw4}p?hg=3Y09t~)bMru)jIni@Ic>KDB*x|`L(Iln)lm2-5<}4CR%8fMg*UN zg2#yVkyXB?F;H)8&&~GLyLK{=M+Wa|4k8^O^s;^$gk*rek_$N>D&cANH0%Gl220mm zdXjE~s{pQi`hL6#H{_+8mC3a>L1lm@Ba^o8-um#>w9r+&24sK5IGcgJ>UmVB5t>v%jA>|3*O?#}$56xkKa!~|Qf%PTAlU%QE@cJ;c(s(Q~IGadrX?-KOC#?g9$j+n!N zRckWY!^U2$L!fDuv6>p>ir+DVV=>4Cjo`SH82kH=>_WZ6E(-U5sn%M4;zd$`zTI4+ zV$!2ooS=VbBRQCF29g4h<(ijFlUw1k|5G6^H^k?WQ)k3xR7Vn$!%J4~CF$7he+tno z-uGT7wy@P#E%Khhe4Pnh0vDhVf2pXV7cqWcR6WvBucHw z7W>pDTFLZPCV1LE^b-AwZ*nf*5T_9(3i8LGU>q}F0l2cGV^)u6BNGa0BRV7_9LA|Y z+t$>4QqRQxr$eG%axIUpI6@a&s51*k{|A2~m|p7{LJaPXYn;e3*4URMxJSeNduut8-y0F_|8#%}$t>&M-U`}-1ODVSf2^y15)ixc{8|C* z8DU^cuDB5BknwQ_cJs*eJPdZ1IJib^zNRtg{f_LoCh}nJG_=Bn*6jZa4A-h!=|z9u zMvgOdS{q@)kkuMUvnM~D3_lf<@6 z80m?BVk!7)ps>G#v&T78DM5dZ5r}juAHPX&vaAP{b~V2K;pYscOpr7$25b>iOM^oY zo56Xpf;&;Ao24k!6IQjU|3IYsc2wzdUILKfWYuuwhjLKn3{qPmTz~}I(7f`GdlkV= z_?7}d**)s~2Io+R)RPHRws3$2o&s&4H6;tRJ7--2hPLj82+=n;F^+$%U38?{k;hAp z4r|yXQQp>CPvoy5oVB$PJ0KnIMp+cj@YD)*{HCa>*`e&IKx>^`x}sGY!ZajWC`)dD z^tp#>oD6rmXt6`Z`A&Ol#m;#m60au0A%;d4W><`|JF7%!$YCGqQ6EKTn*utd(K*fD zrUKAWy&VC*aaU`?QQv=_W=i@xZVwU0q+b)qnzMbWtKPjoyfuWoRsQ+R`seuRnfxX1 zAET?r(EMA$vyd0YJuR!d@(Lc`VI~f^NV;GxhI0=4Hm-yV-;6u(e^A3w&9#-4_uL@J zqsu4A(6g%j4yvl8K5Hoq8G+f|ShK*9X90_C2ig1|6~OWj>so*4vJR&|Fbuw)Vag2Z z>bwydlap>VHQ|&Wk0E+r7&cfTM(|y!$6RL!4Jbp@N;M*J7#Jyx%wd!T6ya z$7Mt$UR1}T3&4Llj~1oVX0}arwhA(`9Q-Qb=C55Dhi&0*YA7nvcjv=G^Dj`^;B#!2 zqWJW?k(H{ipJNX1(HJ5)p{7L&NkN%QM#CSev%7$>Spbjc zv$v&83M%|^$-SC)goK@a$~8%Mn7S8akoepD!cEU<-g z#Lwbcn5r^c504`#j_PUE_#iPyrPp>VbP2x-_Rh zbe?12^~vYmRoF8gT*H=wbTjYy#TOa(ti7IJb$5P^kvh}$dOVvCW3cs4=QIYiX8Jj7 z&qe)ykeGjeRg5|tHfa)gD-5#uB1LX!uqHFLzm)$nv%nm@Y<@j1^Mj?pWP_*vN$C+Q z;G5|Gk^YK*Q2zAA!%ACrr&KA{9~4IMW>wRq!0TP0E7FC+eq!RTMA-eq>J}DjS*Hv{ zI_#d3X<`E@*RWE_Frs_#KAeEZVVfC?#CY<^p~ZihoPp(MwXDVWnd^thQdwBuFM+k% zcJ!>Qo_}>{er}E>%d$OhzB$KRAPEXCvw**Td7ZF$Gf)58H%H=Io9=>eo+&s>=x3k7D*G?ttP>u&LnT!ZOKe;c7@LY6FdQ(aRw={osw2ZlN$kZW61bAWu6`#DsfK( zp+SF=P)NXFv<@_sn29mPz`@E8Hf`qKZG}C)6-?lzQ9W10%fAr`JAOhG(>be-vIc{1 z7#>Z07y{0G-i=ky8Hob|{Z~HG@stlKDfS54oHXptvPt!FmYNJ(Nv9Zbs9lE7u|%vH z^NqhlON+#c==g*k#QL=r24j)S(W1@8bD)1*+lXpdnU}0M#}%hDPKGman!2Sud%CC$iCKN#XgZ>_=X zcaN19G<%cfC0L(Bp;wf|4}_^$JhZIuAs`ja1MvES2(+d6CLwjA&mI#fj``A|$TffD zdQ`l$VNJw7WV%8FKJH!kn9c6ga4;E)NVOo@mFPsDOZ(SQRb zd&dk7-Q@XX)h=QDY4bkZXKO2QVFs;2ZVawZ5>Zw%CylTEWc_*lt#h8qELNvK`gnMu zqd(;Z`W;g63y8))4i++{CzRJnUe14t7>jK?Kt*jn+kPzCl;0}A`2u+iv5_QRdCdhn zkD_Fuh1>cd4EK;mw{HIm!c!`aPZd=ROPlY1137w^*%Vu9AI&zC5e{=-WF-)Mb$zU) zaw9Rd zSAEOKCC?8(1yyn0PlHAlRxlnYStaTZEoLzSAX+YtUYJ683#>x&D&DI@; zO7Yros>RlVo#9E3JurGB-j{!@u3&U0lYazg3SDl<2VdHI6o!N$2M1&=R|>M7Mn6}eiH9^ zS`ZkSQvdq=VDz3WIw1zJD+=R#1~G7jYDjyeq_xz26+1{H-he1Ha0ojfM%Z3QdJR>W zyQ`+Jr90BZVp{Cq&uC-4rgusFBSiU(mc=6($eLbP|Ihrlg3A;J>aE zkFjZrNM`-D+wdCFub(m@SoXK15B>3LBwt%sioAKzvh5-C3Z#GKAU^uh#f#YkrrUIP zSgTYFbMg$onHD~GbzG4dm->GxFLtO>rV9g4brB{g2G4qHT8R9K&jx9!iU1o4?2hfo z9#YF`eg&en^3&8UwW4QEs*V)tFNa**&K6-n^a*9elX; zd?|78==d}Xwr+pORzbIOm|z=TWk;@;x4V-JaMb;#!4KhSQXD8Em5w53yiR#ru(+F1 z+NW#OR7zU`mH=r7H+!(hWsd5vL2sCAw|Z2g-5BV})w{wC!637T%Zd%CosjqX2x73X zYg}{(rgT{>l{?j`%UqqN-g=$la()eoT9mjVX~6p`IJ|#ZV*m(x)T;uoL{x2wM9Ld1 z+mhKU+bmPIlo7rT{9{`!OFMsy{Aq6_w;^9fL-^Ay1m^a=Q-*hH*{~Gnq0g~vJ{kpr ze8QL;UG$i|i?)Aa{LiC6P7<=CYtv(;ukQbdRD0of!oY7eB%%SG3Y|;UQ==SK$??gk zz9)0k;IMzd35M_iVmu4#k*Ik3R(@XGqU-2X018rDF!c&9xTWoP?XeQPbE zzUVF!K^&131CXDDt*=d}xxokd1`j9xeZ-|aPXk@Y7b zXXV%e6G;>}X`}NwHET;5Bv_uc|L!~bH}{4>~{#1Iiv1ue*RGAm9{+U zJ2~_+5|;s*{9o zngPU`#H##a^wm^Mm7TYtv~E5)Q)-9vc;9BrTF(UZ@c8;*yM90S4Whv=v|`oHgX4g59mt6Zf}LE zVb{B%rY^-@JDni>+c9LNLIQl&Crt7ucLEA{*|1thifB4Cf^nOfS*J{cW&*>-yO}<+ zZI7=OHvG@NR{r!-S3J(~-gk9)t(Bg*d7po6kL&XUi=8CyUIEAO=oI@2^b~ZJB^G3v zq8yV_r*thb0$qi!bWyVZ|7*gkCstdDE2DzlYmugoa)4t8>P5dy=|&-h)>K7BwTOTN zU&Fcub?OC0I1wFq7eF4OaW?EsvxM-b|0j*`!kx8fW#~T&;iS zo3B7mRBC8s@;QYbOW#wZfv_fy{z)RzSrDb~d<-UL%onR+;OeETvdbxXZ`CqUaZ%hY zxyH0yn`bJ^5>LL?Sde}PJi;q+>Pv%0TF`pv4LJff_v`GS!uA&X2{nrgd{{e=d0a&^ zo&<%b7^vykZ1P=uJL}H7J$o-wfqH*}d(V~UhzNqo*HjnIp(Lv-zJ-*zO4qBzNy6X~ z!ZnEH0hLo=zUCUNfV=xMV~7DOPq7DSL5hll1%xSik*Jk_sfkc@o-vSBO41YOAw`c#JHsF;3>PG^bYK}^4X{q`n-N5(_WgH$wZi|1QX1$>6 z)1K)3sZE&K+!lhGqW)QeRqPPhD%6>ZVZ2hS%X2Ai-#{9GLNc7C%`*Tx)J3C4wFPX% zJb^Lmy&zasx}86dlc07N``B`KC9$MSA>p!K-l^Nw1>x$P&cLvVP1{J5L{jG@QCUg| zdBr{zl_N%)ydM{Zj6 zE&Mpw*{t_Om(9n1y$lW_kiZ!;roA(1k4u}B+yGK zO}JftJ+^Fq^9@2Z20Z%(HZnp4i!B>kXUx)0K>f@WnO|r|wqpGk^u3nN@MyoHboPUB zCzs|-t(-!0YQCAQ)cd#i$Urw{Ypv<2WZ;`@l~Q_vShK%9kWPQ%;PB;rK;7tA*7{yu0pge2Vi>&Tn$_E2lqv@tmN|_<;uzVu zXtxMl5l1Un)Okc${$!;C_X4T7lC$j0M(yZ}M?RC^WzbL1J_7D;ItkqQ3H!>GgYt4s zus(F(gctV37F8IXq03I83L22pI%*Tp0;CC2z_65?=whJjTl0R8Yx#y() zLc5FPzJgrys#&d^b^;~OFW?vTDw8>oqLM4t$FB}~)ZNS*BYM^mjv z`Y3UMw&RzflV>kMju*(}5#UyWhj5%0DB*LzUY8a-l8j&?_L3^LHQ)5OTRt1pm`YyH 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

4Gq=R*5 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 aggJD*UMd`rC<(?=k`72n+VLM4^#1`SJZB{U delta 235214 zcmZ6SLy#^^(52gU-?nYrwr$(D?S9*~Z`-zQ+qP|UzJFpi|K#$Cs>R93#i`YAT=B6AbOy=fBCd^!1Tr9@?yyl#o%p7dyW=0&Q>_$vRtY&OnoMy~S z=8SAyT+Cc%MoCA&q)HIv7(v7ELPcFn;Y%tI3Dg&a3op>&rYoRH9hRhpA~fOI$&l#t zkO{PgT7GqOS&&%in7L7dINnB8+ z0M`Fe&dkh3$RKNGZ{cD|$jtaZVqu(JoXm{uU_7!+3=Iv94focD`#?->Es)IpK^QYb z0?@`x-}?%Hir_NvR2>+9cghFO*`mf<`(J=15C$K?jk#sv;o;zPsral^L@GYSaJ6&&oS(sZ7dB_4-~)a$(oB84i>z;A#kmbIhXMIefcg}hn&Z#{41&J3j7#N z45)u&i8nVljL!iE%D0zMNt%V;12D7vFHs>Hld(q~@Y}N*OZ4=4llPwqYUWP2V9?Cz zV3wp&@(il@P`GyY#hb}-*+2l{WT0+a`=x48pPNU3X z8{K4d6J7&%4XjT_o7G~T?E4O9ng5c(sa5WB0tb@C0E3s}WKsAVHB6M(>X4mUgsYe? z$MQ}5iK7l{frF_p0DpbNqve!NWT7kev1zRv?Tcc&AXUizr^{hs>}F9iMpWQH&6V{N zo+OdeDhlw*uA6s4fsVVt9QT+Aw%H~X$nw*CwiiI`+xe zh9=-F3{l^(-kl=Oy2sx=cKthdWBEMN9Y$NTW55H^pUc-dwdXN*a8pnw`eJix;dqDr zN<04W*Y5FTqbWRzbsO)2*}g(KSO7n}wPG`JiU=Ur*f!4M1TOnUA{fu9{lXs>bbw(}{ttoH;A^Mhnas zfJTu1-o~9aLU9>y zXn1ncm#x)VslMQRMyj&Pi6T6- zDZ3qXR0&-JNkY=8y5^X7wI!hj=MM(G%T;$ltFpCewLKTbf(pPL?PPgRp!8Vd@5N68 zSyw_ldNUS{HJm|HG3&U8=_R1Z2Ti^lm7w1HbI;F!hR#GKt9f*;5~oIZhx6Cn!2)_W zVa}_vXgfTeCOz^i58X>b4m{#$Ig_P6O@5Ff8sdAx3%L|bF|Na-dL*DLY=Lf><%liB z)5EKRBFv;1aL$pVG$iI~OMV9s)xV>m@1w(T z{p27(Ru7NhP&Ab~_j!woK^N+M*{#;8KHK<~iZ#w>IQh zaxfio&LRQj)IHS|$jj%vma{EEUNn_$@j|{57XfS@UzE%DnI_u!d|K6F(SXQ!r|vRb zbGCLuax)mwW!Fa(m_Bp+UIt`O;AhEOa4Zy=K`PV>X-}mP;L`BTBJr?^IcyPcnb)Oo z#p)8@Slfo96IO0IJd0Dc$!aO`E&NPY#E1Ke{YlvnEFx8o`KtBiGY>5^(nW|M?Xf1l zj94`ak*&L>OZ@FKc@WUuKL9X*m7N+Ya^E~*4l)_Ftd%HQ7(x|3RIVD0;=rm3&i+y# zgcwN-F0{uX1~o?86!?f%kE$&c8eW=_Qh;UIO{(|TNAr7lAUkxxfN<3%dd3)Khn+MP zSQk*QKikOS*<$4!88p>;TcP0E?gqYH=iG9$?X&yzt)5+}c3SehBLIp$sm9^cb(w}_ zL`g1S$m$XtK`vllS%uAXX(9XoMCu97(#3+Vh!F$>O2>2d6tGy1DCRlHVaE1VQ9~Cz zkgYMHbQ%yx1K9VkHh>~LSeq+C`B0B=8>z#r9Ge%-I!6*4*i2s((dvV88+?5gT`V3N z%l%il3#_LlSi*M}nP%@vvCkS9Sv*c@lf@e?OSwj<_yOyL_iC(B2yL2x6@D!N`Imya z3@!fYSBThk(#6SW&)eqcgV7B&-i=6cHcO~stgV@c%U3c<0wC;o077)B7 z9H61#zTg+c)I8;Fi&)Md5xh3UY>!Mh5dgE)Ybb02tBAo-{~fO$Hzchee>=Kd8Azds z-#~gti6gl>FV|wZX|5;)oC5vBj8X=~gqc19vAC$r+BFP0qTf4V4dpvpAn%|R#pE}w z4W-K3氍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

npG7S!qn${GzoqXaWQ@Y`$_Auw%%5k4s z>DBe$Fsse(QCACmSGo!h4)l_Y*;VaVya8{j+|WI3Wg0Yn;vP(BFg%RDvtkBIKE_NY z`J#jRFW+L?BLg1aB0&K8koY(%EJ~-^DLf+ zpDyeG@Q}^mJeyk>=*uQo>itonA2Jd<0wZEmabeCq)j%Ut=@iWeCz z)82+g8;^ymZc@8ySJJ(Mxdl^oXOuafAU_C}FRPQX`RmF?X-5k|82Q`z zm8U))j`=AAzoNF&I*4o#o6B6ad>j$(f+vD9h}!)%p?K^`nG?a|GUJA)47@s{txrb1zXfJF3pIxgAe&vZ6@}?d z_HCX1W-?oBBkjM#t!x8$0$v^LIEXiWs6j1n<8EuEtQJ8?RdRb~@P(V_1_()D@4>E6 zY;6W4gj-K)xxBT-O|08E?~|EO?DFA2*#}WKv~VGUT1wTt3mbO{U}Jjgr5<{ge>nQ+ z5@@c0iO7nHwW_AE?>YA0y2Ux&v`+W@eMHUR2 zDgP^+3n^^EuK5Mb*&{UO3+K7ylhc){T31nhq#U)cd%EY2svfs>u(=$^ZAU`Y26qfv z;(WW4qpV(J8~6Sk5#{PXbhX55s%BVR7?k0b_5 z9Y6OFFW2?5V^ox&SjZm3X21(OS9IeWEN$o|yj#EVRMpES>FPbX%l(>vB1U({7tgND z9w6>{F;{GqFLHw_e%#BQQ85MXoY@OyHh4=Pfi4?OLqC%rwIwQki0gLtwK%NEE)HW( zBg5q5Mn)<(uSH*p%#4gr}}UmdCWi>(I&fnf}=6Br6F_q{n()87hVuD*v>1=m7lin{DtF3l$*1V&vn0y@yxso zY-b!p!=-`-LwfTBuc{Nar@3?n@3PH z{zIbEJ6D%xaz}Fv3L9+?Z}g~kzGr0Mwa=yajiag6tqhSpHFQNA<5z8}7Pktc*9^lS za9F*DE6KokLoZ(G*=+ti*UKieIqqDoNj;1p20x9DO6L&s-CizHQP2~y<(!mNPFx=} zD(URD^=UBdxs;~&_l=G6J~0W&aq$)FSFczPh_t&_dWbW>Z^`_c=?zaYVPZQf1!xMj z!nyGc3R!<}azZj?d>)YG`|X7UjH`0dLtpQRTR+}X2T!W#qwJ6`Fu%F+Of|vXQ)XqR z)c8S}WdoO9XGT>I0nHv|{2Pt#Ny)Eo2FbSfYdB!%?orf7(cxKf$Ei72ND5s=1f!}$ zhc||ca;Iuu!=0}hCLf)T=}*(sp zeyi3P8o{_+hRm?SfO!s&(xhI2NG(k_cdNV^%xvCeOEKFp=or&Eclcd;5#cZM ztx`|jF74F$(7G-M)u)RrYX9r1*G9Vo{BDLXJ5iSpSgm93(^6@;A+vay)eg#9G<79f zg>E%lG#gol*ER>M{MNhpcwF#CYt+$-zLUKrQ=F;%ImYh$f*<$ZJ#**E9FMN5daKQt zx=5Dc=g`$f8D7ezQ6p)arEQ;|QL}yjy737kRJxes)OWMU&i;j%odv84L24ih@)SZ! z5n3;`-X0VP|0+)qQFt)ZXZnq@8ZiWy`zGs_7tpI*jj*r8_nG>Aw&CgD=yOA`wZ$fF zxgYNXvQbm#6~vyr8yhs*c`HWwa&B&6xI#8VK<%Rsv0>h>w5k*Ups@Oy(O0W89p5HC zvOZbx0$T;oN!nTfWl`0+gX7R(kJv+fc~dU z7roo{w|?tlsSyMM(29`A86p8xPLQ;Is23U}y5Lzq&u6#RuQyhx-0M2n`f7I!aVESh>R@Q?vcbr^D{I0F z!ydshNIEx&$$@+Q!v(htXIXChzIK1@Stp@udp#Nz^$FV%{@YA$61_950`)e-bat7m zUG|O_9`3#CPmM-erEirG8QzIY`s|zaZP#%vC)v!(%~JkhOvAzQTSB zJ1G3e4%+h4+E+{MAd6-UgTiv2iqE+Z+ZvJptjd(=(u>HH|TksSJW; zpa#sg#m&O8EmX7;L~g-jZ3fU0$0s2S>=aP+X#(3$S(|LY%;AOOA{bnExFNF=@izb% zC^W6-aAIPu|EYxCqNyXiBcRPXj>2{WDo1?-VLY5L2O$Wvq+Yzha|>^xls%Vb7@1ZuPwrr-Rx-HsfuNciK0u zDhJq~2E&2zt9RV^*5PS(+Q(77w0ycqAQdm+;HSei9Q4!nz~0-sZug(0KE;J;ii;l4 zw3X+O4c(o0Ym{>A!@~sV*hBGCudj)f*qzh<_LtXWe!`iv+mPGMM6X)9el-0inHri~ zFYH)zh`LbYV~Df?g+2q^Qo)1PAGK2sUt#Qa=0xj2wt=|CG$ubfBH#}i6C34gvA~{k zZ-EDc!^I9jIe;eQg`pgd5U8cDPE7`-Y)BtA1|c}v7K)=^B0XGxw@)UBZs1a{zdjQh zawmlW62I=At8CruLC}|Xtkhck`cHCtY3Pq~4sp8gtr{^n(T-@2OaI|2R^Q3KN@gH7 zB)(AsZJ2KssGKq7`F(l0X6{iBs>T_lUrsofed7J`DQ_r_Z|`6Y;uY2;|BHx;#YfS5 zzM>+*1L(YxE-gMM)6(r1GQS^QpB1)t`AEk1q&*?fN>%66G92S01{=NK&D>3@NzlCw z{~Y1p`unFbzKs6#(>(6)jdJ>h^;?x7Vo_nf;vZgEx`r)Fu#c|!4V6O(C2+t|N<;{d z933ExrS?4J4G?VT=D23$G=h*p#@NgwjuR=(m~YCTEFnD1XbcE%fvv$F7YJrvi6bR} zflJxG)LRb<33P7^q(K1}Cn0Gw#kO8B%)ZB5%=QAfE59bvxxWD5X#=*>1RvSN*mhqp zZQ|GHnmqCK>r^pn%c=|4Cmz({_|XNVPWaT1{3MhS?)0kex<#KK45UsnizW8hxe24ahCvxCKAK$>SVu5aDcTmitl*YDp>MfQ`i;4jChx93wys~{ zb)mue(9ZkV!PRfpTifWV|x}zVgW3!QeOX${ggJ&{)(}lyf$6PJ!`@*i` zJCzi#_Npwqy3gobAbsfTuFEGbE9>@O9NK67A~jSv6YHYU?4$;?+Kok2l--GiB4&r# zJmW<7YuuIU;nAd`vYO_so!hCWt`c4uJeOoMdAugu^maurchRN9yGk#|5Vs#}Z7ya1 zaejKu#m?0wx_97jFABRm+oI&#@J@+=Vw!`xb7mjat>CRSlnX zDBh~qFeG{b8G;CapW}Qc6Br($Zt^tUbk_!qNyQ7#VDUEx?tL3M-}?TC`E{4h9Udp*p0iJi@HJWk_6vZR|Xw$OrZFxRqR-BiwK0rky+ zl7?OKYxeOlW_6fZeVPOi_}gXxI3DaL|I)oJE^qB;ZyiC+`rIeUvJc*l=Is%?^<~$= zk+l3sm)%v8e;xAJGM(VD@;c(LC_~Zu^OU24ceZb}3C~a`v+H(PAii}X4XzB-DaI;w zZM3K;S|eO@BH3fIXygWD4k^Gy;pO+jgH})6?h~J!TzhZ{^KnZR9$0gHAJ7vBjt&}0 zSx!EbO+Q$da-ZPLO3wwXYFi(6hKQt7LXJ?zP#PLFuWg2t@g zBzdjjuh@gL9EWaunJx91%pU)r4ifMcc{qfb4${x*Z>^K1=0SltXR&VmfCPzpn!T9z z{__%M@4-RPX``LM9y<-AcoRvdb^_sK>^m&L7|ol_!I3eA?gaJ~2*d|2G+@Ah3DSpN z<3y-qu11_e!-7BUy?>T=G@4)ZMw%^0(K0wI{c{OkZ5N+^;QQEJq;t1BlY(i%a~-Z5 z)=*AoJMBp5&2Kk-i+l3$v3vBso4#s}BdV#67ix+r(h;u<#6^a~)|#fI@|zyA&Xl~9 zRch4uZC#d>*W5|ZI49nyT1^dKB+|_W=C)bFs2T3H8X3Z$?`~1|yml}tF(bG&;*78I z(;a7gM#>}{Q%k9^JBjzGSq-xDFr|~W{Y#uIttEqsKQfF?43-58bu_>KfTrXcC~J7qn3tK-;mYESVJ-=r z+7zjfpQw|(x@TY)U+;^AKYTB{^Y$guO70DXCC)=jVZ$f|Z_*vs62*+N*#pBPcSw z+s2t3i>Zwue;?^qeJEsc!rX+t>zqYP=C-zuuD$oenmeBF8a~2qwEv+PT3NisL?&(K z3+0Q_vayHz8syPaMmPJnQO7hdDMXZRE|EtI=eX_NnQ`pUP`KrgW8b#RlK1XKUudx% z`XO^HZ+v}2Z|r5&oM+WXuM*uOFNd9NzIb%<`>6WY(G3oVblIrK*!b=fDnu?1w8@@3 zGqCCN=ygq$HRL}1!Z_ky>pStDt1|9tu(9<}JojrC}Z|w{5nEWEu}T{S>(? zWOHOA&sjGE1FpLv{6S>54h-)p?$!HS#YLd>@Rd_i_ROO*eyF4DOKdLq4U&&|3x-uU8lV6jf;rz> z9v23PX$*;*S+<# zlEAtlwqfQ-^b7-wEzA{&VKv}y1!2m?kBKON8vbrXmr{^--|^TKUQLFHnDc;T)GpMY zcu|{! znbN+dKm9ssn*DkHB62{Q-uyTJIS3gD|B3oMJTUaq#>v@OkPzRDApg@%6`Ah*2Cl+E zUVohgN$T7}-M|WHtRjeuCteEWfg(%8g+OCs3DnH;X?&~m?hGLmzgjl;#AKrm*X}7D z7<)}{s(LEeCOUWxR)c%Vt6Ru7A9&v0%BCmHk|eVhYQig;Up=4Qy+zI*dXIq@;_;(p z@GG_(2B7%Jx>pDzj0lSYz+zE$Q)EIw$yj)~SU|ChRd=P&6M?{CBSFherQ1}7R?`L) zl5tso;e6~ea!=48-nuMFnE?pj9cl(rarTB|0=MBNja<0PXKAaG-H5X%inZ1{_*%b! zFErhAn0HhRS^nF4aQ?sRksR&;0S(H?@$ZeCIQ4H$MI!W{bGBfIV07K!XwU|`=>M-; zDJ*VezAcz!Smc>>t?Aj%JJLHHR`s@V*f5Hn3FN;hZ3C{uN_FD0l#}cgEM=gD;AQZ| zCHF~L(MxE`jhYG(WkrV4Gtf>lK%Y=Ry#oP)oO9!tL+QBTu{V%n)65e3M-;whCUAQ) zQG*n45%gf4BtAKy ze>Wit|1&TAPtNV}KhO*^N-(1B{}p8yXUN-S9na-4X z0UA+pA-}~eg1I9UvHsTHtyVNGPt8nH%FaX?N3dm2>jTzvF61EhrxDC{C^QWCe)ek# zjf`)NjDx-px1!S-p0i$+DgDLkYookjkI6%Z>CAYMC%~G9_IW|l0vuD42X3X1AE40E z7^lC0{N%iwjZK6%D<8*;_$1Wp`sJ@a3%i&G10=>dc@0ckXPEro9R8;6`{y72uLsgU zvE+MGBZ&YKh-X<^fwN!*kmFF5l9EJ-|G{&bQs)#bqczli!&INY`$_?DdqBwG6Y=l7 z%wJ9yB7i|w7tc*wRR_Q*Jv?6N1?&8uw~xDb(RSZ5F>8-9Yt|z3mc6IBVQS^}Hw){M z)jP%h2j3uGP&S~{aRDM&J);G2Fo5k0FvwXw+T>AvUJ7zvUPKK8@E->Jwi@7WTj;$Y zt*J;+9(3{_*~BQq4Kj-czS8cRev@ZD4;todVA@pd!Xh`{Y~nTi6#3=}zXGM@S@*_r z#1`grQyMAc64j~1W(AN1fBPTir2FC@!+x^bO8nmy0sAhT{fF`AKS0mKiOzq<^nkXh z5&CGmd^cfDvFG4q|95)aJNh{DO5qg{g;(INS}J09L#R7);0?lDLvl-*(^b?%&Rvi> zM1nmg;hnZL_2`o;)JSZoFu@V|cjCme?OY)+9NJ9jMgm=*F9JiQDC zMg~$_Mv1L$=t@7cBf%j@s^3M)K90~#-00SVlpSxKc}0m!EPL2xsk%zk-ZK>+;dBHU zTw1#*5PLE~|JSo`$CCetCy41gxB8#7L9YFuepH5@U5yMM(Hp3Hs02*858{8`Cja5Q z`)0y?|BkY~4|S@`A+~TX?aU6$>Rf-xaUF*G1L{-m7zt3??IOZCDwjZ#N zw>uhsD=7aHWzWB(Y`}Sj3-quD)e+nrFhv1`a294rhn_H3K&BgssX6Gc`5Zxoc10is zZBA2sfoGJ2JS5J*r68;8p&VvW! zV76K7)!%QghhFF!2@Sc3X9w2!|HWyhf0cT^C8WP=ao-s1e?egItbUA6`~!gz7mPC~ zkNx-l4l&Oy&;!396HAY>c!oL=|1tOuO^D4hJGY#F1F$~5bEYn2u~(5$l=L8yL+iHR z$P2Ce^yciiuG-txIZX<;XlOmQ-oJSM93Q-V{7psocq=dQGP0pVksV5bsfSLpa2|bY1`m7 z$9XMPn{IcV^R=XJiO@yp8Irf+^sKP%YMlq~1jn+}LB^6AvUG`me()AAZ}i9R3olZ5 zh#?dl##nkQp@r}3$4;2q|7kP*=19NHE9Bo^a?aCVQuh~V=&GlK=E<#}AxVwQM5ELe z=K6z+Qas5Sn{Qg^Fe5gwod`hPhbg=hRYTz6+fHQ8jK-?YxbSqQ7;dFA#Xf4^R#0=y zg=J(Ub0$i6Ma46aF>>C&FGxTeh6)xjnwHv)lMvstO6H-8*mR-{3m$f%^!TpFkda`N zpc1?*+?U3S|L$~*lgORYZmQ@@rlX$db>u{kL9$GC=qcZBGZ+zxsRFo)_YDEb0b{vp z`^ky@_)X2oJmf;^pM*(UP_{yRa0a?Zs28t>Cs{)#HuP%%opML&`eg(cM7M4qyKzNp zTpE0$15uz-~c>G+<|rL9?Th3q0@i9o0Dl4@KLeO@Gl zU3nK4h6E{wEcBOXCVzS$#etDS4A@knJ`=$cj@Fkg&`(=xYxd z%3(-I^eb}G^`6=HlOrDQ4SlnYa@*mUrHc@69&{u46jIw^(;o-=_&1*~8{~voKNqL_ z>%Hmo$r9q2_4DiQuDt^bPrFt&-BLCDYpome`|$P0H7;kt@bL!t4MvXg~j2EMdfWjMc zEdO78lXjuNLuv8H!Q~I5wq0C0^o!*O3)iO`2Av(R`n7I=Cj+N-UG1!|GgV!@oiBV( z4_$Xeh3E*O5BHLN!<{#J`Ub0JSPrf=$|`ZUlbQ&?)qz@bLJ9PXmFEPCc;f{cS(7V!3D$ z1dqF`yfaQfw9LEVeol*0T zuD`^zv!l>C1>D@|P)2ShQ%PCv_JuMoZ3J(`xbSsF}VatAQ!xM@Ni2g8n{eb zh}@r~OWZlaIUSoVcDPWFuqL?c4+c#c?a1!L_55*wyS-?P;-j$#W#g~?`*EQ0Y#Q0H zyJEHK=e_v37Ojl5gW8)`+_%BoiU==&Q>}W{6guWv@Dcb65&Tk$VRD%cXZ(X!t+{G+ty)X=UrDF7+k91 z$#!zvzE2G~Szp%{q#CV<-yoa#_`{n;2Cv_|v&?jQJp4d=ReCdrrs^VwBya^bmRy#b zmHoEXoh#`c*o;KJsU8GYSBQh|PZF0xz)v$56TH1t&9tJ2+Od2?w#(z(h@CF_(Gn8? zef0PY^2?d^p5m8STY{Wty31a#o*Y>YK6`@7D=YixfH(0=(#z`SUB=|$$yOjDCFKxO z0;;DejH9FB@c8U%QHJmb$z{VM5DU}_xjq{3>=qr$VA8-!@UyjUdU`h1yDk~gFM5+~ z1j3Z-rgbrD%#T@;oi4otlZj81Y^f%|ku`N2?~}hWW-kH9-D1oeq}m|ov4GwBB?9jh zEr;eSE`lxElkVBz=!^aS=G8>=1UN;rtzt(o93kWyhKFr>B0tR{KRr7=#@XOo(T!Qs zD#4XTg?42xY_>aoon5Eh&NbLIP&*4sfA0g2mOl9OBI$w~(5L@eu5Jb`K!YAYS2dY* z25Gp_wmHL<=pmF2Z{qQ%55tqpaKAl3CtAvF>8KA>E_AJ4_b@gf)>y)8JNH{Z%j290 zDRL_MNuZB?;|!Cy<+B#&^9b-&t>{sH#WZAvBIR;(^Zq_TK1U`)-NT%+=`!owe>ZkF z_E3(PqRpjS-=Ss6u%+c#1IYrexkVeZIUknB(YuUr72R+>cd`xy!e zc2}L8rylI}_G8)>d?O;ht9=bJh=TAyEZ?$<;a)jGk5z9ITH5fBB z*^(O9eNT-K{WzZK-AMXCeLLUH4)T)L4=N6rY3rD{sx zyHye-DuC9#^i2=F66XOZ!aHMHDH3PJ(myYc4m3M-(l2Nk)>=y80}Utf_m;++(Zj&Y ziny%1_OEA2ANzmR<8q}2#AroxCXsn~yAZ0i@kb2q*5cKq>;t>ft1Y?;5S-EQhaJ!L zTZ-_jgksXTw#Y>)`|PmOB^@~)Nb%VFIa%5~Ll2GAHFqJl;?e=e-m*DwWZk{bSZZ-S zPhlYf{Egkdgviwz4QZ2msH_$-U!SdfFF<Fm{qHz3gHM zvVE;i2JQ{s_ZSMsScMeh+HumHXH|salh-jSBnYOb8w_Pv8Ch7H3h_MVz2IdUxABDH zm)|hcu(4#w>b7E!dPkvh33N3|&PVg=`|ql`-xgFiu6F)+o_jb8S2vpY|mH3D!aHj3uN0W9xFyS!Wa8|rRDOzxcq zih7?wk0%Ym)*m+JWq($+@c3gFzmD73t=8h!&yb%#d6jn6iALkFL1a`r7nHku+XYJ~Wr04DnHclRl-FTs=R>-{W%!=FH= zgCaqZc#}Zvk9L>?ICoSAXN*svz`r|ff(Ncbx%O#jy$*zJ)q=+S$?@T5;dI5Ep>qUg z${m9Mj3o`Lth5UU=B?7>o1;0K)i#%{bEAz&6wn8(jjfS=?UVita9eBunZXZ3)aJUn*1AAj2SvG+XsuE zhCfzFpSUXsf^>M%bX|K8t`TXBs)g)uf;gy60mSfr6Sj#~+dCpo!Hyw89;wNeDFSfB z@OO=o21{S@Oc{MOy+Q6*gv3&Qd%>+E}^VqQ41TRTJ`bio0R)wVT z#`{l5Sij39*Vz!cGLy^3TF)J_*s1~Jq?TR@7>{_Io5j==IO?NFX^ z0h%vWsCwq)p6MkFPhtY<%6=|M z?)6|!dxxkN&ZlOmX4jy~P;#Y+UcdooxI6!@?pG5*7jdiPAWqZfaqQPERHzkmvQS^B ztUQ*v*koTzJAh0yVrge()H01I+bE8hSwbsUsefoJT@_s}n|`h$y6XD7QbHk2(VgFv z4U&-UlTsgWnQ?&-xY<*(wp)6)OrWFvFxQ)clO#&%(16=GrG;aiuCRiq(j5I}aD}9P)V?CAZPQ9Vg(UY$k zkik7;9}F(T&@V_pHxTsso&UG-^lwLC^8JwOBXMQIrvVWE7TdIAD~`fv^mN5qW0prmvniBd%gn6CUZ9Vq#?K0$*9JN63i>eLk4kiB}L`$oq%!0%I1+cGT|N8 zjO(ZNGX)zXjNvA6(m1I7bHeS{s*34xLWrYt`z2gMR-{)fz-l;sdk6?SH-R!Ie-%|c z07215Z$TCqB!@HF+kppy*akK|t~dS^njXT{xlhhlK#2n!O5xDR@`Dl!XH$9<*(_a6 zyuiwUD7J|QTy0ethkm3M#VYS^7IpicMVSg_y9g+(NwH9HZ|oiWQ@Gp}Y z6mWG_Fhw6R067_qt7>36g^vj^w;b^N9vKYNk4ItPt6XZunfJ{#nSE5U^pPDjd28Ze z)os$`BcwOER3V-Y{ll20!WC4Qwwg3St)>^w1lMCjgqyKDj$nZ>Ifsz3fmC!I!lOSL zG*>hkX0^gQ%(SL{s3sbg@(H|w#5b?FAhh~L;1e-@0O{~T`^knJq8h3+!43+tbIkB7 zhB*_D=+MW|L4I5B)jvfK-hYZB@1&{Yp^j2j$QZ5vXkZz;tx3O~wBBYjzTxg_xn{Qr zIq)0mJf-N~=X&XJS8wsHk!139bMEcg&GAG-o)FK9q?))zOa=+@;75tOWNh7VAS}De zmkq2P0vvcAUumMqPZ-kgoZ0@E^MG@PUHnbz_w#%W0DO*5>W>{Siv)AxUX{U5SWbEJ z_;72cI_)qbxMyMfoT%qLI;tB4rkp_Gxl5p>5I4YCEjY(kB3P6c zzZo_s05=Lh5Hl+fVTm0QYX!?Kw?R6#7KzID!N%SqYWZ!%F}ICv*VOx6$N4sT`8I-u zuZqQjHt-RkV5JaiQk$Lus4>m$E)%YKS_WJ+sVGq&e`u*1*oZB8r0JH)aNX7n9XH|d zE{M1&_J-*@?TH=Hk88Q>s!R)&5Y|#2~e2rJ^d&NspU(c;NE93`g6D+95?uD2*01 zPB>-zVfY+sv}>&+{j0s@H&SENDgC~f?FJR*>l1tZT_BZt8U3! zVIkky{lHGvLYir`6vIW14ND%+Uh#N{G73lz%d88xSKO$@rxH#Ct3FfRxQV;8Tz!1R zhm3OUh3DO-=UWq^ZJF!Xp1f=`<8H?(x;QtPd*la#CgZF6-^Ij#17etyqj8|nkU2S+ z|5Hk2`c@NXWM)ae$$&xy|HdnP54aI&!jc05nn7&~Hddc-983(zneo<|tmG^mEoCjg zf2lm?=PT_qgNIxc3o25M1t$0B()7k3GY(KW0WyNKMbrX2r#bj<$g$=nYMF zji6~MT(&>~K4b!rIcveexmo`BJ=3vC6GBf7Z(sHHQvXt*2*$4{ug(C2LAPzv)B{4*81ON>}wmepeVL4mEHSlJg}IL zdjEZ&uS|)dRbW#+Fv7R5bubw&6E6Q~`q!`Q%IB*A;wW_VFOsx#f<_;}KFDY6+t>A6 zJ(xzzXYvt%yA=E5>>G+j29SUEK-xucM;8F~E(ff>bxR3&{KyH9&BdMW?LpP6_@i%g zU+rW}Ekwc%o0Axu(a3vE0Pln7H2!6*$OMj^qKUP#29QqL0a%Kv1br>|)+G8i5>0>S zyFKF|)AjXp4uSb^9Bgpo<3KL%K-VORustIO`5d&7iH-eYP(4F4fL_pRJM5j$6*6=a zAlff}sV`!5pvoQs1Mq2>Pa-y;%4q@v$Z43bV6_vV24X-6z5w-WFeXrg0U+du0QF~Z z3Qz+w;5ff+p5V2F?jxA5Z0tQZ`n2wgs44o?{`*2!-}i;$=U~25%8y*ci@*Qa{{22x z_4;iK_(BBK0+#PTr-Nm_5WO5tt_ci2Yp~QbJ@X1mu7h`nO=7GyVmBzsj%Vmwbvo1e;G>7}LDfKcQt3b>dJ zW&%L|IqL@Dv*-BsPssTdmY>Vz(;tpth7PbJ=DyT@Z5U(?NP8REH!*su{{3}!$za>? zhMCv@rL{tUG1k3;`OJt-LV`g8+HxRb0V)fq*Z6u2HuuK;bNV5na#<_H8ReMq5W4a6 zZrVN{F?YMP44cOvTJRYpLI32@M z75Uzj3GvA_H|DMTcd=<<4OYD@NIVcFca%cPn~HmAykXaJdaip~knAM)qwaj$)&pq7yWJm4gk z1Y@Be9PwS{CFAf2PCqQvtwgbw6k7Z%ZnrK@a=D6c(*cJ+gEBO zYbD++c^2?OzkCF%EIUX`(d#@P(&c)r#7e$8~mff2>c|skf zbCghX9x#5DNA=i?7A3Lna0WF3WWdYN(L~XX9Gh;YMdn6{K$Deva247ksW>l6f%2qz zNHHM*!u!O_smrSjjV!*qxym~ zd4)v#v2sQnU;!{r4o+o)BSp(V)AlEShsFCyH0@% zN0sYd{G~XA4%fd-4h5E>GC=%H`c7njw)){RTtp$9SCP{gweJ`KrX%w94&8WRZTEmz z8AzcLsk;Z)F8Ryzo>MW97Xb{#S{_n@33BISi@aoGoK_GGn}R<%H$44bnFlA2`^ z%_;|3DL+`FQ4-eRCVHDeQY(KqvE`qDOgj3afdK2tUkFX%M-+Jn3Nf=1QH!b1eHPKT z6KC4Uv)9Y`QPIWcmrh`6k{AIU{B-t93m`9&gZQaJ9}MaE!-X)o0UI#ElX4kt#Le>< zH@sZ%5ZIbkIzhbShtEB~@MlVGNInYA=LAfOh}=w?rZdlQyVB2yhP8?n`T*qo-YY<4qy0<~a5WDqg?O_}s~KWDspK~mdPIv`YN33O4C*8Y!R3*( z*UrV#7a(IiWdkkPxe$BZ?$@ z#7nm{kqEb4nEiaMc$Za|G1aC(GT#2pLRs9@=ak4A6{(hk{dQS9oLb=)^WE&i*2A?( zMz&|oh%XlnhXXv1$f<#K3+5gPjk~i9RQVkUp;8`6B7_ihuH#_Ms-7at6zRYIk&9eLw^HY>{?Q~_w-X#oKd&V9B??}j0+ga#~YR| zd_wp=>uUQJZaSBMA3`0Lgt9&SWe3+F)YXL_Bv>h8^Bjh}Ei|e<`J!Vf(0Fwl0V#EA ziAcLNbAU9PJs4ztE5({$N)|A2b5?1+Bt3RY**E6~<%O;@ zYm`PGW`u@BPYWcEswZ~+NM+mNx#RY~QoX_kVDrc24%e5Gytzz|?Xzr!OA-R{^j}UtmYeKG*(4K?P%Vv96>_^W^pZLPK;N} zsIwXyn34>K0~}PT{!O-RDt-X zHI9}^EoP5ZJ1)aSabPz-e43UH)2Fl@nwd(nVr+2q$^D7#>T(KLGh93%W~GboF@D#(ao7J18g!{g@`o2A+c)Gr1`d z5KQyA&7IVuoYcFwH@BtS9UHe5s^PniLOryAT43^~Mq)6EO19gN)oY@7@aNoMLti1V z_VpO<#jH_wd$_38H%5>jy>YgSv6FyEQ|6PHL}I-zq;|=ArKn@dgI6`xB!CroJw4d9 zK?$#x{Xj8na4VWk>v9c8T)@qWcHBWrM*$%@JG{UFbZ9Rf((Xw7l8$Sg1Ol0IA7J)( z%d|b~fx(e!+24Q~1V^egtY3!K0p-nk&_Bo%EN6=g&&3kRjM2}E zp*saSJRr>2<3{MqWu@JuX8`ss>dqepK?v02@sk6?D_N1r&k@vHvnt8U;vfpovsj_Y zZY^XgLC=B`_wB?4IoDJQI8~LxSlFQC*Fecu5F+gsf1*X1PtcR(i|p z7A)gBrId2FAAe5Shiukz)(Ak`*F#*n)PpD97A$P;k_Q)utfj0tLLIe~Vn66!`55kw z%#5FZ!LT`%zM{%tqmwM&S`XKM{G^48+x#$XHSeT!d9g_-~BDm>W1s*>+k>usL=dn z#_~y}NG>P&*+eoV(a|h>iil829_5gO^U4%?nZ}h;LXEE9gj%B52J@C$l)NklV&qSQ zv9NX06{(YD)FGW0cEz@~wII2&iE_zktqxB?>rDn!!&Jhlr3a{kjaKmlqBAiX)@|Ag z%Dm${soxhfICL$!jL+Pk2l4!MXB+!lD(R5Tsu&W5V3|YZa#?$~91W22$8;?`S`ofb z!IHDylFNn=GrKcLDL>NTTD-hp-NY!^RAH!<%H2r>$-n=P4Fq{_PGH6W`*5a0eIrLR zGq;LYAj;ZOiX8yOgn+1>pgHvbQ#>1Wmw2$$m0aH^7M&=JHS+LL-XEcrg?}kVtZ;iRnys4tagXTDOlSEfd;@?R%J;lRZfvvY z%5}55_oNq#r=$E6E)Bf0K&r=M=G~cB?^2S;+0prNLj(|H2HW>MXS?GmU&8VNEz1g9 zS;2Q-en}HuVITOFhU$DDS18A3JXFcyy%+uh_H z0)Fjh>a_x#n^@jdNJllxqjPB8GF)-C!)$oUXY)ptWFyFk^x9xDt5uEFbeG-EXg+O* zCN=pk&on?mJK@gv-HLe14D?Scllkz;s4eaAarS42w)J>>`7kX4q*Oqp6CKT->s^lLS z$)5mRzpTzHrt573#rtLHWs*afqMrN(d0$syQ-U`IN^%nexQmebxjTD!fAUZYrR`DK zm%m|SQAKh%T#%yWCY!rnc81jltm=(loSX&-nMo!}%Q+`p@#^EOEj|-V+5c^NayWj8 z3ytE8>a+`_Z8uvZ?DsIT3=5T;1c4uJYbFM0#A<3zib}ho4%-@a*vsfT<@Xf?5Z>}$ z;hS%`w1)Ww=iw#6l#-XTmothB7i6ofSfiZ;S|W0Z%*F}WJ+Yyx+EqMr(Fuy zx{(F3b*7GqVFr1+IY=SeFd!x1Zan2YpH)Okf~L)JF|^MAnj%3v;a7+)vKN->{#*gf zJ(-A5!`uB;Q_Froh}jZ`)fUsQc-+5AxmB2l`_1}=M_Ip4?H!Wjl2&A~y92;L-i;d$Y`HALZV1k6eEDOm9$18<@lij}u_2u78Lt$qO!qz)rT|KoZ$`N6)qbY~KJ ze&Sz$>$(EUJQLmkH(>!)4W=WXEfalTwZ~qv1w86(6s?ju=|>Sh;S-x#4sHujEXiSf zJ>ZJ`M2@3QV1oeQ=CQH0V>I-L`8)b)dv#Xa*We6wTDMyyrd!mTu5=oOXGUk`uEOZ~UKs_Bfk}ebJj^;?7%r}jz%r!xzfmB_0IM;)beGX%ye1p` z+E*hH6}o`V)>Y~v`CH+Jv5f&B?gHC_rLnFGrak9ON4z@2erN*umI=#ct~yq5I0?8S5V&FQ5I zG(P+U4&M>!sf=O!V5bc}8UVEoI_|MQ_hvYSF9=_3^(aMTsKt`By})Z$7AxkazDLTYf)+lt<~8=% z;;S7s^a?v?KyANMi!b$Vj~QinbPxkW$y;guC?Pu zLEs)-bG<_~72H}$9XIbuUnQ3}?i=BJJY09^H3uw!oRKO4RjGx0-r^`qHo7@zdFLo4 z1|JLX2t}@@;I)zTV^VGc^?E~oF8-2l8xn*t3w+R zO!PZByBlW!ZW(q;pS;pN0AK|)pW_b}2Yzxa+m$1R}55@Ym*k|=g+#&5B>p5cLS}c+-MX7X z%gd$F%16=m92Dq3wCwe*O|K4a?=ocu1l>bmO3IMkkrAvs`?GA_jG_;^yk%qH#rEhK z8a^(fNa3FXQHOoB_4Po5u^aeRP+AXL^P)e?C@7^+m|g{)7Mo@me+eSI<3Xm!=cp;- zXY0}c`sn3WBG>uvY~0*I86Y$KrLoTPedpu=t*d)Sg+G^5wQ0mZQE*@ z)9y|AlDpls5J3i8q~qRoyDLD_WK#CNV08TejpbC3@#K73Jp{oqd3~ zoS^(jMSh6rPFWn8$P=n1q6hyHJ38C?NoTkA2Yyx&IQ`rqZ>G?!3H-w|j7wh$_lQG< zh+MM7R_T;vErxJ~y+}a(L)@I~s0@i;yIZG$7>!O#B+t0MCxkm?ThUN=DVGlreL0Fg zq$%w*pW`H*VxGp&dvHknqHbvo8V!5^;0}%KKNU_vV7CRkev&5eQ`K!2pE5m#q~A$9 zOhIAe{;hdGsPcp+_dGBQ>uyTQrr(KUEvHUHg0IEXr%v30pS^yRTP(L?r17XH5zk2r zBBCzr$?6Sng80+I#%EG2U?D2{$oE8(t-ibupc27E3`$k@$O-Y9d9U3^(th<9pol39 zSqIVk*GUA?rD2g3tCqXGf4WLeE1KX*O#X$W#&SRMxqkyCgSnzg&RAxSIrjj*WHPC|-$XA$~{pB)Fj?G%d;Nu4wkdQ^MW3d-} z8PF9G&I|DqEgj7Vw{y_3=^(NMpnN?6*_p{$F8KJd>npbGjDl5E_DI+L_au3dS-8L= z8;x!vfsFHll|tWT#O8uIxBwjPTpv|M`|gFQ$x3x;s?5c6%jXyhdN8Wds$k@^Q*M0% zY*Figbn`X`LqZn``X0=#)&}&|5m+Yg*C;fTxCkUI_wUkdp;Si+qPL%+eGj1T zU^JC7>`$hdr=+6Oh>yCrYQQ!qr3@#X!wzEOe=vwnGG!%T>}M%A8}TI7t8O)n+l81; zu9iD5g^SOIg5G_HT{@7W0q+_*EsA`w6yhcR?`b{4 zmCEiwv&t&(Lczdx;%I_*wifMIU>Q$Z^3)=17?9lyKAY~!BAYG&s^QH|eq-%oYaiuyg*SCVTPAy5KyIO+_O^o0Bo*kzy)!aNk0BJe)^G+w9HsmzT zE4Df{SxYm|orKpcCPI4~CBR{sC&fQ>=~do27?k{ZSH+fbx5Y!dRL7*1VBHl^k|{7} zv$F@|yjz7l2ejLdV)jk>bjNn}8U4$I?qu{^Y1y;K0)oqGk(=>+d&`>0r)&Y8#u@xF7H|d>_kG1sM;g!qd6=0T0Q3gTQT6!7gbLiNN zdUKzs+JLZEj|P^^^zn55g0Hzs#J9Wr!8J!xG|H81li^zK>%~rP+K6sX$x|4T!FR6x0Xm^`>Umq1{w3~R0Caiz^3SY1} zC;)MHyt|%G=&y6C-szxD1;{}e3ZDH!c=@o=R6#ormG&HjxK*g`*}BTo$dEK!+)nH> z*8#7jJAyuQRISucZtwm(uC@Mlmx-^PE$Ue$hl%~M7J##3EJZQ3CVJfB0~DSN!(f>3 z7790OksI8E(L^=rdpz;qbcdyMIt>|718)s68_yTL1IXRqv@}}DQoi`XY^Nvfu*z9g zdR`M!ElZOLPpLLI{?<@3e)H|WH4Mj`casw)JV*wh3t>ua?ATg@n^dO{z~!3_Z}#6P zPcgrx4GPa}jFnIiN?Y-8SXVQ5-p6O<3c@|n?K z@N4_Z5?l@BnQ`iK%0AFr>U|*K6E%|MJW5o?^}|R)MZH|bm#wwvdq!p?J1o>DofuqN z6i}8VMw3SQ@uMCT`24MBg&AmHP^i{jSwJ9lSAf$w#+VSXfW!7GwP60Y!w8rY#*_Ae zF=R|0-szkNac;lJbAuxSpA47{=#RDojr_+bj1H zM6S7?DA`|zLs~BrQDn5!i{5}!t4gcZG?=?*TT%4Gk6mK)B5Dx6 z(%$+I?iri;l!~!hI>Lk4%;mNFd0Oq52X8o$J;6?gf=RDW#>j}ZSVbJ{6}+z9P{N4e z3~Db$=Z<-XMHP(tC#1DvaC`|^@1SgQp|y*YA8I}__%Z9jYrOY56kz!mW7oj2Z3Zyi z{VbAuR=wtdG*Gxix*j|Iq!hCOsl?%kc)7jBgP9xWx{kYZf;9ZaBB_mn)ckG@D~vx7 z`_ZL8%~cN`{vyuLp0j=p6o!Ac?$O;`KVBx<<-Y}_gFCG@>Z{wq*-!2h$vtJ^SCRUo zf5D*zekG9kWbArE964;tqMfKOVGrBU_GV7F1=85?D7)Rgw**SB%7puP@R~%R|5T-;Ee9hT}I4fP;iRA&pTCY@& zP?K#@JIga4s->pQ@;bA{L47BLnijE)qVD7}xN$A+PL#0~KY2qaxe1ZVrVY4qPjxUJ>n_JznJf--E$n1kibMNhSpR+Iw}NUAkz8lq$~ zLrEW(;omVq@;BFKw6$rBN_PQa@Te;7!=l-LN6&joLP?_BQPRe5rIPqEFIWZe(z9A( zs~L{7%bALmmz=Ewkz6>aqdr*fq20XFlHgYK!9s^{=6fMXek)BKRRYz1Dk}Y*DlBF_=2jLiLfkinwv1uMFA0>q0ic#W^Z%K@GlU}5_ zU^+jmBibis6`>C_5SRgBW(qCLJJlrhm6cgUE-xGxQ+=|G*v)#jb!VBItL!?$w|^y^IvFZ zLZMMkduGT_J^|%@I#wa+m$_21I^$^&>o6NCu7Azap>AbErbAg3EgL_?qtn8YNj=hNREuu@k~`v z(EV7##>=|jO5*H-uj!F>X8~e%f{A@s@C*Bk8SAM7RQbc!)XA|AMly}`iJ|nxdcdO% z#6+~ZmC1^1l5M#Nef2M)qNMwO0E<9$zgHA) zOeM(eRJ*gycZ6WqgU{y#M{(pZ{ppvVCB^j%lQ2E}q7|xoUsQ?0u%Df`Y+^a=44CwMZv{4PR%>~nNOHZX@5lRS z(Om3oo>BxxQ0CZDU??2aay-6{O0)OTpvi;48RKjhM%};mJQbS zl}uTSOuHvMx;E(X!1z6nHgxbT@_xP%Qn`M9H(3GM=;Et>s(z3}N>I5%?&=rvkr++CtJ zVEe4O8MY11;w{bp<`Oob+B^{4~WE_C=jd^;z*>s zOm2FB2Loxr3)MN4!>Ezu2S~J!|n{ozNMtT%IYMgQH-@E z!p($v0bL;BhNsmrc~)4wLO116psVz^(uocF4Vg2XZ_T}<*|(oxy;blzUhO1)eF7y~ zsO;?z$e)EDFhaT%9W3&eBRAI~bE($r)iJ%0$1P`Da&3#7*#}5vFSe2|ibbz({~lH` ze{38-rGu7I-ZpW-aaA(6ZW!%h98IbY=tYHSjuCL{`k|svWQ#%l(-#H{e~#eGb>=T) zk+D;9%GQ<)4%K%!lD?df$L}w1=ms2%l9i=)cBy;!#1t}mzE?C+JHTl`xhqirz4>Q# z-_jk;QiBP;!sYH~ww>zVpdh3!SR^8=e{qoky1QmZZ=VL95g5~~cL34eE=;zHOh8rZ zTtR}yl{DC^RV^J@MMU;m8$ToAhv^Ym>h9)x{jreJvh&auM+25}V8N3v!ikvdIamC) ziY1=y?Jqwjl2j!23tZvXOY!$*zZXUw;2u_OawOPfV=Ks$1}Wny9f5M&D=c6;V zAm4@@T)l9`ey6XskMG}@0k@x7hO@utpJ@8?-c)9e`B$>n+uhI-;9Fg1=7_3c5<}7W zcWLR=4d)>nn|FnEbr8+PITsz8^@jlA8{uQ@bYp4NkS7ldA}D+j=q-8{RG-(D*_X27 zSr4O`eF8EnG$$6lxpL(ze^Pu43}smBsMR1{)?-AUYj+4V4vvbrjm?%zcWmyc5nKW z{hM!D%VwFm#*=iORnQS5=ycL8krF9mlV65wM(CYmp_sAA5`lx6f8QgFLRLtst{nRy zOe`$NBLrvzp%Lz&JjX`-tJbj#MXij9-6s%~f3tilX%Kv))s5dSW z@f+ggynHEXV4`~te+nsh?i-!u@OytUTJ#igg2APHpL>YvfDj1z{37vsuf2#<>B>Mu?A#oZz`nJ7* z`zI39-)^kn65idMmiopp{;?#2V3CPji=uPF{J3hYDk(UI8Fct#WvKf;s_csNNScTZ z5Y6P_24-$r$8n{RDfXGvf)h88ibI9gD04~3Jr42LCcDqS7_dJNhzb~n^!1fm&nAY6 zuIs`{K^9yRf7>hg6GXi#CZ+jR`_QLP^@oht1RShJ3*51JG7eKfw=2bRC3cp!$p?1v zfP;p-3egRP_~8drNNy+~ zx)-OzYwR$&c<|!71!gD7g}ACep)fneYQl!_vIt=3e{(e)mh+UB81bAl(0R|SLQ>(; z^31#0Y{E$&%b0cnlf7bT;6$V>^QfroK`h4`{HsO~rg02(gXHF}kP*@IVNTE^#Wg-ldM=mk{6y5x5#`?3qthgv>l?L1$*2dYFR!~x8eGB$|&1(8jYr) z_OpyQfB$^H_!pYJnT2`3v*6E|E{nP^aydoZoiX!XR+YaS^Y<$(yjg`Wo07!ov}k8| zD!hMSEeSKB9`ad7-14qXVTCH9g(sq}Pf2O&eiK3Woee+_QaNo4j}9Zld%UG6p9r1x$?;LOg6 zGG3xb4}2hLQBsn_scC0Zb4kYl%Fj+6Hw&GffO zCQM-)v+rtH>HO#@SvEdBpe%wrZ%W=KkXm$>4Scc+4BSS7)8;BN*@eufIpr$5<8ne( zYoK80`oJ#^O5% zxh-)4PKTkE?7wK)i;?NtLQvAZyTHvYFP&hkMTHUARH<~^q=bzWQSmQP+UvGGKkfhM zl_SXIVGHx5nx#e6RM5O#xDCG`C7WgG;9Pef5#jU zm0|6zT^VniAkZAO(8rEYRI_+wJ9MkGq3$HQt-HcCti2qE6eV92Oe4)WFsYsAC=}nr#vemIm-nxwRg&;9i{)A6$ZMN z=AJCKUDAR(##5tdK4^@HQ^770`}XVn9xN+0J|*0u`BU(2LZZ`=e{sIDmL!9DP1ZTs z{BJ02DUVvq-c4-YzP7Zf4o zR%Vg5QK|+hpg?igl?h(;1kU9n%!NHeaRqhpO4wMzarz2yts6r!J2X)KK1*CI(2e-> z2T`ZBY%FVr;@N-!e`(XCxF4~|s7&~q^;BYrvv2O#F12W@sd~Zc!AqelSO$v>9&`FZ zr(h(;jJhL;V+DATuQTqD_O@5YX^Hd%IU2?_ly<}ON|%Zroi=f-qafc8#F!i)Rk`im zdIvkhN>7D5c)woYG~pfe;@`Gs^1{`#bzAK&5Htu4+@orKe={ZV+tSC!ElP;4k!EcO z*S(6VlZD+chc017yY;n!)fa<-Uqj7BXcG$AjhHX!RdX>V;KOc|m0ty6{y{HkibU@n zZaOtK7W*YihK!|Ky(-P6smME2d5nPr^0Y30oo_2U*E*I+1!p0Oo~Hv{B(?dvy5K27 z0|O`23fo#-en92WMSiW^iz!F zbVP-RZGSZ|LZ-;?Z2KrbFtR z6)!ilY)0Yq(V6TOo#2@#c6_f8B$~kxF!}7*n^gz(HL&Xh%!8u{Emc=()#d8EmbR?* z*n&Ay)OJ{Z;285X9`O17Jl4)gHYuE=y4XswmuTgbPLi@yILd%6ue2PKXrVd{$ z9L(Fxf02)*oVZNcsBdX6&j)f}vce@p&?vYsYWMu|V956Lm$}q0&`$XrUBEC*G0E7` zy;FcXxicB1(CnY>(BChFh;{_k&reatV6G&Vsf;q|T{0@h9D*U)oIT%})YTh7_MCg= ziOpLc2S>$4c~We#Bsr?v?|`yWVHyQif$$(RrKH>a}}cm4qz~|4i!8^=S>_x!y<)yikZt~b{48f;?cyYZCSrWgLf>PzZsTq8Map}`z8e-2w ze;4XP<}Qj@MC&K>{JAdJ=-O*EN0_eq225YR9PK>5$Sv^z8wMcvq2)bM~j99Q2_aw@3(Y_%<{yim?(;pJR?*hk&f`#HJ}+L$eVY z)(lb{(&GxUQjoh339e-ENOe22K)D9)CM~~ig9}-l!g?Fuh@RtFwkYYTX{NA!f5*Z% z=4KOBHkC3Sk?}vhz0o_7aXDm}`5f})Y70x8hO626jcp**OUblK;k^eZ9IO?b+8LaJ zD$}XmdsV(peu?dLPI~GHZ2vfi{wmdd1o_ybJd#-!_c+~Y20;~**%-CriiX3yVEeqj zH_sfOIJ7} zK`L#}K~vQsdCQb_yc(OFFD6eXI#VF-m6vxQ@KHw|O(jdiIbSoF&T9PjY_)c`b24r= z0$Ut)wa6^idCQ`f7Hn}METMz^BTbCQBWySgnXuRB>b+vfXf~f_syncBe+-ET6Ap%< zo2I`YkEa(QrS51L>ZnKfKjUJ!oypN=K}wsB#cUW~C9USJ+qgblvqUW|k)|()3$2L%M7Vz4Z=452;++c;YlK@no;6Y2F*8*vV&=%K>8tcXfZLuzJ7&bNSL<=${gpSnyvaiZTH{(^$e#~bz*V-%Y z0FJ~BmW)!1`-4tUPQLfRhQWQw(N^-yiE#4>FsyprA1bjoL}M= zPL-~5mq9j5weXify15LA%KLjVpXjtZ&FW}dz%k&#fX&unx2AD@t-oJCH$*f2nO9wW zD?U9OO4Em6L?k#PgL;`X#?r)VS*8^DuB9+vViY!rWwZ*9zgsMX|d;PjH&m%&f1XU z^)^voh~`!8e^Mh6`xn&>IQJoo9dQV|0re zXy9MEeiBhypd+@_q)!PT4Z1JPffiq<9Joj-EC8i^;Cr>~827lH=x08yboUdWPtG>K zKyrJ6H%_%nklKP1yk#yYVctG1l2Q6uX!)~l2d5h*U6yxwao4#0y z(L#FXeX#qoZQyaNqG7ox{*Ed#L31^9xSeSbZ2F!9cCu7ncMt9??Lsdp0vBEg^93=( zDFpTZ zxL>d1X}dz;u#DvP*)+Vbd~p9!fr^_>i=V-jYcrx6L+*C7DaG-4dW&W6^w8oZ!o&6_ zZ&aBj{8};b=PxRFUK#3>$yEWX+U*C9uS)c|H6lK$7)sjUi+zJQu_DMly6X!V)X8gF zf1Aah;|gvWWHKs|oQCYA&Z%r}a=}@>JiZ2h_r{4PeU=nTWv?mk*2p(jLSWm5&f!%l z?|Ju!@kr=&qwOsfG7DLowIlKIswEv%jh7&(wcn`H4AeS?lEXn5U`(oJ=G?Rw`&uT) zT;!EzF|0OO96qVFgz7^a3I8M4e|CW$f0(k|_HDIEqql@c{Fj|)9svRLq2bU?lD$DB z=j`hWQlE$?%e@BFfbz2OFW#aYbg8SP$x-LpmdAV32}$yu^;VPM6cCtwnQo}VH+YjM znaDR1YDe!C+uv0Pw4MW^KzSXiGS>=0gq?t(q2T^Nq!`QO!6g<(la~-l{E#yAe~S2X zM+?_ahn<+@yxqRlET!&VcSJR0GzhIb(=pwOs8Y%m)bFmEU#q@fQ7+PPhm^xaIm;`1C+(_GxRf4)57mp-ox zrP{<==3zUUTP4ZBYW_Ts5S4sv)>fWi?r6%~7PhL~|HMfNG3V#msBCZz6L0X?#$keo zc0^bn77WSd-JRuDX#VJ!mPIWHEX6sp;vuqv91HQlM-s+?#L#=KKe}Bd##M#d40%-Z z<~Ym>d~skoDJ|H0CpruS9LO@O)w3uRZ>$L^d_^eC+KgifW<}a1@YuPHS{*V{U#!bu4Zd<^6ybf7v`W?Wd6pAb}aCq zOXWE=mMUbD90HcfDRy{__rp0ER+C4Rvot$XMqhS~i7S+~cpNx1e^!gf^0bYP&&Sm| zaG;U9!DF(ax)zwRku5OR?=*@^AHCk1k(IUc{huBn4hDaiyPxX$cFV#}GbwmGNs;rX zEek*KR53v6n4l2(@oCJ{@#<$`SMH>`?OYpBlesfD9awX2ZpMJ~BqucYmJ~a)8SXkn z$l(U26SI8xtx_61e=i23dMN+lYcpl0n8(60{k}pzaw_P=AlrEvLj&(Y&IU+c*`3{G!0ep&U>F% zBKuf&MY*#m0yCe`!`5jL_kxF31>6mJ4zXAQA>~3ynXl;Ve}AAfj3^bH4UiaCD|4{o z*-cU-#tC?i*!;q|Lh*wQ)Pa#mql^tTl;}G4el4Og8i})Pyu|X+g$65q59Ac9Gz_~v z%pXqU?fDLlb@DP_Oc*u6@Fm_J8mJRLG(!rG5_C)ng%i4Jr#=V0V0@|t7HLWIBs;}f zHcaMO#v`^#f3hmfBeVHU$l`O2h6zt@)$RA#E0Jut);!$$ij{e4OL;rE`N$^VQp>xU z$|-EieBpP8Ai0}fJ16v~@wXHPc$N_$wuZ_mMJnu`S?~`fW9$28s78t|;UdpRdBp%3 z>#N7LCJ^%kp#awP$jVJ}>!?U7$3A>PBLw>ioR)Ldf9me|x$|II4P*8aJB?cx{;G9- ziSG(XreR?LbZMOvvo$ckLvu$yZ4w-Rk}HTzhm0#7WQm9lkBU~x`TF{^`?eLPLfA27 ze!ZX%-jCRAMKp;RWS_#2k>=_;7*!; zR^Azuf6dL%BZIso>;{UckCmV~UnnIH`)I4?{ENlhE5W9aV5Co9L_kP~E#mKLUfsl& z$Ciq+N((dJuhQ`x^Qa)j#x4=NSrROWpRXW5K_k`d>R`o$(Cjn2xnu{z5IZ0|9}sy< zPO#!?NEK0c(`do)k#cil3nYPt)2DWyg5tJdf5Q<1UJth!9rp*9KBEoXY|>#(fVo_s zkvXh%)ab-%XzX;On?iPJh#%G%nhkJIcpgu+>h%MmOyqGRmnx-gR-&XdeS0SIM*Vbg}kD^If$cYgWHms$6(Km^bsQn#4_zH~H93=q)v zf2Z>MdoL5QMtczL&pX7m##DGsWmV$E`3SA_qMTa%hCZabKBJ)Y=M`>*TRixN3&pUx z6=6{%GU+VS^V+M|^m;Nf!gvFxvpRUntx49u22rj5PXNyiF!Ib;3LmK9ew-nusVzae_#9CRn{l-hKYA&@4!2Bnp0x;hYYw8JD%iw zX$k|eBx2RLGR9^gEVdeUkSBejY|LE0Ly@P&?rrq22dFs+6Fx-w$PFSTa?je$kWj34 z(cHY7{BSIS>A$|Cw(RYN{ZQyYD)Zw=@j0O{Ar5v&xh_B*`tjBNh}3-t{&%5Be+Xid zwCi4h%c#TU`gCH|q6DE_fqW8p$h?_aK@Q#Ran48=8E*cL=6XSqpAH|1{*Hc$$)wll zS#2P2v!P`g5fUDUDVQ5{{MfWuX*C30Nz^^bvr@s3HOsOdcqv7&Wx_zELgW;7pUo!& z{sE%BpfIo+4o!Q(Mu+ucWo*rzf1L{b5&AzfoOsW zzf{cVF%wnp)CXGgSfZ}(R&IP1jamU$;8?Q;oM~$XuwBu{NWrrVJ@#kt)*_? zoqK`PAM6(5q@zfhW zc(R~0D=bS~<%RUExfh>707D-8I`Ef`F3(+3jKEXVDMi$F1W5Gce=lLO49hP4fIw5L zGc#-x{=m@wR{j<#(4ymOX^-uf1Dq^gRAu`bCDDkE*(O$^*1M0oMXTd2KRSGEr1fWd0;F6|zqyNTPsr90Mm`|5*f?d!z)<7xS+J_a6KsK0jUC%jkYTwm>FMJHy_w zTnTvyP%-VsfdOhY7WmB-1b*{V$lzR(iF2^t!@J`sQgsL>00?y#gFgVVP2jMN z@!oF{fBFD;roiu^(9+5E#Y`H$w2>@ogr0iSH8a}H>j>T_FLn{7X;J@vNRcdMDkMzOF z|I0zbcS)pPMMD>c@(R>2YP4P9eoN!Gc9QT7|`o4wMX0h6`FLtzGA1yt3Yz23raHWBSdfWAvoK{&)3XD9i_XWgTW{WQP zG44eY25lX?CzE9Hn_b_r%HOb+I`ZODxq||&%1d&N)W3t?3keLddC4t+wCza3!~HAc zf2LvMzP^Ve=EqU>Pp^1@cs0d@zvUl}@KNme+~*kVWtyg1A4`0E-NHy5widIj?&ph(pLLxdwfL>NLiwt#j1f52r1x2x0?vue?`0 z8Q~&~2vuO$YzlqIIW;wxTtLkGh%(c(fBCkc!AmHE0RVPHibAeHH;Gtk;4&`=yKGgj z%!wObWQIq3;?Z=)8JZ1mVw*W&ony32VPPv4m~g(8L@62=R_x&Pc596RM?@6EM5>Tz z^?a(dbt99m`33-=r|hu>Z9zOX0WP(7X12X4Qe1du%a%2R}O?}gbH4>2R1YEO%4EOOP$YCUP-=u#tvy2?og{Uf~88oL7^=q-9X6(Y&MUuOm zvP4s(t_*5SS`6OWQ}M!itPl04KIA)+D}^G>m*l`D#wNR;PzATWO7{O1(W4zcmwt$G z_^S#Q;&TPF-pJ>4(OOnL<5O7YN3kE4>J_n0`CDuN{S0&3s8MQ-0ke;fbDlMDtS+J!x`fqa4B+GhbZb#eWMgA?*Ux5s z;Qu6az!Qzu1vhU?TD>eSWl0_lDNyPl;ThzbbdPM*T?u7sisYcZ8Oh(G=ShiE@6%|Z zocKlQ{?Z~$5L7H0KF*sNfAW5qO5Z58g<~Dtb?&NSC!d*NqUvGo%7;M)fOnzRDrnnL%_@=ZxVDxQrUKhG9bMo& zYOY3S4JuJ37W0{_<0zatv}f;}SqvCB!1-Rs&A6qW;rpd&|pMy_zQgsA$L z_S?gBKX!3r6Dv_R^#A+I>}VIwf`|r!%LZb|aXZa3uG{UpD#E*<>y<5w$wxk-EADUx z1^fCW6_I#aUoz@4e`w)IH`(JWnP>hPO__PyZ7c+A?xq1MoIyOJ@^pd$U)Ny7tpR;M zpU5uM2*NQ7X=b}BGwj%mRIvGCv%JwH=FrH+o{q&EO$aN`n$Vb1(lW(QemC0EVcWVX zr&?Pa$Eo$ih{`fqnYv`^T){jc_LvrtdUe?IZjE6&lEepJDRK6*0l zlBO!{?~QX?)}#MI+ELrhE&fMC9NcjN@zTuKYc7P`(07jr#oGQ@oi&9cIogKx~UkS@X)2jmYMb3CdkuzSJlO`-ImSVY1?ujGj7}9g!ai1~<@eY-Mkx*gb z@pu$;rZj0a3g8I998uC0hFzlMm||z1<<?|wHE zx05iD?>$)COUi59^?1$mEnF6O(E?+pBiNh56)#8`*+X*a&l@RBYm}*e#xFX3;`+L% zPlegw;78=8eM+9>U;q>c6MP80?jX3EC3K4N$xA4>0hHeAI?n&7_ezkRUV%3O_jj(6 zq<$<-fAxoQ*s+VkVn!SX(AzDYc)m}U)a4M|k)b3o*!%T~X_VsUnzs0@?8I1L7TPnh z7!>w1igD}9_&%HcI#JLkE* zEFa47W|nuY2%en~=mL#u<@mv6MYqBVJp)#GoDai|I70R@jHs3xV=a%TWMw@hwd_aT zbmz`FH#dra3Zkd9xi*LEmbr!`*l+`%wOT?XVHXD#>RlAI6eUK%$KW4`u_P~q?XLkQ ze}&q&`(fzatl!ZKlOMiU?C`mwI=f)wc4dtpYd~ z@B$2! zAOrz*%T)F=*DM=#<{*JL&u{#f?2_g+e{tfXsZE&sU8B)C09=blD_Q^Xu8{C%QM?hD z{ViyrnZpJb=fE|8eGOK!_zGoiWOH)&s8 z-SeIA%sF%B{@#6e-hJ=Q84&>^Qz;EJ!4acPz>}q5(oki<&>e#}b-;n?fB)Iz!an4w>G62Upb^uU6 zBY+qRd>{suqTOJU0D?epcEtdi1fn}l=AZ^?kO+W(z~C`7M9X&c0S;Vh6Nt{3KZ}6M zz!U&6ESc=C41qY&LQV%EX_AvP9z%wJX*Fu$(V7G|Hw>Ok0>PjF8iyhSju>Yg9t1g% zGV^iA05AZJar%Mv9mqr+1+a!nL!nSPMMW7!7yv!Ee!;dh>u3Vr)#tBN16m6Jh{0te zL%4>2#IGax59`t;0tN7sfdp#Qa!_O9aC2{}M2N{d+5ZyhHZCs&_*~i z3JW+nxRNkG&du>?4AB*b#~2YvxC0*m&7u4+F*7U<^*bIzBGJ10Ll1*T|5Ae%9z{Uo z@XoZEod+CL@==~d zBJDHyb8~3keqtvat%n#41%m>O3=vQl!d$At8n!Al&Uj0GcrKqO9zObR$fp&m$@fUO zZv&a4;n@+)Z9Nw|^;{r4>Fp`WS6|A1H9k_9=Btgzuz49Pb-5FZ^pmf(8pzXUqz%5$ z4NB_YVQY?`U5uVQ1Qs=96>UgI`PWcyMKdhbc1C(CkY)^Pp8Kc^!IxU0Rlxcw?Q<=W z0gMETr*y$c*MPf?4US&;J@?>Rhr0CO8P>STiz5%Yg0O1LCwN)cxqvxavoqR%;ohUZ z#inf6nrApEUs}h+6GP@;6Ua6ZB&)~33-(Tf$_&7-l~HsJrq7X3U&u4Tx%zD`w?m;} z8JB`hgQ9TnNXr;F#4An5LBl;<4x| zHAIcmvw+FSHlyfO*x<=RQSnRatKS#=1s#v`<;qDvs=c<5`$}%!FbztqK;SCtk!y}$ z9uU$TGI4PYtmH8%uH;g}rlzB+>&Kwc)t1uX$a}qn!DS^=U|J5`Y*4O$pQciN$wz%n zZ`Fh0V)$Xz-Ym`$+0O|+ckK)PxgR?7Q*Q@~d$mj6$3BL@Cg|Lw68br?i2d(Pdt83V z0FcwZAN6Uf4QVKybeK);PzqkRzyPJMC0{ENe4_00)dp+mj?5nS!)oJBUpEz8)9};V z{JuM=-)9>59S9!x9#7|gXV5jK#I6*ZbWVjwlqs@+Y)@~6OC%tT%D%kg+#jia4nOHS z!}R3w&Y=?#UpS^YompqDjZWkmvoM>km#YQ9#}{EzY#BMuAyQ|L5;M}q>^Ztf!EK4S z<$m@$C0~o~iaOt`3KI<HmspUJ>?xUQLGoEUM{!$J4P;c1a77%Rl zFhO1jh^qE$O7h!P;43-yuo7Z^pJm$iW;87?V^tF^Pb`XsQ`D?fv0y0{Ycq{AAe zc*y0QKuGiXX_fPT{@#-3A?7jH)4Y!#cf}gCe=_D-xL4ikZ#n<`B(ZnbU8GjpeALz| zZAJARRi2O|kv+MExH<%TsT?HvxO&9C$RYH5NdYo5K+s{Clr#4SB3zN{d?1^h0+YFo z&_nUgmpex+uP6<|j|Lj{9j}!D-!QCOLNqBHsKlz6SvvLGnEhDSdR#j9~g>Ea34m}Ij3!N zY(H9%OgCaAzI-eZ#>BVvKFqdK7L^GMIDy;Z7(Q` zqlpp=zl^L_KLdiTy?g69d*2c6%5Wl89l}*T5L`&_NeV_qnVlU;dVeM2_8%~6@x`lx zD5+P!l`}>ZX6(Kb61?7*?Q*(+KCfT4J!SA7H6ovXiaTVLJ^H#)Y3=T-P-2v)HTUv5c&*w|=&WJ%#iX#a`cvKZJ8^I18HMO2YuNHn73Jzn>|gu3d05Yrdcr+Z z?8fkad$&Hq;A@uRNcJntFv{!Ci-tk#_Z2>;tF0PeQ0n%YKi(D_t3Ai@hoG<|mZR%! zq_vtFq=sq_$9fQ0-BA1cyCeogeyR?2E6llS9X>l1i(lS)^4Oh(^qbYu)G_=DE@z;hvvAEVnvpuL)Z z$xh+>MiTXU$G1h^nlc`hsE4zU*e4h+S50~(M3kb@lMVx)&Tkox=&5Jck4tKt=J{Mm ze8qk|q%U))WP-cp%*w{BeoLf__o`2QPHM-x@csDzx8&1%DlBje3`27Q&GqHod5}9?@Gm9Wg#w($f;4S zTs5v(QN~?AArYb&?9Hd{&G+awBUT^*=~B`$MK5_-57a9;t<y@zd@BE%APjetMQo(`7ki2a;_@ty(~iVGT+jF@c7M# zF4?NZ;ZF}GWWO@@&=T6Y++4@MiA-*KnJ=SKs%6ie(h=ywxT^T+vCFxk(ChQjhV42p z^G}b-dAJSMJq<5=AJz#@`r4h_&~)K;^uBUy?Y?0}k%TOL&|F6{hj~pww@8tQ^P^Z! z)6wo8bp^ zsaqS;&t<2!Lo@|>q+=@kTVtgQKizIt%vx${JcW$N!sNkBqTWD}qdk*)cMRR$1gQYhkC?3=%>p zm9RvqN`~4mmJDB9jay!TbQX`tI4JJ7i+^6wWnppO4=zgY7ivl{Hn1sS8lcn|O!tV! zmk>X_r5c;VbX2+WxU@{lj<`W@UO~Q#2Cq&>pD_3qc=+!9g2-)u>bkf$ef>~k$b|~J za1SKA#P~?W-OVp)c0MG##(G&5j^DHUS9}>3KeRI^DrAi7HfA@BXtM9ednXA~eAVvh zj;Kk&+>xIY({ISazb@%+V$H+eq?P zWwdd3HOSR5v;8lT#?;~Kee5%A#5_j$TA|Kax zo+!>sEyxvrBd4C3O|n_v*@DY1yiXT6HN#g^bXEhsb#Cp-AE={X^HhD-pc|i#+@w$T z6PB$mfk)OPNGET0YN5FrEDgiQ$75oJudG}C>vziJsSVZ}8(buA&oU zcma{benMx;m9#Hpm=dA=veMu!=w1%}C7_YUbR9xWb&S z{D4W%uO`hw)hw(Pc-qetH%ZB5RAXlU=JrAx80wK~yWcT5wtrSz)((7CwtDoz^4a8L z`tM7BH#^jAeV*T2(WF@SB0KEJT~$=hb8KmmJ(R(V={5GIEpNV{HpM@TQb4w_I za&v+Ay|B{erbKQ?2y(GpChu1xT6xTv?&f}f|D#5QdrV6f#x8$voz0)Cne3w-QRTsk zjE1uKE*q}56|GI%lt1$8d3f zt*Cw8<>YoLn3I21zbPp`$%M6G|6SP?LG0DOJ?pPch6##n$C`>?gv|UVy4|}|d3r>b zTEB*4XZSp0TvkG{Vpw~=8#Zez)BA=)p?$RK?xUi40Z^2BhxA!vG2`T&MPA5+HRHE- zM;=+*nJu;NQ3!Yd{h{%|5$dfX3>bNTJ~#2!E4XrkDbz8$uV^jeW|_^kBQ9scyNB zN>A9KxCLBY0pz1W>zfNNo}vnvs|v*nNw)fyaoi92{|{;bAF&E$Ze(+Ga%Eu)Z3<;> zWN%_>3OF;DmAwZf0x~$4(e()x1u-@?F*cVWTMH+Dg|`E6o$tEv9kWrBG>uoR#%80& zwr#E0wr$&u?KHO2*tU%~|Gm%I?Kx+@`6e@K^1F=txu3O22xR1``3!)1hC)CqdunYp84g zArRDmwg0e}1X=;a9IOBgOaKOY4rV3}dPV>P9XN9{K(0^mPcS;_j}Q890AV1|*uoGX z0JOFK2=h-3G;kyUVM8m!5Bl)da{>I*rx4J8*4Xf0MbI(OvjWIX?Cq^NXlac;R7U@( zXzYw=tPJgGDL!iaVPzlyw6rv|vbTeyrvn(6>e~bK42?~#;AsB|rQl+12%rZT7#jVX zC3Wp>O`QSibTo8ybWCh)3~clOx_|!u7i)gBZUD5haQWjZ^)Uhft&+UBtf)BE|5?I+ zf6Vy#fzALoYI=GG763IfGxNt_Sy(|d1*Eaze=~~zs{#&kSWngG)VQOV41GF>!rwzbIgUtU+r(j~LZ*FC1XZJB&hJWb{ ztqlHG1wX9xfd-~l#sCIp7J#m;t*#3k-N)f!_*kMFJ;3xMlrzB4`6D?kjTO*;{=)@e z?O^W#_&Aer|7?nd89>YTkLcgT0-)vpL#zN=fj`6spcVW>>;T#y{~=a70Ikp;q6g3l z{~-ndt;io@1kj59AtnH=*dO}HF7byxvP=GfWLN%wLm$~y{?JEu)&CItho$Zx`mogdLm!s<{~_iNoj%aw zW7q#JVPg76VrluupPufc8H2y@W0r=0B7D^N@6-67J^Z7$anQB+kA(4~_WupHtsqOz5I^#zP)`qtF9~bx^ zQXQT$2A{0|vA{AaM7>j(CQYz~+qP}n#1HD?%;weX{e4SF>9cn(bwp<`INPDAtX4F&&cc8uFcx?E8S?*w7n7 zL2}gfWKI%Wet9hXgSoF$75l}XbBg*%iXz*ZQz$_IN~%OzD@Ny@ug=vnW;Kmo0`YWMrQ8Wir zm-LasVFl0c3mga)H*#Ofpz?g8JgW>mL_IS)Uanq(ha5w01~%qOkTl{nqY&zB4KY!- z_$k`~n6EZHEy2SCrBP_;$8PpV5=y${TCU%|a3?V&HD*V8#Hm&mb9v-qYTbO5;WzPV zRaZpD8S;HgjrT^vi{r&W!u`M4Qe=qk=%9%oXgfj-H6Zc)2#`j&c5 zadzN}CJ4EskvD5X|bIA~U70<;OR1oeLFc z&{Rxz6YW^ToQf~{sdfFN)TfP&jRqV*`MubXuSFtehmLm8IZrwS-3j@ovM+E&v~rD zD__k``4K%TobD;XQH#bUZ7MZDM4$>o#fE`FTD%~!XtLk+dy(AJV0u$8{AVlBdD;3Y z&(WD%e5V2UxYm)u2^xuV;TRINj1DD{K)-Mi-k!18ENcR(d7Hy z@!@5#7`S1tmB5&uhgB1tGH>d5Kq3fvTDis0Op8siK7W6u=@3JKnM4@@Bp#J`wPRa; zPPwV6vcP#hssl|rv9ycKydB-?H#Yh9@K#4dFzrQ)lI!-h1Vnlr%61O%YQxwDu$5Mb zOQpoc!yE;izs$xQ92>hfL(y=PCU45SFQJn(K9p8hQI;erQ}Aj@@k}JWBg)}-gR5c}ob3XHeiarOb;(>ZY{)UBi9UnqK)sIKcJgs0c9 zS>RBdQXX;|q{Tyw#C<{~?Mbd$maYHFzgxE`W~CjmfAPKVRN zQ5pVF$wVaSG+ePj!Raelu>la(tYf6a9n^uROVzTn;bG0 z-YWQ_t0A7~wq!7oL}^cYY+PJ62ow1`m0XO9Zw6K}hJ?2gXRhpUSy%Xl9>N28gnCa} zs0T-I8su^9s|7v)S7V#aN-vv?o^)&2W))6ShZVoZ`?T&{!`wCa(7`Drh79&OY`(u|A1q<~ zcAZwhQduaiFl@lW)_XFExs*QSzI%zt!f6}m_L@YUW1G7OpXo58DrAQUg%>7Fli{7i zKA6L}wLgdiBvrI<`5)5S9}wlhZ@?6<165B4Bf|%bO>h6!0VSs5+MTOO4(khiqbJ@G zaGbCewfVb-fUTBx{S)L&{kua}Z&C`5Qh?`=NKoRwTw_71te>TZXX{zPl~)DfQ%4%HE? zseLuu9;+wDGOC8x46M$E&8fZ3%k*d1(i2MR=#)9)o41E;p+5BJkYZbyCy=fWSD{ae zN)~<$fLedkEGAbRY*+;}f%;l~FO{c9A1zVw#ieYXG(Y@p#FSAM?|rJ8BDk>Pyq-xC z?vGix|0?0m*hRK8C|E3(gs5Y8qQQc6HiA?s`{p3_*e$XQVdA(@awGBhT+{-prZ_5l zyUTRY7;kY*0mhy3qQUvPc!syp3-v}LNpJx%Akn=Jo4*!k)I3W;z8>XIqCD7xE0>*A z0;^4_#e7s>(2(Yca5T`1Oe^O>muxV*N&>=Mb7;9?b)AfF`MTDns@oBU!g1?(=0|34 z_|5QYSl?;*QH(YLu}Uo?#P1Hbtq?uj+bqe4SG!{{r=CC4aER=kf?|KnP@{cmrn7cN z040*QZuM4Z3neP;(k(a#5;L(~XR5aQC`~8)!Vs zrjXF28an98P2Ih*KWfp-08WIjzSb8ym81lNQxTznn4M1Xq$849;#-Oi+(6{g}- z${KcQN*78@P=UE8{&j^Nh`rCINeyCZ$*{@40>98ss`o=NM99qU>JN8z=#L| zJbQQELy$;Nl#(-t6 zS}v%W`bjs1x&cSEnMZ}tZ zvIH8x+L^Z4%XzTfu9Kh_dx81`AlrHpS?fU#QXN}k8$;Bw&T1_waeAf#?(*a71hPuf z=e#k(k2mOB^V!BfU*&nPKm_9|s*r?hffmm7uT-{cW;Nfl)^U5$!Sr3g5pTLcUyb+@ zRxPg0o*XJ-Oj0Adydd#X$)%DxVSi(m%g#LMgwoS}f=gz=2(j;titNv8WWue+v2jK!0H~cNfBMsKESyDSiBCOCJ*>A$NMoTQMqg zj;}o~Ap;TTqq(9-C_3QAj!vgcCa#8jC8eT-Yipvw#t-68WRp93*VEvw`HI^x8S
jqd0R9m6i+Y`?|z(qNxKr%x8lkSrP_=gW) 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°* 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%0Dn&t6+%jKCLv1^47z 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�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 Date: Mon, 22 Apr 2024 14:53:01 +0200 Subject: [PATCH 048/110] refactor: merge dispatch borrow-withdraw --- test/forge/HalmosTest.sol | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index fffce5c2d..ff80bc251 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -70,14 +70,10 @@ contract HalmosTest is SymTest, Test { bytes memory args; - if (selector == morpho.supply.selector) { + if (selector == morpho.supply.selector || selector == morpho.repay.selector) { args = abi.encode(marketParams, assets, shares, onBehalf, emptyData); - } else if (selector == morpho.withdraw.selector) { + } else if (selector == morpho.withdraw.selector || selector == morpho.borrow.selector) { args = abi.encode(marketParams, assets, shares, onBehalf, receiver); - } else if (selector == morpho.borrow.selector) { - args = abi.encode(marketParams, assets, shares, onBehalf, receiver); - } else if (selector == morpho.repay.selector) { - args = abi.encode(marketParams, assets, shares, onBehalf, emptyData); } else if (selector == morpho.supplyCollateral.selector) { args = abi.encode(marketParams, assets, onBehalf, emptyData); } else if (selector == morpho.withdrawCollateral.selector) { From dc2c664496962331445b2c0bc9ba40e4fd77ae46 Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 22 Apr 2024 15:33:48 +0200 Subject: [PATCH 049/110] test: halmos document check_idToMarketParamsForCreatedMarketCannotChange --- test/forge/HalmosTest.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index ff80bc251..c2649cb43 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -172,6 +172,8 @@ contract HalmosTest is SymTest, Test { assert(nonceAfter == nonceBefore); } + // Check that idToMarketParams cannot change. + // Note: ok because createMarket is never called by _callMorpho. function check_idToMarketParamsForCreatedMarketCannotChange(bytes4 selector, address caller) public { MarketParams memory itmpBefore = morpho.idToMarketParams(id); From da3ebee920aecb30e7df0ab77aa1382f4aa127e6 Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 22 Apr 2024 15:36:45 +0200 Subject: [PATCH 050/110] test: (halmos) fix check_nonceCannotDecrease --- test/forge/HalmosTest.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index c2649cb43..bbf9293a6 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -169,7 +169,7 @@ contract HalmosTest is SymTest, Test { _callMorpho(selector, caller); uint256 nonceAfter = morpho.nonce(user); - assert(nonceAfter == nonceBefore); + assert(nonceAfter == nonceBefore || nonceAfter == nonceBefore + 1); } // Check that idToMarketParams cannot change. From 0bdca52a44fdc5e5cc0fa290f3e72cc36930af7d Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 22 Apr 2024 18:26:18 +0200 Subject: [PATCH 051/110] refactor: simplify setup, and generalize id --- test/forge/HalmosTest.sol | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index bbf9293a6..3d0e1604b 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -18,10 +18,7 @@ contract HalmosTest is SymTest, Test { using MorphoLib for IMorpho; using MarketParamsLib for MarketParams; - uint256 internal constant BLOCK_TIME = 1; - - address internal OWNER; - address internal FEE_RECIPIENT; + address internal owner; IMorpho internal morpho; ERC20Mock internal loanToken; @@ -34,10 +31,8 @@ contract HalmosTest is SymTest, Test { Id internal id; function setUp() public virtual { - OWNER = address(0x10); - FEE_RECIPIENT = address(0x11); - - morpho = IMorpho(address(new Morpho(OWNER))); + owner = svm.createAddress("owner"); + morpho = IMorpho(address(new Morpho(owner))); loanToken = new ERC20Mock(); collateralToken = new ERC20Mock(); @@ -49,8 +44,7 @@ contract HalmosTest is SymTest, Test { marketParams = MarketParams(address(loanToken), address(collateralToken), address(oracle), address(irm), lltv); id = marketParams.id(); - vm.assume(block.timestamp != 0); - vm.startPrank(OWNER); + vm.startPrank(owner); morpho.enableIrm(address(irm)); morpho.enableLltv(lltv); morpho.createMarket(marketParams); @@ -108,33 +102,39 @@ contract HalmosTest is SymTest, Test { } // Check that the fee is always smaller than the max fee. - function check_feeInRange(bytes4 selector, address caller) public { + function check_feeInRange(bytes4 selector, address caller, Id _id) public { + vm.assume(morpho.fee(_id) <= MAX_FEE); + _callMorpho(selector, caller); - assert(morpho.fee(id) <= MAX_FEE); + assert(morpho.fee(_id) <= MAX_FEE); } // Check that there is always less borrow than supply on the market. - function check_borrowLessThanSupply(bytes4 selector, address caller) public { + function check_borrowLessThanSupply(bytes4 selector, address caller, Id _id) public { + vm.assume(morpho.totalBorrowAssets(_id) <= morpho.totalSupplyAssets(id)); + _callMorpho(selector, caller); - assert(morpho.totalBorrowAssets(id) <= morpho.totalSupplyAssets(id)); + assert(morpho.totalBorrowAssets(_id) <= morpho.totalSupplyAssets(_id)); } // Check that the market cannot be "destroyed". - function check_lastUpdateNonZero(bytes4 selector, address caller) public { + function check_lastUpdateNonZero(bytes4 selector, address caller, Id _id) public { + vm.assume(morpho.lastUpdate(_id) != 0); + _callMorpho(selector, caller); - assert(morpho.lastUpdate(id) != 0); + assert(morpho.lastUpdate(_id) != 0); } // Check that the lastUpdate can only increase. - function check_lastUpdateCannotDecrease(bytes4 selector, address caller) public { - uint256 lastUpdateBefore = morpho.lastUpdate(id); + function check_lastUpdateCannotDecrease(bytes4 selector, address caller, Id _id) public { + uint256 lastUpdateBefore = morpho.lastUpdate(_id); _callMorpho(selector, caller); - uint256 lastUpdateAfter = morpho.lastUpdate(id); + uint256 lastUpdateAfter = morpho.lastUpdate(_id); assert(lastUpdateAfter >= lastUpdateBefore); } From 0618762067acea0de197d43fb627cc1fd504e4f8 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 22 Apr 2024 18:50:18 +0200 Subject: [PATCH 052/110] refactor: make id completely symbolic --- test/forge/HalmosTest.sol | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 3d0e1604b..f9ddc5ec8 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -28,7 +28,6 @@ contract HalmosTest is SymTest, Test { uint256 internal lltv; MarketParams internal marketParams; - Id internal id; function setUp() public virtual { owner = svm.createAddress("owner"); @@ -42,7 +41,6 @@ contract HalmosTest is SymTest, Test { lltv = svm.createUint256("lltv"); marketParams = MarketParams(address(loanToken), address(collateralToken), address(oracle), address(irm), lltv); - id = marketParams.id(); vm.startPrank(owner); morpho.enableIrm(address(irm)); @@ -102,39 +100,39 @@ contract HalmosTest is SymTest, Test { } // Check that the fee is always smaller than the max fee. - function check_feeInRange(bytes4 selector, address caller, Id _id) public { - vm.assume(morpho.fee(_id) <= MAX_FEE); + function check_feeInRange(bytes4 selector, address caller, Id id) public { + vm.assume(morpho.fee(id) <= MAX_FEE); _callMorpho(selector, caller); - assert(morpho.fee(_id) <= MAX_FEE); + assert(morpho.fee(id) <= MAX_FEE); } // Check that there is always less borrow than supply on the market. - function check_borrowLessThanSupply(bytes4 selector, address caller, Id _id) public { - vm.assume(morpho.totalBorrowAssets(_id) <= morpho.totalSupplyAssets(id)); + function check_borrowLessThanSupply(bytes4 selector, address caller, Id id) public { + vm.assume(morpho.totalBorrowAssets(id) <= morpho.totalSupplyAssets(id)); _callMorpho(selector, caller); - assert(morpho.totalBorrowAssets(_id) <= morpho.totalSupplyAssets(_id)); + assert(morpho.totalBorrowAssets(id) <= morpho.totalSupplyAssets(id)); } // Check that the market cannot be "destroyed". - function check_lastUpdateNonZero(bytes4 selector, address caller, Id _id) public { - vm.assume(morpho.lastUpdate(_id) != 0); + function check_lastUpdateNonZero(bytes4 selector, address caller, Id id) public { + vm.assume(morpho.lastUpdate(id) != 0); _callMorpho(selector, caller); - assert(morpho.lastUpdate(_id) != 0); + assert(morpho.lastUpdate(id) != 0); } // Check that the lastUpdate can only increase. - function check_lastUpdateCannotDecrease(bytes4 selector, address caller, Id _id) public { - uint256 lastUpdateBefore = morpho.lastUpdate(_id); + function check_lastUpdateCannotDecrease(bytes4 selector, address caller, Id id) public { + uint256 lastUpdateBefore = morpho.lastUpdate(id); _callMorpho(selector, caller); - uint256 lastUpdateAfter = morpho.lastUpdate(_id); + uint256 lastUpdateAfter = morpho.lastUpdate(id); assert(lastUpdateAfter >= lastUpdateBefore); } @@ -174,7 +172,7 @@ contract HalmosTest is SymTest, Test { // Check that idToMarketParams cannot change. // Note: ok because createMarket is never called by _callMorpho. - function check_idToMarketParamsForCreatedMarketCannotChange(bytes4 selector, address caller) public { + function check_idToMarketParamsForCreatedMarketCannotChange(bytes4 selector, address caller, Id id) public { MarketParams memory itmpBefore = morpho.idToMarketParams(id); _callMorpho(selector, caller); From 5a79282a4e109fcc067d88f3d178f5ad16f8a985 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 22 Apr 2024 18:54:19 +0200 Subject: [PATCH 053/110] refactor: move Halmos test to its own folder --- test/{forge => halmos}/HalmosTest.sol | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{forge => halmos}/HalmosTest.sol (100%) diff --git a/test/forge/HalmosTest.sol b/test/halmos/HalmosTest.sol similarity index 100% rename from test/forge/HalmosTest.sol rename to test/halmos/HalmosTest.sol From c30539369d1649cc9c47ccc3f26092c00d4fa0be Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 25 Apr 2024 12:00:02 +0200 Subject: [PATCH 054/110] feat: additional rule for liquidate in ratio math --- certora/specs/Health.spec | 5 +---- certora/specs/RatioMath.spec | 26 ++++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 45c535187..053135c2c 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -50,10 +50,7 @@ function summaryMin(uint256 a, uint256 b) returns uint256 { // This rule times out for liquidate, repay and borrow. rule stayHealthy(env e, method f, calldataarg data) filtered { - f -> !f.isView && - f.selector != sig:liquidate(MorphoHarness.MarketParams, address, uint256, uint256, bytes).selector && - f.selector != sig:repay(MorphoHarness.MarketParams, uint256, uint256, address, bytes).selector && - f.selector != sig:borrow(MorphoHarness.MarketParams, uint256, uint256, address, address).selector + f -> !f.isView } { MorphoHarness.MarketParams marketParams; diff --git a/certora/specs/RatioMath.spec b/certora/specs/RatioMath.spec index 1fabb7742..722ec9921 100644 --- a/certora/specs/RatioMath.spec +++ b/certora/specs/RatioMath.spec @@ -129,7 +129,7 @@ rule liquidateWithoutBadDebtRealizationIncreasesSupplyRatio(env e, MorphoHarness // Check that except when not accruing interest, every function is decreasing the value of borrow shares. // The repay function is checked separately, see below. -// The liquidate function is not checked. +// The liquidate function is checked separately, see below. rule onlyAccrueInterestCanIncreaseBorrowRatio(env e, method f, calldataarg args) filtered { f -> !f.isView && @@ -172,8 +172,30 @@ rule repayDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams, u mathint repaidAssets; repaidAssets, _ = repay(e, marketParams, assets, shares, onBehalf, data); - // Check the case where the market is not repaid fully. + mathint assetsAfter = virtualTotalBorrowAssets(id); + mathint sharesAfter = virtualTotalBorrowShares(id); + + assert assetsAfter == assetsBefore - repaidAssets; + // Check that the ratio decreases: assetsBefore/sharesBefore >= assetsAfter / sharesAfter + assert assetsBefore * sharesAfter >= assetsAfter * sharesBefore; +} + +rule liquidateDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, uint256 repaidShares, bytes data) +{ + require data.length == 0; + MorphoHarness.Id id = libId(marketParams); + + mathint assetsBefore = virtualTotalBorrowAssets(id); + mathint sharesBefore = virtualTotalBorrowShares(id); + + // Interest would increase borrow ratio, so we need to assume that no time passes. + require lastUpdate(id) == e.block.timestamp; + + mathint repaidAssets; + _, repaidAssets = liquidate(e, marketParams, borrower, seizedAssets, repaidShares, data); + require repaidAssets < assetsBefore; + require collateral(id, borrower) != 0; mathint assetsAfter = virtualTotalBorrowAssets(id); mathint sharesAfter = virtualTotalBorrowShares(id); From d3e4b17a552cb2c0673c056b1a1d809cf3fb7a55 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 25 Apr 2024 13:07:07 +0200 Subject: [PATCH 055/110] fix: assumption for liquidate --- certora/specs/RatioMath.spec | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/certora/specs/RatioMath.spec b/certora/specs/RatioMath.spec index 722ec9921..913b76119 100644 --- a/certora/specs/RatioMath.spec +++ b/certora/specs/RatioMath.spec @@ -156,7 +156,7 @@ filtered { } // Check that when not accruing interest, repay is decreasing the value of borrow shares. -// Check the case where the market is not repaid fully. +// Check the case where it would not repay more than the total assets. // The other case requires exact math (ie not over-approximating mulDivUp and mulDivDown), so it is checked separately in ExactMath.spec. rule repayDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { @@ -172,6 +172,9 @@ rule repayDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams, u mathint repaidAssets; repaidAssets, _ = repay(e, marketParams, assets, shares, onBehalf, data); + // Check the case where it would not repay more than the total assets. + require repaidAssets < assetsBefore; + mathint assetsAfter = virtualTotalBorrowAssets(id); mathint sharesAfter = virtualTotalBorrowShares(id); @@ -191,16 +194,13 @@ rule liquidateDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParam // Interest would increase borrow ratio, so we need to assume that no time passes. require lastUpdate(id) == e.block.timestamp; - mathint repaidAssets; - _, repaidAssets = liquidate(e, marketParams, borrower, seizedAssets, repaidShares, data); - - require repaidAssets < assetsBefore; - require collateral(id, borrower) != 0; + liquidate(e, marketParams, borrower, seizedAssets, repaidShares, data); mathint assetsAfter = virtualTotalBorrowAssets(id); mathint sharesAfter = virtualTotalBorrowShares(id); - assert assetsAfter == assetsBefore - repaidAssets; + require assetsAfter != 1; + // Check that the ratio decreases: assetsBefore/sharesBefore >= assetsAfter / sharesAfter assert assetsBefore * sharesAfter >= assetsAfter * sharesBefore; } From dcab253ebae64916beeaf64ab7435a77c3bba1a7 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 25 Apr 2024 13:45:40 +0200 Subject: [PATCH 056/110] fix: min summary --- certora/harness/MorphoHarness.sol | 4 ++++ certora/specs/LibSummary.spec | 15 ++++++++++----- certora/specs/RatioMath.spec | 5 +++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/certora/harness/MorphoHarness.sol b/certora/harness/MorphoHarness.sol index 016cfcde1..ff504632b 100644 --- a/certora/harness/MorphoHarness.sol +++ b/certora/harness/MorphoHarness.sol @@ -90,6 +90,10 @@ contract MorphoHarness is Morpho { return MathLib.mulDivDown(x, y, d); } + function libMin(uint256 x, uint256 y) external pure returns (uint256) { + return UtilsLib.min(x, y); + } + function isHealthy(MarketParams memory marketParams, address user) external view returns (bool) { return _isHealthy(marketParams, marketParams.id(), user); } diff --git a/certora/specs/LibSummary.spec b/certora/specs/LibSummary.spec index 030e89140..1790a22f3 100644 --- a/certora/specs/LibSummary.spec +++ b/certora/specs/LibSummary.spec @@ -1,11 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-or-later methods { - function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; + function extSloads(bytes32[]) external returns(bytes32[]) => NONDET DELETE; - function libMulDivUp(uint256, uint256, uint256) external returns uint256 envfree; - function libMulDivDown(uint256, uint256, uint256) external returns uint256 envfree; - function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; - function refId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function libMulDivUp(uint256, uint256, uint256) external returns(uint256) envfree; + function libMulDivDown(uint256, uint256, uint256) external returns(uint256) envfree; + function libId(MorphoHarness.MarketParams) external returns(MorphoHarness.Id) envfree; + function refId(MorphoHarness.MarketParams) external returns(MorphoHarness.Id) envfree; + function libMin(uint256 x, uint256 y) external returns(uint256) envfree; } // Check the summary of MathLib.mulDivUp required by RatioMath.spec @@ -24,3 +25,7 @@ rule checkSummaryMulDivDown(uint256 x, uint256 y, uint256 d) { rule checkSummaryId(MorphoHarness.MarketParams marketParams) { assert libId(marketParams) == refId(marketParams); } + +rule checkSummaryMin(uint256 x, uint256 y) { + assert libMin(x, y) == x < y ? x : y; +} diff --git a/certora/specs/RatioMath.spec b/certora/specs/RatioMath.spec index 913b76119..ea78899d5 100644 --- a/certora/specs/RatioMath.spec +++ b/certora/specs/RatioMath.spec @@ -13,6 +13,7 @@ methods { function maxFee() external returns uint256 envfree; function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function UtilsLib.min(uint256 x, uint256 y) internal returns uint256 => summaryMin(x, y); function MathLib.mulDivDown(uint256 a, uint256 b, uint256 c) internal returns uint256 => summaryMulDivDown(a,b,c); function MathLib.mulDivUp(uint256 a, uint256 b, uint256 c) internal returns uint256 => summaryMulDivUp(a,b,c); function MathLib.wTaylorCompounded(uint256, uint256) internal returns uint256 => NONDET; @@ -24,6 +25,10 @@ methods { invariant feeInRange(MorphoHarness.Id id) fee(id) <= maxFee(); +function summaryMin(uint256 x, uint256 y) returns uint256 { + return x < y ? x : y; +} + // This is a simple overapproximative summary, stating that it rounds in the right direction. function summaryMulDivUp(uint256 x, uint256 y, uint256 d) returns uint256 { uint256 result; From 53c124b216d3b15279f756db0c9929fe75f9108d Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 25 Apr 2024 13:48:30 +0200 Subject: [PATCH 057/110] docs: remove some spaces --- certora/README.md | 2 +- certora/specs/RatioMath.spec | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/certora/README.md b/certora/README.md index 8d6127320..17e4ee5eb 100644 --- a/certora/README.md +++ b/certora/README.md @@ -73,7 +73,7 @@ The share mechanism is implemented symetrically for the borrow side: a share of The rule `accrueInterestIncreasesSupplyRatio` checks this property for the supply side with the following statement. ```soldidity - // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter. + // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter assert assetsBefore * sharesAfter <= assetsAfter * sharesBefore; ``` diff --git a/certora/specs/RatioMath.spec b/certora/specs/RatioMath.spec index ea78899d5..179a135eb 100644 --- a/certora/specs/RatioMath.spec +++ b/certora/specs/RatioMath.spec @@ -59,7 +59,7 @@ rule accrueInterestIncreasesSupplyRatio(env e, MorphoHarness.MarketParams market mathint assetsAfter = virtualTotalSupplyAssets(id); mathint sharesAfter = virtualTotalSupplyShares(id); - // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter / sharesAfter. + // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter. assert assetsBefore * sharesAfter <= assetsAfter * sharesBefore; } @@ -77,7 +77,7 @@ rule accrueInterestIncreasesBorrowRatio(env e, MorphoHarness.MarketParams market mathint assetsAfter = virtualTotalBorrowAssets(id); mathint sharesAfter = virtualTotalBorrowShares(id); - // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter / sharesAfter. + // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter. assert assetsBefore * sharesAfter <= assetsAfter * sharesBefore; } From 4c202de81f3be90021fe3caa91b18843a0ef99ed Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 25 Apr 2024 13:51:03 +0200 Subject: [PATCH 058/110] fix: parsing of ternary --- certora/specs/LibSummary.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/certora/specs/LibSummary.spec b/certora/specs/LibSummary.spec index 1790a22f3..08b7b1e02 100644 --- a/certora/specs/LibSummary.spec +++ b/certora/specs/LibSummary.spec @@ -27,5 +27,6 @@ rule checkSummaryId(MorphoHarness.MarketParams marketParams) { } rule checkSummaryMin(uint256 x, uint256 y) { - assert libMin(x, y) == x < y ? x : y; + uint256 summaryMin = x < y ? x : y; + assert libMin(x, y) == summaryMin; } From 7ce469f0e08d7717f19e61bc641d178fb5b0a0b4 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 25 Apr 2024 13:51:53 +0200 Subject: [PATCH 059/110] docs: small renaming consistency --- certora/specs/LibSummary.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/certora/specs/LibSummary.spec b/certora/specs/LibSummary.spec index 08b7b1e02..380ed9f82 100644 --- a/certora/specs/LibSummary.spec +++ b/certora/specs/LibSummary.spec @@ -27,6 +27,6 @@ rule checkSummaryId(MorphoHarness.MarketParams marketParams) { } rule checkSummaryMin(uint256 x, uint256 y) { - uint256 summaryMin = x < y ? x : y; - assert libMin(x, y) == summaryMin; + uint256 refMin = x < y ? x : y; + assert libMin(x, y) == refMin; } From a4503eba5f4b586351d59aa353932ec38a4c7f25 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 25 Apr 2024 13:55:10 +0200 Subject: [PATCH 060/110] refactor: conform to current style --- certora/specs/LibSummary.spec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/certora/specs/LibSummary.spec b/certora/specs/LibSummary.spec index 380ed9f82..a31f21c9b 100644 --- a/certora/specs/LibSummary.spec +++ b/certora/specs/LibSummary.spec @@ -1,12 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-or-later methods { - function extSloads(bytes32[]) external returns(bytes32[]) => NONDET DELETE; + function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; - function libMulDivUp(uint256, uint256, uint256) external returns(uint256) envfree; - function libMulDivDown(uint256, uint256, uint256) external returns(uint256) envfree; - function libId(MorphoHarness.MarketParams) external returns(MorphoHarness.Id) envfree; - function refId(MorphoHarness.MarketParams) external returns(MorphoHarness.Id) envfree; - function libMin(uint256 x, uint256 y) external returns(uint256) envfree; + function libMulDivUp(uint256, uint256, uint256) external returns uint256 envfree; + function libMulDivDown(uint256, uint256, uint256) external returns uint256 envfree; + function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function refId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function libMin(uint256 x, uint256 y) external returns uint256 envfree; } // Check the summary of MathLib.mulDivUp required by RatioMath.spec From 6a0b07998dadf2a239304bea93272289e37e66d6 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 25 Apr 2024 14:00:02 +0200 Subject: [PATCH 061/110] fix: use bit vector theory for checking summaries --- certora/confs/LibSummary.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/certora/confs/LibSummary.conf b/certora/confs/LibSummary.conf index 58d83ca43..b89e7fe35 100644 --- a/certora/confs/LibSummary.conf +++ b/certora/confs/LibSummary.conf @@ -5,6 +5,9 @@ "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/LibSummary.spec", "rule_sanity": "basic", + "prover_args": [ + "-useBitVectorTheory", + ], "server": "production", "msg": "Morpho Blue Lib Summary" } From 666094791e952cd2d0657321c839c8b07c4c7487 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 13 May 2024 10:49:03 +0200 Subject: [PATCH 062/110] test: improve bound --- test/forge/BaseTest.sol | 9 +-------- test/forge/invariant/MorphoInvariantTest.sol | 6 +++--- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/test/forge/BaseTest.sol b/test/forge/BaseTest.sol index f00917261..29020d1af 100644 --- a/test/forge/BaseTest.sol +++ b/test/forge/BaseTest.sol @@ -139,13 +139,6 @@ contract BaseTest is Test { return bound(blocks, 1, type(uint32).max); } - /// @dev Bounds the fuzzing input to a non-zero address. - /// @dev This function should be used in place of `vm.assume` in invariant test handler functions: - /// https://github.com/foundry-rs/foundry/issues/4190. - function _boundAddressNotZero(address input) internal view virtual returns (address) { - return address(uint160(bound(uint256(uint160(input)), 1, type(uint160).max))); - } - function _supply(uint256 amount) internal { loanToken.setBalance(address(this), amount); morpho.supply(marketParams, amount, 0, address(this), hex""); @@ -194,7 +187,7 @@ contract BaseTest is Test { uint256 maxCollateral = amountBorrowed.wDivDown(marketParams.lltv).mulDivDown(ORACLE_PRICE_SCALE, priceCollateral); - amountCollateral = bound(amountBorrowed, 0, Math.min(maxCollateral, MAX_COLLATERAL_ASSETS)); + amountCollateral = bound(amountCollateral, 0, Math.min(maxCollateral, MAX_COLLATERAL_ASSETS)); vm.assume(amountCollateral > 0); return (amountCollateral, amountBorrowed, priceCollateral); diff --git a/test/forge/invariant/MorphoInvariantTest.sol b/test/forge/invariant/MorphoInvariantTest.sol index 122d5f515..a0202391b 100644 --- a/test/forge/invariant/MorphoInvariantTest.sol +++ b/test/forge/invariant/MorphoInvariantTest.sol @@ -235,7 +235,7 @@ contract MorphoInvariantTest is InvariantTest { function withdrawAssetsOnBehalfNoRevert(uint256 marketSeed, uint256 assets, uint256 onBehalfSeed, address receiver) external { - receiver = _boundAddressNotZero(receiver); + vm.assume(receiver != address(0)); MarketParams memory _marketParams = _randomMarket(marketSeed); @@ -251,7 +251,7 @@ contract MorphoInvariantTest is InvariantTest { function borrowAssetsOnBehalfNoRevert(uint256 marketSeed, uint256 assets, uint256 onBehalfSeed, address receiver) external { - receiver = _boundAddressNotZero(receiver); + vm.assume(receiver != address(0)); MarketParams memory _marketParams = _randomMarket(marketSeed); @@ -305,7 +305,7 @@ contract MorphoInvariantTest is InvariantTest { uint256 onBehalfSeed, address receiver ) external { - receiver = _boundAddressNotZero(receiver); + vm.assume(receiver != address(0)); MarketParams memory _marketParams = _randomMarket(marketSeed); From 258b7ba983076e33ce3c3dfcb72f21aa6bb94cc3 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 13 May 2024 11:06:29 +0200 Subject: [PATCH 063/110] chore: ratio math configuration for timeout --- certora/confs/RatioMath.conf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/certora/confs/RatioMath.conf b/certora/confs/RatioMath.conf index 4cba64fbe..cf88ca662 100644 --- a/certora/confs/RatioMath.conf +++ b/certora/confs/RatioMath.conf @@ -7,8 +7,7 @@ "rule_sanity": "basic", "prover_args": [ "-smt_hashingScheme plaininjectivity", - "-mediumTimeout 30", - "-timeout 3600", + "-smt_easy_LIA true", ], "server": "production", "msg": "Morpho Blue Ratio Math" From 0599c4777ca62b2296d6f27af76017b756297004 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 13 May 2024 12:00:46 +0200 Subject: [PATCH 064/110] chore: switch to certora-cli-beta --- .github/workflows/certora.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index 6203f6f31..f43bae57a 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -39,7 +39,7 @@ jobs: python-version: ">=3.9" - name: Install certora - run: pip install certora-cli + run: pip install certora-cli-beta - name: Install solc run: | From 15cfbe920c044983bca09e3667e3c8d64eb04a01 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 18 Jun 2024 10:20:32 +0200 Subject: [PATCH 065/110] fix: abandon liquidate --- certora/specs/Health.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 053135c2c..cd4cca944 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -47,10 +47,11 @@ function summaryMin(uint256 a, uint256 b) returns uint256 { } // Check that without accruing interest, no interaction can put an healthy account into an unhealthy one. -// This rule times out for liquidate, repay and borrow. +// The liquidate function times out in this rule, but has been checked separately. rule stayHealthy(env e, method f, calldataarg data) filtered { - f -> !f.isView + f -> !f.isView && + f.selector != sig:liquidate(MorphoHarness.MarketParams, address, uint256, uint256, bytes).selector } { MorphoHarness.MarketParams marketParams; From 1bbea70ac7abc51b6ac8fafaa1f34484e0f1a2e7 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 18 Jun 2024 13:50:06 +0200 Subject: [PATCH 066/110] chore: revert to certora-cli --- .github/workflows/certora.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index f43bae57a..6203f6f31 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -39,7 +39,7 @@ jobs: python-version: ">=3.9" - name: Install certora - run: pip install certora-cli-beta + run: pip install certora-cli - name: Install solc run: | From ecb938103bae910d7ea8bb524b1ef6398301fa69 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 26 Jun 2024 18:06:11 +0200 Subject: [PATCH 067/110] fix: more precise dealt amount liquidate --- test/forge/invariant/MorphoInvariantTest.sol | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/forge/invariant/MorphoInvariantTest.sol b/test/forge/invariant/MorphoInvariantTest.sol index a0202391b..8e007e9db 100644 --- a/test/forge/invariant/MorphoInvariantTest.sol +++ b/test/forge/invariant/MorphoInvariantTest.sol @@ -169,9 +169,13 @@ contract MorphoInvariantTest is InvariantTest { logCall("liquidateSeizedAssets") { uint256 collateralPrice = oracle.price(); - uint256 repaidAssets = seizedAssets.mulDivUp(collateralPrice, ORACLE_PRICE_SCALE).wDivUp( - _liquidationIncentiveFactor(_marketParams.lltv) + uint256 liquidationIncentiveFactor = _liquidationIncentiveFactor(_marketParams.lltv); + Market memory _market = morpho.market(_marketParams.id()); + uint256 seizedAssetsQuoted = seizedAssets.mulDivUp(collateralPrice, ORACLE_PRICE_SCALE); + uint256 repaidShares = seizedAssetsQuoted.wDivUp(liquidationIncentiveFactor).toSharesUp( + _market.totalBorrowAssets, _market.totalBorrowShares ); + uint256 repaidAssets = repaidShares.toAssetsUp(_market.totalBorrowAssets, _market.totalBorrowShares); loanToken.setBalance(msg.sender, repaidAssets); From 63ead62cd829f4ffb24de5e475f731963451a5a3 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 1 Jul 2024 15:40:43 +0200 Subject: [PATCH 068/110] chore: rename ratio to exchange rate --- .github/workflows/certora.yml | 2 +- certora/README.md | 6 ++-- .../{RatioMath.conf => ExchangeRate.conf} | 4 +-- certora/specs/ExactMath.spec | 6 ++-- .../{RatioMath.spec => ExchangeRate.spec} | 34 +++++++++---------- certora/specs/LibSummary.spec | 4 +-- 6 files changed, 28 insertions(+), 28 deletions(-) rename certora/confs/{RatioMath.conf => ExchangeRate.conf} (71%) rename certora/specs/{RatioMath.spec => ExchangeRate.spec} (79%) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index 6203f6f31..e0931e6e0 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -20,10 +20,10 @@ jobs: - AssetsAccounting - ConsistentState - ExactMath + - ExchangeRate - Health - LibSummary - Liveness - - RatioMath - Reentrancy - Reverts - Transfer diff --git a/certora/README.md b/certora/README.md index 17e4ee5eb..8f638716f 100644 --- a/certora/README.md +++ b/certora/README.md @@ -70,10 +70,10 @@ Said otherwise, markets are independent: tokens from a given market cannot be im When supplying on Morpho Blue, interest is earned over time, and the distribution is implemented through a shares mechanism. Shares increase in value as interest is accrued. The share mechanism is implemented symetrically for the borrow side: a share of borrow increasing in value over time represents additional owed interest. -The rule `accrueInterestIncreasesSupplyRatio` checks this property for the supply side with the following statement. +The rule `accrueInterestIncreasesSupplyExchangeRate` checks this property for the supply side with the following statement. ```soldidity - // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter + // Check that the exchange rate increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter assert assetsBefore * sharesAfter <= assetsAfter * sharesBefore; ``` @@ -253,7 +253,7 @@ The [`certora/specs`](specs) folder contains the following files: Notably, functions cannot render an account unhealthy, and debt positions always have some collateral (thanks to the bad debt realization mechanism). - [`LibSummary.spec`](specs/LibSummary.spec) checks the summarization of the library functions that are used in other specification files. - [`Liveness.spec`](specs/Liveness.spec) checks that main functions change the owner of funds and the amount of shares as expected, and that it's always possible to exit a position. -- [`RatioMath.spec`](specs/RatioMath.spec) checks that the ratio between shares and assets evolves predictably over time. +- [`ExchangeRate.spec`](specs/ExchangeRate.spec) checks that the exchange rate between shares and assets evolves predictably over time. - [`Reentrancy.spec`](specs/Reentrancy.spec) checks that the contract is immune to a particular class of reentrancy issues. - [`Reverts.spec`](specs/Reverts.spec) checks the condition for reverts and that inputs are correctly validated. - [`Transfer.spec`](specs/Transfer.spec) checks the summarization of the safe transfer library functions that are used in other specification files. diff --git a/certora/confs/RatioMath.conf b/certora/confs/ExchangeRate.conf similarity index 71% rename from certora/confs/RatioMath.conf rename to certora/confs/ExchangeRate.conf index cf88ca662..da6b7c558 100644 --- a/certora/confs/RatioMath.conf +++ b/certora/confs/ExchangeRate.conf @@ -3,12 +3,12 @@ "certora/harness/MorphoHarness.sol", ], "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/RatioMath.spec", + "verify": "MorphoHarness:certora/specs/ExchangeRate.spec", "rule_sanity": "basic", "prover_args": [ "-smt_hashingScheme plaininjectivity", "-smt_easy_LIA true", ], "server": "production", - "msg": "Morpho Blue Ratio Math" + "msg": "Morpho Blue Exchange Rate" } diff --git a/certora/specs/ExactMath.spec b/certora/specs/ExactMath.spec index d25465c25..80945c563 100644 --- a/certora/specs/ExactMath.spec +++ b/certora/specs/ExactMath.spec @@ -32,9 +32,9 @@ function summaryMulDivDown(uint256 x, uint256 y, uint256 d) returns uint256 { return require_uint256((x * y) / d); } -// Check that when not accruing interest, and when repaying all, the borrow ratio is at least reset to the initial ratio. -// More details on the purpose of this rule in RatioMath.spec. -rule repayAllResetsBorrowRatio(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { +// Check that when not accruing interest, and when repaying all, the borrow exchange rate is at least reset to the initial exchange rate. +// More details on the purpose of this rule in ExchangeRate.spec. +rule repayAllResetsBorrowExchangeRate(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { MorphoHarness.Id id = libId(marketParams); // Safe require because this invariant is checked in ConsistentState.spec require fee(id) <= maxFee(); diff --git a/certora/specs/RatioMath.spec b/certora/specs/ExchangeRate.spec similarity index 79% rename from certora/specs/RatioMath.spec rename to certora/specs/ExchangeRate.spec index 179a135eb..7598afee5 100644 --- a/certora/specs/RatioMath.spec +++ b/certora/specs/ExchangeRate.spec @@ -46,7 +46,7 @@ function summaryMulDivDown(uint256 x, uint256 y, uint256 d) returns uint256 { } // Check that accrueInterest increases the value of supply shares. -rule accrueInterestIncreasesSupplyRatio(env e, MorphoHarness.MarketParams marketParams) { +rule accrueInterestIncreasesSupplyExchangeRate(env e, MorphoHarness.MarketParams marketParams) { MorphoHarness.Id id; requireInvariant feeInRange(id); @@ -59,12 +59,12 @@ rule accrueInterestIncreasesSupplyRatio(env e, MorphoHarness.MarketParams market mathint assetsAfter = virtualTotalSupplyAssets(id); mathint sharesAfter = virtualTotalSupplyShares(id); - // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter. + // Check that the exchange rate increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter. assert assetsBefore * sharesAfter <= assetsAfter * sharesBefore; } // Check that accrueInterest increases the value of borrow shares. -rule accrueInterestIncreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams) { +rule accrueInterestIncreasesBorrowExchangeRate(env e, MorphoHarness.MarketParams marketParams) { MorphoHarness.Id id; requireInvariant feeInRange(id); @@ -77,13 +77,13 @@ rule accrueInterestIncreasesBorrowRatio(env e, MorphoHarness.MarketParams market mathint assetsAfter = virtualTotalBorrowAssets(id); mathint sharesAfter = virtualTotalBorrowShares(id); - // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter. + // Check that the exchange rate increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter. assert assetsBefore * sharesAfter <= assetsAfter * sharesBefore; } // Check that except when not accruing interest and except for liquidate, every function increases the value of supply shares. -rule onlyLiquidateCanDecreaseSupplyRatio(env e, method f, calldataarg args) +rule onlyLiquidateCanDecreaseSupplyExchangeRate(env e, method f, calldataarg args) filtered { f -> !f.isView && f.selector != sig:liquidate(MorphoHarness.MarketParams, address, uint256, uint256, bytes).selector } @@ -103,12 +103,12 @@ filtered { mathint assetsAfter = virtualTotalSupplyAssets(id); mathint sharesAfter = virtualTotalSupplyShares(id); - // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter / sharesAfter + // Check that the exchange rate increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter assert assetsBefore * sharesAfter <= assetsAfter * sharesBefore; } // Check that when not realizing bad debt in liquidate, the value of supply shares increases. -rule liquidateWithoutBadDebtRealizationIncreasesSupplyRatio(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, uint256 repaidShares, bytes data) +rule liquidateWithoutBadDebtRealizationIncreasesSupplyExchangeRate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, uint256 repaidShares, bytes data) { MorphoHarness.Id id; requireInvariant feeInRange(id); @@ -128,14 +128,14 @@ rule liquidateWithoutBadDebtRealizationIncreasesSupplyRatio(env e, MorphoHarness // Trick to ensure that no bad debt realization happened. require collateral(id, borrower) != 0; - // Check that the ratio increases: assetsBefore/sharesBefore <= assetsAfter / sharesAfter + // Check that the exchange rate increases: assetsBefore/sharesBefore <= assetsAfter/sharesAfter assert assetsBefore * sharesAfter <= assetsAfter * sharesBefore; } // Check that except when not accruing interest, every function is decreasing the value of borrow shares. // The repay function is checked separately, see below. // The liquidate function is checked separately, see below. -rule onlyAccrueInterestCanIncreaseBorrowRatio(env e, method f, calldataarg args) +rule onlyAccrueInterestCanIncreaseBorrowExchangeRate(env e, method f, calldataarg args) filtered { f -> !f.isView && f.selector != sig:repay(MorphoHarness.MarketParams, uint256, uint256, address, bytes).selector && @@ -145,7 +145,7 @@ filtered { MorphoHarness.Id id; requireInvariant feeInRange(id); - // Interest would increase borrow ratio, so we need to assume that no time passes. + // Interest would increase borrow exchange rate, so we need to assume that no time passes. require lastUpdate(id) == e.block.timestamp; mathint assetsBefore = virtualTotalBorrowAssets(id); @@ -156,14 +156,14 @@ filtered { mathint assetsAfter = virtualTotalBorrowAssets(id); mathint sharesAfter = virtualTotalBorrowShares(id); - // Check that the ratio decreases: assetsBefore/sharesBefore >= assetsAfter / sharesAfter + // Check that the exchange rate decreases: assetsBefore/sharesBefore >= assetsAfter/sharesAfter assert assetsBefore * sharesAfter >= assetsAfter * sharesBefore; } // Check that when not accruing interest, repay is decreasing the value of borrow shares. // Check the case where it would not repay more than the total assets. // The other case requires exact math (ie not over-approximating mulDivUp and mulDivDown), so it is checked separately in ExactMath.spec. -rule repayDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) +rule repayDecreasesBorrowExchangeRate(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { MorphoHarness.Id id = libId(marketParams); requireInvariant feeInRange(id); @@ -171,7 +171,7 @@ rule repayDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams, u mathint assetsBefore = virtualTotalBorrowAssets(id); mathint sharesBefore = virtualTotalBorrowShares(id); - // Interest would increase borrow ratio, so we need to assume that no time passes. + // Interest would increase borrow exchange rate, so we need to assume that no time passes. require lastUpdate(id) == e.block.timestamp; mathint repaidAssets; @@ -184,11 +184,11 @@ rule repayDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams, u mathint sharesAfter = virtualTotalBorrowShares(id); assert assetsAfter == assetsBefore - repaidAssets; - // Check that the ratio decreases: assetsBefore/sharesBefore >= assetsAfter / sharesAfter + // Check that the exchange rate decreases: assetsBefore/sharesBefore >= assetsAfter/sharesAfter assert assetsBefore * sharesAfter >= assetsAfter * sharesBefore; } -rule liquidateDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, uint256 repaidShares, bytes data) +rule liquidateDecreasesBorrowExchangeRate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, uint256 repaidShares, bytes data) { require data.length == 0; MorphoHarness.Id id = libId(marketParams); @@ -196,7 +196,7 @@ rule liquidateDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParam mathint assetsBefore = virtualTotalBorrowAssets(id); mathint sharesBefore = virtualTotalBorrowShares(id); - // Interest would increase borrow ratio, so we need to assume that no time passes. + // Interest would increase borrow exchange rate, so we need to assume that no time passes. require lastUpdate(id) == e.block.timestamp; liquidate(e, marketParams, borrower, seizedAssets, repaidShares, data); @@ -206,6 +206,6 @@ rule liquidateDecreasesBorrowRatio(env e, MorphoHarness.MarketParams marketParam require assetsAfter != 1; - // Check that the ratio decreases: assetsBefore/sharesBefore >= assetsAfter / sharesAfter + // Check that the exchange rate decreases: assetsBefore/sharesBefore >= assetsAfter/sharesAfter assert assetsBefore * sharesAfter >= assetsAfter * sharesBefore; } diff --git a/certora/specs/LibSummary.spec b/certora/specs/LibSummary.spec index a31f21c9b..984d68dcb 100644 --- a/certora/specs/LibSummary.spec +++ b/certora/specs/LibSummary.spec @@ -9,13 +9,13 @@ methods { function libMin(uint256 x, uint256 y) external returns uint256 envfree; } -// Check the summary of MathLib.mulDivUp required by RatioMath.spec +// Check the summary of MathLib.mulDivUp required by ExchangeRate.spec rule checkSummaryMulDivUp(uint256 x, uint256 y, uint256 d) { uint256 result = libMulDivUp(x, y, d); assert result * d >= x * y; } -// Check the summary of MathLib.mulDivDown required by RatioMath.spec +// Check the summary of MathLib.mulDivDown required by ExchangeRate.spec rule checkSummaryMulDivDown(uint256 x, uint256 y, uint256 d) { uint256 result = libMulDivDown(x, y, d); assert result * d <= x * y; From faafe0f3b1aa7f3980e32ec562b1c8241ad4138e Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 5 Jul 2024 10:52:13 +0200 Subject: [PATCH 069/110] feat: add healthy liquidate general rule --- certora/specs/Health.spec | 48 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index cd4cca944..93fc894b7 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -2,7 +2,10 @@ methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; + function totalBorrowAssets(MorphoHarness.Id) external returns uint256 envfree; function totalBorrowShares(MorphoHarness.Id) external returns uint256 envfree; + function virtualTotalBorrowAssets(MorphoHarness.Id) external returns uint256 envfree; + function virtualTotalBorrowShares(MorphoHarness.Id) external returns uint256 envfree; function lastUpdate(MorphoHarness.Id) external returns uint256 envfree; function borrowShares(MorphoHarness.Id, address) external returns uint256 envfree; function collateral(MorphoHarness.Id, address) external returns uint256 envfree; @@ -75,6 +78,51 @@ filtered { assert !priceChanged => stillHealthy; } +rule stayHealthy_liquidate(env e) +{ + MorphoHarness.MarketParams marketParams; + MorphoHarness.Id id = libId(marketParams); + address user; + + // Assume that the position is healthy before the interaction. + require isHealthy(marketParams, user); + uint256 debtSharesBefore = borrowShares(id, user); + uint256 debtAssetsBefore = summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); + // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. + require marketParams.lltv < 10^18; + // Assumption to ensure that no interest is accumulated. + require lastUpdate(id) == e.block.timestamp; + + priceChanged = false; + + MorphoHarness.MarketParams marketParams2; + address borrower; + uint256 seizedAssets; + uint256 repaidShares; + bytes data; + require marketParams2 == marketParams; + + liquidate(e, marketParams2, borrower, seizedAssets, 0, data); + require !priceChanged; + // Safe require because of the invariant sumBorrowSharesCorrect. + require borrowShares(id, user) <= totalBorrowShares(id); + + // the case where not everything was repaid + require totalBorrowAssets(id) > 0; + // user has collateral left + require collateral(id, borrower) > 0; + + assert user != borrower; + assert debtSharesBefore == borrowShares(id, user); + assert debtAssetsBefore >= summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); + + bool stillHealthy = isHealthy(marketParams, user); + require !priceChanged; + + // assert !priceChanged => stillHealthy; + assert stillHealthy; +} + // Check that users cannot lose collateral by unauthorized parties except in case of an unhealthy position. rule healthyUserCannotLoseCollateral(env e, method f, calldataarg data) filtered { f -> !f.isView } From 4263c9b1976c06489f53ea49b7142170c0135b6e Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 5 Jul 2024 10:53:55 +0200 Subject: [PATCH 070/110] chore: switch to certora-cli-beta --- .github/workflows/certora.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index e0931e6e0..2ddf7e090 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -39,7 +39,7 @@ jobs: python-version: ">=3.9" - name: Install certora - run: pip install certora-cli + run: pip install certora-cli-beta - name: Install solc run: | From d1e81edbf6adfd542a983d7010cb34328a5e91ee Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 5 Jul 2024 11:36:37 +0200 Subject: [PATCH 071/110] style: refactor stay healthy liquidate --- certora/specs/Health.spec | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 93fc894b7..83fe5722e 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -78,9 +78,12 @@ filtered { assert !priceChanged => stillHealthy; } -rule stayHealthy_liquidate(env e) -{ - MorphoHarness.MarketParams marketParams; +// The general case of liquidate for the stayHealthy rule +// - the user checked is not the borrower, +// - the market of the liquidation is the market of the user, +// - there is still some borrow on the market after liquidation, +// - there was no bad debt realization. +rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { MorphoHarness.Id id = libId(marketParams); address user; @@ -94,22 +97,14 @@ rule stayHealthy_liquidate(env e) require lastUpdate(id) == e.block.timestamp; priceChanged = false; - - MorphoHarness.MarketParams marketParams2; - address borrower; - uint256 seizedAssets; - uint256 repaidShares; - bytes data; - require marketParams2 == marketParams; - - liquidate(e, marketParams2, borrower, seizedAssets, 0, data); + liquidate(e, marketParams, borrower, seizedAssets, 0, data); require !priceChanged; + // Safe require because of the invariant sumBorrowSharesCorrect. require borrowShares(id, user) <= totalBorrowShares(id); - - // the case where not everything was repaid + // Handle the case where not everything was repaid. require totalBorrowAssets(id) > 0; - // user has collateral left + // Handle the case where the user has some collateral left. require collateral(id, borrower) > 0; assert user != borrower; @@ -117,9 +112,6 @@ rule stayHealthy_liquidate(env e) assert debtAssetsBefore >= summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); bool stillHealthy = isHealthy(marketParams, user); - require !priceChanged; - - // assert !priceChanged => stillHealthy; assert stillHealthy; } From 21cbcdd4260e124e5bf12b82a6f0b2f6e52852e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jul 2024 11:50:28 +0000 Subject: [PATCH 072/110] chore(deps): bump braces from 3.0.2 to 3.0.3 Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3. - [Changelog](https://github.com/micromatch/braces/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/braces/compare/3.0.2...3.0.3) --- updated-dependencies: - dependency-name: braces dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index cf01a8890..fd52da2a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1713,11 +1713,11 @@ brace-expansion@^2.0.1: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" brorand@^1.1.0: version "1.1.0" @@ -2795,10 +2795,10 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" From c47988eee3b710cbfd21ec637cb9db4d7351e499 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Wed, 10 Jul 2024 09:15:58 +0200 Subject: [PATCH 073/110] fix typos Signed-off-by: omahs <73983677+omahs@users.noreply.github.com> --- certora/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/certora/README.md b/certora/README.md index 8f638716f..12cc0fd88 100644 --- a/certora/README.md +++ b/certora/README.md @@ -1,6 +1,6 @@ This folder contains the verification of the Morpho Blue protocol using CVL, Certora's Verification Language. -The core concepts of the the Morpho Blue protocol are described in the [Whitepaper](../morpho-blue-whitepaper.pdf). +The core concepts of the Morpho Blue protocol are described in the [Whitepaper](../morpho-blue-whitepaper.pdf). These concepts have been verified using CVL. We first give a [high-level description](#high-level-description) of the verification and then describe the [folder and file structure](#folder-and-file-structure) of the specification files. @@ -11,7 +11,7 @@ The Morpho Blue protocol allows users to take out collateralized loans on ERC20 ## ERC20 tokens and transfers For a given market, Morpho Blue relies on the fact that the tokens involved respect the ERC20 standard. -In particular, in case of a transfer, it is assumed that the balance of Morpho Blue increases or decreases (depending if its the recipient or the sender) of the amount transferred. +In particular, in case of a transfer, it is assumed that the balance of Morpho Blue increases or decreases (depending if it's the recipient or the sender) of the amount transferred. The file [Transfer.spec](specs/Transfer.spec) defines a summary of the transfer functions. This summary is taken as the reference implementation to check that the balance of the Morpho Blue contract changes as expected. @@ -33,7 +33,7 @@ The verification is done for the most common implementations of the ERC20 standa - [ERC20Standard](dispatch/ERC20Standard.sol) which respects the standard and reverts in case of insufficient funds or in case of insufficient allowance. - [ERC20NoRevert](dispatch/ERC20NoRevert.sol) which respects the standard but does not revert (and returns false instead). -- [ERC20USDT](dispatch/ERC20USDT.sol) which does not strictly respects the standard because it omits the return value of the `transfer` and `transferFrom` functions. +- [ERC20USDT](dispatch/ERC20USDT.sol) which does not strictly respect the standard because it omits the return value of the `transfer` and `transferFrom` functions. Additionally, Morpho Blue always goes through a custom transfer library to handle ERC20 tokens, notably in all the above cases. This library reverts when the transfer is not successful, and this is checked for the case of insufficient funds or insufficient allowance. @@ -69,7 +69,7 @@ Said otherwise, markets are independent: tokens from a given market cannot be im When supplying on Morpho Blue, interest is earned over time, and the distribution is implemented through a shares mechanism. Shares increase in value as interest is accrued. -The share mechanism is implemented symetrically for the borrow side: a share of borrow increasing in value over time represents additional owed interest. +The share mechanism is implemented symmetrically for the borrow side: a share of borrow increasing in value over time represents additional owed interest. The rule `accrueInterestIncreasesSupplyExchangeRate` checks this property for the supply side with the following statement. ```soldidity @@ -107,7 +107,7 @@ invariant alwaysCollateralized(MorphoHarness.Id id, address borrower) borrowShares(id, borrower) != 0 => collateral(id, borrower) != 0; ``` -More generally, this means that the result of liquidating a position multiple times eventually lead to a healthy position (possibly empty). +More generally, this means that the result of liquidating a position multiple times eventually leads to a healthy position (possibly empty). ## Authorization @@ -205,7 +205,7 @@ As an example, the `withdrawChangesTokensAndShares` rule checks that calling the Other liveness properties are verified as well. Notably, it's also verified that it is always possible to exit a position without concern for the oracle. This is done through the verification of two rules: the `canRepayAll` rule and the `canWithdrawCollateralAll` rule. -The `canRepayAll` rule ensures that it is always possible to repay the full debt of a position, leaving the account without any oustanding debt. +The `canRepayAll` rule ensures that it is always possible to repay the full debt of a position, leaving the account without any outstanding debt. The `canWithdrawCollateralAll` rule ensures that in the case where the account has no outstanding debt, then it is possible to withdraw the full collateral. ## Protection against common attack vectors @@ -214,7 +214,7 @@ Other common and known attack vectors are verified to not be possible on the Mor ### Reentrancy -Reentrancy is a common attack vector that happen when a call to a contract allows, when in a temporary state, to call the same contract again. +Reentrancy is a common attack vector that happens when a call to a contract allows, when in a temporary state, to call the same contract again. The state of the contract usually refers to the storage variables, which can typically hold values that are meant to be used only after the full execution of the current function. The Morpho Blue contract is verified to not be vulnerable to this kind of reentrancy attack thanks to the rule `reentrancySafe`. From 9e3af3f639233cb249a3501b42bc93efefcaa3b4 Mon Sep 17 00:00:00 2001 From: Merlin Egalite <44097430+MerlinEgalite@users.noreply.github.com> Date: Wed, 14 Aug 2024 11:10:49 +0200 Subject: [PATCH 074/110] docs: fix typo Signed-off-by: Merlin Egalite <44097430+MerlinEgalite@users.noreply.github.com> --- src/interfaces/IMorpho.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interfaces/IMorpho.sol b/src/interfaces/IMorpho.sol index 9c82524cb..87916224e 100644 --- a/src/interfaces/IMorpho.sol +++ b/src/interfaces/IMorpho.sol @@ -196,7 +196,7 @@ interface IMorphoBase { ) external returns (uint256 assetsBorrowed, uint256 sharesBorrowed); /// @notice Repays `assets` or `shares` on behalf of `onBehalf`, optionally calling back the caller's - /// `onMorphoReplay` function with the given `data`. + /// `onMorphoRepay` function with the given `data`. /// @dev Either `assets` or `shares` should be zero. To repay max, pass the `shares`'s balance of `onBehalf`. /// @dev Repaying an amount corresponding to more shares than borrowed will revert for underflow. /// @dev It is advised to use the `shares` input when repaying the full position to avoid reverts due to conversion From 9aeb49f1dcab15dc1de448feb6100fdea13c0f1d Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 14 Aug 2024 13:11:27 +0200 Subject: [PATCH 075/110] chore: switch back to certora-cli --- .github/workflows/certora.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index 2ddf7e090..e0931e6e0 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -39,7 +39,7 @@ jobs: python-version: ">=3.9" - name: Install certora - run: pip install certora-cli-beta + run: pip install certora-cli - name: Install solc run: | From 9f1fe6d684cc5967f8a837a45d783ec55dd372aa Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 14 Aug 2024 15:34:50 +0200 Subject: [PATCH 076/110] feat: improve assets accounting specification --- certora/specs/AssetsAccounting.spec | 29 +++++++++++++++++------------ certora/specs/ExactMath.spec | 2 +- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/certora/specs/AssetsAccounting.spec b/certora/specs/AssetsAccounting.spec index 007500b6d..7071f17d8 100644 --- a/certora/specs/AssetsAccounting.spec +++ b/certora/specs/AssetsAccounting.spec @@ -5,6 +5,8 @@ methods { function supplyShares(MorphoHarness.Id, address) external returns uint256 envfree; function borrowShares(MorphoHarness.Id, address) external returns uint256 envfree; function collateral(MorphoHarness.Id, address) external returns uint256 envfree; + function totalSupplyShares(MorphoHarness.Id) external returns uint256 envfree; + function totalBorrowShares(MorphoHarness.Id) external returns uint256 envfree; function virtualTotalSupplyAssets(MorphoHarness.Id) external returns uint256 envfree; function virtualTotalSupplyShares(MorphoHarness.Id) external returns uint256 envfree; function virtualTotalBorrowAssets(MorphoHarness.Id) external returns uint256 envfree; @@ -32,21 +34,23 @@ function expectedBorrowAssets(MorphoHarness.Id id, address user) returns uint256 return libMulDivUp(userShares, totalBorrowAssets, totalBorrowShares); } -// Check that the assets supplied are greater than the assets owned in the end. +// Check that the assets supplied are greater than the increase in owned assets. rule supplyAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { MorphoHarness.Id id = libId(marketParams); // Assume no interest as it would increase the total supply assets. require lastUpdate(id) == e.block.timestamp; - // Assume no supply position to begin with. - require supplyShares(id, onBehalf) == 0; + // Safe require because of the sumSupplySharesCorrect invariant. + require supplyShares(id, onBehalf) <= totalSupplyShares(id); + + uint256 ownedAssetsBefore = expectedSupplyAssets(id, onBehalf); uint256 suppliedAssets; suppliedAssets, _ = supply(e, marketParams, assets, shares, onBehalf, data); uint256 ownedAssets = expectedSupplyAssets(id, onBehalf); - assert suppliedAssets >= ownedAssets; + assert ownedAssetsBefore + suppliedAssets >= to_mathint(ownedAssets); } // Check that the assets withdrawn are less than the assets owned initially. @@ -64,14 +68,16 @@ rule withdrawAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, ui assert withdrawnAssets <= ownedAssets; } -// Check that the assets borrowed are less than the assets owed in the end. +// Check that the increase of owed assets are greater than the borrowed assets. rule borrowAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 shares, address onBehalf, address receiver) { MorphoHarness.Id id = libId(marketParams); // Assume no interest as it would increase the total borrowed assets. require lastUpdate(id) == e.block.timestamp; - // Assume no outstanding debt to begin with. - require borrowShares(id, onBehalf) == 0; + // Safe require because of the sumBorrowSharesCorrect invariant. + require borrowShares(id, onBehalf) <= totalBorrowShares(id); + + uint256 owedAssetsBefore = expectedBorrowAssets(id, onBehalf); // The borrow call is restricted to shares as input to make it easier on the prover. uint256 borrowedAssets; @@ -79,7 +85,7 @@ rule borrowAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint uint256 owedAssets = expectedBorrowAssets(id, onBehalf); - assert borrowedAssets <= owedAssets; + assert owedAssetsBefore + borrowedAssets <= to_mathint(owedAssets); } // Check that the assets repaid are greater than the assets owed initially. @@ -100,18 +106,17 @@ rule repayAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint2 assert repaidAssets >= owedAssets; } -// Check that the collateral assets supplied are greater than the assets owned in the end. +// Check that the collateral assets supplied are equal to the increase of owned assets. rule supplyCollateralAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 suppliedAssets, address onBehalf, bytes data) { MorphoHarness.Id id = libId(marketParams); - // Assume no collateral to begin with. - require collateral(id, onBehalf) == 0; + uint256 ownedAssetsBefore = collateral(id, onBehalf); supplyCollateral(e, marketParams, suppliedAssets, onBehalf, data); uint256 ownedAssets = collateral(id, onBehalf); - assert suppliedAssets == ownedAssets; + assert ownedAssetsBefore + suppliedAssets == to_mathint(ownedAssets); } // Check that the collateral assets withdrawn are less than the assets owned initially. diff --git a/certora/specs/ExactMath.spec b/certora/specs/ExactMath.spec index 80945c563..eedc9f04c 100644 --- a/certora/specs/ExactMath.spec +++ b/certora/specs/ExactMath.spec @@ -55,7 +55,7 @@ rule repayAllResetsBorrowExchangeRate(env e, MorphoHarness.MarketParams marketPa mathint sharesAfter = virtualTotalBorrowShares(id); assert assetsAfter == 1; - // There are at least as many shares as virtual shares. + // There are at least as many shares as virtual shares, by definition of virtualTotalBorrowShares. } // There should be no profit from supply followed immediately by withdraw. From 91e6bebc948e3841d80fe92b9f2eeccebec9f568 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 28 Aug 2024 17:32:27 +0200 Subject: [PATCH 077/110] fix: ensure price not changed by view functions --- certora/specs/Health.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 83fe5722e..fa88cc68a 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -87,6 +87,7 @@ rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, addres MorphoHarness.Id id = libId(marketParams); address user; + priceChanged = false; // Assume that the position is healthy before the interaction. require isHealthy(marketParams, user); uint256 debtSharesBefore = borrowShares(id, user); @@ -96,9 +97,7 @@ rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, addres // Assumption to ensure that no interest is accumulated. require lastUpdate(id) == e.block.timestamp; - priceChanged = false; liquidate(e, marketParams, borrower, seizedAssets, 0, data); - require !priceChanged; // Safe require because of the invariant sumBorrowSharesCorrect. require borrowShares(id, user) <= totalBorrowShares(id); @@ -112,6 +111,7 @@ rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, addres assert debtAssetsBefore >= summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); bool stillHealthy = isHealthy(marketParams, user); + require !priceChanged; assert stillHealthy; } From b48561465aab8357020c669911fe692ef9bb5c0b Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 28 Aug 2024 17:48:28 +0200 Subject: [PATCH 078/110] fix: price did not change after liquidate --- certora/specs/Health.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index fa88cc68a..02e5f4b76 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -98,6 +98,7 @@ rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, addres require lastUpdate(id) == e.block.timestamp; liquidate(e, marketParams, borrower, seizedAssets, 0, data); + require !priceChanged; // Safe require because of the invariant sumBorrowSharesCorrect. require borrowShares(id, user) <= totalBorrowShares(id); From 1cc0444b53af812609261ab39057f31b96c8dc99 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 26 Sep 2024 17:02:50 +0200 Subject: [PATCH 079/110] refactor: remove unnecessary require --- certora/specs/Health.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 02e5f4b76..5e706d38b 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -82,12 +82,11 @@ filtered { // - the user checked is not the borrower, // - the market of the liquidation is the market of the user, // - there is still some borrow on the market after liquidation, -// - there was no bad debt realization. +// - there was no bad debt realization (without this the rule times out). rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { MorphoHarness.Id id = libId(marketParams); address user; - priceChanged = false; // Assume that the position is healthy before the interaction. require isHealthy(marketParams, user); uint256 debtSharesBefore = borrowShares(id, user); From a5efbc2ed25df71bd3c3582c5873666d6950fac1 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 26 Sep 2024 17:21:56 +0200 Subject: [PATCH 080/110] docs: comment stayHealthyLiquidate --- certora/specs/Health.spec | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 5e706d38b..58b4e4ce1 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -78,11 +78,10 @@ filtered { assert !priceChanged => stillHealthy; } -// The general case of liquidate for the stayHealthy rule -// - the user checked is not the borrower, +// The liquidate case for the stayHealthy rule, assuming no bad debt realization, otherwise it times out. +// This particular rule makes the following assumptions: // - the market of the liquidation is the market of the user, -// - there is still some borrow on the market after liquidation, -// - there was no bad debt realization (without this the rule times out). +// - there is still some borrow on the market after liquidation. rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { MorphoHarness.Id id = libId(marketParams); address user; From beea950ecbbc23d300214bd8ad502381a1db880e Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 26 Sep 2024 18:06:34 +0200 Subject: [PATCH 081/110] feat: stay healthy liquidate with different markets --- certora/specs/Health.spec | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 58b4e4ce1..3ff238032 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -80,14 +80,15 @@ filtered { // The liquidate case for the stayHealthy rule, assuming no bad debt realization, otherwise it times out. // This particular rule makes the following assumptions: -// - the market of the liquidation is the market of the user, +// - the market of the liquidation is the market of the user, see the *DifferentMarkets rule // - there is still some borrow on the market after liquidation. rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { MorphoHarness.Id id = libId(marketParams); address user; - // Assume that the position is healthy before the interaction. + // Assume the invariant initially. require isHealthy(marketParams, user); + uint256 debtSharesBefore = borrowShares(id, user); uint256 debtAssetsBefore = summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. @@ -100,9 +101,9 @@ rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, addres // Safe require because of the invariant sumBorrowSharesCorrect. require borrowShares(id, user) <= totalBorrowShares(id); - // Handle the case where not everything was repaid. + // Assume that there is still some borrow on the market after liquidation. require totalBorrowAssets(id) > 0; - // Handle the case where the user has some collateral left. + // Assume no bad debt realization. require collateral(id, borrower) > 0; assert user != borrower; @@ -114,6 +115,32 @@ rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, addres assert stillHealthy; } +rule stayHealthyLiquidateDifferentMarkets(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { + MorphoHarness.Id id = libId(marketParams); + address user; + MorphoHarness.MarketParams liquidationMarketParams; + + // Assume the invariant initially. + require isHealthy(marketParams, user); + + // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. + require marketParams.lltv < 10^18; + // Assumption to ensure that no interest is accumulated. + require lastUpdate(id) == e.block.timestamp; + // Assume that the liquidation is on a different market. + require liquidationMarketParams != marketParams; + + liquidate(e, liquidationMarketParams, borrower, seizedAssets, 0, data); + require !priceChanged; + + // Safe require because of the invariant sumBorrowSharesCorrect. + require borrowShares(id, user) <= totalBorrowShares(id); + + bool stillHealthy = isHealthy(marketParams, user); + require !priceChanged; + assert stillHealthy; +} + // Check that users cannot lose collateral by unauthorized parties except in case of an unhealthy position. rule healthyUserCannotLoseCollateral(env e, method f, calldataarg data) filtered { f -> !f.isView } From fa6226ac8949a47cc4141afb7f76cc1efee938f1 Mon Sep 17 00:00:00 2001 From: Daejun Park Date: Thu, 26 Sep 2024 15:45:38 -0700 Subject: [PATCH 082/110] chore: update halmos-cheatcodes submodule --- lib/halmos-cheatcodes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/halmos-cheatcodes b/lib/halmos-cheatcodes index c0d865508..a02072cd5 160000 --- a/lib/halmos-cheatcodes +++ b/lib/halmos-cheatcodes @@ -1 +1 @@ -Subproject commit c0d865508c0fee0a11b97732c5e90f9cad6b65a5 +Subproject commit a02072cd5eb8560d00c3f4a73b27831ec6e3137e From 32b24fc797449a20285117a841e2affc696f5634 Mon Sep 17 00:00:00 2001 From: Daejun Park Date: Thu, 26 Sep 2024 16:58:50 -0700 Subject: [PATCH 083/110] test(halmos): adjust for halmos v2 --- test/halmos/HalmosTest.sol | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/test/halmos/HalmosTest.sol b/test/halmos/HalmosTest.sol index f9ddc5ec8..51bab7d6f 100644 --- a/test/halmos/HalmosTest.sol +++ b/test/halmos/HalmosTest.sol @@ -13,7 +13,7 @@ import "../../src/Morpho.sol"; import "../../src/libraries/ConstantsLib.sol"; import {MorphoLib} from "../../src/libraries/periphery/MorphoLib.sol"; -/// @custom:halmos --symbolic-storage --solver-timeout-assertion 0 +/// @custom:halmos --solver-timeout-assertion 0 contract HalmosTest is SymTest, Test { using MorphoLib for IMorpho; using MarketParamsLib for MarketParams; @@ -47,6 +47,17 @@ contract HalmosTest is SymTest, Test { morpho.enableLltv(lltv); morpho.createMarket(marketParams); vm.stopPrank(); + + // Enable symbolic storage + svm.enableSymbolicStorage(address(morpho)); + svm.enableSymbolicStorage(address(loanToken)); + svm.enableSymbolicStorage(address(collateralToken)); + svm.enableSymbolicStorage(address(oracle)); + svm.enableSymbolicStorage(address(irm)); + + // Set symbolic block number and timestamp + vm.roll(svm.createUint(64, "block.number")); + vm.warp(svm.createUint(64, "block.timestamp")); } // Call Morpho, assuming interacting with only the defined market for performance reasons. From 387e4b5cc78ccff2d0a377ce66b04110371e814c Mon Sep 17 00:00:00 2001 From: Daejun Park Date: Thu, 26 Sep 2024 21:04:16 -0700 Subject: [PATCH 084/110] test(halmos): fix calldata generation for flashLoan --- test/halmos/HalmosTest.sol | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/test/halmos/HalmosTest.sol b/test/halmos/HalmosTest.sol index 51bab7d6f..73076d2a3 100644 --- a/test/halmos/HalmosTest.sol +++ b/test/halmos/HalmosTest.sol @@ -8,6 +8,7 @@ import {IMorpho} from "../../src/interfaces/IMorpho.sol"; import {IrmMock} from "../../src/mocks/IrmMock.sol"; import {ERC20Mock} from "../../src/mocks/ERC20Mock.sol"; import {OracleMock} from "../../src/mocks/OracleMock.sol"; +import {FlashBorrowerMock} from "../../src/mocks/FlashBorrowerMock.sol"; import "../../src/Morpho.sol"; import "../../src/libraries/ConstantsLib.sol"; @@ -29,6 +30,9 @@ contract HalmosTest is SymTest, Test { MarketParams internal marketParams; + ERC20Mock internal otherToken; + FlashBorrowerMock internal flashBorrower; + function setUp() public virtual { owner = svm.createAddress("owner"); morpho = IMorpho(address(new Morpho(owner))); @@ -48,12 +52,18 @@ contract HalmosTest is SymTest, Test { morpho.createMarket(marketParams); vm.stopPrank(); + // for flashLoan + otherToken = new ERC20Mock(); + flashBorrower = new FlashBorrowerMock(morpho); + // Enable symbolic storage svm.enableSymbolicStorage(address(morpho)); svm.enableSymbolicStorage(address(loanToken)); svm.enableSymbolicStorage(address(collateralToken)); svm.enableSymbolicStorage(address(oracle)); svm.enableSymbolicStorage(address(irm)); + svm.enableSymbolicStorage(address(otherToken)); + svm.enableSymbolicStorage(address(flashBorrower)); // Set symbolic block number and timestamp vm.roll(svm.createUint(64, "block.number")); @@ -85,17 +95,9 @@ contract HalmosTest is SymTest, Test { address borrower = svm.createAddress("borrower"); args = abi.encode(marketParams, borrower, assets, shares, emptyData); } else if (selector == morpho.flashLoan.selector) { - uint256 rand = svm.createUint256("rand"); - address token; - if (rand == 0) { - token = address(loanToken); - } else if (rand == 1) { - token = address(collateralToken); - } else { - ERC20Mock otherToken = new ERC20Mock(); - token = address(otherToken); - } - args = abi.encode(marketParams, token, assets, emptyData); + address token = svm.createAddress("token"); + bytes memory _data = svm.createBytes(1024, "_data"); + args = abi.encode(token, assets, _data); } else if (selector == morpho.accrueInterest.selector) { args = abi.encode(marketParams); } else if (selector == morpho.setFee.selector) { From 2e75cdc2c915f7a37978aed42489f6e0dcdd0f25 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 27 Sep 2024 11:07:28 +0200 Subject: [PATCH 085/110] chore: new syntax for enabling bitvector theory --- certora/confs/LibSummary.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certora/confs/LibSummary.conf b/certora/confs/LibSummary.conf index b89e7fe35..804928d2f 100644 --- a/certora/confs/LibSummary.conf +++ b/certora/confs/LibSummary.conf @@ -6,7 +6,7 @@ "verify": "MorphoHarness:certora/specs/LibSummary.spec", "rule_sanity": "basic", "prover_args": [ - "-useBitVectorTheory", + "-smt_bitVectorTheory true" ], "server": "production", "msg": "Morpho Blue Lib Summary" From a80998eba45966881cb4ab645395b38f710f429f Mon Sep 17 00:00:00 2001 From: Daejun Park Date: Fri, 27 Sep 2024 13:03:11 -0700 Subject: [PATCH 086/110] test(halmos): enable symbolic storage for the test contract --- test/halmos/HalmosTest.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/test/halmos/HalmosTest.sol b/test/halmos/HalmosTest.sol index 73076d2a3..6a6bf8a7a 100644 --- a/test/halmos/HalmosTest.sol +++ b/test/halmos/HalmosTest.sol @@ -57,6 +57,7 @@ contract HalmosTest is SymTest, Test { flashBorrower = new FlashBorrowerMock(morpho); // Enable symbolic storage + svm.enableSymbolicStorage(address(this)); svm.enableSymbolicStorage(address(morpho)); svm.enableSymbolicStorage(address(loanToken)); svm.enableSymbolicStorage(address(collateralToken)); From 5ac6afb10d81f77d16f46504463ee2713e4d7759 Mon Sep 17 00:00:00 2001 From: MathisGD Date: Sat, 28 Sep 2024 00:38:59 +0200 Subject: [PATCH 087/110] chore: update audit --- ...-01-05-morpho-blue-cantina-competition.pdf | Bin 630141 -> 630116 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/audits/2024-01-05-morpho-blue-cantina-competition.pdf b/audits/2024-01-05-morpho-blue-cantina-competition.pdf index 8db682646ad78782e7bc04afcff90c979e3dea30..1f26704eb4bb5390994fa93d17926949430e3d87 100644 GIT binary patch delta 35737 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 P2^|SDHwq;sMNdWwRmM~I delta 35829 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 Date: Sun, 29 Sep 2024 15:40:41 +0200 Subject: [PATCH 088/110] test: fix precision of repaid assets computation --- test/forge/invariant/MorphoInvariantTest.sol | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/forge/invariant/MorphoInvariantTest.sol b/test/forge/invariant/MorphoInvariantTest.sol index 8e007e9db..6b4866ca5 100644 --- a/test/forge/invariant/MorphoInvariantTest.sol +++ b/test/forge/invariant/MorphoInvariantTest.sol @@ -170,12 +170,11 @@ contract MorphoInvariantTest is InvariantTest { { uint256 collateralPrice = oracle.price(); uint256 liquidationIncentiveFactor = _liquidationIncentiveFactor(_marketParams.lltv); - Market memory _market = morpho.market(_marketParams.id()); + (,, uint256 totalBorrowAssets, uint256 totalBorrowShares) = morpho.expectedMarketBalances(_marketParams); uint256 seizedAssetsQuoted = seizedAssets.mulDivUp(collateralPrice, ORACLE_PRICE_SCALE); - uint256 repaidShares = seizedAssetsQuoted.wDivUp(liquidationIncentiveFactor).toSharesUp( - _market.totalBorrowAssets, _market.totalBorrowShares - ); - uint256 repaidAssets = repaidShares.toAssetsUp(_market.totalBorrowAssets, _market.totalBorrowShares); + uint256 repaidShares = + seizedAssetsQuoted.wDivUp(liquidationIncentiveFactor).toSharesUp(totalBorrowAssets, totalBorrowShares); + uint256 repaidAssets = repaidShares.toAssetsUp(totalBorrowAssets, totalBorrowShares); loanToken.setBalance(msg.sender, repaidAssets); From b73fb3ca6070eac2292ffb238cbe1df9ab9413fa Mon Sep 17 00:00:00 2001 From: MathisGD Date: Sun, 29 Sep 2024 19:29:37 +0200 Subject: [PATCH 089/110] chore: update cantina competition with all the answers --- ...-01-05-morpho-blue-cantina-competition.pdf | Bin 630116 -> 630926 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/audits/2024-01-05-morpho-blue-cantina-competition.pdf b/audits/2024-01-05-morpho-blue-cantina-competition.pdf index 1f26704eb4bb5390994fa93d17926949430e3d87..b6d5e0bf7f244b036b58e740622eeaeeaa0f0091 100644 GIT binary patch delta 49405 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 delta 48568 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%0D#e~j~O`0KCtRvY#t_iez} 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 From fc6793a8ede377a6fc6c501de9ea53ba9e270c1f Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Sun, 29 Sep 2024 22:25:58 +0200 Subject: [PATCH 090/110] fix: truly bound unhealthy --- test/forge/BaseTest.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/forge/BaseTest.sol b/test/forge/BaseTest.sol index 29020d1af..99dd01527 100644 --- a/test/forge/BaseTest.sol +++ b/test/forge/BaseTest.sol @@ -189,7 +189,7 @@ contract BaseTest is Test { amountBorrowed.wDivDown(marketParams.lltv).mulDivDown(ORACLE_PRICE_SCALE, priceCollateral); amountCollateral = bound(amountCollateral, 0, Math.min(maxCollateral, MAX_COLLATERAL_ASSETS)); - vm.assume(amountCollateral > 0); + vm.assume(amountCollateral > 0 && amountCollateral < maxCollateral); return (amountCollateral, amountBorrowed, priceCollateral); } From 208c886d813cf24e96776d06ae27d02e46252c08 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Sun, 29 Sep 2024 23:35:30 +0200 Subject: [PATCH 091/110] fix: bound liquidate seized assets rounding up --- test/forge/BaseTest.sol | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/forge/BaseTest.sol b/test/forge/BaseTest.sol index 99dd01527..13a23237d 100644 --- a/test/forge/BaseTest.sol +++ b/test/forge/BaseTest.sol @@ -330,13 +330,15 @@ contract BaseTest is Test { { Id _id = _marketParams.id(); - uint256 collateral = morpho.collateral(_id, borrower); uint256 collateralPrice = IOracle(_marketParams.oracle).price(); - uint256 maxRepaidAssets = morpho.expectedBorrowAssets(_marketParams, borrower); + uint256 borrowShares = morpho.borrowShares(_id, borrower); + (,, uint256 totalBorrowAssets, uint256 totalBorrowShares) = morpho.expectedMarketBalances(_marketParams); + uint256 maxRepaidAssets = borrowShares.toAssetsDown(totalBorrowAssets, totalBorrowShares); uint256 maxSeizedAssets = maxRepaidAssets.wMulDown(_liquidationIncentiveFactor(_marketParams.lltv)).mulDivDown( ORACLE_PRICE_SCALE, collateralPrice ); + uint256 collateral = morpho.collateral(_id, borrower); return bound(seizedAssets, 0, Math.min(collateral, maxSeizedAssets)); } From 3b9eb66094d699813bf7335c484f7c22e9cd1f34 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 30 Sep 2024 11:35:44 +0200 Subject: [PATCH 092/110] feat: split stay healthy rules --- .github/workflows/certora.yml | 1 + certora/confs/AccrueInterest.conf | 2 +- certora/confs/StayHealthy.conf | 18 ++++++ certora/specs/Health.spec | 92 ------------------------------- certora/specs/StayHealthy.spec | 0 5 files changed, 20 insertions(+), 93 deletions(-) create mode 100644 certora/confs/StayHealthy.conf create mode 100644 certora/specs/StayHealthy.spec diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index e0931e6e0..87a17a69b 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -26,6 +26,7 @@ jobs: - Liveness - Reentrancy - Reverts + - StayHealthy - Transfer steps: diff --git a/certora/confs/AccrueInterest.conf b/certora/confs/AccrueInterest.conf index b5adb6adc..805700641 100644 --- a/certora/confs/AccrueInterest.conf +++ b/certora/confs/AccrueInterest.conf @@ -6,8 +6,8 @@ "verify": "MorphoHarness:certora/specs/AccrueInterest.spec", "prover_args": [ "-depth 3", - "-smt_hashingScheme plaininjectivity", "-mediumTimeout 30", + "-smt_hashingScheme plaininjectivity", ], "rule_sanity": "basic", "server": "production", diff --git a/certora/confs/StayHealthy.conf b/certora/confs/StayHealthy.conf new file mode 100644 index 000000000..567f70d48 --- /dev/null +++ b/certora/confs/StayHealthy.conf @@ -0,0 +1,18 @@ +{ + "files": [ + "certora/harness/MorphoHarness.sol", + "src/mocks/OracleMock.sol", + ], + "msg": "Morpho Blue Stay Healthy", + "process": "emv", + "prover_args": [ + "-depth 5", + "-mediumTimeout 5", + "-timeout 3600", + "-smt_hashingScheme plaininjectivity" + ], + "rule_sanity": "basic", + "server": "production", + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/StayHealthy.spec" +} diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 3ff238032..6f2d395e9 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -49,98 +49,6 @@ function summaryMin(uint256 a, uint256 b) returns uint256 { return a < b ? a : b; } -// Check that without accruing interest, no interaction can put an healthy account into an unhealthy one. -// The liquidate function times out in this rule, but has been checked separately. -rule stayHealthy(env e, method f, calldataarg data) -filtered { - f -> !f.isView && - f.selector != sig:liquidate(MorphoHarness.MarketParams, address, uint256, uint256, bytes).selector -} -{ - MorphoHarness.MarketParams marketParams; - MorphoHarness.Id id = libId(marketParams); - address user; - - // Assume that the position is healthy before the interaction. - require isHealthy(marketParams, user); - // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. - require marketParams.lltv < 10^18; - // Assumption to ensure that no interest is accumulated. - require lastUpdate(id) == e.block.timestamp; - - priceChanged = false; - f(e, data); - - // Safe require because of the invariant sumBorrowSharesCorrect. - require borrowShares(id, user) <= totalBorrowShares(id); - - bool stillHealthy = isHealthy(marketParams, user); - assert !priceChanged => stillHealthy; -} - -// The liquidate case for the stayHealthy rule, assuming no bad debt realization, otherwise it times out. -// This particular rule makes the following assumptions: -// - the market of the liquidation is the market of the user, see the *DifferentMarkets rule -// - there is still some borrow on the market after liquidation. -rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { - MorphoHarness.Id id = libId(marketParams); - address user; - - // Assume the invariant initially. - require isHealthy(marketParams, user); - - uint256 debtSharesBefore = borrowShares(id, user); - uint256 debtAssetsBefore = summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); - // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. - require marketParams.lltv < 10^18; - // Assumption to ensure that no interest is accumulated. - require lastUpdate(id) == e.block.timestamp; - - liquidate(e, marketParams, borrower, seizedAssets, 0, data); - require !priceChanged; - - // Safe require because of the invariant sumBorrowSharesCorrect. - require borrowShares(id, user) <= totalBorrowShares(id); - // Assume that there is still some borrow on the market after liquidation. - require totalBorrowAssets(id) > 0; - // Assume no bad debt realization. - require collateral(id, borrower) > 0; - - assert user != borrower; - assert debtSharesBefore == borrowShares(id, user); - assert debtAssetsBefore >= summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); - - bool stillHealthy = isHealthy(marketParams, user); - require !priceChanged; - assert stillHealthy; -} - -rule stayHealthyLiquidateDifferentMarkets(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { - MorphoHarness.Id id = libId(marketParams); - address user; - MorphoHarness.MarketParams liquidationMarketParams; - - // Assume the invariant initially. - require isHealthy(marketParams, user); - - // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. - require marketParams.lltv < 10^18; - // Assumption to ensure that no interest is accumulated. - require lastUpdate(id) == e.block.timestamp; - // Assume that the liquidation is on a different market. - require liquidationMarketParams != marketParams; - - liquidate(e, liquidationMarketParams, borrower, seizedAssets, 0, data); - require !priceChanged; - - // Safe require because of the invariant sumBorrowSharesCorrect. - require borrowShares(id, user) <= totalBorrowShares(id); - - bool stillHealthy = isHealthy(marketParams, user); - require !priceChanged; - assert stillHealthy; -} - // Check that users cannot lose collateral by unauthorized parties except in case of an unhealthy position. rule healthyUserCannotLoseCollateral(env e, method f, calldataarg data) filtered { f -> !f.isView } diff --git a/certora/specs/StayHealthy.spec b/certora/specs/StayHealthy.spec new file mode 100644 index 000000000..e69de29bb From bbb4ccafad2ca652df70c5ac096bdc7aa01380d5 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 30 Sep 2024 11:37:30 +0200 Subject: [PATCH 093/110] chore: add StayHealthy spec --- certora/specs/StayHealthy.spec | 121 +++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/certora/specs/StayHealthy.spec b/certora/specs/StayHealthy.spec index e69de29bb..840ed26d2 100644 --- a/certora/specs/StayHealthy.spec +++ b/certora/specs/StayHealthy.spec @@ -0,0 +1,121 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +import "Health.spec"; + +// Check that without accruing interest, no interaction can put an healthy account into an unhealthy one. +// The liquidate function times out in this rule, but has been checked separately. +rule stayHealthy(env e, method f, calldataarg data) +filtered { + f -> !f.isView && + f.selector != sig:liquidate(MorphoHarness.MarketParams, address, uint256, uint256, bytes).selector +} +{ + MorphoHarness.MarketParams marketParams; + MorphoHarness.Id id = libId(marketParams); + address user; + + // Assume that the position is healthy before the interaction. + require isHealthy(marketParams, user); + // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. + require marketParams.lltv < 10^18; + // Assumption to ensure that no interest is accumulated. + require lastUpdate(id) == e.block.timestamp; + + priceChanged = false; + f(e, data); + + // Safe require because of the invariant sumBorrowSharesCorrect. + require borrowShares(id, user) <= totalBorrowShares(id); + + bool stillHealthy = isHealthy(marketParams, user); + assert !priceChanged => stillHealthy; +} + +// The liquidate case for the stayHealthy rule, assuming no bad debt realization, otherwise it times out. +// This particular rule makes the following assumptions: +// - the market of the liquidation is the market of the user, see the *DifferentMarkets rule, +// - there is still some borrow on the market after liquidation, see the *LastBorrow rule. +rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { + MorphoHarness.Id id = libId(marketParams); + address user; + + // Assume the invariant initially. + require isHealthy(marketParams, user); + + uint256 debtSharesBefore = borrowShares(id, user); + uint256 debtAssetsBefore = summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); + // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. + require marketParams.lltv < 10^18; + // Assumption to ensure that no interest is accumulated. + require lastUpdate(id) == e.block.timestamp; + + liquidate(e, marketParams, borrower, seizedAssets, 0, data); + require !priceChanged; + + // Safe require because of the invariant sumBorrowSharesCorrect. + require borrowShares(id, user) <= totalBorrowShares(id); + // Assume that there is still some borrow on the market after liquidation. + require totalBorrowAssets(id) > 0; + // Assume no bad debt realization. + require collateral(id, borrower) > 0; + + assert user != borrower; + assert debtSharesBefore == borrowShares(id, user); + assert debtAssetsBefore >= summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); + + bool stillHealthy = isHealthy(marketParams, user); + require !priceChanged; + assert stillHealthy; +} + +rule stayHealthyLiquidateDifferentMarkets(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { + MorphoHarness.Id id = libId(marketParams); + address user; + MorphoHarness.MarketParams liquidationMarketParams; + + // Assume the invariant initially. + require isHealthy(marketParams, user); + + // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. + require marketParams.lltv < 10^18; + // Assumption to ensure that no interest is accumulated. + require lastUpdate(id) == e.block.timestamp; + // Assume that the liquidation is on a different market. + require liquidationMarketParams != marketParams; + + liquidate(e, liquidationMarketParams, borrower, seizedAssets, 0, data); + require !priceChanged; + + // Safe require because of the invariant sumBorrowSharesCorrect. + require borrowShares(id, user) <= totalBorrowShares(id); + + bool stillHealthy = isHealthy(marketParams, user); + require !priceChanged; + assert stillHealthy; +} + +rule stayHealthyLiquidateLastBorrow(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { + MorphoHarness.Id id = libId(marketParams); + address user; + + // Assume the invariant initially. + require isHealthy(marketParams, user); + + uint256 debtSharesBefore = borrowShares(id, user); + uint256 debtAssetsBefore = summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); + // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. + require marketParams.lltv < 10^18; + // Assumption to ensure that no interest is accumulated. + require lastUpdate(id) == e.block.timestamp; + + liquidate(e, marketParams, borrower, seizedAssets, 0, data); + require !priceChanged; + + // Safe require because of the invariant sumBorrowSharesCorrect. + require borrowShares(id, user) <= totalBorrowShares(id); + // Assume that there is still some borrow on the market after liquidation. + require totalBorrowAssets(id) == 0; + + bool stillHealthy = isHealthy(marketParams, user); + require !priceChanged; + assert stillHealthy; +} From eb6c5b613e70d32f502a69d7535adcef2513db45 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 30 Sep 2024 16:07:35 +0200 Subject: [PATCH 094/110] docs: adapt README --- certora/README.md | 3 ++- certora/specs/StayHealthy.spec | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/certora/README.md b/certora/README.md index 12cc0fd88..cbd2b424c 100644 --- a/certora/README.md +++ b/certora/README.md @@ -250,12 +250,13 @@ The [`certora/specs`](specs) folder contains the following files: - [`ExactMath.spec`](specs/ExactMath.spec) checks precise properties when taking into account exact multiplication and division. Notably, this file specifies that using supply and withdraw in the same block cannot yield more funds than at the start. - [`Health.spec`](specs/Health.spec) checks properties about the health of the positions. - Notably, functions cannot render an account unhealthy, and debt positions always have some collateral (thanks to the bad debt realization mechanism). + Notably, debt positions always have some collateral thanks to the bad debt realization mechanism. - [`LibSummary.spec`](specs/LibSummary.spec) checks the summarization of the library functions that are used in other specification files. - [`Liveness.spec`](specs/Liveness.spec) checks that main functions change the owner of funds and the amount of shares as expected, and that it's always possible to exit a position. - [`ExchangeRate.spec`](specs/ExchangeRate.spec) checks that the exchange rate between shares and assets evolves predictably over time. - [`Reentrancy.spec`](specs/Reentrancy.spec) checks that the contract is immune to a particular class of reentrancy issues. - [`Reverts.spec`](specs/Reverts.spec) checks the condition for reverts and that inputs are correctly validated. +- [`StayHealthy.spec`](specs/Health.spec) checks that functions cannot render an account unhealthy. - [`Transfer.spec`](specs/Transfer.spec) checks the summarization of the safe transfer library functions that are used in other specification files. The [`certora/confs`](confs) folder contains a configuration file for each corresponding specification file. diff --git a/certora/specs/StayHealthy.spec b/certora/specs/StayHealthy.spec index 840ed26d2..9a8357e22 100644 --- a/certora/specs/StayHealthy.spec +++ b/certora/specs/StayHealthy.spec @@ -20,7 +20,6 @@ filtered { // Assumption to ensure that no interest is accumulated. require lastUpdate(id) == e.block.timestamp; - priceChanged = false; f(e, data); // Safe require because of the invariant sumBorrowSharesCorrect. From 82829078b1dfeb9ac4b56860cfffbe38f485da07 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 30 Sep 2024 16:11:35 +0200 Subject: [PATCH 095/110] docs: fix spec of no borrow Co-authored-by: MathisGD <74971347+MathisGD@users.noreply.github.com> Signed-off-by: Quentin Garchery --- certora/specs/StayHealthy.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certora/specs/StayHealthy.spec b/certora/specs/StayHealthy.spec index 9a8357e22..b4d8d85af 100644 --- a/certora/specs/StayHealthy.spec +++ b/certora/specs/StayHealthy.spec @@ -111,7 +111,7 @@ rule stayHealthyLiquidateLastBorrow(env e, MorphoHarness.MarketParams marketPara // Safe require because of the invariant sumBorrowSharesCorrect. require borrowShares(id, user) <= totalBorrowShares(id); - // Assume that there is still some borrow on the market after liquidation. + // Assume that there is no remaining borrow on the market after liquidation. require totalBorrowAssets(id) == 0; bool stillHealthy = isHealthy(marketParams, user); From 90c3c8e4ccb69c8b0ad9eda5143e81620f2ead96 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 30 Sep 2024 16:13:06 +0200 Subject: [PATCH 096/110] chore: remove unnecessary variable definition Co-authored-by: MathisGD <74971347+MathisGD@users.noreply.github.com> Signed-off-by: Quentin Garchery --- certora/specs/StayHealthy.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/certora/specs/StayHealthy.spec b/certora/specs/StayHealthy.spec index b4d8d85af..c92ea00e8 100644 --- a/certora/specs/StayHealthy.spec +++ b/certora/specs/StayHealthy.spec @@ -99,8 +99,6 @@ rule stayHealthyLiquidateLastBorrow(env e, MorphoHarness.MarketParams marketPara // Assume the invariant initially. require isHealthy(marketParams, user); - uint256 debtSharesBefore = borrowShares(id, user); - uint256 debtAssetsBefore = summaryMulDivUp(debtSharesBefore, virtualTotalBorrowAssets(id), virtualTotalBorrowShares(id)); // Safe require because of the invariants onlyEnabledLltv and lltvSmallerThanWad in ConsistentState.spec. require marketParams.lltv < 10^18; // Assumption to ensure that no interest is accumulated. From 74f40b749fe9cdbc4749ef92d70e3a2c9b2a7e87 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 9 Oct 2024 16:07:43 +0200 Subject: [PATCH 097/110] refactor: remove unnecessary ghost variable assignment --- certora/specs/Health.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index 6f2d395e9..cb764b015 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -67,7 +67,6 @@ filtered { f -> !f.isView } mathint collateralBefore = collateral(id, user); - priceChanged = false; f(e, data); mathint collateralAfter = collateral(id, user); From a56da03797f913477e184936208e0af75a1208a8 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 9 Oct 2024 16:08:06 +0200 Subject: [PATCH 098/110] chore: format conf files according to prettier rules for JSON --- certora/confs/AccrueInterest.conf | 26 +++++++++++------------ certora/confs/AssetsAccounting.conf | 16 +++++++------- certora/confs/ConsistentState.conf | 16 +++++++------- certora/confs/ExactMath.conf | 33 ++++++++++++++--------------- certora/confs/ExchangeRate.conf | 24 ++++++++++----------- certora/confs/Health.conf | 24 ++++++++++----------- certora/confs/LibSummary.conf | 22 +++++++++---------- certora/confs/Liveness.conf | 16 +++++++------- certora/confs/Reentrancy.conf | 22 +++++++++---------- certora/confs/Reverts.conf | 16 +++++++------- certora/confs/StayHealthy.conf | 32 ++++++++++++++-------------- certora/confs/Transfer.conf | 22 +++++++++---------- 12 files changed, 134 insertions(+), 135 deletions(-) diff --git a/certora/confs/AccrueInterest.conf b/certora/confs/AccrueInterest.conf index 805700641..3841d32c6 100644 --- a/certora/confs/AccrueInterest.conf +++ b/certora/confs/AccrueInterest.conf @@ -1,15 +1,15 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/AccrueInterest.spec", - "prover_args": [ - "-depth 3", - "-mediumTimeout 30", - "-smt_hashingScheme plaininjectivity", - ], - "rule_sanity": "basic", - "server": "production", - "msg": "Morpho Blue Accrue Interest" + "files": [ + "certora/harness/MorphoHarness.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/AccrueInterest.spec", + "prover_args": [ + "-depth 3", + "-mediumTimeout 30", + "-smt_hashingScheme plaininjectivity" + ], + "rule_sanity": "basic", + "server": "production", + "msg": "Morpho Blue Accrue Interest" } diff --git a/certora/confs/AssetsAccounting.conf b/certora/confs/AssetsAccounting.conf index b31cecfa3..72e3e20e4 100644 --- a/certora/confs/AssetsAccounting.conf +++ b/certora/confs/AssetsAccounting.conf @@ -1,10 +1,10 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/AssetsAccounting.spec", - "rule_sanity": "basic", - "server": "production", - "msg": "Morpho Blue Assets Accounting" + "files": [ + "certora/harness/MorphoHarness.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/AssetsAccounting.spec", + "rule_sanity": "basic", + "server": "production", + "msg": "Morpho Blue Assets Accounting" } diff --git a/certora/confs/ConsistentState.conf b/certora/confs/ConsistentState.conf index e946d31df..a37497230 100644 --- a/certora/confs/ConsistentState.conf +++ b/certora/confs/ConsistentState.conf @@ -1,10 +1,10 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/ConsistentState.spec", - "rule_sanity": "basic", - "server": "production", - "msg": "Morpho Blue Consistent State" + "files": [ + "certora/harness/MorphoHarness.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/ConsistentState.spec", + "rule_sanity": "basic", + "server": "production", + "msg": "Morpho Blue Consistent State" } diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index a6a162f49..2eb966273 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -1,19 +1,18 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/ExactMath.spec", - "rule_sanity": "basic", - "prover_args": [ - "-depth 5", - "-mediumTimeout 5", - "-timeout 3600", - "-adaptiveSolverConfig false", - "-smt_nonLinearArithmetic true", - "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", - ], - "cache": "none", - "server": "production", - "msg": "Morpho Blue Exact Math" + "files": [ + "certora/harness/MorphoHarness.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/ExactMath.spec", + "rule_sanity": "basic", + "prover_args": [ + "-depth 5", + "-mediumTimeout 5", + "-timeout 3600", + "-adaptiveSolverConfig false", + "-smt_nonLinearArithmetic true", + "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]" + ], + "server": "production", + "msg": "Morpho Blue Exact Math" } diff --git a/certora/confs/ExchangeRate.conf b/certora/confs/ExchangeRate.conf index da6b7c558..0e1f805f7 100644 --- a/certora/confs/ExchangeRate.conf +++ b/certora/confs/ExchangeRate.conf @@ -1,14 +1,14 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/ExchangeRate.spec", - "rule_sanity": "basic", - "prover_args": [ - "-smt_hashingScheme plaininjectivity", - "-smt_easy_LIA true", - ], - "server": "production", - "msg": "Morpho Blue Exchange Rate" + "files": [ + "certora/harness/MorphoHarness.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/ExchangeRate.spec", + "rule_sanity": "basic", + "prover_args": [ + "-smt_hashingScheme plaininjectivity", + "-smt_easy_LIA true" + ], + "server": "production", + "msg": "Morpho Blue Exchange Rate" } diff --git a/certora/confs/Health.conf b/certora/confs/Health.conf index 0b4cf1895..30aeeab15 100644 --- a/certora/confs/Health.conf +++ b/certora/confs/Health.conf @@ -1,14 +1,14 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - "src/mocks/OracleMock.sol" - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/Health.spec", - "rule_sanity": "basic", - "prover_args": [ - "-smt_hashingScheme plaininjectivity", - ], - "server": "production", - "msg": "Morpho Blue Health" + "files": [ + "certora/harness/MorphoHarness.sol", + "src/mocks/OracleMock.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/Health.spec", + "rule_sanity": "basic", + "prover_args": [ + "-smt_hashingScheme plaininjectivity" + ], + "server": "production", + "msg": "Morpho Blue Health" } diff --git a/certora/confs/LibSummary.conf b/certora/confs/LibSummary.conf index 804928d2f..dc5efc342 100644 --- a/certora/confs/LibSummary.conf +++ b/certora/confs/LibSummary.conf @@ -1,13 +1,13 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/LibSummary.spec", - "rule_sanity": "basic", - "prover_args": [ - "-smt_bitVectorTheory true" - ], - "server": "production", - "msg": "Morpho Blue Lib Summary" + "files": [ + "certora/harness/MorphoHarness.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/LibSummary.spec", + "rule_sanity": "basic", + "prover_args": [ + "-smt_bitVectorTheory true" + ], + "server": "production", + "msg": "Morpho Blue Lib Summary" } diff --git a/certora/confs/Liveness.conf b/certora/confs/Liveness.conf index 2dafcec5e..f9196903f 100644 --- a/certora/confs/Liveness.conf +++ b/certora/confs/Liveness.conf @@ -1,10 +1,10 @@ { - "files": [ - "certora/harness/MorphoInternalAccess.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoInternalAccess:certora/specs/Liveness.spec", - "rule_sanity": "basic", - "server": "production", - "msg": "Morpho Blue Liveness" + "files": [ + "certora/harness/MorphoInternalAccess.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoInternalAccess:certora/specs/Liveness.spec", + "rule_sanity": "basic", + "server": "production", + "msg": "Morpho Blue Liveness" } diff --git a/certora/confs/Reentrancy.conf b/certora/confs/Reentrancy.conf index 15c3577f2..a7a409c49 100644 --- a/certora/confs/Reentrancy.conf +++ b/certora/confs/Reentrancy.conf @@ -1,13 +1,13 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/Reentrancy.spec", - "rule_sanity": "basic", - "prover_args": [ - "-enableStorageSplitting false", - ], - "server": "production", - "msg": "Morpho Blue Reentrancy" + "files": [ + "certora/harness/MorphoHarness.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/Reentrancy.spec", + "rule_sanity": "basic", + "prover_args": [ + "-enableStorageSplitting false" + ], + "server": "production", + "msg": "Morpho Blue Reentrancy" } diff --git a/certora/confs/Reverts.conf b/certora/confs/Reverts.conf index 7f8175a1a..c1d6dadc1 100644 --- a/certora/confs/Reverts.conf +++ b/certora/confs/Reverts.conf @@ -1,10 +1,10 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - ], - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/Reverts.spec", - "rule_sanity": "basic", - "server": "production", - "msg": "Morpho Blue Reverts" + "files": [ + "certora/harness/MorphoHarness.sol" + ], + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/Reverts.spec", + "rule_sanity": "basic", + "server": "production", + "msg": "Morpho Blue Reverts" } diff --git a/certora/confs/StayHealthy.conf b/certora/confs/StayHealthy.conf index 567f70d48..7364de175 100644 --- a/certora/confs/StayHealthy.conf +++ b/certora/confs/StayHealthy.conf @@ -1,18 +1,18 @@ { - "files": [ - "certora/harness/MorphoHarness.sol", - "src/mocks/OracleMock.sol", - ], - "msg": "Morpho Blue Stay Healthy", - "process": "emv", - "prover_args": [ - "-depth 5", - "-mediumTimeout 5", - "-timeout 3600", - "-smt_hashingScheme plaininjectivity" - ], - "rule_sanity": "basic", - "server": "production", - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/StayHealthy.spec" + "files": [ + "certora/harness/MorphoHarness.sol", + "src/mocks/OracleMock.sol" + ], + "msg": "Morpho Blue Stay Healthy", + "process": "emv", + "prover_args": [ + "-depth 5", + "-mediumTimeout 5", + "-timeout 3600", + "-smt_hashingScheme plaininjectivity" + ], + "rule_sanity": "basic", + "server": "production", + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/StayHealthy.spec" } diff --git a/certora/confs/Transfer.conf b/certora/confs/Transfer.conf index a02ea90f8..632ee90cf 100644 --- a/certora/confs/Transfer.conf +++ b/certora/confs/Transfer.conf @@ -1,13 +1,13 @@ { - "files": [ - "certora/harness/TransferHarness.sol", - "certora/dispatch/ERC20Standard.sol", - "certora/dispatch/ERC20USDT.sol", - "certora/dispatch/ERC20NoRevert.sol", - ], - "solc": "solc-0.8.19", - "verify": "TransferHarness:certora/specs/Transfer.spec", - "rule_sanity": "basic", - "server": "production", - "msg": "Morpho Blue Transfer" + "files": [ + "certora/harness/TransferHarness.sol", + "certora/dispatch/ERC20Standard.sol", + "certora/dispatch/ERC20USDT.sol", + "certora/dispatch/ERC20NoRevert.sol" + ], + "solc": "solc-0.8.19", + "verify": "TransferHarness:certora/specs/Transfer.spec", + "rule_sanity": "basic", + "server": "production", + "msg": "Morpho Blue Transfer" } From 4446011f2a8f9c149399ed921d98d333022f8c66 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 9 Oct 2024 17:41:53 +0200 Subject: [PATCH 099/110] feat: solve StayHealthy timeout --- certora/confs/ExactMath.conf | 2 +- certora/confs/ExchangeRate.conf | 2 +- certora/confs/Health.conf | 2 +- certora/confs/LibSummary.conf | 2 +- certora/confs/Reentrancy.conf | 2 +- certora/confs/StayHealthy.conf | 13 +++++-------- 6 files changed, 10 insertions(+), 13 deletions(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 2eb966273..7a82fca5c 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -4,7 +4,6 @@ ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/ExactMath.spec", - "rule_sanity": "basic", "prover_args": [ "-depth 5", "-mediumTimeout 5", @@ -13,6 +12,7 @@ "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]" ], + "rule_sanity": "basic", "server": "production", "msg": "Morpho Blue Exact Math" } diff --git a/certora/confs/ExchangeRate.conf b/certora/confs/ExchangeRate.conf index 0e1f805f7..5a549a5e5 100644 --- a/certora/confs/ExchangeRate.conf +++ b/certora/confs/ExchangeRate.conf @@ -4,11 +4,11 @@ ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/ExchangeRate.spec", - "rule_sanity": "basic", "prover_args": [ "-smt_hashingScheme plaininjectivity", "-smt_easy_LIA true" ], + "rule_sanity": "basic", "server": "production", "msg": "Morpho Blue Exchange Rate" } diff --git a/certora/confs/Health.conf b/certora/confs/Health.conf index 30aeeab15..0b47d05a5 100644 --- a/certora/confs/Health.conf +++ b/certora/confs/Health.conf @@ -5,10 +5,10 @@ ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/Health.spec", - "rule_sanity": "basic", "prover_args": [ "-smt_hashingScheme plaininjectivity" ], + "rule_sanity": "basic", "server": "production", "msg": "Morpho Blue Health" } diff --git a/certora/confs/LibSummary.conf b/certora/confs/LibSummary.conf index dc5efc342..34526a1f6 100644 --- a/certora/confs/LibSummary.conf +++ b/certora/confs/LibSummary.conf @@ -4,10 +4,10 @@ ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/LibSummary.spec", - "rule_sanity": "basic", "prover_args": [ "-smt_bitVectorTheory true" ], + "rule_sanity": "basic", "server": "production", "msg": "Morpho Blue Lib Summary" } diff --git a/certora/confs/Reentrancy.conf b/certora/confs/Reentrancy.conf index a7a409c49..6dbec607a 100644 --- a/certora/confs/Reentrancy.conf +++ b/certora/confs/Reentrancy.conf @@ -4,10 +4,10 @@ ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/Reentrancy.spec", - "rule_sanity": "basic", "prover_args": [ "-enableStorageSplitting false" ], + "rule_sanity": "basic", "server": "production", "msg": "Morpho Blue Reentrancy" } diff --git a/certora/confs/StayHealthy.conf b/certora/confs/StayHealthy.conf index 7364de175..7179c6749 100644 --- a/certora/confs/StayHealthy.conf +++ b/certora/confs/StayHealthy.conf @@ -3,16 +3,13 @@ "certora/harness/MorphoHarness.sol", "src/mocks/OracleMock.sol" ], - "msg": "Morpho Blue Stay Healthy", - "process": "emv", + "solc": "solc-0.8.19", + "verify": "MorphoHarness:certora/specs/StayHealthy.spec", "prover_args": [ - "-depth 5", - "-mediumTimeout 5", - "-timeout 3600", - "-smt_hashingScheme plaininjectivity" + "-smt_hashingScheme plaininjectivity", + "-solvers [yices,z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:def{randomSeed=8},z3:def{randomSeed=9},z3:def{randomSeed=10}]" ], "rule_sanity": "basic", "server": "production", - "solc": "solc-0.8.19", - "verify": "MorphoHarness:certora/specs/StayHealthy.spec" + "msg": "Morpho Blue Stay Healthy" } From f5bc377cb17469cb19baf8536b453cc2dbbfbd99 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 22 Oct 2024 14:08:38 +0200 Subject: [PATCH 100/110] chore: add config for StayHealthy timeout --- certora/confs/StayHealthy.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/certora/confs/StayHealthy.conf b/certora/confs/StayHealthy.conf index 7179c6749..02f5a0046 100644 --- a/certora/confs/StayHealthy.conf +++ b/certora/confs/StayHealthy.conf @@ -5,9 +5,10 @@ ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/StayHealthy.spec", + "global_timeout": "7200", + "smt_timeout": "7200", "prover_args": [ - "-smt_hashingScheme plaininjectivity", - "-solvers [yices,z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:def{randomSeed=8},z3:def{randomSeed=9},z3:def{randomSeed=10}]" + "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:def{randomSeed=8},z3:def{randomSeed=9},z3:def{randomSeed=10}]" ], "rule_sanity": "basic", "server": "production", From 470b1cd1a9623a2d0ff76570fb2dd0c5cfc08e31 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 22 Oct 2024 14:54:54 +0200 Subject: [PATCH 101/110] chore: test without higher timeout caps --- certora/confs/StayHealthy.conf | 2 -- 1 file changed, 2 deletions(-) diff --git a/certora/confs/StayHealthy.conf b/certora/confs/StayHealthy.conf index 02f5a0046..1854fdbc9 100644 --- a/certora/confs/StayHealthy.conf +++ b/certora/confs/StayHealthy.conf @@ -5,8 +5,6 @@ ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/StayHealthy.spec", - "global_timeout": "7200", - "smt_timeout": "7200", "prover_args": [ "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:def{randomSeed=8},z3:def{randomSeed=9},z3:def{randomSeed=10}]" ], From b22e68e29b0e49ffebdfb9a34f33df1df69f9740 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:14:57 +0000 Subject: [PATCH 102/110] chore(deps): bump secp256k1 from 4.0.3 to 4.0.4 Bumps [secp256k1](https://github.com/cryptocoinjs/secp256k1-node) from 4.0.3 to 4.0.4. - [Release notes](https://github.com/cryptocoinjs/secp256k1-node/releases) - [Commits](https://github.com/cryptocoinjs/secp256k1-node/compare/v4.0.3...v4.0.4) --- updated-dependencies: - dependency-name: secp256k1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index fd52da2a5..f97c8ad90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2353,7 +2353,7 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: +elliptic@6.5.4, elliptic@^6.5.2: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -2366,6 +2366,19 @@ elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.5.7: + version "6.5.7" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b" + integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -4411,6 +4424,11 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + node-emoji@^1.10.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -5148,12 +5166,12 @@ scrypt-js@3.0.1, scrypt-js@^3.0.0: integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== secp256k1@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" - integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + version "4.0.4" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.4.tgz#58f0bfe1830fe777d9ca1ffc7574962a8189f8ab" + integrity sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw== dependencies: - elliptic "^6.5.4" - node-addon-api "^2.0.0" + elliptic "^6.5.7" + node-addon-api "^5.0.0" node-gyp-build "^4.2.0" "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.7.0: From e3bbb57c36e9118e777a79df7ee5d65461045547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Gonz=C3=A1lez?= Date: Mon, 28 Oct 2024 10:23:29 +0100 Subject: [PATCH 103/110] fix: add getter to the certora harness --- certora/harness/MorphoHarness.sol | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/certora/harness/MorphoHarness.sol b/certora/harness/MorphoHarness.sol index ff504632b..6a523a0aa 100644 --- a/certora/harness/MorphoHarness.sol +++ b/certora/harness/MorphoHarness.sol @@ -22,6 +22,14 @@ contract MorphoHarness is Morpho { return idToMarketParams[id]; } + function toMarket(Id id) external view returns (Market memory) { + return market[id]; + } + + function toPosition(Id id, address borrower) external view returns (Market memory) { + return position[id][borrower]; + } + function totalSupplyAssets(Id id) external view returns (uint256) { return market[id].totalSupplyAssets; } From 903328eaf6f24f132fe1707a82640d805ee24168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Gonz=C3=A1lez?= Date: Mon, 28 Oct 2024 10:33:25 +0100 Subject: [PATCH 104/110] fix: change return type --- certora/harness/MorphoHarness.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certora/harness/MorphoHarness.sol b/certora/harness/MorphoHarness.sol index 6a523a0aa..f45722437 100644 --- a/certora/harness/MorphoHarness.sol +++ b/certora/harness/MorphoHarness.sol @@ -26,7 +26,7 @@ contract MorphoHarness is Morpho { return market[id]; } - function toPosition(Id id, address borrower) external view returns (Market memory) { + function toPosition(Id id, address borrower) external view returns (Position memory) { return position[id][borrower]; } From b67e25af8da19d2b466c6f88d52ad769222ee518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Gonz=C3=A1lez?= Date: Mon, 28 Oct 2024 10:39:42 +0100 Subject: [PATCH 105/110] fix: rename to match implementation --- certora/harness/MorphoHarness.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/certora/harness/MorphoHarness.sol b/certora/harness/MorphoHarness.sol index f45722437..c8e67abb0 100644 --- a/certora/harness/MorphoHarness.sol +++ b/certora/harness/MorphoHarness.sol @@ -22,11 +22,11 @@ contract MorphoHarness is Morpho { return idToMarketParams[id]; } - function toMarket(Id id) external view returns (Market memory) { + function market_(Id id) external view returns (Market memory) { return market[id]; } - function toPosition(Id id, address borrower) external view returns (Position memory) { + function position_(Id id, address borrower) external view returns (Position memory) { return position[id][borrower]; } From f048a2aa5c718f82f0a2823c7e1da573dbbd343f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Gonz=C3=A1lez?= Date: Mon, 28 Oct 2024 11:38:01 +0100 Subject: [PATCH 106/110] feat: externalize utilitary verification functions --- certora/confs/AccrueInterest.conf | 3 ++- certora/confs/AssetsAccounting.conf | 3 ++- certora/confs/ConsistentState.conf | 3 ++- certora/confs/ExactMath.conf | 3 ++- certora/confs/ExchangeRate.conf | 3 ++- certora/confs/Health.conf | 1 + certora/confs/LibSummary.conf | 3 ++- certora/confs/Liveness.conf | 3 ++- certora/confs/Reverts.conf | 3 ++- certora/confs/StayHealthy.conf | 1 + certora/harness/MorphoHarness.sol | 28 --------------------- certora/harness/Util.sol | 39 +++++++++++++++++++++++++++++ certora/specs/AccrueInterest.spec | 2 +- certora/specs/AssetsAccounting.spec | 25 ++++++++++-------- certora/specs/ConsistentState.spec | 25 ++++++++++-------- certora/specs/ExactMath.spec | 15 ++++++----- certora/specs/ExchangeRate.spec | 13 ++++++---- certora/specs/Health.spec | 9 ++++--- certora/specs/LibSummary.spec | 21 +++++++++------- certora/specs/Liveness.spec | 29 +++++++++++---------- certora/specs/Reverts.spec | 19 ++++++++------ certora/specs/StayHealthy.spec | 8 +++--- 22 files changed, 152 insertions(+), 107 deletions(-) create mode 100644 certora/harness/Util.sol diff --git a/certora/confs/AccrueInterest.conf b/certora/confs/AccrueInterest.conf index 3841d32c6..8d4706d19 100644 --- a/certora/confs/AccrueInterest.conf +++ b/certora/confs/AccrueInterest.conf @@ -1,6 +1,7 @@ { "files": [ - "certora/harness/MorphoHarness.sol" + "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol" ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/AccrueInterest.spec", diff --git a/certora/confs/AssetsAccounting.conf b/certora/confs/AssetsAccounting.conf index 72e3e20e4..765e597bc 100644 --- a/certora/confs/AssetsAccounting.conf +++ b/certora/confs/AssetsAccounting.conf @@ -1,6 +1,7 @@ { "files": [ - "certora/harness/MorphoHarness.sol" + "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol" ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/AssetsAccounting.spec", diff --git a/certora/confs/ConsistentState.conf b/certora/confs/ConsistentState.conf index a37497230..8e7cdaca7 100644 --- a/certora/confs/ConsistentState.conf +++ b/certora/confs/ConsistentState.conf @@ -1,6 +1,7 @@ { "files": [ - "certora/harness/MorphoHarness.sol" + "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol" ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/ConsistentState.spec", diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 7a82fca5c..2894ce6ee 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -1,6 +1,7 @@ { "files": [ - "certora/harness/MorphoHarness.sol" + "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol" ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/ExactMath.spec", diff --git a/certora/confs/ExchangeRate.conf b/certora/confs/ExchangeRate.conf index 5a549a5e5..2c6efcc21 100644 --- a/certora/confs/ExchangeRate.conf +++ b/certora/confs/ExchangeRate.conf @@ -1,6 +1,7 @@ { "files": [ - "certora/harness/MorphoHarness.sol" + "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol" ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/ExchangeRate.spec", diff --git a/certora/confs/Health.conf b/certora/confs/Health.conf index 0b47d05a5..e052dfcf5 100644 --- a/certora/confs/Health.conf +++ b/certora/confs/Health.conf @@ -1,6 +1,7 @@ { "files": [ "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol", "src/mocks/OracleMock.sol" ], "solc": "solc-0.8.19", diff --git a/certora/confs/LibSummary.conf b/certora/confs/LibSummary.conf index 34526a1f6..61414e220 100644 --- a/certora/confs/LibSummary.conf +++ b/certora/confs/LibSummary.conf @@ -1,6 +1,7 @@ { "files": [ - "certora/harness/MorphoHarness.sol" + "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol" ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/LibSummary.spec", diff --git a/certora/confs/Liveness.conf b/certora/confs/Liveness.conf index f9196903f..5c438af50 100644 --- a/certora/confs/Liveness.conf +++ b/certora/confs/Liveness.conf @@ -1,6 +1,7 @@ { "files": [ - "certora/harness/MorphoInternalAccess.sol" + "certora/harness/MorphoInternalAccess.sol", + "certora/harness/Util.sol" ], "solc": "solc-0.8.19", "verify": "MorphoInternalAccess:certora/specs/Liveness.spec", diff --git a/certora/confs/Reverts.conf b/certora/confs/Reverts.conf index c1d6dadc1..a54d3bfd4 100644 --- a/certora/confs/Reverts.conf +++ b/certora/confs/Reverts.conf @@ -1,6 +1,7 @@ { "files": [ - "certora/harness/MorphoHarness.sol" + "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol" ], "solc": "solc-0.8.19", "verify": "MorphoHarness:certora/specs/Reverts.spec", diff --git a/certora/confs/StayHealthy.conf b/certora/confs/StayHealthy.conf index 1854fdbc9..dc605cf12 100644 --- a/certora/confs/StayHealthy.conf +++ b/certora/confs/StayHealthy.conf @@ -1,6 +1,7 @@ { "files": [ "certora/harness/MorphoHarness.sol", + "certora/harness/Util.sol", "src/mocks/OracleMock.sol" ], "solc": "solc-0.8.19", diff --git a/certora/harness/MorphoHarness.sol b/certora/harness/MorphoHarness.sol index c8e67abb0..bcaedb912 100644 --- a/certora/harness/MorphoHarness.sol +++ b/certora/harness/MorphoHarness.sol @@ -10,14 +10,6 @@ contract MorphoHarness is Morpho { constructor(address newOwner) Morpho(newOwner) {} - function wad() external pure returns (uint256) { - return WAD; - } - - function maxFee() external pure returns (uint256) { - return MAX_FEE; - } - function toMarketParams(Id id) external view returns (MarketParams memory) { return idToMarketParams[id]; } @@ -82,26 +74,6 @@ contract MorphoHarness is Morpho { return market[id].totalBorrowShares + SharesMathLib.VIRTUAL_SHARES; } - function libId(MarketParams memory marketParams) external pure returns (Id) { - return marketParams.id(); - } - - function refId(MarketParams memory marketParams) external pure returns (Id marketParamsId) { - marketParamsId = Id.wrap(keccak256(abi.encode(marketParams))); - } - - function libMulDivUp(uint256 x, uint256 y, uint256 d) external pure returns (uint256) { - return MathLib.mulDivUp(x, y, d); - } - - function libMulDivDown(uint256 x, uint256 y, uint256 d) external pure returns (uint256) { - return MathLib.mulDivDown(x, y, d); - } - - function libMin(uint256 x, uint256 y) external pure returns (uint256) { - return UtilsLib.min(x, y); - } - function isHealthy(MarketParams memory marketParams, address user) external view returns (bool) { return _isHealthy(marketParams, marketParams.id(), user); } diff --git a/certora/harness/Util.sol b/certora/harness/Util.sol new file mode 100644 index 000000000..cef51dea9 --- /dev/null +++ b/certora/harness/Util.sol @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity 0.8.19; + +import {Id, MarketParams, MarketParamsLib} from "../../src/libraries/MarketParamsLib.sol"; +import "../../src/libraries/MathLib.sol"; +import "../../src/libraries/ConstantsLib.sol"; +import "../../src/libraries/UtilsLib.sol"; + +contract Util { + using MarketParamsLib for MarketParams; + + function wad() external pure returns (uint256) { + return WAD; + } + + function maxFee() external pure returns (uint256) { + return MAX_FEE; + } + + function libId(MarketParams memory marketParams) external pure returns (Id) { + return marketParams.id(); + } + + function refId(MarketParams memory marketParams) external pure returns (Id marketParamsId) { + marketParamsId = Id.wrap(keccak256(abi.encode(marketParams))); + } + + function libMulDivUp(uint256 x, uint256 y, uint256 d) external pure returns (uint256) { + return MathLib.mulDivUp(x, y, d); + } + + function libMulDivDown(uint256 x, uint256 y, uint256 d) external pure returns (uint256) { + return MathLib.mulDivDown(x, y, d); + } + + function libMin(uint256 x, uint256 y) external pure returns (uint256) { + return UtilsLib.min(x, y); + } +} diff --git a/certora/specs/AccrueInterest.spec b/certora/specs/AccrueInterest.spec index 7babf38de..74f986ee4 100644 --- a/certora/specs/AccrueInterest.spec +++ b/certora/specs/AccrueInterest.spec @@ -2,7 +2,7 @@ methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; - function maxFee() external returns uint256 envfree; + function Util.maxFee() external returns uint256 envfree; function MathLib.mulDivDown(uint256 a, uint256 b, uint256 c) internal returns uint256 => ghostMulDivDown(a,b,c); function MathLib.mulDivUp(uint256 a, uint256 b, uint256 c) internal returns uint256 => ghostMulDivUp(a,b,c); diff --git a/certora/specs/AssetsAccounting.spec b/certora/specs/AssetsAccounting.spec index 7071f17d8..4006eb4c0 100644 --- a/certora/specs/AssetsAccounting.spec +++ b/certora/specs/AssetsAccounting.spec @@ -1,4 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later + +using Util as Util; + methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; @@ -13,9 +16,9 @@ methods { function virtualTotalBorrowShares(MorphoHarness.Id) external returns uint256 envfree; function lastUpdate(MorphoHarness.Id) external returns uint256 envfree; - function libMulDivDown(uint256, uint256, uint256) external returns uint256 envfree; - function libMulDivUp(uint256, uint256, uint256) external returns uint256 envfree; - function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function Util.libMulDivDown(uint256, uint256, uint256) external returns uint256 envfree; + function Util.libMulDivUp(uint256, uint256, uint256) external returns uint256 envfree; + function Util.libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; } function expectedSupplyAssets(MorphoHarness.Id id, address user) returns uint256 { @@ -23,7 +26,7 @@ function expectedSupplyAssets(MorphoHarness.Id id, address user) returns uint256 uint256 totalSupplyAssets = virtualTotalSupplyAssets(id); uint256 totalSupplyShares = virtualTotalSupplyShares(id); - return libMulDivDown(userShares, totalSupplyAssets, totalSupplyShares); + return Util.libMulDivDown(userShares, totalSupplyAssets, totalSupplyShares); } function expectedBorrowAssets(MorphoHarness.Id id, address user) returns uint256 { @@ -31,12 +34,12 @@ function expectedBorrowAssets(MorphoHarness.Id id, address user) returns uint256 uint256 totalBorrowAssets = virtualTotalBorrowAssets(id); uint256 totalBorrowShares = virtualTotalBorrowShares(id); - return libMulDivUp(userShares, totalBorrowAssets, totalBorrowShares); + return Util.libMulDivUp(userShares, totalBorrowAssets, totalBorrowShares); } // Check that the assets supplied are greater than the increase in owned assets. rule supplyAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); // Assume no interest as it would increase the total supply assets. require lastUpdate(id) == e.block.timestamp; @@ -55,7 +58,7 @@ rule supplyAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint // Check that the assets withdrawn are less than the assets owned initially. rule withdrawAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, address receiver) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); // Assume no interest as it would increase the total supply assets. require lastUpdate(id) == e.block.timestamp; @@ -70,7 +73,7 @@ rule withdrawAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, ui // Check that the increase of owed assets are greater than the borrowed assets. rule borrowAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 shares, address onBehalf, address receiver) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); // Assume no interest as it would increase the total borrowed assets. require lastUpdate(id) == e.block.timestamp; @@ -90,7 +93,7 @@ rule borrowAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint // Check that the assets repaid are greater than the assets owed initially. rule repayAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); // Assume no interest as it would increase the total borrowed assets. require lastUpdate(id) == e.block.timestamp; @@ -108,7 +111,7 @@ rule repayAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint2 // Check that the collateral assets supplied are equal to the increase of owned assets. rule supplyCollateralAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 suppliedAssets, address onBehalf, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); uint256 ownedAssetsBefore = collateral(id, onBehalf); @@ -121,7 +124,7 @@ rule supplyCollateralAssetsAccounting(env e, MorphoHarness.MarketParams marketPa // Check that the collateral assets withdrawn are less than the assets owned initially. rule withdrawCollateralAssetsAccounting(env e, MorphoHarness.MarketParams marketParams, uint256 withdrawnAssets, address onBehalf, address receiver) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); uint256 ownedAssets = collateral(id, onBehalf); diff --git a/certora/specs/ConsistentState.spec b/certora/specs/ConsistentState.spec index 22a787a2f..730219b3e 100644 --- a/certora/specs/ConsistentState.spec +++ b/certora/specs/ConsistentState.spec @@ -1,4 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later + +using Util as Util; + methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; @@ -16,9 +19,9 @@ methods { function isAuthorized(address, address) external returns bool envfree; function toMarketParams(MorphoHarness.Id) external returns MorphoHarness.MarketParams envfree; - function maxFee() external returns uint256 envfree; - function wad() external returns uint256 envfree; - function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function Util.maxFee() external returns uint256 envfree; + function Util.wad() external returns uint256 envfree; + function Util.libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; function _.borrowRate(MorphoHarness.MarketParams, MorphoHarness.Market) external => HAVOC_ECF; @@ -83,7 +86,7 @@ definition isCreated(MorphoHarness.Id id) returns bool = // Check that the fee is always lower than the max fee constant. invariant feeInRange(MorphoHarness.Id id) - fee(id) <= maxFee(); + fee(id) <= Util.maxFee(); // Check that the accounting of totalSupplyShares is correct. invariant sumSupplySharesCorrect(MorphoHarness.Id id) @@ -101,13 +104,13 @@ invariant borrowLessThanSupply(MorphoHarness.Id id) // Check correctness of applying idToMarketParams() to an identifier. invariant hashOfMarketParamsOf(MorphoHarness.Id id) isCreated(id) => - libId(toMarketParams(id)) == id; + Util.libId(toMarketParams(id)) == id; // Check correctness of applying id() to a market params. // This invariant is useful in the following rule, to link an id back to a market. invariant marketParamsOfHashOf(MorphoHarness.MarketParams marketParams) - isCreated(libId(marketParams)) => - toMarketParams(libId(marketParams)) == marketParams; + isCreated(Util.libId(marketParams)) => + toMarketParams(Util.libId(marketParams)) == marketParams; // Check that the idle amount on the singleton is greater to the sum amount, that is the sum over all the markets of the total supply plus the total collateral minus the total borrow. invariant idleAmountLessThanBalance(address token) @@ -146,14 +149,14 @@ invariant idleAmountLessThanBalance(address token) // Check that a market can only exist if its LLTV is enabled. invariant onlyEnabledLltv(MorphoHarness.MarketParams marketParams) - isCreated(libId(marketParams)) => isLltvEnabled(marketParams.lltv); + isCreated(Util.libId(marketParams)) => isLltvEnabled(marketParams.lltv); invariant lltvSmallerThanWad(uint256 lltv) - isLltvEnabled(lltv) => lltv < wad(); + isLltvEnabled(lltv) => lltv < Util.wad(); // Check that a market can only exist if its IRM is enabled. invariant onlyEnabledIrm(MorphoHarness.MarketParams marketParams) - isCreated(libId(marketParams)) => isIrmEnabled(marketParams.irm); + isCreated(Util.libId(marketParams)) => isIrmEnabled(marketParams.irm); // Check the pseudo-injectivity of the hashing function id(). rule libIdUnique() { @@ -161,7 +164,7 @@ rule libIdUnique() { MorphoHarness.MarketParams marketParams2; // Assume that arguments are the same. - require libId(marketParams1) == libId(marketParams2); + require Util.libId(marketParams1) == Util.libId(marketParams2); assert marketParams1 == marketParams2; } diff --git a/certora/specs/ExactMath.spec b/certora/specs/ExactMath.spec index eedc9f04c..254588176 100644 --- a/certora/specs/ExactMath.spec +++ b/certora/specs/ExactMath.spec @@ -1,4 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later + +using Util as Util; + methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; @@ -12,8 +15,8 @@ methods { function lastUpdate(MorphoHarness.Id) external returns uint256 envfree; function fee(MorphoHarness.Id) external returns uint256 envfree; - function maxFee() external returns uint256 envfree; - function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function Util.maxFee() external returns uint256 envfree; + function Util.libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; function MathLib.mulDivDown(uint256 a, uint256 b, uint256 c) internal returns uint256 => summaryMulDivDown(a,b,c); function MathLib.mulDivUp(uint256 a, uint256 b, uint256 c) internal returns uint256 => summaryMulDivUp(a,b,c); @@ -35,9 +38,9 @@ function summaryMulDivDown(uint256 x, uint256 y, uint256 d) returns uint256 { // Check that when not accruing interest, and when repaying all, the borrow exchange rate is at least reset to the initial exchange rate. // More details on the purpose of this rule in ExchangeRate.spec. rule repayAllResetsBorrowExchangeRate(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); // Safe require because this invariant is checked in ConsistentState.spec - require fee(id) <= maxFee(); + require fee(id) <= Util.maxFee(); mathint assetsBefore = virtualTotalBorrowAssets(id); mathint sharesBefore = virtualTotalBorrowShares(id); @@ -61,7 +64,7 @@ rule repayAllResetsBorrowExchangeRate(env e, MorphoHarness.MarketParams marketPa // There should be no profit from supply followed immediately by withdraw. rule supplyWithdraw() { MorphoHarness.MarketParams marketParams; - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); env e1; env e2; address onBehalf; @@ -94,7 +97,7 @@ rule supplyWithdraw() { // There should be no profit from borrow followed immediately by repaying all. rule borrowRepay() { MorphoHarness.MarketParams marketParams; - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); address onBehalf; env e1; env e2; diff --git a/certora/specs/ExchangeRate.spec b/certora/specs/ExchangeRate.spec index 7598afee5..e2ae790ca 100644 --- a/certora/specs/ExchangeRate.spec +++ b/certora/specs/ExchangeRate.spec @@ -1,4 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later + +using Util as Util; + methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; @@ -10,8 +13,8 @@ methods { function fee(MorphoHarness.Id) external returns uint256 envfree; function lastUpdate(MorphoHarness.Id) external returns uint256 envfree; - function maxFee() external returns uint256 envfree; - function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function Util.maxFee() external returns uint256 envfree; + function Util.libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; function UtilsLib.min(uint256 x, uint256 y) internal returns uint256 => summaryMin(x, y); function MathLib.mulDivDown(uint256 a, uint256 b, uint256 c) internal returns uint256 => summaryMulDivDown(a,b,c); @@ -23,7 +26,7 @@ methods { } invariant feeInRange(MorphoHarness.Id id) - fee(id) <= maxFee(); + fee(id) <= Util.maxFee(); function summaryMin(uint256 x, uint256 y) returns uint256 { return x < y ? x : y; @@ -165,7 +168,7 @@ filtered { // The other case requires exact math (ie not over-approximating mulDivUp and mulDivDown), so it is checked separately in ExactMath.spec. rule repayDecreasesBorrowExchangeRate(env e, MorphoHarness.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); requireInvariant feeInRange(id); mathint assetsBefore = virtualTotalBorrowAssets(id); @@ -191,7 +194,7 @@ rule repayDecreasesBorrowExchangeRate(env e, MorphoHarness.MarketParams marketPa rule liquidateDecreasesBorrowExchangeRate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, uint256 repaidShares, bytes data) { require data.length == 0; - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); mathint assetsBefore = virtualTotalBorrowAssets(id); mathint sharesBefore = virtualTotalBorrowShares(id); diff --git a/certora/specs/Health.spec b/certora/specs/Health.spec index cb764b015..28fed1d80 100644 --- a/certora/specs/Health.spec +++ b/certora/specs/Health.spec @@ -1,4 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later + +using Util as Util; + methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; @@ -12,7 +15,7 @@ methods { function isAuthorized(address, address user) external returns bool envfree; function lastUpdate(MorphoHarness.Id) external returns uint256 envfree; - function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function Util.libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; function isHealthy(MorphoHarness.MarketParams, address user) external returns bool envfree; function _.price() external => mockPrice() expect uint256; @@ -54,7 +57,7 @@ rule healthyUserCannotLoseCollateral(env e, method f, calldataarg data) filtered { f -> !f.isView } { MorphoHarness.MarketParams marketParams; - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); address user; // Assume that the e.msg.sender is not authorized. @@ -81,7 +84,7 @@ invariant alwaysCollateralized(MorphoHarness.Id id, address borrower) // Checks that passing a seized amount input to liquidate leads to repaid shares S and repaid amount A such that liquidating instead with shares S also repays the amount A. rule liquidateEquivalentInputDebtAndInputCollateral(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); // Assume no interest accrual to ease the verification. require lastUpdate(id) == e.block.timestamp; diff --git a/certora/specs/LibSummary.spec b/certora/specs/LibSummary.spec index 984d68dcb..1d2e8dc08 100644 --- a/certora/specs/LibSummary.spec +++ b/certora/specs/LibSummary.spec @@ -1,32 +1,35 @@ // SPDX-License-Identifier: GPL-2.0-or-later + +using Util as Util; + methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; - function libMulDivUp(uint256, uint256, uint256) external returns uint256 envfree; - function libMulDivDown(uint256, uint256, uint256) external returns uint256 envfree; - function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; - function refId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; - function libMin(uint256 x, uint256 y) external returns uint256 envfree; + function Util.libMulDivUp(uint256, uint256, uint256) external returns uint256 envfree; + function Util.libMulDivDown(uint256, uint256, uint256) external returns uint256 envfree; + function Util.libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function Util.refId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function Util.libMin(uint256 x, uint256 y) external returns uint256 envfree; } // Check the summary of MathLib.mulDivUp required by ExchangeRate.spec rule checkSummaryMulDivUp(uint256 x, uint256 y, uint256 d) { - uint256 result = libMulDivUp(x, y, d); + uint256 result = Util.libMulDivUp(x, y, d); assert result * d >= x * y; } // Check the summary of MathLib.mulDivDown required by ExchangeRate.spec rule checkSummaryMulDivDown(uint256 x, uint256 y, uint256 d) { - uint256 result = libMulDivDown(x, y, d); + uint256 result = Util.libMulDivDown(x, y, d); assert result * d <= x * y; } // Check the summary of MarketParamsLib.id required by Liveness.spec rule checkSummaryId(MorphoHarness.MarketParams marketParams) { - assert libId(marketParams) == refId(marketParams); + assert Util.libId(marketParams) == Util.refId(marketParams); } rule checkSummaryMin(uint256 x, uint256 y) { uint256 refMin = x < y ? x : y; - assert libMin(x, y) == refMin; + assert Util.libMin(x, y) == refMin; } diff --git a/certora/specs/Liveness.spec b/certora/specs/Liveness.spec index e6a78ed6a..8ef6f5cb1 100644 --- a/certora/specs/Liveness.spec +++ b/certora/specs/Liveness.spec @@ -1,4 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later + +using Util as Util; + methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; function supplyShares(MorphoInternalAccess.Id, address) external returns uint256 envfree; @@ -13,8 +16,8 @@ methods { function nonce(address) external returns uint256 envfree; function isAuthorized(address, address) external returns bool envfree; - function libId(MorphoInternalAccess.MarketParams) external returns MorphoInternalAccess.Id envfree; - function refId(MorphoInternalAccess.MarketParams) external returns MorphoInternalAccess.Id envfree; + function Util.libId(MorphoInternalAccess.MarketParams) external returns MorphoInternalAccess.Id envfree; + function Util.refId(MorphoInternalAccess.MarketParams) external returns MorphoInternalAccess.Id envfree; function _._accrueInterest(MorphoInternalAccess.MarketParams memory marketParams, MorphoInternalAccess.Id id) internal with (env e) => summaryAccrueInterest(e, marketParams, id) expect void; @@ -28,7 +31,7 @@ persistent ghost mapping(address => mathint) balance { } function summaryId(MorphoInternalAccess.MarketParams marketParams) returns MorphoInternalAccess.Id { - return refId(marketParams); + return Util.refId(marketParams); } function summarySafeTransferFrom(address token, address from, address to, uint256 amount) { @@ -67,7 +70,7 @@ definition isCreated(MorphoInternalAccess.Id id) returns bool = // Check that tokens and shares are properly accounted following a supply. rule supplyChangesTokensAndShares(env e, MorphoInternalAccess.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Safe require because Morpho cannot call such functions by itself. require currentContract != e.msg.sender; @@ -103,7 +106,7 @@ rule canSupplyByPassingShares(env e, MorphoInternalAccess.MarketParams marketPar // Check that tokens and shares are properly accounted following a withdraw. rule withdrawChangesTokensAndShares(env e, MorphoInternalAccess.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, address receiver) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Assume that Morpho is not the receiver. require currentContract != receiver; @@ -139,7 +142,7 @@ rule canWithdrawByPassingShares(env e, MorphoInternalAccess.MarketParams marketP // Check that tokens and shares are properly accounted following a borrow. rule borrowChangesTokensAndShares(env e, MorphoInternalAccess.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, address receiver) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Assume that Morpho is not the receiver. require currentContract != receiver; @@ -175,7 +178,7 @@ rule canBorrowByPassingShares(env e, MorphoInternalAccess.MarketParams marketPar // Check that tokens and shares are properly accounted following a repay. rule repayChangesTokensAndShares(env e, MorphoInternalAccess.MarketParams marketParams, uint256 assets, uint256 shares, address onBehalf, bytes data) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Safe require because Morpho cannot call such functions by itself. require currentContract != e.msg.sender; @@ -214,7 +217,7 @@ rule canRepayByPassingShares(env e, MorphoInternalAccess.MarketParams marketPara // Check that tokens and balances are properly accounted following a supplyCollateral. rule supplyCollateralChangesTokensAndBalance(env e, MorphoInternalAccess.MarketParams marketParams, uint256 assets, address onBehalf, bytes data) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Safe require because Morpho cannot call such functions by itself. require currentContract != e.msg.sender; @@ -233,7 +236,7 @@ rule supplyCollateralChangesTokensAndBalance(env e, MorphoInternalAccess.MarketP // Check that tokens and balances are properly accounted following a withdrawCollateral. rule withdrawCollateralChangesTokensAndBalance(env e, MorphoInternalAccess.MarketParams marketParams, uint256 assets, address onBehalf, address receiver) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Assume that Morpho is not the receiver. require currentContract != receiver; @@ -254,7 +257,7 @@ rule withdrawCollateralChangesTokensAndBalance(env e, MorphoInternalAccess.Marke // Check that tokens are properly accounted following a liquidate. rule liquidateChangesTokens(env e, MorphoInternalAccess.MarketParams marketParams, address borrower, uint256 seized, uint256 repaidShares, bytes data) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Safe require because Morpho cannot call such functions by itself. require currentContract != e.msg.sender; @@ -310,7 +313,7 @@ rule setAuthorizationWithSigChangesNonceAndAuthorizes(env e, MorphoInternalAcces // Check that one can always repay the debt in full. rule canRepayAll(env e, MorphoInternalAccess.MarketParams marketParams, uint256 shares, bytes data) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Assume no callback, which still allows to repay all. require data.length == 0; @@ -341,7 +344,7 @@ rule canRepayAll(env e, MorphoInternalAccess.MarketParams marketParams, uint256 // Check the one can always withdraw all, under the condition that there are no outstanding debt on the market. rule canWithdrawAll(env e, MorphoInternalAccess.MarketParams marketParams, uint256 shares, address receiver) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Assume a full withdraw. require shares == supplyShares(id, e.msg.sender); @@ -366,7 +369,7 @@ rule canWithdrawAll(env e, MorphoInternalAccess.MarketParams marketParams, uint2 // Check that a user can always withdraw all, under the condition that this user does not have an outstanding debt. // Combined with the canRepayAll rule, this ensures that a borrower can always fully exit a market. rule canWithdrawCollateralAll(env e, MorphoInternalAccess.MarketParams marketParams, uint256 assets, address receiver) { - MorphoInternalAccess.Id id = libId(marketParams); + MorphoInternalAccess.Id id = Util.libId(marketParams); // Ensure a full withdrawCollateral. require assets == collateral(id, e.msg.sender); diff --git a/certora/specs/Reverts.spec b/certora/specs/Reverts.spec index f2c6c204a..d6a3a468f 100644 --- a/certora/specs/Reverts.spec +++ b/certora/specs/Reverts.spec @@ -1,4 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later + +using Util as Util; + methods { function extSloads(bytes32[]) external returns bytes32[] => NONDET DELETE; @@ -14,10 +17,10 @@ methods { function isAuthorized(address, address) external returns bool envfree; function nonce(address) external returns uint256 envfree; - function libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; + function Util.libId(MorphoHarness.MarketParams) external returns MorphoHarness.Id envfree; - function maxFee() external returns uint256 envfree; - function wad() external returns uint256 envfree; + function Util.maxFee() external returns uint256 envfree; + function Util.wad() external returns uint256 envfree; } definition isCreated(MorphoHarness.Id id) returns bool = @@ -81,18 +84,18 @@ rule enableLltvRevertCondition(env e, uint256 lltv) { address oldOwner = owner(); bool oldIsLltvEnabled = isLltvEnabled(lltv); enableLltv@withrevert(e, lltv); - assert lastReverted <=> e.msg.value != 0 || e.msg.sender != oldOwner || lltv >= wad() || oldIsLltvEnabled; + assert lastReverted <=> e.msg.value != 0 || e.msg.sender != oldOwner || lltv >= Util.wad() || oldIsLltvEnabled; } // Check that setFee reverts when its inputs are not validated. // setFee can also revert if the accrueInterest reverts. rule setFeeInputValidation(env e, MorphoHarness.MarketParams marketParams, uint256 newFee) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); address oldOwner = owner(); bool wasCreated = isCreated(id); setFee@withrevert(e, marketParams, newFee); bool hasReverted = lastReverted; - assert e.msg.value != 0 || e.msg.sender != oldOwner || !wasCreated || newFee > maxFee() => hasReverted; + assert e.msg.value != 0 || e.msg.sender != oldOwner || !wasCreated || newFee > Util.maxFee() => hasReverted; } // Check the revert condition for the setFeeRecipient function. @@ -105,7 +108,7 @@ rule setFeeRecipientRevertCondition(env e, address newFeeRecipient) { // Check that createMarket reverts when its input are not validated. rule createMarketInputValidation(env e, MorphoHarness.MarketParams marketParams) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); bool irmEnabled = isIrmEnabled(marketParams.irm); bool lltvEnabled = isLltvEnabled(marketParams.lltv); bool wasCreated = isCreated(id); @@ -173,7 +176,7 @@ rule setAuthorizationWithSigInputValidation(env e, MorphoHarness.Authorization a // Check that accrueInterest reverts when its inputs are not validated. rule accrueInterestInputValidation(env e, MorphoHarness.MarketParams marketParams) { - bool wasCreated = isCreated(libId(marketParams)); + bool wasCreated = isCreated(Util.libId(marketParams)); accrueInterest@withrevert(e, marketParams); assert !wasCreated => lastReverted; } diff --git a/certora/specs/StayHealthy.spec b/certora/specs/StayHealthy.spec index c92ea00e8..78ace84d3 100644 --- a/certora/specs/StayHealthy.spec +++ b/certora/specs/StayHealthy.spec @@ -10,7 +10,7 @@ filtered { } { MorphoHarness.MarketParams marketParams; - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); address user; // Assume that the position is healthy before the interaction. @@ -34,7 +34,7 @@ filtered { // - the market of the liquidation is the market of the user, see the *DifferentMarkets rule, // - there is still some borrow on the market after liquidation, see the *LastBorrow rule. rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); address user; // Assume the invariant initially. @@ -67,7 +67,7 @@ rule stayHealthyLiquidate(env e, MorphoHarness.MarketParams marketParams, addres } rule stayHealthyLiquidateDifferentMarkets(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); address user; MorphoHarness.MarketParams liquidationMarketParams; @@ -93,7 +93,7 @@ rule stayHealthyLiquidateDifferentMarkets(env e, MorphoHarness.MarketParams mark } rule stayHealthyLiquidateLastBorrow(env e, MorphoHarness.MarketParams marketParams, address borrower, uint256 seizedAssets, bytes data) { - MorphoHarness.Id id = libId(marketParams); + MorphoHarness.Id id = Util.libId(marketParams); address user; // Assume the invariant initially. From 9abdc1965625c0ef2d9afe056b8cdafe7b369bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Gonz=C3=A1lez?= Date: Mon, 28 Oct 2024 11:44:44 +0100 Subject: [PATCH 107/110] fix: naming --- certora/harness/MorphoHarness.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/certora/harness/MorphoHarness.sol b/certora/harness/MorphoHarness.sol index bcaedb912..b5bfc9c19 100644 --- a/certora/harness/MorphoHarness.sol +++ b/certora/harness/MorphoHarness.sol @@ -18,8 +18,8 @@ contract MorphoHarness is Morpho { return market[id]; } - function position_(Id id, address borrower) external view returns (Position memory) { - return position[id][borrower]; + function position_(Id id, address user) external view returns (Position memory) { + return position[id][user]; } function totalSupplyAssets(Id id) external view returns (uint256) { From 662d48c6cc31913ceac28b231cf07354402263f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Gonz=C3=A1lez?= Date: Mon, 28 Oct 2024 15:49:43 +0100 Subject: [PATCH 108/110] fix: naming suggestion --- certora/harness/MorphoHarness.sol | 2 +- certora/specs/ConsistentState.spec | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/certora/harness/MorphoHarness.sol b/certora/harness/MorphoHarness.sol index b5bfc9c19..ce62eb35b 100644 --- a/certora/harness/MorphoHarness.sol +++ b/certora/harness/MorphoHarness.sol @@ -10,7 +10,7 @@ contract MorphoHarness is Morpho { constructor(address newOwner) Morpho(newOwner) {} - function toMarketParams(Id id) external view returns (MarketParams memory) { + function idToMarketParams_(Id id) external view returns (MarketParams memory) { return idToMarketParams[id]; } diff --git a/certora/specs/ConsistentState.spec b/certora/specs/ConsistentState.spec index 730219b3e..2d8dc466a 100644 --- a/certora/specs/ConsistentState.spec +++ b/certora/specs/ConsistentState.spec @@ -17,7 +17,7 @@ methods { function isIrmEnabled(address) external returns bool envfree; function isLltvEnabled(uint256) external returns bool envfree; function isAuthorized(address, address) external returns bool envfree; - function toMarketParams(MorphoHarness.Id) external returns MorphoHarness.MarketParams envfree; + function idToMarketParams_(MorphoHarness.Id) external returns MorphoHarness.MarketParams envfree; function Util.maxFee() external returns uint256 envfree; function Util.wad() external returns uint256 envfree; @@ -59,15 +59,15 @@ hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].borrowShares ui hook Sstore position[KEY MorphoHarness.Id id][KEY address owner].collateral uint128 newAmount (uint128 oldAmount) { sumCollateral[id] = sumCollateral[id] - oldAmount + newAmount; - idleAmount[toMarketParams(id).collateralToken] = idleAmount[toMarketParams(id).collateralToken] - oldAmount + newAmount; + idleAmount[idToMarketParams_(id).collateralToken] = idleAmount[idToMarketParams_(id).collateralToken] - oldAmount + newAmount; } hook Sstore market[KEY MorphoHarness.Id id].totalSupplyAssets uint128 newAmount (uint128 oldAmount) { - idleAmount[toMarketParams(id).loanToken] = idleAmount[toMarketParams(id).loanToken] - oldAmount + newAmount; + idleAmount[idToMarketParams_(id).loanToken] = idleAmount[idToMarketParams_(id).loanToken] - oldAmount + newAmount; } hook Sstore market[KEY MorphoHarness.Id id].totalBorrowAssets uint128 newAmount (uint128 oldAmount) { - idleAmount[toMarketParams(id).loanToken] = idleAmount[toMarketParams(id).loanToken] + oldAmount - newAmount; + idleAmount[idToMarketParams_(id).loanToken] = idleAmount[idToMarketParams_(id).loanToken] + oldAmount - newAmount; } function summarySafeTransferFrom(address token, address from, address to, uint256 amount) { @@ -104,13 +104,13 @@ invariant borrowLessThanSupply(MorphoHarness.Id id) // Check correctness of applying idToMarketParams() to an identifier. invariant hashOfMarketParamsOf(MorphoHarness.Id id) isCreated(id) => - Util.libId(toMarketParams(id)) == id; + Util.libId(idToMarketParams_(id)) == id; // Check correctness of applying id() to a market params. // This invariant is useful in the following rule, to link an id back to a market. invariant marketParamsOfHashOf(MorphoHarness.MarketParams marketParams) isCreated(Util.libId(marketParams)) => - toMarketParams(Util.libId(marketParams)) == marketParams; + idToMarketParams_(Util.libId(marketParams)) == marketParams; // Check that the idle amount on the singleton is greater to the sum amount, that is the sum over all the markets of the total supply plus the total collateral minus the total borrow. invariant idleAmountLessThanBalance(address token) From 871ad335a111e88f5acf13aaf928a75d0b410c27 Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 4 Nov 2024 00:27:41 +0100 Subject: [PATCH 109/110] docs: fix little inaccuracy in domain separator docs --- src/interfaces/IMorpho.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/interfaces/IMorpho.sol b/src/interfaces/IMorpho.sol index 87916224e..69c89aa00 100644 --- a/src/interfaces/IMorpho.sol +++ b/src/interfaces/IMorpho.sol @@ -50,8 +50,8 @@ struct Signature { /// @dev Consider using the IMorpho interface instead of this one. interface IMorphoBase { /// @notice The EIP-712 domain separator. - /// @dev Warning: Every EIP-712 signed message based on this domain separator can be reused on another chain sharing - /// the same chain id because the domain separator would be the same. + /// @dev Warning: Every EIP-712 signed message based on this domain separator can be reused on forks and chains + /// sharing the same chain id because the domain separator would be the same. function DOMAIN_SEPARATOR() external view returns (bytes32); /// @notice The owner of the contract. From fb814d4c8ce1a6fb4277541281419e415eb2237e Mon Sep 17 00:00:00 2001 From: MathisGD Date: Tue, 5 Nov 2024 11:31:23 +0100 Subject: [PATCH 110/110] docs: minor improvement --- src/interfaces/IMorpho.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/interfaces/IMorpho.sol b/src/interfaces/IMorpho.sol index 69c89aa00..4684e778c 100644 --- a/src/interfaces/IMorpho.sol +++ b/src/interfaces/IMorpho.sol @@ -50,8 +50,8 @@ struct Signature { /// @dev Consider using the IMorpho interface instead of this one. interface IMorphoBase { /// @notice The EIP-712 domain separator. - /// @dev Warning: Every EIP-712 signed message based on this domain separator can be reused on forks and chains - /// sharing the same chain id because the domain separator would be the same. + /// @dev Warning: Every EIP-712 signed message based on this domain separator can be reused on chains sharing the + /// same chain id and on forks because the domain separator would be the same. function DOMAIN_SEPARATOR() external view returns (bytes32); /// @notice The owner of the contract.

Mv+8f(e8Y8UGX00mA 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 cK}jYkP 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%0ARluNNNJ=jPCcWgUWMYqd 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 Date: Tue, 2 Apr 2024 17:34:38 +0200 Subject: [PATCH 004/110] feat: add Halmos test --- .github/workflows/halmos.yml | 26 +++++++++++ .gitmodules | 3 ++ foundry.toml | 2 +- lib/halmos-cheatcodes | 1 + test/forge/HalmosTest.sol | 84 ++++++++++++++++++++++++++++++++++++ 5 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/halmos.yml create mode 160000 lib/halmos-cheatcodes create mode 100644 test/forge/HalmosTest.sol diff --git a/.github/workflows/halmos.yml b/.github/workflows/halmos.yml new file mode 100644 index 000000000..0d7e10b96 --- /dev/null +++ b/.github/workflows/halmos.yml @@ -0,0 +1,26 @@ +name: Halmos + +on: + push: + branches: + - main + pull_request: + workflow_dispatch: + +jobs: + verify: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install python + uses: actions/setup-python@v4 + + - name: Install halmos + run: pip install halmos + + - name: Run Halmos + run: halmos diff --git a/.gitmodules b/.gitmodules index 888d42dcd..455fbae41 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/forge-std"] path = lib/forge-std url = https://github.com/foundry-rs/forge-std +[submodule "lib/halmos-cheatcodes"] + path = lib/halmos-cheatcodes + url = git@github.com:a16z/halmos-cheatcodes.git diff --git a/foundry.toml b/foundry.toml index 4b0da7556..cd36425af 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,7 +1,7 @@ [profile.default] names = true sizes = true -via-ir = true +via-ir = false optimizer_runs = 999999 # Etherscan does not support verifying contracts with more optimization runs. [profile.default.invariant] diff --git a/lib/halmos-cheatcodes b/lib/halmos-cheatcodes new file mode 160000 index 000000000..c0d865508 --- /dev/null +++ b/lib/halmos-cheatcodes @@ -0,0 +1 @@ +Subproject commit c0d865508c0fee0a11b97732c5e90f9cad6b65a5 diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol new file mode 100644 index 000000000..7249b69a7 --- /dev/null +++ b/test/forge/HalmosTest.sol @@ -0,0 +1,84 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.8.0; + +import "../../lib/forge-std/src/Test.sol"; +import {SymTest} from "../../lib/halmos-cheatcodes/src/SymTest.sol"; + +import {IMorpho} from "../../src/interfaces/IMorpho.sol"; +import {IrmMock} from "../../src/mocks/IrmMock.sol"; +import {ERC20Mock} from "../../src/mocks/ERC20Mock.sol"; +import {OracleMock} from "../../src/mocks/OracleMock.sol"; + +import "../../src/Morpho.sol"; +import "../../src/libraries/ConstantsLib.sol"; +import {MorphoLib} from "../../src/libraries/periphery/MorphoLib.sol"; + +contract HalmosTest is SymTest, Test { + using MorphoLib for IMorpho; + using MarketParamsLib for MarketParams; + + uint256 internal constant BLOCK_TIME = 1; + uint256 internal constant DEFAULT_TEST_LLTV = 0.8 ether; + + address internal OWNER; + address internal FEE_RECIPIENT; + + IMorpho internal morpho; + ERC20Mock internal loanToken; + ERC20Mock internal collateralToken; + OracleMock internal oracle; + IrmMock internal irm; + + MarketParams internal marketParams; + Id internal id; + + function setUp() public virtual { + OWNER = address(0x10); + FEE_RECIPIENT = address(0x11); + + morpho = IMorpho(address(new Morpho(OWNER))); + + loanToken = new ERC20Mock(); + collateralToken = new ERC20Mock(); + oracle = new OracleMock(); + oracle.setPrice(ORACLE_PRICE_SCALE); + irm = new IrmMock(); + + vm.startPrank(OWNER); + morpho.enableIrm(address(0)); + morpho.enableIrm(address(irm)); + morpho.enableLltv(0); + morpho.setFeeRecipient(FEE_RECIPIENT); + vm.stopPrank(); + + _setLltv(DEFAULT_TEST_LLTV); + } + + function _setLltv(uint256 lltv) internal { + marketParams = MarketParams(address(loanToken), address(collateralToken), address(oracle), address(irm), lltv); + id = marketParams.id(); + + vm.startPrank(OWNER); + if (!morpho.isLltvEnabled(lltv)) morpho.enableLltv(lltv); + if (morpho.lastUpdate(id) == 0) morpho.createMarket(marketParams); + vm.stopPrank(); + + _forward(1); + } + + /// @dev Rolls & warps the given number of blocks forward the blockchain. + function _forward(uint256 blocks) internal { + vm.roll(block.number + blocks); + vm.warp(block.timestamp + blocks * BLOCK_TIME); + } + + function check_fee(bytes4 selector, address caller) public { + bytes memory args = svm.createBytes(1024, "data"); + + vm.prank(caller); + (bool success,) = address(morpho).call(abi.encodePacked(selector, args)); + vm.assume(success); + + assert(morpho.fee(id) < MAX_FEE); + } +} From 7aebf2578328ef02a006640580cfbe85816cb40a Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 2 Apr 2024 17:36:51 +0200 Subject: [PATCH 005/110] fix: add foundry to CI for Halmos --- .github/workflows/halmos.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/halmos.yml b/.github/workflows/halmos.yml index 0d7e10b96..32f3911dd 100644 --- a/.github/workflows/halmos.yml +++ b/.github/workflows/halmos.yml @@ -19,6 +19,9 @@ jobs: - name: Install python uses: actions/setup-python@v4 + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + - name: Install halmos run: pip install halmos From 6667451f0e869cf1177dbfe40e473fbf88541a16 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 2 Apr 2024 17:45:02 +0200 Subject: [PATCH 006/110] chore: no timeout on counterexample --- test/forge/HalmosTest.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 7249b69a7..4a50fc2d8 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -13,6 +13,7 @@ import "../../src/Morpho.sol"; import "../../src/libraries/ConstantsLib.sol"; import {MorphoLib} from "../../src/libraries/periphery/MorphoLib.sol"; +/// @custom:halmos --solver-timeout-assertion 0 contract HalmosTest is SymTest, Test { using MorphoLib for IMorpho; using MarketParamsLib for MarketParams; From bb2f9afa891f1c8dbf587877fd43743b52ff2287 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 2 Apr 2024 17:49:13 +0200 Subject: [PATCH 007/110] chore: remove halmos-cheatcode --- .gitmodules | 3 --- lib/halmos-cheatcodes | 1 - 2 files changed, 4 deletions(-) delete mode 160000 lib/halmos-cheatcodes diff --git a/.gitmodules b/.gitmodules index 455fbae41..888d42dcd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ [submodule "lib/forge-std"] path = lib/forge-std url = https://github.com/foundry-rs/forge-std -[submodule "lib/halmos-cheatcodes"] - path = lib/halmos-cheatcodes - url = git@github.com:a16z/halmos-cheatcodes.git diff --git a/lib/halmos-cheatcodes b/lib/halmos-cheatcodes deleted file mode 160000 index c0d865508..000000000 --- a/lib/halmos-cheatcodes +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c0d865508c0fee0a11b97732c5e90f9cad6b65a5 From b1445fabcc315dcaf09e2ca9cf23d46d047605d7 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 2 Apr 2024 17:50:48 +0200 Subject: [PATCH 008/110] chore: add back halmos-cheatcodes with https --- .gitmodules | 3 +++ lib/halmos-cheatcodes | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/halmos-cheatcodes diff --git a/.gitmodules b/.gitmodules index 888d42dcd..ba7c98e70 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/forge-std"] path = lib/forge-std url = https://github.com/foundry-rs/forge-std +[submodule "lib/halmos-cheatcodes"] + path = lib/halmos-cheatcodes + url = https://github.com/a16z/halmos-cheatcodes.git diff --git a/lib/halmos-cheatcodes b/lib/halmos-cheatcodes new file mode 160000 index 000000000..c0d865508 --- /dev/null +++ b/lib/halmos-cheatcodes @@ -0,0 +1 @@ +Subproject commit c0d865508c0fee0a11b97732c5e90f9cad6b65a5 From 787e15428a32cdc74e064e6ceb44eeb6295201e2 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 2 Apr 2024 17:52:14 +0200 Subject: [PATCH 009/110] fix: test fee --- test/forge/HalmosTest.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 4a50fc2d8..32923e884 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -80,6 +80,6 @@ contract HalmosTest is SymTest, Test { (bool success,) = address(morpho).call(abi.encodePacked(selector, args)); vm.assume(success); - assert(morpho.fee(id) < MAX_FEE); + assert(morpho.fee(id) <= MAX_FEE); } } From 725c9ee7646df972d630a0aa2d32c0f390fe2c4f Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 3 Apr 2024 11:36:16 +0200 Subject: [PATCH 010/110] fix: use distinct args for dynamic types --- test/forge/HalmosTest.sol | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 32923e884..8d7a17b11 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -13,7 +13,7 @@ import "../../src/Morpho.sol"; import "../../src/libraries/ConstantsLib.sol"; import {MorphoLib} from "../../src/libraries/periphery/MorphoLib.sol"; -/// @custom:halmos --solver-timeout-assertion 0 +/// @custom:halmos --symbolic-storage --solver-timeout-assertion 0 contract HalmosTest is SymTest, Test { using MorphoLib for IMorpho; using MarketParamsLib for MarketParams; @@ -74,7 +74,30 @@ contract HalmosTest is SymTest, Test { } function check_fee(bytes4 selector, address caller) public { - bytes memory args = svm.createBytes(1024, "data"); + vm.assume(selector != morpho.extSloads.selector); + + bytes memory emptyData = hex""; + uint256 assets = svm.createUint256("assets"); + uint256 shares = svm.createUint256("shares"); + address onBehalf = svm.createAddress("onBehalf"); + + bytes memory args; + + if (selector == morpho.supply.selector) { + args = abi.encode(marketParams, assets, shares, onBehalf, emptyData); + } else if (selector == morpho.repay.selector) { + args = abi.encode(marketParams, assets, shares, onBehalf, emptyData); + } else if (selector == morpho.supplyCollateral.selector) { + args = abi.encode(marketParams, assets, onBehalf, emptyData); + } else if (selector == morpho.liquidate.selector) { + address borrower = svm.createAddress("borrower"); + args = abi.encode(marketParams, borrower, assets, shares, emptyData); + } else if (selector == morpho.flashLoan.selector) { + address token = svm.createAddress("token"); + args = abi.encode(marketParams, token, assets, emptyData); + } else { + args = svm.createBytes(1024, "data"); + } vm.prank(caller); (bool success,) = address(morpho).call(abi.encodePacked(selector, args)); From 4be7d09fc1d0522b91c305c0bfa35043ddff43f0 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 3 Apr 2024 14:46:53 +0200 Subject: [PATCH 011/110] chore: fix exact math timeout --- .github/workflows/certora.yml | 2 +- certora/confs/ExactMath.conf | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index 47e091715..efd67bd0d 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -37,7 +37,7 @@ jobs: uses: actions/setup-python@v4 - name: Install certora - run: pip install certora-cli + run: pip install certora-cli-beta - name: Install solc run: | diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index c7fd84c69..344806e62 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -7,9 +7,11 @@ "rule_sanity": "basic", "prover_args": [ "-depth 3", - "-smt_hashingScheme plaininjectivity", "-mediumTimeout 30", "-timeout 3600", + "-smt_nonLinearArithmetic true", + "-adaptiveSolverConfig false", + "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], "server": "production", "msg": "Morpho Blue Exact Math" From 7a71b6295348301a4f35cc23c8fe6701b7b65f7d Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 4 Apr 2024 16:54:30 +0200 Subject: [PATCH 012/110] chore: simpler setup --- test/forge/HalmosTest.sol | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 8d7a17b11..95aee72b5 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -83,6 +83,7 @@ contract HalmosTest is SymTest, Test { bytes memory args; + // Todo: make it possible to call any market if (selector == morpho.supply.selector) { args = abi.encode(marketParams, assets, shares, onBehalf, emptyData); } else if (selector == morpho.repay.selector) { @@ -93,7 +94,8 @@ contract HalmosTest is SymTest, Test { address borrower = svm.createAddress("borrower"); args = abi.encode(marketParams, borrower, assets, shares, emptyData); } else if (selector == morpho.flashLoan.selector) { - address token = svm.createAddress("token"); + // Todo: make it more general + address token = address(loanToken); args = abi.encode(marketParams, token, assets, emptyData); } else { args = svm.createBytes(1024, "data"); From 848940714b4b7abb39674df0a8216b52c5c1ceb4 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Thu, 4 Apr 2024 17:19:46 +0200 Subject: [PATCH 013/110] feat: pass all market params --- test/forge/HalmosTest.sol | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 95aee72b5..df0bda393 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -75,21 +75,30 @@ contract HalmosTest is SymTest, Test { function check_fee(bytes4 selector, address caller) public { vm.assume(selector != morpho.extSloads.selector); + vm.assume(selector != morpho.createMarket.selector); bytes memory emptyData = hex""; + uint256 amount = svm.createUint256("amount"); uint256 assets = svm.createUint256("assets"); uint256 shares = svm.createUint256("shares"); address onBehalf = svm.createAddress("onBehalf"); + address receiver = svm.createAddress("receiver"); bytes memory args; // Todo: make it possible to call any market if (selector == morpho.supply.selector) { args = abi.encode(marketParams, assets, shares, onBehalf, emptyData); + } else if (selector == morpho.withdraw.selector) { + args = abi.encode(marketParams, assets, shares, onBehalf, receiver); + } else if (selector == morpho.borrow.selector) { + args = abi.encode(marketParams, assets, shares, onBehalf, receiver); } else if (selector == morpho.repay.selector) { args = abi.encode(marketParams, assets, shares, onBehalf, emptyData); } else if (selector == morpho.supplyCollateral.selector) { args = abi.encode(marketParams, assets, onBehalf, emptyData); + } else if (selector == morpho.withdrawCollateral.selector) { + args = abi.encode(marketParams, assets, onBehalf, receiver); } else if (selector == morpho.liquidate.selector) { address borrower = svm.createAddress("borrower"); args = abi.encode(marketParams, borrower, assets, shares, emptyData); @@ -97,6 +106,10 @@ contract HalmosTest is SymTest, Test { // Todo: make it more general address token = address(loanToken); args = abi.encode(marketParams, token, assets, emptyData); + } else if (selector == morpho.accrueInterest.selector) { + args = abi.encode(marketParams); + } else if (selector == morpho.setFee.selector) { + args = abi.encode(marketParams, amount); } else { args = svm.createBytes(1024, "data"); } From 49a1ca08e142228b5fbfc5c6859dbcd31144caa8 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 5 Apr 2024 12:04:36 +0200 Subject: [PATCH 014/110] feat: generalize token for flashLoan --- test/forge/HalmosTest.sol | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index df0bda393..861619891 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -78,7 +78,6 @@ contract HalmosTest is SymTest, Test { vm.assume(selector != morpho.createMarket.selector); bytes memory emptyData = hex""; - uint256 amount = svm.createUint256("amount"); uint256 assets = svm.createUint256("assets"); uint256 shares = svm.createUint256("shares"); address onBehalf = svm.createAddress("onBehalf"); @@ -86,7 +85,6 @@ contract HalmosTest is SymTest, Test { bytes memory args; - // Todo: make it possible to call any market if (selector == morpho.supply.selector) { args = abi.encode(marketParams, assets, shares, onBehalf, emptyData); } else if (selector == morpho.withdraw.selector) { @@ -103,8 +101,16 @@ contract HalmosTest is SymTest, Test { address borrower = svm.createAddress("borrower"); args = abi.encode(marketParams, borrower, assets, shares, emptyData); } else if (selector == morpho.flashLoan.selector) { - // Todo: make it more general - address token = address(loanToken); + uint256 rand = svm.createUint256("rand"); + address token; + if (rand == 0) { + token = address(loanToken); + } else if (rand == 1) { + token = address(collateralToken); + } else { + ERC20Mock otherToken = new ERC20Mock(); + token = address(otherToken); + } args = abi.encode(marketParams, token, assets, emptyData); } else if (selector == morpho.accrueInterest.selector) { args = abi.encode(marketParams); From b6f96c797b455080b942ff998beb3c5c693f0abd Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 5 Apr 2024 14:26:12 +0200 Subject: [PATCH 015/110] fix: svm create newFee --- test/forge/HalmosTest.sol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 861619891..11f3df5d2 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -115,7 +115,8 @@ contract HalmosTest is SymTest, Test { } else if (selector == morpho.accrueInterest.selector) { args = abi.encode(marketParams); } else if (selector == morpho.setFee.selector) { - args = abi.encode(marketParams, amount); + uint256 newFee = svm.createUint256("newFee"); + args = abi.encode(marketParams, newFee); } else { args = svm.createBytes(1024, "data"); } From cff19d99fd978a15b16baf580ea3947d4e4ab401 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 10:58:06 +0200 Subject: [PATCH 016/110] feat: try new configuration for exact math --- certora/confs/ExactMath.conf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 344806e62..ba5864d47 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -1,4 +1,5 @@ { + "fe_version": "latest", "files": [ "certora/harness/MorphoHarness.sol", ], @@ -6,12 +7,12 @@ "verify": "MorphoHarness:certora/specs/ExactMath.spec", "rule_sanity": "basic", "prover_args": [ - "-depth 3", - "-mediumTimeout 30", + "-depth 5", + "-mediumTimeout 5", "-timeout 3600", "-smt_nonLinearArithmetic true", "-adaptiveSolverConfig false", - "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", + "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]" ], "server": "production", "msg": "Morpho Blue Exact Math" From 8baee1bf8e440798e991578dae25b6d8ee905183 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 11:25:45 +0200 Subject: [PATCH 017/110] refactor: tweak exact math conf --- certora/confs/ExactMath.conf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index ba5864d47..648bfbf88 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -10,9 +10,8 @@ "-depth 5", "-mediumTimeout 5", "-timeout 3600", - "-smt_nonLinearArithmetic true", "-adaptiveSolverConfig false", - "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]" + "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], "server": "production", "msg": "Morpho Blue Exact Math" From a7b1afd9145c9ca3a4975cdcb762519d744c7eae Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 11:28:07 +0200 Subject: [PATCH 018/110] chore: get back to certora-cli --- .github/workflows/certora.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index efd67bd0d..47e091715 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -37,7 +37,7 @@ jobs: uses: actions/setup-python@v4 - name: Install certora - run: pip install certora-cli-beta + run: pip install certora-cli - name: Install solc run: | From 7f862c2bbdbc22a1f994966cad96c63f1eb029d4 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 11:42:38 +0200 Subject: [PATCH 019/110] refactor: specify non linear arithmetic --- certora/confs/ExactMath.conf | 1 + foundry.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 648bfbf88..e0c01f166 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -10,6 +10,7 @@ "-depth 5", "-mediumTimeout 5", "-timeout 3600", + "-smt_nonLinearArithmetic true", "-adaptiveSolverConfig false", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], diff --git a/foundry.toml b/foundry.toml index 4b0da7556..9b7733f1b 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,4 +1,5 @@ [profile.default] +libs = ["lib"] names = true sizes = true via-ir = true From b305f5171836478af4202ca2c7d5b9ea0118245d Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 11:49:01 +0200 Subject: [PATCH 020/110] refactor: remove useless settings --- certora/confs/ExactMath.conf | 2 -- 1 file changed, 2 deletions(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index e0c01f166..474f3af9c 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -1,5 +1,4 @@ { - "fe_version": "latest", "files": [ "certora/harness/MorphoHarness.sol", ], @@ -10,7 +9,6 @@ "-depth 5", "-mediumTimeout 5", "-timeout 3600", - "-smt_nonLinearArithmetic true", "-adaptiveSolverConfig false", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], From 88dccc2fe38aa9b6f3dcf74745beda8872e9ecbf Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 12:01:52 +0200 Subject: [PATCH 021/110] chore: certora-cli-beta --- .github/workflows/certora.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index 47e091715..efd67bd0d 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -37,7 +37,7 @@ jobs: uses: actions/setup-python@v4 - name: Install certora - run: pip install certora-cli + run: pip install certora-cli-beta - name: Install solc run: | From 8ed51ab202be11722f1de7b06c993bca2f6783b2 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 12:12:22 +0200 Subject: [PATCH 022/110] chore: add back non linear arithmetic --- certora/confs/ExactMath.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 474f3af9c..55edc50e7 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -10,6 +10,7 @@ "-mediumTimeout 5", "-timeout 3600", "-adaptiveSolverConfig false", + "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], "server": "production", From bacb09f3872d73104fceb744db4c146d531302aa Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 12:19:52 +0200 Subject: [PATCH 023/110] Revert "chore: add back non linear arithmetic" This reverts commit 8ed51ab202be11722f1de7b06c993bca2f6783b2. --- certora/confs/ExactMath.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 55edc50e7..474f3af9c 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -10,7 +10,6 @@ "-mediumTimeout 5", "-timeout 3600", "-adaptiveSolverConfig false", - "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], "server": "production", From fc0de85e54dcaa4fd89e0733ddb3da86fd365c4f Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 13:16:44 +0200 Subject: [PATCH 024/110] chore: temporary version --- .github/workflows/certora.yml | 2 +- certora/confs/ExactMath.conf | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index efd67bd0d..47e091715 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -37,7 +37,7 @@ jobs: uses: actions/setup-python@v4 - name: Install certora - run: pip install certora-cli-beta + run: pip install certora-cli - name: Install solc run: | diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 474f3af9c..648bfbf88 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -1,4 +1,5 @@ { + "fe_version": "latest", "files": [ "certora/harness/MorphoHarness.sol", ], From 38437fe619bcb994db8f863f55878e39a0a7aeac Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 14:29:31 +0200 Subject: [PATCH 025/110] chore: add back non linear arithmetic --- certora/confs/ExactMath.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 648bfbf88..7059962f3 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -11,6 +11,7 @@ "-mediumTimeout 5", "-timeout 3600", "-adaptiveSolverConfig false", + "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], "server": "production", From 3e546e5eeec615079a22ba351a07e43a4ba579b3 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 15:27:30 +0200 Subject: [PATCH 026/110] feat: borrow less than supply and last updated invariant --- test/forge/HalmosTest.sol | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 11f3df5d2..ca8941710 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -73,10 +73,7 @@ contract HalmosTest is SymTest, Test { vm.warp(block.timestamp + blocks * BLOCK_TIME); } - function check_fee(bytes4 selector, address caller) public { - vm.assume(selector != morpho.extSloads.selector); - vm.assume(selector != morpho.createMarket.selector); - + function _callMorpho(bytes4 selector, address caller) internal { bytes memory emptyData = hex""; uint256 assets = svm.createUint256("assets"); uint256 shares = svm.createUint256("shares"); @@ -124,7 +121,34 @@ contract HalmosTest is SymTest, Test { vm.prank(caller); (bool success,) = address(morpho).call(abi.encodePacked(selector, args)); vm.assume(success); + } + + function check_feeInRange(bytes4 selector, address caller) public { + vm.assume(selector != morpho.extSloads.selector); + vm.assume(selector != morpho.createMarket.selector); + + _callMorpho(selector, caller); assert(morpho.fee(id) <= MAX_FEE); } + + function check_borrowLessThanSupply(bytes4 selector, address caller) public { + vm.assume(selector != morpho.extSloads.selector); + vm.assume(selector != morpho.createMarket.selector); + + _callMorpho(selector, caller); + + assert(morpho.totalBorrowAssets(id) <= morpho.totalSupplyAssets(id)); + } + + function check_lastUpdatedInvariant(bytes4 selector, address caller) public { + vm.assume(selector != morpho.extSloads.selector); + vm.assume(selector != morpho.createMarket.selector); + + vm.assume(morpho.lastUpdated(id) != 0); + + _callMorpho(selector, caller); + + assert(morpho.lastUpdated(id) != 0); + } } From 2b69597cda45fc2a271820f585e953cf75415aa5 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Wed, 10 Apr 2024 15:32:09 +0200 Subject: [PATCH 027/110] fix: lastUpdate name --- test/forge/HalmosTest.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index ca8941710..dd16b0cad 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -145,10 +145,10 @@ contract HalmosTest is SymTest, Test { vm.assume(selector != morpho.extSloads.selector); vm.assume(selector != morpho.createMarket.selector); - vm.assume(morpho.lastUpdated(id) != 0); + vm.assume(morpho.lastUpdate(id) != 0); _callMorpho(selector, caller); - assert(morpho.lastUpdated(id) != 0); + assert(morpho.lastUpdate(id) != 0); } } From ce02888f5f0d4de8e301b2b6250db14bcf48f4b0 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 12 Apr 2024 15:30:28 +0200 Subject: [PATCH 028/110] chore: remove non linear arithmetic true --- certora/confs/ExactMath.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 7059962f3..648bfbf88 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -11,7 +11,6 @@ "-mediumTimeout 5", "-timeout 3600", "-adaptiveSolverConfig false", - "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], "server": "production", From 58e6a4b306cecf5fa117358efa8534dd83e659f3 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 15 Apr 2024 09:38:58 +0200 Subject: [PATCH 029/110] refactor: add nonlinear arith true --- certora/confs/ExactMath.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 648bfbf88..55edc50e7 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -1,5 +1,4 @@ { - "fe_version": "latest", "files": [ "certora/harness/MorphoHarness.sol", ], @@ -11,6 +10,7 @@ "-mediumTimeout 5", "-timeout 3600", "-adaptiveSolverConfig false", + "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], "server": "production", From b94a0c4a5e4eaf44547f4fb6cce36555f0d29f05 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 15 Apr 2024 11:06:40 +0200 Subject: [PATCH 030/110] chore: add back fe_version --- certora/confs/ExactMath.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 55edc50e7..7059962f3 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -1,4 +1,5 @@ { + "fe_version": "latest", "files": [ "certora/harness/MorphoHarness.sol", ], From 184475e402942eee297097a5e9774dfe1f84b955 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 15 Apr 2024 12:30:18 +0200 Subject: [PATCH 031/110] chore: cache none --- certora/confs/ExactMath.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 7059962f3..a6a162f49 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -1,5 +1,4 @@ { - "fe_version": "latest", "files": [ "certora/harness/MorphoHarness.sol", ], @@ -14,6 +13,7 @@ "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], + "cache": "none", "server": "production", "msg": "Morpho Blue Exact Math" } From 6d76ef89a68dd38da45120556f5891b8f4205aab Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 15 Apr 2024 12:40:08 +0200 Subject: [PATCH 032/110] chore: remove cache --- certora/confs/ExactMath.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index a6a162f49..55edc50e7 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -13,7 +13,6 @@ "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], - "cache": "none", "server": "production", "msg": "Morpho Blue Exact Math" } From db61a2b6ae0faddc096c7deb964c4e6050572c62 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 15 Apr 2024 14:51:30 +0200 Subject: [PATCH 033/110] Revert "chore: remove cache" This reverts commit 6d76ef89a68dd38da45120556f5891b8f4205aab. --- certora/confs/ExactMath.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/certora/confs/ExactMath.conf b/certora/confs/ExactMath.conf index 55edc50e7..a6a162f49 100644 --- a/certora/confs/ExactMath.conf +++ b/certora/confs/ExactMath.conf @@ -13,6 +13,7 @@ "-smt_nonLinearArithmetic true", "-solvers [z3:def{randomSeed=1},z3:def{randomSeed=2},z3:def{randomSeed=3},z3:def{randomSeed=4},z3:def{randomSeed=5},z3:def{randomSeed=6},z3:def{randomSeed=7},z3:lia2]", ], + "cache": "none", "server": "production", "msg": "Morpho Blue Exact Math" } From 72d70b2b3f5cc9820093842af6e5013f89cb0fae Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 16 Apr 2024 17:16:13 +0200 Subject: [PATCH 034/110] chore: specify python-version --- .github/workflows/certora.yml | 2 ++ .github/workflows/halmos.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index 47e091715..81d64a0c4 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -35,6 +35,8 @@ jobs: - name: Install python uses: actions/setup-python@v4 + with: + python-version: ">=3.9" - name: Install certora run: pip install certora-cli diff --git a/.github/workflows/halmos.yml b/.github/workflows/halmos.yml index 32f3911dd..f32231fea 100644 --- a/.github/workflows/halmos.yml +++ b/.github/workflows/halmos.yml @@ -18,6 +18,8 @@ jobs: - name: Install python uses: actions/setup-python@v4 + with: + python-version: ">=3.9" - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 From ff1427a1614daa4278f76dae98ff0750fc513b89 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 16 Apr 2024 17:20:21 +0200 Subject: [PATCH 035/110] chore: bump action setup python --- .github/workflows/certora.yml | 2 +- .github/workflows/halmos.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index 81d64a0c4..1ed55f2ec 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -34,7 +34,7 @@ jobs: submodules: recursive - name: Install python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ">=3.9" diff --git a/.github/workflows/halmos.yml b/.github/workflows/halmos.yml index f32231fea..ef6b6fe28 100644 --- a/.github/workflows/halmos.yml +++ b/.github/workflows/halmos.yml @@ -17,7 +17,7 @@ jobs: submodules: recursive - name: Install python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ">=3.9" From fd6adac927e6ad84695d0b47d8799f051526d42c Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 16 Apr 2024 17:24:42 +0200 Subject: [PATCH 036/110] chore: add setuptools --- .github/workflows/certora.yml | 2 +- .github/workflows/halmos.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml index 1ed55f2ec..6203f6f31 100644 --- a/.github/workflows/certora.yml +++ b/.github/workflows/certora.yml @@ -29,7 +29,7 @@ jobs: - Transfer steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive diff --git a/.github/workflows/halmos.yml b/.github/workflows/halmos.yml index ef6b6fe28..5eeff430e 100644 --- a/.github/workflows/halmos.yml +++ b/.github/workflows/halmos.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive @@ -25,7 +25,7 @@ jobs: uses: foundry-rs/foundry-toolchain@v1 - name: Install halmos - run: pip install halmos + run: pip install halmos setuptools - name: Run Halmos run: halmos From a71df2da9dc56b5ca8d4c75876670897013e66c5 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Tue, 16 Apr 2024 17:39:16 +0200 Subject: [PATCH 037/110] feat: symbolic LLTV --- test/forge/HalmosTest.sol | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index dd16b0cad..0a339aa50 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -19,7 +19,6 @@ contract HalmosTest is SymTest, Test { using MarketParamsLib for MarketParams; uint256 internal constant BLOCK_TIME = 1; - uint256 internal constant DEFAULT_TEST_LLTV = 0.8 ether; address internal OWNER; address internal FEE_RECIPIENT; @@ -52,28 +51,23 @@ contract HalmosTest is SymTest, Test { morpho.setFeeRecipient(FEE_RECIPIENT); vm.stopPrank(); - _setLltv(DEFAULT_TEST_LLTV); - } - - function _setLltv(uint256 lltv) internal { + uint256 lltv = svm.createUint256("lltv"); marketParams = MarketParams(address(loanToken), address(collateralToken), address(oracle), address(irm), lltv); id = marketParams.id(); vm.startPrank(OWNER); - if (!morpho.isLltvEnabled(lltv)) morpho.enableLltv(lltv); - if (morpho.lastUpdate(id) == 0) morpho.createMarket(marketParams); + morpho.enableLltv(lltv); + morpho.createMarket(marketParams); vm.stopPrank(); - _forward(1); - } - - /// @dev Rolls & warps the given number of blocks forward the blockchain. - function _forward(uint256 blocks) internal { - vm.roll(block.number + blocks); - vm.warp(block.timestamp + blocks * BLOCK_TIME); + vm.roll(block.number + 1); + vm.warp(block.timestamp + 1 * BLOCK_TIME); } function _callMorpho(bytes4 selector, address caller) internal { + vm.assume(selector != morpho.extSloads.selector); + vm.assume(selector != morpho.createMarket.selector); + bytes memory emptyData = hex""; uint256 assets = svm.createUint256("assets"); uint256 shares = svm.createUint256("shares"); @@ -124,27 +118,18 @@ contract HalmosTest is SymTest, Test { } function check_feeInRange(bytes4 selector, address caller) public { - vm.assume(selector != morpho.extSloads.selector); - vm.assume(selector != morpho.createMarket.selector); - _callMorpho(selector, caller); assert(morpho.fee(id) <= MAX_FEE); } function check_borrowLessThanSupply(bytes4 selector, address caller) public { - vm.assume(selector != morpho.extSloads.selector); - vm.assume(selector != morpho.createMarket.selector); - _callMorpho(selector, caller); assert(morpho.totalBorrowAssets(id) <= morpho.totalSupplyAssets(id)); } function check_lastUpdatedInvariant(bytes4 selector, address caller) public { - vm.assume(selector != morpho.extSloads.selector); - vm.assume(selector != morpho.createMarket.selector); - vm.assume(morpho.lastUpdate(id) != 0); _callMorpho(selector, caller); From 62fc02e0c04dbd20810a49bab3200836f6711b40 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 19 Apr 2024 09:37:35 +0200 Subject: [PATCH 038/110] chore: remove setuptools --- .github/workflows/halmos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/halmos.yml b/.github/workflows/halmos.yml index 5eeff430e..d631346a6 100644 --- a/.github/workflows/halmos.yml +++ b/.github/workflows/halmos.yml @@ -25,7 +25,7 @@ jobs: uses: foundry-rs/foundry-toolchain@v1 - name: Install halmos - run: pip install halmos setuptools + run: pip install halmos - name: Run Halmos run: halmos From 6ef5c7a5b32e6bbccfd45c018a56f32691826273 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 19 Apr 2024 13:00:20 +0200 Subject: [PATCH 039/110] feat: check lltv smaller than WAD --- test/forge/HalmosTest.sol | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 0a339aa50..8d44eec59 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -136,4 +136,12 @@ contract HalmosTest is SymTest, Test { assert(morpho.lastUpdate(id) != 0); } + + function check_lltvSmallerThanWad(bytes4 selector, address caller, uint256 lltv) public { + vm.assume(!morpho.isLltvEnabled(lltv) || lltv < 1e18); + + _callMorpho(selector, caller); + + assert(!morpho.isLltvEnabled(lltv) || lltv < 1e18); + } } From c29c3bc1ee1e137eef05aeb2237807a78cb136a7 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 19 Apr 2024 13:40:40 +0200 Subject: [PATCH 040/110] refactor: use test profile for Halmos --- .github/workflows/halmos.yml | 2 +- foundry.toml | 2 +- package.json | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/halmos.yml b/.github/workflows/halmos.yml index d631346a6..fe56f888a 100644 --- a/.github/workflows/halmos.yml +++ b/.github/workflows/halmos.yml @@ -28,4 +28,4 @@ jobs: run: pip install halmos - name: Run Halmos - run: halmos + run: FOUNDRY_PROFILE=test halmos diff --git a/foundry.toml b/foundry.toml index 900bf246f..9b7733f1b 100644 --- a/foundry.toml +++ b/foundry.toml @@ -2,7 +2,7 @@ libs = ["lib"] names = true sizes = true -via-ir = false +via-ir = true optimizer_runs = 999999 # Etherscan does not support verifying contracts with more optimization runs. [profile.default.invariant] diff --git a/package.json b/package.json index 1d942bfe8..bcc0e8d00 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "test:forge:invariant": "FOUNDRY_MATCH_CONTRACT=InvariantTest yarn test:forge", "test:forge:integration": "FOUNDRY_MATCH_CONTRACT=IntegrationTest yarn test:forge", "test:hardhat": "npx hardhat test", + "test:halmos": "FOUNDRY_PROFILE=test halmos", "lint": "yarn lint:forge && yarn lint:hardhat", "lint:forge": "forge fmt --check", "lint:hardhat": "prettier --check test/hardhat", From 5a41d5dc63b7e3ef165cea97d6998c330e247d50 Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Fri, 19 Apr 2024 15:22:05 +0200 Subject: [PATCH 041/110] docs: add description of invariants --- test/forge/HalmosTest.sol | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 8d44eec59..96f24ed35 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -55,6 +55,7 @@ contract HalmosTest is SymTest, Test { marketParams = MarketParams(address(loanToken), address(collateralToken), address(oracle), address(irm), lltv); id = marketParams.id(); + vm.assume(block.timestamp != 0); vm.startPrank(OWNER); morpho.enableLltv(lltv); morpho.createMarket(marketParams); @@ -64,6 +65,7 @@ contract HalmosTest is SymTest, Test { vm.warp(block.timestamp + 1 * BLOCK_TIME); } + // Call Morpho, assuming interacting with only the defined market for performance reasons. function _callMorpho(bytes4 selector, address caller) internal { vm.assume(selector != morpho.extSloads.selector); vm.assume(selector != morpho.createMarket.selector); @@ -117,26 +119,28 @@ contract HalmosTest is SymTest, Test { vm.assume(success); } + // Check that the fee is always smaller than the max fee. function check_feeInRange(bytes4 selector, address caller) public { _callMorpho(selector, caller); assert(morpho.fee(id) <= MAX_FEE); } + // Check that there is always less borrow than supply on the market. function check_borrowLessThanSupply(bytes4 selector, address caller) public { _callMorpho(selector, caller); assert(morpho.totalBorrowAssets(id) <= morpho.totalSupplyAssets(id)); } - function check_lastUpdatedInvariant(bytes4 selector, address caller) public { - vm.assume(morpho.lastUpdate(id) != 0); - + // Check that the market cannot be "destroyed". + function check_lastUpdatedNonZero(bytes4 selector, address caller) public { _callMorpho(selector, caller); assert(morpho.lastUpdate(id) != 0); } + // Check that enabled LLTVs are necessarily less than 1. function check_lltvSmallerThanWad(bytes4 selector, address caller, uint256 lltv) public { vm.assume(!morpho.isLltvEnabled(lltv) || lltv < 1e18); From 1221cce8fc1c8dacb43579ecfd1715d9c408fbbe Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 22 Apr 2024 12:26:16 +0200 Subject: [PATCH 042/110] test: halmost irm and ltv can't be disabled --- test/forge/HalmosTest.sol | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 96f24ed35..9d4962398 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -28,6 +28,7 @@ contract HalmosTest is SymTest, Test { ERC20Mock internal collateralToken; OracleMock internal oracle; IrmMock internal irm; + uint256 internal lltv; MarketParams internal marketParams; Id internal id; @@ -51,7 +52,7 @@ contract HalmosTest is SymTest, Test { morpho.setFeeRecipient(FEE_RECIPIENT); vm.stopPrank(); - uint256 lltv = svm.createUint256("lltv"); + lltv = svm.createUint256("lltv"); marketParams = MarketParams(address(loanToken), address(collateralToken), address(oracle), address(irm), lltv); id = marketParams.id(); @@ -141,11 +142,26 @@ contract HalmosTest is SymTest, Test { } // Check that enabled LLTVs are necessarily less than 1. - function check_lltvSmallerThanWad(bytes4 selector, address caller, uint256 lltv) public { - vm.assume(!morpho.isLltvEnabled(lltv) || lltv < 1e18); + function check_lltvSmallerThanWad(bytes4 selector, address caller, uint256 _lltv) public { + vm.assume(!morpho.isLltvEnabled(_lltv) || _lltv < 1e18); _callMorpho(selector, caller); - assert(!morpho.isLltvEnabled(lltv) || lltv < 1e18); + assert(!morpho.isLltvEnabled(_lltv) || _lltv < 1e18); + } + + // Check that LLTVs can't be disabled. + function check_lltvCannotBeDisabled(bytes4 selector, address caller) public { + _callMorpho(selector, caller); + + assert(morpho.isLltvEnabled(lltv)); + } + + // Check that IRMs can't be disabled. + // Note: IRM is not symbolic, that is not ideal. + function check_irmCannotBeDisabled(bytes4 selector, address caller) public { + _callMorpho(selector, caller); + + assert(morpho.isIrmEnabled(address(irm))); } } From 46c6f463f46d59bfd9a80c5fdbd8eb7ba3e99deb Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 22 Apr 2024 12:35:24 +0200 Subject: [PATCH 043/110] test: halmos nonce can't decrease --- test/forge/HalmosTest.sol | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 9d4962398..cb445774f 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -164,4 +164,14 @@ contract HalmosTest is SymTest, Test { assert(morpho.isIrmEnabled(address(irm))); } + + // Check that the nonce of users cannot decrease. + function check_nonceCannotDecrease(bytes4 selector, address caller, address user) public { + uint256 nonceBefore = morpho.nonce(user); + + _callMorpho(selector, caller); + + uint256 nonceAfter = morpho.nonce(user); + assert(nonceAfter == nonceBefore); + } } From ba6386e90656943fcde7c97bececf00ce09c41fa Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 22 Apr 2024 12:39:58 +0200 Subject: [PATCH 044/110] test: halmos fix nonceCannotDecrease --- test/forge/HalmosTest.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index cb445774f..8e20ccb2e 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -172,6 +172,6 @@ contract HalmosTest is SymTest, Test { _callMorpho(selector, caller); uint256 nonceAfter = morpho.nonce(user); - assert(nonceAfter == nonceBefore); + assert(nonceAfter == nonceBefore || nonceAfter == nonceBefore + 1); } } From a3bfab074d269d5ae51675def59810c03d821881 Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 22 Apr 2024 13:44:12 +0200 Subject: [PATCH 045/110] test: halmos add two little rules --- test/forge/HalmosTest.sol | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 8e20ccb2e..0d02143d4 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -135,12 +135,22 @@ contract HalmosTest is SymTest, Test { } // Check that the market cannot be "destroyed". - function check_lastUpdatedNonZero(bytes4 selector, address caller) public { + function check_lastUpdateNonZero(bytes4 selector, address caller) public { _callMorpho(selector, caller); assert(morpho.lastUpdate(id) != 0); } + // Check that the lastUpdate can only increase. + function check_lastUpdateCannotDecrease(bytes4 selector, address caller) public { + uint256 lastUpdateBefore = morpho.lastUpdate(id); + + _callMorpho(selector, caller); + + uint256 lastUpdateAfter = morpho.lastUpdate(id); + assert(lastUpdateAfter >= lastUpdateBefore); + } + // Check that enabled LLTVs are necessarily less than 1. function check_lltvSmallerThanWad(bytes4 selector, address caller, uint256 _lltv) public { vm.assume(!morpho.isLltvEnabled(_lltv) || _lltv < 1e18); @@ -174,4 +184,13 @@ contract HalmosTest is SymTest, Test { uint256 nonceAfter = morpho.nonce(user); assert(nonceAfter == nonceBefore || nonceAfter == nonceBefore + 1); } + + function check_idToMarketParamsForCreatedMarketCannotChange(bytes4 selector, address caller) public { + MarketParams memory itmpBefore = morpho.idToMarketParams(id); + + _callMorpho(selector, caller); + + MarketParams memory itmpAfter = morpho.idToMarketParams(id); + assert(Id.unwrap(itmpBefore.id()) == Id.unwrap(itmpAfter.id())); + } } From 53f3e28e8ce85e0798f3d8d0041e115446b8638a Mon Sep 17 00:00:00 2001 From: Quentin Garchery Date: Mon, 22 Apr 2024 14:48:17 +0200 Subject: [PATCH 046/110] refactor: simplify setup --- test/forge/HalmosTest.sol | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/test/forge/HalmosTest.sol b/test/forge/HalmosTest.sol index 0d02143d4..fffce5c2d 100644 --- a/test/forge/HalmosTest.sol +++ b/test/forge/HalmosTest.sol @@ -44,26 +44,17 @@ contract HalmosTest is SymTest, Test { oracle = new OracleMock(); oracle.setPrice(ORACLE_PRICE_SCALE); irm = new IrmMock(); - - vm.startPrank(OWNER); - morpho.enableIrm(address(0)); - morpho.enableIrm(address(irm)); - morpho.enableLltv(0); - morpho.setFeeRecipient(FEE_RECIPIENT); - vm.stopPrank(); - lltv = svm.createUint256("lltv"); + marketParams = MarketParams(address(loanToken), address(collateralToken), address(oracle), address(irm), lltv); id = marketParams.id(); vm.assume(block.timestamp != 0); vm.startPrank(OWNER); + morpho.enableIrm(address(irm)); morpho.enableLltv(lltv); morpho.createMarket(marketParams); vm.stopPrank(); - - vm.roll(block.number + 1); - vm.warp(block.timestamp + 1 * BLOCK_TIME); } // Call Morpho, assuming interacting with only the defined market for performance reasons. @@ -182,7 +173,7 @@ contract HalmosTest is SymTest, Test { _callMorpho(selector, caller); uint256 nonceAfter = morpho.nonce(user); - assert(nonceAfter == nonceBefore || nonceAfter == nonceBefore + 1); + assert(nonceAfter == nonceBefore); } function check_idToMarketParamsForCreatedMarketCannotChange(bytes4 selector, address caller) public { From 7b1ef9594a572c681c965c824e5c5ea482579961 Mon Sep 17 00:00:00 2001 From: MathisGD Date: Mon, 22 Apr 2024 14:50:54 +0200 Subject: [PATCH 047/110] chore: remove 'draft' overlay of cantina managed audit --- ...-13-morpho-blue-cantina-managed-review.pdf | Bin 775036 -> 703145 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/audits/2023-11-13-morpho-blue-cantina-managed-review.pdf b/audits/2023-11-13-morpho-blue-cantina-managed-review.pdf index 090d1bef0a45a2222656528d98a8b9120ddfa05e..eb82adcdbd613406f2b6231f5c705539cc7d1d0b 100644 GIT binary patch delta 187358 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�M__gi>`A$?(Mq%EBXyGQxmLrfpnEp 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