I am able to send a request successfully to the server and get a response back as well. When unpacking fields from response data, I observe an error in Field #48, but when I decode the bitmap, Field #48 is not present.
Response data:
2024-10-28 04:02:38,592 ERROR n.c.b.j.i.Q2: (channel/XX.XXX.XX.XX:12345) [receive] --- header ---
2024-10-28 04:02:38,592 ERROR n.c.b.j.i.Q2: (channel/XX.XXX.XX.XX:12345) [receive]
0000 16 01 02 00 BD 00 00 00 00 00 00 00 00 00 00 00 ................
0010 00 00 00 00 00 00 ......
BITMAP : 722022810AD08202
2024-10-28 04:02:38,592 ERROR n.c.b.j.i.Q2: (channel/XX.XXX.XX.XX:12345) [receive] --- data ---
2024-10-28 04:02:38,592 ERROR n.c.b.j.i.Q2: (channel/XX.XXX.XX.XX:12345) [receive]
0000 01 10 72 20 22 81 0A D0 82 02 10 XX XX XX XX XX
0010 XX XX XX 00 00 00 00 00 00 00 12 00 08 21 06 57
0020 20 18 45 66 08 26 00 00 00 06 44 10 03 F4 F2 F2
0030 F1 F0 F6 F1 F8 F3 F9 F8 F8 F1 F9 E3 C5 D9 D4 C9
0040 C4 F0 F1 E2 88 85 93 84 96 95 40 E2 98 A4 81 99
0050 85 40 02 F5 E8 08 26 49 01 00 46 9A 03 08 11 05
0060 9C 01 00 9F 02 06 00 00 00 00 12 00 9F 03 06 00
0070 00 00 00 00 00 9F 10 07 06 09 0A 03 A4 00 00 9F
0080 1A 02 08 26 9F 26 08 01 23 45 67 89 AB CD EF 9F
0090 33 03 E0 E0 E0 9F 36 02 00 FF 9F 37 04 9B AD BC
00a0 AB 05 80 00 00 00 02
2024-10-28 04:02:38,592 ERROR n.c.b.j.i.Q2: (org.jpos.q2.iso.ChannelAdaptor) channel-receiver-jmeter-bdc26f30-receive
2024-10-28 04:02:38,592 ERROR n.c.b.j.i.Q2: (org.jpos.q2.iso.ChannelAdaptor) org.jpos.iso.IFB_LLLCHAR: Problem unpacking field 48 (org.jpos.iso.ISOException: Field length 100 too long. Max: 88) unpacking field=48, consumed=88
org.jpos.iso.ISOException: org.jpos.iso.IFB_LLLCHAR: Problem unpacking field 48 (org.jpos.iso.ISOException: Field length 100 too long. Max: 88) unpacking field=48, consumed=88
at org.jpos.iso.ISOBasePackager.unpack(ISOBasePackager.java:341) ~[jpos-2.1.8.jar:2.1.8]
at org.jpos.iso.ISOMsg.unpack(ISOMsg.java:479) ~[jpos-2.1.8.jar:2.1.8]
at org.jpos.iso.BaseChannel.unpack(BaseChannel.java:978) ~[jpos-2.1.8.jar:2.1.8]
at org.jpos.iso.BaseChannel.receive(BaseChannel.java:748) ~[jpos-2.1.8.jar:2.1.8]
at org.jpos.q2.iso.ChannelAdaptor$Receiver.run(ChannelAdaptor.java:333) [jpos-2.1.8.jar:2.1.8]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
XML Used:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager PUBLIC
"-//jPOS/jPOS Generic Packager DTD 1.0//EN"
http://jpos.org/dtd/generic-packager-1.0.dtd>
<!-- ISO 8583:1993 (BINARY) field descriptions for GenericPackager -->
<isopackager headerLength="22">
<isofield
id="0"
length="4"
name="Message Type Indicator"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="1"
length="16"
name="Bitmap"
class="org.jpos.iso.IFB_BITMAP"/>
<isofield
id="2"
length="16"
name="Primary Account number"
pad="false"
class="org.jpos.iso.IFB_LLHNUM"/>
<isofield
id="3"
length="6"
name="Processing Code"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="4"
length="12"
name="Amount, Transaction"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="5"
length="12"
name="Amount, Reconciliation"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="6"
length="12"
name="Amount, Cardholder billing"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="7"
length="10"
name="Date and time, transmission"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="8"
length="8"
name="Amount, Cardholder billing fee"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="9"
length="8"
name="Conversion rate, Reconciliation"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="10"
length="8"
name="Conversion rate, Cardholder billing"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="11"
length="6"
name="Systems trace audit number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="12"
length="12"
name="Date and time, Local transaction"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="13"
length="4"
name="Date, Effective"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="14"
length="4"
name="Date, Expiration"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="15"
length="6"
name="Date, Settlement"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="16"
length="4"
name="Date, Conversion"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="17"
length="4"
name="Date, Capture"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="18"
length="4"
name="Merchant type"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="19"
length="4"
name="Country code, Acquiring institution"
pad="true"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="20"
length="3"
name="Country code, Primary account number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="21"
length="3"
name="Country code, Forwarding institution"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="22"
length="4"
name="Point of service data code"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="23"
length="3"
name="Card sequence number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="24"
length="3"
name="Function code"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="25"
length="2"
name="Message reason code"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="26"
length="4"
name="Card acceptor business code"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="27"
length="1"
name="Approval code length"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="28"
length="9"
name="Date, Reconciliation"
pad="false"
class="org.jpos.iso.IFE_CHAR"/>
<isofield
id="29"
length="3"
name="Reconciliation indicator"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="30"
length="24"
name="Amounts, original"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="31"
length="99"
name="Acquirer reference data"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="32"
length="11"
name="Acquirer institution ident code"
pad="false"
class="org.jpos.iso.IFB_LLNUM"/>
<isofield
id="33"
length="11"
name="Forwarding institution ident code"
pad="false"
class="org.jpos.iso.IFB_LLNUM"/>
<isofield
id="34"
length="28"
name="Primary account number, extended"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="35"
length="38"
name="Track 2 data"
pad="true"
class="org.jpos.iso.IFB_LLHNUM"/>
<isofield
id="36"
length="104"
name="Track 3 data"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="37"
length="12"
name="Retrieval reference number"
class="org.jpos.iso.IFE_CHAR"/>
<isofield
id="38"
length="6"
name="Approval code"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="39"
length="2"
name="Action code"
pad="false"
class="org.jpos.iso.IFE_CHAR"/>
<isofield
id="40"
length="3"
name="Service code"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="41"
length="8"
name="Card acceptor terminal identification"
class="org.jpos.iso.IFE_CHAR"/>
<isofield
id="42"
length="15"
name="Card acceptor identification code"
class="org.jpos.iso.IFE_CHAR"/>
<isofield
id="43"
length="40"
name="Card acceptor name/location"
class="org.jpos.iso.IFE_CHAR"/>
<isofieldpackager id="44"
name="Additional data"
length="3"
class="org.jpos.iso.IF_CHAR"
packager="org.jpos.iso.packager.GenericSubFieldPackager"
emitBitmap="false"
maxValidField="2">
<isofield id="1"
name="Length"
length="1"
pad="true"
class="org.jpos.iso.IFB_BINARY"/>
<isofield id="2"
name="Value"
length="2"
pad="false"
class="org.jpos.iso.IFE_CHAR"/>
</isofieldpackager>
<isofield
id="45"
length="76"
name="Track 1 data"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="46"
length="204"
name="Amounts, Fees"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="47"
length="999"
name="Additional data - national"
class="org.jpos.iso.IFB_LLLBINARY"/>
<isofield
id="48"
length="999"
name="Additional data - private"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="49"
length="4"
name="Currency code, Transaction"
pad="true"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="50"
length="3"
name="Currency code, Reconciliation"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="51"
length="3"
name="Currency code, Cardholder billing"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="52"
length="8"
name="Personal identification number [PIN] data"
class="org.jpos.iso.IFB_BINARY"/>
<isofield
id="53"
length="48"
name="Security related control information"
class="org.jpos.iso.IFB_LLBINARY"/>
<isofield
id="54"
length="120"
name="Amounts, additional"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofieldpackager id="55"
name="ICC"
length="99"
class="org.jpos.iso.IF_CHAR"
packager="org.jpos.iso.packager.GenericSubFieldPackager"
emitBitmap="false"
maxValidField="20">
<isofield id="1"
name="Fieldlength"
length="2"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield id="2"
name="TAGS"
length="98"
pad="false"
class="org.jpos.iso.IFB_BINARY"/>
</isofieldpackager>
<isofield
id="56"
length="35"
name="Original data elements"
pad="false"
class="org.jpos.iso.IFB_LLNUM"/>
<isofield
id="57"
length="3"
name="Authorization life cycle code"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="58"
length="11"
name="Authorizing agent institution Id Code"
pad="false"
class="org.jpos.iso.IFB_LLNUM"/>
<isofield
id="59"
length="999"
name="Transport data"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="60"
length="4"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLBINARY"/>
<isofield
id="61"
length="999"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="62"
length="8"
name="Reserved for private use"
class="org.jpos.iso.IFB_LLBINARY"/>
<isofield
id="63"
length="5"
name="Reserved for private use"
class="org.jpos.iso.IFB_LLBINARY"/>
<isofield
id="64"
length="8"
name="Message authentication code field"
class="org.jpos.iso.IFB_BINARY"/>
<isofield
id="65"
length="8"
name="Reserved for ISO use"
class="org.jpos.iso.IFB_BINARY"/>
<isofield
id="66"
length="204"
name="Amounts, original fees"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="67"
length="2"
name="Extended payment data"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="68"
length="3"
name="Country code, receiving institution"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="69"
length="3"
name="Country code, settlement institution"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="70"
length="3"
name="Country code, authorizing agent Inst."
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="71"
length="8"
name="Message number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="72"
length="999"
name="Data record"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="73"
length="6"
name="Date, action"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="74"
length="10"
name="Credits, number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="75"
length="10"
name="Credits, reversal number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="76"
length="10"
name="Debits, number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="77"
length="10"
name="Debits, reversal number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="78"
length="10"
name="Transfer, number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="79"
length="10"
name="Transfer, reversal number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="80"
length="10"
name="Inquiries, number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="81"
length="10"
name="Authorizations, number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="82"
length="10"
name="Inquiries, reversal number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="83"
length="10"
name="Payments, number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="84"
length="10"
name="Payments, reversal number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="85"
length="10"
name="Fee collections, number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="86"
length="16"
name="Credits, amount"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="87"
length="16"
name="Credits, reversal amount"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="88"
length="16"
name="Debits, amount"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="89"
length="16"
name="Debits, reversal amount"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="90"
length="10"
name="Authorizations, reversal number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="91"
length="3"
name="Country code, transaction Dest. Inst."
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="92"
length="3"
name="Country code, transaction Orig. Inst."
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="93"
length="11"
name="Transaction Dest. Inst. Id code"
pad="false"
class="org.jpos.iso.IFB_LLNUM"/>
<isofield
id="94"
length="11"
name="Transaction Orig. Inst. Id code"
pad="false"
class="org.jpos.iso.IFB_LLNUM"/>
<isofield
id="95"
length="99"
name="Card issuer reference data"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="96"
length="999"
name="Key management data"
class="org.jpos.iso.IFB_LLLBINARY"/>
<isofield
id="97"
length="17"
name="Amount, Net reconciliation"
pad="false"
class="org.jpos.iso.IFB_AMOUNT"/>
<isofield
id="98"
length="25"
name="Payee"
class="org.jpos.iso.IF_CHAR"/>
<isofield
id="99"
length="11"
name="Settlement institution Id code"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="100"
length="11"
name="Receiving institution Id code"
pad="false"
class="org.jpos.iso.IFB_LLNUM"/>
<isofield
id="101"
length="17"
name="File name"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="102"
length="28"
name="Account identification 1"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="103"
length="28"
name="Account identification 2"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="104"
length="100"
name="Transaction description"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="105"
length="16"
name="Credits, Chargeback amount"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="106"
length="16"
name="Debits, Chargeback amount"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="107"
length="10"
name="Credits, Chargeback number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="108"
length="10"
name="Debits, Chargeback number"
pad="false"
class="org.jpos.iso.IFB_NUMERIC"/>
<isofield
id="109"
length="84"
name="Credits, Fee amounts"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="110"
length="84"
name="Debits, Fee amounts"
class="org.jpos.iso.IFB_LLCHAR"/>
<isofield
id="111"
length="999"
name="Reserved for ISO use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="112"
length="999"
name="Reserved for ISO use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="113"
length="999"
name="Reserved for ISO use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="114"
length="999"
name="Reserved for ISO use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="115"
length="999"
name="Reserved for ISO use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="116"
length="999"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="117"
length="999"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="118"
length="999"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="119"
length="999"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="120"
length="999"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="121"
length="999"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="122"
length="999"
name="Reserved for national use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofieldpackager id="123"
name="Additional data"
length="26"
class="org.jpos.iso.IFB_BINARY"
packager="org.jpos.iso.packager.GenericSubFieldPackager"
emitBitmap="false"
maxValidField="2">
<isofield id="1"
name="Length"
length="1"
pad="true"
class="org.jpos.iso.IFB_BINARY"/>
<isofield id="2"
name="Value"
length="25"
pad="false"
class="org.jpos.iso.IFE_CHAR"/>
</isofieldpackager>
<isofield
id="124"
length="999"
name="Reserved for private use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="125"
length="999"
name="Reserved for private use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="126"
length="999"
name="Reserved for private use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="127"
length="999"
name="Reserved for private use"
class="org.jpos.iso.IFB_LLLCHAR"/>
<isofield
id="128"
length="8"
name="Message authentication code field"
class="org.jpos.iso.IFB_BINARY"/>
</isopackager>
When you and when your jpos packager reads the bitmap must be different then.
First check that your packager matches the specification from the system you are sending to and that is replying.
Any header data, and format of length, MTI and Bitmap need to match (packager to spec).
There will be a difference or error in the packager to cause the misalignment to the message content to cause jpos to think field 48 is present.
You need to make this check against the specification.
Of course, do not share any specification details here without explicit permission of the copyright holder.
--
Mark
--
Mark
--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/jpos-users/4d2e7820-fe24-4d7c-a876-977582a454den%40googlegroups.com.
You probably have a misalignment due to the header.
The best first thing you want to do is to add a logger to the packager, I don’t know how you can see them in jMeter, but you could use jPOS-EE client simulator to get the configuration right; and then move to using jMeter, or perhaps stick with the client simulator, this post is old, but I bet it will work for you.
I would also suggest
you to handle the header at the channel level and not in the
packager. Remove the headerLength attribute from the packager,
and then put 0000000000000000000000
as the channel’s header, this will tell the channel what length
to expect for the header of the incoming messages.
I take you are using
the configuration from this
SO post, so you would also need to remove the override-header
property, so that the channel uses the message’s header, instead
of overriding it.
Hope this helps.
Andrés Alcarraz
--
I got a direct reply and I have told the OP to reply here instead.
--
Mark
There must be a difference.
If you can send but not receive I would think bitmap definition rather than anything at the channel level.
Add a longer to your packager to see what mere it is misaligned and to the Channel if it arrives misaligned.
--
Mark
--
Mark
To view this discussion visit https://groups.google.com/d/msgid/jpos-users/3eb1bfb0-c185-48fd-bdb6-3b55cb30fd19n%40googlegroups.com.
You mention VTS, so you are doing Visa testing.
Are you using the correct channel , VAPChannel that handles the special visa header?
Have you setup vts correctly for the 2 byte length header?
-chhil
--
--
jPOS is licensed under AGPL - free for community usage for your open-source project. Licenses are also available for commercial usage. Please support jPOS, contact: sa...@jpos.org
---
You received this message because you are subscribed to the Google Groups "jPOS Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jpos-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/jpos-users/CAACHDe0UAdpO1gixHsxA7rHJM58JoSY%2BniR%2BijQWQqiWZnPnWQ%40mail.gmail.com.