Bitcoin Forum
May 08, 2024, 02:36:17 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 ... 90 »
  Print  
Author Topic: MultiBit  (Read 336107 times)
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 05, 2012, 10:05:36 PM
Last edit: April 12, 2012, 08:04:27 AM by jim618
 #321

It is not quite finished yet
I have just put in quite a handy feature.

The list of addresses in the Send and Request screen is now sorted by label.
And as you type your label text in the main entry form it moves the row to its correct sort position in the addresses list.
It is a bit hard to describe in words:

Screenshot:


Here you can see I have grouped a few addresses simply by typing 'exact' as a prefix.  You create a new address, type the prefix in the label box and you can easily see the other, related addresses.

(You can also sort by bitcoin address too if you want).

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
1715178977
Hero Member
*
Offline Offline

Posts: 1715178977

View Profile Personal Message (Offline)

Ignore
1715178977
Reply with quote  #2

1715178977
Report to moderator
1715178977
Hero Member
*
Offline Offline

Posts: 1715178977

View Profile Personal Message (Offline)

Ignore
1715178977
Reply with quote  #2

1715178977
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 07, 2012, 09:43:01 PM
Last edit: April 07, 2012, 10:00:00 PM by jim618
 #322

It is the start of a longish road, but I have started on a command line interface for the MultiBit object model.  This will, when it is complete, be able to manipulate all the 'things' in MultiBit using a command line.

At the moment all it can do is show help, create new wallets and exit the shell as follows:
Code:
host47:Java jim$ cat multiBitShell.sh
java -classpath multibit-shell-exe.jar org.multibit.viewsystem.commandline.MultiBitCommandLine
host47:Java jim$ ./multiBitShell.sh
22:31:33.477 [main] INFO  o.m.v.c.MultiBitCommandLine - Starting MultiBitCommandLine
22:31:33.484 [main] INFO  o.m.ApplicationDataDirectoryLocator - Application data directory.1 = '/Users/jim/Library/Application Support/MultiBit'
22:31:33.514 [main] DEBUG o.m.v.c.MultiBitCommandLine - useTestNet = false
22:31:33.545 [main] DEBUG o.m.v.c.MultiBitCommandLine - userLanguageCode = en
22:31:33.564 [main] DEBUG o.m.v.c.MultiBitCommandLine - Creating model
22:31:33.569 [main] DEBUG org.multibit.model.MultiBitModel - Initial view from properties file is '1'
22:31:33.569 [main] DEBUG o.m.v.c.MultiBitCommandLine - Creating views
MB > 22:31:33.576 [main] DEBUG o.m.v.c.MultiBitCommandLine - Registering with controller
22:31:33.577 [main] DEBUG o.m.v.c.MultiBitCommandLine - Creating Bitcoin service
22:31:33.678 [main] DEBUG org.multibit.network.MultiBitService - Reading block store '/Users/jim/Library/Application Support/MultiBit/multibit.blockchain' from disk
22:31:33.683 [main] INFO  o.m.store.ReplayableBlockStore - Reading block store from /Users/jim/Library/Application Support/MultiBit/multibit.blockchain
22:31:33.691 [main] INFO  o.m.store.ReplayableBlockStore - Read chain head from disk: 0000000000000a22f6f29ba1f5ca3c95bcf13d5f2bafeb45028971a154d73026
22:31:33.693 [main] DEBUG org.multibit.network.MultiBitService - Connecting ...
22:31:33.720 [main] DEBUG o.m.v.c.MultiBitCommandLine - Locating wallets
22:31:33.721 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/Users/jim/real money/blockChain.wallet'
MB:Message   : Opening wallet "/Users/jim/real money/blockChain.wallet"...
22:31:36.204 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /Users/jim/real money/blockChain.wallet , walletFileSize 3728832 ,walletFileLastModified 1333804495000 ,walletInfoFileSize 4399 ,walletInfoFileLastModified 1333804493000
MB:Message   : Opening wallet "/Users/jim/real money/blockChain.wallet"... done.
22:31:36.219 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/Users/jim/real money/pettyCash.wallet'
MB:Message   : Opening wallet "/Users/jim/real money/pettyCash.wallet"...
22:31:36.547 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /Users/jim/real money/pettyCash.wallet , walletFileSize 452062 ,walletFileLastModified 1333804496000 ,walletInfoFileSize 1246 ,walletInfoFileLastModified 1333804496000
MB:Message   : Opening wallet "/Users/jim/real money/pettyCash.wallet"... done.
22:31:36.563 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/Users/jim/real money/multibitDonate/donations.wallet'
MB:Message   : Opening wallet "/Users/jim/real money/multibitDonate/donations.wallet"...
22:31:37.072 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /Users/jim/real money/multibitDonate/donations.wallet , walletFileSize 992392 ,walletFileLastModified 1333804841000 ,walletInfoFileSize 1189 ,walletInfoFileLastModified 1333804840000
MB:Message   : Opening wallet "/Users/jim/real money/multibitDonate/donations.wallet"... done.
22:31:37.103 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/users/jim/test/test1.wallet'
MB:Message   : Opening wallet "/users/jim/test/test1.wallet"...
22:31:37.109 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test1.wallet , walletFileSize 3082 ,walletFileLastModified 1333833631000 ,walletInfoFileSize 278 ,walletInfoFileLastModified 1333833631000
MB:Message   : Opening wallet "/users/jim/test/test1.wallet"... done.
22:31:37.110 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/users/jim/test/test2.wallet'
MB:Message   : Opening wallet "/users/jim/test/test2.wallet"...
22:31:37.115 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test2.wallet , walletFileSize 3082 ,walletFileLastModified 1333833671000 ,walletInfoFileSize 395 ,walletInfoFileLastModified 1333833671000
MB:Message   : Opening wallet "/users/jim/test/test2.wallet"... done.
22:31:37.116 [main] DEBUG o.m.v.c.MultiBitCommandLine - Loading wallet from '/users/jim/test/test3.wallet'
MB:Message   : Opening wallet "/users/jim/test/test3.wallet"...
22:31:37.121 [main] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test3.wallet , walletFileSize 3082 ,walletFileLastModified 1333833719000 ,walletInfoFileSize 87 ,walletInfoFileLastModified 1333833719000
MB:Message   : Opening wallet "/users/jim/test/test3.wallet"... done.
22:31:37.127 [main] DEBUG o.m.v.c.MultiBitCommandLine - Downloading blockchain
MB:Error     : No view to display with id 1
MultiBitTool#processLine args = --action=HELP

