Re: [OPAE] Signaltap not working with nlb_mode_0_stp example

Adler, Michael <michael.adler at intel.com> Mon, 03 Dec 2018 14:53:05 +0000
Newsgroups dev.linux.lists.opae
Message-ID <[email protected]>
--===============0115142935479240302==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

That=E2=80=99s odd. Did your build pass timing? Look in build/output/timing=
_report/clocks.sta.fail.summary, which should be empty. Run scripts 1.2 and=
 later will print timing pass/fail at the end without having to look.

The method used internally to build the AFU you say works is identical, dri=
ven by the same afu_synth_setup of the same configuration file. I=E2=80=99m=
 not a big signaltap user, so going out on a limb. Does it have to be run f=
rom the directory where the project was built? That would be build_mode_0_s=
tp/build (one level down from where you are in the =E2=80=9Cbuild=E2=80=9D =
directory). You would also have to adjust the path to ../../hw/par/stp_basi=
c.stp. You could also try to run STP from the directory that you already kn=
ow works but with the AFU you build loaded in order to rule out path proble=
ms.

I suppose it could be a beta problem, too. The final version of the code ca=
n be downloaded here<https://www.intel.com/content/www/us/en/programmable/p=
roducts/boards_and_kits/dev-kits/altera/acceleration-card-arria-10-gx.html>=
. It includes a patched version of Quartus (17.1.1) that fixes some PR prob=
lems. You will have to follow the instructions for updating the board confi=
guration. That process is improving significantly with newer releases. No g=
uarantee that doing the update will fix the problem, but the release is ava=
ilable and is an improvement over the beta.

-Michael


From: OPAE <opae-bounces(a)lists.01.org> on behalf of Jens Huthmann <jens.h=
uthmann(a)riken.jp>
Date: Sunday, December 2, 2018 at 9:51 PM
To: "opae(a)lists.01.org" <opae(a)lists.01.org>
Subject: [OPAE] Signaltap not working with nlb_mode_0_stp example


Hello!



I want to use Signaltap to debug a system build into the green area of the =
AFU.

To confirm that it works I followed the instructions at https://www.intel.c=
om/content/www/us/en/programmable/documentation/bfr1522087299048.html#dir15=
12265248423

The example works if I just load the provided bitstream from the nlb_mode_0=
_stp/bin directory.

However, if I build the bitstream myself I cannot connect to Signaltap.



After creating a working copy of the example I executed the following steps:



afu_synth_setup -s hw/rtl/filelist_mode_0_stp.txt build_mode_0_stp

cd build_mode_0_stp

/opt/intel/opae/a10_gx_pac_ias_1_1_beta/bin/run.sh

fpgaconf nlb_400.gbs

mmlink -P 3333

system-console --rc_script=3Dmmlink_setup_profiled.tcl remote_debug.sof loc=
alhost 3333

quartus ../hw/par/stp_basic.stp



I could complete every step up until the last one, where I can see the Sign=
altap device but recieve the following error when trying to acquire data.



"Error(261005): Can't find the instance.  Download a design with SRAM Objec=
t File containing this instance."



If I reprogram the device with the provided bitstream it works. The one I g=
enerated using run.sh does not work.



I used Quartus Prime 1.7.1.1 Build 273 for the synthesis and IAS release 1.=
1 beta.



Greetings

Jens

