By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,905 Members | 902 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,905 IT Pros & Developers. It's quick & easy.

Decoding base64 data and extracting images

P: n/a
Hello all,

We have a problem on a webpage. That page is sent some email data in
base64 format. what we need to do is, decode the base64 data back to
original shape and extract attached image from it.

Any help will be highly appriciated.

Thanks

Rizwan

Sep 20 '05 #1
Share this Question
Share on Google+
27 Replies


P: n/a
I forgot to mention, we are using ASP.

Thanks again,

Rizwan

Sep 20 '05 #2

P: n/a
<gR*****@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...
Hello all,

We have a problem on a webpage. That page is sent some email data in
base64 format. what we need to do is, decode the base64 data back to
original shape and extract attached image from it.

Any help will be highly appriciated.

Thanks

Rizwan


Below is a VBScript that does what you want but requires "base64.exe"
from http://www.fourmilab.ch/webtools/base64/

You copy-and-paste the base63 (endoded) data into the textarea then click
the Decode button which saves it to disk (as "base64.enc") then decodes it
(as "base64.dec"). After which you can rename it to a filename with the
correct extension.

I use a variation of this to look at the base64 text included in SPAM. I
use a text editor to view the decoded data to see it it might be harmful.
<html>
<head>
<title>base64.hta</title>
<script type="text/vbscript">
Option Explicit
Sub Decode()
'*
'* Declare Constants
'*
Const cHTA = "base64.hta"
Const cDEC = "base64.dec"
Const cENC = "base64.enc"
Const cWSS = "%comspec% /C base64.exe -d $1 $2"
'*
'* Encoded File Save
'*
Dim strENC
strENC = document.getElementById("encoded").value
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objCTF
Set objCTF = objFSO.CreateTextFile(cENC,True)
objCTF.Write(strENC)
Set objCTF = Nothing
Set objFSO = Nothing
'*
'* Decoded File Make
'*
Dim strWSS
strWSS = Replace(cWSS,"$1",cENC)
strWSS = Replace(strWSS,"$2",cDEC)
'Alert(strWSS)
Dim objWSS
Set objWSS = CreateObject("WScript.Shell")
objWSS.Run strWSS, 7, True
Set objWSS = Nothing
End Sub
</script>
<head>
<body>
<form>
<b>Copy-and-paste encoded data below then click Decode.</b>
<br>
<textarea name="encoded" id="encoded" cols="80" rows="20">
</textarea>
<br>
<input type="button" value="Decode" onclick="Decode()">
</form>
</body>
</html>

Pure VBScript solutions may exist; try Google.
Sep 20 '05 #3

P: n/a

"McKirahan" <Ne**@McKirahan.com> wrote in message
news:Vc********************@comcast.com...
<gR*****@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...
Hello all,

We have a problem on a webpage. That page is sent some email data in
base64 format. what we need to do is, decode the base64 data back to
original shape and extract attached image from it.

Any help will be highly appriciated.
[snip] Pure VBScript solutions may exist; try Google.


Here's a pure VBS solution:
http://www.pstruh.cz/tips/detpg_Base64/
Sep 20 '05 #4

P: n/a
Thanks for your reply McKirahan,

Infact we need some script which do this decoding for us in ASP page.
Exe will not help us.

Rizwan

Sep 20 '05 #5

P: n/a
Thanks for your reply Chris Hohmann,

Yes last nite after a lots of search i found same link you mentioned.
It looks working, will see in detail later.

But the second part of the question is still there. i.e. Extract
attached Images/Files from that email, which was encoded in base64.
Let's suppose, we have decoded data from base64 to original shape, Now
how will we extract attachments from that email in ASP?

Thanks again

Sep 20 '05 #6

P: n/a
<gR*****@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...
Thanks for your reply Chris Hohmann,

Yes last nite after a lots of search i found same link you mentioned.
It looks working, will see in detail later.

But the second part of the question is still there. i.e. Extract
attached Images/Files from that email, which was encoded in base64.
Let's suppose, we have decoded data from base64 to original shape, Now
how will we extract attachments from that email in ASP?

