From c11d4ef0f0f16e6529a3305aca5471bc7e67f5f7 Mon Sep 17 00:00:00 2001 From: Gabriel Rodriguez Alsina Date: Mon, 27 May 2019 22:01:39 -0300 Subject: [PATCH 001/133] (add) base elements for new network selector --- apps/block_scout_web/assets/css/app.scss | 2 + .../css/components/_network-selector.scss | 283 ++++++++++++++++++ .../assets/css/components/_radio.scss | 49 +++ .../network-selector-icons/aerum-mainnet.png | Bin 0 -> 4225 bytes .../callisto-mainnet.png | Bin 0 -> 2871 bytes .../network-selector-icons/callisto.svg | 7 + .../images/network-selector-icons/core.svg | 4 + .../images/network-selector-icons/dai.svg | 33 ++ .../ethereum-classic.png | Bin 0 -> 2965 bytes .../ethereum-mainnet.png | Bin 0 -> 3634 bytes .../network-selector-icons/goerli-testnet.png | Bin 0 -> 4936 bytes .../network-selector-icons/kovan-testnet.png | Bin 0 -> 2846 bytes .../network-selector-icons/poa-core.png | Bin 0 -> 1639 bytes .../network-selector-icons/poa-sokol.png | Bin 0 -> 1714 bytes .../rinkeby-testnet.png | Bin 0 -> 2171 bytes .../images/network-selector-icons/rinkeby.svg | 15 + .../ropsten-testnet.png | Bin 0 -> 1736 bytes .../images/network-selector-icons/ropsten.svg | 4 + .../network-selector-icons/rsk-mainnet.png | Bin 0 -> 3811 bytes .../images/network-selector-icons/sokol.svg | 4 + .../network-selector-icons/xdai-chain.png | Bin 0 -> 7638 bytes .../layout/_network_selector.html.eex | 51 ++++ .../layout/_network_selector_item.html.eex | 25 ++ .../templates/layout/_topnav.html.eex | 1 + 24 files changed, 478 insertions(+) create mode 100644 apps/block_scout_web/assets/css/components/_network-selector.scss create mode 100644 apps/block_scout_web/assets/css/components/_radio.scss create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/aerum-mainnet.png create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/callisto-mainnet.png create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/callisto.svg create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/core.svg create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/dai.svg create mode 100755 apps/block_scout_web/assets/static/images/network-selector-icons/ethereum-classic.png create mode 100755 apps/block_scout_web/assets/static/images/network-selector-icons/ethereum-mainnet.png create mode 100755 apps/block_scout_web/assets/static/images/network-selector-icons/goerli-testnet.png create mode 100755 apps/block_scout_web/assets/static/images/network-selector-icons/kovan-testnet.png create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/poa-core.png create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/poa-sokol.png create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/rinkeby-testnet.png create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/rinkeby.svg create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/ropsten-testnet.png create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/ropsten.svg create mode 100755 apps/block_scout_web/assets/static/images/network-selector-icons/rsk-mainnet.png create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/sokol.svg create mode 100644 apps/block_scout_web/assets/static/images/network-selector-icons/xdai-chain.png create mode 100644 apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex create mode 100644 apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex diff --git a/apps/block_scout_web/assets/css/app.scss b/apps/block_scout_web/assets/css/app.scss index 3838fd96c1..469e9ab5c4 100644 --- a/apps/block_scout_web/assets/css/app.scss +++ b/apps/block_scout_web/assets/css/app.scss @@ -121,6 +121,8 @@ $fa-font-path: "~@fortawesome/fontawesome-free/webfonts"; @import "components/api"; @import "components/alerts"; @import "components/errors"; +@import "components/radio"; +@import "components/network-selector"; :export { dashboardBannerChartAxisFontColor: $dashboard-banner-chart-axis-font-color; diff --git a/apps/block_scout_web/assets/css/components/_network-selector.scss b/apps/block_scout_web/assets/css/components/_network-selector.scss new file mode 100644 index 0000000000..cfa79942d2 --- /dev/null +++ b/apps/block_scout_web/assets/css/components/_network-selector.scss @@ -0,0 +1,283 @@ +$network-selector-overlay-background: $modal-overlay-color !default; +$network-selector-close-color: $primary !default; +$network-selector-horizontal-padding: 28px; +$btn-network-selector-load-more-background: #fff !default; +$btn-network-selector-load-more-color: $primary !default; +$network-selector-search-input-color: #a3a9b5 !default; +$network-selector-tab-active-border-color: $primary !default; +$network-selector-item-icon-dimensions: 30px !default; + +.network-selector-overlay { + background-color: rgba($network-selector-overlay-background, 0.9); + bottom: 0; + display: flex; + left: 0; + position: fixed; + right: 0; + top: 0; + z-index: 123; +} + +.network-selector { + background-color: #fff; + display: flex; + flex-direction: column; + flex-grow: 1; + flex-shrink: 1; + margin-left: auto; + max-width: 398px; + padding: 28px 0 35px; +} + +.network-selector-close { + flex-shrink: 0; + padding: 0 $network-selector-horizontal-padding; + margin: 0 0 8px; + + svg { + cursor: pointer; + display: block; + margin-left: auto; + } + + path { + fill: $network-selector-close-color; + } +} + +.network-selector-text-container { + flex-shrink: 0; + margin: 0 0 15px; + padding: 0 $network-selector-horizontal-padding; +} + +.network-selector-title { + color: #333; + font-size: 18px; + font-weight: normal; + line-height: 1.2; + margin: 0 0 10px; + padding: 0; +} + +.network-selector-text { + color: #a3a9b5; + font-size: 12px; + font-weight: normal; + line-height: 1.67; + margin: 0; + padding: 0; +} + +.network-selector-search-container { + align-items: center; + background-color: #f5f6fa; + display: flex; + flex-shrink: 0; + height: 62px; + margin: 0; + padding: 0 $network-selector-horizontal-padding; + + path { + flex-grow: 0; + flex-shrink: 0; + fill: $network-selector-search-input-color; + } +} + +.network-selector-search-input { + background-color: transparent; + border-color: transparent; + color: #333; + flex-grow: 1; + font-size: 14px; + font-weight: 600; + height: 100%; + outline: none; + padding: 0 20px 0 10px; + + &[placeholder]{ + color: $network-selector-search-input-color !important; + } + &::-webkit-input-placeholder { /* Chrome/Opera/Safari */ + color: $network-selector-search-input-color !important; + } + &::-moz-placeholder { /* Firefox 19+ */ + color: $network-selector-search-input-color !important; + } + &:-ms-input-placeholder { /* IE 10+ */ + color: $network-selector-search-input-color !important; + } + &:-moz-placeholder { /* Firefox 18- */ + color: $network-selector-search-input-color !important; + } +} + +.network-selector-tabs-container { + border-bottom: 1px solid $base-border-color; + display: flex; + flex-shrink: 0; + margin: 0 $network-selector-horizontal-padding; +} + +.network-selector-tab { + color: #a3a9b5; + cursor: pointer; + font-size: 14px; + font-weight: 600; + line-height: 1.2; + padding: 20px 20px 15px; + position: relative; + text-align: center; + + &:hover { + color: #333; + } + + &.active { + color: #333; + + &::after { + background-color: $network-selector-tab-active-border-color; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + bottom: 0; + content: ""; + height: 4px; + left: 0; + position: absolute; + right: 0; + } + } +} + +.network-selector-tab-content { + display: none; + + &.active { + display: block; + } +} + +.network-selector-item { + border-bottom: 1px solid $base-border-color; + display: flex; + position: relative; + + .radio { + margin: 0 15px 0 0; + } + + .radio-icon { + margin: 0; + } + + &:last-child { + border-bottom: none; + } +} + +.network-selector-item-url { + align-items: center; + cursor: pointer; + display: flex; + flex-grow: 1; + margin: 0; + padding: 20px 20px 20px 0; +} + +.network-selector-item-icon { + background-color: #dfdfdf; + background-position: 50% 50%; + background-repeat: no-repeat; + background-size: contain; + border-radius: 50%; + flex-grow: 0; + flex-shrink: 0; + height: $network-selector-item-icon-dimensions; + margin: 0 15px 0 0; + width: $network-selector-item-icon-dimensions; +} + +.network-selector-item-title { + color: #333; + flex-grow: 1; + font-size: 14px; + font-weight: normal; + line-height: 1.2; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; + white-space: nowrap; +} + +.network-selector-item-type { + color: #a3a9b5; + flex-shrink: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.2; + padding-left: 10px; + text-align: right; + white-space: nowrap; +} + +.network-selector-item-content { + align-items: center; + display: flex; + flex-grow: 1; +} + +.network-selector-networks-container { + flex-grow: 1; + flex-shrink: 1; + margin: 0 0 30px; + min-height: 100px; + overflow: auto; + padding: 0 $network-selector-horizontal-padding; +} + +.network-selector-load-more-container { + flex-shrink: 1; + padding: 0 $network-selector-horizontal-padding; + + .btn-network-selector-load-more { + @include btn-line($btn-network-selector-load-more-background, $btn-network-selector-load-more-color); + width: 100%; + } +} + +.network-selector-item-favorite { + align-items: center; + cursor: pointer; + display: flex; + flex-grow: 1; + flex-shrink: 0; + margin: 0; + max-width: 16px; + position: relative; + + input[type="checkbox"] { + cursor: pointer; + height: 100%; + opacity: 0; + position: absolute; + width: 100%; + z-index: 5; + + &:checked + svg { + position: relative; + z-index: 1; + + path { + fill: #ffb20d; + } + } + } + + &:hover { + path { + fill: rgba(#ffb20d, 0.4); + } + } +} \ No newline at end of file diff --git a/apps/block_scout_web/assets/css/components/_radio.scss b/apps/block_scout_web/assets/css/components/_radio.scss new file mode 100644 index 0000000000..ebcc2ac892 --- /dev/null +++ b/apps/block_scout_web/assets/css/components/_radio.scss @@ -0,0 +1,49 @@ +$radio-color: $primary !default; +$radio-dimensions: 20px !default; + +.radio { + align-items: center; + display: flex; + position: relative; + + input[type="radio"] { + height: 100%; + opacity: 0; + position: absolute; + width: 100%; + z-index: 5; + + &:checked + .radio-icon::before { + background-color: $radio-color; + border-radius: 50%; + content: ""; + height: 12px; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%); + width: 12px; + } + } + + .radio-icon { + border: 1px solid $base-border-color; + border-radius: 50%; + flex-grow: 0; + flex-shrink: 0; + height: $radio-dimensions; + margin: 0 10px 0 0; + position: relative; + width: $radio-dimensions; + z-index: 1; + } + + .radio-text { + font-size: 14px; + font-weight: normal; + line-height: 1.2; + position: relative; + white-space: nowrap; + z-index: 1; + } +} diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/aerum-mainnet.png b/apps/block_scout_web/assets/static/images/network-selector-icons/aerum-mainnet.png new file mode 100644 index 0000000000000000000000000000000000000000..cdef9a2edb814eeebcb9317e0fae60b4a858f6ac GIT binary patch literal 4225 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 literal 0 HcmV?d00001 diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/callisto-mainnet.png b/apps/block_scout_web/assets/static/images/network-selector-icons/callisto-mainnet.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9f2b2730b309d9df7f0216700bebf5a638ac26 GIT binary patch literal 2871 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 + + + + + + diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/core.svg b/apps/block_scout_web/assets/static/images/network-selector-icons/core.svg new file mode 100644 index 0000000000..63c66a6baa --- /dev/null +++ b/apps/block_scout_web/assets/static/images/network-selector-icons/core.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/dai.svg b/apps/block_scout_web/assets/static/images/network-selector-icons/dai.svg new file mode 100644 index 0000000000..c4f800733e --- /dev/null +++ b/apps/block_scout_web/assets/static/images/network-selector-icons/dai.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/ethereum-classic.png b/apps/block_scout_web/assets/static/images/network-selector-icons/ethereum-classic.png new file mode 100755 index 0000000000000000000000000000000000000000..5ca5d8fe7bbbe31f48a59dd2f908d48c7f723654 GIT binary patch literal 2965 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 literal 0 HcmV?d00001 diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/goerli-testnet.png b/apps/block_scout_web/assets/static/images/network-selector-icons/goerli-testnet.png new file mode 100755 index 0000000000000000000000000000000000000000..800590fee5a6b20f365d726451935eebdff86a99 GIT binary patch literal 4936 zcmbVQ2{_bi+m|gd)<#W{rZFePn0?HQ-B3*;Sx!TtF*BIV*34KdTb6K0lxnn)LzWPV zqDYdYNF7U&rG-SY)sV_JTD<3dzteZU*EiSopZ~M`e!u6w@8^E*>w5kPPL5lY71t_C zNl7V_x7s>O-X4pOg0$qn>VBu2iZE zOr>*u7{(!No&+r=Wo8+|qtXHxLa-0RkI6BIysxQ)fSGi2$S$k{!huI(_%pYL@fj{* zj;^$@02+Y~v9ti2g%BkIY=)2u4q>x60%C|c-7fKUc^V_;Y^|gr(`FQ1FN(K7%Uc@?E)H*3Vsb`l$jYkrsCq3)Xj_ z(wLk@X@f z6D732LnTQ^rwXb64cNhfNahHHR1S?nwl#-Hj5202=|n6Fg+-g-Q7{yWMu%aj7&;8^ zOJKmzcr2ZP#8GiLtj{;QBz#*gEpRc0KlyYCAAv_Au_kB)hJZFfBJBtS1QKnBw>7ag zv9?B$Ncf-J9ek$bq)}P_KMgvK=*#7^sgkr{vZ;OyIFI880WWP2k;G+j`I5j%qKp3f zIGIFp;&XkOEXjnxd5aC0Y)8T&2{;@KWsF=rB9bsHI>z8LgBbM9d@dXOEp>^^e+U)A zWHZtZjYIv~)$d&TFT;eg`z05?WXx8kK$2gfKPrF=WB-p9iz%^9ax#ci+Tv-JI7F4$ z4EZtmPX_;Yd;489*qp1z6t;G``g^#3fE7#q#7YxPFN#N{*J%$Sy5i_^aEn!{=+g>blv9 zDDh>Wm(eOs_j|zY4G3WabiXj9tEBd8cE!r!y2)a0WzdWh@I>3N_sYbVA$A$$v|BrS z%6B$8Z})@`CFvZk`hBHt`_`~PIlFlJRj>4YI}_jfvn@;nzo`LAG?SF08iuDoyn8eM zg&W=uRI>Q`;iCMfPl`oPqf4^!g{L;Ps)IJa73JxkI{vUbFKoWgv#dM){Fl$GgT}N^ zFx-KS$?Z-+^(;l(v$;r7&WhF?(W$&lDTQ+k|INTcT=X;js5DoHlcUuv3eGMq8Is#m z#f|uI$IvTrb}GkPTlbmPshR+w`G?(kkxpPFxWb)k=b^)-Bdd*{@Q%Z@Xa zrt&ruBL6%_Ny(pZ@7nuQ7Cnf@^5ZR=S!ZIrsPj#+?tGBy zPLQ+uHrXg$=qh%i+4O_plv=a)_71_J@n;Vs!MOIVuV$Ld*4=!LEt7w{TmMA=*OCKm z4u3RM4Dw>~3PzfhOoKV`CqITgLRgSI3|ZHrb;! z%RY?>`XeUqC2Vu>v>a2_(@Xg?OlNMUshUGp%q@%`P=6RU+n}1fus?%wJ$YHcg;PiL zICay-bF7pZXA8&m-DnZ{V%PcD8zAkq9uyD4b@ z2XdJSZZW8+9=xOWr@_+jsnHxz!d;ISMhY9r3DF1~(w!JGQG1}zFho>P?p?Xt*{ZE}degp1VeLd%%q~i_%tZ-43_JelfBK7b?du5Nt}5 zLvGgcug{3?-A?Z4?Ck43b0khiZH3(gYvXcd`znXhes4+(91g=~C?7VIS6&Y|c|rdX zZ~%wK!u0on$7lv|IiQ|Srf7 ZJgnlqM!2K3_CJuxjs_tzfLZFp3A6tK?Z#J1Rj zwJDXh0roN3l#HR@$oDk)6$1N}!xzn>c$l>?prUe&%#?Ns#yT~Q`E=r5rBZ<7g5K7A z^|U((k?&y3m~tll)DedPP_$1R`wh`C4M4J~h@^RQ?}~iN`smZO$E~jv|h+WOuqA9z0b|F%1m5;S6iKP*w-C;#C|>%^44Q@>S%7!S>iVA##k`5~K6; z!>;b>Ezg~^KYD0f>8M5PCtABd;MI){yvWLcP4^(aYb%)>@}dSnS2=1%Pi&DG&wCY^ z$$NU19U3d1R;zqmmUdTaJ;U9s$$akW;dFG@i?Z3fre z-DUl*08h`e?L6o%{fuq76wK7*(eO8AdgsEMYTmPf+Nr=w<-SCz-#U~t%hdpZw>?^A zm&G-t0W`~m*F8FJTDWHb8k{jQtlUCt)y-=}9f2}UlbOq?o2*&Wm4|Ym`#MHH@SwHF zTg;}Puiqm&<4n(~(wjTB-11RZx~ysD!`057&4W?zo>WvM*t*~{nF_lUzpPJ_eJl4F zBD8)|AfLKit6`u_?xkW|gZAp%yu_?*?iALcn4C!6keIg&h?m_o?u&8SqHt$=yW6E4 z=(6hho5K-dZ~wA;US8ktB|3NDMUl5@#2l*ONn8mPf4ze1w;?^jHYb_-m>Onf4Yo49 zrR~q_a%~DbhKah6hfXK%(%J1WT46ov-5L z%G5(@Cg9dP)3V*@ZrIf8*XQ^JvO7rb_0sjRzq6wi`XAr`>Ck4W5o>h?rKSO}gMQ-R z#2Oh2#?C%X8m(pZ2%~&ONkdJ=|M(b!ZF{MO7X@(1HQ<_Q#8mkc!fZ;o5V=7q>uLNp7h-V&t{uuMR6tDKzwKCF$oWPd7^$E{Fuhwo;$6wx{5Pw9TR?05d zF3DGGicG0BSW&*>X*PkM4>LAy$Q9@qdTi==NiB0O7#r*B#ha%LLh5;#SEUIZAx7#) z^|CUp_(uW_(wjHmrtZAN2Kvrgue(zJ6dgS~@P!>M?a<+L@wh(tHVOz$l0R{nm?#IQ zJ^h_Dklz(xQ7XPab}28wY2x*iM|sicc+Ggp3Vtpn`o-XyyYDBbjCO4*DFY(IMme4* zvKVQyo(68H(>{=6`L6d(WQcl0#}ni+Zws#k?k+k%v@eaGt$#UEw5(u=Ir~TACc4f> z*POd1h=0?=d26}e1q>u>~25SYl3n%NCfLA8ZppC ziLRsX#^_r;j=AAwKz`Q6;OBj_*9W2^#mTGfgM-Df%?9w6=a0LVv*n2TJC2dQ96I}) zjgMOXV1To8ZY~KT zUs{Pz8{;I&nPaVicGLhfq4+GfuftNxZH0$jYIoU5uir6RSIBCG%4NG0&q7Z3etgl= z6#r2r_Ok`qb=4C?9aYP2%WJ{(^BYGT*A0SZ?lu>=gAU&GDosv}j|c)iYkKskWO5R% zl~ez@mc6^F06n~U^A?_Bk-g>{>^xV?@q;Qb>GhHGM>j)WZ_|9NW)@C#!JF?7r3-~@ zbWkL&>4evHl<5t>qnAXM#Df$QY$6RvTKQ+#hLgJnqC1mD#-<)m?IZ5Ou#W%fo+3UA zGCeRk)ltnu1PvZ zYg&+cy=n(E>$v3Da>n1h>#LZ5)jiu0&{fluzM;R;}KHX`aw zr{-6C6R*;SRY)#!*8X5^C+UF{;(_Wmhdrlig$8SrL(IH*3K*qn&=rp)XubW@imoA* zbzkRVn@8T6hGqA+ws|kqv_lJObx(Lu&RB*{ZNIl(F(z78uG0pM)y#JWs&GEeCY1H- ztdXgm|CsVQy?^9OY4Br{lA)nh*Vb8n~+!rz4>mGov9vgbe zn^M-Ryy(npZLv>!dQe4vWmBP6YwD^b+py{ya-!(mx#;kj_qO)ApMVa8LqkGOr@i-S z{u-BVULcxdPqVbNwa=WnF>vF~M%YZ9c*}6RzmXciO0IZE(IW*bw2Ho-MBnCSPCZ{6cXGWt^kswxR6Eo~9sedq^}yXjR?f*{Gf zp}oj2A)qD*oq)wM7z|7Umx<}4Ss(;KEH;P5;V?)915eNru#us~rwubm5L~H8bp(oO z=@v#f5{oB<0O{$V1dYy0tHp=HL-P*(Kr!={O<2ZiE%}O z4q*i$I2Ny0A|!m;@K!kCvz&BsNbDyV`z%Magw z`l(Z61cs}z5rSY{wuV9{5bF_`!1M|Xiyh8#;4lkaEVg9TojywjD^ab5+S#IN$O@6b z1R?}T1jJywGdLa!5E8g^1t6Qj<_g&CL8uH#N%-o%19XDL+%h8=5Yr6BJCxZ zGTsuyVS5#6&-P}!xq%Sq25~(=&#f0KWrPIN6C{0$NqmDDy1L_ z(`#U|EKm&`jj(juXn<}_k3fvYVtO)gWOTXj&r8MPKs^?P#*zzokgqpg>LccXq(BCT z30jT_83v0mM2{{AAsBTt3^R$5LoDF`Ng28Jd-=J2QGc97JdMo7x{O7lPKZ4icIQG@~3Bcf=s z4o0ef=)?LSv{b5LZ8So*SQcQ>%Ca=0L2<0XB>b*>VC}ueH4G=ap=D@o!{mpxkt14? zT2Hp=W|xTPp^RQrUUkr{^xL+Kzj7k>ANO9I%YHm6EP_$J_2sJGTjwIyEn9G3 z54qmmgzcEwSX|Uqn^e`4lO*pFPH(-uEb?0_-Bv&HHRd~7s-)imz57_yajN*NIU|sD z&DK0ybM_x<^U!At6n+`W}~@t2=2a(Mm8>B-Xq?AHeb?Qz`vrOTf-b$T|K zv7}6gLtkp2@3_K$7Wy*QXG4;6f%nuMQd`H4E3FUx`EF;Ld#-un(!F!I(^0R?Z4bot zc~LRb6{>TeQ#*E^L5+WFFtyBG+Vxz%n6r(+D+p{KttKS+v#*JcB~`$p8QJqsGB3|8 z{iEqjndXa@kG~`d-Zr5vnWbKsC9F8AL zJ=HU3$+)WR3Bi=puXK}HbB}~sMqn6sV6$I1F75lo0&HQC95?X4_ zxpdn8K%=niFJre8fUonsMU8pQ`~~#VGLC-pmE+Nef@uM#y5#HJGpCvXd?mZJE@WK$ z^v&nZHt4FhgMF)_)~g-Li~bS5I|grgawjbyz0mC6ODb;7-kE`LEB&MEU5Ic{T~SM; zLSq^?T$#8f+75FqyD?*Ngtr60ucGFpO!eJ%KDqeBgte7ZQYhW~FF7@ptClscMK?02 z+VPnuPCAFr-2Lu1Puw5K^-5m4-H;IfRbOKFp84|Cx9+d<{KM%>lJotPn(w-I-J-f& z>Ms(w(xpj9o7<{pWN>y!9j}A!=gjvrG`kMJe)+O8Yo9}A)jMf$MQJ=0+U^$Ta=Lfj z3v>CXoP5R$?AVx_5lw}Ae@!g>HgD_edm(9>;Gzq)re?zP?4nGwtoQK2mI7KO=*lcP zadqmQh>%%dZMX=GCEvwZ?BR%Fo~@^~KHZAvY`^SS+DxTYI87Gp^FAQO7hV9J(wg3k zT0L7mtuf?9xP0PH>8aN#qO-PAo6ZB*O?ERJcTbM*yRCji?|kQ>sm(I%cUtb;-^X1# zYx>DhW2a|!b$0F#vchK%+h+@b_JZ83JIBKg6vybi;zQ;#YQv64H}(8Ifx0ecg(#r+ zXv=uQ@T5s@*V1{-=7#Ci)9z`e!b?X>3MM4PsqTsHtx3(!lO?;hx2WxHI}f-z%wj{T zxV_`+Y2;a}OATrLY4<)!TWOqM$=PG6p^w&_c>Sv5#_N_fD<-6v3^(Vu`oei%hu99yx#x56xwf}mw42)<<*aX literal 0 HcmV?d00001 diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/poa-core.png b/apps/block_scout_web/assets/static/images/network-selector-icons/poa-core.png new file mode 100644 index 0000000000000000000000000000000000000000..68bb5976f15b7125fca21f56aaa8b663ba68d705 GIT binary patch literal 1639 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 LZ6CFs5}x)S!$o_{ literal 0 HcmV?d00001 diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/rinkeby.svg b/apps/block_scout_web/assets/static/images/network-selector-icons/rinkeby.svg new file mode 100644 index 0000000000..1991096926 --- /dev/null +++ b/apps/block_scout_web/assets/static/images/network-selector-icons/rinkeby.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/ropsten-testnet.png b/apps/block_scout_web/assets/static/images/network-selector-icons/ropsten-testnet.png new file mode 100644 index 0000000000000000000000000000000000000000..91581113dffb031bfe914a1290be32cd22683c8f GIT binary patch literal 1736 zcmaJ?X;2eq7!E3+I5<@hDsn7K6=_L!lR(HuA|MG6AvA<2h^??B8wil>x>-m7u~tE= z)QpPAC}k-18bv$Q4g&=v9;1|sFe(-6Q3s4#JU|5xz)reBj{Yd!`F6i!-sgF*=bPOj zi;s48@^E4>7|xOyk({1WZ13zD^ta)+o2%(*5hYHh5^*(UKuL@dp~BNKK%zx6Fgb>* z@;9_$p$x{%Wg0~?l`M@DC~++dwb`(YT7pJ17@=WC0##;X6p)T(Xmmnwpt%JEG%6vO z6fA|ML?o7}i76nl#DaK*vLIWDsKBrlK&Vkb6KF9C1&rDponBxRf@8b_dTl#~Kw!*- z$`*njf=ZUkfJmIgfM6DnsbmKQ10e{D&Ep0kNFcz0*?b7*Lu@XS%@YK{0uBcle?ZzB zsZtB%qNs6S^iBw7QWPP8AcMicGH_WqnE|m81c6`<#NjY$3#L9_N1;ZhPVYCtAj0%Y zQbSN0TnE?~(R4hQ5`uK3A5zc~le9Yhc$w&eK}M8-*euwV(uAQ@`v0a{?WDDyl4Dcx z{wJ|skxyWd9Mj{uq>^r&+Rx^S5JZv~O5vme$8#pCD9gktT%U;(KxCw?Y6!4QiYhfa z+hM>MN-7mdbb1QaDKUvi2+}+(jYcIvg5aPKID{X9z`<;`7(rk-YGqJlFegF`M?|fR zn!t*1Wv&*}Q4?6z6c(8lYZHW)pgoH)Qj>?NqDWi|j3qA6OdktxTE20tYWi40ro}>Z zFp#ai|7!Qd5v?KHa#FnXW>Wr`j@CR$i@QAzTtnX(oZLgiLZ%y73A4cA-V4Lc0!eKO-qmWuA^>*XLa$Y4^&*by*Z>; zWXZ91y?xW)oy_l0L-(sP=D93AoZ5YPPi$b-seP?mE%INJ(#4)7?Zba>yEwRNhM}-F z-QTc#m8AB4Xg?07!{!od}!oDs)iide zUEc&;Ea7pUxNeGHkfcj0E2$G#nJWAlqYtiJQi3HNTfr?cciiUkIeuk*J@$Rat>rZp z2_L7;B~(mB6*)Tyfb^6Z>Grml{Y=Q|hiheo`LJYDZZnM{%m`?i7ghVHf5MyvMr^0U|b%GBZ&r={lD*D<-= zM<-6)i+g^i!`|uYrmHog@M=JsZf&Y<8m&vre7sr~P;~gs_TJ*Q-s@|+O6!ZF752l| z=704`{jF$&#N%c2*>qn0{#EOood&|pi2e%In3!a)P5GiLYVqBzSKU4S@*Z?Uv-l&a z-!hB5FTXzom{ZmRriN;N#r1Zc`a;{TwQi2*MSb(52g2SBEnRc4;^BhW`4ZJa;^YZC mM}jf^I5(x-L$XokIfkWj$@lu8mgBa6i$okR`f+92mVW@(W|@uv literal 0 HcmV?d00001 diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/ropsten.svg b/apps/block_scout_web/assets/static/images/network-selector-icons/ropsten.svg new file mode 100644 index 0000000000..87c98f79d2 --- /dev/null +++ b/apps/block_scout_web/assets/static/images/network-selector-icons/ropsten.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/rsk-mainnet.png b/apps/block_scout_web/assets/static/images/network-selector-icons/rsk-mainnet.png new file mode 100755 index 0000000000000000000000000000000000000000..c7c0e067c83fd0222cbee6d354e73ed5e2eb02b2 GIT binary patch literal 3811 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 literal 0 HcmV?d00001 diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/sokol.svg b/apps/block_scout_web/assets/static/images/network-selector-icons/sokol.svg new file mode 100644 index 0000000000..b2ced66189 --- /dev/null +++ b/apps/block_scout_web/assets/static/images/network-selector-icons/sokol.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/xdai-chain.png b/apps/block_scout_web/assets/static/images/network-selector-icons/xdai-chain.png new file mode 100644 index 0000000000000000000000000000000000000000..ab35a5b07235016486d096fdd62fcd0cba932b81 GIT binary patch literal 7638 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 X+d@w4jj9xX|Fo(r>nPPK*uMTBp*k`w literal 0 HcmV?d00001 diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex new file mode 100644 index 0000000000..042fc2135e --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex @@ -0,0 +1,51 @@ +
+
+
+ + + +
+
+

<%= gettext("Change Network") %>

+

<%= gettext("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.") %>

+
+
+ + + + +
+
+
<%= gettext("All") %>
+
<%= gettext("Mainnet") %>
+
<%= gettext("Testnet") %>
+
<%= gettext("Favorites") %>
+
+
+
+ <%= for %{url: url, title: title} <- other_networks() do %> + <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: "Mainnet" %> + <% end %> +
+ <% main_nets = main_nets(other_networks()) %> +
+ <%= for %{url: url, title: title} <- main_nets do %> + <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: assigns[:tab_type] %> + <% end %> +
+ <% test_nets = test_nets(other_networks()) %> +
+ <%= for %{url: url, title: title} <- test_nets do %> + <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: assigns[:tab_type] %> + <% end %> +
+
+ No content. +
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex new file mode 100644 index 0000000000..2636542e4e --- /dev/null +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex @@ -0,0 +1,25 @@ +
+ + +
\ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex index 514422bcc8..1839c6d445 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex @@ -131,3 +131,4 @@ +<%= render BlockScoutWeb.LayoutView, "_network_selector.html" %> \ No newline at end of file From 239b5ac6c476498d884323922ff0f6b4dd8d4053 Mon Sep 17 00:00:00 2001 From: Gabriel Rodriguez Alsina Date: Tue, 28 May 2019 13:00:27 -0300 Subject: [PATCH 002/133] (add) new network selector behaviours --- .../css/components/_network-selector.scss | 47 +++++++++- apps/block_scout_web/assets/js/app.js | 1 + .../assets/js/lib/network_selector.js | 71 ++++++++++++++ .../layout/_network_selector.html.eex | 92 ++++++++++--------- .../layout/_network_selector_item.html.eex | 2 +- .../templates/layout/_topnav.html.eex | 16 +--- 6 files changed, 165 insertions(+), 64 deletions(-) create mode 100644 apps/block_scout_web/assets/js/lib/network_selector.js diff --git a/apps/block_scout_web/assets/css/components/_network-selector.scss b/apps/block_scout_web/assets/css/components/_network-selector.scss index cfa79942d2..e4305befb9 100644 --- a/apps/block_scout_web/assets/css/components/_network-selector.scss +++ b/apps/block_scout_web/assets/css/components/_network-selector.scss @@ -7,10 +7,14 @@ $network-selector-search-input-color: #a3a9b5 !default; $network-selector-tab-active-border-color: $primary !default; $network-selector-item-icon-dimensions: 30px !default; +.network-selector-visible { + position: fixed; +} + .network-selector-overlay { background-color: rgba($network-selector-overlay-background, 0.9); bottom: 0; - display: flex; + display: none; left: 0; position: fixed; right: 0; @@ -18,6 +22,12 @@ $network-selector-item-icon-dimensions: 30px !default; z-index: 123; } +.network-selector-wrapper { + display: flex; + height: 100%; + width: 100%; +} + .network-selector { background-color: #fff; display: flex; @@ -26,7 +36,10 @@ $network-selector-item-icon-dimensions: 30px !default; flex-shrink: 1; margin-left: auto; max-width: 398px; + min-width: 0; padding: 28px 0 35px; + position: relative; + transition: right 0.25s ease-out; } .network-selector-close { @@ -123,12 +136,16 @@ $network-selector-item-icon-dimensions: 30px !default; .network-selector-tab { color: #a3a9b5; cursor: pointer; + flex-shrink: 1; font-size: 14px; font-weight: 600; line-height: 1.2; - padding: 20px 20px 15px; + min-width: 0; + padding: 20px 18px 15px; position: relative; text-align: center; + user-select: none; + white-space: nowrap; &:hover { color: #333; @@ -136,6 +153,7 @@ $network-selector-item-icon-dimensions: 30px !default; &.active { color: #333; + cursor: default; &::after { background-color: $network-selector-tab-active-border-color; @@ -165,7 +183,12 @@ $network-selector-item-icon-dimensions: 30px !default; position: relative; .radio { + cursor: pointer; margin: 0 15px 0 0; + + input[type="radio"] { + cursor: pointer; + } } .radio-icon { @@ -183,7 +206,13 @@ $network-selector-item-icon-dimensions: 30px !default; display: flex; flex-grow: 1; margin: 0; - padding: 20px 20px 20px 0; + padding: 20px 0; + + &:hover { + .network-selector-item-type { + color: #333; + } + } } .network-selector-item-icon { @@ -208,6 +237,7 @@ $network-selector-item-icon-dimensions: 30px !default; overflow: hidden; text-align: left; text-overflow: ellipsis; + user-select: none; white-space: nowrap; } @@ -219,6 +249,7 @@ $network-selector-item-icon-dimensions: 30px !default; line-height: 1.2; padding-left: 10px; text-align: right; + user-select: none; white-space: nowrap; } @@ -254,7 +285,8 @@ $network-selector-item-icon-dimensions: 30px !default; flex-grow: 1; flex-shrink: 0; margin: 0; - max-width: 16px; + max-width: 36px; + padding-left: 20px; position: relative; input[type="checkbox"] { @@ -280,4 +312,11 @@ $network-selector-item-icon-dimensions: 30px !default; fill: rgba(#ffb20d, 0.4); } } +} + +.network-selector-tab-content-empty { + font-size: 16px; + font-weight: 600; + padding: 40px; + text-align: center; } \ No newline at end of file diff --git a/apps/block_scout_web/assets/js/app.js b/apps/block_scout_web/assets/js/app.js index f10e3d696d..f37659ccba 100644 --- a/apps/block_scout_web/assets/js/app.js +++ b/apps/block_scout_web/assets/js/app.js @@ -54,3 +54,4 @@ import './lib/tooltip' import './lib/modals' import './lib/try_api' import './lib/card_tabs' +import './lib/network_selector' diff --git a/apps/block_scout_web/assets/js/lib/network_selector.js b/apps/block_scout_web/assets/js/lib/network_selector.js new file mode 100644 index 0000000000..f7765329a0 --- /dev/null +++ b/apps/block_scout_web/assets/js/lib/network_selector.js @@ -0,0 +1,71 @@ +import $ from 'jquery' + +$(function () { + const mainBody = $('body') + const showNetworkSelector = $('.js-show-network-selector') + const hideNetworkSelector = $('.js-network-selector-close') + const networkSelector = $('.js-network-selector') + const networkSelectorOverlay = $('.js-network-selector-overlay') + const networkSelectorTab = $('.js-network-selector-tab') + const networkSelectorTabContent = $('.js-network-selector-tab-content') + const networkSelectorItemURL = $('.js-network-selector-item-url') + const FADE_IN_DELAY = 250 + + showNetworkSelector.on('click', (e) => { + e.preventDefault() + openNetworkSelector() + }) + + hideNetworkSelector.on('click', (e) => { + e.preventDefault() + closeNetworkSelector() + }) + + networkSelectorTab.on('click', function (e) { + e.preventDefault() + setNetworkTab($(this)) + }) + + networkSelectorItemURL.on('click', function (e) { + window.location = $(this).attr('network-selector-item-url') + }) + + let setNetworkTab = (currentTab) => { + if (currentTab.hasClass('active')) return + + networkSelectorTab.removeClass('active') + currentTab.addClass('active') + networkSelectorTabContent.removeClass('active') + $(`[network-selector-tab="${currentTab.attr('network-selector-tab-filter')}"]`).addClass('active') + } + + let openNetworkSelector = () => { + mainBody.addClass('network-selector-visible') + networkSelectorOverlay.fadeIn(FADE_IN_DELAY) + setNetworkSelectorVisiblePosition() + } + + let closeNetworkSelector = () => { + mainBody.removeClass('network-selector-visible') + networkSelectorOverlay.fadeOut(FADE_IN_DELAY) + setNetworkSelectorHiddenPosition() + } + + let getNetworkSelectorWidth = () => { + return parseInt(networkSelector.css('width')) || parseInt(networkSelector.css('max-width')) + } + + let setNetworkSelectorHiddenPosition = () => { + return networkSelector.css({ 'right': `-${getNetworkSelectorWidth()}px` }) + } + + let setNetworkSelectorVisiblePosition = () => { + return networkSelector.css({ 'right': '0' }) + } + + let init = () => { + setNetworkSelectorHiddenPosition() + } + + init() +}) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex index 042fc2135e..eadf1b4503 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex @@ -1,51 +1,55 @@ -
-
-
- - - -
-
-

<%= gettext("Change Network") %>

-

<%= gettext("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.") %>

-
-
- - - - -
-
-
<%= gettext("All") %>
-
<%= gettext("Mainnet") %>
-
<%= gettext("Testnet") %>
-
<%= gettext("Favorites") %>
-
-
-
- <%= for %{url: url, title: title} <- other_networks() do %> - <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: "Mainnet" %> - <% end %> +
+
+
+
+ + +
- <% main_nets = main_nets(other_networks()) %> -
- <%= for %{url: url, title: title} <- main_nets do %> - <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: assigns[:tab_type] %> - <% end %> +
+

<%= gettext("Change Network") %>

+

<%= gettext("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.") %>

- <% test_nets = test_nets(other_networks()) %> -
- <%= for %{url: url, title: title} <- test_nets do %> - <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: assigns[:tab_type] %> - <% end %> +
+ + + + +
+
+
<%= gettext("All") %>
+
<%= gettext("Mainnet") %>
+
<%= gettext("Testnet") %>
+
<%= gettext("Favorites") %>
-
- No content. +
+ <% main_nets = main_nets(other_networks()) %> + <% test_nets = test_nets(other_networks()) %> +
+ <%= for %{url: url, title: title} <- main_nets do %> + <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: "Mainnet" %> + <% end %> + <%= for %{url: url, title: title} <- test_nets do %> + <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: "Testnet" %> + <% end %> +
+
+ <%= for %{url: url, title: title} <- main_nets do %> + <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: "Mainnet" %> + <% end %> +
+
+ <%= for %{url: url, title: title} <- test_nets do %> + <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: "Testnet" %> + <% end %> +
+
+
No content.
+
+
+
+
- -
-
-
\ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex index 2636542e4e..a798178455 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex @@ -1,5 +1,5 @@
-
From 094b46f7cb775fb73a4202d1c8943373acc87a4c Mon Sep 17 00:00:00 2001 From: Gabriel Rodriguez Alsina Date: Tue, 28 May 2019 14:15:35 -0300 Subject: [PATCH 003/133] (update) changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34eaca672a..fdb6bdfc16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Current ### Features +- [#2044](https://github.com/poanetwork/blockscout/pull/2044) - New network selector. - [#1963](https://github.com/poanetwork/blockscout/pull/1963), [#1959](https://github.com/poanetwork/blockscout/pull/1959), [#1948](https://github.com/poanetwork/blockscout/pull/1948), [#1936](https://github.com/poanetwork/blockscout/pull/1936), [#1925](https://github.com/poanetwork/blockscout/pull/1925), [#1922](https://github.com/poanetwork/blockscout/pull/1922), [#1903](https://github.com/poanetwork/blockscout/pull/1903), [#1874](https://github.com/poanetwork/blockscout/pull/1874), [#1895](https://github.com/poanetwork/blockscout/pull/1895), [#2031](https://github.com/poanetwork/blockscout/pull/2031) - added new themes and logos for poa, eth, rinkeby, goerli, ropsten, kovan, sokol, xdai, etc, rsk - [#2010](https://github.com/poanetwork/blockscout/pull/2010) - added "block not found" and "tx not found pages" - [#1928](https://github.com/poanetwork/blockscout/pull/1928) - pagination styles were updated From 8ae7e32ed7372601d6825bd0867c11489354ddb5 Mon Sep 17 00:00:00 2001 From: Gabriel Rodriguez Alsina Date: Tue, 28 May 2019 14:17:00 -0300 Subject: [PATCH 004/133] (update) internationalization --- apps/block_scout_web/priv/gettext/default.pot | 44 +++++++++++++++++-- .../priv/gettext/en/LC_MESSAGES/default.po | 44 +++++++++++++++++-- 2 files changed, 80 insertions(+), 8 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index c7c75a3770..6c35a0f4a4 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -112,6 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -674,8 +675,8 @@ msgid "Responses" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:111 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:128 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:97 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:114 msgid "Search" msgstr "" @@ -1540,8 +1541,8 @@ msgid "Error: Could not determine contract creator." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:105 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:109 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:91 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:95 msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" @@ -1720,3 +1721,38 @@ msgstr "" #: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:17 msgid "There are no token transfers for this transaction" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +msgid "Change Network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Favorites" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +msgid "Mainnet" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +msgid "Search network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:51 +msgid "Show More Networks" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +msgid "Testnet" +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index 844c8db298..f97921888d 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -112,6 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -674,8 +675,8 @@ msgid "Responses" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:111 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:128 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:97 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:114 msgid "Search" msgstr "" @@ -1540,8 +1541,8 @@ msgid "Error: Could not determine contract creator." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:105 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:109 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:91 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:95 msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" @@ -1720,3 +1721,38 @@ msgstr "" #: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:17 msgid "There are no token transfers for this transaction" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +msgid "Change Network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Favorites" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +msgid "Mainnet" +msgstr "" + +#, elixir-format, fuzzy +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +msgid "Search network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:51 +msgid "Show More Networks" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +msgid "Testnet" +msgstr "" From 4462646c903806cbb66bb289a70a7460009fa414 Mon Sep 17 00:00:00 2001 From: Gabriel Rodriguez Alsina Date: Mon, 3 Jun 2019 10:38:04 -0300 Subject: [PATCH 005/133] (update) internationalization files --- apps/block_scout_web/priv/gettext/default.pot | 44 +++++++++++++++++-- .../priv/gettext/en/LC_MESSAGES/default.po | 44 +++++++++++++++++-- 2 files changed, 80 insertions(+), 8 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 2caf439866..53ae7cdbb1 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -112,6 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -675,8 +676,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_logs/index.html.eex:14 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:111 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:128 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:97 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:114 msgid "Search" msgstr "" @@ -1541,8 +1542,8 @@ msgid "Error: Could not determine contract creator." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:105 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:109 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:91 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:95 msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" @@ -1726,3 +1727,38 @@ msgstr "" #: lib/block_scout_web/templates/address_logs/index.html.eex:12 msgid "Topic" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +msgid "Change Network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Favorites" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +msgid "Mainnet" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +msgid "Search network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:51 +msgid "Show More Networks" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +msgid "Testnet" +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index 6bbaa0f4b7..bb19f262ab 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -112,6 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -675,8 +676,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_logs/index.html.eex:14 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:111 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:128 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:97 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:114 msgid "Search" msgstr "" @@ -1541,8 +1542,8 @@ msgid "Error: Could not determine contract creator." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:105 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:109 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:91 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:95 msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" @@ -1726,3 +1727,38 @@ msgstr "" #: lib/block_scout_web/templates/address_logs/index.html.eex:12 msgid "Topic" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +msgid "Change Network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Favorites" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +msgid "Mainnet" +msgstr "" + +#, elixir-format, fuzzy +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +msgid "Search network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:51 +msgid "Show More Networks" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +msgid "Testnet" +msgstr "" From a88e3d42433015423733e7c08bc972ff3024672b Mon Sep 17 00:00:00 2001 From: Gabriel Rodriguez Alsina Date: Mon, 3 Jun 2019 12:47:59 -0300 Subject: [PATCH 006/133] (update) language files --- apps/block_scout_web/priv/gettext/default.pot | 44 ++++++++++++-- .../priv/gettext/en/LC_MESSAGES/default.po | 58 +++++++++++++++---- 2 files changed, 87 insertions(+), 15 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index c6d41cb84a..7dca514693 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -112,6 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -665,8 +666,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_logs/index.html.eex:14 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:111 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:128 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:97 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:114 msgid "Search" msgstr "" @@ -1481,8 +1482,8 @@ msgid "Error: Could not determine contract creator." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:105 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:109 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:91 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:95 msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" @@ -1694,3 +1695,38 @@ msgstr "" #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:3 msgid "New Smart Contract Verification" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +msgid "Change Network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Favorites" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +msgid "Mainnet" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +msgid "Search network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:51 +msgid "Show More Networks" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +msgid "Testnet" +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index 59a612407d..12e0d15bb0 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -112,6 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -207,8 +208,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:37 -#: lib/block_scout_web/templates/address/overview.html.eex:142 -#: lib/block_scout_web/templates/address/overview.html.eex:150 +#: lib/block_scout_web/templates/address/overview.html.eex:144 +#: lib/block_scout_web/templates/address/overview.html.eex:152 #: lib/block_scout_web/templates/tokens/overview/_details.html.eex:106 #: lib/block_scout_web/templates/tokens/overview/_details.html.eex:114 msgid "Close" @@ -624,7 +625,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/overview.html.eex:33 -#: lib/block_scout_web/templates/address/overview.html.eex:141 +#: lib/block_scout_web/templates/address/overview.html.eex:143 #: lib/block_scout_web/templates/tokens/overview/_details.html.eex:35 #: lib/block_scout_web/templates/tokens/overview/_details.html.eex:105 msgid "QR Code" @@ -665,8 +666,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_logs/index.html.eex:14 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:111 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:128 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:97 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:114 msgid "Search" msgstr "" @@ -1481,8 +1482,8 @@ msgid "Error: Could not determine contract creator." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:105 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:109 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:91 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:95 msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" @@ -1667,12 +1668,12 @@ msgstr "" msgid "ABI-encoded Constructor Arguments (if required by the contract)" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:87 msgid "Enter the Solidity Contract Code" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:127 #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:149 #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:171 @@ -1681,7 +1682,7 @@ msgstr "" msgid "Library Address" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:117 #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:139 #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:161 @@ -1690,7 +1691,42 @@ msgstr "" msgid "Library Name" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:3 msgid "New Smart Contract Verification" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +msgid "Change Network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Favorites" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +msgid "Mainnet" +msgstr "" + +#, elixir-format, fuzzy +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +msgid "Search network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:51 +msgid "Show More Networks" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +msgid "Testnet" +msgstr "" From 82a977033cf643365eebd01cf5bf2ef3e3003bb7 Mon Sep 17 00:00:00 2001 From: Gabriel Rodriguez Alsina Date: Mon, 3 Jun 2019 12:53:53 -0300 Subject: [PATCH 007/133] (fix) main container position when the network selector is showing --- .../assets/css/components/_network-selector.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/block_scout_web/assets/css/components/_network-selector.scss b/apps/block_scout_web/assets/css/components/_network-selector.scss index e4305befb9..4b1068fab4 100644 --- a/apps/block_scout_web/assets/css/components/_network-selector.scss +++ b/apps/block_scout_web/assets/css/components/_network-selector.scss @@ -8,7 +8,11 @@ $network-selector-tab-active-border-color: $primary !default; $network-selector-item-icon-dimensions: 30px !default; .network-selector-visible { + bottom: 0; + left: 0; position: fixed; + right: 0; + top: 0; } .network-selector-overlay { From 1d90f370d502a15a8677e2842dc1fc20ed947f80 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Wed, 5 Jun 2019 13:33:27 +0300 Subject: [PATCH 008/133] add prototype to export transactions as csv --- .../chain/address_transaction_csv_exporter.ex | 72 +++++++++++++++++++ apps/explorer/mix.exs | 2 + .../address_transaction_csv_exporter_test.exs | 43 +++++++++++ mix.lock | 2 + 4 files changed, 119 insertions(+) create mode 100644 apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex create mode 100644 apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex new file mode 100644 index 0000000000..66d47bba5b --- /dev/null +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -0,0 +1,72 @@ +defmodule Explorer.Chain.AddressTransactionCsvExporter do + alias Explorer.Chain + alias Explorer.Chain.{Address, Transaction} + + @necessity_by_association [ + necessity_by_association: %{ + [created_contract_address: :names] => :optional, + [from_address: :names] => :optional, + [to_address: :names] => :optional, + [token_transfers: :token] => :optional, + [token_transfers: :to_address] => :optional, + [token_transfers: :from_address] => :optional, + [token_transfers: :token_contract_address] => :optional, + :block => :required + } + ] + + def export(address) do + address + |> Chain.address_to_transactions_with_rewards(@necessity_by_association) + |> to_csv_format(address) + |> dump_data_to_csv() + end + + defp dump_data_to_csv(transactions) do + {:ok, path} = Briefly.create() + + transactions + |> NimbleCSV.RFC4180.dump_to_stream() + |> Stream.into(File.stream!(path)) + |> Enum.to_list() + + path + end + + defp to_csv_format(transactions, address) do + # , "ETHCurrentPrice", "ETHPriceAtTxDate", "TxFee", "Status", "ErrCode"] + row_names = [ + "TxHash", + "BlockNumber", + "UnixTimestamp", + "FromAddress", + "ToAddress", + "ContractAddress", + "Type", + "Value" + ] + + transaction_lists = + transactions + |> Stream.map(fn transaction -> + [ + to_string(transaction.hash), + transaction.block_number, + transaction.block.timestamp, + to_string(transaction.from_address), + to_string(transaction.to_address), + to_string(transaction.created_contract_address), + type(transaction, address), + 1 + ] + end) + + Stream.concat([row_names], transaction_lists) + end + + defp type(%Transaction{from_address_hash: from_address}, %Address{hash: from_address}), do: "OUT" + + defp type(%Transaction{to_address_hash: to_address}, %Address{hash: to_address}), do: "IN" + + defp type(_, _), do: "" +end diff --git a/apps/explorer/mix.exs b/apps/explorer/mix.exs index ee233e3386..2e0bd82138 100644 --- a/apps/explorer/mix.exs +++ b/apps/explorer/mix.exs @@ -65,6 +65,7 @@ defmodule Explorer.Mixfile do {:benchee, "~> 0.13.1", only: :test}, # CSV output for benchee {:benchee_csv, "~> 0.8.0", only: :test}, + {:briefly, "~> 0.4", github: "CargoSense/briefly"}, {:bypass, "~> 1.0", only: :test}, {:comeonin, "~> 4.0"}, {:credo, "1.0.0", only: :test, runtime: false}, @@ -91,6 +92,7 @@ defmodule Explorer.Mixfile do {:math, "~> 0.3.0"}, {:mock, "~> 0.3.0", only: [:test], runtime: false}, {:mox, "~> 0.4", only: [:test]}, + {:nimble_csv, "~> 0.6.0"}, {:poison, "~> 3.1"}, {:postgrex, ">= 0.0.0"}, # For compatibility with `prometheus_process_collector`, which hasn't been updated yet diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs new file mode 100644 index 0000000000..40987e1afc --- /dev/null +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -0,0 +1,43 @@ +defmodule Explorer.Chain.AddressTransactionCsvExporterTest do + use Explorer.DataCase + + alias Explorer.Chain.AddressTransactionCsvExporter + + describe "export/1" do + test "exports address transactions to csv" do + address = insert(:address) + + transaction = + :transaction + |> insert(from_address: address) + |> with_block() + |> Repo.preload(:token_transfers) + + [result] = + address + |> AddressTransactionCsvExporter.export() + |> File.stream!() + |> NimbleCSV.RFC4180.parse_stream() + |> Stream.map(fn [hash, block_number, timestamp, from_address, to_address, created_address, type, value] -> + %{ + hash: hash, + block_number: block_number, + timestamp: timestamp, + from_address: from_address, + to_address: to_address, + created_address: created_address, + type: type, + value: value + } + end) + |> Enum.to_list() + + assert result.block_number == to_string(transaction.block_number) + assert result.created_address == to_string(transaction.created_contract_address_hash) + assert result.from_address == to_string(transaction.from_address) + assert result.to_address == to_string(transaction.to_address) + assert result.hash == to_string(transaction.hash) + assert result.type == "OUT" + end + end +end diff --git a/mix.lock b/mix.lock index df1be8c242..efc77457a2 100644 --- a/mix.lock +++ b/mix.lock @@ -11,6 +11,7 @@ "benchee": {:hex, :benchee, "0.13.2", "30cd4ff5f593fdd218a9b26f3c24d580274f297d88ad43383afe525b1543b165", [:mix], [{:deep_merge, "~> 0.1", [hex: :deep_merge, repo: "hexpm", optional: false]}], "hexpm"}, "benchee_csv": {:hex, :benchee_csv, "0.8.0", "0ca094677d6e2b2f601b7ee7864b754789ef9d24d079432e5e3d6f4fb83a4d80", [:mix], [{:benchee, "~> 0.12", [hex: :benchee, optional: false]}, {:csv, "~> 2.0", [hex: :csv, optional: false]}]}, "binary": {:hex, :binary, "0.0.5", "20d816f7274ea34f1b673b4cff2fdb9ebec9391a7a68c349070d515c66b1b2cf", [:mix], []}, + "briefly": {:git, "https://github.com/CargoSense/briefly.git", "2526e9674a4e6996137e066a1295ea60962712b8", []}, "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], []}, "bypass": {:hex, :bypass, "1.0.0", "b78b3dcb832a71aca5259c1a704b2e14b55fd4e1327ff942598b4e7d1a7ad83d", [:mix], [{:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 1.0 or ~> 2.0", [hex: :plug_cowboy, repo: "hexpm", optional: false]}], "hexpm"}, "certifi": {:hex, :certifi, "2.5.1", "867ce347f7c7d78563450a18a6a28a8090331e77fa02380b4a21962a65d36ee5", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm"}, @@ -72,6 +73,7 @@ "mock": {:hex, :mock, "0.3.2", "e98e998fd76c191c7e1a9557c8617912c53df3d4a6132f561eb762b699ef59fa", [:mix], [{:meck, "~> 0.8.8", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm"}, "mox": {:hex, :mox, "0.4.0", "7f120840f7d626184a3d65de36189ca6f37d432e5d63acd80045198e4c5f7e6e", [:mix], [], "hexpm"}, "msgpax": {:hex, :msgpax, "2.2.2", "559a07806bbe5fdd31e4597455be030bd96356f7a621ca9eed832747c83bfb67", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm"}, + "nimble_csv": {:hex, :nimble_csv, "0.6.0", "a3673f26d41f986774fe6060e309615343d3cb83a6d435754d8b1fdbd5764879", [:mix], [], "hexpm"}, "nimble_parsec": {:hex, :nimble_parsec, "0.5.0", "90e2eca3d0266e5c53f8fbe0079694740b9c91b6747f2b7e3c5d21966bba8300", [:mix], [], "hexpm"}, "optimal": {:hex, :optimal, "0.3.6", "46bbf52fbbbd238cda81e02560caa84f93a53c75620f1fe19e81e4ae7b07d1dd", [:mix], [], "hexpm"}, "parallel_stream": {:hex, :parallel_stream, "1.0.6", "b967be2b23f0f6787fab7ed681b4c45a215a81481fb62b01a5b750fa8f30f76c", [:mix], []}, From b2b0be905e63bcbcb3acfb5d8ec082a780b549e0 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Wed, 5 Jun 2019 15:22:38 +0300 Subject: [PATCH 009/133] fetch all transactions for csv export --- .../chain/address_transaction_csv_exporter.ex | 24 +++++++++++++- .../address_transaction_csv_exporter_test.exs | 33 +++++++++++++++++++ apps/indexer/mix.exs | 2 +- 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index 66d47bba5b..01dccaf3e2 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -1,6 +1,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do alias Explorer.Chain alias Explorer.Chain.{Address, Transaction} + alias Explorer.PagingOptions @necessity_by_association [ necessity_by_association: %{ @@ -15,13 +16,34 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do } ] + @page_size 150 + + @paging_options %PagingOptions{page_size: @page_size + 1} + def export(address) do address - |> Chain.address_to_transactions_with_rewards(@necessity_by_association) + |> fetch_all_transactions(@paging_options) |> to_csv_format(address) |> dump_data_to_csv() end + defp fetch_all_transactions(address, paging_options, acc \\ []) do + options = Keyword.merge(@necessity_by_association, paging_options: paging_options) + + transactions = Chain.address_to_transactions_with_rewards(address, options) + + new_acc = transactions ++ acc + + case Enum.split(transactions, @page_size) do + {_, _transactions, [%Transaction{block_number: block_number, index: index}]} -> + new_paging_options = %{@paging_options | key: {block_number, index}} + fetch_all_transactions(address, new_paging_options, new_acc) + + {_, []} -> + new_acc + end + end + defp dump_data_to_csv(transactions) do {:ok, path} = Briefly.create() diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs index 40987e1afc..ddff5e6dea 100644 --- a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -39,5 +39,38 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do assert result.hash == to_string(transaction.hash) assert result.type == "OUT" end + + test "fetches all transactions" do + address = insert(:address) + + 1..200 + |> Enum.map(fn _ -> + :transaction + |> insert(from_address: address) + |> with_block() + end) + |> Enum.count() + + result = + address + |> AddressTransactionCsvExporter.export() + |> File.stream!() + |> NimbleCSV.RFC4180.parse_stream() + |> Stream.map(fn [hash, block_number, timestamp, from_address, to_address, created_address, type, value] -> + %{ + hash: hash, + block_number: block_number, + timestamp: timestamp, + from_address: from_address, + to_address: to_address, + created_address: created_address, + type: type, + value: value + } + end) + |> Enum.to_list() + + assert Enum.count(result) == 200 + end end end diff --git a/apps/indexer/mix.exs b/apps/indexer/mix.exs index 9b8bd4d6ed..f70d758912 100644 --- a/apps/indexer/mix.exs +++ b/apps/indexer/mix.exs @@ -49,7 +49,7 @@ defmodule Indexer.MixProject do # JSONRPC access to Parity for `Explorer.Indexer` {:ethereum_jsonrpc, in_umbrella: true}, # RLP encoding - {:ex_rlp, "~> 0.3"}, + {:ex_rlp, "~> 0.5.2"}, # Code coverage {:excoveralls, "~> 0.10.0", only: [:test], github: "KronicDeth/excoveralls", branch: "circle-workflows"}, # Importing to database From ac56c61784950778bcdc7f8fcaac2569767f0da1 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Wed, 5 Jun 2019 15:37:12 +0300 Subject: [PATCH 010/133] fix pattern matching --- .../lib/explorer/chain/address_transaction_csv_exporter.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index 01dccaf3e2..bb0ef9f636 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -35,7 +35,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do new_acc = transactions ++ acc case Enum.split(transactions, @page_size) do - {_, _transactions, [%Transaction{block_number: block_number, index: index}]} -> + {_transactions, [%Transaction{block_number: block_number, index: index}]} -> new_paging_options = %{@paging_options | key: {block_number, index}} fetch_all_transactions(address, new_paging_options, new_acc) From 78a501066231a25696f6a0c4920b6eda4db8193c Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Wed, 5 Jun 2019 15:44:03 +0300 Subject: [PATCH 011/133] fix credo --- .../chain/address_transaction_csv_exporter.ex | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index bb0ef9f636..54bf38df6f 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -1,7 +1,11 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do - alias Explorer.Chain + @moduledoc """ + Exports transactions to a csv file. + """ + + alias Explorer.{Chain, PagingOptions} alias Explorer.Chain.{Address, Transaction} - alias Explorer.PagingOptions + alias NimbleCSV.RFC4180 @necessity_by_association [ necessity_by_association: %{ @@ -20,6 +24,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do @paging_options %PagingOptions{page_size: @page_size + 1} + @spec export(Address.t()) :: String.t() def export(address) do address |> fetch_all_transactions(@paging_options) @@ -47,10 +52,11 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do defp dump_data_to_csv(transactions) do {:ok, path} = Briefly.create() - transactions - |> NimbleCSV.RFC4180.dump_to_stream() - |> Stream.into(File.stream!(path)) - |> Enum.to_list() + _ = + transactions + |> RFC4180.dump_to_stream() + |> Stream.into(File.stream!(path)) + |> Enum.to_list() path end From 4ea5e97306562523411b13049cbbcd221b843762 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Wed, 5 Jun 2019 16:23:01 +0300 Subject: [PATCH 012/133] add additional fields to csv file --- .../chain/address_transaction_csv_exporter.ex | 8 +++-- .../address_transaction_csv_exporter_test.exs | 32 +++++++++++-------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index 54bf38df6f..e115827865 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -71,7 +71,9 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do "ToAddress", "ContractAddress", "Type", - "Value" + "Value", + "Status", + "ErrCode" ] transaction_lists = @@ -85,7 +87,9 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do to_string(transaction.to_address), to_string(transaction.created_contract_address), type(transaction, address), - 1 + 1, + transaction.status, + transaction.error ] end) diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs index ddff5e6dea..10a6f60833 100644 --- a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -18,7 +18,18 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do |> AddressTransactionCsvExporter.export() |> File.stream!() |> NimbleCSV.RFC4180.parse_stream() - |> Stream.map(fn [hash, block_number, timestamp, from_address, to_address, created_address, type, value] -> + |> Stream.map(fn [ + hash, + block_number, + timestamp, + from_address, + to_address, + created_address, + type, + value, + status, + error + ] -> %{ hash: hash, block_number: block_number, @@ -27,7 +38,9 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do to_address: to_address, created_address: created_address, type: type, - value: value + value: value, + status: status, + error: error } end) |> Enum.to_list() @@ -38,6 +51,9 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do assert result.to_address == to_string(transaction.to_address) assert result.hash == to_string(transaction.hash) assert result.type == "OUT" + assert result.value == "1" + assert result.status == to_string(transaction.status) + assert result.error == to_string(transaction.error) end test "fetches all transactions" do @@ -56,18 +72,6 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do |> AddressTransactionCsvExporter.export() |> File.stream!() |> NimbleCSV.RFC4180.parse_stream() - |> Stream.map(fn [hash, block_number, timestamp, from_address, to_address, created_address, type, value] -> - %{ - hash: hash, - block_number: block_number, - timestamp: timestamp, - from_address: from_address, - to_address: to_address, - created_address: created_address, - type: type, - value: value - } - end) |> Enum.to_list() assert Enum.count(result) == 200 From 228a77db4870932c7a9e293f173651e2386fe8c4 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Wed, 5 Jun 2019 16:29:32 +0300 Subject: [PATCH 013/133] add real transaction value --- .../lib/explorer/chain/address_transaction_csv_exporter.ex | 4 ++-- .../explorer/chain/address_transaction_csv_exporter_test.exs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index e115827865..1c6c7c82d9 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -4,7 +4,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do """ alias Explorer.{Chain, PagingOptions} - alias Explorer.Chain.{Address, Transaction} + alias Explorer.Chain.{Address, Transaction, Wei} alias NimbleCSV.RFC4180 @necessity_by_association [ @@ -87,7 +87,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do to_string(transaction.to_address), to_string(transaction.created_contract_address), type(transaction, address), - 1, + Wei.to(transaction.value, :wei), transaction.status, transaction.error ] diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs index 10a6f60833..0f84ee3d8e 100644 --- a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -1,7 +1,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do use Explorer.DataCase - alias Explorer.Chain.AddressTransactionCsvExporter + alias Explorer.Chain.{AddressTransactionCsvExporter, Wei} describe "export/1" do test "exports address transactions to csv" do @@ -51,7 +51,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do assert result.to_address == to_string(transaction.to_address) assert result.hash == to_string(transaction.hash) assert result.type == "OUT" - assert result.value == "1" + assert result.value == transaction.value |> Wei.to(:wei) |> to_string() assert result.status == to_string(transaction.status) assert result.error == to_string(transaction.error) end From ba8ae89db69fd14c4b259603a413d0cb3330e43f Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 6 Jun 2019 10:40:00 +0300 Subject: [PATCH 014/133] add fee --- .../chain/address_transaction_csv_exporter.ex | 11 +++++++++++ .../chain/address_transaction_csv_exporter_test.exs | 3 +++ 2 files changed, 14 insertions(+) diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index 1c6c7c82d9..0486e9a6c7 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -72,6 +72,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do "ContractAddress", "Type", "Value", + "Fee", "Status", "ErrCode" ] @@ -88,6 +89,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do to_string(transaction.created_contract_address), type(transaction, address), Wei.to(transaction.value, :wei), + fee(transaction), transaction.status, transaction.error ] @@ -101,4 +103,13 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do defp type(%Transaction{to_address_hash: to_address}, %Address{hash: to_address}), do: "IN" defp type(_, _), do: "" + + defp fee(transaction) do + transaction + |> Chain.fee(:wei) + |> case do + {:actual, value} -> value + {:maximum, value} -> "Max of #{value}" + end + end end diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs index 0f84ee3d8e..b87737e1d2 100644 --- a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -27,6 +27,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do created_address, type, value, + fee, status, error ] -> @@ -39,6 +40,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do created_address: created_address, type: type, value: value, + fee: fee, status: status, error: error } @@ -52,6 +54,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do assert result.hash == to_string(transaction.hash) assert result.type == "OUT" assert result.value == transaction.value |> Wei.to(:wei) |> to_string() + assert result.fee assert result.status == to_string(transaction.status) assert result.error == to_string(transaction.error) end From e96d53a752244a6d93816698faf3cb1c58d5db10 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 6 Jun 2019 10:57:38 +0300 Subject: [PATCH 015/133] add current token price --- .../chain/address_transaction_csv_exporter.ex | 15 ++++++++++----- .../address_transaction_csv_exporter_test.exs | 7 +++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index 0486e9a6c7..6590f8e3b6 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -3,8 +3,9 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do Exports transactions to a csv file. """ - alias Explorer.{Chain, PagingOptions} + alias Explorer.{Chain, Market, PagingOptions} alias Explorer.Chain.{Address, Transaction, Wei} + alias Explorer.ExchangeRates.Token alias NimbleCSV.RFC4180 @necessity_by_association [ @@ -26,9 +27,11 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do @spec export(Address.t()) :: String.t() def export(address) do + exchange_rate = Market.get_exchange_rate(Explorer.coin()) || Token.null() + address |> fetch_all_transactions(@paging_options) - |> to_csv_format(address) + |> to_csv_format(address, exchange_rate) |> dump_data_to_csv() end @@ -61,7 +64,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do path end - defp to_csv_format(transactions, address) do + defp to_csv_format(transactions, address, exchange_rate) do # , "ETHCurrentPrice", "ETHPriceAtTxDate", "TxFee", "Status", "ErrCode"] row_names = [ "TxHash", @@ -74,7 +77,8 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do "Value", "Fee", "Status", - "ErrCode" + "ErrCode", + "CurrentPrice" ] transaction_lists = @@ -91,7 +95,8 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do Wei.to(transaction.value, :wei), fee(transaction), transaction.status, - transaction.error + transaction.error, + exchange_rate.usd_value ] end) diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs index b87737e1d2..a450cc7f87 100644 --- a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -29,7 +29,8 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do value, fee, status, - error + error, + cur_price ] -> %{ hash: hash, @@ -42,7 +43,8 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do value: value, fee: fee, status: status, - error: error + error: error, + current_price: cur_price } end) |> Enum.to_list() @@ -57,6 +59,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do assert result.fee assert result.status == to_string(transaction.status) assert result.error == to_string(transaction.error) + assert result.current_price end test "fetches all transactions" do From 4bfc37ba2c4d76e6758f1e0587e541d8ce99f10c Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 6 Jun 2019 11:41:49 +0300 Subject: [PATCH 016/133] add opening and closing prices --- .../chain/address_transaction_csv_exporter.ex | 33 +++++++++++++++++-- .../address_transaction_csv_exporter_test.exs | 11 +++++-- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index 6590f8e3b6..4bdd965579 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -3,7 +3,13 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do Exports transactions to a csv file. """ - alias Explorer.{Chain, Market, PagingOptions} + import Ecto.Query, + only: [ + from: 2 + ] + + alias Explorer.{Chain, Market, PagingOptions, Repo} + alias Explorer.Market.MarketHistory alias Explorer.Chain.{Address, Transaction, Wei} alias Explorer.ExchangeRates.Token alias NimbleCSV.RFC4180 @@ -78,12 +84,16 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do "Fee", "Status", "ErrCode", - "CurrentPrice" + "CurrentPrice", + "TxDateOpeningPrice", + "TxDateClosingPrice" ] transaction_lists = transactions |> Stream.map(fn transaction -> + {opening_price, closing_price} = price_at_date(transaction.block.timestamp) + [ to_string(transaction.hash), transaction.block_number, @@ -96,7 +106,9 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do fee(transaction), transaction.status, transaction.error, - exchange_rate.usd_value + exchange_rate.usd_value, + opening_price, + closing_price ] end) @@ -117,4 +129,19 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do {:maximum, value} -> "Max of #{value}" end end + + defp price_at_date(datetime) do + date = DateTime.to_date(datetime) + + query = + from( + mh in MarketHistory, + where: mh.date == ^date + ) + + case Repo.one(query) do + nil -> {nil, nil} + price -> {price.opening_price, price.closing_price} + end + end end diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs index a450cc7f87..1150434a40 100644 --- a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -30,7 +30,9 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do fee, status, error, - cur_price + cur_price, + op_price, + cl_price ] -> %{ hash: hash, @@ -44,12 +46,15 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do fee: fee, status: status, error: error, - current_price: cur_price + current_price: cur_price, + opening_price: op_price, + closing_price: cl_price } end) |> Enum.to_list() assert result.block_number == to_string(transaction.block_number) + assert result.timestamp assert result.created_address == to_string(transaction.created_contract_address_hash) assert result.from_address == to_string(transaction.from_address) assert result.to_address == to_string(transaction.to_address) @@ -60,6 +65,8 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do assert result.status == to_string(transaction.status) assert result.error == to_string(transaction.error) assert result.current_price + assert result.opening_price + assert result.closing_price end test "fetches all transactions" do From f984c9129edebf266e0912efad3e7af992448f37 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 6 Jun 2019 14:03:04 +0300 Subject: [PATCH 017/133] create endpoing with csv --- .../address_transaction_controller.ex | 21 ++++ .../lib/block_scout_web/router.ex | 2 + .../address_transaction_controller_test.exs | 18 ++++ .../chain/address_transaction_csv_exporter.ex | 100 ++++++++---------- .../address_transaction_csv_exporter_test.exs | 52 +++++---- 5 files changed, 118 insertions(+), 75 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex index da22b8c042..fe3681cf3e 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex @@ -10,6 +10,7 @@ defmodule BlockScoutWeb.AddressTransactionController do alias BlockScoutWeb.TransactionView alias Explorer.{Chain, Market} + alias Explorer.Chain.AddressTransactionCsvExporter alias Explorer.ExchangeRates.Token alias Indexer.Fetcher.CoinBalanceOnDemand alias Phoenix.View @@ -106,4 +107,24 @@ defmodule BlockScoutWeb.AddressTransactionController do not_found(conn) end end + + def transactions_csv(conn, %{"address_id" => address_hash_string}) do + with {:ok, address_hash} <- Chain.string_to_address_hash(address_hash_string), + {:ok, address} <- Chain.hash_to_address(address_hash) do + address + |> AddressTransactionCsvExporter.export() + |> Enum.into( + conn + |> put_resp_content_type("application/csv") + |> put_resp_header("content-disposition", "attachment; filename=transactions.csv") + |> send_chunked(200) + ) + else + :error -> + unprocessable_entity(conn) + + {:error, :not_found} -> + not_found(conn) + end + end end diff --git a/apps/block_scout_web/lib/block_scout_web/router.ex b/apps/block_scout_web/lib/block_scout_web/router.ex index aa19725811..8d9d057c3f 100644 --- a/apps/block_scout_web/lib/block_scout_web/router.ex +++ b/apps/block_scout_web/lib/block_scout_web/router.ex @@ -240,6 +240,8 @@ defmodule BlockScoutWeb.Router do get("/search_logs", AddressLogsController, :search_logs) + get("/transactions_csv", AddressTransactionController, :transactions_csv) + get("/token_autocomplete", ChainController, :token_autocomplete) get("/chain_blocks", ChainController, :chain_blocks, as: :chain_blocks) diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs index 028387501a..b5b6e7280b 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs @@ -132,4 +132,22 @@ defmodule BlockScoutWeb.AddressTransactionControllerTest do end) end end + + describe "GET transactions_csv/2" do + test "download csv file with transactions", %{conn: conn} do + address = insert(:address) + + :transaction + |> insert(from_address: address) + |> with_block() + + :transaction + |> insert(from_address: address) + |> with_block() + + conn = get(conn, "/transactions_csv", %{"address_id" => to_string(address.hash)}) + + assert conn.resp_body |> String.split("\n") |> Enum.count() == 3 + end + end end diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index 4bdd965579..09d0b83dbc 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -31,14 +31,14 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do @paging_options %PagingOptions{page_size: @page_size + 1} - @spec export(Address.t()) :: String.t() + @spec export(Address.t()) :: Enumerable.t() def export(address) do exchange_rate = Market.get_exchange_rate(Explorer.coin()) || Token.null() address |> fetch_all_transactions(@paging_options) |> to_csv_format(address, exchange_rate) - |> dump_data_to_csv() + |> dump_to_stream() end defp fetch_all_transactions(address, paging_options, acc \\ []) do @@ -58,61 +58,53 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do end end - defp dump_data_to_csv(transactions) do - {:ok, path} = Briefly.create() - - _ = - transactions - |> RFC4180.dump_to_stream() - |> Stream.into(File.stream!(path)) - |> Enum.to_list() - - path + defp dump_to_stream(transactions) do + transactions + |> RFC4180.dump_to_stream() end defp to_csv_format(transactions, address, exchange_rate) do - # , "ETHCurrentPrice", "ETHPriceAtTxDate", "TxFee", "Status", "ErrCode"] - row_names = [ - "TxHash", - "BlockNumber", - "UnixTimestamp", - "FromAddress", - "ToAddress", - "ContractAddress", - "Type", - "Value", - "Fee", - "Status", - "ErrCode", - "CurrentPrice", - "TxDateOpeningPrice", - "TxDateClosingPrice" - ] - - transaction_lists = - transactions - |> Stream.map(fn transaction -> - {opening_price, closing_price} = price_at_date(transaction.block.timestamp) - - [ - to_string(transaction.hash), - transaction.block_number, - transaction.block.timestamp, - to_string(transaction.from_address), - to_string(transaction.to_address), - to_string(transaction.created_contract_address), - type(transaction, address), - Wei.to(transaction.value, :wei), - fee(transaction), - transaction.status, - transaction.error, - exchange_rate.usd_value, - opening_price, - closing_price - ] - end) - - Stream.concat([row_names], transaction_lists) + # row_names = [ + # "TxHash", + # "BlockNumber", + # "UnixTimestamp", + # "FromAddress", + # "ToAddress", + # "ContractAddress", + # "Type", + # "Value", + # "Fee", + # "Status", + # "ErrCode", + # "CurrentPrice", + # "TxDateOpeningPrice", + # "TxDateClosingPrice" + # ] + + # transaction_lists = + transactions + |> Stream.map(fn transaction -> + {opening_price, closing_price} = price_at_date(transaction.block.timestamp) + + [ + to_string(transaction.hash), + transaction.block_number, + transaction.block.timestamp, + to_string(transaction.from_address), + to_string(transaction.to_address), + to_string(transaction.created_contract_address), + type(transaction, address), + Wei.to(transaction.value, :wei), + fee(transaction), + transaction.status, + transaction.error, + exchange_rate.usd_value, + opening_price, + closing_price + ] + end) + + # Stream.concat([row_names], transaction_lists) end defp type(%Transaction{from_address_hash: from_address}, %Address{hash: from_address}), do: "OUT" diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs index 1150434a40..a198b59625 100644 --- a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -16,24 +16,37 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do [result] = address |> AddressTransactionCsvExporter.export() - |> File.stream!() - |> NimbleCSV.RFC4180.parse_stream() - |> Stream.map(fn [ - hash, - block_number, - timestamp, - from_address, - to_address, - created_address, - type, - value, - fee, - status, - error, - cur_price, - op_price, - cl_price - ] -> + |> Enum.to_list() + |> Enum.map(fn [ + hash, + _, + block_number, + _, + timestamp, + _, + from_address, + _, + to_address, + _, + created_address, + _, + type, + _, + value, + _, + fee, + _, + status, + _, + error, + _, + cur_price, + _, + op_price, + _, + cl_price, + _ + ] -> %{ hash: hash, block_number: block_number, @@ -51,7 +64,6 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do closing_price: cl_price } end) - |> Enum.to_list() assert result.block_number == to_string(transaction.block_number) assert result.timestamp @@ -83,8 +95,6 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do result = address |> AddressTransactionCsvExporter.export() - |> File.stream!() - |> NimbleCSV.RFC4180.parse_stream() |> Enum.to_list() assert Enum.count(result) == 200 From 36218f0a6651defb35db01fd2ab4a35e8c59f393 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 6 Jun 2019 14:20:52 +0300 Subject: [PATCH 018/133] add button in UI to download csv --- .../block_scout_web/templates/address_transaction/index.html.eex | 1 + apps/explorer/mix.exs | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex index 11b4de110c..87ab7eba56 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex @@ -6,6 +6,7 @@
<%= render BlockScoutWeb.AddressView, "_tabs.html", assigns %>
+ to_string(@address.hash)}) %>><%= gettext("Download all transactions as csv") %>
<%= gettext "Connection Lost, click to load newer transactions" %> diff --git a/apps/explorer/mix.exs b/apps/explorer/mix.exs index 2e0bd82138..cddef9e45d 100644 --- a/apps/explorer/mix.exs +++ b/apps/explorer/mix.exs @@ -65,7 +65,6 @@ defmodule Explorer.Mixfile do {:benchee, "~> 0.13.1", only: :test}, # CSV output for benchee {:benchee_csv, "~> 0.8.0", only: :test}, - {:briefly, "~> 0.4", github: "CargoSense/briefly"}, {:bypass, "~> 1.0", only: :test}, {:comeonin, "~> 4.0"}, {:credo, "1.0.0", only: :test, runtime: false}, From d210249a748e90829136758435f0ba1758080a5a Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 6 Jun 2019 14:27:59 +0300 Subject: [PATCH 019/133] add column names --- .../address_transaction_controller_test.exs | 2 +- .../chain/address_transaction_csv_exporter.ex | 82 +++++++++---------- .../address_transaction_csv_exporter_test.exs | 2 + 3 files changed, 44 insertions(+), 42 deletions(-) diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs index b5b6e7280b..94ac9a982a 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs @@ -147,7 +147,7 @@ defmodule BlockScoutWeb.AddressTransactionControllerTest do conn = get(conn, "/transactions_csv", %{"address_id" => to_string(address.hash)}) - assert conn.resp_body |> String.split("\n") |> Enum.count() == 3 + assert conn.resp_body |> String.split("\n") |> Enum.count() == 4 end end end diff --git a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex index 09d0b83dbc..32028e02d3 100644 --- a/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_transaction_csv_exporter.ex @@ -64,47 +64,47 @@ defmodule Explorer.Chain.AddressTransactionCsvExporter do end defp to_csv_format(transactions, address, exchange_rate) do - # row_names = [ - # "TxHash", - # "BlockNumber", - # "UnixTimestamp", - # "FromAddress", - # "ToAddress", - # "ContractAddress", - # "Type", - # "Value", - # "Fee", - # "Status", - # "ErrCode", - # "CurrentPrice", - # "TxDateOpeningPrice", - # "TxDateClosingPrice" - # ] - - # transaction_lists = - transactions - |> Stream.map(fn transaction -> - {opening_price, closing_price} = price_at_date(transaction.block.timestamp) - - [ - to_string(transaction.hash), - transaction.block_number, - transaction.block.timestamp, - to_string(transaction.from_address), - to_string(transaction.to_address), - to_string(transaction.created_contract_address), - type(transaction, address), - Wei.to(transaction.value, :wei), - fee(transaction), - transaction.status, - transaction.error, - exchange_rate.usd_value, - opening_price, - closing_price - ] - end) - - # Stream.concat([row_names], transaction_lists) + row_names = [ + "TxHash", + "BlockNumber", + "UnixTimestamp", + "FromAddress", + "ToAddress", + "ContractAddress", + "Type", + "Value", + "Fee", + "Status", + "ErrCode", + "CurrentPrice", + "TxDateOpeningPrice", + "TxDateClosingPrice" + ] + + transaction_lists = + transactions + |> Stream.map(fn transaction -> + {opening_price, closing_price} = price_at_date(transaction.block.timestamp) + + [ + to_string(transaction.hash), + transaction.block_number, + transaction.block.timestamp, + to_string(transaction.from_address), + to_string(transaction.to_address), + to_string(transaction.created_contract_address), + type(transaction, address), + Wei.to(transaction.value, :wei), + fee(transaction), + transaction.status, + transaction.error, + exchange_rate.usd_value, + opening_price, + closing_price + ] + end) + + Stream.concat([row_names], transaction_lists) end defp type(%Transaction{from_address_hash: from_address}, %Address{hash: from_address}), do: "OUT" diff --git a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs index a198b59625..1f722abf87 100644 --- a/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_transaction_csv_exporter_test.exs @@ -17,6 +17,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do address |> AddressTransactionCsvExporter.export() |> Enum.to_list() + |> Enum.drop(1) |> Enum.map(fn [ hash, _, @@ -96,6 +97,7 @@ defmodule Explorer.Chain.AddressTransactionCsvExporterTest do address |> AddressTransactionCsvExporter.export() |> Enum.to_list() + |> Enum.drop(1) assert Enum.count(result) == 200 end From 5bd771c3d36e4d5d66ad5b020f48568b000194d4 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 6 Jun 2019 14:32:51 +0300 Subject: [PATCH 020/133] fix gettext --- apps/block_scout_web/priv/gettext/default.pot | 19 +++++++---- .../priv/gettext/en/LC_MESSAGES/default.po | 33 +++++++++++-------- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index c6d41cb84a..90c5b8751b 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -111,7 +111,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:24 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -244,7 +244,7 @@ msgid "Connection Lost, click to load newer internal transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:11 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:12 #: lib/block_scout_web/templates/pending_transaction/index.html.eex:15 #: lib/block_scout_web/templates/transaction/index.html.eex:15 msgid "Connection Lost, click to load newer transactions" @@ -404,7 +404,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:44 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:40 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:41 #: lib/block_scout_web/views/address_internal_transaction_view.ex:7 #: lib/block_scout_web/views/address_transaction_view.ex:7 msgid "From" @@ -742,7 +742,7 @@ msgid "There are no tokens." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:62 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:63 msgid "There are no transactions for this address." msgstr "" @@ -763,7 +763,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:33 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:29 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:30 #: lib/block_scout_web/views/address_internal_transaction_view.ex:6 #: lib/block_scout_web/views/address_transaction_view.ex:6 msgid "To" @@ -867,7 +867,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:3 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:15 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:16 #: lib/block_scout_web/templates/block_transaction/index.html.eex:10 #: lib/block_scout_web/templates/block_transaction/index.html.eex:18 #: lib/block_scout_web/templates/chain/show.html.eex:108 @@ -1211,7 +1211,7 @@ msgstr "" #: lib/block_scout_web/templates/address_logs/index.html.eex:21 #: lib/block_scout_web/templates/address_token/index.html.eex:13 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:20 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:57 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:58 #: lib/block_scout_web/templates/address_validation/index.html.eex:22 #: lib/block_scout_web/templates/block_transaction/index.html.eex:23 #: lib/block_scout_web/templates/chain/show.html.eex:91 @@ -1694,3 +1694,8 @@ msgstr "" #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:3 msgid "New Smart Contract Verification" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_transaction/index.html.eex:9 +msgid "Download all transactions as csv" +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index 59a612407d..6ffe74c683 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -111,7 +111,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:24 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -207,8 +207,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:37 -#: lib/block_scout_web/templates/address/overview.html.eex:142 -#: lib/block_scout_web/templates/address/overview.html.eex:150 +#: lib/block_scout_web/templates/address/overview.html.eex:144 +#: lib/block_scout_web/templates/address/overview.html.eex:152 #: lib/block_scout_web/templates/tokens/overview/_details.html.eex:106 #: lib/block_scout_web/templates/tokens/overview/_details.html.eex:114 msgid "Close" @@ -244,7 +244,7 @@ msgid "Connection Lost, click to load newer internal transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:11 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:12 #: lib/block_scout_web/templates/pending_transaction/index.html.eex:15 #: lib/block_scout_web/templates/transaction/index.html.eex:15 msgid "Connection Lost, click to load newer transactions" @@ -404,7 +404,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:44 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:40 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:41 #: lib/block_scout_web/views/address_internal_transaction_view.ex:7 #: lib/block_scout_web/views/address_transaction_view.ex:7 msgid "From" @@ -624,7 +624,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/overview.html.eex:33 -#: lib/block_scout_web/templates/address/overview.html.eex:141 +#: lib/block_scout_web/templates/address/overview.html.eex:143 #: lib/block_scout_web/templates/tokens/overview/_details.html.eex:35 #: lib/block_scout_web/templates/tokens/overview/_details.html.eex:105 msgid "QR Code" @@ -742,7 +742,7 @@ msgid "There are no tokens." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:62 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:63 msgid "There are no transactions for this address." msgstr "" @@ -763,7 +763,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:33 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:29 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:30 #: lib/block_scout_web/views/address_internal_transaction_view.ex:6 #: lib/block_scout_web/views/address_transaction_view.ex:6 msgid "To" @@ -867,7 +867,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:3 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:15 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:16 #: lib/block_scout_web/templates/block_transaction/index.html.eex:10 #: lib/block_scout_web/templates/block_transaction/index.html.eex:18 #: lib/block_scout_web/templates/chain/show.html.eex:108 @@ -1211,7 +1211,7 @@ msgstr "" #: lib/block_scout_web/templates/address_logs/index.html.eex:21 #: lib/block_scout_web/templates/address_token/index.html.eex:13 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:20 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:57 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:58 #: lib/block_scout_web/templates/address_validation/index.html.eex:22 #: lib/block_scout_web/templates/block_transaction/index.html.eex:23 #: lib/block_scout_web/templates/chain/show.html.eex:91 @@ -1667,12 +1667,12 @@ msgstr "" msgid "ABI-encoded Constructor Arguments (if required by the contract)" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:87 msgid "Enter the Solidity Contract Code" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:127 #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:149 #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:171 @@ -1681,7 +1681,7 @@ msgstr "" msgid "Library Address" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:117 #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:139 #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:161 @@ -1690,7 +1690,12 @@ msgstr "" msgid "Library Name" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_contract_verification/new.html.eex:3 msgid "New Smart Contract Verification" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_transaction/index.html.eex:9 +msgid "Download all transactions as csv" +msgstr "" From 1b009499ed68ab170cb5535104edc98c08b86eb1 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 11 Jun 2019 14:28:32 +0300 Subject: [PATCH 021/133] export token transfers to csv file --- .../address_token_transfer_csv_exporter.ex | 119 ++++++++++++++++++ apps/explorer/mix.exs | 1 + ...dress_token_transfer_csv_exporter_test.exs | 72 +++++++++++ mix.lock | 1 + 4 files changed, 193 insertions(+) create mode 100644 apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex create mode 100644 apps/explorer/test/explorer/chain/address_token_transfer_csv_exporter_test.exs diff --git a/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex new file mode 100644 index 0000000000..2292a23c22 --- /dev/null +++ b/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex @@ -0,0 +1,119 @@ +defmodule Explorer.Chain.AddressTokenTransferCsvExporter do + @moduledoc """ + Exports token transfers to a csv file. + """ + + alias Explorer.{Chain, PagingOptions} + alias Explorer.Chain.{Address, Transaction, TokenTransfer} + alias NimbleCSV.RFC4180 + + @necessity_by_association [ + necessity_by_association: %{ + [created_contract_address: :names] => :optional, + [from_address: :names] => :optional, + [to_address: :names] => :optional, + [token_transfers: :token] => :optional, + [token_transfers: :to_address] => :optional, + [token_transfers: :from_address] => :optional, + [token_transfers: :token_contract_address] => :optional, + :block => :required + } + ] + + @page_size 150 + @paging_options %PagingOptions{page_size: @page_size + 1} + + def export(address) do + address + |> fetch_all_transactions(@paging_options) + |> to_token_transfers() + |> to_csv_format(address) + |> dump_to_stream() + end + + defp fetch_all_transactions(address, paging_options, acc \\ []) do + options = Keyword.merge(@necessity_by_association, paging_options: paging_options) + + transactions = + address + |> Chain.address_to_transactions_with_rewards(options) + |> Enum.filter(fn transaction -> Enum.count(transaction.token_transfers) > 0 end) + + new_acc = transactions ++ acc + + case Enum.split(transactions, @page_size) do + {_transactions, [%Transaction{block_number: block_number, index: index}]} -> + new_paging_options = %{@paging_options | key: {block_number, index}} + fetch_all_transactions(address, new_paging_options, new_acc) + + {_, []} -> + new_acc + end + end + + defp to_token_transfers(transactions) do + transactions + |> Enum.flat_map(fn transaction -> + transaction.token_transfers + |> Enum.map(fn transfer -> %{transfer | transaction: transaction} end) + end) + end + + defp dump_to_stream(transactions) do + transactions + |> RFC4180.dump_to_stream() + end + + defp to_csv_format(token_transfers, address) do + row_names = [ + "TxHash", + "BlockNumber", + "UnixTimestamp", + "FromAddress", + "ToAddress", + "TokenContractAddress", + "Type", + "TokenSymbol", + "TokensTransferred", + "TransactionFee", + "Status", + "ErrCode" + ] + + token_transfer_lists = + token_transfers + |> Stream.map(fn token_transfer -> + [ + to_string(token_transfer.transaction_hash), + token_transfer.transaction.block_number, + token_transfer.transaction.block.timestamp, + to_string(token_transfer.from_address), + to_string(token_transfer.to_address), + to_string(token_transfer.token_contract_address), + type(token_transfer, address), + token_transfer.token.symbol, + token_transfer.amount, + fee(token_transfer.transaction), + token_transfer.transaction.status, + token_transfer.transaction.error + ] + end) + + Stream.concat([row_names], token_transfer_lists) + end + + defp type(%TokenTransfer{from_address_hash: from_address}, %Address{hash: from_address}), do: "OUT" + + defp type(%TokenTransfer{to_address_hash: to_address}, %Address{hash: to_address}), do: "IN" + + defp type(_, _), do: "" + + defp fee(transaction) do + transaction + |> Chain.fee(:wei) + |> case do + {:actual, value} -> value + {:maximum, value} -> "Max of #{value}" + end + end +end diff --git a/apps/explorer/mix.exs b/apps/explorer/mix.exs index 09257b9aee..d73e0a9920 100644 --- a/apps/explorer/mix.exs +++ b/apps/explorer/mix.exs @@ -92,6 +92,7 @@ defmodule Explorer.Mixfile do {:mock, "~> 0.3.0", only: [:test], runtime: false}, {:mox, "~> 0.4", only: [:test]}, {:poison, "~> 3.1"}, + {:nimble_csv, "~> 0.6.0"}, {:postgrex, ">= 0.0.0"}, # For compatibility with `prometheus_process_collector`, which hasn't been updated yet {:prometheus, "~> 4.0", override: true}, diff --git a/apps/explorer/test/explorer/chain/address_token_transfer_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_token_transfer_csv_exporter_test.exs new file mode 100644 index 0000000000..9989290264 --- /dev/null +++ b/apps/explorer/test/explorer/chain/address_token_transfer_csv_exporter_test.exs @@ -0,0 +1,72 @@ +defmodule Explorer.Chain.AddressTokenTransferCsvExporterTest do + use Explorer.DataCase + + alias Explorer.Chain.AddressTokenTransferCsvExporter + + describe "export/1" do + test "exports token transfers to csv" do + address = insert(:address) + + transaction = + :transaction + |> insert(from_address: address) + |> with_block() + + token_transfer = insert(:token_transfer, transaction: transaction, from_address: address) + + [result] = + address + |> AddressTokenTransferCsvExporter.export() + |> Enum.to_list() + |> Enum.drop(1) + |> Enum.map(fn [ + tx_hash, + _, + block_number, + _, + timestamp, + _, + from_address, + _, + to_address, + _, + token_contract_address, + _, + type, + _, + token_symbol, + _, + tokens_transferred, + _, + transaction_fee, + _, + status, + _, + err_code, + _ + ] -> + %{ + tx_hash: tx_hash, + block_number: block_number, + timestamp: timestamp, + from_address: from_address, + to_address: to_address, + token_contract_address: token_contract_address, + type: type, + token_symbol: token_symbol, + tokens_transferred: tokens_transferred, + transaction_fee: transaction_fee, + status: status, + err_code: err_code + } + end) + + assert result.block_number == to_string(transaction.block_number) + assert result.tx_hash == to_string(transaction.hash) + assert result.from_address == to_string(token_transfer.from_address_hash) + assert result.to_address == to_string(token_transfer.to_address_hash) + assert result.timestamp == to_string(transaction.block.timestamp) + assert result.type == "OUT" + end + end +end diff --git a/mix.lock b/mix.lock index 5bcd8cacf1..d1011c206b 100644 --- a/mix.lock +++ b/mix.lock @@ -73,6 +73,7 @@ "mock": {:hex, :mock, "0.3.2", "e98e998fd76c191c7e1a9557c8617912c53df3d4a6132f561eb762b699ef59fa", [:mix], [{:meck, "~> 0.8.8", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm"}, "mox": {:hex, :mox, "0.4.0", "7f120840f7d626184a3d65de36189ca6f37d432e5d63acd80045198e4c5f7e6e", [:mix], [], "hexpm"}, "msgpax": {:hex, :msgpax, "2.2.2", "559a07806bbe5fdd31e4597455be030bd96356f7a621ca9eed832747c83bfb67", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm"}, + "nimble_csv": {:hex, :nimble_csv, "0.6.0", "a3673f26d41f986774fe6060e309615343d3cb83a6d435754d8b1fdbd5764879", [:mix], [], "hexpm"}, "nimble_parsec": {:hex, :nimble_parsec, "0.5.0", "90e2eca3d0266e5c53f8fbe0079694740b9c91b6747f2b7e3c5d21966bba8300", [:mix], [], "hexpm"}, "optimal": {:hex, :optimal, "0.3.6", "46bbf52fbbbd238cda81e02560caa84f93a53c75620f1fe19e81e4ae7b07d1dd", [:mix], [], "hexpm"}, "parallel_stream": {:hex, :parallel_stream, "1.0.6", "b967be2b23f0f6787fab7ed681b4c45a215a81481fb62b01a5b750fa8f30f76c", [:mix], []}, From 3b29b6b04908010b3075efbba5d08ceb0cb8009a Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 11 Jun 2019 14:35:46 +0300 Subject: [PATCH 022/133] fix credo --- .../lib/explorer/chain/address_token_transfer_csv_exporter.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex index 2292a23c22..4073245383 100644 --- a/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex @@ -4,7 +4,7 @@ defmodule Explorer.Chain.AddressTokenTransferCsvExporter do """ alias Explorer.{Chain, PagingOptions} - alias Explorer.Chain.{Address, Transaction, TokenTransfer} + alias Explorer.Chain.{Address, TokenTransfer, Transaction} alias NimbleCSV.RFC4180 @necessity_by_association [ From e5f92472543e3dcd72202cddd7426fa94c4ee163 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 11 Jun 2019 14:48:49 +0300 Subject: [PATCH 023/133] fix test --- .../chain/address_token_transfer_csv_exporter_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/explorer/test/explorer/chain/address_token_transfer_csv_exporter_test.exs b/apps/explorer/test/explorer/chain/address_token_transfer_csv_exporter_test.exs index 9989290264..24bd9d7f04 100644 --- a/apps/explorer/test/explorer/chain/address_token_transfer_csv_exporter_test.exs +++ b/apps/explorer/test/explorer/chain/address_token_transfer_csv_exporter_test.exs @@ -63,8 +63,8 @@ defmodule Explorer.Chain.AddressTokenTransferCsvExporterTest do assert result.block_number == to_string(transaction.block_number) assert result.tx_hash == to_string(transaction.hash) - assert result.from_address == to_string(token_transfer.from_address_hash) - assert result.to_address == to_string(token_transfer.to_address_hash) + assert result.from_address == token_transfer.from_address_hash |> to_string() |> String.downcase() + assert result.to_address == token_transfer.to_address_hash |> to_string() |> String.downcase() assert result.timestamp == to_string(transaction.block.timestamp) assert result.type == "OUT" end From 5f77a6a879e143a5fe3369d56cb317fd07229633 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 11 Jun 2019 14:57:51 +0300 Subject: [PATCH 024/133] add token transfers csv endpoint --- .../address_transaction_controller.ex | 21 +++++++++++++++++++ .../lib/block_scout_web/router.ex | 2 ++ .../address_transaction_controller_test.exs | 18 ++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex index da22b8c042..808d470dde 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex @@ -10,6 +10,7 @@ defmodule BlockScoutWeb.AddressTransactionController do alias BlockScoutWeb.TransactionView alias Explorer.{Chain, Market} + alias Explorer.Chain.AddressTokenTransferCsvExporter alias Explorer.ExchangeRates.Token alias Indexer.Fetcher.CoinBalanceOnDemand alias Phoenix.View @@ -106,4 +107,24 @@ defmodule BlockScoutWeb.AddressTransactionController do not_found(conn) end end + + def token_transfers_csv(conn, %{"address_id" => address_hash_string}) do + with {:ok, address_hash} <- Chain.string_to_address_hash(address_hash_string), + {:ok, address} <- Chain.hash_to_address(address_hash) do + address + |> AddressTokenTransferCsvExporter.export() + |> Enum.into( + conn + |> put_resp_content_type("application/csv") + |> put_resp_header("content-disposition", "attachment; filename=transactions.csv") + |> send_chunked(200) + ) + else + :error -> + unprocessable_entity(conn) + + {:error, :not_found} -> + not_found(conn) + end + end end diff --git a/apps/block_scout_web/lib/block_scout_web/router.ex b/apps/block_scout_web/lib/block_scout_web/router.ex index 786c77cdff..b1a4ecc8d2 100644 --- a/apps/block_scout_web/lib/block_scout_web/router.ex +++ b/apps/block_scout_web/lib/block_scout_web/router.ex @@ -244,6 +244,8 @@ defmodule BlockScoutWeb.Router do get("/token_autocomplete", ChainController, :token_autocomplete) + get("/token_transfers_csv", AddressTransactionController, :token_transfers_csv) + get("/chain_blocks", ChainController, :chain_blocks, as: :chain_blocks) get("/api_docs", APIDocsController, :index) diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs index 028387501a..1f94a7b8ea 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs @@ -132,4 +132,22 @@ defmodule BlockScoutWeb.AddressTransactionControllerTest do end) end end + + describe "GET token_transfers_csv/2" do + test "exports token transfers to csv", %{conn: conn} do + address = insert(:address) + + transaction = + :transaction + |> insert(from_address: address) + |> with_block() + + insert(:token_transfer, transaction: transaction, from_address: address) + insert(:token_transfer, transaction: transaction, to_address: address) + + conn = get(conn, "/token_transfers_csv", %{"address_id" => to_string(address.hash)}) + + assert conn.resp_body |> String.split("\n") |> Enum.count() == 4 + end + end end From 2e986c3aff97fa46b7ad93737c965e687d55b01f Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 11 Jun 2019 15:28:20 +0300 Subject: [PATCH 025/133] add download button --- .../controllers/address_transaction_controller.ex | 2 +- .../block_scout_web/templates/address_token/index.html.eex | 1 + .../explorer/chain/address_token_transfer_csv_exporter.ex | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex index 808d470dde..193d03f9c5 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex @@ -116,7 +116,7 @@ defmodule BlockScoutWeb.AddressTransactionController do |> Enum.into( conn |> put_resp_content_type("application/csv") - |> put_resp_header("content-disposition", "attachment; filename=transactions.csv") + |> put_resp_header("content-disposition", "attachment; filename=token_transfers.csv") |> send_chunked(200) ) else diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex index 43457d3bc1..fa9dc12bd7 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex @@ -5,6 +5,7 @@
<%= render BlockScoutWeb.AddressView, "_tabs.html", assigns %>
+ to_string(@address.hash)}) %>><%= gettext("Download all token transfers as csv") %>

<%= gettext "Tokens" %>

<%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "top", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> diff --git a/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex b/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex index 4073245383..96bd56afef 100644 --- a/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex +++ b/apps/explorer/lib/explorer/chain/address_token_transfer_csv_exporter.ex @@ -87,9 +87,9 @@ defmodule Explorer.Chain.AddressTokenTransferCsvExporter do to_string(token_transfer.transaction_hash), token_transfer.transaction.block_number, token_transfer.transaction.block.timestamp, - to_string(token_transfer.from_address), - to_string(token_transfer.to_address), - to_string(token_transfer.token_contract_address), + token_transfer.from_address |> to_string() |> String.downcase(), + token_transfer.to_address |> to_string() |> String.downcase(), + token_transfer.token_contract_address |> to_string() |> String.downcase(), type(token_transfer, address), token_transfer.token.symbol, token_transfer.amount, From 06906b2f20cc1fbab81990260bfb63a275c99560 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 11 Jun 2019 15:34:49 +0300 Subject: [PATCH 026/133] fix gettext --- apps/block_scout_web/priv/gettext/default.pot | 11 ++++++++--- .../priv/gettext/en/LC_MESSAGES/default.po | 13 +++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index e9763e2287..f71be7b3dd 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -732,7 +732,7 @@ msgid "There are no token transfers for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:18 +#: lib/block_scout_web/templates/address_token/index.html.eex:19 msgid "There are no tokens for this address." msgstr "" @@ -810,7 +810,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:8 -#: lib/block_scout_web/templates/address_token/index.html.eex:8 +#: lib/block_scout_web/templates/address_token/index.html.eex:9 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:9 #: lib/block_scout_web/views/address_view.ex:304 msgid "Tokens" @@ -1207,7 +1207,7 @@ msgstr "" #: lib/block_scout_web/templates/address_coin_balance/index.html.eex:34 #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:61 #: lib/block_scout_web/templates/address_logs/index.html.eex:21 -#: lib/block_scout_web/templates/address_token/index.html.eex:13 +#: lib/block_scout_web/templates/address_token/index.html.eex:14 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:20 #: lib/block_scout_web/templates/address_transaction/index.html.eex:57 #: lib/block_scout_web/templates/address_validation/index.html.eex:22 @@ -1697,3 +1697,8 @@ msgstr "" #: lib/block_scout_web/templates/transaction/overview.html.eex:178 msgid " Token Transfer" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_token/index.html.eex:8 +msgid "Download all token transfers as csv" +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index 654a848278..6d0d199372 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -732,7 +732,7 @@ msgid "There are no token transfers for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:18 +#: lib/block_scout_web/templates/address_token/index.html.eex:19 msgid "There are no tokens for this address." msgstr "" @@ -810,7 +810,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:8 -#: lib/block_scout_web/templates/address_token/index.html.eex:8 +#: lib/block_scout_web/templates/address_token/index.html.eex:9 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:9 #: lib/block_scout_web/views/address_view.ex:304 msgid "Tokens" @@ -1207,7 +1207,7 @@ msgstr "" #: lib/block_scout_web/templates/address_coin_balance/index.html.eex:34 #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:61 #: lib/block_scout_web/templates/address_logs/index.html.eex:21 -#: lib/block_scout_web/templates/address_token/index.html.eex:13 +#: lib/block_scout_web/templates/address_token/index.html.eex:14 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:20 #: lib/block_scout_web/templates/address_transaction/index.html.eex:57 #: lib/block_scout_web/templates/address_validation/index.html.eex:22 @@ -1693,7 +1693,12 @@ msgstr "" msgid "New Smart Contract Verification" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/transaction/overview.html.eex:178 msgid " Token Transfer" msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_token/index.html.eex:8 +msgid "Download all token transfers as csv" +msgstr "" From 25cc11b4af3e99159511f2e012dd499c81edaafa Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 17 Jun 2019 11:42:50 +0300 Subject: [PATCH 027/133] add market history cache --- .../explorer/market/market_history_cache.ex | 64 +++++++++++++++++++ .../market/market_history_cache_test.exs | 32 ++++++++++ 2 files changed, 96 insertions(+) create mode 100644 apps/explorer/lib/explorer/market/market_history_cache.ex create mode 100644 apps/explorer/test/explorer/market/market_history_cache_test.exs diff --git a/apps/explorer/lib/explorer/market/market_history_cache.ex b/apps/explorer/lib/explorer/market/market_history_cache.ex new file mode 100644 index 0000000000..1443f88c62 --- /dev/null +++ b/apps/explorer/lib/explorer/market/market_history_cache.ex @@ -0,0 +1,64 @@ +defmodule Explorer.Market.MarketHistoryCache do + @moduledoc """ + Caches recent market history. + """ + + import Ecto.Query, only: [:from] + + alias Explorer.Repo + + @cache_name :market_history + @last_update_key :last_update + @history_key :history + # 6 hours + @cache_period 1_000 * 60 * 60 * 6 + @recent_days 30 + + def fetch do + if current_time() - fetch_from_cache(@last_update_key) > @cache_period do + fetch_from_cache(@history_key) + else + update_cache() + end + end + + def cache_name, do: @cache_name + + def data_key, do: @history_key + + defp update_cache do + new_data = fetch_from_db() + + put_into_cache(@last_update_key, current_time()) + put_into_cache(@history_key, new_data) + + new_data + end + + defp fetch_from_db do + day_diff = @recent_days * -1 + + query = + from( + mh in MarketHistory, + where: mh.date > date_add(^Date.utc_today(), ^day_diff, "day"), + order_by: [desc: mh.date] + ) + + Repo.all(query) + end + + defp fetch_from_cache(key) do + ConCache.get(@cache_name, key) + end + + defp put_into_cache(key, value) do + ConCache.put(@cache_name, key, value) + end + + defp current_time do + utc_now = DateTime.utc_now() + + DateTime.to_unix(utc_now, :millisecond) + end +end diff --git a/apps/explorer/test/explorer/market/market_history_cache_test.exs b/apps/explorer/test/explorer/market/market_history_cache_test.exs new file mode 100644 index 0000000000..6a7d6c11e2 --- /dev/null +++ b/apps/explorer/test/explorer/market/market_history_cache_test.exs @@ -0,0 +1,32 @@ +defmodule Explorer.Market.MarketHistoryCacheTest do + use Explorer.DataCase + + alias Explorer.Market.MarketHistoryCache + + test "fetch/1" do + test "caches data on the first call" do + today = Date.utc_today() + + records = + for i <- 0..30 do + %{ + date: Timex.shift(today, days: i * -1), + closing_price: Decimal.new(1), + opening_price: Decimal.new(1) + } + end + + Market.bulk_insert_history(records) + + refute fetch_data() + + assert records == MarketHistoryCache.fetch() + + assert fetch_data == records + end + end + + def fetch_data do + ConnCache.get(MarketHistoryCache.cache_name(), MarketHistoryCache.data_key()) + end +end From e3f2a64ccd8a4b28d76dc593157cf3b940147a22 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 17 Jun 2019 13:53:30 +0300 Subject: [PATCH 028/133] add market history cache to supervision tree --- apps/explorer/lib/explorer/application.ex | 4 ++- .../explorer/market/market_history_cache.ex | 19 ++++++++++--- .../market/market_history_cache_test.exs | 27 ++++++++++++++----- 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/apps/explorer/lib/explorer/application.ex b/apps/explorer/lib/explorer/application.ex index 98a71c7bac..724e4f41a1 100644 --- a/apps/explorer/lib/explorer/application.ex +++ b/apps/explorer/lib/explorer/application.ex @@ -7,6 +7,7 @@ defmodule Explorer.Application do alias Explorer.Admin alias Explorer.Chain.{BlockCountCache, BlockNumberCache, BlocksCache, NetVersionCache, TransactionCountCache} + alias Explorer.Market.MarketHistoryCache alias Explorer.Repo.PrometheusLogger @impl Application @@ -32,7 +33,8 @@ defmodule Explorer.Application do {TransactionCountCache, [[], []]}, {BlockCountCache, []}, con_cache_child_spec(BlocksCache.cache_name()), - con_cache_child_spec(NetVersionCache.cache_name()) + con_cache_child_spec(NetVersionCache.cache_name()), + con_cache_child_spec(MarketHistoryCache.cache_name()) ] children = base_children ++ configurable_children() diff --git a/apps/explorer/lib/explorer/market/market_history_cache.ex b/apps/explorer/lib/explorer/market/market_history_cache.ex index 1443f88c62..404b11fb39 100644 --- a/apps/explorer/lib/explorer/market/market_history_cache.ex +++ b/apps/explorer/lib/explorer/market/market_history_cache.ex @@ -3,8 +3,9 @@ defmodule Explorer.Market.MarketHistoryCache do Caches recent market history. """ - import Ecto.Query, only: [:from] + import Ecto.Query, only: [from: 2] + alias Explorer.Market.MarketHistory alias Explorer.Repo @cache_name :market_history @@ -15,10 +16,10 @@ defmodule Explorer.Market.MarketHistoryCache do @recent_days 30 def fetch do - if current_time() - fetch_from_cache(@last_update_key) > @cache_period do - fetch_from_cache(@history_key) - else + if cache_expired?() do update_cache() + else + fetch_from_cache(@history_key) end end @@ -26,6 +27,16 @@ defmodule Explorer.Market.MarketHistoryCache do def data_key, do: @history_key + defp cache_expired? do + updated_at = fetch_from_cache(@last_update_key) + + cond do + is_nil(updated_at) -> true + current_time() - updated_at > @cache_period -> true + true -> false + end + end + defp update_cache do new_data = fetch_from_db() diff --git a/apps/explorer/test/explorer/market/market_history_cache_test.exs b/apps/explorer/test/explorer/market/market_history_cache_test.exs index 6a7d6c11e2..0b87aec6bc 100644 --- a/apps/explorer/test/explorer/market/market_history_cache_test.exs +++ b/apps/explorer/test/explorer/market/market_history_cache_test.exs @@ -1,14 +1,15 @@ defmodule Explorer.Market.MarketHistoryCacheTest do use Explorer.DataCase + alias Explorer.Market alias Explorer.Market.MarketHistoryCache - test "fetch/1" do + describe "fetch/1" do test "caches data on the first call" do today = Date.utc_today() records = - for i <- 0..30 do + for i <- 0..29 do %{ date: Timex.shift(today, days: i * -1), closing_price: Decimal.new(1), @@ -20,13 +21,27 @@ defmodule Explorer.Market.MarketHistoryCacheTest do refute fetch_data() - assert records == MarketHistoryCache.fetch() + assert Enum.count(MarketHistoryCache.fetch()) == 30 - assert fetch_data == records + assert fetch_data() == records end end - def fetch_data do - ConnCache.get(MarketHistoryCache.cache_name(), MarketHistoryCache.data_key()) + defp fetch_data do + MarketHistoryCache.cache_name() + |> ConCache.get(MarketHistoryCache.data_key()) + |> case do + nil -> + nil + + records -> + Enum.map(records, fn record -> + %{ + date: record.date, + closing_price: record.closing_price, + opening_price: record.opening_price + } + end) + end end end From 4fd053bc39fcf1643923d10a0e60d9bb84f748d3 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 17 Jun 2019 14:41:42 +0300 Subject: [PATCH 029/133] use cached data --- .../chain/market_history_chart_controller.ex | 16 ++++---- .../lib/block_scout_web/notifier.ex | 2 +- apps/explorer/lib/explorer/chain.ex | 3 +- apps/explorer/lib/explorer/market/market.ex | 19 ++-------- .../explorer/market/market_history_cache.ex | 4 ++ .../market/market_history_cache_test.exs | 37 +++++++++++++++++++ 6 files changed, 57 insertions(+), 24 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/chain/market_history_chart_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/chain/market_history_chart_controller.ex index 4a498b8430..a89728949c 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/chain/market_history_chart_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/chain/market_history_chart_controller.ex @@ -8,18 +8,20 @@ defmodule BlockScoutWeb.Chain.MarketHistoryChartController do with true <- ajax?(conn) do exchange_rate = Market.get_exchange_rate(Explorer.coin()) || Token.null() + recent_market_history = Market.fetch_recent_history() + market_history_data = - 30 - |> Market.fetch_recent_history() - |> case do - [today | the_rest] -> [%{today | closing_price: exchange_rate.usd_value} | the_rest] - data -> data + case recent_market_history do + [today | the_rest] -> + encode_market_history_data([%{today | closing_price: exchange_rate.usd_value} | the_rest]) + + data -> + encode_market_history_data(data) end - |> encode_market_history_data() json(conn, %{ history_data: market_history_data, - supply_data: available_supply(Chain.supply_for_days(30), exchange_rate) + supply_data: available_supply(Chain.supply_for_days(), exchange_rate) }) else _ -> unprocessable_entity(conn) diff --git a/apps/block_scout_web/lib/block_scout_web/notifier.ex b/apps/block_scout_web/lib/block_scout_web/notifier.ex index 21a104848e..a5bc99e242 100644 --- a/apps/block_scout_web/lib/block_scout_web/notifier.ex +++ b/apps/block_scout_web/lib/block_scout_web/notifier.ex @@ -37,7 +37,7 @@ defmodule BlockScoutWeb.Notifier do exchange_rate = Market.get_exchange_rate(Explorer.coin()) || Token.null() market_history_data = - case Market.fetch_recent_history(30) do + case Market.fetch_recent_history() do [today | the_rest] -> [%{today | closing_price: exchange_rate.usd_value} | the_rest] data -> data end diff --git a/apps/explorer/lib/explorer/chain.ex b/apps/explorer/lib/explorer/chain.ex index 9c203ad3e4..af02ce8274 100644 --- a/apps/explorer/lib/explorer/chain.ex +++ b/apps/explorer/lib/explorer/chain.ex @@ -52,6 +52,7 @@ defmodule Explorer.Chain do alias Explorer.Chain.Block.{EmissionReward, Reward} alias Explorer.Chain.Import.Runner alias Explorer.Counters.AddressesWithBalanceCounter + alias Explorer.Market.MarketHistoryCache alias Explorer.{PagingOptions, Repo} alias Dataloader.Ecto, as: DataloaderEcto @@ -2588,7 +2589,7 @@ defmodule Explorer.Chain do @doc """ Calls supply_for_days from the configured supply_module """ - def supply_for_days(days_count), do: supply_module().supply_for_days(days_count) + def supply_for_days, do: supply_module().supply_for_days(MarketHistoryCache.recent_days_count()) @doc """ Streams a lists token contract addresses that haven't been cataloged. diff --git a/apps/explorer/lib/explorer/market/market.ex b/apps/explorer/lib/explorer/market/market.ex index 0d1df671a2..f3e35f7d64 100644 --- a/apps/explorer/lib/explorer/market/market.ex +++ b/apps/explorer/lib/explorer/market/market.ex @@ -3,12 +3,10 @@ defmodule Explorer.Market do Context for data related to the cryptocurrency market. """ - import Ecto.Query - alias Explorer.Chain.Address.CurrentTokenBalance alias Explorer.Chain.Hash alias Explorer.ExchangeRates.Token - alias Explorer.Market.MarketHistory + alias Explorer.Market.{MarketHistory, MarketHistoryCache} alias Explorer.{ExchangeRates, KnownTokens, Repo} @doc """ @@ -35,18 +33,9 @@ defmodule Explorer.Market do Today's date is include as part of the day count """ - @spec fetch_recent_history(non_neg_integer()) :: [MarketHistory.t()] - def fetch_recent_history(days) when days >= 1 do - day_diff = days * -1 - - query = - from( - mh in MarketHistory, - where: mh.date > date_add(^Date.utc_today(), ^day_diff, "day"), - order_by: [desc: mh.date] - ) - - Repo.all(query) + @spec fetch_recent_history() :: [MarketHistory.t()] + def fetch_recent_history do + MarketHistoryCache.fetch() end @doc false diff --git a/apps/explorer/lib/explorer/market/market_history_cache.ex b/apps/explorer/lib/explorer/market/market_history_cache.ex index 404b11fb39..04b6193716 100644 --- a/apps/explorer/lib/explorer/market/market_history_cache.ex +++ b/apps/explorer/lib/explorer/market/market_history_cache.ex @@ -27,6 +27,10 @@ defmodule Explorer.Market.MarketHistoryCache do def data_key, do: @history_key + def updated_at_key, do: @last_update_key + + def recent_days_count, do: @recent_days + defp cache_expired? do updated_at = fetch_from_cache(@last_update_key) diff --git a/apps/explorer/test/explorer/market/market_history_cache_test.exs b/apps/explorer/test/explorer/market/market_history_cache_test.exs index 0b87aec6bc..04c49c64a3 100644 --- a/apps/explorer/test/explorer/market/market_history_cache_test.exs +++ b/apps/explorer/test/explorer/market/market_history_cache_test.exs @@ -4,6 +4,12 @@ defmodule Explorer.Market.MarketHistoryCacheTest do alias Explorer.Market alias Explorer.Market.MarketHistoryCache + setup do + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, MarketHistoryCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, MarketHistoryCache.cache_name()}) + :ok + end + describe "fetch/1" do test "caches data on the first call" do today = Date.utc_today() @@ -25,6 +31,37 @@ defmodule Explorer.Market.MarketHistoryCacheTest do assert fetch_data() == records end + + test "updates cache if cache is stale" do + today = Date.utc_today() + + stale_records = + for i <- 0..29 do + %{ + date: Timex.shift(today, days: i * -1), + closing_price: Decimal.new(1), + opening_price: Decimal.new(1) + } + end + + Market.bulk_insert_history(stale_records) + + MarketHistoryCache.fetch() + + stale_updated_at = fetch_updated_at() + + assert fetch_data() == stale_records + + ConCache.put(MarketHistoryCache.cache_name(), MarketHistoryCache.updated_at_key(), Timex.shift(today, days: -35)) + + fetch_data() + + assert stale_updated_at != fetch_updated_at() + end + end + + defp fetch_updated_at do + ConCache.get(MarketHistoryCache.cache_name(), MarketHistoryCache.updated_at_key()) end defp fetch_data do From 18e6cc8925f0e9051f2ad6cccb049b22588eb98d Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 17 Jun 2019 15:10:12 +0300 Subject: [PATCH 030/133] fix tests --- apps/explorer/test/explorer/market/market_test.exs | 11 ++--------- apps/explorer/test/support/data_case.ex | 7 +++++-- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/apps/explorer/test/explorer/market/market_test.exs b/apps/explorer/test/explorer/market/market_test.exs index b989f6a1de..be1390877d 100644 --- a/apps/explorer/test/explorer/market/market_test.exs +++ b/apps/explorer/test/explorer/market/market_test.exs @@ -19,16 +19,9 @@ defmodule Explorer.MarketTest do Market.bulk_insert_history(records) - history = Market.fetch_recent_history(1) - assert length(history) == 1 + history = Market.fetch_recent_history() + assert length(history) == 6 assert Enum.at(history, 0).date == Enum.at(records, 0).date - - more_history = Market.fetch_recent_history(5) - assert length(more_history) == 5 - - for {history_record, index} <- Enum.with_index(more_history) do - assert history_record.date == Enum.at(records, index).date - end end describe "bulk_insert_history/1" do diff --git a/apps/explorer/test/support/data_case.ex b/apps/explorer/test/support/data_case.ex index 1386a55d36..de1649578a 100644 --- a/apps/explorer/test/support/data_case.ex +++ b/apps/explorer/test/support/data_case.ex @@ -40,8 +40,11 @@ defmodule Explorer.DataCase do end Explorer.Chain.BlockNumberCache.setup() - Supervisor.terminate_child(Explorer.Supervisor, {ConCache, :blocks}) - Supervisor.restart_child(Explorer.Supervisor, {ConCache, :blocks}) + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) :ok end From 741ba619fc927b2c366edd5f97c395bedda21d26 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 17 Jun 2019 15:25:02 +0300 Subject: [PATCH 031/133] fix failing test --- .../block_scout_web/channels/exchange_rate_channel_test.exs | 5 +++++ apps/explorer/test/support/data_case.ex | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs index f41a764c6e..0cf9a6e4b6 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs @@ -20,6 +20,9 @@ defmodule BlockScoutWeb.ExchangeRateChannelTest do ExchangeRates.init([]) + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) + token = %Token{ available_supply: Decimal.new("1000000.0"), total_supply: Decimal.new("1000000.0"), @@ -76,6 +79,8 @@ defmodule BlockScoutWeb.ExchangeRateChannelTest do Market.bulk_insert_history(records) + Market.fetch_recent_history() + topic = "exchange_rate:new_rate" @endpoint.subscribe(topic) diff --git a/apps/explorer/test/support/data_case.ex b/apps/explorer/test/support/data_case.ex index de1649578a..c201932cef 100644 --- a/apps/explorer/test/support/data_case.ex +++ b/apps/explorer/test/support/data_case.ex @@ -43,9 +43,6 @@ defmodule Explorer.DataCase do Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) - Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) - Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) - :ok end From 9156f2d2e9f1d4b1d12b207f2f2a1978667ab1ee Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 17 Jun 2019 15:36:36 +0300 Subject: [PATCH 032/133] fix ChannelCase --- .../block_scout_web/channels/exchange_rate_channel_test.exs | 3 --- apps/block_scout_web/test/support/channel_case.ex | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs index 0cf9a6e4b6..062809bec3 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs @@ -20,9 +20,6 @@ defmodule BlockScoutWeb.ExchangeRateChannelTest do ExchangeRates.init([]) - Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) - Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) - token = %Token{ available_supply: Decimal.new("1000000.0"), total_supply: Decimal.new("1000000.0"), diff --git a/apps/block_scout_web/test/support/channel_case.ex b/apps/block_scout_web/test/support/channel_case.ex index fcb7ddad66..27ef9f1fce 100644 --- a/apps/block_scout_web/test/support/channel_case.ex +++ b/apps/block_scout_web/test/support/channel_case.ex @@ -31,6 +31,9 @@ defmodule BlockScoutWeb.ChannelCase do setup tags do :ok = Ecto.Adapters.SQL.Sandbox.checkout(Explorer.Repo) + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) + unless tags[:async] do Ecto.Adapters.SQL.Sandbox.mode(Explorer.Repo, {:shared, self()}) end From b6a27897a2a9372a7767fb385ff0df6a8895ccb6 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 17 Jun 2019 15:59:51 +0300 Subject: [PATCH 033/133] fix tests --- .../channels/exchange_rate_channel_test.exs | 4 ++++ apps/block_scout_web/test/support/channel_case.ex | 3 --- apps/explorer/test/explorer/market/market_test.exs | 7 +++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs index 062809bec3..d0ffcc36c8 100644 --- a/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs +++ b/apps/block_scout_web/test/block_scout_web/channels/exchange_rate_channel_test.exs @@ -43,6 +43,8 @@ defmodule BlockScoutWeb.ExchangeRateChannelTest do describe "new_rate" do test "subscribed user is notified", %{token: token} do ExchangeRates.handle_info({nil, {:ok, [token]}}, %{}) + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) topic = "exchange_rate:new_rate" @endpoint.subscribe(topic) @@ -61,6 +63,8 @@ defmodule BlockScoutWeb.ExchangeRateChannelTest do test "subscribed user is notified with market history", %{token: token} do ExchangeRates.handle_info({nil, {:ok, [token]}}, %{}) + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) today = Date.utc_today() diff --git a/apps/block_scout_web/test/support/channel_case.ex b/apps/block_scout_web/test/support/channel_case.ex index 27ef9f1fce..fcb7ddad66 100644 --- a/apps/block_scout_web/test/support/channel_case.ex +++ b/apps/block_scout_web/test/support/channel_case.ex @@ -31,9 +31,6 @@ defmodule BlockScoutWeb.ChannelCase do setup tags do :ok = Ecto.Adapters.SQL.Sandbox.checkout(Explorer.Repo) - Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) - Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Market.MarketHistoryCache.cache_name()}) - unless tags[:async] do Ecto.Adapters.SQL.Sandbox.mode(Explorer.Repo, {:shared, self()}) end diff --git a/apps/explorer/test/explorer/market/market_test.exs b/apps/explorer/test/explorer/market/market_test.exs index be1390877d..c2954d7033 100644 --- a/apps/explorer/test/explorer/market/market_test.exs +++ b/apps/explorer/test/explorer/market/market_test.exs @@ -5,6 +5,13 @@ defmodule Explorer.MarketTest do alias Explorer.Market.MarketHistory alias Explorer.Repo + setup do + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + + :ok + end + test "fetch_recent_history/1" do today = Date.utc_today() From f034ad1fa8bd7da84cfd082e80f852232dafc348 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 10:39:27 +0300 Subject: [PATCH 034/133] fix tests --- apps/explorer/test/explorer/market/market_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/explorer/test/explorer/market/market_test.exs b/apps/explorer/test/explorer/market/market_test.exs index c2954d7033..b639e2f1cf 100644 --- a/apps/explorer/test/explorer/market/market_test.exs +++ b/apps/explorer/test/explorer/market/market_test.exs @@ -1,5 +1,5 @@ defmodule Explorer.MarketTest do - use Explorer.DataCase + use Explorer.DataCase, async: false alias Explorer.Market alias Explorer.Market.MarketHistory From 6ea73f57f70a50ecf2110151c2d817a67837dcf1 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 10:56:53 +0300 Subject: [PATCH 035/133] use milliseconds in cache --- .../test/explorer/market/market_history_cache_test.exs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/explorer/test/explorer/market/market_history_cache_test.exs b/apps/explorer/test/explorer/market/market_history_cache_test.exs index 04c49c64a3..cd1ec36eea 100644 --- a/apps/explorer/test/explorer/market/market_history_cache_test.exs +++ b/apps/explorer/test/explorer/market/market_history_cache_test.exs @@ -52,7 +52,8 @@ defmodule Explorer.Market.MarketHistoryCacheTest do assert fetch_data() == stale_records - ConCache.put(MarketHistoryCache.cache_name(), MarketHistoryCache.updated_at_key(), Timex.shift(today, days: -35)) + ConCache.put(MarketHistoryCache.cache_name(), MarketHistoryCache.updated_at_key(), 1) + fetch_data() From ef5a0153ad9cd411efa45386193487f6c19aa4bd Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 11:06:04 +0300 Subject: [PATCH 036/133] mix format --- apps/explorer/test/explorer/market/market_history_cache_test.exs | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/explorer/test/explorer/market/market_history_cache_test.exs b/apps/explorer/test/explorer/market/market_history_cache_test.exs index cd1ec36eea..77cf2b3c88 100644 --- a/apps/explorer/test/explorer/market/market_history_cache_test.exs +++ b/apps/explorer/test/explorer/market/market_history_cache_test.exs @@ -54,7 +54,6 @@ defmodule Explorer.Market.MarketHistoryCacheTest do ConCache.put(MarketHistoryCache.cache_name(), MarketHistoryCache.updated_at_key(), 1) - fetch_data() assert stale_updated_at != fetch_updated_at() From ec2719936fad336cc5e2f25000f2a8774820bcfc Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 13:08:34 +0300 Subject: [PATCH 037/133] show all token transfers --- .../templates/transaction/overview.html.eex | 8 +++++--- .../lib/block_scout_web/views/transaction_view.ex | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex index 396b8dd7c0..ca188ea231 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex @@ -170,18 +170,20 @@
<%= case token_transfer_type(@transaction) do %> - <% {type, token_transfer} -> %> + <% {type, transaction_with_transfers} when is_atom(type) -> %>

<%= if type == :erc20, do: gettext("ERC-20"), else: gettext("ERC-721")%><%= gettext " Token Transfer" %>

+ <%= for transfer <- transaction_with_transfers.token_transfers do %>

- <%= token_transfer_amount(token_transfer) %> - <%= link(token_symbol(token_transfer.token), to: token_path(BlockScoutWeb.Endpoint, :show, token_transfer.token.contract_address_hash)) %> + <%= token_transfer_amount(transfer) %> + <%= link(token_symbol(transfer.token), to: token_path(BlockScoutWeb.Endpoint, :show, transfer.token.contract_address_hash)) %>

+ <% end %>
<% _ -> %> diff --git a/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex index 026147ac3e..a012e138a0 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex @@ -3,7 +3,7 @@ defmodule BlockScoutWeb.TransactionView do alias BlockScoutWeb.{AddressView, BlockView, TabHelpers} alias Cldr.Number - alias Explorer.Chain + alias Explorer.{Chain, Repo} alias Explorer.Chain.Block.Reward alias Explorer.Chain.{Address, Block, InternalTransaction, Transaction, Wei} alias Explorer.ExchangeRates.Token @@ -33,7 +33,9 @@ defmodule BlockScoutWeb.TransactionView do def value_transfer?(_), do: false def token_transfer_type(transaction) do - Chain.transaction_token_transfer_type(transaction) + transaction_with_transfers = Repo.preload(transaction, token_transfers: :token) + + {Chain.transaction_token_transfer_type(transaction), transaction_with_transfers} end def processing_time_duration(%Transaction{block: nil}) do From 9470d33a50463c9002f513fa4e86d52758e2be8d Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 13:08:46 +0300 Subject: [PATCH 038/133] token transfer type fixes --- apps/explorer/lib/explorer/chain.ex | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/explorer/lib/explorer/chain.ex b/apps/explorer/lib/explorer/chain.ex index c40c2a492b..72b907d552 100644 --- a/apps/explorer/lib/explorer/chain.ex +++ b/apps/explorer/lib/explorer/chain.ex @@ -2907,8 +2907,6 @@ defmodule Explorer.Chain do ) do zero_wei = %Wei{value: Decimal.new(0)} - transaction = Repo.preload(transaction, token_transfers: :token) - # https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/token/ERC721/ERC721.sol#L35 case {to_string(input), value} do # transferFrom(address,address,uint256) @@ -2932,6 +2930,9 @@ defmodule Explorer.Chain do find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) + {"0xf907fc5b" <> _params, ^zero_wei} -> + :erc20 + # check for ERC 20 or for old ERC 721 token versions {unquote(TokenTransfer.transfer_function_signature()) <> params, ^zero_wei} -> types = [:address, {:uint, 256}] @@ -2957,22 +2958,23 @@ defmodule Explorer.Chain do token_transfer.from_address_hash.bytes == from_address && token_transfer.to_address_hash.bytes == to_address end) - if token_transfer, do: {:erc721, token_transfer} + if token_transfer, do: :erc721 end defp find_erc721_or_erc20_token_transfer(token_transfers, {address, decimal_value}) do token_transfer = Enum.find(token_transfers, fn token_transfer -> - token_transfer.to_address_hash.bytes == address && - (token_transfer.amount == decimal_value || token_transfer.token_id) + token_transfer.to_address_hash.bytes == address && token_transfer.amount == decimal_value end) if token_transfer do case token_transfer.token do - %Token{type: "ERC-20"} -> {:erc20, token_transfer} - %Token{type: "ERC-721"} -> {:erc721, token_transfer} + %Token{type: "ERC-20"} -> :erc20 + %Token{type: "ERC-721"} -> :erc721 _ -> nil end + else + :erc20 end end From 2790cf5f88e65eaf5fefe1b718097a45b868dc88 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 13:25:52 +0300 Subject: [PATCH 039/133] add generic title for token transfers --- .../templates/transaction/overview.html.eex | 2 +- .../lib/block_scout_web/views/transaction_view.ex | 11 ++++++++++- apps/explorer/lib/explorer/chain.ex | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex index ca188ea231..b168045fe1 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex @@ -175,7 +175,7 @@
-

<%= if type == :erc20, do: gettext("ERC-20"), else: gettext("ERC-721")%><%= gettext " Token Transfer" %>

+

<%= token_type_name(type)%><%= gettext " Token Transfer" %>

<%= for transfer <- transaction_with_transfers.token_transfers do %>

diff --git a/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex b/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex index a012e138a0..1ed50d28ab 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/transaction_view.ex @@ -35,7 +35,16 @@ defmodule BlockScoutWeb.TransactionView do def token_transfer_type(transaction) do transaction_with_transfers = Repo.preload(transaction, token_transfers: :token) - {Chain.transaction_token_transfer_type(transaction), transaction_with_transfers} + type = Chain.transaction_token_transfer_type(transaction) + if type, do: {type, transaction_with_transfers} + end + + def token_type_name(type) do + case type do + :erc20 -> gettext("ERC-20 ") + :erc721 -> gettext("ERC-721 ") + :token_transfer -> "" + end end def processing_time_duration(%Transaction{block: nil}) do diff --git a/apps/explorer/lib/explorer/chain.ex b/apps/explorer/lib/explorer/chain.ex index 72b907d552..e24db3ef89 100644 --- a/apps/explorer/lib/explorer/chain.ex +++ b/apps/explorer/lib/explorer/chain.ex @@ -2943,6 +2943,9 @@ defmodule Explorer.Chain do find_erc721_or_erc20_token_transfer(transaction.token_transfers, {address, decimal_value}) + {_params, ^zero_wei} -> + if Enum.count(transaction.token_transfers) > 0, do: :token_transfer + _ -> nil end From 79bed238e919537e62b534320308cfc4a2ac8296 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 14:07:54 +0300 Subject: [PATCH 040/133] fix gettext --- apps/block_scout_web/priv/gettext/default.pot | 60 +++++++++--------- .../priv/gettext/en/LC_MESSAGES/default.po | 62 +++++++++---------- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 4e05e8266f..01aa2921c3 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -49,7 +49,7 @@ msgid "%{subnetwork} Explorer - BlockScout" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:133 +#: lib/block_scout_web/views/transaction_view.ex:144 msgid "(Awaiting internal transactions for status)" msgstr "" @@ -274,12 +274,12 @@ msgid "Contract Address Pending" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:210 +#: lib/block_scout_web/views/transaction_view.ex:221 msgid "Contract Call" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:209 +#: lib/block_scout_web/views/transaction_view.ex:220 msgid "Contract Creation" msgstr "" @@ -362,12 +362,12 @@ msgid "Error trying to fetch balances." msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:137 +#: lib/block_scout_web/views/transaction_view.ex:148 msgid "Error: %{reason}" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:135 +#: lib/block_scout_web/views/transaction_view.ex:146 msgid "Error: (Awaiting internal transactions for reason)" msgstr "" @@ -377,7 +377,7 @@ msgstr "" #: lib/block_scout_web/templates/layout/app.html.eex:55 #: lib/block_scout_web/templates/transaction/_pending_tile.html.eex:20 #: lib/block_scout_web/templates/transaction/_tile.html.eex:30 -#: lib/block_scout_web/templates/transaction/overview.html.eex:192 +#: lib/block_scout_web/templates/transaction/overview.html.eex:194 #: lib/block_scout_web/views/wei_helpers.ex:78 msgid "Ether" msgstr "" @@ -472,7 +472,7 @@ msgstr "" #: lib/block_scout_web/templates/transaction/_tabs.html.eex:11 #: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:6 #: lib/block_scout_web/views/address_view.ex:306 -#: lib/block_scout_web/views/transaction_view.ex:263 +#: lib/block_scout_web/views/transaction_view.ex:274 msgid "Internal Transactions" msgstr "" @@ -489,7 +489,7 @@ msgid "Less than" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:220 +#: lib/block_scout_web/templates/transaction/overview.html.eex:222 msgid "Limit" msgstr "" @@ -499,7 +499,7 @@ msgstr "" #: lib/block_scout_web/templates/transaction/_tabs.html.eex:17 #: lib/block_scout_web/templates/transaction_log/index.html.eex:8 #: lib/block_scout_web/views/address_view.ex:312 -#: lib/block_scout_web/views/transaction_view.ex:264 +#: lib/block_scout_web/views/transaction_view.ex:275 msgid "Logs" msgstr "" @@ -511,7 +511,7 @@ msgid "Market Cap" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:118 +#: lib/block_scout_web/views/transaction_view.ex:129 msgid "Max of" msgstr "" @@ -601,8 +601,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/layout/_topnav.html.eex:44 -#: lib/block_scout_web/views/transaction_view.ex:132 -#: lib/block_scout_web/views/transaction_view.ex:166 +#: lib/block_scout_web/views/transaction_view.ex:143 +#: lib/block_scout_web/views/transaction_view.ex:177 msgid "Pending" msgstr "" @@ -689,7 +689,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/transaction/_emission_reward_tile.html.eex:8 -#: lib/block_scout_web/views/transaction_view.ex:134 +#: lib/block_scout_web/views/transaction_view.ex:145 msgid "Success" msgstr "" @@ -794,7 +794,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:5 #: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:4 -#: lib/block_scout_web/views/transaction_view.ex:208 +#: lib/block_scout_web/views/transaction_view.ex:219 msgid "Token Transfer" msgstr "" @@ -804,7 +804,7 @@ msgstr "" #: lib/block_scout_web/templates/transaction/_tabs.html.eex:4 #: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:7 #: lib/block_scout_web/views/tokens/overview_view.ex:35 -#: lib/block_scout_web/views/transaction_view.ex:262 +#: lib/block_scout_web/views/transaction_view.ex:273 msgid "Token Transfers" msgstr "" @@ -844,7 +844,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_logs/_logs.html.eex:3 -#: lib/block_scout_web/views/transaction_view.ex:211 +#: lib/block_scout_web/views/transaction_view.ex:222 msgid "Transaction" msgstr "" @@ -906,7 +906,7 @@ msgid "Unique Token" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:214 +#: lib/block_scout_web/templates/transaction/overview.html.eex:216 msgid "Used" msgstr "" @@ -926,7 +926,7 @@ msgid "Validations" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:192 +#: lib/block_scout_web/templates/transaction/overview.html.eex:194 msgid "Value" msgstr "" @@ -1519,16 +1519,6 @@ msgstr "" msgid "Optimization runs" msgstr "" -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:178 -msgid "ERC-20" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:178 -msgid "ERC-721" -msgstr "" - #, elixir-format #: lib/block_scout_web/templates/api_docs/index.html.eex:4 msgid "API Documentation" @@ -1545,14 +1535,14 @@ msgid "View All Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:210 +#: lib/block_scout_web/templates/transaction/overview.html.eex:212 msgid "Gas" msgstr "" #, elixir-format #: lib/block_scout_web/templates/transaction/_tabs.html.eex:24 #: lib/block_scout_web/templates/transaction_raw_trace/index.html.eex:7 -#: lib/block_scout_web/views/transaction_view.ex:265 +#: lib/block_scout_web/views/transaction_view.ex:276 msgid "Raw Trace" msgstr "" @@ -1702,3 +1692,13 @@ msgstr "" #: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:27 msgid "There is no decompilded contracts for this address." msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:44 +msgid "ERC-20 " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:45 +msgid "ERC-721 " +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index 142aec2b37..b90f812c34 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -49,7 +49,7 @@ msgid "%{subnetwork} Explorer - BlockScout" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:133 +#: lib/block_scout_web/views/transaction_view.ex:144 msgid "(Awaiting internal transactions for status)" msgstr "" @@ -274,12 +274,12 @@ msgid "Contract Address Pending" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:210 +#: lib/block_scout_web/views/transaction_view.ex:221 msgid "Contract Call" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:209 +#: lib/block_scout_web/views/transaction_view.ex:220 msgid "Contract Creation" msgstr "" @@ -362,12 +362,12 @@ msgid "Error trying to fetch balances." msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:137 +#: lib/block_scout_web/views/transaction_view.ex:148 msgid "Error: %{reason}" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:135 +#: lib/block_scout_web/views/transaction_view.ex:146 msgid "Error: (Awaiting internal transactions for reason)" msgstr "" @@ -377,7 +377,7 @@ msgstr "" #: lib/block_scout_web/templates/layout/app.html.eex:55 #: lib/block_scout_web/templates/transaction/_pending_tile.html.eex:20 #: lib/block_scout_web/templates/transaction/_tile.html.eex:30 -#: lib/block_scout_web/templates/transaction/overview.html.eex:192 +#: lib/block_scout_web/templates/transaction/overview.html.eex:194 #: lib/block_scout_web/views/wei_helpers.ex:78 msgid "Ether" msgstr "POA" @@ -472,7 +472,7 @@ msgstr "" #: lib/block_scout_web/templates/transaction/_tabs.html.eex:11 #: lib/block_scout_web/templates/transaction_internal_transaction/index.html.eex:6 #: lib/block_scout_web/views/address_view.ex:306 -#: lib/block_scout_web/views/transaction_view.ex:263 +#: lib/block_scout_web/views/transaction_view.ex:274 msgid "Internal Transactions" msgstr "" @@ -489,7 +489,7 @@ msgid "Less than" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:220 +#: lib/block_scout_web/templates/transaction/overview.html.eex:222 msgid "Limit" msgstr "" @@ -499,7 +499,7 @@ msgstr "" #: lib/block_scout_web/templates/transaction/_tabs.html.eex:17 #: lib/block_scout_web/templates/transaction_log/index.html.eex:8 #: lib/block_scout_web/views/address_view.ex:312 -#: lib/block_scout_web/views/transaction_view.ex:264 +#: lib/block_scout_web/views/transaction_view.ex:275 msgid "Logs" msgstr "" @@ -511,7 +511,7 @@ msgid "Market Cap" msgstr "" #, elixir-format -#: lib/block_scout_web/views/transaction_view.ex:118 +#: lib/block_scout_web/views/transaction_view.ex:129 msgid "Max of" msgstr "" @@ -601,8 +601,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/layout/_topnav.html.eex:44 -#: lib/block_scout_web/views/transaction_view.ex:132 -#: lib/block_scout_web/views/transaction_view.ex:166 +#: lib/block_scout_web/views/transaction_view.ex:143 +#: lib/block_scout_web/views/transaction_view.ex:177 msgid "Pending" msgstr "" @@ -689,7 +689,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/transaction/_emission_reward_tile.html.eex:8 -#: lib/block_scout_web/views/transaction_view.ex:134 +#: lib/block_scout_web/views/transaction_view.ex:145 msgid "Success" msgstr "" @@ -794,7 +794,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/tokens/transfer/_token_transfer.html.eex:5 #: lib/block_scout_web/templates/transaction_token_transfer/_token_transfer.html.eex:4 -#: lib/block_scout_web/views/transaction_view.ex:208 +#: lib/block_scout_web/views/transaction_view.ex:219 msgid "Token Transfer" msgstr "" @@ -804,7 +804,7 @@ msgstr "" #: lib/block_scout_web/templates/transaction/_tabs.html.eex:4 #: lib/block_scout_web/templates/transaction_token_transfer/index.html.eex:7 #: lib/block_scout_web/views/tokens/overview_view.ex:35 -#: lib/block_scout_web/views/transaction_view.ex:262 +#: lib/block_scout_web/views/transaction_view.ex:273 msgid "Token Transfers" msgstr "" @@ -844,7 +844,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_logs/_logs.html.eex:3 -#: lib/block_scout_web/views/transaction_view.ex:211 +#: lib/block_scout_web/views/transaction_view.ex:222 msgid "Transaction" msgstr "" @@ -906,7 +906,7 @@ msgid "Unique Token" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:214 +#: lib/block_scout_web/templates/transaction/overview.html.eex:216 msgid "Used" msgstr "" @@ -926,7 +926,7 @@ msgid "Validations" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:192 +#: lib/block_scout_web/templates/transaction/overview.html.eex:194 msgid "Value" msgstr "" @@ -1519,16 +1519,6 @@ msgstr "" msgid "Optimization runs" msgstr "" -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:178 -msgid "ERC-20" -msgstr "" - -#, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:178 -msgid "ERC-721" -msgstr "" - #, elixir-format #: lib/block_scout_web/templates/api_docs/index.html.eex:4 msgid "API Documentation" @@ -1545,14 +1535,14 @@ msgid "View All Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:210 +#: lib/block_scout_web/templates/transaction/overview.html.eex:212 msgid "Gas" msgstr "" #, elixir-format #: lib/block_scout_web/templates/transaction/_tabs.html.eex:24 #: lib/block_scout_web/templates/transaction_raw_trace/index.html.eex:7 -#: lib/block_scout_web/views/transaction_view.ex:265 +#: lib/block_scout_web/views/transaction_view.ex:276 msgid "Raw Trace" msgstr "" @@ -1698,7 +1688,17 @@ msgstr "" msgid " Token Transfer" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:27 msgid "There is no decompilded contracts for this address." msgstr "" + +#, elixir-format, fuzzy +#: lib/block_scout_web/views/transaction_view.ex:44 +msgid "ERC-20 " +msgstr "" + +#, elixir-format, fuzzy +#: lib/block_scout_web/views/transaction_view.ex:45 +msgid "ERC-721 " +msgstr "" From 20140b0fcb272309f4a1e7710c2d9979d52e0128 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 14:09:01 +0300 Subject: [PATCH 041/133] fix dialyzer --- apps/explorer/lib/explorer/chain.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/explorer/lib/explorer/chain.ex b/apps/explorer/lib/explorer/chain.ex index e24db3ef89..8284a0e2ac 100644 --- a/apps/explorer/lib/explorer/chain.ex +++ b/apps/explorer/lib/explorer/chain.ex @@ -2896,7 +2896,7 @@ defmodule Explorer.Chain do end @spec transaction_token_transfer_type(Transaction.t()) :: - {:erc20, TokenTransfer.t()} | {:erc721, TokenTransfer.t()} | nil + :erc20 | :erc721 | :token_transfer | nil def transaction_token_transfer_type( %Transaction{ status: :ok, From 33eb12091054995f7b9be9c694d7e2cdd24186ef Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 14:48:30 +0300 Subject: [PATCH 042/133] fix tests --- apps/explorer/test/explorer/chain_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/explorer/test/explorer/chain_test.exs b/apps/explorer/test/explorer/chain_test.exs index 442d051e0d..2cc8273adf 100644 --- a/apps/explorer/test/explorer/chain_test.exs +++ b/apps/explorer/test/explorer/chain_test.exs @@ -3954,7 +3954,7 @@ defmodule Explorer.ChainTest do insert(:token_transfer, from_address: from_address, to_address: to_address, transaction: transaction) - assert {:erc721, _found_token_transfer} = Chain.transaction_token_transfer_type(transaction) + assert :erc721 = Chain.transaction_token_transfer_type(Repo.preload(transaction, :token_trasfers)) end test "detects erc20 token transfer" do @@ -3980,7 +3980,7 @@ defmodule Explorer.ChainTest do amount: 8_025_000_000_000_000_000_000 ) - assert {:erc20, _found_token_transfer} = Chain.transaction_token_transfer_type(transaction) + assert :erc20 = Chain.transaction_token_transfer_type(Repo.preload(transaction, :token_trasfers)) end end From 96bfe828fb7e8f161562c7f6798e122d71400860 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 14:56:14 +0300 Subject: [PATCH 043/133] fix typo --- apps/explorer/test/explorer/chain_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/explorer/test/explorer/chain_test.exs b/apps/explorer/test/explorer/chain_test.exs index 2cc8273adf..5e7472bae1 100644 --- a/apps/explorer/test/explorer/chain_test.exs +++ b/apps/explorer/test/explorer/chain_test.exs @@ -3954,7 +3954,7 @@ defmodule Explorer.ChainTest do insert(:token_transfer, from_address: from_address, to_address: to_address, transaction: transaction) - assert :erc721 = Chain.transaction_token_transfer_type(Repo.preload(transaction, :token_trasfers)) + assert :erc721 = Chain.transaction_token_transfer_type(Repo.preload(transaction, :token_transfers)) end test "detects erc20 token transfer" do @@ -3980,7 +3980,7 @@ defmodule Explorer.ChainTest do amount: 8_025_000_000_000_000_000_000 ) - assert :erc20 = Chain.transaction_token_transfer_type(Repo.preload(transaction, :token_trasfers)) + assert :erc20 = Chain.transaction_token_transfer_type(Repo.preload(transaction, :token_transfers)) end end From 0ac8d0e10a331dc6caed54cf1b5b3658bf9763da Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 15:04:59 +0300 Subject: [PATCH 044/133] preload token --- apps/explorer/test/explorer/chain_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/explorer/test/explorer/chain_test.exs b/apps/explorer/test/explorer/chain_test.exs index 5e7472bae1..f789a883ea 100644 --- a/apps/explorer/test/explorer/chain_test.exs +++ b/apps/explorer/test/explorer/chain_test.exs @@ -3954,7 +3954,7 @@ defmodule Explorer.ChainTest do insert(:token_transfer, from_address: from_address, to_address: to_address, transaction: transaction) - assert :erc721 = Chain.transaction_token_transfer_type(Repo.preload(transaction, :token_transfers)) + assert :erc721 = Chain.transaction_token_transfer_type(Repo.preload(transaction, token_transfers: :token)) end test "detects erc20 token transfer" do @@ -3980,7 +3980,7 @@ defmodule Explorer.ChainTest do amount: 8_025_000_000_000_000_000_000 ) - assert :erc20 = Chain.transaction_token_transfer_type(Repo.preload(transaction, :token_transfers)) + assert :erc20 = Chain.transaction_token_transfer_type(Repo.preload(transaction, token_transfers: :token)) end end From b30ff3de25f9540e629bcee8751a10ee3797b4af Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 15:16:46 +0300 Subject: [PATCH 045/133] add CHANGELOG entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb0a5f0898..487e4d6266 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Current ### Features +- [#2190](https://github.com/poanetwork/blockscout/pull/2190) - show all token transfers - [#2109](https://github.com/poanetwork/blockscout/pull/2109) - use bigger updates instead of `Multi` transactions in BlocksTransactionsMismatch - [#2075](https://github.com/poanetwork/blockscout/pull/2075) - add blocks cache - [#2151](https://github.com/poanetwork/blockscout/pull/2151) - hide dropdown menu then other networks list is empty From 99d0a98fd37e0d5fd150c942072b6d60ed17c919 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 15:18:00 +0300 Subject: [PATCH 046/133] fix CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 487e4d6266..891517bd5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ ## Current +### Features + - [#2190](https://github.com/poanetwork/blockscout/pull/2190) - show all token transfers ### Features -- [#2190](https://github.com/poanetwork/blockscout/pull/2190) - show all token transfers - [#2109](https://github.com/poanetwork/blockscout/pull/2109) - use bigger updates instead of `Multi` transactions in BlocksTransactionsMismatch - [#2075](https://github.com/poanetwork/blockscout/pull/2075) - add blocks cache - [#2151](https://github.com/poanetwork/blockscout/pull/2151) - hide dropdown menu then other networks list is empty From b90f36a907c4b988a9d08cc3994f22d1ac3d07ed Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 15:19:15 +0300 Subject: [PATCH 047/133] add CHANGELOG entry --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb0a5f0898..19d6ed1b21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,6 @@ ## Current +### Features +- [#2182](https://github.com/poanetwork/blockscout/pull/2182) - add market history cache ### Features - [#2109](https://github.com/poanetwork/blockscout/pull/2109) - use bigger updates instead of `Multi` transactions in BlocksTransactionsMismatch From 5d3a2268b054dc0334843f8f7f4ffeffc5f981f2 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 15:37:34 +0300 Subject: [PATCH 048/133] fix tests --- .../test/explorer/market/market_history_cache_test.exs | 6 ++++++ apps/explorer/test/explorer/market/market_test.exs | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/apps/explorer/test/explorer/market/market_history_cache_test.exs b/apps/explorer/test/explorer/market/market_history_cache_test.exs index 77cf2b3c88..1421d75214 100644 --- a/apps/explorer/test/explorer/market/market_history_cache_test.exs +++ b/apps/explorer/test/explorer/market/market_history_cache_test.exs @@ -7,6 +7,12 @@ defmodule Explorer.Market.MarketHistoryCacheTest do setup do Supervisor.terminate_child(Explorer.Supervisor, {ConCache, MarketHistoryCache.cache_name()}) Supervisor.restart_child(Explorer.Supervisor, {ConCache, MarketHistoryCache.cache_name()}) + + on_exit(fn -> + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + end) + :ok end diff --git a/apps/explorer/test/explorer/market/market_test.exs b/apps/explorer/test/explorer/market/market_test.exs index b639e2f1cf..1dd03067ec 100644 --- a/apps/explorer/test/explorer/market/market_test.exs +++ b/apps/explorer/test/explorer/market/market_test.exs @@ -9,6 +9,11 @@ defmodule Explorer.MarketTest do Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + on_exit(fn -> + Supervisor.terminate_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + Supervisor.restart_child(Explorer.Supervisor, {ConCache, Explorer.Chain.BlocksCache.cache_name()}) + end) + :ok end From b3b371411c500c54585c5b4c6ffb72b2c2512095 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 15:48:15 +0300 Subject: [PATCH 049/133] fix test --- apps/explorer/test/explorer/market/market_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/explorer/test/explorer/market/market_test.exs b/apps/explorer/test/explorer/market/market_test.exs index 1dd03067ec..7e399ea4cd 100644 --- a/apps/explorer/test/explorer/market/market_test.exs +++ b/apps/explorer/test/explorer/market/market_test.exs @@ -21,7 +21,7 @@ defmodule Explorer.MarketTest do today = Date.utc_today() records = - for i <- 0..5 do + for i <- 0..29 do %{ date: Timex.shift(today, days: i * -1), closing_price: Decimal.new(1), @@ -32,7 +32,7 @@ defmodule Explorer.MarketTest do Market.bulk_insert_history(records) history = Market.fetch_recent_history() - assert length(history) == 6 + assert length(history) == 30 assert Enum.at(history, 0).date == Enum.at(records, 0).date end From 913147185cb8572967943ec92511be8d5b5c14e2 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 15:54:48 +0300 Subject: [PATCH 050/133] allow to configure token metadata update interval --- apps/indexer/config/config.exs | 2 +- apps/indexer/lib/indexer/fetcher/token_updater.ex | 2 +- apps/indexer/lib/indexer/supervisor.ex | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/indexer/config/config.exs b/apps/indexer/config/config.exs index 04c2edf7c8..7c17ee1952 100644 --- a/apps/indexer/config/config.exs +++ b/apps/indexer/config/config.exs @@ -31,7 +31,7 @@ block_transformer = config :indexer, block_transformer: block_transformer, ecto_repos: [Explorer.Repo], - metadata_updater_days_interval: 2, + metadata_updater_hours_interval: String.to_integer(System.get_env("TOKEN_METADATA_UPDATE_INTERVAL") || "#{2 * 24}"), # bytes memory_limit: 1 <<< 30, first_block: System.get_env("FIRST_BLOCK") || "0" diff --git a/apps/indexer/lib/indexer/fetcher/token_updater.ex b/apps/indexer/lib/indexer/fetcher/token_updater.ex index a155ed4be2..ddd055c9d2 100644 --- a/apps/indexer/lib/indexer/fetcher/token_updater.ex +++ b/apps/indexer/lib/indexer/fetcher/token_updater.ex @@ -29,7 +29,7 @@ defmodule Indexer.Fetcher.TokenUpdater do |> Enum.reverse() |> update_metadata() - Process.send_after(self(), :update_tokens, :timer.hours(state.update_interval) * 24) + Process.send_after(self(), :update_tokens, :timer.hours(state.update_interval)) {:noreply, state} end diff --git a/apps/indexer/lib/indexer/supervisor.ex b/apps/indexer/lib/indexer/supervisor.ex index b2c3d19664..3b8a558d07 100644 --- a/apps/indexer/lib/indexer/supervisor.ex +++ b/apps/indexer/lib/indexer/supervisor.ex @@ -72,7 +72,7 @@ defmodule Indexer.Supervisor do subscribe_named_arguments: subscribe_named_arguments } = named_arguments - metadata_updater_inverval = Application.get_env(:indexer, :metadata_updater_days_interval) + metadata_updater_inverval = Application.get_env(:indexer, :metadata_updater_hours_interval) block_fetcher = named_arguments From 688e061f9142e47214784136630a2b19013f8455 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 18 Jun 2019 16:00:39 +0300 Subject: [PATCH 051/133] add CHANGELOG entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb0a5f0898..51912c87ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - [#2109](https://github.com/poanetwork/blockscout/pull/2109) - use bigger updates instead of `Multi` transactions in BlocksTransactionsMismatch - [#2075](https://github.com/poanetwork/blockscout/pull/2075) - add blocks cache - [#2151](https://github.com/poanetwork/blockscout/pull/2151) - hide dropdown menu then other networks list is empty +- [#2191](https://github.com/poanetwork/blockscout/pull/2191) - allow to configure token metadata update interval ### Fixes - [#2179](https://github.com/poanetwork/blockscout/pull/2179) - fix docker build error From 1385688841303e49560cad561ab243d972f3739f Mon Sep 17 00:00:00 2001 From: Andrew Gross Date: Tue, 18 Jun 2019 13:42:48 -0600 Subject: [PATCH 052/133] Additional supported chains and wobserver mention --- docs/metrics.md | 4 ++++ docs/projects.md | 2 ++ 2 files changed, 6 insertions(+) diff --git a/docs/metrics.md b/docs/metrics.md index de8a77bb00..92823b0805 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -3,6 +3,8 @@ ## Metrics BlockScout is setup to export [Prometheus](https://prometheus.io/) metrics at `/metrics`. + +[Wobserver](https://github.com/shinyscorpion/) is available for metrics display at `/wobserver`. For example, `https://blockscout.com/eth/mainnet/wobserver/` ### Prometheus @@ -12,6 +14,8 @@ BlockScout is setup to export [Prometheus](https://prometheus.io/) metrics at `/ ### Grafana +Grafana dashboards may also be used for metrics display. + 1. Install grafana: `brew install grafana` 2. Install Pie Chart panel plugin: `grafana-cli plugins install grafana-piechart-panel` 3. Start grafana: `brew services start grafana` diff --git a/docs/projects.md b/docs/projects.md index ecb9a03308..49ace8c26b 100644 --- a/docs/projects.md +++ b/docs/projects.md @@ -13,6 +13,8 @@ | [xDai Chain](https://blockscout.com/poa/dai) | | [SafeChain](https://explorer.safechain.io) | | | | [SpringChain](https://explorer.springrole.com/) | | | | [Kotti Testnet](https://kottiexplorer.ethernode.io/) | +| | | [Loom](http://plasma-blockexplorer.dappchains.com/) | +| | | [Tenda](https://tenda.network) | Current BlockScout versions for hosted projects are available [on the forum](https://forum.poa.network/t/deployed-instances-on-blockscout-com/1938). \ No newline at end of file From c66ec8018c6973752d96b074760c3af6065d663e Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Wed, 19 Jun 2019 16:37:41 +0300 Subject: [PATCH 053/133] search network input functionality, add to favorites functionality --- .../css/components/_network-selector.scss | 3 +- apps/block_scout_web/assets/js/app.js | 2 + .../assets/js/pages/favorites.js | 41 +++++++++++++++++++ .../assets/js/pages/network-search.js | 21 ++++++++++ .../layout/_network_selector.html.eex | 6 +-- .../layout/_network_selector_item.html.eex | 4 +- 6 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 apps/block_scout_web/assets/js/pages/favorites.js create mode 100644 apps/block_scout_web/assets/js/pages/network-search.js diff --git a/apps/block_scout_web/assets/css/components/_network-selector.scss b/apps/block_scout_web/assets/css/components/_network-selector.scss index 4b1068fab4..3086639050 100644 --- a/apps/block_scout_web/assets/css/components/_network-selector.scss +++ b/apps/block_scout_web/assets/css/components/_network-selector.scss @@ -41,7 +41,7 @@ $network-selector-item-icon-dimensions: 30px !default; margin-left: auto; max-width: 398px; min-width: 0; - padding: 28px 0 35px; + padding-top: 28px; position: relative; transition: right 0.25s ease-out; } @@ -266,7 +266,6 @@ $network-selector-item-icon-dimensions: 30px !default; .network-selector-networks-container { flex-grow: 1; flex-shrink: 1; - margin: 0 0 30px; min-height: 100px; overflow: auto; padding: 0 $network-selector-horizontal-padding; diff --git a/apps/block_scout_web/assets/js/app.js b/apps/block_scout_web/assets/js/app.js index 25745125e2..fe0fd5250d 100644 --- a/apps/block_scout_web/assets/js/app.js +++ b/apps/block_scout_web/assets/js/app.js @@ -31,6 +31,8 @@ import './pages/chain' import './pages/pending_transactions' import './pages/transaction' import './pages/transactions' +import './pages/favorites' +import './pages/network-search' import './pages/admin/tasks.js' diff --git a/apps/block_scout_web/assets/js/pages/favorites.js b/apps/block_scout_web/assets/js/pages/favorites.js new file mode 100644 index 0000000000..56cbe04d4f --- /dev/null +++ b/apps/block_scout_web/assets/js/pages/favorites.js @@ -0,0 +1,41 @@ +import $ from 'jquery' + +var favoritesQuantity = 0, + favoritesContainer = $(".js-favorites-tab"), + favoritesNetworksUrls = []; + +$(document).on("change", ".network-selector-item-favorite input[type='checkbox']", function () { + + var networkUrl = $(this).attr("data-url"), + thisStatus = $(this).is(":checked"), + parent = $(".network-selector-item[data-url='" + networkUrl +"'").clone(), + workWith = $(".network-selector-item[data-url='" + networkUrl +"'"); + + // Add new checkbox status to same network in another tabs + $(".network-selector-item-favorite input[data-url='" + networkUrl +"']").prop("checked", thisStatus); + + // Push or remove favorite networks to array + var found = $.inArray(networkUrl, favoritesNetworksUrls); + if (found < 0 && thisStatus == true) { + favoritesNetworksUrls.push(networkUrl); + } else { + var index = favoritesNetworksUrls.indexOf(networkUrl); + if(index!=-1){ + favoritesNetworksUrls.splice(index, 1); + } + } + console.log(favoritesNetworksUrls); + // Append or remove item from 'favorites' tab + + if (thisStatus == true) { + favoritesContainer.append(parent[0]); + $(".js-favorites-tab .network-selector-tab-content-empty").hide(); + } else { + var willRemoved = favoritesContainer.find(workWith); + willRemoved.remove(); + if (favoritesNetworksUrls.length == 0) { + $(".js-favorites-tab .network-selector-tab-content-empty").show(); + } + } + +}); \ No newline at end of file diff --git a/apps/block_scout_web/assets/js/pages/network-search.js b/apps/block_scout_web/assets/js/pages/network-search.js new file mode 100644 index 0000000000..e508bbe91b --- /dev/null +++ b/apps/block_scout_web/assets/js/pages/network-search.js @@ -0,0 +1,21 @@ +import $ from 'jquery' + +var networkSearchInput = $(".network-selector-search-input"), + networkSearchInputVal = ""; + +$(networkSearchInput).on("input", function() { + networkSearchInputVal = $(this).val(); + + $.expr[":"].Contains = $.expr.createPseudo(function(arg) { + return function( elem ) { + return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; + }; + }); + + if (networkSearchInputVal == "") { + $(".network-selector-item").show(); + } else { + $(".network-selector-item").hide(); + $(".network-selector-item:Contains('" + networkSearchInputVal + "')").show(); + } +}); \ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex index eadf1b4503..044d8790bc 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex @@ -43,13 +43,13 @@ <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: "Testnet" %> <% end %>

-
+
No content.
-
+
\ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex index a798178455..11f3c83dfe 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex @@ -1,4 +1,4 @@ -
+
diff --git a/apps/block_scout_web/lib/block_scout_web/views/chain_view.ex b/apps/block_scout_web/lib/block_scout_web/views/chain_view.ex index 7f49d2d239..506d6ff3c8 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/chain_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/chain_view.ex @@ -2,4 +2,12 @@ defmodule BlockScoutWeb.ChainView do use BlockScoutWeb, :view alias BlockScoutWeb.LayoutView + + defp market_cap(:standard, exchange_rate) do + exchange_rate.market_cap_usd + end + + defp market_cap(module, exchange_rate) do + module.market_cap(exchange_rate) + end end diff --git a/apps/explorer/config/config.exs b/apps/explorer/config/config.exs index 9a7d9f4296..9a601e6c68 100644 --- a/apps/explorer/config/config.exs +++ b/apps/explorer/config/config.exs @@ -71,8 +71,15 @@ else config :explorer, Explorer.Staking.EpochCounter, enabled: false end -if System.get_env("SUPPLY_MODULE") == "TokenBridge" do - config :explorer, supply: Explorer.Chain.Supply.TokenBridge +case System.get_env("SUPPLY_MODULE") do + "TokenBridge" -> + config :explorer, supply: Explorer.Chain.Supply.TokenBridge + + "rsk" -> + config :explorer, supply: Explorer.Chain.Supply.RSK + + _ -> + :ok end if System.get_env("SOURCE_MODULE") == "TransactionAndLog" do diff --git a/apps/explorer/lib/explorer/chain/supply/rsk.ex b/apps/explorer/lib/explorer/chain/supply/rsk.ex new file mode 100644 index 0000000000..09a02252a2 --- /dev/null +++ b/apps/explorer/lib/explorer/chain/supply/rsk.ex @@ -0,0 +1,103 @@ +defmodule Explorer.Chain.Supply.RSK do + @moduledoc """ + Defines the supply API for calculating supply for coins from RSK. + """ + + use Explorer.Chain.Supply + + import Ecto.Query, only: [from: 2] + + alias Explorer.Chain.Address.CoinBalance + alias Explorer.Chain.{Block, Wei} + alias Explorer.ExchangeRates.Token + alias Explorer.{Market, Repo} + + def market_cap(exchange_rate) do + circulating() * exchange_rate.usd_value + end + + @doc "Equivalent to getting the circulating value " + def supply_for_days(days) do + now = Timex.now() + + balances_query = + from(balance in CoinBalance, + join: block in Block, + on: block.number == balance.block_number, + where: block.consensus == true, + where: balance.address_hash == ^"0x0000000000000000000000000000000001000006", + where: block.timestamp > ^Timex.shift(now, days: -days), + distinct: fragment("date_trunc('day', ?)", block.timestamp), + select: {block.timestamp, balance.value} + ) + + balance_before_query = + from(balance in CoinBalance, + join: block in Block, + on: block.number == balance.block_number, + where: block.consensus == true, + where: balance.address_hash == ^"0x0000000000000000000000000000000001000006", + where: block.timestamp <= ^Timex.shift(Timex.now(), days: -days), + order_by: [desc: block.timestamp], + limit: 1, + select: balance.value + ) + + by_day = + balances_query + |> Repo.all() + |> Enum.into(%{}, fn {timestamp, value} -> + {Timex.to_date(timestamp), value} + end) + + starting = Repo.one(balance_before_query) || wei!(0) + + result = + -days..0 + |> Enum.reduce({%{}, starting.value}, fn i, {days, last} -> + date = + now + |> Timex.shift(days: i) + |> Timex.to_date() + + case Map.get(by_day, date) do + nil -> + {Map.put(days, date, last), last} + + value -> + {Map.put(days, date, value.value), value.value} + end + end) + |> elem(0) + + {:ok, result} + end + + def circulating do + query = + from(balance in CoinBalance, + join: block in Block, + on: block.number == balance.block_number, + where: block.consensus == true, + where: balance.address_hash == ^"0x0000000000000000000000000000000001000006", + order_by: [desc: block.timestamp], + limit: 1, + select: balance.value + ) + + Repo.one(query) || wei!(0) + end + + defp wei!(value) do + {:ok, wei} = Wei.cast(value) + wei + end + + def total do + 21_000_000 + end + + def exchange_rate do + Market.get_exchange_rate(Explorer.coin()) || Token.null() + end +end diff --git a/apps/explorer/test/explorer/chain/supply/rsk_test.exs b/apps/explorer/test/explorer/chain/supply/rsk_test.exs new file mode 100644 index 0000000000..40aa0a831b --- /dev/null +++ b/apps/explorer/test/explorer/chain/supply/rsk_test.exs @@ -0,0 +1,139 @@ +defmodule Explorer.Chain.Supply.RSKTest do + use Explorer.DataCase + + alias Explorer.Chain.Supply.RSK + alias Explorer.Chain.Wei + + @coin_address "0x0000000000000000000000000000000001000006" + + defp wei!(value) do + {:ok, wei} = Wei.cast(value) + wei + end + + test "total is 21_000_000" do + assert RSK.total() == 21_000_000 + end + + describe "circulating/0" do + test "with no balance" do + assert RSK.circulating() == wei!(0) + end + + test "with a balance" do + address = insert(:address, hash: @coin_address) + insert(:block, number: 0) + + insert(:fetched_balance, value: 10, address_hash: address.hash, block_number: 0) + + assert RSK.circulating() == wei!(10) + end + end + + defp date(now, shift \\ []) do + now + |> Timex.shift(shift) + |> Timex.to_date() + end + + defp dec(number) do + Decimal.new(number) + end + + describe "supply_for_days/1" do + test "when there is no balance" do + now = Timex.now() + + assert RSK.supply_for_days(2) == + {:ok, + %{ + date(now, days: -2) => dec(0), + date(now, days: -1) => dec(0), + date(now) => dec(0) + }} + end + + test "when there is a single balance before the days, that balance is used" do + address = insert(:address, hash: @coin_address) + now = Timex.now() + + insert(:block, number: 0, timestamp: Timex.shift(now, days: -10)) + + insert(:fetched_balance, value: 10, address_hash: address.hash, block_number: 0) + + assert RSK.supply_for_days(2) == + {:ok, + %{ + date(now, days: -2) => dec(10), + date(now, days: -1) => dec(10), + date(now) => dec(10) + }} + end + + test "when there is a balance for one of the days, days after it use that balance" do + address = insert(:address, hash: @coin_address) + now = Timex.now() + + insert(:block, number: 0, timestamp: Timex.shift(now, days: -10)) + insert(:block, number: 1, timestamp: Timex.shift(now, days: -1)) + + insert(:fetched_balance, value: 10, address_hash: address.hash, block_number: 0) + + insert(:fetched_balance, value: 20, address_hash: address.hash, block_number: 1) + + assert RSK.supply_for_days(2) == + {:ok, + %{ + date(now, days: -2) => dec(10), + date(now, days: -1) => dec(20), + date(now) => dec(20) + }} + end + + test "when there is a balance for the first day, that balance is used" do + address = insert(:address, hash: @coin_address) + now = Timex.now() + + insert(:block, number: 0, timestamp: Timex.shift(now, days: -10)) + insert(:block, number: 1, timestamp: Timex.shift(now, days: -2)) + insert(:block, number: 2, timestamp: Timex.shift(now, days: -1)) + + insert(:fetched_balance, value: 5, address_hash: address.hash, block_number: 0) + + insert(:fetched_balance, value: 10, address_hash: address.hash, block_number: 1) + + insert(:fetched_balance, value: 20, address_hash: address.hash, block_number: 2) + + assert RSK.supply_for_days(2) == + {:ok, + %{ + date(now, days: -2) => dec(10), + date(now, days: -1) => dec(20), + date(now) => dec(20) + }} + end + + test "when there is a balance for all days, they are each used correctly" do + address = insert(:address, hash: @coin_address) + now = Timex.now() + + insert(:block, number: 0, timestamp: Timex.shift(now, days: -10)) + insert(:block, number: 1, timestamp: Timex.shift(now, days: -2)) + insert(:block, number: 2, timestamp: Timex.shift(now, days: -1)) + insert(:block, number: 3, timestamp: now) + + insert(:fetched_balance, value: 5, address_hash: address.hash, block_number: 0) + insert(:fetched_balance, value: 10, address_hash: address.hash, block_number: 1) + insert(:fetched_balance, value: 20, address_hash: address.hash, block_number: 2) + insert(:fetched_balance, value: 30, address_hash: address.hash, block_number: 3) + + assert RSK.supply_for_days(2) == + {:ok, + %{ + date(now, days: -2) => dec(10), + date(now, days: -1) => dec(20), + date(now) => dec(30) + }} + end + end +end From 972cc159d6c352dbe2ef816074e26cc503473e0a Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 20 Jun 2019 10:19:57 +0300 Subject: [PATCH 057/133] eslint errors fix --- .../assets/js/pages/favorites.js | 96 +++++++++---------- .../assets/js/pages/network-search.js | 34 +++---- 2 files changed, 64 insertions(+), 66 deletions(-) diff --git a/apps/block_scout_web/assets/js/pages/favorites.js b/apps/block_scout_web/assets/js/pages/favorites.js index 1b48e2049b..f1cb881c16 100644 --- a/apps/block_scout_web/assets/js/pages/favorites.js +++ b/apps/block_scout_web/assets/js/pages/favorites.js @@ -1,59 +1,57 @@ import $ from 'jquery' var favoritesQuantity = 0, - favoritesContainer = $(".js-favorites-tab"), - favoritesNetworksUrls = []; + favoritesContainer = $('.js-favorites-tab'), + favoritesNetworksUrls = [] -if (localStorage.getItem("favoritesNetworksUrls") === null) { - localStorage.setItem("favoritesNetworksUrls", JSON.stringify(favoritesNetworksUrls)); +if (localStorage.getItem('favoritesNetworksUrls') === null) { + localStorage.setItem('favoritesNetworksUrls', JSON.stringify(favoritesNetworksUrls)) } else { - favoritesNetworksUrls = JSON.parse(localStorage.getItem("favoritesNetworksUrls")); + favoritesNetworksUrls = JSON.parse(localStorage.getItem('favoritesNetworksUrls')) } -$(document).on("change", ".network-selector-item-favorite input[type='checkbox']", function () { - - var networkUrl = $(this).attr("data-url"), - thisStatus = $(this).is(":checked"), - parent = $(".network-selector-item[data-url='" + networkUrl +"'").clone(), - workWith = $(".network-selector-item[data-url='" + networkUrl +"'"); - - // Add new checkbox status to same network in another tabs - $(".network-selector-item-favorite input[data-url='" + networkUrl +"']").prop("checked", thisStatus); - - // Push or remove favorite networks to array - var found = $.inArray(networkUrl, favoritesNetworksUrls); - if (found < 0 && thisStatus == true) { - favoritesNetworksUrls.push(networkUrl); - } else { - var index = favoritesNetworksUrls.indexOf(networkUrl); - if(index!=-1){ - favoritesNetworksUrls.splice(index, 1); - } - } - - // Append or remove item from 'favorites' tab - if (thisStatus == true) { - favoritesContainer.append(parent[0]); - $(".js-favorites-tab .network-selector-tab-content-empty").hide(); - } else { - var willRemoved = favoritesContainer.find(workWith); - willRemoved.remove(); - if (favoritesNetworksUrls.length == 0) { - $(".js-favorites-tab .network-selector-tab-content-empty").show(); - } - } - - // Push to localstorage - var willBePushed = JSON.stringify(favoritesNetworksUrls) - localStorage.setItem("favoritesNetworksUrls", willBePushed); - -}); +$(document).on('change', ".network-selector-item-favorite input[type='checkbox']", function () { + var networkUrl = $(this).attr('data-url'), + thisStatus = $(this).is(':checked'), + parent = $(".network-selector-item[data-url='" + networkUrl + "'").clone(), + workWith = $(".network-selector-item[data-url='" + networkUrl + "'") + + // Add new checkbox status to same network in another tabs + $(".network-selector-item-favorite input[data-url='" + networkUrl + "']").prop('checked', thisStatus) + + // Push or remove favorite networks to array + var found = $.inArray(networkUrl, favoritesNetworksUrls) + if (found < 0 && thisStatus == true) { + favoritesNetworksUrls.push(networkUrl) + } else { + var index = favoritesNetworksUrls.indexOf(networkUrl) + if (index != -1) { + favoritesNetworksUrls.splice(index, 1) + } + } + + // Append or remove item from 'favorites' tab + if (thisStatus == true) { + favoritesContainer.append(parent[0]) + $('.js-favorites-tab .network-selector-tab-content-empty').hide() + } else { + var willRemoved = favoritesContainer.find(workWith) + willRemoved.remove() + if (favoritesNetworksUrls.length == 0) { + $('.js-favorites-tab .network-selector-tab-content-empty').show() + } + } + + // Push to localstorage + var willBePushed = JSON.stringify(favoritesNetworksUrls) + localStorage.setItem('favoritesNetworksUrls', willBePushed) +}) if (favoritesNetworksUrls.length > 0) { - $(".js-favorites-tab .network-selector-tab-content-empty").hide(); - for (var i = 0; i < favoritesNetworksUrls.length + 1; i++) { - $(".network-selector-item[data-url='" + favoritesNetworksUrls[i] +"'").find("input").prop("checked", true); - var parent = $(".network-selector-item[data-url='" + favoritesNetworksUrls[i] +"'").clone(); - favoritesContainer.append(parent[0]); - } + $('.js-favorites-tab .network-selector-tab-content-empty').hide() + for (var i = 0; i < favoritesNetworksUrls.length + 1; i++) { + $(".network-selector-item[data-url='" + favoritesNetworksUrls[i] + "'").find('input').prop('checked', true) + var parent = $(".network-selector-item[data-url='" + favoritesNetworksUrls[i] + "'").clone() + favoritesContainer.append(parent[0]) + } } diff --git a/apps/block_scout_web/assets/js/pages/network-search.js b/apps/block_scout_web/assets/js/pages/network-search.js index e508bbe91b..d33d8d2aaf 100644 --- a/apps/block_scout_web/assets/js/pages/network-search.js +++ b/apps/block_scout_web/assets/js/pages/network-search.js @@ -1,21 +1,21 @@ import $ from 'jquery' -var networkSearchInput = $(".network-selector-search-input"), - networkSearchInputVal = ""; +var networkSearchInput = $('.network-selector-search-input'), + networkSearchInputVal = '' -$(networkSearchInput).on("input", function() { - networkSearchInputVal = $(this).val(); +$(networkSearchInput).on('input', function () { + networkSearchInputVal = $(this).val() - $.expr[":"].Contains = $.expr.createPseudo(function(arg) { - return function( elem ) { - return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0; - }; - }); - - if (networkSearchInputVal == "") { - $(".network-selector-item").show(); - } else { - $(".network-selector-item").hide(); - $(".network-selector-item:Contains('" + networkSearchInputVal + "')").show(); - } -}); \ No newline at end of file + $.expr[':'].Contains = $.expr.createPseudo(function (arg) { + return function (elem) { + return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0 + } + }) + + if (networkSearchInputVal == '') { + $('.network-selector-item').show() + } else { + $('.network-selector-item').hide() + $(".network-selector-item:Contains('" + networkSearchInputVal + "')").show() + } +}) From 3c7e83be415b96252a265b81d5a9153026ea082e Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 20 Jun 2019 10:41:08 +0300 Subject: [PATCH 058/133] eslint fixes --- apps/block_scout_web/assets/js/pages/favorites.js | 13 ++++++------- .../assets/js/pages/network-search.js | 8 ++++---- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/apps/block_scout_web/assets/js/pages/favorites.js b/apps/block_scout_web/assets/js/pages/favorites.js index f1cb881c16..8727ce9ddc 100644 --- a/apps/block_scout_web/assets/js/pages/favorites.js +++ b/apps/block_scout_web/assets/js/pages/favorites.js @@ -1,8 +1,7 @@ import $ from 'jquery' -var favoritesQuantity = 0, - favoritesContainer = $('.js-favorites-tab'), - favoritesNetworksUrls = [] +var favoritesContainer = $('.js-favorites-tab'); +var favoritesNetworksUrls = []; if (localStorage.getItem('favoritesNetworksUrls') === null) { localStorage.setItem('favoritesNetworksUrls', JSON.stringify(favoritesNetworksUrls)) @@ -21,23 +20,23 @@ $(document).on('change', ".network-selector-item-favorite input[type='checkbox'] // Push or remove favorite networks to array var found = $.inArray(networkUrl, favoritesNetworksUrls) - if (found < 0 && thisStatus == true) { + if (found < 0 && thisStatus === true) { favoritesNetworksUrls.push(networkUrl) } else { var index = favoritesNetworksUrls.indexOf(networkUrl) - if (index != -1) { + if (index !== -1) { favoritesNetworksUrls.splice(index, 1) } } // Append or remove item from 'favorites' tab - if (thisStatus == true) { + if (thisStatus === true) { favoritesContainer.append(parent[0]) $('.js-favorites-tab .network-selector-tab-content-empty').hide() } else { var willRemoved = favoritesContainer.find(workWith) willRemoved.remove() - if (favoritesNetworksUrls.length == 0) { + if (favoritesNetworksUrls.length === 0) { $('.js-favorites-tab .network-selector-tab-content-empty').show() } } diff --git a/apps/block_scout_web/assets/js/pages/network-search.js b/apps/block_scout_web/assets/js/pages/network-search.js index d33d8d2aaf..41f41986f2 100644 --- a/apps/block_scout_web/assets/js/pages/network-search.js +++ b/apps/block_scout_web/assets/js/pages/network-search.js @@ -7,12 +7,12 @@ $(networkSearchInput).on('input', function () { networkSearchInputVal = $(this).val() $.expr[':'].Contains = $.expr.createPseudo(function (arg) { - return function (elem) { - return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0 - } + return function (elem) { + return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0 + } }) - if (networkSearchInputVal == '') { + if (networkSearchInputVal === '') { $('.network-selector-item').show() } else { $('.network-selector-item').hide() From ae27908e2959aa85051ca74c36b70a514075d747 Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 20 Jun 2019 11:00:50 +0300 Subject: [PATCH 059/133] new icons for xdai, goerli, ropsten, fix for img path --- .../assets/js/pages/favorites.js | 12 ++++++------ .../assets/js/pages/network-search.js | 10 +++++----- .../network-selector-icons/goerli-testnet.png | Bin 4936 -> 2951 bytes .../ropsten-testnet.png | Bin 1736 -> 2409 bytes .../network-selector-icons/xdai-chain.png | Bin 7638 -> 2810 bytes .../layout/_network_selector.html.eex | 3 --- .../layout/_network_selector_item.html.eex | 2 +- apps/block_scout_web/priv/gettext/default.pot | 5 ----- 8 files changed, 12 insertions(+), 20 deletions(-) mode change 100755 => 100644 apps/block_scout_web/assets/static/images/network-selector-icons/goerli-testnet.png diff --git a/apps/block_scout_web/assets/js/pages/favorites.js b/apps/block_scout_web/assets/js/pages/favorites.js index 8727ce9ddc..38d4da45ee 100644 --- a/apps/block_scout_web/assets/js/pages/favorites.js +++ b/apps/block_scout_web/assets/js/pages/favorites.js @@ -1,7 +1,7 @@ import $ from 'jquery' -var favoritesContainer = $('.js-favorites-tab'); -var favoritesNetworksUrls = []; +var favoritesContainer = $('.js-favorites-tab') +var favoritesNetworksUrls = [] if (localStorage.getItem('favoritesNetworksUrls') === null) { localStorage.setItem('favoritesNetworksUrls', JSON.stringify(favoritesNetworksUrls)) @@ -10,10 +10,10 @@ if (localStorage.getItem('favoritesNetworksUrls') === null) { } $(document).on('change', ".network-selector-item-favorite input[type='checkbox']", function () { - var networkUrl = $(this).attr('data-url'), - thisStatus = $(this).is(':checked'), - parent = $(".network-selector-item[data-url='" + networkUrl + "'").clone(), - workWith = $(".network-selector-item[data-url='" + networkUrl + "'") + var networkUrl = $(this).attr('data-url') + var thisStatus = $(this).is(':checked'); + var parent = $(".network-selector-item[data-url='" + networkUrl + "'").clone(); + var workWith = $(".network-selector-item[data-url='" + networkUrl + "'"); // Add new checkbox status to same network in another tabs $(".network-selector-item-favorite input[data-url='" + networkUrl + "']").prop('checked', thisStatus) diff --git a/apps/block_scout_web/assets/js/pages/network-search.js b/apps/block_scout_web/assets/js/pages/network-search.js index 41f41986f2..b73ea635b9 100644 --- a/apps/block_scout_web/assets/js/pages/network-search.js +++ b/apps/block_scout_web/assets/js/pages/network-search.js @@ -1,15 +1,15 @@ import $ from 'jquery' -var networkSearchInput = $('.network-selector-search-input'), - networkSearchInputVal = '' +var networkSearchInput = $('.network-selector-search-input') +var networkSearchInputVal = "" $(networkSearchInput).on('input', function () { networkSearchInputVal = $(this).val() $.expr[':'].Contains = $.expr.createPseudo(function (arg) { - return function (elem) { - return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0 - } + return function (elem) { + return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0 + } }) if (networkSearchInputVal === '') { diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/goerli-testnet.png b/apps/block_scout_web/assets/static/images/network-selector-icons/goerli-testnet.png old mode 100755 new mode 100644 index 800590fee5a6b20f365d726451935eebdff86a99..7a3ac4ae48681ce23628e25c247b0ed70dc23cac GIT binary patch literal 2951 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 literal 4936 zcmbVQ2{_bi+m|gd)<#W{rZFePn0?HQ-B3*;Sx!TtF*BIV*34KdTb6K0lxnn)LzWPV zqDYdYNF7U&rG-SY)sV_JTD<3dzteZU*EiSopZ~M`e!u6w@8^E*>w5kPPL5lY71t_C zNl7V_x7s>O-X4pOg0$qn>VBu2iZE zOr>*u7{(!No&+r=Wo8+|qtXHxLa-0RkI6BIysxQ)fSGi2$S$k{!huI(_%pYL@fj{* zj;^$@02+Y~v9ti2g%BkIY=)2u4q>x60%C|c-7fKUc^V_;Y^|gr(`FQ1FN(K7%Uc@?E)H*3Vsb`l$jYkrsCq3)Xj_ z(wLk@X@f z6D732LnTQ^rwXb64cNhfNahHHR1S?nwl#-Hj5202=|n6Fg+-g-Q7{yWMu%aj7&;8^ zOJKmzcr2ZP#8GiLtj{;QBz#*gEpRc0KlyYCAAv_Au_kB)hJZFfBJBtS1QKnBw>7ag zv9?B$Ncf-J9ek$bq)}P_KMgvK=*#7^sgkr{vZ;OyIFI880WWP2k;G+j`I5j%qKp3f zIGIFp;&XkOEXjnxd5aC0Y)8T&2{;@KWsF=rB9bsHI>z8LgBbM9d@dXOEp>^^e+U)A zWHZtZjYIv~)$d&TFT;eg`z05?WXx8kK$2gfKPrF=WB-p9iz%^9ax#ci+Tv-JI7F4$ z4EZtmPX_;Yd;489*qp1z6t;G``g^#3fE7#q#7YxPFN#N{*J%$Sy5i_^aEn!{=+g>blv9 zDDh>Wm(eOs_j|zY4G3WabiXj9tEBd8cE!r!y2)a0WzdWh@I>3N_sYbVA$A$$v|BrS z%6B$8Z})@`CFvZk`hBHt`_`~PIlFlJRj>4YI}_jfvn@;nzo`LAG?SF08iuDoyn8eM zg&W=uRI>Q`;iCMfPl`oPqf4^!g{L;Ps)IJa73JxkI{vUbFKoWgv#dM){Fl$GgT}N^ zFx-KS$?Z-+^(;l(v$;r7&WhF?(W$&lDTQ+k|INTcT=X;js5DoHlcUuv3eGMq8Is#m z#f|uI$IvTrb}GkPTlbmPshR+w`G?(kkxpPFxWb)k=b^)-Bdd*{@Q%Z@Xa zrt&ruBL6%_Ny(pZ@7nuQ7Cnf@^5ZR=S!ZIrsPj#+?tGBy zPLQ+uHrXg$=qh%i+4O_plv=a)_71_J@n;Vs!MOIVuV$Ld*4=!LEt7w{TmMA=*OCKm z4u3RM4Dw>~3PzfhOoKV`CqITgLRgSI3|ZHrb;! z%RY?>`XeUqC2Vu>v>a2_(@Xg?OlNMUshUGp%q@%`P=6RU+n}1fus?%wJ$YHcg;PiL zICay-bF7pZXA8&m-DnZ{V%PcD8zAkq9uyD4b@ z2XdJSZZW8+9=xOWr@_+jsnHxz!d;ISMhY9r3DF1~(w!JGQG1}zFho>P?p?Xt*{ZE}degp1VeLd%%q~i_%tZ-43_JelfBK7b?du5Nt}5 zLvGgcug{3?-A?Z4?Ck43b0khiZH3(gYvXcd`znXhes4+(91g=~C?7VIS6&Y|c|rdX zZ~%wK!u0on$7lv|IiQ|Srf7 ZJgnlqM!2K3_CJuxjs_tzfLZFp3A6tK?Z#J1Rj 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 sk&gT&Bx>-m7u~tE= z)QpPAC}k-18bv$Q4g&=v9;1|sFe(-6Q3s4#JU|5xz)reBj{Yd!`F6i!-sgF*=bPOj zi;s48@^E4>7|xOyk({1WZ13zD^ta)+o2%(*5hYHh5^*(UKuL@dp~BNKK%zx6Fgb>* z@;9_$p$x{%Wg0~?l`M@DC~++dwb`(YT7pJ17@=WC0##;X6p)T(Xmmnwpt%JEG%6vO z6fA|ML?o7}i76nl#DaK*vLIWDsKBrlK&Vkb6KF9C1&rDponBxRf@8b_dTl#~Kw!*- z$`*njf=ZUkfJmIgfM6DnsbmKQ10e{D&Ep0kNFcz0*?b7*Lu@XS%@YK{0uBcle?ZzB zsZtB%qNs6S^iBw7QWPP8AcMicGH_WqnE|m81c6`<#NjY$3#L9_N1;ZhPVYCtAj0%Y zQbSN0TnE?~(R4hQ5`uK3A5zc~le9Yhc$w&eK}M8-*euwV(uAQ@`v0a{?WDDyl4Dcx z{wJ|skxyWd9Mj{uq>^r&+Rx^S5JZv~O5vme$8#pCD9gktT%U;(KxCw?Y6!4QiYhfa z+hM>MN-7mdbb1QaDKUvi2+}+(jYcIvg5aPKID{X9z`<;`7(rk-YGqJlFegF`M?|fR zn!t*1Wv&*}Q4?6z6c(8lYZHW)pgoH)Qj>?NqDWi|j3qA6OdktxTE20tYWi40ro}>Z zFp#ai|7!Qd5v?KHa#FnXW>Wr`j@CR$i@QAzTtnX(oZLgiLZ%y73A4cA-V4Lc0!eKO-qmWuA^>*XLa$Y4^&*by*Z>; zWXZ91y?xW)oy_l0L-(sP=D93AoZ5YPPi$b-seP?mE%INJ(#4)7?Zba>yEwRNhM}-F z-QTc#m8AB4Xg?07!{!od}!oDs)iide zUEc&;Ea7pUxNeGHkfcj0E2$G#nJWAlqYtiJQi3HNTfr?cciiUkIeuk*J@$Rat>rZp z2_L7;B~(mB6*)Tyfb^6Z>Grml{Y=Q|hiheo`LJYDZZnM{%m`?i7ghVHf5MyvMr^0U|b%GBZ&r={lD*D<-= zM<-6)i+g^i!`|uYrmHog@M=JsZf&Y<8m&vre7sr~P;~gs_TJ*Q-s@|+O6!ZF752l| z=704`{jF$&#N%c2*>qn0{#EOood&|pi2e%In3!a)P5GiLYVqBzSKU4S@*Z?Uv-l&a z-!hB5FTXzom{ZmRriN;N#r1Zc`a;{TwQi2*MSb(52g2SBEnRc4;^BhW`4ZJa;^YZC mM}jf^I5(x-L$XokIfkWj$@lu8mgBa6i$okR`f+92mVW@(W|@uv diff --git a/apps/block_scout_web/assets/static/images/network-selector-icons/xdai-chain.png b/apps/block_scout_web/assets/static/images/network-selector-icons/xdai-chain.png index ab35a5b07235016486d096fdd62fcd0cba932b81..5fb54a4175012bb372cd0a003bdf0525abf8c04f 100644 GIT binary patch delta 2766 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 X+d@w4jj9xX|Fo(r>nPPK*uMTBp*k`w diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex index 044d8790bc..41f990b589 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex @@ -47,9 +47,6 @@
No content.
-
\ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex index 11f3c83dfe..af6d8df375 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex @@ -5,7 +5,7 @@ - .png');"> + .png');"> <%= @title %> diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 7dca514693..1b22f7969c 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1721,11 +1721,6 @@ msgstr "" msgid "Search network" msgstr "" -#, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:51 -msgid "Show More Networks" -msgstr "" - #, elixir-format #: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 msgid "Testnet" From 1393edbaae43d0c827d8213745f1937dabbb89cc Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 20 Jun 2019 11:06:55 +0300 Subject: [PATCH 060/133] jslint test fix --- apps/block_scout_web/assets/js/pages/favorites.js | 6 +++--- apps/block_scout_web/assets/js/pages/network-search.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/block_scout_web/assets/js/pages/favorites.js b/apps/block_scout_web/assets/js/pages/favorites.js index 38d4da45ee..9f9d8f39cc 100644 --- a/apps/block_scout_web/assets/js/pages/favorites.js +++ b/apps/block_scout_web/assets/js/pages/favorites.js @@ -11,9 +11,9 @@ if (localStorage.getItem('favoritesNetworksUrls') === null) { $(document).on('change', ".network-selector-item-favorite input[type='checkbox']", function () { var networkUrl = $(this).attr('data-url') - var thisStatus = $(this).is(':checked'); - var parent = $(".network-selector-item[data-url='" + networkUrl + "'").clone(); - var workWith = $(".network-selector-item[data-url='" + networkUrl + "'"); + var thisStatus = $(this).is(':checked') + var parent = $(".network-selector-item[data-url='" + networkUrl + "'").clone() + var workWith = $(".network-selector-item[data-url='" + networkUrl + "'") // Add new checkbox status to same network in another tabs $(".network-selector-item-favorite input[data-url='" + networkUrl + "']").prop('checked', thisStatus) diff --git a/apps/block_scout_web/assets/js/pages/network-search.js b/apps/block_scout_web/assets/js/pages/network-search.js index b73ea635b9..36b7e02348 100644 --- a/apps/block_scout_web/assets/js/pages/network-search.js +++ b/apps/block_scout_web/assets/js/pages/network-search.js @@ -1,7 +1,7 @@ import $ from 'jquery' var networkSearchInput = $('.network-selector-search-input') -var networkSearchInputVal = "" +var networkSearchInputVal = '' $(networkSearchInput).on('input', function () { networkSearchInputVal = $(this).val() From c656b70df60c6402d64040d5f6ca47f87aac0ef5 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 20 Jun 2019 13:49:36 +0300 Subject: [PATCH 061/133] fix large contract verification --- .../smart_contract/solidity/code_compiler.ex | 10 +- apps/explorer/mix.exs | 1 + apps/explorer/priv/compile_solc.js | 5 +- .../solidity/code_compiler_test.exs | 14 + .../smart_contract/large_smart_contract.sol | 3874 +++++++++++++++++ mix.lock | 1 + 6 files changed, 3903 insertions(+), 2 deletions(-) create mode 100644 apps/explorer/test/support/fixture/smart_contract/large_smart_contract.sol diff --git a/apps/explorer/lib/explorer/smart_contract/solidity/code_compiler.ex b/apps/explorer/lib/explorer/smart_contract/solidity/code_compiler.ex index 3e41bb08fa..14262e7fb9 100644 --- a/apps/explorer/lib/explorer/smart_contract/solidity/code_compiler.ex +++ b/apps/explorer/lib/explorer/smart_contract/solidity/code_compiler.ex @@ -91,7 +91,7 @@ defmodule Explorer.SmartContract.Solidity.CodeCompiler do "node", [ Application.app_dir(:explorer, "priv/compile_solc.js"), - code, + create_source_file(code), compiler_version, optimize_value(optimize), optimization_runs, @@ -162,4 +162,12 @@ defmodule Explorer.SmartContract.Solidity.CodeCompiler do defp optimize_value(true), do: "1" defp optimize_value("true"), do: "1" + + defp create_source_file(source) do + {:ok, path} = Briefly.create() + + File.write!(path, source) + + path + end end diff --git a/apps/explorer/mix.exs b/apps/explorer/mix.exs index 09257b9aee..f224471740 100644 --- a/apps/explorer/mix.exs +++ b/apps/explorer/mix.exs @@ -66,6 +66,7 @@ defmodule Explorer.Mixfile do # CSV output for benchee {:benchee_csv, "~> 0.8.0", only: :test}, {:bypass, "~> 1.0", only: :test}, + {:briefly, "~> 0.4", github: "CargoSense/briefly"}, {:comeonin, "~> 4.0"}, {:credo, "1.0.0", only: :test, runtime: false}, # For Absinthe to load data in batches diff --git a/apps/explorer/priv/compile_solc.js b/apps/explorer/priv/compile_solc.js index eea727802e..99048d9ffd 100755 --- a/apps/explorer/priv/compile_solc.js +++ b/apps/explorer/priv/compile_solc.js @@ -1,6 +1,6 @@ #!/usr/bin/env node -var sourceCode = process.argv[2]; +var sourceCodePath = process.argv[2]; var version = process.argv[3]; var optimize = process.argv[4]; var optimizationRuns = parseInt(process.argv[5], 10); @@ -13,6 +13,9 @@ var solc = require('solc') var compilerSnapshot = require(compilerVersionPath); var solc = solc.setupMethods(compilerSnapshot); +var fs = require('fs'); +var sourceCode = fs.readFileSync(sourceCodePath, 'utf8'); + const input = { language: 'Solidity', sources: { diff --git a/apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs b/apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs index be68a03a0e..d1c1d04b45 100644 --- a/apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs +++ b/apps/explorer/test/explorer/smart_contract/solidity/code_compiler_test.exs @@ -268,6 +268,20 @@ defmodule Explorer.SmartContract.Solidity.CodeCompilerTest do assert Enum.any?(abi, fn el -> el["type"] == "constructor" end) end + + test "can compile a large file" do + path = File.cwd!() <> "/test/support/fixture/smart_contract/large_smart_contract.sol" + contract = File.read!(path) + + assert {:ok, %{"abi" => abi}} = + CodeCompiler.run( + name: "HomeWorkDeployer", + compiler_version: "v0.5.9+commit.e560f70d", + code: contract, + evm_version: "constantinople", + optimize: true + ) + end end describe "get_contract_info/1" do diff --git a/apps/explorer/test/support/fixture/smart_contract/large_smart_contract.sol b/apps/explorer/test/support/fixture/smart_contract/large_smart_contract.sol new file mode 100644 index 0000000000..6b147f21d8 --- /dev/null +++ b/apps/explorer/test/support/fixture/smart_contract/large_smart_contract.sol @@ -0,0 +1,3874 @@ +/** + *Submitted for verification at Etherscan.io on 2019-06-05 +*/ + +pragma solidity 0.5.9; // optimization enabled, runs: 10000, evm: constantinople + + +/** + * @title HomeWork Interface (version 1) - EIP165 ID 0xe5399799 + * @author 0age + * @notice Homework is a utility to find, share, and reuse "home" addresses for + * contracts. Anyone can work to find a new home address by searching for keys, + * a 32-byte value with the first 20 bytes equal to the finder's calling address + * (or derived by hashing an arbitrary 32-byte salt and the caller's address), + * and can then deploy any contract they like (even one with a constructor) to + * the address, or mint an ERC721 token that the owner can redeem that will then + * allow them to do the same. Also, if the contract is `SELFDESTRUCT`ed, a new + * contract can be redeployed by the current controller to the same address! + * @dev This contract allows contract addresses to be located ahead of time, and + * for arbitrary bytecode to be deployed (and redeployed if so desired, i.e. + * metamorphic contracts) to the located address by a designated controller. To + * enable this, the contract first deploys an "initialization-code-in-runtime" + * contract, with the creation code of the contract you want to deploy stored in + * RUNTIME code. Then, to deploy the actual contract, it retrieves the address + * of the storage contract and `DELEGATECALL`s into it to execute the init code + * and, if successful, retrieves and returns the contract runtime code. Rather + * than using a located address directly, you can also lock it in the contract + * and mint and ERC721 token for it, which can then be redeemed in order to gain + * control over deployment to the address (note that tokens may not be minted if + * the contract they control currently has a deployed contract at that address). + * Once a contract undergoes metamorphosis, all existing storage will be deleted + * and any existing contract code will be replaced with the deployed contract + * code of the new implementation contract. The mechanisms behind this contract + * are highly experimental - proceed with caution and please share any exploits + * or optimizations you discover. + */ +interface IHomeWork { + // Fires when a contract is deployed or redeployed to a given home address. + event NewResident( + address indexed homeAddress, + bytes32 key, + bytes32 runtimeCodeHash + ); + + // Fires when a new runtime storage contract is deployed. + event NewRuntimeStorageContract( + address runtimeStorageContract, + bytes32 runtimeCodeHash + ); + + // Fires when a controller is changed from the default controller. + event NewController(bytes32 indexed key, address newController); + + // Fires when a new high score is submitted. + event NewHighScore(bytes32 key, address submitter, uint256 score); + + // Track total contract deploys and current controller for each home address. + struct HomeAddress { + bool exists; + address controller; + uint88 deploys; + } + + // Track derivation of key for a given home address based on salt & submitter. + struct KeyInformation { + bytes32 key; + bytes32 salt; + address submitter; + } + + /** + * @notice Deploy a new contract with the desired initialization code to the + * home address corresponding to a given key. Two conditions must be met: the + * submitter must be designated as the controller of the home address (with + * the initial controller set to the address corresponding to the first twenty + * bytes of the key), and there must not be a contract currently deployed at + * the home address. These conditions can be checked by calling + * `getHomeAddressInformation` and `isDeployable` with the same key. + * @param key bytes32 The unique value used to derive the home address. + * @param initializationCode bytes The contract creation code that will be + * used to deploy the contract to the home address. + * @return The home address of the deployed contract. + * @dev In order to deploy the contract to the home address, a new contract + * will be deployed with runtime code set to the initialization code of the + * contract that will be deployed to the home address. Then, metamorphic + * initialization code will retrieve that initialization code and use it to + * set up and deploy the desired contract to the home address. Bear in mind + * that the deployed contract will interpret msg.sender as the address of THIS + * contract, and not the address of the submitter - if the constructor of the + * deployed contract uses msg.sender to set up ownership or other variables, + * you must modify it to accept a constructor argument with the appropriate + * address, or alternately to hard-code the intended address. Also, if your + * contract DOES have constructor arguments, remember to include them as + * ABI-encoded arguments at the end of the initialization code, just as you + * would when performing a standard deploy. You may also want to provide the + * key to `setReverseLookup` in order to find it again using only the home + * address to prevent accidentally losing the key. + */ + function deploy(bytes32 key, bytes calldata initializationCode) + external + payable + returns (address homeAddress, bytes32 runtimeCodeHash); + + /** + * @notice Mint an ERC721 token to the supplied owner that can be redeemed in + * order to gain control of a home address corresponding to a given key. Two + * conditions must be met: the submitter must be designated as the controller + * of the home address (with the initial controller set to the address + * corresponding to the first 20 bytes of the key), and there must not be a + * contract currently deployed at the home address. These conditions can be + * checked by calling `getHomeAddressInformation` and `isDeployable` with the + * same key. + * @param key bytes32 The unique value used to derive the home address. + * @param owner address The account that will be granted ownership of the + * ERC721 token. + * @dev In order to mint an ERC721 token, the assocated home address cannot be + * in use, or else the token will not be able to deploy to the home address. + * The controller is set to this contract until the token is redeemed, at + * which point the redeemer designates a new controller for the home address. + * The key of the home address and the tokenID of the ERC721 token are the + * same value, but different types (bytes32 vs. uint256). + */ + function lock(bytes32 key, address owner) external; + + /** + * @notice Burn an ERC721 token to allow the supplied controller to gain the + * ability to deploy to the home address corresponding to the key matching the + * burned token. The submitter must be designated as either the owner of the + * token or as an approved spender. + * @param tokenId uint256 The ID of the ERC721 token to redeem. + * @param controller address The account that will be granted control of the + * home address corresponding to the given token. + * @dev The controller cannot be designated as the address of this contract, + * the null address, or the home address (the restriction on setting the home + * address as the controller is due to the fact that the home address will not + * be able to deploy to itself, as it needs to be empty before a contract can + * be deployed to it). + */ + function redeem(uint256 tokenId, address controller) external; + + /** + * @notice Transfer control over deployment to the home address corresponding + * to a given key. The caller must be designated as the current controller of + * the home address (with the initial controller set to the address + * corresponding to the first 20 bytes of the key) - This condition can be + * checked by calling `getHomeAddressInformation` with the same key. + * @param key bytes32 The unique value used to derive the home address. + * @param controller address The account that will be granted control of the + * home address corresponding to the given key. + * @dev The controller cannot be designated as the address of this contract, + * the null address, or the home address (the restriction on setting the home + * address as the controller is due to the fact that the home address will not + * be able to deploy to itself, as it needs to be empty before a contract can + * be deployed to it). + */ + function assignController(bytes32 key, address controller) external; + + /** + * @notice Transfer control over deployment to the home address corresponding + * to a given key to the null address, which will prevent it from being + * deployed to again in the future. The caller must be designated as the + * current controller of the corresponding home address (with the initial + * controller set to the address corresponding to the first 20 bytes of the + * key) - This condition can be checked by calling `getHomeAddressInformation` + * with the same key. + * @param key bytes32 The unique value used to derive the home address. + */ + function relinquishControl(bytes32 key) external; + + /** + * @notice Burn an ERC721 token, set a supplied controller, and deploy a new + * contract with the supplied initialization code to the corresponding home + * address for the given token. The submitter must be designated as either the + * owner of the token or as an approved spender. + * @param tokenId uint256 The ID of the ERC721 token to redeem. + * @param controller address The account that will be granted control of the + * home address corresponding to the given token. + * @param initializationCode bytes The contract creation code that will be + * used to deploy the contract to the home address. + * @return The home address and runtime code hash of the deployed contract. + * @dev In order to deploy the contract to the home address, a new contract + * will be deployed with runtime code set to the initialization code of the + * contract that will be deployed to the home address. Then, metamorphic + * initialization code will retrieve that initialization code and use it to + * set up and deploy the desired contract to the home address. Bear in mind + * that the deployed contract will interpret msg.sender as the address of THIS + * contract, and not the address of the submitter - if the constructor of the + * deployed contract uses msg.sender to set up ownership or other variables, + * you must modify it to accept a constructor argument with the appropriate + * address, or alternately to hard-code the intended address. Also, if your + * contract DOES have constructor arguments, remember to include them as + * ABI-encoded arguments at the end of the initialization code, just as you + * would when performing a standard deploy. You may also want to provide the + * key to `setReverseLookup` in order to find it again using only the home + * address to prevent accidentally losing the key. The controller cannot be + * designated as the address of this contract, the null address, or the home + * address (the restriction on setting the home address as the controller is + * due to the fact that the home address will not be able to deploy to itself, + * as it needs to be empty before a contract can be deployed to it). Also, + * checks on the contract at the home address being empty or not having the + * correct controller are unnecessary, as they are performed when minting the + * token and cannot be altered until the token is redeemed. + */ + function redeemAndDeploy( + uint256 tokenId, + address controller, + bytes calldata initializationCode + ) + external + payable + returns (address homeAddress, bytes32 runtimeCodeHash); + + /** + * @notice Derive a new key by concatenating an arbitrary 32-byte salt value + * and the address of the caller and performing a keccak256 hash. This allows + * for the creation of keys with additional entropy where desired while also + * preventing collisions with standard keys. The caller will be set as the + * controller of the derived key. + * @param salt bytes32 The desired salt value to use (along with the address + * of the caller) when deriving the resultant key and corresponding home + * address. + * @return The derived key. + * @dev Home addresses from derived keys will take longer to "mine" or locate, + * as an additional hash must be performed when computing the corresponding + * home address for each given salt input. Each caller will derive a different + * key even if they are supplying the same salt value. + */ + function deriveKey(bytes32 salt) external returns (bytes32 key); + + /** + * @notice Mint an ERC721 token to the supplied owner that can be redeemed in + * order to gain control of a home address corresponding to a given derived + * key. Two conditions must be met: the submitter must be designated as the + * current controller of the home address, and there must not be a contract + * currently deployed at the home address. These conditions can be checked by + * calling `getHomeAddressInformation` and `isDeployable` with the key + * determined by calling `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @param owner address The account that will be granted ownership of the + * ERC721 token. + * @return The derived key. + * @dev In order to mint an ERC721 token, the assocated home address cannot be + * in use, or else the token will not be able to deploy to the home address. + * The controller is set to this contract until the token is redeemed, at + * which point the redeemer designates a new controller for the home address. + * The key of the home address and the tokenID of the ERC721 token are the + * same value, but different types (bytes32 vs. uint256). + */ + function deriveKeyAndLock(bytes32 salt, address owner) + external + returns (bytes32 key); + + /** + * @notice Transfer control over deployment to the home address corresponding + * to a given derived key. The caller must be designated as the current + * controller of the home address - This condition can be checked by calling + * `getHomeAddressInformation` with the key obtained via `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @param controller address The account that will be granted control of the + * home address corresponding to the given derived key. + * @return The derived key. + * @dev The controller cannot be designated as the address of this contract, + * the null address, or the home address (the restriction on setting the home + * address as the controller is due to the fact that the home address will not + * be able to deploy to itself, as it needs to be empty before a contract can + * be deployed to it). + */ + function deriveKeyAndAssignController(bytes32 salt, address controller) + external + returns (bytes32 key); + + /** + * @notice Transfer control over deployment to the home address corresponding + * to a given derived key to the null address, which will prevent it from + * being deployed to again in the future. The caller must be designated as the + * current controller of the home address - This condition can be checked by + * calling `getHomeAddressInformation` with the key determined by calling + * `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @return The derived key. + */ + function deriveKeyAndRelinquishControl(bytes32 salt) + external + returns (bytes32 key); + + /** + * @notice Record a key that corresponds to a given home address by supplying + * said key and using it to derive the address. This enables reverse lookup + * of a key using only the home address in question. This method may be called + * by anyone - control of the key is not required. + * @param key bytes32 The unique value used to derive the home address. + * @dev This does not set the salt or submitter fields, as those apply only to + * derived keys (although a derived key may also be set with this method, just + * without the derived fields). + */ + function setReverseLookup(bytes32 key) external; + + /** + * @notice Record the derived key that corresponds to a given home address by + * supplying the salt and submitter that were used to derive the key. This + * facititates reverse lookup of the derivation method of a key using only the + * home address in question. This method may be called by anyone - control of + * the derived key is not required. + * @param salt bytes32 The salt value that is used to derive the key. + * @param submitter address The account that submits the salt that is used to + * derive the key. + */ + function setDerivedReverseLookup(bytes32 salt, address submitter) external; + + /** + * @notice Deploy a new storage contract with the supplied code as runtime + * code without deploying a contract to a home address. This can be used to + * store the contract creation code for use in future deployments of contracts + * to home addresses. + * @param codePayload bytes The code to set as the runtime code of the + * deployed contract. + * @return The address of the deployed storage contract. + * @dev Consider placing adequate protections on the storage contract to + * prevent unwanted callers from modifying or destroying it. Also, if you are + * placing contract contract creation code into the runtime storage contract, + * remember to include any constructor parameters as ABI-encoded arguments at + * the end of the contract creation code, similar to how you would perform a + * standard deployment. + */ + function deployRuntimeStorageContract(bytes calldata codePayload) + external + returns (address runtimeStorageContract); + + /** + * @notice Deploy a new contract with the initialization code stored in the + * runtime code at the specified initialization runtime storage contract to + * the home address corresponding to a given key. Two conditions must be met: + * the submitter must be designated as the controller of the home address + * (with the initial controller set to the address corresponding to the first + * 20 bytes of the key), and there must not be a contract currently deployed + * at the home address. These conditions can be checked by calling + * `getHomeAddressInformation` and `isDeployable` with the same key. + * @param key bytes32 The unique value used to derive the home address. + * @param initializationRuntimeStorageContract address The storage contract + * with runtime code equal to the contract creation code that will be used to + * deploy the contract to the home address. + * @return The home address and runtime code hash of the deployed contract. + * @dev When deploying a contract to a home address via this method, the + * metamorphic initialization code will retrieve whatever initialization code + * currently resides at the specified address and use it to set up and deploy + * the desired contract to the home address. Bear in mind that the deployed + * contract will interpret msg.sender as the address of THIS contract, and not + * the address of the submitter - if the constructor of the deployed contract + * uses msg.sender to set up ownership or other variables, you must modify it + * to accept a constructor argument with the appropriate address, or + * alternately to hard-code the intended address. Also, if your contract DOES + * have constructor arguments, remember to include them as ABI-encoded + * arguments at the end of the initialization code, just as you would when + * performing a standard deploy. You may also want to provide the key to + * `setReverseLookup` in order to find it again using only the home address to + * prevent accidentally losing the key. + */ + function deployViaExistingRuntimeStorageContract( + bytes32 key, + address initializationRuntimeStorageContract + ) + external + payable + returns (address homeAddress, bytes32 runtimeCodeHash); + + /** + * @notice Burn an ERC721 token, set a supplied controller, and deploy a new + * contract with the initialization code stored in the runtime code at the + * specified initialization runtime storage contract to the home address + * corresponding to a given key. The submitter must be designated as either + * the owner of the token or as an approved spender. + * @param tokenId uint256 The ID of the ERC721 token to redeem. + * @param controller address The account that will be granted control of the + * home address corresponding to the given token. + * @param initializationRuntimeStorageContract address The storage contract + * with runtime code equal to the contract creation code that will be used to + * deploy the contract to the home address. + * @return The home address and runtime code hash of the deployed contract. + * @dev When deploying a contract to a home address via this method, the + * metamorphic initialization code will retrieve whatever initialization code + * currently resides at the specified address and use it to set up and deploy + * the desired contract to the home address. Bear in mind that the deployed + * contract will interpret msg.sender as the address of THIS contract, and not + * the address of the submitter - if the constructor of the deployed contract + * uses msg.sender to set up ownership or other variables, you must modify it + * to accept a constructor argument with the appropriate address, or + * alternately to hard-code the intended address. Also, if your contract DOES + * have constructor arguments, remember to include them as ABI-encoded + * arguments at the end of the initialization code, just as you would when + * performing a standard deploy. You may also want to provide the key to + * `setReverseLookup` in order to find it again using only the home address to + * prevent accidentally losing the key. The controller cannot be designated as + * the address of this contract, the null address, or the home address (the + * restriction on setting the home address as the controller is due to the + * fact that the home address will not be able to deploy to itself, as it + * needs to be empty before a contract can be deployed to it). Also, checks on + * the contract at the home address being empty or not having the correct + * controller are unnecessary, as they are performed when minting the token + * and cannot be altered until the token is redeemed. + */ + function redeemAndDeployViaExistingRuntimeStorageContract( + uint256 tokenId, + address controller, + address initializationRuntimeStorageContract + ) + external + payable + returns (address homeAddress, bytes32 runtimeCodeHash); + + /** + * @notice Deploy a new contract with the desired initialization code to the + * home address corresponding to a given derived key. Two conditions must be + * met: the submitter must be designated as the controller of the home + * address, and there must not be a contract currently deployed at the home + * address. These conditions can be checked by calling + * `getHomeAddressInformation` and `isDeployable` with the key obtained by + * calling `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @param initializationCode bytes The contract creation code that will be + * used to deploy the contract to the home address. + * @return The home address, derived key, and runtime code hash of the + * deployed contract. + * @dev In order to deploy the contract to the home address, a new contract + * will be deployed with runtime code set to the initialization code of the + * contract that will be deployed to the home address. Then, metamorphic + * initialization code will retrieve that initialization code and use it to + * set up and deploy the desired contract to the home address. Bear in mind + * that the deployed contract will interpret msg.sender as the address of THIS + * contract, and not the address of the submitter - if the constructor of the + * deployed contract uses msg.sender to set up ownership or other variables, + * you must modify it to accept a constructor argument with the appropriate + * address, or alternately to hard-code the intended address. Also, if your + * contract DOES have constructor arguments, remember to include them as + * ABI-encoded arguments at the end of the initialization code, just as you + * would when performing a standard deploy. You may want to provide the salt + * and submitter to `setDerivedReverseLookup` in order to find the salt, + * submitter, and derived key using only the home address to prevent + * accidentally losing them. + */ + function deriveKeyAndDeploy(bytes32 salt, bytes calldata initializationCode) + external + payable + returns (address homeAddress, bytes32 key, bytes32 runtimeCodeHash); + + /** + * @notice Deploy a new contract with the initialization code stored in the + * runtime code at the specified initialization runtime storage contract to + * the home address corresponding to a given derived key. Two conditions must + * be met: the submitter must be designated as the controller of the home + * address, and there must not be a contract currently deployed at the home + * address. These conditions can be checked by calling + * `getHomeAddressInformation` and `isDeployable` with the key obtained by + * calling `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @param initializationRuntimeStorageContract address The storage contract + * with runtime code equal to the contract creation code that will be used to + * deploy the contract to the home address. + * @return The home address, derived key, and runtime code hash of the + * deployed contract. + * @dev When deploying a contract to a home address via this method, the + * metamorphic initialization code will retrieve whatever initialization code + * currently resides at the specified address and use it to set up and deploy + * the desired contract to the home address. Bear in mind that the deployed + * contract will interpret msg.sender as the address of THIS contract, and not + * the address of the submitter - if the constructor of the deployed contract + * uses msg.sender to set up ownership or other variables, you must modify it + * to accept a constructor argument with the appropriate address, or + * alternately to hard-code the intended address. Also, if your contract DOES + * have constructor arguments, remember to include them as ABI-encoded + * arguments at the end of the initialization code, just as you would when + * performing a standard deploy. You may want to provide the salt and + * submitter to `setDerivedReverseLookup` in order to find the salt, + * submitter, and derived key using only the home address to prevent + * accidentally losing them. + */ + function deriveKeyAndDeployViaExistingRuntimeStorageContract( + bytes32 salt, + address initializationRuntimeStorageContract + ) + external + payable + returns (address homeAddress, bytes32 key, bytes32 runtimeCodeHash); + + /** + * @notice Mint multiple ERC721 tokens, designated by their keys, to the + * specified owner. Keys that aren't controlled, or that point to home + * addresses that are currently deployed, will be skipped. + * @param owner address The account that will be granted ownership of the + * ERC721 tokens. + * @param keys bytes32[] An array of values used to derive each home address. + * @dev If you plan to use this method regularly or want to keep gas costs to + * an absolute minimum, and are willing to go without standard ABI encoding, + * see `batchLock_63efZf` for a more efficient (and unforgiving) + * implementation. For batch token minting with *derived* keys, see + * `deriveKeysAndBatchLock`. + */ + function batchLock(address owner, bytes32[] calldata keys) external; + + /** + * @notice Mint multiple ERC721 tokens, designated by salts that are hashed + * with the caller's address to derive each key, to the specified owner. + * Derived keys that aren't controlled, or that point to home addresses that + * are currently deployed, will be skipped. + * @param owner address The account that will be granted ownership of the + * ERC721 tokens. + * @param salts bytes32[] An array of values used to derive each key and + * corresponding home address. + * @dev See `batchLock` for batch token minting with standard, non-derived + * keys. + */ + function deriveKeysAndBatchLock(address owner, bytes32[] calldata salts) + external; + + /** + * @notice Efficient version of `batchLock` that uses less gas. The first 20 + * bytes of each key are automatically populated using msg.sender, and the + * remaining key segments are passed in as a packed byte array, using twelve + * bytes per segment, with a function selector of 0x00000000 followed by a + * twenty-byte segment for the desired owner of the minted ERC721 tokens. Note + * that an attempt to lock a key that is not controlled or with its contract + * already deployed will cause the entire batch to revert. Checks on whether + * the owner is a valid ERC721 receiver are also skipped, similar to using + * `transferFrom` instead of `safeTransferFrom`. + */ + function batchLock_63efZf(/* packed owner and key segments */) external; + + /** + * @notice Submit a key to claim the "high score" - the lower the uint160 + * value of the key's home address, the higher the score. The high score + * holder has the exclusive right to recover lost ether and tokens on this + * contract. + * @param key bytes32 The unique value used to derive the home address that + * will determine the resultant score. + * @dev The high score must be claimed by a direct key (one that is submitted + * by setting the first 20 bytes of the key to the address of the submitter) + * and not by a derived key, and is non-transferrable. If you want to help + * people recover their lost tokens, you might consider deploying a contract + * to the high score address (probably a metamorphic one so that you can use + * the home address later) with your contact information. + */ + function claimHighScore(bytes32 key) external; + + /** + * @notice Transfer any ether or ERC20 tokens that have somehow ended up at + * this contract by specifying a token address (set to the null address for + * ether) as well as a recipient address. Only the high score holder can + * recover lost ether and tokens on this contract. + * @param token address The contract address of the ERC20 token to recover, or + * the null address for recovering Ether. + * @param recipient address payable The account where recovered funds should + * be transferred. + * @dev If you are trying to recover funds that were accidentally sent into + * this contract, see if you can contact the holder of the current high score, + * found by calling `getHighScore`. Better yet, try to find a new high score + * yourself! + */ + function recover(IERC20 token, address payable recipient) external; + + /** + * @notice "View" function to determine if a contract can currently be + * deployed to a home address given the corresponding key. A contract is only + * deployable if no account currently exists at the address - any existing + * contract must be destroyed via `SELFDESTRUCT` before a new contract can be + * deployed to a home address. This method does not modify state but is + * inaccessible via staticcall. + * @param key bytes32 The unique value used to derive the home address. + * @return A boolean signifying if a contract can be deployed to the home + * address that corresponds to the provided key. + * @dev This will not detect if a contract is not deployable due control + * having been relinquished on the key. + */ + function isDeployable(bytes32 key) + external + /* view */ + returns (bool deployable); + + /** + * @notice View function to get the current "high score", or the lowest + * uint160 value of a home address of all keys submitted. The high score + * holder has the exclusive right to recover lost ether and tokens on this + * contract. + * @return The current high score holder, their score, and the submitted key. + */ + function getHighScore() + external + view + returns (address holder, uint256 score, bytes32 key); + + /** + * @notice View function to get information on a home address given the + * corresponding key. + * @param key bytes32 The unique value used to derive the home address. + * @return The home address, the current controller of the address, the number + * of times the home address has been deployed to, and the code hash of the + * runtime currently found at the home address, if any. + * @dev There is also an `isDeployable` method for determining if a contract + * can be deployed to the address, but in extreme cases it must actually + * perform a dry-run to determine if the contract is deployable, which means + * that it does not support staticcalls. There is also a convenience method, + * `hasNeverBeenDeployed`, but the information it conveys can be determined + * from this method alone as well. + */ + function getHomeAddressInformation(bytes32 key) + external + view + returns ( + address homeAddress, + address controller, + uint256 deploys, + bytes32 currentRuntimeCodeHash + ); + + /** + * @notice View function to determine if no contract has ever been deployed to + * a home address given the corresponding key. This can be used to ensure that + * a given key or corresponding token is "new" or not. + * @param key bytes32 The unique value used to derive the home address. + * @return A boolean signifying if a contract has never been deployed using + * the supplied key before. + */ + function hasNeverBeenDeployed(bytes32 key) + external + view + returns (bool neverBeenDeployed); + + /** + * @notice View function to search for a known key, salt, and/or submitter + * given a supplied home address. Keys can be controlled directly by an + * address that matches the first 20 bytes of the key, or they can be derived + * from a salt and a submitter - if the key is not a derived key, the salt and + * submitter fields will both have a value of zero. + * @param homeAddress address The home address to check for key information. + * @return The key, salt, and/or submitter used to deploy to the home address, + * assuming they have been submitted to the reverse lookup. + * @dev To populate these values, call `setReverseLookup` for cases where keys + * are used directly or are the only value known, or `setDerivedReverseLookup` + * for cases where keys are derived from a known salt and submitter. + */ + function reverseLookup(address homeAddress) + external + view + returns (bytes32 key, bytes32 salt, address submitter); + + /** + * @notice Pure function to determine the key that is derived from a given + * salt and submitting address. + * @param salt bytes32 The salt value that is used to derive the key. + * @param submitter address The submitter of the salt value used to derive the + * key. + * @return The derived key. + */ + function getDerivedKey(bytes32 salt, address submitter) + external + pure + returns (bytes32 key); + + /** + * @notice Pure function to determine the home address that corresponds to + * a given key. + * @param key bytes32 The unique value used to derive the home address. + * @return The home address. + */ + function getHomeAddress(bytes32 key) + external + pure + returns (address homeAddress); + + /** + * @notice Pure function for retrieving the metamorphic initialization code + * used to deploy arbitrary contracts to home addresses. Provided for easy + * verification and for use in other applications. + * @return The 32-byte metamorphic initialization code. + * @dev This metamorphic init code works via the "metamorphic delegator" + * mechanism, which is explained in greater detail at `_deployToHomeAddress`. + */ + function getMetamorphicDelegatorInitializationCode() + external + pure + returns (bytes32 metamorphicDelegatorInitializationCode); + + /** + * @notice Pure function for retrieving the keccak256 of the metamorphic + * initialization code used to deploy arbitrary contracts to home addresses. + * This is the value that you should use, along with this contract's address + * and a caller address that you control, to mine for an partucular type of + * home address (such as one at a compact or gas-efficient address). + * @return The keccak256 hash of the metamorphic initialization code. + */ + function getMetamorphicDelegatorInitializationCodeHash() + external + pure + returns (bytes32 metamorphicDelegatorInitializationCodeHash); + + /** + * @notice Pure function for retrieving the prelude that will be inserted + * ahead of the code payload in order to deploy a runtime storage contract. + * @return The 11-byte "arbitrary runtime" prelude. + */ + function getArbitraryRuntimeCodePrelude() + external + pure + returns (bytes11 prelude); +} + + +/** + * @title ERC721 Non-Fungible Token Standard basic interface + * @dev see https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721 { + event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); + event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + + function balanceOf(address owner) external view returns (uint256 balance); + function ownerOf(uint256 tokenId) external view returns (address owner); + + function approve(address to, uint256 tokenId) external; + function getApproved(uint256 tokenId) external view returns (address operator); + + function setApprovalForAll(address operator, bool _approved) external; + function isApprovedForAll(address owner, address operator) external view returns (bool); + + function transferFrom(address from, address to, uint256 tokenId) external; + function safeTransferFrom(address from, address to, uint256 tokenId) external; + + function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; +} + + +/** + * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721Enumerable { + function totalSupply() external view returns (uint256); + function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); + function tokenByIndex(uint256 index) external view returns (uint256); +} + + +/** + * @title ERC-721 Non-Fungible Token Standard, optional metadata extension + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721Metadata { + function name() external pure returns (string memory); + function symbol() external pure returns (string memory); + function tokenURI(uint256 tokenId) external view returns (string memory); +} + + +/** + * @title ERC721 token receiver interface + * @dev Interface for any contract that wants to support safeTransfers + * from ERC721 asset contracts. + */ +interface IERC721Receiver { + /** + * @notice Handle the receipt of an NFT + * @dev The ERC721 smart contract calls this function on the recipient + * after a `safeTransfer`. This function MUST return the function selector, + * otherwise the caller will revert the transaction. The selector to be + * returned can be obtained as `this.onERC721Received.selector`. This + * function MAY throw to revert and reject the transfer. + * Note: the ERC721 contract address is always the message sender. + * @param operator The address which called `safeTransferFrom` function + * @param from The address which previously owned the token + * @param tokenId The NFT identifier which is being transferred + * @param data Additional data with no specified format + * @return bytes4 `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` + */ + function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) + external + returns (bytes4); +} + + +/** + * @title ERC1412 Batch Transfers For Non-Fungible Tokens + * @dev the ERC-165 identifier for this interface is 0x2b89bcaa + */ +interface IERC1412 { + /// @notice Transfers the ownership of multiple NFTs from one address to another address + /// @param _from The current owner of the NFT + /// @param _to The new owner + /// @param _tokenIds The NFTs to transfer + /// @param _data Additional data with no specified format, sent in call to `_to` + function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _tokenIds, bytes calldata _data) external; + + /// @notice Transfers the ownership of multiple NFTs from one address to another address + /// @param _from The current owner of the NFT + /// @param _to The new owner + /// @param _tokenIds The NFTs to transfer + function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _tokenIds) external; +} + + +/** + * @title IERC165 + * @dev https://eips.ethereum.org/EIPS/eip-165 + */ +interface IERC165 { + /** + * @notice Query if a contract implements an interface + * @param interfaceId The interface identifier, as specified in ERC-165 + * @dev Interface identification is specified in ERC-165. This function + * uses less than 30,000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool); +} + + +/** + * @title ERC20 interface + * @dev see https://eips.ethereum.org/EIPS/eip-20 + */ +interface IERC20 { + function transfer(address to, uint256 value) external returns (bool); + + function approve(address spender, uint256 value) external returns (bool); + + function transferFrom(address from, address to, uint256 value) external returns (bool); + + function totalSupply() external view returns (uint256); + + function balanceOf(address who) external view returns (uint256); + + function allowance(address owner, address spender) external view returns (uint256); + + event Transfer(address indexed from, address indexed to, uint256 value); + + event Approval(address indexed owner, address indexed spender, uint256 value); +} + + +/** + * @dev Wrappers over Solidity's arithmetic operations with added overflow + * checks. + * + * Arithmetic operations in Solidity wrap on overflow. This can easily result + * in bugs, because programmers usually assume that an overflow raises an + * error, which is the standard behavior in high level programming languages. + * `SafeMath` restores this intuition by reverting the transaction when an + * operation overflows. + * + * Using this library instead of the unchecked operations eliminates an entire + * class of bugs, so it's recommended to use it always. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + require(b <= a, "SafeMath: subtraction overflow"); + uint256 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 + if (a == 0) { + return 0; + } + + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + // Solidity only automatically asserts when dividing by 0 + require(b > 0, "SafeMath: division by zero"); + uint256 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + require(b != 0, "SafeMath: modulo by zero"); + return a % b; + } +} + + +/** + * Utility library of inline functions on addresses + */ +library Address { + /** + * Returns whether the target address is a contract + * @dev This function will return false if invoked during the constructor of a contract, + * as the code is not actually created until after the constructor finishes. + * @param account address of the account to check + * @return whether the target address is a contract + */ + function isContract(address account) internal view returns (bool) { + uint256 size; + // XXX Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // See https://ethereum.stackexchange.com/a/14016/36603 + // for more details about how this works. + // TODO Check this again before the Serenity release, because all addresses will be + // contracts then. + // solhint-disable-next-line no-inline-assembly + assembly { size := extcodesize(account) } + return size > 0; + } +} + + +/** + * @title Counters + * @author Matt Condon (@shrugs) + * @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number + * of elements in a mapping, issuing ERC721 ids, or counting request ids + * + * Include with `using Counters for Counters.Counter;` + * Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the SafeMath + * overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never + * directly accessed. + */ +library Counters { + using SafeMath for uint256; + + struct Counter { + // This variable should never be directly accessed by users of the library: interactions must be restricted to + // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add + // this feature: see https://github.com/ethereum/solidity/issues/4637 + uint256 _value; // default: 0 + } + + function current(Counter storage counter) internal view returns (uint256) { + return counter._value; + } + + function increment(Counter storage counter) internal { + counter._value += 1; + } + + function decrement(Counter storage counter) internal { + counter._value = counter._value.sub(1); + } +} + + +/** + * @dev Implementation of the `IERC165` interface. + * + * Contracts may inherit from this and call `_registerInterface` to declare + * their support of an interface. + */ +contract ERC165 is IERC165 { + /* + * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7 + */ + bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; + + /** + * @dev Mapping of interface ids to whether or not it's supported. + */ + mapping(bytes4 => bool) private _supportedInterfaces; + + constructor () internal { + // Derived contracts need only register support for their own interfaces, + // we register support for ERC165 itself here + _registerInterface(_INTERFACE_ID_ERC165); + } + + /** + * @dev See `IERC165.supportsInterface`. + * + * Time complexity O(1), guaranteed to always use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool) { + return _supportedInterfaces[interfaceId]; + } + + /** + * @dev Registers the contract as an implementer of the interface defined by + * `interfaceId`. Support of the actual ERC165 interface is automatic and + * registering its interface id is not required. + * + * See `IERC165.supportsInterface`. + * + * Requirements: + * + * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`). + */ + function _registerInterface(bytes4 interfaceId) internal { + require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); + _supportedInterfaces[interfaceId] = true; + } +} + + +/** + * @title ERC721 Non-Fungible Token Standard basic implementation + * @dev see https://eips.ethereum.org/EIPS/eip-721 + */ +contract ERC721 is ERC165, IERC721 { + using SafeMath for uint256; + using Address for address; + using Counters for Counters.Counter; + + // Equals to `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` + // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector` + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Mapping from token ID to owner + mapping (uint256 => address) private _tokenOwner; + + // Mapping from token ID to approved address + mapping (uint256 => address) private _tokenApprovals; + + // Mapping from owner to number of owned token + mapping (address => Counters.Counter) private _ownedTokensCount; + + // Mapping from owner to operator approvals + mapping (address => mapping (address => bool)) private _operatorApprovals; + + bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd; + /* + * 0x80ac58cd === + * bytes4(keccak256('balanceOf(address)')) ^ + * bytes4(keccak256('ownerOf(uint256)')) ^ + * bytes4(keccak256('approve(address,uint256)')) ^ + * bytes4(keccak256('getApproved(uint256)')) ^ + * bytes4(keccak256('setApprovalForAll(address,bool)')) ^ + * bytes4(keccak256('isApprovedForAll(address,address)')) ^ + * bytes4(keccak256('transferFrom(address,address,uint256)')) ^ + * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^ + * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) + */ + + constructor () public { + // register the supported interfaces to conform to ERC721 via ERC165 + _registerInterface(_INTERFACE_ID_ERC721); + } + + /** + * @dev Gets the balance of the specified address + * @param owner address to query the balance of + * @return uint256 representing the amount owned by the passed address + */ + function balanceOf(address owner) public view returns (uint256) { + require(owner != address(0)); + return _ownedTokensCount[owner].current(); + } + + /** + * @dev Gets the owner of the specified token ID + * @param tokenId uint256 ID of the token to query the owner of + * @return address currently marked as the owner of the given token ID + */ + function ownerOf(uint256 tokenId) public view returns (address) { + address owner = _tokenOwner[tokenId]; + require(owner != address(0)); + return owner; + } + + /** + * @dev Approves another address to transfer the given token ID + * The zero address indicates there is no approved address. + * There can only be one approved address per token at a given time. + * Can only be called by the token owner or an approved operator. + * @param to address to be approved for the given token ID + * @param tokenId uint256 ID of the token to be approved + */ + function approve(address to, uint256 tokenId) public { + address owner = ownerOf(tokenId); + require(to != owner); + require(msg.sender == owner || isApprovedForAll(owner, msg.sender)); + + _tokenApprovals[tokenId] = to; + emit Approval(owner, to, tokenId); + } + + /** + * @dev Gets the approved address for a token ID, or zero if no address set + * Reverts if the token ID does not exist. + * @param tokenId uint256 ID of the token to query the approval of + * @return address currently approved for the given token ID + */ + function getApproved(uint256 tokenId) public view returns (address) { + require(_exists(tokenId)); + return _tokenApprovals[tokenId]; + } + + /** + * @dev Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + * @param to operator address to set the approval + * @param approved representing the status of the approval to be set + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender); + _operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + /** + * @dev Tells whether an operator is approved by a given owner + * @param owner owner address which you want to query the approval of + * @param operator operator address which you want to query the approval of + * @return bool whether the given operator is approved by the given owner + */ + function isApprovedForAll(address owner, address operator) public view returns (bool) { + return _operatorApprovals[owner][operator]; + } + + /** + * @dev Transfers the ownership of a given token ID to another address + * Usage of this method is discouraged, use `safeTransferFrom` whenever possible + * Requires the msg.sender to be the owner, approved, or operator + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + */ + function transferFrom(address from, address to, uint256 tokenId) public { + require(_isApprovedOrOwner(msg.sender, tokenId)); + + _transferFrom(from, to, tokenId); + } + + /** + * @dev Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise, + * the transfer is reverted. + * Requires the msg.sender to be the owner, approved, or operator + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + */ + function safeTransferFrom(address from, address to, uint256 tokenId) public { + safeTransferFrom(from, to, tokenId, ""); + } + + /** + * @dev Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise, + * the transfer is reverted. + * Requires the msg.sender to be the owner, approved, or operator + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + * @param _data bytes data to send along with a safe transfer check + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public { + transferFrom(from, to, tokenId); + require(_checkOnERC721Received(from, to, tokenId, _data)); + } + + /** + * @dev Returns whether the specified token exists + * @param tokenId uint256 ID of the token to query the existence of + * @return bool whether the token exists + */ + function _exists(uint256 tokenId) internal view returns (bool) { + address owner = _tokenOwner[tokenId]; + return owner != address(0); + } + + /** + * @dev Returns whether the given spender can transfer a given token ID + * @param spender address of the spender to query + * @param tokenId uint256 ID of the token to be transferred + * @return bool whether the msg.sender is approved for the given token ID, + * is an operator of the owner, or is the owner of the token + */ + function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) { + address owner = ownerOf(tokenId); + return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); + } + + /** + * @dev Internal function to mint a new token + * Reverts if the given token ID already exists + * @param to The address that will own the minted token + * @param tokenId uint256 ID of the token to be minted + */ + function _mint(address to, uint256 tokenId) internal { + require(to != address(0)); + require(!_exists(tokenId)); + + _tokenOwner[tokenId] = to; + _ownedTokensCount[to].increment(); + + emit Transfer(address(0), to, tokenId); + } + + /** + * @dev Internal function to burn a specific token + * Reverts if the token does not exist + * Deprecated, use _burn(uint256) instead. + * @param owner owner of the token to burn + * @param tokenId uint256 ID of the token being burned + */ + function _burn(address owner, uint256 tokenId) internal { + require(ownerOf(tokenId) == owner); + + _clearApproval(tokenId); + + _ownedTokensCount[owner].decrement(); + _tokenOwner[tokenId] = address(0); + + emit Transfer(owner, address(0), tokenId); + } + + /** + * @dev Internal function to burn a specific token + * Reverts if the token does not exist + * @param tokenId uint256 ID of the token being burned + */ + function _burn(uint256 tokenId) internal { + _burn(ownerOf(tokenId), tokenId); + } + + /** + * @dev Internal function to transfer ownership of a given token ID to another address. + * As opposed to transferFrom, this imposes no restrictions on msg.sender. + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + */ + function _transferFrom(address from, address to, uint256 tokenId) internal { + require(ownerOf(tokenId) == from); + require(to != address(0)); + + _clearApproval(tokenId); + + _ownedTokensCount[from].decrement(); + _ownedTokensCount[to].increment(); + + _tokenOwner[tokenId] = to; + + emit Transfer(from, to, tokenId); + } + + /** + * @dev Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + * @param from address representing the previous owner of the given token ID + * @param to target address that will receive the tokens + * @param tokenId uint256 ID of the token to be transferred + * @param _data bytes optional data to send along with the call + * @return bool whether the call correctly returned the expected magic value + */ + function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) + internal returns (bool) + { + if (!to.isContract()) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data); + return (retval == _ERC721_RECEIVED); + } + + /** + * @dev Private function to clear current approval of a given token ID + * @param tokenId uint256 ID of the token to be transferred + */ + function _clearApproval(uint256 tokenId) private { + if (_tokenApprovals[tokenId] != address(0)) { + _tokenApprovals[tokenId] = address(0); + } + } +} + + +/** + * @title ERC-721 Non-Fungible Token with optional enumeration extension logic + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable { + // Mapping from owner to list of owned token IDs + mapping(address => uint256[]) private _ownedTokens; + + // Mapping from token ID to index of the owner tokens list + mapping(uint256 => uint256) private _ownedTokensIndex; + + // Array with all token ids, used for enumeration + uint256[] private _allTokens; + + // Mapping from token id to position in the allTokens array + mapping(uint256 => uint256) private _allTokensIndex; + + /* + * bytes4(keccak256('totalSupply()')) == 0x18160ddd + * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59 + * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7 + * + * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63 + */ + bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63; + + /** + * @dev Constructor function. + */ + constructor () public { + // register the supported interface to conform to ERC721Enumerable via ERC165 + _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE); + } + + /** + * @dev Gets the token ID at a given index of the tokens list of the requested owner. + * @param owner address owning the tokens list to be accessed + * @param index uint256 representing the index to be accessed of the requested tokens list + * @return uint256 token ID at the given index of the tokens list owned by the requested address + */ + function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) { + require(index < balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); + return _ownedTokens[owner][index]; + } + + /** + * @dev Gets the total amount of tokens stored by the contract. + * @return uint256 representing the total amount of tokens + */ + function totalSupply() public view returns (uint256) { + return _allTokens.length; + } + + /** + * @dev Gets the token ID at a given index of all the tokens in this contract + * Reverts if the index is greater or equal to the total number of tokens. + * @param index uint256 representing the index to be accessed of the tokens list + * @return uint256 token ID at the given index of the tokens list + */ + function tokenByIndex(uint256 index) public view returns (uint256) { + require(index < totalSupply(), "ERC721Enumerable: global index out of bounds"); + return _allTokens[index]; + } + + /** + * @dev Internal function to transfer ownership of a given token ID to another address. + * As opposed to transferFrom, this imposes no restrictions on msg.sender. + * @param from current owner of the token + * @param to address to receive the ownership of the given token ID + * @param tokenId uint256 ID of the token to be transferred + */ + function _transferFrom(address from, address to, uint256 tokenId) internal { + super._transferFrom(from, to, tokenId); + + _removeTokenFromOwnerEnumeration(from, tokenId); + + _addTokenToOwnerEnumeration(to, tokenId); + } + + /** + * @dev Internal function to mint a new token. + * Reverts if the given token ID already exists. + * @param to address the beneficiary that will own the minted token + * @param tokenId uint256 ID of the token to be minted + */ + function _mint(address to, uint256 tokenId) internal { + super._mint(to, tokenId); + + _addTokenToOwnerEnumeration(to, tokenId); + + _addTokenToAllTokensEnumeration(tokenId); + } + + /** + * @dev Internal function to burn a specific token. + * Reverts if the token does not exist. + * Deprecated, use _burn(uint256) instead. + * @param owner owner of the token to burn + * @param tokenId uint256 ID of the token being burned + */ + function _burn(address owner, uint256 tokenId) internal { + super._burn(owner, tokenId); + + _removeTokenFromOwnerEnumeration(owner, tokenId); + // Since tokenId will be deleted, we can clear its slot in _ownedTokensIndex to trigger a gas refund + _ownedTokensIndex[tokenId] = 0; + + _removeTokenFromAllTokensEnumeration(tokenId); + } + + /** + * @dev Private function to add a token to this extension's ownership-tracking data structures. + * @param to address representing the new owner of the given token ID + * @param tokenId uint256 ID of the token to be added to the tokens list of the given address + */ + function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { + _ownedTokensIndex[tokenId] = _ownedTokens[to].length; + _ownedTokens[to].push(tokenId); + } + + /** + * @dev Private function to add a token to this extension's token tracking data structures. + * @param tokenId uint256 ID of the token to be added to the tokens list + */ + function _addTokenToAllTokensEnumeration(uint256 tokenId) private { + _allTokensIndex[tokenId] = _allTokens.length; + _allTokens.push(tokenId); + } + + /** + * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that + * while the token is not assigned a new owner, the _ownedTokensIndex mapping is _not_ updated: this allows for + * gas optimizations e.g. when performing a transfer operation (avoiding double writes). + * This has O(1) time complexity, but alters the order of the _ownedTokens array. + * @param from address representing the previous owner of the given token ID + * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address + */ + function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { + // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and + // then delete the last slot (swap and pop). + + uint256 lastTokenIndex = _ownedTokens[from].length.sub(1); + uint256 tokenIndex = _ownedTokensIndex[tokenId]; + + // When the token to delete is the last token, the swap operation is unnecessary + if (tokenIndex != lastTokenIndex) { + uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; + + _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token + _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index + } + + // This also deletes the contents at the last position of the array + _ownedTokens[from].length--; + + // Note that _ownedTokensIndex[tokenId] hasn't been cleared: it still points to the old slot (now occupied by + // lastTokenId, or just over the end of the array if the token was the last one). + } + + /** + * @dev Private function to remove a token from this extension's token tracking data structures. + * This has O(1) time complexity, but alters the order of the _allTokens array. + * @param tokenId uint256 ID of the token to be removed from the tokens list + */ + function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { + // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and + // then delete the last slot (swap and pop). + + uint256 lastTokenIndex = _allTokens.length.sub(1); + uint256 tokenIndex = _allTokensIndex[tokenId]; + + // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so + // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding + // an 'if' statement (like in _removeTokenFromOwnerEnumeration) + uint256 lastTokenId = _allTokens[lastTokenIndex]; + + _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token + _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index + + // This also deletes the contents at the last position of the array + _allTokens.length--; + _allTokensIndex[tokenId] = 0; + } +} + + +/** + * @title HomeWork (version 1) + * @author 0age + * @notice Homework is a utility to find, share, and reuse "home" addresses for + * contracts. Anyone can work to find a new home address by searching for keys, + * a 32-byte value with the first 20 bytes equal to the finder's calling address + * (or derived by hashing an arbitrary 32-byte salt and the caller's address), + * and can then deploy any contract they like (even one with a constructor) to + * the address, or mint an ERC721 token that the owner can redeem that will then + * allow them to do the same. Also, if the contract is `SELFDESTRUCT`ed, a new + * contract can be redeployed by the current controller to the same address! + * @dev This contract allows contract addresses to be located ahead of time, and + * for arbitrary bytecode to be deployed (and redeployed if so desired, i.e. + * metamorphic contracts) to the located address by a designated controller. To + * enable this, the contract first deploys an "initialization-code-in-runtime" + * contract, with the creation code of the contract you want to deploy stored in + * RUNTIME code. Then, to deploy the actual contract, it retrieves the address + * of the storage contract and `DELEGATECALL`s into it to execute the init code + * and, if successful, retrieves and returns the contract runtime code. Rather + * than using a located address directly, you can also lock it in the contract + * and mint and ERC721 token for it, which can then be redeemed in order to gain + * control over deployment to the address (note that tokens may not be minted if + * the contract they control currently has a deployed contract at that address). + * Once a contract undergoes metamorphosis, all existing storage will be deleted + * and any existing contract code will be replaced with the deployed contract + * code of the new implementation contract. The mechanisms behind this contract + * are highly experimental - proceed with caution and please share any exploits + * or optimizations you discover. + */ +contract HomeWork is IHomeWork, ERC721Enumerable, IERC721Metadata, IERC1412 { + // Allocate storage to track the current initialization-in-runtime contract. + address private _initializationRuntimeStorageContract; + + // Finder of home address with lowest uint256 value can recover lost funds. + bytes32 private _highScoreKey; + + // Track information on the Home address corresponding to each key. + mapping (bytes32 => HomeAddress) private _home; + + // Provide optional reverse-lookup for key derivation of a given home address. + mapping (address => KeyInformation) private _key; + + // Set 0xff + address(this) as a constant to use when deriving home addresses. + bytes21 private constant _FF_AND_THIS_CONTRACT = bytes21( + 0xff0000000000001b84b1cb32787B0D64758d019317 + ); + + // Set the address of the tokenURI runtime storage contract as a constant. + address private constant _URI_END_SEGMENT_STORAGE = address( + 0x000000000071C1c84915c17BF21728BfE4Dac3f3 + ); + + // Deploy arbitrary contracts to home addresses using metamorphic init code. + bytes32 private constant _HOME_INIT_CODE = bytes32( + 0x5859385958601c335a585952fa1582838382515af43d3d93833e601e57fd5bf3 + ); + + // Compute hash of above metamorphic init code in order to compute addresses. + bytes32 private constant _HOME_INIT_CODE_HASH = bytes32( + 0x7816562e7f85866cae07183593075f3b5ec32aeff914a0693e20aaf39672babc + ); + + // Write arbitrary code to a contract's runtime using the following prelude. + bytes11 private constant _ARBITRARY_RUNTIME_PRELUDE = bytes11( + 0x600b5981380380925939f3 + ); + + // Set EIP165 interface IDs as constants (already set 165 and 721+enumerable). + bytes4 private constant _INTERFACE_ID_HOMEWORK = 0xe5399799; + /* this.deploy.selector ^ this.lock.selector ^ this.redeem.selector ^ + this.assignController.selector ^ this.relinquishControl.selector ^ + this.redeemAndDeploy.selector ^ this.deriveKey.selector ^ + this.deriveKeyAndLock.selector ^ + this.deriveKeyAndAssignController.selector ^ + this.deriveKeyAndRelinquishControl.selector ^ + this.setReverseLookup.selector ^ this.setDerivedReverseLookup.selector ^ + this.deployRuntimeStorageContract.selector ^ + this.deployViaExistingRuntimeStorageContract.selector ^ + this.redeemAndDeployViaExistingRuntimeStorageContract.selector ^ + this.deriveKeyAndDeploy.selector ^ + this.deriveKeyAndDeployViaExistingRuntimeStorageContract.selector ^ + this.batchLock.selector ^ this.deriveKeysAndBatchLock.selector ^ + this.batchLock_63efZf.selector ^ this.claimHighScore.selector ^ + this.recover.selector ^ this.isDeployable.selector ^ + this.getHighScore.selector ^ this.getHomeAddressInformation.selector ^ + this.hasNeverBeenDeployed.selector ^ this.reverseLookup.selector ^ + this.getDerivedKey.selector ^ this.getHomeAddress.selector ^ + this.getMetamorphicDelegatorInitializationCode.selector ^ + this.getMetamorphicDelegatorInitializationCodeHash.selector ^ + this.getArbitraryRuntimeCodePrelude.selector == 0xe5399799 + */ + + bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f; + + bytes4 private constant _INTERFACE_ID_ERC1412_BATCH_TRANSFERS = 0x2b89bcaa; + + // Set name of this contract as a constant (hex encoding is to support emoji). + string private constant _NAME = ( + hex"486f6d65576f726b20f09f8fa0f09f9ba0efb88f" + ); + + // Set symbol of this contract as a constant. + string private constant _SYMBOL = "HWK"; + + // Set the start of each token URI for issued ERC721 tokens as a constant. + bytes private constant _URI_START_SEGMENT = abi.encodePacked( + hex"646174613a6170706c69636174696f6e2f6a736f6e2c7b226e616d65223a22486f6d65", + hex"253230416464726573732532302d2532303078" + ); /* data:application/json,{"name":"Home%20Address%20-%200x */ + + // Store reused revert messages as constants. + string private constant _ACCOUNT_EXISTS = string( + "Only non-existent accounts can be deployed or used to mint tokens." + ); + + string private constant _ONLY_CONTROLLER = string( + "Only the designated controller can call this function." + ); + + string private constant _NO_INIT_CODE_SUPPLIED = string( + "Cannot deploy a contract with no initialization code supplied." + ); + + /** + * @notice In the constructor, verify that deployment addresses are correct + * and that supplied constant hash value of the contract creation code used to + * deploy arbitrary contracts to home addresses is valid, and set an initial + * high score key with the null address as the high score "holder". ERC165 + * supported interfaces are all registered during initizialization as well. + */ + constructor() public { + // Verify that the deployment address is set correctly as a constant. + assert(address(this) == address(uint160(uint168(_FF_AND_THIS_CONTRACT)))); + + // Verify the derivation of the deployment address. + bytes32 initialDeployKey = bytes32( + 0x486f6d65576f726b20f09f8fa0f09f9ba0efb88faa3c548a76f9bd3c000c0000 + ); + assert(address(this) == address( + uint160( // Downcast to match the address type. + uint256( // Convert to uint to truncate upper digits. + keccak256( // Compute the CREATE2 hash using 4 inputs. + abi.encodePacked( // Pack all inputs to the hash together. + bytes1(0xff), // Start with 0xff to distinguish from RLP. + msg.sender, // The deployer will be the caller. + initialDeployKey, // Pass in the supplied key as the salt. + _HOME_INIT_CODE_HASH // The metamorphic initialization code hash. + ) + ) + ) + ) + )); + + // Verify the derivation of the tokenURI runtime storage address. + bytes32 uriDeployKey = bytes32( + 0x486f6d65576f726b202d20746f6b656e55524920c21352fee5a62228db000000 + ); + bytes32 uriInitCodeHash = bytes32( + 0xdea98294867e3fdc48eb5975ecc53a79e2e1ea6e7e794137a9c34c4dd1565ba2 + ); + assert(_URI_END_SEGMENT_STORAGE == address( + uint160( // Downcast to match the address type. + uint256( // Convert to uint to truncate upper digits. + keccak256( // Compute the CREATE2 hash using 4 inputs. + abi.encodePacked( // Pack all inputs to the hash together. + bytes1(0xff), // Start with 0xff to distinguish from RLP. + msg.sender, // The deployer will be the caller. + uriDeployKey, // Pass in the supplied key as the salt. + uriInitCodeHash // The storage contract init code hash. + ) + ) + ) + ) + )); + + // Verify that the correct runtime code is at the tokenURI storage contract. + bytes32 expectedRuntimeStorageHash = bytes32( + 0x8834602968080bb1df9c44c9834c0a93533b72bbfa3865ee2c5be6a0c4125fc3 + ); + address runtimeStorage = _URI_END_SEGMENT_STORAGE; + bytes32 runtimeStorageHash; + assembly { runtimeStorageHash := extcodehash(runtimeStorage) } + assert(runtimeStorageHash == expectedRuntimeStorageHash); + + // Verify that the supplied hash for the metamorphic init code is valid. + assert(keccak256(abi.encode(_HOME_INIT_CODE)) == _HOME_INIT_CODE_HASH); + + // Set an initial high score key with the null address as the submitter. + _highScoreKey = bytes32( + 0x0000000000000000000000000000000000000000ffffffffffffffffffffffff + ); + + // Register EIP165 interface for HomeWork. + _registerInterface(_INTERFACE_ID_HOMEWORK); + + // Register EIP165 interface for ERC721 metadata. + _registerInterface(_INTERFACE_ID_ERC721_METADATA); + + // Register EIP165 interface for ERC1412 (batch transfers). + _registerInterface(_INTERFACE_ID_ERC1412_BATCH_TRANSFERS); + } + + /** + * @notice Deploy a new contract with the desired initialization code to the + * home address corresponding to a given key. Two conditions must be met: the + * submitter must be designated as the controller of the home address (with + * the initial controller set to the address corresponding to the first twenty + * bytes of the key), and there must not be a contract currently deployed at + * the home address. These conditions can be checked by calling + * `getHomeAddressInformation` and `isDeployable` with the same key. + * @param key bytes32 The unique value used to derive the home address. + * @param initializationCode bytes The contract creation code that will be + * used to deploy the contract to the home address. + * @return The home address of the deployed contract. + * @dev In order to deploy the contract to the home address, a new contract + * will be deployed with runtime code set to the initialization code of the + * contract that will be deployed to the home address. Then, metamorphic + * initialization code will retrieve that initialization code and use it to + * set up and deploy the desired contract to the home address. Bear in mind + * that the deployed contract will interpret msg.sender as the address of THIS + * contract, and not the address of the submitter - if the constructor of the + * deployed contract uses msg.sender to set up ownership or other variables, + * you must modify it to accept a constructor argument with the appropriate + * address, or alternately to hard-code the intended address. Also, if your + * contract DOES have constructor arguments, remember to include them as + * ABI-encoded arguments at the end of the initialization code, just as you + * would when performing a standard deploy. You may also want to provide the + * key to `setReverseLookup` in order to find it again using only the home + * address to prevent accidentally losing the key. + */ + function deploy(bytes32 key, bytes calldata initializationCode) + external + payable + onlyEmpty(key) + onlyControllerDeployer(key) + returns (address homeAddress, bytes32 runtimeCodeHash) + { + // Ensure that initialization code was supplied. + require(initializationCode.length > 0, _NO_INIT_CODE_SUPPLIED); + + // Deploy the initialization storage contract and set address in storage. + _initializationRuntimeStorageContract = _deployRuntimeStorageContract( + initializationCode + ); + + // Use metamorphic initialization code to deploy contract to home address. + (homeAddress, runtimeCodeHash) = _deployToHomeAddress(key); + } + + /** + * @notice Mint an ERC721 token to the supplied owner that can be redeemed in + * order to gain control of a home address corresponding to a given key. Two + * conditions must be met: the submitter must be designated as the controller + * of the home address (with the initial controller set to the address + * corresponding to the first 20 bytes of the key), and there must not be a + * contract currently deployed at the home address. These conditions can be + * checked by calling `getHomeAddressInformation` and `isDeployable` with the + * same key. + * @param key bytes32 The unique value used to derive the home address. + * @param owner address The account that will be granted ownership of the + * ERC721 token. + * @dev In order to mint an ERC721 token, the assocated home address cannot be + * in use, or else the token will not be able to deploy to the home address. + * The controller is set to this contract until the token is redeemed, at + * which point the redeemer designates a new controller for the home address. + * The key of the home address and the tokenID of the ERC721 token are the + * same value, but different types (bytes32 vs. uint256). + */ + function lock(bytes32 key, address owner) + external + onlyEmpty(key) + onlyController(key) + { + // Ensure that the specified owner is a valid ERC721 receiver. + _validateOwner(owner, key); + + // Get the HomeAddress storage struct from the mapping using supplied key. + HomeAddress storage home = _home[key]; + + // Set the exists flag to true and the controller to this contract. + home.exists = true; + home.controller = address(this); + + // Emit an event signifying that this contract is now the controller. + emit NewController(key, address(this)); + + // Mint the ERC721 token to the designated owner. + _mint(owner, uint256(key)); + } + + /** + * @notice Burn an ERC721 token to allow the supplied controller to gain the + * ability to deploy to the home address corresponding to the key matching the + * burned token. The submitter must be designated as either the owner of the + * token or as an approved spender. + * @param tokenId uint256 The ID of the ERC721 token to redeem. + * @param controller address The account that will be granted control of the + * home address corresponding to the given token. + * @dev The controller cannot be designated as the address of this contract, + * the null address, or the home address (the restriction on setting the home + * address as the controller is due to the fact that the home address will not + * be able to deploy to itself, as it needs to be empty before a contract can + * be deployed to it). + */ + function redeem(uint256 tokenId, address controller) + external + onlyTokenOwnerOrApprovedSpender(tokenId) + { + // Convert the token ID to a bytes32 key. + bytes32 key = bytes32(tokenId); + + // Prevent the controller from being set to prohibited account values. + _validateController(controller, key); + + // Burn the ERC721 token in question. + _burn(tokenId); + + // Assign the new controller to the corresponding home address. + _home[key].controller = controller; + + // Emit an event with the new controller. + emit NewController(key, controller); + } + + /** + * @notice Transfer control over deployment to the home address corresponding + * to a given key. The caller must be designated as the current controller of + * the home address (with the initial controller set to the address + * corresponding to the first 20 bytes of the key) - This condition can be + * checked by calling `getHomeAddressInformation` with the same key. + * @param key bytes32 The unique value used to derive the home address. + * @param controller address The account that will be granted control of the + * home address corresponding to the given key. + * @dev The controller cannot be designated as the address of this contract, + * the null address, or the home address (the restriction on setting the home + * address as the controller is due to the fact that the home address will not + * be able to deploy to itself, as it needs to be empty before a contract can + * be deployed to it). + */ + function assignController(bytes32 key, address controller) + external + onlyController(key) + { + // Prevent the controller from being set to prohibited account values. + _validateController(controller, key); + + // Assign the new controller to the corresponding home address. + HomeAddress storage home = _home[key]; + home.exists = true; + home.controller = controller; + + // Emit an event with the new controller. + emit NewController(key, controller); + } + + /** + * @notice Transfer control over deployment to the home address corresponding + * to a given key to the null address, which will prevent it from being + * deployed to again in the future. The caller must be designated as the + * current controller of the corresponding home address (with the initial + * controller set to the address corresponding to the first 20 bytes of the + * key) - This condition can be checked by calling `getHomeAddressInformation` + * with the same key. + * @param key bytes32 The unique value used to derive the home address. + */ + function relinquishControl(bytes32 key) + external + onlyController(key) + { + // Assign the null address as the controller of the given key. + HomeAddress storage home = _home[key]; + home.exists = true; + home.controller = address(0); + + // Emit an event with the null address as the controller. + emit NewController(key, address(0)); + } + + /** + * @notice Burn an ERC721 token, set a supplied controller, and deploy a new + * contract with the supplied initialization code to the corresponding home + * address for the given token. The submitter must be designated as either the + * owner of the token or as an approved spender. + * @param tokenId uint256 The ID of the ERC721 token to redeem. + * @param controller address The account that will be granted control of the + * home address corresponding to the given token. + * @param initializationCode bytes The contract creation code that will be + * used to deploy the contract to the home address. + * @return The home address and runtime code hash of the deployed contract. + * @dev In order to deploy the contract to the home address, a new contract + * will be deployed with runtime code set to the initialization code of the + * contract that will be deployed to the home address. Then, metamorphic + * initialization code will retrieve that initialization code and use it to + * set up and deploy the desired contract to the home address. Bear in mind + * that the deployed contract will interpret msg.sender as the address of THIS + * contract, and not the address of the submitter - if the constructor of the + * deployed contract uses msg.sender to set up ownership or other variables, + * you must modify it to accept a constructor argument with the appropriate + * address, or alternately to hard-code the intended address. Also, if your + * contract DOES have constructor arguments, remember to include them as + * ABI-encoded arguments at the end of the initialization code, just as you + * would when performing a standard deploy. You may also want to provide the + * key to `setReverseLookup` in order to find it again using only the home + * address to prevent accidentally losing the key. The controller cannot be + * designated as the address of this contract, the null address, or the home + * address (the restriction on setting the home address as the controller is + * due to the fact that the home address will not be able to deploy to itself, + * as it needs to be empty before a contract can be deployed to it). Also, + * checks on the contract at the home address being empty or not having the + * correct controller are unnecessary, as they are performed when minting the + * token and cannot be altered until the token is redeemed. + */ + function redeemAndDeploy( + uint256 tokenId, + address controller, + bytes calldata initializationCode + ) + external + payable + onlyTokenOwnerOrApprovedSpender(tokenId) + returns (address homeAddress, bytes32 runtimeCodeHash) + { + // Ensure that initialization code was supplied. + require(initializationCode.length > 0, _NO_INIT_CODE_SUPPLIED); + + // Convert the token ID to a bytes32 key. + bytes32 key = bytes32(tokenId); + + // Prevent the controller from being set to prohibited account values. + _validateController(controller, key); + + // Burn the ERC721 token in question. + _burn(tokenId); + + // Deploy the initialization storage contract and set address in storage. + _initializationRuntimeStorageContract = _deployRuntimeStorageContract( + initializationCode + ); + + // Set provided controller and increment contract deploy count at once. + HomeAddress storage home = _home[key]; + home.exists = true; + home.controller = controller; + home.deploys += 1; + + // Emit an event with the new controller. + emit NewController(key, controller); + + // Use metamorphic initialization code to deploy contract to home address. + (homeAddress, runtimeCodeHash) = _deployToHomeAddress(key); + } + + /** + * @notice Derive a new key by concatenating an arbitrary 32-byte salt value + * and the address of the caller and performing a keccak256 hash. This allows + * for the creation of keys with additional entropy where desired while also + * preventing collisions with standard keys. The caller will be set as the + * controller of the derived key. + * @param salt bytes32 The desired salt value to use (along with the address + * of the caller) when deriving the resultant key and corresponding home + * address. + * @return The derived key. + * @dev Home addresses from derived keys will take longer to "mine" or locate, + * as an additional hash must be performed when computing the corresponding + * home address for each given salt input. Each caller will derive a different + * key even if they are supplying the same salt value. + */ + function deriveKey(bytes32 salt) external returns (bytes32 key) { + // Derive the key using the supplied salt and the calling address. + key = _deriveKey(salt, msg.sender); + + // Register key and set caller as controller if it is not yet registered. + HomeAddress storage home = _home[key]; + if (!home.exists) { + home.exists = true; + home.controller = msg.sender; + + // Emit an event with the sender as the new controller. + emit NewController(key, msg.sender); + } + } + + /** + * @notice Mint an ERC721 token to the supplied owner that can be redeemed in + * order to gain control of a home address corresponding to a given derived + * key. Two conditions must be met: the submitter must be designated as the + * current controller of the home address, and there must not be a contract + * currently deployed at the home address. These conditions can be checked by + * calling `getHomeAddressInformation` and `isDeployable` with the key + * determined by calling `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @param owner address The account that will be granted ownership of the + * ERC721 token. + * @return The derived key. + * @dev In order to mint an ERC721 token, the assocated home address cannot be + * in use, or else the token will not be able to deploy to the home address. + * The controller is set to this contract until the token is redeemed, at + * which point the redeemer designates a new controller for the home address. + * The key of the home address and the tokenID of the ERC721 token are the + * same value, but different types (bytes32 vs. uint256). + */ + function deriveKeyAndLock(bytes32 salt, address owner) + external + returns (bytes32 key) + { + // Derive the key using the supplied salt and the calling address. + key = _deriveKey(salt, msg.sender); + + // Ensure that the specified owner is a valid ERC721 receiver. + _validateOwner(owner, key); + + // Ensure that a contract is not currently deployed to the home address. + require(_isNotDeployed(key), _ACCOUNT_EXISTS); + + // Ensure that the caller is the controller of the derived key. + HomeAddress storage home = _home[key]; + if (home.exists) { + require(home.controller == msg.sender, _ONLY_CONTROLLER); + } + + // Set the exists flag to true and the controller to this contract. + home.exists = true; + home.controller = address(this); + + // Mint the ERC721 token to the designated owner. + _mint(owner, uint256(key)); + + // Emit an event signifying that this contract is now the controller. + emit NewController(key, address(this)); + } + + /** + * @notice Transfer control over deployment to the home address corresponding + * to a given derived key. The caller must be designated as the current + * controller of the home address - This condition can be checked by calling + * `getHomeAddressInformation` with the key obtained via `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @param controller address The account that will be granted control of the + * home address corresponding to the given derived key. + * @return The derived key. + * @dev The controller cannot be designated as the address of this contract, + * the null address, or the home address (the restriction on setting the home + * address as the controller is due to the fact that the home address will not + * be able to deploy to itself, as it needs to be empty before a contract can + * be deployed to it). + */ + function deriveKeyAndAssignController(bytes32 salt, address controller) + external + returns (bytes32 key) + { + // Derive the key using the supplied salt and the calling address. + key = _deriveKey(salt, msg.sender); + + // Prevent the controller from being set to prohibited account values. + _validateController(controller, key); + + // Ensure that the caller is the controller of the derived key. + HomeAddress storage home = _home[key]; + if (home.exists) { + require(home.controller == msg.sender, _ONLY_CONTROLLER); + } + + // Assign the new controller to the corresponding home address. + home.exists = true; + home.controller = controller; + + // Emit an event with the new controller. + emit NewController(key, controller); + } + + /** + * @notice Transfer control over deployment to the home address corresponding + * to a given derived key to the null address, which will prevent it from + * being deployed to again in the future. The caller must be designated as the + * current controller of the home address - This condition can be checked by + * calling `getHomeAddressInformation` with the key determined by calling + * `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @return The derived key. + */ + function deriveKeyAndRelinquishControl(bytes32 salt) + external + returns (bytes32 key) + { + // Derive the key using the supplied salt and the calling address. + key = _deriveKey(salt, msg.sender); + + // Ensure that the caller is the controller of the derived key. + HomeAddress storage home = _home[key]; + if (home.exists) { + require(home.controller == msg.sender, _ONLY_CONTROLLER); + } + + // Assign the null address as the controller of the given derived key. + home.exists = true; + home.controller = address(0); + + // Emit an event with the null address as the controller. + emit NewController(key, address(0)); + } + + /** + * @notice Record a key that corresponds to a given home address by supplying + * said key and using it to derive the address. This enables reverse lookup + * of a key using only the home address in question. This method may be called + * by anyone - control of the key is not required. + * @param key bytes32 The unique value used to derive the home address. + * @dev This does not set the salt or submitter fields, as those apply only to + * derived keys (although a derived key may also be set with this method, just + * without the derived fields). + */ + function setReverseLookup(bytes32 key) external { + // Derive home address of given key and set home address and key in mapping. + _key[_getHomeAddress(key)].key = key; + } + + /** + * @notice Record the derived key that corresponds to a given home address by + * supplying the salt and submitter that were used to derive the key. This + * facititates reverse lookup of the derivation method of a key using only the + * home address in question. This method may be called by anyone - control of + * the derived key is not required. + * @param salt bytes32 The salt value that is used to derive the key. + * @param submitter address The account that submits the salt that is used to + * derive the key. + */ + function setDerivedReverseLookup(bytes32 salt, address submitter) external { + // Derive the key using the supplied salt and submitter. + bytes32 key = _deriveKey(salt, submitter); + + // Derive home address and set it along with all other relevant information. + _key[_getHomeAddress(key)] = KeyInformation({ + key: key, + salt: salt, + submitter: submitter + }); + } + + /** + * @notice Deploy a new storage contract with the supplied code as runtime + * code without deploying a contract to a home address. This can be used to + * store the contract creation code for use in future deployments of contracts + * to home addresses. + * @param codePayload bytes The code to set as the runtime code of the + * deployed contract. + * @return The address of the deployed storage contract. + * @dev Consider placing adequate protections on the storage contract to + * prevent unwanted callers from modifying or destroying it. Also, if you are + * placing contract contract creation code into the runtime storage contract, + * remember to include any constructor parameters as ABI-encoded arguments at + * the end of the contract creation code, similar to how you would perform a + * standard deployment. + */ + function deployRuntimeStorageContract(bytes calldata codePayload) + external + returns (address runtimeStorageContract) + { + // Ensure that a code payload was supplied. + require(codePayload.length > 0, "No runtime code payload supplied."); + + // Deploy payload to the runtime storage contract and return the address. + runtimeStorageContract = _deployRuntimeStorageContract(codePayload); + } + + /** + * @notice Deploy a new contract with the initialization code stored in the + * runtime code at the specified initialization runtime storage contract to + * the home address corresponding to a given key. Two conditions must be met: + * the submitter must be designated as the controller of the home address + * (with the initial controller set to the address corresponding to the first + * 20 bytes of the key), and there must not be a contract currently deployed + * at the home address. These conditions can be checked by calling + * `getHomeAddressInformation` and `isDeployable` with the same key. + * @param key bytes32 The unique value used to derive the home address. + * @param initializationRuntimeStorageContract address The storage contract + * with runtime code equal to the contract creation code that will be used to + * deploy the contract to the home address. + * @return The home address and runtime code hash of the deployed contract. + * @dev When deploying a contract to a home address via this method, the + * metamorphic initialization code will retrieve whatever initialization code + * currently resides at the specified address and use it to set up and deploy + * the desired contract to the home address. Bear in mind that the deployed + * contract will interpret msg.sender as the address of THIS contract, and not + * the address of the submitter - if the constructor of the deployed contract + * uses msg.sender to set up ownership or other variables, you must modify it + * to accept a constructor argument with the appropriate address, or + * alternately to hard-code the intended address. Also, if your contract DOES + * have constructor arguments, remember to include them as ABI-encoded + * arguments at the end of the initialization code, just as you would when + * performing a standard deploy. You may also want to provide the key to + * `setReverseLookup` in order to find it again using only the home address to + * prevent accidentally losing the key. + */ + function deployViaExistingRuntimeStorageContract( + bytes32 key, + address initializationRuntimeStorageContract + ) + external + payable + onlyEmpty(key) + onlyControllerDeployer(key) + returns (address homeAddress, bytes32 runtimeCodeHash) + { + // Ensure that the supplied runtime storage contract is not empty. + _validateRuntimeStorageIsNotEmpty(initializationRuntimeStorageContract); + + // Set initialization runtime storage contract address in contract storage. + _initializationRuntimeStorageContract = initializationRuntimeStorageContract; + + // Use metamorphic initialization code to deploy contract to home address. + (homeAddress, runtimeCodeHash) = _deployToHomeAddress(key); + } + + /** + * @notice Burn an ERC721 token, set a supplied controller, and deploy a new + * contract with the initialization code stored in the runtime code at the + * specified initialization runtime storage contract to the home address + * corresponding to a given key. The submitter must be designated as either + * the owner of the token or as an approved spender. + * @param tokenId uint256 The ID of the ERC721 token to redeem. + * @param controller address The account that will be granted control of the + * home address corresponding to the given token. + * @param initializationRuntimeStorageContract address The storage contract + * with runtime code equal to the contract creation code that will be used to + * deploy the contract to the home address. + * @return The home address and runtime code hash of the deployed contract. + * @dev When deploying a contract to a home address via this method, the + * metamorphic initialization code will retrieve whatever initialization code + * currently resides at the specified address and use it to set up and deploy + * the desired contract to the home address. Bear in mind that the deployed + * contract will interpret msg.sender as the address of THIS contract, and not + * the address of the submitter - if the constructor of the deployed contract + * uses msg.sender to set up ownership or other variables, you must modify it + * to accept a constructor argument with the appropriate address, or + * alternately to hard-code the intended address. Also, if your contract DOES + * have constructor arguments, remember to include them as ABI-encoded + * arguments at the end of the initialization code, just as you would when + * performing a standard deploy. You may also want to provide the key to + * `setReverseLookup` in order to find it again using only the home address to + * prevent accidentally losing the key. The controller cannot be designated as + * the address of this contract, the null address, or the home address (the + * restriction on setting the home address as the controller is due to the + * fact that the home address will not be able to deploy to itself, as it + * needs to be empty before a contract can be deployed to it). Also, checks on + * the contract at the home address being empty or not having the correct + * controller are unnecessary, as they are performed when minting the token + * and cannot be altered until the token is redeemed. + */ + function redeemAndDeployViaExistingRuntimeStorageContract( + uint256 tokenId, + address controller, + address initializationRuntimeStorageContract + ) + external + payable + onlyTokenOwnerOrApprovedSpender(tokenId) + returns (address homeAddress, bytes32 runtimeCodeHash) + { + // Ensure that the supplied runtime storage contract is not empty. + _validateRuntimeStorageIsNotEmpty(initializationRuntimeStorageContract); + + // Convert the token ID to a bytes32 key. + bytes32 key = bytes32(tokenId); + + // Prevent the controller from being set to prohibited account values. + _validateController(controller, key); + + // Burn the ERC721 token in question. + _burn(tokenId); + + // Set initialization runtime storage contract address in contract storage. + _initializationRuntimeStorageContract = initializationRuntimeStorageContract; + + // Set provided controller and increment contract deploy count at once. + HomeAddress storage home = _home[key]; + home.exists = true; + home.controller = controller; + home.deploys += 1; + + // Emit an event with the new controller. + emit NewController(key, controller); + + // Use metamorphic initialization code to deploy contract to home address. + (homeAddress, runtimeCodeHash) = _deployToHomeAddress(key); + } + + /** + * @notice Deploy a new contract with the desired initialization code to the + * home address corresponding to a given derived key. Two conditions must be + * met: the submitter must be designated as the controller of the home + * address, and there must not be a contract currently deployed at the home + * address. These conditions can be checked by calling + * `getHomeAddressInformation` and `isDeployable` with the key obtained by + * calling `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @param initializationCode bytes The contract creation code that will be + * used to deploy the contract to the home address. + * @return The home address, derived key, and runtime code hash of the + * deployed contract. + * @dev In order to deploy the contract to the home address, a new contract + * will be deployed with runtime code set to the initialization code of the + * contract that will be deployed to the home address. Then, metamorphic + * initialization code will retrieve that initialization code and use it to + * set up and deploy the desired contract to the home address. Bear in mind + * that the deployed contract will interpret msg.sender as the address of THIS + * contract, and not the address of the submitter - if the constructor of the + * deployed contract uses msg.sender to set up ownership or other variables, + * you must modify it to accept a constructor argument with the appropriate + * address, or alternately to hard-code the intended address. Also, if your + * contract DOES have constructor arguments, remember to include them as + * ABI-encoded arguments at the end of the initialization code, just as you + * would when performing a standard deploy. You may want to provide the salt + * and submitter to `setDerivedReverseLookup` in order to find the salt, + * submitter, and derived key using only the home address to prevent + * accidentally losing them. + */ + function deriveKeyAndDeploy(bytes32 salt, bytes calldata initializationCode) + external + payable + returns (address homeAddress, bytes32 key, bytes32 runtimeCodeHash) + { + // Ensure that initialization code was supplied. + require(initializationCode.length > 0, _NO_INIT_CODE_SUPPLIED); + + // Derive key and prepare to deploy using supplied salt and calling address. + key = _deriveKeyAndPrepareToDeploy(salt); + + // Deploy the initialization storage contract and set address in storage. + _initializationRuntimeStorageContract = _deployRuntimeStorageContract( + initializationCode + ); + + // Use metamorphic initialization code to deploy contract to home address. + (homeAddress, runtimeCodeHash) = _deployToHomeAddress(key); + } + + /** + * @notice Deploy a new contract with the initialization code stored in the + * runtime code at the specified initialization runtime storage contract to + * the home address corresponding to a given derived key. Two conditions must + * be met: the submitter must be designated as the controller of the home + * address, and there must not be a contract currently deployed at the home + * address. These conditions can be checked by calling + * `getHomeAddressInformation` and `isDeployable` with the key obtained by + * calling `getDerivedKey`. + * @param salt bytes32 The salt value that is used to derive the key. + * @param initializationRuntimeStorageContract address The storage contract + * with runtime code equal to the contract creation code that will be used to + * deploy the contract to the home address. + * @return The home address, derived key, and runtime code hash of the + * deployed contract. + * @dev When deploying a contract to a home address via this method, the + * metamorphic initialization code will retrieve whatever initialization code + * currently resides at the specified address and use it to set up and deploy + * the desired contract to the home address. Bear in mind that the deployed + * contract will interpret msg.sender as the address of THIS contract, and not + * the address of the submitter - if the constructor of the deployed contract + * uses msg.sender to set up ownership or other variables, you must modify it + * to accept a constructor argument with the appropriate address, or + * alternately to hard-code the intended address. Also, if your contract DOES + * have constructor arguments, remember to include them as ABI-encoded + * arguments at the end of the initialization code, just as you would when + * performing a standard deploy. You may want to provide the salt and + * submitter to `setDerivedReverseLookup` in order to find the salt, + * submitter, and derived key using only the home address to prevent + * accidentally losing them. + */ + function deriveKeyAndDeployViaExistingRuntimeStorageContract( + bytes32 salt, + address initializationRuntimeStorageContract + ) + external + payable + returns (address homeAddress, bytes32 key, bytes32 runtimeCodeHash) + { + // Ensure that the supplied runtime storage contract is not empty. + _validateRuntimeStorageIsNotEmpty(initializationRuntimeStorageContract); + + // Derive key and prepare to deploy using supplied salt and calling address. + key = _deriveKeyAndPrepareToDeploy(salt); + + // Set the initialization runtime storage contract in contract storage. + _initializationRuntimeStorageContract = initializationRuntimeStorageContract; + + // Use metamorphic initialization code to deploy contract to home address. + (homeAddress, runtimeCodeHash) = _deployToHomeAddress(key); + } + + /** + * @notice Mint multiple ERC721 tokens, designated by their keys, to the + * specified owner. Keys that aren't controlled, or that point to home + * addresses that are currently deployed, will be skipped. + * @param owner address The account that will be granted ownership of the + * ERC721 tokens. + * @param keys bytes32[] An array of values used to derive each home address. + * @dev If you plan to use this method regularly or want to keep gas costs to + * an absolute minimum, and are willing to go without standard ABI encoding, + * see `batchLock_63efZf` for a more efficient (and unforgiving) + * implementation. For batch token minting with *derived* keys, see + * `deriveKeysAndBatchLock`. + */ + function batchLock(address owner, bytes32[] calldata keys) external { + // Track each key in the array of keys. + bytes32 key; + + // Ensure that the specified owner is a valid ERC721 receiver. + if (keys.length > 0) { + _validateOwner(owner, keys[0]); + } + + // Iterate through each provided key argument. + for (uint256 i; i < keys.length; i++) { + key = keys[i]; + + // Skip if the key currently has a contract deployed to its home address. + if (!_isNotDeployed(key)) { + continue; + } + + // Skip if the caller is not the controller. + if (_getController(key) != msg.sender) { + continue; + } + + // Set the exists flag to true and the controller to this contract. + HomeAddress storage home = _home[key]; + home.exists = true; + home.controller = address(this); + + // Emit an event signifying that this contract is now the controller. + emit NewController(key, address(this)); + + // Mint the ERC721 token to the designated owner. + _mint(owner, uint256(key)); + } + } + + /** + * @notice Mint multiple ERC721 tokens, designated by salts that are hashed + * with the caller's address to derive each key, to the specified owner. + * Derived keys that aren't controlled, or that point to home addresses that + * are currently deployed, will be skipped. + * @param owner address The account that will be granted ownership of the + * ERC721 tokens. + * @param salts bytes32[] An array of values used to derive each key and + * corresponding home address. + * @dev See `batchLock` for batch token minting with standard, non-derived + * keys. + */ + function deriveKeysAndBatchLock(address owner, bytes32[] calldata salts) + external + { + // Track each key derived from the array of salts. + bytes32 key; + + // Ensure that the specified owner is a valid ERC721 receiver. + if (salts.length > 0) { + _validateOwner(owner, _deriveKey(salts[0], msg.sender)); + } + + // Iterate through each provided salt argument. + for (uint256 i; i < salts.length; i++) { + // Derive the key using the supplied salt and the calling address. + key = _deriveKey(salts[i], msg.sender); + + // Skip if the key currently has a contract deployed to its home address. + if (!_isNotDeployed(key)) { + continue; + } + + // Skip if the caller is not the controller. + HomeAddress storage home = _home[key]; + if (home.exists && home.controller != msg.sender) { + continue; + } + + // Set the exists flag to true and the controller to this contract. + home.exists = true; + home.controller = address(this); + + // Emit an event signifying that this contract is now the controller. + emit NewController(key, address(this)); + + // Mint the ERC721 token to the designated owner. + _mint(owner, uint256(key)); + } + } + + /** + * @notice Safely transfers the ownership of a group of token IDs to another + * address in a batch. If the target address is a contract, it must implement + * `onERC721Received`, called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, or if another error occurs, the entire batch is reverted. + * Requires msg.sender to be the owner, approved, or operator of the tokens. + * @param from address The current owner of the tokens. + * @param to address The account to receive ownership of the given tokens. + * @param tokenIds uint256[] ID of the tokens to be transferred. + */ + function safeBatchTransferFrom( + address from, + address to, + uint256[] calldata tokenIds + ) + external + { + // Track each token ID in the batch. + uint256 tokenId; + + // Iterate over each supplied token ID. + for (uint256 i = 0; i < tokenIds.length; i++) { + // Set the current token ID. + tokenId = tokenIds[i]; + + // Perform the token transfer. + safeTransferFrom(from, to, tokenId); + } + } + + /** + * @notice Safely transfers the ownership of a group of token IDs to another + * address in a batch. If the target address is a contract, it must implement + * `onERC721Received`, called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, or if another error occurs, the entire batch is reverted. + * Requires msg.sender to be the owner, approved, or operator of the tokens. + * @param from address The current owner of the tokens. + * @param to address The account to receive ownership of the given tokens. + * @param tokenIds uint256[] ID of the tokens to be transferred. + * @param data bytes A data payload to include with each transfer. + */ + function safeBatchTransferFrom( + address from, + address to, + uint256[] calldata tokenIds, + bytes calldata data + ) + external + { + // Track each token ID in the batch. + uint256 tokenId; + + // Iterate over each supplied token ID. + for (uint256 i = 0; i < tokenIds.length; i++) { + // Set the current token ID. + tokenId = tokenIds[i]; + + // Perform the token transfer. + safeTransferFrom(from, to, tokenId, data); + } + } + + /** + * @notice Efficient version of `batchLock` that uses less gas. The first 20 + * bytes of each key are automatically populated using msg.sender, and the + * remaining key segments are passed in as a packed byte array, using twelve + * bytes per segment, with a function selector of 0x00000000 followed by a + * twenty-byte segment for the desired owner of the minted ERC721 tokens. Note + * that an attempt to lock a key that is not controlled or with its contract + * already deployed will cause the entire batch to revert. Checks on whether + * the owner is a valid ERC721 receiver are also skipped, similar to using + * `transferFrom` instead of `safeTransferFrom`. + */ + function batchLock_63efZf(/* packed owner and key segments */) external { + // Get the owner from calldata, located at bytes 4-23 (sig is bytes 0-3). + address owner; + + // Determine number of 12-byte key segments in calldata from byte 24 on. + uint256 passedSaltSegments; + + // Get the owner and calculate the total number of key segments. + assembly { + owner := shr(0x60, calldataload(4)) // comes after sig + passedSaltSegments := div(sub(calldatasize, 24), 12) // after sig & owner + } + + // Track each key, located at each 12-byte segment from byte 24 on. + bytes32 key; + + // Iterate through each provided key segment argument. + for (uint256 i; i < passedSaltSegments; i++) { + // Construct keys by concatenating msg.sender with each key segment. + assembly { + key := add( // Combine msg.sender & provided key. + shl(0x60, caller), // Place msg.sender at start of word. + shr(0xa0, calldataload(add(24, mul(i, 12)))) // Segment at end. + ) + } + + // Ensure that the key does not currently have a deployed contract. + require(_isNotDeployed(key), _ACCOUNT_EXISTS); + + // Ensure that the caller is the controller of the key. + HomeAddress storage home = _home[key]; + if (home.exists) { + require(home.controller == msg.sender, _ONLY_CONTROLLER); + } + + // Set the exists flag to true and the controller to this contract. + home.exists = true; + home.controller = address(this); + + // Emit an event signifying that this contract is now the controller. + emit NewController(key, address(this)); + + // Mint the ERC721 token to the designated owner. + _mint(owner, uint256(key)); + } + } + + /** + * @notice Perform a dry-run of the deployment of a contract using a given key + * and revert on successful deployment. It cannot be called from outside the + * contract (even though it is marked as external). + * @param key bytes32 The unique value used to derive the home address. + * @dev This contract is called by `_isNotDeployable` in extreme cases where + * the deployability of the contract cannot be determined conclusively. + */ + function staticCreate2Check(bytes32 key) external { + require( + msg.sender == address(this), + "This function can only be called by this contract." + ); + + assembly { + // Write the 32-byte metamorphic initialization code to scratch space. + mstore( + 0, + 0x5859385958601c335a585952fa1582838382515af43d3d93833e601e57fd5bf3 + ) + + // Call `CREATE2` using metamorphic init code with supplied key as salt. + let deploymentAddress := create2(0, 0, 32, key) + + // Revert and return the metamorphic init code on successful deployment. + if deploymentAddress { + revert(0, 32) + } + } + } + + /** + * @notice Submit a key to claim the "high score" - the lower the uint160 + * value of the key's home address, the higher the score. The high score + * holder has the exclusive right to recover lost ether and tokens on this + * contract. + * @param key bytes32 The unique value used to derive the home address that + * will determine the resultant score. + * @dev The high score must be claimed by a direct key (one that is submitted + * by setting the first 20 bytes of the key to the address of the submitter) + * and not by a derived key, and is non-transferrable. If you want to help + * people recover their lost tokens, you might consider deploying a contract + * to the high score address (probably a metamorphic one so that you can use + * the home address later) with your contact information. + */ + function claimHighScore(bytes32 key) external { + require( + msg.sender == address(bytes20(key)), + "Only submitters directly encoded in a given key may claim a high score." + ); + + // Derive the "home address" of the current high score key. + address currentHighScore = _getHomeAddress(_highScoreKey); + + // Derive the "home address" of the new high score key. + address newHighScore = _getHomeAddress(key); + + // Use addresses to ensure that supplied key is in fact a new high score. + require( + uint160(newHighScore) < uint160(currentHighScore), + "Submitted high score is not better than the current high score." + ); + + // Set the new high score to the supplied key. + _highScoreKey = key; + + // The score is equal to (2^160 - 1) - ("home address" of high score key). + uint256 score = uint256(uint160(-1) - uint160(newHighScore)); + + // Emit an event to signify that a new high score has been reached. + emit NewHighScore(key, msg.sender, score); + } + + /** + * @notice Transfer any ether or ERC20 tokens that have somehow ended up at + * this contract by specifying a token address (set to the null address for + * ether) as well as a recipient address. Only the high score holder can + * recover lost ether and tokens on this contract. + * @param token address The contract address of the ERC20 token to recover, or + * the null address for recovering Ether. + * @param recipient address payable The account where recovered funds should + * be transferred. + * @dev If you are trying to recover funds that were accidentally sent into + * this contract, see if you can contact the holder of the current high score, + * found by calling `getHighScore`. Better yet, try to find a new high score + * yourself! + */ + function recover(IERC20 token, address payable recipient) external { + require( + msg.sender == address(bytes20(_highScoreKey)), + "Only the current high score holder may recover tokens." + ); + + if (address(token) == address(0)) { + // Recover ETH if the token's contract address is set to the null address. + recipient.transfer(address(this).balance); + } else { + // Determine the given ERC20 token balance and transfer to the recipient. + uint256 balance = token.balanceOf(address(this)); + token.transfer(recipient, balance); + } + } + + /** + * @notice "View" function to determine if a contract can currently be + * deployed to a home address given the corresponding key. A contract is only + * deployable if no account currently exists at the address - any existing + * contract must be destroyed via `SELFDESTRUCT` before a new contract can be + * deployed to a home address. This method does not modify state but is + * inaccessible via staticcall. + * @param key bytes32 The unique value used to derive the home address. + * @return A boolean signifying if a contract can be deployed to the home + * address that corresponds to the provided key. + * @dev This will not detect if a contract is not deployable due control + * having been relinquished on the key. + */ + function isDeployable(bytes32 key) + external + /* view */ + returns (bool deployable) + { + deployable = _isNotDeployed(key); + } + + /** + * @notice View function to get the current "high score", or the lowest + * uint160 value of a home address of all keys submitted. The high score + * holder has the exclusive right to recover lost ether and tokens on this + * contract. + * @return The current high score holder, their score, and the submitted key. + */ + function getHighScore() + external + view + returns (address holder, uint256 score, bytes32 key) + { + // Get the key and subbmitter holding the current high score. + key = _highScoreKey; + holder = address(bytes20(key)); + + // The score is equal to (2^160 - 1) - ("home address" of high score key). + score = uint256(uint160(-1) - uint160(_getHomeAddress(key))); + } + + /** + * @notice View function to get information on a home address given the + * corresponding key. + * @param key bytes32 The unique value used to derive the home address. + * @return The home address, the current controller of the address, the number + * of times the home address has been deployed to, and the code hash of the + * runtime currently found at the home address, if any. + * @dev There is also an `isDeployable` method for determining if a contract + * can be deployed to the address, but in extreme cases it must actually + * perform a dry-run to determine if the contract is deployable, which means + * that it does not support staticcalls. There is also a convenience method, + * `hasNeverBeenDeployed`, but the information it conveys can be determined + * from this method alone as well. + */ + function getHomeAddressInformation(bytes32 key) + external + view + returns ( + address homeAddress, + address controller, + uint256 deploys, + bytes32 currentRuntimeCodeHash + ) + { + // Derive home address and retrieve other information using supplied key. + homeAddress = _getHomeAddress(key); + HomeAddress memory home = _home[key]; + + // If the home address has not been seen before, use the default controller. + if (!home.exists) { + controller = address(bytes20(key)); + } else { + controller = home.controller; + } + + // Retrieve the count of total deploys to the home address. + deploys = home.deploys; + + // Retrieve keccak256 hash of runtime code currently at the home address. + assembly { currentRuntimeCodeHash := extcodehash(homeAddress) } + } + + /** + * @notice View function to determine if no contract has ever been deployed to + * a home address given the corresponding key. This can be used to ensure that + * a given key or corresponding token is "new" or not. + * @param key bytes32 The unique value used to derive the home address. + * @return A boolean signifying if a contract has never been deployed using + * the supplied key before. + */ + function hasNeverBeenDeployed(bytes32 key) + external + view + returns (bool neverBeenDeployed) + { + neverBeenDeployed = (_home[key].deploys == 0); + } + + /** + * @notice View function to search for a known key, salt, and/or submitter + * given a supplied home address. Keys can be controlled directly by an + * address that matches the first 20 bytes of the key, or they can be derived + * from a salt and a submitter - if the key is not a derived key, the salt and + * submitter fields will both have a value of zero. + * @param homeAddress address The home address to check for key information. + * @return The key, salt, and/or submitter used to deploy to the home address, + * assuming they have been submitted to the reverse lookup. + * @dev To populate these values, call `setReverseLookup` for cases where keys + * are used directly or are the only value known, or `setDerivedReverseLookup` + * for cases where keys are derived from a known salt and submitter. + */ + function reverseLookup(address homeAddress) + external + view + returns (bytes32 key, bytes32 salt, address submitter) + { + KeyInformation memory keyInformation = _key[homeAddress]; + key = keyInformation.key; + salt = keyInformation.salt; + submitter = keyInformation.submitter; + } + + /** + * @notice View function used by the metamorphic initialization code when + * deploying a contract to a home address. It returns the address of the + * runtime storage contract that holds the contract creation code, which the + * metamorphic creation code then `DELEGATECALL`s into in order to set up the + * contract and deploy the target runtime code. + * @return The current runtime storage contract that contains the target + * contract creation code. + * @dev This method is not meant to be part of the user-facing contract API, + * but is rather a mechanism for enabling the deployment of arbitrary code via + * fixed initialization code. The odd naming is chosen so that function + * selector will be 0x00000009 - that way, the metamorphic contract can simply + * use the `PC` opcode in order to push the selector to the stack. + */ + function getInitializationCodeFromContractRuntime_6CLUNS() + external + view + returns (address initializationRuntimeStorageContract) + { + // Return address of contract with initialization code set as runtime code. + initializationRuntimeStorageContract = _initializationRuntimeStorageContract; + } + + /** + * @notice View function to return an URI for a given token ID. Throws if the + * token ID does not exist. + * @param tokenId uint256 ID of the token to query. + * @return String representing the URI data encoding of JSON metadata. + * @dev The URI returned by this method takes the following form (with all + * returns and initial whitespace removed - it's just here for clarity): + * + * data:application/json,{ + * "name":"Home%20Address%20-%200x********************", + * "description":"< ... HomeWork NFT desription ... >", + * "image":"data:image/svg+xml;charset=utf-8;base64,< ... Image ... >"} + * + * where ******************** represents the checksummed home address that the + * token confers control over. + */ + function tokenURI(uint256 tokenId) + external + view + returns (string memory) + { + // Only return a URI for tokens that exist. + require(_exists(tokenId), "A token with the given ID does not exist."); + + // Get the home address that the given tokenId corresponds to. + address homeAddress = _getHomeAddress(bytes32(tokenId)); + + // Get the checksummed, ascii-encoded representation of the home address. + string memory asciiHomeAddress = _toChecksummedAsciiString(homeAddress); + + bytes memory uriEndSegment = _getTokenURIStorageRuntime(); + + // Insert checksummed address into URI in name and image fields and return. + return string( + abi.encodePacked( // Concatenate all the string segments together. + _URI_START_SEGMENT, // Data URI ID and initial formatting is constant. + asciiHomeAddress, // Checksummed home address is in the name field. + uriEndSegment // Description, image, and formatting is constant. + ) + ); + } + + /** + * @notice Pure function to get the token name. + * @return String representing the token name. + */ + function name() external pure returns (string memory) { + return _NAME; + } + + /** + * @notice Pure function to get the token symbol. + * @return String representing the token symbol. + */ + function symbol() external pure returns (string memory) { + return _SYMBOL; + } + + /** + * @notice Pure function to determine the key that is derived from a given + * salt and submitting address. + * @param salt bytes32 The salt value that is used to derive the key. + * @param submitter address The submitter of the salt value used to derive the + * key. + * @return The derived key. + */ + function getDerivedKey(bytes32 salt, address submitter) + external + pure + returns (bytes32 key) + { + // Derive the key using the supplied salt and submitter. + key = _deriveKey(salt, submitter); + } + + /** + * @notice Pure function to determine the home address that corresponds to + * a given key. + * @param key bytes32 The unique value used to derive the home address. + * @return The home address. + */ + function getHomeAddress(bytes32 key) + external + pure + returns (address homeAddress) + { + // Derive the home address using the supplied key. + homeAddress = _getHomeAddress(key); + } + + /** + * @notice Pure function for retrieving the metamorphic initialization code + * used to deploy arbitrary contracts to home addresses. Provided for easy + * verification and for use in other applications. + * @return The 32-byte metamorphic initialization code. + * @dev This metamorphic init code works via the "metamorphic delegator" + * mechanism, which is explained in greater detail at `_deployToHomeAddress`. + */ + function getMetamorphicDelegatorInitializationCode() + external + pure + returns (bytes32 metamorphicDelegatorInitializationCode) + { + metamorphicDelegatorInitializationCode = _HOME_INIT_CODE; + } + + /** + * @notice Pure function for retrieving the keccak256 of the metamorphic + * initialization code used to deploy arbitrary contracts to home addresses. + * This is the value that you should use, along with this contract's address + * and a caller address that you control, to mine for an partucular type of + * home address (such as one at a compact or gas-efficient address). + * @return The keccak256 hash of the metamorphic initialization code. + */ + function getMetamorphicDelegatorInitializationCodeHash() + external + pure + returns (bytes32 metamorphicDelegatorInitializationCodeHash) + { + metamorphicDelegatorInitializationCodeHash = _HOME_INIT_CODE_HASH; + } + + /** + * @notice Pure function for retrieving the prelude that will be inserted + * ahead of the code payload in order to deploy a runtime storage contract. + * @return The 11-byte "arbitrary runtime" prelude. + */ + function getArbitraryRuntimeCodePrelude() + external + pure + returns (bytes11 prelude) + { + prelude = _ARBITRARY_RUNTIME_PRELUDE; + } + + /** + * @notice Internal function for deploying a runtime storage contract given a + * particular payload. + * @return The address of the runtime storage contract. + * @dev To take the provided code payload and deploy a contract with that + * payload as its runtime code, use the following prelude: + * + * 0x600b5981380380925939f3... + * + * 00 60 push1 0b [11 -> offset] + * 02 59 msize [offset, 0] + * 03 81 dup2 [offset, 0, offset] + * 04 38 codesize [offset, 0, offset, codesize] + * 05 03 sub [offset, 0, codesize - offset] + * 06 80 dup1 [offset, 0, codesize - offset, codesize - offset] + * 07 92 swap3 [codesize - offset, 0, codesize - offset, offset] + * 08 59 msize [codesize - offset, 0, codesize - offset, offset, 0] + * 09 39 codecopy [codesize - offset, 0] + * 10 f3 return [] *init_code_in_runtime* + * ... init_code + */ + function _deployRuntimeStorageContract(bytes memory payload) + internal + returns (address runtimeStorageContract) + { + // Construct the contract creation code using the prelude and the payload. + bytes memory runtimeStorageContractCreationCode = abi.encodePacked( + _ARBITRARY_RUNTIME_PRELUDE, + payload + ); + + assembly { + // Get the location and length of the newly-constructed creation code. + let encoded_data := add(0x20, runtimeStorageContractCreationCode) + let encoded_size := mload(runtimeStorageContractCreationCode) + + // Deploy the runtime storage contract via standard `CREATE`. + runtimeStorageContract := create(0, encoded_data, encoded_size) + + // Pass along revert message if the contract did not deploy successfully. + if iszero(runtimeStorageContract) { + returndatacopy(0, 0, returndatasize) + revert(0, returndatasize) + } + } + + // Emit an event with address of newly-deployed runtime storage contract. + emit NewRuntimeStorageContract(runtimeStorageContract, keccak256(payload)); + } + + /** + * @notice Internal function for deploying arbitrary contract code to the home + * address corresponding to a suppied key via metamorphic initialization code. + * @return The home address and the hash of the deployed runtime code. + * @dev This deployment method uses the "metamorphic delegator" pattern, where + * it will retrieve the address of the contract that contains the target + * initialization code, then delegatecall into it, which executes the + * initialization code stored there and returns the runtime code (or reverts). + * Then, the runtime code returned by the delegatecall is returned, and since + * we are still in the initialization context, it will be set as the runtime + * code of the metamorphic contract. The 32-byte metamorphic initialization + * code is as follows: + * + * 0x5859385958601c335a585952fa1582838382515af43d3d93833e601e57fd5bf3 + * + * 00 58 PC [0] + * 01 59 MSIZE [0, 0] + * 02 38 CODESIZE [0, 0, codesize -> 32] + * returndatac03 59 MSIZE [0, 0, 32, 0] + * 04 58 PC [0, 0, 32, 0, 4] + * 05 60 PUSH1 0x1c [0, 0, 32, 0, 4, 28] + * 07 33 CALLER [0, 0, 32, 0, 4, 28, caller] + * 08 5a GAS [0, 0, 32, 0, 4, 28, caller, gas] + * 09 58 PC [0, 0, 32, 0, 4, 28, caller, gas, 9 -> selector] + * 10 59 MSIZE [0, 0, 32, 0, 4, 28, caller, gas, selector, 0] + * 11 52 MSTORE [0, 0, 32, 0, 4, 28, caller, gas] + * 12 fa STATICCALL [0, 0, 1 => success] + * 13 15 ISZERO [0, 0, 0] + * 14 82 DUP3 [0, 0, 0, 0] + * 15 83 DUP4 [0, 0, 0, 0, 0] + * 16 83 DUP4 [0, 0, 0, 0, 0, 0] + * 17 82 DUP3 [0, 0, 0, 0, 0, 0, 0] + * 18 51 MLOAD [0, 0, 0, 0, 0, 0, init_in_runtime_address] + * 19 5a GAS [0, 0, 0, 0, 0, 0, init_in_runtime_address, gas] + * 20 f4 DELEGATECALL [0, 0, 1 => success] {runtime_code} + * 21 3d RETURNDATASIZE [0, 0, 1 => success, size] + * 22 3d RETURNDATASIZE [0, 0, 1 => success, size, size] + * 23 93 SWAP4 [size, 0, 1 => success, size, 0] + * 24 83 DUP4 [size, 0, 1 => success, size, 0, 0] + * 25 3e RETURNDATACOPY [size, 0, 1 => success] + * 26 60 PUSH1 0x1e [size, 0, 1 => success, 30] + * 28 57 JUMPI [size, 0] + * 29 fd REVERT [] *runtime_code* + * 30 5b JUMPDEST [size, 0] + * 31 f3 RETURN [] + */ + function _deployToHomeAddress(bytes32 key) + internal + returns (address homeAddress, bytes32 runtimeCodeHash) + { + assembly { + // Write the 32-byte metamorphic initialization code to scratch space. + mstore( + 0, + 0x5859385958601c335a585952fa1582838382515af43d3d93833e601e57fd5bf3 + ) + + // Call `CREATE2` using above init code with the supplied key as the salt. + homeAddress := create2(callvalue, 0, 32, key) + + // Pass along revert message if the contract did not deploy successfully. + if iszero(homeAddress) { + returndatacopy(0, 0, returndatasize) + revert(0, returndatasize) + } + + // Get the runtime hash of the deployed contract. + runtimeCodeHash := extcodehash(homeAddress) + } + + // Clear the address of the runtime storage contract from storage. + delete _initializationRuntimeStorageContract; + + // Emit an event with home address, key, and runtime hash of new contract. + emit NewResident(homeAddress, key, runtimeCodeHash); + } + + /** + * @notice Internal function for deriving a key given a particular salt and + * caller and for performing verifications of, and modifications to, the + * information set on that key. + * @param salt bytes32 The value used to derive the key. + * @return The derived key. + */ + function _deriveKeyAndPrepareToDeploy(bytes32 salt) + internal + returns (bytes32 key) + { + // Derive the key using the supplied salt and the calling address. + key = _deriveKey(salt, msg.sender); + + // Ensure that a contract is not currently deployed to the home address. + require(_isNotDeployed(key), _ACCOUNT_EXISTS); + + // Set appropriate controller and increment contract deploy count at once. + HomeAddress storage home = _home[key]; + if (!home.exists) { + home.exists = true; + home.controller = msg.sender; + home.deploys += 1; + + // Emit an event signifying that this contract is now the controller. + emit NewController(key, msg.sender); + + } else { + home.deploys += 1; + } + + // Ensure that the caller is the designated controller before proceeding. + require(home.controller == msg.sender, _ONLY_CONTROLLER); + } + + /** + * @notice Internal function for verifying that an owner that cannot accept + * ERC721 tokens has not been supplied. + * @param owner address The specified owner. + * @param key bytes32 The unique value used to derive the home address. + */ + function _validateOwner(address owner, bytes32 key) internal { + // Ensure that the specified owner is a valid ERC721 receiver. + require( + _checkOnERC721Received(address(0), owner, uint256(key), bytes("")), + "Owner must be an EOA or a contract that implements `onERC721Received`." + ); + } + + /** + * @notice Internal "view" function for determining if a contract currently + * exists at a given home address corresponding to a particular key. + * @param key bytes32 The unique value used to derive the home address. + * @return A boolean signifying whether the home address has a contract + * deployed or not. + */ + function _isNotDeployed(bytes32 key) + internal + /* view */ + returns (bool notDeployed) + { + // Derive the home address using the supplied key. + address homeAddress = _getHomeAddress(key); + + // Check whether account at home address is non-existent using EXTCODEHASH. + bytes32 hash; + assembly { hash := extcodehash(homeAddress) } + + // Account does not exist, and contract is not deployed, if hash equals 0. + if (hash == bytes32(0)) { + return true; + } + + // Contract is deployed (notDeployed = false) if codesize is greater than 0. + uint256 size; + assembly { size := extcodesize(homeAddress) } + if (size > 0) { + return false; + } + + // Declare variable to move current runtime storage from storage to memory. + address currentStorage; + + // Set runtime storage contract to null address temporarily if necessary. + if (_initializationRuntimeStorageContract != address(0)) { + // Place the current runtime storage contract address in memory. + currentStorage = _initializationRuntimeStorageContract; + + // Remove the existing runtime storage contract address from storage. + delete _initializationRuntimeStorageContract; + } + + // Set gas to use when performing dry-run deployment (future-proof a bit). + uint256 checkGas = 27000 + (block.gaslimit / 1000); + + // As a last resort, deploy a contract to the address and revert on success. + (bool contractExists, bytes memory code) = address(this).call.gas(checkGas)( + abi.encodeWithSelector(this.staticCreate2Check.selector, key) + ); + + // Place runtime storage contract back in storage if necessary. + if (currentStorage != address(0)) { + _initializationRuntimeStorageContract = currentStorage; + } + + // Check revert string to ensure failure is due to successful deployment. + bytes32 revertMessage; + assembly { revertMessage := mload(add(code, 32)) } + + // Contract is not deployed if `staticCreate2Check` reverted with message. + notDeployed = !contractExists && revertMessage == _HOME_INIT_CODE; + } + + /** + * @notice Internal view function for verifying that a restricted controller + * has not been supplied. + * @param controller address The specified controller. + * @param key bytes32 The unique value used to derive the home address. + */ + function _validateController(address controller, bytes32 key) internal view { + // Prevent the controller from being set to prohibited account values. + require( + controller != address(0), + "The null address may not be set as the controller using this function." + ); + require( + controller != address(this), + "This contract may not be set as the controller using this function." + ); + require( + controller != _getHomeAddress(key), + "Home addresses cannot be set as the controller of themselves." + ); + } + + /** + * @notice Internal view function for verifying that a supplied runtime + * storage contract is not empty. + * @param target address The runtime storage contract. + */ + function _validateRuntimeStorageIsNotEmpty(address target) internal view { + // Ensure that the runtime storage contract is not empty. + require( + target.isContract(), + "No runtime code found at the supplied runtime storage address." + ); + } + + /** + * @notice Internal view function for retrieving the controller of a home + * address corresponding to a particular key. + * @param key bytes32 The unique value used to derive the home address. + * @return The controller of the home address corresponding to the supplied + * key. + */ + function _getController(bytes32 key) + internal + view + returns (address controller) + { + // Get controller from mapping, defaulting to first 20 bytes of the key. + HomeAddress memory home = _home[key]; + if (!home.exists) { + controller = address(bytes20(key)); + } else { + controller = home.controller; + } + } + + /** + * @notice Internal view function for getting the runtime code at the tokenURI + * data storage address. + * @return The runtime code at the tokenURI storage address. + */ + function _getTokenURIStorageRuntime() + internal + view + returns (bytes memory runtime) + { + // Bring the tokenURI storage address into memory for use in assembly block. + address target = _URI_END_SEGMENT_STORAGE; + + assembly { + // Retrieve the size of the external code. + let size := extcodesize(target) + + // Allocate output byte array. + runtime := mload(0x40) + + // Set new "memory end" including padding. + mstore(0x40, add(runtime, and(add(size, 0x3f), not(0x1f)))) + + // Store length in memory. + mstore(runtime, size) + + // Get the code using extcodecopy. + extcodecopy(target, add(runtime, 0x20), 0, size) + } + } + + /** + * @notice Internal pure function for calculating a home address given a + * particular key. + * @param key bytes32 The unique value used to derive the home address. + * @return The home address corresponding to the supplied key. + */ + function _getHomeAddress(bytes32 key) + internal + pure + returns (address homeAddress) + { + // Determine the home address by replicating CREATE2 logic. + homeAddress = address( + uint160( // Downcast to match the address type. + uint256( // Cast to uint to truncate upper digits. + keccak256( // Compute CREATE2 hash using 4 inputs. + abi.encodePacked( // Pack all inputs to the hash together. + _FF_AND_THIS_CONTRACT, // This contract will be the caller. + key, // Pass in the supplied key as the salt. + _HOME_INIT_CODE_HASH // The metamorphic init code hash. + ) + ) + ) + ) + ); + } + + /** + * @notice Internal pure function for deriving a key given a particular salt + * and caller. + * @param salt bytes32 The value used to derive the key. + * @param submitter address The submitter of the salt used to derive the key. + * @return The derived key. + */ + function _deriveKey(bytes32 salt, address submitter) + internal + pure + returns (bytes32 key) + { + // Set the key as the keccak256 hash of the salt and submitter. + key = keccak256(abi.encodePacked(salt, submitter)); + } + + /** + * @notice Internal pure function for converting the bytes representation of + * an address to an ASCII string. This function is derived from the function + * at https://ethereum.stackexchange.com/a/56499/48410 + * @param data bytes20 The account address to be converted. + * @return The account string in ASCII format. Note that leading "0x" is not + * included. + */ + function _toAsciiString(bytes20 data) + internal + pure + returns (string memory asciiString) + { + // Create an in-memory fixed-size bytes array. + bytes memory asciiBytes = new bytes(40); + + // Declare variable types. + uint8 oneByte; + uint8 leftNibble; + uint8 rightNibble; + + // Iterate over bytes, processing left and right nibble in each iteration. + for (uint256 i = 0; i < data.length; i++) { + // locate the byte and extract each nibble. + oneByte = uint8(uint160(data) / (2 ** (8 * (19 - i)))); + leftNibble = oneByte / 16; + rightNibble = oneByte - 16 * leftNibble; + + // To convert to ascii characters, add 48 to 0-9 and 87 to a-f. + asciiBytes[2 * i] = byte(leftNibble + (leftNibble < 10 ? 48 : 87)); + asciiBytes[2 * i + 1] = byte(rightNibble + (rightNibble < 10 ? 48 : 87)); + } + + asciiString = string(asciiBytes); + } + + /** + * @notice Internal pure function for getting a fixed-size array of whether or + * not each character in an account will be capitalized in the checksum. + * @param account address The account to get the checksum capitalization + * information for. + * @return A fixed-size array of booleans that signify if each character or + * "nibble" of the hex encoding of the address will be capitalized by the + * checksum. + */ + function _getChecksumCapitalizedCharacters(address account) + internal + pure + returns (bool[40] memory characterIsCapitalized) + { + // Convert the address to bytes. + bytes20 addressBytes = bytes20(account); + + // Hash the address (used to calculate checksum). + bytes32 hash = keccak256(abi.encodePacked(_toAsciiString(addressBytes))); + + // Declare variable types. + uint8 leftNibbleAddress; + uint8 rightNibbleAddress; + uint8 leftNibbleHash; + uint8 rightNibbleHash; + + // Iterate over bytes, processing left and right nibble in each iteration. + for (uint256 i; i < addressBytes.length; i++) { + // locate the byte and extract each nibble for the address and the hash. + rightNibbleAddress = uint8(addressBytes[i]) % 16; + leftNibbleAddress = (uint8(addressBytes[i]) - rightNibbleAddress) / 16; + rightNibbleHash = uint8(hash[i]) % 16; + leftNibbleHash = (uint8(hash[i]) - rightNibbleHash) / 16; + + // Set the capitalization flags based on the characters and the checksums. + characterIsCapitalized[2 * i] = ( + leftNibbleAddress > 9 && + leftNibbleHash > 7 + ); + characterIsCapitalized[2 * i + 1] = ( + rightNibbleAddress > 9 && + rightNibbleHash > 7 + ); + } + } + + /** + * @notice Internal pure function for converting the bytes representation of + * an address to a checksummed ASCII string. + * @param account address The account address to be converted. + * @return The checksummed account string in ASCII format. Note that leading + * "0x" is not included. + */ + function _toChecksummedAsciiString(address account) + internal + pure + returns (string memory checksummedAsciiString) + { + // Get capitalized characters in the checksum. + bool[40] memory caps = _getChecksumCapitalizedCharacters(account); + + // Create an in-memory fixed-size bytes array. + bytes memory asciiBytes = new bytes(40); + + // Declare variable types. + uint8 oneByte; + uint8 leftNibble; + uint8 rightNibble; + uint8 leftNibbleOffset; + uint8 rightNibbleOffset; + + // Convert account to bytes20. + bytes20 data = bytes20(account); + + // Iterate over bytes, processing left and right nibble in each iteration. + for (uint256 i = 0; i < data.length; i++) { + // locate the byte and extract each nibble. + oneByte = uint8(uint160(data) / (2 ** (8 * (19 - i)))); + leftNibble = oneByte / 16; + rightNibble = oneByte - 16 * leftNibble; + + // To convert to ascii characters, add 48 to 0-9, 55 to A-F, & 87 to a-f. + if (leftNibble < 10) { + leftNibbleOffset = 48; + } else if (caps[i * 2]) { + leftNibbleOffset = 55; + } else { + leftNibbleOffset = 87; + } + + if (rightNibble < 10) { + rightNibbleOffset = 48; + } else { + rightNibbleOffset = caps[(i * 2) + 1] ? 55 : 87; // instrumentation fix + } + + asciiBytes[2 * i] = byte(leftNibble + leftNibbleOffset); + asciiBytes[2 * i + 1] = byte(rightNibble + rightNibbleOffset); + } + + checksummedAsciiString = string(asciiBytes); + } + + /** + * @notice Modifier to ensure that a contract is not currently deployed to the + * home address corresponding to a given key on the decorated function. + * @param key bytes32 The unique value used to derive the home address. + */ + modifier onlyEmpty(bytes32 key) { + require(_isNotDeployed(key), _ACCOUNT_EXISTS); + _; + } + + /** + * @notice Modifier to ensure that the caller of the decorated function is the + * controller of the home address corresponding to a given key. + * @param key bytes32 The unique value used to derive the home address. + */ + modifier onlyController(bytes32 key) { + require(_getController(key) == msg.sender, _ONLY_CONTROLLER); + _; + } + + /** + * @notice Modifier to track initial controllers and to count deploys, and to + * validate that only the designated controller has access to the decorated + * function. + * @param key bytes32 The unique value used to derive the home address. + */ + modifier onlyControllerDeployer(bytes32 key) { + HomeAddress storage home = _home[key]; + + // Set appropriate controller and increment contract deploy count at once. + if (!home.exists) { + home.exists = true; + home.controller = address(bytes20(key)); + home.deploys += 1; + } else { + home.deploys += 1; + } + + require(home.controller == msg.sender, _ONLY_CONTROLLER); + _; + } + + /** + * @notice Modifier to ensure that only the owner of the supplied ERC721 + * token, or an approved spender, can access the decorated function. + * @param tokenId uint256 The ID of the ERC721 token. + */ + modifier onlyTokenOwnerOrApprovedSpender(uint256 tokenId) { + require( + _isApprovedOrOwner(msg.sender, tokenId), + "Only the token owner or an approved spender may call this function." + ); + _; + } +} + +/** + * @title HomeWork Deployer (alpha version) + * @author 0age + * @notice This contract is a stripped-down version of HomeWork that is used to + * deploy HomeWork itself. + * HomeWork Deploy code at runtime: 0x7Cf7708ab4A064B14B02F34aecBd2511f3605395 + * HomeWork Runtime code at: 0x0000000000001b84b1cb32787b0d64758d019317 + */ +contract HomeWorkDeployer { + // Fires when HomeWork has been deployed. + event HomeWorkDeployment(address homeAddress, bytes32 key); + + // Fires HomeWork's initialization-in-runtime storage contract is deployed. + event StorageContractDeployment(address runtimeStorageContract); + + // Allocate storage to track the current initialization-in-runtime contract. + address private _initializationRuntimeStorageContract; + + // Once HomeWork has been deployed, disable this contract. + bool private _disabled; + + // Write arbitrary code to a contract's runtime using the following prelude. + bytes11 private constant _ARBITRARY_RUNTIME_PRELUDE = bytes11( + 0x600b5981380380925939f3 + ); + + /** + * @notice Perform phase one of the deployment. + * @param code bytes The contract creation code for HomeWork. + */ + function phaseOne(bytes calldata code) external onlyUntilDisabled { + // Deploy payload to the runtime storage contract and set the address. + _initializationRuntimeStorageContract = _deployRuntimeStorageContract( + bytes32(0), + code + ); + } + + /** + * @notice Perform phase two of the deployment (tokenURI data). + * @param key bytes32 The salt to provide to create2. + */ + function phaseTwo(bytes32 key) external onlyUntilDisabled { + // Deploy runtime storage contract with the string used to construct end of + // token URI for issued ERC721s (data URI with a base64-encoded jpeg image). + bytes memory code = abi.encodePacked( + hex"222c226465736372697074696f6e223a22546869732532304e465425323063616e25", + hex"3230626525323072656465656d65642532306f6e253230486f6d65576f726b253230", + hex"746f2532306772616e7425323061253230636f6e74726f6c6c657225323074686525", + hex"32306578636c75736976652532307269676874253230746f2532306465706c6f7925", + hex"3230636f6e7472616374732532307769746825323061726269747261727925323062", + hex"797465636f6465253230746f25323074686525323064657369676e61746564253230", + hex"686f6d65253230616464726573732e222c22696d616765223a22646174613a696d61", + hex"67652f7376672b786d6c3b636861727365743d7574662d383b6261736536342c5048", + hex"4e325a79423462577875637a30696148523063446f764c336433647935334d793576", + hex"636d63764d6a41774d43397a646d636949485a705a58644362336739496a41674d43", + hex"41784e4451674e7a4969506a787a64486c735a543438495674445245465551567375", + hex"516e747a64484a766132557462476c755a57707661573436636d3931626d52394c6b", + hex"4e37633352796232746c4c5731706447567962476c74615851364d5442394c6b5237", + hex"633352796232746c4c5864705a48526f4f6a4a394c6b56375a6d6c7362446f6a4f57", + hex"4935596a6c686653354765334e30636d39725a5331736157356c593246774f6e4a76", + hex"6457356b66563164506a7776633352356247552b5047636764484a68626e4e6d6233", + hex"4a7450534a74595852796158676f4d5334774d694177494441674d5334774d694134", + hex"4c6a45674d436b69506a78775958526f49475a706247773949694e6d5a6d59694947", + hex"5139496b30784f53417a4d6d677a4e4859794e4567784f586f694c7a34385a79427a", + hex"64484a766132553949694d774d44416949474e7359584e7a50534a4349454d675243", + hex"492b50484268644767675a6d6c7362443069493245314e7a6b7a4f5349675a443069", + hex"545449314944517761446c324d545a6f4c546c364969382b50484268644767675a6d", + hex"6c7362443069497a6b795a444e6d4e5349675a443069545451774944517761446832", + hex"4e3267744f486f694c7a3438634746306143426d615778735053496a5a5745315954", + hex"51334969426b50534a4e4e544d674d7a4a494d546c324c5446734d5459744d545967", + hex"4d5467674d545a364969382b50484268644767675a6d6c7362443069626d39755a53", + hex"49675a4430695454453549444d7961444d30646a49305344453565694976506a7877", + hex"5958526f49475a706247773949694e6c595456684e44636949475139496b30794f53", + hex"41794d5777744e53413164693035614456364969382b5043396e506a77765a7a3438", + hex"5a794230636d467563325a76636d3039496d316864484a70654367754f4451674d43", + hex"4177494334344e4341324e5341314b53492b50484268644767675a44306954546b75", + hex"4e5341794d693435624451754f4341324c6a52684d7934784d69417a4c6a45794944", + hex"41674d4341784c544d674d693479624330304c6a67744e6934305979347a4c544575", + hex"4e4341784c6a59744d69343049444d744d693479656949675a6d6c73624430694932", + hex"517759325a6a5a534976506a78775958526f49475a706247773949694d774d544178", + hex"4d44456949475139496b30304d53343349444d344c6a56734e5334784c5459754e53", + hex"4976506a78775958526f49475139496b30304d693435494449334c6a684d4d546775", + hex"4e4341314f4334784944493049445979624449784c6a67744d6a63754d7941794c6a", + hex"4d744d693434656949675932786863334d39496b55694c7a3438634746306143426d", + hex"615778735053496a4d4445774d5441784969426b50534a4e4e444d754e4341794f53", + hex"347a624330304c6a63674e5334344969382b50484268644767675a44306954545132", + hex"4c6a67674d7a4a6a4d793479494449754e6941344c6a63674d533479494445794c6a", + hex"45744d793479637a4d754e6930354c6a6b754d7930784d693431624330314c6a4567", + hex"4e6934314c5449754f4330754d5330754e7930794c6a63674e5334784c5459754e57", + hex"4d744d7934794c5449754e6930344c6a63744d5334794c5445794c6a45674d793479", + hex"6379307a4c6a59674f5334354c53347a494445794c6a556949474e7359584e7a5053", + hex"4a464969382b50484268644767675a6d6c7362443069493245314e7a6b7a4f534967", + hex"5a443069545449334c6a4d674d6a5a734d5445754f4341784e53343349444d754e43", + hex"41794c6a51674f533478494445304c6a51744d793479494449754d79307849433433", + hex"4c5445774c6a49744d544d754e6930784c6a4d744d7934354c5445784c6a67744d54", + hex"55754e336f694c7a3438634746306143426b50534a4e4d5449674d546b754f577731", + hex"4c6a6b674e793435494445774c6a49744e7934324c544d754e4330304c6a567a4e69", + hex"34344c5455754d5341784d4334334c5451754e574d77494441744e6934324c544d74", + hex"4d544d754d7941784c6a46544d5449674d546b754f5341784d6941784f5334356569", + hex"49675932786863334d39496b55694c7a34385a79426d6157787350534a756232356c", + hex"4969427a64484a766132553949694d774d44416949474e7359584e7a50534a434945", + hex"4d675243492b50484268644767675a44306954545579494455344c6a6c4d4e444175", + hex"4f5341304d7934796243307a4c6a45744d69347a4c5445774c6a59744d5451754e79", + hex"30794c6a6b674d693479494445774c6a59674d5451754e7941784c6a45674d793432", + hex"494445784c6a55674d5455754e58704e4d5449754e5341784f533434624455754f43", + hex"4134494445774c6a4d744e7934304c544d754d7930304c6a5a7a4e6934354c545567", + hex"4d5441754f4330304c6a4e6a4d4341774c5459754e69307a4c6a45744d544d754d79", + hex"3435637930784d43347a494463754e4330784d43347a494463754e4870744c544975", + hex"4e6941794c6a6c734e433433494459754e574d744c6a55674d53347a4c5445754e79", + hex"41794c6a45744d7941794c6a4a734c5451754e7930324c6a566a4c6a4d744d533430", + hex"494445754e6930794c6a51674d7930794c6a4a364969382b50484268644767675a44", + hex"3069545451784c6a4d674d7a67754e5777314c6a45744e6934316253307a4c6a5574", + hex"4d693433624330304c6a59674e533434625467754d53307a4c6a466a4d7934794944", + hex"49754e6941344c6a63674d533479494445794c6a45744d793479637a4d754e693035", + hex"4c6a6b754d7930784d693431624330314c6a45674e6934314c5449754f4330754d53", + hex"30754f4330794c6a63674e5334784c5459754e574d744d7934794c5449754e693034", + hex"4c6a63744d5334794c5445794c6a45674d7934794c544d754e4341304c6a4d744d79", + hex"343249446b754f5330754d7941784d6934314969426a6247467a637a306952694976", + hex"506a78775958526f49475139496b307a4d433434494451304c6a524d4d546b674e54", + hex"67754f57773049444d674d5441744d5449754e7949675932786863334d39496b5969", + hex"4c7a34384c32632b5043396e506a777663335a6e50673d3d227d" + ); /* ","description":"This%20NFT%20can%20be%20redeemed%20on%20HomeWork%20 + to%20grant%20a%20controller%20the%20exclusive%20right%20to%20deploy%20 + contracts%20with%20arbitrary%20bytecode%20to%20the%20designated%20home + %20address.","image":"data:image/svg+xml;charset=utf-8;base64,..."} */ + + // Deploy payload to the runtime storage contract. + _deployRuntimeStorageContract(key, code); + } + + /** + * @notice Perform phase three of the deployment and disable this contract. + * @param key bytes32 The salt to provide to create2. + */ + function phaseThree(bytes32 key) external onlyUntilDisabled { + // Use metamorphic initialization code to deploy contract to home address. + _deployToHomeAddress(key); + + // Disable this contract from here on out - use HomeWork itself instead. + _disabled = true; + } + + /** + * @notice View function used by the metamorphic initialization code when + * deploying a contract to a home address. It returns the address of the + * runtime storage contract that holds the contract creation code, which the + * metamorphic creation code then `DELEGATECALL`s into in order to set up the + * contract and deploy the target runtime code. + * @return The current runtime storage contract that contains the target + * contract creation code. + * @dev This method is not meant to be part of the user-facing contract API, + * but is rather a mechanism for enabling the deployment of arbitrary code via + * fixed initialization code. The odd naming is chosen so that function + * selector will be 0x00000009 - that way, the metamorphic contract can simply + * use the `PC` opcode in order to push the selector to the stack. + */ + function getInitializationCodeFromContractRuntime_6CLUNS() + external + view + returns (address initializationRuntimeStorageContract) + { + // Return address of contract with initialization code set as runtime code. + initializationRuntimeStorageContract = _initializationRuntimeStorageContract; + } + + /** + * @notice Internal function for deploying a runtime storage contract given a + * particular payload. + * @dev To take the provided code payload and deploy a contract with that + * payload as its runtime code, use the following prelude: + * + * 0x600b5981380380925939f3... + * + * 00 60 push1 0b [11 -> offset] + * 02 59 msize [offset, 0] + * 03 81 dup2 [offset, 0, offset] + * 04 38 codesize [offset, 0, offset, codesize] + * 05 03 sub [offset, 0, codesize - offset] + * 06 80 dup1 [offset, 0, codesize - offset, codesize - offset] + * 07 92 swap3 [codesize - offset, 0, codesize - offset, offset] + * 08 59 msize [codesize - offset, 0, codesize - offset, offset, 0] + * 09 39 codecopy [codesize - offset, 0] + * 10 f3 return [] *init_code_in_runtime* + * ... init_code + */ + function _deployRuntimeStorageContract(bytes32 key, bytes memory payload) + internal + returns (address runtimeStorageContract) + { + // Construct the contract creation code using the prelude and the payload. + bytes memory runtimeStorageContractCreationCode = abi.encodePacked( + _ARBITRARY_RUNTIME_PRELUDE, + payload + ); + + assembly { + // Get the location and length of the newly-constructed creation code. + let encoded_data := add(0x20, runtimeStorageContractCreationCode) + let encoded_size := mload(runtimeStorageContractCreationCode) + + // Deploy the runtime storage contract via `CREATE2`. + runtimeStorageContract := create2(0, encoded_data, encoded_size, key) + + // Pass along revert message if the contract did not deploy successfully. + if iszero(runtimeStorageContract) { + returndatacopy(0, 0, returndatasize) + revert(0, returndatasize) + } + } + + // Emit an event with address of newly-deployed runtime storage contract. + emit StorageContractDeployment(runtimeStorageContract); + } + + /** + * @notice Internal function for deploying arbitrary contract code to the home + * address corresponding to a suppied key via metamorphic initialization code. + * @dev This deployment method uses the "metamorphic delegator" pattern, where + * it will retrieve the address of the contract that contains the target + * initialization code, then delegatecall into it, which executes the + * initialization code stored there and returns the runtime code (or reverts). + * Then, the runtime code returned by the delegatecall is returned, and since + * we are still in the initialization context, it will be set as the runtime + * code of the metamorphic contract. The 32-byte metamorphic initialization + * code is as follows: + * + * 0x5859385958601c335a585952fa1582838382515af43d3d93833e601e57fd5bf3 + * + * 00 58 PC [0] + * 01 59 MSIZE [0, 0] + * 02 38 CODESIZE [0, 0, codesize -> 32] + * returndatac03 59 MSIZE [0, 0, 32, 0] + * 04 58 PC [0, 0, 32, 0, 4] + * 05 60 PUSH1 0x1c [0, 0, 32, 0, 4, 28] + * 07 33 CALLER [0, 0, 32, 0, 4, 28, caller] + * 08 5a GAS [0, 0, 32, 0, 4, 28, caller, gas] + * 09 58 PC [0, 0, 32, 0, 4, 28, caller, gas, 9 -> selector] + * 10 59 MSIZE [0, 0, 32, 0, 4, 28, caller, gas, selector, 0] + * 11 52 MSTORE [0, 0, 32, 0, 4, 28, caller, gas] + * 12 fa STATICCALL [0, 0, 1 => success] + * 13 15 ISZERO [0, 0, 0] + * 14 82 DUP3 [0, 0, 0, 0] + * 15 83 DUP4 [0, 0, 0, 0, 0] + * 16 83 DUP4 [0, 0, 0, 0, 0, 0] + * 17 82 DUP3 [0, 0, 0, 0, 0, 0, 0] + * 18 51 MLOAD [0, 0, 0, 0, 0, 0, init_in_runtime_address] + * 19 5a GAS [0, 0, 0, 0, 0, 0, init_in_runtime_address, gas] + * 20 f4 DELEGATECALL [0, 0, 1 => success] {runtime_code} + * 21 3d RETURNDATASIZE [0, 0, 1 => success, size] + * 22 3d RETURNDATASIZE [0, 0, 1 => success, size, size] + * 23 93 SWAP4 [size, 0, 1 => success, size, 0] + * 24 83 DUP4 [size, 0, 1 => success, size, 0, 0] + * 25 3e RETURNDATACOPY [size, 0, 1 => success] + * 26 60 PUSH1 0x1e [size, 0, 1 => success, 30] + * 28 57 JUMPI [size, 0] + * 29 fd REVERT [] *runtime_code* + * 30 5b JUMPDEST [size, 0] + * 31 f3 RETURN [] + */ + function _deployToHomeAddress(bytes32 key) internal { + // Declare a variable for the home address. + address homeAddress; + + assembly { + // Write the 32-byte metamorphic initialization code to scratch space. + mstore( + 0, + 0x5859385958601c335a585952fa1582838382515af43d3d93833e601e57fd5bf3 + ) + + // Call `CREATE2` using above init code with the supplied key as the salt. + homeAddress := create2(callvalue, 0, 32, key) + + // Pass along revert message if the contract did not deploy successfully. + if iszero(homeAddress) { + returndatacopy(0, 0, returndatasize) + revert(0, returndatasize) + } + } + + // Clear the address of the runtime storage contract from storage. + delete _initializationRuntimeStorageContract; + + // Emit an event with home address and key for the newly-deployed contract. + emit HomeWorkDeployment(homeAddress, key); + } + + /** + * @notice Modifier to disable the contract once deployment is complete. + */ + modifier onlyUntilDisabled() { + require(!_disabled, "Contract is disabled."); + _; + } +} \ No newline at end of file diff --git a/mix.lock b/mix.lock index 5bcd8cacf1..258c71f03f 100644 --- a/mix.lock +++ b/mix.lock @@ -11,6 +11,7 @@ "benchee": {:hex, :benchee, "0.13.2", "30cd4ff5f593fdd218a9b26f3c24d580274f297d88ad43383afe525b1543b165", [:mix], [{:deep_merge, "~> 0.1", [hex: :deep_merge, repo: "hexpm", optional: false]}], "hexpm"}, "benchee_csv": {:hex, :benchee_csv, "0.8.0", "0ca094677d6e2b2f601b7ee7864b754789ef9d24d079432e5e3d6f4fb83a4d80", [:mix], [{:benchee, "~> 0.12", [hex: :benchee, optional: false]}, {:csv, "~> 2.0", [hex: :csv, optional: false]}]}, "binary": {:hex, :binary, "0.0.5", "20d816f7274ea34f1b673b4cff2fdb9ebec9391a7a68c349070d515c66b1b2cf", [:mix], []}, + "briefly": {:git, "https://github.com/CargoSense/briefly.git", "2526e9674a4e6996137e066a1295ea60962712b8", []}, "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], []}, "bypass": {:hex, :bypass, "1.0.0", "b78b3dcb832a71aca5259c1a704b2e14b55fd4e1327ff942598b4e7d1a7ad83d", [:mix], [{:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 1.0 or ~> 2.0", [hex: :plug_cowboy, repo: "hexpm", optional: false]}], "hexpm"}, "certifi": {:hex, :certifi, "2.5.1", "867ce347f7c7d78563450a18a6a28a8090331e77fa02380b4a21962a65d36ee5", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm"}, From a1eaa412804fad347e8e142bb290699bd407a84c Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 20 Jun 2019 15:51:38 +0300 Subject: [PATCH 062/133] added styles for download transactions csv button --- .../assets/css/components/_transaction.scss | 50 +++++++++++++++++++ .../address_transaction/index.html.eex | 14 ++++-- apps/block_scout_web/priv/gettext/default.pot | 19 +++---- 3 files changed, 69 insertions(+), 14 deletions(-) diff --git a/apps/block_scout_web/assets/css/components/_transaction.scss b/apps/block_scout_web/assets/css/components/_transaction.scss index 5214b0b301..b949e0f055 100644 --- a/apps/block_scout_web/assets/css/components/_transaction.scss +++ b/apps/block_scout_web/assets/css/components/_transaction.scss @@ -4,3 +4,53 @@ line-height: 1.2; margin: 0 0 12px; } + +.transaction-top-panel, .transaction-bottom-panel { + display: flex; + justify-content: space-between; + flex-direction: column; + @media (min-width: 500px) { + flex-direction: row; + } +} + +.transaction-top-panel { + .pagination-container { + margin-top: 30px; + } + @media (min-width: 500px) { + align-items: flex-start; + .pagination-container { + margin-top: 0; + } + } +} + +.transaction-bottom-panel { + @media (min-width: 500px) { + align-items: flex-end; + } +} + +.download-csv { + display: inline-block; + height: 24px; + background: #f5f6fa; + border-radius: 2px; + outline: none; + font-family: Nunito, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 12px; + line-height: 25px; + padding: 0 10px; + font-weight: 600; + cursor: pointer; + color: #a3a9b5; + text-align: center; + transition: .1s ease-in; + text-decoration: none !important; + &:hover { + background-color: $primary; + color: #fff; + border-color: $primary; + } +} \ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex index 87ab7eba56..5c1552e943 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex @@ -6,7 +6,6 @@
<%= render BlockScoutWeb.AddressView, "_tabs.html", assigns %> - - <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "top", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> +
+ to_string(@address.hash)}) %>><%= gettext("Download All Transactions as CSV") %> + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "top", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> +
- - <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> + +
+ to_string(@address.hash)}) %>><%= gettext("Download All Transactions as CSV") %> + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> +
diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 90c5b8751b..e498b3dbfb 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -111,7 +111,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:24 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:23 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -244,7 +244,7 @@ msgid "Connection Lost, click to load newer internal transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:12 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:11 #: lib/block_scout_web/templates/pending_transaction/index.html.eex:15 #: lib/block_scout_web/templates/transaction/index.html.eex:15 msgid "Connection Lost, click to load newer transactions" @@ -404,7 +404,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:44 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:41 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:40 #: lib/block_scout_web/views/address_internal_transaction_view.ex:7 #: lib/block_scout_web/views/address_transaction_view.ex:7 msgid "From" @@ -742,7 +742,7 @@ msgid "There are no tokens." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:63 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:64 msgid "There are no transactions for this address." msgstr "" @@ -763,7 +763,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:33 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:30 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:29 #: lib/block_scout_web/views/address_internal_transaction_view.ex:6 #: lib/block_scout_web/views/address_transaction_view.ex:6 msgid "To" @@ -867,7 +867,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:3 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:16 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:15 #: lib/block_scout_web/templates/block_transaction/index.html.eex:10 #: lib/block_scout_web/templates/block_transaction/index.html.eex:18 #: lib/block_scout_web/templates/chain/show.html.eex:108 @@ -1211,7 +1211,7 @@ msgstr "" #: lib/block_scout_web/templates/address_logs/index.html.eex:21 #: lib/block_scout_web/templates/address_token/index.html.eex:13 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:20 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:58 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:59 #: lib/block_scout_web/templates/address_validation/index.html.eex:22 #: lib/block_scout_web/templates/block_transaction/index.html.eex:23 #: lib/block_scout_web/templates/chain/show.html.eex:91 @@ -1696,6 +1696,7 @@ msgid "New Smart Contract Verification" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:9 -msgid "Download all transactions as csv" +#: lib/block_scout_web/templates/address_transaction/index.html.eex:54 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:71 +msgid "Download All Transactions as CSV" msgstr "" From 2024c0691846cb8f599cb8b04b9cc95df77f2580 Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Thu, 20 Jun 2019 15:55:08 +0300 Subject: [PATCH 063/133] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08b3987ac2..e16b56929c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ - [#2064](https://github.com/poanetwork/blockscout/pull/2064) - feat: add fields to tx apis, small cleanups ### Fixes +- [#2206](https://github.com/poanetwork/blockscout/pull/2206) - added styles for 'Download All Transactions as CSV' button - [#2099](https://github.com/poanetwork/blockscout/pull/2099) - logs search input width - [#2098](https://github.com/poanetwork/blockscout/pull/2098) - nav dropdown issue, logo size issue - [#2082](https://github.com/poanetwork/blockscout/pull/2082) - dropdown styles, tooltip gap fix, 404 page added From e15142f82b7e7b46040d0ca9cdcd8883695d0ede Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 20 Jun 2019 15:57:08 +0300 Subject: [PATCH 064/133] add CHANGELOG entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed9ca13594..2629a797b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ - [#2173](https://github.com/poanetwork/blockscout/pull/2173) - handle correctly empty transactions - [#2174](https://github.com/poanetwork/blockscout/pull/2174) - fix reward channel joining - [#2186](https://github.com/poanetwork/blockscout/pull/2186) - fix net version test +- [#2204](https://github.com/poanetwork/blockscout/pull/2204) - fix large contract verification ### Chore - [#2127](https://github.com/poanetwork/blockscout/pull/2127) - use previouse chromedriver version From 5d1ae205bc875fad0660d1887336969e8de3f037 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 20 Jun 2019 16:47:48 +0300 Subject: [PATCH 065/133] Update CHANGELOG.md --- CHANGELOG.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19d6ed1b21..056c3bf2d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,6 @@ ## Current ### Features - [#2182](https://github.com/poanetwork/blockscout/pull/2182) - add market history cache - -### Features - [#2109](https://github.com/poanetwork/blockscout/pull/2109) - use bigger updates instead of `Multi` transactions in BlocksTransactionsMismatch - [#2075](https://github.com/poanetwork/blockscout/pull/2075) - add blocks cache - [#2151](https://github.com/poanetwork/blockscout/pull/2151) - hide dropdown menu then other networks list is empty From f8966e259c3503797e50a887e86def511e592c70 Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 20 Jun 2019 17:31:22 +0300 Subject: [PATCH 066/133] redesigned 'download csv' button --- .../assets/css/components/_transaction.scss | 73 +++++++------------ .../address_transaction/index.html.eex | 20 +++-- apps/block_scout_web/priv/gettext/default.pot | 5 +- 3 files changed, 42 insertions(+), 56 deletions(-) diff --git a/apps/block_scout_web/assets/css/components/_transaction.scss b/apps/block_scout_web/assets/css/components/_transaction.scss index b949e0f055..1fd1c6241e 100644 --- a/apps/block_scout_web/assets/css/components/_transaction.scss +++ b/apps/block_scout_web/assets/css/components/_transaction.scss @@ -1,56 +1,35 @@ -.transaction-details-address { - font-size: 12px; - font-weight: bold; - line-height: 1.2; - margin: 0 0 12px; -} - -.transaction-top-panel, .transaction-bottom-panel { +.transaction-bottom-panel { display: flex; - justify-content: space-between; flex-direction: column; - @media (min-width: 500px) { - flex-direction: row; + @media (min-width: 768px) { + flex-direction: row; + justify-content: space-between; + align-items: flex-end; } } -.transaction-top-panel { - .pagination-container { - margin-top: 30px; +.download-all-transactions { + text-align: center; + color: #a3a9b5; + font-size: 14px; + margin-top: 10px; + @media (min-width: 768px) { + margin-top: 0; } - @media (min-width: 500px) { - align-items: flex-start; - .pagination-container { - margin-top: 0; + .download-all-transactions-link { + text-decoration: none; + svg { + position: relative; + margin-left: 2px; + top: -3px; + path { + fill: $primary; + } + } + &:hover { + span { + text-decoration: underline; + } } } -} - -.transaction-bottom-panel { - @media (min-width: 500px) { - align-items: flex-end; - } -} - -.download-csv { - display: inline-block; - height: 24px; - background: #f5f6fa; - border-radius: 2px; - outline: none; - font-family: Nunito, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 12px; - line-height: 25px; - padding: 0 10px; - font-weight: 600; - cursor: pointer; - color: #a3a9b5; - text-align: center; - transition: .1s ease-in; - text-decoration: none !important; - &:hover { - background-color: $primary; - color: #fff; - border-color: $primary; - } } \ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex index 5c1552e943..a24df921c6 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex @@ -50,10 +50,10 @@
-
- to_string(@address.hash)}) %>><%= gettext("Download All Transactions as CSV") %> - <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "top", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> -
+ + + + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "top", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %>
- +
- to_string(@address.hash)}) %>><%= gettext("Download All Transactions as CSV") %> + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %>
diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index e498b3dbfb..baa5de07df 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1696,7 +1696,6 @@ msgid "New Smart Contract Verification" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:54 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:71 -msgid "Download All Transactions as CSV" +#: lib/block_scout_web/templates/address_transaction/index.html.eex:74 +msgid "CSV" msgstr "" From faabdbbbe6c8efd21410374bbc608fc7a7cb619d Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Thu, 20 Jun 2019 17:35:39 +0300 Subject: [PATCH 067/133] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e16b56929c..315009fd25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,7 @@ - [#2064](https://github.com/poanetwork/blockscout/pull/2064) - feat: add fields to tx apis, small cleanups ### Fixes +- [#2207](https://github.com/poanetwork/blockscout/pull/2207) - new 'download csv' button design - [#2206](https://github.com/poanetwork/blockscout/pull/2206) - added styles for 'Download All Transactions as CSV' button - [#2099](https://github.com/poanetwork/blockscout/pull/2099) - logs search input width - [#2098](https://github.com/poanetwork/blockscout/pull/2098) - nav dropdown issue, logo size issue From ad0e1812ee477108def7de3ba2528ee231a89863 Mon Sep 17 00:00:00 2001 From: Andrew Gross Date: Thu, 20 Jun 2019 08:54:43 -0600 Subject: [PATCH 068/133] Restructure README to point to docs, clean up docs --- README.md | 293 ++---------------------------------- UPGRADING.md | 20 --- docs/_sidebar.md | 1 + docs/about.md | 4 +- docs/ansible-deployment.md | 2 +- docs/faqs.md | 2 +- docs/index.html | 2 +- docs/upgrading.md | 3 + explorer_example.gif | Bin 699446 -> 0 bytes explorer_example_2_2019.gif | Bin 860552 -> 0 bytes 10 files changed, 18 insertions(+), 309 deletions(-) delete mode 100644 UPGRADING.md create mode 100644 docs/upgrading.md delete mode 100644 explorer_example.gif delete mode 100644 explorer_example_2_2019.gif diff --git a/README.md b/README.md index e0e9ece96b..416f585c53 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,9 @@ BlockScout provides a comprehensive, easy-to-use interface for users to view, confirm, and inspect transactions on **all EVM** (Ethereum Virtual Machine) blockchains. This includes the Ethereum main and test networks as well as **Ethereum forks and sidechains**. -Following is an overview of the project and instructions for [getting started](#getting-started). +See our [project documentation](https://poanetwork.github.io/blockscout) for detailed information and setup instructions. -Visit the [POA BlockScout forum](https://forum.poa.network/c/blockscout) for additional deployment instructions, FAQs, troubleshooting, and other BlockScout related items. You can also post and answer questions here. +Visit the [POA BlockScout forum](https://forum.poa.network/c/blockscout) for FAQs, troubleshooting, and other BlockScout related items. You can also post and answer questions here. You can also access the dev chatroom on our [Gitter Channel](https://gitter.im/poanetwork/blockscout). @@ -24,290 +24,16 @@ You can also access the dev chatroom on our [Gitter Channel](https://gitter.im/p BlockScout is an Elixir application that allows users to search transactions, view accounts and balances, and verify smart contracts on the entire Ethereum network including all forks and sidechains. -Currently available block explorers (i.e. Etherscan and Etherchain) are closed systems which are not independently verifiable. As Ethereum sidechains continue to proliferate in both private and public settings, transparent tools are needed to analyze and validate transactions. - - -### Features - -- [x] **Open source development**: The code is community driven and available for anyone to use, explore and improve. - -- [x] **Real time transaction tracking**: Transactions are updated in real time - no page refresh required. Infinite scrolling is also enabled. - -- [x] **Smart contract interaction**: Users can read and verify Solidity smart contracts and access pre-existing contracts to fast-track development. Support for Vyper, LLL, and Web Assembly contracts is in progress. - -- [x] **Token support**: ERC20 and ERC721 tokens are supported. Future releases will support additional token types including ERC223 and ERC1155. - -- [x] **User customization**: Users can easily deploy on a network and customize the Bootstrap interface. - -- [x] **Ethereum sidechain networks**: BlockScout supports the Ethereum mainnet, Ethereum testnets, POA network, and forks like Ethereum Classic, xDAI, additional sidechains, and private EVM networks. - -### Supported Projects - -| **Hosted Mainnets** | **Hosted Testnets** | **Additional Chains using BlockScout** | -|--------------------------------------------------------|-------------------------------------------------------|----------------------------------------------------| -| [Aerum](https://blockscout.com/aerum/mainnet) | [Goerli Testnet](https://blockscout.com/eth/goerli) | [ARTIS](https://explorer.sigma1.artis.network) | -| [Callisto](https://blockscout.com/callisto/mainnet) | [Kovan Testnet](https://blockscout.com/eth/kovan) | [Ether-1](https://blocks.ether1.wattpool.net/) | -| [Ethereum Classic](https://blockscout.com/etc/mainnet) | [POA Sokol Testnet](https://blockscout.com/poa/sokol) | [Fuse Network](https://explorer.fuse.io/) | -| [Ethereum Mainnet](https://blockscout.com/eth/mainnet) | [Rinkeby Testnet](https://blockscout.com/eth/rinkeby) | [Oasis Labs](https://blockexplorer.oasiscloud.io/) | -| [POA Core Network](https://blockscout.com/poa/core) | [Ropsten Testnet](https://blockscout.com/eth/ropsten) | [Petrichor](https://explorer.petrachor.com/) | -| [RSK](https://blockscout.com/rsk/mainnet) | | [PIRL](http://pirl.es/) | -| [xDai Chain](https://blockscout.com/poa/dai) | | [SafeChain](https://explorer.safechain.io) | -| | | [SpringChain](https://explorer.springrole.com/) | -| | | [Kotti Testnet](https://kottiexplorer.ethernode.io/) | -| | | [Loom](http://plasma-blockexplorer.dappchains.com/) | -| | | [Tenda](https://tenda.network) | - - -### Visual Interface - -Interface for the POA network _updated 02/2019_ - -![BlockScout Example](explorer_example_2_2019.gif) - - -### Umbrella Project Organization - -This repository is an [umbrella project](https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-projects.html). Each directory under `apps/` is a separate [Mix](https://hexdocs.pm/mix/Mix.html) project and [OTP application](https://hexdocs.pm/elixir/Application.html), but the projects can use each other as a dependency in their `mix.exs`. - -Each OTP application has a restricted domain. - -| Directory | OTP Application | Namespace | Purpose | -|:------------------------|:--------------------|:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `apps/ethereum_jsonrpc` | `:ethereum_jsonrpc` | `EthereumJSONRPC` | Ethereum JSONRPC client. It is allowed to know `Explorer`'s param format, but it cannot directly depend on `:explorer` | -| `apps/explorer` | `:explorer` | `Explorer` | Storage for the indexed chain. Can read and write to the backing storage. MUST be able to boot in a read-only mode when run independently from `:indexer`, so cannot depend on `:indexer` as that would start `:indexer` indexing. | -| `apps/block_scout_web` | `:block_scout_web` | `BlockScoutWeb` | Phoenix interface to `:explorer`. The minimum interface to allow web access should go in `:block_scout_web`. Any business rules or interface not tied directly to `Phoenix` or `Plug` should go in `:explorer`. MUST be able to boot in a read-only mode when run independently from `:indexer`, so cannot depend on `:indexer` as that would start `:indexer` indexing. | -| `apps/indexer` | `:indexer` | `Indexer` | Uses `:ethereum_jsonrpc` to index chain and batch import data into `:explorer`. Any process, `Task`, or `GenServer` that automatically reads from the chain and writes to `:explorer` should be in `:indexer`. This restricts automatic writes to `:indexer` and read-only mode can be achieved by not running `:indexer`. | - +Currently available full-featured block explorers (i.e. Etherscan and Etherchain) are closed systems which are not independently verifiable. As Ethereum sidechains continue to proliferate in both private and public settings, transparent, open-source tools are needed to analyze and validate transactions. ## Getting Started -### Requirements - -| Dependency | Mac | Linux | -|-------------|-----|-------| -| [Erlang/OTP 21.0.4](https://github.com/erlang/otp) | `brew install erlang` | [Erlang Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L134) | -| [Elixir 1.8.1](https://elixir-lang.org/) | :point_up: | [Elixir Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L138) | -| [Postgres 10.3](https://www.postgresql.org/) | `brew install postgresql` | [Postgres Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L187) | -| [Node.js 10.x.x](https://nodejs.org/en/) | `brew install node` | [Node.js Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L66) | -| [Automake](https://www.gnu.org/software/automake/) | `brew install automake` | [Automake Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L72) | -| [Libtool](https://www.gnu.org/software/libtool/) | `brew install libtool` | [Libtool Install Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L62) | -| [Inotify-tools](https://github.com/rvoicilas/inotify-tools/wiki) | Not Required | Ubuntu - `apt-get install inotify-tools` | -| [GCC Compiler](https://gcc.gnu.org/) | `brew install gcc` | [GCC Compiler Example](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L70) | -| [GMP](https://gmplib.org/) | `brew install gmp` | [Install GMP Devel](https://github.com/poanetwork/blockscout-terraform/blob/33f68e816e36dc2fb055911fa0372531f0e956e7/modules/stack/libexec/init.sh#L74) | - -### Build and Run - -#### Playbook Deployment - -We use [Ansible](https://docs.ansible.com/ansible/latest/index.html) & [Terraform](https://www.terraform.io/intro/getting-started/install.html) to build the correct infrastructure to run BlockScout. See [https://github.com/poanetwork/blockscout-terraform](https://github.com/poanetwork/blockscout-terraform) for details and instructions. - -#### Manual Deployment - -See [Manual BlockScout Deployment](https://forum.poa.network/t/manual-blockscout-deployment/2458) for instructions. - -#### Environment Variables - -Our forum contains a [full list of BlockScout environment variables](https://forum.poa.network/t/faq-blockscout-environment-variables/1814). - -#### Configuring EVM Chains - -* **CSS:** Update the import instruction in `apps/block_scout_web/assets/css/theme/_variables.scss` to select a preset css file. This is reflected in the `production-${chain}` branch for each instance. For example, in the `production-xdai` branch, it is set to `@import "dai-variables"`. - -* **ENV:** Update the [environment variables](https://forum.poa.network/t/faq-blockscout-environment-variables/1814) to match the chain specs. - -#### Automating Restarts - -By default `blockscout` does not restart if it crashes. To enable automated -restarts, set the environment variable `HEART_COMMAND` to whatever command you run to start `blockscout`. Configure the heart beat timeout to change how long it waits before considering the application unresponsive. At that point, it will kill the current blockscout instance and execute the `HEART_COMMAND`. By default a crash dump is not written unless you set `ERL_CRASH_DUMP_SECONDS` to a positive or negative integer. See the [heart](http://erlang.org/doc/man/heart.html) documentation for more information. - - -#### CircleCI Updates - -To monitor build status, configure your local [CCMenu](http://ccmenu.org/) with the following url: [`https://circleci.com/gh/poanetwork/blockscout.cc.xml?circle-token=f8823a3d0090407c11f87028c73015a331dbf604`](https://circleci.com/gh/poanetwork/blockscout.cc.xml?circle-token=f8823a3d0090407c11f87028c73015a331dbf604) - - -## Testing - -### Requirements - - * PhantomJS (for wallaby) - -### Running the tests - - 1. Build the assets. - `cd apps/block_scout_web/assets && npm run build; cd -` - - 2. Format the Elixir code. - `mix format` - - 3. Run the test suite with coverage for whole umbrella project. This step can be run with different configuration outlined below. - `mix coveralls.html --umbrella` - - 4. Lint the Elixir code. - `mix credo --strict` - - 5. Run the dialyzer. - `mix dialyzer --halt-exit-status` - - 6. Check the Elixir code for vulnerabilities. - `cd apps/explorer && mix sobelow --config; cd -` - `cd apps/block_scout_web && mix sobelow --config; cd -` - - 7. Lint the JavaScript code. - `cd apps/block_scout_web/assets && npm run eslint; cd -` - - 8. Test the JavaScript code. - `cd apps/block_scout_web/assets && npm run test; cd -` - -#### Parity - -##### Mox - -**This is the default setup. `mix coveralls.html --umbrella` will work on its own, but to be explicit, use the following setup**: - -```shell -export ETHEREUM_JSONRPC_CASE=EthereumJSONRPC.Case.Parity.Mox -export ETHEREUM_JSONRPC_WEB_SOCKET_CASE=EthereumJSONRPC.WebSocket.Case.Mox -mix coveralls.html --umbrella --exclude no_parity -``` - -##### HTTP / WebSocket - -```shell -export ETHEREUM_JSONRPC_CASE=EthereumJSONRPC.Case.Parity.HTTPWebSocket -export ETHEREUM_JSONRPC_WEB_SOCKET_CASE=EthereumJSONRPC.WebSocket.Case.Parity -mix coveralls.html --umbrella --exclude no_parity -``` - -| Protocol | URL | -|:----------|:-----------------------------------| -| HTTP | `http://localhost:8545` | -| WebSocket | `ws://localhost:8546` | - -#### Geth - -##### Mox - -```shell -export ETHEREUM_JSONRPC_CASE=EthereumJSONRPC.Case.Geth.Mox -export ETHEREUM_JSONRPC_WEB_SOCKET_CASE=EthereumJSONRPC.WebSocket.Case.Mox -mix coveralls.html --umbrella --exclude no_geth -``` - -##### HTTP / WebSocket - -```shell -export ETHEREUM_JSONRPC_CASE=EthereumJSONRPC.Case.Geth.HTTPWebSocket -export ETHEREUM_JSONRPC_WEB_SOCKET_CASE=EthereumJSONRPC.WebSocket.Case.Geth -mix coveralls.html --umbrella --exclude no_geth -``` - -| Protocol | URL | -|:----------|:--------------------------------------------------| -| HTTP | `https://mainnet.infura.io/8lTvJTKmHPCHazkneJsY` | -| WebSocket | `wss://mainnet.infura.io/ws/8lTvJTKmHPCHazkneJsY` | - -### API Documentation - -To view Modules and API Reference documentation: - -1. Generate documentation. -`mix docs` -2. View the generated docs. -`open doc/index.html` - -## Front-end - -### Javascript - -All Javascript files are under [apps/block_scout_web/assets/js](https://github.com/poanetwork/blockscout/tree/master/apps/block_scout_web/assets/js) and the main file is [app.js](https://github.com/poanetwork/blockscout/blob/master/apps/block_scout_web/assets/js/app.js). This file imports all javascript used in the application. If you want to create a new JS file consider creating into [/js/pages](https://github.com/poanetwork/blockscout/tree/master/apps/block_scout_web/assets/js/pages) or [/js/lib](https://github.com/poanetwork/blockscout/tree/master/apps/block_scout_web/assets/js/lib), as follows: - -#### js/lib -This folder contains all scripts that can be reused in any page or can be used as a helper to some component. - -#### js/pages -This folder contains the scripts that are specific for some page. - -#### Redux -This project uses Redux to control the state in some pages. There are pages that have things happening in real-time thanks to the Phoenix channels, e.g. Address page, so the page state changes a lot depending on which events it is listening. The redux is also used to load some contents asynchronous, see [async_listing_load.js](https://github.com/poanetwork/blockscout/blob/master/apps/block_scout_web/assets/js/lib/async_listing_load.js). - -To understand how to build new pages that need redux in this project, see the [redux_helpers.js](https://github.com/poanetwork/blockscout/blob/master/apps/block_scout_web/assets/js/lib/redux_helpers.js) - -## Internationalization - -The app is currently internationalized. It is only localized to U.S. English. To translate new strings. - -1. To setup translation file. -`cd apps/block_scout_web; mix gettext.extract --merge; cd -` -2. To edit the new strings, go to `apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po`. - -## Metrics - -BlockScout is setup to export [Prometheus](https://prometheus.io/) metrics at `/metrics`. - -### Prometheus - -1. Install prometheus: `brew install prometheus` -2. Start the web server `iex -S mix phx.server` -3. Start prometheus: `prometheus --config.file=prometheus.yml` - -### Grafana - -1. Install grafana: `brew install grafana` -2. Install Pie Chart panel plugin: `grafana-cli plugins install grafana-piechart-panel` -3. Start grafana: `brew services start grafana` -4. Add Prometheus as a Data Source - 1. `open http://localhost:3000/datasources` - 2. Click "+ Add data source" - 3. Put "Prometheus" for "Name" - 4. Change "Type" to "Prometheus" - 5. Set "URL" to "http://localhost:9090" - 6. Set "Scrape Interval" to "10s" -5. Add the dashboards from https://github.com/deadtrickster/beam-dashboards: - For each `*.json` file in the repo. - 1. `open http://localhost:3000/dashboard/import` - 2. Copy the contents of the JSON file in the "Or paste JSON" entry - 3. Click "Load" -6. View the dashboards. (You will need to click-around and use BlockScout for the web-related metrics to show up.) - -## Tracing - -Blockscout supports tracing via -[Spandex](http://git@github.com:spandex-project/spandex.git). Each application -has its own tracer, that is configured internally to that application. In order -to enable it, visit each application's `config/.ex` and update its tracer -configuration to change `disabled?: true` to `disabled?: false`. Do this for -each application you'd like included in your trace data. - -Currently, only [Datadog](https://www.datadoghq.com/) is supported as a -tracing backend, but more will be added soon. - -### DataDog - -If you would like to use DataDog, after enabling `Spandex`, set -`"DATADOG_HOST"` and `"DATADOG_PORT"` environment variables to the -host/port that your Datadog agent is running on. For more information on -Datadog and the Datadog agent, see their -[documentation](https://docs.datadoghq.com/). - -### Other - -If you want to use a different backend, remove the -`SpandexDatadog.ApiServer` `Supervisor.child_spec` from -`Explorer.Application` and follow any instructions provided in `Spandex` -for setting up that backend. - -## Memory Usage - -The work queues for building the index of all blocks, balances (coin and token), and internal transactions can grow quite large. By default, the soft-limit is 1 GiB, which can be changed in `apps/indexer/config/config.exs`: - -``` -config :indexer, memory_limit: 1 <<< 30 -``` - -Memory usage is checked once per minute. If the soft-limit is reached, the shrinkable work queues will shed half their load. The shed load will be restored from the database, the same as when a restart of the server occurs, so rebuilding the work queue will be slower, but use less memory. - -If all queues are at their minimum size, then no more memory can be reclaimed and an error will be logged. +See the [project documentation](https://poanetwork.github.io/blockscout) for instructions: +- [Requirements](https://poanetwork.github.io/blockscout/#/requirements) +- [Ansible deployment](https://poanetwork.github.io/blockscout/#/ansible-deployment) +- [Manual deployment](https://poanetwork.github.io/blockscout/#/manual-deployment) +- [ENV variables](https://poanetwork.github.io/blockscout/#/env-variables) +- [Configuration options](https://poanetwork.github.io/blockscout/#/dev-env) ## Acknowledgements @@ -317,7 +43,6 @@ We would like to thank the [EthPrize foundation](http://ethprize.io/) for their See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution and pull request protocol. We expect contributors to follow our [code of conduct](CODE_OF_CONDUCT.md) when submitting code or comments. - ## License [![License: GPL v3.0](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) diff --git a/UPGRADING.md b/UPGRADING.md deleted file mode 100644 index fcf2121ffb..0000000000 --- a/UPGRADING.md +++ /dev/null @@ -1,20 +0,0 @@ -# Upgrading Guide - -### Migration scripts - -There is in the project a `scripts` folder that contains `SQL` files responsible to migrate data from the database. - -This script should be used if you already have an indexed database with a large amount of data. - -#### `address_current_token_balances_in_batches.sql` - -Is responsible to populate a new table using the `token_balances` table information. - -#### `internal_transaction_update_in_batches.sql` - -Is responsible to migrate data from the `transactions` table to the `internal_transactions` one in order to improve the application listing performance; - -#### `transaction_update_in_baches.sql` - -Parity call traces contain the input, but it was not put in the internal_transactions_params. -Enforce input and call_type being non-NULL for calls in new constraints on internal_transactions. diff --git a/docs/_sidebar.md b/docs/_sidebar.md index b16f061670..50b0e4ca83 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -23,6 +23,7 @@ - [Tracing](tracing.md) - [Memory Usage](memory-usage.md) - [API Docs](api.md) + - [Upgrading](upgrading.md) - User Guide diff --git a/docs/about.md b/docs/about.md index eb83347ec1..1ce6c7029d 100644 --- a/docs/about.md +++ b/docs/about.md @@ -20,11 +20,11 @@ We would like to thank the [EthPrize foundation](http://ethprize.io/) for their ## Contributing -See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution and pull request protocol. We expect contributors to follow our [code of conduct](CODE_OF_CONDUCT.md) when submitting code or comments. +See [CONTRIBUTING.md](https://github.com/poanetwork/blockscout/blob/master/CONTRIBUTING.md) for contribution and pull request protocol. We expect contributors to follow our [code of conduct](https://github.com/poanetwork/blockscout/blob/master/CODE_OF_CONDUCT.md) when submitting code or comments. ## License [![License: GPL v3.0](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -This project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details. +This project is licensed under the GNU General Public License v3.0. See the [LICENSE](https://github.com/poanetwork/blockscout/blob/master/LICENSE) file for details. diff --git a/docs/ansible-deployment.md b/docs/ansible-deployment.md index 07adc54cb2..a613091920 100644 --- a/docs/ansible-deployment.md +++ b/docs/ansible-deployment.md @@ -4,7 +4,7 @@ We use [Ansible](https://docs.ansible.com/ansible/latest/index.html) & [Terraform](https://www.terraform.io/intro/getting-started/install.html) to build the correct infrastructure to run BlockScout. -The playbook repository is located at [https://github.com/poanetwork/blockscout-terraform](https://github.com/poanetwork/blockscout-terraform). Currently it only supports [AWS](#AWS) as a cloud provider. +The playbook repository is located at [https://github.com/poanetwork/blockscout-terraform](https://github.com/poanetwork/blockscout-terraform). Currently it only supports [AWS](#AWS-permissions) as a cloud provider. In the root folder you will find Ansible Playbooks to create all necessary infrastructure to deploy BlockScout. The `lambda` folder also contains a set of scripts that may be useful in your BlockScout infrastructure. diff --git a/docs/faqs.md b/docs/faqs.md index 20f32e932f..9f4197af28 100644 --- a/docs/faqs.md +++ b/docs/faqs.md @@ -1,3 +1,3 @@ -_Coming Soon_ \ No newline at end of file +FAQs are located in the [BlockScout forum](https://forum.poa.network/c/blockscout/wiki). \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 35be853c6a..a1fdb1af94 100644 --- a/docs/index.html +++ b/docs/index.html @@ -10,7 +10,7 @@ diff --git a/docs/upgrading.md b/docs/upgrading.md new file mode 100644 index 0000000000..532c57306a --- /dev/null +++ b/docs/upgrading.md @@ -0,0 +1,3 @@ +## Upgrading Guide + +**Upgrade instructions are in progress. If you need assistance with an upgrade, please contact us through the [forum](https://forum.poa.network/c/blockscout) or [gitter](https://gitter.im/poanetwork/blockscout) channel.** diff --git a/explorer_example.gif b/explorer_example.gif deleted file mode 100644 index 97b142a2d2bd1ed9628326b3cefca4f5ad589321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699446 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

M$1;TEXW=| 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

@+YMMqU&<8=_;5qd)&yh961Ty)9 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

85Q*F!w9oRr?UjXS_2ob3 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

wLQI+D23|x4ac;67EVIOmsA`Ut~xtJo#Fx#nw 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�mfeXILB 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

!`{U=+nv>>_erK}_g}tIpz#U`BlX?|y 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�ohcsF;Y2QLH6UpJACB}*pI+e;r;>>s)WVDFc zncubC*w{QGl&D!La^euBA}Ky%`=p8&_}0Sl#f(gV1BhWM?q4pZqPx5mg;bL+{^F3W z0Nq(4a{;4sErtg?kN52#Fs@?e6=1ILA}h8JD00>+W@9xD1{6_aFjAv7N<_ioA@uE{ zR3(!%Dpxn^BD#!CtVE)e?ME|456(5w6OE#ac;hdkBRKM1_PL@tP9raJ7Am@9Fb>B4 zh*lBEqc)~u!9k)a<{~#Xq&u3OK8^}sV1z1`oU17p;msN~z2d6yV>mja&*|cj8PPzp zVgW|vJ|5&Zf@3%T%H%e#jCi1AOqwH0mLe)vlQh1gyA)M9%;O~%a0bx@4oib6F zG7=K>$fWwUB8T`K5v`m~MrA0n$VBd>MQ)!#Qe{IPWM@T05)CF`?&J2=T3{j%g*-(+ z4i#d&L-#4q64_&rtz$k4W>)^B`5_Nfj%8pn=43|WI>O^4ihw2zKn6;rDALMv>19@a z+%-<5KbGZ6cGl|MTC2eftSHZ{_@Ga=B{!a>HTouC!lX;WCMXgnY0{)~+U6)$B(AK3 z2$<1d>ZMBmR^&{QBuxV4W88zQ5T#LC;>`%aQz<1U%8V!GB~H@gU8ZA8`lKmhWlO$f zUru96?&ETRr!bP_Q_kgRs^n;frg@IYF|y@523|uj#^8x!KhkD(rY2gx;%(9X0siICQr5a^@mgsU}W{h6uayQ zCaS9i=kf3ZNdBOtma55lBCO78i@s%0mM5*^U?#3-ROPC#_FbX=>ZCI2a`701N|&%E ztFpc&W@_s8$!G(1Dutbh_)P?7E~~Ew>#&|GqQ1-yDpL>AT5)1)pvo$_E-J7Rm8<;e zxylU6C1tO+tGv!DtuE-RDuiM*52PY1z4q&}zAC^Pk!3Qd_JN;fhH88ItHQ=Aw;pOo z-mB)d>SGb?!ZKx3R&2wzrOUt!jbiLk{)2iFD#Us$$zm+ADv_i91B51Q$+j$@0<5$D zdWbwatBryx`LV3a=4|w2Y@jles@9Ag>t( zn6WM+zeer6!e`PNk9m%4_I-%x(QNohgplDZ)(+K+D$!jgE!$3Nt7Iv}4kxX7fJjp8 z(VFYo7Ohf^%{_1|(eCQg=B?oRtG&KuzCLJUnC;+Z>)P(^Gj*-wzKD#nL&p~EkKw4| zF79WJrP?ap-nOlxrs};?SgX=4m@+NB;;rUhti}?RQL(Gb4k~+U>+06-s7`GsR&Au( zuCi+F*6OK(Ms8tPX4p!r!P@M#^6s9FZsQu~=en&9{%r0Ft?72C=BlppdakYiKE~U^ zZq91r5Zr9`j&G^ru6w3zJ?Kv6k}tYyZ|idIbO~=m@PmvV70psB*`_1=mTU7e>+^i$?GVudu54?C2&Rik!i*sxS-Ju&&&L98fL<&m*-yRrp%44F~b4#sCLj ztq>pao^B0@yj7>lgF7_Q3G*G2A~6*Q#yg0B0xDCNq6iTuE)7?45FZg1%c}}MamrON z>VmNv%ghElkrA&k7&l+v#*?JhqX0y43a2p~*KSdDY25mO3ao)ToB+v4j?h(NZ z8PDUV`Y?bP@*zjEM09ZnOL7%A-@t-tCzfy%C1oC4G8MOqA1Boo!$1raFvNhe8utSP zvWz1b(M*C!1Eyyj)#wff7o)N_dMNz1Oi&Ybcv7`Y3UyT* z^;BzhQ5*F?K)^pha~;b>_>DmgNW|PwTw`@qD^V+t9K03R_RYic2G+;WKXtbS2kvcCuM8)QG2Hn zA9GTr1sCfBq~>v6o+ez^HCL;)B(nDM&b3wF^=h{@%>)%ocL-RfgEH47ZIkd*`!;OP zwrsa{Zwq%e$M$jSv}H2jTS^lQr~x`a>iWub-X2j{r!2|;GQ<&l0RxyoAuJ;#E?#(# zw|EbPd7n3Wmp6H@cY3$Cx~MmNhqrsDH+$FjeA9P)=l6Y|w|%qsew%lH!}ou`H!luE zB|rc@pdZ9i7O~r_ENJ0cOSra z!^9)j<@z1jf2xPs<5Y}a==yhDOZ@60%#2sD6$!+_M) zcTeZ{dN+B1L*!07xq3r6l}mY^Ub%Q%d6aYcl|KeOAb8vnEt_RPxT(N9+`%2BIh(J! zo40wJtGS%d`JBV~o8P&e)487GIiK5kn(sNC`+1-L-#MVy`JfB>pBK8CBl@8$x|}mQ zqdPjAL%=<}!#h;^pQm{a&;vUhp{CZ}2!ufg$k;usxuu^vs;9cDuR5!@x~soBtjD^n z&pNHwx~<oQud#mR_IgE14;@pOb!0)I41mpk&EIh(9{K7*(!#jM#PrSoJ{KH2)#$Wux zD?G(pyv1jH#e2NRb9}{9JjjbY$dkOso4m&VhkVMfe95DH%gcPi!#vENJkD>t&9i*N z|3wa{fE>sHr(?H^sLDW~pC4qW!t1=nE4<1hd=5B$%}c%0FMY>f{nS(a)NlRH$9&aq zz1CZO%)|WGhdtM0J=rI`*=v2*r+w6eJ>0iF#g{$YOMSwN6WEK>KNyt?!YqM6v%vgL z%|E=@k9@^1{a53?+>d?XD?BQFHQJ+n<1>8XkA37beZwO@SQq}~8@}N`{^HyG#Lxn?L-MfBVnB`_F&;-#`85fBoZs{MWz#1B3<<0yW4fc+g$ zEz`pcl5uCzp9_nweEG9x)0;{Ehd#}@O{F7#_~|7*ccr|Ss~Y00T6*I~wN#z{du#C_ z*`_vuBTpNYcuwPToKJPS{AKgtKcQa-I=y<@=v}oVAMRbIoPRs*g0y`beth{VS>{{E zuAHB8<&Ny{?|(o30{kz)0u3ziKLQm5@W2KKWKci`33Twl1Rs=;LI*8`aKj7@>~O&d zJw%Yh3nv^gKYa8n2cP}gBkjGtR$6BrKjiU)ofZXbF(ej!+-tT3{pe4}7K<#hoW1xP z(my7VeA30amK2i6{fxBI$0Vf;vdJoagi_0trtC7yE5D3VOfJU+(@Z6~Y*D{7nH;jO z`P_3aH$U{lQP2ElV-cVKD?=KR(2|_Qr%EHQg!3~(&kPjMNL6fqWXm|aqAAaPq)!J;Yz1CW8<=Ga-Z@cAZ+;PPv&0KHQ9T#13#Vyy} zYunv+-E^P*%wBluy%)25-;I}FzSj9i9+p@Fj7E6|h7rcUx-GciSZ928o!VCVtE6Z7 zshH!9Fa8+hi!099*^W658Rdyd-k9Z+Qx17#k~B8iIi#6euGwah19rCLoh9yB zWtoFMnOts3g81YAg7f0_w{wq31WYkRyb_50W(-0 zf95J1?6uX#y6m@EGW%eKY3@wExAw(t2q zUdNqpudTXrVW~ZvZMLPgJXX+6A6>rBLq8pLJ7tx%b;*`>B=){8hL7lvanBw0hI!xp z_uF{y{j=bK&t1maZ$BR8S$lTgX6Rp*K4t2gcRl)(vRB^r>+$S6WIXA6{(9oOkG_2H ziOws0_QyxRee=JEA7t@Os$WL@n~$+`&&S3;f6HT^_Xb$J;W3YZ0_4l^`ggzQbexnLzZ*-1}+5|p77GsWpndD>H- z{uHP|73xrlT2!MR6{$&8>Qb57RHr@_s!^5dRH<53t6mkWS=H)Rx!P5)eif`?73)~Z zT2`~36|HGi>sr~`R=2(tu5pFh)8txLyWZ7_D`Ch78Q539{uQu+73^U9idVxP_LnyQ zTMDnT8IlaL$Pwk(q-Va8l6$-(B=1NCN#Fqwkes8lpoNEMNgG30z>loCCq<$SgeG!C?5_A*S^G2TG69Iu_Ywnado>Ug~>?y`)03 zhcNJnN$ghm!WT33^`aNm^Mx-^2QC}L2kq!li43nt1pa-a3SjET2}k&#nLTm;iHTg~ zvcmVWA%XCN-vNR8Iyu5Rt*m^$wX}5NLmtbzFiAW^j~Bm~B!1*ElvM!XdqmjCX;w3V z9YK$UO6yO#P9$D7{K)n@|yYFXFtoQogw)zU;L=iKOY*=e9opHJ3miYP9#6A~9)Su8J2)677r`3W$yRntMKEZ(T(Fm(S*VslqN~_xiFTD}bA|~5 z>Scc$+!&>yqd{^?kVICYNxGr6Z=-3D9KoSd!lfg${pN7r8{YygXP`a*v*Aa(aES$) zv1DsZZ)E2i;RzQeGrJ6JbFZq?!jcC%;~kP*Hd@^Z*Z9VxY47&5`P{5-RAWDQOPW<%@~@`pz)*ZIyz$zPK+8Z%jjH@taXbfdcz=&P#u(V5=# zX$tB#+Wd^WonCdTtCZwd*ZS7E-gU2k9qeHj``F1|cC()y?P)Kn=9aE@x4#|kahLl< z**-#w(7TNvK?-uKbzZSQ^;{NM>+c*7qa@rhUb;u+s~$3GtOk(d1BDPMWZr-Oh3-PI*a8Hgf2;*-JO^^qd7gw{j^LnZcFa0gq^N-)ra7;XOM!~o;u z=C~xwTEhNXVo%oaO_I2Z;n2pD+i}5s6%{bs`HNSxwup z5Fg(#g!+*m1JV%&at-qlAPv$VLC7El(jZX?A+eDE)f)1I77`%`k|5pDA_r0+`OzUM zG9w|v+xIpQYbm{<_vP+ zq7o-h(JSMy3=6Uit%MBounXVv4<`{Hp+rZ3vV)8yAHT9K|IaEB5fO>fgUC`U*|00M zaxB3z48_tbo$?a35-k~1TJ~#EM9vK5NFV7fvgkpwW-JBgL9#y6GlNYtwe8_Z2s10; zGC^}Q?XuX)VIMQ|GD(v)H)u08Q!_o2-cs}b5>eAO@j)|l6EjnAG*43>Kl3SfGc$d2 zKZ5Nv*YGw!Q#3!5G=)<-PZKjgvol@uI-?Ua4~~O~Q#Ql1GR=}ST@yOBQ`>}7IiC|a z_i;C&Q#spnHfyIk%QH8B6EHg{HKTJi_i>rp3_zu=G?}OlF(bpgbAt|4K^GK3YllG} zv_WGBLKzf=CUik7)ItvwLo+loPKZNq%tI|y1VGe;KD0wi)I>KlL%ofJOf*7U$3;~% zLuGVA%Lzq46h0tyim>oSFV9E6joU`FM}L$^i*!~rl%1Y)g}#I&0@O&KwCNn8hiq~x zNumwDpeS-o)&}B@zRV-E^b2w8 z*i^^L6i>s{PWgg53ZhHj2u`(h!#)GXzU)xfRM*fHPz4oH>C{FsgCX)%$KGg7Z(~r& zv{Aiu%KS7@WsOq9^fq2hBmUG;1+`E20#*5xRTULezo1U*)WyCOQzx}m_cX_DgG;$I zPy-cKBlS*S3`}kHP*Zg-bnHugHBd)YQJa+@Mio^nwO8TvRn1gPan)E;qDy0yP|Z|V zEfrgD6vO-}F;&l~pmdPNnr!J5^N`Ra!5VG&0pxef3%EHC;hfO~>_1Hx*Se z)lr*uPhXW=yYyGdv{vI(UFntoQH%9jDRok>bTIO@B>s>Jy^*g5OM3{*V?P#TLsn!* zmSjuTWKR}lQ&weHmStPkWnUI%V^(HomS$_#W^Wc}apQsT1VEtFXMfg#;G{}{mS~IC zXpa_YlU8Y$mT8;TX`dEqqgHCCmTIfkYMDwevh`}WmTSA#Yrht3!&Yp^mTVhIYs(gG z(^hTQmZ?aUZQqvXx)gPmNG{;kZjJ1XhV*Xtw$lETZ~r#m&XzQu@Z&-v2b>LX6Bn;+ ztSzOHFGMcG1Xpn?H^!~ zm)^*9V^?-(mv(E{c8e7McY{}WhnIL&NT-Syd7Vmr;DgjM?U?LB zKS-2T=qh=uccPY;G&IUh+X*XK*LAHId|O9%d}(~$2R>9F!qmek0u3D@Fw{=!c*9qI zF++E-HQ{kYsex`odkbSdE+_}%ZObG}fFl@tUZ+NY zXuc#?W2Kc^R_Cd^Gyb5Km8kCo?j=0}A9XpkolkP$hNo#)5; zE2Z3wY$O?ls;86-IFmJ5fjC)`Sovuhxp_l^-W-dRLC7{FD3DP(l_L+3;Rz)gnSV(l zJ*!QUb8%>0=V>ZAnd`@ujpcTfd6x-Um%|Aq&=-^;4U9WVRkAEc#P?~oZJEl!g1oF? zFgb)!LU$}Cnx)x^C8M3AWt!3Gmt(4VolVY4k6`#ud}XBp7Jv&D0H6bU0b0Of1bLt5 zryowh0;qTYogc54>EnCQ_?#J9p7Gd`v6&>oWc7sYvFLX`96!$@sU?u#45oW-B_9uRxxuM~1lXcdd%^89OXnA1ge_ooR?ZUV&KXK4P)Vn6@^YNnuBn0`=3ogaFq z&5nO&q>?datP4o2DQ8B;T2{8;FQ{g%Ux%3q7-sa^FMtNHDad@ex|(Aun9p>NZ%LoZ z5;tb$SumghC`X}0ItL;lgZd!{Z~zC&L00l12RwTRXaFxh1_FBE9N_q3K05;Nfn2D? z4``tO2jrk1hQzG-p|siIk5&R7aDWDA=VIg_n{Z$UM7n7rpa)8uuAus@zb>vPU<7oh z5hj4TIkp36qwL*zG}Mp(@cmhht!C^yV=GCe60(jZBwLbfX-JY(Ln=iYyR2j1HI`({ zzHf~s#u7t9sK%0PX)I|l%>Dj+zQ5n^`dz>6zOU;#=f3ajoa-EaIGp2f7{@$3U$2)k zFuHIs19QXHaZn}HNG*Setk2LDug<^eRP(3n@TmbuE7eLlp2@EIKA*5J?ujba{P{v# zwq);4Nyz(q&adH?z#3@~ECvnP-H{N+b3CT9?#^&wND$uXf-jvCCo|dOv0!$r>=yA= zGny?PeQJ^g+CT&sV!@U~P&^gNj|K~4ITV2%y|00**uYZeSGRU;EvXVjA{c`u9y|K} zHj#sO+SW#`Y3A88C>p9ya<0R|{fLNSbw8gl2~iLT0_tJ5Gr@Hv@DZnbZdeEe3s*yf zj$q)S!dVxNRDPK*yQ~X~!1O^$919tR94pV$pOsm!4nDh+Qv>sn_H}FAHM5?DEt4QI zR91RB1n*$YjqQ-6Lb>t0?$YoUwH~G<#JU5HA!02_5PF^j1_W~t;?p9+oxh6;gStLU zs&0Uxme>w+3>QWtM;i+{k_jwm;dRdg@y?*=k`nic!#iMcVJtUiQ}3ty9El_Z`IZ<_ z1D5{tl&BL3*C1g9is`f}Z=17SL^(?T(baH>@kT7ZdI%)VC1O}R6^+GSCFk-p(Kff)L5Y_=71Q;Yz z;dLZL3sy{*E-^CA#ft_VIKv&$)+ckICwssrox~^nW&O|tVps_I{d0PD#B&T-9(W+5 zq1IUVvQ5NsB4osm!wMhFM~#M3B_go!ZS)lb%myD3Do>>uqCtt+4$Fr13s^Bx5~qa^ zyt@dhZvz%T_@L+dHS0O^8b!epvH!)O&2WO874#a+0Dot;LvY>Io*1MV7Cgz|GEzI` z=+Dw6Hh!Hr@%@>smI%}i&!L1ByAOhjXW2R5svnmWc5ju?N3&T`ho=^}h!|*~Kf>aU ztO5vyKf?ByxNrJ&<>@4nm&lHhf`WA4C$l+@UG-Tv?}`AO5@m=GbaYt#*de7W(D(y=CA!xRED2ue z;6|F53l%}78Qdj5k?!EC64F6a>t!WEdH3~Yde>t&rB&WsSyesbdz~Fap0Y9O2r&-u zm+i?`iqdS}{yE+3%RH>rLSLWn&(Mz5YTf<4I@SCFsolod*;;uxw3ru2KJ1}mslVRA z%5HTU50Ua#)P;j#M7+%rSwRx$RBHP$t0bRJ{6z*ae?;wQ6lshf97WS(;bG)qF4Iei zanMXWzb^3jqMP&a6@D6m8i$k2LB@%KJY)N_>ygz#Be=p)#pDh4?uqq~NZ4b3V>!t{16hPC-BlAN`ZG-^Uv!B$u*tFeBn z4rt9WG%n`G*4&)-aboiYX#=UJwp-msF9FD8M>OlQ{*{t^icFfOv%rLJO z+>i`Xut}#bRW4*iUT7TTl(G0Rq%AR>_StpcdyJ%EIWqwjSfNy7VEgnLq%;RFBCzOI zk-Lr{Lo~;};6Mp0?6}`D{NAHG$(O5`{5>en<~kZDl;ObM|9I;DyF*W=y@pJme0j{_ zJHiSgR#USM%m3>j9_lB>L6u%SqYA60R-8M`QDiXOTmy;c35 zjZlqdY2y2RB?iKTk!19tR>!3vj5D?uK$0#NArjEiiVK&d3M(Mth{~(_d`LRgkX6~! zWa_5l;)RLHrKi38n)hDr#5&4mysUDNe-WnBFVci<9~OK~3Snm~R+2vKQ<#+Bx3Xjv z&9$xaX(1X(-oqiE&r;@ckP6WfC>uP-LU51_fy(M=13FX~S`@!H1N9{tacJR#`texA zOS_lwZCo%~#tA`RGz4prbXJUh-B<9);kd!tDcFY#RSI^}wjxN?l?I_#PytZuia;rX zvusH}Yap%$uDeB*5j@rrs8(_K)GA*2vi`WX88xU%&IN940XZ~w8CH;($69g)!xi`@ z4t;W7g2w`cI?+*f7>1UQSp=cfsp0-)Pg%#p4*qKuh}hGWCyqEFZm2GZ$3E{hk(N&A z9dt?k_0$lFMqlChO48T1>OSOv(}9vYA_~&F&I+R~q5L>w`4;Bf8PsA2q=693@5Uni ztU-s{m2&Y)s}uMl9>jtQiQ~aJu~66mGo=K1UGIj-0H@U)K>b1rM0kN^hRogY4<7Ch zGp1JyRNgHquh4TI-1^*6D|)$O0PJCON4;0|jx^HWL0{fPi7kdfC05~GIga;A8+2Lm z`z6xOY>>YdGYEq(W~GhWJ@xkwiZrz|^F<$jPVMXND5z-&h|zMw*LrW##+gzLx2ljp3r^G)+l z&RuO9Oi=TE?NJJki;c)mIbJX-aIY6`xjcB6WYz$~OJYR7X=|{WZVu(d-!){u3KQ*l9&$@U2QK_c6eD}Q z`1nC_AX0R^e(XuNQdwp6gQ%N#52RsqzSB|HrX26)s#e9M9l!56|Ay*ea^lpH2Mb&M z*t)(xq_N-~na`FZFRW}%#;69~oyrx^_Gwh~A_s)&sXM?nlUnX4op{;4cU?wZsQdK6 z-I!ldKQvaJ4k>&8U~e-aGYlF@@xLQOvrFy4HNe=@92> zTgkM!uR8%r|HIhsquM$d47<2TA3j1US*R|#acIS+e^Tqp{kO&6oPT_}UwEQf>$kh- zb-{~vh&Pe3d^g_Hu#(H;Gyay(#%e{iAz#Nwv^tzH9UtO6?Tg5cK5`v zN7&xy7iFJn)R!OBd3>hwmN&dV6|-J%n)ZbKMuWk<>p*!q@bMlUfh)^ePb~5KuJGWg z@qQ*QrN_`WeXZs<=B#Jhir){7Ur*oP;)8rmyS1o)s%bdZf6G7o){^mqCYyzqTZNaN zFIzro`jqxnu=wu&qKA}J@Jg2W&+FqK$NG0TMdmhZN}m7pcokbpT2$Z)#;ke2YW}j6 z-GW+dJ?cB8{_V#af(!PQD^LJDgLvT6$>YEN^0vkt^hNWZ#_?9#^YWIj`;IuBSljR$U)1DY-79bX`5@L;xNq)ViTX`0e0ivex5(~%uT#h+R}|Cx`Bj3~p8Bym{%eK1UDWFS_F(7QWu@4d zkn*;UE=RNAp9_26e=NUA8hl^(Gj_PpR5@UZvb}k*_hpRs!lfp@s>RhH2dkf%I$IMM z7#wuBHaB_Tfpz}!ueI;{>+aT>5iyBPEu@%d`2_{}+2b`nc9nx;)5Wu-zFq3(Ji}2d zzaYIO)T`#x@M=zSTi8TFS!u<{$f&h?((>YJPFjtZU1@ImyQhxjZ3_eG$)%3QiFO+K zHoA%FV_nIi0|(oT`_`qq+q?dbHC4r3mRi9ZoAlic#=!<-dxPQcT)MHb>a3OTsFqpk zM)uaN&{CG0sGvqA`V@zESsTnV7>k*@@vKpYjzK| z?6fi+wK5M57$6Xcl?h_9i5gW9+k@bH>noiPA~l0i(#DxamAUUD1<$%q|M&M2q|6#MbAk>LI-hOwd2wOE5~1zus3<^zn^F+;+y~gG-+ZZK~bB z^wpM(mt#94#4c?Ya*9goQc04Xj<2e4bA4Ht>dU?~`)n>JotNt%a>5SapD#63{BC6`gQa}28I`!uIQ_tT0I?!1CV+gX}8@YTTA*ey2~r8MR?7p=Nb zI2WU_y*L+(VL3KW(C5E1A7^x=2soFZyfmL+VQ}nwqLuZX?@2bUMcG9
KLed%?oYw=P+=Hun1H^fl+<-+`A_vNC(g5u@k(z@m4l8SDo{7Pxf znET4xhK1slvX<@Tm2wix@zshh{=2J{Ik?wWig&m9=JC_wipXTVr>BwbB<#ezh^SSAMIGz2p5N^r|-wsyxQ0f*O$Ldi$JOq?7__ZpSv_Y5@@!kV2 zJBRu&oM$~y^#=U3vn(7>L}DmNZcfEN)0bGyeyK}qjD3NcO%VQE5MEWpXv4lI)aaZ* zQwIfA(ZgM!WC(LikZ`b<7RRpw+8QFNFz6BsLnsj?oEJNm zZaD3i@D8$YOPP-*fwIK4O{@;$QNjJY{J^4!0klhw?RA)n4gXU-8h(t_p)E=Q9Zn~l zB%POln~^&j=r^Gl5QZ-sP2!(aRCq0<3qJsZprz*G>Mc1aW~=i%3g>#bBUqB3KdkGB z+WJe2s9auiGSb(|Gr~rLo#O~T_=(GUq~5VWK}kgSnX!DRMbSaL&Q11KoB;pQCZsCmS1td~8Ih z=Zw=_4G3l<9A#r6>Oh0iPK4Ryu+Ha5fE;>FJU-8{KE&vqtMC1A|Jh~+mGg~i&&5Hn z^v%pglQ(MPy@QXNHnV6o$$U1a1D=?K99m~MYf`Yxkn=V(tiNzZT9stv@vZ7t3IrW( z|1%cH%t)`ERp<%`j8GJWw^*4ztjqGk@13@TBvrZO472E{&{QkQ=cFG-ugIYxYBDLu zqjU9efeF#wTLr2gip-w$eazn7dV@JsY!PNWnk)Rf(8#pdGNo^{K<#&tMRc*%8{<#K zcE5{lJ``Km_kAjR_PYdo=q`id31$sXdUi{*?xSe>ti#9dN^8~e3jEvNjo=f0wK+n=~rhe3JfZ)KMFgW`B>JTia1=e#C5zX zpthri-CZOP_F@aq{%`}Kp+!BV;RhD$*JL~GiBgTF>9e?^E*pId6k;VqA#ef@Vv#F! zYr6#Iz}kVmS`~7d6T>0#xr1L<5wd>xVOz@cJfT@E3mdHAwka^*f944_%QlCN8;c8i zXdTN&)al?EtO!*Zm^nPve}d^2&bI>=xOtE#{@YDg6Bg)<{3u_sjSbSQapkMZZ(!qb z(-pnn;w;sb7l3W?aaprp$i@C2Rfknm|K7S1cYR097nyo zi8zjjvTtAEmwA)g>kyN~C&V4h!??+0cR3shi@>v3qJ?_zgeLjxEXVMbVi6B|%dRab z1hCBu_ArgSvh6Qi`BZlkc7XtX*&}6e+IoT#>bO<1I)e%c#^iAF^=A%a-9#VQeyoI4 zIdFQwdGaQ$IiA;+-Zovao7x>~7_2RO@?phsZ+Dz@xUM41bk$j8Z-Q)ASC#T%)m44( zGbN_3=8fr3cl*7`iNU(M`VT+v`|eFq57#&Jn67zc>`gD4)i;fQSbN;O_k|Wy-}1xs z*R!d;uk^wCwm%So?NIX<{u*S!A|7u!7j!|YGf)c%^!Q1jP6gMZrg_J84#EmVX#y+h=H7H-}$ zD=IHQ(v8KiEheYFSVj+8Ojc*d!ub7Y)sKM=}n!3e8)WuMO>vH6Q%0 zh;3cHZN4`-b+FxlqzieS%AMK}*Nmu-Sdw#W@RpS>{A$3s1% zDCW+kmj~~QAMEcrX&;+Zab~WoRB!$|F1zbRMsLch_-_u$Fs!abYurCT`V3U=uZ6KO zvWC(i7MLcN@3ujSFM8f6EeX7+JB^2t(d;Prvl=`~Fo0V%fY&B~-zPvYH9)u_Ky)HN zoF0G{43tt0l(7js;u9#B8dwiO_Pq&Q81~Yy@I7fHE_d|$Q^laUI3;>m(9q=|b#hSm zOprDZOfO>ejDowk9vUr*wRr|#q6b?DhFGeGSlNVF`-Iq}hS)WPI81~%(nGL7h8mFfY|GZ=0~kK4CtoVb2=E{3gQu>0$frFZ=|aTXsAT zKKjtiIXuirwrUs}&P>s}4-b!5eVJ(UGTG;4YU<1MhL@QWFSF?{iGmTisuB4%5e0>h zf_)-X=Yxw=pU2IFzio(kj8#bDi*&ktSb_-gmI<%3;Wa}eooV35l;F~dNafQo2@15! zEy~6T(c2I;z{)2|13z>L9%kkHPK=`XM4Pss3nxb#NecVS`BH6S7JOnBQ)8A{@4uG| zm@gEYbJOoxkLF#Ed7$g(|2|Sw7o!{(vD?699PSnQDJH(wZ%`+;$R+k}U@THbgxyVw zF%jEuNZ^|>fE=@BKPEQkqp_J9$EqVNdhF=<6BMhERFM%+yr;@>Ny1m7xXgC&q>Xr$ z4or-OEtmkU0ST~84-N~ z)DjH?;~|`0@xe23A1?z-%pgu^gm;Yq8x>jHDRDrAFtM7CM!D}PiKx(y;xI6Mn&2rC z6f&I1DFu6qPP)|&btFM0&x=0=Av6idr@c^JtR`w0f|G+XBKx%@K}+LS_n>B&dh5 zO+IFRzOYx|1rQL8ksMp+%d3I=tBMgh`6Fq zavWF@1%7s3QcymYNsPMF_!`m{|N+ydol&8B+XL;&-)E=B%`2`)Mw ziT^Afw3R3pphTm>e%HrC=1SBd_--|xCi(M;NeGxUGNO@7&ZHvamU(|E?1Qp&Ukg%M18fBGA;DyJ#+3u{o8S2iFsr0kaOkyPUSisZ@-ZJPxMCY zE=x9tm#>{xTk7M298buOh=+@mtv{1NaPS7J#;m&$eos`a_*4pJR0=m&icVFE?^U8j zs-)DbWbCVs_*ThfRLOH#KP5q3K#|9rxqT}TX4KTv3nkoMgz9x%^>Hw=_+f#DNR6&~ zjlO-2fp3jbMvZZEjmcDv*NUf!Mt(ASPwQsFWMy*|Qt;1BU<6bRRq|RBr&c(jY z)wj+qqt3m#&SR?X{$3qUq~1%t-rK(Zv2VRkM*XwqdcUc9|Gj#=NJF4{L$G~AsBc4f zMngn%L)275%w7XQq%mH-G10y;*|#w@qcOd?F>|Uhd#{lw(v+*-lyBcu;M-J~(Nx^r zR65mEw%1f4(p;t9Tw~wNDs|rFPNi}Gxw*7b-Tr3Yl3LPAvyOVpjk_(5kuBFtS{(XY z8n{sZ0sZ*j&FO9WUHZCnuxkx)oa)-T0JqvWLL7iTfcQi=RRZEe-kf~uTn?}fz%)rw zCB&G)n85l8>U3d7pMja5jdtXvixFTX}jE_4f27nA8X~PjV-#JZX!TG&RUsvTKNF|0NMf& z55N|Hi~t(4OQ8aw1F#D~App2En1DFl~H*WD!sfA=fHvswxjT!&|1t1S%TOnXE z0J~(j;cm^c8w0{|0%M0RFGfPMf^0gx!7Z5419 zz;PO)TB_!W$|iWgVnS0_0f*9X_6Dp6@Fu`+0B`}62cQ{%W2#c|0005xlwF_%SPwuy zIPWNcegLilECzrWw_uAxLOwuF0BHdRM2PoJPoDtn2{0@`Y5-RPu*p%a5D+B*fB+r> z5DG9IfSdrg%8tPU$^*a?U_gWdd~!Mopr0yw1z1lSg!SIZNW z;&3v)trQR+Kyw_mN&)BrKn+kHz&hKJy!!X_WAx|ZmmlV_+W&@r#uf#H#5Kq^_P^Xe z*Z(W}>4?J2^dLdZ_(d_3f2N<7iLcuJ+fq|EJwq$M|1 zZ2GfJoByJp+HQVLwfbM*NC5pD*oOv?yAqDy7zF62LjpGux!=ts^KEK)^$3z1I1hfe&b?9>;!D|OV?u< zU7a9ykublTZZN#UM(^1IklrD=`u~)E_Ak45TL|zz`k{GbYb5#UFbfx!vv%sH!P$F{ zoX@lnA6;&_{_~u(fP+Oh+)_XveE7zceU~?|5EabwAfGs_dBg1{Os8B@X_8Ohk4YI~ zLFb#6gRgCcW^pJgqJj+sN4$hRNCo_T3z6e3v{?9|Y1$Cy z>FN9X4>6p<+rR%6{iHlN*vYMmI@rxmI%#ppqT-acYi{p}5Z-en3yZ1EKd%I|brb`D zr~k3S;WH9mQ-_$09!z6YCOdArM@zZVTPt)9F;$^RWHg6U9eF*3*zq(-^PQ@0SEMA`7=VV+m`qwr%C zJcn|y;dTE)@!yyZmX5q&G1Y*;?yfP-?VJ$qU_>%KvY^fpAFAyBpVCj%8;u_q&E4sapD$!1o zvPm*F7}cQbrFo9%AY~AXDkC+_S+>9M7>p!-7X1Mnzi{MIFt&QLDhw45`k2^~M?6C# z>+N$*0jJz}*;1E4ccyp)m5A1k$~GsQO{TgUkV740Iq*X*e5;xjK1QWgE0 z9&y#aE>MxJVGwB3M8e9VbAhw;EKCL4&e<&#SPSG`_Vf-xfPR)<6JE3^H9p7*#7q-o zxjBN_?@v^ePR3vPu^z0jJAsM1)dJ>@w0U2ZzM#Fxa-PFQN#Q;b5?zF+^3Kt(DqbgR z@1Bl8Frc7*K8^?#{H!3y4!P2DL!fOPs^Sm~Uh*ME71EJeE|R`9006vD?Z2Sejw-g6dG? z;FH1s9q8xR14)Xw{@Hh}VY;0mpC=stnDpACJciUiS^cahA&kE^U>M=A7XI{_8-Eqw zMve=3pXv@|onhcyju!yKa;)OA z2%+imz^OQ;_eX=yvWh_6g1XiNH{JyGGk>?eCDo-OHz7C6F(!&XYFaJ~ev3caL8sXF)RxrVv z8y8;W6T!eCx&js7vhtf-fMf`Ug{qO5%kXs+1WrAS2@h_P}!t&}d=wnc;JRi_x>HG4p@Z&$qGY!>PU#U=d@b;6@vr zWw|5D0!HhslI&YNuYF?qX1oj+pSS6Rf0HEia>ejC5$;;XawNtc?I4`f3Ey<%dT8a< z9zgg67CEOX%Fo7?8yENBj96)BjL2un*MJ;csEQoxz{OIUAi=;V&|e!WNE+sy20hnB=qbWldmx`Tk*9sodL+ovJAxP# z97B!!)(+VwKoh{Q=V=HO7wEw-6oZ95B1mjwVQM4@Bmk;ML$J1{GK)or@ zf@9)Ou4JIFNH7R-tsf4+p;)yIXtPdyM3EJ40EI?+I8RauEO9!wBsDglk2N0DAQU%~Mby4KpnpHq`06_u>2tXmgc>wLLJKfMrb#w&V_G0+A2^ zM*x&n&F52QNq`H*`%o6wsDMNP(GLJ_fam-j`qTj34?J$@8A2A=So<_i`=5TL$!O*`qpFH(P#?Oswi$9h8x7;Uk1LZZV&m*b9 zA9}sN?(Nh+na_O_q3S?RTUzTmPm4}TzW z(=S6WQrz@!^HJHg=S)AnGFox-Z}YiV@>V;j?L+h5=JSVNH)OzlhWxkroToxgI;g)g zYyHc7Zn1b~wl@C(%;yEOeBHKXXY;?A&s3Re&`op39vv_riA@mX37U44ivP=ebQAXw*!I;Quk7|04I9>Xf}!vrl<<2=1m9`Y{N!hN z;}PJGu&yg0-kbf*OCg{Gim4ckHJtR=08MV!1AATiL*W*eLm6r?x@IunXx%g2p5wN7 z7%K4ED29vOO4EWGBj5t%d)k$Q;kzbB1R+!3WrS%;;vBzx61v9|gmC1jfw4g3TrD6M zx;A4Wyb9|>yjr6tTOU5+l-b^z`0sNc;$xG8ot&R%QT%4aUs|_bRo>GD*?=tm?9n+w zV}+zJie7NBoA&oN3^7gK3lgFvT{y%dAns7G8$60?kAViTPawgET}+o{$T}6Poot{? zFyzB{J9phJ6`}kfwrga5KN}F__stA`8>7xL{K8=tI%02t1}uiE2*r%{y=SWObV<3( z20u~EWkk?SFMbI2zKIz`nDBg-h?=hQhxwsq#V4EMESk7PU3#SI% zmpH*XF}2euZTjU9q#pvLjm0WfzellqQ`L`Hygrh0@r1vA4)jibf%1Qu`wZuj&{`Cf zL&wJm2_gu7Mu!<7*A*oBr$$P9tH>P5i$`p87V>E0O+Bo0B(GY@@%|PHc`-33;YC>F z2@_&H@2!LaeOl!9)qQV&GG9{aUalr?b~w3U^d)45NQlL@;Ocx>r4 z8h-1on3l3)V9oX+aiLTa*R=8YKj%KZ^*yax@<+{mAUNg4Yet$nhfOU=SPuJRl3kKu zzx6{}qoCNfGs>5*Re*&GQ0crFoM{UgRWon7@^}# zKWkIl!cMmzS6PHJt!2-AZx_`FMEFw!YQ^lx#&;uQ)oMPO((yeGn^z~l70k0;b<<_l zfLMwVdml%+B&c4pNb;|PIrcxSm6)}e8IET8 zqut*TKM!;8Yx+^yCD5l|>UhlBJlc{-x;ZT_waka=p|@+5RhGaaEuF`x5*!u^Hjaz{ z!JgD^-N&C4nK|{s1RZvNTaK5nMCar#*-D0+lC--Bx5|A$8N6<1qMTN5SqJbkbG-ob z8;iRV(^cE0uY(B2OqFM@M9w!8a(X<%HStNx$;TxhCKML}Uz8f(o_J{sjYc6eY)p|aj3E2V6XCt|p@m(>t zap1PuX8IK4|HtOD9s^s}?4o^o7=D`PQgq*mm1jBU-*OhedG5Mcw=oI5b)Q*?ICM}c z{3Yz__cn8OT0gPpBkLf&_Z1uM=t9j1T6@>fwhaUM!5Gz%*i%f?V%~1kPJ5onkf15* z{c4xsS=WB6#7V(;uX~O`tKQu)%hTF93mw>#aD(WR^bS<;FdICJ51uvkzce4!;|IiN zVuIqL<4_>_`ReHz-R^f}LQKE<#c?@Nxy8U!a<&gYK0B)_)>!GUk}8U>5BeMzq$L=v zs~W6t6KvoUZ1lfoK0>)c?g&3K%jb^-yo>|Gp0dhO-m@!FEND%}bmyOC{fjLDpu?UzBQh*OJg424YAH6Ds0$M*(}t(!Z<&W8|=uUbrw0 zVM2r;slqe@{A+_OovFwoPXvErLrxWe-6`>+RN+R!BPvAjZfceZ3jF1Kc;jzm`jRaB zOPCQ*c3B`#2qi>UzPfap#nHl6xF)$C%;HFb+hSR|K&(jNoU%&f03A71C~HiDKU;$1 z3F(i|CqOM?n&WbuMj~9XDGu1g9|+`4bm9$ea2FaSy+ec&S)il5j;O4WG%=>77Y$=8 z_$S-8Lr{!Oak(DpN@Ve~_2QhAkx?-Mf6mmiQ?&Pb-RQ((OiIxt^OAS+Cb-ho-NTku zai;}eTSj=EGde>4^V-Do+_Q$4-ga*uKYQbo{zm6b!Rn91(cyw6RU3bHuAuZI)%AwK zLXzsnJg&_2Lc!r6fqEN1I}svlP)G#oVeyeLW5c(e8Io0nQRy)WyC@IdBBjN`_RB#{ z3B@VTP_HVB@15~Yoh%k~E*KdX^vdIolYf&ZFC;+CqYevef}l(gR1+=Q8(v&`nI%*9 zD5-&19f9<`B1KmOHT~wfNQ6XOE|SrKOy8C(8-^Z3K{OTN&aUXXU4fcDQO_$ZBpVjJ zk0qCe5iyeG8b%N%=7!!!?z{8Cf)z(yC{RtJAjBd9cv^Cris)PByNH5b1eJWbtbsfZ zx=5+m`i)Yq;1{%jp2StqB;Q)%Do^4{PlAOZ$58?+yb+$7DraC_#(pjoh%yn1;D)g= zQP5-RTl|@}D#XcGqpMy-U4;K6hDDH8qqBzu->p%m zvOuVn!F__KD14_dEKi`dGKw|IC>Fcs>+)Qx2bj{+>UF0v)n;*^GZ`Q~s)h%LRLMHz z=5a1PEXoOudUG6fvI6Qkg?8c)K0|;BqF{r0vO#))K>`Mrn>4=2a%K zcqqayVxfmI;@xMZZc&liC0uHFupqwi01tk{AsHf~bOt4+hC6S_ln2g0RrYd21r=fE zaBV|(rIaWTMa3pT&$1usFq$v=6i3_icKLue!K~7)~ z$>svzZO|!SE=vnYOirC%1@zMin)=>es;bZ%_H^Hguv3u2(EY6(lv>8QY%<^LJ8+4>x_Kpg zG)B5Ft=o#Kyccrn5#}ym*{%FD*D0*i)85w}W!HV(gsjHQC7*K&%d#mDXzzKZ)|=?i zo9x${n%SG)0vyQe&1UoxMf-9!`tlw63QB$aEf9|^V&6FMyg-8<(-3c0d2V5lwHp2B zz{vQ>{+8+fHby^5bf80Hpvz&P+i!rJIndWKFfctZ$QYoAei+gCFzWDO%gMF(d!2In0H7yJenGY6Mj23MyC*BFB|(V-2Ep)H4@ZNDLU=Fo1-5Mz4i zfH4FTqd+t%uf~3VSPs^9$whJ_RK<%&j@hdwrPy`LJNtuyE_J=$B#f{b97& zh?M4t%=M8Y&qw64M&w&Z6uyj{+#gXC``8?>Mw8y{8TLDO22K7J^-=BT2aWyi4#vmt z3ZwHTqjMgkvr(hf|F#u#`)f?l`$nw3qR)%ll|YqMoi^)bS+u;ovh#xx=2dTYBDA)m zWb(uBlH`TRuy9v{yl2i;ZZ|!i<8snN$*QWV!vkY?Y?F$U$GU!w%E=vD{lsW!Y8(DI z9_n6S^16jw@e`=WVjs0b=(p*TZD`~CGosJqRG*=FI^61Gx^HyST#pdRA z2B9fGa@156N1NO0Yn#qbt_pwh>g_A4t(`-hfBRrxf8cn2R~OmUIN$1$eoN)YwYAl& zCU?%BJf4t{e$C3{mTBnX*WGIx;VFcOyu4gTs0v(wCf ze2e%XC)4COZsyD4!rnR_A7H8!V{rBH!uJJRO-~VVX?<<2-wek5$Q~~jucb2Kf|0R{ zN!m^0hjFE~C(bIp#8=tsh2d;-@{>s^&wDOwhv}Slw$)2@)J+GJ(84JA^ZT9X;A{t* z7g@1`$su{e)_m<~9Gp{7{dIaIcc2X*t#@y}xtqNn z111r*lAQH2o;j8Qk(sk@zN2nFU|ZH|$*pzY0PTA0_;$Q)r>(9O=+COBy7t!?Ux(-Q zWS)$TjphbYo;c(buXO=x=6WH_Sud{C{T<7mg(kMvZ(TRZ`fGl1YtPmM z-`X?u(sQ7@pAwT^df&3f-SYK7%SiY8mdEZ6<2_VI^Pq^4)Coc;6 zyF*_UW{VKn%5BaM6`!T^h<6Apr%j!OvRMUSoCRkVcx!O%SrZApp%y&wf z|BmTDj|qP1uP^^rc2XfT4o$t0{_gKF!G_AY9)fg=##Xtb=7kie`MAHw1c`sSp<4c} z{te^5#sq6u#w%_j-d;5_An>B2gCQS0dDTKkpQUmBfH4^1(fdqiJ7BO)aRANYJd*v+G- zhKc*FagAs54DKw5>aM`)U$wVeAIAE$d`FCGayy3+{CZE^5`W61c}r+*FR@5?AMFmy zeLnX#CFdE_<_+It`u8^(_)|?=gvYzJPrgP>zD~&wX0pnOJ{%3m|7P&>y~Z({g=ZN?o0t%C>5)eVD={w`iNOMI`|8Pb~hR&Vi zUA({i;Um_Ub}mso(t(9}>x(*_R2}xVSXos*kAu%v>LnsB97{y#8j{sHxl$5>IhM9i zp{DM)Eh26mxg}l&?yKzyHv>*w2`@ zCFMI`!z#4}TkX19$Ff+Y%XT){Tm$U8e8+q{WU+88&a6c73YIg#_QsX?1|vSXu4o9? zA6%e0B$8t1hR+{ih7C=vXJ*KmcS+sl^>*ya@|k`3kXt_0dn8Osmo+B!3W<)YLcOH5 z1cf(VJ>f-rDH`NvHO4(V7a|Z4d1*GBC;n*myu!B9{2W;;dtJ&r7PFF~7g#*^T%cpl zoX506XI(R@$Fxg$k9y_8*P3j1MZ5(&Q`$==!l32Ml$th83ZXI)LKwu8r0uX8@< zv)uP}y{~j$onE}Q&0g10yNnU+E$#j7I~_wAt*ojY^aOTELSIhkC4{B4y?SV8t7$P9 zkAWf_F&1PY@oQv(n$1w*shg=0A6Hhw1H1y$1Y7UrqlJ5(J9QpTu!jETzbs=`Be4D)|%D$pSPTCM;0!D zLH7%_m%;+C#O(;Ab=%j-$-bIudxr@*&{Z1Add&Q9Twi#HqR^Wfr{&{Hb64kCA2DIk z5*>Z5!z3M<;5N^$m*Ojo*2-L7DGLg#L_VkZ?@)5aujyzEz20!twrFRVKyR_?VFCkhxowLyo)o9dU`YS|m|HZ6@Ek4tRuKUL*g0AP6-dmjkU5f|b#x#FU?Ut=1- zLoW?&gno?2V2ljo{(9!%j_e=&Unv+{Hz|=q1h6}sIi3-}_Fe5r3DH>s!=uruuS2mWJ5MmaSB=$hujzzYh9h)AnK>EME0Q^udGiK1exSpvU5i zcXN@<-~5-X4hf>+8n@9jB}j`ry4-IM=)L}0!Aysw!^>~?fS3qiSWN8APC70;;NseK zUH?q&7Gi(8_87&ehWfOrW_{!(Ab?IXm_=}vks_~`-w$f+^zkUODpa#YzgW^`+iYH( zYkhy@qyBHR?V18)oO-$8Oq}D9J+Hc1v!fzI%Rs&N5iO_V&1?>wDP@FDMPL8ii+{hD z{QR7S^z7oW1A|WKjGG&d0Z}6esusM}>8RlfWt@1QrsMJ@{}r1?5YIkj4=nFK`?$hy zL|sqDPBmpLJLz`dTfU$XvR4kt3onSi44Nn3{1$-C4xFc5X@{lZXLNRuKWjJ@j$pzC z{V^J=_v$)7qeC!;Y9S;L&=ES8j~WL^iR7j@HHAWib)KS`xDR`*Snp#(i~`sJBR~`b zvSb+}I_h8SR>WYL`t`^jp^bcueC(3jnwU@bvhfZI4$#L)XBu@u+inzKqZC-}+Go_Q z62Jl)fIExTS2@6X7=e8Ze@CtUfFhCMesP?)X&_?2>ped2M83Rk7Gd*FQ z&`q|LJP?G95?%Np@ebX?p*C(RDH4KM8Y&}lqZ%;)Ll%637RZ=tWpn_-zJ=U_{~Igo z^-*e_6+Leh2YG~Z<=}TZ2^6r4VgxrSFWYDiye^!kWA{rg0_aKONIo!@20+DTzO@L{ z%m5^oAP>eS!BFv#Um=WjQP5ntcpt>h?!iL+E~gz_uowotB|GXIY5(|v4t(1Gb`sAk z(kl_16&Eb~1t?+So}C)}t9X79Kx2SrZ~;bx=Br7YKd@~5Z8yKR%@`rnvQ{Uknuuip zX4oy6S~NXQpwEbT83NH@jJhNA6~?mll6_>vsS#WUM$eD9GH{kwHiRui@j2CYm}RS7 z+EV_f(l*OBmjO|2?>FSX!zEf3qYr3QK7t|O_skaczAegBiiu|}`ACfNW@*BA zMe~WC8Zf7Bo15B0Y-YfsBjY&D@3GD(o-fBg)7xIASQf%qAvasG8OCf@S%CSrzeaIC zmx<37&`KP4{(sf)60Pi1Da3<%VMS`Xv>UP!X>)lmH??-N{%BF5Z*}9%>{O%b-OH z8YBUPe4+~v|NA6S$i>gg@JZp?kg|IFfnt20_x~4rk`p0J7SUY+G5ADySDXVERPy#0 zEAT!t=p>(5tyu3ff-~k?SMdP@MtButlLa5(aPbDuY8(}S6^ikhrllSL)~q~G%*Ss@ z(9ZX^SLtxw>6EGw&hIFfYzY8-eV6k%;I!8^fgHy#e6@BtNGvx*Bj$bge5WU&hX z9I7?XUQG;#G1UNIH$*%{pq)^t5Q2Cgl~C+3!IMsMaK+fd z21*`uK)>qx&t)PQS|tHe`e>Lb0AgUb_Tp=$h!0HMj1ZC(Kp~gtOsv9==JvhCrlY_T zB>-GnMlXcxSMW*-3Q0p(h#68ug9q{)A$6|4k_QF>_(=c{4Iu-+Y5(@)_b~v0BYhDb z|KQ!SSuQaJ25JF(5)Ut60Ey@^%+!WK3;OXZ@wf-a{(aVHfdDEK;hePedFrvk5#p2e z`iFl;>Z0HS>tuWyo;!v-`~>LI!6XH(RIpI@Bh6V%2$B&I1+8F=7H$FP${N=F2C&Hb z6MU%>u@3&N@?Bz`M{=L6T=q+b--jOiYmiUlE#x8fJNX2+|7eK{fCk{Jy8x)F(W+^` z+W5(r))nR&gnS0x+{JwlH~Zir)iMkuONmRkaY0=C>_aT1l#(ovU3Yil0lr|{73*-v zG?jAgs^*?l23XDD9g(bEgw!bc0HnZ|o`Hg7*cX?H_H>dhqt5t&&CVrjt5sxGF1eHk zIRL;(1|gLXq?%*1`9z}Z1VwecQs9$iP$>YI&`Hwwhv_32cj;L}fvYETZ7Bl`8Nr?K zBQ0TI-6e$UK42*WOOz5D*Mr_%aw1#{D^&XrTo4b;mIRq|X{(0t#V8Ko;kWQ0KuUB1 z01gaQE1&-_o|?SAWKL5}wL~ba~LEC8!Gn_Ct6o4D9_w6RvIxGNhGv;d9QlB_a8@#RLm( z#7lojn2x#qv2EZQ76${R3)+c5+v?%gz3KQwAX)h0*ssHFNh9XJhNQwW;PhSKadG?i z-?Wl+@Yhe;3did<{nrPI2!%Whk`7VP3@igAs=&Ix|ItN(mI${MaQ->jlM}S_EOcKooNcx4y$lH6049-c`j3Q`#Hg-4R7D@UvguQFIREncTIWz6{v`bf zAOniwhJfo3hX?(1Bl{s<&9VzMADdJ+fz{6Hwpo3c< z5%v=%71N3F&8@}~$Z=Rb{bO>#C4xf>$z=#@g#zacaCzE<1SLS&gNR*Vfk^+jrQv{f+t}x62YyK63vIIlzcqMr>TWEFDh~OfeD^}?v!%D3KAlw zA5I&pjU2(L(_7OV)97@dnQ`>phBN$`Cg|I9%yptVTz<&G=kGo-oxK~c+83cWF=vo0el7nbe3V&Hc0u`u>G^Z6u(^n zV;k0iUIAFCtP;PQ;LBO0;1P}uloDY~5}h_TgilA%C48*2W8Y?a7mWvPvIbgUauJN> z@gN!(ut32=1_fdeSJ(baRV3+3F@zyiD|H+LxH{fs z58&ZT#Q%6uiUfZdhIACzd=G0~6wgrnFYm>J)bkh`3^7J<4=P9-)$sMtp+woR`Up*3 ziP8PaT>HnJ6#g4uE5Un9z)19L^UbxJuMM~(IM0z5I|Zb%wr5o^b{C;-ZwHnQMtD&kiDtMBInIIG1=?%H_pmXc- z(~8rYJcHWh%XDCZ?hZit%b`A7`v+rf#mMq+|KZ` zMv^%GUI@#mNr$zDKw3f!t*!K2F&{|esnpW_VjfMC0{p|L)G3kIGaHCI7(S{N9)XV6 zF+99m1~{Vc#PrtVx+FRmUkJa|y^Tq9O#aiTxjocH0fg`F{1{yf{SF2_8Q62rv8MDP z2O?nKc_2j+w{I(Lt<`8FRMGmjp-9os3~rk}eZvPKHR$OF*Z=PuqahrjnaXIo0A!`Y zWE4a1p$`63zd!$L5DXYO=6zxk88QJC0PH2JcSxH!jGQ;0o9-loN4(q0dNX+3wiF&w zu;Z)6KllhW8cES_t({Y#4>tG%OSpJvls1)I)&jRX9L9eu$#+J86&1oV9-;e%073y* z!`ySPz=b)(KIonhzR74msD2AjF)&h;@N?ty9feaW(>@vk8_iq~o+aod@u0<4AlG?) zbR_XB{UUKhJu3-ZqWGFj2dMzwKMa>dZ}Yj|`%$BF6&E*30V2r>{gHUmO00S%Ktf0! ze*s;E&+{0GF0e;i?Z>IvS5d-%Kd{2@X)K42^#O_vmLIH%z%2o`uSPLp{hy=Y9OLb0 zG-ja^p1moTl+2~2B@(XC4_ix#E{LlAdBKqnG{!;(x+T9A6PlqK5t3yGSFGhr@uGF> z&3S^YvJ=L1fTX}~r2i@g2p|`i4qrTpVyfsz9Ax;z4a1v-8jcoRhQbI z4(zubs~U<8R}K+=!oL6h!e%StwPiRRF3E1B-<~eq+)GN79y(bLMeoCDqfm|naF9aP zC?Poy8v@W1dG1}8$8KpXsJ1$A{iE5N8^u$)e@{d{c=Z zq+>Pmw|nQ7ck5&ZKSmd9+&jP|TLf+xSwmjcxKh<+WwjEI9Wp%`rk%4I4^s90{m{G1 zwxmb)l;}7ly&S&uE~jeBZg(#}NyO2m2k?cTF?{1fbQOQ>S?L97HXx25{KLxuT7hJN&mhvtwZ{+|z z?gy=cgjFi|{J6IyGDk7_>gUZZg=%`~uXpM3nty8Gu?mQ4Xre;W&ICJpyMhhls`Zx` z*+t=W(0e?zO&BmyPg=GQaI^&)OBOpX5LWLQ<{#ZA(lWH=R*HAL zzT{2#)iERlmKbFNdo6>lFj&2VRs}^G_Z-;-WuYRz;>nO~WQlSrP+MBEvmxiZQ-CQh z{n#!|iFZ{#cR2ajPVyNJ^VEnJ1Y>g&}%jp4LA0${`- zVrc9b0Kp7RgEib9y!Jl*c;Z5C^YL(QRE#3$B6^XV4iq)1Dc?zpCKDX9?b88gezOeI5=z)J+;KVEnL50RpsU`N;8=u z(z17EdW$fhja?SG*}9GqX^Ul}CFg*?6DAgMt~2|*=huU3`jEyrqEpCVYT9PF`rtn7 z$YauU4~qSz{)MjaUe%IbNMU{G?=A78ybByv-ukfXZvRW|8X{6&n^g zQnH2@8Hdvk4iNJU=NlP-=DfAAJiC4aP-N~mo~&tN6NkLC3~+^)YpR3b-hF+?4NvTv zWG=42S!l#hU^QW>HpNJMj`}XM`=dC(Wc}L|?7XOvnlqnec&m5Qq1>5@*VmIvqt5y_C4=qf_x@a)E zcDdKCy$?}_0UAzda;_3gzf86uUMs4`#h zap5o<)gUSm@UT=30@z9>z=J^jG}7L8s)_~=qnc{4TR0JgFOwmd*oC|EBDyTCwsKEP zobS2oQnzvfLvI9B+YGB=BDFw=u@4}}Og%de&F8BP)SJoLaVrp}Ap%YZqyR1%zXj~{g?ij9z*oE$&=eP{j*!U8W&~dq@Da>Fnh;=d<=5LtJux>E_$Xk?*LE!OaeBh>5)V8??kL9qhRk6LTy5`bW6%)whflb)io^JhV<6(3!2`ICrW^l+g`)tK3_4|Xm_ z2sXqD%W{<$IrD{-qpk>nE4hEErST$(0h?{u0Zh<8?WkIxw95ETr1DZn!J?;HCK%NT zf!>PI7`y_2u3X~ad^c{Mw?8`D(F@-O7i|>zZ+GlM9*N>K%4DD#s*s$1h4H7(5-)OMYfH<-Tee3zM*T}iaXT4ZrAJ08)$7L>+CaAuOzT3Z_LJu7 z1mMs7l=`C84sb04wDMEX?!-L7Aqvj+4WG_Kr)DlQ#QQbwEsAy&uyw!V*b8#pAa9-c z#ap_3bRwK$SW>2ZSN0q8v{vsWjxgcoS4rmEOZd_4N?q&Ue@sP zaPf%5zNPJsmwKAWoE{HSthx;^+%2*h8Ub)tgR}E-qLunH3%39`GMa@{vRpuh)n0F{ zOGWM0EKNt=1IcmQL?6oyPCup&Y7GN;rV*RSvBHqQU#fILMvb+1cWKQcqGb_r+B89z z<`G$;i!6?I{0aNA;q<3V!9fr7rtahnE0B=)-C%np$8%(K4H$-M^M;Et@FlF+70~*s z&o-Dpa7Lq?SCwStjhm^ev}kE$pX%&QYd{E&+&voaeE~r1DDoYVKi|o`WqbrKG==*f zoo{_5$@n$a>!-PJ#Sl(|FF5MU=rUGnb@ggtxkVNuo3I&TRO`;j-kr`M^}PiYO?a#@ zC(1#e$h|!o1ft{YCTt-*7BYYU?#`ofrEB@d(<{Yp+ANbjv#I|ql9pL$^R#Nx`XY&P zGNEGuRk?Vn<$V47^_H&=|Fiak$0Xapy;lCHYCTqeQdT5rTTOp-^E@Wu%XBUgqRm^) z6ikgG-=nb9|3w#SrEJ2azM3@Ae89%d#gz%%YuhX5KY7i6q`9}Aps#3~EZ@!*mwv<0 zL<;{WPkBEDQISx3TgBHW{Nj9VQM)oy0BYVYS~@;*`cK1vn}S!?d86=>?OW_P|5N6z+7Q-Njiypf`63%i=NOfU2$EMY+6! zj&7z|&8b{jnbNZ4nug-)mQhVkKtT@g+P9;$I|4$9{(+q%g%jlJXQhPD=Ia_M#XI!N zd~3Uwnw8}YbKV>+))=YDu_|;F7WYfMUB*k@TK>7V)ppC_a*g4FTl-JBhqaX|be&Qm z;{Ljnjo487t?vpIEzaY_m9m|~7^716vkSn>@Amul`G|QI%TPzZwXPx5?$~#?EK*K- zq}2J95JDf^+-h_4+eGP$0Pl>Ky5ibX6X30Hf5aMX^*j5{@W42Xo+M?yY{z z>*60ToYylzcUjqnqqM=JHzvN93ed)5N6@}*-w>>;)il{7N4~woI7fnuNO5~Hy6@T6 z6&EG6n7T^k>FR(RlFEG8|K&sf{DF2~1))B^w<^2cZ#_0=?J2^Z%hyg&t?J;@KYH64 zh2QSFl?raU0ef$?n;h|38SBjmnLhZi_d?8x&AOH0ts%`BJ*wsO*J4 z#iRUMUu3teOtZ7k>a-*qFlsMbG=?RJT~7SC>Z9<@3+$Z>>Tk^%c$O;u&4)PSw}WlUi&L~C zz7U(rn>+%rPpzri2L7?z>OIB>Y`uegH#t|=ReA_Q(7IrO)cwrBnFlvaLWRZq1jHaS zYQK?Cxy!M9WSaeG?#$Hkd%FZ7u?u{%2COaNz;{ykTumi;V42OMdv(uCa}(|?J1eex zd%BW$$3sSVC+OY-V{dOg^07|$`r6Q9f#XPzY=YChvh>s?#ld1L&I@*+0Pfv5cV^#g z=jNvV^Kf8w&HW-I7`K^v>PENFmU{ilk@|MEbN#CC?%yR24M|vz?IH&CH2SIz)x+8= zA*V{@2=Mc2Lwen}cZDOZNBpuxNz~B66U6#bYM1`8W&4AJ!cNtly=q$>{IE%PPtWKc|D34P^vJm* zczy2Oij+r-ei8$45tfv)njG!i-9ZhCVJ-sp_;Q6|wTTgrSpUNUn?Mx`|?^s!D^fcEf zvXp*T>Gz79Uec7fb%>uBR(RlX!qouUE&l}}>z-e~?YrQq&*ODvLw!e^?nin@?yp$i zH@=!#b@f#Gxq#=9XU9s5xFJ59A19n0ETwO#Xj^x!OZ+=>oz*$x;?3(0`%)X)hif{9 zE+XqGVfTKIM?Rf;a{B8Avw;X1?{Q<|b?+-0#LyzmrR^f8F@MzZ+4tD7kS|mt9o1M^sNp)UD{K+nb|$bEEnyqWbHj?wpUh zdoya_Uevu;QG;Kj?*EM%Qj30I9R1KP`d^ReMOe)TH)_19?So4?T`YB8h6F>mc+-g(4~g~Ys%j`^@T=3{Qmcty;o`k2q>V9A{)~>D*&O>TH+Hrn_IG{kf9GTW+>D*O z7yI{B?EKeQ<=L5?;HBWt# zN1Nx-)#Efw;xz5!v^?XqL*sN};&e0P^z!2L_r)1B#2H?QThJM2G#F?6I?iM=ZsB|! zLp`2p63?=aH}#A+3yn9AiMPm%x6F&T+81x#5N~rKeo<$v;Rgc!&9TNA*ok zCYu)9Z(8EHN$DKAX=%(Rm&{Ge@;15d+qAr4(~1k5+&VY84{q{!y~%TOlh^zvSUrIq z^K!RUg12Xa&xK-kOoCr#f`8r^Jv3pZOM=hQv6UARf!_p1jJwRa?L{4loRLn80>SnT9`?vun# z*G9ualh&$#;KfkmKO`nbBqe1gCO0Id?E4UQ?L&NMd2&)>#^8s{h_Ov3$=~b}V=a=i zLqD3nOxm8AymNXVGI8@v zO0x@4p{me~gY6f@H?F03d`SP_>xuv2zjV$|blPWhU7NT?&$tnhaogp~ZO@Fp(2U-^ zj5|9r?#8GBB)_1YUu1&MVvF>lYf)Ds(y!)CTy)(0?g3Dz{o!ZZ+Sz)%1VgO^d(VUi@ykbF0I# zt&XR^vy|VR{`Xz!`1HH|s%?u@X|Hd-TRLpBqHQx*7CTL3x%Iv>cNMwEmYa_MSUkQB zre(u~bEZHU=i3i=FOk>NZC+cl{bHxRigkUDP5bC&`_r;H%ck@B(>}4&q5jh=E3U8h$jPe&-H{b@f}AKJe5f7!w7e!AV?-doX;b+^6c#=&Pt`uEiK z`!cXSwJY1Lb|l8mwAb1t=kG{aHR0BW9ekzgvYna5JKJ4<^>BZsz1flRbbIcWs8>dst93$W+#^@#hUVEs=H6-g zm=ii5HoJQJhU7a<%Dt7dh0CZu)q=9*z=HgE-vG<320p@O)C-(}-~z2ZgfuU#is zd7rmQ7~Kn5%@)`R%G+V&;#uP9{9P^U67*%r?v8>3ht~g&*?oDHHwasv|M*JFRY94aK+1%0KI`Tt27~bK|whPe65Y6=~P(@#X(l&d|R; z=bLup&*?-FRS!h(&-s`Z?j&M^Nw57PTbQp8;Tw@v+S zcBjT>UA#8RJQ)N+kq=u^e^`W;Rm|7BYKT6PM0nZ<+q7w`hfRTp7H|GMZT+Zujk3Qk z?WavdOND)%zGCf~p_cgG{dVayw$EGBp6;))meOCeZT+a;vWz=|QnG)2|2px@VFVRb z-09e++~WAQXX!-N&lT_AY`V4Ia_xnT--}fND9cQ*-tc|+KTz+Q_FVsO=g*JMuDg;M z{SSkp>s{P_!DDd-`$hZCACq7I>|Cu2uVEP7fn2wWqrD}elXJ_b#~(&t;R0;$DUtE1 zZQmyUy3H!yUYbdf-E7dX*`em5|83r5Zua}fe=lxPdd|=N_iIbX$Axb~X2;(3xXl>| z7$TBQt(37-c8M00`D$v=W~uerHda~g_4k7z z>S4rHWd@qtH&rbE+;$?-s4an5NeR8QHyWq2K0&h5=K9!%c4Q4K3^sIa;$C05%lzPa z&-YmO`BdeZV=)`QOs_J%m%Gd2NNPjPeUIp~E8hUFg?zcTTS(mVqq{y|w>(BJ8v563 zYiO4ISgzr2tK%g_JLL=A`wgsON&{C|pFD6j;{GNNHQAYy^}BaJ^O!9p>w5x$$wT$A z_>)ghpKrI(_Y4)^d8lGzY+Xv}Z<|ZE26fVyJAun9g&7m%YjTbB`;GnSW1wmA@d*^|kO{9PMa^z6fdkS9hQ5`vXD7=Fz`qw-L}! zexZ*C50-iEzB8x)R%~~&L7+1T9sE2U{-rHGl6FDZUUL;Vk&o4~9I zAVx_iI^BQhzU!_uJ-y&~H;a9xp%VF)eVw*obAZY2AERYkz8F7T@UU`d-RhK4k11JJ z@pq-GyXW7ZTFSdLuN7g$uVGMxxYF)+_>FJRE+Y7vn*7&O`=WHtC#@9{Jl~E2ttEZy z2ptUkpKN{nk>-M+f;%4j&8v%E*%w&2j~)nirm5%gtxuhmFkZfu5hCe(T{;?ThNr!7 zo;cX`Up=*gNH;^xo*l04EKLVp8<(F2Hk_8mxgz}@>orp);Z2Rf(%K%otxiFIPSD+L zeV8s1C?GsTU+0AQmi^^R75lq-?*%_PsnJoO^Nw|RE=7FXy8TjRp3lgH--yG`NbU|| zTReT)VqdIOju*_Cnwef_tR|@~EKxMf!3r9^FSIm#PW&aovVZmd{az<8V+@R^0Oz#D zH4SxdZz?06$<})U+UHtM+HTu*an0>wKZ})y9OM~2wli>@`Xk~@SkdxA+a;_nqrN5g zINsP{q`LUg@r#+McQ?P@8r9l*a#>b?&}{AJB<%Ixd+|DFUE3#*dlTq!h*l z(*O^T242Uvl|n-wn;BNw{%~7_MA&D71m|-4Fk_Z!RQoE^QEWHJo;UEWN}Y@4fS#F zjP=?bota@7n&F2+H#~yQe{(c{_0fYVx?Z-p!Zaf-O$awh2y}IjAvvh4Yz*9xr*-HO zHramjdZl+??)JKu&nzR9aoj+gt7lg3eWwguDm{u*J4S^g8Ww?yxU~Oq#L&W z-5Yj6QA@CV?L^~rWS;1M`Q|)vdgyp(^>Oy1votMHs4H147@kP?nVQ;{OC`4Qoh@hl z%!g0E4m&=)>~!)#&VTJ+!kz0w zVXMUCpBpdT(>{y+og6~gy?)2%2!ZaiWBD_qz`o_>vDhq!b$V|@wpN`xdamVLPJbz# z)xLd2q>gRS4YNf`_VxzBV@uEH?0*H9SDsLcpScU4bIEGD(#!k96|bLdhz6TO?!5Y> z=UqNhq#V2h{|Pd5Z_Cz~c4ji!-YGFlH!yF_pT5G>F`UxM=F#`xCKc|H5OcHax-uCTCif% z-6Ky~HNm=8u$+GR`Jq8&ZKCah+xPZ-EgN(WI~jTXN$jT{-Nrk{lKh&o!6+yDbw6qe z?u{Fm>J}9bXt#APGz4BFf1N&C6){a-r~hCg;u=ieL;e2;7r7I!#?*PtB2#dH#A+3f3w$0 zI{~9rqfE5@F?Ian^Aks>+23r1lhgNw?2*Gv zansvHXU1Ru#cNc|J%1-Xxvg?(&FCE{=~}Tt@uD|_o3Q0azivI`ccMJ)o5`QZZcm$1 zi9~Dpx?F(gqz7`SO;lwh$6!s~t0U(wq%8g0 za`%@LFGn`RvEF{U<>A*&s|^IL_?e%nSy!LeEW6p%T#>ytWcu^B48=7d@H#>Szvq^h z5_NsQ7!u__Kj=C%DSuDICH+jPJOm!suJCu$&V4>%vi#}s&Xk(WzaybfZ@$#~BvT){ zEpvObm64>J`^RKU|KodGV(z!k{m>4-zUu*H#pqz_dir866R(905=Ok|KKsM0$?sg0>O&;TTVTm&qfeXYlj+!r1ezE7eQyn2Z(BGdDz~78(RpUJO{p zi885wu!ep{(|84Bd~I}3NqF}#(|Aq8C+nA9VM2-(L?yD_dNAZK_gVBehEf=CW}gv& z8d5~BhOHw7$gSSZbjZR5B!}Ji6oBTsoCmgD8Z{yu79i8*9t@6IA4+kRn;(an+&)hp zi`*uM!bUa2*zS*Fpf-Rig>{+%+sNZq7v7phfEqq5i`xYWarg4ZON|+TS~g0T!GvtY zs7bzLD+iFEPzO3-Zn{8_ z*@gJ#7P+d7V1ObNR}4gzdkvkiYJcfA@Yd$@LQgSk>Yo1${XW^Ri|Q;Vj)^Rc5IUcu z6N#{TOf57yhGB?>>l!nl(U`~5=;>w$sya)c@n|<|gq3(+&I(iI*ML+bkohG6XhuOE zTPv7Fo--xSbpsIzUYF&DW~R=8=HwplGma-Cz7L&m3H5UfZaBY&6G>k;#oW+v(m0Uz z$@l(-x0KHE*Cwx@p?{fMQA~)s917-;oQ3pZn3)pK9EJ_rK!ZpaD+Lw|13(K(?trm% za`QHxAtJ=K!ka{(MvV|#r)0a^9I{S(=hX)Q&O*q)ya6o^2oj zO@=fUHKQuLD&Q`sHVM_-<>WdxE)1r$Al7t_j(#$w@ z34>N36_0Awh+2)hs2zyc(KgSuB zzPEjKcw=BC5J0hLNvwM~deeut{(0gSsy18htuqXJ_yB9-K@%Sl#aXD=Cuaf(*{CZk z0M#^7#TR!i7-E|lq0CkWK$SCtyUdIr10y*-;jIc1$;jJa%fn+pGm4TXC%C3UJNvDVr{+Nr*L4is-gN;{e!fu7K4cB;|ZI!*VWP zMwu!u1B$Q^8}|r6Z#d12zs5`kw+;ei33~I$XRm~_YCa-0MDE2%H;V+ww&>~CpUFmv zr{=vG0{MSvvD@leJqc`0WV@rVi7kMWBBsGzM%3e1O#nb1`#+P=7iUK@As#&_(K&rg`v!(=W^5ftgQ>=k6 zAR_lW{I6fzr<=3;a-Lal{66~WrS-fCT4O4RYi2L-=`zBi3yfg> zHjvtkV68ah4!~4AW=2(lCaOR|21*%*PaFZlZM&}TXD{q%q7AX}w&NZ~AcZftsFi~q zatj|01z=kvfQAJ22m?&#Fjlr8M$iQ{!;6AN6uMAr$lI_MpdfOh1faI59wuthf>=mk ztsc~Dob}{3NWpTnT#=Wbi}Q!Pozy=On^7~K$O}2Wpc!UrI*ea{J>1zHgA?w-2 zZ1H}xnulXUQae&H2DeiJ+AL4`}GytItbKJ{EQm#JZptpis9}l)9=2#bQJpR7^ z`1_~}C)ZV#Tc};wIeq}4n?Xh#Y5;-@?ot_Ypx`d*0Ak?|l8hj8zMPJ}GwTD$LkyZN zpl8)(lnohk zNPx|10D9fnn&Ys6G+w(_XfgX4;(=tz0F?{juqcbK8kSQ~nCwMG{m$CxLoFaxfsl+) zO#lv|2~~5oZ6pdkN+Vf0jWvJQ$#B*)LRPF2;mm-2g9Um-gp7Oy2T&#eI-Nzdt=Rn| zttv&YZUFn9MHi@#Le1HWeBk!osH%JWDRfe6P8PFO9_VF9t%coJywvmPaSL1Zn|sSk z@Hla;a`6WH!q=gf&G%e0ZpTR3>KvlIrFZfEEE2hH0yILQr``nJZI*nt>)T249ELz- zo7I722ItRJK+Om;;-Zi6D4BT0_`clB^`T}@f%T3rltNSIe_#Tt+G(I#RvZeSP3-`j zKF44FAar?y@i2o4!5jlKgwVXi&0jbZi0rxo8$GhGehygJ3Jbpy^v`cG98NQ#X0xkd zd*)3gwiZbVdtG=L_k!OUYm4paL+-%7gLOoq*zRig`0Yc2z7q2qq+`Ea(?TI6~t2W!NkU}2{~Re!#K(t%Q% zwms>B$kX0tlI!j6!qN>_S*VcS0?=A#$Tb}GVZcxdmYE_X6u7U+F8yn=3Je9lJ{)vk z6DhhTea2jORk$u!$K>AoRIg$;wLYRd!ioemh(c@0XHzpo&5Bb^fE_zn$@>A5U}%dQ zYSt>EDUh*k5$VeZt!6~c$f3d> z21j^MB+48{(`Z7~MCew08S9GCm{79rlZB)a(60Oh+orN#q3j3)Vi^~nGRCTDzZ3SH!G1QTl0adR?KEy4-|hOR+?`wfG+S&c^* z=wV9?`q1~z(PKI;BoHh=D3x^G}BwYJL%gV=fr)#keCDY~Nr)2me&zXzbzc~G76Z3^JFg{mc^ z%YI=OGXU0_4i^akz2F(eqOO}{fZW#w_x!nf&8FW7Fp<@_2v9S={OTb&t5taV+72D4 z2h<{I8p{~GhfUs&1MUXjzoBL{tEk{L)2nWI;prPu*{JWW#sC5=82wH&zfE?W4_Sc} z1q2>mlKP}|msWCUz1yyt>5?BN9XX-j|85giQVuPy^Lx1*EfDKr3F;xG32bG68P-Uh zr+FD3^U|`?_j&jk_u7LNPMh1vLOz4~Q4igvD@qa%<7~Ju)2kalH|e;jA6V0aTO~cH zba(!}%uLgVZo#_b+Ow(u=APN_n{WTp${x?3q)u(~fBwqLzbIkFVmref8PBeyKE0N^ zU}xs58@qnZL@%-H+~Y3~i*(-dy1}<(z*b(|7weWYdp1nKZCrUHpQrnGW0*>%x5Nh< z35=X5V1Xe=YIiXT1Ke}IDXv=o%U@Z&Oa0E5jR}4L^N7BEg=K>)gj3Mm0osmF?7J zX1N18lHRBl%oK zyhcO=P@tAGlX|?ut|Wy_V>1mTC)EjmZXGobmK&>Ez*$$Bxf0hstwD4qG0B z$j?;r)odcYGUN&HZV7=rb^LbzEF7odhDL6y%K85L+wCc_KCYTv*vzOP9izvubf_`w zB6%p~W?tI+1S2Jj#V}~T0eH{lK{o5W z#@XSI^%g3PC{AB}3L*a20dMORZZ}KNaQHqt*05u8rCCDKF9E^ibC1vOhMc)S$xAq| zON!s^3EWKJILsRe3ad%a^xuv^H}yX4V(O?b+w`gU&)!SJR*B#pZ z>265K%Ud^;|F0f*3m2l1X-+Jf=LNN z=$>1O`hR7I|3<>Nb&i#_Og>V^@A~TQy<~IlhwW5T^1V=(WBw;`c_n~0;N|V9_2k29 zwFK|sHLk`amOZzwEtdQ6xIsTSw5{79lk9aqmUVW;sO~P&@qGRV<6ldLQPF-Y!sMt)-rC1}?OLnZdg8)0!IZn$ zBBM-W2fNTnZ;U~b-z<)stX5Y%hqb6dm~@q#{)JK#4Cr~cJ;~%>>(S)rLksv*C!!Ab zBv{CQo_|>D%>oC!;ubv3O%ZgtkeTVA4f`rTga(ANX!=i&pot%n`D zzNbt-OAJ{v?VFif#q;-G>2x#F@kk@~;JF$VCFIcl<+`_W&?bXxNt(^wSz4AQ?;_qM zK|!wHFV|XKuMfey45W5$vpgzHbdCG`MNQDi8ml;-({|D)*4qoI1-Fh096wi(90%viH;De@&_N%m}I zO@l&Z%N~`n?~EmhXi)Y-Wl3o4OZJ^CV^@hmM9KW-ch3Fqo_o%{_m6v@^S;mXc^X8% z$A>p}hv5Jq4MTg&%mNjap6w!eAJAuao%83~ftx1#H%1D2CnWypp^YAfayXCOmW(sb zlG&u`nuOXDNq;6vP1xPF^A@A;YOdd%Au~!As7#(4c5pE-yw_Ult^YjXD>FZ26gFNZ zQ&cctaK*yka3W`;YAsae>gRRVgtupKKpnl)v)BU0u!e=2d!t-;?V@;lG5dG+_MT4(!9H(M}ka6w%wtRbTt` zr{`SpOnW!y0uTxJ7+h21p1*BrJb- zYovQv;Ww;H!m)&p%bdF*eGX0s1>6N$nnD&U9(iGE1hB)X_sx&oa~EH1w4Sj1d~%Yv zK-(1|JN)CM60Gvrsb^8(t?SgtJO5e1v_hPWV|@K)E5Ckdi|huo^a9JI`lc;(5Bl%4f4F!sk-#d->pFr@ z!h3Z}n~{=+4Pa06rv5k=&HU{Wx3ufgA6-@|WV$W*Y{Wy4F-ybh*X<4A=l#+b_T8B$ zt&3Es5B0T6Ruh$b2b)iFeq6Db2^iRv`qDX+4soHEf%3D2{l<8a_4xO{cm%7=js8CD zy9)tCqQi4k<@N0~ljrZk-!nhCdb+9=ZF!xYi~YebLXVJlaM5gy>a#&K%jLb<;p`Gx zZG^(1iZ64JBsey7^7kjhJj`KlM+}PagyV4d`&Re$-Q}pM?R9|#)f(xYHc7enh3;zL z&vMtU4&d_`G)XK{MUFGQxps$`^$;zHvYh0&A+~(E@H^j-#d%$eVAd;=0-d#AeLe?~ z?udKx?>cdhHL#)n9D;d`L6>@;;=TCzFaIj zj}CDB=DyD`-fa6l7^(BkEB9L7u5e+ihJxGqDXs}kCpd59&#sQzmBFI70pV*&12oOG zhX4(;=<*-F_jT=bIR#wz^BXkR^pLhM0*jOW=GL>sUQ>A@_~cfcs?dHa!<$vpFg_g5 zB6Vj3sufW9aNP68=VbTOO+i+8eAJW*VJ2Y6?(=--n>N@*+qUh^nn2X@(sHP9XSx!ghmCnA!)t#t#{Ud#oi?@w63ek3Wtl-AM&K*boL5 zkf8n8GlBStW)gER2@LW*w!Shbji+XX)ZBog~l^Z`(sGzltU4!A`U zWTrl*IJ=7B03qw=&2O{R3?KPX!E`-2r+vLwN_87?AUQ0E^nsf)F=9-)LyO=*;k^Q1 zM)%0kUotB~UgwBNgp6U9Enu}`n91wD&l~}2xq?J5BhQwRO*&MKl3X$YGNQ;XyMiTyziZOl#B$q-gSG$BC^a(TrXGlR@28Zu;NhikrHZHe0({g03Zu`K$wEVyhw5@ zRAwbzs<{h>i_APqWTv%&*a<9m_5X>Hm8({muaiLLgxedgD0&c76v(DePGF@9R#1RK z?Xs-Stp7I6on&_@&Zs$pv`7@Qs4M#b9+EAU>X+U{8&G67TE@H;`Muw5YGw{aJIi*O zs7(==jI_lbDT%XNfDBNvK^=^y3VX<5K`!afifw{y!z%$r@Vpw9WW~Lm2Pyz` z4i<4`1xBU}OduGppD^A!(rZb9HBsA+y6F=!dbEH8fjcz$!u5#C0PSWK0>IF1UuKB6cEYKVu(CZ){KvLnGnqpK2*Z((i_2o7+Rz&O`U^aY3lEIOaR)@8 zb288fTuWojy9yGNwL@l>0-OTDX!Uw{IFPyC0wqz%WvK6?PXgIe0MZ#Ox1IT|l%;Rc zS5k#YGC*8_44fi?M1WjGsKf1hC=om}SQ{|+ibY2UG}SFh6=vxrOQQ=R=7dS4yZWDH z45IDg-w2ifJPQ||JsJ;L931v77P9L2kUgfxGZ|OD=kX~d zSsfgq4nXfN(&s_EW4+#F05+qIy%Z!b0@Nq*PL8uy=;K-ASl9_b31N^E9wO1pT7d`J z;u+Ds$BvBRZW$XDz4(3jOG}qzd6}NIF-i36GS-+oj(*~IT$0b)Slxu#Z&RSL-*ZF) zBx&7132hjN988-S*9#|>v&TVLBbeMs=qLLYr~WLl6aW?gjdg*5$PiX%=+Ln2M*_&4 ztoPMQ(>djQ&|4PUEH-vr>^1;efMa%>)Q5h0zI*+bBeg;o*&V#%zLf1sTfa0%OG@>1{(| z3CRH-Y83z=t1$9zY_dSr#l-U$2FTR?2MAs-!3%X(EY((*4jGjut&A@)Dec-=S1$|f zGJfp&Ra0}2VZIko4E){(NCs%6R0*lH)nNxTq~0+imX}i7AB#GuoDeT?fj2_b?*IbwkVxa%+v7Ca8o zPf_Jw7K_KHH}>I^1B7Ns2oDOT5=&;g;8UR3N0Kg}~jMl7+sa?z?02WdM=+PJ_M`_@#>C>uU$uUOog{v6W z8_`F?f!*;NuoBA(JY>v9_Z!gi2n$>z2_XrF(>+4^1lI4%jPhIt=eteMfG+KC9UV%T zW3k}uhP&9FCW;yR zxokbLP5+N(l8kV#IsclLjqL(BjaKt&@6YUx$l|=RViuay9O33H& zS?BUTQ1aoGOI)qbU{?^g_VL-X00@zhYqe6Zt^9_0Qi4GiDh=#oBF1jShu}>^dnH0Yl)%&sBMWQk|JEOhvdTBmvl3e z+qu~yK(V_PCXpa}vNCI-5G3l}H2Izkp5I~xxrGINUq0vKY;xlSg9gGvCom&y=Qx=O z`Xr1BSc7I1VJmEd?@>+UpgezpD`e%tx5Ka zcMt0s)vZ=8e`c$FqxfDo7wl{z_4}4!J=ev%B5ABJOe`M$#|r;wB?pZ@w}Tb^G9#fs z$IPq^u;k+~N_rr}X~kf}bRii`>hv0)De;*rdTPaSgTiPHfGJa097)Wry-P=F`1lou zN(!4R)|F6}dkoDx007-6%(D8RX3`IhbOsR$#*^$a1xCGU&%R0dWC9S`f5lQ&1TMgW zg3vH30l?_2#kS0H0|1~Q0kSu+p)DkkP&>p802m^<;CZ3m5y<*9rhIz zmQtu?Qy<{|2qV(jIjr8FEJ2TsnyY3>tjXOI$FlzlC1lu12vAseNPs6BN1ZDZJW$`FB8I}#B#&BI&YN5N?$LG0r3Rk3VaX<2dK%0E9(G;ULimLU?)4%nka$o zFqCfL*2##_m_bx!pNBpR(2A`0GG>PnEi_r|7#iW7SDdR z+y(^0VuvR^K%OtKDAw$bK|eHJgSkJ;&Kz(YSzX5s=%xvSH3&>AzOY;Xss{R`1;>hZ zhDqX3tYmPu1ImTOd=%ee8!PX8qzaBz-y(S$ABQZqu@-#-3Pd$UWZ%)Jym&~y=3+=f zy}k<)1XRGDTwf28%$?p47IISomrc0_M7HkYInRKoj1URM42choK6bL=G>|P_{#Uv!M4mKFa zvJK!A0m4Cm2S{hs*f>)v0cuTwz9{|y!m)|~0Y!wCO)LVr?BFg2%%!{lFGD47#v76; zfx%i=s9f7^bZrAYK98Z(w7SPIuy_{I*RZP;3vn#s#%AWNT&z1!aMZg!8L+SiZMqB#;;jCR}=jS zIMfZoy_hZtI)cGFYk=ASRi5D*mScIu#{?(F?g;~C!t7}P^=?@vu`K_|yOGrFa>T$K z6hEGNT|6V?_yiCy&(;Prw~`EO=RyEbJ6|RA{>&&mmD&yRy;|IHrVT(&AC$JtqMp%v z;U!d<#iwqluhxIaYWeE0G;W&=VJEgLmf0DviGg_GBF; znnu7|117oZQT70)Xfpa3&p1!9aHkafo8=1oW-pEp_g@P_XEW0UEbKP$6#=fc%$3^9 z#1jEcB{3qgd9TqAF7G4p6UWPBhU60=Y$v*{x(NtcjDNylO^ScEE7%OUi2mp?wzJd{ zj+R>SUx8SN@k*XuYJ29h*o@+06;LOyjL@`%04jC{#N8!+9(?oK!SA<5F}gzW$A5pz zF9|8Iqc7mPTs|`>`!)#$30TY(MYP*%C$_8@W_-Hz70nsq-2QTP_)$J@ahy6Wc(P*SDcP8;`r8@qi zTma39JA&B?1O?-aR4xeyeDAyxkCNmQd6l5|PU&F5Ul|n97by=Qg=}`|7aRPdO_r*y zc1X*AQQ)c$Vl@B<}Nssu^2W&LZ+&tPm^(0_=~V| zGa+8^yOd5k6DO(Wn()@+EXQQ!?@x!X9K*46@Fu)Ij^iqs1maRNUCVak_4?Hwa`GbR z8mF7>NCcxG9EpP@8W73 zpmW0crPc<=0!V`l--XOxySM@0oA>I~0K@-T@lNORR;5SU-2L!R{cCmmne?>ahrK^( zUTN}QJl_vpX7c(lrXD&B*Pf*{!Sv%zG8hoQa5r32Xksf};7l^U8;+aJCC1IRt;Vpj zCztmM3(8u=KpdzPozG`SO!}MwHHKvmkCC8iXd=F7N90&iQUvk)Hjd6J(1>-5@k}WJ!@_k(nfGkf(8W-PQd6@IQlgtHzx zbKVea?a&9PNX|ubWSYXZ#G?9{Lwx=8&C?hq1LChaVl_>!ffgUsGNR5*V=bH+?P6yg z!jgR@X|&(4~D)O<91cE7JgUiN1b1M4Gd zJKMEKdnu{7&j0Gox~KRusf0+pWlCUrrlNrPH``G|eY>&Wzn&Ag@9Wi&wPe(sh7lGj z7BSpTD(N_mV+c-1OeZU1^vnGZbM3g>o!LC zu{H{zUmq8Yc0pY))8Xw6j=!YhEEG19yl3WtdQ{W)_&&1l%Lb55m50J|+0b$8UbN8T zw43SI>r}N%iAGC{*ec|%>LS`xz-dsS* zfbe`1O39>k6zJD{w4Zg>_QwG=^jyl7$#ji_{PNm7z9%Upf;AHv>3^C1ZJN1)w5c+8 zla6>sdx)f%&VPjErekp;wgmhdhXbkYz2jYo5b3s@60~IaZ|3QcZMB1-l-F;=$-%A* z_4fxI5%{Wb&y1j#vVd%uO~wy3FpKJ$OMu}r3R{YFokl*=R=2NERqpI zvQQj7F<4=?djDHYMBS;3AOcD!AZjQqwveYa`C5f>_cnN}2T9;GbBJnETnNi+Y4`hO5d=@9|xTdQLQ`LA7{n zZ-@027P_Bu$FAS6(p`&bZX|JvNjfJQGDZNQNnFgjBlfOSRDyDd2g>P^9%6#> zVWPZYDnlQiqJ=agpK4aHyWa8-T%xxF8t- zHDa@hECJ;GYgh>0A1PV|G*9nMy9dS+z$7>{$QKAaEBp!wS;4q_wDWmBRU5r*>_}Mg z@qhjmrC#>xwW>WxCtBZPQojh=cxNY+SCNq^OZYQq<6;pK9QjmMxbC{a8^*T~oGu{( zzScwmT}%ckKq!ovJUYD82f13;g#j`|ms4{B$GMO;NG=fvU~PVHNNHo*MJiGxRyk|p z*Y6l7B7_5QSHmZg>tq20KFg#?iD=$)rf=bH(gJDga?!A?KeIP>;sw4~as@u~y75!i z!D#W$QDzYD>$fkMw{T3MBjj%)T8+N(&<}VR$^*zGvRpez+asa5Y?&@wkHl*Xkf8py zZ3xN;2qNpuvRMd!1V<(a_u^rBZf#;b8_^cNg=jSX7b5uq`+0K~Ao{L0#ElH^$OS@o z2-;%m$Ow221*1se00H^f%{1iLzTNDE3y@=;D&}S=mN8u2#zpcegu))<+klGN5CQj$ zk@NSA%}cCWg_A!)b=9Jw2Cy<+jkT1dctWWIHBDfEJT6lZ2bK`uMe9+R70n^=TwkWb zHPMfXTV#X?fB_-d4ptqq5!=T>&dn4fxQ^qRGZ!KZPjvyNww*Up@nC+kHaO8EqSOW_ z86xX~X7Y%JQ53BV-twL|#s>xhCcT!uFZ03H>D!`b8`h{fI0&nwA#eGe%-`e5h1sG$cGYh4R+1WHo;UW-iIulcxn=#V{<4A^aJ2Utd z`iPy^yVBE&~-)GU~dUj?x>gDJdtKQ&HV2ovskx5ywSZ~bDtr+j? zqQ5C@CQ~pt(j|HXGWUQjo?hsTWOKBD(@AIk$87#v0Gc^G*IA5fRBR6b#{xiv8n}6( z%5e?ci43EUmIUx&@N}dn9sh)7!j8m7*RV~;u?5w@Ul9OsbHJ_@*9H*oRl{Zh)I9;f zcX04%qV`=P4ORt+Cs3eCQ~+xY9J8!a4+MD;VN)e4MjYz5w)mAI&KtdlGuFU^0r9ao zcoG2XNimrmMfpU-AIz}DkianjSidMIRtdB>0=r0n?I79gmoZ6M97$NXnN)LE9FbxfncBS8Ry1hu z79^$!?dmK;XUCfPo8=ZsB~aOdkeBUIoR|o#C=p<{tP`8Tsgr4F>3seedHcp1)DHFZ z>gMGydg(XMXEmp*iKHVD5kf|<8H<3rn8!cb( znYDB;;=N9Q5%nb#D1LQCdSSd$o5GxTw4XO@p_0r|fAKO~uk@}HIX7R$MHvd%?I}7I zs;C{H?vtUOE?2XQI1Mf2MAOk5DDHRVQf$R99Id~Za@H0a#!2 zUju7?9XA~ZHx1ys9+0$UE6N>#5_rway2_=&&Xxl&Zf(oXolbF+2FgB@s%tMXLzDWg z++?It^7h3sdy2b7Mcu*xwvi0mM#CYHvENbj`bl)&g_5|$vIKjvPy? z#qx8jLUfc;WFGg6^u4kS8R$-&O)dNDRE*g%5SU+Cl#a9rE;oP zpp3pkm}N!uCC<`i)SU-x@;0xkAC~-nF34WXiTG1l8R2Svt|I90oRoTGgOLyrk^jI5 z<$N3vGkRM-M)&+!Ml3SZ|47!}pkV8x`?uM*EI(>+vxR>{x&PRsS`xXvO1V3wxo_Tn z>0g`8^NA1px5oQ{1aA^IZnbjUu9n@IdoEo{hM!w!m1|@4inq3bD3gFuN5wNsHy=0d zBrrM<#gUNt?txDBEF%I$2-dnJK)}LxNcmpz@2!mM;t{kD&n<+m{Kp-pR@<7cR&R+~ z*y3U{6hJ%FiGA|c`pVxqm$EUc7pTNlx$GbkR^KZu?^jqSDOOhAnQ7D*tt7>Ny^J6F zH`=d+I}#C`;E);kr7`74V;a-PbeWF?#bp6NI z4o$gXALs2dHximu6O4#A|xgSm3sW=ie(!7UDl^oer^&DwSz+~In-?b zE&cn0On054PCt6KwN|3Y@Oio>B}2&w_U$$dbGxucjyee(Nx1V+iSz7hTS!~W4i&J2 zho`Z3&?v00D6JwIt+}L*Trx9sxTj*Yb(X1%v-y)la_``e zo+ks4e8+D07k!1Y{X$)w_0*Onhd$F}THkh3e_0j(TvE$Z=GL9Cmb{6Ug{1zUm0yY- zKjF4}2m_F2*@2EK$mk-;TWbzBYlu>EuCz>wvN6z{2)m zB(Za8zO{Zt@~1IsWZnLlchL9h|cF!X3>#bo%{Pl@=^+9coDR;RM zFA~!|%?W-vZmpl=nhTTVwWDIEY?oTb#J9PABupuO?{H%7Hc{+-Y&sM3c&sXdn@N*9 zk%jx5fU%3$%(mT>4WKvOYqmpU8Y*W@Y?*n!FjJ5+VLYGzY@tB&^h<%sT)F9tZOL?S z+su?PDoC)ef+byR`^!_)uOIU#c9Nz8YA4GdvLyU9i)!GABnf2J(yr_&aXTb5{V7HOpUl$!bA!g(m`BGVA1&3S=s@vAn=^4J3Z z{7tr#$4lIo7Y|3^zfCDZW)vEBac*JxM6Q`@XyM={g-d>ghm~@izaTNR%=lz^b^-1{ zT<$kTF*u>bomS5;QncmQ+Bue6+g22bU_Rm+KN+-|Kkxnsj25OWww!YzM_SfTeS z(y+bvQ&%yqKs1&DX6?t5+p+$%vU0ZR;0{Od^JGV)-4(q$~UsiRRA`?_VQD< zFa^urqu-PkX$!$`zgJvdezWu4?`C_2KSQaM>Z-b!h%ZrM{d08qO3{Sb|4VWuf%BKU^E-x-E!iR_G zK11;E6R4os_ZzL>_vF{`xF1udyN70t8Z4uSX54cv-yCqLCqp2^R7g1v_+n?1RAP(3aJ_3ZFv>~C@JDU%_1lY|@ zh43zQ@c8UsB5upd?_PR2_>TgZ?Ug-T9REEuj>j|UU>1G}eclV()g0dSZ(Fc22ceO) zb!b{3-xB=ZA{B&p?;dz+j)FONvkf zMQFY}2>KFnspc^5@~5b6|9gvlFIu6NIG{-QF(3J-a2llf7900V#B>@21~?*~Engxc zO3hGh@`t1$kT_{Eg$U;NJy7_3{PShsuKAx}HPH;r->!%|k${s*8vk!W+Q2+!6HutF zR~*W3R*Q2X32CEfIXrmf7>ZURr<_w~j>W2es-Wf*2(RVs-cZXw9v+=~y4qqQ%pXom zBMgi6`BXlbB&-zz!6|wkGh7V7gh-k z3DH}<&we5a1l3cz!fA86_6ql{Xr=BAbaCxVs;7!)Gk;(J zphoCN|7f?4azBcWv^cMJNGr{rB4YYg#mjiaGDF=!X&hNu%8wp)1OkwNGa5 zqifS@1nyqazV#vCBS`h1`#8tBeuPwRsHFCgS-Se3<#n4ob=PS&w_>gji%#ke=-1^Y zTaVcWn;Kgg{rBeAbSmGswlTSw^$T`)p53XpbHAxsHFA}fP~Yt_y88C5K_HK^(oLn% zEQbfPl}rv~c0(WZr+U%tS(^*cDcjpJMo+CW%<5FH2mfAgxD`%=hIC{2#dD?(uy4}m z6UDrK7qz})37!fMFo<4hn(=5P`jno(h<~GYWpX^V;g!u|`hV)9R*y8@KHhnDEA|qF zUr?^WQ3qIg$)&65FsUX*2K0_7a&pga%PYks%^~fV+=+F@%SE_TrR9*SRc6|{!L1S+ zNptA)tn30@qB{FFZIfqx}v2IB44W{*b=G^|v}N z#V}E#G8(1-s~Wd|FiGpI{}|d^ES*cnOvWl-u)g$$@U(K_4Bvn(ta|HDFVWl8Q`2G3 zR0g=s?AdXLFLpqqDe>TK`^0h@CBzKuekju3IE2NJ63^C#09U>fUvd^id$zlgw&D+ij^5D-X%2zE;x^im)o3#XQN?hfyl z*he7HYezBpsCE*~x;Xrttx^g%Jb-dlmqgC8=b7So2y!$|^Bj&p)@EEFhU~ zmnK5?%SBlN&RZ#RoYrEYf>^qv6#3<5Yc=q*CzpF0eD86EDShBpzzh%9^n9(E=2_nbqDgFO);YsxY z#r*3xx+0HXUc(a*`H~=*x_O$Q2_7t!1K_9!@Dr6M2j(f=7nKy7kxwMRB!`c%KB z7wVtW<>|O+ay*O;y$E|*vC(%Fa()uyGNO1V#a;euBF`4 zOeR7HgX9_PdB!aUellQ^mzkt;5-Y~Z8j1d4(Sd4u=J{Lf|K+diVDEOyPD7CObG2Oy>698@^qAa;f9C{ ztRq9;^aCF?#awnQM{{g-qkwzDc? zt(EjjglLzkKk8D$F`y=}7Pg&m&$&_08#}3WiN$=kxvDWDf7<1^+*gI61GD{BNl0`JC5+ThK1(PD? zW<-A8k04Yq^nOpc|D%MU9&L5Ego_Du$XAKM15J&}zfFuGNEqZoh+D$EFYv0Uo&e+Zi`IiJ4_)t0QyO_la#2yhkf zIxPnj#Lpp}12{G0XL{9X^r7=cA6f0b#_$(%*D9Iqwg%^`_h_*$j#EAL@lJ~u&Fo_3 z*&t18-s+W+il;e*mp|y=jOb7RXuj-9o$h~FVjWW+2wWwrd^fu7U5Y|{RH!*Xt`W$! zMUW-Mu={qOk^v-1j9-6b6tae|i~;eL(D*0v4xa*-c>*If;#9b)2&^T6k7&z?q`wgs z$(U=zIvL5xP@;qcAwq#DE0LqjHAASL1Cib-hl`c6c)YfpQRfOl%8?>z@WcQz0It|0 z6Y>%?3&i;L)af#ox<(55%Ia@LV0h?_>>z1koqAJec0k{=?M$?%#-LSs53PfoGS->h z-#1*$3iueo=lk*6e~GRmk&HZGQ6iF=zBR)3Gag6eTPia9etcaK=b8h6SV7XxSM^%P z+XJNKc%m+=Ns|0NK6*uh@kG%he&XhEDFT5M4H)vRAVEN&_Y&tP2u;RcF3-Fa$srVV zinH{Bq>w;Tvh2EA9VPeDg@-ZKl|Tt%oV{oCWuj5BCn22JBdn;O&twFVA7s)p%6I%gVWK2Jj)v9Yh<0izVG{;W{&c2C9`UH@??%9L{(7!w}FS3 zUdj~LDb!}HtGucE77^>pp(tf`I18e4%LBg%#0|8MJ}~IxNnEE57%*FMj^@g}vNeb# zMhfQ0aS?#^795vm(L6Pop#%aefaBXX@Z31bG~JBaDFSW;dB1xpq)2d4dLvZBeq!G< zb9)39XkJG)d~~3C;k~I9^Ob^u#OHe2h&S@QANa1|Uw;_KNLap1A`2*RJfB(oTZJIVE?=UuCMPsiffKa9xJx2y+cI>7PyQ_1w27bn`B6^*%X40#p6 zg=~oy!ZP`(K*8--Mas<*nu7cY^?YtktRZA##JMP$iatlHVpe_4r!0~$88czE$q9|HW|P;=$y93-&g<8nnxEH=)*QEflM}65M*_P{YUJw;11CbCPaYNK zUu-h|m(ZXIw9G7=Jf6YSKb(+8XY+S8;)^Vys_yB96f8L#bf>+Cv> zXLHse`8Q{a4rdD{XBz?hDTgy9fpevSbD@Etbirx!!--U~YUP`$%9y#ghjZ0XhmA6u z&@P7XH+HWc#}VV1UaZ^YYtCl=i+d`VvW)oJRQL7M->bHqW00#k_D@mI3oblU|7 zJ?eCy=*+UALz-lCFwcCfX;OyQe4n#@bKU%xF2^xH+2fsqeQ7aB|#8gUK{|uA_#lZh`-TL`v`n1at&~obxN&%!gOrr(w7)tOz2kl@^U-tt+b>ettwkWS4fkA=fGP-^tc*cRNetK|_ zf%r7(5hXELkwWZ>+xbUfbz9@CqKyoR@k}W*__P`PBRHed5nM@PHSKsMRdJO#a@EXB+H)mJ+e_k1j~33?3{25wVR9%61Pe*bJc`q|K0x&Byhdq1~I| zshc5Nn~_{wQLXNDmQ<9RM~vB4^p5*u@2xoft;9u!@K}#<)-8gWM}m__3hZv;;#TO9 zN7T^P6Rx{4ty{4LTZyb&k3GJn)3U#Xw{B&^?q&tu6&cw~HoN;m=x$>Dw}POp!n1FA z-CHjTHgml$xZ-B{1_sRA5TQ6>RT=e{$ z3T-?4(H-R3d3n2?)w9QKyRY7p9P8Qnc6)GWyXB&1U;X{AjqNY7o_(>NLr&WrTt9m* zd-Vr-eYxn>nY}$K^mEADYpmOAV8?T$#B1uU=hq#tnQpI<)}M=JUJFOtYfpYsQoRP9 zcBU8aTd9FQy}ds=a=#_jv}5XiD{XP-hrZ|T&=2Z{_fIaL-Nl{#RL|C+A8~VpqgEh- zL=fl&Cz1%^B!UKsz|*_?cW9S~x=Vvm0l#<8B&a}cDwwu=Hsu3e@&VZRp0QFHdVCmE zsn7;0$J@&N!gHPGR z_c-16kT3V>m{Y#t2Z*Hy!dg^R50(AuKC|jRSDLT5kDpM_uB0mL9X;1F0uUOBm!962 zo8C8G+gD&XP~<*PVmOd-hY02D9(tE)d+Z*S5LiME%sl)ry*xO|KKO45pi%0t*>G@q z_&{s(09SpWHGH5-V+hb%^4B@{OYhpRE4%*c!M}8a1N6gx>Gt^Ry$sMP1sHJ$nA!Z& z-wiOX{$=p_m-(i@#koKWg~MwN{<^!-YBq9jgOXKOf?& ze_3rFS~mn<$3(yDjo`OEI_ZsYk2|{73uNg9-YpHfUww3U_~`z0kmv6sZ-!uR?%!VL ze*0j8{S|)uUiyV&?(&PAs+#jZWKIW$p9_DN+#=PX0AcFE5;yM2^h?Kxl)F?B$L}3U;!9$Bw|Co^;o~E3< zcK=fn{HHYTPua6S<)wcr8va!F{HdD$^JX)&e2KtMPI>i=UjqA=u_T^x<0PLuf>YF_ zUFA>1xzJjlk@{PIo34eu^Ehap4pZCws~YZK!*E*7eM&xe+NOHie)Y7&=CsrOv@7_u zJMOgS*=cX-Xf6t?i=~EW`LCv$j4bC9Oi(zqUVM&sI-(&s_hmXB;fBfz$lQ9qE z5-rXQe=ygR64~?EcncD-^mw5mI$-PH0>hI<+CPfIlNHR9rE5=?RnOM7o~-+vZC!ox zE$-}F!`b(qCmXcSPks)cZEl|J{yw7ypY4@Cp<=?<;vQ3I4=2O(WC-w~viM%?zeKgi zN6#jvs%dqEzs2YN6k zrToPDG9<1QnUwp9f611=)t)TnFEN;V(Pw3#-2dEg!R2re%XdozN0Go41MLdy#E}xS zmpV|XJJOkDH>zC*D*|Pv-#UGcWRVGywIiAg-RO$H=rvpK{g_?uPmugVQ_$|pU}dnv zQmZ_RB5*rc(YelpNz|+=L}|4<6{DMam(qVbHB;v5kmn)79h|Eb#VQx7@@=f-T5;?> zeBI{6+gly9RJpK=Kj-RwR)^k%sqQYehJ)GUAF1uFbf<}i&qsCbuMNG_O_P7De)xT= z+I9Htt(K8OF-9uQIRc@V?Hnvb1~s z)W+rc>ud+V+1Jl*Me>&9xMtXuJa;d8UXpwN-E2voPdjhv3;!{@(){3+=cNT<`?IAl z!$Evyq$qZpeOY0gNN!nClJZ z{BJ&tTROa{n|8^2Q~%ZP>zjt9NdC8ts~HY&KW-M~y=_V@sD1nC&J@S)r-NKx1txHJ zo=@wq{k)v!!_#8JPl*t?qW=C-Ud=7qSw|!@4e6;E{^xsTO;?ywRo@j9?cClKp<4p` zj?B;A?P*~*uPU{Ryg%jYaPUm_>z8>s|8DS((j$dV<<*8OqWkxX7zb532CsK3(MqGy zhmw|TNE|cm=7$NJ_2hsEjcfUVDM$eD{nV`}!TK53%$xPI?#21_bNAmb)PMEq5Nw$D zAHUhK5WJe-uo!l*(6AH^7HXtKaX2+D$B7m+t|XmbY+Oy#75ccAX?6LTh@5r7B|o&n z$lHyV^gvN_;udq$x8|P?2j41pB|;~vI#~05RQEWA-2>Qoe%h%nZ~nB~@Y3Y(ZU@J$ z=Di-#m(BZM&M!3|4C`WAevMn*YB`*Cec5vK)qknw_fiz5^>{V&R_n=T@ypgfKi)63 z(yzmOK0O$}_4(iL)t8^o{vIrSrqRHP1Q0#t#pFQ-izr4Q9I;^jEi!|SVkG+uEL6s$ zjmbqZipDpPOT8E`9J|gKECjLGp^CMmp1|+>-RtaoOVD8hCPVc@gjw!;bnvez#;MN> z(`}I*7?4uDj(`X%$)i(LL@B|@QG_FJtMiCe7E1KNcm}nqqvO2 zw|<)v!^|3uaq$+{zO*ZGS)^aLv#f7?iR!b&1%F87df1n-m@uSWcsiu)e`1`uHD=WM zh_<09Y&}>Ot(+sLorAgFK=QcPlL5(ORWr<}e&AhxH_>D6ydbZz+~qp~0;3y78JCPg zzn^1x+PUfP+dyDFEe10YhG3Dw1EE=w3{Dv!T-$R6^=7M=r&WDOBj0Mb#oIuW%%{z- z0C5_!1O}NL9)00)vmNFSXpt?P)V!L-Cv$wh!h)HmjPUJ0Zy@#P%kHS?DTBYxhlE%P9IvKc|jQmDK5U#wd*?<|G*?n4)@a_ zUr&*P94MC9)q9UtYtO@6$Ts|s?Ex_8e-xc}JXQZ6$Iso@HSRUiwXd0#tVGr|vSn04 zlF_hTvNNucYrAGvTq_hpONFjYU*jeTN!LszU6RPSzx#VU?!V{WKkhl_^ZvX)@7MF0 zEN;s>-aN?zD-=2vIVstp|GoLbd>Xgs({nHxCEIM?hyLp zIN%{N^U@CWBp#phaQ1WUybmbhE(=3LKw{Lsapbg6T`$|uZ}d?55956!SN_aTHD5M^ zKLNR|P`)_jP+wff_DDHUnTh5h&&^LdQbDnPxj&nEpPlsTz5|kC?QHWN3Q6a7W9=?4 zPWikQ!TRbZE3c@1v+__xD#fkusu10$rF{dOV;y(V+D84ECGD~{-z!rKcT&6uw%_tk z4|DSi_l#P3-ZuZfsivcrdiSNacg!oNv8!Byx&b2=9a5ja=FZB#ca5wTJC|u0sM=5p zhmn!G8t*N82PaPplr)BalXT2p$>oz=Ht_9~yl4MvLS#nWDq2_6HHy*d-}q_JlhY@8-b=@Ac4p^tq<}>C?u}i(cK0;0o=}KLY-~Uef&)^+o&3{>I-o5IshMn9c%w z;BK#^-e%f0oh6}PyMso0Te%fFD++;o|9R^DF8QMKRr}Z8c%t5Rm6+}~%fNr{tM&do zyr%o(%CCPPd-ZnOe$@^-3$D)$*2{VPOpxEOthsaXub%0fuQ7~s>IaL=sB5oHyRx#z zqlLAYdzB7)3^qOtAif8M@c~RgQ54_;JfKG)Qe_G)<@WQ)@aTboK4%yAVEcyAu0KV| zgEvj8-+i31IZJ4%SbX`qE6Stoyi$szUP_uz`_kOzQ0I)-b>Er){&+bTX=-XEe5}20 znYy~VoRXZQYHR@jDvvZdti8tG9 zG~zct9}K=7iy_oGUa(3J8{Az!kd>9cX;IVJ^z)E$P!QeseRaL1=*#;0dS%Xki;MJo zBdx9$nJ*r_AcbTv)Ak$kX48p{j;Bf1iiFre>NP`>x`JGD(NAaHn)<@Fi|4N|udO!} z47yq*h2N;$+}$fLXik`@u|A!B-Te0a{AXv2B!5D%lTq;s<99E$o8VYwBp1dbAo_89 z>SO1w{TXu2;}^zydUpD$*R6_^Ln`y~^Ji!0Ha4~=CMJ`8My}`w&W)~yCDqlH3AZ{7l{`0=_oLG9<%SIU z+7^d7H&TkoGyQ*E&(@fzIq=Y{^)RXNFfNI^ zRn_*Y)77vx%(W>$BkkYOLD%z{7nJd>%|8`s%|7-uXo ze+M4Ar4D+9GhY^i?W3<+-4A!EY%jc#lB+}h_ryThEL8Q=evBrp3ozX-nG!m_xAyL24vuD_#w@v*24INz}F zaU{&4>HF;3&9i0Szf&@jl+PQsZ*S9PXYuvV*Jlegr{{*q&Fc@t=E~Y5BEGMAd@sT( z4<&pLNgh)!*HFgdLQ;~}`{p|Owx~B{DFexq55Bh)g)#K-n4Lbl3r1E#!fL&+UB_h3 z1yf%x+){48KC45-+L~cwiQoGu<@OPZV?^h(Wv+Vp&U$6edikzrS)Z~1`^KZAgQKHu zSG`8(v-v*f8(sBke9qSd*w?t~l>q>NWCBb!VY3!WcOsHk-estzvX_KmilmygR`s)t zuw7S*a_GkKyk~gUHObcpB)8AIx(v6~8pQot+`F>dx@?f6B+g}Dq*^y#flov|GYhQ$ zugW0D;o@6z!@D~8{nh-p!6zmku{ZEcMzuVkMkJbf9G(bkoOxpUrF$ETzM&H({d{lIN9tD?SwNoE!yQgQ5@+Pa35Qv{zh_SY*kzv4Ak8?l)qg)AE)~zA?CzokMTHV zcb>5IQ!Sn^b8-gKPuTx)e-d>$e8hL!e>(pK0w$`S(v0tyK5QGS7udM^s?ohoRA`2= zRb=XDGud%Ns2Q?3Jh4;+GT z3&@h)K5?HBzj;j@_BoxoFzIL>mlobTzH}|w}a#OABWl4kOB>gvEjo%<2c`+ z+cO4p&&=q0+l@Dt3LN=EhOX#0KOg7bAFAbdO=Qi0M{iR~zB-O#Vel z?yU(}5%Ih3vCowb!tM=q{@)63dOx0E@)l+nqAq({Fx(^V>(>Us-(L%Qerej~#KG;J zR(IPy2a70!vlb6!Rc6d26V-VxR8|q6E?nsX?POhoj^(ek+t!9lnYAq@QC|Mw|L9^c z5p#L6u6KB<)T0en`s-T9!fsPzd$3TUC%Hkop=o3Oy0mxXR>8+Sw*_-Suja)a{>F(@4v;Xcuyw$OITFue3iWq+jV<%+83?_Qipc34g!O}$p~3b1pOe0lQH z)Ril_>r2^E4oLzcR=yR?^%Y5{vVP8_WoXLxavz*`YDMp3i0qHji?}sK(0I;k?!b956*Q5$_8k!!`!1 z62~(a-d^f8&%J6ZTgJ^l;BsV1MlyA4Ys!9}Bi#SZ;bj)u{LfCx$=734e2)JGAGGo^ z_N>_4viLKjB)kKOWl?wIF^Ho|$~aqrek|s+ru}SEfAfR0S-Dy_{nBu11fPW+*R$iS zN)t&GhQLKJV1;%Zdu?xlzOjmCb%Q+ANfY44YH4;{#N1F#ExhS)z3_fU6^O_ojnTAC z!7*eU5=#fk@E0%Wl^LnDy?oayw+BYoK``S8>YI^igSZihGNgKP0Dk$owkw<4aB;7Q z7d}bt`PQX?>w>z9p)aRj{vdAWm?Aq`Ok2F+=k)gy*!sN5Mk+KhcO-za$7Mgy0Kl)Ke#~v|a_>;fLz4h8^!XYH5b(`nhj&%Vl9E ztL^;zT(-Pfq07HDO$T=iqF)wuPw-ib30R$Z^N1(ZFI;w^j^zr_OxVIsGz+4aXd|Bjp7 z%(R%1OKBfy<5pnq0(=>}2-zc*M1frZ?VZLkU07#lA$K#@vaduxN{DannpyJ z>J{!GpRRH!&+erPA?e91giY$U?5uc+GUOOXo2ltgf50v3CvI6c1WW1q&Hh7!#508L zkm4mzSXya`qk-sF1paowRO#=se8ZDQww=%K*8k>6j^oSB48Qdv=f6vE``apWBBUQD z_hn9;no4@-687O;)zFHo_z!_wJJ^c8m5`G?OVtZ&>GiqgjrZ?uj;6{i9uv6KaDU#O zU5BPPf$$DwI#q2g_@j!7ew4kv7QIOde{-Xh9K^09>52sP5R#166P?91@qvgf@M+AJ znEa4`04FgX*Rm<%kV55{lkePF?&bSdO9+54fYAp{@|fOcbDS)A#))w{T%L<@0@MvM_A zHy#i;Nn+e(msyCnh;Taw!kF+a2X#eoe41b)J@w{SVc;n7>HjjvIy><%cGku~;>d0Y zwiP6fSpZCSdv*9Wb)9!)GtdMgqyu*^=DIe@72vTjr1ulqKbgE*7}4v%04793Fq&y* zQz@;7s1xl0g(ap+bTD)yl9V#U*_Xr{iJRfkr^K>pJ?NXnc)q81SN|L-U97p9zowY4 zW=D=6*1|w(&hBuRp=Y8T$`C0jclcGaUdcI)AeDx@pJoc5%^q7kuS26F^jRUc6pVoH zsGQZ`s$AEqXc0jQ)v8XN4`7XdrVXxIc9aMdjnzDj5nkldB$A5zq7VR%`ubYb1&<_{ z%!893-JrRd#||Q@?o;J1{*s+_UEVEJe)rL<)6TM=xsBGLJOcq3BfX-U#_H5%_q`St z7C#92;X;E~{jg5ifl7qY9Zvl5lAIsjrr8)PFc6VqD%tm){Xe5|)1>NLX8-A&J55S# zwh`G^y?{Sl=UO%`CF)M801Ra0w)M_2=4Q+F&j_QMw64q+KmQgeClRd90IM+&9u)8k z2jCDFDoc{HBRFTcA>{BnVxdr1YABoxJ0Jk3=n%QfdSSnj+vhA@Tl9`FFy7;;9uf{h z@nNkmlzlHJa;geH=tm0Mg10CzJQe9f1Tm>juC^dnSw_Y{-?KtWL;wP^1_Ding-~3{Zm>Qq@baSI(h4tZ6<$pjhV!CtV<2ic zP&6Kd#-S4FNVOI=6z(#boP{F08!!MB0-#Ao63-n+;@~$mF>!cp4XhXUZD=(CV8;NQ z1VD%gcEz9#7-(AcH8jTms`|O`-&{#a+8VYbSBiz4B%8Rm9yka|Gvfb|Cm^Spb63^> z_A?+GhuWjVq?r_i1`aNug>t21KP72fKhe7;buMYrzE|b4rZQ>|FMEa!U89!M*s3Ro z)Qwt&5uXX3*#p9#2nq}rWHTT{GB}ESN8Z6-+ca$pV>17T|2Gj~(sKTXC(P@qURzGW zg=JGkGMGfXsmm>NVHs9UJAY9t=K~4MPESvYKt{EI8kAAh1fCt9I6(4E{|x zPG(}@$tuVPFcgA%UYY=m!T~h~ z)X+AD3kNBn`(-Ml_^1dTDiX&y7ovhtVxV~_z|1P3LIo#cGZECg#yGeV4h|v!Ma*4D ztnwL^9<)0)*>e{WD^q&fQBji@)-?=5;b8%U%uYB;p8^A65S{%3@}iZ=R2B;+LFF8q3 z03~He5b+9y3PIU|z$%aoTmqg3XQl>=Gav=zE1bz!I-Ws=lp$6Oz-17*Lq%BIg8OE! z6vEi#0B8`Q+L9d1epz%cfvyJc!BWjl+Os2Cp0=yS}Ui2b`9A$~9p~83?jK zBP|87XPc==KuG&SJOMC@`N;Bq(8(=Z;-oCP5d(R#eD(e=?>^90_uu^$da4i zuRgAG1hG?51~jx20jax)9-jrs3?y|H@RfsyE2I99VN7x}C$7U#I6>+G5P&*y7Gh1T7chYu1IP7euN2X1OKTr~NqLcROqqAOR*f~O6hgCmhlefbQUcFml#fKa!UW4RZtP+l55|)DEpvlmSFA zJ**|Bc!X4tyhxNf2I|T>490^zTOg`95KHpH1E8>UFvS+q3GZ+xLf&{IHR%xJ7ATww zMo}R1=34Pw^bSFyDbPf1HHYBC!8BgA6|Y5 zDmj3lyr9JgXn>Oaz-r`xR#XuEC>9tiULUpu0E`|5chAOg#$#giLfaSu1Oq;M~=QaKqeBOzVc(GMgVsrc*Pmi><5{|0z%Yx z-R*z}10jTmjNFF8?hgwQ#+Xce-u-sKfic!696qxCx{EL&+?nEp9Ut=>KB;@fw+?aw zUz+OfT;PTPTA=L8kZ3%>%|KJXOOk9sYAv9>p-^55a9$B+44lZ23=KG~o~w*FMuT(H ze4D9do&f3;6@9s>Hq2TV?mjEGH)D5aibHmz# z+S%ALh|pLCc>OD=nlk)27R<#$2H3)nMP%521%WAmPt8SF>PV6ZbPspo^bLN*>3H#y zhVzcdNdcI)vc7=^9E;iAO+n>ENcg|Y*YeNZExU4ALQvcdm0JWy5!!XgdG*d&(c8E&AA<_VH%%AA%oIbP-t%cG8K zU^2vfAXwTPb^2qSRMPkXK;{#XM7%iY74`$e(szAbOKH z9n9W>+{1HlV&EQb5ZM+8J2@j92YK-nl$Zoop`rv7p3#O@&}5`<);C{YDB>@q1cSbG z1ZcWN-V+6e)4cU@=5Z~<*%X8a_2u?ov^p7lNI^unLB2Mkxt)9lmSAL8&>kMbP9R9d z_`fu2t(juolk9mdpn*=P`^J#{4}`HT5JiTuQ^9YufLwc8dOK2x_B@Mg!hsbfr4Zj{ zeU-nDtnWez(V!sO*MoLQRtC`a==e|fPx*JN^=MFcDuSDA**y3`6$iD(pkD3wQ^;&` zwqBcfq$+@FCq6mCq~jjKmCr!0o&bUXU|Iwe#B`$w(;i%wVlBV(ckip81usjQ+~C!O z;9C%cUhq9#kUyTJMg`U0gk>m$?yVfEsIAV`J-Rl zd7b|UPzO*wO~?xTT%|3@m>|P~F3ICy*%+8518t2%+8h9O>vVZMw3@+Y-v|rP|Kp(i zAy*p0Y&Xz*2V%Oh94v|sOq^Wz4OlZ~mv5j-4#+MgL$PF(F$Owgvg8ebZ%4hh3Os3= z58e%6(!T!osTQy@N~vSXuwoT=5p)C*f=Df^%E3?}Nv=CHSYGM!dqx^ZwT!=#)WmR8 z#V>fvPOW*2)tp$Fg0qVCv=)D3cS|9=fBf`IcMg)KX`9`0`cP zjBx&oL(F|(o;%L)IKB8URT3u@XLh9hvZfoX@_Xyta2tzrB4J=`epaGA^&Zv)ukOT< zMW(?VTy&yaCJb(?JWA<#TEbXI3u$Ml(|0$%#2oDX`Stb77iJu=pZ>KXe4e{M9ip>< z2XTZ&;8K)1ia?17zTr%mi3TPCYI`%HyEjh4%&0uPF{LL(V8E8O2RRrvWfxwLPeMj+ z?A~G(LY3kvBD*O|chT3{lkjnC;>ven8fM*TF%Ruyc8TJ@zfTY>6 z2JRr>f+Yi7jwmWx$USo-!XVySd8Rv_k7Jj_#xskPs6gzlNn|4UsENq}5`Z@bd|A7X z-MshoM1=`gP7+$rZyK*8u&xF0m>A27BTw}(fP9q!4#^&Y8Z&Vx+j_EcDo;dlJOUOb@j7LfEMc@EES2xE8k~^ti$#Khax#cl>g;74thmYpRujhT~Hp<}Z zAh^|(0GcZm@LkaLM96vbwN^++MBhU`uE@a`aS58>dV{Qp*OOXMRPSA}$reyz^t`}1 zWk4p#J+Vx03w(DMU?jTgYD56RI`AFOamu?%Pg-kXR;KGZk zq-2<_7gfGMkYSk7X^(-xp0+s(!_4@R0PH_8O{pZTpXUA0K4H^XQk=}+rdAU}YA^CX z6CYeUrvB0H)fy^Co z6Qv1X(FUyc$Oa=(`hWr$7Y$A_WUQ%Xx=ZrZ)DGo231yNDZ$= zQ+hl}%PN7}#TJjTryJlp#Q6}mcs4LK#R}<`k&p(6<&qO*g;7$lDuig^Dy;6AN!*!b zPq9Ny>HO1jsF1c^CoW7p-zB=3zF9o#CO`y?0X}P4D#tDX5bSV+2=AKmf|U~mpj1Qx z5@6q@BwWOR&ZKRb9;9s#%HFNvz6S0GB~Ti`I#e+|F9?DQgD_DCftf=|$Ez3+6F0ip z0;T)W5eUrIp6*2f45jy&c!*#<9{w)MKt>q{F_EPM6lFZ1Lq$Sl@nE%S1IR5JjH826 zR#8KRI6o1b5djr~s!SynPbXS=v4EJIM$n5ykm({0fK%|iv3($}dN+s?qZmKbK!iPI zL#n(s?%|(O*7jOJsI@?LT>+vD@dBsiS@2uG_EQRUl4n|)Y0^=AJP*f3_FGT8AxGlK zJJ0h)f3GiUiL`%LVYvF%TngktxHXUa?OMrT^$;r6f5*4qT*#av*+mbS=0~ zjLzG`2`W)N~=bKNLeR)g4!wGW~Ju-FLbt}S&29C;4S4)lq8F%o+Ol8{5} zM2qc~*CXG%Vc7tPjfm)xX*b3$@b>Dv&~yZox|Pq(P$iOr$b(i~Xfj*8?Ak*1TPTRg zsrgAxnI@n@qjRCnhCbP{x+ho=PaMODL-YA7m=qWUZv_{vb{E7jq@s~XB1fBYDyL2Y zT!RKxSnbgkJXq++bHwxWyhcT=jdOp`>^UKE1$6HK1T1X!qEqk!`eg)AoTdV&XluJ7 zu?}>Pop_9&@Ttk=Pxg`HsN!HGkx$3Na$B=URu(^IZ$88&J+y{}3c^lqGc&*>pW5S8 z^LR+TJ4B6who!;oO!?h7d^vi}q^SuIGj-TLUSKLeSx8jSe8BhS?SdWxbVfi4rOxUa z-(qCv!Nu9LCk-Ves7Mo?Es*%ovOabb%tsS|apB{~{gfdllaVd5o|!Svp$!^e>&|83 zZDpAYM6nJ!+87znF1&|6)%Nu$I0?&|yNs&0toI z01~UmBy&y{zl|fPiZO6#g?d(vL5{C9i1&IhkT|gQ+wnmvAI!ZLEShVZluCsrDB{|t zof9U?i=v?L2iMO4LE+uvGQYS19WdGrK~y$_$7A^VU>`c0xgEH{3WPvW zL;ay>$?Sya0{~`c76`E~LDu&c!!u7YiN~eFuhp`x;LOoP+l-cHrM92hzX#pnkHsY7 z=9am)-O4$6xRchUdY%QlqeP80(Ia>qGQGus!+|?es2!Mn{n#S?7B(SyT*t+f!0DTE zn`jG2}RN5hSniw5N%1jCOH`;U4m)Vyk$c5<$?v95?zflTa#9O}+P#oNjND8O& z^3?+pW?XiTcMl>F(4t}{e3tdqipM#KG7&@+E(aF@6|XVior#yJ2UO~T6)mU=5@-Xn zsSG994RJbPk`Xf?eym}SGv^eY|MYJS!6(^lJa;qikhI82<~Z=FArhS4&9_Tp8LCX7 z{rLjMZ7A^hCt!XrK!OTD83`y^Vzgt)IZR^DW&$5?K8j_+LxM|s)E}zE$0>tE@B;_+ zPbJADR0K5l6Ul@@vZIl}$OJHzsMGe+h=zb76L2`N8Irh0s~}Sv;wXlV@9OxXP4x@~ zEbfq^TN3n#!1fpNjpzt#D&%DL&Sp*U;!Ip}R=+|19K^GN!RL&8r@RfaeP zBT@=|GQ;U4Q>>ZgZ&EA{oS08ajz&Zj4cVC)HX=by!{B^AbJI113R%d24?dcAKO!YQ zcBDUUNH|h?C~uSGHdGc(fO-qV9!4kW50O5n4xA_+nj$12++dQsiAK|?N9pk>BI30n z07Xj8bSEbB!J!dAB<=Z$nYVZIjh}OvDx}1JKw4VNklcu*+66>}tgt)wbOLllI3&qr zh!jV*ELcW3XeCJ&LGFf-?dYV4A%s%AsiJ|v$CT8%r{IY8=3-~Tsr+81DD({~CEm`9 zvm_Ua$ARlB5yL59z3cHPGf+=S;*-)GJ|xJT4vUm6Q|1^jOnTY4$fN4X8C_-ldt0)3 z4K*Latw7X>oIc;nmS`f!gKHdgSmeRYy?nFu=0i(0CMCg+We~|>t7+92@oBi9FBZ@s zA6bKlWPoSH$=@YjMkwbPO^;1;Bt#NlAqt@RZ1J{=JT=?k4B4_G3W?`)nj{i(swhzs zFsujJ^(?9&GL)k?^^*_gDRKyiZLJa>m(s-mYg z)79DHh;QUa|Ep(GyHq*eYOBbRKj52i}Qi_%Vt^3OK4UGm9~hZ7CC zqrx>^E{d2b$L{?qgv$rXT7%1_x6Soxc}h^J1`)Jr7fz;9>XTEM3AXvr!(vDvr-M@D zyU7`G1&le*$?oV~o5*Qnmq2E zpfthXC!MhlF^5uu^;kenzHEdJO8<9jo!E}VV zCbSsmeB-WQG^_hnf5A@n(nqX~ITmJ)g~oiIjh!VO*q2CJ3pTfWDq=WCFQ!?HJPjGO zRGLY9Edm9{~UW2be=2h81vZD7&&m()Ie ztZ6W@^Qx6_a?EO-jvFfdls~AMI8!?MS+3GB*}t9nBZ}|i3V-^Q*_mgb$%M?%B))%- z9BXrua#;NpIUu6_u?72V)lCv+( z-M#dh|DA?I)#dKceDxow@lex&OU`BQ#Quu>_o=f_@|o6X?VQ8xd{(i^)bwTl{rM~> z$AA9ZQPQ+#ii+x|zN6cjlul#tyGn4wfW*7Y_pO^CQ*VuD`aX~=GJV~+rmixnf}$7l zYfoQMQ!6W*(QIjY-_Z(Y9aPkfl!o*vh=n&0yw8zya_a`W2ZXIH`AZ1bNQ zFZfx|$uJ=348tWMSz7Y|c7AzZtfgt>$WTNWW>_JC6ux2;;wQ`QXOYre(+ZY^^X; z7NXwsE-T2t>ac+}FMI=grsckxt?&>g*$uOXncs@zIwE8>(d*Z`ZjrNi zt`@3<+y0yevTDva;|e$$&uz7`DjV6z{5Ig&E#mQ z*qzOR~nUw8R-jQMuX`*v;kzB%%xa`|OJ_3HWc zo%ic^^&1HA8;tcE%JLg7_j}vy_g|Oa$e7>gyx-V{-}sRqjm!U?sQ-kL|9d_E$@Bgn zT>Ym4{6EI}PiOhhl>5&%`+w^4pBwZ4Jnzp+kNJN&@~3kJEQkgyDg`X*1uUNrSaA(l z4G8!e8?crY@U1-Hdvm~#u7LHifS>aL8yf+?jsh55ft#X%TS|ey^#Zrg2mWyl+zAN$ z8ymQr#eyIO{%a20?+QE^3p|_;JlY6k9t8qu0xQrBK1G1&6QDK(*fjz?kbsCIAhQW< z6$I2{0{a^R$N2w4WL&=pXeI%J4&oLI;yD$>s~^N?6Ljoa5Px9M@wgytc91|tkl^DW zp*KOo<3S={f<%7>i7|t4=wNZNV2M+~lKR0?Ho?+1fp=O+(s9AE*}-xZTbo?46LrCg z1(&unOib1f;F%GK6UH%S<~BUZ*J?{ zQqy3fHN$`FF@GzJ-!>2nk#G2Y_C$!WO~|=xAtt82rvpRGvP1NJAm)!lEMEv(3}$N# zZCm~d>6s5Xq(ZG6e_4Osj+6ak>y>yB5o!|{+QI+lfRM1ClDHF)X!j=DemwL-c&Kak z4`{tESZ<8-#7LOHOW@!fzxwagb0^259COhoe6 z9lsNixnI#Ic0&tnA`8Fl8hqWpbmq@Ro6xX|$V+b`ODpzD1|!SI_wJAHm0$i-fsU&9 z5>C;Nsyq`_^(!(Ay-N&CtoyQkz2cwUn|RH3P{5neL*g#!O)kf7R15k}>o~DkXkTde z-;?9}ZO8YY+U&Pn+iwZnZ_VcMK_$+-V!n7TzUIe9V?pJ`{G0 znL2g&p#nTbIus@!$_)`G17qgK51G?n4nJnceE4`ccP3_*bSQ^AnrFt)#}5}OVwNgm zKH9|29Y6Yb;%Jo=vrLMeKNY(g9{cr8?ApDfpC4mq<6=LL6NQ!IT9^kZZ}yofkiT(p zyV=aXK()Qc%)b>{`!C`S#^d(B#2q10G{H*;3SJCcPZH|5s=6jaypP0r!oJZ_Sz;ib z|IFDDEaLqjxk&k#l=+sMQWo!RW7}i#wg1JPx@AHcp1Ap6nNs-b$mTB@OUh~Qw;^m7 zZjB>Vy}3l>CuQyHP2yDjeSTM5tTBy&Kl}c4b*f&iF6>X#X@&8oi-A$Fv}Y?ll@`0k zbWeqkpIvSS-=C|${P-<30l}-}$J|w3>`ObY7O>u4nKqPr;=+Rw)2)@EVujn~Bduy) zBPHiZ@WYoOUq?#MR6mG*^=#!`oBN%4GwtVTA71!gnX`6&5qRuz_#+vSIk%*t;d_tV zvZCv=k$g25>hRs9KkJAm7tE%wV*WCwy3dUB#QOu0zIj zohhOJjrVP9|C&ipm|z4hfla<0m&hs64iUxDTOr&Sdt_x2-`OJa-D4)2m89c~t>T6v z9>}Ux$y_hnG=b!`g*3&g-O3b+0Y}?(wb=;ItkY2`-CWu!K^Sfiq}=r!ZEP|q&!P=` zoqWtt>qh?Z^K#OK7kyqz=O4StbdtX34o{8GzfveCbMKaYgG`BU^6<^lt6c)ON^bWw zTqiSuz3d!=oo{u99(-E$6c0eF278PnQnEVp>_6F>98?&xw!k^cTQ9@)RYPs@e9^c# zB~4Jip<4B<{KMMZsD}?5O8$92YE5|i@KLK?*pPO^N?Jop-bE*cBaQHO6w? zrf=I!SY_x)*{5|dk#G>yzn#If3K~9fd2aJ9&kHM+q5b-3$zk5tF26@rR{c~*<;23E zw6mrMS))=Gtc}Wk-;(;I6^pQ3&FVU;PucF@?i;dEYkD?$CGhhfy=(d>pMP+!J<3fbXbVwrjSUpr3e>;Cz0B~EvTL)V^0&;9Sd?(V|zh~D|K+2tK<}iQh{QL9cjXv{m{|yEOX1oD4|B8KHYRI)^N`u+lev63Pmg*k4XKT3ii1K&V z8=LajB^Fh33Y}itnq`~F$>ocxx6ci#OYockaV zAqb7gR{WvXw zL%s2)uEK)hJLdZYR=;MF>=g$InhzeJj ztuL}yKZMl!DPI2~fYxDD<0dZ9&i47+C54r!WU1ZNC73WqyY8ajKj8kyAxTVA`i&;rnJYi5Xb3yuo8x?AdOIQ@0g{2X~5fWH6g~TcPRT zvig(axK#B*iD4FY_LO?gFY=&|w;#8x*maV9*n++X{fmaeMst#0$l+NzHU~wIF{Ps<#GT9xVFJ%^7i8pW%l!V|w}) z4;WQ5g8;#lR|Ln6(=By>Ev~8KxKq6V(Tngkv%w{<#{sNq7Vp(=+r2^U41_+<0vHgc zGg%oBjd?uhMiBe2g2y|75)9>bOQ8v|yofLf4_x+no|~lmAqxtbLe#6bOXouOpS^)_ zy*{qASe!~5EG-`R9-#<^vhFdjo@867=$y)HBaMvcqf4AW? zuBTjrok?-lh8^$n{_3XX9~PxI++#_~6#PX0{k$@El?PPy1uS7UewSqeHImSz>uVZ5 zT*y?oF{@9HS5|gC74Q1{s{K-}7@LO4;0lfrl&N2YQyCFRnX&%7m)BMK<&i(r?MF;G zXp7>JLE(M%Wi)!chc?PC&Iew*3X*_6?a$^|bmNmS0Vj+9`D67%{a)|xdr5U+R3jMF zRT6yC^+(Qv5Sy5Y{g@#0X8ncFEzZi@-x~JUNN6w0idhi5@eocM<Fi-(E3s^rrSOu>8r;V{b(fHl;2B#`&XvH5dh)!gGF->1<%)M6Ld1hOKjJ1j zzrF9YrsRh@9d1f2>tspj8ZL@_QtoosDwjN4<;knKq$b+uD1AXY*&TO`NtIwED#qTo z;K+*79b4isMD7|rhhbC$D8Fi}4GJYyV_kJbjn_|J=bNyW01PE2dnaP1PtOV#gNn;V zpert{2UzSW8}2|+Vo9XNywDS%&z;ti+Sig|<2rB5pA-jjjyjwkwjRUbuu+$a+4~bm z`g=d$wS_IrVF}pOe$1j()Z(d#XyS}9YJtl8_HK4{t!q`>mg1}*=K}M$Gy0oE} zgwgViaYnHl|GOxG2Zq}te&)}CVc9}S>Y_*1h@G3nyQ*X5E@H1}dMNj@nc^ZlCnbKU z#EMjjwDIuIYfZyfPdIr>$lWrmzo*AF_H%`ny;3tAxvJstNgu}=)Ia_MYs2kv>(E=e zc%?>5P9*5OP~iE}-~p#+=2J4h#zsA+1aE!^`3YVDU{tdQVwb8af|_Jr z)n04u_wwr!N;@lUIlHi;BP%V#v$A|5o+mR%euA5$A?Dxpg+u0Y^!z(fiO-@IW6(CC zVslxq)w-scndq?UzwP#A&rT>cV^$a*Mbc}Rd_0?+JR_W!xrQM+5i*}IE#R4u`#!Hx~=%c~9=tMHO=_^e5^t zs_rBRBs9%hYkbb=?=5j%P89t{ck#It>~z@r$s~HZuSxtBXNdvF>~E1$_jY$bxg@^? zakZ>Uo%?kY3r-6wHCYZtvsLTW8X8m73YikDyFZmPi*1Y0&yrQS%A{M1izoeB6Fa_%8g$m4X#ZFz#D=C{! zEk=aO+?g#Nsl2?5na?V@5bxuADfwywzqjbyhG%j=hDVFq&VSQxlxsnWQ^4}Cd$8f< zKKJaQe}CHQUoT95E9-&1!n%FVi=OOT_K!OGu#9JP6jvM^ zd-D9oLd7btgxvi)!5<~F&iW?4_y1Kzwkd=g)+aSPyYF7kC}&D)6)wHztZvHn{QBTQ zQ&_p>27Q5V9)dBb-B>U5@pZ6odgk8HEjl53(??=BQAg8Rg1Z|6oOtD7r64^a>j*0M zmeNh>(V_m79qNV91#)=mv#2%O%;@%x#FWJJrJM3RcDIcBzLxb< zMJV`38dRwcA3m{+HzS*VfGyLR30ePKr#t0*+H8O;hC-C7!o#+ zw6d0ru$nQ>kTQGJ*KUo}%sgfca6&<%91T*t0HTJRdN?1Q4U0QyL-SbnrU$t?W)9QB1cux3!=t zh;tVx*2zDHMD@vnXV;CE*Dpkg1o1pkk+{!kR9yC<#HwG{5JMrNpv2>Z5!`mr`JPdq zXKk{1ClC!I6$3_mbgDjUXiV4ui^U5wdxbCJp->{X>4>=IlP3)T%bFwQ2zqZTEb7u4 znG8(KwROHrlp5(qs|WYV8uDS|aagr}9MigAXH;MPe-xd2JX8N4$ItFFmtD;LHs&&y zG`U2?HZ#|9$-UCtqEZo+5Zg@Vel5D1OGP0eQL1gtC8>}~H_au~w+lt7)PDQ@w?DS? z*yC}wb3W(ue!iYB4(WC&siErF-A7n$uxpT&xb;ku9ke=V(J`R}@|;YYS-hN1+_!>t=Q%g%^3B0M7vv7PeFx>*@#pCaH7c3h57B6XoNlsj<7lQ2+3JOh^f^_k^-X+U2 z)*ARER9~b54S;R~3j)|~rgZIcp*b_{Jny^CV&))`g~$IvjGqY9p;TlHmC6JTNCDYG z8e>mEaan3HRIP3bFib%=u>7k8kV2aJA_%AyxF0NXT3vz7u%oJ2Mzb8^yep~_&}pP- zLaA}zy?hRKMGeSeN-3B(H&hB~UVlEOLk>S>n%o)HbX7<54I&_!U#Q;8RK2tGt75sk zuS`8U6>69qA{50ia{b-*K4#i66r|@TP_SS_n1G@a4LN>YZ`BfGK~?60bfEw;5x|fr zfP`Y)0Cq}cn`#S`Su9N+^@l9~&!S*>qJXbbU`GiE$D-ivMG6F}T=NYCiv{L&oAwGz zw7@VVO_Ky*c%X3&fkGmHWC_$81Rxs_0sv%CHIOJsNvFcJDaLEAsPT6zX>3S5TY=63 z+f(G;q!uHns_GO=Kxo?mC?x{Ql>*Q(#T2+!PkG-c$xU;H0`mM#hCV+@Pyw!x`eW>e}+h+HAn?9-Gs(@_bao{baY+5pG| z$7iDehh!NwN?G7SVT+5famF6*#5()rR^vt?E|Fr!Pl0LQ`g($@46H%oafOkVu7pab znAc`}tvwf*YY(n4#d<;0iR;gcT$&qcbfAeb4~W`DVS0R zB8vqg(=5p%kdr`R7$72P!%qY*s{%+Mpw}sUWDQo#up_?7kTFNZ1sgr>JDnQ=>>328 z&LL=TCYDlAZ`hsRoiKhZ5J`X>rT|>lE$zPwg92nDph6dnn6!6#Q&2XP*EJmNd#4pa zFHMGp$VDN9%UVCY_9&SJ3KS`@MCjCG+GHA(E9-3opSBl(Izhw<2+RT?y^;1RFu_E_ z%+ae9k{I;FRis2`y}Zhnf8+F|gbmi-@bR8t^d5j11{8U0RKh$aF3!N2oM1fYM7$W0`!I{TD^eMtmyp{ zff?(&$)eDO=kgpP7##qS7Jk(|Vg30-!TA9sQYOFzKfVXRSppY;epW+PdV#T@fnl?) zDNO`0U2;!NI{EpJds*E*;_~$9?Nw|{@6m7CMkoy6R_AFJ*1Gnh+{oj!^)9>WaYC6F zUTx3Fxzoz=29&%ERogWDo`8$qr|k~^#_tVm+SU|&BivRB@dya%u{-{vEUK3nVc<7W z5ev`7!6Q752?hXG78oCzW)*qjDk?RxjSQXDL*fek3d=!etXu&~p)r**TiRsr91#1! zi1(n-5WY8Zd{$7n=swpC*fQ8<8s7hG z1#ICKuH~N9#U}n9IGV-eIstwZ5MWNOW^+;M8v00NCMFuL#fb-B*HdR3!akAt{37G& z(^Rm6`Vxf=0D}WPsyj3MjnfvE=4+(K>yU&>;0!@A*G?45gy-x?gm5)V1;BN{qXMWv z;dvA=c=xKlf|I6(;R(HS+KSm~q*Ojz!@z@srt;#!6 z&x*Duik)S^qvUAhXVh^qW&}0|Ntt35s07IB2-7D8trpILKPFrqGkhHvHZ73Un8Y+$ z@=#7a?`yDQ1QA<$;L;u3nfN09xH}G^8^Zd z4b{|BxXEMeT-5IBT6tT1ssxz&C*(jF?J_19|KxY?b|d5avt9StRmPwOklNNdeb%>v zaB1MZm3KALe}C_Jg{Zw8l2(q9J|-EWWHD&@2r|Su6$~>S47=$?$j(ZX0J1yEIWHDV ztx*DuPP3o}82GwGS-X2W2#&_c!ZI_M;OY{v8S+Bsn}@N4wt;m9WKK(tz5-!Gu%<2r zolz-4>~AaHkGcuc2ZYLq#!&5sahU1_4)UL$5~ycFyQ~mwH-1bouFeM#62fllZL-@6 zUlwx}=tlF|X*_cN4{{wMy%Y@(D7A0|sL27TAUPSEiu*K$w)bO7jh$pkENuyl34tL4 zN;%||19IW`n zv1tI(2||3B5<=DW?{(kFgV^vvhGbJ{>T0x78dGe{q9De`uR`UTh0q8SC~VkLv6a7F zVRsvt0I=X&JgBM(Z4OF)Amj#tSRQT&B51SV1V2E&F1Ce0k0Y|9@oqn;n>lv*dU>I+ z#%032#rM9(?>jty`@oPZFiK{#rrtk$)M!X1zCmB5Dd-S@izvby>R$Wx#M zyjYpK)Ph@>)@yNKDWEWXJc&a`m4b-@1$RZgk z3{nD11}%^rY~5+L<{2idRf7ew#?V3EMtLNOM9(Ib1-+$=;2l;0!rO!jx&)pYixmMN zLGFIx6JYQ|22ql&(n}7koNa|_@wAlxMFOx1kktnvYhT?jGz}~VaqCb;zLJz`NZPUM z7Xigver#j%G|sS^3hSpBV3;@L{N4&(pk=7Ox5;q89tM-KvfEBfVVp}T%Kxq_>)DIj zM(^+nNn?!;HvCJaNa1!3VXlid2fUk4OLLMC)Y=FK+7$t~(8SYtahhS6J~!@*x`q zDmXOnaY*w~ZdMA^0-pr6;(?JAE-K^E;Ro&%6|=yw@p>PJlWs@L%hhtdZc$agl`39^ zws`zBAJ^i_f~F8BCxTuu38WNJnvX~*M1CU|e$}PdLJGZI_e&sG@rl4;PZk!@s7P!z z&bGJJ8@LAYQ=C|sv z7?9l)7F_Q&vMeV9$}ED#eM3?e@Dsh~SL?zztO{M!%j88P5?EF>VsmjK4?8Sd|5y__ zY9Av%T$P&!t#4yP)|NQld_Mb;W1s12;sTmQ?!EC`=L!bBV}KUX6r5;38{Lj(|NWZbrV zwsNYr?EE+rW?|Sx8bouIGpiB`MpwJS?Cmfv!)5x;fY46^te@+x1y(I|)nY8Nj!`cA zYwLevY&yitNdW_Sp(1HV z5C$=|a%hYd_=rx91%*@c)t;^nJQ+YiA-WN(uH?B|?E27JIp^0xh#8B8kxVJ=%A%_> zuCKyv*mBfTY)e%{=(;f?G&q&+JZ+UrUaXU&CvH(VyO@jbK7t4%h=>>f-G&zFVUnC8T^x4U#P0;{ z?o4Y#S`|*~hzL@W8ITuYT>U_96lz!D0&lD7q&umLJio(Y zzS~cJ9m>$+$~=5T;R!~u-hlP5R-xhQTYHZGYO6mzQt#UoMxgX5_+Vn&S2=Vfel1dO zdJ0nquq$KW(=6;KKF?!BUI~FE-5*Fd^(?*h$HZ0>s*m;H7(rqO@B_)NYN!fz-v(_e!cEw3wB0dwS}^zM8zrTBWI^D zn+%};5{amfN;AFzQq<67oA3CysrL;3fVPr!*2PaWmU_i{6bI0?=lq*|gl%Ce^-6SF z4WZrhIVkW*97;4AnOb)7v=)HasMeHdji z2lZCj>dmF3;OT)|BYhc<>w4QvlD-|!{5CII)JrQzeZ`tq;7recF}PrPD`G6|0w$3@ zB^Paa%5J}2L^S5aMgE0FB)k^eT6{%`bv1y`L+uTP*Xnw2(2bb+sQEsGk&sAoWBiE3 zz^T}XY+b3QQ2oS3v-%kfY7vRrOO{U#u$wlYS`4WyXWflz`?zFYITO-ovMHi|oxB<5 z^&ukupt;JFrCf)BX04o-o6W^`gHPW+wja_HZQ%3o>jkv?N8AT$UCnQfS(+Op8peil z`-lqpR!KQ?v`e^~hgM!~u+XZ-ZA-=&$Ldr)eG0dJ;FDn9H?3nh^>lYkX#5u34;e69 z>nJ?LxVr)WA<|)||2jo7=Gs=9+Z|ZCGN_|{qn_KTq8yt3BbphcZ>Vf@j?zU9>Z%!qS}qe& zUZGNw5k2gy!LolrfQ`Qs%`l$MZ+NV#m6AnH;cqaY`zFW*eH43D%3fF}1p;w2|4mV@ zF5tecpBS!nxC#s7J)(_!0%Lq+n&4%({iFUdDV`sajdw2__yijIScEEE@%OVhWnmDy z7HL(BCvF|yr~;c)SkznO1B>5D$ERHoGp&hWAzhT1Y`p0Q3!WGD308kqJ*93p%$pBe zVJi|Z-yi{Y>6e}bQ$us!z2Fqd+!XWtyBi+_riL92J-8msgj7AB?mV6q+<-JZP-O&ngY*33dyZ-f9rB(w@?Z# zD`}&_*Y5_)tI@;|Q=r!P__vy`OqFH9z>b7{$H)ABO_=P0!I0r6^)x?_)jzYWHS%`v-jI@2#>XL6NuYXl% z6<&YsJ8}G*IDmkJ+coSH>oN3UUXr>c)^i}&KLb;5eyf}Y=th(~5XTzJURl(bJ^=d@ z^Q~a4i+irw{38Db>E?KMgk-*p#MeohtX|1q+GG~X^}kTqJb<;3npuUX$gd(2;L zvC`E4b+oB|`hrQV?v4cPzgpJc)7SU48>@t;?Hs=Dc;wd?Cf4kBiC(Iy(+?#;0|Q^> zUsS7e*Sa_o{1!EY`jQ6;K6@j?Q6=90Ok7N29TPDrfH*PbNPDihR5rMW2gFR6hyxGr zQm;HN@^J+psHki*f}sHb>hmnZ(=jpA2nc_D%Sxbgyy|&^7^Os56h+zpocg9D>8fFs zFY?bct#F#pLi*v3y8=Vu?5+o|Asg7`Luscv#ugI+AWN&+Z3)EU_nOKj9#T0jcaJJSA6Oz3e6wJoH_p)_vyNvymYdzGTp|M z=U7zo2XJMn%+=R5Y12z2*lCGg_c?56(KDsuuU$ybZ4xCzgsgY9Z*7WUJiXUav~lRn zbAdTNwB=#Xxo0Q#Ye!oq-jM)n8H8JJ05bwI-cWaud4Glp|3`rCrFTgqrw`5So%n`i!7DkJV`)% z<(-vXR?my{-FDqh@%e95POXnrcinu;%0)P? zFA^IXiIwedpYa2<-Zw$P_zMJBd9{CC(`~Q>+swq`J;48BF}+KbWR^N76Dzt49Ql#G z#TKO`(aT_cT;hXd@>U>GPef5rpgfgY31-}){xcUSaQ;ItGI4mGBsDZW?_~^Lh!qR4 z+EZBaqSE*kUTJV|80%RqFtY?;@JK+sWEqP^w!-n2RFGyQ(Qoq-RYkhDv-B} zJ9-PQddjEyUF4hMJ=&8`-uBt1r|tZN|99-|-(xX*I1AvO_9nHrFLeeE*GQ^rSTeNS z;n86w0f=D*og+XsN1qzThW!%k36E3PuGZ!qF}ne=6!3$d3f{iUY=Ebf04Fh z+N}DMcUZT=3zhabgIKB8iKT@bmG*-V!3?v0Z6B+Jx3`afZKkJ!3}APt$zB$#RUdZM zQ}sz}-nARd?o-#l>pPnq$AB78Cv{FMUzDp?RKjpe8>aR0O!)t}@tqZscu3(Hd;8_X zU+x)G*Op>dt=c3)uKdBm7aJxWvo@jsrmIaOH`f=UE|wbp8r-^m!y#LL%&QL87#!NXwlgPaoapQ9%7{8{mrwe6h?TbCD( zHf%(UpPMkC6m%xfN8CyK?#QxaJSopOmNt*S=)HrxmXZ2xw!?g5q07C0f7kx}k)oNh z{j*DAdaMGE$> z(uA|nZCPoDd0Nu+F3gn$SdsKoJtjy0Q%Y3vuTR96QI5ZoJ@6Kfryf#Kv$G+kHe0Ki zCxcbzUby71&9K3iO5okz%fQA_=ZNk$p<{jGuUUfYF(HQ*`%4*J7QCh`gw$~pJ)n5* z_3?nZo)1r|alc$o$L6z4^IanBIfCjGOG>sXLRNTMw4{xN5OE|zUeq7Dzc3VKbLHvD zE3KQ#ym=}^wJzDKPY3l?IwL8Vk`aeziOAKbYQD=JxITZWQ`-|~{RMqjGPRc?O6UlH zg>sj9(r;VUTYF1USoB{RjO9)ap11@{e4&%_@yzAcTVq>ZwBCN&6M{7#yW_Z1RUB9e z%RsH9AH2Ox`)PRQ^w?Wcr*GNEB0q+AW=v~ zkSaPzI!19-MmG@9JyQCTyX>03xItGstXZOlwhbY%B2`pL6$P$FPY7)lE4G4vlA(1+ioIqi*^auF}f>j_7~I(c^&R^+9< zzdPEI(jVa|>(k!~Bi^!W=)r6by>j6AQqK$E{L}MqJQF$iW?X$6ImJ0=Y*k0??- zK3T{{47%C`zvSzf1Y9l~7C?*$kC58{^ef3D19~}^zF^-jfC-}9uc+vJ^0zYledtK`#ocLQnZFbh zoA6q}d^dsppDF!>lzid6-C?MC{C|3l8rvbAE8@t<&he&U#xPt(uFL#ch2ByDQ==*NF86Sh73^VNlf33(yz@>4T4 z^m#)s(fme*1z_g%y(FM?R+QYnVFYYdfMBdLWl8i!^->k@XKluK3K<|p$jT?^{@^{O zpSzEMyZxkKVbSLiFEb1pWQ*)R(Ju15x@M9X7Eb>os`mc;cLozrx!*a z6ZWOQzG~J;Q`-BEI&nqOnm{$v#c&aw49uQtMC;M2I~V9v2v*vPk^%255T7F&cSsWlMt&21eelqez>+gjM;=)WWu^mu?A&pWGqPnHBg6u+*ifg z3ru;1URQfbEwJ<9QOaTjDqOkwWB6_brBQy#ifaYAmW3;A#L`(o<^K zBK_Pwqgl5fBP``1(bDUA8Y8DoIBmJO(eoVRMkf4n=n5aFk$;6#Hh`A2=!pDCeV<}( zH7HW+Q*rQIyE7&;;7QOXMcdBDALp+OU3?>*f^Ay1L*j2CyNk*B`umO-1+$GeD`89K zEH@hPPQSbu58QpbpF6Qe=wik))U$#bGV{pSZb)a=b2cL|t*wocT z-wIJKKpY!O)w#a&Z67+PJx9|YxDw|(G77ZD@!Ec(S38i4mB|0vc@Z9YCkOZ6`MJOD zgoC2wMCf;wn*R&*G7eIm3(HPeP?Se!43d&;&jv{8$Br<(7o&;~0T;*+9M(+=Fe!du zI0hlKa~xXH{~=H_U^^sBHU+##J5xY3ka3X&NMXVq0S^E2CZ0d0kcELxf!7O=GG0T4 z9Cj#|eQHoo0i+*22GGf<2jx!7ZIGT)^C<{6)zH!;m6S9=wU@QO$$YGS;H<-dX`9JW zKTt%e^4Vo%vK6FJU(?lUXRQD+TCcfG(P|9M-V?2IHA#LyYf}(X-@i1xh@mpG!A#zS z5g$vMo6uv`Dt9!*-^~eb`4)eFY!jb=JTz`~GS~J|tXI-?Q@st4y=@FVEV@{Lp0zQ4 zpNd@}=V{bh{#>eT%XL}7`2Kn-bt&eZ9PTgQ`QfB0H&4pn^~VU8EC_co)+`qIgStJh zM#KCC@~yS@1!cNP{iRqotR# zJj%dJBlc}jeIgN(w20LA%Zfc*6mnhOs0>_(g%$Iw)&tqce*x82+jl+C>l!6RkWt5P zdTx%?+*7K#Lc$uS7G%1jgBPRCstuJSfFE@O2?OpIDCc5w?q1)118QU?1k2_{0Tife z`34;^(nWSkIBJ1L+gz8>8m7)9onL`_w0L4U)#n>m(et~t z@6~$l#c8EX>~%DdChn$y8mTo}po6_nu{o>Qf7$!xz&gd{SAI!q= zrSeT}_7NE8Xc5yuZZjg}7^YFB=#;IgGI+}f{7uv5`zO7oK4=xN3;m7O)g?g>e}te3 zmY-irbN0W&lA?`o@j&0(t~i@m4p@aA8U=1v!yc@Z?wwINl)Cu<80%zZCR1k0#D7JC zN{#E)a?h`*V$oaooGhxYRUbvKY(vwYqS<99v1hhwvTM~}@wUEfQ6ECJUTOVr$Sl&~ z)QSog1jxPhG;|wcZLC%HPjus1p)M`%8f?Nl;gWQTxOzbK7axhGneA@_(fmM3OkfWI zl}~BRZ!-v{AkX!?=CjaK8)IdGm*iFCP&Qg?BLpU!SP2RvnPnKy7@`Y_4 z`H8ama;H58b$|`f>o`_q$XPzn&s10?WG1UZJH0x830cWU0_7ekhs$Tmm6Z4Jz`O9b{Kah(*5ETPc zWWu&oALWlg(kWhiJnY*Dw{-&o!GxgsfU|Pxg_IQc$er#8sTYX=36o9P7X1i*U_Sl` zkr0;O59UYOG}?o?-<5_}fd@0_&{uHBk?<$=a9=FkQx)O!JQ_&6$Df56QKG#u(2fB2 zmj(PkWP}#~a08uoY$GJ&dLA7>52;{H{lJlu;PkeRx3jS2ACUFRP=CVR=$rIiRLK1S zC`v&r@5eP2IFMMH8{Qb=C@?-=6vkJn=~F+b0SgD9d;wHR5dEu7Be<|@TQJxW1L_&M z`UrJjyX@$%W9RP+)dNB7$Jdz=l55ofIGxhxZgNk)yTep~khxO5*TS+_PFW{eq~Ke0 zttwPNTb>S~UY|KRck6cjIoSQ%NWtr!7e7g{Z-RzehKE*|3C)7rs#mbDZ?*jO8|o^2 zcx?FLoi+624|D@R)+Y(!jtBXY;b3y`&1jqp= zcyt>S8gk?-6NLv*H~FHwP1xiZuEQml>Hu$&a*|f$kC{oMqxoei9xO(^qet{19PC8OwpAhB@v(yKtC3t_nN;TqQ~qJIbg>n)Ec0#KIS*~k$9L3y;lO)ldR$hgB=*}7ylUcJk##qv5@ zBtVHBdo@SV?Q7_&N4MG3+Vd^FDY6L_zFVc$G1!0nQ2{hFnS9fQ z!aj;YR0GUggGdwzWk!Gp`<*RJazpUJ6e!A>;#5r?O#V~!jsyytMQcXUJ@9UDKez8y zume!k^A?kkSqNuDMY(-@H4`@c0k(hqOixsEDQt$eccSHVree>-IFnU3EIg)p)Xfw&dYyzs)TW#$xI)k5a^yGs}>#+W0a0XL#;@gg! zDfH8&?Y-<#)KU>}DK40NHktJlnOR_6+A-yxRfxGYRiS>OZ01Y~wEJ9(bfg!?e_6dH zB714*VnV{BvvVCgTJZiZ_)Xa1|AuZ^JZ$rMxT$#ll=>-AbL_+d>{lDoQUVqOXqPBw z8BeTf9f}kz6k5WOiwjW#hrG!Ay*O9|W+D3@kaf3GV-A@{fus@OHc{HaQ%MC9DIyI6 z`9?-%r6b|#2u^Xk)4Xxcf{JCWh6q4vY$JVrgC2Wv)xQ)O#X44xMYF#kjwT{cY2ZGG zy%HSFEt`j(AuQx!z*I^9=Irh&ma^j%vh*9WTo+Qjh$I=JvbHK%xGFfbE0bG|H!FjM zgoQK!UFL1FYbg{BsL9)-Dku=C0M)+7DSruFOpq&SgE+DfC4xncJ>I+yZApPBvJ4M~ zzT5Oz9p;DjS=AD}2yd;=sKY|a3GmYC1>_=9{ijN9slL%QjKaIcT4mY$r?KC5aLQ&j z8$=FV;3@iHUk=TQU%!mM+roUjvrGHc+rFKePkR3X$UL%K?OSQf3IBQbYfJktw0^0a z-+r*Tu_e#qnuR{oz}QeTzjjjw&E33K+0@F|^m@%4@y&{Cb7bBhOf^X_$JqolcFd@l zP61leDkp5u4$&GczpeAZYN&+ym{LuCk+r$LAD1LQaML~x8xXEm#!tj6-Vb_)>I@%z zFBjA9dqa&}#(suWI$aq(=d<)Pnc%3OocrLCp;pxQ=9x{W`Cmh3RZ6c%mDOt8jO^?h zRlhiS%7U&%{7qD?yS&2}8<|Dx6Waww$_mXAnyl6?>1kx(G!|ToQ&O}`rtBh_z_%1G^HPLfb$5-A2t&HDV?iyZx8#G_BzqLXj^(~v21D1Rx6b?-O`PC49 zgeq47QAb%?Uq{VXSr;L$_Mc%C>uk=1Y6Q%BlpAfiAg*Q;Oe@!U_rF#{`_?nE*M6nD ze;vW5EwAof@0p(UAIqp; zl~ip192mb{pRn{MCf)Gzj#~~hFP#j`=E{hF438I?>@j(LDXhRQDqp$LyT3?B%cn5e z;!Vwx=A$Gkk+PM~2-CYiIi$1UO%ye){t-|Y60|>7fdXb%pxiV1a=J7GEj1K266hqy;cqh4- z03HF4d)exWc7a;avF;fb2u`5BzvEh6`-e-@ZD-t@*6N}Ptl4$nK6GAA9g=fj8>#o- zpq(U=yYiey`O;V~DO<8^er_i3(#~nX_7aQB^E+k-4~>~Lh5u*OiysJFs-Z4iH}$A? zu9)}Es!IfJO^0WDS=gMOk$Ye+xBWUJm63;Tt|>kHMQ8oO(z>qIHUm`8t&td%6R|^# zHrJHvEB4vq!fi4&aL}^UMbHSv{Y3G$4LufTaU^f4K~nFv_U_qzpX;|-4?U?t=&fBA zX8wz8ya3PHDSmN6mDZ>itQ4~#h{{f+HYQTzDei16Y1f4s9>>W`b_D)7u_B^T?*uCG)`h5ob<7aFg{_Zd;70rt{;dr2D{>O-z?bqm_FEAH4Cr|7pF)G}~d|8BySJ+39fMTF=Y6eBU9bh8M(x zMKuX(Yb!OePj;Vq$!%2p`SJSk5WAOf5C|&lIQw^JXyiapSLju>x_JFYHIN~e5;%W1 z{pzHTRm#)uexd{b;AQ%=wjp8tLyp4|Z*~slC^~ z{B`?BS0-4+9(P*~dQe{Wuw!ITMV&#LCx3ta=YoNPywSt#o~OLF#f>!VzbCA}j#Gcv zHj38HW2n-`U9edD```M!Gi=0>N{72$b-hLs%cRPRE&z`Y{63gPc=H^)x%-|`d0Uz* zH%bmfaxqjA=O8{ss^0LZga4ahZ-+*!_t`TxY%tEoPZhdw%LsP)7?!qwly(@YFjJwe zc-0&!2SWD!a=V^G4~)`)Ie3)GcJyKiF$O9<9*j9mqAIp1XmxZQXNOgmA+{f|z0TN# zB4(b3UNr84;e4NG7Z=fE&0tZ3Sw7U0*SN73vA-;Tt`r7cn9U`@4Cq?|ld8^)t^?*t885Fwfmac@Cw}%@vs);yKl@yupMcPtU%Cnz$e7zspacXG%x7 zn4BB^TMQa?e`5%wNP8FNx9sYK9YiTd;^0-h47uiSchyVo%;VDM%8g2Apag@0XE#qBJ_D=$5N3P(<&H7y=J01%D0Zd+ zkBb8vKKPjI3X-q$TdP;xzdE28B{knJn_ir3eIq0V-`+m?LzUh_1ze&CWA5kr&XHlJ zd#8>)uKeNEzHg`4r^4ZBY!vRq^8JV(U2)jvy`tN-z0C*vw&PC5@Vlg}K9|Rf=&cGd zFey`{-|x8V_w%2`d>$wm%Qs9u5|X)Gu-h#m*NMV<(Y{kfE_iB>S8&YL9#QE>%BQ9` zK&lFr;Iu1d+APj&C%@B502yqUL4T& z47=kPob|(>SGSJmW9u2r{IPn*h;fJ-a}|2Bx>12QOH1D<%tOnBfg#V${g!7cilC6{ z$M}nuQ(jM!%TG06Ph2mHLybwjJ`yXK`r~!uKa*40etXBg~R1Rd?qGn{ChTn)>KE8Nd5y#6gxE8=wBhS2snVayOC2FuJ!;C`?35f1L{6p||F2 z-QTfg-)^O!(`%PJ3jQcg6#SIlo;Kci%){zS(ux06y0VJ*!xI)pxHsR-ZG0CQ$hpp6 z(6nv?29QJF_a)V(@7RkxW*>dR5+e`NnWq`03Z>Y)+LA3QAC9Lzzj0S^{8Kdc=&Cy< zZga{MW4R@bCQR8r-Pw(ZZ65X(9w3F0 zo3gf@^n6O2iC=0+uhsqiWLb}_dNo}2`!)3ZzFp3*v*ITnWcQmdp1ik)IXtKHyZijm zmdrou9-qH71D`&_&K{jZ)T~Nb&YOF%a`MlQzFV6=s<0h?;)wA1g~?O7SKoioN!VSR zb*fhVZ_OU_^#RQ<{z(ynQjEON!J+P{Q#s$hYlUv%L`QyfUp@1d&D%x_r8fnGdBI@3C6KOpz z`v@T$u4o#%0@|0ch28DujvpbSAtDuf9f4QK@v6S>V90Z5<~rF>*`@crR&$jVHtVeB zn)dRXI&=N(>1+?NpA^V3N}av5j$&lxP=P5(olruzfns*ZA zJ8zrb52U-Oc%#xNK<9n4jv4Cf>`TN>w+H68AI$IsG+J4s$Ucx}A*T5@ikZD4Cozp4 zD2h#>x$R(ZnEl1f{yh!-7UR6VV#dBHYnbnd{ObN5}L{jPxwqa9RZC!u|e$ULy0q22d+kr6r0C=6v}pX+yY8jSAHdadai zRO#`)qacd{JlN;L?(Q3S*vCu1*X`Q$#aL5N9QbkQ4NTgqDUtkzH!e$r!+h z+@DqHdMR)yy@3JSD@?2q1fLmfPw2VE$G%QHU)nQR=5v4GPxcfJGDUNZP=;WpE*AUH z;)X$344cp1JeJcM!Y|abEpO1d44OX83p+2a0_&7+;qd6NWrHU}KXq@B4;_lQB0x_;KC+ zxFOe(T0L$NZ#?q;oSaO*KVZLUZh5dk;PE<8G`b9R>4aegP;1^gqeQT^)Q{#n2r|Mj ztOsR%CO+$8h7b1kuk?BrBtH4s%v)8+V_0ObSNAcpfCvry?ff{}@!9shY(GD+wE)bt z7i$S<*45zcs|a6v2)qqe6(|z)g3^1zi+Eonq#t+%YUBr|S9-0c_zv)%yxJl1Pk_`I z-gs;1{f;{tw+#xV0PYmP-~q|HN4}tUkVtpk-ca*fOZb^kr?-FWp3cWc!vHps1CphD zLqQFJU?G0k3xJ#b^>Kk-?iVAK3ZNnCUT{Cp^lGqhho=cL=Omte#fRk;3c|)`|BV6e zW#pK|vY?^;Dgtn3#)G?^UM2#luHQDZwLWFrao3Z+`BJ_wTd?JNiodX6)MJaSmK)2x z+n*8ku%UZU(~ZU9fvkA;et*Xcny>83XM1fPtMG6|j}1mxAg#JRtP-K2cf3=YL8PJp zlI<3FBFD=E7~_s*F-J`AaJ;HH9*LfJ!bKZG*}Gb}%K;o=AV;$e;VWyPQh1)VIK1%& z%m)JsXylqR1A-($O);$dK0fKBE+afBBoU0YhxiUYc8T#tpS3ZJL~VY zGvB&ggInt#`WI24iPSvI-PSTHIK)-WuFXQ82-gwnejeRcv=xO_&0Gi!{TsM(IF$S8 zAv86|x|;J?ThB5Sl(g_BV{WgoS5H)`I72?B3t z`NXb+jGY6oHFHPTa?OokMm%T$QuY(|O80vj(w2Mo99aAp5is~9)(6104Kp*Ij{FU_ zF7>l;da>*i2o>GqsQXSTynf@>{!;%uo3~l(z1z+G+uc*SH)KR^{Og-JuWxRdoQs{D zF^ZVkxqbHhJjag9VyzYxWtkV*(b{Bc?&%KR0rX4u=GW zf_xKmjV;i${NQ()4&j~noe%qK~&e5F@JTODa=lE{JTbkr;JQSxk1>0n6DCM+7 z6wxQ0cSpKhh;UJzrGA-lCq&Fjb0(cnP15d8<=DGWN@=epT*2Y&jrm+?VpN|*q%?Gjg8p-e&-~9_vGi6{;a}BaS1+s z4Pow`TUuu$CKCE%GiZn4aTS5X=EIL;-beU5*SLv87GJ-JdLC!4CExiu@S_gWvwH57 z{jB>Ds8jWntMe4+!sLwYY**~=13z}BG|($?qJ@E9TQ@ zB|&FyMNZD2>{_pV-NV&6v|9Sy<1|CABw>5LjvW5Ptj1*j%Z7!CwcUq|KfHbAlMIh5 zu>9!#Z>Z?N{JG^1uvY_qyyyU}o0d@@u3or?%|vLnL~w()&$f(Cy$@6?o>RU%R9 z$L|l^uWR=42xGqF3q$bZzwwBV3SIl${?2uK(npENR{?v(c3u?f$xV z5(ei2A9j5j3Z58n?)mH*6DQrhee35hUw<5EgYVM_c6jgx*9# zM?ejTfb=F^KtM!L1VpNZP5?^+kuF^bMF`bUgoqK58p;m=5h4O2AckJ0hS160|L57~ zoU^;no-=1=XU?2i-|&tZ-rSR$Pp<3wdiXq2_Wa!BpV1q1 zZLq(wGn-ppG8%rdqx!sYRqzH{@G6MgYLoZlb>2{aq1V^hjgi0uBqnL+VHX*~W+bD% zaOm7?9b$Mb$g^n3%p=h-x6|v`qt8szuI*W;aJ^-pv$9mrHJ5x>@k14<)(L zNH<{YQT5r~-B`-F?cQpTg7LD;s=nAf1BRGDlr|du9`DNGAe#R`0%brf8}3q)bcI8Y!Sy6wawt1;mjxHe z0*!s5;2i-)Ng`1!u&*j4(2Ki>pd0N784&yE{fK(RlQ#(ISyUiDD8{i%4T{t>F#=;i zp|s~=ZcTeh9~nIIAneGuS7uQ%u^pOfyDU&}@E>sM4A zHT_93_M-&tO>*Z!CBNlVm0i{E@R}HE<;@U$=BjyDBY?DgMZG)*(uj2ss4<$pF^?f%B<*k(x+`SWh}77Z3yw0^W45;Xx`iTx7{C7`UQx z7DRWw00f8H2`tiiD4eM18f7uP_@IhvjR7;(g9WL<$ji~kePchRj6=P&U&>8ws9P>Yf5d9hB_vMG@*m5fh@s_AbG za$cj4cbm2=S1RkxihlsvVX>Pd6{$x}62feyaL=jvV{|WkBj1=&%Uq^y&~~K}qLXTy z?vHg-&(U~N99?}ERy z;yv5E@SYzmaL?@pXTMo9$k{a}nkqJUTG4?ktyEDgH+sJ7utU~vbEnb>$@cWzBOP+Q|uxP5=mna5(@~c@ez;(_FjQV;xaII_bU2zB9!p}p6U1Vjdz(rMA)7!PbbAr@ zI}k>x*HR>hn}oR1UZJ~-(z>FMD&1@bE`*G}cdQ<5?oQl83s^}o7If=H@I3%9rBov! z#v(okd&zgq5QAL~0cuxd13grBIG$3yeab2-YsV@oYube>tKJ(K4sf2E5@R{bn^Y1j zDR+DzA7!q$2#exS>?YT=*s$EVc!THyE}*99-Mgt8F3u;YuT*in?gm%NLvK2)*TBWl zcPxwwHy^mhGV(cK(Y9W-VxUlnmdcoW$T0j4f&0mnH>UK~&NO1`(a|9!4c`C@OCurC3{NfaT_DwNSMWn$P1iHt->*Sm*%t2XXS@lkN)@&n z6_goyxy$x_g9QSLDrLAC%V2h%uW9#{ z5*U{@`CY${293+oQicCPv-ppGk7j_~ea0YnwaR)pMKl(6>yE8>Gz%Xj$kPgQ-tp>q z8*{`psGZ>KCYa64s~YWR%1kPWvLwsZ+kn0hz(rFSX(vQ6{UxJ37k zyiWnSxYUaD8H~JOCCiW6bn?3X?6}&LedQmYA>3qES}5|LgG zX4@j?)3jb(um(qA>8CS)Dz+QXe*r)8U}Uv+Nies%r6+QGRG>kYN$wTSRdALkN7Kt# z&FcEqTU8QB%uZx17FH;jB%QhBfR(df%B?UPj#k4~_<-{yrR2SP%-yzh*Ec?Eur6}Y zpGZ7pzm3(`Hc`D(s1(^4o-4jVj*Y_FJgPOE8(%X@ebe&@a^H)NZUhGP2J)J4Xe{Gx zPFDCTgJ&MDlY0cpB2z!jxVuMVP!hcHN|Q)tQ^iH4KsS?l=>t!(kii0sMDuS=o1!R( zsMC2a{9@iP7Eh>&2)!Fz3QmNWlBR9(0<6>bLEP;M9fE6IG0we3j2S5+;0!-HIQkSk z4BjE=vO#ZUSIB&s*r|i&iKR!hvpj@?z!%AKJ zr_s;@Vl{zf5|084(yD4rgxe~axuFkE+n7MvCx#(Hn7;4$SPWmc*!{0`41yYv8~Kn1=3#ho?#w;0+Kg*c*FSg(G+Dp} z&prV;7rZxSH)O1lgk$C2nfd79q=(ldRhy$hFhO#!+W^=8<*FGq+I| z)eYBUXt8Z1p^fczyPqeWgEgnq8}{Z6JE^i1bo#R{w#1xUQV*sK<}p)U?gx?Xi^Z-N zKP;vgK9Q8pgVJIm;H+|3Qn@gvEz9eCiYP-DTJR{r)xkdtHYs&6t8sPiVpN#e$!LsD ze`5;x?3Aee4~-roSK%Q;^s-ht+F~W1wpoFg&AN{<^kXP&C}`=7`7;eSlo4 znNnYE{^hs6TF&7>Q?%Z)NB0TC0wFHol~)JWY{EQ^edMNCYruW`u**=cek8_Bw2X7oze(~+5dL>_4FCF>)hlc z?ZBMWjh1@a$XD;|^9}E(A7%P4|5{6}6q?`l*hiV&lPeDnEeHR;G7zyAc%1U7kL}%X z*p>3M?KQbdTDMOpe|>UkjZ(kEKL*v}&I<+ij?1&Tn2j0IP*qV{t8Sti#%lXP+d{dz z?auc*c>8rGQnl7R&z=6kv=#hmMr%EsU*pEGrpI$aEhhr1`Tn#%B4f4q71UId%vr9_Ac@q|2Wq;=;V|i}4 zjNPG8i6M;#^|*P~>0(4YT!h-jKew2`fqhFWUZK@DZsx8ZEgTMrvJ3`mb~i<|y+2tx z9jBSy_&a>WSo^3(v{lj&m7?^yxUXC$_TVeq@$M;Ro}hJhJq!o!a7Kq#QOm1^yE{*a z8Ps0P2Nu?JG$TQo1t2aM$gPw1Zt{1z=-HC9bhQNsOTQVM=@(eg3oP`lu4JZ27v{)L z>C&Gdu}Sb**!qV8o!EBPy5BP*u>I7#D{p@ovrV$MOfDBHM-{w>POldplk^U(Zio|k{zJ>`+i?!e7 zaW2$_k;Rn^cU?tyQ*TMEM(v2<>3AxLq zZ77$SEw7I~mo}{+j^6qydVbpNg4^qJWz*AoFoo(O1v&J=ugiD4}$E0=5Sf*`^dd#4g9Xa$mmA4x=B%&Sg>4oW;9Vluv3{Ht7FYis7Ds|hj=C^6EXH8JZn&XF|9cQ<}EtA};h#*~-`lxQMKEVMz_ z#%3+1OEfVhmi>|(N$s-T2FM}zYYmdu(q^G8W4cc;uE4aJHJDpdirYlW&g{OO<=hQ7 zDSPcXdmE{n9&?Y8M0!kF<+5zjm{-!lVp5$~GGr;4Yw0DccdGbO zikx?v(z*CZuk>E8-ZL5o=PjmlbxQj|Fpt_<6PH*q<+SX~rR@B2 z`YI3~!8_Ls#AiYTb$aLNFY4pH^PhdsPVz2D^DcMWn*@(Ezmw`CNtGX>E9*UcKUMfP)K=DIRsy$Un%Y;ITI4_V zRyI$|H&3oKb*(haSGI1gwD!sqM^-*@J!lkv&_?wIPRX=PuC%Eu&^nc>h-)iEafN^E zs~Rn7RkaIMHHG_@@pZ~u$d!rE*M?WTt5whk3SZ2XeL3EJy{kIR@*(0r zUwa?C321*2UhyW=D=r@#7mxeK_i#}B{Gj^Edn4Z}PPCleiepOTv&(;mFZc+$tc+ML z>X^vZMOXgtsQehdDDPLUAGG{tel_qw;Y&X^`rrX6yrMMIt7PoYujz-A>dV6iPN&_G zzqt(QCyeQj9-bChn_9~yZ2c({xdW$y3)9h)=FL2MvU-fNdZ(d}R*i_O{TEh?*2-8Pt+qd+F?L>9UwcHJHlES` z!-H%8kaP9NQgTuducHZI0kijr*OR**N`s9PeeJncCAmf= zi8os^Ka|c7)SmyWbYZ(zA!6&|`&zjLB{=sb$pj_o&s&N$Tk!ST3lX*O-2f@oOUg3u zFR2D9#%#&tw#k01RSw*i^L(##>5`tV;8nNIl}C?{KRsfs3e@*gP7j4Ce}hf+=s{KXR}Ch0+@xfIjlAhSw}+4~^#Mv8eyki{2@#rL3VO%E@8S@jN~+KM5Z^|sZ%4?3FVqL$LmrM(AI^l(9<5LxZHGKQq&}t#^*goe z#~tb~yz4I!8X&(La49rUV>i$sG{}562)I<_v>SXcG{ko|Brr5IVmCA@6p^rtNDmFm z-3==a4X@k{e;*prxEs+C`sB;*lkcHV$9JF3gg#r@eYPF?{BZX<9Rhi356O){3GbmK z5RvkGk(Urr8o;?j1loKLZHsu}wD;m3BHDK^IuH>Pu@@7Ch)vjwO-ID#?!^@&;w$&! z-y;$l_Yyh~iC^{-zaw6b@4cKsB(3ZvZ6lHo_mb(tQcmrsaEGM|@25(HrOEH7T?$Lr z*iSbI%P`;1unl|VwEyZ}Sf=lOW?)!W#C}#(7$#w#hDi_0&fU*04$G+${9Ghz8F`}x~p1&8|ubm7=j2Uza#Lg9l#iSQ!%gQ82}#Tp022H_>< z2PL-QrA`N>_rlA356S|=-$Wd|i3-Oh9N^N!%X1IPi^D4_4=Ub=S2iA0c7#`bIjH&` z{&xJ}?M!&}%0cyZc+KHK4P6BO)FGZb;+^o}JBf%|`NP^v5$`n)-y1{_%nu2+5g(im zKirF`^Nr|f`&CyE8kc(JNx{VD%XNJ(8ttMQzkXG1Zp*uud-zFbr|hZVhTa)L?AS#a_ugtJQn&M}&RlZDL~(?XC##N0A#1VH5QOjSX5(6)2H< z|1oiqqx@j@xP3yGX;YJLXW2Qnj^Yb+4sUyYC~Lor-WZKK?*gWSgG^qGm1S!b+!}AM zA|CCZNqP%%(qxx`BXgCAAY4;<>d|l_32;cq9fraPMf)YP`(8{nBZ} zd$FM2_*a6nNZ{2*8pE(Qk+7nZdqo1xZGoa~Oe~?au8!ZWVfGXF)*7=c)1p=1avp9> zFN@;iea>tuux0Q<#*oNv0jA?&(q}wlX8}IPrdx0%SP0h@)MSYKsein;IoB7@Y)EX! zouQL((@rtv1Q6g^4K)VxH6ut7dkM!K&V3YauEs{$Pq zBd>Z8uGtKBadM-i)~25xrq|2U){}4NLJcsI6TCDRZ&v3pt?<)^{`z~*Z`y>9)9&5R ztp%%&J{DE!=I4*0uSH~{(m!JLQ`>2aA&*@GS`t zp!K#nj4R?f!Iz<(T{*(!(3l>dVO_-4dQx6;fhM57gu8@*^(Zkb_E~o|sZ03AJ?ur?7{0XloI-IWuZ>(BQSv0iMOTaG zqW*O({n1vXbkA%RvC!hK0S?ax2jieEF#EglK< zWC~BWOPbc4SXiL#PkMZHmwB$rqQ+M@OLVV!zvV3yd0AojNf~Idcz5A*{Gz(&@k?RiPeemOB2FPfX5+5v{_6ox@W!{&= z>uQOINA%_=QHS{SzlbJ;{qYB*zhlI-A86Xxaq4NdnHXNb zKro58Z-2rQz9aivKVfv1CL9RwaF7y@BgXAvx6s^9a^3?U)BDJsHMI{+k#oFfxToUJ z<#H9iOs($jx#O~?@pFm&N90hPynb9Nk4%8NVhQhq&64JWkV|xC4G%aE#cSwoi?mxW z_;gH6dOXd!eD7) z4HfK1W$BCHiaWA-?#U`>7Ue?FS)a+$w%bpkmtP@aCtMi)c%-`oTiDtDrV7twAW^LT{5j-$UPFrlO!87;wFqy?( z8_SH*Iw8ZWie*wy`Q>I_Jc%{p%1*s|#7YvFT7;^y#wI;f5EPp6dVM8i^QDQQxG+nH z6wZV*IZSyrc%=KHzI}{gOwg=^Shns(qd}u|ikOsQw&}G;Y3Z*iC1-S4E?Y;ZWt1w< zox7fG=6K8IRa~v>oUZdvvs?XXnI8yq=gp(dZzkDfHB;s;q695?yKFG>XlBKPY>WFB z(zCx>uq(a(1ohItlrv12zx>YonvVx}=I7aY)iyy(|ATOF-BS;OcrLx#&rdD_)t#CdY5 z4qk@ma<0FWljM=y^Az0`6pp;@!!XqL)kJmKiiFV3>1AUEiS5$^sec+sK>)-A(xoql z#N5)0ce|GAQ$WbpXBqwh{zj&#Kl6J(cV{bxn{YW_2D>Ofe*ea% zenw-fEH5M`B*cfiC3e=6z3)A?aC|Z_Fi^AhIibBgD=Vk-b8o`8vg+J{j*VeVa$QSx z=j<5u;q@}NtNG(3N`1xDm!|z!*?ArzE|o`8BeEd{Dc3OwAi1 zJoPRd8=i@bL>nmug@-?(93NIx;N}*VUy<-3Zdgl$X!KyQrDbeJTuos%A;jrzeSOpN zuOmF+)3f2ijF^^)JA|~_CMy-x!1{!9NaDw;fu;4esF9M~*rt|>*@|gmd{V~T@urVW zA`w4nq?CBFbJQ~5M;e-ac8^e)*-~9mzdd&}*1cCzG;6OMYon4^6yIsD@#>aAme*}; zPIO;{TUEFlA>6sDqNuO8VW=pll~_x0)Xpu+>%+If*~1ZVZ!gRLVs?Ghie5@+=i>ef++ef8GXs-t>I&ivxW1~$57(NDcf z)6nHvONpk6EYgPHqVAsK2)D1m5>iSu)d}dK#LoVWBg$fCW}kbVdrk%-2S=FHMJ{%e z`zcL}%On96T#jxxI;pcd1Cbw{_sEgxk>WK;);&5}e1;(OV>9qAdGQ{rxO$?#3%;L% zNu=P=n8ghe7CqMKfw10NB%MLup2TWacpx0mFbuG}&@by#QJ>~aK$GzONu#%2N)qQE zR8z5<=!v~Ol2AX+(ZwsLXcgZ@Ohl0IIjg{Ek$zob&b&fd{Ax57(M_S`G$2N+7wwE@ zjnGe!E`5F$O;sM6?E?$cVq!dIRW-JBQvYJx{ub##xW+3ufuy#<~2Da(o;K*4!&sn?bb8ZD-r{x0dJZ9Nxbf zDA0{!6)_{=z7?CK%iZZEl-nk#&zTPI6Do!)9p3x=>itmpqsFB}U5cb1iRL@cOgSZ4 z_jdfF-%Rgo^N-cP8V$t|NVrFrjue9K)LDyq{8UFQw|pjM{ddcg{j>5oe0}ZQ7tAH! z$-YnT+n(-GXfKuo=d`c z2O<8u{Y{^?7f38jFeUYdot4q|zQ3K{gWcE29SJm1s}{|j<+<;bcL!RU4|g|az7#yZ z(Q#T@YjNfGKx^ys0wxlt9)!m0MMg18t9@f&l+?pULXBjn(0>%YhzvX)xT)wfA&XNn zuxQ!oSjkMU={VUk+;qG`-Qsityi0Z_QF+8`=B3&^ZYD{Sx;T@p%Xn@!#gNZ?Hq}JB zd^XKOWob6u+UVR|hMm3l+$#r<^1000Axm>vF45=aG47e(^VwcyXznn{kqOA zyFrBaMX#Zp;b z$nw$~Y_!}mt|ZfExg1vpxKdT!@^U4 zj)4pk)YXaQ6m(y;f#}tUDd+IBC(?Agn7d1w;iAr1{$Hn+p1?wlv`8YL$!Jk`29B5C zj~Uq_g)O=Sd+&TCLe$8`*Xh9^7>8c!Rc)v+U51`2OCazN31;(KFtS_^IxF%+=zQTn zZ0Diw|M1JZ_(ORlK^q*PKu_!6DXyCC ze=dY?Cb+N_3w$=|Qp(v(^s*?vpB6#@S8Tr2jsu?_8#PiJQsbo_^jPEOGjgV zt-G;lpd$o04g$iu3Z?sYU5_;;(cRpHxfXhXcv=aREvcHFCIu&p#;r2S-s$eKNpcs} zD#3Cj>YCXqnJX*qxuYjGIXD{zZ`sAReU{~+)1It#knPr0b=?2r79g2m1uIj`>ahr9 zh@>~cyIy+Z&B@cHmowDoVJM^zS@hn{Wx8d;(`MQqkh7h)Xz@nMEomIUkY4U%jIw?&^K zI&>^=eluw)6n%;_78MZxCyBZlq^9Qzo5T;Ia)wf_EYY!ES{}?2;(Ec}_U2ls5U2n2 zwlq!loYerLp}_2_n2<;r{xSnE4}Ke1rO zUw&XZt%zc$)sJ|-d-dm>q6Awh_-dAv8Hmm3kjGicT~&>A{KynZbcO+==3uh1(F-3L{(2Ysqs2#O zr&FDGiVV*`F*|*s-6e-z)9;!p5gEFl{=K9^_H-1kLuUgT!2+b;A0iWd z+L7FRO$E``SFftUEd=i1xwYZE>U^RptK$*i5 z31vnH2B-S4pLZ>gbM?=P!V+JL|=WT#zKAjH(JNs;NJvs6R zT`dcm)?nD%V?_JrsuCM24N|Mk5eu4xnO;A8-mgPPmc%V(k<}8>!fy!yyUU~7&R*^b zG~jBkNggR?$Z!RN50LJdRk8TfWt3(<@#yPE67;k^x}sAOX!YB+Lv4;Grz~}$0`k(Q z5g3CrF6;_M1^O^9=H&{OnPs)roF6R>6dfCDhPUN*iW0;f=9FuHe4Gx)M*HjPeCrq_ z?GWSk22nQ`Kx-A7ZIuXF)$b%?jIxE(uiF$kp+WX_Y#SfPdiCyr5%Dq0O2lso;%+OG zhrYR&KW#x*sfPug+D42~g_0FFT4tWQZ=;&m~ zogI&;;DN($pQ1yXf5fjp-EFKwaOaRx95$*TM^l^wdtDkQn<>dnvocouy-p`vn1QBw z)q(x~h?8wBNAsew)xluy2?b}>ynJ)uV5IS62cO)$>S=X2Hhw~_A81|+9XOmkJlQ33 zv~0v!9Zd_<_PVWFwz39}<~3;hq~sRL8>{1GC)&a2KnwNb!0}oH?U2mTO56Kvb+VO9 zJ6g1AJ@_$jLT#iSZzQ)KEm+YG#%U*e1Fa{!1GJMv8Vw`>94G=J@kmAl5?IG&tw)~u z#>nO%0iztAE<_0pp}u@m zIfsk9)D{^rbcSCx%1AL%h$reJ*iADw>Y`p03?sbff}lY;0x40t-CV%2H3AC6fxUN# z2Ma@m%w>7hO)ih7YTv|&^T8Rejl6JEi*|R2_CQ2?VWNHNqaTb$KiZ4-6Nm{=iwSaw z2|>glFfrlvF&qLMXS!n;+e0ssk;pyK&^PyRRGr=V<=1FBfB{z;UUvap|$j z23~Q?U_?&0D8w%AwLpB4T6~E^d>JAhhl#JKkFOeyuilHt3nbL4B@i4E>JSO_n1qJ< zgr?Dimc0ZbaL7z8vC|>33z683N$jmp>>Ew&-%BJ3yd1>IWRE@xvz3;{JVo(K|HQrY ztQA(rKQ(f9`tFc4k4Rd?BrVq`t&S$G?ImppByXuDQyh}1h~zy?@&QKrM}6{(>n~3P z_?tMB!28LEDNJo?Ojw7MJBsvIK?Vi&DQrtTQ#gjJ*c6OxD)&#G16z7^XsWO&e;7Fx zCYTn`1~zbcG47S-rbsVgpQf&i|EKcIL-6u&619@J{$5 z7D6L|F2c?TU|-zW54i@DQ6@16ma7)|t4h{#M8{!-3PExyu}-F37j<7HDhXXALw;LB zeuLKcbmfs(;F|GeW+-ryLrHMTG@em4b5i)6UC0qJ@VVTD26 zLSa%cX52n6t2KnxFKbLOR6T{GKkW6;Hk3f)) zGyj^a=E#gBlmvpLayX_X=p|p0}WnufMSq> zL0-i{C4>Ya{#X|=h{Fa0f3Ha0K12^*=t*YyR-ReZR^(I&alk_^TFow( zH*iRiimT9&D0RabT*YK6jXAOs@)RC`H+Xha-&F2 zOz4PL$_9hKAjSl%gKWZ>i;C|t_;5xWzk8CM{U8ojAX|H8Gjl^PPh3sN-J7enM{@Yn zWo=CAD_pG_&89Xj8)mzW5<%6TJ5|fec|}o}pnE8;oy()GhDk*b;BI*ajd2XF?}axB zS)-YX?=t@}{h(g-!Nxlh@0wwMs`U1$40oqGkBB<2+&Z7ex(DNRj}Ghngg*vod<=5> z7!vUjp}`f2hp78ihxziL$@KCh{BvKPP``SJQ~gy=j=L50Nr&|*!k^MKK4mz4%8dAg z$^Dem_$hDvQ~u#6tZ+k-Mnj2HLs>)vF1Mkgv7u_bq57}^FWgwG(MWJ=tcz%@&uwgI zY-}2DY&mQs3OBWDG<7;PbwxCF=Qi~=Hua4+^&d8ogqsI7nuna4MbDPH+n&am& z=nN5}Nu-~+7@eL=5NvF^SA2E+)2TCc4TnVbzE50dnt0io_>UR|R~v;BMZnCK732lss`$CENZ&V)az#hc~mU3wu8)vrl~r z|BE*jbo3Y*p%cHAroH&|`qeuCqySyYOKFRXiv_f(yo}IN(fKM7|0btL7}HIi_@b=#qO_h6x03kY5;M!#`l{~$Cq4U7Vy%LV zf7AqUl3RFUE$*B1wdm>oqqtDu@0rcdYyq%o@L;tZGqkd{UR_;9S{?=P2>qj^dvC(u zzAEH)H6TiLuQsK%gdij~ZG!9aPY1X&C@Z zWyZHg4i*ED#2GA%s?Hm9{0A|{v z9Q=nm;Q=!Or0GdK0)QdE+xTY);z(zAtj8+01qXgYykcOs1u+z0L=hA zgmxhS@{)n8Dw!sx<#awU!2)~}iCK(|e*nM`z(WA^L{{Mc0|k>5`*%9>7e1H~oh_iV%l1F6ogSU%fj93^r-7ruU>^U9hbs? zN>1k~Bt!n=T=yMjsod}y!9N7=OBvV%PBYa%gcM(U}puvHaL&3B> zKZ8+T9aoVt5*P%6$axuB37O&apbwZ|(ipp#&*0nI=pJaS(h1x&_cUOa-N0VwJSx%a zn2Zy3?}F-<6keHpA=5W-CfS=`k6yF8_#30;p25K6V~GqVo|BR`UAAx#7|rrpBF~78 zL-O@&O^bVIhO=DEDo_R=4n zvcY50)`96~6d<+f_+XV#Pu@nt6cRP8U6|C=$fC?Jedco?n8FclOo3_aXBcadyf*P? zDY1HjZUSKD5hNQ8m&;C*8cu#fhFexowXysm)j#i^K^vg$bPn{ApOH+TUrQ+BV=|!E zP$T*~{a?sQ=tp;#O2ej7OWcg`f&&llhKsj(aq-y~`syqm{>exR3+u^sbyT-OEXqRC zf`DZZd7#HoCPBx;YufWl+4{b7B9Twcp~td<{uJ|G3?F%e`FcMo9jDMEMsuap$k@mz zN85YZ;aOOv$f9>+?-T5>k*T*#7?_8oYJ;Fi;~;BH_Yw068T7?neLH()Ip%aD=&O%2 zz34GHlE13wYaHpGs3PXJ>gTwWClm?xN{RoLoHQ3q2g1j;^TnRD={S=BaJT0yD4%UV z#dr`YKqiTS{ z+Uzp*TgnssP>H>Tw|Hq$N-od!vJ7Q!1B)DvyaQ!%>E<}=2(Ir1b)2Oa*elH6c@JH2 zd?$M4lc|Bnk0C8fPSK-oV>V64Vb$rBctx0@VBODQmBEhK#u+4k??$A?L}ArKLm8$9 z;s}2VZ}o#j@SVHX(HaEanuoJ1x?qjZb*D4&k0|<1>+z$P!(EwAKm1S0iT$mYvH93w z&WKT=D~id|oRDC%Eveu|=NmKf;sOmi{Xxnz6LIKQ0qR7P8l&7_8aAVP={u}`s=&Egx=|iS7q$nw{1Cifa{I3 z_c(0)ImPOAW1st>PMz`k9CR2_BG8HC2*4&YiC0O39SYlz6+J_pD5&QTzIHh^nx9<#tr9!ueqSZLBQoiy>=03pEUF%&rZ=_`WvsLSNRRcYfa6NrNPC4c8?7z+IVGwyzVI?XQbfU?c8|?=aqR4) z222og??)d%P9MMic@%Ltt|o6F*gypPd0v~iPptd&I)uqTE8^Gc*_Fnr=BpO5PQNH+ z=RYmHeq88}q=T)ge$zdAjQU?nPA(jcqX|QiI!Ui@-oqie^YD?1gtgVCfX}eo&{(}D zk+nvf0jACV(9&Ix^{1`FzrmsiNA~=GUL+4sE#&_1M^0?roHit+Y9s<`B2lQQIQS01 zUC;Amn@I>H_|0Dgo{9485T>6H0Ie}jGzOD2y-m+Rw&#r5-k7=_k3{y6MI5yQ~oj&n=Bw~ zA{#gVF7}#N+`7MRHZJauA|ih;w&q)0;r}P(r1o;i;pK>lY{}x2CxOzE^-s~N(!Um8 zdb_EwrO-_*2(1&He*C|YQ+@K$X!6NkGU$`^xIoG&yEuA5{vy{Trduf}xB`7$O3XV( zMi`yF1PW@(XTQP0>H<0-#xaJaI&SJPrqG>bNekg*mbjHBZORXE0kLhrlsDx&SDvOA zmx9?#y-eHZxl5OR<=@CjS1?1r9I0j+%eRkWn$_!UOXu>>fRsmKuV=8NWn5NF`HADi z;zF~$LdH3h{%OnL1ZR5HA{dNbNx5ZS-ZQqj#TiiYYE~@s96~o$_O9hVv`8`Qk()?r zTe{yTF}f?m`#Rvz{-I#~`OwVP7&|PqO5e)`Qg20F#k*E!(E7lyOxYtoM z5NCr59~1I*p@is;E<{{6j|Oz#Hn^(4Y&FdS{`_=@bc{I2OO*WJc1hqzyYpXKzuVz`5F?-$YN+htWi^w+lbgY-uBXw?(jba)MWJyy583FTiAVxJf zosKof(kF@Y)*O$qd4k`-OnxAKM-C=G9NS>gjvrjyQA8hJ>}XS@8eaZYAHtLZh9c>p z4X@R>=w1CFKJlEY;l(bbN|yEl8qA}3k3-*DL=s=@ATCTV2YvEQfey;(kpk8sK?GeG z&!-e<7J(%YSTDAuF_Uqn8y#-*{kq41!seO4R@)&F`fTK zFO;X&rTJ&9up;yN#)}hF#aeo1%_bAja$s_WGagD3m+(OOo5n;)GgC#+?4foc_j~{>GgC#+?4foc_j~{>GgC#+?3t7IVq~ zt%FnO6hSc=FNhzi2g@p|lAbksO^da)gqE)E_PUAu%%+BhCLFeDdE#hojndxLGd(?9 zkuxzeGSSlBSy$IoglVm)Ce$`GkByO=+WST(XXocU$l&VyG$kjAu(r0^($bz5 zO_-jXrEcw3R}n7$W<*gnpHk1(RidKQ)rs|eeYy+aYe`9gE59r>-Mq>!wL=1)m zblp1p$QhXWv5}@C7X;;Kv9ogmXs0Fmk$KzL5m-p~QeCNn$MiL3@M@T`Cwy?zB!6rg| z9?-GFF!~Lg}7f>?dphr8-?CGO3{(jUeK1eIyDo z!@3(^f?b_mttAq%t4N@v*xNtU)jPCBJzCyc1$u|IbxmtqN0Za5Ku@l&p|iS{P}k5z zJ)lfaulDx$b@lcEi%gT#vkfgxKxb}bY@)WVbAEYsWNa3w*)6ZF{#&o^Xl;uERPLtd zSErX(ftp=)Z50)mbvmGIQUBXDC$etX7MtAdZhT?K|9H)5&JYdEO0u1MFKv;f7P#E! zy*=OmuQjJq*-P_%h5xqZWH|LLJ76zL@t5fn8jy@n!15Q7!4fgpl1G%C_WO{hUBp&Ai26cMZuP(l$yQBV;B zA_Ag@BBG*(Doyjf=$K>9Io6nKeQWK#_TKBdqO&wD>FIjc5a-@P1YP7zD{ z^G)h@x;f95^);N|SP|>xdHZ8s@UF)JEmc=s+V7}mXM3(tmOJ;kJnzQYv}xa1|6JZ` z>uNLSaQH5+k8K=w^p*JD=ul>NWf)@(RZJ*!{~m1je&kBnWxdoSkMb95aE<9HDxAp4 z!9~suD{RJj8P~sh1&%dRqfd@yUG{O1BOQVkttpJD7bCxw^NADFC~q}^uNc;_e~I;_ zx%o3zr^Klj>1JB>&fBAK?(_CY*WKMAN@2*`_Gr7;QRB)dx)~V~(b&7x`<6tBTavq9 z&o>}!;Cd0{6}DkFwkWv9CUfc$;Ziw!1{|T5X(^0sXzIje>ripW@!m2%bvFW;kj9qAR!my;wh|k;s z#_@SXYpKvjfP)E>#@Cxqx=~@0-Pl{nB*myQeM#9mlBC6b#*sMAK+%+h2{td|iTGQ> zbgIQ0e~SHm?bD6xk^7~&NZFY^_Ne`znVVW|Wacwyw=Y#@IHH9-7Ed}NZW5RjG49m}Aujcc0To;ZU1$T^rPDFdG$-z!3#J|6S5 zFiQrub_3lNdgWekKWaCPHK1{HW3w10-AP)@WK9*wPsIm#$;-@$v0AAwf`c0#*i2_O z+%%cY9ZxmNi?&3sD^BImN zLrXQd7-#KCGK!qnLho1DY}f0Xda$cN4TXPYBg??+s|0FVD>p9^?@|b3*h|b$$FoD< z-a5%R=wc|Y=^*U!O=ZR^QAO~SHX6hu-?kOp~st!KMY`Xu5TOS!r z*IYg4)GceqJnW#MV&Vf6qY$El%eCBl&Fw_K8`yg*jc*bOT5R_rO(I0aiO{6{Pzik) zc|i(^#@P_kx;mLG5ylVs9Tybf!JpF3X3T zvL#c?`>u>4Crbnbl9`|mhwCLtB$Ol=v)2|>WWszb2%-o{a?;@r7P_a{Wl`Z5;IO{0csRm3Rzw>|Jn6>Jfk_f~YwSN)x#ED#9r!8Mmd|1I+rzDVYy2+NSE*J@$jqEv6MMTiMdCR+#Rz% za7iP_!Jo)?YRd!&5NnEK5FgAz$@2%U9y= z4Cdf*OSxWB{G;;n!{_{yWVHQe9&5SaH^_<(tvWZ;61cON`K)EgxOztTgrXyQcEIhO z`OBGB-j3B5zP7xxo{QKX`Mr#VSvPFAUxyd(UY;-iB=9Pss*RCSUbtkPv_k>iV%_&g z1?ubGyC0iq$q!LfWQ zY1rfSIfwvBHbKE2@n!-s18nmAc>?rv6U<7 zBH!y!=j2gHX*?bAx}T~xKOl$2JEO#RBUXmMAT1uGgiNP0(|<2v9R~5 zb#OZ59}_Lalpp zQ`HNa6TO%U4~)PLmW|_{J&PHV^sSkcrbNFjJP(&;HsTaWpE?&bCmR>#u>*Jsg}NAL zh}6~aJ^S>M1A3!FL31K_)!|mO(hU6jFfdk=;sfgU1uRrLiGuRuG#HA>o(CKpaqVA7PByNyd} zYSXmzP8z{9TARLC)-zg{866ZFy|fEFq1%4DZQn}M7(<0k2D;Hk%ow%5e17q;YT9uX z^&cN$0B9C)v%s3Y-~9LwZWi#d009Bw>`!hMD6@d}0OIUlTC)I}ec3kvpjn{I0&Dg! zq1nGwW=G~He?qfBnH>>~0caMmvOlfavO84(n*B7iV9f&W16Z>Fng!hKPivM_eGhQ6 zz?TKwEI?-g1@aS`1;i|XW&tq^pjkl7UN0^GsmuZs1VFPtm05tx0*@9v!Z@Ve8{sVX%K(zpn z2N+lYnE_M|psNC~15hA9iUorRus;CI0oV(`WB@?}c&a|GZcz^nyQ32;n+TwBWF0rv#xBmfElel4&8p zekijwoI}yeIe|e@Ka|-5*Cm#G?8xur$FX%-#vkNI=gog6Kc1tla;ASLKV}O_sxrhs z$d5f#?xMeu9~WY_`u`$7{sUzed>4Mx205oCsM{nLOsp5T=|)?BFK-hxy7fPMaR1#Y z$2f7>uq5q3^>F@ZvqN+Mgx9{TGAOnRpZBknSwMbpZROO+rT4Q#+8s=Gc*FKkDR$($ zPlhI*Us7dF!t7@r7lL7JIy8C(z2(n#o{@C8XBoY$ zlv778Wwg8_UBW)gadgO4&)U7{YtS>JM}6w1b$ZSxd!8Amhp^1w2YQT8d#tuB!@6eq zxz2b*>kDA#Jk}Msh3!qy7HEjnbea{fKC+ojUw3V{{J&6Uy%ZAT5sQYe@lKI?)LF>#d zmt)c=H&GEKsGfZY*Ysn;KnP(+|MYarG0#`CQx#l^8&>Ivu4BRdAv zC$Wv{Md1$C67`izi(8RrtJ4=lL+TEnGQyq+di(XyRO={4M<(#;8sY@Cje|iKw)5fA zjSV#vK~qHAIqBQeL1tGJ8iGs($|j>E#LG|X?bECC_5JH4h0XSI&b$O`s-er`W}?#Y zkr;S|3u3i1@g%wq_wJ4^B;})grw}?_R<>Nszu)e zL(?V_wIE;zJ5>P`iC!5uxbm=jkYH@+|1Uh|f0sXYlRPFFr`u9Vm6y3z^@I)pvF^7|w z+m(1>I+69ipv)d$MdLP6_ew`UG70nVPkPGKx$A*=a>jujm(;^a?(Ir`J)O)~Na;6C z8T>cO?Ed;B0f&@jn(Eu9+)0n35D_VTYYaP*W*|&MG-h&o)v=9;0|K0p0Qpb{xt<)m zvN*{=ONqkv6G9mAh~U*k+%^G{LP|uL8L%~wc6`$r7UEGS+LVkS%&aceK*G;PH^ryv zchjv`<3xl+`<2vmAv0KnoW8t!^=h9qJD)VOZic>MrqweAq+fdJA?KT+VQVW_AKRGq zXv&rsnCe}bwY@uQ=SM^)XT0;gIx5~?!pjD1vor}Xv~Azg-hl4VcbYdj0Gs;#IyOn@FnTELcJW- zJj7Cd!Z9;xBI!&jT$#v+fAE2SAROYJ-NG!17gz;z#S z(ie_8vZY{|`6!@+JT8Ol&fqqkA?OgW4@Bh5ecC&_d@X?FwZdtxWES7~}@IyFn1{@;6MC>s3K5%JsDFsnEG6Zw> zxzGwIN}R}AoLeSsajeg@Myi+@U@XF zW2j)&sq~G&qdkNxsmxQ`2iM@sI&<@a7$TXrmn?us%fEyddK4i0ayQQ6%!%+r{35ab zqS8K;IUa_`v%EK4er%vL!!6zW%vx~!{^KTVpU<7aPB3lC)?- zmZ<|f@7`Z#XAnm4N?dbQi!_%by1_`gOUmB0yth&+tD!u@WwF;W*;NWTDGGNkEK1v1 zt#(l6_V()AkuIe=&3ANt?<^j;V^Ej0IVd~Yxx%Nr;>279RhbiQ!HM0*i9g1npW~eR z2lB&JGt`KYnm#8ROGNmERc@wX!g*-5$Cc~)aL1PZw<)tR|9SFbL7CmoMMrV5xm?j2 zu6Qq3a-NGligk?7geW_Tc=c0r_x*3m~M*HJO5(NcEi4k2G{z%5AW&**Vk9q z_kXPK6KmivYk1?@(DRpF3MjH?vd@Ap_0y#N1El>&jrI?U_I}gDf7EDS_V@oINc;a^ zqXiW0;M@0rqW$z`6v(uIr3EG}0AK-2`;R6q0BHeB3qV@H(gKhcu(ZIW1sW}2X#q%E zdYc0R6-ZD(rUfi5NK-(g{mIh)$)p7!EnsQ?0BHeE`;R6q&}e_Mw7{VSAT4NDK&Aze z37E8h0%?Ip3k2Gq6fH1mflT{TqXiW09}X=*XaPkF1X|$G0*&@h4lQUQ|47j;IJA?~ zQ)6?0q7B``28jjq8&F(8KmzP4;ABD30URsfUO|@vt}G}_0H*~|EpT5S^!I|~1Hu(3 zIzWzHNHV7c3yy26?t<^iV}W)B8Wo5=p#1=%7DS*04>mI#ShAoSfjR|Z6$oGpCI~AN zlp#>0Kowg+VnIOa&jrZ`Ft(t0fi4AV5U5t5CjsPkA$rC30v#8$C{V~ig#uY

bf;kGcdU1AsCC#0} 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 !==J#~F^Mxamb1UoHOl*8fE6>>~u{1Y@NjKZ) zdPhFDdg#_1ZykPG{N~|Ou)Fo|O+(Yag~P4Gf4j$r(cwYIYlnZD51!N;*|)dxFRjjCWr~459j@d<1!)c_Tu8|;^O?u;ye@m&d#pRF0Sq# zY%|d>lkYO2FB8c#xi3>-%cuIiHZL?oj&P~iW{X({i^Ki|oxszQ}BOjiHjot8WHa!jYi`heGoM*9G| z2uuDow3N{iH=DApJa~Fl@0DG^3R6y4{qPc!s{N2PSMtlt=ngyb*tr)|9|-^9!T7;9 zp!WwpfpxDvrOL|dhbGmMRS+h zz~=Pbm5G(_HUEPL-(46PE`Clp-G3;HFo6!%?J0ZqiwZbu_^er16T&(6-2@o^%<8I9 zy6?~<8Le9P^}C|j-q53Ex9FsFx1|M}7A6k{z~rZ`UJA7$LL5^+wG!B3I5qP=;*lPNE$$-jsTMEF;^Ps)~aEWaj zz>)(JI?!ll0BVksyt$@n;UB_7=Bou2>K{@961YSp|Qb1@9 z)oy*zA*n;pj!m@_F|(2dmt#1ow0*qbczx%q@l*b*tO>d}qa;fZp?koINA3j-KB{aA zW_Jn)u!-OsA6zBPZ+;QF#wKaN#Y<-pZ^T0B7&9IS@kboif(^1FJ!k#K0AO?|)x{1t zgQg9#j#7D8Mf|58i5^9DhHUS7ThA7w^##|bRd?;o6z2@7Ee{14bPCn#J427uoVN~6e^wI>CBwhhyB}t+K1lIlky{Q zbsS)0qC*jiCSgx!NiQ^CF?RboA&o|oo@sk>b5|2P3XC8eWwaBdJ*q)DIvxIBrC{_l z^{oLJbsYW#xRn&fU=|r3acxk{ti0Nd9#;wY$3Yac%(;hUsAoOnoUkXczmmNO&H*%^ zN&8gwx^sv<;u=fv28vpRBtg)M!P58=f$=NxrZ_yrRTRNB4^7n zOQKknNeX@J08v`SII$=z*^fXzD+$1q&=O4k#epsS;+TRG+(Z)BaL*O}a_=!&g2W#X?GGWvSNcz)QklNE!xE)a# zg=KWcF24c%Eg%D^3Zlpht$=E_BosEA&u`b%QF@eUD5sf8PkDm7pl^At<2AYLsk8@- zk0uRMrbw`z1ZW9%tfm+|1^c7fQ!oa6A*ET;r&?LfXbMnqJLtyuWPPbF35gJydQ%D* z;;RnlY4dp*hbOSjNKnv7zj!Wxs(Oj}pji)AHV{2yF@zViUVMoAiKAtZ33$@&T zDPYatJu}tv7{qBl-^gzz-2NSQ@%v?PUALzOj$0+qf}!Rn>4Y!N{mQQt3DYl*M9p-! zX84KobD~!^IV4jyhNd@a-=GKXrFUr->=z{0RK75CYEyajE+XM%3ZTbgF%xahfUyD& z=$|YSZxLdPi|-W}bLPw1=PFu}YpWO12^|q~`;be4gQ{l!L27);yZRcR6<)ZNp5T`4 zxbXPt4!aMIe{$>GyfLSDstcnPAxk(fGihO+W)nC`_Vg`h?M@9zGP+Exe)3_5y_x_Q zJ34tbl` z$&S6V{Ed5^n6%d^SFPrR$M!y|_rFdH@0~;a+xvv&ctcIJnwJ#W?=rJ_lX<^)URG7*1-TZt)@)Q`lp5K!C+p0 zP5Jr0pEgkkL&Y4mm8RA!_W1|Hl{U4{9Q#%-H6DDePOGiDYW>S)>|ms>zxHK#-!G4U z|I2ClpFH?_0OZgc#^w30rs8_m#4(Bc`z=82`@Xf@uDP)-IvHG}M!1pxZ(JJqUK@!# zpME68v&?i_&X%qtY8pX*m`;nhN+UkK5pgns&2p=#< zS4V^8>EMU|w7-i`09wb&+p$WAOJ+>Ej-+v9Olkkb3A_U*9IvIFIkV#QrD5cK|IW*( zqhFq!jiaAzb~7to=T-E2-hb}jRsQVFs#y74ThcS}@#vv=*!9NA`YHmK5|AT{YAUO3 zlU-^V@|*HS1)h8os8$E&Hj5;3@%*>ba`rTI@jPR>`}Xl4eGdhIks~xn!5C2N^@_b5 zd@%BR^oK)TPn}{3FCVs;3+__*D?E0t_SKR2c_hj{!6vcg#4qv0rRJ^6tN*67fC@+a zU8}rYWRr-P{ZZ4`zkUDyE30h$xutHzSb1w3v-Uad-{9YtZSj`D2A)@k8*;B}zr^Oi8Ji))q8!Uh87yo%iF(E)O@ztm3-&7W+2Vp6fc!%Qs_q-MtO`d*^ zWBYv~S>2n{G~vu&4w4fkrOxXE<6FX6WXJ`%_*ADP*~O^Y@>3e`6HNS*it4T?`ri!Z z0ZzQ9Jc>vb9l80yDPhDUsd6t_EG(p2{a%gJy>}7!>hkV2)ZJ@hu5s?&qY0+8si$-} zrF@J?>B>v#sY~e{P3hlDp$n!Cs;4%OCJjfVCJhosD5>M4a;vxy<8P_6g7S#zAOwIo zmzNf;0$5cCXjG$guzIm3~r4KUgr${$PB>;8N&4$qTe%6`x$7VOi7JQY3EGY$V~YMnTqw9O5Zb2 z?`L9!vQ#v(RGqWVMP{ip9%N0(x@sn6HD;ieuB0f=3Ud=tuCHBgv>{>dxcCzh69_DcZk(&tfI7Br1OiVX2Ou;0j_5oM0fQ|w(BO|X8@<2-h$p^>t$KLM-ET~uzJML!Wv!C#c3LW7Bl9<2@(G!TG~zT+(NGd|Bd!$W2N zq=)jElpJ&RO|f?jU!Fg=A7U59pcqIz5{yMg@q({#7jsHsPeN%BJ|7m&Vn`NE_q`Ao z6bY8E@CiR05^OL%R-(xZKvv790lDx%Xh)Y z15{qHVQKgl(i`cSW(dgwl;>?Ikf@Kcuz+)Tm|;6Ie1j8&L6M4K*NQm{C6NWl%0fn_ z>4{B12%y}s8Xe-vazKT~0e~BT@^eY2P`(-oKHzI~4Kx;P?+HK>3SQL?P0piJ5&Pcb+yN}yhSdidu1%Nn!e3A|UOpDoLk&4JF zc{`{A5~{fI0*`}mvECiGIIF%30MdX7nb0h}`oxuT)&WQm4v-M<;*A5C;lbj?AQD9J zjw14&C)Y^~>XjmL6KuqwE6hDb%0#_H0Ie*rh%74Lfii^YdqKEsK{mx8Mv^rE4>Pak zJ{|HLh=BtC0S?hfNh-Ybp?4MzVM~)q7zA;tA_d2gK~ykwqpDZc_&R{oi=Zrt0Y++q zNLWC@TdoNQgfS9;<%J)tyb*hi#uLB==rWB`01yp`JOG6tq1>L;@fa3q^j*1DATXH) zXo=Lq!d75G_UBpr|tK1EOgf#r#c8c7xO_ZgBCS0auq zf105m9PS-ZD`G+gQIo4ry+e<5Yo$XV0D`c{J!E6MGr-A~ty(8F!5ZU4W&E6C=i@-MLemn5`76yuy4K)yU-fU$98XYEE-%a&S z*2y`gGa8&b`qJJeRY!O83V)jw5(MD9WDTP7ikpNExjM@zSia=k1QopSGO30X;MFzS zKFcT%Q|kE|C1D{rDYru;2n*-sZR~k7_Hqqn68}~65C13SPMz0EZnOE_lHY5iuXHrj zLKs&7?gRs4wD6oN4_8NLM(fFSG{6|o(G)$79z=v=V8(<-WU7;%B(gYD^xy5rt9%Xx zJ7$)IiH@cTaPHuW72l;|5a`qyor_Rh6StwK{oz@Z6!W;s1Fbqxn+v9&2>x-2#xMEA zJ5CK`YJtol70vMoXwHZ!Gf#)yO6>vDpi3}u3?j+JI17KKQ4(+fkj1njq;A1jaNyOm zh`i!nUp#DU1A?VBoOlhrN2`A?7S0^O6tK3hvft?Az^Inf9qV<-&%0_MwsG!9x>Eb~kZPzH1=F7& z2WD&KvBbe#a-34ozs`Tua;DC)>*$(qFt2|m%@=ynbG424ZXBTursw9PPhPtcxKB6BZmD>z;GQ9!Db+anS6@#3b)-`3mhdnK;l`>9SYREut zhe;JK#bxtP{} zG}1nO^45ratL(ekjlke9fp26-Uh?tRj>^6A$_W0x+rl64Kncd+5=vJPM#XNLn>Z9I zA^B~6-#}fo)A^&~{-DAX&!zKJ-0Dgy@r%^owqb1J#CPoVb}n4rxfHwO^k~QB!;ah3 zjt67MQ+(G;Z`bGYu3zk~|D)Y&A9jPLc5g6t@#24P>HQ74{5LH2Z^Wa&cRu{RJM}k) z@s}XJ7k4vuOnon)62y6RFE;`-U9p$j#i28|cX=6RfZk6v;{Xxkb6+Kf$$;}OQ*L0@ zAL$*GT|Ov}J*a$i@a)4u)zraD#=*}~0&93X`2_J# z`O?3JGn_hxgx;EjsV+997Qmya4cIUc_Hx6Cj-WQJ+5OT-WA*$qyG zSch|NQC(-`qwDmLjb{$0DqT6>AFqFinY?_+z=64xfjj`{Dl;k2V7PMgznm5pzSIAk z)52AvO%jl`a;i4VYJ!>~Uh1pQTtddY23PlHh2H_8^RN0fwm@5IiPlan3_H>=>FDK zdWmtmtox7cfZ?YPF-UR?chn&i4wL+hr)xM#?L1V1+%Z%O*T$;=bX7Z zIlg~;dBE2DsA7epuWEDr0;8WltIaQe&b!xBKTZ203iLWF5gGs@sU?Vyhq!ARg{@4w zdpb#W2)_|^QK}nRKl?wO7LkG~TC2*IAu2}t$138)hNo#(x|O=*3;hs6>2sT74PqsK z!U_GNI7C)r+|1}bdTab$>Q(AA@9dIP|G!Sl5%*vrDCs2d zp0rFd`qZvVH5MASogqhnHr$fLmP`sQ0l-d1U7{ykEbev5E(|OcstB-}7JVCaErx0B z_oiTWRs7{&Gvxo{w1|Xm54?mupP|UMX_%oHZ^-gU$X(pLn4>mA-^zOQXKS1&lHMwh zeMsrHhIDb2l3Avostlkw4F5*< zS(Vrn;$H{+Kb)3tcW?J={XM)*Hx!5t8MHiq6f*4K7#%v|8h#Wy>U}>t>__1HqpX|961C>9a7OPLqG5IvLusbd5@94Q zYnNo{p8a66}#or^PR3bpOruFBd4=(j!Ur5ek|>)U>#|3 zq1-;_xsUHj_k9bekM_B5%Y08=kF<1Kw7=gt?|UYC-_jH2kk>Blr<@vTT-BP`w~6@Z zQ1qwls?J)Z?cGI(NB`!p>K*Od5?~jK!7|GqS?|z)%G*fZHuN{#A1u9R^voidGzPjc zL%-N>b~EY(5gxS7saQ2F?%mu=vOXYIg%cN>66Qw zr@>wZX>->wN{n(lU`42Lrsg$Toc^I97pho63mZ)4=pq3G=@4;k0Jx2RSDZw}a*UUZ z#v=Lf+RH#K#Sn+v`^?#8h7%%-sd#yp3?QoO3-VK$`GG1YH85Rp>2Gn|ZnUS8)->NB zujkO-3h?a}9<#J*B4k6Mz9{>Xw9Dr-fo!izYE&X3L58#YAuCR>gd3Ou2D8nFTstw{ zdUJnZaML4`huf^`w(r09;YMEUsw@gx&+<^=^tRlE87_9+kWIDe))_cw%0ljDf!-S9|@vF^C|ILp;9b0?CO0mz@T(0u03eM0`RW zmw{@E|=ZQ)Unzp3kwq4KcW7tz;)uDXtmErz{s zKDv%ibRD0Q4X^Kuz7bO4I`PXdym8{_M#LxA$v@@c&1=y&?=HDc{W~2tOMU(!_U6sU zjH+`}c9&&WwxFUIXC7{l$mtg1AIK2bQc;@(C=jt=Jtwjh@k!@6n40J|FC`b*Z5^}4 z49S~$qF-yx+V$>vo#Eoyipaj}F}Dkr+?KSKBELi*-!6u`FB{6;83^R~bziJQ_5dGZ zsC1(#XXw-mshyRfl5bKjSuiO>u@$ruSDG>T=77powMz*Wa7&t$XyDbTv5Dibx=-%w zw=1G1)?&h&mfU|wEk#Wot?wFq>XQo^`h>RM<-D7%v`Tj|`Xc%vLT1xxk@vEHU_S?E z1o>z)?URT4@T6)*NvaMjx|IWfn~g5>*m-_6`jE;(&k3UcojH0g`>wmwHB-a^1%eouPEj9&1JlPM-agEY-rS*0&YZ(?$BYiAotwJegvUOwl;+12L%vxjv{o8&dR~*3PTM z9#)qaQyr&^0U>duRi3(+X7Rh9&lb{H!}CB^K4iTr^|Ud#lD`o;r9QaM$iy>FaoWhr zp>0PP4i5pZegF!d=0Y-lJT8kqr2m#hPgiX&(gLiv$9D2#TrhA|$eb%`G-RUg~kMBk2g!(M-WbXU(_^ix~5ydzJ?rUTqgIyHC?uIv-npVB*5pL_vB zF&8yXH+mjRX|J2NSX4F(C$~ASa)sgzJChnTgV-72s)mmQdx=U`Q@yCNU+k0BAX$v{ z*|NT+89_c?R&vB z??c3Yk}b%zFA!tY>i7e?cE`wa|I-xto)pyP_=BxsmT;u0^fbXZ_BW)8lZ#NQDYDYqt_acYC-}4xlRr|2lt0t+1*qBGHYZH&#^=3qz?Gl3>A=> zeJ^4;>XYh}m2svQDKEZZUYu>Z&V2qYWo@qoP7MAk zvqkmcGZ=vq$q9 zi#OXmF}JKZv<)Sgk?KAfUmu#)u-hVc^NE?t`qM97>{L`s9mqBjT^N>0l}~zWOF}rz z|ENoJ?nzZ18EmzQ0`xJO;A%1h(XS01wLY)0bqr|G9e0v~@t^OSeG$B<@px5z`ikws zA>8__y+^8zUMKw@+wd9b5$~K43H?ihudN|!Uz?@r5q)-%FD_kUF9csVaZ0r?p$^`3 z&&My+1vd{5Rob~vT)5;eAMYZPM!GwjwLSM$Ikr-nuQ@){KPdkB~ zk%#W1uBX@&n+Ia2A-e9}#%l5jS*Bc;gN*?{UJs~t_d1c0my!zYB$d^ZLmQsIaOj;; z4Xf)r8%iQa4)dAtClxpo*GyG zj`%d`hYKO}LiQ8HtlN+0eHM&!YVPFrv9~&X{Wb1ig58F@F6!hsKd+srPZ4fZn~XgY z?SFxY1dNOxx*_?_AR=p~-N%v~#>e^|)^u2Zgy2eiCsO0w-@O>0(kWm zzAm+=Ji2Sz{da~(`&?Fhorb!G^LEC_2;xlFOS73o6hV=kmn|Uj^h91Z1TQRsCB>=} zLhD$C&;+SH0dWE#gAlh{E2^ackMb98g$#cuKdi_ALQJNiU1wM|2y-fkTTVcP4S#sv zw3Hb^_$U#JAWEqNAk&_b96%v?D$H-Z)b3KKnS0`Pe~XWMM`)bjyEEL!a99GNv+IhW zdfW-LzPJs+Cj-uq$jb&-ldBLcGUcyw)j<-)m%w47w4J0V+z;n9_o^JYQtk{=Fe8?b z2+Pd~aRLff5+Qj!;_JWy^EoLeBD*dHiU(KC#X$)`8NcrztVOVuR79=aP}z?W-&CIB zIB?~Cj1w^a0Rb~wjrvZ3?GkdAi5GPNoKAo+1li37Ach4;b^+}6;luXiP&!d2&UOM--`nK0&^WNh_T;Zs-beEB_%y`qAMO57zu)pt3XR=cf0mcFDs`d@+_l+dP zG2GS(ngGA>gsWisGrSE!#hc*wuAoM`ab|ub0QRj4xqQ;w_r@`tw~I_JTA)i_MPQcP z7nLr<{74AETpJ=r9mI?C<8<+ zmJP4BTg<)&plSp=Y=giv4Jz3Mg1ZQw@A#~-#JJOi(RHMtok23Sz0ikUu^aP(JFYS; zARNO>qR+Dot#Eh>zVb`2M*Yh0f{P;na+KvtUGD+&-bU@-sA-V<#fyYot}t~1pco#B zCsjzkL3IP}MzCAwCRUxJw63opF+s0o19g=Hg*@S6biYUhP*8B?@dI;4^h?S&rGA%Q zchee{{!5TgyDxlZ;Br{*=N=iu$B7(tptgKa7~+>GjRLMDlJ^ru>A=N7vJ_yE`*jQy=t=4#0@R7$ zuq5_-TXV*VjVZ1)D&75S{u6%w2;M9d7O1?LaRNcmL;zmI5isfm2m%0B2eKi+2s%aT zZ$@+_iSN5&1cAsxV3|1m@cnKpU#?%^{P(Op!kw1n+)AWkJ%E1$V01r`Z-W3{CIaX{ zv-{f|>TeHK3}nA-vzl+7fjgCtKWHC@PkK9O19i4vmvyw;f=I11M6u#%6;1_?3I%$JoNmEc{3F*4QCp3*9ZR|-^ z@60X}S)53`=l7Wf8frN5%i>Jl%R*ki^Nu@iQwWoPqItdcgH`!HT;CJoPhWWxGo)k zh9i+Lk09>1TEk3;jCf7_5|TpmL{O9)uSP^+R)*+*VzG|8ukxh;nRUe9PwevhCadM5 z*xBg7)0HZ_8^3?S$ZE_F>6Z$P*k7Kl{eM(i{wx~09 z%TqKs+z!5d&Gkxf|bR`+W(fE4S-wut9O zLmJimkCiuyl{+5tsDNmm?-`W|Q=)8l4_&!nZ7eVi&&;pa_Ei>pALg&Wh1*{Ctwi%! zK*a7ym`E@R{F_F*{>seHE>s`VCbDhLXObWG6Oy_X% zYFZK6^wjEjx^jTUjMjK9St0_&ne4Jtt^}_vu%4jwGpm?rCd(x`%f?7fmninu5{&Y|UUJfD)O2Ezh5aZ6N%7x>GY~;V;K=h)@SRR z|E|ex&_#1J=g|Wb;eiSZ{e?mk6}R;b0#l%Gvw^ADjIGKhicGji2M5~bbLxg};l}NY zm*&(X)TAy_YO}T7PMrGEvyvAwpef;SzmEP3(|C!rLYw0dlWhfeNxFP#jx74h)g5W? zrVwD{#HRg38sVn>rl{i6HEfQIyYtAE`6twtNw5|m@6Kc{J-hTnhq+V8gZ&ueAW>68A-OWQ|=#WN=F zKR~(PWc;v4i^ZC}HBcVR$W`SYE(?3W+$dz_ad$&*m+7M*do{5g*%~LKmZ}W4L60hD;cxXP`pTAhs3riHt33jp;?H9SymL1uDu^CrrJCKix z()bcR!XdWPUOcm9syW`B^=POdS%*?)HO9qy4;C#?{U~@c&}#wpvDZbPJ=>15r4X6R z^-T{wfBr^)`s3V!9z6u;v-HpOVq48CKySsN2ZJ@`DcK4kFHP-3`c-3K-Y#px5meo6 z`)t+dr`BMWFNS=WJ1u3C4)?qD$YItb;{ozlwoEmkL2ZRObB}TA+r<&{>ZgF!pTFBI z7#2}o7DcP{L_;?F;rqL<%C*&=vwyhuEz$2)Jg`reyFSUWnfqO}R_D*#Aq@_Q(%L9N z?lPE`Qw!XM@3rP|pvYVQ@1J3cN&gC-agJUaE_JHmf&rg+vNwL$2d5gDt| z%uJajJE1br-)`C4s#-Tsa$P&@?=hFE!cVege%$OnpFq1(zT(Aan&a6Ycf`(5rI*y)3`-Zyh`f5~z2E0=jcDhAzj|jlE0cI?JPWkOH2F=e>hH0g1r^ZXfBdBx z@Ml-BFftke5-2`sQ>t`s&bf%WVx6BtoKWPR0%2*3`XrMXX%p-L+h}P67VP zncR(W++?^9SEl>yML#j2(R1-lFZks!p5x|)b03~0I^6O>2l;)i6R^(Xh&(|Q-NKQP zDu5eu^Vkm~W5Mxypy6)`WRwcd@k6~+t6ZaE=)2UA0NcQyFa2Dn#O>JXTE!3_o1_yj zPKp)qolK92a*GP$--ViTK)<@pPtN*TaXyKeO1I^cBH-gb9Vxy0XOmy_dUoI7<9k<- zR=pZW;@&_!jnI77lUKJm<(KT<`uWQ~;{JMnV?t4=G|uFS^%>2n!|Vl5 zgPn>BCwJVD6#YK_2?2|;sr$bL7rbJdWi0K2*gTszABwQK?C9A1yU z_nYVf&U~m%HDo*?vAF^CMhzK4Q&4(4z?K(|i6_{o8%VFZs$Y6y0Dt+Kp2`P$u_;pH5Gp( z^7xcUb-f$ct~2u3G^l8(HKBsk;>{Km}_blCG=D#b~9_L|~bbw_zbI@v#Bf!=xD zmJkCTUL*+D=~6}Fte!I70BdxB_0VaYbW#@0P@B*_xJQuOqsd51f%X8Zl16fw?YTSc zx&>b5o@DuJ_x>iCz`1e^#Vmk+SdI&vL(-CTbq zojsaZ0g9QHtW5)-eMnY(c27qMgcd9-r5Y+4c{%Ucs58rHH%KDb6K2( zcF0{y$4OAD%uw4u&g}G@ZG?$-o||$xSjXv+X^58|#ag|Lq<5HdehZ8?D%IXLJQhRv z1KUns6W@jK`NV*CgnxU^`(WeLS(DisZ>%t}`!n z{_=);<0}rxJ6-m;n%mjH=6IbToY%oqH zi%?yM_L;}vd8bjst9x^p9#M^m9%Chgs}N?d3RnaCNP5tROV;}aX!3J*d+t|h1KBzA zJ;LpoY?eoo z#U3TIUJmRNf_!xjkQ{ZYc4HNS1bRS-UWDMPWqBn7S>9!NT7YGNKf2nGr%E17hU9qx zDEyUdPD^@d0_lys2||(Atxd8T4959$-pJS~YljYd40>X<5_}RSpNigPg^mBD@&^zl zu@&VrPBHS&3>!d5+7rnrdH)tBFTB`3@Jqka1I3YOg$ zZIm-TufCClWiv?5R8RDtf4PxDy1`EwED*FEK1uM%v!b)#sWC4?ZOd%0XX;N!s$hz*>Q z^e6~uE79PVAGRz*l@{o-EL1%GtlUtwqs{kYfNAaGV+f%T=w$h!OnNp_F$Pd3g?TYQ7{42SUV z$ILG2kDZe8H|)v`^?0j*oUcq&t2lY9AIt-I5ATn&TKnf@*t_sPDai%$Ar~Y91H%}V zB2BYX$A;6#h5aon|F)Dmx4_n@73efjz>UzgrBr8Tj$Z=X>9(3b`}mI~@+?VseyBkn(R2UtIAdz!~j61Yi=+f&Ro8Y2bm|Hs0GsENYJ@|11(joD8UTjOlT1E_7Tx zI{Cp4&SSUGm}}{}*&bFRQ$?%btyUe8@8$#x=H6frK&0OzvIbVFaxc`ct*+Tf604m4 z1{}CWdfU_LMiZu}oVwr8+UP+Be=aih!pe66z@7jBC9&l@WzVlc0yR&Y+#-r78N4Yf zdR~gUO_*PijWhVN{%F=$vjFfdK-xR#l~d@M={$vr>-QfXU)p~&KDPIkr;ccYZFN)i z*Td^qqEwezKW?rW`an9nYiE8=fb`trTI{5LJq&uY9>~!o`TCsDFIM2tEJ>8p&HRu4 zuTxWc|7b>0WX^FA4k6E52g#8HXuC|A|5e?U+1}&}bqjg&J2%v^fdSlZb&ovi#VB^Y zYWPQ%i530uCr)o`?6kU19;7@zJz=a$%*j0y z=y#6|b0QgNEvL#9jbyB!apx%^(XY4mK$inFOD#!eA}Pw zv*hnnEp3Jeen>Dvm;IXZO@97PK`XmT)9II6R+uvx%&)4SDw#%2`#8}0bE>3>nYCrv z4pCEy=+>>#o+dsnf5%+&WbwS(2vZZtu9cqk^6`YMtjH%OGX5U`dO(H0UfW^NeqLLz zrKuqfPRYJR2ITk2`amh{HA}NYhLbY_@Ile8#?ql)1pLQXEVfQJXcNH1e_S|R^JwlK zAGs-vycsieqqR=$cp654;HGaYUV?J7_$5dUUmkQD{(~a80X{GXi$Ac0p1|5dFqcpF zmzS;MqJvR~#5$li))6^VpO0kW+ID4tj>J~^db*nmE;>L#nL~leX(X7KDg!vGyy>ps zPI^ar_vt}vAn3%I$TY4CC?Y$-1%RFYDN3Y*q-hW+=UIeaW~dCL!gO*lKJGP4qyrRS zr9ANBc58$z<8*6!B*tihsb0b;APq+N9b**ro=T|TCPLZDuDp)_20ROmB?BEAy;oiH z+eJ|IzfJXI$b$pJ`fFoA1pLDyXg1KCz>6Y)Hp9BSsD?@WL&E+h6s#}P1Om|Rx=yV5 zuk#n{<@E89WK7YyLEO2ZYvi`UL_D|wU0VB1>*aMC`srbSNP4gyAH*&118^$3MmVnP zS!w*a_an&~$7Zq`1PUh)k0*ENr?WE$@3mI5Lxa+cVXyuQ>R9t`u`|ckL7jR&~d|_fl5U!_S#f0zqv+@#zOrMGU@`bm^ zi3|k%c=i-|f@g-1LxpJK;+7p0axTB};UmvrItHQGx{c~1)5MCPeO&t26ak(~GX9MM zEzdYgc8f5uBrMYxo5pGEL?ugWkq}M*k)Kx2WmU9O>LlP4v&+Iw%O_ z(Q|{~MBPOUFy!^Y_AI`H$UvSZ+(MuO8GN8C9Z{}xrzv+7n~=f^W7@|ab@b`WLcrM3 zX9^@>Qe&~iK!w_RD=r@naqFM!zH@^`m%8i_)5EdDd~`A3=xX=MrU; zb)qLH1MyX!bc6`R4F=qShk{t;Lh?O4#`Dkl5h|L|bII8b;^4&F8e%2f_j`#8*oNOli* zglI%1;t;Fm<%ZPtMIH=zk>S`ukHop5XF}+QJA&2^q9uzsh;vu(A_q6%Il%|jastwv zkckYwh8+y(8rdASh{k)Bz{E0NimUCLt- z$$TSPiit8hOr~wVv`jq{>9R$jB~6!Vi9Yn<4t@M%L;M(~IbEX4$yC!PJc%bv*s)Ga z9kQPMKvkvc_Q@my6J@8Oh&;&A0im!%ONR_6HZ{c|c4Ur$oa@OwAo!2Suq}>1JSPbQ zO3hWaO?A0sq=W?j3Cg1G3o(XNB}U`Pmt3OEGVeTOd0GMw#3YeJNwj3F7#YZ(qHLm; zxoS(oaaDvWOeXcbr%T*{DwzOtp@~uCAhCBIG=7Deh}tGgD+JTMTIiKE{RfHW=*L+S zrbV5pCs+p=t4bXb9-`{zA{W{=c+A78EJ{;2=zz|m$|I0uRi*00smwz%60t4Hd2#9H!!g zA4?lsP*R4DSk*3anW<9~9oM_sy)JlFMOvI7UW9-F!-==K z6?$Vl>;csOlZi@YEOVKDv-(~2V$i_HMKFH3+g=63ce{l_u1+VMUO287pAW`x^q$ia z`6%lGNQtGT0-E2J7G@uSsH{v~;yDo+;ijX58CKIfI`(cCz8Qw_jSrk-_u}}#U!5?9 zcg)Zqvo{=xlL}9IYGMm1(5xe4q+khKUBtd5R_*;UhjDsj8aG(M=~b_HL;06YjTyo= zR$YSAOyM)r_{^3lRD6TM5(3jguUD6vs_D%{d8Ylhm<38Fci~ zkADFFqSdkPY~}7jhbg>79IwV^uI)%{Sr2=`CdBoz2eS`9r;OQh#3K^+IM_j(*w`kE z_O{KeZEj!49>>gfxuE?LmgV%+v;OwF4K3_#TS|eu-n2XXfdp}gLv)WGw!1AfZg%$> zi2n}Eo~8UiVDnp!{@%2}^Lsgl7X}@j;KxB9o~h?rA-eyVF1nMeaD`XA*!uo=<}|I} z=f)({A6FHqR1Wfni~QX_*+(bTQSMK%gQiGe1QS@@afC3%=;+P^IibO7R&iVw`6tF3m% zhum_K*L-vN8)dd%J&)i7{NXdddDHV1-ksoL<@CXhdPg_kqvvj{W)nA29sN(yCANSc>id z5CP$D=HLPJI49?#tLF@`{G2ZV7f$hVuYr8+;N;H&yDk3QuL3#l--=H|o=;T&sBQT~ z5dFBRuzauG+>5|u@A_cS&;-iU$ga{@&gQJI_6`vKJ`e<#tBzE#!`v^YNb3m2F5%?v z{#cG3$id$5jRO&gTxgH}_6@r{P6eZG3cZXA3GCR^Ptn*FGQ5nfg345%-oRP>P>=`R;7_U*y zgpvDFEb@de{{#))9PY}PPMaXH4AF7N$_x})F~fv#7&WYPMsdiXF~VptwH|WK4(J&- zEK_iB`gD*0*$@<8?ahu6=8SR61}Yg_ks&EE%o^+-FR~nQu|*Dw9Ze)9=g}c$Q0_MA z)b0TaAy6M-vLPL;$bxVR(X7L8tQa+H9i5UHaqpOu~WpbQwT5V z+Ha-c5gsei93v7T^Rc@Ou@9#*4sntZF>)U5%nQHF5ebqZQ*sFZBd!F6PwVt>o9wb3 zn=uxXF&F#7CVT9{oY5f>&cOz3G6-tODlrvvaU#VFGIdNJ2Eod7A@tVIFoeVXfp|lFMtz>TtYHchcglC zjlxmKE-~GTj{#4O-Y`xIk+KjaF}r}w8e0jgBy%wnOoBYqDCH3=VL~`nM>r+SAb<11 z@TogLDmKZH24yo4Eu^Zim?(2 zDyArrCXZ7aPM=3F6_p zcme?!#s@-zFkEygFH`UMVn!t(0S-YF^x+D;bQ#?<2Z9tiXLB;p;Q}J*jb?QJZZc7` zR37LcNE1K>+EX9eAWSbH3nujfo}ef{-~xi+36vBjYP1ao!BBIc!qh7jth6y_O+%aT z=6+H9h7y#VAWmf>16D(w)?!5iicib(B)!WWJmCiaZr}-SKuOtBHR(tN@M#b(Kn29p zB}Cx~3<$i=RCO%j0!X9{BtQb%fW!Dg1#Uo0$@CvA;Sf0WAErQBdsH_|6eWh7b+N=QF+Si41Qh@x z=?Wb!hn{2Ei4aG zFraqC*dZgT7AEXt9rz#v*2aM^vLvQyE?c4rAmAm$)gq%u0oeEhU6G1OEOIcEng z4=p7l9;h~=65>33ARRQ}SfF5??4hcBU>$NGYVlzoh?N{H2zmtKsup1#79nn20sx4h zdG&z~*!c#=z?$dFB|y5GC07L`7ew;FngO>ZM4_8ya|#S0cm*H`npXurAdj>9pqZ3y zfOwh{;|{cWgMETu_qm$?>EH?al{5d?qVI{G5%msKb`Us03{(IQNZ<^5SOL7?9})ln ztXb{;RUSm3jy+ca7YI5XQ~o|b`)IvoT_IEYyhe8LjmBA3l19gO)OdigC{ zf(u3}DLi6FXh(c~;&+3$Uaz@D&e{@eGo0^9AGq0@gHr-X_@L+@xxExbu6aWW`k<*9 zwf}*GuhrMMnQbJOF!Uh-*x-HX*PbOn4OEt(reF{VnGOcw4oCp4iJ%Q4$q7Ed3lv~e zl8!Q_K%3=Z5YBq7&{G~hfCxyWBtOL~Go@hv0Y4Acz2c!GS{Yu7nH*Ba4Rk3yKufiw zR>FCL3xK*M@L;6>%%rG~+9f_9a+_BkL_rj+nM}hObMZEKarOaJz!J*(ANYDniNLuJ z8ihCHpPd`3E z3&eRdG1;2yX{-Ms3Zfeoj=cOnAPAULq_Zi-9O(I;3kmYj+O|*#^pp$6BR@s~0|*!o z#-a%Vp++#EVWi?WFrdEH1PU;~H-`{F45(QFnE2EO;Rbj+0qFMvh#&#ndvd4w1r#86x!NUw_a6iR zIe(XhZ(tIv{R#9z07$@HUm&6{;03x}Z{IvHFvPXajuXwzG<#DX?1aM)q6scw6wrko z*coa9p4AT4FWq1&- zfC$7u1Qft`9R7KHveefDM8m3pin-0iX~}T>!EG)`Q>%$aFK+APNd04{AILIN={Sx!I4N2sk$* z^?~dE-E`rclS2{w9>Py3k+LuB#3ddAKP~`Y2$&uOozR7=Y^3Hls%K5=%ZW1H&p{(< zED?4M?C3;C*|;ooR1i`RRWYW0Yn`D27%^- zAnw80Z?t1Lmss}fYG*i*hyEcdEKh9mGhKoJb(9}N8^wrJ2FJ`ns|A#&hM z5j_w90>dQ+{A6Gdg5ku!9Bu*$StO60ye2Qy{3D{z2?+^eB;1hjVu!qc^5lIGLx-gQ zK79!k$h$D;QpchXMq=(lOD*Slf2cwau8BdTQAR3ZM4knK~i&>$DVoExBr4Ogc;{*fj#KQ$U zu)T%>KRyJ)4sNgg;{-cC{6-E2_$=av4{pZx&j}Z3qGy;==|kNUZNMYX4LeMd2ZlpH zki{ebi1CjAL=5p0eF8|3#~>0!@zYm&O(IxH3OsPt9RN%+hyW5^5d$Z410Xs7$kPp+Omf2$ z{*5Hn2Snr{*prrlyAJ~4U}>(B_xOW^IO2ey7aNZ9EE0qlB3vMW1a#nWqN98Dc%BNE+6TZCVsJXe zQY(#=fF5E%g`ogY={QLg;|V~6d7Dl`geU);0l*nrsQ>|BeJv${e;(3t$3KY4<8mGV zG%bbz+$xY*0-XLeNK`C2ffWfVEH$1y*g>E|Ng!_vz#WMZCRh+0f?IC8uZiaOV&k|I zGb7?yaiwENYPpEMUY6t9KN$RThZ|;IlBNt|9_)i6@^InCa8RWGb7z>(@$(!P5fR2B zCst{6Mxr+iq6Z08kHl19f{AbyN$&A3=>_Lu8-)aFyr94!FbdG=PcQtWcB=GA<)I~a z92Ql9d3*pt6g0R9D5Mt%fE|7}JaEMzVo0cl1Uv>I!XTWim4_i5s$l;RYCDQnsP)S8 z7ykrKar+1j!Ul-I1X@NN|3Cs0nDCD(S*bEn;t2wdBM*KgLIzHl+-wpN2!8xSVtMk? zB67gN*tlbK?2v<(GKc{@oWM&Y!5chKM1mcNC4Ff5#|5rHAO#5E20`cv5$K=~M+tyO zA6SnB6tJvZEoF&nQ$Y|c(u5$SL@G9E&kMd%AT{LYSzl5AfP}yzp#-pjCkX(6O_q2O z72H5X`gj7T5)i4idFTNC}97a9_LKp${)n*`971rm_zSKbQE3#Jf-8&HOCM>^8E zkmL?_J!y4m=>wJSh8Yo_fH-zCQwn_m8+g$k-zslnI<-_~8%4F$P?UgW*5_c3D6=oInN!K_wJuGm71$qa-u@ zM>s~x0O+tVm(j7M3>k1FOArAL06@waGSWkR=nW1$ii$h*Mi>}p26Gv?8uo{bM}y@sE4*KnEgZA#GO~)echfkFE$tL^XP+JX(Ug zND1HqF>;%saI_S+U8$1t2tuuDIKX{OG%5*n2jP&wfy4Dqla_Rc8+3yKA4F+`B^_A7 z7I6u3lq8qB8L8xI359sbgQhU#!VD$CH;T|jNwB?Q2-rYAOICa;dvLy z3GaHslR;>02PBw6Sudcs+M!23EQ07iZlJ1l7U&L$8p92U@Q+AF#f<-G31!-76E~`0 zS;hPZewnqQJj|so1d34&)0%@wNs=c-KoL_mGzbOYQ6JZXIw3m&}0>WH1WpT%y6n@oY*n8xht2uwxWL@ImS%7p63aI5w{wjXp9-8K7{hR>$0l z)zR!FX1(9V_cY)GDc=+r(8b1Ws^bfZ#_({ic|E zkOK*iG4e)7duTLqX%vhu#cXOr;gU!i!;Izv#45&G*eIgYQn5r3vJjd`{REwEYco+3 z;|{WA?~5xD0r`|vPZ~YIC+*!I4*r)h$H}@ zxjsaY1ZDkd&SL(+B!WOy#@^unI^#C=mILFSn2khlD=Bfg2{YC)FgAhdT34Sn;|>BL z!ElHp@x4c5XhfGJ1B=#@57zMycO)XEsT~OiCoP0@Y?vOlB*#Bo7-A^UgW;rMks8DW zC~pmd2xzlneGBB1m7GD4tV0Q9HWa>VtKbYuTdO|EyZ9Y^V8)y%t32A!zmjCdJWB~o z&v_z%rXc15#S#M%U|cr)KwGF#Im=j~0;n5^YtZ_Tz!;c42dB~sxieLu@2_SNF=L0t5qyTp?a+9zFJ7E((VJO;#ZOL;6Cz2}(;5B0~ za(4g$5p)C3(|jfY0X|NJLVl=JCW(MK48Q;gzy%oKCHH4BJYj$M=XU*v0sr?)rxyg-_76Ld z0L3>TEHMUO!68||DOYd>Zo>xSu>;=GVv~R&-jxK|BpB~Sf?2=`G$2l?_H&1D5yB?` zq~afs!V^KT1BW;Na#a=tcMviNbpu1723woP!!p$=0(Z%|@yP$Crw00kGIS?q9V?68Ii zZ~cxn!GTlo*FqgoF?N^^nZ<`CbR^bwHAC_N9w;Js5sV)Y9v=V)kV1n~U?{U? zKW-xrG;$Sb#uHBvkPYYsJHcwOCsZQ92`ZofN+TpM;5su0HF(o`@*pY7NCeDd6jQJR zP&SOO@&a_Qc;`hKXYevVH3i)>2_R{cL0}eU!&foWD?SmDG)M;-cV5Rql8^Q_6asyjr5>Pf}72!}(hERGF1?Zz8u=fxA<9exw zHCmyPTCpDFvjvP2duK2*Qy>cDbs$f5gth}fG;jt}Kmwc+1elUY$+H(Y2mqKs0%I@< zjOZvxSw@z?l;LPmd}DpZ891Eb83Q&Nm?0RKzz@yo5Kur4a3>`e6bKH%0JG!+4Z#3` z;4dct1wx<>&v6NXpjxrCoOi%iK|lmgFa=S83Yw`8SKtzTQAAH*A6M`KS71f3h;1+M z79ueJZun_ML_kD?^js2<012>tO5!4Ep$G|J2`mx>rdC@e;RL+%1Zy-QXmd^#dI2ND zo(ZsCY9L-gfJal10Qf*iH;@GqfDhnON5bPg?1>n7lokna7sc`fbrEN8@d6)^15l7T zSa1P+;Dr>#XX;j+JmE=$=9F2P1A&l9pA!glcnMsv4sPHMd;nqyP@e0jIa=Znmp~7B z5}v4o0fBG{q=Q1!cL&ckqIU5Fdm|_dK?EQ=2v^VoBas96NuMMUs5%h@A7Kf=Br;c_ zpB}+G^jQ*6&;ni|053xW$-_m1ApsTY9V}80`XCBKpaOT00C|c$FCqalk_Sfd7Hgyb zpX>=XV3DWQu`CzRqlKCWOrru@LkCY#hzcM{QJN$Z#14w34o!NEf}siIpivPeoOrfc z&N&iX00nL!1h<3$Xwn2URITDSrfx70mw*6ONQe9|q?gd9Rj4_mVF~qwBUeyf01%rs zvJ!`or$K-RY9In{@dR{`1wiT@e==u+RY&|`p9$bC-7yk@+OKjU046FVb7oLWaRYyH zTcKeT28tblC=cqD8*Kofpc;`0&;(H-EpI^t3IVU|Nfh}Z3Zubnd3pnRAOTlk2`9om zqEH}Gr$EFSm4V|}-bi+n)ltNG0%-CN>_84sa0xED7dtz5Ag|8i6036sXoIf+DzEO407Ucx%qSK_)RHM7 zE)vkAfB_U0dIhgy7B>3;^-v&71+2kJoW=>eNdjO<@CXpZ3Cnqn?f`d{;aI&}5_A9& zRT?FP5+&hKo$dgJgh3N`U@?gCY z_ZY_NSZQGiA_OJwKq$m}6;k3h_`nYm@oC;m8Tv53Byp&2V`6`@TIdx275GpOfMaf> z0S^%d4~#_zz&R2XRY}abq}vE!f%Zw4$mnS?9jePA`udyzS6-C;lK`=fK zyCo4FCd^UtKs7Ns5{^Y0@aqovV8Z+WzY1KX?$9LgfB^cSy)LU5mJng0v6MIxb{sMY zYJhp8p*JPr4)q`-4s2i2dk66A!gqrYz*$k>8)3?O2MJsf?zX@fr!k3PScEp5NWyM} zvW{wo>yD~h+#LK=kT&3oQL{cHhbbt@;E53wc zHq)CJ>>$7P<-*J9!Zk$1mwd!gvVHi_B#A-DkQ}}VD?Cwg2QWPUeW7AKfk7Eaq!Ro< z2k@Z1I(EpyYry+^KxGq=afU}@*e+eyvwrilki`gPm!#t8B!V2n>#)ZV$w}fXC2*y? zB@8aI48@1a6Cwm#C9w`zY&K0|SGWu=gHR9s;b{$ezfocd-Gmyp{5_jOtZUbtbRuW%K67bNegki+)D<#%@H~8zv_uI}^GBYb7XAIT4nK6B_i_w_D zK%Sv}xO*mqQ{J@r+ZZQ49BJHe%#S?T;SLW8u zCT-FzO?_84)9_}jf~LkOot2o((gH*pRNY+vFSQ6laC)0S-0mNXg&6Vr0z7x;N3 zP7tt^l+{=b)LZS-J^j>H^AEG8UwyMA+PKF5pbivZky4;%@~~FK+0L! z7JV*5?X2~NXUZJD--6T8$E<{nCBFUA8moE&M+`p$IUX%y{k7#|nt*Gl38fRMm%JQ8tS*Z<>`=S|%w-PBlT+ic9NgN4+uYuFldCDCEQWPQ^v?b0*7 z*HbOxqg~yqoo=>`;COR|6|EUvr{kAV%pAZ3$n4$~ZR0Xs!1ry_F>czwG}yWwQFrhG zK7hs14cO^G&PHC?gI(68ebMIKAGFYX<&EAwF5K1!U{)Yt5p>{-WCODVOYTtJm@6t;R_z(T)toZJ>#gI z0PecAI{R54&!)^>xuK|2X4WFZR6$L-wy?qm~9!w%-Le@*}@*!Mz-sBedN9F*DPM` z)4trt4&2zD;R@9`fG z^8J1|n$SRLe!D48^;^&NLeJ>%Ho=MxrAgoQ zWncE#2nZyc>fQK_a^CV}uWlCg_C~Mlm)%&8Rh5X-*=Eo8eV_2_?)Qsf@*S=9fp7SM zFIWK13|zK^1{#goW>;X;ND9X^B@QQ}036)j#Q zC{Le3c^KufGuX$98hryXoCCMm-FcaI#Be?|&+#Od;-(1|f6 z8YP+%>Cu(@5QHmvlAXILNH{RD@(*ZIu3f!;1$z_d(y(EXFk!Mp%|Nnc-M)nzwk?17&73*3oA>$Y`Lkue^D>qrHX`6 zzN{NFOGceq^+T93?S%um8uDp^i?t+IXp1|D`?-k-FCA4eWmAiH>+V_S@= z&L3_gATlP$p8c;pr*zo=8BZwh9-YSjMwSGxUH$r#2CImM{^TMv z!sjo*0GHc`GXQ_84UeHvFiwsd+-WQK8B>T z0xh*1{IEqAT@oiNtvYGA?YCJ15s=g)ckWTpvAyU_7*_5&frnznj71hJ4lDlF zPj!|R&?wxroYB_SR$f_UmS1-H<(BP|8D^Smp1Dq(b7pO4pJ$ZE2YNN;sI~tFsfvR~ z&Li3~o;`Z{v#6n)x+0cUx>~8KOHF0y17X5&I!1iO$tL+~E^g_^S2(_|q{_??o_WODA#Wx>r^m9I6^Yra@ zpMCY?4}Y$G0CDGc!b9Vr9U1Ggo!oFIK-xvFfCLO6k2h{6Ub z;D8nK@DUDv$AcXNAv;7kLK2oRgeUx92~|i!6t-}MFLWUaU#P+urtl*(G@%W3*g+h! zaECwt?BNJG_%acOBOdGEhdYcDK7r7|f(0l5Av%Mk7M720%F7(^vWUe7YO#x4Y+plk zx5Jf%V;}1fm-2FAj|)aob=~41&}P%JDt;s*`tzGscBscYwgqN&j7=ONNXI?eQICGy zT_FRBNAVrfhI~9^coJDd4w`Wt>!O+y{{clSSOO-G9ODTgImE{)vX87YoYXE*Y%{(Ln(Z5CH&G5D#MRBOb;?<}sC-Ok)z$na_MCGnY9{ zX+qPQ)WoJVn|aM>X49M7CJFDQ=8)iXE@KfPGy#JnW@;vKF|?QbcmB4>j2dM z62~WxBpw0+!Bjy#<2g`*7Sx~zMd(2PQP71Z)S(Q8=tCuHn21i)p$%22MIVaMcyd&u z2KA^%Cpu4g($k>j=m#2k$rO#8>X#z;$1qKbj)Ks0p)@UNPD#2`lj^jmJoRZ%fjZQm z7FDQ5CF)U?npCDD)u~H;YEz-=Q-Vabr}UZ=jXr`Qe*zSl9|dbz#X459mes6hMQd6M zN-ytB@Gk1010C{k2Y;A@9Q`OqImnUMz3P>(fAvQ>0y|j27B;YZB?lMG;aA4?wXgnA zEII5tS;{>ss2{ z6}GCCZEH=t*T8b290%z~Z~?In45d*qQ{l%yALPK3{l{!y>|pmEB)@|Fhkj?gW9hos!8u;>jq~f`7R#8$Lbfr2{Q+bi z3wgXgele3>dt@b7*}DDc#3hyZl81#j54g%JX7ig^9V^z%W!5p3#mm|MGq)MdYPK(% z(d=e1TRF~jo^zU=yk`5}gAI$};cmD^55oc$5RhdA0Ky)X zo;0Qbk?Boux)YiHbf`f+>2(0Y)SBirrauh`QMVe@>%fAkJFRL|uiDkOhPA9~y=zvF z8rQKt^{iJ->t5gb)xe&$r+IDcR_8j{#3nYgM~wx0tlA)*;LK#8<_>j4y3(!2LaAdt zZdivp+YMPqC&C?RNoSeeq_(z0u%K>Od)wXiPIsjrGVgWc``uZNcSHDH?{*U$-ujj| zz5i`+fFoSs3img@1O5XNsd z)Ga6Zv@?AWmXkc@4bSo&WNz`5hdSRmzxg^`F6xxi+~+XYInalW@|pMiN1EXT4>ut2K6t(R$>x4vINb%Gcfw=O@O@|d+}U0C#uuLNlTZBQ7hieDUmo!h z_xt7<&v=7C{_l#nxt5Kq9f7z*ANRNiJi;-1bc%XynlfC?lJ%mWW z2ZXB#T)=S9y@RN|1x!GLh(HKTzza-3*|R|FL%@3}hz&GB51hUb#6S{E6Ap|(6a+yH z6u}HEK^N@6<@><@OOqL7!CkRIb$~$~+!Y?wz#qIo5rhYRn84-xhvdSG$k;fT*a$j^ zy>N)D{iB1?8J*?Rzkkp_;2S}Lz`+Haz%1lK5k$irjKL2iL+i`J{L4QyTtWOJ2sX?= zGmJw#oIw0bKoP9N=W9d#3q(1zLIrd*HatT?gu^}mT*h3SMH=)){A0#nbVd{u!e5L=;CntmQ6hdp zjglydskn=&Ajka4pK>fmfl-KaL`QN&$NYf^cQi*4I>&j0$A^%|e0;~1Qiy!4M|woZ zc>KqI+(&@~NP@ISeng0k7(gX*y@w<_0KA#B(TAzPkZ@cSu&Exup`}myM9t~Q<@iV< zS{YhGo>($T=JCkZNJ;8p$&w@*pzt7oB*%jP*s`eT5SIB4*Fz6*oQj6j2qmJW??4ZS zl*x)Dn7cqq*JB5QDT!{x$fnc?w%|#oOv;CB$N`*6jo3+Wq)MQCNTqB_tL({-K+3Ju zimF^nrF6)oEX$^pO7uv}tQr7VcLTt}k($Wj@L zw9Fr*gv)Rgh>9E{q67(AGRn)mi_DbDoit0cY)ZnAOw4>txSUGP+)ShdP0lpR(UeTc z6w0XF2+|Zy$81dwdQH!a&Ctxu*Bs5#)J)h+&E5RX-gM2*d`vq6iP>b$&fG|s7#&OS ziU$&-&T+{wn$9f(BlyYAE85P!QOWuL(Ke!xPKJOZCTg1U+^5q(PqR7CvoTNgbkFnz zo;hMq_*@G4NesOaiU;Bu?`$56C zl87y=(H-T{9`(^51=1iD5Ed2EA~n(@Mbacy(j|R}4Z~4D=m#d1(kZ3VDz(xp-4iF> zyC}udF7?tc1=BDUQ@L1#e|SbNnI1#Gd+wy6vKu8c)mk5)IoLBM}^c#l~k|jQ_vxZ(NTyPT!%`X)K2x( zPX*Oa< z)^au1b4AzS-~wFnlY+oeOpR8F&^c2}*LtY*pBtsj|JI~71@y`*^)KclSSE- zRoRtg*_L(LmxbAwmD!p9rP-Rb*_*}LoYmQ#<=LL~*`Ed4pcUGoCEB7j+M`9FbusS zhq8s+xRu+ufYU|TRExa>jGf!PsN9SPRoCEnsqn7eIJ<5k|}ebr4hU9cFt;bq?GrCvm_ zgxO2p>eb%uMN--SyI$@E-|!XR@g?8#HQ)0^-}F`A^=04ob>H`e-}sf^`K90bwcq>2 z-~83z{q5T5<=_7W-~blj0X_-;CEx=_;8D3q=}q7U#$Bv*;0TuB38vr*w%`lK;0)H_ z4d&nu_TUc&;Sd(#5hmdW>9P>(L^>Ed6&?}5h~5>(kWTDG7k=Roi{Tq);IF7*8$RI~ z{)-(};T{g&xBy}t_F=y$Vj<39uSjAU9%8s?VjQO77Y<@4UgEBZ;uD_Y=&fQY{^1(# zVlDn+DmLOLev2$VV!1$LGfoK%3F5J{(m@=-B#gi3b&K$OKHbAZC8R*Wz~dye!Ug2x zyzd}re^yqX26|hz}4nqrsi(0X5hQ#PtNB117~i= zW^YF4awg?-j^=P)=W*sgc{XQuj%RhgXL{b|W`>Jr{$_V}W_Y${dwyqpE@*uoSUS)> zJ?4k~>$r%{xW8a%>+3j%#=?h&E5N8|*}Le6wnB~eSGnluQwiyeen5^sK$FJklip~G zUg?kjM(LOKi;|XUmmcZ3u<4V=X_dBUp2ldJCh3?4YLWJ7k1pzzhUuSf>7dSOxY+5Y zHtMBDYN=N0nkH(i7HXZ&YLE_U$aPUmxZbfQYj7TGz$k069_wLNYdbEBwI*x07HhW- z3%F)$x&Ge2uvUz zzU|v~?b_aL5xi~RmTlaAZLf&!)(-BM(*Zz2`=RAS_uby09bgqB=%l}#U^D-i0}5kr1u8cVfJJCzTW#@ z@Bh9ee}0Q$u5bTlZ}txG{VwqQKJfe&@H^)3{Kjtt*Y84(a03VM3jgE_XYdSv@UkHA z{_b!J|M0K~aS8u#5?62$pKu3XaTIUx1h?=7Z*dvla2ii>7oTw!&v6@{Zyb+t4gYZ- z4|0HAhrkWoBj3|9mD0O)@+Wt4z<}~87u>&~aw?bdD~Iwd*YYU0@-FvszX0gH2X$C4b!>}>QI~a7=k-)~b!_bzhHlOt1A) zueMjWG-HPdOHcN^P4*O>c|6mPAICqR-E(YnE7u$eiKWBMhL9X{uH5)mmx(xoO4JtCB0GV8|cO#-C<+AplWYa%s4k?!=l6OA$ zc;2tey+>Z z-@Ceh?^*qAbNhSqgzbh%eqi~}_IY1A;l=mzzfXGqc6|E#bpG$N-+!MYx7bo!oqM;s zbho;#wtC#QUW9JFOxo(r+v=;>dUa##^~0?}cR7AA^k1pm??UUYf66G;5>e5U|3;s?&Ckx=D9(S9mNte=KOa0Yf!&_sk8~W~ zp5eQ1YTZ|x6dE|Oz3_a9dd5{-#q~JcEuMeReX3%6<@fe?B%ddhaT4wx)8LjZ$Nw2K zWwYYS*8|zEzn2se9!4!5SeN<97_cGZTSTvTdX)cIRRg%+9Ip zl!OW;wF7owS<1b|@}`+W>TxQsE~q+Ovu%po^QK(OPqJ(;>)P}5p8~hMeq(+0vQ`iu z=<4xm@2^>wDA_f~tAD(1Ut?BeCFWErw+TDkd?n2KmGfK28tV2iSr)Mixtd^HB)qEUzcl_R2BSb z3^|wc_n%mU7~TFQ>b>ZUKEeCz+gpC!{Nnv*jx2vJ4@KM;cAj`XAV$jjmvkfk-N(lz z$_}?u^?%F_$fR526+2IzM`v1BFwJVd=QEe@tGaL17^XMgtaG@XZv1zB#c{E2J6*Zj zC|)&=ly}ok7%EjQy*_%Aq-(3g-V( zElZ4(P}XGn79RGF1|JuxvWBE=TnIVf>0Vc)J5?E&>GEF0BF8{Sg_A93se;Sr7eK6& zgD+Y4rf4}1dBr#i1P}QV11>d`d&TKHo**SyD>KqsD~C*HQX3@gr!O93o^!Ep!k5J+ zdfcc^no61W<@LR4s1)3FDTD@V4UZb%L54~Dqw!5kR@v_8Vje+lFGLyfx zKR5fhJ&sV#uX@~Axd$d^bJdVH_EFV}uqIJj<{5n1 zgXQ${a?9N}I>*IZ-YTi!^qJJ=d@7P|gO7Of_~2D5w&yix`$@)wV&fI}@a8)QjRjku zeD9LEUC|`zu~b=geV1zhqA2OzgUO}cPA9~Y$tpG=Cd`iQhOK195DKLLu{D0H{bch*bfm^zkhwP z5K}^&m6cdzwuH;n(of}g#yhGShEaTyn?{83<0;5))y9&2GqkL=Fw%~rHdDrEr+IPQXDPA#R`0)7v=XXn zBHmI$rVA4%eZE|OTTE6|1eOAQU9{?2`miL}BFq?1MD2Kj(ht!oV%#gThgM5e2PvR` zBMES4S0v%^LgExUQd6zO8n=WppwO{1tEEDN{t$5%5tYq`cxQv~)Hg)bA^I)BY=4Lq zk0xVlMaz&TGWN97zA8=9Gh}OFVMKu2R?a>ipi}DL!8PsKs|hf;3bZRQk)76q;1n;R zZhDttG!Fn+)2RaOo%pLvK;#w{Ahm-UpJ{pHk8Yi8`dE8ng_nK0PdTgnbnQY|qq?Ld zE9Ut({veU2#~2R!7IbtBy~e(NK8ax^@3w=;Qu|W^&nA|wxdQ@ai2{Psc*p}maAIb) zAfwGu9!Ud}?&iaDhXBNb(JZ(qo{?sYhpy2`ABGQZwJ6|T=E>qjiaWxF z3r+0Lf{O>{VO4R3t>HQi8b0Apn*jw!j}gIz3rIEnSfpd03RZzk%DawJb)2cy)rH%N z<>P5Gxae{|EBG-YHtUGcj1cs{0n^0Y*VP+IaE*}?qXixvOX<5wSsoKN!522WN+`tl znZD@j)3&ReWhpJ`FzRUn$I=cwb<^ zCCQ&bnX8wrmpH@l2W+=`|6J>7PdcP{Z>^DpvT!#zL}ZtI2dq#twOFyAG`ST{uVEtr zY;fcPmpB%thD>zEAb7~;q)VTB#MrcwuFA8|0y6m&^zbnvkVR&T&D3V%cfuH{zHUK) z`x%d-8D2$w|9X`QPn8a6xz`drT;2?P@us7++esK}Jg7uQ$y?yM)6N^@e1$2ZR)EOM5TZfwCZ!Vfj=RDRQGc9_ z*eMKBg(M544z$Sd@AN#63O>Dykb_iul808Yl>ZJK1sFU2cfl5#VE57LUphQA6wkfC z3pZOZOV5QiuGBW9Etwor98FpRU)NnEeF!q6Ve;c328>Q67mu--F8zVH#7nFrmU%0f z8Mp_>O7JSPWMSJ}*kXeQbkJN6xOa(a12@ZDh?(l`=71r$7?McH&#>U+Zc-MJSp;}m zSb}I39(4D^(=r+Xh%*@wQ57jOY{UzeZuAPe@Jf)p_#5W=EJG7wrl%@Vp_IXf?=TMc z6TidxeGr_eDBRO1h4NdDZDDPm+9N^R2H=A6B^x3%~j`TBu#Y@Br*Eix_j6 zm8)Zz2>G>OCy00jLA80vM^fmR2qKNdSK`X6>VehmS)O+N=5LmgHN&J4A#!+1n|@!< zpPwQ-OzccKcXwb{2{+ruK6*e&LH`x~2o5d#W=4R)R*9z4>1x~^vvHOb3{P8W=E6f+ zkEEY%W(L1D2Shg_#H|Ta`^P9v_Kk(hdTBZPICNcrrH=-fC7wy5PdxBl!Vjpfhi#2J z74pqK+&BcAR1upM1&FyLIM@wKx*Ip(_Q?7 zjnN6o$oAha@9oJIyCBY6Gc|Z0`05r2b}w51r|U|x0~Mk2jdWX!*CfK(|6ul<>|m+0 zo@*UYp|49YnWTMKw?iQR^->>PrlY?a9*-Bh#9Y@W6Cszb#xa86%4Sd@1J6bVCD8_c8J_ zY&SaBZSqsT@JFj`tCQlrv`8_d9`{ji3xq64@9Qp#%`<_~-nW}Cc@Tph$?QRU?6n0< z7P=QJi-nSDI~XP8A-Yj^w_zno+QM6SkXDgUJeR{3U}YI}Ko#zE8`=V}rD4;-;oU-h z!hHZTwwM3Ham=U>*4+Y@OMF>-H7Oe*`Z@otsdp#T-7|(Vk- z-m}A9@bZ}8T9Mj+(qQ{}+e0E!?O6-UOrv(Mm;We0+kYZBqA{;qNw!mj`9=iBHb`Z_ zlYu?=&7@lZQ)D>b+e?7{33E3V|gU|u)cC>yc2~kQ|)1a7^GeK2}rcNdJPe!7ih?zY#7l?jLoLL zg5oSa#8Zg7&*Rl_=a4KSHb}nP0wTyF0?B}+j*vt)C|GZXz|l~v?f{I2IR}x5?%MTv zz`!2}l_Sax(t}iiZ}&NtT_KUa7dRH3qD z!nh6dlbqwxUcQHS%&YpWp{BhX+TYz+YFg!UoQ;f!PA%@1(*%xuEb>aSki`RwK(j66 zWfjKnc~4ny3h9VKZ(NL98uKVfXy^SZCXE*=<%lbo9fLNS`<;f^vN>pxtGfCoNW$TJHs zbG0pergmr&bKde*F5>Gzq|mT;6BPXwzDI<#!7v7PwC^((wOi(TjffOLD6rAGL=u+2 z(S3#fm9W2v(5fbUejwmLb?LQ2s^rxRPT_sWzSb%&)`<^Xe7wL237@toJ_&Cc7{LXC z5tW7Zm5}g@N;TRx(-i_ep+C*Xq+v!J(gX3HVnn~$PpCcvx*U{~NpNN$iff#j-i5t5 zzx~zLWmjE*MulnwOW@|U0F8GW8pCYAB|^lWqZ;*d&0j}Cz6uT8E^L~k30GY2PEvzi zxo&%QRqf`32>mK|(VWI_dc_(!_Q}tR4el%6jb6O274cYnn)Tu2(?#_C0QIGQaX)eO zk1m%=JtOXR;hs%3*E_*G=E%3k!qG=yS6+X;e0`SRR5>=p>upHRf1xE%RN3$}F0yyv zDnmQb*0sXOZl=$Pz%V zTf?nKe)+#^`+GB&27LFuwcpm;p8{N)l^NBDXtk9w-(}(Vi&F%cC+h2LfYx|~*2M!oKV)0l z5Qqi&7F4zD@iz6@uIQyiwQrp0<V5lBcR^FS8@N~#idh6g{x+Ih<&o+l7PK$lV>9X#}2 z0C9zoK*<}wV?hJ}#Xm5(IKT%q0RRcmU{4`=din;}#yW1_eemeoO#Z3+asDNbZ@;zB zPAuj$SLXJF1V#N@-RkM-OG(V2f2f;ZSo++zUKsK0P7T*qtMGKd-Lll4U%!959jUmO ze=8ufEI+?6-2HrO?aNi}mYSMIh-JNpm)F3+M`k|fb=O#&tWN2K>LD$*ZnRI{%%GEHV5L8f|)({mVIrC%q@<-?^$kdf717T^g>yw(-FqP z_#Z8uL!QR<9_G2@AASYfRp!Lk9y@-V>cO->R9xD0J1e0qj>)`Jx#Vk67-Cb8!HRgA zRXUkwcejmv`7+~cpDimZ?{@SQNjt#xNMUAZ$L8kN>?ZHDZ|l&zHA|P|*}0i#tl8E1 zzf)5)U%re5SX>FPtp74K6JdYD*P!0jpxoE&%8iO0=+V|m@?~GM`Vh;i>&>m{;nyrl zap}<=0VWMEn}2`a(O7P7*;^Ob9Lf-t6c4d%oBFckYm?nk|1-d>{_#xT>t~;xbgPPs znsl@dZEkNRdee>h==EfTQ$vVDLxyiV zv#4!q?APbvK_8py0Q>k0r`vojE1C<(zRb->*j&F5*B{~9lI+_NZGR)twe_X38bIi&_-e-nUc`DV8f#m4NgJ`Is6`lM$1%=DEV8_DYOlN6`a8-PElc)h?Ty)~(q!w# zwx#C8v2)pk&%?xcOSS0sh4nR#G@(yP$u^x5wzavy8SJ=vgy2GH8SCh%YEMp14r4AZ zRrM{D=cbyN;VKuCjgHhyr_(%5s(cN~d`+r64a%aO>U|A%UQ{J|wz-;Axtf$EdbaqQ z)ccyWY;SM*nv{8(lx=VSjCN`P006}Y_-I*c7PB)8C8i;+cH76?U|G_p%KFZ=7iXmp zMvV2{sp~Dln-|I+yIcRNRL!~B`_vU4MH;@6_Vht9v)z)ey4;3%O_{Pq2tpKepS3+49lGB2QARMj349OVCdNS%IN zef;6A@h8bYeBZ7r<>j03A1}z+wzDR?^Tqc0_K(akGd2;zg=4u+({Cydp8V4P=-&K0 z@IiI8ONkQQC)i` zD9eBM$24{Hu*DTGsLdyG`nKExPHt_`t%iuXg*;CbThUc8=WjfyO755pr5MIrxQozM z6k${8(SO{;s2j`k+|(+v`avdAEejMOtv`5$IR7cu#TY-*Kn1%y6X@3 z^l*bzEgd;9Kc6z1BQ2kwy*XDE|7bP$T8YUJ7?A&cEDtM3<2qZN-Z&Hso)Wn~9bWx+ zh+bl}LH)Y7`pKW47!%;`>t^{Mdi>8lCmuc7+}&dSP1Q4~UNN!0I@7`CYj||1{7iV7qC)-jn|aUd)<;nR4I$Sz7CPZK zu>HJ>9Z ztq&_v`~i9Iz0n*RE3r=9nD2hH${%+&v}xRL{y75L>5v?q7Fv^~d!&9N>0Hvo;7<6x z$IFI1Ml9M$ejD17<~VU<;bn%Ijn_N%OUT=GQhlrvL+VQZj2XdXVJ05aIn5p1^K8cD zy&Z73L@0r(7%gW*KHu?~P+AL<+BEwfWg!9;8q5>;5OVs>tiBB8HFWQ1g=>g(uU67V zimZH<@Xe}!B>b6v-2J%Xr!S!4+5c9IVg=p^s{~fO z7+(;F<waxnGHpA?R^NCp+46NE@Si%~F0~sgut3h+i3wh2 zzQDJ}I{JvznM*yAzLnM(9Wv#Zsmwi`V-nOU*Qui{c<;s0f0PANky7dOkiBC0YOR>x zjYP>x)Oke8Nu{Xs*ohTg22%gKH<(($!pCdkaWsev;3&380)#9`c`^%`Vl)=S_A@DC z=#8IHYelJ9dOqpzF^XB{9+kS-^B%jVirU57v=Um?&F%W9>5VxG>aG@6&qO?4n-oyA({f3dAIZpbL$2{wOE=TI`?1|Km7+?s@Qp`*oftjUt?t}bn{hpEz%QyM=m+V`r3MeZ>m>sFAf}pg8 zPTHRK?9_6rzgMREAbqWih8-;*^eQ??06ZIzHn&**= z17|<xi)UqI;GBf($;#Ft9}R6XNU__P*IbDw&3QSlU>Ccaci#&N}EZsSv0Xe zc5;JGh(*epsi(Teh3H@2Q|rpTwU?1*k84Z3Hu9Br(;LgZbxMNjl;tac|)>vroZqgJuQwN6Lo3u4tEu!dfBmExQr7Ne)kSKp91PH znD5fSe}RZ|6?D~ll(tDZ8Trkz(57zK&Yw4k+N9jcolCN8UYyweqT2A1)jn4O8Y85H z6vq>db_>T)Ftm8Fq)Q^@MUj`$GRN!6I6bW5J^Xx(RqD|MH5BU3I*$Rn#SXE;Y0xCZ7p9e zvG?k6AIftyh!c0k<0Md>DqIn8_x48(VDf~L2CW+otYTzGhvE)=5UaF=%R^e5@xK;i zPOyL1sGivWybbCQw+@!<5Ge#~a)R`K@9wH^_H?;)t>|V;sd{EUyHiX*#u+#7eJGzR z?vm0A_f&-FaVmUmA;qVrYa#o+X&OTZQAe&E!FuY7hJ{_rnyq(@yww)gl|=^OJJ4Ra z8AYs|bdTUVF_XB}jj~s}AxbttLHoFJGnzMy?P+;pwv%FLept6y6`_O{LB?Lbmg!MO zMyB)Jtxp9AHU^uit=e+0N$UYP3@(e*LxJLheIYwVzFlRd0?xR66%2Dn&_YC)S7nMa z@epSjjC|+iEaGXZ7{rGyg0$YjKhPwlwz|=1JW*0_dWAU~mm{O&gQeD87)PrGi(jayV9BsHLX` z#O>ch@4itv+6lo**s}l|ZY@^IeP~#W2{}aBy*RO*CnV$mNT4p%1iO<)+sX9nxAAai zG6}NAP5$+giQQtUO#0ttmK61h)UdnxD0x;KEy5pECU)+*`jBS1MM3VRW(pl)pAqPz z6$}^b`0H7xvInO}D^zgmWXV}YTmnazPX&W;2honm(>%zINEYdid@-#~FPAY~59m<@ z$y`YrGD@5Ph*{7*9t0xW<&RjMID}a+vXQGS4x|Y2fN%(6~*J$S@JpvSV5eR zth-$T8F760NMARW2OuB#OJ2Z(&bWP1Vu!iw;U^|DTap3<6IT-NPL}5i%!`07& zC@MUgE$YKmf5u-uwaEa)sOZS+SVx|p0S;Ey2t$zliFhLd3#Lp!!Kt8Ez^Q#SWDyN= z@CYbFgW5A;B~mFR4M}7ofM&q2BteIU92^c{Zvk*BCqwHF`Ws2jh36+t+tEg$7Z1Z_ z2q;}D03$o+1Os>U%prFGX&U%&FSNQ6xWIx+-v^*v*cLO|SVW%2go(R?uj+E-Xh;GZ z9Nxep$f){qM@T2A#ugwj9R+zX9~vk~bonBeHaDhIP}LtZI7LUucAGZ0UH3zCm=P~v1EqK4Llm^juXe{qRu0O z$dcH6s51jXX2MDV_|-0W^gQ011!jd~k$N;eDwNC%hgyTWL>L*5CUYyj8382);bsho z*lAD$ z3oP=;Zaaca1n5Iemu_$_JF~G}IaN?T9SSFc8JBQ+Uh!i|-=clC-!EYeE6nB+RpxG0_xj$IC z+MX>MLZr{(X1VBh<_zod=R_$K46Hue)uq; zMh23Z5FZXgkb^V^K#3#pETDl8fco4bI6gDRDo%h0^`$~`0}mO$KNNjE5zR14U57c+ zO7`N*%K7i1^$%deEKrV@sKEjZxJV5EYR`b;@MTs6lo|Je0}F%$pezSy?z?Wz0s@Hs z2sT=phlPa$n*8CPX1xO*;lP3x0I<_Eq!kr#pp}^7D`a`lyu^430!o&Plm?&|0I}^0Q5F=4 z0}Ud;0xUW3l!wscH~}RpbV>ql%5m4B!0P*MtRfq2*r4>I2FN7JlU3?WK?X66YG@Q) z9whw_M4Ji~;&Iq1;I7gcXldwOZG5fiU#v5bq-Y2f|93~10BloFv^gT{*ReQv&|2_;wIG~K zYlGq;--qsKv|GVjcNB}T0_fV5#iMA@m3)q5J;J4yiT+CE(J>x6ij`8$w*M$i;WMY$9P(cp(d=y$fTq+USqr=7Qg5Yfk zZGbH<&I`N%z>a@{+EY?f$cTFU8(sYURR9Y;a~0P47{-maV^nKUkiJ)dc0;5MA(_gI z3g)79hyau-fMx}GbMIMD-)5w|wP&{TnXtm+X&nzi7eQDU7uzlfw`V|V$jGyd!&ULn zdiMQqDPS}bW^e^!!EW~jEtn979cQjoEfdvo4k0uiFlg~-yN+IWZpPE(49*2Y1Dh*)qx zOq2|X%K#-olN@S<3Uk?&T$u0;=(rxr7f=YYIh(62VXlsow3*y5|5gSihr-C+!l$g;wN(A)X zjeGm>7JCnQPNhP(_*|3(f%JnapiY_98GlE+b#F-@=x7J$T@VSncZ2bu2WQrW2SV{M ze0xv~23FGxk_q!VT-d2}{~y#3!L$SiYq%CIS(o)Db{|B2=iGSNHh8SVh{CP)j2us- z7VRUN0VueIRi6>yaTj4U#PPX1CmmDu*!1j1*ag-DT|u+*xHdB)yqO0v!w)|=`^27> zZ0bEHhRf^t1F12=;@aa~uYLD>eH;*EhiN{+Th$yL^NKkTstEWE` z{scv`8D==}V5+2umc`0`SjY)r4-M%|Ovs`^HF((FxE&NP(w?y+3MrMtBM=U-94dgA zfcjDp9#mQsF2jQc88%{=kR*Np@IBh+BdNJi4tSOy`5>)h_%IW0WNu6y@DpHiZABrK^## z30(2Nz)bogOpW(;kAvd9VR5Z@d1CCTNGCu(n}?XK7hNhJzfffVJ-_mQSo#q z%N{_{W$taa?so`XW~;1aBQ(?(f>!5r;E6%N?ma2KWCpk=rx0}B7PeN*4l0!Lplv-N z%;%`=3XYp=WLg{(KpR`M;HPI^3henl*O}s&d#?JTGs1<*z$-J<_o=A#nK`|>CZ!%^ z+mm;D{5gzR*3Ka8A;IxZt3FITD6mT_T)l%97g#F_(b&YPI_LG*OX)}3f?cM-W|x9 z+g7Ayk#;<31I}6-p?PAb7r5Dcag;k3y|+wx?frzfixPbcQ_23I1uTKNBo{mvCY?BBqwrBQBa}2( z!p%1sEEW*Iv;)w-$L=c@T&wOW7FQyM6?bV^*Fp?KY!n^8@Eot50~aQ5WS*N7nXJ)t zBBKP*#AC-Y`Nv+nPnM}0*mL1~^Y^ezTTgqD&bB^Qg9=szuFW7sXzl(I`1WLt=9Kl$ zu4ZS~%POi$BLm8yR28qVS)9g!o;6u(sW`dU@L><&UfG#H6AsJI8dFanD=^RCvaH7@`WDN5jZ zsd3@}%*KbAr?#-K{;ZTHkV?2f6H5J2e7p}z`WQ%o%54y*G>MspIJ%HG3lOoTh*o*B z`4|^gsesEXOG7W>E>#A^1@yS89zarVz-nW@BJ_G&#LmLD7v~2oInOiwB_O z^j-*J;V`#f*P-g zA>yA9ny4(DE(%hX0m32^K;tC}phJekBFnNcdQNVMw7m1Y4NbLtCqyErTj|Rr%vLK9 zNoSA@RX<=-s;)sh&M6Ci<6#n>c3)iX3Orctp;-Eq0_Wv-58Luxb5-4cz>l9|_-nD5 zdB^M_N}MjEMHU1zL-Kh|w|eGF&62TRQcx8meP1HKi+V;;P;aMO;X-tB82HPp7Es9r zbk6D1D*CZF(g6+j`7b-WhA#*n0&6eDYHTy*5#!h8wql`fC*TL(XWKlppowT@4+O2Y zKsA)eml_5qJrdavH7!b>Oc`APORq$&1ETp2fV?hK*@Q(Xc5aKXs) zsmGnA)-yq34y4q4L2!E~1QQZw{yg2ecacn&8maYYW@oDCWx=KJk-+z*c?}D8Nydx| z+F9)zB{?rgVvsHCdHm% zz;_*@3u@7_49nPXMJ^3>@(~-}P6QRD^HJiwd{HK^;`%Sr-Ze&{QTo2Bq(M672MfA; z{eXzxSe631gRSmFrfJS}w*B6C4`0U@Xzt|I?{gqH=8K%mdWu-@#ynB`_ee#&oAM1@ z7h(-pqNR6Do{R^A7s+`>wv&(ec>2CYHbX5asb{`uP}_L2#9*XW>3B}JO8f_m;!nE2 zWG$<3cG3qT&J+w9IV(ryAomjaq`fM55LdaWjqf){%cyxv9l-_ZFr+H6-WBqH4&>+! z*6#n#wlX%Fgy=8;fmWER+-DG*k;;VxC9`^cKhCDKuN7;~{Wu8!TcSRqXtPG^m0hFc z8SoIHR2oAvai7GA5m4Y1D@*&mleqEg>26P6w%i(iHY1Gm>I`p>>9Z%;{cV9*GP5t5 z$w2BcK>4jcD0b4nq-;(xvB9IPqLlUZQX4ye@m}TV`G(`@o*YSt;{oi?Spli2L+BFz9C5w&NiFA|Bev>k-MC8 zKcge7qxGs)mM#sdsG{`f*GA9Y#}t+Q-#X#M8(AMlNlX(iAfTf+2Veh#ZTh5$2}|yE z$&kG(jO%*!Y;u{ioSuYURki-2vDxzH&Q3~SC;y9;CmLk1YT!+2iU+b&ikz?(^Jo6+ zXv&)Wvx@0QeqBkqntwF)&xl~(G=!FXRuqGYOIGt&`p)gOOG^QF9%6D%Dac(~+~N#& z9op#;AHXg0x_)YO$`|||-a}E?lWKHC`-H^7jx#YTA?y0@Y@e#nfBbtKktRL$F2ZW^ zPp#|wef}$gn~xX8iu#AVU^CIVy>KnRKXhl6%@4{u)!xY7m`zdnAjuWDmg2YfrAXyh z_f9jKa?W%Zj66*t8@%W;+({^UMoo3D_Z=7 zbn;jHn@tULoJ`oy^yE#7mqulwaeZ5=`5rb^4;E~BeZn1Q?Y0{}+s zdxj_B9ujdWoUGHyEy=c+-*hV?ir5sEX*6cstYHu-)H_2xtI%Sm>m{YAZtz$6HeZzk zO?A)a1RB9#n*~P*KKmvd`gQ00Z)a5@iPp~oVcCeXicRG%qaUPx=j&%J@bE69)P=ri zm}(&>EASF3CbmUe*7BOHXi%&qJky%tT_Jd`c1Zd519!Ie79dK^`>muM*n$drL{xtD zDq*!exUN}y@azoNC?-~L*XM3A@rU()NuQy`TB&&VH+$(-BkO{Do=U+iYfNV*m@UTKjPJRGW3;e?=Ey$69S) zuB2EZ%8*`8kH<%!UJ}}^YiQ#aCwN|^^Gg4#NGIa>=qMS|Cvjsqy`Oi;jZt-^*Sk|FdvVJn?>t zZHvnh@9lDk*~Nig_@MCgow4CN@g*~iUFY7zq}$z2l2J|vf)A{22?zb>AQt(aUv5-< zSmNcT_s8xa$u*_ojin+rVT{PQj*Oi1Pa{#K6OJn5I!hgOgocmC_YL#fp7+{*JPsCMTUwz{8v z>VEF6d(pUi@v?i#KX-<($9XxA3;R7vjXlcjJTCfplt+0~qzlCGVc3*`OCzj z@9IC_@4|j-a(=uQzQ6X5{)qBhxhQoo-|tVg-{#>gUaQ|$(Zt`k6PrGMdP71+H>`oS@*2d`4pYMYaA< z7Z$hom+=SS^_L78o-@t@@+YV71F|nC;eGz{!;=$>lX5GQvab6lAOVWgzBBaA??#%aU!X}w&A(Mq7vcA#N#py91R1Nk8HXMrY&AXAedlJAU} zZ;*9#mW4^s(U;Sfh#BLMKszmWxd${j0Tg6SAs`boNyhiB1WgZ)%7ewHD2)U1%vWbX-n!Se{83G9`>(kh_4m6jl%tb~Z8W z+`vLkaai%nLSgzslkm>-1W-XObmh?ZxPL`v(lTg3WpQ|AdU%BvrlLH&YT)aYTj5h9 z;nl<8mycj-w!^D15m&BzaKJi~bNCGySOQgAH8K-y#g zv;2O038A?BVPy&XG4j1+)L`OrKO$;mh4|?~YoZUX1seW*$UX@K^e0lL&b8+S1w?yALpXl$!UiYJ$VeXl8|B&Ba zx_-6${$o3OJ$DpRx$@Qbd-TQc>$kq&lgO0j0=9*|6G|{sUe@Nl7%;;V#mQTgA6}dL zj_kfVtom#>2^|6CpRbiQ#O6oENp!|(OZ_+hFYdrz-?V%ff4{=1L-RgRg={T{Q@RF8+jCmJTuNwDGCJ`?THVKM!Axw_A}vM3zHoWYrv_4;W`%SdZXRBXfK*L_UG(E)lwUJ)37&Ha0lj11rdj^liNQ7Aw=6S*{1Rne8o`Z=6T@X^Z}}+Y zt=maDXeJ!|yu29tDY2~h!;e9Sop00Ks!4&UdLKmUjluef{z@`617}cG>t1memPQ|a^-nS)w@5FmCr8U=2^37 zKA%!*`JNYssW8s34E)zxzs*}mA;K~ATieLS(9_NDK9l%)7jicpZ*M-7vkROpl7hd; zsh%`<^AHY&-O3vU$67}toeC;8V#Iq4IGM+-dvx(AiQ(_rmeISDkgiOn9(b%MVOWhMR9G~?6@gTFFw zuU5!g-t1S@f9SvjPAKqCXlJciW&EqzHlH2vhvtj(op81!BKLW=fRs+;0#C6gUv#fi zOW3N?%X7PRKjmm&S05=fk+=MMp~K4d31i`%kWGer}8SbT{hT z`u?%@xcLvQCx2^w>5!Osbp>gq&1GjI#k3;%8-#$eA4~0?=Qj?_^j+BNe9Knqt?8lW zFK^HM9?)6fT(c_GirVDuI}}E&rFZ{1HJFIrTYW3)?~#?U$Jlpu$i=G>`*}gf?@!13 zX9}QEOVKM^`ac&wod59m_{FZ+9GHe|)yhA^4c=6*)t2q|iM+&~1|? zWB4Z9TbnT%EBi`{Gx+`8E@%GkO2%iRHBf_w8*Lvw4A)vh%k~KI-3WU$%j`kNEtBv$Ri8$izg zkD_yrYw7>v_&K|8t!-`HFKgXzlWs`Ytqa{HNfD+(2&p8A&bsJ+l_aTk59y|;Bxfs> ziV*q|)&<>U2ua#+zyEgr+T(F{_Bo%=`}KM~U)A1hw3uR|r5}eN=%dRU{0z&un8Sv= zvx0U#@U1D<;AY#K*c&@b|1EK)pxDRn>`md(gS@(ItI4u+*|XPgl%MaMsNqMa8@0XM zdFH6k$@hn_c;1p5SbNovrPb{Et6#5ky6}kcHTQ&jmFvmIg&P4C)UpRCQ?5mIA1 zYEio4k;|}jTi9APnIXr`2T$GBYPz?kajZ9S!_)p-4!=lUKOpKROJR<*t0m{Lj_SmNeCmjtQ*?cbfYnR$)6F|-i`mcB0zb$VFCuh_SVzD+R zX?h<#f`)b(CDlTwwyb%3u<_9DnV0LVt4@t9*~LV78y-72RpEXtZsDVH@Zi+LGpmMX z{pDp&=FktJR``eSQ}1$x+Sjom4#4-Hv2WVmzWpe)ukmP06u%7kJooQmAa*QLU@Uy8 zEjVivb@6+3=ZL-Ls@3b}MB8YGJ-@O(Pd=#pM}{8eSl*3Ayvfqr`{~Y)l^?*vdaJ$X z+!e}a4L^&e<45$qI_mus-FWhwUw1p_$qMP1?u~+XaeCyqC9lI@gekF>l~$z}zpBx$ z(>DW)_r?1}>b$<}OkE8Ji><s!Y1Gufb=uIr{!ni|nl)4KQ{_V8|p07uObGwi|< z4U@l5t(P?JUA{QISN8(tV8y0&R=vj)-7_!e=0*mp_a{5&K+7S-(CzaT)PH^PUlVt}_$043^YYN))LqJ|@m2K7j)hZo zXNLNp>$Wjo;g6k_$<@5$viV7G9<*UaW^b7P!$xjS82#GYU&}8kL3uu|Glm+58=|Z1 zE?@VhJ689IebPFV)eO$xR_z~rGu|yOxtSfisBsC=POiOXn%!Wo^{=JQs{J04{?)q% zJ>;JwGrl&VbY_S3EPs7!)UfpiT443WH0fM>PdM?~RmksQuk^&%(;EsrwT8}HNL6gh z4<~BRYLB2w*3ja*v}N{o9=fvpGxOX#M{UG~hnL+9TGT#T?0&k*Nw1`1GTuDyz>MzF z{iW?uXJ~Sx{G{96@rn)EbS1?hhM+#^qLegwo3z2+>&Cuq7Q0Q>l)LXPc2juYQmfX? zpp>xsTmR%8#)YJ&t+o#(y(BrTG^Koty`95cbk28N&SCudMmC;~xXfPJtcF3MG#0k; z7V(CZ)p2oByeJr&`|Dx-E6|;JCZ{uL&%ry=hn~ z)cfS)kRUs-Rz>hr=L#7mn42Z=Pm2RwWHbc4rhPCm!(oEHML0O|!60&$yC0 zDTb7E1jT+HNMVl69A1L4a)#b%bQnpoNpvU_HK)GV80tkT-hApq3YmbEsai`C4#o_U z_2h}0i*YX z?RS;9pk)08m=GS;)?%8v0wt==zf_8WUmpv9k*Ku?02zZGWH;|9`SW;OT-+rti8`tY zd>b-WAADfo$WZIF&UgRUgTAm6_b658#r7Mz!E1*OdF-_vEBWqP^KiT8$w*HbjeZt7 zG1QSf29gbsb!xssgaTnJZt$=xCTx2GF+@0cdW1_Lj6brTXD2)8^Ti~`2BfSgJQ3Lk z;C@;@KrB#Did$HiX#Xc18GbQMhy_^*6Kdzg~-1lM_$Zz{*v9OC}Sl;nRl@;wsnB2c54bjBJh~@aVeA%3US4e zXwU~@THpiv+Rz_yUn12q50I0E?k4LA5D^rlTGU>tadLv1VQ!)wz$dve1iz%9gxE>| zZ3;Q4y&orQF&P-NK1()=jmCkPIu=(PTMb6kCk~QJnb8{VcW7M2Y8IHdF2ur1Z~% zk7WWneGruhGl&kvn0M4FKIp+E)WI@t2zvMgfv4=fw8CJEP3VBAu=wxtyJ?4hxIk~V76xO(&%%Vj1h1K!{-hAj9{_3Yxv|SfEWT|rh6!TFvTB`tYO3z2+>qcjKPF^KAIc`<#6xaHG2>qY-?D| zQn8d&O0eWp0dNWYf#>dD4xt6YuL3?w3%P_SwnPvjFhP_h8`}!Xw!?^UXvZe5Vk(PJ zz(!cI$xMKZ`$PfQs4-xDx5RV~Lb3kpebCNhl2{$6I?vMTHNf%!Fco6vpMM4`$WZ{O z0%pKJ? ztWzwgri}2ZHhePUI*F)H7=yJ%dqE+DVzE_BswhG(DHA5Gu;^WY>Y&Ht0%_;aH2c;h zQ~85+=Z9zbrR|-v^ZRQXj&2=+6+s~=>4lc=`wUXV2V_HG1`brI55`4IBBo(*um__E z(`>jZg^-M_L)9$OlcYn;EJ_=Cji_VYm4-=+&@E+H_~n|?G)yIegb?rr8)h(=1l3SG z4=8QoEu}6LON2ouKEoH#4TtdhFlm}jWWxB&?UkQ4?eDJ^f_$BM2xRU?O!r{)6Sx%< zfDKn42=y*4p?mWQ^Wz|gyKd(`Gz+HcPumkoo2dtl%x3yv;SO8JT1!MNR3KEIX zhju(4!GUQkNU@KF_T4WnJ8uKSxD|Nll>((ouIQVG!wI&E#BR=H)jEXUlSAl9+{y(y zSbdnYnkeT#MuWvLscssP`S$KTN3|*#pClv|2^gXsTnz`XtDamle<>RxG6keo{-fq2 z$kZu{M6GM(s1Ugn(V<2=Zpp0Vfeb6%EqLd`a7uk17B^ULg8ky0gmZnY?cewl6Z|XR z=&0qUli5b|I+Y!tl-Kg}{yO`s%(K2A>WHJEa0ReCh=oAuJvgSoh=QrwtgR1W9BV?d zRtp?pQZIl(>7j;R+fT75@YmiaH^El6f(K9*1XD}kK9cdb*eb;_1xC?4LZ1z%3DQX{ zO5XvALowy3fTYM>@dMDDLb;)wSlHhk@rC3q0KK_{X-6`Vt&_@@pJ$!L!we@e|JBFK zYA$OwtR|v7nEn5dWDfi&ON-nGW1}E26I3Hqk-}kn3A16Wi6mr$st`4bt!cy5?K?`0 z(I=?Fuhzk|0tq1RD4qvUu7AW)jzvyAg}nJd5y*c3RxrUPszNeFY|_*h8GQgUOOdky zG&w*mj$QHz21mgw7x|0=z|-#|Lo|m9JvvuvLQn*?&(#u(_BN%$z+*^Te`gZ}Vw%`0 zMbHi(2jXDk3c7At9!_=h9h=IX34E+NoY)wC#KZ@xqCmgRobGJ8Wg7H(>3u%wGRbIy z?{9YKrUMN6*QlKPVP6ORG7!kFAhEInrEFlOvwTN`_;U~yz8eJS)j^stHxT$B#Et1Xkt5Rr(9h)8qWA)jEeo&?{-_lSZHkR}-C!}oT0tzfL5ti2H z56#aXZI`joeDCfy#ct(OWfL@g_mfu=(O*ATw3JXKxy1r-R|VAji}jLJ$GNS)G2%5T zTvBQV$chZGimWZ0K)MA2Q3_G&VElA&5#a!OnDP6gg9JeM&P|D^$fdAYgb==<;bP?2 zpo_WbO7 z{*>5u82c{KT~X`TIgfR}e>pK_GVdA5jPS$zVCi|-=+%|PwjLm4icta>%tM6maVgyX zw`vdp^4Chz;x&8(^!?OeF!j)sY*!B{6>{Hu0HM#YRWlFB zdT*z}Jrv?cAd00eALC%W6TA5SUj#%c2p;v6>^rLbvfFXFl^!a0Tn?N<%Z`RF0AL?X zD-lDbSA)UfC6X_+tLEght|xhgN~b#n2t}5HrQq=ON&=@c{I;$v3)nHiMJfI!wO*xK zaJ6_^JBr&WnH|fsAxZ_oL-|5lX3VvV`)wlJ`~)mIk!AbJ0PS*M6BY28UEmg`{$?f} z|A$r{Mjmx}?2zj0s$E;9{W)^^cJ-}nhK!s+7!yDhWV1?j@pPC z8poxLfC`ofg+)Hbn~z!K+k5a0;J*GgF69(D6U#) zDlJA+0p~;)en4xVEY&ze51ppZlMN5+Qvv}z3se|PG~#@?_SZ@&P~bC;QTX%Bh9zgUZAv5~bff`=MGk{*{I*eOUr`!}(d>h4lWfowwk^}+O2GH}`+FT0S#)oqLD(5` zE@bNwrzTA7mSU@ifJ%KVd6xu=NV4T;6FfjAZ-&Ci8TsCmJ_?Y_+MHpVB)yVHJ!8o5 zl1FYH1Y2#r$`6U-dpjr1Q3GTB0>-neMIrB<#i`TO4W}>0CZ-z8)uoIa*0F2>5A05O zvzxWo@+n&6sHV@goqlYie?0ItSQd~=4TQ|uAw#LJbBekb8vpMPv7ziN)CXy8J!nRt z=(J}{X6l=t53UkZ-W+=IbO`Cxxp&Pk+Y{LQM9L{OO95Y)XiW(mxuI6R^@__~$G{ud z9R}>V*NG>XCDd@fU6Y*v|IE7SGIeA$_(@M8=ycU8TDY4LIsW|a>7~_mQA?B{r!<;@ zUu%p^@TM#kjmJmyzV5yd{o@V)%I9NK_oYO#>;KeFedw|h9gq)u-H@GceDXcF-m&_9 zm+sg3k${fxyYEV^9QajoO7uMWwCK&xxX-y_L;G_I#=d8Fhy-^}EfuUzzRs4S=-AjB zW}e=zSsed+$}2tf(|hd>RdcV--&?-!?To`KtdCPX5%eHKX+!jiVnj&)1p|9u%k@?M zxnD$wFdMh*35{EtPVL3UhF#FD{Pwbc8ygKOu^y(czV0O*ERXgpTkQ(}X*2v?)PE!b z9G=nb|7?JYDqlQd73^9{zh_mo!-_uc_iI(nX8QEotx^hZoAvFcJ>_eT*B#vBk^e)! zzq0b2b+_{q(6jLgUES8NvhwPCkxW|EmFwT9b$=8KgILqUT1}RJ0WicyWHClDO|~ok zdUdAe!soJ6z@N`fDJ0a*>n|WFV{M_`N^QINZ}HzS3zkFIER}d@tU<#nRP~U>V!Cz9 zMk{0Hw;J%--@5X=zzL(qGph;nkIzhB4snO457oJo6kcpD)3%_{hAdtNUKm>cuAu&E z#%N?;W&Eb}7v+{W(y6+)I~r>V)q*N-reF1yiNc(CeZ_vOi&tLKzw>#9qOXRqJvR-UU@r`10;x^v9M1YTd9 zG!S_;TN{P;A1?lK``tN}h4zo7R~9-yXfx3F1N#Q%Gdow`J}!M)%}DOh{~oJZ@?}rS zw})!+s^9x`%HqDCddv`N+!rbTJ#gjUY{z5Qz!?3neGRQrk%I<%ul{_sJ6`SA=>Fqf zSDm#Hv6b+p)xd8lI9BC>G5+oR&reRSeLvl`Nt}`(9yu6KU!JZmvm4K?yT3X!ph12A zwff%PRdvK;#nQjM7;&vg(7ddEBPr7fcoUD6p@VTmex9fJAjz-I3C#61y*%vbBcSIg5;$90Xt53sa4<;G)CohV zx!r0k@~`oEk)HZbHA3!VUA+da@23uE57sd3Rng8Nu zz<^~3gb0!CR9eMA1+7f6T?g|uO&retAvn11ERT|PsHD#!|A*G|%maH^v;Bt%NjX!h zbxA=dcHB>2NB=u|kPi6|Nxh88BcSt>Pj%&p)lP*fCCm2jIPusk12ZMF$hy8KI%G&! z3*97@zMpwzWl%~byvlOQKPBoZoo!9@zpX{pkqs)Jmp!Bb4Z9K}FnUTCxoU*z{3=NWb+7iP z7=nd-=K1Q4IUd0{TSQLMYJraEZsyf#@u8>jl4*=4&G+AX8E<2#Ps?}dn)QEX*LTp* zGtWr9k>UH@(%QK-%1?IAzwMCoQ7`tX;O#~VZ2^8QRwr(T=u8LBbT;RWasfOH@A=dD znpu);yXs3;;z1xOTu4Ia@=eI8#_op=E!Lb)!PPK^J2xHKj1tb-FE8gXc}^kZfGi2v z5TSt^xo}bQD1vk&5h0tPem-amVe!olq74GM4M?b8c2?Dq{ne!CT~8f*E+6N?!r{Xc zyyeXvRSARJWZQvC5f&cirQq7y)?fse(DEm0y%lo#7^;X&n&u$QgxGQ$GqPDrd6Zz?X_Q_V$ zvRj9CBYDfbUjrLFrl&SG`Q>n$R$Mz9^^tWnPims=uK}^q1-F4 zf=@}~vwm$A;*$hpxJ~i(GP(7;;%Mh#7S1Ho;U^9xYeE9(krnn->+dxRJQjATJIK2s$%<9wSYuY3ziaq2YwnbKEH8n80g(upPcp#u+D8wk zyqnM_XVH5RJns~@e+TG+eOx7Z6P%ofkcysnRbIOdzS2963?CNQPc)^RY6r-h0D+E` zTcs3*F@$ViZ$HdQVrz4%HHxtmYEvScn1D?NoWQl;@@z}gNQYiK43}{d=&XaE#ma7? z=LgOz9=5a0l=*XVSayEaxYHdOVl~-`C);Xh+(je{AEQ;9W13Tm+B8@o8Gs;k>K@AY zhFZ%cO&nC_f8_KnuWVmEnAfh7nXA&4&0|F}a=Km{TX~1hti4M)J--jMvINxR)myA& zGD&WVl9?tY`P5%)yV?^DSgYJU<*7Rmi7-S&1z;5wL3GBc-e1)fyt(ck85ae#p37NP zrNw<9vIt-ZLG)pDd9uoMdS!0~%9#mZ{QP0*5vhFa`utcYbXS#wH_s8H4Um-~;zO?& zydyX(7A{2cIk8nTE-r!85w7@SJdFyTG?9e~-LE~xHJX?S5bH{e@VpO(+Cg2x$E#-O zobXqBG>UWUUL9-tI!tH?4<~2`oo<-MIAcYN<6sz1lloCt^UaH_24Y#-&TI9{_9@cS4rJS z0}fC7ZXE|BBopdkT&Ffjrb5Jdm>$|gvTI~9(>o|>TbuGGKV@p~Y$C~CM;O9WBLlvx z8hU%QKpaELAuoyJfb;UX!!w=S6GRA$SRacsso_z)xPT!n8x(Q*lg8EP7DNs36vM_6 z#_jUwwg1BSk&Kigd~%c)DWaYtU#_;aPd&8i$DU32R~3|h(yTfb3d02ogw%+1+e`*E ziANG~)f*b6@)M-QaDV7JXW{alDoAabJ*saj@#ZvuftYJc2&+ORKH%{?o$@^kZJ?Iq%o?b?Sd)G}Z-0 zk>rm1u&_5nt=7tIJL8PkrXrJss6q~&!2mmj0o18Ylq$WV1vO(}MtR>%oY$UWfX*C} zs^F0$pf^+wX$y$K@PTC>V8}y?80b2VOzAO-6>l4!1;}%-;_oc{!anT#o8)B(DbGWG z2k6Bx{W*+S<>PQX0LOb#(}-tA;zck}!2^6bAf2Ud34fU7*}T3ex%4+;pe8Gun`&99 z#=qAKQKK>lCmuG0p`4LtKFgzQAOM2t4oO=JgAuR3n<6tvX~FbZ!2Cjx`464eVSU#(Y>Zz$ zz?9Nl?KeX_A!;+`{I_UFGv?DPeGfjcY=;O`4p?)1(^?0qm3@TiEVIIcal_i^=dW&> zT|D}>P;;7R^(|+B!PCI7W!H1=hz*@IfooEkEV*lBHZElQqenmjWW+oHJm!%g&QjAt z_zw=20psWQk&7Augd1KLLdZ&RN<5ptfU`L{@;s-y)kA%hg;)zyPcfuBdHAH9HDt~j z5`=gI8{`xqFyKip>*Q~i%o`s|OBytR>Z523Ns@Jj;4X0_Q(I6b$qnW`wKE1tHTAL~ z5Nb{cShCc^j{Tbz;^`d!eGH1#%_G;y8wohd`eT$J7`IxEJTF8Y&ZhQq)E{aYyxC`S zXAyBeA^tj&9_ObR>{P2P__1;_xd8ajWrNn*33EyJAVG+T2zK-PsrJwmrPjA4tCG|L zBfeTJ8VcmZD}439as2KCIpP?p5+$#ZG<36ATaABCJ!UAs|>S^jCm#&9!43 z3UB?U1GDXZ+*>4`-mhSUF^?osH@yIK3lC}+0>5qoBo?Z3J&qKz&Q}4K#GzmqvR4@D zgnbW22T7$Iumz&b2q~)Ls5elS?ReTpgV)kpd3g6vs_c0!)#>kL4EL{3XFqV%Sged_L11q;mITc8G z7LMZJpjcu0ds{~*L`dZiQHM<((W7{DwEsx_2^R%tOer8!o$WF1cXF|$) z-=tSsoYxf7-tEPc2+=;(bsZ@Obu2b|?NBF&yy^}6hB?CEDce%BLl~e)h%bTF`ViaM6NtclJ3mBP=LMhL?uYFKh^rux$|eR0)q{k9 zU;X)%;KB)a_3#lABjl_R@2tWcezn71KODz|aJnp^6Q@~KbARL(%q)i#4co>8I9*uH zSYyMnDUZg3=MEHa4Kw{uUMk*)cH!@r^%LLJRW*8XBhg~6G=b%@maD#6E}aUE^d=B; zzo_@I=ns!=jJrJG#G?de8`QziqmC3Ujkhnoj!*fcE7E{|ANLT?n6&bgAS*|_zEC{| z_SDhzF(Ik6iBNr<+GmcO%*h1s3}oV^Z?@G$szdQzNahGCrnm3vhPy{QAVfu8^Ti2@ z2zcQ?y{NBKqt~G_6RMpyHS>ni>%~HU=TuK*uv99BpA*T^}?4L@;oRjK|&cY0l8?KN{B{{j3Nt`mYIxSBbc2 zA&PSQ?O}awA>)DqZr$EfNMB)-C4?XWkxsy8$=-ZDM2J2_pJ(ASIoK8`>&K+}v1TL{ zq<`lJEf;ODcZxr1vD)${ukhMBl%@GwEzY8ImUzMulgUUx6M&5oR)lf+$R({P*R9O< z^>Z1`$0t*atWdj#TTUMJoM6B9&bk#JXmz2&D8fsd(EILpTa_U^9Sw+qJ%J>!9%w2syx=IuU}Bt2I&W6B|jS4lt*a?*8bC9 z@`{_KAeT;NfBC*_=lkMCzAbzeJ&KHd98`>eQ}E<0o=)G*Oez-cG2j2YM1 zZrbxqJ6-sN!Zvr;ABfO#i&@^!dL*u)>-^1cJRS){<*NH4e-tl%%1_Y#_1bi|mrdAl z=IqYF{Kv1>ZEAeG+16xpYRc|CPFnlL_8X;QGz11@~5i+yn zDy{Fn8vY7F*UD#|i4y8tyN-(mYgYhHe%OAt)~|-*sLM+{A;iDgaliU2(8q|p2oa}D zDi)rqIZpUmEXeOqobgK}Xl}&FOJS_ar7{yYT@-e-DbEI4IXMYr9s}f%E$i~r3CI3> z{|!F!lP9(Bn)yPm6rsvT#3vP!-}ZQhm{mG;eE+ZsfvXc<|M}ZNwpIH5!o~tlrJ|0# zX{`F~N#>j5U?F^G|2@1anE9vC+_!R*%C^-_PRy0xmX>i$;|2fapRpcj9D@VK0%op_ z_YiaD#bZ66n3Ld)IcKbSSD%kKAqOeqt@(%F9mt@Mgb-HPnalJstomq@HoAg?uyoXE zl8GdKW2u(Y^-;UiwwHfMwY4&2FNoCaAPa;=CYgh5P(#lPkwE$4I2+%(KEsrOTh&na zo+9n%^yQW_|c}5#rruqwvc6DcNy!C0Q#QMxC(W>>oc)eAfX&;yK z`3@?D^9=R@x&k3^Y3SB#w19^RF6hezFA(mZiYnHZHk?Sl;NS+SGEAn=6B+3u4y%0m zRC@e2)qWe%mQ5NOdNs0Eqo36&N>3F^a!eJ&UA~ymib{MMcV-F zV|_AaLQt@k-Q0^%8T@mFNXs=1JnvSo+e5O+WN(U$PB7>JVuT#ove;7P7r`exnu@mE zpw<*gCH+i3eDn7E^dk+O3ybvdhn1zF+M3^5PKnZo1(W^ z#WDTix^G_A*|N7_YVW4<1iX~T2~aH(X6+SR=&|cbUA3#@gad>Ep zo>fT(#I1Ro)uIAT)G5dBC6eVF{e`_~C=N)p!#Ht~SScIPQ#G-r8LQpOU&fgvH8>aU zzO+cV6>>-o0n#TrGx$_;{)v9HWA7nZ3B@3M4Q9ECwFcv@|14YnS$YPN^k{+&y!dLd zbxXe(M?sQIb1hMnOCAgaJqu{2%55OFIC-e{xr1`i;qFdEd@l#Gv*J+PWCI3~RC}jK zyhNn}?W-bp)3tU=fu{2w`*#H1L!~^~YU0^TOH|}>+g@z~ooqcv#B46^WwEKl^KAhC zIeMG$1cLH+^t9fj$(rb*FP&eXocY=4nD6IzK;%t?{1xaB(KV3p_7FUYKB6sWj+IK7LN7ykh6Jv&xyX}nxjJJ zhSZ|gas;a#rpKMfB6$$$;P~FX{2xd!E?@u5KG5zVxzX7(q z1T3gia1AO`067H=RmYNAf|t!B|F}_ifog-md7wkFNP&RJbe5 z_PZ0AS#NSk(a#ohs-v<$*a?5*em%j&?9Y@Q*8K67hsf;K`sy{u(*|}br4zn{^9g?8 zIcEcfYnJMe3O<~ac#Cp1b;v>0PBci46RLZgg!tsP6cD$9^zJ~u(M}v0UXw|z)ptZc z773#E_mSM{u(p2Q82!;i;>n^%(~G~|srp>v_jV^Ay7`6Zm>{aP#S|J6rpMRA=u5@D z_OseKQu95R#O*0m;Xb|7D~<*oV=u3YpHvjAf2lz?s)MyZ&G4ghHONi|y_-Im4%tdl z*XCJ?YD@f_=&oROg?pRPh9ZI_ORW9H(rpL*Iw7)M5MG88^zc+v^{x{TQnfWa-Lg-X6z#ul^C_&NPDp`+($N$m6~YeZ_10VbgXvX& zUSGLAiP&p)#AC2C#kp(p@W~=a!YprF^X(}I16E?a(VDQahgo-o#7f z=;{KK!NSqBEkEO2&*N^~(+yv@YQ~E7!2gB#ADb{PEbrgzNr!s!zpAJV?9+=6AUvr?0N5LaQugrTKF!Hl=9rb;) zP1mFFaslz1>zQBg!nZ%WapT)}*LwF8{WeQrqQpI;ex!K8{h`#PRCu+K%*#5@sGTWN z7TjISH?M~J08_<%kJY~oPuZu}yFOS<@_P$5UnnDf)W82yCqr?>+IVY_d-_jmkmuv$ z+=*SC-47m$o4)!8!PK>fwx8Mk-=p;T;hWXW3tJME@jjUWIaWz8)V>TOT|-05vr@<_XZ(qd|WSbQjSbGwy?_QSe9M5 ztFyiWME3=qIVX*{>GIpG@f68Pn;L+Yb6JH|!7;G+d;2 zX5J$vFREz*$uHrlT^}O;XmM{}ur}s@EDAs3+}N>&iE)Q3=VnUIe^1akgB^sqQLpkoj!l)48&* zC{+1Xx7tsS`76(wA7TyOSci0e%u;f9>nr_lu;wgkEI(R*A0nfz>Q@6sw#q5aQ=56Z zN9yK@i)G8X(VFu?o^SKly>t{0sK0Koec>FO^}eJh%+2k_>$isscDdYlNjnXlOdl)y z{g=7(qW9BCyH|2I`}V7D|Kc~CrN^k;S6HlVmPZR#y!-i`dPeh^-OEp|$G0=eWpn?2 z;rL8-%U;&2E^*!cYG@()$l31&ja^@RV=rX>P8uw3ez9r06b-}{c-y{Ok(_U4Q(sR_ znU*hY+I#%ZV7uL7q4tlfdvs~-p@Cn_#;31&4*em-`@dP&aUmxoCpPLzscuObej#}6 z&f=IrUD@krLv%Mx@7fBtn10**KH$MA(eHbGQ(y1?PVqQL1s>9V0})EY;pe)4oc;QJ zL;TW5^6ATp8^7nLbc@AgsIB6RX|q`Oms99}uVXi!h%@8sc1MQQARItTrKFZKW~M== z&*Ce`DK_D^tI4;R=pE-i z>bY6=CB~(M%zc&sK^1?q$V;0;CKSkN+;c7Yikpi9EZ89#zsaFOZ-da}9jVCyb;-N> zB$-@|ND8@Bl=Si7sr^NX`~BnX>duFRCdGYLIyRkrLO&(aCFNvj$|>Cb4Wnnb^wAFa z$GiMWbka>?<5Je0IB(;BZap_KrY|*XIyDEEmZzUqIF3K4c)r0q#l-_w~-6Y6A zb@?;7l#z5*G5O$VT9r#kjemNQi}>6=%k&0Lx{qaATWH3e)Qpb0jBoPfZ;T`fwsVz| zdDJDtlzobCnOVJ*9*sTEu1h!frzKftUf0j4oX&Wan%OX&*|L;zcRK3>E_+-*dosr8 z)inOjWX5Ivq?fp4F)KB$HeJlfSpJ+5G@AZ;DMidUpRbY8>XJT%%LNT`k*>Mu|1ys0 zpa1JZyPBF-q?lP%mrm%&joXp+#4=r=Nan|cTt;V<>F4dkC6Cp`qh0fL4(02m<&PJ6 ze~+O>nqW(TtUHs0#OX}9C_dp7x#LGZyC~mw=7K%GfPLA0iQ-wXl)t$nAD+%O-I^RX zoxK@dzJorOl>~|xBjGI5|1Qey zPhH!eWg>~d;V!nM7KFOeE|}nb6=}u+g!P=hu+Ch@^`%$fiGHC z$RvHd3|n3)aJ_V>qxk+GrFGs&b4jfhQ1U3PB+&9wEB>;jDSnZc^Iy!x(q}PlmrGuE z&;%Q4LQcu(%+(M50jFAU2a=TfiY`YUx;V6v7IWw_#g*3AekDtZR(S2wmTNh)8)-gi zWx{}>HwLr^{bit`n78$OQFhuzY&s7vD#AVHNzd}uZY=XR$du_U`x8)xG%U~sXpC*N z9wme#p+bYOGxRj?>N8&9iHi8s<(h9UDDNz`FfB1%E@!$`u2Xg(J+?MlF1;?oU*}ZX zA3~@SDovLwoex)KBwi%!ywX}wvDqzOIo8DFTZM^6NzY8xj`Zp_p9=Eh>fPy;>&C11 z?W_oJ%heTDSZLr9IMpGKYmUw;8RM_`8Pr5VMZ0G!YbT1`XKNk4Yo60ib zHM{ZrRp6?^gc$KV_d@Y(*11^PCBlt1<+|EMMd;5pTd+22HotoIMs>PjZLjO?!x{1b zO?esEwoE>>Og?hB{#j@3b_3;(ZRO7m3rA=)w%fG?=;jBv8mlzD{rj#8-3q0k`uxZB z$GxvXha0{U8m*f1PboKY((1*$`j%z#abf+>*+#K)?c#DHE3N*l8!ZBET(D}Al4{t= zBQ*9mDIKmc=Qkwqnq)GX-~TCA`HNSXYi>-dQTi<{RSxs_2#Hn70uaWG;IW_kElBHWTk!JBKe>bd9U@g$e68wXl;RXH0h-m)5K zk#w51nP{|`<=xtO*V)skb@Sh2%bktpXKwA6Dp7yiy#8DB&f#XQzfBc}wBtri8@YAI zGj8ds;Fmd|{*^mMSME5e(46M(Y(HXTbfi7yNV^@kJ!7uL_S>ChQG1?LN0O0J#u3c6 zzqf4uwmBKKUV3}Wf`9AunHC98)%i*bONw^sN~iwaTNnP`IUsen`L0sKpQhHiCR3T( z6Nfb#@#s4PM!Gl1WEfzwy2MR)a(A`rP!PE)G>5||AZpLFFd4wQ zT!IDzhzRf0%WQq`-tlEXuqKSAE^0QZM|%&Sy|q|u#_TzAqsKa~$ExeHn1?oD_S&fS zsu(FR9qDrVD*^m9i$y@5TYJJ0L@= z_Ui6JY!>yxXC5fWK72TbVIW(#tN=&jx{c-qXT}6%>)s7vnI_|S>yn=Mz~1=G9{QCY z@<86@>YlWcKIgdJW8o<0xn2YZBr+r+9e7oWziaZoHc@cECR=|OlEIWbCSnl7>dIqa z5#gxK9El)+X;u~NSH){FfCJvhe=34|%z>(UiMtbsk?Lwx9k>;SXbJ=V-4MtPK6*CT zeZ;88ZDYE5jNhy$Ju)hC+N0&SWUmFHu z5*rh82@)h&9(@0dR4&mQiQ|!LO9-p(j}9;Z2{g7Ouyy|+ZaMJjwXR-y4*nLieRB`) zy;0{8-W{E;K@ARgFn4%ZYUp{`^8-?z&lewwp}J~Z?@Y;)PpVI*OP*WYd}5;3`z-1O zNh*hY<%#3UBg?E87Y6$^yphGCTkST(M8{!BQ%EZ=-qtX^0(RH-z9N) z?To7O?w`ex!`pw)VQvxcMPKDFdzTy(_P!jre`*Cd$a*OZeasxLkK_Fp!RXdz;@rdV zdAz4i1Bjs#{+|*;!9Q}L@V>#=K!p^|d6(c16ZbO=QIqvr=icjkStPpuO0u;#o(T?gJ|sjk7L*A zV=rWF+KdHl?NvNlWa;K|-G<2jdsFNlD)nPUqoV=dBON1n#P0#Zkr6z$5n`EO6Y z?N+RfZJN+K_x144vE|aC!ymuudwGgEo8YswS9`wfguaY4Jef+P?MEvMS3ht3Cepz# zP#Wi?K75gD6zy!~@5U?7Dn`$i%sX+-!-&JuU%~S zg{|!us2|$TsxL})eY7eQ%Iy7S`_$-?`@A9Q)7ImE{EF_HY5dxM@#o*}Uja}5l-vJ$ zBE4L(TwFmO%Ygp`=PcKgf0#U-7((@q%qnGW`F3aZb5f3^etoH3edhh&!HMjpF0Yl` zwM%EqMD|a+B=1UtBmH;F+8@}@-KGD_QD3SPw4|T=^Og)PL7z+F33kn2&u#x24v2sp ze?&Z?G2m{^s>kQGo*>yX4K4byRy_Rf&&ySid_zo#yrKk@e=W01Kw)iDeZBVz62z*6 zB*jC#ZZ=7W)Z3oRyPS%konwZ6s&L36=ouFH=W6gTAk?~(l(v2HC|-B;eecE#Jam$g zK}%d}i;$5{#8P(`g$E53YNxGcRQc*UW`@Db4{-ILmD}G;g z-ah)SJ6UDNLSW~~FYh0`{dLuGhsAi@l8T~8XnBU9t{XNgN+G9=_dcs|8&F-7C4=45 zx^(=LWup07Wv2f(PJjMnr_G^+he%#P{4C8iU+XZ}FW~T+ndM){Zt9sE6VtyL&UQU8 zjc`H<1PhhE_)WX}^ClxwkvhxuUzVrCrhC=Jd;T5Vb!yw#`>YpHhkmZa{`&Inev10u z)wt!KUmhKw5FrOGYbR_l;dw*!zgt)!NE6wkkcmAonROx4^yx1^+JbL+rRmmv!YvUS z7A_gJ^m(00<7vr?02GKaE9a`S^tn~?Y(OK4>);JN)Y5F`apMmFEg)@C21ruR_iuQh zqzw2_&U&HPpnQb80GmapJTF%Y9f6bLQA;N<=vBN?_22iJ-_^-g#4Sj4k%XI?oQ`56 zr7%jpLppMn2@EThT;%nHovr({bh&{(>NE>sMBk7V?$L z_nUT2Pqf>7w{3A=w|)DL{cSJBmy1VpYMiNICh$(Ft~NiUN|hW7Kgrw9+8g;!Zb$Hu zk8ONg#Y9a%3%MXZQrdy_C{Zq6zaj}!v=qft2ZmoEX|F^a3??5}d0r1q5#oSzF=j+H z#ih;2v&_80-F8eIdnZO&1ZZScO<&+`=#{Gq#4G`vK@3hF;7Ge!JbhVQKf%b<7D)3m z;x$CbxVg7O~Ct9yZPp}_9Kn=G1g(tk96O*17hpjtkw)q6Mv3Enj@K` zZXIq;P$8~4F6RF_H{4{ox_ai7rPnqW5M8>fC+Xa4f0uM^&WjX~thgcZ{G+RZE}`cC zYwtdT;SB${(QjYf5(!aP7eREQx9DX_f(U{Lf(Rmr2&-v4ab}yiy+p11zPB5t4h8h%Z z-xYcbR*8G@UhtMV#|ZZj77;GwtN!J>B*B=2qtym2nAwwGXV@hrW*fvcOQ2pyTq|w~ zp}#z}?fD2Qm!X$%#_oRMhPi()8dzZnmD6O|&m!A67_vdU0hNOXRey@wl7pu4UD~D0 zmA4cZNk|(ITo%|Y5xwPY9?C|@M8c+3X(>Yq(Cc-$yF5e&swM*D>N<{0+}+J>WbCU( z;Y~X!GIJ~o>jGIeSUVKW*}DKD>nmq9Y+2P)#%Cy{RK>0E^y#LNB-CSUxWle)EP+9B zAsb$JkkQk22wyoE)F4I1tRIDb1j1g2p~AT_5!}?i^Q#A7Il?_xSJS5;PzEtxJ0+7$ z$7b;g#j(O0GA^o#VJw0f#XVAy`R2`VhI-_%(i9mT7b_?ColB3Zsq#H{v_LCks|nq0 z5Z3c-eIl-~lEL^kj}QX(MBvVCU6Z5)EPv=jLF4+K2jsh|Ah~O0%Cw`?y6ixng|ce7q7ZtKAL8Mh%Zw@nFta2Y28p**m5aDtIve4Vuklp(euGI; zO_h*$WC(;`_O7fuCYZ+61_CrP-MJSRigiL69=f+!iQ@~saW{}NK|A@~S%7uow*BpH_6Q`co% zu)EH$G81fD&d8Lt(Ns!>@%E2{TuCW_cH9X@T>0K_7HAW~MV1IPq_Dd!gbLR(=Z$Xd z%}VQ$?P!ZyBMTScavz?!|2PTi=_ZhH5JT!>j!|eyIG0#@eX(XTe>7g(40oH-mTi3i zA5-ZZ+wfq?jacGB6?Z+0Gs~RO1uNoJyrv@6Vi+KNm`-0-4>PmQlO}D~k_uQ<5+Bok zNVblfcE5fkgk9^iHkROVLu}rY2?tvc3ayl*%Ar%lA-kye0^{CBUkAlm1e1*mroGkW zbwL-F`%&qi*}#S~AL}3I@mTP@w;b_pkJILP=RvJB>)9$1$!&Glo*4u(Nq=l&gqY}% z>F|ho>CbMpQWc~c*2bIJU`aO6Q$G*}MVFS0*t1RC)Ml@QQMb?D8NCxhfeIy$Aq3q3 z6JA}vshW|#{N#s6G7`6l1^&jp{&cY7Z=I_+5Qbd)PbYfQ5w`B_fWXT78z{{Q^7b97$NKRk~UXq zW|x72gj(M7m#C3XPjaJDur)VkqLi{_pc!PPXp@s5Rv|Q2zuX2j`Jx&qe8x(H(6Hij zmuSWZP-bCT&Q@Kcz5*YCwI35CoDP0CK$qWjHpa{2&OGeMqbYGV(8)!q#E$O1Q51l z>Mi`!Nhh;I2Mm=?l8rXY$su=eCvuc`K(oHLv~0ZDP5W%l#Z1=L3??A**4wCAgnhCy zy#8eN8m^&nB|){Ts6(fj4WkIZQN5>g9LlJmz&~+p7&(P(n<1Ur*Ek6C15^fnf{Ic! zh+L=~#4hz+=9#~W#G`$Ulig*od)}lWy(1s{+#Ih0u*oNAh)Zj^$`yinJ@J&lE0H^= z57jxJ9Eo9oZ}&o60<$N}?q>HY8}B&8i7ii*rx&DTQQLldzs9KIw~!J&Z4&Wj`-$>- zIrWr!rtytut>3x7h~~+$-xzY2*2#GPE>{ZofMS_Ff&P-3LvWEiFX_32H@D%pl&aeS zwu~lgtBM5*qz3RuHCeTb1V8@T-B*e`W6c3awIr-&SrI!sS)}Q>?xot*P27?-SmUZKF8d2j;HqDu7JlxPDJx#*2=*VR=S zsG3**Qd9G^LScDp0;*xY(PZfqkPF2!ouAwqDj!aMww}c_ZGB-5X}JY!6U|jD`#_#+ zht6F@b8m@N5tL~*qosifH0`(OMVRO$7Op}eHrl4R+@^HUrd%2&n|MPOhm_DLhN-n7 zTajcW3ymASH?&4?z%4XBd1iicN0VNY7fhoKmNmpR-oin@D2m0#4l?l@aXs?s(;n)bk^7MlhjF2=!(|Yk~i-P zBU$Qv$kp;;?M~D0{?61A2kXgX=*db~RK!Kx!DuUD#Chd=Ug~##MR)rq_5`;_6ifER zZ&T#hYbKTII`DK?G0|o-^j7fnRvrka`*(l1(EWxg=Pnr}?c3Kg+SkvM z8J`&8;}n5s=pSM*z`F)F==Y6k7`(zoc>6|-c=eBLccwcT;HwNKO0@(0(b&dA_ zh7DBI_b#}0dl&Y5uSdVa0TF-5@%H}7s(wBd!>_*mn+p9SR0DC#y;8m*+Xn-CB#o=D zP=kMX2LJdYf9+A1+Z3dx zsDChgdKYbaN<^SJp41ohj|Y=3tDlC&{97Ijl*N$W!3U-cAp4`>&oI*mc&Z;!Q&r^P zm1wfEsEc(xXbulM#H3FeU8y#z$_z;g?JX|VI=p9GDLcrqGSp&kz-~3bywcUkBE@}w znD@|n2$~SVOw7+2ng$gyq+8uSsA|d&*awJaNzo|2;M|wCs_3UT`{Y> zBD{Ac74M=k!O~CeiX9FIX5N+98J5i(k$N*Caz9vnWkhc0uENS)S>Ainq-S^4ua0U~ zM=0^$Q-F_(j@=bCxTjn;qWfc1IPb2`iiz;pJ%cx+1}{g1-;ZFzM%AoFB&|jy48}zM zjYt5^D2Kyl!ejT@MwNC(_4Dotzo88PL2Ry$+whtO5KJBmk3YUYZewL?|8m?eY~1$h z_~R$z&L78}o|!s-G<}_7>hfgV?T4x3*tqNaar?vZr_^Td)#Hz^nm&CtVfSpp2X5wD zZW;g@4=guxe?#t87UEcK=BsG-B5(MfrD7^p7EXYr5JEM~%?+IMe)U1zugS=~$>cYa3A|HLq&HL1FCV-u zn~DrGPrmcu^N$BfPo|Qor^5QpKUe_eZ7NG@CU56qS=qz*&kw#HPR1C#ZQ2Ra$cz#qgbKOOrnt{GRnPYRn(Z5#?O&N4 zIGi1X&*87m4e`zmOU;cO&ISqh8fO-yk_DkM8B;_dx+zxNPNCCzR@2Wy>B_BUtLNzI z=H|w%5R-HBKdj~s=a$N>R`NpWK-M$7^K`P{jTNiq{<-;Q)@zDj#N_-gsSHRuo!`3p zd--tgPygK7{drBI^~MU&kN$gVWsdNE{?8NZ?P{yNAMu)-Cn`vrW zdN*qZ5nF`jBbp?_g_SLBfGthUqpOu|zGF#Yd`WS2NonA5iU3$TgT2NE#35jxO0vOf-eg%w7t5t!(3^Q{*^WNqm}2I=*>%Jotpz5n1#3EmURw`waP*gU^7D3lnc);|xE3C; z?q|L3ujEL$fT*6V$6ZFmAvO~DHaNlTam{8)$7bpHX2`D7 zKqBovFV0Xuze&ql3xhOTYlGj;~&UGM=e-&dbC2Rv)I+>Cc~ zK0>W7Y3?qY?yflOu6pmTh3~E>?QZ1nZr1E>b-1nUIuDS%LUxaK_Yluz%tMHLdqnoV zea*cCk-fjBdq>`T$KiV?*Pfr|@151`op5>|(ABXKa9^kXaYU1920?O(X|P8Ryve+&6nRHg$dt9YwEN?7YfWE#0-^8UQnUzy~6 z>A=5|1tqfIUdYt`yJ5yvX=zyp^41l-HEm;b@_Xaho(L+57is_{SF@# z99q;KKI}ZSoH(>vJG4GNe1tr*VLY1>%`HswIjFVqvyzDcgAB6{$o#>;}=@TUS`KH9gn?zj(sAIeUp!06&(B39>4B9 z_MbR@vvwSCd>n{8!7`o%@t*|CoP=ndgqod%Ii7_3oJ2&NL?)j^6`VxZp1kcmc{g$L ze(faY_#_s28pn7V&wrXAbNWH+G|}wzqvL6k&uKC#;xr}s^i#oUYVB!S=V|)H>F2f6 zjN{WU$g@nwvn>9zY?-qht+QOSvpmPMe4n#|h_k}vv!a5t;@Y#4&a={qv$D0bug7QK zkmu!$=N0_tl``kwwa%-|&Z`~IYkbaYBhKrR&+7}$8*0xRJI|XY&VQ_(|2#f#Mqc0; zFIxC7T4gTUv@Y7sE`B*)bog9!MqG6L-epL<=wa-6j{)~i_{X_M8l4&P%=%Z$kW1jf zdl%h!#y8{L{-cg>u=eB<=KlzzG2=#W#G~F2gl-7rzNrlSH+(!0AD1|%^*X5>JCpn` zf8@;q=`0-kX2s`nE#h)L`EsM+aBxt496>rsCY=_L&T2{LourEi(!Vv*<#8bPgx?+A5{#hb(l2!9YzwF1P$}mb;FaVJAuzATffMYw>L@TQR}-KFZlXXrJpbM6}{je%uou1 zPz!nq3}tJ^av2nR-7tQ0My9lY^Aa2@HvMMTU;Ogs#8>MgIbo-c)`?1o!EA#PZ{e95 zx8HnJ^28gn4c>c;{UtuPe*b*5LIK7ra+|SZi z5^Dn)$|3WqwAI_F86d{%0VRR>WWS&tgX` zx6xPs+kaOFzNp8FypcQH9RK!s@ar4-au0u;}Wc7M0U-U?Lu zcXqV5H25u0nRIzcf-+@dq4egNK}fEY%wS6K$;=R1HKwf4D<Y_6lUWfQ z!A#ka+zIB{QT*8{+0i#EC$rz)YGukXbgQcf1`CxLEoal9G zUX)*~Q@nhaS^$rW5d!+8?_RrCaU*jE>Jg$d34zU+dHM-t}!!Qo!^{y76ILf80KKc)5Y3$En z8?`!g+}K9_UqQY*WTcc#oU&tAFPFqwlHNDmn%fGfSd4(q;cJQb|6i$5p5vghXa*~;EqZLHt>Bt|U1_scA$e;<(lJNtc5 z8Om0LkH3B23#ZPlSTJ;lf9@b7R*6LQC)9*RyZVl){Lb`UEu#YlsIuoAdi;Rx$KfPO z>~pn~)^+NHyKX{y`?0L~JCBB3M3=XwoRmwC?)NLi^)NkPD|^7O!(4 za3pwi&X^~jXMneU=z)7Em_&xdD)IU6x~dD2p+RkyJD)i>wc`BK;GdHXnKu);9fPh5 zv1X0$!0rd6gWg?yKe;YNrjmrF7IstHwh${Xr4`hq|M#~#kG`9jf5${^zw3dWzXh#1 zs`WT1tSs&5rv)0j2#MQ_Bkz9HT%=Sa8uO5P=iFktWjADyN^AYI#fePv!3F|*O$7(# zvK3!tYk?e&Bq}Y(HP4vay&>hFJ|exl3q@L#VnG^@w%l`6K#K$VQe@T>Jrk4Kh0$q=Li156EKmi4jh1W(3&NL=JPD6JvjKr^nbhCB!-fmkVqqR+$=t9% zSe>f(u)rtb?C)3f!y8lYvaf4=TyLYgBB?Vp-j&n~9*n4a#W335)%x|{<~yTAZcYF8 z&eG98F@CH(oRm+y)Vajtqb+&3SvI<~)Wj1K(s_7qKJC`a(1?5TfVsL-LQ}uT@o8!w z9lz>^#`h@CxA~U5H<7JabaCY!-t~t!U2azm^J3*vD)YROP}d$^4(WMyuXttPyR+Nv zz#&f1@M}b@Dp@=1StN-!$}6*v-~0-&5_Cu>qEU1hEjUmqY(gbU#%@AhPaCI-N0X7#Jd}Dt|o3q z^+#mubDWlv!4PVF!{B=$Cbk;^XgucaXiTo)VJwAVDqRtkP7d`HtCZMvd6|5TeD~m@ z55e`r=_d!b9)`qD*`3`jfsNg4v>aSIOS*?L-ua*fpBGc-OHMVEDzTUoG;7=(`xY!! zYR7i-L9g@p_iU*$XRDhJXEw)cTcy5we!gk7XJ*86{ltfIL>{OGkO!(}|-7FjV-bDI)>YR|H{MOW9uyj>6oA6UTm+6sg>FQ!D zVV8$n(-W=IHI<)*pSifq%q&XRHp~e>f4w#H8zNKJ$|mCR)@62yOQycZO5{b_*6f;^ zOvCVJk(VVdb6a*Yjni`?K8;&*d%-eIi)^=EUFGUWx_@u#e}g5TEU{ioB{c0lbMs%4 z|9!qF(|k5}EAV{lHwjW_a7{D_esP`fTOWPx z?owkHkALghxy;RdyIa><{6pIIGQaxm9+M35k0q`vHy_{bwU`%AZronE6>_`Jj$PtY zuj{Hr&h36@Yl*a(?Nyn!+XJ2%5}&tR*W{OO5BkkZd^z7c=yZFBjbb@eEY4NJ92no1c+7{0cM&7?WJ!7}pHq|J4-(DY%R+0Ld} zo7{M1hE$o$v#p0qauW^nQr}+hY(0X?Pqwm4S6C?~K^V^+8uZ*NpYbgqWoDi{w)L)h zbPWaKJcYp-KqQb56Nn7t1QY{AIAtgXR}MtICw9`kJ!-lFg3jx6yhg zme1VX2Z*!zABHq_^*v2Xvs3CF?K}b|vi3L6lLA|Q{J@zjM_=q*yf3Tz`|n&&!F4yPvMI<>Jd+kfiq?UmYJQI|msa4T#*oBUb+yRWZrxMz7~Z8>(R2qO~|>D)B+ zZ!K&hFTf+&L@C%iwJV(_`x?i&eY3+rh!1#D$CL>DhwRpGSwM3DH&g!&Sq> z+otkK=DO~>lK!;?zfGmzx!g;M4#>rb$L{YRTC1l8JJnjq;U7@vH?&Z-%c69sM*~R7lh1bI>L-CLp@4lpfQ9GqP zH`6=|wM1|0(*6DI=;6`;=PEm;^rI8}c6uFQwQqP@#XqAthbc8|ut^E1JDI&Bkv60(zgo$eL3roRgxZ+FnP z=Q6=G^(BTD`ihG%SP0p3iQ>Qh+}_;HbT$;o4X844BKR^0IAfZ|-RgW%g&osXes+B+ zcH2%)O)1ia0VajfU4=0NuBpZATs>HQ!@3kZ*A&z8Y}ax>1*fmG?$m2A^~3dWEj{2qFgFApq$OG=3W4pnX@r2!62m%zZS zLEvt&Wp`y>Z?fp)o^+k>`Tc3Kx5Zr@_p;j3RYEA(bgK%7adV_8V4g`f3mzs@!K{@tAGt$jZ6hIDi| zqm>d$*&KQ0rgdLk#ZqS+ch0s}y{B?_iiFF2U;X#B!Ay0E{EJx04SeC<66^kk>aB^} zw;ukaYOL9rse7?C|HG$;y0s~UlEbj6?$46g!*bNSrux5Y_#C}JVe*rMt;z2$zXz;@ z-uBG3y(MuN{cJk@yFOC#$cP;r3VA%)`^BjF=f6QX8ZGPI+)N^Y5avk`hFshiVDz+* z5KPtK1%flA3=={bOq~|Om>dch!dbo77b4K%0*jG6NluGV0{MlD(Ly!ri*H3c1eV@O zjyo;Amt8GficvUPUy4;h+*pp&xb}28UYoCIIYD1~WBCI{^TtZzJ=3QvAI%+#R+22e zH&&8u!f&jm*e5+*{p6Hiw3_N#v$2}y-f?3s-D~{m+GpR@qO}bFqm8vMScKquX6QBN z^{hy~;`Quz(wpl!ahie~xrwIE8+j=X#T)tQ-kTc*nc;$)g}F)2n?;5B#hb;YHJh6y z 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 Date: Tue, 18 Jun 2019 11:08:33 -0400 Subject: [PATCH 069/133] feat: add BLOCKSCOUT_HOST, and use it in API docs --- CHANGELOG.md | 1 + apps/block_scout_web/config/config.exs | 2 +- .../lib/block_scout_web/templates/api_docs/eth_rpc.html.eex | 2 +- .../lib/block_scout_web/templates/api_docs/index.html.eex | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4e62d4751..4d440f38ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - [#2075](https://github.com/poanetwork/blockscout/pull/2075) - add blocks cache - [#2151](https://github.com/poanetwork/blockscout/pull/2151) - hide dropdown menu then other networks list is empty - [#2146](https://github.com/poanetwork/blockscout/pull/2146) - feat: add eth_getLogs rpc endpoint +- [#2193](https://github.com/poanetwork/blockscout/pull/2193) - feat: add BLOCKSCOUT_HOST, and use it in API docs ### Fixes - [#2201](https://github.com/poanetwork/blockscout/pull/2201) - footer columns fix diff --git a/apps/block_scout_web/config/config.exs b/apps/block_scout_web/config/config.exs index e601e299f8..28d142eb5c 100644 --- a/apps/block_scout_web/config/config.exs +++ b/apps/block_scout_web/config/config.exs @@ -41,7 +41,7 @@ config :block_scout_web, BlockScoutWeb.Endpoint, ] ], url: [ - host: "localhost", + host: System.get_env("BLOCKSCOUT_HOST") || "localhost", path: System.get_env("NETWORK_PATH") || "/" ], render_errors: [view: BlockScoutWeb.ErrorView, accepts: ~w(html json)], diff --git a/apps/block_scout_web/lib/block_scout_web/templates/api_docs/eth_rpc.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/api_docs/eth_rpc.html.eex index f85620681a..3a0338f4a3 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/api_docs/eth_rpc.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/api_docs/eth_rpc.html.eex @@ -2,7 +2,7 @@

<%= gettext("ETH RPC API Documentation") %>

-

[ <%= gettext "Base URL:" %> <%= @conn.host %>/api/eth_rpc ]

+

[ <%= gettext "Base URL:" %> <%= BlockScoutWeb.Endpoint.url() %>/api/eth_rpc ]

<%= gettext "This API is provided to support some rpc methods in the exact format specified for ethereum nodes, which can be found " %> diff --git a/apps/block_scout_web/lib/block_scout_web/templates/api_docs/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/api_docs/index.html.eex index c665fb88e6..0f97b67d45 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/api_docs/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/api_docs/index.html.eex @@ -2,7 +2,7 @@

<%= gettext("API Documentation") %>

-

[ <%= gettext "Base URL:" %> <%= @conn.host %>/api ]

+

[ <%= gettext "Base URL:" %> <%= BlockScoutWeb.Endpoint.url() %>/api ]

<%= gettext "This API is provided for developers transitioning their applications from Etherscan to BlockScout. It supports GET and POST requests." %>

From 66c928f1c916b336deed748e3ff18185fc46faf0 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Fri, 21 Jun 2019 11:45:08 +0300 Subject: [PATCH 070/133] make block difficulty params optional --- apps/explorer/lib/explorer/chain/block.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/explorer/lib/explorer/chain/block.ex b/apps/explorer/lib/explorer/chain/block.ex index 9cf86b570b..32905cf076 100644 --- a/apps/explorer/lib/explorer/chain/block.ex +++ b/apps/explorer/lib/explorer/chain/block.ex @@ -10,9 +10,9 @@ defmodule Explorer.Chain.Block do alias Explorer.Chain.{Address, Gas, Hash, Transaction} alias Explorer.Chain.Block.{Reward, SecondDegreeRelation} - @optional_attrs ~w(internal_transactions_indexed_at size refetch_needed)a + @optional_attrs ~w(internal_transactions_indexed_at size refetch_needed total_difficulty difficulty)a - @required_attrs ~w(consensus difficulty gas_limit gas_used hash miner_hash nonce number parent_hash timestamp total_difficulty)a + @required_attrs ~w(consensus gas_limit gas_used hash miner_hash nonce number parent_hash timestamp)a @typedoc """ How much work is required to find a hash with some number of leading 0s. It is measured in hashes for PoW From 7a733e66b575839e59526fdb030c745664fa6acd Mon Sep 17 00:00:00 2001 From: Gabriel Rodriguez Alsina Date: Fri, 21 Jun 2019 09:52:21 -0300 Subject: [PATCH 071/133] (update) internationalization files --- apps/block_scout_web/priv/gettext/default.pot | 39 +++++++++++++++-- .../priv/gettext/en/LC_MESSAGES/default.po | 43 ++++++++++++++++--- 2 files changed, 72 insertions(+), 10 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 4ca9c47102..1cf4275fcf 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -112,6 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -666,8 +667,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_logs/index.html.eex:14 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:116 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:133 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:102 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:119 msgid "Search" msgstr "" @@ -1480,8 +1481,8 @@ msgid "Error: Could not determine contract creator." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:110 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:114 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:96 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:100 msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" @@ -1748,3 +1749,33 @@ msgstr "" #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 msgid "here." msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +msgid "Change Network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Favorites" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +msgid "Mainnet" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +msgid "Search network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +msgid "Testnet" +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index a78a1ce9e8..b1e80dd1ac 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -112,6 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -666,8 +667,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_logs/index.html.eex:14 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:116 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:133 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:102 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:119 msgid "Search" msgstr "" @@ -1480,8 +1481,8 @@ msgid "Error: Could not determine contract creator." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_topnav.html.eex:110 -#: lib/block_scout_web/templates/layout/_topnav.html.eex:114 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:96 +#: lib/block_scout_web/templates/layout/_topnav.html.eex:100 msgid "Search by address, token symbol name, transaction hash, or block number" msgstr "" @@ -1714,7 +1715,7 @@ msgstr "" msgid "Anything not in this list is not supported. Click on the method to be taken to the documentation for that method, and check the notes section for any potential differences." msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:4 msgid "ETH RPC API Documentation" msgstr "" @@ -1744,7 +1745,37 @@ msgstr "" msgid "custom RPC" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 msgid "here." msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +msgid "Change Network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +msgid "Favorites" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +msgid "Mainnet" +msgstr "" + +#, elixir-format, fuzzy +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +msgid "Search network" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +msgid "Testnet" +msgstr "" From c9061665aaeaab24a2cd5d36fd96eccc1049e5d2 Mon Sep 17 00:00:00 2001 From: Andrew Gross Date: Fri, 21 Jun 2019 09:55:27 -0600 Subject: [PATCH 072/133] add Blockchair to list of closed source explorers --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 416f585c53..cbf1af6acf 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ You can also access the dev chatroom on our [Gitter Channel](https://gitter.im/p BlockScout is an Elixir application that allows users to search transactions, view accounts and balances, and verify smart contracts on the entire Ethereum network including all forks and sidechains. -Currently available full-featured block explorers (i.e. Etherscan and Etherchain) are closed systems which are not independently verifiable. As Ethereum sidechains continue to proliferate in both private and public settings, transparent, open-source tools are needed to analyze and validate transactions. +Currently available full-featured block explorers (Etherscan, Etherchain, Blockchair) are closed systems which are not independently verifiable. As Ethereum sidechains continue to proliferate in both private and public settings, transparent, open-source tools are needed to analyze and validate transactions. ## Getting Started From 4f8dceed1cb09f87e753554e023424f4edaf560a Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 24 Jun 2019 10:41:45 +0300 Subject: [PATCH 073/133] fix metadata decomdiing in smart contract verification --- apps/explorer/lib/explorer/smart_contract/verifier.ex | 6 ++++++ .../smart_contract/verifier/constructor_arguments.ex | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/apps/explorer/lib/explorer/smart_contract/verifier.ex b/apps/explorer/lib/explorer/smart_contract/verifier.ex index 2dd6545010..ea25d24818 100644 --- a/apps/explorer/lib/explorer/smart_contract/verifier.ex +++ b/apps/explorer/lib/explorer/smart_contract/verifier.ex @@ -107,6 +107,12 @@ defmodule Explorer.SmartContract.Verifier do |> Enum.reverse() |> :binary.list_to_bin() + # Solidity >= 0.5.9; https://github.com/ethereum/solidity/blob/aa4ee3a1559ebc0354926af962efb3fcc7dc15bd/docs/metadata.rst + "a265627a7a72305820" <> <<_::binary-size(64)>> <> "64736f6c6343" <> <<_::binary-size(6)>> <> "0032" <> _constructor_arguments -> + extracted + |> Enum.reverse() + |> :binary.list_to_bin() + <> <> rest -> do_extract_bytecode([next | extracted], rest) end diff --git a/apps/explorer/lib/explorer/smart_contract/verifier/constructor_arguments.ex b/apps/explorer/lib/explorer/smart_contract/verifier/constructor_arguments.ex index aa32d85bb6..de888c0f97 100644 --- a/apps/explorer/lib/explorer/smart_contract/verifier/constructor_arguments.ex +++ b/apps/explorer/lib/explorer/smart_contract/verifier/constructor_arguments.ex @@ -21,6 +21,11 @@ defmodule Explorer.SmartContract.Verifier.ConstructorArguments do constructor_arguments end + # Solidity >= 0.5.9; https://github.com/ethereum/solidity/blob/aa4ee3a1559ebc0354926af962efb3fcc7dc15bd/docs/metadata.rst + defp extract_contrstructor_arguments("a265627a7a72305820" <> <<_::binary-size(64)>> <> "64736f6c6343" <> <<_::binary-size(6)>> <> "0032" <> constructor_arguments) do + constructor_arguments + end + defp extract_constructor_arguments(<<_::binary-size(2)>> <> rest) do extract_constructor_arguments(rest) end From 680c28866c3dc90765e23c27ca60ab97915da0a8 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 24 Jun 2019 11:27:02 +0300 Subject: [PATCH 074/133] fix typo --- .../smart_contract/verifier/constructor_arguments.ex | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/explorer/lib/explorer/smart_contract/verifier/constructor_arguments.ex b/apps/explorer/lib/explorer/smart_contract/verifier/constructor_arguments.ex index de888c0f97..d6d1572f10 100644 --- a/apps/explorer/lib/explorer/smart_contract/verifier/constructor_arguments.ex +++ b/apps/explorer/lib/explorer/smart_contract/verifier/constructor_arguments.ex @@ -22,7 +22,10 @@ defmodule Explorer.SmartContract.Verifier.ConstructorArguments do end # Solidity >= 0.5.9; https://github.com/ethereum/solidity/blob/aa4ee3a1559ebc0354926af962efb3fcc7dc15bd/docs/metadata.rst - defp extract_contrstructor_arguments("a265627a7a72305820" <> <<_::binary-size(64)>> <> "64736f6c6343" <> <<_::binary-size(6)>> <> "0032" <> constructor_arguments) do + defp extract_constructor_arguments( + "a265627a7a72305820" <> + <<_::binary-size(64)>> <> "64736f6c6343" <> <<_::binary-size(6)>> <> "0032" <> constructor_arguments + ) do constructor_arguments end From 74e969a45d4318c6efb9a70b5acaf65d5ae6c18a Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 24 Jun 2019 11:51:15 +0300 Subject: [PATCH 075/133] add regression test --- .../lib/explorer/smart_contract/verifier.ex | 3 +- .../explorer/smart_contract/verifier_test.exs | 32 ++++++++ .../solidity_0.5.9_smart_contract.sol | 76 +++++++++++++++++++ 3 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 apps/explorer/test/support/fixture/smart_contract/solidity_0.5.9_smart_contract.sol diff --git a/apps/explorer/lib/explorer/smart_contract/verifier.ex b/apps/explorer/lib/explorer/smart_contract/verifier.ex index ea25d24818..f4e486fd50 100644 --- a/apps/explorer/lib/explorer/smart_contract/verifier.ex +++ b/apps/explorer/lib/explorer/smart_contract/verifier.ex @@ -108,7 +108,8 @@ defmodule Explorer.SmartContract.Verifier do |> :binary.list_to_bin() # Solidity >= 0.5.9; https://github.com/ethereum/solidity/blob/aa4ee3a1559ebc0354926af962efb3fcc7dc15bd/docs/metadata.rst - "a265627a7a72305820" <> <<_::binary-size(64)>> <> "64736f6c6343" <> <<_::binary-size(6)>> <> "0032" <> _constructor_arguments -> + "a265627a7a72305820" <> + <<_::binary-size(64)>> <> "64736f6c6343" <> <<_::binary-size(6)>> <> "0032" <> _constructor_arguments -> extracted |> Enum.reverse() |> :binary.list_to_bin() diff --git a/apps/explorer/test/explorer/smart_contract/verifier_test.exs b/apps/explorer/test/explorer/smart_contract/verifier_test.exs index ef635c2573..9633804c60 100644 --- a/apps/explorer/test/explorer/smart_contract/verifier_test.exs +++ b/apps/explorer/test/explorer/smart_contract/verifier_test.exs @@ -117,6 +117,38 @@ defmodule Explorer.SmartContract.VerifierTest do assert abi != nil end + test "verifies smart contract compiled with Solidity 0.5.9 (includes new metadata in bytecode) with constructor args" do + path = File.cwd!() <> "/test/support/fixture/smart_contract/solidity_0.5.9_smart_contract.sol" + contract = File.read!(path) + + constructor_arguments = + "00000000000000000000000000000000000000000000003635c9adc5dea000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000a54657374546f6b656e32000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006546f6b656e320000000000000000000000000000000000000000000000000000" + + bytecode = + "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633177029f116100715780633177029f1461025f57806354fd4d50146102c557806370a082311461034857806395d89b41146103a0578063a9059cbb14610423578063dd62ed3e14610489576100a9565b806306fdde03146100ae578063095ea7b31461013157806318160ddd1461019757806323b872dd146101b5578063313ce5671461023b575b600080fd5b6100b6610501565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059f565b604051808215151515815260200191505060405180910390f35b61019f610691565b6040518082815260200191505060405180910390f35b610221600480360360608110156101cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610696565b604051808215151515815260200191505060405180910390f35b61024361090f565b604051808260ff1660ff16815260200191505060405180910390f35b6102ab6004803603604081101561027557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610922565b604051808215151515815260200191505060405180910390f35b6102cd610a14565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561030d5780820151818401526020810190506102f2565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61038a6004803603602081101561035e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ab2565b6040518082815260200191505060405180910390f35b6103a8610afa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103e85780820151818401526020810190506103cd565b50505050905090810190601f1680156104155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61046f6004803603604081101561043957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b98565b604051808215151515815260200191505060405180910390f35b6104eb6004803603604081101561049f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfe565b6040518082815260200191505060405180910390f35b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105975780601f1061056c57610100808354040283529160200191610597565b820191906000526020600020905b81548152906001019060200180831161057a57829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600090565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610762575081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b801561076e5750600082115b1561090357816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610908565b600090505b9392505050565b600460009054906101000a900460ff1681565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610aaa5780601f10610a7f57610100808354040283529160200191610aaa565b820191906000526020600020905b815481529060010190602001808311610a8d57829003601f168201915b505050505081565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b905780601f10610b6557610100808354040283529160200191610b90565b820191906000526020600020905b815481529060010190602001808311610b7357829003601f168201915b505050505081565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015610be85750600082115b15610cf357816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610cf8565b600090505b92915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509291505056fea265627a7a72305820fe0ba5210ac95870683c2cb054304b04565703bd16c7d7e956df694c9643c6d264736f6c63430005090032" + + contract_address = insert(:contract_address, contract_code: bytecode) + + :transaction + |> insert( + created_contract_address_hash: contract_address.hash, + input: bytecode <> constructor_arguments + ) + |> with_block() + + params = %{ + "contract_source_code" => contract, + "compiler_version" => "v0.5.9+commit.e560f70d", + "evm_version" => "petersburg", + "name" => "TestToken", + "optimization" => false, + "constructor_arguments" => constructor_arguments + } + + assert {:ok, %{abi: abi}} = Verifier.evaluate_authenticity(contract_address.hash, params) + assert abi != nil + end + test "returns error when bytecode doesn't match", %{contract_code_info: contract_code_info} do contract_address = insert(:contract_address, contract_code: contract_code_info.bytecode) diff --git a/apps/explorer/test/support/fixture/smart_contract/solidity_0.5.9_smart_contract.sol b/apps/explorer/test/support/fixture/smart_contract/solidity_0.5.9_smart_contract.sol new file mode 100644 index 0000000000..25601a98b6 --- /dev/null +++ b/apps/explorer/test/support/fixture/smart_contract/solidity_0.5.9_smart_contract.sol @@ -0,0 +1,76 @@ +pragma solidity ^0.5.9; +contract Token { + function totalSupply() public view returns (uint256 supply) {} + function balanceOf(address _owner) public view returns (uint256 balance) {} + function transfer(address _to, uint256 _value) public returns (bool success) {} + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {} + function approve(address _spender, uint256 _value) public returns (bool success) {} + function allowance(address _owner, address _spender) public view returns (uint256 remaining) {} + event Transfer(address indexed _from, address indexed _to, uint256 _value); + event Approval(address indexed _owner, address indexed _spender, uint256 _value); +} + + +contract StandardToken is Token { + function transfer(address _to, uint256 _value) public returns (bool success) { + //if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) { + if (balances[msg.sender] >= _value && _value > 0) { + balances[msg.sender] -= _value; + balances[_to] += _value; + emit Transfer(msg.sender, _to, _value); + return true; + } else { return false; } + } + function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { + //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) { + if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) { + balances[_to] += _value; + balances[_from] -= _value; + allowed[_from][msg.sender] -= _value; + emit Transfer(_from, _to, _value); + return true; + } else { return false; } + } + function balanceOf(address _owner) public view returns (uint256 balance) { + return balances[_owner]; + } + function approve(address _spender, uint256 _value) public returns (bool success) { + allowed[msg.sender][_spender] = _value; + emit Approval(msg.sender, _spender, _value); + return true; + } + function allowance(address _owner, address _spender) public view returns (uint256 remaining) { + return allowed[_owner][_spender]; + } + mapping (address => uint256) balances; + mapping (address => mapping (address => uint256)) allowed; + uint256 totalTokenSupply; +} + +contract TestToken is StandardToken { + + /* Public variables */ + string public name; + uint8 public decimals; + string public symbol; + string public version = '0.1'; + + constructor( + uint256 _initialAmount, + string memory _tokenName, + uint8 _decimalUnits, + string memory _tokenSymbol + ) public { + balances[msg.sender] = _initialAmount; + totalTokenSupply = _initialAmount; + name = _tokenName; + decimals = _decimalUnits; + symbol = _tokenSymbol; + } + + function approveAndCall(address _spender, uint256 _value) public returns (bool success) { + allowed[msg.sender][_spender] = _value; + emit Approval(msg.sender, _spender, _value); + return true; + } +} \ No newline at end of file From 402775c457a292f567569e902c6d92ddc018a824 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 24 Jun 2019 11:54:09 +0300 Subject: [PATCH 076/133] add CHANGELOG entry --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4e62d4751..a59abeecac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,7 +42,8 @@ - [#2173](https://github.com/poanetwork/blockscout/pull/2173) - handle correctly empty transactions - [#2174](https://github.com/poanetwork/blockscout/pull/2174) - fix reward channel joining - [#2186](https://github.com/poanetwork/blockscout/pull/2186) - fix net version test -- [#2167](https://github.com/poanetwork/blockscout/pull/2168) - feat: document eth rpc api mimicking endpoints +- [#2167](https://github.com/poanetwork/blockscout/pull/2168) - feat: document eth rpc api mimicking endpoints +- [#2225](https://github.com/poanetwork/blockscout/pull/2225) - fix metadata decoding in Solidity 0.5.9 smart contract verification ### Chore - [#2127](https://github.com/poanetwork/blockscout/pull/2127) - use previouse chromedriver version From 857ac30058c89c03ecf08e641bf89288876a6320 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 24 Jun 2019 12:07:40 +0300 Subject: [PATCH 077/133] use seconds --- apps/indexer/config/config.exs | 2 +- apps/indexer/lib/indexer/fetcher/token_updater.ex | 2 +- apps/indexer/lib/indexer/supervisor.ex | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/indexer/config/config.exs b/apps/indexer/config/config.exs index 7c17ee1952..c63d91a51d 100644 --- a/apps/indexer/config/config.exs +++ b/apps/indexer/config/config.exs @@ -31,7 +31,7 @@ block_transformer = config :indexer, block_transformer: block_transformer, ecto_repos: [Explorer.Repo], - metadata_updater_hours_interval: String.to_integer(System.get_env("TOKEN_METADATA_UPDATE_INTERVAL") || "#{2 * 24}"), + metadata_updater_seconds_interval: String.to_integer(System.get_env("TOKEN_METADATA_UPDATE_INTERVAL") || "#{2 * 24 * 60 * 60}"), # bytes memory_limit: 1 <<< 30, first_block: System.get_env("FIRST_BLOCK") || "0" diff --git a/apps/indexer/lib/indexer/fetcher/token_updater.ex b/apps/indexer/lib/indexer/fetcher/token_updater.ex index ddd055c9d2..5e8ac789e3 100644 --- a/apps/indexer/lib/indexer/fetcher/token_updater.ex +++ b/apps/indexer/lib/indexer/fetcher/token_updater.ex @@ -29,7 +29,7 @@ defmodule Indexer.Fetcher.TokenUpdater do |> Enum.reverse() |> update_metadata() - Process.send_after(self(), :update_tokens, :timer.hours(state.update_interval)) + Process.send_after(self(), :update_tokens, :timer.seconds(state.update_interval)) {:noreply, state} end diff --git a/apps/indexer/lib/indexer/supervisor.ex b/apps/indexer/lib/indexer/supervisor.ex index 3b8a558d07..00fba8d428 100644 --- a/apps/indexer/lib/indexer/supervisor.ex +++ b/apps/indexer/lib/indexer/supervisor.ex @@ -72,7 +72,7 @@ defmodule Indexer.Supervisor do subscribe_named_arguments: subscribe_named_arguments } = named_arguments - metadata_updater_inverval = Application.get_env(:indexer, :metadata_updater_hours_interval) + metadata_updater_inverval = Application.get_env(:indexer, :metadata_updater_seconds_interval) block_fetcher = named_arguments From 6e2572b8cc1a40a2518e45dba5281b3c8061c84e Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 24 Jun 2019 12:11:07 +0300 Subject: [PATCH 078/133] mix format --- apps/indexer/config/config.exs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/indexer/config/config.exs b/apps/indexer/config/config.exs index c63d91a51d..4e84e9bcfe 100644 --- a/apps/indexer/config/config.exs +++ b/apps/indexer/config/config.exs @@ -31,7 +31,8 @@ block_transformer = config :indexer, block_transformer: block_transformer, ecto_repos: [Explorer.Repo], - metadata_updater_seconds_interval: String.to_integer(System.get_env("TOKEN_METADATA_UPDATE_INTERVAL") || "#{2 * 24 * 60 * 60}"), + metadata_updater_seconds_interval: + String.to_integer(System.get_env("TOKEN_METADATA_UPDATE_INTERVAL") || "#{2 * 24 * 60 * 60}"), # bytes memory_limit: 1 <<< 30, first_block: System.get_env("FIRST_BLOCK") || "0" From 368b08ec457a72ad2cdaecd2c6dc502ac2302a51 Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Mon, 24 Jun 2019 16:14:14 +0300 Subject: [PATCH 079/133] Update favorites.js --- apps/block_scout_web/assets/js/pages/favorites.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/block_scout_web/assets/js/pages/favorites.js b/apps/block_scout_web/assets/js/pages/favorites.js index 9f9d8f39cc..e5c7627575 100644 --- a/apps/block_scout_web/assets/js/pages/favorites.js +++ b/apps/block_scout_web/assets/js/pages/favorites.js @@ -12,12 +12,14 @@ if (localStorage.getItem('favoritesNetworksUrls') === null) { $(document).on('change', ".network-selector-item-favorite input[type='checkbox']", function () { var networkUrl = $(this).attr('data-url') var thisStatus = $(this).is(':checked') - var parent = $(".network-selector-item[data-url='" + networkUrl + "'").clone() var workWith = $(".network-selector-item[data-url='" + networkUrl + "'") // Add new checkbox status to same network in another tabs $(".network-selector-item-favorite input[data-url='" + networkUrl + "']").prop('checked', thisStatus) + // Clone + var parent = $(".network-selector-item[data-url='" + networkUrl + "'").clone() + // Push or remove favorite networks to array var found = $.inArray(networkUrl, favoritesNetworksUrls) if (found < 0 && thisStatus === true) { @@ -29,6 +31,10 @@ $(document).on('change', ".network-selector-item-favorite input[type='checkbox'] } } + // Push to localstorage + var willBePushed = JSON.stringify(favoritesNetworksUrls) + localStorage.setItem('favoritesNetworksUrls', willBePushed) + // Append or remove item from 'favorites' tab if (thisStatus === true) { favoritesContainer.append(parent[0]) @@ -41,15 +47,12 @@ $(document).on('change', ".network-selector-item-favorite input[type='checkbox'] } } - // Push to localstorage - var willBePushed = JSON.stringify(favoritesNetworksUrls) - localStorage.setItem('favoritesNetworksUrls', willBePushed) }) if (favoritesNetworksUrls.length > 0) { $('.js-favorites-tab .network-selector-tab-content-empty').hide() for (var i = 0; i < favoritesNetworksUrls.length + 1; i++) { - $(".network-selector-item[data-url='" + favoritesNetworksUrls[i] + "'").find('input').prop('checked', true) + $(".network-selector-item[data-url='" + favoritesNetworksUrls[i] + "'").find('input[data-url]').prop('checked', true) var parent = $(".network-selector-item[data-url='" + favoritesNetworksUrls[i] + "'").clone() favoritesContainer.append(parent[0]) } From c947a8d67bcb01d0ce19b2816c093b19fed4dc0f Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Mon, 24 Jun 2019 16:15:24 +0300 Subject: [PATCH 080/133] Update _network_selector_item.html.eex --- .../templates/layout/_network_selector_item.html.eex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex index af6d8df375..55ea7a6023 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector_item.html.eex @@ -1,7 +1,7 @@
-
\ No newline at end of file +
From f6c48f01f02b8ce1acc7aaf2202e5b413b0293a2 Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Mon, 24 Jun 2019 16:18:04 +0300 Subject: [PATCH 081/133] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2c1aa2d25..7dc1eb29a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ - [#2064](https://github.com/poanetwork/blockscout/pull/2064) - feat: add fields to tx apis, small cleanups ### Fixes +- [#2228](https://github.com/poanetwork/blockscout/pull/2228) - favorites duplication issues, active radio issue - [#2082](https://github.com/poanetwork/blockscout/pull/2082) - dropdown styles, tooltip gap fix, 404 page added - [#2077](https://github.com/poanetwork/blockscout/pull/2077) - ui issues - [#2072](https://github.com/poanetwork/blockscout/pull/2072) - Fixed checkmarks not showing correctly in tabs. From 0a255264f66735a984c38878e9227c1d08657fe7 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 24 Jun 2019 16:19:12 +0300 Subject: [PATCH 082/133] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fbda34c9c..fdbf8b678f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,7 +42,7 @@ - [#2173](https://github.com/poanetwork/blockscout/pull/2173) - handle correctly empty transactions - [#2174](https://github.com/poanetwork/blockscout/pull/2174) - fix reward channel joining - [#2186](https://github.com/poanetwork/blockscout/pull/2186) - fix net version test -- [#2167](https://github.com/poanetwork/blockscout/pull/2168) - feat: document eth rpc api mimicking endpoints +- [#2167](https://github.com/poanetwork/blockscout/pull/2167) - feat: document eth rpc api mimicking endpoints - [#2225](https://github.com/poanetwork/blockscout/pull/2225) - fix metadata decoding in Solidity 0.5.9 smart contract verification ### Chore From f6a284cf6b9f1ead52763bfc0f83a037d9c8397d Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Mon, 24 Jun 2019 16:24:20 +0300 Subject: [PATCH 083/133] Update favorites.js --- apps/block_scout_web/assets/js/pages/favorites.js | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/block_scout_web/assets/js/pages/favorites.js b/apps/block_scout_web/assets/js/pages/favorites.js index e5c7627575..055cac8c0f 100644 --- a/apps/block_scout_web/assets/js/pages/favorites.js +++ b/apps/block_scout_web/assets/js/pages/favorites.js @@ -46,7 +46,6 @@ $(document).on('change', ".network-selector-item-favorite input[type='checkbox'] $('.js-favorites-tab .network-selector-tab-content-empty').show() } } - }) if (favoritesNetworksUrls.length > 0) { From f48f09afb0938917fc55d8ea59a3cc21d5bbc0f3 Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Mon, 24 Jun 2019 16:49:44 +0300 Subject: [PATCH 084/133] margin issue between qr and copy button in token transfers --- .../templates/tokens/overview/_details.html.eex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/tokens/overview/_details.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/tokens/overview/_details.html.eex index 1c87144a88..976c160073 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/tokens/overview/_details.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/tokens/overview/_details.html.eex @@ -11,7 +11,7 @@ <% end %> - + From 3a2ea9c6490c08c3f9e8b40ca811864d80a02800 Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Mon, 24 Jun 2019 16:52:43 +0300 Subject: [PATCH 085/133] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c27135a64..4a493feb8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - [#2146](https://github.com/poanetwork/blockscout/pull/2146) - feat: add eth_getLogs rpc endpoint ### Fixes +- [#2229](https://github.com/poanetwork/blockscout/pull/2229) - margin issue fix between qr and copy button in token transfers - [#2201](https://github.com/poanetwork/blockscout/pull/2201) - footer columns fix - [#2179](https://github.com/poanetwork/blockscout/pull/2179) - fix docker build error - [#2165](https://github.com/poanetwork/blockscout/pull/2165) - sort blocks by timestamp when calculating average block time From aa888dfccc11591e27dc8be7b81006f0159a5473 Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Mon, 24 Jun 2019 17:17:43 +0300 Subject: [PATCH 086/133] top cards height and gaps issue --- .../tokens/overview/_details.html.eex | 6 +++--- apps/block_scout_web/priv/gettext/default.pot | 20 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/tokens/overview/_details.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/tokens/overview/_details.html.eex index 976c160073..376f70de73 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/tokens/overview/_details.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/tokens/overview/_details.html.eex @@ -1,6 +1,6 @@ -
+
-
+

@@ -69,7 +69,7 @@

<%= if total_supply?(@token) do %> -
+

<%= gettext "Total Supply" %>

diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 4ca9c47102..3482a7c9f9 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -105,7 +105,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/index.html.eex:4 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:59 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:60 msgid "Addresses" msgstr "" @@ -210,8 +210,8 @@ msgstr "" #: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:37 #: lib/block_scout_web/templates/address/overview.html.eex:144 #: lib/block_scout_web/templates/address/overview.html.eex:152 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:106 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:114 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:107 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:115 msgid "Close" msgstr "" @@ -626,8 +626,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/overview.html.eex:33 #: lib/block_scout_web/templates/address/overview.html.eex:143 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:35 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:105 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:36 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:106 msgid "QR Code" msgstr "" @@ -684,7 +684,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/overview.html.eex:34 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:36 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:37 msgid "Show QR Code" msgstr "" @@ -834,7 +834,7 @@ msgid "Total Difficulty" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:74 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:75 msgid "Total Supply" msgstr "" @@ -881,7 +881,7 @@ msgid "Transactions sent" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:60 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:61 msgid "Transfers" msgstr "" @@ -943,7 +943,7 @@ msgid "Verify & publish" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:54 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:55 msgid "View Contract" msgstr "" @@ -1048,7 +1048,7 @@ msgid "Self-Destruct" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:62 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:63 msgid "Decimals" msgstr "" From 3c2fcab85cca827d67cbd313c6a5840224918a15 Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Mon, 24 Jun 2019 17:21:28 +0300 Subject: [PATCH 087/133] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a493feb8c..0b671d7539 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ - [#2146](https://github.com/poanetwork/blockscout/pull/2146) - feat: add eth_getLogs rpc endpoint ### Fixes -- [#2229](https://github.com/poanetwork/blockscout/pull/2229) - margin issue fix between qr and copy button in token transfers +- [#2229](https://github.com/poanetwork/blockscout/pull/2229) - gap issue between qr and copy button in token transfers, top cards width and height issue - [#2201](https://github.com/poanetwork/blockscout/pull/2201) - footer columns fix - [#2179](https://github.com/poanetwork/blockscout/pull/2179) - fix docker build error - [#2165](https://github.com/poanetwork/blockscout/pull/2165) - sort blocks by timestamp when calculating average block time From 91f33e2f38f9dfb154f861f3c48f2cfc8e1b72a5 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 25 Jun 2019 10:33:49 +0300 Subject: [PATCH 088/133] fix gettext --- apps/block_scout_web/priv/gettext/default.pot | 57 +++++++++++++- .../priv/gettext/en/LC_MESSAGES/default.po | 77 ++++++++++++++++--- 2 files changed, 122 insertions(+), 12 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index b6fcc69fcc..d21d2703bd 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1692,4 +1692,59 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:27 msgid "There is no decompilded contracts for this address." -msgstr "" \ No newline at end of file +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:14 +msgid " is recommended." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:15 +msgid "Anything not in this list is not supported. Click on the method to be taken to the documentation for that method, and check the notes section for any potential differences." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:44 +msgid "ERC-20 " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:45 +msgid "ERC-721 " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:4 +msgid "ETH RPC API Documentation" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:78 +msgid "Eth RPC" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:11 +msgid "However, in general, the" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:7 +msgid "This API is provided to support some rpc methods in the exact format specified for ethereum nodes, which can be found " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:10 +msgid "This is useful to allow sending requests to blockscout without having to change anything about the request." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:12 +msgid "custom RPC" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 +msgid "here." +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index be7eb43b58..ee32dea6ce 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -105,7 +105,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/index.html.eex:4 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:59 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:60 msgid "Addresses" msgstr "" @@ -210,8 +210,8 @@ msgstr "" #: lib/block_scout_web/templates/address/_validator_metadata_modal.html.eex:37 #: lib/block_scout_web/templates/address/overview.html.eex:144 #: lib/block_scout_web/templates/address/overview.html.eex:152 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:106 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:114 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:107 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:115 msgid "Close" msgstr "" @@ -626,8 +626,8 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/overview.html.eex:33 #: lib/block_scout_web/templates/address/overview.html.eex:143 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:35 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:105 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:36 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:106 msgid "QR Code" msgstr "" @@ -684,7 +684,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/overview.html.eex:34 -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:36 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:37 msgid "Show QR Code" msgstr "" @@ -834,7 +834,7 @@ msgid "Total Difficulty" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:74 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:75 msgid "Total Supply" msgstr "" @@ -881,7 +881,7 @@ msgid "Transactions sent" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:60 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:61 msgid "Transfers" msgstr "" @@ -943,7 +943,7 @@ msgid "Verify & publish" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:54 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:55 msgid "View Contract" msgstr "" @@ -1048,7 +1048,7 @@ msgid "Self-Destruct" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:62 +#: lib/block_scout_web/templates/tokens/overview/_details.html.eex:63 msgid "Decimals" msgstr "" @@ -1692,4 +1692,59 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:27 msgid "There is no decompilded contracts for this address." -msgstr "" \ No newline at end of file +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:14 +msgid " is recommended." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:15 +msgid "Anything not in this list is not supported. Click on the method to be taken to the documentation for that method, and check the notes section for any potential differences." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:44 +msgid "ERC-20 " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:45 +msgid "ERC-721 " +msgstr "" + +#, elixir-format, fuzzy +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:4 +msgid "ETH RPC API Documentation" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/layout/_topnav.html.eex:78 +msgid "Eth RPC" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:11 +msgid "However, in general, the" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:7 +msgid "This API is provided to support some rpc methods in the exact format specified for ethereum nodes, which can be found " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:10 +msgid "This is useful to allow sending requests to blockscout without having to change anything about the request." +msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:12 +msgid "custom RPC" +msgstr "" + +#, elixir-format, fuzzy +#: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 +msgid "here." +msgstr "" From 7cb662d09999b76443ecb16640d401110ea5d10f Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 25 Jun 2019 10:44:47 +0300 Subject: [PATCH 089/133] fix unidentified token transfers --- apps/explorer/lib/explorer/chain.ex | 61 +++++++++++++++-------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/apps/explorer/lib/explorer/chain.ex b/apps/explorer/lib/explorer/chain.ex index 4834a20adf..01a44e1cbe 100644 --- a/apps/explorer/lib/explorer/chain.ex +++ b/apps/explorer/lib/explorer/chain.ex @@ -2935,47 +2935,50 @@ defmodule Explorer.Chain do zero_wei = %Wei{value: Decimal.new(0)} # https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/token/ERC721/ERC721.sol#L35 - case {to_string(input), value} do - # transferFrom(address,address,uint256) - {"0x23b872dd" <> params, ^zero_wei} -> - types = [:address, :address, {:uint, 256}] - [from_address, to_address, _value] = decode_params(params, types) + result = + case {to_string(input), value} do + # transferFrom(address,address,uint256) + {"0x23b872dd" <> params, ^zero_wei} -> + types = [:address, :address, {:uint, 256}] + [from_address, to_address, _value] = decode_params(params, types) - find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) + find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) - # safeTransferFrom(address,address,uint256) - {"0x42842e0e" <> params, ^zero_wei} -> - types = [:address, :address, {:uint, 256}] - [from_address, to_address, _value] = decode_params(params, types) + # safeTransferFrom(address,address,uint256) + {"0x42842e0e" <> params, ^zero_wei} -> + types = [:address, :address, {:uint, 256}] + [from_address, to_address, _value] = decode_params(params, types) - find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) + find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) - # safeTransferFrom(address,address,uint256,bytes) - {"0xb88d4fde" <> params, ^zero_wei} -> - types = [:address, :address, {:uint, 256}, :bytes] - [from_address, to_address, _value, _data] = decode_params(params, types) + # safeTransferFrom(address,address,uint256,bytes) + {"0xb88d4fde" <> params, ^zero_wei} -> + types = [:address, :address, {:uint, 256}, :bytes] + [from_address, to_address, _value, _data] = decode_params(params, types) - find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) + find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) - {"0xf907fc5b" <> _params, ^zero_wei} -> - :erc20 + {"0xf907fc5b" <> _params, ^zero_wei} -> + :erc20 - # check for ERC 20 or for old ERC 721 token versions - {unquote(TokenTransfer.transfer_function_signature()) <> params, ^zero_wei} -> - types = [:address, {:uint, 256}] + # check for ERC 20 or for old ERC 721 token versions + {unquote(TokenTransfer.transfer_function_signature()) <> params, ^zero_wei} -> + types = [:address, {:uint, 256}] - [address, value] = decode_params(params, types) + [address, value] = decode_params(params, types) - decimal_value = Decimal.new(value) + decimal_value = Decimal.new(value) - find_erc721_or_erc20_token_transfer(transaction.token_transfers, {address, decimal_value}) + find_erc721_or_erc20_token_transfer(transaction.token_transfers, {address, decimal_value}) - {_params, ^zero_wei} -> - if Enum.count(transaction.token_transfers) > 0, do: :token_transfer + {_params, ^zero_wei} -> + if Enum.count(transaction.token_transfers) > 0, do: :token_transfer - _ -> - nil - end + _ -> + nil + end + + if is_nil(result) && Enum.count(transaction.token_transfers) > 0, do: :token_transfer, else: result rescue _ -> nil end From d8f904f063c9628a2eb08f3e2015aadf8a865337 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 25 Jun 2019 11:04:26 +0300 Subject: [PATCH 090/133] fix spaces --- .../block_scout_web/templates/transaction/overview.html.eex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex index b168045fe1..fe347ee904 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/transaction/overview.html.eex @@ -176,14 +176,16 @@

<%= token_type_name(type)%><%= gettext " Token Transfer" %>

- <%= for transfer <- transaction_with_transfers.token_transfers do %>
+ <%= for transfer <- transaction_with_transfers.token_transfers do %> +

<%= token_transfer_amount(transfer) %> <%= link(token_symbol(transfer.token), to: token_path(BlockScoutWeb.Endpoint, :show, transfer.token.contract_address_hash)) %>

-
+ <% end %> +
<% _ -> %> From 41b069c1e1fd09137ee09cb04557cf4676de1aca Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 25 Jun 2019 11:11:22 +0300 Subject: [PATCH 091/133] fix credo --- apps/explorer/lib/explorer/chain.ex | 75 +++++++++++++++-------------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/apps/explorer/lib/explorer/chain.ex b/apps/explorer/lib/explorer/chain.ex index 01a44e1cbe..e4416030b0 100644 --- a/apps/explorer/lib/explorer/chain.ex +++ b/apps/explorer/lib/explorer/chain.ex @@ -2933,58 +2933,61 @@ defmodule Explorer.Chain do } = transaction ) do zero_wei = %Wei{value: Decimal.new(0)} + result = find_token_transfer_type(transaction, input, value) - # https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/token/ERC721/ERC721.sol#L35 - result = - case {to_string(input), value} do - # transferFrom(address,address,uint256) - {"0x23b872dd" <> params, ^zero_wei} -> - types = [:address, :address, {:uint, 256}] - [from_address, to_address, _value] = decode_params(params, types) + if is_nil(result) && Enum.count(transaction.token_transfers) > 0 && value == zero_wei, + do: :token_transfer, + else: result + rescue + _ -> nil + end + + def transaction_token_transfer_type(_), do: nil - find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) + defp find_token_transfer_type(transaction, input, value) do + zero_wei = %Wei{value: Decimal.new(0)} - # safeTransferFrom(address,address,uint256) - {"0x42842e0e" <> params, ^zero_wei} -> - types = [:address, :address, {:uint, 256}] - [from_address, to_address, _value] = decode_params(params, types) + # https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/contracts/token/ERC721/ERC721.sol#L35 + case {to_string(input), value} do + # transferFrom(address,address,uint256) + {"0x23b872dd" <> params, ^zero_wei} -> + types = [:address, :address, {:uint, 256}] + [from_address, to_address, _value] = decode_params(params, types) - find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) + find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) - # safeTransferFrom(address,address,uint256,bytes) - {"0xb88d4fde" <> params, ^zero_wei} -> - types = [:address, :address, {:uint, 256}, :bytes] - [from_address, to_address, _value, _data] = decode_params(params, types) + # safeTransferFrom(address,address,uint256) + {"0x42842e0e" <> params, ^zero_wei} -> + types = [:address, :address, {:uint, 256}] + [from_address, to_address, _value] = decode_params(params, types) - find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) + find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) - {"0xf907fc5b" <> _params, ^zero_wei} -> - :erc20 + # safeTransferFrom(address,address,uint256,bytes) + {"0xb88d4fde" <> params, ^zero_wei} -> + types = [:address, :address, {:uint, 256}, :bytes] + [from_address, to_address, _value, _data] = decode_params(params, types) - # check for ERC 20 or for old ERC 721 token versions - {unquote(TokenTransfer.transfer_function_signature()) <> params, ^zero_wei} -> - types = [:address, {:uint, 256}] + find_erc721_token_transfer(transaction.token_transfers, {from_address, to_address}) - [address, value] = decode_params(params, types) + {"0xf907fc5b" <> _params, ^zero_wei} -> + :erc20 - decimal_value = Decimal.new(value) + # check for ERC 20 or for old ERC 721 token versions + {unquote(TokenTransfer.transfer_function_signature()) <> params, ^zero_wei} -> + types = [:address, {:uint, 256}] - find_erc721_or_erc20_token_transfer(transaction.token_transfers, {address, decimal_value}) + [address, value] = decode_params(params, types) - {_params, ^zero_wei} -> - if Enum.count(transaction.token_transfers) > 0, do: :token_transfer + decimal_value = Decimal.new(value) - _ -> - nil - end + find_erc721_or_erc20_token_transfer(transaction.token_transfers, {address, decimal_value}) - if is_nil(result) && Enum.count(transaction.token_transfers) > 0, do: :token_transfer, else: result - rescue - _ -> nil + _ -> + nil + end end - def transaction_token_transfer_type(_), do: nil - defp find_erc721_token_transfer(token_transfers, {from_address, to_address}) do token_transfer = Enum.find(token_transfers, fn token_transfer -> From 6d2e355ece5007f8c86edbcb840633d0f0a0aeb0 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Tue, 25 Jun 2019 11:12:00 +0300 Subject: [PATCH 092/133] fix gettext --- apps/block_scout_web/priv/gettext/default.pot | 10 +++++----- .../priv/gettext/en/LC_MESSAGES/default.po | 14 +++++++------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index d21d2703bd..5a0edf2bfe 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -378,7 +378,7 @@ msgstr "" #: lib/block_scout_web/templates/layout/app.html.eex:55 #: lib/block_scout_web/templates/transaction/_pending_tile.html.eex:20 #: lib/block_scout_web/templates/transaction/_tile.html.eex:30 -#: lib/block_scout_web/templates/transaction/overview.html.eex:194 +#: lib/block_scout_web/templates/transaction/overview.html.eex:196 #: lib/block_scout_web/views/wei_helpers.ex:78 msgid "Ether" msgstr "" @@ -490,7 +490,7 @@ msgid "Less than" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:222 +#: lib/block_scout_web/templates/transaction/overview.html.eex:224 msgid "Limit" msgstr "" @@ -907,7 +907,7 @@ msgid "Unique Token" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:216 +#: lib/block_scout_web/templates/transaction/overview.html.eex:218 msgid "Used" msgstr "" @@ -927,7 +927,7 @@ msgid "Validations" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:194 +#: lib/block_scout_web/templates/transaction/overview.html.eex:196 msgid "Value" msgstr "" @@ -1536,7 +1536,7 @@ msgid "View All Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:212 +#: lib/block_scout_web/templates/transaction/overview.html.eex:214 msgid "Gas" msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index ee32dea6ce..45a2e7d8de 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -378,7 +378,7 @@ msgstr "" #: lib/block_scout_web/templates/layout/app.html.eex:55 #: lib/block_scout_web/templates/transaction/_pending_tile.html.eex:20 #: lib/block_scout_web/templates/transaction/_tile.html.eex:30 -#: lib/block_scout_web/templates/transaction/overview.html.eex:194 +#: lib/block_scout_web/templates/transaction/overview.html.eex:196 #: lib/block_scout_web/views/wei_helpers.ex:78 msgid "Ether" msgstr "POA" @@ -490,7 +490,7 @@ msgid "Less than" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:222 +#: lib/block_scout_web/templates/transaction/overview.html.eex:224 msgid "Limit" msgstr "" @@ -907,7 +907,7 @@ msgid "Unique Token" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:216 +#: lib/block_scout_web/templates/transaction/overview.html.eex:218 msgid "Used" msgstr "" @@ -927,7 +927,7 @@ msgid "Validations" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:194 +#: lib/block_scout_web/templates/transaction/overview.html.eex:196 msgid "Value" msgstr "" @@ -1536,7 +1536,7 @@ msgid "View All Transactions" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/transaction/overview.html.eex:212 +#: lib/block_scout_web/templates/transaction/overview.html.eex:214 msgid "Gas" msgstr "" @@ -1714,7 +1714,7 @@ msgstr "" msgid "ERC-721 " msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:4 msgid "ETH RPC API Documentation" msgstr "" @@ -1744,7 +1744,7 @@ msgstr "" msgid "custom RPC" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 msgid "here." msgstr "" From bd94b103418e4b1d253c9e44d76c67257874d32b Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Tue, 25 Jun 2019 13:37:08 +0300 Subject: [PATCH 093/133] header content alignment issue --- .../assets/css/components/_navbar.scss | 35 +++++++++++++++++-- .../templates/layout/_topnav.html.eex | 4 +-- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/apps/block_scout_web/assets/css/components/_navbar.scss b/apps/block_scout_web/assets/css/components/_navbar.scss index 7f0b81f803..370204e1b8 100644 --- a/apps/block_scout_web/assets/css/components/_navbar.scss +++ b/apps/block_scout_web/assets/css/components/_navbar.scss @@ -22,7 +22,7 @@ $navbar-logo-width: auto !default; font-size: 14px; } .navbar-nav { - flex-grow: 1; + // flex-grow: 1; .nav-link { align-items: center; @@ -153,6 +153,18 @@ $navbar-logo-width: auto !default; @include media-breakpoint-up(xl) { width: 280px; } + @media (min-width: 1366px) { + width: 330px; + } + @media (min-width: 1440px) { + width: 380px; + } + @media (min-width: 1580px) { + width: 430px; + } + @media (min-width: 1800px) { + width: 520px; + } } .input-group-append { height: 38px; @@ -198,7 +210,7 @@ $navbar-logo-width: auto !default; width: 100%; .awesomplete { - @include media-breakpoint-down(sm) { + @include media-breakpoint-down(lg) { width: 100%; } } @@ -210,6 +222,10 @@ $navbar-logo-width: auto !default; .navbar-brand { margin-left: 0; + flex-shrink: 1; + .navbar-logo { + max-width: 100%; + } } .navbar-logo { @@ -227,3 +243,18 @@ $navbar-logo-width: auto !default; .add-border { border: 1px solid transparentize($white, 0.30); } + +.navbar-collapse { + justify-content: flex-end; + align-items: flex-start; + flex-shrink: 0; + @media (min-width: 992px) { + align-items: center; + } +} + +.navbar-container, .navbar-primary { + @include media-breakpoint-up(xl) { + padding-right: 0; + } +} \ No newline at end of file diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex index f2a4e9441e..929cd30ab7 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_topnav.html.eex @@ -1,5 +1,5 @@
diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index f71be7b3dd..77f10d1581 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -732,7 +732,7 @@ msgid "There are no token transfers for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:19 +#: lib/block_scout_web/templates/address_token/index.html.eex:18 msgid "There are no tokens for this address." msgstr "" @@ -810,7 +810,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:8 -#: lib/block_scout_web/templates/address_token/index.html.eex:9 +#: lib/block_scout_web/templates/address_token/index.html.eex:8 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:9 #: lib/block_scout_web/views/address_view.ex:304 msgid "Tokens" @@ -1207,7 +1207,7 @@ msgstr "" #: lib/block_scout_web/templates/address_coin_balance/index.html.eex:34 #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:61 #: lib/block_scout_web/templates/address_logs/index.html.eex:21 -#: lib/block_scout_web/templates/address_token/index.html.eex:14 +#: lib/block_scout_web/templates/address_token/index.html.eex:13 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:20 #: lib/block_scout_web/templates/address_transaction/index.html.eex:57 #: lib/block_scout_web/templates/address_validation/index.html.eex:22 @@ -1699,6 +1699,6 @@ msgid " Token Transfer" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:8 -msgid "Download all token transfers as csv" +#: lib/block_scout_web/templates/address_token/index.html.eex:27 +msgid "CSV" msgstr "" From 89260ab9f3c4ce178df2631640c6fa0cc6ceb618 Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Tue, 25 Jun 2019 17:20:28 +0300 Subject: [PATCH 101/133] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf08d79d76..7f6a2ebb65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - [#2075](https://github.com/poanetwork/blockscout/pull/2075) - add blocks cache ### Fixes +- [#2242](https://github.com/poanetwork/blockscout/pull/2242) - added styles for 'download csv' button - [#2142](https://github.com/poanetwork/blockscout/pull/2142) - Removed posdao theme and logo, added 'page not found' image for goerli - [#2138](https://github.com/poanetwork/blockscout/pull/2138) - badge colors issue, api titles issue - [#2129](https://github.com/poanetwork/blockscout/pull/2129) - Fix for width of explorer elements From 073c52f8295ba4b660a6e49e56028358e019f54c Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Wed, 26 Jun 2019 10:32:48 +0300 Subject: [PATCH 102/133] gettext fix --- .../lib/block_scout_web/templates/address_token/index.html.eex | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex index ed5ffe2c0d..4e78daee2f 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex @@ -32,6 +32,7 @@
<%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %>
+

kD) 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

#GC0pD}R~r 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 YZE199AX9E(XK8dGW^ZyJO<`jIJGLZ_mjD0& diff --git a/explorer_example_2_2019.gif b/explorer_example_2_2019.gif deleted file mode 100644 index 881f66e5dba0076c93bd8af33ef7753e6668a81c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 860552 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 *#Q}e(C_Ch>~n_jHdjcNrkIs`if z(YzGLe8cMR3AVzHRG35q?ce_-_(YM-h!~?F9RzKqS=TEpfkjPms+|Or0vb7x(5yc}%5Dr5E;w7*1KQAoDmFv;rFlV%!LBkF0N@{! zXFoPrp<{#yX*w99@_6n+$#4t|ih>9kbXMK;6^CgqTfWyTR&0FTT{Ya!Rjw6>qb>`1 z@9~|VC`;psTl<4&*VxVE?E{cFHbZm3GI-w`8WxLV!i$5=BxR}4=m@?N7-+tQyN_W4 z#Y)Ave`42G602Ep`+Z&#>Ie;k0*d#KP{wSFnfw6>hU~!Z_s$fA^SfVP3ep_02%9>M zXyOmV9BAb4S1Hx@i7rjPCv3iwqKfthg+GE~=CTluBY|POGXF8Nig*PJij7NMcGL!T zrh^>$BZ`G~j<(weJ_PON{zt4oxJ;s$n@u7%* zDFDAN(bcqhUvh08rb-0mW@rG55EHLTY%r!n;s2`KO)CXGq9r=ncC-5*#2Uw=K={1) z#)S5#_{J(#ZCUwDDo+dcFK!wh!;y!f0LxCDCKrj5+Q`oFIx4D;N)?^auV#qTD;l{n zZOA~iy>x%kQg!X#yjxT@K;)?Miy^B3TmxsRWZKrdl0uJ>iZ`|0QMX6M;E@_A5IdiX zUWT1~)~6F&DCFHcoyNAigLH$!6I<-2Yrs7gbcKTKi%_Prq>RO~?ctloy5%%+6ew;= zSBG<#03F@ADs*kCc4DLUNS_>@25@eg1Y3x1HeJ=X@2t8tGH+=>$Z)g3JU!9Ai&x8p ziS?@?sp40w?Jtr_)cU4U<*L*;WCc9;Fr=&v*uv}@eLBDpyCRgf3qQu2x4UE0kiUwEKxWaHtY$L zH>Kr;060ntRF(!rLgGvxU9qI6=tG>QUE^>7F?HXWC%fCtM6Fk7_oz@QjAGx+E%WVy z=2W8#yj?BjZY6}Rl;Qm-TH1^F$fk zLC))`&RN#2hl&{et)o z2zL~SFhhv&&6fkRDBx+W20oQ0M})!%pcBV%ngEIuVAirUJSb|g&5+H4pyp^&&VUa= zl}U!{IfGIJKt_osi|L|L84CRD7+DC6s6^MMximl&4Xd!AD4fI4l%+X2gR*#}$qIc( z(^*Laq{C(5x;>E91SS=elSPEeN8E6lHv-tXvfBp@BD^lF(G~GX>uoPNrJFW~ykvz^ z#GL^S0Wb$AHMeu`+ZOlYk$3=f!PA^pFxecWR5??1T39dhAZI1zJvb>}Q|xq%zUN}9 z;drX?e!%PbxHuJ-xPr8|2gUiGs{}wdo(UL$x)g*glzB8O8_$OV>z(4ohqNQcb&H(< z8dL*6rG)^G26~0|(inoE)CzP`Z&JYp)a28QBgS2*jKe*+LV|$?HD}&0HTmnm_6(@= zM;fY+tq-XS8iFPAAmVymg`0b7uUXdIO}7;9@! zvc{_2>$#9xynRo|A*U$#US?Q|AR7!B=2ZePAWi7YfSeo|did+T-V?VkL4`M_Q--va zx4miSyMNxL(|ki&z` zwSWNIZDklDNu^1F0dXtvbJg_pJjjk~ytWaCu7v{-90rjL&N@KiR_K3J=fqQC=JVjA zK*%l>@UP(SLg-eq#t2hDl0Zk{lY;GFjc<_GBL393M#sru4TRLF%q2*elCe@a1eI_Pu0$C<{lhds`? z6=qE>!-GEp-*Sfk`)LCi<95)T>4$mo9ZM0Zm=dTI7#x+h!143lLlGBVRq!8%Xn_ov zFT^R8k)+4uWtu^K%avA`)~O5~G8otSidP|;#s=e`3C0meV>*Cqt9h<) z3$+`fLkvmd@8~!4|4Nwb^5YcpMV~&SKV%@A1POa_1URt=z_kd~{>ysHy=Qc*y8|}K z+Ij#eDtHSe$pGRl9xic$^4p%!v^$4)0hBO396_UV*~$^nTNxx7gAQAVl(s`1b!oD` z%l~*x`+Y5W6zJ{&!r3t2dd_g|9a&5mR2|Srg;E46n$Ta6$kN zTu22#K~S1aS7SpJIIu)aqk1YmjtvuF10S%!nj!7debyzw$;edmxqT&m{#rVe(Wne{ zB|xBLx-FSet_Tg3C|#)n%!{vUdng6}sM=Z-($aIeXWbZ6?O#EJeEa2mqmZ_03hi-6 zo^8A5JfNTDQKVI(<-pECL@=NjCWn-99a3q|le*aHVnhXp+h6aFXGle)K&MsUJSdmZ za956wiO80VC=(>ZHaY}TKY%cfNGIe`{E?3{MPzhGVG&9*|BB?XK? zdgP1II?O!1ag46++o^;HalZGl4b2!LaA6vjqd`-pJbd|traDcNaZZtsZ&2mY%^P5U z*>H0nRB0V1!MnHppfi4!@nsaUN=*8k1aswqvqtt)lm~LoCsRFpvwti)+7~WB-i?%{dk|of#pg=9PrE9DyIl_|q84>hf%-*oXIdJqr6M%^&ykHfTPR4Z-4kW#ffX|f&7Tet zMjRxR+^_+rp+mu41cWYlOg=UIAFxB&5VQUI^3=XG2pE&fQ6w<`2{cs$BJ55u6CXOzB6CdcF7<3Ijka zo6*~_c>sR<$U|Dl-2o~H#m~buizgNNbmkeD+Zwl*;;CH+IyG=y-DS1+kL#iix7mSe zf0piH8448WiNUNcUU<$;qQ<(nK}776-Yz^L$y5WhJ48~r%`#^bBgdX8vN^}CNcP^` ziz{4l5UP@Cra^@6=%I@De|aWO1auwrpSPw+zM^S$4Ctc3b%O||DCp#TP<5KAoC%3M zP@M7^s+&dc-<03$d}o_M?oUoFh|M9aw^t4+dNB+S&sO}grQd8}S>ln$RUacdrB9`) zIQIkLO{*oTM(b#{H5q^rVC=`*&pSWd{Xmc9eC+ksJ$GoPs3fvtlyRD!AV1yk#}Br; z3&ap$a>OK~&R>rT7wye{L1nrQ%>{apQ@J6i$NE`;Xiw(aiak7&~i%SLI5fGXl z^Ah{<&L~_+Xr6)Z^b1(b0MXk2@TtmASqMtxM=<*Io}7iy;u|xR*9~8%q0=a@B6Wbk zkXxi_ra6WlyTa)D1U;t(C^f*~&M8jQaNP8W^vX0GHCkDeqJ)CaUI!e=Oe*R>FGJY2 zKq^dsBKD`3Q%0%OK99G+WU^~HERfT1@V_ur(xt7R-)2qJiGb3nCeD-4oVmvZn!jd_ z%*3dh#pi`j;xrIQl$2-O4Kf7kgxI4at*CcmVmOny=5KjooL-TpY%$rS7s}(KaRr(S z_aRR+(Fzw?8ig+$NW!}$B|C^-4m1(Vh3RU+s=7x)LdzI$Z$>f{o27^BSHHKD(;`)* zd9c**S&fr8FE4}ALV@(tmBY7v&HOsE&_*6*H%Q!h#|#Uk@~0|7sAIOZ_+fm*G+iJm zd%0=3goe||yNvhK@;T9?GQ>?0?ssd-BW(6P39Yvun`_xvnXWr|&H7K*ckaM#lifjo zEYIZmM6-jdzjsM#|LZ!1FyXFHILZ-4B7&f_Etw!FVoO!UK@cP00YGqs@)RwZx_~pY z)nMBxU*Jd(WegN^0f-rn1t4Ngi&LbW23R2GkBBYEaLNRUq5&*Z1_VN8y+JQyKw`$9 zw>W#iu#?2il*lGR5T`g^(`X&FgM*^*;_(9tI#`!#X(#<1aX@l^Dvcw0u$Tr<1vJS} zsJs8cK^4Uh6hI~?GeRKyU+0f%eqx@Nhk}0rzm^S?o>oJ^;W#G58K8p@gSGxDxvlar zF%`r=ZJ7B>3Or(}_cm=nToOlyNkZl!t0!?&YzK7J7=bSRSMUB%!4(`~2+e}G*vg>h zI6#?2I=5C@kU$WG>d6w3%5QyxLm_`VoNJ^7R&a`DcoC%6z0A7y9F1@^k%v8$S>R-I zfo1Rv%M2KYsjL?tS2i=T=fH8JL&z!#I-2}MicXS$MA^Fs)+P${?b|iO=bRnk_r(FvMF$RY4d^sgSExq7WP#hV_}uP<}pj!YL?r?A66NM<3R)4YQ3@E904CIZAh-?pmDe znN!_+?+QoW{2DhaS}gwhJpXOhH|s5B8dFk=GUce?xzb8h2-ku1!R(dBqiqaORgXsu zn3yDalp@CiVx8Y)CsF{n1>X9NfCCUXj{)`4R^%s(T6hLS^OMoxVz_USVc%lL?lb3l z(;y+Bq?jegbV*95wIqLe<#E9ASD*U<$lAPde;|WQNk#u|!a$(~u?L}tBncqV{K6{b zv7ewBYYe3-N%bf!IJ_gSil`t%?WGTGFX#zw=fae>4~V!DA$WP)_EhrxIYb0RRzD0RYV9nbG(?28gM0fKxj;B0wu&wvfqOel%9a7{Ec-F&EthDbdd`%l;q!Q zL|@6&1LdgsWccrNz=Gp-xtLP3?_Gow3O{It;^0k)!SF;P9TGuNQ);0*#LCh{fnc%t z#3ega%b<81j%mzf2(a`ysWBM9YXm1inScPU>;~~Q9I$J}w#}7@)a=j`=q}B_(ep!| zX-z+H3I$K|#WrB=@qj>tEf9xsS5i$YgLC?s;p|j_Rf_s(>!5BR3<0;V0^pPh>l~0T zYbfa1=wHaFwg=_m9IMmz4VM8T%?R38r4+M*a>Rhas*?Mm)kFqMatAm*P7^c-2UCSO zcvxpJwqAbHB~C`SU`--mA?B@kBpWIm_U_mP7E>de4-?m2AoaV91#f*FzI2SKn8@)~ zs>UHOI&1+M4p9vHs|68t7nQdtay*>et3+rN0XagNlK>Oe^BCPx0+&9L+_I`IWX`j{G zSJz*gqLf4~F;B&wJTg6fknsY}>HSitFr*d!=GQPo$zr8Z>*-0O&zSgL)yW~U^OG6n z77mp0iK`jS5!WVw!jY)HD@+_i8Xb&?#6V$DtbX_oNcz_d%Do;1g3#1`5DynnWRV3b z@i_1o9fL9EbTzM_Ec5TSg4y*g5*Q6J%D%-xl+V&cmUI7EM0Kvl0A0>~9S&`pzk4I1$x( zeHbT%;h8#Zt4k)z{9K32V>kjLuCbRV=YhS$aY)H3JJb!H!CgQV9uPsoXo>?87`Cu@ z1ow&v*Y#`o@oRmpPK$~)a)TPWJF}-&NDAAW<~~4ZZygVM)ec-S?!cY;MYd1e#*~@P zF9_;4Lqxvy-O6vjc|>uc)D3#sMfq&r{H$3#O*otS?enL3k?YGkmp+6Rv#}N}iDI!> zFC<_X0pCCW4%IosRFcCv<;!B}C?J)(c^nR~A(A>8PsEQcqkgR%kQ^BH&nb<#>9Z2) zFJ+XPZVLfyY`p-@aX4&272=PR;>}V(cqdIjj|eRh&4Oo(1%G%uo#n}eqiAYXwzd?y zf;^L%GzQeG<4I5!K^-PJ?;99_89cxK6~2<*Vb(=*uu`53Ga9nZ(GII(vG%q$Qx4ch zKt+nY0o^%@{q>zC41mRGU!0_sMN^W@XEEN1aHNx7FNEin#8kO&Sufi0b5ewzB#yrU zU*HrRzF4@4_l;de5hY~S`N{2C76K=(bJaV|(iHa!eojA+aVt+*GU{?OmG@hc|30p3 zy*V!=Bg=u_XgT%un(%M+*08hF{kM(c1O~&YeH0~uzglP_Ra*8`a#Ru5oRtljv*0~v z92F*$g?;7xCCf&bAT*gM+OD8H&rnOWySN9)v@d}+an>|Y6X-y5MJfMAT9r6Qf=?4& zV>lMWaq*+#0n#{2AFT`6=fAT-hw=+L0+u7-(E8Px%uG=VqIz|HmI9YryDB;i`cIFz zHteMA;GvCC0T?gz>^Feu*b5aLKolJax zkQOmb6n2OHU^y$fkBJlj^5LQgSunMclr;{(I(;21xk+oF7ice>c(C9Q6Z%hS+k=Ab zkfH%u1e@eQL^xUwQPG1P4l3Vru@_?Ds8dtW+SG2Aop4^ixFTtR>Ju{kL^E+fVjiL_ z3$bwFOw>DRYuC6BVc(fQg!&jh)-{zjRcBqyYl?;HCR?LVZ8iLYK;%A2e@F$(%s z_~0``lqE)xg(4l)B$@$GZOl+L048l_B!!g<-bFd1NN9Yh(W8F`#FMArYB8zY=i+Iy z%w1SnXs+)rYysf;+3~=ll8jEeEI_>RTL3b^8JBaknd20pyoI5lEbrLd8QLB);QPGp z${YYtAuL~I6B^SqCO-*9+bab=qtbk4c;fSn1*x56D=MiL2Z<*kAQo&mrJ?B;(S1+KuKi) zka4G{cfLb=d;586X3W71^gv&;C$xcM(1_h82+cIiJ8??Zh0NOjSd8ufq}ej(j|d=u z2|MOZL@0XHm1Fz%7hNQ1Tr9O$2%rghgI`B>lPv*NG|=lid=Q6#v;$_Z4+@OB!Z#m1 zoy&s`sAJn{YAlBWkv{RYWGVDDuf!T?C%3$q=uiyeHHj)M(q_dpGyehh+EPavKBjhD zt`#d1;(1O-@j{E|n-Ne2qk84*4i39kj0S>dK`sObSTIHM(?_2bq-YAtx+Q436}XDb zy`e2~C^R2o0i?Sr9J>riSVAS{xhLjfl5@cIVj3itc5?0UYJm62`}t~y-s;x2GP2-f zXJ3JDg;{wrtaqx9%$!2j>LDmPx#3B43-fq;Z8yhDVXj{r0w_m8&C0VO%a7FO`!zcu z%JbQCuVAo(eiWLkzA1?-u!BxZN#M9v?e0xMGS<^65KCLMj*CJAuk;|%G*-&1iut6& zM})tMX7=Z^Q+lJw`$JB+{@wpIEIG{baj3ncEM^9}c|==@BoXo4DptU9@?XBR5bGqF zSg!J>w^BiW*Xy0(HyXsCi0cNL+6YVAc0+C+Q%KUXPg4D^m=Z~MnviePBcHXN%)A?FB-3S@w=T7xy zRm-?e3%kO7-KU!hr{*vG7InLf>~~arI>x^6YAsu6Z$eljQZDjB6Y^MK-em0IPEU@8 zU=*70eAw#!^E11!VRdRipS2;Emju&}*D(tSbdz;Nx09Y@y-nG>PWsUVg`(_?xKmSu zXU8JZot|did$F9=Dc#b^0pOJ(wC5@ebO7 zuPpZLM4L)_N=DtPVZpGOr_7db%)iX5A?yNJr_j^=FJ5spr-j`D0zVIcs!TgG;^(R4 z{Zu8JXPQ~%=|0Ps3=I(W_w z&BI>epZYvUoSCufTqM1G4KBa#pYH2_?XRmn4+ET|J6q`WcSok#Z7s@kxW#^_n~myW2%qR`Kw1db_SfY zYZFmU{knr=kJ%FcRlCwXgHv@y9rs|`U{ZLV_0WL$%8P>Zti%h`GCBJ#nt(f+0u$J| zr$Wf6NzQ(FlE7)lULAjJD?v;0ZJk^@PBIJu^gTrQ3q3}%l7?N{#Z@+8BR>3-o5J-T z(`?<~oaoVWwM?~<+_mSxV*DwAT$nZdspKzjQ%e-lNPWa7=29&?7?2$4gQ@VVRH-k- z3;N|xy%Xo;>Tvt5bT%}jpy5`iOP#v7fwqVILHPv_9oQXf+SQ%cV|AHMZjmX$%OnN# z%2!N@(NP1G`Hl8m-l_Rv>)y@kF} z*E#Y0!9j!Jw*SIjxbRX0NNvvHA`-!aEOPYr)e39Nu_TVyARH#=z^mu3Bh%oi{nP z>&r2@v+n4dI_LJz`uqMKx;J1{ zpIE`Unc&U8gW>@qjLz+TBdg=zLfq=YYyo2Ob9!ETn()XKE z_@NiBa4z(XhthKF!?nlyQ11<8u4dEShe~;M?ejOyh32%>ad_xwQyt}^cC6bOfv>u+ z{5XPvw366skbR)W=BDe4mHPKuKmTuZwM(ed&oaM(Q*h~JR{o;o@!;}LaSiy=!;r%{GSbSq$2ING`SXx;CKcu z-N{DdOSKDfF7nMt!YvJ1`Y5W+9q04L8Jc*UuYDp_4LJZ(V#PDc8SOQ9{`C!cE26Rhoxx5J|rVN)XX=8Y-R`fKEP}S;W#Us zpv{PA`yogBnP3Jfd1j;Wv*r~8|Ex=>wKQMBO@P2=4OyTA`V|JE!V=OQ6$Xlst1^-V zyhRq+?HD;I!ePA(w`9nVulagnM@ZX@3BGuQ`D1wT*r4jKV^qdvWJY8}#saYVLQ3jB zNkSd7Uk2@_ZeI#zH>=lv`C!Akw-l|z$u!Q!bV~P*ClmWKH=IlYv`Q=7a=457U6UoH zU9-;3##ZZ7eDI<&^A#$4dfzabApihABrik$oU~#8bjWtbzeUdn?HgYS z$FpV^qi+`-2J~()N0%42aP*6eKiY0E@r~#Dfa_*wr1nU@M7O|$BG7S16mvOn_mkv7 z%|u^(Xpkh7Z@_!4x1`Zt??Ye|d`I+6N&HK!q60-zJTzn>_^38gt^JkX}7PuJ=hg!Emcj^v zmyp~;d+-+KQK&Ft!ig6lKFpKR;6sraN0uZR@!&<1`%bQG`En#nlkie5w0SWkOq4dQ z%&ggSCr+UYt=x#fBpf-5Hy3K;IMIqwi#SE@QwVSWB1n!6Gcp`WE-6-n2`wfR%TT4p zmrXg2M0>L>Ijdf|mbAB&ro)DD33lA;aA;t?7zJm=xRfAPx@jMFrFi$`&9Vz0M^(Y3wUuw{eJ z+)(CIy%J5@>xnTU*0RrYB7A(dZA!UZ^N7R=vnEd5+gXcD$r*k4+wf-iVJ8oM{P^q& zggA0PPo911?d_Z4#sqfKk&i(6*r8&DPHZTU!3O1nMF~FoL5QTE%#-XQ#K?)NAN`Jy zM3U}M@`xea!n1-b%p&8;AnTL^3N`1-Bd@>c$_@>o7zR%M3J+HFxyR$A^GyXuOg>+7h=6Rpbn{N?%${y)K8+ zG^gCYEXl%_LbdBtk_6)vsNI+-N2$9c#nCz(|0)cnSvw_Z$Wr&&=gLVx)$p;h`dlhk zKO<8Os+*i-i?WpPa_Ac~tgW)o#O(C$C0Ltx@o{ z?Dkc<5bCf)uJ-xxBaBQksy8dmEi=FW7Q2ngFFL*LNWETZy7Q`U2NoEy&PSM3^HRI@p@$0Xhz1UcZ^hz=?oxJ}0 z(^H#CEHCnDoR!-+V@N za|acouHn60?ys3r{Bp!SZMXFQl&lI0^L2|i{qvyG&U{_ZMMBI~&q$BvHpvxGS zy>lj6LG}H1c*A89`r#+-Ds4B(#(2El!$ZvKJ25S7V?6(e`{WBN%XcRB3?e9BWqS&dP zHn>|^s$;`qoC=X=xgWWvZlO7z)I>KD;zg@{H`GaVn5M6$MJ#{r3Jms4x40u3?P7cy zO=>VlrFV%9Ybj(5487Dj{_yWoi3_0ZF!eP4U5#-$yy6?T^bl3C$|6{6Tj#)qEh&Dg zCM-)Ls*1Nec2y0Ia^&OxaWpqb>QQQTkhI-QrYE{90`O}$8Wr6xVo1t0E`B!T$YxIX z5JMb=0{x>3`j}`Q#~DkMa{SJ3{x=j+NlbgQGo=2Ws4>xj?g&i~0s)9g%wZBh2vFcd zR;+Lkmiz`M{g?qO5TJk-r~#X5Fo6qb5Q7}?}XEBjk&T*czoXAW-Im%I)I|)&K zY+Du|cNs~o9g>EQ?4u-;Sjg(Fv54m})kikRwle|_YJU`CEGzlFNs>{1VU(d7vsc91 zDNlF(w24fTr^zN|t!)TZ;v@ITpY;_cj1ujZMM=uWG|tGAq2pIlti;KQo>Z0?a$}Ly z$Wj*8(rR?9u1)Urg#Fascnta_T7vIzFnuXG#@8r$c1=o9 zoZC^cXw^{uaHuu~WdLs)9+z_FM}U|C1Ln#AyUuk6b>L8mT6q$juw(||XhIhfkbn{N zW(I)R$GqxlSGqd(v5swQWbev=BjCw0Z|y1du8Pxk-PEa|E!}2+snK|z7Ld6FV?G;M z!==XYRTvGaJZB3O>#bF-IbGyF@!6@|qBfr6i7nX*T2_?8_K2^wA@eqy)%dOUgbO|H z99>A2qVNWf!1XP4EB4zmYHnRMt(rn}id;~xW~dgeWmJo+NY$$GJMBel7ncWBeJR(Y zrj2e+O^HhX`}HxVR!Ss(&1zr#;q<&)4XNLJTHDMCYa;tFgd_}s1WD|zFDyBT`mARi zhFPH;;W)w!W^e>ROaw1?*~C6JVF;FOLJ^y|uq0Z%Vi{X_Z#B-_MfyTp1)sIN-xX4N zYslKIt{1h9%2bh~1kgQd)|IABX>Yw--B?D-I1T9#MFO_u+jh5+o&B*Tlh%_5{i+n{?A+YY zakt!JFfZ3y)J<{;kYweqNU2)sH+vDeyB+PmctgG!f?28G67$cBE|Ul;xe@d1rm&7u4w~I=H>@YAOE;?TqV^1);Hq|J^7`3B665tys4JzTFpbk^Oj?LyOLV@c7{G$i)s9gNPpc< zYTlSXpi;ckHC8?EXI>viIo$@WdJvx`-y4o~ic5@IM#3g4w-~1^=HaPZJYytQo61K2 zlG=!z@2PE1^R|km8MQ!1{Zm7`xkBXTY(}YVXV8MZ-W2!u(bxSuc>Z^^k?;4Xzpd(k zqN~h89=zboU3qLbn%?&IlhuiQQCBmWwGT(bBf_B{iY!)TyMmSXyvMTGqCF~5(j_u*FSvVr(gKf&;9YY-+kx%zxb>VN6f@1a)1v| zkL!-C^A?ZOI)=3DF1ZlS%OpwAtmsDAEsNfVzea_WGEcf*u0;wi@1{;G63^cMqKNKJ zP1H;e1DlNS77+1JP@fPi0b|O*AfwjCEbH`5-Rh0;a4x}GDz`i^^b}9>NQ%-9EjK*N z$*@fcMG$&Ar}Rz_$RNTfD1ZXOK?}nn3;6&LzR(K=0t~;93^NE2ywD6Y$PB}f4B2oD z*>DZd5D?683^T|JCg}nQ4TXv4;`@*6_F3ZVG_eI4(~7#36T*=F%a{x6afJcJMj}yQ4!A& z6K63GBasWsfdbl~)E4UnZ}5pukOqS=UQ`glUan6_1)*T=r2-A{gn~T(rVs_;XTf+7 zllbX$l4`y3hv5J%-x6>HlV^rdkK!(^ahy=e4zDJtY|cn8sVYyw%<+WMF|D2u0nN3D*>*GjHq$S3RSwYDep46oH8%}TP>7iFu>Mg))a0e zdV&TbAOg_fFbz{N4HGdF(=ipZF(Z>PC(|({lQJ#SG9mLaDRVO`(=#8lF*S2BKNB-K zb2LfQG&2)5Kl3qLGc;ARGfQ(dLsK+G^EG4BG#67gchfdgQ#VhOHhc3lL9;Urvj8X{ zNWRSm7my_|ueIK-Fwo51>P;CnugWB9kt|LvFNGkX@X;7jG(=OBLre5TGgL%d zG(|}iMLE<%M>IxXv_oCgMrm|MQ4~XQv`2dsM1hn-4M9hJ6i9KjNN2P|W%Nd4lu3`2 zMK4rDOB6{fbV+NpMu)UUOLR$(G)O=65B^}<^ivy&Qok0?&!i4J-I7h!O^^I8Dcdm^ z?+upDEzacBJ(WbvG$X4)?oNyWEv%%z1J2&UgUJha(>MCXK7|+t`vUAfU zkO>DApeog13p7*J^v>Q=Rl6=g`?MQV_T?Pa!TM&ne5xpWYDnhBCsHurLe?Oy^Xd$( zb4G*4@<7HiL;f^ov6vQGUXLPRMPm--ZmJe)HD>pocCj3yJC?RP?j|#o=JlXuYp3>V zr50?hc5F2UY8|3!)AnuS)*&*Z_vW^1<92EPtJe73mTs}uY@POR<<@M;me{^_Y`J!7 z$yWZP)^3=#Z}oO<7q@Bi7H}1JZUwh%4R>$XHgD8c`K-2SzxHkamT)6?u?iMc`6*{d zb{I8JXFay6?vn_UriiR8iefD=0qr{_qqK5`=X}mjF(bT)uEBuP=jz7dgtrOR?30u( z=`t`1Zw?`=^LM3JIsLBan3H&iZg*{WEz7e8!9?diVdWpAn zvu!7sZg=4m=&JX9m-lsS4t*&P+~9QS7FFq@;!Gx_IfrLf{$e}`W?@R?m3+ir?qrKn zLQV{#cpw;p(LycgBq(Ua+IZI`&}uvX<}xSv!o##kJ2-fYJmXfZL*#UAVX6qT&_YfU z!nPVX(?EiDROClsc&|c5r?R9e3}%5J*j0{1mej^OamzC_IEPZ!P`ij!yEos&>L<{1 zq}<t#`vFgkHRO%e>g;_;)|5LvCSj_MioBR*rw0jo2o{jj5JAtO#)oH;vI4jTcAd zpa+b<*o&J@;)vI8Vy-(1`EkegYsa|f?&ppBIBMx-j;Ez2Mi*`6R!J5I{<1V>HTv>DpcWd!C zlMjN~Iysf2)&ke}AjWoc)0iUvPHuZoxsO#Dmstby$SyNNxtF)rix3BHZn=>ic{|oP zl3m%C(bjo?jwhp8nqdVYisevlb(ayhZt*xs%2?uBPLNpQmK)-cAGt&PL{^4`Ck3~h zVMQ(=21bCwo988JjTxa;!&wyim9sgG58CGLf@%(;*+hhD=Y?xam3*V&Dmd0gANT<@ei z@H#J)LP!jvuFtxz>4lS}**W<2t%X^FKO%d5@}KJ(uS0NaGuw|pqOloUTbp@#DH}5C zI<~cJlO0*L+1jt&x}7C^e4A6B@mjWb`lyR}Ec%+U#r1US=R0=V3MQ_!OB<>En9IcV zt&JN+;yRO=ZbF(Ht$$kN^5~1ZdZlX_wj#x}_R2 z+PS?Y`>}_umM4U^qgJ(zo3THF=N1dzP#WHz`>v4#mABT5fBCO-J6BZ>R!UopABDSN zTf-q)uWR|XCA_i!JtdK6uWyv%yY+jvle)HVV_XBgu@QoxO5A{31GM$q#%uhR;oFTD zOIs15v)^ef0GzO2k31$WwrBg}cEpW`d9N3!y5~Dr@7g2a7p?VM!G(FDl^mSsyS%Tv ztPca+s@%x)$i3Bi%a5D09UJz9&HLCq*aR8QjXd_GkIsKj;tV|4^1MUzoX=;E&DlK8 zZ(QVZPe1g7&I|p{3%!tcB-jQJkF~nZ-yFwpoTzcn`=rnI5M9^`Jy1d zJH4;^|K_~+0wzC#jnM<9(|h92BfXG!g}24r$_;|}<~;WXkk>oC(eZrNgMHNPTD{r3 z&UKy77v0hSTm8?uTGQ8@tjQYb%GwI*oc=of&i7o=eLd6-ec5SGu4mh<^|?Pd{nD|$ z(LH_BJKfQ{ozGe3%G*2Br!Uw){n>xrOblH9B7OEsJ>IL`_Y7V7+MUx2e$BJ}(P?kL zp@0$8@ z@8J)=(3kz>h5h28UEZG?(~teqRsGYk-PK*M;4?kZk^GrKJNlqq=r=v)W8UWh-r3vy z&Z}J7#r^mU-TZtW*t5RbVZNy^edV9~=-Y2sn7-oIozaoc(Gy+d|DEM^{@BT$+sR%R z`C#t<>z)GW{_gXh5A>ez_ulUd5%4Lo?+5?y3%?xb-th1K@Cl#s_Z|}Y{_zXH@%8@j z>mKj@e(on<@*^McCExQKKl3j?^Fv?r^Iq@;|MOE{?=e5`7k}?vzw|%<^gBQHSAXzb zpY&D#?`I$NYrpUjfAK><_iLZ`)ll~}U-&7%?~kAPeZTK*VdUj5B~_8ouy zC4ck*f)52g)B3f61YpjL@$MS50i*tK8VY84t4t=z6m+p-ON)#+QVNzwAP3;3?kzHrNC z{aaVCVyRWFa!pGZap1{p_vXzycdp*WoW~l5oc3?$&W#IWC5&1v<<(d{2YroMb>h{6 z3&Re5IQD4Pw|nEx+;w+t!dRUG_Zyt{>bkaLYfdh_ty!{qK}(KKy7gz#bd^Up{g``X z=-%6!=ySf0di3nqJL>b^{d)E9-=Dwl2*3XM{QI|^QEUAg$BxZAcFKU_~3pGp7)=GB4RjVeHR}1VTUTFI3j-nYRKP#Cd!xKeJeW1 zVumfkSR#)zDu`o{Htsl|fJVw#;Eyp9Xk&^_LP%tYOUCyjl_y@vpb7VFiQbSzCYU6B z7t$zSlR~Qa<$CE^$lrNLf_b9}4C0ucjuA?Eq>KG2nc;%@G1$U~FA~Y7hG=erb|9W1%K)3gDcSQYs;&ViL(IpB{P`;H6_`h$O2pdfKRyswS!? zd?8i|=XxAIX=#xy4!UQU!A=qE&Hp`B)(oRclwa+g9i*2;pVtXyL z%W4a5wAPMGZnxQo#`l`cZpRIiyz|T^%ZxF_Nmons#W@@7^wT0ooiW8K zduz3`RWtlB&Q#n~Jd+f5$PJ8XP-;R6ky6?_=@4o*IeDJ~#PkiylACG+U$}i7+^UgmHee}{#Pkr^) zUyptE+HcQ&_uhXGe)!^#Pk#C4pO1d}>aWj!`|iIFfBf>#Pk;UP-;aO(`tQ$w|Nj3E zzyQ9@0a!qXw9=6*1PXA03~ZnSAE-8TV1WYy*uVtj(GDVPU;`hZgtOA|fen7ZfC$+ zbDVmc;1^Et0S-*y18;DE132)+7ijSdrhF$BDAA2>)We2kl%5eT@PG$YpaG0a0S*T0 zOL8i7p$tV^K29J20c24g`Pcvlmau_($RmpNuqX%rHqZ@ceZYs(YrsJt0D@d9?i?b( z!2^1^$%e{wrZg?rC^ecabaZ12@5m_$+mTNaDhnO$m}E->`qC7{v~WhiW(B^P(3(nh zsx(ChPSux!3xJ>k0flPfQlJ752($syzQ-Te+%5;3U|1~ zEv|8o>)Y6(aIi1Uq*KRmS-_oxxnxzrQ&rmk+U(Yjv)X+cY$2G{t&Ub6mvE_S3kO#5 zt^=Dm7(-yY3*XYccDBmpZETT?-~8%#zx?g5fB%c$&f;LJ;G8T%33raQ(pACljjw}2 zC)@g33&0evu!S#-;SA^ZfqKm*bdz-stva^Bed{n^b(!9QuJ*w!zMKLhEL+~bBONoY zF^z9*;~e97$2#sYkALjrAOm^GLM}3qk8I>5BYDY6ZZeaHTw5m_`GHw|fMXLXf^5=t za8-8fC0lx8O}2Qpd%gact@Jo+~zm4+0AO6vz+5xXFS81&U?NypY5FI zKkFILeGasr4{hi~7kbfzZuFoZE$B%9Bbw2Wp0uMSt>{a)`NlN1bfp7L-v%bwyeUX1 zWJ%1o@_tsS$@1(rqf6#kD-Oo@o$ZV{J>xZ_;~hlRH9CCVj$a46*Tf#Sv4xH7Vki69 z%5FBZpS|p8J6qb&p0>5Cjcsac``X*iHn+cxZ8zt-&blVIxyy}iHMiM;%!NQqQ;-Pp zu2^q_{cA!&;a9TCdf&57V6AD3W}@;s*uy4vvJGBvg#Y^B2`_lV7yj^rD;(k!ueiY{ z&hUj}eB%z+c*iXs@r!>v;~@9A#W{ZRk)xdC-p;n0cU{y5rkJ44GHr9`O)fF3ZRR!4 zGG9^6@1WytzV)@Ou7h3Ymur0g=_)t*(k1Tnrzbq>On*AmPfqo$V}0va@A}2H?)9m2 z{p({Fd)Tdh@i=-Tjw=^=%75*+>E`iwanb@4V+f5BkuHe)OdGJmk@?_S2_+^{QVx zJqYI|o5_Q1GXyo8O9{NpP>`OIIw^P3O-=Sx5O z)StfftB?KbYd`zk-@f;|5B~3qKm0Jh?Z0uG>o_-i;gPSrC%iEZPsBg|`N)SS@6fCH$2{>Oj_xPSBqf%bQR{Fi_fc!3w_ zfEpNq7&w6iXn_r=fDgEVB$$CB7=R#1fD1T+64-(jxPl$nfA9BxmiKz5H+e#}IM{Rn zV<3BThdWh9d^HDrx>qd;rd5TNONaL^Gj~}=a8&2DT^eSESBQmKsD)d|gnhIAN*Y)FT7sE2xZhkU4perSh(c!zyB zh=Q1hg&2s5h=+^Fh=h2EkI0CC*ocN0iHJCf^-vG^XM<=6for#kHwcQH7>e)LIN?QE zd{=6hgfy??YO|;REG#u(f#)tJRRP)5R@jv^3>IAmhKsI~Tj_^vM$m1;2yVpKa>j^^ z#i)$OxQxljjL+zd(b$aB2#wSzjn#;a*Qkxw*lWTljObtlpkQ?bM{$%l4rn+ICg2Gs zP=D;Ghna|p@hFe;NRRbskN1d=`KXWk$dCQ#kN*ge0V$9JiI0EihMM?)pO_D);13PS zkf*SQ{O5m-BZU_*V1)I9eHSozeqe`oIjNI7$&)?llRpWRK`E3&Nt8utlt+n_NvV`e$&^j$lusv)pdgj# z5S5Mq3RY?Vm7M5_256A==MJs#m63pnk+21Fum#-^3Hg*yX}JYysg`K@mT@VUb4izV zX_t42mwBm|d&!r5>6d>An0P6cWSN$QDVFn?53P`xU7471c!&Ow5B^|=aM(C_WCWK0 z0bzww0tHw|I4wqy0wRz}p~G{_5(jR;3K5_N@-Te8SS=~wOiJa3JozAJ9(7Bw| z>7Ca}ouIIt(m9^g*`46&oy(b>>q(xDaGur)pYBIiKXY zpZ1CWp6Usp1zMl+iJr)rp9UJB2pXRR`k&>=p9yN75xSlN>Y!F>q3wyG{;8h^I-wZ~ zp&!beo?xOSdZH%k51z21EUJczxtL%X39V2Mkzk{6d6xNP36;ZDN$rBnK(RVt-cN~Kq-rCG|QSn8!)`lVe8rei9mWg4bP zS_zuqqw%1Yg^8A}5DD(EnDs!TG1>}udZ#hEnDtkg%94_qnN0%qYDws)DR}{d3OWoX z4<BP2ST;}qZ7>4~pa3NqRs-e# zi?juEzczXAmmlsKAhZe}?kOO%>YfdvtGwzav|1m*daJuiti4*Szj~|5>YniNA;oH} zx(cky8mzSnt-gA!!@8{5I<3!Yt-UI(-#V+^%B{evtp@=@5-(5nyvGSt^nJw_lm2|3b4OwtNyC5=_;01GP1vN9kJG61tNE3-2z18D%W zHe0hdOS3!6vpMUtIE%AAE3`kWvpzetJqxr&8?;Bevq?*|Ov|%Q>$Ffyvr=3Cv_reH zSu3(2yRjOJ3K|QxUn{m+BDNgswHwPgn7R(h5}FrKi<|11tO;4JxjBr5Pzulm;Q$YS z00{U12niqq^x#rnB`uc(n_Kl)rKS&^nqaG1gd2H;E-(UoKo0wG1gs#b@_Q2;mS82H*l|5Q}-| zxoReC=%|O{umVVs13AD1On?M4oC7s1!!*nUc%Z{PtiwG#!#XU(I4s0948%ul#7OW6 zOfbYuEW}Sd!%EDMf}Bm9LGz%$8^lbQryL7e8pM3$9BBKaqP!otj1*Q z$4Lyxj=aZF?8b%6$XG1MX^hE`tjCn>$$2ctbxg`JY{O2B%Ad^t#;Babs~p6vT*omi z%d-5+wQS3?jLW%f%C^kQOsvbl?8?1t!@#V|!hFlboXf^s%gCI}${fVZjLXja%&|<% zy$r)OjLnyf&23!8glxqz5CxCWIPBm8K;Qz?D+5np0+etLX<%KOngX(LdrtLK?G?9_ z1B)PF0bO7Q_7Dyu5CP`^LOIX|;Sd7_U;#KFi_?_?4bWD&WCW-H1`$922|xe=pa7^~ zlGg=v)v{I=U;t(S4}1^>DBu7IFc5%%1PCn!4Xir07HppQhVWRUX|M-J5Dp<64&@-i zJN>9VT@H}C)8rt+JYCd89l|_K)JE;oP0iE(eAGqV(>m?{(@PE1KRwk!{nSl;)jO@z zO5M~%&DC1n)kB@rRXx^H?bA?g)?7{1V9nHEoz+6^&rGe>FABQr+2<4cSCZ+dmz`kP4~(322NX?cU{$-tc|h@@?MkZQu7T-1Oc5-qF3^)y)S3-rdVh-Dkbr->u*Y zKH%St*PJcYyY1UX4G4{+21B3&2+Rac&;<#Q00j^T79iqM09ez~4w)$h7BB!cFaV+bHD_Z zyAS(d1$kfvcAf|OP`P<-1^uuOcn%MNzUPH*4}tFI{cz`gj^~IT=zRX@d2r~39_a9Z z=a&u-i>~KZkm-B==#?w!lpg7MPU&~v>88H_=!MSdo}LGkF6oZ`=bEnRjlSog9_W)E z>6V`Ar@rZ(Ugx!b>!Pmek*?>bo(IN`=$8KLu0H9BF6*>T>X2^e#D46Tj_QrR=)V5x z!T#u@PVCnX?y9crgdXY5Zs&@Q?a;pM)9&iJj_J?N>39C?(rypJ?&zg{?7N=o$B=7JmA>coz7K#->7YL7@xBj-9`A!b==GlI8-MW~&++hJ z51bzI_CO9+K=PbkxrbiwD*x(-p7Ir6@hczl*05uQ@A~30H zKm`gA2sK~;ML^JIkOO{j&yd3oEg%D_a0Nxs1E#tHD6pE+LIo%A!F*5zSC9hCVgi?c z1qDz8HQ@L;PzQZa0kba`3d?H(6+AZbFkMry0v~J!F#rUPATlyg02E*k z_Rt1VPzaOHIrH^$EDY!K01Iq72RT3vlHL#Y@crQr{@_mzKR^EcK=UL|@;}f15>WsLOC`h&Nl=kcA)-7AQ zN_mpAD>rUjtxNq9jH|aU+p~Bv?v>kDvERUZ2cvbkGcRJke=Q$|C%C3v!|)g$HaRyB zV3a;5I+T}M^=j6wUB8AMJGPo21PUbRGARlZBorvjI0BE4nI16=?7*GF%yK}0j@X-F z0F`X&)vaHD%}xy!87}Dm5TKD@M2;S908uC)12#VdOeomPQQ&rhDCB$eFvDlYehM*0 zBp?6?0uopuhy4I4#|#SY%b^Pc64-$N1n2;wLJNTifPftM=!b#?z+lHUN?hoI0({IU zA^=K4#I8jbUxZPfbkcdJ9dx|$CZBxjiDaH`;;E#YIdUNAvZNBT>@kE`5~|6eJR6D0 zxtd(c$tb5>axpED1kK9Npvb`a_XAf+W?6 zR8tTAv{F>*;*?YW&)_jt)lr)?_0v`R0hJt4VRf=qhCD?m*Ih~7sMcU_74}dpKk|#% zxNsT`B~8Kzh!r~djRNP6*sqTKC@^D%E;=z!2sNywm)<^H zprHvQBq8UB-}YN>1wZDM&4Cs2J0f8Q!r5;I-zZq2h5}G#Tg$7vE}Pd&p}Mu$((c5XRT((1*sB)J?kJEL?3`Szn1!*!Lu;P13a5JyP5m(p_rV zt@_<`&^0H0Yg|!&(rS42nLab>r;qFUeRSr&x|>sTL3D;?dA7QHgk%qY@J!67@VcIwOhhb#yBo*oqap&Rva)lzW}(uxPu(QLS=Wf?Y-i zH!3Dd@oAUCq7^YmHZ5i@jb5}G7|BRCI>M@qW=fo`Ja@&Y?W2vzVj|YQ$d@qI@ria^ zq8U?%#xC-ajhgEk7XzuRI1+M>k;7ycZ6~KC8Zu3UTa2DWxkXTsQjCWbl&P3Y{p#Ly z88tvI?x|GGDph@@M=`M#FM6`8NTP?yVTRR7lN=_ZwA3rH4(2aoMAcwfRoK5mF0e@5 z$4(0ZfD%-e6+^*EW;AP$vGv1`P-1ClTcZynq~HQLz`+>$snK(s;}RAKLl2JsPy!SD zQ?#<_g8~Zh2y^+S3s(??6i|zU3pBt8MsU$NAb{EmK)|@I#o0Mh&;SUiV7S-4t_nn8 z1dV1?9_GZs0E*B9=fnU3wY9B0`VfHPl8>O_Q;Ea2`FG;ATx2k&-kd)8bl1<7N1Y z8;0;v9sJ>*Qh3CA3|`xwmp2r5j;9`Wqg~4;;sRUvj!#N(gCXT(;Hj9%h)Xe8KfK`| zGmgM>&D7r>8djmnN@x3%iR=c;1b+b%{o%k02K^i0p=k9!Ss9`69gauNC-#5kdOcrP!|Uk z009m}kb>{Rh|tajba!)Rga(Kp5fDJN2vpsGOEloQ*Et8FQF{d?yvH8!rLSw);erI1 zX9h?Zfp6--3L(_idyBR&jeM3P9(ChKny~2+lgL>u6IGLBU2$LfsMabI8L)pF@+en~ z;j~Ut%pf6hR+D_!D&rB{dxfL92`gk#soTa;X?N4!{bjyJxWb*Yw};uyShgsbcO5SH zflmq4EjjDV^Y&#@7aMSK=X;B1uH7yD=Gb@B`%(Wcs+AYs*JkDaVW;G{L1jyjfD+6Z zCy1$Jf%}2%+n$5FqE<}`R8RpHlm{LGpt)?=fx}=^z+W*afCAJIYaD>!0mTJ$j8brk z6aZSjFFJ13k9+eN8Q}sTs6eT^Uk1+i@Kk8gePb%LA5{Vz0LCei7;a_|e^TR@ z2_D61C1Ydio7+mFvgF(fSJV5O$_YRHGSR5|O|o8=qzVF(I9M^#ZC>33F4zG8I0A;DfG$7)FrWmN(mAk$08XpF zpfe|@g8(D=1O%ux=dgz+fPw@N0yK~y8$f_2m;rk@f+#=$i-D&TFc3gM0s^oBY*7On zP=E*+kP(OhB*4KKV1*`Vf+!e)5!k>25QDS>0~4qrH824gP=E|c05^yMA-KAiS~eZw zk^Tab%QJ_h0fe67!e2tOh*KNz>$tNDzTvCAiu1mEI68!|FPyQ_d$>2$wh7}yFC)1+48ukLx*c&7!!qMG=u^1g6TRcZw|e6~ zi$g=vTO9{OGD3u#L*%Kp@wVNYo#h+3kAo6FLOGS2GhT6v9IJ>2q(2CFfaa}!_>Udffi8#v z3TT5!n*kk2fGC_1bg&WqqP(K1sVvNaEi9Er)SF2(9YJ)xdxN-(OGQZRJVZYztJ{u!$z8e z01yCy21tVyFc$)-q1A}N8Jv&+s7nN}%K!)f8Hlgf&?t5=fe1(dCb)qZXaWEL04P|w z9mp3F;sl5^ z95>k&nDn?yy2_&T#CQw8P0U1@%bex^xwxF9Nbhu{jq5`dd!vsO&w^{W>|?l*^TQ~b zu=SisYb($9bS3n>u=%ViQS>BAgrtj9NkaUoyc$XgW29d)&;LZeB~#D>4LSNO%IQ3# zfV)oQu|A}{6^D2^f!G8t+8)LadCLV!tdNB#I0qdS6gVHk2OARk?g22e|GBvE7ouM>4Z)xaPyZ~+AP zN8TC%AfTYtkb^|H%nEXVT-*;Nc!WvV0R)Hx88878=z|vM12}zC6X1@(i$~muf*5E6 zBxnK$B7guWytO;dWn;FXi3cG6F^4(Gye%9>qzpYrOv80+Nux?dt#nWo3rX(F&>N#p z3Kcn$%rSRc&`u?}u2d>eZ3|IF7E;~3{Pa}bv$0dG)KP7{1-(83tF~0_NKjf;_`Ir9 zUBm9gP^-GgsYFmp?JKNIRfroiqQuH?J2wye$!Z95Jx{%=+ND(stmRs*#mQ0PO2DcRrvOU3H7v5_8lWUIP!e2@vrjZZu&{|#S+x~~6|Dt?Qc5TQ z9q=`W`Lz)kAltxP0?=H|-GN{OsmdjQ85~T!n}IekKsU8h8;}7o7(5gJ0=1J3i*-5_ zO<2Zl+_cow%GnAzWeM&k1s7L~XvzkC9aDD*b>A<; z)`^ozvn9P-IV46>)-j~2JVe&G4JCmiUqy^P1J*^E775o1 z&|qCtS(YkZZ!m#;XoVh0RLhfDrLn}O9m%nU&@khx6cgKE^*!`$;I+9_i`!YwyHIG| z#BEbtMx4;Gjn%px&^A;fdgEdqV@fg|Q_fWY4+bZ88GfeYFXAT`B-sm8Aq50D=UdM|Xvo zq@x7tkgv3)(n=OB>Dsv;ZV}~jx(ArR;r&*gF<#`YJac$XB$7y>4MdpaTb`7O0?p#^ zL`f`0)-dZfur1?7&bG9z#5`Iy(H-!V<+-rYW_&X3RYu==3s_oOKhs?i&|`U zV>o=nsA=Xg&dFicrL!QzUfpAx6rQNmPB_HlGzP_ehRR@;X9N}qdq9dW<}07o30B^r z2&CnxYbh}JfG*&GLQsz&hK&Wpfz@Q_(7M01Ojuif4bysnTja(aX51k@RGNxe=*+~t zDq0Eu{X+%Kq;2j*b#}_}L&E{~G97bYc!oXy^v~;^H%x@&*%{=U%xSYJ)n(ORxdr2u zNNVRhP^NxWEUsp>ePe;SJ@R7;M&;UO;K zDg=^;^kqlcJz`;J+nXhPD`wi$PrU_Zs{Br3ec(w3`U_ zJ4}1*3&v${I9|%LghXA`%%j=vRA?|(XuHZ^r3AT5F;?Y+Zq;^Vs8wX|#x{;*+t%*q zf$pUSKgs&Uu~1ZNVr^ftuHQ~P@r}dh2DeIferL9x?OV;+Otr|`MlkJ$;9X^Kq6Km` z-m3^cv8J7H5sz+jBL_E#vpBnf;kItT7>$&BGyK*Wue-%DygJwa*nZ-ihDmS#=GiTl zROm&xW*WH&_vf3n>VTHSq0Bf(pYCTKLt_5b`@Qr3l==#c}$@Zn&1; zDFQyfV5Ps<2`eywS$~iw7>J=BbXH`A%9?dCkFKxV=-yS>2Eeq9MrmK?o=cE#)~pUy zZa_>vb`r(qnA#CUjfa+=S)nCyYm4h=-6EkBP{3WQO>JYc-C9XUZk{cqjF9OrR&K6t zu_1rytFCUNjOjWQorPBve;0?hS!!8e>Dr~cJC_a-mJ|@AL%OB(w{!?dH@I|n2<8$Z zp`;=pNJvYUn7q9Iz??ZVbLO6VzxVk(p_XJd4}dpka9SHpkDL;P4!bS)tUjq?{I+R~ zL&A(kTmPQy8@{FcaYKz9@47HYhGnF#cokQFtG(b7>ILRSB3)V;EOh2sE{_sD zXj@HyWXnX?p^Z6(YT|$Qz?47QWkbTn+?Sj$b|*?wg+l5se>86P4*sR^Q=_MI-!Nrx z?~vPgP#h3fd$?Y65YuMh6q+=xm&E7~KIyrr8QyDiJUY4e(=(YEOLxhya@IzEHuSj= zDe=?eLE4*|<-BK6tCY`~+NoJH>%%>a6jr=HPZ(^Bf9m?75zeLB!*Mao{wtb60cfl z)iM=%t>zie=blzIHs@~NSS=LA=ggm(B%1`(PJ*|}{`fu)PV5C*-l!|}N&Lc&q;#jr zdC&gjNBs_u!s}uD(ETxxw43u8Pz-hWHcbp8*A)6~5K7GHeO;#0P1NF4`Pr73{VS1W zhqsN8^z1%Tg^|n~@vDJaq>P_UX1x^eWU1tjiw)A??J2^s$D&rmtcP*2k=IrL^TpO| zgIV@3?mIV|rVW1sVIq5-LZ4c#%OgSz%=u@VoJJR4DAIY)Rr-FJks%A+og}zcgZ};g z(Xi0weXyRZpL;y}(%I{4vsZ8HMz`YH*xRClrS-1(2kWf+3P+YTej;AWhD@!iU8&m7 zu7~@61-dtMx(_3o!kdg6%MRFbANKm}jr6`!ycD^*a$m<{&f-XC%cfVJt|1VJosrjR zUnxE3r9c*Jd~ZK5ah8=gT?|sWjpJ+^0Ip73gnigh*a>-xxC%A zC=42Gp6B!)d;4kL#-lrrGq4ZJG@shf)9tL5c)`f*FFnRs={XcV=aMb48(JD*I#ct- z>t4D}mCYa>bos6zdoAq~tYT=Ti<6=Nqg?@XjyEe_o0Q9IZXvlew>5L?b8dL(HEC^` zSK~jw&oKF#r6$agKiz9@p{@ym+BbT#+WR=0=?KwacF;Ld6lWh9l}Lo zP*gD6e9LBm+rv9rb;~AC)8_MhuWZYuZE5^rPpyY6uOf4`hk+%t@{uHipPh?@wM$>m z#ofG8spsRoFF$D8v}OL>>u!1Z#?`H`>`IoWzK=%AkSB=b`}j_|l@qJvi%0YV+bKn& zsjRPji+Yb;>@4PQUkc~jND=y1 zeIBI&^B*ss{JDORGWV6oX_HLf>hgAquT;t|jqDof-9ZD8B8!#?6+H_Ia*gHi{?HFO z?K+KZj-uMYyfL5$1ZY2tA8N*vmEgMe^QiwS1AL*;=!Z1D*feu;?(453@8tKWle2?& zG%*pRxH?Vcl3mdd{_mv$!nxvQX~xbIUg>1<+b_QV-3^+0?D*5=f#^pOL;^DQYv0hj zJ|^DX#1p}L>ArF*hbPB@AI+TJ*<2RIbl2arH@)|cbz6eB=qT>N7>33oflDs_v7B62 z;Z(0~do3hhF|aF!b=j(V={=9!Z^`9DLph8|k|($^gG5RGI40Ty4{kI_#E_iEa0EMp zwgRxT^kJm&knb@p3hx#eUDR*K%%~zW_2y|n!sHWa>XGD|+B4JX8QyK|(Tzi^FRSCI zKS6j8Y`%%!eKs61njyM(dWU0WBtJE+HFz9M^Pc&gMou#_;uLiKc(g67xK#T|!QgBO z;%VV+)zJHo9U9i(-AjD;_8`9Kjr07^-aCe=KXLlz8)ouqwT7ahhlXd|wPL>)j3Pay z5*D?}Du>~@Zi6xiIe= zO4T-c>uYw)s0AStOnMst&{6tg!711yaGPJ9bP0g>A8~QIQ;3sGZA+nKOoQ--Y*0DL zAg?Lo;A+PSd`4)z7=Arw+Mu5=Xi>lXpY(GUeRa+)F6xp%8Xp5YS}_4 z7^%(oFtV^O(pBO$3|e=#UcWM^*!#3ZrjiO6ayz+$);{C8{|J(-FPHinIniH||m zsi-%;<3cR@3;;(+c4ack9MG$!Xc!K*1-{dcBZGa z(H_k|?g!qnvRB52r-K#6pTiokT17(3QdC+Hd9)Oy;6;;p3;}3BcQ;5O97t!o3PO4S zp7wjisXeQ$UuE;u5j-EG1huf_)j^(hM93Ecj@reg+$~bSX+=o(G`sO|K9uvZ(LS&! z{Zi6)FY=vnuWFdFjay%Nj2DQ8Apz*8HTs|iCJ3H z^&tW|98P|k6F?DpNrjX#NLJ&uPm)-0Z%eo)-{L-w8a^T%~R zSwBO~!tjkA$tj7srL-|alZp72-Kf{OZ`B!uJl%~HH?UR%AvSfhPh>|PiCQ1Zy}Olcb6=Vml&{(r+3tL4%;KFGA;WT2+JiLHCE=3Y(FLBH^m;6w zY!$zMqC1fG`FrL97@ZN>7F!-aB+qS=XdVMk9#P#e{j!$vd3QN7cU}zoVNqa(21@Z= ztMrq;m3@GfR=Lq!dr?9_GQ+Ulby^gKJkOj}fJt<}V+molt{IcoS85NOoot?pIpLU4 znPZ=@XqI?-rJi@$Wx)=ewm>IKLg(u27(*CW;aGKAaa4xB&1=1s;0*hVdeT<;mi-6J@s@9xZ%$ z&dw7TXC98Th{suGf~_*xm~=3hts;hp1@X%|^cuQZ0bi`Eo=R_(V3c|Lh`5;|kdR&C4&?$UChdtm$VizO}N^w=R^( z+c~A7&}jJ_%{5GnzRR_@h`FJ3UR|}0;OU3Jzvg@03w!rBi~~$V1cnqmw>vC_GZ zGOP#eAZ7|$WJ$#6x-3GU1Ekz35>*Z>1?dw$A1f@LINrrC-Gn@m1l+OE%Vi8zuAD}2cXNG^`x}Z9QJ_2Bybt2vXXGS$mIh@+H>xkKj*JkT#QaO z2^XKv`R#1om{q487vihWlAd7JU0F{!I4SqlBc{uko+Hs_4bvKPm09d0j;IQ^ z!J|a#I_xm%nnu!A}(G_`Q)?qGS(~m&0W|o+^Tx4 zfJIXbpxqV?X3bak+mlwQ=*js$?J^!07VUimsuQDiyo{KlzwGl-%-k!6j_4h(>XIdC zUwzQ)1zVI4(R6Ixs;dkb-op1S)^kGZwb`tP7Mog%6f7reO&Mojd8*SCrxezuv>9dV z)ZVPlUt0=zU#XkRK5|U`(2xuAMz?HAt$Qkjev>bAwdr#&ed*fL;EEkyW6N@PFfy4H z`Isj1(PDM)@OaIHsHFfPiFobk4>72T)1>I_e}=e4)>KIJnGyL~5y@TSGC=}y5DHUa zFrYawmLc-=?m|XM%4m`dJ67>1M@7bOD zBBbsveQ8Vmr?&OzC+i!0#kW?h7!gDvNf zukki2=Vmi0?X^9pX}Xngy5UXIXDXJ~+~rM=>xgiU3c8;I-Jiy^EdfpZII5+92BNsJ z*C6wQ7HMR;#HXjEVnII(BZFt6-X|j6mKZavOH6!@=J-PD0XK=5(Zs5_oGl5X+zMdz z7@b4%z`PRa+dGS%?{9B3Pgr?-2zIiyWT(^)DmJvxi`G)=&e!h`3L4nn7Od^ycjupe zHBmjN$n(LP5< ztLQ2E0CPZjM}#E_(EST#&gMun92?P|Z^`5j;}A|iZA4jYU;WK(1yR+Bddrb{U&}#D zw+?;&r2FSvl7{hm4;PV-{i++!V~z|I9!TJ8INfW_I!RrhXzkd)19Bfr->1{Hhc+?} zg|U!5ZDT?AZ{h1Y=UP=z4kVGsl){AJl=!*(6bd&HoA1RbY4J37kN6KLMH(ESRwZxi z1D}2^({W+=57}zCMIaltp34dpWk4#SDlh5x==m{gQMbZptS%S!=!0}j71tT}0_@7x zvT1z39v0<4^7auI`lZu3c6fB9TFl_MzpQ$8CmE6Svwi!KL=~C&);i=1=Xv35%D|iqHk<&h>#F(<|1pCl19h`xizS+yv5#g=MZfhzUQP&?vK+w zR((-`{;eO`V8fxbYP~=zq1n&`VrjDJ5Fm(#M0H|1ZAcelc`C(eGFttxHiiI=!wyRj zBbI+w+~8XxT;tXom1a2O<)=L-aas7Wk;uZ*Isq8!B8DW~(@TI%NYW$Fw$z&0&gNc+ zKg%4=L86=-UhH?wj!sxcQz*h>(Vc_9;R@>X>S09XQO1{B|aEUaw1$&rc|!1hy?SW;<24beb= zmUJc$R%;duoNsesIf~Y^J?yRu`|Dt)K6Kkrt0hS~^7{jW$3A+7b^5}KtL74DWEBp) z%5m>mzLTKJhu-UBe2ETb}*Lv_S2n(UFUluC>rVakM0ZJ z`=UvKD^6DrxBqbwe)OZnk|73X8(kz+KB{gaKsR*Xw#@S9bpaR|mnHIYcn|}ZdiA`Q zqq9eCuvR9|QDwZnb73d&vA4{0z)ykt(l_ZWa#u`~?dY@c^9#R|0F!}tZ)90JdRJ|f{*_<)aQR<#vj#ae{qejS*>hHijK9kvZqssDdAx7_blm4@NaL=my>gq+HL--XNfwC_o|G~V@t-Hr5stTv>FsgGp`NfG!G4aHhpKbKkH7X{H@KX z{uSl16RtZOcwqYJ$JxCWIaht@ayk)18~nfW~^=113#;;4!%)x_f9U@N_s_Mf3y#pUdm>UD*Jje!HH7yV*!k~#8LQY>OA2~! zk|#^A5j-8|*O zK-ckn3HP}Yh4>UQG`dRM>8I`H1X?gv|D-pX>?5U)U!F>FsLz*Y0o!x0iZA=h`@;zC%0Lkgj#<6bnoT|X{pHKGKuDLdapNUw!Abr8|aPjf)7eo zprPGNY_HXS9+rR2)&Kg!;?EB=(0EgI(sKm%@XFbb_pIajo=VR?=`Eq=J+7qk)3L=v zVz<@al=ADTAe=_}jo4cQT3mEY1l$=St1F%Hq86cV9GrRsIjLytPZ_aJdPjW*_8VsG zJR4_^+GuF0y^bl_6AoL_BZ?2g%qZFg>%E16*I#@0vz~>R6M;Q5f?S;)xBSBhp!toP z-BzTi)rWC~-KNDw|h7LlIgnpcR?!*6Z;N8-)6{wrh&V)n0pX^61KeTB zTZTIx!Jgea*g}-pX+M*jGqoKbZuoqCkbG3Cc%S9fBfhJ4cSUb2SD1i(sX>E#HZHN zkT-59GJV};<qkoXOErb?w0UvF{SHwa4B}&UxQ2T5}TBE*`yndSLr!Hpwk@jugOR~9EWpscwNNAl1V@AX9NwyQ* zO!cQDP~>g#cwXIOB^GJ~H}!QiD>}nLgZ>Z?5Lf~dVcEBaUGC?roxA#``U5{I1Ed3g zZAxVR91kLj%5xN#67ptCw!=0bFYlG5P1L;kq3sbhVzwf8;Gs-Mn&s(b%gw2o{FHC2 zuIQ^7{enxiQE<;}(ZdZ6##<T>2s=LCSP9LwmbjH*t zEpQiTRNIReh^t?tOi9*B7YboBn}xv0$odIK_Bafm7JbfTNx z_)6l{s9vaVu8niG$F*W5OhxvdNkf`+Bf7tE&c~@+?U0lkGp%5ePx=9WJ;)hrQ%^9q zqshTb?cCWF#Kx;OwrDmwH~Cg^YXbmexZda$Rec<>P{Qsu0FM~}8cVBgXax)CQY^KN z)3?yyO0#}X&ZKF+piz_HXRz!YP<%IybeftV9<7!tPj$clbWL=)KOQe&E%=GrzIULroy_fo`lI^J>jSsX*zhW&>_oLFjnUsWOpIXYj z{*QGd;Scqm4MQDYG+5W=c=6;EuO#gBydfSl{gzIDhdUV!a#Y} zzR?Cc5NLRt?%IrJzK1?R`2CDS@U4#%=EMSl(38jR&gN>=?&Mr7sKZO5)^luoiT5}A zXp2ju9Aa)c;#KR#N5#1{*W3N`n-X|({b`j@GrpI<{BoLKHuNOTs+%FatXtj7wk52+ z=z!uubjrh$BrQ+P=p`8!WU<{%R1*)F&^d`q_Q9ZV4D#@u!9l@l6?|wC8G2XfE*&O; z=ygM@cX?5t*?dxD9#-|Yp8b4b!ZqiH{qEl7p5bL$I7);|eGicJ`&CcSuUb+_qB z|Koe4vOR2CY zS3k2C7JPzcS@_YYHQPmDjzpK9*i2_Rg);UjrW;nJTwBE1^ow8n6O~%9-0y|yGKm$| zPlX0)i3d3&L+{h6rbnvhniSJ7$v zyda#{g^D&Ie`YR>L`Nr!qICJfwUQG?w0ZunE4KDV*8g?ekG92ULTaOW%Q6VMDO_l3 zN5@KV#1q&GeY4{to2BM)I+ipDzBe`)!8u2}uBGGPBVG-joIY$(K7vu1PnI{P0o3 zwaDnNZQlqS>6<6-&0Ximj9c^k#puPOLf^(BJ^;S#q%7|I=B5JvHtKui+I+Y>dW@Ky zqR1E;I}1EG%0NEtnEE2fV+u1Y)q@~RD*OQskRsyyHbGb9ZonV!>eE$t27wd?gFP05 z+TkSVGocu28m0gT&o&y709g4XEmp@Rsd24r4>RL;AD=#6!oLS^&0P1}TJ%H}dn~pz zj~E_a2)0}=9%~)D|7Z|@&ME$6Z0e+}1Adol@YOXKVO2bIm5ug#^@?*E z$}&xT&`$kjn$2&Q=4U$xNjh6pC0ooll*jvFU)`e6M1RKCW^q4DLlMaB53kq7DH0J> z)JKf}d7tKJF`m3-`eF1ZB7nRS+U(>sC*Sd^$iE#T+!D9Xy}8G5BF zafS2Ez(+GSmfV~66Gfb;d6M^IC>&#%`5_iDAPcDCy_o)p4}Qu`Y-U10-(5BmaDbIK z$CD@QbX**7vf@uq1RoGNKAZ~Mc^6()6`q#Uf#U0P>M$*nD24b28kbh2ld>C4%ZSgb znherSWAF-`FWhh`uU+-uHlIRzc+ss<8VatL{QN{}l#*U2Mg14cv_<~wrm8o2ns={lg(%V~A{X@moEbTASe^_{|ro_16doI#|CXh^2NhKH4?UkfMs^0^caDDw#aUi<}@7ukhD=EfTekv2{Z zqq_pP7tFc-Yy}MG2)yf>v`M)o(*2j;`|d^zb~;D%_ZrMO_KC4hEB}}CYy)$KS^;Yq5m+gm(Ac9!^^ELU^Lzlp7!)jqsH3~C8XC(#%fZ_n~ zDedpX3XWqS&*j?g6_E@s6UT@$+b^%&3r3^zzH=sNwM}plz6Ef`iD=bT&jhPjX5Yf_ znQO{?pRX`|(Zv}mV-(1(lG|QESrSSc0qW5{eWAxWVKQWrL|*JHi>cPNb9- ztejM`F+535+=~YRkZCThP_*F1?yr5PQUs=>(p25!9c;kwU(Xoj0l9wGxBGjjm`>n&F(D+s?7L7S=cAp$ef+1W2O zPO%==2KT?4`{g=`@wO;>@&-~wN823Vy@L!8zRst97#!5!9d!TvZXX@lL`bl{oN-j_ zvnZi8oo4-fI8ZA4O>mFa8Qv`xZ9lz9r=9}(9_;Y@qYG`mXc(u`VR?osDF^3<|HYh9 z`-Jmu#lKSr8B$9l+B^~NI)Rd`JG!!d?GpSf8EG*ecx=t!zs4&Cbn($Op)I9VI9D;P1jQsoMl}59{zKx+~ zPb|zxZ)S&|#AvA&|A`u#glPUJS~8O+u-=TDz4I`L!0HJb08lyz$OKNo0=_hRad;bM z=i?{Ookmq34MTHPrMnfB?hbqW%0;B|NF862iz>_OdmI_bmz8}xe6MmPorZVL7 zXghyNOJumx8&EK3Vq!o1k;d>jj^R2#Qz_I+q?=c@eqfI#R&L!w+)GC-KjkPu=vnvO z>RE-pPd2%;E4^0)Y8%&`j;Z4xTm)bv?i>XPXeUuEVvF7_IMVj8YD851N5@9R zfSerhWirJvN!1(6jwXfjySHBR9~Ub1JroN@2Q%MrVw4%&aY}Q$Af`b4b4o%i)#{o( zQ|i>mvlvh~Zu!8dE+ z`WiHs{m4s4jwUQMD~ME-pKUFgiXRILb%3GNshd`*yd6k_0qp0IW(zEDJ`kZGEJ+4| zGGmT?an*Jo147|JO%5FAEN@O;XsRhYh$J`rirkawlU6fc*f*ostmf@i0xX8cw6r3+ zh!9*fSsk9;28}qr29R<)(#isFu42IE&B5J|baNnaA)xpPMo(C&cr#unDvN+DY07@Q zro>Qn{ds-#TU)IJ+yC;_c)!75KcEf`3!^C$qnG5zNS_8_zM7D^fNo6Jd zhaTKtgU8X2w?E+60{|752AToyz5%MVU;3W>mOCnTx?@1Iczg8VF3-+gkHkLAY1YWZ zI>-+n$Ob3mzUpo7RVZFoxDA)f?_9VpT*x=;YghU5#5`1kSAkJfRHoG`siUnV?Zpk_ z{CB1wacxIwNI<0nINZ>zlBuk2*dli zAe^|t_YbCl2B1~}{H&|jcJPmYu}n0Cf&i6gL+-I{)R%$ionU}RYiny;0)zo__Lb?k z?1z893apaC(GX8OStz!Mj$MC`?I;sJCHDw6r6f|d_$En)Or!{-Z<4in@#gvUu0U^c z!xHK%O9%1YDzpyM?y|x3akjpolfG?pfHqX3Q#;RXjwyZpN|4`IjobRyqI*Rf- zUWu{n)k9|tED6tvP4`c`&N7qc(n$PzXrWnyF?5uV=J10=P1#cYhWrKDp>}*aY#LY&LGFZ!kRCRTa$sAJ8sePv!N_3g# zqbz6E&+In+2VdSip?b6b=U3q7H;(bI4>tyrU*#6qK@K(RdWmVgM2Tes?OKT8VLL0BM~O%nDT+xsDw`hMjkgQlnhkG!3MJ zC1}aay+3KgWO|V{AiJoKgBFmS3JZ$&CWKfZ6B2ETVnU&_fau%i2!)>qy7p?2wZRk? zj|$RwAg;H4tJwQF6JJSi$9?xw95xdRg7xkWm*RU0w+N>w&l|v-w_&FuRd#QuGDAmj zw<^cdbGN#{tzoyOB-CJ6VYez4q4@PG+gRnU7R_YCmcP>kM4^d+BYI!k%Id$!H3rAK ze?;_{ka`)hmT{LEQhCn5-{SyELRwP;z*uhXYHuNaf)2Uo6h4u3UeH0L$Dg3{wwt%D zQxhR++o%IVor7rw_j+&|3i52nBB5NW<-WkL?AOTt=TgTfN8Q0%4&di|rqcrh>V|!7 z%;qJqCv*|JV+{Dmebp-k^j@;<(O}r{NmKBer@ad>OQ1>RwPk{?!VAeub{fk+Cb|$_ zoI^ZtN%Unb=wV$s40P>8p1=gHTic+}XqzQbB7^vgB=FXqNCTzji4y}N!R;E)HTc?M znbXZbRD7K8!CiFgANj{px-_ce5oF$J2Z(|GoKWR>%G$TO!T5N{mox|MUiP3z|GN0<#r-#bfBg`vD~nvDMe%0V{#ASn{bMP+a@l z`nO0R97KjgHoaRIRC8(9U~?hhk&IYMFL*Sl%pVZjOAKK>&L@RAg2a_8I5hN#z^tAa zs=9u_S`t>#6A5=)cpQ$xld2KrKoR@|lqWy2gGM|SAU;kdBA-TIvf7NUQ>Q?AXtKEB z;4;cFAZmgJmG?138MVrKO%15xinvJ{A|*mR9EiNDnvD_%1{wv*7+$6aqj#s{vjlBZ zd2iA4c2wPb(f12o$EJG$$(s`8E6@=u=*b9yqD&Ios}sos zEAhZMLL7JmjX;S5>DVPeGEy@*o7ZcI zbVeYJ%_@k8;sBt82B}X zrY~YC%BDc|ZfJ<52Z)RaNT^v-2P(>IP|oy=$tYVm(ngaWb~wO93IJ(LR{%Own)o2w zei*epk=G3e-LB?)VhIO=Zps)8ath!jXwrM)IZsY2;k@EN)*08F$oWB+jKT6>*C;ZB zi9Lq$*kaZV#a;V!s8ImvGNZb9tpT^c@55v3Tfzcu$@BmWIfc9n0)*AthG1cmdhZaS zXw%YoG|+Pg3-3A>CPUu_I;^wIpXF_kZRiWif$y{xM8#ym#wxA6Q`n=Y5ky+-HsX$-4=c zcwMzcJeeAx92#Z?@Yqg11hU1roz28#6 z6?~|9Fr={52SU;NKyESLIMDn{s#1?=kOvme)*C(WHgHYglPB)4^G)@kLvGStqRR;i#9)j}S)JaeyKpr?UhVJ~OJ>TV&-?-*1xGNfPO$LHq zP8&$QVfk+MY=@s}n?sZ({kl_AP3js@<* zwPuj$36*XF*c_m#T07u@aaqHJT$O{#u;bsG%E>7FqveeZ@WQM_J(3JbsMR!xgc~4a zH!=W69)F`XlmMK(GC~SgWP(2euDh$HUh81)e^T|HhTt5?e8oX9ymtrJo!}X7%LscL*#BRDhNv!Gb*i0C{SV1Ul$i5~5EFgy2M#GL)fM zpav44w;G_(Cax(io6IfuIT`?P5HUo{K=Br8v?N~WV1PeFjtIEj32v_n^6(GXMMK`A z161%xAsiVH4LNYKE`UmQuNxcd#vTnvq+3N0Egf(q4genafFAbVX9j>gKbLlTIZdb@ zQgQDiw7Uk3k%6q_*zu#OxU~aO$CQ=;$}1XE0|HpM2gEuBdT-{;5Cc$J1wF|yf&(D$ zW1K|WK%NA^9ctjUW0($KZhYV@R8tFh^AEnnntk*D>^Ol@Z5q%kTq!)gb6Z|+L>>f9 z_M=ahowtW=GKS+2gbRnm00!3pO=Q+X;~?sg3}xP9T`~udL56fNUZK}u63YXh3y)EPp@aE}a|i6kejSz7EWM$!Si z=olYA52m>T0(of2YoXJD)G-yjzHj-aU{J29I~4LcSF}0r-2gfYIiWPzF}ED8K3<%@ zT3H294GpluQN^zVtng4o2EXlYZu|^_84tAwAb1M$Jp1yz7x;Il5LE-}H_5QVaE+Tt zlItRXP;Q99c2WemBe+)sA)-`5|2t)fIn@J zbD>71xDpNuC5nh*ZSgKL-?SWy12X5Gz<`^0+)A*AxQx{-B&1UYMgT<0D*=gsN3_tn zbr3buTowty5KKrN5=HRL4%s5Q;`+rFCJz;oJwt@1N#zfB@*Nn`AA7iY@z4j>ps6<< z;!fm30yHiCAsz&PeHM7a8Du98t|5qF(E$;iqSD8ZCv6UwtHLIODsJK+|4L`nF(gRXws|2*&J4x!CP*iP2p~g1JC)_Cxg-IjyBg;~!0_Nj zmN;SCC^Zpr5XxT+-u7UAKnEltE`rk&>=3{00<&w7B?AN@$>3ba&g7b4=gy*7w2Ve} zm9GQ1VGcx!1nlBul7p#+K~+~kxE{{?QC7}UmD;BoZ=ZoX%vN<_SvdjK(GR=5Sw;j9 zXaLJGn6(Xfx(c|}24q14xc&LF$Lh-jsW{L8S0a#giqfaAp=q(<3%y{4hTu4r5Ys;@(~BsmP;*7!`8$>n#e-kn~**vl%X7KLTo}I z!E*joR}SnxQ&7_}HWPoaJg4zrfAHQS%prmrfEHhG+13W$xCJkpKW0%@V6JiU5>#F<1`|xnPFE#HlxqyVm@x zZWF+^CSckVq<(Fww4PAyN8I*R(lt!OE$^f8mqLbgJ)~2)LKu-GyB+{MoNPN@<!XMya?;@bTlkcMXBKy25Biht4L7zt<2a(0ME|aE?Pm|%Ql-uXHw7nq znFzmz^(-vH{^B8r8i+N2D$Xb>U2*W^aL6VSaqQ0}u}@Sdhp&l)OEe|CyjzO>dt@~b zvJ}ly=)vQRW@&QX?c{zve@*<j&XS?o zOT22hc>8N!;qVNS-{_%{4l4XHoNhWm%*WaXjr>g{T28@U*T5a4Rf~m5|N29mFv6&q z3S1_JgIa<+}E%{J6r?DcvX>7G|KdS;mF53${&BXQRy_#ROQp_JXU?3M`Gv$ z%@HA$NfQpDo_ADVkXxS-OEUqfkGj48SlmYXbfod4b#mxK+-=r$CbKcAEBjyZ^fgfo z8g?CT)*b$Sr+*g+d3DD+FRjAsWJZH*P7ghxLB_N}BzdhPk?Oq^eIWM)Q&qmq;KJ#C zj1=}NhjS`_*j8AieY}9`Bz;6XnOlmKMSpo))KB|}Vc*DG^1;bR7YWRFbp_PfSV0)a#nm#SA<*+A`Cw2e z?4b$6<}=Rs68{C*D=nxBeCMEIWduciF)CT#lb8H9I$d`D%`bF4?>wR?dMIN#L=WBj zFT??yx!7Vz-1svVqfTUgxK*G>R81MsZrM_A*^IoQOAYZ+CL1bbZ_P{E1;?hHd_LQj zWm}fXCyG{zHf%NwLHwH{Qu{T)sawCv7vz~3{T^?{e%T_kC1yIN7a+D(pT|B8!#xew zJPdj{HokJ2nsaQ6y+4yp5}fmwvi@{wWvuZ#x%66|A_?@>s@f`o>K|ClVd@%zT|4y$ z(YLHk{M+9xwyKi!6}nPyGJT_Qko+PgqE>k<{mhz|Mfl_-*a!3J95c|cy`k^^7M1;x zziDag_To;Z2&Ay?_rX{DGnv(>76Q)G?JBihLKKxM^_L#MU`*o z?IIP1cKBa!{X6MNnU4MCD7@%HAJQJuy}U)gV!-m`B(YP-gKey9S^mC=LoC9ra{s8b zdXeAeNie0iw7JT>f0Pr3{xMrc%Hf<0}C$k`1kZHZDrr5Wch+B zc(0`<(|+xx8cb$1sFj`q5e^6|2Lvk?(r*M&!;&ThUa}EkW3Pc$fP?EmwI80OjRIEF z!i*XZ3iI1d*D)-~cMxY@cIY!pKQ14Wy3g{Yruq-3HO|)*0_NCJv0whj(OGas)wXST z3WgXOq+#erx?={Ajv*ujBm@QNl#*v=0OEFNKeD*8R$d1$WP26kPI1p)g^HO0+SUpAW&-c2^CG0i_#gP6})r%L8 zMCpIK-l%cDG5W5pe#Wt_XkRMpM|@*noDEg>+cQ0yKmFnwP6J>OTrG>=r0PYv`t*|&;YT15m05stL*wO` z0p<8Ai+QSI<%6DtPQlPizhU7_SZ3FHN+QMGty+t7MSr(a$~d+$8)F0U%wAK2Ef*~5 zlzLFcyl}`ri#Ph6BTZjbTVn3Qs7`g8S$cc=Uh`0DhN1Hbu zZxl@Q8u}zAD0e(=p^%qd7#atfDrT{ zHN!w?H%%3*Z+j3L;&q@`NlVLidYfUJzyHiWc-{3GkG{&eK)G%=rXu4uGOESL2dLIx zv{XzEn$R2lb2e3>)k9mu|K8wyY3Xz!*i)Fh2k-fwo`4(w&{3HadX3dmAci*6i)EDoACBR zt_zBjVU8m=k3^?Sv*ox;WgxOAxAj4bjO_tOU*uP+Cv>?k){kQ-sK5POlS6xV9z6`U zepj-?y6T{Q`4}6pA^XR7kj^T?FV5`vkcY9Ssl1%o>h{vP(YoU6(L63P`_})0aV%Xh z^{}1XNk+Ck+1=a-+;qnN7FBj{ahQ+j9Scky#*LX3>Z9(&sxbT6^ zb*M?*Ibz|nK>%gZVf8$laOcOT(=w?o^H_zYtuU&8Uv;0aZ7r153}{Zjb{+mVQ)E7$ z6|^O5tadWrC7_euzFO%MSw^+B$6pJeJw+4!q1xFRP$1DpVd=_okol(c;mJ1~cZK!% zgssY+3)Z-8fNk>YV>!&YYK^s7&2OWpvCV@hT}#2mW9s>;S0|o&KUt?T|DE@oiA|90 zd|V5Dd55EE)HT{vlg^IpWp{S6sQy$n`O;dffa(>sLJ+N)uj7cSUG)%wOly^$;t>hm zkSE^@3CMObaRoyu+Aq$qYnCYnqITLQs-Pv5&Aw{!?rsUS+j!!_O1FUSUXy-+rJ&AI zb8O~;0vUhEM1ldFXox|-`9GPBqH#e|ZFJXJVEm^8$*AlCN-|~z{qt0^8_=}Gp z2|BFm$Y1Oj=>-O$YJQQ0UvtI#_M?Q?RQA4ZR4cd0z=Yf9nCX-=WAE;fSY?uNu4Tzj z&cTw4`!hL(Xh!LC-L>78$)70n{G3tI)!_GZDyq3Qt*JEB&bK6l9ID|3vefmsOSdE3 z6dW|<^tAa(DT8*I*%yuUnD$CT;ZEvHtFxK$cg4OhJjA2@Uq2_NwS=6|lDAbB*2aK? z#RE%JqxWV~g!}X5f}8>y_e}$ZxkZfGEo@%QP3B5?icp^j>Ur&36awxW7?G0GZ=6~Z ztz~4Bi7qwXJOXr!`_^CVnt)&uhInGj#wh!Ogrpr3pAcs@?mQj&Q`ZzlH)p;SfBjFm zP~{kVI$Si1S$ak@{eWFHe?%^Z(lC5&URaj@D@}r`{u?lHZm^I9se!el#`@Zw*pQpV zy{Al;{RJ{t+R``xK_aoa;Xpqz=?nd3^vL{0g-~lud?Mkjxk_Xa63f+I|UzeuS^ zSNLbwMI0p3d*6eXOxtNi1MJ?dy`UcXetKKTCVL zNg3JF2w8i6{vwrgyI2QK)uc$%eM6cCOyOaWLlBW$w<=3V$u!9bo@`^>IF|`ARjURB zMoc<`dL*c%NBZiM>%e5ur|r_#ef1^?j2qn=nRJ{6@vX0b?idNp$6wt4_0#d=<6jy0 zLcw!3m7bzxqH2~U7CQGwH3|+TfL}!cz!%gf@fxn2Iy1<&zn;h74R9S-E0+7Q1o(l@ z`dmavOM%!sEDx`~GVY**JAFN z<4~=qzg1F)R)-0xyi!6eTVQ`8mOEHT_ksSg4*cY)Ti+^X=b_Z6zwKHP`>(gP+CrU4 z6+Qj+*|l-Rki(rsrBdz>8M%_bg!s)aJ%0GH6Q;*I_)DZbBq~|Fu`OlnCnY9$8vQ7T z@IxFqnWGMIpsy*2RRPG4(&W_Q1bFH^Ng_)d-q1-6=8}M$D!)PkAHaXL^xQI3XKrBB zsAseJjwDKr-p|>Z~BW)pz(mNSCF|aS)M!8LA>55^=@&51x5^;K z=YOXu(LB-AO80i#$(tL9C3gsFICQN43`X!&9gb3Y%^fS3hWQna2*zRd<|N+-uyZC> zWRK_bjaQ`eG5v-a7Ji4d2@7Nz7lEaT0|e{#8tIC-C&I2r zG7d^>Yw*SX=M7EV5|yXIW2HRd5-PHAH275TIZIKCo;VV#Qs^&HvRV?kR-8uD#-mvD zXOu!j0jrMaWkVCNa47^A3ulP!tA}1)`IdYcAhd?-AqoS3yuuKTOObD26=9TR_h1S#T zmQFk`c^@TxpTIierE*t38P1@NPcGE{Q zN`O*^ATf^mp}PH;P9!ZH1PlR^{scntAYd-I<_|T+4jN7k^c;;4GUVu@`#jvsp z96AETP*Ge8Xl4bh%7`J6TdXR4vR=Qv1_26gE-RRModhFa+#&Z`Q-9l8)_`x~XsW*3 zZKTp%$8S^EPz5$e^opY2)}d2AR25;^1_opdQ4uO6U&|XmYME#y!dTl>cAHvR$V4O{ zvLk3}g?r;FCK%x)X1p3R6KL=aC?|wV%?&|E(#rS>Ba8q9TZ74%lo4qJAan+E!8Y^f zk>q*}I5rEYLX8rs0uxK1)kpxujaYtElrp~k&m;7JIRKcCfuO+j3V`|bc4FS)B-ZjF zgW1pm_C&>wfeoF_e%dBPmBd0)Q%Sshe_dna#B&nNv?!1r6}@6N?KuIuU6R?f0EsGE zUFooQLa5U)4y0p~@bl9_y8)Q@?Mj4esZo;+>b`o6k2?PP+l4y9vL%7l7tq__w5q(t!X>TKd+_#r0cu+-VY}gK3 zIXjIi7fgvm(xojRWz!f}&;iIX<4r(QAeysko&vA$kw-x4z8#BkgoZe!-{L0I<6?)M z`KjkpA|h0BwK~p`EvDuz$Cn8zfapl_)WJJs50%M|M znRh@l3qZ{(GEGOo-`ch-izxp<`lp*feO-b|Od?0H2gfi#eNan0sY(7zuknr}$C0k^ zf88ut`uaRHR1a>+gB~$r;z<@sWJSj&tw$gFb{4crzdN+HoWb1bR8D_2yMU(bIRQ$9 zfZqNc_^*_7o2w;~q*>OYtHVZftj=!yt=+`r#(3ez*nQ2(NjpWO*gL$ymLw>Y8qFDk zk=j9bje~?X>T~A;C}$v{3bAx} z(AtN%HeL{|AR|wRJ@*aPz!gk13uqD5@Qa83muo;72YqKpgPOsK#YIzMMMue`6|k=o zs}sVKwvFj%8^R}wnkhyNV?mAt8@1e&s>ZUhJ#gii`q(diVmKg_3FG-8y&Dd_O2D$? zFc0Q2a=z*S4=g(z4Z#7V58q{S*NfwTEV(j2zCdI1F?#S_8g#o>69{q2>Sh37xdj|E z$zS@5u`^*viy+?SVC9gvIV(;qD;Tn&SjHEms{TbOVDV`Hz2KKum-7$aQQxyLC0ETT zf5AEprk=AJXtHrh{9S<3U0DXl3Hsj<$32Rr+=>>7;UZFqW$27`A_7C>Gb4cdRc#$&^g4>5cy9LaDr|umk$z^p_vHKc z6=tvIC|?AWJas*L{W4)`O+6S9b)Fh(5TNpt$ zg9CH~;$g(g*iVyB5=lTr?nqIEXif!8NN!YRAb@hkU{+NhD}kXyrM-CA9jGAc)#FY$WROsn0!~WZhe%Utlocq075ofFzPfOK(ymldKpBfzjYfWd1Ql}@ORdpwULDAIA??Sib;Xab8h6taAC zmxdzJF3;#U?3y~GR*&I8u|d^Y5*#oBZ)}V2CcO#B^OcB_X~bwhHVy$m)NX9qI|;y7 zb3!`qVAe*=UfAwu<~()Bn6A16=iqGeW4n>JcG;R0w0IG(`qPoOr!=S8KRQ{b|Js4D zxUgJwp|n2i2u(@@2skwlZCt44b)!rJhaM7BQX9m*j#JDX(=dv?8!|=_A59@~c=rZ` z)rB^001gh^&V$^d>iyzp(3}#nX%bk?kTg>F1^5a8MNLA>ND?>$NvVp~c8#;TBBn@) z7Q@}oc})X-vHk9*jFG6QwR^h)Kb*e;bqyIuL>3Vgi9eK(aXCWD+n1g5_eufN)r~8EvYQ4=N@AIIah|bIX6#M2lD5?ykYC zOb~q!FVyJ}yETS=XXMB{T1gND9lR8WqwgSMR3qLp?~EuJqG33!ZuIcQRui^QCbBg9 z-N&`Bq2hW?*dvr{eI^b~*W^wylHTh!c( zk}Or|qBckkFvCCsP(ayOIGkj17c#G4ZmrE=L9}lUhGa$UB~dh+8&Js+9WJPq2XIkP z0I>UF?wq<}H-=ojfmYMW#TmVSHYKClyuY>%SFVVj@-SbWsYS2C3Ld8B%)EYmB|G*i zS>yLW4ctcQbY!>3^Dl>TG9AOSRBhRv>BI*=IV6)<9SPcx%Y}n35-deOJ7G2`4HYSV zyn#)Gz4_04-1XkSQwE3GjfP4)5^fM>?wC?Cl=24PgP@*202o-Gajsx7sPMh)vmMv- zSVS!64SMhGLR%n!dmG?$<0t0eABqaMXtQ9sBsRMG9p~#$$3&vI0}vgFjR?W`@1kD} zfzn<=c?AwLeixe$ zG)F|STK~JlgdHscig^KdUqICyFMA%LeH{sCIY4BYEch54$Hn!Sjr7)!!~#*OO+wKj zhG7Wle-K@XN5u@``?o37<=F(CRJMD;e^wfJN7GnMo1>pp6u-?9vwhbJZQ<0-lzX;k zan$n3s7Ow=U+Z>~OaLg35ls$ASE`0v)(T2VR>rUp(G;~xG-3M}sw4vXJp%Sk$RRe@ z2S)(V>q6X@)jzp$QB{l zM+%}Y0YbA!q=C@%Lz1a<$^tw_5gGQAFV`tS@o}zg#%T=TO)nfks!g_oC$`>?`@pCa z%!4PUOgqIY9(kTdfvrg-pn12#Ai+}PJ3LbDyg*t2>g9jhmljIPg(na8cdX8QSQKEa zbcp+ytp0O>ZdB#Wg1{Z6SZACDhJPUHn2%DO+@}kWK6)GzB#1*p6bEAr5GMxKjAzo2QeyUxt68jy`_`s9pr^Go8j8Q+eh{z@AR~&D%mt&PK)=JM zMJ^JJj%N`#Y@DV^h>!+@>66kZsckl9v{@6PsWB`fhk#Vj^DO^CiVQ?Qn*0)lFoqp< z`r=j1g=%A1Acv@7$}DPXte3f@geC{GYqVWp+xazpz4)vs+mzDThDBh%w|tPzC@^kInt&LzhLULrzNqj$49zW??jq7xzsZ z=AX_xGfz?@M(NY)XP37?&c&2J4_=z;D5$<3qNMl42GnVbbnbX)Tx_voX@?ZB(O;%- z-bHgpx*=YC-xmD%>$*XGFNt`>gpeddkNCSQXiB_qs`L(zG15B%v)%NO%K2gulbRf7 z3P_P)NF}Ey8Up=u8+Gd}Q}lGia60O!w$oQ~M(mPvj?mCZWtW9`;-b}e05to^exp$W zDq8IiS6=IWJo_S;oO}=~pc{f^jYQKbzrq(=ucX{<;;|@`!c>2mrLZ2TzAt2!g!;agbVi zJ36N-4dNmEOd0|ccyzdKzqM={6iA7K@Es#bRjnx~uB%>{Eqrhb=mmnw(o!Hy%@mey z;IS3S=vWL8wiPf#^JnKay$AM z*lPPE8fhWph0)kaE zp~MlX>N*le=r8Bc7u6*`S$Y7FhP-sct(l-TlhkpI`KuntvWJqC@+DbVp7zYSYd$1Pr-Q61!J5e zLodCqqNt?ZK)^!;6v7LK8COq^W~?kde17|l{X;9`ik zydwuR8oNT1k>LmUe_fy;xBkD=%}36eb7-9wT}p2tb3QTpU=H)cYfn#HMDg9Kk3roBs-CBewjTRpVZ{L zZF(3*!UkAvj$iOadQcjpC81k;uT6#p-BALSuO)-^DvctJi#X=oGFApJv|hh}vjKWW z0?1Sz17hkU?$Me$!OEUc-;QODIGo=dWe|b@;7aS=hjd~n)dX<=R?6Hnaxv8VXC2|b zbrfWep-~rbF!T^F_A?K|`2cSKva@~{(Fhe)tYwnRjDuF2;lrU#?{X5li4GrAH7- zw|IrzwmuFLbq)1@s2JSx3z@$pKFTv>cK`x1WXB09)}(rSEqdSn~mkjR^9eNEC5UHb}H;y}eShc3D_sYlUr+cYqa|N=$uKA^i#kV=8zJ zzClgjKC%pq&KWDS|PDH2`Q=wvQkEZ1#z zUJ%W*(??UVcey)2qpJ~lJg}FCE@h|S97OYs0PI)5@DV6HdiY~5ayWg?!WzTplo0_0 z?ThYNF!jG+c5vHZWuHpm`c_gKy?JayClhARmPZ5Kd!d~~_w6vHPIu8*RJ*C%hFk?S z89E*Y$gM(dXtv?$B8arDoxSmz3NE>-sMPBtDEciMsFqd_nYm^(-$=sAy~{PT540Cs zN`&Daon!+(Wdr&h9+|pe1ueBK*R`IG{OfYCmxSxSDA!Hl)vL*OP1aZIUH7?E`2<$<2@Syo2T0_6do4cU(XH@VbKUaLQ@6;J(wnh zSo-&>kzTiB>;`h+`Q&>Dg51%Gb!K2VD@ufd@4^L5$<$9Xf%d;g1O_0;BPtlRU%juJ zB3|1H+i(fwVtou+XER>&KV4D%!humK0`j5{pGWcP7V9$8>Ub^a9Y-;0Xgm<**IBve zaDz!j8){xMND`4gy2!m*N`PO7%{&Sw5(c7N%F{$6>c8Xb$#~D_K!Gr~?sIAj=L^#LU=2!i@ZM!^}^L zz<57PRe|?6{mVx*IOko5m}3VWf8LnO?e=^70NR~88Y^?UO4 zd2e3!b|oyid~E8o{z=5}JOg6PbT8m-dPSdc2NU_g44N6wM`VFCpVL-gL$WdKRd zNu?~lcm$r$j^8;xc#wt!2|(e2i0GVZ4Abob;grZ;B9W380Z0PC|MbxjLWr~`Zr=a` zd4wjfLNYRO5k(_9wa`BR{ZXU-X;S?H~i)UH_7D^?eskz*;vN`tb zA5$jQ&S}9dAF*VoEUvn6X^gne<^GpJXSRz}oZ)zOI(%MEge!F&tM22C1}kP&H$E*b z{e@$3MCO|z=>37s50WWY9N#X)VBHz)f~zTAvPU7AKmg_YTr7(MLf{aQ^8&$Gko^NS zL5IQ&+`ucu3nH?kC{+5WU4Xq`5Dc|1$WZ|7qV@Z;^6 zy2mahL+Z+_LD4BN4m0dMOlZb1%w$Xhfd9a2!Um*QsDQcPsTTmiO9~1JG;g#pe<&4a zCteZKM_r2qvV9}1MgB0fKuG{D7EY*PK+xqRZ$T+H8pG0w*#Cy0Mrj{#AUki%5({{0 z9KaQTaA{`*ZFpHGTkTKaqhzfmK=zyxeL~zASRAcPTX#_xmUY`_`!Oo0LA}jdQ{rKt+jEQaGMes~+rj9~;w8E+;TieTzW{ zLKki~9vYlXh`d5)($=iaZvg75J~{~tjcjyvH=eW>Pc4x|p@L<$z9oylHbgaCUklIR zA3~S7-W&0d>n!V9Y<`!WobG*Sq%cIezzn9gy>28@l&N6JLWl_A6?+l8EZ)G{J{A~; z`4q{%fB`o8D7)zasR5LqfN(9O(jexC?!Ajw!z_OXpJO*?_S`g;#MsINTfA)9%-0jP z&KBmH?mcDw<6g%}kc311b74o`1m+`^n>z;GE=*lpu9l+4A50@y7_z%fC7wIh@L97` zqaCY&%2gPO)9>Sw(?uBrB$pJHumyxFGWcdtj~-32!Kgff7k$3h9r)!r&4Sei4_fKq zc^BRaM@w%=d|Rnx+re=kR)BC^x;Ps^F1~96z1~RgDu`fgMUO5ZS?Td~8&YhIv?_-+ zMw1Vho$PtWPkG2E*@-_y)L6?%Eru$5SVan&$i~_ia1(W&iwR_+(=@AC9MlzKB+OqR zy11+hxPhJ*&sWh?{=`qT3O)z=H$zUxN@@gHGtA4ADFXckqL38j@G!v@k!>qBSpO1y zm1Ypl*}DAv9zc_8VuBEDpQYh%G%3;Wlpm%nm8sqQ6*Vkh@B3IT_T?+UlZfflgQ0H6 zZ!9Q4=OxB~^wNo*mJ>f$b`5kbXqHu<7*`$N_5`UJ(_wVozo-Zu(1^`i@-7IE*ob&7 zyuPw&x#D==w!k0vM@;NDNwfX7>_Z1J?}{jIhNETf>Xnoe-;<)}QpYQAh1G}(CRdWQ z02+!(2vFANt8`5qsWT}YquLLqwPv&lmb2mRGx(vYK(b8}4W`$UE76!z)sGqC15ohd zBY+z2KFN5Ki*CzJ!iMI zN%5!eiO)4fYmsVlwR?{oeL-nJ2BpkjN0?SH=^x-efJyNbL$R_apE*#|2Be?CQzqeI z3U3G;eX3RDoQOWk82}(!Gw3o(`$P`>2T4kT1gUgfbk?%bdR&ezG8eMIzH^?qpIHb?3`@o3OPvIT|b;i_?AxuyM<{SLPCs;zvne|WK<6#74NHFd|8^(kW zjR>e48azt7H@KH;p7eih^wtvDIph7CUc~~3a@Gk&?V(WH0a?2z>%6>{4}WwO6GCqV z1?dERN1vFJ6{WI^UlYWi0>k%0eBvAf{wA<(eK~_8CvbZ-B#&0ufV8Iu6A>3L9E$Bd z`-N&UYx}em_H`cBB*tSxCstyph7#5bW6^XFnR_2>WgfG;bhobDV@JejGf{BwMu(Lc zNT0}A@GjJR@BUB$t&eQ`Am{I&bm8>*sa(7C#rpJ>HCQ?Ct+g zlzeV*Oz2^8HvoIqAH~Hc-E49#^fE`sk?$aBD$X2m%sM|Dyf~RdQ;v2YY;Jvkukrtvs>21R^=>m zw||g_@+7s~TWRfEPP!k;n-NvC+!r5QpQVM04B#n^Z2WWiP1Q60p>l-U-FL_a@;6%d z{aDN-DdK8U3;-(~^c?qjC!S4~G4upKsMA_u`?Ei|XziDLVU=wl%6-x}+%rA?^nXaFyY%dT9AHozqv;L%w;Wf?e0NX2;TAe-R~r))8t^(dwtSUIg^krcP;8akqIqQ4LKDS=6&YJ z3(q385$Ek_aGbzM*YOqzwcrdwWKYtiT>w=WT7Wh{BCJ(#woE%yJm^=J5I~*}tAXim zJ-T0~S3*K0Oyz0a^l0>@Z1^3o2W=j!?Loiqc-wUa94)nlGv3_@I1((mc+BnaM)y`W zmH6cUWmCq@T5jJR`$y6^e|!{T-aQ!07qET3I{gF<7eq^NeP(Ji&QsMPWRS}@vURCI z9$}+H&-eP~c`g*Tp0gO+Z>gzl<@#=1dxc= zIf|+hW4y;xme~2|8{gG&o)d8qH?J;lIvIDpKzKjUn2SuTC#CIzw+Wi2bfbU;p4WB? z%B}W$9Jg`&R&>sc?C&~kEvm&eYEc)8NWG)_9d3viqs5ZS3f0xpjuX_f?rKb4uS@a& zgb54u5n+5K5L1WwacW~vkG%(3{d#oEST)H;-{vARFNTDmEVM0zCHRIr3RJN`SAwDU z0}E=GnF)*Nrkm-{m5U}P)EL%fWX)HJS6t4OYMltr_Zq4)ELz;R&t9~&f4(RdyrNin z7xibfvPi7EshpO1;%5+u4?q)FDOl#|)AkEje)oOB7%v4WyCf_1YMM36f&q7(*ldSJ z$6Gz#ml;8$yd-5JegeayQmte8v}1bwyKZ*WU9Biv-unxV+DT6x*{Oi})&hr)t(Jon05KK=;%lFSwOqoRQmcyQS% zm1`--Bp`l8WIfJ*HBYJ@P&i2SB+iRC69@SlhimnHYUbrec+P73vqDQm^W}O`C%w`v z4NVwJTk6%gsM}*wzRyE6OhE%RwW16`bFWuE$yfmR&&DWFC*Lm3+c#fddV(GQvYz6J zI15hu?NxP(0+UY38^gXF4K?ahn~TOek#2R^6gPc1Z=TUs4*2?-#@MQDp5;T%b77J5tQt21NXSSL!yw(B|hda+#6 zS7d>R{C7VcVAFPt$o(MmRks{hP zqy}@WKy<~5PGcj9$~b64OI>lqBtLBwOD_{gH&(qEsT_ei|GU7>>;Q!rBPOd?OWLECNP zgx7F-yd>LzQz8%B4mrS+=5)jQgkO@U+N?luOtTeLa# z`mri^K9iUv4fv(KiKY~iuhnc8PcAQbWTY_wpE)olIQ%|IWQkv z3r)9wpya@1pr~c>Y209vMIbjT{;tUVmN+J!OulK0lwVr4aSfWu{pgW;q1V!JwicNj znO*8SMf0)OPW#B;hrGX{GedSRtzM*7Mr`2&o*n5emy94y%d`L=;xBn zn{}XXvo>e-iT1T*_K~6cD@x{H2bNuH_f>>}DTAW?nt!8bm^b5xFnWQGUUsOc^7~T~ z8JC5x>D_)O{c4M&G_9hq;O7(|)#Cajoo;*Yp%tT&SyTTvXIOx>)`fKoReV)i3hZcF zq4Ir(M*B_fNe)m*1v{as4BhvzSSf%?^aMJ>#QTQ(ymp5?SM^ z5MMlgtVj-c6?vz%gh8x!O7hKzzeHB)xjIfVPPd6vZfi8W)={~72>$fjBY6_MHy9l~ zOmERFlK6%boYcI(8Ph!MKbZG}|p?&4~^FiLh zQ67_DDJQ!JD~>g3nC(LJUp`S1IS!Bcx>B9d*3ecl=hM?;yS=3wx;OYOXYLLD#`S)P z`X3e*s*sE+HKzV1wv%WfJ16oM*Bt5E-8cf5z^gcTJo8yoe#SchiiLd-3)XDsewwbGiSeu5SU~Z8mG;e)LX@`8<2ix+%2y!;F%!>GL0h5}ETl+JE+y6!c!w6}4=IJjwF$wnmm-*Jf&4;l+gipM@>B6YL zT0Kj6_kAy;*<0^62hQKCsfl>6><1&vkNunKYCeMr%it#k^*pKKg@ww? zB2+6sq$1BdW7&;+Ip-EfD!Rt0JW%O$kspU@8`MtrvpiNGd!M>_*ZLdwrX`@Zcwc`Le1+c{@y<3LiN>Kf ztEM-H>VNwBZo5$bY^2p=+X_(W$Vjv{p8^REdngoe?>5qX`-7lPt+zzP-{35|j z21Bi63#Ui^k>U`}hRJ;twMp{3n$b&{`h0#W>I2`;&UnZpG{Zl~2<6jvZ$)*i9MwZY8D zCqWwGe~BU2Nn*`1)E}pO{;e4Re@y=w`yK@Fd%sl+hc}TLqG-zNC@|ARrnAu5WCnd2 zFC0z~U`FrLNPOS#E54r2oQA-4QODsM!!0n!Eket4*NjIxgGYXjN12va-HcZ=gI8yc z*MOGK#Ej28gU@P?&z6?o!HoY=2LF>eo}e05_-Ct6j+Fd(0d{~OCIh0>m%BB5?K$*; zE#ZR1ljX0w(6rtnqMo%fqblTB@ao$Wafu$RCN5cOZf3BH(-cIs~ zUw5OHLNvaK`mHI`f2QhL8R7w0b!Kj=TgDwdMm=(tBf*4TL>kW6@{8$wi;Z4`)q;yX zPzou@DVL?Gyr8L0ucc|BrIV#)u%Kl^f6v_Fo>kU8+l6}$^xBUsw4cb_Q@nT)LdIq{ zF7O|%;5{_t8a^m7Mu2~1*_28SHvQXprs^@h@NZi2w>djOT#+&EjKTm71DHk_B)-6V&Y^k(n7+FV~Mor>ixxmC1XzPjV5 z`b@n?n9#iOU0I8ewHQVU^2a zZy3WHtioGz!aJ73dl)0$TSW}yL<}!Sj59u;wt7CF^L%;v`8s3dwpHZEoUpe@AI_lJ z^FDTt&vH~e^3N6oqB1=-i0vv&&-9mE`xsm+--sNbT&@U?*)_FO3dHJh(#mukDY+hC7C2?i@K+BwgE0!nT_R0yLtFBa={3-0eDRVtzo|Ij| z>x#r%60P3-BEiJ882F-&#^!g7f=|w#oZ{mr)`f~3|ncdYn zYt>~eHI=`r-#nKC<4~?pi+wI{i2vdeTixP?n|L5B{KWjG%>y(bO9XQwN**PCg(d4rw)c$vP0L9|dc$ zRebiZn?2?#DCiisFQY7`@S<|bov@OsN5P!^GEv-^Q8K^&%^P*2@85?GY@eIF|9T#+ z-W37Uf2$oriBx=OU~?HP+brGtbeJKqFNtP=o|?WylA_r=n7JeWrYxYhJ)kGPt6kFI z44$d5<;k35^(!|>Id1x-l~tO3&8c&KceG4}9TzcHQ82dMNAlt~du#7lPr=yx4Z_&K z#`p)eiQ$cjakj}(yUFQ@$@zlG?TyKgy_28WrjG2UzOqe!x0^mGn7-(puI}v=D#>-x`+`oD8#RLW*sl?XrdH1IL$SJ0A=*1`IU13GmqdPUStu2ysZ~ z#xl1@tqjGmm3!q04tjU^L{vb{SCzwZeQ@*`wwe4t>}!3Ug=`y%wi^S_b6!W>y>=dZ z8?jm3ySZGr`SI`gHv875{np9zt?%qx7lqqro7+GBZhvLpfj-LVVjg= zmvL+7>hCW5yIpYP9y7fxkjG(`vfN^5Ok=OUrBOiS1-Y za%7{D2DciRJ{fRMY(@#kXKSl3_k%scoU`Q)+I_;;yl#i~Ka`d`7cpyhYcCI>7%R(g!V9p;ILGD7dS zN|{mYW$i`|C%bN2MxhEpUjx$qd@{ zvcil118+c(zpd%s*`$OHoi}g!T5ahTFP=GboK~%JpoE+id+^BBg=eLoJ-vMQ`v2_< z*vehIvF5^&2RB|^`7dR}qWeMK%(!!C%clEc z4($2x>CTZGBd$CfFJIYwA@39YdUWl~l3CM6E&MiXd%>Guer`Fq>DZ~ObEeK4dg<-G zQPZ}4y?FBQwpVl4F8#c8^XZqvR{ULj^zG@}&n}NWKYR4V?}lFQ-*WApH{Wu<#eiT8 zO(@79D-ANZV1y7(xS)d)TF77w4ninlhZKH@A%;!-QQ?9IotO|p0-YldJ1w+eLJMlB zaZyABwHOhL?Bs~!jy>wg1Ld5&dFw-aMF3Fop0_br=DhZH4!C7gawKT zt<)3AJn?992q$wqIzbNPUU5uS zTH1YfjR)RlqT=RVt;gj?n}DDe_?TX;o`$Px-nB~Vdx@3D8n2qd>K=2z#j2dN(9)+K zsQRS}t+SXS3#)&}7Ry++zM9Hve8-Z5F0agL`>MCLCih=|()+ zkq8brT#$l84zVb6%{JeRbIv;3e9+E5{|t1{LJytu#^<~PmLur+laD*~pjC+`kIwOy z5=Z=IZL(TNJD_u1V|%S;^|-e$Vug&L}|u4}fma2E^SyRB_1H+je5EB0W~ z0^1L!peal4WR~s?F1>%J9k1Ab`?mMm*?s-^w$lQpZfNU$I}HB!Jv$_R_~w_7{`u;s-}6C&hW|BIKJ`4EmRjae9jRRQ zsH?Yi@2bu%uw@NEh#Os|LN~6(p$=8!=}qMd7{J$zO>vByn`PjJIQc-%arSzavs#D2 z&D6(qZ6jR-X|*d4a?n-P>Qv_@$U?pyFkNxG71>tTtN?mSaxF9$4(TF8yUA-mfdO29 zE*C3w9S}VFqTRxtxI2S2ffY^Y5EZA0#oK8ScL-Wg4Az$-d9cU?OlSi+n$Q94X3PlZXZ z1xla*Ihb%UNiOmnMi8SL$=9MtMzm%NndBueiqVV)%|?F=9IwtUf7X-l)Kq+L=CaO@}YWHVvOb0p~;SEoK5^AGd z#RQZ9h~HSDp0cdfD%EPY7Zw(CaXl ziAptaJQEkK1n-8xVAUn(xH(T0#sSvMoXzp|tKGyZVtZ*%d)(4gd5y0EeaP6wmTESv3@kB+ z?Mhy=3vV&Z>k3JQVQ@K^oV8Zsv;SFmFYrVf35Gxdq-hMzy6EK(KGx8X0YKz(tNYyP zF1PebJLT-MC>}3JX+2&*7EpX*9-cUbLqK7PdC+VeoES%-2aWKA-^|Q}l-W5r@qsrx zM9mU!M>jN)Qg@_74yVw72zW9MO31?mnm~m>po@xj$V|=tcE~vVO$klN!QMuQha3*B zaD>OyyJBJ5(-wU{bL4L>0{%7u zZ)Sey;0SXt4q8 z>?C%p2zA+nYN=!_Hdt(AQz^`NfYkwZszO&%RbMRDL;mG9mXm;`BSF{JIyaz$>?)Z-VLWDusj`SFh=+*?}IE4P#j`c{8Ulcuk zzyzj+S~kNXq$dJhrU{A|eR3#%A3#VD*L_;pa+v6m7{!JTCl74!W>=;GX)q5j;6~uk zeR-G;L@;w%_yI5Q3Fi5`B4ltRN z)+Y~^Km?W`2WcP&)MtD(16^?TP_@SirWVh$)y=yV(;WQ=QRm`P+Vf8~K**_dxxPKDPlx2S?6RCVY0b_AM>g!7Fmn3#82 zmwSm=t@vN6GGN~nUu5@y2l|ZY1euISp#}6$TH6(1So^i+*7b z{r`B7>-Y!jNTft6kgh442dSj}c$!Q~gyiUsPfDfqI8ag8kT=r}M8ISe=@1j}dM`i% zMlcT(AO|mCopK-o$0?s}8Z<_L10DriHZun#zz&o^0%dpzFCY&NV0@S0eAfw_+9wVl z-~j0G0>T9f(O0N)piu3Alb>J&n(zXe;HT$sdLjS{=4S-4x1Mf#Ti#^^j&KS$ausZ1=oRMWC-?Ej*Q zk8yuRiXcP^uTKh^OG>3xim&ttdHH&;ghBm3x|# zOQcXJWmyU|%+(^y!w%?RNa+9yY}&J_D>D__WFmQ|D*_4(wOcaN4kcAmB1gLs>j);$ zrC;(TMk%SFpt=`j5b#45h|-DiP?f5hKi|fy%y_EVve^d9qVM%r9YG4$acYs;FkJ-JO zV;J4CPIwh{RNJl1%8PmHm4-oXjJukW3%Tqx0=(wT#in8B2(nbb$$B?pvaq7QW92z~ySKA{HNj8=$GCmH;+R z3s|7^mA^7bcM)orL==qZL~UCuPwDcb(GsMG>zYUauZ%mwiA%yoO2Loo$Aj$0iA=#A z+_;S^$dv1k@_NXQd$XvR( zqf~6b8#cXjH^=My!*^W8T)WpQ^{(`Y1b!UJkpG;yk6ghVe7O6VxgG4d zA54%WY|c!YAQ=p~oNJq(?9b7|$^R_SXf_e>BVO|(RBFMzk0zJe`>SuM9b9Kv*W1Ku zYnk)=#WSkLKy0>6yR~*KL~&EMQv5YtDaIixi;fAd68*;KtG<+(tkg?*$Y{MIx^-fU zOlGHb9VU%>lTLZyb`H(OTC1TeSgRZ8%o$Y9N-DzlOvz47$ciklhD^vnn8=O{$%4$d zjog}3ZO@mxj{iyl_Tae#ZPr2)&}Ti+-qjAII$l({7Wt{lMW;#*nrvFRIEN{r89m2F zOhbKZ%YKcmUT0WJcX!ZMD#-eGXx!Id{9t{zjl8_9&i_n-kLg(Whpu?7#S;CZVrN2_ zy`rZ`7auKm{#n;b{L5=>f_`BIKL)|=47v7t&m)}983NDpjLw%kuUz1@CW>i z!fH+2K9knPt;q%LQ$pJfmXH=k%NgJ{Vp+UG8`Q?A?O5Jhnccj^+fBC6)X`#l%rGr( z{K0_0jJ@2wHU0Hs49d-jY2AXmSZxWc#=Ok99H4)|1e1X4PLB#w_&q+|(+ zUj6Jy2N$uyQ&Ag*+(dKSM01IBMl>+oxx|Y2GI^;anM1P7KgCIS1B0BSkb9% zU(s8?N7q=xrp-wU(=rW2*4#hYi?`7Gm1uW^-~DPU4br=ORToOrcuClTUCe8~tpt9) z$Lebc3ddpRw+g73Y`KdKc8dp|=ks0Ntz2Un&LDq$!5<#si8tZ`DUgYN=!c$o5zY!! zL`8^hxRsvhiihc$PU$0l=$xM64wB-~;|Ng}4#S-@TOd;qB~dbt<2T}PG}91)rVq0_ zGp%l20t=MrH_)8S4)0J8wFM+A>`)RlTr?vK%{@uI0XBl>aS^ciHDsd##|6I!(vYwVc>g9PiUS)aw4y zZmzWCebjVYje}`xd1-aZ+~!w4z6ngzj@_1gNmh!%@92%-c9-v30}nR<0Q*waeyn(i z$LNb*={gwVH_&b5IP!@e>HA{oAHU%eEWzDYq%L3bMi%PN17)2ndN!jEo^S>x_cJ9$ z5W;RqIDVY68{>?qGqSrgY-H8}9S;YP0yzHSBAJ^9_YPlXQ4z&Ra5n2I>=0XD!x9n7 zh2js)O|%NVs!g2WORiPg9Ja9>L=Cv!IhxcWt=I*4@c2Gq-u}$vOw8a^Od%HM?AxMu z?zPYitxyc^+P%w6TiIi)-b0MOr~ks{h#$V&%;q7z#_>(jv;AP2W{KGE~ps)b~zya6K0WtFd0&oBu&``^d{T%RTFmU_=V0?6T0`Msh z^}qqAkX+@z0iPfbz`q2>Kc2e|NWFzgUl9D}e+~dase=FxZv>E#mr&jZ0RlFBIw!9T z!6gDTBqY+11GtD0<$2?PB_SmaCEt`Z;%P&}4g3_!o72IFyof}wu=8Z6p@0|X@)hLZ zP>#o!MU5UsnpEl1gy+(wGyj6lo4RcLqXXV& z$k3lZNc#Ub1c@604Dbd44Ka{F0r}(ahCdu+a6$i&h`~Wa6qzu<{xn2_Lk>5baKryH z{38YvZ(xe4K9t}C5dS7xV8V+_}~K~Jn-Ng4J5$g$_?~cMS>He`~VaOB-nriABT!aog`i`VkUDW@Z=B)IMCn& z4+M~hgELfawI*ML_(1{(Kp_*#4>VDT2rossGlg_K z-~h}Cp7i1b4FvEYopT~0!2>V;l!qNYznJn2BTywm(-RVk(E$&Dn{zJIat_w=lriLyfcH za4YURw$$bAy8pb;y-(lf>@Dx#b@3H%x52FIcQ1VDMK3<-s55xF@J!=Q;&yYBH{W;> zMi{z|-Aj1Aj0a|zy?ISe4dREvySQGG>$5C4bnjKGx862ZII*?>Zq8%umMeH)jCmG1 zW`1ph2Z;_t@VsAseTY@sKbUDK?k4ydcXm-He}kD z9AS~17h`-$pP*)9M-zG+;31xK^zq=5V)?qDzfNeE_XII86hooDWXM4rlF&HD5f2YLqZ*FMEHNW9;Sp2#vmrXB zhRNYeY;1Tgav(7*1p32%mbM`RNo_z@Z;NUN*6~SL zSQ!6zztmSy&0} zQ^n)JEM73&=ttRw8JM*ThoDI!7gcJOE5fH=R@A6&QmVos(sZTw@tI9s%A6g>wEuz5 z0jdyzCbId|a6TjKA;DsZvJn0>r#M^L6UjJL9|DmqJ^i5+RkpLFYSpSQ&FBj)_`$Gd z5r}Yshk`J)AGY#GjcF7STi>dmxONDxZR8^z^@_E-_O-2S&8r@pMj+q8two3|N(+1h zs!paaM#U0<5j>SXn#kjvZBmCi4iJVQC1gwvkVh;$fP#p$zys!x!zj*h0xHQNMjhb6 ztJ)Ni)3GT?hwwl**1@DZePAXfao;7EAkBjocPYvgUQyT)2?0pp3_nnuCnVs3)=6M{ z>ClIxPC$Yrc)TQDxFs=>I65W!rg( z=AL1k^3cTQJW|T-5yiO2e9E<^vaN1u1sq#hpnP&xQlzFusA9 zok&%ZF7aerwCGVcOvDY!465&1A{KK4G8HqGr7#?0!*-J~n9@g#8ZK){YctZ&{P2cF zm8w)PTCtYmbi!JdpoeQ3)SGI@i$dONz_2Pph~@Nw)*;YZF*If*h`B?G2+&%~oJPS4 zc8z0B^M%SB=Q1yi%y+hPVC_mrMW7i8gp35!^d>0}ee5YA)MP^nu;2)GIKl&0NJuLp@d5G;j+P%t0so_5;emQ2#1o>3 z)DQ9$%)z~Zo5nnFuwQ~)W*UVZ-FTz~EMbHU$br+_Y-B>P5C%rrVF4L9#}^L4={LN= z2wqZ^vw{_E_J%GYK2YCG-ti;}e89lI0!5(MtA=-6;tM`#5*3uUxabvB*#8TlRJ>7@ zNF4B6=9oiQ$|X{QT^Kk!^$bUUyh13?a5n<$XqSyR9`7{ff<-K1(Y%^v?qE2{v%yV# zsCrf!clhHWYpT7B>hgd|dB;eWd6QFo^OMd{#+IRRk4xxcvIZ?ZOx9?Kg|71q8t2I_ zRQiR5esr{w1EW>V4LtS%kC|PE9B>pf9xoK;I$!7yis%oV>;LTMF`r$pY~M55=M3ky z0+Q`=?sMAHJRwCCRtXev5sZvNiN(p|04Ly^2@*oQnP`9q-dKF?F4+h+R8}4{s;}YG zO9CTV{*${>15Nbd1HsKiAB-qH;dsyrsKn|WCpg3Gczup7v>Vv}7B;buf)0g%*SE$j zN%-*F%_b#OA!YD(yDir$V6%h0;d_AuII=rYU@1@vIRppT!71LNLpPl<{n3iwcO9ReJjP&hfhj2)`8IHgPlIv_K#u&OYugSwM}sUzb# zE89OL%9*IDj1=mz3X8djivbhh0qMd3w zlew`09GagJISXsSFtV`^V?pyU!ISf<{Px zBhVBLC^ke)1W=fRJF%<-m;iq;2lL94H%I|kn34myJ@-2>-BYdu_yJ8wfeesKa~KCT7?w{sg;*&>K$(Cz z1ci981fo!rBuE2KaFiDSuQHGWPq;)m-~kbkgG2C<7w|k*d_QZEiiQeCZ_xw=`U)TH zIRfOtnyWG@+c_2TG6x(;5k#7ex|tyJs2YpG8&o+M#0-7WiyiDhqFE^`3NeL*4=YNk zJm{f|Tnv6u3>`EgE`!LQ@iOgzjFuZn2}>fPL$L(RK^Hq0m*lw(#K09pp(2DaqC&cw z(K?M0BC^A~FvAcnJhL>CyQ8c^F{3lM^D{ZykEE=-HF~=ZQM;*BGrv2mG<=B(5C9(V z0A`5@SD+FJ_yT!|1RNn8D&YY;I0y5aF8>dZfF;m}Tik*eNxw+(fG}{jSm*#M@c?Wy zfx#@xGU%+u@k6@=MtR^bxO`0BqLK|LHhBy-S1gJk*pcbV08ZNg!rTCPAOSC^1alb6 zI}wM7XhbTRq;v3uHz3O}2q+%lCOhB(vh)&pxC0NMf|sC7DwzlIX)Y?kf|?-A?6CyG zlz@Y<9L(&UY7rm;s)~oQgor}8aap(>qOg!`8J*F|C>tsm>nV?O7~nw39HP01k;#Ju zN{XDKv2rr&kV&7csVFMRjC84xYq1P#u`b%bt8~nWIk~$|{EB$c>{J z2@1lIBsu>43;$FPfxJMLV^A&Q$Nw43vZag9%jgHKQv?&_F|hzU|1dMHoIAT>khK!S zFPu>^q)Icp(J_pH2>HUOOfwhlyWUxmGZeIDsstVYhfE5kEkK7=L!F*3NQo;w1vo8= zbMS|HFadT5J$Z11Q*ejdX(USEhf_cYN_dC%vr|HG3aG%Ad>99JxQeXciu{AQm2)Zx zdJH0KxEeIcDGM_HJi(MRqW|~EF^xf~3Us(<{nZgA47<=F37o31XcwBisT>SY46@Li zJhB|aIjj>;0j0VggTSOhF`P_D9qK>F07#x9SEjSM3>{FgqE~H=ps_-Yt>e0_Gr+`1 zD;%}Tr_?(JagZfsyBYmagIzO)1ycVQ5r%cxCp^19@H+}X!%9_%>v@4tl@`843IlW1 z-eZa^-PDwQRaV5)qHu(sXeEx7hb*sc^!3FS>CA@1@nZe zkb?#Tmx)@qm5I5R;Xz)_K$Q^;4NI4%OVBbJ!IvD50#%{()IiiAPaQj#cWpUy-7$W9~4n`QHy=pI)4=-enA3Bc-S1xQ8Hr?Eo|7kdsxvWU5ee0rip>l9bKdRGa+S> zJSbA$aSEG7sM_t>c-&OlEtLKlT7zm?qtIQZu-V}49pc5^-Yt}X^M-+|hb@Q%d_=hX zi&maQ$YsT{jSO399Z~!YSQ_*wy=Bk{{74OTz^5`ugbYd=gg6xpR+|dB$d%e@_1cAG zI>#knkIc!00l5t|&*~*m{5@ZTjNGivs3lv_6+}Rez|FGT z5Wr^jPls#`4Qt8qeNU*Gz=@+Fs-0Syg5oAZWB#=;5e?U3O|tsHUJG>JUG*^(JX{Y{ z$$rGLwRPac9YJL+D+RocZ~egw*4GwXK}RmD3WkR&Mwm@7gb^NL6W(A$NE)`okW5B` zeIPSY4&_oN4UMsJjo(2A+aBar5H$>M&EFUF+vOO!L*A(d zg8SA+DeP1O? z4wVAQ_E_h#1<(VYt(R?W&*=r<6g5z0t!BC9BBwUMGfvNjOxAuxWQCqdjLc&J7G!g_ zX8#J+z>IWgYL2oOLo)G%IC7>q-hfw%)9bVb(T&t=eD&+D&a%qoIt=k(Q}$r33+18I zx=m1o#u58SHY*Q}f$L8e7uIv$RY)s~C(#B+X=;)-`y3X$D)^=^TF}K&2ZDE5y zZ1D$oXoYT=hpcGk{0n0)da?IKDRw=nIhN0^6-Z~*Pz@TwvR>eS{LkWM>$9F)8zRte zF1d9TqJmk;`4m=ouIn#;jliwmx;`PO+T(}JA=hAN@SbK1)#9ZxI(Y@?ulirVwMjpY zNc&!)Oup<=wgS$s>=QO^ST5}YFL2VXvj87q2IuSmXK>X<@KT=b3b*hJ$M9e~=Ktjl zYUjPq2QzA=D`06hIkV>GK<+_&rdtU-A*9Y`7^2pE1!sLeTly_vqtUsgtCy(*EydfZ@nef%By&h{7|4y%-XxUI~B)II+ zMuG^BY)Kw)2ru)bad0$ea{wRnG|z0+hKDxTIy!gkIEUU>z{gM+Xf80&WZPyqg8q59S<8?yK;Xn`hcpTp;<+t!e}jsc}&^4-?&78<`$G7Poi zYrSSdjw-~(<_H$+oFmC`Hrppy05Hw%ytxILoe(V81?a&78YJY5PPw>r__O!}#3Ge7ortD3K>`e&tbXWIv zckNhRC~pvIIpA%5JZgAh-$y<`qQM!Z=9%HHS2vbm`)KGZZtC{tFffYa9VD?B)7~i` z82*clDU)X#l%WDl@^B4c#IEOxKT!U>XEoMZ^KQWWo@;28>imsk9IxuCw&N|ALF>Ki zg=yOcByNY6>^886oYxI7=Q^%Kf}RKZpcnd|2YR9x`l3I2qYrweKl-EJ2X=@0sF(WQ zEm}ga2SeY2>s;bQuXkiENSYU1fqtTi+}etC@|-~Xz`Yj2KM4-Af| zF7gZV^i*$Ojg()tj_XWcYVS_LpX9%jU;B1_WRWAGZr$%6UtAKOppnOB_Lgg=1{^jB-{F_Tm(~G8&nke} zM-JY=f&vL5G*~bp!Gi_+*@M{63PXhr2U?LBF(So<MT8kQn$(zQ<34yT z?X^U*&z?(oHsL9PhXfwQmOf$Hlo`~gP@XP<(rnoV=S`nMfws(f)Mm??MQiRuB5y0# zu3o=_4J&pm*|KKOqD`xIE!(zk-@=V6cP`s>>CmC`mM>quZt>zB0>??ygdF4!X6&ap z4?M*jM|vcvxbbAg{qk5|yip_P&6zV}&fNHMAuk?N0M@`LI3BGfDFxN9cd{oc$k3}K}eE$ z-(A-rgC;>HQgS63c%D7<6(}Kr*l|V`RY{px)jld><&sP*y0oHCQDw!VQ!26;qlr5@ z)nbo6(G{eSLlRk}kw+q#q>^gc^$uQo)zg<>np9$rIfao!Q*!-$^qZFu3B+ZX4pyWe zPi7vbpluP6a~*QnWjT>V9}TGHhntx;A)8#D=^;cF0yqmThc_zeJfDm%1Xr+?csgV_5b_w90i7J?-qGEb9DMT4=m=UIVni-OZz|kq9maJYB zX?u0vW>j*z8d@o(nAW)_fgG}W;D*a;*ypj#zW+KZiJfvZr%13?Yhkos`q{0tw?1f8 zP2=83?v5>8cJo3JyAPTcYh3lW zZc41Ih7OS(;l#-`wDV(9w+RLujiRGt$ILb{xG`y^GXKQ~4M;x-$-5Z@KiU znk*&`Kn7!2c3YC7#b=7-EiUWc0;$Up;MmI%9kDLpm4B zsp}@oZXMpSr(7t|p|Z_sZEb@0d+OcFZra=@bFKS=YlE$PoXcBV@`Ltx1ZcM3?oN>P zUT<6`+Cochb(SX~WZ}~qQjg%+#p-GL`dmkR()JX)DRuY6lH}*c*n@|w@is?Hcd$#| z(nch{hP+E$?4k%`B+{6ppoU%TGF-b_0<|+j)(&R^c2eFAL4>LxaF!C@q=^Nk%(vlPc zGnm30CNa;!j&v9yFP=DsJ0ek!NX(-f-H1f!$YF(jT+^D=qn=c?nMz^tYx^tf7+-64hhq`f&FQEA}74#m{&uyBMode~j z+1>+BgzmGQpTeF$d4kV(0{@hpcB|)pI-<{cE);l%1W-I>*Zo^z{Q9qU-(8CG$Y^Q>CUs#m#sRe^GKt4AekSFzewuU=KGdR;4C z(VEt>(iN>o-Kt!->a3YK<(fBQOwM-H6LsamDWW`zWDmz8ol@2%HG2tTu*scLUK3}; z94%=}YubCQuyU63hBy4dmncPIn&1#!XA!%PJbY?JkricR8T;AD>a-=bjcklUdt2V# zR%^)>Wh!OF9iOaZCjZ3kt#W%?%G);Axt)y>Hietq&LWqw*Zh!0B9!(kJL$E`669-1pu#Mu*8Sb&;E1;Iel{@pVa0tn1s|Ru{3)#V=zD%-`QyVZG6X ziE{DlS^g?FywBxHce%^m4(j%|7?v=Hxm#Q20woU;&MedCJG-@0Ty5H7B3B&HY{Rm$_r+I9J)sNp91U zBikkjHyF&=O#d=>_A4VHKN`Nc#Vt>itSBTKI3p^~h<$g? z$z<)o2qp)2$Uq4c-~$E9F>49{;?}gz^{#R4YhL?09J;U-vrKxfXV>Y3=M` zEBn{S1~#*iee7p1TiVg?b+way?O~#M--t-Rmy@y@!eM@`Y_!hXh{cUi2_uJUQ2Kcnu{qTk38{-() z^~U+&agSg8;u)W{#+}`9kei(222Xj%MNV>(v%KXWA9fo;E_0T@9OWdpH6Lu<2A-EA z=sIsXu>Ws zgif4&4`}bi+Lf?}x5GW|a-Tch>u&eE<2~?d&iT)49`u?2Jmy0``qHER@u*L|=udBY)vx~b zqgOrcV=sEslV0|$cYW(a4}0Iwp7N5%z3hLF`QZ=$>}O}Y=a0Yn;oqGCatFs8sBiu1 zWB>Z#uoCyX@BQzCKm6h!Kl#gV{_~?h{pw#o``hpS_rpK_@}IvsI5CI&&tU@jp8)^) z@Be@aIKUm;fdjYz0TLhy6kq}(pbIcy0y-c8HlPDW-~%!s1U4W9S|A2i;08`$1ZtoJ zf}jLuUC9SJC@@)X5&EiV?mlDG5((eh(JO*Ktnp@LqeoO zl7It{Kt)>QMPg(|YUD<8WJh}BM}lNXisVRUWDt<#Nus1hn&e87fJwIGOR^+OcBBTF zBu$clO=2WP>SRRnWKZ_wUjSuL3T04&Lp*4LQ6lA0DrHhKLvg6|CNNf}Ut%U? zIwoOmW@LgUV}hn(dgf=2CTHT}Wb&Ub+9hjFz(T%ePflb*&L%~s|XnbO*g+i!?-XehJXM9fRh!W_1 z#^r{7=z>z{g=%Pp<{yI&sD~;jjFKpaz9@jksEU$kg~q3YUMPl=D2@hcgNEpdx+sM% zsEi`0i5@73GHHSWX^P6Ij$Y`Hny82xX@>r%k0$Aff@qH3CyQ>WjW+0)DkzB#D3>-V zikc~nQfXhFC~4AVLOv%$9_O9nX`brop7Lp*`stqnYM=`0pbF}1vg2v;Up#bk_s|M?<25YV| z>#PbZuo~<3HLI`UDycfFw#sTPCM&gWtGG@p^_eQTDr>HqDzrjttWK+~Vqdf#YqMIb zxN#k-izMgBW zt|!9U=Pe@YKr$o%5^Bhb?8uUA$(HOwB4&+_cg`fShw?a&Hs(Gu;^8g0@d?b0f3(=zSTI{$6dLhaN_ZPilk)mm-VV(r!% zttG(1!5EC!TEfAkXQx&IEF3~Sr03fHMcKM-JcKGxvaQ^zE!@`a-M($v)@|P6ZQH8t zr~2*Q_U+sfZs79m+X`;svhCsuF5Uue<1((}_U+_0ZsPi_rz)=HTJGFl?oo0s-$Jh8 z0xsyTt>@D1<%aIys&3sDCFr8A>wYfkRxatDF6|;N?fz}yzHZw-uI_4X=^}38j;`Sb zM)86}V3-3f%0RkuEX+FZ^FnX*N^f2Ir(ss_^g?g-7UuO9i;kO@^Aa@umARM{s!>>3NQd0Z~-GQ z0W0tTGw=Z~umd-60!Q!zOE3gma0O#91#9pGbMOUkum>A(H^73-im)^(>cJe$qq5~+ zEb4V~>ZS_i3j?JL|Ai*da8TaxU&!z!z;Fyp=L_es4`*r+6Y){vaCruCcN(#ECb4w# z@C<+F6LV)1YwA!EF%wrO6$>#?KI+%b@TY>YrzT?cJ))JQEA#&9xK1prIx8Ey@vXvf zt;+El$1xqxaU0h$9^dgB&ubss@gM6kAp7wk&+B^!;w*o5g#b!%(XLI&vdv<7p_GpWCX_NM8 zn|5lW_G+tkYqR!iyLN2D_H4^`ZPWH`+jef_Hf@hXXkT_{SF&Yyc4rHB*hL9nRJLO` zwq*-m!bZ*|X_a0#FA2#d8@D>+&-`I0+%lSBEFOL>%2 z`IK9Em1DV*>u_0Ld6#GTmvecTgSnGSIhmvNmUB4`H@TQ^Ij4?8K8(Yg%Q>9Wxtz!O zIH1Cv*ZH0Ed7u0Fp96ZJ3;LiFdZ8Qop(A>tEBc}{dZRn~qeFV67y6!Sww}kiJB$N! z$9Xq;UyRj>~t}nZ&clxcf`kTM{t4n*R?|P>f zyPRt~uh)92f4ixN`>%I9wVS%N8@sQU`?H_=xq}_NvpcwtI;OkBhqppLe7HL}cYtGZ zkZX1P5^yO;{4~E%GZ!-_H}j9fx(R&xo8x?(@BCi8d9?d{(9`+Q|9sI4 zz0ni>(JOt@Gygr(JN?o>ebYnz)JuKUNBz}PJ=R-&)^q*Vd%f0!ebwMbNIo_+iuD^TU@42zlJ>HW$ zv@^cpul>6RJKc{1-#`A~=e*xr{?;-7xw zqdwb{e&2)s-G{#EuYT(1`rv1N?OXb%-#VY~yk+bAcI$Xf12a}5fATB;@-u%+KlSk+ ze?1(3*PVjbjRW;tzg|>7YncG6b${1!fB1v{_~t;AmnK+h^e1y%=X@MHdmfiBU#ooe zTGgxPu9drdtX;=$ty;A^+O2WJ&b?cAZ{ELs2M0b}cyZ##jVDLGTzT`{r=iDw&HFX< zdjHm=w|-5VJ8I#m!JF>Bx_0W-sdJL$dR1u3Q!G#A^SC*mx0Lol-q)X>KYsuF|LYIH z0R=2Dzyk?H(7*&4T+l%UA#5fd zzKx#Tkv<;fJB2?GnKTm1_o5u>Nhw2ou}2;|x)IEje4-D(AVK12J}kQ&bDSvUOtVKE zzl0GaEl1*U%NIA|G9NF8%*@C=?VIsOLlHGWz8`fgax*IDbMi$XW893*PU+M!%rf89 za?$@v-8|IPBZWjX#y)H0bTg0+y)rW=Q3BPyDre-3)6XuI%p0+MBJwj6#zEyXjy_v< z+0dN*M7Pr18ErIWt+m$KYnv7AGiy)8G}bIr9DU2@-LH`~zYeU@I) z$mMojciR%yPF4^RhQBGOqm051t<(E7DGpLqYdMl`lGlp5`oq6ur=bwQNTIivPE}CR?ym6$f z5@o_Tt`bqY_#-1bJ1Jmf<2-53JUxojq#?b=wd<0^MwVduzY@773+D@g9xII;kccQP8Ru{O(A_0^D(}g#xAW%e}EY>47YF zM02A-4_)-pNiV(V&pXeY^VK`n-1Ezo{#or#Xdf_>je)H+?0$+9RHxGW}+0C#1dha!6pJVFB zXTA5~vv0k6*~$Oh_u|9<-umAE7qawK&w2T~U(#e3y#yw2e&>rG?09Fq0E&z(Ib+d^ zn%17cXmD8R$sp70v!cj&u!CQr5vv3RqZAbdgqC3;S6tXM7%pvwc46A1ICcNRyM6G5 zJe1)NLkL13YD9?Z!B3B11RpK2kcmfmnqqv|M1in}h+K)H4UIS~nN)F$1VM)*zKD)? zfH90QRt|B;+9j ziO4}Fl97vaq#+v#$ww+ul9i<7CG$weGj1}CnoJ|o)X2#;ijk9K9OD;3vBptya*e7i zB^zIP#!=#tm83+YEN}VASfVkNri7y?Z8=9*+R~Ju%w#8XiL_JBv6slqB`$r5%rl~~ zjjK#$HPMJh++kCWdwgXm!8uGo?$VR5T;?fpnMY-UQ;vPC<~Vg3&uRaX^OLJ|W;xS{ zPHJXTpTv~rK4BR~j_HqN@PnV}9EiQ;AvA!ub0|X}x=^A;^nE46<|(nMN;lFGqmzsz zCOsNbOMaB3A_eJ4OreCxvFuAGEneJ4h z7bRv#i|UAT+7YK6HL5#{xzl2HRH;)PW;@*3%8SzUmwLSER&#pJqKb2)n;aun^XXGX z>eQ(LooZ8gI@YH~Q>q-zXY&p{S-N|T_+kY`5KUiSZss>Lk#@OM1d&9;9M z^<8JBS<2~05Qywi5fp`A5jGjXR{-$E9Y2y`B1ZQIOfR+Xo?v@2C%%F>r^ zSEkwZE_b!tUGRQayyXq=dBwO?pPChz(~Ki_hpJenjun_mRii$SX-=(DcbaRh=RdnT zUHo!1nyVBlHKAF?1HZSabsVsJ{fb}!+gGW3&1!%Tna;pgca90BXEEo?)?hAJkNqSu zIpKR?#YR}ZEJkKtTS;Ai>Q}G)4X9H!Y++40wy^?bt?Gb>J0N>wj6AlTV<${b9<$T2 zLVn$7X~#chCRd=Kyz4)Y8P75vIdir1a+i-h+AxRtmPr4e=QGua=EjN{$`TYVnMaGt zILC6yo^5mYp67^kw8IFL=rf=F9Oyr*60L8*64 zEuCphZ+g*+jx;469co8UTGO2_^`%YCX;gnY)T}18s!ttjSkIc#?HIMFC7o(rqng*U zuJx^5y=!0hn${Ps=AQeUY(X!Z(uzih5u6QeLKjunmae9>K@DnKD;wH^Mm3_1fas_4 znbYD1H&&O;?Q}0%mD1icw2f_SO`F@@?*KHs(}9k3{MpvdmUpN9ZEkk+8PSMtbiZ5O zZ%C)t-2*3g!4r+ua4&k|U*tO|mp{mGz&hoBC?Q2his?|fs7@*CTYodorSeot> zsmV+;8C%KEY;Ik`2EHmzd(PNw!Zo8K&brZcs`R+3UFO;DbD+@y_jEvd-;{u~-TVBG zx!XM*@8G-N=MMOM4}RJDHvHiA-41&rp7Hulhu!rK`N#Kt@{y;!`ee(;Kabm#|<`qP(Q_LEok>S6DC){CC@y}$hLEq{B?@BZ_z zCw}dHKl{DUUEh>2JgDvM{CrCv=Y1Y|+~fc5dRx=I&vj3|_q&gG@!S2;$&SAD?f(4h z7r*t+mwv0g?{`Wpe%am+bffJZ{pY)$`l^q+y0OpsT+i=C1oD@A3HV z(WGzwL`~n!570s_|6cF)x(@;w&;Y&f16A+tz;D^!q2!zo{k9GIUeEm?t^DRM?^Lh* zW4>u+92xP2~P93=d5J+YsG4j?(1t z>5eYo;*HQ+PTR1rnglQpr|k_LZV>-5%?}X~;N(!-5Ki3K@S;$z(A>=stJOj~5fp&t?(cXwCvD(cg421|{(BHt-i?5!Z&%7K!l|2QC+#a1>kZ{)`V6TTmAN zY#OKW-~KHbv5^^lG4X)01%>e&rO_6}vE3Ms2QzL3n^E1Wa0k(l^V&!g1yB?7PX*RA$_p*Mlj|`(cbE?AJ+)wI1&{LPXdc@9=i|& z&+q+g4ekhw;52d>Q!oOr(FFf9t|a{o(1ei?5$z(G?FuI{1%9CE2vML?3DW|XB^idAkQ0@Y73{jB!5KrS0EiTi`87VUZuTSP4jW4-U8AWda z=Z^;OukU;jCRy?@T{0j|umNchHf7T_X|pHm5(9BFAa(OK=MVDu?l*Jp?Jf`sl{5Sh z&^Q54@SZatRj)ZqvO52ZGxDZ0IfwHonX~w^^E>a4?{@Pzdo%SiZWP@w`rPv*e{w2^ z@BNCf2G0`)_l`DGuhq^F47+g~RdDj~&IWn&IF)VgB=QuSFY%~y@R|_{vrjiakU)KN zIhC;qt@Hi>5JSrl+01kKY|sb*uLI*RIM>qz`|md2F8KDY3eVFkr;s4+^8T2z?%q=Z zqc1(hZ}}e32Klr8j`I03wE66jJt?#S>(dC75J+FsA{Fl^J@eK`5h+=6Dqr#s(XbaS z6bQ`^{md{+?NUj*)IgOHsQ6}RQ z3;nDY>+bOGbU6Q$(M8Mj{b1BO)$K=>RPV;L?h4_SLrS(R1LLex8Z zlU0+__`+?{T<<_LkN}%dOVLm8xD!NulqAvhSWy)*byW%#RT)QALTOM*agYbc)8vL# zSFN-2#PvM6b5xtN(UuV+Z4u`vRw0+rBO9|tF%R(2lS${%OYbi6z*F_yQ|>~vMFaK$ z3zi2HvOoX%)$kzm@FK80=aoP&RY8UDARCemgA(T)4M(lh)-W|BKXmeHbO48SNBizh zTeKc=b^1P26dQ9rg^?m#RY2npHbs##cd}TY_W4TkTWjFj}FlBw0I9XTjTvvBX*E^LJb)gdiANO&e6=Ab=a~E)OQMLgG z^+5jz^*{eJLwhwkUsrQ=mp4b$3SH6mhLj7J5mWKAV>!2IHTH4i^zXLvUUx7xk(6HN z)@Hd=^0LCf?fDc)l_L25L^v-K=T(p?Q?XS zSB2@-PxF)cmeOS>6@?G?e$94`|8@$2b!4kA)FiDq%eGV-cWB3#Y18z74;Dv5P1OJJ z_l_ZVe@j*T_}KjX_)y&xs~T;P7Z;DElYJup|G1F_*^VQ*kYkrOvDY^p6=Ee; zI7iVnyE6-s*LZc4T|vB8BYC#|?iV^I^hK*z@kUUHCr&@9latdEi4nLLA<{mtG~;d|lLF@%C~-lwAM&Hb4JX zX&1OzBR81K^xhn=lPgb^wXpmiH|}0`Q5n$jRM|y?wW#g5o}JfF+c|p+T40UZQnj!? z@mEQk6$`<6beEZ-CD>9C5O%e&2C2GHT`-q_n0zhSe`VNNyV|U~dU|_#tQ(b}!S7A8 z_o>a(tMA&a#af(~_66BmV9|Q3z1gCt`EVgHh}YSk|8#n%`KjBQvAcLW4e%kSvT_$U zejVGWr8;~Ym#NWIp<}avGn;I^7k~BcNx`^<4fmQyTSqx|cjNT1)w7Zz5<1s-v`JTn zKa{E!cZ3-iP_J3AHM_K{csfUrsGB;ZsTyGI`nKQKK?hWQ{Ti@eai#xLZ(b=H{>)Uh zTl;>Y`ZZD86?gQsy>hO*`+qyusmB$QXM0R@`G0F$xTDu*wN_>Sw1!=Jp=*#%O}D#8 zwQ*yYr^|X&&wD~Io4KF5uE7|C;kS~#SE+&302f@V@3@mY+40Cbgcom$Yk6*=^MwJ{ z!q+>60atS`+PjwSGB>IO|9E($JIrRd!Li=wbwetaU7{1^}1hK zpoto|t((+g`a@+Kvrm1(m+y!pS@8ZY&|#Xc6*znC)5)0_jAI>85gKdPoN=*QRJoXt z$<=Q^ywNojpZ~YOt^L}uJ=?W?+qwPP<-6Ov{oBEP+r@p{&HdcbJ>AuP-P!%zTfE)j zJ>KPg-s!#G?fu^IJ>T_x-}$}Y{r%qoKHvp@;0eCq4gTN}KH(L9;TgW+9e&^0Asr%q z;t??7U)gVO8BkSuj4S!c1COuETJyp$|xd62a$^0@!Gt+x&Om9hEcTUgXZeZU>u zaZ}SgO&*S8Q|7gr<`cL9Z=Q8==9l>A{oHX|yoX6T$5}fy1N+S5_C=K*m64}~2F`DkmUEil$O^tH* zA6(>1y1*lP(1AZ?IlQ7BUaG^v>@6xqHxUrv`*lBPp}5i^dwn9--pls9i0jTsUqQk*Q8!u%L9V#uW*Q+~`zG^$Z_R7pnl zN|Rw%tq8ATCCIkv%ePCP3KgjqYubxVL(T+>HR(yeC3~g=yOS!`!-yLK1E+}dqg z#U4T8+|05#YN#u@Zf)G#s_2A35enaF9B%97$#pNk?$~)j;BPzTy?8LGO5xqJX2v{~ zIeFsOVIyx}aB)YzZMS<*I~J~Zx|Yf3UtZniHXLC+jdYV+mc8Z?XV5_9d^ruL9YqAO2BL`(a`s zUPK;Ul^1X5p~qi+Acgi?c8wVclYOaKrrdc?z3AVT9uk)&h_Wq2-A?4?MA~{?VwB#L zl(AUgOPMiACQ?_iH&ai%X$aJ3TEYKy(Pt$7=-Pl!O4!aoG=5fGi``MEWMYu|6ef6u z353p20-Y7%Z#2S%CYxmbWo1LGNyO8h7-=V=dL53&oPAnVIoeil8v5Nx!x>oGV~vd| zs;_OrnIliMsYL9Z4?Revsl)B2X0U1+CLwjjt``|;yauJFv$-O6{&C>p2?*+IK~2wF_4<%wXZ8JR~_yTdXTl7f`UN?(t9H3;v%4U)I+n~qV)-F4G8 zIq#}9QpF>l=P5VQlADp_7q@8YH`l`k?xbj)LsmxWa_Yj$7P$B>`mux2qN!<|?Uq?p zyM@szD7`$rB_B{kUHG72CSL!mrFk)L2N=H%pSH2WJpV@(QDWuTsfd(m>#Vbirfgir z>WcPrR;(%2p_Qu|c9D${ep@cWl6_a0fM`p*-K+B%7U|y>(@L>)MC(KeI#3-7Ry&y< zE~?(xAu72*P_4M)+*1KJU*b^VbUBrMcTV}}q8|ug!_A&b3FD=|t?GKPQVtg4q%R(D zu#^3(5IVB+gcIv!Cui*8mG5r+p`b6Dm1MjRwBqQ%(KA5A+ z<8~VBov)tw<@uePsYo}$h#_2JKa0UP;UR%B_xT&ar`6Q+u~L+%`~ZW&y(D;JXo-aTuL{^`%{%N(kJss zY<{H6%AioUz(ft^Z5~8TcgkeG(%l3>1d7OeeCRpy*e-IVX`Q7q#l(yGY9v6CkmIT+ z#UUl_BiI`V3hBZ_|BMMeh^t)wh{z=Y&F+I+TpjynbTPwZaeYJi9&==9H?}knak??w zq1vXG(_AKx85E%NZt^Gi42F!V$(&382PwW#MH#YxaS z&EuZrLWm$D*3Wm8JfrN2r^XG|aB|Lrq@_;d$q5oraxlW>Eb(|K!x`a>o@^c$*=Ie8 ztydluAla=arEF)6}%!ZL+i zM4>h{NWgu95|#4_VK(teP=vmckf-chA-iWec#`yk8NKH$&zaH2{Zn5W^&CSB3C`;I zQWD@aD^=y(vC22yDu#6_FdnbkCUbVVWl5!ENxXj|c2zo()63?5Q6kuTuI#o4N5wmWcsx6(@(cXO) zvNwgP_cUtJhhp}cmQ!j|Q`@)d71EhIFd85_&A1~QANE$l+yIoDB&>asX3ZV0DHS*?=SJl*XbCv6HzyQ=Pth~+GcTBy$(^eNmzqL0-u9-By{>MW$s-WaUAD3m1oEC8;(5XR*tziFSYZP z6aDB^2Kmj6uJfQ@>V_o0azH6${p?}4^4LFaKHe!k?MA<&&A+bnU)ucYW|w-CFgf8zm%K6^Brfc5wJQpR-uPn}$*PQ7^-?``=ANh_S9`M||JnH`^FZZ+K z{qsqmebwoXa=>@}=rG?p+NrFYwC`N?CkKAhy&m|-d)(#>2fg8M4tU#lp7g5|e9Rl4 zd(qom`NWTW_LC3ys<*xPFVDX0k8gLN=N|jN7dppRpLL*wbW3Q3*5`y(<_Kq}gItJ(EExZWHu!{`H-umK zgK4;fOjw3NM~3@%gJ;(Vw#SBC*o15-gPgaAX2^qLn1eH@gL(LMVTgcQNQTx|hJ2WX zW(bH-*oJFJgk4C5gBXQ?$cJb5f|7WMfjEVjh=W5YiH|sjl$ePz$BDM5g*aGu3i3o{+G^myUnT9&al4u#0 zK6#X?=#gA`iD6ilVo8=TnV8yWlr}h+8JU(i35X#{lnd#TBuS9bn3Qr@n2`C0Wl4h} z*_6>Je0-O5Ge=(JWj7ZBDMyonHR3{Qr*bd|3Rme3HVFR;E@+#MfSbJ8koxGG5&4_9 zDUiRJkH#sSz}b&5c$~^7MLKpVE1s@JXHdNuTQJoACLb{MnxDDWCqCoa5=A z^BIHT`GWr`paE*1=XswHdYlhhpB9>+7df2trpyc_T4qBcX3Z5QXpxXJN-g%xM zN}}YMqWj6B9a^D0c%j9qog-?a_^F>YN~8U0pd%WhCpw^T8JeeQc1EK%4}%z>(>{$x zT#SQ@xrq+C=?zp`rB><)-T(?ziltUsrCMsGUkd-GUD~Bz8m40ErCFM$W@@HmN~LV7 zrEq$tValdw+NNk~r+C_?bULPV+NWfSr+ezAb*iR(`lo_gsD&D*hYF~Nx~7PFr)ip} zi#n);8mN;hsg??M18mgQ+sF~WSc3P&A8mX#Es-OC(rb?-z zN~@(BsjX_OxN4}H+Nzd1tFF4M!iuWH`lqVOtA2{9ce+rju@XD66kD+td$Aasu^PLv z92>A&Dy8UJ9z)dE>KGX)zOPAr^-7J#1-%0GqSka0({i58f~io{+O%d$l;b zwP2gG<1n^j`?X{Xw*HW{-VnBD8@BndwVqJ6aT~UFYqeKfrDfZ;R-3hKd$)WWxMhpA zUpu&AYqfY=wuhUyjElB;>$PFKw|o1wVq3X{d$w;2xjDPIms_@jYqo~FxtpuChYPrX z8@Fi7xpup@q)WP@+qkRix2_wwkxT!(uZy~mo4cV)rIP!$TFbR~8@zzqxQ|=AmRr1O zE4!v^wY^)ry9>K%d%2pMxw(6}e~Y-wOTAosy;O?0)LXf|yStyuyr9dw-J7?P>j`X2 zyq&AQzdN?hTfTX_y2z`&?5n$Gi@s_rww`OY)2q0wd%TQGyv7^7wL85AjJ5CUxYYZ< z{!6_4JGb5tx4WylX*$cfz!5M73;A_4x{JPs4 zz;3&@Rm{Iw?5kLcuRh66=)wORJ!2GAvp6Z4o07`4<8Zh6Fb?_9#%;{TaBKo@EXQtK z$8&7QZA`~`?8b1s#(2!fYb?io{Kt08#)RC*hD^wJT*ql_$9nw7jm*f4{Kk*0$dzo# zitNamyvKEX$#3k(nas$ZJjs5H$aoydl5EO^Jj#K*$)t?OdW^`d49lSm$oX)|bUetl z?8=4A%e8FCm8{F5T*-nA%A9=6wEW7*oXE&b%BsA|rOe8+49Lt3&48@Ovz*JV+|1Ri z&DCto%$&%NOw86y&Br{-{K(%d$S})JdMWQ zAk;4Hw`)AXExpt3E4a3c)I&YgN4?WdjI%-g(;4j3tc%ZqJh~X1#tLi#Xq?g7ytP?7 z)K*Q^R$bGh8^=BU);w*!{xHN@E7$pO3b(w|XWi0gUDagUwLqQMQvK5{t-u(3w{r{B z3e2^4&DT_&)WEC3dmFcb9mjd?$7T)GbKTUkTiJr#*O$%4R{hjrz0-nS*p1E9|{@JrfR{mEPF(np=traRZGi`RM`+o$UDKOQw`bkTJT1G8 zjod_S#Bw~{d41L~t-v@P!@k|xYn#+-Jh#)W*DAc-vfIdRz1N}5x*$Bna&6PF9oEc^ z)HF@gU3UZ#ExX3;+gmNqpWWRsJ;cE4+G+jMXl>fEZQzDMbEMpGOo4{YA%Ztmvi@aA$p=X74@c7Er0p67bL z=X~Dhe*Wix9_WHT=!9PAhJNUXp6H6c=#1Xzj{fM79_f-k>6BjSmVW7&p6QxS=vH@2 zF_yAvQW%_LWt(2=rhe+Ep6aT;>a5=CuKwz<9_z9`>$G0$wyxTYh zMUTN%%7(J`7*!EW!FRM{4f&kk`JVszpl|POjJ1I;hnhq;k)wHuFUXZhm((bJGZSc4zeHo!aw}PU;Kw&5BJ@rME64*GjT144q=M5`G5-f zVEop9{n(%V!aol6aJg>k2nt9!LS#JtgzY2m$Mw((+Q0tn-~R5O_xXVQI9#R6FI!Oo znlM>B$?b4;AgpMaVBQj%pBRbARK9u=PE@j%(=~Jjt zrB0<<)#_EOS+#EE+STjVr}gUPGvUwMDWWpbp|k0e($1YVYo=q1ZYa@HNb~=R1>4u} zU%-I{4<=mL@L|M>6)*NEHXl;6X=CcNDfjJ9o9)`!eM!`WO0l09k0xE(^l8+oRj+2< z+BH~fNwsiFA)vssY-u-*{fn)2XT|1`ln?d3Bq{~|e(Vh6?^pYM<9a~a>%YAM5?8<+Hs_}{3y|lC)|E(r#}CcJ~3_{9*NX) zOD?uC;%s`u)Cd_>}f-E$jhfX9kZ--RaRSd z^;JIobnLVG)XMCgxz=p*&GEch)X#Zf6?Rx+i#3+PEh4GMxN*!fp;I*7ye!n;=-RB* zqVge7)?>T%_FHhnJ*`o(R5IZdPm+WY)c$(gaLQ~m_0v&t>$Ue@eDj43(@dK^i>S%y zY7(wA{kzN8;=~eDUxpiY_+f|>x^yg5$YRN*fZcqO+O{a^EZhHW=jkS5l1n!EWR2A5 zqXm{*cKKzPW0rYlnrpWCW}Ibqqy;tDp@`pdBUAUn?WSd`tvKUVm|m2dcKT_j)5u_I zs;jp8YOJ%?dTXw`_WEnD!JtUw`Od}o#r}MP%QBfZq-`8uW1A;fsOz@-?t9b801Tcq z^ZReW0~dU7!V5S2aKsZA+>y7y2tW> z*D7?{nkIzPo3d2ewi~90_x^kERV==R1(kQ5UzLcfTr>aPntZZQyT(HcG~dIw|9<=x zJpFhD&6g+=EKw{UF0x#;ZigAQ0Ejk7G0wd5_dp0nFgnHK-|CF#x*b)AI0GD7(Y(VO zTv@MIpUFp#F7-PJrci||G|lPA*S`z?k6)ia3igszGLlg`J zk#`{fMTBhba7X$$b)U4o<$ykE2dS_HvieoTF6aQoDL`?Ka}0zM?Vt!Hz(_= zh(7GVfm;&f4JVl7EPXkUbS&hI8~8v9!sxSM-qM!Fq-Q-FW<-RvaUlAXNE=nh4uA^8 zX8^%927Q!)1LY*AExX|W zP3SV9?3jQ9B5_V$8o>zcP=g5uvV{qxRGIeVX-~oB!h9k?28t9Y5ES4C1tgRq>~Mh# zJgNp1$bcO{FoEjQfdT|%6$oHphY5g?x`qF+BdQ@;s6(82B!4_>P%+_86>rieYt_gz zNReCjAc9J8;!+JsAg4Sw(ARgo@|6OJ$3Rx$fddRy4)TbpJSf3e#|pp$l0Cx&I_gu* zW_DQkGzdGgiaanBfC@$(=tN9F0MVvX4FqsNItm~*fjFW70Z@Pf5FlDq6aW=U{U~dH z$=ivPwIL04OcT#CJM9QeS0Hq&T+O1Ay_j+$`pCo^J|PZR;FJRb5RE)$8OB%2!3gW% zKoZt84iAv?9FY*f2juaC51hji9#}#-7qHlLY+wUK)og$LJ1JxyLF9HMD>V1Ffn+s36RJVio@Z0Wk31j8Fin%0nM&$Uul!3kDNhfeMP0fdXtQ z5K4dn3~C_p9e82`nzq=cz+H%N8FJPZRc&NGZZcmW$Eu-`C_Q>Fr$=YQS&W;|gspBdn=JO(_}47flI zK`6j&6#xeU9B;s4YXJekfJ+k;Kmh}`>1rq7TB-Vs5(H4dO%y-?DkPd72PQxUUMmlA zbovSzD6|67fdEniq0*W( zp#~W6AijPj=Lg=P4|T{RogM$^fII{+1!)UpodQ@u2Be+NFGwH*`S2*5&3*1J1^6JB zwkZ%0;4=ioq0ll&2fGO{0d@o+0Vt5irOjwi2V{W82yg*S32=vVT!E`F&VUd)y#p<< zg9=wLfdWJ;4-^DC10SfV16q&)1q7e~r;q^+CJcrZ6NI1yrGlXoI%|cT)g5IKa@)G2 zHXT}zl+gv^u)jG^cA!!KBs~WfI-n1OGWG{XXzxIDsgDhKVd(pm2N5KDfJVj>-CO7S zi8y;s6I4pg`>eFacIi8vz11g5Vf7_*P}0Y8u}g(yD6*rA<)r*Cx6T z0jTrDZQyc%9=HHP;79*W34j0;P~j~CnSk0YuXYUtg6s%^c|wRA2`AFVdOax=2&H5f zQw2Mt{lx1zZ>f(v2p|RCrR4_%K=loP^V8xf|(KSwZh~?o30z~@2C`hph2rm#B5Wohn z?HNropm_!KObre|!RF;Lj|m7s0h|CZAb>y^D$diSX5tt6IEC366f^;kHlYcjz?S(@ zG95u7i14P7a-=Y_gD{XKS^@_T7^-w)ha?~Zc>pv1S~K`Ef-pFMQxJ%E2%~k7hc8g2 z@jCj_Iho{0cb%K!&phfjmC zD{wIr2rUJWEl0388Bl{l5I9sb0V)WB)2b~Y1cM-;1ldZea#J~ZNP`cEqlD-@gs3%b zF&m;#lDgmyT)7ON*r8s@rc#=lQ%WTx_=Hm+j&Rd}Un+wF@I4QJg>*0h0Z0OY@B|O| zffO);O9+D#kOvNEC%^IlHh72hn!QLkq#m3_T3ioxLx|?1gn{^gBbuz*4ZOhbS!)NJB!U!x7r3nN zItNPFfXSLHr4Wc!kgPBW#TkqwnNkNV@BnrY1<8^u4j6}83`vn}4mnc@cBr6_`X>{J zBffhl$SH_-BnT-=r{Eh1l~Ea8lr%A_FatAzKIoZtASg-zC`T}XI;@CzGzcJr8?$hP zm#{hSP#ZU)9Uj69?Gd(qLWkja41Z`dHNY@M>H}DC2Yvd4c$mRk@`PdX25pmrN_fbT zj7zy>jazgGt#gRdS_&QuE(K&LhnhJv!N*adrvBg%qEN&ivMY{Ahj&1y`rC-ToJ+}^ z%)kHm!G>UmyVN$;NXmi$G7id)QrQgdh>>=&sJR*k5a|XDw1~_MC(3+H*o=6bax$y4XBUq)5%-1W)>`&-EzD9S7+T~O%|Pxv5Dd5{AJY?1U_3%AmhTwxNq!X5@% zviW3C5Dn4QSk4E9qlwr8^f9gh$~8jC72MGb(>#m#>`oD_Q5!7{y?G%ES{{i28v6hE z&zOh_D9Ixu^9k)tvc$YmC0)|R*q=<|(TI>xv1lTu^afp%D4lT8($pQ#$tH|aO(qRf zF)boed(sm{pCdsFe8dkUE7A$+6<Jw|Gd&^+8E{%KL4_)<4Hy+r#$*#wdI#S(eWapV1y_s`8LwSiwvCQ?EDk^n#9dp@3@uD~ z#h#l@(ze}OzI_cK6PgaH77W2o(?kopqS3xhT*Y0C+>Bd%6c{b79nSwCr3MPf#l2k2 zEsUr|7bJneH{l5vttc+#P>bE#%spMy&5F;1TkN>U&EO5ey;|TrS#C;Q+r8ba_}hO0 zO$zZKqs7j6y&^^YBh$rQ<2_!HXk2s=y}6yJ_B>nOvDlnNUh1u0jdW zZ#@eHWkl;8U-G@)35{FNZ6DICCN83l;q}n+jbHhd2tQnj8%Yu&Wz)fh(a}{}#GPLN z4q$)-j0j^(L1rS2PkM1Se4SnC$b6^dYU(X~UM_`)^kzM)m z-+J9(6CPhbLn`BC^WJ|teOwMFY-egYhWKaHNP!45L=H!uh3XoOB^g6pH0oz7{VhH0OEX`rU*o&IT|?&+Y$X`&WVjkbt^8l!7TXk8nW+KB2Y$+gg&>Z`VD zsn+VMrfRI-YOm(%ukPxs4r{Y6YqSRIv?gn{ZfmxF>#>e&v7YO*c5At=Yq+Lsw3eu) zUI>@f7OAxlJd)TK)rq97lK)kRFmi#}S~N?D2gv`9Y{{N%%C2n7zHH3SY|Y+m&hBi_ z{%p_=ZP6ZW$<~BrU=$+oXjhj>te8XQo+b?xB3pTZmW(M_2&{n1M%V0bL5G<}7dm zKX3z2a0Fj)1#fT$e{ctna0s7p39oPpzi63av~q`F1G@5h=CNxa_`oN zbm;On00bt0QZ{c)R$Z2qSP2#u6@X=51&ZFfqRn@xha9knBT#dCVux<<1{_yyiDQCr zNb?q;@f2G0GQWs)ScferbSpq~ddl)fXU#{a06++HN|&H4pQ(sYSPd$RmY~kjL}0=l z-J9h(IBp2W+yW&ahaiC z)qZm&-~%g2c4CL1co24p@Yy<6m$v^9*#y2KBxPWS$n<&Gbt~}oMDK=t7)p##$Swy2 za!B@iO72jvh)kz~P9O(BhyiJ*Br?wkcEI*V$-!1bmI=+djnK8=s&sV> z1XGB}^&H@Jf=_fy7>8lUh@GHP+XH-y*p9N>c^u=0kljS}z;|w^r{r$& zYu9y zqty-FpzUFLf^hn+fA`2AB6gU3Ho=H>(E7t~_<7&*cbJDg82g4-{Ajxf-9Y(rI0ClE zauZN>h@fK%l?>am5-n=^!mOltKi)~s6Pi8C=$gCI4!k-CH-q1Nh z*A5*eBb3s~P1o*SySHy0dF$&f-#B+;=XKNAGe<%sYPK?N?D+A;c=>j|Tz67QII560 zbMBlq-YIlEjcmz5?ubx%Bt5fk?fPR*BQ8t6gNl&q?AN+?^L`l5AG+KZ=gq4ZX&hj` zYumPy8<*1Dr|r_AqwYv;-&24E*PFM+@VbKuZw&2i{yb}TOILqG z&(o>t^Y5Qj(>Um;^U^u&pp+R)!uhu#gD>So340fXHC8^Tm~e_;Y`OJZb#+l^ms@Q4 zWdd@o3^tEp_?iEvPdK$fl8Z6awanU+s9K*K_GaXBTyP@#W1ao{SUNSlxV=Q99uvq);DE%Gn?+ ztr(HcOSQeH*_?gShf{#}m8M^dej3_aYy;9}8-i6G`si-IRY#>*WSw~-U+9EL-E(!_ zl~+1#p`#pNV|9ljn<^$&D5R}+CSytNVHTgOwQ{!OXj}Y*8mqSYsuh5fmQ-L=H58p? zTvP8KhF7prW20k(F}l0M0i!#lkV4PsC#AnIsPq#N}&LRthwL`C`Y ze|uh>7w3FF&-tF`x$o;z`z_w)7^Uc~@62LQtiDdzVGzlYQFe_goE35{3AwxTq4Zbi zmTT4;6{m08j?-X{V8N>DzW1SGlhkXy-izhW>LN%d>9=^vI=>q)fYTE_f4TMvS{goh zj#OWruF`ke4^)hl_kJFrcue5l)!tKZ+mhd zE*-cV`l8BN5g#;_S?&qDDgFs^WcTUxZkRM14vq?TkIAB`gTD~crz*Vz>DCJTy5fb5 z-Vih%I_^>YK&;%)o4Z0aC%&W!rE4)5ka7%N(YjM`xQLWBWfS`)vXImG6&K?h`S9Ag zWG8DSta40Z-t0wu;&`X5s$UTgSsY6UUMHNc7$JxC>-lCs`g(v6+yIjQOT<|p4S!O3Jsm6k-_9vnuW z+(%<4e~&p72jGoefI6K4-}R7E9S+lQs6#ODoD78YCIM7PiJ*|d+pQjj0O2(NA}cpV zKy~$U-%p2gO%yE~$#*Y6gvdaP4%m>rcO~l>%9p)ClWl3(Y$$de(Ue~|bkri*Wgb1<``)!&Uu>iNSpYSS zA;6#RqtT1uY5Qcgsg)GULWX%n7BSZ4Wh4rVgVQscfNRlX|@MLr5jC zd|3maY{X>A9!>@egf>{8AF(uSn9wxvF#>tz#yp-DJp8v`jU@d_jI8W0TQuF)k)NE5 z5Min2M!*Cih_nk2ALbf^OzY6&4nwUJPrj$95yQKq$zH#0ikQ*cP^Wk^|N77e!nvYQ z!{a1*ye-c!+$!!qW#(ZHScfYUUndsH=LibX4UMC9Db??Nlg%GckG(&SPN^mF_Ph0#21^FmM5`V@WeWTd#%Crho>V+7n|fSA21W;_2&$a4E5%*DiTW-L zf*HTSuRu+R$)b#H9^@fu$HP~g@%m?_=B>#mZjRf|CMX4Pl zxI_W#3jy>k2Hi*-b$wz!PGQSIM~C~>r(ykhSof3qSmzZ4Q~7H3?h~V(oZZ~ld<}`8 z3Fgk*a_o$bK~F!+*l3N}-wPqVyI*Hyc>GzMQOR^h@boW^!>1q4pPdYWX6&;0@0uZ5 z9Li^dp6E;vXd)y?*$%K|F5DVc*-X6Ytcp+tfAHRxX$ZI00L zzUAXHXjesjlAa+G5=8(lvI6cG(HHz@sbk5*z@+=JnM=cr47NeQ)W`D@W#~6h`e%@m zLDPKny<7n;cwN~m2_i#+4l}4Y!c^cpT-YWq&w4Ym=&xz+S8ID7DgBeX-s+oZgVR?R zGaArJwiSdW1UX|uom0upl(}|E`-FdAY5a&)>FV+9H>E487xR17sv;gkTzshSv^bcE zQdM@+>IZIM82#BUJ+&o7Web^9Z);`?ib`@RI+UmY^P+VgfBqzDqv$d`Rr$TZkj{T3aZi%>iFf3#zod~~~hnAGrp+L&y>>LXj z{r7IL>e(FllU6e9v04aY53&B30-$3#Pt;H0qv0WddxUxNVjl}`Aw`u~H%#C)`py82 zaGJN!@UKDFS2i5ZUc&lbho`>%_|o`ooJiC`9{AdII+ooB$|J+YFTL(aUF*K^K0B4e zHdSPW@vZOaqR7XIonDhsY=&B!xFnC;?D7!@*FicE@aD74C|*}q!0xqde>TCE_ta)BH!@~ zpnj&oHZ^l1RTu?$dmo;tYVoE``WBynLSOc=zE8qkI!~dUJ3rj0QD5JKpZxIC`)?%w zN-X$_pYa(!H=S@NO2cf8q*LaVtLJd{08*egYo+VO8DCmP1H+pnqAoy?CJn_Ztl|reFOWJF*rBg>jRo?Qe?Bswm*7C2A;NUq}K0&4G zBTl9q|GKyeY5y-c#Vg46aYD9%EIXB53S4QR^OF^!l&$=zKOm?86?>27Gs>(YnMsRf zG?m1tRrTR9l?6@@KDO{v6VH~$l>HT=enyF_<28afa^+%zWlLZw)?Bm$H08a5oqR0S zQ=#}ihqJQ(My3~4lOi+*UuaOBrHs5JE)I3LUgJw!Ck!a5mf*&c;YIAiW4e2)L~0aZ zmkP;kYNzux7q+;_R1Q|NorRhbsfl1N>IJ30oc#JjJy(Y=jP?`HDFl2W7WyvPJD7Oc z8~XbREAfsEI<}@#RRu5wlw=lZg!X-wOaym;Lfy5w3}^HP3Hy2uUq5jg=2h!;m1~S7 zf(_TD-)So@J4pD{s8m%-K6>C#k*q?Eq!~%1CvkI&F#lrp)HBq-L36bg0Ge`5kssGr zc;umsdnkRaM#7wpE_7W|3ZRnIucAg2O7XN%t(ER_05!`3Per0R8UU^Br-PA!DL`oM$Iq%?7!!2VE-Monf=~%8HwvII z_t9)r+l~h(*1DnFS71XwH`(i|+mfq`09vbkxv*CH0u%s3TUI`&0wpT@R9ku-!ij0}&NlSF$DzOo(v(;hl=DTL6<4p)zv7sgV z_!oG`3(^YJ;{hL*A|YR7dmG&GR&Ty=mTy`!Y5V-c5jF)Sa&+CKdVwNeup!*m^C-5U z`v6FBfY|0g|ACCVda2%q&K-L9IUcNHRvNv=R7z+w>kQX3Oy?Zj?)zu8l!HrE21JQT zp+p@mO6HwJotD?{RXdX2NN$azJs&S({I3o~YCzP8AmY;@)w6!665h?r_4jj-rV)jg5E3cEnqI7xGE^y;4`3im{(Z@AjDMhHd(fz959om7mLpSA&!J+fz)YOqkzdLEY zSIt4@(RhZkGl5u_50-2@aSlo5hrDU1xXsGf$eCL~QF&*Hg?Kg4@Y=#gvDW^!hv!SLC1%+sBU&+ohjRy96RYTiLp z!)HC^?CCoF>nf3;K{Gii{*vebB-P!C-rBme4*>H9=WLx7ht)%hb+0~~yY3e@Xq+H#L1FGhb0e=)V8a*!3rZe;ja#jD(Kh<>2DQGk;)^L@= zB%E_EI>=YrKlf4gT6;Hj!QDr?89O{5G2O*`R%1MQ^|Wb2HLu$AD_`v4wln3P3ci`& z3p1k0k4FQ9(ib%+(+Bi~#3=i@qi%=O8GpTQat=H|HNX9A{H&Uxux{X%-M;6>fO@Ey zw&m((=;M~Y)eRWBB|k`iX9qu`?ZgM|rw+JgD_jy;Vm^KKS!y684Jy;L?}O)gZI#ph z`>{1(UmY~4LzI{*hTz4X z*mFN)R%@_!xnQg(Fg2L+#PZJBXiU(k$px@S^{xHtPtV6cj9|!y&Ncb?P34 zYWd6bZ87JJFw^3!wSyB$J93}sB*i4#?wxT+z3SS+V=!xEpFwcbCXYSor1@iEa(0fC zcu~>Zo5vEr2A`9*UC84LpCvNx(hXRb4m{1;eN(VQ6fV(j<$^=#7hc3a~PdXn3SM1!q?%V0p8zwm*N|I(1z{LZsH+mIEH zkbi22H&!PG8E8A^1}=C{pDr1G-N_dn4U)0WkjV)}7a=~F_Jw3vCjBJ&twoEMI`~&J zrN?Ap2jyg_`jfuZK0D;1zab*|`Xk+P>{A2p7HZ{|&1%W)aoQ6dS|G4Bi|^=e2a`kX zTvkA^+x8&f#*@Bl>ERM9{bHdW86o&u08J<;sUAh+N9GCy2;;)=J?}MgaXq&NP;ZIU zq%2e}fTv;Os>A$WmTw#T+Cd&E%DH5e$^fK?%=NOBmwyno@NM27zysY>@dF68hw<6r zSLPisCT*RY=}2eD6-=9Mrw1Yz$6eFP@_yh|r0#7rJ8vNIh4#8cKgez)89WAw@8O2pccWltmH4d6#B>$4en9Y*rk|| zcuDyZPqDVRkxV`7s38+!HrB6Q06^wuYSgSj@$BNMQ@H}~E(SzSl9H{|@yaO*S{CGs zs2?4;!+yH`6l3KGQ;rTWCek!n$1EA#8GH;I23u??6xzD5D%1bc7;|oExsPaZ`SiHx zR`rvty*YYCy-5WcK(uZG`*=maXf0W^SMb2^#Ng$VkJ>W1Al_+(A6m9P#Drxcc{Z2ORQ5J6yRHQ*g z>H3k^;*?5B8AwD-{#y*UeACMHL|v3vOnLfACV~ zrP7TN;Ek=zyX$BWkFUx|=Y#9Yd>|^@6}K26G!oaclKVvc9w5m{f@jgh`z1)1&ZP9~ ze@k`QtD=;NI_ic$RR^LOlloMGRJCEM+Uk%SX=ii;VD;I4UNz9fe>sKCMK{KO=O zP?Grwki?y+vVBHJF;aH`ksihjs__aPT%gQw-n5H%LE;-gSeTRXTeiZ!oLO z$W28ws<3^4nAK=I8C{zh|1GFS&Hk3NJT!nDQc9tdk>gIlVd*t!;62m{#JHP%WM=Ie z_H**H6I~lQLB<|%hVJ`{J~Cs^b)l2N2ArCU2Hq2I^6f>&EkN>r-{~%OQl;z}_CZ^_VFfsxx}6j{+=`|w+LJ>>gC zFun`tM|_Z4(8u0Gjq5>n=nl(w#7!r>H#(n4FPN0pxX^k_M27bCeXpBh>@h9Sc;^hU z6K{BVBT~1e$K;vA*sIe17!9}KOIB##`1|(DnEHgLIuEn9It`>#RKv_)@q@f3&uu`_ z#lFS+KxD(B-bRePmga)4mhh}b-<`kxj8hcd^Q-gc)-!g4@)|1-TUYx3lHY6gGiq>L zJEz;Y;l|mEy&su;8z-PJfE9oJfb}mO33KokaOI=M(q6*my~-=!ZqdwvH{>;rYyM3o z_e=*S(F~n$UZEzLY92~htI8P3(Ba?erp&*3+xPI+aQf>B#;NZQ`!^ai&uqd!fK$Nc z(&IPd!w&VbBDk)}n3jz5<;5S1*mXD@mFLk&~YKTuBq>)RkR5$4Jes6M|8-S79^0;L7HQC)28&5$-+trNk zU206UY=z9@z6L=$5Pcyx@+H)FMqqULw^%e z2I%+=uE=}{hPZTReb=fm`D-+jo+&H&r2uk1MS2gP~+~@5Ud~GEaE^*wTGNnQR<3y;;tQ|3>vW;m>5fjf?J6 zvC%?)ZIK_Of)JkT85D?yWoTeSPwX`USY6fnY+QpMMcEcfdLcf6WuGWzy2AFWy-5zK zg$V6cc%p_tD^kgO+|e9S#ip^bb%Z`*-^`VGeX-f}xLaXbw5efI-{~GRzeLlwH**_} zJA>>Vw$EOUDFE86DJrcyZx#Nni@jzfK8973B(lsaEhI{rj2;xu5{*I?;`rp`8obua z#b(~qH$|X2!zOQlV?J=(QV^W(UGI`c1)c&kB+EX~a4b56j+WTgkLrPZ;=R;6S~b2{;d zZR6I>717(q>G{vIGXf=F?f1QZU}HMsE8Vi`f0rCNUn-p5pWD)oqZ52pR-GEEx$6=a zE(jDA5S_Uz_dsrcBtsR23#gLeJMHi{babs~nCVC5 zNxZ<5ySwVAU$nlw>tbI%66w4%E?WQ*QRKrOA3nATwY&F6YcL|tX;eyg)aS!hp&*LE zyd2Z(!yYOA!iY=A!jQtU?4F~HXYowqBu)4RpKMHc_Dd4J=W*CtY(<>y{xyLD8WBi* zlS#jRTd`Qzk;x58?wFz6g7!2pB*88Wf4Ox58Rwu9tt)_%4T-f`gA>9FOSCE}gT?a=O6eQ!8S91Wi&l38? zhXqj&wJ!vEF2Uu1=sL-$;6GTsA#DhHus?Kum8TB7u1Pi%kRi!jhWvDp*K5CF@ACJq zM_5%Cp0Hr`;LV;G5SrX+gL1{pdrUH1vwH}PSp&OKC6i?7h4^w z5%tt#?uK;~wa5h&OPZG5%%jhQueFX!*haaTnn{>NjT-Jxn;}sy2hq@s&#Q3T|2hmW zO+kF}t{yxVYU%sqRRsoh7zWWeRzstAxHytd$oI7j^9k+#*Q4vs`i5ZZH6%w`A)HY1 zYD7D*qs*kIk+n=aUqrplMyYm)yQ05w;kccrL?<7U@ER7o<;G`m~Y}JjD5r`R-VjTP8boLmS1=k|3Ua%#o+IWKxvQaRA5?>nDu}* zDO4$kL>1*~)Mh{aWe_fw@AzS^GUW>T`5M*d*hl*IYf4GB0-9wRTXa22(+i{P{NA&B zNm$qn)x~RmwC$p<>NTh55l>hiae=t?p4QUb*_>j^MRQ-V+%jMCepZ}ZSglOpP1^8Py&`IW=@(KWv8gsT+S!0TIAHoC%e>1jhs~i}8>d|`sRglWx z2pj3yMaMM!zTBC$l!n-Zztcwv0{|#_^JjM#hwhm?vTOD^8{wr^@ZowP2spzAatNF z!q0GJV=Ra?e*b$x9Si-I%YRNIs0|F(65$?um2d0Gf_x6+$FJD!xI&l$i5Xde9lyzB zc6x|nKH@ko)XkgL9+w4<6W6P2#?4Hn!i<>ws;87nlWQ65cYqcANjGn%Cxcc#kZW~^ z8xYTXNqvQM!NWo$HwwcyNE;$Q>YI2wA$}w4!M98uH5(N(G9t^m%v6bzZcnpRv&wx1 zN;yCHO+lCfTDUfnjS1fPOM2-nSZEulQQnYN`^;nqAM3$L$EF*qn$=qbL5aRjc!5wn!Z)=SlBL+;ki{S zfM)K5f12&FDZ~6`u?fXl@@bai>$cGPZl)S-)hA65d5Ol*Bgd2%?OxTfQh`Qy8eVIU z)%^G(y_ituj_|zxls=WuAb?M=V@!A$*UDG;$JtxtC@CIujKLn$=wPS5)+V5CZI2tq zbG2O}8MuBiAU$leA%*OSs`pz4BaJ-!h3`~%Fam~9F-B1Heiy{}B+~sNX?lkHKfuKs z5o`mO4)~oRJRV$i;KL8s>B8R=ho_M3^kZu8FqR+u%%BMW4z5=l0irxn97%j<2UJe( zp5=_ctNBC5o@KKg7C^+RKKJuQXN!`&7S4ctgh4UdQNDl;fh54Ik~N`&dhS~~|F)m~ zY1_ht*0Gj-MR|Bic3xKpwB$ir{#_#}!gKAEYE}@{a;QTfvi4b}zWMgR&&M7hnZxtk z4_HG&>|$Lqg1q<5>hBX>Ug znFg@b_|MlkQxDgi-W}H1Oc2rG-&sSmq)2V73ba$Bb?#wfslz08?wdAXdQvupS<*wqNN;w&TBu+;a$ko>KObFtA+4L*z<)85qS7l9Or|3x}& zJV}xgNiNfuqW&%@nS`zl7uRaTmP`kR2Z@_OMSTloH8)YaApVUu-_yHdAFZ7?Kq3#4 zc{{SC^z#MyW+FA*B_CLeDyIp{`ua*Gp|c67_(u)5%sHkl)Wn`x}o%?O3^G`=lmi|<1!agTjz@yuIYG$#sO6tu;{FC(WX8a zN?VJiR?Ey_wk-pz&m<$7#AKeY%Bv8lmLxpo4rlV>(V}=MrQvi7#9I1f*}*?@hkVAd zlD1<5LNlfL-=&V%1`DZW%6!lrO+QU%4Q`*X=1B{p_$AB=pE=ZP2TXwy3ooZs@ik*H z7J+k}0i%XB!v}-UUI1D~T8v*Q#Pr#mu;5hj?&_-!)^0u3|7t9ME?WtH0%;pSQ#J9pwKJDACPlFp)14 zdp#gw&iU;ekiQW}=LO=ejUltT&P3gZr>K^uqNBgTI&EFIimt^qo!I%H^E*JFI;O9$jvMzSV$%5`(+F*ZwUT)FXB>8wrfox4gnn*=WcRSykS1o!K#Jc&I$ZO1L zqdsMdrEE%r(fX2p(%9jPUZ=g)GM{XNJjzh?e87z&Gu-JXts=K)^MOaUJ}X6zn`Sh- zUjrwK?TR9j{E&!c1>Y&QkOwS!?07i!3qs%!Gt-M7pFJeYj0RJLB!g@vJWPLLo*S&Q zg*`ZNq*U7|O6q)83giFD>YCOX zf9d?({ubSaC-;K(=>==}mi_HI9Ut+R8uoMEKkbQ6W|^@FlNyuASJ6av4)5o7VwTT% zPC=GaSYHoDsarx$yr&X5L;hj5KkK8d*&R~8vuLBvwo%Hr3>;D(rfLdrhp%64v5ifg zO7h0r8L>K~efb$lC%|N`D{%=JoU7*JJiR{S?*E}$Lg(0%Z&Cm!3BKty0S6|v4 z`-m!zc&p<0s0jBDB;n+a3bMGKoaRevF7>cT z{?Nxvf9l`*BRNi*_&Vy&Oi8q%h3;r<%wbIKUQ`~~A?)l^pk)nwvD^}ygCEKy0k`PX+qQU|eoNY+fj>15yi@Vd=AoHan^bbpqV zw#8nQR~9o&+-wm@g&-ji0GJnrWG_@-r^jH4qn?H+xX6m308|}=5G@kbEEx#HfKi0X z8XaoH1rcCLhKTebT`*v;WoiU~zP=hw1OQ)jBZ#=5h9vYgTsXXHa17JrW+)!0g#jaQz>sVnEi%Lu0MsHhTM-+q-a&|zCNu^t zN2ZG9q(TwIi`BriiL@_34N;shm#MBK9FUFwafDibhXd%rV$jRfCyXXTVxXtmexc+l z)35Q*YIHj0IH|U!V7p~lOG3vJ5IybcGk!`FyO*lzJ%|gA#}q&X0|41pu+!SjFS%eu za^(YVs(;Hst^3&G_~t8=7j&GGA-^8iH3x^qqMRRy>NxReNj~+aMcJyEHC|At9=+f; z!hoMTJ$mN!?5wIA=}e8nblyFH-zwv&KnKB^l>pUWc`Oc6Fm7&0#5o%h0gJt(tQ0scp{*u~mKH!o z#gpvUQ6xYmDnfqxI-*fSv;I~?QUJg+Z? z>2sro(9@C_$rSLLc(GXx0QoXDf&o1G0x`u=)8c?cD3JDo(ivm)_WAkf-1&Q?6Audp zcuqtI;l_H2O=d*2%InglM8LK)j{tX+8wrumRrgzYg0WquCl)6)h&@g=&=OLQKF5|k zQFgNiFFJS9VWy<35tf)&$nL&G$F{oaKC@@jiNt9d5@Ncx?dwM!8XRzuukAgZUO<%mDV4`;Z_V|%=NzGHunagVJISNxS#09=yUW>-E^sc1e@ zt>C#8cfZdCc=EaxOa=-%Gc5ld(fx$AB+iVYfNc*p)GGjwQIB0+H~0+Wt}6K1Nb{Ov zER9OtYo15@Pn=S-2dw;*x$!fzt51Dscu`xs6Mg|@rH7(1G&`@gSGB9k_vIT}GO&lb zICDNKTorJI4;+Lmp2NX}UOABg9bXG*$&}9TT=bY3$k;XKMLq-*fc`}i6UZIrm$jMCRy)u5 zcuIsCHVMR>-Jha5Ww@$GVps;8D?<u73_!J-W87eSt<5-{<=6aof$ZN3!S%=183hsMpL^JY&YB8q zXlxg48gPytH1z<}XgM;u5IS&=CQq!XVRxWK1T%V8dcJya4f0j zA5G!Q6td9`RfU}NKG7gu&opOZ2vF=;#5;5fI%klpcEws0Q&UAV#W2ItQl)>FM(jl| z;&R;A4js~auyT?X@*?7*?3;+yQhz!spKUsBNcYif?_BKn$ZD+4^GaiWin$qOH~QLQ z9Db2#{fp+~&A89YZ(M1HOnBzJLH>|4J{M|OJftKz$C3|hID`}^4dc=5+16;9X8Sa2GokV;J0eT@TJ;QEZKp$*Mo`}}-^SeI1+$NOPV7=$ z@e_iog|cmZ`?!W`t|t}KnBvbQ@b{acwA{RYp^X~h34{UEC2DI3D(!a&qS;aj-G;&q z1)He1a&vc3TNxLJI!*eGvvA<0undIXKeGaWU{sfjIVTH&9SHf@Z4XRj0pJb9>XLD- zXu)(MD0#_=2o8Wy_O!`^Kg2-=+73j-+u{y{Nx^6?JcNPDum%*c*pdtqAx$FGIUxW^ zV4_MA5(F36OnOEo^1!o|e)myxfrP4@Rg7&L%RQQ}+mWHBbFTN%%pc9{cN`5r3gV5sDSmNn*dXwbI_;QidLe z?l)>+EPf}}m0*pNZ0iDY!|Q{x)#BBYsQi+aj@RCq_q_BF5+_s9zHp$sS@PtuseqAh z?k7%_Q-1BDr66Tc?H5!F{jtsyYJ~ky6zoL2igd2i{$ww5@0WhG10RFv&Ao9c48Q<@ zMELeSc`3FB03sn2(0bwo3uENZ_Q;$lQ%f8?ll7^PNvngV5DxM#Za4fZp}z)K51e!r zvw0A&-Js>I7MFoZ%AsuPe7eQ>>eG=l7yESh4FL@IB*dQSy{0O?>4yKg*6fza<18+QszQI(S+w_5Dz zuo#FU2@4+8&3QC?pIh-zG7ZbpXL35s6jlO2yT@4zY$n!8eCda{9;ZE6K7!*w)29AT z93|uvA?Y|zlLOKW+rdeWqzDjkv&}7Hthdo3?j2Kj?yzX?u@Qghnw5zv^om*x+$?+D zGX*qAClQuoDCiB!uJ#tT&liILfH2Fz-r%t>9l5g^SRf9^D-s4x#*;A4{b-a>b=pm! zHt-mcsRKj25^Ci~$VNU0#p?iqO2ysG_yHzCIDoIeOVh{-h?ZCIh?({I8=7)kI>AC3NKGUUPefU4H7OiQ(06sw7L zod-=pTmq5z=`3E&Ye`O@^AT&5t&z*SCjG7sjGdYIHAT9~+=yCFneW-AF0`#C*P|^M zkS%t=;+>kN%-VW~6`&6Yk#TPuEI<`HAi7ACA2~EgrDHj+STiieRRy4jEdpP`5EJPG zHUR;Cth7SRP{qRc2EQe6nXqN`J)JHckc5tCo!;vyswN>8X3SE{i1nwqof*s`<2rhjRkM$ z>Bpb7Fn-7v59!$A@AC3$e8u9SA?zu|jW?7LIU{nVwrCz5P5TSx^}-{cC+Ba=sW6W^ zL1yfe-3yofaYvT1a*!o-C!MH97I(zRyE%T(c^^|s;vw_ zDbE| za_#@};Av_K@8x9=AcgoBC8;kll+Inv}VCi5g zS{pX6dyqO#K6#Aa;uw?brAB^>S9H7ZyHoc4>llyMU|IS0)%m>!0%!#fmZEvvdEn`l=i}d?{)GF>>$L?0IDt>y4jyd%)SJ8 zT+Z43H!Coaw08Yx*;l!AJ%A+XE3MQvr|Am{pstAzO-o#$y%4&xwwNuzOs#_un&I0y zwB^ISslI2B@3rIQEO;YvApq5q%s;C8JW^ZRstEk+4I%3FhLSSsKP!Y_isz>pBZHf? zAzRebE1#=37MHJvhw^K1iHkcP&s4lPg`LNsq*A!C3Y6DM!j^dX_(3YnfLj10Ay+DH*q@${BYwdg6mex^-rn^El|!50I>|72-p4&3 zz8xy$o6np!E0npxP)QPuQ((N8619ghDolY~`7ZEB-^yJZlvPZP&!y&>!=d>7=VRbV z1;(`MXxdHD$`qEM$<$6ffV|43&U^*UhbJI_HU<1t`~sfa$ats%XD&CiSBIJG0mOOJ zPbJ2&$2M#8NrqBgAUtAJh7q(Fh{UP}70AOO+2)uSDKY?GoI$FbA_y49=X}9O?E*i4 z26nCnowr3sG)ml>li8nSSVu%%*6<4O2{WzN;ghLmot)C4G=Jw3sGuhIt7Vae)M;2K zaM-V(+HV;e!@|UVGdJAOiy!e*|M7xy>6EgVY}i<>gyn2zzZHJ~z?Lx)aKpj8zc^gH zHDiA=L(@~ixL-lKMWLHXf~VKZ)IGqZ2+0$s1?)o~R69Rv6X5D&sw=iP_hoKq$@)_O z|0ctD1HodijBez=Bc^>Pk14feMmw>dsVz2@E0-E62;IT>mz)N3P^HNMp;R(4LhkuD zGuUMdffu)h1KW@C;e5fLS~-F_fUH2&%P?1TuRy>du!oZsgKRX4v2s3i1iiT5g=wAuo1(u6b9@#3co0g_a4({oB2)e40Qyo4z z1dxgX9ouykJ9zqx+Fnn)UT;5d1RdL23~x)`4J2+B8Cpycp0H2F^>S7G0N3 z5=|T4wDr=p4YzV7OoF5U)IgauJtHayN1Is%iO5E3sTriBe`Xt#dU`_)BM>5qDSa&@ zkB^{Q?PO9_$ZQVdhFOa@A{1`|iYIgcg_ie<-9b8t*Z@GWK8Tx9J0|WWmk=VBmW-6b zQE9~^Kh!eSp9#E9FCTBUG`55jF|xL6Fy2F;guJ6ZL8R=^D5j~BD;Mw*~x^cnOJ1WK-X zo6n_~@pG9AKDrCL?Q>i85`rE4{#xXw5H8C5s%t+g3Ss5*gUE5 zt5@K;+@32{k6++m8R|@{)aT#ZB~0rm0O3EHCTUdF41yJ zwfUd-GC1{>z);ChVt*$4jh``J7H%_$1paA=Pc)!XnuPXr=u$gX(@ui4vTRJ0NVYyT zf2y5x{6HghR46WBTo%Zt-$Mj*tyP&57|LzGZkNr6msMy~lCe30Bpv?bmc&4uaur~t zmgj3Q?omRo3a~*Y$mx{EWhiS$DB&-qczo5^hAem7!gAs88+adK3@^-cTUI?rh`ckd zKctcKKYScuj0oDz`0XY2#a@{P$-W6{yt4xn2^DDkp}cSH%Ds9^icbO)7Hr}OgINR2 z_iU915x2ovN;MWgtz~`$cwZ7vBogrfxx{}?u2FurxLhKT0NQtYCT&Fud0z!{2N}&P zbf=0}1c26MfLml533=$QwxDxbt%fXP?1^_{F5^NbJlIFbr%gu1&&OlhXB!|a)FK$? zB^aZVQZOrQwt)H*EygV`8o0&4(@#?@uSNxdqfV}i)&XrC#I9SFlobPqWiySbWSA*P zG5k{~Op&oo{AnLkq@M<)O7s|~^)CtZ^tsf9W1aZFGGHSHT%`o*0>#J!zeK){)CPcMxrHoY-5!#hhjzk%T46$yqFl&}_>e$H z__MQOnVRm)Fnt51n~vpGv7B-9iV+;I)`1uGClg$%m|8-`e}aO{Vma1YN#@f~%Sc3O zsJc`Uu-!^|a}8i0Do&Hv@gF;2tw0gFsNnnRzSd)=&;Y6RKMJ9Npum;_7y?ont7lsE zwmToVpvVDr0PvF0gW=*h3e0x&?XzBZOpCaqv$8Y+1fZuDCeprKz1I;Bheb8RnsV)4 z`l=_Y(etap>3d_EWDy#obqcR8njf&F<@eU*!=mk?C4hZIPbbTMt{Lv|_qC!tQ>vex zV%y`S3s*}mBE+v>756Hn-p_>>80kOFr#^pwFM?mOkm4F`!zA4@u;TodB|I&hN@n=W zRYD7OAw@$Js1(7h_;^(VDr;fHEUwZIZ#)D7zK?3-)P7hoO0KkK-YMQH{C;DLHK5u-z5C_u#FSic!?4IX zS+&zAeIU7kY`7BV`(GED;X9#pn?X%cLU!uP&SCIg>mcL&6$ntMIj#1fj>)f$=X`Ru z5GS291wF52I;YGv`^Yd330X4Cmx`csS_Vz&=O9&Tsz~OkB96}l5bN+jnicm~40mTC zhhH%>iH}1D+}v)k32Oh*4i9NRHd~L-@4zGHHyXCwMtYR^sP*Uq_Y<^;lL{cW%U( z@665G6S+@nVGH&^hnByyiytiXDRV?t=FgOmg@ACkyDMs|b6KyM#y|C#s7m_mm*PlFY+J{UNg-DC^2e7UuOzXs}J49ME{=N4|-?}yTg!dL14Ez{qs4XrhP z^YV%sl`L(-(kJ8!eZ+Dney;N?!xJ-#!S3AL>qW*PxR)k3EQeyxH{aN|9{HEBGr4M_ zB_RY~kNL1-rWI%KPR3n(!R`&yO~fjWpOI!!eMbgf{}<_=$A3&_JRxp;GUKalowu!A z@sebW(hRw<_E?gg>XhQ}z4h0p{JoGbXf~B)w&0IXD780ao` z)>O})*b(sAuf6;5D1XkjE3yeIQ+xg6`z7N`f7+ipp6(~ge+`91L2G6RO7O}_gAkBV zk+_gYwUDRI>@^S2KT6j_;;e3lFJ)=}8~ob`ZK@pfH+fk`nKxG!Zjnb0EPot)v(;f_ zCKN;EzgFs zXOe8Y{DlnZ+PfCwW`9@;SHC~JnUvyw?`PcYoqf#i@IkHR?vHrsv*d^0c7t>GEA~>J zo!z;Dw!CcT-6aQeo@HD7DtgNlj$a=~Zo9n@tfUAAZyIKi8zd!vJe`d~a%w?|+JUh3&&8+eX zwe(c*;sXu3@RiVXm(2QSp@L>ZtrErvYsM&QBU|5;`d8;)7*Fue?9I4jTd)87dhw0+ z_L=PhqvpiFgXCyfEEmBL}QhRBygTx(nvsYW#&x^~p<8=i&i9ocYNN)a{Zl?Z-+}pPf+u?s0>EjSm0V}gFgMZ`k~^A z1;;mL!Kkh!|1Y~glp_y5c@N9GE3OsC<(oO5&W~>zm+g2B?MrY~cw5wezq$WHaC@@a zU@IOfgX<@Z8feswFPYKw_As?*Lw9uOlc)QsGHT^an(H!K zl#B4(7D$kg%f(|yxeaiR7V?pqtX0jJ8k+hhR`jm zaPcGjcu2wa*7UQH7r%9@?mz!V$45hu^3B?&isH|KTkSDHeNDB$kB^!vLoyN!MWp_kC@w7# zjGCJuH#{vJ{gLargINyYbW*kTUtY+tuFzbqevB9JT@iVu_ftZWpXmk9!y(R5Ud|sq zNDB?`>Gol*Va^6t+*ST}A_CV;UJ}}{C%I#qB7hCsWZvkk>4as+X2~x(hD;uJAA%+_ zQY5GED%%u&?A%~^aMy1!-YINLgW1$rTE0}}hLOSKX$QRnCRJdb&(nEj-mA(6mF{s- zUx^O#tK(Jkl`U)0F;^9ryVkv%YUe7B*BTk+Yl?V6eS`G+O-SRXcvJ3S?zmv52|?q7 zG1-Z-$<1p*`I8 zp^IbeIHJ1ry=qGe3^ypPlP0@(jf+bw`Gm|yJJ!om0%MR{?KKdl$D2N=ZO)ITEZC{;i*=k z>HpEocoL*x0Sst{5@5+-Q5ESG%TW#MT?PvVJoQ~`9rI959)c!9h{Lg>sdoE)d?%uuZ&-u zSX0!X6$%{T5hkeNA0rhHlYFcq>^KLP{HRE7bz>awfTBY{WCLQD$Jinwhsd;| z75q}$yn2{A-LNG`__|q-bixyV2`NwzIiV8l(T^CI;FHrr3neny5O$D?0``d3FaMLp zNY6>+99p!86*#5LRHct8AR=Txx<<`pbt50?NMu2_5IWMqizIGL$&Fg#F_=8ib>Hg= ze)6ctajYN&GkAp8uCft+0??oR1n55n8c>1`)Sv}L=s^{lP=+qlp$&!TLnRtficZv_ zpoj-3Jhm28tUw1dV1h3r>P(A5q@pG*DbrG_$(1(bq$&+)LD0d-bPSUr>@Y$-LqLI$ z5+tE09VtvD3e=$rwV^~ks!<(^REN&g8+Td?JJNv)0eqARju;3+&#_gmc9p9Z<)>H0 z`qhe#)vRCzpjpL=R<*9RtZnToTj5I9mbQbYj%-LI-gHV>!HR7%!_)RU!~ZMvm?lW# zgNSB=umc1rKn8M%hb6=jk9bVBvXr%KW-+_j%XU_?p5^RkMH^bug4VR7J#A@GyIR$@ zHnp#1Eo@yITiUAD5|)T;D;$x#Yf%CPCul4cCW~9j7T37PMQ(DHyIkfr*SXJyZgizP zUFufXy3R$daU=88a597@iw&-Eaa&v2mY2Neoo#x}t6uc3*S+n9FMCT%Sy;h@aB2v` z5P;wS84UNm^8Igs<11hQ57@v3MlgXpTinR-#ij&-jAUR`lGB04ZMu2M4{s(K%lzm* zJQJ4@RAK@XbYvcp7#502saF+ugT>ug@rhyVVj0J{#V@w;jB!lk8~@js$2#`$j)fd# zBKO$HKt6JgmHgu+4>`$9hO(29Jmn@AdCFUmgS*nx-GzW?fsUw$9JVk{GDpHAWX=za zx4_~Px0%gsMsu9gjAk*v+0A#BbDq;&=R4b3uX@%qpZ$#IITu>ag6=b+0bOWB5BkrB zhV(cao#;2~Sj_c^gk)0U6!%bq5{@WwWFUj$ju`sUi$*o1#T;o?r+Uq$c6F;69cxRazR(s63$L}21+N1$R0mOycoWh|^0Guz5lMzOP_{bOlUnaQu7cC(fJ zWNml*+1ri`wZ$!EC1X3>-sZNIt6gnqBl%6RVpT+_ckFQ+iEr+?sWsY)}*F5GlPaDKdVuZeM8XcYhdOi})af1WBGWn=a(pw&J zgEPF~PTxtxp>FYqS6%7#k$TpjF7=CB-Rnx%depc6^sZn1>+l-8*wv2ojh`LtX@`2; z%kK87hdu6GZ@bx*J{ig|z2hdy)l+5ybQ5@@uRGKU(K~($PcYu`jfZ^N8m@T18$6Zr zdc5N&U-^V*JoAu$yyOc``OYW&@^%A#<2PS=&OiL~pZ^zq;W_X3RK8yIqn~~0U7vc` z#|rnX@BGg3suXto9O(Y=$0zz`(C5i~&%JV6XZ z!4*`&7W_aL6hRhz!5NG}7(~F9;4+7hDoT)v?9sp*)RP9Jn;|5^BD9qSyg(!@!X;$F zBxFD*oIoa&LMV*D1(d=mv_c@P!YgdTEZo8<`_BwOhyr_LR|^)J8q&iw6^@QYxp$ zySE=ooj8Ie9?1z0GopFYBzuvER+I;+O8-a?@sMJ23~-VMa5@KtR7i;|ripAwhJ>Vx zq)3gN$c@a%h}=k!Tu71pNQ^8=izLa497&X9$&>6zljO*dR7scg$eB#ZmW;`o+)16J zNuSI~nEXkh%*llGC#bjzJW0rnxC)0X2!@QvsH`af@{q0CNReDhj=ajM+{lUa%C6K& ztPIJDl*+P%%CUq=u}sRZWJ|D2ONboHvoy=Oq{z2S%C&UMytK=x+{w9=OOULozyuMJ zoXDuq$fkrysVdBdB+I5WO2>3asJzO_ET+e_%%=RvvP??LWK7At%*QMy$t+CDgv`$z zNzLR-qwLJoEX}42O}-q>(X7nYeE-bM^vs4-&4g@B)6~tzj7`j3%CHDb!Q?8K7)+R) z&BO$en%XMkbk5-{%zipbfLhM#Y)`s+jNW{cUZ4Pk#DN>+y+3w4)#a6B0S1#~RHcVMUZ=rj%^2@xFsR4h4@0a|#noKZ z)m=RwA(1eBq%hEk56)i){X&v++3DOCYqs7{+)mk&fGA#72VNQnil<9%a{|*2-wxR zmk$NV5CuTemH*w@rCn(Oi8XqelIS7*b61*aCmjh!?*UpMafjM9-s45yE4hzTN}B|V znPKJG#C_d>ypK;v-s{EQ>;(|X*a_5igv)hWflVEPwGlk5qsF_B;?>^uW#9Hi44r`$ z)O{nGSRfDWSxr^kgEfJE83*_E-~R>Ruwa>LB~qJMAiEvF->nt*FoKP>42f%*0G8kh zreKH&36o7A*Rj}_;8bmeK;car`>5a%CgBqH7oF&pIq3{{ebx6^V4p>gl7N>Irr{d? z--z?xS|rwCYbAEN6MVUq1{U6tXgnJ>;v>FZ4ga|mQY9^^ts|uLuTYeZsbLFc4bwDE=zkXIfF|gH zHvi~?M(Bf9=!9nIg?8wMhUkZu=!mB1iMHs9#^{UI=#1v*jrQn{2I-F$>5wMrkv8d) zM(LAQ>6B*am3HZthUu4<>3pVVc`h#E8Wzxb6L&cq%2;ArF;+v(H~7$8nOKj-UAS>T z1rZgJoQ{WXpe*7-u4%4ksa6DKt@i4!2J5dD>#!#4u{P_nM(eXy>$GO; zwRY>ahU>SM>$s-txwh-N#_PM*>%8Xcz4q(A2JF8U?7$}M!8Yu|M(o2@?8Ij5#dd70 zPOfgSgq$9dj^I~x<%yF8yp=FqdjVs%fZ~57#CC{bwCjl_4b>sZX;=`i$a3xLg8%K< zmhIW5?b^2O+s5tO*6rQq?cVn7-v;jB7VhCD?&3D?<3{e}R_^64ZqV7|Zh!^Iz-Bc% zpv;yRB2^Csl$(BJU6o~v-xX~KE{WvxuwV(2rk3uUhHiI$>Zc|y+>&hfmhacbt@n;< z`o3@bc5VHx@B7|w|L$-6=5PG|Zvh8z0uONe9`FS}a0WN<2UqY0mv9Kr?+K4^3NP>r z*YFC*@C4`Z4bSio7x54$aStzX1V?cP2XPZ;@f5f45pQu7hjAD0a2j868=r9*KXDz8 z@fY85AMf!R=W!hWaUlnCA`kK#AMzzXawa$OCs*<&mvSi2@hOjTDlhUYzyI;4o`-mt z2WuV{^6&_L6`htr8_kvvIL2J@_3obC;18~wUU?ak;0b>5iCQvO7L{(uplr#G?sc9A zSfFe{=kr1rboGV|Lf2`~QFQfgbUuG{Mn`l>FLX*@bm*RROs{lJzw}7wbVtv0PZ#x2 zC-qGqbyF|(PEU1ENA*@$bysKgSC{ozr*%kQbz6sZT%UDauXRiB^-t&ZVE1)l2lin% z_F_l&Q{VMtSN30Tc4B{aX1{f5&vj~F_GF)SY_E20zxHV7c4yCaZx{D)C--e1cXKcI zZcle`NB4GDcXwy^cbE4`w}d_4X)=G2SLx;)-jTQ247eG#{ZrWmI{#qz_(SoQVTx-R z^A1%&sq72QY4R{J>6Z9C9~RZdczeJ2jNf>RuWXO6?2GSsk^gv-5BZGe_>xC?kWcxO zw|AC@d6RGXnUDFEm-(81`J2~yo9FqQ@A;Acd6oD1p$B@R7y6<{`lDBRmrr`8UwWF~ zd82pwsfYTYr+S=k`l^?DtW}{Gw|(Td z{_J;t?B{*z_kQgU|L*60=r4cpKmYCje)Sjs^dEooU;p<<|M++R`ltWW=>W*u@ z*e6?+%#B;1ZP@~E$DWP5>(<`8>jCd7ymxKlzLCpT9vymf=*N@So?hJf_36uDl%?|yy!@x!y<-=5yS`uyhirzf3%>~(kFd-{nNAb!l%r{IDA zB{<)J4NA!1dHe}zA%GQvMBlO95&cR8g&If6ilBJ8P z#F95vc@vWfZob)0O{49UQ^h|am6@JN+5fo{o=WwEr)Yypg_^h(M=c4^wU!-4fWDaS50-& zTT7j_*IZ)_cGO{aE%w!8qkXp8R95_ciL@#4fot`%e^+`fHII3e(C_z2r$upg6)h z>yY83lTJM8gp^P3Y^)idxcdp3QgJ#`Q|l0yEYrzTvFXj44L|IS>Zr@qeDe-B3_VQ8 zSO0LE*;k+Z^4@pP{q_!TFTVBRlmB15_UDhUeEHP3zrOeHE02Et@zXEA`SYu9zy9g7 zFM#|L;Qq3gKmYmffbmOU{}zb91`-f};B%n$6c|DGL2!Z<%wPc}*und4@Phxtpa>aQ z!Uvu(gc@9-0XYai6@GAp-;1FMS@^;M+7N^|q#+7(C_@YS5Qs4p;tgAv!W|Ydi6r!4 z4S5JdCH~NbIy52^d+0t!S$2|?pETty z|M<#P^0Jk_q@^xxDa=ad5|+V~8%tbO2nW`)$G%1o#0R#TM3 zRAxAF`AuU+^P0uXrZ}C+&0b0qo6FSZIG@?gc&>Av?K~$t%_+}vdh?(6R3|wHx=nBz zw4U!gCPD29&xS5Eod-oHJ>7}WhfcJg0nH~s@mWxeD)gcZ&8R;8$=~k>@3C;pp+3am_egaesZVI;AxCN2~C`6BC$9g^(HTM6DXGI)Tcr%t70{)THPvFyZ`FduYxtKVjU}4%WBrMqBX5*T`ODL>ejcyRjf%ZO`J$0MvK*s zGd|^M8ZTqUq4w@~M2%zX1SLF~7S||s&5gt-u$KWqM zxHR&GaDylIMgIvORl@X*@LVnI6b3KYix`H}hH1*-5_j0dB2ICNOAKNZyZFN^hOvxe z?BNi%xW*)wagIa$VjjoX$2-PxkVSmsA+OlTBR(>SmCWKIpBTtG7BZ8Utl}RNdCE?v zv5={3ZR6JKX?Zx4@4aaCs9P;r=eTuoK>IexEzv|2DY8BOdLC zOPt|zJvhcMZgFrAeBla*IKDkza*$J8F)Pxhs$4(+aQou**N z`md)RcByNf>{gGl+Q*)3wBOn5TsM2$>HhYt$NlVhzxv(Fp7y@4UB`9*yNdmu_rV_? z@c(WveBgzQc)l}!@l}`n*XOv)t~>}Ujf>m`jKA)&L0CRpacFN1QOr_PGAILpaAZl z1ajd2@t*;9;0E5r0RrF!qTdKsU;1bec5mMk2HenRP9~5dJ6DlDUCZH9zU=>c`6-r?i zf?-_&g;327tl^i(02mwb&Su;c@bT616-68Bm&n9g$jF@RAYa7{MP=|I#?;{%2?d`B zUpnyD@ZpIe%3K)<;$973QVhk%WX66uB7XrEV3`pm7R4i8q9g*MAy(ohMxxA3;!iLl z$B1GbW}+#EA|$F}DT3lAT4Ex4Vk638DqSHnTBRTqGJ_2Mo3M4uPq%aO-FPB7zLa;9g70+)o}~OSX~m1r_pn2KvRCsO_HbREB31AFUbPQbHe4 zvgA?(Ra819QW~GpF(p+D^u4P;@W?lN_WB(eaUZ!PXDkfJF zCSJ1TVrFJyZYE|{re->3XEvr?k|tyx=4npmV1}k=j%I6?W@M`7W&WjC#%5~5CTddV zTw3O5)@ES(rexBla0cgW7H4j*CTAk&a2n@p@}_8-=5ikAbGl}9Qs-^%CSdlab807a z%4Tj#My!?5Qskk4iHyg5M$lD^snw*;1=y--3}6W*84P}8I6o7Bnwlw=qA8KqD3r1(oVsb67O9OkDVg4>oIa_H;^~|Ms-JRcoqB1XZfTaj z>7nZBl`<-wE~=U~DwyUer1Gdw254Z-;qE}9saaxs_7@;xhECvNBHqb(ma6U*WnP{q zPaNp0h9y$YPD|G3@r4ns!YZp`s_gJ*rfy{$^=hyFDz7@IuzYqCnK@eyl&I;*uZE4EfEt!`_yhRm`;>z{<{wEs41xAxq(lIvvx>$#SzwvMZ> znk%=ytGC9hvBE30)@!=nYqr{}zOw7Jf@{F4tGwo`yAo`_qAR&7?7lKAzn1W^PX zox~@o>g=lV7qQYBFJ{am`V}wkRnAtTs_Dsl%HmELVrDQRd~Pacn9!xk&f^FbNZs@LV?G`TW;_dD#uI$?G z<-+do>aOKd?(p93>AG&}&MxuxuJOKZ^Cs``-XbElq13(_)c#b)=xq1y$sh{u)Si*3 zYON`%(I3*utA#I4PR9A(oW{6nBD$~qnqtkqZ=U2=Fv{Wl#^kE)FZqT{|LX52^6zI1 z@EH}bsnRb3=Sct?@Fo85PTkG}FYxk7uwU`q|K_9vE3gJ9a0U}F08elShwuiEFbFfS z31hJTmhcC&a0ugw&CuMvRG?Ozfk8?GnvpK8tGgGrO6Ei!*GcqspFw?Uz zOEWXqb3SWxIIr_N|MEXKb3nWEK-=>)8#F(6b34Z~Kp(U|! z0n_AAS&U8#H7D{kATRJCj%uk|F#TF$Q7iQ@b}F_m_3|~ftM&9zNA*){H7ElWOJ21c zB6U!g+E7=uR~t20XZ29~G*MgiSwl5YOSPynbzhnFR@X0F+x1$PwV!Nm-bLIc2ZY1Rg<=2vvz1ZHf*c5Y#(-Oi#2Lnwo}jcY140NUv^&?HeSEB zNP9+34{g|*baOlRb3-@VM)!16cXeC$bz^sSYxj0@cXxaDcY}9$i}!ewcX^xld1p5} zq=R~+cYC|{d&75p%lCZKcYWLUedBk2>-T>1cYphLCPVEA|I{b58hk!7EI#roOSgho zveEWbO4Bm?0waU()lI#j_F{N1GBYl-=X#p*hdUyKb8~}R_=1~wgVW-MGx&O5IEuTt zHL7@o+w6?XIEZWbK>vSuiPw0B!#Iv>ua4Vze1>@6Qh0~AxRAeiC&qY=(|C}7ZI6$5 zd;&R-Ke>|oIEgnol}opkM|p*3`HNS1ieI^ue>swyIhR{AmV3CCqqvBtIhn6Hm~Xk5 zce#IVtC?9BxL@$~Q~W ziGi>1CI@hx?3bm(XH6$}p46PByLC(UFH+Dn_Fg)F;Ve(2`p|+hQp9hn4;6sb@LF@Q zBNwty&H4n_`ly>Ku8**;EBA~KyQ%}b?db5UZ@R4KILKeAN#j2{J*C=!h1WxpS#32e78Tm#Yeos1AMht ze7|43$4@-SZ@kENJOdxR$(K9CzdOUjw!^nP$G<$r$GpbRJj$;&#@vJxX||1 zrbqL|3_8ciHP5}YC)4CJmt)?VV*c*VUcJ1WGorGmIVV^0(=NT%|1H*YxYzp>*KfUo zUwwgRJ%f|I#)y3^g1yWy(wot;tRgrWB%kj ze&vfk;gi1VgFZHLzUJaR?3;ewk9g`ge(bw_>tDX-cm3ll{^-~K?%)3GFK+RF{_*>M z=SR5EYI@TqHwBk(lYjTl<31yvqNGzjZolvPrctNj_5jDb1J}t-Gwse@A}rQ+;ok68 zMsZFKSj_^m`#UlGAF)`|e@^o3`|~tF7@?F-Ai;qGjif_okYKuY1``fUN9o-`iwG%U zOjwZPMTHC#K14V%-NcF@Gp5vt5@o`L934U=Y0@G@l`2_wbO|!%NQo3{YP`8IsK=KF zd;eyf3AE)&WT9oY5qB7AY1xvFj z*{yJSeqDO?V%EE7^QsNY*QQ;wMg#jC%+~K=yi*0!9Xs?d*Thv9*QM+jFl5D&`x<`R z8L8g2npbkR>=`rY!kb5@j5+Y+Pn+)?zAIRgcW>Xnfd>~ZarViR3){VGM+v#WcFt2~ zM28U_#pMETGN+VsVRi4(1tPB)ej;{^;I~6}NGbVp?aA4r@6H|Qd4Uz5Gq=yY{C4FN ztCLTmf!JFQyZHbNZ@-12`%gOotDESd>$XEszYERdufc~N%+SIKqqA^24AavPJO2j* z^l(544Xkj*3rAFOLjX(U?nMv}d~w7WOJwjw4pZ#$#uoXD5XJ@jvyMgx3B=JwBX>k{ z#twxv(#awTj8ecUgS62~B1Kei%O96i@k+JGPJQIa-P9gg=6Vf;(71T#U%dGO!95Y>%&qfXX zFwan>B-KwuG0k#PMme>U&YSWR6E_0q!iXW^c(TmNR!jmh2r z;Dr#}YrA7tp$PI+UY=_MLv zjjP-_X@84mT4r^1ei&q&fvy^9ntNVa;igG`+UlEs_BQC5we9-qvg37n=(N2X5XG2w zEiNoy@%Gg=+zJ|~x_7BPs-OU?dv#O6kNuV|-zYMv*vAJ%*4us=q}*OC|0`)Xk{YMz zS$0<*)Z%jadz{!2fD{XIOO5q2+HT z-E-#)_RtR}es0s#o$o%)iCew4&tnJD-|Q2I{Uhye&;4%d!*VXS-yg-u^+a1IcJAXd z!`-6g*~k9%?N67!@w%u1DV&K(G_nY@LQbn z1Q@6G0q}qBTaNxxS3S;M?|=7$p6m+O!FJhhI|$SrZ+Hhm^d%00^(!F-$A>(LU=Vs5 zv>y&n_`%tQka2X`pb4EP#1s~gg|w-j0?UUe-8e9P!Qu7)-gOE6#tM=Ah*J6QOJ(x*-;%4 zshm9aaUd&v+~7VkIzZB~M|E_WbeKcOJ!(>pkp$hfuBDQ8(Gej*^5Pu(ct}2$s9YHe z57p$=M}*`@jxa*x92I%UMtUqio|Gi5D9Ig5^2i9@;p7}SxvpP=QdzT92q`h?B}AsO zkE>jpv8V$}V#zWiw0z|u_n1pY+G~4|tl1RR7tB;%vY45?B^{@!vt?3Ea@~AptxWk$ zRAy3@Bf6$5!Pl|&aMK9h)DAckSw~%x^O0~o=Oo>;PGTDKoynBvC+XQtdm^)xRf;Db ztLaa&VUs=u8)znH>6~w-GNFsiuG z?i8tY{sYhy=Bzs^-41$mwL+`RM0H~vj&VYx9cuZIpCA0F91*F>V%E_SdE6r&H)%}j zc=dEjWRG_W%A7sEbdLHlYaZKC*1YDitmx<~Sn0~oYI2K`gMH^&<$6qolGU$#&7*V> z>5#b2b)O|Os$v7{ow9DWv3+$cTn~C3iqZ#{Z1pNd>&Q=I&XKdNJ?mFPyHC?Pq_FN( z9wmEPuk!1%@60T7T-)2v!sw;#L?&sY7hTk@cC~v=?rVwa$2~%) zw6rB89dC=>#O{`{eeEk`=NR0sqO@VfrL1<5+y7bln)SRpYVK&i8Qs9;7M|4Y>UH({ zT1HlvyYH$kGQ)e=@t&2pzCG_))B7CZve&Z6v@jx%D__^r_p$b^t8)*W$^Gtkx~l!J zh8v690e7{)_&P9naf`<1T;DSH!}tyDh)?TI{&pC! zcy)4JqG~6aeHUS(pb`xzU4Ei zqte3t_0ehWGj=&mV-CO5T7d4Xpi%wl&;QaG(ehPvEa4jCNJpB%lI}BOV~lC;XgVXI z26dkct!M1s)zYOF=Be*oX|%37&q2O*dSR^}SwkAlwYK&xEsaNAi|IL=c5;k89c)5> zd)brrGg(Z%SyU^V&%R}~vn{>oZcF>o@0@eBDShoVV|UvZnzs>rt>*xX8{6b=_p@s? zlysXp+2d}vuWO9rS8p@c_1@#X?X7QxvYX#L9?`s4>ztK!o0I#sY@B%4kc414I16MC z(%=)tW}o)i${x610W9%QCmP#zwspgC&Ed_qmgs!-`JiuZT{GKx&`M9VUI9$>WD7dY z+17KxalLMw4_)e>KKj?2-t=r&egD!$cf{Fo?rNy3{o+WM^S+(V_P7tdvuL+7)l+PB zhwodjT0cA2>yCDyuU+d*Pj#8kymq?(J?&(Vd*RiMccx$W=*gA(#qmyfi*vm14QKr4 zx9)YqYaa5yUVGl_zV*hV{_%rfdeV`u^VpkR^>@EH={vpm&bR&Zf)D+zM<4dm3w+S1 zU%cR-K6~LS{_R1ZJL{t!c+B5k__@b=iv5oKt^;4}%WwPP*^cm-%u6_qguz2vEZeumsD>0uS)!ijUQfFUSVa!B9*C zGcb=du>ao8@FH;ad`|-9ivm#)18cCXK%oN-?*p~(_W*AM?N11qa0V5S0o@JatV;=z zaK5ff1{H7y`Onre?)mC3=VGt|XAlS%PzZ^z>5MQ52XF@?&;(P^3Ez;hRxr<65CX5u z*|3lX%Mc3LtotIc{;aSE#qa{PumsPr&eBlz{!RpSkOZ4B0cQ{j9gy6RjtUnM#qhAP zvM>nw(BKpg-T<+;CU6kZfebfr2tBI^^X>>QF$o)S3EvPBpHKzytN|M@>UIzY|B&)1 z&(HE~JT#4D8m}<}u~8ef z(HlVF8pSajr7;}IaSyi;0l!fkr;!}5F&w>79J#R?-;o{7ksZsh5KnLr>Cqeb0UO;B z9{VvKu@NB0u^t059rFPe z@*~%=C#{hr>2V%S@*;8a8COypTe2r-QYK-N9wqW6ZIb_@k{gp!9CT%(j&$f@-0KM8|Shq5z{S$P#-r^FCUUGuW}$k(=)B|9?NksA@Kxtk{u88GW+o; z7c(tOQ6nF7EmN@nP}3S6Y#Lo{*Jvlb_98d13?^QNp`ZoWGSDJjGAvnhIhnILo%1=N zvpG%R6r!^_t@9eE^E$PYHM7$pO<+60Gd#u9I=gc`#j`xc@jK0PJ=wE8(X&0tlRCW< zKIyYQIJ@=EW4DhuOMJg~xR~llBoG7Ab<&-!}9F-F> z1(ZLtlm9x$!5cPoL-T<{LG&6uK^jNY8%nf9+mkvoG&}u495?hry#Yq;(;vF?LrtJX zPoYG|;Y6|XLS=M4PvJ&mv_z>>Lt|7NFZ4gzQ$C9{MzixpL-a_IbU$fSK5Z07b(BY? z5j}s@JcATVrLjq&^cs`2OT9Eqk2FY))JV~EO7XKwrSVFKR2p}bM0?at>GMnHG)+O& zN7K_x$CF9Z^hu9&L)(;0skBDDK}d6yPPKGV{j@&yv{CtVOb-=O@l#NXlu+4JN)h!< z6_ru5)K0fFQu9<)(R5Am6jKLOK;IKk9n$yi%954?UzFr_tO_f(h1QtS2`^Jkr_%&H zq5ng@;X`+HLus@{cXU!cfjV)NP+yc#h15i+6-7l9M2!_hiIrGev^*x|6Ij(WL*jPi^*Ml@(<{6k;2;W1m(}Lw0IMc499UYwcEH^R;Vhc3b~7X1{Z64Yg*?wq#jV zUUyb%8`fvrHezGeYUS2!kJfILHgB8OV+l5D?^a|Rmt>9hWTQ1@hm>W#7I9%VU>O&6 z=Qd#xR&v#ra-X(YFBeQDwrO9~X*U*fO%e{BQO>sJCV1nF#7H7cNw_qz0#`L%J#-vy zbR6;_AFy{Eu-62%S9`4&e7DzoxfguNcYD7Vd%t&m%eQ^OH+|oCd(k(1yZ3v^H+$u` ze${t>v-f`CH-6!_d*wHP@wb5ImwgMEfVJ0q5mPYNA5?gWi3hVgq4_k^_PHsIEU%ih3%J%eRzn0 z*ojeiiUAmlAJ~gcn2VRVi9?u-Mc9b_7mABmhb_2<%{Ys(IF8}ii|-hWE4YnCn25`G zgweQz>-c@y_=!I_gU?uwV|ah7*p9zAg0)zWqqv9rn1gi~kjHq1J$Zqjn2CoKP61Wv zeym0sCpm(%FQy~om{MlnHD*8bk2hI|N!WXD`HZ_bd~tb`$@hMH`TvT~xR-mmmMQp` zjhKFexr>pxgSQxm8#$V@%f+a*PM}g zq1Bn54?3LZ`JulVpVyh3?|Gu9*_-*HphekwUDP49 z(8=s$M3#4qmIz%kNgn+AuK_!-1$(dwyRZ%Wun{}46??H6yRjYnu^~IMC3~_dyRt3& zvN1ceHG8u;yR$v}vq3wwMSHYKyR=RFv{5^?RXelIDqV*0KB_9OIV3~w2$5F%wsAYR zb$hpYySIJ&w}Csjg?qS(ySR<}xRG16`O6>>gsOyNieP2Xl6$(TySlCWy0JUEwR^j{ zySu&nyTN<0$;~MkVvA;@B$|bC_A0#DyS?4}z2Q5)<$J#AyT0ukyEpEos3nZT=r?Ez zko-y-(c!)cyuc0oz!5yb6@0-NyumqJz!S<}IOjJwB>yaS^}oo`!8LrtIlRL?{KG*! z#6`TaGw{xaDRQVsSjeYj_Np33{Ka8B#$|lQX}rd5{I&(00%c4njIkK~CPd2X8gG2a ziM+^-{K%0!$q_so?G8D_LN;LNCKSoJl2Xa7{K~OB%e8#Vx!ki&v>g5FSzf6mRD32< zXh8PrBD;Le*}To&{LSGU#-kLtHl-kng?v(|0Ua{V`Ml5l{LcYB(5L&$tMRWmrpyO} zU3!PLByt=C{m~&k(j|S;Dc!M))li|3R>%p@jb+f-QF|*r)J1*NNxjswyjbNiz|iA2 zBx1IugBnZqflYnZX}#8M{nis4)eThv`-{p}&i^J-XtS=7MzI&yjs4h>J=vArxYZZc zr7^Ewi9C*{bEqRHIW(Q~VcE5P+qu2lz5TNDp&p2J$hzwxZiRaCgP&lXL&>)uzWv?d zJ>KPg+sC0EvX>%d%RyqOMD$4<(|H_P!5!v(;0eCq4Ia|N9ee3C99c_w(OY-K{Oo#? zf$QND4*udXKI1h$$?LtGnH;ayPbi2bH{`0srSaeELEtxjcMv#^@=yk{OQTcMZNdz**@>} ze((7nu#4X4J)RKZ1E3xrL})NhvG)_Up6dI)@g4v1fxaHLfa@KSgC%yD@f7dmzm;#7-3*Yt0G<#8@^tS-{u|NB@|IKmV=&e^k8;j{B z++6Ci-dmyP=VANRfBo72$d%vTnOGbnE8$pwzY)nrv$yBBApP6F|NS2z({U|&huDroL!x0H&b#OGj3a) zpi2512e#h4y|I%kU(UR_^XJf`OP_wx@yBr{K6^WhGTln=ZeLbr*_rHTyI|+dqt3p) z`}gqU%b!1#9i{vD^XuQwzyH7g{{RLk;D7`cC?GrRP~=!EsMzI+WZqDw7D_6;1=odh zq2n2PV0D8WeISM?;)o=cXd+->WT4`TEVk(4i!jD0ZqiaYARxVWI)NO6{WhWMAkv(4TLzcq$y0A6^YVKbrF|d zH>?IL?6AZZYb-;QWdGpEu?@L8k##`|Ns^>2!Bt^q@7%N&a3lo@QhFaUEAF`DmTT^G zsrGTMLFrEPX>ksg#odG#hKJ#bd|2Ebzbt^VJ6e%MP4s!V$^w)paA$ zD(PAj!-Q*PH=R_HNWOLyZowdjEb_=CN7Syu8K?^@ZM9)n5?UBvsF{%xIuhKh92)m; z$vpS$^Uvp=EU?fJZNVtSvyz08O%$u;5|VN)S(0u2dbKmqSZA&E)>0A;u-6XB!Ln^S z;iROIZmBgBdF|LtmOq{TO3}vKMYdBqf1Shi-hB7%H@hhl40c0X(8kkPkV=RtW|v}U z#7X($-0^V~3ID)@2bgE>0S_PO%@qtA81eV$q?cau;O6#0z^f5iS6jqNJ2I(}*HX;3 zhEsp5GewS=V8S~@2;k2rK^oz?RUf>dw?1VYAiC+$M=$-jsFz#4La_#^6SZhF4qnt6 zlf<#7z+U8l0C=BsJVNUi)c!#4GvxUaC!F&RLGQ;e5Z(gmKmGpz3}AGwm!N_msDKth zpgh>21_Tl0fbwXd0wdx-u3Rr6>H&*8?2;Xlpe0)^QHyuP0~dUqc{Egi{QvLl3uf-v zcVkKRhDvs0-!t}IV@;7pAw*`zE-{2CGO~oIi53+#r0g1{Qc;7Fq?-D)C~AIwzjJ=y ze}3ou?qBb7?mg%Jao_iSUhn7o`FcKF-nkk1{wL$;OaxNeJeALr7#452`R^OInx5l^ zMV>C;(r4~NcI%DccMn)II526lFVXz*01}mEr~H8e`&+`prc*8yiwG;7%xP$BdYXaw z+Uy01p5A*H6QW9ZCmVP^^3YhPH3LT;fGL3t6XmyQ2jMWNK+_D>OBU0r;fmzY0XWbI z<|T8Q{6$8$_cE`mxN?$q_ zUJ_ECb+qoi{n9>A3smRa$0=}Epz{j=3LJp3{>EeNFP6pT+DyhbOYSqV z!_F?iP+BwPiXhDly}9q021I&bW>|GS-Y-Bm8765}0925fe#h5mNA}*Zzx*5}tIz@X zntVmg5aAN%w(=6u0CX0T50zx&OJ@zChsgAkNbb;@z!1}Mdt^qfa74x-Q3TDVAC=_d zAGI>KhDcW}w$exo^jZuDX6E@5^G;g(9)qp(_@yi)bVa=65Ggm#^Cv?gg(zi2-=FLJ zoH!#Tvi)M!xvzmMR^p4&K}Y;e>eN_OQ**0&X9O_ZE?e9htHtw21QR9@+7U0*yo2ne z6~j%rXB1bsdOmEViaY-)Smo5|;TAuc!B#$hI`8<#I3(csWths!6^tNpO7@QFESNqYCH@u53Pf<#H*DkUr$ zkYA}U)ur2<3}EY5htaXA*T@hu-$>Tc96a)5N%4IBO|_>qRId|o-5?GEMe|W(W;Cc4 zd0_raDO3gxY5cR1X5;(keP%MrwsHWxT>Yr}G#{5|?03yRu&s>2%_Kt8?nibhSKgCf zNY@0(St2VKae?^ZOiPs6Oj04D^Cc?D!~AvYj3<%%&-_Ft4c>_ zYv6G$$b(?IxiJ_*f@GtR0VZB(B15^rn_v_6Td=>EA@1O9?pUFE$VYtRTiC;|h7yEi zrEPdtwZj?>VC3zIe-Qq9_`pKIzN@70Z`2e1dmxl%d@Ubx?jc0@&UB4vW=*mF#N8|0 zh6h{stZ}J0P5fbg3e-8mkr+O^ohl|YDQ;eITpt3pI4}suD_1fa&D&-`OLuNXtWjg% z8HcZd@JmbN`B-RE6{MrZ%eEESh|1d`D5lXVABc&sX=zwCaFBh>nCk3RNXfVe=<}gQ zysZFo)Io9%eaI7C0B!z}VIz$)1|bIpk*aA$XIX@e_3S`O5PPE?TD4<|uB zupq2=VhJCD3fB)qo+Qz=MzBl5Cu>K2(oJPqx}rdVtTthc*e zvv-?k5r321YH|<+?b9wSIEoM1&b7XijI81VS=+!J{H@+eU_Z?rIsox}Z_53d708F| zr??Mj20GoUpK~#K+!Av#cMrNk0&&g$r0;pC%|S}E%IE{a7r=D4-)_$% zgg>m*;AVs2Cj1XJ<^t^eAHLXn3x0`WuLVC)jb!XwxlUda*d`TPry#w&_7|1eJEj(2^uV@czPxDHr03Mw>Z#f$ z#%PggZ22ZIP?;v05wvBG>O0s<$iCD!CuAKs2r`4oi?=`^whfH%J|UFvxbSB;&eaCR zIKT3{{c|9p9cztWXfIgJ%XC!uO;d<6iK}XqbF-6chVMyjY>Ycg_`T#T(%8ygbxx~v zIN0ne{neIZ*1?nSQfIbZ?jRf-YduxDuf|oj(2Vt<(UN7fIbH?#TlvQ>g`Ma92^po*&&bS(*p_20eE zPVe$+lAz_t+_UAZXIz#2*!-v1X!TYXc1DaN=&ET^dd)L-J1TKz+EVW5&KKo)t8(S9 ztgA-mJ(;Vfr9hjOT^W7=_aFZPHL0v(0DnhK`wT%sFXHmTlGt5ghdE69%C3!TlsokE zJy)}J%5V`F4sDm>t|P4b;xCP44mN7*5=?t+73Jl7%H*yeymLb_)nZTlb(_-=Q!HVg z-*e?ZxqZdm4aw$-KCY`+>1q;Qdi+LiNbi%K*G=viAS!EUA)WI)u_J7o=%bhJMCjJq z>PMecG6=!rb}B$bWD%8}u#hYHA-7xIWQ{NBUi>!$_2#rl?pqF+SivaX)kXUfuYp z-o*IY`0(1qc<2N-bK>#l_|wkO$&!iNnUfFeCg(aQr#B~N`z9AfC!f?!j=4{*SWGSS zO)V!(zFQmnq&M|ubMk}5qmQAFzIHzPtoP`>`=cq}v7xiLS68_rB{(*XhY`b~yLh-s zp2$28{L2#$n-=kyCe%;M9^y&NPfPbtD|bz+ial1boIa2wzOB#e#6)LV?jGixSV^}{ zU1izS9@px4?Sv#AdQziHfT;^HnY`9M;X3eOb$BUnG&K)9crIf`p>6=4H~QCXrnhb2 zE;H>9)xZ_OY(Sr^waYcvDrhXW|>N}SzWU^lg~Qf9Tydip#7t2 z?hjJp6@yRSblvGXwO<1Q0aSm(5t4uq&;zzEI(!6L&`|NPB>8Ug(G+uYa~)m1m}b`G zkNLNM1YYKcgVIhYsHj#C44yBT7`pzUGWR~`dT&a^nY#mnGn3yPb{(hrw8eTf+6Nu$ zZFt-AyzkG)&EDQSH6@((_A7b0c^(Eu!JbZ+&(24kF3aOyJ|2BJG;Ckd)}{By!aC2^ zw%(|IJ2m;#-NmVIVZ6Qe>fDQ2-+cuXa&fR-fnaHak<@kN>}T8UDIPjBif4GRMRV@a zGpBOet5~Jw?e`A*o@sl>jj(UtXLq(Jr9CG0u$_}zkX=o0XLASZ)vb%%uKLQ1?3_Nq z^!s=3PnNNA4sZf?7o=9TM%fpvEc{7yWyN`%ic6_ar!|k=oqP6d#^2)1zaN`kCUuqc zE;Vt{+~i}Y&fYx|N>6)QJH0qJbf3pw5QsZLEC3&*h2MT*1rNHk^yH_SjdL|}zjv~lNe{pGtxd3v zr!;=9^IlugJMPxml0n(r=HT4GZ{NQE`?ncvRrlx5_i(GuaI?x_v&wL*=70abFD|Zy zyJm)))qP%FTU>nm`SV)1)z+=8CpUx5>cU-fgRLsRecRmn3D817`2Q0w=d?%-+^pZ^ zVo{eP&7&1so*nL^M_R_KN&Ci1T#mMSRH~S+&W-k5eAGbB`G0iFoX-;IN6}9!0vuw+ zZl&yde#QTOq|~Jh{f};mb$Dck($or(#;6tYnPNK5;yF0i z*|1#v-a=JN(7$FOPx(k&M4^&nU}WC*;Muu+ZR!8fElZIXG*nN_J}orq9+53GEv}Jc zS>e*7ShEC|#WE-9przAWx@AmK{@R#xThD>a*R&DN$e67M9ql~tOQk_5S^OgQD zpPN;zEiqf_Qq7hcoKKi)HZab<&~jzw%b#m+W(L1Ki^>q{eC+g4>cz`mLvGI_e|)mh{Qat8E4!^_oX-{Qh`t=1(QQpx6J>ryIkEZt0x6(1DF-2}re_ zy>X>FIycvDd^EVD+<#}TY0P#!q5Y?oZnK7f+qBhpy$0iG{1)x3y8Au&*q7XI#%mF}$mE##nGx!TMJVRMuRO)seTTZOzO*04zVP&^a0!7GB7f7zb1a<7m>#Fp55tPy3y+{J8iz>v+&ke;?$w5xgE`7yWFIgT zlVy}OoyEg|9D}1+-cA;eN-bVw@w^o+t@DPL^q2otZQH_e;_(t z&EG1QK7L-&p=eKq+BJe*vv#efLq|cwTHT9->~kN)k}W&K2=m)-zN;V4_~L`cnm#nT z@dA-|FlX4zA7qM4Ho`>$$(UfT+#S`b_@;^Bx<82g)bA%N>JF&Lf~G955?cvosFOnf zg`(8Wcu6h2=Nbnz2GH1OL`jc`?B@a@)I<+}?F=NN^*{u(CPC$IV5n#$Irqq-x{Be* zee)yEBZ^p8Dtz2d^!0!p-OoAm{5h=Y&I=afwO2(YNDSZNGukVS`f19TB2m2A_KXs> zqY-I#qJJ0z7v8!XRE*?cVo5N99=%PKQfFgQc}uUdQB?H$$Scuc`>!ubsW4T!fs8^n zJ!w+yu^wcX40zIAkJ~A-KCJSO(Imdw6>3OxwvH6!f8XY}+Rb~I4*gPmQ^adD zZqJ$NQ(lRueU)<@#a#o=dZbG+_k{%QoM`ZCyI6Vj)u;StcHvpg)i(}CuDDl=KmJs7 zt!DF*sKes({+8d+*&83gj@)08`_>I&Z5h~FQ9i)Y*xFeIds!F6_IVWcGj0} zGAeBp;x9A$&V)U})k*@X8 ziW)7oL$6C*K*gjAVGGKJc&IC|`^ydYQvV@Zo!d)wnCsAZwb(M*dC;du3SZq14fZ3- zJjtmSR9Z&HKeTvxNn3nMm-B8uGHUhx#Zb4*ib4j)o9}>aA|kgao@gV(oE-g-Y-uc%~=?K^DUo4B6twB#o z0S81~i7ck3SCc3&M;UDkQzP>wph3p*C*+@`&>_mo0C#&EWzO`Etj*DDx-NFmYhuUG zX^r@zUq%NHrIbXfL~y#zn}M8c;(&otDrM-JKU`#u!4=W6o$Yj;%lSP{T&4`|(7eCQ`sJ_zXn)Z{F?@cP=zg*KE zYE|Ts$^)ElK8Csk^g)gH-uD@uI|lK%gA99jjI(S`ShZflq`g(0ThuHp5`Kj;`E=Y#w?dH~!AH_AV1DsDQ}(r&_Sa&_4sA-x@`q>} z{c7sNgi{fs$?h<;tSYdB2O|cu3wDMMAdCwcDEj<;y|swO4GsgAMq=)XQ$rfJjR|d| z1VjF=?%OBjdYvLE1x4@(@m;bE`veXyW_bXHE?TkL+l#`d(SLfeQ8F}yB^Ll0x_;0T zh;q-GDo{FK+ZaS1h=G*GK;G}Cs8(h9(i1OoLM6&k0u~}^H%O2|@@2C47cu@61k?sz zCIOQGy`FzdRay5<=inf@IeXgn{)U?-s)eA+A)eGsI0KLaV0-BJ<3#W*3Mm$-FW~M_ z(gdSnxrsiYB`t2_n64-Zx(?>K-pr02-u2^GV%1JCf@mlg1s4U8e|d`YIUesS@Xbw! zeVQVE)2LRBcGURwFA=BXH(yjp~1XP$aFW;vee_TK_poh)F3dZb>H%M?~AXp~B3@`Wm zaWTTxXE)(=F{)a7{-~7ajAfc(>_-q$_RArR1C*aZP&hys9jZ!)(CE;=R3DvX2#$@~ zMTaMHz$y}2d4+!dIZ#E1Ns=Kr7G&$Qr5X_~8G3(ONPtCniakBxs>-;xo6_N9Gf|l& z@03+50Yj$6dr=WWHY$?~tpWgh9!!r5ggL`aC1Iuy0c#op$Hw^zkd`1|2f`$&CqFd>{*A z%7fYSDut{H)bdfTM3(qdU2}xRNL9wfQJ+0%s4uD9ct0$ilSfFATD1>2=mbX4x7sReC|s!l^%3UE`Hb6<#t=09v(g3k6mho!UZO75Th2zt%R zA@|ea%0gbXB@1u1+iS;=iGq~)9$BOx7h?~?>@XIV)N^sCQDzA7t>mA>vPY29uyt;Z zB^CBX5Z_mXPL8oIl|}vKnjEI(-0Ag_PX}4*UMKC2%U9tyBm>fE3=HC&Ar&qIqU^ao z$;{B%Amq=}p8vtjbOj|CP}K1$RGJROZ~!$bq`w6Ue~{kz6W_o^1+aIU<%3RaTqHeP zurp9dg=g@wXew-j50T=YIn3FYU5%HbR{bS}KavhVMy>N)DBDIph@nG`I}S}%HnlhJ zm7vl?=|CYJEo4F5e`AOwNF)m)){Zh_`|P4%n5!%WHY$-1F=FF!ba?&7wP-S-atj>Eg2{m>L<=g81QBOJ7F$t10AvR#914M$f?d05 zXFQV$nb(}mik)`r9O(A7Cki?chKXoeDVmKkp##30_7g8*p3eH}EHuFnsm@1Qg9tTa z&#K4kP_e))6Q&OzasZAIf4%mY2BYz5Sc<3)J8BwJ+Q?o-NVlenhe4|lB-|}k&xCiRju_6%I20n%kSNn+jO+O>Ifm^2`oprNC zlFpln(P8fn$; zE#!7X4WU&ui0eV{Gu`(07UQV{k@D1AEFXU`t)S=dYe2m*?QOeBRdb6!LHV1J@K7S z-mP~m@bphfKwK{*A!b5A!3e6t4D=RYzMO>>0}vq*hAqJxr3a{N;ISVM5rxF| zf=q}c0LajgI$pOGmaCMIhZh5f!(p^iB@caC|6qYRbYHRe|u;24#r7-F+hw zR3o=LBSI?OkqzH=d?Hx^<_nI>Z~@k>?Yxqa{p@RgeCT2Bxo_9Uph+i1Stzx!DN!Cw zia1t*g`CM8Nf{uT=cLS`aObo@nlP0>rYRbBwn!t~42(ub1h_?RZN3~eBa z?R!k_q#>unrNs71HNuVyi{1nkcog`5$V+PpHtbub!^(l`@H@=vKP1ea5=j#*dDAXp zCl%WHBn`pH_B0zeut1yy%5fxU1|N3W%8wQTD2V+@AvYl`3(O#66vUcIG=vx% zrwEJ)`TM?;_NuRw06t*AM;h>8IBp%%1pb9ME(IVRX%)NpP^m3aJQ;owjVA)YUw(yI z{6wze36T?}2nJe|*se5p&dnT}PM!Eq6wsqQvLt3F0?=e4B9RQ)lP2{=uy`cI?3Es} zkb;2l7OhB;GPE;}0}jfJhx>sjBe$!n1_*$IHDIBwa2C~~P*F-ZS{0$< z2DjrE7OagX60gk@&R9_(8^oR>Vox~dYW)Y8P=NdPYpZ@ar>cxJpdm%MQ1CU(wG>o? zFJMw2ppf<6fZZIy#n_d;yLo2}AMhS#gRlaZGHuc-c=#Q+0ev3k(Jb_m`KelV(^eg6 zdK&d+7^nie#4s?XE^0Ti5@ra$bsX{Y6o95eGk7yG0(-l^c#xIXxgYbo4c9UUem)o( zPB=&;hQEs)jjC4OlljyeoEDP8r!PsK+LIt8LK(!>Y8?;iX6zyP?0MJ7F3*%QMql*r?5VqX-g! zWv|hH_$1o(z~%Iw*h++Ic5?AA)eg8N8KH8VAG#N;S)&O_k#I(`sN|XbtR;9vxeO6W zJzw#v1TM*jkBFYxcRuepU03_V+a&H;{_wdX`ov-KyFGHG7y#->+d!%QlG;K7>t#z? zm1+*FHoOPCs4!~)YR3me1xUNrN1H!zcWe>PG~`j@hOv7jfSnvq|$&J=jPA1^`g_Z(Cs`Y>a83WjnFHXF;Ve zGf3kBO>h{-v@gm4i^`Xth-pKGUhVKjS6I26k#7d0?akdxiH^;s9HOYbfPhVNGxlxKC;5#yRxgqP7lp~5^@7w@%9b&t`94A51&$y5ciW*+cNrQ z|1Nwv^4|`f4-Gp1x=4iR0cN(QKWD`VCV_SN{?FxLaKxCTyo|wSJiA~3ZK#!0NnRS71$q?dog;u}TMQ@x{bNmR8TEJc8WBcomWvpy3$s(1o!p|SSJZ95i_Ys`|e;n0zX=vT4%v`gVTt>W6^YY&1r4d+(Xf$V#EJy4m!jPNQ z66Y@tDR}&+<*%h)EY`#h|HBp+qJl5IOfu*Yz1yK$aC4u@yw=zAcaCTMe08xHtM1sl zlK@O2ZTp5$+3+V;K`)K()a|gtT z=p3O~3CEzE7=eOD`ucwR#%X2`B@m%8#D@Cu@z{QTjxpi^ zLkbOGZHO8!!zlAh@ebY5!Y7kt;5A25ab=!MTVpyedK|%TRt1 zuL2Uz;GyIpbg7Za(ZZAn)RJ*6r zhw*cyHTbVolkx^2Fr7eW2n9q)RTAN9H4w!uyQP(%0TO6~!(NlH9wl-5K6XVPqlprh zBZ*Mu8bHm6(;IqyDG(X~sQe(pr4wTHWCVb$&Y7|-#bF0i-QpuU!gP^s$Jn>&EqL6eeAeG8H4)P(I4v@4^_71OBB zSSo%uLKqez&4vw-;klGhkB0;pQhEROwC_kCMb?4t0;zxSDz;e!bn>{D~@ zP6{1Tm*!+uESHn%tX7PKLtwqzSy+1?js0p*eM9+BA(CGO*-v9AOmT1-^a#{W0vfOZ zm^;%T7@^7iY8{Ssoef+xwE`O+Bb6@_=;gJUqz_AmOIn8k@SW+ywUt}!%G`)-nGxLs zrV%icqPI%PyO_AHNN%=9Q3#d0fJQTNEhKfz{Q!ML2F3jt`KXF98H)CA%r(F3qS0{u z(^c1xWUPkBEwxdo>=f(1l3F7QM>J47M(Whs+j0#;b5bk%$ldO3beUY_EPVk}ZnO!3 zIiT$cTY{}PB@L9$74gY2Sc$#Rv?IfWkDu z0kjY8{fEno`Fn`(RKAbMmD_|)*6RyRF2CADL4Ph!X485aH&$$v>;+}w(IyDl-fvi) z=*b42p?Xmv%=@}5^4MEdtTiV`GLprSt&D(!tU-k_LC%R1HKbfR%zBQ*G>ae9_VMd} z)J8_Bts9C)vX80_((wwpHk4H=q*}p4L@%%>76P@HMhj@5WuBytH!gZF1AH>@DqE5pl z5TlDgYE#%)$&veW>JQnG%dnCHjy7t`NX6Oi#A~LdVq%F?l9GoIhOC3Tw%II^ zR-Plzl1=glStup%h3!T6(|mNk-w6yTRj#1Oss)ZP_n>*mBgzAgmuz!0d!03K+l$lm zpMO5w0khWwgyqIfebfn`uP>m}Q`S09543-WsnlF&h|Nvsv@R8!Rvn=Yz23wv`}An7 zrwuD4p7<@}Aoc5e#{DA)ewHo=tZw^FPZr(cM^BTif=ddplbuCDwvU|Q4kJe}KO1%t z;_|YAvKj(LK{hXw!_cGRtUDB~9~XPc=4An}iQ}jY4&-sWWMNuO)=^ajK(8pt`WCF+ zQ{>dY5W0I|o@AZz+B!^oYYz5%PK};y`Q4Yd zl+-Kd6Z)dm)AgrLka%nj_JY~A)I)*zdW zI<|6Kcv(Toy5rn!TN8Q7dUc4{S3pcJw?@Q5TxPmG0PElK%V#56(o(`5#$)EwJo!WEUPAASOVe5bhr>#Syu zUB=)GM^Kn81k!9Bobv!qhD-*@dz~xQO0&4swnIVI{sOyTJO>L(phc5#ZOP7EeXWI8 zWi&#D?j9u9069&>?)E`c6Ig^v72|VYx*1yJTuKNey3XQw5>9={eLO+=Y8{%#ur6YaacoB;15*-`U#NUUMD8h@tKj zd-;0&I)D=+pbNix%5MqC{gflgcKx}f;&AM|29G^reO;p%K8bzT>ncZ>20zu-HJ*DR z(tcyJC~1u+-{>V8cJ-x*m{b;8?W6g-|iw=-rXdr7rMO8w{k8VhRWZ9(K}dBNo-@yOGx~|(*wOT8eKeOjbfj8 zo5eiVlT!Lg7>4#u(${0&ckd@(&%eGDF+VRQKW}|MA4@-94?n*!KmS910a<>5r~HEI{ervvLi+te zC;h_a{lY)_?fdIT74wf!@{iQ_kFxZS_VAAh^N&5`zd!5Qeutvj5_DXbe|*1x!leJ9 zdH;qaWf@|w{R#>^T`{}lf7CJ{*&`q&EP(288Og5PHUV>u3draRINl$SIr&@xk%Nr8 zW;l+{5({J~1v2#mbHv2rUlssyK>oH|ByBe5RA5nkps=`W_Gs1Z_Tze|t_PNW3M~5@ z$ZC1&c7$^=l*_UVs`Ln|3VUHTS&L<$wN-tq>x0gA1)b{;I-g!#psuueKd9kv5L+y` zF$Fhv;K>Wc;AW5DmayQ~L%|obg4<37x7P=EbOm4P5AK`{?wSw2{3-a#-(Zed$W^6~ zZvBuR%aCgxA=kq~ZX61^nHAD|D&$su$nCC>JN+SjlOg@{A$LE8-1{5C6$>3u3f;0f z-nR@L@(6tp7W(i|=x|o($f?lL`p~hi(DDAziOJB(`Ov9Pp^yHC^2EZXmFD-J@_cL= zHiHODG@73|6!yF&6h|$1ULW@IRH!(Q{&F&GUMbXJWo!Kxz~97lpLWbSVP8U)Je;UE4Mto4U~ReEzd4Ei3i@4eK?m6-5v zhxYxN55}zkS!w(JbiL^egF;B*8}s}6!kmPE_X(9m0A+rPBo(Smg<0{19#n(@Kj9!B zI6+0n4tLg2Q8;pZdliIKI8={Ei$R<6#vY5E~++UGO~m{2 zyRvtSJU^6j4QZc2Y-tQCi;8-In0F!3MR&%=mBt1is%KZ2bbjzK8v0AgZol)liNaqSjDvS`!g=T&-fQKL)ou=w;-AS-rOH0%8w}@ zc@HYTe{JK zPMJiPaAy2%;)v67Tb1`e@hiw(z6T2&zOp3%^BKEGy4BX1t$SDgMy;?l#s2N2r%_Or zCd?(T_|d%~sgldEb*3c!#=zxx-;5te!6qI(4=ihkk|KVYx zoPXS*^ZBKrr1!{m$it7P=l*@>Jk=ad-452mmE)k74VZGk>XbC5@8JPa5`Fr_*k3I0 zsl7NQp*DBQh(OwEfGDqAwjRevGuM&1iHIuWQS+aY6ux1^w8L|I1S z0nO6~ZGd#T{@Eu?!Km&jkra|0UAASCzMTW#kE}RaHPX6N3yV_}dxI=k6VFe1% z=mefQmQX0PU%zPGR&K#!0<0XPQc=uPXF z>^RBT01JWY9R1$IY*tP-0Bl)cvZ)YzUb*F&fB-^KL~w%`3rg0$V}?&@?EepmK5ED% z>~Mygtw?`7K)NpvoTpYk0g(NG-tM)Bp`f68sZH3%>or=q!$iA>?KOLw0h&{D0Zh?;LWnFfX;kq}oHJNDR%~RtS$f=KZS(4x}Lv z`%}{jp5pI=bBeY#fioIUUA2U7IP35O_W%{or-5f0PbGcX_N@QVYHIs>-K)Kr!@m-Q zKfhY4*ndpBk`^{k1CYh*Z=0bMh^TYkrDaV=-cuO;6PUlwCY)qtudMD(x3^wGyr!LO z_#JU*Y1_XdNzT_ZdlJ3!B0Fmi=x49*32zYgul^@p=$-SZtu^iJ;f$cJs1jk31PDJR zgI4ODM#iPVtkNnQu=?90wC=Tz#U7SQ%Tw<4zVK+BnVNB9*stwO8iVwu>KOHB^-2Tv zk9c@k-xr0GhIj8rCN^GNf0~zmwP2$fv!X@lv!}N<&*9fl>Qh*6Zbjm%3yV%HW`xUWQZ7c$U-=hw>Z`mq-?fI>xy4ds z=ZK9ks!aX`D8)WMe;~6X^+kHE+q2f>#dVT;=+i#m+Go3sR+4q>w&LX-bD! z_l>O^z8$I9?sGZex6$&1zN&qBBqd+hRPor9)PFlFmLA&uQ05Y$?aQU7MJ4|YMpZ0b zIO{X~`P0T80e`SSVu#gFmMBK;IETvKZ1`Ms`((#b$l}THC9&E_t%^mUENA9e{Eox_ zEdG37ectn?>$8Nd@gMNpYlF(TC*s?1c2}`c45bA*uY6q^`*_xE--18cTYk{s!$5Lwg}c)mWz zGNqQSx{C!(s^I5hnr*T)67S7mW-o%_s zi0?2(N+sUWJZ^CNLx+f*#Rk`hXZ7gFHaZYWjrTQk;hlr~ucti6wv}XsTx@&Xt{!Wn zZE)M*zL@zY$91Bk>Os%%XvWh_p*_d|6g7SW7zGhll^N9*o8)X)D^yhWI=zcwG+{Vy z@t@tqzb9+mL06B0D5bfrv>qWm%x^Rk0o9vy6Gs&LWQfPj>~nFm-2L?Z<(#si$<&ro zq!Jua4-h1qA*09Cbo`!5ON9+h_hM2gbqB^R_slcz_B=A%7#jC`{!8>JR$WfFM~r%^EeET{eM)O(NP(%T^9T za>$zYNvzCeyvO8|)iYH^qt@A<=WvYpz&Y!{*77!5n_b*#RWL`(ehFMoZDlt6VddK7 z=Ei09X1oHMv>s@C=kK_=WFukV#Ux8ckl(E~R&bs5a|K&2AzS4Gnd<3Kxnu$@}V( z>b?{y8R%R6B zDs@GLiJ4yAyM4mx1-@=6bGyZ%W1}02RR4=QG6qZSkFvh?xa|Fkvu8)uOKy(r{cE9R zD{-6s{r3(xN7aedp(b9D_q7Wc?-`An)&@n}=?lt#wVbn}MjE51lV`9o&ORNFt4j0i zGIHD0Crpc8T)oz6+^_u&drSAY?P`q4Uu{axL2;NP++FKnG39iJFSg50JYx2ZwHD8O zqtVCPtzXCg)sxFuSqLV)g}bcS%kBJM6rFiARPP_h?<{798D@-a>|>XG3t4B72vPYK zCE1chqD_{}Sh6pbO4-Izp|YiPLlKIW=ocrg!_c`Z2_qpdjpU?aK zdf%^m)#*BF)_9Z+`A+@t>PqD06ThEx%U>7b)uWnB{y;SY{aUkT>aW({vfUr&a#tWHjZ9c*f7(dd69RFIJ{rVu*dexCia{FjP+iwJjqIK)-^cUbYc z&EcI`Gdx#T&6den+mZ{Cu30KRJJ|+x zS))XOQ^|C%`niAXeYqgs{h6i3&l<6ME+AJAlX^a2&i8=fD;|VaTt~P^_VFwkS6Wu= zfe6nVuNOd`C7Y$AQ^vk?Yu&dk6GjyUTazSRs}01DU5!$m+RH;@#e2*IJ^80P7d0}@^nbF}(MfMYy=(BqYgEr%*;Fwqkl#?KrPmWN<<8qiV&)_VC07~i`thD`k3pB=9d zt3payaxbi}-)jl@a;j^W`0Mrf4CUNBce;q-6xWr&rdJx>%tK7An<6vBh^6c%*Xlw4 zQ%P)@MD#Udc2Mfg$7P~9O*%ikC-Wn#tM5xJ@#$iMgmqCbhSglTo4wzDll_&>Ein-j z@yM%mMsG>D#s8vt_*FK{cjs2Kf7gwnK5CU1 zq%2?573=GM`#t1gOZoE|HEI7m7xMCZY?2K@N?_(k`L*Yd0?%%D8RiexXuW-<9dih4 zUVkk{yF5d`hye2TO?LSHYjM4t^Zw>mb=l5Zh?B@J5&w540h{W@o!a;%qpqSs`mNs! zY57k(%VF)qnE94KpYDI%u4ZfW%WiV;2_fsyncXVSN|E>m)h!X;^vPkbYQu>dh4T?KKlU@# z1#SYu2nkPj7zBbuF7KkHROnq;J4I2RNT37KI0n#)?$G;C|Bx)WNWl^*=oE{l_c4mI zma_IJOzq6t!>nD=38QwBkPk(oe^$`Sg0G!yMxiSDS(sŔzjRz!z2(0q`L&19rY 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

From 3b06941b60396225783089764ff7f9bc3ee06e48 Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Wed, 26 Jun 2019 10:46:10 +0300 Subject: [PATCH 103/133] new pot generated --- .../templates/address_token/index.html.eex | 5 ++--- apps/block_scout_web/priv/gettext/default.pot | 12 +++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex index 4e78daee2f..4b180fa761 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex @@ -23,8 +23,7 @@ - +
diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 2821aa97b4..a0c6482690 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1700,8 +1700,6 @@ msgid " Token Transfer" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:27 -msgid "CSV" #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:14 msgid " is recommended." msgstr "" @@ -1711,11 +1709,6 @@ msgstr "" msgid "Anything not in this list is not supported. Click on the method to be taken to the documentation for that method, and check the notes section for any potential differences." msgstr "" -#, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:8 -msgid "Download all token transfers as csv" -msgstr "" - #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:4 msgid "ETH RPC API Documentation" @@ -1755,3 +1748,8 @@ msgstr "" #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 msgid "here." msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_token/index.html.eex:26 +msgid "CSV" +msgstr "" From 5fd5185136f3a6ce550abf4e41c538ffb0f0cefc Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Wed, 26 Jun 2019 14:45:10 +0300 Subject: [PATCH 104/133] hide logs search if there are no logs --- apps/block_scout_web/assets/js/pages/address/logs.js | 9 +++++++++ .../templates/address_logs/index.html.eex | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/block_scout_web/assets/js/pages/address/logs.js b/apps/block_scout_web/assets/js/pages/address/logs.js index ffe8ad5676..5b4cf8aecd 100644 --- a/apps/block_scout_web/assets/js/pages/address/logs.js +++ b/apps/block_scout_web/assets/js/pages/address/logs.js @@ -40,6 +40,15 @@ const elements = { return $el.hide() } + return $el.show() + } + }, + '[data-search]': { + render ($el, state) { + if (state.emptyResponse) { + return $el.hide() + } + return $el.show() } } diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_logs/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_logs/index.html.eex index d232400431..3a44e0cb2d 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_logs/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_logs/index.html.eex @@ -7,8 +7,8 @@

<%= gettext "Logs" %>

- -
diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex index 11b4de110c..0dff8dbb20 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex @@ -64,8 +64,17 @@
- - <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> + +
+ + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> +
diff --git a/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex index 980cc4b05a..8e12926fb9 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex @@ -27,8 +27,17 @@
- - <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> + +
+ + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> +
diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index a0c6482690..1ce79f9565 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1750,6 +1750,9 @@ msgid "here." msgstr "" #, elixir-format +#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:73 #: lib/block_scout_web/templates/address_token/index.html.eex:26 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:70 +#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:33 msgid "CSV" msgstr "" From 9f82ea43f53a7f1b8ffc79149a2446667ea64811 Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Thu, 27 Jun 2019 10:49:33 +0300 Subject: [PATCH 111/133] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c65d4c942..fdb24d1081 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - [#2146](https://github.com/poanetwork/blockscout/pull/2146) - feat: add eth_getLogs rpc endpoint ### Fixes +- [#2257](https://github.com/poanetwork/blockscout/pull/2257) - 'download csv' button added to different tabs - [#2242](https://github.com/poanetwork/blockscout/pull/2242) - added styles for 'download csv' button - [#2238](https://github.com/poanetwork/blockscout/pull/2238) - header content alignment issue, hide navbar on outside click - [#2229](https://github.com/poanetwork/blockscout/pull/2229) - gap issue between qr and copy button in token transfers, top cards width and height issue From 830c30ae6afb20f3f7ba4225cb9a2afa152833a0 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 27 Jun 2019 14:45:24 +0300 Subject: [PATCH 112/133] hide csv button if there are no transactions --- apps/block_scout_web/assets/js/lib/async_listing_load.js | 8 ++++++++ .../templates/address_transaction/index.html.eex | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/block_scout_web/assets/js/lib/async_listing_load.js b/apps/block_scout_web/assets/js/lib/async_listing_load.js index 3a3eb2fd6c..8610d901f6 100644 --- a/apps/block_scout_web/assets/js/lib/async_listing_load.js +++ b/apps/block_scout_web/assets/js/lib/async_listing_load.js @@ -219,6 +219,14 @@ export const elements = { $el.hide() } + }, + '[csv-download]': { + render ($el, state) { + if (state.emptyResponse) { + return $el.hide() + } + return $el.show() + } } } diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex index a24df921c6..3750c772cd 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_transaction/index.html.eex @@ -50,8 +50,8 @@ - - + + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "top", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> @@ -66,9 +66,9 @@
- +
-
+
Download  to_string(@address.hash)}) %>> <%= gettext("CSV") %> From 3a7f4974d503dcfc23b786ef1fda501f933e0361 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 27 Jun 2019 14:53:42 +0300 Subject: [PATCH 113/133] fix gettext --- apps/block_scout_web/priv/gettext/default.pot | 16 ++++++++++++++- .../priv/gettext/en/LC_MESSAGES/default.po | 20 +++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index bf9db8c12b..6aec2d5849 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1699,7 +1699,6 @@ msgstr "" msgid "Anything not in this list is not supported. Click on the method to be taken to the documentation for that method, and check the notes section for any potential differences." msgstr "" - #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:4 msgid "ETH RPC API Documentation" @@ -1739,3 +1738,18 @@ msgstr "" #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 msgid "here." msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_transaction/index.html.eex:74 +msgid "CSV" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:44 +msgid "ERC-20 " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:45 +msgid "ERC-721 " +msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index d3d4e833d6..27af6d233c 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -1684,7 +1684,7 @@ msgstr "" msgid "New Smart Contract Verification" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/transaction/overview.html.eex:178 msgid " Token Transfer" msgstr "" @@ -1699,6 +1699,7 @@ msgstr "" msgid "Anything not in this list is not supported. Click on the method to be taken to the documentation for that method, and check the notes section for any potential differences." msgstr "" +#, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:4 msgid "ETH RPC API Documentation" msgstr "" @@ -1713,7 +1714,7 @@ msgstr "" msgid "However, in general, the" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:27 msgid "There is no decompilded contracts for this address." msgstr "" @@ -1737,3 +1738,18 @@ msgstr "" #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:9 msgid "here." msgstr "" + +#, elixir-format +#: lib/block_scout_web/templates/address_transaction/index.html.eex:74 +msgid "CSV" +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:44 +msgid "ERC-20 " +msgstr "" + +#, elixir-format +#: lib/block_scout_web/views/transaction_view.ex:45 +msgid "ERC-721 " +msgstr "" From eb544a3c0a80f000696aa8be7e2be486418269f7 Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 27 Jun 2019 14:54:07 +0300 Subject: [PATCH 114/133] header logo aligned to the center properly --- apps/block_scout_web/assets/css/components/_navbar.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/block_scout_web/assets/css/components/_navbar.scss b/apps/block_scout_web/assets/css/components/_navbar.scss index b8855a63ae..48c6c50f02 100644 --- a/apps/block_scout_web/assets/css/components/_navbar.scss +++ b/apps/block_scout_web/assets/css/components/_navbar.scss @@ -217,6 +217,7 @@ $navbar-logo-width: auto !default; .navbar-brand { margin-left: 0; flex-shrink: 1; + display: inline-flex; .navbar-logo { max-width: 100%; } From 29471090d240ab1902acf61d18177c8ee2af80aa Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Thu, 27 Jun 2019 14:56:09 +0300 Subject: [PATCH 115/133] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index db258a24ee..1e131d5af3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - [#2193](https://github.com/poanetwork/blockscout/pull/2193) - feat: add BLOCKSCOUT_HOST, and use it in API docs ### Fixes +- [#2261](https://github.com/poanetwork/blockscout/pull/2261) - header logo aligned to the center properly - [#2254](https://github.com/poanetwork/blockscout/pull/2254) - search length issue, tile link wrapping issue - [#2238](https://github.com/poanetwork/blockscout/pull/2238) - header content alignment issue, hide navbar on outside click - [#2229](https://github.com/poanetwork/blockscout/pull/2229) - gap issue between qr and copy button in token transfers, top cards width and height issue From ffd966dd76219e239e978ba1d8fae1170daec1fa Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 27 Jun 2019 14:57:02 +0300 Subject: [PATCH 116/133] hide csv button --- apps/block_scout_web/assets/js/lib/async_listing_load.js | 8 ++++++++ .../templates/address_token/index.html.eex | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/block_scout_web/assets/js/lib/async_listing_load.js b/apps/block_scout_web/assets/js/lib/async_listing_load.js index 3a3eb2fd6c..8610d901f6 100644 --- a/apps/block_scout_web/assets/js/lib/async_listing_load.js +++ b/apps/block_scout_web/assets/js/lib/async_listing_load.js @@ -219,6 +219,14 @@ export const elements = { $el.hide() } + }, + '[csv-download]': { + render ($el, state) { + if (state.emptyResponse) { + return $el.hide() + } + return $el.show() + } } } diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex index 4b180fa761..840d9cc1da 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_token/index.html.eex @@ -20,9 +20,9 @@
- +
-
+
Download to_string(@address.hash)}) %>><%= gettext("CSV") %> From 3c32a093cc683de9104d7cccc4a035566c3cdb27 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Thu, 27 Jun 2019 15:09:33 +0300 Subject: [PATCH 117/133] add CHANGELOG entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bba5170e0b..c24ac7c187 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ - [#2167](https://github.com/poanetwork/blockscout/pull/2167) - feat: document eth rpc api mimicking endpoints - [#2225](https://github.com/poanetwork/blockscout/pull/2225) - fix metadata decoding in Solidity 0.5.9 smart contract verification - [#2204](https://github.com/poanetwork/blockscout/pull/2204) - fix large contract verification +- [#2247](https://github.com/poanetwork/blockscout/pull/2247) - hide logs search if there are no logs ### Chore - [#2127](https://github.com/poanetwork/blockscout/pull/2127) - use previouse chromedriver version From 76657e8dab35357e5fe8ee671126f6615219c9b5 Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 27 Jun 2019 15:23:49 +0300 Subject: [PATCH 118/133] added an ability to close network selector on outside click --- .../assets/css/components/_network-selector.scss | 9 +++++++++ .../assets/js/lib/network_selector.js | 6 ++++++ .../templates/layout/_network_selector.html.eex | 1 + apps/block_scout_web/priv/gettext/default.pot | 14 +++++++------- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/apps/block_scout_web/assets/css/components/_network-selector.scss b/apps/block_scout_web/assets/css/components/_network-selector.scss index 3086639050..ad0864bf61 100644 --- a/apps/block_scout_web/assets/css/components/_network-selector.scss +++ b/apps/block_scout_web/assets/css/components/_network-selector.scss @@ -26,6 +26,14 @@ $network-selector-item-icon-dimensions: 30px !default; z-index: 123; } +.network-selector-overlay-close { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + .network-selector-wrapper { display: flex; height: 100%; @@ -44,6 +52,7 @@ $network-selector-item-icon-dimensions: 30px !default; padding-top: 28px; position: relative; transition: right 0.25s ease-out; + z-index: 2; } .network-selector-close { diff --git a/apps/block_scout_web/assets/js/lib/network_selector.js b/apps/block_scout_web/assets/js/lib/network_selector.js index f7765329a0..20c8e3d206 100644 --- a/apps/block_scout_web/assets/js/lib/network_selector.js +++ b/apps/block_scout_web/assets/js/lib/network_selector.js @@ -4,6 +4,7 @@ $(function () { const mainBody = $('body') const showNetworkSelector = $('.js-show-network-selector') const hideNetworkSelector = $('.js-network-selector-close') + const hideNetworkSelectorOverlay = $('.js-network-selector-overlay-close') const networkSelector = $('.js-network-selector') const networkSelectorOverlay = $('.js-network-selector-overlay') const networkSelectorTab = $('.js-network-selector-tab') @@ -21,6 +22,11 @@ $(function () { closeNetworkSelector() }) + hideNetworkSelectorOverlay.on('click', (e) => { + e.preventDefault() + closeNetworkSelector() + }) + networkSelectorTab.on('click', function (e) { e.preventDefault() setNetworkTab($(this)) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex index 41f990b589..4744d7d371 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex @@ -1,4 +1,5 @@
+
diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 1cf4275fcf..21dc7d4afc 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -112,7 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -1751,31 +1751,31 @@ msgid "here." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 msgid "Change Network" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:24 msgid "Favorites" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:12 msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 msgid "Mainnet" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:18 msgid "Search network" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 msgid "Testnet" msgstr "" From 5c085b27e53757c120c29e09da93ab24d9897cea Mon Sep 17 00:00:00 2001 From: maxgrapps <50101080+maxgrapps@users.noreply.github.com> Date: Thu, 27 Jun 2019 15:25:27 +0300 Subject: [PATCH 119/133] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7444ad265a..ac5dd3a500 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - [#2146](https://github.com/poanetwork/blockscout/pull/2146) - feat: add eth_getLogs rpc endpoint ### Fixes +- [#2263](https://github.com/poanetwork/blockscout/pull/2263) - added an ability to close network selector on outside click - [#2201](https://github.com/poanetwork/blockscout/pull/2201) - footer columns fix - [#2179](https://github.com/poanetwork/blockscout/pull/2179) - fix docker build error - [#2165](https://github.com/poanetwork/blockscout/pull/2165) - sort blocks by timestamp when calculating average block time From da348dfc73ced9869b50f84143a292ace3ee2c69 Mon Sep 17 00:00:00 2001 From: maxgrapps Date: Thu, 27 Jun 2019 15:30:27 +0300 Subject: [PATCH 120/133] commented 'download csv' button where is no logic --- .../templates/address_internal_transaction/index.html.eex | 6 +++--- .../templates/tokens/transfer/index.html.eex | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_internal_transaction/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_internal_transaction/index.html.eex index b3d92333a7..2b4fd18674 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_internal_transaction/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_internal_transaction/index.html.eex @@ -68,16 +68,16 @@
-
+ <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> -
+
diff --git a/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex index 8e12926fb9..66038da607 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex @@ -28,16 +28,16 @@
-
+ <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> -
+
From 8df146b4e621d999b308f0206287b0eb807d7d82 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Thu, 27 Jun 2019 17:34:50 +0300 Subject: [PATCH 121/133] Remove duplicate record from internalization files --- apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po | 5 ----- 1 file changed, 5 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index 0cc1ee30e2..ee5b704cba 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -1719,11 +1719,6 @@ msgstr "" msgid "There is no decompilded contracts for this address." msgstr "" -#, elixir-format -#: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:27 -msgid "There is no decompilded contracts for this address." -msgstr "" - #, elixir-format #: lib/block_scout_web/templates/api_docs/eth_rpc.html.eex:7 msgid "This API is provided to support some rpc methods in the exact format specified for ethereum nodes, which can be found " From de58a6f7e70a8f36b0c7cc7ab1281945d3d1a197 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Thu, 27 Jun 2019 17:45:20 +0300 Subject: [PATCH 122/133] Fix gettext and format tests --- apps/block_scout_web/priv/gettext/default.pot | 7 +------ .../controllers/address_transaction_controller_test.exs | 4 ++++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 700328ec74..660be028e5 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1742,16 +1742,11 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:73 #: lib/block_scout_web/templates/address_token/index.html.eex:26 -#: lib/block_scout_web/templates/address_transaction/index.html.eex:70 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:72 #: lib/block_scout_web/templates/tokens/transfer/index.html.eex:33 msgid "CSV" msgstr "" -#, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:74 -msgid "CSV" -msgstr "" - #, elixir-format #: lib/block_scout_web/views/transaction_view.ex:44 msgid "ERC-20 " diff --git a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs index 5469ab6cc7..a29d6b9be6 100644 --- a/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs +++ b/apps/block_scout_web/test/block_scout_web/controllers/address_transaction_controller_test.exs @@ -147,6 +147,10 @@ defmodule BlockScoutWeb.AddressTransactionControllerTest do conn = get(conn, "/token_transfers_csv", %{"address_id" => to_string(address.hash)}) + assert conn.resp_body |> String.split("\n") |> Enum.count() == 4 + end + end + describe "GET transactions_csv/2" do test "download csv file with transactions", %{conn: conn} do address = insert(:address) From 9a301038cb848d2b890e93027106b9efb140d754 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Thu, 27 Jun 2019 17:51:33 +0300 Subject: [PATCH 123/133] credo test fix --- .../controllers/address_transaction_controller.ex | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex index 8d144199c6..51503fd7c1 100644 --- a/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex +++ b/apps/block_scout_web/lib/block_scout_web/controllers/address_transaction_controller.ex @@ -10,8 +10,7 @@ defmodule BlockScoutWeb.AddressTransactionController do alias BlockScoutWeb.TransactionView alias Explorer.{Chain, Market} - alias Explorer.Chain.AddressTokenTransferCsvExporter - alias Explorer.Chain.AddressTransactionCsvExporter + alias Explorer.Chain.{AddressTokenTransferCsvExporter, AddressTransactionCsvExporter} alias Explorer.ExchangeRates.Token alias Indexer.Fetcher.CoinBalanceOnDemand alias Phoenix.View From 0f1d8e1c51d0dbda2503bc61ac4c979423f518d3 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Thu, 27 Jun 2019 18:48:31 +0300 Subject: [PATCH 124/133] dropdown_main_nets and dropdown_test_nets to show only chains, that are not marked to hide in dropdown --- .../templates/layout/_network_selector.html.eex | 4 ++-- .../lib/block_scout_web/views/layout_view.ex | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex index 4744d7d371..1e31d205e1 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/layout/_network_selector.html.eex @@ -24,8 +24,8 @@
<%= gettext("Favorites") %>
- <% main_nets = main_nets(other_networks()) %> - <% test_nets = test_nets(other_networks()) %> + <% main_nets = dropdown_main_nets() %> + <% test_nets = dropdown_test_nets() %>
<%= for %{url: url, title: title} <- main_nets do %> <%= render BlockScoutWeb.LayoutView, "_network_selector_item.html", title: title, url: url, tab_type: "Mainnet" %> diff --git a/apps/block_scout_web/lib/block_scout_web/views/layout_view.ex b/apps/block_scout_web/lib/block_scout_web/views/layout_view.ex index 12df6d3f0a..b33b1dd4c2 100644 --- a/apps/block_scout_web/lib/block_scout_web/views/layout_view.ex +++ b/apps/block_scout_web/lib/block_scout_web/views/layout_view.ex @@ -198,6 +198,16 @@ defmodule BlockScoutWeb.LayoutView do |> Enum.reject(&Map.get(&1, :hide_in_dropdown?)) end + def dropdown_main_nets do + dropdown_nets() + |> main_nets() + end + + def dropdown_test_nets do + dropdown_nets() + |> test_nets() + end + def dropdown_head_main_nets do dropdown_nets() |> main_nets() From c81468b071cc070b99e592ad0fc1f7373668e174 Mon Sep 17 00:00:00 2001 From: Andrew Gross Date: Thu, 27 Jun 2019 16:42:49 -0600 Subject: [PATCH 125/133] move projects to README, change docsify theme due to mobile rendering issues --- README.md | 20 ++++++++++++++++++++ docs/_sidebar.md | 1 - docs/env-variables.md | 2 +- docs/index.html | 9 +++------ docs/projects.md | 20 -------------------- 5 files changed, 24 insertions(+), 28 deletions(-) delete mode 100644 docs/projects.md diff --git a/README.md b/README.md index cbf1af6acf..5dc91fb8ef 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,25 @@ BlockScout is an Elixir application that allows users to search transactions, vi Currently available full-featured block explorers (Etherscan, Etherchain, Blockchair) are closed systems which are not independently verifiable. As Ethereum sidechains continue to proliferate in both private and public settings, transparent, open-source tools are needed to analyze and validate transactions. +## Supported Projects + +| **Hosted Mainnets** | **Hosted Testnets** | **Additional Chains using BlockScout** | +|--------------------------------------------------------|-------------------------------------------------------|----------------------------------------------------| +| [Aerum](https://blockscout.com/aerum/mainnet) | [Goerli Testnet](https://blockscout.com/eth/goerli) | [ARTIS](https://explorer.sigma1.artis.network) | +| [Callisto](https://blockscout.com/callisto/mainnet) | [Kovan Testnet](https://blockscout.com/eth/kovan) | [Ether-1](https://blocks.ether1.wattpool.net/) | +| [Ethereum Classic](https://blockscout.com/etc/mainnet) | [POA Sokol Testnet](https://blockscout.com/poa/sokol) | [Fuse Network](https://explorer.fuse.io/) | +| [Ethereum Mainnet](https://blockscout.com/eth/mainnet) | [Rinkeby Testnet](https://blockscout.com/eth/rinkeby) | [Oasis Labs](https://blockexplorer.oasiscloud.io/) | +| [POA Core Network](https://blockscout.com/poa/core) | [Ropsten Testnet](https://blockscout.com/eth/ropsten) | [Petrichor](https://explorer.petrachor.com/) | +| [RSK](https://blockscout.com/rsk/mainnet) | | [PIRL](http://pirl.es/) | +| [xDai Chain](https://blockscout.com/poa/dai) | | [SafeChain](https://explorer.safechain.io) | +| | | [SpringChain](https://explorer.springrole.com/) | +| | | [Kotti Testnet](https://kottiexplorer.ethernode.io/) | +| | | [Loom](http://plasma-blockexplorer.dappchains.com/) | +| | | [Tenda](https://tenda.network) | + + +Current BlockScout versions for hosted projects are available [on the forum](https://forum.poa.network/t/deployed-instances-on-blockscout-com/1938). + ## Getting Started See the [project documentation](https://poanetwork.github.io/blockscout) for instructions: @@ -35,6 +54,7 @@ See the [project documentation](https://poanetwork.github.io/blockscout) for ins - [ENV variables](https://poanetwork.github.io/blockscout/#/env-variables) - [Configuration options](https://poanetwork.github.io/blockscout/#/dev-env) + ## Acknowledgements We would like to thank the [EthPrize foundation](http://ethprize.io/) for their funding support. diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 50b0e4ca83..0e17cfc60b 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -3,7 +3,6 @@ - About BlockScout - [About](about.md) - - [Projects Using BlockScout](projects.md) - [Umbrella Project Organization](umbrella.md) - Installation & Configuration diff --git a/docs/env-variables.md b/docs/env-variables.md index 77f05ca0a5..4cbef49e82 100644 --- a/docs/env-variables.md +++ b/docs/env-variables.md @@ -1,6 +1,6 @@ # BlockScout Env Variables -Below is a table outlining the environment variables utilized by BlockScout. +Below is a table outlining the environment variables utilized by BlockScout. | Variable | Required | Description | Default | Version | diff --git a/docs/index.html b/docs/index.html index a1fdb1af94..73107d93fa 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,12 +6,10 @@ - + @@ -32,7 +30,6 @@ - diff --git a/docs/projects.md b/docs/projects.md deleted file mode 100644 index 49ace8c26b..0000000000 --- a/docs/projects.md +++ /dev/null @@ -1,20 +0,0 @@ - - -### Supported Projects - -| **Hosted Mainnets** | **Hosted Testnets** | **Additional Chains using BlockScout** | -|--------------------------------------------------------|-------------------------------------------------------|----------------------------------------------------| -| [Aerum](https://blockscout.com/aerum/mainnet) | [Goerli Testnet](https://blockscout.com/eth/goerli) | [ARTIS](https://explorer.sigma1.artis.network) | -| [Callisto](https://blockscout.com/callisto/mainnet) | [Kovan Testnet](https://blockscout.com/eth/kovan) | [Ether-1](https://blocks.ether1.wattpool.net/) | -| [Ethereum Classic](https://blockscout.com/etc/mainnet) | [POA Sokol Testnet](https://blockscout.com/poa/sokol) | [Fuse Network](https://explorer.fuse.io/) | -| [Ethereum Mainnet](https://blockscout.com/eth/mainnet) | [Rinkeby Testnet](https://blockscout.com/eth/rinkeby) | [Oasis Labs](https://blockexplorer.oasiscloud.io/) | -| [POA Core Network](https://blockscout.com/poa/core) | [Ropsten Testnet](https://blockscout.com/eth/ropsten) | [Petrichor](https://explorer.petrachor.com/) | -| [RSK](https://blockscout.com/rsk/mainnet) | | [PIRL](http://pirl.es/) | -| [xDai Chain](https://blockscout.com/poa/dai) | | [SafeChain](https://explorer.safechain.io) | -| | | [SpringChain](https://explorer.springrole.com/) | -| | | [Kotti Testnet](https://kottiexplorer.ethernode.io/) | -| | | [Loom](http://plasma-blockexplorer.dappchains.com/) | -| | | [Tenda](https://tenda.network) | - - -Current BlockScout versions for hosted projects are available [on the forum](https://forum.poa.network/t/deployed-instances-on-blockscout-com/1938). \ No newline at end of file From 41c92806fd892b20dc925eb1d64e623035e7a1e6 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Fri, 28 Jun 2019 11:44:59 +0300 Subject: [PATCH 126/133] add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ecd8e613a7..c85fd9904c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,7 @@ - [#2167](https://github.com/poanetwork/blockscout/pull/2167) - feat: document eth rpc api mimicking endpoints - [#2225](https://github.com/poanetwork/blockscout/pull/2225) - fix metadata decoding in Solidity 0.5.9 smart contract verification - [#2204](https://github.com/poanetwork/blockscout/pull/2204) - fix large contract verification +- [#2248](https://github.com/poanetwork/blockscout/pull/2248) - sort block after query execution for average block time ### Chore - [#2127](https://github.com/poanetwork/blockscout/pull/2127) - use previouse chromedriver version From 9c33fe7179e923e39a4989460c0bb4184f9c599d Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Fri, 28 Jun 2019 14:26:41 +0300 Subject: [PATCH 127/133] allow to exclude uncles from average block time calculation --- apps/explorer/config/config.exs | 4 ++- .../explorer/counters/average_block_time.ex | 11 ++++++- apps/explorer/mix.exs | 1 - .../counters/average_block_time_test.exs | 32 +++++++++++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/apps/explorer/config/config.exs b/apps/explorer/config/config.exs index 9a601e6c68..d834d23384 100644 --- a/apps/explorer/config/config.exs +++ b/apps/explorer/config/config.exs @@ -12,7 +12,9 @@ config :explorer, token_functions_reader_max_retries: 3, allowed_evm_versions: System.get_env("ALLOWED_EVM_VERSIONS") || - "homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg" + "homestead,tangerineWhistle,spuriousDragon,byzantium,constantinople,petersburg", + include_uncles_in_average_block_time: + if(System.get_env("UNCLES_IN_AVERAGE_BLOCK_TIME") == "false", do: false, else: true) config :explorer, Explorer.Counters.AverageBlockTime, enabled: true diff --git a/apps/explorer/lib/explorer/counters/average_block_time.ex b/apps/explorer/lib/explorer/counters/average_block_time.ex index 450d6b8fb0..233c15f8b3 100644 --- a/apps/explorer/lib/explorer/counters/average_block_time.ex +++ b/apps/explorer/lib/explorer/counters/average_block_time.ex @@ -70,8 +70,17 @@ defmodule Explorer.Counters.AverageBlockTime do select: {block.number, block.timestamp} ) + query = + if Application.get_env(:explorer, :include_uncles_in_average_block_time) do + timestamps_query + else + from(block in timestamps_query, + where: block.consensus == true + ) + end + timestamps = - timestamps_query + query |> Repo.all() |> Enum.sort_by(fn {_, timestamp} -> timestamp end, &>=/2) |> Enum.map(fn {number, timestamp} -> diff --git a/apps/explorer/mix.exs b/apps/explorer/mix.exs index 1e8c38fbe5..79574b9354 100644 --- a/apps/explorer/mix.exs +++ b/apps/explorer/mix.exs @@ -92,7 +92,6 @@ defmodule Explorer.Mixfile do {:math, "~> 0.3.0"}, {:mock, "~> 0.3.0", only: [:test], runtime: false}, {:mox, "~> 0.4", only: [:test]}, - {:nimble_csv, "~> 0.6.0"}, {:poison, "~> 3.1"}, {:nimble_csv, "~> 0.6.0"}, {:postgrex, ">= 0.0.0"}, diff --git a/apps/explorer/test/explorer/counters/average_block_time_test.exs b/apps/explorer/test/explorer/counters/average_block_time_test.exs index 0f7c328bb3..a827000b31 100644 --- a/apps/explorer/test/explorer/counters/average_block_time_test.exs +++ b/apps/explorer/test/explorer/counters/average_block_time_test.exs @@ -11,6 +11,8 @@ defmodule Explorer.Counters.AverageBlockTimeTest do start_supervised!(AverageBlockTime) Application.put_env(:explorer, AverageBlockTime, enabled: true) + Application.put_env(:explorer, :include_uncles_in_average_block_time, true) + on_exit(fn -> Application.put_env(:explorer, AverageBlockTime, enabled: false) end) @@ -43,6 +45,36 @@ defmodule Explorer.Counters.AverageBlockTimeTest do assert AverageBlockTime.average_block_time() == Timex.Duration.parse!("PT3S") end + test "excludes uncles if include_uncles_in_average_block_time is set to false" do + block_number = 99_999_999 + Application.put_env(:explorer, :include_uncles_in_average_block_time, false) + + first_timestamp = Timex.now() + + insert(:block, number: block_number, consensus: true, timestamp: Timex.shift(first_timestamp, seconds: 3)) + insert(:block, number: block_number, consensus: false, timestamp: Timex.shift(first_timestamp, seconds: 4)) + insert(:block, number: block_number + 1, consensus: true, timestamp: Timex.shift(first_timestamp, seconds: 5)) + + AverageBlockTime.refresh() + + assert AverageBlockTime.average_block_time() == Timex.Duration.parse!("PT2S") + end + + test "excludes uncles if include_uncles_in_average_block_time is set to true" do + block_number = 99_999_999 + Application.put_env(:explorer, :include_uncles_in_average_block_time, true) + + first_timestamp = Timex.now() + + insert(:block, number: block_number, consensus: true, timestamp: Timex.shift(first_timestamp, seconds: 3)) + insert(:block, number: block_number, consensus: false, timestamp: Timex.shift(first_timestamp, seconds: 4)) + insert(:block, number: block_number + 1, consensus: true, timestamp: Timex.shift(first_timestamp, seconds: 5)) + + AverageBlockTime.refresh() + + assert AverageBlockTime.average_block_time() == Timex.Duration.parse!("PT1S") + end + test "when there are no uncles sorts by block number" do block_number = 99_999_999 From ad84e49a832426b795d693bccf27f7b6d206e111 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Fri, 28 Jun 2019 15:10:08 +0300 Subject: [PATCH 128/133] add CHANGELOG entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5466e53feb..8ac66e9dd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - [#2146](https://github.com/poanetwork/blockscout/pull/2146) - feat: add eth_getLogs rpc endpoint - [#2190](https://github.com/poanetwork/blockscout/pull/2190) - show all token transfers - [#2193](https://github.com/poanetwork/blockscout/pull/2193) - feat: add BLOCKSCOUT_HOST, and use it in API docs +- [#2266](https://github.com/poanetwork/blockscout/pull/2266) - allow excluding uncles from average block time calculation #2266 ### Fixes - [#2263](https://github.com/poanetwork/blockscout/pull/2263) - added an ability to close network selector on outside click From f9468823ee9320c106ec7702ff70ab6366a0292e Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Fri, 28 Jun 2019 15:15:39 +0300 Subject: [PATCH 129/133] remove not existing assigns in html code --- .../address_internal_transaction/index.html.eex | 13 ++----------- .../templates/tokens/transfer/index.html.eex | 13 ++----------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/apps/block_scout_web/lib/block_scout_web/templates/address_internal_transaction/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/address_internal_transaction/index.html.eex index 2b4fd18674..3bc2e7fe9b 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/address_internal_transaction/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/address_internal_transaction/index.html.eex @@ -67,17 +67,8 @@
- - - <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> - + + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %>
diff --git a/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex b/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex index 66038da607..980cc4b05a 100644 --- a/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex +++ b/apps/block_scout_web/lib/block_scout_web/templates/tokens/transfer/index.html.eex @@ -27,17 +27,8 @@
- - - <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %> - + + <%= render BlockScoutWeb.CommonComponentsView, "_pagination_container.html", position: "bottom", cur_page_number: "1", show_pagination_limit: true, data_next_page_button: true, data_prev_page_button: true %>
From 412e07bd7e738fb1130f0296b539eb755906e51a Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Fri, 28 Jun 2019 15:18:53 +0300 Subject: [PATCH 130/133] add CHANGELOG entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5466e53feb..fb009f99fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,6 +57,7 @@ - [#2204](https://github.com/poanetwork/blockscout/pull/2204) - fix large contract verification - [#2247](https://github.com/poanetwork/blockscout/pull/2247) - hide logs search if there are no logs - [#2248](https://github.com/poanetwork/blockscout/pull/2248) - sort block after query execution for average block time +- [#2268](https://github.com/poanetwork/blockscout/pull/2268) - remove not existing assigns in html code ### Chore - [#2127](https://github.com/poanetwork/blockscout/pull/2127) - use previouse chromedriver version From b9859df54d16dac7494f654278b0c5d1fbe4a0e0 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Fri, 28 Jun 2019 15:21:42 +0300 Subject: [PATCH 131/133] fix gettext --- apps/block_scout_web/priv/gettext/default.pot | 2 -- .../priv/gettext/en/LC_MESSAGES/default.po | 27 ++++++++++--------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/apps/block_scout_web/priv/gettext/default.pot b/apps/block_scout_web/priv/gettext/default.pot index 76113b102b..686000880d 100644 --- a/apps/block_scout_web/priv/gettext/default.pot +++ b/apps/block_scout_web/priv/gettext/default.pot @@ -1771,10 +1771,8 @@ msgid "Testnet" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:73 #: lib/block_scout_web/templates/address_token/index.html.eex:26 #: lib/block_scout_web/templates/address_transaction/index.html.eex:72 -#: lib/block_scout_web/templates/tokens/transfer/index.html.eex:33 msgid "CSV" msgstr "" diff --git a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po index e20b8750fa..d31714ba4c 100644 --- a/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po +++ b/apps/block_scout_web/priv/gettext/en/LC_MESSAGES/default.po @@ -112,7 +112,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:27 #: lib/block_scout_web/templates/address_transaction/index.html.eex:23 -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:20 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 #: lib/block_scout_web/views/address_internal_transaction_view.ex:8 #: lib/block_scout_web/views/address_transaction_view.ex:8 msgid "All" @@ -734,7 +734,7 @@ msgid "There are no token transfers for this address." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_token/index.html.eex:19 +#: lib/block_scout_web/templates/address_token/index.html.eex:18 msgid "There are no tokens for this address." msgstr "" @@ -812,7 +812,7 @@ msgstr "" #, elixir-format #: lib/block_scout_web/templates/address/_tabs.html.eex:8 -#: lib/block_scout_web/templates/address_token/index.html.eex:9 +#: lib/block_scout_web/templates/address_token/index.html.eex:8 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:9 #: lib/block_scout_web/views/address_view.ex:304 msgid "Tokens" @@ -1209,7 +1209,7 @@ msgstr "" #: lib/block_scout_web/templates/address_coin_balance/index.html.eex:34 #: lib/block_scout_web/templates/address_internal_transaction/index.html.eex:61 #: lib/block_scout_web/templates/address_logs/index.html.eex:21 -#: lib/block_scout_web/templates/address_token/index.html.eex:14 +#: lib/block_scout_web/templates/address_token/index.html.eex:13 #: lib/block_scout_web/templates/address_token_transfer/index.html.eex:20 #: lib/block_scout_web/templates/address_transaction/index.html.eex:59 #: lib/block_scout_web/templates/address_validation/index.html.eex:22 @@ -1715,7 +1715,7 @@ msgstr "" msgid "However, in general, the" msgstr "" -#, elixir-format, fuzzy +#, elixir-format #: lib/block_scout_web/templates/address_decompiled_contract/index.html.eex:27 msgid "There is no decompilded contracts for this address." msgstr "" @@ -1741,37 +1741,38 @@ msgid "here." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:10 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 msgid "Change Network" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:24 msgid "Favorites" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:11 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:12 msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore." msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:21 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 msgid "Mainnet" msgstr "" -#, elixir-format, fuzzy -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:17 +#, elixir-format +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:18 msgid "Search network" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/layout/_network_selector.html.eex:22 +#: lib/block_scout_web/templates/layout/_network_selector.html.eex:23 msgid "Testnet" msgstr "" #, elixir-format -#: lib/block_scout_web/templates/address_transaction/index.html.eex:74 +#: lib/block_scout_web/templates/address_token/index.html.eex:26 +#: lib/block_scout_web/templates/address_transaction/index.html.eex:72 msgid "CSV" msgstr "" From 144f39db5b6bf49d7064b928d63dca6a09673705 Mon Sep 17 00:00:00 2001 From: pasqu4le Date: Fri, 28 Jun 2019 17:06:50 +0200 Subject: [PATCH 132/133] Remove duplicate params in `Indexer.Fetcher.TokenBalance` Problem: `Explorer.Chain.Import.Runner.Address.TokenBalances` fails with the `cardinality_violation` error because it tries to insert more than once token balances (for the same {token_contract_address_hash, address_hash, block_number} tuple) in a single database transaction. Solution: filter out duplicate parameters in `Indexer.Fetcher.TokenBalance` so that no duplicates are sent to be imported. --- CHANGELOG.md | 1 + .../lib/indexer/fetcher/token_balance.ex | 5 ++- .../indexer/fetcher/token_balance_test.exs | 35 +++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5466e53feb..deba773ac5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,6 +57,7 @@ - [#2204](https://github.com/poanetwork/blockscout/pull/2204) - fix large contract verification - [#2247](https://github.com/poanetwork/blockscout/pull/2247) - hide logs search if there are no logs - [#2248](https://github.com/poanetwork/blockscout/pull/2248) - sort block after query execution for average block time +- [#2270](https://github.com/poanetwork/blockscout/pull/2270) - Remove duplicate params in `Indexer.Fetcher.TokenBalance` ### Chore - [#2127](https://github.com/poanetwork/blockscout/pull/2127) - use previouse chromedriver version diff --git a/apps/indexer/lib/indexer/fetcher/token_balance.ex b/apps/indexer/lib/indexer/fetcher/token_balance.ex index bbad8c4d66..b2f430efa0 100644 --- a/apps/indexer/lib/indexer/fetcher/token_balance.ex +++ b/apps/indexer/lib/indexer/fetcher/token_balance.ex @@ -93,7 +93,10 @@ defmodule Indexer.Fetcher.TokenBalance do end def fetch_from_blockchain(params_list) do - retryable_params_list = Enum.filter(params_list, &(&1.retries_count <= @max_retries)) + retryable_params_list = + params_list + |> Enum.filter(&(&1.retries_count <= @max_retries)) + |> Enum.uniq_by(&Map.take(&1, [:token_contract_address_hash, :address_hash, :block_number])) Logger.metadata(count: Enum.count(retryable_params_list)) diff --git a/apps/indexer/test/indexer/fetcher/token_balance_test.exs b/apps/indexer/test/indexer/fetcher/token_balance_test.exs index 2602568be8..2ecee3eacd 100644 --- a/apps/indexer/test/indexer/fetcher/token_balance_test.exs +++ b/apps/indexer/test/indexer/fetcher/token_balance_test.exs @@ -111,6 +111,41 @@ defmodule Indexer.Fetcher.TokenBalanceTest do assert TokenBalance.run(token_balances, nil) == :ok end + + test "fetches duplicate params only once" do + %Address.TokenBalance{ + address_hash: %Hash{bytes: address_hash_bytes} = address_hash, + token_contract_address_hash: %Hash{bytes: token_contract_address_hash_bytes}, + block_number: block_number + } = insert(:token_balance, value_fetched_at: nil, value: nil) + + expect( + EthereumJSONRPC.Mox, + :json_rpc, + fn [%{id: id, method: "eth_call", params: [%{data: _, to: _}, _]}], _options -> + {:ok, + [ + %{ + id: id, + jsonrpc: "2.0", + result: "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000" + } + ]} + end + ) + + assert TokenBalance.run( + [ + {address_hash_bytes, token_contract_address_hash_bytes, block_number, 0}, + {address_hash_bytes, token_contract_address_hash_bytes, block_number, 0} + ], + nil + ) == :ok + + assert 1 = + from(tb in Address.TokenBalance, where: tb.address_hash == ^address_hash) + |> Explorer.Repo.aggregate(:count, :id) + end end describe "import_token_balances/1" do From 9545851c8684bf63f0ba64364a67dae5ea7387f0 Mon Sep 17 00:00:00 2001 From: Ayrat Badykov Date: Mon, 1 Jul 2019 10:35:36 +0300 Subject: [PATCH 133/133] fix CR issues --- CHANGELOG.md | 2 +- .../explorer/test/explorer/counters/average_block_time_test.exs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9826c325f9..b5f665a134 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ - [#2146](https://github.com/poanetwork/blockscout/pull/2146) - feat: add eth_getLogs rpc endpoint - [#2190](https://github.com/poanetwork/blockscout/pull/2190) - show all token transfers - [#2193](https://github.com/poanetwork/blockscout/pull/2193) - feat: add BLOCKSCOUT_HOST, and use it in API docs -- [#2266](https://github.com/poanetwork/blockscout/pull/2266) - allow excluding uncles from average block time calculation #2266 +- [#2266](https://github.com/poanetwork/blockscout/pull/2266) - allow excluding uncles from average block time calculation ### Fixes - [#2263](https://github.com/poanetwork/blockscout/pull/2263) - added an ability to close network selector on outside click diff --git a/apps/explorer/test/explorer/counters/average_block_time_test.exs b/apps/explorer/test/explorer/counters/average_block_time_test.exs index a827000b31..5eb00d4c73 100644 --- a/apps/explorer/test/explorer/counters/average_block_time_test.exs +++ b/apps/explorer/test/explorer/counters/average_block_time_test.exs @@ -62,7 +62,6 @@ defmodule Explorer.Counters.AverageBlockTimeTest do test "excludes uncles if include_uncles_in_average_block_time is set to true" do block_number = 99_999_999 - Application.put_env(:explorer, :include_uncles_in_average_block_time, true) first_timestamp = Timex.now()