--===============0115142935479240302==
Content-Type: text/html
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="attachment.html"

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpHZW9yZ2lhOw0KCXBhbm9zZS0xOjIgNCA1
IDIgNSA0IDUgMiAzIDM7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBs
aS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9t
Oi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fu
cy1zZXJpZjt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0
eTo5OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNp
dGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsN
Cgljb2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpwLm1zb25vcm1h
bDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21zby1zdHlsZS1uYW1lOm1zb25v
cm1hbDsNCgltYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6
MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCnNwYW4ubA0KCXtt
c28tc3R5bGUtbmFtZTpsOw0KCWNvbG9yOnJlZDsNCglmb250LXdlaWdodDpib2xkO30NCnNwYW4u
RW1haWxTdHlsZTIwDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFt
aWx5OiJHZW9yZ2lhIixzZXJpZjt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpl
eHBvcnQtb25seTsNCglmb250LXNpemU6MTAuMHB0O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtz
aXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW47fQ0KZGl2
LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0i
MTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86
c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEi
IC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBs
YW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJXb3Jk
U2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5
OiZxdW90O0dlb3JnaWEmcXVvdDssc2VyaWYiPlRoYXTigJlzIG9kZC4gRGlkIHlvdXIgYnVpbGQg
cGFzcyB0aW1pbmc/IExvb2sgaW4gYnVpbGQvb3V0cHV0L3RpbWluZ19yZXBvcnQvY2xvY2tzLnN0
YS5mYWlsLnN1bW1hcnksIHdoaWNoIHNob3VsZCBiZSBlbXB0eS4gUnVuIHNjcmlwdHMgMS4yIGFu
ZCBsYXRlciB3aWxsIHByaW50IHRpbWluZyBwYXNzL2ZhaWwgYXQgdGhlIGVuZCB3aXRob3V0DQog
aGF2aW5nIHRvIGxvb2suPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0dlb3JnaWEmcXVvdDssc2VyaWYiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtHZW9yZ2lhJnF1b3Q7LHNlcmlmIj5UaGUgbWV0aG9kIHVz
ZWQgaW50ZXJuYWxseSB0byBidWlsZCB0aGUgQUZVIHlvdSBzYXkgd29ya3MgaXMgaWRlbnRpY2Fs
LCBkcml2ZW4gYnkgdGhlIHNhbWUgYWZ1X3N5bnRoX3NldHVwIG9mIHRoZSBzYW1lIGNvbmZpZ3Vy
YXRpb24gZmlsZS4gSeKAmW0gbm90IGEgYmlnIHNpZ25hbHRhcCB1c2VyLCBzbyBnb2luZyBvdXQg
b24gYSBsaW1iLiBEb2VzDQogaXQgaGF2ZSB0byBiZSBydW4gZnJvbSB0aGUgZGlyZWN0b3J5IHdo
ZXJlIHRoZSBwcm9qZWN0IHdhcyBidWlsdD8gVGhhdCB3b3VsZCBiZSBidWlsZF9tb2RlXzBfc3Rw
L2J1aWxkIChvbmUgbGV2ZWwgZG93biBmcm9tIHdoZXJlIHlvdSBhcmUgaW4gdGhlIOKAnGJ1aWxk
4oCdIGRpcmVjdG9yeSkuIFlvdSB3b3VsZCBhbHNvIGhhdmUgdG8gYWRqdXN0IHRoZSBwYXRoIHRv
IC4uLy4uL2h3L3Bhci9zdHBfYmFzaWMuc3RwLiBZb3UgY291bGQgYWxzbyB0cnkgdG8NCiBydW4g
U1RQIGZyb20gdGhlIGRpcmVjdG9yeSB0aGF0IHlvdSBhbHJlYWR5IGtub3cgd29ya3MgYnV0IHdp
dGggdGhlIEFGVSB5b3UgYnVpbGQgbG9hZGVkIGluIG9yZGVyIHRvIHJ1bGUgb3V0IHBhdGggcHJv
YmxlbXMuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0dlb3JnaWEmcXVvdDssc2VyaWYiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LWZhbWlseTomcXVvdDtHZW9yZ2lhJnF1b3Q7LHNlcmlmIj5JIHN1cHBvc2UgaXQgY291bGQgYmUg
YSBiZXRhIHByb2JsZW0sIHRvby4gVGhlIGZpbmFsIHZlcnNpb24gb2YgdGhlIGNvZGUgY2FuIGJl
IGRvd25sb2FkZWQNCjxhIGhyZWY9Imh0dHBzOi8vd3d3LmludGVsLmNvbS9jb250ZW50L3d3dy91
cy9lbi9wcm9ncmFtbWFibGUvcHJvZHVjdHMvYm9hcmRzX2FuZF9raXRzL2Rldi1raXRzL2FsdGVy
YS9hY2NlbGVyYXRpb24tY2FyZC1hcnJpYS0xMC1neC5odG1sIj4NCmhlcmU8L2E+LiBJdCBpbmNs
dWRlcyBhIHBhdGNoZWQgdmVyc2lvbiBvZiBRdWFydHVzICgxNy4xLjEpIHRoYXQgZml4ZXMgc29t
ZSBQUiBwcm9ibGVtcy4gWW91IHdpbGwgaGF2ZSB0byBmb2xsb3cgdGhlIGluc3RydWN0aW9ucyBm
b3IgdXBkYXRpbmcgdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24uIFRoYXQgcHJvY2VzcyBpcyBpbXBy
b3Zpbmcgc2lnbmlmaWNhbnRseSB3aXRoIG5ld2VyIHJlbGVhc2VzLiBObyBndWFyYW50ZWUgdGhh
dCBkb2luZyB0aGUNCiB1cGRhdGUgd2lsbCBmaXggdGhlIHByb2JsZW0sIGJ1dCB0aGUgcmVsZWFz
ZSBpcyBhdmFpbGFibGUgYW5kIGlzIGFuIGltcHJvdmVtZW50IG92ZXIgdGhlIGJldGEuPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
ZmFtaWx5OiZxdW90O0dlb3JnaWEmcXVvdDssc2VyaWYiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtHZW9yZ2lhJnF1b3Q7LHNlcmlmIj4tTWljaGFlbDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtHZW9yZ2lh
JnF1b3Q7LHNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7R2VvcmdpYSZxdW90OyxzZXJp
ZiI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4i
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4wcHQ7
Y29sb3I6YmxhY2siPkZyb206IDwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMi4w
cHQ7Y29sb3I6YmxhY2siPk9QQUUgJmx0O29wYWUtYm91bmNlc0BsaXN0cy4wMS5vcmcmZ3Q7IG9u
IGJlaGFsZiBvZiBKZW5zIEh1dGhtYW5uICZsdDtqZW5zLmh1dGhtYW5uQHJpa2VuLmpwJmd0Ozxi
cj4NCjxiPkRhdGU6IDwvYj5TdW5kYXksIERlY2VtYmVyIDIsIDIwMTggYXQgOTo1MSBQTTxicj4N
CjxiPlRvOiA8L2I+JnF1b3Q7b3BhZUBsaXN0cy4wMS5vcmcmcXVvdDsgJmx0O29wYWVAbGlzdHMu
MDEub3JnJmd0Ozxicj4NCjxiPlN1YmplY3Q6IDwvYj5bT1BBRV0gU2lnbmFsdGFwIG5vdCB3b3Jr
aW5nIHdpdGggbmxiX21vZGVfMF9zdHAgZXhhbXBsZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8cD5IZWxsbyE8bzpwPjwvbzpwPjwvcD4NCjxwPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPHA+SSB3YW50IHRvIHVzZSBTaWduYWx0YXAgdG8gZGVidWcgYSBzeXN0ZW0gYnVpbGQgaW50
byB0aGUgZ3JlZW4gYXJlYSBvZiB0aGUgQUZVLjxicj4NCjxicj4NClRvIGNvbmZpcm0gdGhhdCBp
dCB3b3JrcyBJIGZvbGxvd2VkIHRoZSBpbnN0cnVjdGlvbnMgYXQgPGEgaHJlZj0iaHR0cHM6Ly93
d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL3Byb2dyYW1tYWJsZS9kb2N1bWVudGF0aW9u
L2JmcjE1MjIwODcyOTkwNDguaHRtbCNkaXIxNTEyMjY1MjQ4NDIzIj4NCmh0dHBzOi8vd3d3Lmlu
dGVsLmNvbS9jb250ZW50L3d3dy91cy9lbi9wcm9ncmFtbWFibGUvZG9jdW1lbnRhdGlvbi9iZnIx
NTIyMDg3Mjk5MDQ4Lmh0bWwjZGlyMTUxMjI2NTI0ODQyMzwvYT4NCjxvOnA+PC9vOnA+PC9wPg0K
PHA+VGhlIGV4YW1wbGUgd29ya3MgaWYgSSBqdXN0IGxvYWQgdGhlIHByb3ZpZGVkIGJpdHN0cmVh
bSBmcm9tIHRoZSBubGJfbW9kZV8wX3N0cC9iaW4gZGlyZWN0b3J5LjxvOnA+PC9vOnA+PC9wPg0K
PHA+SG93ZXZlciwgaWYgSSBidWlsZCB0aGUgYml0c3RyZWFtIG15c2VsZiBJIGNhbm5vdCBjb25u
ZWN0IHRvIFNpZ25hbHRhcC48bzpwPjwvbzpwPjwvcD4NCjxwPjxvOnA+Jm5ic3A7PC9vOnA+PC9w
Pg0KPHA+QWZ0ZXIgY3JlYXRpbmcgYSB3b3JraW5nIGNvcHkgb2YgdGhlIGV4YW1wbGUgSSBleGVj
dXRlZCB0aGUgZm9sbG93aW5nIHN0ZXBzOjxvOnA+PC9vOnA+PC9wPg0KPHA+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8cD5hZnVfc3ludGhfc2V0dXAgLXMgaHcvcnRsL2ZpbGVsaXN0X21vZGVfMF9z
dHAudHh0IGJ1aWxkX21vZGVfMF9zdHAgPG86cD48L286cD48L3A+DQo8cD5jZCBidWlsZF9tb2Rl
XzBfc3RwIDxvOnA+PC9vOnA+PC9wPg0KPHA+L29wdC9pbnRlbC9vcGFlL2ExMF9neF9wYWNfaWFz
XzFfMV9iZXRhL2Jpbi9ydW4uc2ggPG86cD48L286cD48L3A+DQo8cD5mcGdhY29uZiBubGJfNDAw
LmdicyA8bzpwPjwvbzpwPjwvcD4NCjxwPm1tbGluayAtUCAzMzMzIDxvOnA+PC9vOnA+PC9wPg0K
PHA+c3lzdGVtLWNvbnNvbGUgLS1yY19zY3JpcHQ9bW1saW5rX3NldHVwX3Byb2ZpbGVkLnRjbCBy
ZW1vdGVfZGVidWcuc29mIGxvY2FsaG9zdCAzMzMzDQo8bzpwPjwvbzpwPjwvcD4NCjxwPnF1YXJ0
dXMgLi4vaHcvcGFyL3N0cF9iYXNpYy5zdHAgPG86cD48L286cD48L3A+DQo8cD48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjxwPkkgY291bGQgY29tcGxldGUgZXZlcnkgc3RlcCB1cCB1bnRpbCB0aGUg
bGFzdCBvbmUsIHdoZXJlIEkgY2FuIHNlZSB0aGUgU2lnbmFsdGFwIGRldmljZSBidXQgcmVjaWV2
ZSB0aGUgZm9sbG93aW5nIGVycm9yIHdoZW4gdHJ5aW5nIHRvIGFjcXVpcmUgZGF0YS48bzpwPjwv
bzpwPjwvcD4NCjxwPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHA+JnF1b3Q7RXJyb3IoMjYxMDA1
KTogQ2FuJ3QgZmluZCB0aGUgaW5zdGFuY2UuJm5ic3A7IERvd25sb2FkIGEgZGVzaWduIHdpdGgg
U1JBTSBPYmplY3QgRmlsZSBjb250YWluaW5nIHRoaXMgaW5zdGFuY2UuJnF1b3Q7PG86cD48L286
cD48L3A+DQo8cD48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwPklmIEkgcmVwcm9ncmFtIHRoZSBk
ZXZpY2Ugd2l0aCB0aGUgcHJvdmlkZWQgYml0c3RyZWFtIGl0IHdvcmtzLiBUaGUgb25lIEkgZ2Vu
ZXJhdGVkIHVzaW5nIHJ1bi5zaCBkb2VzIG5vdCB3b3JrLjxvOnA+PC9vOnA+PC9wPg0KPHA+PG86
cD4mbmJzcDs8L286cD48L3A+DQo8cD5JIHVzZWQgUXVhcnR1cyBQcmltZSAxLjcuMS4xIEJ1aWxk
IDI3MyBmb3IgdGhlIHN5bnRoZXNpcyBhbmQgSUFTIHJlbGVhc2UgMS4xIGJldGEuPG86cD48L286
cD48L3A+DQo8cD48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwPkdyZWV0aW5nczxvOnA+PC9vOnA+
PC9wPg0KPHA+SmVuczxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--===============0115142935479240302==--