From 55393ec1f7ed3f09f2be97ead8eeb004c28e7a84 Mon Sep 17 00:00:00 2001 From: Liam Monninger Date: Tue, 22 Oct 2024 15:48:01 -0700 Subject: [PATCH 01/13] feat: suggested solutions for fixed token supply. --- MD/md-n/README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 MD/md-n/README.md diff --git a/MD/md-n/README.md b/MD/md-n/README.md new file mode 100644 index 00000000..36aa3847 --- /dev/null +++ b/MD/md-n/README.md @@ -0,0 +1,91 @@ +# MD-n: Provide for Fixed Token Supply when Using Atomic Bridge and Fast Finality Settlement (FFS) +- **Description**: Provide a glossary for Movement Vocabulary. +- **Authors**: [Liam Monninger](mailto:liam@movementlabs.xyz) +- **Reviewer**: Andreas Penzkofer + + +## Overview +Using Fast Finality Settlement with the Atomic Bridge presents a challenge when the token supply is fixed. Namely, in this context, trying to use the same token for both L2 gas and L1 rewards requires that the token be bridged back over or else rely on a trusted signer to relay the gas. This document outlines the challenges and potential solutions for this problem. + +Users of the Movement SDK should be informed of different approaches and trade-offs when using the Atomic Bridge and Fast Finality Settlement with a fixed token supply. This document provides desires and initial conceptual framing towards that end. + +## Desiderata + + + +### D1: Provide MIPs for Approaches Presented in Appendix A1 and Similar + +**User Journey**: Developers can reference MIPs for different approaches to using the Atomic Bridge and Fast Finality Settlement with a fixed token supply. Developers can also reference rejected MIPs to understand why certain approaches are not recommended. + +**Justification**: Developers need a clear understanding of the different approaches to using the Atomic Bridge and Fast Finality Settlement with a fixed token supply. MIPs provide a clear and standardized way to document these approaches. + +### D2: Provide Staged Approaches for Networks Building on the Atomic Bridge and Fast Finality Settlement + +**User Journey**: Developers can reference approaches spawned from these desiderata to understand how to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply in stages. For example, developers can initial roll out a network using the "Free Execution" approach and then transition to the "Noble Attester" approach and so on. Some formats may be more suitable for certain stages of network development and release than others. + +**Justification**: Developers need a clear understanding of how to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply in stages. This allows developers to roll out networks in a more controlled and manageable way. + +**Recommendations**: +- Ensure that achieving upgrades for each execution layer to support these transitions are also documented in MIPs. + +### D3: Provide Additional Software Necessary to Achieve Accepted Approaches in Movement SDK + +**User Journey**: Developers can use modules from the Movement SDK to achieve the approaches presented in Appendix A1 and similar. + +**Justification**: Developers need a clear understanding of how to use the Movement SDK to achieve the approaches presented in Appendix A1 and similar. This allows developers to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply more easily. + +### D3: Provide Guides and Software for Genesis Procedures and Initial Conditions of L1 and L2 Networks Using the Atomic Bridge and Fast Finality Settlement + +**User Journey**: Developers can use guides and software from the Movement SDK to understand how to set up the initial conditions of L1 and L2 networks using the Atomic Bridge and Fast Finality Settlement. + +**Justification**: Developers need a clear understanding of how to set up the initial conditions of L1 and L2 networks using the Atomic Bridge and Fast Finality Settlement. This allows developers to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply more easily. For example, one common approach will be to generate an initial supply on the L1 and run a privileged bridge and voucher swap exchange to the L2 such that overall circulation is grounded in the L1 mint. + + +## Errata + + +## Appendix + +### A1: Suggested Solutions for Fixed Token Supply + +| Name | Description | Gas Destination | Reward Form | Challenges | +|-------------------|---------------------------------------|-----------------------|----------------------|-------------------------------------| +| **Decoupled** | • Gas spent on the L2 deposited to pools on the L2.
• Rewards on the L1 are issued in a LP token which is demurrage.
• Ideally, intermediary tokens are used in the bridge to shield gas and staking token from bridge fallibility. | Pool on the L2 | FFS LP Token; voucher periods can be assigned. | • LP Token's demurrage assigns a lifetime to the viability of the settlement protocol which will require a new or asymptotic token voucher or token generation event at some point. | +| **Trickle-back** | • Gas spent on the L2 recirculates to pools on the L2.
• Rewards are provided on the L2 for bridging back to the L1 at the address of the FFS LP Token.
• Ideally, intermediary tokens are used in the bridge to shield gas and staking token from bridge fallibility. | Pool on the L2 | Staking Token | • Rewards for pool providers to bridge back to the L1 at the address of the FFS LP Token need to be sufficient.
• Pool providers likely need to have only custodial access to token, otherwise intended rewarding game theory would likely be intractable. | +| **Settle with Gas** | • The settlement messages include the amount of gas spent. The LP for the FFS claims token locked in the L1 bridge.
• Bridge may still benefit from intermediary tokens. | FFS LP Token | Staking Token | • Unclear how to handle forks.
• Centralization remains as FFS contract needs to have capability to claim token locked in L1 bridge. However, this can be governed on-chain in this case.
• Intermediary tokens can still help reduce attack surface via the bridge. Now attacks would likely focus on exploiting capabilities of the settlement contract to unlock token. | +| **Noble Gasmaster** | • A trusted signer is responsible for successfully relaying gas spent. The use of intermediary tokens in the bridge is moot. | FFS LP Token | Staking Token | • Centralized signer. | +| **Free Execution** | • Execution does not charge gas fees, meaning gas token stays in circulation and supply does not change. | Nowhere | Staking Token or FFS LP Token | • No sybil resistance; not suitable for anything but promotional or initial stages of a network.
Gas fees do not contribute to rewards, so rewards rely solely on initial grant and perhaps LP. Execution does not have cost in token and so cannot drive work-based benefits in token. | +| **Gas Lock** | • Execution does not charge permanent gas fees, meaning gas token stays in circulation and supply does not change.
Gas for a transaction gets locked away until a time or block lock expires and then is returned to the account. | Nowhere/Temporary Lock | Staking Token or FFS LP Token | • Sybil resistance effectively only applies over the window of the time-lock or the amortized windows of the time-locks. Game theory is more complex for standard gas attacks.
• Gas fees do not contribute to rewards, so rewards rely solely on initial grant and perhaps LP. Execution does not have ultimate cost in token and so cannot drive work-based benefits in token. | + From 37862aeeb3ff25751dcd2e29d455e73478febb97 Mon Sep 17 00:00:00 2001 From: Liam Monninger Date: Tue, 22 Oct 2024 16:08:10 -0700 Subject: [PATCH 02/13] fix: clarify. --- MD/md-n/README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/MD/md-n/README.md b/MD/md-n/README.md index 36aa3847..434cd154 100644 --- a/MD/md-n/README.md +++ b/MD/md-n/README.md @@ -1,14 +1,20 @@ # MD-n: Provide for Fixed Token Supply when Using Atomic Bridge and Fast Finality Settlement (FFS) -- **Description**: Provide a glossary for Movement Vocabulary. +- **Description**: Requests for Movement Improvement Proposals (MIPs) to provide for fixed token supply when using the Atomic Bridge and Fast Finality Settlement (FFS). - **Authors**: [Liam Monninger](mailto:liam@movementlabs.xyz) - **Reviewer**: Andreas Penzkofer ## Overview -Using Fast Finality Settlement with the Atomic Bridge presents a challenge when the token supply is fixed. Namely, in this context, trying to use the same token for both L2 gas and L1 rewards requires that the token be bridged back over or else rely on a trusted signer to relay the gas. This document outlines the challenges and potential solutions for this problem. +Using Fast Finality Settlement with the Atomic Bridge presents a challenge when the token supply is fixed. + +Naively burning token on the L2 without a way to return it to either pools on the L2 or the L1 will result in a **deflationary token**, i.e., the supply decreases over time and eventually reaches 0 rendering any operations relying on gas impossible. Meanwhile, providing minting capabilities which involve the operation of fallible services can result in **either a deflationary or inflationary token** and the opportunity for **byzantine attacks**. + +Namely, in this context, trying to use the same token for both L2 gas and L1 rewards requires that the token be bridged back over or else rely on a trusted signer to relay the gas. This document outlines the challenges and potential solutions for this problem. Users of the Movement SDK should be informed of different approaches and trade-offs when using the Atomic Bridge and Fast Finality Settlement with a fixed token supply. This document provides desires and initial conceptual framing towards that end. +This document also seeks a response to the concerns raised in [MD-20](https://github.com/movementlabsxyz/MIP/pull/20). + ## Desiderata Jt3?Q zJi>`8sH-;s*Jz4tc#X+YnNl#-Ky${k4;X*x2R`SPZtvl(5JYB%B^jw2&CuLMBeb$N zzk%?w3|!vv{4Jza&IsD#bUp*1+l}Z6RU==Y^CN)dJT!8x>Ac7t?=p*4jnb-j7ksya zz8zH4C1jzTB{8f?EG6IB^Y<7;Ra3ZZE4RE9ey{6WcwtPKEEExhf4_<`i{xRfi9D|h z-@g#T_7KYj*mdlP`5lmPB_7!6bl4Y%eXV4K3J8HaUwS%imy(OMm{AOX;88&ziir;W zRD5f*4>pp08#eMKv4m3PkruKjRA4dsZaP8t z|H*HsQ(8{YlsW4-Sd~-)-MtrOu=+%XfiC3lwT<3t$soP56Vd#8ZzGvvkY9Pi*814~ zI}6)&RFX@jN?WsELRe?PSLv1u^D#t1!??j?`QTX|%!38(g26Y?Sc)N0!x8L%fO#yO zmE91w^!57Tl`ZT2pE~aHQYB&{nJO_s&tGx>Vdo)nxdxTJq{a&DF**ss=up?#JSYRy z1syr*Ragniwx_gGs@*Cpz1H4B!(l@_9Wtl|v`7Zl%podi3v6OU1xy+Q1dBz->>)sA z^d?@_uZk*IP^rwLRPUYb@&iH&7zx$EB$}(zRzm)=eL&<`64?z$rUpZkd zqyG&C$6@7>ZpFj?BkZ+CT^v77|A2A%Gw%L;*D$B0=!Ck|w#6#HwX6Ta`hk16Y*TUX zp-qi<+Nk6bNMQ~x+M-$?&AK3R<<>)Pkgo(9)o4*4#)xyXU4UVO^6nWY)HgUtFWj{J zCNNbda;n{x9?cp8ll!^Oqcu;UsJ=P4RMJAqwoh`evfEAJ6r2p=|6o4DUpSWjrWKJe zJJa=}Fz}QhiTd6D0r3C7f6~)8HU8%(MeCP9e`|Kd_TGtU_^gzOItxs$hG;G5ES&%{ zT4ioOVr_)d3cQuL3AH?Q|3}D-jgqa`L3S+yPU8#wCGVS>1vf6+^sC!<`w`TiHYij@ zb9PM!qjj*=E)E_pIiE+xcgrY0#mxPwsbc6;8#%XxLB0~ve>4_9wy#DL@Htsvbj+tw2TI!)V7$3; z&CuCKjID>=Q-FhjZr@Cx4~(pElz6n}HpGh|If#+3dY^uL0ghabV+4TctJ80RC~?-T znh-8==vYVj?OU}&l+bKl64jucA9iP=+<%>TkT-i&s7nU}Ffox*1sm!S46Z|y((x5S z`6%LE1E1##b0`3e<1XPH>f|HH>4~34n2$R#!l%!xy;)n3{P*rR!cpb^3rGD6$6yzm z{(GS;D1;E}0thSpS_2KKO7HK)HJ!wm2gJ&OE0(hXxl+_f(;tAZPvb;4U@+q$y~tU8 z_IXIVK-oW0Z)UousPRn>0#G1?+X_{phy?S(*LrF&h(*}U?H6|l3eoytl=3Iaa-zKM zT*?p&5dz=N!Yop)HK=guqItXEkPw$wD){@p*uQBP2y;=M*t8ZA_D8)70KVmRAQU`*Ec{djophXttl%c!-fiPzVc^kxrI|ooo zAitjy%*Q|n)>!Q1Lu`6?@w_RbJJ=*FU)UwKLi9?jb`H0@UfMVykVqk0Uosdk-c7t zA>2$GkbYHr>3^6`M_ z^Lq!{vVrm_6Z+`xKTq8Y0q(;cf$$Nz;d^MDply*>O|_J^)335enPLJw8U0` zOt0f#W#a}Fn=(MorRYB;J>np9pM5|6YL1&+8IXr-z-$COzMCVOK^rWM0w;3gUD^y# zb57W3*B*_9mL*KjU@xH~nh~QW`!5av4xTMcHVl2l#wolqZfWV@qQ=9im~_>Do@Aoi z(nwhSz1AR<+PiwbX{fKW9BA8`!p!(9=PENoa3-&I{BoOUl0idLiM5m0^C6?^0!{nI z$?GZA@}I=vU|eR{nQhTdvc~|?7&s_NI*$gSy#ou-a7DAyIhqmD4+w%_qTd9qcAQch z77a`rQS9!A--|Xb`jj@CK10lr!tX$AO@sKaV2)JtfS}79eo6~S-=$tSx19UELMk@cpY zx;MQ$QSXEqu2ht+2JtE1>3+PwD=( zh(!wW5LbVhzj}4w${dI$2vQ;K(PySoQUPWs8mU?U4Eie|(xZ?jwl~5R8igUm*Mc*} zS|9@|FvZ=e{=)tDu+FL?OB70!7-1jCRA81pASXBJw^4IYePy{Dp`>UWH*CgQxDK9} z)#YbHnA<=79j3utzdB=8UI$k<-Mj5&JW0t%0S;LaX#kI+3~2jB3tGT(ska{ff}pyP z_Z^B*3n13(SOpQ-SrrFSky14eAX-NIBcJw;#9eB0L*CB8Km4~qFAdF)33(k-e;o4p zwRWi=xr8eW0AGab|4HX1wE7;OHg!&X>gr=$;czmEB_dCuCJb|wgznOCD-Xxv1!4~u zTZ&6ZA>#fE_NUeuQi^mNp|G9B(n3n+OA#VfJgiX#@!|BPwZS4dAZuRJyI@@GcojH^ zX-7}%HN7$MzMD^AC#U>e)GbRKgn2ti5oUW9CeAChUxKRug!7wK%({9TK$luD!uCtA z5{y?T39;}PrY_=Oe}{CH1WsgVo|olRf)F>WhP2eJCor!|oc@kW?B;a1fkU}~M?9X> z5@u#7>_W{A={kt$*B}<@a0Fkm4p&uvf+l}J;r#K%zQ5b@^86wcV`QZ%(g8T^WkQFu z#Kb#L1VFF+{>dg;gLMjK@N7%B0Wn_wjGY@dm zl`dj5O3)Vyfa#$Q-mZo;xTztv#RB4f zv8XlbJU=KiwYUjrWvJv~(c$-cGIMV5?6XC0(#4iT#B8>I>LJ)PEE%T!f)a*#6%E(wW&ZP4+-}4U}U}$)_=SQom%=S z*4(7nHo(#?TpQpmaQmY6-QI2oGN7t%42bZ2 z+Yjluaaf`M`sU7srNtrO+>A}-RX&C4I`D_2Nc`mZ01zZuGJ;>zZzS$))(XBXfJ8K9 zC>d&sAfMd;OuT1&>v{Uu_aY(lPfqc-;$;@k{=7!^A(bd%|mFh##v|vCk2)OBNeq#N8Wf! zy5=W;zq^p3U1ZKc2e7w!=l*Rz$Fyj12jpa2)j$o(KC*2&JNpe$OP>mizA-%tDCEB^^Huwl{f zC-bp&+XSWK6}ho7dF|%gI?>0lmzT`bA2SMYY(31@Q<0Db)!#@M*BRz&?pe^&W;FxS zXHgK(*A7cIm4P6ZBTY_vg2=78$i&940m!7br7db&b)+@Lz^a0skIJqiN!n;KrvW%i z=V(}|Lh|O`FVnAfCsBo{H(3lLJLT-c`W%fC!)(AY~{v=%)-* z0)~Kr0p*MfO%#Eu?^)Y~p;;>+A6Nsgs8e%>N4#XdE@4%gghczAfUu*W|CqcG6!nUN$4%#i8>cEJU4t1gPBhvQe+4BAyV3pHmN5Wp2?G~rI3 zFsPdB@@(nySko5+0Kto5KFMxdTp z;~m#r*F3B)5?rn;iIW0y=YT@l{=Rvz9!RkWA+tN&8r}dr*lyzbv`wx--lS2as|F1XnSj4= z&oG%TNNAZ6@JiXR10$YCFa4kRdl6!{=C2k(toy@;qBkgZ+a~&6$Hwk{YRpyZ@3?jk zdt9e*D=I#XuqFx+4In#BMY_Vh&Uhd4sK78!!ro$ z-8xyI?KEK-;z&sv&{=3_pxNhfCTSE6FCU{d6RiV?Q3+7S7qFlbU0$x}>Rj0VY*_Q? zxWh&%w0!Epy6w8JskSXrYqkLYrP&dUfy!0-)vd?{Q~WA?g!gp* zs|tvaVozr8tLk^sOgOBkhr=dS0`{*IF%jlU9X*k1fHB9QvpBv3Cf35i_R`5rWL&tI zuqvXy0{xmNfDH`1F~&UoXz7fVaBBmmVAxlN*(9-got#G&0X3cy=zV@taR1qGOdlj7 zkWvwn)><}zas|yC05Eg`lmxgzk^BwABkBXns*=7e@eczPbsz-*56h1B&Go`SlfpJu z-K=mHZOwy$Q-K@oI-F}H99pOtuOY@?lw(TA$K4W}*)_82r56pO`$jejwiMwdd*xr_ z>t67<4aZe{c0cesknA1EDTn&AScD)54=3`QZwZe4U1bi!>IYR2?5}~0h))Kc3J&Y5 zoRBA6iI@ibASq5{BL~z=p)Qp5sW0{3q@X(EsVVflkQ!G8VIyP@tUNsG$RX$KppkDt zKkaHqKKn(02IM8^j1Nxe!T}qMn_zZegkK9vFy4#s~Us5kGw1G0VF;uXC1Q5jl>dd|jKsl{lK3-{pA~^ zZU(Rv4bVn`8z*TwMYiGx`L)l*UHiFbm43JI;$|gW(|Uc~$GtueE9$(`V+K6tP5e55 zA!8s}vT#%df|~`X*X$lq@F7>oZ=_ zdv6~@!~6@>x%OLeqHfBFVO{t5CrEH1;xCet9r|?N`>eGo zT0w;rWOFqcMP0uTleY{uBQ}aUsN@)xLIoQI97jb+J>>J=L(25N#le~OJ@mOyD@#Pp z@icBO^a%|#x*r3C1VG%(+a%`w=q`w~TD~oQe}y$i>@gGGhtzjSGkw3JXL83L@8&BJ z%vA!4y>6Ao;&B*Y=YDhgweOD4TIJ4$)Rf)V@y5hw;6D*LhQWoUVq0h4I@i6&9tMuPKcz}$V1#osg0R;_Zs9VLyI#T3G^ecVJXQInM+WhVoNFa^E zyvb7tSjxyFgNdU2x%fsY=;xt2-?pc%>MMNreRm>VC}f6pZ=3x>c`H_j106%Fy(bEy zg&d4g^#W;vEb&o}@K?;mM>HV}QUWFvvMjOzf;|gj+tqhxK=`_m?^vtSOjrH|c&Q`& zuWNP1pn>)bsv%_{6swgg>y)F*4C*1wbVBw=Nu5L>EgVZ5XoPk{J8@DnQ+UL#m4|)X zweqylCvpS(R(=#EFZk?_PyI&#U>ejyA>7l9h6-x{NSk8!I)7H$Pp%`ls(x0E5<83I zzF|#@eg6(^HDAxL4^P?u@9c@^k9`J>BWHs_FkA%DcLj2yEx`TWD@H}7syAd3Cb z)(Y?2lTfF<-3V$UfF>F<;34@8P=PF>h?nrZ8$1^haysj=V6mG&j68Vs=ovIrl%TH8 z8H|utamG~!1nV$YI1)tx+N{5H=~Lt?fhI~h@8s#XeQN{C>n|XWd`DDr2<2cZ0MOvx z7=h3N^%px_-E*R|014@EWCdn+?h@LD&V7iJO2vWf_5exS(q|f;*oVx-4h0 zuLb_LyM|vQN52^R!wFwpL>L5kr7HsYbdc6%Xmq;#N>2*_4ok6IG(;(RAoxcL&cl-Q z+FbWjNgysNumF=s1eDW5Q@w&#P11-!hw}X2lZVeGjY2MuCK|8!(?XhcX0|rh47f5D z05ISbC3pA$&szllL@SmH;6>nr*Nq^aoWG7_AiU`q?2&`AtR*W3Xhpyr3NBk64vFBr z49aoK(a>=cO|T@5K?`*NX#HSKv&rZmPPl9BnR~@qgvvbytZn;uBC)lb-v#*pE6DUB zih@DhHujADtAJ>-8)QuRU+m{|ro4mi>=lHPHpiuQ{10PY#ctpxL?eI9?CEzc2+?>t zF~Mst7>{4DFqOvg3eDmD7rldJJjYHv_I?@YQwFo|g^_xYdPH$(osefQ2KT`=dj5d& zc`XFqAVnLvNJw#vzLbxYLj*b?R#o+YRUwvd*vxu%I1sE*Fs3|+v_1T~yTO)GZ_gQY zC;Y-(vczxyu|-BdaHAqO2cr<=APnIt|6-+&cXQ=QHu-S@(D#eXYLlsQ+r4dKOS`wt zuu|NL4EuO65)NFHtltoAs;P+c|MTen!qG)?N&$}*_RlUHo4JK2H}PTYxjM?PlGLx4 zC?Ktjq34H^=a9efh1D2TGk5DT{cjPoY#4&oNs8`Zl2 zJ4xn|7>H`Zy`#u9eE)W$_?#ST^xHi&OO5ZoC}XPmI+8yE$6otpu9~upEQO-UFOyzi*T<>1)erCj0wC~=m12+o0#)Y!N2e0X13lsTea6QL z{VMAtKXxqV)cshvepTa)e|hDXdgpuKo#X@c4@4iF=n%deawy386k|{-&mm46oZ{kl zLU(8$aNSonPa?cS9N6*YsvrIEor6hD^|+k=4GE~m z@~p2}E9F7KIveHU6(%=hpFE%IU_Bl~d+nATyR_e5IJkIU$)n@q4*r&}TIDqk0VsDf zHaeOkJNb(2?oSEHn56xx^hgvn&$bUSOn&!Xt2a3`=ex6E@Q2xFE^&J@@xj!<(voW@ zh&=QZa^>Qe{S?SMmD_jsMw86n3`cW|haWus5f4!NRoM1Kdr6xycN`XAlgzo-ihVS? z)h94tV($DHSe6AjMcQ{FjOj{2#={ZXt3vH5KflNKXghTnx_o;@F;~3~TerieJ*76f z8UrQ%bf(U1&5%b`HfF?im`qQEM+)@wohnGw7#PWF>4&Ys94(~Qd)W1}B z8~$>`iFte0y=NvQb5HZbV^zS1=ihxobP(`G6E6;t@;Ym_A?DlC0=Sv7m*Bjz6r@jK z{-*yj{xFIE?*KCDfBnY<+)OfcNuPf_<9ZD$HTR)5+B#BHd+&fyucK_E5~Xv`nOOM# zT*dq=ONs26lR(Ju?6k=%zpg#1*H;Q67LG95UNqg>QMtW5e}}rvG-)f8$b9%%s(qd? zmC5Qy>c9-i<;)?W$~CoOSe^F~QXez$rn4nw!>+;aX zz>ZJ-T%LaZ&!HU&Hu)|nIzNG$edLdy&xJl)u%DUb!M%G_aVDqHR%Q1@4?2&&48a^7 zUmz}d)WfTqZo!yuU{3nz2__jOX8)#x*dwL$Z)47iIIKp*`LE}<{}yW0s$yn}b~BZn9x_KF4Pah8bf2ez8*Rkp9Tj9JHjO9{R>j-&Dg zaK=9f(++7p@v_RI#d(4G*1!LgBzhd1!m;Y}D%+g%xwp!>;%?8r=N929Uusb>3ntHt zeti`-UD(Cmgl7zhzuBExoqjk?jg^%Hs9|dE%^}9;rhJaO5Bd+mT3J$97csLsjW!#6 zhrtQ5M!p=QQbB!8pDgol z6y$kxm#vh~*%=tCZl8sfMNbDFoe3uLyJ94@{rk};7$2b5@4$b3IE-IrISqH@Rn3`-eaxx2HwRD zxqr9df4_Ge7nqiZvjuvb%`V@6T5WL%OxL?U7i53hhaPa{ay%V^Xz$T!SJc;CI2WP9 zLv%)8&L|Ix<@?!r6(!eJ%$*;o*BNCAg8aH$C#;RMygYrTmY(8}DLxM|o!%Oq#H&p4_fD4fRaE!>-Tl`untc7+ zLh{;eH;x|=*i;+jPh3-l{e=`)BIv!Bnuo$=51o2Ch1M5sOy_I#{4sL-ahaJd^yQQr zM2-SAzQrGTJ_6IgO*@c^fYVPdi5tCPO0qGbu$$EQWOEH{8S8M{fJ~JV#-J<1mc6IV zkCWux?wexFP3^&B1+hvG_r}}(6n}u`SV$yMGOI{91Oxkr!3p1nP$Je%MUnGeWIXP5 z9a}6*_JcYl$<+^s1!oikC&M_^tJNyY@nv+MS3jg#c&l^9xWaGKhzsCXZ@!b(|3V_Zv5%C4DD?5l2ED z6JaOvrEes@9F^7fPS+Cu_rJPl>Uab^;hw*L#LQI5UhE-8MyZhE2a=hE=Zb-#{Yg7v zA*9Hey>m z0}w0vv$GLQcSLgWsQb9nT#$pqtIkA|r!Qu^1R z^=WaR=&<8UhWqyvYu#OhkeJYMuaIL8iZ{HQopY_JZLpwC@t*`nx(`1+Jv}ZpdxNRT zclZ7_Sz_)c{a>G@PCM4IKD!57`^sJ@sv0^2bBZd*?VCWyJ)!bRHM<`7#cx9Qqvum{ zJ9_&66gt9&_@e1;077Wd)$(s~RgNa7Bd5?YbZwR&n$+<1yf(AGy;6DHcsWbAfP2nh zU|k2KBd(5YAhSQexz+QHlEO!PtxjY1XLDHN=AWWUQfR@By!sj%_WOCX-?dgXAyS}< z5S=;J3@m}f_)DX&^1s7|wMmtp_Sp5EH#ZO0+-k3w58%C5EB^D$RNun;MsFUk)lbLm z*E)L!w*Sn3zg6L)LtxL=6jEhdd#i3ykVx6{7*WE0?n9V)H{-G59r6PKSYL|0hzf8q z?c2n$sUJ-o=3?H}zDV&e7t@V8C|HS&on3a5HV>j=u8Def>5FZOy>}3gf04K1O1{7y z0@l~Sbhsa_m;A%+BN6*Op|T;;yEl||mknVX8#7zE)vZ3H3>K*-IGHu=N*xQE0B*3|1OY8w6WJigh`4wO!&$1-j=<_Apbl81Iy zxbxVAcfeG|CqQ5O6m466mB6q5#Gml{p}tV2k#mGz69~0`gx*cp+lJysj}|5NZzYn4 z$tHA|1T8p% z7cC##Ku|Dqw-FkEMX*h?_k`t0|8nlF07%A)u2KHJeSzLdPAc11t}7FdRSL3@PwBDt zS3F|FASrePf5yV#vr;+`0EU>Hy*?tm@n~oD(R^{OL~i!DfrKl>BY|%CpH?pET+d4C ze1wugc8N(PJBO|1JYNQ&EJShMD4zpOm!HgRM{hji0}Ufa;vU<4H8}fwr)GwQvK5M- zOQ%cUND$1Aju^KikFp@>v)i{zO#FcSMPmPZdtXQk;l3wQrXQVE=-5BGeoO@URlcJ9 z&%r^i1I9_aQe7<a&#Xj}p4omS+`hZ&#uJEllsyaAqs3tB{rYKJAZ>hfLuw_Ea^Y9xjw?tS7O!9tZ?i8_3Ypl_GuFR%P~L9lm5l8 zJ-r4}95vL^jeGaj-=8GS*o%8jzQf-<^R)vmfc+-LKxHv_S_wgLw-Ru0)4enJ`t7-3@Monai)>;4B_DPE5{m5)HC zF?cEf=^(0p?n9^g49Za@I;cs6VI);{vpl?{0`q*}Jtk?asM>xugM0gVvHO=BMZ|O2|+Rx+dw%Khu zI%58?;!qNnv=ojNU0{`|Lt!xtmcbRuhJl2tXMsWQ&f?^3(yKCMJMTcB9Kkhx|VJ zpNH^y-DTPrLDBQ7JN&)`w>ie!(?`Awk38gqA@9*G&}BLJH>100{f61uryxChRzDE( zN9Nu9F?G}<7LWDvL&9s=n|kAP_+m;p9;*N&Q^|hl-t&Z>WMA}e1$|c0Y&r1u0`}cV zK-g|MkbwEK|C=LLMS){w4W0M&E)cqMhc6B*^_kdC({|j&_zo5Sw$0R0YNG&GFFeuE zPg+WvB*QAQcjh@fXN6NI%KSOyCTFv6MHDz*m4xFag+s_qo-haAKZZjLR0{N!l>im7F z-i0*)mhNTemTgI>yy9gIfqa-2tS36^>q5~u|Ai% zMTZTw(l-8a)B*Ixe4f~wi@mJ&c+Tw%X74W_XPZdRNnpkVoi>zMiYgc-?wzy08@_0c ziGKcB9YV4%9>3FOc?D@%F(+Dpo4IzOj<-aIEBW13qD`!q>-jaZVrJ$~3bm`AT0_=K zHHF4O0B)}I+@6wrln6MHlUmx3AF9QV@r|0*fNSC<3=)w&Pj7y}r@n_m&Up9s!n4YI z6zamvac=GU4D}_jkNHz;;`UOF1olexY{U{7F?!8^n15PS#%k!j{DYz1=XZz+J-U6l zkx^wcb`B)K|8%Ms?O&-_3HWqK?3LXXQiNM=e&ll$E^p#JXe|Xm)-NIcJ6Pi&vI#n= zl}7JbmrwBipT!GXT$exNq^z10QF5KGk*4Un`1Pmd2xI}nc#*Z_jr(Lb+2lI4=B-Mk z%z2EQc>e@-na1UlBiO5#LqS^OUt`i={tNi%%z4YEwR}z&gztF>8V&zTcgPpt{eD<# zjEVie6p9R-x31S%F>5;bw^^pY)Lx;co02%cl(73xF7bx1KRh9$wER=q&}8tD@22@l zC7BE^Ha+2AFH=84*CJ#rgovb@H5o^7KaZ^Ep9ApGSKyX-44z$+cu1hAOE zkeY+1cF!MJiK=VpB!BX`LQx0u#{C=pD}oWut|jW=ugRoHYPi@IJE0XS*1z*hw{m^R zf)_;YNKry5yV*T?1w=qri+neV=2NK4IjXDKDmTY?>58P5Gc_<}KX?vmd!Ro)T{(E0 zVJhkFp&Qkit;^jV6@p&F6p7JpG@#R7K5;1;q>3i8mo3CvNom$)9g( zmJ$(tZm>?n#~D?}v^!=ef^QO0F+w#p55Sis0(7jrLU)juoWj}rtBJng7X`OBkauP3+YcCm=ID?BG#vK)XC@T+4XdRv3_|EB%bSRl+!xz|$4)pZtkL>~W6gdn)7; zC(ga(3JV2*(@k~y4ZO|3R&}wQ$JHlSfHHocwobfa{YPFP2~RQ8T4%k<_QE`T-1VW2 zVVAkv0~?}}D+srtcd9;ecz|C(VA=6b8QJzT+r2N=Ink@48OXO7d3AAz+-Ex4Hj6vkxgbR~E9%qKct`qyXO@pa4b$=O-F ziz9rOe?cn8nDFOaMgaQMy>PRJe7DDa8P$a&JPTV_%ufWN9M1M#vqGI&nCP#U^H1`; zUW|Fa@pj5J8Rug23?e$-Z3J2b*6!b368JS!G`xRl51Aj|(0ltG>O1jifSRtx+7%K( zf#m`9>xXXu>`dCO}X zl+6y`2B6V%C5^nwm6MNc>^-W$*0)uvQKp>-2L?R+7~E*kREt>~j!% z(tq>!eshDQDF8zJyRpJ2SwzT*5bxcOT_^AKE={ZHqA zVK*PVUp8@d9vgrIPXhex*!x3y&z_=~!efg1PugcU90054o3ce-ghgGAFfgPo~*vz}vK(!5<5rZDgC#dob`tuPs z4-Ze(RVgFz3q-FE9$))%p<8F=_ak5NYA3!gHZ$D?S0TY{%stDt;Qm!RfgCopZS#Q? z)$0!gbguD)FdFfP2u7|KPDTt&!&um?T1n;*8TXkN5G zSnv?z=^X(6su8R3ys&q~u2f%?G*968YsvXZYcsKNT5msDhFZ9$q!5doX%_5V?rbVu zV=n)Cp3>9wVD$1MX+BhbWJqvQjoW=4#@7)+ZS#M62<5k%eybJ-iUL1Agl5 zV-Ab(4v^`mM>k#JPUQ0rxS_OwE%z0QoOz?98r}LUCLzI|#b0FVRsQw9c(8t+)4+uv zbNPKc{_E!8-%>RF>+MC~OTKe53Xg`%euPGB|J#?mUPB~Tp}?HVj4`^|#R@@@fxCVc zy~KCbrzPCJemc2}6HcrC+Q|;=@*q+U%*?aLqJA`lqh%bI7VfzpJfHL*7`3VGZiF0X z&s2I3BwP16JZ> z!`mM~Y*jeuS4oz6EyJyYFfQR!ZwWAx)P2y$EU|kJ+d~cxz{8bf-7;j{$EgbYx~|9C zePn%Rcy@kv8-RPFzXAICRL8v0tSTQe8CjH-G1^2iF(?i?*wWu8MK-Qj5wbSR5phEt*}t1|hHRb-4eBx;Kx9^8NmRYZ_&%?6i-vFCnQ&npE~OA!OI4EG@RIWh#jjX+%;@A(Ti$ zc4Y}!T11jWl1NdBEP2j7b6*oaJ>T#5^Lsu2Jpc3(Gxv3_v!C}l*L5>hjr7!v8tW1C zYMO%24;5}sRJ`0545ydA!*i1E<>4`NRh5kgd2fufG@3Y57Q+c0Xb;QdYBO8l?0Xxy z$30k72-#x}u>O-Q$dZ}yusLh3ghCEjS4eLoY5qk$SEUr9c=}hEBR{t6u#O;yyv2@k z;^O|;=g`0}(OTeAe}2TtcErL90#oz1s}F7p@CSET*^aggm(0@WqsCe;7%Uxv!`Syf zj6vOe@Dccr`t+3Ol^+(g4ryUlo6(cfT@Fde>V;TO;nacyUJoju_)%!;d@~H7Rdx^; z+@SNB#3_zu0eG_$Bg#51e$^mcAsT(Zf2r=G`oRnIQgg%(o-SQHi&*FJw&V{F7)DIC zWvJo|sF9sS1W-w`57;Am1UmAfU-)y7vA>s5R8e{PQ{lNq#{9;lo&-ggQg=GX|*w+E*i^ERoj)ou(3K>ow-Vq32(1 z&-E2%L!8=Ss@i{Z30QI)Ag8l2bmH43XdAAA_v+Dm{ZRtG_9Fk_P%Sk7v4Ewq!}jIs z(rX1+53udn_~5Yx!RKtgMMRmHmSI8e?!IR?2C5jj8VoBH1;Ln$scG18_WKMZTZ4gQ z^X)1k#Y>P3 z;pmu{i0Iuvov%(PVdzVl5#Nk>CpwkLXhy$ZGQI`_2HF6MbQTlG-U0ClGNk6AIw&=k zlt9^**oVOqfCP}7Aw4)N#?|li-PT}!f2pK~k~6&9ZSJ@)d~(U+fh28}s*qq|aDA;S zBNmqu*|9QWqX8xTOD4Q`HW2QmP=@k3+hzSxK&nrHYs&sGh(0G~bxeUqmzbfrBYF2TjD=6*P z5^RL&1I)MW3WW~2;q1%K_jC=*-ojumw3@cEH^PBUpAT{t_mj@6J3yXcaB)0A!CxAS z1C=A~voSDr&F8x%nxnsZeuk_MGPCyBJ_LyTqW0k(w|f?S_0k?{JT}&N;CA#&xA6hn z@t3DJW(Pa$-G1pZ$0&5S)LkS@7}znl6N+WjtGMXi7=K)6Fr~ctv7O}5BDxBsH92Pn zyma9dK{G=EvpMND_Mucyf2J%CKONAeRimxrW41$&kBvUQ3wkcO;1B>7rwpMMYlG1W zr#E>utC~+@g9ME7@LN;vn?vv}memmj02#?(4K;gL*L&yRl&FYMG1#LG@MFj5$Nj%x zGC|fE615$XkK?6-7P{&zv)8Fr0dI7uTIumgP>Z#Uv|Ag?>9m?*Sb832l!qWXi(LcQ z-T%@4#48u`>t++RwqvMzQyMd??Ut%X$pcvwWwj@_DI@=j@0%)wDR#dS_>LtwFN+TW z(mwB8o&_stPW;YOJq$~C8!MkpZQ?53G^alXrb|CB`AMW6XTxf^zACfA6|&wHxh-Bz zPi%y;T0EQk;w9HftAqQP9p+uVYd*9HipJNb*c7N?uP8ZNDwa_oCUxmf^oaHr#s;o2 zH}Jaag$?p%_Gkm4#%>dd0bfS-0DwAw)xk)5>0JaTaBGuPY%QVBdU|Bja-<=XgMC*K zGfTvpq>#stXzfO2|_kwttO+_y~we~Mi-8+_vXw4TM2 zA1iW$+#T4s_XYfMXSm50rXJQ?067=v@eL&#Sup8DwG+8ZcC5()oNbmtf*MBd&^V!J ztoLBa<<`;8L-6j7IW@cCjCb4jYvX>Wea|c>yqAHpBVg%T6&1nu_y;dOkV*oMU!RYd zwEznQv!`qu8uZB}#x*_wzM2tf`nZ8~$%V(HsW$E+PH3R~sWl@GD%Pt#c*en>n9C3@8Y=6XJKi^UMw(?Hai%mz+I=@Z+L}XZbUQfo%w*70 z=yCCF#OqI%ckGHHclViO*otXO)1RVptZ+%IuvElxTIs< zOVYlVsEYI938%-;QV*M2k1S#{3QCNbt54ZULi{c6k3tp}XVobEZTT=PV*&gQOBDZH@STq(M!5_{M zm2eya>lmr3GUcIe1G;vTw?)7|Pj4aJ{y~Dlp1EF&S#3p}nQENza|~6MT%?zhm*OI1 zn85}5?lp(E$xcwy5A65X+J5|Qq^k6skHKNZtvH3!uZJ}m6u!acZ$SI@KIpn}<`HE6 zYPUJF!MXRf3m2`)haM<5+}y(%2EBiWf&9xHp_gH*Yeq;C{BzuNHog>n7ByD&a$xo1 zfOU9zjQ9<(wVL|N`1ADm@)MgHanSTS0Qycg4;DCjnV`H8c2*qDW^`=yiNj6NSvms@ z!P{|Ta)$!i{wZVTX$Ic|n7Asz@C0o72MW3MD}T2f8y`FSddXOqc95h-f3Q8IcA^sY zUggSHc^3~pcsx64&n;2K`A{KoOKnwE$Wxo5sw9Wny`nGr5X%wWxx6}yt~y@a-+O(5 zbshSpkFZWnW4?1^UOL|d&m>}vVUVvfRGb<@56sHM^E#=mB$e^I*)~=ca0f4gO-aER z=Q!PKpQK{Mh_J+bpSR*t#*T`WeiI&wNt$|qh$-bB3*W9uT`7je_^dW1Fu4z#>mN19 zZ*N>PD`Xt&FgALrN$Q0m8QWd3xy@oY}VobnY|_#~LMM-9tP71rcgf&qY%PlrZ`r z?*dws9tg}k_0M5KYJFSs-U9K1^ftFi)XJ{Vb zsOHh}-y4z*Zs!$FDWln?5oeNoM-F$1ckUgIVmdVxVl8Y4i?OFW;ffL0X6oGj6OJ6erN5jBRLNr>46$|nh?u2PIK zc5vmWEE36OMoh=0;ck1&{gNb3Y*@|V&eKJ!=&D#2#?8;qKZ-UM$r0b++kf(% z#VL$>H82vZS9hCUKcdWhJU9^pYHW#+xZ&x|G^9GXI!l?6ju_Xz-k76QzkG8 zD0G}VGCFXM@#%VN(#Pu1Uz8T@;NSf0*IT}FR_cc0bryXI<~eLYMpwxm z=JP*k2Dt|j#Wx-|gO}bj_+n>8be&^qUa>H0U(YN=9+M`K6!Mpwv6(>+%QvIGJ{9`? zg`I&`yYPV#5eI6lvN9h}=y&#~s|gwWSc6pkE*zUEZyfTjWDPr5Fm2oM@CTM{GdPo= zLy7n}d^%6=%@K}|O1L5wPh)fKbQW4MON3`T`Zz8sCBBLlTEukMfp$f1WU|Kkg%94e!G?;k`GrH!mguPUZhHC1KkC6^ zWH2UT;8`-lckpKIL^5Wo61j%xy81)Px_W23uI0?9Q$iVjMOW$ib8sNo$LWU9SPOTn z^*?R~mxbUuIGrHRW^`@a=Q|75;J=}^F*;C|;v00M4p;quPQsPinlvsE6FXPe6{X*m`)%{v7fRXm=Z8)$`|mWVHLkDN#~L8+TaBf-H@8?}OaeP~U9HiCFzUWaCTZ2*`m<0t9!;hOpFe;tw2{Ux&!SgEQT34I$b4 zb+u`vpM=rzh_+DCOeDW@Y%(jIBjFs1_V|X{F_qMN8!9_z`w672f>;8>M>9EnN9vCP zPM}td$jDbkG|`rDUEKcdk`7?K%BSj4nk0f{@Z}OTwF%~g(I3JO1}W>UoVvzjHp=l# zq!jWZ^12<^2ZMkqD3bH>WP%am^R2?hku zf~4h$acW1+gLaAvp0$uD*O>+w_$mYuGKoWEO%SZ?hG5Z6xI_5=w_x#<<(^CMKjf=r zL%N!I=Gp};$71AXM`0}O6;xSK`IG9I`ARJg#UOt@39lI3=05ib`;#Xa7*fv4Ge0WYfwe*K@=>4fY<|d)yz=9KKxze-x z5K@g2Mpq{5R)_L=NH-n0lTi_)XbQ=2==L=ps9wV}0)b_?*HMa|kF>Gt1f*U5`PQo&o@YlPd=({(~xQ*3_AfMt2E^OX) zt@*c073U2pJB`%8tv6J|HycWYjqT#uWR1IA#5Fd~4(F<0vKQE9ZoPm@`87M%8#lXM zLwPz;8WzwZJRCK8FPM&dkT}Wkm}6eTZa;S3D#I!8VuT>y9p7Tk6UE;vNempvMXzWA zJ3CdC<~l*Vu$*ERLG`k$jnAUyz8*YGC=xJfk;7M>XMR=WG&V04ceS%|S(v&jY2emL zC`s9jK6dZy(LdT0?`(YskFpj_sDZOI%jt61WscW2$cia z0qO7ELrKUV^s!@@11C;6nZ37jQ|%LxMMU=a+LtibVY`ZV1M_coKOlpcd(Bu&;id(S z(uD?*Yj;$5_*(ppAzYU>elSy=plHBE5ld?97FF<&t47sOp%DO*TgD@{MT{xRVVS4< zHFme$O8dbnsmMo2cJoN*7cX*N!B;UKSGg2SFfdP6j5Y^;(M`y;tN`n!h-bUnG}YJO46)1(`%O5s+FexD!Y}pd{;ONUw_dNH|d6Kfp-Gim@+U$7}5)$2K;|H0nA}4^5 z#yXcoy2|2>UsAX{Lm-dDq$+P(kC)dUx5~F{C|rJc9jZl>D8-t41Ec>Dffftt+)*uE zP|#ujN4S!JO7(qyiK`s9E$L%yM&|9d$GTkX+?I66=@n+pUAv;2+2ndJ4Q^xgta)`0 zdf;{37=e^R(61RG+iD*bVCDKLM`S;Xh;qBvc0!`r0=Y1_U2SMY*|`L??V%TP0n?ntd)oL48c{fulF{`7Fz ziSAY7x+5Rt-oS95as~mBvX0BV;`1fS^r^&fLAJBeuXMW1MmSv0AVyIgb2JWVdzqxs zxvBNTk(swww8snn`EvJCxM|yZ>78rLUlk{DV942Nu=|O~nZVufre*ZUle5BU)Qgb& z2MvWssiT3EfZ{$ZySQ2qgTp;50LG}gV;#vWdFPL}r3f?k>oJdG7`IcJM7V{%O?Cks zk(?uInj&?FYi_nf?GI=^B;Nr@wZ38>VwRmhn2Hv0vZ0Wk&c(K$@?!d}qZP6UIbbsJ zLLP1k{eoTY4NbW(hsv$->0Rt0G%R=wswUJ|?8lc-{6a`B81NWT001s-1Dqx4Q)i`Y z^nk$X={s*vv5tBjQf4QQ^g{ZrX8}*QTqJSB3_-Uzt5P( z&M3RxQFKT(;^}-GKgR5e42aF+1IO0scFklyCV*^9H1h4~F|`=h7-1kbg;Luo0Ko~8 zWLObp8n9#r*>nm-k_6dXjcCLg^7azyb=+6M|ROjr^t!8=i)j6jo+Xoz4dFhr>0y)Nd(ev2BYkL5|Y<>j`U=#9zb%Yb23);pcU4^bc5hB z&3U*AQ)9p$QhrT)>W}jac~lq-0EK9neoLcG_9C(>(Qvg*+lL<}hc3^ZdOCxtp39bj zHe?rRthioJVLs5Vn!$h1>>vJ~z$52F-E(l=vlAf*tq8iFx^?o(ioY?dka{=mFfll8gmMo1;E#vWKxh3VvMjcNLq=& z#7ktygZ|d%o)0#OOC>kGdufd{bUoPor=VLarn(2f=cMk#MIAh=J5b&{op3^!$%*=R zWfRX3;S$0UkKcG|eXSq@JrQOUzy>rd8Js9rLzI&1AVK3r0tAp|N*>1vE6u$1z0jy7UV^b_X<`gM~#%Q=Wqb1YkRy zeE6}^<`R;kI==9Sf#=o}ztFYC&e2f@a|lB!N4HwQ!k-NR@X~;6g;{*mFXYK4% zE-`FZ0D6p&X&W8tTX~jg%px#fUoap6im{G65VBaI4xed1rEuG&FNNep=C}zrvSr)> z+`WovZGMx@`3*?mB3H?^qB7qz{|JaY&Zbrqq_=+4+hdEMt!sC-Sp?56W&$h=RIKPa zorF@UJ{b2Z7`VCplhYHon~8~u`mx_4&RZ&JBv_{!5)1c+?}pW@U!QjPv|pNP7xbx!S+9!=sfDM$hxP5p_3i!*vXF z$O?1RoZeW|eQ+<{B?SZW?N&w8CqOnpO~#&tG}*dKSFc`OJZD#~DTm&3tuH8Hqmja2 z>tu%S(4^gmt6V3#+E9kDKA#u1(N;)h6?$PzarFmhU&Wc)!_^V%wtS3~6U|3@YD=yE z%JH!qt~_>UJd2`@WrM%87ikA-;9*Rh9dk3yJBD-b5yizrrCbmxp$|ZtmMtdNu*TGw ze+k68qGfx1+cKZN+b_hVkpg>v;@RnxDKb-ynPoc4hARupjFG%uP9(l3&XiJARh`$) zC8ewYRe>V=Ev7GnR!(pFPTUjb~BB76wWpp zmZ|j$4onOJ(;a-j#e#+~7#NyJuC=Ooa_s#)--4xZ27hRz9oTVDOeQ$^4Ae{WZBd}0 z-eLof11%x>RCS#3c!9C5H8SJS*QfjIsyPvJe#k-1P_kB?98 zrjA!PV|CLvCMIYZq9j`l>Ib95eLVyjY5>Bc*XT zc10C$gD3O3b~J1vg!02xqHK=R#7?d|bn#33kSq}IZwXa2Nm{^&iaFdR{&G93z9W;2 z0c`JdHk7#8jEq?jYxLY-w^%XE%qk;f927w-%W(e0E_oLRkfTRg;dA)qPMjQdtlpw5 zbo&?NM9||MJy=bny^_$7am#Y>y!iz`gP>(ests$8i9`{Fk;|VD0#QK3db(}f65I#8 zOM@hcd!JZ`LCB(=A{0dvfQufn#6&(k!%%F4?#u2f)C{WL%3wm>XM>gr zH4uyaSQi{r5IdRKfKVCgTj2kv7RB2qG0o%NK|6p_5Sac_*^m|9WOg)gN;aG>078KA z3b~DG#!L$+X6NXrZi?-lcRj%IuNS2(gOf5gJyzotr_4(5Xv_;bb6X|Pd^pyHS(x@$ zP(4pyukS*2BSjKITDO3U|CAi)1TS-W#dHc6&N})Pa&2r))8hB2R>$ilTy4gLalQX7 zn~Yqp;zDX{js^JXIxxXWfPM<50=Ex!PYI<`nk0vfTaQO9)l5LMG-t6UAY7W@70|`X zq5p7uI$;JszAn{18DV~kc8qm(nd|nw+lC(!BHJy*Ea7od_r$a7z+RD5a_uPy_a$e~ zzef4HsvDe=59Oa?noI@xVM}r-$odgwJ(3oWie8vabM17jxfrS8fDN`xY!LB5gXk|P z9XmC4cFyzF?I8j6=+YAM66SV)C`}8QaJ&{ccO3WYp6(C*%O8d*2;W81kpoGT&=dCf9|zoFkHU>XL_Qr_`3vJ0?;Vmce# z``(bW;^?W6MnJNcZ42Hle&XE8VaC_sEEX8}>s?E}D$$QHH5CRfRNbI^rhhF%mtyo~ z4ZM04SK$h*^SZSfT`{4B~UR=Kvf5Ic++vP_^x=0g}2p1wGOyKG?tv>$gC;&{FmigEw@cs%! zZ3e^m^yM*uRDOQ{l>?~~bsi!4Z2fb|G6KSAkiVfxhG&R6)LhSh0PlHYe4L_ybzO<# z1M~TP@V+)C$>LTb$V909<4w;-c#%j6+=3mBa0wYK0s$!;nVKw87`nm5BqgQfD{C{< zOIT5es(18j@=IJE+g)z3V)%Y0GxW~H{6r?tvrmGw@95bcQw*hbPA?PEC0@G}vFQN5 zofR;*Js_(r4QSg1RA=eftAj*rw1s5m0x;#`^>|gU;KTqXJ4=r8UP`IPfKl(yYmB6w_k^k;2VOZ>hDvVkfY32Rq!&o z!%FjtKZ6H^eN@-hw=fAV-p3KoN7KHyV5?gB*pjvMp!{Ea}Eyb+vcFns51@M`y#^CwG2rP%b|hORkr;Mhl%{tFGn^5 zc45*>$4!hrPEftJt$M@ol3Cc?FT*)nfJc5AQ^$xYr6Q~fq6<^es~m!e5y*d3^Hem2 z!;zRjT9Bbz5uNQ{;JagB^{pb(S$>pOBIVol?6jGa#5y6S3rf^yRWvPVz)jg1sumcXGvSHQ1 z1qb}4tILcaE>E3J9WQ5V9FsYv}V_jmGrs6YdFc!v0?dPGHHEj3XMi>f}kfP5&T(8FnI%K*p)$2efR^O#Kl*wK_crI%FqgMsVk`rYEh`{1JqIkxUNr3lA zR8NB_066W^`v5B_9$;Z7n$-H8Hv_9V(*==H<4Ow?bs!*a8_zqHc2Bq9>+gfKG-OU# zInL4KIv49-(+X+0}&b?ITN%iaH>%AAu;CC==FD>x=} zS?C0&k{@w80-4$LdrPM<0p{7}7+{Dy#tV@5k%)eDGVn>UUtfzmHY=-(U=5R_gb;!G$>Q26%P0oP+E6D-@NKwk_dV zH>KJk`UnAVhLyY%Pi0WsU`8bv>VQFOyPcG#}WnG zU$c%AV-3W`z9|`49nyA#)yKquZS!I>3B|84 zFbW!|S=Sqtm_oEG#jZ&N;Mkn3!kpk^>O&Qy7?4tiTMAjlK%}uOGn?OjMVu49XpZU)k-ygu+llvr}8jzok&aYdI0c_#J`2vA{dsl459|4zk!4c}K z&uu;LRB5W>ewE4xr9z07eXXhc@d)(#7+i7i}x2Rnd9@i4}d94GrLUNscy63e^!wY64 zF#H2m4eQ>;1=dM>%;z1(YclBWXPB{^bu&xKT0YG%KO;*qLSKpcYC07!zG~A87B(3WDTFXw6L6D$^ z@@xqqN9MSW2M=hk_6#Uo75RSPlT=c0Qt-|`0W86$sXc-#-SJ33AQ&4Pi%QUX+`V_~ zBLZEMV-=l@8IjW*wwYVdgcxLObGCUmrCu!2Ol0^0GE}r~q6*_L_eyn1!Gy$b^V?J$ z3WKBrEV{W}xr(&x1{%gG9)^(B(b)q2T}xww?n%$^hheB(fQePrGto9e^S3&)rbbb8 zv?gVKv8%DKUzRe4>+%Ea%39S%<>luaa1fLZ-LvKQ;a!^LTmi6NHyqm1UH3kSoGt?42Q^xJ3C0k=kzLMcgIrQX8&ZPDEY+=MMEg z+#;Dp6yLw`2(tQ_Sf?FYe54z6++{+y9OG@Oy+#NsvV zYns>3*;YRb_ja)$?4Fv!sKUoKe#ax~Z&;mNzK*MU%{ZwGpI5@}06L?&E%67(;eusJ zgHxnsMXk?0aiaM{`PL`6!T4|hi<)F_HF`a@WUN7f1K7&7knHZ?)Fn%8Ai!}g(Ly=( z@At}GO7Xo+uC(B0VDJJBmop;^A8QD4=*hh`Tl*jq%_>zu(IpV2AzIsen^_&=iiIij zLnvQYm>bSiuE3&h0jO#vc}+!cHerer-otxejN1!-dOiG^ViF zFP*Sfb9dd8!%B{K5>&aO=j;eIr%a52nBfVCg~MHKa9jK_`+Ib+{hUl=q(Gx6XR(7% z_u5rIm$%26!0IX%CjqeX{k#lL9d$gox_-A0 zUQp5G!*Ep|4%rFv*$ZJ#2H!9%fT8{zInWy(FFqe61 zNcHM$dUAA3z!bGUu`l;xL91W&7<=gu>#PJ+^Myi|k{fh4E9ouTE5i0UL`neR2QbyR z^*Emb$Lw_m^YKW9yo?s4Nb?+e?c+;s_cIliO;#)m zgX{DrRXRYx0`uX;%o(fedV5W;&Ny&9Huw{+2?69Vf@KdO-Kc`M<=D=VKfFdz- zdC*meA=pvV(~A4h_|oKzThlRY9iQs^gRHA4VFW?h_6#=Yc0=UD!hPnDJnxG5jIv#x zu4~28iLrbj>3*_1j#tQ87Hcoje zIgOB9v!-Wm0jDqXCN`+_^T@S@=V!ppXtKx&OqQQCmU8>O^>NXAHi*2|7=Oj3w6l+5 zU3T-)HdQbDfwk7*)xv`c-}F$DSZ`%_Mm|f2(`$p2ZU-VAIa(6DlR)_1Z@WJSAr!Eg z&|P%4DFidWa2hjMFHnYZ-0P6-ya=k_Gq*)&oCSXx9V;dweHgh~b`yngw+eRwiH9$r zNKG(%25*uuT?7q&+5V@!1rtR_Iu_P_-m-3LGmN3Z*db5I-{6wG-17r0>}5VK11*^i zl`!tT?1F9gifvmtexWnz^tIS|f~CLcQ78Vu!>ou51DBT%+j!QH-C4b+Izp$j|4h?~ zK4zCFPwNQ)tGN4}teS1G(W8%_k>dcg%BUwZefd{wQ|VN65Rm~#I>jkEEP#7)c~{Ol z3U5j}8@Lt?Wd@Kv2+2hOjVZbigQ_FZYyqA(bjyXm=7+9hZQRCI+;tfdtDB}y_unGt zxgBYEpno=+*$JRN6V$oWSbi1K^W6TI__(~?56p96gyay#mD~kHWHPVkAkpg=!F4^VBMb$C$>(mQbe?QAzS z1X5g@CEn(|Ko4+ZkC*cjq^tD|Rv$g(d!vzk>k}Sm`gE!6ht8yV z1vLf99W{EL&OuwIIPfr~L7ir-kK+d7>@WqU8Hp0}SNF(Oe)4{<#}w{W1Vqpb?Knp5 zMc%w?{nl!<3#VW&)Fi&%58Z_h%tG-4vG%uQ_`P>3gR>5Yp#DSB4$_{&&R^SV%mUJJ zGma}h_)XP82Rt657EwG`yxe_dTm8ZN%rnp= z%FW{X*b2X->fCM>Y7Wsz=!&_RdQ{eX{1KgtQ_%*=Z-Eq*>EcUL?d3NQDPAZ+keZE9 zv`_F(^}9jw3jEDez2nekk~n?SzFSWa>U;Mbxynl3r*qzOwSmK?cmknHO+MoErpO{y zsCE-co0>c@M_g`A<+JVAnC3(s0sWmj=*)Vf0$jn0>FyhaVYj@N13gBCM}O8wEqa~h z(mu0@WlZ7ApAP!J@M!6nV-p`Ob`M@>Iw=zL9Vb`0(fJma7bv>tAw{|;tmA(UUhz3% z)JNT?Eqml=WS_km_ zDga~sbn#9{??wtbXFteh^fpaN(xl))8za6Vf zJK%#mWoK=8U8+{*R_Rk5?pkaw@FTw@Un=eL1ts>mx)}-yb5IV5v;79!%`e-`-)(dE z_P}Gil)0Vb)lOBThh;C(@sAzw*cFkpIh<`sntC@jzuNVt@j!D!P}+gtx27=_yHi*v z=b$Wo_t7KT2$+fItpB!wbnHNOv%JUCoC8s=C)N*t5r1hVn`Fym2ze_(n!lwh?NCJQ zt(y}8e2^4O7t4Z8j*=7jVj~cp zd&Kh5&PL&&1FP}hlX(f!UpHP&y~PXfy7iV0r0upLwcuK7D(oc@E2idjy{=pQ1@b(2jJm5!wOCx`a?fifUKzs+ zY*r{NnB`Ysb9;W?L*xr5agTHaM3G~rGmeYm4#XBW1yPePb-kW>FD&FKeJpe z4-th~g9>@%s@*^HsD~n6r?J0hnG-Wz`^6c5GUZ|)Wx1{WI`pS_j(82*kRu1%7cE53 zm|QpzFY@zH?!{&*BaYhe>UekBJjx5-4(`@Ike2W2-HbWtf1cm7jwzn- zY;x5ZqxbC9PrjulpeyHCi(@}f65&;MYCVo7%-@pN5v1!{^w}dB<~cz7@LR`bN9Y3W zknjj|+HJ%kJzDuVk*sdfw+3~?Zl;8IJ)k<#jd;T=hwxJ zJswW#B5siZpQC_pos-) zEb;2>5@AY&@xYG>=ZUBbiAVFYdyjg~dHIY9Wm2L*WVzk@SK=b`ClK^FQ$MX06<2cJ zAkHRi+sF*q9|&KG7rfr>_*G`_g>M@-TKXYseOdY=GcJYu=&;WYNGM4vp5|+GO%q(gd9TLyQcnS>LPZt*yd_lpjRt5sPU>RNC>&x$to_Q^|Ql6I5-_Di} zE_uB4ZAn|-fRi6Z5jC%V{XT8}Ujq;_Q2UL}b2<;t{FJHQK>t zYOHh*ce-S{7&STS)|)}85zFkIA&&k)KRugJh?vo6&~tIeJSMXE43fL+b&rt z@RgTK#@qDyPhvN}PR=!XdVFE-0_Iqo`9}K1vQ(#6s;sVoG}WTh8D5`zq|9$=e8<}| zkqzQOC2c)nvpjhu2m*fZ3Wunk%t=UQrn+<61&0vj2x`b zGMjiEQj{k<8yC6^pcfb_Mv>*+R!tXQpL#msxL#*2kN&!Il#52P*#BPGd>{*Tgb<*!`kabTz=OF)`X7*^ zHP?I>d5G`fkiJQ|Do&>r+s#L_-dwB7bRFJoH;p1Xdoq?Ts3Cx7PeIX z_6z(mn+ciKO+=c3745j5%&?`C6yx`HCkV%NSDCwSoZuF*Oltv;jyGlX3V1PY=^0a& zDi-geCYNOn{`{$#hfcC$b@w`%>A9ALnxR+7FAV&z@eFmz;Mr6sUv$ioQg0|<+8qQ~ z5!r4Lm8J@|`i_kzX0x8xgl}`00{UZkUVvT18`=0{OsbLY2NdTK>P}YsKI^u28Np3H zlgq##-l5tb)wk26*F#x@v2n7UHTaN9Hd>11G6%`<6U7Gy?~NHmZuI!UL=x+lg@5}V z{IPSOzF7yC>Ix_YoyFfM^HIJ%8W3L15jWsJ{^+eIf(XF%aEk}W>96`7njSZ~zL`$& z=1|WFZ+K$r{c`I;{BeH7_OYmb>u3j`4;KorJ-de^B9u6C)sqf_o?}YB60g@5yV0DU zLuzN%>Y;&Em!(dei~fAt%21cI5Hk@nO=$Z44`@9JqUenxRE?o1A8+i{ETZ*G{O zZ#LyF780apv{|05_W6f0E1#6o@t8S_P)98EUvI#nuvr?Rd3GGsmIH%*D?7L7n>@rd zoS}(2-kx8)b9&IR39P<}y>rsH3M;l;tgC!#HBLpAmhsvmt*|>lWfu=7N9@~0u6*vJfM^h(&Xs7KR6xY zmbv8itUvLQVR?9DLWPFPIoj_u?=Q69O{b<&KeBa>YK)9FjW_M8(Fhe4PWxFI<`k`El!{y zSLvus=Z@CPcG)3Z2loB3sucn{-h03NK5#1Vg*a|G#=uhWtCw@dxGxs3AUra@c-Zse zN4Ar)>Ie5C;EE+x?1xVN2iZKkySo5XVgX8&3&nYDV&eJi+l>oC@zh4jko3jy>=LmL z{<+_}6CeK}LQhC%$7e`lJ2-pr(L%}zhPHkDhH2ZKQ^!SSu)O0xekjgjv*D2L-=Ec7 zxHpuEFF0=?*|>&yKVQ4#w9zAdie*xQ(gaDd0zLWNRdUtN#-0IAbk>h-x0&gbI>B{# z@v5@kwJ~YKOh=zjNP`@3E`}DhT}5b7k}m!02%rr|EI1U%1G4HO)4$JT|_-eQCm@W4Xy8+@$7*W zQ#%?=9nW7De(%+Ga^>1bKheNdzC!p42idlH1pyI*X>8h4%9KCifmL-7F zDUsB%U3COEQ76vQQOQTI-(H$^c5KP1>rGz=o#s5w`2$R#(2DVkw1Fgk-vXRK{1&E% zoK9FG^s3i$ZXJo-mYLL?Eu zo!fWtI5~x9LzZN6uq-;1Mmbe%Le}M|>mGk|Alq`@8#E|3kxEksT_{cyN-2Jl%-q%!<~wWOC)O%F`MD zX|r?La#Nk!15 zjr)n1w2y85R-@bUY|@fgG@3%0dCzrvEb6fRu>{tx1IQu8Z$!mg>!k0BB@nU@9wKC@gKy#_}BBmM@#}bSId0gz~ zxE4QMNq*-6se4*;)07(@CW)fBop6m?Cir3L8EZ&Doviv>g@%{g?383yS7ltA*meD` z)O`$NiwMj9lk#J*1l%b%DyT0ctjJ>1i>GYQr06$HyBs@Ougw zLS~2rosb<@1YA;^xkIDjAUxs)uwb8Eo=rcv`rennw*P44hWlvZt{N03* zwC`$BD(l`p=IVMjC#b~s*vj9(hkE?t0G{mOkjv~kTEM&Y+NBLIV(UKcm$KX~-S@rq zR_5AY$;Xy`RR1zq^u52eHEmp_Xh~_J+v7xcCzhFi=O`Ur{zc{N_s(cHEYw9?9OBb# z>=6{e9qv09kk>(eHN+V^UI36b1Ij3U;=&}Mp%36H<+X(r6duv&Q~1WlZ8`L73p#In z{?HN2OyfJ2@r+;9ma3HeZC&R;^Fh_Wx%Rv4zyR@lox*d`8GNtK71tlX5Duz)rRSjz zgEz&JY($!$QDZvd)OQYp76qBM!fzN0FNc+$XX*T3exON`lH&7YJ}EJ`rYKK}-u=1) zLFm*Y#KrQ2&>Zu8gH&G9U2AGGo22M6`tH2Opz{o~rmDi?)ybdCao$nuu*D&7RQ1)K zl0UP!i~XROM1_%NzQq;%=0qAK;jHJA|+I1K#5cy^nx zw6p^hN38XA*E}SWyyE(?rPIYzh5wU33FO>l9!!tWJd@bWAjfVOAw5anqB+ZUf+K-I zZ>(^EYl->IIklQ3Gf0MBSuKyU%{!uYrSRxER(kQ3(}0Z@eI#GjnfabxXf&u3j0b6K zwCeYtnWe-ZPclgnO!-gKBfNq~pPlKr?NJ-dlpD2%vvgVK) zS?c$08$S&7P-A1rGYQ76lBtbOGYjhRyp28+lu^axnFv$5RC#uGsV2?Hvs2qf6Ffmc z@i=j5idalBUlcx7arZu1?!ehJ46wM3;y3ATYOzTl`NvjrWv+^=Cqb3HblnGY#nFr_ zTN96MlyvJ#)WDT}4;Q7=_F`_FEWc={0j&VO>BR5eYx$_p*~)z@H6``a;+c5@RUK5XV~217$_7WFNN$gr zxXnpi$Jq1EmTDf&*XyS-{&BE;eF;8V>a73Hrnq9T^-S6RXT-FIyct-Iwq*md#J}#}Tu(`$ZIWwzLYBE zINzV@@6&BtzFsP9VqC6cBW$ibZPzEauo@cp5pKz-z>JJt>`}XhG!9av7PRmRS4|CpwyU<(|CYhTLrfBZ10Og0fk zo`Kv0v-oSFRWZF%;y?0u@;bQBn&2L&Z-}7Gro3aQ#(pCV%3Sq#GXMGY|CisGZwBtm zeBO$BNM3sHTys_`9rUeFZR|0AY_;qC`t0W3tn%P1|0(nMhZRkr8+qR;3Cvv@m`FnW z71W{rn~49H$F9dxrIE41d8eog(H@IK2>z|BtsB>UemLM`ogTD5@i*2>+kg2r8gc(W zu0|3DN19`zxgP0B5xBL(9{){rh_1=|Q5Se%wcPetVe402yh0%E1(B{;n>+)RK~w*a zmi?a;shj7tT|{b6j1pZ;>t&XUo7$Cb5jrZicR&cJyuq!8T!ELAqKd?fG- z|HMw55uKU|%3A3;isC4iIU@km2XqzQ(;qx{f3OwJ>MITdlOn;@)xr9~b z6n`VAw8-*N?u`z-5B)D|OckyPi8;PuyKH~6DMgnpQ-w(Q%3goJt7FkDRGmKosqH9l zVj{Sp(`lS<^1?>HoAVxBG^fQ@aDo+dmF{)B~KUo>a+zPKl!^G`HS-b00Nx&mc=+G zoUG)Kx^ydkVj}U+Q1X}G6vGe)TL4Vytst_865cPRm9#xA9h`}Rv0@^*s!sB-#&mJF zTddTPv;~Hw;^TcQ33|`F56J$B=KpP{%=JfQ?>6@?c7&*Z)5UV<#P19}D6X%Qd^UZ3 zoL@foRwVzSFmjdp7IHAxzm9lUj> zNt=+@iRWMa;AMkV1H2|HUP2>_24e18FJCZ*MO`bk zxFvs8xBq>`Iu0nbB{cPnEcSER8<+3Ko8STD<;;{%+#~V6_oaY{_tl9r!@Am`UV&bfNiZj9vxPepAs(t{=@Opl*_mNr_E4kWI3U8S*>5sbZ6J% zzVQP`{PI(0&s(Q8ew&$u0Do#V+i>B*+*JMUgn$S!i3R^MhhT2LTj(^K^vCZx^JeJn zyx*VvAbp5sw|<(S9luouz1+`%LMHkDQAlSC`p@DAjP(B#=K|CLo2<$IMgQ%zur3$d zqrulliw^GGa2II@6sXS@c6`jK*6nOKg7?1cdI-Fx%^uc#8avaoFwyT$d$`;CX?o5C=+l1`~ z$Npn&{&(q8Q`l|_#nW=x#hu)*;4ZO{c=P!4qbsb_%v@PYe~|Nsf2+H7lpoFLqa8sn zLf@H1$OIS5`uN{|7-hKT{>;{|MTHO!vgCPM=kB!cixX;hJ(Ak-tgvuavygo!&OX@OV>faXHa1?3MY$*-YGh zw-isCSi0TMOAT2r{2LtqB>eZ8mC%a?zYm_7PjG?}fv9G@W&HP;`!~DYSEv!_=Xm{^ z;gTZ>Jg>5fU!`*t`M1yKIt z1u$)Xrf89kPUV6=PrT`POTcSYtQe1Dj4_8)^0#}d{{9Y}zv>WUn;O!J150xQA`IbF z=LAcxV|TZ1{NX=dy?p#YGpN$~R@CFB-htACzwo1Rv;R)m-MFRQ=)YvFx_n=kafOrb zr_ucj*G`};{7SJbm*e9N?9!E~v1<6n<>dORtZtQ$lw#x8eQ4Q+K`8mEK@0YdMb}(O_U-bO15mj`^;v{ zIWv#(zTfNm{qg$iT;rV2a_^se`;gC|hQjW-on>Ir#Z)SGH^Gs`X2vw;Nsn#GycCb@ zK4f#_;!$CrKbZHjOkha5h$P%gUL;wXU4ASqbC$yjh9uHM((9HU->{;h|80Fy?)#hf z!Em^LYBD1elGi*u)NS=y>JJ~6ZTFg%8kyuT^kI& z>1!P-WZ7s1pr&jHDiu=ODrd&A`Bff{At`lb%?Hm$mQx$EqB?P^I<5}E>0R%^L-Hk9%hjN88^Ktkdg19j3Ym0#NmTxm3rydJqYewDgG z&u^y+il#v)N!hn;);(r#Pi_O@5~HoI?bhm)s^%?BQ!quMQ*Vud$owOetIv*DG0(ig zk)RY_b@?BheQ|qKLr`n<`{$h}`$)=N$8Om({fl^NfE$fON~U)RW!|%WHlxzWMsgJ0 zah@`va|28bo}zHY5_%S0@)m?Nvp&Nu{KxpG1um+=P+B$T!r7y^Tlu$r_lfzWzA#^N z@-`!{>c#r%P&vgKAA5o3j~<;CFCL{m%hW2~8bjL$brbP>z>Dk!?HBWMdoQcLb|8jj zdVVQo>i{#DthsFzl@l#1!CYLnu_BJ3sG_KK*I$k^=#uE@?u_WlmqtL=Ij3%9fw2+s4cVVDeFCAf#aA7fb!=Ppo9b zj6i>ci>ORmI!%t2W_qY5Cm{UqO~#|?F|J6_K-rMaB{6UQJP{Jq8ai*Qt3+&$h$%Tg z{I)y2Eb-r9K0p(hs_NN2GRR2O&iJ(d$qyfYl9;gD3A@9LpqS_j3tLDsX_nPpo06@) zsbTBi4?JBSwl_#@y4Pv*a;>e1&tJFAo7;BYjlGrjx;wh~e!EOg)xr5epX>bf)bsmK zgYUPvYVkE@g3S;q#C9g|YvktSjx3>R7llgfNE7DB#>Q2Ds$W7!Z_9KfZ6)RV`R!Y^ z`wr+F?D=r}^j|Bc&G}JZbK;*uL~LzPz75)6xoB3)w;Xdb8P8GgGAr^NI{Les|LW-P z?{j}&*x#oo>vb%2SN~iHmc3)5f)}~4zk?_Veh&x@Iw5NMQ{nn6p$#)(bty+CGn)If zCez3+X|<^$67ZqPv{V-KK$`9AJ1!FOpM%?EbUnYq!f zZF_^L4uYlxia(**!MXY?UF}gFh})t)m&ZhsT#A^3Xb6#J8r;5qIAoy`rdWpl6?f{b zUQ6ygER2jmRui&Ur!S`u34!IkR!Rxmg##Ap)1)3W%{&$o^jKlyc+cW1;MqI>_Aztv zf17|orU_QEivF_JE|4(gJ*GyUTrGvH7WQ6u!|d&S)unXpdYC+sFt7P!%padv8R6jA z>2SUFEbG#b9M5J?<6a4<8PH&_85oKrKpMd*OEV3E1E^WS;vZLS3DZ|%>~uUS_q~!u zRmXJAjFn7jYAqqU=4V8O`+nGI$=iSU-6>eX244ghX%iL*=WeU)%>Eea>u}sllfFsF zxV+d6Nh(QwLUZ!(8#1owx;3FwW{vpBsr@;BJx)|t7EqiWyOdE`!%mVscMEBkL|W`p zoxoHbv~Mk?L^r3j&8BwJta)k=!M1*#WRJLHOA$C5R zK&PRV(~Mn5;7#oVQ$9UB~Crxuf|G zgxj`T9dclc{qwP6oN$3Cq1cQA*W~!3BI;>A9!|cAzOriA!3nokYh#Gb|5`@j)N;D zB&AqEF6oFH(L-J$10ckl9wKIUzY?65#$P;Qf8-wqC4vVXyX6>5^#a7K`9w($+KGfx-HBoLz~&~w#4S`#SIdTGp71Oq6g zeuG_Xnv0AZ0NjvvVRDt4C3@t(tKj*t&4veNs$WBct;EUCI)n%51BNh0b95;;!wxc) z-Vo(T@EPj05l0|KAo4WW$i@q<(%b=5Ij5n?1q*e~_%ikl++Pybpf>wdBVw4I3B)0& z?M%#!>!Afy+{WhxV%h5y$OcoF`n}9>4=$Ej=w>}28pLDc?_BvFMf^)_O_z*ZZbFpb zH})_YeTmc+C}j!Zu9pXLe01qiyc7Fr;l&E2vrc9NqLX-Fv)GTUPu8uySFTg0Fgwn$ zD8P0pOm^SQS)N~u8ch#eAiIQ!j3q&dbnTvpJsO2HR3#(-Oqs#jGxLG$3iCMKPWZtm zp|z}sd8U8y@*r#!(j(`0`S*>P1-{vnhan8l9Gmq3*`7dXcOsaV)C?7b$q{7YSlGph zx)qm=ZS06FCn;-W`a^;a$ds`g7vkstbKjZdL|PiYQtbAB_GmIwOIawOKlpD3S$G1O z#w&50V>vWI{+mIu&EpI;4Gy#|nt?0tT&!U9;-nEZe2Us?MFg^evYY$M%{BAahIuoS zA_wmk;!R-n4wSSHk-y2Z?#Rn8Ki@s>Js7iZbsN*?&&f@h%8;A0O7jt)CmhaU29{iU z1ca;VhBCGW4+H(-F7SjEU4 zt1Rqv#?YNuZZl#PERKai+#bSr^KdBFBns%@6Xp8Tp~?xi$;qz?V#bADm6dAap0-Tf zbQOmdjvL6IcUEw#64jZ_HwEex=>4iGi|5I!{U3jU8W-VtLAfD;0^dgK0!w81oQdR_)HzP zbwySS5OpcViDz3SHlucHMjv|{F9vcUM+;!K+iL@^6y`2vW=(`Vl2_m@)6B4wjv&nf zM?fi5&UFNW??2V`(Xy%X*!3!J0{Xfa|8_T@a}|p+jKZ66CSE_OP9gXNSZ^nr#e9n> zbFrek5M+CtW!XT6%@FC>h(gY<-|JLVNVG(Nt!{_ol?3!$d1j*qoUU+J$a8RxvFHS`0Lrj02^De!74A1Y z=Pm++Den2L$sD(S4UznC<^zoZ3Aky)w+3quH!;XyS`Dd0K+ogq>bmd-=n1w zeJS73i(`tk+&+9*T#B>J&XAx2`BD(uNNo5nvzxBXeHNX-n_-yR93^sFdBV9T21jTS zT~-np8*)uTKzN7TicjJ|%1{V}T#OcD{L=+Fe{Irxan1nLb)ZrcS+|MdLK%k>GnGA{ z3uAkb&AJVYH+gpp@86Fn-#m;&dFCu%T?=1IDxvHH5-}8HcOaPodSBPuI#hDlQ8RXs(U8 zcCQZX&}N;l)3CrtrlWSKIKPPZ(FF@iV)G)!WE~`|Sqv1jkDW9|j>meyUIL^{SgnVL zIL+ow3|ENKGMXZK>HT*Zl-TRjb6WQ#b@c@sUE0g+yDKDsE2}`ncwDjx!wiG z>jBx$g$@&nD@{rAikC9te~#pCRG zPRq|4gTS)do_q7#f6r_Q1YL`{ZF%qLt1 zW_u9_waBtDhHocWXy%tV$tkKR+9~dz8qT^8dSIPyaJqSDu$}MH4HOyG2N6@s3#~)l z)RZ~8l>FIEii4mY%`hzxL7u$lK|MOmH^9eL6 z0xWPvP;{&1%ami%HOTo?dc)$lc3Rn{(seJvm*z_z8}|T@VU8ioPDt=$t(ytf1WZLCs?wIbZvY zT>P(gi;0lryPtU7aZFmV`&=p8U(uJ+u{2w~4_M`3U7aJJvV9z+8GW`LS)vAtD%B%I z()4GYxb?4*hUc(+(1_Y=YR_Yt7dPXG4J^>$7eBG|3EC~qzXL>n%{THA_qj{%w)Xe; zKi1kcbz4wU*5CC5@`S}l)~LTfApI=X<26Y7an5I}jqE2-!gq-2tAF_F#g-*KuvX+L z$SkeKuNsUt7}$N{|3Y0y{4NBc_BN%}`*DOVZGuKq6he7d`AxTOpA+mkE~a<$20u_&0+wYyr7&-&!Q<+It+GL70Vp{Q=L$1%HR~$7cPhzIxae`AH zH2VC)g>BeV5zo1(mPCs+Cv8I>6g=W`s97WmMx8*)?7djb^!872VGfg6Htj)f79AMX72*b_~_vP@~Q z6OFm-@2%uhbdyie&5-+hhtZs z9b0sR?w#;1T635hDo9h=r*GVMU)inC>|(_ZY(Eq|Z&Nw%48(!%AikkifLO^qKpZ2R z?2K3nD7I>!2rEq7Z-R4ngwp{r%!iSC%04ykIa&@=mkB5mNHQbR&I1#q6&L7I)b4s& zjc(Yy6bqQuAldgEQ)%GU6>5MnSgSy8peM7*@kdD_vqAkeS^faaV`1Y94QA;jin#hxYIW9LzrrjU2?JEn@}Gr+O`qSsApuaiV-{Yu_#e)IC8 zRZ%-FWzG{)^w?%hFIM`deIjA(2md^}hyw#2`#@yCsw?GKND*;tmFZ_oyD$( zv(YkRqgVLz;ep^^(69)&KSeCnnKvu)G4L-m4bRUb8oj(Cq{LH<8{ z0GbAaNK-?D3$gJW-ilOYu`=l1X^V+CmB-Z(eGqRR#d82In5#ZXPz_V4n_AvnLQx6u zjgIj-eGLaEF3q{I7uFO^fJhJ94!jUv&vf~?(>MJC78T8TN5CyqvJMNa#`S@ zp*Y^5w$oHww$G20Idad_57@ck)FZYC!vs0hR_4X@yavP&ZFLpl#@qT?FHku_#LKrc z2O`Osd|?~LX~3~mj*&}4$#*qAM?LNGA2;v$n?umAG;iXrs$-53i3B)Or_9M)RftVh zC0{@%n;LnQ&&hmlP~$}jk4H8~oq8mciMEIBc8DclOckUA>@nXnx6Sw*UV5`_#PxzB zq-;x?u}7_RhW{zLadg_Kd{24=b(^NsTtudzV$;#u1Sn@hpfnP+p1)sa|L7NahI7b#Ba`#G8#{(z#h`zSR?vLj$Q_TQUCeB&q zJt)2U7|L2nXr|M>DEn?7kSgzZj02VeRD*t)d7at9iGz~3g6#vG5I^7TQBx`iAivfM zGwr*z(PzC>jhO;QOi&l2$YQo8#r&Jwgg)qTY~<$q;;;wdS&j|<%TGwxJl06XHU}*D z6Sfe2tYXlZGR>Q2n$*yE(8zsB(DhIaPSQWzu;da13UGT-{x=-sfS1HWE|A_! zkdqS|)_(T}o3UFmA?>)N?OxYcty4`Y-EMkbI1B3oC%~uk+~p;9ap*79ksz04s43^E zk7?fZaK&8d@iVVkaYAbZ@&P?LEZ5<;B~J29G*A}+u^|F!(X^8a(YVm;4VQ6_WxQknH5nXBK+MnjQ2%APU3ZBzhD&HvIu&j7{9|XL zJ%%dq-)EBAL6rgm#lj?i-|c|V)L?OLOb|2!m?X^L8=tOf#7J<@>nmYD-&}^%W4uDt z_O~kOj0-b3x!^t;`Upr_$_v)aMYFvly(zZ%cbTQIGG6qW#yx?kRTFh9n(ZUbx%vB- zHmW{DWv2~GN8n9uiwbRdF1*z%i7NM<8q88|}abME-3O zz*=<%Sy(Aw>(C>|E#YsH@tBV64pi$GdC`wgJ&xiZu^Llk@pPe)l(X|k1=YCR|Ked0 zWfa>BbZ?3UFrA~0BJ&OvHYtWggWCSJP&JLugH|#svB3z5sPi>XQ-Q0fngGTw?%(w> zG7WKs8C+@_`3Jf~j9MvjwLfDq`8Jb8*gVI*35 zkF28jIcn}EX?qbGva5XzxW+v*35H^`+U@MD~nw;VxwT}uT$8MR;ISw)sO@OE_NaIpf!udWEhSWEx z%jf;;P~uqy$mwzE@LztY@4583qHJp{q(;Gkets!AjZZ~Fb!G(3Ehl=WRDvS}X(TES zr-Dh25q^AXN?T7va#LZrZOE&7D{PJyZR9Cv;GI;i!HraKm(J^DKlI>RQ&hw!NphdZ zRvx%$iq0c$nL2!6l)i2dcA&MQA|klZBlo3nBQO^<_$9xqgzu$ro9Zj%&KjIEGs8(V z;7L>H29x)L&_R6aFZtNC}o??wu+uxar;G>spy83 z=CYe-sk33IOw*Dw>?h4=MBezoKCJTQ$pr=R)HGBdKyJm$Z19dzo54ovdHsfQ+b%mp zbfYbMs>%|uij^B5(q=}cjiKdsZrh<66&DZ&*&0*V(IORX2Q(p*5F?lVgOmhv3oRvK zEw#h$j_)_DfU52X@cH27*zklAT7xRaGJ~Rm$@0umf8FYZ!79RyW>w1C@YwXKq0H0~j)Bp-~o3v|hW!l{=@s126+EJIep?|#09MfS?OZV1vK~{@q*J=aPt|sOPI~&|5G->Jh0^v z$XJjlE`d$6_@yzftIPtPsCV7=jaxjAlik>Nk|7H2WNCY;v{^Xq1gIK-?+@4#2lfHD zC_-u|(L&kawN`3X(s|P{t=cQXH?X`G$5?K1=_+`{YS{}#Dxa|dqGsd6j zAqs0BJt=h&J}I*y1iKrggsy)+Dbi{foKJf&x{|W50Fgq|69jI_4`+fJAyEIfjozR> z{Jf+8FfQd}8=l+&!a8I6l~G*a%T1j6oFGF4wmhkdQA2{Xt6scbKZ}ftr9E2}@aiw1 zUqf8QKPvpT&SKPGBsEyJkcDNFNurw3V0hKM+RD81f(2IuJ^N@CrnWJ!r^9Cq*89u{ zYLcK@K&bz;IdPv$a>vOQ#KZV%dDnMg7zbGjEcIS!2j5MlBTy|pMr^>L@gRFVO@aQf z-HWj@WDBxj0pC|AFxSTo2b|lxKOuc08N|{{$Mn0sPBTi?PS1=G=FnBGm^ zSk20n`BCQf@PP9Ip!wF3!y!j=6v|hm(p@!^q2^}S^jBE>?iY&ls;`|IMx@5H$;#VrDHgDQ)G`?8D-vv|oK9MT>Lst7ZaX-%cFl<{O!4r-W9#~FhssK7A0 zJK_kMU-1Qza8)GR5(NbGOKUlzkgi>1(Z58elRDRA870;eX*b$cb=>*o z;;XH4vtu|v8t$>H^AdV`fe2T8*r9QO^N#P>a?m^W21)cQNNdi=$PrWr7%lX4~pEaXiz-J@FcL>dUUS(Acg<2UC z(j`p`pPc4G(8J6)%`~D#?WCIB87}hbi-e}`f+LjjocraAuLy>c)RxqC$2xQF45|#_ zpm`~d(UW<|BBxXj4oZiPjLv>!Le8IQ?;(V!(QAR!^yAlXPBH?S0<&b!;FC#3eaMi1 zQ29P9vEkLSMHp(Pa|~h)?DK2BiWi@JT)D@=-+i+urU$@2vNaji}ZPx7~lD0~uL!VVE^FSQNKMu(l^K+#&_~a+5 z46#pS4usWc%@Cx|PKFH7>P=*W?rxj#FZmCa;P{`QXdC>Xd6i&}@q`N}rHah-P`zVo zRq{CF9dx3C;;X*zbMHzT7wS?NO+E%uo;;ihC)u6yV^Q7E9;)xsL*1L9JHjqILGU}< z3#I0Cw|Df{MW7C==T4gzW7mBG@-_E-{o%~70(2nJylv*^oCFkA6Ci94h1!xE3bO@l zt|;^s=SAK-iviJUNOsusYcaVWy9%Da^jK6!9}bb+3?*xL;6lG0Za%rU64-?Xv;C|} zD&Hl_;s^_La1T`8smk?V#!5`yzbpoEdLG( zd^L_03`>m-ab8O{*k`{{oh3&GJscAS%{7+iKseOZLPTiPnWzd)tqyy0F`itYc*9sJbNdMnZ_ELlfs@O^t>VYoqTHC#)RD!6Szp`Y^+U zBBWK<|8VJZX;aFTUJG`5VtjrUO~zXDws`g+G8&q+^DqM=6N<3CZP2LQm)c2qcKv^n z&)qVc78bNwb`2$cyi_FWdXUglcNG5SR#t(tWfpz8(Ifrl9kjIA#cxt@as`Harb5As z*w8D;YbSv~fW(nOQXgHII(k3A<59P!agjvWFX+Gg7KffulJ9lJUe~qO^}Br>4Z^ChR4~A12PRTUq6G_gE~6b7UmXC-Z9xO*U>;lu_Xw$)vJ^`Tv1kj!1FwzV z@uH~#5U_Y?ubPKD*#J5j$)WjZ6{OVa*!GUDI*?XpaxAg$w}WG6dyMCLe)D3E3csIX zQYdW!Q_X^W(^7q4PBdMx+jVyQXLpY&eh*kHVm&l&05lnozQ#?@vcrsBKs=Y+^?3B# zg_ZB(4u?Ft=zRc8Ra& zrFp`UW5at)?p(Y!X=d4(^o-@^eckxlVvr^dCmy%k^?di%@?yA3MFEeE(bva-Nvslh zdm;Nqu;9o35>7PLr6iU#m`*x`WA4&G^bDlXglil5ED#qUI1-X{DR9rn+l~Vka*rVE z9GG}-_p*aB<4#oM;X&2*GDr+Bw`^=Um>a6-`#~Ozfr|p~?4IhrLf%mBh{3U0ndi6M z8!sA24)KYpJsi^YM~xL+9XDOJT5J%u=v+jvw=~+wuaKo)Cy4#6eqw>1^3mW>qr8tT z)5Sa0E`I*uBd54xp$JZFr_mVb@w@&v1d9cpzjSUu%mv26?Vga%Xy&NhF`AU>8u=@% zu64_N2t+U^i*BpCP~>~TMD*h z2bxHrEn)dSZ7mfQEl55p=XdNK!L?%MA#<|9{PSmUw(%WA`c{5hyOSEpvP!X^Jv0}J z6$U@L?&x&f&gZv9iPwWeF~&FE?|IO>enGK)Wxu7TTio`hhaKVvF5IyyROmRE+t&$K zuvfg;_I>x_n$Smk2*4H2ZoYU4ss5Qjr{{7ABY2_>Yr>QsCD$Jg3HvSP7b2my{%WoE z%Vj0syAN)ZHB_Cs_P`yX0xg+y9m$dA&7Q>iV=;JKKt>}<+H)V_kTFZ_;XRnd!`as8 z*uuCw??(j2lTYR?Fk4A6b*^onoYhlYuC>6>E84;Av_Xm2D|M06B@6d`SMh#gAX(;$ z-GgikI2pw+@L7!jnSo+~heJqCn=KydjCHM0JD=IVOk?wm8#~>kR~t8lNIpz6Td7A_ z`p#Fz@T`GB^XJn=3ys{Si}{NmKa`aGt-EjMPCQAOjB?bH#Z`F1gqMmWpC?oWEd2Xb z?eU$t9ebXrnjT%S$Emix$I|)6sK0X!O)u9yEZG*)TKIWX*xzY2(*oalRW{wQ4Vmh- z9|!O~sLLUe&-3~SH#QPbw3)l>R%^th@L#We z-xb4UyisCF>%4`E+Pvhu3Q8M&lPlTMMziB zs|+;H+KA3jmoJVe2-;T?6*=Yj$M%Mt-)H)5B!12-Ik@A8L|S)tPFu_)>q~bo+nw51 zbg)tDw~xjJ-$UP9%P@s`z$s)cFrmJR2%hj@CtKD%X8|oN? wcly624u;47pg2?r{Ers@8%+3r0maVoO(naUrC#rk907j@tBmy$b#0IQKasSgIsgCw literal 0 HcmV?d00001 From 52ac7ab55892dafce73a6aaa943dfc94e1baebec Mon Sep 17 00:00:00 2001 From: Liam Monninger Date: Tue, 22 Oct 2024 16:23:24 -0700 Subject: [PATCH 04/13] feat: embed fixed supply rewarding problem. --- MD/md-38/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index b854fc55..04a17dbc 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -5,6 +5,9 @@ ## Overview +![Fixed Supply Rewarding Problem](./fixed-supply-rewarding-problem.png) + + Using Fast Finality Settlement with the Atomic Bridge presents a challenge when the token supply is fixed. Naively burning token on the L2 without a way to return it to either pools on the L2 or the L1 will result in a **deflationary token**, i.e., the supply decreases over time and eventually reaches 0 rendering any operations relying on gas impossible. Meanwhile, providing minting capabilities which involve the operation of fallible services can result in **either a deflationary or inflationary token** and the opportunity for **byzantine attacks**. From 1b7d2477007e19503df9af19524eaaaf602168bc Mon Sep 17 00:00:00 2001 From: Liam Monninger <79056955+l-monninger@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:28:38 -0700 Subject: [PATCH 05/13] docs: bolding --- MD/md-38/README.md | 34 +++++----------------------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index 04a17dbc..a27d1181 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -14,45 +14,21 @@ Naively burning token on the L2 without a way to return it to either pools on th Namely, in this context, trying to use the same token for both L2 gas and L1 rewards requires that the token be bridged back over or else rely on a trusted signer to relay the gas. This document outlines the challenges and potential solutions for this problem. -Users of the Movement SDK should be informed of different approaches and trade-offs when using the Atomic Bridge and Fast Finality Settlement with a fixed token supply. This document provides desires and initial conceptual framing towards that end. +Users of the Movement SDK should be **informed of different approaches and trade-offs when using the Atomic Bridge and Fast Finality Settlement with a fixed token supply.** This document provides an initial conceptual framing towards that end. This document also seeks a response to the concerns raised in [MD-20](https://github.com/movementlabsxyz/MIP/pull/20). ## Desiderata - - ### D1: Provide MIPs for Approaches Presented in Appendix A1 and Similar -**User Journey**: Developers can reference MIPs for different approaches to using the Atomic Bridge and Fast Finality Settlement with a fixed token supply. Developers can also reference rejected MIPs to understand why certain approaches are not recommended. +**User Journey**: Developers can reference MIPs for **different approaches to using the Atomic Bridge and Fast Finality Settlement with a fixed token supply.** Developers can also **reference rejected MIPs** to understand why certain approaches are not recommended. **Justification**: Developers need a clear understanding of the different approaches to using the Atomic Bridge and Fast Finality Settlement with a fixed token supply. MIPs provide a clear and standardized way to document these approaches. ### D2: Provide Staged Approaches for Networks Building on the Atomic Bridge and Fast Finality Settlement -**User Journey**: Developers can reference approaches spawned from these desiderata to understand how to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply in stages. For example, developers can initial roll out a network using the "Free Execution" approach and then transition to the "Noble Attester" approach and so on. Some formats may be more suitable for certain stages of network development and release than others. +**User Journey**: Developers can reference approaches spawned from these desiderata to understand how to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply **in stages.** For example, developers can initial roll out a network using the **"Free Execution" approach and then transition to the "Noble Attester"** approach and so on. Some formats may be more suitable for certain stages of network development and release than others. **Justification**: Developers need a clear understanding of how to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply in stages. This allows developers to roll out networks in a more controlled and manageable way. @@ -61,13 +37,13 @@ This document also seeks a response to the concerns raised in [MD-20](https://gi ### D3: Provide Additional Software Necessary to Achieve Accepted Approaches in Movement SDK -**User Journey**: Developers can use modules from the Movement SDK to achieve the approaches presented in Appendix A1 and similar. +**User Journey**: Developers can use **modules from the Movement SDK** to achieve the approaches presented in Appendix A1 and similar. **Justification**: Developers need a clear understanding of how to use the Movement SDK to achieve the approaches presented in Appendix A1 and similar. This allows developers to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply more easily. ### D3: Provide Guides and Software for Genesis Procedures and Initial Conditions of L1 and L2 Networks Using the Atomic Bridge and Fast Finality Settlement -**User Journey**: Developers can use guides and software from the Movement SDK to understand how to set up the initial conditions of L1 and L2 networks using the Atomic Bridge and Fast Finality Settlement. +**User Journey**: Developers can use guides and software from the Movement SDK to understand how to set up the **initial conditions of L1 and L2 networks** using the Atomic Bridge and Fast Finality Settlement. **Justification**: Developers need a clear understanding of how to set up the initial conditions of L1 and L2 networks using the Atomic Bridge and Fast Finality Settlement. This allows developers to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply more easily. For example, one common approach will be to generate an initial supply on the L1 and run a privileged bridge and voucher swap exchange to the L2 such that overall circulation is grounded in the L1 mint. From 1ddd68b67473707d6b2835bbbe2759dc6d1dcaa5 Mon Sep 17 00:00:00 2001 From: Liam Monninger <79056955+l-monninger@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:29:10 -0700 Subject: [PATCH 06/13] fix: typo --- MD/md-38/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index a27d1181..1e597937 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -28,7 +28,7 @@ This document also seeks a response to the concerns raised in [MD-20](https://gi ### D2: Provide Staged Approaches for Networks Building on the Atomic Bridge and Fast Finality Settlement -**User Journey**: Developers can reference approaches spawned from these desiderata to understand how to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply **in stages.** For example, developers can initial roll out a network using the **"Free Execution" approach and then transition to the "Noble Attester"** approach and so on. Some formats may be more suitable for certain stages of network development and release than others. +**User Journey**: Developers can reference approaches spawned from these desiderata to understand how to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply **in stages.** For example, developers can initially roll out a network using the **"Free Execution" approach and then transition to the "Noble Attester"** approach and so on. Some formats may be more suitable for certain stages of network development and release than others. **Justification**: Developers need a clear understanding of how to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply in stages. This allows developers to roll out networks in a more controlled and manageable way. From 0d8ca21a46c37eaef6149724cdb96f04189501a1 Mon Sep 17 00:00:00 2001 From: Liam Monninger <79056955+l-monninger@users.noreply.github.com> Date: Tue, 29 Oct 2024 08:31:44 +0100 Subject: [PATCH 07/13] fix: double d3 --- MD/md-38/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index 1e597937..61c80291 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -41,7 +41,7 @@ This document also seeks a response to the concerns raised in [MD-20](https://gi **Justification**: Developers need a clear understanding of how to use the Movement SDK to achieve the approaches presented in Appendix A1 and similar. This allows developers to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply more easily. -### D3: Provide Guides and Software for Genesis Procedures and Initial Conditions of L1 and L2 Networks Using the Atomic Bridge and Fast Finality Settlement +### D4: Provide Guides and Software for Genesis Procedures and Initial Conditions of L1 and L2 Networks Using the Atomic Bridge and Fast Finality Settlement **User Journey**: Developers can use guides and software from the Movement SDK to understand how to set up the **initial conditions of L1 and L2 networks** using the Atomic Bridge and Fast Finality Settlement. From 83fdc18cbb0e9f136db53e02e2bc22a1eb1768f4 Mon Sep 17 00:00:00 2001 From: Liam Monninger <79056955+l-monninger@users.noreply.github.com> Date: Tue, 5 Nov 2024 10:07:28 +0100 Subject: [PATCH 08/13] Update MD/md-38/README.md Co-authored-by: Andreas Penzkofer <36140574+apenzk@users.noreply.github.com> --- MD/md-38/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index 61c80291..db3aedba 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -12,7 +12,7 @@ Using Fast Finality Settlement with the Atomic Bridge presents a challenge when Naively burning token on the L2 without a way to return it to either pools on the L2 or the L1 will result in a **deflationary token**, i.e., the supply decreases over time and eventually reaches 0 rendering any operations relying on gas impossible. Meanwhile, providing minting capabilities which involve the operation of fallible services can result in **either a deflationary or inflationary token** and the opportunity for **byzantine attacks**. -Namely, in this context, trying to use the same token for both L2 gas and L1 rewards requires that the token be bridged back over or else rely on a trusted signer to relay the gas. This document outlines the challenges and potential solutions for this problem. +Using FFS-Postconfirmation requires a reward scheme on L1. On the other hand, users pay fees on L2 into an L2 pool. Namely, in this context, trying to use the same token for both L2 gas and L1 rewards requires that the token be bridged back over from L2 to L1, or else rely on a trusted signer to relay the gas. This document outlines the challenges and potential solutions for this problem. Users of the Movement SDK should be **informed of different approaches and trade-offs when using the Atomic Bridge and Fast Finality Settlement with a fixed token supply.** This document provides an initial conceptual framing towards that end. From 16fb6d4941ee98b8d615f132addd2ecc0cb9155a Mon Sep 17 00:00:00 2001 From: Liam Monninger <79056955+l-monninger@users.noreply.github.com> Date: Tue, 5 Nov 2024 10:07:37 +0100 Subject: [PATCH 09/13] Update MD/md-38/README.md Co-authored-by: Andreas Penzkofer <36140574+apenzk@users.noreply.github.com> --- MD/md-38/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index db3aedba..9318ad76 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -10,7 +10,9 @@ Using Fast Finality Settlement with the Atomic Bridge presents a challenge when the token supply is fixed. -Naively burning token on the L2 without a way to return it to either pools on the L2 or the L1 will result in a **deflationary token**, i.e., the supply decreases over time and eventually reaches 0 rendering any operations relying on gas impossible. Meanwhile, providing minting capabilities which involve the operation of fallible services can result in **either a deflationary or inflationary token** and the opportunity for **byzantine attacks**. +Burning token on the L2 without a way to return it to pools on the L2 or the L1 will result in a **deflationary token**, i.e., the supply decreases over time and eventually reaches 0 rendering any operations relying on gas impossible. + +On the other hand, providing minting capabilities which involve the operation of fallible services can result in the violation of a constant supply principle and lead to **either a deflationary or inflationary token** and the opportunity for **byzantine attacks**. Using FFS-Postconfirmation requires a reward scheme on L1. On the other hand, users pay fees on L2 into an L2 pool. Namely, in this context, trying to use the same token for both L2 gas and L1 rewards requires that the token be bridged back over from L2 to L1, or else rely on a trusted signer to relay the gas. This document outlines the challenges and potential solutions for this problem. From b29ace0b9e13f91da031b0d42899b3fd463119ec Mon Sep 17 00:00:00 2001 From: Liam Monninger <79056955+l-monninger@users.noreply.github.com> Date: Tue, 5 Nov 2024 10:07:47 +0100 Subject: [PATCH 10/13] Update MD/md-38/README.md Co-authored-by: Andreas Penzkofer <36140574+apenzk@users.noreply.github.com> --- MD/md-38/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index 9318ad76..9b988c5b 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -1,7 +1,7 @@ # MD-38: Provide for Fixed Token Supply when Using Atomic Bridge and Fast Finality Settlement (FFS) - **Description**: Requests for Movement Improvement Proposals (MIPs) to provide for fixed token supply when using the Atomic Bridge and Fast Finality Settlement (FFS). - **Authors**: [Liam Monninger](mailto:liam@movementlabs.xyz) -- **Reviewer**: Andreas Penzkofer +- **Reviewer**: [Andreas Penzkofer](mailto:andreas.penzkofer@movementlabs.xyz) ## Overview From 2a4f9dfa072aaad8b9ba9fe37902d21c011a5a53 Mon Sep 17 00:00:00 2001 From: Liam Monninger <79056955+l-monninger@users.noreply.github.com> Date: Tue, 5 Nov 2024 10:08:32 +0100 Subject: [PATCH 11/13] Update MD/md-38/README.md Co-authored-by: Andreas Penzkofer <36140574+apenzk@users.noreply.github.com> --- MD/md-38/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index 9b988c5b..1afe73c6 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -47,7 +47,7 @@ This document also seeks a response to the concerns raised in [MD-20](https://gi **User Journey**: Developers can use guides and software from the Movement SDK to understand how to set up the **initial conditions of L1 and L2 networks** using the Atomic Bridge and Fast Finality Settlement. -**Justification**: Developers need a clear understanding of how to set up the initial conditions of L1 and L2 networks using the Atomic Bridge and Fast Finality Settlement. This allows developers to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply more easily. For example, one common approach will be to generate an initial supply on the L1 and run a privileged bridge and voucher swap exchange to the L2 such that overall circulation is grounded in the L1 mint. +**Justification**: Developers need a clear understanding of how to set up the initial conditions of L1 and L2 networks using the Atomic Bridge and Fast Finality Settlement. This allows developers to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply more easily. For example, one possible usage approach could be to generate an initial supply on the L1 and run a privileged bridge and voucher swap exchange to the L2 such that overall circulation is grounded in the L1 mint. ## Errata From b220b2ff8266b312af11674d244d79d911508ec7 Mon Sep 17 00:00:00 2001 From: Liam Monninger <79056955+l-monninger@users.noreply.github.com> Date: Tue, 5 Nov 2024 10:17:20 +0100 Subject: [PATCH 12/13] feat: argument of no-action --- MD/md-38/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MD/md-38/README.md b/MD/md-38/README.md index 1afe73c6..921896ff 100644 --- a/MD/md-38/README.md +++ b/MD/md-38/README.md @@ -49,6 +49,11 @@ This document also seeks a response to the concerns raised in [MD-20](https://gi **Justification**: Developers need a clear understanding of how to set up the initial conditions of L1 and L2 networks using the Atomic Bridge and Fast Finality Settlement. This allows developers to build networks using the Atomic Bridge and Fast Finality Settlement with a fixed token supply more easily. For example, one possible usage approach could be to generate an initial supply on the L1 and run a privileged bridge and voucher swap exchange to the L2 such that overall circulation is grounded in the L1 mint. +### D5: Provide and Argument Agains the Need to Resolve AB-FFS Fixed Supply Concerns + +**User Journey**: Developers, exchanges, and users can understand why the bridge can be assumed reasonably secure and inherent fallibility is within network security contraints given a set of assumptions. + +**Justification**: We can argue, for example, that many other bridge services use a trusted signer and that said trusted signer is uncomprimised is a fundamental and acceptable assumption. ## Errata