22:31:37.128 [SwingWorker-pool-1-thread-7] DEBUG org.multibit.network.MultiBitService - Downloading blockchain
MultiBitShell: print and manipulate the MultiBit object model

Usage (Implemented):
  HELP           Show this help text.
  EXIT           Exit this MultiBitShell session.
  CREATE         --wallet --filename=<>                     Makes a new wallet in the file specified.

(Not Implemented Yet):
  CREATE         --sendingAddress --address=<> --label=<>   Makes a new sending address with the given address and label.
                 --receivingAddress --label=<>              Makes a new receiving address with the given label.

  EDIT           --preferences                              Edit the MultiBit preferences.
                 --sendingAddress --address=<> --label=<>   Edit the sending address matching the given address or label.
                 --receivingAddress --address=<> --label=<> Edit the receiving address matching the given address or label.

  LIST           --wallets                                  Lists all open wallets in a format suitable for picking.
                 --sendingAddresses                         Lists all sending addresses in a format suitable for picking.
                 --receivingAddresses                       Lists all receiving addresses in a format suitable for picking.
                 --transactions                             Lists all transactions for the active wallet for picking.

  PICK           --number=<> or --value=<>                  Pick from the last list either by list number or match by value.

  DELETE         --wallet --filename=<>                     Delete the wallet with the file specified.
                 --sendingAddress --address=<> --label=<>   Delete the sending address with the given address or label.
                 --receivingAddress --address --label=<>    Delete the receiving address with the given address or label.

  SEND           --address=<> --amount=<>                   Send the specified amount of BTC to the address specified.

  RESET          --date=<>                                  Remove all transactions on or after the date, or all if no date specified.
  REPLAY         --date=<>                                  Replay the blockchain from the date specified.

  IMPORT_KEYS    --filename=<> --password=<>                Import private keys from the filename specified, using the password.
  EXPORT_KEYS    --filename=<> --password=<>                Export private keys from the filename specified, using the password.

  WAIT_FOR       --online or --replayComplete               Wait for MultiBit to come online or for the blockchain replay to complete.

  SHOW           --activeWallet                             Show which wallet is the active wallet.
                 --online                                   Show whether MultiBit is onine or not.
                 --helpAbout                                Show the help about MultiBit details.
                 --ticker                                   Show the most recent ticker details.
                 --messages=<number>                        Show the most recent <number> of messages.
                 --transaction                              Show the details of the last picked transaction.

