Sunday, March 29, 2009

Powerbuilder Base 64 Encoding/Decoding

Edit: Added of_decode_base64_to_blob at bottom.

There is a PB example out there for Base64 encoding and decoding, but it relies on calling COM objects. (At least the few I found did..) i.e :


string ls_ret
oleobject lo_xml
oleobject lo_node

lo_xml = create oleobject
lo_xml.connecttonewobject("Microsoft.XMLDOM")

lo_node = lo_xml.createElement("b64")
lo_node.dataType = "bin.base64"

//Encode
lo_node.NodeTypedValue = Blob(as_data)
ls_ret = lo_node.Text

//Decode
//lo_node.Text = as_data
//ls_ret = String( lo_node.NodeTypedValue )


Destroy lo_node
Destroy lo_xml

return ls_ret


Well, I came across a situation where I needed to call PB functions from a PBNI interface. One of the functions called used the above function to decode base64. Well for a reason I've yet to figure out, calling PB from PBNI fails on "create oleobject". Fail. So I rewrote the base64 decoding and encoding to do it manually and remove the dependency of the oleobject. The math could probably be simplified in here..but im too lazy to think.

Note: Both only work with unicode strings (Default for PB strings)
Note2: I used code found here http://www.motobit.com/tips/detpg_Base64/ as a base (youll notice more in the decode section as I got lazier and didnt rename the variables..)


Encode:

public function string of_encode_base64 (string as_data);
string ls_data, ls_ret
string ls_base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

string ls_tmp
longlong ll_24bits, ll_tmp, ll_tmp2, ll_tmp3
longlong ll_1, ll_2, ll_3, ll_4, ll_i
long ll_newline_offset

ls_data = as_data
ls_ret = ""

SetNull( ll_tmp3 )

For ll_i = 1 To longlong( Len( ls_data ) + 1 )

//Create 24bit buffer from unicode
If IsNull( ll_tmp3 ) Then

//Reverse first two bytes
ll_tmp = Asc( Mid( ls_data, ll_i, 1 ) )
ll_tmp = (( ll_tmp - ( Int( ll_tmp / 256 ) * 256 ) ) * 256) + ( ll_tmp / 256 )

ll_i++

//Get 3rd byte and store 4th for later
ll_tmp2 = Asc( Mid( ls_data, ll_i, 1) )
ll_tmp3 = Int( ll_tmp2 / 256 )
ll_tmp2 = ( ll_tmp2 - ( ll_tmp3 * 256 ) )

ll_24bits = (256 * ll_tmp) + ll_tmp2
Else
//Reverse next char and add ll_tmp3 to the beginning to create our next 3 byte(24bit) buffer
ll_tmp = Asc( Mid( ls_data, ll_i, 1 ) )
ll_24bits = ( ll_tmp3 * 65536 ) + ( ( ll_tmp - ( Int( ll_tmp / 256 ) * 256 ) ) * 256 ) + ( Int( ll_tmp / 256 ) )
SetNull( ll_tmp3 )
End If

//Get each 6 bit indexes
ll_1 = Int( ll_24bits / 262144 ) //Shift 18 bits right to get first 6bit index
ll_24bits -= ll_1 * 262144 //remove first 6 bits from buffer
ll_2 = Int( ll_24bits / 4096 ) //Shift 12 bits right for 2nd
ll_24bits -= ll_2 * 4096 //Remove it from buffer
ll_3 = Int( ll_24bits / 64 ) //Shift 6 bits for third
ll_4 = ll_24bits - ( ll_3 * 64 ) // remove third and left with last 6 bit index

//Convert To base64
ls_ret += Mid( ls_base64, ll_1 + 1, 1 ) + Mid( ls_base64, ll_2 + 1, 1 ) + Mid( ls_base64, ll_3 + 1, 1 ) + + Mid( ls_base64, ll_4 + 1, 1 )

//Add a new line For Each 72 chars In dest
If Mod( Len( ls_ret ) - ll_newline_offset , 72 ) = 0 Then
ls_ret += "~r~n"
ll_newline_offset += 2
End If

Next

//Pad end
Choose Case Mod( Len( ls_data ) - 1, 3 )
Case 1 //8 bit final
ls_ret = Left( ls_ret, Len( ls_ret ) - 2 ) + "=="
Case 2 //16 bit final
ls_ret = Left( ls_ret, Len( ls_ret ) - 1 ) + "="
End Choose

return ls_ret
end function


Decode:

public function string of_dec_to_hex (long al_number);
// 0 <= n <= 15
// Converts integer from 0 - 15 into character hex representation

string sHexChar
Choose Case al_number
Case 10
sHexChar = 'A'
Case 11
sHexChar = 'B'
Case 12
sHexChar = 'C'
Case 13
sHexChar = 'D'
Case 14
sHexChar = 'E'
Case 15
sHexChar = 'F'
Case Else
sHexChar = String(al_number)
End Choose

Return sHexChar

end function

public function string of_convert_to_hex (long al_number);
// string of_convert_to_hex( long alNumber ), recursive:
// Recursive function to translate number into hex representation
If al_number > 15 Then
Return of_convert_to_hex( al_number / 16 ) + of_dec_to_hex( Mod( al_number, 16 ) )
Else
Return of_dec_to_hex( al_number )
End If

end function

public function long of_hex2long (string as_hex);
string ls_hex
integer i,length
long result = 0

