From e4d557c19ce053e843b674d06e78ad85bcef33ac Mon Sep 17 00:00:00 2001 From: ddawson Date: Fri, 13 Jan 2023 14:46:10 -0800 Subject: [PATCH 01/34] Add nft_page option --- assets/js/apitool-methods-ws.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/assets/js/apitool-methods-ws.js b/assets/js/apitool-methods-ws.js index b3b05276c4..ac38f38b17 100644 --- a/assets/js/apitool-methods-ws.js +++ b/assets/js/apitool-methods-ws.js @@ -211,6 +211,17 @@ Request('ledger_entry - DirectoryNode', { } }) +Request('ledger_entry - NFT Page', { + description: "Returns an NFT Page object in its raw ledger format.", + link: "ledger_entry.html#get-offer-object", + body: { + "id": "example_get_accountroot", + "command": "ledger_entry", + "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", + "ledger_index": "validated" + } +}) + Request('ledger_entry - Offer', { description: "Returns an Offer object in its raw ledger format.", link: "ledger_entry.html#get-offer-object", From cca8a86c2a167db69bdd02646907c6e4157e5c85 Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Thu, 2 Feb 2023 09:09:52 -0800 Subject: [PATCH 02/34] Update assets/js/apitool-methods-ws.js Co-authored-by: Rome Reginelli --- assets/js/apitool-methods-ws.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/apitool-methods-ws.js b/assets/js/apitool-methods-ws.js index ac38f38b17..8742cc3c82 100644 --- a/assets/js/apitool-methods-ws.js +++ b/assets/js/apitool-methods-ws.js @@ -215,7 +215,7 @@ Request('ledger_entry - NFT Page', { description: "Returns an NFT Page object in its raw ledger format.", link: "ledger_entry.html#get-offer-object", body: { - "id": "example_get_accountroot", + "id": "example_get_nft_page", "command": "ledger_entry", "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", "ledger_index": "validated" From c1776d1259026f3f310f1b83f65350eab9d8e1f7 Mon Sep 17 00:00:00 2001 From: ddawson Date: Wed, 8 Feb 2023 12:04:49 -0800 Subject: [PATCH 03/34] Link to ledger entry --- assets/js/apitool-methods-ws.js | 2 +- .../ledger-methods/ledger_entry.md | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/assets/js/apitool-methods-ws.js b/assets/js/apitool-methods-ws.js index 8742cc3c82..df398186de 100644 --- a/assets/js/apitool-methods-ws.js +++ b/assets/js/apitool-methods-ws.js @@ -213,7 +213,7 @@ Request('ledger_entry - DirectoryNode', { Request('ledger_entry - NFT Page', { description: "Returns an NFT Page object in its raw ledger format.", - link: "ledger_entry.html#get-offer-object", + link: "ledger_entry.html#get_nft_page", body: { "id": "example_get_nft_page", "command": "ledger_entry", diff --git a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md index 0a9d9b3f08..e4675eda17 100644 --- a/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md +++ b/content/references/http-websocket-apis/public-api-methods/ledger-methods/ledger_entry.md @@ -39,6 +39,7 @@ In addition to the general fields above, you must specify *exactly 1* of the fol - [`payment_channel`](#get-paychannel-object) - [`deposit_preauth`](#get-depositpreauth-object) - [`ticket`](#get-ticket-object) +- [`nft_page`](#get-nft-page) **Caution:** If you specify more than 1 of these type-specific fields in a request, the server retrieves results for only 1 of them. It is not defined which one the server chooses, so you should avoid doing this. @@ -560,6 +561,48 @@ rippled json ledger_entry '{ "ticket": { "account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJ [Try it! >](websocket-api-tool.html#ledger_entry-ticket) +### Get NFT Page + +Return an NFT Page in its raw ledger format. + +| `Field` | Type | Description | +|:------------------------|:---------------------------|:----------------------| +| `nft_page` | String | The [object ID](ledger-object-ids.html) of an [NFT Page](nftokenpage.html) to retrieve. | + + + +*WebSocket* + +```json +{ + "id": "example_get_nft_page", + "command": "ledger_entry", + "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", + "ledger_index": "validated" +} +``` + +*JSON-RPC* + +```json +{ + "method": "ledger_entry", + "params": [{ + "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", + "ledger_index": "validated" + }] +} +``` + +*Commandline* + +```sh +rippled json ledger_entry '{ "nft_page": "255DD86DDF59D778081A06D02701E9B2C9F4F01DFFFFFFFFFFFFFFFFFFFFFFFF", "ledger_index": "validated" }' +``` + + + +[Try it! >](websocket-api-tool.html#ledger_entry-nft-page) ## Response Format From b02b96872f0b0478bc11325bbfbcd0423b78855a Mon Sep 17 00:00:00 2001 From: justinr1234 Date: Mon, 13 Feb 2023 12:13:38 -0600 Subject: [PATCH 04/34] fix: GA tracking for faucets page (#1727) --- template/page-xrp-faucets.html.jinja | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/template/page-xrp-faucets.html.jinja b/template/page-xrp-faucets.html.jinja index c7cec3ea67..775e48ce2d 100644 --- a/template/page-xrp-faucets.html.jinja +++ b/template/page-xrp-faucets.html.jinja @@ -60,13 +60,13 @@

Choose Network:

{% for net in faucets %}
- +
{% endfor %}

Hooks Testnet: See the Hooks Faucet

From e98f40c5c21885c9a96a9f2372db67458a82cb21 Mon Sep 17 00:00:00 2001 From: ddawson Date: Mon, 13 Feb 2023 11:07:35 -0800 Subject: [PATCH 05/34] Add NFT Auction topic --- content/concepts/tokens/nftoken-auctions.md | 60 ++++++++++++++++++ .../tokens/nftoken-authorized-minting.md | 2 +- dactyl-config.yml | 9 ++- img/nft-auction1.png | Bin 0 -> 38187 bytes img/nft-auction2.png | Bin 0 -> 52467 bytes 5 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 content/concepts/tokens/nftoken-auctions.md create mode 100644 img/nft-auction1.png create mode 100644 img/nft-auction2.png diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md new file mode 100644 index 0000000000..3890e9c312 --- /dev/null +++ b/content/concepts/tokens/nftoken-auctions.md @@ -0,0 +1,60 @@ +--- +html: nftoken-authorized-minting.html +parent: non-fungible-tokens.html +blurb: You can assign another account to mint NFTs in your stead. +labels: + - Non-fungible Tokens, NFTs +--- + +# Running an NFT Auction + +There are several ways to run an auction, each with advantages and disadvantages. + +## Run the Auction Off the XRPL, Complete the Purchase on XRPL + +This flow is listed first as it is the most straightforward. You store your bids in a private database. You take a cut of the winning bid prior to sending the Buyer/Seller the XRPL transaction that completes the purchase. Note that because NFTokenOffer objects can always be canceled by their creator, it is not currently possible to implement a binding offer. + +## Run the Auction in Brokered Mode, with a Reserve + +Run the auction in brokered mode, as an auction with a reserve. + +![Auction in Brokered Mode with a Reserve](img/nft-auction1.png "Auction in Brokered Mode with a Reserve") + +1. The Seller creates the NFT, then sets the auction reserve price using NFTokenCreateOffer, specifying the broker account as the destination. +1. Buyers make bids using NFTokenCreateOffer, setting the broker account as the destination. +1. The Broker selects the winning bid, completes the sale using NFTokenAcceptOffer, collecting the broker fee. Then the Broker cancels any losing bids using NFTokenCancelOffer. + +**Pros:** + +- The entire auction happens on the XRPL, including your broker fee. +- The seller represents their reserve price on-chain. +- This is _close_ to a binding offer, from the buyside. + +**Cons:** + +- There must be implicit trust between the seller and the marketplace that the marketplace will not take more than some previously-agreed-upon rate. If the reserve was 1 XRP and the winning bid was 1000 XRP, there is no on-chain mechanism to prevent the broker from taking 999 XRP as profit, leaving only the reserve profits for the Seller. + +A major mitigating factor of this downside is that if this behavior were to happen, Brokers would lose their entire market share, which sellers Should understand. + +## Run the Auction in Brokered Mode, without a Reserve. + +This is the most complex workflow of the three. + +![Auction in Brokered Mode without a Reserve](img/nft-auction2.png "Auction in Brokered Mode without a Reserve") + +1. The seller creates an NFT using NFTokenMint. +1. The bidders make bids using NFTokenCreateOffer, setting the broker as the destination. +1. The broker selects the winning bid, subtracts the amount to be collected as a fee, then requests theseller sign a sell off for this amount via NFTokenCreateOffer. +1. The seller signs the requested offer, setting the broker as the destination. +1. The broker completes the sale using NFTokenAcceptOffer, and receives the broker fee. +1. The broker cancels any remaining bids using NFTokenCancelOffer. + +**Pros:** + +- This flow requires absolutely no trust among participants, making it option one would most often expect on the blockchain. +- Sellers know exactly how much the marketplace take from them in fees and must agree to it on chain. + +**Cons:** + +- After the auction is complete, the sale is contingent on the seller agreeing to the final bid amount and broker fee amount. This means that sellers can back out of an otherwise complete auction or that sellers can delay settlement due to being distracted or not seeing some notification. +- After the auction is complete, a seller can actively refuse the winning bid, instead selling to someone else. diff --git a/content/concepts/tokens/nftoken-authorized-minting.md b/content/concepts/tokens/nftoken-authorized-minting.md index ed1849e8ce..333007c8e8 100644 --- a/content/concepts/tokens/nftoken-authorized-minting.md +++ b/content/concepts/tokens/nftoken-authorized-minting.md @@ -1,5 +1,5 @@ --- -html: nftoken-authorized-minting.html +html: nft-authorized-minting.html parent: non-fungible-tokens.html blurb: You can assign another account to mint NFTs in your stead. labels: diff --git a/dactyl-config.yml b/dactyl-config.yml index 91220674f0..badfe9d2e4 100644 --- a/dactyl-config.yml +++ b/dactyl-config.yml @@ -785,11 +785,16 @@ pages: - en - ja - - md: concepts/tokens/nftoken-authorized-minting.md + - md: concepts/tokens/nft-authorized-minting.md targets: - en - ja - + + - md: concepts/tokens/nftoken-auctions.md + targets: + - en + - ja + - md: concepts/tokens/freezes.md targets: - en diff --git a/img/nft-auction1.png b/img/nft-auction1.png new file mode 100644 index 0000000000000000000000000000000000000000..ec6bb81db74c9263e614039c383894b1641c2a83 GIT binary patch literal 38187 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 S1HOWg(3MM;CRG>Q9{v}%Mkw3> literal 0 HcmV?d00001 diff --git a/img/nft-auction2.png b/img/nft-auction2.png new file mode 100644 index 0000000000000000000000000000000000000000..e07d9f696c20cb802fc2931491661a742352a09a GIT binary patch literal 52467 zcmeFYcTkhv+b$YZM8Sq4pfrV7kS-$9%d03#5nsBrAczQ|cL-HPnt+J(5>Wx^AiX2f z1R>Hw2}Npv0HK8dX?q3V-#2^aoWIUKXTF)U_cN1W@jS^Y_qx}0Uw3&T9zRk$&3Ks+ z0)d=<_&`+$0%3RyfgHVl;yAc-@|0f_1j3kad-v|+hj;H@advfjZfkE1fjo#vNMd*# zKgQaLBV>oYN<6pxYU*<}MCZIQ9)nDSnaPvZE_XMc}`JUijm zHWOgJGg{*<=Xg#<<>*_w)5&f%W4zB_yf~*~|D06ch`aZdx!y`5509f#4RvQX%WEMj zStkUxzSdqkfw)7WH~g!Q4pMnG0xRCjtmP`-swbgyrIjEc>yxU+FY6N7Zy_XbGd=Xi zMTkPgcV>a3Dj)e=e8r?M^gg=$ z?IqTYoUL4$d$T-J-zV%1NT;@Crh>oLE^miCmwEWRCvkbcl+Pv^v35b?`|MBWG2@4p ztZuJmXU9CQ+5Yp@n-L*8h}4L9lQLua_YUb&-=nA#>Ag>X%vwIIDGX@(g@k#ULC2;f zzc!;wf<)8O;?FOOqvdU?0-D~+7Nl?q7esdwc2jyI-YrDAHavqx4BWNeC%G#>QIMCu zb6c9B_HDV_U2B`O-3j4txmLPPCy$1!&^->m{OkBZ%P}K}$?p@U!2%m}bXSh4zLY6tcmA8POGOCE zxb^Mw<74VAtffcwf*LK9WlqHeU-)pc;$_rt#u_@u5bli=557UXPu~9qzj5a8b7y$( zvOG9F5Pa&YTNkUP%KF>0EXP9cx;#Ge{?y5JzPok zLL&l%h|iig`N|$JJv=|aKX7$`e&FbU$;}jd)!n~3>2=5yy`w^)2Me5w?* z11kNp{XY3slZ5GCzRWtJ`?Ty%=AD$*hoL5ne38fQ@!d=0RdY$O%$~i}4v(}_XSv3a zeJ=Y{cC@RJ)ALuys7Xa26|n%nqyITkK2uHZh;jBPpb zB_Vfy#SHUDPPwrwb}I*1b@u`fd5=!~8~n!|)QZ%SV!yzO_y*Fa2VDZ~da>q8##KUr`Di`SRJfimu8pD~?F;@p+2i$nvn%|lMS_<7* zC0&g{25T#ezbm2ZA_p$w-u9DlIir-DFgQf z5i-r#%tT?Qs!)q4gi&LAvHC>C%fDGlZ+=jG%filV#JnfcCGvoC==>=LhGR}l0SeR3 zP0j(jCr&&KvuE--Z^xN>@c_ntTjW;Z%~hWoE$;wtwPV*TAGXDX6XML{()f7prKmpq zIR5eCN4EPT_XEQ>V+5n)I*i+k-!wAkatnmRVmjN^I(gpknEWoc=zJL*dWI>Abyw`B zd4+v{W&29hAREH$W9h5%`DaJ?ukz14Xk~kJBKNgqV%MWWb{9*dXd7)6SPIVy)V8Uhjl??m_Ol7WpmfJJ0J5yo&sdSC1m%-n!iX zBBFVr%Erz{tY`InN>rrkfJjmy*OO1PDx2TzufzZGbUSm=_Kl;u=3mMW4qPYQgx!?I zqRo9>QwDC%d`;`=O>{C+O2(uSwi$OA*CVU^CP`BJ{=zB31%`hYoHwj2LP5=Hd_T05 z{NA`cn_3~&TvTapQnx!<(@KQ{ae`j=Q;^^^yBil<+hF<^DVqWbB` zYp3>xS?o2`HS258+pf~))E|qvTL}K!*Bn+RR%?8atgEauiBm<~CTEj`5*8D7otUOj zH5pBf-o$z?4Np_ya&dHhe2wl`U1M&&sfHelkwi17kdBbAP@@n>{;h)Bdj6xm=*h-T zH*K<6BACtFX^u-_KT$ z$PJ^o`xU;{o+*wWI?ZF|y|XKUv+BjO;)hRHynZ+LyJmhb3VJ?ZS&`ZMU*OVZhl8=IOuqT20avkWFt-Q_|y(g?mxVFhUyB^+s# zzCScB>IWMUomin*#{yq=gd4#z3oSi{C41(zL*G_q0*BY^uu@4dn_|gg=}G5?e(%AV z#pP+v0Qt$~(J}9yWrJ-83|iD|yROdz?hb93^T%|X?M`wiZo}(*Kl$ROO}w>z5nh2y ze;qh5QvQS{=+%_GfYVp+&}J2u0@@rJpSEfRL|#p+TEY!e$H%`u(d zsJPQdF+&?IjSdnn;X0LB0`-XAdl%+(J2A<~kU5R!-%alWrO4x3q8sSBh&K@@nbm%# z*wH@@|NihHq(Sx=MD`4%+u?Jd(Tz!M?Mt`Fr*GW*t-R@uRJ4wP4Do$`X3|y%X>n;Bi zju#UG5&(^b9Jka^Q-!2LbRg6#$hZs|oppZj#0>%w}T549c}2A^SrK(0U@s{XC# zJ-#{#x6i=%3+y4>vd)`ZqAFyB9XPl|QFa{tQle7o^Y^aiFC80`8a%Pv+D+2cxG(wQ z_^wfK{e$2miO)W?u(RLY>IgZ-e@SDV@=uSE{7Fr#dcpHLq88We{*shRxuPzipw8%W zC*?Mmxv>O?H`TkZ$4$WJ`n%bMZMqX&ncL=>1li6c!|83JVs-mC!5mDUc9qUf+0Yn0 z?Fv74<>;T*<0~pOQV*^xyvMr!v>+@e-qQVPhM%Cj`R`5oBhUVA@!knK^{1&447v2D z74(0)g#7O&%kaG*!JzR}Ad~RwjY_^fWTioC=_3E(WmgD>?ug^C&dniywrVk`9 z&`FUNQJH%i4C7Ybt5m5!N?Q7NBa%hMbvlM`GmJ<6DX#^0pz}!C(v)YH>c5>_Q+fRo zN!oRZheTQUJ0IR0tx>XIyrR$Jbqk|;Oytfs1KNrTI#>%-Z~#-axJ2cFk7O{+ep;Jc z*B(0;a9e`isdwILV_bT!RU4Ul4ie-sU*&P5gV3N=SP@uF<>+r*E9XDLx*QFgepBLS zC=7!@YMxA@&n$0!fBioRp+zn$R7zE~Gt4Xb*ozi5G*03q1mYaeT}RX-)svxY+~qTq zWACCqHN*LR1ADffLLgXh7I|l-$LqC@+)~j{1l`IW%Hwyj75_`Eg|o_@yx`aGBOnl? zxj!epV5x~qZ5BLeRV@`He>3a+2v55f2Z5k&9v=D@p@W}Ju(_Va=aWv5ph~U7Ltm=C zj&^B#cf;Pdm&ZPqEFY760um&p{_nH8YS<(bGjsj=Ds8&3_lM|Uk>Kv<9riFNeD4KO zk)IA?5qNRCX-NC~WG$P_%D@3ec* zkMOf2J=TnYPs!(2Xlr(#GMh_w^Byr+ZLlgkfZ*K56gV$Q4`~_yBXNsIx^Ak5PHk0_ z%;@@VX#MT?cLorr-YZYX3BT@SX0G+;kW_J;G?rJ031{aKRGNa<$bqIetPR5iltTM( z<5g5Y2UQUAwrEjt>I?r-HtQ*`WbUUh#OAV}J=9t^)o=vTV$6G}6jyljzt8p0Sl$>f zlhnVg_SwM~5xE4v8QN7oD7e?im()7F8JCTywz65nzZ!X&vp72kyW8%P__}jU>RItl z?nVs?*z{7?lZQqvoQv4~eXdEMAY?*B22Aed?11_V$6ypw09r08p?i+6eY+_mmVMux z@e^h+F6xEd!>6l5__XHr?oAOd{I+Gx$WVGm|IpV8iDx6F=jRw87Te5+>U_h{j5Drv z%=qcXyir?^wkoIhts)mw<9~>?B`immG%z~oMa`;WS3{>Ye27i1u7$r<-R`D2=?-Hm zK|!yHTA3BTjT9Aqu)b2HWZr1S?OoxkHD|`qgQ#~Gs{~T5EqPC+3^PQ`eF+6 zbrs<%aV=V|_vQ8F7S6<}2VOR*q9#yofwk6L!hszI*Lyqco29zuU0C^`EqU(#xCB8d zp>Ogf0%T zT}_yAxlL7!9S%JE)j^0b!pi{(TKI5;2CG5&k#pqO&q9+0Y`XgE-T}4=OFMV(`?(5P-UPsM)q;*WBLoQlQ*TdDi(oqq9HYx0T5>$O8$;{0l zqLKPSl>)a_*pCuS2NTMF%{Sm3K+4$KuXiu@j`^8DS+S`0fH9V7RM!q5xRVTS;{yN6 zs7E#6Mw5XBg1r`}f8Wo<+gt@73XEZT;3K3!548Y&=({hjjxe0|sb+ZPr-y(7R&dmWH5e zv#*3hJbhR5p3i>M80URGhOUHfjtkgqhg`L=!3G;lZN2ntYsw0Cbl~0Mwi80wiF_IY zk=9@WC=Y?~^3vyH5E{cBl@%U2E2G&}-o^G(8T!mNE1?7XxCFz^zDH_r&LnVFTf1PU ztLkftT~$4n6y&*FvOnj`5F!#%Fx~i^>NPRyB_6@10JUO@OB4LQ_bEurmToYOkhP>2 zX1JQzFp5{>9*KS_j~vysjl%5Di?a$RS9@iX!BP0-MeU#U)E(&w8Psta_6`vIW^4V+ z6xREDz)h;IYRfXAYDcW-zGK^bvQ#V`#OTr=%9sC)&Kgzcqmh;EhH|aTvvz@xx$@uPkkv>M7O;%1~cr2-4r>02qBc_bS!n~1vGpbdto@e<@4c5X1 zk%x^cNbk*mpJuF6^F;Vu1}9A6x>N)~+q2rp0x%K4aq|1C) z+}^5*TFl?cDfwv>EHMKqJ zALH!w&@`!Pj=X6lxU896l8~R*#nugD*iAK6Q*R}DwD41aK-88`%LFrqs5wErXTau+ ziz?$M4F@dEzW=Hrq`Vwy+o7q)8S4CdG)g8fQNv8V+uFw$p(EbzGPB~;>s$qdykQvA8L&aTD(2V5jK4GInc*7=QydpA zT(CxS%6r<2JyQy#_)S{T^j$0|YIk=xIXOA}+qZ8Qd8oaa<&BMsb@laz4h>-HExji8 z2`-9SqV4$CfuxLsgf0h@D2LC&M;9vtqI+gK+^vf8G27o3Ew2$QTOENKe-6b9EiW&p zz)7u4;(DRLz~^csV&J$&=}iCKF&Uu9!&sm+{nOJtxQ6XV4VxVtw6;^j=KVKs-n0R! z8a$f-+vakxv&??!Ql1=UbFLG%zC8uUwS!*R`1qF3tOB`j_Q~UZt}%frR(BJXx30!J zM@>v}xEN}ys)^}es`kjiCjzT?Di#2Mx<%r1^m;f$=0i95%+Kzk831SrZJRAO~?btjl=Pq7+)bL)q(FCAb6r8(1km7^{z!7u7@fsx_i zWhG7ARCkiph4R+txw^wHhEDnS*L?~pRk|a(@-~T%?lSsZv9Ti1dy)`HS}epT;nbNk zefn3uyu3QQx*nW5b*gQD`|x}nXJCLCTvPj8x{HNU4@|xND5QNE{{wfhB2{f|r0KPd zhzkOXG1Z(+6nqIXv~%B2scElW{Js(*c71(a#$#p3)MVv?z@wqUWJf2bSkP)~Yf~lt zW>60IQ-Vs~vT-r4&T)bPo7Xz`bKa;pz`rV?rH}X zuI$Hrhx78j>MHoH9(a(~Adr^9dif}zntb3iK6&dq+ZG|?{9C2B>Q{E~7SJ4d!#IHK zXORxu(N2D!L{tFv#bkIba?_xs=jK%RTe+m3gy`Ce1W&NGdDq(1tDEIWC1Hi8hh~k; z#Mne-X}R<}?INU~tBUF4dI<*I#rI5%?ZRfNyMxvE%zZ4EukNmDwngWKR;OeXa~)42 zFFcI4nq0v*cLb6#n`apcl=b8TaKR>&Df0G4U~E}Q<2sZD5S)~AKKT82A`nQS!;yLY z_ejiKR~#SnKZP4W-VyNi+FX(J-UU~em7zQt-&@(Qv!AX3)Uzv&YnZUpR~HYJigkK~ zMd|sZr_^yvY%FZqjR6uql{-+y%uM8YBBSDn)kJH@3_HRnhtjKT?H&g2SRVN~;17-k z{ObZL&Lm|HoZ$}vdBbQYa&`DfjJPA3t@$x|0@I{(Dh^65$>W8K)^5&lY|d$u?&67? z5slS;_PT8MX^yAJl40{+5<77P+rPh0w3~*Vhy$l_@x)uFxZvPmc6Rpg!CY-MRb#eV z_ud&`YI_0S+J!YgZ@ry2O(JipPXhAZoTn(8cxPcMHxhQ$rfTgGQth+B)1N4P#sR;L+a+~r* zJB;gu~QR8nEIN(_0t2ugLIzw6bZ- zrHFjQQdX=`Xd4X;<0M(8(j*$aI*R;U=3tu_NXl8v<_dHztT}F|tHC%z2MLN^rb&A5 zM+h`3Wv0Il?an!MLH?2Ai?6`wX=w#DFoM%J2hf_v5xxq|sb@QU)Hpf@HleojtTM^@ zNeyS*xE4azjURjufNM70R@U7xyO{l*`#9LGZ|ms&3bJsZ@f2g7l}$d)lO)>ZvvaQq z^PnF?eU*rUicr+JENq(Gjkup4SZpLXfx1+N*%(*^tp75M^|KRB2&(H_R#lPXGIa37 zt_ILP5#_5}MZ-hsiTuXh{v&pFlc^mw4qlgW#%bT}?P31hfXFsil$z6LU&Vsy&;H7~ zD{!-v648|Ewna5R=OyUhU2z#qzz$X^g)(h)}YaAIBCNs0C zM=q#^>7J_t3(~DJaMsmm`vntx502-Ii|52<+*aDyni&A(&A6TTBH8pyzC{NIz&0?> zY1$Ik!A+S0M@nx9a}rY2v1k!sw_r=(ksUyiW$osTxN28!Po!vI5}T?(B&(G4_1u1O z64gi^tH0YK*)Dz(x~vU7V;;53EjATfTc4Rsuo?5_7xQllv$mGJNPb+}ZgC zu#|H%VLUP6$xIP^kuWhHMc-RA1CZ3yt1oMq3W$$MLCS*u*jFFfQ+~Cc*{&dP&^foi z;v}IRa}m*#{}Fi78*)QQ9mc*BIg2|7z1NGHGC4JZU9qSwhvzl}wW-Df&^vE1NuI^h z!~y7;3P;h`=sVNz2(t*ex!=@b6Fh0Gr+|Q@geg~v$|(mTq>n;^tgos%YU;Yxsr9T0 zQ(IlKSEJhQ`VT|9d+Tl`I08;ns0AR`6;OQ|R?&O`8rjT*ujh>~lJ>W0KET&=GLpcW z5vJfy=`t>sVmrOS^tS=SAkU_kq!dVlh~G6kM$Cevz}}0=PXY5jA+fdZ$Eo0bgQi;u z@~Tabu?>y8o(aKZHHMWf43 zX}Ba+orGacy+s#t(vlHl%PhqL$0L+)L1?l*D^S0C)?inBN1o`w>Ek3#dgVOpPn9brf)wVb?koMJ{)u0auC|{wbeCm1)mXg{Xw;KJS8kq%8n-Jwa<T1huI?cP&J?0miW4c|$ z32ZG%L_a38vmoA^2DyYP%^HcMbJf*2Kh~d>Rj?Bpp;eiQ4N$FF8x7OnH>b zsZ3SL(~mmsUPMj~z02$YCy69}M17>nIIT{jG7qF?!eQZ|KO^M@`21SJFn*l zBwjJ98&r@=E;yT`3`YnR`}-}M?(eI|5{DTE8#gk;x;uTcn<*Y1_#8yH`Vz;W;Kmx< zb=l3VfQXtml6$^j1fow3NhH*uZT(cPx^a*)VjVA8SuDvLI*CCPC{gZsa%oz1>Gf^L z#OAsg1URl_lMIeFsmw7CF5EjM}l=#)h|UU7V7w;#sbU(B{_q z=72@HM^7up#{fT3rub+qEA``tJXy;T9NW=V5N0)(Z&GlhJcr6n-LV3>wA+bz7G5uW zj+8&l7OSa@_Do_(Pbf+kCXB&lCasD>rCt&MqB10PuMex^sCH%}AY7P;+S)~%5t10H zqlQsW;8WvreB6Hgy)KP*^D(CT2mQPOd&m_j@8io51+z1``mFp``MNk-8%cW-j<`163fLolVX-Tb_PnEkawA#Fnj?M z(1vM|#%7VV$CVCV`yP13C#L6ZLFlSxm-`W+BHDAc8)e@_(#ap7#Vp5$(&gOzw_cFN zZ`mZ&kNE>5De((=gsACB3U|k)nc*m(nD=p_3hN+V0zX*w7djn_TM;}P8+O23e2S%@ zy1Z;hArX~d?9pT|rcr`fYY21#z@U2MnGu6nhKBSz5TG>Neg2h$cpvpHf9E;0&4jNK zDIp*4C?-t(_?zUm{M@s%X~m)3;FsCOEZ5~G2JRxI5pSi*mcG8v%@Cjch@B+*%KVqW zjCUz0eQntG$6NZe0N!HH4O3JtCh2S@P%JMlfnfjse1CYee=+-P;_E`@g{#=T2jgPI z^J|lh?GPV#8T#0Szio;n66m{1F2**q=#C6FS}ZFX+nTJ#m~K+MFanXtW+|P3DGl)i zai(EZZAIi*Ftyw$A+0ETf~a@Uc=K1WhcXn_x4t5%)a1-RdDq4~fLH&h%~cOW9LeD$ zt}CJXN3lmAjbbBzhDt6FfFf?@B)U`0N{mf<>>xqCe+Qkywkr2l8-@cUHQrTn@=jkD;TjrB51@`f)#S8d}suNaqxO{aZ_PVOv6acX5k6F4XjDVrXE` zsAGFrG(#<{XF6m+rG97#KTe2F2&N224HLc@HtC*fc0+s#q>j}|g;Jk*lb%D#ZixZM zg_>`e$;EQX!w>~icwkR90hnaeg6xacvjt@T1F3C4w77fW{XQwBSuz6zV$f-PIu0BL zF@$iHa9@64`I$Qk`v0i~D3vg|xinB~$@XQS)D>=c@TBK*-uXVLh}gG^Mq!WEI$w#< z_H3-Gwi(oTq}ccGgS`h5uZq|-sk4|$g!pNkO)d;ESM-iJ-EGmJw{Y+iIPu&6jK8dN zy;Nx2b650!BNn97=Kka#swXmGfn{Qy{=#?WrI}!-00ga!=sbzSI@AM4^W&ye;7A&X z(GxKPl`-X&VUlCxT^bVdja4PeOkw4bOThnA4C8BpcQk`^l#$$@44~GMOoPC4>T(9V z|Dt?>XCH|$U|co!RR!&tYtZ@R1C5(oLEE&CcMF@A?5L#&I$HHopJffm6`1x3d6wtT zWi@4s2DALroZ)7D(S>iSkBvvVk|oJb$iwD`51XApz>MbQ?;tOQ^CIL}C>GQdPf**% zC&pP90LSwGH-#acyB$kS(w8?hbh0y>7&0|wUE0#fo2|LU{xe@!!$caht6vysT1tI^ zudAv2Ir6AB&LOeKOwo3Aj&Jz@>cdO_Sv=sXJ{MH3dS?T0)2)PUS3_+dlcoE{j%uG< z>TliX%g@!oICVD7;+&9fB#@_33CM0H`73R_*e5tc;$Pq`RCU_b=??mfVjJI$?1Cyo(@e1e7clc_OMBx4VidTN|I@Y%v0%!JX8WKEE@MUwO%#_EvS9cqbF-EdF2SzT!4 z9;FsU7xm&yFYk$2J1hV~cd+hro!mrl_H|T1EZXB{W{EN$ik3^22c2~QOE&j012!KG zgs~c!0U~#t(0dSsBuMc3i`6kA?|uI5FNnPd?4!${0uRT5J&h#81qCOlR+c3e#d3aE z!2n*L)wFePgXAWtlJ3-;hh+{VBDxW24dx0^)wbf0WdUA&`LoT5tw@m%F%JTtKebkE zTW}MuW_4p_m#!Q_M1_Zw+QXTUBWIE^+W;#k5fL@GxRsITHo(o;%67ATR9-tleXzDB zrqI0SIT&xX@Xg&;7+a{W2rt_4Psh0dJ8cM0C8> zvZUM0o4`yuNO+9{*PBg6rwhVs%?iJ*jz=F^THpQ#wDQ+4XZCtgjR30eQ zk48}{CU12SNa4Py?rwEV9OdEc{X^kcmT%+4$$v@^OYk*5Tb%W zSWd={gl+oef1Iq6uN?U|lFHWv^M?Y2VL3z?mEa9;|7G}1%aL#4#Z%$HSYYF=@+$F< zr@KppL27{GPa^Nit4{220%hkyoKT!(`QRNZ&;jFN2c^p=W2ImJkZ=RzNoyQtqwVcl zt!g~@DF~j9AuP35Rkdv$N9F;A2SyhTSJRSnP2sf(7KBFFsD5;iLWw^})AIZ;1wh}v zAs|8A-u#vt8VBUoZRWcrMPymZgkj`WGRXFh#1JQdv=k~z zX$4rfPtR;F4i0gaIe4{EK2<_-qfbu7^6`4EnsCek_HIcax4*5?GqKsWY5)Ua-wQxk>?mFMgOXw73hWswwFa zD)H>xUika&!$urlt|GGowc&_Udbq(M)6tUZx;hWPzh--z#)-X{7*k`z8h7#}z=tLQ zwyEkVZ~ji+;vF^9fV|xRIJfbH6!2>-aWgAqWvc7u=AqmTm6bOZW?ib*VwM0-lcyCj zV$j1T0TUoS-DL7f(G!arx>Jw3+-`UcnTAa@2|0#k~&q zw&AD+Odm+|1Ld7nc!Pm8cd}(dIf|NSnbUuD>i%v4l%%2AWIj3PrTDrNel}O7!i5KZ?ZdJ-*|7N?3>)Ec8vD^oiaWL90{cI z22T|1yv@3D?S_=!)>3z`zllv7MGcfjgooF|3y@|`F*iYoenhy$P4=gBr-^YSrZ2w+ zHa4YCRiq3dE`A3&=-b?XwC1%JK1y6|eJ7;9F3?6*^-c56ebQjOKUPR#ee?o?kqx)5g()1a z?u^R~B0&H&wmIHdXL{1))KlDgbd6uJ3=V#Fq^WPMKI*BPiOr^5Ipdc7G$;Ys+8vk9 zVdaJ`a5j%6~%{eJgbUi8d1V;HP74G^4VQ`X*w9z0oIG4o?`0MwH04_eIh zQdTo+wtkN+jz1}>#>epK$oOU})BB9P?*9I38=0Ly8D1ggWMbn|G%jKUwkcs9#P7#1 zO~(~X->w^|nq0W}i!D=oE>*ts!J5I(v8L=`$LaWXXLrBPqp7kV&vi9b)WB*65HT4J z%5v!efNCpGTb7h%b{q63jEt9+v*!ax)Mvb^{y+}bb@BVC$ONL!oD*stH1XiE{4}S{ z_Ev4l=V?G1*05Yu6Kd9;F$x8DoRFoO(?LeR{EJ>?+#$5Ak3>VEy@ta6_SSTox;awF zl22#Ji~2*ak?5%unzA3YY*VIQkdj-R6xPWs=*-C@I9-ftn%mbqX;KpH%KAz>Cc*Ic z^O3iqS)k&jQ@Ci$xcqI?R25KpxQA68sdDVybW(k&hb?S*({F#m8u4j>AW&VhI}wd3 zKs4X3sEG9VFQK-`4Gg6V8R5FJJ-YyFE{RC59e_^R`M?c*$Gi=tW9RL*8Z$G@y%B^djf7ub>zXr;FboN%I$bz` zywm78l8w{W%_tMe(FYuiBmPfWS;pw*X86%qeTKK?l6c`KAQH$ir+7B|SLN4PPz$80 zJ(GO5L=-85rT?s@aq1Bp{Io-c^mLAI?K7C}Nd9OBj%@rWdl&-7P159GKr7^!f2q-L7WgVJ4YisK5~`znVbd9G0v*_?rZ)+`nda_J&}guIX8Ck z7>z2}6I1=wy$72vz$B#BgB-G3qeZRzw7eIJn?U)LH&8batX5Dm18PxVqXTkO(}_p| zmMDJTR4xg{(j=i6*t3~0A#GII_=`ALS4pb9k7@??!0qv29Z6}Qz3s!RShS(;l^W`c zee4r<1^M{axtNUh%6Hq-!o>o9UQU0i7bdv4#GtWze|W0ilX?d)Rp3k#fs(I*!0RY* zpF3f8kBA_y5SVCioyWVvsMo~jG!P=qB9O>ye*60b<#$5CpzLD%Y;%TTYdl~+3)@5Z3Q1HBk=NYo z8l4?S=D38^*#&m$Vr`GdWK?DLwb>Zcwe9C6!)f*VyJpL>Q!fY!6vY#eQg34;TJ3qE zMKyAF6Mp(BG>>AYop%(k|b?}RG%!lU`v>=Rs zXenr^zB&X0&rUaVn_M zMe-j9jG1=Xs~mY29*$@fJ{5AmVL<~#QNdMu_2k>Dya9gxEq|#TJznDf{jbB@Eyw>- zc^zKkjJN+ua&1*@;cbx0h-Fe%gz+9ewm5qJ%3W3Ph_^3*`XwUho;O}i;6KAWKJx53 zJ16lxn$=}UKyi(YMeUbmZk!(uiN*vmrMu5 zMm!y4N7PmVPoPI;_@Ry}0LBxdn$y-`!54h5Tr4B1E4SwwX)Q^WS zZ`uC@0A`gJZ)(jUO z0x%fz|08w%v$c@_H&4L->GCil1orHI9ZmlGWU1Q508ZcGRmu&D_C95;DIfI5iut0^ zPR)vr&E(zJRZdP$(4AdS{dJnBIc|+3Bh44h^zVy8ALycwdqf`(j((LH9b;1znjHPQ zv{2z+KyHy6da+TJc;{!f{dAXi;`w)s5?B8?%@Bx273$8<`<;Ak$F2+f0d0%BMo6q> zvAg_4Lh&hjBT>T=bB7m11Z5{TYRVI2>Zbe&llPpc>-9L0b8m}u1YKUPMeQ%@{6YHC zH;LyhAC35|5dv_8?f~fWIk%#sD8aU4sQiR8M>tMDTormH))^W7dIFZGY@@Q>@vW}w^uXX?#H z`23C0n1{rOad=*~NU1>)=A4@#+Jx-_BnbZqNUkNP8ii^%U0zYcS{_O3S2vWrefj2X zIc_jCq|}%;HmuE64;o=W2>a+7%4z?_oQYcFU~OG=T1~(q1XZFT{9A z7}jwWdq@OF-wFS-=Fe4%o3`5^cV2oNAf8eA*WYV~93kW^qP(? zm}_@_6kfYwdT8}q{7`;D3W|zrW=9rrKb83~}=!fW5J6-5Cv2d>hCV_mnNWfxrHIDLtOEB4%l!@H0blWMvx z_2a>RRtN6g{v^e7rMjZRJL%6CAO_!v|2e{t{~M~bK`r+plzC)gGCnxvo|KwV>rLg) z9nk#AXHjG;>MLpzeg4vQ)#qtff>MmD=nC2`ID{U^|7bBs<1HFhN)w-5Y4MeKJs%y+ zs%7ybgzo$$E0fo@nsFcQ+A*p|T>hac%Kt^dh&-5u!< zgXw*3{H{-Bba(z*Fr52|7SKFFQ>&qe02{Df#YMzVI6{otT&Jy_wpI-`(Hv>QGnGbcoX~g2yiGf_xGE%wSsI6fjI9SO5fE#)RO5hmE*wM zCU~7`=b1PFtoGtYST$D+gOjq|Aw#vG182UpV|{%!O1WXJ6g=Nys8+gMU$rg`s2&7z z<1B#e!ZLAE@ort|H{3Na05lV;qfXg8mt3{by-ctlvCY8d>oMB>5mg zwSR~rX#W5Bo!E_kbitkvOmO!P#5Ex@->~iYdN6fK5tI0 z0j@61?5FqK7+Krva443T01T;HN zUUJC_^t?Vj@DGTj57ZvoPe^GK*hdR4q0^JRyj8cdRZ5J9?cLz{ec4qSHo9Gx;ubd= z8)QLIT;@(JJ9v&Lpzk`Z#T>Z9*6u%bIh{-)S=^i*AKu~a&HQd>>lixLT2c1S{P72dKK{Z#RPy4wU024X>z0%$`H4w4)Vr3q=DmAX!dOlR>q?WSMF8-2jXL@7M_nC_$y}k^YTnn}BrfN%P(_7j?86Jsndu8elIj_{a=7Y=Xv5x&0N`0DPs!iBNxqp=xQq#|!9-taY> zmlKo!@dR868a@a!d_6cmNgJl6^-vx?FRK${!qcjej#iTs=7lPKi0BtR!)M;6q4{Sv!75Yg1vGt*VDrw_%1?`Jap5AKO<4RDxYu*4z6Nma`&ulh@>6FTi;J@bgx9_c9SfIV! zGG5OUvs9N$aa&Wm0WYjS`&p$tu}B`|c%FNH;E3z1;ZaC86GKL9x!p$LJ&)ah^}w$+9h*}j?I4?~bh!5OGzfMxd>sY5np9OL zR`j6nPPOsHHlVkZTE&H@=+Os^%U=OW`&gUErRWA?+zSqGkqXcza&{*lWlub6#@hCV zQEazom*Hz&eY?9>bt7Dg%xvZeszP-@=-EH_8;h&bie$Y>Yd68@-qT z1h!g^KQ4;)zz9U4%OSOiQAe4l;c~Oe z?kM`M<*$HLFrXbthrnAF$CBzWnR29j@SnocUhx|WVrCpwLpwvQt^b3)_l#>Qd)r2F z7&G!+CCr8nsvA=Cs27K$Q7RJwpllim|T2&hPr7U?}mjSwJ0 zAOS+iS;3j-`M>4M`E-8o`#bv!CNbH2t-aQLUw65#Jy;z1U}1Nx4s`aJn-%@A$m6Z> zUb!Ef5Dla^`E%4q7C^`l$kUr$s9Zgd}6srm^cb;kg2Wp#AtQ%xKt zr1r{-`M3ThGrgzHS94| zb#s6`Sg1ouc`@mJZcK?E_?EO1nfkk+l2j)v0t#?%$9oej-ZaXa?Fxtw1vUsd;-!lI z?pEU(D$T>UNA329u?*920-xN<|hy$y+c;bDOq z^o7S_sy^Tq--`YaW)W5;3m^EJJOvX}`^ss2I0}(vl0an4<&JQ1^w4 zWjchxM4NP<;^bYaX{vP215~c)d-~KO-TH?#SGS>h@}n6{JT@>Oa9AbDu*~INM=tbo zlHtC!b;m8b3_5?)CM8p!8Dp3G+j#FH%>tSbrdIh)fOT8VPJtd3J9aV7=e(m0$|C#g z20qVUYARs(%x%|maE=?On-WT4lTCAD;9m?YV7!Z_noBuUWzxi*FOl6~;?te0+xRi2 zBZHWhso$CrUTSvVDkOB!UisDjs#wgV4O7CrUtMbz7x6b3)d4XJ7iXJpUbK! z*zZ%^hkM;yehyTGmz6kv%@) z>UjtS?>lA+$FmC-YrWuKBEu;aryREKF4qUR9G=Dsm*U7ZMX|OnprsR}DK3Gto$wce zpBWXZ_n0U0t0OGyH$I}Dv`G|QYAPC9*@6u)9Sbk70FqzHrCZMd|C)E(G#uj0`f@D+ z#BD(Gh33s74~w8er_s}c$qf=(Q2`&S_Xq3gu5K*cc(+&bkZ9Hg*$*vG%pAI~(dLf? z{@sA08;=6q?W;G>vHE)0B62~_QA6uFb13Ue8Dh1gaO?@Ig9emqcmUFliLqr)C$DzD zDjOP?(%Q3|cCsK%r|}6cor&DZmLB-`?e8#vqpRERHe^w#Wp13| zNyP3vd*)uPs2sy`x8iq2_7-LNX@Jn*9ykj)I^al;0|EBm2bYVdwkfL_mf15M@S(Zk z-H=UThjq(I8jxuPdrTG#C?)!6h*Pz{mK<7F-%#iI97zQw$=mbogp9&58OS~QICl-r z+<-G~Aq^VmCPu4zK^l}rg6M7-hQ!+JwD|1Cx~i1Jt>c$RQ@Ozn1cwJp7l|AVj!;Ljvp$R{MPC^DV2$i`LdogjLlXWiK6BB|&j&1EUt z&Q1i@)~JTnYcoWjY1DuC^V-Dg*v<7%)A+=xl@;~@@;Qa!HzYR?sY;PK+Naq#Kcv|x4lOZWKS!L}C9B#n7WnF5TK`j@&RD`}$pPsg>LkdEg zE0!QBEfytwSH|+!!wHrj5%KCYEnh41fuHMlwY&{|^#Q_BRzK~#Kz`ObF>0+w=x8bk z3!wg)HYOS_e-aoXLO$zOmZu(iF=XW7;lbi}%kEoqKtgz0;{`2$uIeI%SiGE=7#7n_ zKrJ-*Ui|*yr6+BA(D|*HSoY?uR-HR${0W~sOH^FY;obf2t5$sRCM%SQd{(2|{v6I* z1=nbutD`d>-qKudMb^-u8^NKzZ+AiglBe~2d;MsdqiiThy+%$h7dl7H@mNO=d7HJ-F>(3{lp@Lztsm}fpG_R zG2li-{c}J*v#RqiSgHx5Q@cVN5zO5yp_@PTu|HNOP^p3 zFhiGYOYsf;*&Xb;rR6c;b!|3r=v#Ft-DPSO;M}KRC#@(SU41+gD{Nb{flPjnfs~xY zl@x8)+-zFDLo~>HTU(^KzdMnZQ8N*~wK^vZIt#(d1f9vrJuEJ!hvXDs_X8@q?7bEi zk8VV5W@bj_%9Sf*3>0GpxR~1eyY!S4ipsscysXz(Sqs2z&YCpN4XDSVR<*xLjQfml zO21$JxDudlaMtg3$>Mac_=Nk(FHnqvGM(>uc1@W|QWiZFT#5U*r}g|8+!#wNE}^bF zh8O{Su`Hi%dX3i9OdTF7)u|uJDn)q7l{nOA=Tj^G3zILXGUsKRw|o|^OEygMtTe+dKLrgLndtq%3qHY;8D5c%wAUE)Z!IYV3J@{&2x4ZGw z>T=nKD|_DY+1)c`k9sw#E1Ng0sN_lEvih}~0~F3b|Lim`Nsnwze7JEfzN9#4zI`)Vnru`T3Ykq%LWa#HnmT`;0Xrs`I^yC0=&dY%b%L%?YE?U0?zz+zmb&b~kU4#^DVhuaMkNd1$}-V_ zU}<4#309Ic%gnWGZf@#-|MLN4>-%z+&$d!9r6y*q@u)9=@t``|7pv-naR2%y5@U@6 zE%x)B6b_#Rh>V4heln`EyD+HAC{WjMH9w&^a|rniAH8&K%~B_RSXzq!CTpU1zHL8m20 z)&~(ni28s0l5}X0uq!1F1L+RHm;C_q1bP|fAK{Z>v@QV^Ik^*HNyrX`%_is;9%vh> zfIuKsgOHV_r8ir<1E#i;>Byx9AQf|uX3@b$nqUFYOZc6xysT)h^TyiVWaGJ$m8=ZU zlGSo95xR}>&zv~ujE?W_w)MHP?Tje=*7e&M00J6;F!2l@d%69siC&nhW!~*%#1Rn0 zwA_YuEfn~da4^LBr8w~ybo!`1h;z7bIC*L7YrJ|;uggi+XcbiUt%)xzElF?~5{)gs zh63#q^Q%ihPl3fHud=wSn?oH)efRF2dFv5C1mD~Y9&n(MC)Fuo;7(gfneyl)XI@I~ z&<6f?AaK}xz%RF#hk#UFyY3$t*s{=<@8Ifsk;Q}lIn_jv_$a|t4Lv6Xq4w4Z+R~HB z@husa9^P5uM56ENL!ah#e2d~7MTKFtExxf_mJ`^)8CT%sS5o+$BHcaVSJ&J8a6K^t z4#K2S*Tbbnn9BmIT_DHl!hA)s_0cmfjEFZQ&JJ!&U27VrOZ-aW2u@$($o`CaMO_R*X8 z0M8Qnd}OQf4}yeI++Gh&+!z<#@wRso+<`3(kkMZAF0F`$${ zF#7nM1-fMd*LLaz#(bDtE>Buxt6#g%)Tjo@3+tDLlZcp7rODtydzRJ>AT|EvHZBhh z-(+%{M^bsQ1KqY+JCWSohQZ0ByLnX;;kk6%rEdc9?`Y+ZPyZE11as?g-9 zHO#XljK^;YoNzjd-#dlkA#*hd+}DPNhT5qp{`Ww_gf$`N57)rHU5sNd_V~OPIkA=M z0+P7V==+d&QD9~oz{xXDir`O{XDSD{&(nbc=qj9FCXtFx+b0WQ!PJ-!d3kxUtbkLt4iu`Cp@Ir2!xDiUEu0i1PV@KSc*Qz8ut23JV5i2*iP*U-@LjapdUBGofAR!Q;W z&0|9U#Af5=`&u^NwZ0y_3~)#sV7v#_*1dMnL$Vx1sG9nvyEesxgM&b+?2?~%#9Z~u zsa4wvvO2VUba!d4hIz6!giIY??M-&Ug)etrw+j7kDRit{Y$9NbbkA13aoOYi!Jo7< zAXxAH40~+Wp7v4C+AuhGP*g}*7(FOczEZFk*|OQmvO-(V&oj*)-bmMli=BOrU(CY8 zkmz?Z@4e_Pr#uQ!R$7|IUlQ+=_c8!>At0=Ndw6QK7t|vvvM+=oKyhasN(w3lp&bZC z*~zkaU8~?Q27VQyD}oBhB}?1J1T$XH1X&xU+@DoRF)|1aWsKCxPM01m^6^->$P$ap zfDg8&jQMe^ki~>83nWxacZ679uoDBMIgLY8s~fpq@WTFy-q+!3%;}}DmNjmWs=PTH z6GL0`P+w8sGHjLs1&5SV88{H6op`RBv${9S60Caci9e8K>YQ=SXHfIdjOW2ys~{=L z-Dk}0APT;^)gr*%!*o3S0>oCOaj-$wSwF6^!gnn>kTU>gB?H@XcR>Y`S{Ona=uId@ zkd)L^&Wr4C=rh*C?)efQ2yMKVyXRYVIVpLi(aIs-Y%_&dwzVTfmGxtLjJY!+Y7G>$ zhxc(IQ tez&#}1me^N+WJnbf}D>3MqXL3`xw`GQK^i$E0oZUh>g;NF2b*@Y2#mG z&IhcR^#x2-&afATj|s{M1ka_MBqDPIr6ty6?0Age9}o%5L7a_8#+A!XqD34FjdCbG-7#v{4gN5KbxSwo+mdaqzm833sa71*7W?X{V?hf9RV zVt z>a0TMeWpiKnTj9>gvF~W3| z5fJ1TQ>Ri1Cu|H1Pil@X?c`ns1Bl@$%a;M^(}qB&D>xGvPU3}4G2n$bh|bYQG5N!z zTkQ`lC|A%f)G!4!FZ=3ves685wPbwRWsTDOUbJ8QL1tEr9>P>j8WhT{k};H5&C7`( zNg9d*>F#e3ep=U97!T{Zzr$GV6~~TG3O{{HMyA9lRVV%)-S>)Bnh6QEELg9p2tBN# z*EDs9^Oo3mfsSOfdH3MC?neU^3DZM2ivr7_%W&T__nZ($x0kK9p_(&m@iIW#m1unW zh~e`*OnavGitzyZtUI1Mk+4SG+n-hlP+Qlq9`$P`PnK|x8ay}QdZ9Pe=hZP#dbiv0 z>>Sw3f4K~GTgbS8)&atjvOcH* za)W%4H5fZ%R$qTCDmP@KbOV=fOrIUk9C_z5My-~Dj!|QT1#B@gjwF8Re!}B955?q6 z7tEz!ejtg}+VMdTmE@zPr5Cq2&?`P?(Q31oaoaA1&u^^{pdgWLV}W@*o#t;t;XYrs zUTqx2UAj+uXdkQ!NgQ-(2t7NE3;iOQrT>t2^CFIBK{}Ca@~APHmia6EQL{hH76E&G zARe>_WMoN962@&B4E%r!(~VWSm-WEodE7zc4&qIaD61uXT4xMj|B_q9?GmpWN?TZC z%ojeh=_;J;4N;8gg(}#X(X_wc?_iQ0F_On5;P?= z<}RmAhDz?w8UP~&s(xZowF4GPAYH!mU2ByX`?%R;K+y-eInKPz826zjGgXre&$^j3 zr;ojA5V>QAeYtPV@^SOC1yEH7v0QD5zdoz|Vkfyko)$UO=K+d@t)O^=>8|#F9X%VH zF$2QH?W}d1y?fHm%8&PZdHyv$*Xn{+7vjJ1Zq~{x0TkJ6V5*ThL#5q>aHrY_D+wb+ z+!Z5w3Mf}~n-`1*=jGpNUcU*eYJ>%l6Q|_z+JC~P7eB{a$6)4zLEM04e%*TP${MX5 z1@ljVAc8btJJGnxlpX3#5C{BiUFo}H)Vp6*AwV%yu7ukPFVpvm1G|!x*Kd!_BuPYL zO4GgGP;hi`GxwemP$VDJAwLh;Asb708ymXq!*pO?1f|1521!HR&%ZPuY?zbQwKJ|G ztqm15golp}=^yz{z6zu&S=8wAzm8|?6*)?l$k}{#P)o52-cR;RBh^vj+%PTmDO-E( zhzb{eae={A|6km%^glklpggZ7Pb&3yGi~y7uGIf%@cO1g=BToh$B~2q6A%D{H>~!u zsNJc>w>Kj0$@y=+zQKC?pB}LcjK4@;xV*QB-N|~DRHUp=*57+s=YN{Q3T)$Ap9%}g zahD&qp)YX1Vttd10+7Z>KK?pC@!ffZs)vZ(ejMnCE8Me0zna;OyxF1a-qZbjcq^T` z>IwSgngG8596aB%^8k@9dMF%rr6q4|HF6Si!YfYc_-}fzYhr}!{Mz@r>OTIq*QB$x zn|pkfp?6_=rMqFc#tSh%o)U`)n-M&JfXCHy@lHKu*J!6{;L{c8f|fqReLRPC0u4dd zV2?Om{Z&3FKJNkS>E7{wa<}^br(Ki)JO7%&|DQ$ie>COc|BOYX^+osAKkKcW8)S?I zYnYPg@yhREAVb_z3+gwd(Z-sZfKPNZ3N;wE3!|0=dAl!5YwUSMwg}~Z{{8{}-v^Jw z230aQczxSFXPsX}gHnH|iyz%F{tI`k>3|qA#z6=IQ9S{{Wb7w1cj@F-kePh8Vv7%6#0+8n zo0q|J+}>btm`ZPC(w)@H{9`bL!R8b8zmW!R9(=eFm9wz~L=Qw4InI+fWq4(UOp<<` zwp8<9UIzLXFJqV9TG+75;$;vzHE!_(UPkBc#_z8-2>;2;*!Z7#8H5)Vg#X}WkO*LO z|8g13d7&XI0W#1-A2&4jMqlK5?(xS&FxGQpQ{j@`reTZ=>RVqc;||)@NQi&g$tv=p zk2NyJDzhR}*goC_ea9f{e~on^J|z3YGRa@*#4c$GTB|#ISuCb^`2iS@X?E_Cb#kN4 z#s(g-OCfZ!eJtGLt9m$}D>^M|5@_8CZjHMbN3rRz@vxfw?Xp?FT)t33txF*@iY8+a zg>|+rp=*=7V<*f0o6&$f>wx>kXeiPKS6^;W92kQc2k%IY^D`&$(}?sP>3hUke#8b* z?av1pmVk1iSr!{o35y*B5_?`F^T)ug-2(n4!dzjkF6Gk1k)gVjj~guF2CXgylT(MC zrp$w~w4ESua-i5UdlZWM#iuEX`^9o7QT)<>hZTC59r?{MBBU75EO3%eq|Q(^Hv+z7h`o-25?__aMh5!d; zkpJ?aiqP5l&+_C6Ar+f#zeFX>3FgWqBTH>>nHHbkcR9e^=j{B=G8V;0;S$MS3XhX= zmfG7fgS}ClFBJbbgWAIec2Eo2zO~ueoc!O53kJa5R-)N11lDdurTjy&h}gKr;W2zh z!7m1r!ce5trLcAZsDo=q=v%Y6KL4(%y?5WDIQh?5{=1U)-eR-L8Vmyhiv6=<|7_sm zN63^tw+}x5zwK#DBGW7+!)9g>C+rc2%LuEOnGf^TBbB;(bf%uT82rDG3&IV5ZzONk zKgQGRpiKu(%|sI(v9Vbhvcl~D0SDK-BYO=EGJ0t6*6dY>5+S+HnTfBVdyIqGM_4HY zZjnSphjq=e?F!W&*@SR6lD&k~$eZ;(p?k#Pj_FTh$d<-Q`ZMMYHV%KNvDA@W!s-u3 zhUR&8w#EyOCTXFBPsFeZu($ykZIG@KJGM{PO`)(_>G>y6j|=_Kl#)L`QR#a{omRCdsfo+3`8u-BRvUQ{w8pI-0K+I zPq@ft7@jB?N*LOEw2oOd3K^94yO|EUnsEQ0k9{<^zQkcw&1$>V$RPd0X4j+EvxqqH z(XV%#>(_u42#~FVq7QIkg#F+mS+pQ#g;z#U1F_M2{*K^NPr*yQCDmOqi=V~wUiS2l zw%z98(8I(8l@EHVbboYzn4zF>UYq^Ob!DlR<|9X$YzI=<MSnExc{YcEl^;OH;!G_Nrh|QI$V(}V#=vqV}IL`xw*JXdDEo%Ea&>u9D=k)xz?J1 z8d2$WX!q6|A_$T8j{ktC;Pppw)>!^M{^Ma|thY@5B@^y_uJvDjo%OQ(*)KP;_tAeo z;|#nJaSx%j*KiYY9eVe#{+!ADmm+$U^&1W0H@_5SL*D5m%o|Ymd>`A~uScG}J+Eb< zZIYyQxg*h>+0?oY(b8(kIvx`AMvZGR+chg(UGbdX+~zzgA7ecG5xs=ZHZ(OX=VYB* zqvY4KY>X1G#fd;PMZ6|NmLb&D#Ok)s&)e3`7}50!CJE{oTSqam%k-9cbnBB=kvc<> z66Lj^D*y4U3AKO5Kln?0M`Pd+I_A%eO3_EwoVWOFP_&r!Bcu;~FbQi_|C>!v?u4%i zi+{X0E;E*wyVb>syal)7Sd9ZkOm-3L$1vF@58_tFUZ+w&*RS8b*D5S@!Cs-*bEQ8d zSbJR_`DXBFh-gz&+)?j>28B4al6`*8=DONGC@uZj>6uYe{?o2xfupB`uQmGoL80%F z**-}Bf)$1B-TQokL$~;q+xt$s4ZKhqe}CV(AtXVxq^L|US=#Z4{31;AR&xouf3EOG z#ku$C*>$)AM_Zd>itUAKQWX}&j)VZXTj zM)y`0s=*B#nW_lcY0egbBV+0VrBpQJC>Lmdx_$K+T2D!OB9*(e5&z*j^DOyIXCCC0 zD2C|hP2w2|D=(iDg3G|S2=^J6Te3RTnH1CA+jI>rNB6t4qe^579O=5{#LcNK9jb)I zY348ClacNZ7Nry+=P&yXHq6IPR(xVMw`wbI`=?LrW~KK!?SzrNDHP<7aEdg4^`uD2 zc0)^Z>$1xy!E>HT6Ywust~)ovR$6jD(^7ps?yAFC17Yh=M}FJ82Zi@??&Y{3enL~L z+mM-ujv%8A+`cbzA+_b$fE#B z`G6c(k-Xg3@M!t<*y=@6_`3dmufymcqzMHBq+5*OgadmU;eMF3F`v@-G$-V^jF;j0 zk}*de$_n4HR9q?EFuqugN>p%_AM+lM=OsiZm{=pl_Du{fOLBV)K|7SN5B+vFrfK)_ zFP7EYy@Zd9`6dLlcuuCgMd2=BOClfW-ooE{I!+M_>sOUnJN~1(h6Ux@Qrh-2xe@8_c6A@5v@!C$m2DMI!u{o7(&#xX#R|lrUyYu`XV_hRGB&tfB`&Y0tgv!yC zZKx#n>b}aDa1(vu29?sY4X0&<+g;uc4c`o;b9IJ}up2ryp69+)T6|@1d)7SqXMDiW zEqdq!N5_$dHvR^{d5>YdbFT(V%HUrWh z=CX>=Rt73G;JlZf@df)Lr($dkx$DEioetBX$6V?sw!WK=3O`K=`hEMFRmWp|!zZ#h z>$Gpxe)+Nw;`Dg87$yIkkEh=zG~c&9kT{4+I&SHHeEBkXZ=zL%XWFBXP`^_@diCVJzO#n5XBd8f(*Q8n3jL|ytO8(npy*;VhS#yBzNcDhoK~w zAtMi|%e8{I@tzB7yU)FC;m8B&k+0h`! z+m+aC%K(1`&?0-Tw{XB&T;95^sdcGhXcL-y3wehuq?XsJD*~&UN}Nd_%bYhzV4tj1 zN2+zn@Ugw-0F@p92MWQukIcg9ddBd&Z5&9?9FiuHtY0Pj=aifl2S2PqD_jNuKKmXyx#wLCNOn8LXL?GW0?u5jF zne>H!Jz9xTWcZtd>{Dy=+kzy?#qg!`wa7JF} zo^N1#Z9bS#&)b+3)+7FE@Effq_xt6*rzvf7K90z8PFUDyu^ClJ9#s5bTxXXAX)W83 zqU-yIC&QrcWG74 z-Axb(k1DS}94UE74Z;)3{t*_sv4)Zyp<#);YCl)`ml3T8kFy~TdVGV$A8*_gv^=e& z_4pd}&;Id(MCU(^KRM&3-qAA$j6RQg8Oq;-xRIoGYGI;U78{#hqR3Z4M}`+Q^6Yy| z)CprBDA(Td3@nmW&K0wa<6T^2YMdqN#ZXy}-X)~zqTlQ3u`AY(17G87cpvGCG^zk) z0i)w#2iP=}mIZ!BwI(+vgoX0B4RF^@@h}>dZRd_2|J%8Dj{hB>d;dmM+A~X^f{uHy z?2&q1)t7;>4|scR+x`A|nwr76SdMtjII3CM3$H_?E?ATNp{KSq6N%px8_wA_~>(n2Rk;99da(2;%bQ`Ipp zZFB@S#)K;sTQbL^M3Hq}B{~9()x%vl{hB=S( z4d8{?`Y-(hgH3K(b3a|_Nx0dg#%Onf={Ev|?F6tnj7nnS!}oyH*KpPT4^u9sA&;>K zS~W-X2KJ~COap(A6{6uMVuOu|M1DFVJ=OjgI~wMwnni&VBP6pn=|YLx1jmh z;Id#GNr)-Y#jAd&&ZUtSrIL-)rFG3^V{}i@ejzF(zEnWE#4ySrL>HC5OBNi&zoeh0 zkV&1DZS60EwhXzPCtd$w+xRCQiMUsgV`HQsYVcW-K$PuJKIZQCq<0#umTNn8iW*D* zfwnZUyG;tJz)L5*2Y}_yir^q~OtfUX?k$`0^;&IPGRhaG|G4#s5U0MjKjUc%MCT85 zaMO&I{@AM9%P*xm7X5rzLiTZcTy>Z%^!MMNwe=v*C&os5QP zqR6I6T560J)-E~s&?-Oj*s7M6Yui*DP(GcjW^ltmOOC1dw9NEl7^3lZ%EBb!z7Kr7 zhpXge=CjKH(ldSFx~wWpJ|=aL*@$AL&Q@<9uI_qi{Z3Rp2xid_>&|<_W110?Q;|( zSEg8i>Cm?DI^#ZiU*~V^KH~V@2dQ(RVJYUQj-d6CmqXrHJU4a!!e*mq&gl=`M-2!l zb~T(`%O#IeXZZwIq<(>~&<-6v>{B1VFVrdQ4Bs?a%@wT#+BW_t+_mvf+!!HX(o21R z7PN<*8tQf%9+N#G(5r2+e0}g~Rp8C1&XYS|^Hi%kI8DZ2{DjfGkZ3 zy^OXwLg>zQbc&ZBzdX1MQP5C;ZcBA}V8`kP9Q-Irr_HM=aBndJ8Fp`I)GPTeZd(OMJa$ z*Mfgrj;I{tkWD11qo3CtO8zWKrDMbxm(|lNdslW^y+@Ypi!U7II$S=;-|yTzLTW>I zYjslfm}ePp#^Yl{-;b$WZg{;$xF{VoyJ@n*PV<>)ZslNREC^DQf)($jC^S6;U6q?9 zJ!{<@$lhN-oOO+bcf<>9opZ`hhb$!t2kOc3icVU!=N2a2F5vK086AB-y!*vviPGml zC`Xm(vO6liRTRZ~SXVrxelh2q?flXC@Is~StC*9fCIWNZ?)^s_J-)%4u9sF)KX7*4 zChtB6j?t9;zj6i|_x|`7#T|Wp)BXC1yWzo3U+HzR$mIN6dK886+W#GlqbA0!)J`Uq zb?10JHIp4h;VkKd=V?+kp#hN1pPC6=;kk^2m=N8!(qC#+H<$Q#O1-N~uO=Kk@>K5k z*D^sJqgaY{wnEPQhEM#KbvmxWmn`VrbCVs!`5lvXwzdDj)+H@Z2t`a@cjJ+T4D`y= zACXtkR(6s$n|{Rdo98gG;kYo2Xd!PJkMlb8I^s7rBOFz*&jIt!nD6)faS})9pUo%; zEdQdm#m1G72#H$yTOr$%vi2jAZsR@4f@h*Ft4|ao)@O>1b(CE(yG?w-UAGnlaF}af zqmB_78R?b#{Gj>qmw9^D26cAoye&U`wM@hIuMKS2eLu8({88H?2tEmB(-twL)vym= zyJsZdH^!#=PbtFeC{Dd1$;ibJOJ_{w9D{+tMjI$8ZW|q&VD()9W327Zx%d?uV-r#5 zSO3$A&NUM2RgjaZ&%-AIcIsv5oIprr!njg#OV*{5zh+E`ji>B9spFvi^bFeQ)pbp? zM#bF6Ajphi*loPuZM6VMW7KIpp)$4lK*jtOzyB@7M9O5t{kzAEUX{`Z7nK1LzY7V~ zpVZZ2M_OwJuFw205VIAIo}pgJ%Ql>4oStZ)3UMlMC@K6G#N-^vZ(Sd@1dom+ZdN(}v*b?xGBS*F&Ppe1M zjh^Am&A-5#{N80fzC-AHoy8@e7^oR|E@kUAd%j!H|uIAF9qQusRao2 zl*Wmt!-EZO=Xw9l&Imr_cN;jqUSe_02NG5*D!%69(@(JOf2V^ps`Ij3fRgt|w$5Jz z;NybGQ};I{RLSV1!WMBwB5=Sy1E zRw`;@l2C!RGx6mL$S&_GwvqMd(}%M3B;$;ZOu*6pq4WqXp`F(;F@I$t?uGl-D@6T3 z1;CLcTSj9gp40dS?#4Puk6E>?kkP3s7?+E1Ehez#Uw1OtsWfkx{t$*1Be~y)5CoH; z5$%W(QLnutC7=d=9&($sEBzn#ZFXPvu^fVx-ONm%TU6TW4ao@^f zj_;gLkPdIn6qt-3GKr|CzYUs&iGdB$4^MELF19u-ICo|rXhObzZo@u&=xz8`lOZ?f zA9-c&AIo1-A!v)kH9=;{v}CNo7ysAg%+0lybDYZKLl@p~yY)HLEwM*eYJTsmjF-sd z>+;5z+!pL2MNRL{o!6~IuMU0?8rmYl48CZ2<9P^KWUGw^^7!4rkM`|mlObI^jlR(7 z;^K+A| zwJiD*z5v952`lmUjWpyNo{&}7-2(4N-bQiN^HQl3Dgr>iD<+e4MD-o<{E8o@@FIph zFlcQRP`1%FB*aZugsr>zOa_cgSCZ2|b;!xh*_6J3PFOMAfi_y$@&4VrcP?2!;akSs z$A{m{Jos;t;=Hcsp@Om1>5gY!PMo)D1YgeAUAg_-=wrrq6!SfZQ$851d>EfM;GdW5 z;thn3&&GtOI>~m3=zSe;{jDIUjjO@gR(M^lASVgu?b-_-RfuYRGTkiYg8K9X8|jTD zO{~_i8ypWWbDH*CDbN^9Q#e0aiC2G#7_rJ`H~u=_QCc&BN#aDusP3S*Pp1fRNO_DA zUN!Cn*I-Bv!imcWYHD$7dUQ~1%-yhA9HEBZiL&~T=ML|1Hm$nDu=^}flX-KM%S z&0E_Hkd3qP(aqZ3O~ZeIWc7aQ`Eh#fzzdaw^=FCw9|$QRT=eL=b&(N`%SBC;L){2T z-+kgoQ7GDvIz{`x{FneJdB?dM`Fvh_5F6e|i&3nVSNuJlvZbiI6qquH^6D$IUsn5| z*qd^hj*VJ!$pQGX==3}9n|ITxNHs5Y(UofRt(%!XPJ4M(4M941s`_7X5U-aZ+~Sg zENo%+ec2Aeor%2S%0nt$ljn?e8a>L__W4<&(W8&XGPU#@8#Vh$OJ^fsEJq}CDi@A%UJ%aKc$9lcM_+`SCf()^~X10tr8kA9gNyt2`Kyp0ah zY|qt`A(ua8%(wyT67wfFq+%lMZ+QF#8f2{QG0~Nx?yO@`OGa#c=sx+Qq4g4e_&6i; zEUt;5u6!l2UtyLnfZMx=;kYtPqou-ccY7gw2o6N7cuv-MNIQ6X*>1q>C@Pc^l8Se& zphU33**Z*XAUx|Eg@ab>ts5O=uws#NX&X2XgO~V5@e(BD)MjYOb1j}8yBf2qAt?C* zZQQry=Jnm%+fZY|?UwU@9FY%stjBzqV0LOuQ4*nhK6u zKOT8k6H>2KNX8IumkEXuE<1?8u4?|p9Jfvw{EoqDt=qRg?E5rVJ)wpT^{418uR!c| zk-u;FR2$NV5Er(0Uwxu~kuWX5vl5%)9*fVe`y+)qbm)~tY#_#IuxLU$-ZlZNw%ghp z`V;yPZwifBib^1*uAJ}xK!niz-Nm-%yFcge-Z&Tg!Du!;2=e32nGd}Wv0lp%3|>*; z=3lzO%Oml%oG&JNHWhXJ8-lB>6HMTQMACt!YbTGVwU&|8czY)2CJt`kG;amUp+|I| zt9AeK1O4x!)G;cXtG5m(bbTeq>A@5OG+$-VuWMM*Yk`}tr+ z;{ilmDcbmKSP)1@_9bsXum_eE6oMB2h~ZCOa{V54p8O$Zp`ymHvWt4oetXpDRi;L? zWhHSXO=u_RC^dmiuKY1NG3vk+v*(nDC_fK3CmGZ`XFd#kPh-v~{=x;EqchzNW zYYJ3PP$NMS7D7!ID8ThjR~a&1Woq`D#nk`ppi4|s`T})}KXCBj)sq>WyArhP{jk*D zyy3N_6_QVh$pKl#Az0}R&+lDd`W&`X9}tzh>wIBqG*yzN;9j20D4K^!!OyE7^zK^I#|g>#^>ZP_}ac z%S=;QrZ0hP$gxzZPtsQI>_x3J}JPm*NRrm-U!+T^WtE(q} znRu~xF$3Sh*s+FxQdx9dcM}W{bnjOy@;6rk6ZP6w+zl_omsbDDtVDQhz&_?p%*fH+ zC)-y=O`9ZPlzj6R{p2dBM#sh2A9&+zm@!4#0i@v&)Du@ob6I!9#$PfphtRGePKv4l z9g=180eGDUk2kGE8z)+mL&r`btkK!;zQ%9HQ%Azwytg+@E5#M7)H|su9{cqu+e!tq za%MI0zl@nCV)J{@8llhhFW7v-N1~##R(DPn@wr9Hs?DFZ`OsxHjM5_H#zvX!E1uMb zMNXrRPZ`Eyu1E53W{$Vo;v2sI4RL1gHR{`b+>R;u{$c>J+BwrSPQtbx8lM@e8VmHO zE>Gx5oMsB-z8nc^!HNo|WmBu%lR9!9CtI3V@}5&$JURvS8AK68<*o>Mj!(?j;&xWK$sBf|FxOS}f{hJx~AQ+etjxO?}PANq{&R}UG# ztUs!9a2+b6s2%X(&aVJ5V3C^34_hC%AK-9;)c{+{jD)!>>Z5K zo0|(N%)o;a12)gEjp9TLZI>rtpR>r0lY$kv6W>bpN8!;79SX=O2wqy+@IKUJ^eSlq zWWJKdH!6_rt;{9awdlzmlW+=i_sx-gs1Fv06J*`UZ|b@-U;^HGlWwlZMwEWwrULxF zWC~-5f<0=GpbiPr4~L*SA!t2W__WnC%WMLhxt7mc`NU_PTX+1CZ63r8`0+|qz!;Ph z8h_fo{{aT4%M4(@&Ez~XLDwb-_63|cE~iV^$}=7F^ri+r{s~geaF7jpW}rtw-85}w z1cpz&Galtd&y1F3{h(%EGJz59%WiywWbmCQrXlNW+T)X1qy&)ZZ7n>fB{kc`%A1F!-{O2SNA=3V7XhTc~8fS7>^fxZ!C==R%NSpS`vP>+6t z$D;N=i=5M0X&1Qr7G7$})vG=jRYS{_^-)tOY0_be!R}e_>D0Q?rfRguHOx?fI?ZL7KsmKspJGXVFUjNn1ja0Fsz0D>ixP zEw&ypTY~AR9Uqj9HrCX*V&l5W=YRi;l|b8o^xQG;9*zTfAo10vVyYd!CA&;(^|R9R z(@lzoS`E9!o9xC@uBq$t?iQARXQKKD`WCaFleg%pjTIlFjU zyc&`(%;GWehY(rG0VJV?8Uv;10>RV8gmsdMzPRK1>QaE@rDf_Z=aEuG302>AVEKXW zRhM3vL%@*TPgHuy2S(rRdyBGFqI^3cz5$%>legzbW7$Gt`A(gxr7*hE6`gz&9&3RO z2}6yX_4{xm$E8uxY6G8o_j*doO_**&AbIHc4=d8TY%c1u8}5aX>(5c&#_P42J2X& zsW&RJAZ%>yeiDJ?iQWffDyRB^VtTmOdZL45<%vRbwM2>C;g3)O>zQ+ABsWX<+mexO z0No=qD~RInbQtv#=P3AlVasoX$mE#POySmLQkT*VOEhhKal)6;evbQi$Zo>Ua)uCv z@WiTZ%Tm1H;m18!F1C|y>Kc?%?1lbP0k2)6e zR^!|Ql@=|%p;L23c{*NV<<^?8YswJkrm4_(GvCDc*8dr?Z>wE}UcrcZ zP8{6{9B)WIWK7Ikmtjtjx8$DGbdJu(G`RR96*a<%?$kpK#GI|SU=I7e0y{EFnsH6z zzvrP{YRc$bA+}?KUecSX-{i+%LJ&joA2OsbeOR|@#{`cG4DfUDOb0S{KceogsJi2t z>JT$S%k_>cYL`V{14Bjh`F@C@`j`DkM@f#hRQRoASy9Xc{zMR(olT)vIGkd+)pW4& z74{8x8^7z*;wUk?MNB+hn;O=)tGew!MM(tt0kUOhK>*a|G2JVpuvaR-?eN&u_n0 z_H9EA61ukbVr**c)yt=%ee7K|e_YBN@`r)*!OTgo2(WN~b z0!x2#q*wU_>n_&uDrwi_H;#~~)}dC92Te08ochNrReP*|9P5 zMqrgXG#g{{{BPdV`lm8$CZ$H^cFu;tkvOO@cu@M!Xs+-JPkk6>Y9a2-C?R$cMTC4B z%KMSAXQ{=X2@kKOKv849@FP6lJrq-Dx6Q& z9I}fjPCV#uup%~&Ka4DEOE4pb{1j?-N}8{`qqWUfa)#%&&c52#fjZkVxbiEN%3*qi zw)}A%LI%CprN6j$jk-TD`IX2@5(R-{zXmgxWs=$E;e>YuAf14q@UhTGCVK2@j`STWFhn z?BW>4`P^p)fyVH+md%PO*tdPP?H(iH?MjDxG{a@gTNG3H<>|!i6#B=O5wCBdNs%)} zc2z}Kb4?VXYUY?D_D{Qyj`5)lkM7n8&1O;7V|RdlUu(hqG`jhym_X3}I}v6vhujRI zNW@;UU5sU$kI#jb#MDWUoHF6X$sbCRJV@m;d2g!i6Z6Gh02>xjWCjXqs^;!yN^C)={rCjNiRlC9DC01HazUR)cEj*Ch zmfxdLphaB0bN|$1gFw95ROCLhIc5^PzA%_z(o9Y4+C4do(Wl;e!Sg)7v= z=DGGYT#88fWZ_6*_{Eu)C*Rk?Ab~H_Rp3)bVNzq#f$Hbadpq+^u8{DpKVC{q4rAdL z!QvMa1LwLU>y=71LpQ2P7x?1?F3Ct3XTs!CsB&=SG)3!bZ!M9KRa5+mC#o-~!4AV2 zose_+m5KJ{#S8H+SuxAaw>FQS!2lS^=1WE?Y8yC&z5PlAOojDS8^P=9e~6#wOy0Hf z)@+6@kt^C};b_;)Wx@3O7M{_OUrXMXM%VJq)(8c6W7`bxtFhi-)VhK^^(S=k5v!sd znRyPrCy_@7^gXyGpB^~6me+Nwc$R0|^64dfe7f7}0uXYa-wS7zs)JkSoI_4RrK=&0 zR8>_cCVsr!g=r0Gc=l|saX>JTtN1Z6km5dCkISKv=jPh>WsUfbf^iH4K+kH2&Zj?V zN|Z6(Rc)px>_0sGO5K73Lt7X5HF6F}}nJ@larS#fyiy4O1y(_IDkhqkYk`gE9+|fKX zHkM)fbBcBP^y%%STf|zVS05FeWWRU<6gCDNpr^ErPWe0R{Lp!@toTBfDCG6`O|+P{ zOp#00^^KZh#pPf3pkhJ&aUGSG%}bZz`AXh6VFCIKsP(O=&h~3AV@%X`yDz3$_6ZU4 znku4q7!On}Xq@q#42Y@HnJ;TsvrsT0Dol)Y6q-UaRfo-9d1$SJo!ajQPqiJzyKRoiZjN=}PuD4&Sbk}&@k;43 zFj}bF0dr_PP=ipzH;wz?&)BVmp4Qd~-3YiF=AOhFCTUnKsicBInxq%s?hq{CDim&r z$7Zmn0^OTL=kx5r@_lju8w~DxwmG9d`q?Glp(jPwkHU8~t25_mV0dB!H}QI3{p8Eh zIq(xnQOtnYdusqZ#KQK#Ao2#S!d2HIDB*md6)s@4ts1U`aT4FVkzMdul+)`#5fCX_7`-^vfy zsxPX@9N#{f=(-vGoYmW!+4L5@wnumeWWeNc^W?qlmf|n_0z;X6Gk9Qki<_P=ALhrd z`BHn%nP=zjYNkuRbqJ<(9_SE0&di@Uf3J++RWcZw*R&_DOaY7LJL2TauHUs+!8P~c zO*5~yGixCRmLkyI+m^Z38T}0ldv9R8MrCLt$gJSWbGGph9&8IF7h@cN{sie#vsSFv zX#I#BpU))`d{8vI%tc*(`!}hW2I)tS5^=pPJYkPSY+bvEX%Ksfafwkh_ z#M-s7v4)=<-0|AO16ao6)Rx-%%o7s4sOeTSN zb0J-^q?j6_!OMK^6Y@R7g}1tfvJc$sBI$Jlo7ElBZ> zB3h63&1b0LU1Ekv7)H1*$V8-l7)>vfLlj6Wr?q)QeAO~0LA8GKnCo9NgI;Kxl(X*Y zpx?)QO@CmJAy+-}iYXsz4ZyzfgJi+wg^1hJ<$tYEW6=q6E20*q55L&E7la>;kBW60 zBuB+M<8izR+~RRcjpoMci3+=yi8z$H_+wdEwaIFbapt8!=bbB!jbR+eAp@)Sc4m1N zYyeS}DHy)LVRKDwG)o13O@mFxk6MmC zJ2c$U{JCkeyA(xwUaN?D0K~)Zc3(J%Z3c=fz_~UP#RaDyL$wh+fh2Vq`Dv`eyXq*Vg@xAsrPgg_qexEJ^Chv{{3pSmHMaQg0xcU0$a}J_#u(i z#@zV&Rae(^T;Gwqw1IBGrDs*EMsI&Nvech|#GxnI{ ztbYA^{X9B)WN$or{fnrRv}kP8SuYS-$2ED`?|sE$MBO6PCpCnc2-XsOHL^fU(?^ds0jjD81V6?<>6>Rj5=xZju@%z z#EFkzGYBMrhuS;^rwH82y;V`E#v zzILDxahW7fV%=H12GhNh4CG~!owGuyMvEaE>pm*z&APASJ{->%ya3O7c}T*@A+g;C z21@|%x!sYjVs57A3HEyN7^m-WqZsdHKFDS1h|Iv8 zcLd!CcSC@RT^%;-12yD@R6%J^>;8_JkDh}hfNfg66;e`MyACSbR+Zmu^;P-1{Uamh z)SRwP0I7t5NfeHHohzcz(B5L0ZxJy+q^nuC_7Y6x0v(+E4>&pEgdtZ&=S@oVh1FQIw2Xy0Q&`!&>O2MvAj^tQt96VP~^?Y^=?_vRDr-1 zyM@_33qeTUi2ax1ap@7r!Dr=dwRN{TD1SeI=^haf01`;SS4Szp_W1#AnajeJ&m#cj zcuN=H%&AKyT%fDpn5Y*e_4QGf68!pPkYULo1_=2jo2Y+XB;8V}DuW4VL}mySC3r|V zHzalGrmY2nK2y>}kzIN3`y6gr3+o8qlA<{O+hWQk6IFLve+SlKlcp5*C_0s*yf)_r zSGk(8bAl~4`B<%!{H-N%zg#J0K*Vl5q(Qrl=zb-j&VQ>43xyRwZkm!I-!uc94>3Sd zk!ZlH^$LHHwkjD^->cYa6f>bgU#PYvMf$cP3}a_5f_6lS8_j6G%2OT7=lb+Ib!1Wt zezVe_905h61e|=6Q#&f7J<|*a=yw_u2)HkZ$EE1BOrp~&&K zx6(Iycjc8#@W#m*>4X8h_XU0KqQD`nFoxtlVD$%W6DIxsh^~mPmBPB8aqtL#uG(9{ z?Tjym<#UaPg6vp;`2nX-MY_h^_MEt1LQ@ccP($QUnT6olf}R$^W$4&^_lKHc@fS~x z0%dQk6Vw(TQ_G=dH3=TDQZvon3vLWPlx$zli;Z^hG?OP**oj6E*ZseJ{P(EhtA+6z znwI3?uNmXY1urhwPv)0I_^CUPbYmAfW$iuny>7}(6*_WJHAWzFiQy7M0;=Ncd*?66u04(BUEH)SemHdqH7^x7sP+Oe^=yj z(8~+0_R%98cHN(8?xs$tw#g0Vg|(ZqTBM@B+G5DtAg|3lZEH*u=l6vyd+yatVP8Ju z!+0kJ3yR9v({teS`0Nqap#hq~smh_Qg+~DMe0&h#fJ=c&DRDh&mcvX1Bw4M>VF`(K{T(v{@ze(8P4=}+Ka9ZDfuTF=2u$-k50GDQwy5gi2L^`azcZiV|l zU9YXxAd}dujyzgA@{5_c5(0IhdW5SShKilf!k(p^`F%xRcb>-W<8`!L`v&Gsu^MXC z=PaRGBsY|IV-I`9jw<|netgfjhA(5M# zjO`OwI`ll7<^$u@q|JZQVR1Lj9LC;>NJ@PVH^3ZYS4ofu3T#uQewv4<_v^ns1z?Db8 zv4y?#!m-J{_u$qh-h_H~PK==9irp!@!E8T+k?(6~*5JRCHjn+j0J%%P_}k|TjsUNJ zviNs_`s1eFe7Ezp@_rO8ii+WhBV$$yE$`vJUvK9g{DC$S^6Wet<_YT(LJK&px&bf^ z0Ug1r=>2C)Uk9I_`l=j(N=B5tXwfS5Z-wvL_2gAWW&pD_pg375rNsZrLOpFFB6FBD z)VEGn?ZOPNDB|ny88}7_Ty#QGTc0OIB4k4oYNE-ev!upSvlW{i5J19+eZbHTfMqPu z6Nu?*3hy*&`vdXW`!bLLL2b9K_9;9&ri>F5%U`RL?hiCA(8J3DP&+Dinx`6oV_?-f zIc|67;XXa0|E&LlLTWHHl@^NdiC5Jm-49}}ug<{hs)?ZbWz-e064Gle3@cfLd zS09}~4fphCdqA8JvBj~rNAQGY7`96{OTUg%WW_9jjXW5%;Uavj` zx8}Z}vTOpscR0c#!jJO6g;KQ<+LbJik*Z^uSLW+huZ$NhlKhOM_(SmCQT6#kXK1_x zNFdlsomqgXQl-kdNfw_34akR;ffn0l72zxt1QYP1a*|k+m*PPhJ!*5f-%21Xm2g%l z=%^fCP0cCSe0tq-bh*)Ua1;x&=lY!5ZYM^f-U0BaQNdg+WTu|bv;0Hfy+ zg$Z8D7j0o>zN(;+ri>^xEA4U$s1c3Pa!obZ2!AitC?Fhl~Ou>UF9C{R3GmR9ir- zN1Sc-HxZ^&7qoOI1@wXoHkeH!Z6R|v0_uL7>BW;omoyYr-jd*IZy8Kn!e5qpyJac1 zeO>^rovOB0H-{K5aT|M&JE2@)tr_$^vp*GH6YQbI+9FEM4%|KmRaejZ^cs8J?^i{0 zrNC;A((qg4Jz&0n`swBo1$&#WL?bpOz_^1?c((`yEvUaGL)|jZ^2g8k)Gkm(tosrq z2w=d9?_*Aigjjv)@Q$h~eWN!K-_2mGyPg62WO6@Rc{Zjkn)7j)iRLt^VsC!QEB%P2g$(q@o+vzLHFZ)cfSM%j> zJg(gENmDrZD&UAHU2|8FWy4HQSMvx~rs=uey)UD$18~-t=0ZvnPeH{9XtT{B z6=pqlDm7K4T;O2R6zDEOdFs+uM_-2#p5H*6vO}=moTexqxhN>k-%U@v8jU4LzP&de zRMm<8^!YJEEa;QpeVa#i-TCbqjNm_5{aiFJ$e<(l#PYjV9CjxP=WEWki)yTAHiQ-W{szbwHR1{yHr~QOv6_bMD|iRTYM4g`=n`9&4l%o?6d%wv7f(uevN$# zs=aF412?e0I*;-ghPPWLMp@eAEK(WC7aTLsb;@G|hLvBlLz zYuZ7=B8&V2VBAg5DksVW=4q2s_i(g`VqQ7*B$Q{5)s&}wWx@yI`*B>Y2Gx|m)AYyW zSBjbmnuJXF05WjM>`yQIhW){HnYtn*vzB4Q+zwg=QKd-Vvc88V)s%ia_kH#NwPcNP zh0u5m;9~DoURqY}dS@P$!X90@6@)Fv6`5N-PTiMQB|gf`dog&+WM800)>J`N@z43Q zPN>$(4*k-G0hU!vNX>0%3y$b&vheHg%m3~zlPR37!Px4p`)Z6hQd#j4j+$j-(d{qe znJ3~iSyf`s%g$$aqjrvXAMxY|Nhdu-D0ObUFvke%V}DYuz)!cRe);*62vlsqDAKdV zD5T4$p_wRAM@D8LvDpz>Xl=}Wnil0_x4l@u%^B$g4|3lc-M|#Et6z!}_o;gN3un9i z^sJ4L88

*2dswNGX;q^q=q&O<@JO$)hrU9~lvC&lqgI5qn=Pl4o(H((#n^MHFr| zWILpC3zlDC4!m|!t{dC>Gb`f-{o7lqO;VOm6M%Iz9=TogyG&@7p@59spV8Hb2x`+1 z@$773ohXdZsB*i0awvcDHGEf0yD86W))2~X1al4St8^y4RTus=rk0PZwARgJ6nLIU za(0Qr|HjsjUVR{BQ zRq;ZL!V%74r@g(d0d??3ps*Yr+4jxP!JB=L2dbmZ;ClvQs%=?9du0Bg4%yKauHL{N zQD`DR)FnJAA4TgJj(EzmU@fY>Tf(xjV z6}6hfA&gmWh8GIcyyK~R18x6d0S9J3b4n+kP)_CAzG8V6frFT|Zo$-FLj*+gL1E$Y z{JUP2*b&nj0Qf5z`a8sG!eF!#ukcvm=lt|a%xU2et5&HfmousQu8mS}v%}M}u~+e} zy7M0?fGIF3sxTonL5F3#>1c;Gyq~wyBOsm){Hk#Ku=t^CK6~9?I6B0+;k(~o9=ci9 zluEc@P?U@2$lkc|PZY}*M!y}gyN)sufz0T(2i0Q_W3jw>4>EP38@S>?)RR?G)xu{@ z+uujL?#$bkGA#!ca#-KbI6$D={s1PxhJ*B!fxxfdAz=8}8rP@OtMV6TdOv=?FZ4BX zI^w3iXA9RuWEE0DTaoNZ=H-ohloZ|IxudBv6Hn@EB`QX_xVR=oSIj1(Sy;x8J1IYS zO-B4H))J~jTX3PsS5pO`aUp0l8bd~bmh6gET0EY|a4^I|5(zyrCV1v4)OSNfVMgPu z!(#RfMO`0|rKT%H7H;TF#1CKJBic~Jy#NJ2^$uu}2o~mTW zdR37WMGP@{WX~=DODz6@g#6zKQaoTJ8{9(mVPICuypTOxxH--+{1*h8N}EAh=Dr9K zCwPW!p@&m7@AaU@HuFf%)QP`yjI~~H^Gy^-h?e>l2X5nv{V%2=kobSN z^RA}wn+AOsx?cMZ)yyZeA37CuGB>VqE4a>l1}MLC7D7WcYY)d39x)g&f%t8Zfqh40 zM&f34>t)&VKiSr6VA`LcUO6)1w9UExIknTvlkAhri=#unUwtG}cmzj=I!V&jmzdwb z1GxEJs?U2h$C=RNiAq}3n*WW7UL6L>ByCMD`1aa zRG>jcGHa`mV4zyQR6J=U{$00y zn%s7kE=k`%@s&Gs#2exJl^KN5hC?yUW@cY{wQuN7Bh+*77~1rOpFIWj2;G}Z>8^KV zWNfl_-EY?l<40Y&fg!Ql?kqCik;1Q@3G^cz$4dzzN$0L3cPvbcctD*j33D=V{H)8= z4XZ3$Jye#Q*6Qcy3rs*mM(~d)u2}9>nDxn5$($4X3+tOcst1AY*ka?Rj>l+3RLq9w zYd;Si-1k{pb>GSBb}gZ!Xk|5kSPeu!(b&mBa|!mc*@iP?C7*toegN*}c);p?o)`e& zt5aUord|Y{cO@B*4#caUzN1Qj)+*e8mr!}$KK22UXQqERfh)BzhpQ9hAuF94LJ^F9 zG9Plh9|zx8%aT`k*EB%3M9Vx&dD8gi`!Mt7SFSm+Ah~Spvx;Kqj({&b16K{jY#AlE zZC&cddlUxKj?0RIto@L)&Vot?yZnV^mC_kV- z6qHS z(Vlej%mv)vPw&R!TpDP}A3Vv#^n-n<*ny}gFU3Cz+yPmi?M4iXJ~p0ap8D}7Cz9d= z_>1wc#{^R=+=0eOtFl1Qv4P>j6O&yVQ^Eq(O}Dd+3EmaOwTts-9n@}!KKly;I5MV% zWZ4NE_srAatZgeWliK0Qn>hVv4*DCsES-c=5=T^K?v0{7#^Y49brYldT zaH=!=o4fG|g6WKgq(5tNNRv)%=pngImT!j$h5vzZHs%4V^MN3jBfbL$H&-^k?^&TR<@}7peFMfPqM>p+0QxIm}#Nc%*vKQd_suD0b$$1(JT#EbCm=gnzY8 z|43&t&I6>y9d-uZl!)0&jamdHlzKo0ol)I`c;CP9C>-NFeG`HGO1xJ)s_mEH_cPsp z!Nq}1I@Ry&c<-9QVTSC*nykbnl6=@GvMuR*hl1oE8QCzatxWf>dAOhsZ+eHik_Rd_ zRL6>&dusS#ub8T!pQB!~l9nSr?n#1{xK5gy&J(V3!lC=U-oE$i7x@K#AK}q}dqDeN zbEPE59?@{^wN)MJ{prw8&vu@h9;;+jCm`MN|QfU9yr8?GEyEKv*M9V7|G#L`!Yd<4v|b;8#;dI$y`% z<}o!a9Ls$3>$2)lKHDfdvQ9Jm#GCt%BDi8KVg&k*D8XQ$=(@Ixg~35V=3ixv9Xgo9 zj$>{9DSE}%w3~)BfC^rf2l03{+Z!P|nz<$e#?0(=ys(I#5m^-p>I+9_~J$o z4JvO>6}77x&dh@}9R==WTXlnQVUBR;vH3&TzB_}a%?pSq7Zo4mC?N0y3&n+f)63s$ zZZSs^>zdu!yfhaIO(}a*cR@W#-E~+x1mxJvVUMdhw{#tAJr>Eu(2_rQS81z2Fo2Prii0P5Q!!0EnL6?VidPK5 z3I$2NV5(o}80<=Pc&S`s1)&pto$2oBTG=o*crQ;#Isb*=uP4xt%=VpCn;Peo(B71W z3&&sfb=I9;^(61*_3A%Y(-hip0H0~Al2{QtSu=S2rBgjFxt!CBC0P?xH(#8S7l|0Yd-6=O6Osv|9g%_=sKjr_i&W0e}zC zHIO&#M+>D~s{7_`U{8r~&8qZw^OmwB&HIzC9O*P`Pmc9ms7HJmcyfBAK`Xau1b=Oi z5J%-&&o=fNcK#ze6Xv=_5dp>m>X)z>Z6Fva(>4uMm7WyuFrFswlcv{EQn=!J5A3TE ze=H#zv}5tglszvX9D}-&u9a*%S@AT0rHQU5Wt8^6M^kxf-|wAbu|6_ibG3&j?6ob` zZc`)q_P@s10{nAm(ap3YPIF8@9w(X}6ccI~dy8}(^sB&2@?Yb6@d1S>uK1xfN8$SL zWI`x!YT5w4ZLicpn4*<-KkmS2iU-`_lrC*x(T^0Cfw`moWyw2A_-I;dOu>_R9zzC& z!?;V=Bg5}WBq%;`Ib9s$O7x=etLgd{nC6gAsQF^uOeR`<@=McAYdX~#HgEEJ=NH?# zN6KxP{-=sdTTgMY_pUT!$_E+yp>8#I+MB)2=kED_O;S<{v2RJm_`5NI15Aw-XR|7)c?3Kv_&H0iN!rEcHO8XlW3|5RWLf;tR0*W*(3qUx6U=(mwl6`JGf%sc1V#`Su4k!IiW%?=^^n;g+%BGbN%b!Tz{Ik zGU!=cc!4YF3BJdiSq5yu;F~+<^wCuC$=zRHIr0!CI+oS`2#5_>{f`I;q<03jy9HfM z94^eZ;;;ktgm1yl$YuEgGxhiGL|n{5nfOZy-H%s?^<7-L4t8r195SJ)vY{2lmbY`N zC!^-=R~WBp%@_}%GJGp8HgdjIe|>h+W5Z_~#5;XYPg#%}ahxVx&@hVBzr%4x1(M{W z{)}G$HEgaYtS&f#xP-h<*0`N>qPTZ(pk<@2@Cr0 z;nKPGXkovdzgCE2?WrD2-GLC!x6kT`o%UVw5e`hZ>z`F~#t4s=?S?`Hc|aF+pel7w3g z>p!U^_>sZ(uLjHG=#Zosi1wFpE0GYXf8<9vpAYjFq|cZuXwDwIQ!2_PmoG2lje9l_ z8~n8g|NVLhc@11_{_G3e+%S$cfZHeVeoDHhj~%^HcT<3{B`NXRfxET5Yj{9Q7vi`~ z95Yk}R9qji#w8m=ls~nuP8DS%G8b@j!HxZJn7PDUM}^g}8WwP)!wH-T7@7;T++^8} zxNos1!d~ELX=$)Mkd|rIq~(9U$@;w3#jv3-$Nq@p>Qg&5lrta+onY2DIGLtrkR}x5 zL*Z6AB;h?#Uw&KK49gEz!XgB!Zr{2Y5s3RgI)$g8o2<9#=#>M)+Y&ytYHI39Kp@IS zJC%t$!VHlXJQYhjYxjcT7uYnw80?&-(Glsap(RMhwuI@)tgHl4Hb%~GCkTtR!^YJi z1AbeR-6u^gVvC6pCc33}_;H!!aAwn2g=+XezkYMq)qlESy(2$YxK(U=V0 zZG9g$m^y)*jO4$cZHN3)=KmGI2YJ`>UuDv&O9M*H?$p2c}5D5SOHpur|y@`MB=D&pX|8EVkGs^Z9 z1hUOqPh0CI Date: Mon, 13 Feb 2023 11:25:59 -0800 Subject: [PATCH 06/34] Fix copy/paste error --- content/concepts/tokens/nftoken-auctions.md | 2 +- content/concepts/tokens/nftoken-authorized-minting.md | 2 +- dactyl-config.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 3890e9c312..44fe5c7351 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -1,5 +1,5 @@ --- -html: nftoken-authorized-minting.html +html: nftoken-auctions.html parent: non-fungible-tokens.html blurb: You can assign another account to mint NFTs in your stead. labels: diff --git a/content/concepts/tokens/nftoken-authorized-minting.md b/content/concepts/tokens/nftoken-authorized-minting.md index 333007c8e8..ed1849e8ce 100644 --- a/content/concepts/tokens/nftoken-authorized-minting.md +++ b/content/concepts/tokens/nftoken-authorized-minting.md @@ -1,5 +1,5 @@ --- -html: nft-authorized-minting.html +html: nftoken-authorized-minting.html parent: non-fungible-tokens.html blurb: You can assign another account to mint NFTs in your stead. labels: diff --git a/dactyl-config.yml b/dactyl-config.yml index badfe9d2e4..17d7456828 100644 --- a/dactyl-config.yml +++ b/dactyl-config.yml @@ -785,7 +785,7 @@ pages: - en - ja - - md: concepts/tokens/nft-authorized-minting.md + - md: concepts/tokens/nftoken-authorized-minting.md targets: - en - ja From 4d45c036fb71c0c6e4c6fcbf6e54661b640cf4ca Mon Sep 17 00:00:00 2001 From: Elliot Lee Date: Mon, 13 Feb 2023 23:10:12 -0800 Subject: [PATCH 07/34] transfer-fees: link to fix1201 amendment details (#1725) --- content/concepts/tokens/transfer-fees.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/transfer-fees.md b/content/concepts/tokens/transfer-fees.md index 4c5bd83e76..1cf055d81b 100644 --- a/content/concepts/tokens/transfer-fees.md +++ b/content/concepts/tokens/transfer-fees.md @@ -61,7 +61,7 @@ A token issuer can submit an [AccountSet transaction][] from its [issuing addres Anyone can check an account's `TransferRate` with the [account_info method][]. If the `TransferRate` is omitted, then that indicates no fee. -**Note:** The [fix1201 amendment](amendments.html), introduced in `rippled` v0.80.0 and enabled on 2017-11-14, lowered the maximum transfer fee to 100% (a `TransferRate` of `2000000000`) from an effective limit of approximately 329% (based on the maximum size of a 32-bit integer). The ledger may still contain accounts with a transfer fee setting higher than 100% because transfer fees that were already set continue to apply at their stated rate. +**Note:** The [fix1201](known-amendments.html#fix1201) [amendment](amendments.html), introduced in `rippled` v0.80.0 and enabled on 2017-11-14, lowered the maximum transfer fee to 100% (a `TransferRate` of `2000000000`) from an effective limit of approximately 329% (based on the maximum size of a 32-bit integer). The ledger may still contain accounts with a transfer fee setting higher than 100% because transfer fees that were already set continue to apply at their stated rate. ## Client Library Support From f565c5b53b67eb784e6ccd78c7339dbe995b92e3 Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Mon, 13 Feb 2023 23:11:21 -0800 Subject: [PATCH 08/34] Remove NFT-Devnet from Faucets (#1729) --- template/page-xrp-faucets.html.jinja | 8 -------- 1 file changed, 8 deletions(-) diff --git a/template/page-xrp-faucets.html.jinja b/template/page-xrp-faucets.html.jinja index 775e48ce2d..a73cbb17ad 100644 --- a/template/page-xrp-faucets.html.jinja +++ b/template/page-xrp-faucets.html.jinja @@ -17,14 +17,6 @@ "faucet": "https://faucet.devnet.rippletest.net/accounts", "desc": "Preview of upcoming amendments." }, - { - "id": "faucet-select-nftdevnet", - "ws_url": "wss://xls20-sandbox.rippletest.net:51233/", - "jsonrpc_url": "https://xls20-sandbox.rippletest.net:51234/", - "shortname": "NFT-Devnet", - "faucet": "https://faucet-nft.ripple.com/accounts", - "desc": "XLS-20d Non-Fungible Tokens preview network. (Deprecated)" - }, { "id": "faucet-select-ammdevnet", "ws_url": "wss://amm.devnet.rippletest.net:51233/", From 256c50dc42bb1809bed31353ce56a2ff511031dc Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Tue, 14 Feb 2023 09:28:10 -0800 Subject: [PATCH 09/34] Update content/concepts/tokens/nftoken-auctions.md Co-authored-by: oeggert <117319296+oeggert@users.noreply.github.com> --- content/concepts/tokens/nftoken-auctions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 44fe5c7351..277eefb4d8 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -20,7 +20,7 @@ Run the auction in brokered mode, as an auction with a reserve. ![Auction in Brokered Mode with a Reserve](img/nft-auction1.png "Auction in Brokered Mode with a Reserve") -1. The Seller creates the NFT, then sets the auction reserve price using NFTokenCreateOffer, specifying the broker account as the destination. +1. The Seller creates the NFT, then sets the auction reserve price using `NFTokenCreateOffer`, specifying the broker account as the destination. 1. Buyers make bids using NFTokenCreateOffer, setting the broker account as the destination. 1. The Broker selects the winning bid, completes the sale using NFTokenAcceptOffer, collecting the broker fee. Then the Broker cancels any losing bids using NFTokenCancelOffer. From ac72825e854f17c2c1a911d5fc828c7c914ee7ef Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Tue, 14 Feb 2023 09:28:22 -0800 Subject: [PATCH 10/34] Update content/concepts/tokens/nftoken-auctions.md Co-authored-by: oeggert <117319296+oeggert@users.noreply.github.com> --- content/concepts/tokens/nftoken-auctions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 277eefb4d8..097004fb30 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -21,7 +21,7 @@ Run the auction in brokered mode, as an auction with a reserve. ![Auction in Brokered Mode with a Reserve](img/nft-auction1.png "Auction in Brokered Mode with a Reserve") 1. The Seller creates the NFT, then sets the auction reserve price using `NFTokenCreateOffer`, specifying the broker account as the destination. -1. Buyers make bids using NFTokenCreateOffer, setting the broker account as the destination. +1. Buyers make bids using `NFTokenCreateOffer`, setting the broker account as the destination. 1. The Broker selects the winning bid, completes the sale using NFTokenAcceptOffer, collecting the broker fee. Then the Broker cancels any losing bids using NFTokenCancelOffer. **Pros:** From 067048e13841d8cd538571782e22fd7e886ad75b Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Tue, 14 Feb 2023 09:28:33 -0800 Subject: [PATCH 11/34] Update content/concepts/tokens/nftoken-auctions.md Co-authored-by: oeggert <117319296+oeggert@users.noreply.github.com> --- content/concepts/tokens/nftoken-auctions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 097004fb30..9d4dc06bb5 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -22,7 +22,7 @@ Run the auction in brokered mode, as an auction with a reserve. 1. The Seller creates the NFT, then sets the auction reserve price using `NFTokenCreateOffer`, specifying the broker account as the destination. 1. Buyers make bids using `NFTokenCreateOffer`, setting the broker account as the destination. -1. The Broker selects the winning bid, completes the sale using NFTokenAcceptOffer, collecting the broker fee. Then the Broker cancels any losing bids using NFTokenCancelOffer. +1. The Broker selects the winning bid, completes the sale using `NFTokenAcceptOffer`, collecting the broker fee. Then the Broker cancels any losing bids using `NFTokenCancelOffer`. **Pros:** From 311fa7efda1d354e75b503397eefc9e4369dafb7 Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Tue, 14 Feb 2023 09:28:50 -0800 Subject: [PATCH 12/34] Update content/concepts/tokens/nftoken-auctions.md Co-authored-by: oeggert <117319296+oeggert@users.noreply.github.com> --- content/concepts/tokens/nftoken-auctions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 9d4dc06bb5..169ad701d5 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -34,7 +34,7 @@ Run the auction in brokered mode, as an auction with a reserve. - There must be implicit trust between the seller and the marketplace that the marketplace will not take more than some previously-agreed-upon rate. If the reserve was 1 XRP and the winning bid was 1000 XRP, there is no on-chain mechanism to prevent the broker from taking 999 XRP as profit, leaving only the reserve profits for the Seller. -A major mitigating factor of this downside is that if this behavior were to happen, Brokers would lose their entire market share, which sellers Should understand. +A major mitigating factor of this downside is that if this behavior were to happen, Brokers would lose their entire market share, which sellers should understand. ## Run the Auction in Brokered Mode, without a Reserve. From 319a0e5f2659d8df0185dce6be88b5f987d6f750 Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Tue, 14 Feb 2023 09:30:50 -0800 Subject: [PATCH 13/34] Update content/concepts/tokens/nftoken-auctions.md Co-authored-by: oeggert <117319296+oeggert@users.noreply.github.com> --- content/concepts/tokens/nftoken-auctions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 169ad701d5..f18e7330d5 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -52,7 +52,7 @@ This is the most complex workflow of the three. **Pros:** - This flow requires absolutely no trust among participants, making it option one would most often expect on the blockchain. -- Sellers know exactly how much the marketplace take from them in fees and must agree to it on chain. +- Sellers know exactly how much the marketplace takes from them in fees and must agree to it on the chain. **Cons:** From 07a5b706b0e3e09f00c6c7ce768eedd2eaa08aaa Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Tue, 14 Feb 2023 09:33:18 -0800 Subject: [PATCH 14/34] Update content/concepts/tokens/nftoken-auctions.md Co-authored-by: oeggert <117319296+oeggert@users.noreply.github.com> --- content/concepts/tokens/nftoken-auctions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index f18e7330d5..60abf386e3 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -57,4 +57,4 @@ This is the most complex workflow of the three. **Cons:** - After the auction is complete, the sale is contingent on the seller agreeing to the final bid amount and broker fee amount. This means that sellers can back out of an otherwise complete auction or that sellers can delay settlement due to being distracted or not seeing some notification. -- After the auction is complete, a seller can actively refuse the winning bid, instead selling to someone else. +- After the auction is complete, a seller can refuse the winning bid, instead selling to someone else. From 28e4c8b7dc128fb2a7760e7c27ed3c8da86d39f9 Mon Sep 17 00:00:00 2001 From: Elliot Lee Date: Tue, 14 Feb 2023 09:41:38 -0800 Subject: [PATCH 15/34] tec-codes: tec txs consume a sequence number (#1731) --- .../transactions/transaction-results/tec-codes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/references/protocol-reference/transactions/transaction-results/tec-codes.md b/content/references/protocol-reference/transactions/transaction-results/tec-codes.md index 484c88e3d3..2949879db8 100644 --- a/content/references/protocol-reference/transactions/transaction-results/tec-codes.md +++ b/content/references/protocol-reference/transactions/transaction-results/tec-codes.md @@ -7,9 +7,9 @@ labels: --- # tec Codes -These codes indicate that the transaction failed, but it was applied to a ledger to apply the [transaction cost](transaction-cost.html). They have numerical values in the range 100 to 199. Ripple recommends using the text code, not the numeric value. +These codes indicate that the transaction failed, but it was applied to a ledger to apply the [transaction cost](transaction-cost.html). They have numerical values in the range 100 to 199. It is recommended to use the text code, not the numeric value. -For the most part, transactions with `tec` codes take no action other than to destroy the XRP paid as a [transaction cost](transaction-cost.html), but there are some exceptions. As one such exception, a transaction that results in `tecOVERSIZE` still cleans up some [unfunded offers](offers.html#lifecycle-of-an-offer). Always look at the [transaction metadata](transaction-metadata.html) to see precisely what a transaction did. +Transactions with `tec` codes destroy the XRP paid as a [transaction cost](transaction-cost.html), and consume a [sequence number](basic-data-types.html#account-sequence). For the most part, the transactions take no other action, but there are some exceptions. For example, a transaction that results in `tecOVERSIZE` still cleans up some [unfunded offers](offers.html#lifecycle-of-an-offer). Always look at the [transaction metadata](transaction-metadata.html) to see precisely what a transaction did. **Caution:** A transaction that provisionally failed with a `tec` code may still succeed or fail with a different code after being reapplied. The result is final when it appears in a validated ledger version. For more information, see [Finality of Results](finality-of-results.html) and [Reliable Transaction Submission](reliable-transaction-submission.html). From ccf138a7561e53ade80e15d891be74c762b52f6d Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Tue, 14 Feb 2023 10:01:11 -0800 Subject: [PATCH 16/34] Update content/concepts/tokens/nftoken-auctions.md Co-authored-by: oeggert <117319296+oeggert@users.noreply.github.com> --- content/concepts/tokens/nftoken-auctions.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 60abf386e3..fe8ca58ed5 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -12,7 +12,11 @@ There are several ways to run an auction, each with advantages and disadvantages ## Run the Auction Off the XRPL, Complete the Purchase on XRPL -This flow is listed first as it is the most straightforward. You store your bids in a private database. You take a cut of the winning bid prior to sending the Buyer/Seller the XRPL transaction that completes the purchase. Note that because NFTokenOffer objects can always be canceled by their creator, it is not currently possible to implement a binding offer. +This flow is the most straightforward. Note that the `NFTokenOffer` objects can always be canceled by their creator, so it's not possible to implement a binding offer. + +1. Store your bids in a private database. +2. You take a cut of the winning bid. +3. Send the buyer/seller the XRPL transaction to complete the purchase. ## Run the Auction in Brokered Mode, with a Reserve From d9f1ebf04a1cc06c09fc293195f4041983beb673 Mon Sep 17 00:00:00 2001 From: Dennis Dawson Date: Tue, 14 Feb 2023 10:01:28 -0800 Subject: [PATCH 17/34] Update content/concepts/tokens/nftoken-auctions.md Co-authored-by: oeggert <117319296+oeggert@users.noreply.github.com> --- content/concepts/tokens/nftoken-auctions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index fe8ca58ed5..88d8ade4d6 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -55,7 +55,7 @@ This is the most complex workflow of the three. **Pros:** -- This flow requires absolutely no trust among participants, making it option one would most often expect on the blockchain. +- This flow requires absolutely no trust among participants, making it the option most people expect on the blockchain. - Sellers know exactly how much the marketplace takes from them in fees and must agree to it on the chain. **Cons:** From e4fd0960682a7d7839c75d5ea380ac14534c83bd Mon Sep 17 00:00:00 2001 From: ddawson Date: Tue, 14 Feb 2023 11:33:22 -0800 Subject: [PATCH 18/34] Updates per Kenny and Shawn --- content/concepts/tokens/nftoken-auctions.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 88d8ade4d6..7a6fa0445d 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -24,9 +24,9 @@ Run the auction in brokered mode, as an auction with a reserve. ![Auction in Brokered Mode with a Reserve](img/nft-auction1.png "Auction in Brokered Mode with a Reserve") -1. The Seller creates the NFT, then sets the auction reserve price using `NFTokenCreateOffer`, specifying the broker account as the destination. -1. Buyers make bids using `NFTokenCreateOffer`, setting the broker account as the destination. -1. The Broker selects the winning bid, completes the sale using `NFTokenAcceptOffer`, collecting the broker fee. Then the Broker cancels any losing bids using `NFTokenCancelOffer`. +1. The seller creates the NFT, then sets the auction reserve price using `NFTokenCreateOffer`, specifying the broker account as the destination. +1. The bidders make offers using `NFTokenCreateOffer`, setting the broker account as the destination. +1. The broker selects the winning bid, completes the sale using `NFTokenAcceptOffer`, collecting the broker fee. Then the broker cancels any losing bids using `NFTokenCancelOffer`. **Pros:** @@ -36,9 +36,9 @@ Run the auction in brokered mode, as an auction with a reserve. **Cons:** -- There must be implicit trust between the seller and the marketplace that the marketplace will not take more than some previously-agreed-upon rate. If the reserve was 1 XRP and the winning bid was 1000 XRP, there is no on-chain mechanism to prevent the broker from taking 999 XRP as profit, leaving only the reserve profits for the Seller. +- There must be implicit trust between the seller and the broker that the broker will not take more than some previously agreed-upon rate. If the reserve was 1 XRP and the winning bid was 1000 XRP, there is no on-chain mechanism to prevent the broker from taking 999 XRP as profit, leaving only the reserve profits for the seller. -A major mitigating factor of this downside is that if this behavior were to happen, Brokers would lose their entire market share, which sellers should understand. +A major mitigating factor of this downside is that if this behavior were to happen, brokers would lose their entire market share, which sellers should understand. ## Run the Auction in Brokered Mode, without a Reserve. @@ -46,12 +46,12 @@ This is the most complex workflow of the three. ![Auction in Brokered Mode without a Reserve](img/nft-auction2.png "Auction in Brokered Mode without a Reserve") -1. The seller creates an NFT using NFTokenMint. -1. The bidders make bids using NFTokenCreateOffer, setting the broker as the destination. -1. The broker selects the winning bid, subtracts the amount to be collected as a fee, then requests theseller sign a sell off for this amount via NFTokenCreateOffer. +1. The seller creates an NFT using `NFTokenMint`. +1. The bidders make offers using `NFTokenCreateOffer`, setting the broker as the destination. +1. The broker selects the winning bid, subtracts the amount to be collected as a fee, then requests the seller sign a sell off for this amount via `NFTokenCreateOffer`. 1. The seller signs the requested offer, setting the broker as the destination. -1. The broker completes the sale using NFTokenAcceptOffer, and receives the broker fee. -1. The broker cancels any remaining bids using NFTokenCancelOffer. +1. The broker completes the sale using `NFTokenAcceptOffer`, and receives the broker fee. +1. The broker cancels any remaining bids using `NFTokenCancelOffer`. **Pros:** From 4b46822328e025ccd38fa6249042586aa885446c Mon Sep 17 00:00:00 2001 From: ddawson Date: Tue, 14 Feb 2023 11:37:17 -0800 Subject: [PATCH 19/34] remove markeetplace --- content/concepts/tokens/nftoken-auctions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/concepts/tokens/nftoken-auctions.md b/content/concepts/tokens/nftoken-auctions.md index 7a6fa0445d..1104e0d297 100644 --- a/content/concepts/tokens/nftoken-auctions.md +++ b/content/concepts/tokens/nftoken-auctions.md @@ -56,7 +56,7 @@ This is the most complex workflow of the three. **Pros:** - This flow requires absolutely no trust among participants, making it the option most people expect on the blockchain. -- Sellers know exactly how much the marketplace takes from them in fees and must agree to it on the chain. +- Sellers know exactly how much the broker takes from them in fees and must agree to it on the chain. **Cons:** From 3c9e657b37fc138395172d4e88663ef4aa9e61cf Mon Sep 17 00:00:00 2001 From: Jake <86485785+JakeatRipple@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:58:51 -0700 Subject: [PATCH 20/34] Feat update seo (#1730) --- template/base.html.jinja | 2 +- template/component-top-nav.html.jinja | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/template/base.html.jinja b/template/base.html.jinja index 552a7561e7..99cc45c1eb 100644 --- a/template/base.html.jinja +++ b/template/base.html.jinja @@ -46,7 +46,7 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KCQZ3L8'); - + {% if target.lang=="ja" %} diff --git a/template/component-top-nav.html.jinja b/template/component-top-nav.html.jinja index 24c6c9c719..18215eda81 100644 --- a/template/component-top-nav.html.jinja +++ b/template/component-top-nav.html.jinja @@ -1,11 +1,11 @@

{% trans %}Native NFT support is now available on the XRP Ledger{% endtrans %}

- Learn More + Learn More

{% trans %}Native NFT support is now available{% endtrans %}

-

{% trans %}on the XRP Ledger{% endtrans %}Learn More

+

{% trans %}on the XRP Ledger{% endtrans %}Learn More