Thanks again


How is the "page is sent some email data"?

Could you post an URL that has a sample?
Sep 20 '05 #7

P: n/a
This is sample, what we get (i have truncated MMS data)

<bspostevent>
<field name="RemoteNetwork" type = "string">vodafone-uk</field>
<field name="LastName" type = "string"></field>
<field name="MobileNetwork" type = "string">vodafone-uk</field>
<field name="MMS" type =
"data">TUlNRS1WZXJzaW9uOiAxLjANClN1YmplY3Q6IA0KRnJ vbTog...........</field>
<field name="State" type = "string">1</field>
<field name="MobileNumber" type = "string">+447796170669</field>
<field name="Text" type = "string"></field>
<field name="Now" type = "date">2004-06-18 20:28:07 +0000
</field>
</bspostevent>

Sep 20 '05 #8

P: n/a
There's a big "MMS" tag data in base64.
lets suppose we are able to decode the base64 to original shape. Then
it will be just like an email, with attachmenr(s) of image(s). We need
to extract those image(s).

if you need complete base64 data, i can mail you google not allowing to
paste here.

can you help?

Sep 20 '05 #9

P: n/a
<gR*****@gmail.com> wrote in message
news:11**********************@g43g2000cwa.googlegr oups.com...
This is sample, what we get (i have truncated MMS data)

<bspostevent>
<field name="RemoteNetwork" type = "string">vodafone-uk</field>
<field name="LastName" type = "string"></field>
<field name="MobileNetwork" type = "string">vodafone-uk</field>
<field name="MMS" type =
"data">TUlNRS1WZXJzaW9uOiAxLjANClN1YmplY3Q6IA0KRnJ vbTog...........</field>
<field name="State" type = "string">1</field>
<field name="MobileNumber" type = "string">+447796170669</field>
<field name="Text" type = "string"></field>
<field name="Now" type = "date">2004-06-18 20:28:07 +0000
</field>
</bspostevent>


How do you know that it's an image?
What would be the filename?
Are there multiple per page?
How, exactly, would you want the process to work?
Sep 20 '05 #10

P: n/a
<gR*****@gmail.com> wrote in message
news:11**********************@g43g2000cwa.googlegr oups.com...
This is sample, what we get (i have truncated MMS data)

<bspostevent>
<field name="RemoteNetwork" type = "string">vodafone-uk</field>
<field name="LastName" type = "string"></field>
<field name="MobileNetwork" type = "string">vodafone-uk</field>
<field name="MMS" type =
"data">TUlNRS1WZXJzaW9uOiAxLjANClN1YmplY3Q6IA0KRnJ vbTog...........</field>
<field name="State" type = "string">1</field>
<field name="MobileNumber" type = "string">+447796170669</field>
<field name="Text" type = "string"></field>
<field name="Now" type = "date">2004-06-18 20:28:07 +0000
</field>
</bspostevent>


The partial base64 string that you sent decodes to:

MIME-Version: 1.0
Subject:
From:

I now understand that the Web page contains a field (MMS)
that contains a base64 string of an e-mail message --
your original description was unclear on this.

I gather:
1) that you visit a Web page;
2) that the Web page contains a single <bspostevent> tag;
3) that this tag contains a base64 string in the "MMS" field;
4) that this base64 string is an e-mail message;
5) that the e-mail message contains an image;
6) that you want to save or view the image -- which?

A URL, if possible, would be most helpful.
Sep 20 '05 #11