length = len(as_hex)
ls_hex = Upper(as_hex)
FOR i = 1 to length
result += &
(Pos ('123456789ABCDEF', mid(ls_hex, i, 1)) * &
( 16 ^ ( length - i ) ))
NEXT
RETURN result

end function

public function string of_replace (string as_source, string as_replace, string as_with);
int ll_start = 1,ll_len

ll_len = len( as_replace )
ll_start = Pos( as_source, as_replace, ll_start )

Do While ll_start > 0
as_source = Replace( as_source, ll_start, ll_len, as_with )
ll_start = Pos( as_source, as_replace, ll_start + Len( as_with ) )
Loop

return as_source
end function


public function string of_decode_base64 (string as_base64);
string Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
string ls_working
long dataLength, groupBegin, ll_mod
string sOut, pOut, ls_tmp

//remove white spaces, If any
ls_working = of_replace(as_base64, "~r", "")
ls_working = of_replace(as_base64, "~n", "")
ls_working = of_replace(ls_working, "~t", "")
ls_working = trim( ls_working )

dataLength = Len( ls_working )
If Mod(dataLength, 4) <> 0 Then
return ""
End If

//Now decode each group:
For groupBegin = 1 To dataLength Step 4
long numDataBytes, CharCounter, thisData, nGroup
char thisChar
//Each data group encodes up To 3 actual bytes.
numDataBytes = 3
nGroup = 0

For CharCounter = 0 To 3
/*
Convert each character into 6 bits of data, And add it To
an integer For temporary storage. If a character is a '=', there
is one fewer data byte. (There can only be a maximum of 2 '=' In
the whole string.)
*/

thisChar = Mid(ls_working, groupBegin + CharCounter, 1)

If thisChar = "=" Then
numDataBytes = numDataBytes - 1
thisData = 0
Else
thisData = Pos(Base64, thisChar, 1) - 1
End If
If thisData = -1 Then
return ""
End If

nGroup = 64 * nGroup + thisData
Next

//Hex splits the long To 6 groups with 4 bits
string ls_group
ls_group = of_convert_to_hex( nGroup )


//Add leading zeros
Do While Len(ls_group) < 6
ls_group = "0" + ls_group
Loop

//Converts two characters at a time accounting for Unicode and Little Endian
//Saves the third char for the next run
If ls_tmp <> "" Then
pOut = Char( of_hex2long( Mid( ls_group, 1, 2 ) + ls_tmp) )
pOut = pOut + Char( of_hex2long( Mid( ls_group, 5, 2 ) + Mid( ls_group, 3, 2) ) )
ls_tmp = ""
Else
pOut = Char( of_hex2long( Mid( ls_group, 3, 2 ) + Mid( ls_group, 1, 2) ) )
ls_tmp = Mid( ls_group, 5, 2 )
End If

//add numDataBytes characters To out string
sOut = sOut + Left(pOut, numDataBytes)
Next

return sOut
end function


Edit:
I got through with my Quiznos pretty quick today, so i decided to take a quick look at the comments about decoding base64 to a blob.

NOTE: I didn't spend very much time going over this (Im lazy!). I did however test it succesfully with two jpegs that where converted to base64 strings using C#'s Convert.ToBase64String

NOTE2: Encoding I did not even glance at. Your on your own there.


public function blob of_decode_base64_to_blob (string as_base64);
string ls_base_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
string ls_working
long ll_data_len, ll_start_from, ll_mod
string ls_tmp, ls_hex

long ll_num_bytes, ll_count, ll_this_pos, ll_dec
char lc_char

blob lb, lb_out
long ll_pos
ll_pos = 1

//remove white spaces, If any
ls_working = gnv_app.of_conv(as_base64, "~r", "")
ls_working = gnv_app.of_conv(as_base64, "~n", "")
ls_working = gnv_app.of_conv(ls_working, "~t", "")
ls_working = trim( ls_working )

ll_data_len = Len( ls_working )
If Mod(ll_data_len, 4) <> 0 Then
return lb
End If

lb = Blob(space(ll_data_len))

//Now decode each group:
For ll_start_from = 1 To ll_data_len Step 4

//Each data group encodes up To 3 actual bytes.
ll_num_bytes = 3
ll_dec = 0

For ll_count = 0 To 3
/*
Convert each character into 6 bits of data, And add it To
an integer For temporary storage. If a character is a '=', there
is one fewer data byte. (There can only be a maximum of 2 '=' In
the whole string.)
*/

lc_char = Mid(ls_working, ll_start_from + ll_count, 1)

If lc_char = "=" Then
ll_num_bytes = ll_num_bytes - 1
ll_this_pos = 0
Else
ll_this_pos = Pos(ls_base_chars, lc_char, 1) - 1
End If
If ll_this_pos = -1 Then
return lb
End If

ll_dec = 64 * ll_dec + ll_this_pos
Next

//Hex splits the long To 6 groups with 4 bits
ls_hex = of_convert_to_hex( ll_dec )

//Add leading zeros
Do While Len(ls_hex) < 6
ls_hex = "0" + ls_hex
Loop

//Converts two characters at a time accounting for Little Endian
//Saves the third char for the next run
If ls_tmp <> "" Then
//Add first two byte
BlobEdit(lb, ll_pos, of_hexlong( Mid( ls_hex, 1, 2 ) + ls_tmp))
ll_pos += 2
//Add next two bytes
BlobEdit(lb, ll_pos, of_hexlong( Mid( ls_hex, 5, 2 ) + Mid( ls_hex, 3, 2) ) )
ll_pos += 2

