Add -walletnotify to call an external script on wallet transactions
In listaddressgroupings push down the IsMine check to run on each input.

This avoids a potential crash when trying to read the scrippubkeys on
transactions where the first input IsMine but some of the rest are not
when running listaddressgroupings.
Bitcoin-Qt: ensure all Windows scopes use win32 as identifier

- currently we sometimes use "windows" or "win32", but as per
  http://doc.qt.digia.com/qt/qmake-advanced-usage.html, windows seems to
  be not officially supported (only win32 is mentioned there)
Make IsCanonicalScript() check the hash type more thoroughly

0 and 128 were previously accepted as standard hash type.

Note that this function is not active in the current verification
code.
Bitcoin-Qt: fix known addressbook bugs

- add qSort() for cachedAddressTable, as qLowerBound() and qUpperBound()
  require the list to be in ascending order (see
  http://harmattan-dev.nokia.com/docs/library/html/qt4/qtalgorithms.html#qLowerBound)
- add a new check in AddressTableModel::setData() to just return, when no
  changes were made to a label or an address (prevents entry duplication
  issue)
- remove "rec->label = value.toString();" from
  AddressTableModel::setData() as the label gets updated by
  AddressTablePriv::updateEntry() anyway (seems @sipa added this line via
  https://github.com/bitcoin/bitcoin/commit/1025440184ef100a22d07c7bb543ee45cf169d64#L6R225)
- add another new check in AddressTableModel::setData() to just return, if
  a duplicate address was found (prevents address overwrite)
- add a new check to EditAddressDialog::setModel() to prevent setting an
  invalid model
- re-work the switch-case statement in AddressTableModel::accept() to
  always break (as return get's called anyway) and order the list to match
  the enum definition
- make accept() in editaddressdialog.h a public slot, which it should be
- misc small coding style changes
Add timeoffset to getinfo RPC call

Provides a method to get the difference between network adjusted time
and local time from the RPC interface.
add InitMessage() to noui and use debug.log for GUI

- this pull adds an InitMessage() function to noui.cpp, which outputs init
  messages to debug.log (this allows to remove some printf() calls from
  init.cpp)
- change InitMessage() in bitcoin.cpp to also write init messages to
  debug.log to ensure nothting is missing in the log because of the
  removal of printf() calls in init.cpp
Remove IsFromMe() check in CTxMemPool::accept()

Fixes issue #2178 : attacker could penny-flood with invalid-signature
transactions to deduce which addresses belonged to your node.

I'm committing this early for code review; I still need to write up
a test plan.

Executive summary of fix: check all transactions received from the network
for penny-flood rate-limiting before adding to the memory pool. But do NOT
ratelimit transactions added to the memory pool:
  - because of blockchain reorgs
  - stored in the wallet and added at startup
  - sent from the GUI or one of the send* RPC commands (CWallet::CommitTransaction)

The limit-free-transactions code really should be a method on CNode, with
counters per-peer. But that is a bigger change for another day.
enable GCC large address aware linker flag (Windows only)

- this flag allows bitcoin-qt.exe / bitcoind.exe (32-bit application) to
  handle addresses larger than 2GB (up to 3GB on x86 Windows and up to
  4GB on x64 Windows)
Add optional transaction index to databases

By specifying -txindex when initializing the database, a txid-to-diskpos
index is maintained in the blktree database. This database is used to
help answering getrawtransaction() RPC queries, when enabled.

Changing the -txindex value requires a -reindex; the client will abort
at startup if the database and the specified -txindex mismatch.
Moved SyncWithWallets out of ProcessMessage and into CTxMemPool::accept() so that when adding multiple wallets they will be aware of each other's transactions.
Port macdeployqtplus to OSX 10.8

Use 'osascript' to run AppleScript, instead of using (broken-in-10.8)
python appscript package.

And added support for code-signing the .app bundle, to make OSX's
GateKeeper happy.
Code-signing certificates (no private keys) from Apple and Comodo
Bugfix + simplify special case for genesis
Merge pull request #2109 from Diapolo/qt-pro-file-win32

Bitcoin-Qt: ensure all Windows scopes use win32 as identifier
Merge pull request #2171 from Diapolo/init

add InitMessage() to noui and use debug.log for GUI
Merge pull request #2157 from Diapolo/Qt_addrlist

Bitcoin-Qt: fix known addressbook bugs
Add a notfound message to getdata that is sent if any transactions that aren't in the relayable set are requested.
make bitcoinrpc.cpp UTF-8 conformant again

- just replaces a character in a comment, which I had problems with when
  opening the file in Qt Creator IDE
Merge pull request #2194 from Diapolo/UTF8-bitcoinrpc.cpp

make bitcoinrpc.cpp UTF-8 conformant again