MB:Message   : Synchronised with network.
MB:Message   : Synchronised with network.. 100.0% complete.
MB:Message   : Synchronised with network.
MB:Message   : Synchronised with network.. 100.0% complete.
MB:Message   : MultiBit is now online

MB > CREATE --wallet --filename=/users/jim/test/test4.wallet
MultiBitTool#processLine args = --action=CREATE --wallet --filename=/users/jim/test/test4.wallet

22:32:07.727 [Thread-2] DEBUG org.multibit.model.WalletInfo - Could not load walletinfo file '/users/jim/test/test4.info'
22:32:07.728 [Thread-2] DEBUG org.multibit.model.WalletInfo - Cause : /users/jim/test/test4.info (No such file or directory)
22:32:07.733 [Thread-2] DEBUG org.multibit.file.FileHandler - Result of check of whether files have changed for wallet filename /users/jim/test/test4.wallet was true.
22:32:07.741 [Thread-2] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test4.wallet , walletFileSize 3082 ,walletFileLastModified 1333834327000 ,walletInfoFileSize 87 ,walletInfoFileLastModified 1333834327000
22:32:07.745 [Thread-2] DEBUG org.multibit.file.FileHandler - rememberFileSizesAndLastModified: Wallet filename /users/jim/test/test4.wallet , walletFileSize 3082 ,walletFileLastModified 1333834327000 ,walletInfoFileSize 87 ,walletInfoFileLastModified 1333834327000
22:32:07.746 [Thread-2] DEBUG org.multibit.file.FileHandler - When writing wallets, there were 7
22:32:07.749 [Thread-2] DEBUG o.m.v.s.action.CreateNewWalletAction - User preferences with new wallet written successfully
MB > EXIT
MultiBitTool#processLine args = --action=EXIT

MultiBitTool#processLine - exit called.
host47:Java jim$

It will be a 'background task' whilst I work through other stuff.

Note: Primarily for security considerations none of the code for the MultiBit command line will be put in the regular MultiBit installers.   There is a separate jar file (multibit-shell-exe.jar) that people will have to download if they want to use this.  It is for advanced users so it is better not to have it in the regular installers.

P.S.  The parser (the clever bit of the code that interprets all the commands and options) is a blatant copy of Mike Hearn's wallet-tool which does a similar task for the bitcoinj code. Thanks Mike !

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
freemoney458
Member
**
Offline Offline

Activity: 62
Merit: 10


View Profile
April 08, 2012, 10:37:15 AM
 #323

Nice idea to put in a CLI for advanced users.

I guess this will make it possible to write testing scripts for automated testing.
Or kind of a validation suite that users can execute on their system to be sure that everything works as intended.
Are you planning in this direction, too?
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 08, 2012, 11:08:34 AM
Last edit: April 08, 2012, 12:19:11 PM by jim618
 #324

Hi freemoney,

Functional testing/ test scripts
Yes I am putting in the CLI now (well starting on it) mainly to make scripted / functional testing easier.   There is quite a bit of internal work coming up with encrypted wallets etc so I wanted to improve my testing capability. You can only do so much with unit tests.

The code in the CLI will be exercising the same code as in the GUI (but obviously not the 'click here' stuff) so it will improve my test coverage generally too.

The test scripts could also be used by the end user as validation and diagnostic scripts too.


Medium term - market data
In the medium term the exchange data we are just starting to hook into will also be available on the MultiBit object model (and then subsequently the CLI).   This will give people shell access to:

+ all your wallet information and ability to spend
+ the market data from the exchanges you are hooked into
+ the state of the MultiBit runtime itself (i.e. are all the blocks downloaded ?).

That is *close* to being able to write whole scripted algorithms to, say, trade bitcoin across exchanges. (There is no looping or conditions in the CLI at the moment so that would have to be added.   Or it could be hooked into a rules engine).


Secure shell usage - iOS will fall to bitcoin !
Edit: oh and a CLI means that you could run a secure shell (SSH) from one machine to another if you wanted.
It would be slightly nerdy but you could have an SSH from your iPhone to a cloud VM somewhere if you wanted.

An iOS developer would then have a reasonable interface to write an iOS GUI against.
(I am not really planning to do this - not enough time - just saying what is possible).


MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 09, 2012, 11:13:39 AM
 #325

You have probably already noticed, but I have started up a dedicated thread for discussion of the MultiBitShell command line interface.

As it is a bit nerdier and most MultiBit users will never feel the need to use it, please post any MultiBitShell comments/ feedback in that thread.

Thanks.

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 11, 2012, 01:13:58 PM
Last edit: April 14, 2012, 07:07:50 AM by jim618
 #326

We have made progress on the Bitcoin currency ticker.
This is a little box that gives you the latest exchange rates.

We have not quite got it all hooked up yet but here is what it looks like with (scratched out) randomly generated data:

Image out of date - see further down thread

The user can show and hide the ticker with the "View | Show/Hide currency ticker" menu option.
When you initially show the ticker it shows a single rate (which will be midpoint between bid and ask as reported by the exchange).   This is to keep it simple.

To configure the ticker you simply click it to open the preferences.   At the moment the only option is to show the bid and ask, which gives you a screen like this:

Image out of date - see further down thread

You can see we have scope for the following enhancements over time:
+ Choose the currency to show.
+ Choose the exchange to use (We only have Mt.Gox at the moment.   This comes from the XChange code - we are currently working on Intersango and a Russian exchange IMCEX).
+ Have a second currency+ exchange pair immediately below the first.   This could be, say, the bid and ask for USD from Intersango or the current euro rate from WhateverExchange.


MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
bitcoinspot.nl
Sr. Member
****
Offline Offline

Activity: 300
Merit: 250



View Profile WWW
April 11, 2012, 02:22:16 PM
 #327

so would it be possible then, that i can fill in an amount in euro's and multibit will translate it to the corresponding amount in bitcoins?

- bitcoinspot.nl - Alles over bitcoin! -
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 11, 2012, 02:47:40 PM
 #328

Hi bitcoinspot.nl,

At the moment the ticker is pretty much standalone. The other screens do not know about exchange data (yet).

Mainly because I want to work on the wallets/ encryption I am going to get the basic ticker working and leave it for that now.

As with all things, it gets more complicated. You send 5 euros to me, the exchange rate varies : I only receive 4,50 when I look. So you have to keep the exchange rate at the time of transaction for each transaction as evidence etc etc.


MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 11, 2012, 09:19:01 PM
Last edit: April 12, 2012, 04:40:00 PM by jim618
 #329

Mike Hearn noticed whilst testing MultiBit that I had not implemented a speed-up technique that he had implemented called FastCatchup:

http://code.google.com/p/bitcoinj/wiki/FastCatchup

This is a technique that speeds up the initial sync of the blockchain that is included in the installer for new users.
I have put this into the MultiBit code base just now.

Results
+ Using a 3G modem
+ Using my 3 year old Mac
+ Using a blockchain that is 10 days old (sync of 1420 blocks).

From double clicking the MultiBit icon to the 'Synchronised with network' message appearing:
27 seconds



Edit: More results:
+ Using coffee shop wifi
+ Using my 3 year old Mac
+ Using a blockchain that is 11 days old (sync of 1500 blocks).

From double clicking the MultiBit icon to the 'Synchronised with network' message appearing:
18 seconds



Excellent !

It will go into the next release (0.3.3).

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1129


View Profile
April 12, 2012, 08:48:05 AM
 #330