ls_tmp = ""
Else
//Add two bytes
BlobEdit(lb, ll_pos, of_hexlong( Mid( ls_hex, 3, 2 ) + Mid(ls_hex, 1, 2)) )
ll_pos += 2

//Save third
ls_tmp = Mid( ls_hex, 5, 2 )
End If

//Adjust position as needed
ll_pos = ll_pos - (3 - ll_num_bytes)
Next

lb_out = BlobMid(lb, 1, ll_pos)

return lb_out
end function

71 comments:

Anonymous said...

The following section does not understand

//Add leading zeros
Do While Len(ls_group) < ls_group = "0"> "" Then


Can you help me
thanks!

Void said...

Thats weird..it looks like it didnt paste correctly..I edited the post to the correct this

Anonymous said...

Thank you very much.

Anonymous said...

Hello

I have a XML webservice written in C# that response me a String (it is a image JPG converted in base64 string using C# command Convert.ToBase64String(Buffer)).

My desktop client was developed in Power Builder 11.2 and I am tryn' to use your decode function cause I do need to show the image but it doesn't work :(

This is a part of my PB code.

String ls_JPG
uo_base64 o_base64

// Instance
o_base64 = CREATE uo_base64

// decode xml response
ls_JPG= o_base64.of_decode_base64( ls_response_XML_webservice)

// convert to blob
Blob lblob
lblob = Blob(ls_JPG)
// Show the image
p_foto.setPicture( lblob )

I tested the webservice and is ok. Could you please give a little help!

I do really apreciate your help

Best Regards

Anthony Morera
CRI

Anonymous said...

How to convert "function string of_decode_base64 (string as_base64)" to
"function blob of_decode_base64 (string as_base64)"

Can you help me
thanks!

Void said...

@Anthony&Anonymous:

The concept is exactly the same..the lines that would need to change is in the if block for 'If ls_tmp <> "" Then'

Instead of converting each group into chars and adding them into ls_tmp_group and then into ls_out..you would instead just add each byte group into a blob..something like:

If ls_tmp <> "" Then
// ls_tmp_group = Char( of_hexlong( Mid( ls_hex, 1, 2 ) + ls_tmp) )
// ls_tmp_group = ls_tmp_group + Char( of_hexlong( Mid( ls_hex, 5, 2 ) + Mid( ls_hex, 3, 2) ) )
// ls_tmp = ""

//Add first two bytes
BlobEdit(lb, ll_pos, of_hexlong( Mid( ls_hex, 1, 2 ) + ls_tmp))
ll_pos += 2
//Add next two bytes
BlobEdit(lb, ll_pos, of_hexlong( Mid( ls_hex, 5, 2 ) + Mid( ls_hex, 3, 2) ) )
ll_pos += 2

ls_tmp = ""
Else
// ls_tmp_group = Char( of_hexlong( Mid( ls_hex, 3, 2 ) + Mid( ls_hex, 1, 2) ) )

//Add two bytes
BlobEdit(lb, ll_pos, of_hexlong( Mid( ls_hex, 3, 2 ) + Mid(ls_hex, 1, 2)) )
ll_pos += 2

//Save third
ls_tmp = Mid( ls_hex, 5, 2 )
End If

where lb is a buffered blob..i dont have the time atm to look over this but it may need to take into account the ll_num_bytes variable so that at the end you dont end up with some extra bytes..I hope this helps!

Void said...

I found a little bit of time between lunch to update the blog with new function for blobs. Lemme know how it works :)

Anonymous said...

You are a leader!

Thank you very much.

Anonymous said...

The decoding in PocketBuilder is very slow, you have any idea on how to run faster;


thanks!

Void said...

If your looking for speed your not gonna find it in Powerbuilder (let alone pocket builder) The best way to handle this would be to create a DLL in c++ and call in to it through PB.

I did a quick search and looks like Sybase made available to us exactly this on the codexchange site:

http://downloads.sybase.com/codexchange/pocketbuilder/582/Base64encode.ziphttp://www.sybase.com/detail?id=1058503

Anonymous said...

viagra logo viagra reviews viagra and cialis cost of viagra viagra rrp australia free sample viagra buy viagra in london england buy viagra without prescription lowest price viagra viagra reviews alternative to viagra how to get viagra herbal viagra viagra cialis levitra

Anonymous said...

[B]NZBsRus.com[/B]
Dismiss Laggin Downloads Using NZB Files You Can Hastily Find Movies, PC Games, MP3s, Applications & Download Them at Flying Rates

[URL=http://www.nzbsrus.com][B]Usenet[/B][/URL]

Anonymous said...

Do you have copy writer for so good articles? If so please give me contacts, because this really rocks! :)

Anonymous said...

free dating sim games [url=http://loveepicentre.com/]connecticut singles[/url] russian dating http://loveepicentre.com/ talk to singles knoxville tn

Anonymous said...

Do you have copy writer for so good articles? If so please give me contacts, because this really rocks! :)

Anonymous said...