P: n/a
Below is the data decoded by the function we talked above (
http://www.pstruh.cz/tips/detpg_Base64/ )
Now this is almost a mail message with attachment(s). No, there can be
some different files too not just images. but most probably it will
include image(s). There might be more than one too.

You can see example of what we get at http://pakitfriends.com/mms.xml
infact this kind of file is sent to our webpage with POST method. we
have done XML parsing part and have extracted the MMS data in a
variable. Now we suppose Decoding is correctly done by that code.

* We dont know the name of the image(s)
* yes, we want to save the attachment(s)
********** Decoded Data ***********
MIME-Version: 1.0
Subject:
From: +447796170669
To: +447719336699
Mxtelecom-Id: 15881964
Date: 2004-06-18 21:28:13
Content-Transfer-Encoding: binary
Content-Type: multipart/related;
boundary="F3X/kupo3+S3vrIYnnksMQAAAAM="; start="<mms.smil>";
type="application/smil"

--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: application/smil; name=mms.smil
Content-Id: <mms.smil>
Content-Transfer-Encoding: 7bit

<smil>
<body>
<par dur="5s">
<ref src="t0" />
</par>
<par dur="5s">
<text src="t1%3At1.txt" />
</par>
<par dur="5s">
<img src="i1%3ATeifi.jpg" />
</par>
</body>
</smil>

--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: application/smil; name=t0
Content-Transfer-Encoding: binary
Content-Id: <t0>

<smil>
<head>
<layout>
<root-layout height="127" width="111"/>
<region id="Image" top="50%" left="0%" height="50%" width="100%"/>
<region id="Text" top="0%" left="0%" height="50%" width="100%"/>
</layout>
</head>
<body>
<par dur="60000ms">
<text src="cid:t1:t1.txt" region="Text"/>
<img src="cid:i1:Teifi.jpg" region="Image"/>
</par>
</body>
</smil>

--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: text/plain; name=t1%3At1.txt
Content-Location: t1%3At1.txt

Apicheck
--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: image/jpeg; name=i1%3ATeifi.jpg
Content-Transfer-Encoding: binary
Content-Location: i1%3ATeifi.jpg

Exif
*****************************

Sep 20 '05 #12

P: n/a
<gR*****@gmail.com> wrote in message
news:11*********************@z14g2000cwz.googlegro ups.com...
Below is the data decoded by the function we talked above (
http://www.pstruh.cz/tips/detpg_Base64/ )
Now this is almost a mail message with attachment(s). No, there can be
some different files too not just images. but most probably it will
include image(s). There might be more than one too.

You can see example of what we get at http://pakitfriends.com/mms.xml
infact this kind of file is sent to our webpage with POST method. we
have done XML parsing part and have extracted the MMS data in a
variable. Now we suppose Decoding is correctly done by that code.

* We dont know the name of the image(s)
* yes, we want to save the attachment(s)
********** Decoded Data ***********
MIME-Version: 1.0
Subject:
From: +447796170669
To: +447719336699
Mxtelecom-Id: 15881964
Date: 2004-06-18 21:28:13
Content-Transfer-Encoding: binary
Content-Type: multipart/related;
boundary="F3X/kupo3+S3vrIYnnksMQAAAAM="; start="<mms.smil>";
type="application/smil"

--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: application/smil; name=mms.smil
Content-Id: <mms.smil>
Content-Transfer-Encoding: 7bit

<smil>
<body>
<par dur="5s">
<ref src="t0" />
</par>
<par dur="5s">
<text src="t1%3At1.txt" />
</par>
<par dur="5s">
<img src="i1%3ATeifi.jpg" />
</par>
</body>
</smil>

--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: application/smil; name=t0
Content-Transfer-Encoding: binary
Content-Id: <t0>

<smil>
<head>
<layout>
<root-layout height="127" width="111"/>
<region id="Image" top="50%" left="0%" height="50%" width="100%"/>
<region id="Text" top="0%" left="0%" height="50%" width="100%"/>
</layout>
</head>
<body>
<par dur="60000ms">
<text src="cid:t1:t1.txt" region="Text"/>
<img src="cid:i1:Teifi.jpg" region="Image"/>
</par>
</body>
</smil>

--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: text/plain; name=t1%3At1.txt
Content-Location: t1%3At1.txt

Apicheck
--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: image/jpeg; name=i1%3ATeifi.jpg
Content-Transfer-Encoding: binary
Content-Location: i1%3ATeifi.jpg

Exif
*****************************
Sep 20 '05 #13

P: n/a
Sorry, there was no response in my last reply.

<gR*****@gmail.com> wrote in message
news:11*********************@z14g2000cwz.googlegro ups.com...
Below is the data decoded by the function we talked above (
http://www.pstruh.cz/tips/detpg_Base64/ )
Now this is almost a mail message with attachment(s). No, there can be
some different files too not just images. but most probably it will
include image(s). There might be more than one too.

You can see example of what we get at http://pakitfriends.com/mms.xml
infact this kind of file is sent to our webpage with POST method. we
have done XML parsing part and have extracted the MMS data in a
variable. Now we suppose Decoding is correctly done by that code.

* We dont know the name of the image(s)
* yes, we want to save the attachment(s)
Apparently the image (in this case) is named "Teifi.jpg".

The decoded text can be saved but that's not what you want.

I don't see the attached image encoded in the MMS data.
Sep 20 '05 #14

P: n/a
Yes, This is what decoded by the code.

what to do now?

Sep 21 '05 #15

P: n/a
<gR*****@gmail.com> wrote in message
news:11**********************@f14g2000cwb.googlegr oups.com...
Yes, This is what decoded by the code.

what to do now?


I suspect that we need to first understand e-mail and headers.

Also, can you provide a description of the entire process?
Sep 21 '05 #16

P: n/a
* we have a webpage
* another site gets an MMS data in XML
* that site sends it to our webpage through POST
* we receive that and get the MMS tag's data

* Now we need to decode it from base64 encoding.
* then we need to get the attachments & save those

thast all.

Now, i am stuck here.

Sep 21 '05 #17

P: n/a
<gR*****@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...
* we have a webpage
* another site gets an MMS data in XML
* that site sends it to our webpage through POST
* we receive that and get the MMS tag's data

* Now we need to decode it from base64 encoding.
* then we need to get the attachments & save those

thast all.

Now, i am stuck here.


Looking at the "Decoded Data",
I don't believe that the attachments are embedded in it.

Can you have them send you the original e-mail with attachments?
Sep 21 '05 #18

P: n/a
there software automatically converts to this thing. so we'll have to
play with this.
Don't you think this decoding algorithm might be faulty?

Sep 21 '05 #19

P: n/a
there software automatically converts to this thing. so we'll have to
play with this.
Don't you think this decoding algorithm might be faulty?

Sep 21 '05 #20

P: n/a
<gR*****@gmail.com> wrote in message
news:11**********************@f14g2000cwb.googlegr oups.com...
there software automatically converts to this thing. so we'll have to
play with this.
Don't you think this decoding algorithm might be faulty?


Nope.

There's not enough encoded data to represent an image.

Below is the encoded data for a 43 byte GIF image:

R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAA ICRAEAOw==
Sep 21 '05 #21

P: n/a
wrote on 21 sep 2005 in microsoft.public.inetserver.asp.general:
there software automatically converts to this thing. so we'll have to
play with this.
Don't you think this decoding algorithm might be faulty?


Use the javascript
base64Decode(str)
[and base64Encode(str)]
functions from
<http://www.hw-group.com/support/tea/index_en.html#BASE64>

Yes, these javescript functions can be used in ASP

--
Evertjan.
The Netherlands.
(Replace all crosses with dots in my emailaddress)

Sep 21 '05 #22

P: n/a
Thanks for your reply Evertjan, do u think above decoded data is
incorrect? so that we go for some other decoding algo.

If No, then how to extract images from that decoded data?

Sep 21 '05 #23

P: n/a
wrote on 21 sep 2005 in microsoft.public.inetserver.asp.general:
Thanks for your reply Evertjan, do u think above decoded data is
incorrect? so that we go for some other decoding algo.
Above?

On usenet please always quote, this is not email.

If with Google groups this is difficult, please use a real News-reader.
Most are free.
If No, then how to extract images from that decoded data?



--
Evertjan.
The Netherlands.
(Replace all crosses with dots in my emailaddress)

Sep 21 '05 #24

P: n/a
Sorry Evertjan didn't realise that :(
You can see encoded data in a XML file's MMS tag at
http://www.pakitfriends.com/mms.xml
Here is the decoded data by a base64 decoding algorithm from encoded
data.
We need to extract image attachments from this message.
How can we do that?

********** Decoded Data ***********
MIME-Version: 1.0
Subject:
From: +447796170669
To: +447719336699
Mxtelecom-Id: 15881964
Date: 2004-06-18 21:28:13
Content-Transfer-Encoding: binary
Content-Type: multipart/related;
boundary="F3X/kupo3+S3vrIYnnksMQAAAAM="; start="<mms.smil>";
type="application/smil"
--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: application/smil; name=mms.smil
Content-Id: <mms.smil>
Content-Transfer-Encoding: 7bit
<smil>
<body>
<par dur="5s">
<ref src="t0" />
</par>
<par dur="5s">
<text src="t1%3At1.txt" />
</par>
<par dur="5s">
<img src="i1%3ATeifi.jpg" />
</par>
</body>
</smil>
--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: application/smil; name=t0
Content-Transfer-Encoding: binary
Content-Id: <t0>
<smil>
<head>
<layout>
<root-layout height="127" width="111"/>
<region id="Image" top="50%" left="0%" height="50%" width="100%"/>
<region id="Text" top="0%" left="0%" height="50%" width="100%"/>
</layout>
</head>
<body>
<par dur="60000ms">
<text src="cid:t1:t1.txt" region="Text"/>
<img src="cid:i1:Teifi.jpg" region="Image"/>
</par>
</body>
</smil>
--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: text/plain; name=t1%3At1.txt
Content-Location: t1%3At1.txt
Apicheck
--F3X/kupo3+S3vrIYnnksMQAAAAM=
Content-Type: image/jpeg; name=i1%3ATeifi.jpg
Content-Transfer-Encoding: binary
Content-Location: i1%3ATeifi.jpg
Exif
*****************************

Sep 22 '05 #25

P: n/a
wrote on 22 sep 2005 in microsoft.public.inetserver.asp.general:
Sorry Evertjan didn't realise that :(
[ again: please quote,
there are more readers than me alone on usenet,
otherwise it would be email,
netiquette is important on usenet ]
You can see encoded data in a XML file's MMS tag at
http://www.pakitfriends.com/mms.xml
The mms line can be easily decoded by:

document.write(base64Decode(str).replace(/</g,'&lt;'));

[see the link I gave for the content of the base64Decode() function]

Here is the decoded data by a base64 decoding algorithm from encoded
data.
We need to extract image attachments from this message.
How can we do that?

********** Decoded Data ***********
MIME-Version: 1.0
Subject:
From: +447796170669
To: +447719336699
Mxtelecom-Id: 15881964
Date: 2004-06-18 21:28:13
Content-Transfer-Encoding: binary
Content-Type: multipart/related;
boundary="F3X/kupo3+S3vrIYnnksMQAAAAM="; start="<mms.smil>";
type="application/smil"
--F3X/kupo3+S3vrIYnnksMQAAAAMContent-Type: application/smil;
name=mms.smil Content-Id: <mms.smil>
Content-Transfer-Encoding: 7bit
<smil>
<body>
<par dur="5s">
<ref src="t0" />
</par>
<par dur="5s">
<text src="t1%3At1.txt" />
</par>
<par dur="5s">
<img src="i1%3ATeifi.jpg" />
</par>
</body>
</smil>
--F3X/kupo3+S3vrIYnnksMQAAAAMContent-Type: application/smil; name=t0
Content-Transfer-Encoding: binary
Content-Id: <t0>
<smil>
<head>
<layout>
<root-layout height="127" width="111"/>
<region id="Image" top="50%" left="0%" height="50%" width="100%"/>
<region id="Text" top="0%" left="0%" height="50%" width="100%"/>
</layout>
</head>
<body>
<par dur="60000ms">
<text src="cid:t1:t1.txt" region="Text"/>
<img src="cid:i1:Teifi.jpg" region="Image"/>
</par>
</body>
</smil>
--F3X/kupo3+S3vrIYnnksMQAAAAMContent-Type: text/plain;
name=t1%3At1.txt Content-Location: t1%3At1.txt
Apicheck
--F3X/kupo3+S3vrIYnnksMQAAAAMContent-Type: image/jpeg;
name=i1%3ATeifi.jpg Content-Transfer-Encoding: binary
Content-Location: i1%3ATeifi.jpg
Exif
*****************************


You cannot, they are not there.

Perhaps in seperate files or seperate mail?

These seems to be a strange mixup in wording of protocol:

- attachments are not attached.

- attachted attachments are called enclosures.

--
Evertjan.
The Netherlands.
(Replace all crosses with dots in my emailaddress)

Sep 22 '05 #26

P: n/a
> The mms line can be easily decoded by:
document.write(base64Decode(str).replace(/</g,'&lt;'));
[see the link I gave for the content of the base64Decode() function]
You cannot, they are not there.
Perhaps in seperate files or seperate mail?
These seems to be a strange mixup in wording of protocol:
- attachments are not attached.
- attachted attachments are called enclosures.
Evertjan. this is just a sample i am given, there might be few more
available once we develop the code, but suppose attachements are there,
how can we extrat (specially attached images) those in ASP?

Here is the decoded data by a base64 decoding algorithm from encoded
data.
We need to extract image attachments from this message.
How can we do that? ********** Decoded Data ***********
MIME-Version: 1.0
Subject:
From: +447796170669
To: +447719336699
Mxtelecom-Id: 15881964
Date: 2004-06-18 21:28:13
Content-Transfer-Encoding: binary
Content-Type: multipart/related;
boundary="F3X/kupo3+S3vrIYnnksMQAAAAM="; start="<mms.smil>";
type="application/smil"
--F3X/kupo3+S3vrIYnnksMQAAAAMContent-Type: application/smil;
name=mms.smil Content-Id: <mms.smil>
Content-Transfer-Encoding: 7bit
<smil>
<body>
<par dur="5s">
<ref src="t0" />
</par>
<par dur="5s">
<text src="t1%3At1.txt" />
</par>
<par dur="5s">
<img src="i1%3ATeifi.jpg" />
</par>
</body>
</smil>
--F3X/kupo3+S3vrIYnnksMQAAAAMContent-Type: application/smil; name=t0
Content-Transfer-Encoding: binary
Content-Id: <t0>
<smil>
<head>
<layout>
<root-layout height="127" width="111"/>
<region id="Image" top="50%" left="0%" height="50%" width="100%"/>
<region id="Text" top="0%" left="0%" height="50%" width="100%"/>
</layout>
</head>
<body>
<par dur="60000ms">
<text src="cid:t1:t1.txt" region="Text"/>
<img src="cid:i1:Teifi.jpg" region="Image"/>
</par>
</body>
</smil>
--F3X/kupo3+S3vrIYnnksMQAAAAMContent-Type: text/plain;
name=t1%3At1.txt Content-Location: t1%3At1.txt
Apicheck
--F3X/kupo3+S3vrIYnnksMQAAAAMContent-Type: image/jpeg;
name=i1%3ATeifi.jpg Content-Transfer-Encoding: binary
Content-Location: i1%3ATeifi.jpg
Exif
*****************************


Sep 22 '05 #27

P: n/a
wrote on 22 sep 2005 in microsoft.public.inetserver.asp.general:
Evertjan. this is just a sample i am given, there might be few more
available once we develop the code, but suppose attachements are there,
how can we extrat (specially attached images) those in ASP?

If you have the total email string as the value of a variable in ASP,
you will have to select the base64coded part[s] by old Basic functions
[left, mid, right] or regular expressions if you want to code in VBscript,
or if you code in Jscript in the similar functions, like .substr() or
substring(), or also regex. [If you cannot do that, I suggest you hire a
professional or learn more VBS and/or JS]

and then use

decodedString = base64decode(codedString)

--
Evertjan.
The Netherlands.
(Replace all crosses with dots in my emailaddress)

Sep 22 '05 #28

This discussion thread is closed

Replies have been disabled for this discussion.