Note that the speedup only happens for new wallets. After your initial sync as a new user the speed goes back to normal (still much faster than Bitcoin-Qt but not "thousands of blocks per second" which is achievable for first time users).

We'll speed up the active-user case some more later.
da2ce7
Legendary
*
Offline Offline

Activity: 1222
Merit: 1016


Live and Let Live


View Profile
April 12, 2012, 09:02:25 AM
 #331

Of Course you are going to be implementing the Sipa HD Wallet's.

For Random Private Key Generation... It may be beneficial in using the https://en.bitcoin.it/wiki/Mini_private_key_format
This would make the keys smaller for easy transfer on paper.  This may come in handy when you implement a 'print paper backup' feature.

One off NP-Hard.
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 12, 2012, 09:11:08 AM
 #332

Hi da2ce7,

Thanks for the heads up on that. The mini key format is definitely preferable for QR codes.

Re: Sipa's deterministic wallets. This is very interesting development - I believe it is pencilled in for bitcoind v0.7. And yes it is the obvious one for Multibit to implement.

Jim

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 13, 2012, 03:49:21 PM
Last edit: April 15, 2012, 09:29:55 AM by jim618
 #333

After some evening coding last night by Tim, Gary and I we now have the XChange data flowing into MultiBit and have the ticker hooked up:

edit: you can now switch individual columns on and off



Just showing one "Last price" with all the other columns switched off


We will initially release with just MtGox as that is the most mature code.
Still a bit of finishing off to do yet.

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
CrownCloud
Sr. Member
****
Offline Offline

Activity: 467
Merit: 250


View Profile
April 16, 2012, 07:57:16 PM
 #334

After some evening coding last night by Tim, Gary and I we now have the XChange data flowing into MultiBit and have the ticker hooked up:

edit: you can now switch individual columns on and off



Just showing one "Last price" with all the other columns switched off


We will initially release with just MtGox as that is the most mature code.
Still a bit of finishing off to do yet.

Looks awesome !! Great Workk !! MultiBit is awesome !!!

CrownCloud - Internet Services
Dedicated servers, OpenVZ and KVM based VPSes and  in 4 locations. (We accept Bitcoin !)
http://crowncloud.net/
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 16, 2012, 08:48:00 PM
 #335

Thanks speedbus !

It is quite a handy little addition having the exchange rate in the corner.

The next release should be out in a day or two - just got to tidy things up.

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 17, 2012, 12:38:24 PM
 #336

There is a new release of MultiBit at:

http://multibit.org


Version 0.3.3

Enhancements:
+  Added FastCatchup for fast new user blockchain synchronisation (less than 1 minute)
+  Added currency ticker with support for MtGox exchange
+  Address books are now sorted and current row moves-as-you-type
+  Welcome screen added : available in de, en, es, nl.
+  From the transactions details dialog, the user can open transaction details in blockchain.info or blockexplorer.com in their browser
+  Can now specify a date from which to reset the blockchain and transactions

Release info
Changes included - Apr 1st 12:00 to Apr 16th inclusive
Scan of release checklist

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
Tittiez
Hero Member
*****
Offline Offline

Activity: 686
Merit: 500



View Profile
April 17, 2012, 07:41:57 PM
 #337

Can we have the ability to sign messages? I need this feature for P2PMining.com to change my Merged Mining address.
jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 17, 2012, 08:06:25 PM
 #338

Hi Tittiez,

I will have a look into it.   Not sure if it is in the bitcoinj interface (the underlying library I am using for bitcoin related things)

Jim

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
davout
Legendary
*
Offline Offline

Activity: 1372
Merit: 1007


1davout


View Profile WWW
April 18, 2012, 09:23:34 AM
 #339

I suggest making the transaction fee a real user-settable setting.

jim618 (OP)
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
April 18, 2012, 10:47:09 AM
 #340

Hi davout,

We covered the pros and cons of zero tx fees in the github issue you raised:
https://github.com/jim618/multibit/issues/23

The main issue with zero tx fees is that sufficient tx see delays that users who 'just want it to work' have a bad user experience. I want to avoid that.

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 ... 90 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!