Making money on the internet is easy in the undercover world of [URL=http://www.www.blackhatmoneymaker.com]blackhat marketing[/URL], You are far from alone if you have no clue about blackhat marketing. Blackhat marketing uses alternative or not-so-known ways to produce an income online.

Anonymous said...

cost health care foreigners france [url=http://usadrugstoretoday.com/categories/mujeres-mejoramiento.htm]mujeres mejoramiento[/url] yul brynner smoking http://usadrugstoretoday.com/products/imuran.htm rates of parents smoking around their children http://usadrugstoretoday.com/terms.htm
drug free messages [url=http://usadrugstoretoday.com/categories/anti-diabetico.htm]anti diabetico[/url] instructions to build a working heart [url=http://usadrugstoretoday.com/products/speman.htm]health insurance for pre existing conditions infertility[/url]

Anonymous said...

breathing smoke from house fire and your health [url=http://usadrugstoretoday.com/products/brand-cialis.htm]brand cialis[/url] diet coke commercial green bubbles http://usadrugstoretoday.com/catalogue/n.htm online pharmacy soboxin http://usadrugstoretoday.com/products/rogaine-5-.htm
blood pudding movie [url=http://usadrugstoretoday.com/catalogue/r.htm]Order Cheap Generic Drugs[/url] kidney failer [url=http://usadrugstoretoday.com/categories/perdida-de-peso.htm]generic meltabs viagra php[/url]

Anonymous said...

designer reading glasses cinzia http://topcitystyle.com/?action=products&product_id=2475 harley davidson infant clothes [url=http://topcitystyle.com/versace-outwear-brand1.html]designer motorola cell phone cases[/url] designer limousine
http://topcitystyle.com/?action=products&product_id=1874 certified kitchen designers [url=http://topcitystyle.com/-leather-jacket-category85.html]magazine spring fashion ecko show model girls runway red clothing[/url]

Anonymous said...

summer clothes for ladies http://topcitystyle.com/of-white-men-color154.html how to get bicycle chain greese out of clothes [url=http://topcitystyle.com/bizzbee-t-shirts-for-men-brand70.html]marlboro classics clothes[/url] child fashion lolita
http://topcitystyle.com/la-martina-sweater-brand27.html fastpitch softball pitching shoes [url=http://topcitystyle.com/black-white-men-color23.html]precidio fashion london[/url]

Anonymous said...

classified adult dating http://theporncollection.in/orgy/homemade-orgy-movie
[url=http://theporncollection.in/best-porn/watch-free-porn-movie-fat-girls]fotos pokemon hentai[/url] best dildo [url=http://theporncollection.in/orgy/celbrity-orgy-password]celbrity orgy password[/url]
lubricant for wood drawer slides http://theporncollection.in/porn-girl/little-thai-porn
[url=http://theporncollection.in/mature-xxx/mature-lady-spanks]amanda holden anal[/url] male solo anal tips [url=http://theporncollection.in/incest/incest-porn-links]incest porn links[/url]
adult help wanted in baltimore http://theporncollection.in/orgy/roomates-orgy
[url=http://theporncollection.in/lesbian-porn/lesbian-latin-teen-on-sofa]sexy holiday humor[/url] trycicles electric adult [url=http://theporncollection.in/hentai-sex/dark-cloud-2-hentai]dark cloud 2 hentai[/url]
rock man hentai http://theporncollection.in/gay-male/gay-hotels-washington-dc
[url=http://theporncollection.in/orgy/homemade-amateur-orgy]anal licking movies tgp[/url] adult phoenix [url=http://theporncollection.in/gay-love/parkersburg-gay-friendly]parkersburg gay friendly[/url]

Anonymous said...

mtv movie awards memorable flubs [url=http://full-length-movies.com/dvd-quality-movie-dazed-and-confused/9058database/]Dazed and Confused[/url] chalk movie [url=http://full-length-movies.com/dvd-quality-movie-mi-monstruo-y-yo/30008database/]Mi Monstruo Y Yo[/url]
windows movie maker gun effects [url=http://full-length-movies.com/dvd-quality-movie-terrors-advocate/12988database/]Terrors Advocate[/url] free movie forums [url=http://worldmovs.co.cc/full_version-sur-mes-levres/14651database/]Sur Mes Levres[/url]
object of my affection movie [url=http://full-length-movies.com/dvd-quality-movie-nalle-puh-varkul-med-ru/21135database/]Nalle Puh Varkul Med Ru[/url] official saw iv movie sight [url=http://worldmovs.co.cc/full_version-the-brave-one/27917database/]The Brave One[/url]
sweet dreams movie [url=http://worldmovs.co.cc/full_version-zombie-wars/15260database/]Zombie Wars[/url] canadian movie avril lavigne road trip [url=http://full-length-movies.com/dvd-quality-movie-vital/29006database/]Vital[/url]

Anonymous said...

west virginia universtiy medical school anesthesia [url=http://usadrugstoretoday.com/products/zyrtec.htm]zyrtec[/url] colleges of public health in england http://usadrugstoretoday.com/products/symmetrel.htm
importance of medical records [url=http://usadrugstoretoday.com/categories/men-s-health.htm]men s health[/url] fda prescription guideline for lyrica [url=http://usadrugstoretoday.com/products/viagra-plus.htm ]causes of drug or substance abuse [/url] millbury internal medicine
photos generic lamotrigine tablets [url=http://usadrugstoretoday.com/categories/erection-paquetes.htm]erection paquetes[/url] carbohydrates effect temeperature change http://usadrugstoretoday.com/catalogue/m.htm
woman forum penis [url=http://usadrugstoretoday.com/products/maxalt.htm]maxalt[/url] understanding basic medical coding [url=http://usadrugstoretoday.com/products/pravachol.htm ]orlando conference veterinary medicine proceedings [/url] sample drug charts using spss

Anonymous said...

african clothes http://www.thefashionhouse.us/yellow-lilac-casual-tops-color196.html a gucci belt purse [url=http://www.thefashionhouse.us/black-leopard-print-women-s-tops-color41.html]designer purses wholesale[/url] sarasota multimedia designer
http://www.thefashionhouse.us/?action=products&product_id=1255 talbot clothes [url=http://www.thefashionhouse.us/?action=products&product_id=2008]clothes female nude male[/url]

Anonymous said...

baby phat clothes http://www.thefashionhouse.us/men-page13.html fasion designer [url=http://www.thefashionhouse.us/?action=products&product_id=2507]vintage clothes[/url] audio skateboarding shoes
http://www.thefashionhouse.us/black-silver-men-color72.html delman shoes ransom [url=http://www.thefashionhouse.us/gucci-jackets-amp-sweatshirts-brand12.html]extra wide shoes[/url]

Anonymous said...

health and community and youth and ghana [url=http://usadrugstoretoday.com/products/dostinex.htm]dostinex[/url] health insurance license ce classes in utah http://usadrugstoretoday.com/products/metoclopramide.htm
health fit counter review [url=http://usadrugstoretoday.com/products/copegus.htm]copegus[/url] compelling the heart by auror borealis [url=http://usadrugstoretoday.com/contact.htm ]usher syndrome icd9 code [/url] neuro medical center
mobile drug reference [url=http://usadrugstoretoday.com/index.php?lng=de&cv=eu]Buy generic and brand medications[/url] definition of binge eating disorder http://usadrugstoretoday.com/products/leukeran.htm
comdom penis [url=http://usadrugstoretoday.com/products/buspar.htm]buspar[/url] a failed health information systems case study [url=http://usadrugstoretoday.com/products/sublingual-cialis.htm ]honduras health risks [/url] medical abbreviation pbc

Anonymous said...

denver paris travel connection http://xwl.in/tour/litchfield-county-mansion-tour bush baby travel
[url=http://xwl.in/tourism]kenosha la mancha travel[/url] viking travel mug 28oz [url=http://xwl.in/airport/dublin-airport-duty-free]dublin airport duty free[/url]
ytb travel drohan travel http://xwl.in/cruise/southeast-asia-cruise
[url=http://xwl.in/adventure/grayling-river-rats-adventure-racing]coach travel europe[/url] about travel [url=http://xwl.in/motel/motel-development]motel development[/url]
san antonio travel agent http://xwl.in/airport/delta-airlines-desk-at-fort-lauderdale-airport kosmar travel [url=http://xwl.in/maps/sothhanton-city-center-maps]sothhanton city center maps[/url]

Anonymous said...

free no download casino slots http://xwn.in/poker-online_online-poker-free-money national lottery results august07
[url=http://xwn.in/casino-playing-cards_guitar-strap-playing-cards]pittsburg casino[/url] gambling bonus craps casino online [url=http://xwn.in/blackjack_blackjack-strategy-6-decks]blackjack strategy 6 decks[/url]
baseball odds gambling world series http://xwn.in/betting_british-open-golf-betting
[url=http://xwn.in/jokers_jokers-tattooing-and-piercing]the little creek casino[/url] texas treasure gambling [url=http://xwn.in/gambling-online_gambling-treatment]gambling treatment[/url]
blackjack in san jose http://xwn.in/online-casinos_parker-arizona-casinos nevada casinos [url=http://xwn.in/gambling-online_gambling-and-sprts]gambling and sprts[/url]

Anonymous said...

what is the winning lottery numbers for pick 3 new jersey http://wqm.in/blackjack_trump-blackjack-gamees buffalo bills lottery jacket
[url=http://wqm.in/slot_slot-t-offense]seneca allegheny casino ny[/url] keno rules best casino [url=http://wqm.in/lottery_new-jersey-lottery-scratch-off]new jersey lottery scratch off[/url]
david harvey blackjack http://wqm.in/casino-online_hoyle-casino-2008-patch
[url=http://wqm.in/poker-online_real-poker-players]lottery forums[/url] join bingo [url=http://wqm.in/slot_slot-car-tool-box]slot car tool box[/url]
offtrack betting nj http://wqm.in/jokers_darstellungen-des-jokers free lucky numbers for lottery [url=http://wqm.in/slots_play-free-sea-monkeys-slots]play free sea monkeys slots[/url]

Anonymous said...

netter medical illustrations free [url=http://usadrugstoretoday.com/categories/skin-care.htm]skin care[/url] bodybuilding online http://usadrugstoretoday.com/products/mentax.htm red sox breast http://usadrugstoretoday.com/categories/antibioticos.htm
fachinger mineral water [url=http://usadrugstoretoday.com/products/allopurinol.htm]allopurinol[/url] montagna drug arrest [url=http://usadrugstoretoday.com/products/allegra.htm]breast feeding a downs syndrome infant[/url]

Anonymous said...

redline movie [url=http://moviestrawberry.com/films/film_little_manhattan/]little manhattan[/url] free online adult movie http://moviestrawberry.com/films/film_anna_and_the_king_of_siam/ brick the movie online
adult movie long [url=http://moviestrawberry.com/films/film_ocean_s_eleven_70/]ocean s eleven 70[/url] halloween movie couples http://moviestrawberry.com/films/film_ultraviolet/ medication errors movie
the number 23 movie review [url=http://moviestrawberry.com/films/film_men_in_black_ii/]men in black ii[/url] the thing movie quotes
local movie shows [url=http://moviestrawberry.com/films/film_jimmy_hollywood/]jimmy hollywood[/url] marilyn manson plays a rapist cannibel in the movie http://moviestrawberry.com/films/film_hell_in_the_pacific/ saw movie reviews
becoming jane free movie [url=http://moviestrawberry.com/films/film_hornblower_the_frogs_and_the_lobsters/]hornblower the frogs and the lobsters[/url] haloween the movie http://moviestrawberry.com/easy-downloads/letter_T/?page=31 movie review falling down

Anonymous said...

You are not right. I can prove it. Write to me in PM, we will communicate.

gold viagra said...

this post really very good and effective for me thanks for sharing this nice post

Anonymous said...

I drop a leave a response when I especially enjoy
a post on a site or if I have something to
contribute to the conversation. It's a result of the sincerness communicated in the post I browsed. And after this article "Powerbuilder Base 64 Encoding/Decoding". I was actually moved enough to drop a thought :) I actually do have some questions for you if it's allright.
Could it be only me or do a few of the comments come across like written by brain dead visitors?
:-P And, if you are posting at other online sites,
I would like to follow everything new you have to post.
Could you list all of all your community sites like your Facebook page, twitter feed,
or linkedin profile?
Also visit my web-site : Canada Goose jakker salg

Anonymous said...

Hi! I understand this is somewhat off-topic but I had to ask.
Does operating a well-established website such as yours require a lot
of work? I am brand new to blogging however I do write in my
diary daily. I'd like to start a blog so I can easily share my own experience and thoughts online. Please let me know if you have any kind of suggestions or tips for new aspiring blog owners. Thankyou!
Stop by my weblog ... nfl jerseys

Anonymous said...

adult and dating and alabama http://loveepicentre.com/map.php singles teachers friends dating

Anonymous said...

Hello There. I found your blog using msn. This is a very well written article.
I'll be sure to bookmark it and return to read more of your useful info. Thanks for the post. I will certainly return.
Review my webpage : www.freetopessays.com

Anonymous said...

top [url=http://www.xgambling.org/]casino games[/url] coincide the latest [url=http://www.realcazinoz.com/]online casino[/url] unshackled no set aside reward at the best [url=http://www.baywatchcasino.com/]casino compensation
[/url].

Anonymous said...

I usuаlly do not write many commеntѕ, hοωeveг
i diԁ sоme seаrching аnԁ wound
up here "Powerbuilder Base 64 Encoding/Decoding".
And I аctuаlly do have a few questіons fоr you if you tеnd not to mind.
Could it be οnly me οr ԁοeѕ it look like
a few of thesе гespοnsеѕ appeаr like they
aгe lеft by brаіn deаd viѕitοrѕ?
:-P And, if you aге posting on additional plaсeѕ, I
ωоuld likе to keеρ up wіth anything
fresh you have to post. Cоuld you mаkе
a liѕt of аll of yоur communal pages liκе
your Facеbook page, tωіtter feed, or lіnκeԁin pгofіle?


Reνieω my webpage; instant approval payday loans

Anonymous said...

When sоme οnе sеarches fοr hiѕ nесesѕaгy thing,
thuѕ he/she neеdѕ to be avaіlable that
in dеtaіl, theгeforе thаt thing іs mаintained ονeг hеre.


mу blog :: Vida Vacations

Anonymous said...

[url=http://www.onlinecasinos.gd]casino[/url], also known as understood casinos or Internet casinos, are online versions of illustrious ("buddy and mortar") casinos. Online casinos dissemble someone admit of gamblers to ‚lite up and wager on casino games stem the Internet.
Online casinos superficially intern up respecting sales marathon odds and payback percentages that are comparable to land-based casinos. Some online casinos connect higher payback percentages with a goal vacuum contrivance games, and some indite renowned payout enamour audits on their websites. Assuming that the online casino is using an politely programmed haphazard profuse generator, catalogue games like blackjack want an established forebears edge. The payout holding after these games are established to the nucleus the rules of the game.
Differing online casinos connoisseur out or emerge their software from companies like Microgaming, Realtime Gaming, Playtech, Supranational Prank Technology and CryptoLogic Inc.

Anonymous said...

[url=http://onlinemedistore.com/products/casodex.htm][img]http://onlinemedistore.com/6.jpg[/img][/url]
rite aid pharmacy leominster ma http://onlinemedistore.com/catalogue/f.htm walgreens pharmacy open 24 hours in milwaukee [url=http://onlinemedistore.com/categories/pain-relief.htm]northern california veterans affairs pharmacy residency[/url]
bob fisher boise pharmacy http://onlinemedistore.com/catalogue/y.htm lloyds pharmacy 0433 [url=http://onlinemedistore.com/products/zovirax.htm]zovirax[/url]
fl pharmacy law returning prescription http://onlinemedistore.com/testimonials.htm best steroids pharmacy [url=http://onlinemedistore.com/products/roxithromycin.htm]the pharmacy act australia[/url]
what happened to doctor script online pharmacy http://onlinemedistore.com/products/cleocin.htm walmart pharmacy shawnee ok [url=http://onlinemedistore.com/products/luvox.htm]luvox[/url]

Anonymous said...

[url=http://redbrickstore.co.uk/products/astelin.htm][img]http://onlinemedistore.com/3.jpg[/img][/url]
fluconazole online pharmacy http://redbrickstore.co.uk/products/generic-imitrex.htm mn law exam pharmacy [url=http://redbrickstore.co.uk/products/avapro.htm]over seas pharmacy[/url]
mini pharmacy and medical supplies http://redbrickstore.co.uk/products/levitra-professional.htm wayne state pharmacy program [url=http://redbrickstore.co.uk/products/innopran-xl.htm]innopran xl[/url]
pharmacy prescription bupropion budeprion http://redbrickstore.co.uk/products/coumadin.htm positive aspects of critical care pharmacy [url=http://redbrickstore.co.uk/products/quibron-t.htm]specialty pharmacy[/url]
pet pharmacy jobs http://redbrickstore.co.uk/products/kamasutra-superthin-condoms.htm online pharmacy no scripts [url=http://redbrickstore.co.uk/products/effexor-xr.htm]effexor xr[/url]

Anonymous said...

[url=http://certifiedpharmacy.co.uk/products/tegretol.htm][img]http://onlinemedistore.com/10.jpg[/img][/url]
ncmh or pharmacy telephone number chapel hill http://certifiedpharmacy.co.uk/products/abilify.htm online pharmacy affiliates [url=http://certifiedpharmacy.co.uk/products/erectalis.htm]seton pharmacy jacksonville[/url]
half price pharmacy http://certifiedpharmacy.co.uk/products/herbolax.htm choicepoint searchpoint pharmacy [url=http://certifiedpharmacy.co.uk/products/biaxin.htm]biaxin[/url]
indiana requirements for pharmacy tech http://certifiedpharmacy.co.uk/products/cytotec.htm caverta 100 mgonline pharmacy [url=http://certifiedpharmacy.co.uk/products/cialis-super-active-plus.htm]finasteride pharmacy[/url]
rigel pharmacy http://certifiedpharmacy.co.uk/catalogue/l.htm pharmacy mcfarland [url=http://certifiedpharmacy.co.uk/products/erythromycin.htm]erythromycin[/url]

Anonymous said...

Now I am going away to do my breakfast, afterward having my
breakfast coming over again to read further news.

Look into my blog :: サングラス オークリー

Anonymous said...

[url=http://certifiedpharmacy.co.uk/products/provera.htm][img]http://onlinemedistore.com/4.jpg[/img][/url]
list of county pharmacy association in iowa http://certifiedpharmacy.co.uk/catalogue/r.htm zantac price pharmacy liquid [url=http://certifiedpharmacy.co.uk/products/kamagra-soft.htm]penn presbyterian medical center pharmacy[/url]
pharmacy clinic http://certifiedpharmacy.co.uk/catalogue/q.htm divya pharmacy [url=http://certifiedpharmacy.co.uk/products/biaxin.htm]biaxin[/url]
nogales sonara pharmacy http://certifiedpharmacy.co.uk/products/elavil.htm pharmacy fragrance australia [url=http://certifiedpharmacy.co.uk/products/rave--energy-and-mind-stimulator-.htm]washington state university pharmacy school[/url]
south carolina pharmacy board http://certifiedpharmacy.co.uk/products/ditropan.htm pharmacy phentermine [url=http://certifiedpharmacy.co.uk/products/tretinoin-cream-0-025-.htm]tretinoin cream 0 025 [/url]

Anonymous said...

ブロック全体は現在衣料品の国際的な
ブランドのためのシックな
アウトレットファ
ッションアクセサリー家庭Dになっている


Feel free to visit my web-site ... miumiu 財布

Anonymous said...

ルディシルバ梅の木は世界中の多
くの木々の間にあ
ることによって


my weblog :: miumiu 新作

Anonymous said...

女性は拡大を検討すること
により子宮インフルエ
ンザ様症状頻尿や月経の
欠如など妊娠初期の症状を訴
え任命で自分
自身を提示す
る場合医師はまた妊娠検査を行
うことが

Here is my weblog; miumiu アウトレット

Anonymous said...

モールトスカーナフ
ァクトリーアウトレット
はローマに向か
って高速道路A1とインチーザ
出口からフィレンツェイタリアから車で30分に位置しています

Feel free to surf to my page ... miumiu

Anonymous said...

人々 いた されて 驚かれる によって、完全 テーマ の シンプルさ シープスキン バッグによって伝達されます。 あなたが得る 保証 から、エレガントな 外観 によってに追求される
各個人 女性。

Review my blog: ルイヴィトン

Anonymous said...

グッチトートバッグこれらの
種類は、次のように見られてどのように大規模な、彼らは一般的に
、私は時折グ
ッチショップを訪れた
ことがありません
クライアントを考えると内の
画像を参照してください
。グッチペラムは
、彼らがすること
ができますどのように大規模な
極めて過小評価ト
ートバッグ

Here is my site: gucci 財布

Anonymous said...

Choose the right shoes now and revel in your outdoor exercises even more.
Also Nike features rainproof shoes that come with
waterproof warranties. For many of us of us, idea
of change has the ability to send us to a panic attack.

It goes from being a major incident to a whole new exciting quest.
http://www.ic-wiki.com/wiki/User:Melody085

Anonymous said...

水生生物の影響を
強調するためにターコイ
ズアクアとコバルトは最も頻
繁に使用される色合いです

my weblog; ミュウミュウ アウトレット

Anonymous said...

。ロリークリーフは
ヤンキーのため
の明確な裏庭を示すハー
ド石ダイヤルを介して2つのいくつかの
時計の見事なセットを示し
西部。あなたが真剣に、非常に活
気のある色素を持っているハロ
ウィーンの衣装を含めた場合、徹底的に、手間が存在するだけでどこ、解決策はいくつ
かの事実のようにロ
ープロファイルは、実際schokohrrutigeを着なければなければ
ならない、あなたが実際に表示させるための最善の方
法は、ありますパンツや多分
ブラウス

my page :: http://www.krook.biz

Anonymous said...

。女性のハンドバッグの異なるブランドの利用が難しい人は、女性のハン
ドバッグのブランドそれを選択するために作ら
れている最高の
自分の要件に合うことができます。世界に一つだ
けの女性のハンドバッグ
は、別の機会に
女性が別の袋を運ぶ、好
きなものを女性を満足
することはできません

Also visit my web site ... gucci 財布

Anonymous said...

ミックスに向けて私たちの政府
の追加、実際に1 thing.

Tiffanyジュエリー安いコーチハンドバッグをし
ない人々は、私たち
自身のロジックにを持って参加しますその見落とす期待し続ける一部検出で
きない意味または多分場所エレガンスをTwilighting、あ
なたの攻撃を追加支援す
る最後の第二の
承認:円を得る。私
は戻って6数週間
に関連する素晴らしい修得し、私は​​以前
は最も確かに多くの
情報をみんなに
"権利を与える"べ
きであるかもしれ
ないと期待していた

Also visit my website ... コーチ

Anonymous said...

Hi! Someone in my Myspace group shared this website with
us so I came to check it out. I'm definitely loving the information. I'm bookmarking and will be tweeting this to my followers!
Excellent blog and great style and design.

Here is my page Replica Rolex Watches

Anonymous said...

I used to be able to find good information from your content.


Feel free to visit my web page; /blog/

Anonymous said...

Think of the nike swoosh and the Toyota small. Person involved
in the campaign must is very clear more or less these issues.
hand calculators store data inside iPod just similarly to other
storing process. Wondering about what might happen will not an individual deal with elaborate at hand.
http://popup.tok2.com/home/cgilaboratory/bbs/aska.

cgi

my webpage - womens nike air max

Anonymous said...

You actually make it appear so easy together with your presentation but I find this matter to be really one thing that I think I'd by no means understand. It seems too complex and very vast for me. I am taking a look ahead in your subsequent publish, I will attempt to get the grasp of it!

my page :: ミュウミュウ

Anonymous said...

I think the admin of this website is actually working hard in support of his site,
as here every material is quality based data.

Feel free to surf to my weblog; http://www.lasallechihuahua.edu.mx/ILS/scripts/server/PHP/moodle/blog/index.php?userid=5178

Anonymous said...

This paragraph will assist the internet users for setting
up new blog or even a blog from start to end.

Here is my web site ... Replica Rolex

Anonymous said...

Thank you for any other great article. Where else could anyone get that kind of information in
such a perfect approach of writing? I have a presentation
subsequent week, and I am at the look for such information.



Feel free to visit my weblog http://www.timelash.co.uk/index.php/member/149579

Anonymous said...

Due to the fact everyone knows, tiffany rings are renowned
for their gorgeous plans. They made another appearance doing Pokmon Mystery
Dungeon: Explorers of Time & Darkness. jewelry, was inside of the top "A" list for gorgeousness.
Colored glass windows reviewing Goofy, Mickey, Yosemite Sam, the existing gang.
http://tierra.aslab.upm.es/courses/user/view.php?id=11404&course=1

my webpage :: tiffany & co jewelry

Anonymous said...

Wonderful beat ! I wish to apprentice while
you amend your website, how can i subscribe for a blog website?
The account aided me a acceptable deal. I had been tiny
bit acquainted of this your broadcast offered bright clear
idea

Feel free to surf to my page - ルブタン パンプス

Anonymous said...

At our store, we may drill holes while tools to allow freer airflow at the tool.
30 newspaper, i will have a converse with Sue Gray of Champaign.

And don't envision that sportswear is often all athletics and / or no femininity. Do you need a new warmer, heavier hat for colder periods? http://www.topscore-qm.com/UseBB/profile.php?id=57398

My blog post ... nike air max

Anonymous said...

dating sites sex only http://loveepicentre.com/taketour/ goth teen phone dating services
fake british dating show [url=http://loveepicentre.com]safe dating[/url] quest chat dating
dating books for single parents [url=http://loveepicentre.com/map/]marlin firearms dating[/url] is emily oment dating michel musso [url=http://loveepicentre.com/user/billionare/]billionare[/url] online dating for senior citizens

Anonymous said...

Wondering about what can happen will not help you deal
with what's at hand. Focus on the want to exist when the change is complete. Ralph Lauren, Burberry and Liz Claiborne, have added playing lines. Consequently, they want to enjoy themselves with way packs. http://www.psycheforum.it/userinfo.php?uid=29307

Anonymous said...

Cutting-edge designs, trusted brand, good, sound fabrication.
Patterns are a good part of brand new trend in golf courses fashion.
A pair of good quality jogging shoes is the single most important item
a jogger can buy. It capabilities a plastic outsole for right behind the
knee and durability. http://www.haitianplug.com/index.

php?do=/blog/1149/you-will-likely-find-nike-running-footwear-for-all-shows-and-routines/

My weblog - air max one

Anonymous said...

Uggs don't smell the aromas of up like position and boots contructed out of calfskin. Remember, if you take care of one's own
boots, they will take care of you. One does never be excessively picky when costly UGG boots.
Trends boots are successful everywhere especially as soon as the colder weather will arrive.
http://jugendraum-suterode.de/infusions/guest_book/guest_book.
php