From 4dfd1d892d8bc64010d2208f92c31228facad5bb Mon Sep 17 00:00:00 2001 From: Konstantinos Lambrou-Latreille Date: Sun, 16 Jan 2022 14:39:19 -0500 Subject: [PATCH] SCP-3272: Additionnal documentation on different ways to setup the PAB. * Updated existing documentation on ways to setup the PAB * Added additionnal diagrams * Provided diagram sources (created with Dia) --- .../hosted-pab-browser-wallet.dia | Bin 0 -> 2436 bytes .../hosted-pab-browser-wallet.png | Bin 0 -> 17101 bytes .../hosted-pab-cardano-wallet.dia | Bin 0 -> 2825 bytes .../hosted-pab-cardano-wallet.png | Bin 0 -> 22166 bytes doc/plutus/explanations/hosted-pab-wbe.dia | Bin 0 -> 2277 bytes doc/plutus/explanations/hosted-pab-wbe.png | Bin 0 -> 18102 bytes .../in-browser-pab-browser-wallet.dia | Bin 0 -> 2546 bytes .../in-browser-pab-browser-wallet.png | Bin 0 -> 18203 bytes .../in-browser-pab-cardano-wallet.dia | Bin 0 -> 2900 bytes .../in-browser-pab-cardano-wallet.png | Bin 0 -> 23667 bytes doc/plutus/explanations/pab.rst | 78 ++++++++++++++++-- 11 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 doc/plutus/explanations/hosted-pab-browser-wallet.dia create mode 100644 doc/plutus/explanations/hosted-pab-browser-wallet.png create mode 100644 doc/plutus/explanations/hosted-pab-cardano-wallet.dia create mode 100644 doc/plutus/explanations/hosted-pab-cardano-wallet.png create mode 100644 doc/plutus/explanations/hosted-pab-wbe.dia create mode 100644 doc/plutus/explanations/hosted-pab-wbe.png create mode 100644 doc/plutus/explanations/in-browser-pab-browser-wallet.dia create mode 100644 doc/plutus/explanations/in-browser-pab-browser-wallet.png create mode 100644 doc/plutus/explanations/in-browser-pab-cardano-wallet.dia create mode 100644 doc/plutus/explanations/in-browser-pab-cardano-wallet.png diff --git a/doc/plutus/explanations/hosted-pab-browser-wallet.dia b/doc/plutus/explanations/hosted-pab-browser-wallet.dia new file mode 100644 index 0000000000000000000000000000000000000000..b182345b362d62eebc726d6b0b33b1bbe60dafd6 GIT binary patch literal 2436 zcmV-~348V*iwFP!000021MOW~bE7yGe$TI<+^>#;E(kQ9WU70rruJcLW~+9#wsu}z zvQccdF?a#T$vo_DUkOMYWAFtKxvbpPcA3cMNJ8iPj*fK1k3T)GLhC^!X%I)ZBM9t~ zC8Bxk2hrko^pD?vx%Ngs-Ch0Y2mA;5f06K&C4Uj6>f7yTnPuxAZf>^QEeM}dp2Z0W zgAGW<&3}0q@*7#`W^{LDS+527JmczGd6j2b63jN4up+(^x1$-Ke_tf=Ch|u`sj}QW z4&%gn;Nk7)%YFG8-IRiE_9PvVzUB)tO9cPkEZmka#@Y#Ai=--ewT{z37RjF02Spm> zsP|W8%2KH;6fN$)d?jCsDwP*@vg#_@s3cqQWD!J%dSvf}MOPr;A%tXiILu?VOI-Ne zCzq?64XZ93R$Vfzx*(md<0MOXkR7U=#c?QjRA|kTjcBhYo%2u*v185Z(2DyY%iNNBMMe370Q%=={;BrVHgH>di&TCQW) z_(8f3`P1IH3WPOGWYQ-(s#A{+ID~fCeco z^EirRbEFq~y^f`|rv0cqcO({oV`pw?AgKF`9VtZJHv z{nR9SHmgcbR5PPRC<^HmFlX$^w+X_)cE-q-@9p%7P^_l&IEfBDkHCDVPvsG$tus((AmxJ-$%!fDOi>$LG*qNTXI(}erMCT;F1 z8?+okYwr8|4r^bMGx3;>PIw5FGEF_5Puup&Rc3e%^SdL!+T>x!QC6o&UAOL~uNpqd z`tT?nS!wp9pi81o@zcME@Ihq3oWDld%WH686Seomv-e-5o6>zetOF6~j3EJ(5!g*r z)hHVS3by^)Fx#k-Ud$p|iTWEVqRpzt!97OBb1J)}ck`u$fLWqo0Ci5Uacl?HJn8 zNIRaQ9cXB$H`@8T1aO}xzGR)>l^ML+U{=x&=}bH7rs<>|2T<3QOn~Ibz<7defDv-k zNbzjyzJJ{Kmc-jsB-YhNy~}~el;iPFx zNnWL@t?a6T&NIN>u7dQy?4JK(EhSi$<1>qMm)P3cJD-0rWsu?zb6^{&dP^Q3Zb2MUh2x*rnxevnd3?{sL`%XNxGS-d<8LTjfnk(RB2Z~4%>P| zs))UWR58s%s#tSKwL^>E+|&9TA=Q2u`*Va;|MvBp34>_gm4e3*0@p@{`v+UhbNgT( zM?3T6OM1`L;|)MPj-ehyJ?~>0y5vD*1(7cv4FwHBLDW!?o`t=?29cyw^HqY{F7)O7`RuubYkB4^8lGuRSZa$Mm z#=RWSy@Z`lLr~dL6zB|cUD5KgI;|W7u@( z1X%=i+qBxr=qM$SGC09@9syF{J!~`07JbmV`h|mxb1}Wdm@7cw_HE05 z1dBiTqGHj{yOUw(Ou?5)lh#9AJVnrK42yGIq)JDsL`9glrQRf4PET5NUF(`lp`&47 zS^tX)T-=&C3HB#}$0mR$x14s~g~m5ooWz^D9d3PX4m)QvEith8RcP7DD7Ga*@jl7-)M-XiGDmWSYS3 zm27?R_F73_0B7*OfBc8q37{bn8FtRPgJ|sPM13@-5?2{@CldHw;;Mt4pySdHkaXjJ zU9T;bf1H{nDeY;;d&BT^tV7xFC*c_PkUDY(8g;V^lFf3Xp@k8K? z#K4jEy_dwm(Z`3Q&Itt&wx7+NZ zz?jr9fe5(8qhDM`-al;oDh+yU{Y$#u@WGNm_rCb zF2tB&n+}L44uR%aT76Lwd&nhnI?xh1f*%AGVV(ei5P}LDJ=|X7TO8EA0k@`ZL$Ifrq5Ecz{A^%lRG!&_ycrh&_*efJc!0 zQ_QSc;oTUwW`Kw1F@P|{<}`}8d+bORnTqcre-g>vRq;jsUnG2WclAF?fw1O#j{pE3 Ci@^y1 literal 0 HcmV?d00001 diff --git a/doc/plutus/explanations/hosted-pab-browser-wallet.png b/doc/plutus/explanations/hosted-pab-browser-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..dc791b637d9b0e8a4164df2bb8562a1da7374334 GIT binary patch literal 17101 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 literal 0 HcmV?d00001 diff --git a/doc/plutus/explanations/hosted-pab-cardano-wallet.dia b/doc/plutus/explanations/hosted-pab-cardano-wallet.dia new file mode 100644 index 0000000000000000000000000000000000000000..df3f38eee97a11781a1a3bf275895e23392dd403 GIT binary patch literal 2825 zcmV+k3-3ur;}u-vpdr^JKJVD(-#dS z!V(*b)RL4hec0c=043WJMe0HljO9X^*pUL^5ERb$9eg+k`u>N9dF0&5Gz*jXW&m7o z;K+EA1YtbA8GQNe$4fT&;r+$;K`6dcf2XOKJL(;Ark~vmW_iB&?&|9P{@#rqGm$5$ z8-+_ZlUM%}Q6#QZqpQLD3&+{)AP~9GudQDdd7g&jWiFjq%;n8sEGA#4X|jxi!K&4| z-6V;U)VUMU&EVbb`Z2g#cXYMY)1KZJVk*a}6kqE*_tb;)W}Po&TJCthNU~5h$sZRx zO=|klKR4Q}TV<+IJbnM}1Ae!0`vvsqp zL-)PhuH~%>!fX+V$NfVnH>&AN#CfPNOk^_X2x;n|G8T)=Jh?34gaJ%m8%oB1%86n4 zpC$J_3`kp&E13mEc1~0L=ip0aQ@yEJV8@q> zo4C4FbjZuDxqF}Lx*m_qJ*Rq@@idaF-igcoAyYrDA#y!`2tD<)nLQcF`Dl`)@ot3N z#c+!53xeAn(lfb{7JbiTIGyEtItR@<57pF4N85x^K^c0P2HU?mTg<@N-MmY_1zv|t&6ae zIIl9KUw3X*tQtM4>k)A_aI*YSLzhCG)m#55qdS?06S0Z1r(eO2PgH&;%-eq8c1E}H zunI(gKLpq%9D{b2%1&7;D0tqcV>U6RqL^tsm(?GrjF#PTg{0K zv?Vgghs+?8LCs=As;LYYR0g0v3zQjj?c;x4xw)GY`7s_;AzX`m?RH|+--*=B1F!fiQd{i*o|iHNz3DEfgeg%Df= z&*jK(VY5%v_+3Pi%>RDafqXVF$txTkJTD9d*eh#U+(}qw-Srb^DS} zknOnH)BiX#g-q)SnkPjt?7aMMmF}?9Yc~Msp8)_;mw1e>Fi!{LfCHrW(74C=>&L)< z2pNcInGKytV~2BbUx4D!k@>{^hS11%pz-qaI12x}o!nvyA}QoP#tIz)LL7OdpYRI1 z9tPAxq%nx}&JH3E>lCCdMCu)XVh|rS6e<&bA-aP?bT_S4v>4JcYK2MF9a?eX6mjD9 z6YS@OOhvB#>0D%wSuW>xyHhx$Y?%N5P-MSXNbAd0i;x)Fcc-mog7(%^drf zU8~<7(Hc4}em7kw$MHzU!A=qRfzeeofXeMS)tBc(jGA4Jnqreh`6{Xoqc};;h=Y+x zRg79cqakeB^(d0@be}ZSc>Vuk;(+*bw1q}~Nw)oRcPdo87xa}UQ0LR2i_iv{^l9o6 z!hv4y>6~5WBII!`Q+uSTc6Yo-Z;!1;FgM}H$e14^>&B}uGOBetO)&txey)QKA0<=2qA(D#QBxdh>c^37c4;?Vje2q(GGQtRe- z?6{2z;QO9OIc1bEpJHHeqXM};!i+QQF#w5LhcvSlDUvztyr85ggBHg0T4TAlTyA#- za*C1LFp7>aQa(NMHSYHm_p4ay9wpxFJEg7TZJ&-NM4zI?ClytRIJt;d&}?^wOsf`< z=zT~!guo>}vC2hb?_@J72-36N zn2~Hb)`ykKL1RSh=#ZP%1(nD%nj)eCx~CKogk26eHlHNYd`QQ{Uf5-XBMLF0$b$p` zV3R}+C5d#y;cp{JuoxLxSE;UBm5*7}khE0#UJdT^ZqOuDWS@qOKSZ@ha|BSWp<~Qs(EgZ6~40Mz0 zF`ztk>jBST!J*={Pz@k|aK8NKU;V=RJc*NRAtrJc+dn1CG?eMv6eNL*it0>=-(IG= z*Pk9~_l&N(Oz^ME^B|q%c{C=eV^cji@(VkJ`K%~7BN!HIIDlav$sSt+tl>GA`L8H- z>zHl5hFu3Dn;p*fC@rpl$=nP8w(~2zQ*txZm2JHl^_64Qy2kTa>N1&VrHlZNkRs6v zbAGL!Q^JbSw1-rysv+)KPWk7RJZY1z4mmbzlXa!m9tP5`j!;5d*UcfKs0~1)`*X?$ z)3tNO4joorP6;%xgti>naY`rzxP!{%ztiETRteqs+S@3J|4N)V32fPsc_oy)KG4*S ztP*Obw!1F;Y+b#mvpR_0JtIcX15{=hM@97xU>?2J41zpVm?a#U4nQjhS;=dPO;^HC zQ^K)f=xYr_OMxUiDGFuZsE7x89e6k+I&TXY_HPf+VR6(kM1_At4)uZ)pr!{ooZ{a* zL#*@e;#g*n0%+a)O|LS~#Jxcm`RltR5R7zUmaf$^?AN8SRi=tI9lUkq z^Qh4~&5u!Soo+X7{6{$bLrhD~{8Xt2TUY8mFQg2Ab16oU>&khZKBr6)WfH;`9-XB5 zY;>5WD@Iq}YO^T4^2<<9YH;#sk~G|2817pX9xSzLy+V8iXx8LZNe58 zzgd98>SgpkzzucswF4%BO(U5;O+aroGk6WL3xJAMATo|@<)Kx#fP449AU>^uMYL~; zXjv}O+z_U1^lc8+HjQ+JYZms+e}w|->0CV6x)KDyq1gkWhQvjb6ROXGqL}LMFa|y) zXHa4ud{``;Wv1@A-JCLhCf?RGv^ks|pN5CJ&2g+lBfq^2ZWN7F_fKeqm`l-_VbLN@ z?!rK(7LJVXm17G>=MP8iQ?9`fnk+-o{UaB9KEEzZDKzr9{R#$q*iLEUSpa(70JL9| zqg}v|$)f?+`-a8ofQ2T9)|#C8-GzcvYd*89{`(A7Perv5AqO2(O5c4VKjT<)}%1Dc=-nelKcH_oP zz5928UtD3&^?|-6Jhx^`eJjb|9%MX?`Gy zq~Vn-?er-FrLQZkI+Q8bMz zfn~UFQ^{mlGJFmOvMd1`?A5`1cYD|a9*f?m{LhE@OV%KhG!E>X;ss3L=S>HU6sjPT zB5rK6?+Zkfm_`SiHpD^W?BN`qVZcLQS_p_ieiQ8B7ql=@{E}sjG4}BBAd^NL;%@s6 zc3J%FNj*^!XUYI&zy5;DVsY{&w#^(-D5Y?a2{R8i^#Xf%N07;p3`|TH_){&&Wib?+O@W-paKPaDy>% zP#1f+-@}fxcJ^>n#V9fd;%=D^_89DrvkvxfIxEO3O9#8=(;%ld_VCFHVkKa{=X&-> zHQSMi)lwcLK^(KgnI*(Q2k|DvCXr^6PlL)whXvFaHrC%ag&!qWy*_T9lcpdLh2ly8 zEdnEGdD!vAj93zA)Yr+II6Z7K44982(ksn`m?BTj79!x|zUSs`Y-7H10g8vScd)aP z1Pu?dhZ}dWTR#or_#u;D0Q51;9xfSVA`bN1xH46t2sYt-k^-37?5U)m6J zS>IMNkL1FxgS{CnC|tQm)SH#oKpa#K;b7WNHX)AUPuDY}Mr4zZgz%a~ufW8W%=^ZPEJ|q|(#KJ~s-J(z(vvz}cH! z&C%tfwd}!pD?4_>N=FK=YX|!TpYRbQ#TaZP{8BN+G9!FdQz$v=xyj9Qc+b1}#%sMn*+gqY}IN9`@>6j`izz*Um zx#TpET;v^jvN{-Kg8lYf_lpVf14ZXud8-}=-VxK^_5DmwIEtm)D16I2rQIwm6`#M zs6_f|c1UMTE7d*c3cM+KxXX6^bW)Ku&+XM4i@$fv3ZN$vBdMxpr46NACpf&yMx>j* z(6BfV_s;Ux@dOP+WQ7Y~$1tuj845cNZ`uDSz^Gs<_ z>!5I{{BOMp{Ph3FfALk78Sq1I5sH2>dVwD*IvRB(`2ru4K#FpVjQ~?ZcwK7pq4U}R zNuX#JgEHkSA`i;7^KC}_(7A1?7wnjU%ZiNQqR^DMEzW#p273t+)o2w4d^c4U{N?;E z{Y=I{Q75L0Xv_%FEag}DRH@D-LouRRwegqIfs$FuU!G%9a%eH&BXTLePB8#|iUC5w z45XqsqApHX1DZL<0ExaSt`p7r!TbA(H`Su|2UD2vL%m0$)NS!G14FYO$AAMxDM3Ip zn7wtM(wOiukEwfsN0d3@(y&l}pnnU5>PtfiFat%MOMuzNfYA@2o&+wV?^6DAnH4pH z|8W=4EYO-X1ZV>Fg>K~cUD121a~m=Q2)^BSxmpYq4s>k5a=OS?NnFaSIIil82-0R? zCQ*sN%vjSBKcy9Fel7V@z!-%YlvW_*q{7a?>|cUZ6JDcHvabMP_Ii|zy@=+m%KLoG zrNReZPw20Uk(Mc-qQevwUKmJ>(KL* zLuqGL_1ZYUJ}J~?Kor0|A#si`OhuhDx-hZsW3a|Ck$i6xGw;Eo4YT;>Cd$Xn?r` ztEr%3gck$OYR^LgU%)+^PJMX2b)gaH)=*>9__H4b1{|8#?4zgc_p7Ex2xH&Pkrqr7&lLe7gPSsBTDV}JmRGgr!xk$UwM6bCv2KM zGZ5*rxa{r^Yq~Uch;*)7=t*k$?|QkCJA_&2az^QY@*wRgsOikE@DlNF2{6@CPs7)9~Ck%YRD{{&2Unh zkQ}9N>%){Cls2Ox>Q4|OtTyGSD@rL*h;XO*&BwcY3LE=$*m};yoH9l0TA@^5DXc?- zuvh8T6o)z-S+R*FpU58Ty~5RW_2Z9=JnmcCTauM&k>&C;eI&ptkY2h$Txhtb_`%U( zZmy9*t(YLEnLpWkH#z+SO3veKy@;_(FIH~dBs&@z0p@TQM(Kc^Hb%s3_ACIydR}vZZTgd}oXAQeewyfx!7 zV3_Xx>P*2NQbYUqnY*vySG8(irbNzx4R#Mf#f5) zigPSmo`QJz*vjedbZ>tA-cL~DownO8s}-JUjj|q1B4F5=U$O)@$I#U@DiwKJdD@u zrma-|h+r;}oEb0NG$It+DAPSX%?K=L!6T&ipvLPOHZ=~|5JOt6e{6^Zd9R0L4}gJd zY*)vhmc&t1-Q?6fQLGLA)!bkAF|fFFg35N^y5uzj%oSI$$o#DkP9M%SXvN^$*vi=C zZzDp4GUm1E&KW0XwJHf6|lPO6`lg8+y>GT1=OW%>nG=?R} zEl0W>x3<21c~jRvTOxF65&Dov|7QyLnERLxwbjBzlcO*tOhS?LFnfGP)o|0UP?aL- zC!w{0KW&eA)5`oePKVVWkhJnLhV>LT5Nj<)m0+pvB2z5}5eo*$rd>73d7{6jcd_{F z)c^|@%Y^nOP|j4ZN2CR$Nnps>W{lN!Pe4@OJ5+^!f8{58C;?*%^KO?a#zM|za9Tw{ zAEL?z()Qh#Z^{02fAMm{+u*lBmxk=+Qdyk8r|%%;-1x-eMp5WJRzaxpIiU*w4oHb< zvNv{lk^MPezyi1imw>>9+qKB&{dvYNy&aFudr+vy7TrbE{QooZ6;DNPiOx|vqImw2l!AM<^H@G zL=-221z-tBog(Wh&2=$rH@57%C*5GX54_3^Yl_Ty_57~FEuUU2t6I^t&_NedVvH~h z3~51HxPU`~cWna|%Pf7y(&w7=b?`Rhj#{)z3y9}L;XK0fTM+zgv&d~vL09PGPsu&U z=cIn)gI8vD+Qo=fszNmEu&b~pyMpbfk}g^;Cd}@6QWe>i-ryUklRDcpPSI> zqcA3N%A=CR=@@6cM_Y`|6pOKv8vX|-n7NvJI8(l~I{G*Y_VUIs4tY-~d3%%4LFssA zotMIftbKP>m6NS5*q_2ZL93oO+am9q;DN%eq#PaYd?puBxs?qv$sEc|aO)i!mVz3i zduyFDH}U)gDMIA>gx62B30;|bI2zx($bK0?XkgB!aa(fZh{FxmE?rclL~8NVxboK8y8k9)?(s79KOsF1z>&Mt@vgcFq5elhvF1L0jha_zge(4u1GuM*!^MU7PvHSI#K8ZBfI2TS*($+S9fc;7g{X6w=1GX*s7~+cC4o6F#DsPhe?Ohm$YN*sUF< zDUMNa$0qLjeynq{$nNI(e8S{sa+lqwr?vI)D6J`wxS$s)Zxp+8{%2i+&dn)zoIL)u zE>r9kxZ@d%KNj3l@er9VG{z=dHZE2i<`gYLS`mk0zR!gvbYVgty=08~B*h;uecb=_ z7geTC6vzbQ@`LVS^C(@*fzdJTm*abpJ3VPXw#yHgHYmpYPqWp`L9X^vvTi9ub%jwp zl_sxgty`)ehPjB~?G^ThrMkY%lHpvK27hwXt2RE&I1c|d9P>4}bW@~9v*}goMc)dM za>Pl82<;2u!pXQ3eU$p_tvfeg+I8|MuM9gBcP^p9jRDhFw-^SOy}~0l01mXI&JCt} z3s$0+!w#b&MLcHJdD}ClD?f9)1F&@!JPUsmdoAR@weh1FQm`Fb$U5$1{o zp5er^nLl>1LKH0f1P<0!?`oc8Ertd#8>-Fx5%p%Gn`Bf&dQ6F6GyvQJpmQM|YEM^m z=mI`Issx$HWqcJDDkOW=)^=8v0^ul-Svlj5!qd#cfu9<52Ss%H;T&Al+jUM;`g%~v zHUtfuU8%$jz^0F<&Bnf*&=i&$Ic98_l``*0v|dseRN9#>*PFx@?lZ_KrIhzjEEg7R zsqMB!fow58S~|H=-1;xDb}o{L!Z%l5+62A>_fuD!@8TIP;+?t z(xira6eaELYskvY()#d-3c@6BG+6hX8$`-G1b=2yqJha$QG(p4Tov!>hus~%-onyq zarH1EnhQN2HglS*vMJu-Kyp=Mare6~Eor2*V!DmGEZ=1{qqVlZ{Y@AY@c>7&ZIM3d zho;iO#_mxyLH~9+A+U;xKP-7o6yc2`jT0HN%^7irrP8B4mItSSah#mx7LGS)sf=D% zGOk{~ubn%7;a7ldD$qM(67lt!I;N76gFn?QhxPCk)Nbshw}RDB7o;W3OC{@=>qHMz z@i+JrV&(PCuTdR|r~j>3!_v$I`i>xE$<;%upMN9BO{bbKccEvZYX5-G2z4~rWUTqz zvnoD93;PY!v3?`!F1vLnNuE7io7XEA(tz7;O8p}Yz+M~c-x}DY$JIM3|x)M?2Kztm; zx>7XXcNKDqdjiEtx}i5P)Ht30RKZBQ|7#Oz5gOi2eNi(>saIJq;sb^3%?=mn0Wvavu3&WbLzzLHJo`q_Z8^KI<2SMNRPj9 zIBsy@-kgnpb2aDs4C_JBI+1kPX?9)N&h4wcl9{8-nqcU~JKbr4EJ}i)Ql+Mbf=fXW zVS^8t=>_GW3ICmTi*Bx?g3E2ZDfUWVcfPLMGy4|3e==OX^B((0F zd$z5Y>%m4__EcP{_LOiw&ytv5`)iTG0iHaog9Q~;NNb}BO}urZ_(cB_p3Z{6r(ltm zJIN7d%?GeD^OLLGQ{5cPpLAbXI31iH)}whGG%I5p=NPCC8SqG^(jUfV(5WoQoci3B{$!CCyV0rMBu{!K>f#0Z_iQX-yE8HT%i()l5 zHm5i*mTrH_op2tXv6f1aSzs?tFDwk@y7absGLIDCxSkuYd;Lhs%HJrnv_x1Wzs0>y z6XU9q^~r26$@inpP9&UhvGGUEhdvd*ZN(xhaRhQQ>an30asO$0&#kEy!b3+#-sW2A z{FS82%V(2=sg_q)xo}+^h5EgeQ{DfK^GlZwwR|4j-|A{NqZ_!kH*-C83{BkZ8ew|e zvgXwO;>hHxxqqrG`fQKV*Qh3f&+FE#7OREXk$KTnZLJN@eBWY!z`Q0a+s1ppU{L4G z;P%BY-*(c*fxX0Mo}SKki;?wZ&s|b7I$b&#w3bv7GPum5L^`#UCJW|1P=Kc}^C^NK zFF)Mc-;w6)%uU~0i^a-o zfv9_pn=g4@_$UmWUCLZnb(fOMznR`0nD)bHV0q6uJ9z+;Aw7Y&9JKXwo*kzNDgCYN z(dzPrJ|gd9@+n8nqQP0hQEQ7S=UtqgzqCIbY**YmA@+Sb8<=9=xWE5G!8ovCgWu_P zq8+^se-TIg2ic{K4F%=b0+K8BcJ&?!hUoDu^ki&qFee93AK&ecB#Pee^A*jVHfgbC@%F(lYX1-TH(N>}v5{ ztv?aFsRlQGizi>BfS#DMmhxs(B3|YOU$W28Keo;C`-x!AX)v~7;SN`!(Z*l7E%$Z} zedBD-@a2@I*{=_|o?Jzhz2tECUlV>|s$;x-LEmo0%QRSjtWQQCyEh&AvI#7ezf*~S z{>R#Z!zo>+Pz27Lz^}zd#JqhVhoY^J>^vvi^p~C z&O}74-q3G`8O8jKO~wJH4#oYd{fmT^$qk4_5wift3vk#e+0Arl>J~wdwxFnw5*pQZ zG!S)W9b@~4A7;EpQ?~$liaum$vKY;!qWErr_Qgy*R6?`AUwRn-_$dH!iUP@nXdc_+ zeW!22^p2nv*T&=OqpQ*YHA*~$FcF$$t*1g!7=p{|4GK3^J%3-HR=qOs7?zfnLp$k-`C*XuHcff95o0JHL2x#u z7!aL!+hu2;5d)5%bS~kiLS_VhtDJsd5u^fzy7M&EEW2l@ExzP$V)nNjLW#CC0d zb2}|%`tE7j^?qgVKtkQhnftMYD@Dj!Yd!|H!!NP%;g;wm7EnuP{gdcBJWqT5BQ8RO z3A<84aBvCtA7`eOS*__uv#qM`WkU7md_j|z(x~0Cm_-zz3)+V?#T6Y2rm`4c?T~yM z^A2obIVkd`Nm?7tE_X^^_3_@nYU$FKw+sl-xPAXyinq6>v;99*?B@5lRfavDgY3bg z(J5LOCbuMN;kP(*Q9E`IIj|i&p25vkZMia(hE>y1s%eNC|=9Qv^En zaE{G**jI?T!3riZ)$Ly~_xD)#iiHXSCptz7*|dH>{c24JI`kp4)AU}EirH5qdt#C8 zq*fu?z2)&@!rK3X2%V0G8%ZfcnyA4m+x5@Yv$`2jK>(j1e2-rmuBJq9y9$!9sut%q zzH_Dn$0);LBE4t-;Bxnl2!G0zIq6H2QfdVS5e}|w){ac8D5?FGB86N16Ix%FhLbT8 zOJ=xw79HNFx}8Ah$T<`5HQrjU<72%vFtVjjS{V7@RWjYJ0z~7?(4N2bC#uB8KG#s3 zJ)FG$A8q2Ae(wh@fU_$|Q6jJicfGAI*ud;5gs8H}Arv{(|XKIlkz){ULi?C1Yd zVw82&C2M0Wr#ChsIl^Z?#PUl2wVB{WU4;CuO6v2|n7ERk{!g$hU$*K%IOkN9oP94Q z)35pcox4JR&6_<)RIPl6!g8jyj*HNaNE&XZUvSDfqFuSav?adrlC*lM-NRiP(#d@(Biv%&2vwREZvbc>D2b)p3ctp4UF1CLhce60!XgxX2Y#TrLfokp!T zo45^a-g1m(}Jk`&Evy%8~^SlbRqjRJ`pg@{mUH8}yvfz757 zrhKZ=^9u2bG|Rf243q&PuntFAX+TFrry81{`*3N9-rZN|8^rsY$9yKoJ2L%)s=Wy> zGsCTVTf~E7B)z(F$oNm>tHn*wCGedG-jK#gHf$t!%&Y|2OL`iY-~O(Y&qm3h>eI&5 zMxRIbQ2e-izLC`9rRfL>2vZPVOSaO+YtWFhln_dTFpUwT4aCqVs?)|7?I0XztDr+&UKz4 zDI#Qvff!&YJ~&U^ky}^r<$LZPu-_~x^DK$lDXZa341$8qHkfXh&-=beihTsqkn<{@ zp*aIi-D5k=NB5T9W<;O>fT_eYX;wY9F<@>%P1j?GK77h|n_GY0I14d?e*ne-wdD$PuO-LqBYScrH!JFsDw zR~wH*;UI}Y!K*LWr(6gxoV3eJYG$W*H1(9z4~U3q;$y7#tJLRy)a zpm4E=TJ2h{^m##;R^=41Id-QG>8))IyuG}8&0%ath{#uzHwDiXL=T6yrc^UFl!N!* zsk*xd{xojYcP-ElHWunSUGW>q<7eUB;n8D- zmzaKfFG)uMq#nT_vTZq#G|gV|@?rN*z31rjQ5>=R4lhH*cxo%akCb>y#Xm*yE;O5r zk=Ac-20l)1S{pmCdzLzp_VZPt%q{7;9vJnE3Uw#Zbsw2K_gpk@Bz3%jE@|)t~;>uaa0{`9#$RI5}7=4DQ~+jld988gspv2WZE_q%;!*H#$Ojh|LuJAbj$sDhC=B?fo<3%;y|1# zA#65zL^yyh_L1r8{{i#kHj+^2U3^x@vTRm~v(oPQWwW9*qAHSlkB9c{{?iy{0rwn3 z?z^l)l2pbGxPzIqk(MjgMg<2lrpKR^Q`Ka$4B5fpH9BQA_se!ppc~lB^`ag zOj=J38PxAog8hgdui9+XitL;nt0cpL%INqYYer75O#5_S^R^NHpukq`$F{x_r-vV( zH9g@xVBRB>zKAj{13W8f(BzQpzh)wfJG~;j^j-hC0v~|`etoBfHBz4xaG$Q zVrZmFg=V#b`s2s@U6VQdY<3)Y0F0iKJ6GkQ^1m+?5PSz0F)-BWjmG~n^Bk~enJ$l@ z*9rQN*Ya2>Y~On6jc?ZDdSsAtSESobEAi*HnP|uTpsP2x2A=61-)-7uiZc3(dj{t^ z?#r2N;~QYXv}LYe+9i4Pb=N6T$by?;$&0;-tXQlx6f27Z8~#H~%v%J~J)rU_7GTBg zX>xc|;2Q0Wht(XLFm&Dp3Z_Uyz{vIiQc2aU?N2srufO+HSSw51YG8pD%|j5S6qJo8 z>yxNsg_#uKW~yd+TsbQI5{c zpWB-GxKOxb&w{vl0GmMJ$6IiXO+<#C?B1`ZjmSg{n=$Rpc+zhEN_Yw9xQA~g1}jT;svrGYW~Cft zoVaQm02F`kwMBQ_^pxqRrJAE4`)cFR>%<(r1kQ4;hu%y=?J;;ft$i6advpw|n=1ig z%$`Me%7U`ZZJ;%Dx=;U6u^5vi}^I0|Jku>TKjRAQooZ$~&v$>{Ji23cmzU=Asq-?K z-o4BJ&1VNe(~Sl$l4kc(#yN)eZyG)@~2@ z)XRFRnPTR`}(;ZGLXtAArM;-`{Z-$#RV3d)sjrwx$pB}ZB9^7%& zp@mt82NssgzM)-5sTtHhju+<*+F=+KaCcAsGy=C47Vt1gmdI z=Qz)iyW$qZ`nO;p^Gb*k)B-QVtMp(=Rirnmp?BP#h1J&BV&(5v5>5rELHAI=#Df_o z4Fvr##{rKC00w3zu(3z#`^TOAvr!+tJUI?vl~b6G?TncAW&;i)e&dPlqdzd$vFkUp zfTTPCu}icm@kzAVh9jJM!#3rX08sp&&H>OPvA_#pxmpcp!`3?n$I8wn^#D;&6PP=W zjcM2R{mpFEHQ|d!>u`j1aea#VQXKpi4SMJ(=WX%PKaNSsrQ4e5HQ8;kRDt=ga0|az zKUNQD00Gr_=!tPNI&nH1{)KKGm2d{1eFd=PcWP4FWPsKo*jw-2-r!$BtK7Jn9yogm z_SQXJ*%6MKEytHs_~zK}ar5z!KsEWo58;zyXB|3%*I81D6a$9kKZD)fa^ndQHdorMs_If=gl6+sk5f6jrJtt~0F+TpL&N!L4 zDq}3blRgoj`FbZF8m#+YjVxf<{ND&{VV~GskqzZ*ZK+jvZ6V#Mp7eL^$Xii}#>(6) zH#Of22vR3*zS>OZucRwj>4L*ZA2QBDC7P$*9>sEJthAKUZ)O`fmoPl`Q%y(= z`3}8Pb<@t$HJht{#aQL5(rfF;9&Fe6(=4NS=M##qPX-#04fpDGlJ5_!`v(LKKa_|v zfrgY|#dI#PA0EO4M*_{{vcUdDC04$SzLak)rDL<7=?$P8bhjLOwO}{x-|IEO`At$T zKcD$#xzXzjq~*p8L(JjQ6LIl?%;#A@y5z9dbzcVRii4Wlh~or7MFPh*MWSg@Nh*AO&81NN`=)Dh4~Y#kn19@?bLvXm)kwNXNayX4-{t+Ks^D_(MGxk8 zLiUt6_uN*(!i*!H%3XdN+HaUfEb=^3u$KSvc|6z4XDv_SEqt#N37*d29a?e+uGHh8 z3={L62L(XR(nJLj_g4YKH6VKb*H4X9fEK zLob*ZN4K^;F6{k1*;c6jYNsR=(!@BOaVYD+OiVm#y?(FsvC`;b@4p8%+g$(f!K@mP zoquAD`F{DJXKcR5#-jbMmXIr^DZ2-0)6J10N;74d*AX~|8EvJoZ4A04{22J0r-8L9 zpwm3A62Rl;fYL!mCW7&7?%q?TI+Wl^RlTD4*l$pJSTh=mH(Sm|;^{#9V$x2&P*I89 z!cpv&CmTIE)@;vM)(qUwxNdFnolsC_w`-OK37cS}ES~m~eZAsbtND#B6X6}L+kQ%H z$fruiiR1qwUTx$eyKmbT=v>O)qq-DwJUz_O?8TVF;@ z**R_ zg%pE@!OJVFA#TY}-@4nA1gDpdRcD&J3b3WL@I*}tOcuxn-WTn!vKUdsn)q@(oNs#P z$$N5qmjgOJDj;?vD~MbwFFZsHwKuCretiC8G*EVOFwJrW;UEgB0<=f-UuO7^=tXb-mG1e1;UvnF)Bt_2Hc^V(HKdCEWP z7I1p&^wDlSaD*qE?S(r|scn`tEuJqL-ej*dzY_39OvH0lR=kKr+ z>ECv>cNc$azBz$4bwh63_YuEAna@hUZp8tz#(hn2sg$>_#+GzpF|oBR`BbfXR}Se5 z;2;c37+xZ#yWAOblgwja^97IpGI2N8X_$$AeG*}_LnK(ix#;JJZYh~?|F>tq z^C|S54ZlpJ8Br%%!Vdr1u*TML3U~LaU@oN~f0g_e+PHdzN79d&^f_qS(x_eo2!dne zJC{lKO%E3{r}l?^9u_c5fx!{q)vr@4B*tJ(Xxm&%vTzofU?Ag^rDb~~wkt?C0@zd;XCOqqd&IP-qdUY{L0n?tAK%z{pXZoQ8f*Qpc1E={}t8Yfc^_Jw0?09X1m7J~% zS+ATB)2jR0Gq~@XkZxwh&G!KT2{~}v9($GqmT(*0_ke@pFBqnhtWS{0#`+tOJ4U-}L}7;NyDl3cLLO{Ublh*#qXDx=RcrFhgJxH@yqm%M@*J%OE(;%f;>bZSw0z$t9bP$UXKPPZ{Zjq972QuD%;d@ zDldG1>WSeeyg*Ti@NWTtv@+w;GJ93*Aln>$L_l;u@`q--%ujeGT9pFx|KSB1+L4C+{*CX*u*e7NR*V^o)%4Q~K%G4;^gr#Fl?b<+wphT1&Qw+#u5_fdH` z_>v$c{`!>bN4A3oSqrswwaW(8Jf|WYA>2}U;8zf~iYq^*m-a5$Cyji<6#X8ChEjRW zbf^Hmp0J(=ljU%{UyX@{93Z5`G?+~K%bny`!Oyis^&+7k;z_6K!2*6o2CcJE^KudN zlg9NrpdlQn7-(qg;UiQ+uPl|59<-5t=bo4O;>+$MTX9-HH~l%;C#scXV)>VSBsS#N z`?kaKHfv7BA7R}C38*a$YPodjb4{DxY23Fy7jZR$6%$@XG`yRqgt06bwuMXW(v6Ki zEd5iBapS*MTv+b+H<&g4E3|Q*a!_%$Dni;bJ7o9TIcnxkU1ILrK*DfszSx_P{~iQ< z$Kpwz{^6GUuaz8avb~P?8+Q9Fv%zdbGY<9D#0aP%?%@km+U6V&hz;9KRW8&sapKBe z{H=Ec##VKOz$Q*}I!AyPQdZSt9}}|h@^-Zej~lTe6q?>+Y!SxteqbL#xnIB`rdv*}VbVWP!*iEeDI!=r@mSbzArE3agV{l7^7< zRbiEw&v5vPVOzxT)qf^3X=Yq8mx6GD7RWnd7TV&z@uqdnMm}jWBgsh({I#mvO$qzI z>qlC#DHcn`&{@7AvoBzE2KOCouBNk-rzh}+ z@?)pKgIqD`a3G7nE$^AqCH~$Rm(ZK@cKM7w?bJ|{S9dgRyEywJb0L43zZ8pe_O476 zS&LV6d$PGBb6Gw+oxH@XjmvZ%pZ#(4LYE5wf3)+h1DbQC$QnI`Tk~?N^`df;`RUU! z=wNzHqhd0zupI4VO8B&WuP9{xzK1urmTGgt{==xduaO=K+T8Cxe;cZtj)~U)9aSMu z|DMqEfs>dmxMx;rD8E=rLK2zc?s9*0jp!qDG&AgE3Lywpi*jm6qocBw@~8NO2J%9?4 z;%$kcJehY9QxDbLzgwB#5|mZ`E`8{Mf8Y_PAwx2L4=1I?4ViL~(ZFx$3Kd*g8ElDs z-VPY#626G&GXfu3`bi?d<}w&D3t6!$4sy(v=@)lltrIH8nJz_@zl8XzRdxNabgM}~ z=aW+@tqSs53_Dm}nJ+No>CBAYo;;y=Vy1Kn2LCi$#PzF+?mDotba){Q7sxNN`1p)d z8C}~$2YWlntX;h-xRT5=+nfCTARHPv_|@-enJuZ90-%#oER#rLRc_t$F?9XSh?y0x z{#mH6InwHQP4}dy+pPS9)x28V@y1Xe_Nrj)K?N<0gu>y<<<4rOX9e@HRd}w3;AWz} z-#|;`=QJ;=HH#N>uB=F|v~Tu6QN?`B*9&G|78pWi;CGJr4Iai8~UDLibKVv_ZC})hxKLKM^n;!?KdcW4vd4a>t9ae4VLQERZ&uD@U z6}1dZo2?zb)4Cx<)MH*7H0OKemGMnK)N4V%19sWYFz+p!VjhHOnCvZt%Eo|Ieqm}V zVq8|U+JLxYCz4rhoMbACx;_N$J!{<@Q@(aDdAUor=De23Z1Hi###v|3-&_yEnT$Ru z0EHmSVKwRX9qVnLZK28la*elIV#gSMik19nS~C>#@)>88VqQOdy&_ioUBKI(~xm{{ov|fRG;1k1o|-jQWZS*|CuQzsrs^(rIh6|_QP;+$jlK7Me`Ab zg>BWl%V##hn(Y@0HB%XPPW+nJhChyQrGF;{-`sLJd{Gwz*qtx_@v%BbvtF;(IV`?I z&isFdvOWzu>vQXlWrhqSD$4^=^dCbM~6`q}W-#-n! zzsTKD)o!K!Pu&mlNp7Sh6v$opdQ@!QINQK#E;x5kxDa@4Cpff9M#1?- zg)dJwAzOb->rA-&59#2Uex3qMfS{;7-miLv^UV%HZ|hLCBlJk-(H=68mcp<971Pv^ zZ~KQlCeCxW(eWN5Yd1`Abyv-obo)T=J2uVC>7-jOp@?A9cU0K^F|v z!qmV6Jj`f^8f{fYDd3blg4Xcv$gwJJ8KaZd%04*K1XZE~L_?Yse`n2Un)Hiod7NB+ zf7i=~{n?JdVUGH`V+Q=FR}q=KwEAJa0V&vHSzYJ*&{MJ}pC0zdEOncg8P1ijp>VdM z^VO3bq0N`9FI-Xtt*meanM8W%Dt{xkO_xm@^x47$U!@y~pN`zb)=#g1%nf9+X?C=1 z=`~Jt#-6XZnGHh9tMTL=Hrj;nPK|sTg)CTc+%bNFou0X(b}M?5qtF9Tz+P@sZkyZ- zzP|L&tf5$jZcrmZem69Pb}jrz{q1eW_%`c+df^Em;%GZ9$dgfefq3%MgHWZwEJVN! zgER5W<24QKhuOoK5fKovPtq5K#lt1JYm;tG0Lh_ZWWZQ~4~#7ctLc9$S~SEhNgfvN zgkI=7I&j7U*~Jv8WyeDGlh~b2+RK;MCYh#}b=m89-ts{CU0w8ToT{JI*DqU!3)7 zep*GnJ|HeF49Nh)Wjz)E27;{a_t1T%ia*Ej#uW7~1X+m0Duzs9DNCGHGCl{Ti(%dd$ESAba!AOCC@! zZb0iQ)YsNv>}Mw6%@4nyc%y?_3E*82sI@3j{<13zA#m$^^yhi>TOR&>9k}fU4=>xA zCk0Tkh;qJwC%+e=!~nc^0woA7;0{!H;f_I;ax5wr@b_yX{&N|)EAWarM|mC03`h-l zO9f(-B@x`D0=#VEA+Q@N62QlDzMp+n75`;O!L^F4o_<35k;zOVbb?&~@4^T%^sIQ`vS){=qZ zf===b9F2ATev*d=M@dXejC%Fv85G-{?$rIIzq`YF=FJg853aFXNXbUewGK_t@Y7t&JMa_GVXz7#eyd{TN_%TO%vCHqHMFKKsOXK6IRsd;NV zVteT%*i+_b^Laathv>M^jF)h30)r1}ut6Qg=I?cE(E!hz{f=ePU@WbP2tbel8~8JGrPC1f!&||N zozViKF6{a2W^dQ=0hx$dK+gk`lQ$SHVbO6FsK`z{dKwgYR=p4=b*T z$w~o&-YD{;BS0zCGA!Yy1R%X8GMyoAlSKj=FvsUDpgo{Fo(?qzFCT2Wg_L=L8-T&c z+hFd_iqCR_iwVx)lNC7xt6VK|I999;Ahbv;c{0TRE1bRz&w@yO=!e&kI94lSrikD+IW_4xZS^EIg(%RO3Lp=A5oSse&nA#RE0JKcRplI_stZ8kW z@B#ql!f>vwUbTh#ueF1KV9V_Yk_5oh4PSfB!#H9AiGnMTA+i2=ZdqBW95etXeM4A2 zYVV-bxU&ZZ0Q?5(Ja0~3C)c}Xy9`5aFe1Q6wk-iohvsAhz)Fk+_k95n1N@OsW58MK z{pr%&;jp$`D0n2`GKSA%l5IJo3qadB$Fv~T*A@}$(M#DHjw5p_lsuDII+y!=QoH=- zcjD)AgZA>_cDDNB^-e7^$m?}Hn5Et6_;^Y}ph@QesVT`4AA)@?qc z5Z}JMa1|M)%PNAMFnhL|O~L=j!)EC@CX;+^7C#H?2j7e|w$H_?c^AJBoqYYJ1HL?V z27MsQYRNoZ68l2&TUk1WHB|Xzjl9z*cB0$VW~z%PJy!&aZ9E?up|Q7blmHB9bxggv ze4`*Pd7z>nzqnoE8NS)!H6D>~t<_r89pj}rB$;>3MOP_LCf`QYrvLGSan!i&yBQ9L z7eYmpjcfi@BTpB{>`rv45lk*2@j>3%g}n;DOtCT_3RSa@66Q{+1a#Tg?zW_e@#C%# zk;8FNQRyN-N22f&jX1=G5*V-qk7T;Nb83v%Xc-=AK^b43RC0)C9XGR@AO*R3@y+v? z2N#_o$|KBHu{Y9*0R|e2wZ(3Qxi_c{#DeN@oJPoGdPlfU&kL2m76h6?nj>}#6C6S- zJa%gq4=SCy*N{kfh~6s`*gq{K*ROi=VX+6OPKeS$@griM<7qM#$K>Wb3ASvEQ%Tlo z+MC8hg*(E}b+w1J9{e0}Y`-Q=;qE(W9~4$`87ZmiHQ#k6w0i9I>WZ1u?W{ujLIb;# z`C+K$)~jV@RcpI8rt;>vF-Q|6%xot_8b)sN@7oYKAt6}uIeFRkF2PqE>lmMHZTCe{ ze{%;lOmRZzHtjD`?;Fd(X&H@M;Yy#+QLBHvzLl`sU!O>DK`i&4$>^-l({MqWYk$Me zsxWk~B7WEPKF!{5BN+iVhV&)x9L-Tup^dy38Lprb0&=}G>&U*4+pJG|WcR7kg2Q6+ zjJuQ+No10ApoejwFEfMv!UENYFf@Pwf@vt{T?9indz4+9|E>6qAG1#O{0ODIVYQrJ zS=Z}A#~P+|dQ?&eW}oLPQTn~;pohm&wR){MBb6Lk?Y!!HVPsm!z5z9HNPm0Go8PC7 zSRk_HEyPIm2LGV+vreR+5K=c@yD~e$sBTQP^n!o|YN*)!l+y~|8t-Zm1sDqc{>IlC z{TP#*k1_IOdwY^nX z$W%Vf*mG%(TN41lIi2oujXSdD)2+s>8eN^XkUO#UIvW$yw-fKyAUyV?$XZnIEj98r zzG&s{MxE_T<$YSa1WsUOnzxb)5v#&ydxgZ=4_zd0%=UZDR1P;vPWZIdDP)O&%@J3u z@U^6b>}-oG!M zf7OjobsJ?(*$0@OOWMJ7KXseyoqDZ=={1uIG-dhL+_AF2ZJs~hbtv-quvBSzi)y?;Ope}hX z#<#qfr(S;1%aQ+!>(2F$*oM#^gejw%sm<2-H8^<>F7U=L-#BJg^xNfX8IyJsWvDnI zwo&_A)u8_r=GJja(ojjZ)5r~#-S{P`Ky1a&sVfh9RHPq`IrWQzS*|?cdldrV#W%yaQWVK}wMAiu3^Ub)1x&Q}Px z^6^8*)<_ku+31-tx927{!A++Dw^zbjlph zVW>?kghWyA(*`fBnT@%~k)^f{JQve6F3r{&4@1sLo8UCx*15}%l0uU=1wt+-PYt^~ z+qITyWvTW_t66M3suWFca_DqS{a?B{c@=DR)0fSBr{%>y+7wK%<<%DVShj?S%mLtc zX9zRKq?H=zvSm>x8CM)Mn`^nIn8ju)-l_QFqIIKP8VNboAa_`S`P2N^6GxWxCtPG% zcRCa2S+1yl?4qR<%2bE&q>_HfSFC$toe^PCiTatCyN5!vt+i^*7`45-dYfLn?PMv?zb)mg) z{n}&(!pVd=G1e2{Vb*LW74UAktw&^dH5GzcM}`iWg=`!_hMH(+V00DpjbD4wL5vLUa7;uFI$_E7y1a$-*>YRj5S_O9o zBirk9gLR=Qo3W=`0NT}dx+^g7;by!JT6a%|fV>q%pU9ly0mUU)K>u)~Xem5$3#dAO>kO_Pv3e*b7-%EjO?sfAcjh=Q8T zhmXrVr!mxs{`Os{_|6Fs6Ldq-3fP<eumO+f?J$&uXT)bggkRpW|>e!;U zY9PJ`=fc-+t;Cz91u0V!?t#F%`ZimO(s(K{!EbM5nIFH=*(qG%zz>d$^n3ffDw~+? uM%#Na0+|m34hn$pC?B4nz44!CC2E(0S|u0AeD;244>2{iI9FnHJ^J62uVk43 literal 0 HcmV?d00001 diff --git a/doc/plutus/explanations/hosted-pab-wbe.dia b/doc/plutus/explanations/hosted-pab-wbe.dia new file mode 100644 index 0000000000000000000000000000000000000000..a43529c899bd94d5ec41639dcc7e601a53d088c8 GIT binary patch literal 2277 zcmVKKJ>SjlAYL=CEL1CO?>FZIqpR$VZxx@1^&BAv!jk|j)J$0}!06mS-9v}Vbgx7U--Ss<6#sbO^(#e>MQ=uH0~ zSdd;afX&x$*4ET=7m4ss8}31i8Y%vZ{3+&2Z^@JJv*q+z(Jk3Xe^Dg;QKVuP@T%U6 zFzZeHOF!bvE1=+r-Q^uu+(ue03HdI!x!s0@7Hi@2^vq&DY*Qm?xotK+H}Bu zZ*JUn8UGkWPxB>9GUL|x5W#dG@3<=?fg$axsaUsq##(Y?{aO zR3~~iD@#uDVTOx5bf+ z4zibAESA{`;VtJy$fcD`4+*1!GC0lu?I@#}lH3ZX6??Dq#@9s4=I%}t=8JV&KT{C2 zoT`}l{-ML#m*k8;XQMM7La9yNOc&d>gLb7IUd{gQ1hCe5*io2ODayY$9;B}tyvY8r zFdZ3b_L4)FM4ip0|Kh+Rv&5H-^J{Jf zd&y;6%CWjqPI1!|k`6+ExCl!n6AXcaT$(QuhkDlghm7C(%$Oz7Q_2(5@OkJm$eE|pDZ z*A;k~J??S~(jzN;{f)7du(c(=EGishWB1#tGl(Op{h*`$?$J>~p+#I1VSq746XXJ7 zJEXPJA<^+S35$lDDV{vAIsgB2uZT@3rSfih5(+&J4S|9fxE8iF3MxZE^x;tOXP!Mp z$u|jtUxR4vSD>KN6$Ob4u!(JjI4CusJln~8jTXDWAy&)%>WXLV90>Yio~bop(n9TsvKX2>H2@K!8d+Rn$RQ4r1$*QG{b?Yog>q1i=ML z%0)Hr@f@j`uYyA_@(NESulIbM)YF0((i{3J9Z?oWH{k}3^=Xr8cgR8jyVxUZjD7S!VUOrS|l#Lyuqvacjc)E-d@uys`EI5f|rJ{kxYNX?nuXbfh()BE_;o_s# zh}ch|P|f{5CH9>KtIJd{UjauOnd5a>yY0MJ2hTPO^}DG&XlQtmTj zt8UPetmN95$7S7B4}xe!Q=va)NfJHPA3KnalBWR=7pG63?XD`$o^RU3VK-;i1sY6 z&a?a+MB$&25k|hw^ib|uS`avp+SI zkkrNl7&N-ToMmUAr7ilZw~imgqB|E^VxrcfF)mC776(BS0*j-cJX%H66Le{8)$t0X z?f9zfxRh7yG_m6n2GD^DGf?-sHOr(b3o|U!0fc%EogfORMe|31Ae%ZLAQjR79LL5w zm2dK2U4wm6{?9bu*DaRl^B-CAiMxE=#h*~rvJ2aB}14=#^7R5>QD14r1I8q*y z)^KzMaMZbA3lS4rO3POBr=VHT_9lfYiAHU=Hu@1DSM>;x!-b~-XkY;9vW+aC=nR$( z&__K3a@FUR(p_Gu`gDNyL((M;I{L4uxbb%u1Uxft^1t1|Ltp#zL*$rxfH;)sB!J$N z0R9k*KiHxaXLxhMd#QH7Dp{#`o+Cm9D?xzrGyn`cL>ZzaTTai13=fA@5rgo~H^A^r zkfKq8#)FI!akxOwR=w9O+;-PB=`UMnktD>b;@rOKT6GMj_gJdeD3+=^2vZkI^?FE- zXl;j$k|Xk@2+Ms-j*u`1DWvL?BhJ9kCOJZO%Cp~7azvWR{gxt=-jl7)sP~ohW!4(? z`bRzVAyY_j=kkNs1YNAszmrNZrO3q6!y_)9$j_dYpFP+BIs_>Ozp5ctw?YsVeS&Sh zT_qTJ$-|8-4X+wr-!r_zF2!BW;l-pex^6xff3x-e=HQRI-rxKU(f-FR?0^6OvYKH` literal 0 HcmV?d00001 diff --git a/doc/plutus/explanations/hosted-pab-wbe.png b/doc/plutus/explanations/hosted-pab-wbe.png new file mode 100644 index 0000000000000000000000000000000000000000..de92a9297980f097f85acd54ce8327990a4b7213 GIT binary patch literal 18102 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 I3E`9g06UH5LI3~& literal 0 HcmV?d00001 diff --git a/doc/plutus/explanations/in-browser-pab-browser-wallet.png b/doc/plutus/explanations/in-browser-pab-browser-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..f5dd1aa863b5e4007063f5fea68fb3712258ff9d GIT binary patch literal 18203 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 YjG=LiAN|Yy((bdJwbQkVE4Ls12N@<`6#xJL literal 0 HcmV?d00001 diff --git a/doc/plutus/explanations/pab.rst b/doc/plutus/explanations/pab.rst index 668c2f0aa7..044e080a4b 100644 --- a/doc/plutus/explanations/pab.rst +++ b/doc/plutus/explanations/pab.rst @@ -52,7 +52,7 @@ The PAB subscribes to ledger state updates from the node, using a socket protoco Wallet ~~~~~~ -A Cardano wallet is required for balancing and signing transactions. +A Cardano wallet is required for balancing and signing transactions (and optionnaly submitting transactions). Balancing means taking a partial transaction and adding inputs and outputs to make the transaction valid. Take :ref:`Marlowe` as an example. @@ -63,6 +63,14 @@ When the Marlowe contract has finished, funds are transferred back to the user's The PAB sends another partial transaction, this time with a single script input and no outputs. The wallet then adds an output at one of its own addresses to receive the funds. +There are multiple ways to setup a wallet: + +1. Host a cardano wallet backend instance (WBE) using `cardano-wallet `_ +2. Setup a desktop wallet application (ex. `Daedalus `_) +3. Setup a browser wallet application (ex. `Nami `_, `Yoroi `_, etc.) + +These different wallet setups each imply a different use-case of the PAB. + Deployment Scenarios -------------------- @@ -76,12 +84,70 @@ Hosted In the “Hosted PAB” scenario, the dApp provider / developer hosts an instance of the PAB alongside the :ref:`chain index` and an Alonzo node. The off-chain code of the Plutus app is run on the dApp provider’s infrastructure. -.. figure:: ./hosted-pab.png +In the following sections, we illustrate the ways a hosted PAB can be used with the different type of wallets. + +WBE (Supported) +^^^^^^^^^^^^^^^ + +In this wallet scenario, the dApp provider /developer also hosts an instance of the WBE, which handles the wallets for each user. +The WBE handles balancing, signing and submitting transaction requests from the PAB. + +.. figure:: ./hosted-pab-wbe.png + + The hosted deployment scenario for the PAB with the WBE - The hosted deployment scenario for the PAB. +This is currently used for testing purposes and shouldn't be used in a production setting, because we wallets are normally controlled by the users themselves. -Coin selection and transaction signing (in short: anything that deals with the user’s money) happens on the user’s machine. -The PAB produces a link (URI) for each partial transaction that needs to be balanced and signed. +A simple demo of this scenario is available here: ``_. + +Desktop wallet (Not yet supported) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In this wallet scenario, the user has setup a desktop wallet (light or full node) such as Daedalus. +Transaction balancing (coin selection) and transaction signing (in short: anything that deals with the user’s money) happens on the user’s machine. +The PAB produces a link (URI) for each partial transaction that needs to be balanced, signed and submitted. When the user clicks the link, the user's operating system opens the wallet that is registered to handle the link schema. -This scheme is not restricted to Daedalus, or even to full wallets. +This scheme is not restricted to Daedalus, or even to full node wallets. Any wallet that implements a handler for the link schema can be used to balance, sign and submit Plutus transactions. + +.. figure:: ./hosted-pab-cardano-wallet.png + + The hosted deployment scenario for the PAB communicating with a desktop wallet. + +Browser wallet (In progress) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In this wallet scenario, the user has setup a browser wallet such as Nami or Yoroi. +The PAB updates it's contract instance status endpoint for each partial transaction that needs to be balanced, signed and submitted. +Transaction signing happens on the user's machine. +However, transaction balancing (coin selection) is handled by the PAB as it is not currently possible to balance transaction that contain script inputs in the browser (i.e. browser wallets can't balance transactions until it is possible to execute Plutus script in the browser). +Therefore, browser wallets will need to call a PAB helper endpoint which can balance the transaction using funds from the user's browser wallet. + +.. figure:: ./hosted-pab-browser-wallet.png + + The hosted deployment scenario for the PAB communicating with a browser wallet. + +A simple demo of this scenario is available here: ``_. +This demo is a work in progress. + +In-browser +~~~~~~~~~~ + +In the “In-browser PAB” scenario, the dApp provider / developer hosts an instance of the :ref:`chain index` and an Alonzo node. +The dApp users work with a browser interface which uses a light version of the PAB. + +Similary to the hosted PAB scenario, we illustrate the ways it can be used the different type of wallets. + +Desktop wallet (Not yet supported) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: ./in-browser-pab-cardano-wallet.png + + The in-browser PAB communicating with a desktop wallet. + +Browser wallet (Not yet supported) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. figure:: ./in-browser-pab-browser-wallet.png + + The in-browser PAB communicating with a browser wallet.